|
|
@@ -1,3 +1,4 @@
|
|
|
+
|
|
|
`timescale 1ns / 1ps
|
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
// Company:
|
|
|
@@ -62,23 +63,100 @@ wire clk80;
|
|
|
wire clk61;
|
|
|
wire Rst_i;
|
|
|
wire gclk;
|
|
|
-wire [15:0] baudRate;
|
|
|
+wire [15:0] baudRate [SpiNum-1:0];
|
|
|
wire [19:0] baudRateexp;
|
|
|
|
|
|
+//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;
|
|
|
+//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;
|
|
|
+//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] 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] 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] 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] 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] Spi6TxFifo;
|
|
|
+wire [CmdRegWidth-1:0] Spi6RxFifo;
|
|
|
+
|
|
|
+wire [CmdRegWidth-1:0] SpiTxRxEn;
|
|
|
+wire [CmdRegWidth-1:0] GPIOA;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//================================================================================
|
|
|
// ASSIGNMENTS
|
|
|
//================================================================================
|
|
|
assign addr = {Addr_i, 1'b0};
|
|
|
assign Data_i = (!outputEn_i) ? data : 16'bz;
|
|
|
-assign ten = 8'b00000001;
|
|
|
+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 Sck_o = Sck;
|
|
|
-assign baudRate = 16'h4;
|
|
|
-assign baudRateexp = baudRate*13+1;
|
|
|
+// assign baudRate[15:0][0] =Spi0Clk[15:0];
|
|
|
+// assign baudRate[15:0][1] =Spi1Clk[15:0];
|
|
|
+// assign baudRate[15:0][2] =Spi2Clk[15:0];
|
|
|
+// assign baudRate[15:0][3] =Spi3Clk[15:0];
|
|
|
+// assign baudRate[15:0][4] =Spi4Clk[15:0];
|
|
|
+// assign baudRate[15:0][5] =Spi5Clk[15:0];
|
|
|
+// assign baudRate[15:0][6] =Spi6Clk[15:0];
|
|
|
+
|
|
|
+
|
|
|
//================================================================================
|
|
|
// CODING
|
|
|
//================================================================================
|
|
|
@@ -131,7 +209,73 @@ RegMap_inst (
|
|
|
.rdEn_i(readEn_i),
|
|
|
.BE_i(BE_i),
|
|
|
.Led_o(Led_o),
|
|
|
- .AnsDataReg_o(data)
|
|
|
+ .AnsDataReg_o(data),
|
|
|
+ //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),
|
|
|
+ //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),
|
|
|
+ //Spi2
|
|
|
+ .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),
|
|
|
+ .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),
|
|
|
+ .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),
|
|
|
+ .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),
|
|
|
+ .Spi6TxFifoReg_o(Spi6TxFifo),
|
|
|
+ .Spi6RxFifoReg_o(Spi6RxFifo),
|
|
|
+
|
|
|
+ .SpiTxRxEnReg_o(SpiTxRxEn),
|
|
|
+ .GPIOAReg_o(GPIOA)
|
|
|
|
|
|
);
|
|
|
|