自動配置配線 |
自動配置配線ツール(Synopsys IC Compiler)用のテクノロジファイルを探しやすいように、シンボリックリンクを作成しておく(すでに、シンボリックリンク rohm018_icc.tf が作成されている場合は飛ばしてよい)。テクノロジファイルは、レイヤー構成などの製造技術に関する情報をまとめたデータであり、CADツールによってフォーマットが異なる。
vlsi> cd ~/d vlsi> ln -s kyoto/templete/rohm018_astro_kyoto-u.tf rohm018_icc.tf
ICCディレクトリへ移動して、IC Compilerを起動。
vlsi> setlic Synopsys IC compilerに相当する番号を入力 vlsi> cd ~/d/ICC vlsi> icc_shell -gui -64bit (&は付けない)
icc_shell> derive_pg_connection -tie -power_net VDD -ground_net VSS
led_pin.tclの内容
set_pin_physical_constraints -pin_name {WIDTH[3]} -layers {METAL3} -width 0.28 -depth 0.28 -side 1 -order 1 set_pin_physical_constraints -pin_name {WIDTH[2]} -layers {METAL3} -width 0.28 -depth 0.28 -side 1 -order 2 set_pin_physical_constraints -pin_name {WIDTH[1]} -layers {METAL3} -width 0.28 -depth 0.28 -side 1 -order 3 set_pin_physical_constraints -pin_name {WIDTH[0]} -layers {METAL3} -width 0.28 -depth 0.28 -side 1 -order 4 set pin_physical_constraints -pin_name {CLK} -layers {METAL3} -width 0.28 -depth 0.28 -side 1 -order 5 set_pin_physical_constraints -pin_name {RST_B} -layers {METAL3} -width 0.28 -depth 0.28 -side 1 -order 6 set_pin_physical_constraints -pin_name {OUT} -layers {METAL4} -width 0.28 -depth 0.28 -side 2 -order 1 |
右図矢印の方向に-order で指定した順に、入出力のピンが並ぶ。この場合、入出力ピンの位置は自動的に決定される。-orderの代わりに、-offsetで各辺の始点からの距離を指定することもできる。この例では、左側のピンは、METAL3、上側のピンは、METAL4で引き出すように設定している。-width(ピン幅)、-depth(ピン長さ)は、METALの最小幅の0.28umとしているので、必要に応じて変更する。
icc_shell> set_pnet_options -complete {METAL1 METAL2}
icc_shell> connect_tie_cells -objects [get_cells * ] -obj_type cell_inst -tie_high_lib_cell ROHM18TIEHI -tie_low_lib_cell ROHM18TIELO
icc_shell> set_route_options -same_net_notch check_and_fix
icc_shell> clock_opt -fix_hold_all_clocks -no_clock_route[参考] クロックの伝送系統をクロックツリーと呼ぶ。クロックの配線およびクロックドライバの配置には、正確なタイミング調整が必要なため、ディープサブミクロン以降のテクノロジでは、一般の配線とは別に行う。
[参考] フィラーセルは、論理回路のスタンダードセルの間にできた空きスペースを埋めるセル。
Master cell names (スペースで区切って入力)
ROHM18FILLERX64 ROHM18FILLERX32 ROHM18FILLERX16 ROHM18FILLERX8 ROHM18FILLERX4 ROHM18FILLERX2 ROHM18FILLER |
icc_shell> source ../kyoto/icc/tcl/antennarule_tcl icc_shell> set_route_zrt_global_options -default true icc_shell> set_route_zrt_detail_options -antenna true -antenna_on_iteration 2 -diode_libcell_names {ROHM18DIODEX1 ROHM18DIODEX2 ROHM18DIODEX4} -insert_diodes_during_routing true -max_antenna_pin_count -1 -port_antenna_mode top_layer -antenna_fixing_preference use_diodes -default_port_external_gate_size 0.45 -default_port_external_antenna_area 5[参考] MOSFETのゲート絶縁膜の静電破壊を防ぐために、アンテナルールにより、ゲートポリシリコンに接続される配線長が制限されている。
icc_shell> route_zrt_group -all_clock_nets
Total number of DRCs = 0 Total number of antenna violations = 0 Total number of voltage-area violations = no voltage-areas defined |
icc_shell> route_zrt_detail -incremental true
icc_shell> verify_zrt_route -drc false -antenna true
icc_shell> set_write_stream_options -map_layer ../kyoto/template/A2GDS.map -child_depth 99 -output_pin {text geometry} -output_design_intent
icc_shell> define_name_rules verilog -allowed "A-Z0-9_" -type net icc_shell> change_names -rules verilog -hierarchy
Copyright (C) 2016- Akio Kitagawa, Kanazawa Univ.