社長さま、ぶっちさま、 * 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 提供のものです