(57)【特許請求の範囲】
【請求項１】
特定の回路に対して動作抑制モードを指示する制御回路が付加された動作検証対象回路についての論理シミュレーションの結果に基づき、前記動作抑制モードを指示するための制御信号が伝達される制御信号ネットと前記動作抑制モードがイネーブルとなる前記制御信号の信号値と前記動作抑制モードがイネーブルされた影響を直接受ける信号が伝達される動作抑制ネットとが対応付けられて格納されている制御信号データ格納部から、特定の時刻において前記制御信号ネットの前記制御信号の信号値が前記動作抑制モードがイネーブルとなる信号値であり且つ当該制御信号ネットに対応する前記動作抑制ネットを特定し、特定された前記動作抑制ネットに対して当該動作抑制ネット及び前記特定の時刻を含む動作率抑制情報リストを設定する設定ステップと、
前記回路のタイプ毎に当該回路の入力側ネットに設定された前記動作率抑制情報リストを当該回路の出力側ネットに伝播する伝播条件を格納する伝播条件データ格納部から、前記動作率抑制情報リストが設定されているネットが入力側ネットとして接続されている特定の回路のタイプについての前記伝播条件を特定すると共に、特定された前記伝播条件を前記論理シミュレーションの結果が満たしているか判断し、特定された前記伝播条件を前記論理シミュレーションの結果が満たしている場合には、前記入力側ネットに設定されている前記動作率抑制情報リストを前記特定の回路の出力側ネットに伝播させる伝播ステップと、
前記特定の回路の出力側ネットに伝播された前記動作率抑制情報リストに含まれる前記特定の時刻が、現在時刻から所定時間以上前であるか判断し、前記特定の時刻が前記現在時刻から所定時間以上前である場合にはエラーを出力する出力ステップと、
を、コンピュータに実行させるための回路動作検証プログラム。
【請求項２】
前記動作検証対象回路に前記制御回路が付加される前の変更前回路のデータと前記動作検証対象回路のデータとを比較して差分回路を特定すると共に、制御回路と被制御回路と前記制御回路を前記被制御回路に接続し且つ制御信号を伝達する入力側の制御信号ネットと前記被制御回路の出力側の動作抑制ネットとを含む動作抑制回路パターンと当該動作抑制回路パターンについて前記動作抑制モードがイネーブルとなる前記制御信号の信号値とを対応付けて格納している制御信号検出ライブラリ格納部に格納されている前記動作抑制回路パターンと前記動作検証対象回路のデータとを前記差分回路を用いて比較し、前記動作検証対象回路のデータにおいて前記動作抑制回路パターンに該当する回路パターンについて前記制御信号ネットと前記制御信号の信号値と前記動作抑制ネットとを特定し、前記制御信号データ格納部に格納するステップ
をさらに前記コンピュータに実行させるための請求項１記載の回路動作検証プログラム。
【請求項３】
前記制御信号ネット毎に、前記設定ステップと前記伝播ステップとのうち少なくともいずれかが実施された回数をカウントし、前記制御信号ネットに対応して当該カウント値を動作抑制カウント値格納部に格納するステップ
をさらに前記コンピュータに実行させるための請求項１記載の回路動作検証プログラム。
【請求項４】
異なる前記動作率抑制情報リストが連続して設定されているネットについて、前記論理シミュレーションの結果において信号値の遷移が観測される回数をカウントし、前記ネットに対応して当該カウント値を信号変化カウント値格納部に格納するステップ
をさらに前記コンピュータに実行させるための請求項１記載の回路動作検証プログラム。
【請求項５】
前記設定ステップが、
前記特定の時刻についての処理開始時に、出力側ネットに既に設定されている動作率抑制情報リストを消去するステップ
を含む請求項１記載の回路動作検証プログラム。
【請求項６】
特定の回路に対して動作抑制モードを指示する制御回路が付加された動作検証対象回路についての論理シミュレーションの結果に基づき、前記動作抑制モードを指示するための制御信号が伝達される制御信号ネットと前記動作抑制モードがイネーブルとなる前記制御信号の信号値と前記動作抑制モードがイネーブルされた影響を直接受ける信号が伝達される動作抑制ネットとが対応付けられて格納されている制御信号データ格納部から、特定の時刻において前記制御信号ネットの前記制御信号の信号値が前記動作抑制モードがイネーブルとなる信号値であり且つ当該制御信号ネットに対応する前記動作抑制ネットを特定し、特定された前記動作抑制ネットに対して当該動作抑制ネット及び前記特定の時刻を含む動作率抑制情報リストを設定する設定手段と、
前記回路のタイプ毎に当該回路の入力側ネットに設定された前記動作率抑制情報リストを当該回路の出力側ネットに伝播する伝播条件を格納する伝播条件データ格納部から、前記動作率抑制情報リストが設定されているネットが入力側ネットとして接続されている特定の回路のタイプについての前記伝播条件を特定すると共に、特定された前記伝播条件を前記論理シミュレーションの結果が満たしているか判断し、特定された前記伝播条件を前記論理シミュレーションの結果が満たしている場合には、前記入力側ネットに設定されている前記動作率抑制情報リストを前記特定の回路の出力側ネットに伝播させる伝播手段と、
前記特定の回路の出力側ネットに伝播された前記動作率抑制情報リストに含まれる前記特定の時刻が、現在時刻から所定時間以上前であるか判断し、前記特定の時刻が前記現在時刻から所定時間以上前である場合にはエラーを出力する出力手段と、
を有する回路動作検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示する技術は、消費電力削減のために加えられた回路変更を含む検証対象回路の動作検証を行う分野に関する。
【背景技術】
【０００２】
半導体チップの消費電力削減のために回路の動作率を抑えるような変更が加えられるが、当然ながら回路全体の動作内容が変わってはならない。従って、従来技術では、変更前の回路と変更後の回路の動作が一致するかを論理シミュレーションを行ったり、形式的検証などを行っていた。なお、消費電力削減のための設計技術については様々な技術が存在しているが、消費電力削減のために加えられた回路変更を検証するような技術は存在していない。
【特許文献１】特開平１０−２８３３８１号公報
【特許文献２】特開２００３−３３０９８８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来技術では、変更前の回路の動作との一致判定のために設計者が一致条件をそれぞれについて記述する必要があり、設計者の負担が大きい。また、バグなどによって変更前の回路に修正が加えられた場合には、変更前の回路と変更後の回路の両方を修正する必要があり、設計者の負担がまた大きくなる。
【０００４】
従って、本開示する技術の目的は、設計者の負担を削減して、消費電力削減のために加えられた回路変更を含む検証対象回路の動作検証を行うための新規な技術を提供することである。
【課題を解決するための手段】
【０００５】
本回路動作検証方法は、特定の回路に対して動作抑制モードを指示する制御回路が付加された動作検証対象回路についての論理シミュレーションの結果に基づき、動作抑制モードを指示するための制御信号が伝達される制御信号ネットと動作抑制モードがイネーブルとなる制御信号の信号値と動作抑制モードがイネーブルされた影響を直接受ける信号が伝達される動作抑制ネットとが対応付けられて格納されている制御信号データ格納部から、特定の時刻において制御信号ネットの制御信号の信号値が上で述べた動作抑制モードがイネーブルとなる信号値であり且つ当該制御信号ネットに対応する動作抑制ネットを特定し、特定された動作抑制ネットに対して当該動作抑制ネット及び特定の時刻を含む動作率抑制情報リストを設定する設定ステップと、回路のタイプ毎に当該回路の入力側ネットに設定された動作率抑制情報リストを当該回路の出力側ネットに伝播する伝播条件を格納する伝播条件データ格納部から、動作率抑制情報リストが設定されているネットが入力側ネットとして接続されている特定の回路のタイプについての伝播条件を特定すると共に、特定された伝播条件を論理シミュレーションの結果が満たしているか判断し、特定された伝播条件を論理シミュレーションの結果が満たしている場合には、入力側ネットに設定されている動作率抑制情報リストを特定の回路の出力側ネットに伝播させる伝播ステップと、特定の回路の出力側ネットに伝播された動作率抑制情報リストに含まれる特定の時刻が、現在時刻から所定時間以上前であるか判断し、特定の時刻が現在時刻から所定時間以上前である場合にはエラーを出力する出力ステップとを含む。
【発明の効果】
【０００６】
設計者の負担を削減して、消費電力削減のために加えられた回路変更を含む検証対象回路の動作検証を行うことができるようになる。
【発明を実施するための最良の形態】
【０００７】
［実施の形態の概要］
本実施の形態では、消費電力削減用に加えられた変更の論理検証を行う場合においても、変更前の動作と変更後の動作とが同じであることを確認することなく、消費電力削減すなわち動作率削減のために値が固定された信号の伝播範囲が所定範囲内に収まっているか否かにより、正しい論理変更が行われているのかを判断するものである。
【０００８】
例えば、図１に示すような回路について考える。図１の回路では、レジスタＡの値を演算器Ａで処理し、レジスタＢの値を演算器Ｂで処理し、レジスタＣの値を演算器Ｃで処理し、マルチプレクサ（ＭＵＸ）で演算器Ａ乃至Ｃのいずれかの出力を選択する。ここで演算器Ａからの出力のみがマルチプレクサによって選択されることが分かっていれば、動作率削減のためには、図２に示すように、レジスタＢ及び演算器Ｂ並びにレジスタＣ及び演算器Ｃを動作抑制モードにすればよい。ここで、本実施の形態では、演算器Ａの出力がマルチプレクサを介して出力されて正しく処理されてゆくことを確認するのではなく、動作抑制モードにある演算器Ｂ及びＣの出力がマルチプレクサを介して出力されることがなく、他の回路に影響を与えることがないことを確認するようにする。すなわち、所定サイクル（図２の例では１サイクル）以内で、演算器Ｂ及びＣの出力が消滅してしまうことを確認する。
【０００９】
なお、信号の伝播停止は、マルチプレクサだけではなく、ＡＮＤ、ＯＲ、フリップフロップ（ＦＦ）などのゲート動作によって行われる。すなわち、これらの回路の出力が、動作抑制モードの時に固定される。典型的には、図３に示すように、既存ＦＦのＥＮ端子に、動作抑制モードを指示する新規追加インスタンス５０１の出力をネット５０２を介して接続し、当該ネット５０２を介して新規追加インスタンス５０１から制御信号（＝０）を既存ＦＦのＥＮ端子に入力する。これによって、既存ＦＦのＱ端子の出力値は、Ｄ端子への入力値にかかわらず固定される。既存ＦＦのＱ端子に接続されるネット５０３を動作率抑制ネットと呼ぶことにする。
【００１０】
同様に、既存インスタンスの出力を、新規追加ＡＮＤ回路の入力に接続すると共に、動作抑制モードを指示する新規追加インスタンス５１１の出力も新規追加ＡＮＤ回路の入力にネット５１２を介して接続し、当該ネット５１２を介して新規追加インスタンス５１１から制御信号（＝０）を新規追加ＡＮＤ回路に入力する。これによって、新規追加ＡＮＤ回路の出力は、既存インスタンスの出力の値にかかわらず固定される。すなわち新規追加ＡＮＤ回路の出力に接続されたネット５１４が動作抑制ネットである。
【００１１】
本実施の形態では、動作抑制モードになった時に動作抑制ネットに以下で述べるような動作率抑制情報リストを生成して付加し、ネットの接続関係に従って当該動作率抑制情報リストを伝播させることによって、動作率削減のために値が固定された信号の伝播範囲が所定範囲内に収まっているかを判断する。
【００１２】
具体的には、図５に示すように、ネット５０２を介して出力される制御信号の信号値が「０」となった次のサイクルで、動作抑制ネット５０３に対して動作率抑制情報リストを設定する。動作率抑制情報リストには、動作抑制された時刻に相当するサイクル番号（ここではｎ）及び本動作率抑制情報リストが初めて設定された（すなわち出発した）ネットＩＤ（ここではｘｘｘｘｘ）が含まれる。このような動作率抑制情報リストが設定されているということは、変更前の回路における当該ネットの値と異なっていることを表すものである。
【００１３】
この動作率抑制情報リストの伝播については図６乃至図８を用いて説明する。すなわち、例えば図６に示すように、ＡＮＤ回路の一方の入力において動作率抑制情報リストが設定されており、他方の入力が論理シミュレーションの結果として「０」である場合には、必ずＡＮＤ回路の出力は「０」となる。このような場合には、動作率抑制情報リストはＡＮＤ回路の出力に接続されているネットに伝播されることはない。
【００１４】
一方、図７に示すように、ＡＮＤ回路の他方の入力が論理シミュレーションの結果として「１」である場合には、動作率抑制情報リストが設定されているネットの信号値がそのままＡＮＤの出力に伝播されるので、動作率抑制情報リストもＡＮＤ回路の出力に接続されているネットに伝播される。
【００１５】
さらに、図８に示すように、ＡＮＤ回路の両方の入力に異なる動作率抑制情報リストが設定されている場合には、当該ＡＮＤ回路の入力はいずれも本来「１」であるか「０」であるか不明であるから、いずれの動作率抑制情報リストもＡＮＤ回路の出力に伝播させる。すなわち、ＡＮＤ回路の出力に接続されるネットには、２つの動作率抑制情報リストが伝播される。但し、実際には２以上の動作率抑制情報リストが設定されるネットが生じ得る。
【００１６】
このように動作抑制モードになった場合には動作抑制ネットに動作率抑制情報リストを設定すると共に、論理シミュレーションの結果に従って当該動作率抑制情報リストをネットに沿って伝播させる。消費電力削減用に加えられた変更に問題がない場合には、動作率抑制情報リストが設定されたとしても、所定サイクルＬ以内には図６に示すように伝播が終了して消滅している。しかしながら、消費電力削減用に加えられた変更に問題がある場合には、動作率抑制情報リストが所定サイクルＬを経過してもいずれかのネットに残ってしまっている。これは変更後の回路の動作が変わってしまっていることを表すので、該当する動作率抑制情報リストを出力することによって、ユーザ（設計者）に対して警告を出力する。図２の例では、図９に示すように、演算器Ａからの出力を選択するものと、マルチプレクサの動作を誤って認識していたところ、演算器Ｃの出力が選択される場合には、動作抑制モードになった演算器Ｃの出力がマルチプレクサで選択されて出力されてしまう。そうすると、演算器Ｃを動作抑制モードにしていたために設定された動作率抑制情報リストがマルチプレクサを超えて伝播してしまう。このような場合には、回路の変更が不適切であることが分かるので、エラーを出力する。
【００１７】
動作率抑制情報リストには、抑制が行われたサイクル番号及び出発したネットＩＤのデータが含まれるので、生存期間については容易に算出でき、さらに出発したネットＩＤも含まれるので、エラーが発生した場合にはどの辺りの回路に問題が発生したかを容易に判断することできる。
【００１８】
［実施の形態の具体的構成］
図１０に一実施の形態に係る検証システムの機能ブロック図を示す。本実施の形態に係る検証システムは、消費電力削減用の変更を施した後のネットリストを格納する変更後ネットリスト格納部１と、消費電力削減用の変更を行う前のネットリストを格納するネットリスト格納部３と、上で述べたような制御信号等を検出するためのライブラリを格納する制御信号検出ライブラリ格納部５と、変更後ネットリスト格納部１とネットリスト格納部３と制御信号検出ライブラリ格納部５とに格納されているデータを用いて制御信号検出処理を実施する制御信号検出処理部７と、ユーザから各種データの入力を受け付ける入力部１５と、制御信号検出処理部７又は入力部１５からの制御信号リストのデータを格納する制御信号リスト格納部９と、エラー出力の閾値となる最大サイクル数Ｌを格納する最大サイクル数格納部１１と、初期状態のデータや外部入力値など論理シミュレーションのための環境データを格納するシミュレーション環境データ格納部１３と、変更後ネットリスト格納部１と制御信号リスト格納部９と最大サイクル数格納部１１とシミュレーション環境データ格納部１３とに格納されているデータを用いて本実施の形態における主要な処理を実施する論理シミュレータ１７と、論理シミュレータ１７の本実施の形態特有の処理結果を格納する出力データ格納部１９と、出力データ格納部１９に格納されているデータを出力する出力部２１とを有する。
【００１９】
論理シュミレータ１７は、変更後ネットリスト格納部１に格納されているネットリストを基に従来の論理シミュレーションを行う機能の他に、動作率抑制情報リスト管理部１７１と、動作率抑制情報リストを格納する動作率抑制情報リスト格納部１７３と、動作抑制カウント値を格納する動作抑制カウント値格納部１７５と、動作率抑制情報リストを伝播させる伝播条件についてのリストデータを格納する伝播条件リスト格納部１７７と、信号変化カウント値を格納する信号変化カウント値格納部１７９と、論理シミュレータ１７による組み合わせ回路のレベルソートの結果であるレベルソートリストを格納するレベルソートリスト格納部１８１とを有する。
【００２０】
変更後ネットリスト格納部１に格納されているネットリストやネットリスト格納部３に格納されているネットリストについては、従来と同じであるからここでは説明を省略する。
【００２１】
制御信号検出ライブラリ格納部５に格納されているデータは、例えば図３及び図４に示したようなデータである。すなわち、図３に示すように、既存ＦＦのＥＮ端子に新規追加インスタンス５０１が接続されているパターンが登録されている。さらに、このパターンの場合には、ネット５０２が制御信号ネットであり、動作抑制モードに係る制御信号の値が「０」であり、既存ＦＦのＱ端子に接続されるネット５０３が動作抑制ネットであるということを表すデータも対応して登録されている。すなわち、以下でも述べるが変更後ネットリスト格納部１に格納されているネットリストを、ネットリスト格納部３に格納されているネットリストと比較してその差分回路を新規回路として特定しながら探索して、図３に示すようなパターンが検出された場合には、制御信号ネットのＩＤと、制御信号の値と、動作抑制ネットであるネットのＩＤとが出力されて、制御信号リスト格納部９に格納される。
【００２２】
また、図４に示すように、既存インスタンスの出力と新規追加インスタンス５１１の出力とを入力とする新規追加ＡＮＤ回路が設けられているパターンが登録されている。このパターンの場合には、新規追加インスタンスの出力に接続されるネット５１２が制御信号ネットであり、動作抑制モードに係る制御信号の値が「０」であり、新規追加ＡＮＤ回路の出力に接続されているネット５１４が動作抑制ネットであるネットであるということを表すデータも対応して登録されている。すなわち、以下でも述べるが変更後ネットリスト格納部１に格納されているネットリストを、ネットリスト格納部３に格納されているネットリストと比較してその差分回路を新規回路として特定しながら探索して、図４に示すようなパターンが検出された場合には、制御信号のネットＩＤと、制御信号の値と、動作抑制ネットであるネットのＩＤとが出力されて、制御信号リスト格納部９に格納される。
【００２３】
図３及び図４だけではなく消費電力削減のために変更されている典型的な回路パターンと、それに対応して上で述べたような制御信号のネットのＩＤと、制御信号の値と、動作抑制ネットであるネットのＩＤとが、制御信号検出ライブラリ格納部５には格納されている。
【００２４】
制御信号リスト格納部９に格納されているデータは、例えば図１１に示すようなデータが格納されている。図１１の例では、制御信号のネットのＩＤと、動作抑制モードにおける制御信号値と、動作抑制ネットのＩＤとが登録されるようになっている。
【００２５】
次に、図１２乃至図２３を用いて図１０に示した検証システムの処理内容を説明する。まず、制御信号検出処理部７は、変更後ネットリスト格納部１とネットリスト格納部３と制御信号検出ライブラリ格納部５とに格納されているデータを用いて制御信号リスト生成処理を実施し、処理結果である制御信号リストのデータを制御信号リスト格納部９に格納する（ステップＳ１）。制御信号リスト生成処理は、図３及び図４を用いて説明したように、変更後ネットリスト格納部１に格納されているネットリストとネットリスト格納部３に格納されているネットリストとを比較して既存の回路と新規追加の回路とを識別すると共に、制御信号検出ライブラリ格納部５に格納されている回路パターン（図３や図４）と比較して一致する回路パターンを検出した場合には、制御信号検出ライブラリ格納部５において回路パターンに対応して登録されている動作抑制モードにおける制御信号値を読み出すと共に、変更後ネットリスト格納部１から検出回路パターンについての該当制御信号ネットＩＤ及び動作抑制ネットＩＤとを抽出し、制御信号リスト格納部９に格納する。
【００２６】
なおステップＳ１の代わりに入力部１５を用いて設計者が制御信号リストのデータを制御信号リスト格納部９に格納するようにしてもよい。また、入力部１５によって設計者は予め最大サイクル数Ｌを入力して、最大サイクル数格納部１１に格納しておく。
【００２７】
さらに、論理シミュレータ１７は、変更後ネットリスト格納部１に格納されているネットリストに含まれる全組み合わせ回路インスタンスを周知の手法を用いてレベルソートし、処理結果であるレベルソートリストをレベルソートリスト格納部１８１に格納する（ステップＳ５）。組み合わせ回路の出力値の決定順序を特定する処理であるレベルソートは周知であり、本実施の形態の主要部ではないのでこれ以上述べない。
【００２８】
また、論理シミュレータ１７は、サイクルＴを０に初期化し（ステップＳ７）、必要なデータをシミュレーション環境データ格納部１３から読み出してセットする。そして、論理シミュレータ１７は、論理シミュレーションの終了条件を満たしたか判断する（ステップＳ９）。終了条件を満たしていない場合には、論理シミュレータ１７は、サイクルＴを１インクリメントする（ステップＳ１１）。
【００２９】
そして、論理シミュレータ１７は、変更後ネットリスト格納部１に格納されている全順序回路インスタンスに対して、順序回路処理を実施する（ステップＳ１３）。順序回路処理については、図１３乃至図２１を用いて説明する。
【００３０】
論理シミュレータ１７は、周知の論理シミュレーションを実施して各順序回路の出力値を決定する（ステップＳ２１）。当然ながら各順序回路の出力値は、論理シミュレータ１７のメモリに格納される。そして、論理シミュレータ１７は、順序回路について動作率抑制情報リスト初期化処理を実施する（ステップＳ２３）。この動作率抑制情報リスト初期化処理については図１４乃至図１７Ｂを用いて説明する。
【００３１】
まず、論理シミュレータ１７の動作率抑制情報リスト管理部１７１は、変更後ネットリスト格納部１に格納されているネットリストに含まれるいずれかの順序回路（なお、順序回路についての動作率抑制情報リスト初期化処理の場合は順序回路であり、組み合わせ回路についての動作率抑制情報リスト初期化処理の場合には組み合わせ回路）の出力ピンに接続される未処理のネットを１つ特定する（ステップＳ３１）。そして、動作率抑制情報リスト管理部１７１は、動作率抑制情報リスト格納部１７３を参照して当該特定されたネットについて、前のサイクルの動作率抑制情報リストが登録されているかどうかを確認し、登録されていれば当該動作率抑制情報リストを削除すると共に、信号変化カウント値格納部１７９において当該特定されたネットについてのフラグをセットする（ステップＳ３３）。本ステップでは、前のサイクルにおいて生成された又は伝播されてきた動作率抑制情報リストが存在する場合には、当該動作率抑制情報リストは、特定されたネットに接続されている後段の回路への伝播が完了しているので、本サイクルでは不要であるとして削除する。
【００３２】
なお、動作率抑制情報リスト格納部１７３は、図１５及び図１６に示すようなデータ構造を有する。図１５は、１つのネットについてのリスト構造を示す。すなわち、各動作率抑制情報リストには、上で述べたように、抑制が実施されたサイクル番号、すなわち生成時刻と、出発したネットＩＤとが含まれるが、同一のネットについて複数の動作率抑制情報リストが設定された場合には、図１５では矢印で示すようにポインタによって連鎖するようになっている。また、図１６に動作率抑制情報リスト格納部１７３における全体のデータ構造例を示すが、各ネットについて、図１５に示したリスト構造の先頭へのポインタを格納する領域が設けられている。このようなデータ構造で各ネットについて動作率抑制情報リストが管理される。
【００３３】
ステップＳ３３では、図１５及び図１６で示されるようなデータ構造において、該当するネットに動作率抑制情報リストへのポインタが設定されているか確認し、確認された場合には当該動作率抑制情報リストへのポインタを消去する。
【００３４】
また、図１７Ａに、信号変化カウント値格納部１７９に格納されるデータの一例を示す。図１７Ａの例では、各ネットにつき、フラグと、以下でカウントされるカウント値と、信号値とが登録されるようになっている。本実施の形態では、動作率抑制情報リストが存在し続けているのに、信号値が頻繁に遷移するようなネットについては、論理上何らかの誤りが生じている可能性が高いため、その部分を設計者に通知して確認を求めるために、図１７Ａに示すようなデータを保持している。すなわち、フラグは前サイクルに動作率抑制情報リストが存在していた場合に「１」にセットされ、信号値については信号遷移が発生したか否かを確認するために格納されている。そして、フラグが「１」にセットされていて、本サイクルにおいて動作率抑制情報リストが設定され且つ信号値が遷移していることが確認されれば、カウント値が１インクリメントされる。
【００３５】
なお、ステップＳ３３で、前のサイクルの動作抑制情報リストが存在していないと判断された場合には、当然動作抑制情報リストの消去を行うことはなく、またフラグのセットも行われない。
【００３６】
図１４の説明に戻って、動作率抑制情報リスト管理部１７１は、制御信号リスト格納部９を検索して、特定されたネットを動作抑制ネットとする制御信号ネットが存在するか確認し、存在する場合には制御信号ネットの信号値が、制御信号リスト格納部９の該当レコードに登録されている信号値、すなわち動作抑制モードを指示する信号値であるか判断する（ステップＳ３５）。例えば、図１１の例では、特定されたネットがｎｅｔＢであれば、制御信号リスト格納部９には該当するレコード（第１レコード）が存在しており、制御信号ネットがｎｅｔＡと特定される。そして、論理シミュレータ１７による論理シミュレーションの結果としてｎｅｔＡの信号値が、制御信号リスト格納部９の該当レコードの動作抑制モードにおける制御信号値「１」であるか判断する。ｎｅｔＡの信号値が「１」であれば、動作抑制モードとなっていることが確認できるので、特定されたネットに対して動作率抑制情報リストを設定する必要がある。
【００３７】
従って、特定されたネットを動作抑制ネットとする制御信号ネットが存在し、制御信号ネットの信号値が、制御信号リスト格納部９の該当レコードに登録されている信号値と一致しない場合には、ステップＳ４３に移行する。
【００３８】
一方、特定されたネットを動作抑制ネットとする制御信号ネットが存在し、制御信号ネットの信号値が、制御信号リスト格納部９の該当レコードに登録されている信号値と一致する場合には、動作率抑制情報リスト管理部１７１は、特定されたネットに対して動作抑制情報リストを生成し、動作率抑制情報リスト格納部１７３において設定する（ステップＳ３７）。ここで生成される動作抑制情報リストにおいて、生成時刻には現在のサイクル番号Ｔが設定され、出発ネットのＩＤには当該特定されたネットのＩＤが設定される。
【００３９】
そして、動作率抑制情報リスト管理部１７１は、動作抑制カウント値格納部１７５において、特定されたネットを動作抑制ネットとするレコードにおけるカウント値を１インクリメントして登録する（ステップＳ３８）。本ステップは、制御信号に係るネット毎に、動作抑制モードになった回数及び以下で述べる伝播条件が成立した回数をカウントして、動作率抑制効果の上限を推定するために実施される。動作抑制カウント値格納部１７５には、例えば図１７Ｂに示すようなデータが格納されている。図１７Ｂの例では、図１１に示した制御信号リスト格納部９に格納されている制御信号リストのデータに加え、カウント値を格納するようになっている。
【００４０】
そして、動作率抑制情報リスト管理部１７１は、信号変化カウント値格納部１７９において当該特定されたネットについてのレコードを参照して、フラグが１にセットされており且つ登録されている信号値が現サイクルにおける信号値と異なるか判断する（ステップＳ３９）。図１７Ａに関連して述べたように、動作率抑制情報リストが存在し続けているのに信号値が頻繁に変化している場合には問題が存在する可能性があるので、そのための条件を確認している。
【００４１】
フラグが１ではない場合又は信号値の遷移が発生していない場合にはステップＳ４３に移行する。
【００４２】
一方、フラグが１であり且つ信号値の遷移が発生している場合には、動作率抑制情報リスト管理部１７１は、信号変化カウント値格納部１７９において、特定されたネットについてのカウント値を１インクリメントして登録する（ステップＳ４１）。
【００４３】
その後、動作率抑制情報リスト管理部１７１は、信号変化カウント値格納部１７９において、特定されたネットについてのフラグをリセットし、特定されたネットについての現サイクルの信号値を登録する（ステップＳ４３）。
【００４４】
そして、動作率抑制情報リスト管理部１７１は、いずれかの順序回路（順序回路についての処理においては順序回路。組み合わせ回路についての処理においては組み合わせ回路）の出力ピンに接続される全てのネットについて処理したか判断し（ステップＳ４５）、未処理のネットが存在する場合はステップＳ３１に戻る。一方、何れのかの順序回路（順序回路についての処理においては順序回路。組み合わせ回路についての処理においては組み合わせ回路）の出力に接続される全てのネットについて処理が完了した場合には元の処理に戻る。
【００４５】
このようにすれば、順序回路について必要な動作率抑制情報リストの生成及び設定、並びに消滅を行うことができ、併せて問題となりうる信号遷移をも特定してその信号遷移のカウントを行うことができる。
【００４６】
図１３の処理の説明に戻って、論理シミュレータ１７は、順序回路の入力ピン動作抑制情報リストチェック処理を実施する（ステップＳ２５）。順序回路の入力ピン動作抑制情報リストチェック処理については、図１８乃至図２１を用いて説明する。
【００４７】
動作率抑制情報リスト管理部１７１は、いずれかの順序回路の入力ピンに接続される未処理のネットを１つ特定する（ステップＳ５１）。
【００４８】
そして、動作率抑制情報リスト管理部１７１は、動作率抑制情報リスト格納部１７３を参照して、特定されたネットに動作率抑制情報リストが設定されているか判断する（ステップＳ５２）。特定されたネットに動作率抑制情報リストが設定されていない場合には、ステップＳ６３に移行する。
【００４９】
一方、特定されたネットに動作率抑制情報リストが設定されている場合には、動作率抑制情報リスト管理部１７１は、伝播条件確認処理を実施する（ステップＳ５３）。この伝播条件確認処理については図１９乃至図２１を用いて説明する。まず、動作率抑制情報リスト管理部１７１は、変更後ネットリスト格納部１に格納されているネットリストから、ステップＳ５１で特定されたネットが入力ピンに接続されているセルを特定し、伝播条件リスト格納部１７７から、関係する伝播条件リストを特定する（ステップＳ７１）。
【００５０】
本実施の形態では、動作率抑制情報リストを、セルの出力ピンの信号値が変化しなければ伝播せず、セルの出力ピンの信号値が変化すれば伝播する。このような判断を行うために、セルのタイプ毎に動作率抑制情報リストを伝播する条件のデータを予め用意しておき、伝播条件リスト格納部１７７に登録しておく。伝播条件リスト格納部１７７には、例えば図２０（ａ）や図２１（ａ）に示すようなデータが格納される。図２０（ａ）は、図２０（ｂ）に示すような３入力ＡＮＤ回路の場合の伝播条件を示している。すなわち、３入力ＡＮＤ回路の場合、入力ピンＡの動作率抑制情報リストが出力ピンＸに伝播されるのは、他の入力ピンＢ及びＣの信号値が共に「１」である場合である。また、入力ピンＢの動作率抑制情報リストが出力ピンＸに伝播されるのは、他の入力ピンＡ及びＣの信号値が共に「１」である場合である。このようなデータが伝播条件リストとして登録されている。但し、条件で指定されている入力ピンに動作率抑制情報リストが設定されたネットが接続されている場合には、信号値は「０」の場合も「１」の場合もあり得るので、その入力ピンの条件を満たすものとして判断するものとする。
【００５１】
図２１（ａ）は、図２１（ｂ）に示すようなマルチプレクサの場合の伝播条件を示している。すなわち、マルチプレクサの入力ピンｌ0の動作率抑制情報リストが出力ピンＸに伝播されるのは、セレクタピンＳの信号値が「０」の場合である。マルチプレクサの入力ピンｌ1の動作率抑制情報リストが出力ピンＸに伝播されるのは、セレクタピンＳの信号値が「１」の場合である。その他の入力ピンについてのデータも伝播条件リストとして登録される。
【００５２】
これ以外にもセルタイプ毎に伝播条件リストのデータが伝播条件リスト格納部１７７に登録されており、ステップＳ７１で該当する伝播条件リストが読み出される。
【００５３】
そして、動作率抑制情報リスト管理部１７１は、特定されたセルの各入力ピンの値を、論理シミュレーションの結果から取得する（ステップＳ７３）。そして、各入力ピンの値に基づき、伝播条件リストの伝播条件を満たしているか判断する（ステップＳ７５）。図２０（ａ）や図２１（ａ）のようなデータと各入力ピンの値から伝播条件を満たしているか判断する。但し、伝播条件リスト格納部１７７のデータを用いることなく、可能性がある入力の組み合わせを全て試して出力の値が変化するかどうかを確認するようにしても良い。
【００５４】
動作率抑制情報リスト管理部１７１は、ステップＳ７５で伝播条件を満たすと判断した場合には（ステップＳ７７：Ｙｅｓルート）、伝播条件確認処理の処理結果としてＴｒｕｅを元の処理に返し（ステップＳ７９）、元の処理に戻る。
【００５５】
一方、ステップＳ７５で伝播条件を満たさないと判断された場合には（ステップＳ７７：Ｎｏルート）、動作率抑制情報リスト管理部１７１は、ステップＳ７１で特定した伝播条件のうち未処理の伝播条件が存在するか判断する（ステップＳ８３）。未処理の伝播条件が存在する場合には、未処理の伝播条件を特定し（ステップＳ８５）、ステップＳ７５に戻り、特定された伝播条件について処理を行う。
【００５６】
また、未処理の伝播条件が存在しない場合には、伝播条件確認処理の処理結果としてＦａｌｓｅを元の処理に返し（ステップＳ８７）、元の処理に戻る。
【００５７】
図１８の処理の説明に戻って、動作率抑制情報リスト管理部１７１は、伝播条件確認処理の結果がＴｒｕｅである、すなわち伝播条件を満たしているか判断する（ステップＳ５５）。伝播条件を満たしていない、すなわち伝播条件確認処理の結果がＦａｌｓｅである場合には、ステップＳ６３に移行する。
【００５８】
一方、伝播条件を満たしている場合には、動作率抑制情報リスト管理部１７１は、動作率抑制情報リスト格納部１７３において、特定されたネットが入力ピンに接続されたセルの出力ピンに接続されるネットに、特定されたネットに設定されている動作率抑制情報リストをコピーする（ステップＳ５７）。
【００５９】
さらに、動作率抑制情報リスト管理部１７１は、動作抑制カウント値格納部１７５において、コピーされた動作率抑制情報リストに含まれる出発ネットを動作抑制ネットとする制御信号のカウント値を１インクリメントして登録する（ステップＳ５８）。これによって、制御信号毎に、当該制御信号の影響のあった範囲の大きさがカウント値に反映されるようになる。
【００６０】
そして、動作率抑制情報リスト管理部１７１は、コピーされた動作率抑制情報リストのサイクル番号ｔが、現サイクル番号Ｔと最大サイクル数格納部１１に格納されている最大サイクル数Ｌとの差より小さいか、すなわち動作率抑制情報リストが現在から最大サイクル数より以前に生成されたか判断する（ステップＳ５９）。コピーされた動作率抑制情報リストのサイクル番号ｔが、現サイクル番号Ｔと最大サイクル数Ｌとの差以上である場合には、当該動作率抑制情報リストの生存許容範囲内であるので、ステップＳ６３に移行する。
【００６１】
一方、コピーされた動作率抑制情報リストのサイクル番号ｔが、現サイクル番号Ｔと最大サイクル数Ｌとの差より小さい場合には、当該動作率抑制情報リストがその生存許容範囲を超えて残ってしまっていることになるので、動作率抑制情報リスト管理部１７１は、当該動作率抑制情報リストを含むエラー・データを出力データ格納部１９に格納する（ステップＳ６１）。
【００６２】
そして、動作率抑制情報リスト管理部１７１は、いずれかの順序回路の入力ピンに接続される全てのネットについて処理したか判断する（ステップＳ６３）。未処理のネットが存在する場合にはステップＳ５１に戻る。一方、全てのネットについて処理した場合には元の処理に戻る。すなわち図１３の処理に戻るが、さらに図１２の処理に戻ることになる。
【００６３】
以上のような処理を行うことによって、順序回路についての処理が完了する。すなわち、動作率抑制情報リストの生成や伝播、そしてエラー判定が行われる。
【００６４】
図１２の処理の説明に戻って、論理シミュレータ１７は、次に、レベルソートされた組み合わせ回路インスタンスに対して、レベルソートの順に、組み合わせ回路処理を実施する（ステップＳ１５）。組み合わせ回路処理については、図２２及び図２３を用いて説明する。
【００６５】
まず、論理シミュレータ１７は、レベルソートの順番に各組み合わせ論理回路の出力値を周知の論理シミュレーションによって決定する（ステップＳ９１）。そして、組み合わせ回路について、動作率抑制情報リスト初期化処理を実施する（ステップＳ９３）。この動作率抑制情報リスト初期化処理については、上で述べた順序回路についての動作率抑制情報リスト初期化処理（図１４）と処理内容については同様である。従って処理の詳細な説明については省略する。
【００６６】
次に、論理シミュレータ１７は、組み合わせ回路の入力ピン動作率抑制情報リストチェック処理を実施する（ステップＳ９５）。この処理については、図２３を用いて説明する。
【００６７】
動作率抑制情報リスト管理部１７１は、レベルソートの順番に従って、組み合わせ回路の入力ピンに接続される未処理のネットを１つ特定する（ステップＳ１０１）。
【００６８】
そして、動作率抑制情報リスト管理部１７１は、動作率抑制情報リスト格納部１７３を参照して、特定されたネットに動作率抑制情報リストが設定されているか判断する（ステップＳ１０３）。特定されたネットに動作率抑制情報リストが設定されていない場合には、ステップＳ１１３に移行する。
【００６９】
一方、特定されたネットに動作率抑制情報リストが設定されている場合には、動作率抑制情報リスト管理部１７１は、伝播条件確認処理を実施する（ステップＳ１０５）。この伝播条件確認処理については図１９に示した伝播条件確認処理と同様である。
【００７０】
次に、動作率抑制情報リスト管理部１７１は、伝播条件確認処理の結果がＴｒｕｅである、すなわち伝播条件を満たしているか判断する（ステップＳ１０７）。伝播条件を満たしていない、すなわち伝播条件確認処理の結果がＦａｌｓｅである場合には、ステップＳ１１３に移行する。
【００７１】
一方、伝播条件を満たしている場合には、動作率抑制情報リスト管理部１７１は、動作率抑制情報リスト格納部１７３において、特定されたネットが入力ピンに接続されたセルの出力ピンに接続されるネットに、特定されたネットに設定されている動作率抑制情報リストをコピーする（ステップＳ１０９）。
【００７２】
さらに、動作率抑制情報リスト管理部１７１は、動作抑制カウント値格納部１７５において、コピーされた動作率抑制情報リストに含まれる出発ネットを動作率抑制ネットとする制御信号のカウント値を１インクリメントして登録する（ステップＳ１１１）。これによって、制御信号毎に、当該制御信号の影響のあった範囲の大きさがカウント値に反映されるようになる。
【００７３】
そして、動作率抑制情報リスト管理部１７１は、組み合わせ回路の入力ピンに接続される全てのネットについて処理したか判断する（ステップＳ１１３）。未処理のネットが存在する場合にはステップＳ１０１に戻る。一方、全てのネットについて処理した場合には元の処理に戻る。すなわち図２２の処理に戻るが、さらに図１２の処理に戻ることになる。
【００７４】
以上のような処理を行うことによって、組み合わせ回路についての処理が完了する。すなわち、動作率抑制情報リストの生成や伝播が行われる。
【００７５】
図１２の処理の説明に戻って、ステップＳ１５が終了すると、ステップＳ９に戻る。そして、論理シミュレータ１７は、終了条件を満たしたか判断する。終了条件を満たすまで、ステップＳ１１乃至Ｓ１５を繰り返す。
【００７６】
終了条件を満たした場合には、論理シミュレータ１７は、動作抑制カウント値格納部１７５に格納されているデータと信号変化カウント値格納部１７９に格納されているデータとを出力データ格納部１９に格納し、出力部２１は、出力データ格納部１９に格納されているデータを、表示装置などに出力する（ステップＳ１７）。
【００７７】
このようにすれば、ユーザは、エラーの有無、エラーが存在している場合には問題となった動作率抑制情報リストを確認して、消費電力削減のために加えた変更などに問題がないか回路の確認を実施する。また、動作抑制カウント値格納部１７５に格納されているデータを参照することによって、各制御信号について動作抑制の効果を判断することができる。さらに、信号変化カウント値格納部１７９に格納されているデータを参照することによって、動作抑制モードになっているにもかかわらず信号遷移が頻繁に生じているネットを特定できるので、問題が生じていないかを確認するなどの処置をとることができるようになる。
【００７８】
また、最大サイクル数Ｌ以外については、設計者は判断基準を作成する必要はなく、また論理シミュレーションの結果を比較するなどの工程も不要になる。すなわち、設計者が、消費電力削減用の変更を加えた場合においても、その変更の検証に必要な工数が削減されている。
【００７９】
なお、動作率抑制情報リストには、当該動作率抑制情報リストが生成されたサイクル番号のデータが含まれる。上でも述べたが、このサイクル番号は、動作率抑制情報リストが最大サイクル数を超えて生存しているか否かを判定するのに用いられる。本実施の形態では、このようにサイクル番号は、エラー判定に重要な役割を有している。
【００８０】
なお、動作抑制カウント値格納部１７５に格納されているデータ、信号変化カウント値格納部１７９に格納されているデータについては、必ずしも必要ではなく、カウントする処理についてもスキップさせるようにしても良い。
【００８１】
［具体例］
図２４乃至図４２を用いて上で述べた処理の具体例を説明する。まず、図２４に、消費電力削減用の変更を加える前の回路を示す。図２４の回路例では、ＦＦ１との出力とＦＦ２の出力をＡＮＤ回路６０１の入力に接続し、ＦＦ３の出力とＦＦ４の出力とをＡＮＤ回路６０２の入力に接続し、ＡＮＤ回路６０１の出力とＡＮＤ回路６０２の出力とをセレクタ６０３の入力に接続している。また、ＦＦ０の出力は、セレクタ６０３のＳ端子に接続されており、セレクタ６０３の出力は、ＦＦ５のＤ端子に接続されている。なお、図２４では、全てのＦＦに同じクロックが入力されているが、それについては図示は省略されている。
【００８２】
図２５に消費電力削減用の変更を加えた後の回路を示す。具体的には、ＦＦ０のＤ端子への入力にＮＯＴ回路６１１を接続し、そのＮＯＴ回路６１１の出力を、ＦＦ１及びＦＦ２のＥＮ端子に接続している。さらに、ＮＯＴ回路６１１の出力をＮＯＴ回路６１２の入力に接続して、当該ＮＯＴ回路６１２の出力をＦＦ３及びＦＦ４のＥＮ端子に接続している。すなわち、ＦＦ０のＤ端子への入力が「１」であれば、セレクタ６０３においてＡＮＤ回路６０２の出力が選択され、ＦＦ０のＤ端子への入力が「０」であれば、セレクタ６０３においてＡＮＤ回路６０１の出力が選択される。従って、ＦＦ０のＤ端子への入力が「１」でＮＯＴ回路６１１の出力が「０」の場合にはＦＦ１及びＦＦ２を動作させないようにし、ＦＦ０のＤ端子への入力が「０」でＮＯＴ端子６１２の出力が「０」の場合にはＦ３及びＦＦ４を動作させないようにする。
【００８３】
図２５に示すような回路の制御信号リスト格納部９に格納されるデータは、図２６に示すようなデータとなる。すなわち、動作抑制ネットは、ＦＦ１の出力６３１（ＦＦ１＿ｏｕｔ）と、ＦＦ２の出力６３２（ＦＦ２＿ｏｕｔ）と、ＦＦ３の出力６３３（ＦＦ３＿ｏｕｔ）と、ＦＦ４の出力６３４（ＦＦ４＿ｏｕｔ）とである。動作抑制ネットＦＦ１＿ｏｕｔ及びＦＦ２＿ｏｕｔの制御信号は、ＮＯＴ回路６１１の出力６２１（ＦＦ１＿２＿ＥＮ）である。動作抑制ネットＦＦ３＿ｏｕｔ及びＦＦ４＿ｏｕｔの制御信号は、ＮＯＴ回路廊６１２の出力６２２（ＦＦ３＿４＿ＥＮ）である。なお、それら制御信号の信号値は「０」である。
【００８４】
次に図２７に時刻Ｔ＝２の直前の状態を示す。各サイクルの処理では、サイクルＴの値を１増加させ、順序回路の値、組み合わせ回路の値を順に決定してゆく。全回路の値が決まった後に、次のサイクルの処理を開始する。基本的には、ＦＦ０乃至ＦＦ５の出力、ＡＮＤ回路６０１及び６０２の出力、セレクタ６０３の出力の順番で決定するものとする。図２７では、サイクルＴ＝２直前の状態であって、ＦＦ０乃至ＦＦ４の出力値が決定されるところまでを示している。
【００８５】
次に時刻Ｔ＝２になった後の最初の状態を図２８に示す。まずＦＦ１のＥＮ端子への入力は「０」なので、直前の値が保持され「１」が出力される。但し、ＦＦ１の出力６３１は動作抑制ネットであり、制御信号リスト（図２６）において、本動作抑制ネットに対応する制御信号ネットであるＮＯＴ回路６１１の出力が制御信号リストの指定値「０」であるので、「時刻２」及び「ＦＦ１＿ｏｕｔ」を含む動作率抑制情報リストが生成され、ＦＦ１＿ｏｕｔであるＦＦ１の出力６３１に設定される。
【００８６】
また、図２８のその後の状態を図２９に示す。ＦＦ１と同様にＦＦ２のＥＮ端子への入力は「０」なので、直前の値が保持され「０」が出力される。但し、ＦＦ２の出力６３２は動作抑制ネットであり、制御信号リスト（図２６）において、本動作抑制ネットに対応する制御信号ネットであるＮＯＴ回路６１１の出力が制御信号リストの指定値「０」であるので、「時刻２」及び「ＦＦ２＿ｏｕｔ」を含む動作率抑制情報リストが生成され、ＦＦ２＿ｏｕｔであるＦＦ２の出力６３２に設定される。
【００８７】
なお、ＦＦ３及びＦＦ４のＥＮ端子には「１」が入力されるので、制御信号リスト（図２６）からして動作抑制モードではない。従って、ＦＦ３及びＦＦ４のＤ端子の入力値「１」がそのままＦＦ３＿ｏｕｔ及びＦＦ４＿ｏｕｔとして出力される。
【００８８】
その後、組み合わせ回路であるＡＮＤ回路６０１の出力値「０」を決定する。この際、図３０に示すように、ＡＮＤ回路６０１の２つの入力には動作率抑制情報リストが設定されているので、ＡＮＤ回路６０１の出力に２つの動作率抑制情報リストが伝播される。
【００８９】
また、図３１に示すように、組み合わせ回路であるＡＮＤ回路６０２の出力値「１」も決定する。なお、セレクタ６０３のＳ端子の入力は「１」であるから、ＡＮＤ回路６０２の出力すなわちＡ１端子の入力が選択される。よって、ＡＮＤ回路６０１の出力は選択されることはないので、ＡＮＤ回路６０１の出力に設定されている２つの動作率抑制情報リストは、セレクタ６０３の出力には伝播されない。
【００９０】
従って、図３２に示すように、セレクタ６０３の出力は「１」であり、ＦＦ５のＤ端子に入力される。また、ＦＦ０のＤ端子の入力値が「０」に、ＦＦ１のＤ端子の入力値が「０」に、ＦＦ４のＤ端子の入力値が「０」に変更される。これがＴ＝３の直前の状態である。
【００９１】
次に、Ｔ＝３になった後の状態を図３３に示す。Ｔ＝２では、ＦＦ１及びＦＦ２は動作抑制モードであったが、Ｔ＝３ではＦＦ３及びＦＦ４が動作抑制モードになっている。従って、ＦＦ１のＤ端子の入力値「０」がＦＦ１の出力６３１の値「０」となる。この際、ＦＦ１の出力６３１に設定されていた動作率抑制情報リストは消去される。なお、この段階にてＦＦ５から「１」が出力される。なお、ＦＦ１の出力について処理している段階においては、ＦＦ２の出力６３２に設定されている動作率抑制情報リストは残っている。
【００９２】
さらに、ＦＦ２の出力６３２の値は「１」であるが、動作抑制モードではないので、図３４に示すように、ＦＦ２の出力６３２に設定されていた動作率抑制情報リストは消去される。また、ＦＦ３のＥＮ端子への入力は「０」なので、直前の値が保持され「１」が出力される。但し、ＦＦ３の出力６３３は動作抑制ネットであり、制御信号リスト（図２６）において、本動作抑制ネットに対応する制御信号ネットであるＮＯＴ回路６１２の出力が制御信号リストの指定値「０」であるので、「時刻３」及び「ＦＦ３＿ｏｕｔ」を含む動作率抑制情報リストが生成され、ＦＦ３＿ｏｕｔであるＦＦ３の出力６３３に設定される。
【００９３】
同様に、ＦＦ４のＥＮ端子への入力は「０」なので、直前の値が保持され「１」が出力される。但し、ＦＦ４の出力６３４は動作抑制ネットであり、制御信号リスト（図２６）において、本動作抑制ネットに対応する制御信号ネットであるＮＯＴ回路６１２の出力が制御信号リストの指定値「０」であるので、「時刻３」及び「ＦＦ４＿ｏｕｔ」を含む動作率抑制情報リストが生成され、ＦＦ４＿ｏｕｔであるＦＦ４の出力６３４に設定される。
【００９４】
次に図３５に示すように組み合わせ回路についての処理に移行すると、ＡＮＤ回路６０１の出力に設定されていた動作率抑制情報リストは消去される。また、ＡＮＤ回路６０１の出力値は「０」と決定される。一方、ＡＮＤ回路６０２の出力値は「１」と決定され、ＡＮＤ回路６０２の２つの入力には２つの動作率抑制情報リストが設定されるので、当該２つの動作率抑制情報リストはＡＮＤ回路６０２の出力にも伝播される。なお、セレクタ６０３のＳ端子の入力値は「０」であるので、ＡＮＤ回路６０１の出力である「０」がセレクタ６０３の出力値となる。すなわち、セレクタ６０３の出力に２つの動作率抑制情報リストは伝播されることはない。これがＴ＝４の直前の状態である。
【００９５】
このような処理を行うことによって、動作率抑制情報リストがセレクタ６０３を超えて伝播しないことを確認することができる。
【００９６】
一方、図２４に示した回路を誤って変更してしまった例を図３６に示す。図３６は、図２５に示したような変更に加えて、誤ってＦＦ３の出力６３５をＡＮＤ回路６０１の入力に接続してＡＮＤ回路６０１を３入力ＡＮＤ回路に変更してしまった例を示す。なお、制御信号リスト格納部９に格納されるデータは図２６に示したものと同じである。
【００９７】
Ｔ＝３の直前の状態を図３７に示す。ＦＦ１及びＦＦ２の出力値は「０」であり、ＦＦ３及びＦＦ４の出力値は「１」であり、ＦＦ０のＤ端子への入力値は「０」であり、ＦＦ１乃至ＦＦ３のＤ端子への入力値は「１」であり、ＦＦ４のＤ端子への入力値は「０」である。なお、Ｔ＝３では、ＦＦ３及びＦＦ４のＥＮ端子には「０」が入力されるので、動作抑制モードになる。ＦＦ１及びＦＦ２のＥＮ端子には「１」が入力されるので、通常モードである。
【００９８】
Ｔ＝３になった状態を図３８に示す。動作抑制モードであるＦＦ３の出力６３３及び６３５には、「時刻３」及び「ＦＦ３＿ｏｕｔ」を含む動作率抑制情報リストが設定される。同様に、ＦＦ４の出力６３４についても、「時刻３」及び「ＦＦ４＿ｏｕｔ」を含む動作率抑制情報リストが設定される。さらに、通常モードのＦＦ１及びＦＦ２のＤ端子への入力は「１」であるので、ＦＦ１及びＦＦ２の出力も「１」となる。
【００９９】
その後組み合わせ回路についての処理に移行した場合に、ＡＮＤ回路６０１の入力は、ＦＦ１の出力６３１及びＦＦ２の出力６３２の値が「１」で、ＦＦ３の出力６３５の値も「１」であるから、ＡＮＤ回路６０１の出力の値も「１」となる。この際、ＦＦ１の出力６３１及びＦＦ２の出力６３２の値が「１」であるから３入力ＡＮＤ回路の伝播条件を満たしており、ＡＮＤ回路６０１の入力に接続されたＦＦ３＿ｏｕｔに設定されている動作率抑制情報リストは、ＡＮＤ回路６０１の出力に伝播される。
【０１００】
さらに処理が進むと、図３９に示すように、ＡＮＤ回路６０２の出力に２つの動作率抑制情報リストが伝播される。さらに、ＦＦ０の出力の値が「０」であるから、セレクタ６０３ではＡ０端子の入力値、すなわちＡＮＤ回路６０１の出力の値が選択され、セレクタ６０３の出力値は「１」となる。この際、ＡＮＤ回路６０１の出力に設定されている動作率抑制情報リストもセレクタ６０３の出力に伝播される。このように誤った変更を行った回路では、セレクタ６０３の出力に動作率抑制情報リストが伝播されている。
【０１０１】
さらにＴ＝４に移行すると、図４０に示すように、ＦＦ５のＤ端子への入力値「１」がＦＦ５から出力されると共に、セレクタ６０３の出力に設定されている動作率抑制情報リストも、ＦＦ５の出力に伝播される。これによって問題が生じていることが判定できる。
【０１０２】
なお、図１４におけるステップＳ３３では、次のサイクルにはいると直ぐに出力ピンに接続されているネットに設定されている動作率抑制情報リストを消去するような処理を行っているが、例外がある。例えば図４１に示すように、ＦＦの出力がＦＦの入力に直結しているようなケースが例外である。図４１の例では、ＸＱにはｎｏｔＤが出力される。すなわち１サイクル毎に０と１とが交互に出力される。
【０１０３】
例外ケースの場合には、ＦＦの出力が入力に直結されないように、変更後ネットリストを前もって変更しておく必要がある。即ち図４２に示すように、バッファを入力してネットを分割する。図４２の例でだけではなく、異なるＦＦを直結する場合も同様にバッファで分割する。
【０１０４】
なお、動作率抑制情報リストの消去タイミングについては、上で述べた例が一番シンプルであるが、他のタイミングを採用することも可能である。
【０１０５】
また、消費電力削減用の回路を追加する際に、当該最大サイクル数Ｌ以内に信号の伝播が停止するように設計すれば、本実施の形態において最大サイクル数を適切に設定することができる。
【０１０６】
以上一実施の形態を説明したが、この実施の形態に限定されるものではない。例えば図１０に示した検証システムの機能ブロックは一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。ファイル構成なども同様である。
【０１０７】
また、処理結果が同じであれば、並列実行や順番を入れ替えることができるような処理ステップもある。
【０１０８】
なお、上で述べた実施の形態では、動作率抑制情報リストを最初に設定した場合と伝播した場合とに動作抑制カウント値をカウントしていたが、例えば最初に設定した場合にだけカウントするようにしてもよいし、伝播した場合にだけカウントするようにしても良い。
【０１０９】
以上の実施の形態をまとめると以下のように表される。本回路動作検証方法は、特定の回路に対して動作抑制モードを指示する制御回路が付加された動作検証対象回路についての論理シミュレーションの結果に基づき、動作抑制モードを指示するための制御信号が伝達される制御信号ネットと動作抑制モードがイネーブルとなる制御信号の信号値と動作抑制モードがイネーブルされた影響を直接受ける信号が伝達される動作抑制ネットとが対応付けられて格納されている制御信号データ格納部から、特定の時刻において制御信号ネットの制御信号の信号値が動作抑制モードがイネーブルとなる信号値であり且つ当該制御信号ネットに対応する動作抑制ネットを特定し、特定された動作抑制ネットに対して当該動作抑制ネット及び特定の時刻を含む動作率抑制情報リストを設定する設定ステップと、回路のタイプ毎に当該回路の入力側ネットに設定された動作率抑制情報リストを当該回路の出力側ネットに伝播する伝播条件を格納する伝播条件データ格納部から、動作率抑制情報リストが設定されているネットが入力側ネットとして接続されている特定の回路のタイプについての伝播条件を特定すると共に、特定された伝播条件を論理シミュレーションの結果が満たしているか判断し、特定された伝播条件を論理シミュレーションの結果が満たしている場合には、入力側ネットに設定されている動作率抑制情報リストを特定の回路の出力側ネットに伝播させる伝播ステップと、特定の回路の出力側ネットに伝播された動作率抑制情報リストに含まれる特定の時刻が、現在時刻から所定時間以上前であるか判断し、特定の時刻が現在時刻から所定時間以上前である場合にはエラーを出力する出力ステップとを含む。
【０１１０】
このように、従来技術による論理シミュレーションの結果を用いて動作率抑制情報リストを設定し伝播することによって、制御信号データ格納部に格納されるデータを用意し、動作率抑制情報リストを管理するだけで動作検証を行うことができるようになる。
【０１１１】
また、動作検証対象回路に制御回路が付加される前の変更前回路のデータと動作検証対象回路のデータとを比較して差分回路を特定すると共に、制御回路と被制御回路と制御回路を被制御回路に接続し且つ制御信号を伝達する入力側の制御信号ネットと被制御回路の出力側の動作抑制ネットとを含む動作抑制回路パターンと当該動作抑制回路パターンについて動作抑制モードがイネーブルとなる制御信号の信号値とを対応付けて格納している制御信号検出ライブラリ格納部に格納されている動作抑制回路パターンと動作検証対象回路のデータとを差分回路を用いて比較し、動作検証対象回路のデータにおいて動作抑制回路パターンに該当する回路パターンについて制御信号ネットと制御信号の信号値と動作抑制ネットとを特定し、制御信号データ格納部に格納するステップをさらに含むようにしても良い。このようにすれば、制御信号データ格納部に格納されるデータについても自動的に生成することができるようになり、設計者の工数が少なくなる。
【０１１２】
さらに、制御信号ネット毎に、設定ステップと伝播ステップとのうち少なくともいずれかが実施された回数をカウントし、制御信号ネットに対応して当該カウント値を動作抑制カウント値格納部に格納するステップをさらに含むようにしても良い。このようにすれば、動作抑制の効果の上限を見積もることができるようになる。
【０１１３】
また、異なる動作率抑制情報リストが連続して設定されているネットについて、論理シミュレーションの結果において信号値の遷移が観測される回数をカウントし、ネットに対応して当該カウント値を信号変化カウント値格納部に格納するステップをさらに含むようにしてもよい。このようにすれば、不自然に信号遷移が頻繁に発生しているネットを検出して、回路の問題を検討することができるようになる。
【０１１４】
さらに、上で述べた設定ステップが、特定の時刻についての処理開始時に、出力側ネットに既に設定されている動作率抑制情報リストを消去するステップを含むようにしても良い。このようにすれば、正確に動作率抑制情報リストの生存期間を判断することができるようになる。なお、正しい回路変更が行われていれば、適切なポイントにおいて論理シミュレーションの結果が伝播条件を満たさなくなるので、所定時間以内に動作率抑制情報リストは消去され、エラーは発生しない。一方、正しい回路変更が行われていなければ、いつまでも動作率抑制情報リストが伝播されるようになるので、エラーが通知される。エラーに、当該エラーに係る動作率抑制情報リストを含むようにすれば、回路の修正を容易に行うことができるようになる。
【０１１５】
なお、検証システムはコンピュータ装置であって、図４３に示すように、メモリ２５０１（記憶部）とＣＰＵ２５０３（処理部）とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。ＯＳ及びＷｅｂブラウザを含むアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。このようなコンピュータは、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１１６】
（付記１）
特定の回路に対して動作抑制モードを指示する制御回路が付加された動作検証対象回路についての論理シミュレーションの結果に基づき、前記動作抑制モードを指示するための制御信号が伝達される制御信号ネットと前記動作抑制モードがイネーブルとなる前記制御信号の信号値と前記動作抑制モードがイネーブルされた影響を直接受ける信号が伝達される動作抑制ネットとが対応付けられて格納されている制御信号データ格納部から、特定の時刻において前記制御信号ネットの前記制御信号の信号値が前記動作抑制モードがイネーブルとなる信号値であり且つ当該制御信号ネットに対応する前記動作抑制ネットを特定し、特定された前記動作抑制ネットに対して当該動作抑制ネット及び前記特定の時刻を含む動作率抑制情報リストを設定する設定ステップと、
前記回路のタイプ毎に当該回路の入力側ネットに設定された前記動作率抑制情報リストを当該回路の出力側ネットに伝播する伝播条件を格納する伝播条件データ格納部から、前記動作率抑制情報リストが設定されているネットが入力側ネットとして接続されている特定の回路のタイプについての前記伝播条件を特定すると共に、特定された前記伝播条件を前記論理シミュレーションの結果が満たしているか判断し、特定された前記伝播条件を前記論理シミュレーションの結果が満たしている場合には、前記入力側ネットに設定されている前記動作率抑制情報リストを前記特定の回路の出力側ネットに伝播させる伝播ステップと、
前記特定の回路の出力側ネットに伝播された前記動作率抑制情報リストに含まれる前記特定の時刻が、現在時刻から所定時間以上前であるか判断し、前記特定の時刻が前記現在時刻から所定時間以上前である場合にはエラーを出力する出力ステップと、
を、コンピュータに実行させるための回路動作検証プログラム。
【０１１７】
（付記２）
前記動作検証対象回路に前記制御回路が付加される前の変更前回路のデータと前記動作検証対象回路のデータとを比較して差分回路を特定すると共に、制御回路と被制御回路と前記制御回路を前記被制御回路に接続し且つ制御信号を伝達する入力側の制御信号ネットと前記被制御回路の出力側の動作抑制ネットとを含む動作抑制回路パターンと当該動作抑制回路パターンについて前記動作抑制モードがイネーブルとなる前記制御信号の信号値とを対応付けて格納している制御信号検出ライブラリ格納部に格納されている前記動作抑制回路パターンと前記動作検証対象回路のデータとを前記差分回路を用いて比較し、前記動作検証対象回路のデータにおいて前記動作抑制回路パターンに該当する回路パターンについて前記制御信号ネットと前記制御信号の信号値と前記動作抑制ネットとを特定し、前記制御信号データ格納部に格納するステップ
をさらに前記コンピュータに実行させるための付記１記載の回路動作検証プログラム。
【０１１８】
（付記３）
前記制御信号ネット毎に、前記設定ステップと前記伝播ステップとのうち少なくともいずれかが実施された回数をカウントし、前記制御信号ネットに対応して当該カウント値を動作抑制カウント値格納部に格納するステップ
をさらに前記コンピュータに実行させるための付記１記載の回路動作検証プログラム。
【０１１９】
（付記４）
異なる前記動作率抑制情報リストが連続して設定されているネットについて、前記論理シミュレーションの結果において信号値の遷移が観測される回数をカウントし、前記ネットに対応して当該カウント値を信号変化カウント値格納部に格納するステップ
をさらに前記コンピュータに実行させるための付記１記載の回路動作検証プログラム。
【０１２０】
（付記５）
前記設定ステップが、
前記特定の時刻についての処理開始時に、出力側ネットに既に設定されている動作率抑制情報リストを消去するステップ
を含む付記１記載の回路動作検証プログラム。
【０１２１】
（付記６）
特定の回路に対して動作抑制モードを指示する制御回路が付加された動作検証対象回路についての論理シミュレーションの結果に基づき、前記動作抑制モードを指示するための制御信号が伝達される制御信号ネットと前記動作抑制モードがイネーブルとなる前記制御信号の信号値と前記動作抑制モードがイネーブルされた影響を直接受ける信号が伝達される動作抑制ネットとが対応付けられて格納されている制御信号データ格納部から、特定の時刻において前記制御信号ネットの前記制御信号の信号値が前記動作抑制モードがイネーブルとなる信号値であり且つ当該制御信号ネットに対応する前記動作抑制ネットを特定し、特定された前記動作抑制ネットに対して当該動作抑制ネット及び前記特定の時刻を含む動作率抑制情報リストを設定する設定手段と、
前記回路のタイプ毎に当該回路の入力側ネットに設定された前記動作率抑制情報リストを当該回路の出力側ネットに伝播する伝播条件を格納する伝播条件データ格納部から、前記動作率抑制情報リストが設定されているネットが入力側ネットとして接続されている特定の回路のタイプについての前記伝播条件を特定すると共に、特定された前記伝播条件を前記論理シミュレーションの結果が満たしているか判断し、特定された前記伝播条件を前記論理シミュレーションの結果が満たしている場合には、前記入力側ネットに設定されている前記動作率抑制情報リストを前記特定の回路の出力側ネットに伝播させる伝播手段と、
前記特定の回路の出力側ネットに伝播された前記動作率抑制情報リストに含まれる前記特定の時刻が、現在時刻から所定時間以上前であるか判断し、前記特定の時刻が前記現在時刻から所定時間以上前である場合にはエラーを出力する出力手段と、
を有する回路動作検証装置。
【図面の簡単な説明】
【０１２２】
【図１】消費電力削減用の変更を行うべき回路の一例を示す図である。
【図２】動作抑制モードを説明するための図である。
【図３】制御信号ネットと動作抑制ネットとを説明するための図である。
【図４】制御信号ネットと動作抑制ネットとを説明するための図である。
【図５】動作率抑制情報リストの伝播を説明するための図である。
【図６】動作率抑制情報リストの伝播を説明するための図である。
【図７】動作率抑制情報リストの伝播を説明するための図である。
【図８】動作率抑制情報リストの伝播を説明するための図である。
【図９】本実施の形態におけるエラー判定を説明するための図である。
【図１０】実施の形態に係る検証システムの機能ブロック図である。
【図１１】制御信号リスト格納部に格納されるデータの一例を示す図である。
【図１２】実施の形態におけるメインの処理フローを示す図である。
【図１３】順序回路処理の処理フローを示す図である。
【図１４】動作率抑制情報リストの初期化処理の処理フローを示す図である。
【図１５】１つのネットに設定され得る動作率抑制情報リストのデータ構造例を示す図である。
【図１６】動作率抑制情報リストの全体データ構造例を示す図である。
【図１７Ａ】信号変化カウント値格納部に格納されるデータの一例を示す図である。
【図１７Ｂ】動作抑制カウント値格納部に格納されるデータの一例を示す図である。
【図１８】順序回路の入力ピン動作率抑制情報リストチェック処理の処理フローを示す図である。
【図１９】伝播条件確認処理の処理フローを示す図である。
【図２０】（ａ）は３入力ＡＮＤ回路の伝播条件リストのデータ例を示し、（ｂ）は３入力ＡＮＤ回路の構成例を示す図である。
【図２１】（ａ）はマルチプレクサの伝播条件リストのデータ例を示し、（ｂ）はマルチプレクサの構成例を示す図である。
【図２２】組み合わせ回路処理の処理フローを示す図である。
【図２３】組み合わせ回路の入力ピン動作率抑制情報リストチェック処理の処理フローを示す図である。
【図２４】消費電力削減用の変更を行う前の回路例を示す図である。
【図２５】消費電力削減用の正しい変更を行った場合における回路例である。
【図２６】消費電力削減用の正しい変更を行った場合における制御信号リストの一例を示す図である。
【図２７】消費電力削減用の正しい変更を行った場合におけるＴ＝１の状態を示す図である。
【図２８】消費電力削減用の正しい変更を行った場合におけるＴ＝２の状態を示す図である。
【図２９】消費電力削減用の正しい変更を行った場合におけるＴ＝２の状態を示す図である。
【図３０】消費電力削減用の正しい変更を行った場合におけるＴ＝２の状態を示す図である。
【図３１】消費電力削減用の正しい変更を行った場合におけるＴ＝２の状態を示す図である。
【図３２】消費電力削減用の正しい変更を行った場合におけるＴ＝２の状態を示す図である。
【図３３】消費電力削減用の正しい変更を行った場合におけるＴ＝３の状態を示す図である。
【図３４】消費電力削減用の正しい変更を行った場合におけるＴ＝３の状態を示す図である。
【図３５】消費電力削減用の正しい変更を行った場合におけるＴ＝３の状態を示す図である。
【図３６】誤った回路変更を行った場合における回路例を示す図である。
【図３７】誤った回路変更を行った場合におけるＴ＝２の状態を示す図である。
【図３８】誤った回路変更を行った場合におけるＴ＝３の状態を示す図である。
【図３９】誤った回路変更を行った場合におけるＴ＝３の状態を示す図である。
【図４０】誤った回路変更を行った場合におけるＴ＝４の状態を示す図である。
【図４１】動作率抑制情報リストの消去において問題が生ずる可能性のある回路例を示す図である。
【図４２】動作率抑制情報リストの消去における問題を解決するための方法の一例を示す図である。
【図４３】コンピュータの機能ブロック図である。
【符号の説明】
【０１２３】
１  変更後ネットリスト格納部    ３  ネットリスト格納部
５  制御信号検出ライブラリ格納部    ７  制御信号検出処理部
９  制御信号リスト格納部    １１  最大サイクル数格納部
１３  シミュレーション環境データ格納部    １５  入力部
１７  論理シミュレータ    １９  出力データ格納部
２１  出力部
１７１  動作率抑制情報リスト管理部    １７３  動作率抑制情報リスト格納部
１７５  動作抑制カウント値格納部    １７７  伝播条件リスト格納部
１７９  信号変化カウント値格納部    １８１  レベルソートリスト格納部
【図１】
0005024185.tif 000002
【図２】
0005024185.tif 000003
【図３】
0005024185.tif 000004
【図４】
0005024185.tif 000005
【図５】
0005024185.tif 000006
【図６】
0005024185.tif 000007
【図７】
0005024185.tif 000008
【図８】
0005024185.tif 000009
【図９】
0005024185.tif 000010
【図１０】
0005024185.tif 000011
【図１１】
0005024185.tif 000012
【図１２】
0005024185.tif 000013
【図１３】
0005024185.tif 000014
【図１４】
0005024185.tif 000015
【図１５】
0005024185.tif 000016
【図１６】
0005024185.tif 000017
【図１７Ａ】
0005024185.tif 000018
【図１７Ｂ】
0005024185.tif 000019
【図１８】
0005024185.tif 000020
【図１９】
0005024185.tif 000021
【図２０】
0005024185.tif 000022
【図２１】
0005024185.tif 000023
【図２２】
0005024185.tif 000024
【図２３】
0005024185.tif 000025
【図２４】
0005024185.tif 000026
【図２５】
0005024185.tif 000027
【図２６】
0005024185.tif 000028
【図２７】
0005024185.tif 000029
【図２８】
0005024185.tif 000030
【図２９】
0005024185.tif 000031
【図３０】
0005024185.tif 000032
【図３１】
0005024185.tif 000033
【図３２】
0005024185.tif 000034
【図３３】
0005024185.tif 000035
【図３４】
0005024185.tif 000036
【図３５】
0005024185.tif 000037
【図３６】
0005024185.tif 000038
【図３７】
0005024185.tif 000039
【図３８】
0005024185.tif 000040
【図３９】
0005024185.tif 000041
【図４０】
0005024185.tif 000042
【図４１】
0005024185.tif 000043
【図４２】
0005024185.tif 000044
【図４３】
0005024185.tif 000045