MIG 7系列 - 在Vivado中使用Synplify网表时需要更改XDC约束
描述
Synplify(或其他第三方综合工具)未作为Vivado Design Suite的一部分进行集成。有关更多信息,请参阅(Xilinx答复50280) 。此外,MIG 7系列不支持使用Vivado实现的Synplify综合。此答复记录旨在帮助需要使用Synplify的客户。
将包含MIG 7系列内核的Synplify生成网表集成到Vivado Design Suite时,需要进行一些XDC约束更改才能正确实施。此答复记录详细说明了所需的更改。
解
MIG 7系列DDR3 / DDR2 SDRAM解决方案
1. MIG生成以下XDC多周期路径约束:
set_multicycle_path -from [get_cells -hier -filter {NAME =〜* / mc0 / mc_read_idle_r_reg}] \
-to [get_cells -hier -filter {NAME =〜* / input _ [?]。iserdes_dq_.iserdesdq}] \
- 设置6
set_multicycle_path -from [get_cells -hier -filter {NAME =〜* / mc0 / mc_read_idle_r_reg}] \
-to [get_cells -hier -filter {NAME =〜* / input _ [?]。iserdes_dq_.iserdesdq}] \
- 5
将Synplify Pro与Vivado一起使用时,此路径无效。有效约束如下:
set_multicycle_path -from [get_cells -hier -filter {NAME =〜* / mc0 / mc_read_idle_r *}] \
-to [get_cells -hier -filter {NAME =〜* / input _ [?]。iserdes_dq_.iserdesdq}] \
- 设置6
set_multicycle_path -from [get_cells -hier -filter {NAME =〜* / mc0 / mc_read_idle_r *}] \
-to [get_cells -hier -filter {NAME =〜* / input _ [?]。iserdes_dq_.iserdesdq}] \
- 5
2. MIG为XADC温度监控器逻辑生成以下XDC多周期路径约束:
set_multicycle_path -to [get_cells -hier -filter {NAME =〜* temp_mon_enabled.u_tempmon / xadc_supplied_temperature.rst_r1 *}] \
- 设置2 - 结束
set_multicycle_path -to [get_cells -hier -filter {NAME =〜* temp_mon_enabled.u_tempmon / xadc_supplied_temperature.rst_r1 *}] \
- 保持1结束
将Synplify Pro与Vivado一起使用时的有效约束如下:
set_multicycle_path -to [get_cells -hier -filter {NAME =〜* temp_mon_enabled.u_tempmon / * rst *}] \
- 设置2 - 结束
set_multicycle_path -to [get_cells -hier -filter {NAME =〜* temp_mon_enabled.u_tempmon / * rst *}] \
- 1 - 端
QDRII +和RLDRAMII / III解决方案
1. MIG生成的PHASER_OUT XDC约束类似于以下内容:
set_property LOC PHASER_OUT_PHY_X1Y27 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_D.qdr_rld_byte_lane_D / PHASER_OUT_inst.phaser_out}]
set_property LOC PHASER_OUT_PHY_X1Y26 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_C.qdr_rld_byte_lane_C / PHASER_OUT_inst.phaser_out}]
set_property LOC PHASER_OUT_PHY_X1Y25 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_B.qdr_rld_byte_lane_B / PHASER_OUT_inst.phaser_out}]
set_property LOC PHASER_OUT_PHY_X1Y24 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_A.qdr_rld_byte_lane_A / PHASER_OUT_inst.phaser_out}]
将Synplify Pro与Vivado一起使用时的有效约束类似于以下内容:
set_property LOC PHASER_OUT_PHY_X1Y27 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_D.qdr_rld_byte_lane_D / genblk * .PHASER_OUT_inst.phaser_out}]
set_property LOC PHASER_OUT_PHY_X1Y26 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_C.qdr_rld_byte_lane_C / genblk * .PHASER_OUT_inst.phaser_out}]
set_property LOC PHASER_OUT_PHY_X1Y25 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_B.qdr_rld_byte_lane_B / genblk * .PHASER_OUT_inst.phaser_out}]
set_property LOC PHASER_OUT_PHY_X1Y24 [get_cells -hier -filter {NAME =〜* / qdr_rld_phy_4lanes_2.u_qdr_rld_phy_4lanes / qdr_rld_byte_lane_A.qdr_rld_byte_lane_A / genblk * .PHASER_OUT_inst.phaser_out}]