DataMuxer.v 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. `timescale 1ns / 1ps
  2. //////////////////////////////////////////////////////////////////////////////////
  3. // Company:
  4. // Engineer:
  5. //
  6. // Create Date: 10:02:35 04/20/2020
  7. // Design Name:
  8. // Module Name: mult_module
  9. // Project Name:
  10. // Target Devices:
  11. // Tool versions:
  12. // Description:
  13. //
  14. // Dependencies:
  15. //
  16. // Revision:
  17. // Revision 0.01 - File Created
  18. // Additional Comments:
  19. //
  20. //
  21. //
  22. //////////////////////////////////////////////////////////////////////////////////
  23. module DataMuxer
  24. #(
  25. parameter DataWidth = 256,
  26. parameter CmdWidth = 3
  27. )
  28. (
  29. input Rst_i,
  30. input Clk_i,
  31. input [CmdWidth-1:0] MuxCtrl_i,
  32. input [DataWidth-1:0] MeasData_i,
  33. input [DataWidth-1:0] OscData_i,
  34. input MeasDataVal_i,
  35. input OscDataVal_i,
  36. output reg [DataWidth-1:0] MuxDataOut_o,
  37. output reg MuxedVal_o
  38. );
  39. //================================================================================
  40. // CODING
  41. always @(posedge Clk_i) begin
  42. if (!Rst_i) begin
  43. if (MuxCtrl_i==1) begin
  44. MuxDataOut_o <= OscData_i;
  45. MuxedVal_o <= OscDataVal_i;
  46. end else begin
  47. MuxDataOut_o <= MeasData_i;
  48. MuxedVal_o <= MeasDataVal_i;
  49. end
  50. end else begin
  51. MuxDataOut_o <= 0;
  52. MuxedVal_o <= 0;
  53. end
  54. end
  55. endmodule