社長さま、ぶっちさま、
* Astroのデザインフローを残してもらいたいと思いますが、多分お二人は非常にあっさりとしたものを残してあとは勉強せい、ということになるのかと思います。しかし、今回、先輩後輩間の技術ギャップは大きく、これではとても伝承はできない、と思います。
* それでふんがが自分でPOCOPをレイアウトしてみて、疑問点を質問する、という形式で、まずは基本技術の伝承をお願いしたいです。もちろん、これ以外にもお二人にはドキュメントを期待します。
* 以下、答えていただけるとすごく嬉しいです。デザインフローは、どちらかというと社長のに基づいています。scriptsファイルは~hunga/verilog/f65/pr/scriptsにあります。
* まずはマクロPOCOPのフローです。フロー自体にも問題があったらご指摘下さい。また、コメントがおかしかったら突っこんで下さいませ。
=== 環境セットアップ ===
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 なのに,10x10 だとダメですよね?
* かつ配線の事も考えて,(デザインにもよりますが)大体 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 提供のものです