DataOutMux.v 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. module DataOutMux (
  2. input Rst_i,
  3. input Clk_i,
  4. input [11:0] Addr_i,
  5. input [11:0] ToRegMapAddr_i,
  6. input [15:0] DataFromRegMap_i,
  7. input [31:0] DataFromRxFifo1_i,
  8. input [31:0] DataFromRxFifo2_i,
  9. input [31:0] DataFromRxFifo3_i,
  10. input [31:0] DataFromRxFifo4_i,
  11. input [31:0] DataFromRxFifo5_i,
  12. input [31:0] DataFromRxFifo6_i,
  13. input [31:0] DataFromRxFifo7_i,
  14. output [15:0] AnsData_o
  15. );
  16. wire [0:31] dataFromRxFifo [6:0];
  17. wire [15:0] dataFromRegMap;
  18. reg [15:0] dataFromRxFifoR;
  19. assign dataFromRxFifo[0] = DataFromRxFifo1_i;
  20. assign dataFromRxFifo[1] = DataFromRxFifo2_i;
  21. assign dataFromRxFifo[2] = DataFromRxFifo3_i;
  22. assign dataFromRxFifo[3] = DataFromRxFifo4_i;
  23. assign dataFromRxFifo[4] = DataFromRxFifo5_i;
  24. assign dataFromRxFifo[5] = DataFromRxFifo6_i;
  25. assign dataFromRxFifo[6] = DataFromRxFifo7_i;
  26. assign dataFromRegMap = DataFromRegMap_i;
  27. assign AnsData_o = (ToRegMapAddr_i)?dataFromRegMap:dataFromRxFifoR;
  28. always @(*) begin
  29. case (Addr_i)
  30. 12'h1c: begin
  31. dataFromRxFifoR = DataFromRxFifo1_i[15:0];
  32. end
  33. 12'h1e: begin
  34. dataFromRxFifoR = DataFromRxFifo1_i[31:16];
  35. end
  36. 12'h6c: begin
  37. dataFromRxFifoR = DataFromRxFifo2_i[15:0];
  38. end
  39. 12'h6e: begin
  40. dataFromRxFifoR = DataFromRxFifo2_i[31:16];
  41. end
  42. 12'h10c: begin
  43. dataFromRxFifoR = DataFromRxFifo3_i[15:0];
  44. end
  45. 12'h10e: begin
  46. dataFromRxFifoR = DataFromRxFifo1_i[31:16];
  47. end
  48. 12'h15c: begin
  49. dataFromRxFifoR = DataFromRxFifo4_i[15:0];
  50. end
  51. 12'h15e: begin
  52. dataFromRxFifoR = DataFromRxFifo4_i[31:16];
  53. end
  54. 12'h1ac: begin
  55. dataFromRxFifoR = DataFromRxFifo5_i[15:0];
  56. end
  57. 12'h1ae: begin
  58. dataFromRxFifoR = DataFromRxFifo5_i[31:16];
  59. end
  60. 12'h1fc: begin
  61. dataFromRxFifoR = DataFromRxFifo6_i[15:0];
  62. end
  63. 12'h1fe: begin
  64. dataFromRxFifoR = DataFromRxFifo6_i[31:16];
  65. end
  66. 12'h24c: begin
  67. dataFromRxFifoR = DataFromRxFifo7_i[15:0];
  68. end
  69. 12'h24e: begin
  70. dataFromRxFifoR = DataFromRxFifo7_i[31:16];
  71. end
  72. endcase
  73. end
  74. endmodule