修正代码错误,增加ebmmu 测试用例5
This commit is contained in:
@@ -7,9 +7,9 @@
|
|||||||
//`define ENABLE_SM1_SEND_TEST
|
//`define ENABLE_SM1_SEND_TEST
|
||||||
//`define ENABLE_SMx_SEND_TEST
|
//`define ENABLE_SMx_SEND_TEST
|
||||||
|
|
||||||
`define ENABLE_EXCHG_DATA_SEQ0_TEST
|
//`define ENABLE_EXCHG_DATA_SEQ0_TEST
|
||||||
//`define ENABLE_EXCHG_DATA_SEQ1_TEST
|
//`define ENABLE_EXCHG_DATA_SEQ1_TEST
|
||||||
`define ENABLE_EXCHG_DATA_SEQ2_TEST
|
//`define ENABLE_EXCHG_DATA_SEQ2_TEST
|
||||||
//`define ENABLE_EXCHG_DATA_SEQ3_TEST
|
//`define ENABLE_EXCHG_DATA_SEQ3_TEST
|
||||||
|
|
||||||
//`define ENABLE_BC_R_TEST
|
//`define ENABLE_BC_R_TEST
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
//`define ENABLE_EBMMU_TC2_TEST
|
//`define ENABLE_EBMMU_TC2_TEST
|
||||||
//`define ENABLE_EBMMU_TC3_TEST
|
//`define ENABLE_EBMMU_TC3_TEST
|
||||||
//`define ENABLE_EBMMU_TC4_TEST
|
//`define ENABLE_EBMMU_TC4_TEST
|
||||||
|
`define ENABLE_EBMMU_TC5_TEST
|
||||||
|
|
||||||
module ShinTopSpiTb(
|
module ShinTopSpiTb(
|
||||||
|
|
||||||
@@ -467,13 +468,13 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
|
|||||||
|
|
||||||
if (scmd == 0) begin
|
if (scmd == 0) begin
|
||||||
addr_type = txBuf[_pos + 1] & 8'h3;
|
addr_type = txBuf[_pos + 1] & 8'h3;
|
||||||
dev = txBuf[_pos] * 256 + ((txBuf[_pos + 1] >> 2) & 8'hff);
|
dev = (txBuf[_pos] >> 2) * 256 + ((txBuf[_pos + 1] >> 2) & 8'hff);
|
||||||
addr = txBuf[_pos + 2] * 256 + (txBuf[_pos + 3] & 8'hff);
|
addr = txBuf[_pos + 2] * 256 + (txBuf[_pos + 3] & 8'hff);
|
||||||
cmd = (txBuf[_pos + 4] >> 4) & 8'h0f;
|
cmd = (txBuf[_pos + 4] >> 4) & 8'h0f;
|
||||||
len = (txBuf[_pos + 4] & 8'h0f) * 256 + (txBuf[_pos + 5] & 8'hff);
|
len = (txBuf[_pos + 4] & 8'h0f) * 256 + (txBuf[_pos + 5] & 8'hff);
|
||||||
end else begin
|
end else begin
|
||||||
addr_type = rxBuf[_pos + 1] & 8'h3;
|
addr_type = rxBuf[_pos + 1] & 8'h3;
|
||||||
dev = rxBuf[_pos] * 256 + ((rxBuf[_pos + 1] >> 2) & 8'hff);
|
dev = (rxBuf[_pos] >> 2) * 256 + ((rxBuf[_pos + 1] >> 2) & 8'hff);
|
||||||
addr = rxBuf[_pos + 2] * 256 + (rxBuf[_pos + 3] & 8'hff);
|
addr = rxBuf[_pos + 2] * 256 + (rxBuf[_pos + 3] & 8'hff);
|
||||||
cmd = (rxBuf[_pos + 4] >> 4) & 8'h0f;
|
cmd = (rxBuf[_pos + 4] >> 4) & 8'h0f;
|
||||||
len = (rxBuf[_pos + 4] & 8'h0f) * 256 + (rxBuf[_pos + 5] & 8'hff);
|
len = (rxBuf[_pos + 4] & 8'h0f) * 256 + (rxBuf[_pos + 5] & 8'hff);
|
||||||
@@ -483,7 +484,7 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
|
|||||||
$fwrite(spidata_file, "// type:%3d dev:%3d addr:0x%04x cmd:0x%1x len:%3d", addr_type, dev, addr[15:0], cmd[3:0], len);
|
$fwrite(spidata_file, "// type:%3d dev:%3d addr:0x%04x cmd:0x%1x len:%3d", addr_type, dev, addr[15:0], cmd[3:0], len);
|
||||||
else begin
|
else begin
|
||||||
addr = dev * 65536 + addr;
|
addr = dev * 65536 + addr;
|
||||||
$fwrite(spidata_file, "// type:%3d addr:0x08x cmd:0x%1x len:%3d", addr_type, addr, cmd[3:0], len);
|
$fwrite(spidata_file, "// type:%3d addr:0x%08x cmd:0x%1x len:%3d", addr_type, addr, cmd[3:0], len);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -1368,47 +1369,28 @@ initial begin
|
|||||||
$fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用4");
|
$fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用4");
|
||||||
$display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp);
|
$display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp);
|
||||||
|
|
||||||
txBuf[3] = 8'h80;
|
`include "ebmmu_tc4_settings.vh"
|
||||||
txBuf[4] = 8'h00;
|
|
||||||
spi_trans((16'h0306), (`SPI_WRITE), (2), (`IF_IDX(1)) );//dev1_sm1
|
|
||||||
|
|
||||||
txBuf[3] = 8'h98;
|
`include "ebmmu_tc4_read.vh"
|
||||||
txBuf[4] = 8'h00;
|
|
||||||
spi_trans((16'h030e), (`SPI_WRITE), (2), (`IF_IDX(2)) );//dev2_sm3
|
|
||||||
|
|
||||||
txBuf[3] = 8'h81;
|
_t_end = $realtime;
|
||||||
txBuf[4] = 8'h00;
|
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
|
||||||
spi_trans((16'h0316), (`SPI_WRITE), (2), (`IF_IDX(3)) );//dev2_sm3
|
|
||||||
|
|
||||||
txBuf[3] = 8'h8c;
|
|
||||||
txBuf[4] = 8'h00;
|
|
||||||
spi_trans((16'h031e), (`SPI_WRITE), (2), (`IF_IDX(4)) );//dev2_sm3
|
|
||||||
|
|
||||||
|
|
||||||
for (integer i=0; i < 128; i++) begin
|
|
||||||
txBuf[i + 3] = i + 1;
|
|
||||||
end
|
end
|
||||||
spi_trans( (16'h1000), (`SPI_WRITE), (128), (`IF_IDX(1)) );
|
`endif
|
||||||
|
|
||||||
for (integer i=0; i < 152; i++) begin
|
`ifdef ENABLE_EBMMU_TC5_TEST
|
||||||
txBuf[i + 3] = i + 2;
|
begin:EBMMU_TC5_TEST
|
||||||
end
|
_t_start = $realtime;
|
||||||
spi_trans( (16'h2000), (`SPI_WRITE), (152), (`IF_IDX(2)) );
|
#1000
|
||||||
|
$fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用4");
|
||||||
for (integer i=0; i < 129; i++) begin
|
$display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp);
|
||||||
txBuf[i + 3] = i + 3;
|
|
||||||
end
|
|
||||||
spi_trans( (16'h3000), (`SPI_WRITE), (129), (`IF_IDX(3)) );
|
|
||||||
|
|
||||||
for (integer i=0; i < 140; i++) begin
|
|
||||||
txBuf[i + 3] = i + 4;
|
|
||||||
end
|
|
||||||
spi_trans( (16'h4000), (`SPI_WRITE), (140), (`IF_IDX(4)) );
|
|
||||||
|
|
||||||
`include "ebmmu_tc4_settings.vh"
|
`include "ebmmu_tc4_settings.vh"
|
||||||
|
|
||||||
`include "ebmmu_tc4_read.vh"
|
`include "ebmmu_tc4_read.vh"
|
||||||
|
|
||||||
|
`include "ebmmu_tc5_read.vh"
|
||||||
|
|
||||||
_t_end = $realtime;
|
_t_end = $realtime;
|
||||||
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
|
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1267,6 +1267,11 @@ if __name__ == '__main__':
|
|||||||
genPkt.clean()
|
genPkt.clean()
|
||||||
genPkt.setPktType(0)
|
genPkt.setPktType(0)
|
||||||
|
|
||||||
|
genPkt.addBeforeExc( genSlvSMWriteData(1, 1, 0x80)
|
||||||
|
+ genSlvSMWriteData(2, 3, 0x98)
|
||||||
|
+ genSlvSMWriteData(3, 5, 0x81)
|
||||||
|
+ genSlvSMWriteData(4, 7, 0x8c))
|
||||||
|
|
||||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||||
data = [0,] * 30
|
data = [0,] * 30
|
||||||
|
|
||||||
@@ -1372,3 +1377,24 @@ if __name__ == '__main__':
|
|||||||
|
|
||||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#>>>>>>用EB-MMU方式读取EB-MMU设置
|
||||||
|
genPkt.clean()
|
||||||
|
genPkt.setPktType(0)
|
||||||
|
|
||||||
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||||
|
data = [0,] * 550
|
||||||
|
|
||||||
|
genPkt.addSubPkt(0x1000, 2, 0x0058, 0x0, 0x80+0x98+0x81+0x8c, data)
|
||||||
|
|
||||||
|
gen_file_def = "ebmmu_tc5_read"
|
||||||
|
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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user