LSIの大規模化,高速化が進むにつれて,EDA(electronic design automation)ツールを利用したトップダウン設計の重要度は増す一方である。もはや,EDAツールなしではLSI設計が成り立たないといっても決して過言ではない。

 ここでは,論理LSIの設計を例に採り,現在活用されているEDAツールを紹介する。典型的な論理LSIの設計フローを図1に示す。大半のLSIは,あるまとまった単位の回路(マクロセル)を組み合わせて実現する。

 マクロセルの規模はさまざまだ。論理ゲート1個相当の小さな回路から,CPUやDSPといったまるまる1個分の大規模なものまである。この大規模なものはIP(intellectual property)コアと言われ,LSIを構成するために必要なハードウエア/ソフトウエア機能を実現しているブロックである。

 LSIの設計はいくつかのフェーズに分けることができる。ここでは,全部で5フェーズに分けた。そのうち4つはLSI全体を設計するフェーズ,すなわち,システム設計,機能・論理設計,レイアウト設計,テスト設計である。残る1つがマクロセル自体の設計フェーズで,ここでは回路設計と呼ぶ。以下,各フェーズの内容と必要なEDAツールを紹介していく。

製品化始まるシステム設計用ツール

 トップダウン設計の最初のフェーズは,システム設計である。LSI全体をシステムとしてとらえ,その動作を定義し,ハードウエア構成を明確にする。このフェーズ向けのEDAツールにはハードウエア・ソフトウエア協調設計ツールや,動作合成ツールがある。

 前者は,ハードウエアとソフトウエアの両方を同時に設計するためのツール。一方,後者はソフトウエアのプログラムに近い動作記述(behavioral description)から,RTL(register transfer level)記述を合成する。RTL記述は,後述する論理合成ツールの入力になる。ただし,ハードウエア・ソフトウエア協調設計ツールも動作合成ツールも製品化が始まった段階で,実際の設計事例はあまりない。

HDLで記述し論理合成活用

 システム設計が完了すると,機能・論理設計フェーズへ移る(図2)。現在は,このフェーズ以降でEDAツールを活用することが多い。

 機能・論理設計の出発点は,システム設計結果であるRTL記述である。これは,所望のLSIを,レジスタ(フリップフロップ)およびレジスタ間の組み合わせ回路として表したもの。通常,ハードウエアを記述するための言語,ハードウエア記述言語(HDL:hardware description language)でRTL記述を表現する。

 このHDLの仕様や表現できる内容等を統一する「標準化」の動きが活発である。

 機能・論理設計フェーズではこのRTL記述を詳細化し,ゲート・レベルの論理回路(ネットリストとも呼ばれ,マクロセルの接続関係データである)を得る。

 RTL記述は,設計者がHDLを使って直接定義するか,HDLのグラフィカル入力ツール(一時,ESDAツールといわれていたことがある)を使う。

 そして,論理シミュレータを使って論理機能検証する。このとき,論理機能検証対象のRTL記述がどの程度検証されたか(網羅度)をコード・カバレッジ・ツールを用いてチェックする。また,論理機能検証の入力となるテスト・パターン(テストベンチ)は,はテストベンチ生成ツールで作成することが多くなってきている。

 これら機能論理検証のあと,デザイン・プランナを使って,最終的なチップの仕様(チップ面積や消費電力,遅延時間など)を見積もる。もし,見積った仕様が満足できないレベルだった場合には,RTL記述の変更(回路変更に相当)を行なう。仕様に満足がいけば,論理合成ツールを適用し,ゲート・レベルの論理回路を得る。

 論理合成ツールはすべてのゲート・レベル論理回路を最適設計できるわけではない。実際の設計では,人手設計した回路と論理合成した回路を組み合わせることが多い。人手設計するためのEDAツールが回路図エディタ(スケマティック・キャプチャともいう)である。

豊富になった検証ツール

 こうして得られた論理回路は,論理シミュレータを再び使って検証する。最近,この論理検証を行なうツールとしてフォーマル・ベリファイアが登場してきた。フォーマル・ベリファイアは,RTL記述とゲート・レベル論理回路の論理的な等価性を検証する。マイクロプロセサなど大規模LSIの検証には,論理エミュレータを併用することがある。

 最近はこれらのほかに,タイミングを解析するためのスタティック・タイミング・アナライザや消費電力を子細に検討する消費電力解析ツールを併用するケースが増えてきた。また,論理回路とアナログ回路が混在したLSIの場合には,アナログ-デジタル混在シミュレータを使って,両者のインタフェース部分の動作などを検証する。

まずは大まかな位置を決める

 ゲート・レベルの論理回路を構成する各マクロセルを,LSIチップ内に置き(配置),その間を結ぶ(配線する)フェーズがレイアウト設計である(図3)。

 まず,大まかな配置配線イメージをフロアプランナで作り,性能やチップ面積などを見積もる。その後,自動レイアウト・ツールで詳細な配置や配線を行なう。

 0.25μm以下の微細化なLSIでは,レイアウト完了後に,チップの特性や信号波形の確認が必須になってきた。まず,パラメータ抽出ツールを使って,配線まわりの寄生パラメータを抽出する。

 次に,シグナル・インテグリティ検証ツールを用いて,パスの遅延時間や,信号波形の乱れなどを確認する。さらに,信頼性解析ツール(reliability analyzer)を使い,経年変化で発生する可能性のある劣化などをチェックする。

テスト・パターン作成の手間を低減

 設計を終え,そのデータを基に製造したLSIを,LSIテスタでテストするためのデータ(テスト・パターン)を作成するのがテスト設計フェーズである(図4)。作成したパターンを評価するためのEDAツールとして,故障シミュレータがある。

 なお,テスト・パターンの作成は人手作業が主流であるが,特定の回路に対しては自動的にテスト・パターンを生成するATPG(automatic test pattern generator)が利用できる。また,BIST(built-in-self-test)ツールを使うと,LSI内部に自己テストを行なうための回路を自動的に埋め込むことができる。これで,高価なLSIテスタを用いずに,チップ自身が実時間でテストを行なう。

基本はトランジスタの組み合わせ

 最後に回路設計を説明する。このフェーズでは,トランジスタ(プリミティブ素子)を組み合わせて,マクロセルを設計する(図5)。その際,所望のマクロセルの仕様に合致するように,トランジスタの寸法や配線幅などを決める。上述した回路図エディタなどを使い,マクロセルの回路が定義できれば,それを検証するために回路シミュレータアナログーディジタル混在シミュレータを使う。

 検証で問題がなければ,ポリゴン・エディタを使って,マクロセルのマスク・レイアウトを作成する。マスク・レイアウトはレイアウト検証ツールでチェックする。最近は,半導体製造プロセスが微細化したために,マスク・レイアウトにOPC(optical proximity correction:光近接効果補正)が必要になり,そのためのOPCツールも実用化されてきた。


(99. 9. 6更新)

このEDA用語辞典は,日経エレクトロニクス,1996年10月14日号,no.673に掲載した「EDAツール辞典(NEC著)」を改訂・増補したものです。