(57)【要約】【課題】詳細な各基本素子に関する情報を論理シミュレーションの処理結果として出力することなく、回路の様々な動作モードに応じた消費電流解析を可能とする論理シミュレーションの手段を提供する。【解決手段】ネットリストに埋め込む基本素子の動作モデルとして所定のハードウェア記述言語により記述され、前記ネットリストの回路に対する計算機による論理シミュレーションにおいて前記基本素子として動作するプログラムは、前記基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含むことを特徴とする。【選択図】図１
2010277179.tif 000002
【特許請求の範囲】
【請求項１】
ネットリストに埋め込む基本素子の動作モデルとして所定のハードウェア記述言語により記述され、前記ネットリストの回路に対する計算機による論理シミュレーションにおいて前記基本素子として動作するプログラムであって、
前記基本素子の論理動作を規定する論理動作部と、
前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、
前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部と
を含むことを特徴とするプログラム。
【請求項２】
ネットリストとして複数の基本素子と相互接続とが規定された回路ブロックの動作モデルとして所定のハードウェア記述言語により記述され、計算機による論理シミュレーションにおいて前記回路ブロックとして動作するプログラムであって、
前記複数の基本素子の各々の論理動作を規定する論理動作部と、
前記複数の基本素子の各々の入出力端子における信号レベルの変化を検出する変化検出部と、
前記複数の基本素子の各々に対して前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部と、
前記複数の基本素子について前記データの総和を求める総和計算部と
を含むことを特徴とするプログラム。
【請求項３】
基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含み、前記基本素子の動作モデルとして所定のハードウェア記述言語により記述された複数の基本素子を読み込み、
回路のネットリストを読み込み、
前記ネットリストと前記複数の基本素子とに基づいて前記回路の論理モデルを構築し、
前記論理モデルを用いて前記回路の論理シミュレーションを実行し、
前記論理シミュレーションの結果として前記データに応じた出力データを出力する
各段階を計算機により実行する論理シミュレーション方法。
【請求項４】
前記複数の基本素子の消費電流情報のデータを読み込み、
前記消費電流情報のデータを前記複数の基本素子の前記データ格納部に格納する
各段階を更に計算機により実行することを特徴とする請求項３記載の論理シミュレーション方法。
【請求項５】
前記出力データは、前記データ格納部から読み出された前記データの総和を前記回路の少なくとも一部について求めたデータであることを特徴とする請求項３記載の論理シミュレーション方法。
【請求項６】
前記複数の基本素子に基づいて前記回路の一部である回路ブロックの論理モデルを構築し、
前記回路ブロックの論理モデルを暗号化する
各段階を更に計算機により実行する段階として含み、前記回路の論理モデルを構築する段階は、前記暗号化された回路ブロックの論理モデルと前記回路の他の部分の論理モデルとを含むモデルとして前記回路の論理モデルを構築することを特徴とする請求項３記載の論理シミュレーション方法。
【請求項７】
演算ユニットと、
論理シミュレーションのプログラムを格納するメモリと、
を含み、前記演算ユニットにより前記論理シミュレーションのプログラムを実行することにより、
基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含み、前記基本素子の動作モデルとして所定のハードウェア記述言語により記述された複数の基本素子を読み込み、
回路のネットリストを読み込み、
前記ネットリストと前記複数の基本素子とに基づいて前記回路の論理モデルを構築し、
前記論理モデルを用いて前記回路の論理シミュレーションを実行し、
前記論理シミュレーションの結果として前記データに応じた出力データを出力する
ことを特徴とする論理シミュレーション装置。
【請求項８】
前記演算ユニットにより、更に、
前記複数の基本素子の消費電流情報のデータを読み込み、
前記消費電流情報のデータを前記複数の基本素子の前記データ格納部に格納する
ことを特徴とする請求項７記載の論理シミュレーション装置。
【請求項９】
前記出力データは、前記データ格納部から読み出された前記データの総和を前記回路の少なくとも一部について求めたデータであることを特徴とする請求項７記載の論理シミュレーション装置。
【請求項１０】
前記演算ユニットは、前記複数の基本素子に基づいて構築され暗号化された前記回路の一部である回路ブロックの論理モデルを読み込み、前記暗号化された回路ブロックの論理モデルと前記回路の他の部分の論理モデルとを含むモデルとして前記回路の論理モデルを構築することを特徴とする請求項７記載の論理シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデジタルデータ処理に関し、詳しくは計算機利用設計に関する。
【背景技術】
【０００２】
近年、ＬＳＩの大規模化に伴い、ＩＰコア（ＩＰコア：Intellectual Property Core）単位でのＬＳＩ設計が多く行われている。ＩＰコアは単にＩＰとも呼ばれ、ＬＳＩを構成する部分的な回路ブロックであり機能的にひとまとまりをなす部分の回路情報のことである。ＩＰの利用は自社で開発したＩＰに限られるものではなく、他社が設計したＩＰを購入することにより、短期間・低コストでＬＳＩを設計することが可能となる。ＩＰ設計を受託した場合や回路評価を行なう必要性がある場合等に、ＩＰはＩＰ開発元だけでなく顧客や第三者にも流通する。従って、回路内部情報を秘匿化して内部解析できないようにすることが、ＩＰ開発元の特許・技術ノウハウの漏洩防止の観点から重要である。
【０００３】
近年、携帯機器の高機能化などに伴い、ＬＳＩの消費電流に対する要求が高まっており、ＬＳＩ設計時に、設計者が想定する様々な動作モードに応じた消費電流解析を行うことが多くなっている。またＩＰ設計を受託した場合や回路評価を行なう必要性がある場合等に、ＩＰ開発元の設計者だけでなく、顧客や第三者の設計者も、消費電流解析を必要とする場合もある。
【０００４】
回路の動作モードに応じた詳細な消費電流解析を実施するには、消費電流測定のためのテストパターン及びＩＰの論理回路を論理シミュレーション装置に読み込み、ＩＰ内部の基本素子レベルでの信号状態の変化を調べる必要がある。このようなＩＰ内部の基本素子レベルでの信号状態の変化に基づいて各基本素子での消費電流量を求め、全基本素子での消費電流量の総計を求めることにより、回路の様々な動作モードに応じたＩＰ全体での消費電流量を知ることができる。しかしながら、顧客や第三者側でＩＰ内部の基本素子レベルでの信号状態の変化を知るためには、ＩＰ内部の基本素子レベルの詳細な論理回路情報や基本素子情報を顧客や第三者に開示することが必要になり、これは秘密情報の漏洩防止の観点から好ましくない。従ってこれまでは、ＩＰ開発元が詳細な消費電流解析をすることはできても、顧客や第三者が、想定する様々な動作モードに応じた消費電流解析を行なうことは困難であった。
【０００５】
ＩＰは暗号化可能であり、暗号化されたＩＰを顧客や第三者に提供し、顧客や第三者側では暗号化されたＩＰを論理シミュレーション装置で動作させることができる。しかしながら暗号化されたＩＰでは、論理シミュレーションによりＩＰ内部の基本素子レベルでの信号状態の変化を知ることはできない。結局は、論理シミュレーションと消費電流解析とが互いに分離した処理であり、しかも消費電流解析を行なうためには詳細な各基本素子に関する情報が必要であることが問題となっている。即ち、論理シミュレーションの処理結果として、消費電流解析処理へ渡す詳細な各基本素子に関する情報を出力してしまうと、顧客や第三者がその情報にアクセスできてしまうことが問題となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２８２３４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
以上を鑑みると、詳細な各基本素子に関する情報を論理シミュレーションの処理結果として出力することなく、回路の動作モードに応じた消費電流解析を可能とする論理シミュレーション装置、方法、及びプログラムが望まれる。
【課題を解決するための手段】
【０００８】
ネットリストに埋め込む基本素子の動作モデルとして所定のハードウェア記述言語により記述され、前記ネットリストの回路に対する計算機による論理シミュレーションにおいて前記基本素子として動作するプログラムは、前記基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含むことを特徴とする。
【０００９】
ネットリストとして複数の基本素子と相互接続とが規定された回路ブロックの動作モデルとして所定のハードウェア記述言語により記述され、計算機による論理シミュレーションにおいて前記回路ブロックとして動作するプログラムは、前記複数の基本素子の各々の論理動作を規定する論理動作部と、前記複数の基本素子の各々の入出力端子における信号レベルの変化を検出する変化検出部と、前記複数の基本素子の各々に対して前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部と、前記複数の基本素子について前記データの総和を求める総和計算部とを含むことを特徴とする。
【００１０】
論理シミュレーション方法は、基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含み、前記基本素子の動作モデルとして所定のハードウェア記述言語により記述された複数の基本素子を読み込み、回路のネットリストを読み込み、前記ネットリストと前記複数の基本素子とに基づいて前記回路の論理モデルを構築し、前記論理モデルを用いて前記回路の論理シミュレーションを実行し、前記論理シミュレーションの結果として前記データに応じた出力データを出力する各段階を計算機により実行する。
【００１１】
論理シミュレーション装置は、演算ユニットと、論理シミュレーションのプログラムを格納するメモリとを含み、前記演算ユニットにより前記論理シミュレーションのプログラムを実行することにより、基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含み、前記基本素子の動作モデルとして所定のハードウェア記述言語により記述された複数の基本素子を読み込み、回路のネットリストを読み込み、前記ネットリストと前記複数の基本素子とに基づいて前記回路の論理モデルを構築し、前記論理モデルを用いて前記回路の論理シミュレーションを実行し、前記論理シミュレーションの結果として前記データに応じた出力データを出力することを特徴とする。
【発明の効果】
【００１２】
本願開示の少なくとも１つの実施例によれば、検証対象回路の基本素子の各々について、入出力端子における信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部を設ける。従って、このデータ格納部から消費電流データを読み出すようにすることにより、詳細な各基本素子に関する情報を論理シミュレーションの処理結果として出力することなく、回路の動作モードに応じた消費電流解析が可能となる。
【図面の簡単な説明】
【００１３】
【図１】ネットリストに埋め込む基本素子の動作モデルの構成の一例を示す図である。
【図２】図１の基本素子の動作及び消費電流値の一例を示す図である。
【図３】基本素子のモデルのより具体的な例を示す図である。
【図４】図３の基本素子の動作及び消費電流値の一例を示す図である。
【図５】図３の基本素子の変形例を示す図である。
【図６】図５の基本素子の動作及び消費電流値の一例を示す図である。
【図７】論理シミュレーションを実行する論理シミュレーション装置の構成の一例を示す図である。
【図８】図５の基本素子に対して論理シミュレーションを実行する論理シミュレーション装置の構成の一例を示す図である。
【図９】論理シミュレーション方法の処理手順の一例を示す図である。
【図１０】論理シミュレーション装置により論理シミュレーションを実行する構成の変形例を示す図である。
【図１１】論理シミュレーション方法の処理手順の変形例を示す図である。
【図１２】論理シミュレーション方法の処理手順の更なる変形例を示す図である。
【図１３】論理シミュレーション方法を実行する装置の構成を示す図である。
【発明を実施するための形態】
【００１４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図１は、ネットリストに埋め込む基本素子の動作モデルの構成の一例を示す図である。図１に示す基本素子１０は、ネットリストに埋め込む基本素子の動作モデルとして所定のハードウェア記述言語により記述され、ネットリストの回路に対する計算機による論理シミュレーションにおいて基本素子として動作するモデルである。なお基本素子とは、論理回路内の基本セル（例えばＡＮＤセル、ＯＲセル、フリップフロップセル）のことである。基本素子１０は、ｖｅｒｉｌｏｇシミュレータではライブラリとして用意される。
【００１６】
基本素子１０は、論理動作部１１、変化検出部１２、及びデータ格納部１３を含む。論理動作部１１は、基本素子の論理動作を規定する。例えば図１の例では、基本素子はＡＮＤ回路であり、２つの入力端子ｐ１及びｐ２のＡＮＤ論理により出力端子ｐ３が定まることを論理動作部１１において規定する。変化検出部１２は、基本素子の入出力端子における信号レベルの変化を検出する。変化検出部１２は、２入力及び１出力のそれぞれに対応する動作検出機構１４乃至１６を含む。データ格納部１３においては、信号レベルの変化の組み合わせに応じた位置のデータが読み出される。データ格納部１３は、データ配列１７と選択機構１８とを含む。具体的には、データ配列１７に消費電流値のデータを格納してよい。
【００１７】
図２は、図１の基本素子の動作及び消費電流値の一例を示す図である。図１の論理動作部１１が示すＡＮＤ回路の入力端子ｐ１及びｐ２に図２に示すような信号波形が印加されると、出力端子ｐ３には図示のような信号波形が現れる。図１の動作検出機構１４は、入力端子ｐ２の信号波形の立上がり及び立下がりの変化をそれぞれ別個に検出する。動作検出機構１５は、入力端子ｐ１の信号波形の立上がり及び立下がりの変化をそれぞれ別個に検出する。また動作検出機構１６は、出力端子ｐ３の信号波形の立上がり及び立下がりの変化をそれぞれ別個に検出する。図２には、入出力端子ｐ１乃至ｐ３に対する立上がり及び立下がりの検出結果が示されている。
【００１８】
図１の選択機構１８は、動作検出機構１４乃至１６により検出された信号変化に応じてデータ配列１７に格納される１つのデータを選択して読み出す。即ち、入出力端子ｐ１乃至ｐ３の立上がり及び立下がりの信号変化の組み合わせにより指定されるデータ配列１７の１つのデータを選択して読み出す。例えば、「ｐ３立上がり、ｐ３立下がり、ｐ２立上がり、ｐ２立下がり、ｐ１立上がり、ｐ１立下がり」の６つの事象について、検出に値１、非検出に値０を割り当てることにより、６ビットのビットパターン「ｂ６，ｂ５，ｂ４，ｂ３，ｂ２，ｂ１」が得られる。この６ビットのビットパターンを、データ配列１７の読み出しアドレス（配列番号又は添字）を示すものとして扱い、ビットパターンが示す位置のデータ配列１７の格納値を読み出せばよい。こうして読み出されたデータ、即ち消費電流値が図２の一番下に示されている。
【００１９】
図３は、基本素子のモデルのより具体的な例を示す図である。図３の基本素子２０は、論理動作部２１、変化検出部２２、及びデータ格納部２３を含む。論理動作部２１、変化検出部２２、及びデータ格納部２３の機能及び動作は、図１に示す論理動作部１１、変化検出部１２、及びデータ格納部１３の機能及び動作と基本的に同一である。但し基本素子２０においては、デジタル計算機における実現を考慮して、サンプリングクロック信号ＣＬＫに同期して信号変化の検出が行なわれる構成となっている。また基本素子２０においては、単一の電流値ではなく、リーク電流、貫通電流、及び充放電電流の３種類に対応する３つの電流値を出力する構成となっている。
【００２０】
変化検出部２２において、フリップフロップ２４−１、ＡＮＤ回路２４−２、及びＡＮＤ回路２４−３が、入力端子ｐ２における信号の変化を検出する動作検出機構として機能する。またフリップフロップ２５−１、ＡＮＤ回路２５−２、及びＡＮＤ回路２５−３が、入力端子ｐ２における信号の変化を検出する動作検出機構として機能する。また更にフリップフロップ２６−１、ＡＮＤ回路２６−２、及びＡＮＤ回路２６−３が、出力端子ｐ３における信号の変化を検出する動作検出機構として機能する。なおＡＮＤ回路２４−２，２４−３，２５−２，２５−３，２６−２，２６−３の各々は、一方の入力が負論理であり他方の入力が正論理となっている。これら動作検出機構では、フリップフロップにより1クロックサイクル前の信号レベルを保持しておき、ＡＮＤ回路により1つ前のクロックサイクルと現在のクロックサイクルとの間で信号レベルに変化があるか否かを検出している。
【００２１】
データ格納部２３は、リーク電流値レジスタ２７−１、貫通電流値データ配列２７−２、及び充放電電流値データ配列２７−３を含む。リーク電流値レジスタ２７−１は、論理動作部１１の示すＡＮＤ回路で常時流れ続けるリーク電流の電流値を格納するためのレジスタである。リーク電流は信号レベル変化に関わらず常時流れ続けるものであり、信号レベルの変化に依存しない固定値を格納するレジスタがあればよい。貫通電流値データ配列２７−２は、信号レベルの切り替え時にＣＭＯＳ回路の電源電圧側からグランド電圧側に瞬間的に流れる貫通電流の電流値を格納するためのデータ配列である。貫通電流の電流値は、信号レベルの変化の仕方に依存するので、信号レベルの変化の組み合わせに対応した電流値を格納するデータ配列ＩＳＣが用いられる。充放電電流値データ配列２７−３は、信号レベルがＨＩＧＨからＬＯＷになるときの配線からグランドへの放電電流と信号レベルがＬＯＷからＨＩＧＨになるときの電源から配線への充電電流との電流値を格納するためのデータ配列である。充放電電流の電流値は、信号レベルの変化の仕方に依存するので、信号レベルの変化の組み合わせに対応した電流値を格納するデータ配列ＩＤが用いられる。図３の構成例では、リーク電流の電流値、貫通電流の電流値、及び充放電電流の電流値をそれぞれ別個に出力する形式となっている。
【００２２】
図４は、図３の基本素子の動作及び消費電流値の一例を示す図である。図３の論理動作部２１が示すＡＮＤ回路の入力端子ｐ１及びｐ２に図４に示すような信号波形が印加されると、出力端子ｐ３には図示のような信号波形が現れる。入出力端子ｐ１乃至ｐ３の信号波形の立上がり及び立下がりの変化を、サンプリングクロック信号ＣＬＫの立上がりエッジに同期して、それぞれ別個に検出する。図４には、入出力端子ｐ１乃至ｐ３に対する立上がり及び立下がりのクロック信号ＣＬＫに同期した検出結果が示されている。
【００２３】
クロックサイクルｎ，ｎ＋２，ｎ＋５では、「ｐ３立上がり、ｐ３立下がり、ｐ２立上がり、ｐ２立下がり、ｐ１立上がり、ｐ１立下がり」が［０，０，０，０，０，０］であるので、貫通電流ＩＳＣ［００００００］及び充放電電流ＩＤ［００００００］が出力される。また例えばクロックサイクルｎ＋１では、「ｐ３立上がり、ｐ３立下がり、ｐ２立上がり、ｐ２立下がり、ｐ１立上がり、ｐ１立下がり」が［０，０，０，０，１，０］であるので、貫通電流ＩＳＣ［００００１０］及び充放電電流ＩＤ［００００１０］が出力される。他のクロックサイクルについても同様である。なおリーク電流については、リーク電流値レジスタ２７−１の格納値ＩＬＫが常時出力される。
【００２４】
図５は、図３の基本素子２０の変形例を示す図である。図５において図３と同一の構成要素は同一の番号で参照し、その説明は省略する。図５に示す基本素子２０Ａは、図３に示す基本素子２０と比較して、計算部３１が設けられている点が異なる。計算部３１は加算器３２を含む。加算器３２は、データ格納部２３から読み出されるリーク電流の電流値、貫通電流の電流値、及び充放電電流の電流値を加算して、これら３つの電流値の総和を求める。基本素子２０Ａからは、総和の電流値１つのみが出力データとして出力される。
【００２５】
図６は、図５の基本素子の動作及び消費電流値の一例を示す図である。図４の場合と同様に、各クロックサイクルにおいて「ｐ３立上がり、ｐ３立下がり、ｐ２立上がり、ｐ２立下がり、ｐ１立上がり、ｐ１立下がり」の検出結果に応じた貫通電流ＩＳＣ及び充放電電流ＩＤが得られる。またリーク電流については固定値ＩＬＫが得られる。図６の場合には、これら貫通電流ＩＳＣ、充放電電流ＩＤ、及びリーク電流ＩＬＫを加算した総和が、消費電流値として出力される。
【００２６】
図７は、論理シミュレーションを実行する論理シミュレーション装置の構成の一例を示す図である。図７において、図３と同一の構成要素は同一の番号で参照し、その説明は省略する。図７の論理シミュレーション装置は、演算ユニットと論理シミュレーションのプログラムを格納するメモリとを有するコンピュータにおいて、演算ユニットにより論理シミュレーションのプログラムを実行することにより実現される。
【００２７】
論理シミュレーション装置は、テストベンチ４０及び検証対象回路４１を含む。検証対象回路４１は、検証対象の回路の論理モデルである。論理モデルとは、検証対象回路のネットリスト及び基本素子等のシミュレーション実行に必要な情報を統合して、検証対象回路の論理動作を実行可能な状態にしたものである。テストベンチ４０は、検証対象回路４１の論理シミュレーションを開始、制御、停止させるために必要な記述を記載したものである。論理シミュレーション装置は、例えばＶｅｒｉｌｏｇシミュレータであってよい。論理シミュレーション装置は、例えばＳＰＩＣＥシミュレータ等の回路シミュレータと異なり、アナログ的な動作シミュレーションは実行せずに論理動作に関わる部分のみを検証するために使用される。
【００２８】
検証対象回路４１は、基本素子２０−１乃至２０−４を含み、回路のネットリストの情報に従って複数の基本素子が接続されることにより構成される回路である。図示の都合上、図７の例では４つの基本素子２０−１乃至２０−４のみが示されるが、４つ以上の多数の基本素子が含まれてよい。複数の基本素子２０−１乃至２０−４の各々は、図３の基本素子２０に相当し、論理動作部２１、変化検出部２２、及びデータ格納部２３を含む。論理動作部２１は、基本素子の論理動作を規定する。変化検出部２２は、基本素子の入出力端子における信号レベルの変化を検出する。データ格納部２３においては、信号レベルの変化の組み合わせに応じた位置のデータが読み出される。
【００２９】
論理シミュレーション装置は、論理モデルである検証対象回路４１を用いて回路の論理シミュレーションを実行する。その際、まず検証対象回路４１の各基本素子のデータ格納部２３に入力消費電流データ４２を格納する。入力消費電流データ４２は、検証対象回路のネットリストと配線の抵抗・容量の情報とに基づいて、予め回路シミュレータや机上計算により求めた各基本素子毎の消費電流値のデータである。この消費電流値は、貫通電流値、充放電電流値、及びリーク電流値を含み、貫通電流値及び充放電電流値については、各基本素子に対してその入出力端子の信号レベルの変化に応じた複数の値が規定される。各基本素子２０−１乃至２０−４は、単独の基本素子の形でライブラリ等として提供されている状態では、そのデータ格納部２３には具体的な電流値は格納されていない。ネットリストに従って回路中の所定の箇所に基本素子が配置された後に、その箇所の配線条件等に応じた入力消費電流データ４２が、データ格納部２３に格納される。
【００３０】
入力消費電流データ４２の格納後、テストベンチ４０を介して、検証対象回路４１の論理動作を開始させ、テストパターン４３を回路入力データとして検証対象回路４１に与える。サンプリングクロック信号ＣＬＫに同期した検証対象回路４１の論理動作により、入力データが処理されて回路出力としての論理データが生成され、この論理データが回路動作論理出力データ４４として出力される。また論理シミュレーションの処理結果として更に、データ格納部２３から読み出されたデータに応じた出力消費電流データ４５が出力される。この出力消費電流データ４５は、図７の例の場合、各基本素子２０−１乃至２０−４から出力される貫通電流値、充放電電流値、及びリーク電流値である。即ち、図４の最下段に示されるＩＳＣ、ＩＤ、及びＩＬＫに相当する電流値データが、各基本素子２０−１乃至２０−４に対して出力される。
【００３１】
図８は、図５の基本素子に対して論理シミュレーションを実行する論理シミュレーション装置の構成の一例を示す図である。図８において、図５及び図７と同一の構成要素は同一の番号で参照し、その説明は省略する。図８の論理シミュレーション装置においては、図７の場合の検証対象回路４１の代りに、検証対象回路４１Ａを論理モデルとして用いて論理シミュレーションを実行する。検証対象回路４１Ａは、基本素子２０−１Ａ乃至２０−４Ａを含む。複数の基本素子２０−１Ａ乃至２０−４Ａの各々は、図５の基本素子２０Ａに相当し、論理動作部２１、変化検出部２２、データ格納部２３、及び計算部３１を含む。図８の構成の場合、出力消費電流データ４５Ａは、貫通電流値、充放電電流値、及びリーク電流値を総和した電流値が、各基本素子２０−１Ａ乃至２０−４Ａの各々から出力されたものである。即ち、図６の最下段に示される消費電流値に相当する電流値データが、各基本素子２０−１Ａ乃至２０−４Ａに対して出力される。
【００３２】
図９は、論理シミュレーション方法の処理手順の一例を示す図である。まずステップＳ１で、抵抗・容量情報５１と論理情報５２とに基づいて、回路シミュレータや机上計算により各基本素子毎の消費電流値のデータである入力消費電流データ５３を求める。ここで抵抗・容量情報５１は、検証対象の回路を配置・配線したデータより抽出される。また論理情報５２は、検証対象の回路のネットリスト等である。入力消費電流データ５３は、図７及び図８の入力消費電流データ４２に相当する。
【００３３】
次にステップＳ２で、論理情報５２と基本素子データ５４とに基づいて、テストベンチ５５を用いて論理モデルを構築する。基本素子データ５４は、種々の基本素子（ＡＮＤセル、ＯＲセル、インバータ、ＮＡＮＤセル、フリップフロップ等）の各々について、少なくとも前述の論理動作部、変化検出部、及びデータ格納部を記述したデータである。ステップＳ３で、入力消費電流データ５３を論理シミュレーション装置に読み込む。即ち、ステップＳ２で構築した論理モデルの各基本素子のデータ格納部に、入力消費電流データ５３の対応する消費電流データを格納する。更にステップＳ４で、ステップＳ２で構築した論理モデルを用いて検証対象回路の論理シミュレーションを実行する。即ち、テストパターン５６を入力データとして論理モデルに印加し、クロック信号に同期して論理モデルを動作させることにより、検証対象回路の論理動作をシミュレートする。この論理シミュレーションの結果、出力消費電流データ５７及び回路動作論理出力データ５８が出力される。出力消費電流データ５７及び回路動作論理出力データ５８は、図７及び図８の出力消費電流データ４５（又は４５Ａ）及び回路動作論理出力データ４４にそれぞれ相当する。
【００３４】
図９に示す論理シミュレーション方法では、論理シミュレーションを実行するだけで、各基本素子で消費する消費電流データを得ることができる。従来は、論理シミュレーションを実行した後に、論理シミュレーションで得られた各基本素子の動作データに基づいて、ユーザが入力消費電流データ５３を各基本素子の動作データに当てはめて消費電流解析を行なっていた。図９に示す論理シミュレーション方法では、検証対象回路の論理シミュレーションを実行するだけで、論理シミュレーションの処理結果として、論理出力データとともに消費電流データが得られる。
【００３５】
図１０は、論理シミュレーション装置により論理シミュレーションを実行する構成の変形例を示す図である。図１０において、図８と同一の構成要素は同一の番号で参照し、その説明は省略する。図１０の論理シミュレーション装置においては、図８の場合の検証対象回路４１Ａの代りに、検証対象回路４１Ｂを論理モデルとして用いて論理シミュレーションを実行する。検証対象回路４１Ｂは、検証対象回路４１Ａに対して総和計算部３３が追加されている。総和計算部３３は、検証対象回路４１Ｂに含まれる複数の基本素子２０−１Ａ乃至２０−４Ａについて、出力消費電流値の総和を求める。総和計算部３３は、こうして求めた検証対象回路４１Ｂ全体で消費される総和消費電流値を、出力消費電流データ４５Ｃとして出力する。
【００３６】
なお図１０では、検証対象回路４１Ｂの全体消費される総和消費電流値を総和計算部３３により求めるものとしたが、検証対象回路４１Ｂの一部をなす回路ブロックについてのみ総和消費電流値を総和計算部３３により求めてもよい。例えば、検証対象回路４１Ｂには基本素子２０−１Ａ乃至２０−４Ａ以外に多数の基本素子が含まれており、総和計算部３３は基本素子２０−１Ａ乃至２０−４Ａにより構成される回路ブロックについてのみ総和消費電流値を求める構成であってよい。この場合、他の基本素子については各基本素子毎の消費電流値を出力してよいし、或いはこれら他の基本素子についての総和消費電流値を求めて出力してよい。また或いは、複数の回路ブロック毎に各々の総和消費電流値を出力してよい。
【００３７】
図１１は、論理シミュレーション方法の処理手順の変形例を示す図である。図１１に示す論理シミュレーションは、検証対象回路に対して総和計算部を追加して論理シミュレーションを実行するものである。図９に示す論理シミュレーション方法と比較して、図１１に示す論理シミュレーション方法は、ステップＳ２の処理が異なる。図１１のステップＳ２では、論理情報５２と基本素子データ５４とに基づいて論理モデルを構築する際に、電流値総和計算部６１を論理モデルに含める。この電流値総和計算部６１が図１０の総和計算部３３に相当する。ステップＳ４で実行した論理シミュレーションの結果として得られる出力消費電流データ６２は、図１０の出力消費電流データ４５Ｃに相当する。
【００３８】
この場合の出力消費電流データ６２は、検証対象回路全体についての総和電流値であってよいし、或いは、検証対象回路中の一部の回路ブロックについての総和電流値を含む電流データであってよい。後者の場合、当該回路ブロック部分以外については各基本素子毎の消費電流値であってよいし、或いは当該回路ブロック部分以外についての総和消費電流値であってよい。また或いは、複数の回路ブロック毎の各々の総和消費電流値であってよい。
【００３９】
図１２は、論理シミュレーション方法の処理手順の更なる変形例を示す図である。図１２において、図９及び図１１と同一の構成要素は同一の番号で参照し、その説明は適宜省略する。
【００４０】
ステップＳ１で、抵抗・容量情報５１と論理情報５２とに基づいて、回路シミュレータや机上計算により各基本素子毎の消費電流値のデータである入力消費電流データ５３を求める。ステップＳ２で、論理情報５２、基本素子データ５４、入力消費電流データ５３、及び電流値総和計算部６１に基づいて、回路ブロック論理モデル７１を構築する。この回路ブロック論理モデル７１においては、各基本素子のデータ格納部に入力消費電流データ５３の対応する電流データが格納された状態となっている。次にステップＳ３で、回路ブロック論理モデル７１を暗号化し、暗号化された回路ブロック論理モデル７２を生成する。暗号化された回路ブロック論理モデル７２は、例えば図１０の構成では、基本素子２０−１Ａ乃至２０−４Ａ及び総和計算部３３の部分を暗号化したものが、暗号化された回路ブロック論理モデル７２に相当する。なお上に説明したように、基本素子２０−１Ａ乃至２０−４Ａのデータ格納部２３には、入力消費電流データ５３の対応する消費電流値が既に格納された状態で暗号化される。
【００４１】
ここで暗号化とは、論理シミュレータ装置のみが可読で、人間には読み解くことが困難な言語に置き換えることを意味する。暗号化の最も簡単な例としては、テキスト情報を論理シミュレータが読み解くことができるバイナリ情報に変換する処理などである。またより適切な例としては、論理シミュレータの機能として提供される暗号化機能である。この暗号化機能により回路ブロックを暗号化することにより、論理シミュレータは、暗号化された回路ブロックについて論理シミュレーションの実行は許すが、回路ブロックの内部の構成についての情報を提供しない。
【００４２】
次にステップＳ４で、暗号化された回路ブロック論理モデル７２と基本素子データ５４とに基づいて、テストベンチ５５を用いて論理モデルを構築する。例えば、上記ステップＳ１乃至Ｓ３はＩＰ開発元の会社で実行され、暗号化された回路ブロック論理モデル７２を、ＩＰ開発元の会社から顧客の会社にＩＰとして提供する場合が考えられる。その際、顧客の会社では、提供されたＩＰを自社開発の回路に組み込んで利用することがある。このような場合には、暗号化された回路ブロック論理モデル７２を一部として組み込んだ回路の論理モデルを構築することになる。暗号化された回路ブロック論理モデル７２の内部構成等は解析できないので、回路ブロックの詳細についての秘密情報が顧客の会社に漏洩することはない。
【００４３】
ステップＳ５で、入力消費電流データを論理シミュレーション装置に読み込む。即ち、ステップＳ４で構築した論理モデルの各基本素子のデータ格納部のうちで消費電流値が未格納の部分（即ち暗号化された回路ブロック論理モデル７２以外の部分）に、対応する消費電流データを格納する。更にステップＳ６で、ステップＳ４で構築した論理モデルを用いて検証対象回路の論理シミュレーションを実行する。即ち、テストパターン５６を入力データとして論理モデルに印加し、クロック信号に同期して論理モデルを動作させることにより、検証対象回路の論理動作をシミュレートする。この論理シミュレーションの結果、出力消費電流データ７３及び回路動作論理出力データ５８が出力される。
【００４４】
出力消費電流データ７３は、暗号化した形で提供された回路ブロックの部分についての総和電流値を含む電流データである。当該回路ブロック部分以外については各基本素子毎の消費電流値であってよいし、或いは当該回路ブロック部分以外についての総和消費電流値であってよい。また或いは、複数の回路ブロック毎の各々の総和消費電流値であってよい。
【００４５】
なお上記実施例の基本素子において、基本素子の消費電流値の精度を高めるために以下の点を考慮することが好ましい。まずデータ格納部のメモリに格納する電流値は、サンプリングクロック周期単位で平均化された値であることが好ましい。これは、基本素子から読み出される消費電流値は、サンプリングクロック１周期時間毎の消費電流値となるからである。次に、サンプリングクロック信号ＣＬＫの周期をなるべく短くすることが計算精度の観点からは好ましい。基本素子から読み出される消費電流値の精度は、サンプリングクロックの周期に依存する。例えば、ある１つのクロックサイクルの間に着目端子がＬＯＷからＨＩＧＨに変わり更にＨＩＧＨからＬＯＷに変化したような場合、上記実施例の基本素子では端子変化として検出されないからである。サンプリングクロックの周期を短くすることにより、実際の回路における消費電流値に近い電流値を出力することが可能となる。
【００４６】
図１３は、論理シミュレーション方法を実行する装置の構成を示す図である。
【００４７】
図１３に示されるように、本発明による論理シミュレーション方法を実行する装置は、例えばパーソナルコンピュータやエンジニアリングワークステーション等のコンピュータにより実現される。図１３の装置は、コンピュータ５１０と、コンピュータ５１０に接続されるディスプレイ装置５２０、通信装置５２３、及び入力装置よりなる。入力装置は、例えばキーボード５２１及びマウス５２２を含む。コンピュータ５１０は、ＣＰＵ５１１、ＲＡＭ５１２、ＲＯＭ５１３、ハードディスク等の二次記憶装置５１４、可換媒体記憶装置５１５、及びインターフェース５１６を含む。
【００４８】
キーボード５２１及びマウス５２２は、ユーザとのインターフェースを提供するものであり、コンピュータ５１０を操作するための各種コマンドや要求されたデータに対するユーザ応答等が入力される。ディスプレイ装置５２０は、コンピュータ５１０で処理された結果等を表示すると共に、コンピュータ５１０を操作する際にユーザとの対話を可能にするために様々なデータ表示を行う。通信装置５２３は、遠隔地との通信を行なうためのものであり、例えばモデムやネットワークインターフェース等よりなる。
【００４９】
本発明による論理シミュレーション方法は、コンピュータ５１０が実行可能なコンピュータプログラムとして提供される。このコンピュータプログラムは、可換媒体記憶装置５１５に装着可能な記憶媒体Ｍに記憶されており、記憶媒体Ｍから可換媒体記憶装置５１５を介して、ＲＡＭ５１２或いは二次記憶装置５１４にロードされる。或いは、このコンピュータプログラムは、遠隔地にある記憶媒体（図示せず）に記憶されており、この記憶媒体から通信装置５２３及びインターフェース５１６を介して、ＲＡＭ５１２或いは二次記憶装置５１４にロードされる。
【００５０】
キーボード５２１及び／又はマウス５２２を介してユーザからプログラム実行指示があると、ＣＰＵ５１１は、記憶媒体Ｍ、遠隔地記憶媒体、或いは二次記憶装置５１４からプログラムをＲＡＭ５１２にロードする。ＣＰＵ５１１は、ＲＡＭ５１２の空き記憶空間をワークエリアとして使用して、ＲＡＭ５１２にロードされたプログラムを実行し、適宜ユーザと対話しながら処理を進める。なおＲＯＭ５１３は、コンピュータ５１０の基本動作を制御するための制御プログラムが格納されている。
【００５１】
上記コンピュータプログラムを実行することにより、コンピュータ５１０が、上記各実施例で説明されたように論理シミュレーション方法を実行する。
【００５２】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００５３】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
ネットリストに埋め込む基本素子の動作モデルとして所定のハードウェア記述言語により記述され、前記ネットリストの回路に対する計算機による論理シミュレーションにおいて前記基本素子として動作するプログラムであって、
前記基本素子の論理動作を規定する論理動作部と、
前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、
前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部と
を含むことを特徴とするプログラム。
（付記２）
ネットリストとして複数の基本素子と相互接続とが規定された回路ブロックの動作モデルとして所定のハードウェア記述言語により記述され、計算機による論理シミュレーションにおいて前記回路ブロックとして動作するプログラムであって、
前記複数の基本素子の各々の論理動作を規定する論理動作部と、
前記複数の基本素子の各々の入出力端子における信号レベルの変化を検出する変化検出部と、
前記複数の基本素子の各々に対して前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部と、
前記複数の基本素子について前記データの総和を求める総和計算部と
を含むことを特徴とするプログラム。
（付記３）
暗号化されていることを特徴とする付記２記載のプログラム。
（付記４）
基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含み、前記基本素子の動作モデルとして所定のハードウェア記述言語により記述された複数の基本素子を読み込み、
回路のネットリストを読み込み、
前記ネットリストと前記複数の基本素子とに基づいて前記回路の論理モデルを構築し、
前記論理モデルを用いて前記回路の論理シミュレーションを実行し、
前記論理シミュレーションの結果として前記データに応じた出力データを出力する
各段階を計算機により実行する論理シミュレーション方法。
（付記５）
前記複数の基本素子の消費電流情報のデータを読み込み、
前記消費電流情報のデータを前記複数の基本素子の前記データ格納部に格納する
各段階を更に計算機により実行することを特徴とする付記４記載の論理シミュレーション方法。
（付記６）
前記出力データは、前記データ格納部から読み出された前記データの総和を前記回路の少なくとも一部について求めたデータであることを特徴とする付記４記載の論理シミュレーション方法。
（付記７）
前記複数の基本素子に基づいて前記回路の一部である回路ブロックの論理モデルを構築し、
前記回路ブロックの論理モデルを暗号化する
各段階を更に計算機により実行する段階として含み、前記回路の論理モデルを構築する段階は、前記暗号化された回路ブロックの論理モデルと前記回路の他の部分の論理モデルとを含むモデルとして前記回路の論理モデルを構築することを特徴とする付記４記載の論理シミュレーション方法。
（付記８）
演算ユニットと、
論理シミュレーションのプログラムを格納するメモリと、
を含み、前記演算ユニットにより前記論理シミュレーションのプログラムを実行することにより、
基本素子の論理動作を規定する論理動作部と、前記基本素子の入出力端子における信号レベルの変化を検出する変化検出部と、前記信号レベルの変化の組み合わせに応じた位置のデータが読み出されるデータ格納部とを含み、前記基本素子の動作モデルとして所定のハードウェア記述言語により記述された複数の基本素子を読み込み、
回路のネットリストを読み込み、
前記ネットリストと前記複数の基本素子とに基づいて前記回路の論理モデルを構築し、
前記論理モデルを用いて前記回路の論理シミュレーションを実行し、
前記論理シミュレーションの結果として前記データに応じた出力データを出力する
ことを特徴とする論理シミュレーション装置。
（付記９）
前記演算ユニットにより、更に、
前記複数の基本素子の消費電流情報のデータを読み込み、
前記消費電流情報のデータを前記複数の基本素子の前記データ格納部に格納する
ことを特徴とする付記８記載の論理シミュレーション装置。
（付記１０）
前記出力データは、前記データ格納部から読み出された前記データの総和を前記回路の少なくとも一部について求めたデータであることを特徴とする付記８記載の論理シミュレーション装置。
（付記１１）
前記演算ユニットは、前記複数の基本素子に基づいて構築され暗号化された前記回路の一部である回路ブロックの論理モデルを読み込み、前記暗号化された回路ブロックの論理モデルと前記回路の他の部分の論理モデルとを含むモデルとして前記回路の論理モデルを構築することを特徴とする付記８記載の論理シミュレーション装置。
【符号の説明】
【００５４】
１０  基本素子
１１  論理動作部
１２  変化検出部
１３  データ格納部
１４〜１６  動作検出機構
１７  データ配列
１８  選択機構
２０  基本素子
２１  論理動作部
２２  変化検出部
２３  データ格納部
【図１】
2010277179.tif 000003
【図２】
2010277179.tif 000004
【図３】
2010277179.tif 000005
【図４】
2010277179.tif 000006
【図５】
2010277179.tif 000007
【図６】
2010277179.tif 000008
【図７】
2010277179.tif 000009
【図８】
2010277179.tif 000010
【図９】
2010277179.tif 000011
【図１０】
2010277179.tif 000012
【図１１】
2010277179.tif 000013
【図１２】
2010277179.tif 000014
【図１３】
2010277179.tif 000015