# マクロ作り直したりすると上手くいったり……
# 誰か原因教えて
●ring を介してつなぐ
まずマクロの周囲に ring を作り、
ring とマクロの電源ポートの接続は
axgPrerouteInstances
で行う。
============================================================
./scripts/connect_macro.tcl
============================================================
axgPrerouteInstances
formDefault preroute_instances
setToggleField preroute_instances instance_type(s) pad 0
setToggleField preroute_instances instance_type(s) cover 0
formOK preroute_instances
こちらの方式の利点としては、
- strap の幅、間隔がマクロ内外で異なってても接続可能
- rail の高さが異なってても接続可能
がある。
rail が存在しないメモリマクロや、高さのことなるスタセルを使いたい場合(PG化セルを使う等)は、
こちらの方式しか使えない。
しかし、rail がマクロ内外でずれる場合はやや面倒なことになる。
●rail がずれる場合
rail の間隔がずれる場合は様々な問題が起こる。
下図にマクロ内外で rail の間隔が異なる図をのせる。
rail が途中で切れるのは当然だが(良いことではないが、チップが動かなくなったりはしない)、
VDD と VSS のショートが問題。
そこで、下図のようにマクロには ring を介して電源を供給し、間隔の異なる rail の境界部
には blockage を張る。