修改仿真的顶层文件,适配最新的spi,貌似还是不能工作
This commit is contained in:
@@ -44,40 +44,47 @@ module ShinTopSpiTb(
|
|||||||
`include "dev_predef.vh"
|
`include "dev_predef.vh"
|
||||||
|
|
||||||
`ifdef DEFINE_SLAVE_DEVICE
|
`ifdef DEFINE_SLAVE_DEVICE
|
||||||
`define DEV_NUM 4 //slave num
|
`define DEV_NUM 4 //slave num
|
||||||
`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master
|
`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master
|
||||||
`define SPI_CSN_NUM (`ALL_DEV_NUM * 3)
|
`define SPI_CSN_NUM (`ALL_DEV_NUM * 4)
|
||||||
|
|
||||||
`define HW_SERIAL 0 //48'h31303050584c //(48'h4c5850303031)
|
`define HW_SERIAL 0 //48'h31303050584c //(48'h4c5850303031)
|
||||||
`define IQSPI_PINS(N) (`N*4+3):(`N*4)
|
|
||||||
`define EQSPI_PINS(N) ((`N + `ALL_DEV_NUM)*4+3):((`N + `ALL_DEV_NUM)*4)
|
|
||||||
`define IQSPI_MISO(N) qspi_miso[`IQSPI_PINS(`N)]
|
|
||||||
`define EQSPI_MISO(N) qspi_miso[`EQSPI_PINS(`N)]
|
|
||||||
|
|
||||||
`define IQSPI_CSN_NUM(id) (`id)
|
`define IQSPI_PINS(N) (`N*4+3):(`N*4)
|
||||||
`define ESPI_CSN_NUM(id) ((`id)+(`ALL_DEV_NUM))
|
`define EQSPI_PINS(N) ((`N + `ALL_DEV_NUM)*4+3):((`N + `ALL_DEV_NUM)*4)
|
||||||
`define EQSPI_CSN_NUM(id) ((`id)+(`ALL_DEV_NUM)*2)
|
//`define AQSPI_PINS(N) ((`N + `ALL_DEV_NUM)*4+3):((`N + `ALL_DEV_NUM)*4)
|
||||||
|
|
||||||
`define IQSPI_CSN(id) spi_csn[`IQSPI_CSN_NUM(`id)]
|
`define IQSPI_MISO(N) qspi_miso[`IQSPI_PINS(`N)]
|
||||||
`define ESPI_CSN(id) spi_csn[`ESPI_CSN_NUM(`id)]
|
`define EQSPI_MISO(N) qspi_miso[`EQSPI_PINS(`N)]
|
||||||
`define EQSPI_CSN(id) spi_csn[`EQSPI_CSN_NUM(`id)]
|
|
||||||
`define QSPI_MUX_MISO_INIT \
|
`define IQSPI_CSN_NUM(id) (`id)
|
||||||
(`IQSPI_MISO(0) & ~{4{`IQSPI_CSN(0)}}) |\
|
`define ESPI_CSN_NUM(id) ((`id)+(`ALL_DEV_NUM))
|
||||||
(`IQSPI_MISO(1) & ~{4{`IQSPI_CSN(1)}}) |\
|
`define EQSPI_CSN_NUM(id) ((`id)+(`ALL_DEV_NUM)*2)
|
||||||
(`IQSPI_MISO(2) & ~{4{`IQSPI_CSN(2)}}) |\
|
//`define AQSPI_CSN_NUM(id) ((`id)+(`ALL_DEV_NUM)*3)
|
||||||
(`IQSPI_MISO(3) & ~{4{`IQSPI_CSN(3)}}) |\
|
|
||||||
(`IQSPI_MISO(4) & ~{4{`IQSPI_CSN(4)}}) |\
|
|
||||||
(`EQSPI_MISO(0) & ~{4{`EQSPI_CSN(0)}}) |\
|
`define IQSPI_CSN(id) spi_csn[`IQSPI_CSN_NUM(`id)]
|
||||||
(`EQSPI_MISO(1) & ~{4{`EQSPI_CSN(1)}}) |\
|
`define ESPI_CSN(id) spi_csn[`ESPI_CSN_NUM(`id)]
|
||||||
(`EQSPI_MISO(2) & ~{4{`EQSPI_CSN(2)}}) |\
|
`define EQSPI_CSN(id) spi_csn[`EQSPI_CSN_NUM(`id)]
|
||||||
(`EQSPI_MISO(3) & ~{4{`EQSPI_CSN(3)}}) |\
|
//`define AQSPI_CSN(id) spi_csn[`AQSPI_CSN_NUM(`id)]
|
||||||
(`EQSPI_MISO(4) & ~{4{`EQSPI_CSN(4)}})
|
|
||||||
`define SPI_MUX_MISO_INIT \
|
`define QSPI_MUX_MISO_INIT \
|
||||||
( spi_miso[0] & ~`ESPI_CSN(0)) |\
|
(`IQSPI_MISO(0) & ~{4{`IQSPI_CSN(0)}}) |\
|
||||||
( spi_miso[1] & ~`ESPI_CSN(1)) |\
|
(`IQSPI_MISO(1) & ~{4{`IQSPI_CSN(1)}}) |\
|
||||||
( spi_miso[2] & ~`ESPI_CSN(2)) |\
|
(`IQSPI_MISO(2) & ~{4{`IQSPI_CSN(2)}}) |\
|
||||||
( spi_miso[3] & ~`ESPI_CSN(3)) |\
|
(`IQSPI_MISO(3) & ~{4{`IQSPI_CSN(3)}}) |\
|
||||||
( spi_miso[4] & ~`ESPI_CSN(4))
|
(`IQSPI_MISO(4) & ~{4{`IQSPI_CSN(4)}}) |\
|
||||||
|
(`EQSPI_MISO(0) & ~{4{`EQSPI_CSN(0)}}) |\
|
||||||
|
(`EQSPI_MISO(1) & ~{4{`EQSPI_CSN(1)}}) |\
|
||||||
|
(`EQSPI_MISO(2) & ~{4{`EQSPI_CSN(2)}}) |\
|
||||||
|
(`EQSPI_MISO(3) & ~{4{`EQSPI_CSN(3)}}) |\
|
||||||
|
(`EQSPI_MISO(4) & ~{4{`EQSPI_CSN(4)}})
|
||||||
|
`define SPI_MUX_MISO_INIT \
|
||||||
|
( spi_miso[0] & ~`ESPI_CSN(0)) |\
|
||||||
|
( spi_miso[1] & ~`ESPI_CSN(1)) |\
|
||||||
|
( spi_miso[2] & ~`ESPI_CSN(2)) |\
|
||||||
|
( spi_miso[3] & ~`ESPI_CSN(3)) |\
|
||||||
|
( spi_miso[4] & ~`ESPI_CSN(4))
|
||||||
`endif
|
`endif
|
||||||
wire [(`DEV_NUM - 1):0] dDat_w;
|
wire [(`DEV_NUM - 1):0] dDat_w;
|
||||||
wire [(`DEV_NUM - 1):0] uDat_w;
|
wire [(`DEV_NUM - 1):0] uDat_w;
|
||||||
@@ -90,7 +97,7 @@ module ShinTopSpiTb(
|
|||||||
wire qspi_sck;
|
wire qspi_sck;
|
||||||
wire [3:0] qspi_mosi;
|
wire [3:0] qspi_mosi;
|
||||||
//wire [40-1:0] qspi_miso;
|
//wire [40-1:0] qspi_miso;
|
||||||
wire [(`ALL_DEV_NUM * 4 * 2 - 1):0] qspi_miso;
|
wire [(`ALL_DEV_NUM * 4 * 3 - 1):0] qspi_miso;
|
||||||
|
|
||||||
integer spidata_file;
|
integer spidata_file;
|
||||||
integer c_line;
|
integer c_line;
|
||||||
@@ -165,6 +172,12 @@ ShinTop s_ShinTop_Mst(
|
|||||||
.io_oqspi_isDirIn(),
|
.io_oqspi_isDirIn(),
|
||||||
.io_oqspi_csn(`EQSPI_CSN(0)),
|
.io_oqspi_csn(`EQSPI_CSN(0)),
|
||||||
|
|
||||||
|
.io_aqspi_sck(qspi_sck),
|
||||||
|
.io_aqspi_mosi(qspi_mosi),
|
||||||
|
.io_aqspi_miso(`AQSPI_MISO(0)),
|
||||||
|
.io_aqspi_isDirIn(),
|
||||||
|
.io_aqspi_csn(`AQSPI_CSN(0)),
|
||||||
|
|
||||||
.io_isSoftReset(isSoftReset[0]),
|
.io_isSoftReset(isSoftReset[0]),
|
||||||
.io_interrupt(io_int_sig[0]),
|
.io_interrupt(io_int_sig[0]),
|
||||||
.io_latchPin_0(latch0),
|
.io_latchPin_0(latch0),
|
||||||
@@ -553,6 +566,7 @@ end
|
|||||||
//DEV_NUM
|
//DEV_NUM
|
||||||
//ALL_DEV_NUM
|
//ALL_DEV_NUM
|
||||||
wire isQspi = (idx >= 0 && idx <= (`ALL_DEV_NUM - 1)) || idx >= (`ALL_DEV_NUM * 2);
|
wire isQspi = (idx >= 0 && idx <= (`ALL_DEV_NUM - 1)) || idx >= (`ALL_DEV_NUM * 2);
|
||||||
|
wire isAQspi = (idx >= (`ALL_DEV_NUM * 3));
|
||||||
wire [11:0] nextByteCnt = byteCnt + 1;
|
wire [11:0] nextByteCnt = byteCnt + 1;
|
||||||
|
|
||||||
//输出
|
//输出
|
||||||
@@ -575,21 +589,38 @@ always @(posedge sck) begin
|
|||||||
end else begin
|
end else begin
|
||||||
bitCnt <= bitCnt + 1;
|
bitCnt <= bitCnt + 1;
|
||||||
end
|
end
|
||||||
|
if ( isAQspi ) begin
|
||||||
if( &bitCnt ) begin
|
if( &bitCnt ) begin
|
||||||
byteCnt <= byteCnt +1;
|
byteCnt <= byteCnt +1;
|
||||||
transCnt <= transCnt + 1;
|
transCnt <= transCnt + 1;
|
||||||
if( txBuf[2] === 8'h80 & nextByteCnt >= 4) begin
|
if( (txBuf[2] & 8'h80) === 8'h80 & nextByteCnt >= 5) begin
|
||||||
rxBuf[byteCnt] <= exChangeRegi;
|
rxBuf[byteCnt] <= exChangeRegi;
|
||||||
//$display("spi read out %x", exChangeRegi);
|
//$display("spi read out %x", exChangeRegi);
|
||||||
end
|
end
|
||||||
if( txBuf[2] === 8'h80 & nextByteCnt >= 3) begin
|
if( (txBuf[2] & 8'h80) === 8'h80 & nextByteCnt >= 4) begin
|
||||||
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
||||||
|
end else begin
|
||||||
|
exChangeRegi <= 0;
|
||||||
|
end
|
||||||
end else begin
|
end else begin
|
||||||
exChangeRegi <= 0;
|
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
||||||
end
|
end
|
||||||
end else begin
|
end else begin
|
||||||
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
if( &bitCnt ) begin
|
||||||
|
byteCnt <= byteCnt +1;
|
||||||
|
transCnt <= transCnt + 1;
|
||||||
|
if( txBuf[2] === 8'h80 & nextByteCnt >= 4) begin
|
||||||
|
rxBuf[byteCnt] <= exChangeRegi;
|
||||||
|
//$display("spi read out %x", exChangeRegi);
|
||||||
|
end
|
||||||
|
if( txBuf[2] === 8'h80 & nextByteCnt >= 3) begin
|
||||||
|
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
||||||
|
end else begin
|
||||||
|
exChangeRegi <= 0;
|
||||||
|
end
|
||||||
|
end else begin
|
||||||
|
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end else begin
|
end else begin
|
||||||
isBusy <= #5 1'b0;
|
isBusy <= #5 1'b0;
|
||||||
@@ -607,7 +638,12 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
|
|||||||
begin
|
begin
|
||||||
txBuf[0] <= saddress[15:8];
|
txBuf[0] <= saddress[15:8];
|
||||||
txBuf[1] <= saddress[7:0];
|
txBuf[1] <= saddress[7:0];
|
||||||
txBuf[2] <= scmd;
|
if (isAQspi) begin
|
||||||
|
txBuf[2] <= (scmd | slength[12:8]);
|
||||||
|
txBuf[3] <= slength[7:0];
|
||||||
|
end else begin
|
||||||
|
txBuf[2] <= scmd;
|
||||||
|
end
|
||||||
|
|
||||||
length <= slength + 3;
|
length <= slength + 3;
|
||||||
idx <= sidx;
|
idx <= sidx;
|
||||||
@@ -622,19 +658,33 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
|
|||||||
begin
|
begin
|
||||||
//$fwrite(spidata_file, "------------%5t------------\n", $realtime);
|
//$fwrite(spidata_file, "------------%5t------------\n", $realtime);
|
||||||
$fwrite(spidata_file, "T:%t \tdev:%4d, addr:0x%02h%02h, %s, len:%4d\n",
|
$fwrite(spidata_file, "T:%t \tdev:%4d, addr:0x%02h%02h, %s, len:%4d\n",
|
||||||
$realtime, ((sidx >= `ALL_DEV_NUM)? ((sidx >= (`ALL_DEV_NUM * 2))? (sidx - (`ALL_DEV_NUM * 2)):(sidx - `ALL_DEV_NUM)):sidx), txBuf[0], txBuf[1],
|
$realtime,
|
||||||
((txBuf[2] == 0)? "Write":" Read"), slength);
|
sidx % (`ALL_DEV_NUM),
|
||||||
|
txBuf[0],
|
||||||
|
txBuf[1],
|
||||||
|
(((txBuf[2] & 8'h80) == 0)? "Write":" Read"),
|
||||||
|
slength);
|
||||||
|
|
||||||
|
if (isAQspi) begin _pos = 4; end
|
||||||
|
else begin _pos = 3; end
|
||||||
|
|
||||||
if ( ((saddress == 16'h0800)
|
if ( ((saddress == 16'h0800)
|
||||||
|| (saddress == 16'h1000)
|
|| (saddress == 16'h1000)
|
||||||
|| (saddress == 16'h1800)
|
|| (saddress == 16'h1800)
|
||||||
|| (saddress == 16'h2000)
|
|| (saddress == 16'h2000)
|
||||||
|| (saddress == 16'h2800)
|
|| (saddress == 16'h2800)
|
||||||
|| (saddress == 16'h3000)
|
|| (saddress == 16'h3000)
|
||||||
|| (saddress == 16'h3800)
|
|| (saddress == 16'h3800)
|
||||||
|| (saddress == 16'h4000))
|
|| (saddress == 16'h4000)
|
||||||
&& ((sidx == 0) || (sidx == `ALL_DEV_NUM) || (sidx == (`ALL_DEV_NUM * 2)))) begin
|
)
|
||||||
_pos = 3;
|
&& ((sidx == 0)
|
||||||
|
|| (sidx == `ALL_DEV_NUM)
|
||||||
|
|| (sidx == (`ALL_DEV_NUM * 2))
|
||||||
|
|| (sidx == (`ALL_DEV_NUM * 3))
|
||||||
|
)
|
||||||
|
) begin
|
||||||
|
|
||||||
|
|
||||||
for (integer _k = 0; _k < 4; _k++) begin
|
for (integer _k = 0; _k < 4; _k++) begin
|
||||||
if (scmd == 0) begin
|
if (scmd == 0) begin
|
||||||
$fwrite(spidata_file, "%02h ", txBuf[_k + _pos]);
|
$fwrite(spidata_file, "%02h ", txBuf[_k + _pos]);
|
||||||
@@ -717,9 +767,9 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
|
|||||||
end else begin
|
end else begin
|
||||||
for (integer i=0; i<slength; i++) begin
|
for (integer i=0; i<slength; i++) begin
|
||||||
if (scmd == 0) begin
|
if (scmd == 0) begin
|
||||||
$fwrite(spidata_file, "%02h ", txBuf[i + 3]);
|
$fwrite(spidata_file, "%02h ", txBuf[i + _pos]);
|
||||||
end else begin
|
end else begin
|
||||||
$fwrite(spidata_file, "%02h ", rxBuf[i + 3]);
|
$fwrite(spidata_file, "%02h ", rxBuf[i + _pos]);
|
||||||
end
|
end
|
||||||
c_line = 0;
|
c_line = 0;
|
||||||
if ((i+1)%16 == 0) begin
|
if ((i+1)%16 == 0) begin
|
||||||
@@ -799,9 +849,11 @@ end
|
|||||||
|
|
||||||
|
|
||||||
`define INTERFACE_IDX 0 //internal spi
|
`define INTERFACE_IDX 0 //internal spi
|
||||||
|
`define ARRAY_IDX_OFF 3
|
||||||
`define IF_IDX(idx) ((`INTERFACE_IDX)+(idx))
|
`define IF_IDX(idx) ((`INTERFACE_IDX)+(idx))
|
||||||
`define IF_IQSPI(idx) ((idx))
|
`define IF_IQSPI(idx) ((idx))
|
||||||
`define IF_OQSPI(idx) ((`ALL_DEV_NUM * 2) + (idx))
|
`define IF_OQSPI(idx) ((`ALL_DEV_NUM * 2) + (idx))
|
||||||
|
`define IF_AQSPI(idx) ((`ALL_DEV_NUM * 3) + (idx))
|
||||||
`define IF_OSPI(idx) ((`ALL_DEV_NUM) + (idx))
|
`define IF_OSPI(idx) ((`ALL_DEV_NUM) + (idx))
|
||||||
`define SPI_WRITE 8'h00
|
`define SPI_WRITE 8'h00
|
||||||
`define SPI_READ 8'h80
|
`define SPI_READ 8'h80
|
||||||
@@ -830,25 +882,6 @@ end
|
|||||||
`define MST_RX_LEN_ADDR (`MST_RX0_LEN_ADDR)
|
`define MST_RX_LEN_ADDR (`MST_RX0_LEN_ADDR)
|
||||||
`define MST_TX_LEN_ADDR (`MST_TX0_LEN_ADDR)
|
`define MST_TX_LEN_ADDR (`MST_TX0_LEN_ADDR)
|
||||||
|
|
||||||
`define SETTING_ENCRYPTION \
|
|
||||||
txBuf[3 + 0] = 8'hb1;\
|
|
||||||
txBuf[3 + 1] = 8'hd2;\
|
|
||||||
txBuf[3 + 2] = 8'hf1;\
|
|
||||||
txBuf[3 + 3] = 8'h03;\
|
|
||||||
txBuf[3 + 4] = 8'hf2;\
|
|
||||||
txBuf[3 + 5] = 8'h01;\
|
|
||||||
txBuf[3 + 6] = 8'hf5;\
|
|
||||||
txBuf[3 + 7] = 8'h04;\
|
|
||||||
txBuf[3 + 8] = 8'ha1;\
|
|
||||||
txBuf[3 + 9] = 8'h01;\
|
|
||||||
txBuf[3 + 10] = 8'hd3;\
|
|
||||||
txBuf[3 + 11] = 8'h07;\
|
|
||||||
txBuf[3 + 12] = 8'hc8;\
|
|
||||||
txBuf[3 + 13] = 8'hef;\
|
|
||||||
txBuf[3 + 14] = 8'hb9;\
|
|
||||||
txBuf[3 + 15] = 8'h52;\
|
|
||||||
txBuf[3 + 16] = 8'h01;
|
|
||||||
|
|
||||||
`define BEGIN_TESTCASE(filename) \
|
`define BEGIN_TESTCASE(filename) \
|
||||||
integer logh;\
|
integer logh;\
|
||||||
logh = $fopen(filename, "w")
|
logh = $fopen(filename, "w")
|
||||||
@@ -860,14 +893,14 @@ end
|
|||||||
if (cmd == (`SPI_WRITE)) begin \
|
if (cmd == (`SPI_WRITE)) begin \
|
||||||
f_write(logh, addr, cmd, len);\
|
f_write(logh, addr, cmd, len);\
|
||||||
for (integer _k = 0; _k < len; _k++) begin \
|
for (integer _k = 0; _k < len; _k++) begin \
|
||||||
$fwrite(logh, "8'h%02h ", txBuf[3 + _k]); \
|
$fwrite(logh, "8'h%02h ", txBuf[`ARRAY_IDX_OFF + _k]); \
|
||||||
end \
|
end \
|
||||||
spi_trans(addr, cmd, len, iface); \
|
spi_trans(addr, cmd, len, iface); \
|
||||||
end else begin \
|
end else begin \
|
||||||
spi_trans(addr, cmd, len, iface); \
|
spi_trans(addr, cmd, len, iface); \
|
||||||
f_write(logh, addr, cmd, len);\
|
f_write(logh, addr, cmd, len);\
|
||||||
for (integer _k = 0; _k < len; _k++) begin \
|
for (integer _k = 0; _k < len; _k++) begin \
|
||||||
$fwrite(logh, "8'h%02h ", rxBuf[3 + _k]); \
|
$fwrite(logh, "8'h%02h ", rxBuf[`ARRAY_IDX_OFF + _k]); \
|
||||||
end \
|
end \
|
||||||
end \
|
end \
|
||||||
$fwrite(logh, "\n")
|
$fwrite(logh, "\n")
|
||||||
@@ -914,10 +947,17 @@ task wait_comm_finished(input [16:0] dev_idx);
|
|||||||
while (is_run == 1) begin
|
while (is_run == 1) begin
|
||||||
txBuf[0] = 8'h00;
|
txBuf[0] = 8'h00;
|
||||||
txBuf[1] = 8'h74;
|
txBuf[1] = 8'h74;
|
||||||
txBuf[2] = `SPI_READ;
|
if (isAQspi) begin
|
||||||
|
txBuf[2] <= (`SPI_READ | 8'h0);
|
||||||
|
txBuf[3] <= 8'h04;
|
||||||
|
length = 8'h08;
|
||||||
|
end else begin
|
||||||
|
txBuf[2] <= `SPI_READ;
|
||||||
|
length = 8'h07;
|
||||||
|
end
|
||||||
|
|
||||||
length = 8'h07;
|
|
||||||
idx = `IF_IQSPI(dev_idx);
|
idx = `IF_IDX(dev_idx);
|
||||||
|
|
||||||
#5
|
#5
|
||||||
@(negedge sck)
|
@(negedge sck)
|
||||||
@@ -931,11 +971,11 @@ task wait_comm_finished(input [16:0] dev_idx);
|
|||||||
end
|
end
|
||||||
#2000
|
#2000
|
||||||
//$display("%x %x", rxBuf[3], rxBuf[6]);
|
//$display("%x %x", rxBuf[3], rxBuf[6]);
|
||||||
if ((rxBuf[3] & 8'h02) == 8'h02)
|
if ((rxBuf[`ARRAY_IDX_OFF] & 8'h02) == 8'h02)
|
||||||
begin
|
begin
|
||||||
is_run = 0;
|
is_run = 0;
|
||||||
end
|
end
|
||||||
if ((rxBuf[6] & 8'h60) != 8'h00)
|
if ((rxBuf[`ARRAY_IDX_OFF+3] & 8'h60) != 8'h00)
|
||||||
begin
|
begin
|
||||||
$display("error occur");
|
$display("error occur");
|
||||||
is_run = 0;
|
is_run = 0;
|
||||||
@@ -977,7 +1017,7 @@ initial begin
|
|||||||
begin:SETTING_INTERFACE
|
begin:SETTING_INTERFACE
|
||||||
if ((`INTERFACE_IDX) == `ALL_DEV_NUM) begin
|
if ((`INTERFACE_IDX) == `ALL_DEV_NUM) begin
|
||||||
$fdisplay(spidata_file, "\n\n从内部QSPI配置使用外部的SPI接口访问EasyBus");
|
$fdisplay(spidata_file, "\n\n从内部QSPI配置使用外部的SPI接口访问EasyBus");
|
||||||
txBuf[0+3] = 8'h01;
|
txBuf[`ARRAY_IDX_OFF] = 8'h01;
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||||
@@ -985,7 +1025,15 @@ initial begin
|
|||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||||
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 2)) begin
|
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 2)) begin
|
||||||
$fdisplay(spidata_file, "\n\n从内部QSPI配置使用外部的QSPI接口访问EasyBus");
|
$fdisplay(spidata_file, "\n\n从内部QSPI配置使用外部的QSPI接口访问EasyBus");
|
||||||
txBuf[0+3] = 8'h02;
|
txBuf[`ARRAY_IDX_OFF] = 8'h02;
|
||||||
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||||
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||||
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||||
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
|
||||||
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||||
|
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 3)) begin
|
||||||
|
$fdisplay(spidata_file, "\n\n从内部QSPI配置使用外部的ASPI接口访问EasyBus");
|
||||||
|
txBuf[`ARRAY_IDX_OFF] = 8'h03;
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||||
@@ -993,7 +1041,7 @@ initial begin
|
|||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
|
||||||
end else begin
|
end else begin
|
||||||
$fdisplay(spidata_file, "\n\n从内部QSPI接口访问EasyBus");
|
$fdisplay(spidata_file, "\n\n从内部QSPI接口访问EasyBus");
|
||||||
txBuf[0+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF] = 8'h00;
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
|
||||||
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
|
||||||
@@ -1022,10 +1070,10 @@ initial begin
|
|||||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
|
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
|
||||||
|
|
||||||
$fdisplay(spidata_file, "-清中断");
|
$fdisplay(spidata_file, "-清中断");
|
||||||
txBuf[0+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
|
||||||
txBuf[1+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
|
||||||
txBuf[2+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||||
txBuf[3+3] = 8'h80;
|
txBuf[`ARRAY_IDX_OFF+3] = 8'h80;
|
||||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||||
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||||
@@ -1052,10 +1100,10 @@ initial begin
|
|||||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||||
|
|
||||||
$fdisplay(spidata_file, "-设置中断");
|
$fdisplay(spidata_file, "-设置中断");
|
||||||
txBuf[0+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
|
||||||
txBuf[1+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
|
||||||
txBuf[2+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||||
txBuf[3+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
|
||||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||||
@@ -1070,16 +1118,16 @@ initial begin
|
|||||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||||
|
|
||||||
$fdisplay(spidata_file, "-设置中断");
|
$fdisplay(spidata_file, "-设置中断");
|
||||||
txBuf[0+3] = 8'h0F;
|
txBuf[`ARRAY_IDX_OFF+0] = 8'h0F;
|
||||||
txBuf[1+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
|
||||||
txBuf[2+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||||
txBuf[3+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
|
||||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
|
||||||
|
|
||||||
txBuf[0+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
|
||||||
txBuf[1+3] = 8'hFF;
|
txBuf[`ARRAY_IDX_OFF+1] = 8'hFF;
|
||||||
txBuf[2+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
|
||||||
txBuf[3+3] = 8'h00;
|
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
|
||||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
|
||||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
|
||||||
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
|
||||||
@@ -1093,8 +1141,8 @@ initial begin
|
|||||||
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
|
||||||
|
|
||||||
$fdisplay(spidata_file, "-中断改为脉冲模式");
|
$fdisplay(spidata_file, "-中断改为脉冲模式");
|
||||||
txBuf[3] = 8'h10;
|
txBuf[`ARRAY_IDX_OFF+0] = 8'h10;
|
||||||
txBuf[4] = 8'h8A;
|
txBuf[`ARRAY_IDX_OFF+1] = 8'h8A;
|
||||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
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(1)) );
|
||||||
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(2)) );
|
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(2)) );
|
||||||
|
|||||||
@@ -854,25 +854,6 @@ end
|
|||||||
`define MST_RX_LEN_ADDR (`MST_RX0_LEN_ADDR)
|
`define MST_RX_LEN_ADDR (`MST_RX0_LEN_ADDR)
|
||||||
`define MST_TX_LEN_ADDR (`MST_TX0_LEN_ADDR)
|
`define MST_TX_LEN_ADDR (`MST_TX0_LEN_ADDR)
|
||||||
|
|
||||||
`define SETTING_ENCRYPTION \
|
|
||||||
txBuf[3 + 0] = 8'hb1;\
|
|
||||||
txBuf[3 + 1] = 8'hd2;\
|
|
||||||
txBuf[3 + 2] = 8'hf1;\
|
|
||||||
txBuf[3 + 3] = 8'h03;\
|
|
||||||
txBuf[3 + 4] = 8'hf2;\
|
|
||||||
txBuf[3 + 5] = 8'h01;\
|
|
||||||
txBuf[3 + 6] = 8'hf5;\
|
|
||||||
txBuf[3 + 7] = 8'h04;\
|
|
||||||
txBuf[3 + 8] = 8'ha1;\
|
|
||||||
txBuf[3 + 9] = 8'h01;\
|
|
||||||
txBuf[3 + 10] = 8'hd3;\
|
|
||||||
txBuf[3 + 11] = 8'h07;\
|
|
||||||
txBuf[3 + 12] = 8'hc8;\
|
|
||||||
txBuf[3 + 13] = 8'hef;\
|
|
||||||
txBuf[3 + 14] = 8'hb9;\
|
|
||||||
txBuf[3 + 15] = 8'h52;\
|
|
||||||
txBuf[3 + 16] = 8'h01;
|
|
||||||
|
|
||||||
`define BEGIN_TESTCASE(filename) \
|
`define BEGIN_TESTCASE(filename) \
|
||||||
integer logh;\
|
integer logh;\
|
||||||
logh = $fopen(filename, "w")
|
logh = $fopen(filename, "w")
|
||||||
|
|||||||
@@ -193,30 +193,30 @@ class GenPkt(object):
|
|||||||
|
|
||||||
if gen_pkt_type != 0:
|
if gen_pkt_type != 0:
|
||||||
f.write(define_str + "_len \t%d\n"%(pkt_len))
|
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"%(
|
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"%(
|
||||||
3, pkt_len & 0xff,
|
0, pkt_len & 0xff,
|
||||||
4, pkt_len >> 8
|
1, pkt_len >> 8
|
||||||
))
|
))
|
||||||
|
|
||||||
f.write(define_str + "(array) \\\n")
|
f.write(define_str + "(array) \\\n")
|
||||||
for _k in range(i):
|
for _k in range(i):
|
||||||
if _k < (i - 1):
|
if _k < (i - 1):
|
||||||
if type(self.pkt_buf[_k]) == int:
|
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:
|
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:
|
else:
|
||||||
if type(self.pkt_buf[_k]) == int:
|
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:
|
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:
|
for md in self.sub_pkt:
|
||||||
if md[0] == 2:
|
if md[0] == 2:
|
||||||
f.write("%s\n"%(md[1],))
|
f.write("%s\n"%(md[1],))
|
||||||
else:
|
else:
|
||||||
for _k in range(i):
|
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()
|
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):
|
def genTrgTransPktCode(gen_name, sm_idx, wlog=True, dev_idx=0):
|
||||||
return '''\n//请求发送\n'''\
|
return '''\n//请求发送\n'''\
|
||||||
+ '''$fdisplay(spidata_file, "--请求发送");\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)
|
+ '''%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):
|
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
|
data = data | 0x4000
|
||||||
return '''//写入替换时间戳替换地址\n'''\
|
return '''//写入替换时间戳替换地址\n'''\
|
||||||
+ '''$fdisplay(spidata_file, "--增加时间戳插入");\n'''\
|
+ '''$fdisplay(spidata_file, "--增加时间戳插入");\n'''\
|
||||||
+ '''txBuf[0+3] = 8'h%x;\n'''%(data & 0xff, )\
|
+ '''txBuf[`ARRAY_IDX_OFF + 0] = 8'h%x;\n'''%(data & 0xff, )\
|
||||||
+ '''txBuf[1+3] = 8'h%x;\n'''%((data >> 8) & 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)
|
+ '''%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):
|
def genDisableInsertTimeCode(wlog=True, dev_idx=0):
|
||||||
return '''\n//清除替换时间戳替换地址\n'''\
|
return '''\n//清除替换时间戳替换地址\n'''\
|
||||||
+ '''$fdisplay(spidata_file, "--清除时间戳插入");\n'''\
|
+ '''$fdisplay(spidata_file, "--清除时间戳插入");\n'''\
|
||||||
+ '''txBuf[0+3] = 8'h00;\n'''\
|
+ '''txBuf[`ARRAY_IDX_OFF + 0] = 8'h00;\n'''\
|
||||||
+ '''txBuf[1+3] = 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)
|
+ '''%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):
|
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):
|
for i in range(data_len):
|
||||||
data.append((i + dev) & 0xff)
|
data.append((i + dev) & 0xff)
|
||||||
|
|
||||||
code = '''txBuf[3] = 8'h%02x;\n'''%(data_len & 0xff, )\
|
code = '''txBuf[`ARRAY_IDX_OFF + 0] = 8'h%02x;\n'''%(data_len & 0xff, )\
|
||||||
+ '''txBuf[4] = 8'h%02x;\n'''%(int(data_len/256) & 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)
|
+ '''%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):
|
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)
|
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
|
return code
|
||||||
|
|||||||
@@ -1619,7 +1619,7 @@ def tc24():
|
|||||||
|
|
||||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
||||||
@@ -2718,22 +2718,24 @@ def tc31():
|
|||||||
+genIFRwDataCode(4, 0x500, False, 0x48)
|
+genIFRwDataCode(4, 0x500, False, 0x48)
|
||||||
|
|
||||||
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''latch_t1 = _temp_time;\n\n'''
|
+ '''latch_t1 = _temp_time;\n\n'''
|
||||||
|
|
||||||
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(4)));\n'''
|
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(4)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''latch_t2 = _temp_time;\n'''
|
+ '''latch_t2 = _temp_time;\n'''
|
||||||
+ '''_temp_time = latch_t1 - latch_t2;\n\n'''
|
+ '''_temp_time = latch_t1 - latch_t2;\n\n'''
|
||||||
|
|
||||||
+ '''txBuf[3] = _temp_time[7:0];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF] = _temp_time[7:0];\n'''
|
||||||
+ '''txBuf[4] = _temp_time[15:8];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+1] = _temp_time[15:8];\n'''
|
||||||
+ '''txBuf[5] = _temp_time[23:16];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+2] = _temp_time[23:16];\n'''
|
||||||
+ '''txBuf[6] = _temp_time[31:24];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+3] = _temp_time[31:24];\n'''
|
||||||
+ '''txBuf[7] = _temp_time[39:32];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+4] = _temp_time[39:32];\n'''
|
||||||
+ '''txBuf[8] = _temp_time[47:40];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+5] = _temp_time[47:40];\n'''
|
||||||
+ '''txBuf[9] = _temp_time[55:48];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+6] = _temp_time[55:48];\n'''
|
||||||
+ '''txBuf[10] = _temp_time[63:56];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+7] = _temp_time[63:56];\n'''
|
||||||
+ '''spi_trans( (16'h0148), (`SPI_WRITE), (8), (`IF_IDX(4)));\n'''
|
+ '''spi_trans( (16'h0148), (`SPI_WRITE), (8), (`IF_IDX(4)));\n'''
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -2898,22 +2900,24 @@ def tc31():
|
|||||||
+genIFRwDataCode(4, 0x500, False, 0x48)
|
+genIFRwDataCode(4, 0x500, False, 0x48)
|
||||||
|
|
||||||
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''latch_t1 = _temp_time;\n\n'''
|
+ '''latch_t1 = _temp_time;\n\n'''
|
||||||
|
|
||||||
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(4)));\n'''
|
+ '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(4)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''latch_t2 = _temp_time;\n'''
|
+ '''latch_t2 = _temp_time;\n'''
|
||||||
+ '''_temp_time = latch_t1 - latch_t2;\n\n'''
|
+ '''_temp_time = latch_t1 - latch_t2;\n\n'''
|
||||||
|
|
||||||
+ '''txBuf[3] = _temp_time[7:0];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF] = _temp_time[7:0];\n'''
|
||||||
+ '''txBuf[4] = _temp_time[15:8];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+1] = _temp_time[15:8];\n'''
|
||||||
+ '''txBuf[5] = _temp_time[23:16];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+2] = _temp_time[23:16];\n'''
|
||||||
+ '''txBuf[6] = _temp_time[31:24];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+3] = _temp_time[31:24];\n'''
|
||||||
+ '''txBuf[7] = _temp_time[39:32];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+4] = _temp_time[39:32];\n'''
|
||||||
+ '''txBuf[8] = _temp_time[47:40];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+5] = _temp_time[47:40];\n'''
|
||||||
+ '''txBuf[9] = _temp_time[55:48];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+6] = _temp_time[55:48];\n'''
|
||||||
+ '''txBuf[10] = _temp_time[63:56];\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+7] = _temp_time[63:56];\n'''
|
||||||
+ '''spi_trans( (16'h0148), (`SPI_WRITE), (8), (`IF_IDX(4)));\n'''
|
+ '''spi_trans( (16'h0148), (`SPI_WRITE), (8), (`IF_IDX(4)));\n'''
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -246,6 +246,12 @@ def __GenDevice(id, TerminateNode = False):
|
|||||||
+"\t.io_oqspi_isDirIn(),\n"
|
+"\t.io_oqspi_isDirIn(),\n"
|
||||||
+"\t.io_oqspi_csn(`EQSPI_CSN(%d)),\n\n"%(id + 1, )
|
+"\t.io_oqspi_csn(`EQSPI_CSN(%d)),\n\n"%(id + 1, )
|
||||||
|
|
||||||
|
+"\t.io_aqspi_sck(qspi_sck),\n"
|
||||||
|
+"\t.io_aqspi_mosi(qspi_mosi),\n"
|
||||||
|
+"\t.io_aqspi_miso(`AQSPI_MISO(%d)),\n"%(id + 1, )
|
||||||
|
+"\t.io_aqspi_isDirIn(),\n"
|
||||||
|
+"\t.io_aqspi_csn(`AQSPI_CSN(%d)),\n"%(id + 1, )
|
||||||
|
|
||||||
+"\t.io_isSoftReset(isSoftReset[%d]),\n"%(id + 1, )
|
+"\t.io_isSoftReset(isSoftReset[%d]),\n"%(id + 1, )
|
||||||
+"\t.io_interrupt(io_int_sig[%d]),\n"%(id + 1, )
|
+"\t.io_interrupt(io_int_sig[%d]),\n"%(id + 1, )
|
||||||
+"\t.io_latchPin_0(latch0),\n"
|
+"\t.io_latchPin_0(latch0),\n"
|
||||||
@@ -265,21 +271,27 @@ def __gen_slv_dev_predef(num):
|
|||||||
|
|
||||||
code_predef =("`define DEV_NUM %d //slave num\n"%(num, )
|
code_predef =("`define DEV_NUM %d //slave num\n"%(num, )
|
||||||
+"`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master\n"
|
+"`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master\n"
|
||||||
+"`define SPI_CSN_NUM (`ALL_DEV_NUM * 3)\n"
|
+"`define SPI_CSN_NUM (`ALL_DEV_NUM * 4)\n\n"
|
||||||
|
|
||||||
+"`define HW_SERIAL 48'h31303050584c //(48'h4c5850303031)\n"
|
+"`define HW_SERIAL 48'h31303050584c //(48'h4c5850303031)\n\n"
|
||||||
|
|
||||||
+"`define IQSPI_PINS(N) (N*4+3):(N*4)\n"
|
+"`define IQSPI_PINS(N) (N*4+3):(N*4)\n"
|
||||||
+"`define EQSPI_PINS(N) ((N + `ALL_DEV_NUM)*4+3):((N + `ALL_DEV_NUM)*4)\n"
|
+"`define EQSPI_PINS(N) ((N + `ALL_DEV_NUM)*4+3):((N + `ALL_DEV_NUM)*4)\n"
|
||||||
|
+"`define AQSPI_PINS(N) ((N + `ALL_DEV_NUM * 2)*4+3):((N + `ALL_DEV_NUM * 2)*4)\n\n"
|
||||||
|
|
||||||
+"`define IQSPI_MISO(N) qspi_miso[`IQSPI_PINS(N)]\n"
|
+"`define IQSPI_MISO(N) qspi_miso[`IQSPI_PINS(N)]\n"
|
||||||
+"`define EQSPI_MISO(N) qspi_miso[`EQSPI_PINS(N)]\n"
|
+"`define EQSPI_MISO(N) qspi_miso[`EQSPI_PINS(N)]\n"
|
||||||
|
+"`define AQSPI_MISO(N) qspi_miso[`AQSPI_PINS(N)]\n\n"
|
||||||
|
|
||||||
+"`define IQSPI_CSN_NUM(id) (id)\n"
|
+"`define IQSPI_CSN_NUM(id) (id)\n"
|
||||||
+"`define ESPI_CSN_NUM(id) ((id)+(`ALL_DEV_NUM))\n"
|
+"`define ESPI_CSN_NUM(id) ((id)+(`ALL_DEV_NUM))\n"
|
||||||
+"`define EQSPI_CSN_NUM(id) ((id)+(`ALL_DEV_NUM)*2)\n"
|
+"`define EQSPI_CSN_NUM(id) ((id)+(`ALL_DEV_NUM)*2)\n"
|
||||||
|
+"`define AQSPI_CSN_NUM(id) ((id)+(`ALL_DEV_NUM)*3)\n\n"
|
||||||
|
|
||||||
+"`define IQSPI_CSN(id) spi_csn[`IQSPI_CSN_NUM(id)]\n"
|
+"`define IQSPI_CSN(id) spi_csn[`IQSPI_CSN_NUM(id)]\n"
|
||||||
+"`define ESPI_CSN(id) spi_csn[`ESPI_CSN_NUM(id)]\n"
|
+"`define ESPI_CSN(id) spi_csn[`ESPI_CSN_NUM(id)]\n"
|
||||||
+"`define EQSPI_CSN(id) spi_csn[`EQSPI_CSN_NUM(id)]\n"
|
+"`define EQSPI_CSN(id) spi_csn[`EQSPI_CSN_NUM(id)]\n"
|
||||||
|
+"`define AQSPI_CSN(id) spi_csn[`AQSPI_CSN_NUM(id)]\n\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
code_qspi_mux_init = "`define QSPI_MUX_MISO_INIT \\\n"
|
code_qspi_mux_init = "`define QSPI_MUX_MISO_INIT \\\n"
|
||||||
@@ -290,7 +302,11 @@ def __gen_slv_dev_predef(num):
|
|||||||
|
|
||||||
for i in range(num):
|
for i in range(num):
|
||||||
code_qspi_mux_init_item = code_qspi_mux_init_item + "\t\t(`EQSPI_MISO(%d) & ~{4{`EQSPI_CSN(%d)}}) |\\\n"%(i, i)
|
code_qspi_mux_init_item = code_qspi_mux_init_item + "\t\t(`EQSPI_MISO(%d) & ~{4{`EQSPI_CSN(%d)}}) |\\\n"%(i, i)
|
||||||
code_qspi_mux_init_item = code_qspi_mux_init_item + "\t\t(`EQSPI_MISO(%d) & ~{4{`EQSPI_CSN(%d)}})\n\n"%(num, num)
|
code_qspi_mux_init_item = code_qspi_mux_init_item + "\t\t(`EQSPI_MISO(%d) & ~{4{`EQSPI_CSN(%d)}}) |\\\n"%(num, num)
|
||||||
|
|
||||||
|
for i in range(num):
|
||||||
|
code_qspi_mux_init_item = code_qspi_mux_init_item + "\t\t(`AQSPI_MISO(%d) & ~{4{`AQSPI_CSN(%d)}}) |\\\n"%(i, i)
|
||||||
|
code_qspi_mux_init_item = code_qspi_mux_init_item + "\t\t(`AQSPI_MISO(%d) & ~{4{`AQSPI_CSN(%d)}})\n\n"%(num, num)
|
||||||
|
|
||||||
code_qspi_mux_init = code_qspi_mux_init + code_qspi_mux_init_item
|
code_qspi_mux_init = code_qspi_mux_init + code_qspi_mux_init_item
|
||||||
|
|
||||||
|
|||||||
@@ -133,7 +133,8 @@ def tc2():
|
|||||||
|
|
||||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h2000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h2000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
||||||
@@ -255,7 +256,8 @@ def tc3():
|
|||||||
|
|
||||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa, 1, 1)
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa, 1, 1)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h4000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h4000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
||||||
@@ -414,7 +416,8 @@ def tc4():
|
|||||||
|
|
||||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
|
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
|
||||||
@@ -642,7 +645,8 @@ def tc5():
|
|||||||
|
|
||||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
|
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
|
||||||
@@ -940,7 +944,8 @@ def tc6():
|
|||||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||||
+genEnableInsertTimeCode(0xa)
|
+genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
||||||
@@ -1144,7 +1149,8 @@ def tc7():
|
|||||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||||
+genEnableInsertTimeCode(0xa)
|
+genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
||||||
@@ -1379,43 +1385,43 @@ def tc7():
|
|||||||
|
|
||||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n'''
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n'''
|
||||||
+ '''txBuf[3] = 8'h0f;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF] = 8'h0f;\n'''
|
||||||
+ '''txBuf[4] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+1] = 8'h00;\n'''
|
||||||
+ '''txBuf[5] = 8'h0a;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+2] = 8'h0a;\n'''
|
||||||
+ '''txBuf[6] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+3] = 8'h00;\n'''
|
||||||
+ '''txBuf[7] = 8'h0a;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+4] = 8'h0a;\n'''
|
||||||
+ '''txBuf[8] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+5] = 8'h00;\n'''
|
||||||
+ '''txBuf[9] = 8'h0a;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+6] = 8'h0a;\n'''
|
||||||
+ '''txBuf[10] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+7] = 8'h00;\n'''
|
||||||
+ '''txBuf[11] = 8'h01;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+8] = 8'h01;\n'''
|
||||||
+ '''txBuf[12] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+9] = 8'h00;\n'''
|
||||||
+ '''txBuf[19] = (_temp_time & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+16] = (_temp_time & 8'hff);\n'''
|
||||||
+ '''txBuf[20] = ( (_temp_time >> 8) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+17] = ( (_temp_time >> 8) & 8'hff);\n'''
|
||||||
+ '''txBuf[21] = ((_temp_time >> 16) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+18] = ((_temp_time >> 16) & 8'hff);\n'''
|
||||||
+ '''txBuf[22] = ((_temp_time >> 24) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+19] = ((_temp_time >> 24) & 8'hff);\n'''
|
||||||
+ '''txBuf[23] = ((_temp_time >> 32) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+20] = ((_temp_time >> 32) & 8'hff);\n'''
|
||||||
+ '''txBuf[24] = 0;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+21] = 0;\n'''
|
||||||
+ '''txBuf[25] = 0;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+22] = 0;\n'''
|
||||||
+ '''txBuf[26] = 0;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+23] = 0;\n'''
|
||||||
+ '''txBuf[27] = 8'h80;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+24] = 8'h80;\n'''
|
||||||
+ '''txBuf[28] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+25] = 8'h00;\n'''
|
||||||
+ '''txBuf[29] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+26] = 8'h00;\n'''
|
||||||
+ '''txBuf[30] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+27] = 8'h00;\n'''
|
||||||
+ '''txBuf[31] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+28] = 8'h00;\n'''
|
||||||
+ '''txBuf[32] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+29] = 8'h00;\n'''
|
||||||
+ '''txBuf[33] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+30] = 8'h00;\n'''
|
||||||
+ '''txBuf[34] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+31] = 8'h00;\n'''
|
||||||
+ '''txBuf[35] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+32] = 8'h00;\n'''
|
||||||
+ '''txBuf[36] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+33] = 8'h00;\n'''
|
||||||
+ '''txBuf[37] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+34] = 8'h00;\n'''
|
||||||
+ '''txBuf[38] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+35] = 8'h00;\n'''
|
||||||
+ '''txBuf[39] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+36] = 8'h00;\n'''
|
||||||
+ '''txBuf[40] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+37] = 8'h00;\n'''
|
||||||
+ '''txBuf[41] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+38] = 8'h00;\n'''
|
||||||
+ '''txBuf[42] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+39] = 8'h00;\n'''
|
||||||
+ '''txBuf[43] = 8'h00;\n'''
|
|
||||||
+ '''spi_trans( (16'h0120), (`SPI_WRITE), (40), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0120), (`SPI_WRITE), (40), (`IF_IDX(0)));\n'''
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -1577,7 +1583,8 @@ def tc8():
|
|||||||
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
|
||||||
+genEnableInsertTimeCode(0xa)
|
+genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
|
||||||
|
|
||||||
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
|
||||||
@@ -1903,43 +1910,43 @@ def tc8():
|
|||||||
|
|
||||||
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
|
||||||
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
|
||||||
+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
|
||||||
|
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
|
||||||
+ '''_temp_time = _temp_time + 32'h3000;\n\n'''
|
+ '''_temp_time = _temp_time + 32'h3000;\n\n'''
|
||||||
+ '''txBuf[3] = 8'h0f;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF] = 8'h0f;\n'''
|
||||||
+ '''txBuf[4] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+1] = 8'h00;\n'''
|
||||||
+ '''txBuf[5] = 8'h0a;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+2] = 8'h0a;\n'''
|
||||||
+ '''txBuf[6] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+3] = 8'h00;\n'''
|
||||||
+ '''txBuf[7] = 8'h0a;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+4] = 8'h0a;\n'''
|
||||||
+ '''txBuf[8] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+5] = 8'h00;\n'''
|
||||||
+ '''txBuf[9] = 8'h0a;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+6] = 8'h0a;\n'''
|
||||||
+ '''txBuf[10] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+7] = 8'h00;\n'''
|
||||||
+ '''txBuf[11] = 8'h01;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+8] = 8'h01;\n'''
|
||||||
+ '''txBuf[12] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+9] = 8'h00;\n'''
|
||||||
+ '''txBuf[19] = (_temp_time & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+16] = (_temp_time & 8'hff);\n'''
|
||||||
+ '''txBuf[20] = ( (_temp_time >> 8) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+17] = ( (_temp_time >> 8) & 8'hff);\n'''
|
||||||
+ '''txBuf[21] = ((_temp_time >> 16) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+18] = ((_temp_time >> 16) & 8'hff);\n'''
|
||||||
+ '''txBuf[22] = ((_temp_time >> 24) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+19] = ((_temp_time >> 24) & 8'hff);\n'''
|
||||||
+ '''txBuf[23] = ((_temp_time >> 32) & 8'hff);\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+20] = ((_temp_time >> 32) & 8'hff);\n'''
|
||||||
+ '''txBuf[24] = 0;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+21] = 0;\n'''
|
||||||
+ '''txBuf[25] = 0;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+22] = 0;\n'''
|
||||||
+ '''txBuf[26] = 0;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+23] = 0;\n'''
|
||||||
+ '''txBuf[27] = 8'h80;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+24] = 8'h80;\n'''
|
||||||
+ '''txBuf[28] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+25] = 8'h00;\n'''
|
||||||
+ '''txBuf[29] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+26] = 8'h00;\n'''
|
||||||
+ '''txBuf[30] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+27] = 8'h00;\n'''
|
||||||
+ '''txBuf[31] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+28] = 8'h00;\n'''
|
||||||
+ '''txBuf[32] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+29] = 8'h00;\n'''
|
||||||
+ '''txBuf[33] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+30] = 8'h00;\n'''
|
||||||
+ '''txBuf[34] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+31] = 8'h00;\n'''
|
||||||
+ '''txBuf[35] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+32] = 8'h00;\n'''
|
||||||
+ '''txBuf[36] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+33] = 8'h00;\n'''
|
||||||
+ '''txBuf[37] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+34] = 8'h00;\n'''
|
||||||
+ '''txBuf[38] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+35] = 8'h00;\n'''
|
||||||
+ '''txBuf[39] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+36] = 8'h00;\n'''
|
||||||
+ '''txBuf[40] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+37] = 8'h00;\n'''
|
||||||
+ '''txBuf[41] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+38] = 8'h00;\n'''
|
||||||
+ '''txBuf[42] = 8'h00;\n'''
|
+ '''txBuf[`ARRAY_IDX_OFF+39] = 8'h00;\n'''
|
||||||
+ '''txBuf[43] = 8'h00;\n'''
|
|
||||||
+ '''spi_trans( (16'h0120), (`SPI_WRITE), (40), (`IF_IDX(0)));\n'''
|
+ '''spi_trans( (16'h0120), (`SPI_WRITE), (40), (`IF_IDX(0)));\n'''
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user