修改仿真的顶层文件,适配最新的spi,貌似还是不能工作
This commit is contained in:
@@ -193,30 +193,30 @@ class GenPkt(object):
|
||||
|
||||
if gen_pkt_type != 0:
|
||||
f.write(define_str + "_len \t%d\n"%(pkt_len))
|
||||
f.write(define_str + "_sm(array) \\\n\tarray``[%d]=8'h%02X;\\\n\tarray``[%d]=8'h%02X;\n"%(
|
||||
3, pkt_len & 0xff,
|
||||
4, pkt_len >> 8
|
||||
f.write(define_str + "_sm(array) \\\n\tarray``[`ARRAY_IDX_OFF + %d]=8'h%02X;\\\n\tarray``[`ARRAY_IDX_OFF + %d]=8'h%02X;\n"%(
|
||||
0, pkt_len & 0xff,
|
||||
1, pkt_len >> 8
|
||||
))
|
||||
|
||||
f.write(define_str + "(array) \\\n")
|
||||
for _k in range(i):
|
||||
if _k < (i - 1):
|
||||
if type(self.pkt_buf[_k]) == int:
|
||||
f.write("\tarray``[%d]=8'h%02X;\\\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
f.write("\tarray``[`ARRAY_IDX_OFF + %d]=8'h%02X;\\\n"%(_k, self.pkt_buf[_k]))
|
||||
else:
|
||||
f.write("\tarray``[%d]=%s;\\\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
f.write("\tarray``[`ARRAY_IDX_OFF + %d]=%s;\\\n"%(_k, self.pkt_buf[_k]))
|
||||
else:
|
||||
if type(self.pkt_buf[_k]) == int:
|
||||
f.write("\tarray``[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
f.write("\tarray``[`ARRAY_IDX_OFF + %d]=8'h%02X;\n"%(_k, self.pkt_buf[_k]))
|
||||
else:
|
||||
f.write("\tarray``[%d]=%s;\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
f.write("\tarray``[`ARRAY_IDX_OFF + %d]=%s;\n"%(_k, self.pkt_buf[_k]))
|
||||
|
||||
for md in self.sub_pkt:
|
||||
if md[0] == 2:
|
||||
f.write("%s\n"%(md[1],))
|
||||
else:
|
||||
for _k in range(i):
|
||||
f.write("txBuf[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
f.write("txBuf[`ARRAY_IDX_OFF + %d]=8'h%02X;\n"%(_k, self.pkt_buf[_k]))
|
||||
f.close()
|
||||
|
||||
|
||||
@@ -236,7 +236,7 @@ def genWriteTransPktCode(gen_name, sm_idx, wlog=True, dev_idx=0):
|
||||
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, )\
|
||||
+ '''txBuf[`ARRAY_IDX_OFF] = `MST_TX_TRIGGER(%d);\n'''%(sm_idx, )\
|
||||
+ '''%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, dev_idx=0):
|
||||
@@ -253,15 +253,15 @@ def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True, d
|
||||
data = data | 0x4000
|
||||
return '''//写入替换时间戳替换地址\n'''\
|
||||
+ '''$fdisplay(spidata_file, "--增加时间戳插入");\n'''\
|
||||
+ '''txBuf[0+3] = 8'h%x;\n'''%(data & 0xff, )\
|
||||
+ '''txBuf[1+3] = 8'h%x;\n'''%((data >> 8) & 0xff, )\
|
||||
+ '''txBuf[`ARRAY_IDX_OFF + 0] = 8'h%x;\n'''%(data & 0xff, )\
|
||||
+ '''txBuf[`ARRAY_IDX_OFF + 1] = 8'h%x;\n'''%((data >> 8) & 0xff, )\
|
||||
+ '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
|
||||
|
||||
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'''\
|
||||
+ '''txBuf[`ARRAY_IDX_OFF + 0] = 8'h00;\n'''\
|
||||
+ '''txBuf[`ARRAY_IDX_OFF + 1] = 8'h00;\n'''\
|
||||
+ '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(%d)) ); //清除替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
|
||||
|
||||
def genCheckInsertTimeCode(wlog=True, dev_idx=0):
|
||||
@@ -316,12 +316,12 @@ def genSlvSMWriteData(dev, sm, data_len, data = None, wlog=True):
|
||||
for i in range(data_len):
|
||||
data.append((i + dev) & 0xff)
|
||||
|
||||
code = '''txBuf[3] = 8'h%02x;\n'''%(data_len & 0xff, )\
|
||||
+ '''txBuf[4] = 8'h%02x;\n'''%(int(data_len/256) & 0xff,)\
|
||||
code = '''txBuf[`ARRAY_IDX_OFF + 0] = 8'h%02x;\n'''%(data_len & 0xff, )\
|
||||
+ '''txBuf[`ARRAY_IDX_OFF + 1] = 8'h%02x;\n'''%(int(data_len/256) & 0xff,)\
|
||||
+ '''%s((16'h%04x), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", smaddr[sm], dev)
|
||||
|
||||
for i in range(data_len):
|
||||
code = code + '''txBuf[%d + 3] = 8'h%02x;\n'''%(i, data[i])
|
||||
code = code + '''txBuf[`ARRAY_IDX_OFF + %d] = 8'h%02x;\n'''%(i, data[i])
|
||||
|
||||
code = code + '''%s( (16'h%04x), (`SPI_WRITE), (%d), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", 0x800 + sm * 2048, data_len, dev)
|
||||
return code
|
||||
|
||||
Reference in New Issue
Block a user