第9回 バックエンド設計その3
配線と検証
慶應義塾大学 理工学部
天野
7,8,9回の目的



合成したネットリストをレイアウトパターンに落とすバックエンド設計
の手順を紹介
ライブラリの問題で完全にはうまく行かない
Rohm0.6umプロセスを利用


取り扱いには注意
前回のディレクトリを利用
RTL記述
論理合成、簡単化
フロントエンド設計
ネットリスト
配置、配線
レイアウト
バックエンド設計
前回の作業の再現



配線前処理は既に終わっている
前回の演習で提出したスクリプトを実行
して配線前処理を行う
配線のステップ
1.
2.
3.
4.
概略配線
配線トラック割り当て
詳細配線
配線の最適化
配線前処理終了まで
概略配線

Route → Global Route
特に変更なく
OKを押す
配線トラックの割付

Route → Track Assign!
配線トラック
が割り当てら
れる
詳細配線

Route → Detail Route
回数はとりあえず
5くらいでOKを押す
@@@@@@@@ TOTAL VIOLATION = 0 (0)
のメッセージを確認
1000程度までなら、最適化でうまく行く場合もある
それ以上ならば絶望。フロアプランからやり直し
配線の最適化
Route → Detail Route Search & Repair
配線をやり直して
良いものを選ぶ
50くらいでOK
今回は、余裕があるため、最適化による改善は見込めず
すぐ終了する。
配線終了後
配線終了後
検証と修正






LVS (Layout versus Schematic)
DRC (Design Rule Check)
ギャップやノッチの修正
SDF(Standard Delay Format)の出力
バックアノテーションと実遅延シミュレー
ション
レイアウトエディタ
LVS(Layout versus Schematic)

レイアウトから抽出された論理回路がゲートレベ
ルのネットリストと一致するかどうかをチェック
OKを押す
今回は、VSS、電源と
NULLとのショートは
無視
他のエラーが0であ
ることを確認
DRC (Design Rule Check)
レイアウト上のルールが満足されているかどうかをチェック
OKを押す
Met1 Notch
Via1&Via2 Overlp
Met2 Notch
のエラーが出る(と思う)
エラー場所の確認
Verify → Load Error Cell
先ほど指定したファイル名を
書いてOK
Verify → Show Errors of All Types
エラー場所の表示
エラーの場
所が点滅
レイアウトの
中のエラーを
拡大して確認
ノッチとギャップを埋める
Route Utility → Fill Notch/Gap
OKを押す
DRCの再試行



もう一度DRCを掛けてみよう
Notchはなくなっているのがわかる
残りは、Via1&Via2 Overlap


これは擬似エラー
なぜ擬似エラーが起きるのか?



設計規則がDRCのルールと異なるため
実際上よくあるのだが非常に問題が大きい
擬似エラーがPAD周辺のみであることを確
認しよう
SDF(Standard Delay Format)の出力

Timing →SDF Out
Interconnect Onlyにセット
PPICO16.vのトップモジュール
SDFファイル名は適当に付ける
バックアノテーション



配線遅延情報をネットリストにフィードバックして、
シミュレーションを行うこと
実遅延シミュレーション
今回、若干の問題が、、

SDFファイルのバージョン問題






ライブラリの問題


AstroはVersion2.1と3.0しか吐き出せない
verilogはVersion1.0しか受け付けない
dc_shellは両方受け付ける。そこで、これを使って変換する
dc_shell-t –f convert.tcl
変換後のファイルはppico16.sdf
Astroで挿入したバッファの一部がdbファイル中に存在しない
若干エラーが残るがやむをえない
配置配線後Verilogファイルの生成

Output → Verilog
ライブラリとセル名
出力ファイル名
バスはそのまま
トップモジュール名
シミュレーションの実行
$sdf_annotate("ppico16.sdf", PPICO16);
をテストベンチに加える
verilog –u +sdf_verbose ppico16_test_chip.v ppico16_chip.v
memory.v –v rohm06.v –v RohmIO.v
./chipsimでも実行可能
エラーが出るので入出力端子の宣言(wireinout.v)をppico16_chip.vに
何かのエディタを使って手で挿入
input, output文の後ろの辺に挿入
Annotation errorがある程度出る
結果をsimvisionで確認
しかし、この程度のプロセスではあまり配線遅延は大きくない
最近のプロセスでは実配線シミュレーションと仮配線シミュレーションの
差が大きい
ストリームファイルの出力




チップ製造に必要な最終ファイル
GDS2というファイル形式が標準的
Tools → DataProp
Output → Stream Out
すべてのレベルの抽出の
ため20くらいに設定
Virtuoso –名人、巨匠




DRCを回避する最後の手段
GDSを編集することができるエディタ(Cadence
社)
Mentor社のCalibreを呼び出して精密なDRCをか
けることができる
電子工学科の黒田研や中野研、アナログ設計者
はこれを用いてレイアウトしているらしい
スタンダードセル設計ではAstroやSoC
Encounterで回避できないエラーを手で修正する
のに用いる
Virtuosoの起動

必要ファイル




display.drf 色、模様の定義ファイル
rohm.tf テクノロジファイル (rohmapollo.tfとは異なるので注
意)
これらは7kaiの中に用意してある
起動
実験室では、/usr/loca/vdec/cadence/ic5141/tools/dfII/binを
パスに入れること
 icfb –log logfilename
 実験室では起動に5分くらいかかるようなので注意!


メインウインドウ(小さい)とWhat’s Newウインドウが表
れる

操作はメインウインドウで行う
ストリームデータの読込み
File → Import → Stream
ストリーム
ファイル名
ライブラリ名
テクノロジ
ファイル名
3箇所指定して
OKを押す
レイアウト画面
File → Open → Cell NamesでPICO16を指定
操作方法





選択は左クリック、ドラッグで範囲選択
右ドラッグで、指定範囲拡大
パンはTabを押してから左クリック
他はメニューを見ながらやってみる。比較
的容易に扱える
今回は、特に修正する箇所はない
演習


前回設計したPICOを最終段階までレイ
アウトし、結果をVirtuosoで確認せよ
最終結果を生成するスクリプトファイルを
まとめよ。([email protected])ま
でスクリプトファイルを提出のこと。(間
違っても巨大なGDSファイルを送らない
で、)
ダウンロード

Verilog