|
|
@@ -39,7 +39,7 @@ module S5443_3Top
|
|
|
input SmcAre_i,
|
|
|
input [1:0] SmcBe_i,
|
|
|
input SmcAoe_i,
|
|
|
- output [SpiNum-1:0] LD_i,
|
|
|
+ output [SpiNum-1:0] Ld_i,
|
|
|
|
|
|
output Led_o,
|
|
|
|
|
|
@@ -75,66 +75,66 @@ wire [0:15] baudRate [SpiNum-1:0];
|
|
|
|
|
|
|
|
|
//SPI0
|
|
|
-wire [CmdRegWidth-1:0] Spi0Ctrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi0Clk;
|
|
|
-wire [CmdRegWidth-1:0] Spi0CsDelay;
|
|
|
-wire [CmdRegWidth-1:0] Spi0CsCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi0TxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi0RxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi0TxFifo;
|
|
|
-wire [CmdRegWidth-1:0] Spi0RxFifo;
|
|
|
+wire [CmdRegWidth-1:0] spi0Ctrl;
|
|
|
+wire [CmdRegWidth-1:0] spi0Clk;
|
|
|
+wire [CmdRegWidth-1:0] spi0CsDelay;
|
|
|
+wire [CmdRegWidth-1:0] spi0CsCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi0TxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi0RxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi0TxFifo;
|
|
|
+wire [CmdRegWidth-1:0] spi0RxFifo;
|
|
|
//SPI1
|
|
|
-wire [CmdRegWidth-1:0] Spi1Ctrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi1Clk;
|
|
|
-wire [CmdRegWidth-1:0] Spi1CsDelay;
|
|
|
-wire [CmdRegWidth-1:0] Spi1CsCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi1TxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi1RxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi1TxFifo;
|
|
|
-wire [CmdRegWidth-1:0] Spi1RxFifo;
|
|
|
+wire [CmdRegWidth-1:0] spi1Ctrl;
|
|
|
+wire [CmdRegWidth-1:0] spi1Clk;
|
|
|
+wire [CmdRegWidth-1:0] spi1CsDelay;
|
|
|
+wire [CmdRegWidth-1:0] spi1CsCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi1TxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi1RxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi1TxFifo;
|
|
|
+wire [CmdRegWidth-1:0] spi1RxFifo;
|
|
|
//SPI2
|
|
|
-wire [CmdRegWidth-1:0] Spi2Ctrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi2Clk;
|
|
|
-wire [CmdRegWidth-1:0] Spi2CsDelay;
|
|
|
-wire [CmdRegWidth-1:0] Spi2CsCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi2TxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi2RxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi2TxFifo;
|
|
|
+wire [CmdRegWidth-1:0] spi2Ctrl;
|
|
|
+wire [CmdRegWidth-1:0] spi2Clk;
|
|
|
+wire [CmdRegWidth-1:0] spi2CsDelay;
|
|
|
+wire [CmdRegWidth-1:0] spi2CsCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi2TxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi2RxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi2TxFifo;
|
|
|
wire [CmdRegWidth-1:0] Spi2RxFifo;
|
|
|
//SPI3
|
|
|
-wire [CmdRegWidth-1:0] Spi3Ctrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi3Clk;
|
|
|
-wire [CmdRegWidth-1:0] Spi3CsDelay;
|
|
|
-wire [CmdRegWidth-1:0] Spi3CsCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi3TxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi3RxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi3Ctrl;
|
|
|
+wire [CmdRegWidth-1:0] spi3Clk;
|
|
|
+wire [CmdRegWidth-1:0] spi3CsDelay;
|
|
|
+wire [CmdRegWidth-1:0] spi3CsCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi3TxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi3RxFifoCtrl;
|
|
|
wire [CmdRegWidth-1:0] Spi3TxFifo;
|
|
|
wire [CmdRegWidth-1:0] Spi3RxFifo;
|
|
|
//SPI4
|
|
|
-wire [CmdRegWidth-1:0] Spi4Ctrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi4Clk;
|
|
|
-wire [CmdRegWidth-1:0] Spi4CsDelay;
|
|
|
-wire [CmdRegWidth-1:0] Spi4CsCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi4TxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi4RxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi4Ctrl;
|
|
|
+wire [CmdRegWidth-1:0] spi4Clk;
|
|
|
+wire [CmdRegWidth-1:0] spi4CsDelay;
|
|
|
+wire [CmdRegWidth-1:0] spi4CsCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi4TxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi4RxFifoCtrl;
|
|
|
wire [CmdRegWidth-1:0] Spi4TxFifo;
|
|
|
wire [CmdRegWidth-1:0] Spi4RxFifo;
|
|
|
//SPI5
|
|
|
-wire [CmdRegWidth-1:0] Spi5Ctrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi5Clk;
|
|
|
-wire [CmdRegWidth-1:0] Spi5CsDelay;
|
|
|
-wire [CmdRegWidth-1:0] Spi5CsCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi5TxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi5RxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi5Ctrl;
|
|
|
+wire [CmdRegWidth-1:0] spi5Clk;
|
|
|
+wire [CmdRegWidth-1:0] spi5CsDelay;
|
|
|
+wire [CmdRegWidth-1:0] spi5CsCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi5TxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi5RxFifoCtrl;
|
|
|
wire [CmdRegWidth-1:0] Spi5TxFifo;
|
|
|
wire [CmdRegWidth-1:0] Spi5RxFifo;
|
|
|
//SPI6
|
|
|
-wire [CmdRegWidth-1:0] Spi6Ctrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi6Clk;
|
|
|
-wire [CmdRegWidth-1:0] Spi6CsDelay;
|
|
|
-wire [CmdRegWidth-1:0] Spi6CsCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi6TxFifoCtrl;
|
|
|
-wire [CmdRegWidth-1:0] Spi6RxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi6Ctrl;
|
|
|
+wire [CmdRegWidth-1:0] spi6Clk;
|
|
|
+wire [CmdRegWidth-1:0] spi6CsDelay;
|
|
|
+wire [CmdRegWidth-1:0] spi6CsCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi6TxFifoCtrl;
|
|
|
+wire [CmdRegWidth-1:0] spi6RxFifoCtrl;
|
|
|
wire [CmdRegWidth-1:0] Spi6TxFifo;
|
|
|
wire [CmdRegWidth-1:0] Spi6RxFifo;
|
|
|
|
|
|
@@ -157,14 +157,17 @@ wire [SpiNum-1:0] CPOL;
|
|
|
wire [SpiNum-1:0] CPHA;
|
|
|
wire [SpiNum-1:0] endianSel;
|
|
|
wire [SpiNum-1:0] selSt;
|
|
|
+wire [SpiNum-1:0] spiMode;
|
|
|
+
|
|
|
|
|
|
wire [0:5] stopDelay [SpiNum-1:0];
|
|
|
wire [SpiNum-1:0] leadx;
|
|
|
-wire [SpiNum-1:0] lagx;
|
|
|
-wire [SpiNum-1:0] FifoRxRst;
|
|
|
-wire [SpiNum-1:0] FifoTxRst;
|
|
|
-wire [0:7] WordCntTx [SpiNum-1:0];
|
|
|
-wire [0:7] WordCntRx [SpiNum-1:0];
|
|
|
+wire [SpiNum-1:0] lag;
|
|
|
+wire [SpiNum-1:0] fifoRxRst;
|
|
|
+wire [SpiNum-1:0] fifoTxRst;
|
|
|
+wire [0:7] wordCntTx [SpiNum-1:0];
|
|
|
+wire [0:7] wordCntRx [SpiNum-1:0];
|
|
|
+
|
|
|
|
|
|
wire [SpiNum-1:0] CS0;
|
|
|
wire [SpiNum-1:0] CS1;
|
|
|
@@ -177,13 +180,45 @@ wire [SpiNum-1:0] spiSyncRst;
|
|
|
wire [AddrRegWidth-1:0] smcAddr;
|
|
|
wire [CmdRegWidth/2-1:0] smcData;
|
|
|
wire smcVal;
|
|
|
+//RxFifo
|
|
|
+wire [0:23] dataToRxFifo [SpiNum-1:0];
|
|
|
+wire [0:7] addrToRxFifo [SpiNum-1:0];
|
|
|
+wire [SpiNum-1:0] valToRxFifo;
|
|
|
+wire [SpiNum-1:0] valToTxFifoRead;
|
|
|
+
|
|
|
+
|
|
|
+// SPI mode choice
|
|
|
+wire [SpiNum-1:0] SckR;
|
|
|
+wire [SpiNum-1:0] SsR;
|
|
|
+wire [SpiNum-1:0] Mosi0R;
|
|
|
+wire [SpiNum-1:0] valReg;
|
|
|
+wire [SpiNum-1:0] valToTxR;
|
|
|
+wire [SpiNum-1:0] valToRxR;
|
|
|
+wire [0:31] dataToRxFifoR [SpiNum-1:0];
|
|
|
+
|
|
|
+
|
|
|
+wire [SpiNum-1:0] SckQ;
|
|
|
+wire [SpiNum-1:0] SsQ;
|
|
|
+wire [SpiNum-1:0] Mosi0Q;
|
|
|
+wire [SpiNum-1:0] valToTxQ;
|
|
|
+wire [SpiNum-1:0] valToRxQ;
|
|
|
+wire [0:31] dataToRxFifoQ [SpiNum-1:0];
|
|
|
+wire [0:15] dataFromRxFifo [SpiNum-1:0];
|
|
|
+reg [15:0] dataFromRxFifoR;
|
|
|
+wire [15:0] dataFromRxFifoW;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
wire [CmdRegWidth/2-1:0] ansData;
|
|
|
//================================================================================
|
|
|
// ASSIGNMENTS
|
|
|
//================================================================================
|
|
|
assign ten = SpiTxRxEn[6:0];
|
|
|
-assign Mosi0_o = Mosi0;
|
|
|
assign Mosi1_o = Mosi1;
|
|
|
assign Mosi2_o = Mosi2;
|
|
|
assign Mosi3_o = Mosi3;
|
|
|
@@ -203,85 +238,94 @@ 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[1] = Spi1Ctrl[6:5];
|
|
|
-assign widthSel[2] = Spi2Ctrl[6:5];
|
|
|
-assign widthSel[3] = Spi3Ctrl[6:5];
|
|
|
-assign widthSel[4] = Spi4Ctrl[6:5];
|
|
|
-assign widthSel[5] = Spi5Ctrl[6:5];
|
|
|
-assign widthSel[6] = Spi6Ctrl[6:5];
|
|
|
-
|
|
|
-assign CPOL[0] = Spi0Ctrl[2];
|
|
|
-assign CPOL[1] = Spi1Ctrl[2];
|
|
|
-assign CPOL[2] = Spi2Ctrl[2];
|
|
|
-assign CPOL[3] = Spi3Ctrl[2];
|
|
|
-assign CPOL[4] = Spi4Ctrl[2];
|
|
|
-assign CPOL[5] = Spi5Ctrl[2];
|
|
|
-assign CPOL[6] = Spi6Ctrl[2];
|
|
|
-
|
|
|
-assign CPHA[0] = Spi0Ctrl[1];
|
|
|
-assign CPHA[1] = Spi1Ctrl[1];
|
|
|
-assign CPHA[2] = Spi2Ctrl[1];
|
|
|
-assign CPHA[3] = Spi3Ctrl[1];
|
|
|
-assign CPHA[4] = Spi4Ctrl[1];
|
|
|
-assign CPHA[5] = Spi5Ctrl[1];
|
|
|
-assign CPHA[6] = Spi6Ctrl[1];
|
|
|
-
|
|
|
-assign endianSel[0] = Spi0Ctrl[8];
|
|
|
-assign endianSel[1] = Spi1Ctrl[8];
|
|
|
-assign endianSel[2] = Spi2Ctrl[8];
|
|
|
-assign endianSel[3] = Spi3Ctrl[8];
|
|
|
-assign endianSel[4] = Spi4Ctrl[8];
|
|
|
-assign endianSel[5] = Spi5Ctrl[8];
|
|
|
-assign endianSel[6] = Spi6Ctrl[8];
|
|
|
-
|
|
|
-assign selSt[0] = Spi0Ctrl[4];
|
|
|
-assign selSt[1] = Spi1Ctrl[4];
|
|
|
-assign selSt[2] = Spi2Ctrl[4];
|
|
|
-assign selSt[3] = Spi3Ctrl[4];
|
|
|
-assign selSt[4] = Spi4Ctrl[4];
|
|
|
-assign selSt[5] = Spi5Ctrl[4];
|
|
|
-assign selSt[6] = Spi6Ctrl[4];
|
|
|
-
|
|
|
-assign Assel[0] = Spi0Ctrl[3];
|
|
|
-assign Assel[1] = Spi1Ctrl[3];
|
|
|
-assign Assel[2] = Spi2Ctrl[3];
|
|
|
-assign Assel[3] = Spi3Ctrl[3];
|
|
|
-assign Assel[4] = Spi4Ctrl[3];
|
|
|
-assign Assel[5] = Spi5Ctrl[3];
|
|
|
-assign Assel[6] = Spi6Ctrl[3];
|
|
|
-
|
|
|
-assign stopDelay[0] = Spi0CsDelay[7:2];
|
|
|
-assign stopDelay[1] = Spi1CsDelay[7:2];
|
|
|
-assign stopDelay[2] = Spi2CsDelay[7:2];
|
|
|
-assign stopDelay[3] = Spi3CsDelay[7:2];
|
|
|
-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[1] = Spi1CsDelay[1];
|
|
|
-assign leadx[2] = Spi2CsDelay[1];
|
|
|
-assign leadx[3] = Spi3CsDelay[1];
|
|
|
-assign leadx[4] = Spi4CsDelay[1];
|
|
|
-assign leadx[5] = Spi5CsDelay[1];
|
|
|
-assign leadx[6] = Spi6CsDelay[1];
|
|
|
-
|
|
|
-assign lagx[0] = Spi0CsDelay[0];
|
|
|
-assign lagx[1] = Spi1CsDelay[0];
|
|
|
-assign lagx[2] = Spi2CsDelay[0];
|
|
|
-assign lagx[3] = Spi3CsDelay[0];
|
|
|
-assign lagx[4] = Spi4CsDelay[0];
|
|
|
-assign lagx[5] = Spi5CsDelay[0];
|
|
|
-assign lagx[6] = Spi6CsDelay[0];
|
|
|
-
|
|
|
-assign baudRate[0] = Spi0Clk[15:0];
|
|
|
-assign baudRate[1] = Spi1Clk[15:0];
|
|
|
-assign baudRate[2] = Spi2Clk[15:0];
|
|
|
-assign baudRate[3] = Spi3Clk[15:0];
|
|
|
-assign baudRate[4] = Spi4Clk[15:0];
|
|
|
-assign baudRate[5] = Spi5Clk[15:0];
|
|
|
-assign baudRate[6] = Spi6Clk[15:0];
|
|
|
+assign widthSel[0] = spi0Ctrl[6:5];
|
|
|
+assign widthSel[1] = spi1Ctrl[6:5];
|
|
|
+assign widthSel[2] = spi2Ctrl[6:5];
|
|
|
+assign widthSel[3] = spi3Ctrl[6:5];
|
|
|
+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[1] = spi1Ctrl[7];
|
|
|
+assign spiMode[2] = spi2Ctrl[7];
|
|
|
+assign spiMode[3] = spi3Ctrl[7];
|
|
|
+assign spiMode[4] = spi4Ctrl[7];
|
|
|
+assign spiMode[5] = spi5Ctrl[7];
|
|
|
+assign spiMode[6] = spi6Ctrl[7];
|
|
|
+
|
|
|
+
|
|
|
+assign CPOL[0] = spi0Ctrl[2];
|
|
|
+assign CPOL[1] = spi1Ctrl[2];
|
|
|
+assign CPOL[2] = spi2Ctrl[2];
|
|
|
+assign CPOL[3] = spi3Ctrl[2];
|
|
|
+assign CPOL[4] = spi4Ctrl[2];
|
|
|
+assign CPOL[5] = spi5Ctrl[2];
|
|
|
+assign CPOL[6] = spi6Ctrl[2];
|
|
|
+
|
|
|
+assign CPHA[0] = spi0Ctrl[1];
|
|
|
+assign CPHA[1] = spi1Ctrl[1];
|
|
|
+assign CPHA[2] = spi2Ctrl[1];
|
|
|
+assign CPHA[3] = spi3Ctrl[1];
|
|
|
+assign CPHA[4] = spi4Ctrl[1];
|
|
|
+assign CPHA[5] = spi5Ctrl[1];
|
|
|
+assign CPHA[6] = spi6Ctrl[1];
|
|
|
+
|
|
|
+assign endianSel[0] = spi0Ctrl[8];
|
|
|
+assign endianSel[1] = spi1Ctrl[8];
|
|
|
+assign endianSel[2] = spi2Ctrl[8];
|
|
|
+assign endianSel[3] = spi3Ctrl[8];
|
|
|
+assign endianSel[4] = spi4Ctrl[8];
|
|
|
+assign endianSel[5] = spi5Ctrl[8];
|
|
|
+assign endianSel[6] = spi6Ctrl[8];
|
|
|
+
|
|
|
+assign selSt[0] = spi0Ctrl[4];
|
|
|
+assign selSt[1] = spi1Ctrl[4];
|
|
|
+assign selSt[2] = spi2Ctrl[4];
|
|
|
+assign selSt[3] = spi3Ctrl[4];
|
|
|
+assign selSt[4] = spi4Ctrl[4];
|
|
|
+assign selSt[5] = spi5Ctrl[4];
|
|
|
+assign selSt[6] = spi6Ctrl[4];
|
|
|
+
|
|
|
+assign Assel[0] = spi0Ctrl[3];
|
|
|
+assign Assel[1] = spi1Ctrl[3];
|
|
|
+assign Assel[2] = spi2Ctrl[3];
|
|
|
+assign Assel[3] = spi3Ctrl[3];
|
|
|
+assign Assel[4] = spi4Ctrl[3];
|
|
|
+assign Assel[5] = spi5Ctrl[3];
|
|
|
+assign Assel[6] = spi6Ctrl[3];
|
|
|
+
|
|
|
+assign stopDelay[0] = spi0CsDelay[7:2];
|
|
|
+assign stopDelay[1] = spi1CsDelay[7:2];
|
|
|
+assign stopDelay[2] = spi2CsDelay[7:2];
|
|
|
+assign stopDelay[3] = spi3CsDelay[7:2];
|
|
|
+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[1] = spi1CsDelay[1];
|
|
|
+assign leadx[2] = spi2CsDelay[1];
|
|
|
+assign leadx[3] = spi3CsDelay[1];
|
|
|
+assign leadx[4] = spi4CsDelay[1];
|
|
|
+assign leadx[5] = spi5CsDelay[1];
|
|
|
+assign leadx[6] = spi6CsDelay[1];
|
|
|
+
|
|
|
+assign lag[0] = spi0CsDelay[0];
|
|
|
+assign lag[1] = spi1CsDelay[0];
|
|
|
+assign lag[2] = spi2CsDelay[0];
|
|
|
+assign lag[3] = spi3CsDelay[0];
|
|
|
+assign lag[4] = spi4CsDelay[0];
|
|
|
+assign lag[5] = spi5CsDelay[0];
|
|
|
+assign lag[6] = spi6CsDelay[0];
|
|
|
+
|
|
|
+assign baudRate[0] = spi0Clk[15:0];
|
|
|
+assign baudRate[1] = spi1Clk[15:0];
|
|
|
+assign baudRate[2] = spi2Clk[15:0];
|
|
|
+assign baudRate[3] = spi3Clk[15:0];
|
|
|
+assign baudRate[4] = spi4Clk[15:0];
|
|
|
+assign baudRate[5] = spi5Clk[15:0];
|
|
|
+assign baudRate[6] = spi6Clk[15:0];
|
|
|
|
|
|
|
|
|
assign SpiRst_o[0] = GPIOA[0];
|
|
|
@@ -292,68 +336,154 @@ 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[1] = Spi1RxFifoCtrl[0];
|
|
|
-assign FifoRxRst[2] = Spi2RxFifoCtrl[0];
|
|
|
-assign FifoRxRst[3] = Spi3RxFifoCtrl[0];
|
|
|
-assign FifoRxRst[4] = Spi4RxFifoCtrl[0];
|
|
|
-assign FifoRxRst[5] = Spi5RxFifoCtrl[0];
|
|
|
-assign FifoRxRst[6] = Spi6RxFifoCtrl[0];
|
|
|
-
|
|
|
-assign FifoTxRst[0] = Spi0TxFifoCtrl[0];
|
|
|
-assign FifoTxRst[1] = Spi1TxFifoCtrl[0];
|
|
|
-assign FifoTxRst[2] = Spi2TxFifoCtrl[0];
|
|
|
-assign FifoTxRst[3] = Spi3TxFifoCtrl[0];
|
|
|
-assign FifoTxRst[4] = Spi4TxFifoCtrl[0];
|
|
|
-assign FifoTxRst[5] = Spi5TxFifoCtrl[0];
|
|
|
-assign FifoTxRst[6] = Spi6TxFifoCtrl[0];
|
|
|
-
|
|
|
-assign LD_i[0] = GPIOA[16];
|
|
|
-assign LD_i[1] = GPIOA[17];
|
|
|
-assign LD_i[2] = GPIOA[18];
|
|
|
-assign LD_i[3] = GPIOA[19];
|
|
|
-assign LD_i[4] = GPIOA[20];
|
|
|
-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[1] = Spi1RxFifoCtrl[15:8];
|
|
|
-assign WordCntRx[2] = Spi2RxFifoCtrl[15:8];
|
|
|
-assign WordCntRx[3] = Spi3RxFifoCtrl[15:8];
|
|
|
-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[1] = Spi1TxFifoCtrl[15:8];
|
|
|
-assign WordCntTx[2] = Spi2TxFifoCtrl[15:8];
|
|
|
-assign WordCntTx[3] = Spi3TxFifoCtrl[15:8];
|
|
|
-assign WordCntTx[4] = Spi4TxFifoCtrl[15:8];
|
|
|
-assign WordCntTx[5] = Spi5TxFifoCtrl[15:8];
|
|
|
-assign WordCntTx[6] = Spi6TxFifoCtrl[15:8];
|
|
|
-
|
|
|
-
|
|
|
-assign CS0[0] = Spi0CsCtrl[0];
|
|
|
-assign CS0[1] = Spi1CsCtrl[0];
|
|
|
-assign CS0[2] = Spi2CsCtrl[0];
|
|
|
-assign CS0[3] = Spi3CsCtrl[0];
|
|
|
-assign CS0[4] = Spi4CsCtrl[0];
|
|
|
-assign CS0[5] = Spi5CsCtrl[0];
|
|
|
-assign CS0[6] = Spi6CsCtrl[0];
|
|
|
-
|
|
|
-assign CS1[0] = Spi0CsCtrl[1];
|
|
|
-assign CS1[1] = Spi1CsCtrl[1];
|
|
|
-assign CS1[2] = Spi2CsCtrl[1];
|
|
|
-assign CS1[3] = Spi3CsCtrl[1];
|
|
|
-assign CS1[4] = Spi4CsCtrl[1];
|
|
|
-assign CS1[5] = Spi5CsCtrl[1];
|
|
|
-assign CS1[6] = Spi6CsCtrl[1];
|
|
|
+assign fifoRxRst[0] = spi0RxFifoCtrl[0];
|
|
|
+assign fifoRxRst[1] = spi1RxFifoCtrl[0];
|
|
|
+assign fifoRxRst[2] = spi2RxFifoCtrl[0];
|
|
|
+assign fifoRxRst[3] = spi3RxFifoCtrl[0];
|
|
|
+assign fifoRxRst[4] = spi4RxFifoCtrl[0];
|
|
|
+assign fifoRxRst[5] = spi5RxFifoCtrl[0];
|
|
|
+assign fifoRxRst[6] = spi6RxFifoCtrl[0];
|
|
|
+
|
|
|
+assign fifoTxRst[0] = spi0TxFifoCtrl[0];
|
|
|
+assign fifoTxRst[1] = spi1TxFifoCtrl[0];
|
|
|
+assign fifoTxRst[2] = spi2TxFifoCtrl[0];
|
|
|
+assign fifoTxRst[3] = spi3TxFifoCtrl[0];
|
|
|
+assign fifoTxRst[4] = spi4TxFifoCtrl[0];
|
|
|
+assign fifoTxRst[5] = spi5TxFifoCtrl[0];
|
|
|
+assign fifoTxRst[6] = spi6TxFifoCtrl[0];
|
|
|
+
|
|
|
+assign Ld_i[0] = GPIOA[16];
|
|
|
+assign Ld_i[1] = GPIOA[17];
|
|
|
+assign Ld_i[2] = GPIOA[18];
|
|
|
+assign Ld_i[3] = GPIOA[19];
|
|
|
+assign Ld_i[4] = GPIOA[20];
|
|
|
+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[1] = spi1RxFifoCtrl[15:8];
|
|
|
+assign wordCntRx[2] = spi2RxFifoCtrl[15:8];
|
|
|
+assign wordCntRx[3] = spi3RxFifoCtrl[15:8];
|
|
|
+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[1] = spi1TxFifoCtrl[15:8];
|
|
|
+assign wordCntTx[2] = spi2TxFifoCtrl[15:8];
|
|
|
+assign wordCntTx[3] = spi3TxFifoCtrl[15:8];
|
|
|
+assign wordCntTx[4] = spi4TxFifoCtrl[15:8];
|
|
|
+assign wordCntTx[5] = spi5TxFifoCtrl[15:8];
|
|
|
+assign wordCntTx[6] = spi6TxFifoCtrl[15:8];
|
|
|
+
|
|
|
+
|
|
|
+assign CS0[0] = spi0CsCtrl[0];
|
|
|
+assign CS0[1] = spi1CsCtrl[0];
|
|
|
+assign CS0[2] = spi2CsCtrl[0];
|
|
|
+assign CS0[3] = spi3CsCtrl[0];
|
|
|
+assign CS0[4] = spi4CsCtrl[0];
|
|
|
+assign CS0[5] = spi5CsCtrl[0];
|
|
|
+assign CS0[6] = spi6CsCtrl[0];
|
|
|
+
|
|
|
+assign CS1[0] = spi0CsCtrl[1];
|
|
|
+assign CS1[1] = spi1CsCtrl[1];
|
|
|
+assign CS1[2] = spi2CsCtrl[1];
|
|
|
+assign CS1[3] = spi3CsCtrl[1];
|
|
|
+assign CS1[4] = spi4CsCtrl[1];
|
|
|
+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]:valReg[0];
|
|
|
+assign Mosi0[1] = (spiMode)? Mosi0Q[1]:valReg[1];
|
|
|
+assign Mosi0[2] = (spiMode)? Mosi0Q[2]:valReg[2];
|
|
|
+assign Mosi0[3] = (spiMode)? Mosi0Q[3]:valReg[3];
|
|
|
+assign Mosi0[4] = (spiMode)? Mosi0Q[4]:valReg[4];
|
|
|
+assign Mosi0[5] = (spiMode)? Mosi0Q[5]:valReg[5];
|
|
|
+assign Mosi0[6] = (spiMode)? Mosi0Q[6]:valReg[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 dataFromRxFifoW = dataFromRxFifoR;
|
|
|
|
|
|
//================================================================================
|
|
|
// CODING
|
|
|
//================================================================================
|
|
|
|
|
|
+always @(*) begin
|
|
|
+ if (initRst) begin
|
|
|
+ dataFromRxFifoR = 16'b0;
|
|
|
+ end
|
|
|
+ else begin
|
|
|
+ case (Ss_o)
|
|
|
+ 7'b0000001: begin
|
|
|
+ dataFromRxFifoR = dataFromRxFifo[0];
|
|
|
+ end
|
|
|
+ 7'b0000010: begin
|
|
|
+ dataFromRxFifoR = dataFromRxFifo[1];
|
|
|
+ end
|
|
|
+ 7'b0000011: begin
|
|
|
+ dataFromRxFifoR = dataFromRxFifo[2];
|
|
|
+ end
|
|
|
+ 7'b0000100: begin
|
|
|
+ dataFromRxFifoR = dataFromRxFifo[3];
|
|
|
+ end
|
|
|
+ 7'b0000101: begin
|
|
|
+ dataFromRxFifoR = dataFromRxFifo[4];
|
|
|
+ end
|
|
|
+ 7'b0000110: begin
|
|
|
+ dataFromRxFifoR = dataFromRxFifo[5];
|
|
|
+ end
|
|
|
+ 7'b0000111: begin
|
|
|
+ dataFromRxFifoR = dataFromRxFifo[6];
|
|
|
+ end
|
|
|
+ default: dataFromRxFifoR = 16'b0;
|
|
|
+ endcase
|
|
|
+ end
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
BUFG BUFG_inst (
|
|
|
.O(gclk), // 1-bit output: Clock output
|
|
|
.I(Clk123_i) // 1-bit input: Clock input
|
|
|
@@ -413,66 +543,66 @@ RegMap_inst
|
|
|
.Led_o(Led_o),
|
|
|
.AnsDataReg_o(ansData),
|
|
|
//Spi0
|
|
|
- .Spi0CtrlReg_o(Spi0Ctrl),
|
|
|
- .Spi0ClkReg_o(Spi0Clk),
|
|
|
- .Spi0CsDelayReg_o(Spi0CsDelay),
|
|
|
- .Spi0CsCtrlReg_o(Spi0CsCtrl),
|
|
|
- .Spi0TxFifoCtrlReg_o(Spi0TxFifoCtrl),
|
|
|
- .Spi0RxFifoCtrlReg_o(Spi0RxFifoCtrl),
|
|
|
- .Spi0TxFifoReg_o(Spi0TxFifo),
|
|
|
- .Spi0RxFifoReg_o(Spi0RxFifo),
|
|
|
+ .Spi0CtrlReg_o(spi0Ctrl),
|
|
|
+ .Spi0ClkReg_o(spi0Clk),
|
|
|
+ .Spi0CsDelayReg_o(spi0CsDelay),
|
|
|
+ .Spi0CsCtrlReg_o(spi0CsCtrl),
|
|
|
+ .Spi0TxFifoCtrlReg_o(spi0TxFifoCtrl),
|
|
|
+ .Spi0RxFifoCtrlReg_o(spi0RxFifoCtrl),
|
|
|
+ .Spi0TxFifoReg_o(spi0TxFifo),
|
|
|
+ .Spi0RxFifoReg_o(spi0RxFifo),
|
|
|
//Spi1
|
|
|
- .Spi1CtrlReg_o(Spi1Ctrl),
|
|
|
- .Spi1ClkReg_o(Spi1Clk),
|
|
|
- .Spi1CsDelayReg_o(Spi1CsDelay),
|
|
|
- .Spi1CsCtrlReg_o(Spi1CsCtrl),
|
|
|
- .Spi1TxFifoCtrlReg_o(Spi1TxFifoCtrl),
|
|
|
- .Spi1RxFifoCtrlReg_o(Spi1RxFifoCtrl),
|
|
|
- .Spi1TxFifoReg_o(Spi1TxFifo),
|
|
|
- .Spi1RxFifoReg_o(Spi1RxFifo),
|
|
|
+ .Spi1CtrlReg_o(spi1Ctrl),
|
|
|
+ .Spi1ClkReg_o(spi1Clk),
|
|
|
+ .Spi1CsDelayReg_o(spi1CsDelay),
|
|
|
+ .Spi1CsCtrlReg_o(spi1CsCtrl),
|
|
|
+ .Spi1TxFifoCtrlReg_o(spi1TxFifoCtrl),
|
|
|
+ .Spi1RxFifoCtrlReg_o(spi1RxFifoCtrl),
|
|
|
+ .Spi1TxFifoReg_o(spi1TxFifo),
|
|
|
+ .Spi1RxFifoReg_o(spi1RxFifo),
|
|
|
//Spi2
|
|
|
- .Spi2CtrlReg_o(Spi2Ctrl),
|
|
|
- .Spi2ClkReg_o(Spi2Clk),
|
|
|
- .Spi2CsDelayReg_o(Spi2CsDelay),
|
|
|
- .Spi2CsCtrlReg_o(Spi2CsCtrl),
|
|
|
- .Spi2TxFifoCtrlReg_o(Spi2TxFifoCtrl),
|
|
|
- .Spi2RxFifoCtrlReg_o(Spi2RxFifoCtrl),
|
|
|
- .Spi2TxFifoReg_o(Spi2TxFifo),
|
|
|
+ .Spi2CtrlReg_o(spi2Ctrl),
|
|
|
+ .Spi2ClkReg_o(spi2Clk),
|
|
|
+ .Spi2CsDelayReg_o(spi2CsDelay),
|
|
|
+ .Spi2CsCtrlReg_o(spi2CsCtrl),
|
|
|
+ .Spi2TxFifoCtrlReg_o(spi2TxFifoCtrl),
|
|
|
+ .Spi2RxFifoCtrlReg_o(spi2RxFifoCtrl),
|
|
|
+ .Spi2TxFifoReg_o(spi2TxFifo),
|
|
|
.Spi2RxFifoReg_o(Spi2RxFifo),
|
|
|
//Spi3
|
|
|
- .Spi3CtrlReg_o(Spi3Ctrl),
|
|
|
- .Spi3ClkReg_o(Spi3Clk),
|
|
|
- .Spi3CsDelayReg_o(Spi3CsDelay),
|
|
|
- .Spi3CsCtrlReg_o(Spi3CsCtrl),
|
|
|
- .Spi3TxFifoCtrlReg_o(Spi3TxFifoCtrl),
|
|
|
- .Spi3RxFifoCtrlReg_o(Spi3RxFifoCtrl),
|
|
|
+ .Spi3CtrlReg_o(spi3Ctrl),
|
|
|
+ .Spi3ClkReg_o(spi3Clk),
|
|
|
+ .Spi3CsDelayReg_o(spi3CsDelay),
|
|
|
+ .Spi3CsCtrlReg_o(spi3CsCtrl),
|
|
|
+ .Spi3TxFifoCtrlReg_o(spi3TxFifoCtrl),
|
|
|
+ .Spi3RxFifoCtrlReg_o(spi3RxFifoCtrl),
|
|
|
.Spi3TxFifoReg_o(Spi3TxFifo),
|
|
|
.Spi3RxFifoReg_o(Spi3RxFifo),
|
|
|
//Spi4
|
|
|
- .Spi4CtrlReg_o(Spi4Ctrl),
|
|
|
- .Spi4ClkReg_o(Spi4Clk),
|
|
|
- .Spi4CsDelayReg_o(Spi4CsDelay),
|
|
|
- .Spi4CsCtrlReg_o(Spi4CsCtrl),
|
|
|
- .Spi4TxFifoCtrlReg_o(Spi4TxFifoCtrl),
|
|
|
- .Spi4RxFifoCtrlReg_o(Spi4RxFifoCtrl),
|
|
|
+ .Spi4CtrlReg_o(spi4Ctrl),
|
|
|
+ .Spi4ClkReg_o(spi4Clk),
|
|
|
+ .Spi4CsDelayReg_o(spi4CsDelay),
|
|
|
+ .Spi4CsCtrlReg_o(spi4CsCtrl),
|
|
|
+ .Spi4TxFifoCtrlReg_o(spi4TxFifoCtrl),
|
|
|
+ .Spi4RxFifoCtrlReg_o(spi4RxFifoCtrl),
|
|
|
.Spi4TxFifoReg_o(Spi4TxFifo),
|
|
|
.Spi4RxFifoReg_o(Spi4RxFifo),
|
|
|
//Spi5
|
|
|
- .Spi5CtrlReg_o(Spi5Ctrl),
|
|
|
- .Spi5ClkReg_o(Spi5Clk),
|
|
|
- .Spi5CsDelayReg_o(Spi5CsDelay),
|
|
|
- .Spi5CsCtrlReg_o(Spi5CsCtrl),
|
|
|
- .Spi5TxFifoCtrlReg_o(Spi5TxFifoCtrl),
|
|
|
- .Spi5RxFifoCtrlReg_o(Spi5RxFifoCtrl),
|
|
|
+ .Spi5CtrlReg_o(spi5Ctrl),
|
|
|
+ .Spi5ClkReg_o(spi5Clk),
|
|
|
+ .Spi5CsDelayReg_o(spi5CsDelay),
|
|
|
+ .Spi5CsCtrlReg_o(spi5CsCtrl),
|
|
|
+ .Spi5TxFifoCtrlReg_o(spi5TxFifoCtrl),
|
|
|
+ .Spi5RxFifoCtrlReg_o(spi5RxFifoCtrl),
|
|
|
.Spi5TxFifoReg_o(Spi5TxFifo),
|
|
|
.Spi5RxFifoReg_o(Spi5RxFifo),
|
|
|
//Spi6
|
|
|
- .Spi6CtrlReg_o(Spi6Ctrl),
|
|
|
- .Spi6ClkReg_o(Spi6Clk),
|
|
|
- .Spi6CsDelayReg_o(Spi6CsDelay),
|
|
|
- .Spi6CsCtrlReg_o(Spi6CsCtrl),
|
|
|
- .Spi6TxFifoCtrlReg_o(Spi6TxFifoCtrl),
|
|
|
- .Spi6RxFifoCtrlReg_o(Spi6RxFifoCtrl),
|
|
|
+ .Spi6CtrlReg_o(spi6Ctrl),
|
|
|
+ .Spi6ClkReg_o(spi6Clk),
|
|
|
+ .Spi6CsDelayReg_o(spi6CsDelay),
|
|
|
+ .Spi6CsCtrlReg_o(spi6CsCtrl),
|
|
|
+ .Spi6TxFifoCtrlReg_o(spi6TxFifoCtrl),
|
|
|
+ .Spi6RxFifoCtrlReg_o(spi6RxFifoCtrl),
|
|
|
.Spi6TxFifoReg_o(Spi6TxFifo),
|
|
|
.Spi6RxFifoReg_o(Spi6RxFifo),
|
|
|
|
|
|
@@ -489,6 +619,7 @@ MmcmWrapper MainMmcm
|
|
|
);
|
|
|
|
|
|
|
|
|
+
|
|
|
genvar i;
|
|
|
|
|
|
generate
|
|
|
@@ -509,24 +640,71 @@ generate
|
|
|
// .Rst_i (spiSyncRst[i] | FifoRxRst[i]),
|
|
|
.Rst_i (FifoRxRst[i]),
|
|
|
.SmcAre_i (SmcAre_i),
|
|
|
+ .SmcAwe_i (SmcAwe_i),
|
|
|
|
|
|
.ToFifoVal_i (toFifoVal[i]),
|
|
|
+ .ToFifoRxData_i (dataToRxFifo[i]),
|
|
|
+ .ToFifoRxWriteVal_i (valToRxFifo[i]),
|
|
|
+ .ToFifoTxReadVal_i (valToTxFifoRead[i]),
|
|
|
.ToFifoData_i (toFifoData[32*i+:32]),
|
|
|
+
|
|
|
|
|
|
.ToSpiVal_o (toSpiVal[i]),
|
|
|
+ .DataFromRxFifo_o (dataToRxFifo[i]),
|
|
|
.ToSpiData_o (toSpiData[i])
|
|
|
);
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ SPIm SPIm_inst (
|
|
|
+ .Clk_i(spiClkBus[i]),
|
|
|
+ .Start_i(ten[i]),
|
|
|
+ .Rst_i(initRst| spiMode[i]),
|
|
|
+ .SPIdata(toSpiData[i]),
|
|
|
+ .Sck_o(SckR[i]),
|
|
|
+ .Ss_o(SsR[i]),
|
|
|
+ .Mosi0_o(valReg[i]),
|
|
|
+ .WidthSel_i(widthSel[i]),
|
|
|
+ .PulsePol_i(CPOL[i]),
|
|
|
+ .CPHA_i(CPHA[i]),
|
|
|
+ .EndianSel_i(endianSel[i]),
|
|
|
+ .LAG_i(lag[i]),
|
|
|
+ .LEAD_i(leadx[i]),
|
|
|
+ .Stop_i(stopDelay[i]),
|
|
|
+ .SELST_i(selSt[i]),
|
|
|
+ .Val_o(valToTxR[i])
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ );
|
|
|
+
|
|
|
+ SPIs SPIs_inst (
|
|
|
+ .Clk_i(spiClkBus[i]),
|
|
|
+ .Rst_i(initRst|SpiRst_o[i]| spiMode[i]),
|
|
|
+ .Sck_i(SckR[i]),
|
|
|
+ .Ss_i(SsR[i]),
|
|
|
+ .Mosi0_i(valReg[i]),
|
|
|
+ .WidthSel_i(widthSel[i]),
|
|
|
+ .SELST_i(selSt[i]),
|
|
|
+ .DataToRxFifo_o(dataToRxFifoR[i]),
|
|
|
+ .Val_o(valToRxR[i])
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
QuadSPIm QuadSPIm_inst (
|
|
|
.Clk_i(spiClkBus[i]),
|
|
|
.Start_i(ten[i]),
|
|
|
- .Rst_i(initRst),
|
|
|
+ .Rst_i(initRst| !spiMode[i]),
|
|
|
.SpiDataVal_i (toSpiVal),
|
|
|
// .SPIdata(32'h2aaa00aa),
|
|
|
.SPIdata(toSpiData[i]),
|
|
|
- .Sck_o(Sck[i]),
|
|
|
- .Ss_o(Ss[i]),
|
|
|
- .Mosi0_i(Mosi0[i]),
|
|
|
+ .Sck_o(SckQ[i]),
|
|
|
+ .Ss_o(SsQ[i]),
|
|
|
+ .Mosi0_i(Mosi0Q[i]),
|
|
|
.Mosi1_i(Mosi1[i]),
|
|
|
.Mosi2_i(Mosi2[i]),
|
|
|
.Mosi3_i(Mosi3[i]),
|
|
|
@@ -534,11 +712,27 @@ generate
|
|
|
.PulsePol_i(CPOL[i]),
|
|
|
.CPHA_i(CPHA[i]),
|
|
|
.EndianSel_i(endianSel[i]),
|
|
|
- .LAG_i(lagx[i]),
|
|
|
+ .LAG_i(lag[i]),
|
|
|
.LEAD_i(leadx[i]),
|
|
|
.Stop_i(stopDelay[i]),
|
|
|
- .SELST_i(selSt[i])
|
|
|
+ .SELST_i(selSt[i]),
|
|
|
+ .Val_o(valToTxQ[i])
|
|
|
+ );
|
|
|
+ QuadSPIs QuadSPIs_inst (
|
|
|
+ .Clk_i(spiClkBus[i]),
|
|
|
+ .Rst_i(initRst|SpiRst_o[i]| !spiMode[i]),
|
|
|
+ .Sck_i(SckQ[i]),
|
|
|
+ .Ss_i(SsQ[i]),
|
|
|
+ .Mosi0_i(Mosi0[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
|
|
|
|