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.

299 lines
10 KiB

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