改訂版EDA用語辞典とは・著者一覧

 自動レイアウトを実行するEDAツール(automatic layout tool,automatic placer and router)は,セルやマクロセルの接続情報(ネットリスト=論理回路設計結果)を入力すると,チップ上のセルやマクロセルの位置を自動的に決め(配置し),その間を自動的に結ぶ(配線する)。

 ほかのEDAツールと同様に,自動レイアウト・ツールを使うには,まずセル・ライブラリを準備する必要がある。これは,内部のレイアウト設計が完了しているセルの集合である。ライブラリ中のセルの回路規模はさまざまである。NANDゲートやフリップフロップなどのスタンダード・セルから,RAMやROM,CPUコアといったマクロセルまである。

 セル・ライブラリに加えて,自動レイアウト設計ツールを稼動させる前には,レイアウト設計上で守らなければならない設計制約(配線の幅や許容間隔,遅延時間など)を準備する。

論理合成と融合も

 こうした準備が整うと,ネットリストを自動レイアウト・ツールに入力する。自動レイアウト・ツールの最終出力は,チップのマスク・レイアウト・パターン(通常はGDS IIストリーム・ファイル)である。

 自動レイアウト・ツールに入力するネットリストは,論理設計工程の自動化が進んだことで,人手設計したネットリストではなく,論理合成ツールがRTL(register transfer level)記述から自動生成したネットリストを用いるのが一般的になっている。

 最近では自動レイアウト・ツールと論理合成ツールの融合によって,配置処理と論理回路の最適化を同時に実施できるようになっている。この処理を物理合成(physical synthesis ) と呼ぶ。

諸課題を同時に解決

 自動レイアウト・ツールは,EDAの中では早い時期から使われているが,それを取り巻く環境の変化に呼応して進展してきた。例えば,半導体製造技術の進展でLSIの微細化や高速化,大規模化が進んでいる。同時に,機器(セット)開発競争の激化により,LSIの開発期間短縮への要請も強くなっている。このため,最近は,自動レイアウト・ツールには,大規模化,高速化,微細化に伴う諸課題を同時に最適化することが求められる。

 具体的には,(a)処理時間に関して「大規模な回路のレイアウト設計を短時間に行える」ことが,(b)集積密度に関して「できる限り小さなチップ面積にマクロセルと配線を収める」ことが,基本性能として要求される。

 さらに,(c)動作速度に関して「配線負荷(=配線の遅延時間)を制御し,LSIの動作速度を高める」ことが,(d)信号品質に関して「信号間のクロストークで信号品質を劣化させない」ことが,(e)電源品質に関して「動作時の電力消費が原因の電源雑音を抑制する」こと,そして(f)製造性に関して「LSI製造時の素子の性能バラつきや露光の特性を考慮して,歩留まりが低くなる構造を避ける」ことが同時に求められている。

タイミング制約を守る

 この中で(c)動作速度に関して,ユーザーが設定したタイミング(遅延時間)の制約条件を守るように処理を進める機能を「タイミング・ドリブン・レイアウト」と呼ぶ。また,(c)以外も含めて同時に最適化する機能を,「コンストレイント・ドリブン・レイアウト」と呼んでいる。

 これらの最適化を行う場合,一つずつ順番に最適化すると,各最適化処理の間で矛盾が生じることがある。例えば,LSIに複数の動作モード(録画/再生,動作/待機など)があり,それぞれのタイミング制約が異なる場合,あるモードでタイミング違反を解消する最適化が,別のモードではタイミングを悪化させる変更になる。

 このためEDAベンダーは,このような複数の制約を同時に評価し,矛盾なく最適化ができるように,自動レイアウト・ツールの機能・性能を向上させている。このうち,複数の動作環境(温度や電圧など)と動作モードを同に考慮して最適化する機能をMCMM(multi-corner/multi-mode),あるいはMMMC(multi-mode /multi-corner)と呼ぶ。

複数のステップで処理

 自動レイアウト設計ツールは,以下のような複数のステップで,所望のLSIの物理設計データを作成する。一部は人手での処理が必要だが,大半はツールが自動的に処理する。

(1)データ入力:設計制約,設計ルール,セル・ライブラリ,ネットリストを自動レイアウト・ツールに入力する。

(2)フロアプラニング:マクロセルの位置を指定したり,スタンダード・セルのグルーピングやその位置の指定をする。電源配線の概略経路なども決める。フロアプラニングは基本的にレイアウト設計者が人手で作業する。この作業の機能を単体のツールとして切り出したのが,「フロアプランナ」である。

(3)配置:スタンダード・セルを最適な位置に自動配置する。セル間の総配線長の最短化や,配線遅延時間の最小化などが目標となる。

(4)クロック分配回路の生成:回路内のフリップフロップやママクロセルへクロックを分配する回路を生成する。

(5)配線:ネットリストを基に,スタンダード・セルやマクロセル間を自動で配線する。通常,大まかな配線経路を求める概略配線処理と,配線層や正確な座標まで決定する詳細配線処理とに分かれる。

(6)出力1:配線容量や配線遅延時間を計算し,タイミング検証用ツールで使うファイルを出力する。

(7)出力2:配置配線結果をストリーム・ファイル(GDS II形式)として出力する。

クロックの木(ツリー)と網(メッシュ)

 上記の七つのステップのうち,(4)のクロック分配回路の自動生成では,クロックのズレ(クロック・スキュー)が無くなるように,ツールが回路を自動的に生成する。クロック分配回路の構成には,ツリー状にクロック信号を分配するクロック・ツリー型や,網の目状にクロック信号を分配するメッシュ・クロック(mesh clock)型などがある。

 前者の方がより設計自由度が高く,多数の設計に用いられている。このため,メッシュ・クロック型を含めて,クロック分配回路の生成機能をCTS(clock tree synthesis)と呼ぶことが多い。

 また(7)の自動レイアウト結果の出力では,出力形式の多様化が進んでいる。従来はGDS(Graphic Data System) II形式やLEF(Library Exchange Format)/DEF(Design Exchange Format)が用いられてきたが,使い勝手やファイル・サイズの観点からOASIS(Open Artwork System Interchange Standard)やOpenAccessなど新しいインターフェース形式が提案されている。

モジュールやアナログ回路の自動化も

 上述したように,セルの自動配置と自動配線を実行するツールを,自動レイアウト・ツールと呼ぶのが一般的であるが,LSIのレイアウト設計に関係したEDAツールは,ほかにもある。例えば,モジュール・ジェネレータやアナログ・レイアウト設計の自動化ツールを挙げられる。

 モジュール・ジェネレータは,メモリーや乗算器など規則的な構造をもつ回路を対象にする。回路の仕様(ビット数など)を入力すると,その回路のマスク・レイアウトを自動生成する。モジュール・ジェネレータは同じ回路を並べる処理をするので,その回路のマスク・レイアウトはあらかじめライブラリとして用意する必要がある。

 アナログ・レイアウト設計の自動化ツールは,アナログ回路のネットリストを入力すると,その回路のマスク・レイアウトを自動生成する。アナログ回路では,トランジスタなどの大きさを調整する必要があるため,デジタル回路用の自動レイアウト・ツールのような構造が固定されたスタンダード・セルでは都合が悪い。その代わりに,パラメータで調整が利く,パラメタライズド・セルを使う。