修正spi不能正常通讯的bug
This commit is contained in:
@@ -13,6 +13,7 @@ module ShinTopSpiTb(
|
|||||||
|
|
||||||
`include "dev_predef.vh"
|
`include "dev_predef.vh"
|
||||||
|
|
||||||
|
/*这个代码不会被使用 DOWN*/
|
||||||
`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
|
||||||
@@ -55,7 +56,8 @@ module ShinTopSpiTb(
|
|||||||
( spi_miso[2] & ~`ESPI_CSN(2)) |\
|
( spi_miso[2] & ~`ESPI_CSN(2)) |\
|
||||||
( spi_miso[3] & ~`ESPI_CSN(3)) |\
|
( spi_miso[3] & ~`ESPI_CSN(3)) |\
|
||||||
( spi_miso[4] & ~`ESPI_CSN(4))
|
( spi_miso[4] & ~`ESPI_CSN(4))
|
||||||
`endif
|
`endif/*这个代码不会被使用 UP*/
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
@@ -175,6 +177,7 @@ ShinTop s_ShinTop_Mst(
|
|||||||
|
|
||||||
`include "slave_dev_def.vh"
|
`include "slave_dev_def.vh"
|
||||||
|
|
||||||
|
/*这个代码不会被使用 DOWN*/
|
||||||
`ifdef DEFINE_SLAVE_DEVICE
|
`ifdef DEFINE_SLAVE_DEVICE
|
||||||
ShinTop s_ShinTop_slv0(
|
ShinTop s_ShinTop_slv0(
|
||||||
.clock(clock),
|
.clock(clock),
|
||||||
@@ -379,7 +382,7 @@ ShinTop s_ShinTop_slv3(
|
|||||||
.io_hwSerial(`HW_SERIAL),
|
.io_hwSerial(`HW_SERIAL),
|
||||||
.io_uniCode(0)
|
.io_uniCode(0)
|
||||||
);
|
);
|
||||||
`endif
|
`endif/*这个代码不会被使用 UP*/
|
||||||
|
|
||||||
initial begin
|
initial begin
|
||||||
clock = 0;
|
clock = 0;
|
||||||
@@ -500,7 +503,9 @@ end
|
|||||||
|
|
||||||
assign spi_mosi = exChangeRego[7];
|
assign spi_mosi = exChangeRego[7];
|
||||||
`ifndef OLD_SPI_SUPPORT
|
`ifndef OLD_SPI_SUPPORT
|
||||||
assign qspi_mosi = (spi_1to4 & transCnt <= 4)? {3'h0, exChangeRego[7]}:exChangeRego[7:4];
|
assign qspi_mosi = ((spi_1to4 && transCnt < 4)
|
||||||
|
|| (spi_1to4 && transCnt == 4 && bitCnt < 7)
|
||||||
|
|| (spi_1to4 && transCnt == 4 && bitCnt == 7 && sck == 1)) ? {3'h0, exChangeRego[7]}:exChangeRego[7:4];
|
||||||
`else
|
`else
|
||||||
assign qspi_mosi = exChangeRego[7:4];
|
assign qspi_mosi = exChangeRego[7:4];
|
||||||
`endif
|
`endif
|
||||||
@@ -1040,11 +1045,13 @@ task f_write(input [31:0] logh, input [15:0] saddress, input [7:0] scmd, input [
|
|||||||
end
|
end
|
||||||
endtask
|
endtask
|
||||||
|
|
||||||
|
wire [31:0] temp_int_status = s_ShinTop_Mst.mstSlvSwitch.interface_.cReg_intStatus;
|
||||||
|
|
||||||
task wait_comm_finished(input [16:0] dev_idx);
|
task wait_comm_finished(input [16:0] dev_idx);
|
||||||
begin:WAIT_COMM_FINISHED_CODE
|
begin:WAIT_COMM_FINISHED_CODE
|
||||||
real st;
|
real st;
|
||||||
integer is_run;
|
integer is_run;
|
||||||
|
|
||||||
st = $realtime;
|
st = $realtime;
|
||||||
is_run = 1;
|
is_run = 1;
|
||||||
|
|
||||||
@@ -1081,7 +1088,7 @@ task wait_comm_finished(input [16:0] dev_idx);
|
|||||||
|
|
||||||
end
|
end
|
||||||
#2000
|
#2000
|
||||||
$display("%x %x %x %x %t", rxBuf[`ARRAY_IDX_OFF], rxBuf[`ARRAY_IDX_OFF + 1], rxBuf[`ARRAY_IDX_OFF + 2], rxBuf[`ARRAY_IDX_OFF + 3], $realtime);
|
$display("%x %x %x %x %x %t", rxBuf[`ARRAY_IDX_OFF], rxBuf[`ARRAY_IDX_OFF + 1], rxBuf[`ARRAY_IDX_OFF + 2], rxBuf[`ARRAY_IDX_OFF + 3], temp_int_status, $realtime);
|
||||||
if ((rxBuf[`ARRAY_IDX_OFF] & 8'h02) == 8'h02)
|
if ((rxBuf[`ARRAY_IDX_OFF] & 8'h02) == 8'h02)
|
||||||
begin
|
begin
|
||||||
is_run = 0;
|
is_run = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user