- 博客(21)
- 收藏
- 关注
原创 memory染色问题,无法染色
在N7工艺中,所有cell在lef内部会进行相应染色(mask)定义,但是std-cell的染色和hard macro的染色不一样,在完成摆memory的floorplan之后,我们可以进行染色,coloerizePowermesh,这个时候memory上pinshape的颜色可能会发生改变,但是染完之后和lef中对应不上,后面在跑gds就可能会出问题,这个时候,有两个解决方法。
2024-07-03 11:35:23
283
原创 跑dummy时遇到的精度问题
在innovus出数据的时候streamout -unit 和跑dummy pv的时候规则文件精度全部统一了,为什么会在跑dummy以及后面的流程说,database precision精度是2000,跑不了lvs,确实在tlef里面定义的2000,但是出数据都是1000,后面每个阶段都会提示这个问题。在这里全部检查了还是有问题,那就是flow的问题,需要改选项。精度是否完全同一需要打开每版gds是否是统一的精度。
2024-05-09 17:01:55
273
1
原创 pv的lvs在读cdl时有error
在跑lvs的时候显示 NOT COMPARED ,没进行比对,原因是我这个cdl少了一段,对这个器件的定义没有,需要增加一段cdl文件。
2024-05-09 16:41:39
830
2
原创 对于ip出的clock pin的导致的drc问题
问题:1.一般我们在clock阶段会给clock net统一设置ndr,对于内部有时钟的ip,在出pin时可能会被认定为trunk net,于是在ndr的2w2s作用下会直接连成2倍的net,可能会导致有metal short。2.而且如果添加了shield net,又没有加blockage,shield net就会从ip上覆盖一小段,导致lvs的short,线和ip内部无法看见的线短路。2.写脚本修,直接给所有的出pin位置加一段金属,再ecoRoute。到处rpt抓出net再进行删除。
2024-04-30 09:48:23
472
原创 esd的drc问题
这个错代表esd的方向反了,在esd中H的cell是需要竖着摆,V的cell是横着摆的,和字面意思不同,比如同层的金属打开发现方向不一致。这里把cell替换过来就行。
2024-04-30 09:30:30
260
原创 remove_buffer删一对inverter删不动
这两个inverter是连着的cdb的cell,我以为它是一对,问题表示 62 63 不是一对,换一下cell 61 62的,在dsma的pt中 ,remove_buffer " inv1 inv2" 要用双引号括起来。remove_buffer删一对inverter删不动。
2024-04-23 10:37:46
549
原创 pv的时候遇到的Userguide问题
解决:Rule deck规则文件没找对,查找innovus出数据用的gds layer map和rule deck文件里面的数据层是否能对上(gds layer map也要和tech lef对应上)搜索M9查看datatype,之前的规则文件这里是40,由于我都gdslayermap换成了2z的map文件数据层发生改变。1.Userguide出现了问题,在pv规则文件中找不到解释,只是说数据层被禁止了。
2024-04-23 10:32:50
461
原创 关于latch的fm过不了
在加入dft之后,fm发现这种lockup_latch的latch没过,在init阶段电路结构是正确的,place阶段就发生了改变,是因为。reorder 设为true会方便我们修时序,设了过不了是要把latch忽略掉了,在这里设dont verify。在scan reorder的时候会改变连接关系,
2024-04-15 11:56:43
546
3
原创 如何dbug clock,cluster怎么用
可以先查看sdc和spec,看看有没有关于这个IP的描述,有可能是由于IP内部有时钟出来,所以穿过IP,这里其实是有问题的路径,一般来说这个时钟应该是有IP内部出来的代表PLL,再到各个reg,这样就不存在穿进和穿出了,树就短了。3)这IP和后面的 reg从skew group里面挪出 ,modify_ccopt_skew_group -remove_sinks。要想找出时钟树为什么做这么长的原因,首先要找到最长的那条路是否存在detour,跑一次cluster去看最长的怎么走了。抓出最长路径高亮出来。
2024-03-26 15:54:35
808
原创 约束trans的方法(innovus)
因为这些命令是sdc内的命令,包括(set_max_transition,set_disable_timset_propagated_clock等)3.在cts阶段可以设置set_ccopt_property max_source_to_sink_net_length 220。4.设置max_fanout 30 时钟树上的set_ccopt_property max_fanout 30。普通路径set_max_fanout 30 [current_design]注意在设置DRV约束时打开开关。
2024-03-07 14:45:19
1846
原创 routetype的ndr设置以及查看
超过指定fanout 数量的net,叫top ,top 需要使用命令手动指定,默认不会产生top。leaf的net定义,sink点到前一级之间net。看具体routetype的ndr设置。除开leaf的net都是trunk。
2024-02-23 14:44:19
916
1
原创 如何快速跑lvs来dbug
1.改lvs的脚本如果只是想通过修改规则文件来消除lvs,就可以反复用之前出过的layout.spice来对比,一般来说lvs是先把merge的gds转化成layout.spice,dbug可以省去这个步骤。3.在执行calibre -lvs -hier -spice layout.spice -hyper -turbo 1 -64 -hcell hcellfile lvs.cmd。改成:LAYOUT PATH "layout.spice"原来:LAYOUT PATH "merge.gds"
2024-02-22 10:06:16
1107
1
原创 innovus中delay为0
1.如果自己擅自改sdc,或者spec没有重新生成新的spec去跑ccopt_design,可能会出现错误,可以在跑前检查一下ccopt_design.2.用reset_ideal_network [get_ports [get_attr [all_clocks ] sources,可以显示delay。在cts阶段时序报告突然就没有delay了是怎么回事?
2024-02-18 15:08:54
669
原创 手动实例化单元(verilog的映射文件)
根据电路结构来说, latch+ and算是一个ICG, 电平触发。TSMC提供的是OR+latch_and. 边沿触发,直接例化。给这段rtl代码改成以下格式,可以添加一个新文件,也可以直接进行修改,如果不确定逻辑功能是否一样,可以把这两个文件做一个formal对比。如何添加呢,打开rtl需要实例化的代码(icg的关键字:clock gating cell)TE是给dft用的,TE端接0,例化icg。
2024-01-19 16:56:26
710
1
原创 set_ideal_network的设置
clock cell delay在设置后都会变为0,可以看看如果树平setup和hold会有多少margin。在pt工具里,设置某条timing path上的指定clock的 network为ideal network。
2024-01-17 17:12:30
958
原创 pba gba在修时序中的使用
是最悲观的算法,其次是exhausitive,最后是path这个选项,最乐观,一般在eco修时序时不要带上-pba_mode path这个选项,这样工具修的就是按最悲观的情况来修,就会修掉更多违例。在report_timing指令中有一个-pba_path这个选项,不选该选项代表默认用的是-pba_mode none。pba gba模式具体在pt里面是怎么实现打开的。
2024-01-15 16:06:58
802
原创 DSMA工具修setup hold的方法
5.在后期setup hold互卡的时候,如果不管hold,只修setup,而又都是最高驱动低阈值,可以使用-methods {remove_buffer}这个选项修setup,删去多余的buffer。2.修hold的时候用的delay cell用的阈值比较高,它对setup太敏感了,如果后期使用,尽量用LVT的delay cell。其他的cell同理尽可能用低阈值的cell。4.有的寄存器用的HVT的cell,他对setup的影响很大,换成LVT会好很多(后期修不动的情况)
2024-01-15 13:34:36
1888
2
空空如也
后端 N7power连接问题
2024-07-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人