后端设计PG liberty的作用和增量式生成
Liberty(俗称LIB和DB),是后端设计中重要的库逻辑描述文件,这里边包含了除过physical(当然也有一点点涉及)以外所有的信息,对整个后端设计实现有非常大的作用。借此机会,一起LIB做一个简单的理解和使用,闲话少叙,ICer Go!
LIB的简单描述
liberty是S家创立并定义的文件格式,主要用于描述各种IP,std-cell等类别的逻辑信息,包括到不限于下列要素
- area
- cell delay timing: delay
- transtion timing
- noise
- pin cap/trantion threshold
- power: leakage, internal
- PG info
- …
可以看到,这里的要素很多,随着工艺和timing model的演进,关于时序分析方面的扩展和追加信息会越来越多,这里不是讨论的重点,这里不再赘述。
UPF flow的需求
当下的后端实现大部分都是UPF flow(PS:就算设计中只有一个pwer domain,也可以应用UPF flow),UPF flow 从RTL设计开始,到综合mapping,再到后端实现都需要统一规划。从RTL到GDS的每一步设计都需要使用“外挂”UPF的方式对设计进行干预和指引。通常而言,需要有以下的注意事项
- 设计: 实例化不能带有PG信息
- 前仿真:带入UPF,确保上下电的功能可以被准确捕捉和验证
- 综合:带入UPF和支持PG的LIB,完成低功耗设计实现和基于UPF的PG 连接
- 自动布局布线:带入UPF和支持PG的LIB和LEF,完成低功耗物理实现。包括PG连接和布通
- 后仿真:带入物理实现后的数据和UPF,关注power-domain的开关和低功耗器件(LS,isolaion,retention-cell)的功能正确性
通常而言,LEF都是带PG信息的,否则,物理实现的时候,无法完成cell PG和power rail/mesh的有效连接,这个是物理实现的强需求,譬如:
对于liberty LIB,PG信息并非必选项,特别是在用户不选择UPF 设计流程的时候,或者只是要单一power domain的UPF设计的时候,不带PG的LIB确实不会引起问题,所以对于一个比较老的工艺可能确实没有提供带PG信息的LIB。但当用户采用了多power-doamin UPF flow是,原有的liberty就不能满足设计需求了。
但是,这个问题确实不是硬伤(hard-problem):因为GDS都是支持PG的,LIB只是对于GDS的抽取时,没有带入而已,所以从TO角度而言,这个确实是修正的,用户只需要在原有的LIB里边添加PG信息,就可以让现在的设计完美支持UPF flow,这样的方案,对于IP vendor不能很快的响应提供了非常不错的解决之道
LIB中PG 信息的存在方式
既然LIB里边对于设计的逻辑描述已经很清晰了,那么只要了解了PG在LIB里的存在方式,完全可以将一个不带PG的LIB,转换成一个带PG的LIB。通常而言PG会对下列类目产生影响:
- liberay scope 的PG 电压定义:通常使用voltage_map 声明,定义的电压值,这里VDD和VSS可以看作会被后面引用的两个变量名
- cell scope 的PG pin的定义对应电压,
- pin scope 的 pin对应的PG 信息:这个用于工具判别信号所属的PG网络,从而对UPF flow里的isolation或者LS做合规检查,注意这里的output pin会有一个powerdown_function的描述,这个对于可关断domain的功耗检查有帮助
所以,基本上只要完成上述三个scope:libery/cell/pin就可以将一个不带PG的LIB转换为带PG的LIB。所以,当遇到这样一个LIB的时候,笔者就简单开发了一个PY,完成了上述的功能,这个增量式生成就完成了,但是这个方法真的就是一个好方法吗?很遗憾,当看到S家提供的命令后,这个PY直接被丢进了垃圾箱。
巧用命令实现PG LIB的增量式生成
在DC工具里边,S家提供了一个有好的命令,专门根治各种LIB缺失PG的问题。
命令的原理是这样:
是不是很简单,通过LEF里边的PG,反标到LIB里边而已。简单理解:PG 信息在LIB不是必选项,但一定是加分项。
【敲黑板划重点】
理解PG LIB对UPF的重要性显然是整个问题的关键点,对于如何实现PG LIB的增量式生成,归根结底只是一个技术方法而已。
参考资料
Synopsys Synthesis Tool Commands
相关文章:

后端设计PG liberty的作用和增量式生成
Liberty(俗称LIB和DB),是后端设计中重要的库逻辑描述文件,这里边包含了除过physical(当然也有一点点涉及)以外所有的信息,对整个后端设计实现有非常大的作用。借此机会,一起LIB做一个…...

Linux 安装 RocketMq
RocketMq是阿里出品(基于MetaQ)的开源中间件,已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现,十万级数据吞吐量,ms级处理速度,分布式架构,功能强大,扩展性强。 官网…...

大数据Doris(十六):Doris表的数据划分
文章目录 Doris表的数据划分 一、Partition 二、 Bucket 三、PROPERTIES 四、 ENGINE Doris表的数据划分 Doris支持单分区和复合分...

管理文件:文件批量重命名,轻松删除文件名中的空格
在文件管理中,我们经常会遇到文件名中带有空格的情况。这些空格可能会使文件在某些情况下难以被正确识别或使用,因此我们需要掌握一些技巧来轻松删除文件名中的空格。现在使用云炫文件管理器批量重命名进行批量处理。以下是如何操作的步骤详解࿱…...

Docker容器技术实战3
8、docker原生网络 Docker原生网络基于Linux桥接技术和虚拟网络接口,使用了Linux内核的网络功能。每个Docker容器都有自己的网络命名空间,这使得容器之间可以使用独立的IP地址,并隔离了容器的网络栈。 当创建一个Docker原生网络时ÿ…...

数字处理-第10届蓝桥杯省赛Python真题精选
[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第3讲。 数字处理ÿ…...
Go并发编程
一、goroutine 和 通道 在Go语言中,每一个并发执行的活动成为goroutine。通道则是每一个goroutine之间传递消息的工具。 1、Goroutine 在一个Go程序中,只有一个主Goroutine来调用main函数。生成新的goroutine也十分简单,例如有一个函数&…...
Nignx及负载均衡动静分离
核心要点:部署后台项目 1.配置jdk环境 1.先将jdk的Linux版本的压缩包上传虚拟机中服务器 2.解压上传的jdk压缩包 tar -zxvf jdk.gz 3.先进入jdk的解压目录,再通过pwd查看当前解压包的路径 4.将 解压包路径 配置到 /etc/profile 5…...

HDFS架构介绍
数新网络_让每个人享受数据的价值浙江数新网络有限公司是一家开源开放、专注于云数据智能操作系统和数据价值流通的服务商。公司自主研发的DataCyber云数据智能操作系统,主要包括数据平台CyberData、人工智能平台CyberAI、数据智能引擎CyberEngine、数据安全平台Cyb…...
微信小程序提示确认框 wx.showModal
核心实现代码如下 wx.showModal({ title: 确认, content: 确定要删除吗?, success (res) { if (res.confirm) { console.log(用户点击确定) } else if (res.cancel) { console.log(用户点击取消) } } })title 是确认框的标题,content 是确认…...

如何设置OBS虚拟摄像头给钉钉视频会议使用
环境: OBS Studio 29.1.3 Win10 专业版 钉钉7.1.0 问题描述: 如何设置OBS虚拟摄像头给钉钉视频会议使用 解决方案: 1.打开OBS 底下来源这添加视频采集设备 选择OBS虚拟摄像头 2.源那再建一个图像,随便选一张图片 3.点击虚…...

SpringCloud 微服务全栈体系(十一)
第十章 RabbitMQ 三、SpringAMQP SpringAMQP 是基于 RabbitMQ 封装的一套模板,并且还利用 SpringBoot 对其实现了自动装配,使用起来非常方便。 SpringAmqp 的官方地址:https://spring.io/projects/spring-amqp SpringAMQP 提供了三个功能&…...

45基于matlab的ARIMA:AutoregressiveIntegratedMovingAverage model。
基于matlab的ARIMA:AutoregressiveIntegratedMovingAverage model。自回归差分移动平均模型(p,d,q),AR自回归模型,MA移动平均模型,时间序列模型步骤包括:1. 数据平稳性检验;2. 确定模型参数;3. …...

2010年408计网
下列选项中, 不属于网络体系结构所描述的内容是(C)A. 网络的层次B. 每层使用的协议C. 协议的内部实现细节D. 每层必须完成的功能 本题考查网络体系结构的相关概念 再来看当今世界最大的互联网,也就是因特网。它所采用的TCP/IP 4层网络体系结…...

初谈Linux-Linux环境搭建(阿里云免费服务器+xshell)
文章目录 前言Linux环境搭建结尾 前言 Linux is not unix 本篇文章小编初谈Linux并搭建Linux环境(阿里云免费服务器shell) Linux Linux是一个开源的操作系统 环境搭建 1.点击阿里云ECS免费学生服务器 2.注册后完成学生认证 3.购买云服务器…...

如何利用AppScan扫描H5页面,进行安全测试?
前期项目组接触的都是Web安全测试,今天做安全测试的时候,有一个项目刚好有H5页面,用以前那种AppScan内置浏览器的探索方式是不行的,研究了下,可以使用外部设备进行探索。 AppScan有两种手动探索方式,一种是…...
Oracle数据库中的table@xyz是什么意思?
是DBlink访问外部表的语法。xyz是其他Oracle数据库在你所登录的用户下建立的Dblink名。通过这种方式访问其他数据库中的表。 在Oracle数据库中,表名后跟着符号和一个连接字符串(xyz)是一种用法,它用于指定要访问的远程数据库。 …...

springboot常见网络相关错误及原因解析
在基于spring-boot开发过程尤其是上线后,经常出现网络相关的错误,令人难以琢磨和下手,所以就spring-boot使用过程中可能碰到的网络相关问题进行分析,结合网络转包、日志报错和前端输出,针对网络连接超时、连接被拒绝、…...
【C语言_线程pthread_互斥锁mutex_条件触发cond 之解析与示例 (开源)】.md updata:23/11/03
文章目录 线程 pthread线程 vs 进程线程退出 等待 消息传递join:等待,传参void*; exit:退出,对参数赋值void**; 互斥锁 mutex互斥锁mutex条件cond_等待wait、触发signal 控制线程执行 补充: 宏-静态初始化 互斥锁/条件 线程 pthread 线程 vs…...
mongodb如何删除数据并释放空间
mongodb删除数据后不会直接释放内存空间,是因为使用了一种称为“延迟删除”的策略。这意味着当一个文档被删除时,它仍然会占用一定的内存空间,直到这个空间被垃圾回收器(Garbage Collector)回收。 删除数据操作前建议先…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
多元隐函数 偏导公式
我们来推导隐函数 z z ( x , y ) z z(x, y) zz(x,y) 的偏导公式,给定一个隐函数关系: F ( x , y , z ( x , y ) ) 0 F(x, y, z(x, y)) 0 F(x,y,z(x,y))0 🧠 目标: 求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z、 …...
【题解-洛谷】P10480 可达性统计
题目:P10480 可达性统计 题目描述 给定一张 N N N 个点 M M M 条边的有向无环图,分别统计从每个点出发能够到达的点的数量。 输入格式 第一行两个整数 N , M N,M N,M,接下来 M M M 行每行两个整数 x , y x,y x,y,表示从 …...