1、数字后端设计,Reporter: Zizhu.Feng: Date: 2013.06.08,三个问题,一 什么是数字后端?二 数字后端有哪些步骤?三 数字和模拟电路怎样连接?,什么是数字后端?,编写 HDL 代码,功能仿真,形式验证,静态时序分析,逻辑综合,布局规划,布局,布线,静态时序分析,时钟树插入,数据导出,前端,后端,怎样设计一个1位全加器?,怎样设计一个1位全加器?,编写 HDL 代码,功能仿真Modelsim,逻辑综合DC,形式验证formality,静态时序分析pt,前端,什么是数字后端?,门级的符号,工艺库参数,版图设计,布局规划,布局,时钟树插入,布线,静态时序分析,数据导出
2、,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“ 以后再使用
3、这个路径的时候可以用 $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“(
4、$ana_reflib $io_reflib) (加入三个参考库),formButton Verilog To Cell globalNetOptions“(定义cell中的三组全局电源/地),axgLoadTDF(加载tdf文件,自己定义,指导pad摆放),astMarkHierAsPreserved(保留层次化信息),数字后端有哪些步骤?,1 Setup,3 执行结束后版图的效果?,由于只进行了系统的设置,加载一些文件,setup后在单元中只能看到一个模拟的marco,数字后端有哪些步骤?,2 Floorplan,1 这一步主要做什么?,正式布局前执行底盘的规划,划定建筑面积铺设外围供电网
5、络,数字后端有哪些步骤?,2 Floorplan,axgPlanner(选择核的尺寸、标准单元的排列方式),axgAddPadFiller(Pad之间的填充物,形成Pad供电回路),axgCreateRectangularRings(布核的电源环和地环 横纵两层不同金属、设定宽度 Offset absolute 指电源对核偏移),axgCreateStraps(给电路中单元提供稳定电源 Marco截断),aprPGConnect(建立标准单元与电源/地间的物理连接 非实际连接 每次修改电路要做一次物理连接),2 主要命令有什么?,数字后端有哪些步骤?,dbSetCellInstPlacemen
6、t geGetEditCell ana_u1 0 no lr 2200 420“(在核中放入模拟的marco lr 右下角为坐标零点),axgCreateRectangularRings(布模拟电源/地环),aprPGConnect,axgAddRouteGuide(指导工具布线的范围 共两次 不要在marco内布线 不要在第六层金属布线 手动画),axgPrerouteInstances(连接电源/地环到pad pin到电源/地环),axgVeriPGConn(检查电源/地引脚的连接 报告),2 Floorplan,数字后端有哪些步骤?,2 Floorplan,3 执行结束后版图的效果?,看
7、到标准单元了吗?,数字后端有哪些步骤?,3 Timing,为设计添加时序约束,建筑国标供水管道的设计优化措施,数字后端有哪些步骤?,3 Timing,2 主要命令有什么?,ataLoadSDC(加载sdc文件 由DC生成 提供布局布线指导 如:时钟的要求),atTimingSetup(设置时序的要求 由于没有做时钟树插入,仍用理想时钟 ideal clock 优化的方案 寄生参数 单元延迟和线网延迟模型 串扰模型),数字后端有哪些步骤?,3 Timing,3 执行结束后版图的效果?,只设置了参数,对cell的布局没有影响,数字后端有哪些步骤?,4 Place,在核中放置标准单元,1 这一步主要
8、做什么?,开始盖房子在楼道里铺电网给每个房间供电,数字后端有哪些步骤?,4 Place,axgAddBlockage(给模拟marco加blockage,不放标准单元),2 主要命令有什么?,astPlaceOptions(place之前的一些基本设置,优化方式 congestion: 考虑线路拥堵 timing:满足时序),astPrePS(做preplace ),aprPGConnect,axgPrerouteStandardCells(创建核中为数字标准单元供电的电源/地线),astAutoPlace(place分三步 preplace inplace postplace postpla
9、ce 分 post place 和 post CTS post CTS在CTS一步做),axgDisplayPLCongestionMap(做布线拥堵情况的评估),数字后端有哪些步骤?,4 Place,3 执行结束后版图的效果?,每一步place标准单元的分布都会进行优化,排布位置发生改变,数字后端有哪些步骤?,5 CTS,时钟树的插入,1 这一步主要做什么?,供水管道的中继装置,数字后端有哪些步骤?,5 CTS,2 主要命令有什么?,astClockOptions(对时钟树的插入进行基本设置),astClockOptionsformButton Clock Common Options Co
10、nstraintSubForm“(设置时钟树插入的约束条件),astCTS(开始进行时钟树的综合与优化),atTimingSetup(在timing中已经做过 改为实际的传播时钟 做完时钟树的综合与优化后必须重新做place 用post CTS ),astAutoPlace(做post CTS),aprPGConnect,数字后端有哪些步骤?,5 CTS,3 执行结束后版图的效果?,CTS只是插入buffer及优化并不会进行布线,数字后端有哪些步骤?,6 Route,全局布线详细布线优化,1 这一步主要做什么?,把各个中继装置需要连接的部分连接起来,数字后端有哪些步骤?,axgSetRoute
11、Options(布线前的基本设置),2 主要命令有什么?,6 Route,axgRouteGroup(all clock nets 先布时钟网络),axgAutoRoute(布标准单元的连接网络),axgSearchRepair(执行检查和修改 规定次数 不修改输入0),atTimingSetup(xtalk 设置串扰模型 medium effort 改为 low effort ?),astPostRouteOpt(后期的布线优化 可以提高布线的质量),数字后端有哪些步骤?,6 Route,3 执行结束后版图的效果?,放大可以看到布线,数字后端有哪些步骤?,7 DFM,修天线效应,1 这一步主
12、要做什么?,加避雷针,芯片生产过程中,暴露的金属线或多晶硅等导体就像一根根天线,会收集电荷,导致电位升高天线越长,电压越高。若导体碰巧只接了MOS的栅,高电压就可能把薄的栅氧化层击穿,使电路失效消除天线效应方法:1 跳线:断开存在天线效应金属层,通过通孔连接到其它层2 添加天线器件:加反偏二极管,形成电荷泄放回路3 插入缓冲器: 切断长线,数字后端有哪些步骤?,2 主要命令有什么?,7 DFM,auLoadCLF(加载clf文件 工艺库提供 含diode等参数指导修天线效应),axReportAntennaRatio geGetEditCell(执行天线效应的检查,看是否有violation)
13、,axgSetHPORouteOptions(设置atenna检查方法),axgSearchRepair (开始修天线效应),aprPGConnect,axgSearchRepair,axgAddFillerCell(用filler cell填充行之间的开放区域,保证所有电源网络都已经连接),axgPrerouteStandardCells(place中已经做过给数字标准单元供电的横向电源/地线会布满整个核),geNewFillNG(填充标准单元内部金属密度, 使标准单元内部金属密度一致,提高良率),axgSearchRepair,数字后端有哪些步骤?,3 执行结束后版图的效果?,7 DFM,
14、本步之后执行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)摆放的方向:
15、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,正常工作时,由于数字地与模拟地间没有压差或很微小,两个二极管的正向导通电压足够将数字电路与模拟电路隔离,防止互相干扰;,泄放电荷时,
16、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,