MmcmWrapper.v 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. module MmcmWrapper
  2. #(
  3. parameter SpiNum = 7
  4. )
  5. (
  6. input Clk_i,
  7. input Rst_i,
  8. output [SpiNum-1:0] SpiCLk_o
  9. );
  10. //================================================================================
  11. // REG/WIRE
  12. //================================================================================
  13. wire clkfb_bufgout;
  14. wire clkfb_bufgin;
  15. wire clk0_bufgin;
  16. wire clk0_bufgout;
  17. wire clk1_bufgin;
  18. wire clk1_bufgout;
  19. wire clk2_bufgin;
  20. wire clk2_bufgout;
  21. wire clk3_bufgin;
  22. wire clk3_bufgout;
  23. wire clk4_bufgin;
  24. wire clk4_bufgout;
  25. wire clk5_bufgin;
  26. wire clk5_bufgout;
  27. wire clk6_bufgin;
  28. wire clk6_bufgout;
  29. //================================================================================
  30. // ASSIGNMENTS
  31. //================================================================================
  32. //================================================================================
  33. // LOCALPARAMS
  34. //================================================================================
  35. //================================================================================
  36. // CODING
  37. //================================================================================
  38. MMCME2_ADV
  39. #(
  40. .BANDWIDTH ("OPTIMIZED"),
  41. .DIVCLK_DIVIDE (1),
  42. .CLKFBOUT_MULT_F (10),
  43. .CLKFBOUT_PHASE (0.0),
  44. .CLKFBOUT_USE_FINE_PS("FALSE"),
  45. // .CLKIN1_PERIOD (10.000),
  46. .CLKIN1_PERIOD (8.130081300813),
  47. .CLKIN2_PERIOD (10.000),
  48. .CLKOUT0_DIVIDE_F (12.3),
  49. .CLKOUT0_DUTY_CYCLE (0.5),
  50. .CLKOUT0_PHASE (0.0),
  51. .CLKOUT0_USE_FINE_PS ("FALSE"),
  52. .CLKOUT1_DIVIDE (12.3),
  53. .CLKOUT1_DUTY_CYCLE (0.5),
  54. .CLKOUT1_PHASE (0.0),
  55. .CLKOUT1_USE_FINE_PS ("FALSE"),
  56. .CLKOUT2_DIVIDE (12.3),
  57. .CLKOUT2_DUTY_CYCLE (0.5),
  58. .CLKOUT2_PHASE (0.0),
  59. .CLKOUT2_USE_FINE_PS ("FALSE"),
  60. .CLKOUT3_DIVIDE (12.3),
  61. .CLKOUT3_DUTY_CYCLE (0.5),
  62. .CLKOUT3_PHASE (0.0),
  63. .CLKOUT3_USE_FINE_PS ("FALSE"),
  64. .CLKOUT4_DIVIDE (12.3),
  65. .CLKOUT4_DUTY_CYCLE (0.5),
  66. .CLKOUT4_PHASE (0.0),
  67. .CLKOUT4_USE_FINE_PS ("FALSE"),
  68. .CLKOUT4_CASCADE ("FALSE"),
  69. .CLKOUT5_DIVIDE (12.3),
  70. .CLKOUT5_DUTY_CYCLE (0.5),
  71. .CLKOUT5_PHASE (0.0),
  72. .CLKOUT5_USE_FINE_PS ("FALSE"),
  73. .CLKOUT6_DIVIDE (12.3),
  74. .CLKOUT6_DUTY_CYCLE (0.5),
  75. .CLKOUT6_PHASE (0.0),
  76. .CLKOUT6_USE_FINE_PS ("FALSE"),
  77. .COMPENSATION ("ZHOLD"),
  78. .STARTUP_WAIT ("FALSE")
  79. )
  80. mmcme2_test_inst
  81. (
  82. .CLKFBOUT (clkfb_bufgin),
  83. .CLKFBOUTB (),
  84. .CLKFBSTOPPED (),
  85. .CLKINSTOPPED (),
  86. .CLKOUT0 (clk0_bufgin),
  87. .CLKOUT0B (),
  88. .CLKOUT1 (clk1_bufgin),
  89. .CLKOUT1B (),
  90. .CLKOUT2 (clk2_bufgin),
  91. .CLKOUT2B (),
  92. .CLKOUT3 (clk3_bufgin),
  93. .CLKOUT3B (),
  94. .CLKOUT4 (clk4_bufgin),
  95. .CLKOUT5 (clk5_bufgin),
  96. .CLKOUT6 (clk6_bufgin),
  97. .DO (dout),
  98. .DRDY (drdy),
  99. .DADDR (daddr),
  100. .DCLK (dclk),
  101. .DEN (den),
  102. .DI (di),
  103. .DWE (dwe),
  104. .LOCKED (LOCKED),
  105. .CLKFBIN (clkfb_bufgout),
  106. .CLKIN1 (Clk_i),
  107. .CLKIN2 (),
  108. .CLKINSEL (1'b1),
  109. .PSDONE (),
  110. .PSCLK (1'b0),
  111. .PSEN (1'b0),
  112. .PSINCDEC (1'b0),
  113. .PWRDWN (1'b0),
  114. .RST (Rst_i)
  115. );
  116. BUFG BUFG_FB (.O (clkfb_bufgout), .I (clkfb_bufgin));
  117. BUFG BUFG_CLK0 (.O (SpiCLk_o[0]), .I (clk0_bufgin));
  118. BUFG BUFG_CLK1 (.O (SpiCLk_o[1]), .I (clk0_bufgin));
  119. BUFG BUFG_CLK2 (.O (SpiCLk_o[2]), .I (clk0_bufgin));
  120. BUFG BUFG_CLK3 (.O (SpiCLk_o[3]), .I (clk0_bufgin));
  121. BUFG BUFG_CLK4 (.O (SpiCLk_o[4]), .I (clk0_bufgin));
  122. BUFG BUFG_CLK5 (.O (SpiCLk_o[5]), .I (clk0_bufgin));
  123. BUFG BUFG_CLK6 (.O (SpiCLk_o[6]), .I (clk0_bufgin));
  124. endmodule