ICC图文流程——(六)可造性设计Chip finishing
ICC可造性设计
chip finishing阶段的主要内容是检查设计,以及为提高良率(yield)和解决物理规则违规做的工作。主要包括以下内容:
这一步通常被成为DFM(Design For Manufacturing)可造性设计
良率指的是:有些芯片在wafer上制造出来就有缺陷,有的芯片能正常工作而有些不能,正常的芯片占总芯片的比例即为良率。
·Wire Spreading(连线拓展)
也成为 critical area analysis关键区域分析
制造过程中可能会出现随机的颗粒缺陷导致短路或开路
•最小间距的电线最容易短路 •最小宽度的电线最容易开路
两条过于靠近的金属线之间如果有导电性颗粒在制造过程中落入二者之间,可能导致短路,解决办法为加大线间距(wire spread)
一条过于狭窄的金属线如果在制造过程中落入不导电的微粒,那么就会导致断路问题,解决办法是增加线宽(wire widening)。
通过GUI界面可以查看critical area的map图 进行关键面积分析
GUI: Finishing -> Short Critical Area Map and Finishing -> Open Critical Area Map
icc_shell>report_critical_area -fault_type short/open 报告的内容将会存在output_heatmap文件中。
使用命令spread wires来减少短路的关键区域,widen wires来减少开路关键区域。
icc_shell>spread_zrt_wires /widen_zrt_wires
检查是否有DRC、LVS及其他违规
icc_shell>verify_zrt_route
verify_lvs
report_constraint -all
·Redundant via insertion (插入冗余通孔)
设计中,两个不同金属层(metal)的金属线通过一个via孔相连,如果这个via孔在制造过程中制造失败时,将导致层间互连失败。在制造过程中,掉落的微尘或电迁移(Electromigration)效应皆可使连线通孔via在长期操作下产生空洞(void)而造成断线,是产品良率降低,如图所示。
可以通过增加via孔的数量来解决该问题。Via孔的电阻率大于金属线,增加并联的via孔可以减少电阻,减少延时,改善时序。
命令icc_shell>report_design_physical -route 可以追踪设计中的双孔步通率:
生成将在冗余过孔插入期间自动使用的过孔映射表:icc_shell>insert_zrt_redundant_vias -list_only
意思是说,把一个via1,换成一个1x2 的via1的阵列,也就是double via insertion
使用默认的中等强度进行插入冗余过孔: icc_shell>insert_zrt_redundant_vias -effort medium
·Fill Cell insertion(插入填充单元)
填充单元是为了填满Core区域中未摆放std cell的row/site,构建连续完整的N well/P well。可以减小动态电压降,同时避免出现N well间距的违反。
首先添加带有金属的填充单元(去耦电容DeCAP)
为了进行DRC检查,在插入金属填充单元之前,应完成标准电池PG rails的设计
icc_shell>insert_stdcell_filler -cell_with_metal "fillCap64 fillCap32" \
-connect_to_power VDD -connect_to_ground VSS -between_std_cells_only
带有金属的填充单元尺寸较大,有些地方可能插不进去,需要使用尺寸相对较小不含金属的填充单元。
icc_shell>insert__stdcell_filler -cell_without_metal nfilll6 ... Fill" \
-connect_to_power VDD -connect_to_ground VSS -between std cells only
GUI>Finishing>Insert Standard Cell Filler
·Metal fill insertion
金属线的形成通过刻蚀工艺完成,稀疏的金属线比紧密的金属线更容易被过刻蚀(Metal over-etching),所以对最小金属密度有要求。
大量的etchant(刻蚀剂)与少量的金属将导致金属过刻蚀。解决办法:用Metal fill填充空白区域。如下图红色矩形区域:
icc_shell>insert_metal_filler -routing_space 2 -timing_driven
GUI>Finishing>Insert Metal Filler
确保在本阶段添加的单元和所有电源地的pin都连接到电源的网络(包括之前的Fill Cell insertion):
icc_shell>derive_pg_connection -power_net VDD -power_pin VDD -ground_net VSS -ground_pin VSS
derive_pg_connection -power_net VDD -ground_net VSS -tie
·Antenna fixing(天线效应)
这一点的内容在Route阶段有提及,现在介绍一下其内容。
芯片中,每一条长的金属线像是一根“天线”,收集游离的电荷,天线越长,收集的电荷越多,当电荷足够多时形成放电。而IC制造过程中常用的等离子刻蚀(plasma etching)技术将会产生大量的游离电荷。这种工艺带来的影响无法消除,却可以尽量减小。
金属线收集电荷导致与其相连的栅电位升高,最终导致强电场击穿栅氧。称为天线效应。
(process antenna effect,PAE)
通常用‘antenna ratio’来衡量一颗芯片会发生天线效应的几率。
‘antenna ratio’:构成“天线”的metal的面积与相连的gate oxide的面积的比率,比率越大越容易发生天线效应。
关于.clf和.tcl文件的对照在Route阶段已经介绍。
天线文件中定义了可接受的电线长度,工具会根据定义自动进行优化修复。
icc_shell>source -echo scripts/cb13_6m_antenna.tcl 首先读入天线文件
set_route_zrt_detail_options -insert_diodes_during_routing true
route_zrt_detail -incremental true 进行天线效应的修复
icc_sell>verify_zrt_route 查看是否还有天线效应的违例
常用的天线效应解决方法:跳线法、添加反偏二极管。
·跳线法:天线效应只发生在芯片制造过程中,而不是使用过程中。当一条金属线过长而导致天线效应,跳线法断开这条线,通过via孔连接到上一层金属,再从上一层金属通过via孔连下来。不同层金属是不同时形成的,当前金属层对栅极的天线效应时,上一层金属还不存在,通过跳线,减小存在天线效应的导体面积来消除天线效应。
这种方法通过改变金属布线的层次来解决天线效应,但是同时增加了通孔,由于通孔的电阻很大,会直接影响到芯片的时序和串扰问题,所以在使用此方法时要严格控制布线层次变化和通孔的数量。
向上跳线法用的较多,现代的多层金属布线工艺,在低层金属里出现PAE效应,一般都可采用向上跳线的方法消除。
·但当最高层出现天线效应时,则需要另一种消除天线效应的方法,添加反偏二极管。反偏二极管的阻抗小于栅氧绝缘层阻抗,反偏二极管会泻放掉“天线”上的电荷,使其不足以收集到能够击穿栅氧的电荷。
·当两种方法都不能消除长走线上的PAE,可通过插入buffer缓冲器,切断长线来消除天线效应,同时为信号增强驱动能力。
ICC中的DRC LVS 天线效应违规都不是sign off级的,需要最终在calibre中验证修复。
保存设计,写出GDSII文件进行后续物理验证
icc_shell>write_stream -cells $cell_name xxx.gdsii
添加:
ICC导出GDS 导入virtuoso后没有pin/port的信息和名字
解决方案:
在ICC输出GDS时,先对write_stream进行设置
需要对输出的GDS进行设置,下面两句可以生成引脚TXT和引脚金属层:
set_write_stream_options -output_pin text
set_write_stream_options -output_pin geometry
再生成GDS文件:
write_stream -format gds -lib_name lib_name -cells design_cel design.gds
ICC图文流程——(六)可造性设计Chip finishing相关推荐
- ICC图文流程——(二)布局规划Floorplan
ICC布局规划 Floorplan是ICC设计流程中非常重要的一环,Floorplan的好坏直接影响到设计的timing和布线布通率, 很多时候流程中反复主要发生在这步. 在ICC student l ...
- ICC图文流程——(三)布局Placement
ICC布局阶段 在布局规划阶段完成了芯片的整体规划,而布局阶段主要是软件自动的标准单元的摆放. 在布局开始之前,需要对设计进行确认和检查. 主要确认内容包括: ·检查设计中的所有macro是否设置为d ...
- 深入探讨运维驱动的可监控性设计
"外部质量验收驱动技术债务消除"的理念: 技术债务的形成往往是由于赶进度忽略了非功能质量特性而导致的,由于内部质量的不佳(设计或代码质量不高)导致外部质量的低下. 传统IT领域通常 ...
- 信息化教学大赛教案LINUX,【全国中职信息化教学大赛参赛攻略六】信息化教学设计参考模板...
安徽省教科院职教室 龚双江 模板一 1.教案标题 2.课程概述(含课程性质.教学内容分析.学生基本情况分析等) 3.任务或问题 4.学习目标(教学目标或学习成果) 5.教学计划时间 6.教学所需材料 ...
- 社交网络的致瘾性设计如何夺走我们的时间?
Hello,大家好! 这里是行上行下,我是隔壁壹脑云的Ting Zhang~ 你是否经常在发完朋友圈.动态后刷新界面,看看多少人点赞? 你是否经常被淘宝.B站.美团首页的内容推荐吸引并点进去查看? 本 ...
- java寂静岭 攻略,GBA版《寂静岭》HARRY篇图文流程攻略
"Play Novel: Silent Hill"是KONAMI于2001年3月21日在GBA上推出的一款文字冒险游戏,剧情内容取自同社的恐怖冒险游戏--Silent Hill(& ...
- 大中台的黄粱一梦和复用性设计的繁荣盛世
K8s已经成为一线大厂分布式平台的标配技术.你是不是还在惆怅怎么掌握它?来这里,大型互联网公司一线工程师亲授,不来虚的,直接上手实战,3天时间带你搭建K8s平台,快速学会K8s,点击下方图片可了解培训 ...
- (六)PetShop之表示层设计
本文转自:张逸:晴窗笔记 http://www.cnblogs.com/wayfarer/archive/2006/11/11/557933.html <解剖PetShop>系列之六 六 ...
- Activity启动流程(六)注册目标Activity进程到system_server进程以及创建目标Activity进程Application
注册Activity应用进程到system_server以及创建Activity应用进程Application Android四大组件源码实现详解系列博客目录: Android应用进程创建流程大揭秘 ...
最新文章
- 2020-11-05 关于前端‘古董‘dojo的树结构如何默认展开根节点
- 注册了一个域名WELAI.NET
- C++ Opengl WaveFlag(飘扬的旗帜)源码
- 中国速度之二神山建设(4):全能运维,召之即来,来之即战 | IDCF DevOps案例研究...
- SQL 数据分析常用语句
- linux怎么退出telnet端口,CentOS下怎么退出telnet
- c++学习---继承与派生类
- CUDA入门(六) 异步并行执行解析
- 电脑故障维修判断指导大全
- 技嘉服务器主板是什么型号,技嘉主板小型号字母代表什么意思?
- 程序员不要轻易去上海
- 一年中所有节日的排列顺序_我国一年中的传统节日。(按顺序)
- 读书笔记-深度学习入门之pytorch-第四章(含卷积神经网络实现手写数字识别)(详解)
- 开启微信公众号定位服务器,微信公众号的定位是怎样的?
- 手把手教你通过SpringBoot实现邮箱注册码验证
- linux反复出现文件系统损坏,Linux日常维护之文件系统损坏后的修复
- 用 Python 统计字数
- MySQL DBA的修炼与未来(参考篇)
- 求树的直径的两种方法
- Oracle存储过程基本语法介绍-存储过程