You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
2.0 KiB

2 years ago
2 years ago
2 years ago
  1. `include "config.v"
  2. /*
  3. * Hacky baud rate generator to divide a 50MHz clock into a 115200 baud
  4. * rx/tx pair where the rx clcken oversamples by 16x.
  5. */
  6. module rd_data_router (
  7. input [31:0] addr,
  8. input [31:0] stm32_rd_data,
  9. input [31:0] fpga_test_rd_data,
  10. input [31:0] control_sensor_rd_data,
  11. input [31:0] ttlin1_rd_data,
  12. input [31:0] ttlin2_rd_data,
  13. input [31:0] ttlin3_rd_data,
  14. input [31:0] ttlin4_rd_data,
  15. input [31:0] timecode_in_rd_data,
  16. input [31:0] genlock_in_rd_data,
  17. input [31:0] ttlout1_rd_data,
  18. input [31:0] ttlout2_rd_data,
  19. input [31:0] ttlout3_rd_data,
  20. input [31:0] ttlout4_rd_data,
  21. input [31:0] timecode_out_rd_data,
  22. input [31:0] genlock_out_rd_data,
  23. input [31:0] stm32_if_rd_data,
  24. input [31:0] debuger_rd_data,
  25. output reg [31:0] rd_data_out
  26. );
  27. always @(*) begin
  28. case (addr >> 8)
  29. `REG_ADD_OFF_STM32 >> 8: rd_data_out = stm32_rd_data;
  30. `REG_ADD_OFF_FPGA_TEST >> 8: rd_data_out = fpga_test_rd_data;
  31. `REG_ADD_OFF_CONTROL_SENSOR >> 8: rd_data_out = control_sensor_rd_data;
  32. `REG_ADD_OFF_TTLIN1 >> 8: rd_data_out = ttlin1_rd_data;
  33. `REG_ADD_OFF_TTLIN2 >> 8: rd_data_out = ttlin2_rd_data;
  34. `REG_ADD_OFF_TTLIN3 >> 8: rd_data_out = ttlin3_rd_data;
  35. `REG_ADD_OFF_TTLIN4 >> 8: rd_data_out = ttlin4_rd_data;
  36. `REG_ADD_OFF_TIMECODE_IN >> 8: rd_data_out = timecode_in_rd_data;
  37. `REG_ADD_OFF_GENLOCK_IN >> 8: rd_data_out = genlock_in_rd_data;
  38. `REG_ADD_OFF_TTLOUT1 >> 8: rd_data_out = ttlout1_rd_data;
  39. `REG_ADD_OFF_TTLOUT2 >> 8: rd_data_out = ttlout2_rd_data;
  40. `REG_ADD_OFF_TTLOUT3 >> 8: rd_data_out = ttlout3_rd_data;
  41. `REG_ADD_OFF_TTLOUT4 >> 8: rd_data_out = ttlout4_rd_data;
  42. `REG_ADD_OFF_TIMECODE_OUT >> 8: rd_data_out = timecode_out_rd_data;
  43. `REG_ADD_OFF_GENLOCK_OUT >> 8: rd_data_out = genlock_out_rd_data;
  44. `REG_ADD_OFF_STM32_IF >> 8: rd_data_out = stm32_if_rd_data;
  45. `REG_ADD_OFF_DEBUGER >> 8: rd_data_out = debuger_rd_data;
  46. default: rd_data_out = 0;
  47. endcase
  48. end
  49. endmodule