(57)【特許請求の範囲】
【請求項１】
与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報を抽出することにより回路データの縮約を行なうために、回路情報入力部と、状態展開部と、ノードグループ化部と、経路探索部と、縮約回路データ抽出部とを具備する回路縮約装置が実行する回路データ縮約方法であって、
前記状態展開部により、入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び／又は回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開し、ゲート入力が固定電位であるＭＯＳトランジスタのスイッチ状態をＯＦＦとする固定状態展開ステップと、
前記ノードグループ化部により、前記スイッチ状態がＯＦＦとなったＭＯＳトランジスタを境界とすることにより前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するノードグループ化ステップと、
前記経路探索部により、前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出する経路探索ステップと、
前記縮約回路データ抽出部により、前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出する縮約情報出力ステップとを含む
ことを特徴とする回路データ縮約方法。
【請求項２】
上記回路データ縮約方法は更に、
前記縮約回路データ抽出部により、前記抽出のされないＭＯＳトランジスタ、及び該ＭＯＳトランジスタに接続される、少なくとも抵抗、容量、インダクタンス、制御電圧及ダイオードのいずれか１つ以上を前記シミュレーションすべき回路データから削除するステップを含む
ことを特徴とする請求項１に記載の回路データ縮約方法。
【請求項３】
前記回路データは、レイアウト前の回路データ、レイアウト後の回路データおよびプリント基板データのいずれか１つである
ことを特徴とする請求項１または２に記載の回路データ縮約方法。
【請求項４】
上記回路データ縮約方法はさらに、
前記回路情報入力部により、前記回路データ中で、縮約対象外とすべき任意のサブ回路を指示入力させるステップを含む
ことを特徴とする請求項１に記載の回路データ縮約方法。
【請求項５】
前記入力ベクトル及び観測点情報は、表示画面上の回路図上のノードに対して指示される
ことを特徴とする請求項１乃至４のいずれか記載の回路データ縮約方法。
【請求項６】
上記回路データ縮約方法はさらに、
前記縮約回路データ抽出部により、前記回路データ中で抽出された部分と抽出されない部分を、回路図上で識別可能に出力するステップを含む
ことを特徴とする請求項１に記載の回路データ縮約方法。
【請求項７】
上記回路データ縮約方法はさらに、
前記回路情報入力部により、前記回路データ上の内部の任意のノードに対して、該ノードの電位状態を指示させるステップを含む
ことを特徴とする請求項１に記載の回路データ縮約方法。
【請求項８】
上記回路データ縮約方法はさらに、
前記回路情報入力部により、前記経路上にあるノードからの負荷容量の任意の抽出段数を指示入力させるステップを含む
ことを特徴とする請求項１乃至７のいずれか記載の回路データ縮約方法。
【請求項９】
上記回路データ縮約方法はさらに、
前記縮約回路データ抽出部により、並列に接続されている複数のＭＯＳトランジスタを併合し、前記複数のＭＯＳトランジスタの幅を加算した幅を持つ併合素子を生成するステップを含む
ことを特徴とする請求項１に記載の回路データ縮約方法。
【請求項１０】
集積回路の動的なシミュレーションを行なうために、回路情報入力部と、状態展開部と、経路探索部と、縮約回路データ抽出部と、シミュレーション実行部とを具備する回路シミュレーション装置が実行する回路シミュレーション方法であって、
前記状態展開部により、入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び／又は回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開し、ゲート入力が固定電位であるＭＯＳトランジスタのスイッチ状態をＯＦＦとする固定状態展開ステップと、
前記ノードグループ化部により、前記スイッチ状態がＯＦＦとなったＭＯＳトランジスタを境界とすることにより前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するノードグループ化ステップと、
前記経路探索部により、前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出する経路探索ステップと、
前記縮約回路データ抽出部により、前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出する縮約情報出力ステップと、
前記シミュレーション実行部により、前記縮約された回路データを入力として、回路シミュレーションを実行するステップとを含む
ことを特徴とする回路シミュレーション方法。
【請求項１１】
与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報を抽出することにより回路データの縮約を行なう回路データの縮約プログラムを格納するコンピュータ読み取り可能な記録媒体であって、
入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び／又は回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開し、ゲート入力が固定電位であるＭＯＳトランジスタのスイッチ状態をＯＦＦとするモジュールと、
前記スイッチ状態がＯＦＦとなったＭＯＳトランジスタを境界とすることにより前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するモジュールと、
前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出するモジュールと、
前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出するモジュールとを含む処理をコンピュータに実行せしめる回路縮約プログラムを記録する
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回路データ縮約方法及び回路シミュレーション方法に関する。特に、集積回路の設計自動化技術において、回路シミュレーションの入力回路データのうちから、回路シミュレーションの結果に影響を与える回路データのみを抽出して、回路シミュレーションに使用する回路データを自動的に縮約することによって、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮するための技術に関する。
【０００２】
【従来の技術】
一般に、ＬＳＩの設計においては、その各段階において、回路設計自動化のための各種のＥＤＡ（Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  Ａｕｔｏｍａｔｉｏｎ）ツールが多用されている。特に、かかるツールによる設計自動化は、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）のＳＲＡＭ等に代表されるメモリー分野の設計において不可欠である。この自動化は、これらメモリーの回路規模が大であること、および製品化までのＴＡＴ（Ｔｕｒｎ  Ａｒｏｕｎｄ  Ｔｉｍｅ）の短縮化の要請による。
【０００３】
図２８に、メモリーなどに代表される、ＬＳＩの設計のフローを示す。回路設計においては、設計の各段階において、回路上の各素子の設計特性値の抽出、検証を行うために、ＳＰＩＣＥに代表されるような、回路シミュレーションが行われる。かかる回路シミュレーションでは、ＳＰＩＣＥの場合、各素子特性やその接続関係をテキスト表現したネットリストを入力として、タイミング解析、機能解析、消費電力解析などの各種解析、検証が行われる。こうしたシミュレーションは、図２８に示すように、回路設計における複数段階で繰り返し行われる。すなわち、回路設計後の、回路図エディタ等から入力されたスケマティックデータや、レイアウト設計後の、抵抗や容量が付加されたデータなど、各段階において、必要に応じてそれぞれネットリストが生成され、シミュレーションに供されるのである。そして、かかるタイミング解析等のシミュレーションは、設計に要する全体時間のうちの相当部分を占める処理である。
【０００４】
ＡＳＩＣ設計において、かかる回路シミュレータに求められる要件は、以下のとおりである。すなわち、第一に、解析の精度は維持しつつも、実用的な時間内においてシミュレーションを終了することが必要となる。また、第二に、大規模回路を対象として解析が行えることが必要となる。かかる要件を満たすことにより、はじめて、ＴＡＴ短縮や大規模回路への対応といった要請に応えることとなるのである。
【０００５】
しかるに、従来においては、特に、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＡＳＩＣメモリにおけるコンパイラブルセルの回路シミュレーションは、上記要件を満たすものではなかった。すなわち、ＡＳＩＣライブラリ開発におけるメモリ回路の特徴として、第一に、回路規模が大きく１タイプ毎のシミュレーションに時間がかかるのに加え、第二に、ワードとビットの組み合わせが非常に多く、さらに、微細化の進展で精密な寄生素子の抽出も必要なことから、トータルでは膨大な計算時間を要していた。また、特に大規模なメモリの場合には、ＳＰＩＣＥが扱える素子数（６０００〜７０００素子程度）の限界を超えており、全体回路を対象としたシミュレーションを行うことができず、シミュレーションの精度も低下させていた。このことは、メモリ回路設計における大きなボトルネックとなっていた。
【０００６】
そこで、こうした回路シミュレーション時間短縮、換言すれば実用的時間内での回路シミュレーションのために、シミュレーションの対象を、全体回路のうち、シミュレーションに必要となる範囲に限定して、回路サイズを削減すること、即ち、縮約の手法が従来より行われていた。
【０００７】
特にＡＳＩＣメモリーに代表されるような大規模回路の場合、この縮約されたネットリストなどの回路データが、従来よりの回路シミュレータの入力とされることとなる。かかる縮約においても、また、精度を維持しつつ、十分に縮約度を上げて回路規模を削減することが求められるのである。
【０００８】
以下に、従来における縮約の方法を説明する。
【０００９】
従来においては、ＲＡＭなどのコンパイラブルセルの縮約は、一般に手作業で行なわれていた。すなわち、ＳＰＩＣＥ等の回路シミュレーションが可能な程度の等価回路を作って、回路全体のシミュレーションをしていた。具体的には、ＲＡＭ等のコンパイラブルセルでは、回路に規則性が高いため、この規則性のある部分（図２９（ａ））を一つの容量素子で近似することにより、等価容量の形でシミュレーションしていた（図２９（ｂ））。
【００１０】
しかしながら、こうした従来の手作業による縮約方法には、以下の問題点があった。すなわち、このようにＲＡＭを等価回路で近似する方法では、一つに、手作業により縮約を行うため、トータルでの設計期間が非常にかかること、さらには、十分小さな回路に縮約できなかった。また、前述したように、回路シミュレーションは、所望する設計特性値が得られるまで、何回も繰り返し行われるものである。従って、かかる手作業による縮約は、それだけ大きなボトルネックを構成していたのである。
【００１１】
又、かかる縮約を自動的に行なうツールとしては、第１に、ソニー（株）セミコンダクターカンパニーのＰＡＳＴＥＬ（Ａ  Ｐａｒａｍｅｔｅｒｉｚｅｄ  Ｍｅｍｏｒｙ  Ｃｈａｒａｃｔｅｒｉｚａｔｉｏｎ  Ｓｙｓｔｅｍ）（第１０回回路とシステム軽井沢ワークショップ、１９９７・４）がある。図３０は、ＰＡＳＴＥＬの機能構成及び処理手順を示す図である。
【００１２】
以下に、ＰＡＳＴＥＬを用いた、回路縮約の手順につき説明する。尚、図３０における縮退とは、本発明における縮約と同義である。
【００１３】
図３０に示すように、まず、ＳＲＡＭのメモリー回路を、繰り返しと接続の単位となる、リーフセルと呼ばれる基本セルに分解する。そして、各リーフセルのレイアウト情報に基づいて、各リーフセル上のトランジスタ、寄生抵抗、寄生容量について、図中のＳｙｎｏｐｓｙｓ社のＡｒｃａｄｉａ（ＴＭ）という寄生素子抽出用ソフトウエアにより抽出し、ＳＰＩＣＥネットリストを出力する。
【００１４】
そして、各リーフセルについて、抽出されたネットリストを、さらに、ＳＲＡＭセルが負荷になる場合の、その規則的な構造や設計上の特徴に基づいて構成された、所定の縮約（縮退）モデルを用いて、パターンマッチング処理により、回路サイズの縮約を行い、縮約後のネットリストを出力する。
【００１５】
ここにおける、メモリーセル用の縮約モデルは、図３１に示すように、図３１（ａ）の回路を、図３１（ｂ）の回路のような等価回路にし、さらにこれをビットの数だけ太らせたトランジスタにより、モデル化を行ったものである。
【００１６】
そして最後に、こうして各リーフセルごとに縮約されたネットリストを合成することにより、ＳＲＡＭ回路全体の、縮約されたネットリストが得られるのである。
【００１７】
しかしながら、前述した従来の第１のツールによる縮約方法には、以下の問題点があった。即ち、ＳＲＡＭメモリー用の縮約（縮退）モデルに従って、縮約を行うため、ＳＲＡＭのネットリストについての縮約においては、精度を維持しつつ十分小さな回路に縮約することが可能であった。しかしながら、このように、所定のメモリーセルのパターンを認識して、これに基づき縮約を行う方法であるため、これ以外のロジック回路などについては、適用することができず、適用対象が限定された、汎用性を欠く方式にとどまるものであった。以下にその理由を説明する。
【００１８】
従来の第１のツールによる縮約方法には、入力ＳＰＩＣＥネットリスト以外に縮約パターンを定義する縮約パターンファイルが必要となる。即ち、従来の第１のツールの縮約はパターンマッチングによる縮約である。第１のツールは、メモリー回路の一部と定義されたパターンとの照合を行って、一致したメモリー回路の部分を縮約パターンに置き換える処理を行う。このパターンマッチングによる縮約方法の第１のデメリットは、ユーザーが予め手作業で必要な回路縮約パターンを数十種類容易しておく必要がある点にある。第１のツールの場合用意すべき回路縮約パターンは、メモリーセルに関してだけでも１２種類である。また、メモリーの周辺の制御ロジック用に数十種類の回路縮約パターンを用意する必要がある。さらに、第１のツールが対象とするParameteraisez Memoryは、ＡＳＩＣの中で用いられるブロックであるＳＲＡＭである。各社ごとにアーキテクチャの異なる数タイプのブロックが用意される。第１のツールは、このタイプごとに回路縮約パターンを定義する必要がある。従って、第１のツールでは、上記の多量の回路縮約パターンを予め用意する必要があるので、ユーザーの労力が多大である。また、第２のデメリットは、パターンマッチング処理は、逐一パターンの照合を行うので、パターンの種類の増加に伴い、マッチングに要する時間が増大する点にある。
【００１９】
次に、第２には、配線モデルの寄生素子部分である抵抗や容量を縮約するツールとして、例えば、ＵＬＴＩＭＡ社のＵＬＴＩＭＡ−ＰＲ（ＴＭ）や、ＡＶＡＮＴＩ！社のＳＴＡＲ−ＲＣ（ＴＭ）があった。
【００２０】
しかしながら、これら第２のツールは、あくまで寄生素子である抵抗や容量のみを縮約の対象とするもので、トランジスタを縮約することはできなかった。従って、大規模回路の場合、実用的な時間内で回路シミュレーションを行うのには、縮約後のＳＰＩＣＥネットリストのサイズがまだ大きすぎた。
【００２１】
このためこのサイズのネットリストはコンピュータ資源を膨大に要してＳＰＩＣＥ等でのシミュレーションが実行できないか、あるいは実行できたとしても一週間以上など長大な処理時間を必要としていた。
【００２２】
以上のように、従来の集積回路の縮約方法には、以下の問題点があった。
【００２３】
すなわち、従来の縮約においては、長時間を要する上に、回路シミュレータに対する十分小さな回路への縮約がなされていなかった。また、ツールによる縮約においても、適用できる回路や素子の種類が限定されており、汎用性を欠くものであった。さらに、回路規模によっては、シミュレーション時に使用するコンピュータ資源がハードウエア搭載量を上回り、回路シミュレーション自体を実行できない場合も生じていた。
【００２４】
【発明が解決しようとする課題】
以上のように、本発明は、従来技術における、集積回路の設計検証を行うための回路データの縮約に、長時間を要する上に精度も十分に維持できず、さらに全体回路を対象とした回路シミュレーションを行うために十分な程度には回路の縮約度が上げられず、また、汎用的に回路データの縮約が行えなかったという問題点を解決するためになされたものである。
【００２５】
そして、その目的とするところは、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出し、回路シミュレーションに使用する回路データを縮約することにより、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮することを可能とする回路データ縮約方法を提供することにある。
【００２６】
また、他の目的は、ＭＯＳトランジスタの素子特性のみを利用した縮約を行うことにより、適用対象を限定せず、汎用的な回路データ縮約方法を提供することにある。
【００２７】
また、他の目的は、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出し、回路シミュレーションに使用する回路データを縮約することにより、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮することを可能とする回路シミュレーション方法を提供することにある。
【００２８】
更に、他の目的は、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出し、回路シミュレーションに使用する回路データを縮約することにより、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮することを可能とする回路縮約プログラムを格納したコンピュータ読み取り可能な記録媒体および回路シミュレーションプログラムを格納したコンピュータ読み取り可能な記録媒体を提供することにある。
【００２９】
【課題を解決するための手段】
上記目的を達成するための本発明の特徴は、ＭＯＳトランジスタの特性に基づいて回路上で入力信号が伝播し、かつ、かかる伝播が出力観測点に到達する範囲を求め、かかる範囲内にあるノードを抽出することにより素子を縮約する点にある。
【００３０】
ここで、素子とはＭＯＳトランジスタの他、抵抗、容量、インダクタンス、制御電源、およびダイオードなどを含む。又、回路データとは、素子、ノード、およびこれらの接続状態のデータを含む。
【００３１】
この機能を実現する構成として、本発明方法（請求項１）は、与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報の抽出である回路データの縮約方法であって、シミュレーションすべき回路データの１または複数の入力ベクトル及び／または観測点情報を入力するステップと、前記入力ベクトル及び／または観測点情報に基づいて、前記回路データ中から、入力信号の状態変動の伝播に影響を受けるノードで、かつ該ノードの前記状態変動が観測点に影響を与えるノードに対応する素子情報を抽出するステップとを含むことを特徴とする。
【００３２】
上記構成によれば、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、回路規模が削減されることにより、回路シミュレーション処理時間を短縮することが可能となるのである。
【００３３】
尚、ここで、回路シミュレーションとは、回路のタイミング・機能・消費電力・ノイズ等の特性のシミュレーションをいう。
【００３４】
また、請求項２の発明は、前記抽出ステップは更に、前記入力ベクトルに従いシミュレーション期間中に電位が固定されるノードを探索してゲート入力が固定電位であるＭＯＳトランジスタのスイッチ状態を決定するステップと、前記スイッチ状態に基づいて前記ノードをグループ化し、ＭＯＳトランジスタのゲート側のノードグループからチャネル側のゲートグループへの入力信号伝播の経路上にあるノードを抽出するステップとを含むことを特徴とする。
【００３５】
上記構成によれば、ＭＯＳトランジスタの特性のみに基づいて、汎用的なトランジスタの縮約が可能となる。つまり、ＳＲＡＭメモリの他、データパスやＡＬＵ等のロジック回路など各種回路データの規模を削減することが可能となる。
【００３６】
また、請求項３の発明は、与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報の抽出である回路データの縮約方法であって、入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び／または回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開する固定状態展開ステップと、ＭＯＳトランジスタのチャネルで接続される前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するノードグループ化ステップと、前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出する経路探索ステップと、前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出する縮約情報出力ステップとを含むことを特徴とする。
【００３７】
上記構成によれば、固定状態の展開およびノードのグループ化に基づいた経路探索により、ＭＯＳトランジスタの素子特性のみを利用して、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、汎用性を持って回路規模が削減されることにより、回路シミュレーション処理時間を短縮することが可能となる。
【００３８】
また、請求項４の発明は、上記回路データ縮約方法は更に、前記抽出のされないＭＯＳトランジスタに接続される、少なくとも抵抗、容量、インダクタンス、制御電圧及びダイオードのいずれか１つ以上を削除するステップを含むことにより、トランジスタの他、縮約されるトランジスタに接続される抵抗、容量、インダクタンス、制御電圧、ダイオードなどの各素子を併せて縮約することが可能となる。
【００３９】
また、請求項５の発明は、前記回路データは、レイアウト前の回路データ、レイアウト後の回路データおよびプリント基板データのいずれか１つであることにより、回路設計の各段階において、回路シミュレーション時間を削減することが可能となる。
【００４０】
また、請求項６の発明は、上記回路データ縮約方法はさらに、前記回路データ中で、縮約対象外とすべき任意のサブ回路を指示入力させるステップを含むことにより、回路の性質上縮約による誤差が大きくなる回路部分を縮約の対象外と指定することが可能となる。つまり、より精度の高い回路シミュレーションを選択的に行うことが可能となる。
【００４１】
また、請求項７の発明は、前記入力ベクトル及び／または観測点情報は、表示画面上の回路図上のノードに対して指示されることにより、可視的な回路図のグラフィック表示上から簡易に回路データを入力することが可能となる。つまり、本発明へのデータ入力を迅速化するとともに、入力時のミスを低減することが可能となる。
【００４２】
また、請求項８の発明は、上記回路データ縮約方法はさらに、前記回路データ中で抽出された部分と抽出されない部分を、回路図上で識別可能に出力するステップを含むことにより、入力回路データがどのように縮約されたかを視覚的に判別させることが可能となる。
【００４３】
また、請求項９の発明は、上記回路データ縮約方法はさらに、前記回路データ上の内部の任意のノードに対して、該ノードの電位状態を指示させるステップを含むことにより、回路データの電位状態の固定をより確実に行って、縮約率を向上を向上させることが可能となる。
【００４４】
また、請求項１０の発明は、上記回路データ縮約方法はさらに、前記経路上にあるノードからの負荷容量の任意の抽出段数を指示入力させるステップを含むことにより、回路規模や回路特性に応じて縮約率とシミュレーション精度を設計者に比較考量させることが可能となる。
【００４５】
また、請求項１１の発明は、上記回路データ縮約方法はさらに、並列に接続されている複数の素子を併合し、前記複数の素子の幅を加算した幅を持つ併合素子を生成するステップとを含むことにより、さらに縮約率を向上させることが可能となる。
【００４６】
更に、請求項１２の発明は、与えられた回路データからの入力ベクトルの状態に基づいた集積回路の動的な回路シミュレーション方法であって、シミュレーションすべき回路データの１または複数の入力ベクトル及び／または観測点情報を入力するステップと、前記入力ベクトル及び／または観測点情報に基づいて、前記回路データ中から、入力信号の状態変動の伝播に影響を受けるノードで、かつ該ノードの前記状態変動が観測点に影響を与えるノードに対応する素子情報を抽出するステップとを含むことを特徴とする。
【００４７】
上記構成によれば、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、回路規模が削減されることにより、かかる縮約された回路データを用いて行う回路シミュレーション処理時間を短縮することが可能となる。
【００４８】
更に、請求項１３の発明は、与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報の抽出である回路データの縮約プログラムを格納するコンピュータ読み取り可能な記録媒体であって、シミュレーションすべき回路データの１または複数の入力ベクトル及び／または観測点情報を入力するモジュールと、前記入力ベクトル及び／または観測点情報に基づいて、前記回路データ中から、入力信号の状態変動の伝播に影響を受けるノードで、かつ該ノードの前記状態変動が観測点に影響を与えるノードに対応する素子情報を抽出するモジュールとを含むことを特徴とする。
【００４９】
かかる記録媒体によれば、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、回路規模が削減されることにより、かかる縮約された回路データを用いて行う回路シミュレーション処理時間を短縮することが可能となる。
【００５０】
【発明の実施の形態】
第１の実施の形態
以下、本発明の第１の実施形態について、図面を参照しながら詳細に説明する。
【００５１】
ここでは、第一に、ＡＳＩＣメモリの読み出し時間のタイミング特性をシミュレーションする場合に、ＡＳＩＣのコンパイラブルセルに第１の実施形態の回路データ縮約方法を適用した例に沿って説明する。
【００５２】
まず、本発明の第１の実施形態における縮約の処理手順の概略について、図１に基づき説明する。
【００５３】
図１に示すように、第１の実施形態においては、まず縮約の対象となるＳＰＩＣＥネットリスト等の回路データの入力に基づき、必要となる回路データの取り込みが行われる（Ｓ１０）。次に、入力ノードのうち、独立電源電圧で設定された、状態が固定電位であるノードから、さらに状態の固定できるノードを探索して、そのＨＩＧＨまたはＬＯＷいずれかの固定状態の展開が順次行われる（Ｓ２０）。
【００５４】
尚、Ｓ１０で入力される回路データは、レイアウト前の集積回路でもよく、レイアウト後の集積回路でもよい。更にはプリント基板の回路データが用いられてもよい。
【００５５】
次に、入力されたネットリスト上のノードのグループ化を行う（Ｓ３０）。これらのグループを単位として、回路上において、経路探索、即ち、変動入力ノードから観測指定ノードへの経路上にあるグループの探索が行わる（Ｓ４０）。最後に以上の探索結果に基づいて抽出されたノードおよび素子のみを含んだ、縮約後の回路情報が出力される（Ｓ５０）。
【００５６】
ここでまず、第１の実施形態の具体的内容に言及する前に、本実施形態が基礎とする縮約の原理の概要につき、以下に説明する。
【００５７】
ここでは、前述したように、ＡＳＩＣメモリの読み出し時間のタイミング特性をシミュレーションを行うとすると、図２に示すように、例えばアドレス入力の１ビットを変化させて、出力データ線のあるビットに変化が観測されるまでの時間を評価することとなる。
【００５８】
尚、この場合に、通常の動的シミュレーションの実行の際と同様に、予め、適切な入力ベクトル、および、適切な観測指定ノードを与える必要がある。即ち、クリティカルパスが予め明らかになっていることが前提となる。通常は、最もアクセス時間が長くなると考えられるアドレスにアクセスするように入力アドレスが選択され、最も出力が遅くなると考えられるビットのデータ出力を観測することとなる。
【００５９】
縮約において、全体回路のうちで、当該シミュレーションに必要な範囲に回路データを削減することは、以下の２つの手順により行われる。
【００６０】
第一に、入力信号の変化が伝播する範囲に限定することである。すなわち、入力信号の変化が伝播しない部分のノード電位は、決して変化しないので、改めてシミュレーションを行う必要はない。従って、これを回路データ上から削除しても、シミュレーション結果には影響がないこととなる。つまり、図３（ａ）上の斜線部分は削除してもよいということになる。尚、これは、シミュレーションをスタートする時に、回路が安定状態となっていることが前提となる。例えば、発振回路等の安定状態にない回路が含まれている場合については、Ｓ２０の処理の説明において後述する。
【００６１】
第二に、回路が動作していても、観測点のノードに影響を与えなければ、その部分を削除しても結果に変化は生じない。即ち、図３（ｂ）上の斜線部分も削除してよいということになる。
【００６２】
この縮約原理に基づいて第１の実施形態は、シミュレーションすべき各種回路データの縮約を行う。
【００６３】
次に、第１の実施形態のハードウエア構成を説明する。
【００６４】
本発明に係る回路データ縮約方法は、いわゆる汎用機、ワークステーション、ＰＣ、ネットワーク端末などの各種コンピュータシステムで実施される。
【００６５】
本発明の実施形態で用いるコンピュータシステムのハードウエアは、各種処理を行うためのＣＰＵと、プログラムメモリ−データメモリ等のメモリと、ＦＤ、ＣＤなどの外部記憶装置と、キーボード、マウス等の入力装置と、ディスプレー、プリンタ等の出力装置とを備える。
【００６６】
尚、本発明の回路データ縮約を実現するためのプログラムは、各種記録媒体に保存することができる。かかる記録媒体を上記ハードウエアを具備するコンピュータにより読み出し、当該プログラムを実行することにより、本発明が実施できる。ここで記録媒体とは例えば、メモリ、磁気ディスク、光ディスクなど、プログラムを記録することができる記録全般を含む。
【００６７】
次に、上記の縮約原理に基づいた、本実施形態のアルゴリズムを、図１に示す各処理ごとに詳述する。
【００６８】
まず、回路情報の取り込み（Ｓ１０）においては、ＳＰＩＣＥネットリストが第１の実施形態に係る回路縮約方法に対して読み込まれる。ここで、第１の実施形態に係る回路データ縮約方法に対する入出力は、図４に示すように、ＳＰＩＣＥネットリストが入力となり、縮約されたネットリストが出力となる。ただし、ここにおける入力ネットリストは、外部入力の記述（電圧源等）と、観測点の記述（．ＰＲＩＮＴ文等）とが含まれた、シミュレーション可能なものでなければならない。
【００６９】
尚、これら外部入力および観測点の記述は、通常の回路シミュレーション実行の際と同様、何らかの手段によりユーザーが指示する。通常、最もアクセス時間が長くなると想定されるアドレスが入力アドレスとして選択される。一方、出力が最も遅くなると想定されるビットのデータ出力が観測点として選択される。
【００７０】
尚、第１の実施形態に係る回路縮約方法は、回路設計の単一の段階のみで用いられるものではなく、設計のいくつかの段階で各々用いられるものである。例えば、図２３に示すように、回路図エディタ等からの入力により、スケマティックデータが作成された段階で、ＳＰＩＣＥネットリストを出力して（Ｓ１１０）、ＳＰＩＣＥ等により回路シミュレーションが行われる（Ｓ１２０）。また、レイアウト設計が行われ、容量や抵抗が付加されたレイアウト後のＳＰＩＣＥネットリストに対してもＳＰＩＣＥ等で回路シミュレーションが行われる（Ｓ１６０）。ＳＰＩＣＥや、Ｓｙｎｏｐｓｙｓ社のＰｏｗｅｒＭｉｌｌ（ＴＭ）等の回路シミュレータは、このように設計のいくつかの段階で使われる。
【００７１】
従って、いわばプリプロセッサとして、かかる回路シミュレータの入力ネットリストの縮約を行う第１の実施形態に係る回路データ縮約方法もまた、こうした設計の各フェーズにおいて用いることができるのである。
【００７２】
そして、本実施形態に係る回路データ縮約方法は、通常の回路シミュレーションの入力となるＳＰＩＣＥなどのネットリストから必要な情報を用いて、回路の縮約を行う。従って、前述したように、シミュレーション用に外部入力の記述と、観測点の記述とが含まれていれば、本実施形態のために新たな入力を必要とすることなく、従来の回路シミュレータで用いる既存のデータ（例えば、ＳＰＩＣＥネットリストなど）のみを用いて縮約を実現することができるのである。
【００７３】
次に、固定状態の展開（Ｓ２０）とは、回路シミュレーションの期間中に、常に電位がＶＤＤあるいはＶＳＳレベルに固定されているノードの探索を行う処理である。具体的には、ＳＰＩＣＥネットリストに記述された初期状態の指定、あるいは、入力ノードで値が固定されているものから、シミュレーション期間中電位の変化しないノードを順次探索（抽出）し、各ノードにその状態（ＨＩＧＨまたはＬＯＷ）のラベル付けを行う。
【００７４】
最後の出力段階では、電位固定ノードを、直接ＧＮＤに接続するか、直流電圧源（ＤＣ電源）に接続する。そして、すべての端子が固定電位に接続されている素子は、シミュレーションに関係ないため、削除される。
【００７５】
かかる処理により削除された部分以外が、図３（ａ）の「入力信号変化が伝播する範囲」であると解釈できる。
【００７６】
尚、ここで、発振回路など不安定な回路、基準電位生成回路など安定状態で中間電位を生成する回路などの場合、本処理においては状態固定とは扱われず、そのまま出力対象となる。
【００７７】
さらに、ここで与えられる状態は、ＶＤＤ、ＶＳＳの他、中間電位であってもよい。これらの中間電位は、入力回路データに対する制御コマンドとして与えられてもよい。これにより、メモリーのセンスアンプなどのアナログ回路が混在する回路であっても精度を維持して縮約することができる。
【００７８】
具体的には、状態の展開は、以下のルールを適宜の順序で適用することにより行われる。
（ａ）直流電圧源に直接接続しているノード（外部入力及び電源端子）に、ＶＤＤあるいはＶＳＳとラベル付けする。
（ｂ）ゲート入力がＶＳＳのＮＭＯＳにＯＦＦとラベル付けする。
（ｃ）ゲート入力がＶＤＤのＰＭＯＳにＯＦＦとラベル付けする。
（ｄ）ソースがＶＤＤかつゲートがＶＳＳであるＰＭＯＳを検出する。そして、そのＰＭＯＳのドレインノードからＶＳＳに至るすべての直流パスの途中にＯＦＦのトランジスタがあれば、そのノードにＶＤＤとラベル付けする。
（ｅ）ソースがＶＳＳかつゲートがＶＤＤであるＮＭＯＳを検出する。そして、そのＮＭＯＳのドレインノードからＶＤＤに至るすべての直流パスの途中にＯＦＦのトランジスタがあれば、そのノードにＶＳＳとラベル付けする。
【００７９】
図５を用いて、一例を説明する。図５（ａ）に示す回路においては、入力がＶＤＤに固定されていれば、その後順次ＶＳＳ、ＶＤＤ、・・・とラベル付けが行われていく。また、図５（ｂ）のような場合には、たとえ入力ＩＮ１が変動しても、入力ＩＮ２がＶＳＳに固定されていれば、ノードＯＵＴ３がＶＤＤに固定される。尚、抵抗素子は、常にＯＮのトランジスタと同様に扱われる。
【００８０】
次に、ノードのグループ化（Ｓ３０）が行われる。ここでグループとは、ＭＯＳのチャネルでつながれているノードの集合と定義される。回路データ中に抵抗・インダクタンス等が含まれている場合には、これらも含めてノードのグループが構成される。Ｓ２０の状態展開の結果、スイッチがＯＦＦとなったＭＯＳのところにグループの切れ目ができることとなる。グループ化とは、ノードのグループ間の関係を有向枝を用いたグラフに表現することである。グループ間の関係は、以下のように設定される。すなわち、ゲート側グループから、チャネル側グループに対して、グラフ上に有向枝が張られる。オフとなったＭＯＳの両側は、シミュレーションに関係のないノードの集合であるので、枝は張られない。グループ間は、ＭＯＳのチャネル側とゲート側で分割され、有向グラフにより、ゲートからチャネル側のグループをたどることができる。
【００８１】
次に、Ｓ３０で作成されたノードのグループの有向グラフ上で、経路探索（Ｓ４０）が行われる。即ち、入力が変動する入力ノードから、観測が指定された出力ノードまでの経路上にあるグループの探索が行われる。
【００８２】
経路探索とは、観測が指定されたノードに、シミュレーション上影響を与えるノードだけを探索（抽出）することを目的として行われる。かかる探索は、ＭＯＳのゲートからソース、ドレインに影響は与えられるが、その逆には影響は与えられないという仮定に基づいてなされる。
【００８３】
その後、「経路探索」は、このグループのグラフ上で行なわれ、入力が変動する入力から、観測が指定された出力までの経路上にあるグループの抽出が行なわれる。
【００８４】
経路探索の処理手順につき、図６に示すフローチャートに基づき説明する。
【００８５】
まず、出力の観測が指定されたノードを含むグループは、「到達可能」とする（Ｓ４１）。次に、あるグループから、「到達可能」グループに対して、有向枝が張られているか、判断を行い（Ｓ４２）、有向枝が張られていた場合には、そのグループも「到達可能」であるとする（Ｓ４３）。以上の処理を、全てのグループに対して行い、かつ新たに「到達可能」になるグループが存在しなくなるまで繰り返す（Ｓ４４）。こうして、「到達可能」であるグループに含まれるノードを、出力の対象とする（Ｓ４５）。また、併せて、出力対象となったノードに接続する素子も出力の対象とする（Ｓ４６）。
【００８６】
最後に、出力対象となった素子に接続するノードで、「到達可能」グループに含まれないノードについて、素子がＮＭＯＳの場合ＶＳＳに、素子がＰＭＯＳの場合ＶＤＤに接続する（Ｓ４７）。そして、出力対象となった素子およびノードが、出力ネットリストに記載されることとなるのである。
【００８７】
ここで出力対象とされなかったＭＯＳトランジスタ素子が、すなわち縮約されたＭＯＳトランジスタ素子となる。
【００８８】
このトランジスタの縮約の際には、縮約されたトランジスタに接続される抵抗、容量、インダクタンス、制御電源、ダイオードなどの各素子も同時に縮約される。
【００８９】
尚、かかる経路探索は、出力観測点を起点とし、入力変動ノードに向かう逆方向の探索とすることも可能である。また、入力変動ノードを起点とし、出力観測点に向かう順方向の探索とすることも可能である。
【００９０】
次に、かかる経路探索を、図７及び図８の例を用いて具体的に説明する。
【００９１】
図７において、ノードＯＵＴが、観測指定ノードであったとすると、まず、グループ３が到達可能とされる（図６、Ｓ４１）。次に、グループ２、１が、それぞれ到達可能とされる（Ｓ４２、Ｓ４３）。そして、これら到達可能なグループに含まれるノードであるＯＵＴ、Ｎ２１、Ｎ２２、Ｎ１、ＩＮ２が出力対象となる（Ｓ４５）。また、これらのノードに接続する素子ＭＰ３、ＭＮ３、ＭＰ４、ＭＮ４、ＭＰ２１、ＭＰ２２、ＭＮ２１、ＭＮ２２、ＭＰ１、ＭＮ１が出力対象となる（Ｓ４６）。ここで、ＭＰ４とＭＮ４のドレインは出力対象となっていなかったので、それぞれＶＤＤ、ＶＳＳに接続する（Ｓ４７）。そして、結果として、図８の回路が出力される。
【００９２】
図９に、縮約されるＳＲＡＭ回路の例を示す。図９（ａ）は、２×２メモリセルのコアの部分を取り出したものである。第１の実施形態により、縮約された結果を図９（ｂ）に示す。図９（ａ）において、ワード線に対しては、インバータを通して入力信号ＩＮ１，ＩＮ２が入ってくる。いま、ＩＮ１には、ＨＩＧＨからＬＯＷに遷移する信号を与えて、メモリセルからの読み出しを行なう。もう一つの入力ＩＮ２は、一定値ＨＩＧＨに固定してある。観測ノードは、ＢＩＴ１，ＢＩＴＮ１と設定してある。
【００９３】
図９（ａ）に示すように、ＳＲＡＭの場合であれば、選択されないアドレスのワード線には入力信号が伝播しない。このため、これらのワード線と、これにつながるメモリセルは削除できることとなる。また、観測しないビットのビット線も観測点に影響を与えない。このため、これらのビット線と、これにつながるメモリセルおよびセンスアンプも削除できることとなる。
【００９４】
図９（ａ）において、変動するワード線はＷ１、観測するビットはｂ１、ｂｎ１であるとすると、図９（ｂ）の鎖線で囲まれたノードと、これに接続する素子のみが抽出され、他は削除されることとなる。かかる手順に則れば、図９のように、規則的に並んでいるメモリセルのみならず、プリデコーダ等の周辺回路も、同様のルールに従い縮約することができる。
【００９５】
図９に示した回路の場合、前述した縮約手順により、素子の数は、２８トランジスタから１２トランジスタに縮約された。そして、素子ＭＮ０，ＭＮ１とインバータＩＮＶ００，ＩＮＶ０１は、ＳＲＡＭの６トランジスタの基本セルとして抽出された。また、ＭＮ４，ＭＮ５では、ゲート入力端子がＶＳＳに固定される。また、ＭＮ２は、そのソース・ドレインがＶＳＳに固定される。ＭＮ３では、ソース・ドレインのそれぞれが、ＶＤＤまたはＶＳＳに固定された。
【００９６】
次に、図９に示したＳＲＡＭ回路の縮約について、入力および出力ネットリストに基づき説明する。
【００９７】
まず、図１０に、本実施形態に係る回路縮約方法に対する入力ネットリストを示す。入力ベクトルは、独立電源電圧の指定により与えられる。ここでは、ＩＮ１とＩＮ２が、独立電源電圧である（Ｌ１）。このうち、ＩＮ１は、時刻０では３．３ボルト、時刻２ｎでも３．３ボルト、時刻２．３８ｎでは０ボルト、時刻５では０ボルトと、状態が時刻と供に変動する独立電源電圧入力である。一方、ＩＮ２は、時刻が変化しても３．３ボルトに固定された独立電源電圧入力である。このＩＮ２のように、状態がＬＯＷかＨＩＧＨに固定されているものは、前述した状態の展開の対象となる（図１のＳ２０）。また、ＩＮ１のように、状態が時刻に伴って変動する独立電源電圧の入力は、ＰＷＬ（Ｐｉｅｃｅ  Ｗｉｓｅ  Ｌｉｎｅａｒ）、ＰＵＬＳＥ等により指定される。
【００９８】
．ＳＵＢＣＫＴは、サブ回路の定義を示す（Ｌ２）。ここでは、ＩＶという回路が定義されており、その入力端子が、Ａ、Ｚであることを示している。ここで、例えば、ＸＩＶ００とは、ＩＶという回路であり、端子がＮ１、Ｎ２、１であることを示している。
【００９９】
また、ＭＮ０からＭＮ７までは、トランジスタのＭＯＳＦＥＴである（Ｌ３）。ここでは、ＮＭＯＳのトランジスタとなっている。ＭＮ０等のラベルに続く第２カラムから第４カラムまでは、それぞれ、信号のドレイン端子、信号のゲート端子、信号のソース端子を示す。また、その後に続く、Ｌ、Ｗは、それぞれ、トランジスタの長さ、幅を表している。
【０１００】
また、．ＩＣは、そのノードの時刻０の際の値を示している（Ｌ４）。
【０１０１】
ここで、ユーザーが観測したいノードは、．ＰＲＩＮＴで指定される。ここでは、ノードＷ１、ノードＢＩＴ１、ノードＢＩＴＮ１が観測ノードとして指定されている（Ｌ５）。
【０１０２】
．ＭＯＤＥＬ文では、それぞれＮＭＯＳ、ＰＭＯＳについて、トランジスタの特性に関する記述がなされている（Ｌ６、Ｌ７）。
【０１０３】
こうして図１０に示す入力ネットリストを縮約した結果の出力ネットリストが、図１１に示すネットリストである。縮約処理を行った後も残るノードであれば、そのノードについての、．ＩＣ、．ＳＡＶＥ、．ＰＲＩＮＴなどが出力される（Ｌ８）。また、その際、トランジスタは、Ｌ９に示すように、フラットに展開されて出力される。
【０１０４】
尚、ここで、回路データ中の任意のサブ回路をユーザーに指定させ、指定されたサブ回路については縮約の対象外とすることもできる。
【０１０５】
例えば、図１３に示すようにユーザーは、縮約対象外としたいサブ回路ＳＵＢＣＫＴ３を、ネットリスト上で、あるいは回路図上で指示して印（図１３中、「ＤＯ  ＮＯＴ  ＴＯＵＣＨ」で示される）をつける。この印の付けられたサブ回路ＳＵＢＣＫＴ３の回路データは縮約対象から除外される。即ち、第１の実施形態によりそのまま抽出され、縮約後のネットリストの一部として出力される。この縮約対象外のサブ回路の指定情報は、図１のフローチャート上、回路情報取り込みステップ（Ｓ１０）の実行前或いは実行とともに入力される。
【０１０６】
例えば、定電流回路などのアナログ回路部分のサブ回路を縮約対象外として指示することにより、アナログ回路を縮約することに起因するシミュレーションの誤差の増大を抑制して、精度の高いシミュレーションを実現することができる。また、その他、あるサブ回路は必ず回路データに含まれているという前提で回路シミュレーションを実行したい場合に、このサブ回路の縮約除外指定は有効である。
【０１０７】
また、第１の実施形態においては、図１２に示す出力ログファイルに、回路縮約の状況が記録される。具体的には、入力ノード数、出力観測ノード数（Ｌ１０、Ｌ１１）、また、縮約前後のノード数（Ｌ１２）が出力される。また、ＭＯＳＦＥＴや抵抗、容量についても、縮約前後の数が、各々出力される（Ｌ１３）。最後に、処理時間や、処理の際のメモリ使用量なども併せて出力される（Ｌ１４、Ｌ１５）。
【０１０８】
第１の実施形態によれば、以下のような効果を奏する。すなわち、そもそもＡＳＩＣのコンパイラブルセルの作り方は、ユーザーがワード数・ビット数を入力すれば、所望の構成のＲＡＭ／ＲＯＭのレイアウト結果を出力するものである。しかし、任意のワード数・ビット数のコンパイラブルセルが自動的にモジュールジェネレータで作成されても、そのパフォーマンス等の特性を得るには、作成されたそれぞれの回路のシミュレーションを行なう必要がある。しかしながら、従来は、最大規模のコンパイラブルセルとなると、ＳＰＩＣＥ等の回路シミュレーションを実用的な時間で行なうことができないか、又は、計算機のメモリを多量に使用するため、回路シミュレーションが不可能であった。
【０１０９】
ここで、第１の実施形態を用いれば、大規模なコンパイラブルセルであっても、精度を落とすことなく、ＳＰＩＣＥネットリストを縮約（圧縮）する。縮約することにより、ＳＰＩＣＥネットリストは、回路の特性抽出に必要最小限のトランジスタ・容量・抵抗に削減されることとなる。すなわち、メモリは、規則的な構造を持つ部分があり、あらかじめ設計者がクリティカルパスを活性化させる入力ベクトルを与えることができる。このため、本実施形態は、かかる入力ベクトルおよび観測指定ノードに基づいて、各種の動的な回路シミュレーションに必要となる情報のみを探索・抽出することができるのである。
【０１１０】
その縮約のＳＲＡＭについての定量的効果の一例として、以下の数値が得られた。
【０１１１】
まず、ＳＰＩＣＥネットリストの縮約率としては、本実施形態により、約１／３から約１／２０００に素子数が削減された。
【０１１２】
また、かかる縮約に伴って、ＳＰＩＣＥシミュレーションの処理時間が、数分の一から約百分の一に短縮された。また、ＡＳＩＣコンパイラブルセルの最大構成のＳＲＡＭ回路は、従来ＳＰＩＣＥでの処理ができなかったのであるが、本実施形態で縮約を行うことにより、全体回路のシミュレーションが可能となったため、かかる大規模回路におけるトータルシミュレーション時間の効率は飛躍的に向上した。
【０１１３】
また、精度に関しても、本実施形態により、縮約を行った場合と行わない場合との、ＳＰＩＣＥシミュレーションの誤差は、３．５％以内で、高精度が維持された。
【０１１４】
但し、本発明のもたらす縮約の定量的効果は上記数値には限定されないことは言うまでもない。
【０１１５】
尚、本発明の適用対象は、以上説明した以外にも、以下に示すように、他の種々の回路に拡張可能である。
【０１１６】
また、上記においては主にＳＲＡＭを用いて説明したが、第１の実施形態はＤＲＡＭコンパイラブルセルに対しても、同様に適用可能である。従来は、コンパイラブルセルとしては、ＳＲＡＭが中心的に使われていた。しかし、最近ではＤＲＡＭを混載したシステムチップが登場しており、かかるＤＲＡＭもコンパイラブルセルとして、作成することができる。これらＤＲＡＭの回路抽出や検証も、第１の実施形態に係る回路縮約方法を同様に適用することにより、効率的に行なうことができる。特に、ＤＲＡＭの場合は、ＳＲＡＭに比べて、さらに回路規模が大きいため、第１の実施形態に係る回路縮約方法の適用によるその効率化の程度も、より多く享受することが可能となる。
【０１１７】
第２の実施形態
以下、本発明の第２の実施形態を、第１の実施形態と異なる点についてのみ、図面を用いて詳細に説明する。
【０１１８】
第２の実施形態は、第１の実施形態に加えて、回路データ中の任意のノードの状態を指示させる機能を追加した実施形態である。
【０１１９】
第１の実施形態では、図１の回路情報の取り込みステップ（Ｓ１０）で入力されるネットリスト上の電源電圧等の外部入力の中で、状態が電源またはグランドに固定されているノードから順次回路データ中の各ノードの固定状態を付与していく。一方、図１６に示すように、第２の実施形態は、ユーザー指定内部ノード情報読み込みステップ（Ｓ２０）で、外部入力の他に回路中の任意のノードの状態を指定入力可能とする。
【０１２０】
図１６の状態の展開・ノードのグループ化・経路探索・縮約回路情報出力ステップ（Ｓ３０乃至Ｓ６０）の処理内容は、図１のＳ２０乃至Ｓ５０の処理と同様であるため、説明は省略する。
【０１２１】
以下、この内部ノードの状態指定入力（Ｓ２０）およびこの状態指定に基づく状態展開（Ｓ３０）の処理内容を、ラッチの内部ノードの状態指定を例にとって具体的に説明する。
【０１２２】
図１４は、ラッチを含む回路の一例である。この回路はメモリーに用いられてもよく、ロジック回路に用いられてもよい。図１４中、Ｌ１乃至Ｌ８はそれぞれラッチを示す。ＩＮ１、ＩＮ２・・・ＩＮｎはプライマリー入力ノードを示す。ＯＵＴ１、ＯＵＴ２、・・・ＯＵＴｎはプライマリー出力ノードを示す。例えば図１５（ａ）では、ノードＰの電位が指定される。図１５（ｂ）では、ノードＱの電位が指定される。尚、ここで与えられる状態は、Ｈｉｇｈ（ＶＤＤ）またはＬｏｗ（ＶＳＳ，Ｇｒｏｕｎｄ）のいずれかである。あるいは、第１の実施形態と同様、ＨｉｇｈとＬｏｗの中間電位を与えることもできる。
【０１２３】
図１７は、図１４の回路の一部を示す。図１７中の破線の領域は図１４の１つのラッチ（Ｌ１乃至Ｌ８）の内部回路を示す。
【０１２４】
図１７に示すように、外部入力指定による状態の展開は、ＩＮ＝ＶＤＤ→ＶＳＳ→ＶＤＤまで進行する。しかし、ノードＮ１にはクロック信号ＣＬＫ・ＣＬＫＢが入力される。このクロック入力がノードＮ１の状態を変動させる。このため、ノードＮ１の状態を固定することができない。
【０１２５】
第２の実施形態は、図１６のＳ１０の入力ネットリストに対して、内部ノードＮ１の状態指定を可能とする。具体的には、図１７のノードＮ１の場合、例えば、以下の行を挿入することにより、ノードＮ１をＶＤＤと指定することができる。
【０１２６】
＊Ｓ  ｓｅｔ  ＮＯＤＥ  Ｎ１  ＶＤＤ
あるいは、入力ネットリストとは別にＳ３０の状態展開の前に、第２の実施形態に対して制御コマンドなどにより上記の内容を指示入力してもよい。あるいはこの制御コマンドを予めファイル化して第２の実施形態に読み込ませてもよい。
【０１２７】
上記の指示入力により、図１７での状態の展開は、ＩＮ＝ＶＤＤ→ＶＳＳ→ＶＤＤ→Ｎ１＝ＶＤＤ→ＶＳＳ→ＶＤＤ→ＶＳＳと進行する。
【０１２８】
第２の実施形態によれば、以下の効果が得られる。
【０１２９】
すなわち、回路データの任意の内部ノードへの状態の指示が可能となる。このため、外部入力だけでは状態が固定できないノードに対しても固定状態を付与して縮約の対象候補とすることが可能となる。特に、ラッチの内部ノード等に対して状態指定を行うことができるので、クロック入力により変動する状態を固定して後続のノードに状態を伝播することが可能となる。このため、より縮約の対象範囲を広げて縮約率を向上させることが可能となる。
【０１３０】
第３の実施形態
以下、本発明の第３の実施形態を、第１の実施形態および第２の実施形態と異なる点についてのみ、図面を用いて詳細に説明する。
【０１３１】
第３の実施形態は、第１の実施形態および第２の実施形態と比較して、回路データの縮約される範囲を制御する機能を付加した実施形態である。
【０１３２】
第３の実施形態は、この所望する縮約範囲の制御を、探索された経路上にない縮約の対象候補領域の中で、縮約対象外として抽出したい負荷容量を、経路上にあり抽出されるノードからの任意の段数を指定入力することにより実現する。
【０１３３】
尚、ここで負荷容量とは、トランジスタのゲート容量、トランジスタジャンクション容量、配線寄生容量等を含む。
【０１３４】
第１の実施形態では、図１の経路探索ステップ（Ｓ４０）および縮約後の回路データ抽出ステップ（Ｓ５０）において、経路探索により到達可能とされたグループに含まれるノードおよび該ノードに接続される素子を出力対象とする（図６のＳ４５、Ｓ４６）。同時にＳ４６で出力対象とされた素子に接続するノードで到達可能なグループに含まれないノードはＶＳＳあるいはＶＤＤに接続する（Ｓ４７）。
【０１３５】
第３の実施形態は、ここで任意の段数の負荷容量をさらに出力対象とする。この段数の指定入力は図１の回路情報の取り込みステップ（Ｓ１０）で入力ネットリストの一部として与えられてもよい。また、制御コマンドなどで第３の実施形態に入力されてもよい。
【０１３６】
図１に示すＳ１０乃至Ｓ５０が行うその他の処理内容は、第１の実施形態と同様であるため、説明を省略する。
【０１３７】
図１８に、第３の実施形態が行う経路探索ステップ（図１のＳ４０）の処理の詳細を示す。
【０１３８】
ここでは、負荷の段数がＮ段（Ｎはユーザーが与える自然数）であるとする。第３の実施形態は、段数のカウントのため、カウンタｉを用いる。まず、カウンタｉが初期設定される（Ｓ４００）。Ｓ４０１乃至Ｓ４０６の処理内容は、第１の実施形態の場合の図６に示すＳ４１乃至Ｓ４６の処理と同様であるため、説明は省略する。
【０１３９】
第３の実施形態は、Ｓ４０５およびＳ４０６で抽出されたノードおよび該ノードに接続される素子を基準として、さらに有向枝上でＮ段分に対応するノードおよび該ノードに接続される素子をも抽出対象とする。まず、Ｓ４０６により出力対象となった素子に接続するノードで、かつ到達可能グループに含まれないノードから有向枝が張られているノードを出力対象とする（Ｓ４０７）。次にＳ４０７で出力対象となったノードに接続する素子を出力対象とする（Ｓ４０８）。Ｓ４０７およびＳ４０８の処理が、カウンタｉが指定されたＮ段に至るまで繰り返し行われる（Ｓ４０９、Ｓ４１０）。尚、この有向枝がある処理対象ノードを基準に複数の（ｍ本の）枝を有する場合は、ｍ本の枝についてＮ段までの処理（Ｓ４０７、Ｓ４０８）がそれぞれ繰り返し行われる。
【０１４０】
最後に、第１の実施形態の場合の図６中のＳ４７の処理と同様、出力対象となった素子に接続するノードで、到達可能グループに含まれないノードに接続する素子がＮＭＯＳであればＶＳＳに、ＰＭＯＳであればＶＤＤに接続する（Ｓ４１１）。
【０１４１】
以下、この負荷容量の段数の指示入力に従った回路データの縮約を、具体的に説明する。
【０１４２】
図１９は、縮約前の入力回路データの一例である。ＩＮは入力ノード、ＯＵＴ１、ＯＵＴ２は出力ノードを示す。ＭＰ１〜ＭＰ８はＰＭＯＳトランジスタを示す。ＭＮ１〜ＭＮ８はＮＭＯＳトランジスタを示す。ここで、入力ＳＰＩＣＥネットリスト上では、ＩＮが時間変動する入力信号として与えられ、ＯＵＴ１が観測指定された出力ノードとして与えられたとする。
【０１４３】
図１９の回路データの場合、図１の状態展開ステップ（Ｓ２０）、ノードグループ化ステップ（Ｓ３０）、および経路探索ステップ（Ｓ４０）を経て抽出される経路は、ＩＮ→Ｎ１→Ｎ２→Ｎ３→Ｎ４→ＯＵＴ１である。これらの経路上に存在して抽出対象となるノードは、ＩＮ、Ｎ１、Ｎ２、Ｎ３、Ｎ４、ＯＵＴ１である。これらのノードに接続する抽出対象となる素子は、ＭＰ１、ＭＮ１、・・・ＭＰ５、ＭＮ５である。
【０１４４】
図２０（ａ）に抽出対象ノードから１段の負荷容量までを抽出する指示入力がされた場合の縮約後の出力回路データを示す。図２０（ａ）に示すように、抽出されるノードＮ１に接続される負荷ＭＰ６、ＭＮ６が抽出されることが理解される。
【０１４５】
図２０（ｂ）に抽出対象ノードから２段の負荷容量までを抽出する指示入力がされた場合の縮約後の出力回路データを示す。図２０（ｂ）に示すように、抽出されるノードＮ１に接続される負荷ＭＰ６、ＭＮ６が抽出され、さらに２段目の負荷ＭＰ７、ＭＮ７が抽出されることが理解される。
【０１４６】
第３の実施形態で指示される負荷の段数により、縮約されたネットリストを用いた回路シミュレーションの精度が変動する。基本的には、負荷を考慮すべき段数と回路データの縮約率は、相互にトレードオフの関係にある。従って、シミュレーション可能な回路データの規模内でシミュレーションの精度を向上させることが可能となる。
【０１４７】
第３の実施形態によれば、以下の効果が得られる。
【０１４８】
負荷を考慮すべき任意の段数を指示入力させ、この段数に基づいて縮約される範囲を制御することが可能となる。これにより、回路規模やシミュレーションの目的に応じて、縮約率（すなわち、どの程度素子数が減少したかの割合）とシミュレーションの精度をユーザー（設計者）が任意に選択することが可能となる。
【０１４９】
第４の実施の形態
以下、第４の実施形態に係る回路データ縮約方法及び回路シミュレーション方法の実施形態を、第１の実施形態乃至第３の実施形態と異なる点についてのみ、図面に基づいて詳細に説明する。
【０１５０】
第４の実施形態は、上記の実施形態に、さらに、回路図上でのグラフィカルな入出力機能を加えた実施形態である。
第４の実施形態の内部的な処理の概要は第１の実施形態と同様であるため説明を省略する。
【０１５１】
第１に、回路データ入力時の処理を説明する。
【０１５２】
図１のＳ１０を行なう回路データの入力の際に、第１の実施形態では、ユーザーは図２１に示すようにテキストエディタなどを用いてネットリストを編集し、入力ベクトルや観測点を指示するためのステートメント（図２１中、太字で表示されているステートメント）を追加する。
【０１５３】
一方、第４の実施形態は、ユーザーにこの入力ベクトルや観測点の指示を、図２２に示すように、例えばスケマティックエディタなどを用いて、回路図上で視覚的に指示させる。
【０１５４】
以下に、第４の実施形態における具体的な入力手順を説明する。
【０１５５】
図２２に示す回路図エディタの編集画面において、ユーザーは、ＶＤＤ又はＶＳＳに固定するノード（ＩＮ２）には、例えばマウス操作などにより当該ノードを指示して印を付ける。一方、ユーザーは、入力ベクトルが時間に従って変動するノード（ＩＮ１）には、当該ノードを指示して印をつけ、更に入力波形をマウス等で描いて指示する。この入力ベクトルは、クリティカルパスを活性化させる入力ベクトル、セットアップ時間・ホールド時間を指示する入力ベクトル等、自由に設定することができる。一方、観測ノード（ＢＴ１、ＢＴＮ１）にも、当該ノードを指示して印を付ける。
【０１５６】
図１のＳ２０以降の処理では、上記の回路図上からの指示内容を処理すべきネットリストに付加して、縮約処理が行われる。
【０１５７】
第２に、縮約後の回路データ出力時の処理を説明する。
【０１５８】
図１のＳ５０の行なう縮約後の回路データの出力の際に、第１の実施形態では、縮約後のネットリストや出力ログを出力する。ユーザーはどのように回路が縮約されたかを識別するためには、出力されたネットリストや出力ログを、入力ネットリストと比較参照する必要がある。
【０１５９】
一方、第４の実施形態は、図２３の回路図データが入力された場合を例とすると、ネットリストおよび出力ログとともにまたはこれに替えて、図２４に示す縮約後の回路図を出力する。
【０１６０】
出力される回路図上では縮約された部分と抽出された部分が、識別可能に区別して表示される。
【０１６１】
例えば、図２４に示すように、回路データ中の縮約された部分は破線で表示されてもよい。他にもハイライト、ブリンク、カラーリングなど何らかの識別可能な強調表示を用いて表示されてよい。
【０１６２】
第４の実施形態によれば、以下の効果が奏される。
【０１６３】
即ち、回路図上で視覚的に入力ベクトルや観測ノードを入力させる。又、回路図上で縮約された部分を抽出された部分と区別して出力する。
【０１６４】
これにより、縮約に必要なデータを容易かつ迅速に指示することが可能となる。又、回路図上で縮約された部分を抽出された部分（ネットリスト上で残された部分）と容易に判別することが可能となる。従って、回路データの縮約に係るユーザーインタフェースが大幅に向上する。
【０１６５】
尚、第４の実施形態は、単独で実施されてもよく、また、上述の第１の実施形態乃至第３の実施形態と任意に組み合わせて実施されてもよい。
【０１６６】
第５の実施の形態
以下、第５の実施形態に係る回路データ縮約方法及び回路シミュレーション方法の実施形態を、第１の実施形態乃至第４の実施形態と異なる点についてのみ、図面に基づいて詳細に説明する。
【０１６７】
第５の実施形態は、上記の実施形態に、さらに、縮約後の回路データに対して、並列に接続されている複数の素子をマージする機能を加えた実施形態である。
【０１６８】
第５の実施形態の内部的な処理の概要は第１の実施形態と同様であるため説明を省略する。
第５の実施形態の行う素子のマージ処理を説明する。
【０１６９】
図１のＳ５０が行なう縮約回路情報出力の際に、第５の実施形態では、並列に接続されている複数のトランジスタをマージして新たなトランジスタを生成する。
【０１７０】
以下に、第５の実施形態における具体的なトランジスタのマージ手順を説明する。
【０１７１】
図２５は、ＳＲＡＭのメモリーコアの回路図を示す。Ｍ１１からＭｎＭＮまではトランジスタを示す。Ｗ１からＷＭは、ワード線の信号を示す。ｂｉｔ１からｂｉｔｎＮまではビット線の信号を示す。ＳＰＩＣＥネットリスト上ではＷ１，ｂｉｔ１，ｂｉｔｎ１が観測ノードとして記述されているとする。
【０１７２】
図２６は、上記の実施形態に係る縮約方法で縮約された回路図である。図２７は、第５の実施形態が、図２６の縮約後の回路データ上の並列なトランジスタをマージした結果の回路図を示す。図２６では、Ｍ２１からＭＭ１までの（Ｍ−１）個のトランジスタのドレインノードはすべてビット線ｂｉｔ１に接続されている。これらの並列接続のトランジスタをマージすることにより、さらに縮約率が向上する。具体的には、並列接続された（Ｍ−１）個のトランジスタは、この（Ｍ−１）個分のトランジスタの幅のそれぞれを合計した幅を持つトランジスタＭＳＵＭＢ１で置き換えられる。さらに、図２６では、Ｍ１２からＭｎ１Ｎまでの（２Ｎ−２）個のトランジスタのゲート端子はすべてワード線Ｗ１に接続されている。またこれらのトランジスタのソースドレインはすべてＧＮＤ（Ｇｒｏｕｎｄ）に接続されている。従って、並列接続された（２Ｎ−２）個のトランジスタは、この（２Ｎ−２）個分のトランジスタの幅のそれぞれを合計した幅を持つトランジスタＭＳＵＭＷ１で置き換えられる。尚、この置き換えはＭＯＳ等のトランジスタで行われてもよく、容量で行われてもよい。
【０１７３】
第５の実施形態によれば、以下の効果が奏される。
【０１７４】
即ち、メモリーセルなどの規則的な回路データ中で並列接続された複数の素子をマージして新たな素子を生成し、元の複数の素子を生成した素子で置き換える。
【０１７５】
これにより、さらに縮約率を向上させることが可能となる。
【０１７６】
尚、第５の実施形態は、単独で実施されてもよく、また、上述の第１の実施形態乃至第４の実施形態と任意に組み合わせて実施されてもよい。
【０１７７】
【発明の効果】
以上説明したように、本発明によれば、以下に記載されたような効果を奏する。
【０１７８】
即ち、本発明においては、入力信号が伝播し、かつ観測指定ノードに影響を与えるノードのみを抽出することで、与えられた回路データのうちで、回路シミュレーション結果に影響を与える回路データのみを抽出して、縮約された回路データを用いた回路シミュレーションが行う機能を提供するので、回路シミュレーションにおける精度は確保しつつ、回路シミュレーション処理時間を大幅に短縮することが可能となる。従って、大規模なコンパイラブルセルであっても、シミュレーションの精度は維持しつつも、実用的な時間内で集積回路の特性抽出を行うことができるという効果が得られる。
【０１７９】
従来は、人手により縮約回路を作っていたが、これを自動化し、回路設計における特性抽出の一貫した自動化が実現されることにより、手作業に伴う誤りがなくなり、迅速に、正確なデータを採取することができる。
【０１８０】
また、ＭＯＳトランジスタの素子特性のみを利用した縮約を行うことにより、適用対象を限定しない、汎用性の高い回路規模の縮約が実現されている。すなわち、予め、経験値またはツールによる分析等によって得られたクリティカルパス情報（クリティカルパスを活性化させる入力ベクトル）を与えることができれば、その適用対象も、単にＡＳＩＣにおけるＳＲＡＭのメモリセルのみならず、ＤＲＡＭやＳＲＡＭメモリーの周辺回路のコントロール部やマイクロプロセッサのロジック回路、データパス、さらには汎用ＳＲＡＭ、汎用ＤＲＡＭやフラッシュメモリーなど、各種ＭＯＳ回路全般に  幅広く適用することが可能である。
【０１８１】
このように、本発明を用いれば、従来ボトルネックとなっていた回路データの縮約、シミュレーションの自動化を実現することによって、集積回路の規模を問わずに、設計の一貫した自動化環境を提供することとなる。従って、ＩＣ製品の精度は維持しつつも、そのＴＡＴの大幅な短縮・製品コストの低減がもたらされる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係る回路縮約方法の処理アルゴリズムを示すフローチャートである。
【図２】メモリーのタイミング特性抽出についてのシミュレーション上の設定を説明する図である。
【図３】回路縮約における原理（入力信号変化が伝播する範囲と観測点に影響を与える範囲）を説明する図である。
【図４】本発明の実施形態に係る回路縮約方法に対する入力および出力の内容を示す図である。
【図５】本発明の実施形態に係る固定電位状態の展開を説明する図である。
【図６】本発明の実施形態の経路探索ステップの処理アルゴリズムを示すフローチャートである。
【図７】ノードのグループ化の一例を示す図である。
【図８】経路探索の結果を説明する図である。
【図９】ＳＲＡＭにおける回路縮約の例を示す図である。
【図１０】本発明の実施形態に係る回路縮約方法に対する入力ＳＰＩＣＥネットリストを示す図である。
【図１１】縮約後の出力ＳＰＩＣＥネットリストを示す図である。
【図１２】本発明の実施形態に係る回路縮約方法の出力ログファイルの内容を示す図である。
【図１３】本発明の第１の実施形態のサブ回路単位の縮約除外機能を説明する図である。
【図１４】ラッチを含む回路データの一例を示す図である。
【図１５】本発明の第２の実施形態における内部ノードの状態指定を説明する図である。
【図１６】本発明の第２の実施形態に係る回路縮約方法の処理アルゴリズムを示すフローチャートである。
【図１７】本発明の第２の実施形態において、状態指定された内部ノードからの電位状態の展開を説明する図である。
【図１８】本発明の第３の実施形態に係る経路探索処理のアルゴリズムを示すフローチャートである。
【図１９】本発明の第３の実施形態に入力される回路データの一例を示す図である。
【図２０】図１７の回路データに対して負荷を考慮する段数を指示した場合の出力回路データを示す図である。
【図２１】本発明の第１の実施形態に係る回路縮約方法への入力ネットリストの一例を示す図である。
【図２２】本発明の第４の実施形態に係る回路縮約方法への入力回路図データの一例を示す図である。
【図２３】本発明の第４の実施形態に係る回路縮約方法の縮約前の回路図データの一例を示す図である。
【図２４】本発明の第４の実施形態が出力する、図２１の回路図データに対応する縮約後の回路図データを示す図である。
【図２５】本発明の第５の実施形態に係る回路縮約方法への入力回路図データの一例を示す図である。
【図２６】第５の実施形態で中間的に抽出される、図２５の回路図データに対応する縮約後の回路図データを示す図である。
【図２７】第５の実施形態が出力する、図２６の回路図データに対応する並列トランジスタをマージした回路図データを示す図である。
【図２８】メモリーの設計手順を説明するフローチャートである。
【図２９】従来技術の人手による回路縮約の例を示す図である。
【図３０】従来技術の回路縮約ツールにおける回路縮約の手順を説明する図である。
【図３１】従来の回路縮約ツールにおけるメモリーセル用縮約モデルを示す図である。
【符号の説明】
ＩＮ１〜ＩＮ８  信号の入力端子
ｗ１，ｗ２  ワードライン
ｂｉｔ１，ｂｉｔｎ１，ｂｉｔ２，ｂｉｔｎ２  ｂｉｔ線
ＭＮ０〜ＭＮ２２  ＮＭＯＳのトランジスタ
ＭＰ０〜ＭＰ２２  ＰＭＯＳのトランジスタ
ＩＶ００〜ＩＶ１３  インバータ
Ｎ１〜Ｎ８  ノード名
【図１】
0003862882.tif 000002
【図２】
0003862882.tif 000003
【図３】
0003862882.tif 000004
【図４】
0003862882.tif 000005
【図５】
0003862882.tif 000006
【図６】
0003862882.tif 000007
【図７】
0003862882.tif 000008
【図８】
0003862882.tif 000009
【図９】
0003862882.tif 000010
【図１０】
0003862882.tif 000011
【図１１】
0003862882.tif 000012
【図１２】
0003862882.tif 000013
【図１３】
0003862882.tif 000014
【図１４】
0003862882.tif 000015
【図１５】
0003862882.tif 000016
【図１６】
0003862882.tif 000017
【図１７】
0003862882.tif 000018
【図１８】
0003862882.tif 000019
【図１９】
0003862882.tif 000020
【図２０】
0003862882.tif 000021
【図２１】
0003862882.tif 000022
【図２２】
0003862882.tif 000023
【図２３】
0003862882.tif 000024
【図２４】
0003862882.tif 000025
【図２５】
0003862882.tif 000026
【図２６】
0003862882.tif 000027
【図２７】
0003862882.tif 000028
【図２８】
0003862882.tif 000029
【図２９】
0003862882.tif 000030
【図３０】
0003862882.tif 000031
【図３１】
0003862882.tif 000032