2301_76826901 2024-06-08 10:11 采纳率: 0%
浏览 527

Vivado使用ego1同时出现[place 30-99]与[place 30-574]

[Place 30-99] Placer failed with error: 'IO Clock Placer failed'
Please review all ERROR, CRITICAL WARNING, and WARNING messages during placement to understand the cause for failure.
[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 key_load_IBUF] >

key_load_IBUF_inst (IBUF.O) is locked to IOB_X1Y34
 and key_load_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y0

请问怎么解决

  • 写回答

1条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-08 10:11
    关注

    引自免费微信小程序:皆我百晓生

    在FPGA设计中遇到[Place 30-99] Placer failed with error: 'IO Clock Placer failed'[Place 30-574] Poor placement for routing between an IO pin and BUFG 的错误,这通常表示布局 placer 在尝试将输入输出(IO)时钟放置到合适的布线资源时遇到了困难。为了解决这个问题,可以尝试以下几个步骤:

    1. 检查约束文件(.xdc): 确保你的 .xdc 文件中的约束是正确的。特别是对于涉及时钟的信号,比如 key_load_IBUF,确保其位置约束正确无误。

    2. 调整时钟约束: 如果确实存在不理想的位置,可以考虑使用 CLOCK_DEDICATED_ROUTE 来强制分配一个专用的布线资源给时钟。但是,这可能会牺牲一些性能。在 .xdc 文件中添加以下内容:

      set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets key_load_IBUF]
      

      这行代码会告诉 Vivado 不要对 key_load_IBUF 信号的路由进行特殊处理,并将其视为普通信号对待。这样 placer 可能能找到其他可行的布局方案。

    3. 优化设计: 检查你的设计是否存在大量的逻辑与时钟相关联,这可能导致 placer 难以找到合适的位置。尝试将部分逻辑模块移动到远离时钟的地方,或者考虑重新组织设计以减少时钟路径上的逻辑密度。

    4. 增大布线资源: 在 Vivado 的 Project Navigator 中,打开 Settings -> Device Properties,然后选择你的 FPGA 设备。在 Clocking Resources 部分,检查并可能增加 Global Buffer Gate Array (GBE) 或者其他时钟相关的资源。这可以帮助 placer 找到更多的资源来满足布局需求。

    5. 更改 placer 设置: 在 Vivado 的 Tcl Console 中运行以下命令来尝试不同的 placer 设置:

      set_global_assignment -name PLACE_METHOD 2
      

      这里设置的数字代表了 placer 算法的不同策略,可以从 0 到 3,尝试不同的值看看哪个更适合你的设计。

    6. 运行详细的时序分析: 在设计完成后,运行详细的时序分析以确保设计满足时序要求。这可以通过菜单栏的 Tools -> Reports -> Detailed SDC Timing Report 来完成。

    7. 重新综合和布局布线: 完成上述步骤后,重新执行综合(Synthesis)和布局布线(Place and Route)流程。

    8. 增加全局缓冲器: 在某些情况下,增加全局缓冲器(BUFG)可能会有所帮助。这可以在 Vivado 的 Block Design 界面中完成,右键点击你的时钟源,然后选择 "Add BUFG"。

    9. 考虑使用不同的工具版本: 如果以上方法都无法解决问题,尝试更新或回滚 Vivado 版本,有时候新版本的工具可能有改进的 placer 算法。

    如果你仍然遇到问题,建议查阅 Xilinx 的官方文档,或者向他们的技术支持寻求帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月8日