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}]

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 12:51:14 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它