(57)【特許請求の範囲】
【請求項１】
プログラムデータをメモリに書き込むことにより機能が設定されるプログラマブルロジックブロックを備えたプログラマブルロジックデバイスの故障を検出するプログラマブルロジックデバイス試験方法において、
プログラマブルロジックデバイス内の被試験ブロックに対し該プログラマブルロジックデバイス内の該被試験ブロック以外のプログラマブルロジックブロックで自己試験回路を構成するように該プログラムデータを該メモリにロードする第１工程と、
該自己試験回路で該被試験ブロックを試験する第２工程と、
を有することを特徴とするプログラマブルロジックデバイス試験方法。
【請求項２】
上記被試験ブロックはプログラムデータで機能を変更することができないロジックブロックであることを特徴とする請求項１記載のプログラマブルロジックデバイス試験方法。
【請求項３】
上記プログラマブルロジックデバイスは、同一構成のプログラマブルロジックブロックを複数備え、
上記被試験ブロックは１つのプログラマブルロジックブロックであり、上記自己試験回路は該被試験ブロックを除いた１つ以上のプログラマブルロジックブロックで構成され、
上記第２工程において、上記自己試験回路で上記メモリの内容を書き換えることにより該被試験ブロックの機能を変更し、変更された該被試験ブロックに対しても試験を行う、
ことを特徴とする請求項１記載のプログラマブルロジックデバイス試験方法。
【請求項４】
上記第１工程と上記第２工程とを、上記被試験ブロックと上記自己試験回路との組み合わせを変える毎に実行することを特徴とする請求項３記載のプログラマブルロジックデバイス試験方法。
【請求項５】
上記プログラマブルロジックデバイスは、プログラマブルロジックセルと、該プログラマブルロジックセルに接続された配線と、該配線とプログラマブルロジックセル間配線との接続部に配設されたマトリックススイッチと、該プログラマブルロジックセル間配線どうしの交差部に配設されたマトリックススイッチとを備えたプログラマブルロジックユニットを複数有し、該プログラマブルロジックセルの機能と該マトリックススイッチのオン／オフとが上記メモリの内容で設定されるＦＰＧＡであり、
上記プログラマブルロジックブロックは、該プログラマブルロジックユニットを整数個有する、
ことを特徴とする請求項４記載のプログラマブルロジックデバイス試験方法。
【請求項６】
上記メモリは、上記プログラマブルロジックブロック毎のメモリセルブロックが縦続接続されてメモリセルブロック間でプログラムデータをシリアル転送可能になっており、
上記被試験ブロックの該メモリセルブロックの縦続接続を切り離して該メモリセルブロックのシリアルデータ入力端を上記プログラマブルロジックセル間配線に接続し、該プログラマブルロジックセル間配線を介して該被試験ブロックの該メモリセルブロックの内容を上記自己試験回路で書き換えることにより該被試験ブロックの機能を変更する、
ことを特徴とする請求項３乃至５のいずれか１つに記載のプログラマブルロジックデバイス試験方法。
【請求項７】
請求項３乃至５のいずれか１つに記載のプログラマブルロジックデバイス試験方法を実施するために、第１〜ｎプログラマブルロジックブロックをそれぞれ被試験ブロックとする第１〜ｎプログラムデータ及び第１〜ｎ試験パターンを作成するプログラマブルロジックデバイス試験用データ作成方法であって、
第１プログラマブルロジックブロックを被試験ブロックとする自己試験回路を論理記述し、該第１試験パターンを作成し、
該自己試験回路を論理記述したものを入力データとして論理合成プログラムで論理回路を自動生成し、
マッピングプログラムにより該論理回路を論理ブロック単位でプログラマブルロジックデバイス内に割り当て、
割り当てられた論理ブロック及び該論理ブロック内の論理回路に基づいて配置配線プログラムで該第１プログラムデータを作成し、該第１プログラムデータと該プログラマブルロジックデバイスの構成とから該第２〜ｎプログラムデータを作成し、
該第１プログラムデータで設定されたプログラマブルロジックデバイスについて信号伝播遅延時間を計算し、
該第２〜ｎプログラムデータ及び該第１試験パターンに基づいて該第２〜ｎ試験パターンを作成し、該信号伝播遅延時間に基づいて該第１〜ｎ試験パターンを修正する、
ことを特徴とするプログラマブルロジックデバイス試験用データ作成方法。
【請求項８】
プログラマブルロジックセルと、該プログラマブルロジックセルに接続された配線と、該配線とプログラマブルロジックセル間配線との接続部に配設されたマトリックススイッチと、該プログラマブルロジックセル間配線どうしの交差部に配設されたマトリックススイッチとを備えたロジックブロックと、該プログラマブルロジックセルの機能と該マトリックススイッチのオン／オフとを記憶内容により設定するシリアル転送可能なメモリセルブロックとを備えたプログラマブルロジックブロックを複数有するプログラマブルロジックデバイスにおいて、該プログラマブルロジックブロックは、
共通出力端が該メモリセルブロックのシリアルデータ入力端に接続され、一方の選択入力端が該プログラマブルロジックセル間配線に接続され、他方の選択入力端が他のプログラマブルロジックブロックのメモリセルブロックシリアル接続端に接続されたマルチプレクサと、
該メモリセルブロックのシリアルデータ出力端と他のメモリセルブロックのシリアルデータ入力端との間に接続されたスイッチ素子とを有し、
供給される制御データに応じて、該マルチプレクサ及び該スイッチ素子を選択制御するプログラムデータ経路選択制御回路を該複数のプログラマブルロジックブロックに共通の回路として有する、
ことを特徴とするプログラマブルロジックデバイス。
【請求項９】
プログラマブルロジックセルと、該プログラマブルロジックセルに接続された配線と、該配線とプログラマブルロジックセル間配線との接続部に配設されたマトリックススイッチと、該プログラマブルロジックセル間配線どうしの交差部に配設されたマトリックススイッチとを備えたロジックブロックと、該プログラマブルロジックセルの機能と該マトリックススイッチのオン／オフとを記憶内容により設定するシリアル転送可能なメモリセルブロックとを備えたプログラマブルロジックブロックを複数有するプログラマブルロジックデバイスにおいて、該プログラマブルロジックブロックは、
共通出力端が該メモリセルブロックのシリアルデータ入力端に接続され、一方の選択入力端が、該複数のプログラマブルロジックブロックに共通の共通線を介して該プログラマブルロジックセル間配線に接続され、他方の選択入力端が他のプログラマブルロジックブロックのメモリセルブロックシリアル接続端に接続されたマルチプレクサと、
該メモリセルブロックのシリアルデータ出力端と他のメモリセルブロックのシリアルデータ入力端との間に接続されたスイッチ素子とを有し、
供給される制御データに応じて、該マルチプレクサ及び該スイッチ素子を選択制御するプログラムデータ経路選択制御回路を該複数のプログラマブルロジックブロックに共通の回路として有する、
ことを特徴とするプログラマブルロジックデバイス。
【請求項１０】
上記データ経路選択制御回路は、供給されるシリアル信号を並列データに変換して上記制御データを生成し、該制御データには通常使用モードと試験モードとを区別するビットが含まれており、該ビットが通常使用モードを示している場合には、該データ経路選択制御回路は、上記複数のプログラマブルロジックブロックのメモリセルブロック間をシリアル転送可能に縦続接続させる、
ことを特徴とする請求項８又は９記載のプログラマブルロジックデバイス。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムデータをメモリに書き込むことにより機能が設定される同一構成のプログラマブルロジックブロックを複数備えたＰＬＡ（Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）又はＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のプログラマブルロジックデバイス、その故障をプログラマブルロジックデバイス自体で検出するプログラマブルロジックデバイス試験方法、及び、プログラマブルロジックデバイス試験用データ作成方法に関する。
【０００２】
【従来の技術】
図８は、プログラマブルロジックデバイスの一例としてのＦＰＧＡ１０の概略構成を示す。図８では簡単化のために、３行３列のプログラマブルロジックユニットを備えた構成とし且つＩ／Ｏセルを図示省略している。
ＦＰＧＡ１０は、互いに同一構成の３行３列のプログラマブルロジックセルＬＣ１１〜ＬＣ３３と、ロジックセル間を接続するための横方向のセル間配線Ｘ１〜Ｘ３と縦方向のセル間配線Ｙ１〜Ｙ３とを備えている。セル間配線Ｘ１〜Ｘ３とセル間配線Ｙ１〜３との交差部（斜線部）及び各プログラマブルロジックセルＬＣ１１〜ＬＣ３３に接続された配線とセル間配線との交差部（斜線部）には、マトリックススイッチが配列されている。また、プログラマブルロジックセルＬＣ１１〜ＬＣ３３に対応してそれぞれメモリセルブロックＭ１１〜Ｍ３３が配置され、これらが全体としてシフトレジスタを構成するように縦続接続されている。
【０００３】
例えばプログラマブルロジックユニットＵ１１は、プログラマブルロジックセルＬＣ１１が、一方では配線Ｙ１１及びマトリックススイッチＳＹ１１を介してセル間配線Ｘ１に接続され、他方では配線Ｘ１１及びマトリックススイッチＳＸ１１を介してセル間配線Ｙ１に接続されている。メモリセルブロックＭ１１の内容により、プログラマブルロジックセルＬＣ１１の機能が設定され、マトリックススイッチＳ１１、ＳＸ１１及びＳＹ１１の各スイッチ素子のオン／オフが設定される。
【０００４】
試験装置２０は、ＦＰＧＡ１０内の故障、例えば配線の断線や短絡、スイッチ素子やメモリセルの不良等を検出するためのものであり、従来では、図９に示す手順で試験が行われていた。
前処理として、ＦＰＧＡ１０内のプログラム可能な部分を複数箇所選択し、その部分の良否が判定できるようにするためのプログラムデータ及び試験パターンを、全箇所検査できるように多数作成しておく。
【０００５】
（２１）このプログラムデータを、メモリセルブロックＭ１１〜Ｍ３３へシリアル転送でロードさせる。
（２２）ＦＰＧＡ１０に対し試験パターンを供給し、クロックを供給し、ＦＰＧＡ１０からの出力データを期待値と比較して良否判定を行う。この処理を複数回行う。
【０００６】
以上の処理が図９に示すように繰り返し行われる。
【０００７】
【発明が解決しようとする課題】
特に、前処理時間及びステップ２１での処理時間が比較的長いので、試験に膨大な時間を要する。さらに、各ＦＰＧＡ１０に対して複雑な構成の試験装置２０を備える必要があるので、複数の試験装置を備えて同時並列処理する個数が限られ、全体として試験に要する時間が長くなる。
【０００８】
他の試験方法として、プログラマブルロジックセルでシフトレジスタやカウンタ等の論理回路を構成するようにプログラムし、プログラムされた回路に対して試験パターンを供給し、その良否を判定するものがある。
しかし、全てのプログラム可能部分や配線を試験するには、プログラムすべき論理回路の種類が多くなり、前処理時間が長くなる。また、各プログラムに対して図９のステップ２１の処理を行う必要があるので、試験に膨大な時間を要する。さらに、各ＦＰＧＡ１０に対して複雑な構成の試験装置２０を備える必要がある。
【０００９】
本発明の目的は、このような問題点に鑑み、試験所要時間を短縮することが可能なプログラマブルロジックデバイス及びその試験方法並びに試験用データ作成方法を提供することにある。
【００１０】
【課題を解決するための手段及びその作用効果】
請求項１では、プログラムデータをメモリに書き込むことにより機能が設定されるプログラマブルロジックブロックを備えたプログラマブルロジックデバイスの故障を検出するプログラマブルロジックデバイス試験方法において、
プログラマブルロジックデバイス内の被試験ブロックに対し該プログラマブルロジックデバイス内の該被試験ブロック以外のプログラマブルロジックブロックで自己試験回路を構成するように該プログラムデータを該メモリにロードする第１工程と、
該自己試験回路で該被試験ブロックを試験する第２工程とを有する。
【００１１】
このプログラマブルロジックデバイス試験方法によれば、プログラマブルロジックデバイスが自己試験されるので、小型で簡単な構成の試験装置をデバイスの外部に備えればよく、より多くの試験装置を備えることができ、より多数のプログラマブルロジックデバイスについて同時並列的に試験を行うことが可能になって、全体として試験時間を短縮することができるという効果を奏する。
【００１２】
また、もし自己試験回路に故障が存在して自己試験回路が正常に動作しない場合には、被試験ブロックが正常であっても故障が存在すると判定され、早期に不良品を選別することができるという効果も奏する。
請求項２のプログラマブルロジックデバイス試験方法では、請求項１において、上記被試験ブロックはプログラムデータで機能を変更することができないロジックブロックである。
【００１３】
請求項３のプログラマブルロジックデバイス試験方法では、請求項１において、上記プログラマブルロジックデバイスは、同一構成のプログラマブルロジックブロックを複数備え、
上記被試験ブロックは１つのプログラマブルロジックブロックであり、上記自己試験回路は該被試験ブロックを除いた１つ以上のプログラマブルロジックブロックで構成され、
上記第２工程において、上記自己試験回路で上記メモリの内容を書き換えることにより該被試験ブロックの機能を変更し、変更された該被試験ブロックに対しても試験を行う。
【００１４】
このプログラマブルロジックデバイス試験方法によれば、プログラムデータを外部からプログラマブルロジックデバイス内のメモリにロードするのは被試験ブロック毎に１回でよく、後は被試験ブロック内のメモリセルブロックに対してのみその書き換えを行えばよいので、試験時間をさらに短縮することができるという効果を奏する。
【００１５】
請求項４のプログラマブルロジックデバイス試験方法では、請求項３において、上記第１工程と上記第２工程とを、上記被試験ブロックと上記自己試験回路との組み合わせを変える毎に実行する。
このプログラマブルロジックデバイス試験方法によれば、自己試験回路を構成する１つのプログラムデータ及び１つの被試験ブロックに対する試験パターンを生成しこれを修正することにより、他の自己試験回路を構成するプログラムデータ及び他の被試験ブロックに対する試験パターンを容易に作成することができ、これにより試験所用時間をさらに短縮することができるという効果を奏する。
【００１６】
請求項５のプログラマブルロジックデバイス試験方法では、請求項４において、上記プログラマブルロジックデバイスは、プログラマブルロジックセルと、該プログラマブルロジックセルに接続された配線と、該配線とプログラマブルロジックセル間配線との接続部に配設されたマトリックススイッチと、該プログラマブルロジックセル間配線どうしの交差部に配設されたマトリックススイッチとを備えたプログラマブルロジックユニットを複数有し、該プログラマブルロジックセルの機能と該マトリックススイッチのオン／オフとが上記メモリの内容で設定されるＦＰＧＡであり、
上記プログラマブルロジックブロックは、該プログラマブルロジックユニットを整数個有する。
【００１７】
請求項６のプログラマブルロジックデバイス試験方法では、請求項３乃至５のいずれか１つにおいて、上記メモリは、上記プログラマブルロジックブロック毎のメモリセルブロックが縦続接続されてメモリセルブロック間でプログラムデータをシリアル転送可能になっており、
上記被試験ブロックの該メモリセルブロックの縦続接続を切り離して該メモリセルブロックのシリアルデータ入力端を上記プログラマブルロジックセル間配線に接続し、該プログラマブルロジックセル間配線を介して該被試験ブロックの該メモリセルブロックの内容を上記自己試験回路で書き換えることにより該被試験ブロックの機能を変更する。
【００１８】
請求項７では、請求項３乃至５のいずれか１つに記載のプログラマブルロジックデバイス試験方法を実施するために、第１〜ｎプログラマブルロジックブロックをそれぞれ被試験ブロックとする第１〜ｎプログラムデータ及び第１〜ｎ試験パターンを作成するプログラマブルロジックデバイス試験用データ作成方法であって、
第１プログラマブルロジックブロックを被試験ブロックとする自己試験回路を論理記述し、該第１試験パターンを作成し、
該自己試験回路を論理記述したものを入力データとして論理合成プログラムで論理回路を自動生成し、
マッピングプログラムにより該論理回路を論理ブロック単位でプログラマブルロジックデバイス内に割り当て、
割り当てられた論理ブロック及び該論理ブロック内の論理回路に基づいて配置配線プログラムで該第１プログラムデータを作成し、該第１プログラムデータと該プログラマブルロジックデバイスの構成とから該第２〜ｎプログラムデータを作成し、
該第１プログラムデータで設定されたプログラマブルロジックデバイスについて信号伝播遅延時間を計算し、
該第２〜ｎプログラムデータ及び該第１試験パターンに基づいて該第２〜ｎ試験パターンを作成し、該信号伝播遅延時間に基づいて該第１〜ｎ試験パターンを修正する。
【００１９】
このプログラマブルロジックデバイス試験用データ作成方法によれば、１つの試験ブロックに対する自己試験回路を論理記述し、この試験ブロックに対する試験パターンを作成することにより、全てのプログラマブルロジックブロックを試験するためのプログラムデータ及び試験パターンが得られるので、従来よりも容易にかつ短時間でプログラムデータ及び試験パターンを得ることができ、これにより試験所用時間をさらに短縮することができるという効果を奏する。
【００２０】
請求項８では、プログラマブルロジックセルと、該プログラマブルロジックセルに接続された配線と、該配線とプログラマブルロジックセル間配線との接続部に配設されたマトリックススイッチと、該プログラマブルロジックセル間配線どうしの交差部に配設されたマトリックススイッチとを備えたロジックブロックと、該プログラマブルロジックセルの機能と該マトリックススイッチのオン／オフとを記憶内容により設定するシリアル転送可能なメモリセルブロックとを備えたプログラマブルロジックブロックを複数有するプログラマブルロジックデバイスにおいて、該プログラマブルロジックブロックは、
共通出力端が該メモリセルブロックのシリアルデータ入力端に接続され、一方の選択入力端が該プログラマブルロジックセル間配線に接続され、他方の選択入力端が他のプログラマブルロジックブロックのメモリセルブロックシリアル接続端に接続されたマルチプレクサと、
該メモリセルブロックのシリアルデータ出力端と他のメモリセルブロックのシリアルデータ入力端との間に接続されたスイッチ素子とを有し、
供給される制御データに応じて、該マルチプレクサ及び該スイッチ素子を選択制御するプログラムデータ経路選択制御回路を該複数のプログラマブルロジックブロックに共通の回路として有する。
【００２１】
このプログラマブルロジックデバイスを用いれば、上述のプログラマブルロジックデバイス試験方法を実施することが可能になるという効果を奏する。
請求項９では、プログラマブルロジックセルと、該プログラマブルロジックセルに接続された配線と、該配線とプログラマブルロジックセル間配線との接続部に配設されたマトリックススイッチと、該プログラマブルロジックセル間配線どうしの交差部に配設されたマトリックススイッチとを備えたロジックブロックと、該プログラマブルロジックセルの機能と該マトリックススイッチのオン／オフとを記憶内容により設定するシリアル転送可能なメモリセルブロックとを備えたプログラマブルロジックブロックを複数有するプログラマブルロジックデバイスにおいて、該プログラマブルロジックブロックは、
共通出力端が該メモリセルブロックのシリアルデータ入力端に接続され、一方の選択入力端が、該複数のプログラマブルロジックブロックに共通の共通線を介して該プログラマブルロジックセル間配線に接続され、他方の選択入力端が他のプログラマブルロジックブロックのメモリセルブロックシリアル接続端に接続されたマルチプレクサと、
該メモリセルブロックのシリアルデータ出力端と他のメモリセルブロックのシリアルデータ入力端との間に接続されたスイッチ素子とを有し、
供給される制御データに応じて、該マルチプレクサ及び該スイッチ素子を選択制御するプログラムデータ経路選択制御回路を該複数のプログラマブルロジックブロックに共通の回路として有する。
【００２２】
このプログラマブルロジックデバイスを用いても、上述のプログラマブルロジックデバイス試験方法を実施することが可能になるという効果を奏する。また、共通線を外部端子に接続すれば、図８のように外部に試験装置を備えたとしても、メモリセルブロック単位でその内容を書き換えることができるので、従来よりも短時間で試験を行うことが可能になるという効果を奏する。
【００２３】
請求項１０のプログラマブルロジックデバイスでは、請求項８又は９において、上記データ経路選択制御回路は、供給されるシリアル信号を並列データに変換して上記制御データを生成し、該制御データには通常使用モードと試験モードとを区別するビットが含まれており、該ビットが通常使用モードを示している場合には、該データ経路選択制御回路は、上記複数のプログラマブルロジックブロックのメモリセルブロック間をシリアル転送可能に縦続接続させる。
【００２４】
【発明の実施の形態】
以下、図面に基づいて本発明の実施形態を説明する。図中、同一又は類似の構成要素には同一又は類似の符号を付している。
［第１実施形態］
図２は、同一構成のプログラマブルロジックブロックを複数備えたＦＰＧＡ１０Ａ自体で試験を行う方法を示している。
【００２５】
最初に図２（Ａ）に示すように、プログラマブルロジックブロックＬＢ１１を被試験ブロックとし、それ以外の全てのプログラマブルロジックブロック又はその一部で自己試験回路Ｃ１１を構成するように、プログラムデータをＦＰＧＡ１０Ａ内のメモリにロードする。プログラマブルロジックブロックＬＢ１１は、１つ又は２つ以上の後述のプログラマブルロジックユニットである。次に、プログラマブルロジックブロックＬＢ１１に対し自己試験回路Ｃ１１で試験を行う。
【００２６】
次に図２（Ｂ）に示すように、プログラマブルロジックブロックＬＢ１２を被試験ブロックとし、それ以外の全てのプログラマブルロジックブロック又はその一部で自己試験回路Ｃ１２を構成するように、プログラムデータをＦＰＧＡ１０Ａ内のメモリにロードする。プログラマブルロジックブロックＬＢ１２は、図２（Ａ）では自己試験回路Ｃ１１の一部であったものであり、図２（Ａ）で被試験ブロックであったプログラマブルロジックブロックＬＢ１１は自己試験回路Ｃ１２の一部となっている。次に、プログラマブルロジックブロックＬＢ１２に対し自己試験回路Ｃ１２で試験を行う。この試験の内容は、図２（Ａ）のプログラマブルロジックブロックＬＢ１１に対し自己試験回路Ｃ１１で行う試験と同一である。
【００２７】
したがって、自己試験回路Ｃ１１を構成するプログラムデータ及び被試験ブロックとしてのプログラマブルロジックブロックＬＢ１１に対する試験パターンを修正することにより、自己試験回路Ｃ１２を構成するプログラムデータ及び被試験ブロックとしてのプログラマブルロジックブロックＬＢ１２に対する試験パターンを、容易迅速に作成することができ、結果として、試験所用時間を短縮することが可能になる。
【００２８】
次に図２（Ｃ）に示すように、プログラマブルロジックブロックＬＢ１３を被試験ブロックとし、その他の部分で自己試験回路Ｃ１３を構成して上記同様に試験を行い、以下、上記同様の処理を行って、ＦＰＧＡ内の全てのプログラマブルロジックブロックに対し試験を行う。
このようにすれば、ＦＰＧＡで自己試験を行うことができるので、図８に示すような試験装置２０を多数用意する必要がなく、より多数のＦＰＧＡについて同時並列的に試験を行うことができ、全体として試験所用時間をさらに短縮することが可能になる。
【００２９】
図３は、図２（Ａ）の自己試験回路Ｃ１１の概略構成を示す。
試験パターン発生部４０は、制御部４１からの指令に基づき、被試験ブロックとしてのプログラマブルロジックブロックＬＢ１１に対し試験用入力パターンを供給し、比較部４２に対しプログラマブルロジックブロックＬＢ１１の出力の期待値パターンを供給する。制御部４１からプログラマブルロジックブロックＬＢ１１へクロックが供給され、期待値パターンとプログラマブルロジックブロックＬＢ１１の出力パターンとが比較部４２で比較され、その結果が制御部４１に供給される。
【００３０】
制御部４１は、比較部４２から不一致信号が供給されると、不良品と判定し、処理を終了する。もし自己試験回路Ｃ１１に故障が存在して自己試験回路Ｃ１１が正常に動作しない場合には、被試験ブロックが正常であっても図３での比較結果が不一致になり、早期に不良品を選別することができる。故障個所の正確な検出には、例えば図８の従来の試験装置２０を用いる。不良品の割合は一般に少ないので、このようにしても全体として試験時間を短縮することができる。
【００３１】
プログラマブルロジックブロックＬＢ１１のプログラム可能な箇所の状態を変更してテストを行うために、自己試験回路Ｃ１１はプログラムデータ書換部４３を備えている。制御部４１からの指令により、プログラムデータ書換部４３はプログラマブルロジックブロックＬＢ１１内のメモリセルブロックに対しプログラムデータを書き換え、書き換え後のプログラマブルロジックブロックＬＢ１１に対し、上記同様にして試験を行い、このような処理を繰り返す。
【００３２】
ここで図８に示す従来のＦＰＧＡ１０では、メモリセルブロックＭ１１〜Ｍ３３が縦続接続されていて外部からのみしかプログラムデータを書き換えることができず、また、メモリセルブロックＭ１１〜Ｍ３３の内容を一括してしか書き換えることができない。
そこで図１に示す如く、本第１実施形態のＦＰＧＡ１０Ａでは、例えばプログラマブルロジックユニットＵ１１Ａにおいて、メモリセルブロックＭ１１のシリアルデータ入力端にマルチプレクサＭＰ１１の出力端が接続され、マルチプレクサＭＰ１１の一方の入力端は外部端子に接続されてシリアルプログラムデータ供給用となっており、他方のデータ入力端はセル間配線Ｘ１の１つに接続されている。メモリセルブロックＭ１１のシリアルデータ出力端は、デマルチプレクサＤＭ１１のデータ入力端に接続されている。デマルチプレクサＤＭ１１の一方のデータ出力端は、隣のプログラマブルロジックユニットＵ１２ＡのマルチプレクサＭＰ１２の一方のデータ入力端に接続され、他方のデータ出力端はセル間配線Ｙ１の１つに接続されている。他の不図示のプログラマブルロジックユニットもプログラマブルロジックユニットＵ１２Ａと同一構成であり、プログラマブルロジックユニット間の接続はプログラマブルロジックユニットＵ１１ＡとプログラマブルロジックユニットＵ１２Ａとの間の接続と同じになっている。
【００３３】
プログラムデータ経路選択制御回路３０は、全てのプログラマブルロジックユニットに対して共通に用いられ、マルチプレクサＭＰ１１、デマルチプレクサＤＭ１１、マルチプレクサＭＰ１２、デマルチプレクサＤＭ１２及び不図示のプログラマブルロジックユニットの該当するものの選択制御は、プログラムデータ経路選択制御回路３０からの制御信号により行われる。プログラムデータ経路選択制御回路３０には、動作モード及びプログラマブルロジックユニット（ＰＬＵ）選択コードが１本の外部端子からシリアル信号として供給され、これがプログラムデータ経路選択制御回路３０内で並列データに変換され、内部のレジスタに保持されて、その内容で上記選択制御が行われる。動作モードには通常使用モードと試験モードとがあり、試験モードにはメモリセルブロック書き込みモードとメモリセルブロック読み出しモードとがある。ＰＬＵ選択コードは、選択されるＰＬＵの識別コードである。
【００３４】
メモリセルブロックは、状態制御信号により自己がシリアル転送状態（書き込み又は読み出し状態）にされると、該状態制御信号に基づき、自己の並列データ出力端を高インピーダンスにして、シリアル転送時に同一ユニット内のプログラマブルロジックセルの機能がランダムに変化したりマトリックススイッチがランダムにオン／オフするのを防止する。メモリセルブロックの並列データ出力端はＦＥＴのゲートに接続されており、この高インピーダンス化により高インピーダンス化直前のゲート電位が保持されて、プログラマブルロジックセルの機能及びマトリックススイッチのスイッチング状態が維持される。したがって、シリアル転送前にデータ転送経路をプログラムしておくことにより、所望の経路を通ってメモリセルブロックに対するデータの書き込み又は読み出しが可能となる。メモリセルブロックは自己をシリアル転送状態にするかどうかを定めるための制御入力端Ｚ（状態制御信号入力端）を備えており、例えばメモリセルブロックＭ１１の状態制御信号入力端Ｚはセル間配線Ｙ１中の１つに接続され、状態制御信号入力端Ｚの論理値は任意のプログラマブルロジックユニットから制御可能となっている。
【００３５】
動作モードが通常使用モードを示している場合には、一本の外部端子から供給されるシリアルプログラムデータがマルチプレクサＭＰ１１で選択されてメモリセルブロックＭ１１のシリアルデータ入力端に供給され、メモリセルブロックＭ１１のシリアルデータ出力端からの出力がデマルチプレクサＤＭ１１及びマルチプレクサＭＰ１２を介してメモリセルブロックＭ１２のシリアルデータ入力端に供給され、以下同様にしてメモリセルブロック間が図８に示すように縦続接続される。
【００３６】
プログラマブルロジックユニットＵ１１Ａを被試験ブロックにする場合には、プログラムデータ経路選択制御回路３０に供給されるＰＬＵ選択コードをプログラマブルロジックユニットＵ１１Ａの識別コードにする。この場合において、動作モードが試験モードかつメモリセルブロック書き換えモードの場合には、マルチプレクサＭＰ１１によりセル間配線Ｘ１側が選択される。メモリセルブロック書き換え時には、メモリセルブロックＭ１１のみにシフトクロックが供給され他のメモリセルブロックには供給されず、シリアル書き換えデータが図２の自己試験回路Ｃ１１から図１のセル間配線Ｘ１及びマルチプレクサＭＰ１１を通りメモリセルブロックＭ１１のみに供給されてその内容が書き換えられる。この場合、デマルチプレクサＤＭ１１の切り替えはどちら側でもよいが、セル間配線Ｙ１側にすれば、メモリセルブロックＭ１１へのデータ書き込みと同時にメモリセルブロックＭ１１からのデータ読み出しを行うことができ、メモリテストを容易迅速に行うことができる。
【００３７】
ＰＬＵ選択コードがプログラマブルロジックユニットＵ１１Ａの識別コードであり、かつ、動作モードが試験モードかつメモリセルブロック読み出しモードの場合には、デマルチプレクサＤＭ１１の出力端はセル間配線Ｙ１側が選択される。メモリセルブロック読み出し時には、メモリセルブロックＭ１１のみにシフトクロックが供給され他のメモリセルブロックには供給されず、メモリセルブロックＭ１１内の内容がシリアルデータとしてデマルチプレクサＤＭ１１及びセル間配線Ｙ１を介し図２（Ａ）の自己試験回路Ｃ１１内に供給される。この場合、マルチプレクサＭＰ１１の切り替えはどちら側でもよいが、セル間配線Ｘ１側にすれば、メモリセルブロックＭ１１からのデータ読み出しと同時にメモリセルブロックＭ１１へのデータ書き込みを行うことができ、メモリテストを容易迅速に行うことができる。
【００３８】
例えばメモリセルブロックＭ１１自体の試験（メモリテスト）を行う場合には、メモリセルブロックＭ１１の全ビットに‘１’を書き込み、次にその内容をシリアルに読み出しながらメモリセルブロックＭ１１の全ビットに‘０’を書き込み、メモリセルブロックＭ１１から読み出された全ビットが期待値‘１’であれば良と判定し、次にメモリセルブロックＭ１１から読み出されたの全ビットが期待値‘０’であれば良と判定する。また、メモリセルブロックＭ１１の内容を書き換えて、プログラマブルロジックセルＬＣ１１の機能を変更し、又は、マトリックススイッチＳ１１、ＳＸ１１若しくはＳＹ１１の接続状態を変更し、変更されたものに対して試験を行う。メモリセルブロックＭ１１の書き換えは、他のプログラマブルロジックセルで作成して伝達し、他のメモリセルブロックの内容を転送し、又は、他のメモリセルブロックの内容を用いて他のプログラマブルロジックセルで作成しこれを伝達することにより行う。メモリセルブロックＭ１１に対する１回のデータ書き換えは、例えば、１ビットのデータをメモリセルブロックＭ１１に供給してメモリセルブロックＭ１１内を１ビットシフトさせるだけであってもよい。
【００３９】
上記説明では、１つのプログラマブルロジックユニットを１つのプログラマブルロジックブロックとする場合を述べたが、２つのプログラマブルロジックユニット、例えば図１のプログラマブルロジックユニットＵ１１Ａ及びＵ１２Ａを、図２（Ａ）に示す１つのプログラマブルロジックブロックＬＢ１１としてもよい。この場合には、デマルチプレクサＤＭ１１とマルチプレクサＭＰ１２とを省略し、メモリセルブロックＭ１１のシリアルデータ出力端をメモリセルブロックＭ１２のシリアルデータ入力端に直接接続した構成であってもよい。この構成は、メモリセルブロックＭ１１とＭ１２とが１つのメモリセルブロックであるのと実質的に同一である。同様に、３個以上のプログラマブルロジックユニット毎に１つのメモリセルブロックを備えた構成であってもよい。
【００４０】
図４は、図２（Ａ）の構成での自己試験手順を示す概略フローチャートである。
（３１）動作モードを通常使用モードとし、プログラムデータを、図１のマルチプレクサＭＰ１１の外部端子側入力端に供給してシリアル転送し、全てのメモリセルブロックにロードする。
【００４１】
（３２）プログラマブルロジックブロックＬＢ１１に対し自己試験回路Ｃ１１で試験を行う。故障が検出されれば不良品と判定し、処理を終了する。
（３３）プログラマブルロジックブロックＬＢ１１のメモリセルブロックの内容を、次の試験でその結果を判定できるように書き換える。
（３４）プログラマブルロジックブロックＬＢ１１に対し、上記書き換えに対応した所定の試験を行う。故障が検出されれば不良品と判定し、処理を終了する。
【００４２】
以下、故障が検出されなければステップ３３及び３４と同様の処理が試験箇所を変えて繰り返される。
本第１実施形態では、プログラムデータをＦＰＧＡ１０Ａ内の全メモリセルブロックにロードするのは被試験ブロック毎に１回でよく、後は被試験ブロック内のメモリセルブロックに対してのみその書き換えを行えばよいので、試験時間を従来よりも大幅に短縮することができる。
【００４３】
図５は、自己試験用プログラムデータ及びテストパターンの作成手順を示す。図１のＦＰＧＡ１０Ａがｎ個の第１〜ｎプログラマブルロジックブロックで構成されているとする。第１〜ｎプログラマブルロジックブロックをそれぞれ被試験ブロックとする第１〜ｎプログラムデータ及び第１〜ｎ試験パターンを、以下のようにして自動作成する。
【００４４】
（５０、５１）第１プログラマブルロジックブロックを被試験ブロックとする自己試験回路Ｃ１１を、例えばＨＤＬ言語で論理記述し、また、第１試験パターンを作成する。
（５２）自己試験回路Ｃ１１を論理記述したものを入力データとして、ＦＰＧＡ１０Ａのテクノロジーに合った論理回路を論理合成プログラムで自動生成する。
【００４５】
（５３）マッピングプログラム（マッパー）により、ステップ５２で得られた論理回路を、論理ブロック単位でＦＰＧＡ１０Ａ内に割り当てる。
（５４）割り当てられた論理ブロック及びこの論理ブロック内の論理回路に基づいて、第１プログラムデータを配置配線プログラム（プレイサー＆ルータ）で自動生成する。ＦＰＧＡ１０Ａの構成を考慮し、この第１プログラムデータに基づいて第２〜ｎプログラムデータを自動生成する。
【００４６】
（５５）第１プログラムデータで設定されたＦＰＧＡ１０Ａについて、回路素子及び配線の容量及び抵抗を抽出し、これらから信号伝播遅延時間を算出する。
（５６）第２〜ｎプログラムデータ、第１試験パターン及びＦＰＧＡ１０Ａの構成に基づいて、第２〜ｎ試験パターンを作成する。ステップ５５で得られた信号伝播遅延時間に基づいて、第１〜ｎ試験パターンを修正する。
【００４７】
なお、ステップ５４及び５６において、ＦＰＧＡ１０Ａの構成に対し第１〜ｎ被試験ブロックを割り当てる。
従来では、１つのプログラムデータで試験可能な数カ所を単位として、図５のステップ５０、５２〜５４で１つのプログラムデータを作成し、ステップ５１、５５及び５６で１つの試験パターンを作成し、これを繰り返し行っていたので、プログラムデータ及び試験パターンの作成に長時間を要していた。これに対し、本第１実施形態では、１つの試験ブロックとする自己試験回路を論理記述し、この試験ブロックに対する試験パターンを作成することにより、全てのプログラマブルロジックブロックを試験するためのプログラムデータ及び試験パターンが得られるので、従来よりも容易にかつ短時間でプログラムデータ及び試験パターンを得ることができる。
【００４８】
［第２実施形態］
図６は、図１のＦＰＧＡ１０Ａに対応した第２実施形態に係るＦＰＧＡ１０Ｂの一部を示すブロック図である。
この回路では、全てのプログラマブルロジックユニットに共通の共通線５７が、チップ周辺部に形成され、共通線５７と、マルチプレクサＭＰ１１、ＭＰ１２及び不図示のプログラマブルロジックユニットの他の該当するマルチプレクサの一方の入力端とが接続されている。また、共通線５７とセル間配線Ｙ１、Ｙ２、Ｘ１及び不図示のその他のセル間配線との間が接続されている。
【００４９】
ＰＬＵ選択コードがプログラマブルロジックユニットＵ１１Ｂの識別コードであり、かつ、動作モードが試験モードかつメモリセルブロック書き換えモードの場合には、マルチプレクサＭＰ１１により共通線５７側が選択され、メモリセルブロック書き換え時には、メモリセルブロックＭ１１のみにシフトクロックが供給され他のメモリセルブロックには供給されず、シリアル書き換えデータが図２の自己試験回路Ｃ１１から図６の例えばセル間配線Ｘ１（又はＹ１）、共通線５７及びマルチプレクサＭＰ１１を通りメモリセルブロックＭ１１のみに供給されてその内容が書き換えられる。
【００５０】
ＰＬＵ選択コードがプログラマブルロジックユニットＵ１１Ｂの識別コードであり、かつ、動作モードが試験モードかつメモリセルブロック読み出しモードの場合には、デマルチプレクサＤＭ１１の出力端はセル間配線Ｙ１側が選択され、メモリセルブロック読み出し時には、メモリセルブロックＭ１１のみにシフトクロックが供給され他のメモリセルブロックには供給されず、メモリセルブロックＭ１１内の内容がシリアルデータとして、デマルチプレクサＤＭ１１及びセル間配線Ｙ１を介し図２（Ａ）の自己試験回路Ｃ１１に供給され、又は、デマルチプレクサＤＭ１１から共通線５７を通り、他のセル間配線を介して自己試験回路Ｃ１１に供給される。
【００５１】
共通線５７を外部端子に接続すれば、図８のように外部に試験装置を備えたとしても、メモリセルブロック単位でその内容を書き換えることができるので、従来よりも短時間で試験を行うことが可能となる。
［第３実施形態］
図７は、本発明の第３実施形態のプログラマブルロジックデバイス１０Ｃを示す。
【００５２】
このデバイス１０Ｃでは、その内部にＦＰＧＡ１０Ｂと、プログラムで機能を変更することができないロジックブロック６０及び６１とを備えている。ロジックブロック６０及び６１は例えば、ＡＳＩＣにおけるメモリやＭＰＵ等のマクロセルである。デバイス１０Ｃは、ＦＰＧＡを含む多数のロジックブロックが１つのチップに形成されたいわゆるシステムオンワンチップであってもよい。
【００５３】
ＦＰＧＡ１０Ｂについては、上記同様に自己試験を行うことができる。ロジックブロック６０及び６１に対しては、ＦＰＧＡ１０Ｂで自己試験回路を構成することにより、ロジックブロック６０と６１を１つずつ又は両方同時に、試験を行う。
なお、本発明には外にも種々の変形例が含まれる。
【００５４】
例えば、図１のデマルチプレクサＤＭ１１の替わりに、メモリセルブロックＭ１１のシリアルデータ出力端とメモリセルブロックＭ１２のシリアルデータ入力端との間に接続されたスイッチ素子を用いた構成であってもよい。この場合、メモリセルブロックＭ１１の内容の読み出しはできなくなるので、メモリテストが制限される。
【００５５】
また、本発明のプログラマブルロジックデバイスは、プログラムデータをメモリに書き込むことにより機能が設定される同一構成のプログラマブルロジックブロックを複数備えたものであればよく、ＰＬＡ又はＣＰＬＤ等であってもよい。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るＦＰＧＡの一部を示すブロック図である。
【図２】図１のＦＰＧＡの自己試験方法説明図である。
【図３】図２（Ａ）の自己試験回路の概略構成図を示すブロック図である。
【図４】図２（Ａ）の構成での自己試験手順を示す概略フローチャートである。
【図５】自己試験用プログラムデータ及びテストパターンの作成手順を示す概略フローチャートである。
【図６】本発明の第２実施形態に係るＦＰＧＡの一部を示すブロック図である。
【図７】本発明の第３実施形態のＦＰＧＡ自己試験方法説明用ブロック図である。
【図８】従来のＦＰＧＡ試験方法説明用ブロック図である。
【図９】図８中の試験装置による従来のＦＰＧＡ試験手順を示すフローチャートである。
【符号の説明】
１０、１０Ａ、１０Ｂ  ＦＰＧＡ
３０、３０Ａ  プログラムデータ経路選択制御回路
４１  制御部
４０  試験パターン発生部
４２  比較部
４３  プログラムデータ書換部
５７  共通線
ＬＢ１１〜ＬＢ１３  プログラマブルロジックブロック
Ｃ１１〜Ｃ１３  自己試験回路
ＬＣ１１、ＬＣ１２  プログラマブルロジックセル
Ｍ１１、Ｍ１２  メモリセルブロック
Ｘ１１、Ｘ１２、Ｙ１１、Ｙ１２  配線
Ｘ１、Ｙ１、Ｙ２  セル間配線
Ｕ１１Ａ、Ｕ１２Ａ、Ｕ１１Ｂ、Ｕ１２Ｂ  プログラマブルロジックユニット
Ｓ１１、ＳＸ１１、ＳＹ１１  マトリックススイッチ
ＭＰ１１、ＭＰ１２  マルチプレクサ
ＤＭ１１、ＤＭ１２  デマルチプレクサ
【図１】
0003597972.tif 000002
【図２】
0003597972.tif 000003
【図３】
0003597972.tif 000004
【図４】
0003597972.tif 000005
【図５】
0003597972.tif 000006
【図６】
0003597972.tif 000007
【図７】
0003597972.tif 000008
【図８】
0003597972.tif 000009
【図９】
0003597972.tif 000010