改写ebmmu_tc01的测试用例
This commit is contained in:
@@ -30,7 +30,7 @@ if __name__ == '__main__':
|
||||
sync.tc3()
|
||||
sync.tc4()
|
||||
|
||||
ebmmu.tc1()
|
||||
add_tc_2_runlist(ebmmu.tc1())
|
||||
ebmmu.tc2()
|
||||
ebmmu.tc3()
|
||||
ebmmu.tc4()
|
||||
|
||||
@@ -222,7 +222,7 @@ def genWriteTransLenCode(gen_name, sm_idx, wlog=True):
|
||||
+ '''%s( (`MST_RX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx,)
|
||||
|
||||
def genWriteTransPktCode(gen_name, sm_idx, wlog=True):
|
||||
return '''\n$fdisplay(spidata_file, "<<发包:");\n'''\
|
||||
return f'''\n$fdisplay(spidata_file, "<<准备发包,使用SM{sm_idx}:");\n'''\
|
||||
+ '''`DEF_%s(txBuf);\n'''%(gen_name, )\
|
||||
+ '''%s( (`MST_TX%d_ADDR), (`SPI_WRITE), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name, )
|
||||
|
||||
@@ -236,7 +236,7 @@ def genReadAckPktCode(gen_name, sm_idx, wlog=True):
|
||||
return '''\n//等待回包\n'''\
|
||||
+ '''_reset_deadline_ind = 1;\n'''\
|
||||
+ '''@(posedge isResp or posedge _deadline_ind) #5 begin end\n'''\
|
||||
+ '''$fdisplay(spidata_file, ">>回包:");\n'''\
|
||||
+ f'''$fdisplay(spidata_file, ">>读取回包,使用SM{sm_idx}:");\n'''\
|
||||
+ '''%s( (`MST_RX%d_ADDR), (`SPI_READ), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name,)
|
||||
|
||||
def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True):
|
||||
@@ -317,7 +317,7 @@ def genSlvSMReadData(dev, sm, data_len, wlog=True):
|
||||
if data_len > 2032:
|
||||
return ''
|
||||
|
||||
code = ""
|
||||
code = f'''$fdisplay(spidata_file, "--读取设备{dev} SM{sm} 中的数据,读取长度{data_len}B");\n'''
|
||||
code = code + '''%s( (16'h%04x), (`SPI_READ), (%d), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", 0x800 + sm * 2048, data_len, dev)
|
||||
|
||||
return code
|
||||
|
||||
@@ -3,6 +3,12 @@ from pyutils import *
|
||||
def tc1():
|
||||
genPkt = GenPkt()
|
||||
|
||||
gen_file_def = "ebmmu_tc01"
|
||||
sm_idx = 0
|
||||
tc_des = "每个从站测试1个ebmmu,共4个mmu,从0x1000_0000位置向后对齐,每个设备占10个字节。\\n" \
|
||||
+ "使用1包数据,将4个设备的数据一次性读上来。\\n"\
|
||||
+ "检查内容:ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#>>>>>>设置EB-MMU 1
|
||||
genPkt.clean()
|
||||
@@ -27,9 +33,7 @@ def tc1():
|
||||
setting_ebmmu_regs(data, 0, 0x1000001e, 0x0200, 0x0a, 0x3, 0x1)
|
||||
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 10, data)
|
||||
|
||||
|
||||
gen_file_def = "ebmmu_tc1_settings"
|
||||
sm_idx = 0
|
||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
|
||||
|
||||
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||
@@ -50,15 +54,15 @@ def tc1():
|
||||
genPkt.addSubPkt(0x03, 0, 0x0200, 0x0, 10, data)
|
||||
genPkt.addSubPkt(0x04, 0, 0x0200, 0x0, 10, data)
|
||||
|
||||
gen_file_def = "ebmmu_tc1_seq_read"
|
||||
gen_file_def_ap = "ebmmu_tc01_rw1"
|
||||
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.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def_ap, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
#>>>>>>用EB-MMU方式读取EB-MMU设置
|
||||
genPkt.clean()
|
||||
@@ -69,15 +73,17 @@ def tc1():
|
||||
|
||||
genPkt.addSubPkt(0x1000, 2, 0x0000, 0x0, 40, data)
|
||||
|
||||
gen_file_def = "ebmmu_tc1_read"
|
||||
gen_file_def_ap = "ebmmu_tc1_rw2"
|
||||
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.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
|
||||
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
|
||||
+genReadAckPktCode(gen_file_def_ap, sm_idx)
|
||||
+genTcEndFrameCode(gen_file_def)
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
@@ -1622,7 +1628,9 @@ def tc16():
|
||||
gen_file_def = "ebmmu_tc16"
|
||||
sm_idx = 0
|
||||
tc_des = "测试8个ebmmu全配置下运行,每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入,\\n" \
|
||||
+ "对应的sm才能正常工作。两次写入数据,复位设备1的SM1,SM1状态复原,不能读取到有效的数据。"
|
||||
+ "对应的sm才能正常工作。两次写入数据,复位设备1的SM1,SM1状态复原,不能读取到有效的数据。\\n"\
|
||||
+ "测试用例能成功运行完毕,除设备1的SM1,其余的SMx都能获得正确的数据。\\n\\n" \
|
||||
+ "检查内容:ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
|
||||
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
Reference in New Issue
Block a user