数字后端流程二【Astro】
数字后端软件Astro的使用方法
Astro 是数字后端的布局布线的重要工具,还数字后端设计中,关于 Astro 的设计主要由以下几部分组成:
【1】 新建一个 pnr 文件夹,在其子目录下创建 clf cons in log lib out rpt script tf 以及一个
makefile 文件
【2】 clf 文件夹中主要存放工艺延时 功耗 负载 等相关文件以便导入 主要可以有以下几个部分 :
antenna_*lm.clf *.clf.logic *.clf.power *.clf.time 可以由 Foundry 提供的工艺库文件中拷贝
【3】 cons 文件夹中主要存放 Macro PAD Locationa 文件 Pin Location 文件,dbdefine 文件 以及 antenna rules 文件 以便导入设计中使用
【4】 in 文件夹中主要存放有 DC 综合后生成的综合网表 *.sv 文件 时序约束文件 *.sdc 以及 *.sdf 文件,
但是需要对 sdc 文件进行相关修改后才能作为 Astro 布局布线的时序约束参考因此需要有一个 Makefile 文件对其内容进行修改
【5】 lib 文件夹中存放有 standard cell 的工艺库文件(如 silterra18)Foundry 工艺库中拷贝
【6】 tf 文件夹中存放有设计工艺库的技术文件 (如 silterra18_*lm.tf)Foundry 工艺库中拷贝
【7】 script 为了布局布线修改方便常会将运行的 Astro 命令导出到相应的脚本文件中,CTS 前布局一次为一
个脚本, CTS 后优化布局为一个脚本,最后布线以及 check 为一个脚本,存放在 script 文件夹中分别 命名为 pnr_1.scm pnr_2.scm pnr_3.scm
【8】 其余的文件夹分别存放输出的报告和网表以及 gds 文件,其中 log 文件夹中为 Astro 运行报告,rpt 中为
Astro CTS clock skew 分析报告,out 中为 gds 文件和布局布线后网表,以及 Wire RC 参数提取文件
*spef
Antenna_rules 文件是截取 Antenna_rules_*lm.clf 文件的一部分一般只截取 dbAddAntennaLayerRule 的定义 设计 中如下截取:
define
_libId (dbGetCurrentLibId) _libId 4 2 0 0
dbDefineAntennaRule
dbAddAntennaLayerRule _libId 4 "METAL1" 400 '(0.203 0 400.00 2200) dbAddAntennaLayerRule _libId 4 "METAL2" 400 '(0.203 0 400.00 2200) dbAddAntennaLayerRule _libId 4 "METAL3" 400 '(0.203 0 400.00 2200) dbAddAntennaLayerRule _libId 4 "METAL4" 400 '(0.203 0 400.00 2200) dbAddAntennaLayerRule _libId 4 "METAL5" 400 '(0.203 0 400.00 2200) dbAddAntennaLayerRule _libId 4 "METAL6" 400 '(0.203 0 8000.00 30000) dbAddAntennaLayerRule _libId 4 "VIA12" dbAddAntennaLayerRule _libId 4 "VIA23" dbAddAntennaLayerRule _libId 4 "VIA34" dbAddAntennaLayerRule _libId 4 "VIA45" dbAddAntennaLayerRule _libId 4 "VIA56"
20 '(0.203 0 20 '(0.203 0 20 '(0.203 0 20 '(0.203 0 20 '(0.203 0
83.33 83.33 83.33 83.33 83.33
75) 75) 75) 75) 75)
数字后端软件Astro的使用方法
dbDefine 文件是为了 Astro 做时钟树综合优化时作准备的,在 CTS 之前需调用该文件,Astro 做时钟树时只对它 默认的 DFF 的时钟管脚做相关处理一般是定义了 clock 但我们设计需要对一些多扇出的复位信号 scan 链信号做处 理就需要专门声明下这也是时钟树需要处理的信号,就在 dbDefine 做这样的声明,一般有同步复位、异步复 位、scan_enable 以及宏单元的 clk 信号,异步复位最常用 需要做 scan 链 才定义 SE,有 Memory 时才定义 clk, 具体设置如下:
(let* (
(selectedlist (geGetSelectedSet (getEditWindow))) )
(for-each (lambda (x) (let* (
(instName (dbFetchObjectField (geGetEditCell) x "name"))
)
(dbDefineSyncPin (geGetEditCell) instName '( ("RN" "nonInvertRise" 0) ("RN" "invertRise" 0)) ) (dbDefineSyncPin (geGetEditCell) instName '( ("SN" "nonInvertRise" 0) ("SN" "invertRise" 0)) ) ;; (dbDefineSyncPin (geGetEditCell) instName '( ("SE" "nonInvertRise" 0) ("SE" "invertRise" 0)) )
;; (dbDefineSyncPin (geGetEditCell) instName '( ("CLK" "nonInvertRise" 0) ("CLK" "invertRise" 0)) )
) )
selectedlist
)
)
tdf 文件定义相关的 PAD 或者是 PIN 的位置信息,坐标描述方法基本一致设计中根据实际的需要略有不同如
下:
tdfPurgePadConstr define define define
step1 offset off
5 50 0
39 0 0 "right" 39 0 0 "right" 39 0 0 "right" 39 0 0 "right"
0 (set! offset(+ step1 offset)) 0 (set! offset(+ step1 offset)) 0 (set! offset(+ step1 offset)) 0 (set! offset(+ step1 offset))
pin "clk" pin "rstn" pin "scan_mode" pin "mic_fm_sel"
在 Astro 布局布线时需要根据 DC 综合时设置生成的时序约束文件对相关 cel(l standard cell)进行布局优化, 通常在 Place 设置时考虑 congestion 和 time 因素,通常考虑关键性的时序路径,满足设计的时序约束条件,而对 于非关键路径的 cell 可以放置的远离些,增加延时,如果将非关键路径的 cell 布局在 关键时序路径布局区域就 会对其产生影响,使其布线拥塞增加布线难度。
数字后端软件Astro的使用方法
而对于 DC 生成的时序约束文件并不是直接就是导入使用,DC 中估算连线延时采用 wire_load_model 的方
法估算,但在 Astro 中我们实际对 cell 进行布线直接提取 wire 连线的 RC 信息计算 net delay 更为精确接近实际设 计,同时对各个时钟的 uncertainty 的定义也不需要了,CTS 后各个时钟负载和延时可以达到最佳平衡 uncertainty 只由 jitter 引起,虽然还是会存在 skew (几乎可以忽略),latency 主要有 2 部分组成 source_latency 和 network_latency 一般设计只考虑 network_latency ,Astro 不需要设置 network_latency ,CTS 后各个 DFF 的 network_latency 的基本平衡了。具体脚本如下:
#!/bin/bash
#echo "Enter the file name(<file>.sdc)" filename = ADPCM_Encoder
run:
#read $(filename)
cp $(filename).sdc $(filename).sdc.bak
echo ":%s/set_wire_load_model/#set_wire_load_model/g" > $(filename).vimrc echo ":%s/-dont_scale//g"
>> $(filename).vimrc
echo ":%s/set_is …… 此处隐藏:11451字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [幼儿教育]【完整版】2019-2025年中国药物发现外
- [幼儿教育]2018-2019年初中信息技术广东初一竞赛
- [幼儿教育]最新外研版(一起)小学英语五年级上册《
- [幼儿教育]农业推广与创新管理专业 -中农大毕业论
- [幼儿教育]2017-2022年中国更年期用药行业市场深
- [幼儿教育]数学1.1.2第1课时棱柱、棱锥和棱台的结
- [幼儿教育]二年级群文阅读课例欣赏
- [幼儿教育]2010-2015年中国保险行业投资分析及深
- [幼儿教育]厄运打不垮的信念第一课时
- [幼儿教育]巧用文本,让表达在言语中绽放论文
- [幼儿教育]中学生百科知识竞赛题及答案
- [幼儿教育]八大菜系英文简介
- [幼儿教育]中国男装牛仔裤市场发展研究及投资前景
- [幼儿教育]远程数字视频监控系统在银行的应用
- [幼儿教育]光纤光缆制造工艺及设备
- [幼儿教育]国家安全法试题及答案
- [幼儿教育]2011高中提前招生及竞赛试题(物理卷1)
- [幼儿教育]宁夏第三产业房地产业、科学研究和技术
- [幼儿教育]中兴通讯 ME3000模块用户硬件设计手册_
- [幼儿教育]紫外线灯管的辐照强度问题
- 苏联东欧剧变的原因和历史教训浅析
- 人工智能导论实验报告(学生)
- 思科ITE章考试原题及答案
- 《学习雷锋好榜样》主题班会教案
- 加油站建设项目安全评价报告
- 剖析社保卡管理系统
- 2017-2018年影视剧新媒体版权运营行业
- 2017-2018学年四川省成都市高一上学期
- 2019最新高中数学 第三章 3.2.1 几类不
- 2011-2015年中国基酸市场调查及行业前
- 人教版新课标选修八Unit 1 课件Warming
- 郭溪燎原小学辅导学生记录表
- 教师资格证统考综合素质写作秘笈
- 国外校园绿色建筑研究方向与建设实践
- 15.1 动物运动的方式 课件(北师大版八
- 民用飞机空调系统
- 长安侠文化传统与唐诗的任侠主题
- 《中国近现代史纲要》名词解释
- 11金本《保险学概论》复习资料
- 民用建筑机电安装工程专业施工图图纸会




