|
@@ -22,9 +22,9 @@
|
|
|
|
|
|
|
|
module InterfaceArbiter
|
|
module InterfaceArbiter
|
|
|
#(
|
|
#(
|
|
|
- parameter OutWordWith = 24,
|
|
|
|
|
- parameter SingleSpiWordWith = 24,
|
|
|
|
|
- parameter QuadSpiWordWith = 6
|
|
|
|
|
|
|
+ parameter OUTWORDWIDTH = 24,
|
|
|
|
|
+ parameter SSPIWORDWIDTH = 24,
|
|
|
|
|
+ parameter QSPIWORDWIDTH = SSPIWORDWIDTH/4
|
|
|
)
|
|
)
|
|
|
(
|
|
(
|
|
|
input Rst_i,
|
|
input Rst_i,
|
|
@@ -40,7 +40,7 @@ module InterfaceArbiter
|
|
|
|
|
|
|
|
|
|
|
|
|
input DataVal_o,
|
|
input DataVal_o,
|
|
|
- input [OutWordWith-1:0] Data_o
|
|
|
|
|
|
|
+ input [OUTWORDWIDTH-1:0] Data_o
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
//================================================================================
|
|
//================================================================================
|
|
@@ -49,15 +49,15 @@ module InterfaceArbiter
|
|
|
localparam [1:0] IDLE = 0;
|
|
localparam [1:0] IDLE = 0;
|
|
|
localparam [1:0] DATARX = 1;
|
|
localparam [1:0] DATARX = 1;
|
|
|
|
|
|
|
|
- reg [OutWordWith-1:0] dataRegSSpi;
|
|
|
|
|
- reg [OutWordWith-1:0] dataRegQSpi;
|
|
|
|
|
|
|
+ reg [OUTWORDWIDTH-1:0] dataRegSSpi;
|
|
|
|
|
+ reg [OUTWORDWIDTH-1:0] dataRegQSpi;
|
|
|
|
|
|
|
|
- reg [OutWordWith-1:0] captRegSspi;
|
|
|
|
|
|
|
+ reg [OUTWORDWIDTH-1:0] captRegSspi;
|
|
|
|
|
|
|
|
- reg [QuadSpiWordWith-1:0] captReg0;
|
|
|
|
|
- reg [QuadSpiWordWith-1:0] captReg1;
|
|
|
|
|
- reg [QuadSpiWordWith-1:0] captReg2;
|
|
|
|
|
- reg [QuadSpiWordWith-1:0] captReg3;
|
|
|
|
|
|
|
+ reg [QSPIWORDWIDTH-1:0] captReg0;
|
|
|
|
|
+ reg [QSPIWORDWIDTH-1:0] captReg1;
|
|
|
|
|
+ reg [QSPIWORDWIDTH-1:0] captReg2;
|
|
|
|
|
+ reg [QSPIWORDWIDTH-1:0] captReg3;
|
|
|
|
|
|
|
|
reg ssReg;
|
|
reg ssReg;
|
|
|
reg ssRegR;
|
|
reg ssRegR;
|
|
@@ -70,9 +70,9 @@ module InterfaceArbiter
|
|
|
|
|
|
|
|
reg dataValReg;
|
|
reg dataValReg;
|
|
|
|
|
|
|
|
- reg [OutWordWith/4-1:0] ssCnt;
|
|
|
|
|
- reg [OutWordWith/4-1:0] wordsCnt;
|
|
|
|
|
- wire [OutWordWith/4-1:0] ssCntRstThresh = (spiMode) ? QuadSpiWordWith-1:SingleSpiWordWith-1;
|
|
|
|
|
|
|
+ reg [OUTWORDWIDTH/4-1:0] ssCnt;
|
|
|
|
|
+ reg [OUTWORDWIDTH/4-1:0] wordsCnt;
|
|
|
|
|
+ wire [OUTWORDWIDTH/4-1:0] ssCntRstThresh = (spiMode) ? QSPIWORDWIDTH-1:SSPIWORDWIDTH-1;
|
|
|
|
|
|
|
|
reg [16:0] wordsNum;
|
|
reg [16:0] wordsNum;
|
|
|
|
|
|
|
@@ -93,12 +93,12 @@ module InterfaceArbiter
|
|
|
always @(posedge Sck_i) begin
|
|
always @(posedge Sck_i) begin
|
|
|
if (!Rst_i) begin
|
|
if (!Rst_i) begin
|
|
|
if (!Ss_i) begin
|
|
if (!Ss_i) begin
|
|
|
- captRegSspi <= {captRegSspi[OutWordWith-2:0], Mosi0_i};
|
|
|
|
|
|
|
+ captRegSspi <= {captRegSspi[OUTWORDWIDTH-2:0], Mosi0_i};
|
|
|
|
|
|
|
|
- captReg0 <= {captReg0[QuadSpiWordWith-2:0], Mosi0_i};
|
|
|
|
|
- captReg1 <= {captReg1[QuadSpiWordWith-2:0], Mosi1_i};
|
|
|
|
|
- captReg2 <= {captReg2[QuadSpiWordWith-2:0], Mosi2_i};
|
|
|
|
|
- captReg3 <= {captReg3[QuadSpiWordWith-2:0], Mosi3_i};
|
|
|
|
|
|
|
+ captReg0 <= {captReg0[QSPIWORDWIDTH-2:0], Mosi0_i};
|
|
|
|
|
+ captReg1 <= {captReg1[QSPIWORDWIDTH-2:0], Mosi1_i};
|
|
|
|
|
+ captReg2 <= {captReg2[QSPIWORDWIDTH-2:0], Mosi2_i};
|
|
|
|
|
+ captReg3 <= {captReg3[QSPIWORDWIDTH-2:0], Mosi3_i};
|
|
|
end
|
|
end
|
|
|
end else begin
|
|
end else begin
|
|
|
captRegSspi <= 0;
|
|
captRegSspi <= 0;
|
|
@@ -165,13 +165,11 @@ module InterfaceArbiter
|
|
|
always @(posedge Clk_i) begin
|
|
always @(posedge Clk_i) begin
|
|
|
if (!Rst_i) begin
|
|
if (!Rst_i) begin
|
|
|
if (currState == IDLE) begin
|
|
if (currState == IDLE) begin
|
|
|
- // if (ssPos) begin
|
|
|
|
|
- if (!spiMode) begin
|
|
|
|
|
- wordsNum <= dataRegSSpi[17:1];
|
|
|
|
|
- end else begin
|
|
|
|
|
- wordsNum <= dataRegQSpi[22:19]+dataRegQSpi[18:17]+dataRegQSpi[16]+dataRegQSpi[15]+dataRegQSpi[14]+dataRegQSpi[13:12]+dataRegQSpi[11:9]+dataRegQSpi[8:7];
|
|
|
|
|
- end
|
|
|
|
|
- // end
|
|
|
|
|
|
|
+ if (!spiMode) begin
|
|
|
|
|
+ wordsNum <= dataRegSSpi[17:1];
|
|
|
|
|
+ end else begin
|
|
|
|
|
+ wordsNum <= dataRegQSpi[22:19]+dataRegQSpi[18:17]+dataRegQSpi[16]+dataRegQSpi[15]+dataRegQSpi[14]+dataRegQSpi[13:12]+dataRegQSpi[11:9]+dataRegQSpi[8:7];
|
|
|
|
|
+ end
|
|
|
end
|
|
end
|
|
|
end else begin
|
|
end else begin
|
|
|
wordsNum <= 0;
|
|
wordsNum <= 0;
|