【问题标题】:Scripting in VivadoVivado 中的脚本
【发布时间】:2014-07-22 20:51:55
【问题描述】:

我正在使用 Vivado 运行我的 Verilog 代码。即使我在运行综合和实现时没有看到任何错误,也无法构建比特流。

这是我得到的错误:

错误:[Drc 23-20] 违反规则 (NSTD-1) 未指定 I/O 标准 - 12 个逻辑端口中有 12 个使用 I/O 标准 (IOSTANDARD) 值“DEFAULT”,而不是用户分配的特定值.这可能会导致 I/O 争用或与电路板电源或连接不兼容,从而影响性能、信号完整性,或者在极端情况下会损坏设备或其连接的组件。

这也表明:

要更正此违规行为,请指定所有 I/O 标准。除非所有逻辑端口都定义了用户指定的 I/O 标准值,否则此设计将无法生成比特流。要允许使用未指定的 I/O 标准值(不推荐)创建比特流,请使用以下命令:

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]

注意:使用 Vivado Runs 基础架构(例如,launch_runs Tcl 命令)时,将此命令添加到 .tcl 文件中,并将该文件添加为实现运行的 write_bitstream 步骤的预挂钩。

这归结为如何使用 Vivado 在Tcl 中编写脚本?我将建议的命令添加到 tcl 控制台,但仍然出现相同的错误。

【问题讨论】:

  • 我认为您没有提供足够的信息来调试问题。您能否创建一个演示该问题的最小可行示例。如果它正确模拟和合成,则不确定这是一个编程问题。

标签: scripting tcl constraints vivado parallella


【解决方案1】:

我建议你按照工具的指示去做,即为你的顶级端口指定 IO 标准,例如,如果你有 sys_rst_n 顶级端口,你可以添加以下内容行到您的 .xdc 约束文件:

set_property IOSTANDARD LVCMOS18 [get_ports sys_rst_n]

当然,您应该更改LVCMOS18 以匹配您端口的IO 标准。

您得到的错误确实不是 Tcl 问题。

【讨论】:

    【解决方案2】:

    您想修复这些 IO,否则您可能会损坏您的硬件。

    • 打开路由检查点 (dcp)
    • 使用 IO 端口窗口修复具有默认 IO 标准的 IO(如果需要,一个一个)
    • 从 tcl 窗口创建比特流

    以下是如何创建 .tcl 来解决此问题,而无需重新实现整个项目:

    • 从上面(从 tcl 控制台)复制运行以修复 IO 的命令并将命令放入 tcl 文件中
    • 将此 tcl 文件作为挂钩添加到“post route physopt”,以便 tcl 在实现流程的最后一步自动运行。
    • 如果您将来要重新运行实施,则应该将命令放在项目 xdc 文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-03
      相关资源
      最近更新 更多