(57)【要約】【課題】  設計対象の回路網データからＬＳＩ設計するにあたり、故障し易い回路や無駄な面積増となる回路など複数の特定回路が前記回路網データに含まれているか否かを容易に、かつ高速に検索し得る回路検索システムを提供する。【解決手段】  検索対象回路に含まれる回路素子及びその端子の接続状態を文字列に変換して回路パスデータベースを作成し、各特定回路に含まれる回路素子及びその端子の接続状態を各特定回路の数だけ、文字列に変換して記憶し、前記回路パスデータベースと、各特定回路の文字列による検索パターンとを照合することにより、各特定回路を目視に頼らず早期に検索する構成とした。【選択図】  図１
2005222313.tif 000002
【特許請求の範囲】
【請求項１】
検索対象回路から、複数の回路素子を互いに接続してなる複数の特定回路のいずれかの有無を検索するための回路検索システムであって、
前記検索対象回路と、該検索対象回路又は前記複数の特定の回路を構成する回路素子を任意の単純な文字又は１文字以上の短い文字列に割り当てる回路素子文字変換規則と、該複数の特定の回路のそれぞれを検索するための検索キーとなる複数の検索パターンを入力する入力手段と、
前記検索対象回路を構成する回路素子を、前記回路素子文字変換規則に従い、任意の単純な文字又は１文字以上の短い文字列に変換する回路素子文字化手段と、
前記検索対象回路を構成する外部入出力端子及び各回路素子の端子に接続される内部信号の接続関係に基づいて、前記回路素子文字化手段により変換された文字列データを用いて、前記外部入出力端子及び回路素子のみで構成される文字列回路パスデータベースを作成する回路データベース化手段と、
前記検索対象回路と、前記回路素子文字変換規則と、前記複数の検索パターンと、前記文字列回路パスデータベースを記憶する記憶手段と、
前記文字列回路パスデータベースから、前記複数の検索パターンのいずれかに含まれる任意の文字若しくは文字列を照合することにより、前記検索対象回路から前記複数の特定の回路のいずれかの一部又は全部を検索する検索手段と、
前記検索手段の検索結果を出力する出力手段と、を備えた、
ことを特徴とする回路検索システム。
【請求項２】
請求項１記載の回路検索システムにおいて、
前記回路素子文字化手段は、発見したい特定の回路素子を特定の１文字あるいは単純な文字列に変換し、その他の回路素子をそれ以外の任意の１文字あるいは単純な文字列に変換する、
ことを特徴とする回路検索システム。
【請求項３】
請求項１記載の回路検索システムにおいて、
階層化された回路ブロックを持つ検索対象回路から特定の回路素子を検索する場合、前記回路素子文字化手段は、前記特定の回路素子を含む回路ブロックのみを、該回路ブロックを構成する回路素子へと平坦化して、該特定の回路素子を特定の１文字あるいは単純な文字列に変換し、その他の回路素子、あるいは前記特定の回路素子を含まない回路ブロックを、前記特定の回路素子に割り当てた文字以外の、特定の１文字あるいは単純な文字列に変換する、
ことを特徴とする回路検索システム。
【請求項４】
請求項１記載の回路検索システムにおいて、
前記回路データベース化手段は、前記検索対象回路の任意の外部入出力端子を指定することにより、該指定された外部入出力端子の回路パスに限定した文字列回路パスデータベースを作成する、
ことを特徴とする回路検索システム。
【請求項５】
請求項１記載の回路検索システムにおいて、
前記回路素子文字化手段は、発見したい特定の回路素子を、特定の共通する文字と、個々の前記特定の素子を区別するための文字列長の決まった文字列とからなる文字列に変換し、さらに、前記発見したい特定の回路素子を前記検索対象回路において一意に特定するインスタンス名と、該特定の回路素子に割り当てた文字列とを関連付ける、相互参照データを作成して前記記憶手段へ出力する、
ことを特徴とする回路検索システム。
【請求項６】
請求項１記載の回路検索システムにおいて、
前記回路素子文字化手段は、前記検索対象回路内の特定の信号系統に接続される回路素子に、信号系統毎に特定の共通する文字を割り当てて回路をグループ化する、
ことを特徴とする回路検索システム。
【請求項７】
請求項１記載の回路検索システムにおいて、
前記回路素子文字化手段は、さらに、前記回路素子文字変換規則とは異なる文字再変換規則をもとに、前記文字列回路パスデータベースを再帰的に文字変換して冗長な文字列を論理的に圧縮する、
ことを特徴とする回路検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路設計時などに被検索回路内から複数の特定回路のいずれかを検索するための回路検索システムに関するものである。
【背景技術】
【０００２】
近年、大規模化するＬＳＩの設計工数増大の問題に対処するため、ハードウェア記述言語等を用いてＬＳＩを機能記述し、回路自動生成装置を用いて自動設計するトップダウン設計手法が普及してきた。しかしながら、自動合成に入力する制約等は人手による作業であり、この入力作業で誤った制約を自動合成装置に入力してしまったり、そもそも制約すべき項目が足りないことで不具合のある回路を生成してしまうことが少なくない。さらにこういった不具合のある回路は自動合成直後の段階では表面化しにくく、後々の回路設計工程で表面化することが多く、設計の後戻りのため多くの設計工数を発生することになる。
【０００３】
このような課題に対して、設計回路から特定の回路を発見するために検索しなければならないのだが、従来からこの種の回路検索に対する手法は、電子回路を表現する全体回路網の中から発見したい部分回路と同形の回路を判定する際に、部分回路を構成する回路素子種別と回路素子間を接続する信号線の形態が全て一致するか否かを、検索対象回路となる全体回路網の中からパターンマッチングしてチェックする方式をとっていた。
【特許文献１】特開昭６４−１７１５８号公報
【特許文献２】特開平５−２９０１１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した従来の回路検索方式のシステムは、全体回路網を構成する全ての部分回路網について詳細なパターンマッチングを行っていたので、検索空間となる全体回路網の規模が増大すると部分回路網を切り出す際の組み合わせの数が爆発的に増大し、発見したい回路網が全体回路網の中にあるか否かを実用的な時間内で判定することができないという問題があった。
【０００５】
例えば、特許文献１には、擬似的パターンマッチング機構を用い、回路網内の各構成要素に対して割り当てられた数値の合計を算出した回路構造が、特定の部分回路網と等しい部分回路網を全体回路網の中からいったん取り出し、さらに詳細パターンマッチング機構により前記取り出した部分回路網に対して詳細パターンマッチングを行うことで、高速に特定回路が被検索回路内に含まれているか否かを検索できる回路検索システムが開示されているが、検索しようとする回路と少しでも異なる回路パターンは発見することができなかったという問題がある。
【０００６】
また、特許文献２には、回路設計初心者でも故障し易い回路や特許等登録済の回路など複数の特定回路が被検索回路内に含まれているか否かを容易に、かつ高速に検索し得る回路検索システムが開示されているが、検索対象における回路素子と回路素子の端子情報等を全てユーザが設定する必要があり、かつ特定の回路を検索しようとする回路と少しでも異なる回路は検索することができなかったいう問題がある。
【０００７】
本発明は、上記のような従来の問題点に鑑みてなされたものであり、その主な目的は、任意の回路が被検索回路内に含まれているか否かをより容易に、かつ高速に検索することのできる回路検索システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の請求項１に記載の回路検索システムは、検索対象回路から、複数の回路素子を互いに接続してなる複数の特定回路のいずれかの有無を検索するための回路検索システムであって、前記検索対象回路と、該検索対象回路又は前記複数の特定の回路を構成する回路素子を任意の単純な文字又は１文字以上の短い文字列に割り当てる回路素子文字変換規則と、該複数の特定の回路のそれぞれを検索するための検索キーとなる複数の検索パターンを入力する入力手段と、前記検索対象回路を構成する回路素子を、前記回路素子文字変換規則に従い、任意の単純な文字又は１文字以上の短い文字列に変換する回路素子文字化手段と、前記検索対象回路を構成する外部入出力端子及び各回路素子の端子に接続される内部信号の接続関係に基づいて、前記回路素子文字化手段により変換された文字列データを用いて、前記外部入出力端子及び回路素子のみで構成される文字列回路パスデータベースを作成する回路データベース化手段と、前記検索対象回路と、前記回路素子文字変換規則と、前記複数の検索パターンと、前記文字列回路パスデータベースを記憶する記憶手段と、前記文字列回路パスデータベースから、前記複数の検索パターンのいずれかに含まれる任意の文字若しくは文字列を照合することにより、前記検索対象回路から前記複数の特定の回路のいずれかの一部又は全部を検索する検索手段と、前記検索手段の検索結果を出力する出力手段とを備えたことを特徴とするものである。
【０００９】
これにより、検索対象となる回路が膨大であっても、また発見しようとする特定回路が多くても前記記憶手段にある文字列データベースを順番に照合することで、検索対象回路内に特定の回路が含まれていることを目視に頼らず高速に検索することができ、検索時間、しいては設計時間の大幅な短縮を図ることができる。
【００１０】
また、本発明の請求項２に記載の回路検索システムは、請求項１記載の回路検索システムにおいて、前記回路素子文字化手段は、発見したい特定の回路素子を特定の１文字あるいは単純な文字列に変換し、その他の回路素子をそれ以外の任意の１文字あるいは単純な文字列に変換することを特徴とするものである。
【００１１】
これにより、特に回路素子が同一種類で数珠つなぎに接続されている所謂多段接続回路の場合、該多段接続回路を一般的な文字列に置き換えることにより、より効率よく高速に検索することができる。
【００１２】
本発明の請求項３に記載の回路検索システムは、請求項１記載の回路検索システムにおいて、階層化された回路ブロックを持つ検索対象回路から特定の回路素子を検索する場合、前記回路素子文字化手段は、前記特定の回路素子を含む回路ブロックのみを、該回路ブロックを構成する回路素子へと平坦化して、該特定の回路素子を特定の１文字あるいは単純な文字列に変換し、その他の回路素子、あるいは前記特定の回路素子を含まない回路ブロックを、前記特定の回路素子に割り当てた文字以外の、特定の１文字あるいは単純な文字列に変換することを特徴とするものである。
【００１３】
これにより、特に階層化された回路ブロックを有する検索対象回路の場合、文字列回路パスデータベースのサイズを抑え、発見したい回路素子又はそれにより構成される回路を前記検索対象回路から早期に検索することができる。
【００１４】
本発明の請求項４に記載の回路検索システムは、請求項１記載の回路検索システムにおいて、前記回路データベース化手段は、前記検索対象回路の任意の外部入出力端子を指定することにより、該指定された外部入出力端子の回路パスに限定した文字列回路パスデータベースを作成することを特徴とするものである。
【００１５】
これにより、特に、検索対象回路から特定の回路パスのみを発見したい場合、文字列回路パスデータベースのサイズを抑え、さらに、ユーザが指定した回路パスのみに対して検索を行うため、発見したい回路をより早期に検索することができる。
【００１６】
本発明の請求項５に記載の回路検索システムは、請求項１記載の回路検索システムにおいて、前記回路素子文字化手段は、発見したい特定の回路素子を、特定の共通する文字と、個々の前記特定の素子を区別するための文字列長の決まった文字列とからなる文字列に変換し、さらに、前記発見したい特定の回路素子を前記検索対象回路において一意に特定するインスタンス名と、該特定の回路素子に割り当てた文字列とを関連付ける、相互参照データを作成して前記記憶手段へ出力することを特徴とするものである。
【００１７】
これにより、前記特定の回路素子又はそれによる回路を全体回路網から発見した後、前記相互参照データを参照することにより、特定の回路素子のインスタンス名を知ることが可能となり、前記特定の回路の素子が全体回路網のどの部分を構成するかを容易に判明することができる。
【００１８】
本発明の請求項６に記載の回路検索システムは、請求項１記載の回路検索システムにおいて、前記回路素子文字化手段は、前記検索対象回路内の特定の信号系統に接続される回路素子に、信号系統毎に特定の共通する文字を割り当てて回路をグループ化することを特徴とするものである。
【００１９】
これにより、異なる信号系統を含む正規表現を用いた検索パターンで検索を行うと、異なる信号系統に接続される回路グループ同士が非同期関係にある部分回路は、高速に発見することができる。
【００２０】
本発明の請求項７に記載の回路検索システムは、請求項１記載の回路検索システムにおいて、前記回路素子文字化手段は、さらに、前記回路素子文字変換規則とは異なる文字再変換規則をもとに、前記文字列回路パスデータベースを再帰的に文字変換して冗長な文字列を論理的に圧縮することを特徴とするものである。
【００２１】
これにより、文字列回路パスデータベースのサイズを圧縮化して、論理的に等価な回路パスをより容易に高速に発見することができる。
【発明の効果】
【００２２】
上記本発明の構成によれば、検索対象となる回路が膨大であっても、また発見しようとする特定回路が多くても、検索対象回路となるデータベースから、特定回路を表す検索パターンを順番に照合することで、検索対象回路内に特定の回路が含まれているか否かを高速に検索することが可能となり、検索時間の短縮、ＬＳＩ設計の早期完成を図ることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
（実施の形態１）
図１は、本発明の実施の形態１による回路検索システムの構成を示すブロック図である。
【００２４】
図１において、本実施の形態１による回路検索システムは、各種入力装置から成り、検索対象回路となる全体回路網データ２、検索パターンデータ３、及び回路素子を特定の文字または文字列へ変換する変換規則データ４が入力される入力部１と、全体回路網データ２に必要な変換処理を実行し、文字列回路パスデータ８を生成する変換部５ａ、及び前記文字列回路パスデータ８から前記検索パターンデータ３を照合して特定の回路を検索する検索部５ｂが設けられた演算装置５と、入力部１から入力された全体回路網データ２及び検索パターンデータ３、変換規則データ４、さらに前記データを演算装置５によって所謂データベース化された文字列回路パスデータ８を記憶する外部記憶装置６と、前記検索部５ｂの検索結果を出力するディスプレイやプリンタ装置等の出力部７とにより構成されている。
【００２５】
次に、上記のような構成を有する本実施の形態１による回路検索システムの検索動作について、図１〜図３、及び図２６を参照しながら説明する。
図２は、回路素子の種類毎に特定の文字を割り当てる文字変換規則の一例を示す図である。
【００２６】
図３は、上記文字変換規則を基に、作成された文字列回路パスデータ８の例を示す図である。
図２６は、本実施の形態１による回路検索システムにおける、上記文字列回路パスデータ８を基に、検索対象回路内から特定の回路を検索する流れを概略的に説明するフローチャートである。
【００２７】
図２６において、先ずステップ１にて、検索対象回路となる全体回路網を構成する回路素子あるいは後記する発見したい特定の回路を構成する回路素子の種類毎に、１文字あるいは１文字以上の極めて少ない文字列の割り当てを決定し、前記回路素子とそれに対応する前記文字列との対応リストである変換規則データ４を予め作成する（図２参照）。
【００２８】
ステップ２にて、入力部１から入力した前記変換規則データ４を外部記憶装置６に格納する。
ステップ３にて、検索対象回路として全体回路網データ２を入力部１から入力する。
【００２９】
ステップ５では、演算装置５の変換部５ａは、全体回路網を構成する各回路素子をその種類毎に前記ステップ２で作成した変換規則データ４に基づいて文字列に変換し、さらに、前記全体回路網を構成する外部入出力端子及び各回路素子の端子に接続される内部信号の接続関係に基づいて、外部入出力端子及び回路素子のみで構成される文字列回路パスデータ８（図３参照）を作成する。前記作成された文字列回路パスデータ８は、ユーザが設定した変換規則の１文字以上の文字列をキーとする所謂、文字列のデータベースとして構築され、外部記憶装置６に出力され記憶される。
【００３０】
ステップ７では、外部記憶装置６に記憶された前記データベースから特定の回路パスを検索するため、前記特定の回路パスを、変換規則データ４の検索キーとなる１文字以上の文字列を用いて検索パターンデータ３（図３の右項参照）として予め作成する。
【００３１】
ステップ８からステップ１３では、前記ステップ７で作成した検索パターンデータ３を入力部１から入力すると、外部記憶装置６に記憶された文字列回路パスデータ８を演算装置５の検索部５ｂによって照合し、即ち発見したい回路が検索対象回路に含まれているか否かをチェックし検索を続ける。もし発見したい回路が検索対象回路に含まれていればステップ１１で、その含有部分をディスプレイ等の出力部７へ出力する。
【００３２】
ここでの出力は、ユーザ設定の変換規則を用いて文字列から入力時の回路素子へ再変換して表示したり、論理回路記号を使った回路図に変換して表示しても良い。
【００３３】
また、ステップ１２にて、文字列回路パスデータ８に対して全検索パターンを用いて検索したかどうかをチェックし、全部検索した場合、ステップ１３に進み、全部パターンの検索が終わっていない場合、ステップ９に戻って、残る検索パターンについて検索を行う。
【００３４】
ステップ１３にて、文字変換規則の更新が必要か否かを確認し、必要な場合、ステップ１に戻って、新たな文字変換規則を用いて文字列回路パスデータベースを構築して再検索を行う。必要がない場合、全ての検索作業を終了する。
【００３５】
このように、本実施の形態１による回路検索システムでは、検索対象回路を構成する回路素子の種類毎に特定の１文字を割り当てる文字変換規則をユーザにより予め設定し、前記文字変換規則に基づいて検索対象回路を構成する回路素子を文字列に変換し、さらに変換された文字列データを用いて、前記検査対象回路となる全体回路網の外部入出力端子を始終点とする文字列回路パスデータ８を作成し、同時に発見したい特定の回路パスを前記変換規則に基づいて文字列に変換して該変換された特定の回路パスの文字列に含まれる文字列パターンを検索キーとし、前記文字列回路パスデータ８を検索して特定の回路の一部又は全部を発見するようにしたので、複雑な検索対象回路内に１つあるいは複数の特定回路のいずれかが含まれているか否かを目視に頼らず早期に発見することが可能となり、検索時間の大幅な短縮を図ることができる。
【００３６】
（実施の形態２）
本発明の実施の形態２は、インバータ素子やバッファ素子、あるいはその他の回路素子が同一種類で数珠つなぎに接続されている、所謂多段接続回路を検索する場合に、特に有効な回路検索システムに関する。また、本実施の形態２による回路検索システムは、前記実施の形態１と同様な構成（図１）、および同様な基本的な検索流れ（図２６）を有する。
【００３７】
次に、本実施の形態２による回路検索システムについて、具体的な検索例を用いて、図１、図４、及び図２６を参照しながら詳細に説明する。
【００３８】
例えば、インバータ素子のみの多段接続回路を発見したい場合には、ユーザは図４に示すように、インバータ素子をアルファベットの‘Ｉ’という文字に変換する規則１と、前記インバータ素子以外の回路素子をアルファベットの‘Ｘ’という文字に変換する規則２とを用いて、好適な変換規則データ４を作成することができる。
【００３９】
前記ユーザにより作成した変換規則データ４、全体回路網データ２、及び検索パターンデータ３を回路検索システムの入力部１から入力すると、図２６に示すフローチャートのステップ５で出力される文字列回路パスデータ８は、アルファベットの‘Ｉ’とアルファベットの‘Ｘ’の２文字のみで構成され、前記文字‘Ｉ’及び‘Ｘ’をキーとするデータベースとなる。
【００４０】
次に、ステップ７で、発見したいインバータ素子からなる多段接続回路を前記変換規則１より、“ＩＩＩＩＩ…”のように表される文字列に変換し、該“ＩＩＩＩＩ…”のように表される文字列を検索キーとして前記文字列回路パスデータ８から検索することにより、前記インバータ素子による多段接続回路を容易に発見することができる。
【００４１】
上記回路検索の結果、文字列回路パスデータ８から検索キーに対応する文字列が発見できた場合は、該当する回路パス文字列を出力部７へ出力する。また上記回路検索を行った結果、文字列回路パスデータ８から検索キーに対応する文字列が発見できなかった場合は出力部７にその旨を表示することも可能である。
【００４２】
このように、本実施の形態２による回路検索システムでは、同一の回路素子が数珠繋ぎでなる多段接続回路を検索する場合の文字列変換規則を設定する際に、発見したい回路素子に特定の短い文字を与え、それ以外の回路素子のすべてに前記特定文字以外の文字を割り当てるようにしたので、発見したい多段接続回路を一般的な文字列に置き換えることにより、該回路を高速に検索することができる。
【００４３】
また、文字列の検索に正規表現（指定した文字列そのものを検索するのではなく、ある種の記号を組み合わせて、目的のキーワードをパターンとして表現する手段）を用いて検索パターンを入力するようにすれば、発見したい素子のみによる多段接続回路によく似た回路も検索可能となる。
【００４４】
（実施の形態３）
本発明の実施の形態３は、階層化された回路ブロックを持つ検索対象回路から発見したい回路を検索する場合に、特に有効な回路検索システムに関する。
【００４５】
また、本実施の形態３による回路検索システムは、前記実施の形態１と同様な構成（図１）、および同様な基本的な検索流れ（図２６）を有する。
【００４６】
次に、本実施の形態３にかかる回路検索システムについて、具体的な検索例を用いて、図１、図５〜図７、及び図２６を参照しながら詳細に説明する。
【００４７】
図５において、検索対象回路の一例となる回路Ｚは、回路素子Ａと回路素子Ｏを含む回路Ｘと、回路素子Ｉの４段接続回路を含む回路Ｙの２つの回路ブロックから成る、所謂階層化された回路である。前記回路Ｚからインバータ素子のみの多段接続回路を発見したい場合に、回路ブロックＸには前記インバータ素子のみの多段接続回路は存在しないことが自明であるため、ユーザが図６に示すよう変換規則を用いて好適な変換規則データ４を作成することができる。図６において、‘＃’記号は、階層ブロックの平坦化を表す特殊記号であって、図中の変換規則は、ブロック回路Ｙを平坦化し、ブロックＸを平坦化を施さずにそのまま文字‘Ｘ’に割り当て、インバータ素子を文字‘Ｉ’に割り当てることを意味している。これに基づいて、図２６に示すフローチャートのステップ５にて、文字列回路パスデータ８を生成する際に、回路Ｘの階層をそのまま残しておき、回路Ｙの階層構造を図６の規則３により破壊し平坦化を行って、文字列回路パスデータ８を作成することにより、文字列回路パスデータ８は、アルファベットの‘Ｉ’とアルファベットの‘Ｘ’のみで構成され、前記文字‘Ｉ’及び‘Ｘ’をキーとするデータベースとなる。ここで、図７に前記データベースを回路素子記号で表したものを示す。
【００４８】
また、データベース化以降の動作は、前記実施の形態２で説明したものと同様である。
このように、本実施の形態３による回路検索システムでは、階層化された回路ブロックを有する検索対象回路から特定の回路素子を発見したい場合の、文字列変換規則として、発見したい特定の回路素子を含む回路ブロックを、これを構成する回路素子へと平坦化して、特定の回路素子に特定の短い文字を与え、それ以外の回路素子に、また前記特定の回路素子を明らかに含まないブロックにその平坦化を行わずに前記特定文字以外の１文字を割り当て、さらに回路ブロックを平坦化するか否かの指定を用いるようにしたので、検索を行う必要のない回路ブロックが自明な場合、該回路ブロックの平坦化を行わず、発見したい回路素子を含むブロックのみを平坦化して一般的な文字列に置き換えることにより、文字列回路パスデータ８のサイズを抑えることができ、発見したい回路素子又はそれにより構成される回路を高速に検索することができる。
【００４９】
また、文字列の検索に正規表現（指定した文字列そのものを検索するのではなく、ある種の記号を組み合わせて、目的のキーワードをパターンとして表現する手段）を用いて検索パターンを入力するようにすれば、特定素子を含む回路、例えばインバータのみの多段接続回路によく似た回路（例えばインバータ素子の多段接続回路の間にバッファ素子等の論理回路素子が挿入されている回路形態等）、も検索が可能である。
【００５０】
（実施の形態４）
本発明の実施の形態４は、検索対象回路から特定の回路パスのみを発見したい場合に、特に有効な回路検索システムに関する。また、本実施の形態４による回路検索システムは、前記実施の形態１と同様な構成（図１）、および同様な基本的な検索流れ（図２６）を有する。
【００５１】
次に、本実施の形態４にかかる回路検索システムについて、具体的な検索例を用いて、図８、図９、及び図２７を参照しながら詳細に説明する。
【００５２】
図８において、検索対象回路の一例となる回路Ｚは、外部入力端子ＩＮ１、ＩＮ２、ＩＮ３、ＩＮ４と、外部出力端子ＯＵＴ１、ＯＵＴ２、ＯＵＴ３、ＯＵＴ４と、複数の回路素子で構成され、前記外部入力端子ＩＮ１〜ＩＮ４が前記複数の回路素子へ接続され、さらに前記外部出力端子ＯＵＴ１〜ＯＵＴ４へ接続されている回路である。
【００５３】
例えば、回路Ｚの外部入力端子ＩＮ１、及びＩＮ２から外部出力端子ＯＵＴ２及びＯＵＴ３への回路パスの中のみを検索したい場合、図２６に示すフローチャートのステップ４にて、前記特定の回路パスのみに対して変換を行うようユーザが検索パス指定データ１０（図９参照）を予め作成し、入力部１より前記検索パス指定データ１０を本回路検索システムに入力して検索対象パスの指定を行ってから文字列回路パスデータ８を作成することにより、限定的な検索を実現することができる。検索パス指定データ１０を作成するにあたっては、図９に示すように、各指定行において、開始点項には回路検索を開始する外部入力端子名を記述し、終了点項には回路検索を終了する外部出力端子名を記述する。なお、前記各項に記述する端子名は正規表現を用いて表現することもできる。例えば、図９の指定１では、開始点ＩＮ１の終了点は、外部出力端子のＯＵＴ２またはＯＵＴ３としている。
【００５４】
前記外部入力端子を表すＩＮ１、およびＩＮ２の文字列を検索キーとして前記文字列回路パスデータ８に対して検索を行った結果、正常に前記終了点に到達した場合は、出力部７へ文字列回路パスデータ８の前記検索結果に該当する回路パス文字列を出力する。また回路検索を行った結果、正常に前記終了点に到達しなかった場合は、出力部７にその旨を表示することも可能である。
【００５５】
このように、本実施の形態４による回路検索システムでは、特定の回路パスのみに限定して検索する場合、検索対象回路となる全体回路網データを変換規則により文字列に変換した後に、前記特定の回路パスを指定してから文字列回路パスデータ８を作成するようにしたので、文字列回路パスデータ８のサイズを抑えることができるとともに、検索は、ユーザが指定した回路パスのみに対して行うことができるため、発見したい回路をより早期に検索することができる。
【００５６】
（実施の形態５）
本発明の実施の形態５は、特定の回路を全体回路網から発見した後、前記特定の回路を構成する個々の回路素子が全体回路網のどの部分を構成するかを判明するのに効果的な回路検索システムに関する。
【００５７】
本実施の形態５にかかる回路検索システムは、前記実施の形態１の回路検索システム（図１）と同様な構成、および同様な基本的な検索流れ（図２６）を有する。但し、本実施の形態５にかかる回路検索システムの変換部５ａは、前記文字列回路パスデータベースを作成する以外に、検索対象回路における前記特定の回路素子を一意に定義するインスタンス名と、その特定の回路素子に割り当てた文字列との対応関係をも、相互参照データ９として作成して、外部記憶部６に出力する。
【００５８】
次に、本実施の形態５にかかる回路検索システムについて、具体的な検索例を用いて、図１、図１０から図１３、図２６を参照しながら説明する。
【００５９】
図１０は、検索対象回路の一例としての回路Ｚの構成を示し、図１１は、文字変換規則例を示し、図中‘％’記号は文字列長を表す特殊記号、‘％’に続く‘ｎ’は１０進数のアラビア数字を表す。図１２は、回路素子を文字列に変換した後の回路Ｚを示し、図１３は、相互参照データ９の一例を示している。
【００６０】
まず、図２６に示すフローチャートのステップ１において、ユーザによる変換規則データ４を作成する際に図１１に示す規則１より、特定の回路素子、例えばラッチ回路素子に、そのラッチ回路素子のみの特定の共通する変換文字、例えば‘Ｒ’と、個々のラッチ回路素子同士を区別するための、文字列長の決まった文字列（例えば、３桁の１０進数）とを割り当てる。
【００６１】
次に、ステップ２からステップ５までの処理を実行し、本回路検索システムの変換部５ａでは前記変換規則データ４の規則１をもとに、前記変換文字‘Ｒ’に相当する回路素子を発見する毎に、該回路素子に前記変換文字‘Ｒ’と３桁の１０進数で構成された文字列を割り当てて、文字列に変換する（図１２参照）。
【００６２】
また、前記文字列に変換する際に前記特定の回路素子を検索対象回路内にて一意に特定する名前（インスタンス名という）が付与されているので、このインスタンス名と、前記‘Ｒ’及び３桁の１０進数で構成された文字列とを対応づける相互参照データ９（図１３参照）を作成して、後に参照する為に外部記憶装置６へ出力し、同時に文字列回路パスデータ８をも作成して外部記憶装置６へ出力する。
【００６３】
次に、ユーザが発見したい回路の検索パターンを検索キーとして入力部１から入力すると、検索部５ｂが文字列回路パスデータ８から前記検索パターンを照合し、正常に発見できた場合は該当する回路パス文字列を出力部７へ出力するとともに、前記相互参照データ９を参照して、前記該当する回路パス文字列に存在する前記特定の回路素子のインスタンス名を出力部７へ表示させることにより、前記特定の回路素子が全体回路網の具体的にどの部分を構成するかを知ることが可能となる。
【００６４】
このように本実施の形態５による回路検索システムでは、文字変換規則として同一種類の特定回路素子に、共通の文字と個々の特定回路素子同士を区別する番号とを割り当てるのをユーザにより予め決定し、回路素子を文字列に変換する際に、特定の回路素子を一意に特定するインスタンス名と、その特定回路素子に割り当てた文字列との対応関係を示す相互参照データ９を作成するようにしたので、前記特定の回路を全体回路網から発見した後、前記相互参照データ９を用いて発見後の検索パターンを逆引きすることにより、特定回路素子のインスタンス名を知ることが可能となり、前記特定の回路の素子が全体回路網のどの部分を構成するかを容易に知ることができる。
【００６５】
（実施の形態６）
本発明の実施の形態６は、異なる信号系統に接続される回路グループ同士が非同期関係にある部分回路を高速に発見するのに有効な回路検索システムに関する。また、本発明の実施の形態６による回路検索システムは、前記実施の形態５と同様な構成（図１）、および検索流れ（図２６）を有する。
【００６６】
次に、本実施の形態６にかかる回路検索システムについて、具体的な検索例を用いて、図１、図１４から図１６、図２６を参照しながら説明する。
【００６７】
図１４において、検査対象回路の一例としての回路Ｚは、クロック信号Ｃ１とクロック信号Ｃ２が存在し、複数の回路素子が前記クロック信号に接続されている。前記クロック信号Ｃ１に接続された回路素子グループＤと、前記クロック信号Ｃ２に接続された回路素子グループＧのそれぞれの回路素子同士が接続されており、前記回路素子グループＤと前記回路素子グループＧは異なるクロック信号によってデータを授受するような回路となっている。
【００６８】
まず、図２６に示すフローチャートのステップ１において、ユーザによる変換規則データ４を作成する際に図１５に示す規則１より、前記クロックＣ１に接続される回路グループＤを構成する回路素子に‘Ｄ’と文字列長の決まった文字列（例えば、３桁の１０進数）を割り当て、さらに前記クロックＣ２に接続される回路グループＧを構成する回路素子に‘Ｇ’と文字列長の決まった文字列（例えば、３桁の１０進数）を割り当てる。また、前記グループＤおよびグループＧ以外の回路素子に‘Ｘ’の変換文字を割り当てる。上記文字列変換規則を用いて変換を行った後の回路を図１６に、また前記変換後に作成された文字列回路パスデータ８を図１７に示している。
【００６９】
なお、前記文字列長の決まった３桁の数字を用いて変換後の回路素子を構成するときには、前記各グループ内での各回路素子に唯一無二のインスタンス名を同時に与え、前記インスタンス名と、前記ユーザによる特定の文字及び文字列長の決まった文字列で構成された文字列とを対応づける相互参照データ９（図１３参照）を作成して、前記文字列回路パスデータ８とともに、外部記憶装置６へ出力する。
【００７０】
次に、ステップ８にて、ユーザは非同期関係あるいは異なる信号系統に接続される回路部分を発見するために、変換文字‘Ｄ’または‘Ｇ’を含んだ所謂正規表現（図１８参照）を用いた検索式をキーとして入力部１から入力すると、検索部５ｂは、図１７の文字列回路パスデータ８に対して検索を行い、もし回路パスデータ８を構成する文字列パターンから前記検索式が発見できれば、出力部７へ該当する回路パス文字列を出力するとともに、前記相互参照データ９を参照して前記該当する回路パス文字列に存在する前記特定回路素子のインスタンス名を出力部７に表示させ、これにより、回路パスグループＤと回路パスグループＧが非同期関係あるいは異なる信号系統に接続される回路部分を早期に発見できると同時に、前記非同期回路を構成する特定の回路素子が全体回路網の具体的にどの部分を構成するかを知ることが可能となる。
【００７１】
このように、本実施の形態６による回路検索システムでは、異なる信号系統に接続される回路グループ同士が非同期関係にある部分回路を発見したい場合、検索対象回路内の特定の信号系統に接続される回路素子に、信号系統毎に特定の共通する文字、及び回路素子同士を区別する番号を割り当てて回路をグループ化するような文字変換規則を設定して文字変換を行い、正規表現を用いた検索パターンで検索を行うようにしたので、異なる信号系統に接続される回路グループ同士が非同期関係にある部分回路を高速に発見することができる。また、特定の回路素子のインスタンス名と、該回路素子に割り当てた文字列とを関連付ける相互参照データ９をも作成するようにしたので、特定の回路部分を発見後に、相互参照データ９を参照して、発見した回路素子が全体回路網のどの部分を構成しているのかを具体的に知ることができる。
【００７２】
さらに、前記実施の形態４で述べたように前記クロック信号Ｃ１及び前記クロック信号Ｃ２を指定回路パスとして図２６の検索流れのステップ４にて指定して、前記クロック信号Ｃ１及び前記クロック信号Ｃ２に接続された回路パスのみに関する文字列回路パスデータ８をステップ５にて作成するようにすれば、前記文字列回路パスデータ８のサイズが小さくなり、非同期回路を構成する部分回路をより高速に発見することができる。
【００７３】
（実施の形態７）
本実施の形態７は、文字列変換規則をもとに、文字列回路パスデータベースを再帰的に変換してデータベースのサイズを圧縮化し、特定の回路をより容易に発見することのできる回路検索システムに関する。また、本発明の実施の形態７による回路検索システムは、前記実施の形態１と同様な構成（図１）を有するため、その説明を省略する。
【００７４】
次に、本実施の形態７にかかる回路検索システムについて、具体的な検索例を用いて、図１、図１９〜図２５、及び図２７を参照しながら詳細に説明する。
【００７５】
図１９において、回路Ｚは、クロック信号Ｃを起点とする、所謂ゲーティッド・クロック回路と呼ばれる回路構成となっており、前記クロック信号ＣはＡＮＤ回路素子Ａの一方の入力端子と、クロック信号Ｃで駆動されるクロック・イネーブル制御回路とに接続され、前記クロック・イネーブル制御回路の出力信号Ｅはインバータ回路素子に接続され論理的に反転したクロック・イネーブル信号ＥＮとなり、前記ＡＮＤ回路素子Ａのもう一方の入力端子に接続される。その回路素子Ａの出力がゲーティッド・クロック信号Ｇとなり、回路Ｚのラッチ素子Ｒのクロック信号として接続されている。つまり回路Ｚは、前記ラッチ素子回路の動作を必要としないときには、クロック・イネーブル信号ＥＮを無効状態にすることでクロック信号Ｃからのクロック供給を停止させ消費電力を抑えることができる最近のシステムＬＳＩ設計には欠かせないゲーティッド・クロック回路ではあるが、前記ゲーティッド・クロック回路はクロック・グリッチと呼ばれる、クロック信号Ｃとクロック・イネーブル信号ＥＮとの非同期タイミング入力のメタ・ステーブル状態によりゲーティッド・クロック信号Ｇがノイズ的なパルスを発生し、回路全体の誤動作の原因となる。このため、ゲーティッド・クロック回路を設計する際には、前記クロック・グリッチを回避する回路構成（デグリッチャ回路と呼ぶ）にしておかなければならず、図１９のラッチ素子回路のクロック信号Ｇがクロック信号Ｃの反転論理イネーブル信号で制御されているのはこのためであり、システムの設計においては、前記ゲーティッド・クロック回路がデグリッチャ回路となっているかどうかをチェックするのが必須である。
【００７６】
しかしながら、前記ゲーティッド・クロック回路において、クロック信号Ｃとクロック・イネーブル信号ＥＮ間のタイミング関係は通常インバータ回路素子やバッファ回路素子の多段接続による構成で調整するため（図２０参照）、全体回路網の中のゲーティッド・クロック回路が図１９回路Ｚのようなデグリッチャ回路構成となっているかどうかを発見することが困難であるが、本発明によればそれが容易に発見可能となる。
【００７７】
図２７は、本実施の形態７にかかる回路検索システムの、検索動作を示すフローチャートである。
図２７において、まず、ステップ１とステップ２では、図２１に示した文字変換規則に基づいて変換規則データ４を作成し、入力部１より入力する。
【００７８】
ステップ３からステップ５では、検索対象回路と、クロック信号Ｃを開始点に設定した検索パス指定データ１０（図２２参照）とを入力部１から入力すると、変換部５ａにより文字列回路パスデータ８が出力される。このときの文字列回路パスデータ８は図２３に示すようなものとなる。このような文字列回路パスデータ８が図１９で示されるデグリッチャ回路と論理的に等価であるかどうかを判定するのは困難であるが、ステップ６以降では文字列回路パスデータ８に対して文字列を論理的に圧縮することを行うので判定が容易になる。
【００７９】
まず、ステップ６とステップ７では、図２４に示すような論理的な文字列圧縮のための再変換規則を設定し、前記再変換規則データ１１と、前記ステップ５で生成された文字列回路パスデータ８とを入力部１より入力する。
【００８０】
ステップ８では、前記再変換規則データをもとに、文字列回路パスデータ８を構成する文字列を、再帰的に変換し（図２５参照）、論理的に圧縮された文字列回路パスデータ８ａを生成する。このようにして生成された文字列回路パスデータ８ａに対してであれば、クロック信号Ｃによって制御されるクロック・イネーブル信号ＥＮは、前記クロック信号Ｃを反転した論理信号で生成されているかどうかを容易に判定することができる。
【００８１】
このように、本実施の形態７による回路検索システムでは、回路素子の文字変換規則をもとに回路素子を変換して生成された文字列回路パスデータ８の文字列を、さらに文字再変換規則を用いて再帰的に変換し、論理的に圧縮するようにしたので、論理的に等価な回路パスを高速に発見することができる。
【００８２】
また、文字列回路パスデータ８のサイズ縮小化のために、インバータ回路素子の偶数段接続や、バッファ等の回路素子を前記文字列回路パスデータ８から取り除く際にも本発明は有効であることはいうまでもない。
【産業上の利用可能性】
【００８３】
本発明にかかる回路検索システムは、検索対象回路内から複数の特定回路のいずれかを、容易に早期に検索し、設計時間の大幅な短縮化を図ることができるという効果を有するものであり、回路設計時や回路検証時等に用いる回路検索システムとして有用である。
【図面の簡単な説明】
【００８４】
【図１】本発明の各実施の形態に係る回路検索システムの構成を示すブロック図である。
【図２】検索対象となる回路網を構成する回路素子の種類毎に、ユーザ設定文字を割り当てる変換規則の例を示す表である。
【図３】図２の変換規則を用いて、検索対象となる回路網を文字列へと変換した一例である。
【図４】本実施の形態２に用いた変換規則を示す表である。
【図５】本実施の形態３における、階層化された回路の一例を示す図である。
【図６】本実施の形態３に用いた変換規則を示す表である。
【図７】図６の変換規則を用いて図５の回路を文字変換した後の回路を示す図である。
【図８】本実施の形態４における、限定されたパスのみの検索を行う検索対象回路例を示す図である。
【図９】本実施の形態４で用いた検索パス指定データを示す表である。
【図１０】本実施の形態５における、複数ラッチ素子を含む検索対象回路例を示す図である。
【図１１】本実施の形態５で用いた変換規則を示す表である。
【図１２】図１１の変換規則を用いて図１０の回路を文字変換した後の回路を示す図である。
【図１３】本実施の形態５で用いた相互参照データを示す表である。
【図１４】本実施の形態６における、複数の信号と複数のラッチ素子を含む検索対象回路例を示す図である。
【図１５】本実施の形態６で用いた変換規則を示す表である。
【図１６】図１５の変換規則を用いて図１４の回路を文字変換した後の回路を示す図である。
【図１７】本実施の形態６にて、作成された文字列変換後の文字列回路パスデータを示す表である。
【図１８】本実施の形態６で用いた検索パターンデータを示す表である。
【図１９】本実施の形態７における、ゲーティッド・クロック回路の構成を示す図である。
【図２０】本実施の形態７における、インバータ等の多段接続による検索対象回路例を示す図である。
【図２１】本実施の形態７で用いた変換規則を示す表である。
【図２２】本実施の形態７で用いた検索パス指定データを示す表である。
【図２３】本実施の形態７にて、作成された文字列変換後の文字列回路パスデータを示す表である。
【図２４】本実施の形態７で用いた再変換規則を示す表である。
【図２５】本実施の形態７における、文字列回路パスデータベースの変換状態を示す表である。
【図２６】本実施の形態１乃至実施の形態６による回路検索システムにおける、検索手順を示すフローチャートである。
【図２７】本実施の形態７による回路検索システムにおける、検索手順を示すフローチャートである。
【符号の説明】
【００８５】
１    入力部
２    全体回路網データ
３    検索パターンデータ
４    変換規則データ
５    演算装置
５ａ  変換部
５ｂ  検索部
６    外部記憶装置
７    出力部
８    文字列回路パスデータ
８ａ  論理的圧縮後の文字列回路パスデータ
９    相互参照データ
１０  検索パス指定データ
１１  再変換規則データ
【図１】
2005222313.tif 000003
【図２】
2005222313.tif 000004
【図３】
2005222313.tif 000005
【図４】
2005222313.tif 000006
【図５】
2005222313.tif 000007
【図６】
2005222313.tif 000008
【図７】
2005222313.tif 000009
【図８】
2005222313.tif 000010
【図９】
2005222313.tif 000011
【図１０】
2005222313.tif 000012
【図１１】
2005222313.tif 000013
【図１２】
2005222313.tif 000014
【図１３】
2005222313.tif 000015
【図１４】
2005222313.tif 000016
【図１５】
2005222313.tif 000017
【図１６】
2005222313.tif 000018
【図１７】
2005222313.tif 000019
【図１８】
2005222313.tif 000020
【図１９】
2005222313.tif 000021
【図２０】
2005222313.tif 000022
【図２１】
2005222313.tif 000023
【図２２】
2005222313.tif 000024
【図２３】
2005222313.tif 000025
【図２４】
2005222313.tif 000026
【図２５】
2005222313.tif 000027
【図２６】
2005222313.tif 000028
【図２７】
2005222313.tif 000029