数字后端流程二【Astro】

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

dbAddAntennaLayerRule_libId 4 "VIA12"20 '(0.203 083.3375) dbAddAntennaLayerRule_libId 4 "VIA23"20 '(0.203 083.3375) dbAddAntennaLayerRule_libId 4 "VIA34"20 '(0.203 083.3375) dbAddAntennaLayerRule_libId 4 "VIA45"20 '(0.203 083.3375) dbAddAntennaLayerRule_libId 4 "VIA56"20 '(0.203 083.3375)Astro 笔记Y uzh 2009-11-13

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)

dbDefineAntennaRule _libId 4 2 0 0

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)

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 step15

define offset50

define off0

pin "clk"39 0 0"right"0(set! offset(+ step1 offset))

pin "rstn"39 0 0"right"0(set! offset(+ step1 offset))

pin "scan_mode"39 0 0"right"0(set! offset(+ step1 offset))

pin "mic_fm_sel" 39 0 0 "right" 0 (set! offset(+ step1 offset))

在Astro 布局布线时需要根据DC 综合时设置生成的时序约束文件对相关cel(l standard cell)进行布局优化,通常在Place 设置时考虑congestion 和time 因素,通常考虑关键性的时序路径,满足设计的时序约束条件,而对于非关键路径的cell 可以放置的远离些,增加延时,如果将非关键路径的cell 布局在关键时序路径布局区域就会对其产生影响,使其布线拥塞增加布线难度。

相关文档
最新文档