JP3862882B2 - 回路データ縮約方法及び回路シミュレーション方法 - Google Patents
回路データ縮約方法及び回路シミュレーション方法 Download PDFInfo
- Publication number
- JP3862882B2 JP3862882B2 JP01614399A JP1614399A JP3862882B2 JP 3862882 B2 JP3862882 B2 JP 3862882B2 JP 01614399 A JP01614399 A JP 01614399A JP 1614399 A JP1614399 A JP 1614399A JP 3862882 B2 JP3862882 B2 JP 3862882B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- node
- circuit data
- input
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、回路データ縮約方法及び回路シミュレーション方法に関する。特に、集積回路の設計自動化技術において、回路シミュレーションの入力回路データのうちから、回路シミュレーションの結果に影響を与える回路データのみを抽出して、回路シミュレーションに使用する回路データを自動的に縮約することによって、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮するための技術に関する。
【0002】
【従来の技術】
一般に、LSIの設計においては、その各段階において、回路設計自動化のための各種のEDA(Electronic Design Automation)ツールが多用されている。特に、かかるツールによる設計自動化は、ASIC(Application Specific Integrated Circuit)のSRAM等に代表されるメモリー分野の設計において不可欠である。この自動化は、これらメモリーの回路規模が大であること、および製品化までのTAT(Turn Around Time)の短縮化の要請による。
【0003】
図28に、メモリーなどに代表される、LSIの設計のフローを示す。回路設計においては、設計の各段階において、回路上の各素子の設計特性値の抽出、検証を行うために、SPICEに代表されるような、回路シミュレーションが行われる。かかる回路シミュレーションでは、SPICEの場合、各素子特性やその接続関係をテキスト表現したネットリストを入力として、タイミング解析、機能解析、消費電力解析などの各種解析、検証が行われる。こうしたシミュレーションは、図28に示すように、回路設計における複数段階で繰り返し行われる。すなわち、回路設計後の、回路図エディタ等から入力されたスケマティックデータや、レイアウト設計後の、抵抗や容量が付加されたデータなど、各段階において、必要に応じてそれぞれネットリストが生成され、シミュレーションに供されるのである。そして、かかるタイミング解析等のシミュレーションは、設計に要する全体時間のうちの相当部分を占める処理である。
【0004】
ASIC設計において、かかる回路シミュレータに求められる要件は、以下のとおりである。すなわち、第一に、解析の精度は維持しつつも、実用的な時間内においてシミュレーションを終了することが必要となる。また、第二に、大規模回路を対象として解析が行えることが必要となる。かかる要件を満たすことにより、はじめて、TAT短縮や大規模回路への対応といった要請に応えることとなるのである。
【0005】
しかるに、従来においては、特に、RAM(Random Access Memory)などのASICメモリにおけるコンパイラブルセルの回路シミュレーションは、上記要件を満たすものではなかった。すなわち、ASICライブラリ開発におけるメモリ回路の特徴として、第一に、回路規模が大きく1タイプ毎のシミュレーションに時間がかかるのに加え、第二に、ワードとビットの組み合わせが非常に多く、さらに、微細化の進展で精密な寄生素子の抽出も必要なことから、トータルでは膨大な計算時間を要していた。また、特に大規模なメモリの場合には、SPICEが扱える素子数(6000〜7000素子程度)の限界を超えており、全体回路を対象としたシミュレーションを行うことができず、シミュレーションの精度も低下させていた。このことは、メモリ回路設計における大きなボトルネックとなっていた。
【0006】
そこで、こうした回路シミュレーション時間短縮、換言すれば実用的時間内での回路シミュレーションのために、シミュレーションの対象を、全体回路のうち、シミュレーションに必要となる範囲に限定して、回路サイズを削減すること、即ち、縮約の手法が従来より行われていた。
【0007】
特にASICメモリーに代表されるような大規模回路の場合、この縮約されたネットリストなどの回路データが、従来よりの回路シミュレータの入力とされることとなる。かかる縮約においても、また、精度を維持しつつ、十分に縮約度を上げて回路規模を削減することが求められるのである。
【0008】
以下に、従来における縮約の方法を説明する。
【0009】
従来においては、RAMなどのコンパイラブルセルの縮約は、一般に手作業で行なわれていた。すなわち、SPICE等の回路シミュレーションが可能な程度の等価回路を作って、回路全体のシミュレーションをしていた。具体的には、RAM等のコンパイラブルセルでは、回路に規則性が高いため、この規則性のある部分(図29(a))を一つの容量素子で近似することにより、等価容量の形でシミュレーションしていた(図29(b))。
【0010】
しかしながら、こうした従来の手作業による縮約方法には、以下の問題点があった。すなわち、このようにRAMを等価回路で近似する方法では、一つに、手作業により縮約を行うため、トータルでの設計期間が非常にかかること、さらには、十分小さな回路に縮約できなかった。また、前述したように、回路シミュレーションは、所望する設計特性値が得られるまで、何回も繰り返し行われるものである。従って、かかる手作業による縮約は、それだけ大きなボトルネックを構成していたのである。
【0011】
又、かかる縮約を自動的に行なうツールとしては、第1に、ソニー(株)セミコンダクターカンパニーのPASTEL(A Parameterized Memory Characterization System)(第10回回路とシステム軽井沢ワークショップ、1997・4)がある。図30は、PASTELの機能構成及び処理手順を示す図である。
【0012】
以下に、PASTELを用いた、回路縮約の手順につき説明する。尚、図30における縮退とは、本発明における縮約と同義である。
【0013】
図30に示すように、まず、SRAMのメモリー回路を、繰り返しと接続の単位となる、リーフセルと呼ばれる基本セルに分解する。そして、各リーフセルのレイアウト情報に基づいて、各リーフセル上のトランジスタ、寄生抵抗、寄生容量について、図中のSynopsys社のArcadia(TM)という寄生素子抽出用ソフトウエアにより抽出し、SPICEネットリストを出力する。
【0014】
そして、各リーフセルについて、抽出されたネットリストを、さらに、SRAMセルが負荷になる場合の、その規則的な構造や設計上の特徴に基づいて構成された、所定の縮約(縮退)モデルを用いて、パターンマッチング処理により、回路サイズの縮約を行い、縮約後のネットリストを出力する。
【0015】
ここにおける、メモリーセル用の縮約モデルは、図31に示すように、図31(a)の回路を、図31(b)の回路のような等価回路にし、さらにこれをビットの数だけ太らせたトランジスタにより、モデル化を行ったものである。
【0016】
そして最後に、こうして各リーフセルごとに縮約されたネットリストを合成することにより、SRAM回路全体の、縮約されたネットリストが得られるのである。
【0017】
しかしながら、前述した従来の第1のツールによる縮約方法には、以下の問題点があった。即ち、SRAMメモリー用の縮約(縮退)モデルに従って、縮約を行うため、SRAMのネットリストについての縮約においては、精度を維持しつつ十分小さな回路に縮約することが可能であった。しかしながら、このように、所定のメモリーセルのパターンを認識して、これに基づき縮約を行う方法であるため、これ以外のロジック回路などについては、適用することができず、適用対象が限定された、汎用性を欠く方式にとどまるものであった。以下にその理由を説明する。
【0018】
従来の第1のツールによる縮約方法には、入力SPICEネットリスト以外に縮約パターンを定義する縮約パターンファイルが必要となる。即ち、従来の第1のツールの縮約はパターンマッチングによる縮約である。第1のツールは、メモリー回路の一部と定義されたパターンとの照合を行って、一致したメモリー回路の部分を縮約パターンに置き換える処理を行う。このパターンマッチングによる縮約方法の第1のデメリットは、ユーザーが予め手作業で必要な回路縮約パターンを数十種類容易しておく必要がある点にある。第1のツールの場合用意すべき回路縮約パターンは、メモリーセルに関してだけでも12種類である。また、メモリーの周辺の制御ロジック用に数十種類の回路縮約パターンを用意する必要がある。さらに、第1のツールが対象とするParameteraisez Memoryは、ASICの中で用いられるブロックであるSRAMである。各社ごとにアーキテクチャの異なる数タイプのブロックが用意される。第1のツールは、このタイプごとに回路縮約パターンを定義する必要がある。従って、第1のツールでは、上記の多量の回路縮約パターンを予め用意する必要があるので、ユーザーの労力が多大である。また、第2のデメリットは、パターンマッチング処理は、逐一パターンの照合を行うので、パターンの種類の増加に伴い、マッチングに要する時間が増大する点にある。
【0019】
次に、第2には、配線モデルの寄生素子部分である抵抗や容量を縮約するツールとして、例えば、ULTIMA社のULTIMA−PR(TM)や、AVANTI!社のSTAR−RC(TM)があった。
【0020】
しかしながら、これら第2のツールは、あくまで寄生素子である抵抗や容量のみを縮約の対象とするもので、トランジスタを縮約することはできなかった。従って、大規模回路の場合、実用的な時間内で回路シミュレーションを行うのには、縮約後のSPICEネットリストのサイズがまだ大きすぎた。
【0021】
このためこのサイズのネットリストはコンピュータ資源を膨大に要してSPICE等でのシミュレーションが実行できないか、あるいは実行できたとしても一週間以上など長大な処理時間を必要としていた。
【0022】
以上のように、従来の集積回路の縮約方法には、以下の問題点があった。
【0023】
すなわち、従来の縮約においては、長時間を要する上に、回路シミュレータに対する十分小さな回路への縮約がなされていなかった。また、ツールによる縮約においても、適用できる回路や素子の種類が限定されており、汎用性を欠くものであった。さらに、回路規模によっては、シミュレーション時に使用するコンピュータ資源がハードウエア搭載量を上回り、回路シミュレーション自体を実行できない場合も生じていた。
【0024】
【発明が解決しようとする課題】
以上のように、本発明は、従来技術における、集積回路の設計検証を行うための回路データの縮約に、長時間を要する上に精度も十分に維持できず、さらに全体回路を対象とした回路シミュレーションを行うために十分な程度には回路の縮約度が上げられず、また、汎用的に回路データの縮約が行えなかったという問題点を解決するためになされたものである。
【0025】
そして、その目的とするところは、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出し、回路シミュレーションに使用する回路データを縮約することにより、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮することを可能とする回路データ縮約方法を提供することにある。
【0026】
また、他の目的は、MOSトランジスタの素子特性のみを利用した縮約を行うことにより、適用対象を限定せず、汎用的な回路データ縮約方法を提供することにある。
【0027】
また、他の目的は、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出し、回路シミュレーションに使用する回路データを縮約することにより、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮することを可能とする回路シミュレーション方法を提供することにある。
【0028】
更に、他の目的は、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出し、回路シミュレーションに使用する回路データを縮約することにより、回路シミュレーションの精度は確保しつつ、回路シミュレーション処理時間を短縮することを可能とする回路縮約プログラムを格納したコンピュータ読み取り可能な記録媒体および回路シミュレーションプログラムを格納したコンピュータ読み取り可能な記録媒体を提供することにある。
【0029】
【課題を解決するための手段】
上記目的を達成するための本発明の特徴は、MOSトランジスタの特性に基づいて回路上で入力信号が伝播し、かつ、かかる伝播が出力観測点に到達する範囲を求め、かかる範囲内にあるノードを抽出することにより素子を縮約する点にある。
【0030】
ここで、素子とはMOSトランジスタの他、抵抗、容量、インダクタンス、制御電源、およびダイオードなどを含む。又、回路データとは、素子、ノード、およびこれらの接続状態のデータを含む。
【0031】
この機能を実現する構成として、本発明方法(請求項1)は、与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報の抽出である回路データの縮約方法であって、シミュレーションすべき回路データの1または複数の入力ベクトル及び/または観測点情報を入力するステップと、前記入力ベクトル及び/または観測点情報に基づいて、前記回路データ中から、入力信号の状態変動の伝播に影響を受けるノードで、かつ該ノードの前記状態変動が観測点に影響を与えるノードに対応する素子情報を抽出するステップとを含むことを特徴とする。
【0032】
上記構成によれば、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、回路規模が削減されることにより、回路シミュレーション処理時間を短縮することが可能となるのである。
【0033】
尚、ここで、回路シミュレーションとは、回路のタイミング・機能・消費電力・ノイズ等の特性のシミュレーションをいう。
【0034】
また、請求項2の発明は、前記抽出ステップは更に、前記入力ベクトルに従いシミュレーション期間中に電位が固定されるノードを探索してゲート入力が固定電位であるMOSトランジスタのスイッチ状態を決定するステップと、前記スイッチ状態に基づいて前記ノードをグループ化し、MOSトランジスタのゲート側のノードグループからチャネル側のゲートグループへの入力信号伝播の経路上にあるノードを抽出するステップとを含むことを特徴とする。
【0035】
上記構成によれば、MOSトランジスタの特性のみに基づいて、汎用的なトランジスタの縮約が可能となる。つまり、SRAMメモリの他、データパスやALU等のロジック回路など各種回路データの規模を削減することが可能となる。
【0036】
また、請求項3の発明は、与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報の抽出である回路データの縮約方法であって、入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び/または回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開する固定状態展開ステップと、MOSトランジスタのチャネルで接続される前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するノードグループ化ステップと、前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出する経路探索ステップと、前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出する縮約情報出力ステップとを含むことを特徴とする。
【0037】
上記構成によれば、固定状態の展開およびノードのグループ化に基づいた経路探索により、MOSトランジスタの素子特性のみを利用して、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、汎用性を持って回路規模が削減されることにより、回路シミュレーション処理時間を短縮することが可能となる。
【0038】
また、請求項4の発明は、上記回路データ縮約方法は更に、前記抽出のされないMOSトランジスタに接続される、少なくとも抵抗、容量、インダクタンス、制御電圧及びダイオードのいずれか1つ以上を削除するステップを含むことにより、トランジスタの他、縮約されるトランジスタに接続される抵抗、容量、インダクタンス、制御電圧、ダイオードなどの各素子を併せて縮約することが可能となる。
【0039】
また、請求項5の発明は、前記回路データは、レイアウト前の回路データ、レイアウト後の回路データおよびプリント基板データのいずれか1つであることにより、回路設計の各段階において、回路シミュレーション時間を削減することが可能となる。
【0040】
また、請求項6の発明は、上記回路データ縮約方法はさらに、前記回路データ中で、縮約対象外とすべき任意のサブ回路を指示入力させるステップを含むことにより、回路の性質上縮約による誤差が大きくなる回路部分を縮約の対象外と指定することが可能となる。つまり、より精度の高い回路シミュレーションを選択的に行うことが可能となる。
【0041】
また、請求項7の発明は、前記入力ベクトル及び/または観測点情報は、表示画面上の回路図上のノードに対して指示されることにより、可視的な回路図のグラフィック表示上から簡易に回路データを入力することが可能となる。つまり、本発明へのデータ入力を迅速化するとともに、入力時のミスを低減することが可能となる。
【0042】
また、請求項8の発明は、上記回路データ縮約方法はさらに、前記回路データ中で抽出された部分と抽出されない部分を、回路図上で識別可能に出力するステップを含むことにより、入力回路データがどのように縮約されたかを視覚的に判別させることが可能となる。
【0043】
また、請求項9の発明は、上記回路データ縮約方法はさらに、前記回路データ上の内部の任意のノードに対して、該ノードの電位状態を指示させるステップを含むことにより、回路データの電位状態の固定をより確実に行って、縮約率を向上を向上させることが可能となる。
【0044】
また、請求項10の発明は、上記回路データ縮約方法はさらに、前記経路上にあるノードからの負荷容量の任意の抽出段数を指示入力させるステップを含むことにより、回路規模や回路特性に応じて縮約率とシミュレーション精度を設計者に比較考量させることが可能となる。
【0045】
また、請求項11の発明は、上記回路データ縮約方法はさらに、並列に接続されている複数の素子を併合し、前記複数の素子の幅を加算した幅を持つ併合素子を生成するステップとを含むことにより、さらに縮約率を向上させることが可能となる。
【0046】
更に、請求項12の発明は、与えられた回路データからの入力ベクトルの状態に基づいた集積回路の動的な回路シミュレーション方法であって、シミュレーションすべき回路データの1または複数の入力ベクトル及び/または観測点情報を入力するステップと、前記入力ベクトル及び/または観測点情報に基づいて、前記回路データ中から、入力信号の状態変動の伝播に影響を受けるノードで、かつ該ノードの前記状態変動が観測点に影響を与えるノードに対応する素子情報を抽出するステップとを含むことを特徴とする。
【0047】
上記構成によれば、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、回路規模が削減されることにより、かかる縮約された回路データを用いて行う回路シミュレーション処理時間を短縮することが可能となる。
【0048】
更に、請求項13の発明は、与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報の抽出である回路データの縮約プログラムを格納するコンピュータ読み取り可能な記録媒体であって、シミュレーションすべき回路データの1または複数の入力ベクトル及び/または観測点情報を入力するモジュールと、前記入力ベクトル及び/または観測点情報に基づいて、前記回路データ中から、入力信号の状態変動の伝播に影響を受けるノードで、かつ該ノードの前記状態変動が観測点に影響を与えるノードに対応する素子情報を抽出するモジュールとを含むことを特徴とする。
【0049】
かかる記録媒体によれば、与えられた回路データのうちで、回路シミュレーションの結果に影響を与える回路データのみを抽出することが可能となる。つまり、回路シミュレーションの精度は確保しつつ、回路規模が削減されることにより、かかる縮約された回路データを用いて行う回路シミュレーション処理時間を短縮することが可能となる。
【0050】
【発明の実施の形態】
第1の実施の形態
以下、本発明の第1の実施形態について、図面を参照しながら詳細に説明する。
【0051】
ここでは、第一に、ASICメモリの読み出し時間のタイミング特性をシミュレーションする場合に、ASICのコンパイラブルセルに第1の実施形態の回路データ縮約方法を適用した例に沿って説明する。
【0052】
まず、本発明の第1の実施形態における縮約の処理手順の概略について、図1に基づき説明する。
【0053】
図1に示すように、第1の実施形態においては、まず縮約の対象となるSPICEネットリスト等の回路データの入力に基づき、必要となる回路データの取り込みが行われる(S10)。次に、入力ノードのうち、独立電源電圧で設定された、状態が固定電位であるノードから、さらに状態の固定できるノードを探索して、そのHIGHまたはLOWいずれかの固定状態の展開が順次行われる(S20)。
【0054】
尚、S10で入力される回路データは、レイアウト前の集積回路でもよく、レイアウト後の集積回路でもよい。更にはプリント基板の回路データが用いられてもよい。
【0055】
次に、入力されたネットリスト上のノードのグループ化を行う(S30)。これらのグループを単位として、回路上において、経路探索、即ち、変動入力ノードから観測指定ノードへの経路上にあるグループの探索が行わる(S40)。最後に以上の探索結果に基づいて抽出されたノードおよび素子のみを含んだ、縮約後の回路情報が出力される(S50)。
【0056】
ここでまず、第1の実施形態の具体的内容に言及する前に、本実施形態が基礎とする縮約の原理の概要につき、以下に説明する。
【0057】
ここでは、前述したように、ASICメモリの読み出し時間のタイミング特性をシミュレーションを行うとすると、図2に示すように、例えばアドレス入力の1ビットを変化させて、出力データ線のあるビットに変化が観測されるまでの時間を評価することとなる。
【0058】
尚、この場合に、通常の動的シミュレーションの実行の際と同様に、予め、適切な入力ベクトル、および、適切な観測指定ノードを与える必要がある。即ち、クリティカルパスが予め明らかになっていることが前提となる。通常は、最もアクセス時間が長くなると考えられるアドレスにアクセスするように入力アドレスが選択され、最も出力が遅くなると考えられるビットのデータ出力を観測することとなる。
【0059】
縮約において、全体回路のうちで、当該シミュレーションに必要な範囲に回路データを削減することは、以下の2つの手順により行われる。
【0060】
第一に、入力信号の変化が伝播する範囲に限定することである。すなわち、入力信号の変化が伝播しない部分のノード電位は、決して変化しないので、改めてシミュレーションを行う必要はない。従って、これを回路データ上から削除しても、シミュレーション結果には影響がないこととなる。つまり、図3(a)上の斜線部分は削除してもよいということになる。尚、これは、シミュレーションをスタートする時に、回路が安定状態となっていることが前提となる。例えば、発振回路等の安定状態にない回路が含まれている場合については、S20の処理の説明において後述する。
【0061】
第二に、回路が動作していても、観測点のノードに影響を与えなければ、その部分を削除しても結果に変化は生じない。即ち、図3(b)上の斜線部分も削除してよいということになる。
【0062】
この縮約原理に基づいて第1の実施形態は、シミュレーションすべき各種回路データの縮約を行う。
【0063】
次に、第1の実施形態のハードウエア構成を説明する。
【0064】
本発明に係る回路データ縮約方法は、いわゆる汎用機、ワークステーション、PC、ネットワーク端末などの各種コンピュータシステムで実施される。
【0065】
本発明の実施形態で用いるコンピュータシステムのハードウエアは、各種処理を行うためのCPUと、プログラムメモリ−データメモリ等のメモリと、FD、CDなどの外部記憶装置と、キーボード、マウス等の入力装置と、ディスプレー、プリンタ等の出力装置とを備える。
【0066】
尚、本発明の回路データ縮約を実現するためのプログラムは、各種記録媒体に保存することができる。かかる記録媒体を上記ハードウエアを具備するコンピュータにより読み出し、当該プログラムを実行することにより、本発明が実施できる。ここで記録媒体とは例えば、メモリ、磁気ディスク、光ディスクなど、プログラムを記録することができる記録全般を含む。
【0067】
次に、上記の縮約原理に基づいた、本実施形態のアルゴリズムを、図1に示す各処理ごとに詳述する。
【0068】
まず、回路情報の取り込み(S10)においては、SPICEネットリストが第1の実施形態に係る回路縮約方法に対して読み込まれる。ここで、第1の実施形態に係る回路データ縮約方法に対する入出力は、図4に示すように、SPICEネットリストが入力となり、縮約されたネットリストが出力となる。ただし、ここにおける入力ネットリストは、外部入力の記述(電圧源等)と、観測点の記述(.PRINT文等)とが含まれた、シミュレーション可能なものでなければならない。
【0069】
尚、これら外部入力および観測点の記述は、通常の回路シミュレーション実行の際と同様、何らかの手段によりユーザーが指示する。通常、最もアクセス時間が長くなると想定されるアドレスが入力アドレスとして選択される。一方、出力が最も遅くなると想定されるビットのデータ出力が観測点として選択される。
【0070】
尚、第1の実施形態に係る回路縮約方法は、回路設計の単一の段階のみで用いられるものではなく、設計のいくつかの段階で各々用いられるものである。例えば、図23に示すように、回路図エディタ等からの入力により、スケマティックデータが作成された段階で、SPICEネットリストを出力して(S110)、SPICE等により回路シミュレーションが行われる(S120)。また、レイアウト設計が行われ、容量や抵抗が付加されたレイアウト後のSPICEネットリストに対してもSPICE等で回路シミュレーションが行われる(S160)。SPICEや、Synopsys社のPowerMill(TM)等の回路シミュレータは、このように設計のいくつかの段階で使われる。
【0071】
従って、いわばプリプロセッサとして、かかる回路シミュレータの入力ネットリストの縮約を行う第1の実施形態に係る回路データ縮約方法もまた、こうした設計の各フェーズにおいて用いることができるのである。
【0072】
そして、本実施形態に係る回路データ縮約方法は、通常の回路シミュレーションの入力となるSPICEなどのネットリストから必要な情報を用いて、回路の縮約を行う。従って、前述したように、シミュレーション用に外部入力の記述と、観測点の記述とが含まれていれば、本実施形態のために新たな入力を必要とすることなく、従来の回路シミュレータで用いる既存のデータ(例えば、SPICEネットリストなど)のみを用いて縮約を実現することができるのである。
【0073】
次に、固定状態の展開(S20)とは、回路シミュレーションの期間中に、常に電位がVDDあるいはVSSレベルに固定されているノードの探索を行う処理である。具体的には、SPICEネットリストに記述された初期状態の指定、あるいは、入力ノードで値が固定されているものから、シミュレーション期間中電位の変化しないノードを順次探索(抽出)し、各ノードにその状態(HIGHまたはLOW)のラベル付けを行う。
【0074】
最後の出力段階では、電位固定ノードを、直接GNDに接続するか、直流電圧源(DC電源)に接続する。そして、すべての端子が固定電位に接続されている素子は、シミュレーションに関係ないため、削除される。
【0075】
かかる処理により削除された部分以外が、図3(a)の「入力信号変化が伝播する範囲」であると解釈できる。
【0076】
尚、ここで、発振回路など不安定な回路、基準電位生成回路など安定状態で中間電位を生成する回路などの場合、本処理においては状態固定とは扱われず、そのまま出力対象となる。
【0077】
さらに、ここで与えられる状態は、VDD、VSSの他、中間電位であってもよい。これらの中間電位は、入力回路データに対する制御コマンドとして与えられてもよい。これにより、メモリーのセンスアンプなどのアナログ回路が混在する回路であっても精度を維持して縮約することができる。
【0078】
具体的には、状態の展開は、以下のルールを適宜の順序で適用することにより行われる。
(a)直流電圧源に直接接続しているノード(外部入力及び電源端子)に、VDDあるいはVSSとラベル付けする。
(b)ゲート入力がVSSのNMOSにOFFとラベル付けする。
(c)ゲート入力がVDDのPMOSにOFFとラベル付けする。
(d)ソースがVDDかつゲートがVSSであるPMOSを検出する。そして、そのPMOSのドレインノードからVSSに至るすべての直流パスの途中にOFFのトランジスタがあれば、そのノードにVDDとラベル付けする。
(e)ソースがVSSかつゲートがVDDであるNMOSを検出する。そして、そのNMOSのドレインノードからVDDに至るすべての直流パスの途中にOFFのトランジスタがあれば、そのノードにVSSとラベル付けする。
【0079】
図5を用いて、一例を説明する。図5(a)に示す回路においては、入力がVDDに固定されていれば、その後順次VSS、VDD、・・・とラベル付けが行われていく。また、図5(b)のような場合には、たとえ入力IN1が変動しても、入力IN2がVSSに固定されていれば、ノードOUT3がVDDに固定される。尚、抵抗素子は、常にONのトランジスタと同様に扱われる。
【0080】
次に、ノードのグループ化(S30)が行われる。ここでグループとは、MOSのチャネルでつながれているノードの集合と定義される。回路データ中に抵抗・インダクタンス等が含まれている場合には、これらも含めてノードのグループが構成される。S20の状態展開の結果、スイッチがOFFとなったMOSのところにグループの切れ目ができることとなる。グループ化とは、ノードのグループ間の関係を有向枝を用いたグラフに表現することである。グループ間の関係は、以下のように設定される。すなわち、ゲート側グループから、チャネル側グループに対して、グラフ上に有向枝が張られる。オフとなったMOSの両側は、シミュレーションに関係のないノードの集合であるので、枝は張られない。グループ間は、MOSのチャネル側とゲート側で分割され、有向グラフにより、ゲートからチャネル側のグループをたどることができる。
【0081】
次に、S30で作成されたノードのグループの有向グラフ上で、経路探索(S40)が行われる。即ち、入力が変動する入力ノードから、観測が指定された出力ノードまでの経路上にあるグループの探索が行われる。
【0082】
経路探索とは、観測が指定されたノードに、シミュレーション上影響を与えるノードだけを探索(抽出)することを目的として行われる。かかる探索は、MOSのゲートからソース、ドレインに影響は与えられるが、その逆には影響は与えられないという仮定に基づいてなされる。
【0083】
その後、「経路探索」は、このグループのグラフ上で行なわれ、入力が変動する入力から、観測が指定された出力までの経路上にあるグループの抽出が行なわれる。
【0084】
経路探索の処理手順につき、図6に示すフローチャートに基づき説明する。
【0085】
まず、出力の観測が指定されたノードを含むグループは、「到達可能」とする(S41)。次に、あるグループから、「到達可能」グループに対して、有向枝が張られているか、判断を行い(S42)、有向枝が張られていた場合には、そのグループも「到達可能」であるとする(S43)。以上の処理を、全てのグループに対して行い、かつ新たに「到達可能」になるグループが存在しなくなるまで繰り返す(S44)。こうして、「到達可能」であるグループに含まれるノードを、出力の対象とする(S45)。また、併せて、出力対象となったノードに接続する素子も出力の対象とする(S46)。
【0086】
最後に、出力対象となった素子に接続するノードで、「到達可能」グループに含まれないノードについて、素子がNMOSの場合VSSに、素子がPMOSの場合VDDに接続する(S47)。そして、出力対象となった素子およびノードが、出力ネットリストに記載されることとなるのである。
【0087】
ここで出力対象とされなかったMOSトランジスタ素子が、すなわち縮約されたMOSトランジスタ素子となる。
【0088】
このトランジスタの縮約の際には、縮約されたトランジスタに接続される抵抗、容量、インダクタンス、制御電源、ダイオードなどの各素子も同時に縮約される。
【0089】
尚、かかる経路探索は、出力観測点を起点とし、入力変動ノードに向かう逆方向の探索とすることも可能である。また、入力変動ノードを起点とし、出力観測点に向かう順方向の探索とすることも可能である。
【0090】
次に、かかる経路探索を、図7及び図8の例を用いて具体的に説明する。
【0091】
図7において、ノードOUTが、観測指定ノードであったとすると、まず、グループ3が到達可能とされる(図6、S41)。次に、グループ2、1が、それぞれ到達可能とされる(S42、S43)。そして、これら到達可能なグループに含まれるノードであるOUT、N21、N22、N1、IN2が出力対象となる(S45)。また、これらのノードに接続する素子MP3、MN3、MP4、MN4、MP21、MP22、MN21、MN22、MP1、MN1が出力対象となる(S46)。ここで、MP4とMN4のドレインは出力対象となっていなかったので、それぞれVDD、VSSに接続する(S47)。そして、結果として、図8の回路が出力される。
【0092】
図9に、縮約されるSRAM回路の例を示す。図9(a)は、2×2メモリセルのコアの部分を取り出したものである。第1の実施形態により、縮約された結果を図9(b)に示す。図9(a)において、ワード線に対しては、インバータを通して入力信号IN1,IN2が入ってくる。いま、IN1には、HIGHからLOWに遷移する信号を与えて、メモリセルからの読み出しを行なう。もう一つの入力IN2は、一定値HIGHに固定してある。観測ノードは、BIT1,BITN1と設定してある。
【0093】
図9(a)に示すように、SRAMの場合であれば、選択されないアドレスのワード線には入力信号が伝播しない。このため、これらのワード線と、これにつながるメモリセルは削除できることとなる。また、観測しないビットのビット線も観測点に影響を与えない。このため、これらのビット線と、これにつながるメモリセルおよびセンスアンプも削除できることとなる。
【0094】
図9(a)において、変動するワード線はW1、観測するビットはb1、bn1であるとすると、図9(b)の鎖線で囲まれたノードと、これに接続する素子のみが抽出され、他は削除されることとなる。かかる手順に則れば、図9のように、規則的に並んでいるメモリセルのみならず、プリデコーダ等の周辺回路も、同様のルールに従い縮約することができる。
【0095】
図9に示した回路の場合、前述した縮約手順により、素子の数は、28トランジスタから12トランジスタに縮約された。そして、素子MN0,MN1とインバータINV00,INV01は、SRAMの6トランジスタの基本セルとして抽出された。また、MN4,MN5では、ゲート入力端子がVSSに固定される。また、MN2は、そのソース・ドレインがVSSに固定される。MN3では、ソース・ドレインのそれぞれが、VDDまたはVSSに固定された。
【0096】
次に、図9に示したSRAM回路の縮約について、入力および出力ネットリストに基づき説明する。
【0097】
まず、図10に、本実施形態に係る回路縮約方法に対する入力ネットリストを示す。入力ベクトルは、独立電源電圧の指定により与えられる。ここでは、IN1とIN2が、独立電源電圧である(L1)。このうち、IN1は、時刻0では3.3ボルト、時刻2nでも3.3ボルト、時刻2.38nでは0ボルト、時刻5では0ボルトと、状態が時刻と供に変動する独立電源電圧入力である。一方、IN2は、時刻が変化しても3.3ボルトに固定された独立電源電圧入力である。このIN2のように、状態がLOWかHIGHに固定されているものは、前述した状態の展開の対象となる(図1のS20)。また、IN1のように、状態が時刻に伴って変動する独立電源電圧の入力は、PWL(Piece Wise Linear)、PULSE等により指定される。
【0098】
.SUBCKTは、サブ回路の定義を示す(L2)。ここでは、IVという回路が定義されており、その入力端子が、A、Zであることを示している。ここで、例えば、XIV00とは、IVという回路であり、端子がN1、N2、1であることを示している。
【0099】
また、MN0からMN7までは、トランジスタのMOSFETである(L3)。ここでは、NMOSのトランジスタとなっている。MN0等のラベルに続く第2カラムから第4カラムまでは、それぞれ、信号のドレイン端子、信号のゲート端子、信号のソース端子を示す。また、その後に続く、L、Wは、それぞれ、トランジスタの長さ、幅を表している。
【0100】
また、.ICは、そのノードの時刻0の際の値を示している(L4)。
【0101】
ここで、ユーザーが観測したいノードは、.PRINTで指定される。ここでは、ノードW1、ノードBIT1、ノードBITN1が観測ノードとして指定されている(L5)。
【0102】
.MODEL文では、それぞれNMOS、PMOSについて、トランジスタの特性に関する記述がなされている(L6、L7)。
【0103】
こうして図10に示す入力ネットリストを縮約した結果の出力ネットリストが、図11に示すネットリストである。縮約処理を行った後も残るノードであれば、そのノードについての、.IC、.SAVE、.PRINTなどが出力される(L8)。また、その際、トランジスタは、L9に示すように、フラットに展開されて出力される。
【0104】
尚、ここで、回路データ中の任意のサブ回路をユーザーに指定させ、指定されたサブ回路については縮約の対象外とすることもできる。
【0105】
例えば、図13に示すようにユーザーは、縮約対象外としたいサブ回路SUBCKT3を、ネットリスト上で、あるいは回路図上で指示して印(図13中、「DO NOT TOUCH」で示される)をつける。この印の付けられたサブ回路SUBCKT3の回路データは縮約対象から除外される。即ち、第1の実施形態によりそのまま抽出され、縮約後のネットリストの一部として出力される。この縮約対象外のサブ回路の指定情報は、図1のフローチャート上、回路情報取り込みステップ(S10)の実行前或いは実行とともに入力される。
【0106】
例えば、定電流回路などのアナログ回路部分のサブ回路を縮約対象外として指示することにより、アナログ回路を縮約することに起因するシミュレーションの誤差の増大を抑制して、精度の高いシミュレーションを実現することができる。また、その他、あるサブ回路は必ず回路データに含まれているという前提で回路シミュレーションを実行したい場合に、このサブ回路の縮約除外指定は有効である。
【0107】
また、第1の実施形態においては、図12に示す出力ログファイルに、回路縮約の状況が記録される。具体的には、入力ノード数、出力観測ノード数(L10、L11)、また、縮約前後のノード数(L12)が出力される。また、MOSFETや抵抗、容量についても、縮約前後の数が、各々出力される(L13)。最後に、処理時間や、処理の際のメモリ使用量なども併せて出力される(L14、L15)。
【0108】
第1の実施形態によれば、以下のような効果を奏する。すなわち、そもそもASICのコンパイラブルセルの作り方は、ユーザーがワード数・ビット数を入力すれば、所望の構成のRAM/ROMのレイアウト結果を出力するものである。しかし、任意のワード数・ビット数のコンパイラブルセルが自動的にモジュールジェネレータで作成されても、そのパフォーマンス等の特性を得るには、作成されたそれぞれの回路のシミュレーションを行なう必要がある。しかしながら、従来は、最大規模のコンパイラブルセルとなると、SPICE等の回路シミュレーションを実用的な時間で行なうことができないか、又は、計算機のメモリを多量に使用するため、回路シミュレーションが不可能であった。
【0109】
ここで、第1の実施形態を用いれば、大規模なコンパイラブルセルであっても、精度を落とすことなく、SPICEネットリストを縮約(圧縮)する。縮約することにより、SPICEネットリストは、回路の特性抽出に必要最小限のトランジスタ・容量・抵抗に削減されることとなる。すなわち、メモリは、規則的な構造を持つ部分があり、あらかじめ設計者がクリティカルパスを活性化させる入力ベクトルを与えることができる。このため、本実施形態は、かかる入力ベクトルおよび観測指定ノードに基づいて、各種の動的な回路シミュレーションに必要となる情報のみを探索・抽出することができるのである。
【0110】
その縮約のSRAMについての定量的効果の一例として、以下の数値が得られた。
【0111】
まず、SPICEネットリストの縮約率としては、本実施形態により、約1/3から約1/2000に素子数が削減された。
【0112】
また、かかる縮約に伴って、SPICEシミュレーションの処理時間が、数分の一から約百分の一に短縮された。また、ASICコンパイラブルセルの最大構成のSRAM回路は、従来SPICEでの処理ができなかったのであるが、本実施形態で縮約を行うことにより、全体回路のシミュレーションが可能となったため、かかる大規模回路におけるトータルシミュレーション時間の効率は飛躍的に向上した。
【0113】
また、精度に関しても、本実施形態により、縮約を行った場合と行わない場合との、SPICEシミュレーションの誤差は、3.5%以内で、高精度が維持された。
【0114】
但し、本発明のもたらす縮約の定量的効果は上記数値には限定されないことは言うまでもない。
【0115】
尚、本発明の適用対象は、以上説明した以外にも、以下に示すように、他の種々の回路に拡張可能である。
【0116】
また、上記においては主にSRAMを用いて説明したが、第1の実施形態はDRAMコンパイラブルセルに対しても、同様に適用可能である。従来は、コンパイラブルセルとしては、SRAMが中心的に使われていた。しかし、最近ではDRAMを混載したシステムチップが登場しており、かかるDRAMもコンパイラブルセルとして、作成することができる。これらDRAMの回路抽出や検証も、第1の実施形態に係る回路縮約方法を同様に適用することにより、効率的に行なうことができる。特に、DRAMの場合は、SRAMに比べて、さらに回路規模が大きいため、第1の実施形態に係る回路縮約方法の適用によるその効率化の程度も、より多く享受することが可能となる。
【0117】
第2の実施形態
以下、本発明の第2の実施形態を、第1の実施形態と異なる点についてのみ、図面を用いて詳細に説明する。
【0118】
第2の実施形態は、第1の実施形態に加えて、回路データ中の任意のノードの状態を指示させる機能を追加した実施形態である。
【0119】
第1の実施形態では、図1の回路情報の取り込みステップ(S10)で入力されるネットリスト上の電源電圧等の外部入力の中で、状態が電源またはグランドに固定されているノードから順次回路データ中の各ノードの固定状態を付与していく。一方、図16に示すように、第2の実施形態は、ユーザー指定内部ノード情報読み込みステップ(S20)で、外部入力の他に回路中の任意のノードの状態を指定入力可能とする。
【0120】
図16の状態の展開・ノードのグループ化・経路探索・縮約回路情報出力ステップ(S30乃至S60)の処理内容は、図1のS20乃至S50の処理と同様であるため、説明は省略する。
【0121】
以下、この内部ノードの状態指定入力(S20)およびこの状態指定に基づく状態展開(S30)の処理内容を、ラッチの内部ノードの状態指定を例にとって具体的に説明する。
【0122】
図14は、ラッチを含む回路の一例である。この回路はメモリーに用いられてもよく、ロジック回路に用いられてもよい。図14中、L1乃至L8はそれぞれラッチを示す。IN1、IN2・・・INnはプライマリー入力ノードを示す。OUT1、OUT2、・・・OUTnはプライマリー出力ノードを示す。例えば図15(a)では、ノードPの電位が指定される。図15(b)では、ノードQの電位が指定される。尚、ここで与えられる状態は、High(VDD)またはLow(VSS,Ground)のいずれかである。あるいは、第1の実施形態と同様、HighとLowの中間電位を与えることもできる。
【0123】
図17は、図14の回路の一部を示す。図17中の破線の領域は図14の1つのラッチ(L1乃至L8)の内部回路を示す。
【0124】
図17に示すように、外部入力指定による状態の展開は、IN=VDD→VSS→VDDまで進行する。しかし、ノードN1にはクロック信号CLK・CLKBが入力される。このクロック入力がノードN1の状態を変動させる。このため、ノードN1の状態を固定することができない。
【0125】
第2の実施形態は、図16のS10の入力ネットリストに対して、内部ノードN1の状態指定を可能とする。具体的には、図17のノードN1の場合、例えば、以下の行を挿入することにより、ノードN1をVDDと指定することができる。
【0126】
*S set NODE N1 VDD
あるいは、入力ネットリストとは別にS30の状態展開の前に、第2の実施形態に対して制御コマンドなどにより上記の内容を指示入力してもよい。あるいはこの制御コマンドを予めファイル化して第2の実施形態に読み込ませてもよい。
【0127】
上記の指示入力により、図17での状態の展開は、IN=VDD→VSS→VDD→N1=VDD→VSS→VDD→VSSと進行する。
【0128】
第2の実施形態によれば、以下の効果が得られる。
【0129】
すなわち、回路データの任意の内部ノードへの状態の指示が可能となる。このため、外部入力だけでは状態が固定できないノードに対しても固定状態を付与して縮約の対象候補とすることが可能となる。特に、ラッチの内部ノード等に対して状態指定を行うことができるので、クロック入力により変動する状態を固定して後続のノードに状態を伝播することが可能となる。このため、より縮約の対象範囲を広げて縮約率を向上させることが可能となる。
【0130】
第3の実施形態
以下、本発明の第3の実施形態を、第1の実施形態および第2の実施形態と異なる点についてのみ、図面を用いて詳細に説明する。
【0131】
第3の実施形態は、第1の実施形態および第2の実施形態と比較して、回路データの縮約される範囲を制御する機能を付加した実施形態である。
【0132】
第3の実施形態は、この所望する縮約範囲の制御を、探索された経路上にない縮約の対象候補領域の中で、縮約対象外として抽出したい負荷容量を、経路上にあり抽出されるノードからの任意の段数を指定入力することにより実現する。
【0133】
尚、ここで負荷容量とは、トランジスタのゲート容量、トランジスタジャンクション容量、配線寄生容量等を含む。
【0134】
第1の実施形態では、図1の経路探索ステップ(S40)および縮約後の回路データ抽出ステップ(S50)において、経路探索により到達可能とされたグループに含まれるノードおよび該ノードに接続される素子を出力対象とする(図6のS45、S46)。同時にS46で出力対象とされた素子に接続するノードで到達可能なグループに含まれないノードはVSSあるいはVDDに接続する(S47)。
【0135】
第3の実施形態は、ここで任意の段数の負荷容量をさらに出力対象とする。この段数の指定入力は図1の回路情報の取り込みステップ(S10)で入力ネットリストの一部として与えられてもよい。また、制御コマンドなどで第3の実施形態に入力されてもよい。
【0136】
図1に示すS10乃至S50が行うその他の処理内容は、第1の実施形態と同様であるため、説明を省略する。
【0137】
図18に、第3の実施形態が行う経路探索ステップ(図1のS40)の処理の詳細を示す。
【0138】
ここでは、負荷の段数がN段(Nはユーザーが与える自然数)であるとする。第3の実施形態は、段数のカウントのため、カウンタiを用いる。まず、カウンタiが初期設定される(S400)。S401乃至S406の処理内容は、第1の実施形態の場合の図6に示すS41乃至S46の処理と同様であるため、説明は省略する。
【0139】
第3の実施形態は、S405およびS406で抽出されたノードおよび該ノードに接続される素子を基準として、さらに有向枝上でN段分に対応するノードおよび該ノードに接続される素子をも抽出対象とする。まず、S406により出力対象となった素子に接続するノードで、かつ到達可能グループに含まれないノードから有向枝が張られているノードを出力対象とする(S407)。次にS407で出力対象となったノードに接続する素子を出力対象とする(S408)。S407およびS408の処理が、カウンタiが指定されたN段に至るまで繰り返し行われる(S409、S410)。尚、この有向枝がある処理対象ノードを基準に複数の(m本の)枝を有する場合は、m本の枝についてN段までの処理(S407、S408)がそれぞれ繰り返し行われる。
【0140】
最後に、第1の実施形態の場合の図6中のS47の処理と同様、出力対象となった素子に接続するノードで、到達可能グループに含まれないノードに接続する素子がNMOSであればVSSに、PMOSであればVDDに接続する(S411)。
【0141】
以下、この負荷容量の段数の指示入力に従った回路データの縮約を、具体的に説明する。
【0142】
図19は、縮約前の入力回路データの一例である。INは入力ノード、OUT1、OUT2は出力ノードを示す。MP1〜MP8はPMOSトランジスタを示す。MN1〜MN8はNMOSトランジスタを示す。ここで、入力SPICEネットリスト上では、INが時間変動する入力信号として与えられ、OUT1が観測指定された出力ノードとして与えられたとする。
【0143】
図19の回路データの場合、図1の状態展開ステップ(S20)、ノードグループ化ステップ(S30)、および経路探索ステップ(S40)を経て抽出される経路は、IN→N1→N2→N3→N4→OUT1である。これらの経路上に存在して抽出対象となるノードは、IN、N1、N2、N3、N4、OUT1である。これらのノードに接続する抽出対象となる素子は、MP1、MN1、・・・MP5、MN5である。
【0144】
図20(a)に抽出対象ノードから1段の負荷容量までを抽出する指示入力がされた場合の縮約後の出力回路データを示す。図20(a)に示すように、抽出されるノードN1に接続される負荷MP6、MN6が抽出されることが理解される。
【0145】
図20(b)に抽出対象ノードから2段の負荷容量までを抽出する指示入力がされた場合の縮約後の出力回路データを示す。図20(b)に示すように、抽出されるノードN1に接続される負荷MP6、MN6が抽出され、さらに2段目の負荷MP7、MN7が抽出されることが理解される。
【0146】
第3の実施形態で指示される負荷の段数により、縮約されたネットリストを用いた回路シミュレーションの精度が変動する。基本的には、負荷を考慮すべき段数と回路データの縮約率は、相互にトレードオフの関係にある。従って、シミュレーション可能な回路データの規模内でシミュレーションの精度を向上させることが可能となる。
【0147】
第3の実施形態によれば、以下の効果が得られる。
【0148】
負荷を考慮すべき任意の段数を指示入力させ、この段数に基づいて縮約される範囲を制御することが可能となる。これにより、回路規模やシミュレーションの目的に応じて、縮約率(すなわち、どの程度素子数が減少したかの割合)とシミュレーションの精度をユーザー(設計者)が任意に選択することが可能となる。
【0149】
第4の実施の形態
以下、第4の実施形態に係る回路データ縮約方法及び回路シミュレーション方法の実施形態を、第1の実施形態乃至第3の実施形態と異なる点についてのみ、図面に基づいて詳細に説明する。
【0150】
第4の実施形態は、上記の実施形態に、さらに、回路図上でのグラフィカルな入出力機能を加えた実施形態である。
第4の実施形態の内部的な処理の概要は第1の実施形態と同様であるため説明を省略する。
【0151】
第1に、回路データ入力時の処理を説明する。
【0152】
図1のS10を行なう回路データの入力の際に、第1の実施形態では、ユーザーは図21に示すようにテキストエディタなどを用いてネットリストを編集し、入力ベクトルや観測点を指示するためのステートメント(図21中、太字で表示されているステートメント)を追加する。
【0153】
一方、第4の実施形態は、ユーザーにこの入力ベクトルや観測点の指示を、図22に示すように、例えばスケマティックエディタなどを用いて、回路図上で視覚的に指示させる。
【0154】
以下に、第4の実施形態における具体的な入力手順を説明する。
【0155】
図22に示す回路図エディタの編集画面において、ユーザーは、VDD又はVSSに固定するノード(IN2)には、例えばマウス操作などにより当該ノードを指示して印を付ける。一方、ユーザーは、入力ベクトルが時間に従って変動するノード(IN1)には、当該ノードを指示して印をつけ、更に入力波形をマウス等で描いて指示する。この入力ベクトルは、クリティカルパスを活性化させる入力ベクトル、セットアップ時間・ホールド時間を指示する入力ベクトル等、自由に設定することができる。一方、観測ノード(BT1、BTN1)にも、当該ノードを指示して印を付ける。
【0156】
図1のS20以降の処理では、上記の回路図上からの指示内容を処理すべきネットリストに付加して、縮約処理が行われる。
【0157】
第2に、縮約後の回路データ出力時の処理を説明する。
【0158】
図1のS50の行なう縮約後の回路データの出力の際に、第1の実施形態では、縮約後のネットリストや出力ログを出力する。ユーザーはどのように回路が縮約されたかを識別するためには、出力されたネットリストや出力ログを、入力ネットリストと比較参照する必要がある。
【0159】
一方、第4の実施形態は、図23の回路図データが入力された場合を例とすると、ネットリストおよび出力ログとともにまたはこれに替えて、図24に示す縮約後の回路図を出力する。
【0160】
出力される回路図上では縮約された部分と抽出された部分が、識別可能に区別して表示される。
【0161】
例えば、図24に示すように、回路データ中の縮約された部分は破線で表示されてもよい。他にもハイライト、ブリンク、カラーリングなど何らかの識別可能な強調表示を用いて表示されてよい。
【0162】
第4の実施形態によれば、以下の効果が奏される。
【0163】
即ち、回路図上で視覚的に入力ベクトルや観測ノードを入力させる。又、回路図上で縮約された部分を抽出された部分と区別して出力する。
【0164】
これにより、縮約に必要なデータを容易かつ迅速に指示することが可能となる。又、回路図上で縮約された部分を抽出された部分(ネットリスト上で残された部分)と容易に判別することが可能となる。従って、回路データの縮約に係るユーザーインタフェースが大幅に向上する。
【0165】
尚、第4の実施形態は、単独で実施されてもよく、また、上述の第1の実施形態乃至第3の実施形態と任意に組み合わせて実施されてもよい。
【0166】
第5の実施の形態
以下、第5の実施形態に係る回路データ縮約方法及び回路シミュレーション方法の実施形態を、第1の実施形態乃至第4の実施形態と異なる点についてのみ、図面に基づいて詳細に説明する。
【0167】
第5の実施形態は、上記の実施形態に、さらに、縮約後の回路データに対して、並列に接続されている複数の素子をマージする機能を加えた実施形態である。
【0168】
第5の実施形態の内部的な処理の概要は第1の実施形態と同様であるため説明を省略する。
第5の実施形態の行う素子のマージ処理を説明する。
【0169】
図1のS50が行なう縮約回路情報出力の際に、第5の実施形態では、並列に接続されている複数のトランジスタをマージして新たなトランジスタを生成する。
【0170】
以下に、第5の実施形態における具体的なトランジスタのマージ手順を説明する。
【0171】
図25は、SRAMのメモリーコアの回路図を示す。M11からMnMNまではトランジスタを示す。W1からWMは、ワード線の信号を示す。bit1からbitnNまではビット線の信号を示す。SPICEネットリスト上ではW1,bit1,bitn1が観測ノードとして記述されているとする。
【0172】
図26は、上記の実施形態に係る縮約方法で縮約された回路図である。図27は、第5の実施形態が、図26の縮約後の回路データ上の並列なトランジスタをマージした結果の回路図を示す。図26では、M21からMM1までの(M−1)個のトランジスタのドレインノードはすべてビット線bit1に接続されている。これらの並列接続のトランジスタをマージすることにより、さらに縮約率が向上する。具体的には、並列接続された(M−1)個のトランジスタは、この(M−1)個分のトランジスタの幅のそれぞれを合計した幅を持つトランジスタMSUMB1で置き換えられる。さらに、図26では、M12からMn1Nまでの(2N−2)個のトランジスタのゲート端子はすべてワード線W1に接続されている。またこれらのトランジスタのソースドレインはすべてGND(Ground)に接続されている。従って、並列接続された(2N−2)個のトランジスタは、この(2N−2)個分のトランジスタの幅のそれぞれを合計した幅を持つトランジスタMSUMW1で置き換えられる。尚、この置き換えはMOS等のトランジスタで行われてもよく、容量で行われてもよい。
【0173】
第5の実施形態によれば、以下の効果が奏される。
【0174】
即ち、メモリーセルなどの規則的な回路データ中で並列接続された複数の素子をマージして新たな素子を生成し、元の複数の素子を生成した素子で置き換える。
【0175】
これにより、さらに縮約率を向上させることが可能となる。
【0176】
尚、第5の実施形態は、単独で実施されてもよく、また、上述の第1の実施形態乃至第4の実施形態と任意に組み合わせて実施されてもよい。
【0177】
【発明の効果】
以上説明したように、本発明によれば、以下に記載されたような効果を奏する。
【0178】
即ち、本発明においては、入力信号が伝播し、かつ観測指定ノードに影響を与えるノードのみを抽出することで、与えられた回路データのうちで、回路シミュレーション結果に影響を与える回路データのみを抽出して、縮約された回路データを用いた回路シミュレーションが行う機能を提供するので、回路シミュレーションにおける精度は確保しつつ、回路シミュレーション処理時間を大幅に短縮することが可能となる。従って、大規模なコンパイラブルセルであっても、シミュレーションの精度は維持しつつも、実用的な時間内で集積回路の特性抽出を行うことができるという効果が得られる。
【0179】
従来は、人手により縮約回路を作っていたが、これを自動化し、回路設計における特性抽出の一貫した自動化が実現されることにより、手作業に伴う誤りがなくなり、迅速に、正確なデータを採取することができる。
【0180】
また、MOSトランジスタの素子特性のみを利用した縮約を行うことにより、適用対象を限定しない、汎用性の高い回路規模の縮約が実現されている。すなわち、予め、経験値またはツールによる分析等によって得られたクリティカルパス情報(クリティカルパスを活性化させる入力ベクトル)を与えることができれば、その適用対象も、単にASICにおけるSRAMのメモリセルのみならず、DRAMやSRAMメモリーの周辺回路のコントロール部やマイクロプロセッサのロジック回路、データパス、さらには汎用SRAM、汎用DRAMやフラッシュメモリーなど、各種MOS回路全般に 幅広く適用することが可能である。
【0181】
このように、本発明を用いれば、従来ボトルネックとなっていた回路データの縮約、シミュレーションの自動化を実現することによって、集積回路の規模を問わずに、設計の一貫した自動化環境を提供することとなる。従って、IC製品の精度は維持しつつも、そのTATの大幅な短縮・製品コストの低減がもたらされる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る回路縮約方法の処理アルゴリズムを示すフローチャートである。
【図2】メモリーのタイミング特性抽出についてのシミュレーション上の設定を説明する図である。
【図3】回路縮約における原理(入力信号変化が伝播する範囲と観測点に影響を与える範囲)を説明する図である。
【図4】本発明の実施形態に係る回路縮約方法に対する入力および出力の内容を示す図である。
【図5】本発明の実施形態に係る固定電位状態の展開を説明する図である。
【図6】本発明の実施形態の経路探索ステップの処理アルゴリズムを示すフローチャートである。
【図7】ノードのグループ化の一例を示す図である。
【図8】経路探索の結果を説明する図である。
【図9】SRAMにおける回路縮約の例を示す図である。
【図10】本発明の実施形態に係る回路縮約方法に対する入力SPICEネットリストを示す図である。
【図11】縮約後の出力SPICEネットリストを示す図である。
【図12】本発明の実施形態に係る回路縮約方法の出力ログファイルの内容を示す図である。
【図13】本発明の第1の実施形態のサブ回路単位の縮約除外機能を説明する図である。
【図14】ラッチを含む回路データの一例を示す図である。
【図15】本発明の第2の実施形態における内部ノードの状態指定を説明する図である。
【図16】本発明の第2の実施形態に係る回路縮約方法の処理アルゴリズムを示すフローチャートである。
【図17】本発明の第2の実施形態において、状態指定された内部ノードからの電位状態の展開を説明する図である。
【図18】本発明の第3の実施形態に係る経路探索処理のアルゴリズムを示すフローチャートである。
【図19】本発明の第3の実施形態に入力される回路データの一例を示す図である。
【図20】図17の回路データに対して負荷を考慮する段数を指示した場合の出力回路データを示す図である。
【図21】本発明の第1の実施形態に係る回路縮約方法への入力ネットリストの一例を示す図である。
【図22】本発明の第4の実施形態に係る回路縮約方法への入力回路図データの一例を示す図である。
【図23】本発明の第4の実施形態に係る回路縮約方法の縮約前の回路図データの一例を示す図である。
【図24】本発明の第4の実施形態が出力する、図21の回路図データに対応する縮約後の回路図データを示す図である。
【図25】本発明の第5の実施形態に係る回路縮約方法への入力回路図データの一例を示す図である。
【図26】第5の実施形態で中間的に抽出される、図25の回路図データに対応する縮約後の回路図データを示す図である。
【図27】第5の実施形態が出力する、図26の回路図データに対応する並列トランジスタをマージした回路図データを示す図である。
【図28】メモリーの設計手順を説明するフローチャートである。
【図29】従来技術の人手による回路縮約の例を示す図である。
【図30】従来技術の回路縮約ツールにおける回路縮約の手順を説明する図である。
【図31】従来の回路縮約ツールにおけるメモリーセル用縮約モデルを示す図である。
【符号の説明】
IN1〜IN8 信号の入力端子
w1,w2 ワードライン
bit1,bitn1,bit2,bitn2 bit線
MN0〜MN22 NMOSのトランジスタ
MP0〜MP22 PMOSのトランジスタ
IV00〜IV13 インバータ
N1〜N8 ノード名
Claims (11)
- 与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報を抽出することにより回路データの縮約を行なうために、回路情報入力部と、状態展開部と、ノードグループ化部と、経路探索部と、縮約回路データ抽出部とを具備する回路縮約装置が実行する回路データ縮約方法であって、
前記状態展開部により、入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び/又は回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開し、ゲート入力が固定電位であるMOSトランジスタのスイッチ状態をOFFとする固定状態展開ステップと、
前記ノードグループ化部により、前記スイッチ状態がOFFとなったMOSトランジスタを境界とすることにより前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するノードグループ化ステップと、
前記経路探索部により、前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出する経路探索ステップと、
前記縮約回路データ抽出部により、前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出する縮約情報出力ステップとを含む
ことを特徴とする回路データ縮約方法。 - 上記回路データ縮約方法は更に、
前記縮約回路データ抽出部により、前記抽出のされないMOSトランジスタ、及び該MOSトランジスタに接続される、少なくとも抵抗、容量、インダクタンス、制御電圧及ダイオードのいずれか1つ以上を前記シミュレーションすべき回路データから削除するステップを含む
ことを特徴とする請求項1に記載の回路データ縮約方法。 - 前記回路データは、レイアウト前の回路データ、レイアウト後の回路データおよびプリント基板データのいずれか1つである
ことを特徴とする請求項1または2に記載の回路データ縮約方法。 - 上記回路データ縮約方法はさらに、
前記回路情報入力部により、前記回路データ中で、縮約対象外とすべき任意のサブ回路を指示入力させるステップを含む
ことを特徴とする請求項1に記載の回路データ縮約方法。 - 前記入力ベクトル及び観測点情報は、表示画面上の回路図上のノードに対して指示される
ことを特徴とする請求項1乃至4のいずれか記載の回路データ縮約方法。 - 上記回路データ縮約方法はさらに、
前記縮約回路データ抽出部により、前記回路データ中で抽出された部分と抽出されない部分を、回路図上で識別可能に出力するステップを含む
ことを特徴とする請求項1に記載の回路データ縮約方法。 - 上記回路データ縮約方法はさらに、
前記回路情報入力部により、前記回路データ上の内部の任意のノードに対して、該ノードの電位状態を指示させるステップを含む
ことを特徴とする請求項1に記載の回路データ縮約方法。 - 上記回路データ縮約方法はさらに、
前記回路情報入力部により、前記経路上にあるノードからの負荷容量の任意の抽出段数を指示入力させるステップを含む
ことを特徴とする請求項1乃至7のいずれか記載の回路データ縮約方法。 - 上記回路データ縮約方法はさらに、
前記縮約回路データ抽出部により、並列に接続されている複数のMOSトランジスタを併合し、前記複数のMOSトランジスタの幅を加算した幅を持つ併合素子を生成するステップを含む
ことを特徴とする請求項1に記載の回路データ縮約方法。 - 集積回路の動的なシミュレーションを行なうために、回路情報入力部と、状態展開部と、経路探索部と、縮約回路データ抽出部と、シミュレーション実行部とを具備する回路シミュレーション装置が実行する回路シミュレーション方法であって、
前記状態展開部により、入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び/又は回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開し、ゲート入力が固定電位であるMOSトランジスタのスイッチ状態をOFFとする固定状態展開ステップと、
前記ノードグループ化部により、前記スイッチ状態がOFFとなったMOSトランジスタを境界とすることにより前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するノードグループ化ステップと、
前記経路探索部により、前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出する経路探索ステップと、
前記縮約回路データ抽出部により、前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出する縮約情報出力ステップと、
前記シミュレーション実行部により、前記縮約された回路データを入力として、回路シミュレーションを実行するステップとを含む
ことを特徴とする回路シミュレーション方法。 - 与えられた回路データから、入力ベクトルの状態に基づいた回路シミュレーションの結果に影響を与える素子情報を抽出することにより回路データの縮約を行なう回路データの縮約プログラムを格納するコンピュータ読み取り可能な記録媒体であって、
入力信号伝播ルートを活性化させる入力ベクトル中の固定電位ノード情報及び/又は回路データ中のノードの初期値に従って、前記回路データ中の電位状態を固定すべき各ノードに対して固定電位状態を順次展開し、ゲート入力が固定電位であるMOSトランジスタのスイッチ状態をOFFとするモジュールと、
前記スイッチ状態がOFFとなったMOSトランジスタを境界とすることにより前記回路データ中のノードをグループ化して、ゲート側のノードグループからチャネル側のノードグループに対する有向グラフを作成するモジュールと、
前記有向グラフに従って、前記ノードグループ中から、前記入力ベクトル中の状態が変動する入力ノードと出力観測ノードとの経路上にあるグループを抽出するモジュールと、
前記抽出されたノードグループの各ノード及び該ノードに属する素子を抽出するモジュールとを含む処理をコンピュータに実行せしめる回路縮約プログラムを記録する
ことを特徴とするコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP01614399A JP3862882B2 (ja) | 1998-02-13 | 1999-01-25 | 回路データ縮約方法及び回路シミュレーション方法 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10-31711 | 1998-02-13 | ||
| JP3171198 | 1998-02-13 | ||
| JP01614399A JP3862882B2 (ja) | 1998-02-13 | 1999-01-25 | 回路データ縮約方法及び回路シミュレーション方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11296575A JPH11296575A (ja) | 1999-10-29 |
| JP3862882B2 true JP3862882B2 (ja) | 2006-12-27 |
Family
ID=26352405
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP01614399A Expired - Lifetime JP3862882B2 (ja) | 1998-02-13 | 1999-01-25 | 回路データ縮約方法及び回路シミュレーション方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3862882B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105224731A (zh) * | 2015-09-17 | 2016-01-06 | 南京大学 | 地球静止卫星紫外成像敏感器的辐射模拟仿真方法 |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4493173B2 (ja) * | 2000-07-27 | 2010-06-30 | 株式会社ルネサステクノロジ | バックアノテーション方法 |
| KR100459731B1 (ko) * | 2002-12-04 | 2004-12-03 | 삼성전자주식회사 | 반도체 집적회로의 시뮬레이션을 위한 인터커넥션 영향을포함한 선택적 연결정보를 생성하는 장치 및 그 방법 |
| JP4985211B2 (ja) | 2007-08-16 | 2012-07-25 | 富士通株式会社 | 論理回路のシミュレーション |
| JP4973572B2 (ja) | 2008-03-28 | 2012-07-11 | 富士通セミコンダクター株式会社 | 半導体回路の設計方法および製造方法 |
| JP2010113723A (ja) * | 2009-12-04 | 2010-05-20 | Renesas Technology Corp | バックアノテーション装置 |
-
1999
- 1999-01-25 JP JP01614399A patent/JP3862882B2/ja not_active Expired - Lifetime
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105224731A (zh) * | 2015-09-17 | 2016-01-06 | 南京大学 | 地球静止卫星紫外成像敏感器的辐射模拟仿真方法 |
| CN105224731B (zh) * | 2015-09-17 | 2018-04-27 | 南京大学 | 地球静止卫星紫外成像敏感器的辐射模拟仿真方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH11296575A (ja) | 1999-10-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6374205B1 (en) | Method of reducing circuit data, method of simulating circuit, and medium for storing circuit data reduction program | |
| EP2234026A1 (en) | Method and system for analyzing performance metrics of array type circuits under process variability | |
| US20070094622A1 (en) | Methods, Apparatus and Computer Program Products for Generating Selective Netlists that Include Interconnection Influences at Pre-Layout and Post-Layout Design Stages | |
| US6480816B1 (en) | Circuit simulation using dynamic partitioning and on-demand evaluation | |
| US6112022A (en) | Method for simulating ULSI/VLSI circuit designs | |
| US20040153982A1 (en) | Signal flow driven circuit analysis and partition technique | |
| JP2010020372A (ja) | 遅延ライブラリ、遅延ライブラリの作成方法、および遅延計算方法 | |
| US8069024B1 (en) | Replicant simulation | |
| US7315992B2 (en) | Electro-migration (EM) and voltage (IR) drop analysis of integrated circuit (IC) designs | |
| JP2006285960A (ja) | ライブラリ・セルの高精度電流モデルに基づいた、ディジタル回路内の電流の計算 | |
| US7092838B1 (en) | Method and apparatus for the analysis and optimization of variability in nanometer technologies | |
| US7900174B2 (en) | Method and system for characterizing an integrated circuit design | |
| JPWO2008155830A1 (ja) | 回路シミュレーションモデル生成装置、回路シミュレーションモデル生成プログラム、回路シミュレーションモデル生成方法及び回路シミュレーション装置 | |
| JP3862882B2 (ja) | 回路データ縮約方法及び回路シミュレーション方法 | |
| US7451412B2 (en) | Speeding up timing analysis by reusing delays computed for isomorphic subcircuits | |
| US7979820B1 (en) | Temporal replicant simulation | |
| US20150095867A1 (en) | Semiconductor circuit design method, memory compiler and computer program product | |
| US8161448B1 (en) | Replicant simulation | |
| US5715170A (en) | Apparatus for forming input data for a logic simulator | |
| US11354477B1 (en) | System and method for performance estimation for electronic designs using subcircuit matching and data-reuse | |
| US8818784B1 (en) | Hardware description language (HDL) incorporating statistically derived data and related methods | |
| JP2008287666A (ja) | 回路動作検証装置、半導体集積回路の製造方法、回路動作検証方法、制御プログラムおよび可読記録媒体 | |
| US8869080B2 (en) | Automatically identifying resettable flops for digital designs | |
| US6965853B2 (en) | Back annotation apparatus for carrying out a simulation based on the extraction result in regard to parasitic elements | |
| CN113569510A (zh) | 通过考虑单元间时序进行的单元感知缺陷特性化 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060228 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060307 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060428 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060627 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060825 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060919 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060927 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101006 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111006 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121006 Year of fee payment: 6 |