第8回 バックエンド設計その2 配線前処理 慶應義塾大学 理工学部 天野 7,8,9回の目的 合成したネットリストをレイアウトパターンに落とすバックエンド設計 の手順を紹介 ライブラリの問題で完全にはうまく行かない Rohm0.6umプロセスを利用 取り扱いには注意 前回のディレクトリを利用 RTL記述 論理合成、簡単化 フロントエンド設計 ネットリスト 配置、配線 レイアウト バックエンド設計 前回の作業の再現 ライブラリの作成は既に終わっている ライブラリのオープン以降をスクリプトによ り実行 前回の演習で提出したスクリプトを実行し て仮フロアプランまでを行う 仮フロアプランの結果 レイヤの確認 CEL WindowのLayer Panelをクリック 各レイヤに適切な色が割り当てられていることを確認 このプロセスはメタル3層 横はM1, 縦はM2,重なりそうな所はM3 配線前作業 1. 2. 3. 4. 5. 6. 7. 8. 9. 電源、GNDの読込みと論理的な接続 I/Oセル位置の確定 キャパシタンスモデルの設定 Padリングの作成 電源、GNDリングの作成 ストラップの作成 スタンダードセルの電源、GNDの接続 クロックツリーの作成 Filler Cellの挿入 電源セルの読込みと接続 コマンドウインドウにload “cnt_clf.sc”を入力 ネットリストに現れない電源Pad等を読み込む ネットリストの電源・グランドの論理的接続 PrePoute → Connects Port to P/G VDDを Powerに接 続しApply PADもONにし てください OKを押す VDDOも同様に接続する Groundの接続 次にVSSを接続 VSSを Groundに 接続しApply OKを押す VSSOも同様に接続する 最後に左上のOKを押す IOセル位置の確定 load “cnt_tdf.sc” をコマンドウインドウで打ち込む IOセルの位置が確定する redrawすると 微妙に変わって いるのがわかる キャパシタンスモデルの設定 ライブラリにキャパシタンスモデルが設定 されていないため、ここで設定してやる cmCreateCapModelとコマンドラインに打ち 込む 現れたウインドウにテクノロジファイルとラ イブラリ名を入力 値はかなりいい加減だが、これでクロック の配線等が可能になる rohm06apollo.tf PICO16 OKを押す 少し時間が かかる Pad Ringの作成 Pad Ringとは、IOセルの電源とグランドを供給するための外周を回るリング IOセルが完全に隣接していれば、IOセル上のパターンで形成されるため、 本当はたぶん不要 PreRoute → Pad Rings PGのみ Metal3層を利用 OKを押す 見かけに変化はない 電源、グランドリングの作成 PreRoute → Rectangular Rings VDD,VSS 太さは50位で良い 縦はM2、横はM1 位置は適当 電源、グランドリング 気に入らないとき Undoはできないが、指定して消すことは可能 RreRoute→Delete Route Typeを選択 この場合はP/G ringを指定すれば消える OKで消える サイズ等を変えて いろいろやってみよう 電源・GNDストラップの挿入 Core領域が大きい場合に電源供給線を増強するためのもの PreRoute → Straps スタート位置:適当 たて方向でMetal2層 間隔も適当、今回は1セットのみ ストラップ リングと同様、消し て調整してみよ セルの配置 InPlace → Design Placement 今回は特に 変更せずOK 配置結果 拡大して 様子を 見よう これも先と同 じ方法で Stripeを設定 すれば消せ るのでいろい ろやってみて 配置の改善 InPlace → Search and Refine 今回は余裕なので効果はない スタンダードセルに電源、GNDを供給 PreRoute→Standard Cells そのままOK 拡大して セルに接続さ れている様子 を見よう 電源、グランドの配線 今回のチップは、電源とGNDが上下左右 に端から数えて8ピン目と9ピン目に配置さ れている これをCel ウィンドウのSelect Point で選 択する 失敗したらDeslect-pointでやり直す 選択され ると白く 変化 電源、グランドの配線 PreRoute → Macros/Pads Pad選択 Selectedにする Specified → Horizontal を19 M3にする Route Boundary…をセット(今 回は関係ない) 電源、グランドの配線 DRCをクリック Use Fat Viaをクリック (ルールを満足するため) HideしてOKをクリック クロックツリーが必要な理由 D Q D Q 同時にクロックが立ち上がらなければならない クロック間の位相のずれ→クロックスキュー クロックスキューがあると、Hold Time errorが起きる Hold Time エラーは怖い:クロックを下げてもとにかく動かない クロックツリーが必要な理由 クロックのファンアウトは大きい 配線も考慮する必要がある したがって、クロックツリーは 配置後、配線前に作る クロックツリーの作成:遅延情報ファイルの読込み Timing → Load SDC 合成時に作った遅延 情報ファイル ppico16.sdc を読み込み OKを押す クロックツリーの作成:オプション設定 Clock → Clock Common Options クロック名(CLK) 使うゲートの種類 INV1, BUF1 インバータ バッファ OKを押す クロックツリーの作成 Clock → Clock Tree Synthesis そのままOKを押す クロックツリー Clock→Clock Browser CLKを選択し、 Show Selectedをクリック ツリー状に配 送されている のがわかる 見たら、Clear Allで 消しといた方が良い Filler Cellの挿入 スタンダードセルは連続して並んでいない セル同士の間隔が狭い/広いと 設計制約を満足できなくなる そこで、ダミーのセルで埋めてやる これをFillerと呼ぶ Well Filler埋め Post Place→Add Intra Row Well Filler Layerを2に設定し、 Apply Well Filler埋め Post Place→Add Intra Row Well Filler Layerを2に設定し、 Apply アクティブ領域のFiller埋め 52 NACTを指定し Apply 53 PACTを指定し Apply N-WELL, N-ACT,P-ACTって何? N-WELL:全体がp型の時 N型のサブストレートを作る ために必要 PACT:酸化薄膜を作って トランジスタとして動作させる 領域 NACT Fillerにより セルが増え ている 演習 前回設計したPICOをこの段階まで配線 前処理をせよ。 操作過程はlogファイルとして残るので、 それからスクリプトファイルをまとめよ。 ([email protected])までスクリ プトファイルを提出のこと
© Copyright 2025 ExpyDoc