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.

295 lines
10 KiB

2 years ago
  1. // Created by IP Generator (Version 2021.1-SP7 build 86875)
  2. //////////////////////////////////////////////////////////////////////////////
  3. //
  4. // Copyright (c) 2019 PANGO MICROSYSTEMS, INC
  5. // ALL RIGHTS REVERVED.
  6. //
  7. // THE SOURCE CODE CONTAINED HEREIN IS PROPRIETARY TO PANGO MICROSYSTEMS, INC.
  8. // IT SHALL NOT BE REPRODUCED OR DISCLOSED IN WHOLE OR IN PART OR USED BY
  9. // PARTIES WITHOUT WRITTEN AUTHORIZATION FROM THE OWNER.
  10. //
  11. //////////////////////////////////////////////////////////////////////////////
  12. //
  13. // Library:
  14. // Filename:inclkpll.v
  15. //////////////////////////////////////////////////////////////////////////////
  16. module inclkpll (
  17. clkin1,
  18. clkout0,
  19. pll_lock
  20. );
  21. localparam real CLKIN_FREQ = 50.0;
  22. localparam integer STATIC_RATIOI = 2;
  23. localparam integer STATIC_RATIO0 = 120;
  24. localparam integer STATIC_RATIO1 = 12;
  25. localparam integer STATIC_RATIO2 = 16;
  26. localparam integer STATIC_RATIO3 = 16;
  27. localparam integer STATIC_RATIO4 = 16;
  28. localparam integer STATIC_RATIOF = 24;
  29. localparam integer STATIC_DUTY0 = 120;
  30. localparam integer STATIC_DUTY1 = 12;
  31. localparam integer STATIC_DUTY2 = 16;
  32. localparam integer STATIC_DUTY3 = 16;
  33. localparam integer STATIC_DUTY4 = 16;
  34. localparam integer STATIC_DUTYF = 24;
  35. localparam integer STATIC_PHASE0 = 16;
  36. localparam integer STATIC_PHASE1 = 16;
  37. localparam integer STATIC_PHASE2 = 16;
  38. localparam integer STATIC_PHASE3 = 16;
  39. localparam integer STATIC_PHASE4 = 16;
  40. localparam CLK_CAS1_EN = "FALSE";
  41. localparam CLK_CAS2_EN = "FALSE";
  42. localparam CLK_CAS3_EN = "FALSE";
  43. localparam CLK_CAS4_EN = "FALSE";
  44. localparam CLKIN_BYPASS_EN = "FALSE";
  45. localparam CLKOUT0_GATE_EN = "FALSE";
  46. localparam CLKOUT0_EXT_GATE_EN = "FALSE";
  47. localparam CLKOUT1_GATE_EN = "FALSE";
  48. localparam CLKOUT2_GATE_EN = "FALSE";
  49. localparam CLKOUT3_GATE_EN = "FALSE";
  50. localparam CLKOUT4_GATE_EN = "FALSE";
  51. localparam FBMODE = "FALSE";
  52. localparam integer FBDIV_SEL = 0;
  53. localparam BANDWIDTH = "OPTIMIZED";
  54. localparam PFDEN_EN = "FALSE";
  55. localparam VCOCLK_DIV2 = 1'b0;
  56. localparam DYNAMIC_RATIOI_EN = "FALSE";
  57. localparam DYNAMIC_RATIO0_EN = "FALSE";
  58. localparam DYNAMIC_RATIO1_EN = "FALSE";
  59. localparam DYNAMIC_RATIO2_EN = "FALSE";
  60. localparam DYNAMIC_RATIO3_EN = "FALSE";
  61. localparam DYNAMIC_RATIO4_EN = "FALSE";
  62. localparam DYNAMIC_RATIOF_EN = "FALSE";
  63. localparam DYNAMIC_DUTY0_EN = "FALSE";
  64. localparam DYNAMIC_DUTY1_EN = "FALSE";
  65. localparam DYNAMIC_DUTY2_EN = "FALSE";
  66. localparam DYNAMIC_DUTY3_EN = "FALSE";
  67. localparam DYNAMIC_DUTY4_EN = "FALSE";
  68. localparam DYNAMIC_DUTYF_EN = "FALSE";
  69. localparam PHASE_ADJUST0_EN = "TRUE";
  70. localparam PHASE_ADJUST1_EN = (CLK_CAS1_EN == "TRUE") ? "FALSE" : "TRUE";
  71. localparam PHASE_ADJUST2_EN = (CLK_CAS2_EN == "TRUE") ? "FALSE" : "TRUE";
  72. localparam PHASE_ADJUST3_EN = (CLK_CAS3_EN == "TRUE") ? "FALSE" : "TRUE";
  73. localparam PHASE_ADJUST4_EN = (CLK_CAS4_EN == "TRUE") ? "FALSE" : "TRUE";
  74. localparam DYNAMIC_PHASE0_EN = "FALSE";
  75. localparam DYNAMIC_PHASE1_EN = "FALSE";
  76. localparam DYNAMIC_PHASE2_EN = "FALSE";
  77. localparam DYNAMIC_PHASE3_EN = "FALSE";
  78. localparam DYNAMIC_PHASE4_EN = "FALSE";
  79. localparam DYNAMIC_PHASEF_EN = "FALSE";
  80. localparam integer STATIC_PHASEF = 16;
  81. localparam CLK_CAS0_EN = "FALSE";
  82. localparam integer CLKOUT5_SEL = 0;
  83. localparam CLKOUT5_GATE_EN = "FALSE";
  84. localparam INTERNAL_FB = (FBMODE == "FALSE") ? "ENABLE":"DISABLE";
  85. localparam EXTERNAL_FB = (FBMODE == "FALSE") ? "DISABLE":
  86. (FBDIV_SEL == 0) ? "CLKOUT0":
  87. (FBDIV_SEL == 1) ? "CLKOUT1":
  88. (FBDIV_SEL == 2) ? "CLKOUT2":
  89. (FBDIV_SEL == 3) ? "CLKOUT3":
  90. (FBDIV_SEL == 4) ? "CLKOUT4":"DISABLE";
  91. localparam RSTODIV_ENABLE = "FALSE";
  92. localparam SIM_DEVICE = "PGL22G";
  93. input clkin1;
  94. output clkout0;
  95. output pll_lock;
  96. wire clkout0;
  97. wire clkout0_2pad;
  98. wire clkout1;
  99. wire clkout2;
  100. wire clkout3;
  101. wire clkout4;
  102. wire clkout5;
  103. wire clkswitch_flag;
  104. wire pll_lock;
  105. wire clkin1;
  106. wire clkin2;
  107. wire clkfb;
  108. wire clkin_sel;
  109. wire clkin_sel_en;
  110. wire pfden;
  111. wire clkout0_gate;
  112. wire clkout0_2pad_gate;
  113. wire clkout1_gate;
  114. wire clkout2_gate;
  115. wire clkout3_gate;
  116. wire clkout4_gate;
  117. wire clkout5_gate;
  118. wire [9:0] dyn_idiv;
  119. wire [9:0] dyn_odiv0;
  120. wire [9:0] dyn_odiv1;
  121. wire [9:0] dyn_odiv2;
  122. wire [9:0] dyn_odiv3;
  123. wire [9:0] dyn_odiv4;
  124. wire [9:0] dyn_fdiv;
  125. wire [9:0] dyn_duty0;
  126. wire [9:0] dyn_duty1;
  127. wire [9:0] dyn_duty2;
  128. wire [9:0] dyn_duty3;
  129. wire [9:0] dyn_duty4;
  130. wire [12:0] dyn_phase0;
  131. wire [12:0] dyn_phase1;
  132. wire [12:0] dyn_phase2;
  133. wire [12:0] dyn_phase3;
  134. wire [12:0] dyn_phase4;
  135. wire pll_pwd;
  136. wire pll_rst;
  137. wire rstodiv;
  138. wire icp_base;
  139. wire [3:0] icp_sel;
  140. wire [2:0] lpfres_sel;
  141. wire cripple_sel;
  142. wire [2:0] phase_sel;
  143. wire phase_dir;
  144. wire phase_step_n;
  145. wire load_phase;
  146. wire [6:0] dyn_mdiv;
  147. assign clkin2 = 1'b0;
  148. assign clkin_sel = 1'b0;
  149. assign clkin_sel_en = 1'b0;
  150. assign pll_pwd = 1'b0;
  151. assign pll_rst = 1'b0;
  152. assign rstodiv = 1'b0;
  153. GTP_PLL_E1 #(
  154. .CLKIN_FREQ(CLKIN_FREQ),
  155. .PFDEN_EN(PFDEN_EN),
  156. .VCOCLK_DIV2(VCOCLK_DIV2),
  157. .DYNAMIC_RATIOI_EN(DYNAMIC_RATIOI_EN),
  158. .DYNAMIC_RATIO0_EN(DYNAMIC_RATIO0_EN),
  159. .DYNAMIC_RATIO1_EN(DYNAMIC_RATIO1_EN),
  160. .DYNAMIC_RATIO2_EN(DYNAMIC_RATIO2_EN),
  161. .DYNAMIC_RATIO3_EN(DYNAMIC_RATIO3_EN),
  162. .DYNAMIC_RATIO4_EN(DYNAMIC_RATIO4_EN),
  163. .DYNAMIC_RATIOF_EN(DYNAMIC_RATIOF_EN),
  164. .STATIC_RATIOI(STATIC_RATIOI),
  165. .STATIC_RATIO0(STATIC_RATIO0),
  166. .STATIC_RATIO1(STATIC_RATIO1),
  167. .STATIC_RATIO2(STATIC_RATIO2),
  168. .STATIC_RATIO3(STATIC_RATIO3),
  169. .STATIC_RATIO4(STATIC_RATIO4),
  170. .STATIC_RATIOF(STATIC_RATIOF),
  171. .DYNAMIC_DUTY0_EN(DYNAMIC_DUTY0_EN),
  172. .DYNAMIC_DUTY1_EN(DYNAMIC_DUTY1_EN),
  173. .DYNAMIC_DUTY2_EN(DYNAMIC_DUTY2_EN),
  174. .DYNAMIC_DUTY3_EN(DYNAMIC_DUTY3_EN),
  175. .DYNAMIC_DUTY4_EN(DYNAMIC_DUTY4_EN),
  176. .DYNAMIC_DUTYF_EN(DYNAMIC_DUTYF_EN),
  177. .STATIC_DUTY0(STATIC_DUTY0),
  178. .STATIC_DUTY1(STATIC_DUTY1),
  179. .STATIC_DUTY2(STATIC_DUTY2),
  180. .STATIC_DUTY3(STATIC_DUTY3),
  181. .STATIC_DUTY4(STATIC_DUTY4),
  182. .STATIC_DUTYF(STATIC_DUTYF),
  183. .PHASE_ADJUST0_EN(PHASE_ADJUST0_EN),
  184. .PHASE_ADJUST1_EN(PHASE_ADJUST1_EN),
  185. .PHASE_ADJUST2_EN(PHASE_ADJUST2_EN),
  186. .PHASE_ADJUST3_EN(PHASE_ADJUST3_EN),
  187. .PHASE_ADJUST4_EN(PHASE_ADJUST4_EN),
  188. .DYNAMIC_PHASE0_EN(DYNAMIC_PHASE0_EN),
  189. .DYNAMIC_PHASE1_EN(DYNAMIC_PHASE1_EN),
  190. .DYNAMIC_PHASE2_EN(DYNAMIC_PHASE2_EN),
  191. .DYNAMIC_PHASE3_EN(DYNAMIC_PHASE3_EN),
  192. .DYNAMIC_PHASE4_EN(DYNAMIC_PHASE4_EN),
  193. .DYNAMIC_PHASEF_EN(DYNAMIC_PHASEF_EN),
  194. .STATIC_PHASE0(STATIC_PHASE0[2:0]),
  195. .STATIC_PHASE1(STATIC_PHASE1[2:0]),
  196. .STATIC_PHASE2(STATIC_PHASE2[2:0]),
  197. .STATIC_PHASE3(STATIC_PHASE3[2:0]),
  198. .STATIC_PHASE4(STATIC_PHASE4[2:0]),
  199. .STATIC_PHASEF(STATIC_PHASEF[2:0]),
  200. .STATIC_CPHASE0(STATIC_PHASE0[12:3]),
  201. .STATIC_CPHASE1(STATIC_PHASE1[12:3]),
  202. .STATIC_CPHASE2(STATIC_PHASE2[12:3]),
  203. .STATIC_CPHASE3(STATIC_PHASE3[12:3]),
  204. .STATIC_CPHASE4(STATIC_PHASE4[12:3]),
  205. .STATIC_CPHASEF(STATIC_PHASEF[12:3]),
  206. .CLK_CAS0_EN(CLK_CAS0_EN),
  207. .CLK_CAS1_EN(CLK_CAS1_EN),
  208. .CLK_CAS2_EN(CLK_CAS2_EN),
  209. .CLK_CAS3_EN(CLK_CAS3_EN),
  210. .CLK_CAS4_EN(CLK_CAS4_EN),
  211. .CLKOUT5_SEL(CLKOUT5_SEL),
  212. .CLKIN_BYPASS_EN(CLKIN_BYPASS_EN),
  213. .CLKOUT0_SYN_EN(CLKOUT0_GATE_EN),
  214. .CLKOUT0_EXT_SYN_EN(CLKOUT0_EXT_GATE_EN),
  215. .CLKOUT1_SYN_EN(CLKOUT1_GATE_EN),
  216. .CLKOUT2_SYN_EN(CLKOUT2_GATE_EN),
  217. .CLKOUT3_SYN_EN(CLKOUT3_GATE_EN),
  218. .CLKOUT4_SYN_EN(CLKOUT4_GATE_EN),
  219. .CLKOUT5_SYN_EN(CLKOUT5_GATE_EN),
  220. .INTERNAL_FB(INTERNAL_FB),
  221. .EXTERNAL_FB(EXTERNAL_FB),
  222. .RSTODIV_PHASE_EN(RSTODIV_ENABLE),
  223. .SIM_DEVICE(SIM_DEVICE),
  224. .BANDWIDTH(BANDWIDTH)
  225. ) u_pll_e1 (
  226. .CLKOUT0(clkout0),
  227. .CLKOUT0_EXT(clkout0_2pad),
  228. .CLKOUT1(clkout1),
  229. .CLKOUT2(clkout2),
  230. .CLKOUT3(clkout3),
  231. .CLKOUT4(clkout4),
  232. .CLKOUT5(clkout5),
  233. .CLKSWITCH_FLAG(clkswitch_flag),
  234. .LOCK(pll_lock),
  235. .CLKIN1(clkin1),
  236. .CLKIN2(clkin2),
  237. .CLKFB(clkfb),
  238. .CLKIN_SEL(clkin_sel),
  239. .CLKIN_SEL_EN(clkin_sel_en),
  240. .PFDEN(pfden),
  241. .RATIOI(dyn_idiv),
  242. .RATIO0(dyn_odiv0),
  243. .RATIO1(dyn_odiv1),
  244. .RATIO2(dyn_odiv2),
  245. .RATIO3(dyn_odiv3),
  246. .RATIO4(dyn_odiv4),
  247. .RATIOF(dyn_fdiv),
  248. .DUTY0(dyn_duty0),
  249. .DUTY1(dyn_duty1),
  250. .DUTY2(dyn_duty2),
  251. .DUTY3(dyn_duty3),
  252. .DUTY4(dyn_duty4),
  253. .DUTYF(),
  254. .PHASE0(dyn_phase0[2:0]),
  255. .PHASE1(dyn_phase1[2:0]),
  256. .PHASE2(dyn_phase2[2:0]),
  257. .PHASE3(dyn_phase3[2:0]),
  258. .PHASE4(dyn_phase4[2:0]),
  259. .PHASEF(),
  260. .CPHASE0(dyn_phase0[12:3]),
  261. .CPHASE1(dyn_phase1[12:3]),
  262. .CPHASE2(dyn_phase2[12:3]),
  263. .CPHASE3(dyn_phase3[12:3]),
  264. .CPHASE4(dyn_phase4[12:3]),
  265. .CPHASEF(),
  266. .CLKOUT0_SYN(clkout0_gate),
  267. .CLKOUT0_EXT_SYN(clkout0_2pad_gate),
  268. .CLKOUT1_SYN(clkout1_gate),
  269. .CLKOUT2_SYN(clkout2_gate),
  270. .CLKOUT3_SYN(clkout3_gate),
  271. .CLKOUT4_SYN(clkout4_gate),
  272. .CLKOUT5_SYN(clkout5_gate),
  273. .PLL_PWD(pll_pwd),
  274. .RST(pll_rst),
  275. .RSTODIV_PHASE(rstodiv)
  276. );
  277. endmodule