From ee5502a9aa8468424b8af7a3170777a0e0f833a1 Mon Sep 17 00:00:00 2001 From: bacon Date: Thu, 26 Jun 2025 19:02:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0ebmmu=20test=206,?= =?UTF-8?q?=E5=86=99=E5=85=A5=E7=9A=84=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/ShinTopSpiTb.v | 21 ++++++- tb/shinTest/gen_pkt.py | 124 +++++++++++++++++++++++++++++++++++++ 2 files changed, 143 insertions(+), 2 deletions(-) diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 580c433..0b31fb5 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -25,7 +25,8 @@ //`define ENABLE_EBMMU_TC2_TEST //`define ENABLE_EBMMU_TC3_TEST //`define ENABLE_EBMMU_TC4_TEST -`define ENABLE_EBMMU_TC5_TEST +//`define ENABLE_EBMMU_TC5_TEST +`define ENABLE_EBMMU_TC6_TEST module ShinTopSpiTb( @@ -1382,7 +1383,7 @@ initial begin begin:EBMMU_TC5_TEST _t_start = $realtime; #1000 - $fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用4"); + $fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用5"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); `include "ebmmu_tc4_settings.vh" @@ -1396,6 +1397,22 @@ initial begin end `endif +`ifdef ENABLE_EBMMU_TC6_TEST + begin:EBMMU_TC6_TEST + _t_start = $realtime; + #1000 + $fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用6"); + $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); + + `include "ebmmu_tc6_settings.vh" + + `include "ebmmu_tc6_write.vh" + + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); + end +`endif + #1000000 $display("Testcase Finished! Time Out !!!"); $fclose(spidata_file); diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 6809c54..83847d6 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -1398,3 +1398,127 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + #-------------------------------------------------------------------------- + #------------------------------------------------------------------------- + #>>>>>>设置EB-MMU,测试用例6 + genPkt.clean() + genPkt.setPktType(0) + + addr_off = 0x58 + 0x80 + 0x98 + 0x81 + 0x8c + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + data = [0,] * 30 + + addr = addr_off + 0x0 + #print(hex(addr)) + data[0] = (addr & 0xff) + data[1] = (addr >> 8) & 0xff + data[2] = 0x00 + data[3] = 0x10 + + data[4] = 0x00 + data[5] = 0x08 + + data[6] = 0x80 + data[7] = 0x00 + + data[8] = 0x03 + data[9] = 0x01 + + genPkt.addSubPkt(0x1, 0, 0x0228, 0x1, 10, data) + + data = [0,] * 30 + addr = addr + 0x80 + #print(hex(addr)) + data[0] = (addr) & 0xff + data[1] = (addr >> 8) & 0xff + data[2] = 0x00 + data[3] = 0x10 + + data[4] = 0x00 + data[5] = 0x08 + + data[6] = 0x80 + data[7] = 0x00 + + data[8] = 0x02 + data[9] = 0x01 + genPkt.addSubPkt(0x2, 0, 0x0228, 0x1, 10, data) + + + data = [0,] * 30 + addr = addr + 0x80 + #print(hex(addr)) + data[0] = (addr) & 0xff + data[1] = (addr >> 8) & 0xff + data[2] = 0x00 + data[3] = 0x10 + + data[4] = 0x00 + data[5] = 0x08 + + data[6] = 0x80 + data[7] = 0x00 + + data[8] = 0x03 + data[9] = 0x01 + genPkt.addSubPkt(0x3, 0, 0x0228, 0x1, 10, data) + + data = [0,] * 30 + + addr = addr + 0x80 + #print(hex(addr)) + data[0] = (addr) & 0xff + data[1] = (addr >> 8) & 0xff + data[2] = 0x00 + data[3] = 0x10 + + data[4] = 0x00 + data[5] = 0x08 + + data[6] = 0x80 + data[7] = 0x00 + + data[8] = 0x03 + data[9] = 0x01 + genPkt.addSubPkt(0x4, 0, 0x0228, 0x1, 10, data) + + + gen_file_def = "ebmmu_tc6_settings" + sm_idx = 0 + + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx) + +genWriteTransPktCode(gen_file_def, sm_idx) + +genTrgTransPktCode(gen_file_def, sm_idx) + +genReadAckPktCode(gen_file_def, sm_idx)) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + + #------------------------------------------------------------------------- + #>>>>>>用EB-MMU方式读取EB-MMU设置 + genPkt.clean() + genPkt.setPktType(0) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + data = [0,] * 0x80 * 4 + for i in range(0x80 * 4): + data[i] = i & 0xff + + genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80 * 4, data) + + gen_file_def = "ebmmu_tc6_write" + sm_idx = 0 + + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx) + +genWriteTransPktCode(gen_file_def, sm_idx) + +genTrgTransPktCode(gen_file_def, sm_idx) + +genReadAckPktCode(gen_file_def, sm_idx) + +genSlvSMReadData(1, 0, 0x80) + +genSlvSMReadData(2, 0, 0x80) + +genSlvSMReadData(3, 0, 0x80) + +genSlvSMReadData(4, 0, 0x80)) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + + + From fb233555682fc8bd41bf4d3ea3084e4fa0b0b717 Mon Sep 17 00:00:00 2001 From: bacon Date: Thu, 26 Jun 2025 20:33:32 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=B0=86=E7=AC=AC=E4=BA=8C=E4=B8=AAebmmu?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=BA=E8=AF=BB=E5=86=99=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 83847d6..975f7af 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -1441,7 +1441,7 @@ if __name__ == '__main__': data[6] = 0x80 data[7] = 0x00 - data[8] = 0x02 + data[8] = 0x03 data[9] = 0x01 genPkt.addSubPkt(0x2, 0, 0x0228, 0x1, 10, data) From 89c9ced39c1fde66adf53a9aa64d11a56f0accd2 Mon Sep 17 00:00:00 2001 From: bacon Date: Fri, 27 Jun 2025 15:11:49 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=BA=86=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E4=BB=A3=E7=A0=81=E4=B8=8A=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 975f7af..5b4b217 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -516,10 +516,6 @@ if __name__ == '__main__': genPkt.clean() genPkt.setPktType(0) - - - - #subPkt参数:索引、索引类型、地址、命令、长度、数据 genPkt.addSubPkt(0x0, 0, random.randint(0, 65535), 0xc, 12, b'\0'*12) @@ -1483,6 +1479,10 @@ if __name__ == '__main__': data[9] = 0x01 genPkt.addSubPkt(0x4, 0, 0x0228, 0x1, 10, data) + data = [0,] * 2 + data[0] = 0x80 + data[1] = 0x00 + genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data) gen_file_def = "ebmmu_tc6_settings" sm_idx = 0