JP3974110B2 - テストインタフェースを有する装置 - Google Patents
テストインタフェースを有する装置 Download PDFInfo
- Publication number
- JP3974110B2 JP3974110B2 JP2003510970A JP2003510970A JP3974110B2 JP 3974110 B2 JP3974110 B2 JP 3974110B2 JP 2003510970 A JP2003510970 A JP 2003510970A JP 2003510970 A JP2003510970 A JP 2003510970A JP 3974110 B2 JP3974110 B2 JP 3974110B2
- Authority
- JP
- Japan
- Prior art keywords
- state
- state machine
- test
- coprocessor
- scan chain
- 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
- 238000012360 testing method Methods 0.000 title claims description 125
- 230000015654 memory Effects 0.000 claims description 83
- 230000007704 transition Effects 0.000 claims description 51
- 238000012546 transfer Methods 0.000 claims description 14
- 238000000034 method Methods 0.000 claims description 10
- 206010048669 Terminal state Diseases 0.000 claims description 3
- 230000004044 response Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000006227 byproduct Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- 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/318555—Control logic
-
- 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/26—Testing of individual semiconductor devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/273—Tester hardware, i.e. output processing circuits
- G06F11/2736—Tester hardware, i.e. output processing circuits using a dedicated service processor for test
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L22/00—Testing or measuring during manufacture or treatment; Reliability measurements, i.e. testing of parts without further processing to modify the parts as such; Structural arrangements therefor
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Manufacturing & Machinery (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Engineering (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Description
【発明が属する技術分野】
本発明は、テストインタフェースを有する装置に関し、特に、そのような装置を使用して不揮発性メモリのプログラミングなどの動作を実行する方法に関する。
【0002】
【従来の技術】
ヨーロッパ特許出願番号EP 0981134には、スキャンチェインによる不揮発性メモリへの情報の書き込みを制御するCPU(中央処理装置、すなわちプログラムされた命令を実行できるユニット)を有する信号処理装置が開示されている。この情報は、例えば、装置をその通常の使用時に制御するためのコンピュータプログラムである。このようなプログラムは、めったにロードする必要がなく、例えば、装置の製造時や修理時にしか、ロードする必要がない。
【0003】
この公報に説明されているように、情報を書き込むためのプログラムと情報自体は、通常はテスト目的に使用されるスキャンチェインによりCPUに送られる。このようなスキャンチェインの例は、IEEEの1149.1標準(JTAG標準)に指定されている。JTAG標準には、最小数の外部ピンと、ピンから装置にテストデータを転送するためのシフトレジスタと、いわゆるTAPコントローラとを有するテストユニットが規定されている。TAPコントローラは、テスト回路の動作のモードを制御するためのテストステートマシンとして機能する。ピンの1つが、このテストステートマシンが連続するテスト状態のうちのどの状態をとるかを選択する。各状態において、テストステートマシンは、状態に固有な信号を出力することによって、シフトレジスタを通じてデータを転送するか、データを出力してテストを実行するか、データを入力してテストの結果を確認するかを制御する。
【0004】
DRAMメモリをテストするための装置構成は、米国特許番号5,978,945から公知である。この装置構成においては、データとアドレスは、スキャンチェインにより供給される。論理回路は、テストステートマシンの所定の状態によって引き起こされるRAS/CAS遷移を生成する。フラッシュメモリなどの不揮発性メモリをプログラムすることは、DRAMにデータを書き込むことよりも、かなり複雑である。一般には、フラッシュメモリに一連の制御パターンを適用する手順が必要となる。標準のスキャンチェインからフラッシュメモリにデータをプログラムする方法が公知である。この目的のため、不揮発性メモリをプログラムするための必要な制御信号パターンすべてが、メモリに格納する必要のある情報と一緒に、スキャンチェインにロードされる。
【0005】
不揮発性メモリに情報をプログラムするのに標準のスキャンチェインを使用することにより、不揮発性メモリが装置の基板上にすでに取り付けられ、かつ装置の他の部品と相互接続されている状態で、情報をプログラムすることができる。さらに、標準のテストインタフェースが使用されるため、専用のインタフェースがプログラムを行う必要がない。しかしながら、不揮発性メモリをプログラムするために多数の信号が必要であり、これらの信号すべてをスキャンチェインにより転送する必要があるため、この手法は非常に時間がかかる。
【0006】
EP 0981134による装置は、これらの信号のほとんどをCPUを使用して生成して、不揮発性メモリをプログラムする。不揮発性メモリをプログラムするためのプログラムと、プログラムする必要がある情報とが、スキャンチェインから一時メモリにロードされる。このプログラムの制御下で、CPUが、一時メモリから不揮発性メモリに情報を書き込む。プログラムの制御により、CPUが、多数のクロックサイクルにおいて信号をメモリに供給してプログラミングを制御する。フラッシュメモリの例においては、プログラムするために、データとアドレスの所定の組合せがメモリに流されるサイクルが繰り返された後、プログラムする位置のアドレスとプログラムするデータとが送られる1サイクルが続く。この後、ポーリングサイクルが続き、プログラミングが完了するまで待つ。
【0007】
より一般的には、スキャンチェインからの情報を使用して不揮発性メモリをプログラムする以外の動作も、CPUを使用して実行できる。このようにCPUを使用するためのコストは、このCPUが装置内で利用可能であり、かつ動作を実行できる位置にある、例えば、不揮発性メモリとの必要な接続が確立されている場合には、かからない。しかしながら、通常は装置内にCPUが使用されないか、または例えば不揮発性メモリの配置に起因して装置内のメモリをプログラムするために必要なアクセスを通常はCPUが実行できないなどの理由で、必要な接続が確立されていない場合には、CPUを使用するこの手法を使用すると、このような動作を実行するために装置をかなり変更する必要があり、それに対応するコストがかかる。
【0008】
【課題を解決するための手段】
本発明の目的は、特に、スキャンチェインからの情報を使用する、および/または情報をスキャンチェインに渡す動作を、CPUを使用しないで高速に実行できる装置を提供することである。
【0009】
本発明のさらなる目的は、特に、スキャンチェインからのデータを使用しての不揮発性メモリのプログラミングを、CPUを使用しないで高速に実行できる装置を提供することである。
【0010】
本発明による装置は、集積回路か、多数の集積回路を含むセットでよく、請求項1に記載されている。本発明によると、コプロセッサステートマシンとして機能する追加のステートマシンが、装置に含まれている。このコプロセッサステートマシンは、開始されるたびに、テストステートマシンと協力して、1つの動作を一連のステップにおいて実行する。コプロセシングステートマシンは、起動された後、テストステートマシンが所定のテスト状態をとると開始され、次いで、テストステートマシンと共に一連のステップをたどる。すなわち、多数のクロックサイクルを開始し、スキャンチェインを通じての転送と、スキャンチェインから/への入力/出力とを利用する。これらの動作は、テストステートマシンがコプロセッサステートマシンと共に一連のステップをたどるときにテストステートマシンによって制御される。
【0011】
従って、所定の一連の信号のみを供給すればよい、非常に簡単なコプロセッサステートマシンを使用できる。このコプロセッサステートマシンは、情報を処理または転送する必要はなく、テストステートマシンの制御下で情報が処理されたときに、制御信号を供給するのみでよい。情報の連続的なワードを処理するのにループを実行する必要はなく、なぜなら、ループは、テストステートマシンの状態の流れの副産物として毎回開始されるためである。テストクロックを使用してステートマシンを制御することによって、スキャンチェインからのデータを転送するために複雑なクロックインタフェースは必要ない。
【0012】
実施例においては、コプロセッサステートマシンは、開始されるたびに、スキャンチェインからの情報項目を不揮発性メモリにプログラムするように構成されている。コプロセッサステートマシンを使用することによって、コプロセッサステートマシンから所定のプログラミング信号を不揮発性メモリに流すことができ、従って、これらのプログラミング信号の一部またはすべてをスキャンチェインにより転送する必要がない。通常は、メモリをプログラムするために、3つ以上の異なる連続的な状態が使用される。プログラムされる情報の供給と、異なる情報項目をプログラムするためのループ処理とが、テストステートマシンがとる状態によって制御されるため、CPUは必要ない。コプロセッサステートマシンは、装置内のCPUとその他の機能の存在とは独立している。コプロセッサステートマシンは、プログラミング中に(テストクロック信号以外の)通常のクロック信号が利用できるか否か、または装置が複数のクロックドメインを使用する場合にはクロックドメインインタフェースが利用できるか否かには依存しない。この結果、コプロセッサステートマシンは、多数の異なる装置を対象に一度のみ設計すればよい。コプロセッサステートマシンは、ブートストラップする必要なくプログラミングを開始できる専用のハードウェアに実装できる。
【0013】
コプロセッサステートマシンは、異なるモードの間で切り替えることができることが望ましい。この場合の異なるモードは、それぞれプログラミングをイネーブルまたはディセーブルするモードと、例えば異なるタイプの不揮発性メモリに必要とされる信号によってプログラミングをイネーブルする別のモードである。これらのモードの別のモードへの切り替えは、スキャンチェインを通じて渡される命令によって制御されるのが望ましい。
【0014】
上記およびその他の目的と有利な観点について、図面を使用して以下にさらに詳しく説明する。
【0015】
【発明を実施するための形態】
図1は、多数の集積回路11、12、14を含む装置10を示す。第一集積回路12は、テストコントローラ122と、スキャンチェイン124と、出力セレクタ126とを有するテストインタフェースを有する。スキャンチェイン124は、シリアル入力と、シリアル出力と、パラレル入力/出力とを有する。他の集積回路11、14は、スキャンチェイン124のパラレル入力/出力を介して第一集積回路12に結合されている。これらの他の集積回路の一方の集積回路14は、フラッシュメモリである。
【0016】
スキャンチェイン124は、従来のバウンダリスキャンチェインである。このスキャンチェイン124には、シフトレジスタ(示されてない)とアップデートレジスタ(示されてない)が含まれる。スキャンチェインは、テストコントローラ122の制御下において、シリアル入力からシフトレジスタを通じてシリアル出力にデータをシフトする、またはパラレル入力/出力からシフトレジスタにデータをロードする、またはシフトレジスタからアップデートレジスタまでと、アップデートレジスタからパラレル入力/出力までデータを出力する、または集積回路12の内部回路と外部ピンの間でデータを渡す。
【0017】
テストインタフェースを有する集積回路12は、スキャンチェイン124の入力と出力に結合されている機能回路128と、マルチプレクサ17と、プログラミング制御レジスタ18と、フラッシュコントローラ16とを含む。スキャンチェイン124とフラッシュコントローラ16のパラレル出力は、マルチプレクサ17を介してフラッシュメモリ14に結合されている。フラッシュコントローラ16は、その制御出力がマルチプレクサ17とフラッシュメモリ14の制御入力に結合されている。スキャンチェインのシリアル入力は、テストインタフェースのテストデータ入力(TDI)に結合され、シリアル出力は、出力セレクタ126を介してテストインタフェースのテストデータ出力(TDO)に結合されている。出力セレクタ126は、フラッシュコントローラ16の出力とスキャンチェイン124の中間出力に結合されたさらなる入力を有する。テストコントローラ122は、テストインタフェースに結合されている制御入力TCK、TMS、およびTRSTと、スキャンチェイン124、出力セレクタ126、プログラミング制御レジスタ18、およびフラッシュコントローラ16に結合されている各出力とを有する。プログラミング制御レジスタ18は、フラッシュコントローラ16の制御入力に結合されている。
【0018】
動作時、装置10は、通常モードとテストモードとにおいて使用できる。通常モードにおいては、スキャンチェイン124は透過的であり、機能回路128と、フラッシュメモリ14と、集積回路11は、互いに直接的に通信する。テストモードにおいては、スキャンチェインは透過的でなく、データはスキャンチェイン124を通じてこれらの回路128、11、14に供給され、かつこれらの回路からスキャンチェイン124を通じて受信される。この装置は、通常のテスト動作に関し、例えばJTAGテスト標準(IEEE標準1149)に従って動作する。
【0019】
図2は、標準のテスト動作におけるテストコントローラ122のテスト動作を説明する状態図を示す。この状態図は、テストコントローラがとることのできる多数の状態を示す。状態は、矢印によって接続されている。各矢印には、テストインタフェースの信号TMSの値0または1が記されている。テストコントローラ122が特定の状態にあり、テストクロック信号TCKが立ち上がりエッジを有するとき、テストコントローラ122は、図2に示されているようにTMS信号の値に応じて次の状態への遷移を行う。従って、テストコントローラは、選択可能な一連の状態をたどる。
【0020】
ステートマシンは、例えば、状態レジスタ(図示されていない)と、メモリ(図示されていない)と、それぞれの状態に対応する位置とを使用して実施できる。しかしながら、本発明は、この実施に限定されない。異なる状態をとることができる専用のハードワイヤード回路など、他の実施も使用できる。ステートマシンとは、一般に、異なる状態を連続的にとることができる回路であって、かつ各状態に続く状態を少なくとも部分的に定義する回路である。
【0021】
状態レジスタとメモリとを有する実施においては、状態レジスタは、現在の状態に対応する位置のアドレスを格納する。各位置には、ステートマシンがその位置に対応する状態にあるときに各回路に流される信号値が格納される。また、この位置には、現在の状態から到達できる状態に対応する位置のアドレスを示す情報も含まれる。TMS信号の制御下において、これらのアドレスの1つが選択され、TCK信号の立ち上がりエッジにおいて状態レジスタにロードされる。
【0022】
図2において、状態の第一列20には、データの読み取りと書き込みに関連する状態が含まれる。状態の第二列21には、命令の読み取り命令に関連する状態が含まれる。例えば、データを読み取るかまたは書き込むため、テストコントローラが「Test-Logic-Reset」状態から「Run-Test-Idle」状態に遷移を行うように、最初に信号値0がTMS入力に流されるされる、次いで、論理値1がTMSに流されて「Select-DR-Scan」状態に達し、次いで、論理値0がTMSに流されて「Capture-DR」状態に達する。この状態において、テストコントローラは、スキャンチェイン124がそのパラレル入力からのデータをシフトレジスタに取り込むように、制御信号をスキャンチェイン124に流す。この状態から、テストコントローラ122は、TMSの値に応じて「Shift-DR」状態または「Exit1-DR」状態への遷移を行う。「Shift-DR」状態においては、テストコントローラ122は、シフトレジスタを通じてデータをシフトするための信号を、スキャンチェイン124に供給する。テストコントローラ122は、「Shift-DR」状態のままである間は、TCKの各クロックサイクルについてこれを繰り返す。TMSの制御下において、テストコントローラ122は、「Shift-DR」状態から「Exit1-DR」状態に遷移する。この「Exit1-DR」状態からは、TMSの値に応じて「Pause-DR」状態または「Update-DR」状態に遷移する。
【0023】
テストコントローラ122が「Update-DR」状態をとると、スキャンチェイン124は、集積回路12のピンに出力するためにデータをシフトレジスタからアップデートレジスタに伝送する。この「Update-DR」状態からは、テストコントローラ122は、「Run-Test/Idle」状態または「Select-DR-scan」状態に遷移する。テストコントローラは、何サイクルかの間「Pause-DR」にとどまるか、または「Exit2-DR」状態に遷移し、そこから「Update-DR」状態に遷移し、または「Shift-DR」状態に戻ることができる。
【0024】
従って、TMS信号値の固有のシーケンスをテストインタフェースのTMS入力に流すことによって、テストコントローラ122の状態に起因して、スキャンチェイン124が、シフトレジスタにデータをロードする、シフトレジスタからデータを出力する、何サイクルかの間シフトレジスタを通じてデータをシフトする、一時停止する、データをシリアル出力に出力する、などを行うようにできる。同様に、テストコントローラ122を図2の状態図の右列21の各状態に遷移させるTMS値を流すことによって、テストコントローラ122の状態に起因して、スキャンチェイン124が、シフトレジスタを通じて命令を転送したり流すようにできる。このような命令として、例えば、TDI入力からのデータがスキャンチェイン全体によりTDO出力に送られるように、スキャンチェインからのデータを出力セレクタ126の入力からTDO出力に送るための命令があげられる。別の例として、TDI入力からのデータをスキャンチェインをバイパスしてTDO出力に送るための命令や、テスト信号がスキャンチェイン124と集積回路12の内部の機能回路16または外部ピンとの間で交換されるように選択する命令があげられる。
【0025】
本発明の実施例においては、ステートマシンの状態の流れも、不揮発性メモリ14をプログラムするために使用される。例えば、フラッシュメモリのプログラミングには、テストコントローラ122のステートマシンの制御下で実行される一連のステップが関与する。
【0026】
図3は、不揮発性メモリのプログラミングに関与する状態の状態図の例を示す。この状態図は、多数の異なるタイプの不揮発性メモリを対象に一般的に示されている。最初に、1つのタイプの不揮発性メモリの場合の状態図を説明する。このタイプの不揮発性メモリの場合には使用されないが他のタイプの不揮発性メモリの場合に使用される多数の状態遷移は、破線として示されている。この場合に置き換わる状態遷移には、「*」が記されている。
【0027】
この状態図には、開始状態30が含まれる。この開始状態30からは、第一主コマンド状態31aへの遷移がある。第一主コマンド状態31aにおいて、フラッシュコントローラは、第一コマンドをスキャンチェイン124によりフラッシュメモリ14に出力する。この第一コマンドは、例えば、フラッシュコントローラ16によって生成される所定のアドレスとデータと組み合わされた書き込みイネーブル信号を有する(一例においては、データとアドレスは互いの論理上のインバース(逆)である)。この場合、フラッシュコントローラ16は、フラッシュコントローラ16からのこのアドレスとデータを出力するようにマルチプレクサ17を制御する。第一主コマンド状態31aからは、第一副コマンド状態32aへの遷移があり、ここから、第二主コマンド状態31bへの遷移がある。第二主コマンド状態31bにおいて、フラッシュコントローラは、第二コマンドをスキャンチェイン124によりフラッシュメモリ14に出力する。この第二コマンドは、例えば、フラッシュコントローラ16によって生成される所定のアドレスとデータと組み合わされた書き込みイネーブル信号を有する(典型的なフラッシュメモリの場合、第二コマンドの中のアドレスとデータは、それぞれ第一コマンドの中のアドレスとデータのインバース(逆)である)。第一副コマンド状態32aは、フラッシュメモリ14への第一コマンドと第二コマンドの出力を分ける役割を果たす。第二主コマンド状態31bからは、第二副コマンド状態32bへの遷移があり、ここから、第三主コマンド状態31cへの遷移があり、ここから、第三副コマンド状態32cへの遷移がある。この第三副コマンド状態32cからは、主プログラミング状態33への遷移がある。主コマンド状態31a-cは、類似する機能を有し、副コマンド状態32a-cは、類似する機能を有する。
【0028】
主プログラミング状態においては、フラッシュコントローラ16によって、スキャンチェイン124内のシフトレジスタからのアドレスとデータビットが、フラッシュメモリ14に流される。この目的のため、フラッシュコントローラ16は、スキャンチェイン124からのアドレスとデータビットを渡すようにマルチプレクサ17を制御する。データビットには、フラッシュメモリ14にプログラムする情報が含まれ、アドレスビットは、フラッシュメモリ14内におけるその情報の格納先のアドレスを指定する(代替実施例においては、アドレスビットはフラッシュコントローラ16内のカウンタ(示されてない)から供給される。このカウンタは、アドレスが流されるたびにインクリメントされる)。主プログラミング状態33から、副プログラミング状態34への遷移がある。この状態34は、主プログラミング状態においてメモリに流される信号とその後の信号とを分ける役割を果たす。副プログラミング状態34からは、主ポーリング状態35への遷移がある。
【0029】
ポーリング状態35においては、フラッシュコントローラ16は、主プログラムステップ33において受信された情報のプログラミングが完了したか否かを示すための情報を、フラッシュメモリ14から逆に受信する。完了していない場合、主ポーリング状態35のままとなる遷移が起こる。プログラミングが完了すると、副ポーリング状態36への遷移が起こる。ここから、主クリア状態36aへの遷移が起こり、この状態においては、フラッシュコントローラ16は、フラッシュメモリ14のステータスをクリアするための信号を出力する。主クリア状態36aから、副クリア状態36aへの遷移があり、そこから主リセット状態37への遷移がある。リセット状態37においては、フラッシュコントローラ16は、リセット信号をフラッシュメモリ14に流す。主リセット状態37からは、副静止状態38への遷移があり、そこから終端状態39への遷移がある。
【0030】
次に、再び図1を参照し、フラッシュコントローラ16は、図3に示されている状態と遷移を実装するためのフラッシュプログラミングステートマシンとして構成されている。命令がスキャンチェイン124から従来の方法で受信されると、スキャンチェインから制御レジスタ18にコードがロードされる。このコードは、第一値を有するときにはフラッシュコントローラ16をディセーブルし、第二値を有するときにはフラッシュコントローラ16をイネーブルする。テストコントローラ122のステートマシンが、事前に定義された状態をとり、このときフラッシュコントローラ16がイネーブルされていると、フラッシュコントローラは、開始状態30をとり、遷移を開始する。フラッシュコントローラのステートマシンは、図3の状態図の遷移を、図2の状態図におけるテストコントローラ122の遷移に合わせて行う。フラッシュコントローラのステートマシンは、TCKの各立ち上がりエッジにおいて遷移を行う。従って、フラッシュコントローラのステートマシンは、結果的に状態が変化しない遷移をテストコントローラが行うときにも、異なる状態に遷移できる。
【0031】
フラッシュプログラミングのステートマシンは、例えば、テストコントローラが「Update-DR」状態をとり、このときフラッシュプログラミングのステートマシンが命令によってイネーブルされていると開始される。この時点において、フラッシュメモリに書き込むためのデータと(オプションとしての)アドレスは、スキャンチェイン124のアップデートレジスタにロードされる。フラッシュコントローラ16によって所定のコマンドデータがフラッシュメモリ14に流される状態31a-c、32a-cの間の多数の遷移の後、フラッシュコントローラ16は、主プログラム状態33に達し、この状態において、このデータとアドレスがフラッシュメモリ14に流される。このときテストコントローラのステートマシンがとる状態は、テストインタフェースに流されるTMS値に依存する。通常、テストコントローラ122は、この時点までに「Shift-DR」状態になる。
【0032】
フラッシュコントローラ16は、この時間中の多数のサイクルの間、主ポーリング状態35をとる。最終的に、フラッシュコントローラ16が終端状態39に達したとき、テストコントローラ122は、データ分岐20内の次の「Update-DR」状態より前のいずれかの状態にまだある。テストコントローラ122が「Update-DR」状態に達するたびに、フラッシュコントローラは新たに開始される。
【0033】
図3は、主ポーリング状態36から終端状態39への「エラー」遷移を示している。フラッシュコントローラ16は、ポーリング状態が「タイムアウト」する(指定される数より多い連続するクロックサイクル、例えば少なくとも3クロックサイクルの間、ポーリング状態をとる)と、この遷移を行う。この場合、フラッシュメモリ14においてエラーが発生したと想定される。従って、フラッシュコントローラ16は終端状態以外の状態にいつまでも「とどまる」ことはなく、従って、テストコントローラ122が再び「Update-DR」状態に達したときに、矛盾なく定義されたプログラミングの開始が起こる。
【0034】
当然ながら、図2の状態図の他の状態を使用して、開始状態30を開始することができる。しかしながら、「Update-DR」状態を使用することは、新しいデータとアドレス情報の出力にこの状態が厳密に同期するという利点を有する。これにより、フラッシュコントローラ16の設計が簡素化される。
【0035】
図4は、フラッシュメモリ14の出力がスキャンチェイン124に結合されている装置の実施例を示す。この実施例においては、フラッシュコントローラ16の1つ以上の状態において、フラッシュメモリ14から導かれるステータス情報をスキャンチェインに流すための信号が生成される。この情報は、テストコントローラ122の状態の制御下において、スキャンチェインのシフトレジスタにロードされ、ここから外にシフトされる。別の実施例においては、フラッシュコントローラ16の1つ以上の状態において、フラッシュメモリ14に書き込まれたデータが再び読み取られ、再び読み取られたデータが書き込まれたデータと比較され、その比較の結果がスキャンチェイン124に流される。従って、スキャンチェインの出力TDOを使用して、フラッシュメモリ14のプログラミング動作の成功を確認できる。これに代えて、メモリ14から再び読み取られたデータからエラーチェック情報を計算するためのハードウェア、例えばリニアフィードバックシフトレジスタ(示されてない)を、回路のメモリ14とスキャンチェイン124の間に含めることができる。データを再び読み取るための制御信号が送信された後の状態において、フラッシュコントローラは、エラーチェックレジスタの中のエラーチェック情報(シンドローム、CRCなどでよい)を更新するための制御信号をこのハードウェアに送る。エラーチェックレジスタの内容は、集積回路から読み取ることができるように、従来のバウンダリスキャン手法を使用してスキャンチェインにロードされる。
【0036】
図3は、特定のタイプの不揮発性メモリをプログラムするための遷移を示す。また、他のタイプの不揮発性メモリをプログラムするための遷移も示されている。当然ながら、図に示されている以外のさらなる遷移と状態も、可能である。1つの実施例においては、制御レジスタは、アクティブにする遷移を選択する異なるコードを格納できる。制御レジスタは、スキャンチェイン124から従来の方法で設定できる。従って、フラッシュコントローラ16の状態の順序付けは、装置10の集積回路12に接続される特定のタイプのフラッシュメモリ14に適合化される。
【0037】
図に示されているように、テストコントローラ122のステートマシンとフラッシュコントローラ16のステートマシンは、それぞれ独立して遷移を選択する。すなわち、一方のステートマシンは、他方が状態の変化しない遷移を行うときにも異なる状態への遷移を行うことができ、この逆も同様である。これに代えて、2つのステートマシンは、完全に同期して動作し、すなわち、それぞれのステートマシンは、他方が遷移を行うときにのみ遷移を行う。この場合には、修正された状態図、例えば、図2の状態図(状態はスキャンチェインとフラッシュプログラミングの両方に影響する)が適用される。この場合、フラッシュプログラミング中にスキャンチェインと生じうる遅延とを組み合わせて制御できるように、この状態図に追加される状態が必要となる。例えば、連続する「Run test idle」状態を含めることができ、このことは、テストに対する影響は同じであるが、フラッシュプログラミングに対する影響が異なる。これらの状態になるのは、メモリをプログラムするために集積回路12がイネーブルされるときのみである。集積回路12がテスト標準と標準状態図を満たす必要がある場合には、このような追加の状態は、これにより標準との互換性が損なわれることがあるため、望ましくない。
【0038】
上記の説明により、フラッシュ制御ユニット16は、テストコントローラ122用のコプロセッサとして機能し、テストコントローラ122における状態の遷移と平行して一連の状態をたどることが理解されるであろう。フラッシュコントローラ16は、これらの状態をたどることによって、コプロセシング動作、具体的には、フラッシュメモリ14に情報をプログラムする動作を実行し、この動作は、標準化されたテストコントローラ122では実行できない。フラッシュ制御ユニット16は、テストコントローラが特定の状態をとるときにテストコントローラ122によって開始され、従ってその動作はテストコントローラ122に同期される。従って、テストコントローラの制御下においてスキャンチェイン124からのデータが供給されるときに、フラッシュ制御ユニット16はこれを使用できる。このようにして、フラッシュコントローラには、自身のデータロード命令が必要ない。
【0039】
この原理は、不揮発性メモリ14のプログラミング以外の動作にも、スキャンチェイン124からのデータを使用する動作、またはスキャンチェイン124によって転送するために結果を生成する動作を実行するために多数の連続するステップを実行する必要があるときに、より一般的に適用できることが理解されるであろう。
【0040】
テストステートマシンに追加のステートマシンを含めることによって、コプロセッサステートマシンの機能が実現される。テストステートマシンとこのコプロセッサステートマシンは、調和して動作し、同じテストクロック信号の制御下において状態遷移を行う。コプロセッサステートマシン16は、開始されるたびに一連の状態を連続的にとる。コプロセッサステートマシンは、事前に定義された状態をテストステートマシンがとり、そのときコプロセシングステートマシンが例えばスキャンチェインからの命令によってイネーブルされているときに、一連の状態の開始状態30において開始される。
【0041】
コプロセッサの連続する状態の中で、コプロセシングステートマシンは、スキャンチェインから出力された情報を使用する、および/またはスキャンチェインに読み込まれる結果を生成する、動作の実行を制御する信号を、連続的に出力する。この情報の出力および/または結果の読み取りと、情報および/または結果の転送は、連続するテスト状態においてテストステートマシンによって出力される信号の制御下にある。テストステートマシンがこれらのテスト状態をとるTCKのクロックサイクルは、情報または結果を使用するまたは生成するコプロセシング状態をコプロセッサステートマシンがとるクロックサイクルと合う。なぜなら、コプロセッサステートマシンは、テストステートマシンが所定の状態をとるときに開始されるためである。
【図面の簡単な説明】
【図1】 装置を示す。
【図2】 テストインタフェースの状態図を示す。
【図3】 プログラミングインタフェースの状態図を示す。
【図4】 さらなる装置を示す。
【符号の説明】
10 装置
11、12、14 集積回路
16 フラッシュコントローラ
17 マルチプレクサ
18 プログラミング制御レジスタ
20、21 状態の列
30 開始状態
31a-c 主コマンド状態
32a-c 副コマンド状態
33 主プログラミング状態
34 副プログラミング状態
35 主ポーリング状態
36a 主クリア状態
36a 副クリア状態
37 主リセット状態
38 副静止状態
39 終端状態
122 テストコントローラ
124 スキャンチェイン
126 出力セレクタ
128 機能回路
Claims (10)
- - バウンダリスキャンユニットであって、
クロック信号を受信するためのクロック入力と、
シフトレジスタと、
前記クロック信号の連続するサイクルにおいてそれぞれのテスト状態を連続的にとることができるテストステートマシンであって、当該テストステートマシンが、当該テストステートマシンがとる前記テスト状態に応じて、シフトレジスタによるデータの転送と、前記シフトレジスタとテスト対象の回路の間でのデータの転送とを制御する出力を有する、テストステートマシンと
を有するバウンダリスキャンユニットと、
- 前記クロック信号の連続するサイクルにおいてそれぞれのコプロセッサ状態を連続的にとることができるコプロセッサステートマシンであって、当該コプロセッサステートマシンが、イネーブルされているときに、前記テストステートマシンが前記テスト状態のうちの所定の状態をとることに応答して、開始状態からの遷移を開始し、前記コプロセッサステートマシンが前記開始状態以降にとる前記コプロセッサ状態が、前記所定の状態の後に前記テストステートマシンの制御下において前記スキャンチェインから出力されるデータを使用する、および/または、前記テストステートマシンの制御下において前記スキャンチェインに読み込まれる結果を生成する、動作の連続するステップを制御する、コプロセッサステートマシンと、
を有する、装置。 - 前記スキャンチェインから書き込み可能なコプロセッサ制御レジスタを有する請求項1による装置であって、前記制御レジスタが、遷移を開始するために前記コプロセッサステートマシンのイネーブルとディセーブルの間で選択するために、前記コプロセッサステートマシンに結合されている、装置。
- 不揮発性メモリを有する請求項1による装置であって、前記コプロセッサステートマシンが、前記コプロセッサステートマシンが開始後に連続的にとる前記コプロセッサ状態のそれぞれの状態において前記不揮発性メモリをプログラムするための、連続する制御信号を供給するように構成されていて、前記スキャンチェインから読み取られたデータが、当該データを前記制御信号の制御下において前記不揮発性メモリにプログラムするために、前記不揮発性メモリに流される、装置。
- スキャンチェインから書き込み可能なコプロセッサ制御レジスタを有する請求項1による装置であって、前記制御レジスタが、前記コプロセッサステートマシンに結合され、前記制御レジスタが、プログラミング制御信号の異なるシーケンスを必要とする異なるタイプの不揮発性メモリを区別するコードを格納することができ、前記制御レジスタが、前記コプロセッサステートマシンがたどるコプロセッサ状態の多数の可能な異なるシーケンスのうち、前記異なるタイプの不揮発性メモリをプログラムするのに適した1つのシーケンスを選択的にイネーブルする、装置。
- 前記コプロセッサの状態が、前記データをプログラムした後に前記不揮発性メモリから情報を再び読み取るための信号と、当該再読み取りから導かれる結果を前記スキャンチェインに読み込むために前記シフトレジスタに供給するための信号とを供給するための、再読み取り状態を有する、請求項3に記載の装置。
- 前記装置が、エラーチェック値を計算するための回路を有し、前記コプロセッサ状態が、前記エラーチェック値を計算するための前記回路に、前記不揮発性メモリから再び読み取られた前記情報を使用して前記エラーチェック値を更新させる状態、を有し、前記エラーチェック値を計算するための前記回路が、前記エラーチェック値を前記スキャンチェインに読み込むことができるように、前記スキャンチェインに結合されている、請求項5に記載の装置。
- 前記コプロセッサ状態が、ポーリング状態を有し、前記コプロセシングステートマシンが、前記不揮発性メモリへのデータ項目のプログラミングが完了したことを検出し、かつ、前記テストステートマシンによる状態遷移に関係なく、プログラムミングが完了したことをコプロセシングステートマシンが検出するまで、前記ポーリング状態にループするように構成されていて、前記コプロセシングステートマシンが、プログラミングが完了したときに前記ポーリング状態からさらなる状態をとる、請求項3に記載の装置。
- 前記コプロセシングステートマシンが、前記コプロセシングステートマシンが所定の回数より多く前記ポーリング状態にループしたことを前記コプロセッサステートマシンが検出したときに、前記ポーリング状態を終了して終端状態に遷移するように構成されている、請求項7に記載の装置。
- - バウンダリスキャンユニットであって、
クロック信号を受信するためのクロック入力と、
シフトレジスタと、
前記クロック信号の連続するサイクルにおいてそれぞれのテスト状態を連続的にとることができるテストステートマシンであって、当該テストステートマシンが、当該テストステートマシンがとる前記テスト状態に応じて、シフトレジスタによるデータの転送と、前記シフトレジスタとテスト対象の回路の間でのテストデータの転送とを制御する出力を有する、テストステートマシンと
を有するバウンダリスキャンユニットと、
- 不揮発性メモリを接続するのに適した接続ピンと、
- それぞれのコプロセッサ状態をとることができるコプロセッサステートマシンであって、当該コプロセッサステートマシンが、イネーブルされているときに、前記テストステートマシンが前記テスト状態のうちの所定の状態をとることに応答して、開始状態からの遷移を開始し、前記コプロセッサステートマシンが前記開始状態以降にとる前記コプロセッサ状態が、前記所定の状態に続く前記クロック信号の連続するサイクルにおいて前記不揮発性メモリをプログラムするために、前記テストステートマシンの制御下において前記スキャンチェインから転送されるデータをプログラムするための連続する制御信号を、前記接続ピンに供給する、コプロセッサステートマシンと、
を有する、集積回路。 - 不揮発性メモリをプログラムする方法であって、当該方法が、
- 前記不揮発性メモリにプログラムする必要のある情報項目をバウンダリスキャンチェインに入力するステップと、
- 標準テストステートマシンを使用して、前記バウンダリスキャンチェインによる前記情報項目の転送と、前記バウンダリスキャンチェインのパラレル出力からの前記情報項目の出力とを制御するステップであって、前記情報項目が、連続的に、すなわち前記テストマシンが同じ所定の状態をとるたびに出力される、ステップと、
- コプロセッサステートマシンを使用して、前記情報のプログラミングを制御するステップであって、前記コプロセッサステートマシンが、前記テストステートマシンを前記所定の状態に導くことによって開始状態から繰り返し開始され、前記コプロセッサステートマシンが、当該所定の状態から前記テストステートマシンに合わせて動作し、前記開始状態以降の状態が、これに起因して前記不揮発性メモリが、前記所定のステップの後に前記バウンダリスキャンチェインから出力される前記情報項目をプログラムする、ように構成されている、ステップと、
を有する、方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01202594 | 2001-07-05 | ||
PCT/IB2002/002443 WO2003005046A2 (en) | 2001-07-05 | 2002-06-20 | Apparatus with a test interface |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004521363A JP2004521363A (ja) | 2004-07-15 |
JP3974110B2 true JP3974110B2 (ja) | 2007-09-12 |
Family
ID=8180601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003510970A Expired - Fee Related JP3974110B2 (ja) | 2001-07-05 | 2002-06-20 | テストインタフェースを有する装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20040177300A1 (ja) |
EP (1) | EP1407281A2 (ja) |
JP (1) | JP3974110B2 (ja) |
KR (1) | KR20030033047A (ja) |
TW (1) | TWI224196B (ja) |
WO (1) | WO2003005046A2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7308629B2 (en) * | 2004-12-07 | 2007-12-11 | Texas Instruments Incorporated | Addressable tap domain selection circuit with TDI/TDO external terminal |
US7328387B2 (en) * | 2004-12-10 | 2008-02-05 | Texas Instruments Incorporated | Addressable tap domain selection circuit with selectable ⅗ pin interface |
US7421633B2 (en) * | 2005-03-21 | 2008-09-02 | Texas Instruments Incorporated | Controller receiving combined TMS/TDI and suppyling separate TMS and TDI |
US7159083B2 (en) * | 2002-12-13 | 2007-01-02 | Texas Instruments Incorporated | Programmable transition state machine |
GB0301956D0 (en) * | 2003-01-28 | 2003-02-26 | Analog Devices Inc | Scan controller and integrated circuit including such a controller |
US7707467B2 (en) * | 2007-02-23 | 2010-04-27 | Micron Technology, Inc. | Input/output compression and pin reduction in an integrated circuit |
US10451676B2 (en) * | 2015-10-27 | 2019-10-22 | Nvidia Corporation | Method and system for dynamic standard test access (DSTA) for a logic block reuse |
CN112825063B (zh) * | 2019-11-20 | 2024-08-06 | 瑞昱半导体股份有限公司 | 联合测试工作群组传输系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0636976B1 (en) * | 1993-07-28 | 1998-12-30 | Koninklijke Philips Electronics N.V. | Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions |
US5915083A (en) * | 1997-02-28 | 1999-06-22 | Vlsi Technology, Inc. | Smart debug interface circuit for efficiently for debugging a software application for a programmable digital processor device |
US6594802B1 (en) * | 2000-03-23 | 2003-07-15 | Intellitech Corporation | Method and apparatus for providing optimized access to circuits for debug, programming, and test |
-
2002
- 2002-06-20 US US10/482,015 patent/US20040177300A1/en not_active Abandoned
- 2002-06-20 JP JP2003510970A patent/JP3974110B2/ja not_active Expired - Fee Related
- 2002-06-20 WO PCT/IB2002/002443 patent/WO2003005046A2/en active Application Filing
- 2002-06-20 KR KR10-2003-7003217A patent/KR20030033047A/ko not_active Application Discontinuation
- 2002-06-20 EP EP02733172A patent/EP1407281A2/en not_active Withdrawn
- 2002-09-05 TW TW091120280A patent/TWI224196B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2003005046A3 (en) | 2003-06-05 |
JP2004521363A (ja) | 2004-07-15 |
TWI224196B (en) | 2004-11-21 |
EP1407281A2 (en) | 2004-04-14 |
KR20030033047A (ko) | 2003-04-26 |
WO2003005046A2 (en) | 2003-01-16 |
US20040177300A1 (en) | 2004-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3698166B2 (ja) | Jtagを用してasic内のメガセルを試験する方法と装置 | |
JP3174617B2 (ja) | Jtagを用いた高速集積回路試験 | |
JP3612336B2 (ja) | Jtagを用いたi/oトグル試験方法及び装置 | |
US11747397B2 (en) | Addressable test access port apparatus | |
KR0169736B1 (ko) | 데이타 통신 인터페이스 및 이의 통신 방법 | |
US20030070118A1 (en) | Semiconductor integrated circuit with built-in test function | |
JP3287539B2 (ja) | テスト機構を有する処理システム | |
JP3974110B2 (ja) | テストインタフェースを有する装置 | |
JP2644378B2 (ja) | 診断回路 | |
JP2017215665A (ja) | 半導体装置、電子制御システムおよび電子制御システムの評価方法 | |
KR20050007565A (ko) | 집적회로부를 구성하는 방법 및 장치 | |
US20070022343A1 (en) | Semiconductor integrated circuit, method for testing semiconductor integrated circuit, and computer readable medium for the same | |
US7284174B2 (en) | Enhanced JTAG interface | |
US20080250289A1 (en) | Method for Performing a Logic Built-in-Self-Test in an Electronic Circuit | |
JP5022110B2 (ja) | 半導体集積回路 | |
JPWO2002056043A1 (ja) | 半導体デバイス試験装置及びその方法 | |
US20070260953A1 (en) | Scan test | |
US20060248417A1 (en) | Clock control circuit for test that facilitates an at speed structural test | |
JP5158087B2 (ja) | 半導体集積回路装置および半導体集積回路装置の試験方法 | |
US20050289421A1 (en) | Semiconductor chip | |
JP5625241B2 (ja) | 半導体装置及びその試験方法 | |
EP0768538B2 (en) | Method and tester for applying a pulse trigger to a unit to be triggered | |
Ricchetti et al. | A Fast Access Controller for In-System Programming of FLASH Memory Devices | |
KR20030010391A (ko) | 아이피 코아들로 구성된 시스템 온 칩 테스트를 위한개선된 탭 연결 모듈 장치 | |
Clark et al. | Infrastructure IP for Programming and Test of in-system Memory Devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050526 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061019 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061221 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070613 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100622 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |