Merge branch 'feature/clk3_shift_allow' into mp_eb_dev
# Conflicts: # src/main/scala/backBoard/ebus/CDRIn.scala # tb/shinTest/ShinTopSpiTb.v # tb/shinTest/gen_pkt.py # tb/shinTest/testcase/base.py # tb/shinTest/testcase/environment.py
This commit is contained in:
@@ -221,31 +221,31 @@ class GenPkt(object):
|
||||
|
||||
|
||||
|
||||
def genWriteTransLenCode(gen_name, sm_idx, wlog=True):
|
||||
def genWriteTransLenCode(gen_name, sm_idx, wlog=True, dev_idx=0):
|
||||
return '''\n//写入发送长度\n'''\
|
||||
+ '''$fdisplay(spidata_file, "--写数据交换长度");\n'''\
|
||||
+ '''`DEF_%s_sm(txBuf);\n'''%(gen_name, )\
|
||||
+ '''%s( (`MST_TX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx,)\
|
||||
+ '''%s( (`MST_RX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx,)
|
||||
+ '''%s( (`MST_TX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, dev_idx)\
|
||||
+ '''%s( (`MST_RX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, dev_idx)
|
||||
|
||||
def genWriteTransPktCode(gen_name, sm_idx, wlog=True):
|
||||
def genWriteTransPktCode(gen_name, sm_idx, wlog=True, dev_idx=0):
|
||||
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, )
|
||||
+ '''%s( (`MST_TX%d_ADDR), (`SPI_WRITE), (`DEF_%s_len), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name, dev_idx)
|
||||
|
||||
def genTrgTransPktCode(gen_name, sm_idx, wlog=True):
|
||||
def genTrgTransPktCode(gen_name, sm_idx, wlog=True, dev_idx=0):
|
||||
return '''\n//请求发送\n'''\
|
||||
+ '''$fdisplay(spidata_file, "--请求发送");\n'''\
|
||||
+ '''txBuf[0+3] = `MST_TX_TRIGGER(%d);\n'''%(sm_idx, )\
|
||||
+ '''%s( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", )
|
||||
+ '''%s( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
|
||||
|
||||
def genReadAckPktCode(gen_name, sm_idx, wlog=True):
|
||||
def genReadAckPktCode(gen_name, sm_idx, wlog=True, dev_idx=0):
|
||||
return '''\n//等待回包\n'''\
|
||||
+ '''wait_comm_finished();\n'''\
|
||||
+ '''wait_comm_finished(%d);\n'''%(dev_idx, )\
|
||||
+ 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,)
|
||||
+ '''%s( (`MST_RX%d_ADDR), (`SPI_READ), (`DEF_%s_len), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name, dev_idx)
|
||||
|
||||
def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True):
|
||||
def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True, dev_idx=0):
|
||||
data = pos & 0x3fff
|
||||
if enableTime:
|
||||
data = data | 0x8000
|
||||
@@ -255,19 +255,19 @@ def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True):
|
||||
+ '''$fdisplay(spidata_file, "--增加时间戳插入");\n'''\
|
||||
+ '''txBuf[0+3] = 8'h%x;\n'''%(data & 0xff, )\
|
||||
+ '''txBuf[1+3] = 8'h%x;\n'''%((data >> 8) & 0xff, )\
|
||||
+ '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans",)
|
||||
+ '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
|
||||
|
||||
def genDisableInsertTimeCode(wlog=True):
|
||||
def genDisableInsertTimeCode(wlog=True, dev_idx=0):
|
||||
return '''\n//清除替换时间戳替换地址\n'''\
|
||||
+ '''$fdisplay(spidata_file, "--清除时间戳插入");\n'''\
|
||||
+ '''txBuf[0+3] = 8'h00;\n'''\
|
||||
+ '''txBuf[1+3] = 8'h00;\n'''\
|
||||
+ '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) ); //清除替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", )
|
||||
+ '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(%d)) ); //清除替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
|
||||
|
||||
def genCheckInsertTimeCode(wlog=True):
|
||||
def genCheckInsertTimeCode(wlog=True, dev_idx=0):
|
||||
return '''\n//检查替换时间戳替换地址\n'''\
|
||||
+ '''$fdisplay(spidata_file, "--检查时间戳插入");\n'''\
|
||||
+ '''%s( (16'h24), (`SPI_READ), (2), (`IF_IDX(0)) ); //检查替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", )
|
||||
+ '''%s( (16'h24), (`SPI_READ), (2), (`IF_IDX(%d)) ); //检查替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
|
||||
|
||||
|
||||
def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=True, iface=5):
|
||||
@@ -400,58 +400,3 @@ def genTcEndFrameCode(tcname):
|
||||
|
||||
def genMessageCode(msg):
|
||||
return f'''\t\t$fdisplay(spidata_file, "{msg}");\n'''
|
||||
|
||||
|
||||
def genAddNewDev(devIndex):
|
||||
dev_code = ("ShinTop s_ShinTop_slv3(\n"
|
||||
" .clock(clock),\n"
|
||||
" .reset(reset | isSoftReset[4]),\n"
|
||||
"\n"
|
||||
" .io_multiCLK_0(multiCLK[0]),\n"
|
||||
" .io_multiCLK_1(multiCLK[1]),\n"
|
||||
" .io_multiCLK_2(multiCLK[2]),\n"
|
||||
" .io_multiCLK_3(multiCLK[3]),\n"
|
||||
" .io_multiCLK_4(multiCLK[4]),\n"
|
||||
" .io_multiCLK_5(multiCLK[5]),\n"
|
||||
" .io_multiCLK_6(multiCLK[6]),\n"
|
||||
" .io_multiCLK_7(multiCLK[7]),\n"
|
||||
" .io_multiCLK_8(multiCLK[8]),\n"
|
||||
" .io_multiCLK_9(multiCLK[9]),\n"
|
||||
" .io_multiCLK_10(multiCLK[10]),\n"
|
||||
" .io_multiCLK_11(multiCLK[11]),\n"
|
||||
" .io_multiCLK_12(multiCLK[12]),\n"
|
||||
" .io_multiCLK_13(multiCLK[13]),\n"
|
||||
" .io_multiCLK_14(multiCLK[14]),\n"
|
||||
" .io_multiCLK_15(multiCLK[15]),\n"
|
||||
"\n"
|
||||
" .io_dDatIn(dDat_w[3]),\n"
|
||||
" .io_dDatOut(),\n"
|
||||
" .io_uDatIn(1'b0),\n"
|
||||
" .io_uDatOut(uDat_w[3]),\n"
|
||||
"\n"
|
||||
" .io_iqspi_sck(qspi_sck),\n"
|
||||
" .io_iqspi_mosi(qspi_mosi),\n"
|
||||
" .io_iqspi_miso(qspi_miso[4*4+3:4*4]),\n"
|
||||
" .io_iqspi_isDirIn(),\n"
|
||||
" .io_iqspi_csn(spi_csn[4]),\n"
|
||||
"\n"
|
||||
" .io_ospi_sck (spi_sck),\n"
|
||||
" .io_ospi_mosi(spi_mosi),\n"
|
||||
" .io_ospi_miso(spi_miso[4]),\n"
|
||||
" .io_ospi_csn (spi_csn[9]),\n"
|
||||
"\n"
|
||||
" .io_oqspi_sck(qspi_sck),\n"
|
||||
" .io_oqspi_mosi(qspi_mosi),\n"
|
||||
" .io_oqspi_miso(qspi_miso[4*9+3:4*9]),\n"
|
||||
" .io_oqspi_isDirIn(),\n"
|
||||
" .io_oqspi_csn(spi_csn[14]),\n"
|
||||
"\n"
|
||||
" .io_isSoftReset(isSoftReset[4]),\n"
|
||||
" .io_interrupt(io_int_sig[4]),\n"
|
||||
" .io_latchPin_0(latch0),\n"
|
||||
" .io_latchPin_1(latch1),\n"
|
||||
" .io_hwSerial(0),\n"
|
||||
" .io_uniCode(0)\n"
|
||||
");\n"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user