增加看门狗测试代码
This commit is contained in:
@@ -26,8 +26,10 @@
|
|||||||
//`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
|
//`define ENABLE_EBMMU_TC5_TEST
|
||||||
`define ENABLE_EBMMU_TC6_TEST
|
//`define ENABLE_EBMMU_TC6_TEST
|
||||||
`define ENABLE_EBMMU_TC7_TEST
|
//`define ENABLE_EBMMU_TC7_TEST
|
||||||
|
|
||||||
|
`define ENABLE_WD_TC1_TEST
|
||||||
|
|
||||||
module ShinTopSpiTb(
|
module ShinTopSpiTb(
|
||||||
|
|
||||||
@@ -792,6 +794,15 @@ initial begin
|
|||||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
|
||||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
|
||||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||||
|
|
||||||
|
$fdisplay(spidata_file, "-中断改为脉冲模式");
|
||||||
|
txBuf[3] = 8'h10;
|
||||||
|
txBuf[4] = 8'h80;
|
||||||
|
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
||||||
|
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(1)) );
|
||||||
|
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(2)) );
|
||||||
|
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(3)) );
|
||||||
|
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(4)) );
|
||||||
end
|
end
|
||||||
`endif
|
`endif
|
||||||
|
|
||||||
@@ -1430,6 +1441,20 @@ initial begin
|
|||||||
end
|
end
|
||||||
`endif
|
`endif
|
||||||
|
|
||||||
|
`ifdef ENABLE_WD_TC1_TEST
|
||||||
|
begin:WD_TC7_TEST
|
||||||
|
_t_start = $realtime;
|
||||||
|
#1000
|
||||||
|
$fdisplay(spidata_file, "\n\n测试用例: Watchdog 测试用1");
|
||||||
|
$display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp);
|
||||||
|
|
||||||
|
`include "wd_tc1.vh"
|
||||||
|
|
||||||
|
_t_end = $realtime;
|
||||||
|
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
|
||||||
|
end
|
||||||
|
`endif
|
||||||
|
|
||||||
#1000000
|
#1000000
|
||||||
$display("Testcase Finished! Time Out !!!");
|
$display("Testcase Finished! Time Out !!!");
|
||||||
$fclose(spidata_file);
|
$fclose(spidata_file);
|
||||||
|
|||||||
@@ -232,6 +232,25 @@ def genCheckInsertTimeCode():
|
|||||||
+ '''$fdisplay(spidata_file, "--检查时间戳插入");\n'''\
|
+ '''$fdisplay(spidata_file, "--检查时间戳插入");\n'''\
|
||||||
+ '''spi_trans( (16'h24), (`SPI_READ), (2), (`IF_IDX(0)) ); //检查替换时间戳替换地址寄存器\n'''
|
+ '''spi_trans( (16'h24), (`SPI_READ), (2), (`IF_IDX(0)) ); //检查替换时间戳替换地址寄存器\n'''
|
||||||
|
|
||||||
|
|
||||||
|
def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None):
|
||||||
|
if isWrite == True:
|
||||||
|
if (data == None) or (len(data) == 0):
|
||||||
|
data=list()
|
||||||
|
|
||||||
|
code = ''
|
||||||
|
idx = 3
|
||||||
|
for item in data:
|
||||||
|
code = code + '''txBuf[%d]=8'h%02x;\n'''%(idx, item & 0xff)
|
||||||
|
idx = idx + 1
|
||||||
|
|
||||||
|
code = code + '''spi_trans( (16'h%04x), (`SPI_WRITE), (%d), (`IF_IDX(%d)) );\n'''%(addr, data_len, dev)
|
||||||
|
return code
|
||||||
|
else:
|
||||||
|
code = ''
|
||||||
|
code = code + '''spi_trans( (16'h%04x), (`SPI_READ), (%d), (`IF_IDX(%d)) );\n'''%(addr, data_len, dev)
|
||||||
|
return code
|
||||||
|
|
||||||
def genSlvSMWriteData(dev, sm, data_len, data = None):
|
def genSlvSMWriteData(dev, sm, data_len, data = None):
|
||||||
smaddr = list()
|
smaddr = list()
|
||||||
for i in range(8):
|
for i in range(8):
|
||||||
@@ -1527,8 +1546,7 @@ 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,测试用例7
|
#>>>>>>设置EB-MMU,测试用例7
|
||||||
genPkt.clean()
|
genPkt.clean()
|
||||||
genPkt.setPktType(0)
|
genPkt.setPktType(0)
|
||||||
@@ -1661,6 +1679,61 @@ if __name__ == '__main__':
|
|||||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||||
|
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------------
|
||||||
|
#>>>>>> 测试用例1 看门狗测试
|
||||||
|
genPkt.clean()
|
||||||
|
genPkt.setPktType(0)
|
||||||
|
|
||||||
|
data = 1<<1 ##使能看门狗1
|
||||||
|
data0 = [data&0xff, (data>>8)&0xff, (data>>16)&0xff, (data>>24)&0xff]
|
||||||
|
|
||||||
|
data = 0x100 ##看门狗的超时值
|
||||||
|
data1 = [data&0xff, (data>>8)&0xff, (data>>16)&0xff, (data>>24)&0xff]
|
||||||
|
|
||||||
|
data = 0xffffffff ##清除中断
|
||||||
|
data2 = [data&0xff, (data>>8)&0xff, (data>>16)&0xff, (data>>24)&0xff]
|
||||||
|
|
||||||
|
genPkt.addBeforeExc( genIFRwDataCode(1, 0x404, True, 4, data0)
|
||||||
|
+ genIFRwDataCode(1, 0x40C, True, 4, data1)
|
||||||
|
+ genIFRwDataCode(1, 0x078, True, 4, data2)
|
||||||
|
+ genIFRwDataCode(2, 0x078, True, 4, data2)
|
||||||
|
+ genIFRwDataCode(3, 0x078, True, 4, data2)
|
||||||
|
+ genIFRwDataCode(4, 0x078, True, 4, data2)
|
||||||
|
+ genIFRwDataCode(1, 0x400, True, 4, [0xff, 0xff, 0xff, 0xff])
|
||||||
|
+ genIFRwDataCode(0, 0x074, False, 0x04)
|
||||||
|
+ genIFRwDataCode(1, 0x074, False, 0x04)
|
||||||
|
+ genIFRwDataCode(2, 0x074, False, 0x04)
|
||||||
|
+ genIFRwDataCode(3, 0x074, False, 0x04)
|
||||||
|
+ genIFRwDataCode(4, 0x074, False, 0x04)
|
||||||
|
+ genIFRwDataCode(1, 0x400, False, 0x04))
|
||||||
|
#genPkt.addBeforeExc( genIFRwDataCode(1, 0x078, True, 4, [0xff, 0xff, 0xff, 0xff]))
|
||||||
|
|
||||||
|
data = [0,] * 2
|
||||||
|
data[0] = 0x80
|
||||||
|
data[1] = 0x00
|
||||||
|
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
|
||||||
|
|
||||||
|
data = [0,] * 0x50
|
||||||
|
|
||||||
|
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||||
|
genPkt.addSubPkt(1, 0, 0x800, 0x1, 0x50, data)
|
||||||
|
|
||||||
|
gen_file_def = "wd_tc1"
|
||||||
|
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)
|
||||||
|
+genIFRwDataCode(1, 0x800, False, 0x80)
|
||||||
|
+genIFRwDataCode(0, 0x074, False, 0x04)
|
||||||
|
+genIFRwDataCode(1, 0x074, False, 0x04)
|
||||||
|
+genIFRwDataCode(2, 0x074, False, 0x04)
|
||||||
|
+genIFRwDataCode(3, 0x074, False, 0x04)
|
||||||
|
+genIFRwDataCode(4, 0x074, False, 0x04)
|
||||||
|
+genIFRwDataCode(1, 0x400, False, 0x04))
|
||||||
|
|
||||||
|
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user