前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Vivado在产生bitstream时遇到ERROR: [Drc 23-20] Rule violation (NSTD-1)…

Vivado在产生bitstream时遇到ERROR: [Drc 23-20] Rule violation (NSTD-1)…

作者头像
FPGA开源工作室
发布于 2020-12-14 01:47:23
发布于 2020-12-14 01:47:23
4.1K00
代码可运行
举报
文章被收录于专栏:FPGA开源工作室FPGA开源工作室
运行总次数:0
代码可运行

Vivado在产生bitstream时遇到Vivado write_bitstream - ERROR: [Drc 23-20] Rule violation (NSTD-1)…

问题

生成比特流时,会出现以下错误消息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

 1. 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.

翻译: 错误:[Drc 23-20]违反规则(NSTD-1)未指定I / O标准-3个逻辑端口中有3个使用I / O标准(IOSTANDARD)值’DEFAULT’,而不是用户指定的特定值。这可能会导致I / O争用或与电路板电源或连接性不兼容,从而影响性能,信号完整性,或者在极端情况下会损坏设备或与其连接的组件。若要更正此冲突,请指定所有I / O标准。除非所有逻辑端口都定义了用户指定的I / O标准值,否则此设计将无法生成位流。要允许使用未指定的I / O标准值创建位流(不推荐),请使用set_property SEVERITY {Warning} [get_drc_checks NSTD-1]。问题端口:clk,din,dout。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制

 1. 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.

翻译: 错误:[Drc 23-20]违反规则(UCIO-1)不受限制的逻辑端口-3个逻辑端口中的3个没有用户分配的特定位置约束(LOC)。这可能会导致I / O争用或与电路板电源或连接性不兼容,从而影响性能,信号完整性,或者在极端情况下会损坏设备或与其连接的组件。要更正此冲突,请指定所有引脚位置。除非所有逻辑端口都定义了用户指定的站点LOC约束,否则此设计将无法生成比特流。要允许使用未指定引脚位置的位流创建(不推荐),请使用set_property SEVERITY {Warning} [get_drc_checks UCIO-1]。问题端口:clk,din,dout。

解决方案:

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

例如:

如果引脚在板上接地,而Vivado选择此引脚作为高电平驱动的输出,则会引起竞争。 如果板上有一个针对该引脚的端接方案,即HSTL或SSTL建议的端接,并且Vivado选择LVCMOS18(默认值),则信号的信号完整性将达不到最佳状态。 7系列的默认I / O标准是LVCMOS18,用于所有存储区的单端信号。在以前的体系结构中,默认的I / O标准为LVCMOS25。

以下是这些错误的可能解决方案。

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

对于项目模式的Tcl脚本流,请创建一个.tcl文件并向其中添加以下两个命令。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

在“ launch_runs -to_step write_bitstream”命令之前,将以下命令添加到脚本中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set_property STEPS.WRITE_BITSTREAM.TCL.PRE {<path_and_file_name>.tcl} [get_runs impl_1]

对于非项目模式的Tcl脚本流,请将以下两个命令添加到脚本中的write_bitstream命令之前。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set_property SEVERITY {Warning} [get_drc_checks NSTD-1]
set_property SEVERITY {Warning} [get_drc_checks UCIO-1]

不管您使用什么流程,都将以下命令添加到XDC并重新运行Implementation。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set_property BITSTREAM.General.UnconstrainedPins {Allow} [current_design]

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

或着

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set_property BITSTREAM.General.UnconstrainedPins {Allow} [current_design]
write_bitstream <path_and_file_name>.bit

注意:

1)在GUI项目模式下,当您在位流生成中收到这些错误时,仅在Tcl控制台中运行上述set_property命令,然后仅重新运行“ Generate Bitstream”将无法解决这些错误。

这是因为属性未应用到已经完成的实施运行中。当您重新运行“生成比特流”时,将加载此实现运行,并且仅使用存储在其中的属性。

2)在某些情况下,这些DRC错误是由工具问题引起的。以下是两个DRC错误是由工具问题引起的示例。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA开源工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
管脚约束问题导致生成bit时报错 如何在不重新Implentation情况下生成bit?
  像上面这个图中,由于在约束中忘记指定mdc和mdio的电平,再经过了长时间的综合和实现后,最后的Generate Bitstream报错了。
猫叔Rex
2021/11/25
4330
管脚约束问题导致生成bit时报错 如何在不重新Implentation情况下生成bit?
FPGA时序约束理论篇之IO约束
  管脚约束就是指管脚分配,我们要指定管脚的PACKAGE_PIN和IOSTANDARD两个属性的值,前者指定了管脚的位置,后者指定了管脚对应的电平标准。
猫叔Rex
2020/06/30
2.1K0
FPGA时序约束理论篇之IO约束
蜂鸟E203系列——FPGA硬件环境
make执行GUI 加载编译加入源文件综合出错实现出错生成bitstream出错烧录 flash
瓜大三哥
2020/07/09
1.7K0
Vivado2015.4使用教程(一个完成工程的建立)
NingHeChuan
2018/01/05
9440
Vivado2015.4使用教程(一个完成工程的建立)
多平台FPGA工程快速移植与构建
作为一名FPGA工程师,经常需要在多个FPGA设备之间移植项目,核心的问题是IP的管理和移植,今天通过安装和使用 FuseSoC 在多个 AMD FPGA 之间移植一个简单的项目。从 AMD Spartan™ 7 更改为 AMD Artix™ 7 设备,然后是 AMD Kintex™ UltraSacle™。
FPGA技术江湖
2024/12/11
1470
多平台FPGA工程快速移植与构建
Vivado初体验LED工程
本节我们要做的是熟练使用 Vivado 创建工程并实现对 LED 灯控制,每秒钟控制开发板上的 LED 灯翻转一次,实现亮、灭、亮、灭的控制。会控制 LED 灯,其它外设也慢慢就会了。
Gnep@97
2023/09/19
8860
Vivado初体验LED工程
FPGA片内ROM读写测试实验
FPGA 本身是 SRAM 架构的,断电之后程序就会消失,那么如何利用 FPGA 实现一个 ROM 呢,我们可以利用 FPGA 内部的 RAM 资源实现 ROM,但这不是真正意义上的 ROM,而是每次上电都会把初始化的值先写入 RAM。Vivado 软件中提供了 ROM 的 IP 核 , 我们只需通过 IP 核例化一个 ROM,根据 ROM 的读时序来读取 ROM 中存储的数据。本节将介绍如何使用 FPGA 内部的 ROM 以及程序对该 ROM 的数据读操作。该实验与 FPGA 片内 RAM 读写测试实验操作类似,可以参考一下。
Gnep@97
2023/10/02
9250
FPGA片内ROM读写测试实验
PYNQ上手笔记 | ⑥HDL设计IP核
然后在文件最后,找到Add user logic here,然后在其后添加逻辑功能代码:
Mculover666
2020/07/15
1K0
ZC706评估板IBERT误码率测试和眼图扫描【GT高速串行收发器】【IBERT】【FPGA】【眼图】【FPGA探索者】
IBERT(Integrated Bit ErrorRatio Tester,集成误比特率测试工具),是Xilinx提供用于调试FPGA高速串行接口比特误码率性能的工具,最常用在GT高速串行收发器测试:
FPGA探索者
2021/03/15
4.9K0
FPGA片内RAM读写测试实验
本节讲述一下 FPGA 片内 RAM 的仿真与测试,我们也知道 RAM 是随机存储器,顾名思义是一种存储数据的一种模块,说到随机呢,也就是我们可以任意的访问它里面的一些地址空间里面的数据。
Gnep@97
2023/09/24
1.2K0
FPGA片内RAM读写测试实验
强大的JTAG边界扫描1-基本原理
听卖家介绍说,这是之前挖矿盛行时,定制矿机中的一块HASH算力卡,主要功能是通过串口接收数据,FPGA计算出HASH值,再通过串口输出,由于工作频率较高,还外加了散热器,后来由于矿难,就把矿机中的板卡都处理掉了,遗憾的是没有留下任何软硬件资料。
单片机点灯小能手
2023/09/18
9120
强大的JTAG边界扫描1-基本原理
【分享】升级Vivado工程脚本
Vivado可以导出脚本,保存创建工程的相关命令和配置,并可以在需要的时候使用脚本重建Vivado工程。脚本通常只有KB级别大小,远远小于工程打包文件的大小,因此便于备份和版本管理。 脚本里指定了Vivado的版本、器件的型号,IP的版本。如果导出脚本时的相关版本,和恢复工程时的相关版本不一样,会导致创建工程失败。可以通过手工检查和修改相关版本信息,升级Vivado工程脚本,使新的Vivado也能恢复出对应的工程。 目前我电脑中只有Vivado 2020.2。但是得到了一份Vivado 2020.1为开发板vck190 es的创建的工程脚本。下面以把前述脚本升级到Vivado 2020.2为例,讨论如何升级Vivado工程脚本。
hankfu
2021/03/03
2.2K0
平头哥开源项目wujian100_open | 基于synplify+vivado生成bitfile
Use the sdc2fdc Tcl shell command to convert the timing constraints.
数字芯片社区
2022/04/06
2.1K0
平头哥开源项目wujian100_open | 基于synplify+vivado生成bitfile
Vivado下PLL实验
本节介绍一下赛灵思锁相环的一个使用方法,我手头的 AC7020 fpga 开发板上面有一个 50MHz 的晶振连接在 PL 端,晶振输出链接到 FPGA 的全局时钟(MRCC),这个 CLK 可以用来驱动 FPGA 内的用户逻辑电路,该时钟源的原理图如图所示:
Gnep@97
2023/09/21
7370
Vivado下PLL实验
Vivado Tcl 脚本编译工程
工具命令语言(Tcl--Tool Command Language)是Vivado®工具环境中集成的脚本语言。Tcl是半导体行业中用于应用程序编程接口的标准语言,并由Synopsys®设计约束(SDC)使用。
FPGA开源工作室
2020/02/14
2.5K0
Vivado Tcl 脚本编译工程
利用 IBERT 进行 GTX 信号眼图测试
Vivado中提供了1种IBERT工具用于对Xilinx FPGA芯片的高速串行收发器进行板级硬件测试。通过IBERT我们可以获取误码率,观察眼图,调节串行收发器的参数,从而有助于判断可能存在的问题,便于验证硬件的稳定性和信号完整性。
碎碎思
2020/06/30
6.8K3
单周期CPU
1、理解 MIPS 常用的指令系统并掌握单周期 CPU 的工作原理与逻辑功能实现。
ttony0
2022/12/26
2.5K0
单周期CPU
时序分析笔记系列(五)、IO约束与时钟约束
管脚约束就是指管脚分配,指定管脚的PACKAKE_PIN(管脚位置)和PACKAGE_IOSTARD(电平标准)两个属性的值。
根究FPGA
2020/06/29
2.7K0
Vivado Non-Project模式
read_verilog [ glob ./sources_1/imports/new/*.v ]
瓜大三哥
2018/07/30
1.7K0
Vivado Non-Project模式
wujian100——FPGA综合实现
最后就可以生成 bit 流文件。而且小编还看到 Slack 恰好为 0 ,的确是 ”绝了“。
瓜大三哥
2020/11/10
2.1K1
wujian100——FPGA综合实现
推荐阅读
相关推荐
管脚约束问题导致生成bit时报错 如何在不重新Implentation情况下生成bit?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验