社長さま、ぶっちさま、

環境セットアップ

set design_name POCOP
set is_combinational_circuit false

set core_width  100
set core_height 100
set cell_width  101.8
set cell_height 101.4
  • cellとcoreの幅、高さの決め方はどうするのでしょうか?
  • 物理的に入るか入らないかで判断してます
  • 合計セル面積が 200 なのに,10×10 だとダメですよね?
  • かつ配線の事も考えて,(デザインにもよりますが)大体 70〜80% 程度をとればいいです
  • フロアプラン設定ウィンドウで右上に “set” があるのでそれで大体の目安が取れます
set core_to_top    0.9
set core_to_bottom 0.9
set core_to_right        0.9
set core_to_left   0.9
  • それぞれの値の決め方、なんで0.9なの?
  • てきとーです
  • 大きすぎると面積もったいないです
  • もっと小さくても OK です
  • 因みに 0.9 はセルの高さの半分です
  • 因みに,「何故この数値?」という質問が下記に幾つか見られますが「なんとなく」「これで上手く行ったから」という答えが多々です
  • 特に「これでないといけない」という数値はないです
  • 見た目カッコよければそれで良しです
  • マクロを配置するときに、core_to_bottom をセルの高さの半分にしとくと railがきれずにマクロを置きやすいと思い、自分はこの値を使っています。
____|__________   __ = rail
____|__________
____|__________
    +----------  <- マクロ下端
   ↑
マクロ左端
  • 現在のフローではマクロ外の rail と マクロ内の rail が接続しているのですが、core_to_bottom を 0 にしてしまうと、マクロ内の一番下の rail には外の rail が上手くつながりません。
  • セルの高さの 1.8 よりも大きい値にすると、マクロ外で無駄に切れる rail が増えます。なので間を取って 0.9 を使ってます。
  • # 言葉だと説明しづらいです……

ファイル読み込み

source ./scripts/verilog_to_cell.tcl

Verilogを読み込む。

source ./scripts/apply_tlu_plus.tcl

ライブラリアタッチファイルをTLU+に変換。TLU+とはC,Rのモデルのこと。

  • libの下にモデルがあるので、このうちMin/Maxを指定。マッピングファイルは、tlu2mw.mapを指定。ところで、これはどうやって作ったの??
  • Fujitsu 提供のものです

フロアプラン

source ./scripts/pin_guide.tcl
  • このブロッケージを作る理由は?なんで横長なのができちゃうんだろう??
  • 当時ボクが考えたアンテナ回避方法その1です
  • やらなくて,いいです
source ./scripts/antenna_route_guide.tcl
  • このアンテナルートガイドの作り方の作戦は?
  • 当時ボクが考えたアンテナ回避方法その2です
  • やらなくて,いいです
source ./scripts/floorplan.tcl
  • ここで、Max Metal Routing Layerを11にしているがこれはAstroのせい?
  • はい,落ちます
  • 以前かなりお話したヤツです
source ./scripts/check_design.tcl
source ./scripts/remove_blockage.tcl
source ./scripts/remove_route_guide.tcl
source ./scripts/check_timing.tcl
source ./scripts/connect_pg.tcl
source ./scripts/save_cell.tcl
geSaveAs
setFormField "Save As" "Cell Name" "01_pre_route_pg"
formOK "Save As"

上記は理解できる。

ストラップとレール

source ./scripts/route_strap.tcl
  • 縦は、MET6, 横は、サイズ、間隔の決め方は?なぜ2回に分けて張るのか?
  • 数値はてきとーです
  • 2回に分けなくてもいいです
source ./scripts/route_rail.tcl
  • 横のレールを張る。
source ./scripts/insert_tap_array.tcl
  • YUZTAPを入れる。ゆーずたっぷゆーずたっぷゆーずゆーずゆず、、
source ./scripts/antenna_route_guide.tcl
  • これも間隔、目的等が謎。教えて下さいませ。
  • 当時ボクが考えたアンテナ回避方法その3です
  • やらなくて,いいです
  • というか2回目やりましたっけ (・ω・)?
  • 昔の事は既に脳内から揮発してます

配置

source ./scripts/load_sdc.tcl
  • 合成時のsdcをここに指定すると、それが配置配線の目標となる。
  • 配線遅延の増大のため、これが満足できないことも多く、手で直したりする??
  • しません
  • タイミング考慮しながら配線を手修正できたら神です
source ./scripts/pre_cts_timing_setup.tcl
  • CTS(Clock Tree Synthesis)用のタイミングセットアップ
source ./scripts/auto_place.tcl
  • ここでセルの配置。時間が掛かる。
source ./scripts/connect_pg.tcl
  • ここ、必要なんだろうか?0 ports connectedって出てくるけど、、
  • ここでは特に意味はないです,電源を接続しているだけです
source ./scripts/pin_guide.tcl
  • ピンガイドだがこれはなぜ必要なんだろう?
  • 当時ボクが考えたアンテナ回避方法その4です
  • やらなくて,いいです
  • というかここの段階でやりましたっけ (・ω・)?
  • 昔の事は既に脳内から揮発してます
source ./scripts/pin_loc_opt.tcl
  • これをやるとピンの位置がずれてくれるらしいのだが、このケースでは0 pins movedと出てくる。
  • これはやらなくてもいいです
source ./scripts/remove_blockage.tcl
source ./scripts/antenna_route_guide.tcl
  • ここで、ブロッケージをなくして、ルートガイドを付けるがなぜか??
  • 当時ボクが考えたアンテナ回避方法その5です
  • やらなくて,いいです
source ./scripts/save_cell.tcl
geSaveAs
setFormField "Save As" "Cell Name" "03_pre_cts"
formOK "Save As"
  • ここでまたセーブ

CTS

 
source ./scripts/pre_cts_opt.tcl
  • post place optimization, fix holdをやる。
source ./scripts/cts.tcl
  • CTSをやる。CLKBuffer, DelayBufferを色々指定
source ./scripts/show_clk_tree.tcl
  • すぐ閉じてしまうので、部分的に実行しないとツリーは見れない。しかしトップしか見れない。
source ./scripts/save_cell.tcl
                 geSaveAs
                 setFormField "Save As" "Cell Name" "05_pre_post_cts_place_opt"
                 formOK "Save As"
  • いちどセーブ
source ./scripts/post_cts_timing_setup.tcl
  • ポストCTSのタイミングセットアップ
 
source ./scripts/post_cts_place_opt.tcl
  • post place optimizationをやる。すごく時間が掛かる。
 
source ./scripts/fix_hold.tcl
  • hold time合わせをやる。
  • これでCTSはおしまい。

ゆずキューバ

source ./scripts/insert_cuba.tcl
source ./scripts/connect_pg.tcl
  • ここで、ゆずきゅーばを入れる。これを入れないとERC 3が出る。
  • ゆずとキューバは仲良しこよし、ゆずとキューバでYUZCUBA
source ./scripts/save_cell.tcl
geSaveAs
setFormField "Save As" "Cell Name" "07_pre_auto_route"
formOK "Save As"

配線

source ./scripts/fix_hold.tcl
  • ホールド合わせだが、結構何かやっているので、ここでやらないとまずいらしい。
load_scheme ./scripts/antenna_rule.scm
  • アンテナルールの読み込み。富士通からもらったもので、スキームでしか読み込めない。
source ./scripts/route_setup.tcl
  • 配線用のセットアップ
source ./scripts/route_clk.tcl
  • クロックの配線、時間が掛かる。
source ./scripts/auto_route.tcl
  • 自動配線、すごく時間が掛かる。
source ./scripts/save_cell.tcl
geSaveAs
setFormField "Save As" "Cell Name" "08_post_route"
formOK "Save As"

ポストレイアウト最適化

source ./scripts/post_route_timing_setup.tcl
  • ポストレイアウト用のタイミングセットアップ
source ./scripts/post_route_cto.tcl
  • ポストレイアウト用のクロックツリー最適化
source ./scripts/remove_clk_antenna.tcl
  • クロックのアンテナ削除
source ./scripts/save_cell.tcl
geSaveAs
setFormField "Save As" "Cell Name" "09_pre_post_route_opt"
formOK "Save As"
source ./scripts/post_route_opt.tcl
  • ポストレイアウト最適化、時間が掛かる
source ./scripts/connect_pg.tcl
  • これも0だが、、、
  • サーチアンドリペア

仕上げ

source ./scripts/fix_hold.tcl
  • ホールドタイム合わせ
source ./scripts/via_opt.tcl
  • ビア最適化
source ./scripts/remove_blockage.tcl
source ./scripts/remove_route_guide.tcl
  • ブロッケージとルートガイドを取り除く
source ./scripts/insert_filler.tcl
  • フィラーをいれる。これはただのYUZSにしているがYUZBも入れないと密度チェックに引っかかる可能性がある。
source ./scripts/fill_notch.tcl
  • ノッチを埋める
source ./scripts/connect_pg.tcl
  • 相変わらず0だが、、
source ./scripts/save_cell.tcl
geSaveAs
setFormField "Save As" "Cell Name" "11_final"
formOK "Save As"
  • これで一通り終わり。
 
tapeout_enter/astro_qanda.txt · 最終更新: 2013/07/05 08:38 (外部編集)
 
特に明示されていない限り、本Wikiの内容は次のライセンスに従います:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki