(57)【要約】      （修正有）【課題】チャージポンプを搭載した半導体集積回路の論理検証の精度を向上させること。【解決手段】論理検証方法は、（Ａ）ＨＤＬで記述された電圧発生回路用の論理モデル１０を提供するステップと、（Ｂ）その論理モデル１０を用いることによって、電圧発生回路２０を含む半導体集積回路の論理検証を実行するステップとを有する。その論理モデル１０は、電圧発生回路２０の動作をトリガするトリガ信号ｐｒｅＶＰ１を生成するトリガ信号生成部４０と、クロック信号ＣＬＫに基づいてカウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を変化させるカウンタ部６０と、トリガ信号ｐｒｅＶＰ１が変化する毎にカウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を初期値にリセットする初期化部５０とを備える。カウンタ部６０は、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）が所定の終了値になると、その出力ＶＰ１をトリガ信号ｐｒｅＶＰ１の変化に応じた値“１，０”に設定する。【選択図】      図９
2007086952.tif 000002
【特許請求の範囲】
【請求項１】
（Ａ）ＨＤＬ（Hardware Description Language）で記述された電圧発生回路用の論理モデルを提供するステップと、
（Ｂ）前記論理モデルを用いることによって、前記電圧発生回路を含む半導体集積回路の論理検証を実行するステップと
を有し、
前記論理モデルは、
前記電圧発生回路の動作をトリガするトリガ信号を生成するトリガ信号生成部と、
クロック信号に基づいてカウンタ変数を変化させるカウンタ部と、
前記トリガ信号が変化する毎に前記カウンタ変数を初期値にリセットする初期化部と
を備え、
前記カウンタ部は、前記カウンタ変数が所定の終了値になるまでは、前記電圧発生回路の出力を不定値に設定し、且つ、前記カウンタ変数が前記所定の終了値になると、前記出力を前記トリガ信号の変化に応じた値に設定する
半導体集積回路の論理検証方法。
【請求項２】
請求項１に記載の半導体集積回路の論理検証方法であって、
前記初期値は、前記電圧発生回路の出力の立ち上がり／立ち下がりに要する変化時間に対応している
半導体集積回路の論理検証方法。
【請求項３】
請求項２に記載の半導体集積回路の論理検証方法であって、
前記初期値は、前記変化時間に相当する前記クロック信号の数で表される
半導体集積回路の論理検証方法。
【請求項４】
請求項１乃至３のいずれかに記載の半導体集積回路の論理検証方法であって、
前記電圧発生回路は、チャージポンプであり、
前記クロック信号は、前記チャージポンプの昇圧動作に用いられるクロックである
半導体集積回路の論理検証方法。
【請求項５】
請求項１乃至４のいずれかに記載の半導体集積回路の論理検証方法であって、
前記カウンタ部は、前記クロック信号に基づいて常にカウントを行う
半導体集積回路の論理検証方法。
【請求項６】
請求項１乃至５のいずれかに記載の半導体集積回路の論理検証方法であって、
前記カウンタ部は、前記カウンタ変数を前記初期値からカウントダウンする
半導体集積回路の論理検証方法。
【請求項７】
請求項６に記載の半導体集積回路の論理検証方法であって、
前記カウンタ変数は、
第１カウンタ変数と
第２カウンタ変数と
を含み、
前記トリガ信号の変化に応じて前記電圧発生回路の出力が第１出力に変わる場合、前記初期化部は、前記第１カウンタ変数を前記初期値に設定し、前記第２カウンタ変数を前記所定の終了値より小さい値に設定し、
前記トリガ信号の変化に応じて前記電圧発生回路の出力が第２出力に変わる場合、前記初期化部は、前記第１カウンタ変数を前記所定の終了値より小さい値に設定し、前記第２カウンタ変数を前記初期値に設定する
半導体集積回路の論理検証方法。
【請求項８】
請求項１乃至７のいずれかに記載の半導体集積回路の論理検証方法であって、
前記電圧発生回路は、基準電圧に基づきコントロール信号に応答して出力電圧を生成するチャージポンプを含み、
前記トリガ信号生成部は、前記コントロール信号と前記基準電圧の論理積を前記チャージポンプに対する前記トリガ信号として設定し、前記基準電圧が不定値である場合、前記基準電圧を“０”として前記トリガ信号を生成する
半導体集積回路の論理検証方法。
【請求項９】
請求項１乃至７のいずれかに記載の半導体集積回路の論理検証方法であって、
前記電圧発生回路は、チャージポンプを含み、
前記チャージポンプは、
基準電圧に基づき第１コントロール信号に応答して第１出力電圧を生成する第１チャージポンプと、
前記基準電圧に基づき第２コントロール信号に応答して第２出力電圧を生成する第２チャージポンプと
を含み、
前記トリガ信号生成部は、前記第１コントロール信号と前記基準電圧の論理積を前記第１チャージポンプに対する前記トリガ信号として設定し、前記第２コントロール信号と前記基準電圧の論理積を前記第２チャージポンプに対する前記トリガ信号として設定し、前記基準電圧が不定値である場合、前記基準電圧を“０”として前記トリガ信号を生成する
半導体集積回路の論理検証方法。
【請求項１０】
請求項９に記載の半導体集積回路の論理検証方法であって、
前記第１チャージポンプの出力と前記第２チャージポンプの出力の論理和が前記チャージポンプの出力として用いられる
半導体集積回路の論理検証方法。
【請求項１１】
請求項８乃至１０のいずれかに記載の論理検証方法であって、
前記電圧発生回路は、イネーブル信号に応答して前記基準電圧を生成するＢＧＲ回路を更に含み、
前記トリガ信号生成部は、前記イネーブル信号を前記ＢＧＲ回路に対する前記トリガ信号として設定する
半導体集積回路の論理検証方法。
【請求項１２】
請求項１１に記載の半導体集積回路の論理検証方法であって、
前記ＢＧＲ回路は、前記チャージポンプに内蔵されている
半導体集積回路の論理検証方法。
【請求項１３】
請求項１乃至１２のいずれかに記載の半導体集積回路の論理検証方法であって、
前記論理モデルは、更に、前記カウンタ部に前記クロック信号を供給するクロック生成部を備える
半導体集積回路の論理検証方法。
【請求項１４】
（ａ）請求項１乃至１３のいずれかに記載の論理検証方法による論理検証ステップと、
（ｂ）前記論理検証ステップの後、論理合成により前記半導体集積回路のネットリストを生成する論理合成ステップと、
（ｃ）前記ネットリストに基づいて前記半導体集積回路のレイアウトを決定するレイアウトステップと
を有する
半導体集積回路の設計方法。
【請求項１５】
電圧発生回路用の論理モデルデータを記録したコンピュータ読み取り可能な記録媒体であって、
前記論理モデルデータは、
前記電圧発生回路の動作をトリガするトリガ信号を生成するトリガ信号生成部を、ＨＤＬ（Hardware Description Language）で表現する第１データ構造と、
クロック信号に基づいてカウンタ変数を変化させるカウンタ部を、ＨＤＬで表現する第２データ構造と、
前記トリガ信号が変化する毎に前記カウンタ変数を初期値にリセットする初期化部を、ＨＤＬで表現する第３データ構造と
を備え、
前記カウンタ部は、前記カウンタ変数が所定の終了値になるまでは、前記電圧発生回路の出力を不定値に設定し、且つ、前記カウンタ変数が前記所定の終了値になると、前記出力を前記トリガ信号の変化に応じた値に設定する
コンピュータ読み取り可能な記録媒体。
【請求項１６】
請求項１５に記載のコンピュータ読み取り可能な記録媒体であって、
前記初期値は、前記電圧発生回路の出力の立ち上がり／立ち下がりに要する変化時間に対応している
コンピュータ読み取り可能な記録媒体。
【請求項１７】
請求項１５又は１６に記載のコンピュータ読み取り可能な記録媒体であって、
前記カウンタ部は、前記クロック信号に基づいて常にカウントを行う
コンピュータ読み取り可能な記録媒体。
【請求項１８】
請求項１５乃至１７のいずれかに記載のコンピュータ読み取り可能な記録媒体であって、
前記カウンタ部は、前記カウンタ変数を前記初期値からカウントダウンする
コンピュータ読み取り可能な記録媒体。
【請求項１９】
請求項１８に記載のコンピュータ読み取り可能な記録媒体であって、
前記カウンタ変数は、
第１カウンタ変数と
第２カウンタ変数と
を含み、
前記トリガ信号の変化に応じて前記電圧発生回路の出力が第１出力に変わる場合、前記初期化部は、前記第１カウンタ変数を前記初期値に設定し、前記第２カウンタ変数を前記所定の終了値より小さい値に設定し、
前記トリガ信号の変化に応じて前記電圧発生回路の出力が第２出力に変わる場合、前記初期化部は、前記第１カウンタ変数を前記所定の終了値より小さい値に設定し、前記第２カウンタ変数を前記初期値に設定する
コンピュータ読み取り可能な記録媒体。
【請求項２０】
請求項１５乃至１９のいずれかに記載のコンピュータ読み取り可能な記録媒体であって、
前記電圧発生回路は、基準電圧に基づきコントロール信号に応答して出力電圧を生成するチャージポンプを含み、
前記トリガ信号生成部は、前記コントロール信号と前記基準電圧の論理積を前記チャージポンプに対する前記トリガ信号として設定し、前記基準電圧が不定値である場合、前記基準電圧を“０”として前記トリガ信号を生成する
コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電圧発生回路を有する半導体集積回路の設計に関する。特に、本発明は、電圧発生回路マクロの論理モデル、その論理モデルを用いた半導体集積回路の論理検証方法、及びその論理検証方法を用いた半導体集積回路の設計方法に関する。
【背景技術】
【０００２】
ＬＳＩ設計のフロントエンドにおいては、システム設計から回路図設計まで行われる。まず、システム設計においては、ハードウェア記述言語（ＨＤＬ：Hardware Description Language）を用いることにより、所望の論理回路の動作がＲＴＬ（Register Transfer Level）と呼ばれるレベルで記述される。ＨＤＬとしては、ＶＨＤＬやＶｅｒｉｌｏｇ−ＨＤＬが知られている。ＲＴＬ記述では、レジスタ（フリップフロップ）、及びレジスタ間の動作が明に定義される。ＲＴＬ記述を自動的に生成する方法は、例えば、特許文献１（特開２００２−７３７１９号公報）に開示されている。
【０００３】
次に、ＨＤＬを用いた上記ＲＴＬ記述に関して、「機能・論理検証」が行われる。具体的には、ＲＴＬレベルで記述されたシステムが予定通りの動作を行うか否かが、論理シミュレータ（ＨＤＬシミュレータ）を用いることにより検証される。機能・論理検証において満足する結果が得られたら、次に「論理合成」が行われる。具体的には、論理合成ツール（logic synthesizer）によって、上記ＲＴＬ記述が、ゲートレベルの論理回路に自動的に変換される。生成されるゲートレベルの論理回路は、ネットリストと呼ばれ、マクロセルの接続関係を示している。
【０００４】
チャージポンプ等のアナログ回路は、論理合成することはできない。そのため、ネットリストやレイアウト段階で用いられるアナログ回路は、セルライブラリとして用意される。論理合成前の論理検証段階においては、チャージポンプマクロは、論理検証に影響を及ぼさない単なる電源として従来扱われてきた。あるいは、論理検証段階において、チャージポンプマクロは、コントロール信号による論理をそのまま出力するだけの簡素な論理モデルとして扱われてきた。
【０００５】
しかしながら、ＬＳＩの微細化、高機能化、高速化に伴い、上述のような簡素なチャージポンプマクロの論理モデルは、精密な論理検証に適さなくなってきている。例えば、チャージポンプマクロを必要とする不揮発性メモリはますます複雑化しており、その不揮発性メモリの論理検証を精密に行うためには、より実動作に近いチャージポンプマクロの論理検証用モデルが望まれている。プリミティブな論理モデルが適用されると、その不揮発性メモリを含むチップ全体の論理検証の精度が劣化する。つまり、論理検証をパスしたとしても、実動作の段階でエラーが発生する可能性が出てくる。チャージポンプ等のアナログ電圧発生回路に対して、実動作を可能な限り忠実に再現することができる論理検証用の論理モデルを提供することが望まれている。
【０００６】
図１は、一般的なチャージポンプマクロの動作を概念的に示している。ＢＧＲ（バンドギャップリファレンス）回路１は、イネーブル信号ＥＮ１に応答して、基準電圧ＢＧＲを出力する。チャージポンプ２は、基準電圧ＢＧＲに基づき、コントロール信号ＣＮＴ１に応答して高電圧を生成し、その電圧を出力電圧ＶＰ１として出力する。チャージポンプ２は、ＢＧＲ回路１を内蔵していてもよい。
【０００７】
実際のＢＧＲ回路１の回路構成の一例が、図２１に示されている。このＢＧＲ回路１は、ＰＭＯＳ（Ｐ１〜Ｐ４）、ＮＭＯＳ（Ｎ１〜Ｎ３）、抵抗（Ｒ１、Ｒ２）、及びダイオード（Ｄ１〜Ｄ３）から構成されている。イネーブル信号ＥＮ１が“０”、その反転信号が“１”の時、ＢＧＲ回路１は動作を停止し、出力ＢＧＲはＧＮＤレベルとなる。イネーブル信号ＥＮ１が“１”になると、出力ＢＧＲは徐々に上昇し、一定時間後に所定の電圧となる。
【０００８】
また、図２２には、一般的なチャージポンプ２の構成が示されている。このチャージポンプ２は、内部発振制御部３と昇圧部４を備えている。昇圧部４は、内部発振制御部３から内部クロック信号ＣＬＫを受け取り、その内部クロック信号ＣＬＫとコントロール信号ＣＮＴ１に応答して、出力電圧ＶＰ１を生成する。昇圧部４の具体的な回路構成例は、図２３に示されている。コントロール信号ＣＮＴ１がＬｏｗの場合、ＭＯＳトランジスタから構成されるスイッチとコンデンサによって昇圧動作が行われる。コントロール信号ＣＮＴ１がＨｉｇｈの場合、または、内部クロック信号ＣＬＫの供給が停止した場合、昇圧動作は停止する。一方、内部発振制御部３は、ＢＧＲ回路１の出力ＢＧＲと、昇圧部４からの出力電圧ＶＰ１を分圧したリファレンス電圧ＲＥＦを受け取る。それら出力ＢＧＲとリファレンス電圧ＲＥＦに基づいて、内部発振制御部３は、上記内部クロック信号ＣＬＫを昇圧部４に供給する。内部発振制御部３の具体的な回路構成例は、図２４に示されている。図２４において、比較回路は、出力ＢＧＲとリファレンス電圧ＲＥＦを比較する。リファレンス電圧ＲＥＦが出力ＢＧＲより小さい場合、内部発振制御部３は、内部クロック信号ＣＬＫを昇圧部４に出力する。チャージポンプ２の出力電圧ＶＰ１が十分昇圧されていない場合でも、出力ＢＧＲの電圧が低下すれば、内部クロック信号ＣＬＫの供給は停止し、昇圧動作は停止することになる。
【０００９】
論理検証のため、図１に示されたチャージポンプマクロの“動作”を、ＨＤＬで記述することを考える。図２は、ＨＤＬの１つであるＶｅｒｉｌｏｇ−ＨＤＬで記述されたチャージポンプマクロの論理モデルの一例を示している。１つのモジュール（module test）は、入力信号と出力信号と共に宣言される。図２の場合、入力信号は、上述のイネーブル信号ＥＮ１とコントロール信号ＣＮＴ１であり、出力信号は、上述の基準電圧ＢＧＲと出力電圧ＶＰ１である。また、図２中の（Ａ）は、この論理モデルにおける入出力コントロールを表している。出力信号ＢＧＲは、入力信号ＥＮ１をバッファすることにより得られる。入力信号ＥＮ１の立ち上がり／立ち下がりに対する出力信号ＢＧＲの遅延時間は、Ａ１／Ａ２に設定されている。また、出力信号ＶＰ１は、信号ＢＧＲとコントロール信号ＣＮＴ１のＡＮＤとなるように定義されている。信号ＣＮＴ１と信号ＢＧＲの論理積の立ち上がり／立ち下がりに対する出力信号ＶＰ１の遅延時間は、Ｂ１／Ｂ２に設定されている。
【００１０】
このような論理モデルにより、図３に示されるような動作が再現される。時刻ｔ１に入力信号ＥＮ１が立ち上がり、遅延時間Ａ１後の時刻ｔ２に、出力信号ＢＧＲが立ち上がる。時刻ｔ３に入力信号ＣＮＴ１が立ち上がり、遅延時間Ｂ１後の時刻ｔ４に、出力信号ＶＰ１が立ち上がる。時刻ｔ５に入力信号ＥＮ１が立ち下がり、遅延時間Ａ２後の時刻ｔ６に、出力信号ＢＧＲが立ち下がる。それに応じて、遅延時間Ｂ２後の時刻ｔ７に、出力信号ＶＰ１が立ち下がる。時刻ｔ８に入力信号ＥＮ１が立ち上がり、遅延時間Ａ１後の時刻ｔ９に、出力信号ＢＧＲが立ち上がる。それに応じて、遅延時間Ｂ１後の時刻ｔ１０に、出力信号ＶＰ１が立ち上がる。このように、入力信号（コントロール信号）の変化に応答して、出力信号は定義された所定の遅延時間後に変化する。
【００１１】
しかしながら、図２、図３に示された論理モデルには、次の２つの問題点がある。
（１）設定された遅延時間より短い周期で入力信号ＥＮ１，ＣＮＴ１が変化した場合、その変化は無視され出力信号ＢＧＲ，ＶＰ１に反映されていない。例えば、図３中の円Ｃ１で示されているように、入力信号ＥＮ１が短い周期で変化しているが、その変化は出力信号ＢＧＲには反映されていない。出力信号ＢＧＲは、前データをホールドしたままである。この場合、チャージポンプマクロの正しい動作を再現しているとは言えない。
（２）「不定処理」が再現されていない。基準電圧ＢＧＲや出力電圧ＶＰ１の立ち上がり／立ち下がりには、実際にはある程度の時間を要する。その間（以下、「遷移期間」と参照される）は、基準電圧ＢＧＲや出力電圧ＶＰ１は“不定値Ｘ”を取るべきである。また、その遷移期間においては、その出力電圧ＶＰ１を受け取る他の回路ブロックも、“正しくない動作”を行うべきである。しかしながら、図２、図３で示された論理モデルによれば、本来不定値Ｘであるべき遷移期間に、出力電圧ＶＰ１は、正常値（“１”あるいは“０”）になっている。従って、その出力電圧ＶＰ１を用いる他の回路ブロックが、“あたかも正常に”動作してしまう。この場合、所望のシステムの論理検証が正しく行われているとは言えない。
【００１２】
上記問題点に関して、「イナーシャル遅延（慣性遅延）」と「トランスポート遅延（伝播遅延）」が知られている。これらイナーシャル遅延とトランスポート遅延について、図４を参照しながら説明する。図４において、出力ｏｕｔは入力ｉｎをバッファすることにより得られるとする。また、遅延時間は「１０」に設定されているとする。イナーシャル遅延に設定されている場合、設定遅延時間より短いパルスが入力された時は、そのパルスはキャンセルされ出力には現れない。一方、トランスポート遅延の場合は、どんなに短いパルスでもそのまま出力に伝播される（図中の円Ｃ２，Ｃ２’，Ｃ３，Ｃ３’を参照）。
【００１３】
Ｖｅｒｉｌｏｇなどの論理シミュレータは、デフォルトでは「イナーシャル遅延」をサポートしているが、オプション指定として「トランスポート遅延」も用意されている。このトランスポート遅延の動作を利用すれば、例えば、ＳＲＡＭのｔＯＨ処理を再現することができる。ｔＯＨ処理によれば、出力データの切り替わり時、まず前データがホールドされ、その後クロック信号に対するアクセス時間までの間、不定値あるいは使用できない値が出力され、アクセス時間後に正常値が出力される。
【００１４】
このｔＯＨ処理の考え方を利用して、本願発明者がチャージポンプマクロの論理モデルを作成してみたところ、図５に示されるような記述となった。図１で示された例と同様に、入力信号ＥＮ１，ＣＮＴ１、及び出力信号ＢＧＲ，ＶＰ１が用いられる。更に、内部レジスタとして、＿ＥＮ１及び＿ＣＮＴ１が定義されている。出力信号ＢＧＲは、＿ＥＮ１をバッファすることにより得られる。また、出力信号ＶＰ１は、ＢＧＲと＿ＣＮＴ１のＡＮＤとなるように定義されている。入力信号ＥＮ１，ＣＮＴ１の変化に応答して、まず、内部レジスタ＿ＥＮ１，＿ＣＮＴ１に不定値“Ｘ”が代入される。そして、“１”シミュレーション時間後に、その内部レジスタ＿ＥＮ１，＿ＣＮＴ１に正しい値が代入される。パス遅延は、図３中の（Ｂ）に定義されている。シミュレーション実行時に「トランスポート遅延」に設定されていれば、図６に示されるような、ｔＯＨ処理が再現される。
【００１５】
図６において、入力信号ＥＮ１，ＣＮＴ１の変化に応答して、まず前データが期間｛Ａ３，Ｂ３｝だけホールドされる。次に、期間｛Ａ１，Ａ２，Ｂ１，Ｂ２｝の間、不定値“Ｘ”が出力され、その後正しいデータが出力される。具体的には、時刻ｔ１において信号ＥＮ１が立ち上がり、遅延時間Ａ３後の時刻ｔ２までは、信号ＢＧＲとして前データ“０”がホールドされる。時刻ｔ２において信号ＢＧＲが不定値となり、更に遅延時間Ａ１後の時刻ｔ３において信号ＢＧＲが“１”となる。また、時刻ｔ４において信号ＣＮＴ１が立ち上がり、遅延時間Ｂ３後の時刻ｔ５までは、信号ＶＰ１として前データ“０”がホールドされる。時刻ｔ５において信号ＶＰ１が不定値となり、更に遅延時間Ｂ１後の時刻ｔ６において信号ＶＰ１が“１”となる。時刻ｔ７において信号ＥＮ１が立ち下がり、遅延時間Ａ３後の時刻ｔ８において信号ＢＧＲが不定値となる。同時に、信号ＶＰ１も不定値となる。時刻ｔ８から遅延時間Ａ２後の時刻ｔ９において、信号ＢＧＲ及びＶＰ１が“０”となる。また、時刻ｔ１０において信号ＥＮ１が立ち上がり、遅延時間Ａ３後の時刻ｔ１１において信号ＢＧＲが不定値となる。同時に、信号ＶＰ１も不定値となる。時刻ｔ１１から遅延時間Ａ１後の時刻ｔ１２において、信号ＢＧＲ及びＶＰ１が“１”となる。
【００１６】
図５及び図６に示された例の場合、遷移期間での不定処理が実現されているように見える。しかしながら、遅延パスは入力信号ＥＮ１，ＣＮＴ１と出力信号ＢＧＲ、ＶＰ１との関係でスケジュールされており、出力信号ＢＧＲの変化に応じた遅延パスが定義されていないため、出力信号ＢＧＲの変化はそのまま出力信号ＶＰ１に反映されてしまう。従って、図５及び図６で示された論理モデルも、チャージポンプマクロの動作を正しく再現しているとは言えない。また、上記例では、遅延ライブラリより変換された遅延データをアノテートして使用することが前提となっているが、チャージポンプ動作は一般にｕｓあるいはｍｓオーダでの動作となる為、そのスペックを入れて検証を行うのは現実的ではない。
【００１７】
また、チャージポンプは、通常クロック信号ＣＬＫに基づいて昇圧を実行する。上述の遷移期間を認識するために、そのクロック信号ＣＬＫをカウントするカウンタを利用することが考えられる。図７は、Ｖｅｒｉｌｏｇ−ＨＤＬで記述されたカウンタの論理モデルの一例を示している。この論理モデルにおいて、入力信号は、カウント開始信号ＩＮ＿ＥＮとクロック信号ＣＬＫであり、出力信号は、出力イネーブル信号ＯＵＴ＿ＥＮＢである。このカウンタの動作タイミングチャートは、図８に示されている。
【００１８】
図８に示されているように、カウント開始信号ＩＮ＿ＥＮが“１”になると、カウンタ値（count）は“０”に初期化され、カウントが開始する。この時、出力イネーブル信号ＯＵＴ＿ＥＮＢは、“１（Ｄｉｓａｂｌｅ）”に設定される。それ以後、クロック信号ＣＬＫのエッジ毎にカウントが行われ、カウンタ値が規定値（＝１５）になった時点で、出力イネーブル信号ＯＵＴ＿ＥＮＢが“０（Ｅｎａｂｌｅ）”に変化する。このように、カウント開始信号ＩＮ＿ＥＮが“１”になってから所定の期間後に、チャージポンプの出力許可が出される。複数の電源を扱うチャージポンプマクロの場合、それぞれに対してカウンタを設け、それぞれに対するカウント開始信号ＩＮ＿ＥＮと出力イネーブル信号ＯＵＴ＿ＥＮＢを個別に扱う必要があるため、複雑な記述が要求される。このようなカウンタを用いた処理は、複数の電源を扱うチャージポンプマクロには不適である。
【００１９】
【特許文献１】特開２００２−７３７１９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
ＬＳＩの微細化、高機能化、高速化に伴い、従来の電圧発生回路の論理モデル（図１〜図８参照）は、精密な論理検証に適さなくなってきている。プリミティブな論理モデルが適用されると、その電圧発生回路を含むシステム全体の論理検証の精度が劣化する。つまり、論理検証をパスしたとしても、実動作の段階でエラーが発生する可能性が出てくる。
【課題を解決するための手段】
【００２１】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２２】
本発明の第１の観点において、半導体集積回路の論理検証方法が提供される。その論理検証方法は、（Ａ）ＨＤＬで記述された電圧発生回路（２０）用の論理モデル（１０）を提供するステップと、（Ｂ）その論理モデル（１０）を用いることによって、電圧発生回路（２０）を含む半導体集積回路の論理検証を実行するステップとを有する。その論理モデル（１０）は、電圧発生回路（２０）の動作をトリガするトリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１）を生成するトリガ信号生成部（４０）と、クロック信号（ＣＬＫ）に基づいてカウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を変化させるカウンタ部（６０）と、トリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１）が変化する毎にカウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を初期値にリセットする初期化部（５０）とを備える。カウンタ部（６０）は、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）が所定の終了値になるまでは、電圧発生回路（２０）の出力（ＯＵＴ）を不定値に設定する。また、カウンタ部（６０）は、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）が所定の終了値になると、その出力（ＯＵＴ）をトリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１）の変化に応じた値に設定する。
【００２３】
このように、初期化部（５０）は、トリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１）が変化する毎に、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を初期値にリセットする。その初期値は、電圧発生回路（２０）の出力（ＯＵＴ）の立ち上がり／立ち下がりに要する変化時間（遷移期間）に対応しており、その遷移期間に相当するクロック信号（ＣＬＫ）の数で表される。カウンタ部（６０）は、カウント開始信号を受けてカウントを始める代わりに、昇圧用のクロック信号（ＣＬＫ）に基づいて常にカウントし続ける。具体的には、カウンタ部（６０）は、クロック信号（ＣＬＫ）に応じて、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を初期値からカウントダウンする。そして、カウンタ部（６０）は、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）が所定の終了値になるまでは、電圧発生回路（２０）の出力を不定値に設定する。これにより、微小パルス期間及び遷移期間の「不定処理」を実現することが可能となる。このように、本発明によれば、実動作に忠実な電圧発生回路（２０）の論理モデル（１０）が提供され、その論理モデル（１０）を用いることによって精密な論理検証を行うことが可能となる。
【００２４】
本発明の第２の観点において、半導体集積回路の設計方法が提供される。その設計方法は、（ａ）上述の論理検証方法による論理検証ステップと、（ｂ）その論理検証ステップの後、論理合成により半導体集積回路のネットリスト（１２２）を生成する論理合成ステップと、（ｃ）そのネットリスト（１２２）に基づいて半導体集積回路のレイアウトを決定するレイアウトステップとを有する。
【００２５】
本発明の第３の観点において、電圧発生回路（２０）用の論理モデルデータ（１０）を記録したコンピュータ読み取り可能な記録媒体が提供される。その論理モデルデータ（１０）は、第１データ構造（１４）と、第２データ構造（１６）と、第３データ構造（１５）とを備えている。これらデータ構造（１４，１５，１６）は、ＨＤＬで記述されている。第１データ構造（１４）は、電圧発生回路（２０）の動作をトリガするトリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１）を生成するトリガ信号生成部（４０）を表現する。第２データ構造（１６）は、クロック信号（ＣＬＫ）に基づいてカウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を変化させるカウンタ部（６０）を表現する。第３データ構造（１５）は、トリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１）が変化する毎にカウンタ変数（ＲＩＳＥ，ＦＡＬＬ）を初期値にリセットする初期化部（５０）を表現する。カウンタ部（６０）は、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）が所定の終了値になるまでは、電圧発生回路（２０）の出力（ＯＵＴ）を不定値に設定し、且つ、カウンタ変数（ＲＩＳＥ，ＦＡＬＬ）が所定の終了値になると、その出力（ＯＵＴ）をトリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１）の変化に応じた値に設定する。
【発明の効果】
【００２６】
本発明によれば、実動作に忠実な電圧発生回路マクロの論理モデルが提供される。その論理モデルを用いることにより、チャージポンプ等の電圧発生回路を搭載した半導体集積回路の論理検証の精度が向上する。
【発明を実施するための最良の形態】
【００２７】
添付図面を参照して、本発明に係る電圧発生回路マクロの論理モデル、その論理モデルを用いた半導体集積回路の論理検証方法及び設計方法を説明する。電圧発生回路マクロとして、例えばチャージポンプマクロが挙げられる。その論理モデルは、設計システムの論理検証にだけ用いられる論理モデルであり、論理合成はされないことに留意されたい。そのため、本発明に係る論理モデルが含む構成は、実デバイスで用いられる電圧発生回路の構成とは必ずしも同一ではない。本発明に係る論理モデルは、実デバイス上の電圧発生回路の“動作”を忠実に再現するために提供される。
【００２８】
１．第１の実施の形態
１−１．モデルの概念と動作
図９は、第１の実施の形態に係るチャージポンプマクロの論理モデルを概念的に示している。このチャージポンプマクロは、ＢＧＲ回路２０−０（第０電圧発生回路）、及び複数のチャージポンプ２０−１〜２０−ｎ（第１〜第ｎ電圧発生回路）を含んでいる。各々の電圧発生回路２０は、トリガ信号生成部４０、カウンタ変数初期化部５０、及びカウンタ部６０を備えている。
【００２９】
まず、ＢＧＲ回路２０−０の動作の説明を行う。ＢＧＲ回路２０−０は、コントロール信号であるイネーブル信号ＥＮ１に応答して基準電圧ＢＧＲ（出力信号ＯＵＴ［０］）を出力するバンドギャップリファレンス回路である。このＢＧＲ回路２０−０のカウンタ部６０−０は、入力されるクロック信号ＣＬＫに基づいてカウントを常に行う。具体的には、カウンタ部６０−０は、カウンタ変数（ＲＩＳＥ［０］，ＦＡＬＬ［０］）を有し、クロック信号ＣＬＫに応じてカウンタ変数（ＲＩＳＥ［０］，ＦＡＬＬ［０］）の値を変化させる。このカウンタ部６０−０は、ＢＧＲ回路２０−０の出力信号ＯＵＴ［０］の立ち上がり／立ち下がりに要する変化時間（遷移期間）を計るために設けられている。後述されるように、カウンタ部６０−０は、カウンタ変数（ＲＩＳＥ［０］，ＦＡＬＬ［０］）の値に応じて、出力信号ＯＵＴ［０］の値を制御する。
【００３０】
また、ＢＧＲ回路２０−０のトリガ信号生成部４０−０は、イネーブル信号ＥＮ１に応答して、トリガ信号ｐｒｅＢＧＲを生成する。このトリガ信号ｐｒｅＢＧＲは、ＢＧＲ回路２０−０の動作をトリガする信号であり、ＢＧＲ回路２０−０の動作状態を変化させるための内部信号である。このトリガ信号ｐｒｅＢＧＲは、カウンタ変数初期化部５０−０に入力される。カウンタ変数初期化部５０−０は、トリガ信号ｐｒｅＢＧＲが変化する毎に、カウンタ変数（ＲＩＳＥ［０］，ＦＡＬＬ［０］）を初期値にリセットする。この初期値は、ＢＧＲ回路２０−０の出力信号ＯＵＴ［０］の立ち上がり／立ち下がりに要する変化時間（遷移期間）に対応している。
【００３１】
次に、チャージポンプ２０−１の動作の説明を行う。他のチャージポンプの動作も同様である。このチャージポンプ２０−１のカウンタ部６０−１は、入力されるクロック信号ＣＬＫに基づいてカウントを常に行う。具体的には、カウンタ部６０−１は、カウンタ変数（ＲＩＳＥ［１］，ＦＡＬＬ［１］）を有し、クロック信号ＣＬＫに応じてカウンタ変数（ＲＩＳＥ［１］，ＦＡＬＬ［１］）の値を変化させる。このカウンタ部６０−１は、チャージポンプ２０−１の出力信号ＯＵＴ［１］の立ち上がり／立ち下がりに要する変化時間（遷移期間）を計るために設けられている。後述されるように、カウンタ部６０−１は、カウンタ変数（ＲＩＳＥ［１］，ＦＡＬＬ［１］）の値に応じて、出力信号ＯＵＴ［１］の値を制御する。
【００３２】
チャージポンプ２０−１は、基準電圧ＢＧＲに基づき、コントロール信号ＣＮＴ１に応答して高電圧を生成し、その高電圧を出力電圧ＶＰ１（出力信号ＯＵＴ［１］）として出力する。そのため、チャージポンプ２０−１の動作をトリガするトリガ信号ｐｒｅＶＰ１としては、例えば、コントロール信号ＣＮＴ１と基準電圧ＢＧＲ（ＯＵＴ［０］）の論理積が用いられればよい。トリガ信号生成部４０−１は、コントロール信号ＣＮＴ１と上記基準電圧ＢＧＲに基づいて、トリガ信号ｐｒｅＶＰ１を生成し、そのトリガ信号ｐｒｅＶＰ１をカウンタ変数初期化部５０−１へ出力する。カウンタ変数初期化部５０−１は、そのトリガ信号ｐｒｅＶＰ１が変化する毎に、カウンタ変数（ＲＩＳＥ［１］，ＦＡＬＬ［１］）を初期値にリセットする。この初期値は、チャージポンプ２０−１の出力信号ＯＵＴ［１］の立ち上がり／立ち下がりに要する変化時間（遷移期間）に対応している。
【００３３】
このように、ＢＧＲ回路２０−０とチャージポンプ２０−１〜２０−ｎとでは、トリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１〜ｐｒｅＶＰｎ）の生成方法は異なるものの、そのトリガ信号が変化する度にカウンタ変数（ＲＩＳＥ，ＦＡＬＬ）が初期化されることは共通している。また、出力信号ＯＵＴの遷移期間を計るためにカウンタ部６０が設けられていることも共通している。尚、カウンタ部６０が用いるクロック信号ＣＬＫとしては、チャージポンプの昇圧動作に用いられるクロックが使用されればよい。
【００３４】
次に、図１０を参照して、カウンタ変数初期化部５０の動作を詳細に説明する。カウンタ変数初期化部５０の動作は各電圧発生回路２０で共通であり、ここでは、第ｉ（０≦ｉ≦ｎ）電圧発生回路２０−ｉの場合を例として挙げる。上述のカウンタ変数ＲＩＳＥ［ｉ］は、出力信号ＯＵＴ［ｉ］が“０”から“１”へ変化する場合、すなわち、立ち上がりの場合の遷移期間を計るために設けられている。一方、カウンタ変数ＦＡＬＬ［ｉ］は、出力信号ＯＵＴ［ｉ］が“１”から“０”へ変化する場合、すなわち、立ち下がりの場合の遷移期間を計るために設けられている。
【００３５】
まず、第ｉ電圧発生回路２０−ｉに関するイベントが発生し、上述のトリガ信号（ｐｒｅＢＧＲ，ｐｒｅＶＰ１〜ｐｒｅＶＰｎ）が変化する（ステップＳ５０）。そのトリガ信号の変化に応じて出力信号ＯＵＴ［ｉ］が“１”へ変化する場合（ステップＳ５１；Ｙｅｓ）、カウンタ変数初期化部５０−ｉは、カウンタ変数ＲＩＳＥ［ｉ］を所定の初期値にリセットする。その初期値は、出力信号ＯＵＴ［ｉ］が“０”から“１”へ変化する遷移時間に相当するクロック信号ＣＬＫの数で与えられる。この立ち上がりに相当するクロック数は、以下「立ち上がりカウント数」と参照される。また、カウンタ変数初期化部５０−ｉは、カウンタ変数ＦＡＬＬ［ｉ］を“−１”に設定する（ステップＳ５２）。
【００３６】
一方、トリガ信号の変化に応じて出力信号ＯＵＴ［ｉ］が“０”へ変化する場合（ステップＳ５１；Ｎｏ、ステップＳ５３；Ｙｅｓ）、カウンタ変数初期化部５０−ｉは、カウンタ変数ＦＡＬＬ［ｉ］を所定の初期値にリセットする。その初期値は、出力信号ＯＵＴ［ｉ］が“１”から“０”へ変化する遷移時間に相当するクロック信号ＣＬＫの数で与えられる。この立ち下がりに相当するクロック数は、以下「立ち下がりカウント数」と参照される。また、カウンタ変数初期化部５０−ｉは、カウンタ変数ＲＩＳＥ［ｉ］を“−１”に設定する（ステップＳ５４）。
【００３７】
また、トリガ信号の変化に応じて出力信号ＯＵＴ［ｉ］が“不定”へ変化する場合（ステップＳ５３；Ｎｏ）、カウンタ変数初期化部５０−ｉは、カウンタ変数ＲＩＳＥ［ｉ］及びＦＡＬＬ［ｉ］を最大値に設定する（ステップＳ５５）。
【００３８】
他の電圧発生回路２０に対しても同様の処理が行われる。このようなカウンタ変数の初期化は、トリガ信号が変化する度に繰り返し実行される。例えばコントロール信号ＣＮＴ１に微小なパルスが発生した場合であっても、カウンタ変数ＲＩＳＥ［ｉ］、ＦＡＬＬ［ｉ］には初期値が代入され、カウント動作は振り出しに戻ることになる。
【００３９】
次に、図１１を参照して、カウンタ部６０によるカウント動作を詳細に説明する。カウンタ部６０は、クロック信号ＣＬＫに応じて、カウンタ変数（ＲＩＳＥ［ｉ］、ＦＡＬＬ［ｉ］）を変化させる。具体的には、カウンタ部６０は、クロック信号ＣＬＫに基づいて、カウンタ変数（ＲＩＳＥ［ｉ］、ＦＡＬＬ［ｉ］）を初期値からカウントダウンする（ステップＳ６７）。その初期値（立ち上がり／立ち下がりカウント数）は、遷移期間に相当する値に設定されており、カウンタ変数（ＲＩＳＥ［ｉ］、ＦＡＬＬ［ｉ］）が“０”になることは、その遷移期間が終わったことを意味する。従って、カウンタ変数の値としての“０”は、カウンタ部６０の動作を規定する１つの基準となる。以下、その基準としての値“０”は、「終了値」と参照される。上述のカウンタ変数初期化部５０−ｉは、イベントに関係しない方のカウンタ変数（ＲＩＳＥ［ｉ］あるいはＦＡＬＬ［ｉ］）を、その終了値より小さい“−１”にリセットしていることになる。
【００４０】
クロック信号ＣＬＫのエッジ毎に、カウンタ部６０は、カウンタ変数ＲＩＳＥ［ｉ］、ＦＡＬＬ［ｉ］の確認を行う（ステップＳ６０）。カウンタ変数ＲＩＳＥ［ｉ］が“０”になり、且つ、カウンタ変数ＦＡＬＬ［ｉ］が“−１”以下である場合を考える（ステップＳ６１；Ｙｅｓ）。この場合は、カウンタ変数ＲＩＳＥ［ｉ］が所定の立ち上がりカウント数に設定された後、そのカウンタ変数ＲＩＳＥ［ｉ］が“０”になるまで、トリガ信号の変化が無かった場合に相当する。この場合、カウンタ部６０−ｉは、出力信号ＯＵＴ［ｉ］を、トリガ信号の変化に応じた値“１”に設定する（ステップＳ６２）。つまり、カウンタ変数ＲＩＳＥ［ｉ］が“０”になって初めて、出力信号ＯＵＴ［ｉ］が“１”に変化する。
【００４１】
また、カウンタ変数ＦＡＬＬ［ｉ］が“０”になり、且つ、カウンタ変数ＲＩＳＥ［ｉ］が“−１”以下である場合を考える（ステップＳ６３；Ｙｅｓ）。この場合は、カウンタ変数ＦＡＬＬ［ｉ］が所定の立ち下がりカウント数に設定された後、そのカウンタ変数ＦＡＬＬ［ｉ］が“０”になるまで、トリガ信号の変化が無かった場合に相当する。この場合、カウンタ部６０−ｉは、出力信号ＯＵＴ［ｉ］を、トリガ信号の変化に応じた値“０”に設定する（ステップＳ６４）。つまり、カウンタ変数ＦＡＬＬ［ｉ］が“０”になって初めて、出力信号ＯＵＴ［ｉ］が“０”に変化する。
【００４２】
カウンタ変数ＲＩＳＥ［ｉ］、又は、カウンタ変数ＦＡＬＬ［ｉ］が“１”以上である場合（ステップＳ６５；Ｙｅｓ）は、カウントダウン中であること、すなわち、立ち上がり／立ち下がり遷移期間であることを意味する。この場合、カウンタ部６０−ｉは、出力信号ＯＵＴ［ｉ］を、不定値“Ｘ”に設定する（ステップＳ６６）。このように、トリガ信号が変化した後カウントダウンが終了するまで、電圧発生回路２０−ｉは、不定値“Ｘ”を出力する。
【００４３】
上記いずれの条件にも当てはまらない場合（ステップＳ６５；Ｎｏ）、カウンタ変数ＲＩＳＥ［ｉ］及びＦＡＬＬ［ｉ］の両方が“−１”以下である。この場合は、トリガ信号の変化もなく、出力信号ＯＵＴ［ｉ］として“０”又は“１”が安定的に出力されている場合に相当する。
【００４４】
以上の処理が終わった後、カウンタ変数ＲＩＳＥ［ｉ］及びＦＡＬＬ［ｉ］のデクリメントが行われる、すなわちカウントダウンが実行される（ステップＳ６７）。上述の処理は、全ての電圧発生回路２０−０〜２０−ｎに対して順番に実行される。
【００４５】
このように、本実施の形態に係るカウンタ部６０−ｉは、クロック信号ＣＬＫに基づいて、カウンタ変数（ＲＩＳＥ［ｉ］、ＦＡＬＬ［ｉ］）のカウントダウンを常に実行する。そして、カウンタ部６０−ｉは、カウンタ変数が所定の終了値“０”になるまでは、電圧発生回路２０−ｉの出力信号ＯＵＴ［ｉ］を不定値“Ｘ”に設定する。また、カウンタ変数が所定の終了値“０”になると、カウンタ部６０−ｉは、その出力信号ＯＵＴ［ｉ］を、トリガ信号の変化に応じた値“０”又は“１”に設定する。このようにして、「不定処理」が実現される。
【００４６】
以上に説明されたチャージポンプマクロ論理モデルの動作の一例が、図１２に示されている。ここでは、ＢＧＲ回路２０−０とチャージポンプ２０−１を含む２電源の場合が例示されている。従って、入力信号は、クロック信号ＣＬＫ、イネーブル信号ＥＮ１、及びコントロール信号ＣＮＴ１である。また、ＢＧＲ回路２０−０及びチャージポンプ２０−１に対するトリガ信号は、それぞれｐｒｅＢＧＲ及びｐｒｅＶＰ１である。また、出力信号は、基準電圧ＢＧＲ（ＯＵＴ［０］）及び出力電圧ＶＰ１（ＯＵＴ［１］）である。
【００４７】
図１２中のブロック１１に示されているように、クロック信号ＣＬＫの周期はＮであるとする。ＢＧＲ回路２０−０に関する立ち上がり／立ち下がりカウント数は、Ａ１／Ａ２であるとする。チャージポンプ２０−１に関する立ち上がり／立ち下がりカウント数は、Ｂ１／Ｂ２であるとする。また、トリガ信号ｐｒｅＢＧＲ及びｐｒｅＶＰ１の生成論理は、図１２中のブロック１４に示されている。トリガ信号ｐｒｅＢＧＲは、イネーブル信号ＥＮ１である。トリガ信号ｐｒｅＶＰ１は、コントロール信号ＣＮＴ１と信号ＡｃｔＢＧＲの論理積である。ここで、信号ＡｃｔＢＧＲは、信号ＢＧＲに相当するが、信号ＢＧＲが不定値“Ｘ”の場合には値“０”をとる。つまり、トリガ信号ｐｒｅＶＰ１は、基本的にコントロール信号ＣＮＴ１と出力信号ＢＧＲとの論理積であるが、出力信号ＢＧＲが不定値“Ｘ”の場合には“０”となる。これらトリガ信号ｐｒｅＢＧＲ、ｐｒｅＶＰ１は、上述のトリガ信号生成部４０によって生成される。
【００４８】
時刻ｔ１において、イネーブル信号ＥＮ１が立ち上がり、トリガ信号ｐｒｅＢＧＲも立ち上がる。その結果、カウンタ変数ＲＩＳＥ［０］に立ち上がりカウント数（初期値）Ａ１が代入され、カウンタ変数ＦＡＬＬ［０］に“−１”が代入される。そして、出力信号ＢＧＲは不定値“Ｘ”となる。トリガ信号ＶＰ１は“０”のままである。その後、クロック信号ＣＬＫに応じてカウントダウンが行われ、時刻ｔ１から遷移期間（Ｎ×Ａ１）後の時刻ｔ２において、カウンタ変数ＲＩＳＥ［０］が“０”であることが検出される。その結果、出力信号ＢＧＲが“１”となる。つまり、時刻ｔ１〜ｔ２の期間、出力信号ＢＧＲは不定値“Ｘ”のままである。
【００４９】
時刻ｔ３において、コントロール信号ＣＮＴ１が立ち上がり、トリガ信号ｐｒｅＶＰ１も立ち上がる。その結果、カウンタ変数ＲＩＳＥ［１］に立ち上がりカウント数（初期値）Ｂ１が代入され、カウンタ変数ＦＡＬＬ［１］に“−１”が代入される。そして、出力信号ＶＰ１は不定値“Ｘ”となる。その後、クロック信号ＣＬＫに応じてカウントダウンが行われ、時刻ｔ３から遷移期間（Ｎ×Ｂ１）後の時刻ｔ４において、カウンタ変数ＲＩＳＥ［１］が“０”であることが検出される。その結果、出力信号ＶＰ１が“１”となる。つまり、時刻ｔ３〜ｔ４の期間、出力信号ＶＰ１は不定値“Ｘ”のままである。
【００５０】
時刻ｔ５において、コントロール信号ＣＮＴ１が立ち下がり、トリガ信号ｐｒｅＶＰ１も立ち下がる。その結果、カウンタ変数ＦＡＬＬ［１］に立ち下がりカウント数（初期値）Ｂ２が代入され、カウンタ変数ＲＩＳＥ［１］に“−１”が代入される。そして、出力信号ＶＰ１は不定値“Ｘ”となる。
【００５１】
その後、クロック信号ＣＬＫに応じてカウントダウンが行われるが、時刻ｔ６において、コントロール信号ＣＮＴ１が再び立ち上がり、トリガ信号ｐｒｅＶＰ１も立ち上がる。この時、時刻ｔ５から遷移期間（Ｎ×Ｂ２）はまだ経過していない。しかしながら、トリガ信号ｐｒｅＶＰ１が変化したため、カウンタ変数ＲＩＳＥ［１］及びＦＡＬＬ［１］は、再び初期化される。つまり、カウンタ変数ＲＩＳＥ［１］に立ち上がりカウント数（初期値）Ｂ１が代入され、カウンタ変数ＦＡＬＬ［１］に“−１”が代入される。そして、改めてカウントダウンが実行される。時刻ｔ６から遷移期間（Ｎ×Ｂ１）後の時刻ｔ７において、カウンタ変数ＲＩＳＥ［１］が“０”であることが検出される。その結果、出力信号ＶＰ１が“１”となる。つまり、時刻ｔ５〜ｔ７の期間、出力信号ＶＰ１は不定値“Ｘ”のままである。
【００５２】
時刻ｔ８において、イネーブル信号ＥＮ１が立ち下がり、トリガ信号ｐｒｅＢＧＲも立ち下がる。その結果、カウンタ変数ＦＡＬＬ［０］に立ち下がりカウント数Ａ２が代入され、カウンタ変数ＲＩＳＥ［０］に“−１”が代入され、出力信号ＢＧＲは不定値“Ｘ”となる。また、出力信号ＢＧＲが不定となるため、トリガ信号ＶＰ１も“１”から“０”に立ち下がる。その結果、カウンタ変数ＦＡＬＬ［１］に立ち下がりカウント数Ｂ２が代入され、カウンタ変数ＲＩＳＥ［１］に“−１”が代入され、出力信号ＶＰ１は不定値“Ｘ”となる。その後、時刻ｔ８から遷移期間（Ｎ×Ａ２）後の時刻ｔ９において、出力信号ＢＧＲは“０”になり、時刻ｔ８から遷移期間（Ｎ×Ｂ２）後の時刻ｔ１０において、出力信号ＶＰ１は“０”になる。設定される立ち下がりカウント数が異なるため、出力信号ＢＧＲと出力信号ＶＰ１の遷移期間も異なっている。
【００５３】
時刻ｔ１１において、イネーブル信号ＥＮ１が立ち上がり、トリガ信号ｐｒｅＢＧＲも立ち上がる。その結果、時刻ｔ１１から遷移期間（Ｎ×Ａ１）後の時刻ｔ１２まで、出力信号ＢＧＲは不定となる。時刻ｔ１２において出力信号ＢＧＲが“１”となり、それに応じてトリガ信号ｐｒｅＶＰ１が立ち上がる。その結果、時刻ｔ１２から遷移期間（Ｎ×Ｂ１）後の時刻ｔ１３まで、出力信号ＶＰ１は不定となる。時刻ｔ１３において、出力信号ＶＰ１が“１”となる。
【００５４】
図１２に示されたように、本実施の形態に係る論理モデルによれば、遷移期間における「不定処理」が実現される。これは、トリガ信号ｐｒｅＢＧＲ及びｐｒｅＶＰ１の変化に応じて、カウンタ変数ＲＩＳＥ，ＦＡＬＬがリセットされるからである。また、これにより、時刻ｔ５〜ｔ６に現れた微小パルス期間においても「不定処理」が実現され、結果としてその微小パルスはキャンセルされている。以上に説明されたように、本実施の形態によれば、実動作に忠実なチャージポンプマクロの論理モデルが提供される。その論理モデルを適用することにより、ＬＳＩ設計において、精密な論理検証を行うことが可能となる。
【００５５】
１−２．ＨＤＬでの記述例
上述のチャージポンプマクロの論理モデルは、ＨＤＬを用いたＲＴＬ記述で提供される。その論理モデルは、複数のデータ構造の組み合わせからなっている。図１３には、チャージポンプマクロ論理モデル１０のデータ構成例が模式的に示されている。このチャージポンプマクロ論理モデル１０は、立ち上がり／立ち下がりカウント数宣言部１１、内部変数宣言部１２、入出力コントロール宣言部１３、トリガ信号生成部１４、カウンタ変数初期化部１５、及びカウンタ部１６を備えている。Ｖｅｒｉｌｏｇ−ＨＤＬを用いた具体的な記述例は、図１４に示されている。
【００５６】
図１４に示されるように、立ち上がり／立ち下がりカウント数宣言部１１は、各電源に関する上述の立ち上がり／立ち下がりカウント数（初期値）Ａ１／Ａ２，Ｂ１／Ｂ２をパラメータとして宣言している。その内容は、既出の図１２中のブロック１１にも示されている。また、内部変数宣言部１２は、モジュール内部の処理のために導入される内部配列や内部変数を宣言している。
【００５７】
入出力コントロール宣言部１３及びトリガ信号生成部１４の具体例は、図１５に示されている。出力信号ＢＧＲは、トリガ信号ｐｒｅＢＧＲをバッファすることにより得られる。また、出力信号ＶＰ１は、トリガ信号ｐｒｅＶＰ１をバッファすることにより得られる。これらトリガ信号ｐｒｅＢＧＲ，ｐｒｅＶＰ１は、トリガ信号生成部１４によって定義されている。トリガ信号生成部１４の内容は、既出の図１２中のブロック１４にも示されている。トリガ信号ｐｒｅＢＧＲは、イネーブル信号ＥＮ１である。トリガ信号ｐｒｅＶＰ１は、コントロール信号ＣＮＴ１と信号ＡｃｔＢＧＲの論理積である。ここで、信号ＡｃｔＢＧＲは、信号ＢＧＲに相当するが、信号ＢＧＲが不定値“Ｘ”の場合には値“０”をとる。トリガ信号生成部１４は、図９で示されたトリガ信号生成部４０の動作を、ＨＤＬで表現していると言える。
【００５８】
カウンタ変数初期化部１５の具体例は、図１４中に示されている。このカウンタ変数初期化部１５は、図１０で示されたカウンタ変数初期化部５０の動作を、ＨＤＬで表現している。
【００５９】
また、カウンタ部１６の具体例も、図１４中に示されている。このカウンタ部１６は、図１１で示されたカウンタ部６０の動作を、ＨＤＬで表現している。ここで、複数のカウンタ部６０−０〜６０−ｎの動作が１つのカウンタ部１６で記述されていることに留意されるべきである。図７、図８に示されたカウンタの場合、カウント開始信号が利用されるため、複数の電圧発生回路のそれぞれに対してカウンタを個別に記述する必要がある。本実施の形態によれば、カウント開始信号は用いられず、カウント動作は常に実行される。複数の電圧発生回路２０−０〜２０−ｎのそれぞれに対してカウンタ変数ＲＩＳＥ［０〜ｎ］、ＦＡＬＬ［０〜ｎ］が定義されており、それぞれのカウンタ変数ＲＩＳＥ［０〜ｎ］、ＦＡＬＬ［０〜ｎ］に対する処理は、ＦＯＲループを用いることによって共通化されている。よって、ＨＤＬを用いたチャージポンプマクロ論理モデル１０の記述が単純化される。従って、複数の電圧発生回路２０−０〜２０−ｎを扱うチャージポンプマクロの場合であっても、本実施の形態に係る論理モデル１０は好適である。
【００６０】
このようにして、第１−１節で説明されたチャージポンプマクロの動作がＨＤＬで記述され、論理モデル１０として提供される。
【００６１】
１−３．効果
本実施の形態に係る論理モデル１０によれば、遷移期間及び微小パルス期間における「不定処理」が実現される。つまり、実動作に忠実なチャージポンプマクロの論理モデル１０が提供される。その論理モデル１０を適用することにより、電圧発生回路を搭載した半導体集積回路の論理検証の精度が向上する。また、カウント動作は常に実行され、ＨＤＬによるカウンタ部１６の記述が単純化される。従って、複数の電圧発生回路２０を含むチャージポンプマクロを容易に記述することが可能となる。
【００６２】
２．第２の実施の形態
図１６は、第２の実施の形態に係るチャージポンプマクロの論理モデルを概念的に示している。図１６において、第１の実施の形態における構成と同様の構成には同一の符号が付され、重複する説明は適宜省略される。
【００６３】
本実施の形態において、基準電圧ＢＧＲを生成するＢＧＲ回路は、各チャージポンプ２０−１、２０−２・・・に内蔵されている。よって、イネーブル信号ＥＮ１や出力信号ＢＧＲは、モジュールの内部変数として扱われる。また、クロック信号ＣＬＫも外部から供給されず、各チャージポンプ内で生成される。そのため、チャージポンプ２０−１、２０−２・・・のそれぞれは、クロック信号ＣＬＫを生成するための内部発振器制御部（カウンタ制御クロック生成部）７０−１、７０−２・・・を備えている。各内部発振器制御部７０は、クロック信号ＣＬＫをカウンタ部６０に出力する。このクロック信号ＣＬＫも、モジュールの内部変数として扱われる。
【００６４】
図１７には、本実施の形態に係るチャージポンプマクロ論理モデル１０のデータ構成例が示されている。このチャージポンプ論理モデル１０は、図１３に示された構成に加えて、内部発振器制御部（カウンタ制御クロック生成部）１７を備えている。この内部発振器制御部１７は、図１６で示された内部発振器制御部７０の動作をＨＤＬで表現している。このモジュールに対する入力信号は、コントロール信号ＣＮＴ１〜ＣＮＴｎであり、イネーブル信号ＥＮ１やクロック信号ＣＬＫを含まない。また、このモジュールからの出力信号は、出力電圧ＶＰ１〜ＶＰｎであり、基準電圧ＢＧＲを含まない。イネーブル信号ＥＮ１やクロック信号ＣＬＫ、及び基準電圧ＢＧＲは、モジュールの内部変数として扱われる。
【００６５】
本実施の形態によるチャージポンプマクロ論理モデル１０によっても、第１の実施の形態と同様の効果が得られる。
【００６６】
３．第３の実施の形態
ある１つの電源に関して、条件によっては昇圧／降圧時間が異なる場合がある。そのような場合、条件毎に異なるカウント部６０とカウンタ変数初期化部５０が設けられればよい。上述の技術を応用することによって、そのような場合にも対応することが可能である。
【００６７】
図１８は、第３の実施の形態に係るチャージポンプマクロ論理モデルの構成例を概念的に示している。図１８において、既出の実施の形態における構成と同様の構成には同一の符号が付され、重複する説明は適宜省略される。また、図１８において、１つの電源（ＶＰ１）に関する構成のみが示されているが、既出の実施の形態と同様に複数の電源が含まれていてもよい。図１８において、チャージポンプマクロ論理モデルは、第１条件用チャージポンプ３０−１と、第２条件用チャージポンプ３０−２を含んでいる。第１条件と第２条件は異なるが、チャージポンプ３０−１、３０−２のいずれも出力電圧ＶＰ１を担っている。
【００６８】
第１条件用チャージポンプ３０−１は、基準電圧ＢＧＲに基づき、第１条件に対応する第１コントロール信号ＣＮＴ１に応答して第１出力電圧ＶＰ１＿１を生成する。この第１条件用チャージポンプ３０−１は、トリガ信号生成部４０−１、カウンタ変数初期化部５０−１、カウンタ部６０−１、及び内部発振器制御部７０−１を備えている。既出の実施の形態と同様に、トリガ信号ｐｒｅＶＰ１＿１は、コントロール信号ＣＮＴ１と基準電圧ＢＧＲに基づいて生成される。
【００６９】
第２条件用チャージポンプ３０−２は、基準電圧ＢＧＲに基づき、第２条件に対応する第２コントロール信号ＣＮＴ２に応答して第２出力電圧ＶＰ１＿２を生成する。この第２条件用チャージポンプ３０−２は、トリガ信号生成部４０−２、カウンタ変数初期化部５０−２、カウンタ部６０−２、及び内部発振器制御部７０−２を備えている。既出の実施の形態と同様に、トリガ信号ｐｒｅＶＰ１＿２は、コントロール信号ＣＮＴ２と基準電圧ＢＧＲに基づいて生成される。
【００７０】
第１条件の場合、第１条件用チャージポンプ３０−１から、第１出力電圧ＶＰ１＿１が出力電圧ＶＰ１として出力される。第２条件の場合、第２条件用チャージポンプ３０−２から、第２出力電圧ＶＰ１＿２が出力電圧ＶＰ１として出力される。従って、第１出力電圧ＶＰ１＿１と第２出力電圧ＶＰ１＿２の論理和が、出力電圧ＶＰ１として用いられる（ＶＰ１＝ＶＰ１＿１＋ＶＰ１＿２）。これにより、１つの電源に対して複数の遷移時間を設定することが可能となる。
【００７１】
４．半導体集積回路の設計システム
ＬＳＩの大規模化、高速化が進むにつれて、ＥＤＡ（Electronic Design Automation）ツールの利用は欠かせなくなってきている。本発明に係るチャージポンプマクロ論理モデル１０を利用した論理検証やＬＳＩ設計を行うためのコンピュータシステムは、当業者によって適宜構築され得る。図１９には、そのようなシステム構成の一例が示されている。
【００７２】
図１９に示された半導体集積回路設計システム１００は、演算処理装置１１０、記憶装置１２０、ソフトウェア群１３０、入力装置１４０、及び表示装置１５０を備えている。演算処理装置１１０は、記憶装置１２０にアクセス可能であり、ソフトウェアの命令に従って各種処理を制御する。入力装置１４０としては、キーボードやマウスが例示される。設計者は、表示装置１５０に表示された情報を参照しながら、入力装置１４０を用いて様々なデータやコマンドを入力することが可能である。
【００７３】
記憶装置（記録媒体）１２０として、ハードディスク（ＨＤＤ）が例示される。記憶装置１２０には、ＲＴＬ記述群１２１やネットリスト１２２が格納される。ＲＴＬ記述群１２１は、所望のシステムの動作を示しており、その中に上述のチャージポンプマクロ論理モデル１０は含まれている。設計者は、入力装置１４０を用いることによって、それらＲＴＬ記述群１２１の作成・編集を行うことができる。ＲＴＬ記述群１２１は、ＶＨＤＬやＶｅｒｉｌｏｇ−ＨＤＬといったＨＤＬで記述される。ネットリスト１２２は、ＲＴＬ記述群１２１を論理合成することによって得られる。
【００７４】
ソフトウェア群１３０は、演算処理装置１１０によって実行される各種ソフトウェアを含んでいる。例えば、ソフトウェア群１３０は、論理シミュレータ１３１、論理合成ツール１３２、レイアウトツール１３３等を含んでいる。論理シミュレータ１３１は、上述のＲＴＬ記述群１２１で表現されるＬＳＩの論理検証を行う。論理合成ツール１３２は、ＲＴＬ記述群１２１に対する論理合成を行うことにより、ネットリスト１２２を作成する。レイアウトツール１３３は、作成されたネットリスト１２２に基づいて、所望のＬＳＩのレイアウトを自動的に行う。
【００７５】
図２０は、本発明に係る半導体集積回路の論理検証方法、設計方法、製造方法を示すフローチャートである。まず、入力装置１４０を用いて、所望のシステムのＲＴＬ記述群１２１がＨＤＬで記述される（ステップＳ１００）。この時、上述のチャージポンプマクロ論理モデル１０も提供される。生成されたＲＴＬ記述群１２１は、記憶装置１２０に記録される。次に、論理シミュレータ１３１により、ＲＴＬ記述群１２１で表現された所望のＬＳＩの論理検証が行われる（ステップＳ１１０）。ここで、本発明に係るチャージポンプマクロ論理モデル１０が用いられるため、その論理検証の精度は、従来に比べ飛躍的に向上する。論理検証において満足な結果が得られなかった場合（ステップＳ１２０；Ｎｏ）、ＲＴＬ記述が修正される。
【００７６】
論理検証において満足な結果が得られると（ステップＳ１２０；Ｙｅｓ）、次に、論理合成ツール１３２によって、ＲＴＬ記述群１２１の論理合成が行われる（ステップＳ１３０）。ここで、チャージポンプマクロ論理モデル１０は、アナログ回路の論理モデルであり、論理合成はされない。この論理合成の結果、ＲＴＬ記述群１２１から、ゲートレベルの論理回路であるネットリスト１２２が生成される（ステップＳ１４０）。ネットリスト１２２中に現れるチャージポンプは、セルライブラリとして予め用意されており、論理合成においては、そのセルライブラリからチャージポンプマクロセルが読み込まれる。得られたネットリスト１２２は、記憶装置１２０に格納される。
【００７７】
その後、ＬＳＩ設計におけるバックエンドが実行される（ステップＳ１５０）。具体的には、レイアウトツール１３３が、ネットリスト１２２に基づいて所望のＬＳＩのレイアウトを決定する。また、検証ツールが、生成されたレイアウトがデザインルール等に合致するか否かを検証する。検証をパスすれば、レイアウトデータからマスクデータが生成され、そのマスクデータに基づいてマスク（レチクル）が作製される。そして、作製されたマスクを用い、所望のＬＳＩが実際に製造される（ステップＳ１６０）。
【図面の簡単な説明】
【００７８】
【図１】図１は、一般的なチャージポンプマクロの動作を概念的に示す図である。
【図２】図２は、ＨＤＬで記述された従来のチャージポンプマクロの論理モデルの一例を示している。
【図３】図３は、図２に示された論理モデルの動作を示すタイミングチャートである。
【図４】図４は、トランスポート遅延とイナーシャル遅延を説明するためのタイミングチャートである。
【図５】図５は、ＨＤＬで記述された従来のチャージポンプマクロの論理モデルの他の例を示している。
【図６】図６は、図５に示された論理モデルの動作を示すタイミングチャートである。
【図７】図７は、ＨＤＬで記述された従来のカウンタの論理モデルの例を示している。
【図８】図８は、図７に示された論理モデルの動作を示すタイミングチャートである。
【図９】図９は、本発明の第１の実施の形態に係るチャージポンプマクロの論理モデルを概念的に示している。
【図１０】図１０は、カウンタ変数初期化部の動作を示すフローチャートである。
【図１１】図１１は、カウンタ部の動作を示すフローチャートである。
【図１２】図１２は、本実施の形態に係る論理モデルの動作を示すタイミングチャートである。
【図１３】図１３は、本実施の形態に係るチャージポンプマクロの論理モデルを示すブロック図である。
【図１４】図１４は、ＨＤＬで記述された本実施の形態に係るチャージポンプマクロの論理モデルの一例を示している。
【図１５】図１５は、図１４に示された論理モデルの一部を詳細に示している。
【図１６】図１６は、本発明の第２の実施の形態に係るチャージポンプマクロの論理モデルを概念的に示している。
【図１７】図１７は、ＨＤＬで記述された本実施の形態に係るチャージポンプマクロの論理モデルを示すブロック図である。
【図１８】図１８は、本発明の第３の実施の形態に係るチャージポンプマクロの論理モデルを概念的に示している。
【図１９】図１９は、本発明に係る半導体集積回路設計システムの構成を示すブロック図である。
【図２０】図２０は、本発明に係る半導体集積回路の論理検証方法、設計方法、及び製造方法を示すフローチャートである。
【図２１】図２１は、実際のＢＧＲ回路の一例を示す回路図である。
【図２２】図２２は、実際のチャージポンプの一例を示すブロック図である。
【図２３】図２３は、チャージポンプの昇圧部の一例を示す回路図である。
【図２４】図２４は、チャージポンプの内部発振制御部の一例を示す回路図である。
【符号の説明】
【００７９】
１０    チャージポンプマクロ論理モデル
１１    立ち上がり／立ち下がりカウント数宣言部
１２    内部変数宣言部
１３    入出力コントロール宣言部
１４    トリガ信号生成部
１５    カウンタ変数初期化部
１６    カウンタ部
１７    内部発振器制御部
２０    電圧発生回路
２０−０  ＢＧＲ回路
２０−１〜２０−ｎ  チャージポンプ
３０−１  第１条件用チャージポンプ
３０−２  第２条件用チャージポンプ
４０    トリガ信号生成部
５０    カウンタ変数初期化部
６０    カウンタ部
７０    内部発振器制御部
１００    半導体集積回路設計システム
１１０    演算処理装置
１２０    記憶装置
１２１    ＲＴＬ記述群
１２２    ネットリスト
１３０    ソフトウェア群
１３１    論理シミュレータ
１３２    論理合成ツール
１３３    レイアウトツール
１４０    入力装置
１５０    表示装置
【図１】
2007086952.tif 000003
【図２】
2007086952.tif 000004
【図３】
2007086952.tif 000005
【図４】
2007086952.tif 000006
【図５】
2007086952.tif 000007
【図６】
2007086952.tif 000008
【図７】
2007086952.tif 000009
【図８】
2007086952.tif 000010
【図９】
2007086952.tif 000011
【図１０】
2007086952.tif 000012
【図１１】
2007086952.tif 000013
【図１２】
2007086952.tif 000014
【図１３】
2007086952.tif 000015
【図１４】
2007086952.tif 000016
【図１５】
2007086952.tif 000017
【図１６】
2007086952.tif 000018
【図１７】
2007086952.tif 000019
【図１８】
2007086952.tif 000020
【図１９】
2007086952.tif 000021
【図２０】
2007086952.tif 000022
【図２１】
2007086952.tif 000023
【図２２】
2007086952.tif 000024
【図２３】
2007086952.tif 000025
【図２４】
2007086952.tif 000026