■マクロサイズ(チップサイズ)の決定
●サイズ指定方法
axgPlanner でサイズを指定する。
階層的にフロアプランを考えるために、マクロサイズは "width & height" を
明示的に指定する。
マクロのサイズは utilization を目安に指定すると良い。
- # 実験段階では "width & height" ではなく "aspect ratio" モードにし、
"Core Utilization" の欄に適当な数字を入れ、Set を押す。
- # すると "Core Width" や "Core Height" に指定した Utilization でのサイズ
が入るので参考にすべし)
この Width/Height で指定するのはスタセル配置領域であり、マクロサイズではない。
スタセル配置領域から、マクロ上(下/左/右)端までの距離を Core To Top(Bottom/Left/Right)
で指定する。

この距離は、指定した値と実際の値がずれることがある。
どうも四辺のどこにピンがあるかなどが関係しているようであるが、よく分からない。
このズレがでたりでなかったりすると、上位モジュールでマクロを配置しようとするとき
色々困ったりするので工夫してみて欲しい。
スタセル配置領域も、完全に自由な値を設定できるわけではない。
Fujitsu 65nm では、縦は 1.8um、横は 0.2um の倍数を指定する。
- # 中途半端なサイズを指定しても、スタセルが置けなければ意味はないので当然
- # 1.8um は、次で説明する Double Back での話
core_to_bottom/top
core_to_bottom/top には現在のフローではスタセルの高さの半分を用いている。
マクロ内外での rail の接続を考えると、スタセルの高さより大きな値や、0 を
指定すると rail が切れてしまうためである。

チップの場合
サイズは決った値があるので調べる。
Geyser や SMA の場合のサイズは 3816x1716。
ここから IO パッドを配置する分を考慮してサイズを決める。
●その他のオプション
●Horizontal row
- スタセルの row を水平に
●Double Back
●Start First Row
- 最下(上)端の row も使う
●スクリプト
============================================================
./scripts/base.fp
============================================================
axgPlanner
setFormField floor_planning row/core_ratio 1.0000
setFormField floor_planning control_parameter "width & height"
setFormField floor_planning core_width $core_width
setFormField floor_planning core_height $core_height
setFormField floor_planning core_to_left $to_left
setFormField floor_planning core_to_right $to_right
setFormField floor_planning core_to_bottom $to_bottom
setFormField floor_planning core_to_top $to_top
setFormField floor_planning double_back 1
setFormField floor_planning flip_first_row 1
setFormField floor_planning start_from_first_row 1
setFormField floor_planning max_metal_routing_layer 11
formOK floor_planning