JP3710070B2 - テスト可能なプログラマブル・ゲート・アレイとそのテスト方法 - Google Patents
テスト可能なプログラマブル・ゲート・アレイとそのテスト方法 Download PDFInfo
- Publication number
- JP3710070B2 JP3710070B2 JP29891396A JP29891396A JP3710070B2 JP 3710070 B2 JP3710070 B2 JP 3710070B2 JP 29891396 A JP29891396 A JP 29891396A JP 29891396 A JP29891396 A JP 29891396A JP 3710070 B2 JP3710070 B2 JP 3710070B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- configuration
- programmable
- scan chain
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318516—Test of programmable logic devices [PLDs]
- G01R31/318519—Test of field programmable gate arrays [FPGA]
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318558—Addressing or selecting of subparts of the device under test
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
Description
【0001】
【発明の属する技術分野】
本発明は、半導体集積回路をテストするためのテスト・サブシステムおよび方式に関し、より具体的には、フィールド・プログラマブル・ゲート・アレイをテストするためのテスト・サブシステムおよび方式に関する。
【0002】
【従来の技術】
フィールド・プログラマブル・ゲート・アレイ(FPGA)は、その中に組合せ論理回路と同期論理回路の両方を有するコミットなしプログラマブル論理セルのアレイを含むものとして当業者に知られている。通常、論理セルは、プログラマブル相互接続ネットワークによってプログラム式に相互接続されている。したがって、論理セルを適切にプログラミングし相互接続することにより、FPGAが複雑なユーザ定義論理機能を実行することができる。
【0003】
拡張FPGAは、論理セルのアレイ間でデータを転送するためのプログラマブル入出力資源も含む場合がある。この入出力資源は、それを通る信号伝播の方向(すなわち、入力または出力)を制御するようにプログラム可能であり、さらにいくつかの追加の選択活動化制御構成(たとえば、インピーダンス、スルー・レート、プルアップ、極性など)に応じてプログラム可能である。FPGAは多くの入出力端子を使用する場合が多く、そのそれぞれは、それに関連するプログラマブル入出力資源に応じて個別に構成可能である。また、FPGAでは、1つまたは複数のクロック信号をアレイの様々な順序回路に分配するために、プログラマブル・クロック・ネットワークを使用することもできる。上記のFPGAサブシステムのそれぞれは、通常、FPGAの「機能的」部分の一部であると見なされる。このようなサブシステムは、以下、単一でまたはまとめて「プログラマブル資源」と呼ぶ。プログラマブル資源の例は、以下に示す関連米国特許出願に開示されている。
【0004】
関連出願情報
本出願は、本出願人が所有しすでに出願された以下の米国特許出願に関連する。
1."PROGRAMMABLE ARRAY INTERCONNECT NETWORK"という名称で1995年6月2日出願の第08/459579号(特開平9−26870号公報)
2."PROGRAMMABLE ARRAY I/O - ROUTING RESOURCE"という名称で1995年6月2日出願の第08/460420号(特開平9−26869号公報)
3."PROGRAMMABLE ARRAY CLOCK/RESET RESOURCE"という名称で1995年6月2日出願の第08/459156号(特開平9−27745号公報)
4."PROGRAMMABLE LOGIC CELL"という名称で1995年6月2日出願の第08/460481号(特開平8−340248号公報)
5."PROGRAMMABLE ARRAY INTERCONNECT LATCH"という名称で1995年6月7日出願の第08/480639号(特開平9−8646号公報)
6."CONTINUOUS ADDRESS STRUCTURE WITH FOLDING"という名称で1995年6月7日出願の第08/488314号(特開平9−246954号公報)
【0005】
現在、FPGAに使用可能なプログラミング技術は様々である。たとえば、不揮発性ヒューズまたはアンチヒューズ・リンクをアレイに使用し、アレイ資源間で選択接続を行うことができる。このような線をプログラミングするためには、リンクにおける適切なプログラミング電圧の選択配置を可能にするため、2端子リンクの各端子が独立してアドレス可能でなければならない。したがって、アレイを構成するために必須のプログラミング電圧のアドレス指定と経路指定を行うために、追加の構成サポート回路が必要である。また、フローティングゲートEPROM/EEPROMトランジスタを使用してアレイのプログラム性を提供することができるが、このようなトランジスタは、それにプログラミング電圧を印加するために、アレイ内に同様に配置され、独立してアドレス指定されるものと思われる。
【0006】
FPGAのプログラマブル資源を制御するためには、スタティックRAM(SRAM)技術も使用可能である。FPGAの単純なプログラマブル資源としては、CMOSパス・ゲートが含まれる。このパス・ゲートは、所定のプログラム状態を保持する、基礎となるSRAMセルによって制御される。このプログラム状態、すなわち、SRAMセルに格納された構成データ・ビットによって、パス・ゲートが伝導するかどうかが決まる。したがって、FPGAの関連プログラマブル資源の構成を確立するために、FPGA内の比較的独立したサブシステムとして、SRAMセルの均質アレイを設けることができる。このSRAMセルのアレイへのアクセスは、FPGAの構成論理サブシステムによって制御される標準のアクセス技法を使用して行う。
【0007】
したがって、プログラマブル・ゲート・アレイのプログラマブル資源に加え、アレイのプログラミングを可能にするために追加の構成サブシステムが必要なことは明らかである。上記のSRAM FPGA例では、それへのアクセスを制御するための関連構成論理とともに、FPGAの関連プログラマブル資源を構成するためにSRAMセルの均質アレイが設けられている。半導体設計および製作の観点から、単一半導体パッケージに複数の異質サブシステムを設けると、障害検出および分離を含む、回路のテスト性に関する重大な懸念が発生する。したがって、FPGAの構成サブシステムおよびプログラマブル資源のテストを可能にするために、包括的なテスト方式を提供すると有利であると思われる。このテスト方式自体は、FPGA内に追加のテスト・サブシステムを設けることを含む場合があり、そのテスト・サブシステムもテスト可能でなければならない。したがって、テスト方式は、テスト・サブシステムを含む、FPGAのすべての資源およびサブシステムを可能な限り包含する必要がある。
【0008】
にもかかわらず、プログラマブル資源と構成およびテスト・サブシステムは、それぞれの回路や機能が異なるものの、相互依存度が高い。この相互依存度のために、使用するテスト方式が非常に複雑になる。たとえば、論理セルの組合せ論理のテストが必要になる場合が多く、その論理セルは構成サブシステムによって所与の状態にプログラミングされる。しかし、論理セル・テストの保全性は、構成サブシステムのエラーや、テスト・サブシステムのエラーによって悪影響を受ける可能性がある。したがって、FPGA内の様々な資源およびサブシステム間の相互依存度をできる限り考慮したテスト方式を使用することが必要になる。
【0009】
既知のバウンダリ・スキャン技法では、その入出力端子に関連してチップの外辺部にLSSDレジスタなどの2重ラッチ・セットを設けることが必要である。このラッチ・セットは、シフト・レジスタ・スキャン・チェーンとして相互接続されている。テスト刺激は、スキャン・チェーンにシリアルにロードし、チップの内部回路に印加することができる。スキャン・チェーンは、テスト刺激に応答して、内部回路が提供する結果データを同様に捕捉することができる。次に、この結果をシフト・レジスタからシフト・アウトし、予想結果と比較することができる。チップのスキャンイン端子、スキャンアウト端子、いくつかのクロック端子は、スキャン・チェーンの動作を可能にするために設けられている。したがって、チップの各入出力端子に対する外部テスト・インタフェースを必要とせずに、チップの内部回路で障害を検出することができる。しかし、回路密度を高め、特にFPGA内の回路の異種性を考慮すると、バウンダリ・スキャン技法でも障害検出が可能になるが、障害分離は難しい場合がある。したがって、FPGA内の様々な資源およびサブシステムのテスト中に障害分離の程度を高めるようなテスト・サブシステムを使用することが必要になる。
【0010】
レベルセンシティブ・スキャン設計(LSSD)テスト技法も知られているが、これは1つの論理回路を組合せ論理回路と同期論理回路にセグメント化することを含む。同期回路はシリアル・シフト・レジスタ・スキャン・チェーンになるように接続され、論理回路の領域の境界となるかまたは領域をセグメント化する。バウンダリ・スキャン技法と同様、テスト刺激はシフト・レジスタ・スキャン・チェーンにシフト・インされ、論理回路に印加される。結果データは、その関連論理回路またはセグメントによってもたらされた通りに、スキャン・チェーンに捕捉される。次に、捕捉した結果データが分析のためにシフト・アウトされる。この場合も、外部テスト機器はスキャンイン、スキャンアウト、ならびに適切なクロック・ピンだけにアクセスすればいいので、ピン・カウント低減テストが達成される。
【0011】
典型的なFPGAでは、その同期回路をシリアル・シフト・レジスタに変換することにより、すべての組合せ回路を明確にセグメント化することは少々難しいことである。たとえば、各論理セルの同期回路のそれぞれが変換され、関連シリアル・シフト・レジスタ・スキャン・チェーン内で接続されている場合、介入するプログラマブル相互接続ネットワークは明確にセグメント化されず、テスト不能領域を含む可能性があると思われる。この問題は、相互接続ネットワークが大規模で複雑な場合、特に重大である。したがって、FPGAの異質な組合せ資源と同期資源の妥当なテストを行い、その容易なセグメント化を可能にし、純粋なLSSD手法を使用する場合の欠点を克服するようなテスト方式を提供することが必要になる。
【0012】
前述のように、高性能テスト方式を提供するには、少なくともアレイ内にいくつかの追加テスト・サブシステムを設けることが必要になると思われる。しかし、既知のシフト・レジスタ技法と同様、テスト・サブシステムを動作させるのに必要な入出力端子の数をできる限り最小限にすることが必要になる。さらに、最小量の信号インタフェース回路と外部テスト機器により、1つのシステム内の複数のFPGAチップのテストをサポートすることが必要である。
【0013】
【発明が解決しようとする課題】
したがって、本発明の一目的は、改良されたテスト可能プログラマブル・ゲート・アレイとそれをテストするための方法を提供することにある。
【0014】
本発明の他の目的は、フィールド・プログラマブル・ゲート・アレイの様々なサブシステム内で障害の分離を可能にするような、プログラマブル・ゲート・アレイをテストするための包括的なテスト方式を提供することにある。
【0015】
本発明の他の目的は、プログラマブル・ゲート・アレイの様々なサブシステム間の相互依存度を考慮に入れた、プログラマブル・ゲート・アレイをテストするためのこのようなテスト方式を提供することにある。
【0016】
本発明の他の目的は、複数のプログラマブル・ゲート・アレイのテストを可能にするためのこのようなテスト可能プログラマブル・ゲート・アレイと関連テスト方法を提供することにある。
【0017】
【課題を解決するための手段】
本発明の第1の実施例によれば、フィールド・プログラマブル・ゲート・アレイは、関連入出力ポートに結合された複数の機能信号線を有する。複数のプログラマブル論理ユニットは、関連の論理構成データに応じて特定の論理回路を提供する。複数のプログラマブル相互接続部は、関連の経路指定構成データに応じて機能信号線とプログラマブル論理ユニットとを相互接続する。プログラマブル論理ユニットとプログラマブル相互接続部に関連するメモリ・セルは、それぞれ関連のプログラマブル資源を構成するための論理および経路指定構成データを保持する。構成論理回路は、メモリ要求信号を受け取り、これらの信号を処理してメモリ・セルへのアクセスを可能にする。FPGAのテスト回路は、入出力機能信号線と関連入出力ポートへの選択的シリアル・スキャン・アクセスとそれらの機能検証とを可能にするために、FPGAの機能信号線を横切るLSSDバウンダリ・スキャン・チェーンを含む。また、そのLSSDシリアル・スキャン・アクセスとテストを可能にするために、第2のLSSDスキャン・チェーンが構成論理回路に関連付けられている。最後に、それへの選択的シリアル・スキャン・アクセスを可能にするために、フィールド・プログラマブル・ゲート・アレイのプログラマブル相互接続部に沿ってLSSDレピータ・スキャン・チェーンが配置されている。
【0018】
本発明のこの第1の実施例の一態様では、入出力バウンダリ・スキャン・チェーンが、FPGAの様々な特徴を制御するための制御信号を提供するためにテスト制御レジスタにデータをロードすることに関連する部分を含む。
【0019】
本発明のこの第1の実施例の他の態様は、アレイ・テスト・モードをサポートするための備えを含む。行と列からなるアレイとして複数のプログラマブル論理ユニットがFPGAを横切って配置されている。プログラマブル相互接続部は、アレイ配置されたプログラマブル論理ユニットの行と列に隣接して配置された複数の行バスと複数の列バスとを含む。プログラマブル・レピータ・ユニットは、構成メモリの指定のメモリ・セルに保持されたレピータ構成データに応じて、行バスと列バスのうちの所与のバスを関連バス・セグメントに選択的に細分する。レピータ・スキャン・チェーンの各LSSDスキャン・レジスタは、複数のプログラマブル・レピータ・ユニットの関連レピータ・ユニット内に組み込まれている。それぞれのレピータ・スキャン・チェーンを提供するために、関連の行バスと列バスのLSSDスキャン・レジスタはシリアル接続されていることが好ましい。
【0020】
本発明の第1のテスト方法(B/Sまたはカード・テスト)では、その入出力バウンダリ周辺に入出力バウンダリ・スキャン・チェーンを有するFPGAをテストするための方法が提供される。第1のテスト・マクロでは、既知の入出力テスト・データがFPGAの入出力バウンダリに印加される。次に、入出力バウンダリのデータが入出力バウンダリ・スキャン・チェーンにラッチされる。次に、このラッチ・データが入出力バウンダリ・スキャン・チェーンからスキャン・アウトされ、FPGAの入出力バウンダリの機能性を判定するために既知の入出力テスト・データと比較するために回復される。
【0021】
第2のテスト方法(構成またはLSSDテスト)のFPGAには、FPGAの構成論理回路をテストするための構成スキャン・チェーンが設けられている。構成テスト・ベクトルは、構成スキャン・チェーンにスキャン・インされ、構成論理回路に印加される。印加された構成テスト・ベクトルに応答して構成論理回路によってもたらされる結果データは、構成スキャン・チェーンにラッチされる。次に、結果データは、構成スキャン・チェーンからスキャン・アウトされ、回復され、構成論理回路の機能性を判定するために印加されたテスト・ベクトルと構成論理回路に応じて、所定の結果データと比較される。
【0022】
第3のテスト方法(アレイ・テスト)のFPGAには、FPGAの選択プログラマブル相互接続部内に構成されたレピータ・スキャン・チェーンが設けられている。FPGAのプログラマブル相互接続部のうちの第1の組の相互接続部は、レピータ・スキャン・チェーンの入力および出力レピータ・スキャン・チェーンのそれぞれのLSSDスキャン・レジスタ間に構成される。相互接続テスト・ベクトルは、入力レピータ・スキャン・チェーンにシリアルにスキャン・インされ、第1の組の相互接続部の入力側に印加される。次に、第1の組の相互接続部の出力側の結果データは、出力レピータ・スキャン・チェーンにラッチされる。次に、結果データは出力レピータ・スキャン・チェーンからスキャン・アウトされ、回復され、プログラマブル相互接続部の機能性を判定するために印加された相互接続テスト・ベクトルと比較される。
【0023】
この実施例の他のテスト方法(構成メモリ・アクセス・テスト)は、FPGAのプログラマブル資源を構成するために構成データを受け取って保持するためのメモリ・セルの能力を判定するために、FPGAのメモリ・セルに直接アクセスし、テストするものである。まず、既知のデータがメモリ・セルに書き込まれる。次に、メモリ・セルの機能性を判定するために、メモリ・セルからデータが取り出され、そのデータが既知のデータと比較される。
【0024】
本発明の他のテスト方法では、FPGAの構成可能性をテストするための方法が提供される。複数の入出力ポートと、プログラマブル論理ユニットと、プログラム論理ユニットと入出力ポートとを相互接続するためのプログラマブル相互接続部とを有するFPGAが提供される。様々なプログラマブル論理ユニットとプログラマブル相互接続部に対して、複数の構成メモリ・セルが指定される。この構成メモリ・セルは、プログラマブル論理ユニットとプログラマブル相互接続部を構成するための構成データを保持する。構成論理回路には、プログラマブル・メモリ・セルへのアクセスと、そのセルへの構成データのロードとを可能にするためにFPGAが設けられている。フィールド・プログラマブル・ゲート・アレイをテストするためのこの方法では、構成論理回路に関連するLSSDスキャン・チェーンにより、構成論理回路の機能性がテストされる。構成論理回路のテスト後、確定的なテスト・パターンを使用して複数の構成メモリ・セルがテストされる。
【0025】
本発明の上記のテスト方法の他の態様では、FPGAの入出力ポートの状態(スナップショット)の観察にバウンダリ・スキャン・チェーンが使用される。
【0026】
本発明の第4のテスト方法(B/Sチップ・テスト)では、複数の入出力ピンと、複数の入出力機能信号線と、複数のプログラマブル論理ユニットと、経路指定構成データに応じて機能信号線と選択プログラマブル論理ユニットとを選択的に相互接続するための複数のプログラマブル相互接続部とを有するFPGAをテストするための方法が提供される。FPGAには、FPGAのプログラマブル資源の構成に関連する構成データを保持するための複数のメモリ・セルが設けられている。FPGAの構成論理回路により、メモリ・セルへのアクセスが可能になる。バウンダリ・スキャン・チェーンはFPGAの機能信号線を横切って設けられ、構成スキャン・チェーンは構成論理回路の周りおよび構成論理回路内に設けられている。また、レピータ・スキャン・チェーンは、プログラマブル相互接続部の選択相互接続部に沿って設けられている。レピータ・スキャン・チェーンは、それぞれのラッチ構成データに応じて関連相互接続部に選択的に結合される。
【0027】
本発明のこの第4のテスト方法によりFPGAをテストする場合、それによりシリアルにデータをスキャンすることにより、様々なスキャン・チェーンのそれぞれがテストされる。データは、スキャン・チェーンを通過するときに受け取られ、それぞれのスキャン・チェーンの機能性を判定するためにスキャン・インされたものと比較される。
【0028】
入出力機能信号線と関連の機能入出力ピンは、機能入出力ピンにテスト・ベクトルを印加し、入出力機能線の結果データをバウンダリ・スキャン・チェーンにラッチすることによってテストされる。結果データは、バウンダリ・スキャン・チェーンからスキャン・アウトされ、入出力ピンと関連の機能信号線の機能性を判定するために機能入出力ピンに印加されたテスト・ベクトルと比較される。
【0029】
この第4のテスト方法の他の手順では、テスト・ベクトルをシリアルに構成スキャン・チェーンにスキャン・インし、関連の構成論理回路にテスト・ベクトルを印加することによって、構成論理回路がテストされる。次に、印加したテスト・ベクトルに応答して構成論理回路によってもたらされる結果データは、構成スキャン・チェーンにラッチされる。この結果データは、構成スキャン・チェーンからシリアルにスキャン・アウトされ、構成論理回路の適正動作を判定するために、印加したテスト・ベクトルおよび関連の構成論理回路に応じて事前決定された所定の結果データと比較される。
【0030】
プログラマブル相互接続部は、第1および第2のレピータ・スキャン・チェーン間の複数のプログラマブル相互接続部のうちの第1の組の相互接続部をまず構成することによりテストされる。テスト・ベクトルは、第1のレピータ・スキャン・チェーンにシリアルにスキャン・インされる。第1の組の相互接続部の入力側にテスト・ベクトルを印加するために、適切な構成データに応じて第1のレピータ・スキャン・チェーンが構成される。次に、第1の組の相互接続部の出力側のデータが第2のレピータ・スキャン・チェーンにラッチされる。この結果データは、第2のレピータ・スキャン・チェーンからスキャン・アウトされ、回復され、プログラマブル相互接続部の適正な機能性を判定するために印加したテスト・ベクトルと比較される。
【0031】
本発明の最後の実施例のフィールド・プログラマブル・ゲート・アレイは、そのメモリ・セルにアクセスするための構成論理回路を含み、そのメモリ・セルはFPGAのプログラマブル資源の構成に関連付けられている。LSSDのアクセスと構成論理回路のテストを可能にするために、LSSDスキャン・チェーンが構成論理回路に関連付けられている。
【0032】
本発明は、プログラマブル・ゲート・アレイをテストするためのテスト・サブシステムおよび方式を提供する。以下の説明では、まず、プログラマブル・ゲート・アレイとそれに関連するテスト・サブシステムの基本構造について説明する。次に、その関連テスト・サブシステムに応じてプログラマブル・ゲート・アレイをテストするためのテスト・マクロと関連シーケンスとを説明する。
【0033】
フィールド・プログラマブル・ゲート・アレイの例に関連して、以下に本発明のテスト・サブシステムおよび方法について説明する。ただし、本発明のテスト・サブシステムおよび方法は、匹敵する他の再構成可能論理デバイスにも同様に適用可能であることに留意されたい。
【0034】
【発明の実施の形態】
図1ないし図2を参照すると、フィールド・プログラマブル・ゲート・アレイ10が示されているが、これは、複雑なユーザ定義の論理回路のテスト、構成、機能動作を可能にするための様々なサブシステムを含む。フィールド・プログラマブル・ゲート・アレイ(FPGA)10のプログラマブル資源12は、プログラマブル論理セルと、プログラマブル相互接続ネットワークと、プログラマブル・クロック/リセット分配ネットワークと、プログラマブル入出力ポートと、その他のものを含む。"Programmable Logic Cell"という名称の米国特許出願の上記の部分には、プログラマブル論理セルの詳しい説明が示されている。同様に、"Programmable Array Interconnect Network"、"Programmable Array Clock/Reset Resource"、"Programmable I/O Routing Resource"という名称のそれぞれの米国特許出願の上記の部分には、相互接続ネットワーク、クロック/リセット分配、プログラマブル入出力資源の詳しい説明が示されている。
【0035】
FPGA10のSRAM14は、FPGA10の様々なプログラマブル資源12の構成状態を選択的に励起するために構成データを保持する。構成プログラム・ビット20は、SRAM14の関連メモリ・セルの構成データに応じて、FPGAの様々なプログラマブル資源12を励起する。"Continuous Address Structure With Folding"という名称の米国特許出願の上記の部分は、FPGAの様々なプログラマブル資源へのSRAMメモリの割振り例を示している。
【0036】
FPGA10の構成論理回路16および18は、プログラマブル資源12を構成するためにそこに構成データをロードできるようにするため、また、SRAM14のテストを可能にするために、SRAM14にアクセスする。構成論理回路のSRAM制御装置16は、動作モードを選択し、SRAM14へのアクセスを制御するために、様々な入力信号を受け取る。また、SRAM制御装置16は、SRAM14の動作検証中に出力信号を提供する。構成論理回路16の詳細については、Garverick他に対して1994年3月29日に交付された"Versatile and Efficient Cell-to-Local Bus Interface in a Configurable Logic Array"という名称の米国特許第5298805号と、"Application Note AT6000 Series Configuration"というタイトルの文献(1993年5月19日発行、改訂版1B、Atmel Corporation)を参照されたい。どちらの参考文献も、ここに全体を参照することにより、本明細書に組み込まれる。
【0037】
構成論理回路のデコーダおよびシーケンサ18は、アドレス・バス32またはデータ・バス34あるいはその両方からデータを受け取る。デコーダおよびシーケンサは、このデータをデコードし、SRAM14のメモリ・マップをアドレス指定するためのアドレスまたはアドレス・シーケンスあるいはその両方を提供する。デコーダおよびシーケンサの詳細については、"Continuous Address Structure With Folding"という名称の米国特許出願の上記の部分と、"Application Note AT6000 Series Configuration"というタイトルの文献を参照されたい。
【0038】
上記のサブシステム、すなわち、プログラマブル資源12と、SRAM14と、構成論理回路16、18とは、FPGAのユーザ機能動作を可能にするものである。この開示の次の部分では、ユーザがFPGAの様々なサブシステムをテストできるようにするためのFPGAのテスト・サブシステムについて説明する。
【0039】
テスト可能FPGAのテスト・サブシステム:
図2を参照すると、テスト回路22は、FPGAのテスト・モードを選択するためのテスト制御信号MTESTとTESTMOREを受け取る。さらに、FPGAの個々のテストの追加態様を連絡するために追加のテスト信号38をテスト回路22に提供することもできる。入出力バウンダリ・スキャン・チェーン26は、FPGA10の機能入出力相互接続部36を横切る既知の入出力バウンダリ・スキャン・チェーンを提供する。この入出力バウンダリ・スキャン・チェーン26の一部分は、FPGAのテスト中に追加の制御信号を提供するために制御レジスタ28のロードに関連付けられている。
【0040】
追加のテスト・サブシステムとしては、構成スキャン・チェーン24がある。構成スキャン・チェーン24は、スキャン・チェーンによる構成論理回路へのアクセスを許可し、そのテストを可能にするために、FPGAの構成論理回路の様々なセグメントの境界を示す。最後に、レピータ・スキャン・チェーン301、302、・・・は、FPGAの選択プログラマブル相互接続部内に構成スキャン・チェーンを提供するものである。レピータ・スキャン・チェーンは、関連のプログラマブル相互接続部への選択スキャン・チェーン・アクセスを可能にし、FPGAのプログラマブル資源12の様々な部分の分離テストを可能にする。レピータ・スキャン・チェーンの詳細については、"Programmable Array Interconnect Latch"という名称の米国特許出願の上記の部分を参照されたい。
【0041】
FPGAの機能、構成、およびテスト・インタフェース:
図1ないし図2に示すように、FPGA10は、FPGAの様々なサブシステム間で信号を伝播するために複数の入出力ポートと入出力相互接続部を含む。FPGAの特定の実施例では、入出力相互接続部の一部が共通入出力ポートを共用している。このような2重使用入出力ポートは、所与のテスト制御信号に応じて関連の入出力相互接続部の1つに選択的に結合される。以下に示す表1は、FPGAの動作モードによる関連入出力相互接続部へのFPGAの入出力ポートの割振りを示すものである。
【0042】
入出力ポートは、専用ポート「d」ポート、複数使用ポート「m」ポート、機能バウンダリ・スキャン・ポート「bs」という3通りのカテゴリを含む。専用入出力ポート「d」は、2重使用ポートになる場合もあるが、テスト、構成、増力、モード選択など、FPGAの非機能態様専用である。
【0043】
複数使用入出力ポート「m」は、FPGAの機能相互接続部あるいは拡張テスト相互接続部に選択的に結合された2重使用ポートである。所与のテスト・モードでは、複数使用入出力ポート「m」が拡張テスト・インタフェースを提供する。
【0044】
バウンダリ・スキャン入出力ポート「bs」は、主にFPGAの機能相互接続部に割り振られる。ただし、バウンダリ・スキャン入出力ポート「bs」の第1の部分は、FPGAの構成に関連する相互接続部に結合することもできる。また、その第2の部分は、クロックまたはリセット信号をFPGAに伝播するための相互接続部に結合することもできる。
【0045】
【表1】
FPGA入出力インタフェース
i=入力、o=出力、c=共通入出力
#=io(入出力)の数
*=機能入出力
d=専用入出力であって、-MTEST=0かつ-DI2=1によってテスト・モードが可能になり、-CS=0によって構成モードが可能になる
m=追加のテスト入出力であって、-MTEST=0かつ-TESTMORE=0によって可能になる
bs=ラッチ境界スキャン入出力であって、-RI=1かつ-DI1=1によって可能になる
# テスト・モード 構成モード 機能モード
d 1 i SWGATE=VREF i SWGATE=VREF i SWGATE=VREF
d 1 i -OFF/ON i -OFF/ON i -OFF/ON
d 1 c -CON c -CON - -CON = high Z
d 1 o SO i -CS = 0 i -CS = 1
d 1 i SI c CCLK - CCLK = x
d 1 i LSSDA i M0 - M0 = x
d 1 i LSSDB10 i M1 - M1 = x
d 1 i LSSDC i M2 - M2 = x
d 1 i -MTEST = 0 i -MTEST = 1 i -MTEST = 1
d 1 i -TESTMORE i CLOCK1 = x i CLOCK1
m 1 i -RI * *
m 1 i -DI1 * *
m 1 i -DI2 * *
m 1 i -C_TEST * *
m 1 i -CONFG * *
m 1 i -REPT * *
m 8 i SITOP(0-7) * *
m 8 o SOBOT(0-7) * *
m 8 i SIRIGHT(0-7) * *
m 8 o SOLEFT(0-7) * *
m 1 i SICONFIG * *
m 1 o SOCONFIG * *
m 1 i LSSDB1 * *
m 1 i LSSDB2 * *
m 1 i LSSDB3 * *
bs 17 * IO c ADDR(0-16) * IO
bs 8 * IO c DATA(0-7) * IO
bs 1 * IO i -CHECK(-RR/RW) * IO
bs 1 * IO o -CSOUT * IO
bs 1 * IO o -ERR * IO
bs 1 * CLOCK2 OR IO * CLOCK2 OR IO * CLOCK2 OR IO
bs 1 * CLOCK3 OR IO * CLOCK3 OR IO * CLOCK3 OR IO
bs 1 * CLOCK4 OR IO * CLOCK4 OR IO * CLOCK4 OR IO
bs 1 * CLOCK5 OR IO * CLOCK5 OR IO * CLOCK5 OR IO
bs 1 * CLOCK6 OR IO * CLOCK6 OR IO * CLOCK6 OR IO
bs 1 * -RESET1 OR IO * -RESET1 OR IO * -RESET1 OR IO
bs 1 * -RESET2 OR IO * -RESET2 OR IO * -RESET2 OR IO
bs 1 * -RESET3 OR IO * -RESET3 OR IO * -RESET3 OR IO
bs .. * ... * ... * ...
bs 1 * IO * IO * IO
【0046】
表1の右端の2つの列は、それぞれ機能ノードと構成モードであり、関連のFPGAの構成相互接続部と機能相互接続部の様々な入出力ポートの割振りを示している。SWGATEはFPGAに対して電圧基準を提供する。OFF/ONはFPGAに対してその増力電源電圧を選択する。FPGAの構成とその状態の制御は、もう1つの専用入出力ポート「d」であるCONを介して提供される。追加の構成相互接続部は、構成選択CS、構成クロックCCLK、所与のSRAMチェック動作モードを可能にするためのチェック制御CHECK、別のFPGAの構成を可能にするための構成選択CSOUT、FPGAの構成エラーを報告するためのエラーERRなどの信号を伝播する。このような構成相互接続部と関連信号の詳細は、"Application Note AT6000 Series Configuration"と題する上記の文献に記載されている。
【0047】
テスト・モード・イネーブル信号MTESTが正しく活動化されると、表1に示すように所与の専用入出力ポートがテスト相互接続部として再割振りされる。構成選択CSに関連するポートは、スキャン出力SOとして再割振りされる。構成クロックCCLKに関連するポートは、FPGAのスキャン入力SIとして再割振りされる。同様に、確認モード選択M0〜M2に関連するポートは、LSSDクロック相互接続部LSSDA、LSSDB10、LSSDCにそれぞれ再割振りされる。最後に、クロック相互接続CLOCKに関連するポートは、追加テスト・イネーブル相互接続TESTMOREに再割振りされる。したがって、専用入出力ポート「d」の一部は、FPGAの構成とテストに関連する各種相互接続部間で共用される2重使用ポートになる。
【0048】
FPGAがそのテスト・モードになっており、MTESTによって選択されている場合、追加テスト・イネーブル信号TESTMOREを活動化することによって、拡張テスト・インタフェースが得られる。したがって、MTESTとTESTMOREの両方が活動化されると、FPGAの追加テストを可能にするための拡張テスト・インタフェース(表1の複数使用ポート「m」によって表されるもの)が得られる。
【0049】
レシーバ禁止信号RIに関連する相互接続部は、FPGAの所与のレシーバを禁止するための直接制御入力を提供する。DI1とDI2は、FPGAに関連する所与のドライバの直接制御を提供する。MUXテスト制御信号C_TESTに関連する相互接続部は、FPGAの所与のパスゲート・マルチプレクサのテストを可能にするための直接入力を提供する。同様に、直接入力CONFGとREPTは、構成スキャン・チェーン24とレピータ・ラッチ・スキャン・チェーン30の動作をそれぞれ可能にする。拡張インタフェースの残りのテスト・ポートは、様々なレピータ・スキャン・チェーンと構成スキャン・チェーンへのデータのスキャン・インまたはそれらからのスキャン・アウトと、構成スキャン・チェーンをクロックするための追加のLSSDクロックの提供に関連付けられている。
【0050】
レシーバ禁止信号RIは、活動化されると、FPGAの機能入力に関連する相互接続部がそのデータを受け取るのを防止する。このような機能入力としては、バウンダリ・スキャン入出力ポート「bs」と、機能ポートとして割り振られたとき(すなわち、TESTMOREが活動化されていないとき)の複数使用入出力ポート「m」とを含む。第1のドライバ禁止信号DI1は、活動化されると、機能出力ポートのドライバが関連の機能相互接続部のデータを送り出すのを禁止する。このような第1の組のドライバは、バウンダリ・スキャン入出力ポート「bs」と、関連の機能相互接続部に割り振られた(すなわち、TESTMOREが活動化されていないときの)複数使用入出力ポート「m」のドライバを含む。これに対して、第2のドライバ禁止信号DI2は、活動化されると、専用入出力ポートと、拡張テスト相互接続部に割り振られた(すなわち、TESTMOREが活動化されたときの)複数使用入出力ポート「m」のドライバを禁止する。TESTMOREが活動状態ではない場合、RI、DI1、DI2の最後の状態が保持される。
【0051】
入出力バウンダリ・スキャン・チェーンおよび制御レジスタ:
図1、図2、および図3を参照すると、入出力バウンダリ・スキャン・チェーン26は、FPGA10の機能入出力相互接続部36に選択的に相互結合可能なLSSDシフト・レジスタ・ラッチのシリアル・ストリングを含む。外部テスト制御装置40は、入出力バウンダリ・スキャン・チェーン26へのアクセスとその動作を可能にするためのテスト・イネーブル信号MTESTを活動化する。外部テスタ40は、スキャン・インSI相互接続部およびスキャン・アウトSO相互接続部を介して入出力バウンダリ・スキャン・チェーンのインタフェースを取り、入出力バウンダリ・スキャン・チェーン26を動作させるために必要な関連相互接続部にLSSDA、LSSDB10、LSSDCクロック信号を提供する。
【0052】
図4を参照すると、入出力バウンダリ・スキャン・チェーン26の各セル56は2つのLSSDシフト・レジスタ・ラッチ72、88を含む。第1のLSSDシフト・レジスタ72のマスタ・ラッチL1は、関連スキャン・チェーンのシリアル・データを受け取るためのスキャン入力76と、マルチプレクサ68の出力からデータを受け取るために結合された1次入力70(負論理)とを有する。第1のLSSDシフト・レジスタ72のスレーブ・ラッチL2からのシリアル出力78は、第2のLSSDシフト・レジスタ88のマスタ・ラッチL1のシリアル入力(正論理)に結合されている。第2のシフト・レジスタのマスタ・ラッチL1の1次入力は、マルチプレクサ84の出力からデータを受け取るように結合されている。第2のLSSDシフト・レジスタ88のスレーブ・ラッチL2は、シリアル・データをシフト・アウトするためのスキャン出力92を有する。
【0053】
4つのマルチプレクサ60、64、68、84は、FPGAのそれぞれの相互接続部にLSSDシフト・レジスタを選択的に結合することができる。マルチプレクサ状態は制御信号PT0およびPR0によって制御され、これらの信号の一方または両方の極性は回路要件に基づいてそこから経路指定することができる。制御信号PT0はマルチプレクサ60および84の構成を制御し、制御信号PR0はマルチプレクサ64および68の構成を制御する。制御信号PT0が活動化されると、FPGA内部からの相互接続部をマルチプレクサの出力62に結合するためにマルチプレクサ60が使用可能になる。同様に、FPGA内部の相互接続部からその(正)出力86にトライステート・イネーブル信号を結合して、トライステート・バッファ82とその(負)出力87をラッチ88に対して選択的に使用可能にするために、マルチプレクサ84が使用可能になる。トライステート・バッファ82が使用可能になると、マルチプレクサ60の出力62に提示されたデータが関連入出力ポート36'に向かって伝播される。制御信号PT0の代替状態では、マルチプレクサ60は線80を介して第1のLSSDレジスタ・ラッチ72に格納されたデータを出力し、マルチプレクサ84は線94を介して第2のLSSDレジスタ・ラッチ88に格納されたデータに応じてトライステート・バッファ82を選択的に使用可能にする。したがって、制御信号PT0は、FPGA内部から関連入出力ポート36'へのデータ伝送を制御する。
【0054】
制御信号PR0は、関連LSSDレジスタ・ラッチ72がどのデータを受け取るかを判定するためにマルチプレクサ64および68を制御する。マルチプレクサ64は、FPGAの関連内部相互接続部にデータを伝播するために、関連入出力ポート36'または第1のLSSDレジスタ・ラッチ72の出力80をマルチプレクサの出力66に選択的に結合する。マルチプレクサ68は、マルチプレクサ60またはマルチプレクサ64からデータを受け取るために第1のLSSDレジスタ・ラッチ72の1次入力70を結合するするかどうかを判定する。このようにして、送信および受信制御信号PT0およびPR0は、関連LSSDシフト・レジスタ・ラッチがFPGA内部から(MUX60および68を介して)データを受け取るか、関連入出力ポート36'から(MUX64および68を介して)データを受け取るかをそれぞれ制御する。ただし、図4は、既知のLSSDシフト・レジスタ動作を提供するのに必要なA、B、Cの各LSSDクロックを示していないことに留意されたい。図5の概略図に示すように、図4のシフト・レジスタ・ラッチにはこのようなそれぞれのLSSDクロックの結合が仮定されている。
【0055】
本発明の好ましい実施例では、入出力バウンダリ・スキャン・チェーン26の関連セルのLSSDシフト・レジスタ・ラッチ72、88のそれぞれがマスタ・ラッチL1とスレーブ・ラッチL2とを含む。図5を参照すると、マスタ・ラッチL1は、トライステート・インバータ98および100を含む。ラッチ・トライステート・インバータ98、100は、その関連LSSD−Aクロックに応じて使用可能になると、トライステート・インバータ102を介してシリアル入力76からシリアル入力データを受け取る。あるいは、マスタ・ラッチL1は、関連LSSD−Cクロックに応じて使用可能になると、トライステート・インバータ96を介して1次入力70から入力データを受け取る。
【0056】
スレーブ・ラッチL2は、ラッチ・トライステート・インバータ106とインバータ108とを含む。マスタ・ラッチL1のデータは、その関連LSSD−Bクロックに応じて使用可能になると、トライステート・インバータ104を介してスレーブ・ラッチL2に結合される。スレーブ・ラッチのデータはシリアル出力78、80で提供される。同様のLSSD機能性を提供する限り、入出力バウンダリ・スキャン・チェーン26内で代替LSSDシフト・レジスタ・ラッチと信号経路指定方式も使用可能であることに留意されたい。
【0057】
図1、図2、図3、および図6(イ)を参照すると、入出力バウンダリ・スキャン・チェーン26は、テスト回路22の制御レジスタ28へのデータの提供に関連する、その一部分を含む。図6(イ)のデフォルト入出力バウンダリ・スキャン・チェーン構成では、入出力バウンダリ・スキャン・チェーン26の8つのレジスタがその入出力リング部分58と直列になっている。入出力バウンダリ・スキャン・チェーン26の最後のビット48は、制御レジスタ28のレジスタCRL0へのC_TEST制御データの提供に関連付けられている。入出力バウンダリ・スキャン・チェーン26の次の部分58は、機能接続部36と関連入出力ポートへの入出力リング・バウンダリ・スキャン・アクセスを提供する。最後に、入出力バウンダリ・スキャン・チェーン26の残りの部分42、44、46は、図6(ロ)に詳細が示されている制御レジスタ28の残りの7つのレジスタCRL1、CRL2、・・・CRL7にロードすべき制御データの7つの追加ビットの提供に関連付けられている。
【0058】
図6(ロ)を参照すると、低減入出力バウンダリ・スキャン・チェーン構成では、バウンダリ・スキャン・チェーン26から入出力リング部分58が省略されている。したがって、制御レジスタ28のロードに関連する8つのデータ・ビットは、入出力リング58の複数のLSSDレジスタによりデータをクロックする必要はなく、8つのクロック・サイクルで低減バウンダリ・スキャン・チェーン26にシリアルにロードすることができる。
【0059】
図6(ハ)に示すように、他の低減入出力バウンダリ・スキャン構成では、バウンダリ・スキャン・チェーン26が単一バイパス・レジスタ42を含み、シリアル・データが入出力バウンダリ・スキャン・チェーン26の残りの部分をバイパスする。直列に結合された関連入出力バウンダリ・スキャン・チェーンに2つのFPGAをまとめて結合した場合、第1のFPGAの入出力バウンダリ・スキャン・チェーン全体を通過する必要はなく、第2のダウンストリームFPGAにシリアル・データをロードできるように、第1のアップストリームFPGA用としてこの単一バイパス・レジスタ構成を選択することができる。
【0060】
【表2】
FPGA制御レジスタの制御信号
制御レジスタ
-BP 1ビット・スキャン・チェーン・バイパス制御
-CNTL 制御レジスタとバウンダリ・スキャンのステアリング
-PR0, -PT0 バウンダリ・スキャン・ラッチ・アプリケーションとステアリング
-RI FPGAレシーバ禁止制御
-DI1 FPGA機能ドライバ禁止制御
-DI2 FPGA専用ドライバ禁止制御
-C_TEST FPGAチップのMUXテスト可能性制御
【0061】
テスト回路22の制御レジスタ28は様々な制御信号を提供する。図6(ロ)と表2を参照すると、制御レジスタ28は、図6(ハ)に示すように単一ビット・バイパス・レジスタ42を含む低減バウンダリ・スキャン・チェーン構成を可能にするためにバイパス制御信号BPを提供するためのレジスタCRL7を含む。もう1つのレジスタCRL6は、入出力リング58に関連するLSSDレジスタを介してまたはそれをバイパスして入出力バウンダリ・スキャン・チェーンのデータを選択的にチャネリングするための制御信号CNTLを提供する。制御レジスタ28の他の2つのレジスタCRL5、CRL4は、図4に関連して前述したように、入出力バウンダリ・スキャン・チェーン26のセルでマルチプレクサの構成を制御するためにレシーバおよび送信制御信号PR0、PT0をそれぞれ提供する。他の3つのレジスタCRL1、CRL2、CRL3は、表1に関連して前述したように、様々な入出力ポートのそれぞれのドライバおよびレシーバ機能を禁止するために関連のドライバおよびレシーバ禁止制御信号DI2、DI1、RI1をそれぞれ提供する。制御レジスタ28の最後のレジスタCRL0は制御信号C_TESTを提供するが、これはそのテスト中にFPGAのパスゲート・マルチプレクサ内の所与のプルダウン・デバイスを選択的に活動化する。
【0062】
図7ないし図8は、そこからデータを受け取るために入出力バウンダリ・スキャン・チェーン26の関連部分に結合された第3のレベルのラッチとしての制御レジスタ28を示している。適切なデータが入出力バウンダリ・スキャン・チェーン26の適切なレジスタ42、44、46、48にロードされると、制御レジスタ28にデータをクロックするためにMTESTが活動化される。ただし、データは制御レジスタ28の内容に影響せずに入出力バウンダリ・スキャン・チェーン26を通過することができ、MTESTがハイに移行するか、またはMTESTとTESTMOREの両方がアクティブ・ローになると、制御レジスタ28が更新されることに留意されたい。
【0063】
マルチプレクサ56は、入出力バウンダリ・スキャン・チェーン26の最後のシフト・レジスタ・ラッチ48のシリアル入力を決定する。マルチプレクサ56は、バウンダリ・スキャン制御信号CNTLの状態に応じて、入出力リング部分58のシリアル入力か、または入出力バウンダリ・スキャン・チェーン26の一部分46のシリアル出力のいずれかに、このシリアル入力を結合する。マルチプレクサ54は、FPGA用のシリアル出力SOを選択する。単一ビット・バイパス・レジスタ構成の場合、マルチプレクサ54は、バイパス制御信号BPの状態に応じて、入出力バウンダリ・スキャン・チェーン26の第1のレジスタ・ラッチ42のシリアル出力にFPGAのシリアル出力SOを選択的に結合する。あるいは、マルチプレクサ54は、シリアル出力データを提供するために入出力バウンダリ・スキャン・チェーン26の最後のレジスタ48のシリアル出力にFPGAのシリアル出力SOを結合する。
【0064】
始めに電源オン時に、制御レジスタはすべて「1」に初期設定され、それによりFPGAはMTEST=1によってその通常機能モードになる。制御レジスタに新しい値をロードすると、関連のLSSDAおよびLSSDBクロック対により、すべての制御データが入出力バウンダリ・スキャン・チェーン26にスキャン・インされる。C_TEST用のデータは最初にスキャン・インされるビットであり、バイパス制御信号BP用のデータは最後にスキャン・インされるビットである。
【0065】
図9は、その制御レジスタ28に関連する部分が入出力リング部分58と直列になっている、入出力バウンダリ・スキャン・チェーンの動作に関連するタイミング図を示す。この動作シーケンス中、拡張テスト・インタフェース制御信号TESTMOREと、バイパス制御信号BPと、バウンダリ・スキャン・ステアリング制御信号CNTLはすべて非活動状態であると想定されている。したがって、マルチプレクサ56(図7)は最後のレジスタ48へのシリアル入力として入出力リング部分58のシリアル出力を選択し、マルチプレクサ54はFPGAのシリアル出力SOとして入出力バウンダリ・スキャン・チェーンの最後のレジスタ48のシリアル出力からのデータを選択する。このタイミング図は、3つの間隔200、202、204から構成されている。間隔200中、データはLSSDAおよびLSSDBクロック対のシーケンスによって入出力バウンダリ・スキャン・チェーンにシリアルにロードされる。入出力バウンダリ・スキャン・チェーンへのシリアル・ロード後、入出力バウンダリ・スキャン・チェーン26の関連セルのデータに応じて、MTESTの後続パルス「N」が制御レジスタ28を更新する。
【0066】
間隔202中、LSSDCクロック・パルスは、関連の1次入力に提示された通りに入出力バウンダリ・スキャン・チェーン26にデータを捕捉するためにスナップ・ショットを提供する。図8に示すように、入出力バウンダリ・スキャン・チェーンの制御レジスタ28に関連する部分は、そのそれぞれの1次入力に提示されたデータに応じて更新される。たとえば、バイパス制御信号BPに関連するセル42は、その1次入力がVDDに結合され、したがって、LSSDCクロック・パルスに応じて「1」に更新される。同様に、次の部分44の3つのセルは、差し迫ったバウンダリ・スキャン・チェーン・シーケンスの準備としてバウンダリ・スキャン・ステアリング制御信号CNTLとマルチプレクサ制御信号PR0、PT0を「1」に更新するために、そのそれぞれの1次入力がVDDに結合されている。制御信号RI、DI1、DI2、C_TESTを提供するための制御レジスタ26へのデータのロードに関連する部分46、48の残りのセルは、その現行値を保持するようにそれぞれの1次入力がそれぞれのシフト・レジスタ出力に結合されている。LSSDCクロック・パルス後、MTESTのもう1つのパルス「N」は、それぞれのL2ラッチを介して部分42、44、46、48のL1ラッチ値を制御レジスタ28に転送する。MTESTのパルス「N」中、L1ラッチ値は、入出力バウンダリ・スキャン・チェーンの制御レジスタに関連するセルについてのみ、関連L2ラッチをフラッシュされる。入出力バウンダリ・スキャン・チェーンの他のセルでは、差し迫ったバウンダリ・スキャンの準備として関連L1ラッチからそれぞれのL2ラッチへデータを転送するために、後続のLSSDBクロック・パルスが必要である。
【0067】
間隔204中、入出力バウンダリ・スキャン・チェーンからデータをスキャン・アウトし、同時に新しいデータをスキャン・インするために、LSSDAおよびLSSDBクロック対のシーケンスが提供される。その後、MTESTのパルス「N」がもう一度新しい値で制御レジスタを更新する。
【0068】
入出力バウンダリ・スキャン・チェーンの代替低減構成では、図10に示すように、制御レジスタのロードとFPGAのテストに別のシーケンスの信号を使用している。間隔206中、入出力バウンダリ・スキャン・チェーンのテスト動作を可能にするために、MTESTはローに保持される。入出力バウンダリ・スキャン・チェーンで「1」という値をフラッシュするように、LSSDAおよびLSSDBクロック信号は、入出力バウンダリ・スキャン・チェーンのシリアル入力に「1」を印加する間、ともにハイに保持される。間隔208中。LSSDAクロックはハイに保持され、LSSDBクロックはシリアル入力に「0」が印加される間、ローに保持される。したがって、入出力バウンダリ・スキャン・チェーンの第1のL1ラッチには「0」という値がロードされる。次に、LSSDAクロックはローを返し、LSSDBクロックの「B1」パルスは第1のL1ラッチの値「0」を第1のL2ラッチにシフトする。第2の対のLSSDAおよびLSSDBクロック・パルスは、新しい「1」という値を第1のセルにスキャン・インする間に、入出力バウンダリ・スキャン・チェーンの第1のセルの値「0」をその第2のセルに転送する。LSSDBクロックの第2の「B2」パルス後、入出力バウンダリ・スキャン・チェーンの第1および第2のセルには、1と0がそれぞれロードされる。
【0069】
間隔210中、MTESTの「N1」パルスは、入出力バウンダリ・スキャン・チェーンの関連セルのデータに応じて制御レジスタを更新する。制御レジスタのビット・バイパスBP部分とバウンダリ・スキャン・ステアリング制御CNTL部分は、1と0でそれぞれ更新される。バウンダリ・スキャン・ステアリング制御信号CNTLをローに保持した状態で、マルチプレクサ56(図7を参照)は入出力バウンダリ・スキャン・チェーンの一部分46のシリアル出力を入出力リング部分58をバイパスして一部分48のシリアル入力に印加する。後続のバウンダリ・スキャン中、それに応じて制御レジスタを更新するために、制御レジスタのロードに関連する入出力バウンダリ・スキャン・チェーンのセルに新しいデータがスキャン・インされる。
【0070】
前述のように、応用例によっては2つまたはそれ以上のフィールド・プログラマブル・ゲート・アレイが使用され、第1のアップストリーム・フィールド・プログラマブル・ゲート・アレイに関連する入出力バウンダリ・スキャン・チェーンが第2のダウンストリームFPGAの入出力バウンダリ・スキャン・チェーンにシリアルに接続される。たとえば、テスト中に、第2のFPGAの入出力バウンダリ・スキャン・チェーンをロードし、第1のFPGAの入出力バウンダリ・スキャン・チェーンをバイパスすることが必要になる場合もある。したがって、第1のFPGAでは、単一ビット・バイパス・レジスタのみを含む代替低減入出力バウンダリ・スキャン・チェーン構成を選択するために、単一ビット・バイパス制御信号BPが更新されている。図11は、このバイパス構成の提供に関連する信号のシーケンスを示すものである。間隔212中、入出力バウンダリ・スキャン・チェーンのセルは「1」でフラッシュされる。間隔214中、LSSDAおよびLSSDBクロック・パルス対は、第1のFPGAの入出力バウンダリ・スキャン・チェーンの第1のセルに「0」という値をロードする。MTESTのパルス「N1」は第1のFPGAの制御レジスタを更新し、バイパス制御信号BPを「0」に設定する。
【0071】
間隔216中、後続のバウンダリ・スキャン動作BS1により、データは第1のFPGAの単一ビット・バイパス・セルを通過して、第2のダウンストリームFPGAに関連する入出力バウンダリ・スキャン・チェーンに入る。同じバウンダリ・スキャン動作BS1中、バイパス制御信号に関連する第1のFPGAの1つのバイパス・レジスタに新しいデータをロードすることができ、したがって、MTESTの後続N2パルスはバイパス制御信号BPの状態を変更することができる。上記の例では、それぞれのバウンダリ・スキャン・チェーンがシリアルに接続された第1および第2のFPGAについて説明してきた。ただし、このようなFPGAが3つ以上の場合にも同一原理が適用可能であることに留意されたい。
【0072】
次の項では、FPGAの様々なテスト構成と、それに関連する制御レジスタの信号用の値について説明する。
【0073】
【表3】
FPGA制御レジスタの状態表
(電源オンまたは構成MOD0後のデフォルト値は「BSまたはSN」である。)
状態 -BP CNTRL -PR0,-PT0 -RI,-DI1,-DI2 -C_TEST
BSまたはSN 1 1 (1,1) (1,1,1) 1
CARD 1 1 (1,0) (1,1,1) x
CHIP 1 1 (0,1) (x,0,1) 0
ISLT 1 1 (x,x) (0,0,0) 1
REG-ONLY 1 0 (1,1) (1,1,1) 1
BYPASS 0 x (1,1) (1,1,1) 1
【0074】
制御レジスタによってもたらされるテスト構成:
制御レジスタの制御信号のすべて(すなわち、BP、CNTL、PR0、PT0、RI、DI1、DI2、CTEST)が1の場合、表3に示すように、制御レジスタは、バウンダリ・スキャンBSまたはスナップ・ショットSN動作を可能にするためのその通常状態またはデフォルト状態になっている。バウンダリ・スキャン動作では、LSSDAおよびLSSDBクロック対が入出力バウンダリ・スキャン・チェーンを通ってデータを伝播する。スナップ・ショット動作では、LSSDCクロック・パルスが関連の1次入力で受け取った通りに入出力バウンダリ・スキャン・チェーンにデータを捕捉する。入出力ポートに関連するレシーバまたはドライバのいずれも禁止されないように、レシーバおよびドライバ禁止制御信号RI、DI1、DI2はすべてハイになる。マルチプレクサ制御信号PT0、PR0(図4に関連して前述したように入出力バウンダリ・スキャン・チェーンに関連するセルのマルチプレクサを制御するため)はハイになり、入出力バウンダリ・スキャン・チェーンのそれぞれのシフト・レジスタ・ラッチを関連の入出力データ経路から引き離しておく。
【0075】
送信制御信号PT0がローに設定されると、入出力バウンダリ・スキャン・チェーンはパラメトリック・カード・テストCARD用に構成される。マルチプレクサ60(図4を参照)は、トライステート・バッファ82を介して入出力ポート36に向かって出力すべきデータとして、第1のLSSDレジスタ72のスレーブ・ラッチL2のデータを選択する。マルチプレクサ84は、第2のLSSDレジスタ88のスレーブ・ラッチL2のデータ内容に応じてトライステート・バッファ82を使用可能にする。レシーバ制御信号PR0はハイのままになるので、したがって、LSSDCクロック・パルスは、マルチプレクサ64および68を介して入出力ポート36'から受け取った通りに第1のLSSDレジスタ72のマスタ・ラッチL1にCARDデータを捕捉する。第2のLSSDレジスタ88のマスタ・ラッチL2は、前のバウンダリ・スキャン動作中にスキャン・インした通りに、その関連スレーブ・ラッチL2によってそれに提示されたトライステート制御信号を捕捉する。
【0076】
もう一度表3を参照すると、CHIPテスト中、レシーバ制御信号PR0と第1のドライバ禁止制御信号DI1はともにローに保持され、チップ内からのデータはその関連機能入出力ポートを励起できなくなる。レシーバ制御信号PR0をローに保持した状態で、マルチプレクサ64(図4)は、第1のLSSDレジスタ72のスレーブ・ラッチL2によって提供された通りに、データをFPGA(チップ)に転送する。PT0をハイに保持した状態で、LSSDCクロック・パルスは、マルチプレクサ60および68を介してFPGA(チップ)内から受け取った通りに第1のLSSDレジスタ72のマスタ・ラッチL1にデータを捕捉する。第2のLSSDレジスタ88のマスタ・ラッチL1は、マルチプレクサ84を介してチップ内から提供された通りにトライステート制御データを捕捉する。
【0077】
チップ分離テストISLTでは、関連のレシーバおよびドライバ禁止制御信号RI、DI1、DI2をアクティブ・ローに保持することにより、入出力ポートのすべてのレシーバとドライバが禁止される。この条件下では、それぞれの入出力ポートが分離されたハイ・インピーダンス状態用に設定される。したがって、それに関連するシンク電流またはソース電流を検出することによって、ポートの障害を判定することができる。
【0078】
表3の残りの2つの状態は、レジスタ専用状態REG-ONLYとバイパス状態BYPASSを含む。レジスタ専用状態REG-ONLYは、前述のようにバウンダリ・スキャン・ステアリング制御信号CNTLがローに設定されたときに得られ、入出力バウンダリ・スキャン・チェーンは制御レジスタのロードに関連する部分のみを含むその低減構成用に設定される。バイパス状態BYPASSでは、前に説明したように、入出力バウンダリ・スキャン・チェーンは単一ビット・バイパス・レジスタのみを含むその追加低減構成になっている。
【0079】
テストに関連するFPGAの追加の特徴:
図12を参照すると、FPGA10のプログラマブル資源12は、56×56のアレイに配置された複数のプログラマブル論理セルを含む。この論理セルのアレイはセクタ112に分割され、それぞれのセクタは8×8にグループ化した論理セルを含む。この場合も、このような論理セルの詳細については、"Programmable Logic Cell"という名称の米国特許出願の上記の部分に記載されている。
【0080】
図13は、プログラマブル論理セル1161,1〜1168,8からなる単一セクタ112を示している。たとえば、論理セル1161,6は、垂直相互接続導体118aおよび118bと水平相互接続導体120aおよび120bによって囲まれている。アレイ内の任意の2つの論理セルと関連入出力ポートとの間の接続を行うために、アレイの様々な行と列の間には、同様の水平および垂直相互接続導体が位置決めされている。すべての相互接続導体が相俟ってプログラマブル・アレイのプログラマブル相互接続ネットワーク全体が形成され、そのネットワークは"Programmable Array Interconnect Network"という名称の米国特許出願の上記の部分により実現することができる。以下に詳述するように、ネットワーク内でレピータまたはスイッチ回路136を使用することができる。
【0081】
それぞれの論理セル116のプログラマブル・マルチプレクサ(図示せず)は、それぞれの論理セルと論理セルを取り囲むバスの関連信号線との間の選択結合を行う。これらのマルチプレクサは、パスゲート・マルチプレクサとして実現され、フィールド・プログラマブル・ゲート・アレイ内の様々なマルチプレクサのテストと障害分離を支援するために制御レジスタ28によって提供されるマルチプレクサ・テスト制御信号C_TESTに応じて選択的に使用可能になる追加のプルダウン(またはプルアップ)パスゲート・デバイス(図示せず)を含む。このようなプルダウン(またはプルアップ)マルチプレクサの特徴と関連のテスト手順の詳細については、"Modeling and Test Generation for MOS Transmission Gate Stuck-Open Faults"(IEE PROCEEDINGS-G, Vol. 139, No. 1, pp. 17-22, (1992年2月))というタイトルのM. Belkadi他による参考文献に記載されているが、この参考文献は参照により本明細書に組み込まれる。
【0082】
プログラマブル・ゲート・アレイ内の1行分のコア・セルの一方の側に関連するバス120aを図14に示す。レピータ136aなどのレピータまたはスイッチ回路は、8つのコア・セルごとの、すなわち、各セクタ境界ごとの、ローカル・バスL1および高速バスE1に関連付けられている。レピータ・ラッチ150(矢印で表す)は関連ローカル・バス内の各レピータ回路に並列に設けられている。たとえば、レピータ・ラッチ1501は、ローカル・バスL1の一部分152と一部分156との間に結合されたLSSDレジスタを含む。同様のレピータ・ラッチ1502、1503、1504は、レピータ回路136bおよび136c内のローカル・バスL2、L3、L4にそれぞれ関連付けられて示されている。
【0083】
レピータ・スキャン・チェーン:
図14および図1を参照すると、複数のレピータ・ラッチ1501、1502、・・・15024は、まとめてシリアル・スキャン・チェーン、たとえば、レピータ・スキャン・チェーン301として構成されている。このレピータまたは相互接続のスキャン・チェーンにより、それぞれのレピータ・ラッチへのシリアルでのデータのスキャン・インとそれからのスキャン・アウトが可能になる。順次レピータ・ラッチのそれぞれは、そのシリアル出力が関連シリアル・スキャン・チェーン内の後続レピータ・ラッチのシリアル入力に接続されている。スキャン・チェーン(301)の第1のレピータ・ラッチ(1501)のシリアル入力は関連レピータ・スキャン・チェーンのスキャン入力を提供し、スキャン・チェーン(301)の最後のレピータ・ラッチ(5024)のシリアル出力は関連レピータ・スキャン・チェーンのスキャン出力を提供する。レピータ・スキャン・チェーン30のシリアル入力とシリアル出力は、関連の列および行のスキャン・チェーンに応じて識別される。レピータ・スキャン・チェーンの7つの列へのシリアル入力は、相互接続部SITOP(0〜7)によって提供される。列レピータ・スキャン・チェーン用の関連シリアル出力は相互接続部SOBOT(0〜7)によって提供される。行レピータ・スキャン・チェーン用のシリアル入力と出力は同様に相互接続部SIRIGHT(0〜7)とSOLEFT(0〜7)によってそれぞれ提供される。レピータ・スキャン・チェーン内のそれぞれのレピータ・ラッチは、それぞれのレピータ・スキャン・チェーンの同期および並列LSSDスキャン動作を可能にするために、LSSDA、LSSDB、LSSDCクロックを共用する。それぞれのレピータ・スキャン・チェーンのLSSDクロックは、MTESTがアクティブ・ローのときに関連の入出力相互接続部LSSDA、LSSDB10、LSSDCを介して提供される。レピータ・スキャン・チェーンの動作は、レピータ・スキャン・チェーン制御REPTにより可能になる。レピータ・スキャン・チェーンのこれらの相互接続部へのアクセスは、MTESTとTESTMORE制御信号がともにアクティブ・ローのときに関連の複数使用入出力ポート「m」で提供される。
【0084】
各レピータ・ラッチは、その1次出力が関連ローカル・バスのその一部分に選択的に結合できるようにするために、その関連構成データに応じて個別にプログラム可能である。各レピータ・ラッチ用の構成データは、構成SRAMメモリ14の関連メモリ・セル内に格納される。レピータ・スキャン・チェーンの詳細には、"Programmable Array Interconnect Latch"という名称の米国特許出願の上記の部分に記載されている。
【0085】
構成スキャン・チェーン:
前述のように図1を参照すると、構成論理回路16とデコーダ/シーケンサ18により、FPGA10のプログラマブル資源を構成するために構成データをSRAM14にロードすることができる。上記の参考文献"Application Note AT6000 Series Configuration"と"Versatile and Efficient Cell-to-Local Bus Interface in a Configurable Logic Array"という名称の米国特許第5298805号では、関連のSRAMメモリ14にアクセスするための構成論理回路の既知の動作モードが開示されている。デコーダ/シーケンサ18は、"Continuous Address Structure With Folding"という名称の米国特許出願の上記の部分に記載されているように、FPGAの様々なプログラマブル資源12に対しメモリ14を効率よく割り振ることができる。LSSDレジスタ・ラッチは、構成論理回路の様々な領域の境界を示しセグメント化するシリアル・スキャン・チェーンとして配置されている。この構成スキャン・チェーン24により、構成論理回路のシリアル・スキャン・アクセスと機能検証が可能になる。
【0086】
構成スキャン・チェーン24のLSSDシフト・レジスタは、E. B. Eichelberger他による"A Logic Design Structure For LSI Testability"(14th Design Automation Conference Proceedings, 1977年6月20日、21日、22日、New, Orleans, LA, IEEE Cat. No. 77, CH 1216-1C, pp. 462-468)、R. W. Bassett他による"Boundary-Scan Design Principles For Efficient LSSD ASIC Testing"(IBM Journal of Research and Development, Vol. 34, No. 2/3, 1990年3月/5月、pp. 339-354)、Eichelbergerに対して交付された"Level Sensitive Logic System"という名称の米国特許第3783254号という参考文献に示されている原理に応じて実現され動作する。
【0087】
表1を参照すると、構成スキャン・チェーン24へのアクセスは、構成スキャン入力SICONFIGおよび構成スキャン出力SOCONFIGを介して提供される。これらのスキャン・ポートにより、構成スキャン・チェーンとの間のLSSDアクセスが可能になる。構成スキャン・チェーンの動作は、その関連構成制御信号CONFGに応じて選択的に可能になる。構成スキャン・チェーンの動作に関連するクロック信号としては、LSSDA、LSSDCと、LSSDB10、LSSDB1、LSSDB2、LSSDB3などがある。これらの関連クロック相互接続部は、MTESTとTESTMOREがともにアクティブのときに専用「d」および複数使用「m」入力ポートで使用可能になる。
【0088】
既知のFPGAの場合、その動作は、通常、所望のユーザ定義の回路を実現するためにFPGAを構成するための関連構成論理回路によりSRAM14に構成データをロードすることを伴う。その結果得られる回路が正しく機能しない場合、FPGAのどこで問題が発生しているかは明らかではなかった。適正な回路構成および動作は、それぞれのFPGAサブシステムに依存する。SRAM14に構成データを適切にロードするためには、構成論理回路が適正に動作していなければならない。SRAM14は、構成データを格納し、関連構成データに応じてFPGAのプログラマブル資源を励起できるものでなければならない。最後に、プログラマブル資源と相互接続部は、ユーザ定義回路内にその所望の機能性を実現するためにプログラム可能かつ動作可能でなければならない。したがって、FPGAの様々なサブシステムの相互依存度が高くなる。本発明によれば、FPGA内の様々なサブシステムの相互依存度を考慮に入れて、FPGAの各サブシステムの適正な機能性を系統的に判定するために、一連のテストが適当な分割征服方式で実現される。
【0089】
この説明の次の部分では、上記で特徴づけられた様々なサブシステムによりFPGAをテストするためのテスト方法について説明する。
【0090】
テスト方法:
FPGAのテストを実行する場合、外部テスタはFPGAのすべてのピンまたはその縮小セットにアクセスすることができる。図15は、外部テスタがFPGAのすべてのピンにアクセスする場合のタイミング図を示している。MTESTがローの場合、FPGAはそのテスト・モードになっており、LSSDA、LSSDC、LSSDBクロック・シーケンスはFPGA内のそれぞれのスキャン・チェーンのLSSD動作を提供する。間隔T中にTESTMOREがローになっている間、複数使用入出力ポート(表1を参照)に関連する入出力バウンダリ・スキャン・チェーンのその部分のデータは関連の入出力相互接続部に印加されない。ただし、機能入出力ポート「bs」に関連する入出力バウンダリ・スキャン・チェーンの残りの部分のデータは、受信および送信マルチプレクサ制御信号PR0およびPT0の状態に応じて、それぞれの入出力相互接続部に印加される。さらに、TESTMOREがローの場合、レシーバおよびドライバ禁止制御信号RI、DI1、DI2と、チップ・マルチプレクサ・テスト制御信号C_TESTを受け取るために直接入力が使用可能になる。間隔T後、MTESTはハイに戻り、直接入力制御信号に関連する制御レジスタ28のラッチは、間隔T中に直接印加された制御信号用の値を提供する。
【0091】
FPGAの代替テスト動作では、外部テスタはテスト中にFPGAの専用「d」および複数使用「m」入出力ポートにのみアクセスする。図16を参照すると、外部テスタは、PR0、PT0、RI、DI1、DI2、C_TEST用の所望の値をそこにロードするために間隔218中に入出力バウンダリ・スキャン・チェーンのLSSD動作を行う。次に、これらの値はMTESTのパルス「N」によって制御レジスタ28にラッチされ、表3に関連して前述したようにFPGA用の所望のテスト状態(すなわち、スキャン、チップ、カード、または分離テスト)を確立する。
【0092】
間隔220中、外部テスタに拡張テスト・インタフェース、すなわち、複数使用ポート「m」を提供し、FPGAの追加テストを可能にするために、TESTMOREはローに保持される。外部テスタは、(後述するように)間隔220中にFPGAをテストするために所与のLSSDテスト動作を実行し、レシーバおよびドライバ禁止制御信号に必要な値を直接提供する。TESTMOREがローの場合にレシーバおよびドライバ禁止制御信号に提供された値は、その後のFPGAのバウンダリ・スキャン更新または構成によって変更されない限り、TESTMOREがハイに戻った後もそのまま有効になる。間隔222は、図9に関連して前述した間隔202に対応する。
【0093】
テスト中に外部テスタによってFPGAのピンのすべてまたは縮小セットのいずれがアクセスされるかにかかわらず、図15および図16の間隔T中に1組の各種LSSDテスト動作を提供することができる。図17を参照すると、TESTMOREがアクティブ・ローのときに、様々なレピータ・スキャン・チェーン30の動作を可能にするためにREPTをアサートすることができる。間隔224中、LSSDAおよびLSSDBクロック・シーケンスは、それぞれのスキャン入力、すなわち、SITOP(0〜7)およびSIRIGHT(0〜7)を介してレピータ・スキャン・チェーンにデータをスキャン・インする。次に、レピータ・スキャン・チェーンの各LSSDレジスタの内容は、SRAM14に格納されたそれぞれのレピータ・ラッチ構成データに応じて、対応するローカル・バス・セグメントに印加される。
【0094】
間隔226中、LSSDCクロック・パルスは、それぞれのシフト・レジスタの1次入力に提示された通りに様々なバス・セグメントのデータをレピータ・スキャン・チェーンに捕捉する。後続のLSSDBクロック・パルスは、差し迫ったスキャン・アウトの準備として、捕捉したデータをLSSDレジスタのマスタ・ラッチからそれぞれのスレーブ・ラッチにシフト・インする。間隔228中、LSSDAおよびLSSDBクロック・パルスからなるシーケンスは、関連のスキャン出力SOBOT(0〜7)およびSOLEFT(0〜7)を介して様々なレピータ・スキャン・チェーンからデータをスキャン・アウトする。
【0095】
プログラマブル相互接続ネットワークのバス構成をテストするためにこのようなレピータ・スキャン・チェーン動作を使用する。既知のデータが様々なレピータ・スキャン・チェーンにスキャン・インされ、バス相互接続部の関連セグメントに印加される。バス相互接続部は、同一または異なるレピータ・スキャン・チェーンのそれぞれのLSSDシフト・レジスタ・ラッチの1次出力と1次入力との間でデータを伝播するために事前に構成されている。次に、データは、受信側LSSDシフト・レジスタ・ラッチによって捕捉され、回復され、バス相互接続部のそれぞれのセグメントがデータを伝播するために適切に機能しているかどうかを判定するために印加したデータと比較される。
【0096】
代替応用例では、FPGAの所与のプログラム済み論理回路のテスト中にレピータ・スキャン・チェーンが使用される。このような応用例では、図17の間隔224と226の間に追加のシステム・クロック動作(図示せず)を設けることもできる。既知のデータは、所与のレピータ・スキャン・チェーンにスキャン・インされ、所与のプログラム済み論理回路に印加される。次に、所与のデータをそこで処理するために、任意のシステム・クロック動作を設けることもできる。所与のプログラム論理回路による適切な処理の後、後続のLSSDCクロック・パルスが所与のプログラム済み論理回路によって提供されたデータを受信側レピータ・スキャン・チェーンに捕捉する。その後、この捕捉結果データはスキャン・アウトされ、回復され、所与のプログラム済み論理回路の適正な機能性を判定するために分析される。
【0097】
図15および図16のタイミング図の間隔T中に実行可能なもう1つのLSSD手順は、構成論理回路16、18をテストするための構成スキャン・チェーン24(図1)の動作を含む。図18のタイミング図の間隔230では、構成スキャン・チェーンの動作を可能にするために構成制御信号CONFGがローに保持される。そのシリアル入力SICONFIGに応じてデータを構成スキャン・チェーンにスキャン・インするために、LSSDAおよびLSSDBクロック・パルスからなるシーケンスが用意されている。このようにして、移行条件をシミュレートするためにそれに印加された既知のテスト・ベクトルによって、構成論理回路の状態マシンが所定の状態に設定される。理論上では、既知のテスト・ベクトルに応じて状態マシンが所定の状態から後続の状態に移る必要がある。間隔232中、LSSDCクロック・パルスの次に、関連状態マシンのデータを適切に捕捉するために時間オフセットが変化する一連の後続LSSDBクロック・パルスが続く。複数のBクロックは、構成論理回路の様々なドメインに関連付けられ、構成論理回路のタイミング要件と適合するように時間的にオフセットされている。したがって、構成スキャン・チェーンのLSSD設計は、"A Logic Design Structure For LSI Testability"、"Boundary-Scan Design Principles For Efficient LSSD ASIC Testing"、米国特許第3783254号という上記の参考文献に開示されたLSSD方法の要件に合致する。間隔234では、構成論理回路の結果データを回復するために、LSSDAおよびLSSDBクロック・パルスからなるシーケンスが構成論理スキャン・チェーンからデータをスキャン・アウトする。次に、印加したテスト・ベクトルに応じて構成論理回路が適当な状態に合わせて適切に順序付けられているかどうかを判定するために、結果データが検査される。
【0098】
本発明が使用する追加のテスト方法は、SRAM14のテストを可能にするための構成論理回路の既知の動作モードであるモード7を含む。表1を参照すると、MTESTはハイに保持され、FPGAを構成モードにするために構成選択信号CSはローに保持される。FPGAが構成モードになっている場合、構成論理回路は3つのモード選択入力M0、M1、M2を介してモード7状態に入る。モード7を選択すると、外部テスタは、関連のアドレスおよびデータ・ポート、すなわち、ADDR(0〜16)およびDATA(0〜7)を介してSRAM14への読取り/書込みアクセスが許可される。SRAM14をテストするため、まずSRAMの所与の位置に既知のデータが格納される。その後、この所与の位置からデータが読み取られ、SRAMが正しく動作しているかどうかを判定するためにそこに事前にロードされた既知のデータと比較される。モード7とそれに関連する動作については、"Application Note AT6000 Series Configuration"というタイトルの参考文献とGaverick他に交付された"Versatile and Efficient Cell-to-Local Bus Interface in a Configurable Logic Array"という名称の米国特許第5298805号の上記の部分に詳しく記載されている。
【0099】
本発明内で使用する様々なテスト方法について示してきたので、この開示の次の項では、プログラマブル・ゲート・アレイをテストするために上記のテスト方法を使用するテスト・シーケンスについて説明する。
【0100】
テスト・シーケンス:
前述のように、FPGAの様々なサブシステムは互いに相互依存度が高い。本発明は、このようなサブシステムの相関依存度を考慮に入れて、FPGAの様々なサブシステムをテストするための一連のテスト方法を提供する。電源オン時に本発明によるFPGAの内部SRAM14(図1を参照)は、そのすべての位置が既知の既存状態に設定されて初期設定される。外部テスタは、MTESTをローに保持することにより、FPGAをテストに使用可能にする。次に、外部テスタは、関連相互接続部であるスキャン・インSIと、スキャン・アウトSOと、それぞれクロック相互接続部LSSDA、LSSDB10、LSSDCに応じた適切なLSSDクロックとを介してスキャン・チェーンによってデータを伝播することにより、入出力バウンダリ・スキャン・チェーン26のシリアル・スキャンの機能性をテストする。入出力バウンダリ・スキャン・チェーンにスキャン・インされたシリアル・データは、その後、スキャン・アウトされ、回復される。次に、回復されたデータは、入出力バウンダリ・スキャン・チェーンの適正なスキャン機能性を判定するために、スキャン・インされたデータと比較される。
【0101】
次に、FPGAの入出力ポートは、そのデフォルト構成に応じてテストされる。入出力ポートは、SRAM14の関連位置に格納された構成データに応じてプログラム可能である。電源オン時にSRAM14は、既知のリセット状態に初期設定される。したがって、FPGAの入出力ポートはそのデフォルト構成になっている。前述のように、入出力バウンダリ・スキャン・チェーン26のセルに関連するマルチプレクサは、制御レジスタ28によって提供される送信およびレシーバ制御信号PT0およびPR0によってそれぞれ制御される。電源オン時にそれぞれの制御信号は既知のデフォルト状態に設定される。同様に、やはり制御レジスタ26によって提供されるレシーバおよびドライバ禁止制御信号(RI、DI1、DI2)は、入出力ポートのデフォルト構成をテストするのに必要なデフォルトの電源オン値を提供する。複数使用入出力ポート「m」は、拡張テスト・インタフェース制御信号TESTMOREをハイに保持することにより、その機能的設定に維持される。したがって、表1にリストしたバウンダリ・スキャン「bs」および複数使用ポート「m」を含む機能入出力ポートの機能性をそのデフォルト構成に応じてテストするために、入出力バウンダリ・スキャン・チェーンが使用される。
【0102】
それぞれのデフォルト構成に応じてFPGAの入出力バウンダリ・スキャン・チェーンと機能入出力ポートの機能性を判定すると、本発明のテスト・シーケンスは、関連の構成スキャン・チェーン24による構成論理回路16、18のテストに移行することが好ましい。テスト・イネーブル制御信号MTESTはローに保持され、拡張テスト・インタフェースである複数使用入出力ポート「m」を使用可能にするために拡張テスト・インタフェース制御信号TESTMOREもローに保持される。したがって、構成スキャン入力SICONFIG、構成スキャン出力SOCONFIG、ならびに関連LSSDクロック線LSSDA、LSSDB10、LSSDC、LSSDB1、LSSDB2、LSSDB3により、構成スキャン・チェーンへのアクセスが可能になる。構成スキャン・チェーンのLSSD動作は、構成イネーブルCONFGをローに保持することにより、可能になる。図18に関連して前述したように、関連の状態マシンの状態シーケンスをテストするために、所定のテスト・ベクトルが構成スキャン・チェーンにスキャン・インされ、構成論理回路に印加される。構成論理回路によってもたらされる結果データは、構成スキャン・チェーンを介して捕捉され、構成論理回路の適正な機能性を判定するために予想結果データと比較される。
【0103】
構成論理回路の機能性を判定すると、次のステップは、SRAM14をテストし、FPGAの様々なプログラマブル資源を構成するためにそこの構成データをロードして格納できる能力を検証することを含む。このテストを開始するため、テスト・イネーブル制御信号MTESTはハイに保持され、FPGAの構成動作モードを選択するために構成選択CSはローに保持される。次に、前述のようにモード7動作を可能にするために、適切なデータがモード選択入力M0、M1、M2に印加される。SRAMのモード7テスト中、そこに構成データを受け取って保持するためのSRAMの能力を検証するために、様々な所定のテスト・ベクトルがSRAMの様々な位置に書き込まれ、そこから読み取られる。この時点で、FPGAの構成論理回路とメモリ・サブシステムの機能テストは完了し、FPGAの機能サブシステムを構成するために構成データをSRAMのロードする能力の検証が完了している。
【0104】
従来のテストでは、構成論理回路とSRAMの機能性を判定する前に、それぞれのデフォルト構成に応じて入出力ポートのテストが行われていた。この場合、次のステップでは入出力ポートに戻り、それぞれの各種プログラマブル構成に応じて入出力ポートをさらにテストする。SRAM14には、テストすべき特定のプログラマブル構成の入出力ポートをプログラミングするのに必要な構成データがロードされる。このようなテスト中、入出力ポートの所望のバウンダリ・スキャン・パラメトリック・テストを可能にするために、レシーバおよびドライバ禁止制御信号RI、DI1、DI2と、マルチプレクサ受信および送信制御信号PR0、PT0が設定される。
【0105】
プログラマブル入出力ポートの構成例としては、高い方の電源電圧へのプロアップ・デバイスまたはアースへのプルダウンデバイスを使って構成されるか、あるいは所与の出力インピーダンスが得られるように構成された入出力ポートを含む。適切なデータを入出力ポートに送信してこのようなプログラム済み構成をテストするか、あるいは構成したデータをそこからラッチして回復するために、入出力バウンダリ・スキャン・チェーンが使用される。LSSDCクロック・パルスに応じてデータをラッチすると、入出力バウンダリ・スキャン・チェーンは、送信および受信制御信号PT0およびPR0の状態と、制御レジスタによってもたらされるレシーバおよびドライバ禁止制御信号RI、DI1、DI2の状態とに応じて、FPGAの内部データまたは入出力ポートのデータを捕捉する。
【0106】
テスト・シーケンスの次のステップでは、レピータ・スキャン・チェーン30のシリアル・スキャン機能性を検査する。複数使用入出力ポート「m」に関連する拡張テスト・インタフェースを可能にするために、テスト・イネーブル信号MTESTと拡張テスト・インタフェース・イネーブル信号TESTMOREがローに保持される。それぞれのレピータ・スキャン・チェーンの動作を可能にするために、レピータ・イネーブルREPTがローに保持される。シリアル・データは、それぞれのシリアル入力SITOP(0〜7)とSIRIGHT(0〜7)により、レピータ・スキャン・チェーンにスキャン・インされる。それぞれのレピータ・スキャン・チェーンによりシリアル・データをシフトするために、適切なLSSDAおよびLSSDBクロック・パルスが提供される。スキャン・アウトされたデータは回復され、レピータ・スキャン・チェーンのスキャン・シフト機能性を判定するためにスキャン・インされたデータと比較される。レピータ・スキャン・チェーンのシリアル・データ経路が検証された場合、次にFPGAのプログラマブル相互接続部のテスト中にレピータ・スキャン・チェーンが使用される。
【0107】
プログラマブル相互接続部をテストする場合、FPGAの入出力ポートと、入出力バウンダリ・スキャン・チェーン26のセルと、レピータ・スキャン・チェーン30のシフト・レジスタ・ラッチとの間の所与のプログラマブル相互接続部を構成するために、まず構成データがSRAM14(図1)にロードされる。より具体的には、機能入出力ポートとレピータ・スキャン・チェーンのシフト・レジスタ・ラッチとの間、入出力バウンダリ・スキャン・セルとレピータ・レジスタ・スキャン・チェーンのシフト・レジスタ・ラッチとの間、または第1の送信レピータ・スキャン・チェーンのシフト・レジスタ・ラッチと第2の受信レピータ・スキャン・チェーンの後続シフト・レジスタ・ラッチとの間で、プログラマブル相互接続部が構成される。その後、関連の入出力ポート、入出力バウンダリ・スキャン・セル、または第1の送信レピータ・スキャン・チェーン、あるいはそのすべてにより、それぞれの構成済み相互接続部の入力側にテスト・データが印加される。このテスト・データは、関連の入出力ポート、入出力バウンダリ・スキャン・セル、または送信レピータ・スキャン・チェーン、あるいはそのすべての適切な構成に応じて印加される。その後、それぞれの構成済み相互接続部の出力側の結果データは、関連の受信レピータ・スキャン・チェーンのシフト・レジスタ・ラッチにラッチされる。次に、このラッチされたデータがスキャン・アウトされ、回復され、構成済み相互接続部の適切な機能性を判定するために相互接続部の入力側に印加されたテスト・データと比較される。このように相互接続部を構成し、テスト・ベクトルを印加し、回復し、結果データと比較するというシーケンスは、FPGAのプログラマブル相互接続部の様々な構成の適正な機能性を判定するために、複数回続行される。
【0108】
代替手順では、テスト・データが構成済み相互接続部を通過する方向が反対になる。すなわち、送信レピータ・スキャン・チェーンと、関連の受信側入出力ポート、入出力バウンダリ・スキャン・セル、第1のレピータ・スキャン・チェーンとの間を通過する。複数の関連レピータ・スキャン・チェーン・ストリングを同時かつ並列に動作させることにより、複数の構成済み相互接続部を並列にテストすることが好ましい。
【0109】
次に、相互接続部のテストに使用したのと同様のステップを使用して、FPGA10の論理セル116がテストされる。SRAM14には、論理セルを所望の論理構成にプログラミングするための構成データがロードされる。FPGAのプログラマブル相互接続部は、入力と出力のレピータ・スキャン・チェーン間で論理セルのインタフェースを取るために同様に構成される。代替構成では、プログラマブル相互接続部のテストに関連して前述したものと同様に、関連の論理セル116との間でデータを印加/受信するために入力または出力レピータ・スキャン・チェーンの代わりに入出力ポートまたは入出力バウンダリ・スキャン・チェーンが使用される。図19を参照すると、論理セル116は関連レピータ・スキャン・チェーン30のシフト・レジスタ・ラッチ150間に結合された状態で示されている。
【0110】
論理セル116と関連の相互接続部を適切に構成すると、関連のレピータ・スキャン・チェーン30にシリアルに所定のテスト・ベクトルがスキャン・インされる。それぞれの相互接続部を介して関連のプログラム済み論理セル116にそのデータを印加するために、それぞれの構成データに応じてレピータ・スキャン・チェーンのシフト・レジスタ・ラッチが構成される。プログラム済み論理セル116による適切な処理後、論理セル116によってもたらされた結果データを関連レピータ・スキャン・チェーンの受信シフト・レジスタ・ラッチにラッチするために、LSSDCクロック・パルスがレピータ・スキャン・チェーンに印加される。結果データのラッチ後、結果データはレピータ・スキャン・チェーンからスキャン・アウトされ、所望の論理構成用にプログラミングされた論理セル116の適正な機能性を判定するために所定の予想値と比較される。代替構成では、FPGAの関連入出力ポートから直接または入出力バウンダリ・スキャン・チェーンの関連セルを介して、結果データを読み取ることができる。同時に動作させたそれぞれの複数の並列レピータ・スキャン・チェーンを介して複数の論理セルを並列にテストすることが好ましい。
【0111】
論理セル116の1つの構成をプログラミングしテストすると、その様々な構成のテストが完了するまで、論理セルの代替構成についてテスト手順が繰り返し実行される。このようにして、プログラマブル相互接続(パスゲート)マルチプレクサ、プログラマブル論理ゲート、プログラマブル・プルダウンおよびプルアップなど、論理セルの各プログラマブル要素がテストされる。論理セル116のパスゲート・マルチプレクサをテストする場合、"Modeling and Test Generation MOS Transmission Gate Stuck-Open Faults"というタイトルの参考文献の上記の部分に従ってその障害の検出が可能になるようにマルチプレクサの内部プルダウンを構成するために追加のチップ・マルチプレクサ・テスト制御信号C_TESTがローに設定される。
【0112】
論理セル116の同期論理要素、たとえば、図19に関してはDフリップフロップ143をテストする場合、論理セル116は、データがフリップフロップを通過するように構成される。論理セルは、クロック線144からシステム・クロック信号を受け取るようにさらに構成される。論理セルのテストに関連して前述したものと同様に、既知のテスト・データが入力レピータ・スキャン・チェーン30にスキャン・インされ、そのスキャン・チェーンは既知のデータを構成済み論理セル116に印加するように構成される。次に、様々な論理セル116のフリップフロップ143にデータをラッチするために、システム・クロック信号が提供される。次に、フリップフロップ143によって提供された結果データは、LSSDCクロック・パルスにより受信レピータ・スキャン・チェーンの関連シフト・レジスタ・ラッチに捕捉される。次に、ラッチされたデータがスキャン・アウトされ、回復され、フリップフロップ143の適正な機能性を判定するために印加されたテスト・データと比較される。ただし、フリップフロップの機能性をテストするための上記の手順でもクロック線144の動作を検証することに留意されたい。
【0113】
フィールド・プログラマブル・ゲート・アレイの中には、複数のプログラマブル・クロック分配線を含むものがあり、その分配線によりフリップフロップ143はクロック信号を代替受信することができる。このようなFPGAでは、FPGAの各クロック分配構成をテストするために、各テスト手順ごとにクロック分配ネットワークの構成を変えて、上記のフリップフロップ・テスト手順が複数回繰り返される。
【0114】
FPGAのフリップフロップと関連のリセット分配資源のリセット機能性をテストするために、同様の手順が使用される。このようなテストを実行する場合、まず、コア・セルのフリップフロップが既知の設定状態に初期設定され、その状態になると所与の構成済みリセット・ネットワークによりリセット・パルスがそこに伝播される。次に、フリップフロップの結果データ内容は、適切に構成された受信レピータ・スキャン・チェーンのシフト・レジスタ・ラッチにラッチされる。次に、結果データはレピータ・スキャン・チェーンからスキャン・アウトされ、回復され、適正なリセット機能性を判定するために分析される。
【0115】
本発明の他の態様では、FPGA10は、所望のユーザ定義論理回路を実現するようにプログラミングされ、その論理回路では複数の論理セル116を使用することができる。入出力バウンダリ・スキャン・チェーンのセルまたはレピータ・スキャン・チェーンのシフト・レジスタ・ラッチあるいはその両方は、ユーザ定義の論理回路へのLSSDアクセスを可能にし、構成済み論理回路へのデータの印加とそこからのデータの受信を可能にするように構成される。所定のテスト・ベクトルは適切に構成された入力スキャン・チェーンにスキャン・インされ、構成済み論理回路に印加される。関連のシステム・クロック動作の適用を含む場合もあるが、構成済み論理回路が印加されたテスト・ベクトルを処理できるようになると、論理回路がもたらした結果データを適切に構成した受信スキャン・チェーン(複数も可)のシフト・レジスタ・ラッチにラッチするために、LSSDCラッチ・クロック・パルスが提供される。次に、この結果データはスキャン・アウトされ、回復され、ユーザ定義の論理回路の適正な機能性を判定するために所定の予想結果データと比較される。
【0116】
したがって、FPGAの様々なサブシステムのテストを可能にするために様々なテスト方法を開示した。さらに、FPGAの様々なサブシステム間の相互依存度を考慮に入れた方法でFPGAの様々なサブシステムをテストするための包括的なテスト・シーケンスも開示した。
【0117】
特に本発明の好ましい実施例に関連して本発明を示し説明してきたが、当業者であれば、本発明の精神および範囲を逸脱せずに形態および細部について上記以外にも様々な変更が可能であることを理解するだろう。
【図面の簡単な説明】
【図1】本発明によるフィールド・プログラマブル・ゲート・アレイのブロック図である。
【図2】本発明によるフィールド・プログラマブル・ゲート・アレイのブロック図である。
【図3】フィールド・プログラマブル・ゲート・アレイの入出力バウンダリ・スキャン・チェーンを示すブロック図である。
【図4】図3の入出力バウンダリ・スキャン・チェーンの入出力バウンダリ・スキャン・セルのブロック図である。
【図5】図4の入出力バウンダリ・スキャン・チェーンの第1および第2のシフト・レジスタ・ラッチを示す概略図である。
【図6】(イ)フィールド・プログラマブル・ゲート・アレイを構成しテストするための制御信号を提供するための制御レジスタへのロードに関連する、図3の入出力バウンダリ・スキャン・チェーンの特定の部分を示すブロック図である。(ロ)フィールド・プログラマブル・ゲート・アレイの制御レジスタへのロードに関連する部分のみから構成される、入出力バウンダリ・スキャン・チェーンの代替構成を示すブロック図である。(ハ)単一ビット・バイパス・レジスタのみから構成される、もう1つの代替低減入出力バウンダリ・スキャン・チェーンを示すブロック図である。
【図7】制御レジスタと、入出力バウンダリ・スキャン・チェーンのそれに関連する部分とを表すブロック図である。
【図8】制御レジスタと、入出力バウンダリ・スキャン・チェーンのそれに関連する部分とを表すブロック図である。
【図9】制御レジスタと関連して入出力バウンダリ・スキャン・チェーンを動作させることに関連する信号を表すタイミング図である。
【図10】制御レジスタ部分のみにロードするために入出力バウンダリ・スキャン・チェーンを動作させることに関連する信号を表すタイミング図である。
【図11】単一ビット・バイパス・レジスタのみから構成されるさらに低減した入出力バウンダリ・スキャン構成を動作させることに関連する信号を表すタイミング図である。
【図12】プログラマブル・ゲート・アレイの複数のプログラマブル論理セルを示す図である。
【図13】プログラマブル論理セルからなるアレイと、プログラマブル論理セルを選択的に接続するための関連相互接続ネットワークとを示す、図12のプログラマブル・ゲート・アレイのセクタ部分を示す図である。
【図14】プログラマブル・ゲート・アレイの1行分の論理セルに関連するプログラマブル・バスのレピータ回路を示すブロック図である。
【図15】そのすべてのピンにアクセスする際のプログラマブル・ゲート・アレイのテスト中に使用するクロック信号と関連の制御信号とを示す簡略タイミング図である。
【図16】低減した数の入出力ピンにアクセスする際のプログラマブル・ゲート・アレイのテストに関連するクロック信号と制御信号とを示すタイミング図である。
【図17】図16の間隔T中にプログラマブル・ゲート・アレイのレピータ・スキャン・チェーンを動作させるための制御信号と関連のスキャン・クロックとを示すタイミング図である。
【図18】図16の間隔T中にプログラマブル・ゲート・アレイの構成スキャン・チェーンを動作させるための制御信号と関連のクロックとを示すタイミング図である。
【図19】プログラマブル・ゲート・アレイのコア・セルをテストするために構成されたレピータ・スキャン・チェーンを示す部分概略図である。
【符号の説明】
10 フィールド・プログラマブル・ゲート・アレイ
14 SRAM
16 SRAM制御装置
18 デコーダおよびシーケンサ
20 構成プログラム・ビット
24 構成スキャン・チェーン
32 アドレス・バス
34 データ・バス
【発明の属する技術分野】
本発明は、半導体集積回路をテストするためのテスト・サブシステムおよび方式に関し、より具体的には、フィールド・プログラマブル・ゲート・アレイをテストするためのテスト・サブシステムおよび方式に関する。
【0002】
【従来の技術】
フィールド・プログラマブル・ゲート・アレイ(FPGA)は、その中に組合せ論理回路と同期論理回路の両方を有するコミットなしプログラマブル論理セルのアレイを含むものとして当業者に知られている。通常、論理セルは、プログラマブル相互接続ネットワークによってプログラム式に相互接続されている。したがって、論理セルを適切にプログラミングし相互接続することにより、FPGAが複雑なユーザ定義論理機能を実行することができる。
【0003】
拡張FPGAは、論理セルのアレイ間でデータを転送するためのプログラマブル入出力資源も含む場合がある。この入出力資源は、それを通る信号伝播の方向(すなわち、入力または出力)を制御するようにプログラム可能であり、さらにいくつかの追加の選択活動化制御構成(たとえば、インピーダンス、スルー・レート、プルアップ、極性など)に応じてプログラム可能である。FPGAは多くの入出力端子を使用する場合が多く、そのそれぞれは、それに関連するプログラマブル入出力資源に応じて個別に構成可能である。また、FPGAでは、1つまたは複数のクロック信号をアレイの様々な順序回路に分配するために、プログラマブル・クロック・ネットワークを使用することもできる。上記のFPGAサブシステムのそれぞれは、通常、FPGAの「機能的」部分の一部であると見なされる。このようなサブシステムは、以下、単一でまたはまとめて「プログラマブル資源」と呼ぶ。プログラマブル資源の例は、以下に示す関連米国特許出願に開示されている。
【0004】
関連出願情報
本出願は、本出願人が所有しすでに出願された以下の米国特許出願に関連する。
1."PROGRAMMABLE ARRAY INTERCONNECT NETWORK"という名称で1995年6月2日出願の第08/459579号(特開平9−26870号公報)
2."PROGRAMMABLE ARRAY I/O - ROUTING RESOURCE"という名称で1995年6月2日出願の第08/460420号(特開平9−26869号公報)
3."PROGRAMMABLE ARRAY CLOCK/RESET RESOURCE"という名称で1995年6月2日出願の第08/459156号(特開平9−27745号公報)
4."PROGRAMMABLE LOGIC CELL"という名称で1995年6月2日出願の第08/460481号(特開平8−340248号公報)
5."PROGRAMMABLE ARRAY INTERCONNECT LATCH"という名称で1995年6月7日出願の第08/480639号(特開平9−8646号公報)
6."CONTINUOUS ADDRESS STRUCTURE WITH FOLDING"という名称で1995年6月7日出願の第08/488314号(特開平9−246954号公報)
【0005】
現在、FPGAに使用可能なプログラミング技術は様々である。たとえば、不揮発性ヒューズまたはアンチヒューズ・リンクをアレイに使用し、アレイ資源間で選択接続を行うことができる。このような線をプログラミングするためには、リンクにおける適切なプログラミング電圧の選択配置を可能にするため、2端子リンクの各端子が独立してアドレス可能でなければならない。したがって、アレイを構成するために必須のプログラミング電圧のアドレス指定と経路指定を行うために、追加の構成サポート回路が必要である。また、フローティングゲートEPROM/EEPROMトランジスタを使用してアレイのプログラム性を提供することができるが、このようなトランジスタは、それにプログラミング電圧を印加するために、アレイ内に同様に配置され、独立してアドレス指定されるものと思われる。
【0006】
FPGAのプログラマブル資源を制御するためには、スタティックRAM(SRAM)技術も使用可能である。FPGAの単純なプログラマブル資源としては、CMOSパス・ゲートが含まれる。このパス・ゲートは、所定のプログラム状態を保持する、基礎となるSRAMセルによって制御される。このプログラム状態、すなわち、SRAMセルに格納された構成データ・ビットによって、パス・ゲートが伝導するかどうかが決まる。したがって、FPGAの関連プログラマブル資源の構成を確立するために、FPGA内の比較的独立したサブシステムとして、SRAMセルの均質アレイを設けることができる。このSRAMセルのアレイへのアクセスは、FPGAの構成論理サブシステムによって制御される標準のアクセス技法を使用して行う。
【0007】
したがって、プログラマブル・ゲート・アレイのプログラマブル資源に加え、アレイのプログラミングを可能にするために追加の構成サブシステムが必要なことは明らかである。上記のSRAM FPGA例では、それへのアクセスを制御するための関連構成論理とともに、FPGAの関連プログラマブル資源を構成するためにSRAMセルの均質アレイが設けられている。半導体設計および製作の観点から、単一半導体パッケージに複数の異質サブシステムを設けると、障害検出および分離を含む、回路のテスト性に関する重大な懸念が発生する。したがって、FPGAの構成サブシステムおよびプログラマブル資源のテストを可能にするために、包括的なテスト方式を提供すると有利であると思われる。このテスト方式自体は、FPGA内に追加のテスト・サブシステムを設けることを含む場合があり、そのテスト・サブシステムもテスト可能でなければならない。したがって、テスト方式は、テスト・サブシステムを含む、FPGAのすべての資源およびサブシステムを可能な限り包含する必要がある。
【0008】
にもかかわらず、プログラマブル資源と構成およびテスト・サブシステムは、それぞれの回路や機能が異なるものの、相互依存度が高い。この相互依存度のために、使用するテスト方式が非常に複雑になる。たとえば、論理セルの組合せ論理のテストが必要になる場合が多く、その論理セルは構成サブシステムによって所与の状態にプログラミングされる。しかし、論理セル・テストの保全性は、構成サブシステムのエラーや、テスト・サブシステムのエラーによって悪影響を受ける可能性がある。したがって、FPGA内の様々な資源およびサブシステム間の相互依存度をできる限り考慮したテスト方式を使用することが必要になる。
【0009】
既知のバウンダリ・スキャン技法では、その入出力端子に関連してチップの外辺部にLSSDレジスタなどの2重ラッチ・セットを設けることが必要である。このラッチ・セットは、シフト・レジスタ・スキャン・チェーンとして相互接続されている。テスト刺激は、スキャン・チェーンにシリアルにロードし、チップの内部回路に印加することができる。スキャン・チェーンは、テスト刺激に応答して、内部回路が提供する結果データを同様に捕捉することができる。次に、この結果をシフト・レジスタからシフト・アウトし、予想結果と比較することができる。チップのスキャンイン端子、スキャンアウト端子、いくつかのクロック端子は、スキャン・チェーンの動作を可能にするために設けられている。したがって、チップの各入出力端子に対する外部テスト・インタフェースを必要とせずに、チップの内部回路で障害を検出することができる。しかし、回路密度を高め、特にFPGA内の回路の異種性を考慮すると、バウンダリ・スキャン技法でも障害検出が可能になるが、障害分離は難しい場合がある。したがって、FPGA内の様々な資源およびサブシステムのテスト中に障害分離の程度を高めるようなテスト・サブシステムを使用することが必要になる。
【0010】
レベルセンシティブ・スキャン設計(LSSD)テスト技法も知られているが、これは1つの論理回路を組合せ論理回路と同期論理回路にセグメント化することを含む。同期回路はシリアル・シフト・レジスタ・スキャン・チェーンになるように接続され、論理回路の領域の境界となるかまたは領域をセグメント化する。バウンダリ・スキャン技法と同様、テスト刺激はシフト・レジスタ・スキャン・チェーンにシフト・インされ、論理回路に印加される。結果データは、その関連論理回路またはセグメントによってもたらされた通りに、スキャン・チェーンに捕捉される。次に、捕捉した結果データが分析のためにシフト・アウトされる。この場合も、外部テスト機器はスキャンイン、スキャンアウト、ならびに適切なクロック・ピンだけにアクセスすればいいので、ピン・カウント低減テストが達成される。
【0011】
典型的なFPGAでは、その同期回路をシリアル・シフト・レジスタに変換することにより、すべての組合せ回路を明確にセグメント化することは少々難しいことである。たとえば、各論理セルの同期回路のそれぞれが変換され、関連シリアル・シフト・レジスタ・スキャン・チェーン内で接続されている場合、介入するプログラマブル相互接続ネットワークは明確にセグメント化されず、テスト不能領域を含む可能性があると思われる。この問題は、相互接続ネットワークが大規模で複雑な場合、特に重大である。したがって、FPGAの異質な組合せ資源と同期資源の妥当なテストを行い、その容易なセグメント化を可能にし、純粋なLSSD手法を使用する場合の欠点を克服するようなテスト方式を提供することが必要になる。
【0012】
前述のように、高性能テスト方式を提供するには、少なくともアレイ内にいくつかの追加テスト・サブシステムを設けることが必要になると思われる。しかし、既知のシフト・レジスタ技法と同様、テスト・サブシステムを動作させるのに必要な入出力端子の数をできる限り最小限にすることが必要になる。さらに、最小量の信号インタフェース回路と外部テスト機器により、1つのシステム内の複数のFPGAチップのテストをサポートすることが必要である。
【0013】
【発明が解決しようとする課題】
したがって、本発明の一目的は、改良されたテスト可能プログラマブル・ゲート・アレイとそれをテストするための方法を提供することにある。
【0014】
本発明の他の目的は、フィールド・プログラマブル・ゲート・アレイの様々なサブシステム内で障害の分離を可能にするような、プログラマブル・ゲート・アレイをテストするための包括的なテスト方式を提供することにある。
【0015】
本発明の他の目的は、プログラマブル・ゲート・アレイの様々なサブシステム間の相互依存度を考慮に入れた、プログラマブル・ゲート・アレイをテストするためのこのようなテスト方式を提供することにある。
【0016】
本発明の他の目的は、複数のプログラマブル・ゲート・アレイのテストを可能にするためのこのようなテスト可能プログラマブル・ゲート・アレイと関連テスト方法を提供することにある。
【0017】
【課題を解決するための手段】
本発明の第1の実施例によれば、フィールド・プログラマブル・ゲート・アレイは、関連入出力ポートに結合された複数の機能信号線を有する。複数のプログラマブル論理ユニットは、関連の論理構成データに応じて特定の論理回路を提供する。複数のプログラマブル相互接続部は、関連の経路指定構成データに応じて機能信号線とプログラマブル論理ユニットとを相互接続する。プログラマブル論理ユニットとプログラマブル相互接続部に関連するメモリ・セルは、それぞれ関連のプログラマブル資源を構成するための論理および経路指定構成データを保持する。構成論理回路は、メモリ要求信号を受け取り、これらの信号を処理してメモリ・セルへのアクセスを可能にする。FPGAのテスト回路は、入出力機能信号線と関連入出力ポートへの選択的シリアル・スキャン・アクセスとそれらの機能検証とを可能にするために、FPGAの機能信号線を横切るLSSDバウンダリ・スキャン・チェーンを含む。また、そのLSSDシリアル・スキャン・アクセスとテストを可能にするために、第2のLSSDスキャン・チェーンが構成論理回路に関連付けられている。最後に、それへの選択的シリアル・スキャン・アクセスを可能にするために、フィールド・プログラマブル・ゲート・アレイのプログラマブル相互接続部に沿ってLSSDレピータ・スキャン・チェーンが配置されている。
【0018】
本発明のこの第1の実施例の一態様では、入出力バウンダリ・スキャン・チェーンが、FPGAの様々な特徴を制御するための制御信号を提供するためにテスト制御レジスタにデータをロードすることに関連する部分を含む。
【0019】
本発明のこの第1の実施例の他の態様は、アレイ・テスト・モードをサポートするための備えを含む。行と列からなるアレイとして複数のプログラマブル論理ユニットがFPGAを横切って配置されている。プログラマブル相互接続部は、アレイ配置されたプログラマブル論理ユニットの行と列に隣接して配置された複数の行バスと複数の列バスとを含む。プログラマブル・レピータ・ユニットは、構成メモリの指定のメモリ・セルに保持されたレピータ構成データに応じて、行バスと列バスのうちの所与のバスを関連バス・セグメントに選択的に細分する。レピータ・スキャン・チェーンの各LSSDスキャン・レジスタは、複数のプログラマブル・レピータ・ユニットの関連レピータ・ユニット内に組み込まれている。それぞれのレピータ・スキャン・チェーンを提供するために、関連の行バスと列バスのLSSDスキャン・レジスタはシリアル接続されていることが好ましい。
【0020】
本発明の第1のテスト方法(B/Sまたはカード・テスト)では、その入出力バウンダリ周辺に入出力バウンダリ・スキャン・チェーンを有するFPGAをテストするための方法が提供される。第1のテスト・マクロでは、既知の入出力テスト・データがFPGAの入出力バウンダリに印加される。次に、入出力バウンダリのデータが入出力バウンダリ・スキャン・チェーンにラッチされる。次に、このラッチ・データが入出力バウンダリ・スキャン・チェーンからスキャン・アウトされ、FPGAの入出力バウンダリの機能性を判定するために既知の入出力テスト・データと比較するために回復される。
【0021】
第2のテスト方法(構成またはLSSDテスト)のFPGAには、FPGAの構成論理回路をテストするための構成スキャン・チェーンが設けられている。構成テスト・ベクトルは、構成スキャン・チェーンにスキャン・インされ、構成論理回路に印加される。印加された構成テスト・ベクトルに応答して構成論理回路によってもたらされる結果データは、構成スキャン・チェーンにラッチされる。次に、結果データは、構成スキャン・チェーンからスキャン・アウトされ、回復され、構成論理回路の機能性を判定するために印加されたテスト・ベクトルと構成論理回路に応じて、所定の結果データと比較される。
【0022】
第3のテスト方法(アレイ・テスト)のFPGAには、FPGAの選択プログラマブル相互接続部内に構成されたレピータ・スキャン・チェーンが設けられている。FPGAのプログラマブル相互接続部のうちの第1の組の相互接続部は、レピータ・スキャン・チェーンの入力および出力レピータ・スキャン・チェーンのそれぞれのLSSDスキャン・レジスタ間に構成される。相互接続テスト・ベクトルは、入力レピータ・スキャン・チェーンにシリアルにスキャン・インされ、第1の組の相互接続部の入力側に印加される。次に、第1の組の相互接続部の出力側の結果データは、出力レピータ・スキャン・チェーンにラッチされる。次に、結果データは出力レピータ・スキャン・チェーンからスキャン・アウトされ、回復され、プログラマブル相互接続部の機能性を判定するために印加された相互接続テスト・ベクトルと比較される。
【0023】
この実施例の他のテスト方法(構成メモリ・アクセス・テスト)は、FPGAのプログラマブル資源を構成するために構成データを受け取って保持するためのメモリ・セルの能力を判定するために、FPGAのメモリ・セルに直接アクセスし、テストするものである。まず、既知のデータがメモリ・セルに書き込まれる。次に、メモリ・セルの機能性を判定するために、メモリ・セルからデータが取り出され、そのデータが既知のデータと比較される。
【0024】
本発明の他のテスト方法では、FPGAの構成可能性をテストするための方法が提供される。複数の入出力ポートと、プログラマブル論理ユニットと、プログラム論理ユニットと入出力ポートとを相互接続するためのプログラマブル相互接続部とを有するFPGAが提供される。様々なプログラマブル論理ユニットとプログラマブル相互接続部に対して、複数の構成メモリ・セルが指定される。この構成メモリ・セルは、プログラマブル論理ユニットとプログラマブル相互接続部を構成するための構成データを保持する。構成論理回路には、プログラマブル・メモリ・セルへのアクセスと、そのセルへの構成データのロードとを可能にするためにFPGAが設けられている。フィールド・プログラマブル・ゲート・アレイをテストするためのこの方法では、構成論理回路に関連するLSSDスキャン・チェーンにより、構成論理回路の機能性がテストされる。構成論理回路のテスト後、確定的なテスト・パターンを使用して複数の構成メモリ・セルがテストされる。
【0025】
本発明の上記のテスト方法の他の態様では、FPGAの入出力ポートの状態(スナップショット)の観察にバウンダリ・スキャン・チェーンが使用される。
【0026】
本発明の第4のテスト方法(B/Sチップ・テスト)では、複数の入出力ピンと、複数の入出力機能信号線と、複数のプログラマブル論理ユニットと、経路指定構成データに応じて機能信号線と選択プログラマブル論理ユニットとを選択的に相互接続するための複数のプログラマブル相互接続部とを有するFPGAをテストするための方法が提供される。FPGAには、FPGAのプログラマブル資源の構成に関連する構成データを保持するための複数のメモリ・セルが設けられている。FPGAの構成論理回路により、メモリ・セルへのアクセスが可能になる。バウンダリ・スキャン・チェーンはFPGAの機能信号線を横切って設けられ、構成スキャン・チェーンは構成論理回路の周りおよび構成論理回路内に設けられている。また、レピータ・スキャン・チェーンは、プログラマブル相互接続部の選択相互接続部に沿って設けられている。レピータ・スキャン・チェーンは、それぞれのラッチ構成データに応じて関連相互接続部に選択的に結合される。
【0027】
本発明のこの第4のテスト方法によりFPGAをテストする場合、それによりシリアルにデータをスキャンすることにより、様々なスキャン・チェーンのそれぞれがテストされる。データは、スキャン・チェーンを通過するときに受け取られ、それぞれのスキャン・チェーンの機能性を判定するためにスキャン・インされたものと比較される。
【0028】
入出力機能信号線と関連の機能入出力ピンは、機能入出力ピンにテスト・ベクトルを印加し、入出力機能線の結果データをバウンダリ・スキャン・チェーンにラッチすることによってテストされる。結果データは、バウンダリ・スキャン・チェーンからスキャン・アウトされ、入出力ピンと関連の機能信号線の機能性を判定するために機能入出力ピンに印加されたテスト・ベクトルと比較される。
【0029】
この第4のテスト方法の他の手順では、テスト・ベクトルをシリアルに構成スキャン・チェーンにスキャン・インし、関連の構成論理回路にテスト・ベクトルを印加することによって、構成論理回路がテストされる。次に、印加したテスト・ベクトルに応答して構成論理回路によってもたらされる結果データは、構成スキャン・チェーンにラッチされる。この結果データは、構成スキャン・チェーンからシリアルにスキャン・アウトされ、構成論理回路の適正動作を判定するために、印加したテスト・ベクトルおよび関連の構成論理回路に応じて事前決定された所定の結果データと比較される。
【0030】
プログラマブル相互接続部は、第1および第2のレピータ・スキャン・チェーン間の複数のプログラマブル相互接続部のうちの第1の組の相互接続部をまず構成することによりテストされる。テスト・ベクトルは、第1のレピータ・スキャン・チェーンにシリアルにスキャン・インされる。第1の組の相互接続部の入力側にテスト・ベクトルを印加するために、適切な構成データに応じて第1のレピータ・スキャン・チェーンが構成される。次に、第1の組の相互接続部の出力側のデータが第2のレピータ・スキャン・チェーンにラッチされる。この結果データは、第2のレピータ・スキャン・チェーンからスキャン・アウトされ、回復され、プログラマブル相互接続部の適正な機能性を判定するために印加したテスト・ベクトルと比較される。
【0031】
本発明の最後の実施例のフィールド・プログラマブル・ゲート・アレイは、そのメモリ・セルにアクセスするための構成論理回路を含み、そのメモリ・セルはFPGAのプログラマブル資源の構成に関連付けられている。LSSDのアクセスと構成論理回路のテストを可能にするために、LSSDスキャン・チェーンが構成論理回路に関連付けられている。
【0032】
本発明は、プログラマブル・ゲート・アレイをテストするためのテスト・サブシステムおよび方式を提供する。以下の説明では、まず、プログラマブル・ゲート・アレイとそれに関連するテスト・サブシステムの基本構造について説明する。次に、その関連テスト・サブシステムに応じてプログラマブル・ゲート・アレイをテストするためのテスト・マクロと関連シーケンスとを説明する。
【0033】
フィールド・プログラマブル・ゲート・アレイの例に関連して、以下に本発明のテスト・サブシステムおよび方法について説明する。ただし、本発明のテスト・サブシステムおよび方法は、匹敵する他の再構成可能論理デバイスにも同様に適用可能であることに留意されたい。
【0034】
【発明の実施の形態】
図1ないし図2を参照すると、フィールド・プログラマブル・ゲート・アレイ10が示されているが、これは、複雑なユーザ定義の論理回路のテスト、構成、機能動作を可能にするための様々なサブシステムを含む。フィールド・プログラマブル・ゲート・アレイ(FPGA)10のプログラマブル資源12は、プログラマブル論理セルと、プログラマブル相互接続ネットワークと、プログラマブル・クロック/リセット分配ネットワークと、プログラマブル入出力ポートと、その他のものを含む。"Programmable Logic Cell"という名称の米国特許出願の上記の部分には、プログラマブル論理セルの詳しい説明が示されている。同様に、"Programmable Array Interconnect Network"、"Programmable Array Clock/Reset Resource"、"Programmable I/O Routing Resource"という名称のそれぞれの米国特許出願の上記の部分には、相互接続ネットワーク、クロック/リセット分配、プログラマブル入出力資源の詳しい説明が示されている。
【0035】
FPGA10のSRAM14は、FPGA10の様々なプログラマブル資源12の構成状態を選択的に励起するために構成データを保持する。構成プログラム・ビット20は、SRAM14の関連メモリ・セルの構成データに応じて、FPGAの様々なプログラマブル資源12を励起する。"Continuous Address Structure With Folding"という名称の米国特許出願の上記の部分は、FPGAの様々なプログラマブル資源へのSRAMメモリの割振り例を示している。
【0036】
FPGA10の構成論理回路16および18は、プログラマブル資源12を構成するためにそこに構成データをロードできるようにするため、また、SRAM14のテストを可能にするために、SRAM14にアクセスする。構成論理回路のSRAM制御装置16は、動作モードを選択し、SRAM14へのアクセスを制御するために、様々な入力信号を受け取る。また、SRAM制御装置16は、SRAM14の動作検証中に出力信号を提供する。構成論理回路16の詳細については、Garverick他に対して1994年3月29日に交付された"Versatile and Efficient Cell-to-Local Bus Interface in a Configurable Logic Array"という名称の米国特許第5298805号と、"Application Note AT6000 Series Configuration"というタイトルの文献(1993年5月19日発行、改訂版1B、Atmel Corporation)を参照されたい。どちらの参考文献も、ここに全体を参照することにより、本明細書に組み込まれる。
【0037】
構成論理回路のデコーダおよびシーケンサ18は、アドレス・バス32またはデータ・バス34あるいはその両方からデータを受け取る。デコーダおよびシーケンサは、このデータをデコードし、SRAM14のメモリ・マップをアドレス指定するためのアドレスまたはアドレス・シーケンスあるいはその両方を提供する。デコーダおよびシーケンサの詳細については、"Continuous Address Structure With Folding"という名称の米国特許出願の上記の部分と、"Application Note AT6000 Series Configuration"というタイトルの文献を参照されたい。
【0038】
上記のサブシステム、すなわち、プログラマブル資源12と、SRAM14と、構成論理回路16、18とは、FPGAのユーザ機能動作を可能にするものである。この開示の次の部分では、ユーザがFPGAの様々なサブシステムをテストできるようにするためのFPGAのテスト・サブシステムについて説明する。
【0039】
テスト可能FPGAのテスト・サブシステム:
図2を参照すると、テスト回路22は、FPGAのテスト・モードを選択するためのテスト制御信号MTESTとTESTMOREを受け取る。さらに、FPGAの個々のテストの追加態様を連絡するために追加のテスト信号38をテスト回路22に提供することもできる。入出力バウンダリ・スキャン・チェーン26は、FPGA10の機能入出力相互接続部36を横切る既知の入出力バウンダリ・スキャン・チェーンを提供する。この入出力バウンダリ・スキャン・チェーン26の一部分は、FPGAのテスト中に追加の制御信号を提供するために制御レジスタ28のロードに関連付けられている。
【0040】
追加のテスト・サブシステムとしては、構成スキャン・チェーン24がある。構成スキャン・チェーン24は、スキャン・チェーンによる構成論理回路へのアクセスを許可し、そのテストを可能にするために、FPGAの構成論理回路の様々なセグメントの境界を示す。最後に、レピータ・スキャン・チェーン301、302、・・・は、FPGAの選択プログラマブル相互接続部内に構成スキャン・チェーンを提供するものである。レピータ・スキャン・チェーンは、関連のプログラマブル相互接続部への選択スキャン・チェーン・アクセスを可能にし、FPGAのプログラマブル資源12の様々な部分の分離テストを可能にする。レピータ・スキャン・チェーンの詳細については、"Programmable Array Interconnect Latch"という名称の米国特許出願の上記の部分を参照されたい。
【0041】
FPGAの機能、構成、およびテスト・インタフェース:
図1ないし図2に示すように、FPGA10は、FPGAの様々なサブシステム間で信号を伝播するために複数の入出力ポートと入出力相互接続部を含む。FPGAの特定の実施例では、入出力相互接続部の一部が共通入出力ポートを共用している。このような2重使用入出力ポートは、所与のテスト制御信号に応じて関連の入出力相互接続部の1つに選択的に結合される。以下に示す表1は、FPGAの動作モードによる関連入出力相互接続部へのFPGAの入出力ポートの割振りを示すものである。
【0042】
入出力ポートは、専用ポート「d」ポート、複数使用ポート「m」ポート、機能バウンダリ・スキャン・ポート「bs」という3通りのカテゴリを含む。専用入出力ポート「d」は、2重使用ポートになる場合もあるが、テスト、構成、増力、モード選択など、FPGAの非機能態様専用である。
【0043】
複数使用入出力ポート「m」は、FPGAの機能相互接続部あるいは拡張テスト相互接続部に選択的に結合された2重使用ポートである。所与のテスト・モードでは、複数使用入出力ポート「m」が拡張テスト・インタフェースを提供する。
【0044】
バウンダリ・スキャン入出力ポート「bs」は、主にFPGAの機能相互接続部に割り振られる。ただし、バウンダリ・スキャン入出力ポート「bs」の第1の部分は、FPGAの構成に関連する相互接続部に結合することもできる。また、その第2の部分は、クロックまたはリセット信号をFPGAに伝播するための相互接続部に結合することもできる。
【0045】
【表1】
FPGA入出力インタフェース
i=入力、o=出力、c=共通入出力
#=io(入出力)の数
*=機能入出力
d=専用入出力であって、-MTEST=0かつ-DI2=1によってテスト・モードが可能になり、-CS=0によって構成モードが可能になる
m=追加のテスト入出力であって、-MTEST=0かつ-TESTMORE=0によって可能になる
bs=ラッチ境界スキャン入出力であって、-RI=1かつ-DI1=1によって可能になる
# テスト・モード 構成モード 機能モード
d 1 i SWGATE=VREF i SWGATE=VREF i SWGATE=VREF
d 1 i -OFF/ON i -OFF/ON i -OFF/ON
d 1 c -CON c -CON - -CON = high Z
d 1 o SO i -CS = 0 i -CS = 1
d 1 i SI c CCLK - CCLK = x
d 1 i LSSDA i M0 - M0 = x
d 1 i LSSDB10 i M1 - M1 = x
d 1 i LSSDC i M2 - M2 = x
d 1 i -MTEST = 0 i -MTEST = 1 i -MTEST = 1
d 1 i -TESTMORE i CLOCK1 = x i CLOCK1
m 1 i -RI * *
m 1 i -DI1 * *
m 1 i -DI2 * *
m 1 i -C_TEST * *
m 1 i -CONFG * *
m 1 i -REPT * *
m 8 i SITOP(0-7) * *
m 8 o SOBOT(0-7) * *
m 8 i SIRIGHT(0-7) * *
m 8 o SOLEFT(0-7) * *
m 1 i SICONFIG * *
m 1 o SOCONFIG * *
m 1 i LSSDB1 * *
m 1 i LSSDB2 * *
m 1 i LSSDB3 * *
bs 17 * IO c ADDR(0-16) * IO
bs 8 * IO c DATA(0-7) * IO
bs 1 * IO i -CHECK(-RR/RW) * IO
bs 1 * IO o -CSOUT * IO
bs 1 * IO o -ERR * IO
bs 1 * CLOCK2 OR IO * CLOCK2 OR IO * CLOCK2 OR IO
bs 1 * CLOCK3 OR IO * CLOCK3 OR IO * CLOCK3 OR IO
bs 1 * CLOCK4 OR IO * CLOCK4 OR IO * CLOCK4 OR IO
bs 1 * CLOCK5 OR IO * CLOCK5 OR IO * CLOCK5 OR IO
bs 1 * CLOCK6 OR IO * CLOCK6 OR IO * CLOCK6 OR IO
bs 1 * -RESET1 OR IO * -RESET1 OR IO * -RESET1 OR IO
bs 1 * -RESET2 OR IO * -RESET2 OR IO * -RESET2 OR IO
bs 1 * -RESET3 OR IO * -RESET3 OR IO * -RESET3 OR IO
bs .. * ... * ... * ...
bs 1 * IO * IO * IO
【0046】
表1の右端の2つの列は、それぞれ機能ノードと構成モードであり、関連のFPGAの構成相互接続部と機能相互接続部の様々な入出力ポートの割振りを示している。SWGATEはFPGAに対して電圧基準を提供する。OFF/ONはFPGAに対してその増力電源電圧を選択する。FPGAの構成とその状態の制御は、もう1つの専用入出力ポート「d」であるCONを介して提供される。追加の構成相互接続部は、構成選択CS、構成クロックCCLK、所与のSRAMチェック動作モードを可能にするためのチェック制御CHECK、別のFPGAの構成を可能にするための構成選択CSOUT、FPGAの構成エラーを報告するためのエラーERRなどの信号を伝播する。このような構成相互接続部と関連信号の詳細は、"Application Note AT6000 Series Configuration"と題する上記の文献に記載されている。
【0047】
テスト・モード・イネーブル信号MTESTが正しく活動化されると、表1に示すように所与の専用入出力ポートがテスト相互接続部として再割振りされる。構成選択CSに関連するポートは、スキャン出力SOとして再割振りされる。構成クロックCCLKに関連するポートは、FPGAのスキャン入力SIとして再割振りされる。同様に、確認モード選択M0〜M2に関連するポートは、LSSDクロック相互接続部LSSDA、LSSDB10、LSSDCにそれぞれ再割振りされる。最後に、クロック相互接続CLOCKに関連するポートは、追加テスト・イネーブル相互接続TESTMOREに再割振りされる。したがって、専用入出力ポート「d」の一部は、FPGAの構成とテストに関連する各種相互接続部間で共用される2重使用ポートになる。
【0048】
FPGAがそのテスト・モードになっており、MTESTによって選択されている場合、追加テスト・イネーブル信号TESTMOREを活動化することによって、拡張テスト・インタフェースが得られる。したがって、MTESTとTESTMOREの両方が活動化されると、FPGAの追加テストを可能にするための拡張テスト・インタフェース(表1の複数使用ポート「m」によって表されるもの)が得られる。
【0049】
レシーバ禁止信号RIに関連する相互接続部は、FPGAの所与のレシーバを禁止するための直接制御入力を提供する。DI1とDI2は、FPGAに関連する所与のドライバの直接制御を提供する。MUXテスト制御信号C_TESTに関連する相互接続部は、FPGAの所与のパスゲート・マルチプレクサのテストを可能にするための直接入力を提供する。同様に、直接入力CONFGとREPTは、構成スキャン・チェーン24とレピータ・ラッチ・スキャン・チェーン30の動作をそれぞれ可能にする。拡張インタフェースの残りのテスト・ポートは、様々なレピータ・スキャン・チェーンと構成スキャン・チェーンへのデータのスキャン・インまたはそれらからのスキャン・アウトと、構成スキャン・チェーンをクロックするための追加のLSSDクロックの提供に関連付けられている。
【0050】
レシーバ禁止信号RIは、活動化されると、FPGAの機能入力に関連する相互接続部がそのデータを受け取るのを防止する。このような機能入力としては、バウンダリ・スキャン入出力ポート「bs」と、機能ポートとして割り振られたとき(すなわち、TESTMOREが活動化されていないとき)の複数使用入出力ポート「m」とを含む。第1のドライバ禁止信号DI1は、活動化されると、機能出力ポートのドライバが関連の機能相互接続部のデータを送り出すのを禁止する。このような第1の組のドライバは、バウンダリ・スキャン入出力ポート「bs」と、関連の機能相互接続部に割り振られた(すなわち、TESTMOREが活動化されていないときの)複数使用入出力ポート「m」のドライバを含む。これに対して、第2のドライバ禁止信号DI2は、活動化されると、専用入出力ポートと、拡張テスト相互接続部に割り振られた(すなわち、TESTMOREが活動化されたときの)複数使用入出力ポート「m」のドライバを禁止する。TESTMOREが活動状態ではない場合、RI、DI1、DI2の最後の状態が保持される。
【0051】
入出力バウンダリ・スキャン・チェーンおよび制御レジスタ:
図1、図2、および図3を参照すると、入出力バウンダリ・スキャン・チェーン26は、FPGA10の機能入出力相互接続部36に選択的に相互結合可能なLSSDシフト・レジスタ・ラッチのシリアル・ストリングを含む。外部テスト制御装置40は、入出力バウンダリ・スキャン・チェーン26へのアクセスとその動作を可能にするためのテスト・イネーブル信号MTESTを活動化する。外部テスタ40は、スキャン・インSI相互接続部およびスキャン・アウトSO相互接続部を介して入出力バウンダリ・スキャン・チェーンのインタフェースを取り、入出力バウンダリ・スキャン・チェーン26を動作させるために必要な関連相互接続部にLSSDA、LSSDB10、LSSDCクロック信号を提供する。
【0052】
図4を参照すると、入出力バウンダリ・スキャン・チェーン26の各セル56は2つのLSSDシフト・レジスタ・ラッチ72、88を含む。第1のLSSDシフト・レジスタ72のマスタ・ラッチL1は、関連スキャン・チェーンのシリアル・データを受け取るためのスキャン入力76と、マルチプレクサ68の出力からデータを受け取るために結合された1次入力70(負論理)とを有する。第1のLSSDシフト・レジスタ72のスレーブ・ラッチL2からのシリアル出力78は、第2のLSSDシフト・レジスタ88のマスタ・ラッチL1のシリアル入力(正論理)に結合されている。第2のシフト・レジスタのマスタ・ラッチL1の1次入力は、マルチプレクサ84の出力からデータを受け取るように結合されている。第2のLSSDシフト・レジスタ88のスレーブ・ラッチL2は、シリアル・データをシフト・アウトするためのスキャン出力92を有する。
【0053】
4つのマルチプレクサ60、64、68、84は、FPGAのそれぞれの相互接続部にLSSDシフト・レジスタを選択的に結合することができる。マルチプレクサ状態は制御信号PT0およびPR0によって制御され、これらの信号の一方または両方の極性は回路要件に基づいてそこから経路指定することができる。制御信号PT0はマルチプレクサ60および84の構成を制御し、制御信号PR0はマルチプレクサ64および68の構成を制御する。制御信号PT0が活動化されると、FPGA内部からの相互接続部をマルチプレクサの出力62に結合するためにマルチプレクサ60が使用可能になる。同様に、FPGA内部の相互接続部からその(正)出力86にトライステート・イネーブル信号を結合して、トライステート・バッファ82とその(負)出力87をラッチ88に対して選択的に使用可能にするために、マルチプレクサ84が使用可能になる。トライステート・バッファ82が使用可能になると、マルチプレクサ60の出力62に提示されたデータが関連入出力ポート36'に向かって伝播される。制御信号PT0の代替状態では、マルチプレクサ60は線80を介して第1のLSSDレジスタ・ラッチ72に格納されたデータを出力し、マルチプレクサ84は線94を介して第2のLSSDレジスタ・ラッチ88に格納されたデータに応じてトライステート・バッファ82を選択的に使用可能にする。したがって、制御信号PT0は、FPGA内部から関連入出力ポート36'へのデータ伝送を制御する。
【0054】
制御信号PR0は、関連LSSDレジスタ・ラッチ72がどのデータを受け取るかを判定するためにマルチプレクサ64および68を制御する。マルチプレクサ64は、FPGAの関連内部相互接続部にデータを伝播するために、関連入出力ポート36'または第1のLSSDレジスタ・ラッチ72の出力80をマルチプレクサの出力66に選択的に結合する。マルチプレクサ68は、マルチプレクサ60またはマルチプレクサ64からデータを受け取るために第1のLSSDレジスタ・ラッチ72の1次入力70を結合するするかどうかを判定する。このようにして、送信および受信制御信号PT0およびPR0は、関連LSSDシフト・レジスタ・ラッチがFPGA内部から(MUX60および68を介して)データを受け取るか、関連入出力ポート36'から(MUX64および68を介して)データを受け取るかをそれぞれ制御する。ただし、図4は、既知のLSSDシフト・レジスタ動作を提供するのに必要なA、B、Cの各LSSDクロックを示していないことに留意されたい。図5の概略図に示すように、図4のシフト・レジスタ・ラッチにはこのようなそれぞれのLSSDクロックの結合が仮定されている。
【0055】
本発明の好ましい実施例では、入出力バウンダリ・スキャン・チェーン26の関連セルのLSSDシフト・レジスタ・ラッチ72、88のそれぞれがマスタ・ラッチL1とスレーブ・ラッチL2とを含む。図5を参照すると、マスタ・ラッチL1は、トライステート・インバータ98および100を含む。ラッチ・トライステート・インバータ98、100は、その関連LSSD−Aクロックに応じて使用可能になると、トライステート・インバータ102を介してシリアル入力76からシリアル入力データを受け取る。あるいは、マスタ・ラッチL1は、関連LSSD−Cクロックに応じて使用可能になると、トライステート・インバータ96を介して1次入力70から入力データを受け取る。
【0056】
スレーブ・ラッチL2は、ラッチ・トライステート・インバータ106とインバータ108とを含む。マスタ・ラッチL1のデータは、その関連LSSD−Bクロックに応じて使用可能になると、トライステート・インバータ104を介してスレーブ・ラッチL2に結合される。スレーブ・ラッチのデータはシリアル出力78、80で提供される。同様のLSSD機能性を提供する限り、入出力バウンダリ・スキャン・チェーン26内で代替LSSDシフト・レジスタ・ラッチと信号経路指定方式も使用可能であることに留意されたい。
【0057】
図1、図2、図3、および図6(イ)を参照すると、入出力バウンダリ・スキャン・チェーン26は、テスト回路22の制御レジスタ28へのデータの提供に関連する、その一部分を含む。図6(イ)のデフォルト入出力バウンダリ・スキャン・チェーン構成では、入出力バウンダリ・スキャン・チェーン26の8つのレジスタがその入出力リング部分58と直列になっている。入出力バウンダリ・スキャン・チェーン26の最後のビット48は、制御レジスタ28のレジスタCRL0へのC_TEST制御データの提供に関連付けられている。入出力バウンダリ・スキャン・チェーン26の次の部分58は、機能接続部36と関連入出力ポートへの入出力リング・バウンダリ・スキャン・アクセスを提供する。最後に、入出力バウンダリ・スキャン・チェーン26の残りの部分42、44、46は、図6(ロ)に詳細が示されている制御レジスタ28の残りの7つのレジスタCRL1、CRL2、・・・CRL7にロードすべき制御データの7つの追加ビットの提供に関連付けられている。
【0058】
図6(ロ)を参照すると、低減入出力バウンダリ・スキャン・チェーン構成では、バウンダリ・スキャン・チェーン26から入出力リング部分58が省略されている。したがって、制御レジスタ28のロードに関連する8つのデータ・ビットは、入出力リング58の複数のLSSDレジスタによりデータをクロックする必要はなく、8つのクロック・サイクルで低減バウンダリ・スキャン・チェーン26にシリアルにロードすることができる。
【0059】
図6(ハ)に示すように、他の低減入出力バウンダリ・スキャン構成では、バウンダリ・スキャン・チェーン26が単一バイパス・レジスタ42を含み、シリアル・データが入出力バウンダリ・スキャン・チェーン26の残りの部分をバイパスする。直列に結合された関連入出力バウンダリ・スキャン・チェーンに2つのFPGAをまとめて結合した場合、第1のFPGAの入出力バウンダリ・スキャン・チェーン全体を通過する必要はなく、第2のダウンストリームFPGAにシリアル・データをロードできるように、第1のアップストリームFPGA用としてこの単一バイパス・レジスタ構成を選択することができる。
【0060】
【表2】
FPGA制御レジスタの制御信号
制御レジスタ
-BP 1ビット・スキャン・チェーン・バイパス制御
-CNTL 制御レジスタとバウンダリ・スキャンのステアリング
-PR0, -PT0 バウンダリ・スキャン・ラッチ・アプリケーションとステアリング
-RI FPGAレシーバ禁止制御
-DI1 FPGA機能ドライバ禁止制御
-DI2 FPGA専用ドライバ禁止制御
-C_TEST FPGAチップのMUXテスト可能性制御
【0061】
テスト回路22の制御レジスタ28は様々な制御信号を提供する。図6(ロ)と表2を参照すると、制御レジスタ28は、図6(ハ)に示すように単一ビット・バイパス・レジスタ42を含む低減バウンダリ・スキャン・チェーン構成を可能にするためにバイパス制御信号BPを提供するためのレジスタCRL7を含む。もう1つのレジスタCRL6は、入出力リング58に関連するLSSDレジスタを介してまたはそれをバイパスして入出力バウンダリ・スキャン・チェーンのデータを選択的にチャネリングするための制御信号CNTLを提供する。制御レジスタ28の他の2つのレジスタCRL5、CRL4は、図4に関連して前述したように、入出力バウンダリ・スキャン・チェーン26のセルでマルチプレクサの構成を制御するためにレシーバおよび送信制御信号PR0、PT0をそれぞれ提供する。他の3つのレジスタCRL1、CRL2、CRL3は、表1に関連して前述したように、様々な入出力ポートのそれぞれのドライバおよびレシーバ機能を禁止するために関連のドライバおよびレシーバ禁止制御信号DI2、DI1、RI1をそれぞれ提供する。制御レジスタ28の最後のレジスタCRL0は制御信号C_TESTを提供するが、これはそのテスト中にFPGAのパスゲート・マルチプレクサ内の所与のプルダウン・デバイスを選択的に活動化する。
【0062】
図7ないし図8は、そこからデータを受け取るために入出力バウンダリ・スキャン・チェーン26の関連部分に結合された第3のレベルのラッチとしての制御レジスタ28を示している。適切なデータが入出力バウンダリ・スキャン・チェーン26の適切なレジスタ42、44、46、48にロードされると、制御レジスタ28にデータをクロックするためにMTESTが活動化される。ただし、データは制御レジスタ28の内容に影響せずに入出力バウンダリ・スキャン・チェーン26を通過することができ、MTESTがハイに移行するか、またはMTESTとTESTMOREの両方がアクティブ・ローになると、制御レジスタ28が更新されることに留意されたい。
【0063】
マルチプレクサ56は、入出力バウンダリ・スキャン・チェーン26の最後のシフト・レジスタ・ラッチ48のシリアル入力を決定する。マルチプレクサ56は、バウンダリ・スキャン制御信号CNTLの状態に応じて、入出力リング部分58のシリアル入力か、または入出力バウンダリ・スキャン・チェーン26の一部分46のシリアル出力のいずれかに、このシリアル入力を結合する。マルチプレクサ54は、FPGA用のシリアル出力SOを選択する。単一ビット・バイパス・レジスタ構成の場合、マルチプレクサ54は、バイパス制御信号BPの状態に応じて、入出力バウンダリ・スキャン・チェーン26の第1のレジスタ・ラッチ42のシリアル出力にFPGAのシリアル出力SOを選択的に結合する。あるいは、マルチプレクサ54は、シリアル出力データを提供するために入出力バウンダリ・スキャン・チェーン26の最後のレジスタ48のシリアル出力にFPGAのシリアル出力SOを結合する。
【0064】
始めに電源オン時に、制御レジスタはすべて「1」に初期設定され、それによりFPGAはMTEST=1によってその通常機能モードになる。制御レジスタに新しい値をロードすると、関連のLSSDAおよびLSSDBクロック対により、すべての制御データが入出力バウンダリ・スキャン・チェーン26にスキャン・インされる。C_TEST用のデータは最初にスキャン・インされるビットであり、バイパス制御信号BP用のデータは最後にスキャン・インされるビットである。
【0065】
図9は、その制御レジスタ28に関連する部分が入出力リング部分58と直列になっている、入出力バウンダリ・スキャン・チェーンの動作に関連するタイミング図を示す。この動作シーケンス中、拡張テスト・インタフェース制御信号TESTMOREと、バイパス制御信号BPと、バウンダリ・スキャン・ステアリング制御信号CNTLはすべて非活動状態であると想定されている。したがって、マルチプレクサ56(図7)は最後のレジスタ48へのシリアル入力として入出力リング部分58のシリアル出力を選択し、マルチプレクサ54はFPGAのシリアル出力SOとして入出力バウンダリ・スキャン・チェーンの最後のレジスタ48のシリアル出力からのデータを選択する。このタイミング図は、3つの間隔200、202、204から構成されている。間隔200中、データはLSSDAおよびLSSDBクロック対のシーケンスによって入出力バウンダリ・スキャン・チェーンにシリアルにロードされる。入出力バウンダリ・スキャン・チェーンへのシリアル・ロード後、入出力バウンダリ・スキャン・チェーン26の関連セルのデータに応じて、MTESTの後続パルス「N」が制御レジスタ28を更新する。
【0066】
間隔202中、LSSDCクロック・パルスは、関連の1次入力に提示された通りに入出力バウンダリ・スキャン・チェーン26にデータを捕捉するためにスナップ・ショットを提供する。図8に示すように、入出力バウンダリ・スキャン・チェーンの制御レジスタ28に関連する部分は、そのそれぞれの1次入力に提示されたデータに応じて更新される。たとえば、バイパス制御信号BPに関連するセル42は、その1次入力がVDDに結合され、したがって、LSSDCクロック・パルスに応じて「1」に更新される。同様に、次の部分44の3つのセルは、差し迫ったバウンダリ・スキャン・チェーン・シーケンスの準備としてバウンダリ・スキャン・ステアリング制御信号CNTLとマルチプレクサ制御信号PR0、PT0を「1」に更新するために、そのそれぞれの1次入力がVDDに結合されている。制御信号RI、DI1、DI2、C_TESTを提供するための制御レジスタ26へのデータのロードに関連する部分46、48の残りのセルは、その現行値を保持するようにそれぞれの1次入力がそれぞれのシフト・レジスタ出力に結合されている。LSSDCクロック・パルス後、MTESTのもう1つのパルス「N」は、それぞれのL2ラッチを介して部分42、44、46、48のL1ラッチ値を制御レジスタ28に転送する。MTESTのパルス「N」中、L1ラッチ値は、入出力バウンダリ・スキャン・チェーンの制御レジスタに関連するセルについてのみ、関連L2ラッチをフラッシュされる。入出力バウンダリ・スキャン・チェーンの他のセルでは、差し迫ったバウンダリ・スキャンの準備として関連L1ラッチからそれぞれのL2ラッチへデータを転送するために、後続のLSSDBクロック・パルスが必要である。
【0067】
間隔204中、入出力バウンダリ・スキャン・チェーンからデータをスキャン・アウトし、同時に新しいデータをスキャン・インするために、LSSDAおよびLSSDBクロック対のシーケンスが提供される。その後、MTESTのパルス「N」がもう一度新しい値で制御レジスタを更新する。
【0068】
入出力バウンダリ・スキャン・チェーンの代替低減構成では、図10に示すように、制御レジスタのロードとFPGAのテストに別のシーケンスの信号を使用している。間隔206中、入出力バウンダリ・スキャン・チェーンのテスト動作を可能にするために、MTESTはローに保持される。入出力バウンダリ・スキャン・チェーンで「1」という値をフラッシュするように、LSSDAおよびLSSDBクロック信号は、入出力バウンダリ・スキャン・チェーンのシリアル入力に「1」を印加する間、ともにハイに保持される。間隔208中。LSSDAクロックはハイに保持され、LSSDBクロックはシリアル入力に「0」が印加される間、ローに保持される。したがって、入出力バウンダリ・スキャン・チェーンの第1のL1ラッチには「0」という値がロードされる。次に、LSSDAクロックはローを返し、LSSDBクロックの「B1」パルスは第1のL1ラッチの値「0」を第1のL2ラッチにシフトする。第2の対のLSSDAおよびLSSDBクロック・パルスは、新しい「1」という値を第1のセルにスキャン・インする間に、入出力バウンダリ・スキャン・チェーンの第1のセルの値「0」をその第2のセルに転送する。LSSDBクロックの第2の「B2」パルス後、入出力バウンダリ・スキャン・チェーンの第1および第2のセルには、1と0がそれぞれロードされる。
【0069】
間隔210中、MTESTの「N1」パルスは、入出力バウンダリ・スキャン・チェーンの関連セルのデータに応じて制御レジスタを更新する。制御レジスタのビット・バイパスBP部分とバウンダリ・スキャン・ステアリング制御CNTL部分は、1と0でそれぞれ更新される。バウンダリ・スキャン・ステアリング制御信号CNTLをローに保持した状態で、マルチプレクサ56(図7を参照)は入出力バウンダリ・スキャン・チェーンの一部分46のシリアル出力を入出力リング部分58をバイパスして一部分48のシリアル入力に印加する。後続のバウンダリ・スキャン中、それに応じて制御レジスタを更新するために、制御レジスタのロードに関連する入出力バウンダリ・スキャン・チェーンのセルに新しいデータがスキャン・インされる。
【0070】
前述のように、応用例によっては2つまたはそれ以上のフィールド・プログラマブル・ゲート・アレイが使用され、第1のアップストリーム・フィールド・プログラマブル・ゲート・アレイに関連する入出力バウンダリ・スキャン・チェーンが第2のダウンストリームFPGAの入出力バウンダリ・スキャン・チェーンにシリアルに接続される。たとえば、テスト中に、第2のFPGAの入出力バウンダリ・スキャン・チェーンをロードし、第1のFPGAの入出力バウンダリ・スキャン・チェーンをバイパスすることが必要になる場合もある。したがって、第1のFPGAでは、単一ビット・バイパス・レジスタのみを含む代替低減入出力バウンダリ・スキャン・チェーン構成を選択するために、単一ビット・バイパス制御信号BPが更新されている。図11は、このバイパス構成の提供に関連する信号のシーケンスを示すものである。間隔212中、入出力バウンダリ・スキャン・チェーンのセルは「1」でフラッシュされる。間隔214中、LSSDAおよびLSSDBクロック・パルス対は、第1のFPGAの入出力バウンダリ・スキャン・チェーンの第1のセルに「0」という値をロードする。MTESTのパルス「N1」は第1のFPGAの制御レジスタを更新し、バイパス制御信号BPを「0」に設定する。
【0071】
間隔216中、後続のバウンダリ・スキャン動作BS1により、データは第1のFPGAの単一ビット・バイパス・セルを通過して、第2のダウンストリームFPGAに関連する入出力バウンダリ・スキャン・チェーンに入る。同じバウンダリ・スキャン動作BS1中、バイパス制御信号に関連する第1のFPGAの1つのバイパス・レジスタに新しいデータをロードすることができ、したがって、MTESTの後続N2パルスはバイパス制御信号BPの状態を変更することができる。上記の例では、それぞれのバウンダリ・スキャン・チェーンがシリアルに接続された第1および第2のFPGAについて説明してきた。ただし、このようなFPGAが3つ以上の場合にも同一原理が適用可能であることに留意されたい。
【0072】
次の項では、FPGAの様々なテスト構成と、それに関連する制御レジスタの信号用の値について説明する。
【0073】
【表3】
FPGA制御レジスタの状態表
(電源オンまたは構成MOD0後のデフォルト値は「BSまたはSN」である。)
状態 -BP CNTRL -PR0,-PT0 -RI,-DI1,-DI2 -C_TEST
BSまたはSN 1 1 (1,1) (1,1,1) 1
CARD 1 1 (1,0) (1,1,1) x
CHIP 1 1 (0,1) (x,0,1) 0
ISLT 1 1 (x,x) (0,0,0) 1
REG-ONLY 1 0 (1,1) (1,1,1) 1
BYPASS 0 x (1,1) (1,1,1) 1
【0074】
制御レジスタによってもたらされるテスト構成:
制御レジスタの制御信号のすべて(すなわち、BP、CNTL、PR0、PT0、RI、DI1、DI2、CTEST)が1の場合、表3に示すように、制御レジスタは、バウンダリ・スキャンBSまたはスナップ・ショットSN動作を可能にするためのその通常状態またはデフォルト状態になっている。バウンダリ・スキャン動作では、LSSDAおよびLSSDBクロック対が入出力バウンダリ・スキャン・チェーンを通ってデータを伝播する。スナップ・ショット動作では、LSSDCクロック・パルスが関連の1次入力で受け取った通りに入出力バウンダリ・スキャン・チェーンにデータを捕捉する。入出力ポートに関連するレシーバまたはドライバのいずれも禁止されないように、レシーバおよびドライバ禁止制御信号RI、DI1、DI2はすべてハイになる。マルチプレクサ制御信号PT0、PR0(図4に関連して前述したように入出力バウンダリ・スキャン・チェーンに関連するセルのマルチプレクサを制御するため)はハイになり、入出力バウンダリ・スキャン・チェーンのそれぞれのシフト・レジスタ・ラッチを関連の入出力データ経路から引き離しておく。
【0075】
送信制御信号PT0がローに設定されると、入出力バウンダリ・スキャン・チェーンはパラメトリック・カード・テストCARD用に構成される。マルチプレクサ60(図4を参照)は、トライステート・バッファ82を介して入出力ポート36に向かって出力すべきデータとして、第1のLSSDレジスタ72のスレーブ・ラッチL2のデータを選択する。マルチプレクサ84は、第2のLSSDレジスタ88のスレーブ・ラッチL2のデータ内容に応じてトライステート・バッファ82を使用可能にする。レシーバ制御信号PR0はハイのままになるので、したがって、LSSDCクロック・パルスは、マルチプレクサ64および68を介して入出力ポート36'から受け取った通りに第1のLSSDレジスタ72のマスタ・ラッチL1にCARDデータを捕捉する。第2のLSSDレジスタ88のマスタ・ラッチL2は、前のバウンダリ・スキャン動作中にスキャン・インした通りに、その関連スレーブ・ラッチL2によってそれに提示されたトライステート制御信号を捕捉する。
【0076】
もう一度表3を参照すると、CHIPテスト中、レシーバ制御信号PR0と第1のドライバ禁止制御信号DI1はともにローに保持され、チップ内からのデータはその関連機能入出力ポートを励起できなくなる。レシーバ制御信号PR0をローに保持した状態で、マルチプレクサ64(図4)は、第1のLSSDレジスタ72のスレーブ・ラッチL2によって提供された通りに、データをFPGA(チップ)に転送する。PT0をハイに保持した状態で、LSSDCクロック・パルスは、マルチプレクサ60および68を介してFPGA(チップ)内から受け取った通りに第1のLSSDレジスタ72のマスタ・ラッチL1にデータを捕捉する。第2のLSSDレジスタ88のマスタ・ラッチL1は、マルチプレクサ84を介してチップ内から提供された通りにトライステート制御データを捕捉する。
【0077】
チップ分離テストISLTでは、関連のレシーバおよびドライバ禁止制御信号RI、DI1、DI2をアクティブ・ローに保持することにより、入出力ポートのすべてのレシーバとドライバが禁止される。この条件下では、それぞれの入出力ポートが分離されたハイ・インピーダンス状態用に設定される。したがって、それに関連するシンク電流またはソース電流を検出することによって、ポートの障害を判定することができる。
【0078】
表3の残りの2つの状態は、レジスタ専用状態REG-ONLYとバイパス状態BYPASSを含む。レジスタ専用状態REG-ONLYは、前述のようにバウンダリ・スキャン・ステアリング制御信号CNTLがローに設定されたときに得られ、入出力バウンダリ・スキャン・チェーンは制御レジスタのロードに関連する部分のみを含むその低減構成用に設定される。バイパス状態BYPASSでは、前に説明したように、入出力バウンダリ・スキャン・チェーンは単一ビット・バイパス・レジスタのみを含むその追加低減構成になっている。
【0079】
テストに関連するFPGAの追加の特徴:
図12を参照すると、FPGA10のプログラマブル資源12は、56×56のアレイに配置された複数のプログラマブル論理セルを含む。この論理セルのアレイはセクタ112に分割され、それぞれのセクタは8×8にグループ化した論理セルを含む。この場合も、このような論理セルの詳細については、"Programmable Logic Cell"という名称の米国特許出願の上記の部分に記載されている。
【0080】
図13は、プログラマブル論理セル1161,1〜1168,8からなる単一セクタ112を示している。たとえば、論理セル1161,6は、垂直相互接続導体118aおよび118bと水平相互接続導体120aおよび120bによって囲まれている。アレイ内の任意の2つの論理セルと関連入出力ポートとの間の接続を行うために、アレイの様々な行と列の間には、同様の水平および垂直相互接続導体が位置決めされている。すべての相互接続導体が相俟ってプログラマブル・アレイのプログラマブル相互接続ネットワーク全体が形成され、そのネットワークは"Programmable Array Interconnect Network"という名称の米国特許出願の上記の部分により実現することができる。以下に詳述するように、ネットワーク内でレピータまたはスイッチ回路136を使用することができる。
【0081】
それぞれの論理セル116のプログラマブル・マルチプレクサ(図示せず)は、それぞれの論理セルと論理セルを取り囲むバスの関連信号線との間の選択結合を行う。これらのマルチプレクサは、パスゲート・マルチプレクサとして実現され、フィールド・プログラマブル・ゲート・アレイ内の様々なマルチプレクサのテストと障害分離を支援するために制御レジスタ28によって提供されるマルチプレクサ・テスト制御信号C_TESTに応じて選択的に使用可能になる追加のプルダウン(またはプルアップ)パスゲート・デバイス(図示せず)を含む。このようなプルダウン(またはプルアップ)マルチプレクサの特徴と関連のテスト手順の詳細については、"Modeling and Test Generation for MOS Transmission Gate Stuck-Open Faults"(IEE PROCEEDINGS-G, Vol. 139, No. 1, pp. 17-22, (1992年2月))というタイトルのM. Belkadi他による参考文献に記載されているが、この参考文献は参照により本明細書に組み込まれる。
【0082】
プログラマブル・ゲート・アレイ内の1行分のコア・セルの一方の側に関連するバス120aを図14に示す。レピータ136aなどのレピータまたはスイッチ回路は、8つのコア・セルごとの、すなわち、各セクタ境界ごとの、ローカル・バスL1および高速バスE1に関連付けられている。レピータ・ラッチ150(矢印で表す)は関連ローカル・バス内の各レピータ回路に並列に設けられている。たとえば、レピータ・ラッチ1501は、ローカル・バスL1の一部分152と一部分156との間に結合されたLSSDレジスタを含む。同様のレピータ・ラッチ1502、1503、1504は、レピータ回路136bおよび136c内のローカル・バスL2、L3、L4にそれぞれ関連付けられて示されている。
【0083】
レピータ・スキャン・チェーン:
図14および図1を参照すると、複数のレピータ・ラッチ1501、1502、・・・15024は、まとめてシリアル・スキャン・チェーン、たとえば、レピータ・スキャン・チェーン301として構成されている。このレピータまたは相互接続のスキャン・チェーンにより、それぞれのレピータ・ラッチへのシリアルでのデータのスキャン・インとそれからのスキャン・アウトが可能になる。順次レピータ・ラッチのそれぞれは、そのシリアル出力が関連シリアル・スキャン・チェーン内の後続レピータ・ラッチのシリアル入力に接続されている。スキャン・チェーン(301)の第1のレピータ・ラッチ(1501)のシリアル入力は関連レピータ・スキャン・チェーンのスキャン入力を提供し、スキャン・チェーン(301)の最後のレピータ・ラッチ(5024)のシリアル出力は関連レピータ・スキャン・チェーンのスキャン出力を提供する。レピータ・スキャン・チェーン30のシリアル入力とシリアル出力は、関連の列および行のスキャン・チェーンに応じて識別される。レピータ・スキャン・チェーンの7つの列へのシリアル入力は、相互接続部SITOP(0〜7)によって提供される。列レピータ・スキャン・チェーン用の関連シリアル出力は相互接続部SOBOT(0〜7)によって提供される。行レピータ・スキャン・チェーン用のシリアル入力と出力は同様に相互接続部SIRIGHT(0〜7)とSOLEFT(0〜7)によってそれぞれ提供される。レピータ・スキャン・チェーン内のそれぞれのレピータ・ラッチは、それぞれのレピータ・スキャン・チェーンの同期および並列LSSDスキャン動作を可能にするために、LSSDA、LSSDB、LSSDCクロックを共用する。それぞれのレピータ・スキャン・チェーンのLSSDクロックは、MTESTがアクティブ・ローのときに関連の入出力相互接続部LSSDA、LSSDB10、LSSDCを介して提供される。レピータ・スキャン・チェーンの動作は、レピータ・スキャン・チェーン制御REPTにより可能になる。レピータ・スキャン・チェーンのこれらの相互接続部へのアクセスは、MTESTとTESTMORE制御信号がともにアクティブ・ローのときに関連の複数使用入出力ポート「m」で提供される。
【0084】
各レピータ・ラッチは、その1次出力が関連ローカル・バスのその一部分に選択的に結合できるようにするために、その関連構成データに応じて個別にプログラム可能である。各レピータ・ラッチ用の構成データは、構成SRAMメモリ14の関連メモリ・セル内に格納される。レピータ・スキャン・チェーンの詳細には、"Programmable Array Interconnect Latch"という名称の米国特許出願の上記の部分に記載されている。
【0085】
構成スキャン・チェーン:
前述のように図1を参照すると、構成論理回路16とデコーダ/シーケンサ18により、FPGA10のプログラマブル資源を構成するために構成データをSRAM14にロードすることができる。上記の参考文献"Application Note AT6000 Series Configuration"と"Versatile and Efficient Cell-to-Local Bus Interface in a Configurable Logic Array"という名称の米国特許第5298805号では、関連のSRAMメモリ14にアクセスするための構成論理回路の既知の動作モードが開示されている。デコーダ/シーケンサ18は、"Continuous Address Structure With Folding"という名称の米国特許出願の上記の部分に記載されているように、FPGAの様々なプログラマブル資源12に対しメモリ14を効率よく割り振ることができる。LSSDレジスタ・ラッチは、構成論理回路の様々な領域の境界を示しセグメント化するシリアル・スキャン・チェーンとして配置されている。この構成スキャン・チェーン24により、構成論理回路のシリアル・スキャン・アクセスと機能検証が可能になる。
【0086】
構成スキャン・チェーン24のLSSDシフト・レジスタは、E. B. Eichelberger他による"A Logic Design Structure For LSI Testability"(14th Design Automation Conference Proceedings, 1977年6月20日、21日、22日、New, Orleans, LA, IEEE Cat. No. 77, CH 1216-1C, pp. 462-468)、R. W. Bassett他による"Boundary-Scan Design Principles For Efficient LSSD ASIC Testing"(IBM Journal of Research and Development, Vol. 34, No. 2/3, 1990年3月/5月、pp. 339-354)、Eichelbergerに対して交付された"Level Sensitive Logic System"という名称の米国特許第3783254号という参考文献に示されている原理に応じて実現され動作する。
【0087】
表1を参照すると、構成スキャン・チェーン24へのアクセスは、構成スキャン入力SICONFIGおよび構成スキャン出力SOCONFIGを介して提供される。これらのスキャン・ポートにより、構成スキャン・チェーンとの間のLSSDアクセスが可能になる。構成スキャン・チェーンの動作は、その関連構成制御信号CONFGに応じて選択的に可能になる。構成スキャン・チェーンの動作に関連するクロック信号としては、LSSDA、LSSDCと、LSSDB10、LSSDB1、LSSDB2、LSSDB3などがある。これらの関連クロック相互接続部は、MTESTとTESTMOREがともにアクティブのときに専用「d」および複数使用「m」入力ポートで使用可能になる。
【0088】
既知のFPGAの場合、その動作は、通常、所望のユーザ定義の回路を実現するためにFPGAを構成するための関連構成論理回路によりSRAM14に構成データをロードすることを伴う。その結果得られる回路が正しく機能しない場合、FPGAのどこで問題が発生しているかは明らかではなかった。適正な回路構成および動作は、それぞれのFPGAサブシステムに依存する。SRAM14に構成データを適切にロードするためには、構成論理回路が適正に動作していなければならない。SRAM14は、構成データを格納し、関連構成データに応じてFPGAのプログラマブル資源を励起できるものでなければならない。最後に、プログラマブル資源と相互接続部は、ユーザ定義回路内にその所望の機能性を実現するためにプログラム可能かつ動作可能でなければならない。したがって、FPGAの様々なサブシステムの相互依存度が高くなる。本発明によれば、FPGA内の様々なサブシステムの相互依存度を考慮に入れて、FPGAの各サブシステムの適正な機能性を系統的に判定するために、一連のテストが適当な分割征服方式で実現される。
【0089】
この説明の次の部分では、上記で特徴づけられた様々なサブシステムによりFPGAをテストするためのテスト方法について説明する。
【0090】
テスト方法:
FPGAのテストを実行する場合、外部テスタはFPGAのすべてのピンまたはその縮小セットにアクセスすることができる。図15は、外部テスタがFPGAのすべてのピンにアクセスする場合のタイミング図を示している。MTESTがローの場合、FPGAはそのテスト・モードになっており、LSSDA、LSSDC、LSSDBクロック・シーケンスはFPGA内のそれぞれのスキャン・チェーンのLSSD動作を提供する。間隔T中にTESTMOREがローになっている間、複数使用入出力ポート(表1を参照)に関連する入出力バウンダリ・スキャン・チェーンのその部分のデータは関連の入出力相互接続部に印加されない。ただし、機能入出力ポート「bs」に関連する入出力バウンダリ・スキャン・チェーンの残りの部分のデータは、受信および送信マルチプレクサ制御信号PR0およびPT0の状態に応じて、それぞれの入出力相互接続部に印加される。さらに、TESTMOREがローの場合、レシーバおよびドライバ禁止制御信号RI、DI1、DI2と、チップ・マルチプレクサ・テスト制御信号C_TESTを受け取るために直接入力が使用可能になる。間隔T後、MTESTはハイに戻り、直接入力制御信号に関連する制御レジスタ28のラッチは、間隔T中に直接印加された制御信号用の値を提供する。
【0091】
FPGAの代替テスト動作では、外部テスタはテスト中にFPGAの専用「d」および複数使用「m」入出力ポートにのみアクセスする。図16を参照すると、外部テスタは、PR0、PT0、RI、DI1、DI2、C_TEST用の所望の値をそこにロードするために間隔218中に入出力バウンダリ・スキャン・チェーンのLSSD動作を行う。次に、これらの値はMTESTのパルス「N」によって制御レジスタ28にラッチされ、表3に関連して前述したようにFPGA用の所望のテスト状態(すなわち、スキャン、チップ、カード、または分離テスト)を確立する。
【0092】
間隔220中、外部テスタに拡張テスト・インタフェース、すなわち、複数使用ポート「m」を提供し、FPGAの追加テストを可能にするために、TESTMOREはローに保持される。外部テスタは、(後述するように)間隔220中にFPGAをテストするために所与のLSSDテスト動作を実行し、レシーバおよびドライバ禁止制御信号に必要な値を直接提供する。TESTMOREがローの場合にレシーバおよびドライバ禁止制御信号に提供された値は、その後のFPGAのバウンダリ・スキャン更新または構成によって変更されない限り、TESTMOREがハイに戻った後もそのまま有効になる。間隔222は、図9に関連して前述した間隔202に対応する。
【0093】
テスト中に外部テスタによってFPGAのピンのすべてまたは縮小セットのいずれがアクセスされるかにかかわらず、図15および図16の間隔T中に1組の各種LSSDテスト動作を提供することができる。図17を参照すると、TESTMOREがアクティブ・ローのときに、様々なレピータ・スキャン・チェーン30の動作を可能にするためにREPTをアサートすることができる。間隔224中、LSSDAおよびLSSDBクロック・シーケンスは、それぞれのスキャン入力、すなわち、SITOP(0〜7)およびSIRIGHT(0〜7)を介してレピータ・スキャン・チェーンにデータをスキャン・インする。次に、レピータ・スキャン・チェーンの各LSSDレジスタの内容は、SRAM14に格納されたそれぞれのレピータ・ラッチ構成データに応じて、対応するローカル・バス・セグメントに印加される。
【0094】
間隔226中、LSSDCクロック・パルスは、それぞれのシフト・レジスタの1次入力に提示された通りに様々なバス・セグメントのデータをレピータ・スキャン・チェーンに捕捉する。後続のLSSDBクロック・パルスは、差し迫ったスキャン・アウトの準備として、捕捉したデータをLSSDレジスタのマスタ・ラッチからそれぞれのスレーブ・ラッチにシフト・インする。間隔228中、LSSDAおよびLSSDBクロック・パルスからなるシーケンスは、関連のスキャン出力SOBOT(0〜7)およびSOLEFT(0〜7)を介して様々なレピータ・スキャン・チェーンからデータをスキャン・アウトする。
【0095】
プログラマブル相互接続ネットワークのバス構成をテストするためにこのようなレピータ・スキャン・チェーン動作を使用する。既知のデータが様々なレピータ・スキャン・チェーンにスキャン・インされ、バス相互接続部の関連セグメントに印加される。バス相互接続部は、同一または異なるレピータ・スキャン・チェーンのそれぞれのLSSDシフト・レジスタ・ラッチの1次出力と1次入力との間でデータを伝播するために事前に構成されている。次に、データは、受信側LSSDシフト・レジスタ・ラッチによって捕捉され、回復され、バス相互接続部のそれぞれのセグメントがデータを伝播するために適切に機能しているかどうかを判定するために印加したデータと比較される。
【0096】
代替応用例では、FPGAの所与のプログラム済み論理回路のテスト中にレピータ・スキャン・チェーンが使用される。このような応用例では、図17の間隔224と226の間に追加のシステム・クロック動作(図示せず)を設けることもできる。既知のデータは、所与のレピータ・スキャン・チェーンにスキャン・インされ、所与のプログラム済み論理回路に印加される。次に、所与のデータをそこで処理するために、任意のシステム・クロック動作を設けることもできる。所与のプログラム論理回路による適切な処理の後、後続のLSSDCクロック・パルスが所与のプログラム済み論理回路によって提供されたデータを受信側レピータ・スキャン・チェーンに捕捉する。その後、この捕捉結果データはスキャン・アウトされ、回復され、所与のプログラム済み論理回路の適正な機能性を判定するために分析される。
【0097】
図15および図16のタイミング図の間隔T中に実行可能なもう1つのLSSD手順は、構成論理回路16、18をテストするための構成スキャン・チェーン24(図1)の動作を含む。図18のタイミング図の間隔230では、構成スキャン・チェーンの動作を可能にするために構成制御信号CONFGがローに保持される。そのシリアル入力SICONFIGに応じてデータを構成スキャン・チェーンにスキャン・インするために、LSSDAおよびLSSDBクロック・パルスからなるシーケンスが用意されている。このようにして、移行条件をシミュレートするためにそれに印加された既知のテスト・ベクトルによって、構成論理回路の状態マシンが所定の状態に設定される。理論上では、既知のテスト・ベクトルに応じて状態マシンが所定の状態から後続の状態に移る必要がある。間隔232中、LSSDCクロック・パルスの次に、関連状態マシンのデータを適切に捕捉するために時間オフセットが変化する一連の後続LSSDBクロック・パルスが続く。複数のBクロックは、構成論理回路の様々なドメインに関連付けられ、構成論理回路のタイミング要件と適合するように時間的にオフセットされている。したがって、構成スキャン・チェーンのLSSD設計は、"A Logic Design Structure For LSI Testability"、"Boundary-Scan Design Principles For Efficient LSSD ASIC Testing"、米国特許第3783254号という上記の参考文献に開示されたLSSD方法の要件に合致する。間隔234では、構成論理回路の結果データを回復するために、LSSDAおよびLSSDBクロック・パルスからなるシーケンスが構成論理スキャン・チェーンからデータをスキャン・アウトする。次に、印加したテスト・ベクトルに応じて構成論理回路が適当な状態に合わせて適切に順序付けられているかどうかを判定するために、結果データが検査される。
【0098】
本発明が使用する追加のテスト方法は、SRAM14のテストを可能にするための構成論理回路の既知の動作モードであるモード7を含む。表1を参照すると、MTESTはハイに保持され、FPGAを構成モードにするために構成選択信号CSはローに保持される。FPGAが構成モードになっている場合、構成論理回路は3つのモード選択入力M0、M1、M2を介してモード7状態に入る。モード7を選択すると、外部テスタは、関連のアドレスおよびデータ・ポート、すなわち、ADDR(0〜16)およびDATA(0〜7)を介してSRAM14への読取り/書込みアクセスが許可される。SRAM14をテストするため、まずSRAMの所与の位置に既知のデータが格納される。その後、この所与の位置からデータが読み取られ、SRAMが正しく動作しているかどうかを判定するためにそこに事前にロードされた既知のデータと比較される。モード7とそれに関連する動作については、"Application Note AT6000 Series Configuration"というタイトルの参考文献とGaverick他に交付された"Versatile and Efficient Cell-to-Local Bus Interface in a Configurable Logic Array"という名称の米国特許第5298805号の上記の部分に詳しく記載されている。
【0099】
本発明内で使用する様々なテスト方法について示してきたので、この開示の次の項では、プログラマブル・ゲート・アレイをテストするために上記のテスト方法を使用するテスト・シーケンスについて説明する。
【0100】
テスト・シーケンス:
前述のように、FPGAの様々なサブシステムは互いに相互依存度が高い。本発明は、このようなサブシステムの相関依存度を考慮に入れて、FPGAの様々なサブシステムをテストするための一連のテスト方法を提供する。電源オン時に本発明によるFPGAの内部SRAM14(図1を参照)は、そのすべての位置が既知の既存状態に設定されて初期設定される。外部テスタは、MTESTをローに保持することにより、FPGAをテストに使用可能にする。次に、外部テスタは、関連相互接続部であるスキャン・インSIと、スキャン・アウトSOと、それぞれクロック相互接続部LSSDA、LSSDB10、LSSDCに応じた適切なLSSDクロックとを介してスキャン・チェーンによってデータを伝播することにより、入出力バウンダリ・スキャン・チェーン26のシリアル・スキャンの機能性をテストする。入出力バウンダリ・スキャン・チェーンにスキャン・インされたシリアル・データは、その後、スキャン・アウトされ、回復される。次に、回復されたデータは、入出力バウンダリ・スキャン・チェーンの適正なスキャン機能性を判定するために、スキャン・インされたデータと比較される。
【0101】
次に、FPGAの入出力ポートは、そのデフォルト構成に応じてテストされる。入出力ポートは、SRAM14の関連位置に格納された構成データに応じてプログラム可能である。電源オン時にSRAM14は、既知のリセット状態に初期設定される。したがって、FPGAの入出力ポートはそのデフォルト構成になっている。前述のように、入出力バウンダリ・スキャン・チェーン26のセルに関連するマルチプレクサは、制御レジスタ28によって提供される送信およびレシーバ制御信号PT0およびPR0によってそれぞれ制御される。電源オン時にそれぞれの制御信号は既知のデフォルト状態に設定される。同様に、やはり制御レジスタ26によって提供されるレシーバおよびドライバ禁止制御信号(RI、DI1、DI2)は、入出力ポートのデフォルト構成をテストするのに必要なデフォルトの電源オン値を提供する。複数使用入出力ポート「m」は、拡張テスト・インタフェース制御信号TESTMOREをハイに保持することにより、その機能的設定に維持される。したがって、表1にリストしたバウンダリ・スキャン「bs」および複数使用ポート「m」を含む機能入出力ポートの機能性をそのデフォルト構成に応じてテストするために、入出力バウンダリ・スキャン・チェーンが使用される。
【0102】
それぞれのデフォルト構成に応じてFPGAの入出力バウンダリ・スキャン・チェーンと機能入出力ポートの機能性を判定すると、本発明のテスト・シーケンスは、関連の構成スキャン・チェーン24による構成論理回路16、18のテストに移行することが好ましい。テスト・イネーブル制御信号MTESTはローに保持され、拡張テスト・インタフェースである複数使用入出力ポート「m」を使用可能にするために拡張テスト・インタフェース制御信号TESTMOREもローに保持される。したがって、構成スキャン入力SICONFIG、構成スキャン出力SOCONFIG、ならびに関連LSSDクロック線LSSDA、LSSDB10、LSSDC、LSSDB1、LSSDB2、LSSDB3により、構成スキャン・チェーンへのアクセスが可能になる。構成スキャン・チェーンのLSSD動作は、構成イネーブルCONFGをローに保持することにより、可能になる。図18に関連して前述したように、関連の状態マシンの状態シーケンスをテストするために、所定のテスト・ベクトルが構成スキャン・チェーンにスキャン・インされ、構成論理回路に印加される。構成論理回路によってもたらされる結果データは、構成スキャン・チェーンを介して捕捉され、構成論理回路の適正な機能性を判定するために予想結果データと比較される。
【0103】
構成論理回路の機能性を判定すると、次のステップは、SRAM14をテストし、FPGAの様々なプログラマブル資源を構成するためにそこの構成データをロードして格納できる能力を検証することを含む。このテストを開始するため、テスト・イネーブル制御信号MTESTはハイに保持され、FPGAの構成動作モードを選択するために構成選択CSはローに保持される。次に、前述のようにモード7動作を可能にするために、適切なデータがモード選択入力M0、M1、M2に印加される。SRAMのモード7テスト中、そこに構成データを受け取って保持するためのSRAMの能力を検証するために、様々な所定のテスト・ベクトルがSRAMの様々な位置に書き込まれ、そこから読み取られる。この時点で、FPGAの構成論理回路とメモリ・サブシステムの機能テストは完了し、FPGAの機能サブシステムを構成するために構成データをSRAMのロードする能力の検証が完了している。
【0104】
従来のテストでは、構成論理回路とSRAMの機能性を判定する前に、それぞれのデフォルト構成に応じて入出力ポートのテストが行われていた。この場合、次のステップでは入出力ポートに戻り、それぞれの各種プログラマブル構成に応じて入出力ポートをさらにテストする。SRAM14には、テストすべき特定のプログラマブル構成の入出力ポートをプログラミングするのに必要な構成データがロードされる。このようなテスト中、入出力ポートの所望のバウンダリ・スキャン・パラメトリック・テストを可能にするために、レシーバおよびドライバ禁止制御信号RI、DI1、DI2と、マルチプレクサ受信および送信制御信号PR0、PT0が設定される。
【0105】
プログラマブル入出力ポートの構成例としては、高い方の電源電圧へのプロアップ・デバイスまたはアースへのプルダウンデバイスを使って構成されるか、あるいは所与の出力インピーダンスが得られるように構成された入出力ポートを含む。適切なデータを入出力ポートに送信してこのようなプログラム済み構成をテストするか、あるいは構成したデータをそこからラッチして回復するために、入出力バウンダリ・スキャン・チェーンが使用される。LSSDCクロック・パルスに応じてデータをラッチすると、入出力バウンダリ・スキャン・チェーンは、送信および受信制御信号PT0およびPR0の状態と、制御レジスタによってもたらされるレシーバおよびドライバ禁止制御信号RI、DI1、DI2の状態とに応じて、FPGAの内部データまたは入出力ポートのデータを捕捉する。
【0106】
テスト・シーケンスの次のステップでは、レピータ・スキャン・チェーン30のシリアル・スキャン機能性を検査する。複数使用入出力ポート「m」に関連する拡張テスト・インタフェースを可能にするために、テスト・イネーブル信号MTESTと拡張テスト・インタフェース・イネーブル信号TESTMOREがローに保持される。それぞれのレピータ・スキャン・チェーンの動作を可能にするために、レピータ・イネーブルREPTがローに保持される。シリアル・データは、それぞれのシリアル入力SITOP(0〜7)とSIRIGHT(0〜7)により、レピータ・スキャン・チェーンにスキャン・インされる。それぞれのレピータ・スキャン・チェーンによりシリアル・データをシフトするために、適切なLSSDAおよびLSSDBクロック・パルスが提供される。スキャン・アウトされたデータは回復され、レピータ・スキャン・チェーンのスキャン・シフト機能性を判定するためにスキャン・インされたデータと比較される。レピータ・スキャン・チェーンのシリアル・データ経路が検証された場合、次にFPGAのプログラマブル相互接続部のテスト中にレピータ・スキャン・チェーンが使用される。
【0107】
プログラマブル相互接続部をテストする場合、FPGAの入出力ポートと、入出力バウンダリ・スキャン・チェーン26のセルと、レピータ・スキャン・チェーン30のシフト・レジスタ・ラッチとの間の所与のプログラマブル相互接続部を構成するために、まず構成データがSRAM14(図1)にロードされる。より具体的には、機能入出力ポートとレピータ・スキャン・チェーンのシフト・レジスタ・ラッチとの間、入出力バウンダリ・スキャン・セルとレピータ・レジスタ・スキャン・チェーンのシフト・レジスタ・ラッチとの間、または第1の送信レピータ・スキャン・チェーンのシフト・レジスタ・ラッチと第2の受信レピータ・スキャン・チェーンの後続シフト・レジスタ・ラッチとの間で、プログラマブル相互接続部が構成される。その後、関連の入出力ポート、入出力バウンダリ・スキャン・セル、または第1の送信レピータ・スキャン・チェーン、あるいはそのすべてにより、それぞれの構成済み相互接続部の入力側にテスト・データが印加される。このテスト・データは、関連の入出力ポート、入出力バウンダリ・スキャン・セル、または送信レピータ・スキャン・チェーン、あるいはそのすべての適切な構成に応じて印加される。その後、それぞれの構成済み相互接続部の出力側の結果データは、関連の受信レピータ・スキャン・チェーンのシフト・レジスタ・ラッチにラッチされる。次に、このラッチされたデータがスキャン・アウトされ、回復され、構成済み相互接続部の適切な機能性を判定するために相互接続部の入力側に印加されたテスト・データと比較される。このように相互接続部を構成し、テスト・ベクトルを印加し、回復し、結果データと比較するというシーケンスは、FPGAのプログラマブル相互接続部の様々な構成の適正な機能性を判定するために、複数回続行される。
【0108】
代替手順では、テスト・データが構成済み相互接続部を通過する方向が反対になる。すなわち、送信レピータ・スキャン・チェーンと、関連の受信側入出力ポート、入出力バウンダリ・スキャン・セル、第1のレピータ・スキャン・チェーンとの間を通過する。複数の関連レピータ・スキャン・チェーン・ストリングを同時かつ並列に動作させることにより、複数の構成済み相互接続部を並列にテストすることが好ましい。
【0109】
次に、相互接続部のテストに使用したのと同様のステップを使用して、FPGA10の論理セル116がテストされる。SRAM14には、論理セルを所望の論理構成にプログラミングするための構成データがロードされる。FPGAのプログラマブル相互接続部は、入力と出力のレピータ・スキャン・チェーン間で論理セルのインタフェースを取るために同様に構成される。代替構成では、プログラマブル相互接続部のテストに関連して前述したものと同様に、関連の論理セル116との間でデータを印加/受信するために入力または出力レピータ・スキャン・チェーンの代わりに入出力ポートまたは入出力バウンダリ・スキャン・チェーンが使用される。図19を参照すると、論理セル116は関連レピータ・スキャン・チェーン30のシフト・レジスタ・ラッチ150間に結合された状態で示されている。
【0110】
論理セル116と関連の相互接続部を適切に構成すると、関連のレピータ・スキャン・チェーン30にシリアルに所定のテスト・ベクトルがスキャン・インされる。それぞれの相互接続部を介して関連のプログラム済み論理セル116にそのデータを印加するために、それぞれの構成データに応じてレピータ・スキャン・チェーンのシフト・レジスタ・ラッチが構成される。プログラム済み論理セル116による適切な処理後、論理セル116によってもたらされた結果データを関連レピータ・スキャン・チェーンの受信シフト・レジスタ・ラッチにラッチするために、LSSDCクロック・パルスがレピータ・スキャン・チェーンに印加される。結果データのラッチ後、結果データはレピータ・スキャン・チェーンからスキャン・アウトされ、所望の論理構成用にプログラミングされた論理セル116の適正な機能性を判定するために所定の予想値と比較される。代替構成では、FPGAの関連入出力ポートから直接または入出力バウンダリ・スキャン・チェーンの関連セルを介して、結果データを読み取ることができる。同時に動作させたそれぞれの複数の並列レピータ・スキャン・チェーンを介して複数の論理セルを並列にテストすることが好ましい。
【0111】
論理セル116の1つの構成をプログラミングしテストすると、その様々な構成のテストが完了するまで、論理セルの代替構成についてテスト手順が繰り返し実行される。このようにして、プログラマブル相互接続(パスゲート)マルチプレクサ、プログラマブル論理ゲート、プログラマブル・プルダウンおよびプルアップなど、論理セルの各プログラマブル要素がテストされる。論理セル116のパスゲート・マルチプレクサをテストする場合、"Modeling and Test Generation MOS Transmission Gate Stuck-Open Faults"というタイトルの参考文献の上記の部分に従ってその障害の検出が可能になるようにマルチプレクサの内部プルダウンを構成するために追加のチップ・マルチプレクサ・テスト制御信号C_TESTがローに設定される。
【0112】
論理セル116の同期論理要素、たとえば、図19に関してはDフリップフロップ143をテストする場合、論理セル116は、データがフリップフロップを通過するように構成される。論理セルは、クロック線144からシステム・クロック信号を受け取るようにさらに構成される。論理セルのテストに関連して前述したものと同様に、既知のテスト・データが入力レピータ・スキャン・チェーン30にスキャン・インされ、そのスキャン・チェーンは既知のデータを構成済み論理セル116に印加するように構成される。次に、様々な論理セル116のフリップフロップ143にデータをラッチするために、システム・クロック信号が提供される。次に、フリップフロップ143によって提供された結果データは、LSSDCクロック・パルスにより受信レピータ・スキャン・チェーンの関連シフト・レジスタ・ラッチに捕捉される。次に、ラッチされたデータがスキャン・アウトされ、回復され、フリップフロップ143の適正な機能性を判定するために印加されたテスト・データと比較される。ただし、フリップフロップの機能性をテストするための上記の手順でもクロック線144の動作を検証することに留意されたい。
【0113】
フィールド・プログラマブル・ゲート・アレイの中には、複数のプログラマブル・クロック分配線を含むものがあり、その分配線によりフリップフロップ143はクロック信号を代替受信することができる。このようなFPGAでは、FPGAの各クロック分配構成をテストするために、各テスト手順ごとにクロック分配ネットワークの構成を変えて、上記のフリップフロップ・テスト手順が複数回繰り返される。
【0114】
FPGAのフリップフロップと関連のリセット分配資源のリセット機能性をテストするために、同様の手順が使用される。このようなテストを実行する場合、まず、コア・セルのフリップフロップが既知の設定状態に初期設定され、その状態になると所与の構成済みリセット・ネットワークによりリセット・パルスがそこに伝播される。次に、フリップフロップの結果データ内容は、適切に構成された受信レピータ・スキャン・チェーンのシフト・レジスタ・ラッチにラッチされる。次に、結果データはレピータ・スキャン・チェーンからスキャン・アウトされ、回復され、適正なリセット機能性を判定するために分析される。
【0115】
本発明の他の態様では、FPGA10は、所望のユーザ定義論理回路を実現するようにプログラミングされ、その論理回路では複数の論理セル116を使用することができる。入出力バウンダリ・スキャン・チェーンのセルまたはレピータ・スキャン・チェーンのシフト・レジスタ・ラッチあるいはその両方は、ユーザ定義の論理回路へのLSSDアクセスを可能にし、構成済み論理回路へのデータの印加とそこからのデータの受信を可能にするように構成される。所定のテスト・ベクトルは適切に構成された入力スキャン・チェーンにスキャン・インされ、構成済み論理回路に印加される。関連のシステム・クロック動作の適用を含む場合もあるが、構成済み論理回路が印加されたテスト・ベクトルを処理できるようになると、論理回路がもたらした結果データを適切に構成した受信スキャン・チェーン(複数も可)のシフト・レジスタ・ラッチにラッチするために、LSSDCラッチ・クロック・パルスが提供される。次に、この結果データはスキャン・アウトされ、回復され、ユーザ定義の論理回路の適正な機能性を判定するために所定の予想結果データと比較される。
【0116】
したがって、FPGAの様々なサブシステムのテストを可能にするために様々なテスト方法を開示した。さらに、FPGAの様々なサブシステム間の相互依存度を考慮に入れた方法でFPGAの様々なサブシステムをテストするための包括的なテスト・シーケンスも開示した。
【0117】
特に本発明の好ましい実施例に関連して本発明を示し説明してきたが、当業者であれば、本発明の精神および範囲を逸脱せずに形態および細部について上記以外にも様々な変更が可能であることを理解するだろう。
【図面の簡単な説明】
【図1】本発明によるフィールド・プログラマブル・ゲート・アレイのブロック図である。
【図2】本発明によるフィールド・プログラマブル・ゲート・アレイのブロック図である。
【図3】フィールド・プログラマブル・ゲート・アレイの入出力バウンダリ・スキャン・チェーンを示すブロック図である。
【図4】図3の入出力バウンダリ・スキャン・チェーンの入出力バウンダリ・スキャン・セルのブロック図である。
【図5】図4の入出力バウンダリ・スキャン・チェーンの第1および第2のシフト・レジスタ・ラッチを示す概略図である。
【図6】(イ)フィールド・プログラマブル・ゲート・アレイを構成しテストするための制御信号を提供するための制御レジスタへのロードに関連する、図3の入出力バウンダリ・スキャン・チェーンの特定の部分を示すブロック図である。(ロ)フィールド・プログラマブル・ゲート・アレイの制御レジスタへのロードに関連する部分のみから構成される、入出力バウンダリ・スキャン・チェーンの代替構成を示すブロック図である。(ハ)単一ビット・バイパス・レジスタのみから構成される、もう1つの代替低減入出力バウンダリ・スキャン・チェーンを示すブロック図である。
【図7】制御レジスタと、入出力バウンダリ・スキャン・チェーンのそれに関連する部分とを表すブロック図である。
【図8】制御レジスタと、入出力バウンダリ・スキャン・チェーンのそれに関連する部分とを表すブロック図である。
【図9】制御レジスタと関連して入出力バウンダリ・スキャン・チェーンを動作させることに関連する信号を表すタイミング図である。
【図10】制御レジスタ部分のみにロードするために入出力バウンダリ・スキャン・チェーンを動作させることに関連する信号を表すタイミング図である。
【図11】単一ビット・バイパス・レジスタのみから構成されるさらに低減した入出力バウンダリ・スキャン構成を動作させることに関連する信号を表すタイミング図である。
【図12】プログラマブル・ゲート・アレイの複数のプログラマブル論理セルを示す図である。
【図13】プログラマブル論理セルからなるアレイと、プログラマブル論理セルを選択的に接続するための関連相互接続ネットワークとを示す、図12のプログラマブル・ゲート・アレイのセクタ部分を示す図である。
【図14】プログラマブル・ゲート・アレイの1行分の論理セルに関連するプログラマブル・バスのレピータ回路を示すブロック図である。
【図15】そのすべてのピンにアクセスする際のプログラマブル・ゲート・アレイのテスト中に使用するクロック信号と関連の制御信号とを示す簡略タイミング図である。
【図16】低減した数の入出力ピンにアクセスする際のプログラマブル・ゲート・アレイのテストに関連するクロック信号と制御信号とを示すタイミング図である。
【図17】図16の間隔T中にプログラマブル・ゲート・アレイのレピータ・スキャン・チェーンを動作させるための制御信号と関連のスキャン・クロックとを示すタイミング図である。
【図18】図16の間隔T中にプログラマブル・ゲート・アレイの構成スキャン・チェーンを動作させるための制御信号と関連のクロックとを示すタイミング図である。
【図19】プログラマブル・ゲート・アレイのコア・セルをテストするために構成されたレピータ・スキャン・チェーンを示す部分概略図である。
【符号の説明】
10 フィールド・プログラマブル・ゲート・アレイ
14 SRAM
16 SRAM制御装置
18 デコーダおよびシーケンサ
20 構成プログラム・ビット
24 構成スキャン・チェーン
32 アドレス・バス
34 データ・バス
Claims (41)
- 複数の入出力ポートと、
前記複数の入出力ポートのうちの関連入出力ポートに結合された入出力機能信号線と、
関連の論理構成データに応じて特定の論理回路を提供する複数のプログラマブル資源と、
関連の経路指定構成データに応じて入出力機能信号線と複数のプログラマブル資源のプログラマブル論理ユニットとを相互接続する複数のプログラマブル相互接続部と、
それぞれの複数のプログラマブル論理ユニットおよび複数のプログラマブル相互接続部に関連する複数のメモリ・セルであって、複数のメモリ・セルのうちの指定のメモリ・セルが関連の論理構成データと経路指定構成データを保持する複数のメモリ・セルと、
メモリ要求信号を受け取る入力を有する構成論理回路であって、メモリ要求信号に応じて複数のメモリ・セルのうちのいくつかのメモリ・セルへのアクセスを可能にする構成論理回路とを有する、改良されたテスト可能フィールド・プログラマブル・ゲート・アレイ(FPGA)において、
当該FPGAが、
入出力機能信号線を横切るバウンダリ・スキャン・チェーンとして配置された第1のLSSDスキャン・レジスタであって、入出力機能信号線および関連の入出力ポートへのシリアル・スキャン・アクセスとそれらの機能検証を可能にするために前記第1のLSSDスキャン・レジスタが関連の入出力機能信号線への選択的結合を行う第1のLSSDスキャン・レジスタと、
構成論理回路の所与のセグメントの周りのスキャン・チェーンとして配置され、構成論理回路へのシリアル・スキャン・アクセスを可能にし、その機能検証を可能にするための第2のLSSDスキャン・レジスタと、
プログラマブル相互接続部に沿って配置された相互接続スキャン・チェーンを提供する第3のLSSDスキャン・レジスタであって、プログラマブル相互接続部へのシリアル・スキャン・アクセスとそれらの機能検証を可能にするために第3のLSSDスキャン・レジスタがそれぞれのプログラマブル相互接続部への選択的結合を行う第3のLSSDスキャン・レジスタとを含むテスト回路を含むことを特徴とする、改良されたテスト可能フィールド・プログラマブル・ゲート・アレイ(FPGA)。 - 第3のLSSDスキャン・レジスタが、複数のメモリ・セルのうちの関連メモリ・セルに保持されたラッチ構成データに応じてそれぞれのプログラマブル相互接続部に選択的に結合された1次出力を有することを特徴とする、請求項1に記載の改良されたFPGA。
- テスト回路が、バウンダリ・スキャン・チェーンの制御レジスタ部分を介してプログラム可能な制御レジスタをさらに含み、前記制御レジスタがFPGAの所与の特徴を制御するための制御信号を提供することを特徴とする、請求項1に記載の改良されたFPGA。
- 前記バウンダリ・スキャン・チェーンが、前記制御レジスタによって提供される前記制御信号のうちの1つの制御信号に応じて選択的に可能になる低減スキャン・チェーン構成を含むことを特徴とする、請求項3に記載の改良されたFPGA。
- 前記低減スキャン・チェーン構成が、前記制御レジスタ部分のみから構成されることを特徴とする、請求項4に記載の改良されたFPGA。
- 選択入出力機能信号線が関連入出力ポートの信号をFPGAに伝播するのを選択的に禁止するために、前記制御レジスタが受信禁止制御信号を提供することを特徴とする、請求項3に記載の改良されたFPGA。
- 選択入出力ポートがFPGA内から所与の信号を受け取るのを選択的に禁止するために、前記制御レジスタがドライバ禁止制御信号を提供することを特徴とする、請求項3に記載の改良されたFPGA。
- 前記複数の入出力ポートのうちの所与の専用入出力ポートが、非機能入出力ポートとして、テスト・イネーブル信号受信専用であり、
他の所与の入出力ポートが、テスト動作モード以外の動作モードでは、機能入出力ポートとして機能し、テスト動作モードでは、前記制御信号のうちの所与の制御信号が前記制御レジスタと関連のバウンダリ・スキャン・チェーンとを介して間接的に提供されるのではなく、前記所与の制御信号を外部テスタから直接受け取るための直接入力として代替機能するように前記テスト・イネーブル信号に応じて選択的に再構成可能であることを特徴とする、請求項3に記載の改良されたFPGA。 - 前記制御レジスタが、前記入出力機能信号線と関連入出力ポートとの間のインタフェース機能を制御するためにレシーバ/ドライバ制御信号を提供することを特徴とする、請求項3に記載の改良されたFPGA。
- 前記複数の入出力ポートのうちの所与の専用入出力ポートが、非機能入出力ポートとして、テスト・イネーブル信号受信専用であり、
他の所与の入出力ポートが、テスト動作モード以外の動作モードでは、前記入出力機能信号線の選択信号線をインタフェースするために機能入出力ポートとして機能し、テスト動作モードでは、レシーバ/ドライバ制御信号が前記制御レジスタとバウンダリ・スキャン・チェーンの関連制御レジスタ部分とを介して間接的に提供されるのではなく、前記レシーバ/ドライバ制御信号を外部テスタから直接受け取るための直接入力として代替機能するように前記テスト・イネーブル信号に応じて選択的に再構成可能であることを特徴とする、請求項9に記載の改良されたFPGA。 - テスト・ベクトルを提供する手段と、
テスト・ベクトルをシリアルに第2のLSSDスキャン・レジスタにスキャン・インし、テスト・ベクトルを構成論理回路の関連セグメントに印加するスキャン手段と、
印加されたテスト・ベクトルの適切な処理後に構成論理回路によってもたらされる結果データを第2のLSSDスキャン・レジスタに捕捉するための適切なクロックを提供する捕捉手段とを有し、
前記スキャン手段が、捕捉したデータを第2のLSSDスキャン・レジスタからシリアルにスキャン・アウトするようにさらに動作可能であり、
構成論理回路の機能性を判定するためにスキャン・アウトした結果データを所定の結果データと比較する障害検出器をさらに有するテスタをさらに含むことを特徴とする、請求項1に記載の改良されたテスト可能FPGA。 - 複数のプログラマブル論理ユニットが、行と列のアレイに配置され、
複数のプログラマブル相互接続部が、前記アレイのそれぞれの行と列に隣接して配置された複数の行バスと複数の列バスとを含み、
複数のプログラマブル相互接続部が、複数のメモリ・セルのうちの指定のメモリ・セル内のスイッチ構成データに応じて、行バスと列バスのうちの選択バスを関連バス・セグメントに選択的に細分する複数のプログラマブル・スイッチ・ユニットをさらに含み、
第3のLSSDスキャン・レジスタの各LSSDスキャン・レジスタが、複数のプログラマブル・スイッチ・ユニットの関連スイッチ・ユニットとともに組み込まれ、
関連の行バスおよび列バスのスイッチ・ユニットのLSSDスキャン・レジスタが、それぞれの行および列相互接続スキャン・チェーンを確立することを特徴とする、請求項1に記載の改良されたテスト可能FPGA。 - 複数のプログラマブル資源と、
複数のプログラマブル資源に関連する複数のメモリ・セルであって、複数のプログラマブル資源が関連の複数のメモリ・セルの構成データに応じて構成される複数のメモリ・セルと、
複数のメモリ・セルのうちの特定のメモリ・セルにアクセスし、複数のメモリ・セルへの構成データのロードを可能にするための構成論理回路と、
構成論理回路のLSSDテストを可能にするために構成論理回路に関連するスキャン・チェーンを提供するLSSDレジスタとを含むことを特徴とする、テスト可能フィールド・プログラマブル・ゲート・アレイ(FPGA)。 - 複数の入出力ポートと、
複数のLSSDレジスタからなるシリアル・ストリングと、
プログラマブル・ゲート・アレイの所与の特徴を制御するためにそこにあるデータに応じて制御信号を提供する制御レジスタとを含むプログラマブル・ゲート・アレイにおいて、
複数のLSSDレジスタからなるシリアル・ストリングの第1の部分が、制御レジスタにデータを転送するために制御レジスタに結合されたそれぞれの1次出力を有し、
複数のLSSDレジスタからなるシリアル・ストリングの第2の部分が、複数の入出力ポートのうちの機能ポートへのLSSDシリアル・スキャン・アクセスを可能にするために入出力バウンダリ・スキャン・チェーンを提供し、
複数のLSSDレジスタからなる前記シリアル・ストリングが、関連のデータ・ステアリング制御信号に応じて、その第2の部分を除いた低減構成になるように複数のLSSDレジスタからなるシリアル・ストリングを選択的に構成するためのデータ・ステアリング手段を含むことを特徴とする、プログラマブル・ゲート・アレイ。 - 前記データ・ステアリング制御信号が、前記制御レジスタによって提供されることを特徴とする、請求項14に記載のプログラマブル・ゲート・アレイ。
- 複数のLSSDレジスタからなる前記シリアル・ストリングの前記低減構成が、単一ビット・バイパス・レジスタのみを含むことを特徴とする、請求項15に記載のプログラマブル・ゲート・アレイ。
- 追加のプログラマブル・ゲート・アレイが、前記プログラマブル・ゲート・アレイの複数のLSSDレジスタからなる前記シリアル・ストリングと直列に結合された複数のLSSDレジスタからなる関連シリアル・ストリングを有することを特徴とする、請求項16に記載のプログラマブル・ゲート・アレイ。
- FPGAをテストする方法において、
(a1)FPGAの入出力バウンダリ周辺のバウンダリ・スキャン・チェーンとして第1のLSSDスキャン・レジスタを設けるステップと、
(a2)FPGAの入出力バウンダリに既知の入出力テスト・ベクトルを印加するステップと、
(a3)入出力バウンダリのデータをラッチ・データとしてバウンダリ・スキャン・チェーンにラッチするステップと、
(a4)バウンダリ・スキャン・チェーンからシリアルにデータをスキャン・アウトし、入出力バウンダリのラッチ・データを取り出すステップと、
(a5)取り出したデータを既知の入出力テスト・ベクトルと比較するステップと、
(a6)取り出したデータが入出力テスト・ベクトルと一致しないときに、障害を報告するステップと、
(b1)FPGAの構成論理回路をテストするための構成スキャン・チェーンとして第2のLSSDスキャン・レジスタを設けるステップであって、構成論理回路がメモリ要求信号に応じてFPGAの構成メモリ・セルにアクセスするように動作可能であるステップと、
(b2)構成テスト・ベクトルを構成スキャン・チェーンにスキャン・インするステップと、
(b3)構成スキャン・チェーンの構成テスト・ベクトルを構成論理回路に印加するステップと、
(b4)印加した構成テスト・ベクトルに応答して構成論理回路によってもたらされるデータを構成スキャン・チェーンにラッチするステップと、
(b5)構成スキャン・チェーンからシリアルにデータをスキャン・アウトし、構成論理回路によってもたらされたデータをそこから取り出すステップと、
(b6)取り出したデータを印加した構成テスト・ベクトルに応じて所定の結果データと比較するステップと、
(b7)取り出したデータが印加した構成テスト・ベクトルと関連する所定の結果データと一致しないときに、障害を報告するステップと、
(c1)FPGAの選択プログラマブル相互接続部内に構成した相互接続スキャン・チェーンとして第3のLSSDスキャン・レジスタを設けるステップと、
(c2)前記相互接続スキャン・チェーンのそれぞれのLSSDスキャン・レジスタ間でFPGAのプログラマブル相互接続部のうちの1組の相互接続部を構成するステップと、
(c3)前記相互接続スキャン・チェーンの選択入力相互接続スキャン・チェーンにシリアルに相互接続テスト・ベクトルをスキャン・インし、第1の組の相互接続部の入力側に相互接続テスト・ベクトルを印加するステップと、
(c4)第1の組の相互接続部の出力側から前記相互接続スキャン・チェーンの選択出力相互接続スキャン・チェーンにデータをラッチするステップと、
(c5)選択出力スキャン・チェーンからシリアルにデータをスキャン・アウトし、第1の組の相互接続部の出力側からラッチしたデータをそこから取り出すステップと、
(c6)取り出したデータを相互接続テスト・ベクトルと比較するステップと、
(c7)取り出したデータが相互接続テスト・ベクトルと一致しないときに、障害を報告するステップとを含むことを特徴とする、FPGAをテストする方法。 - (d1)FPGAの所与のプログラマブル資源の構成に関連する、前記構成メモリ・セルのうちの所与のメモリ・セルに第1の既知のデータを書き込むステップと、
(d2)続いて、所与のメモリ・セルからデータを取り出すステップと、
(d3)取り出したデータを第1の既知のデータと比較するステップと、
(d4)取り出したデータが第1の既知のデータと一致しないときに、障害を報告するステップとを含む、FPGAの構成メモリ・セルをテストするためのステップをさらに含むことを特徴とする、請求項18に記載の方法。 - FPGAの前記構成メモリ・セルの各メモリ・セルごとに、
(d1)FPGAの所与のプログラマブル資源の構成に関連する、前記構成メモリ・セルのうちの所与のメモリ・セルに第1の既知のデータを書き込むステップと、
(d2)続いて、所与のメモリ・セルからデータを取り出すステップと、
(d3)取り出したデータを第1の既知のデータと比較するステップと、
(d4)取り出したデータが第1の既知のデータと一致しないときに、障害を報告するステップと、
前記(d1)〜(d4)の各ステップを繰り返すステップと、
をさらに含むことを特徴とする、請求項19に記載の方法。 - 前記第3のLSSDスキャン・レジスタのそれぞれが、前記それぞれの第3のLSSDスキャン・レジスタとFPGAの前記プログラマブル相互接続部のうちのそれに関連する相互接続部との間で信号を選択的に伝播するために、前記構成メモリ・セルのうちの関連メモリ・セル内の関連構成データに応じてプログラム可能な選択的結合手段を含み、
前記ステップ(c1)が、前記選択入力相互接続スキャン・チェーンの前記第3のLSSDスキャン・レジスタを前記第1の組の相互接続部のそれぞれの入力側に結合するように、選択プログラマブル相互接続部の前記第3のLSSDスキャン・レジスタに関連する前記構成メモリ・セルのうちのメモリ・セルに適切な構成データをロードするステップを含むことを特徴とする、請求項20に記載の方法。 - FPGAの様々なプログラマブル相互接続部をテストするために、関連の選択入力および出力相互接続スキャン・チェーンとともに各種の関連する組の相互接続部を使用して、 (c1)FPGAの選択プログラマブル相互接続部内に構成した相互接続スキャン・チェーンとして第3のLSSDスキャン・レジスタを設けるステップと、
(c2)前記相互接続スキャン・チェーンのそれぞれのLSSDスキャン・レジスタ間でFPGAのプログラマブル相互接続部のうちの1組の相互接続部を構成するステップと、
(c3)前記相互接続スキャン・チェーンの選択入力相互接続スキャン・チェーンにシリアルに相互接続テスト・ベクトルをスキャン・インし、第1の組の相互接続部の入力側に相互接続テスト・ベクトルを印加するステップと、
(c4)第1の組の相互接続部の出力側から前記相互接続スキャン・チェーンの選択出力相互接続スキャン・チェーンにデータをラッチするステップと、
(c5)選択出力スキャン・チェーンからシリアルにデータをスキャン・アウトし、第1の組の相互接続部の出力側からラッチしたデータをそこから取り出すステップと、
(c6)取り出したデータを相互接続テスト・ベクトルと比較するステップと、
(c7)取り出したデータが相互接続テスト・ベクトルと一致しないときに、障害を報告するステップと、
を複数回、繰り返すステップをさらに含むことを特徴とする、請求項21に記載の方法。 - 構成論理回路を完全に実行しテストするように、各種の関連構成テスト・ベクトルを使用して、
(b1)FPGAの構成論理回路をテストするための構成スキャン・チェーンとして第2のLSSDスキャン・レジスタを設けるステップであって、構成論理回路がメモリ要求信号に応じてFPGAのメモリ・セルにアクセスするように動作可能であるステップと、
(b2)構成テスト・ベクトルを構成スキャン・チェーンにスキャン・インするステップと、
(b3)構成スキャン・チェーンの構成テスト・ベクトルを構成論理回路に印加するステップと、
(b4)印加した構成テスト・ベクトルに応答して構成論理回路によってもたらされるデータを構成スキャン・チェーンにラッチするステップと、
(b5)構成スキャン・チェーンからシリアルにデータをスキャン・アウトし、構成論理回路によってもたらされたデータをそこから取り出すステップと、
(b6)取り出したデータを印加した構成テスト・ベクトルに応じて所定の結果データと比較するステップと、
(b7)取り出したデータが印加した構成テスト・ベクトルと関連する所定の結果データと一致しないときに、障害を報告するステップと、
を複数回、繰り返すステップをさらに含むことを特徴とする、請求項18に記載の方法。 - フィールド・プログラマブル・ゲート・アレイ(FPGA)をテストする方法において、
(e1)複数の入出力ポートと、
(e2)関連の論理構成データに応じて特定の論理回路を提供する複数のプログラマブル論理ユニットと、
(e3)関連の経路指定構成データに応じて前記複数の入出力ポートのうちの選択機能入出力ポートと前記複数のプログラマブル論理ユニットのうちの選択プログラマブル論理ユニットとを選択的に相互接続する複数のプログラマブル相互接続部と、
(e4)複数の構成メモリ・セルであって、複数の構成メモリ・セルのうちの指定のメモリ・セルが、関連の論理構成データと経路指定構成データをそれぞれ保持するために前記複数のプログラマブル論理ユニットおよび前記複数のプログラマブル相互接続部に関連付けられている複数の構成メモリ・セルと、
(e5)前記複数の構成メモリ・セルにアクセスし、そこへの構成データのロードを可能にするための構成論理回路とを有するFPGAを設けるステップと、
(f)関連のLSSD構成スキャン・チェーンを使用して前記構成論理回路の機能性をテストするステップと、
(g)確定的テスト・パターンを使用して前記複数の構成メモリ・セルをテストするステップとを含むことを特徴とする、FPGAをテストする方法。 - (h)関連のバウンダリ・スキャン・チェーンを使用して前記複数の入出力ポートのうちの選択入出力ポートをテストするステップをさらに含むことを特徴とする、請求項24に記載のFPGAをテストする方法。
- 前記選択入出力ポートが、様々な入出力構成を実現するために関連の入出力構成データに応じてプログラム可能であり、
選択入出力ポートをテストする前記ステップ(h)が、
(h1)前記様々な構成のうちの所与の構成に応じて選択入出力ポートを構成するための入出力構成データを前記構成メモリ・セルにロードするステップを含むことを特徴とする、請求項25に記載のFPGAをテストする方法。 - 前記ステップ(h1)が、データを受け取るための選択入出力ポートを構成し、
選択入出力ポートをテストする前記ステップ(h)が、
(h2)既知のテスト・データを選択入出力ポートに印加するステップと、
(h3)選択入出力ポートの結果データを関連のバウンダリ・スキャン・チェーンにラッチするステップと、
(h4)バウンダリ・スキャン・チェーンからデータをシフト・アウトし、ラッチした結果データをスキャン・アウトするステップと、
(h5)スキャン・アウトした結果データに応じて前記選択入出力ポートの機能性を判定するステップとをさらに含むことを特徴とする、請求項26に記載のFPGAをテストする方法。 - (i)関連の相互接続スキャン・チェーンを使用して前記複数のプログラマブル論理ユニットのうちの選択プログラマブル論理ユニットをテストするステップをさらに含むことを特徴とする、請求項24に記載のFPGAをテストする方法。
- 選択プログラマブル論理ユニットをテストする前記ステップ(i)が、
(i1)前記特定の論理回路の所与の回路構成に応じて選択プログラマブル論理ユニットを構成するステップを含むことを特徴とする、請求項28に記載の方法。 - 前記関連の相互接続スキャン・チェーンが、そのデータを前記選択プログラマブル論理ユニットに選択的に印加するために、複数の構成メモリ・セルのうちの指定のメモリ・セル内の関連構成データに応じてプログラム可能であり、
選択プログラマブル論理ユニットをテストする前記ステップ(i)が、
(i2)そのデータを前記選択プログラマブル論理ユニットに印加するために前記関連の相互接続スキャン・チェーンを構成する追加ステップを含むことを特徴とする、請求項28に記載の方法。 - 前記プログラマブル論理ユニットが、そこで選択的に構成可能な同期論理デバイスを含み、
前記FPGAが、前記同期論理デバイスにシステム・クロックを分配するためのクロック分配ネットワークを含み、
選択プログラマブル論理ユニットをテストする前記ステップ(i)が、
(i3)前記関連の相互接続スキャン・チェーンの入力および出力LSSDレジスタ間にプログラマブル論理ユニットの同期論理デバイスを構成するステップと、
(i4)前記入力LSSDレジスタを介して前記同期論理デバイスにテスト・データを印加するステップと、
(i5)前記クロック分配ネットワークを介して前記同期論理デバイスにシステム・クロックのクロック・パルスを提供するステップと、
(i6)前記出力LSSDレジスタを介して前記同期論理デバイスのデータをスキャン・アウトするステップと、
(i7)前記同期論理デバイスと関連のクロック分配ネットワークの機能性を判定するために、印加した前記テスト・データに応じて前記スキャン・アウトしたデータを分析するステップとを含むことを特徴とする、請求項28に記載の方法。 - 前記クロック分配ネットワークが、前記同期論理デバイスへの代替クロック分配結合を行うようにプログラム可能であり、
前記ステップ(i)が、
(i8)前記同期論理デバイスへの前記代替クロック分配結合のうちの選択クロック分配結合を行うようにプログラマブル・クロック分配ネットワークを構成する追加のステップを含むことを特徴とする、請求項31に記載の方法。 - 前記FPGAが、前記同期論理デバイスへシステム・リセット信号を分配するためのリセット分配ネットワークを含み、
前記方法が、
(j1)前記同期論理デバイスに既知のデータをロードするために,
(i3)前記関連の相互接続スキャン・チェーンの入力および出力LSSDレジスタ間にプログラマブル論理ユニットの同期論理デバイスを構成するステップと、
(i4)前記入力LSSDレジスタを介して前記同期論理デバイスにテスト・データを印加するステップと、
(i5)前記クロック分配ネットワークを介して前記同期論理デバイスにシステム・クロックのクロック・パルスを提供するステップと、
を繰り返すステップと、
(j2)前記リセット分配ネットワークを介して前記同期論理デバイスにシステム・リセット信号動作を提供するステップと、
(j3)前記出力LSSDレジスタを介して前記同期論理デバイスのデータをスキャン・アウトするステップと、
(j4)前記同期論理デバイスとリセット分配ネットワークのリセット機能性を判定するためにスキャン・アウトしたデータを分析するステップとにより、前記同期論理デバイスとリセット分配ネットワークのリセット機能性をテストする追加のステップを含むことを特徴とする、請求項31に記載の方法。 - 前記関連の相互接続スキャン・チェーンが、前記複数のプログラマブル相互接続部のうちの所与の相互接続部内に配置された複数のプログラマブルLSSDレジスタを含み、前記複数のプログラマブルLSSDレジスタが、そのデータを関連の所与の相互接続部に選択印加するために関連の構成データに応じてプログラム可能であり、
選択プログラマブル論理ユニットをテストする前記ステップ(i)が、
(i9)前記特定の論理回路の所与の回路構成に応じて選択プログラマブル論理ユニットを構成するステップと、
(i10)関連の所与の相互接続部を介して選択プログラマブル論理ユニットをインタフェースするように前記複数のプログラマブル相互接続部を構成するステップと、
(i11)そのデータを関連の所与の相互接続部に印加するように前記複数のLSSDレジスタを構成するステップとを含むことを特徴とする、請求項28に記載に方法。 - 選択プログラマブル論理ユニットを構成する前記ステップ(i9)が、所与の論理設計に応じてFPGAの1ブロック分のプログラマブル論理ユニットと、前記複数のプログラマブル相互接続部のうちの関連する組のプログラマブル相互接続部とを構成して、ブロック論理回路を提供することを含み、
前記所与の相互接続部が、前記ブロック論理回路への入力信号を伝播するための入力相互接続部を提供し、
前記複数のプログラマブル相互接続部を構成する前記ステップ(i10)が、前記ブロック論理回路からの出力信号を伝播するための出力相互接続部の構成も含み、
前記複数のLSSDレジスタを構成する前記ステップ(i11)が、ブロック論理回路の入力相互接続部を横切る入出力バウンダリ・スキャン・チェーンとして第1のスキャン・チェーンを提供し、ブロック論理回路の出力相互接続部を横切る出力バウンダリ・スキャン・チェーンとして第2のスキャン・チェーンをさらに提供し、
選択プログラマブル論理ユニットをテストする前記ステップ(i)が、
(i12)回路テスト・ベクトルを入出力バウンダリ・スキャン・チェーンにスキャン・インし、入出力バウンダリ・スキャン・チェーンの回路テスト・ベクトルをブロック論理回路の入力に印加するステップと、
(i13)印加した回路テスト・ベクトルに応答してブロック論理回路によって提供される結果データを出力バウンダリ・スキャン・チェーンにラッチするステップと、
(i14)出力バウンダリ・スキャン・チェーンからシリアルにデータをスキャン・アウトし、結果データを取り出すステップと、
(i15)所与のブロック論理回路の機能性を判定するために回路テスト・ベクトルと所与の論理設計に応じて事前に決定した所定の結果データと取り出した結果データとを比較するステップとをさらに含むことを特徴とする、請求項34に記載の方法。 - (k)関連のスキャン・チェーンを使用して前記プログラマブル相互接続部のうちの選択プログラマブル相互接続部をテストするステップをさらに含むことを特徴とする、請求項24に記載の方法。
- 前記関連のスキャン・チェーンが、そのデータをそれぞれの選択プログラマブル相互接続部に選択的に印加するために関連の構成データに応じてプログラム可能な複数のプログラマブルLSSDレジスタを含み、
選択プログラマブル相互接続部をテストする前記ステップ(k)が、そのデータをそれぞれの選択プログラマブル相互接続部に印加するように前記複数のプログラマブルLSSDレジスタを構成するステップを含むことを特徴とする、請求項36に記載の方法。 - フィールド・プログラマブル・ゲート・アレイ(FPGA)をテストする方法において、前記方法が、
(l)複数のピンと、
前記複数のピンのうちの機能ピンに関連する複数の入出力機能信号線と、
関連の論理構成データに応じて特定の論理回路を提供する複数のプログラマブル論理ユニットと、
関連の経路指定構成データに応じて入出力機能信号線のうちの選択入出力機能線と複数のプログラマブル論理ユニットのうちの選択プログラマブル論理ユニットとを選択的に相互接続するための複数のプログラマブル相互接続部と、
複数のメモリ・セルであって、複数のメモリ・セルのうちの指定のメモリ・セルが、関連の論理構成データと経路指定構成データをそれぞれ保持するために複数のプログラマブル論理ユニットと複数のプログラマブル相互接続部に対して指定されている複数のメモリ・セルと、
メモリ要求信号に応じて複数のメモリ・セルのうちの特定のメモリ・セルにアクセスするための構成論理回路と、
入出力機能信号線を横切るバウンダリ・スキャン・チェーンとして配置された第1のLSSDスキャン・レジスタと、
構成論理回路に関連して構成スキャン・チェーンとして配置された第2のLSSDスキャン・レジスタと、
前記複数のプログラマブル相互接続部のうちの選択プログラマブル相互接続部に沿って配置された相互接続スキャン・チェーンを提供する第3のLSSDスキャン・レジスタであって、複数のメモリ・セルのうちの適切なメモリ・セル内に保持された関連のラッチ構成データに応じてそれぞれのプログラマブル相互接続部に選択的に結合される第3のLSSDスキャン・レジスタとを有するFPGAを設けるステップと、
(m1)バウンダリ・スキャン・チェーン、構成スキャン・チェーン、および相互接続スキャン・チェーンのそれぞれによりシリアルに既知のテスト・データをスキャンするステップと、
(m2)前記それぞれのスキャン・チェーンの機能性を判定するために、前記それぞれのスキャン・チェーンによりスキャンしたデータをそれに関連する既知のテスト・データと比較するステップとにより、様々なスキャン・チェーンをテストするステップと、
(n1)関連の機能ピンとバウンダリ・スキャン・チェーンの関連の第1のLSSDスキャン・レジスタとの間の入出力機能信号線を既知のテスト・データを通過させるステップと、
(n2)入出力機能信号線と関連の機能ピンの機能性を判定するために、実際にそこを通過したデータと既知のテスト・データとを比較するステップとにより、入出力機能信号線と関連の機能ピンをテストするステップと、
(o1)テスト・ベクトルをシリアルに構成スキャン・チェーンにスキャンし、テスト・ベクトルを構成論理回路に印加するステップと、
(o2)印加したテスト・ベクトルに応じて構成論理回路によってもたらされる結果データをラッチした結果データとして構成スキャン・チェーンにラッチするステップと、
(o3)ラッチした結果データを取り出したデータとしてシリアルに構成スキャン・チェーンからスキャン・アウトするステップと、
(o4)構成論理回路の機能性を判定するために、テスト・ベクトルと構成論理回路の予定動作に応じて事前に決定した予想結果データと取り出したデータとを比較するステップとにより、構成論理回路をテストするステップと、
(p1)データを伝播するために関連の経路指定構成データに応じて複数のプログラマブル相互接続部のうちの第1の組の相互接続部を構成するステップであって、第1の組の相互接続部のうちのそれぞれの相互接続部が入力側と出力側とを有するステップと、
(p2)前記第1の組の相互接続部の入力側にそのデータを印加するために、関連のレピータ・ラッチ構成データに応じて前記相互接続スキャン・チェーンのうちの第1の相互接続スキャン・チェーンを構成するステップと、
(p3)前記第1の組の相互接続部の出力側からデータを受け取るために第2の相互接続スキャン・チェーンを提供するステップと、
(p4)第1の相互接続スキャン・チェーンにシリアルに既知のテスト・データをスキャン・インし、前記第1の組の相互接続部の入力側に既知のテスト・データを印加するステップと、
(p5)前記第1の組の相互接続部の出力側に提示されたデータをラッチした結果データとして第2の相互接続スキャン・チェーンにラッチするステップと、
(p6)第2の相互接続スキャン・チェーンからシリアルにデータをスキャン・アウトし、ラッチした結果データを取り出したデータとして回復するステップと、
(p7)第1の組の相互接続部の機能性を判定するために、取り出したデータを既知のテスト・データと比較するステップとにより、プログラマブル相互接続部をテストするステップとを含むことを特徴とする方法。 - (q1)前記複数のメモリ・セルの所与の位置に既知の入力データを書き込むステップと、
(q2)前記複数のメモリ・セルの所与の位置からデータを読み取るステップと、
(q3)前記メモリ・セルの機能性を判定するために、そこから読み取ったデータと既知の入力データとを比較するステップとにより、前記複数のメモリ・セルをテストするステップ(q)をさらに含むことを特徴とする、請求項38に記載の方法。 - 前記ステップ(o)がステップ(q)より先行することを特徴とする、請求項39に記載の方法。
- 前記ステップ(p)が前記ステップ(q)の後に続くことを特徴とする、請求項40に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/570846 | 1995-12-12 | ||
US08/570,846 US5867507A (en) | 1995-12-12 | 1995-12-12 | Testable programmable gate array and associated LSSD/deterministic test methodology |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09178822A JPH09178822A (ja) | 1997-07-11 |
JP3710070B2 true JP3710070B2 (ja) | 2005-10-26 |
Family
ID=24281291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29891396A Expired - Fee Related JP3710070B2 (ja) | 1995-12-12 | 1996-11-11 | テスト可能なプログラマブル・ゲート・アレイとそのテスト方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US5867507A (ja) |
JP (1) | JP3710070B2 (ja) |
KR (1) | KR100234649B1 (ja) |
TW (1) | TW298619B (ja) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7137048B2 (en) * | 2001-02-02 | 2006-11-14 | Rambus Inc. | Method and apparatus for evaluating and optimizing a signaling system |
US5867507A (en) * | 1995-12-12 | 1999-02-02 | International Business Machines Corporation | Testable programmable gate array and associated LSSD/deterministic test methodology |
US5767709A (en) * | 1996-01-19 | 1998-06-16 | Sgs-Thomson Microelectronics, Inc. | Synchronous test mode initalization |
US6089460A (en) * | 1996-09-13 | 2000-07-18 | Nippon Steel Corporation | Semiconductor device with security protection function, ciphering and deciphering method thereof, and storage medium for storing software therefor |
US6857099B1 (en) | 1996-09-18 | 2005-02-15 | Nippon Steel Corporation | Multilevel semiconductor memory, write/read method thereto/therefrom and storage medium storing write/read program |
US5995425A (en) * | 1997-07-23 | 1999-11-30 | International Business Machines Corporation | Design of provably correct storage arrays |
US6071314A (en) * | 1997-09-29 | 2000-06-06 | Xilinx, Inc. | Programmable I/O cell with dual boundary scan |
US6023778A (en) * | 1997-12-12 | 2000-02-08 | Intel Corporation | Method and apparatus for utilizing mux scan flip-flops to test speed related defects by delaying an active to inactive transition of a scan mode signal |
US6473727B1 (en) * | 1998-03-06 | 2002-10-29 | Lsi Logic Corporation | Processor development systems |
US6272655B1 (en) * | 1998-06-11 | 2001-08-07 | Actel Corporation | Method of reducing test time for NVM cell-based FPGA |
US6966021B2 (en) * | 1998-06-16 | 2005-11-15 | Janusz Rajski | Method and apparatus for at-speed testing of digital circuits |
US6202182B1 (en) * | 1998-06-30 | 2001-03-13 | Lucent Technologies Inc. | Method and apparatus for testing field programmable gate arrays |
US6347387B1 (en) * | 1998-10-09 | 2002-02-12 | Agere Systems Guardian Corp. | Test circuits for testing inter-device FPGA links including a shift register configured from FPGA elements to form a shift block through said inter-device FPGA links |
US6226716B1 (en) * | 1998-12-22 | 2001-05-01 | Unisys Corporation | Test driver for use in validating a circuit design |
US6629276B1 (en) * | 1999-04-30 | 2003-09-30 | Bae Systems Information And Electronic Systems Integration, Inc. | Method and apparatus for a scannable hybrid flip flop |
US6598178B1 (en) * | 1999-06-01 | 2003-07-22 | Agere Systems Inc. | Peripheral breakpoint signaler |
US6928581B1 (en) * | 1999-09-14 | 2005-08-09 | International Business Machines Corporation | Innovative bypass circuit for circuit testing and modification |
EP1242885B1 (en) * | 1999-11-23 | 2009-10-07 | Mentor Graphics Corporation | Continuous application and decompression of test patterns to a circuit-under-test |
US6684358B1 (en) * | 1999-11-23 | 2004-01-27 | Janusz Rajski | Decompressor/PRPG for applying pseudo-random and deterministic test patterns |
US6874109B1 (en) * | 1999-11-23 | 2005-03-29 | Janusz Rajski | Phase shifter with reduced linear dependency |
US6353842B1 (en) * | 1999-11-23 | 2002-03-05 | Janusz Rajski | Method for synthesizing linear finite state machines |
US7493540B1 (en) | 1999-11-23 | 2009-02-17 | Jansuz Rajski | Continuous application and decompression of test patterns to a circuit-under-test |
US9664739B2 (en) | 1999-11-23 | 2017-05-30 | Mentor Graphics Corporation | Continuous application and decompression of test patterns and selective compaction of test responses |
US8533547B2 (en) * | 1999-11-23 | 2013-09-10 | Mentor Graphics Corporation | Continuous application and decompression of test patterns and selective compaction of test responses |
US6327687B1 (en) | 1999-11-23 | 2001-12-04 | Janusz Rajski | Test pattern compression for an integrated circuit test environment |
US6557129B1 (en) * | 1999-11-23 | 2003-04-29 | Janusz Rajski | Method and apparatus for selectively compacting test responses |
US9134370B2 (en) | 1999-11-23 | 2015-09-15 | Mentor Graphics Corporation | Continuous application and decompression of test patterns and selective compaction of test responses |
US6769080B2 (en) * | 2000-03-09 | 2004-07-27 | Texas Instruments Incorporated | Scan circuit low power adapter with counter |
JP2001274253A (ja) * | 2000-03-28 | 2001-10-05 | Toshiba Corp | Fpga互換ゲートアレイ |
US6449576B1 (en) * | 2000-03-29 | 2002-09-10 | International Business Machines Corporation | Network processor probing and port mirroring |
US6567943B1 (en) * | 2000-04-07 | 2003-05-20 | International Business Machines Corporation | D flip-flop structure with flush path for high-speed boundary scan applications |
US6507925B1 (en) * | 2000-05-18 | 2003-01-14 | Sun Microsystems, Inc. | Spatial and temporal alignment of a scan dump for debug of scan-based designs |
US6687864B1 (en) * | 2000-06-08 | 2004-02-03 | Cypress Semiconductor Corp. | Macro-cell flip-flop with scan-in input |
US6530049B1 (en) | 2000-07-06 | 2003-03-04 | Lattice Semiconductor Corporation | On-line fault tolerant operation via incremental reconfiguration of field programmable gate arrays |
US6588001B1 (en) * | 2000-08-31 | 2003-07-01 | Micron Technology, Inc. | Method for inserting repeater cells in a deep sub-micron design |
US7490275B2 (en) | 2001-02-02 | 2009-02-10 | Rambus Inc. | Method and apparatus for evaluating and optimizing a signaling system |
CN100477522C (zh) * | 2001-06-12 | 2009-04-08 | 皇家菲利浦电子有限公司 | 集成电路和用于测试该集成电路的方法 |
US6757856B2 (en) | 2001-06-29 | 2004-06-29 | International Business Machines Corporation | Apparatus and method for hardware-assisted diagnosis of broken logic-test shift-registers |
DE10148157B4 (de) * | 2001-09-28 | 2006-05-18 | Infineon Technologies Ag | Programmgesteuerte Einheit |
US6693477B2 (en) | 2001-10-22 | 2004-02-17 | Research In Motion Limited | Clock circuit for a microprocessor |
US20030084390A1 (en) * | 2001-10-26 | 2003-05-01 | Mentor Graphics Corporation | At-speed test using on-chip controller |
US7127550B1 (en) | 2001-10-31 | 2006-10-24 | Sandisk Corporation | Multi-module simultaneous program, erase test, and performance method for flash memory |
US6996758B1 (en) * | 2001-11-16 | 2006-02-07 | Xilinx, Inc. | Apparatus for testing an interconnecting logic fabric |
US6983405B1 (en) * | 2001-11-16 | 2006-01-03 | Xilinx, Inc., | Method and apparatus for testing circuitry embedded within a field programmable gate array |
US20030182609A1 (en) * | 2002-01-31 | 2003-09-25 | Shirish Agrawal | Pass gate multiplexer |
US6848067B2 (en) * | 2002-03-27 | 2005-01-25 | Hewlett-Packard Development Company, L.P. | Multi-port scan chain register apparatus and method |
US7234092B2 (en) * | 2002-06-11 | 2007-06-19 | On-Chip Technologies, Inc. | Variable clocked scan test circuitry and method |
JP2004021833A (ja) * | 2002-06-19 | 2004-01-22 | Renesas Technology Corp | 自己テスト機能内蔵半導体集積回路およびそれを備えたシステム |
US7424658B1 (en) * | 2002-07-01 | 2008-09-09 | Altera Corporation | Method and apparatus for testing integrated circuits |
US7032146B2 (en) * | 2002-10-29 | 2006-04-18 | International Business Machines Corporation | Boundary scan apparatus and interconnect test method |
US6941539B2 (en) * | 2002-10-31 | 2005-09-06 | Src Computers, Inc. | Efficiency of reconfigurable hardware |
US7188286B2 (en) * | 2003-01-24 | 2007-03-06 | On-Chip Technologies, Inc. | Accelerated scan circuitry and method for reducing scan test data volume and execution time |
JP4274806B2 (ja) * | 2003-01-28 | 2009-06-10 | 株式会社リコー | 半導体集積回路およびスキャンテスト法 |
US7437640B2 (en) * | 2003-02-13 | 2008-10-14 | Janusz Rajski | Fault diagnosis of compressed test responses having one or more unknown states |
US7302624B2 (en) * | 2003-02-13 | 2007-11-27 | Janusz Rajski | Adaptive fault diagnosis of compressed test responses |
US7509550B2 (en) * | 2003-02-13 | 2009-03-24 | Janusz Rajski | Fault diagnosis of compressed test responses |
JP4791954B2 (ja) | 2003-02-13 | 2011-10-12 | メンター・グラフィクス・コーポレーション | コンパクタを使用する試験応答の圧縮 |
US7143376B1 (en) * | 2003-03-04 | 2006-11-28 | Xilinx, Inc. | Method and apparatus for design verification with equivalency check |
US7386826B1 (en) * | 2003-06-24 | 2008-06-10 | Xilinx, Inc. | Using redundant routing to reduce susceptibility to single event upsets in PLD designs |
US8418221B1 (en) | 2003-10-28 | 2013-04-09 | Xilinx, Inc. | Methods of prioritizing routing resources to generate and evaluate test designs in programmable logic devices |
US7058919B1 (en) * | 2003-10-28 | 2006-06-06 | Xilinx, Inc. | Methods of generating test designs for testing specific routing resources in programmable logic devices |
US7454675B1 (en) * | 2004-10-22 | 2008-11-18 | Xilinx, Inc. | Testing of a programmable device |
US7509552B2 (en) * | 2005-01-21 | 2009-03-24 | International Business Machiens Corporation | Multi-thread parallel segment scan simulation of chip element performance |
US8327202B2 (en) * | 2005-07-13 | 2012-12-04 | Hewlett-Packard Development Company, L.P. | System and method for scan testing |
US7590909B2 (en) * | 2005-08-24 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | In-circuit testing system and method |
US7600168B2 (en) * | 2005-12-26 | 2009-10-06 | Prolific Technology Inc. | Apparatus with programmable scan chains for multiple chip modules and method for programming the same |
US8843795B2 (en) | 2006-03-15 | 2014-09-23 | Nec Corporation | Test system of reconfigurable device and its method and reconfigurable device for use therein |
KR20090035538A (ko) * | 2006-07-27 | 2009-04-09 | 파나소닉 주식회사 | 반도체 집적 회로, 프로그램 변환 장치 및 매핑 장치 |
JP2010507227A (ja) * | 2006-10-16 | 2010-03-04 | トムソン ライセンシング | フィールド・プログラマブル・ゲート・アレイ(fpga)のトレラントなシステム内プログラミング |
US8352815B2 (en) * | 2006-10-18 | 2013-01-08 | Arm Limited | Circuit and method operable in functional and diagnostic modes |
US7646210B2 (en) * | 2007-01-05 | 2010-01-12 | International Business Machines Corporation | Method and system for low-power level-sensitive scan design latch with power-gated logic |
US7757198B1 (en) | 2007-04-10 | 2010-07-13 | Lattice Semiconductor Corporation | Scan chain systems and methods for programmable logic devices |
US8769357B1 (en) * | 2009-07-23 | 2014-07-01 | Gidel Ltd. | System and method for evaluation of a field programmable gate array (FPGA) |
US8677199B2 (en) * | 2010-02-16 | 2014-03-18 | Apple Inc. | Pulse dynamic logic gates with mux-D scan functionality |
US8381144B2 (en) * | 2010-03-03 | 2013-02-19 | Qualcomm Incorporated | System and method of test mode gate operation |
US8839063B2 (en) * | 2013-01-24 | 2014-09-16 | Texas Instruments Incorporated | Circuits and methods for dynamic allocation of scan test resources |
GB2519353A (en) * | 2013-10-18 | 2015-04-22 | St Microelectronics Res & Dev | Testing method, testing apparatus and circuit for use with scan chains |
US9898562B2 (en) * | 2014-01-30 | 2018-02-20 | Mentor Graphics Corporation | Distributed state and data functional coverage |
US9823304B2 (en) | 2015-04-30 | 2017-11-21 | Stmicroelectronics S.R.L. | Integrated electronic device having a test architecture, and test method thereof |
EP3157172B1 (en) | 2015-10-15 | 2018-11-28 | Menta | System and method for testing and configuration of an fpga |
US20170184665A1 (en) * | 2015-12-28 | 2017-06-29 | Qualcomm Incorporated | Dynamically configurable shared scan clock channel architecture |
EP3355196A1 (en) | 2017-01-27 | 2018-08-01 | Menta | Fpga and method of operation |
EP3376669A1 (en) | 2017-03-17 | 2018-09-19 | Menta | Fpga and method of fpga programming |
CN112462245B (zh) * | 2019-09-09 | 2022-08-19 | 英业达科技有限公司 | 边界扫描互联线路的生成方法与装置 |
JP2024505396A (ja) | 2021-01-08 | 2024-02-06 | マンタ | システムオンチップアーキテクチャ、インターポーザー、fpga及び設計方法 |
US11948653B2 (en) * | 2021-07-20 | 2024-04-02 | Avago Technologies International Sales Pte. Limited | Early error detection and automatic correction techniques for storage elements to improve reliability |
EP4361650A1 (en) * | 2021-07-30 | 2024-05-01 | Huawei Technologies Co., Ltd. | Method for designing test circuit, and electronic device |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3783254A (en) * | 1972-10-16 | 1974-01-01 | Ibm | Level sensitive logic system |
US4461001A (en) * | 1982-03-29 | 1984-07-17 | International Business Machines Corporation | Deterministic permutation algorithm |
US5329471A (en) * | 1987-06-02 | 1994-07-12 | Texas Instruments Incorporated | Emulation devices, systems and methods utilizing state machines |
US4817093A (en) * | 1987-06-18 | 1989-03-28 | International Business Machines Corporation | Method of partitioning, testing and diagnosing a VLSI multichip package and associated structure |
US4855669A (en) * | 1987-10-07 | 1989-08-08 | Xilinx, Inc. | System for scan testing of logic circuit networks |
DE3886038T2 (de) * | 1988-07-13 | 1994-05-19 | Philips Nv | Speichergerät, das einen zur Ausführung einer Selbstprüfung adaptierten statischen RAM-Speicher enthält und integrierte Schaltung, die als eingebauten statischen RAM-Speicher ein solches Gerät enthält. |
US4980889A (en) * | 1988-12-29 | 1990-12-25 | Deguise Wayne J | Multi-mode testing systems |
JP2612618B2 (ja) * | 1989-10-13 | 1997-05-21 | 富士通株式会社 | 半導体集積回路装置 |
US5285453A (en) * | 1990-12-28 | 1994-02-08 | International Business Machines Corporation | Test pattern generator for testing embedded arrays |
US5221865A (en) * | 1991-06-21 | 1993-06-22 | Crosspoint Solutions, Inc. | Programmable input/output buffer circuit with test capability |
US5301156A (en) * | 1991-07-18 | 1994-04-05 | Hewlett-Packard Company | Configurable self-test for embedded RAMs |
US5278841A (en) * | 1991-10-30 | 1994-01-11 | International Business Machines Corporation | Method and apparatus for diagnosing net interconnect faults using echo pulsed signals |
US5347519A (en) * | 1991-12-03 | 1994-09-13 | Crosspoint Solutions Inc. | Preprogramming testing in a field programmable gate array |
US5425036A (en) * | 1992-09-18 | 1995-06-13 | Quickturn Design Systems, Inc. | Method and apparatus for debugging reconfigurable emulation systems |
US5550843A (en) * | 1994-04-01 | 1996-08-27 | Xilinx, Inc. | Programmable scan chain testing structure and method |
US5781756A (en) * | 1994-04-01 | 1998-07-14 | Xilinx, Inc. | Programmable logic device with partially configurable memory cells and a method for configuration |
US5732246A (en) * | 1995-06-07 | 1998-03-24 | International Business Machines Corporation | Programmable array interconnect latch |
US5867507A (en) * | 1995-12-12 | 1999-02-02 | International Business Machines Corporation | Testable programmable gate array and associated LSSD/deterministic test methodology |
-
1995
- 1995-12-12 US US08/570,846 patent/US5867507A/en not_active Expired - Fee Related
-
1996
- 1996-07-09 TW TW085108309A patent/TW298619B/zh active
- 1996-10-14 KR KR1019960045651A patent/KR100234649B1/ko not_active IP Right Cessation
- 1996-11-11 JP JP29891396A patent/JP3710070B2/ja not_active Expired - Fee Related
-
1998
- 1998-10-28 US US09/181,736 patent/US6021513A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5867507A (en) | 1999-02-02 |
KR100234649B1 (ko) | 1999-12-15 |
US6021513A (en) | 2000-02-01 |
TW298619B (en) | 1997-02-21 |
JPH09178822A (ja) | 1997-07-11 |
KR970051348A (ko) | 1997-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3710070B2 (ja) | テスト可能なプログラマブル・ゲート・アレイとそのテスト方法 | |
JP3549077B2 (ja) | プログラマブル・アレイ相互接続ラッチ | |
US5991907A (en) | Method for testing field programmable gate arrays | |
US4833676A (en) | Interleaved method and circuitry for testing for stuck open faults | |
US5173904A (en) | Logic circuits systems, and methods having individually testable logic modules | |
JP2994666B2 (ja) | 境界走査試験セル | |
US5592493A (en) | Serial scan chain architecture for a data processing system and method of operation | |
CA2271251C (en) | Method and apparatus for testing field programmable gate arrays | |
US5084874A (en) | Enhanced test circuit | |
US6101457A (en) | Test access port | |
US5495487A (en) | Testing buffer/register | |
US6470485B1 (en) | Scalable and parallel processing methods and structures for testing configurable interconnect network in FPGA device | |
JP2575764B2 (ja) | 複数の制御/観察ノードを有するテスト可能な論理装置 | |
US4860290A (en) | Logic circuit having individually testable logic modules | |
US7284159B2 (en) | Fault injection method and system | |
Sun et al. | Novel technique for built-in self-test of FPGA interconnects | |
US20040190331A1 (en) | Testing embedded memories in an integrated circuit | |
JP4361681B2 (ja) | Asic用試験回路 | |
Stroud et al. | Using ILA testing for BIST in FPGAs | |
US4975640A (en) | Method for operating a linear feedback shift register as a serial shift register with a crosscheck grid structure | |
KR20010013935A (ko) | 비휘발성 소자를 사용하는 프로그램 가능 논리 디바이스의구성 제어 | |
US5640402A (en) | Fast flush load of LSSD SRL chains | |
US6574761B1 (en) | On-line testing of the programmable interconnect network in field programmable gate arrays | |
US4912395A (en) | Testable LSI device incorporating latch/shift registers and method of testing the same | |
US4742293A (en) | Pseudo-memory circuit for testing for stuck open faults |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050630 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050630 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20050804 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050805 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |