以下に、本願の開示する解析プログラム、解析方法及び解析装置の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
[解析装置の構成]
実施例に係る解析装置について説明する。図1は、実施例に係る解析装置の機能構成の一例を示す図である。図1に示すように、解析装置10は、入力部11と、表示部12と、記憶部13と、制御部14とを有する。解析装置10は、プリント基板の信号の品質を解析する装置である。
解析装置10が解析を行う対象のプリント基板の一例について説明する。図2は、プリント基板の一例を示す図である。図2は、プリント基板15の一部を示す。図2の例に示すように、プリント基板15は、ASIC(Application Specific Integrated Circuit)16、DRAM(Dynamic Random Access Memory)などのメモリ17を有する。ASIC16は、信号が入力される入力ピン、信号を出力する出力ピン、及び、信号が入力されるとともに信号を出力する入出力ピンなどの各種のピン16aを有する。また、メモリ17は、入力ピン、出力ピン及び入出力ピンなどの各種のピン17aを有する。図2に示すように、ピン16aとピン17aとは、信号が流れる配線であるライン18を介して接続される。また、ライン18上には、抵抗、コンデンサ、コイルなどの部品19が、例えば、信号のノイズを抑制するためなどの目的で配置される。以下、信号を出力するピン16a、かかるピン16aから出力された信号をライン18を介して受信するピン17a、かかるピン16a及びピン17aに接続されたライン18、及び、ライン18上に配置される部品19の組み合わせを「ネット」と称する。
図1の説明に戻り、入力部11は、制御部14に情報を入力する。例えば、入力部11は、ユーザから後述の解析処理を実行する指示である解析実行指示を受け付けて、受け付けた解析実行指示を制御部14に入力する。ここで、解析実行指示には、解析処理を実行する際の条件である解析条件の識別子である解析条件名が、解析対象のネットに流れる信号ごとに付加される。ここでいう解析条件名とは、解析条件の名称である。
また、解析実行指示には、解析対象のネットに流れる信号のビットパターンが、「0」と「1」の各ビットが交互に繰り返されるビットパターンである場合には、次のような情報が付加される。すなわち、「0」と「1」の各ビットが交互に繰り返されるビットパターンであることを示す「UP繰り返し」が付加される。また、解析実行指示には、解析対象のネットに流れる信号のビットパターンが、「0」と「1」の各ビットが交互に繰り返されるビットパターンでない場合には、次のような情報が付加される。すなわち、「0」と「1」の各ビットが交互に繰り返されるビットパターン以外のビットパターンであることを示す「ランダムパターン」が付加される。
また、解析実行指示に「ランダムパターン」が付加された場合には、解析実行指示には、信号のビットパターン、例えば、「10001010001010」が付加される。
また、解析実行指示に「UP繰り返し」が付加された場合には、解析実行指示には、信号の周波数、例えば、400[MHz]が付加される。
入力部11のデバイスの一例としては、キーボードやマウスなどが挙げられる。
表示部12は、各種の情報を表示する。例えば、表示部12は、後述の解析部14eの制御によりプリント基板15の信号の品質を解析した結果である解析結果を表示する。
記憶部13は、制御部14で実行される各種プログラムを記憶する。また、記憶部13は、ネット情報13a、信号情報13b、部品情報13c、ライン情報13d、解析情報テーブル13e、解析条件テーブル13f、モデル情報テーブル13g、グルーピングテーブル13h及び解析結果データベース13iを記憶する。
ネット情報13aについて、説明する。ネット情報13aには、プリント基板15に含まれるネットを構成する構成要素を特定するための情報がネット毎に登録されている。例えば、ネット情報13aには、ピン16a、17a、ライン18、部品19を特定するための情報がネット毎に登録されている。
図3は、ネット情報の一例を示す図である。図3の例に示すように、ネット情報13aは、「ネット番号」及び「構成要素」の各項目を有する。「ネット番号」の項目には、ネットの識別子であるネット番号が登録される。図3の例は、「ネット番号」の項目に、ネット番号「N1」が登録された場合を示す。
「構成要素」の項目には、「ネット番号」の項目に登録されたネット番号によって特定されるネットを構成する各要素が、信号が流れる順に並べられて登録される。図3の例は、各要素が記号「,」で区切られて並べられている場合を示す。図3の例は、ネット番号「N1」によって特定されるネットを構成する要素のうち、1番目に信号が流れる要素が、回路部品番号「IC001」によって特定されるASIC16の148番ピンであることを示す。また、図3の例は、ASIC16の148番ピンの位置を示す座標が、(X1,Y1)であることを示す。また、図3の例は、2番目に信号が流れる要素が、後述のライン番号「A1」によって特定されるライン18であることを示す。また、図3の例は、3番目に信号が流れる要素が、回路部品番号「RD001」によって特定される抵抗の部品19であることを示す。また、図3の例は、回路部品番号「RD001」によって特定される抵抗の部品19の2番ピンに、ライン番号「A1」によって特定されるライン18が接続され、1番ピンに、ライン番号「A1」によって特定されるライン18が接続されることを示す。また、図3の例は、回路部品番号「RD001」によって特定される抵抗の部品19の位置を示す座標が、(X2,Y2)であることを示す。また、図3の例は、4番目に信号が流れる要素が、後述のライン番号「A2」によって特定されるライン18であることを示す。また、図3の例は、5番目に信号が流れる要素が、回路部品番号「IC002」によって特定されるメモリ17の13番ピンであることを示す。また、図3の例は、メモリ17の13番ピンの位置を示す座標が、(X3,Y3)であることを示す。
上述したように、図3の例に示すネット情報13aは、プリント基板15のネットを構成する要素の座標を含む。そのため、図3の例に示すネット情報13aは、ネットを構成する要素の実形状を示す情報である。
図1に戻り、信号情報13bについて説明する。信号情報13bには、プリント基板15を流れる信号の特性が信号ごとに登録されている。図4は、信号情報の一例を示す図である。図4の例に示すように、信号情報13bは、「信号名」、「ネット区分」、「信号種別」、「平衡伝送ネット」、「電源電圧[V]」及び「動作周波数[MHz]」の各項目を有する。
「信号名」の項目には、信号の名称である信号名が登録される。かかる信号名は、信号を識別するための識別子である。図4の例は、信号情報13bの1番目のレコードの「信号名」の項目に、信号名「GND」が登録された場合を示す。信号名「GND」によって特定される信号は、アース用のラインまたは領域に流れる信号である。また、図4の例は、信号情報13bの2番目のレコードの「信号名」の項目に、信号名「VCC」が登録された場合を示す。信号名「VCC」によって特定される信号は、電源に接続されたラインまたは領域に流れる信号である。また、図3の例は、信号情報13bの3番目のレコードの「信号名」の項目に、信号名「D00」が登録された場合を示す。信号名「D00」によって特定される信号は、2つのピンを接続するライン18に流れる信号である。すなわち、ネットを構成するライン18に流れる信号である。信号名「D01」、「D02」、「D03」、「DQS0P」及び「DQS0N」についても、同様に、ネットを構成するライン18に流れる信号である。
「ネット区分」の項目には、「信号名」の項目に登録された信号名によって特定される信号が流れるラインが、ネットを構成するライン18であるか否かを示す情報が登録される。例えば、図4の例は、1番目のレコードの「ネット区分」の項目に、「アース」が登録された場合を示す。「アース」は、信号名「GND」によって特定される信号が流れるアース用のラインまたは領域であることを示す。すなわち、「アース」は、ネットを構成するライン18ではないことを示す。また、図4の例は、2番目のレコードの「ネット区分」の項目に、「電源」が登録された場合を示す。「電源」は、信号名「VCC」によって特定される信号が流れる、電源に接続されたラインまたは領域であることを示す。すなわち、「電源」は、ネットを構成するライン18ではないことを示す。また、図4の例は、3番目のレコードの「ネット区分」の項目に、「信号」が登録された場合を示す。「信号」は、ネットを構成するライン18であることを示す。4番目から8番目のレコードについても同様に、「ネット区分」の項目に登録された「信号」は、ネットを構成するライン18であることを示す。
「信号種別」の項目には、「ネット区分」の項目に「信号」が登録された信号のうち、2本のラインに流れる2つのPositive信号とNegative信号とによって1つの信号を示す差動信号については「差動」が登録される。また、「信号種別」の項目には、「ネット区分」の項目に「信号」が登録された信号のうち、1本のラインを用いて1つの信号が流れるような信号については「一般」が登録される。なお、図4の例に示す「−」は、何も登録されていないことを示す。
「平衡伝送ネット」の項目には、「信号種別」の項目に「差動」が登録された信号に対して対となる信号の信号名が登録される。例えば、作動信号が、信号名「DQS0P」及び「DQS0N」の2つの信号によって1つの信号を示すものである場合には、「DQS0P」が「信号名」の項目に登録されたレコードの「平衡伝送ネット」の項目には、「DQS0N」が登録される。また、「DQS0N」が「信号名」の項目に登録されたレコードの「平衡伝送ネット」の項目には、「DQS0P」が登録される。
「電源電圧[V]」の項目には、信号名「VCC」によって特定される信号が流れるラインを介して電源から供給される電圧の大きさが登録される。図4の例は、信号名「VCC」によって特定される信号が流れるラインを介して電源から供給される電圧の大きさが3.3[V]であることを示す。
「動作周波数[MHz]」の項目には、「ネット区分」の項目に「信号」が登録された信号の周波数が登録される。例えば、図4の例は、信号名「D00」によって特定される信号の周波数が400[MHz]であることを示す。また、図4の例は、信号名「D01」〜「D03」、「DQS0P」及び「DQS0N」によって特定される各信号の周波数が400[MHz]であることを示す。
図1に戻り、部品情報13cについて説明する。部品情報13cには、ネットを構成する要素である部品に関する情報が部品ごとに登録されている。図5は、部品情報の一例を示す図である。図5の例に示すように、部品情報13cは、「回路部品番号」、「部品仕様名」、「システム品種記号」、「部品ピン数」及び「値」の各項目を有する。
「回路部品番号」の項目には、部品の識別子である部品の番号が登録される。図5の例に示す回路部品番号「IC001」は、ASIC16の番号である。また、回路部品番号「IC002」は、メモリ17の番号である。また、回路部品番号「RD001」は、抵抗の部品19の番号である。また、回路部品番号「C001」は、コンデンサの部品19の番号である。
「部品仕様名」の項目には、「回路部品番号」の項目に登録された番号によって特定される部品の、仕様書などに記述される名称が登録される。かかる名称は、部品を製造するベンダーによって提供される。図5の例に示す「ASIC」は、ASIC16の名称である。また、「MB81F643242B」は、メモリ17の名称である。また、「R33」は、抵抗の部品19の名称である。また、「C100000」は、コンデンサの部品19の名称である。
「システム品種記号」の項目には、「回路部品番号」の項目に登録された番号によって特定される部品の種類を示す記号が登録される。図5の例に示す「I」は、集積回路を示す。すなわち、図5の例は、ASIC16及びメモリ17は、集積回路であることを示す。また、「R」は、抵抗を示す。また、「C」は、コンデンサを示す。
「部品ピン数」の項目には、「回路部品番号」の項目に登録された番号によって特定される部品が有するピンの数が登録される。図5の例は、ASIC16が有するピンの数が「240」であることを示す。また、図5の例は、メモリ17が有するピンの数が「86」であることを示す。また、図5の例は、抵抗の部品19が有するピンの数が「2」であることを示す。また、図5の例は、コンデンサの部品19が有するピンの数が「2」であることを示す。
「値」の項目には、「回路部品番号」の項目に登録された番号によって特定される部品が、抵抗の部品19である場合には、抵抗の抵抗値が登録される。また、「値」の項目には、「回路部品番号」の項目に登録された番号によって特定される部品が、コンデンサの部品19である場合には、コンデンサの容量が登録される。図5の例は、抵抗の部品19の抵抗値が33[Ω]であることを示す。また、図5の例は、コンデンサの部品19の静電容量が100000[pF]であることを示す。なお、「回路部品番号」の項目に登録された番号によって特定される部品が、コイルである場合には、「値」の項目に、かかるコイルのインダクタンス値が登録される。
図1に戻り、ライン情報13dについて説明する。ライン情報13dには、ラインに関する情報がラインごとに登録されている。図6は、ライン情報の一例を示す図である。図6の例に示すように、ライン情報13dは、「ライン番号」、「信号名」、「層番号」、「線幅」、「始点X座標[mm]」、「始点Y座標[mm]」、「終点X座標[mm]」及び「終点Y座標[mm]」の各項目を有する。
「ライン番号」の項目には、ラインの識別子であるラインの番号であるライン番号が登録される。図6の例は、ライン情報13dの1番目のレコードの「ライン番号」の項目に、ライン番号「A1」が登録された場合を示す。また、図6の例は、ライン情報13dの2番目のレコードの「ライン番号」の項目に、ライン番号「A2」が登録された場合を示す。
「信号名」の項目には、「ライン番号」の項目に登録されたライン番号によって特定されるラインに流れる信号の信号名が登録される。図6の例は、ライン番号「A1」によって特定されるラインに流れる信号の信号名が「D00」であることを示す。また、図6の例は、ライン番号「A2」によって特定されるラインに流れる信号の信号名が「D00」であることを示す。
「層番号」の項目には、「ライン番号」の項目に登録されたライン番号によって特定されるラインが配置された層を特定するための層の番号である層番号が登録される。図6の例に示すライン情報13dの1番目のレコードには、ライン番号「A1」と、1番目の層であることを示す「L1」とが対応付けられて登録されている。そのため、図6の例は、ライン番号「A1」によって特定されるラインが、1番目の層に配置されたことを示す。同様に、図6の例は、ライン番号「A2」によって特定されるラインが、1番目の層に配置されたことを示す。
「線幅[mm]」の項目には、「ライン番号」の項目に登録されたライン番号によって特定されるラインの線幅が登録される。図6の例は、ライン番号「A1」によって特定されるラインの線幅が、0.15mmであることを示す。同様に、図6の例は、ライン番号「A2」によって特定されるラインの線幅が、0.15mmであることを示す。
「始点X座標[mm]」の項目には、「ライン番号」の項目に登録されたライン番号によって特定されるラインの始点のX座標が登録される。図6の例は、ライン番号「A1」によって特定されるラインの始点のX座標が、「X1」mmであることを示す。同様に、図6の例は、ライン番号「A2」によって特定されるラインの始点のX座標が、「X2」mmであることを示す。
「始点Y座標[mm]」の項目には、「ライン番号」の項目に登録されたライン番号によって特定されるラインの始点のY座標が登録される。図6の例は、ライン番号「A1」によって特定されるラインの始点のY座標が、「Y1」mmであることを示す。同様に、図6の例は、ライン番号「A2」によって特定されるラインの始点のY座標が、「Y2」mmであることを示す。
「終点X座標[mm]」の項目には、「ライン番号」の項目に登録されたライン番号によって特定されるラインの終点のX座標が登録される。図6の例は、ライン番号「A1」によって特定されるラインの終点のX座標が、「X2」mmであることを示す。同様に、図6の例は、ライン番号「A2」によって特定されるラインの終点のX座標が、「X3」mmであることを示す。
「終点Y座標[mm]」の項目には、「ライン番号」の項目に登録されたライン番号によって特定されるラインの終点のY座標が登録される。図6の例は、ライン番号「A1」によって特定されるラインの終点のY座標が、「Y2」mmであることを示す。同様に、図6の例は、ライン番号「A2」によって特定されるラインの終点のY座標が、「Y3」mmであることを示す。
図1に戻り、解析情報テーブル13eについて説明する。解析情報テーブル13eには、解析対象のネットに流れる信号に関する情報が信号ごとに、後述の抽出部14bによって登録される。図7は、解析情報テーブルの一例を示す図である。図7の例に示すように、解析情報テーブル13eは、「信号名」、「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」、「解析条件名」、「構成情報文字列」及び「グループ番号」の各項目を有する。
「信号名」の項目には、解析対象のネットに流れる信号の信号名が抽出部14bによって登録される。
「パルス種別」の項目には、「信号名」の項目に登録された信号名に対する信号のビットパターンが、「0」と「1」の各ビットが交互に繰り返されるビットパターンである場合には、次のような情報が登録される。すなわち、「パルス種別」の項目には、「0」と「1」の各ビットが交互に繰り返されるビットパターンであることを示す「UP繰り返し」が抽出部14bによって登録される。また、「パルス種別」の項目には、「信号名」の項目に登録された信号名に対する信号のビットパターンが、「0」と「1」の各ビットが交互に繰り返されるビットパターンでない場合には、次のような情報が登録される。すなわち、「パルス種別」の項目には、「0」と「1」の各ビットが交互に繰り返されるビットパターン以外のビットパターンであることを示す「ランダムパターン」が抽出部14bによって登録される。
「ビットパターン」の項目には、「パルス種別」の項目に「ランダムパターン」が登録された信号のビットパターンが抽出部14bにより登録される。図7の例は、信号名「D00」によって特定される信号のビットパターン「10001010001010」が、「ビットパターン」の項目に抽出部14bにより登録された場合を示す。また、図7の例は、信号名「D01」によって特定される信号のビットパターン「10001010001010」が、「ビットパターン」の項目に抽出部14bにより登録された場合を示す。また、図7の例は、信号名「D02」によって特定される信号のビットパターン「10001010001010」が、「ビットパターン」の項目に抽出部14bにより登録された場合を示す。
「動作周波数[MHz]」の項目には、「パルス種別」の項目に「UP繰り返し」が登録された信号の周波数が抽出部14bにより登録される。図7の例は、信号名「DQS0P」及び「DQS0N」によって特定される2つの信号のそれぞれの周波数が400[MHz]であることを示す。
「データレート[Mbps]」の項目には、「パルス種別」の項目に「ランダムパターン」が登録された信号のデータレートが抽出部14bにより登録される。図7の例は、信号名「D00」によって特定される信号のデータレートが800[Mbps]であることを示す。また、図7の例は、信号名「D01」によって特定される信号のデータレートが800[Mbps]であることを示す。また、図7の例は、信号名「D02」によって特定される信号のデータレートが800[Mbps]であることを示す。
「解析条件名」の項目には、「信号名」の項目に登録された信号名によって特定される信号の品質の解析を行う際の解析条件の識別子である解析条件名が、抽出部14bにより登録される。なお、抽出部14bにより登録される解析条件名は、入力部11により制御部14に入力された解析実行指示に付加される。図7の例は、信号名「D00」〜「D02」によって特定される各信号の品質が、解析条件名「条件1」によって特定される解析条件で解析されることを示す。また、図7の例は、信号名「DQS0P」及び「DQS0N」によって特定される2つの信号のそれぞれの品質が、解析条件名「条件2」によって特定される解析条件で解析されることを示す。
「構成情報文字列」の項目には、「信号名」の項目に登録された信号名によって特定される信号が流れるネットの構成要素について、座標等の情報を含む実形状の情報が除かれた、単なる接続関係で表現した構成情報文字列が抽出部14bにより登録される。構成情報文字列については後述する。
「グループ番号」の項目には、「構成情報文字列」の項目に登録された構成情報文字列が示す構成要素が属するグループの識別子であるグループ番号が抽出部14bにより登録される。図7の例に示す1番目のレコードは、「構成情報文字列」の項目に登録された構成情報文字列「DV[IC001.148]・・・RV[IC002.13]」が示す構成要素が、グループ番号「1」が示すグループに属することを示す。また、図7の例に示す2番目のレコードは、「構成情報文字列」の項目に登録された構成情報文字列「DV[IC001.149]・・・RV[IC002.12]」が示す構成要素が、グループ番号「1」が示すグループに属することを示す。また、図7の例に示す3番目のレコードは、「構成情報文字列」の項目に登録された構成情報文字列「DV[IC001.150]・・・RV[IC002.11]」が示す構成要素が、グループ番号「1」が示すグループに属することを示す。また、図7の例に示す4番目のレコードは、次の内容を示す。すなわち、かかるレコードは、「構成情報文字列」の項目に登録された構成情報文字列「DIFF_DV[IC001.200/201]・・・DIFF_RV[IC002.50/51]」が示す構成要素がグループ番号「2」が示すグループに属することを示す。
図1に戻り、解析条件テーブル13fについて説明する。解析条件テーブル13fには、解析条件に関する情報が解析条件ごとに登録されている。図8は、解析条件テーブルの一例を示す図である。図8の例に示すように、解析条件テーブル13fは、「解析条件名」、「モデリング種別」、「解析時間設定」及び「解析時間[ns]」の各項目を有する。
「解析条件名」の項目には、解析条件名が登録される。図8の例は、1番目のレコードの「解析条件名」の項目に、解析条件名「条件1」が登録された場合を示す。また、図8の例は、2番目のレコードの「解析条件名」の項目に、解析条件名「条件2」が登録された場合を示す。
「モデリング種別」の項目には、「解析条件名」の項目に登録された解析条件名によって特定される解析条件に含まれる、ネットのモデリングの種別が登録される。図8の例は、解析条件名「条件1」によって特定される解析条件に、Wエレメントによってネットをモデリングすることが含まれる場合を示す。また、図8の例は、解析条件名「条件2」によって特定される解析条件に、Wエレメントによってネットをモデリングすることが含まれる場合を示す。
「解析時間設定」の項目には、「解析条件名」の項目に登録された解析条件名によって特定される解析条件に含まれる、解析時間が指定された時間であるのか、自動的に設定される時間であるのかを示す情報が登録される。図8の例は、1番目のレコードの「解析時間設定」の項目に、解析時間が自動的に設定される時間であることを示す「自動設定」が登録された場合を示す。また、図8の例は、2番目のレコードの「解析時間設定」の項目に、解析時間が指定された時間であることを示す「時間指定」が登録された場合を示す。
「解析時間」の項目には、解析時間が指定された時間である場合に、かかる時間が登録される。図8の例は、解析条件名「条件2」によって特定される解析条件に含まれる、指定された解析時間が200[ns]であることを示す。
図1に戻り、モデル情報テーブル13gについて説明する。モデル情報テーブル13gには、ネットを構成する要素、すなわち、部品に関する情報が部品ごとに登録されている。図9は、モデル情報テーブルの一例を示す図である。図9の例に示すように、モデル情報テーブル13gは、「部品仕様名」、「部品ピン数」及び「部品ピン情報」の各項目を有する。
「部品仕様名」の項目には、仕様書などに記述される部品の名称が登録される。かかる名称は、部品を製造するベンダーによって提供される。
「部品ピン数」の項目には、「部品仕様名」の項目に登録された部品仕様名によって特定される部品が有するピンの数が登録される。図9の例は、部品仕様名「ASIC」によって特定されるASIC16が有するピンの数が「240」であることを示す。また、図9の例は、部品仕様名「MB81F643242」によって特定されるメモリ17が有するピンの数が「86」であることを示す。
「部品ピン情報」の項目には、「部品仕様名」の項目に登録された部品仕様名によって特定される部品が有する各ピンに関する情報が登録される。「部品ピン情報」の項目は、「ピン名」、「信号種別」、「モデル名」及び「モデルタイプ」の各項目を有する。
「ピン名」の項目には、「部品仕様名」の項目に登録された部品仕様名によって特定される部品が有する各ピンの番号が登録される。図9の例は、部品仕様名「ASIC」によって特定されるASIC16は、1番ピンから240番ピンまでのピンを有することを示す。また、図9の例は、部品仕様名「MB81F643242」によって特定されるメモリ17は、1番ピンから86番ピンまでのピンを有することを示す。
「信号種別」の項目には、「ピン名」の項目に登録された番号によって特定されるピンに流れる信号の種別を示す情報が登録される。例えば、「ピン名」の項目に登録された番号によって特定されるピンに流れる信号が、2本のラインに流れる2つの信号によって1つの信号を示す差動信号である場合には、「信号種別」の項目に「差動」が登録される。また、「ピン名」の項目に登録された番号によって特定されるピンに流れる信号が、1本のラインを用いて1つの信号が流れるような信号である場合には、「信号種別」の項目に「一般」が登録される。
「モデル名」の項目には、「ピン名」の項目に登録された番号によって特定されるピンのモデルの名称が登録される。かかる名称は、部品を製造するベンダーによって提供される。図9の例は、ASIC16の1番ピンのモデルの名称が、「IASIC001_Typ」であることを示す。また、図9の例は、ASIC16の240番ピンのモデルの名称が、「IASIC002_Typ」であることを示す。また、図9の例は、メモリ17の1番ピンのモデルの名称が、「ISDRAM001_Typ」であることを示す。また、図9の例は、メモリ17の86番ピンのモデルの名称が、「ISDRAM010_Typ」であることを示す。
「モデルタイプ」の項目には、「モデル名」の項目に登録された名前によって特定されるピンのタイプが登録される。例えば、「モデル名」の項目に登録された名前によって特定されるピンのタイプが、入力ピンである場合には、「モデルタイプ」の項目に、入力ピンであることを示す「入力」が登録される。また、「ピン名」の項目に登録された番号によって特定されるピンのタイプが、入出力ピンである場合には、「モデルタイプ」の項目に、入出力ピンであることを示す「入出力」が登録される。また、「ピン名」の項目に登録された番号によって特定されるピンのタイプが、出力ピンである場合には、「モデルタイプ」の項目に、出力ピンであることを示す「出力」が登録される。
図1に戻り、グルーピングテーブル13hについて説明する。グルーピングテーブル13hには、ネットが属するグループに関する情報がグループごとに後述のグルーピング部14cにより登録される。図10は、グルーピングテーブルの一例を示す図である。図10の例に示すように、グルーピングテーブル13hは、「グループ番号」、「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」、「解析条件」及び「比較用構成情報文字列」の各項目を有する。
「グループ番号」の項目には、グループ番号がグルーピング部14cにより登録される。
「パルス種別」の項目には、「グループ番号」の項目に登録されたグループ番号によって特定されるグループに属するネットに流れる信号のビットパターンが「0」と「1」の各ビットが交互に繰り返されるビットパターンである場合には、次の情報が登録される。すなわち、「パルス種別」の項目には、「0」と「1」の各ビットが交互に繰り返されるビットパターンであることを示す「UP繰り返し」がグルーピング部14cによって登録される。また、「グループ番号」の項目に登録されたグループ番号によって特定されるグループに属するネットに流れる信号のビットパターンが「0」と「1」の各ビットが交互に繰り返されるビットパターンでない場合には、次の情報が「パルス種別」の項目に登録される。すなわち、「パルス種別」の項目に、「0」と「1」の各ビットが交互に繰り返されるビットパターン以外のビットパターンであることを示す「ランダムパターン」がグルーピング部14cによって登録される。
「ビットパターン」の項目には、「パルス種別」の項目に「ランダムパターン」が登録されたグループに属するネットを流れる信号のビットパターンがグルーピング部14cにより登録される。図10の例は、「パルス種別」の項目に「ランダムパターン」が登録されたグループに属するネットを流れる信号のビットパターン「10001010001010」が、「ビットパターン」の項目にグルーピング部14cにより登録された場合を示す。
「動作周波数[MHz]」の項目には、「パルス種別」の項目に「UP繰り返し」が登録されたグループに属するネットを流れる信号の周波数がグルーピング部14cにより登録される。図10の例は、「パルス種別」の項目に「UP繰り返し」が登録されたグループに属するネットを流れる信号の周波数が400[MHz]であることを示す。
「データレート[Mbps]」の項目には、「パルス種別」の項目に「ランダムパターン」が登録されたグループに属するネットを流れる信号のデータレートがグルーピング部14cにより登録される。図10の例は、「パルス種別」の項目に「ランダムパターン」が登録されたグループに属するネットを流れる信号のデータレートが、800[Mbps]であることを示す。
「解析条件名」の項目には、「グループ番号」の項目に登録されたグループ番号によって特定されるグループに属するネットの解析を行う際の解析条件の識別子である解析条件名が、グルーピング部14cにより登録される。図10の例は、グループ番号「1」によって特定されるグループに属するネットを流れる信号の品質が、解析条件名「条件1」によって特定される解析条件で解析されることを示す。また、図10の例は、グループ番号「2」によって特定されるグループに属するネットを流れる信号の品質が、解析条件名「条件2」によって特定される解析条件で解析されることを示す。
「比較用構成情報文字列」の項目には、「グループ番号」の項目に登録されたグループ番号によって特定されるグループに属するネットを文字列で表した比較用構成情報文字列がグルーピング部14cにより登録される。「比較用構成情報文字列」の項目に登録された比較用構成情報文字列は、同一のグループに属するか否かを判定する際にグルーピング部14cによって新たに生成された比較用構成情報文字列と比較される。比較用構成情報文字列については後述する。
図1に戻り、解析結果データベース13iについて説明する。解析結果データベース13iには、ネットが属するグループに関する情報に対応付けて、プリント基板15を流れる信号の品質の解析の結果がグループごとに後述の解析部14eにより登録される。図11は、解析結果データベースの一例を示す図である。図11の例に示すように、解析結果データベース13iは、「グループ番号」、「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」、「解析条件」、「比較用構成情報文字列」及び「解析結果」の各項目を有する。
解析結果データベース13iの「グループ番号」、「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」、「解析条件」及び「比較用構成情報文字列」の各項目には、解析部14eにより、次の情報が登録される。すなわち、解析部14eにより、先の図10に示すグルーピングテーブル13hの同一の項目名の項目に登録された内容が全て登録される。
「解析結果」の項目には、解析結果が解析部14eにより登録される。「解析結果」の項目は、「レベル」、「段付き」、「波形割れ」、「OS(Over Shoot)/US(Under Shoot)」及び「Tr/Tf」の各項目を有する。
「レベル」の項目には、ネットに流れる信号の「1」を示す部分が所定条件を満たすとともに、「0」を示す部分が所定条件を満たす場合には、信号の品質の解析結果が良好であることを示す「OK」が解析部14eにより登録される。また、「レベル」の項目には、ネットに流れる信号の「1」を示す部分が所定条件を満たさないか、または、「0」を示す部分が所定条件を満たさない場合には、信号の品質の解析結果が不良であることを示す「NG」が解析部14eにより登録される。例えば、信号の「1」を示す部分の電圧が、所定時間、所定の閾値を超えており、かつ、信号の「0」を示す部分の電圧が、所定時間、所定の閾値を下回っている場合には、「レベル」の項目に解析部14eにより「OK」が登録される。また、信号の「1」を示す部分の電圧が、所定時間、所定の閾値を超えていないか、または、信号の「0」を示す部分の電圧が、所定時間、所定の閾値を下回っていない場合には、「レベル」の項目に解析部14eにより「NG」が登録される。
「段付き」の項目には、クロック信号の波形の状態に応じて、解析部14eにより「OK」または「NG」が登録される。例えば、ライン18を流れるクロック信号が階段状になっている場合には、「段付き」の項目に解析部14eにより「NG」が登録される。一方、ライン18を流れるクロック信号が階段状になっていない場合には、「段付き」の項目に解析部14eにより「OK」が登録される。
「波形割れ」の項目には、クロック信号及びデータ信号の少なくとも一方にリンギングが発生して、信号の波形が正常な波形でない場合には、解析部14eにより、「NG」が登録される。一方、クロック信号及びデータ信号の両信号にリンギングが発生しておらず、信号の波形が正常な波形である場合には、「波形割れ」の項目に、解析部14eにより、「OK」が登録される。
「OS/US」の項目には、クロック信号及びデータ信号の少なくとも一方にオーバーシュートが発生して電圧が所定の上限値を超えた場合、又は、アンダーシュートが発生して電圧が所定の下限値を下回った場合には、解析部14eにより「NG」が登録される。一方、クロック信号及びデータ信号の両信号の電圧が、上限値から下限値までの範囲内である場合には、「OS/US」の項目に、解析部14eにより、「OK」が登録される。
「Tr/Tf」の項目には、クロック信号及びデータ信号の少なくとも一方の信号の立ち上がり時間が所定の時間Trを超えた場合、または、立ち下がり時間が所定の時間Tfを超えた場合には、解析部14eにより、「NG」が登録される。一方、クロック信号及びデータ信号の両信号の立ち上がり時間が所定の時間Tr以下であり、かつ、立ち下がり時間が所定の時間Tf以下である場合には、解析部14eにより、「OK」が登録される。
図1に戻り、記憶部13は、例えば、フラッシュメモリなどの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部13は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。
制御部14は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。図1に示すように、制御部14は、取得部14aと、抽出部14bと、グルーピング部14cと、選択部14dと、解析部14eとを有する。
取得部14aは、各種の情報を取得する。取得部14aの一態様について説明する。例えば、取得部14aは、入力部11から解析実行指示が入力されると、まず、解析実行指示に付加された、解析対象のネットに流れる信号ごとの解析条件名を取得する。そして、取得部14aは、取得した解析条件名に対応する解析条件(「モデリング種別」、「解析時間設定」、「解析時間[ns]」の各項目の登録内容)を解析条件テーブル13fから取得する。
そして、取得部14aは、ネット情報13aを取得する。続いて、取得部14aは、信号情報13bを取得する。続いて、取得部14aは、部品情報13cを取得する。その後、取得部14aは、ライン情報13dを取得する。
抽出部14bは、プリント基板15の信号の品質の解析の対象である、複数のネットにつき、ネットを構成する要素を含むネット情報13aなどから、次の処理を行う。すなわち、抽出部14bは、ネットを構成する要素の位置情報を含まない、要素の接続関係を示す情報である後述する構成情報文字列及び比較用構成情報文字列を生成する。すなわち、抽出部14bは、ネット情報13aなどから、構成情報文字列及び比較用構成情報文字列を抽出する。以下の説明では、構成情報文字列及び比較用構成情報文字列は、要素の接続形態を示す情報であるため、「トポロジ情報」とも称される。
抽出部14bの一態様について説明する。例えば、抽出部14bは、取得部14aによりネット情報13a、信号情報13b、部品情報13c及びライン情報13dが取得されると、次の処理を行う。すなわち、抽出部14bは、ネット情報13aの全レコードのうち、未選択のレコードがあるか否かを判定する。未選択のレコードがある場合には、抽出部14bは、未選択のレコードを1つ選択する。例えば、先の図3に示すネット情報13aの全レコードのうち、1番目のレコードが未選択である場合には、抽出部14bは、1番目のレコードを選択する。
そして、抽出部14bは、選択したレコードが示すネットに流れる信号の信号名を特定する。かかる信号名を特定する処理の一例について説明する。抽出部14bは、選択したレコードが示すネットを構成する要素を、選択したレコードの「構成要素」の項目の登録内容から取得する。例えば、図3に示すネット情報13aの1番目のレコードを選択した場合には、抽出部14bは、選択したレコードの「構成要素」の項目の登録内容から、次のような要素を取得する。すなわち、抽出部14bは、1番目に信号が流れる要素であるASIC16の148番ピン、2番目に信号が流れる要素であるライン番号「A1」によって特定されるライン18、3番目に信号が流れる要素である抵抗の部品19を取得する。これに加えて、抽出部14bは、4番目に信号が流れる要素であるライン番号「A2」によって特定されるライン18、5番目に信号が流れる要素であるメモリ17の13番ピンを取得する。続いて、抽出部14bは、取得した要素のうち、ライン18のライン番号を特定する。例えば、ライン番号「A1」によって特定されるライン18、及び、ライン番号「A2」によって特定されるライン18を取得した場合には、抽出部14bは、ライン番号「A1」及び「A2」を特定する。
そして、特定したライン番号が1つである場合には、抽出部14bは、特定したライン番号が「ライン番号」の項目に登録されたレコードをライン情報13dの全レコードから特定し、特定したレコードの「信号名」の項目に登録された信号名を特定する。一方、特定したライン番号が複数である場合には、抽出部14bは、特定した複数のライン番号のうちいずれかのライン番号が「ライン番号」の項目に登録されたレコードをライン情報13dの全レコードから特定する。そして、抽出部14bは、特定したレコードの「信号名」の項目に登録された信号名を特定する。ここで、特定したライン番号が複数であっても、同一のネットでは、同一の信号が流れるため、いずれのライン番号を用いても特定する信号名は同一となる。例えば、特定したライン番号が「A1」及び「A2」の複数である場合には、抽出部14bは、「A1」が「ライン番号」の項目に登録されたレコードをライン情報13dの全レコードから特定する。そして、抽出部14bは、特定したレコード(図6の例に示す1番目のレコード)の「信号名」の項目に登録された信号名「D00」を特定する。なお、抽出部14bは、「A2」が「ライン番号」の項目に登録されたレコードをライン情報13dの全レコードから特定した場合であっても、同様に、信号名「D00」を特定することができる。上述したような処理を行うことで、抽出部14bは、選択したレコードが示すネットに流れる信号の信号名を特定することができる。
続いて、抽出部14bは、特定した信号名が「信号名」の項目に登録されたレコードを信号情報13bの全レコードから特定し、特定したレコードの「ネット区分」の項目に「信号」が登録されているか否かを判定する。これにより、抽出部14bは、特定した信号名によって特定される信号が流れるラインが、ネットを構成するライン18であるか否かを判定することができる。
特定したレコードの「ネット区分」の項目に「信号」が登録されていない場合には、特定した信号名によって特定される信号が流れるラインが、ネットを構成するライン18でないため、抽出部14bは、次の処理を行う。すなわち、抽出部14bは、ネット情報13aの全レコードのうち未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、特定したレコードの「ネット区分」の項目に「信号」が登録されている場合には、特定した信号名によって特定される信号が流れるラインが、ネットを構成するライン18であるため、抽出部14bは、解析情報テーブル13eに各種情報を登録する。かかる各種情報を登録する処理の一例について説明する。例えば、抽出部14bは、新しいレコードを解析情報テーブル13eに追加する。そして、抽出部14bは、追加したレコードの「信号名」の項目に、特定した信号名を登録する。また、抽出部14bは、追加したレコードの「パルス種別」の項目に、「信号名」の項目に登録された信号名によって特定される信号のビットパターンに対応する「UP繰り返し」または「ランダムパターン」を登録する。なお、「UP繰り返し」及び「ランダムパターン」は、解析実行指示に付加されたものである。また、抽出部14bは、追加したレコードの「パルス種別」の項目に「ランダムパターン」が登録された場合には、「信号名」の項目に登録された信号名によって特定される信号のビットパターンを登録する。なお、かかるビットパターンは、解析実行指示に付加されたものである。また、抽出部14bは、追加したレコードの「パルス種別」の項目に「UP繰り返し」が登録された場合には、追加したレコードの「動作周波数[MHz]」の項目に、「信号名」の項目に登録された信号名によって特定される信号の周波数を登録する。なお、かかる周波数は、解析実行指示に付加されたものである。また、抽出部14bは、追加したレコードの「パルス種別」の項目に「ランダムパターン」が登録された場合には、追加したレコードの「データレート[Mbps]」の項目に、「信号名」の項目に登録された信号名によって特定される信号のデータレートを登録する。また、抽出部14bは、取得部14aにより取得された解析条件名を、追加したレコードの「解析条件名」の項目に登録する。上述したような処理を行うことで、抽出部14bは、解析情報テーブル13eに各種情報を登録することができる。
続いて、抽出部14bは、ネット情報13aの選択したレコードが示すネットを構成する構成要素に基づいて、次の処理を行う。すなわち、抽出部14bは、ネットを構成する要素の位置情報を含まない、要素の接続関係を示す情報である構成情報文字列を生成する。ここで、図12を参照して、構成情報文字列を生成する処理の一例について説明する。図12は、構成情報文字列を生成する処理の一例を説明するための図である。図12の例には、選択したレコードの「構成要素」の項目に登録された各要素の接続関係を示す文字列であって、部品の位置情報などのネットの実形状を示す文字列30が示されている。文字列30は、先の図3の例に示すネット情報13aの1番目のレコードの「構成要素」の項目に登録された内容と同一である。そのため、文字列30についての詳細については説明を省略する。
図12の例に示す場合、抽出部14bは、1番目に信号が流れる要素の情報「IC001.148(X1,Y1)」から、座標を除いた情報「IC001.148」を生成する。ここで、1番目に信号が流れる要素は、信号を出力するドライバである。そのため、抽出部14bは、ドライバであることを示す「DV」と「IC001.148」を結合して、「DV[IC001.148]」という文字列を生成する。
次に、抽出部14bは、2番目に信号が流れる要素の情報「A1」について、ライン情報13dの内容から、「A1」によって特定されるラインが配置された層は、「L1」によって特定される1番目の層であることを特定する。また、抽出部14bは、「A1」について、ライン情報13dの内容から、「A1」によって特定されるラインの線幅が、0.15[mm]であることを特定する。また、抽出部14bは、「A1」について、ライン情報13dの内容から、「A1」によって特定されるラインの長さを算出する。例えば、抽出部14bは、「始点X座標[mm]」、「始点Y座標[mm]」、「終点X座標[mm]」及び「終点Y座標[mm]」の4つの項目に登録された値からラインの長さを算出する。以下、「A1」によって特定されるラインの長さが、8.863[mm]である場合について説明する。そして、抽出部14bは、ラインであることを示す「LN」と、1番目の層であることを示す「L1」と、ラインの線幅を示す「0.15」と、ラインの長さを示す「8.863」とを結合して、次の文字列を生成する。すなわち、抽出部14bは、「LN[L1(0.15/8.863)]」という文字列を生成する。
そして、抽出部14bは、3番目に信号が流れる要素の情報「RD001.2/1(X2,Y2)」から、座標を除いた情報「RD001.2/1」を生成する。ここで、部品情報13cでは、回路部品番号「RD001」が、抵抗を示す「R」と対応付けられて登録されている。そのため、抽出部14bは、部品情報13cの内容から、回路部品番号「RD001」が示す部品は、抵抗の部品19であると特定する。抵抗の部品19であると特定した場合には、抽出部14bは、部品情報13cの内容から、回路部品番号「RD001」に対応する[値]の項目に登録された抵抗値33[Ω]を特定する。そして、抽出部14bは、抵抗の部品19であることを示す「R」と、座標を除いた情報「RD001.2/1」と、抵抗値を示す「33」とを結合して、「R[RD001.2/1(33)]」という文字列を生成する。
続いて、抽出部14bは、4番目に信号が流れる要素の情報「A2」について、ライン情報13dの内容から、「A2」によって特定されるラインが配置された層は、「L1」によって特定される1番目の層であることを特定する。また、抽出部14bは、「A2」について、ライン情報13dの内容から、「A2」によって特定されるラインの線幅が、0.15[mm]であることを特定する。また、抽出部14bは、「A2」について、ライン情報13dの内容から、「A2」によって特定されるラインの長さを算出する。例えば、抽出部14bは、「始点X座標[mm]」、「始点Y座標[mm]」、「終点X座標[mm]」及び「終点Y座標[mm]」の4つの項目に登録された値からラインの長さを算出する。以下、「A2」によって特定されるラインの長さが、6.912[mm]である場合について説明する。そして、抽出部14bは、ラインであることを示す「LN」と、1番目の層であることを示す「L1」と、ラインの線幅を示す「0.15」と、ラインの長さを示す「6.912」とを結合して、次の文字列を生成する。すなわち、抽出部14bは、「LN[L1(0.15/6.912)]」という文字列を生成する。
次に、抽出部14bは、5番目、すなわち、最後に信号が流れる要素の情報「IC002.13(X3,Y3)」から、座標を除いた情報「IC002.13」を生成する。ここで、最後に信号が流れる要素は、信号を受信するレシーバである。そのため、抽出部14bは、レシーバであることを示す「RV」と「IC002.13」を結合して、「RV[IC002.13]」という文字列を生成する。
そして、抽出部14bは、生成した文字列を信号が流れる順に並べて、構成情報文字列31を生成する。すなわち、抽出部14bは、「DV[IC001.148]LN[L1(0.15/8.863)]R[RD001.2/1(33)]LN[L1(0.15/6.912)]RV[IC002.13]」という構成情報文字列31を生成する。上述したように処理によって、抽出部14bは、トポロジ情報である構成情報文字列を生成することができる。すなわち、抽出部14bは、ネット情報13aなどから、トポロジ情報である構成情報文字列を抽出することができる。
その後、抽出部14bは、生成した構成情報文字列を解析情報テーブル13eの「構成情報文字列」の項目に登録する。
そして、抽出部14bは、ネット情報13aの全レコードのうち未選択のレコードを1つ選択して、構成情報文字列を生成し、生成した構成情報文字列を解析情報テーブル13eに登録する上述した処理を未選択のレコードがなくなるまで繰り返し行う。これにより、解析情報テーブル13eには、「ネット区分」の項目に「信号」が登録されたネット数分のレコードが登録される。
一方、ネット情報13aの全レコードのうち未選択のレコードがない場合には、抽出部14bは、解析情報テーブル13eの全レコードのうち、未選択のレコードがあるか否かを判定する。未選択のレコードがある場合には、抽出部14bは、未選択のレコードを1つ選択する。例えば、先の図7に示す解析情報テーブル13eの全レコードのうち、1番目のレコードが未選択である場合には、抽出部14bは、1番目のレコードを選択する。また、抽出部14bは、後述のグルーピング部14cによりグルーピングテーブル13hにレコードが追加された場合にも、解析情報テーブル13eの全レコードのうち、未選択のレコードがあるか否かを判定する。また、抽出部14bは、後述のグルーピング部14cによりグルーピングテーブル13hのレコードが更新された場合にも、解析情報テーブル13eの全レコードのうち、未選択のレコードがあるか否かを判定する。更に、抽出部14bは、グルーピングテーブル13hのレコードが示すネットのラインの線長の合計が、解析情報テーブル13eのレコードが示すネットのラインの線長の合計以下であると判定された場合にも、次の処理を行う。すなわち、抽出部14bは、解析情報テーブル13eの全レコードのうち、未選択のレコードがあるか否かを判定する。
続いて、抽出部14bは、選択したレコードの「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」、「解析条件名」及び「構成情報文字列」の各項目の登録内容を取得する。例えば、先の図7に示す場合において、1番目のレコードを選択した場合には、抽出部14bは、「パルス種別」の項目に登録された「ランダムパターン」を取得する。また、抽出部14bは、「ビットパターン」の項目に登録された「10001010001010」を取得する。また、抽出部14bは、「動作周波数[MHz]」の項目には、何も登録されていないので、「動作周波数[MHz]」の項目からは何も取得しない。また、抽出部14bは、「データレート[Mbps]」の項目に登録された800[Mbps]を取得する、また、抽出部14bは、「解析条件名」の項目に登録された「条件1」を取得する。また、抽出部14bは、「構成情報文字列」の項目に登録された構成情報文字列を取得する。すなわち、抽出部14bは、「DV[IC001.148]LN[L1(0.15/8.863)]R[RD001.2/1(33)]LN[L1(0.15/6.912)]RV[IC002.13]」という構成情報文字列を取得する。
そして、抽出部14bは、取得した構成情報文字列を比較用構成情報文字列に変換して、比較用構成情報文字列を生成する。例えば、抽出部14bは、要素が集積回路の部品である場合には、かかる要素を示す文字列の一部をモデルの名称に変換する。また、抽出部14bは、要素が抵抗、コンデンサ、コイルなどの部品19である場合には、要素を示す文字列の一部を抵抗値、静電容量、インダクタンス値に変換する。ここで、図13を参照して、比較用構成情報文字列を生成する処理の一例について説明する。図13は、比較用構成情報文字列を生成する処理の一例を説明するための図である。図13の例には、抽出部14bにより取得された構成情報文字列32が示されている。構成情報文字列32は、先の図12の例に示す構成情報文字列31と同一である。
図13の例に示す構成情報文字列32を取得した場合、抽出部14bは、次の処理を行う。すなわち、抽出部14bは、1番目に信号が流れる要素の情報「DV[IC001.148]」が示すASIC16を、部品情報13cの内容から集積回路の部品であると特定する。集積回路の部品であると特定した場合には、抽出部14bは、「DV[IC001.148]」が示すASIC16の148番ピンに対応するモデルの名称「IASIC003_Typ」をモデル情報テーブル13gから取得する。そして、抽出部14bは、1番目に信号が流れる要素の情報「DV[IC001.148]」の「IC001.148」の部分を、取得したモデルの名称「IASIC003_Typ」で変換する。これにより、抽出部14bは、「DV[IASIC003_Typ]」という文字列を生成する。また、抽出部14bは、5番目に信号が流れる要素の情報「RV[IC002.13]」が示すメモリ17を、部品情報13cの内容から集積回路の部品であると特定する。集積回路の部品であると特定した場合には、抽出部14bは、「RV[IC002.13]」が示すメモリ17の13番ピンに対応するモデルの名称「ISDRAM001_Typ」をモデル情報テーブル13gから取得する。そして、抽出部14bは、5番目に信号が流れる要素の情報「RV[IC002.13]」の「IC002.13」の部分を、取得したモデルの名称「ISDRAM001_Typ」で変換する。これにより、抽出部14bは、「RV[ISDRAM001_Typ]」という文字列を生成する。このようにして、抽出部14bは、後述のグルーピング部14cなどで比較を行う場合の比較対象となるモデルの名称を含む文字列を生成することができる。
次に、抽出部14bは、3番目に信号が流れる要素の情報「R[RD001.2/1(33)]」が示す部品を、部品情報13cの内容から抵抗の部品19であると特定する。抵抗の部品19であると特定した場合には、抽出部14bは、「R[RD001.2/1(33)]」が示す抵抗の部品19の抵抗値33[Ω]を残し、「RD001.2/1」を削除して、「R[33]」という文字列を生成する。
そして、抽出部14bは、生成した文字列で構成情報文字列32を変換して、比較用構成情報文字列33を生成する。すなわち、抽出部14bは、「DV[IASIC003_Typ]LN[L1(0.15/8.863)]R[33]LN[L1(0.15/6.912)]RV[ISDRAM001_Typ]」という比較用構成情報文字列33を生成する。上述したように処理によって、抽出部14bは、後述のグルーピング部14cなどで比較を行う場合に用いられる情報以外の情報が、より除外された比較用構成情報文字列を生成することができる。すなわち、抽出部14bは、より少ない情報量で比較を行うことができる比較用構成情報文字列を生成することができる。
抽出部14bは、解析情報テーブル13eの全レコードのうち未選択のレコードがなくなるまで、未選択のレコードを選択し、上述した比較用構成情報文字列を生成する処理を繰り返し行う。これにより、「ネット区分」の項目に「信号」が登録されたネット数分の比較用構成情報文字列が生成される。
図1の説明に戻る。グルーピング部14cは、抽出部14bにより抽出された比較用構成情報文字列に基づいて、ネットをグルーピングする。グルーピング部14cの一態様について説明する。例えば、グルーピング部14cは、抽出部14bにより比較用構成情報文字列が生成されるたびに、次のような処理を行う。すなわち、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する。なお、グルーピングテーブル13hは、グルーピング部14cによりレコードが登録されることでレコード件数が増加するテーブルである。そのため、グルーピングテーブル13hに、グルーピング部14cによりレコードが登録されていない場合には、選択するレコードがない。この場合、グルーピング部14cは、未選択のレコードがないと判定する。
未選択のレコードがある場合には、グルーピング部14cは、未選択のレコードを1つ選択する。そして、グルーピング部14cは、選択したレコードの「パルス種別」の項目の登録内容と、先の抽出部14bにより取得された「パルス種別」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「ビットパターン」の項目の登録内容と、抽出部14bにより取得された「ビットパターン」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「動作周波数[MHz]」の項目の登録内容と、抽出部14bにより取得された「動作周波数[MHz]」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「データレート」の項目の登録内容と、抽出部14bにより取得された「データレート」の項目の登録内容との差が所定の閾値内であるか否かを判定する。閾値内でない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、閾値内である場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「解析条件」の項目の登録内容と、抽出部14bにより取得された「解析条件」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品の構成と、抽出部14bにより生成された比較用構成情報文字列33が示す部品の構成とが一致するか否かを判定する。ここでいう部品の構成が一致するか否かの判定とは、「DV」、「RV」、「R」、「C」、「LN」、「DIFF_DV」などの部品を示す記号の組み合わせが一致するか否かを判定することを指す。これにより、グルーピング部14cは、ネットの構成が一致するか否かを判定することができる。なお、グルーピング部14cは、組み合わせが一致しても部品の並び順が一致しない場合しない場合には、部品の構成が一致しないと判定する。一致しない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、グルーピング部14cは、次の処理を行う。グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線長の合計と、抽出部14bにより生成された比較用構成情報文字列33が示すライン18の線長の合計との差が閾値内であるか否かを判定する。閾値内でない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、閾値内である場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線幅と、抽出部14bにより生成された比較用構成情報文字列33が示すライン18の線幅との差が閾値内であるか否かを判定する。閾値内でない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、閾値内である場合には、グルーピング部14cは、次の処理を行う。グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の値と、抽出部14bにより生成された比較用構成情報文字列33が示す部品19の値との差が閾値内であるか否かを判定する。ここでいう値とは、抵抗値、静電容量、インダクタンス値である。例えば、グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の抵抗値と、抽出部14bにより生成された比較用構成情報文字列33が示す対応する部品19の抵抗値との差が閾値内であるか否かを判定する。また、グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の静電容量と、抽出部14bにより生成された比較用構成情報文字列33が示す対応する部品の静電容量との差が閾値内であるか否かを判定する。また、グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19のインダクタンスと、次に示すインダクタンスとの差が閾値内であるか否かを判定する。すなわち、グルーピング部14cは、抽出部14bにより生成された比較用構成情報文字列33が示す対応する部品のインダクタンスとの差が閾値内であるか否かを判定する。複数の部品の値について判定を行った場合には、グルーピング部14cは、全ての判定において閾値内であると判定された場合に、値の差が閾値内であると判定する。また、何れかの判定において閾値内でないと判定された場合には、グルーピング部14cは、値の差が閾値内でないと判定する。値の差が閾値内でない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、値の差が閾値内である場合には、グルーピング部14cは、次の処理を行う。グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すドライバやレシーバのモデルの名称と、次に示すモデルの名称とが一致するか否かを判定する。すなわち、グルーピング部14cは、抽出部14bにより生成された比較用構成情報文字列33が示すドライバやレシーバのモデルの名称とが一致するか否かを判定する。一致しない場合には、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、制御部14の内部メモリの所定の領域を第1のフラグの領域(図示せず)とし、第1のフラグの領域に、第1のフラグがONであることを示す「1」を設定する。
また、グルーピングテーブル13hの全レコードのうち、未選択のレコードがないと判定した場合には、グルーピング部14cは、第1のフラグの領域に、第1のフラグがOFFであることを示す「0」を設定する。ここで、第1のフラグがONである場合には、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットと、グルーピング部14cにより選択されたグルーピングテーブル13hのレコードが示すネットとが同一のグループに属することを示す。また、第1のフラグがOFFである場合には、グルーピングテーブル13hの全レコードが示す全ネットに対して、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットが同一のグループに属さないことを示す。
第1のフラグの領域に「1」または「0」を設定した場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットと、グルーピング部14cにより選択されたグルーピングテーブル13hのレコードが示すネットとが同一のグループに属するか否かを判定する。例えば、グルーピング部14cは、第1のフラグがONである場合には、次のように判定する。すなわち、グルーピング部14cは、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットと、グルーピング部14cにより選択されたグルーピングテーブル13hのレコードが示すネットとが同一のグループに属すると判定する。一方、グルーピング部14cは、第1のフラグがOFFである場合には、次のように判定する。すなわち、グルーピング部14cは、グルーピングテーブル13hの全レコードが示す全ネットに対して、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットが同一のグループに属さないと判定する。
グルーピングテーブル13hの全レコードが示す全ネットに対して、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットが同一のグループに属さない場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、グルーピングテーブル13hにレコードを追加する。そして、グルーピング部14cは、抽出部14bにより取得された「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」及び「解析条件名」の各項目の登録内容を、追加したレコードの対応する項目に登録する。また、グルーピング部14cは、抽出部14bにより生成された比較用構成情報文字列を、追加したレコードの「比較用構成情報文字列」の項目に登録する。
一方、同一のグループに属すると判定した場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したグルーピングテーブル13hのレコードの「グループ番号」の項目に登録されたグループ番号を、抽出部14bにより選択された解析情報テーブル13eのレコードの「グループ番号」の項目に登録する。そして、グルーピング部14cは、選択したグルーピングテーブル13hのレコードが示すネットのラインの線長の合計が、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットのラインの線長の合計より長いか否かを判定する。なお、ラインの線長の合計は、構成情報文字列または比較用構成情報文字列が示すラインの長さの合計から算出することができる。長い場合には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したグルーピングテーブル13hのレコードの「比較用構成情報文字列」の項目の登録内容を、抽出部14bが生成した比較用構成情報文字列に置換して、選択したグルーピングテーブル13hのレコードを更新する。これにより、グルーピングテーブル13hに、同一グループに属するネットのうち、ライン長が最も長いネットに関する情報を登録することができる。
図1の説明に戻り、選択部14dは、グルーピング部14cによりグルーピングされたネットのうちの一つのネットを解析対象として選択する。選択部14dの一態様について説明する。例えば、選択部14dは、抽出部14bにより、解析情報テーブル13eの全レコードのうち未選択のレコードがないと判定された場合に、次の処理を行う。すなわち、選択部14dは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する。未選択のレコードがある場合には、選択部14dは、未選択のレコードを1つ選択する。例えば、先の図10に示すグルーピングテーブル13hの全レコードのうち、1番目のレコードが未選択である場合には、選択部14dは、1番目のレコードを選択する。このようにして、選択部14dは、グルーピング部14cによりグルーピングされたネットのうちの一つのネットを解析対象として選択する。また、選択部14dは、解析部14eにより解析結果が取得されると、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する。
解析部14eは、プリント基板15の信号の品質を解析する。解析部14eの一態様について説明する。例えば、解析部14eは、選択部14dによりレコードが選択されると、解析結果データベース13iの全レコードのうち、未選択のレコードがあるか否かを判定する。なお、解析結果データベース13iは、解析部14eによりレコードが登録されることでレコード件数が増加するデータベースである。そのため、解析結果データベース13iに、解析部14eによりレコードが登録されていない場合には、選択するレコードがない。この場合、解析部14eは、未選択のレコードがないと判定する。
未選択のレコードがある場合には、解析部14eは、未選択のレコードを1つ選択する。そして、解析部14eは、選択したレコードの「パルス種別」の項目の登録内容と、先の選択部14dにより選択されたレコードの「パルス種別」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「ビットパターン」の項目の登録内容と、選択部14dにより選択されたレコードの「ビットパターン」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「動作周波数[MHz]」の項目の登録内容と、選択部14dにより選択されたレコードの「動作周波数[MHz]」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「データレート」の項目の登録内容と、選択部14dにより選択されたレコードの「データレート」の項目の登録内容との差が所定の閾値内であるか否かを判定する。閾値内でない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、閾値内である場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「解析条件」の項目の登録内容と、選択部14dにより選択されたレコードの「解析条件」の項目の登録内容とが一致するか否かを判定する。一致しない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品の構成と、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示す部品の構成とが一致するか否かを判定する。ここでいう部品の構成が一致するか否かの判定とは、「DV」、「RV」、「R」、「C」、「LN」、「DIFF_DV」などの部品を示す記号の組み合わせが一致するか否かを判定することを指す。これにより、解析部14eは、ネットの構成が一致するか否かを判定することができる。なお、解析部14eは、組み合わせが一致しても部品の並び順が一致しない場合しない場合には、部品の構成が一致しないと判定する。一致しない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線長の合計と、次に示す線長の合計との差が閾値内であるか否かを判定する。すなわち、解析部14eは、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線長の合計との差が閾値内であるか否かを判定する。閾値内でない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線幅と、選択部14dにより選択されたレコードの「比較用構成情報文字列」が示すライン18の線幅との差が閾値内であるか否かを判定する。閾値内でない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、閾値内である場合には、解析部14eは、次の処理を行う。解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の値と、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の値との差が閾値内であるか否かを判定する。ここでいう値とは、抵抗値、静電容量、インダクタンス値である。例えば、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の抵抗値と、次に示す抵抗値との差が閾値内であるか否かを判定する。すなわち、解析部14eは、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示す対応する部品19の抵抗値との差が閾値内であるか否かを判定する。また、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の静電容量と、次に示す静電容量との差が閾値内であるか否かを判定する。すなわち、解析部14eは、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示す対応する部品の静電容量との差が閾値内であるか否かを判定する。また、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19のインダクタンスと、次に示すインダクタンスとの差が閾値内であるか否かを判定する。すなわち、解析部14eは、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示す対応する部品のインダクタンスとの差が閾値内であるか否かを判定する。複数の部品の値について判定を行った場合には、解析部14eは、全ての判定において閾値内であると判定された場合に、値の差が閾値内であると判定する。また、何れかの判定において閾値内でないと判定された場合には、解析部14eは、値の差が閾値内でないと判定する。値の差が閾値内でない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、値の差が閾値内である場合には、解析部14eは、次の処理を行う。解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すドライバやレシーバのモデルの名称と、次に示すモデルの名称とが一致するか否かを判定する。すなわち、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示すドライバやレシーバのモデルの名称とが一致するか否かを判定する。一致しない場合には、解析部14eは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する上述した処理を再び行い、かかる処理以降の処理を再び行う。
一方、一致する場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、制御部14の内部メモリの所定の領域を第2のフラグの領域(図示せず)とし、第2のフラグの領域に、第2のフラグがONであることを示す「1」を設定する。
また、グルーピングテーブル13hの全レコードのうち、未選択のレコードがないと選択部14dにより判定された場合には、解析部14eは、第2のフラグの領域に、第2のフラグがOFFであることを示す「0」を設定する。ここで、第2のフラグがONである場合には、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットと、解析部14eにより選択された解析結果データベース13iのレコードが示すネットとが同一のグループに属することを示す。また、第2のフラグがOFFである場合には、解析結果データベース13iの全レコードが示す全ネットに対して、選択部14dにより選択されたレコードが示すネットが同一のグループに属さないことを示す。
第2のフラグの領域に「1」または「0」を設定した場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットと、解析部14eにより選択された解析結果データベース13iのレコードが示すネットとが同一のグループに属するか否かを判定する。例えば、解析部14eは、第2のフラグがONである場合には、次のように判定する。すなわち、解析部14eは、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットと、解析部14eにより選択された解析結果データベース13iのレコードが示すネットとが同一のグループに属すると判定する。一方、解析部14eは、第1のフラグがOFFである場合には、次のように判定する。すなわち、解析部14eは、解析結果データベース13iの全レコードが示す全ネットに対して、選択部14dにより選択されたレコードが示すネットが同一のグループに属さないと判定する。
選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットと、選択した解析結果データベース13iのレコードが示すネットとが同一のグループに属する場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択した解析結果データベース13iのレコードの「解析結果」の項目に登録された解析結果を、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットの解析結果として取得する。
また、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットと、選択した解析結果データベース13iのレコードが示すネットとが同一のグループに属さない場合には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットに流れる信号の品質の解析を、レコードに登録された登録内容に従って行う。そして、解析部14eは、解析結果データベース13iにレコードを追加して、追加したレコードの「解析結果」の項目が有する各項目に、解析結果「OK」または「NG」を登録する。続いて、解析部14eは、追加したレコードの「解析結果」以外の各項目に各種情報を登録する。例えば、解析部14eは、追加したレコードの「グループ番号」の項目に、重複しないグループ番号を登録する。また、解析部14eは、追加したレコードの「パルス種別」の項目に、選択部14dにより選択されたグルーピングテーブル13hのレコードの「パルス種別」の項目の登録内容を登録する。また、解析部14eは、追加したレコードの「ビットパターン」の項目に、選択部14dにより選択されたグルーピングテーブル13hのレコードの「ビットパターン」の項目の登録内容を登録する。また、解析部14eは、追加したレコードの「動作周波数[MHz]」の項目に、選択部14dにより選択されたグルーピングテーブル13hのレコードの「動作周波数[MHz]」の項目の登録内容を登録する。また、解析部14eは、追加したレコードの「データレート[Mbps]」の項目に、選択部14dにより選択されたグルーピングテーブル13hのレコードの「データレート[Mbps]」の項目の登録内容を登録する。また、解析部14eは、追加したレコードの「解析条件名」の項目に、選択部14dにより選択されたグルーピングテーブル13hのレコードの「解析条件名」の項目の登録内容を登録する。また、解析部14eは、追加したレコードの「比較用構成情報文字列」の項目に、選択部14dにより選択されたグルーピングテーブル13hのレコードの「比較用構成情報文字列」の項目の登録内容を登録する。
また、選択部14dにより、グルーピングテーブル13hの全レコードの中に未選択のレコードがないと判定された場合には、解析部14eは、解析結果データベース13iに登録された解析結果を表示部12に出力して、表示部12に解析結果を表示させる。
制御部14は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。
[処理の流れ]
次に、本実施例に係る解析装置10の処理の流れを説明する。図14は、実施例に係る解析処理の手順を示すフローチャートである。この解析処理の実行タイミングとしては様々なタイミングが考えられる。例えば、解析処理は、解析処理を実行する解析実行指示が入力部11から入力された場合に、制御部14により実行される。
図14に示すように、取得部14aは、解析実行指示に付加された、解析対象のネットに流れる信号ごとの解析条件名を取得し、取得した解析条件名に対応する解析条件を解析条件テーブル13fから取得する(S101)。そして、取得部14aは、ネット情報13aを取得する(S102)。続いて、取得部14aは、信号情報13bを取得する(S103)。続いて、取得部14aは、部品情報13cを取得する(S104)。その後、取得部14aは、ライン情報13dを取得する(S105)。
抽出部14b及びグルーピング部14cは、グルーピング処理を実行する(S106)。そして、選択部14d及び解析部14eは、解析実行処理を実行し(S107)、処理を終了する。
図15は、実施例に係る解析処理の手順を示すフローチャートである。図15に示すように、抽出部14bは、ネット情報13aの全レコードのうち、未選択のレコードがあるか否かを判定する(S201)。未選択のレコードがある場合(S201肯定)には、抽出部14bは、未選択のレコードを1つ選択する(S202)。
そして、抽出部14bは、選択したレコードが示すネットに流れる信号の信号名を特定する(S203)。続いて、抽出部14bは、特定した信号名が「信号名」の項目に登録されたレコードを信号情報13bの全レコードから特定し、特定したレコードの「ネット区分」の項目に「信号」が登録されているか否かを判定する(S204)。
特定したレコードの「ネット区分」の項目に「信号」が登録されていない場合(S204否定)には、抽出部14bは、S201に戻る。一方、特定したレコードの「ネット区分」の項目に「信号」が登録されている場合(S204肯定)には、抽出部14bは、解析情報テーブル13eに各種情報を登録する(S205)。続いて、抽出部14bは、ネット情報13aの選択したレコードが示すネットを構成する構成要素に基づいて、次の処理を行う。すなわち、抽出部14bは、ネットを構成する要素の位置情報を含まない、要素の接続関係を示す情報である構成情報文字列を生成する(S206)。
その後、抽出部14bは、生成した構成情報文字列を解析情報テーブル13eの「構成情報文字列」の項目に登録し(S207)、S201に戻る。
一方、ネット情報13aの全レコードのうち未選択のレコードがない場合(S201否定)には、抽出部14bは、解析情報テーブル13eの全レコードのうち、未選択のレコードがあるか否かを判定する(S208)。未選択のレコードがある場合(S208肯定)には、抽出部14bは、未選択のレコードを1つ選択する(S209)。
続いて、抽出部14bは、選択したレコードの「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」、「解析条件名」及び「構成情報文字列」の各項目の登録内容を取得する(S210)。
そして、抽出部14bは、取得した構成情報文字列を比較用構成情報文字列に変換して、比較用構成情報文字列を生成する(S211)。そして、グルーピング部14cは、類似判定処理を実行する(S212)。続いて、グルーピング部14cは、選択された解析情報テーブル13eのレコードが示すネットと、選択したグルーピングテーブル13hのレコードが示すネットとが同一のグループに属するか否かを判定する(S213)。
グルーピングテーブル13hの全レコードが示す全ネットに対して、抽出部14bにより選択された解析情報テーブル13eのレコードが示すネットが同一のグループに属さない場合(S213否定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、グルーピングテーブル13hにレコードを追加する。そして、グルーピング部14cは、抽出部14bにより取得された「パルス種別」、「ビットパターン」、「動作周波数[MHz]」、「データレート[Mbps]」及び「解析条件名」の各項目の登録内容を、追加したレコードの対応する項目に登録する。また、グルーピング部14cは、抽出部14bにより生成された比較用構成情報文字列を、追加したレコードの「比較用構成情報文字列」の項目に登録し(S214)、S208に戻る。
一方、同一のグループに属する場合(S213肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したグルーピングテーブル13hのレコードの「グループ番号」の項目に登録されたグループ番号を、抽出部14bにより選択された解析情報テーブル13eのレコードの「グループ番号」の項目に登録する(S215)。そして、グルーピング部14cは、選択したグルーピングテーブル13hのレコードが示すネットのラインの線長の合計が、選択された解析情報テーブル13eのレコードが示すネットのラインの線長の合計より長いか否かを判定する(S216)。長くない場合(S216否定)には、グルーピング部14cは、S208に戻る。長い場合(S216肯定)には、グルーピング部14cは、次の処理を行う。グルーピング部14cは、選択したグルーピングテーブル13hのレコードの「比較用構成情報文字列」の項目の登録内容を、抽出部14bが生成した比較用構成情報文字列に置換して、選択したグルーピングテーブル13hのレコードを更新する(S217)。そして、グルーピング部14cは、S208に戻る。未選択のレコードがない場合(S208否定)には、グルーピング部14cは、処理結果を内部メモリに格納して、リターンする。
図16は、実施例に係る類似判定処理の手順を示すフローチャートである。図16に示すように、グルーピング部14cは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する(S301)。未選択のレコードがある場合(S301肯定)には、グルーピング部14cは、未選択のレコードを1つ選択する(S302)。そして、グルーピング部14cは、選択したレコードの「パルス種別」の項目の登録内容と、先の抽出部14bにより取得された「パルス種別」の項目の登録内容とが一致するか否かを判定する(S303)。一致しない場合(S303否定)には、グルーピング部14cは、S301に戻る。
一方、一致する場合(S303肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「ビットパターン」の項目の登録内容と、抽出部14bにより取得された「ビットパターン」の項目の登録内容とが一致するか否かを判定する(S304)。一致しない場合(S304否定)には、グルーピング部14cは、S301に戻る。
一方、一致する場合(S304肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「動作周波数[MHz]」の項目の登録内容と、抽出部14bにより取得された「動作周波数[MHz]」の項目の登録内容とが一致するか否かを判定する(S305)。一致しない場合(S305否定)には、グルーピング部14cは、S301に戻る。
一方、一致する場合(S305肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「データレート」の項目の登録内容と、抽出部14bにより取得された「データレート」の項目の登録内容との差が所定の閾値内であるか否かを判定する(S306)。閾値内でない場合(S306否定)には、グルーピング部14cは、S301に戻る。
一方、閾値内である場合(S306肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「解析条件」の項目の登録内容と、抽出部14bにより取得された「解析条件」の項目の登録内容とが一致するか否かを判定する(S307)。一致しない場合(S307否定)には、グルーピング部14cは、S301に戻る。
一方、一致する場合(S307肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品の構成と、抽出部14bにより生成された比較用構成情報文字列33が示す部品の構成とが一致するか否かを判定する(S308)。一致しない場合(S308否定)には、グルーピング部14cは、S301に戻る。
一方、一致する場合(S308肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線長の合計と、生成された比較用構成情報文字列33が示すライン18の線長の合計との差が閾値内であるか否かを判定する(S309)。閾値内でない場合(S309否定)には、グルーピング部14cは、S301に戻る。
一方、閾値内である場合(S309肯定)には、グルーピング部14cは、次の処理を行う。グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線幅と、抽出部14bにより生成された比較用構成情報文字列33が示すライン18の線幅との差が閾値内であるか否かを判定する(S310)。閾値内でない場合(S310否定)には、グルーピング部14cは、S301に戻る。
一方、閾値内である場合(S310肯定)には、グルーピング部14cは、次の処理を行う。グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品19の値と、抽出部14bにより生成された比較用構成情報文字列33が示す部品19の値との差が閾値内であるか否かを判定する(S311)。閾値内でない閾値内である合(S311否定)には、グルーピング部14cは、S301に戻る。
一方、値の差が閾値内である場合(S311肯定)には、グルーピング部14cは、次の処理を行う。グルーピング部14cは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すドライバやレシーバのモデルの名称と、生成された比較用構成情報文字列33が示すドライバやレシーバのモデルの名称とが一致するか否かを判定する(S312)。一致しない場合(S312否定)には、グルーピング部14cは、S301に戻る。
一方、一致する場合(S312肯定)には、グルーピング部14cは、次の処理を行う。すなわち、グルーピング部14cは、制御部14の内部メモリの所定の領域を第1のフラグの領域(図示せず)とし、第1のフラグの領域に、第1のフラグがONであることを示す「1」を設定し(S313)、処理結果を内部メモリに格納し、リターンする。
また、未選択のレコードがない場合(S301否定)には、グルーピング部14cは、第1のフラグの領域に、第1のフラグがOFFであることを示す「0」を設定する(S314)。そして、グルーピング部14cは、処理結果を内部メモリに格納し、リターンする。
図17は、実施例に係る解析実行処理の手順を示すフローチャートである。図17に示すように、選択部14dは、グルーピングテーブル13hの全レコードのうち、未選択のレコードがあるか否かを判定する(S401)。未選択のレコードがある場合(S401肯定)には、選択部14dは、未選択のレコードを1つ選択する(S402)。そして、解析部14eは、解析判定処理を実行する(S403)。続いて、解析部14eは、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットと、解析部14eにより選択された解析結果データベース13iのレコードが示すネットとが同一のグループに属するか否かを判定する(S404)。
同一のグループに属する場合(S404肯定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択した解析結果データベース13iのレコードの「解析結果」の項目に登録された解析結果を、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットの解析結果として取得する(S405)。そして、解析部14eは、S401に戻る。
また、同一のグループに属さない場合(S404否定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択部14dにより選択されたグルーピングテーブル13hのレコードが示すネットに流れる信号の品質の解析を、レコードに登録された登録内容に従って行う(S406)。そして、解析部14eは、解析結果データベース13iにレコードを追加して、追加したレコードの「解析結果」の項目が有する各項目に、解析結果「OK」または「NG」を登録する(S407)。続いて、解析部14eは、追加したレコードの「解析結果」以外の各項目に各種情報を登録し(S408)、S401に戻る。
また、未選択のレコードがない場合(S401否定)には、解析部14eは、解析結果データベース13iに登録された解析結果を表示部12に出力して、表示部12に解析結果を表示させ(S409)、処理結果を内部メモリに格納し、リターンする。
図18は、実施例に係る解析判定処理の手順を示すフローチャートである。図18に示すように、解析部14eは、解析結果データベース13iの全レコードのうち、未選択のレコードがあるか否かを判定する(S501)。
未選択のレコードがある場合(S501肯定)には、解析部14eは、未選択のレコードを1つ選択する(S502)。そして、解析部14eは、選択したレコードの「パルス種別」の項目の登録内容と、先の選択部14dにより選択されたレコードの「パルス種別」の項目の登録内容とが一致するか否かを判定する(S503)。一致しない場合(S503否定)には、解析部14eは、S501に戻る。
一方、一致する場合(S503肯定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「ビットパターン」の項目の登録内容と、選択部14dにより選択されたレコードの「ビットパターン」の項目の登録内容とが一致するか否かを判定する(S504)。一致しない場合(S504否定)には、解析部14eは、S501に戻る。
一方、一致する場合(S504肯定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「動作周波数[MHz]」の項目の登録内容と、選択部14dにより選択されたレコードの「動作周波数[MHz]」の項目の登録内容とが一致するか否かを判定する(S505)。一致しない場合(S505否定)には、解析部14eは、S501に戻る。
一方、一致する場合(S505肯定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「データレート」の項目の登録内容と、選択部14dにより選択されたレコードの「データレート」の項目の登録内容との差が所定の閾値内であるか否かを判定する(S506)。閾値内でない場合(S506否定)には、解析部14eは、S501に戻る。
一方、閾値内である場合(S506肯定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「解析条件」の項目の登録内容と、選択部14dにより選択されたレコードの「解析条件」の項目の登録内容とが一致するか否かを判定する(S507)。一致しない場合(S507否定)には、解析部14eは、S501に戻る。
一方、一致する場合(S507肯定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す部品の構成と、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示す部品の構成とが一致するか否かを判定する(S508)。一致しない場合(S508否定)には、解析部14eは、S501に戻る。
一方、一致する場合(S508肯定)には、解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線長の合計と、次に示す線長の合計との差が閾値内であるか否かを判定する。すなわち、解析部14eは、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線長の合計との差が閾値内であるか否かを判定する(S509)。閾値内でない場合(S509否定)には、解析部14eは、S501に戻る。
一方、一致する場合(S509肯定)には、解析部14eは、次の処理を行う。解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すライン18の線幅と、選択部14dにより選択されたレコードの「比較用構成情報文字列」が示すライン18の線幅との差が閾値内であるか否かを判定する(S510)。閾値内でない場合(S510否定)には、解析部14eは、S501に戻る。
一方、閾値内である場合(S510肯定)には、解析部14eは、次の処理を行う。解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示す値と、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示す値との差が閾値内であるか否かを判定する(S511)。値の差が閾値内でない場合(S511否定)には、解析部14eは、S501に戻る。
一方、値の差が閾値内である場合(S511肯定)には、解析部14eは、次の処理を行う。解析部14eは、選択したレコードの「比較用構成情報文字列」の項目の登録内容が示すドライバやレシーバのモデルの名称と、次に示すモデルの名称とが一致するか否かを判定する。すなわち、選択部14dにより選択されたレコードの「比較用構成情報文字列」の項目の登録内容が示すドライバやレシーバのモデルの名称とが一致するか否かを判定する(S512)。一致しない場合(S512否定)には、解析部14eは、S501に戻る。
一方、一致する場合(S512肯定)には、解析部14eは、次の処理を行う。すなわち、解析部14eは、制御部14の内部メモリの所定の領域を第2のフラグの領域(図示せず)とし、第2のフラグの領域に、第2のフラグがONであることを示す「1」を設定する(S513)。そして、解析部14eは、処理結果を内部メモリに格納し、リターンする。
また、未選択のレコードがない場合(S501否定)には、解析部14eは、第2のフラグの領域に、第2のフラグがOFFであることを示す「0」を設定する(S514)。そして、解析部14eは、処理結果を内部メモリに格納し、リターンする。
上述してきたように、本実施例に係る解析装置10は、ネット情報13aなどから、構成情報文字列及び比較用構成情報文字列を抽出する。そして、解析装置10は、抽出された比較用構成情報文字列に基づいて、ネットをグルーピングする。続いて、解析装置10は、グルーピングされたネットのうちの一つのネットを解析対象として選択する。したがって、解析装置10によれば、全てのネットを解析対象とするのではなく、解析結果が類似するようなグルーピングされたネットのうちの一つのネットを解析対象として選択する。それゆえ、解析装置10によれば、解析時間の短縮化を図ることができる。
また、解析装置10によれば、解析対象のネットの数が減少することから、解析結果の数も減少する。したがって、解析装置10によれば、人の手によって解析結果を検証する場合には、検証する解析結果の数が減少することから、検証ミスを減少させることができる。
また、解析装置10によれば、位置情報などのネットの実形状を表す情報が除外された比較用構成情報文字列を用いて、ネットのグルーピングを行う。したがって、解析装置10によれば、より少ない情報量の比較用構成情報文字列を用いてグルーピングを行うことができる。
また、本実施例に係る解析装置10では、同一グループに属するネットのうち、ライン長が最も長いネットに関する情報が解析に用いられる。そのため、解析装置10によれば、グルーピングされたネットの中でワーストケースのネットを用いて解析を行うことができる。
また、本実施例に係る解析装置10は、過去の解析結果の中から、解析対象のネットに類似するネットの解析結果が記憶部に記憶されている場合には、解析を行わずに、記憶部から解析結果を取得する。したがって、解析装置10によれば、迅速に解析結果を得ることができる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
また、実施例などにおいて説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。
また、各種の負荷や使用状況などに応じて、実施例などにおいて説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。例えば、開示の装置は、上述したS303〜S312の処理の順番を入れ替えることができる。また、開示の装置は、上述したS303〜S312の処理の全ての処理を実行するのではなく、少なくとも一つの処理を実行するように構成することもできる。また、開示の装置は、上述したS503〜S512の処理の順番を入れ替えることができる。また、開示の装置は、上述したS503〜S512の処理の全ての処理を実行するのではなく、少なくとも一つの処理を実行するように構成することもできる。
また、各種の負荷や使用状況などに応じて、実施例などにおいて説明した各処理の各ステップでの処理の順番を変更できる。
また、図示した装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
[解析プログラム]
また、上記の解析装置10の作成処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図19を用いて、上記の解析装置10と同様の機能を有する解析プログラムを実行するコンピュータの一例を説明する。
図19は、解析プログラムを実行するコンピュータを示す図である。図19に示すように、コンピュータ300は、CPU(Central Processing Unit)310、ROM(Read Only Memory)320、HDD(Hard Disk Drive)330、RAM(Random Access Memory)340を有する。これら300〜340の各部は、バス350を介して接続される。
HDD330には、上記の実施例で示す取得部14aと、抽出部14bと、グルーピング部14cと、選択部14dと、解析部14eと同様の機能を発揮する解析プログラム330aが予め記憶される。なお、解析プログラム330aについては、適宜分離しても良い。
そして、CPU310が、解析プログラム330aをHDD330から読み出して実行する。
そして、HDD330には、図1の例に示す記憶部13に記憶された各種のデータが設けられる。
そして、CPU310は、各種のデータを読み出してRAM340に格納する。さらに、CPU310は、RAM340に格納された各種のデータを用いて、解析プログラム330aを実行する。なお、RAM340に格納される各データは、常に全てのデータがRAM340に格納されなくともよく、全てのデータのうち処理に用いられるデータのみがRAM340に格納されれば良い。
なお、上記した解析プログラム330aについては、必ずしも最初からHDD330に記憶させなくともよい。
例えば、コンピュータ300に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ300に接続される「他のコンピュータ(またはサーバ)」などにプログラムを記憶させておく。そして、コンピュータ300がこれらからプログラムを読み出して実行するようにしてもよい。