# 勿論、Astro 上の属性だけの問題
# 手動で rail を伸ばして無理やりつなげたものを検証にかけたりしても、エラーは出ない
そこで、以下のコマンドでマクロの電源ポートの属性を設定する。
============================================================
./scripts/setpg.tcl
============================================================
dbSetCellPortTypes "マクロ名" "*" [list "VDD POWER" "VSS GROUND"] 0
- # 実はこれでも上手くいかないときがときたま発生する
- # 原因が本当に不明
- # マクロ作り直したりすると上手くいったり……
- # 誰か原因教えて
●ring を介してつなぐ
こちらの方式の利点としては、
- strap の幅、間隔がマクロ内外で異なってても接続可能
- rail の高さが異なってても接続可能
がある。
rail が存在しないメモリマクロや、高さのことなるスタセルを使いたい場合(PG化セルを使う等)は、
こちらの方式しか使えない。
しかし、rail 内外でずれる場合はやや面倒なことになる。
●rail がずれる場合
rail の間隔がずれる場合は様々な問題が起こる。
下図にマクロ内外で rail の間隔が異なる図をのせる。
rail が途中で切れるのは当然だが(良いことではないが、チップが動かなくなったりはしない)、
VDD と VSS のショートが問題。
そこで、下図のようにマクロには ring を介して電源を供給し、間隔の異なる rail の境界部
には blockage を張る。