|
|
@@ -25,7 +25,7 @@ module S5443_3Top
|
|
|
#(
|
|
|
parameter CmdRegWidth = 32,
|
|
|
parameter AddrRegWidth = 12,
|
|
|
- parameter SpiNum = 7
|
|
|
+ parameter SpiNum = 1
|
|
|
|
|
|
)
|
|
|
(
|
|
|
@@ -43,14 +43,15 @@ module S5443_3Top
|
|
|
|
|
|
output Led_o,
|
|
|
|
|
|
- output [SpiNum-1:0] Mosi0_o,
|
|
|
- output [SpiNum-1:0] Mosi1_o,
|
|
|
+ output [SpiNum-1:0] Mosi0_o,
|
|
|
+ output [SpiNum-1:0] Mosi1_o,//inout: when RSPI mode, input; when QSPI mode output;
|
|
|
output [SpiNum-1:0] Mosi2_o,
|
|
|
output [SpiNum-1:0] Mosi3_o,
|
|
|
output [SpiNum-1:0] Ss_o,
|
|
|
output [SpiNum-1:0] SsFlash_o,
|
|
|
output [SpiNum-1:0] Sck_o,
|
|
|
output [SpiNum-1:0] SpiRst_o,
|
|
|
+ output [SpiNum-1:0] SpiDir_o,
|
|
|
output LD_o
|
|
|
|
|
|
);
|
|
|
@@ -74,6 +75,16 @@ wire gclk;
|
|
|
wire [0:7] baudRate [SpiNum-1:0];
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+//InitRst
|
|
|
+
|
|
|
+wire [SpiNum-1:0] initRstGen;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//SPI0
|
|
|
wire [CmdRegWidth-1:0] spi0Ctrl;
|
|
|
wire [CmdRegWidth-1:0] spi0Clk;
|
|
|
@@ -83,6 +94,15 @@ wire [CmdRegWidth-1:0] spi0TxFifoCtrl;
|
|
|
wire [CmdRegWidth-1:0] spi0RxFifoCtrl;
|
|
|
wire [CmdRegWidth-1:0] spi0TxFifo;
|
|
|
wire [CmdRegWidth-1:0] spi0RxFifo;
|
|
|
+
|
|
|
+wire [CmdRegWidth-1:0] spi0CtrlRR;
|
|
|
+wire [CmdRegWidth-1:0] spi0ClkRR;
|
|
|
+wire [CmdRegWidth-1:0] spi0CsDelayRR;
|
|
|
+wire [CmdRegWidth-1:0] spi0CsCtrlRR;
|
|
|
+wire [CmdRegWidth-1:0] spi0TxFifoCtrlRR;
|
|
|
+wire [CmdRegWidth-1:0] spi0RxFifoCtrlRR;
|
|
|
+wire [CmdRegWidth-1:0] ansDataRR;
|
|
|
+
|
|
|
//SPI1
|
|
|
wire [CmdRegWidth-1:0] spi1Ctrl;
|
|
|
wire [CmdRegWidth-1:0] spi1Clk;
|
|
|
@@ -241,7 +261,7 @@ assign SsFlash_o[5] = (Assel[5])?(CS1[5]? Ss[5]:~Ss[5]):CS1[5];
|
|
|
assign SsFlash_o[6] = (Assel[6])?(CS1[6]? Ss[6]:~Ss[6]):CS1[6];
|
|
|
assign Sck_o = Sck;
|
|
|
|
|
|
-assign widthSel[0] = spi0Ctrl[6:5];
|
|
|
+assign widthSel[0] = spi0CtrlRR[6:5];
|
|
|
assign widthSel[1] = spi1Ctrl[6:5];
|
|
|
assign widthSel[2] = spi2Ctrl[6:5];
|
|
|
assign widthSel[3] = spi3Ctrl[6:5];
|
|
|
@@ -249,7 +269,7 @@ assign widthSel[4] = spi4Ctrl[6:5];
|
|
|
assign widthSel[5] = spi5Ctrl[6:5];
|
|
|
assign widthSel[6] = spi6Ctrl[6:5];
|
|
|
|
|
|
-assign spiMode[0] = spi0Ctrl[7];
|
|
|
+assign spiMode[0] = spi0CtrlRR[7];
|
|
|
assign spiMode[1] = spi1Ctrl[7];
|
|
|
assign spiMode[2] = spi2Ctrl[7];
|
|
|
assign spiMode[3] = spi3Ctrl[7];
|
|
|
@@ -258,7 +278,7 @@ assign spiMode[5] = spi5Ctrl[7];
|
|
|
assign spiMode[6] = spi6Ctrl[7];
|
|
|
|
|
|
|
|
|
-assign CPOL[0] = spi0Ctrl[2];
|
|
|
+assign CPOL[0] = spi0CtrlRR[2];
|
|
|
assign CPOL[1] = spi1Ctrl[2];
|
|
|
assign CPOL[2] = spi2Ctrl[2];
|
|
|
assign CPOL[3] = spi3Ctrl[2];
|
|
|
@@ -266,7 +286,7 @@ assign CPOL[4] = spi4Ctrl[2];
|
|
|
assign CPOL[5] = spi5Ctrl[2];
|
|
|
assign CPOL[6] = spi6Ctrl[2];
|
|
|
|
|
|
-assign CPHA[0] = spi0Ctrl[1];
|
|
|
+assign CPHA[0] = spi0CtrlRR[1];
|
|
|
assign CPHA[1] = spi1Ctrl[1];
|
|
|
assign CPHA[2] = spi2Ctrl[1];
|
|
|
assign CPHA[3] = spi3Ctrl[1];
|
|
|
@@ -274,7 +294,7 @@ assign CPHA[4] = spi4Ctrl[1];
|
|
|
assign CPHA[5] = spi5Ctrl[1];
|
|
|
assign CPHA[6] = spi6Ctrl[1];
|
|
|
|
|
|
-assign endianSel[0] = spi0Ctrl[8];
|
|
|
+assign endianSel[0] = spi0CtrlRR[8];
|
|
|
assign endianSel[1] = spi1Ctrl[8];
|
|
|
assign endianSel[2] = spi2Ctrl[8];
|
|
|
assign endianSel[3] = spi3Ctrl[8];
|
|
|
@@ -282,7 +302,7 @@ assign endianSel[4] = spi4Ctrl[8];
|
|
|
assign endianSel[5] = spi5Ctrl[8];
|
|
|
assign endianSel[6] = spi6Ctrl[8];
|
|
|
|
|
|
-assign selSt[0] = spi0Ctrl[4];
|
|
|
+assign selSt[0] = spi0CtrlRR[4];
|
|
|
assign selSt[1] = spi1Ctrl[4];
|
|
|
assign selSt[2] = spi2Ctrl[4];
|
|
|
assign selSt[3] = spi3Ctrl[4];
|
|
|
@@ -290,7 +310,7 @@ assign selSt[4] = spi4Ctrl[4];
|
|
|
assign selSt[5] = spi5Ctrl[4];
|
|
|
assign selSt[6] = spi6Ctrl[4];
|
|
|
|
|
|
-assign Assel[0] = spi0Ctrl[3];
|
|
|
+assign Assel[0] = spi0CtrlRR[3];
|
|
|
assign Assel[1] = spi1Ctrl[3];
|
|
|
assign Assel[2] = spi2Ctrl[3];
|
|
|
assign Assel[3] = spi3Ctrl[3];
|
|
|
@@ -298,7 +318,7 @@ assign Assel[4] = spi4Ctrl[3];
|
|
|
assign Assel[5] = spi5Ctrl[3];
|
|
|
assign Assel[6] = spi6Ctrl[3];
|
|
|
|
|
|
-assign stopDelay[0] = spi0CsDelay[7:2];
|
|
|
+assign stopDelay[0] = spi0CsDelayRR[7:2];
|
|
|
assign stopDelay[1] = spi1CsDelay[7:2];
|
|
|
assign stopDelay[2] = spi2CsDelay[7:2];
|
|
|
assign stopDelay[3] = spi3CsDelay[7:2];
|
|
|
@@ -306,7 +326,7 @@ assign stopDelay[4] = spi4CsDelay[7:2];
|
|
|
assign stopDelay[5] = spi5CsDelay[7:2];
|
|
|
assign stopDelay[6] = spi6CsDelay[7:2];
|
|
|
|
|
|
-assign leadx[0] = spi0CsDelay[1];
|
|
|
+assign leadx[0] = spi0CsDelayRR[1];
|
|
|
assign leadx[1] = spi1CsDelay[1];
|
|
|
assign leadx[2] = spi2CsDelay[1];
|
|
|
assign leadx[3] = spi3CsDelay[1];
|
|
|
@@ -314,7 +334,7 @@ assign leadx[4] = spi4CsDelay[1];
|
|
|
assign leadx[5] = spi5CsDelay[1];
|
|
|
assign leadx[6] = spi6CsDelay[1];
|
|
|
|
|
|
-assign lag[0] = spi0CsDelay[0];
|
|
|
+assign lag[0] = spi0CsDelayRR[0];
|
|
|
assign lag[1] = spi1CsDelay[0];
|
|
|
assign lag[2] = spi2CsDelay[0];
|
|
|
assign lag[3] = spi3CsDelay[0];
|
|
|
@@ -322,7 +342,7 @@ assign lag[4] = spi4CsDelay[0];
|
|
|
assign lag[5] = spi5CsDelay[0];
|
|
|
assign lag[6] = spi6CsDelay[0];
|
|
|
|
|
|
-assign baudRate[0] = spi0Clk[7:0];
|
|
|
+assign baudRate[0] = spi0ClkRR[7:0];
|
|
|
assign baudRate[1] = spi1Clk[7:0];
|
|
|
assign baudRate[2] = spi2Clk[7:0];
|
|
|
assign baudRate[3] = spi3Clk[7:0];
|
|
|
@@ -339,7 +359,7 @@ assign SpiRst_o[4] = GPIOA[4];
|
|
|
assign SpiRst_o[5] = GPIOA[5];
|
|
|
assign SpiRst_o[6] = GPIOA[6];
|
|
|
|
|
|
-assign fifoRxRst[0] = spi0RxFifoCtrl[0];
|
|
|
+assign fifoRxRst[0] = spi0RxFifoCtrlRR[0];
|
|
|
assign fifoRxRst[1] = spi1RxFifoCtrl[0];
|
|
|
assign fifoRxRst[2] = spi2RxFifoCtrl[0];
|
|
|
assign fifoRxRst[3] = spi3RxFifoCtrl[0];
|
|
|
@@ -347,7 +367,7 @@ assign fifoRxRst[4] = spi4RxFifoCtrl[0];
|
|
|
assign fifoRxRst[5] = spi5RxFifoCtrl[0];
|
|
|
assign fifoRxRst[6] = spi6RxFifoCtrl[0];
|
|
|
|
|
|
-assign fifoTxRst[0] = spi0TxFifoCtrl[0];
|
|
|
+assign fifoTxRst[0] = spi0TxFifoCtrlRR[0];
|
|
|
assign fifoTxRst[1] = spi1TxFifoCtrl[0];
|
|
|
assign fifoTxRst[2] = spi2TxFifoCtrl[0];
|
|
|
assign fifoTxRst[3] = spi3TxFifoCtrl[0];
|
|
|
@@ -364,7 +384,7 @@ assign Ld_i[5] = GPIOA[21];
|
|
|
assign Ld_i[6] = GPIOA[22];
|
|
|
assign LD_o = Ld_i[0]&Ld_i[1]&Ld_i[2]&Ld_i[3]&Ld_i[4]&Ld_i[5]&Ld_i[6];
|
|
|
|
|
|
-assign wordCntRx[0] = spi0RxFifoCtrl[15:8];
|
|
|
+assign wordCntRx[0] = spi0RxFifoCtrlRR[15:8];
|
|
|
assign wordCntRx[1] = spi1RxFifoCtrl[15:8];
|
|
|
assign wordCntRx[2] = spi2RxFifoCtrl[15:8];
|
|
|
assign wordCntRx[3] = spi3RxFifoCtrl[15:8];
|
|
|
@@ -372,7 +392,7 @@ assign wordCntRx[4] = spi4RxFifoCtrl[15:8];
|
|
|
assign wordCntRx[5] = spi5RxFifoCtrl[15:8];
|
|
|
assign wordCntRx[6] = spi6RxFifoCtrl[15:8];
|
|
|
|
|
|
-assign wordCntTx[0] = spi0TxFifoCtrl[15:8];
|
|
|
+assign wordCntTx[0] = spi0TxFifoCtrlRR[15:8];
|
|
|
assign wordCntTx[1] = spi1TxFifoCtrl[15:8];
|
|
|
assign wordCntTx[2] = spi2TxFifoCtrl[15:8];
|
|
|
assign wordCntTx[3] = spi3TxFifoCtrl[15:8];
|
|
|
@@ -381,7 +401,7 @@ assign wordCntTx[5] = spi5TxFifoCtrl[15:8];
|
|
|
assign wordCntTx[6] = spi6TxFifoCtrl[15:8];
|
|
|
|
|
|
|
|
|
-assign CS0[0] = spi0CsCtrl[0];
|
|
|
+assign CS0[0] = spi0CsCtrlRR[0];
|
|
|
assign CS0[1] = spi1CsCtrl[0];
|
|
|
assign CS0[2] = spi2CsCtrl[0];
|
|
|
assign CS0[3] = spi3CsCtrl[0];
|
|
|
@@ -389,7 +409,7 @@ assign CS0[4] = spi4CsCtrl[0];
|
|
|
assign CS0[5] = spi5CsCtrl[0];
|
|
|
assign CS0[6] = spi6CsCtrl[0];
|
|
|
|
|
|
-assign CS1[0] = spi0CsCtrl[1];
|
|
|
+assign CS1[0] = spi0CsCtrlRR[1];
|
|
|
assign CS1[1] = spi1CsCtrl[1];
|
|
|
assign CS1[2] = spi2CsCtrl[1];
|
|
|
assign CS1[3] = spi3CsCtrl[1];
|
|
|
@@ -398,56 +418,72 @@ assign CS1[5] = spi5CsCtrl[1];
|
|
|
assign CS1[6] = spi6CsCtrl[1];
|
|
|
|
|
|
|
|
|
-assign Ss[0] = (spiMode)? SsQ[0]:SsR[0];
|
|
|
-assign Ss[1] = (spiMode)? SsQ[1]:SsR[1];
|
|
|
-assign Ss[2] = (spiMode)? SsQ[2]:SsR[2];
|
|
|
-assign Ss[3] = (spiMode)? SsQ[3]:SsR[3];
|
|
|
-assign Ss[4] = (spiMode)? SsQ[4]:SsR[4];
|
|
|
-assign Ss[5] = (spiMode)? SsQ[5]:SsR[5];
|
|
|
-assign Ss[6] = (spiMode)? SsQ[6]:SsR[6];
|
|
|
-
|
|
|
-assign Sck[0] = (spiMode)? SckQ[0]:SckR[0];
|
|
|
-assign Sck[1] = (spiMode)? SckQ[1]:SckR[1];
|
|
|
-assign Sck[2] = (spiMode)? SckQ[2]:SckR[2];
|
|
|
-assign Sck[3] = (spiMode)? SckQ[3]:SckR[3];
|
|
|
-assign Sck[4] = (spiMode)? SckQ[4]:SckR[4];
|
|
|
-assign Sck[5] = (spiMode)? SckQ[5]:SckR[5];
|
|
|
-assign Sck[6] = (spiMode)? SckQ[6]:SckR[6];
|
|
|
-
|
|
|
-assign Mosi0[0] = (spiMode)? Mosi0Q[0]:Mosi0R[0];
|
|
|
-assign Mosi0[1] = (spiMode)? Mosi0Q[1]:Mosi0R[1];
|
|
|
-assign Mosi0[2] = (spiMode)? Mosi0Q[2]:Mosi0R[2];
|
|
|
-assign Mosi0[3] = (spiMode)? Mosi0Q[3]:Mosi0R[3];
|
|
|
-assign Mosi0[4] = (spiMode)? Mosi0Q[4]:Mosi0R[4];
|
|
|
-assign Mosi0[5] = (spiMode)? Mosi0Q[5]:Mosi0R[5];
|
|
|
-assign Mosi0[6] = (spiMode)? Mosi0Q[6]:Mosi0R[6];
|
|
|
-
|
|
|
-assign valToTxFifoRead[0] = (spiMode)? valToTxQ[0]:valToTxR[0];
|
|
|
-assign valToTxFifoRead[1] = (spiMode)? valToTxQ[1]:valToTxR[1];
|
|
|
-assign valToTxFifoRead[2] = (spiMode)? valToTxQ[2]:valToTxR[2];
|
|
|
-assign valToTxFifoRead[3] = (spiMode)? valToTxQ[3]:valToTxR[3];
|
|
|
-assign valToTxFifoRead[4] = (spiMode)? valToTxQ[4]:valToTxR[4];
|
|
|
-assign valToTxFifoRead[5] = (spiMode)? valToTxQ[5]:valToTxR[5];
|
|
|
-assign valToTxFifoRead[6] = (spiMode)? valToTxQ[6]:valToTxR[6];
|
|
|
-
|
|
|
-assign valToRxFifo[0] = (spiMode)? valToRxQ[0]:valToRxR[0];
|
|
|
-assign valToRxFifo[1] = (spiMode)? valToRxQ[1]:valToRxR[1];
|
|
|
-assign valToRxFifo[2] = (spiMode)? valToRxQ[2]:valToRxR[2];
|
|
|
-assign valToRxFifo[3] = (spiMode)? valToRxQ[3]:valToRxR[3];
|
|
|
-assign valToRxFifo[4] = (spiMode)? valToRxQ[4]:valToRxR[4];
|
|
|
-assign valToRxFifo[5] = (spiMode)? valToRxQ[5]:valToRxR[5];
|
|
|
-assign valToRxFifo[6] = (spiMode)? valToRxQ[6]:valToRxR[6];
|
|
|
-
|
|
|
-assign dataToRxFifo[0] = (spiMode)? dataToRxFifoQ[0]:dataToRxFifoR[0];
|
|
|
-assign dataToRxFifo[1] = (spiMode)? dataToRxFifoQ[1]:dataToRxFifoR[1];
|
|
|
-assign dataToRxFifo[2] = (spiMode)? dataToRxFifoQ[2]:dataToRxFifoR[2];
|
|
|
-assign dataToRxFifo[3] = (spiMode)? dataToRxFifoQ[3]:dataToRxFifoR[3];
|
|
|
-assign dataToRxFifo[4] = (spiMode)? dataToRxFifoQ[4]:dataToRxFifoR[4];
|
|
|
-assign dataToRxFifo[5] = (spiMode)? dataToRxFifoQ[5]:dataToRxFifoR[5];
|
|
|
-assign dataToRxFifo[6] = (spiMode)? dataToRxFifoQ[6]:dataToRxFifoR[6];
|
|
|
-
|
|
|
-
|
|
|
-// assign SmcData_i = (!SmcAoe_i)?muxedData:16'bz;
|
|
|
+assign Ss[0] = (spiMode[0])? SsQ[0]:SsR[0];
|
|
|
+assign Ss[1] = (spiMode[1])? SsQ[1]:SsR[1];
|
|
|
+assign Ss[2] = (spiMode[2])? SsQ[2]:SsR[2];
|
|
|
+assign Ss[3] = (spiMode[3])? SsQ[3]:SsR[3];
|
|
|
+assign Ss[4] = (spiMode[4])? SsQ[4]:SsR[4];
|
|
|
+assign Ss[5] = (spiMode[5])? SsQ[5]:SsR[5];
|
|
|
+assign Ss[6] = (spiMode[6])? SsQ[6]:SsR[6];
|
|
|
+
|
|
|
+assign SpiDir_o[0] = (spiMode[0])? 1'b0 : 1'b1 ;
|
|
|
+assign SpiDir_o[1] = (spiMode[1])? 1'b0 : 1'b1 ;
|
|
|
+assign SpiDir_o[2] = (spiMode[2])? 1'b0 : 1'b1 ;
|
|
|
+assign SpiDir_o[3] = (spiMode[3])? 1'b0 : 1'b1 ;
|
|
|
+assign SpiDir_o[4] = (spiMode[4])? 1'b0 : 1'b1 ;
|
|
|
+assign SpiDir_o[5] = (spiMode[5])? 1'b0 : 1'b1 ;
|
|
|
+assign SpiDir_o[6] = (spiMode[6])? 1'b0 : 1'b1 ;
|
|
|
+
|
|
|
+
|
|
|
+assign Sck[0] = (spiMode[0])?SckQ[0]:SckR[0];
|
|
|
+assign Sck[1] = (spiMode[1])?SckQ[1]:SckR[1];
|
|
|
+assign Sck[2] = (spiMode[2])?SckQ[2]:SckR[2];
|
|
|
+assign Sck[3] = (spiMode[3])?SckQ[3]:SckR[3];
|
|
|
+assign Sck[4] = (spiMode[4])?SckQ[4]:SckR[4];
|
|
|
+assign Sck[5] = (spiMode[5])?SckQ[5]:SckR[5];
|
|
|
+assign Sck[6] = (spiMode[6])?SckQ[6]:SckR[6];
|
|
|
+
|
|
|
+assign Mosi0[0] = (spiMode[0])?Mosi0Q[0]:Mosi0R[0];
|
|
|
+assign Mosi0[1] = (spiMode[1])?Mosi0Q[1]:Mosi0R[1];
|
|
|
+assign Mosi0[2] = (spiMode[2])?Mosi0Q[2]:Mosi0R[2];
|
|
|
+assign Mosi0[3] = (spiMode[3])?Mosi0Q[3]:Mosi0R[3];
|
|
|
+assign Mosi0[4] = (spiMode[4])?Mosi0Q[4]:Mosi0R[4];
|
|
|
+assign Mosi0[5] = (spiMode[5])?Mosi0Q[5]:Mosi0R[5];
|
|
|
+assign Mosi0[6] = (spiMode[6])?Mosi0Q[6]:Mosi0R[6];
|
|
|
+
|
|
|
+assign valToTxFifoRead[0] = (spiMode[0])?valToTxQ[0]:valToTxR[0];
|
|
|
+assign valToTxFifoRead[1] = (spiMode[1])?valToTxQ[1]:valToTxR[1];
|
|
|
+assign valToTxFifoRead[2] = (spiMode[2])?valToTxQ[2]:valToTxR[2];
|
|
|
+assign valToTxFifoRead[3] = (spiMode[3])?valToTxQ[3]:valToTxR[3];
|
|
|
+assign valToTxFifoRead[4] = (spiMode[4])?valToTxQ[4]:valToTxR[4];
|
|
|
+assign valToTxFifoRead[5] = (spiMode[5])?valToTxQ[5]:valToTxR[5];
|
|
|
+assign valToTxFifoRead[6] = (spiMode[6])?valToTxQ[6]:valToTxR[6];
|
|
|
+
|
|
|
+assign valToRxFifo[0] = valToRxR[0];
|
|
|
+assign valToRxFifo[1] = valToRxR[1];
|
|
|
+assign valToRxFifo[2] = valToRxR[2];
|
|
|
+assign valToRxFifo[3] = valToRxR[3];
|
|
|
+assign valToRxFifo[4] = valToRxR[4];
|
|
|
+assign valToRxFifo[5] = valToRxR[5];
|
|
|
+assign valToRxFifo[6] = valToRxR[6];
|
|
|
+
|
|
|
+// assign dataToRxFifo[0] = (spiMode)? dataToRxFifoQ[0]:dataToRxFifoR[0];
|
|
|
+// assign dataToRxFifo[1] = (spiMode)? dataToRxFifoQ[1]:dataToRxFifoR[1];
|
|
|
+// assign dataToRxFifo[2] = (spiMode)? dataToRxFifoQ[2]:dataToRxFifoR[2];
|
|
|
+// assign dataToRxFifo[3] = (spiMode)? dataToRxFifoQ[3]:dataToRxFifoR[3];
|
|
|
+// assign dataToRxFifo[4] = (spiMode)? dataToRxFifoQ[4]:dataToRxFifoR[4];
|
|
|
+// assign dataToRxFifo[5] = (spiMode)? dataToRxFifoQ[5]:dataToRxFifoR[5];
|
|
|
+// assign dataToRxFifo[6] = (spiMode)? dataToRxFifoQ[6]:dataToRxFifoR[6];
|
|
|
+
|
|
|
+assign dataToRxFifo[0] = dataToRxFifoR[0];
|
|
|
+assign dataToRxFifo[1] = dataToRxFifoR[1];
|
|
|
+assign dataToRxFifo[2] = dataToRxFifoR[2];
|
|
|
+assign dataToRxFifo[3] = dataToRxFifoR[3];
|
|
|
+assign dataToRxFifo[4] = dataToRxFifoR[4];
|
|
|
+assign dataToRxFifo[5] = dataToRxFifoR[5];
|
|
|
+assign dataToRxFifo[6] = dataToRxFifoR[6];
|
|
|
+
|
|
|
+
|
|
|
|
|
|
//================================================================================
|
|
|
// CODING
|
|
|
@@ -460,7 +496,7 @@ DataOutMux DataOutMuxer
|
|
|
// .Rst_i (initRst),
|
|
|
.Addr_i (smcAddr),
|
|
|
.ToRegMapAddr_i (toRegMapAddr),
|
|
|
- .DataFromRegMap_i (ansData),
|
|
|
+ .DataFromRegMap_i (ansDataRR),
|
|
|
.DataFromRxFifo1_i (dataFromRxFifo[0]),
|
|
|
.DataFromRxFifo2_i (dataFromRxFifo[1]),
|
|
|
.DataFromRxFifo3_i (dataFromRxFifo[2]),
|
|
|
@@ -598,6 +634,29 @@ RegMap_inst
|
|
|
.GPIOAReg_o(GPIOA)
|
|
|
);
|
|
|
|
|
|
+
|
|
|
+Cdc Sync (
|
|
|
+ .Clk_i(gclk),
|
|
|
+ .Spi0CtrlReg_i(spi0Ctrl),
|
|
|
+ .Spi0ClkReg_i(spi0Clk),
|
|
|
+ .Spi0CsDelayReg_i(spi0CsDelay),
|
|
|
+ .Spi0CsCtrlReg_i(spi0CsCtrl),
|
|
|
+ .Spi0TxFifoCtrlReg_i(spi0TxFifoCtrl),
|
|
|
+ .Spi0RxFifoCtrlReg_i(spi0RxFifoCtrl),
|
|
|
+ .AnsData_i(ansData),
|
|
|
+ .Spi0CtrlRR_o(spi0CtrlRR),
|
|
|
+ .Spi0ClkRR_o(spi0ClkRR),
|
|
|
+ .Spi0CsDelayRR_o(spi0CsDelayRR),
|
|
|
+ .Spi0CsCtrlRR_o(spi0CsCtrlRR),
|
|
|
+ .Spi0TxFifoCtrlRR_o(spi0TxFifoCtrlRR),
|
|
|
+ .Spi0RxFifoCtrlRR_o(spi0RxFifoCtrlRR),
|
|
|
+ .AnsDataRR_o(ansDataRR)
|
|
|
+
|
|
|
+
|
|
|
+);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
MmcmWrapper MainMmcm
|
|
|
(
|
|
|
.Clk_i (gclk),
|
|
|
@@ -621,14 +680,14 @@ genvar i;
|
|
|
generate
|
|
|
for (i = 0; i < SpiNum; i = i + 1) begin: SpiGen
|
|
|
|
|
|
- // RstSync SpiRstSync
|
|
|
- // (
|
|
|
- // .Clk_i (spiClkBus[i]),
|
|
|
- // .Rst_i (initRst),
|
|
|
+ InitRst InitRst_inst
|
|
|
+ (
|
|
|
+ .clk_i(Clk40_o),
|
|
|
+ .signal_o(initRstGen[i])
|
|
|
+);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- // .Rst_o (spiSyncRst[i])
|
|
|
- // );
|
|
|
-
|
|
|
DataFifoWrapper DataFifoWrapper
|
|
|
(
|
|
|
.WrClk_i (gclk),
|
|
|
@@ -656,7 +715,7 @@ generate
|
|
|
SPIm SPIm_inst (
|
|
|
.Clk_i(Clk40_o),
|
|
|
.Start_i(ten[i]),
|
|
|
- .Rst_i(initRst| spiMode[i]),
|
|
|
+ .Rst_i(initRstGen[i]| spiMode[i]),
|
|
|
.SPIdata(toSpiData[i]),
|
|
|
.Sck_o(SckR[i]),
|
|
|
.Ss_o(SsR[i]),
|
|
|
@@ -681,7 +740,7 @@ generate
|
|
|
|
|
|
SPIs SPIs_inst (
|
|
|
.Clk_i(Clk40_o),
|
|
|
- .Rst_i(initRst|SpiRst_o[i]| spiMode[i]),
|
|
|
+ .Rst_i(initRstGen[i]|SpiRst_o[i]| spiMode[i]),
|
|
|
.Sck_i(SckR[i]),
|
|
|
.Ss_i(SsR[i]),
|
|
|
.Mosi0_i(Mosi0R[i]),
|
|
|
@@ -695,7 +754,7 @@ generate
|
|
|
QuadSPIm QuadSPIm_inst (
|
|
|
.Clk_i(Clk40_o),
|
|
|
.Start_i(ten[i]),
|
|
|
- .Rst_i(initRst| !spiMode[i]),
|
|
|
+ .Rst_i(initRstGen[i]| !spiMode[i]),
|
|
|
.SpiDataVal_i (toSpiVal),
|
|
|
// .SPIdata(32'h2aaa00aa),
|
|
|
.SPIdata(toSpiData[i]),
|
|
|
@@ -715,20 +774,20 @@ generate
|
|
|
.SELST_i(selSt[i]),
|
|
|
.Val_o(valToTxQ[i])
|
|
|
);
|
|
|
- QuadSPIs QuadSPIs_inst (
|
|
|
- .Clk_i(Clk40_o),
|
|
|
- .Rst_i(initRst|SpiRst_o[i]| !spiMode[i]),
|
|
|
- .Sck_i(SckQ[i]),
|
|
|
- .Ss_i(SsQ[i]),
|
|
|
- .Mosi0_i(Mosi0Q[i]),
|
|
|
- .Mosi1_i(Mosi1[i]),
|
|
|
- .Mosi2_i(Mosi2[i]),
|
|
|
- .Mosi3_i(Mosi3[i]),
|
|
|
- .WidthSel_i(widthSel[i]),
|
|
|
- .SELST_i(selSt[i]),
|
|
|
- .DataToRxFifo_o(dataToRxFifoQ[i]),
|
|
|
- .Val_o(valToRxQ[i])
|
|
|
- );
|
|
|
+ // QuadSPIs QuadSPIs_inst (
|
|
|
+ // .Clk_i(Clk40_o),
|
|
|
+ // .Rst_i(initRstGen[i]|SpiRst_o[i]| !spiMode[i]),
|
|
|
+ // .Sck_i(SckQ[i]),
|
|
|
+ // .Ss_i(SsQ[i]),
|
|
|
+ // .Mosi0_i(Mosi0Q[i]),
|
|
|
+ // .Mosi1_i(Mosi1[i]),
|
|
|
+ // .Mosi2_i(Mosi2[i]),
|
|
|
+ // .Mosi3_i(Mosi3[i]),
|
|
|
+ // .WidthSel_i(widthSel[i]),
|
|
|
+ // .SELST_i(selSt[i]),
|
|
|
+ // .DataToRxFifo_o(dataToRxFifoQ[i]),
|
|
|
+ // .Val_o(valToRxQ[i])
|
|
|
+ // );
|
|
|
|
|
|
end
|
|
|
endgenerate
|