design compiler中的drc规则详解

design compiler中的drc规则详解

  • DRC是什么?
  • DRC分类
  • 各个DRC的含义
  • 写在最后

DRC是什么?

  1. 本文讨论的DRC即是Design Rule Constraint,而不是Design Rule Check,后者是物理端或者后端的一个关键步骤。

DRC分类

  1. DRC为DC中的一个约束大类,另一类即是我们熟悉的一些优化类的约束,例如时钟跑多快,面积多大,以及功耗如何等。
  2. 一般来讲,Foundry厂提供的库文件会默认一个初始的DRC。
  3. DRC主要分类三大类,一类为最大XXX约束,包括最大电容,最大扇出,最大过渡时间。一类为cell的退化约束,还有一类为最小电容。

各个DRC的含义

  1. 最大电容的概念很好理解,Design Compiler综合时会遵从一个线网最大电容的上限原则,连接到某个wire上的电容总大小不能超过该值。一般情况下,我们初版综合脚本不会设置该值,原因是其默认值是按照我们的逻辑库和操作条件去抽取的,即便不去设置,也会存在该默认值,当然,部分特殊情况下需要手动再去设置一次,命令为set_max_capacitance,单位可以用report_units命令去报一下。
  2. 最大过渡时间也很好理解,这个概念是针对wire来讲的,即驱动该wire的pin改变逻辑值需要的最长时间。同理,逻辑库会默认有一个最大过渡时间,当然也可以重设,通过set_max_transition这条命令。同理,其遵从“最小原则”,按照min(逻辑库设置值,手动设置值)来进行综合计算。
  3. 最大扇出,大多数库,例如tsmc,smic,umc等,都会有一个默认的最大扇出限制,一般情况下不需要手动设置,极个别情况下需要去设置一个更保守的最大扇出。
  4. cell退化,这个概念比较生涩,即部分逻辑库会根据输入的pin的transition time的一个函数来计算得到一个最大电容,若设置了cell degradation这个值,实际综合时dc会尽可能将线网的最大电容负载小于这个值。一般情况下不会使用。
  5. 最小电容的概念为存在于综合后的cell的最小电容值,也就是一个下限值,若低于该下限,一般情况下,dc会通过resize的策略去解决该violation。当然,resize本身也是解决时序违例的一种办法。

写在最后

  1. 事在人为,全力以赴!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/106168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式——21. 中介者模式

1. 说明 中介者模式(Mediator Pattern)是一种行为设计模式,它允许对象之间通过一个中介者对象进行通信,而不是直接相互引用。这种模式有助于减少对象之间的直接关联,从而提高系统的可维护性和松耦合性。中介者模式将对象之间的交互集中在一个中介者对象中,该对象负责协调…

windows DOM 命令手册

Windows 打开windows中特定程序 win R > cmd > Enter # 打开 dos 窗口 win R > devmgmt.msc > Enter # 打开设备管理器 win R > services.msc > Enter # 打开服务管理器 基础命令 help-查看某个命令帮助信息 # 查看…

自动化办公篇之python

1、如果没有安装xlwings库,先在控制台pip install xlwings,然后点击运行,创建四个空excel表 。 import xlwings as xw app xw.App(visibleTrue,add_bookFalse) for dept in ["技术部","销售部","运营部","财务部&q…

74.C++ STL stack容器

目录 1.什么是stack 2.stack的构造函数 3.赋值操作 4.数据存取操作 5.大小操作 1.什么是stack stack 是 C 标准库中的容器适配器,它提供了一个堆栈(栈)数据结构的封装,用于管理元素的插入和移除。栈是一种后进先出的数据结构…

GaN器件的工作原理

目录 AlGaN/GaNHEMT 器件工作原理(常开-耗尽型器件)常关 AlGaN/GaN 功率晶体管(增强型器件)HD-GIT与SP-HEMT AlGaN/GaNHEMT 器件工作原理(常开-耗尽型器件) 来源:毫米波GaN基功率器件及MMIC电路…

Mybatis学习笔记注解/xml映射/动态SQL%%%Mybatis教程

介绍 Mybatis 是一款优秀的持久层框架,用于简化 JDBC 的开发 MyBatis中文网 Mybatis 入门 快速入门 步骤 创建 SpringBoot 工程、数据库表 user、实体类 User引入 Mybatis 相关依赖,配置 Mybatis(数据库连接信息)编写 SQL 语…

Scraping 和Crawling的区别与联系

在互联网时代,获取网页上的数据对于许多人来说已经成为一种常态。在这个过程中,我们经常会听到两个词:Web Scraping(网页抓取)和Web Crawling(网络爬虫),它们看似相似,但…

php 解析json字符串

在PHP中解析JSON字符串通常使用内置的json_decode函数。json_decode函数将一个JSON格式的字符串转换为PHP对象(如果设置第二个参数为true,则转换为关联数组)。 以下是一个示例: $json_string {"name":"John"…

大语言模型之十七-QA-LoRA

由于基座模型通常需要海量的数据和算力内存,这一巨大的成本往往只有巨头公司会投入,所以一些优秀的大语言模型要么是大公司开源的,要么是背后有大公司身影公司开源的,如何从优秀的开源基座模型针对特定场景fine-tune模型具有广大的…

SQL Server创建数据库

简单创建写法 默认初始大小为5MB,增长速度为2MB create database DBTEST自定义 用户创建的数据库都被存放在sys.database中,每个数据库在表中占一行,name字段存放的数据库的名称,具体字段可以看此博客sys.database系统表详细说明 所以判断…

Idea使用技巧——导包优化,新版idea界面取消,界面字体放大缩小

导包优化 on the fly 翻译为立刻 第一个表示,如果导入的包没有冲突,会自动帮你导入。如果输入List 无需手动altenter 第二个表示,没有引用的包,会自动删除。这个对于代码整洁尤其适用。相当于ctrlalto的功能 新版idea的界面取消 …

【RWKV】如何新增一个自定义的Tokenizer和模型到HuggingFace

0x0. 前言 RWKV社区在Huggingface上放了rwkv-4-world和rwkv-5-world相关的一系列模型,见:https://huggingface.co/BlinkDL/rwkv-4-world & https://huggingface.co/BlinkDL/rwkv-5-world ,然而这些模型的格式是以PyTorch的格式进行保存的…

spark中使用flatmap报错:TypeError: ‘int‘ object is not subscriptable

1、背景描述 菜鸟笔者在运行下面代码时发生了报错: from pyspark import SparkContextsc SparkContext("local", "apple1012")rdd sc.parallelize([[1, 2], 3, [7, 5, 6]])rdd1 rdd.flatMap(lambda x: x) print(rdd1.collect())报错描述如…

LCR 174.寻找二叉搜索树中的目标节点

​​题目来源: leetcode题目,网址:LCR 174. 寻找二叉搜索树中的目标节点 - 力扣(LeetCode) 解题思路: 首先用栈保存到二叉搜索树最大节点的链条上的各个指针(栈顶为最大元素指针)&a…

【Proteus仿真】【51单片机】智能语音家居陪护机器人

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器,使用OLED液晶、按键、蜂鸣器、DS18B20温度传感器、人体红外传感器、语音识别模块、继电器、风扇、LED等。 主要功能: 系统运行后&#xff0…

华纳云:Linux文件不存在无法删除如何解决

在Linux中,如果您要删除一个文件,但文件不存在,通常会收到类似"文件不存在"或"没有这样的文件或目录"的错误消息。这可能是由于多种原因导致的,例如文件被移动、重命名、删除,或者您没有足够的权限…

自定义jenkins镜像提示FontConfiguration.head错误

系统使用:Debian12,jdk17 提示问题:缺少字体 找一台jdk8的环境,在lib文件夹中找到fontconfig.bfc find / -name *fontconfig* 复制到jenkins目标服务器中,jdk目录的lib中 再次启动jenkins服务正常

docker数据卷+挂载(命令讲解+示例)

在容器中管理数据主要有两种方式: 数据卷(Volumes) 、挂载主机目录 (Bind mounts)。 一、数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,可以在容器之间共享和重用。 特点: 对 数据卷 的修改会立马生效对 …

基于uniapp的商城外卖小程序

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

利用向导创建MFC

目录 1、项目的创建: 2、项目的管理 : 3、分析以及生成的项目代码 : (1)、查看CFrame中的消息映射宏 (2)、自动生成事件 (3)、在CFrame中添加对应的鼠标处理函数 …