(57)【要約】【課題】セルライブラリを作成し直すことなく、電源供給が停止された状況での論理シミュレーションを可能にする。【解決手段】各回路ブロックに対する電源制御信号を指定する電源制御信号指定手段１と、電源制御信号指定手段１により生成された電源制御信号情報２と回路接続情報４を読み込み、電源供給が停止された回路ブロックに対して、電源供給が停止されている期間はその回路ブロックの全ての入力信号にハイインピーダンス論理値を強制的に入力し続けることを、論理シミュレータに指示するための情報を生成する論理シミュレーション制御情報生成手段３とを有し、論理シミュレーション制御情報生成手段３により生成された論理シミュレーション制御情報７を読み込み、論理シミュレーション手段８に電源供給が停止した状態をシミュレーションさせる。論理シミュレーション手段８には、テストパターン情報５とセルライブラリ情報６も読み込まれる。【選択図】  図１
2006031208.tif 000002
【特許請求の範囲】
【請求項１】
論理回路をシミュレーションする装置において、
各回路ブロックに対する電源制御信号を指定する電源制御信号指定手段と、
該電源制御信号指定手段により生成された電源制御信号情報と回路接続情報を読み込み、電源供給が停止された回路ブロックに対して、電源供給が停止されている期間は該回路ブロックの全ての入力信号にハイインピーダンス論理値を強制的に入力し続けることを論理シミュレータに指示するための情報を生成する論理シミュレーション制御情報生成手段とを具備し、
該論理シミュレーション制御情報生成手段により生成された論理シミュレーション制御情報を読み込み、電源供給が停止した状態をシミュレーションすることが可能であることを特徴とする論理シミュレーション装置。
【請求項２】
請求項１記載の論理シミュレーション装置において、
前記各手段に加えて、電源制御信号が変化してから実際に回路への電源供給が停止されるまでの遅延時間を指定する電源遅延時間指定手段を具備し、
該電源遅延時間指定手段により生成された電源遅延時間情報と前記電源制御信号情報と前記回路接続情報を読み込み、電源遅延時間情報内に記述された時間後にハイインピーダンス論理値を強制的に入力し始めることを論理シミュレータに指示するための情報を、前記論理シミュレーション制御情報生成手段で生成し、
該論理シミュレーション制御情報生成手段により生成された論理シミュレーション制御情報を読み込み、電源供給が停止した状態を、電源制御信号が変化してから電源供給が停止するまでに必要な時間も含めてシミュレーションすることが可能であることを特徴とする論理シミュレーション装置。
【請求項３】
請求項１記載の論理シミュレーション装置において、
前記論理シミュレーション制御情報生成手段は、電源制御信号指定手段により生成された電源制御信号情報と回路接続情報を読み込み、電源供給が開始された回路ブロックに対して、電源供給停止期間中に入力し続けていたハイインピーダンス論理値の強制入力を解除することを論理シミュレータに指示するための情報を生成し、
該論理シミュレーション制御情報生成手段により生成された論理シミュレーション制御情報を読み込み、電源供給が開始された状態をシミュレーションすることが可能であることを特徴とする論理シミュレーション装置。
【請求項４】
請求項２記載の論理シミュレーション装置において、
前記電源遅延時間指定手段は、電源制御信号が変化してから実際に回路への電源供給が開始されるまでの遅延時間を指定し、
該電源遅延時間指定手段により生成された電源遅延時間情報と前記電源制御信号情報と前記回路接続情報を読み込み、電源遅延時間情報により指定された時刻後にハイインピーダンス論理値の強制入力解除を論理シミュレータに指示するための情報を、前記論理シミュレーション制御情報生成手段で生成し、
該論理シミュレーション制御情報生成手段により生成された論理シミュレーション制御情報を読み込み、電源制御信号が変化してから電源供給が供給されるまでに必要な遅延時間も含めてシミュレーションすることが可能であることを特徴とする論理シミュレーション装置。
【請求項５】
請求項１〜４のいずれかに記載の論理シミュレーション装置において、
前記電源制御信号指定手段、前記論理シミュレーション制御情報生成手段、および、前記電源遅延時間指定手段は、回路ブロックへの電源が供給されている場合も、また、供給されていない場合に対しても、論理シミュレーションが可能であることを特徴とする論理シミュレーション装置。
【請求項６】
請求項５記載の論理シミュレーション装置において、
前記論理シミュレータに指示するための情報として、論理値の強制設定あるいは解除のためにバッファを配置したことを特徴とする論理シミュレーション装置。
【請求項７】
論理回路をシミュレーションする方法において、
電源制御信号指定手段は、各回路ブロックに対する電源制御信号を指定し、
電源遅延時間指定手段は、該電源制御信号が変化してから実際に回路への電源供給が停止されるまでの遅延時間を指定し、
論理シミュレーション制御情報生成手段は、該電源制御信号指定手段により生成された電源制御信号情報と回路接続情報と電源遅延時間情報を読み込み、電源遅延時間情報内に記述された時間後に電源供給が停止された回路ブロックに対して、電源供給が停止されている期間は該回路ブロックの全ての入力信号にハイインピーダンス論理値を強制的に入力し続けることを論理シミュレータに指示するための情報を生成し、
論理シミュレーション手段は、該論理シミュレーション制御情報生成手段により生成された論理シミュレーション制御情報を読み込み、電源供給が停止した状態をシミュレーションすることを特徴とする論理シミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体設計支援装置およびその方法に関し、特に電源供給が停止されるまでの時間を論理シミュレータに指示することができる論理シミュレーション装置およびその方法に関する。
【背景技術】
【０００２】
近年、半導体集積回路の低消費電力化を図る技術として、回路動作が不要な場合には論理回路ブロックへの電源供給を停止し、回路動作が必要になったときに論理回路ブロックに電源を供給するという回路構造が採用されるようになってきている。これにより、無駄な回路動作を削減して、回路全体の消費電力を減らすことができる。
しかし、従来の論理シミュレータでは、電源供給が停止された状態をシミュレーションすることはできなかった。これは、論理シミュレーション時に使用されるセルライブラリが、常に電源供給されていることを前提として作成されているからである。
【０００３】
すなわち、論理ブロックへの電源の供給および供給停止の機能を備えた回路について論理シミュレーションを行う場合には、全ての論理ブロックが常に動作していることになることから、回路全体を一度に論理シミュレーションしても、本来想定している回路仕様の設計検証を行うことができず、電源の供給および供給停止の制御を行う回路と、論理ブロックの論理シミュレーションを個別に行って確認するしかなく、回路全体の論理シミュレーションを一括して行うことができなかった。
従って、従来の方法では、論理ブロック間の接続関係等の検証については、別途人手または機能シミュレーション等により行うことになるため、設計検証作業が煩雑となる等の問題があった。
【０００４】
次に、電源供給が停止された状態をシミュレーションすることができない場合に発生する問題点のうちの１つについて説明する。
図２は、多電源回路の例を示す図である。
図２においては、論理回路ブロックＣのフリップフロップ（Ａ）１０４の出力１０２により制御される電源（１）１０１が論理回路ブロックＡのフリップフロップ（ＦＦ１）１００に供給され、論理回路ブロックＣのフリップフロップ（Ｂ）１０７の出力１０３により制御される電源（２）が論理回路ブロックＢのフリップフロップに供給されている。
フリップフロップ（ＦＦ１）１００にリセットをかける場合には、当然、電源（１）１０１に予め電源を供給しておく必要がある。電源（１）１０１に電源を供給するためには、フリップフロップ（Ａ）１０４に論理値１をセットする。このフリップフロップ（Ａ）１０４の出力信号（ＳＩＧＡ）１０２のことを、本願明細書では以後『電源制御信号』と呼ぶことにする。
【０００５】
図２においては、１０２と１０３が電源制御信号である。今、電源（１）１０１がＯＦＦの状態（つまり、電源が供給されない、フローティングな状態）において、論理回路ブロックＢのフリップフロップの出力による制御で信号（Ｒ１）１０５を論理値０にして、フリップフロップ（ＦＦ１）１００にリセットをかけようとしても（つまり、（ＦＦ１）１００の出力１０６を論理値０にしようとしても）、リセットは正しくかからない。すなわち、フリップフロップ（ＦＦ１）１００の出力は論理値０か１のいずれの値になるかはわからない。しかし、この『リセットがかからない』状況が起きていても、論理シミュレーションではそれをチェックすることはできない。何故ならば、論理シミュレーション時に使用されるセルライブラリは、電源が常に供給されていることを前提に作成されているからである。従って、論理シミュレーションの世界では、図２の太線の部分（電源（１）、電源（２））は考慮できないからである。
【０００６】
このような問題を解決するために、例えば、特開２０００−３０５９６４号公報（特許文献１参照）が提案されている。これは、電源供給が停止された場合にもシミュレーションが可能なように、セルライブラリを作成し直すという手法が採用されている。すなわち、論理装置を構成する基本回路（標準セル）について種別毎に標準セルの機能情報を持つセルライブラリデータベースにおいて、この標準セルは、論理端子としての１以上の電源端子を備え、この標準セルの機能情報に１以上の電源端子それぞれの出力端子に対する論理情報を含むものである。つまり、上記特許文献１における基本的なアイディアは、セルライブラリに電源端子を追加するというものである。
【０００７】
【特許文献１】特開２０００−３０５９６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１には、以下の問題点がある。
（１）各セルライブラリに電源端子を追加する必要がある。これでは、従来のセルライブラリはそのままでは使用することができず、新たにセルライブラリを作成して、管理する必要が生じる。
（２）各セルの出力論理関数の入力変数として電源端子を追加し、出力論理関数を変更する必要がある。これでは、従来のセルライブラリは使用することができず、新たにセルライブラリを作成して、管理する必要が生じる。
（３）各セルの電源端子を供給電源と回路図上で接続する必要があり、各セルの電源端子を回路図上で接続するのは非常に面倒であり、また、人手により接続する場合には接続ミスが発生する場合もある。
（４）論理シミュレーション可能な設計記述抽象度が、ゲートレベルのみである。レジスタ転送レベル、いわゆるＲＴＬにおいては、電源供給停止状態での論理シミュレーションが実施できない。
【０００９】
（目的）
本発明の目的は、上記従来の問題点を解消するため、セルライブラリを作成し直すことなく、電源供給が停止された状況での論理シミュレーションが可能であり、また、ゲートレベルのシミュレーションのみならず、レジスタ転送レベルなどさらに抽象度の高い記述レベルにおいても、電源供給停止状態を考慮した論理シミュレーションが可能な論理シミュレーション装置およびその方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の論理シミュレーション装置は、各回路ブロックに対する電源制御信号を指定する電源制御信号指定手段と、該電源制御信号指定手段により生成された電源制御信号情報と回路接続情報を読み込み、電源供給が停止された回路ブロックに対して、電源供給が停止されている期間はその回路ブロックの全ての入力信号にハイインピーダンス論理値を強制的に入力し続けることを、論理シミュレータに指示するための情報を生成する論理シミュレーション制御情報生成手段とを有し、前記論理シミュレーション制御情報生成手段により生成された論理シミュレーション制御情報を読み込み、電源供給が停止した状態をシミュレーションすることを可能にしたことを特徴としている。
【発明の効果】
【００１１】
本発明によれば、セルライブラリを作成し直すことなく、電源供給が停止された状態における論理シミュレーションが可能になる。
また、ゲートレベルのシミュレーションだけでなく、レジスタ転送レベルなどのさらに抽象度の高い記述レベルにおいても、電源供給停止状態を考慮した論理シミュレーションが可能である。
また、本発明の手法を利用すれば、従来の消費電力見積もり技術を使用して、電源供給停止状態を考慮した消費電力見積もりも可能となる。
なお、従来技術が利用されるのは、消費電力見積もり技術に限らず、論理シミュレーションを利用した従来の全ての技術を利用することが可能である。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例を、図面により詳細に説明する。
図１は、本発明の一実施例に係る論理回路シミュレーション装置の構成図である。
図１に示すように、本実施例装置は、電源制御信号指定手段１、電源遅延時間指定手段１０、論理シミュレーション制御情報生成手段３、論理シミュレーション手段（論理シュミレータ）８および各種情報ファイルから構成される。情報ファイルとしては、電源制御信号情報ファイル２、電源遅延時間情報ファイル１１、回路接続情報ファイル４、テストパターン情報ファイル５、セルライブラリ情報ファイル６、論理シミュレーション制御情報ファイル７、論理シミュレーション結果ファイル９である。なお、１２〜１５は、各ファイル（２，１１，７）における記述例であり、１４〜１７は、論理シミュレーション手段８に与える固定値およびそれらの強制値の解除の例を示すものである。
【００１３】
（実施例１（請求項１に対応））
初めに、実施例１について図１に従って説明する。
電源制御信号指定手段１では、電源供給の停止、開始を制御する信号を指定して、電源制御信号情報を生成する。図２では、ＳＩＧＡ１０２が電源制御信号の例である。また、電源制御信号情報の例を、図１の１２に示す。電源制御信号情報１２では、図２中のブロック名（Ａ，Ｂ）と、電源制御信号名（ＳＩＧＡ，ＳＩＧＢ）が使用されている。
１２は、ブロックＡへの電源供給が信号ＳＩＧＡ１０２により制御されることを意味する。この例では、ＳＩＧＡ１０２が論理値１になると電源が供給され、論理値０になると電源供給が停止されることを意味する。電源制御信号指定手段１は、人手による方法でも、あるいは、ＣＡＤツールによる入力手段等であってもよい。
【００１４】
論理シミュレーション制御情報生成手段３では、回路接続情報４と電源制御信号情報２を読み込み、論理シミュレーション制御情報７を生成する。論理シミュレーション制御情報の例を１５に示す。１５は、ＬＳＩ設計業界により標準的に使用されているハードウェア記述言語であるＶｅｒｉｌｏｇ−ＨＤＬによる記述例である。１５は、図２の信号ＳＩＧＡが１から０に変化したならば、図２のブロックＡの入力ポートｉ１とｉ２を論理値Ｚ（ハイインピーダンス状態）に固定するよう論理シミュレータに指示するものである。
なお、ブロックＡに入力ポートｉ１とｉ２が存在するという事実は、回路接続情報から取得することができる。ブロックＡの入力ポートを論理値Ｚに固定した場合には、図２のブロックＢから論理値１や０が伝播しても論理シミュレーション中はブロックＡの入力ポートの値は論理値Ｚのままである。
【００１５】
通常、セルライブラリは、論理値Ｚが入力されると、論理値Ｘを出力するように作成されている。このＸというものは、論理値が０か１かを決定できない（どちらになるかわからない）状態を意味する。
これは、正に電源が供給されていない場合のセルの振る舞いを表現していることになる。
従って、ブロックＡの全ての入力を論理値Ｚで固定すれば、ブロックＡの内部へは論理値Ｘが伝播することになり、電源が供給されていない状況をシミュレーションすることが可能になる。また、ブロックＡの入力だけでなく、全ての出力を論理値Ｚに固定するという方法も考えられる。
論理シミュレーション手段８では、従来、論理シミュレーション時に使用していた各種情報４，５，６と論理シミュレーション制御情報７を読み込み、論理シミュレーションを実施する。論理シミュレーション制御情報７を読み込んでいるので、ブロックＡに電源が供給されていない状態を論理シミュレーション手段８において擬似的に再現することができる。
【００１６】
実施例１（請求項１）によれば、電源供給が停止された回路ブロックの各外部ポートに対して、論理値Ｚを強制的に設定するよう論理シミュレーションに指示するので、回路ブロックに電源が供給されていない状況を論理シミュレーションすることが可能となる。
【００１７】
（実施例２（請求項２に対応））
次に、実施例２（請求項２）について説明する。
電源遅延時間指定手段１０では、電源遅延時間を指定して電源遅延時間情報１１を生成する。ここで言う電源遅延時間とは、電源制御信号がアクティブ（例えば、１）になってから実際に電源が供給されるまでにかかる時間のことである。例えば、図２において、ＳＩＧＡが１になってから電源（１）１０１が所定の電圧値まで上昇するのに必要な時間である。また、電源制御信号が非アクティブ（例えば、０）になってから実際に電源の供給が停止するまでにかかる時間も電源遅延時間と呼ぶことにする。
例えば、図２において、ＳＩＧＡが０になってから電源（１）１０１が所定の電圧値まで降下するのに必要な時間である。図１の１３は、電源遅延時間情報の例を示している。
これは、信号ＳＩＧＡが１になってから、時間１０が過ぎた後に電源（１）１０１が所定の電圧値に達することを意味している。同じようにして、信号ＳＩＧＡが０になってから、時間５が過ぎた後に電源（１）１０１が所定の電圧値に達することも意味している。
【００１８】
論理シミュレーション制御情報生成手段３では、回路接続情報４と電源制御信号情報２と電源遅延時間情報１１とを読み込み、論理シミュレーション制御情報７を生成する。
論理シミュレーション制御情報の例を、図１の１４に示す。１４は、ＬＳＩ設計業界により標準的に使用されているハードウェア記述言語であるＶｅｒｉｌｏｇ−ＨＤＬによる記述例である。１４は、図２の信号ＳＩＧＡが１から０に変化してから、時間５が過ぎてから図２のブロックＡに入力ポートｉ１とｉ２を論理値Ｚ（ハイインピーダンス状態）に固定するよう論理シミュレータ（論理シミュレーション手段８）に指示するものである。
なお、ブロックＡに入力ポートｉ１とｉ２が存在するという事実は、回路接続情報４から取得することができる。
【００１９】
論理シミュレーション手段８では、従来、論理シミュレーション時に使用していた各種情報４，５，６と論理シミュレーション制御情報７を読み込み、論理シミュレーションを実施する。論理シミュレーション制御情報７を読み込んでいるので、論理シミュレーションにおいて、電源停止に必要な時間も含めてブロックＡに電源が供給されていない状態をシミュレーションすることができる。
【００２０】
実施例２（請求項２）によれば、電源制御信号が変化してから電源供給が停止されるまでの時間を論理シミュレータに指示するので、電源制御信号が変化してから電源供給が停止されるまでの時間を考慮した論理シミュレーションが可能となる。
【００２１】
（実施例３（請求項３に対応））
次に、実施例３（請求項３）について説明する。実施例１（請求項１）が電源供給停止時に関する特徴を有する状態であるのに対して、実施例３（請求項３）は、電源供給再開時に関する特徴を有する状態である。実施例１と実施例３の相違点は、実施例１では図１の１５（固定値）が生成されるのに対して、実施例３では図１の１６が論理シミュレーション制御情報（強制解除）として生成される。
１６は、ＳＩＧＡが０から１に変化したならば、ブロックＡのポートｉ１とｉ２へ強制入力（固定値代入）を解除することを意味する。これにより、電源供給が実施された後の従来の論理シミュレーションが可能となる。
【００２２】
実施例３（請求項３）によれば、電源供給が開始された回路ブロックの各外部ポートに対して、論理値Ｚの強制設定を解除するように論理シミュレーションに指示するので、回路ブロックに電源が供給された状況を論理シミュレーションすることが可能となる。
【００２３】
（実施例４（請求項４に対応））
次に、実施例４（請求項４）について説明する。実施例２（請求項２）が電源供給停止時に関する特徴を有する状態であるのに対して、実施例４（請求項４）は電源供給再開時に関する特徴を有する状態である。実施例２と実施例４の相違点は、実施例２では図１の１４（固定値）が生成されるのに対して、実施例４では図１の１７（強制解除）が論理シミュレーション制御情報として生成される。
１７は、ＳＩＧＡが０から１に変化してから時間１０が過ぎた後、ブロックＡのポートｉ１とｉ２への強制入力（固定値代入）を解除することを意味する。これにより、電源制御信号が変化してから、電源供給が再開されるのに必要な時間を含めた論理シミュレーションが可能となる。
【００２４】
実施例４（請求項４）によれば、電源制御信号が変化してから電源供給が開始されるまでの時間を論理シミュレータに指示するので、電源制御信号が変化してから電源供給が開始されるまでの時間を考慮した論理シミュレーションが可能となる。
【００２５】
（実施例５（請求項６に対応））
図３は、多電源回路の別の実施例を示す図であり、図４は本発明の実施例５に係るバッファ挿入による回路例の図である。
ブロックの入力ポートに論理値Ｚを強制的に設定する方法について、前述したが、この方法にも問題がある。例えば、図３において、ブロックＡの入力ポートｉ１に論理値Ｚを強制的に設定したとする。しかし、論理シミュレータによっては、このときブロックＣの入力ポートｉ２にも論理値Ｚが設定されてしまう場合がある。これは、あくまでも論理シミュレータの都合上の話であって、ポート毎に強制設定できるシミュレータも存在する。
いずれにせよ、ネットに対してしか強制設定ができない場合には、ブロックＡには電源供給なしで、かつブロックＣには電源供給ありと言った状況をシミュレーションすることができなくなる。
【００２６】
そこで、本実施例では、図４に示すように、回路接続情報中にバッファ５０１を挿入し、バッファ出力５０２に対して論理値Ｚを強制設定できるようにする。このバッファの挿入は、ＣＡＤツール等により自動的に実施される。これにより、（ｉ２）５０３が論理値Ｚに固定されることはない。
なお、図４では、バッファはブロックＡの内部に挿入したが、ブロックＣの外側に挿入してもよい。
【００２７】
図５は、バッファ動作の記述例を示す図である。
図５には、バッファ動作の記述例として、Ｖｅｒｉｌｏｇ−ＨＤＬ記述を示している。
【００２８】
実施例５（請求項６）によれば、ネットにバッファを挿入しているので、論理シミュレーション時に目的の回路ブロックのみの外部ポートに論理値を強制設定することが可能となる。
【００２９】
以上、本発明の各実施例について説明したが、本発明では、半導体集積回路に限らずに、プリント基板回路等に対する論理シミュレーションに対しても適用が可能である。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施例に係る論理回路シミュレーション装置の構成図である。
【図２】多電源回路の例を示す図である。
【図３】多電源回路の別の例を示す図である。
【図４】本発明の実施例５に係る論理シミュレーション装置の構成図である。
【図５】バッファ動作の記述例を示す図である。
【符号の説明】
【００３１】
１…電源制御信号指定手段、２…電源制御信号情報、
３…論理シミュレーション制御情報生成手段、４…回路接続情報ファイル、
５…テストパターン情報ファイル、６…セルライブラリ情報ファイル、
７…論理シミュレーション制御情報、８…論理シミュレーション手段、
９…論理シミュレーション結果ファイル、１０…電源遅延時間指定手段、
１１…電源遅延時間情報ファイル、１２…電源制御信号情報の例、
１３…電源遅延時間情報の例、１４…Ｖｅｒｉｌｏｇ−ＨＤＬによる記述例、
１５…論理シミュレーション制御情報の例、１６…論理シミュレーション情報の例、
１７…ＳＩＧＡが０から１に変化してから時間５が過ぎた後、固定値代入を解除の例、
１００…フリップフロップＦＦ１、１０１…電源（１）、１０２…信号ＳＩＧＡ、
１０３…フリップフロップ（Ｂ）の出力信号、１０４…フリップフロップ（Ａ）、
１０５…リセット入力Ｒ１、１０６…フリップフロップ（ＦＦ１）の出力信号、
１０７…フリップフロップ（Ｂ）、５０１…バッファ、５０２…バッファ出力信号、
５０３…入力ポートｉ２、ｉ１，ｉ２…入力ポート。
【図１】
2006031208.tif 000003
【図２】
2006031208.tif 000004
【図３】
2006031208.tif 000005
【図４】
2006031208.tif 000006
【図５】
2006031208.tif 000007