(57)【要約】【課題】効率的かつ高精度に最大消費電力を見積もることにより、設計負担の軽減、設計期間の短縮化、および設計品質の向上を図ること。【解決手段】セル群の設計データを複写して、前段のセル群４０１の設計データと後段のセル群４０２の設計データを得る。また、組み合わせ回路２０２の設計データを複写してあらかじめ設定されたサイクル数ｎ（ｎ＝２，３，４，…。図４では、ｎ＝３）分の組み合わせ回路２０２の設計データを生成する。そして、複数の組み合わせ回路２０２の設計データを前段のセル群４０１の設計データから直列に接続し、末尾の組み合わせ回路２０２の設計データの後段に後段のセル群４０２の設計データを連結する。その結果、解析対象回路に対する入力制約表現回路４００の設計データを生成することができる。【選択図】図４
2008197883.tif 000002
【特許請求の範囲】
【請求項１】
組み合わせ回路と当該組み合わせ回路との入出力の値を保持するセル群とを有する解析対象回路の中から、前記組み合わせ回路を抽出させる抽出工程と、
前記セル群と同一構成となる前段のセル群から、前記抽出工程によって得られた組み合わせ回路を複数サイクル直列につなげて、前記セル群と同一構成となる後段のセル群まで接続させる展開工程と、
前記展開工程によって得られた前記解析対象回路への入力制約を表現する入力制約表現回路を出力させる出力工程と、
をコンピュータに実行させることを特徴とするＬＳＩ解析プログラム。
【請求項２】
前記展開工程は、
さらに、前記複数サイクル展開された組み合わせ回路群のうち連結しあう前段の組み合わせ回路と後段の組み合わせ回路との間に、前記前段の組み合わせ回路から前記後段の組み合わせ回路への入力を前記解析対象回路内の順序回路の初期値の入力と前記前段の組み合わせ回路からの出力とに切り替えるためのセレクタを挿入させることを特徴とする請求項１に記載のＬＳＩ解析プログラム。
【請求項３】
前記解析対象回路内の組み合わせ回路の中からクロック制御回路を検出させる検出工程と、
前記検出工程によって検出されたクロック制御回路から前記解析対象回路のセル群まで逆追跡することにより、前記クロック制御回路に信号を供給するセルを前記解析対象回路のセル群の中から特定させる第１の特定工程と、
前記後段のセル群のうち前記第１の特定工程によって特定されたセルと同一のセル（以下、「後段の特定セル」という）から前記前段のセル群まで前記入力制約表現回路を逆追跡することにより、前記後段の特定セルに信号を供給するセルを前記前段のセル群の中から特定させる第２の特定工程と、
前記第２の特定工程によって特定されたセルから前記後段の特定セルまでの信号伝搬経路を、前記入力制約表現回路から削除させる削除工程と、
を前記コンピュータに実行させることを特徴とする請求項１または２に記載のＬＳＩ解析プログラム。
【請求項４】
前記入力制約表現回路を用いて、前記解析対象回路の最大消費電力を算出させる算出工程を前記コンピュータに実行させることを特徴とする請求項１〜３のいずれか一つに記載のＬＳＩ解析プログラム。
【請求項５】
請求項１〜４に記載のＬＳＩ解析プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【請求項６】
組み合わせ回路と当該組み合わせ回路との入出力の値を保持するセル群とを有する解析対象回路の中から、前記組み合わせ回路を抽出する抽出手段と、
前記セル群と同一構成となる前段のセル群から、前記抽出手段によって得られた組み合わせ回路を複数サイクル直列につなげて、前記セル群と同一構成となる後段のセル群まで接続する展開手段と、
前記展開手段によって得られた前記解析対象回路への入力制約を表現する入力制約表現回路を出力する出力手段と、
を備えることを特徴とするＬＳＩ解析装置。
【請求項７】
組み合わせ回路と当該組み合わせ回路との入出力の値を保持するセル群とを有する解析対象回路の中から、前記組み合わせ回路を抽出する抽出工程と、
前記セル群と同一構成となる前段のセル群から、前記抽出工程によって得られた組み合わせ回路を複数サイクル直列につなげて、前記セル群と同一構成となる後段のセル群まで接続する展開工程と、
前記展開工程によって得られた前記解析対象回路への入力制約を表現する入力制約表現回路を出力する出力工程と、
を含んだことを特徴とするＬＳＩ解析方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＬＳＩの設計時における消費電力の見積りをおこなうＬＳＩ解析プログラム、該プログラムを記録した記録媒体、ＬＳＩ解析装置、およびＬＳＩ解析方法に関する。
【背景技術】
【０００２】
ＬＳＩでは、素子の出力信号が変化したときに電力が消費される。設計段階でＬＳＩの消費電力を見積もるときは、各素子の出力信号がどの程度の頻度で変化するかを見積もり、その値を元に消費電力の見積もり値を決めることになる。
【０００３】
設計段階で見積もる消費電力の値のうち、重要なものとして最大消費電力がある。最大消費電力が求められれば、その値を用いて、電源が十分確保されているか、温度上昇が最大でも動作保証温度の範囲内にとどまるかを検証することが可能になる。
【０００４】
設計段階で最大消費電力を見積もるときは、まず、信号遷移する割合を示す動作率のうち最大の動作率を求め、その値から最大動作電力を見積もる。最大動作率を見積もる手法として、以下の第１の手法と第２の手法が存在する（たとえば、下記非特許文献１を参照。）。
【０００５】
図１４は、最大動作率を見積もる第１の手法を示す説明図である。図１４において、第１の手法では、（１）まず、ＬＳＩ１４００のフリップフロップ回路（以下、単に「ＦＦ」と称す。）の値を設定する。（２）つぎに、設定された値で組み合わせ回路１４０１のシミュレーションを実行する。（３）そして、組み合わせ回路１４０１の信号が変化する回数（信号遷移数）を計数する。このあと、ＦＦの設定値を変化させることで、（１）〜（３）を繰り返し実行する。
【０００６】
また、第１の手法をある程度使い、得られた中で最大の動作率を最大動作率候補として保持しておき、つぎに、第２の手法を用いて、最大動作率候補よりも高い動作率を与える入力パターンを求めにいくという手法もある。
【０００７】
図１５は、最大動作率を見積もる第２の手法を示す説明図である。図１５において、第２の手法では、（１）まず、ＬＳＩ１４００のうち、同時に遷移すると動作率が高くなるような同時遷移候補点（図１５中、×印で表示）をいくつか選択する。（２）つぎに、当該同時遷移候補点を同時に遷移させるようなＦＦの入力値が存在するかどうかを逆算して求める。
【０００８】
（３）そして、同時に遷移させるようなＦＦの入力値が存在した場合、そのＦＦの入力値のパターンに対して、信号遷移数を計数して、動作率を計算する。（４）そして、上記（３）で求まった動作率が上記第１の手法で得られた最大動作率候補よりも大きければ、最大動作率候補を今回選ばれた同時遷移候補点に置き換える。
【０００９】
このあと、さまざまな同時遷移候補点を選び出して、（１）〜（４）を繰り返し実行する。これにより、より大きな最大動作率を与えるＦＦの入力値のパターンを求めていく。このループを十分繰り返した後で、得られている最大動作率候補を最大動作率とみなす。
【００１０】
また、入力制約を表現する回路を、ＬＳＩの前に付け加える第３の手法が存在する（たとえば、下記非特許文献２および非特許文献３を参照。）。この第３の手法では、入力制約を表現する回路を生成し、動作率を求めたいＬＳＩの前に結合する。
【００１１】
図１６は、第３の手法を適用した第１の手法を示す説明図であり、図１７は、第３の手法を適用した第２の手法を示す説明図である。図１６では、（１）まず、入力制約表現回路１６０１の前段のＦＦの値を設定する。（２）つぎに、設定された値で組み合わせ回路１４０１のシミュレーションを実行する。このとき、入力制約表現回路１６０１の出力により、組み合わせ回路１４０１の前段のＦＦの値が設定され、その設定値により組み合わせ回路１４０１の動作がシミュレートされる。（３）そして、組み合わせ回路１４０１の信号が変化する回数（信号遷移数）を計数する。
【００１２】
このあと、入力制約表現回路１６０１の前段のＦＦの設定値を変化させることで、（１）〜（３）を繰り返し実行する。この第３の手法を適用した第１の手法では、入力制約表現回路１６０１の前段のＦＦの値を変化させ、組み合わせ回路１４０１内の信号遷移の数を計数する。
【００１３】
図１７では、（１）まず、ＬＳＩのうち、同時に遷移すると動作率が高くなるような同時遷移候補点（図１５中、×印で表示）をいくつか選択する。（２）つぎに、当該同時遷移候補点を同時に遷移させるような入力制約表現回路１６０１の前段のＦＦの入力値が存在するかどうかを逆算して求める。
【００１４】
（３）そして、同時に遷移させるような入力制約表現回路１６０１の前段のＦＦの入力値が存在した場合、そのＦＦの入力値のパターンに対して、信号遷移数を計数して、動作率を計算する。（４）そして、上記（３）で求まった動作率が上記第１の手法で得られた最大動作率候補よりも大きければ、最大動作率候補を今回選ばれた同時遷移候補点に置き換える。
【００１５】
この第３の手法を適用した第２の手法では、組み合わせ回路１４０１内におけるターゲットとなる回路を遷移させるような入力制約表現回路１６０１の前段のＦＦの値のパターンが存在するかどうかをチェックすることになる。
【００１６】
【非特許文献１】"Analysis of Maximum Switching Activities in Sequential Circuits for Power Supply Integrity Validation", ACM/IEEE International Workshop on Logic and Synthesis 2006.
【非特許文献２】"Symbolic Model Checking using SAT procedures instead of BDDs", DAC1999,pp.317-320 2.
【非特許文献３】"Improved SAT-based Bounded Reachability Analysis" International Conference on VLSI Design 2002, pp.729-734
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、上述した第１の手法では、ＦＦの値の全パターンに対して信号が変化する数を計数することができれば、その中で得られた動作率のうち最大のものが最大動作率として求まることになる。現実には、ｎ個のＦＦの値のパターンは２ｎ通り存在することになる。したがって、巨大な数の組み合わせになるため、これをすべて網羅するのは困難である。すなわち、すべて網羅しようとすると、設計負担の増大および設計期間の長期化を招くという問題があった。
【００１８】
また、上述した第２の手法では、現実にはあり得ないパターンに対する動作率を求めている可能性が高くなる。具体的には、ＬＳＩにＦＦがｎ個あるとき、その値のパターンは、２ｎ通り存在するが、そのすべてが現実に到達可能なパターンというわけではない。
【００１９】
ｎの値が大きいと２ｎは巨大な数になるが、実際にありえるパターンはその中のほんの一部という設計が大部分だと考えられる。このため、単純に回路の最大動作率を求めると、現実にはあり得ないパターンに対する動作率を求めている可能性が高くなることとなる。したがって、最大消費電力を真の最大消費電力よりも高く見積もってしまい、動作不良の原因になるという問題があった。
【００２０】
図１８は、現実にはあり得ない入力例を示す回路図である。図１８において、ＦＦ１と入力はインバータＩＮＶで反転されているので、ＦＦ１とＦＦ２は同じ値をとることはない。しかし、最大動作率を与えるようなパターンを求めると、ＦＦ１とＦＦ２が同じ値をとるような場合も試してしまう。
【００２１】
したがって、そのパターンで動作率が最大になっていると、この動作率が最大動作率として決定されてしまうこととなる。これにより、結果的に、真の最大動作率よりも大きな動作率を最大動作率として返すことになる。
【００２２】
また、上述した第３の手法を適用する場合、まず、ＦＦの値にどのような制約があるかを設計者は事前に知る必要があり、この入力制約を求めるのは困難であり、設計負担の増大および設計期間の長期化を招くという問題があった。
【００２３】
この発明は、上述した従来技術による問題点を解消するため、効率的かつ高精度に最大消費電力を見積もることにより、設計負担の軽減、設計期間の短縮化、および設計品質の向上を図ることができるＬＳＩ解析プログラム、該プログラムを記録した記録媒体、ＬＳＩ解析装置、およびＬＳＩ解析方法を提供することを目的とする。
【課題を解決するための手段】
【００２４】
上述した課題を解決し、目的を達成するため、この発明にかかるＬＳＩ解析プログラム、該プログラムを記録した記録媒体、ＬＳＩ解析装置、およびＬＳＩ解析方法は、組み合わせ回路と当該組み合わせ回路との入出力の値を保持するセル群とを有する解析対象回路の中から、前記組み合わせ回路を抽出し、前記セル群と同一構成となる前段のセル群から、前記組み合わせ回路を複数サイクル直列につなげて、前記セル群と同一構成となる後段のセル群まで接続し、前記解析対象回路への入力制約を表現する入力制約表現回路を出力することを特徴とする。
【００２５】
この発明によれば、既にある解析対象回路のみを用いて入力制約表現回路を自動生成することができる。
【００２６】
また、上記発明において、さらに、前記複数サイクル展開された組み合わせ回路群のうち連結しあう前段の組み合わせ回路と後段の組み合わせ回路との間に、前記前段の組み合わせ回路から前記後段の組み合わせ回路への入力を前記解析対象回路内の順序回路の初期値の入力と前記前段の組み合わせ回路からの出力とに切り替えるためのセレクタを挿入することとしてもよい。
【００２７】
この発明によれば、入力制約表現回路がｎサイクル動作したところで初期状態に相当する値をもてるようにすることができる。
【００２８】
また、上記発明において、前記解析対象回路内の組み合わせ回路の中からクロック制御回路を検出し、検出されたクロック制御回路から前記解析対象回路のセル群まで逆追跡することにより、前記クロック制御回路に信号を供給するセルを前記解析対象回路のセル群の中から特定し、前記後段のセル群のうち特定されたセルと同一のセル（以下、「後段の特定セル」という）から前記前段のセル群まで前記入力制約表現回路を逆追跡することにより、前記後段の特定セルに信号を供給するセルを前記前段のセル群の中から特定し、特定されたセルから前記後段の特定セルまでの信号伝搬経路を、前記入力制約表現回路から削除することとしてもよい。
【００２９】
この発明によれば、クロック制御回路に影響を与える回路部分を入力制約表現回路として抽出することができる。
【００３０】
また、上記発明において、前記入力制約表現回路を用いて、前記解析対象回路の最大消費電力を算出することとしてもよい。
【００３１】
この発明によれば、現実的な最大消費電力を見積もることができる。
【発明の効果】
【００３２】
本発明にかかるＬＳＩ解析プログラム、該プログラムを記録した記録媒体、ＬＳＩ解析装置、およびＬＳＩ解析方法によれば、効率的かつ高精度に最大消費電力を見積もることにより、設計負担の軽減、設計期間の短縮化、および設計品質の向上を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００３３】
以下に添付図面を参照して、この発明にかかるＬＳＩ解析プログラム、該プログラムを記録した記録媒体、ＬＳＩ解析装置、およびＬＳＩ解析方法の好適な実施の形態を詳細に説明する。
【００３４】
（ＬＳＩ解析装置のハードウェア構成）
まず、この発明の実施の形態にかかるＬＳＩ解析装置のハードウェア構成について説明する。図１は、この発明の実施の形態にかかるＬＳＩ解析装置のハードウェア構成を示すブロック図である。
【００３５】
図１において、ＬＳＩ解析装置１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００３６】
コンピュータ本体１１０は、ＣＰＵ，メモリ，インターフェースを有する。ＣＰＵは、ＬＳＩ解析装置１００の全体の制御を司る。メモリは、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク１１１，フラッシュメモリから構成される。メモリはＣＰＵのワークエリアとして使用される。
【００３７】
また、メモリには各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インターフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００３８】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内のメモリに格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００３９】
また、出力装置１３０としては、ディスプレイ１３１、プリンタ１３２、スピーカ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ１３２は、画像データや文書データを印刷する。またスピーカ１３３は、効果音や読み上げ音などの音声を出力する。
【００４０】
図２は、解析対象回路を模式的に示した説明図である。解析対象回路２００は、組み合わせ回路２０２と当該組み合わせ回路２０２との入出力の値を保持するセル群２０１とを有する。セル群２０１を構成するセルは、フリップフロップなどの順序回路素子（図中、「ＦＦ」と称す。）により構成されている。具体的には、解析対象回路２００は、各ＦＦに保持されている値を組み合わせ回路２０２に送り込み、次のクロックで組み合わせ回路２０２から出てきた信号を各ＦＦに記憶する動作を繰り返す同期式回路である。
【００４１】
（ＬＳＩ解析装置１００の機能的構成）
つぎに、この発明の実施の形態にかかるＬＳＩ解析装置１００の機能的構成について説明する。図３は、この発明の実施の形態にかかるＬＳＩ解析装置１００の機能的構成を示すブロック図である。図３において、ＬＳＩ解析装置１００は、抽出部３０１と、展開部３０２と、出力部３０３と、検出部３０４と、第１の特定部３０５と、第２の特定部３０６と、削除部３０７と、算出部３０８と、から構成されている。
【００４２】
これら各機能３０１〜３０８は、メモリに格納された当該機能に関するプログラムをＣＰＵに実行させることにより、当該機能を実現することができる。また、各機能３０１〜３０８からの出力データはメモリに保持される。また、図３中矢印で示した接続先の機能的構成は、接続元の機能からの出力データをメモリから読み込んで、当該機能に関するプログラムをＣＰＵに実行させる。
【００４３】
図３において、まず、抽出部３０１は、解析対象回路２００の中から、組み合わせ回路２０２を抽出する。具体的には、解析対象回路２００の設計データ３００から組み合わせ回路２０２の設計データを抽出する。ここで、解析対象回路２００の設計データ３００とは、解析対象回路２００に関するネットリストであり、このネットリストを参照することで、組み合わせ回路２０２に相当するネットリストを、組み合わせ回路２０２の設計データとして抽出する。抽出された設計データは、メモリに保持される。
【００４４】
また、展開部３０２は、メモリに保持された設計データを読み出して、セル群２０１と同一構成となる前段のセル群から、抽出部３０１によって得られた組み合わせ回路２０２を複数サイクル直列につなげて、セル群２０１と同一構成となる後段のセル群まで接続する。ここで、展開部３０２による具体的な展開処理を図を用いて説明する。
【００４５】
図４は、展開部３０２による展開処理を示す説明図である。図４において、図２に示したセル群２０１の設計データを複写して、前段のセル群４０１の設計データと後段のセル群４０２の設計データを得る。また、組み合わせ回路２０２の設計データを複写してあらかじめ設定されたサイクル数ｎ（ｎ＝２，３，４，…。図４では、ｎ＝３）分の組み合わせ回路２０２の設計データを生成する。
【００４６】
そして、複数の組み合わせ回路２０２の設計データを前段のセル群４０１の設計データから直列に接続し、末尾の組み合わせ回路２０２の設計データの後段に後段のセル群４０２の設計データを連結する。その結果、解析対象回路２００に対する入力制約を表現する回路（以下、「入力制約表現回路」と称す。）４００の設計データ３１０を生成することができる。
【００４７】
また、出力部３０３は、展開部３０２によって得られた入力制約表現回路４００を出力する。具体的には、入力制約表現回路４００の設計データ３１０をメモリに保持したり、ディスプレイ１３１に表示したりする。これにより、元の解析対象回路２００の設計データ３００があれば、設計者が試行錯誤することなく、自動的に入力制約表現回路４００を得ることができる。
【００４８】
そして、この入力制約表現回路４００の前段のセル群４０１に入力パターンを与えることにより後段のセル群４０２に出力される値を、制約された入力パターンとして解析対象回路２００のセル群２０１に与える。これにより、解析対象回路２００の組み合わせ回路２０２のシミュレーションを実行して、遷移するＦＦを計数して最大動作率を求めることができる。
【００４９】
また、入力制約表現回路４００として、組み合わせ回路２０２をｎサイクル展開した回路を使用することによる利点は以下の通りである。仮に最初の入力が到達不能なパターンであっても、途中のサイクルで到達可能なパターンに落ち着くことが期待できる。
【００５０】
たとえば、図１８に示したような単純な制約条件の場合は、１サイクル目以後のＦＦ１とＦＦ２の値は必ず別の値になる。したがって、最大動作率として求められた値は、ＦＦ１とＦＦ２の値が異なっている場合のみに限られることになる。ｎサイクル展開した入力制約表現回路４００は、厳密な入力制約の表現にはなっていないが、複雑な回路の解析を行わずに入力制約をある程度反映することができるという利点がある。
【００５１】
また、２サイクル以上展開した場合は、ｎサイクル以内に解析対象回路２００の初期状態に到達する可能性がある。この場合、図４に示したような単純な展開を使用している場合、解析対象回路２００がその状態（初期状態）になることがあるにもかかわらず、対応するＦＦの値が存在せず、ありえない組み合わせとして排除されてしまう可能性がある。このような弊害を防止するため、２〜ｎサイクル動作したところで初期状態に相当する値をもてるようにする。
【００５２】
図５は、初期状態を考慮した入力制約表現回路を示す説明図である。図５において、組み合わせ回路２０２間にセレクタ５０２と、セレクタ５０２の切り替え制御をおこなうセレクタ制御用ＦＦ群５０１とを挿入することで、入力制約表現回路５００を得る。
【００５３】
この入力制約表現回路５００では、セレクタ制御用ＦＦ群５０１のＦＦの値が１のとき、セレクタ５０２は解析対象回路２００の初期状態におけるＦＦの値を後段の組み合わせ回路２０２に出力する。一方、セレクタ制御用ＦＦ群５０１のＦＦの値が０のときは、前段の組み合わせ回路２０２の出力をそのまま後段の組み合わせ回路２０２に受け渡す。
【００５４】
そして、この入力制約表現回路５００の前段のセル群４０１およびセレクタ制御用ＦＦ群５０１に入力パターンを与えることにより後段のセル群４０２に出力される値を、制約された入力パターンとして解析対象回路２００のセル群２０１に与える。これにより、解析対象回路２００の組み合わせ回路２０２のシミュレーションを実行して、遷移するＦＦを計数して最大動作率を求めることができる。
【００５５】
また、検出部３０４は、解析対象回路２００内の組み合わせ回路２０２の中からクロック制御回路を検出する。解析対象回路２００の中には、クロック制御回路が存在する。このクロック制御回路によってクロックが止まると、広範囲の回路が一度に動作をやめるため、動作率に対する影響が非常に大きい。
【００５６】
したがって、クロック制御回路のうちクロックが停止する可能性がある回路の動作パターンを把握できれば、その他の部分の影響は相対的に小さいため、解析対象回路２００全体の動作率を効率よく見積もることが可能になる。このため検出部３０４では、具体的には、解析対象回路２００のクロックツリーを設計者が指定する。
【００５７】
図６は、解析対象回路２００のクロックツリーを示す説明図である。図６において、バッファＢやインバータＩＮＶ以外のセル（符号６０１〜６０３）がクロックツリー６００内にあれば、当該セルの設計データを、分周ＦＦ制御回路６０１、分周ＦＦ制御回路６０１により制御される分周ＦＦ６０２やクロックゲート６０３などのクロック制御回路の設計データとして検出する。なお、クロックゲート６０３とは、イネーブル信号がアサートされている期間クロックのスイッチングを停止するバッファである。検出されたクロック制御回路の設計データはメモリに保持される。
【００５８】
また、第１の特定部３０５は、検出部３０４によって検出されたクロック制御回路から解析対象回路２００のセル群２０１まで逆追跡することにより、クロック制御回路に信号を供給するセルを解析対象回路２００のセル群２０１の中から特定する。ここで、第１の特定部３０５による具体的な特定処理を図を用いて説明する。
【００５９】
図７は、第１の特定部３０５による特定処理を示す説明図である。図７中、×印は、検出部３０４によって検出されたクロック制御回路の入力端子である。この入力端子から信号線を逆追跡することにより、クロック制御回路に信号を供給するセルを解析対象回路２００のセル群２０１の中から特定することができる。図７中、符号２１０は、特定されたセルの集合である。また、符号２１１は、特定されなかったセルの集合である。
【００６０】
また、図３において、第２の特定部３０６は、後段のセル群４０２のうち第１の特定部３０５によって特定されたセルと同一のセル（以下、「後段の特定セル」という）から前段のセル群４０１まで入力制約表現回路４００，５００を逆追跡することにより、後段の特定セルに信号を供給するセルを前段のセル群４０１の中から特定する。ここで、第２の特定部３０６による具体的な特定処理を図を用いて説明する。
【００６１】
図８は、第２の特定部３０６による特定処理を示す説明図である。図８において、後段のセル群４０２は、解析対象回路２００のセル群２０１と同一構成であるため、解析対象回路２００のセル群２０１内のセル集合２１０は後段のセル群４０２のセル集合４２０と対応し、解析対象回路２００のセル群２０１内のセル集合２１１は後段のセル群４０２のセル集合４２１と対応する。
【００６２】
入力制約表現回路４００では、このセル集合４２０の各セルから信号線を逆追跡することにより、セル集合４２０の各セルに信号を供給するセルを前段のセル群４０１の中から特定することができる。図８中、符号４１０は、特定されたセルの集合である。この特定されたセルを「前段の特定セル」と称す。また、符号４１１は、特定されなかったセルの集合である。
【００６３】
また、図３において、削除部３０７は、第２の特定部３０６によって特定されたセルから後段の特定セルまでの信号伝搬経路を、入力制約表現回路４００，５００から削除する。ここで、削除部３０７による具体的な削除処理を図を用いて説明する。
【００６４】
図９は、削除部３０７による削除処理を示す説明図である。削除部３０７では、第２の特定部３０６による逆追跡により前段の特定セルの集合４１０から後段の特定セルの集合４２０までの信号伝搬経路となる入力制約表現回路９０１以外の回路９０２は、解析対象回路２００のクロック制御回路に影響を及ぼさないこととなる。
【００６５】
したがって、セル集合４１１からセル集合４２１までの信号伝搬経路となる回路９０２を入力制約表現回路４００から削除することにより、クロック制御回路に影響を与える入力制約表現回路９０１を抽出することができる。したがって、組み合わせ回路２０２の展開により入力制約表現回路４００の回路規模が大きくなっても不要部分（回路９０２）を削除することで、動作率解析の解析速度を向上させることができる。
【００６６】
また、図３において、算出部３０８は、入力制約表現回路４００，５００，９０１に基づいて、解析対象回路２００の最大消費電力を算出する。具体的には、入力制約表現回路４００の場合、前段のセル群４０１に入力パターンを与えることにより後段のセル群４０２に出力される値を、制約された入力パターンとして解析対象回路２００のセル群２０１に与える。
【００６７】
入力制約表現回路５００の場合、前段のセル群４０１およびセレクタ制御用ＦＦ群５０１に入力パターンを与えることにより後段のセル群４０２に出力される値を、制約された入力パターンとして解析対象回路２００のセル群２０１に与える。
【００６８】
入力制約表現回路９０１の場合、セル集合４１０に入力パターンを与えることによりセル集合４２０に出力される値を、制約された入力パターンとして解析対象回路２００のセル群２０１に与える。
【００６９】
これにより、解析対象回路２００の組み合わせ回路２０２のシミュレーションを実行して、遷移するＦＦを計数して最大動作率を求める。最大動作率が求まれば、最大消費電力を求めることができる。この算出部３０８による算出処理は、［背景技術］で示した既存の手法により、実行することができる。
【００７０】
（ＬＳＩ解析処理手順）
つぎに、この発明の実施の形態にかかるＬＳＩ解析処理手順（その１）について説明する。図１０は、この発明の実施の形態にかかるＬＳＩ解析処理手順（その１）を示すフローチャートである。このＬＳＩ解析処理手順（その１）は、図３に示した抽出部３０１、展開部３０２および出力部３０３を用いて、図４または図５に示した入力制約表現回路を生成する処理手順である。
【００７１】
図１０において、まず、組み合わせ回路２０２を展開するサイクル数ｎを設定する（ステップＳ１００１）。このサイクル数ｎは、設計者が指定するか、デフォルトの値を用いる。つぎに、抽出部３０１により、解析対象回路２００の中から組み合わせ回路２０２を抽出する（ステップＳ１００２）。そして、展開部３０２により展開処理を実行し（ステップＳ１００３）、出力部３０３により、展開結果となる入力制約表現回路４００，５００を出力する（ステップＳ１００４）。
【００７２】
つぎに、この発明の実施の形態にかかるＬＳＩ解析処理手順（その２）について説明する。図１１は、この発明の実施の形態にかかるＬＳＩ解析処理手順（その２）を示すフローチャートである。このＬＳＩ解析処理手順（その２）は、図３に示した検出部３０４、第１の特定部３０５、第２の特定部３０６および削除部３０７を用いて、図４に示した入力制約表現回路４００から図９に示した入力制約表現回路９０１を生成する処理手順である。
【００７３】
図１１において、まず、解析対象回路２００内のクロックツリー６００を指定する（ステップＳ１１０１）。そして、検出部３０４により、指定されたクロックツリー６００を参照して、解析対象回路２００の中からクロック制御回路を検出する（ステップＳ１１０２）。そして、第１の特定部３０５により、解析対象回路２００の逆追跡処理（第１の特定部３０５による特定処理）を実行し（ステップＳ１１０３）、そのあと、入力制約表現回路４００の逆追跡処理（第２の特定部３０６による特定処理）を実行する（ステップＳ１１０４）。
【００７４】
このあと、削除部３０７により、入力制約表現回路４００から、クロック制御回路に影響を及ぼさない回路９０２を削除する（ステップＳ１１０５）。これにより、クロック制御回路に影響を与える入力制約表現回路９０１を抽出することができる。
【００７５】
（逆追跡処理手順）
次に、上述したステップＳ１１０３およびステップＳ１１０４における逆追跡処理手順について説明する。図１２は、ステップＳ１１０３およびステップＳ１１０４における逆追跡処理手順を示すフローチャートである。
【００７６】
図１２において、逆追跡リストＬ１が空集合であるか否かを判断する（ステップＳ１２０１）。逆追跡リストＬ１とは、逆追跡の開始地点となる端子候補の集合である。Ｌ１＝Φでない場合（ステップＳ１２０１：Ｎｏ）、逆追跡リストＬ１の中から任意の端子ｐを選択して、逆追跡リストＬ１から削除する（ステップＳ１２０２）。そして、端子ｐに探索済みフラグを設定する（ステップＳ１２０３）。
【００７７】
つぎに、端子ｐは入力端子であるか否かを判断する（ステップＳ１２０４）。入力端子でない場合（ステップＳ１２０４：Ｎｏ）、端子ｐが信号を供給するセルの入力端子ｑを探索する（ステップＳ１２０５）。そして、探索された入力端子ｑに探索済みフラグが設定されているか否かをチェックする（ステップＳ１２０６）。
【００７８】
探索済みフラグが設定されている場合（ステップＳ１２０６：Ｙｅｓ）、ステップＳ１２０１に戻る。一方、探索済みフラグが設定されていない場合（ステップＳ１２０６：Ｎｏ）、入力端子ｑを逆追跡リストＬ１に追加して（ステップＳ１２０７）、ステップＳ１２０１に戻る。
【００７９】
一方、ステップＳ１２０４において、端子ｐが入力端子である場合（ステップＳ１２０４：Ｙｅｓ）、端子ｐに信号を供給するセルの出力端子（ドライバピン）ｄを探索する（ステップＳ１２０８）。この処理が逆追跡処理となる。そして、探索された出力端子ｄがＦＦの出力端子であるか否かを判断する（ステップＳ１２０９）。ＦＦの出力端子でない場合（ステップＳ１２０９：Ｎｏ）、その出力端子ｄに探索済みフラグが設定されているか否かをチェックする（ステップＳ１２１０）。
【００８０】
探索済みフラグが設定されている場合（ステップＳ１２１０：Ｙｅｓ）、ステップＳ１２０１に戻る。一方、探索済みフラグが設定されていない場合（ステップＳ１２１０：Ｎｏ）、出力端子ｄを逆追跡リストＬ１に追加して（ステップＳ１２１１）、ステップＳ１２０１に戻る。
【００８１】
一方、ステップＳ１２０９において、出力端子ｄがＦＦの出力端子である場合（ステップＳ１２０９：Ｙｅｓ）、出力端子ｄが出力リストＬ２にあるか否かを判断する（ステップＳ１２１２）。出力リストＬ２とは、逆追跡結果となる端子の集合である。出力リストＬ２にすでにある場合（ステップＳ１２１２：Ｙｅｓ）、ステップＳ１２０１に戻る。
【００８２】
一方、出力リストＬ２にない場合（ステップＳ１２１２：Ｎｏ）、出力端子ｄに探索済みフラグを設定して出力リストＬ２に追加する（ステップＳ１２１３）。そして、ステップＳ１２０１に戻る。
【００８３】
また、ステップＳ１２０１において、Ｌ１＝Φとなった場合（ステップＳ１２０１：Ｙｅｓ）、出力リストＬ２を出力する（ステップＳ１２１４）。これにより、一連の逆追跡処理を終了する。
【００８４】
なお、ステップＳ１１０３において、この逆追跡処理手順を用いる場合、初期状態において逆追跡リストＬ１は、ステップＳ１１０２で検出されたクロック制御回路の入力端子となる。そして、出力リストＬ２は、解析対象回路２００のセル群２０１のうちセル集合２１０の出力端子となる。
【００８５】
また、ステップＳ１１０４において、この逆追跡処理手順を用いる場合、初期状態において逆追跡リストＬ１は、ステップＳ１１０３の逆追跡処理によって得られた出力リストＬ１内の出力端子を持つＦＦと同一ＦＦ（図８に示したセル集合４２０のＦＦ）の入力端子となる。そして、出力リストＬ２は、入力制約表現回路４００の前段のセル群４０１のうちセル集合４１０の出力端子となる。
【００８６】
つぎに、この発明の実施の形態にかかるＬＳＩ解析処理手順（その３）について説明する。図１３は、この発明の実施の形態にかかるＬＳＩ解析処理手順（その３）を示すフローチャートである。
【００８７】
図１３において、入力制約表現回路４００（５００、９０１でもよい）を読み込み（ステップＳ１３０１）、前段のセル群４０１に入力パターンを与えて、入力制約表現回路４００をシミュレートする（ステップＳ１３０２）。そして、算出部３０８により、解析対象回路２００の最大消費電力を算出する（ステップＳ１３０３）。このあと、算出結果を出力して（ステップＳ１３０４）、一連の処理を終了する。
【００８８】
以上説明したように、本実施の形態によれば、ｎサイクル展開した回路を入力制約表現回路として使用することにより、厳密な入力制約を求める手間をかけることなく、実際にはありえない入力パターンに対する動作率を求めてしまう可能性を減らし、現実的な最大動作率や最大消費電力を見積もることができる。これにより、設計負担の軽減、設計期間の短縮化、および設計品質の向上を図ることができるという効果を奏する。
【００８９】
なお、本実施の形態で説明したＬＳＩ解析方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【００９０】
（付記１）組み合わせ回路と当該組み合わせ回路との入出力の値を保持するセル群とを有する解析対象回路の中から、前記組み合わせ回路を抽出させる抽出工程と、
前記セル群と同一構成となる前段のセル群から、前記抽出工程によって得られた組み合わせ回路を複数サイクル直列につなげて、前記セル群と同一構成となる後段のセル群まで接続させる展開工程と、
前記展開工程によって得られた前記解析対象回路への入力制約を表現する入力制約表現回路を出力させる出力工程と、
をコンピュータに実行させることを特徴とするＬＳＩ解析プログラム。
【００９１】
（付記２）前記展開工程は、
さらに、前記複数サイクル展開された組み合わせ回路群のうち連結しあう前段の組み合わせ回路と後段の組み合わせ回路との間に、前記前段の組み合わせ回路から前記後段の組み合わせ回路への入力を前記解析対象回路内の順序回路の初期値の入力と前記前段の組み合わせ回路からの出力とに切り替えるためのセレクタを挿入させることを特徴とする付記１に記載のＬＳＩ解析プログラム。
【００９２】
（付記３）前記解析対象回路内の組み合わせ回路の中からクロック制御回路を検出させる検出工程と、
前記検出工程によって検出されたクロック制御回路から前記解析対象回路のセル群まで逆追跡することにより、前記クロック制御回路に信号を供給するセルを前記解析対象回路のセル群の中から特定させる第１の特定工程と、
前記後段のセル群のうち前記第１の特定工程によって特定されたセルと同一のセル（以下、「後段の特定セル」という）から前記前段のセル群まで前記入力制約表現回路を逆追跡することにより、前記後段の特定セルに信号を供給するセルを前記前段のセル群の中から特定させる第２の特定工程と、
前記第２の特定工程によって特定されたセルから前記後段の特定セルまでの信号伝搬経路を、前記入力制約表現回路から削除させる削除工程と、
を前記コンピュータに実行させることを特徴とする付記１または２に記載のＬＳＩ解析プログラム。
【００９３】
（付記４）前記入力制約表現回路を用いて、前記解析対象回路の最大消費電力を算出させる算出工程を前記コンピュータに実行させることを特徴とする付記１〜３のいずれか一つに記載のＬＳＩ解析プログラム。
【００９４】
（付記５）付記１〜４に記載のＬＳＩ解析プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【００９５】
（付記６）組み合わせ回路と当該組み合わせ回路との入出力の値を保持するセル群とを有する解析対象回路の中から、前記組み合わせ回路を抽出する抽出手段と、
前記セル群と同一構成となる前段のセル群から、前記抽出手段によって得られた組み合わせ回路を複数サイクル直列につなげて、前記セル群と同一構成となる後段のセル群まで接続する展開手段と、
前記展開手段によって得られた前記解析対象回路への入力制約を表現する入力制約表現回路を出力する出力手段と、
を備えることを特徴とするＬＳＩ解析装置。
【００９６】
（付記７）前記展開手段は、
さらに、前記複数サイクル展開された組み合わせ回路群のうち連結しあう前段の組み合わせ回路と後段の組み合わせ回路との間に、前記前段の組み合わせ回路から前記後段の組み合わせ回路への入力を前記解析対象回路内の順序回路の初期値の入力と前記前段の組み合わせ回路からの出力とに切り替えるためのセレクタを挿入することを特徴とする付記６に記載のＬＳＩ解析装置。
【００９７】
（付記８）前記解析対象回路内の組み合わせ回路の中からクロック制御回路を検出する検出手段と、
前記検出手段によって検出されたクロック制御回路から前記解析対象回路のセル群まで逆追跡することにより、前記クロック制御回路に信号を供給するセルを前記解析対象回路のセル群の中から特定する第１の特定手段と、
前記後段のセル群のうち前記第１の特定手段によって特定されたセルと同一のセル（以下、「後段の特定セル」という）から前記前段のセル群まで前記入力制約表現回路を逆追跡することにより、前記後段の特定セルに信号を供給するセルを前記前段のセル群の中から特定する第２の特定手段と、
前記第２の特定手段によって特定されたセルから前記後段の特定セルまでの信号伝搬経路を、前記入力制約表現回路から削除する削除手段と、
を備えることを特徴とする付記６または７に記載のＬＳＩ解析装置。
【００９８】
（付記９）前記入力制約表現回路を用いて、前記解析対象回路の最大消費電力を算出させる算出手段を前記コンピュータに実行させることを特徴とする付記６〜８のいずれか一つに記載のＬＳＩ解析装置。
【００９９】
（付記１０）組み合わせ回路と当該組み合わせ回路との入出力の値を保持するセル群とを有する解析対象回路の中から、前記組み合わせ回路を抽出する抽出工程と、
前記セル群と同一構成となる前段のセル群から、前記抽出工程によって得られた組み合わせ回路を複数サイクル直列につなげて、前記セル群と同一構成となる後段のセル群まで接続する展開工程と、
前記展開工程によって得られた前記解析対象回路への入力制約を表現する入力制約表現回路を出力する出力工程と、
を含んだことを特徴とするＬＳＩ解析方法。
【０１００】
（付記１１）前記展開工程は、
さらに、前記複数サイクル展開された組み合わせ回路群のうち連結しあう前段の組み合わせ回路と後段の組み合わせ回路との間に、前記前段の組み合わせ回路から前記後段の組み合わせ回路への入力を前記解析対象回路内の順序回路の初期値の入力と前記前段の組み合わせ回路からの出力とに切り替えるためのセレクタを挿入することを特徴とする付記１０に記載のＬＳＩ解析方法。
【０１０１】
（付記１２）前記解析対象回路内の組み合わせ回路の中からクロック制御回路を検出する検出工程と、
前記検出工程によって検出されたクロック制御回路から前記解析対象回路のセル群まで逆追跡することにより、前記クロック制御回路に信号を供給するセルを前記解析対象回路のセル群の中から特定する第１の特定工程と、
前記後段のセル群のうち前記第１の特定工程によって特定されたセルと同一のセル（以下、「後段の特定セル」という）から前記前段のセル群まで前記入力制約表現回路を逆追跡することにより、前記後段の特定セルに信号を供給するセルを前記前段のセル群の中から特定する第２の特定工程と、
前記第２の特定工程によって特定されたセルから前記後段の特定セルまでの信号伝搬経路を、前記入力制約表現回路から削除する削除工程と、
を含んだことを特徴とする付記１０または１１に記載のＬＳＩ解析方法。
【０１０２】
（付記１３）前記入力制約表現回路を用いて、前記解析対象回路の最大消費電力を算出させる算出工程を前記コンピュータに実行させることを特徴とする付記１０〜１２のいずれか一つに記載のＬＳＩ解析方法。
【産業上の利用可能性】
【０１０３】
以上のように、本発明にかかるＬＳＩ解析プログラム、該プログラムを記録した記録媒体、ＬＳＩ解析装置、およびＬＳＩ解析方法は、たとえば、ＣＭＯＳ  ＬＳＩに有用である。
【図面の簡単な説明】
【０１０４】
【図１】この発明の実施の形態にかかるＬＳＩ解析装置のハードウェア構成を示すブロック図である。
【図２】解析対象回路を模式的に示した説明図である。
【図３】この発明の実施の形態にかかるＬＳＩ解析装置の機能的構成を示すブロック図である。
【図４】展開部による展開処理を示す説明図である。
【図５】初期状態を考慮した入力制約表現回路を示す説明図である。
【図６】解析対象回路のクロックツリーを示す説明図である。
【図７】第１の特定部による特定処理を示す説明図である。
【図８】第２の特定部による特定処理を示す説明図である。
【図９】削除部による削除処理を示す説明図である。
【図１０】この発明の実施の形態にかかるＬＳＩ解析処理手順（その１）を示すフローチャートである。
【図１１】この発明の実施の形態にかかるＬＳＩ解析処理手順（その２）を示すフローチャートである。
【図１２】ステップＳ１１０３およびステップＳ１１０４における逆追跡処理手順を示すフローチャートである。
【図１３】この発明の実施の形態にかかるＬＳＩ解析処理手順（その３）を示すフローチャートである。
【図１４】最大動作率を見積もる第１の手法を示す説明図である。
【図１５】最大動作率を見積もる第２の手法を示す説明図である。
【図１６】第３の手法を適用した第１の手法を示す説明図である。
【図１７】第３の手法を適用した第２の手法を示す説明図である。
【図１８】現実にはあり得ない入力例を示す回路図である。
【符号の説明】
【０１０５】
１００  ＬＳＩ解析装置
２００  解析対象回路
２０１  セル群
２０２  組み合わせ回路
３０１  抽出部
３０２  展開部
３０３  出力部
３０４  検出部
３０５  第１の特定部
３０６  第２の特定部
３０７  削除部
３０８  算出部
４００，５００，９０１  入力制約表現回路
【図１】
2008197883.tif 000003
【図２】
2008197883.tif 000004
【図３】
2008197883.tif 000005
【図４】
2008197883.tif 000006
【図５】
2008197883.tif 000007
【図６】
2008197883.tif 000008
【図７】
2008197883.tif 000009
【図８】
2008197883.tif 000010
【図９】
2008197883.tif 000011
【図１０】
2008197883.tif 000012
【図１１】
2008197883.tif 000013
【図１２】
2008197883.tif 000014
【図１３】
2008197883.tif 000015
【図１４】
2008197883.tif 000016
【図１５】
2008197883.tif 000017
【図１６】
2008197883.tif 000018
【図１７】
2008197883.tif 000019
【図１８】
2008197883.tif 000020