IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立情報通信エンジニアリングの特許一覧

特許7554686プログラマブルロジックデバイス診断方法および診断装置
<>
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図1
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図2
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図3
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図4
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図5
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図6
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図7
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図8
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図9
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図10
  • 特許-プログラマブルロジックデバイス診断方法および診断装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-11
(45)【発行日】2024-09-20
(54)【発明の名称】プログラマブルロジックデバイス診断方法および診断装置
(51)【国際特許分類】
   G01R 31/28 20060101AFI20240912BHJP
   H03K 19/17764 20200101ALI20240912BHJP
   H01L 21/82 20060101ALI20240912BHJP
   H01L 21/822 20060101ALI20240912BHJP
   H01L 27/04 20060101ALI20240912BHJP
【FI】
G01R31/28 V
G01R31/28 G
H03K19/17764
H01L21/82 A
H01L27/04 T
H01L21/82 T
【請求項の数】 6
(21)【出願番号】P 2021023212
(22)【出願日】2021-02-17
(65)【公開番号】P2022125561
(43)【公開日】2022-08-29
【審査請求日】2023-11-20
(73)【特許権者】
【識別番号】000233295
【氏名又は名称】株式会社日立情報通信エンジニアリング
(74)【代理人】
【識別番号】110002066
【氏名又は名称】弁理士法人筒井国際特許事務所
(72)【発明者】
【氏名】神 龍太
(72)【発明者】
【氏名】鈴木 秀和
【審査官】永井 皓喜
(56)【参考文献】
【文献】国際公開第2016/207933(WO,A1)
【文献】特開2002-140900(JP,A)
【文献】特開平9-139667(JP,A)
【文献】特開2004-23364(JP,A)
【文献】国際公開第2015/033422(WO,A1)
【文献】特開平9-281190(JP,A)
【文献】特開2014-60537(JP,A)
【文献】特開2018-165946(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01R 31/28
G01R 31/26
H03K 19/00
H01L 21/82
H01L 27/04
H01L 21/64
(57)【特許請求の範囲】
【請求項1】
プログラマブルロジックデバイスの故障・不具合を診断するプログラマブルロジックデバイス診断方法であって、
前記プログラマブルロジックデバイスは、プログラマブル領域に、複数の論理ブロックを備え、
前記複数の論理ブロックにおける各々の論理ブロックは、複数の入力信号線と1つの出力信号線とを有するルックアップテーブルと、前記ルックアップテーブルの後段に接続されているフリップフロップと、を有し、
前記プログラマブルロジックデバイス診断方法は、
診断時に、診断回路を構成するための診断用データを、前記プログラマブルロジックデバイスのコンフィグレーションメモリにロードすることで、前記プログラマブル領域に前記診断回路をコンフィグレーションして診断を実行する診断ステップを有し、
前記診断回路は、
診断信号として0と1を繰り返す信号を生成する診断信号生成回路と、
前記複数の論理ブロックが直列に接続され、各々の論理ブロックの1つの出力信号線が次の段の論理ブロックの複数の入力信号線に接続される論理ブロックチェーンと、
を有し、
前記診断信号生成回路から出力される前記診断信号は、前記論理ブロックチェーンの最初の論理ブロックの入力信号線に入力され、前記論理ブロックチェーンの最後の論理ブロックの出力信号線は、前記プログラマブルロジックデバイスの出力端子に接続され、
前記診断ステップは、
前記論理ブロックチェーンの各々の論理ブロックの前記ルックアップテーブルに、等価回路としてNANDまたはNORがコンフィグレーションされる第1ステップと、
前記論理ブロックチェーンの最初の論理ブロックに対し、前記診断信号を入力する第2ステップと、
前記プログラマブルロジックデバイスの出力端子からの出力信号を観測する第3ステップと、
前記観測した信号値が、0と1を繰り返す信号値である場合には、前記論理ブロックチェーンに故障・不具合が無いと判定し、0と1を繰り返す信号値ではない場合には、前記論理ブロックチェーンに故障・不具合が有ると判定する第4ステップと、
を有する、プログラマブルロジックデバイス診断方法。
【請求項2】
請求項1記載のプログラマブルロジックデバイス診断方法において、
前記診断ステップは、
前記ルックアップテーブルに等価回路としてNANDをコンフィグレーションして診断を行うステップと、
前記ルックアップテーブルに等価回路としてNORをコンフィグレーションして診断を行うステップと、を有し、
前記NANDでの診断の際には、前記第4ステップで、前記観測した信号値が、に固定された信号値になった場合には、前記論理ブロックチェーンのいずれかの論理ブロックにおいて信号値がに縮退する縮退故障が発生したと判定し、
前記NORでの診断の際には、前記第4ステップで、前記観測した信号値が、に固定された信号値になった場合には、前記論理ブロックチェーンのいずれかの論理ブロックにおいて信号値がに縮退する縮退故障が発生したと判定する、
プログラマブルロジックデバイス診断方法。
【請求項3】
請求項1記載のプログラマブルロジックデバイス診断方法において、
前記診断信号生成回路は、
1つの論理ブロックにおいてフリップフロップの出力端子がルックアップテーブルの複数の入力端子の全てに戻るようにループとして接続され、
前記プログラマブルロジックデバイスの外部からのクロック信号を入力して前記診断信号を生成する、
プログラマブルロジックデバイス診断方法。
【請求項4】
請求項1記載のプログラマブルロジックデバイス診断方法において、
前記診断信号生成回路は、
奇数の複数の論理ブロックにおいて最後の論理ブロックの出力端子が最初の論理ブロックのルックアップテーブルの複数の入力端子の全てに戻るようにループとして接続され、途中の各々の論理ブロックの出力信号線は次の段の論理ブロックの複数の入力信号線に接続され、
クロック信号および前記診断信号を生成する、
プログラマブルロジックデバイス診断方法。
【請求項5】
請求項1記載のプログラマブルロジックデバイス診断方法において、
前記プログラマブルロジックデバイスの外部にある回路データ選択スイッチでの選択の設定に基づいて、前記プログラマブルロジックデバイスの外部にあるコンフィグレーションメモリから、前記プログラマブルロジックデバイスのコンフィグレーションメモリに、通常動作回路を構成するための通常動作回路データをロードすることで前記プログラマブル領域に前記通常動作回路をコンフィグレーションするか、前記診断用データをロードすることで前記診断回路をコンフィグレーションするかを切り替えるステップを有する、
プログラマブルロジックデバイス診断方法。
【請求項6】
プログラマブルロジックデバイスの故障・不具合を診断するプログラマブルロジックデバイス診断装置であって、
前記プログラマブルロジックデバイスが搭載された基板と、
前記基板に設けられたコンフィグレーションROMと、
を備え、
前記プログラマブルロジックデバイスは、プログラマブル領域に、複数の論理ブロックを備え、
前記複数の論理ブロックにおける各々の論理ブロックは、複数の入力信号線と1つの出力信号線とを有するルックアップテーブルと、前記ルックアップテーブルの後段に接続されているフリップフロップと、を有し、
診断時に、診断回路を構成するための診断用データを、前記コンフィグレーションROMから、前記プログラマブルロジックデバイスのコンフィグレーションメモリにロードすることで、前記プログラマブル領域に前記診断回路をコンフィグレーションして診断を実行し、
前記診断回路は、
診断信号として0と1を繰り返す信号を生成する診断信号生成回路と、
前記複数の論理ブロックが直列に接続され、各々の論理ブロックの1つの出力信号線が次の段の論理ブロックの複数の入力信号線に接続される論理ブロックチェーンと、
を有し、
前記診断信号生成回路から出力される前記診断信号は、前記論理ブロックチェーンの最初の論理ブロックの入力信号線に入力され、前記論理ブロックチェーンの最後の論理ブロックの出力信号線は、前記プログラマブルロジックデバイスの出力端子に接続され、
前記診断の際には、
前記論理ブロックチェーンの各々の論理ブロックの前記ルックアップテーブルに、等価回路としてNANDまたはNORがコンフィグレーションされ、
前記論理ブロックチェーンの最初の論理ブロックに対し、前記診断信号を入力し、
前記プログラマブルロジックデバイスの出力端子からの出力信号を観測し、
前記観測した信号値が、0と1を繰り返す信号値である場合には、前記論理ブロックチェーンに故障・不具合が無いと判定し、0と1を繰り返す信号値ではない場合には、前記論理ブロックチェーンに故障・不具合が有ると判定する、
プログラマブルロジックデバイス診断装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラマブルロジックデバイスの技術に関する。
【背景技術】
【0002】
広義のプログラマブルロジックデバイス(PLDと記載する場合がある)は、ユーザロジックが設定(コンフィグレーション、言い換えるとプログラム)できる回路デバイスである。PLDは、例えば、ユーザロジックが設定できるロジック回路(言い換えるとプログラマブル領域)として、複数の論理ブロック(LBと記載する場合がある)を含むアレイを有する。また、論理ブロックは、例えば、ルックアップテーブル(LUTと記載する場合がある)と、フリップフロップ(FFと記載する場合がある)とを有して構成されている。フラッシュメモリ等のメモリ(言い換えると記憶デバイス)には、PLDにユーザロジックを設定するためのデータが記憶される。そのメモリからそのデータがPLD内のロジック回路にロードされ、これにより、PLDのロジック回路にユーザロジックが設定される。
【0003】
上記PLDについて、製造業者は、診断(スキャンテスト等と呼ばれる場合もある)を行うことで、故障・不具合等があれば検出し、製品の品質を保証する。
【0004】
上記PLDの診断に係わる先行技術例として、特開平9-139667号公報(特許文献1)が挙げられる。特許文献1には、プログラマブルロジック回路の自己点検回路として、論理情報を書き込む直前の自己点検および装置実装後の点検を実行できるようにし、プログラマブルロジック集積回路の故障分離を容易にする旨が記載されている。特許文献1では、通常の論理情報とチェック用の論理情報とから選択してプログラマブルロジック集積回路にプログラムできる旨が記載されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開平9-139667号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
LSIやFPGA等のICデバイスの製造業者は、PLDに対するスキャンテスト(診断)によって、不具合等を検出し、製品の品質を保証する。PLDの製造時に問題が無い場合でも、PLDに対する物理的なストレスや経年劣化等によって、PLDに故障・不具合が発生する場合がある。PLDが搭載された製品を製造する現場においても、PLD搭載製品に対し、出荷前に、スキャンテストを実施して、品質を検査する。また、ユーザの環境への製品出荷後においても、PLDに不具合が発生した場合には、PLDの物理故障であるか、単なる設計不良であるか等を切り分ける必要がある。その際にも、PLDにスキャンテストが実施される場合がある。
【0007】
上記PLDの診断においては、PLDのプログラマブル領域(ロジック回路)をより網羅的に診断できることが望ましい。従来のある方式のPLDは、デバイス内の大多数の面積が論理ブロックによって占められている。この論理ブロックは、主に、ルックアップテーブルと、フリップフロップとを有して構成されている。従来技術例のPLD診断方法は、論理ブロック内のルックアップテーブルおよびフリップフロップの入出力端子のレベルまでの診断の網羅性は実現されていない。
【0008】
特に、ルックアップテーブルは、構成回路であるユーザロジックに応じて、使用する入出力端子の位置が都度に変わる。そのため、従来技術例のPLD診断方法では、本来診断すべきである通常動作回路であるユーザロジックの構成時に使用している入出力端子のすべてについては検査・診断ができていないという状況が起こり得る。すなわち、例えば通常動作回路で使用しているルックアップテーブルの入力端子の1つが縮退故障(値が0あるいは1に固定されてしまう故障)していた場合に、診断回路の構成によっては、その入力端子の縮退故障を検出できない。
【0009】
例えば特許文献1のようなPLD診断技術では、診断回路の構成(例えばシフトレジスタ等による構成)によって、論理ブロック内のフリップフロップの部分しか診断できていない。従来のPLD診断技術は、ユーザロジックがコンフィグレーションされたロジック回路の部分(言い換えるとプログラマブル領域)に対する網羅的な故障診断はできていない。従来技術例では、ロジック回路である各論理ブロック内において、ルックアップテーブルの複数の入力信号線のうち、ユーザロジックで使用される特定の入力信号線のみしか診断されておらず、それ以外の入力信号線の診断はされていない。
【0010】
また、特許文献1を含め、従来のPLD診断技術では、PLDに、診断用に専用の回路(診断回路と記載する場合がある)の実装が必要である。例えば、PLD内において、通常動作回路であるユーザロジックの診断のために、診断用信号(言い換えるとパターン)を生成するための回路部と、診断結果を判定・出力するための回路部との実装が必要である。この場合、その診断回路について、効率的な診断用信号の設計や回路設計等も必要である。また、この場合、その診断回路の実装の分、プログラマブル領域における本来のユーザロジック用に使用できる面積も低減してしまう。
【0011】
本発明の目的は、上記PLDの診断の技術に関して、PLDの故障・不具合をより網羅的に診断できる技術を提供することである。
【課題を解決するための手段】
【0012】
本発明のうち代表的な実施の形態は以下に示す構成を有する。実施の形態は、プログラマブルロジックデバイスの故障・不具合を診断するプログラマブルロジックデバイス診断方法であって、前記プログラマブルロジックデバイスは、プログラマブル領域に、複数の論理ブロックを備え、前記複数の論理ブロックにおける各々の論理ブロックは、複数の入力信号線と1つの出力信号線とを有するルックアップテーブルと、前記ルックアップテーブルの後段に接続されているフリップフロップと、を有し、前記プログラマブルロジックデバイス診断方法は、診断時に、診断回路を構成するための診断用データを、前記プログラマブルロジックデバイスのコンフィグレーションメモリにロードすることで、前記プログラマブル領域に前記診断回路をコンフィグレーションして診断を実行する診断ステップを有し、前記診断回路は、診断信号として0と1を繰り返す信号を生成する診断信号生成回路と、前記複数の論理ブロックが直列に接続され、各々の論理ブロックの1つの出力信号線が次の段の論理ブロックの複数の入力信号線に接続される論理ブロックチェーンと、を有し、前記診断信号生成回路から出力される前記診断信号は、前記論理ブロックチェーンの最初の論理ブロックの入力信号線に入力され、前記論理ブロックチェーンの最後の論理ブロックの出力信号線は、前記プログラマブルロジックデバイスの出力端子に接続され、前記診断ステップは、前記論理ブロックチェーンの各々の論理ブロックの前記ルックアップテーブルに、等価回路としてNANDまたはNORがコンフィグレーションされる第1ステップと、前記論理ブロックチェーンの最初の論理ブロックに対し、前記診断信号を入力する第2ステップと、前記プログラマブルロジックデバイスの出力端子からの出力信号を観測する第3ステップと、前記観測した信号値が、0と1を繰り返す信号値である場合には、前記論理ブロックチェーンに故障・不具合が無いと判定し、0と1を繰り返す信号値ではない場合には、前記論理ブロックチェーンに故障・不具合が有ると判定する第4ステップと、を有する。
【発明の効果】
【0013】
本発明のうち代表的な実施の形態によれば、上記PLDの診断の技術に関して、PLDの故障・不具合をより網羅的に診断できる。上記以外の課題、構成および効果等については、[発明を実施するための形態]において説明される。
【図面の簡単な説明】
【0014】
図1】本発明の実施の形態1のPLD診断方法に対応したPLD診断システム(PLD搭載基板を含む)の構成例を示す。
図2】実施の形態1で、PLDの構成を示す。
図3】実施の形態1で、論理ブロック(LB)の構成を示す。
図4】実施の形態1のPLD診断方法のフローを示す。
図5】実施の形態1で、第1方式での診断信号生成部の構成例を示す。
図6】実施の形態1の変形例で、第2方式での診断信号生成部の構成例を示す。
図7】実施の形態1で、PLDのより詳細な構成例を示す。
図8】実施の形態1で、論理ブロック(LB)のより詳細な構成例を示す。
図9】実施の形態1で、NANDまたはNORの構成を実現するためのコンフィグレーションメモリの設定例を示す。
図10】実施の形態1で、NANDまたはNORの構成を実現するための論理ブロック(LB)の構成例を示す。
図11】実施の形態1の変形例で、他の配線も診断する場合の論理ブロック(LB)の構成例を示す。
【発明を実施するための形態】
【0015】
以下、図面を参照しながら本発明の実施の形態を詳細に説明する。図面において、同一部には原則として同一符号を付し、繰り返しの説明を省略する。図面において、各構成要素の表現は、発明の理解を容易にするために、実際の位置、大きさ、形状、および範囲等を表していない場合があり、本発明は、図面に開示された位置、大きさ、形状、および範囲等には必ずしも限定されない。
【0016】
<実施の形態1>
図1図10を用いて、本発明の実施の形態1のPLD診断方法等について説明する。図1等に示す実施の形態1のPLD診断方法は、PLD搭載基板10を含む診断システムにおいて、診断対象物であるPLD1に対し、診断時に診断用のコンフィグレーション(診断用回路の設定)を行って、診断を実行し、出力信号から診断結果を得るものである。実施の形態1のPLD診断装置は、図1のPLD搭載基板10を含むシステムが相当し、実施の形態1のPLD診断方法に従った動作や処理を行うものである。
【0017】
[PLD診断システム]
図1は、実施の形態1のPLD診断方法に対応したPLD診断システムの構成を示す。このPLD診断システムは、言い換えると、PLD診断装置である。このPLD診断システムは、PLD1が搭載された基板であるPLD搭載基板10と、PLD搭載基板10に接続された波形観測装置16とを有し、それらをユーザUが操作・利用する。ユーザUは、PLD1の製造や診断を行う業者等における診断者であり、言い換えるとオペレータである。このPLD診断システムは、診断実行物(主体)である基板としてのPLD搭載基板10によって、診断対象物であるPLD1の診断を行う機能を有する。PLD搭載基板10は、ユーザUによる操作に基づいて、実施の形態1のPLD診断方法に従った処理を実行する。ユーザUは、このPLD診断システムを操作・利用して、PLD1の診断作業を行う。このPLD診断システムは、入出力インタフェース(入出力デバイスやユーザインタフェースなど)を介して、ユーザUからの操作の入力(例えば指示や設定等)を受け付け、ユーザUに対し、診断状態・診断結果等を出力する。
【0018】
PLD1は、診断対象物であり、ある方式(すなわちLUTやFFを備える方式)のPLDである。PLD1は、詳細には各ベンダが製造している各種のPLDがあり、実装詳細や性能等、種類が異なる。ベンダ毎のPLDの種類の例は、ロジック回路の配列、サイズ、LUTの入力信号線の本数、等の違いが挙げられる。実施の形態1のPLD診断方法は、これらの各種のPLDに同様に適用できる。PLD1は、コンフィグレーションメモリ1Mと、後述の論理ブロック等とを備える。
【0019】
PLD搭載基板10は、診断対象物であるPLD1が搭載された集積回路基板、言い換えると、PLD1が接続された集積回路基板であり、LSI等で構成される。PLD搭載基板10は、PLD1と、コンフィグレーションROM11と、回路データ選択スイッチ12と、クロック供給器13と、LED等の表示器14と、観測用端子(言い換えると出力端子)15と、それらを接続する信号線等とを備える。
【0020】
コンフィグレーションROM11には、PLD1のコンフィグレーション用のデータが格納される。そのデータとしては、通常動作回路データ11Aと、診断用データ11Bとを有する。通常動作回路データ11Aは、通常動作回路(言い換えるとユーザロジック)をコンフィグレーションするためのデータである。診断用データ11Bは、診断回路をコンフィグレーションするためのデータである。診断用データ11Bは、NAND版診断回路データ11Cと、NOR版診断回路データ11Dとを有する。NAND版診断回路データ11Cは、後述のNAND版での診断(図4のステップS1~S5)を行う際に使用するデータであり、NOR版診断回路データ11Dは、後述のNOR版での診断(図4のステップS7~S11)を行う際に使用するデータであり、これらは1セットである。診断を行う業者は、予め、PLD搭載基板10のコンフィグレーションROM11に、診断用データ11Bを格納しておく。
【0021】
コンフィグレーションROM11には、回路データ選択スイッチ12が接続されている。回路データ選択スイッチ12は、ユーザUの操作入力に従って、コンフィグレーションROM11内の各データのうちいずれのデータをPLD1へのコンフィグレーションに使用するかを切り替える。具体的には、回路データ選択スイッチ12は、通常(非診断)の時には、通常動作回路データ11Aが選択され、診断の時には、診断用データ11Bが選択されるように、切り替えられる。コンフィグレーションROM11からは、回路データ選択スイッチ12によって選択されたデータが、信号線を通じて、回路データ(言い換えるとコンフィグレーションデータ)c1として、PLD1内のコンフィグレーションメモリ1Mにロード(言い換えると、展開、書き込み、格納)される。
【0022】
回路データ選択スイッチ12で通常動作回路データ11Aが選択されている場合には、コンフィグレーションメモリ1Mに通常動作回路データ11Aがロードされる。これにより、PLD1のプログラマブル領域内に通常動作回路がコンフィグレーションされる。回路データ選択スイッチ12で診断用データ11B(例えばNAND版診断回路データ11C)が選択されている場合には、コンフィグレーションメモリ1Mに診断用データ11B(例えばNAND版診断回路データ11C)がロードされる。これにより、PLD1のプログラマブル領域内に診断回路がコンフィグレーションされる。
【0023】
なお、ユーザUが直接的に回路データ選択スイッチ12を操作してもよいし、ユーザUが、PLD搭載基板10に対し通信接続されるPC等の機器・コンピュータシステムからの操作を介して、間接的に回路データ選択スイッチ12を操作・設定してもよい。
【0024】
また、PLD1には、PLD搭載基板10に備えるクロック供給器13からクロックc2が供給されてもよい。実施の形態1のPLD診断方法における一方式(後述の図5)では、そのクロックc2を用いてPLD1の診断のための診断信号を生成する。PLD搭載基板10は、クロック信号の供給源であるクロック供給器13として、例えば水晶振動子を備える。このクロック信号c1は、PLD搭載基板10の各部およびPLD1の各部に供給される。
【0025】
診断時には、PLD1からの出力信号としてスキャンアウト信号c3を有する。このスキャンアウト信号c3は、信号線を通じて、表示器14および観測用端子15に出力される。この出力信号であるスキャンアウト信号c3の観測には、表示器14を用いてもよいし、観測用端子15を用いてもよい。表示器14は、例えばLEDランプで構成され、スキャンアウト信号c3の信号値に応じた表示を行う。例えば、表示器14は、スキャンアウト信号c3の信号値が0である場合には非点灯とされ、1である場合には点灯とされる。このLEDランプの表示状態が、出力信号値を表している。ユーザU1がこの表示器14の表示状態を目で見ることで、スキャンアウト信号c3の信号値の状態を認識でき、後述の01繰り返し信号と0縮退信号などとを識別可能である。
【0026】
観測用端子15には、プローブ(信号線や通信線)を通じて、PLD搭載基板10の外部に、波形観測装置16が接続されている。波形観測装置16は、オシロスコープ等で構成されており、観測用端子15からのスキャンアウト信号c3を、画面で波形として表示する。ユーザU1は、波形観測装置16の画面に表示された波形を目で見ることで、スキャンアウト信号c3の信号値の状態を認識できる。
【0027】
上記出力信号の観測は、波形観測装置16に限らず、例えばPLD搭載基板10に通信接続されるPC等のコンピュータシステムの液晶ディスプレイ等の画面を用いて行うようにしてもよい。また、波形観測装置16やPCの液晶ディスプレイ等の画面では、診断用のグラフィカルユーザインタフェース(GUI)を提供してもよい。例えば、画面のGUIにおいて、スキャンアウト信号c3の信号値や波形のみならず、診断対象物のID、日時、診断種別(例えば出荷前/出荷後など)、診断者(ユーザU)、診断状態メッセージ(例えば「診断開始」/「診断中」/「診断終了」など)、診断時間、診断結果(故障・不具合の有無や詳細)等の情報を表示するようにしてもよい。
【0028】
表示器14や波形観測装置16では、出力信号値の0または1に応じて、表示状態が変化する。例えば、PLD1の正常時に、出力信号値が0と1の繰り返し信号である場合には、表示器14のLEDランプが一定周期で明滅する。PLD1に故障・不具合が有りの場合には、出力信号値が例えば0縮退信号となり、表示器14のLEDランプが非点灯状態に固定となる。よって、それらの表示状態の違いから、ユーザUは、PLD1の故障・不具合の有無などを判別可能である。
【0029】
なお、出力信号での高速な0と1の繰り返しの場合に対応させて、表示器14等での表示出力は、ユーザU1が目視確認しやすいように、出力信号の周波数を低速になるように調整してもよい。上記のように、このPLD診断方法では、診断時の出力信号の観測・監視に関しては、ユーザU1が目で見ても判別可能である。特に、LED等の表示器14を用いる場合には、PLD搭載基板10に外部装置を設けることが不要であり、低コストで診断を実現できる。
【0030】
なお、実施の形態1では、図1のように、PLD搭載基板10上で、PLD1の外に、フラッシュメモリ等によるコンフィグレーション用のデータを格納するメモリとして、コンフィグレーションROM11を備えている。変形例としては、PLD1内に、そのようなコンフィグレーション用のデータを格納するメモリを備える形態としてもよい。
【0031】
[診断実施タイミング]
実施の形態1のPLD診断方法における、PLD1の診断を実施するタイミングとしては、例えば以下が挙げられる。この診断(言い換えるとスキャンテスト等)は、基本的には、任意のタイミングで実行可能である。PLD搭載装置10の状態は、大別して以下のフェーズがある。
【0032】
(1)システム運用フェーズ: システム運用フェーズは、PLD1に通常動作回路(ユーザロジック)をコンフィグレーションした状態で運用するフェーズである。予め、ユーザUが、図1のコンフィグレーションデータc1として通常動作回路データ11Aが選択されるように、回路データ選択スイッチ12を設定しておく。PLD搭載基板10の電源オンによって、回路データ選択スイッチ12の設定に従って、コンフィグレーションROM11から通常動作回路データ11Aがコンフィグレーションデータc1としてPLD1のコンフィグレーションメモリ1Mに展開される。これにより、PLD1のプログラマブル領域に通常動作回路がコンフィグレーションされる。また、クロック供給器13からはPLD1にクロックc2が供給される。そのクロックc2に基づいて、PLD1の通常動作回路が動作開始する。動作開始以降、もし運用中にPLD1の不具合が発生してしまった場合、下記の診断フェーズに移行する。
【0033】
(2)診断フェーズ: 診断フェーズは、PLD1に診断回路をコンフィグレーションした状態で診断を行うフェーズである。ユーザUは、PLD搭載基板10を電源オフにした後、図1のコンフィグレーションデータc1として診断回路データ11B(例えば最初にNAND版診断回路データ11C、次にNOR版診断回路データ11Dの順序)が選択されるように、回路データ選択スイッチ12を設定しておく。またここで、波形観測装置16を用いて観測・診断を行う場合、ユーザUは、PLD搭載基板10の観測用端子15に波形観測装置16を接続し、PLD1から出力されるスキャンアウト信号c3を監視・観測できる状態にしておく。ユーザUが表示器14の明滅の目視確認によって観測・診断を行う場合には、波形観測装置16は不要である。
【0034】
その後、ユーザUは、PLD搭載基板10を電源オンにする。これにより、コンフィグレーションROM11からPLD1のコンフィグレーションメモリ1Mに診断回路データ11B(例えばNAND版診断回路データ11C)がコンフィグレーションデータc1として展開され、プログラマブル領域に診断回路(例えばNAND版診断回路)がコンフィグレーションされる。これにより、PLD搭載基板10でのPLD1の診断が自動で開始される。ユーザUは、例えば波形観測装置16の画面でスキャンアウト信号c3に対応した診断波形を観測する。そして、ユーザUは、その診断波形の状態から、PLD1(特にプログラマブル領域)の不具合、または通常動作回路の論理不良等を判定し、不具合を切り分ける。NAND版の診断の次に、NOR版の診断が同様に実施される。NAND版の診断とNOR版の診断とがセットで終了すると、そのPLD1の診断の完了となる。
【0035】
[PLD]
図2は、PLD1の内部の構成概要を示す。PLD1は、論理ブロックチェーン(LBCと記載する場合がある)110と、診断信号生成部101と、出力端子102とを有する。論理ブロックチェーン(LBC)110は、複数の論理ブロック(LB)100の直列接続によって構成されている。LBC110は、診断対象であるすべてのLB100を接続したチェーンである。図2の例では、LBC110は、LBC#1~LBC#LといったL個のLBCの直列接続で構成されている。
【0036】
診断信号生成部101は、既存のPLD1内の構成要素を用いて診断用に構成される部分であり、診断回路の一部である。診断信号生成部101をコンフィグレーションするためのデータは、診断用データ11Bの一部として有する。このPLD診断方法における例では、後述するが、診断信号生成部101は、既存のPLD1内の一部のLBを用いて、診断信号生成回路としてコンフィグレーションされる。このPLD診断方法では、診断時にPLD1内にコンフィグレーションされた診断信号生成部101によって、診断用の信号である診断信号d1を生成して、LBC110に入力する。診断信号d1は、信号値(論理値)として0と1を交互に反転しながら繰り返す信号(“010101……”)であり、説明上、01繰り返し信号、反転信号等と記載する場合がある。診断時、診断信号生成部101は、生成した診断信号d1を診断対象のLBC110へと出力する。診断信号d1は、LBC110の最初のLB100に入力される。
【0037】
LBC110の各LB100は、図示のように、複数の入力信号線111と、1つの出力信号線112とを有する。あるLB100の1つの出力信号線112は、そのまま、次の段のLB100の複数の入力信号線111に接続されている。なお、入力信号線は入力端子や入力信号と対応しており、出力信号線は出力端子や出力信号と対応している。
【0038】
LBC100の最後のLB100は、PLD100の出力端子102と接続されている。LBC100からの出力信号d2は、出力端子102を通じて、図1のスキャンアウト信号c3として出力される。出力信号d2およびスキャンアウト信号c3は、言い換えると、診断用出力信号、観測信号、等である。この出力信号d2は、LBC110が正常、すなわち故障・不具合が無い状態である場合には、入力時の診断信号d1の内容と同様に、01繰り返し信号となる。
【0039】
一方、この出力信号d2は、LBC110に故障・不具合が有る状態である場合には、01繰り返し信号ではなくなる。すなわち、その場合、この出力信号d2は、ある時点から0または1のいずれかの信号値(論理値)に固定された信号、言い換えると、0縮退信号または1縮退信号となる。よって、診断者であるユーザUは、その出力信号d2であるスキャンアウト信号c3を、波形観測装置16等で監視・観測して、信号内容がいずれの状態であるかを判別することで、対象のLBC110(対応するPLD1)の故障・不具合の有無等を判定できる。
【0040】
なお、診断結果として、LBC110(対応するPLD1)に故障・不具合が有ると判定された場合には、業者は、その故障・不具合に対する対応を行う。対処の一例としては、PLD1の交換、あるいは、故障があるLB100の特定、および故障があるLB100を使用しないようなプログラマブル領域の設定を行うこと、が挙げられる。
【0041】
図2のように、診断時に構成されるLBC110は、ある段のLB100の1つの出力は、分岐するようにされて、次の段のLB100の複数の入力(後述のLUTの複数の入力)のすべてに接続される。このようなLBC110の接続と、後述のNANDまたはNORが等価回路として構成されるLUTにより、各LB100のLUTは、NOTゲート(反転論理)として機能する。LBC110のすべてのLB100における各LB100は、1クロックサイクル毎に、前段のLB100から受けた信号(例えば0)を反転した信号(例えば1)として出力する。LBC110は、複数のLB100において、流れる信号(診断信号d1)の値を、LUT毎に0と1とで繰り返し反転させる。
【0042】
NANDが設定されたLUTでは、LUTの複数の入力端子の入力信号が1つでも0に縮退した場合には、前段のLB100から信号値1を受けたとしても、信号値0に変化しない。また、NORが設定されたLUTでは、LUTの複数の入力端子の入力信号が1つでも1に縮退した場合には、前段のLB100から信号値0を受けたとしても、信号値1に変化しない。
【0043】
LUTの複数の入力のいずれかに縮退故障がある場合、各LB100のLUTはNOTゲートとして機能しなくなる。そのため、診断信号d1に基づいた出力信号d2は、縮退した出力データ(0縮退信号または1縮退信号)となる。よって、その出力信号d2を観測すれば、PLD1のLBC110の故障・不具合の有無の判別が可能である。
【0044】
[LB]
図3は、LBC110の各LB100の構成概要を示す。LB100は、複数の入力信号線111に対して入力側が接続されるルックアップテーブル(LUT)2と、LUT2の1つの出力信号線に対して入力側が接続されるフリップフロップ(FF)5と、それらを接続する信号線等とを含む。言い換えると、LUT2は、複数の入力信号線111と1つの出力信号線とを有する。FF5の1つの出力信号線は、LB100の1つの出力信号線112に相当する。
【0045】
LUT2は、診断時には、等価回路として、NAND21またはNOR22のいずれかがコンフィグレーションされる。これらは、前述のNAND版診断回路データ11CまたはNOR版診断回路データ11Dによって構成される。
【0046】
[PLD診断方法のフロー]
図4は、実施の形態1のPLD診断方法のフローを示す。このフローは、図1のPLD診断システムによる自動的な処理・動作と、診断者であるユーザUによる操作・動作とを含む。このフローは、前述の診断実行タイミングおよび診断フェーズで実施される。このフローは、ステップS1~S15を有する。
【0047】
まずステップS1では、回路データ選択スイッチ12において、NAND版診断回路11Cを使用するように、ユーザUによる選択入力・設定がされる。例えば、ユーザUは、回路データ選択スイッチ12を操作してその設定を行う。回路データ選択スイッチ12の操作および実装の一例としては、ボタンやレバーを用いて、通常モードと診断モードとを手動で切り替えられる構成としてもよい。
【0048】
ステップS2では、PLD1を含むPLD搭載基板10の電源がオンにされる。例えば、ユーザUは、PLD搭載基板10の電源ボタンをオンにする。これにより、PLD搭載基板10が起動する。このPLD診断方法では、PLD搭載基板10は、電源オン後にフリーラン動作して、自動的に診断を実行する。
【0049】
ステップS3では、PLD搭載基板10は、ステップS1の設定に基づいて、コンフィグレーションROM11内のNAND版診断回路データ11Cを、回路データc1として、PLD1のコンフィグレーションメモリ1Mにロードする。これにより、PLD1内のプログラマブル領域にNAND版診断回路がコンフィグレーションされる。すなわち、この際には、図2の診断信号生成部101が構成されるとともに、LBC110内の各LB100で、図3のLUT2においてNAND21が構成される。この構成に基づいて、自動的にNAND版の診断処理が開始・実行される。
【0050】
診断時間中では、図2の診断信号生成回路101で生成された診断信号d1がLBC110に入力され、各LB100を経由した後、最後段から、NAND版での診断の状態を表す出力信号d2が出力され、スキャンアウト信号c3となる。
【0051】
ステップS4では、診断開始から所定時間以上の時間で、観測用端子15からのスキャンアウト信号c3が監視・観測される。例えば波形観測装置16の画面で、スキャンアウト信号c3の診断波形が観測される。ステップS5では、出力信号であるスキャンアウト信号c3の信号値について、0,1の繰り返しが正常であるかが判断される。正常である場合(Y)、すなわち、0,1の繰り返しの信号値である場合には、ステップS6に進む。正常ではない場合(N)、すなわち、0,1の繰り返しの信号値ではない場合には、ステップS14に進む。上記正常ではない場合(N)とは、例えば0が続く信号値(0縮退信号)や、1が続く信号値(1縮退信号)になった場合である。上記のように正常ではない場合(N)は、概略的には故障・不具合有りを示唆しているわけであるが、詳細な判定結果は後述のステップS12~S14で出される。
【0052】
ステップS6では、一旦、PLD搭載基板10の電源がオフにされる。次に、ステップS7では、回路データ選択スイッチ12において、NOR版診断回路11Dを使用するように、選択入力・設定がされる。例えば、ユーザU1は、回路データ選択スイッチ12を操作してその設定を行う。ステップS8では、再び、PLD搭載基板10の電源がオンにされる。
【0053】
ステップS9では、ステップS7の設定に基づいて、コンフィグレーションROM11のNOR版診断回路データ11Dが、回路データc1として、PLD1のコンフィグレーションメモリ1Mにロードされる。これにより、PLD1内のプログラマブル領域に、NOR版診断回路がコンフィグレーションされる。すなわち、図2の診断信号生成部101が構成されるとともに、LBC110内の各LB100では、図3のLUT2においてNOR22が構成される。この構成に基づいて、自動的にNOR版の診断処理が開始・実行される。
【0054】
診断時間中では、図2の診断信号生成回路101で生成された診断信号d1がLBC110に入力され、最後段から、NOR版での診断の状態を表す出力信号d2が出力され、スキャンアウト信号c3となる。
【0055】
ステップS10では、診断開始から所定時間以上の時間で、観測用端子15からのスキャンアウト信号c3が監視・観測される。ステップS11では、出力信号であるスキャンアウト信号の信号値について、0,1の繰り返しが正常であるかが判断される。正常である場合(Y)、すなわち0,1の繰り返しの信号値である場合には、ステップS12に進む。正常ではない場合(N)、すなわち0,1の繰り返しの信号値ではない場合には、ステップS13に進む。
【0056】
ステップS12は、診断判定であり、診断結果の詳細の1つとして、LB100の縮退故障に起因するデバイス不具合は無い、となる。これは、言い換えれば、このPLD1のLBC110のいずれのLB100にも、「1縮退故障」や「0縮退故障」が発生していない、ということを意味する。「1縮退故障」は、信号値が1に固定(縮退)されてしまう故障である。「0縮退故障」は、信号値が0に固定(縮退)されてしまう故障である。
【0057】
ステップS13は、診断判定であり、診断結果の詳細の1つとして、いずれかのLB100に「1縮退故障」が発生している、となる。また、ステップS14は、診断判定であり、診断結果の詳細の1つとして、いずれかのLB100に「0縮退故障」が発生している、となる。
【0058】
ステップS12,S13,S14の後、ステップS15につながる。ステップS15は、診断完了であり、PLD1の不具合の切り分けが完了したことを意味する。上記のように、実施の形態1のPLD診断方法では、対象のPLD1の正常/不具合に関して、ステップS12,S13,S14のような診断結果(対応する故障・不具合の状態)への切り分けができる。
【0059】
上記PLD1の診断に要する最低限の時間(ステップS4およびステップS10での所定時間)は、上記診断回路を含むPLD搭載基板10における[クロック周期]×[LB数]で見積もることができる。なお、上記処理フローは、最初にNAND版の診断のステップ、次にNOR版の診断のステップを設ける例であるが、これに限らず、逆の順序の処理フローとしてもよい。
【0060】
[診断信号生成部(1)]
図5は、実施の形態1での診断信号生成部101の構成例としての診断信号生成回路101Aを示す。この構成例を第1方式とも記載する。この第1方式の構成例は、外部クロック供給を用いる。診断信号生成回路101Aは、前述の図1のクロック供給器13からのクロック信号c2を入力して使用し、診断信号生成回路101A内ではクロック信号を生成しない。
【0061】
この診断信号生成回路101Aは、LBC110の先頭のLB100に対し前段に接続される。この診断信号生成回路101Aは、主に1つのLB501を用いて構成されている。この診断信号生成回路101AのLB501は、LUT502とFF505とを備える。LUT502は、複数の入力信号線504を有し、1つの出力信号線503はFF505の入力信号線として接続されている。FF505の出力信号線506は、診断信号d1の出力となる。この診断信号生成回路101AのLB501は、LBC110の各LB100との違いとしては、FF505の出力信号線506が、LUT502の複数の入力信号線504に戻ってループとなるように、信号線507を通じて図示のように接続されている。FF505は、LUT502の出力信号線503からの出力信号と、外部から入力端子508で入力されたクロック信号c3に対応したクロック信号CLKとを入力し、信号値を保持する。
【0062】
[診断信号生成部(2)]
図6は、実施の形態1の変形例での、診断信号生成部101の構成例として、診断信号生成回路101Bを示す。この構成例を第2方式とも記載する。この第2方式の構成例は、外部クロック供給が不要であり、この診断信号生成回路101A内でクロック信号を生成する。この第2方式の適用の場合、PLD搭載基板10にクロック供給器13が無くてもよい。
【0063】
この診断信号生成回路101Bは、LBC110の先頭のLB100に対し前段に接続される。この診断信号生成回路101Bは、奇数の複数(m)のLUTを用いて、リングオシレータ回路として構成される。この診断信号生成回路101Bは、主に複数(m)のLB601{601-1~601-m}を用いて構成されている。この診断信号生成回路101Bの各LB601は、LUT602を備える。LUT602は、複数の入力信号線604と1つの出力信号線606とを有し、1つの出力信号線606は、次の段のLB601のLUT602の入力信号線604として接続されている。
【0064】
最後の段のLB601-mのLUT602の出力信号線606は、診断信号d1およびクロック信号CLKの出力となる。最後の段のLB601-mのLUT602の出力信号線606は、最初の段のLB601-1の複数の入力信号線604に戻ってループとなるように、信号線607を通じて図示のように接続されている。
【0065】
この診断信号生成回路101Bは、連結するLB100(対応するLUT602)の数に応じて、診断信号d1の周波数を調整可能である。
【0066】
[PLD構成例]
図7は、一般的なPLDのより詳細な構成例を示し、実施の形態1で診断対象とする方式のPLD1もこのような構成を基本として有する。このPLDは、図示のように、複数のLB701(対応するLB100)が、2次元の配列のアレイとして配置されている。LB701の周囲には、配線705(本例では1本線で示す)および配線接続ボックス(CB)704を通じて配線706(本例では3本線で示す縦横の列)が接続されている。配線接続ボックス(CB)704を通じた配線706(縦横の列)同士は、配線スイッチボックス(SB)703を介して接続されている。また、PLDの基板700の配線の外周部には、配線接続ボックス(CB)704に対し、入出力ブロック(IOB)702も接続されて設けられている。
【0067】
このPLDでは、配線接続ボックス(CB)704および配線スイッチボックス(SB)703での配線制御に基づいて、LB701同志をチェーンのように接続して、LBCを構成することができる。本例では、矢印で示すようなLBC710が構成されている。図2のLBC110は、上記のような機構に基づいて構成される。
【0068】
[LB構成例]
図8は、一般的なLBのより詳しい構成例を示し、実施の形態1でもこのような構成のLB100を使用する。図8は、図3のより詳細な構成例に相当する。図8のLB100は、LUT2と、FF5と、セレクタ4と、それらを接続する信号線(言い換えると配線)とを有する。LUT2は、LB100の複数の入力信号線111(例:a1,a2,……,am)に対応して、複数の入力端子801(例:a,b,……,c)を有する。LUT2の出力端子802からの信号線(例:信号y)は、LB100の出力信号線112となっているとともに、分岐によって、セレクタ4の一方の入力となっている。セレクタ4は、LB100の1つの入力信号(例:信号d)をもう一方の入力とする。セレクタ4は、出力データ選択器であり、一方の入力(信号y)と、他方の入力(信号d)とから選択した方の信号を出力する。セレクタ4の出力信号803(すなわち信号yまたは信号d)は、FF5の1つの入力信号となっている。また、FF5には、LB100の入力のクロック信号CLKが入力される。FF5の出力信号(例:信号q)は、LB100の出力信号線112のうちのもう1つの出力信号となる。
【0069】
[LBに対するNANDまたはNORの設定]
図9および図10は、PLD1の診断時に、上記LB100内にNAND(否定論理積回路)21またはNOR(否定論理和回路)22の等価回路をコンフィグレーションする場合の、より具体的な構成例を示す。まず、図9の(a)は、NAND21の構成を実現する場合のメモリの設定値を示す。このメモリは、図1でのコンフィグレーションメモリ1Mに相当し、図10でのコンフィグレーションメモリ3(3A)に相当する。本例では、このコンフィグレーションメモリ3(3A)の設定値は、8ビットの場合を示し、“11111110”(最後のビットのみ0)である。
【0070】
同様に、図9の(b)は、NOR22の構成を実現する場合のコンフィグレーションメモリ3(3A)の設定値を示す。本例では、このコンフィグレーションメモリ3(3A)の設定値は、“10000000”(最初のビットのみ1)である。これらのコンフィグレーションメモリ3(3A)の設定値は、前述のNAND版診断回路データ11C等に基づいて設定される。
【0071】
図10は、図9の(a)のメモリ設定値に基づいてNAND21が構成された場合のLB100の構成例を示す。このLB100は、LUT2、FF5、セレクタ4(4A,4B)、コンフィグレーションメモリ3(3A,3B)、およびそれらを接続する信号線(配線)を備える。コンフィグレーションメモリ3は、メモリ3Aとメモリ3Bとを有する。セレクタ4は、セレクタ4Aとセレクタ4Bとを有する。メモリ3Aは、LUT2のセレクタ4Aに接続されている。メモリ3Bは、FF5の前のセレクタ4Bに接続されている。
【0072】
コンフィグレーションメモリ3Aは、LUTコンフィグレーションテーブルに相当する。例えばPLD1の起動時、外部のコンフィグレーションROM11(NAND版診断回路データ11C)からこのコンフィグレーションメモリ3Aに、図9の(a)のような設定値がロードされ格納される。これにより、自動的に、LUT2にNAND21がコンフィグレーションされる。この設定値は、LUT2の構成、すなわち、入力値と出力値との対応関係を規定する情報であり、言い換えると、複数の入力によるビットをインデックスとして出力する真理値を決める情報である。
【0073】
LUT2は、本例では、3入力LUT(3つの入力信号線・入力端子を有するLUT)であり、3つの入力値の組み合わせに応じた1つの出力値を出力する回路である。LUT2は、メモリ3Aとセレクタ4Aとを備える。メモリ3Aの複数の出力信号線901は、セレクタ4Aの複数の入力信号線として接続されている。セレクタ4Aの制御入力端子には、LUT2の複数の入力信号線801(本例ではa,b,cで示す3本)が接続されている。セレクタ4AおよびLUT2の1つの出力信号線802は、信号yで示すようにLB100の出力信号線の1つとなるとともに、分岐によって、セレクタ4Bの2つの入力信号線のうちの一方の入力信号線として接続されている。セレクタ4Bのもう一方の入力信号線としては、信号dで示す入力信号線903が接続されている。
【0074】
セレクタ4Bの制御入力端子には、メモリ3Bから設定値が供給される。図9でのメモリ3Bには例えば0が設定されている。セレクタ4Bは、制御入力端子に接続されるメモリ3Bの設定値に応じて、2つの入力信号(y,d)から出力値を選択して出力する。セレクタ4Bで選択された出力データは、1つの出力信号線803で、FF5の1つの入力信号線として接続されている。FF5は、その出力データを一時保持する。また、FF5には、クロック信号CLK(前述の診断信号生成部101から供給される)が、1つの入力信号線904で入力される。FF5は、1つの出力信号線906から信号qを出力し、出力信号線112のうちのもう一方の出力信号となる。
【0075】
このLUT2は、コンフィグレーションメモリ3Aの設定値のデータを、入力信号線801(例ではa,b,c)からの入力値に応じて選択するブロックである。図中では、説明をわかりやすくするために、セレクタ4A内においてLUT2の設定例を模式で行列として図示している。このセレクタ4Aでは、列(入力信号線801側の入力)の値の組合せに応じて、行(信号線901での入力)に対応するコンフィグレーションメモリ3Aの設定値から、出力データ値が選択・決定されて、出力信号線802から出力される。この行列は、LUT2入力(a,b,c)の値のすべての組合せ(本例では8通り)に応じて、メモリ3Aの設定値のうちどの値が選択出力されるかを表している。例えば、NAND21構成で、ある時のLUT2入力(a,b,c)の組の値が(0,0,0)である場合には、それに対応する図示する1行目の行に対応したメモリ3Aの設定値“1”が選択され出力される。ある時のLUT2入力(a,b,c)の組の値が(1,1,1)である場合には、それに対応する図示する8行目の行に対応したメモリ3Aの設定値“0”が選択され出力される。
【0076】
このPLD診断方法における診断の仕組みの概要としては以下である。診断時、LUT2の入力信号線801の各入力(a,b,c)には、同じ値(0または1)が入力される。そのため、例えば上記図9の(a)のようにNAND21の構成になる値がメモリ3Aに設定された場合、正常でのLUT2の出力信号値は、必ず、時系列上で0と1を交互に繰り返す信号(01繰り返し信号)となる。
【0077】
例えば図10のようにNAND21の構成の場合において、LUT2の複数の入力(入力信号線801)のうち少なくともいずれか(1つ以上)の入力値が0に固着した場合(「0縮退」と記載する)を考える。この場合、図示のようにLUT2設定の組み合わせでは上から7種類の組み合わせのいずれかに対応しており、いずれであっても、メモリ3Aから出力値として0((1,1,1)の組に対応する値)が選択されることは無くなる。すなわち、LUT2の出力として、メモリ3Aから選択された1だけが出力されるようになる。そのため、LB100の出力信号は、このような1に固定された、1が継続する信号値・出力データ(“1111……”、「1縮退信号」)となる。診断時に、このような出力信号値を観測すれば、このLUT2の故障・不具合、特に「0縮退故障」を検出できる。上記のように、図10のLUT2の構成は、例えばすべての入力が1の場合にのみ0が出力される機能を持つ構成であるから、等価回路としてのNANDの構成である。
【0078】
NOR22の構成での診断時でも、基本的には上記と同様の仕組みである。図示しないが、図10の構成で、メモリ3Aの設定値が、図9の(b)の設定値“0000……1”に置換された場合を考えればよい。このNOR21の構成の場合には、LUT2のいずれかの入力値が1に固着した場合(「1縮退」と記載)、LUT2設定の組み合わせでは下から7種類の組み合わせのいずれかに対応しており、いずれであっても、メモリ3Aから出力値として1が選択されることは無くなる。すなわち、LUT2の出力として、0だけが出力されるようになる。そのため、LB100の出力信号は、このような0に固定された、0が継続する信号値・出力データ(“0000……”、「0縮退信号」)となる。このような出力信号値を観測すれば、このLUT2の故障・不具合、特に「1縮退故障」を検出できる。
【0079】
実施の形態1のPLD診断方法は、上記NAND21構成での「1縮退故障」についての診断と、上記NOR22構成での「0縮退故障」についての診断との両方をセットで実施する(図4)。これにより、対象のLUT2を含むLB100に関する故障診断を確実に行うことができる。
【0080】
なお、図10の構成で、診断時には、セレクタ4Bがメモリ3Bの設定値“0”によってLUT2の出力(出力信号線802、信号y)を選択するようにされる。この場合には、セレクタ4Bでは信号dの入力は選択されず、診断には使用されない。
【0081】
[効果等]
上記のように、実施の形態1のPLD診断方法によれば、PLD1の故障・不具合をより網羅的に診断できる。実施の形態1によれば、PLD1内において診断回路の実装が不要であり、設計工数を低減できる。実施の形態1によれば、PLD1の論理ブロック100によるプログラマブル領域において、ユーザロジックがプログラムされた領域のみならず、プログラマブル領域全体をなるべく網羅的に診断できる。実施の形態1によれば、LUT2(図8)の複数の入力信号線801の入力がいずれの値であっても網羅的に診断が可能である。言い換えると、LUT2の複数の入力信号線のすべてについての網羅的な診断が可能である。実施の形態1のPLD診断方法は、ある方式のPLD(すなわちLUTおよびFFを備える方式)を診断対象物として診断する方法であるが、ある方式のPLDに関して、ベンダや種類(例えばアレイ、サイズ、LUT入力端子本数などの違い)に依存せずに適用でき、ベンダや種類に依存した設計等が不要である。実施の形態1によれば、製品出荷後に不具合が発生した場合でも、診断によって、PLDのデバイスの物理故障であるか、単なる設計不良であるか等の原因を切り分けることが容易にでき、低コスト化を実現できる。
【0082】
また、実施の形態1のPLD診断方法によれば、以下のような観点での効果もある。実施の形態1によれば、従来技術例のような、診断用信号(言い換えるとパターン)の生成回路等の設計や実装が不要となる。実施の形態1によれば、プログラマブル領域における診断可能な面積(対応するLB数)が増える。従来技術例でのPLDと、それに対比される実施の形態1でのPLDとで、プログラマブル領域のサイズが同じ一定の面積であると仮定する。従来技術例では、PLD内のプログラマブル領域内の一部の領域に、故障診断機能のために診断用回路(対応するハードウェア)を実装する必要がある。すなわち、全プログラマブル領域のうち、ユーザロジックを設定できる領域は、その診断用回路を除いた部分となる。一方、実施の形態1でのPLDでは、故障診断機能の実装について、プログラマブル領域内に専用の診断用回路(対応するハードウェア)を実装する必要は無い。そのため、実施の形態1では、全プログラマブル領域のうち、ユーザロジックを設定できる領域は、全領域である。診断時には、PLDのプログラマブル領域内に一時的に前述のような診断用回路がコンフィグレーションされるが、診断後にはユーザロジック(通常動作回路)をコンフィグレーションできる。
【0083】
[変形例]
実施の形態1の変形例として以下も可能である。実施の形態1では、LB100の複数の入力信号線を含むLUT2およびFF5を経由する配線に関して、確実に診断する方法を示した。さらに、変形例では、LB内の他の配線部分についても診断を可能とし、より網羅性を高める。この変形例では、図7のPLDにおいて、診断用に配線やスイッチの状態が設定される。一般に、LB100は、図8のような構成を有し、LBC110の組み方に応じて、同じLB100内のLUT2-FF5間配線のみならず、異なるLB100間でのLUT2-FF5間配線も診断が可能となる。
【0084】
図11は、実施の形態1の変形例のPLD診断方法に関する説明図として、診断時のLB100の構成例を示す。LB100内のセレクタ4Bに接続されたメモリ3Bの設定値として“1”が設定される。これにより、セレクタ4Bは、2つの入力信号(y,d)のうち、入力信号線903の方の信号dを選択して出力する。
【0085】
LB100の信号dの入力は、LUT2の入力(a,b,c)とは異なる入力である。これは、図7の構成で説明すると、以下のような入力である。図7で、ある1つのLB100に着目すると、そのLB100の周囲、隣には、配線705および配線接続ボックス(CB)704を介して、例えば上下左右の4個の別のLB100が配置されている。この中央のLB100において、隣の4個のLB100からの4本の入力があるとする。4本の入力を例えば信号a,b,c,dとする。すると、そのうちの3本の入力が、前述のLUT2の入力(a,b,c)として使用される。残りの1本の入力が、信号dの入力となる。このような接続関係となるように、図7のPLDにおいて配線が接続される。図7中のLBC710に限らずに、様々にLBC110を接続可能である。
【0086】
変形例で、診断時の診断信号d1は、LBC110において例えば以下のように流れる。例えば、LB間接続として、第1のLBと第2のLBとを考える。診断信号d1(ある時点では0または1の信号値)は、まず、LBC110のうちの図11のような第1のLBのLUT2の入力信号線801(a,b,c)に入力され、LUT2の出力値が出力信号線802で信号yとして出力される。その信号yの出力は、LB100間配線接続に基づいて、次の第2のLBの信号dの入力信号線903に入力される。その信号dの入力は、セレクタ4Bで選択出力されて、FF5に入力され、FF5からの出力信号線906での信号qの出力となる。その信号qの出力は、次のLB100のLUT2の入力信号線801(a,b,c)に入力され、以降同様となる。
【0087】
この変形例でのPLD診断方法では、上記のように、複数のLB100において、信号yの信号線および信号dの信号線の両方に同様に診断用信号が流れるので、それらの出力信号を観測することで、前述と同様の仕組み(01繰り返し信号であるか否か)で故障・不具合を判定可能である。すなわち、この変形例によれば、LB100内の他の配線(信号線903等)も対象として診断でき、診断の網羅性を向上できる。
【0088】
以上、本発明を実施の形態に基づいて具体的に説明したが、本発明は前述の実施の形態に限定されず、要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【0089】
1…PLD、1M…コンフィグレーション、10…PLD搭載基板、11…コンフィグレーションROM、11A…通常動作回路データ、11B…診断用データ、11C…NAND版診断回路データ、11D…NOR版診断回路データ、12…回路データ選択スイッチ、13…クロック供給器、14…表示器、15…観測用端子、16…波形観測装置、100…LB、101…診断信号生成部、102…出力端子、110…LBC、111…入力信号線、112…出力信号線、d1…診断信号、d2…出力信号。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11