SpiClkMux.v 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //////////////////////////////////////////////////////////////////////////////////
  2. // Company: TAIR
  3. // Engineer:
  4. //
  5. // Create Date: 10/30/2023 11:24:31 AM
  6. // Design Name:
  7. // Module Name: SpiClkMux
  8. // Project Name: S5443_V3_FPGA3
  9. // Target Devices: BOARD: BY5443v3. FPGA: xc7s25csga225-2
  10. // Tool Versions:
  11. // Description:
  12. //
  13. // Dependencies:
  14. //
  15. // Revision:
  16. // Revision 1.0 - File Created
  17. // Additional Comments:
  18. //
  19. //////////////////////////////////////////////////////////////////////////////////
  20. module SpiClkMux (
  21. input Rst_i,
  22. input clkCh,
  23. input clkOutMMCM,
  24. input clkMan,
  25. output SpiClk_o
  26. );
  27. //================================================================================
  28. // REG/WIRE
  29. //================================================================================
  30. reg spiClkReg;
  31. wire spiClk;
  32. //================================================================================
  33. // ASSIGNMENTS
  34. //===============================================================================
  35. assign spiClk = spiClkReg;
  36. //================================================================================
  37. // CODING
  38. //================================================================================
  39. always @(*) begin
  40. if (Rst_i) begin
  41. spiClkReg = 0;
  42. end
  43. else begin
  44. if (clkCh) begin
  45. spiClkReg = clkOutMMCM;
  46. end
  47. else begin
  48. spiClkReg = clkMan;
  49. end
  50. end
  51. end
  52. BUFG BUFG_inst (
  53. .O(SpiClk_o), // 1-bit output: Clock output
  54. .I(spiClk) // 1-bit input: Clock input
  55. );
  56. endmodule