Scripting Vivado脚本

Scripting Vivado脚本,scripting,tcl,constraints,vivado,parallella,Scripting,Tcl,Constraints,Vivado,Parallella,我正在使用Vivado运行我的Verilog代码。尽管我在运行合成和实现时没有看到任何错误,但无法构建比特流 这是我得到的错误: 错误:[Drc 23-20]规则冲突(NSTD-1)未指定的I/O标准-12个逻辑端口中有12个使用I/O标准(IOSTANDARD)值“默认”,而不是用户指定的特定值。这可能导致I/O争用或与板电源或连接不兼容,影响性能、信号完整性,或在极端情况下导致设备或其连接的组件损坏 这也表明: 要更正此冲突,请指定所有I/O标准。除非所有逻辑端口都定义了用户指定的I/O标准

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

这是我得到的错误:

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

这也表明:

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

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
注意:当使用Vivado Runs基础结构(例如,launch_Runs Tcl命令)时,将此命令添加到.Tcl文件中,并将该文件添加为实现运行的write_位流步骤的预钩子


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

我建议您按照工具的指示执行,例如,为顶级端口指定IO标准,如果您有
sys\u rst\n
顶级端口,您可以将以下行添加到
.xdc
约束文件中:

set_property IOSTANDARD LVCMOS18 [get_ports sys_rst_n]
当然,您应该更改
LVCMOS18
,以匹配您端口的IO标准


您得到的错误实际上是而不是
Tcl
问题。

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

  • 打开路由检查点(dcp)
  • 使用IO端口窗口修复具有默认IO标准的IO(如果需要,逐个修复)
  • 从tcl窗口创建比特流
下面介绍如何创建.tcl来解决此问题,而不必重新实施整个项目:

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

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