|
|
@@ -35,7 +35,6 @@ module S5443_3Top #(
|
|
|
input SmcAmsN_i,
|
|
|
|
|
|
input SmcAre_i,
|
|
|
- // input DspRst_i,
|
|
|
input [1:0] SmcBe_i,
|
|
|
input SmcAoe_i,
|
|
|
output [SpiNum-1:0] LD_i,
|
|
|
@@ -47,6 +46,7 @@ module S5443_3Top #(
|
|
|
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 LD_o
|
|
|
@@ -58,6 +58,7 @@ module S5443_3Top #(
|
|
|
//================================================================================
|
|
|
wire Clk100_i;
|
|
|
wire [SpiNum-1:0]Sck;
|
|
|
+wire [AddrRegWidth-1:0] addr;
|
|
|
wire [SpiNum-1:0] Ss;
|
|
|
wire [SpiNum-1:0]Mosi0;
|
|
|
wire [SpiNum-1:0]Mosi1;
|
|
|
@@ -163,6 +164,11 @@ 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;
|
|
|
+
|
|
|
+wire [SpiNum-1:0] Assel;
|
|
|
+
|
|
|
wire [SpiNum-1:0] spiClkBus;
|
|
|
wire [SpiNum-1:0] spiSyncRst;
|
|
|
|
|
|
@@ -173,13 +179,27 @@ wire smcVal;
|
|
|
//================================================================================
|
|
|
// ASSIGNMENTS
|
|
|
//================================================================================
|
|
|
+assign addr = {SmcAddr_i, 1'b0};
|
|
|
assign Data_i = (!SmcAoe_i) ? data : 16'bz;
|
|
|
assign ten = SpiTxRxEn[6:0];
|
|
|
assign Mosi0_o = Mosi0;
|
|
|
assign Mosi1_o = Mosi1;
|
|
|
assign Mosi2_o = Mosi2;
|
|
|
assign Mosi3_o = Mosi3;
|
|
|
-assign Ss_o = Ss;
|
|
|
+assign Ss_o[0] = (Assel[0])? ((CS0[0])? Ss[0]:~Ss[0]):CS0[0];
|
|
|
+assign Ss_o[1] = (Assel[1])? ((CS0[1])? Ss[1]:~Ss[1]):CS0[1];
|
|
|
+assign Ss_o[2] = (Assel[2])? ((CS0[2])? Ss[2]:~Ss[2]):CS0[2];
|
|
|
+assign Ss_o[3] = (Assel[3])? ((CS0[3])? Ss[3]:~Ss[3]):CS0[3];
|
|
|
+assign Ss_o[4] = (Assel[4])? ((CS0[4])? Ss[4]:~Ss[4]):CS0[4];
|
|
|
+assign Ss_o[5] = (Assel[5])? ((CS0[5])? Ss[5]:~Ss[5]):CS0[5];
|
|
|
+assign Ss_o[6] = (Assel[6])? ((CS0[6])? Ss[6]:~Ss[6]):CS0[6];
|
|
|
+assign SsFlash_o[0] = (Assel[0])?(CS1[0]? Ss[0]:~Ss[0]):CS1[0];
|
|
|
+assign SsFlash_o[1] = (Assel[1])?(CS1[1]? Ss[1]:~Ss[1]):CS1[1];
|
|
|
+assign SsFlash_o[2] = (Assel[2])?(CS1[2]? Ss[2]:~Ss[2]):CS1[2];
|
|
|
+assign SsFlash_o[3] = (Assel[3])?(CS1[3]? Ss[3]:~Ss[3]):CS1[3];
|
|
|
+assign SsFlash_o[4] = (Assel[4])?(CS1[4]? Ss[4]:~Ss[4]):CS1[4];
|
|
|
+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];
|
|
|
@@ -222,6 +242,14 @@ 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];
|
|
|
@@ -305,6 +333,22 @@ 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];
|
|
|
+
|
|
|
//================================================================================
|
|
|
// CODING
|
|
|
//================================================================================
|
|
|
@@ -320,8 +364,8 @@ SmcRx SmcRx
|
|
|
.RstN_i (!initRst),
|
|
|
.ForceRstN_i(1'b0),
|
|
|
|
|
|
- .SmcD_i (SmcD_i),
|
|
|
- .SmcA_i (SmcA_i),
|
|
|
+ .SmcD_i (SmcData_i),
|
|
|
+ .SmcA_i (addr),
|
|
|
.SmcAwe_i (SmcAwe_i),
|
|
|
.SmcAmsN_i (SmcAmsN_i),
|
|
|
.SmcAoe_i (SmcAoe_i),
|
|
|
@@ -338,9 +382,9 @@ SmcDataMux SmcDataMuxer
|
|
|
.Clk_i (gclk),
|
|
|
.Rst_i (initRst),
|
|
|
|
|
|
- .SmcVal_i (smcVal),
|
|
|
- .SmcData_i (smcData),
|
|
|
- .SmcAddr_i ({smcAddr,1'b0}),
|
|
|
+ .SmcVal_i (1'b1),
|
|
|
+ .SmcData_i ({SmcData_i,SmcData_i}),
|
|
|
+ .SmcAddr_i ({SmcAddr_i,1'b0}),
|
|
|
|
|
|
.ToRegMapVal_o (toRegMapVal),
|
|
|
.ToRegMapData_o (toRegMapData),
|