微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 请教:在ICCompiler中怎么检查I/O power ring是否连接上啊?

请教:在ICCompiler中怎么检查I/O power ring是否连接上啊?

时间:10-02 整理:3721RD 点击:
请教各位高手:在ICCompiler中怎么检查I/O power ring是否连接上啊?

回复handucheng:在ICC中建立MW library
handucheng
[b]原始短消息: 麻烦问一下,谢谢!
Hi, handucheng, 对于你的问题,我刚刚发短消息出去了,好像没成功,所以在这里给你回复:
你能不能详细介绍下你是怎么读入设计的?还有你的ICC版本是多少?
我一般用ICC的步骤:
1. 用icc_shell -g 启动GUI界面;
2. 在GUI界面中,File—>Open Design打开已建立好的MW library;
若是新建立MW library,一般用以下步骤:(最好每做一个步骤,保存一次数据,如:save_mw_cel -as floorplan)
ICC实验步骤
步骤1:在lab1_flow路径下启动ICC shell。
> icc_shell –gui
步骤2:设置search path、target_library、link_library:
Lib_setup.tcl:
# Library setup
lappend search_path ./ref/db ./ref/tlup
set target_library "sc_max.db"
set link_library "*"
foreach lib {sc io ram16x128} {
lappend link_library ${lib}_max.db
set_min_library ${lib}_max.db -min_ver ${lib}_min.db
}
步骤3:为设计创建library。> create_library
步骤4:打开创建的library。> open_mw_lib
步骤5:读入verilog网表。> read_verilog
步骤6:确认当前顶层设计。> current_design RISC_CHIP
步骤7:将网表中例化的单元与参考库中的单元做连接。
> link
步骤8:设置TLU+文件。
步骤9:读入SDC文件,设置芯片工作环境。
步骤10:检查设计的合理性。
>set_zero_interconnect_delay_mode true
>report_timing
>report_constraints –all_violators
>set_zero_interconnect_delay_mode false
步骤11:在设计中添加电源pad和corner cell等physical only cells。
phy_cells.tcl:
#corner cells
create_cell {cornerll cornerlr cornerul cornerur} pfrelr
#pg pads
create_cell {vss1left vss1right} pv0i
create_cell {vdd1left vdd1right} pvdi
create_cell {vss2left vss2right} pv0a
create_cell {vdd2left vdd2right} pvda
步骤12:读入IO约束文件.。 > read_io_constraints
步骤13:初始化floorplan。 > initialize_floorplan
步骤14:加入pad filler并生成pad ring。
complete_die.tcl
# Set Pad Fillers
set feedthrupads "pfeed10000 pfeed05000 pfeed02000 "
# Insert Pad Fillers
insert_pad_filler -cell $feedthrupads
# Connect PG nets
proc update_pg {} {
foreach net {VDD VDDO VDDQ} {connect_pg_nets -nets $net -ports $net -net_type power}
foreach net {VSS VSSO VSSQ} {connect_pg_nets -nets $net -ports $net -net_type ground}
connect_pg_nets -update_tie_hi_lo
}
update_pg
# Create Pad Rings
create_pad_rings

步骤15:自动做floorplan的placement,作为为floorplan的参考。
> create_fp_placement

步骤16:手动摆放Macro,并完成flooplan。> create_fp_placement –incremental all
步骤17:创建core rings及power straps。
步骤18:做电源网络分析(PNA),查看电源规划的IR Drop。
步骤19:设置place blockage。
步骤20:布instance的电源和地。> preroute_instances
步骤21:布power rail(给标准单元供电的电源和地线)。
> preroute_standard_cells
步骤22:设置placement的约束。在METAL5 METAL6的PG线下面不摆放标准单元。
>set_pnet_options –complete {METAL5 METAL6}
步骤23:布局(placement)。placement这一步还会做scan chain的reorder,HFS.
> place_opt
> report_timing
> report_constraints –all_violators
步骤24:时钟树综合优化及布线。
> clock_opt
Ndr_settings.tcl:
remove_routing_rules -all
define_routing_rule double_spacing \
-spacings {METAL2 0.6 METAL3 0.6 METAL4 0.8 METAL5 1.2 METAL6 1.4}
set_clock_tree_options -routing_rule double_spacing \
-layer_list {METAL3 METAL4 METAL5 METAL6}
重新定义关于clock uncertainty的定义,去掉其中估计的clock skew的部分。
>set_clock_uncertainty 0.1 [all_clocks]
>clock_opt
CTS之后开始关心holdtime,如果有hold violation,可以用下面命令修复
>clock_opt –fix_hold_all_clocks
步骤25:布线(routing)。
> route_opt
用report_timing –max 或 –min查看setup\hold是否满足设计要求(或者report_constraints –all_violators)。

步骤26:做布线后DRC检查。
> verify_drc

步骤27:可制造性设计。 例如检查天线效应,先load天线效应的rules(由library vendor提供)

>source scripts/cb13_6m_antenna.tcl
用report_antenna_rules查看Antenna规则;用report_antenna_ratio查看天线效应报告。
“@@@@ Total nets not meeting constraints =”后面显示了violation的数量。
用route_search_repair修复。

非常感谢你的详细回复,我自己先试一下,有什么不明白的地方可能还要麻烦你!

这么久没人回复啊,我自己找到了。
用verify_pg_nets,可以看到是否连接;
最后再在LVS中验证一下。

好东西啊!

oh, mw issue.

写的不错LZ辛苦了

必须要支持一下小编

谢谢LZ,正在想学ICC

二楼的说得很详细。感谢

这样的帖子一定要顶。
TZ里就需要这样热心的TX。

学习了 谢谢

顶二楼,真热心!

支持一下

支持小编。

写得很详细,很认真,感谢

2# sunshinell 好东西,谢谢

19# aszx 好东西,谢谢

好东西,谢谢

好东西,谢谢

好东西,谢谢

好东西,支持一下!

哈哈,好文章啊,请问Astro和ICC的差别大吗?如果从Astro跳到ICC会不会很麻烦?

我没用过Astro呢。不过我用过milkyway做library preparation,个人觉得很头疼啊

这样的帖子一定要顶。
TZ里就需要这样热心的TX。

3楼的给力,

确实很详细,哈哈

support!

好感动哦哦。对于我们这些初学这来说,发现这个帖子,那是一种收获哦。

谢谢小编!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top