【ICC】icc基本使用步骤(转载)(初稿)

DC输出门级网表和标准设计约束文件之后,使用IC complier进行后综合,得到版图文件。本文转载自论坛。我会结合自己的使用增加新的内容,并且随着使用不断更新

============================================================================

用icc_shell -g 启动GUI界面
在GUI界面中,File—>Open Design打开已建立好的MW library;
若是新建立MW library,一般用以下步骤:
(最好每做一个步骤,保存一次数据,如:save_mw_cel -as floorplan)

步骤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            并将网表唯一化(ICC应该能自己进行唯一化操作)。>  uniquify_fp_mw_cel

步骤6:确认当前顶层设计。> current_design RISC_CHIP 
步骤7:将网表中例化的单元与参考库中的单元做连接。
> link 
步骤8:设置TLU+文件。 >set_tlu_plus_files       并检查TLU+文件 >check_tlu_plus_files
步骤9:读入SDC文件,设置芯片工作环境。 >read_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修复。
ICC2是IC设计中广泛使用的电路布局工具,它具有丰富的功能和强大的性能。要进行基本设置,我们可以按照以下步骤进行: 首先,我们需要创建一个工作目录并将工作目录切换到当前目录。可以使用"mkdir"命令创建一个新的目录,并使用"cd"命令切换到该目录。 然后,我们需要设置一些环境变量来指定工作目录和一些必要的库文件。可以使用以下命令来设置环境变量: setenv ICC2_HOME <工作目录路径> setenv TECH_LIB_PATH <技术库路径> setenv DEFAULT_DESIGN_NAME <设计名称> 接下来,我们可以进入ICC2的图形用户界面(GUI)模式。可以使用"icc2 &"命令启动ICC2,并进入GUI模式。 在ICC2的GUI模式下,我们可以进行各种设置和操作。例如,我们可以使用菜单栏上的"File"选项来打开和保存设计文件;使用"Edit"选项进行编辑操作;使用"Setup"选项进行全局设置和参数配置等。 在进行基本设置时,我们还可以设置设计的物理约束条件,如电气规则、引脚分配、布线方向等。可以使用"Setup"菜单中的"Physical Setup"选项来进行这些设置。 此外,在ICC2中还有很多其他功能和设置可供选择和使用,如设计规模化、功耗优化、时序约束、布局评估等。可以根据具体需求选择并使用这些功能。 最后,完成基本设置后,我们可以进行后续的电路布局和优化等操作。可以使用ICC2提供的各种命令和菜单选项来完成这些操作。 总之,通过以上步骤和方法,我们可以进行ICC2的基本设置,并进行后续的电路布局工作。通过灵活使用ICC2提供的功能和操作,可以提高设计效率和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值