【Vivado那些事】vivado生成.bit文件时报错-ERROR: [Drc 23-20]

错误

描述

ERROR: [Drc 23-20] Rule violation (NSTD-1) Unspecified I/O Standard - 3 out of 3 logical ports use I/O standard (IOSTANDARD) value 'DEFAULT', instead of a user assigned specific value. This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all I/O standards. This design will fail to generate a bitstream unless all logical ports have a user specified I/O standard value defined. To allow bitstream creation with unspecified I/O standard values (not recommended), use set_property SEVERITY {Warning} [get_drc_checks NSTD-1]. Problem ports: clk, din, dout.

ERROR: [Drc 23-20] Rule violation (UCIO-1) Unconstrained Logical Port - 3 out of 3 logical ports have no user assigned specific location constraint (LOC). This may cause I/O contention or incompatibility with the board power or connectivity affecting performance, signal integrity or in extreme cases cause damage to the device or the components to which it is connected. To correct this violation, specify all pin locations. This design will fail to generate a bitstream unless all logical ports have a user specified site LOC constraint defined. To allow bitstream creation with unspecified pin locations (not recommended), use set_property SEVERITY {Warning} [get_drc_checks UCIO-1]. Problem ports: clk, din, dout.

原因分析

该错误消息是为了通知客户他们需要设置IOSTANDARD和PACKAGE_PIN,以保护设备免受意外损坏,这可能是由于工具在不了解电路板电压或连接的情况下随机选择了引脚位置或IOSTANDARD而引起的。

例如:

  • 如果引脚在板上接地,并且Vivado选择此引脚作为高电平驱动的输出,则会引起竞争。

  • 如果板上有一个针对该引脚的端接方案,即HSTL或SSTL建议的端接,并且Vivado选择LVCMOS18(默认值),则信号的信号完整性将达不到最佳状态。

7系列的默认I / O标准是LVCMOS18,用于all banks的单端信号。在以前的体系结构中,默认的I / O标准为LVCMOS25。

解决方案

1.(推荐)为设计中的所有I / O添加IOSTANDARD和PACKAGE_PIN约束。

2.如果您不关心那些不受限制的I / O,请使用以下解决方案之一。

  • 对于GUI项目流程,创建一个.tcl文件并放两个命令。在“比特流设置”的“ tcl.pre”选项中指定此.tcl文件。然后,可以重新运行“ Generate Bitstream”(生成比特流),而无需重新运行Implementation。

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

可以将以下命令添加到XDC并重新运行Implementation。

set_property BITSTREAM.General.UnconstrainedPins {Allow} [current_design]

3.如果您只需要从现有的完成的Implementation运行中生成位文件,并暂时忽略那些不受约束的I / O,请使用以下解决方案:

  • 打开已实现的设计或打开路由的DCP,然后在Tcl控制台中运行以下命令:

set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]
write_bitstream <path_and_file_name>.bit

或者

set_property BITSTREAM.General.UnconstrainedPins {Allow} [current_design]
write_bitstream <path_and_file_name>.bit

总结

建议使用解决方案二中方式。

参考资料

1、https://www.xilinx.com/support/answers/56354.html

2、https://www.xilinx.com/support/answers/63125.html

3、https://www.xilinx.com/support/answers/59742.html

<think>好的,用户现在遇到了一个关于Vivado的错误提示,具体是“runtd-4] An error occurs Please contad FAE for help! Find XADC cell in projed, and property INIT_49 is 16h0101 XADC AUX(2, 3, 9, 10, 11) Find DNA_PORT used in current projed”。首先,我需要解析这个错误信息中的关键点。用户提到的错误信息中有拼写错误,比如“projed”应该是“project”,“contad”应该是“contact”,这可能影响用户正确理解错误信息。不过,核心问题涉及XADC的INIT_49属性设置和DNA_PORT的使用。 首先,我需要回顾XADC模块的相关知识。XADC是Xilinx的模数转换器模块,用于监控FPGA的温度、电压等。INIT_49是XADC的一个配置寄存器,用于设置模拟输入通道的使能状态。16h0101可能是一个十六进制值,对应二进制为0000000100000001,可能配置了某些通道的使能状态。AUX通道2、3、9、10、11可能被启用,但需要确认这些通道是否在设计中实际存在,或者是否存在配置冲突。 接下来,错误信息还提到需要查找DNA_PORT的使用。DNA_PORT是Xilinx设备的唯一标识符,用于读取芯片的DNA值。如果在设计中没有正确例化或配置DNA_PORT,可能会导致错误。 用户之前询问过“runtcl_4 error”的解决方法,现在的问题可能与之前的Tcl脚本错误有关,但这次的错误更具体,涉及硬件模块的配置。可能的解决步骤包括: 1. 检查XADC的配置:确认INIT_49的值是否正确,是否与使用的AUX通道匹配。可能需要查阅Xilinx文档,确认每个位的含义,以及AUX通道的有效性。例如,某些FPGA型号可能不支持某些AUX通道,导致配置错误。 2. 检查DNA_PORT的例化:确认设计是否正确例化了DNA_PORT原语,并且没有冲突的参数设置。例如,可能需要检查是否在多个地方重复例化了DNA_PORT,或者参数设置不正确。 3. 工程配置问题:检查工程设置中是否启用了XADC和DNA_PORT相关的选项,是否在约束文件中正确配置了相关引脚。 4. 脚本错误:如果用户使用Tcl脚本进行设计生成,可能存在语法错误或配置顺序问题,导致XADC或DNA_PORT未能正确配置。需要检查脚本中的相关命令,如get_cells、set_property等是否正确使用。 5. 版本兼容性:检查使用的Vivado版本是否与目标FPGA型号兼容,某些旧版本可能存在已知的配置问题,需要升级到最新版本或应用补丁。 6. 官方资源查阅:查看Xilinx的官方支持网站,是否有相关的已知问题或解决方案。例如,Answer Record 71040可能提供相关错误的解决方法。 用户可能需要逐步排除这些问题,首先从XADC的配置开始,确认INIT_49的值是否正确,然后检查DNA_PORT的使用情况。如果问题依旧存在,可能需要联系Xilinx的技术支持(FAE),提供详细的错误日志、工程版本信息以及复现步骤,以便进一步诊断。</think>遇到涉及XADC配置(`INIT_49`属性)和`DNA_PORT`识别的`runtd-4`错误,请按以下流程排查: --- ### 一、XADC配置验证 1. **INIT_49寄存器解析** `16'h0101`对应二进制`0000_0001_0000_0001`,需确认以下配置是否符合设计需求: - **Bit 8** (从0计数):启用温度传感器(`TS_ENABLE`) - **Bit 0**:启用`VAUXP[0]/VAUXN[0]`通道(但错误信息显示实际使用通道为2/3/9/10/11,可能存在配置冲突) 2. **AUX通道合法性检查** 不同芯片支持的AUX通道范围不同,例如: - Artix-7:仅支持`VAUXP[0:15]` - Zynq UltraScale+:支持`VAUXP[0:11]` 若配置中启用`AUX(9,10,11)`但芯片物理上不存在这些通道,将触发错误 3. **XADC实例定位指令** 通过Tcl命令查找XADC单元状态: ```tcl # 列出所有XADC单元 set xadc_cells [get_cells -hier -filter {REF_NAME == xadc_wiz}] # 显示INIT_49属性 foreach cell $xadc_cells { puts "Cell: $cell, INIT_49 = [get_property INIT_49 $cell]" } ``` --- ### 二、DNA_PORT使用诊断 1. **DNA_PORT冲突检测** 检查是否在多个位置调用了DNA_PORT读取逻辑: ```tcl # 查找DNA_PORT实例 set dna_ports [get_cells -hier -filter {REF_NAME == DNA_PORT}] if {[llength $dna_ports] > 1} { puts "错误:检测到多个DNA_PORT实例" } ``` 2. **钟域同步验证** DNA_PORT读取需要稳定的钟(通常要求≤100MHz),检查相关约束: ```tcl # 查看DNA_PORT钟约束 report_clocks -of_objects [get_pins dna_port/CLK] ``` --- ### 三、硬件特性匹配 1. **芯片型号核对** 执行以下命令确认目标器件是否支持配置的XADC通道: ```tcl # 获取器件型号 get_property PART [current_design] # 查询XADC通道容量 report_property [lindex [get_xadcs] 0] -all | grep VAUX ``` 2. **比特流配置冲突** 当同使用XADC和DNA_PORT,需避免共享配置总线: ```tcl # 检查配置总线冲突 set_property BITSTREAM.CONFIG.CONFIGRATE 33 [current_design] ``` --- ### 四、紧急修复方案 **若需快速绕过错误**,可尝试以下临措施: ```tcl # 强制重置XADC配置 reset_property INIT_49 [get_cells xadc_instance] set_property INIT_49 16'h0000 [get_cells xadc_instance] # 关闭所有AUX通道 # 禁用未使用的DNA_PORT if {[llength $dna_ports] > 0} { set_property IS_ENABLED false [get_cells $dna_ports] } ``` --- ### 五、日志提交规范 联系Xilinx技术支持,需提供以下关键信息: 1. 完整的`vivado.log`文件(包含错误上下文) 2. 执行以下命令的输出: ```tcl report_property -all [get_cells xadc_instance] report_drc -file drc_report.txt ``` 3. 芯片封装型号及批次号(通过`report_device`获取) --- **典型案例分析**: 某Zynq-7000工程因将`INIT_49`设为`16'h0101`(试图启用AUX0和温度传感器),但实际设计中连接了AUX2/3/9通道,导致配置冲突。 **解决方案**: - 将`INIT_49`改为`16'h1401`(二进制`0001_0100_0000_0001`),启用AUX2/3/9 - 添加XDC约束限制采样率: ```tcl set_property XADC_SAMPLE_RATE 100 [get_cells xadc_wiz_0] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OpenFPGA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值