拾陆楼
资深ICer,IC技术圈成员,拾陆楼知识星球与CSDN创作者
展开
-
Calibre 使用合集
calibre 使用方法合集原创 2022-05-28 07:16:54 · 2126 阅读 · 0 评论 -
Calibredrv如何设置字体大小
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-07-31 11:14:22 · 27 阅读 · 0 评论 -
virtuoso:replace cell操作流程
首先,要Edit->Replace,这里Search For和Replace With都要选master,如果选cell那只能执行search操作,后续无法进行replace,另外,还需要注意格式,不同于layout editor的find和replace只添cell name的简单操作,schematic的需要按顺序输入lib_name cell_name symbol。replace好后就要做check&save,与以往的check&save不同,这里要把所有层次都做check&save。原创 2024-07-28 12:47:29 · 33 阅读 · 0 评论 -
virtuoso:layout editor给选中的via array设置成flatten
在virtuoso layout editor中操作版图修drc时,会发现,via array会被保存成一个cell,当需要对这个via array做操作时只能修改它的属性,如果要实现删一个cut的操作就需要用到flat操作。选中via array如上图操作即可,然后就可以删除一个cut。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-07-23 09:38:42 · 32 阅读 · 0 评论 -
Calibre:soft check
soft check检查在lvs检查中属于必看的类型,往往是因为衬底没有硬连接,接pg stripe造成的。1)这是一个power switch,错误的原因是switch的输入power pin没有接stripe。2)另外,最常见的是power rail没打stripe,导致衬底没接电。1)问题在ntap上,也就是着重检查power pin相关的连接。2)坐标,通过坐标能很快定位到具体的instance。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-07-19 15:58:56 · 1102 阅读 · 0 评论 -
virtuoso:Schematic Editor如何find object
这种办法应对大型设计来说速度更快,但仅局限查找在顶层有信号输入输出的instance,我们需要知道inatance有什么特殊的net是接到顶层的,比如一个io/ip/block的pg net或者signal net,在顶层找到它,然后高亮,一层一层的去找,可以能很快找到需要的instance。Edit - Find打开schematic find页面,根据找的内容去设置参数。在schematic中凭肉眼找东西是不现实的,这里提供两种find方式。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-07-19 15:41:59 · 73 阅读 · 0 评论 -
virtuoso:Schematic Editor创建global net
模块的电源地在top层写网表的时候没写出来,重新导入一遍网表转schematic太耗时间,可以在schematic的模块层出pg pin的位置创建global的pg net。点击hide把net name放置到刚画的net上,check&save即可。Default Net Name 使用netname!的形式,例如VDD!我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?Property Name填net name。在pin上拉出net。原创 2024-07-19 15:06:16 · 42 阅读 · 0 评论 -
virtuoso:layout如何做flat修drc
有些drc在virtuoso layout中修更节省时间,比如遇到一些via array需要做删改时,发现工具把via array做成了一个cell,如图。去改cell可能会影响很多via,所以最好的办法是做flat,去调整cut,比如删除。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2024-07-10 09:58:19 · 37 阅读 · 0 评论 -
LVS FILTER UNUSED OPTION
这个n11ll_ckt属于FILL4,这个smic40工艺的fill从命名上看与normal filler无异,然而它确是个decap,需要写到网表里,不然就会报告这个LVS问题。一般后端遇不到这个问题,因为通常是需要写到网表中的decap没有写出来造成的,如下图。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?其中AG对应普通filler,AB对应decap。过滤一些版图与spice网表对不上的器件。原创 2024-07-02 10:14:28 · 219 阅读 · 0 评论 -
v2lvs用法
v:输入pr网表,需要剔除没有mos管结构的普通filler/tap cell/endcap等。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?-o:输入verilog网表转换后的spice网表。原创 2024-05-22 10:20:36 · 326 阅读 · 0 评论 -
大小写不规范引起的LVS问题
DC工具和ICC2写网表时都会给floating pin创建一个 "SYNOPSYS_UNCONNECTED_XX" 名字的net,如果二者不区分大小写时有相同名字出现LVS就会报错。ICC2工具也提供change_name功能,可以把命名风格固定在小写字母加数字的方式。综合网表不规范,大小写混用常导致LVS问题,比如两个端口clk和CLK只有大小写区别,PR工具是可以识别为两个端口的,只不过Calibre LVS默认不区分大小写,会报错。以ICC2为例,结合两种场景,展示不同解决方法。原创 2024-04-22 14:31:04 · 580 阅读 · 0 评论 -
真·DRC SELECT CHECK
以往做Calibre DRC迭代检查时,仅需要检查少数项目通常会用到DRC SELECT CHECK命令,具体用法见上面往期文章链接,图形界面运行时仅仅加上DRC SELECT CHECK仍然会报出很多其他项检查,看log可见rule deck中已经存在很多其他的DRC SELECT CHECK了,这个命令加与不加起不到任何作用,这里提供一种图形界面的操作方式实现真·DRC SELECT CHECK。2)检索DRC SELECT CHECK的项目,打勾,Apply即可;1)取消勾选所有DRC项目;原创 2024-02-19 10:57:23 · 235 阅读 · 0 评论 -
tsmc12:IP 出pin的特殊spacing规则(MX.S.19.VIAX-1)
简单来说,工具认为IP的电压与数字core内不同,而IP 出pin的net spacing rule也更严苛,需要手修。如下所示,把长wire M5挪开。有一类drc rule在pr 绕线阶段看不到,需要做calibre drc检查时才有,比如这次要提到的MX.S.19.VIAX-1。更多学习内容请关注「拾陆楼」知识星球。原创 2024-02-05 10:19:08 · 117 阅读 · 0 评论 -
tsmc12:M0PO max length详解
更多学习内容请关注「拾陆楼」知识星球M0_PO是6T cell boundary上的层次(这一层的规则定义在tf中 M0的maxLengthTH1),不同cell M0PO的长度和断点位置也不相同,在legalize stdcell时会用到2D legalizer命令,工具优化过程中也会自动legalize解决这个问题。原创 2024-02-02 14:09:21 · 196 阅读 · 0 评论 -
tsmc12:宽金属的spacing 规则(M8.S.3)
意思是说,当M8宽度大于4.05且平行长度大于4.05的时候间距要求 大于等于1.35,这里可以把一根宽金属拆成两根宽度是4的窄金属。更多学习内容请关注「拾陆楼」知识星球。原创 2024-02-01 10:41:57 · 128 阅读 · 0 评论 -
tsmc12:via0的spacing问题(Via0.S.1)
12nm有个via0 grid的概念,除了普通fill外,基本都有via0这一层,这一层需要与via0 grid对齐。手动调整cell的位置比较容易出这个drc,比如修m0po max length drc时。解决方法1: 替换EEQV类型cell,这种类型是专门为了修via0 Grid问题存在的。更多学习内容请关注「拾陆楼」知识星球。解决方法2: 翻转或移动。原创 2024-01-31 17:40:05 · 201 阅读 · 0 评论 -
tsmc12: m0po max length问题(H384.M0_PO.L.1)
手动调整可以挪cell,制造上下两个row相对的至少一个site的空间,通过插普通filler来解决,这里需要注意的是,tsmc12有via0的规则,需要让via0落在via0 grid上。在pt eco之后会有一些m0po max length问题出现,大部分问题都可以通过替换decap来解决,少部分由于局部density过高,需要手动调整。更多学习内容请关注「拾陆楼」知识星球。#ICC2中替换decap的参考脚本。原创 2024-01-31 17:18:11 · 150 阅读 · 0 评论 -
tsmc12 OD.L.5 DRC
产生的原因是boundary cell的in corner 类型错误。推荐的incorner类型是Fill4,chip finish阶段容易当普通filler删掉。导致新加的类型不满足要求。更多学习内容请关注「拾陆楼」知识星球。如题,OD .L.5的DRC。原创 2024-01-24 15:38:49 · 125 阅读 · 0 评论 -
ICC2/innovus:hcell文件产生方法
更多学习内容请关注「拾陆楼」知识星球。原创 2024-01-08 10:14:23 · 611 阅读 · 0 评论 -
ndr rule对绕线的影响
clock route一般需要两个routing rule,trunk和leaf,trunk通常用2w2s,leaf通常用default routing rule,也就是不做width和spacing约束,只约束层次,这个项目官方flow里给的leaf routing rule是1w2s,最底层用到M2,此时M2要做power rail且要宽于M1 power rail,M2的利用率低到令人发指,core内的绕线问题便多在M2层上。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-12-29 14:07:52 · 518 阅读 · 0 评论 -
ICC2:illegal dimension route
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?拾陆楼知识星球入口illegal dimension route DRC的违例常出现的先进工艺里,部分层次在水平方向和竖直方向有宽度梯度的要求。如下示例:意思就是竖直方向(yLegalDim)有三个梯度,Dy1 Dy2 Dy3宽度当>Dy3时,就不限制宽度要求了。同理上图示例水平方向(xLegalDim)有四个梯度。当遇到illegal dimension route错误是就是宽度或长度出了问题。原创 2023-12-20 16:27:50 · 382 阅读 · 0 评论 -
ICC2:Less than minimum edge length和Concave convex edge enclosure
1)route后,一些drc出现在via周围,尤其是双倍宽的clock route上,需要换via类型或补全metal。事实上tf里是有合适的via替换的,可以让下方的via保持和wire等宽,这种情况需要检查tf文件中修改后的via有没有设置isDefaultContact为1。2)这种错常出现在power mesh上,尤其是stripe与power rail的via上,原因是power stripe不够长,所以打stripe时要延伸出一段来避免drc。原创 2023-12-20 14:42:17 · 970 阅读 · 0 评论 -
如何理解方块电阻与宽度的关系(RPSQ_VS_SI_WIDTH)
在半导体制造过程中,由于工艺偏差,电阻跟金属线的density是相关的。此时,电阻率是线宽跟线间距的函数。这一关系,在foundry给的工艺文件里都有相应的描述,这些都是在抽RC时需要考虑的因素。Resistivity as a Function of Width and Spacing (Rs = f(W) or rho=f(W,S))我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?单看方块电阻的公式,Rs=电阻率/厚度。以上内容来自陌上风骑驴公众号内容。原创 2023-12-05 15:04:09 · 344 阅读 · 0 评论 -
Virtuoso layout如何改变原点坐标
如下图:通过Edit->Advanced->Move Origin移动原点位置(默认在左下角)。原创 2023-11-26 13:55:47 · 774 阅读 · 0 评论 -
ICC2/innovus merge gds
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-11-15 15:44:17 · 335 阅读 · 0 评论 -
virtuoso如何导出def?
在DEF Out界面,填写def name,library name以及cell name ,cell view既layout,把Output "Floating Shapes" into SPECIAL NETS Section勾上,OK即可。2)在要导出的layout界面选中PAD和prBoundary(shift+左键),快捷键C copy到空cell里,这时需要调整copy过来的object坐标,让两边prBoundary的坐标相同。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-10-13 10:23:12 · 848 阅读 · 0 评论 -
网表导入virtuoso后发现pg pin忘记connect_pg_net/globalNetConnect怎么办?
数模混合项目中经常需要一些需要到virtuoso去连接的线,比如IO上的pg和一些信号线,除了在pr工作中设置skip route之外还需要做好net的赋值,告诉工具虽然我没在物理上有连接,但是实际上应该连什么net,这部分提现在网表里。在Default Net Name中也填写net name,因为这个net需要做global操作,即在顶层定义这个net,所以需要在net name后加个!打开schematic,删除指定cell pin所接net的label。原创 2023-10-09 09:53:39 · 342 阅读 · 0 评论 -
gds/网表导入virtuoso注意事项
gds和网表导入到virtuoso中都需要添加参考库,这里需要注意的是如果上层模块/顶层调用下层模块时参考库时,需要把library中的模块cell的单独copy到新的库中,模块的via layout或module schematic和symbol不需要被顶层参考,因为后续更新模块的layout或schematic可能导致顶层找不到via等问题。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-10-09 09:35:21 · 909 阅读 · 0 评论 -
LVS: ambighouse pin count in file “xx“ but none has xx pins问题
一些foundry的standard cell的cdl没有衬底pin(例如VNW VPW),如果pr过程中globalNetConnect 或者connect_pg_net把衬底pin接到power/ground net上了,就会报告如题错误,因为pr 网表有这个pin,而cdl里没有。解决办法就是,pr在connect pg的时候不要把衬底pin连到pg net上,完全不管就行,这样save 网表的时候就不会写出来。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-09-18 12:06:38 · 414 阅读 · 0 评论 -
电阻与方块电阻计算公式
我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-08-24 10:41:21 · 925 阅读 · 0 评论 -
finfet grid
图 3.7 所示)上。TSMC 12nm 中 FinFET 网格的间隔是 0.048um,因此宏单元的下边。使用了 FinFET 技术,要求所有的元件(包括宏单元)都要对齐到 FinFET 网格(如。90nm 及以下的工艺都要求储存器,IP,IO 的多晶硅方向必须和标准单元的多晶。硅方向保持一致,无法像过去工艺一样随意旋转方向。在 22nm 及以下的先进工艺中。界离模块下边界必须为 0.048um 的整数倍才能保证在 FinFET 网格上。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-08-11 11:08:30 · 372 阅读 · 0 评论 -
Lvs missing port问题实例
LVS missing port问题多出现在TEXT层次错误上,通常ICer都会有意识的打text,位置出错的概率也不高。反而是层次错误通常被忽略,比如需要TEXT层/pin层,用的是drawing层,需要AL_RDL层用的ME7。这个星球小伙伴遇到的问题是1p6m的设计,在AL_RDL层打text,结果map到gds的MET TEXT层了,检查了位置,没问题,也确认了是TEXT层不是drawing,最后确认了金属层次信息,才发现,金属层次错了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-08-01 09:29:21 · 1360 阅读 · 0 评论 -
empty module导致的lvs问题
write_verilog时-exclude empty_modules即可。这里也分享一下ICC2 write lvs netlist的命令。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-07-26 17:28:33 · 525 阅读 · 0 评论 -
在ICC/ICC2/FC中运行Calibre
把脚本中的路径改到自己目录,把脚本中icc的命令改成ICC2的命令,直接搜索"mw"即可,把current_mw_cell换成current_block,current_mw_lib换成current_lib,以此类推。4. 在ICC/ICC2中source icc_gui.tcl/icc2_gui.tcl即可,也可以添加到~/.synopsys_icc2_gui/setup.tcl中,工具每次启动都会自动source。根据路径提示找到icc_gui.tcl/icc2_gui.tcl。原创 2023-07-18 15:00:01 · 619 阅读 · 0 评论 -
数模混合项目:模拟跨数字走线注意事项
2.模拟高频线,尤其是时钟,尽量不要在数字上走线,非要走,最好下方的数字走线要低模拟走线至少一层金属,比如模拟用metal7数字用metal5。1.模拟电源在数字上走线影响不大,但尽量走top metal和AP层。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?原创 2023-07-07 11:26:29 · 202 阅读 · 0 评论 -
常用的decap MOS电容版图介绍
对于图a,poly没有接任何东西,pmos部分,poly gate与接VDD的active(source drain)的重叠部分形成电容,nmos部分poly gate与接VSS的active的重叠部分形成电容,所以对于一根poly来讲这是对地和对电源的两个电容的串联,然后多跟poly并联,形成更大容值的MOS电容(电阻并联阻值更低,电容并联容值更大)。再来看图b,相比前一种,可以看作是一根poly gate拆成四根并联,这种poly接VSS/VDD的容值更大。原创 2023-06-12 11:30:42 · 2744 阅读 · 0 评论 -
ANTENNA: 天线效应解决办法
天线效应的定义与解决办法,附ICC2与INNOVUS修天线效应的命令。原创 2022-06-15 17:58:03 · 8828 阅读 · 0 评论 -
DRC:OPC指什么
OPC问题说的是一块metal相邻的两条边不能同时小于min width。如下图所示。解决办法就是消除至少一个相邻两条小于min width的边,可以切掉也可以补全。原创 2022-08-30 09:27:25 · 616 阅读 · 0 评论 -
DRC:End of line spacing
end of line spacing与diff net via_cut spacing都代表着一类drc问题,根据tech file的相关约束确定具体的spacing要求。end of line spacing指的是end of line edge与相邻的同层金属的spacing要求,其中end of line edge定义为两个相邻凸角的公共边宽度小于阈值时被称为end of line edge,如下图所示,此时end of line edge所在的金属线就被称为end of line wire。原创 2022-08-31 10:20:19 · 1268 阅读 · 0 评论 -
数字后端:track的作用与创建
1.track的定义EDA工具根据LEF(或tech file)中每层金属的pitch大小,在芯片内部自动生成各层金属连续的、规则的绕线轨道(routing track),routing track指的就是绕线的路径。tech lef示例tech file示例DEF中保存的TRACK信息如下示例:TRACKS Y 9000 DO 187 STEP 9000 LAYER M5Y: TRACK的方向9000:TRACK的起始位置DO:TRACK的数目STE原创 2022-12-07 16:03:49 · 3014 阅读 · 1 评论