| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- module DataFifoWrapper
- #(
- parameter CmdRegWidth = 32,
- parameter AddrRegWidth= 12,
-
- parameter FifoNum = 7
- )
- (
- input WrClk_i,
- input RdClk_i,
- input FifoRxRst_i,
- input FifoTxRst_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,
- output [CmdRegWidth-1:0] DataFromRxFifo_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;
- assign DataFromRxFifo_o = dataFromRxFifo;
- //================================================================================
- // LOCALPARAMS
- //================================================================================
- //================================================================================
- // CODING
- //================================================================================
- FifoCtrl FifoCtrl_inst (
- .ToFifoTxWriteVal_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),
- .FifoTxWrClock_i (WrClk_i),
- .FifoTxRdClock_i (RdClk_i),
- .FifoRxWrClock_i (RdClk_i),
- .FifoRxRdClock_i (WrClk_i),
- .FifoTxWriteEn_o (txFifoWrEn),
- .FifoTxReadEn_o (txFifoRdEn),
- .FifoRxWriteEn_o (rxFifoWrEn),
- .FifoRxReadEn_o (rxFifoRdEn)
- );
- DataFifoTx DataFifoTx
- (
- .wr_clk (WrClk_i),
- .rd_clk (RdClk_i),
- .rst (FifoTxRst_i),
- .din (ToFifoData_i),
- .wr_en (txFifoWrEn),
- .rd_en (txFifoRdEn),
- .dout (ToSpiData_o),
- .full (fullFlagTx),
- .empty (emptyFlagTx)
- );
- DataFifoRx DataFifoRx
- (
- .wr_clk (RdClk_i),
- .rd_clk (WrClk_i),
- .rst (FifoRxRst_i),
- .din (ToFifoRxData_i),
- .wr_en (rxFifoWrEn),
- .rd_en (rxFifoRdEn),
- .dout (dataFromRxFifo),
- .full (fullFlagRx),
- .empty (emptyFlagRx)
- );
- endmodule
|