在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 阿炜

[求助] 请问Innovus布局布线完了之后,怎么看标准单元内的版图

[复制链接]
 楼主| 发表于 2021-5-13 11:40:12 | 显示全部楼层


jake 发表于 2021-5-10 01:24
补充3 – Innovus 默认streamOut.map里的COMP 层Innovus 生成的默认streamOut.map 模板里会有一个COMP层 ...


前辈,再问您个问题好吗
Innovus之后的LVS应该怎么做呢?是把gds跟dc生成的netlist进行对照,还是在布局布线后,再生成一个netlist_pr,然后把gds跟netlist_pr进行对照呢

现在老师那边的版图工程师是把Innovus生成的gds 跟 dc生成的netlist导入到virtuoso中生成的晶体管级电路进行LVS,这样可以吗?这样多转了一次,感觉怪怪的。。

现在这样检查LVS的问题是,Innovus的时钟树综合指令 ccopt_design ,会在关键路径上添加buffer,导致过不了LVS。

目前想出来两个方法:
1、修改Innovus的指令,不让他自己加buffer。(这样做对时序有不好的影响)
2、人工修改网表及电路,手动添加Buffer,与gds上加的Buffer一致。(这样人工更改网表及电路,怕有风险)

请问您一下,应该怎样做比较好呢
发表于 2021-5-13 13:45:38 | 显示全部楼层


duanai8246 发表于 2021-5-12 21:40
前辈,再问您个问题好吗
Innovus之后的LVS应该怎么做呢?是把gds跟dc生成的netlist进行对照,还是在布局 ...


DRC, LVS 可以在 Cadence 里面做。 我这里用的是 Cadence PVS,集成到 Virtuoso 里一个单独的菜单,按照菜单一步步填上各类信息,往下走就可以了。 估计你们那里用的是 Calibre。
LVS 需要 schematic view, layout view。
Innovus 全部流程跑完,最后写出 final Verilog netlist。
deleteEmptyModule
saveNetlist -excludeLeafCell -includePowerGround -includePhysicalInst EXPORT/<your_design>.lvs.v

把这个netlist import 到 Cadence Virtuoso 里生成 schematic view。

Layout view 就是走 Innovus streamOut gds, Virtuoso XStream In 这个流程。





 楼主| 发表于 2021-5-13 14:26:08 | 显示全部楼层


jake 发表于 2021-5-13 13:45
DRC, LVS 可以在 Cadence 里面做。 我这里用的是 Cadence PVS,集成到 Virtuoso 里一个单独的菜单,按照 ...


噢噢也就是说,innovus流程走完之后,除了gds还要导出一个对应的netlist_lvs.v,然后用netlist_lvs.v转换成的schematic进行LVS。

额那这样的话,我又有两个问题(全是问题。。麻烦前辈了)
1、这样怎么保证innovus导出的netlist  跟dc导出的netlist是功能一致的呢?是verify_connectivity这个指令来检测吗?
2、这样把Innovus自己生成的版图和netlist进行对照,有种Innovus既当运动员又当裁判的感觉呀。。
发表于 2021-5-13 14:48:14 | 显示全部楼层


duanai8246 发表于 2021-5-13 00:26
噢噢也就是说,innovus流程走完之后,除了gds还要导出一个对应的netlist_lvs.v,然后用netlist_lvs.v转换 ...


LVS 是 layout vs schematic。 在混合信号芯片里,digital 当作Cadence Virtuoso里的一个模块处理。 在 Cadence Virtuoso 里做 LVS 是为了保障 X Stream In, Verilog In 的过程中没有出错。 还有,LVS 之前应该先跑 DRC。 Cadence 里的 DRC 更严格。 通常 signoff 以 Cadence 里的 DRC 为准。
保障 Innovus final netlist 和 DC synthesis netlist 功能一致,这个其实是 LEC logic equivalence check。好像国内翻译是形式验证,可能是最早大家都用 Formality。 形式验证这个翻译容易产生歧义,个人觉得还是叫 LEC 更准确。 真正的 formal verification 是验证里的学问,又是另一套工具和方法学。 LEC 的主流工具就是 C 家的 Conformal, S 家的 Formality。 把两个 netlist 都导入工具,设置一下,就可以跑了。

如果有 C 家的综合工具 Genus,可以跑一下 Genus 生成一个 Conformal 模板,改一下就可以用了。


 楼主| 发表于 2021-5-20 14:10:23 | 显示全部楼层


jake 发表于 2021-5-13 14:48
LVS 是 layout vs schematic。 在混合信号芯片里,digital 当作Cadence Virtuoso里的一个模块处理。 在 C ...


非常感谢您,现在DRC和LVS都能过了,formality验证也过了。
我这个项目您帮我解决了非常多的难题,从开始的把verilog网表导入到virtuoso,到后面streamout stream in,LVS的整个流程,都是按照您的指导来做的,如果没有您的指导的话,我可能要多花1个月的时间来解决这些问题,真的非常感谢您。
如果您来成都的话,请一定要跟我说一声,希望能在线下当面感谢您。

发表于 2022-5-18 16:33:27 | 显示全部楼层
请教一个问题,在innovus中可以设置放置标准单元之间的间距吗?
发表于 2022-8-25 10:55:50 | 显示全部楼层
楼主,我想知道到您图片这一步,单元按行摆放的脚本是什么呢?
发表于 2022-8-25 10:57:56 | 显示全部楼层
楼主,我想知道到您图片这一步单元按行布局的流程脚本是什么呢?我知道可以分行,但是我不知道分行过后单元是直接布局就行,还是要加上按行布局的限制呢?能看一下这个脚本吗?
 楼主| 发表于 2022-8-26 20:45:15 | 显示全部楼层


果子狸哦 发表于 2022-8-25 10:57
楼主,我想知道到您图片这一步单元按行布局的流程脚本是什么呢?我知道可以分行,但是我不知道分行过后单元 ...


source ../logic.global

setDesignMode -process 250

checkDesign -netlist
checkDesign -timingLibrary

saveDesign initial.enc


#floorPlan -site CoreSite -r 0.913115661317 0.30 10.4 10.0 10.4 10.0

floorPlan -site CoreSite -d 630 130.0 15.5 15 15.5 15

#floorPlan -site CoreSite -s 400 247.0 13.5 13 13.5 13


globalNetConnect VDD -type pgpin -pin VDD -inst *
globalNetConnect GND -type pgpin -pin GND -inst *
globalNetConnect VDD -type tiehi -pin VDD -inst *
globalNetConnect GND -type tielo -pin GND -inst *
globalNetConnect VDD -type tiehi
globalNetConnect GND -type tielo

#ring
addRing -skip_via_on_wire_shape Noshape -skip_via_on_pin Standardcell -stacked_via_top_layer TT -type core_rings -jog_distance 0.52 -threshold 0.52 -nets {VDD GND} -follow core -stacked_via_bottom_layer A1 -layer {bottom TT top TT right A2 left A2} -width 6 -spacing 2 -offset 0.52

#addRing -skip_via_on_wire_shape Noshape -skip_via_on_pin Standardcell -stacked_via_top_layer TT -type core_rings -jog_distance 0.52 -threshold 0.52 -nets {VDD GND} -follow core -stacked_via_bottom_layer A1 -layer {bottom TT top TT right A2 left A2} -width 4 -spacing 1 -offset 0.52

#stripe
addStripe -skip_via_on_wire_shape Noshape -block_ring_top_layer_limit TT -max_same_layer_jog_length 1.2 -padcore_ring_bottom_layer_limit A2 -set_to_set_distance 40 -skip_via_on_pin Standardcell -stacked_via_top_layer TT -padcore_ring_top_layer_limit TT -spacing 1.25 -merge_stripes_value 0.52 -direction horizontal -layer TT -block_ring_bottom_layer_limit A2 -width 8 -nets {VDD GND} -stacked_via_bottom_layer A1

addStripe -skip_via_on_wire_shape Noshape -block_ring_top_layer_limit TT -max_same_layer_jog_length 1.2 -padcore_ring_bottom_layer_limit A1 -set_to_set_distance 40 -skip_via_on_pin Standardcell -stacked_via_top_layer TT -padcore_ring_top_layer_limit TT -spacing 1.25 -merge_stripes_value 0.52 -layer A2 -block_ring_bottom_layer_limit A1 -width 8 -nets {VDD GND} -stacked_via_bottom_layer A1

#sroute follow_pin
sroute -connect { blockPin padPin padRing corePin floatingStripe } -layerChangeRange { A1 TT } -blockPinTarget { nearestTarget } -padPinPortConnect { allPort oneGeom } -padPinTarget { nearestTarget } -corePinTarget { firstAfterRowEnd } -floatingStripeTarget { blockring padring ring stripe ringpin blockpin followpin } -allowJogging 1 -crossoverViaLayerRange { A1 TT } -nets { GND VDD } -allowLayerChange 1 -blockPin useLef  -targetViaLayerRange { A1 TT }

-corePinWidth 1.5

saveDesign pns.enc

setPlaceMode -congEffort low

placeDesign -inPlaceOpt


不是自动按行摆放吗

发表于 2022-8-27 12:51:40 | 显示全部楼层


阿炜 发表于 2022-8-26 20:45
source ../logic.global

setDesignMode -process 250


后来发现了,是我自己做的lef设置了coreSite的高不对劲,感谢答主~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-27 20:21 , Processed in 0.021912 second(s), 5 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表