Upload
ulla-burt
View
77
Download
2
Embed Size (px)
DESCRIPTION
数字后端设计. Reporter: Zizhu.Feng : Date: 2013.06.08. 一 什么是数字后端? 二 数字后端有哪些步骤? 三 数字和模拟电路怎样连接?. 三个问题. 什么是数字后端?. 编写 HDL 代码. 布局规划. 功能仿真. 布局. 前端. 后端. 逻辑综合. 时钟树插入. 形式验证. 布线. 静态时序分析. 静态时序分析. 数据导出. 怎样设计一个 1 位全加器?. 怎样设计一个 1 位全加器?. 前端. 静态时序分析 pt. 编写 HDL 代码. 逻辑综合 DC. - PowerPoint PPT Presentation
Citation preview
数字后端设计
Reporter: Zizhu.Feng: Date: 2013.06.08
三个问题
•
一
什么是数字后端?
•
二
数字后端有哪些步骤?
•
三
数字和模拟电路怎样连接?
什么是数字后端?编写 HDL 代
码
功能仿真
形式验证
静态时序分析
逻辑综合
布局规划
布局
布线
静态时序分析
时钟树插入
数据导出
前端 后端
怎样设计一个 1 位全加器?
怎样设计一个 1 位全加器?
编写 HDL 代码
功能仿真Modelsim
逻辑综合DC
形式验证formality
静态时序分析pt
前端
什么是数字后端?门级的符号
工艺库参数
版图设计
布局规划 布局 时钟树插入 布线 静态时序分析 数据导出
Astro
gds File
后端
数字后端有哪些步骤?启动 Astro
Linux Open in terminal Astro&
两种操作方法
使用图形界面的菜单进行设置
在下方选择 TCL模式执行脚本
数字后端有哪些步骤?1 Setup
1 这一步主要做什么?
准备工作:
建立一个标准单元库准备数据文件系统设置
圈工地建筑材料图纸
数字后端有哪些步骤?1 Setup
source ./scripts/define.tcl(调用 define 文件 ,文件中定义了库、单元、金属层以及一些路径的名称 例如: set netlist “../out/compile1_da_top.v“ 以后再使用这个路径的时候可以用 $netlist 来代替)
dbSetGlobalPowerNet "VDD“dbSetGlobalGroundNet "VSS“(定义电源环和地环端口,包括 VDD,VSS,AVDD,AVSS,DVDD,DVSS )
2 主要命令有什么?
数字后端有哪些步骤?1 Setup
auVerilogToCellsetFormField “Verilog To Cell” “Library Name“ $libname(建库存放单元的数据,导入网表文件,建立版图单元,加载一个 .tf 文件定义布线的规则)
formButton "Verilog To Cell" "refLibOptions“($ana_reflib $io_reflib) (加入三个参考库)
formButton "Verilog To Cell" "globalNetOptions“(定义 cell 中的三组全局电源 / 地)
axgLoadTDF (加载 tdf 文件,自己定义,指导 pad 摆放)astMarkHierAsPreserved (保留层次化信息)
数字后端有哪些步骤?1 Setup
3 执行结束后版图的效果?
由于只进行了系统的设置,加载一些文件, setup 后在单元中只能看到一个模拟的 marco
数字后端有哪些步骤?2 Floorplan
1 这一步主要做什么?
正式布局前执行底盘的规划
划定建筑面积铺设外围供电网络
数字后端有哪些步骤?2 Floorplan
axgPlanner(选择核的尺寸、标准单元的排列方式)
axgAddPadFiller( Pad 之间的填充物,形成 Pad 供电回路)axgCreateRectangularRings(布核的电源环和地环 横纵两层不同金属、设定宽度 Offset absolute 指电源对核偏移)
axgCreateStraps(给电路中单元提供稳定电源 Marco 截断)
aprPGConnect(建立标准单元与电源 / 地间的物理连接 非实际连接 每次修改电路要做一次物理连接)
2 主要命令有什么?
数字后端有哪些步骤?
dbSetCellInstPlacement [geGetEditCell] "ana_u1" "0" "no" "lr" "2200 420“(在核中放入模拟的 marco lr 右下角为坐标零点)
axgCreateRectangularRings(布模拟电源 / 地环)
aprPGConnect
axgAddRouteGuide(指导工具布线的范围 共两次 不要在 marco 内布线 不要在第六层金属布线 手动画)
axgPrerouteInstances(连接电源 / 地环到 pad pin 到电源 / 地环)
axgVeriPGConn(检查电源 / 地引脚的连接 报告)
2 Floorplan
数字后端有哪些步骤?2 Floorplan
3 执行结束后版图的效果?
看到标准单元了吗?
数字后端有哪些步骤?3 Timing
为设计添加时序约束
建筑国标供水管道的设计优化措施
数字后端有哪些步骤?3 Timing
2 主要命令有什么?
ataLoadSDC(加载 sdc 文件 由 DC 生成 提供布局布线指导 如:时钟的要求)
atTimingSetup(设置时序的要求 由于没有做时钟树插入, 仍用理想时钟 ideal clock 优化的方案 寄生参数 单元延迟和线网 延迟模型 串扰模型)
数字后端有哪些步骤?3 Timing
3 执行结束后版图的效果?
只设置了参数,对cell 的布局没有影响
数字后端有哪些步骤?4 Place
在核中放置标准单元
1 这一步主要做什么?
开始盖房子在楼道里铺电网给每个房间供电
数字后端有哪些步骤?4 Place
axgAddBlockage(给模拟 marco 加 blockage ,不放标准单元)
2 主要命令有什么?
astPlaceOptions( place 之前的一些 基本设置,优化方式 congestion: 考虑线路拥堵 timing:满足时序)astPrePS(做 preplace )aprPGConnectaxgPrerouteStandardCells(创建核中为数字标准单元供电的电源 / 地线)
astAutoPlace ( place 分三步 preplace inplace postplace postplace 分 post place 和 post CTS post CTS 在 CTS 一步做)
axgDisplayPLCongestionMap(做布线拥堵情况的评估)
数字后端有哪些步骤?4 Place
3 执行结束后版图的效果?
每一步 place标准单元的分布都会进行优化,排布位置发生改变
数字后端有哪些步骤?5 CTS
时钟树的插入
1 这一步主要做什么?
供水管道的中继装置
数字后端有哪些步骤?5 CTS
2 主要命令有什么?astClockOptions(对时钟树的插入进行基本设置)
astClockOptionsformButton "Clock Common Options" "ConstraintSubForm“(设置时钟树插入的约束条件)
astCTS(开始进行时钟树的综合与优化)
atTimingSetup(在 timing 中已经做过 改为实际的传播时钟 做完时钟树的综合与优化后必须重新做 place 用 post CTS )astAutoPlace(做 post CTS )
aprPGConnect
数字后端有哪些步骤?5 CTS
3 执行结束后版图的效果?
CTS 只是插入buffer 及优化并不会进行布线
数字后端有哪些步骤?6 Route
全局布线详细布线优化
1 这一步主要做什么?
把各个中 继装置需要连接的 部分连接 起来
数字后端有哪些步骤?
axgSetRouteOptions(布线前的基本设置)
2 主要命令有什么?
6 Route
axgRouteGroup( all clock nets 先布时钟网络)axgAutoRoute( 布标准单元的连接网络 )
axgSearchRepair(执行检查和修改 规定次数 不修改输入 0 )
atTimingSetup( xtalk 设置串扰模型 medium effort 改为 low effort ???)
astPostRouteOpt(后期的布线优化 可以提高布线的质量)
数字后端有哪些步骤?6 Route
3 执行结束后版图的效果?
放大可以看到布线
数字后端有哪些步骤?7 DFM
修天线效应
1 这一步主要做什么?
加避雷针
芯片生产过程中,暴露的金属线或多晶硅等导体就像一根根天线,会收集电荷,导致电位 升高天线越长,电压越高。若导体碰巧只接了 MOS 的栅,高电压就可能把薄的栅氧化层击穿,使电路失效
消除天线效应方法:
1 跳线:断开存在天线效应金属层,通过通孔连接到 其它层2 添加天线器件:加反偏二极管,形成电荷泄放回路3 插入缓冲器: 切断长线
数字后端有哪些步骤?
2 主要命令有什么?
7 DFM
auLoadCLF(加载 clf 文件 工艺库提供 含 diode等参数指导修天线效应)axReportAntennaRatio [geGetEditCell](执行天线效应的检查,看是否有 violation )axgSetHPORouteOptions(设置 atenna 检查方法)axgSearchRepair (开始修天线效应)aprPGConnectaxgSearchRepairaxgAddFillerCell(用 filler cell 填充行之间的开放区域,保证所有电源网络都已经连接)axgPrerouteStandardCells( place 中已经做过给数字标准单元供电的横 向电源 / 地线会布满整个核)geNewFillNG(填充标准单元内部金属密度, 使标准单元内部金属密度一致,提高良率)
axgSearchRepair
数字后端有哪些步骤?
3 执行结束后版图的效果?
7 DFM
本步之后执行Output将版图、新的netlist 、寄生参数等信息导出
额外的东西:NO. 1 tdf 文件怎么设置?
问题: tdf 文件是什么来 着?定义 Pad 名称、 Pad 尺寸、提供 Pad 的摆放位置定义一个 Pad (一般定义电源 / 地以及 Pbreak ):
insertPad “VDD” “PVDD” “u_VDD” “VDD”VDD : 连接到 Astro 定义的 Cell 中 GLOBALNET 电源环的名称PVDD :库中所调用的 pad 名称u_VDD: 实例化的电源环的名称VDD : 在相应的 PAD 中连接到 VDD还是 VSS ( Pad也有 VDD 和 VSS )
Corner pad (放在四个角的 pad )摆放的方向:Lower left corner (ll): bottomLower right corner (lr): rightUpper right corner (ur): topUpper left corner (ul): left
Power cut: 使用 Pbreak Pad
VDD DVDD DVSS 两个端口之间内部是断 开的VSS 两个端口用 背靠背二极管连接
Pbreak 中间夹的为给模拟电路供电的 Pad ,用 Pbreak将数字 Pad 与这一部分断开对于 VSS ,正常工作时,由于数字地与模拟地间 没有压差或很微小,两个二极管的正向导通电压足够将数字电路与模拟电路 隔离,防止互相干扰;泄放电荷时, Pbreak 的 VSS 两端压差增大,二极管正向导通,无论在数字电路或模拟电路中出 现的静电都可以使整个 VSS 形成一个放电回路
ESD 静电保 护电路:
正常情况下,为左面电路供电的电 压不能使右面二极管击穿;有大电压时,右面二极管会击穿短路, 将电荷泄放到地中,保护左面电路
NO. 1 tdf 文件怎么设置?
NO. 2 怎样手动布线?
删除一根线: route utility – delete route by name – 填入要删除的线网名称
重新添加已删除的线网(设置新的属性)定义一个 ruleRoute setup – define var route ruleRule name 可以任意命名,可以选择在每一层金属上布线的宽度等要求Route setup – set net constraintsNet name 为刚才删除的线网名称Assign 中选择 var route rule 填入刚才的 rule name
Route – detail route search & repair就可以修复原来的线网,新的线网拥有新的布线规则
完参考资料:
高级 ASIC芯片综合 Himanshu BhatnagarAstro user guide iogp_il_csm018icEDA 工程实践 曾繁泰等著Astro教学 刘长龙师兄
Thank you for listening……