1

我正在使用 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 步骤的预挂钩。

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

4

2 回答 2

3

我建议您按照工具的指示执行操作,即为您的顶级端口指定 IO 标准,例如,如果您有sys_rst_n顶级端口,您可以在.xdc约束文件中添加以下行:

set_property IOSTANDARD LVCMOS18 [get_ports sys_rst_n]

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

你得到的错误真的不是Tcl问题。

于 2014-07-28T14:03:52.597 回答
0

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

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

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

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