解决Vivado错误代码[Place 30-574]的方法和思路


问题描述

最近利用手头的开发板作UDP通信的设计。准备生成比特流时,出现这个错误:

 具体信息:

[Place 30-574] Poor placement for routing between an IO pin and BUFG. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
    < set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets I_PHY_RX_CLK_IBUF] >

    I_PHY_RX_CLK_IBUF_inst (IBUF.O) is locked to IOB_X0Y42
     and I_PHY_RX_CLK_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y1
 

翻译:

IO引脚和BUFG之间的布线放置不当。如果此次优化条件可用于此设计,则可以使用.xdc文件中的CLOCK_DEDICATED_ROUTE约束将此消息降级为警告。但是,强烈不鼓励使用此覆盖。这些示例可以直接在.xdc文件中使用,以覆盖此时钟规则。
<set_property CLOCK_DEDICATED_ROUTE FALSE[get_nets I_PHY_RX_CLK_IBUF]>
I_PHY_RX_CLK_IBUF_inst(IBUF.O)锁定到IOB_X0Y42,I_PHY_RX_CLK_IBUF_BUFG_inst(BUFG.I)由BUFGTRL_X0Y1上的时钟放置器临时放置

电路原理图

此时钟由外部的网络PHY芯片输入,且未经过专门的时钟IO口,走的是普通IO引脚,普通IO引脚附近没有时钟资源,比如全局缓冲器 BUFG等,所以在布局时就出现问题。

解决

按照错误中给出的方法,可以在XDC里面对该时钟信号增加如下约束,将此错误降低为警告。

set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets I_PHY_RX_CLK]

可以正常生成比特流了: 

 查看警告信息,此处的错误已经变成警告了:


 

物联沃分享整理
物联沃-IOTWORD物联网 » 解决Vivado错误代码[Place 30-574]的方法和思路

发表评论