DRC设计规则检查

article/2025/8/28 7:27:03

在I/O和时钟规划之后,需要验证设计以确保其满足设计需求。Vivado提供了两种验证途径:DRCs用来检查设计违反规则情况;SSN分析用来估计转换噪声等级。本文将介绍DRCs,本系列第16篇介绍了SSN分析。


运行DRCs

DRCs可以说是管脚规划中最严苛的一个步骤,DRCs会使用一套设计检查项(通常称作rule deck),来检查当前设计是否违反这套规则。本文将以运行DRCs检查I/O端口和时钟逻辑为例。

打开某一阶段的设计,点击Tools->Report->Report DRC,或在Flow Navigator中直接点击Report DRC,弹出如下窗口:
这里写图片描述
Results name规定了显示DRC结果的窗口名称;Output file可以选中一个保存DRC结果的文件。Rule Decks中选择用于DRCs的rule deck,一个rule deck便是一套设计规则。可以同时选择多个rule deck,同一个规则也可以包含在多个rule deck中。

根据运行DRCs所处设计阶段的不同(RTL设计、综合后设计、实现后设计),可以选择的Vivado提供的rule deck如下:

  • default:Xilinx推荐的默认规则检查;
  • opt_checks:与逻辑优化相关的规则检查;
  • placer_checks:与布局相关的规则检查;
  • router_checks:与布线相关的规则检查;
  • bitstream_checks:与bit流生成相关的规则检查;
  • timing_checks:与时序约束相关的规则检查;
  • incr_eco_checks:与增量ECO设计修改的有效性相关的规则检查;
  • eco_checks:完成一个修改网表的ECO之后,与连通性和布局相关的规则检查。

选择了rule deck之后,可以根据需要修改在Rules中使用的设计规则。运行DRCs的Tcl示例如下:

report_drc -ruledecks default -file C:/Data/DRC_rpt1.txt
  • 1

如果不想使用Vivado提供的rule deck,可以创建一个用户自定义的rule deck并添加到Rule Decks窗口中。该操作需要使用Tcl代码来完成,示例如下:


create_drc_ruledeck ruledeck_1
add_drc_checks -ruledeck ruledeck_1 [get_drc_checks {SYNTH-10 SYNTH-9 SYNTH-8 SYNTH-7 SYNTH-6 SYNTH-5 SYNTH-4}]
  • 1
  • 2
  • 3

交互式DRCs

在I/O布局过程中,Vivado IDE会运行一个基本的检查以确保合理的引脚分配,但是只有在实现后设计中的检查才能确保最终引脚分配完全合法。管脚布局时,交互式的I/O布局例行检查会报告常见的错误,这项功能可以在Package窗口或Device窗口的设置中通过Auto check I/O Placement复选框选择是否开启:
这里写图片描述
交互式DRCs的检查规则如下:

  • 阻止将高速收发器GTs的管脚赋值给噪声敏感的管脚;
  • 避免I/O标准违反设计规则;
  • 确保I/O标准不会用于不支持它们的I/O Bank;
  • 确保Bank没有不兼容的Vcc端口赋值;
  • 确保需要Vref端口的Bank有可自由使用的Vref管脚;
  • 确保全局时钟和局部时钟有合适的赋值;
  • 确保差分I/O端口设置在合适的管脚上;
  • 确保输出管脚不会布局在仅支持输入的管脚上/

Vivado默认开启交互式DRCs功能(交互式指的是用户每执行操作后都运行相关检查),Xilinx也推荐始终开启这个功能。


查看DRC违规信息

如果找到了违规信息,会打开DRC窗口,如下所示:
这里写图片描述
违规信息根据严重性分为4个等级,图标显示为不同的颜色:

  • Advisory:提供设计过程中的普通状态和反馈;
  • Warning:约束和设置可能没有按设计者意图那样实现,设计结果进行了一些优化;
  • Critical warning:某些用户输入和约束将不会应用或没有遵守最佳做法(必须解决此类问题,否则会在生成bit流过程中升级为error);
  • Error:表明使设计结果不可用和没有设计者干涉软件无法自动解决的问题,会终止设计流程。

违规信息所包含的内容一般比较长,可以单击选中,在Violation Properties窗口中更方便地查看信息(如果属性窗口没有打开,选中信息右键菜单中打开):
这里写图片描述
Details信息中给出了具体描述和解决方案,供设计者参考是否要修改设计。有的信息会包含一些蓝色链接,单击可以在其它窗口中交叉探测到产生违规的对象。


报告Methodology

在Vivado 2016.1之后的版本中,将部分DRC检查组合为一个新功能Report Methodology中,该功能运行一些简化的规则检查来验证设计(比如逻辑映射),遵从UltraFast设计方法。打开某一阶段设计后,在Flow Navigator中点击此功能:
这里写图片描述
如果有设计违规会显示在Methodology窗口,信息查看方式与DRC相同。最好的做法是在Elaborated Design阶段就运行该功能,可以帮助设计者在早期发现设计问题,节约开发成本。


http://chatgpt.dhexx.cn/article/w94iGXt4.shtml

相关文章

Calibre DRC

很多工程师把DRC和LVS一道放入最后的final甚至signoff阶段,其实DRC检查从power plan做好后就可以开始了,这个阶段检查power plan和base layer的DRC问题(常见的via array的spacing,相同电源域或不同电源域的衬底间距,pin shape与preRoute pg net的间距等),如果后期检查一…

orCAD原理图 DRC检查

DRC 检查的菜单步骤: 1、打开 ORCAD 软件,先选中整个 dsn 文件; 2、在Tools中点击Design Rules Check; 3、打开显示界面 ①Scope:范围,是检查整个设计,还是只检查选中的部分; ②M…

AD取消DRC标记记录

写在最前,其实有些事知道就很简单,不知道就一脸懵13;就像在debug过程中,发现问题是最难的,发现了就有办法解决。 问题描述: 最近在画PCB的时候,一些未连线的器件之间在DRC后会出现标记&#xf…

10 AD运行DRC检查

DRC检查是依据自行设置的规则进行的。例如自己设置的最小间距是8mil,那么实际PCB中,出现小于6mil的间距就会报错。 并不是DRC有错误的板子就不能使用,例如丝印的错误不会影响电气属性。接下来简单分析几种常见的错误。 运行DRC以后&#xf…

音频 ----- DRC

动态范围规划(调整)Dynamic Range Control的一些心得(二) 2017年05月18日 10:46:03 book_bbyuan 阅读数:2732 上次基本上提到的动态范围调整的一些基本概念,模块图等,这次继续说它的原理。 如…

DFT - DRC

文章目录 引言DRC参考资料 引言 本章博客主要介绍DFT的DRC相关的知识,本博客知识针对本人的理解水平所记录的笔记,对于本人的水平都觉得很简单的东西,或者说以本人的水平完全不能理解的,就没有记录。 DRC 典型的DFT串Scan的的F…

DRC实践

DRC简介 DRC(Data Replication Center)是我在阿里听过的一个概念,它的业务域是支持异构数据库实时同步,数据记录变更订阅服务。为跨域实时同步、实时增量分发、异地双活、分库分表等场景提供产品级的解决方案。支持异地多活、大数据实时抽取、搜索实时更…

Cadence原理图DRC检查介绍

背景:由于Cadence的DRC操作与AD不一样,在此记录并详细介绍其DRC检查 一、进入原理图工程 在原理图工程XXX.dsn上,才可以进行DRC操作。否则DRC功能是暗的 鼠标点击XXX.dsn,然后点击【Tool】–>【Design Rules Check】 二、进…

Python GUI_Tinkter学习笔记

Tinkter学习笔记 1_GUI编程和tinkter介绍2_PEP8编码规范 _窗口大小和位置3_GUI编程整体描述_常用组件汇总4_GUI程序的经典面向对象写法5_Label组件 _Tkinter中图像正确显示全局变量的写法Label组件全局变量(图片全局变量的写法) 6_options选项详解 _底层…

Trunk技术

一.Trunk技术产生的背景 解决了什么问题?如何实现交换机在划分vlan之后,不同交换机上相同vlan能够跨越地理位置相互通信 二.Trunk如何实现 设计一条主干线路:trunk链路 设计一个协议:802.1Q协议 (1)802.…

tooken

1.跨域身份验证 Internet服务无法与用户身份验证分开。一般过程如下。 1.用户向服务器发送用户名和密码。 2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。 3.服务器向用户返回session_id,se…

关于tink的碰撞检测类【2】

分析算法的思路: Step1:假设stage(黑色)上有4个显示对象red_mc,green_mc,blue_mc,yellow_mc,层级关系是stage>root>red_mc,stage>root>yellow_mc>blue_mc>green_m…

tkinter:Toplevel

一、概述 Toplevel 组件可以提供单独的容器。 二、代码 import tkinter as tk# 主顶层 win tk.Tk() win.title("主窗口") win.geometry("400x200") tk.Label(win, text"Toplevel-主窗口").pack(pady20)# 子顶层1 依赖于主窗口;如…

$nextTick

$nextTick ● Vue 是异步渲染 ● data 改变后&#xff0c;DOM不会立刻渲染 ● $nextTick 会在 DOM 渲染之后被触发&#xff0c;以获取最新 DOM 节点 先看不用nextTick的情况 <template><div><button click"add">添加3项目</button><…

stick to it

无论何种选择&#xff0c;坚持才是最美的荡气回肠&#xff0c;加油&#x1f4aa; 你大好青春&#xff0c;你怕什么&#xff0c;往前跑&#xff01;

ticklength

设置图片刻度线长度 ‘ticklength’ 0.05 set(gca,xminortick,on); set(gca,ticklength,[0.05 0.025]); set(gca,tickdir,out);x1:8; plot(x) set(gca,‘xminortick’,‘on’);%style 5 set(gca,‘ticklength’,[0.05 0.025]);%style 6 set(gca,‘tickdir’,‘out’);%style …

如何下载免费版的PDF编辑器

想要将PDF文件进行编辑的方法机器是很简单只要我们利用好PDF编辑器就可以轻松的将他进行操作&#xff0c;但是将PDF文件进行编辑的软件大部分的都不是免费的&#xff0c;想要将PDF文件进行免费使用的话需要我们如何去进行下载&#xff1f;小编就向你你们简单讲解一下如何去进行…

迅捷CAD格式转换器专业版

迅捷CAD编辑器是一款应用于图纸DWG格式文件的编辑软件&#xff0c;主要为DWG、DXF等文件格式图纸提供浏览、编辑功能 迅捷CAD转换器支持功能 PDF转CAD CAD转PDF CAD转JPG CAD转PNG CAD转SVG CAD版本转换 DWG转DXF DXF转DWG 本版本已经破解&#xff0c;直接安装以后打开安装就使…

PDF转换器汉化版

PDF转换器汉化版 作为一款快捷高效的PDF阅读转换软件——迅捷PDF转换器(PDF转换器汉化版)全中文界面&#xff0c;高速、快捷、功能强大。目前包括PDF转Word、Excel、PDFTXT、PPT、HTML、EPUB、Office转PDF八种格式转换&#xff0c;给用户转换文本格式提供了多种选择性。同时&am…

pdf类型转换器打印机

pdf类型转换器打印机 商业活动期间经常需要利用平板电脑阅览文件&#xff0c;为了使打印效果更好&#xff0c;阅读效果更佳。就会选用专业迅捷pdf类型转换器打印机进行打印&#xff0c;来实现多种格式打印效果。 什么是pdf类型转换器打印机?迅捷pdf类型转换器打印机(pdf类型转…