单元库建库流程,你了解几种?
点击上面“蓝字”关注我们!
本公众号现已更名为【单元库特征化及建库技术】,欢迎关注。
本文主要介绍单元库建库几个常用的flow。从大类上分,主要有三种常见的flow,分别是re-characterization,new characterization和add-on,其中re-characterization flow还可以细分多种小类。下面我们一起来看一下。
1
Re-characterization Flow
先来看re-characterization flow。Rechar flow是经常用到的flow之一,比如我们手上有之前建好的lib,或者vendor提供了部分PVT的lib,但我们的实际项目需要更多PVT的lib;再比如我们对一套库进行了部分小的优化(优化了layout,优化cell的设计),但没有做功能性的改变。当我们需要保留原来lib的结构,仅仅需要更新lib里的table(如timing,power)数值,我们一般用到的就是rechar flow。
Pure rechar flow
从参考库(seed.lib)里抽取必要的信息,如function,slews,loads,timing arcs等,因此pure rechar flow需要用户给的input最少。
Pure rechar flow需要的文件有:
- Seed.lib – 含function信息,以及slews/loads/timing arcs等信息
- Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
- Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
import -fast -liberty seed.lib -netlist_dir netlist_dir -ext ext cells
Function recognition flow
FR flow在seed.lib没有function的时候很有用。它通过读取cell的netlist自动识别cell的function,并且自动产生instance file(.inst)。
FR flow需要的文件有:
- Seed.lib – 不包含function信息,但有slews/loads/timing arcs等信息
- Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
- Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
举两个栗子:
- Function由FR识别,slews/loads/whens从seed.lib抽取
import -recognize -liberty seed.lib -netlist_dir netlist_dir -ext ext
注意,这里的-recognize不能省略,否则FR功能会被-liberty关闭。
- Function由FR识别,slews/loads/whens由用户自定义
import -recognize -liberty seed.lib -netlist_dir netlist_dir-ext ext -use_default_slews -use_default_loads -use_default_whens
使用FR flow需要注意以下几点:
- Netlist – 必须是SPICE格式,Spectre网表目前不支持
- Spice model – 需通过add_opc_process命令定义在configure.tcl里
- Power rails – 除了在add_opc_supplies定义外,还需在power_meas_supplies/grounds里定义
- Clock pin – 在import时序逻辑单元时,注意要将clock pin列在-clocks和-inputs里,否则工具可能会认错
import -recognize -netlist_dir netlist_dir -ext ext -clocks {CLK} -inputs {CLK D} -outputs {Q}
- Model names – 如果netlist里的mos管是subcircuit方式定义的,注意,nmos/pmos_model_names参数要定义上。同样的,diode用dio_model_names定义;电容用cap_model_names定义;电阻用res_model_names定义。
Skeleton liberty-based flow
这个flow适用于需要保留seed.lib的attributes,structure,headers,comments等,不使用seed.lib里的loads/slews/whens/arcs。用户可以自行定义autorange,numsteps_slew/load,smallest_slew/load,state_partitions等。
Skeleton liberty-based flow需要的文件有:
- Seed.lib – 只需包含你希望保留的attributes,structure,headers,comments等信息
- Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
- Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
import -fast -skeleton -liberty seed.lib -netlist_dir netlist_dir -ext ext cells
2
Add-on Flow
Add-on flow的用法跟re-characterization flow比较类似,不同的是,add-on flow仅characterize我们需要增加的数据,保留已经存在的数据。常用-match来指定需要跑的仿真。
Add-on flow需要的文件有:
- Seed.lib – 含function信息,以及slews/loads/timing arcs等信息
- Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
- Configure.tcl文件 – 如果没有,在使用import命令导入seed.lib和netlist的同时,SiliconSmart可以自动产生基本的configure.tcl
常用add-on flow的几个场景:
- 增加LVF tables
- 增加CCS-Timing/CCS-Noise/CCS-Power tables
- 增加EM tables
create chp
set_log_file chp/sis.log
set_location chp
import -fast -liberty seed.lib -netlist_dir ./ -ext .spf
configure -timing -ccs_noise
characterize -match (ccs_noise_*|miller_ccs_*) $cells
model -ccs_noise -output with_ccsn $cells
3
New Characterization Flow
这个flow可以理解成从无到有,如我们手头没有任何参考lib,仅有一套cell的网表(netlist),但是我们仍要建库。
New char flow需要的文件有:
- Netlist(一般是带有寄生参数的后仿网表)和工艺文件(spice model)
- Instance文件 – 手工定义cell的function,pin的信息,以及characterization的控制信息等
- Configure.tcl文件 – 不能自动生成,但可以使用create -legacy从安装目录下copy一个最基本的configure.tcl后,根据具体需求手工设置相关setting
create chp
set_log_file chp/sis.log
exec cp configure.tcl chp/config/configure.tcl
set_location chp
exec cp cell.inst chp/control/
configure -timing -power $cells
characterize $cells
model -timing -power $cells
常用的flow就是这几种,需要提醒的是,这些flow不是互斥的,在实际项目中,我们很少仅使用某一种flow,更多时候是综合使用多种flow来建库。
如有flow的相关问题,可在公众号里留言或加群,我们一起交流学习。
欢迎加入微信交流群
长按右边二维码
加我微信,拉您入群
长按二维码关注公众号
点一下"在看"再走吧
单元库建库流程,你了解几种?相关推荐
- 蓝的成长记——追逐DBA(20):何故缘起,建库护航 (二次发布-练习使用markdown编辑)
体现本文更好浏览效果请访问源地址: http://blog.csdn.net/huangyanlong/article/details/48776573 原创作品,出自 "深蓝的blog&q ...
- 蓝的成长记——追逐DBA(20):何故缘起,建库护航
原创作品,出自 "深蓝的blog" 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任. 深蓝的blog: http://blog.csdn.net/huangyanlon ...
- oracle简单建库基本流程
建库流程 1. 登录到252服务器(我的服务器地址是172.20.223.252): SSH 172.20.223.252 2. 切换到oracle数据库下: su – oracle 3. 以sysd ...
- RNA提取和建库流程对mRNA-Seq的影响
RNA提取和建库流程对mRNA-Seq的影响 已有 10460 次阅读 2014-8-14 14:21 |个人分类:转录组测序|系统分类:科研笔记|关键词:转录组测序,RNA-Seq,,链特异性RNA ...
- mysql 手动 建库_手动建库流程
1. 修改.bash_profile oracle_sid=PROD 对象别名可创建 2.创建建库所需文件夹 admin(adump dudmp ) oradata 3.创建密码文件(as sysdb ...
- MPB:中科院城环所杨军组-基于DNA宏条形码的水体浮游细菌群落测序建库方法...
为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...
- NBT:宏基因组读云建库+雅典娜算法组装获得微生物高质量基因组
读云(read clouds)组装高质量末培养的微生物基因序列 High-quality genome sequences of uncultured microbes by assembly of ...
- NBT:宏基因组10X建库+雅典娜算法组装获得微生物高质量基因组
文章目录 读云(read clouds)组装高质量末培养的微生物基因序列 热心肠日报导读 摘 要 图1. 读云鸟枪测序和组装方法技术路线 图2.两位健康人个体粪便的微生物属水平组成 图3.三种方法获得 ...
- c语言测序,一次Hi-C建库测序,两种分析,你不心动?
原标题:一次Hi-C建库测序,两种分析,你不心动? 基于Hi-C测序数据,既可进行基因组辅助组装,又可对基因组序列.基因结构及其调控元件的三维空间结构互作进行差异分析,结合基因功能研究,深入解析关键科 ...
最新文章
- CNN更新换代!性能提升算力减半,还即插即用(附论文)
- VTK:Filtering之SurfaceFromUnorganizedPointsWithPostProc
- Leet Code OJ 189. Rotate Array [Difficulty: Easy]
- Anaconda3-5.3.0-Windows-x86_64
- Vue项目构建后通过Nginx/SpringBoot/Express/Egg发布
- jsp页面判断输入编号已存在mysql中_面试官让我聊聊Mysql基础架构之日志文件与数据文件...
- 【报告分享】2020上半年短视频内容发展盘点.pdf(附下载链接)
- ArrayList、LinkedList和Vector三者区别与联系
- NOI2003 文本编辑器
- java连接数据库实现一个简单的登陆界面
- python写入access_使用Python对Access读写操作方法详解
- 今日头条推荐算法原理
- 冠军团队访谈录|第三届全国人工智能大赛
- Unity 草的制作
- Dijskra迪杰斯特拉算法
- 【UCIe】UCIe NOP 介绍
- python pandas处理excel 统计数据_pandas数据分析输出excel产生文本形式存储的百分比数据,如何处理?...
- Unity实用小工具或脚本——3D物体带坐标轴的拖拽
- Facebook MySQL 8.0 迁移之路
- Bugfree 客户端使用手册
热门文章
- jquery中提示框layer.msg()设置时间及相关用法
- 室内植物可以教给我们有关未来验证设计的知识
- KNN算法原理与简单实现
- html5用css做样式边框,纯CSS3实现自定义Tooltip边框 涂鸦风格
- R语言layout () 函数
- 百望云荣登“2022年中国新经济独角兽百强榜”,企业发展持续向好
- 2020 MacBook Pro 扩展坞接口失灵解决办法
- 如何画一个好看的动画人物?
- Baumer工业相机堡盟相机不满帧如何使用CameraExplorer设置相机参数让它的帧率达到满帧
- Python函数-函数式编程