| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- module OutputMux #(
- parameter AXI_DATA_WIDTH = 64,
- parameter SPI_NUM = 7,
- parameter FIFO_1_READ_ADDR = 64'h0000_0000_0000_1030,
- parameter FIFO_2_READ_ADDR = 64'h0000_0000_0000_2030,
- parameter FIFO_3_READ_ADDR = 64'h0000_0000_0000_3030,
- parameter FIFO_4_READ_ADDR = 64'h0000_0000_0000_4030,
- parameter FIFO_5_READ_ADDR = 64'h0000_0000_0000_5030,
- parameter FIFO_6_READ_ADDR = 64'h0000_0000_0000_6030,
- parameter FIFO_7_READ_ADDR = 64'h0000_0000_0000_7030
- )(
- input Clk_i,
- input RstN_i,
- input [AXI_DATA_WIDTH - 1 : 0] DataFromRxFifo_i [SPI_NUM - 1 : 0],
- input [AXI_DATA_WIDTH - 1 : 0] DataFromRegMap_i,
- input [AXI_DATA_WIDTH-1:0] Addr_i,
- output reg [AXI_DATA_WIDTH-1:0] AnsData_o
- );
- //================================================================================
- // CODING
- //================================================================================
- /* Multiplexing the data from the RxFifo and the RegMap */
- always_comb
- if (!RstN_i) begin
- AnsData_o = 0;
- end
- else begin
- AnsData_o = DataFromRegMap_i;
- for (int i = 0; i < SPI_NUM; i++) begin
- if (Addr_i == FIFO_1_READ_ADDR + i*1000) begin
- AnsData_o = DataFromRxFifo_i[i];
- end
- end
- end
- endmodule
|