オチ:Virtuoso の StreamOut のログとMilkywayのログをちゃんと確認すること.
ASAP7 ではセルを 4x して配置配線するので,1x ライブラリをコピー→ XScale を使って 4x → StreamOut → Milkyway DB → IC Compiler で配置配線をしていたのだが,一部のセルのサイズが変わらなくて困っていた.オチはは OA ライブラリ中に同名の別セルが存在していたことが原因だった (具体的には,4x ライブラリのセルが 1x ライブラリの INVx2_ASAP7_75t_SL をインスタンスとして読んでしまっていた).
StreamOut はちゃんと警告していて,ダブった方を "INVx2_ASAP7_75t_SL_0" とリネーム("_0")している.リネームされたのが 1x セルならよかったのだが,4x セルがリネームされてしまったのであった.
...WARNING (XSTRM-145): The structure name 'INVx2_ASAP7_75t_SL' has been changed to 'INVx2_ASAP7_75t_SL_0' by the translator. This could be because multiple cells with the same cell name exist in different libraries, the same cell name has been mapped to multiple cell names, or the cell name length is greater than the '32' that was specified using the '-respectGDSIINameLimit' or '-gdsCellNameLength' option....
Milkyway の setPRBdry のログを確認すると正しく電源が抽出されているように見えたのだが,
...Cell [INVx2_ASAP7_75t_SL_0.FRAM] has 2 horizontal p/g rails on MET1.the 1 rail's net type is gndthe 2 rail's net type is powerExtracting P/G track for cell INVx2_ASAP7_75t_SL_0.FRAMpower/ground track (low, high): (-144, 144) (4176, 4464)...
これはリネームされた 4x セルで,本来の名前のままの 1x セルは処理中には異なる位置の電源が抽出されており,ちゃんと「電源おかしいで」と警告されていたのであった.
...Cell [INVx2_ASAP7_75t_SL.FRAM] has 2 horizontal p/g rails on MET1.the 1 rail's net type is gndthe 2 rail's net type is powerExtracting P/G track for cell INVx2_ASAP7_75t_SL.FRAMpower/ground track (low, high): (-36, 36) (1044, 1116)WARNING: cell AOI321xp33_ASAP7_75t_SL.FRAM and NAND2x1p5_ASAP7_75t_SL.FRAM have different PG rail extension....
余談だけれど,スタセルの外形情報は Milkyway のログから抽出してもいいかもしれない.Virtuoso をゴリゴリスクリプトで動かすのは結構遅いので.