Mux.v 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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. module Mux
  22. #(
  23. parameter CmdRegWidth = 24,
  24. parameter PGenNum = 7,
  25. parameter TrigPortsNum = 6
  26. )
  27. (
  28. input Rst_i,
  29. input [CmdRegWidth-28:0] MuxCtrl_i,
  30. input DspTrigOut_i,
  31. input DspStartCmd_i,
  32. input IntTrig_i,
  33. input IntTrig2_i,
  34. input [PGenNum-1:0] PulseBus_i,
  35. input [TrigPortsNum-1:0] ExtPortsBus_i,
  36. output MuxOut_o
  37. );
  38. //================================================================================
  39. // LOCALPARAM
  40. //================================================================================
  41. // REG/WIRE
  42. reg muxOut;
  43. wire [PGenNum+TrigPortsNum+5:0] inputBus = {IntTrig2_i,1'b1,1'b0,DspStartCmd_i,DspTrigOut_i,IntTrig_i,ExtPortsBus_i,PulseBus_i};
  44. //================================================================================
  45. // ASSIGNMENTS
  46. assign MuxOut_o = muxOut;
  47. //================================================================================
  48. // CODING
  49. always @(*) begin
  50. if (!Rst_i) begin
  51. muxOut = inputBus[MuxCtrl_i];
  52. end else begin
  53. muxOut = 1'b0;
  54. end
  55. end
  56. endmodule