[結線チェック処理の概要]
まず、本実施例に係る結線チェック処理の概要について説明する。図1−1および図1−2は、本実施例に係る結線チェック処理の概要を説明するための図である。なお、図1−1および図1−2では、本実施例に係る結線チェック処理の概要を説明するために必要な部位のみを図示する。
図1−1に示した情報処理装置10は、交換機等の情報処理装置であり、バックボード20と、結果表示部61aおよび61bとを有する。バックボード20は、スロット30aおよび30bと、結果表示部62aおよび62bとを有し、スロット30aおよび30bを介して、パッケージ40aおよび40bを搭載する。スロット30aは、出力端子T31aと、入力端子T32aとを有し、スロット30bは、出力端子T31bと、入力端子T32bとを有する。
パッケージ40aおよび40bは、FPGAを有するプリント基板であり、パッケージ40aは、FPGA50−1aと、結果表示部63aとを有し、パッケージ40bは、FPGA50−1bと、結果表示部63bとを有する。
なお、同図では、バックボード20が、2個のパッケージ40aおよび40bを搭載する例を示したが、バックボード20は3個以上のパッケージを搭載してもよい。また、同図では、パッケージ40aおよび40bが、それぞれ1個のFPGAを有する例を示したが、パッケージ40aおよび40bは、2個以上のFPGAを有してもよい。
FPGA50−1aは、本実施例にかかる結線チェック処理を実現するためのROMデータが書き込まれており、出力端子T11aと、入力端子T12aと、端子データ出力部510aと、比較データ出力部520aと、検査部530aとを有する。同様に、FPGA50−1bは、出力端子T11bと、入力端子T12bと、端子データ出力部510bと、比較データ出力部520bと、検査部530bとを有する。
ここで、図1−1に示した端子間の接続状態について説明する。同図に示した例では、FPGA50−1aの出力端子T11aは、スロット30aの出力端子T31aと、スロット30bの入力端子T32bとを介して、FPGA50−1bの入力端子T12bに接続されている。すなわち、出力端子T11aから出力される信号は、出力端子T31aと入力端子T32bとを介して、入力端子T12bへ入力される。同様に、出力端子T11bは、出力端子T31bと入力端子T32aとを介して、入力端子T12aに接続されている。
なお、同図に示した各端子の接続状態は、配線ミスがない状態を示しているものとする。すなわち、情報処理装置10においては、同図に示したように各端子が配線されている場合に、結線チェック処理の結果が「OK(正常)」となる。FPGA50−1aおよび50−1bは、情報処理装置10内の結線状態が同図に示した接続状態であるか否かをチェックする。
FPGA50−1aが有する端子データ出力部510aは、FPGA50−1aが有する端子を識別するためのデータ(以下、「端子データ」という)を記憶しており、FPGA50−1aが有する出力端子から、かかる出力端子の端子データを出力する。この端子データには、出力元のスロットを識別するための番号(以下、「スロット番号」という)と、出力元のFPGAを識別するための番号(以下、「FPGA番号」という)と、出力元の出力端子を識別するための情報が含まれる。すなわち、端子データ出力部510aは、出力端子T11aから、スロット30aに搭載されているFPGA50−1aの出力端子T11aであることを識別することができる端子データを出力する。なお、端子データの生成手法については、後に詳述する。
比較データ出力部520aは、FPGA50−1aが有する入力端子を識別するための情報(以下、「入力端子識別情報」という)に対応付けて、かかる入力端子が受信する端子データの期待値(以下、入力端子が受信する端子データの期待値を「比較データ」という)を記憶する。そして、比較データ出力部520aは、結線チェック処理が開始した場合に、比較データを検査部530aへ出力する。
具体的には、比較データ出力部520aは、入力端子T12aの入力端子識別情報に対応付けて、スロット30bに搭載されているFPGA50−1bの出力端子T11bを示す端子データを、比較データとして記憶する。これは、情報処理装置10内の結線状態が正常である場合、すなわち、情報処理装置10内の結線状態が図1−1に示した結線状態である場合、入力端子T12aは、出力端子T11bから、出力端子T31bと入力端子T32aとを介して、端子データを受信するからである。なお、比較データの生成手法については、後に詳述する。
検査部530aは、入力端子T12aが端子データを受信した場合に、受信した端子データと、比較データ出力部520aから受け付けた端子データとが同一であるか否かを判定する。そして、検査部530aは、判定結果を結果表示部61a、62aおよび63aへ出力する。
具体的には、検査部530aは、入力端子T12aが端子データを受信した場合に、比較データ出力部520aから、入力端子T12aの入力端子識別情報に対応付けて記憶されている比較データを受け付ける。続いて、検査部530aは、入力端子T12aが受信した端子データと、比較データ出力部520aから受け付けた比較データとを比較する。続いて、検査部530aは、入力端子T12aが受信した端子データと、比較データとが一致する場合、入力端子T12aと出力端子T11bとが正常に接続されていると判定して、判定結果を結果表示部61a等へ出力する。
一方、入力端子T12aが受信した端子データと、比較データとが一致しない場合、検査部530aは、入力端子T12aが他の出力端子と接続や断線等されている、すなわち、入力端子T12aと出力端子T11bとが正常に接続されていないと判定して、判定結果を結果表示部61a等へ出力する。
同様に、端子データ出力部510bは、出力端子T11bから、出力端子T11bを示す端子データを出力する。また、比較データ出力部520bは、入力端子T12bの入力端子識別情報に対応付けて、入力端子T12bが受信する端子データの期待値、すなわち、出力端子T11aの端子データを比較データとして記憶し、検査部530bへ出力する。また、検査部530bは、入力端子T12bが端子データを受信した場合に、受信した端子データと、比較データ出力部520bから受け付けた比較データとを比較して、同一であるか否かを判定する。
結果表示部61a、61b、62a、62b、63aおよび63bは、検査部530aおよび530bから受け付ける判定結果を表示する装置であり、例えば、発光ダイオード(LED:Light Emitting Diode)などである。具体的には、結果表示部61a等は、検査部530aから判定結果「OK」を受け付けた場合に、青色発光ダイオードを発光させたり、検査部530aから判定結果「NG(異常)」を受け付けた場合に、赤色発光ダイオードを発光させたりする。また、結果表示部61a等は、判定結果が「NG(異常)」である場合には、異常であると判定された出力端子および入力端子を特定できるように表示する。
なお、同図では、情報処理装置10が、複数の結果表示部61a、61b、62a、62b、63aおよび63bを有する例を示したが、情報処理装置10は、すべての結果表示部61a、61b、62a、62b、63aおよび63bを有しなくてもよい。例えば、情報処理装置10は、結果表示部61aおよび61bのみを有してもよいし、結果表示部63aおよび63bのみを有してもよい。
また、本実施例に係る結線チェック処理では、FPGA50−1aから出力された信号を、FPGA50−1aの入力端子が受信する場合についても、結線チェックを行うことが可能である。すなわち、信号を出力するFPGAと、信号を受信するFPGAとが同一である場合についても、結線チェックを行うことが可能である。
図1−2を用いて具体的に説明する。同図に示した情報処理装置11は、自己折り返し用バックボード70を有する。自己折り返し用バックボード70は、FPGA50−1aの出力端子から出力された信号を、同一のFPGA50−1aが有する入力端子へ折り返すためのバックボードである。この自己折り返し用バックボード70は、スロット80aを有し、スロット80aを介して、パッケージ40aを搭載する。スロット80aは、出力端子T81と、入力端子T82とを有する。
同図に示した例において、FPGA50−1aが有する端子データ出力部510aは、出力端子T11aから端子データを出力する。また、比較データ出力部520aは、入力端子T12aの入力端子識別情報に対応付けて、出力端子T11aを示す端子データを記憶する。これは、情報処理装置11内の結線状態が正常である場合、すなわち、情報処理装置11内の結線状態が図1−2に示した結線状態である場合、入力端子T12aは、出力端子T11aから、出力端子T81と入力端子T82とを介して、端子データを受信するからである。
検査部530aは、入力端子T12aが端子データを受信した場合に、比較データ出力部520aから、入力端子T12aの入力端子識別情報に対応付けて記憶されている比較データを受け付ける。続いて、検査部530aは、入力端子T12aが受信した端子データと比較データとが同一であるか否かを判定し、判定結果を結果表示部61a等へ出力する。
なお、以下において、図中に付加した参照符号「a」および「b」を省略して記載する場合は、参照符号「a」または「b」が付加された2個の部位を示すものとする。例えば、「FPGA50−1」は、「FPGA50−1aとFPGA50−1b」を示すものとする。
このように、本実施例に係る結線チェック処理では、FPGA50−1の端子データ出力部510が、出力端子から端子データを出力し、FPGA50−1の入力端子が端子データを受信した場合に、比較データ出力部520が、端子データを受信した入力端子に対応する比較データを検査部530へ出力し、検査部530が、入力端子が受信した端子データと、比較データ出力部520から受信した比較データとが同一であるか否かを判定し、判定結果を結果表示部61等へ出力するので、検証者が、FPGA間の配線パターンを目視で確認したり、専用のテスターを用いて結線の導通チェック、または、入出力データのモニタリングを行ったりすることなく、複数のスロットを介して複数のパッケージを搭載するバックボードにおけるパッケージ間の配線を容易、かつ、確実にチェックすることができる。
また、本実施例に係る結線チェック処理では、検査部530による判定結果が「NG(異常)」である場合、結果表示部61等が、異常であると判定された出力端子および入力端子を特定できるように表示するので、不具合が、FPGA間の配線パターンに起因するのか、FPGA回路自体の不具合に起因するのかを容易に切り分けわけることができる。これにより、FPGA間の配線ミスや、FPGA間の結線が物理的に断線している場合などの欠陥がある場合であっても、不具合を特定するために要する工数を低減することができる。
上述したパッケージ40aおよびパッケージ40bは、同一のパッケージであり、スロット30aまたはスロット30bのどちらに搭載されても結線チェック処理を実行することができる。この点について、図1−1におけるパッケージ40aがスロット30bに搭載され、パッケージ40bがスロット30aに搭載された場合を例に挙げて説明する。かかる場合、FPGA50−1aの端子データ出力部510aは、出力端子T11aから、スロット30bに搭載されているFPGA50−1aの出力端子T11aであることを識別することができる端子データを出力する。
また、FPGA50−1aの比較データ出力部520aは、FPGA50−1aがスロット30aまたはスロット30bのどちらに搭載されてもよいように比較データを記憶する。具体的には、比較データ出力部520aは、FPGA50−1aがスロット30aに搭載された場合における入力端子T12aが受信する端子データの期待値と、FPGA50−1aがスロット30bに搭載された場合における入力端子T12aが受信する端子データの期待値とを、比較データとして記憶する。
FPGA50−1aおよび50−1bは、スロット30aまたは30bに搭載された際に、自身がスロット30aまたはスロット30bのどちらに搭載されているかを示す情報(以下、「搭載情報」という)を、バックボード20から取得する。そして、FPGA50−1は、取得した搭載情報に従って、結線チェック処理を行う。
図2および図3を用いて具体的に説明する。図2は、スロット間における結線チェック処理を説明するための図である。図3は、自己折り返し時の結線チェック処理を説明するための図である。図2に示すように、FPGA50−1aの端子データ出力部510aは、対向用データ記憶部D11aと、自己折り返し用データ記憶部D12aと、セレクタS10aとを有する。なお、FPGA50−1bの構成は、FPGA50−1aの構成と同様であるため、ここでは、FPGA50−1bの構成については、その説明を省略する。
対向用データ記憶部D11aは、スロット1用データ記憶部D111aと、スロット2用データ記憶部D112aと、セレクタS11aとを有する。スロット1用データ記憶部D111aは、FPGA50−1aがスロット30aに搭載された場合における出力端子の端子データを記憶する。スロット2用データ記憶部D112aは、FPGA50−1aがスロット30bに搭載された場合における出力端子の端子データを記憶する。セレクタS11aは、スロット1用データ記憶部D111a、および、スロット2用データ記憶部D112aから端子データを受け付けて、いずれか一方の端子データのみを選択して出力する。
自己折り返し用データ記憶部D12aは、スロット1用データ記憶部D121aと、スロット2用データ記憶部D122aと、セレクタS12aとを有する。スロット1用データ記憶部D121aは、FPGA50−1aが自己折り返し用バックボード70のスロット80aに搭載された場合における出力端子の端子データを記憶する。スロット2用データ記憶部D122aは、FPGA50−1aが自己折り返し用バックボード70のスロット80a以外のスロット(スロット80bとする)に搭載された場合における出力端子の端子データを記憶する。セレクタS12aは、スロット1用データ記憶部D121a、および、スロット2用データ記憶部D122aから端子データを受け付けて、いずれか一方の端子データのみを選択して出力する。
セレクタS10aは、対向用データ記憶部D11a、および、自己折り返し用データ記憶部D12aから端子データを受け付けて、いずれか一方の端子データのみを選択して出力する。
比較データ出力部520aは、対向用比較データ記憶部D21aと、自己折り返し用比較データ記憶部D22aと、セレクタS20aとを有する。対向用比較データ記憶部D21aは、スロット1用比較データ記憶部D211aと、スロット2用比較データ記憶部D212aと、セレクタS21aとを有する。
スロット1用比較データ記憶部D211aは、FPGA50−1aがスロット30aに搭載された場合における比較データを記憶する。スロット2用比較データ記憶部D212aは、FPGA50−1aがスロット30bに搭載された場合における比較データを記憶する。セレクタS21aは、スロット1用比較データ記憶部D211a、および、スロット2用比較データ記憶部D212aから比較データを受け付けて、いずれか一方の比較データのみを選択して出力する。
自己折り返し用比較データ記憶部D22aは、スロット1用比較データ記憶部D221aと、スロット2用比較データ記憶部D222aと、セレクタS22aとを有する。スロット1用比較データ記憶部D221aは、FPGA50−1aが自己折り返し用バックボード70のスロット80aに搭載された場合における比較データを記憶する。スロット2用比較データ記憶部D212aは、FPGA50−1aが自己折り返し用バックボード70のスロット80bに搭載された場合における入力端子の比較データを記憶する。セレクタS22aは、スロット1用比較データ記憶部D221a、および、スロット2用比較データ記憶部D222aから比較データを受け付けて、いずれか一方の比較データのみを選択して出力する。
セレクタS20aは、対向用比較データ記憶部D21a、および、自己折り返し用比較データ記憶部D22aから比較データを受け付けて、いずれか一方の比較データのみを選択して出力する。
このような構成の下、例えば、図2に示したように、パッケージ40aがバックボード20のスロット30aに搭載された場合、FPGA50−1aは、搭載情報を取得して、自身がバックボード20のスロット30aに搭載されたことを認識する。かかる場合、セレクタS10aは、対向用データ記憶部D11aから受け付ける端子データを出力するように制御されるとともに、セレクタS11aは、スロット1用データ記憶部D111aから受け付ける端子データを出力するように制御される。また、セレクタS20aは、対向用比較データ記憶部D21aから受け付ける比較データを出力するように制御されるとともに、セレクタS21aは、スロット1用比較データ記憶部D211aから受け付ける比較データを出力するように制御される。
一方、例えば、図3に示したように、パッケージ40aが自己折り返し用バックボード70のスロット80aに搭載された場合、FPGA50−1aは、搭載情報に基づいて、自身が自己折り返し用バックボード70のスロット80aに搭載されたことを認識する。かかる場合、セレクタS10aは、自己折り返し用データ記憶部D12aから受け付ける端子データを出力するように制御されるとともに、セレクタS12aは、スロット1用データ記憶部D121aから受け付ける端子データを出力するように制御される。また、セレクタS20aは、自己折り返し用比較データ記憶部D22aから受け付ける比較データを出力するように制御されるとともに、セレクタS22aは、スロット1用比較データ記憶部D221aから受け付ける比較データを出力するように制御される。
このように、FPGA50−1aおよび50−1bは、スロット30aまたはスロット30bのどちらに搭載されてもよいように端子データおよび比較データを記憶しているので、パッケージがバックボード上のどのスロットに搭載されても結線チェック処理を実行することができる。
[ROMデータ生成手法の概要]
次に、本実施例に係る結線チェック処理を実現するためのROMデータを生成する手法について説明する。図4は、本実施例に係る結線チェック処理を実現するためのROMデータを生成する手法の概要を説明するための図である。
同図に示すように、本実施例に係る結線チェック処理を実現するためのROMデータR30は、情報処理装置1および2によって生成される。具体的には、まず、情報処理装置1は、端子情報ファイルF11と、スロット接続情報ファイルF12と、設定ファイルF13とを受け付ける。
端子情報ファイルF11は、バックボード20上に搭載される複数のFPGA50−1a等が有する端子に関する情報や、かかる端子とスロット30a等との接続関係が定義されているファイルである。また、スロット接続情報ファイルF12は、スロット30a等に関する情報や、スロット間の接続関係が定義されているファイルである。また、設定ファイルF13は、スロット30a等にパッケージが搭載されるか否かが定義されているファイルである。なお、端子情報ファイルF11、スロット接続情報ファイルF12、設定ファイルF13の構造については、後に詳述する。
端子情報ファイルF11、スロット接続情報ファイルF12、および、設定ファイルF13に定義されている端子間の接続関係は、正常な結線状態が定義されている。したがって、各端子の結線状態と、上記端子情報ファイルF11等に定義されている接続関係とが同一である場合に、各端子の結線状態が正常であると判定されることになる。
続いて、端子情報ファイルF11と、スロット接続情報ファイルF12と、設定ファイルF13とを受け付けると、情報処理装置1の回路構造ファイル生成プログラム1071は、端子データおよび比較データを生成する。端子データおよび比較データの生成処理については、後に詳述する。
続いて、回路構造ファイル生成プログラム1071は、後述する論理合成処理およびレイアウト処理に必要となるRTLファイルF21と、制約ファイルF22とを生成する。RTLファイルF21は、RTL記述により回路構造が記述されたファイルである。制約ファイルF22は、各端子に関する所定の定義が記述されたファイルである。そして、情報処理装置1は、生成したRTLファイルF21と、制約ファイルF22とを、情報処理装置2へ入力する。
情報処理装置2は、入力されたRTLファイルF21と、制約ファイルF22に対して、論理合成処理およびレイアウト処理を行う。この情報処理装置2による論理合成処理およびレイアウト処理は、既存のツールを用いて行われる。これにより、結線チェック処理を実行するための論理回路と、端子データおよび比較データが記憶されるメモリとを含むROMデータR30が生成される。なお、同図では、RTLファイルF21等を生成する情報処理装置1と、ROMデータR30を生成する情報処理装置2とを別体にする例を示したが、情報処理装置1と情報処理装置2とは同一の情報処理装置であってもよい。
[回路構造ファイル生成プログラム]
次に、回路構造ファイル生成プログラム1071を実行する情報処理装置1の構成について説明する。図5は、結線チェックデータ生成プログラムを実行する情報処理装置1の構成を示すブロック図である。
同図に示すように、情報処理装置1は、各種演算処理を実行するCPU(Central Processing Unit)1010と、ユーザからのデータの入力を受け付ける入力装置1020と、各種情報を表示するモニタ1030と、記録媒体からプログラム等を読み取る媒体読取り装置1040と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置1050と、各種情報を一時記憶するRAM(Random Access Memory)1060と、ハードディスク装置1070とをバス1080で接続されている。
そして、ハードディスク装置1070には、回路構造ファイル生成プログラム1071と、端子情報ファイルF11と、スロット接続情報ファイルF12と、設定ファイルF13とが記憶される。なお、端子情報ファイルF11、スロット接続情報ファイルF12、または、設定ファイルF13を、適宜分散させ、ネットワークを介して接続された他のコンピュータに記憶させておくこともできる。
そして、CPU1010が回路構造ファイル生成プログラム1071をハードディスク装置1070から読み出してRAM1060に展開することにより、回路構造ファイル生成プログラム1071は、回路構造ファイル生成プロセス1061として機能するようになる。
そして、回路構造ファイル生成プロセス1061は、ハードディスク装置1070に記憶されている端子情報ファイルF11、スロット接続情報ファイルF12および設定ファイルF13を読み出して、自身に割り当てられている領域に展開し、この展開したデータ等に基づいて各種データ処理を実行する。
そして、回路構造ファイル生成プロセス1061は、RTLファイルF21および制約ファイルF22を生成し、生成したRTLファイルF21および制約ファイルF22を、ハードディスク装置1070に記憶させる。
なお、上記の回路構造ファイル生成プログラム1071は、必ずしもハードディスク装置1070に格納されている必要はなく、CD−ROM等の記憶媒体に記憶されたこのプログラムを、情報処理装置1が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等を介して情報処理装置1に接続される他の情報処理装置等にこのプログラムを記憶させておき、情報処理装置1がこれらからプログラムを読み出して実行するようにしてもよい。
[ROMデータ生成手法の具体例]
次に、図6に示した情報処理装置10を例に挙げて、上述したROMデータ生成手法について、より具体的に説明する。図6は、本実施例に係る結線チェック処理を実行する情報処理装置10の一例を示す図である。
同図に示した各端子の結線状態について説明する。同図に示した例では、FPGA50−1aの出力端子「F1_OD1」は、スロット30aの入力端子「S1」および出力端子「B_S1」と、スロット30bの入力端子「B_S11」および出力端子「S3」とを介して、FPGA50−1bの入力端子「F1_ID1」と接続されている。また、FPGA50−1bの出力端子「F1_OD1」は、スロット30bの入力端子「S1」および出力端子「B_S9」と、スロット30aの入力端子「B_S3」および出力端子「S3」とを介して、FPGA50−1aの入力端子「F1_ID1」と接続されている。
また、FPGA50−2aの出力端子「F2_OD1」は、スロット30aの入力端子「S5」および出力端子「B_S5」と、スロット30bの入力端子「B_S15」および出力端子「S7」とを介して、FPGA50−2bの入力端子「F2_ID1」と接続されている。また、FPGA50−2bの出力端子「F2_OD1」は、スロット30bの入力端子「S5」および出力端子「B_S13」と、スロット30aの入力端子「B_S7」および出力端子「S7」とを介して、FPGA50−2aの入力端子「F2_ID1」と接続されている。
このように接続されているFPGA間の結線状態をチェックする場合、ユーザは、図7に例示するような端子情報ファイルF11と、図8に例示するようなスロット接続情報ファイルF12と、図9に例示するような設定ファイルF13とを、情報処理装置1へ入力する。
図7に例示した端子情報ファイルF11について説明する。同図に示すように、端子情報ファイルF11は、パッケージ内のFPGAごとに定義されている。ここで、「#FPGA50−1」の端子情報ファイルF11は、FPGA50−1aおよび50−1bが有する端子について定義されたファイルを示し、「#FPGA50−2」の端子情報ファイルF11は、FPGA50−2aおよび50−2bが有する端子について定義されたファイルを示す。
同図に示すように、「Port name」、「range」、「I/O」、「type」、「種別」、「同期クロック」、「接続元ブロック」、「接続元Port name」、「FPGA番号」といった項目を有する。
「Port name」は、FPGAが有する端子の名称を示す。「range」は、「Port name」が示す端子から出力されるデータ、または、「Port name」が示す端子に入力されるデータのビット幅を示す。同図では、rangeが「1」である場合、ビット幅が1ビットのであることを示す。なお、同図中には例示していないが、rangeが「7:0」である場合、ビット幅が8ビットであることを示す。
「I/O」は、「Port name」が示す端子が、入力端子または出力端子のどちらであるかを識別するための情報を示す。同図では、I/Oが「I」である場合、端子が入力端子であることを示し、I/Oが「O」である場合、端子が出力端子であることを示す。なお、同図中には例示していないが、I/Oが「IO」である場合、端子が入出力端子であることを示す。
「type」は、rangeのビット幅が1ビットであるか、または、多数ビット(2ビット以上)であるかを識別するための情報を示す。同図では、typeが「S(Single)」である場合、rangeのビット幅が1ビットであることを示す。なお、同図中には例示していないが、typeが「V(Vector)」である場合、rangeのビット幅が多数ビットであることを示す。
「種別」は、「Port name」が示す端子から出力されるデータ、または、「Port name」が示す端子に入力されるデータの種別を示す。同図では、例えば、種別が「CLK」である場合、「Port name」が示す端子が、バックボード20の外部からクロック信号を受け付けることを示す。また、例えば、種別が「DT」である場合、入出力される信号が「データ」であることを示す。
「同期クロック」は、種別が「DT」である場合に、かかるデータ信号が同期しているクロックを示す。「接続元ブロック」は、「Port name」が示す端子と接続される端子の所属部位を示す。例えば、接続元ブロックが「SLOT」である場合、「Port name」が示す端子が、スロットの端子と接続されていることを示す。「接続元Port name」は、「Port name」が示す端子と接続される端子の名称を示す。
「FPGA番号」は、パッケージ内でFPGAを識別するためのFPGA番号を示す。以下では、図6に示したFPGA50−1a、50−1b、50−2aおよび50−2bに付した参照符号から、参照符号「a」または「b」を除いた情報をFPGA番号とする。例えば、FPGA番号「50−1」は、FPGA50−1aまたは50−1bを示し、FPGA番号「50−2」は、FPGA50−2aまたは50−2bを示す。
続いて、図8に例示したスロット接続情報ファイルF12について説明する。同図に示すように、スロット接続情報ファイルF12は、スロットごとに定義されており、「SLOT name」、「I/O」、「接続元SLOT」、「接続元SLOT name」、「SLOT番号」といった項目を有する。
「SLOT name」は、スロットが有する端子の名称を示す。「I/O」は、「SLOT name」が示す端子が、入力端子または出力端子のどちらであるかを識別するための情報を示す。「接続元SLOT」は、「SLOT name」が示す端子と接続されている端子の所属部位を示す。例えば、接続元SLOTが「SLOT30b」である場合、「SLOT name」が示す端子が、スロット30bが有する端子と接続されていることを示す。「接続元SLOT name」は、「SLOT name」が示す端子と接続されている端子の名称を示す。
「SLOT番号」は、スロットを識別するためのスロット番号を示す。以下では、図6に示したスロット30aおよび30bに付した参照符号をスロット番号とする。例えば、スロット番号「30a」は、スロット30aを示し、スロット番号「30b」は、スロット30bを示す。
なお、スロット30aおよび30bが有する入力端子と出力端子との対応は、規格により決定している。例えば、図6に示したスロット30aが有する入力端子「S1」は、出力端子「B_S1」に対応している。言い換えれば、スロット30aの入力端子「S1」に入力されたデータは、出力端子「B_S1」から出力される。
同様に、スロット30aの入力端子「S2」は出力端子「B_S2」に対応しており、入力端子「B_S3」は出力端子「S3」に対応しており、入力端子「B_S4」は出力端子「S4」に対応しており、入力端子「S5」は出力端子「B_S5」に対応しており、入力端子「S6」は出力端子「B_S6」に対応しており、入力端子「B_S7」は出力端子「S7」に対応しており、入力端子「B_S8」は出力端子「S8」に対応している。パッケージ40bの各端子についても同様である。
すなわち、図8に示した#スロット30aの項「11」は、スロット30aの入力端子「B_S3」が、スロット30bの出力端子「B_S9」と接続されていることを示している。前述したように、スロット30aの入力端子「B_S3」は、出力端子「S3」に対応しており、スロット30bの出力端子「B_S9」は、入力端子「S1」と対応していることが決定している。したがって、スロット30bの入力端子「S1」に入力された信号は、出力端子「B_S9」と、入力端子「B_S3」とを介して、スロット30aの出力端子「S3」から出力されることが分かる。
続いて、図9に例示した設定ファイルF13について説明する。同図に示すように、設定ファイルF13は、「SLOT番号」、「SLOT接続」といった項目を有する。「SLOT番号」は、図8に示したスロット接続情報ファイルF12が有する項目「SLOT番号」に対応する。「SLOT接続」は、SLOT番号が示すスロットに、パッケージが搭載されるか否かを示す。すなわち、図9に示した設定ファイルF13の項「1」は、スロット番号「30a」が示すスロット30aに、パッケージ(すなわち、FPGA)が搭載されることを示す。
上述したような端子情報ファイルF11等を入力された後、回路構造ファイル生成プログラム1071は、端子データおよび比較データを生成する。ここで、上述したような端子情報ファイルF11等を入力された回路構造ファイル生成プログラム1071による端子データ生成処理、および、比較データ生成処理について説明する。まず、回路構造ファイル生成プログラム1071による端子データ生成処理について説明する。
回路構造ファイル生成プログラム1071は、まず、端子情報ファイルF11から、他のFPGAと接続される出力端子に関する情報のみを抽出して、抽出した情報をFPGAごとに並べ替える。続いて、回路構造ファイル生成プログラム1071は、並べ替えた情報(以下、「出力端子データ群」という)と同一の情報を、設定ファイルF13にパッケージが接続されていることを示すスロット(以下、「有効スロット」という)の個数分だけ生成する。続いて、回路構造ファイル生成プログラム1071は、出力端子データ群に有効スロットを対応付ける(以下、出力端子データ群に有効スロットを対応付けた情報を「端子データ基」という)。そして、回路構造ファイル生成プログラム1071は、端子データ基に端子データを割り当てる。
出力端子データ群に有効スロットのみを対応付けて端子データを生成することで、パッケージが搭載されないスロットに対応する端子データを生成しないようにすることができる。これにより、不要な端子データを生成するための処理を省略することができるとともに、パッケージが搭載されないスロットに関して、結線チェック処理を行わないようにすることができる。
図10を用いて、回路構造ファイル生成プログラム1071による端子データ生成処理について具体的に説明する。図10は、回路構造ファイル生成プログラム1071による端子データ生成処理を説明するための図である。ここでは、回路構造ファイル生成プログラム1071が、図7に示した端子情報ファイルF11と、図8に示したスロット接続情報ファイルF12と、図9に示した設定ファイルF13とを受け付けたものとする。
回路構造ファイル生成プログラム1071は、まず、図7に例示した端子情報ファイルF11から、「I/O」が「O」である「Port name」を抽出する。ここでは、回路構造ファイル生成プログラム1071は、「Port name」として、「F1_OD1」と、「F1_OD2」と、「F2_OD1」と、「F2_OD2」とを抽出する。このとき、回路構造ファイル生成プログラム1071は、「I/O」が「O」であっても、他のFPGAと接続されない端子(結線チェック対象外端子)である「HIYOUJI」は抽出しない。なお、この「HIYOUJI」が示す端子は、結果表示部63aが有する端子と接続される。
続いて、回路構造ファイル生成プログラム1071は、抽出した「Port name」に、FPGA番号「50−1」および「50−2」を対応付けた後、FPGA番号ごとに並べ替える。具体的には、回路構造ファイル生成プログラム1071は、図10中の出力端子データ群G1に示すように、「FPGA50−1/F1_OD1」、「FPGA50−1/F1_OD2」、「FPGA50−2/F2_OD1」、「FPGA50−2/F2_OD2」の順に並べ替える。
続いて、回路構造ファイル生成プログラム1071は、図9に例示した設定ファイルF13に有効スロットの数が2個であることが定義されているので、出力端子データ群G1を2個生成する。ここでは、図10に示すように、2個目の出力端子データ群を、出力端子データ群G2とする。
続いて、回路構造ファイル生成プログラム1071は、図10中の端子データ基M1に示すように、出力端子データ群G1およびG2に、有効スロットであるスロット30aと、スロット30bとを対応付ける。
そして、回路構造ファイル生成プログラム1071は、端子データ基M1に対して、1行ごとに、端子データを割り当てる。具体的には、図10に示すように、回路構造ファイル生成プログラム1071は、「スロット30a/FPGA50−1/F1_OD1」に、端子データ「0101001」を割り当て、「スロット30a/FPGA50−1/F1_OD2」に、端子データ「0101010」を割り当てている。同様に、端子データを割り当てていき、最後に、「スロット30b/FPGA50−2/F2_OD2」に、端子データ「1010010」を割り当てている。
なお、同図に示した例では、回路構造ファイル生成プログラム1071は、端子データの先頭から1〜2ビットを、スロット番号を識別するための情報に割り当て、端子データの先頭から3〜4ビットを、FPGA番号を識別するための情報に割り当て、端子データの先頭から5〜7ビットを、「Port name」を識別するための情報に割り当てている。
具体的には、端子データの先頭から1〜2ビットが「01」である場合、スロット番号が「30a」であることを示し、「10」である場合、スロット番号が「30b」であることを示している。また、端子データの先頭から3〜4ビットが「01」である場合、FPGA番号が「50−1」であることを示し、「10」である場合、FPGA番号が「50−2」であることを示している。また、端子データの先頭から5〜7ビットが「001」である場合、「Port name」が、「F1_OD1」または「F2_OD1」であることを示し、「010」である場合、「Port name」が、「F1_OD2」または「F2_OD2」であることを示している。
このように生成された端子データのうち、スロット30aおよびFPGA50−1を対応付けた情報を基に生成された端子データ(図10中の項「1」「2」に対応する端子データ)は、FPGA50−1がスロット30aに搭載された場合に出力される端子データとなる。また、スロット30bおよびFPGA50−2を対応付けた情報を基に生成された端子データ(図10中の項「7」「8」に対応する端子データ)は、FPGA50−2がスロット30bに搭載された場合に出力される端子データとなる。
次に、回路構造ファイル生成プログラム1071による比較データ生成処理について説明する。回路構造ファイル生成プログラム1071は、上記端子データ生成処理において生成した端子データ基に、かかる端子データ基が示す出力端子から出力される信号を受け付ける入力端子を対応付ける。端子データ基に対応付ける入力端子は、端子データ基と同様に、「スロット番号」/「FPGA番号」/「Port name」という形式である。以下では、端子データ基に対応付ける入力端子の情報を「比較データ基」と呼ぶこととする。そして、回路構造ファイル生成プログラム1071は、端子データ基の端子データを比較データとする。
図11を用いて具体的に説明する。図11は、回路構造ファイル生成プログラム1071による比較データ生成処理を説明するための図である。同図に示すように、回路構造ファイル生成プログラム1071は、まず、端子データ生成処理において生成した端子データ基M1に、比較データ基H1を対応付ける。
具体的には、回路構造ファイル生成プログラム1071は、端子データ基M1の「スロット30a/FPGA50−1/F1_OD1」が示す出力端子から出力される信号を受信する端子を特定する。言い換えれば、回路構造ファイル生成プログラム1071は、FPGA50−1がスロット30aに搭載されることを想定して、FPGA50−1の出力端子「F1_OD1」から送信される信号を受信する端子を特定する。
図7に示した例では、#FPGA50−1の項「7」に示すように、FPGA50−1の出力端子「F1_OD1」は、スロット30aまたは30bの入力端子「S1」と接続される。ここでは、出力端子「F1_OD1」が、スロット30aの入力端子「S1」と接続される場合を想定している。また、上述したように、スロット30aの入力端子「S1」は、出力端子「B_S1」と対応することが決定している。
図8に示した例では、#スロット30bの項「11」に示すように、スロット30aの出力端子「B_S1」は、スロット30bの入力端子「B_S11」と接続される。このスロット30bの入力端子「B_S11」は、出力端子「S3」と対応することが決定している。そして、図7に示した例では、#FPGA50−1の項「5」に示すように、出力端子「S3」と接続されるのは、入力端子「F1_ID1」であることが分かる。すなわち、「スロット30a/FPGA50−1/F1_OD1」が示す出力端子から送信される信号を受信する端子は、スロット30bに搭載されるFPGA50−1の入力端子「F1_ID1」であることが分かる。
回路構造ファイル生成プログラム1071は、すべての端子データ基M1に、比較データ基H1を対応付けた後、端子データ基M1に対して、1行ごとに、比較データを割り当てる。この比較データは、上記端子データ生成処理において割り当てた端子データと同様の形式のデータである。FPGAは、かかる比較データを、比較データ基H1を対応付けて記憶する。
このように生成された比較データのうち、スロット30aおよびFPGA50−1の入力端子を対応付けた情報を基に生成された比較データ(図10中の項「5」「6」に対応する比較データ)は、FPGA50−1がスロット30aに搭載された場合に、比較データ出力部520から出力される比較データとなる。また、スロット30bおよびFPGA50−2の入力端子を対応付けた情報を基に生成された比較データ(図10中の項「3」「4」に対応する比較データ)は、FPGA50−2がスロット30bに搭載された場合に、比較データ出力部520から出力される比較データとなる。
端子データおよび比較データを生成した後に、回路構造ファイル生成プログラム1071は、RTLファイルF21と、制約ファイルF22とを生成する。RTLファイルF21の一例を図12に示す。同図に示すように、回路構造ファイル生成プログラム1071は、図6のFPGA50−1aなどに書き込まれる論理回路の構造をRTL記述により記述したRTLファイルF21を生成する(図12を参照)。また、制約ファイルF22の一例を図13に示す。同図に示すように、回路構造ファイル生成プログラム1071は、論理合成処理およびレイアウト処理に必要となる制約ファイルF22を生成する。
[FPGAの構成]
次に、ROMデータR30が書き込まれたFPGA50−1a、50−1b、50−2aおよび50−2bの構成について説明する。図14は、ROMデータR30が書き込まれたFPGA50−1a、50−1b、50−2aおよび50−2bの構成を示すブロック図である。なお、FPGA50−1a、50−1b、50−2aおよび50−2bは、いずれも同様の構成を有するため、ここでは、FPGA50−1aを例にして説明する。
同図に示すように、ROMデータR30が書き込まれたFPGA50−1aは、端子データ出力部510aと、比較データ出力部520aと、検査部530aとを有する。
端子データ出力部510aは、アドレス生成部511aと、端子データ記憶部512aとを有する。アドレス生成部511aは、結線チェック処理を開始させるための信号(以下、「スタート信号」という)を検出すると、クロックの立ち上がりエッジに応じて、カウンタを「0」からカウントアップして、アドレスとして端子データ記憶部512aへ出力する。端子データ記憶部512aは、アドレス生成部511aから入力されたカウンタ値に従って、端子データを、FPGA50−1aが有する出力端子から出力する。なお、端子データ記憶部512aは、図2に示した対向用データ記憶部D11aおよび自己折り返し用データ記憶部D12aに対応する。
比較データ出力部520aは、アドレス生成部521aと、比較データ記憶部522aとを有する。アドレス生成部521aは、上記アドレス生成部511aと同様に、スタート信号を検出すると、クロックの立ち上がりエッジに応じて「0」からカウントアップし、アドレスとして比較データ記憶部522aへ出力する。比較データ記憶部522aは、アドレス生成部521aから入力されたカウンタ値に従って、比較データを、比較部532aへ出力する。なお、比較データ記憶部522aは、図2に示した対向用比較データ記憶部D21aおよび自己折り返し用比較データ記憶部D22aに対応する。
検査部530aは、データ検出部531aと、比較部532aとを有する。データ検出部531aは、FPGA50−1aが有する入力端子から入力される端子データを検出して、比較部532aへ出力する。比較部532aは、データ検出部531aから入力された端子データと、比較データ記憶部522aから入力された比較データとが同一であるか否かを判定して、判定結果を結果表示部61a等へ出力する。
ここで、図15を用いて、図14に示した端子データ出力部510aによる端子データ出力処理について具体的に説明する。図15は、端子データ出力部510aによる端子データ出力処理の一例を説明するための図である。なお、図15では、FPGA50−1aがスロット30aに搭載され、端子データ記憶部512aに、図10において説明した端子データが記憶されているものとする。
図15に示すように、アドレス生成部511aは、時間「0」に検出するスタート信号から「t」時間毎にアドレス「1」、「2」、・・、「7」を生成して、端子データ記憶部512aへ出力する。
アドレス生成部511aからアドレスを受け付けた端子データ記憶部512aは、アドレスに応じた端子データをFPGA50−1aが有する出力端子から出力する。具体的には、端子データ記憶部512aは、時間「0」から「t」時間ごとに、出力端子「F1_OD1」から、端子データ「0」、「1」、「0」、「1」、「0」、「0」、「1」を出力するとともに、出力端子「F1_OD2」から、端子データ「0」、「1」、「0」、「1」、「0」、「1」、「0」を出力する。
続いて、図16を用いて、図14に示した比較データ出力部520aおよび検査部530aによる端子データ比較処理について具体的に説明する。図16は、比較データ出力部520aおよび検査部530aによる端子データ比較処理の一例を説明するための図である。なお、図16では、FPGA50−1aがスロット30aに搭載されており、比較データ記憶部522aに、図11において説明した比較データが記憶されているものとする。
図16に示すように、データ検出部531aは、入力端子「F1_ID1」および「F1_ID2」から入力される端子データを検出し、かかる端子データを比較部532aへ出力する。アドレス生成部521aは、時間「0」に検出するスタート信号から「t」時間毎にアドレス「1」、「2」、・・、「7」を生成して、比較データ記憶部522aへ出力する。
続いて、アドレス生成部521aからアドレスを受け付けた比較データ記憶部522aは、アドレスに応じた比較データを比較部532aへ出力する。この比較データは、入力端子「F1_ID1」および「F1_ID2」に対応付けられて記憶されている比較データである。
そして、比較部532aは、時間「0」から「t」時間ごとにデータ検出部531aから出力される端子データと、比較データ記憶部522aから入力される比較データとが同一であるか否かを判定して、判定結果を結果表示部61a等へ出力する。具体的には、データ検出部531aは、時間「0」から時間「t1」区間において、データ検出部531aから端子データ「1」を入力されるとともに、比較データ記憶部522aから比較データ「1」を入力される。端子データ「1」と比較データ「1」とが一致するので、図16に示した例では、判定結果として「1」を結果表示部61a等へ出力している。このようにして、比較部532aは、時間「t1」以後も同様に、端子データ比較処理を行う。なお、ここでは、比較部532aは、端子データと比較データとが一致する場合に、判定結果「1」を結果表示部61a等へ出力し、端子データと比較データとが一致しない場合に、判定結果「0」を結果表示部61a等へ出力するものとする。
[情報処理装置によるROMデータR30の生成処理手順]
次に、情報処理装置1および2によるROMデータR30の生成処理の手順を説明する。図17は、情報処理装置1および2によるROMデータR30の生成処理手順を示すフローチャートである。同図に示すように、情報処理装置1は、端子情報ファイルF11と、スロット接続情報ファイルF12とを受け付ける(ステップS101)。続いて、情報処理装置1は、設定ファイルF13を受け付ける(ステップS102)。
続いて、情報処理装置1の回路構造ファイル生成プログラム1071は、入力された端子情報ファイルF11と、スロット接続情報ファイルF12と、設定ファイルF13とに基づいて、端子データを生成する(ステップS103)。続いて、回路構造ファイル生成プログラム1071は、比較データを生成する(ステップS104)。
続いて、回路構造ファイル生成プログラム1071は、論理合成処理およびレイアウト処理に必要となるRTLファイルF21を生成するとともに(ステップS105)、制約ファイルF22を生成する(ステップS106)。
続いて、情報処理装置2は、情報処理装置1により生成されたRTLファイルF21と、制約ファイルF22とに対して、論理合成処理およびレイアウト処理を行う(ステップS107)。論理合成処理およびレイアウト処理に異常が発生した場合(ステップS108否定)、ユーザは、端子情報ファイルF11等の定義内容を修正し、情報処理装置1が、端子情報ファイルF11等を受け付ける処理を再度行う(ステップS101)。
一方、論理合成処理およびレイアウト処理が正常に終了した場合(ステップS108肯定)、結線チェック処理を実行するための論理回路と、端子データおよび比較データが記憶されるメモリとを含むROMデータR30が生成される(ステップS109)。
[FPGAによる処理手順(端子データ出力処理手順)]
次に、FPGA50−1a、50−1b、50−2aおよび50−2bによる端子データ出力処理の手順を説明する。なお、FPGA50−1a、50−1b、50−2aおよび50−2bによる端子データ出力処理手順は、同様の処理手順であるため、ここでは、FPGA50−1aを例にして説明する。
図18は、FPGA50−1aによる端子データ出力処理手順を示すフローチャートである。同図に示すように、FPGA50−1aをバックボード20に搭載する情報処理装置10の電源が投入された後、FPGA50−1aに、ROMデータR30が書き込まれる(ステップS201)。
続いて、FPGA50−1aは、バックボード20から搭載情報を取得する(ステップS202)。取得した搭載情報に従って、FPGA50−1aは、セレクタS10a、S11a、S12a、S20a、S21aおよびS22a等を活性化する(ステップS203)。例えば、FPGA50−1aがスロット30aに搭載されている場合、セレクタS10aは、対向用データ記憶部D11aから受け付ける端子データを出力するように制御されるとともに、セレクタS11aは、スロット1用データ記憶部D111aから受け付ける端子データを出力するように制御される。
続いて、端子データ出力部510aのアドレス生成部511aが、スタート信号を検出すると(ステップS204肯定)、端子データ記憶部512aは、FPGA50−1aが有する出力端子から端子データを出力する(ステップS205)。
[FPGAによる処理手順(端子データ比較処理手順)]
次に、FPGA50−1a、50−1b、50−2aおよび50−2bによる端子データ比較処理の手順を説明する。なお、FPGA50−1a、50−1b、50−2aおよび50−2bによる端子データ比較処理手順は、同様の処理手順であるため、ここでは、FPGA50−1aを例にして説明する。
図19は、FPGA50−1aによる端子データ比較処理手順を示すフローチャートである。同図に示すように、他のFPGAから出力された端子データを、FPGA50−1aの入力端子が受信すると(ステップS301肯定)、検査部530aのデータ検出部531aは、入力端子から入力される端子データを検出して、比較部532aへ出力する。
続いて、比較部532aは、データ検出部531aから入力された端子データと、比較データ記憶部522aから入力された比較データとが同一であるか否かを判定して(ステップS302)、判定結果を結果表示部61a等へ出力する。かかる判定結果を受け付けた結果表示部61a等は、判定結果を表示する(ステップS303)。
[本実施例の効果]
上述してきたように、本実施例に係る結線チェック処理は、各々のFPGAが、出力端子から端子データを出力し、入力端子に端子データが入力された場合に、かかる端子データと、端子データを受信した入力端子に対応する比較データとが同一であるか否かを判定し、判定結果を結果表示部に表示するので、FPGA間の配線パターンを目視で確認したり、専用のテスターを用いて結線の導通チェック、または、入出力データのモニタリングを行ったりすることなく、パッケージ間の結線チェックを行うことができる。すなわち、本実施例に係る結線チェック処理によれば、複数のスロットを介して複数のパッケージを搭載するバックボードにおけるパッケージ間の配線を容易、かつ、確実にチェックすることができる。
また、本実施例に係る結線チェック処理では、結線チェック処理の結果が「NG」である場合、結果表示部に異常であると判定された出力端子および入力端子を特定できるように表示するので、不具合が、FPGA間のどの配線パターンに起因するのかを容易に切り分けわけることができる。これにより、FPGA間の配線ミスや、FPGA間の結線が物理的に断線している場合などの欠陥がある場合に、不具合を特定するために要する工数を低減することができる。
また、所定の定義ファイル(端子情報ファイルF11等)を、回路構造ファイル生成プログラム1071を実行する情報処理装置1に入力するだけで、ROMデータR30が自動的に生成されるので、所定の定義ファイルさえ用意すれば、本実施例に係る結線チェック処理を実行することができる。
なお、本実施例に係る結線チェック処理は、SERDES(SERializer/DESerializer)デバイスを介して、バックボード20等と接続されるFPGAにおいても適用可能である。かかる場合、デバイスの制御情報に対応する比較データを予め記憶しておき、入力される制御情報と、比較データとが同一であるか否かを判定することで、結線チェック処理を行うことができる。
また、上記実施例では、実施例に係る結線チェック処理が、情報処理装置、バックボード、または、FPGAの製造工程において実行されることを前提として説明したが、結線チェック処理を実行する回路(以下、「結線チェック回路」という)を書き込んだFPGAをユーザに提供することもできる。
図20を用いて具体的に説明する。図20は、結線チェック回路とユーザ回路とを有するFPGAの一例を示す図である。同図に示したFPGA50−1aは、結線チェック回路91と、ユーザ回路部92と、セレクタ93とを有する。結線チェック回路91は、上述した結線チェック処理を行うための回路である。ユーザ回路部92は、ユーザによって利用される所定の機能を実現するためのROMデータが書き込まれる領域である。セレクタ93は、結線チェック回路91による結線チェック処理が終了した場合に、ユーザ回路部92を有効にするように切り替えるセレクタ回路である。このような構成の下、結線チェック処理が終了したことを外部の結果表示部に表示させることで、ユーザに本実施例に係る結線チェック処理が行われていることを通知することができる。これにより、情報処理装置等の信頼性が高いことをユーザに通知することができる。
また、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散、統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散、統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)バックボード上のスロットを介して接続される複数のプログラマブルデバイスは、複数の出力端子と複数の入力端子を有し、互いに接続されている一のプログラマブルデバイスの出力端子と他のプログラマブルデバイスの入力端子間の結線をチェックする結線チェック方法であって、
第一のプログラマブルデバイスが、
前記第一のプログラマブルデバイスが有する出力端子から、該第一のプログラマブルデバイスが有する端子を識別するための端子情報を記憶する端子情報記憶手段に記憶されている前記出力端子の端子情報を出力する端子情報出力工程と、
前記第一のプログラマブルデバイスの出力端子と結線されている他のプログラマブルデバイスの入力端子が、
前記端子情報出力工程において出力された端子情報を受け付けた場合に、該端子情報と、該端子情報を受け付けた入力端子と接続される出力端子の端子情報である比較情報を記憶する比較情報記憶手段に記憶されている比較情報とが一致しているか否かを検査する検査工程と
前記検査工程によって検査された結果を所定の出力部に出力させる出力工程と
を含んだことを特徴とする結線チェック方法。
(付記2)前記端子情報記憶手段は、前記第一のプログラマブルデバイスを示すプログラマブルデバイス番号と、前記第一のプログラマブルデバイスが有する出力端子を識別するための出力端子識別情報との組合せを、前記スロットを識別するためのスロット番号のすべてに組み合わせた情報を、端子情報として記憶し、
前記比較情報記憶手段は、前記他のプログラマブルデバイスを示すプログラマブルデバイス番号と前記他のプログラマブルデバイスが有する入力端子を識別するための入力端子識別情報と前記スロット番号との組合せに対応付けて、前記入力端子と接続される出力端子の端子情報を、比較情報として記憶し、
前記端子情報出力工程は、前記端子情報記憶手段に記憶されている端子情報のうち、前記プログラマブルデバイスが搭載されたスロットを示すスロット番号に対応する端子情報を、前記出力端子から出力し、
前記検査工程は、前記比較情報記憶手段に記憶されている比較情報のうち、前記他のプログラマブルデバイスが搭載されたスロットを示すスロット番号に対応する比較情報と、前記端子情報出力工程において出力された端子情報とが一致しているか否かを検査することを特徴とする付記1に記載の結線チェック方法。
(付記3)前記第一のプログラマブルデバイスが、
前記端子情報出力工程において出力された端子情報を受け付けた場合に、該端子情報と、該端子情報を受け付けた入力端子と接続される出力端子の端子情報である比較情報を記憶する比較情報記憶手段に記憶されている比較情報とが一致しているか否かを検査する自己検査工程をさらに含んだことを特徴とする付記1または2に記載の結線チェック方法。
(付記4)前記端子情報出力工程は、前記第一のプログラマブルデバイスが備えるSERDES(SERializer/DESerializer)デバイスを介して端子情報を出力端子から出力することを特徴とする付記1〜3のいずれか一つに記載の結線チェック方法。
(付記5)バックボード上のスロットを介して他のプログラマブルデバイスと接続されるプログラマブルデバイスであって、
当該のプログラマブルデバイスが有する端子を識別するための端子情報を記憶する端子情報記憶手段と、
当該のプログラマブルデバイスが有する入力端子を識別するための入力端子識別情報に対応付けて、前記入力端子と接続される出力端子の端子情報である比較情報を記憶する比較情報記憶手段と、
当該のプログラマブルデバイスが有する出力端子から、前記端子情報記憶手段に記憶されている前記出力端子の端子情報を出力する端子情報出力手段と、
前記他のプログラマブルデバイスから端子情報を受け付けた場合に、該端子情報と、該端子情報を受け付けた入力端子の入力端子識別情報に対応付けて前記比較情報記憶手段に記憶されている比較情報とが一致しているか否かを検査する検査手段と、
前記検査手段によって検査された結果を所定の出力部に出力させる出力手段と
を備えたことを特徴とするプログラマブルデバイス。
(付記6)前記端子情報記憶手段は、当該のプログラマブルデバイスを示すプログラマブルデバイス番号と、当該のプログラマブルデバイスが有する出力端子を識別するための出力端子識別情報との組合せを、前記スロットを識別するためのスロット番号のすべてに組み合わせた情報を、端子情報として記憶し、
前記比較情報記憶手段は、当該のプログラマブルデバイスを示すプログラマブルデバイス番号と前記入力端子識別情報と前記スロット番号との組合せに対応付けて、前記入力端子と接続される出力端子の端子情報を、比較情報として記憶し、
前記端子情報出力手段は、前記端子情報記憶手段に記憶されている端子情報のうち、当該のプログラマブルデバイスが搭載されたスロットを示すスロット番号に対応する端子情報を、前記出力端子から出力し、
前記検査手段は、前記比較情報記憶手段に記憶されている比較情報のうち、当該のプログラマブルデバイスが搭載されたスロットを示すスロット番号に対応する比較情報と、前記他のプログラマブルデバイスから受け付けた端子情報とが一致しているか否かを検査することを特徴とする付記5に記載のプログラマブルデバイス。
(付記7)前記検査手段は、当該のプログラマブルデバイスから出力された端子情報を受け付けた場合に、該端子情報と、該端子情報を受け付けた入力端子の入力端子識別情報に対応付けて前記比較情報記憶手段に記憶されている比較情報とが一致しているか否かを検査することを特徴とする付記5または6に記載のプログラマブルデバイス。
(付記8)ユーザ回路を実現するためのユーザ回路部と、
前記検査手段による検査が終了した場合に、前記ユーザ回路部を有効にするセレクタ手段とをさらに備えたことを特徴とする付記5〜7のいずれか一つに記載のプログラマブルデバイス。
(付記9)バックボード上のスロットを介して互いに接続される複数のプログラマブルデバイスに書き込まれる回路構造を定義したファイルを生成する回路構造ファイル生成プログラムであって、
前記複数のプログラマブルデバイスに設けられた端子と前記スロットとの接続関係が定義されている端子情報ファイルと、前記スロット間の接続関係が定義されているスロット接続情報ファイルとを取得する取得手順と、
前記取得手順において取得された端子情報ファイルとスロット接続情報ファイルとに基づいて、前記端子を識別するための端子情報を生成する端子情報生成手順と、
前記端子情報生成手順において生成された端子情報を用いて、前記端子間の結線状態をチェックするチェック回路の回路構造を所定のファイルに出力する回路構造出力手順と
をコンピュータに実行させることを特徴とする回路構造ファイル生成プログラム。