(57)【要約】【課題】２つの回路の相違部分を調べる回路比較装置において、ネットリスト上では相違があっても、電気的には等価な部分は、相違部分として抽出しないようにする。【解決手段】行列生成手段２１は、比較元回路を構成する部品の接続関係を表した比較元ネットリストと、比較先回路を構成する部品の接続関係を表した比較先ネットリストとを比較して両回路の相違部分を検出する。比較結果解析手段２３は、比較手段２２で検出された相違部分の中から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、入れ替え相違部分から電気的には等価な等価相違部分を抽出する。そして、比較手段２２で検出された相違部分から上記等価相違部分を除外した相違部分を、比較元回路と比較先回路との相違部分とする。【選択図】図１
2009282669.tif 000002
【特許請求の範囲】
【請求項１】
比較元回路を構成する部品の接続関係を表した比較元ネットリストと、比較先回路を構成する部品の接続関係を表した比較先ネットリストとを比較して前記比較元回路と前記比較先回路との相違部分を検出する比較手段と、
該比較手段で検出された相違部分の中から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、該抽出した入れ替え相違部分から電気的には等価な等価相違部分を抽出し、更に、前記比較手段で検出された相違部分から前記等価相違部分を除外した相違部分を、前記比較元回路と前記比較先回路との相違部分とする比較結果解析手段とを備えたことを特徴とする回路比較装置。
【請求項２】
請求項１記載の回路比較装置において、
行列記憶部と、
前記比較元ネットリストによって表されている部品の接続関係を行列の形式で表した比較元行列および前記比較先ネットリストによって表されている部品の接続関係を行列の形式で表した比較先行列を生成し、該生成した比較元行列および比較先行列を前記行列記憶部に登録する行列生成手段とを備え、且つ、
前記比較手段は、前記行列記憶部に登録されている比較元行列と比較先行列との差分を求めることにより、前記比較元回路と前記比較先回路との相違部分を検出することを特徴とする回路比較装置。
【請求項３】
請求項２記載の回路比較装置において、
前記比較元行列および前記比較先行列は、それぞれ、その行列を構成する各行または各列の内の一方に、前記比較元ネットリストおよび前記比較先ネットリストによって表されている各ネットが対応付けられ、他方に、前記比較元ネットリストおよび前記比較先ネットリストによって表されている各部品の各端子が対応付けられ、且つ、その行列の（ｎ行，ｍ列）要素には、ｎ行に対応付けられているネットまたは端子と、ｍ列に対応付けられている端子またはネットとが接続状態であるのか非接続状態であるのかを示す値が設定されていることを特徴とする回路比較装置。
【請求項４】
請求項２または３記載の回路比較装置において、
前記比較先行列の要素の内の、前記比較結果解析手段によって指定された要素の値を、端子の向きが現時点と反対になるように書き替え、該書き替えを行った後の比較先行列と前記比較元行列との差分を算出することを前記比較手段に対して指示するデータ変換手段を備え、且つ、
前記比較結果解析手段は、前記データ変換手段に対して前記抽出した等価相違部分に対応する要素を指定し、
前記比較手段は、前記比較元行列と前記書き替えが行われた後の比較先行列との差分を算出することを特徴とする回路比較装置。
【請求項５】
請求項４記載の回路比較装置において、
前記比較結果解析手段は、前記比較手段によって算出された差分に不一致部分が存在する場合は、前記データ変換手段に対して、前記比較先行列の行または列の内の、ネットが対応付けられている構成要素同士の入れ替えを指示し、
前記データ変換手段は、前記比較結果解析手段の指示に従って前記比較先行列の行または列の入れ替えを行い、該入れ替えを行った比較先行列と前記比較元行列との差分を算出することを前記比較手段に対して指示し、
前記比較手段は、前記比較元行列と前記入れ替えが行われた後の比較先行列との差分を算出することを特徴とする回路比較装置。
【請求項６】
請求項５記載の回路比較装置において、
前記比較結果解析手段は、全ての組み合わせについて行の入れ替えを指示し、前記比較手段によって算出された各組み合わせについての差分の内、不一致部分が最も少ない差分に関する情報を前記比較元回路と前記比較先回路との相違部分を示す情報として出力することを特徴とする回路比較装置。
【請求項７】
請求項３乃至６の何れか１項に記載の回路比較装置において、
前記行列記憶部には、前記比較元行列および前記比較先行列の要素の内、対応するネットと部品とが接続状態にある要素に関する情報が格納されていることを特徴とする回路比較装置。
【請求項８】
コンピュータが、比較元回路を構成する部品の接続関係を表した比較元ネットリストと、比較先回路を構成する部品の接続関係を表した比較先ネットリストとを比較して前記比較元回路と前記比較先回路との相違部分を検出する比較ステップと、
前記コンピュータが、前記比較ステップで検出された相違部分の中から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、該抽出した入れ替え相違部分から電気的には等価な等価相違部分を抽出し、更に、前記比較手段で検出された相違部分から前記等価相違部分を除外した相違部分を、前記比較元回路と前記比較先回路との相違部分とする比較結果解析ステップとを含むことを特徴とする回路比較方法。
【請求項９】
請求項８記載の回路比較方法において、
前記コンピュータが、前記比較元ネットリストによって表されている部品の接続関係を行列の形式で表した比較元行列および前記比較先ネットリストによって表されている部品の接続関係を行列の形式で表した比較先行列を生成し、該生成した比較元行列および比較先行列を行列記憶部に登録する行列生成ステップを含み、且つ、
前記比較ステップでは、前記行列記憶部に登録されている比較元行列と比較先行列との差分を求めることにより、前記比較元回路と前記比較先回路との相違部分を検出することを特徴とする回路比較方法。
【請求項１０】
請求項９記載の回路比較方法において、
前記比較元行列および前記比較先行列は、それぞれ、その行列を構成する各行または各列の内の一方に、前記比較元ネットリストおよび前記比較先ネットリストによって表されている各ネットが対応付けられ、他方に、前記比較元ネットリストおよび前記比較先ネットリストによって表されている各部品の各端子が対応付けられ、且つ、その行列の（ｎ行，ｍ列）要素には、ｎ行に対応付けられているネットまたは端子と、ｍ列に対応付けられている端子またはネットとが接続状態であるのか非接続状態であるのかを示す値が設定されていることを特徴とする回路比較方法。
【請求項１１】
請求項９または１０記載の回路比較方法において、
前記コンピュータが、前記比較先行列の要素の内の、前記比較結果解析ステップによって指定された要素の値を、端子の向きが現時点と反対になるように書き替え、該書き替えを行った後の比較先行列と前記比較元行列との差分を算出することを前記比較ステップに対して指示するデータ変換ステップを含み、且つ、
前記比較結果解析ステップでは、前記データ変換ステップに対して前記抽出した等価相違部分に対応する要素を指定し、
前記比較ステップでは、前記比較元行列と前記書き替えが行われた後の比較先行列との差分を算出することを特徴とする回路比較方法。
【請求項１２】
コンピュータを回路比較装置として機能させるためのプログラムであって、
前記コンピュータを、
比較元回路を構成する部品の接続関係を表した比較元ネットリストと、比較先回路を構成する部品の接続関係を表した比較先ネットリストとを比較して前記比較元回路と前記比較先回路との相違部分を検出する比較手段、
該比較手段で検出された相違部分の中から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、該抽出した入れ替え相違部分から電気的には等価な等価相違部分を抽出し、更に、前記比較手段で検出された相違部分から前記等価相違部分を除外した相違部分を、前記比較元回路と前記比較先回路との相違部分とする比較結果解析手段として機能させるためのプログラム。
【請求項１３】
請求項１２記載のプログラムにおいて、
前記コンピュータを、前記比較元ネットリストによって表されている部品の接続関係を行列の形式で表した比較元行列および前記比較先ネットリストによって表されている部品の接続関係を行列の形式で表した比較先行列を生成し、該生成した比較元行列および比較先行列を前記行列記憶部に登録する行列生成手段として機能させ、且つ、
前記比較手段は、前記行列記憶部に登録されている比較元行列と比較先行列との差分を求めることにより、前記比較元回路と前記比較先回路との相違部分を検出することを特徴とするプログラム。
【請求項１４】
請求項１３記載のプログラムにおいて、
前記比較元行列および前記比較先行列は、それぞれ、その行列を構成する各行または各列の内の一方に、前記比較元ネットリストおよび前記比較先ネットリストによって表されている各ネットが対応付けられ、他方に、前記比較元ネットリストおよび前記比較先ネットリストによって表されている各部品の各端子が対応付けられ、且つ、その行列の（ｎ行，ｍ列）要素には、ｎ行に対応付けられているネットまたは端子と、ｍ列に対応付けられている端子またはネットとが接続状態であるのか非接続状態であるのかを示す値が設定されていることを特徴とするプログラム。
【請求項１５】
請求項１３または１４記載のプログラムにおいて、
前記コンピュータを、前記比較先行列の要素の内の、前記比較結果解析手段によって指定された要素の値を、端子の向きが現時点と反対になるように書き替え、該書き替えを行った後の比較先行列と前記比較元行列との差分を算出することを前記比較手段に対して指示するデータ変換手段として機能させ、且つ、
前記比較結果解析手段は、前記データ変換手段に対して前記抽出した等価相違部分に対応する要素を指定し、
前記比較手段は、前記比較元行列と前記書き替えが行われた後の比較先行列との差分を算出することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２つの回路の相違部分を抽出する回路比較技術に関し、特に、電気的に等価な相違部分（等価相違部分）は、相違部分から除外することができる回路比較技術に関する。
【背景技術】
【０００２】
回路設計支援システム（ＣＡＤ）を利用して回路設計を行っていると、２つの回路の相違部分を確認する必要に迫られる場合がある。例えば、回路を改版した場合や、新たなツールに回路を入力し直した場合、２つの回路の相違部分を確認する必要がある。
【０００３】
２つの回路の相違部分を抽出する技術としては、比較元回路のネットリストと比較先回路のネットリストを比較することにより、回路の相違部分を抽出する技術が知られている（例えば、特許文献１〜３参照）。
【０００４】
【特許文献１】特開平７−２３９８７０号公報
【特許文献２】特開２００３−２３３６３６号公報
【特許文献３】特開２００３−２８１２１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
回路を構成する部品としては、抵抗やコンデンサのように、端子を入れ替えても電気的には等価な部品（端子交換可能部品）が存在する。しかし、上述した特許文献１〜３に記載されている技術は、端子交換可能部品を考慮せずに、ネットリストの不一致部分の全てを、回路の相違部分として抽出している。このため、端子交換可能部品の端子の向きが反対になっている電気的には等価な部分も、相違部分として抽出してしまうという問題があった。
【０００６】
〔発明の目的〕
そこで、本発明の目的は、ネットリスト上では相違があっても、電気的には等価な部分は、相違部分として抽出しないようにすることができる回路比較装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明にかかる第１の回路比較装置は、
比較元回路を構成する部品の接続関係を表した比較元ネットリストと、比較先回路を構成する部品の接続関係を表した比較先ネットリストとを比較して前記比較元回路と前記比較先回路との相違部分を検出する比較手段と、
該比較手段で検出された相違部分の中から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、該抽出した入れ替え相違部分から電気的には等価な等価相違部分を抽出し、更に、前記比較手段で検出された相違部分から前記等価相違部分を除外した相違部分を、前記比較元回路と前記比較先回路との相違部分とする比較結果解析手段とを備えている。
【０００８】
本発明にかかる第１の回路比較方法は、
コンピュータが、比較元回路を構成する部品の接続関係を表した比較元ネットリストと、比較先回路を構成する部品の接続関係を表した比較先ネットリストとを比較して前記比較元回路と前記比較先回路との相違部分を検出する比較ステップと、
前記コンピュータが、前記比較ステップで検出された相違部分の中から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、該抽出した入れ替え相違部分から電気的には等価な等価相違部分を抽出し、更に、前記比較手段で検出された相違部分から前記等価相違部分を除外した相違部分を、前記比較元回路と前記比較先回路との相違部分とする比較結果解析ステップとを含む。
【０００９】
本発明にかかる第１のプログラムは、
コンピュータを回路比較装置として機能させるためのプログラムであって、
前記コンピュータを、
比較元回路を構成する部品の接続関係を表した比較元ネットリストと、比較先回路を構成する部品の接続関係を表した比較先ネットリストとを比較して前記比較元回路と前記比較先回路との相違部分を検出する比較手段、
該比較手段で検出された相違部分の中から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、該抽出した入れ替え相違部分から電気的には等価な等価相違部分を抽出し、更に、前記比較手段で検出された相違部分から前記等価相違部分を除外した相違部分を、前記比較元回路と前記比較先回路との相違部分とする比較結果解析手段として機能させる。
【発明の効果】
【００１０】
本発明によれば、ネットリスト上では相違があっても、電気的には等価な部分は、相違部分として抽出しないようにすることができるという効果を得ることができる。
【発明を実施するための最良の形態】
【００１１】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００１２】
〔本発明の実施の形態〕
図１を参照すると、本発明の実施の形態は、キーボードや各種記録媒体の読み取り装置などの入力装置１と、プログラム制御により動作するコンピュータによって実現される回路比較装置２と、ディスク装置などの記憶装置３と、ディスプレイ装置、プリンタ或いは各種記録媒体への書き込み装置などの出力装置４とから構成されている。
【００１３】
入力装置１は、比較元の電気回路（比較元回路）を構成する部品の接続関係を表した比較元ネットリストＮＬ１と、比較先の電気回路（比較先回路）を構成する部品の接続関係を表した比較先ネットリストＮＬ２と、比較元回路および比較先回路に存在する端子交換可能部品を表す端子交換可能部品情報ＥＸとを回路比較装置２へ入力する機能を有する。端子交換可能部品とは、一般的な抵抗やコンデンサのように、等価ピンを持ち、端子を交換して接続しても電気的に同等の動作を行う部品のことである。なお、比較元ネットリストＮＬ１、比較先ネットリストＮＬ２において、同じ部品には同じ回路符号が付されているとする。
【００１４】
記憶装置３は、行列記憶部３１と、端子交換可能部品情報記憶部３２と、比較対象記憶部３３と、比較結果記憶部３４と、不一致列数・比較結果記憶部３５とを含んでいる。
【００１５】
回路比較装置２は、行列生成手段２１と、比較手段２２と、比較結果解析手段２３と、データ変換手段２４とを備えている。
【００１６】
行列生成手段２１は、比較元ネットリストＮＬ１および比較先ネットリストＮＬ２によって表されている部品の接続関係を行列の形式で表した比較元行列および比較先行列を生成し、生成した比較元行列および比較先行列を配列（２次元配列）の形で行列記憶部３１に登録する。また、比較先行列は、比較対象記憶部３３にも登録する。
【００１７】
本実施の形態の比較元行列および比較先行列は、それぞれ、各行に比較元ネットリストＮＬ１および比較先ネットリストＮＬ２によって表されている各ネット（接続点）が対応付けられ、各列に比較元ネットリストＮＬ１および比較先ネットリストＮＬ２によって表されている各部品の各端子が対応付けられている。また、（ｎ行，ｍ列）要素には、ｎ行に対応付けられているネットと、ｍ列に対応付けられている端子とが接続状態であるのか非接続状態であるのかを示す値が設定されている。以下では、値１が接続状態、値０が非接続状態を示すものとする。なお、どの列にどの端子を対応付けるかは予め定められた規則に従う。例えば、端子を特定する端子特定情報（回路符号と端子番号とから構成される）を昇順に並べ、並び順が前の端子特定情報によって特定される端子ほど、列番号が小さい列に対応付けるという規則を採用することができる。
【００１８】
更に、行列生成手段２１は、行列の列番号と端子特定情報との対応表を生成し、行列記憶部３１に登録する。この対応表は、比較元ネットリストＮＬ１、比較先ネットリストＮＬ２に含まれている全端子の端子特定情報を所定の規則（昇順）で並べたものである。
【００１９】
図２を参照すると、比較元行列の一例が示されている。この例は、次のことを示している。
・行列の第１列目、第２列目が、それぞれ部品Ｒ１の端子番号「１」の端子（以下１番端子）、部品Ｒ１の端子番号「２」の端子（以下２番端子）に対応付けられている（対応表によりこの対応付けが行われる）。
・第１行目、第２行目が、それぞれネット名「１」「２」のネット（以下、ネット１、２）に対応付けられている。
・部品Ｒ１の１番端子、２番端子はそれぞれネット１、２に接続されている。
【００２０】
更に、行列生成手段２１は、入力装置１から入力された端子交換可能部品情報ＥＸを端子交換可能部品情報記憶部３２に登録する。なお、比較元回路および比較先回路の端子交換可能部品が存在しない場合は、端子交換可能部品情報ＥＸは入力されない。
【００２１】
比較手段２２は、行列記憶部３１に登録されている比較元行列と、比較対象記憶部３３に登録されている比較先行列との差分を算出し（要素毎の引き算を行う）、算出した差分（差分行列）を配列の形で比較対象記憶部３３に登録する。
【００２２】
比較結果解析手段２３は、差分行列中の各要素の配置位置と値とから、比較元回路と比較先回路との差分の様子を解析し、解析結果に応じた処理を行う。より具体的には、比較結果解析手段２３は次のような処理を行う。
【００２３】
・１つの部品の端子に関する要素の値が全て０であれば、その部品の接続は一致していると判断する。そして、全ての部品の端子に関する要素の値が全て０である場合は、比較元回路と比較先回路との相違部分を示す情報として、差分行列に関する情報（例えば差分行列そのものや、相違部分がないことを示すメッセージなど）を出力装置４へ出力する。
・１つの部品の端子に関して、−１と１との組み合わせを有する行、列がそれぞれ２行、２列存在する場合は、その部品は端子が入れ替わっていると判断する。そして、端子が入れ替わっていると判断した部品が存在する場合は、その部品が対応付けられている列の列番号の対をデータ変換手段２４に渡す。
・１つの部品の端子に関する要素の値として上記以外のものが存在する場合は、比較相手のネットが間違っていると判断し、値が０以外の要素を含んだ列の列数（不一致列数）を求めると共に、値が０以外の要素を含んだ行の行番号の対をデータ変換手段２４に渡す。更に、今回求めた不一致列数と、不一致列数・比較結果記憶部３５に登録されている不一致列数とを比較し、今回求めた不一致列数の方が少ない場合に限り、今回求めた不一致列数と、比較結果記憶部３４に登録されている差分行列とを、不一致列数・比較結果記憶部３５に登録する。
【００２４】
データ変換手段２４は、比較結果解析手段２３からの指示に従って、比較先行列を変更する。より具体的には、データ変換手段２４は、次のような処理を行う。
【００２５】
・比較結果解析手段２３から列番号の対が渡された場合は、比較対象記憶部３３に格納されている比較先行列の、上記列番号の対によって示される列の入れ替えを行う。その後、比較手段２２に対して行列記憶部３１に格納されている比較元行列と比較対象記憶部３３に登録されている比較先行列との比較を行うことを指示する。
・比較結果解析手段２３から行番号の対が渡された場合は、行列記憶部３１に登録されている比較先行列を読み込み、読み込んだ比較先行列中の上記行番号の対によって示される行を入れ替え、入れ替え後の比較先行列を比較対象記憶部３３に登録する。その後、その後、比較手段２２に対して行列記憶部３１に格納されている比較元行列と比較対象記憶部３３に登録されている比較先行列との比較を行うことを指示する。
【００２６】
なお、回路比較装置２をコンピュータによって実現する場合は、例えば、次のようにする。コンピュータを回路比較装置２として機能させるためのプログラムを記録したディスク、半導体メモリ、その他の記録媒体を用意し、コンピュータに上記プログラムを読み取らせる。コンピュータは、読み取ったプログラムに従って自身の動作を制御することにより、自コンピュータ上に、行列生成手段２１、比較手段２２、比較結果解析手段２３およびデータ変換手段２４を実現する。
【００２７】
〔実施の形態の動作に説明〕
次に、本実施の形態の動作について詳細に説明する。なお、以下では、図３に示す回路１と回路２とを比較する場合、および図３に示す回路１と回路３とを比較する場合を例に挙げて説明を行う。なお、説明のため、回路１、２とでは、部品（抵抗）Ｒ３の１、２番端子を入れ替え、回路ＣＫＴ１、ＣＫＴ３とでは、更に部品（電源）Ｅ１の１，２番端子も入れ替えている。
【００２８】
先ず、回路１と回路２とを比較する場合について説明する。
【００２９】
入力装置１から与えられた比較元ネットリストＮＬ１、比較先ネットリストＮＬ２および端子交換可能部品情報ＥＸは、行列生成手段２１に供給される。なお、比較元ネットリストＮＬ１、比較先ネットリストＮＬ２は、それぞれ回路１、２を構成する部品の接続関係を示している。
【００３０】
行列生成手段２１は、比較元ネットリストＮＬ１および比較先ネットリストＮＬ２に基づいて比較元行列および比較先行列を生成し、生成した両行列を行列記憶部３１に登録すると共に、端子交換可能部品情報ＥＸを行列記憶部３１に登録する。更に、行列生成手段２１は、比較先行列を比較対象記憶部３３に登録する（図４の手順Ａ１）。
【００３１】
ここで、手順Ａ１で行う処理を詳しく説明すると、次のようになる。
【００３２】
・手順Ａ１−１
比較元ネットリストＮＬ１で表される回路１中の全てのネットについて、そこに接続されている端子を図５に示すように列記する。図５では、便宜上、調査した順にネット１、ネット２、ネット３と名前を付けている。なお、何処にも接続されていない端子があった場合は、それらも“ＮＣ（無接続）”と呼ばれるネットに接続されているとみなして、一般のネットと同じ処理をする。
【００３３】
・手順Ａ１−２
図５に示したリストを、図６に示すような行列の形式（比較元行列ＣＫＴ１）に変換する。図６において、各行は各ネットを表し、各列はそのネットに接続されている各端子を表している。各列と各端子との対応関係は、端子特定情報を昇順に並べた際の並び順が前になる端子ほど、列番号が小さい列に対応付けられている。
【００３４】
・手順Ａ１−３
図６に示した比較元行列ＣＫＴ１の行を、以下の規則（１）、（２）で並べ替える。
（１）第１行目には、“１番先頭の要素が１”の行を選択する。
（２）第２行目以降には、残りの行の中で“最も左側に１がくる行”を順次選択していく。
その結果、図６に示した比較元行列ＣＫＴ１は、図７に示した比較元行列ＣＫＴ１のようになる。この図７に示した比較元行列ＣＫＴ１は、配列の形で行列記憶部３１に登録される。
【００３５】
・手順Ａ１−４
同様の手順で、回路２を表す比較先行列ＣＫＴ２を生成し、生成した比較先行列ＣＫＴ２を配列の形で行列記憶部３１および比較対象記憶部３３に登録する。この例の場合、比較先行列ＣＫＴ２は、図８に示すものとなる。前述したように、回路２では、部品Ｒ３の１番端子と２番端子とを入れ替えているため、対応する箇所（２行７列〜３行８列）が比較元行列ＣＫＴ１と異なっている。なお、ネット１'〜３'が比較元行列ＣＫＴ１のネット１〜３と一致するかは、この時点では未だ不明である（この点については、後述の手順Ａ７以降で説明する）。
【００３６】
以上が手順Ａ１で行われる処理の詳細である。手順Ａ１において生成された行列ＣＫＴ１、ＣＫＴ２は、行列記憶部３１および比較対象記憶部３３を経由して比較手段２２に引き継がれ、ここで両者が比較される（手順Ａ２）。
【００３７】
・手順Ａ２
比較手段２２は、比較元行列ＣＫＴ１と比較先行列ＣＫＴ２とを比較するため、両者の差分を取る（要素毎に引き算する）。そして、差分行列ＣＫＴ１−ＣＫＴ２を配列の形で比較結果記憶部３４に登録する。この例の場合、差分行列ＣＫＴ１−ＣＫＴ２は、図９に示すものとなる。
【００３８】
・手順Ａ３
比較結果解析手段２３は、比較結果記憶部３４に図９に示す差分行列ＣＫＴ１−ＣＫＴ２が登録されると、その要素が全て０であるか否かを判定する。この例では、０以外の要素が存在するので、比較結果解析手段２３は、手順Ａ４の処理を行う（手順Ａ３がノー）。
【００３９】
・手順Ａ４
図９の差分行列ＣＫＴ１−ＣＫＴ２の場合、２行７列から３行８列にかけては、−１と１の組（図１０参照）が行方向および列方向に共に存在するので、部品Ｒ３の１番端子と２番端子がネット２とネット３で入れ替わっていると判断する。その後、部品Ｒ３の１、２番端子が交換可能か否かを判断する。この判断は、端子交換可能部品情報記憶部３２に格納されている端子交換可能部品情報ＥＸを利用して行う。
【００４０】
端子交換可能部品情報ＥＸは、例えば、次のような形式で端子交換が可能な部品を指示している。
・その部品の持つ全ての端子が交換可能な場合（例：抵抗、コンデンサ等）…回路符号（例えば、Ｒ１、Ｒ２，Ｒ３など）で指示する。
・その部品の特定の端子が交換可能な場合（例：ＩＣ等）…回路符号＋端子番号で指示する。今回の回路には無いが、例えばＩＣ１−１，２やＩＣ１−３，４等が想定できる。
【００４１】
今、例えば、端子交換可能部品情報記憶部３２に登録されている端子交換可能部品情報ＥＸに回路符号Ｒ１、Ｒ２、Ｒ３が登録されているとすると、Ｒ３−１とＲ３−２とが部品Ｒ３の全端子であることを確認（行列の列情報に、部品Ｒ３の他の端子が含まれていないことを確認）した上で、交換可能と判断する（手順Ａ４がイエス）。そして、交換可能と判断すると、部品Ｒ３が対応付けられている列の列番号の対をデータ変換手段２４に渡す。
【００４２】
手順Ａ５
データ変換手段２４は、比較対象記憶部３３に格納されている比較先行列ＣＫＴ２（図８参照）の列の内、比較結果解析手段２３から渡された列番号の対によって示される列同士を入れ替える。この結果、比較対象記憶部３３には、図１１に示す比較先行列ＣＫＴ２が登録されることになる。その後、データ変換手段２４は、比較手段２２に対して行列記憶部３１に登録されている比較元行列ＣＫＴ１（図７参照）と比較対象記憶部３３に登録されている比較先行列ＣＫＴ２（図１１参照）とを比較することを指示する。
【００４３】
これにより、比較手段２２は、比較元行列ＣＫＴ１と比較先行列ＣＫＴ２との差分を求め、差分行列ＣＫＴ１−ＣＫＴ２を配列の形で比較結果記憶部３４に登録する（手順Ａ２）。このとき得られる差分行列ＣＫＴ１−ＣＫＴ２は、図１２に示すものとなる。
【００４４】
再度の比較によって、全ての要素が０になったため、比較結果解析手段２３は、交換可能な端子まで考慮すると、回路１と回路２とには相違部分が無いと判断し（手順Ａ３がイエス）、出力装置４に比較結果を出力し（手順Ａ６）、処理を終了する。ここで、比較結果としては、例えば、回路１と回路２とに不一致部分が無いことを示すメッセージや、比較結果記憶部３４に格納されている差分行列そのものを出力する。
【００４５】
次に、図３に示した回路１と回路３とを比較する場合の動作を説明する。
【００４６】
・手順Ａ１
行列生成手段２１が、回路１に対応する比較元行列ＣＫＴ１（図７参照）を行列記憶部３１に登録し、回路３に対応する比較先行列ＣＫＴ３（図１３参照）を行列記憶部３１および比較対象記憶部３３に登録する。本実施の形態では、前述した規則（１）、（２）に従って行の並び順を決定しているため、図７に示した比較元行列ＣＫＴ１のネット１、３に相当するネット１"、３"が、比較元行列ＣＫＴ１とは異なる行に対応付けられている（比較元行列ＣＫＴ１では、第１行目、第２行目に対応付けられており、比較先行列ＣＫＴ３では、第２行目、第１行目に対応付けられている）。
【００４７】
・手順Ａ２
その後、比較手段２２が比較元行列ＣＫＴ１と比較先行列ＣＫＴ３との差分を求め、差分行列ＣＫＴ１−ＣＫＴ３を配列の形で比較対象記憶部３３に格納する。このとき、得られる差分行列ＣＫＴ１−ＣＫＴ３は、図１４に示すものとなる。この差分行列ＣＫＴ１−ＣＫＴ３には、１つの部品の端子に関して、−１と１との組み合わせを有する行、列がそれぞれ２行、２列存在する部分（−１と１との組み合わせが存在する部分と記す場合もある）が無いので、端子交換を行うことができないと判断し（手順Ａ４がノー）、手順Ａ７に進む。
【００４８】
なお、図１４に示した差分行列ＣＫＴ１−ＣＫＴ３は次のことを意味している。
【００４９】
第３列目、第４列目（部品Ｒ１）に注目すると（図１５参照）、次のことが分かる。
・部品Ｒ１の１番端子は、異なるネットに接続されているか、比較したネットが異なった可能性がある（１や−１の位置から、第１行目と第２行目とを取り違えた可能性があることが分かる）。
・部品Ｒ１の２番端子は、同じネットに接続されている。
【００５０】
第５列目、第６列目（部品Ｒ２）に注目すると、次のことが分かる。
・部品Ｒ２の２番端子は、異なるネットに接続されているか、比較したネットが異なった可能性がある（１や−１の位置から、第１行目と第２行目とを取り違えた可能性があることが分かる）。
・部品Ｒ２の１番端子は、同じネットに接続されている。
【００５１】
第７行目、第８行目（部品Ｒ３）に注目すると（図１６参照）、次のことが分かる。
・比較したネットが異なっており、且つ、部品Ｒ３の端子の向きが反対である可能性がある。
【００５２】
・手順Ａ７
上記した差分行列ＣＫＴ１−ＣＫＴ３中の不一致列数と不一致列数・比較結果記憶部３５に登録されている不一致列数とを比較し、今回求めた不一致列数の方が少ない場合は、今回求めた不一致列数と比較結果記憶部３４に格納されている差分行列ＣＫＴ１−ＣＫＴ３とを比較結果記憶部３４に登録する。この例の場合、不一致列数・比較結果記憶部３５には、不一致列数が登録されていないので、不一致列数「４列」と図１４に示した差分行列ＣＫＴ１−ＣＫＴ３とを不一致列数・比較結果記憶部３５に登録することになる。なお、比較条件（比較元行列のどの行と比較先行列のどの行とを比較したのかを示す情報）も併せて不一致列数・比較結果記憶部３５に登録するようにしても良い。
【００５３】
・手順Ａ８
比較元行列ＣＫＴ１の行と比較先行列ＣＫＴ３の行との組み合わせ、全てについて処理が完了しているか否かを判断する。この例の場合、可能な組み合わせ（６通り）の内の、１つの組み合わせについてしか処理が完了していないため、判断結果はノーとなり、手順Ａ９に進む。その際、比較結果解析手段２３は、不一致部分が最も多い行の行番号と、次に不一致部分が多い行の行番号との対をデータ変換手段２４に渡す。この例では、行番号の対として「第１行目、第２行目」をデータ変換手段２４に渡すことになる（図１４参照）。
【００５４】
・手順Ａ９
比較対象記憶部３３に登録されている比較先行列ＣＫＴ３の行の内、比較結果解析手段２３から渡された行番号の対によって示される行同士を入れ替える。この例の場合、図１３に示す第１行目と第２行目とが入れ替えられるので、比較対象記憶部３３に登録される比較先行列ＣＫＴ３は、図１７に示すものとなる。その後、手順Ａ２の処理が行われる。
【００５５】
・手順Ａ２
比較手段２２が、図７に示した比較元行列ＣＫＴ１と図１７に示した比較先行列ＣＫＴ３との差分を求め、差分行列ＣＫＴ１−ＣＫＴ３（２回目）を比較対象記憶部３３に登録する。このとき、得られる差分行列ＣＫＴ１−ＣＫＴ３（２回目）は、図１８に示すものとなる。その後、手順Ａ３の処理が行われる。
【００５６】
・手順Ａ３
図１８に示した差分行列ＣＫＴ１−ＣＫＴ３（２回目）には、０以外の要素が含まれているので、次の手順Ａ４に進む。
【００５７】
・手順Ａ４
差分行列ＣＫＴ１−ＣＫＴ３（２回目）には、１行１列〜２行２列と、２行７列〜３行８列に、−１と１との組み合わせが存在するので、部品Ｅ１の１、２番端子が入れ替わっていると判断すると共に、部品Ｒ３の１、２番端子が入れ替わっていると判断する。その後、端子交換可能部品情報記憶部３２に登録されている端子交換可能部品情報ＥＸに基づいて、部品Ｒ３のみが端子交換可能であると判定し、部品Ｒ３が対応付けられている列の列番号の対「第７列、第８列」をデータ変換手段２４に渡す。
【００５８】
・手順Ａ５
データ変換手段２４は、比較対象記憶部３３に登録されている比較先行列ＣＫＴ３の列の内、比較結果解析手段２３から渡された列番号の対「第７列、第８列」によって示される列同士を入れ替える。このとき得られる比較先行列ＣＫＴ３は、図１９に示すものとなる。その後、手順Ａ２の処理が行われる。
【００５９】
・手順Ａ２
比較手段２２は、図７に示した比較元行列ＣＫＴ１と図１９に示した比較先行列ＣＫＴ３との差分を求め、差分行列ＣＫＴ１−ＣＫＴ３（３回目）を比較結果記憶部３４に登録する。このとき、得られる差分行列ＣＫＴ１−ＣＫＴ３（３回目）は、図２０に示すものとなる。
【００６０】
図２０に示した差分行列ＣＫＴ１−ＣＫＴ３（３回目）には、０以外の要素が含まれているので、手順Ａ３の判断結果はノーとなる。また、差分行列ＣＫＴ１−ＣＫＴ３（３回目）には、−１と１との組み合わせが存在するが、それは端子交換が不可能な部品Ｅ１についてのものであり、手順Ａ４の判断結果はノーとなるので、前述した手順Ａ７の処理が行われる。
【００６１】
そして、比較先行列の行と比較先行列の行との組み合わせ全てについて、上述した処理を行うと（手順Ａ８がイエス）、不一致列数・比較結果記憶部３５に登録されている差分行列を比較結果として出力する（手順Ａ６）。この例の場合は、図２０に示す差分行列ＣＫＴ１−ＣＫＴ３（３回目）が出力される。なお、上記差分行列ＣＫＴ１−ＣＫＴ３（３回目）から判定することができる相違部分を示すメッセージや、不一致列数・比較結果記憶部３５に登録されている比較条件も併せて出力するようにしても良い。
【００６２】
〔実施の形態の効果〕
本実施の形態によれば、ネットリスト上では相違があっても、電気的には等価な部分は、相違部分として抽出しないようにすることができるという効果を得ることができる。その理由は、比較手段２２によって検出された比較元回路と比較先回路との相違部分から、同一部品の端子の入れ替えにより発生した入れ替え相違部分を抽出し、更に、入れ替え相違部分から電気的には等価な等価相違部分を抽出し、等価相違部分は、比較元回路と比較先回路との相違部分から除外する比較結果解析手段２３を備えているからである。
【００６３】
また、本実施の形態では、比較元ネットリストＮＬ１、比較先ネットリストＮＬ２を行列の形に変換してから処理を行うようにしているので、処理速度を高速化することができる。
【００６４】
更に、本実施の形態では、比較先行列の行（ネットが対応付けられている）を入れ替えながら、比較元行列との差分を求めるようにしているので、比較元行列と比較先行列との行の対応関係が分からない場合でも、比較元回路と比較先回路との相違部分を抽出することが可能になる。
【００６５】
〔発明の他の実施の形態〕
なお、上述した実施の形態では、行にネットを対応付け、列に部品の端子を対応付けたが、対応付けを反対にしても良い。その際には、全ての動作で列に対する操作と行に対する操作とを交換すれば良い。また、上述した実施の形態では、行列を配列の形式で記憶するようにしたが、行列の要素の内、対応するネットと部品とが接続状態にある要素に関する情報（例えば、その要素の行番号と列番号）のみを記憶するようにしても良い。データの特性上、ある列において要素が１となる行は１つしか存在しないため、上記したようにすることにより、比較元行列、比較先行列、差分行列などを記憶しておくために必要になる記憶容量を少なくすることができる。また、上述した実施の形態では、全ての行の組み合わせについて処理が完了したとき（手順Ａ８がイエス）、比較結果を出力するようにしたが、不一致列数の値が所定の閾値よりも小さくなったときに、不一致列数・比較結果記憶部３５に登録されている差分行列を比較結果として出力するようにしても良い。
【産業上の利用可能性】
【００６６】
本発明は、ＣＡＤに適用すると好適である。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態の構成例を示すブロック図である。
【図２】比較元行列の一例を示す図である。
【図３】比較対象にする回路の例を示した図である。
【図４】回路比較装置２の処理例を示すフローチャートである。
【図５】回路１に対応する行列（比較元行列ＣＫＴ１）を生成する処理を説明するための図である。
【図６】比較元行列ＣＫＴ１の一例を示した図である。
【図７】比較元行列ＣＫＴ１の行を所定の規則（１）、（２）によって入れ替えた後の状態を示す図である。
【図８】回路２に対応する行列（比較先行列ＣＫＴ２）の一例を示す図である。
【図９】比較元行列ＣＫＴ１と比較先行列ＣＫＴ２との差分行列ＣＫＴ１−ＣＫＴ２の一例を示す図である。
【図１０】差分行列ＣＫＴ１−ＣＫＴ２の一部を示した図である。
【図１１】列の入れ替えを行った後の比較元行列ＣＫＴ２を示した図である。
【図１２】比較元行列ＣＫＴ１と列を入れ替えた後の比較先行列ＣＫＴ２との差分行列を示す図である。
【図１３】回路３に対応する行列（比較先行列ＣＫＴ３）の一例を示す図である。
【図１４】比較元行列ＣＫＴ１と比較先行列ＣＫＴ３との差分行列ＣＫＴ１−ＣＫＴ３の一例を示す図である。
【図１５】差分行列ＣＫＴ１−ＣＫＴ３の一部を示す図である。
【図１６】差分行列ＣＫＴ１−ＣＫＴ３の一部を示す図である。
【図１７】行の入れ替えを行った後の比較先行列ＣＫＴ３を示した図である。
【図１８】比較元行列ＣＫＴ１と行の入れ替えを行った比較先行列ＣＫＴ３との差分行列ＣＫＴ１−ＣＫＴ３（２回目）を示す図である。
【図１９】行の入れ替え後、更に、列の入れ替えを行った比較先行列ＣＫＴ３を示す図である。
【図２０】比較元行列ＣＫＴ１と列の入れ替えを行った後の比較先行列ＣＫＴ３との差分行列ＣＫＴ１−ＣＫＴ３（３回目）を示す図である。
【符号の説明】
【００６８】
１…入力装置
２…回路比較装置
２１…行列生成手段
２２…比較手段
２３…比較結果解析手段
２４…データ変換手段
３…記憶装置
３１…行列記憶部
３２…端子交換可能部品情報記憶部
３３…比較対象記憶部
３４…比較結果記憶部
３５…不一致列数・比較結果記憶部
４…出力装置
ＮＬ１…比較元ネットリスト
ＮＬ２…比較先ネットリスト
ＥＸ…端子交換可能部品情報
【図１】
2009282669.tif 000003
【図２】
2009282669.tif 000004
【図３】
2009282669.tif 000005
【図４】
2009282669.tif 000006
【図５】
2009282669.tif 000007
【図６】
2009282669.tif 000008
【図７】
2009282669.tif 000009
【図８】
2009282669.tif 000010
【図９】
2009282669.tif 000011
【図１０】
2009282669.tif 000012
【図１１】
2009282669.tif 000013
【図１２】
2009282669.tif 000014
【図１３】
2009282669.tif 000015
【図１４】
2009282669.tif 000016
【図１５】
2009282669.tif 000017
【図１６】
2009282669.tif 000018
【図１７】
2009282669.tif 000019
【図１８】
2009282669.tif 000020
【図１９】
2009282669.tif 000021
【図２０】
2009282669.tif 000022