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