(57)【要約】【課題】意図的に配置した冗長な単位論理回路を検出する冗長論理回路検出方法を提供する。【解決手段】記憶部１４は、論理回路の論理設計情報に基づいて合成された複数のレジスタを示すレジスタ情報と、複数のレジスタを含む論理回路についての論理シミュレーションの実行結果である波形データと、波形データの比較の条件を定める制約条件とを格納する。パターンマッチング部１５は、制約条件に従って、第１のレジスタについての波形データのシーケンスと一致する波形データのシーケンスを有する、第２のレジスタを検出する。出力部１６は、パターンマッチング部１５により検出された第１及び第２のレジスタを冗長回路情報として出力する。【選択図】図１
2011054070.tif 000002
【特許請求の範囲】
【請求項１】
記憶部が、論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データと、前記波形データの比較の条件を定める制約条件とを格納し、
パターンマッチング部が、前記制約条件に従って、前記複数の単位論理回路に含まれる第１の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記複数の単位論理回路に含まれる第２の単位論理回路を検出し、
出力部が、前記パターンマッチング部により検出された前記第１の単位論理回路と第２の単位論理回路とを冗長回路情報として出力する
ことを特徴とする冗長論理回路検出方法。
【請求項２】
単位論理回路情報入力部が、前記単位論理回路情報を前記記憶部に入力し、
波形データ入力部が、前記波形データを前記記憶部に入力し、
制約条件入力部が、前記制約条件を前記記憶部に入力する
ことを特徴とする請求項１に記載の冗長論理回路検出方法。
【請求項３】
前記単位論理回路情報が、前記論理回路の論理設計情報に基づいて、論理合成ツールにより合成された情報であり、
前記波形データが、前記論理回路の論理設計情報についての論理シミュレータによる論理シミュレーションの実行結果である
ことを特徴とする請求項２に記載の冗長論理回路検出方法。
【請求項４】
前記制約条件が、前記第１の単位論理回路についての前記波形データのシーケンスにおいて、前記第２の単位論理回路の検出に用いられる当該区間の開始点、終了点及び長さを定め、
前記パターンマッチング部が、前記第１の単位論理回路についての前記波形データのシーケンスにおける前記制約条件により指定された区間を、前記複数の単位論理回路に含まれる前記第１の単位論理回路以外の単位論理回路についての前記波形データのシーケンスと比較することにより、前記第２の単位論理回路を検出する
ことを特徴とする請求項１に記載の冗長論理回路検出方法。
【請求項５】
前記制約条件が、前記第１の単位論理回路についての前記波形データのシーケンスと前記第２の単位論理回路についての前記波形データのシーケンスとが一致する割合を定め、
前記パターンマッチング部が、前記第１の単位論理回路についての前記波形データのシーケンスと前記割合より多く一致するシーケンスを有する単位論理回路を、前記第２の単位論理回路として検出する
ことを特徴とする請求項１に記載の冗長論理回路検出方法。
【請求項６】
前記制約条件が、前記第１の単位論理回路についての前記波形データのシーケンスにおいて、ある値が連続する連続区間を、前記複数の単位論理回路に含まれる前記第１の単位論理回路以外の単位論理回路についての前記波形データのシーケンスとの比較から除外する第１の除外区間とすることを定め、
前記パターンマッチング部が、前記第１の単位論理回路についての前記波形データのシーケンスから前記第１の除外区間を除外した区間を、前記複数の単位論理回路に含まれる前記第１の単位論理回路以外の単位論理回路についての前記波形データのシーケンスと比較することにより、前記第２の単位論理回路を検出する
ことを特徴とする請求項１に記載の冗長論理回路検出方法。
【請求項７】
前記制約条件が、前記複数の単位論理回路に含まれる前記第１の単位論理回路以外の単位論理回路についての前記波形データのシーケンスにおいて、ある値が連続する連続区間を、前記第１の単位論理回路についての前記波形データのシーケンスとの比較から除外する第２の除外区間とすることを定め、
前記パターンマッチング部が、前記複数の単位論理回路に含まれる前記第１の単位論理回路以外の単位論理回路についての前記波形データのシーケンスから前記第２の除外区間を除外した区間を、前記第１の単位論理回路についての前記波形データのシーケンスと比較することにより、前記第２の単位論理回路を検出する
ことを特徴とする請求項１に記載の冗長論理回路検出方法。
【請求項８】
前記制約条件が、前記第１の単位論理回路についての前記波形データのシーケンスとの差分が一定である波形データのシーケンスを有する単位論理回路を、前記第２の単位論理回路として検出することを定め、
前記パターンマッチング部が、前記第１の単位論理回路についての前記波形データのシーケンスとの差分が一定である波形データのシーケンスを有する単位論理回路を、前記第２の単位論理回路として検出する
ことを特徴とする請求項１に記載の冗長論理回路検出方法。
【請求項９】
記憶部が、論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データとを格納し、
繰返しシーケンス検出部が、前記複数の単位論理回路に含まれる第１の単位論理回路についての前記波形データのシーケンスにおいて、同一のシーケンスが繰り返される繰返し区間を検出し、
パターンマッチング部が、前記繰返しシーケンス検出部により検出された前記繰返し区間を前記複数の単位論理回路に含まれる第２の単位論理回路の検出に用いられる区間の開始点、終了点及び長さとして用いて、前記第１の単位論理回路についての前記波形データのシーケンスにおける前記繰返し区間を前記第１の単位論理回路以外の単位論理回路についての前記波形データのシーケンスと比較して、前記第１の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記第２の単位論理回路を検出し、
出力部が、前記パターンマッチング部により検出された前記第１の単位論理回路と第２の単位論理回路とを冗長回路情報として出力する
ことを特徴とする冗長論理回路検出方法。
【請求項１０】
論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データと、前記波形データの比較の条件を定める制約条件とを格納する記憶部と、
前記制約条件に従って、前記複数の単位論理回路に含まれる第１の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記複数の単位論理回路に含まれる第２の単位論理回路を検出するパターンマッチング部と、
前記パターンマッチング部により検出された前記第１の単位論理回路と第２の単位論理回路とを冗長回路情報として出力する出力部とを含む
ことを特徴とする冗長論理回路検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長論理回路検出方法及び冗長論理回路検出装置に関する。
【背景技術】
【０００２】
大規模な論理回路の設計においては、論理回路の論理設計情報に基づいて、冗長な、換言すれば、重複する論理回路が共有化される。これにより、論理回路を減らして、ハードウェア量を減らすことが行われる。
【０００３】
例えば、類似部分回路抽出を用いた論理合成方法及び論理合成装置において、ハードウェア記述言語を入力し、入力した論理情報から共通論理を抽出し、合成性能を考慮しながら共通論理を下位階層として共通参照する形態に変換することが提案されている。これは、演算器の共有化を目的として、論理式が共通であることを検出するものである。
【０００４】
また、回路変換方法及び回路設計支援装置及び記録媒体において、入力された回路の記述から、制御条件及びデータ演算部の対応関係を抽出し、データ演算部を判定した結果に基づき制御条件及びデータ演算部を統合することが提案されている。
【０００５】
また、論理シミュレーション装置及び論理回路情報作成方法において、入力マクロ論理記述情報から入力対出力の条件を示す条件文を検索し、検索した条件文に基づき状態推移情報を追加した中間論理記述情報を生成し、入力マクロ論理記述情報等の論理シミュレーションを実行し状態値情報を出力し、状態値情報を基に冗長機能対応の固定条件文を判定抽出し、この判定結果に基き入力マクロ論理記述情報から固定条件文を削除し新論理記述を生成することが提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−０２１２９１号公報
【特許文献２】特開平１１−８５８３２号公報
【特許文献３】特開平９−３４９２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述した、入力した論理情報から共通論理を抽出し、共通論理を下位階層として共通参照する形態に変換する方法は、論理回路の設計者が意図的に配置した冗長なレジスタやカウンタ等の論理回路を検出することも目的としたものではない。このため、前記方法によっては、設計者が意図的に配置した冗長なレジスタやカウンタ等の論理回路が、共通論理として検出されずに、論理回路に残ってしまう。このような、冗長なレジスタやカウンタ等の論理回路は、半導体集積回路（ＬＳＩ）の回路面積、消費電力、検証の容易性等において種々の問題を発生させる原因となる。
【０００８】
本発明は、意図的に配置された冗長な論理回路を検出する冗長論理回路検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
開示された冗長論理回路検出方法において、記憶部が、論理回路の論理設計情報に基づいて合成された複数の単位論理回路を示す単位論理回路情報と、前記複数の単位論理回路を含む前記論理回路についての論理シミュレーションの実行結果である波形データと、前記波形データの比較の条件を定める制約条件とを格納する。パターンマッチング部が、前記制約条件に従って、前記複数の単位論理回路に含まれる第１の単位論理回路についての前記波形データのシーケンスと一致する波形データのシーケンスを有する、前記複数の単位論理回路に含まれる第２の単位論理回路を検出する。出力部が、前記パターンマッチング部により検出された前記第１の単位論理回路と第２の単位論理回路とを冗長回路情報として出力する。
【発明の効果】
【００１０】
開示された冗長論理回路検出方法によれば、設計者が意図的に配置した冗長なレジスタやカウンタ等の論理回路を検出することができ、これにより、設計者は、例えば半導体集積回路の回路面積、消費電力、検証の容易性等における種々の問題を回避することができる。
【図面の簡単な説明】
【００１１】
【図１】冗長論理回路検出装置の構成の一例を示す図である。
【図２】冗長論理回路検出装置のハードウェア構成の一例を示す図である。
【図３】冗長論理回路検出処理フローを示す図である。
【図４】冗長論理回路検出処理フローを示す図である。
【図５】冗長レジスタの検出処理の一例を説明する図である。
【図６】冗長論理回路の部分一致の検出処理フローを示す図である。
【図７】冗長論理回路の部分一致の検出処理フローを示す図である。
【図８】冗長レジスタの部分一致の検出処理の一例を説明する図である。
【図９】冗長レジスタの部分一致の検出処理の他の一例を説明する図である。
【図１０】冗長カウンタの検出処理の一例を説明する図である。
【図１１】冗長論理回路検出装置の構成の他の一例を示す図である。
【図１２】冗長レジスタの繰り返しシーケンス検出処理の一例を説明する図である。
【発明を実施するための形態】
【００１２】
図１は、冗長論理回路検出装置の構成の一例を示す図である。
【００１３】
図１の冗長論理回路検出装置１は、例えば、冗長なレジスタを検出する冗長レジスタ検出装置である。従って、検出の対象となる冗長回路である単位論理回路は、レジスタである。このために、冗長論理回路検出装置１は、レジスタ情報入力部１１、波形データ入力部１２、制約条件入力部１３、記憶部１４、パターンマッチング部１５、出力部１６、レジスタ情報格納部１１１、波形データ格納部１２１、制約条件格納部１３１、検出結果格納部１６１を含む。
【００１４】
レジスタ情報入力部１１は、レジスタ情報格納部１１１に格納されたレジスタ情報を読み出して、記憶部１４に入力、換言すれば、格納する。レジスタ情報は、論理回路の論理設計情報に基づいて合成された複数のレジスタ、具体的には、複数のレジスタの名前を示す。
【００１５】
レジスタ情報格納部１１１は、予め、レジスタ情報を格納する。レジスタ情報は、論理回路の論理設計情報に基づいて、論理合成ツールにより合成された情報であり、例えば、論理合成ツール（コンパイラ）から入力される。レジスタ情報は、対象とする論理回路における、レジスタ毎の名称（レジスタ名）を含む。例えば、レジスタ名は、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）の記述に基づいて生成される。具体的には、レジスタ名は、ＲＴＬをコンパイルすることにより得られる。
【００１６】
なお、ＲＴＬの記述は、周知の論理合成ソフトウェアツールにより論理ゲートを組合せた論理回路に変換される。変換された論理回路には、ユニークな名前が付与される。例えば、レジスタにはレジスタ名が付与される。冗長論理回路検出装置１では、その際に用いられる、レジスタ名を利用する。
【００１７】
波形データ入力部１２は、波形データ格納部１２１に格納された波形データを読み出して、記憶部１４に入力（格納）する。波形データは、複数のレジスタを含む前記論理回路についての論理シミュレーションの実行結果である。
【００１８】
具体的には、波形データとは、回路の入出力ポートと、回路のレジスタや信号の値（論理値）の時間遷移を記録したものである。図１のパターンマッチング部１５は、波形データにおいて、レジスタの値（出力値）の時間遷移を記録した部分を用いる。冗長回路とは、ある１個の回路と他の回路とが共通の（同一の）シーケンスを有する場合における、それらの回路を言う。シーケンスとは、波形データにおいて、データの値、及び、値を取る順序（データパターン）が同一であることをいう。
【００１９】
波形データ格納部１２１は、予め、波形データを格納する。波形データは、論理回路の論理設計情報についての論理シミュレータによる論理シミュレーションの実行結果であり、例えば論理シミュレータから入力される。具体的には、波形データは、論理回路への入力、当該入力に対応する論理回路内の複数のレジスタを含む回路の入出力に関する波形データが予め格納される。例えば、論理シミュレータによりトレースされた論理回路内の波形データが格納される。
【００２０】
制約条件入力部１３は、制約条件格納部１３１に格納された制約条件を読み出して、記憶部１４に格納する。制約条件とは、波形データの比較の条件を定める条件、換言すれば、パターンマッチング部１５におけるパターンマッチング処理の条件である。
【００２１】
制約条件格納部１３１は、予め、制約条件を格納する。制約条件は、前記条件として、複数のレジスタに含まれるあるレジスタ（以下、第１のレジスタ）についての波形データのシーケンスにおいて、複数のレジスタに含まれる第１のレジスタ以外のレジスタ（以下、第２のレジスタ）の検出に用いられる当該区間の開始点、終了点及び長さを定める。開始点及び終了点は、例えば当該シーケンスにおけるクロックに基づいて定められる。長さは、当該シーケンスにおける開始点から終了点までの区間（以下、スループット長）である。制約条件は、例えば利用者により、予め、制約条件格納部１３１に入力される。
【００２２】
記憶部１４は、前述したように、レジスタ情報入力部１１から入力されたレジスタ情報、波形データ入力部１２から入力された波形データ、及び制約条件入力部１３から入力された制約条件を格納する。
【００２３】
パターンマッチング部１５は、記憶部１４に格納されたレジスタ情報、波形データ、制約条件を参照して、レジスタ情報に含まれる複数のレジスタの波形データのシーケンスについてパターンマッチングを実行する。複数のレジスタの波形データのシーケンスが一致した場合には、その結果（検出結果）を記憶部１４に記憶し、出力部１６に通知する。
【００２４】
具体的には、パターンマッチング部１５は、制約条件に従って、第１のレジスタについての波形データのシーケンスと一致する波形データのシーケンスを有する、第２のレジスタを検出する。第２のレジスタは、複数であっても良い。このために、パターンマッチング部１５は、第１のレジスタについての波形データのシーケンスにおける制約条件により指定された区間を、第２のレジスタについての波形データのシーケンスと比較する。
【００２５】
第１のレジスタは、レジスタ情報に含まれる複数のレジスタから選択される。この選択に基づいて、波形データに含まれる当該第１のレジスタの波形データのシーケンスが読み出される。第２のレジスタは、レジスタ情報に含まれる複数のレジスタにおいて第１のレジスタを除いたレジスタから選択される。この選択に基づいて、波形データに含まれる当該第２のレジスタの波形データのシーケンスが読み出される。
【００２６】
パターンマッチング部１５は、読み出した第１のレジスタのシーケンスと、第２のレジスタのシーケンスとを比較して、共通の（同一の）シーケンスを検出する。換言すれば、パターンマッチング部１５は、比較すべき波形データのシーケンスの時間軸方向における、当該第１及び第２のレジスタの出力ポートのビット位置に基づいて、出力パターンがマッチングする否かを調べる。マッチングする場合、パターンマッチング部１５は、共通のシーケンスであると判断する。パターンマッチング部１５によるパターンマッチング処理については、図３及び図４を参照して後述する。
【００２７】
出力部１６は、パターンマッチング部１５により検出された第１のレジスタと第２のレジスタとの組を、冗長回路情報として出力する。このために、出力部１６は、例えばパターンマッチング部１５により検出された第１のレジスタと第２のレジスタとの組を、記憶部１４から読み出して、冗長回路情報として検出結果格納部１６１へ格納する。
【００２８】
論理回路の設計者は、以上の処理により得られ、検出結果格納部１６１に格納された冗長回路情報を参照する。これにより、設計者は、論理回路における冗長回路の有無、特に、冗長回路として検出されたレジスタの組合せを知ることができる。
【００２９】
この後、例えば、設計者は、論理回路の設計において、他の設計者により意図的に配置された冗長なレジスタを削減することができる。この結果、半導体集積回路を小型化することができ、消費電力を削減することができる。更に、論理回路の論理検証を容易にすることができる、Ｃ記述対ＲＴＬ等の高位等価性検証技術を用いた等価性検証を成功させることができる。
【００３０】
図２は、冗長論理回路検出装置１のハードウェア構成の一例を示す図である。
【００３１】
冗長論理回路検出装置１であるコンピュータは、ＣＰＵ２１と、ＲＡＭ２２と、ＲＯＭ２３と、ディスプレイ２４と、磁気ディスク装置（ＨＤＤ）２５と、入出力装置（Ｉ／Ｏ）２６と、これらの間を接続するバス２７とを含む。
【００３２】
例えば、レジスタ情報入力部１１、波形データ入力部１２、制約条件入力部１３、パターンマッチング部１５、出力部１６は、ＣＰＵ２１と、ＲＡＭ２２に存在しＣＰＵ２１上で実行される各処理プログラムとにより実現される。ＲＡＭ２２は、例えばＣＰＵ２１が使用する主記憶である。また、記憶部１４はＲＡＭ２２に設けられる。レジスタ情報格納部１１１、波形データ格納部１２１、制約条件格納部１３１、検出結果格納部１６１は、ＨＤＤ２５に設けられる。利用者は、例えばＩ／Ｏ２６及びディスプレイ２４を用いて、制約条件を制約条件格納部１３１に入力する。
【００３３】
次に、図３及び図４を参照して、冗長論理回路検出装置１のパターンマッチング部１５が実行する冗長レジスタの検出処理について説明する。図３及び図４は、一体となってパターンマッチング部１５が実行する冗長論理回路検出処理フローを示す。
【００３４】
パターンマッチング部１５は、パターンマッチング処理の開始に先立って、制約条件を記憶部１４から読み出す。この後、記憶部１４から複数のレジスタを含むレジスタ情報を読み出し（ステップＳ１）、読み出したレジスタ情報から、１個の第１のレジスタｒｅｇＡを選択する（ステップＳ２）。
【００３５】
パターンマッチング部１５は、記憶部１４に格納されたレジスタｒｅｇＡの波形データのシーケンス、換言すれば、波形の先頭からスループット長までの波形（波形Ｗ）を抽出する（ステップＳ３）。
【００３６】
なお、ステップＳ３においては、レジスタｒｅｇＡの波形データの波形の先頭からスループット長の波形Ｗを抽出するが、波形Ｗは、これに限られない。例えば、波形Ｗは、レジスタｒｅｇＡの波形データの波形の先頭以外から抽出するようにしても良い。
【００３７】
パターンマッチング部１５は、読み出したレジスタ情報に含まれる複数のレジスタにおいて、レジスタｒｅｇＡをスキップ（除外）した上で、１個の第２のレジスタｒｅｇＢを選択する（ステップＳ４）。この時、パターンマッチング部１５は、実際には、レジスタｒｅｇＡのみでなく、レジスタｒｅｇＡのビット幅より大きいビット幅を有するレジスタも、レジスタｒｅｇＢの選択の対象から除外する。
【００３８】
これは、この場合、ビット幅の小さいレジスタｒｅｇＡの波形が、ビット幅の大きいレジスタｒｅｇＢの波形に一致することはないからである。逆に、後述するように、ビット幅の大きいレジスタｒｅｇＢの波形は、ビット幅の小さいレジスタｒｅｇＡの波形と部分的に一致する場合がある。従って、後述するように、この場合、ビット幅の小さいレジスタｒｅｇＡの波形は、ビット幅の大きいレジスタｒｅｇＢの波形と部分的に一致するか否かが調べられる。
【００３９】
パターンマッチング部１５は、記憶部１４に格納された制約条件に基づいて、「ｎサイクル」を決定する（ステップＳ５）。ここで、ｎの初期値は「０」である。また、サイクルは、論理回路に供給される動作クロックのサイクルである。これにより、パターンマッチング部１５は、レジスタｒｅｇＢの波形データの先頭即ち１（＝０＋１）サイクル目からサイクル数を「＋１」だけインクリメントしてスループット長に達するまでの間、パターンマッチング処理を繰り返す。
【００４０】
パターンマッチング部１５は、レジスタｒｅｇＢの波形データのｎサイクル目と、波形Ｗとのパターンマッチング処理を実施する（ステップＳ６）。換言すれば、パターンマッチング部１５は、レジスタｒｅｇＢの波形データのｎサイクル目の値と波形Ｗの各サイクルの値とを、波形Ｗの先頭（１サイクル目）から順に比較する。これにより、波形ＷにおいてレジスタｒｅｇＢの波形データのｎサイクル目の値と一致するサイクル（一致サイクル）が検出される。
【００４１】
この後、パターンマッチング部１５は、レジスタｒｅｇＢの波形データのｎサイクル目の値と波形Ｗの各サイクルの値とが一致したか否かを調べる（ステップＳ７）。これにより、両者の一致する区間の先頭を検出することができる。
【００４２】
レジスタｒｅｇＢの波形のｎサイクル目と波形Ｗとのパターンが一致しない場合（ステップＳ７  Ｎｏ）、パターンマッチング部１５は、ｎサイクルの実行によりスループット長までのパターンマッチングが終了したか否かを判断する（ステップＳ１１）。
【００４３】
スループット長までのパターンマッチングが終了した場合（ステップＳ１１  Ｙｅｓ）、パターンマッチング部１５は、レジスタ情報における第２レジスタｒｅｇＢの数の分だけレジスタｒｅｇＢが選択されたか（レジスタｒｅｇＢのループが終了したか）否かを判断する（ステップＳ１２）。
【００４４】
第２レジスタｒｅｇＢの数の分だけレジスタｒｅｇＢが選択された場合（ステップＳ１２  Ｙｅｓ）、パターンマッチング部１５は、更に、レジスタ情報における第１レジスタｒｅｇＡの数の分だけレジスタｒｅｇＡが選択されたか（レジスタｒｅｇＡのループが終了したか）否かを判断する。第１レジスタｒｅｇＡの数の分だけレジスタｒｅｇＡが選択された場合（ステップＳ１３  Ｙｅｓ）、パターンマッチング部１５は、パターンマッチング処理を終了する。
【００４５】
一方、レジスタｒｅｇＢの波形のｎサイクル目の値と波形Ｗの値が一致した場合（ステップＳ７  Ｙｅｓ）、パターンマッチング部１５は、一致サイクル以降において、レジスタｒｅｇＡの波形ＷとレジスタｒｅｇＢの波形とについて、パターンマッチング処理を実施する（ステップＳ８）。
【００４６】
この後、パターンマッチング部１５は、レジスタｒｅｇＡの波形ＷのシーケンスとレジスタｒｅｇＢの波形のシーケンスとが一致したか否かを調べる（ステップＳ９）。これにより、波形Ｗのシーケンスと一致するシーケンスを有するレジスタｒｅｇＢを検出することができる。
【００４７】
レジスタｒｅｇＡの波形ＷのシーケンスとレジスタｒｅｇＢの波形のシーケンスとが一致しない場合（ステップＳ９  Ｎｏ）、ステップＳ１１が実行される。レジスタｒｅｇＡの波形ＷのシーケンスとレジスタｒｅｇＢの波形のシーケンスとが一致した場合（ステップＳ９  Ｙｅｓ）、パターンマッチング部１５は、レジスタｒｅｇＡ及びレジスタｒｅｇＢの組を、冗長回路情報として、記憶部１４に格納し（ステップＳ１０）、ステップＳ１１を実行する。
【００４８】
ステップＳ１１において、ｎサイクルがスループット長の区間まで終了していない場合（ステップＳ１１  Ｎｏ）、ステップＳ５が実行される。
【００４９】
ステップＳ１２において、第２レジスタｒｅｇＢの数の分だけレジスタｒｅｇＢが選択されていない場合（ステップＳ１２  Ｎｏ）、ステップＳ４が実行される。
【００５０】
ステップＳ１３において、第１レジスタｒｅｇＡの数の分だけレジスタｒｅｇＡが選択されていない場合（ステップＳ１３  Ｎｏ）、ステップＳ２が実行される。
【００５１】
次に、図５を参照して、冗長論理回路の検出処理について具体的に説明する。図５は、冗長レジスタの検出処理の一例を説明する図である。
【００５２】
図５において、第１のレジスタｒｅｇＡと、第２のレジスタｒｅｇＢは、共に、ビット幅が「８」である。図５に示すように、第１のレジスタｒｅｇＡの波形データは、８ビットデータ「８’ｈＥ４」「８’ｈ２Ａ」「８’ｈ９７」のように変化するシーケンスを有する。また、第２のレジスタｒｅｇＢの波形データが、例えば、８ビットデータ「８’ｈＥ４」「８’ｈ２Ａ」のように変化するシーケンスを有する。
【００５３】
なお、例えば「８’ｈＥ４」は、１６進数で「Ｅ４」であることを示す。他の８ビットでも同様である。また、制約条件として、スループット長が２クロック分の周期として定められているものとする。従って、第１の論理回路の波形Ｗに相当するのは、「８’ｈＥ４」「８’ｈ２Ａ」のシーケンスである。
【００５４】
パターンマッチング部１５は、スループット長に対応するレジスタｒｅｇＡの波形データのシーケンスを、レジスタｒｅｇＢの波形データのシーケンスと比較する。これにより、レジスタｒｅｇＢの波形データの２サイクル目の８ビットデータ「８’ｈＥ４」が、スループット長に対応するレジスタｒｅｇＡの波形データの先頭の８ビットデータ「８’ｈＥ４」と一致する。換言すれば、値「８’ｈＥ４」を取るサイクルが、一致サイクルである。
【００５５】
一致サイクルが判明したので、パターンマッチング部１５は、スループット長に対応するレジスタｒｅｇＡの波形データと、レジスタｒｅｇＢの波形データの２サイクル目以降とを比較する。この場合、図５に示すように、両者が一致する。これにより、レジスタｒｅｇＡとレジスタｒｅｇＢとの組が、冗長回路として検出される。
【００５６】
なお、図５において、開始点は、例えば、スループット長においてパターンマッチングを開始するタイミングを示し、スループット長の先頭に一致する。スループット長は、クロックｃｌｏｃｋを基準とする時間により表され、波形データの長さに相当する。終了点は、例えばスループット長においてパターンマッチングを終了するタイミングを示し、スループット長の最後に一致する。
【００５７】
パターンマッチング部１５が実行する冗長レジスタの検出処理は、以上の例に限られない。例えば、以下に述べるように、比較対象である２個のレジスタの波形データが、部分的にしか一致していない場合でも、当該２個のレジスタを冗長レジスタとして検出するようにしても良い。
【００５８】
以下、図６及び図７を参照して、冗長論理回路検出装置１のパターンマッチング部１５が実行する部分一致の冗長レジスタの検出処理について説明する。図６及び図７は、一体となって冗長回路の部分一致の冗長検出処理フローを示す。
【００５９】
パターンマッチング部１５は、図３のステップＳ１〜Ｓ６と同様にして、ステップＳ１１〜Ｓ１６を実行する。
【００６０】
次に、パターンマッチング部１５は、比較対象の２個のレジスタｒｅｇＡ及びレジスタｒｅｇＢのビット幅の差分に基づいて、処理を（ビット幅の差分＋１）回だけループさせるためのパラメータを設定する（ステップＳ１７）。前記パラメータの初期値は、例えば（ビット幅の差分＋１）とされる。
【００６１】
次に、パターンマッチング部１５は、図３のステップＳ７〜Ｓ１０と同様にして、ステップＳ１８〜Ｓ１１１を実行する。
【００６２】
次に、パターンマッチング部１５は、（ビット幅の差分＋１）回のループが終了したか否かを調べる（ステップＳ１１２）。例えば、パターンマッチング部１５は、前記パラメータを「−１」だけデクリメントして、その値が「０」か否かを調べる。（ビット幅の差分＋１）回のループが終了していない場合（ステップＳ１１２  Ｎｏ）、パターンマッチング部１５は、ステップＳ１７を繰り返す。（ビット幅の差分＋１）回のループが終了した場合（ステップＳ１１２  Ｙｅｓ）、パターンマッチング部１５は、図４のステップＳ１１〜Ｓ１３と同様にして、ステップＳ１１３〜Ｓ１１５を実行する。
【００６３】
図８は、冗長レジスタの部分一致の検出処理の一例を説明する図である。
【００６４】
図８において、レジスタｒｅｇＡはビット幅が「１」のレジスタであり、レジスタｒｅｇＢはビット幅が「２」のレジスタである。なお、前述したように、図３及び図４の処理においては、パターンマッチング部１５は、レジスタｒｅｇＡのビット幅より大きいビット幅を有するレジスタも、レジスタｒｅｇＢの選択の対象から除外する。従って、図８の例は、レジスタｒｅｇＡのビット幅より大きいビット幅を有するレジスタも、レジスタｒｅｇＢの選択の対象から除外しない例である。
【００６５】
この場合、パターンマッチング部１５は、波形Ｗに相当するレジスタｒｅｇＡのシーケンスと、レジスタｒｅｇＢの波形でパターンマッチングを行う。具体的には、レジスタｒｅｇＡのシーケンスと、レジスタｒｅｇＢの０ビットの信号ｒｅｇＢ［０］及び１ビットの信号ｒｅｇＢ［１］の各々とを比較する。この場合、図８に示すように、レジスタｒｅｇＡのシーケンスは、レジスタｒｅｇＢ［０］のシーケンスと一致する。これにより、レジスタｒｅｇＡと、レジスタｒｅｇＢ［０］との組が、冗長回路と推定される冗長レジスタの組として、記憶部１４に記憶される。
【００６６】
図５及び図８に示す冗長レジスタの検出処理において、レジスタのビット幅ではなく、第１のレジスタｒｅｇＡのシーケンスと、第２のレジスタｒｅｇＢのシーケンスが完全に一致していなくても、冗長レジスタとして検出するようにしても良い。
【００６７】
この場合、例えば、制約条件は、第１のレジスタｒｅｇＡについての波形データのシーケンスと、第２のレジスタｒｅｇＢについての波形データのシーケンスとが一致する割合を定める。この割合は、経験的に定めることができ、予め設定される。パターンマッチング部１５は、第１のレジスタｒｅｇＡについての波形データのシーケンスと割合より多く一致するシーケンスを有するレジスタを、第２のレジスタｒｅｇＢとして検出する。
【００６８】
例えば、図３及び図４の処理のステップＳ８において一致点を検出した後、レジスタｒｅｇＡの波形データのシーケンスと、レジスタｒｅｇＢの波形データのシーケンスが不一致であっても、前記割合以上一致していれば、冗長回路と推定されるレジスタの組として、検出する。これにより、波形データのシーケンスが、部分的に一致するレジスタを、冗長レジスタとして検出することができる。
【００６９】
図９は、冗長レジスタの部分一致の検出処理の他の一例を説明する図である。
【００７０】
図５及び図８に示す冗長レジスタの検出処理において、第１のレジスタｒｅｇＡのシーケンスがある値が連続する連続区間を含む場合、当該連続区間を第２のレジスタｒｅｇＢのシーケンスとの比較に用いないようにしても良い。
【００７１】
図９に示すように、第１のレジスタｒｅｇＡについての波形データのシーケンスが、ある値が連続する連続区間を含む場合がある。例えば、１個のスループットにおいて、８ビットデータ「８’ｈ００」が２個連続する場合がある。この連続区間においては、第１のレジスタｒｅｇＡの波形データは、固定値となる。
【００７２】
この場合、例えば、制約条件は、第１のレジスタｒｅｇＡについての波形データのシーケンスにおいて、連続区間を、複数のレジスタに含まれる第１のレジスタｒｅｇＡ以外のレジスタについての波形データのシーケンスとの比較から除外する第１の除外区間とすることを定める。パターンマッチング部１５は、第１のレジスタｒｅｇＡについての波形データのシーケンスから第１の除外区間を除外した区間を、複数のレジスタに含まれる第１のレジスタｒｅｇＡ以外のレジスタについての波形データのシーケンスと比較する。これにより、レジスタｒｅｇＡの波形データにおけるスループットから８ビットデータ「８’ｈ００」を除いた８ビットデータ「８’ｈＥ４」及び「８’ｈ２Ａ」が、レジスタｒｅｇＢの波形データと一致する。この結果、第２のレジスタｒｅｇＢが検出される。
【００７３】
例えば比較すべき２つのレジスタが、固定値を保持し続けている場合は、機能的に全く関係がないレジスタであっても、双方の波形データが疑似的に一致してしまう。図９の例によれば、固定値が継続することによる疑似的な一致を検出しないようにすることができる。
【００７４】
なお、レジスタｒｅｇＡのスループットにおけるシーケンスが全て同一値（固定値）である場合には、レジスタｒｅｇＡの処理をスキップして、次のレジスタのパターンマッチング処理を実行する。
【００７５】
図９は第１のレジスタｒｅｇＡのシーケンスが連続区間を含む場合の例であるが、第２のレジスタｒｅｇＢのシーケンスが連続区間を含む場合でも、当該連続区間を第１のレジスタｒｅｇＡとの比較に用いないようにしても良い。
【００７６】
この場合、例えば、制約条件は、複数のレジスタに含まれる第１のレジスタｒｅｇＡ以外のレジスタについての波形データのシーケンスにおいて、連続区間を、第１のレジスタｒｅｇＡについての波形データのシーケンスとの比較から除外する第２の除外区間とすることを定める。パターンマッチング部１５は、複数のレジスタに含まれる第１のレジスタｒｅｇＡ以外のレジスタについての波形データのシーケンスから第２の除外区間を除外した区間を、第１のレジスタｒｅｇＡについての波形データのシーケンスと比較する。これにより、図９の例と同様に、第２のレジスタを検出することができる。
【００７７】
以上の例は冗長レジスタの検出処理の例であるが、冗長論理回路は、レジスタに限られない。例えば、冗長論理回路として、冗長なカウンタを検出することもできる。
【００７８】
図１０は、冗長カウンタの検出処理の一例を示す。
【００７９】
図１０において、回路３は、検出しようとしている冗長回路、換言すれば、複数のカウンタ３１を含む。また、回路３は、複数の後段回路３２を含む。複数のカウンタ３１において、第１の論理回路として選択されたカウンタをカウンタ３１Ａと表し、第２の論理回路として選択されたカウンタをカウンタ３１Ｂと表し、他のカウンタは省略する。
【００８０】
カウンタ３１Ａとカウンタ３１Ｂは、相互に冗長な回路である。後段回路３２Ａは、カウンタ３１Ａの出力に接続された回路であり、後段回路３２Ｂは、カウンタ３１Ｂの出力に接続された回路である。
【００８１】
カウンタ３１Ａとカウンタ３１Ｂには、動作クロックとしてクロックｃｌｋが入力され、入力信号ｅｎとして信号Ｓａｍｐｌｅが入力され、リセット信号ｒｓｔとして信号Ｆｒａｍｅが入力される。信号Ｓａｍｐｌｅは、「０，１，０，１，・・・」を繰り返す信号である。信号Ｆｒａｍｅは、信号Ｓａｍｐｌｅの２５６周期毎に、信号Ｓａｍｐｌｅの１周期の間だけ「１」となり、それ以外は「０」である信号である。
【００８２】
カウンタ３１Ａは、信号Ｆｒａｍｅが入力されたタイミングで、その出力が「０」にリセットされ、出力が「１５」に達するまで信号Ｓａｍｐｌｅ（の「１」）をカウントし、一旦出力が「１５」に達すると、これをリセットされるまで継続して出力する。カウンタ３１Ｂは、信号Ｆｒａｍｅが入力されたタイミングで、その出力が「０」にリセットされ、出力が「２５５」に達するまで信号Ｓａｍｐｌｅ（の「１」）をカウントする。
【００８３】
従って、カウンタ３１Ａの出力は、リセットから最初に「１５」になるまでは、カウンタ３１Ｂの出力と同じである。このため、カウンタ３１Ａは、カウンタ３１Ｂと統合することができるという意味で、冗長であると考えられる。
【００８４】
図１１は、冗長論理回路検出装置の構成の他の一例を示す図である。
【００８５】
図１１の冗長論理回路検出装置は、制約条件入力部１３と制約条件格納部１３１とを含まない。従って、図１１の冗長論理回路検出装置においては、レジスタ情報と波形データとが用意される。また、制約条件入力部１３等に代えて、繰返しシーケンス検出部１７が設けられる。繰返しシーケンス検出部１７は、第１のレジスタｒｅｇＡについての波形データのシーケンスにおいて、同一のシーケンスが繰り返される繰返し区間を検出する。なお、検出される論理回路は、レジスタに限られない。
【００８６】
パターンマッチング部１５は、繰返しシーケンス検出部１７により検出された繰返し区間を、第２のレジスタｒｅｇＢの検出に用いられる区間の開始点、終了点及び長さとして用いる。具体的には、パターンマッチング部１５は、第１のレジスタｒｅｇＡについての波形データのシーケンスにおける繰返し区間を、第１のレジスタｒｅｇＡ以外のレジスタについての波形データのシーケンスと比較する。これにより、パターンマッチング部１５は、第１のレジスタｒｅｇＡについての波形データのシーケンスと一致する波形データのシーケンスを有する、第２のレジスタｒｅｇＢを検出する。これにより、制約条件を入力することなく、繰り返し区間（繰返しシーケンス）をスループットとして用いて、冗長なレジスタを検出することができる。
【００８７】
次に、図１２を参照して、冗長レジスタの繰り返しシーケンスの検出処理について具体的に説明する。図１２は、冗長レジスタの繰り返しシーケンス検出処理の一例を示す図である。
【００８８】
図１２において、第１のレジスタｒｅｇＡの波形データは、８ビットデータ「８’ｈ００」「８’ｈ０１」「８’ｈ０２」「８’ｈ０３」のように変化するシーケンスを有する。例えば、サンプル長Ｎ＝３とした場合において、８ビットデータ「８’ｈ００」「８’ｈ０１」「８’ｈ０２」をサンプルとして取得し、順次１周期づつずらして、後続の波形データと比較する。これにより、８ビットデータ「８’ｈ００」「８’ｈ０１」「８’ｈ０２」が、４周期後の波形データと一致することが検出される。この結果、当該８ビットデータ「８’ｈ００」「８’ｈ０１」「８’ｈ０２」の区間が、第１のレジスタｒｅｇＡの繰返し区間とされる。換言すれば、当該８ビットデータ「８’ｈ００」「８’ｈ０１」「８’ｈ０２」が、第２のレジスタｒｅｇＢの検出のために用いられる。
【００８９】
なお、サンプル長は、繰返し区間が検出されるまで、「２」から順に「＋１」づつ予め定められたビット長までインクリメントされる。また、サンプルは、繰返し区間が検出されるまで、波形データの先頭から順に１周期づつずらして取得される。
【００９０】
以上の例においては、２個の論理回路の波形データのシーケンスの一致を検出することにより、当該冗長な論理回路を検出する。しかし、冗長な論理回路は、波形データのシーケンスの一致の検出以外にも、以下の方法によっても検出することができる。
【００９１】
例えば、この場合、制約条件は、第１のレジスタｒｅｇＡについての波形データのシーケンスとの差分が一定である波形データのシーケンスを有するレジスタを、第２のレジスタｒｅｇＢとして検出することを定める。パターンマッチング部１５は、第１のレジスタｒｅｇＡについての波形データのシーケンスとの差分が一定である波形データのシーケンスを有するレジスタを、第２のレジスタとして検出する。
【００９２】
例えば、２個のカウンタの出力値の差分が一定である（固定である）場合がある。この場合、当該２個のカウンタの波形データのシーケンスが一致することは無い。しかし、２個のカウンタの出力値の差分が一定である場合、一方のカウンタの出力値に当該差分に相当する値を加算（又は減算）すれば、双方のカウンタの出力は同一となる。このため、当該２個のカウンタは統合することができるという意味で、冗長である。従って、当該２個のカウンタは冗長カウンタとして検出される。
【符号の説明】
【００９３】
１      冗長論理回路検出装置
１１    レジスタ情報入力部
１２    波形データ入力部
１３    制約条件入力部
１４    記憶部
１５    パターンマッチング部
１６    出力部
１１１    レジスタ情報格納部
１２１    波形データ格納部
１３１    制約条件格納部
１６１    検出結果格納部
【図１】
2011054070.tif 000003
【図２】
2011054070.tif 000004
【図３】
2011054070.tif 000005
【図４】
2011054070.tif 000006
【図５】
2011054070.tif 000007
【図６】
2011054070.tif 000008
【図７】
2011054070.tif 000009
【図８】
2011054070.tif 000010
【図９】
2011054070.tif 000011
【図１０】
2011054070.tif 000012
【図１１】
2011054070.tif 000013
【図１２】
2011054070.tif 000014