CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

パタン見直し

NSC800ボードは部品数が多いのでパタン引き回しはオートルータ一発で完了させてしまいましたがパタンの細部を見ると気になるところもあり、外出自粛で時間もあるのでコツコツと手直ししていました。前にも書いていましたがいつもだいたいこんなところを見ています

 

(1)ラインのX-Y位置を100mil/Nグリッドへスナップ

オートルータの分解能は1um単位のためセッション結果をボード図にインポートするとラインの平行垂直位置や屈曲点がほとんどグリッドに乗っていません。分解能を25milとかに下げると今度は引き回しの解決に時間がかかったり挙句失敗することがあるので、まずは最高分解能で実行。そのまま読み込み、ボード図上で近傍のグリッド点へスナップさせ、ラインが水平・垂直・45度になるようにしています。一応、my設計標準では25milルール、配線が混んでクリアランスが取れないときは5milグリッドまで細かくして微調整します

   
(2)パスコンの位置変更、回転

回路設計の際に基板上に配置するパスコンは以下のようにICの数+α並列接続の回路を書いておき、ボード図上でIC近くに適当にばらまいて配置しています

f:id:O3I:20210515124007j:plain

電源ラインも含めてオートルータをかけると、そのパスコンにつなぎに行くため延々とラインを引っ張られたり、極性が無いのに指定されたパッドにつなごうとするために蛇行したパタンが生成したりするので位置をずらしたり回転させ電源ラインが短くなるようにします

(3)こんがらがった引き回しを解きほぐす

回路規模が大きいとオートルータの最適化がなかなか終わらないのでいつも中断させてしまいますが、そのためなのかあるいはアルゴリズム的に最適解に辿り着けないのか、何でこんな引き回しをするのか不可解な部分が結構見つかります。目で見て明らかな部分はチョイチョイと直してしまいます。引き回しの単純化のためなら手動でビアを追加するのも厭いません(左がオートルータ解。右が手直し後の例)

 

f:id:O3I:20210515115631j:plain

 

(4)ピン間2本は避けたい

メモリのバス接続などでICピン間100milにラインを2本引かれる場合があります。オートルータの結果そのままならいいのですが(1)の「クオンタイズ作業」で平行を保ったままグリッド点にスナップさせようとするとたちまちクリアランス不足警告が出てしまいます。fusionPCBの設計ルール:ライン幅最小6mil、クリアランス最小6milとした場合、ICのランド間に引ける2本のラインの位置はかなり限定されます

 

f:id:O3I:20210515122906j:plain

上の例ではランド半径34milなのでクリアランスを考慮すると

ランド34+隙間7+ライン6+隙間6+ライン6+隙間7+ランド34=100mil

でいっぱいいっぱい。つまりオングリッドで書くにはグリッドを2milまで細かくしないとダメということで、このサイズでの微調整は結構大変です。まだピン間に通してないところに迂回できれば1本通しにしておきます。

 

f:id:O3I:20210515173404j:plain

あとで気づいたのですがカスタムユーザグリッドを4milに設定すると2本通しの位置決めがやりやすそうです。

 

(5)プログラマブルな入出力は配線がしやすいようにアサイ

規模の小さい回路ではロジックを決めないまま、配線がシンプルになるように結線してしまっておき、あとからロジックをプログラムするときにそのピン機能に合わせるという手が使えます。ただし規模が大きくなるとマクロセルの接続制約やGALのOR項不足でデバイスに入らないという悲惨な結果もあり得ます


(6)等価なゲート入力ピンの入れ替え、パッケージ内の複数ユニットの入れ替え

これは回路図へバックアノテーションが必要だしオートルータでは如何ともしがたいところですが、人力でやる限りでも劇的に引き回しが改善することがあります。これが自動化できれば嬉しいのですが