| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- module DataFifoWrapper
- #(
- parameter CmdRegWidth = 32,
- parameter AddrRegWidth= 12,
-
- parameter FifoNum = 7
- )
- (
- input WrClk_i,
- input RdClk_i,
- input Rst_i,
- input SmcAre_i,
- input SmcAwe_i,
- input ToFifoVal_i,
- input [CmdRegWidth-1:0] ToFifoData_i,
- input [CmdRegWidth-1:0] ToFifoRxData_i,
- input ToFifoRxWriteVal_i,
-
- input ToFifoTxReadVal_i,
- output ToSpiVal_o,
- output [CmdRegWidth-1:0] ToSpiData_o
- );
- //================================================================================
- // REG/WIRE
- //================================================================================
- wire [CmdRegWidth-1:0] dataFromRxFifo;
- wire fullFlagRx;
- wire emptyFlagRx;
- wire fullFlagTx;
- wire emptyFlagTx;
- wire txFifoWrEn;
- wire txFifoRdEn;
- wire rxFifoWrEn;
- wire rxFifoRdEn;
- //================================================================================
- // ASSIGNMENTS
- //================================================================================
- assign ToSpiVal_o = 1'b1;
- //================================================================================
- // LOCALPARAMS
- //================================================================================
- //================================================================================
- // CODING
- //================================================================================
- FifoCtrl FifoCtrl_inst (
- .ToFifoTxWriteVal_i (!SmcAwe_i && toFifoVal_i),
- .ToFifoTxReadVal_i (ToFifoTxReadVal_i),
- .ToFifoRxWriteVal_i (ToFifoRxWriteVal_i),
- .ToFifoRxReadVal_i (!SmcAre_i),
- .FifoTxFull_i (fullFlagTx),
- .FifoTxEmpty_i (emptyFlagTx),
- .FifoRxFull_i (fullFlagRx),
- .FifoRxEmpty_i (emptyFlagRx),
- .FifoTxWriteEn_o (txFifoWrEn),
- .FifoTxReadEn_o (txFifoRdEn),
- .FifoRxWriteEn_o (rxFifoWrEn),
- .FifoRxReadEn_o (rxFifoRdEn)
- );
- DataFifo DataFifoTx
- (
- .wr_clk (WrClk_i),
- .rd_clk (RdClk_i),
- .din (ToFifoData_i),
- .wr_en (txFifoWrEn),
- .rd_en (txFifoRdEn),
- .dout (ToSpiData_o),
- .full (fullFlagTx),
- .empty (emptyFlagTx)
- );
- DataFifo DataFifoRx
- (
- .wr_clk (RdClk_i),
- .rd_clk (WrClk_i),
- .din (ToFifoRxData_i),
- .wr_en (rxFifoWrEn),
- .rd_en (rxFifoRdEn),
- .dout (dataFromRxFifo),
- .full (fullFlagRx),
- .empty (emptyFlagRx)
- );
- endmodule
|