From 670aebacd24b5ba79fd842ac6b8043aea9a04e2f Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Sat, 28 Oct 2023 00:16:09 -0600 Subject: tb: add block test: test_fb --- rtl/top/test_fb.sv | 26 ++++++++++++++++++++++++++ tb/top/test_fb.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 rtl/top/test_fb.sv create mode 100644 tb/top/test_fb.py diff --git a/rtl/top/test_fb.sv b/rtl/top/test_fb.sv new file mode 100644 index 0000000..d305d68 --- /dev/null +++ b/rtl/top/test_fb.sv @@ -0,0 +1,26 @@ +module test_fb +( + input logic clk, + rst_n, + + input logic[5:0] cmd_address, + input logic cmd_read, + cmd_write, + input logic[31:0] cmd_writedata, + output logic[31:0] cmd_readdata, + + input logic mem_waitrequest, + mem_readdatavalid, + input logic[15:0] mem_readdata, + output logic[25:0] mem_address, + output logic mem_read, + mem_write, + output logic[15:0] mem_writedata +); + + gfx dut + ( + .* + ); + +endmodule diff --git a/tb/top/test_fb.py b/tb/top/test_fb.py new file mode 100644 index 0000000..c7bbddf --- /dev/null +++ b/tb/top/test_fb.py @@ -0,0 +1,28 @@ +import struct + +import cocotb +from cocotb.clock import Clock +from cocotb.triggers import Combine, ClockCycles, RisingEdge, Timer, with_timeout +from cocotb_bus.drivers.avalon import AvalonMaster + +@cocotb.test() +async def fp_mat_mul(dut): + await cocotb.start(Clock(dut.clk, 2).start()) + + dut.rst_n.value = 1 + await Timer(1) + dut.rst_n.value = 0 + await Timer(1) + dut.rst_n.value = 1 + + master = AvalonMaster(dut, 'cmd', dut.clk, case_insensitive=False) + + for i in range(32): + await master.write(i, int.from_bytes(struct.pack('