第二篇:mig IP的創建

FPGA開源工作室將通過五篇文章來給大家講解xilinx FPGA 使用mig IP對DDR3的讀寫控制,旨在讓大家更快的學習和應用DDR3。

本實驗和工程基於Digilent的Arty Artix-35T FPGA開發板完成。

軟件使用Vivado 2018.1

  第二篇:mig IP的創建

1 DDR3

Digilent的Arty Artix-35T FPGA開發闆闆載MT41K128M16JT-125 DDR3基本信息如下表所示。

2 mig IP的創建

1>點擊IP Catalog ->搜索mig->雙擊Memory Interface Generator(MIG 7 Series)

2>打開後可以看到一些基本信息

  1. 3>Enter a component name in the Component Name field ->Next

Component name(組件名稱):ddr3_ip

4>這裏我們不做兼容性選擇,直接下一步

5>控制類型選擇DDR3 SDRAM

  1. ①Clock Period:(此功能表示所有控制器的工作頻率,頻率模塊受所選FPGA和器件速度等級等因素的限制。) 3000ps(333.33MHZ)。

  ②PHY to Controller Clock Ratio :(此功能確定物理層(存儲器)時鐘頻率與控制器和用戶界面時鐘頻率的比率。 由於FPGA邏輯時序限制,2:1比率會降低最大存儲器接口頻率。 2:1比率的用戶界面數據總線寬度是物理存儲器接口寬度寬度的四倍,而4:1比率的總線寬度是物理存儲器接口寬度的八倍。 2:1比率具有較低的延遲。 4:1的比率是最高數據速率所必需的)4:1。

  ③Memory Type:此功能選擇設計中使用的內存部件類型。

  ④Memory Part :此選項爲設計選擇內存部件。 選擇可以從列表中創建或者可以創建新部件。MT41K128M16XX-15E。

  ⑤Memory Voltage:根據設計原理圖1.35V。

  ⑥Data Width:(可以根據之前選擇的存儲器類型在此處選擇數據寬度值。 該列表顯示所選部件的所有支持的數據寬度。 可以選擇其中一個數據寬度。 這些值通常是各個器件數據寬度的倍數。 在某些情況下,寬度可能不是精確倍數。 例如,16位是x16組件的默認數據寬度,但8位也是有效值。)16。

  ⑦Data Mask:(選擇時,此選項會分配數據屏蔽引腳。 應取消選擇此選項以釋放數據屏蔽引腳並提高引腳效率。 此外,對於不支持數據掩碼的內存部分禁用此功能。)勾選。

NXET。

  1. ①Input clock Period:6000ps(166.667MHZ)。

  ②Read Burst Type and Length:Sequential。

  ③Output Driver Impedance Control:RZQ/6。

  其他默認,NEXT。

  1. ①System Clock :(此選項爲sys_clk信號對選擇時鐘類型(單端,差分或無緩衝)。 選擇No Buffer選項時,IBUF原語不會在RTL代碼中實例化,並且不會爲系統時鐘分配引腳。 )No Buffer。

  ②Reference Clock :(此選項爲clk_ref信號對選擇時鐘類型(單端,差分,無緩衝或使用系統時鐘)。 當輸入頻率介於199和201 MHz之間時(即輸入時鐘週期介於5,025 ps(199 MHz)和4,975 ps(201 MHz)之間),將顯示Use System Clock(使用系統時鐘)選項。參考時鐘頻率基於數據速率 並注意添加MMCM以創建高於1,333 Mb / s的適當ref_clk頻率。當選擇No Buffer選項時,IBUF原語不會在RTL代碼中實例化,並且引腳不會分配給參考時鐘。)No Buffer。

  ③System Reset Polarity:(可以選擇系統復位(sys_rst)的極性。 如果選項選擇爲低電平有效,則參數RST_ACT_LOW設置爲1,如果設置爲高電平 - 高,則參數RST_ACT_LOW設置爲0。)ACTIVE LOW。

④Debug Signals Control:選擇此選項可以將校準狀態和用戶端口信號端口映射到example_top模塊中的ILA和VIO。 這有助於使用Vivado Design Suite調試功能監控用戶界面端口上的流量。 取消選擇Debug Signals Control選項會使example_top模塊中的調試信號保持未連接狀態,並且IP目錄不會生成ILA / VIO模塊。 此外,始終禁用調試端口以進行功能仿真。OFF。

⑤Sample Data Depth:此選項選擇Vivado調試邏輯中使用的ILA模塊的樣本數據深度。 當“內存控制器的調試信號”選項爲“開”時,可以選擇此選項。

  ⑥Internal Verf:(內部VREF可用於數據組字節,以允許使用VREF引腳進行正常的I / O使用。 內部VREF僅應用於800 Mb / s或更低的數據速率。)勾選。

其他默認,NEXT。

  1. 默認,NEXT。

10>選擇Fixed Pin Out。我們的原理圖管腳已經確定無需從新設計。

  1. 點擊Read XDC/UCF,這裏DDR3管腳支持兩種約束文件。

UCF:

XDC:

  1. ##################################################################################################  
  2. ##   
  3. ##  Xilinx, Inc. 2010            www.xilinx.com   
  4. ##  週五 一月 25 13:58:27 2019  
  5. ##  Generated by MIG Version 2.4  
  6. ##    
  7. ##################################################################################################  
  8. ##  File name :       ddr3_ip.xdc  
  9. ##  Details :     Constraints file  
  10. ##                    FPGA Family:       ARTIX7  
  11. ##                    FPGA Part:         XC7A35TI-CSG324  
  12. ##                    Speedgrade:        -1L  
  13. ##                    Design Entry:      VERILOG  
  14. ##                    Frequency:         333.333 MHz  
  15. ##                    Time Period:       3000 ps  
  16. ##################################################################################################  
  17.   
  18. ##################################################################################################  
  19. ## Controller 0  
  20. ## Memory Device: DDR3_SDRAM->Components->MT41K128M16XX-15E  
  21. ## Data Width: 16  
  22. ## Time Period: 3000  
  23. ## Data Mask: 1  
  24. ##################################################################################################  
  25.   
  26. #create_clock -period 6 [get_ports sys_clk_i]  
  27.             
  28. #create_clock -period 5 [get_ports clk_ref_i]  
  29.             
  30. ############## NET - IOSTANDARD ##################  
  31.   
  32.   
  33. # PadFunction: IO_L5P_T0_34   
  34. set_property SLEW FAST [get_ports {ddr3_dq[0]}]  
  35. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[0]}]  
  36. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[0]}]  
  37. set_property PACKAGE_PIN K5 [get_ports {ddr3_dq[0]}]  
  38.   
  39. # PadFunction: IO_L2N_T0_34   
  40. set_property SLEW FAST [get_ports {ddr3_dq[1]}]  
  41. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[1]}]  
  42. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[1]}]  
  43. set_property PACKAGE_PIN L3 [get_ports {ddr3_dq[1]}]  
  44.   
  45. # PadFunction: IO_L2P_T0_34   
  46. set_property SLEW FAST [get_ports {ddr3_dq[2]}]  
  47. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[2]}]  
  48. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[2]}]  
  49. set_property PACKAGE_PIN K3 [get_ports {ddr3_dq[2]}]  
  50.   
  51. # PadFunction: IO_L6P_T0_34   
  52. set_property SLEW FAST [get_ports {ddr3_dq[3]}]  
  53. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[3]}]  
  54. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[3]}]  
  55. set_property PACKAGE_PIN L6 [get_ports {ddr3_dq[3]}]  
  56.   
  57. # PadFunction: IO_L4P_T0_34   
  58. set_property SLEW FAST [get_ports {ddr3_dq[4]}]  
  59. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[4]}]  
  60. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[4]}]  
  61. set_property PACKAGE_PIN M3 [get_ports {ddr3_dq[4]}]  
  62.   
  63. # PadFunction: IO_L1N_T0_34   
  64. set_property SLEW FAST [get_ports {ddr3_dq[5]}]  
  65. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[5]}]  
  66. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[5]}]  
  67. set_property PACKAGE_PIN M1 [get_ports {ddr3_dq[5]}]  
  68.   
  69. # PadFunction: IO_L5N_T0_34   
  70. set_property SLEW FAST [get_ports {ddr3_dq[6]}]  
  71. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[6]}]  
  72. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[6]}]  
  73. set_property PACKAGE_PIN L4 [get_ports {ddr3_dq[6]}]  
  74.   
  75. # PadFunction: IO_L4N_T0_34   
  76. set_property SLEW FAST [get_ports {ddr3_dq[7]}]  
  77. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[7]}]  
  78. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[7]}]  
  79. set_property PACKAGE_PIN M2 [get_ports {ddr3_dq[7]}]  
  80.   
  81. # PadFunction: IO_L10N_T1_34   
  82. set_property SLEW FAST [get_ports {ddr3_dq[8]}]  
  83. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[8]}]  
  84. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[8]}]  
  85. set_property PACKAGE_PIN V4 [get_ports {ddr3_dq[8]}]  
  86.   
  87. # PadFunction: IO_L12P_T1_MRCC_34   
  88. set_property SLEW FAST [get_ports {ddr3_dq[9]}]  
  89. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[9]}]  
  90. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[9]}]  
  91. set_property PACKAGE_PIN T5 [get_ports {ddr3_dq[9]}]  
  92.   
  93. # PadFunction: IO_L8P_T1_34   
  94. set_property SLEW FAST [get_ports {ddr3_dq[10]}]  
  95. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[10]}]  
  96. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[10]}]  
  97. set_property PACKAGE_PIN U4 [get_ports {ddr3_dq[10]}]  
  98.   
  99. # PadFunction: IO_L10P_T1_34   
  100. set_property SLEW FAST [get_ports {ddr3_dq[11]}]  
  101. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[11]}]  
  102. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[11]}]  
  103. set_property PACKAGE_PIN V5 [get_ports {ddr3_dq[11]}]  
  104.   
  105. # PadFunction: IO_L7N_T1_34   
  106. set_property SLEW FAST [get_ports {ddr3_dq[12]}]  
  107. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[12]}]  
  108. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[12]}]  
  109. set_property PACKAGE_PIN V1 [get_ports {ddr3_dq[12]}]  
  110.   
  111. # PadFunction: IO_L11N_T1_SRCC_34   
  112. set_property SLEW FAST [get_ports {ddr3_dq[13]}]  
  113. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[13]}]  
  114. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[13]}]  
  115. set_property PACKAGE_PIN T3 [get_ports {ddr3_dq[13]}]  
  116.   
  117. # PadFunction: IO_L8N_T1_34   
  118. set_property SLEW FAST [get_ports {ddr3_dq[14]}]  
  119. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[14]}]  
  120. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[14]}]  
  121. set_property PACKAGE_PIN U3 [get_ports {ddr3_dq[14]}]  
  122.   
  123. # PadFunction: IO_L11P_T1_SRCC_34   
  124. set_property SLEW FAST [get_ports {ddr3_dq[15]}]  
  125. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dq[15]}]  
  126. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dq[15]}]  
  127. set_property PACKAGE_PIN R3 [get_ports {ddr3_dq[15]}]  
  128.   
  129. # PadFunction: IO_L24N_T3_34   
  130. set_property SLEW FAST [get_ports {ddr3_addr[13]}]  
  131. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[13]}]  
  132. set_property PACKAGE_PIN T8 [get_ports {ddr3_addr[13]}]  
  133.   
  134. # PadFunction: IO_L23N_T3_34   
  135. set_property SLEW FAST [get_ports {ddr3_addr[12]}]  
  136. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[12]}]  
  137. set_property PACKAGE_PIN T6 [get_ports {ddr3_addr[12]}]  
  138.   
  139. # PadFunction: IO_L22N_T3_34   
  140. set_property SLEW FAST [get_ports {ddr3_addr[11]}]  
  141. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[11]}]  
  142. set_property PACKAGE_PIN U6 [get_ports {ddr3_addr[11]}]  
  143.   
  144. # PadFunction: IO_L19P_T3_34   
  145. set_property SLEW FAST [get_ports {ddr3_addr[10]}]  
  146. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[10]}]  
  147. set_property PACKAGE_PIN R6 [get_ports {ddr3_addr[10]}]  
  148.   
  149. # PadFunction: IO_L20P_T3_34   
  150. set_property SLEW FAST [get_ports {ddr3_addr[9]}]  
  151. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[9]}]  
  152. set_property PACKAGE_PIN V7 [get_ports {ddr3_addr[9]}]  
  153.   
  154. # PadFunction: IO_L24P_T3_34   
  155. set_property SLEW FAST [get_ports {ddr3_addr[8]}]  
  156. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[8]}]  
  157. set_property PACKAGE_PIN R8 [get_ports {ddr3_addr[8]}]  
  158.   
  159. # PadFunction: IO_L22P_T3_34   
  160. set_property SLEW FAST [get_ports {ddr3_addr[7]}]  
  161. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[7]}]  
  162. set_property PACKAGE_PIN U7 [get_ports {ddr3_addr[7]}]  
  163.   
  164. # PadFunction: IO_L20N_T3_34   
  165. set_property SLEW FAST [get_ports {ddr3_addr[6]}]  
  166. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[6]}]  
  167. set_property PACKAGE_PIN V6 [get_ports {ddr3_addr[6]}]  
  168.   
  169. # PadFunction: IO_L23P_T3_34   
  170. set_property SLEW FAST [get_ports {ddr3_addr[5]}]  
  171. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[5]}]  
  172. set_property PACKAGE_PIN R7 [get_ports {ddr3_addr[5]}]  
  173.   
  174. # PadFunction: IO_L18N_T2_34   
  175. set_property SLEW FAST [get_ports {ddr3_addr[4]}]  
  176. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[4]}]  
  177. set_property PACKAGE_PIN N6 [get_ports {ddr3_addr[4]}]  
  178.   
  179. # PadFunction: IO_L17N_T2_34   
  180. set_property SLEW FAST [get_ports {ddr3_addr[3]}]  
  181. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[3]}]  
  182. set_property PACKAGE_PIN T1 [get_ports {ddr3_addr[3]}]  
  183.   
  184. # PadFunction: IO_L16N_T2_34   
  185. set_property SLEW FAST [get_ports {ddr3_addr[2]}]  
  186. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[2]}]  
  187. set_property PACKAGE_PIN N4 [get_ports {ddr3_addr[2]}]  
  188.   
  189. # PadFunction: IO_L18P_T2_34   
  190. set_property SLEW FAST [get_ports {ddr3_addr[1]}]  
  191. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[1]}]  
  192. set_property PACKAGE_PIN M6 [get_ports {ddr3_addr[1]}]  
  193.   
  194. # PadFunction: IO_L15N_T2_DQS_34   
  195. set_property SLEW FAST [get_ports {ddr3_addr[0]}]  
  196. set_property IOSTANDARD SSTL135 [get_ports {ddr3_addr[0]}]  
  197. set_property PACKAGE_PIN R2 [get_ports {ddr3_addr[0]}]  
  198.   
  199. # PadFunction: IO_L15P_T2_DQS_34   
  200. set_property SLEW FAST [get_ports {ddr3_ba[2]}]  
  201. set_property IOSTANDARD SSTL135 [get_ports {ddr3_ba[2]}]  
  202. set_property PACKAGE_PIN P2 [get_ports {ddr3_ba[2]}]  
  203.   
  204. # PadFunction: IO_L14P_T2_SRCC_34   
  205. set_property SLEW FAST [get_ports {ddr3_ba[1]}]  
  206. set_property IOSTANDARD SSTL135 [get_ports {ddr3_ba[1]}]  
  207. set_property PACKAGE_PIN P4 [get_ports {ddr3_ba[1]}]  
  208.   
  209. # PadFunction: IO_L17P_T2_34   
  210. set_property SLEW FAST [get_ports {ddr3_ba[0]}]  
  211. set_property IOSTANDARD SSTL135 [get_ports {ddr3_ba[0]}]  
  212. set_property PACKAGE_PIN R1 [get_ports {ddr3_ba[0]}]  
  213.   
  214. # PadFunction: IO_L14N_T2_SRCC_34   
  215. set_property SLEW FAST [get_ports {ddr3_ras_n}]  
  216. set_property IOSTANDARD SSTL135 [get_ports {ddr3_ras_n}]  
  217. set_property PACKAGE_PIN P3 [get_ports {ddr3_ras_n}]  
  218.   
  219. # PadFunction: IO_L16P_T2_34   
  220. set_property SLEW FAST [get_ports {ddr3_cas_n}]  
  221. set_property IOSTANDARD SSTL135 [get_ports {ddr3_cas_n}]  
  222. set_property PACKAGE_PIN M4 [get_ports {ddr3_cas_n}]  
  223.   
  224. # PadFunction: IO_L13N_T2_MRCC_34   
  225. set_property SLEW FAST [get_ports {ddr3_we_n}]  
  226. set_property IOSTANDARD SSTL135 [get_ports {ddr3_we_n}]  
  227. set_property PACKAGE_PIN P5 [get_ports {ddr3_we_n}]  
  228.   
  229. # PadFunction: IO_0_34   
  230. set_property SLEW FAST [get_ports {ddr3_reset_n}]  
  231. set_property IOSTANDARD SSTL135 [get_ports {ddr3_reset_n}]  
  232. set_property PACKAGE_PIN K6 [get_ports {ddr3_reset_n}]  
  233.   
  234. # PadFunction: IO_L13P_T2_MRCC_34   
  235. set_property SLEW FAST [get_ports {ddr3_cke[0]}]  
  236. set_property IOSTANDARD SSTL135 [get_ports {ddr3_cke[0]}]  
  237. set_property PACKAGE_PIN N5 [get_ports {ddr3_cke[0]}]  
  238.   
  239. # PadFunction: IO_L19N_T3_VREF_34   
  240. set_property SLEW FAST [get_ports {ddr3_odt[0]}]  
  241. set_property IOSTANDARD SSTL135 [get_ports {ddr3_odt[0]}]  
  242. set_property PACKAGE_PIN R5 [get_ports {ddr3_odt[0]}]  
  243.   
  244. # PadFunction: IO_25_34   
  245. set_property SLEW FAST [get_ports {ddr3_cs_n[0]}]  
  246. set_property IOSTANDARD SSTL135 [get_ports {ddr3_cs_n[0]}]  
  247. set_property PACKAGE_PIN U8 [get_ports {ddr3_cs_n[0]}]  
  248.   
  249. # PadFunction: IO_L1P_T0_34   
  250. set_property SLEW FAST [get_ports {ddr3_dm[0]}]  
  251. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dm[0]}]  
  252. set_property PACKAGE_PIN L1 [get_ports {ddr3_dm[0]}]  
  253.   
  254. # PadFunction: IO_L7P_T1_34   
  255. set_property SLEW FAST [get_ports {ddr3_dm[1]}]  
  256. set_property IOSTANDARD SSTL135 [get_ports {ddr3_dm[1]}]  
  257. set_property PACKAGE_PIN U1 [get_ports {ddr3_dm[1]}]  
  258.   
  259. # PadFunction: IO_L3P_T0_DQS_34   
  260. set_property SLEW FAST [get_ports {ddr3_dqs_p[0]}]  
  261. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dqs_p[0]}]  
  262. set_property IOSTANDARD DIFF_SSTL135 [get_ports {ddr3_dqs_p[0]}]  
  263. set_property PACKAGE_PIN N2 [get_ports {ddr3_dqs_p[0]}]  
  264.   
  265. # PadFunction: IO_L3N_T0_DQS_34   
  266. set_property SLEW FAST [get_ports {ddr3_dqs_n[0]}]  
  267. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dqs_n[0]}]  
  268. set_property IOSTANDARD DIFF_SSTL135 [get_ports {ddr3_dqs_n[0]}]  
  269. set_property PACKAGE_PIN N1 [get_ports {ddr3_dqs_n[0]}]  
  270.   
  271. # PadFunction: IO_L9P_T1_DQS_34   
  272. set_property SLEW FAST [get_ports {ddr3_dqs_p[1]}]  
  273. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dqs_p[1]}]  
  274. set_property IOSTANDARD DIFF_SSTL135 [get_ports {ddr3_dqs_p[1]}]  
  275. set_property PACKAGE_PIN U2 [get_ports {ddr3_dqs_p[1]}]  
  276.   
  277. # PadFunction: IO_L9N_T1_DQS_34   
  278. set_property SLEW FAST [get_ports {ddr3_dqs_n[1]}]  
  279. set_property IN_TERM UNTUNED_SPLIT_50 [get_ports {ddr3_dqs_n[1]}]  
  280. set_property IOSTANDARD DIFF_SSTL135 [get_ports {ddr3_dqs_n[1]}]  
  281. set_property PACKAGE_PIN V2 [get_ports {ddr3_dqs_n[1]}]  
  282.   
  283. # PadFunction: IO_L21P_T3_DQS_34   
  284. set_property SLEW FAST [get_ports {ddr3_ck_p[0]}]  
  285. set_property IOSTANDARD DIFF_SSTL135 [get_ports {ddr3_ck_p[0]}]  
  286. set_property PACKAGE_PIN U9 [get_ports {ddr3_ck_p[0]}]  
  287.   
  288. # PadFunction: IO_L21N_T3_DQS_34   
  289. set_property SLEW FAST [get_ports {ddr3_ck_n[0]}]  
  290. set_property IOSTANDARD DIFF_SSTL135 [get_ports {ddr3_ck_n[0]}]  
  291. set_property PACKAGE_PIN V9 [get_ports {ddr3_ck_n[0]}]  
  292.   
  293.   
  294. set_property INTERNAL_VREF  0.675 [get_iobanks 34]  
  295.   
  296. set_property LOC PHASER_OUT_PHY_X1Y1 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_B.ddr_byte_lane_B/phaser_out}]  
  297. set_property LOC PHASER_OUT_PHY_X1Y0 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_A.ddr_byte_lane_A/phaser_out}]  
  298. set_property LOC PHASER_OUT_PHY_X1Y3 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_D.ddr_byte_lane_D/phaser_out}]  
  299. set_property LOC PHASER_OUT_PHY_X1Y2 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_C/phaser_out}]  
  300.   
  301. ## set_property LOC PHASER_IN_PHY_X1Y1 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_B.ddr_byte_lane_B/phaser_in_gen.phaser_in}]  
  302. ## set_property LOC PHASER_IN_PHY_X1Y0 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_A.ddr_byte_lane_A/phaser_in_gen.phaser_in}]  
  303. set_property LOC PHASER_IN_PHY_X1Y3 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_D.ddr_byte_lane_D/phaser_in_gen.phaser_in}]  
  304. set_property LOC PHASER_IN_PHY_X1Y2 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_C/phaser_in_gen.phaser_in}]  
  305.   
  306.   
  307.   
  308. set_property LOC OUT_FIFO_X1Y1 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_B.ddr_byte_lane_B/out_fifo}]  
  309. set_property LOC OUT_FIFO_X1Y0 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_A.ddr_byte_lane_A/out_fifo}]  
  310. set_property LOC OUT_FIFO_X1Y3 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_D.ddr_byte_lane_D/out_fifo}]  
  311. set_property LOC OUT_FIFO_X1Y2 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_C/out_fifo}]  
  312.   
  313. set_property LOC IN_FIFO_X1Y3 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_D.ddr_byte_lane_D/in_fifo_gen.in_fifo}]  
  314. set_property LOC IN_FIFO_X1Y2 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_C/in_fifo_gen.in_fifo}]  
  315.   
  316. set_property LOC PHY_CONTROL_X1Y0 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/phy_control_i}]  
  317.   
  318. set_property LOC PHASER_REF_X1Y0 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/phaser_ref_i}]  
  319.   
  320. set_property LOC OLOGIC_X1Y43 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_D.ddr_byte_lane_D/ddr_byte_group_io/*slave_ts}] 
  321. set_property LOC OLOGIC_X1Y31 [get_cells  -hier -filter {NAME =~ */ddr_phy_4lanes_0.u_ddr_phy_4lanes/ddr_byte_lane_C.ddr_byte_lane_C/ddr_byte_group_io/*slave_ts}] 
  322.  
  323. set_property LOC PLLE2_ADV_X1Y0 [get_cells -hier -filter {NAME =~ */u_ddr3_infrastructure/plle2_i}]  
  324. set_property LOC MMCME2_ADV_X1Y0 [get_cells -hier -filter {NAME =~ */u_ddr3_infrastructure/gen_mmcm.mmcm_i}]  
  325.   
  326.   
  327. set_multicycle_path -from [get_cells -hier -filter {NAME =~ */mc0/mc_read_idle_r_reg}] \  
  328.                     -to   [get_cells -hier -filter {NAME =~ */input_[?].iserdes_dq_.iserdesdq}] \  
  329.                     -setup 6  
  330.   
  331. set_multicycle_path -from [get_cells -hier -filter {NAME =~ */mc0/mc_read_idle_r_reg}] \  
  332.                     -to   [get_cells -hier -filter {NAME =~ */input_[?].iserdes_dq_.iserdesdq}] \  
  333.                     -hold 5  
  334.   
  335. set_false_path -through [get_pins -filter {NAME =~ */DQSFOUND} -of [get_cells -hier -filter {REF_NAME == PHASER_IN_PHY}]]  
  336.   
  337. set_multicycle_path -through [get_pins -filter {NAME =~ */OSERDESRST} -of [get_cells -hier -filter {REF_NAME == PHASER_OUT_PHY}]] -setup 2 -start  
  338. set_multicycle_path -through [get_pins -filter {NAME =~ */OSERDESRST} -of [get_cells -hier -filter {REF_NAME == PHASER_OUT_PHY}]] -hold 1 -start  
  339.   
  340. set_max_delay -datapath_only -from [get_cells -hier -filter {NAME =~ *temp_mon_enabled.u_tempmon/* && IS_SEQUENTIAL}] -to [get_cells -hier -filter {NAME =~ *temp_mon_enabled.u_tempmon/device_temp_sync_r1*}] 20 
  341. set_max_delay -from [get_cells -hier *rstdiv0_sync_r1_reg*] -to [get_pins -filter {NAME =~ */RESET} -of [get_cells -hier -filter {REF_NAME == PHY_CONTROL}]] -datapath_only 5  
  342. set_false_path -through [get_pins -hier -filter {NAME =~ */u_iodelay_ctrl/sys_rst}]  
  343.             
  344. set_max_delay -datapath_only -from [get_cells -hier -filter {NAME =~ *ddr3_infrastructure/rstdiv0_sync_r1_reg*}] -to [get_cells -hier -filter {NAME =~ *temp_mon_enabled.u_tempmon/xadc_supplied_temperature.rst_r1*}] 20  
  345.             

 

12>點擊Validate驗證管腳約束是否有錯誤。驗證通過NEXT。

  1. 默認,NEXT。

14>Next。

15>Accept,Next。

16>Generate

17>Generate

18>至此我們的mig IP創建完成。

FPGA開源工作室爲了大家更好更快的學習FPGA目前開通了知識星球(FPGA自習學院)。

FPGA自習學院將不斷更新和總結FPGA相關的學習資料,歡迎大家加入,一起學習一起成長。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章