JP5588590B2 - プログラム可能テストクロックコントローラを使用した電子回路のスキャンベーステスト用に構成可能なテストクロックを生成するためのテストクロック制御構造 - Google Patents

プログラム可能テストクロックコントローラを使用した電子回路のスキャンベーステスト用に構成可能なテストクロックを生成するためのテストクロック制御構造 Download PDF

Info

Publication number
JP5588590B2
JP5588590B2 JP2007181485A JP2007181485A JP5588590B2 JP 5588590 B2 JP5588590 B2 JP 5588590B2 JP 2007181485 A JP2007181485 A JP 2007181485A JP 2007181485 A JP2007181485 A JP 2007181485A JP 5588590 B2 JP5588590 B2 JP 5588590B2
Authority
JP
Japan
Prior art keywords
clock
test
scan
signal
test clock
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
Application number
JP2007181485A
Other languages
English (en)
Other versions
JP2008051804A (ja
Inventor
スル チンソン
Original Assignee
シリコン イメージ,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by シリコン イメージ,インコーポレイテッド filed Critical シリコン イメージ,インコーポレイテッド
Publication of JP2008051804A publication Critical patent/JP2008051804A/ja
Application granted granted Critical
Publication of JP5588590B2 publication Critical patent/JP5588590B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318552Clock circuits details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318541Scan latches or cell details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318594Timing aspects
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/319Tester hardware, i.e. output processing circuits
    • G01R31/31917Stimuli generation or application of test patterns to the device under test [DUT]
    • G01R31/31922Timing generation or clock distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits

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)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

本発明は、一般に、スキャンテスト回路のための電子デバイス及びクロックアーキテクチャに関し、より具体的には、例えば、少なくとも遅延に関する欠陥を検出するためのアット・スピード(at−speed)スキャンベーステストを容易にするために構成可能なテストクロック波形を生成するためのシステム、構造、及び方法に関する。
電子デバイス製造業者は、ナノメートルレベルの半導体製造プロセスを使用して小さな形状サイズを有する集積回路を製造し、これによって単位面積当たりにより多くのトランジスタ及び相互接続リソースを備える。しかしながら、デバイスをより小さな形状寸法で製造するにつれて、導体関連の故障及び抵抗タイプの欠陥の存在が益々多くなる。導体関連の故障は、一般に、金属相互接続の品質を劣化させるプロセスのばらつきに起因しており、その結果、例えば一貫性のない接触抵抗を生じる。抵抗性欠陥は、影響を受ける回路ノードで信号遷移の極めてゆっくりとした上昇下降を引き起こす。しかしながら、従来の縮退及びパラメトリック漏れ電流(例えばIDDQテスト)テスト法はこれらのタイプの故障を有効に検出できないので、電子デバイス製造業者は通常、このような故障モードを選別するための遅延テスト法に依存している。しかしながら、構造上の遅延テストは、縮退テストなどの従来のテスト法よりも著しく高コストである。例えば、遅延テストを実施するためのデータのボリュームは、従来の縮退テスト用のデータのボリュームよりも有意に大きい。場合によっては、遅延テストは、縮退テストよりも3倍から5倍多いデータを必要とする。更に縮退テストは、1又は0のいずれかの論理値に「固着する」回路ノードなどの静的欠陥を検出する。比較すると、遅延テストは、許容可能なレベルよりもゆっくりと信号の上昇又は下降を引き起こす動的欠陥を検出する。一般的に、遅延テストは、該テストが遅延関連の欠陥について選別する回路を通る遷移信号の伝播を必要とする。更に、遅延テストは、あるタイミング制約内で遷移信号の起動及び取り込みを必要とするので、遅延テストベクトルは、テストクロックを生成しこれと同期させることは縮退テストベクトルよりも極めて難しい。
図1は、被試験回路(「CUT」)102において動的関連の欠陥を検出するための従来の遅延テストを実施するのに通常使用されるスキャンチェーンの一部100を示す図である。従来のスキャンチェーンは、一般に、フリップフロップ108及びマルチプレクサ106を含む。スキャンイネーブル(「SE」)信号104は、回路102との間で刺激及び結果信号を交換するため、或いはフリップフロップ108内外にスキャンデータをシフトさせるためマルチプレクサ106を制御する。典型的には、スキャンイネーブル104は、テストクロック(「CLK」)120に類似するファンアウト構成を介して信号源から伝播するグローバル信号である。スキャンイン端子(「SI」)110は、自動テスト装置(「ATE」)などの外部ソースからスキャンデータを受け取り、スキャンアウト端子(「SO」)112は、刺激信号によって発生する結果をシフトアウトする。スキャンチェーン部分100を使用して遅延テストを調整するために、テストクロックジェネレータは通常、テストクロック(「CLK」)120を生成し、スキャンチェーンを通してスキャンデータを駆動する。マルチプレクサ130は、低速クロック140又は高速クロック150のいずれかをゲート制御する。具体的には、スキャンチェーン部分100は、スキャンチェーンを通してスキャンデータを駆動するために低速クロック140を使用し、回路102上でアット・スピード機能テストを実施するために高速クロック150を使用する。ATEはテストクロックジェネレータとして動作できるが、オンチップ位相ロックループ(「PLL」)回路などのオンチップ機能クロック回路は、低コストで高速のテストクロック信号を供給することができる。しかしながら、従来のテストクロック生成回路は、特に被試験装置(「DUT」)が20から100クロックドメイン又はそれよりも多い多数のクロックドメインを含む場合には複雑で高コストになる。
図2は、従来のスキャンチェーン構造において従来のアット・スピード遅延テストを実施するために単一のスキャンイネーブル(「SE」)信号を使用することにより発生するタイミングの不確実性を示している。動的欠陥を検出するために一般的に使用されるアット・スピード遅延テストの1つの実施例は、「ラスト−シフト−ローンチ」テストである。この技術では、第1テストパターンに対して1スキャンチェーンにシフトされる最後のスキャンデータビットが、もう1つのシフト後の第2テストパターンの入力になる。タイミング図200は、従来のラスト−シフト−ローンチテストを実施する図1のテストクロック120とスキャンイネーブル104信号とを示す。詳細には、第1テストパターンは、スキャンモード中に低速クロック140を使用してスキャンチェーンにシフトされ、最後のスキャンデータビットは立ち上がりエッジ210としてスキャンチェーンにシフトされる。アット・スピード遅延テストを行うために、スキャンイネーブル104は、高速クロック150のスキャンチェーンへの印加に同調して状態が変化し、機能テストの結果を取り込む。アット・スピード遅延テストを実施するために単一のスキャンイネーブル信号104を使用することの欠点は、取り込みエッジ220の検出が定義された時間間隔内でなければならず、このためアット・スピードタイミング制約202が加えられる点である。従って、スキャンイネーブル104は、取り込みエッジ220を適切に検出するために、アット・スピードタイミング制約202の間にある状態から次の状態に遷移する必要がある。しかしながら、アット・スピードタイミング制約202がより小さな形状寸法に対して遅延テストを適合させるために益々狭くされるにつれて、スキャンイネーブル104が適切に状態を遷移するのを期待することが困難になる。
図3は、従来のテストクロック制御技術を使用してアット・スピード遅延テストを行う典型的なスキャンチェーン構造300を示す。図示のように、スキャンチェーン構造300は、スキャン入力310及びスキャン出力312を有するスキャンチェーン320、並びに内部クロックジェネレータ330(例えば1つ又はそれ以上のPLL回路)及び内部テストクロックコントローラ340を含む。スキャンチェーン構造300は、内部テストクロックコントローラ340を使用して、被試験回路(「CUT」)302上でアット・スピード遅延テストを行う。各被試験回路302は、クロックドメイン304内に存在している。クロックドメインは、特定のクロックに同期される回路領域である。クロック制御ビット350は、内部テストクロックコントローラ340のオペレーションを定める。しかしながら、内部テストクロックコントローラ340を構成するために、従来のアット・スピードテスト技術はクロック制御ビット350をスキャンデータビットと共にスキャンチェーン320内に埋め込む。この手法の欠点は、スキャンチェーン320にはクロック制御ビット350がロードされ、スキャンチェーンローディング当たりに1つのクロックドメイン304をテストすることである。従って、全スキャンチェーン320は、別のドメイン304がテストされる毎にロード及びアンロードが行われる。また、クロック制御ビット350は特にテスト中には静的である点に留意されたい。具体的には、スキャンチェーン構造300は一般に、内部テストクロックコントローラ340がそのビットに従って動作できるように、クロック制御ビット350がスキャンチェーン320内で固定のまま保持されることが求められる。従って、スキャンチェーン構造300及び他の類似の従来のスキャンチェーン構造は、特にクロック間ドメインテスト(例えば起動及び取り込み)を実施する場合に、スキャンチェーン320のビットに無関係に内部テストクロックコントローラ340を動作させるのに好適ではない。別の欠点は、従来のスキャンチェーン構造300が一般に、テスト時間及びデータボリュームを低減する目的でスキャンチェーン320の一部の選択的なローディング及びアンローディングを制御する制御シーケンス及び/又はプログラムをサポートするのに十分ではないことである。例えば、ほとんどのスキャンチェーン320は、スキャンチェーン320(又は1つ又はそれ以上のその一部)を選択的にリロードし、目標とする被試験回路302だけをテストすることができない。これは、スキャンチェーン320には特定のテストに対して不必要なデータがロードされる可能性があり、これによってスキャンチェーン320にロードされた不必要なデータがテストデータボリュームを増大させ、その結果テスト時間が長くなることを意味する。目標とされる回路302の1つの結果を調べるために、比較的長くなりがちな従来のスキャンチェーン320では、不必要なデータ及び結果の両方をシフトすることが必要とされ、これらの組合せは、一般に長いテスト時間の原因となる。スキャンチェーン構造300の更に別の欠点は、ドメイン間論理306が一般に、1つのクロックドメインでの取り込みクロックパルスと別のクロックドメインからの起動クロックパルスとが特に異なるクロック周波数を有する場合、これらを完全に同期させるには不十分であることである。
図4は、従来のテストクロック制御技術を使用して図3のスキャンチェーン構造300を用いたドメイン間論理306のテストを示している。通常は、論理0から1への遷移(又はその逆)は、第1クロックドメイン(「i」)410の出力レジスタ(「OutReg」)402から第2クロックドメイン(「j」)420の入力レジスタ(「InReg」)404に開始される。クロック(「CLK[i]」)412は、出力レジスタ402からドメイン間組合せ論理306を介して入力レジスタ404へ遷移させ、入力レジスタ400は、クロック(「CLK[j]」)422で遷移の状態をラッチするように動作する。要求される立ち上がりエッジ450は、テスト応答を適切に取り込むために取り込みエッジ470の同時発生を可能にする。但し、クロック422の1クロック周期がクロック412の5クロック周期に対応すると考える。遷移は、従来の遅延テストで通常行われるようにクロック422(クロックドメイン420)のクロックエッジ460と同期してクロックドメイン410から起動される場合、テスト応答がクロックドメイン420内で取り込まれる前に5クロック周期が経過することができる。従って、エッジ440での意図されない起動は、エッジ470でテスト応答を適切に取り込まれない可能性がある。従来のスキャンチェーン構造におけるクロックドメイン間の同期を管理することは、参加しているクロックドメインの数が増えるにつれて益々難しくなる。更に、従来の内部テストクロックコントローラに固有の待ち時間は、同様の理由によりクロックドメイン間テストを複雑にする可能性がある。
図5は、アット・スピード遅延テストを実施するための従来のテスト機能クロック経路530を有する内部テストクロックコントローラ502を示すブロック図500である。内部テストクロックコントローラ502は、機能クロック(「PLL Clk」)510及び埋め込まれたクロック制御ビット504を受信し、遅延取り込みパルスを生成する。内部テストクロックコントローラ502はまた、機能クロック510のエッジをカウントするパルスカウンタ520と、埋め込まれたクロック制御ビット504の値に応じてテストクロック550を生成する論理522とを含む。動作時には、パルスカウンタ520及び論理522は、起動パルス560の後の取り込みパルス570を遅延時間562だけ遅らせて、例えばドメイン間テストを実施するように協働する。この手法の欠点は、内部テストクロックコントローラ502が、マルチプレクサ534以外の追加の回路素子を含むテスト機能クロック経路530を含むことである。これらの追加の素子536は、起動及び取り込みオペレーションを行うときにアット・スピード機能クロック信号510を不利に歪ませる可能性があり、結果として取り込みパルス570のタイミングに不確実性580をもたらす。通常、遅延時間562は、テストモードにおける経路530上のアット・スピード機能クロックが、追加の素子536を含まない経路532上のランモード(例えばテストモード(又はTM)がディスエーブルの場合)における機能クロック510を模擬できることを保証するためにクロックバランシングを必要とする。
図6A及び6Bは、ブロードサイドとラスト−シフト−ローンチテストプロトコルのそれぞれの従来の実装を示す。図6Aは、種々のレジスタステージ612を有するスキャンチェーン610を含む。図600に示されるブロードサイドプロトコルテストでは、所要の遷移602が、前のレジスタステージ612bから起動されて組合せ回路620bを介して伝播し、次いでレジスタステージ612cのレジスタ630で取り込まれる。これは、直接又は間接的に組合せ回路620a及び620bをテストする。立ち上がりエッジの間に、レジスタ632は論理0をラッチし、これによって組合せ回路620bによる1から0の遷移を起動する。レジスタ630は、取り込みエッジで論理0値を取り込む。論理0の存在は、レジスタ634の値から前の遷移601に依存し、これによって組合せ回路620aをテストする点に留意されたい。この技術では、全スキャンチェーンには、テストモードにおける低速でシフトすることによってデータがロードされ、その後、機能モードにおける2つのアット・スピードクロックパルス(例えば起動及び取り込みエッジ)が続く。次いで、値が取り込まれると、データはテストモードにおいてゆっくりとシフトアウトされる。ブロードサイドプロトコルを使用する遅延テストは、他の場合には検出できない遅延欠陥を検出することができ、ブロードサイドプロトコルのテストパターンのサイズは通常、ラスト−シフト−ローンチプロトコルのパターンよりも大きい。更に、ブロードサイドのテストパターンは実際には順次的であり、従って生成がより困難である。
図6Bは、種々のレジスタステージ672を有するスキャンチェーン660を含む。ラスト−シフト−ローンチプロトコルテストにおいて、遷移662は、レジスタステージ672bでのスキャンロード又はアンロードシーケンス中の最後のシフトから起動される。次に、該遷移は、次のレジスタステージ672cでレジスタ680に取り込まれる。入力遷移690が最後のシフト661から起動されるので、ラスト−シフト−ローンチテスト用のパターンサイズは、シーケンシャルテストパターンが組み合わせパターンよりも圧縮するのが難しいことに起因して、ブロードサイドのものよりも小さく、生成が容易とすることができる。但し、ラスト−シフト−ローンチプロトコルは、上述の欠点の影響を受ける。ブロードサイドとラスト−シフト−ローンチの両方が表面上は相互に排他的な利点及び欠点を有するので、ほとんどの設計者が一方又は他方のいずれかだけを実施する。
以上の観点から、上述の欠点を最小にし、少なくとも遅延に関連する欠陥を検出するためのアット・スピードスキャンベースのテストを提供するシステム、構造、及び方法を提供することが望まれる。
スキャンチェーンのテストクロックを生成して電子回路のスキャンベースのテストを実施するためのシステム、構造、及び方法が開示される。1つの実施形態において、テストクロック制御構造は、プログラム可能テストクロックコントローラを含む。プログラム可能テストクロックコントローラは、構成可能なテストクロックを生成するためのテストクロックジェネレータを含む。コントローラはまた、構成可能なテストクロックでスキャンチェーン部分を駆動するためのスキャンレイヤインタフェースと、スキャンチェーン部分を制御するための制御情報にアクセスするように構成された制御レイヤインタフェースとを含む。プログラム可能テストクロックコントローラはまた、制御チェーンの一部をインタフェースする制御論理を含むことができる。これによって制御論理は、制御情報に基づいてスキャンチェーン部分にスキャンデータを選択可能にロードすることができる。種々の実施形態では、制御チェーンは、スキャンチェーンとは異なるチャンネルであり、これによってスキャンデータの転送とは独立してプログラム可能テストクロックコントローラへの制御情報の転送を容易にする。有利には、これによりスキャンロード及びアンロードシーケンスが低減されることで、テスト時間が削減される。場合によっては、制御論理は、スキャンチェーンからほぼ同じデータを使用して回路をテストするために2つ又はそれ以上のスキャンテストプロトコルの実施を容易にすることができる。
別の実施形態では、プログラム可能テストクロックコントローラは、クロックパルスコントローラとテストクロックジェネレータとを含む。クロックパルスコントローラは、クロックコマンド情報に従ってクロック制御信号を生成する。場合によっては、クロックパルスコントローラは、クロックコマンド情報を維持することができる。テストクロックジェネレータは、クロックコマンド情報の一部の機能としてテストクロックを生成する。クロックコマンド情報は、アット・スピードクロック速度を有するテストクロックなどの機能クロック信号をスキャンチェーンに加えるかどうかを指示する。
更に別の実施形態において、1つの方法が回路のスキャンベースのテストを行う。本方法は、ラスト−シフト−ローンチテストパターン及びブロードサイドテストパターンを含むことができる、少なくとも1つのドメイン内テストを行う段階と動的欠陥検出テストパターンを実施する少なくとも1つのドメイン間テストを行う段階を含む。ドメインは、異なるパワー又は異なるクロックドメインのいずれか、又はこれらの両方とすることができる点に留意されたい。場合によっては、本方法は更に、ほぼ並行して異なるクロックドメインをテストするようにプログラム可能テストクロックコントローラを構成する段階を更に含む。有利には、これは、異なるクロックドメインをテストするときに1つ又はそれ以上のスキャンチェーンがロードされる回数を低減することができる。他の実施形態では、ドメインという用語は、一般的に、特性がクロッキング、電力消費、又は同様のものの点で異なるか否かに関わらず、別の部分又は別の回路に比べて異なる動作特性を有するあらゆる回路又は部分を意味することができる。
また更に別の実施形態では、1つの方法が、テストクロック制御構造を実現して回路のスキャンベースのテストを実行し、本方法は、スキャンチェーンをロードするようにプログラム可能テストクロックコントローラの第1サブセットを構成する段階と、スキャンチェーンのローディングを指示するクロックコマンド情報に従ってスキャンデータをスキャンチェーンにロードする段階とを含む。本方法は、欠陥の検出を指示する付加的なクロックコマンド情報に応じてテストクロックを生成するためにプログラム可能テストクロックコントローラの第1サブセットにおいてプログラム可能テストクロックコントローラを構成することによって続く。更に、本方法は、1つ又はそれ以上の回路をテストするために付加的なクロックコマンド情報に従ってテストクロックを生成する段階を含むことができる。
幾つかの実施形態によれば、プログラム可能テストクロックコントローラ及び付随するテストクロック制御構造は、比較的低コストのアット・スピード遅延テストを提供する。プログラム可能テストクロックコントローラは、クロックツリーネットワーク(例えば機能的なオンチップPLLツリー内)の仮想上のどこにでも挿入でき、ATEを介してプログラムすることができる。テストクロック制御構造は、プログラム可能テストクロックコントローラをプログラムすることによって、比較的多数のクロックドメインを処理することができる。プログラム可能テストクロックコントローラは、同じチップでのラスト−シフト−ローンチプロトコルとブロードサイドテストプロトコルの両方の使用を可能にし、これによってテスト時間とテストデータボリュームを低減しながら(例えばデバイスをテストするためのスキャンロード/アンロードシーケンスの数を低減することによって)テストカバレージを向上させる。
テストクロック制御構造は、本発明の種々の実施形態に従ってテスト時間とテストデータボリュームの両方を低減するための効果的なテスト開発及びテストフローを提供する。このような低減は、特に遅延テストが単なる縮退テストよりも実施するのに約3倍から5倍コストがかかるので重要である。更に従来の遅延テストでは、テスト時間及びテストデータボリュームを支配するのはスキャンロード及びアンロードオペレーションである。通常、1秒のATE使用は約5〜10セントのコストがかかる。従って、従来実施されていた遅延テストのATE時間が増大することで、低価格の顧客電子デバイスの価格に有意なテスト間接費が付加される可能性がある。1つ又はそれ以上の実施形態は、プログラム可能性をテストクロック構造に導入することによって、複数のテストプロトコルを同時に又はほぼ同時に実施することによって、更に、とりわけ複数のドメイン(例えばクロックドメイン)を並行してテストすることによってスキャンロード及びアンロードオペレーションの数を低減する。
本発明は、添付図面を参照しながら以下の詳細な説明を読めばより完全に理解される。
同じ参照数字は、図面の幾つかの図を通して対応する要素を示す。参照数字のほとんどが、その参照数字を最初に導入した図をほぼ識別する1つ又は2つの一番左の桁の数字を含む。
図7は、本発明の1つの特定の実施形態による少なくとも1つの回路をテストするためのテストクロック制御構造を示すブロック図である。テストクロック制御構造701は、被試験回路703をテストするための1つ又はそれ以上のプログラム可能テストクロックコントローラ700を含む。図示のように、プログラム可能テストクロックコントローラは、2つの別個のレイヤ、すなわち制御レイヤ720とスキャンレイヤ730上でデータと対話する。プログラム可能テストクロックコントローラ700は、構成可能なテストクロック(「CTC」)714を生成するためのテストクロックジェネレータ704を含む。プログラム可能テストクロックコントローラ700はまた、スキャンレイヤインタフェース712を含み、スキャンレイヤインタフェース712を介して構成可能なテストクロック714でスキャンチェーン732の少なくともスキャンチェーン部分を駆動する。図示のように、スキャンチェーン732は、スキャンレイヤ730内にある。更に、プログラム可能テストクロックコントローラ700は、制御レイヤインタフェース710を含み、例えばスキャンチェーン732又はスキャンチェーン部分734を制御するための制御情報724にアクセスすることができる。
プログラム可能テストクロックコントローラ700は、例えば制御レイヤインタフェース710を介して制御レイヤ720において制御チェーン722の一部にインタフェースする制御論理706を含むことができる。これによって制御論理706は、制御情報724に基づいてスキャンデータをスキャンチェーン732(又はその一部)に選択的にロードするかどうかを制御することができる。種々の実施形態において、制御チェーン722は、スキャンチェーン734とは別のチャンネルであるので、スキャンデータの転送とは独立してプログラム可能テストクロックコントローラ700への制御情報724の転送を容易にする。有利には、これはスキャンロード及びアンロードシーケンスの量を低減するので、テスト時間が短縮される。場合によっては、制御論理706は、スキャンチェーンからほぼ同じデータを使用して(例えば、種々のテストプロトコル間のスキャンチェーンの全体のローディング又はアンローディングなしで)回路750をテストするための2つ又はそれ以上のスキャンテストプロトコルの実施を容易にすることができる。例えば、プログラム可能テストクロックコントローラ700は、同じテストフロー中にブロードサイドテストプロトコルとラスト−シフト−ローンチテストプロトコルの利用を提供することができる。プログラム可能テストクロックコントローラ700が単一のフレームワークで種々のテストプロトコルに対応することができるので、単一の遅延テストプロトコルの実施に比べてテストカバレージを有利に向上させることができる。そのため、例えばラスト−シフト−ローンチ技術を使用して欠陥が検出されなかった場合、ブロードサイドテストが欠陥を検出するために実施することができる。1つの実施形態では、プログラム可能テストクロックコントローラ700は、従来の単一のスキャンイネーブル信号をまとめて置き換える複数のスキャンイネーブル制御信号を受け取る入力ポート708を含む。別の実施形態では、テストクロック制御構造701は、回路750を含む単一の基板上に形成することができる。構成可能なテストクロック714は、テストクロック並びにチェーンクロックと呼ぶことができる。一般的に、テストクロック制御構造は、プログラム可能テストクロックコントローラ、制御チェーン、スキャンチェーン、並びに回路をテストするための他のテスト関連構造を含む。
図8は、本発明の少なくとも1つの特定の実施形態によるプログラム可能テストクロックコントローラを示すブロック図である。プログラム可能テストクロックコントローラ800は、比較的低速のスキャンクロック(すなわち、アット・「スキャンスピード」)及び比較的高速の機能クロック(すなわち、「アット・スピード」)を使用して構造遅延テストのための構成可能なテストクロックを生成してテストクロック830を構成し、複数の遅延テストプロトコルを実施するように構成されている。プログラム可能テストクロックコントローラ800は、スキャンチェーンロード及びアンロードオペレーションのシーケンスを実行するようにテストクロックを構成することができる。或いは、該コントローラは、入力遷移を起動してテスト応答を取り込むようにテストクロックを構成することができる。従って、プログラム可能テストクロックコントローラ800は、スキャンチェーンにスキャンデータを駆動し、又はスキャンチェーンからスキャンデータを駆動するためのスキャン−スピードクロック(「SCLK」)832、或いは起動及び/又は取り込みオペレーションを行うためのアット・スピード機能クロック(「PCLK」)834のいずれかとしてテストクロック830を構成することができる。少なくとも1つの実施形態では、マルチプレクサ840(又は切替オペレーションを実行できるいずれかの等価構造)が、スキャン−スピードクロック832又はアット・スピード機能クロック834のいずれかを出力端子にルーティングし、テストクロック830を供給する。プログラム可能テストクロックコントローラ800は、仮想上のいずれかの機能クロック経路に挿入することができ、内部クロック構造を大きく修正することなくオンチップPLLなどのいずれかの機能クロックソースと一体化させることができる。更にプログラム可能テストクロックコントローラ800は、いずれかのクロックドメインをディスエーブルにするようにプログラムすることができ、これによっていずれかの起動、取り込み、スキャンロード及びスキャンアンロードオペレーションから1つ又はそれ以上のクロックドメインを選択的に含み、除外することができる。
プログラム可能テストクロックコントローラ800は、スキャンクロックデコーダ802及びクロックモジュール804を含み、機能クロックPCLK[i]817及び外部駆動のスキャン−スピードスキャンクロック(「ScanClock」)810からテストクロック(「CLK」)830などの構成可能なテストクロックを生成する。場合によっては、PLL回路850が機能クロック834を生成し、ATEがスキャンクロック810を生成する。基準クロック(「Ref Clk[k])815は、PLL850に供給されて機能クロック817を生成することができ、該クロックは更に、例えばクロックモジュール804のオペレーションを制御することができる。幾つかの実施形態では、アット・スピード機能クロック834は、本質的には機能クロック817である。スキャンクロックデコーダ802は、スキャンクロック810を復号して、制御レイヤクロック信号(「TCLK」)820とスキャンレイヤクロック信号(「SCLK」)822とを含むクロック制御信号を同期させる。制御レイヤクロック信号820を用いて、制御チェーン(図示せず)からクロックモジュール804にクロックコマンド情報を少なくとも供給する。スキャンレイヤクロック信号(「SCLK」)822を用いて、スキャンチェーン又はその一部(図示せず)を駆動する。制御レイヤクロック信号820及びスキャンレイヤクロック信号822は実際には概念上のものとすることができ、プログラム可能テストクロックコントローラ800を超えて拡張する必要はない点に留意されたい。
従来のスキャンテストクロック制御技術は、単一のスキャンイネーブル(「SE」)信号を使用して、スキャン経路と機能経路とを切り替えるが、プログラム可能テストクロックコントローラ800は、従来の単一のスキャンイネーブル信号を少なくとも2つのスキャンイネーブル制御信号、すなわちスキャンイネーブルクロック(「SeC」)制御信号812とスキャンイネーブルデータ(「SeD」)制御信号814とに置き換える。SeD制御信号814は、機能経路とスキャン経路とを切り替えるように構成されており、SeC制御信号812は、スキャンクロックと機能(すなわちアット・スピード)クロックとを切り替える。有利には、クロック及びデータ制御の分離は、クロック生成構造の設計を簡素化し、スキャンシフトから起動及び取り込みオペレーションまでの同期を軽減し、逆もまた同様である。更に、別々のSeDクロック制御信号814とSeCデータ制御信号812はまた、同じチップ上のブロードサイド及びラスト−シフト−ローンチなどの種々のテストプロトコルを実施するためのプログラム可能テストクロックコントローラ800の機能を提供する。
図9は、本発明の実施形態によるプログラム可能テストクロックコントローラによって実行される機能の実施例を示す図である。プログラム可能テストクロックコントローラ900は、比較的低速のスキャンクロック(「SCLK」)902比較的高速の機能クロック(「PCLK」)904切り替えて、テストクロック930を生成して、少なくともブロードサイド及びラスト−シフト−ローンチ遅延テストプロトコルを実施するように構成されている。詳細には、プログラム可能テストクロックコントローラ900は、スキャンクロック902機能クロック904のほぼ定常状態部分908の間クロックソースを切り替える。定常状態位相906において同じ定常状態値(例えば論理低)を有するクロックソースを切り替えることによって、プログラム可能テストクロックコントローラ900は、例えばデューティサイクルが変わらず、グリッチが最小になるように、スキャンクロック902と機能クロック904との間の安全なスイッチングを可能にする。1つの実施形態では、プログラム可能テストクロックコントローラ900は、マルチプレクサ910を使用し、アット・スピードクロック生成経路において付加的な論理素子を必要とすることなくスキャンクロック902と機能クロック904とを切り替える。従って、プログラム可能テストクロックコントローラ900は、クロックゲーティング目的で付加的な論理素子を使用する従来のテストクロックジェネレータに共通するクロックスキューを防ぐことができる。プログラム可能テストクロックコントローラ900は、ブロードサイドクロッキングを供給するクロック926、又はラスト−シフト−ローンチクロッキングを供給するクロック946のいずれかとしてテストクロック930を構成することができる。このため、プログラム可能テストクロックコントローラ900は、有利には、ブロードサイド及びラスト−シフト−ローンチプロトコルの両方を実施することができる。ブロードサイドクロッキング920を実施するために、プログラム可能テストクロックコントローラ900は、スキャンモード中にN個のスキャンデータビットをスキャンチェーンにシフトするように動作し、その後、コントローラは、機能モード中に起動クロックエッジ922及び取り込みクロックエッジ924を両方ともアットスピードで供給する。ラスト−シフト−ローンチクロッキング940を実施するために、プログラム可能テストクロックコントローラ900は、スキャンモード中にN−1個のスキャンデータビットをシフトさせるよう動作する。N番目−1ビット後、コントローラは、スキャンモードにおけるN番目のクロックエッジとして起動クロックエッジ942を供給し、その後、取り込みクロックエッジ944が機能モード中のN番目+1クロック取り込みクロックエッジとして続く。
図10は、本発明の実施形態によるプログラム可能テストクロックコントローラの実施例を示す図である。プログラム可能テストクロックコントローラ1000は、クロックパルスコントローラ(「CPC」)1002を含み、該クロックパルスコントローラ1002は、クロックパルスコントローラ1002内にプログラムされたクロックコマンド情報(「CCI」)1012に従ってクロック制御信号(「TC_En」)1024を生成するように構成されている。クロックパルスコントローラ1002は、制御レイヤ内に制御チェーン1012の一部を形成することができる。プログラム可能テストクロックコントローラ1000はまた、クロックコマンド情報1012の一部に関係してテストクロック(「CLK」)1052を生成するように構成されたテストクロックジェネレータ1030を含む。場合によっては、クロックコマンド情報1012は、機能クロック信号をテストクロック1052としてスキャンチェーンに加えるかどうかを指定する。プログラム可能テストクロックコントローラ1000は、PLL回路に入力することができる基準クロック(「Ref Clk」)1046を受信する。基準クロック1046の位相は、1つ又はそれ以上のPLL回路から1つ又はそれ以上のPLL出力クロックにロックすることができる。
1つの実施形態では、クロックパルスコントローラ1002は、クロック制御信号ジェネレータ1010及びクロック速度セレクタ1020を含む。クロック制御信号ジェネレータ1010は、クロックコマンド情報1012に基づいて各クロックエッジでクロック制御信号1024を生成し、クロック速度セレクタ1020は、個々のクロックエッジの各々に対してクロックサイクル周期を設定する。クロック速度セレクタ1020は、アット・スピードテストの第1クロック速度を示す第1周期と、少なくともスキャンチェーンを駆動するための第2クロック速度を示す第2周期との間で選択する。テストクロックジェネレータ1030は、テストセットアップ及び実行コントローラ1040と、テストクロックセレクタ1050とを含むことができる。テストセットアップ及び実行コントローラ1040は、データ配信モード又はテスト実行モードのいずれかでプログラム可能テストクロックコントローラ1000を構成するよう動作する。更に、テストセットアップ及び実行コントローラ1040は、クロック速度制御信号(「CPC_En」)1022を供給し、個々のクロックエッジが例えばテストクロック1052としてシフトアウトされるクロック速度を選択する。テストクロックセレクタ1050は、機能クロック信号1054、又はクロック制御信号1024に基づいた個々のクロックエッジのサブセットのいずれかをスキャンチェーンに加えるように構成されている。クロック制御信号1024は、テストクロック1052を形成する機能クロック信号1054の個々のクロックエッジのプログラム可能な量を指定できる点に留意されたい。少なくとも1つの実施形態では、テストクロックセレクタ1050はまた、スキャンチェーンにスキャンデータをシフトインし、スキャンチェーンからスキャンデータをシフトアウトするためのテストクロック1052としてスキャンクロック(「SCLK」)1052を供給する。1つの実施形態によれば、テストクロックジェネレータ1030は、少なくとも2つの入力を含む。第1入力は、データ配信モード又はテスト実行モードのいずれかでプログラム可能テストクロックコントローラ1000が動作することを示すスキャンイネーブルデータ(「SeD」)信号1042を受け取るように構成され、第2入力は、機能クロック信号(「PCLK」)1054又は個々のクロックエッジのサブセットのいずれかをスキャンチェーンに加えるようにプログラム可能テストクロックコントローラ1000を構成していることを示すスキャンイネーブルクロック(「SeC」)信号1044を受け取るように構成されている。プログラム可能テストクロックコントローラ1000は、スキャンイネーブルデータ信号1042がデータ配信モードを表す場合、スキャン−スピードクロック速度を使用してスキャンチェーン又は制御チェーンのいずれかにデータをシフトさせるように動作する。或いは、スキャンイネーブルデータ信号1042がテスト実行モードを表す場合、プログラム可能テストクロックコントローラ1000は、アット・スピードクロック速度を使用して機能テストを行うように自らを構成するよう動作する。しかしながら、スキャンイネーブルクロック信号1044は、プログラム可能テストクロックコントローラ1000にサイレント状態(例えば漏れIDDQテストを行う)又はアット・スピード起動及び/又は取り込みのいずれかで動作させる。図10のプログラム可能テストクロックコントローラは、説明を簡単にするためにスキャンクロックデコーダを省いている点に留意されたい。
図11は、本発明の実施形態による複数のスキャンイネーブル制御信号に基づくプログラム可能テストクロックコントローラ用のオペレーションの状態を示すテーブルである。テーブル1100は、スキャンイネーブルデータ(「SeD」)制御信号1101とスキャンイネーブルクロック(「SeC」)制御信号1103が、本発明の種々の実施形態によるプログラム可能テストクロックコントローラの所要の機能を実施するのに用いることができる信号状態のセット1105(又はテストモード)を生成することを示している。サイレント状態1102の間、被試験回路に対する全クロックは遮断され、起動/取り込み状態1104では、アット・スピード機能クロックがスキャンチェーンに加えられ、遅延テストを実行する。スキャンロード/アンロードチェーン状態1106では、スキャンチェーンがロード又はアンロードされ、制御ロード/アンロード状態1108では、プログラム可能テストクロックコントローラをプログラムすることができる。一般に、スキャンイネーブルデータ制御信号1101の値により、プログラム可能テストクロックコントローラがデータ配信モード又はテスト実行モードのいずれかで動作するかが決定される。SeD制御信号1101が1の値である場合、プログラム可能テストクロックコントローラは、ATEデバイスなどの外部ソースからのスキャンクロックを使用して比較的低速でデータ配信オペレーションに従事する。次に、SeC制御信号1103が0の値である場合、プログラム可能テストクロックコントローラは、回路の内部レジスタを既知の状態に初期化するためにスキャンチェーンをロードするか又はアンロードするかのいずれかを行う。対照的に、SeC制御信号1103の1の値は、プログラム可能テストクロックコントローラをクロックコマンド情報でプログラムさせるようにする。サイレント状態1102では、プログラム可能テストクロックコントローラは、被試験回路のドメインへの遷移を発生させるためにクロックパルスを加えない。この状態では、ATEは、一次入力(「PI」)に一次出力(「PO」)を測定させ、又は電源からアースまでのIDDQ漏れ電流を測定させることができる。SeD制御信号1101が0の値を有する場合、プログラム可能テストクロックコントローラはアット・スピードテストを行い、機能クロックを使用して比較的高速で入力遷移を起動するか、又はテスト応答を取り込むか、或いはその両方を行うことができる。
図12A及び12Bは、本発明の種々の実施形態によるスキャンクロックデコーダとプログラム可能テストクロックコントローラのそれぞれの特定の実施を示す。図12Aでは、スキャンクロックデコーダ1200は、両方ともクロック制御信号である、スキャンチェーンを駆動するためのスキャンクロック(「SCLK」)1208と、プログラム目的の制御レイヤクロック(「TCLK」)1210とを駆動するための論理を含む。論理ゲート1201は、一次スキャンクロック(「ScanClk」)1206、スキャンイネーブルクロック制御信号(「SeC」)1204、及びクロック制御信号(「TCEn」)1202を使用して、クロック制御信号SCLK、TCLKを形成する。1つの実施形態において、ATEは、一次スキャンクロック1206とスキャンイネーブルクロック制御信号1204とを生成し、図12Bのプログラム可能テストクロックコントローラに加えることができる。幾つかの実施形態において、スキャンイネーブルデータ制御信号(「SeD」)1211を用いて、外部テスター又はATEによって一般的に供給される一次スキャンクロック(「ScanClk」)1206の状態とは無関係に、クロック制御信号SCLK及びTCLKの形成(例えば論理0でのSeD)をディスエーブルにするように論理ゲート1201aのオペレーションを制御することができる。
図12Bでは、プログラム可能テストクロックコントローラ1220は、クロックパルスコントローラ(「CPC」)1230及びテストクロックジェネレータ(「TCG」)1250を含む。クロックパルスコントローラ1230は、TCEn信号1202の値としてのクロックエッジのストリームを、クロックエッジの値を使用してアット・スピードテストクロックを形成するテストクロックジェネレータ1250に供給する。1つの実施形態では、クロックパルスコントローラ1230は、制御スキャンイン(「CSI」)端子1236と制御スキャンアウト(「CSO」)端子1238をそれぞれ介してシリアルにロード及びアンロードすることができる2ビットシフトレジスタ(「SR」)1234を含む。オペレーション時には、2ビットシフトレジスタ1234は、起動及び/又は取り込みオペレーション中に機能クロック(「PCLK」)1252に基づいて2アット・スピードパルスまで生成するための制御値を備えたTCEn信号1202を供給する。少なくとも1つの実施形態では、2ビットシフトレジスタ1234は、テストクロックジェネレータ1250にシフトアウトされることになる個々のクロックエッジのプログラムされた量を保持する。クロックパルスコントローライネーブル(「CPCEn」)信号1240が論理1の値を有する限り、TCEn信号1202は、起動/取り込み状態で機能クロック(「PCLK」)1252に基づいて「アットスピード」をシフトする。しかしながら、2ビットシフトレジスタ1234は、制御チェーンロード/アンロードオペレーション中に図12Aの比較的遅い一次スキャンクロック(「ScanClk」)1206に基づいて「スキャン−スピード」でシフトする。
2ビットシフトレジスタ1234は、サイレント状態並びにスキャンロード/アンロード状態の間はクロックパルスによってクロック制御されず、そのため、レジスタに記憶されたクロックコマンド情報はこれらの状態で変化されないままである点に留意されたい。幾つかの実施形態では、クロックパルスコントローラ1230は、クロックドメインイネーブル(「CDEn[i])制御信号1244を生成し、「i番目」のクロックドメインを選択的にイネーブルにして、起動及び/又は取り込みオペレーションに参加する。代替の実施形態では、クロックパルスコントローラ1230は、ICLK信号1246を補完クロックコマンドソース(図示せず)に供給し、例えば文字列ジェネレータ入力(「SGenIn」)1248から補完クロックコマンド情報を受け取る。補完クロックコマンドソースは、2ビットシフトレジスタ1234の機能を2ビットを超えて拡張する。
テストクロックジェネレータ1250は、テストクロック(「CLK」)1254が機能クロック1252の部分とスキャンクロック(「SCLK」)1208の部分とから構成される所要の波形を供給するように構成されて設計されている。詳細には、テストクロックジェネレータ1250は、スキャンクロック(「SCLK」)1208と機能クロック(「PCLK」)1252とを切り替える。幾つかの実施形態において、機能クロック1252は、TCEn信号1202と論理積演算されてテストクロック1254を生成することができる。テストクロックジェネレータ1250は、SeD信号1258及びSeC信号1260を使用して、機能クロック1252又はスキャンクロック1208のいずれかをクロックのソースとして選択する。更に、テストクロックジェネレータ1250は、これらの信号を使用して、テストクロック(「CLK[i]」)1254をクラフトするためのTCEn信号1202を生成する。オペレーションでは、テストクロックジェネレータ1250は、クロックパルスコントローライネーブル信号1240を介してテストクロックをクロックパルスコントローラ(「CPC」)1230と同期させ、該クロックパルスコントローライネーブル信号1240は、個々のクロックエッジがテストクロック1254として現れるクロック速度を選択するのに使用されるクロック速度制御信号である。
場合によっては、テストクロックジェネレータ1250は、阻止機能を有するストリームマルチプレクサとみなすことができる。すなわち、これは、TCEn信号値のストリーム(すなわち個々のクロックエッジの値)と論理積演算されたソースクロック信号波形を切り替えてテストクロック1254の波形を生成する。更に、SeC信号1260及びSeD信号1258両方の状態は、TCEn信号値のストリームで論理積演算されたものであるソースクロックのいずれか1つを選択する。ソースクロックパルスは、TCEn信号1202が0の値を有する場合には阻止される。そうでなければ、ソースパルスは通過され、テストクロック1254の一部を形成する。更に、テストクロックジェネレータ1250は、起動及び/又は取り込みオペレーションの開始時に、「遮断」中又は論理値「low」の定常状態位相において、スキャンクロック(「SCLK」)1208を選択することによって機能クロック経路によるビット毎のANDオペレーションを実行することから生じる発生可能なクロックスキューを阻止する。定常状態位相の実施例は、図9の定常状態位相908である。
図12Bに示される実施例では、テストクロックジェネレータ1250は、サンプル及びホールドレジスタ(「SHR」)1270と、クロック選択レジスタ(「CSR」)1272とを含む。サンプル及びホールドレジスタ1270は、基準クロック(「Ref Clk[k]」)1262を使用してSeC信号1260をサンプリングし、更に、テストクロック速度選択のためにクロックパルスコントローライネーブル(「CPCEn」)信号1240をクロックパルスコントローラ1230に供給する。CPCEn信号1240が1の値を有する場合、マルチプレクサ1242は、機能クロック(「PCLK」)1252を選択する。0の値では、マルチプレクサ1242は、制御レイヤクロック(「TCLK」)1210を選択し、クロックコマンド情報ビットをシフトイン及びシフトアウトする。SeD信号1258が0の値を有しSeC信号1260が1の値を有する場合、サンプル及びホールドレジスタ1270は1の論理値を生成する。それ以外は、サンプル及びホールドレジスタ1270の出力1271が論理0を保持する。幾つかの実施形態では、サンプル及びホールドレジスタ1270はまた、クロックドメイン間テストを行うための同期タイミング基準ポイントを提供することができる。
制御論理は制御レイヤクロック(「TCLK」)1210によってクロック制御されるので、サンプル及びホールドレジスタ1270はまた、制御レイヤでの制御論理に対しての縮退テストの実行を助ける。縮退テストを実施するために、RefClk1262が遮断される。サンプル及びホールドレジスタ1270は、SeD信号1258によってリセットされ、静的テストの間はリセットされたままである。サンプル及びホールドレジスタ1270のリセット値は、静的テスト中にスキャンクロック(「SCLK」)1208を選択する。サンプル及びホールドレジスタ1270は、SeC信号1260がクロック選択レジスタ1272に伝播するのを阻止するので、SeC信号1260を用いて、縮退テストを行うためのクロック制御信号TCLK1210SCLK1208切り替えることができる。従って、プログラム可能テストクロックコントローラの起動/取り込み状態は、制御論理の縮退テスト中の取り込みに使用することができ、スキャンロード/アンロード状態は、データスキャンチェーンにアクセスするのに使用することができる。同様に、サイレント状態は取り込みに使用することができ、制御ロード/アンロード状態は、被試験回路の縮退テスト中に制御チェーンにアクセスするのに使用することができる。
クロック選択レジスタ1272は、ソースクロックを選択してテストクロック1254の構成可能な部分を形成するクロック選択制御情報を記憶するように構成されている。クロック選択レジスタ1272のクロック選択制御情報は、サンプル及びホールドレジスタ1270とTCEn信号1202の両方の状態によって決定される。通常の機能モードでは、テストモード信号(「TM」)1280がクロック選択レジスタ1272をリセットする。従って、機能クロック1252は、テストクロック1254に接続されている。クロック選択レジスタ1272の状態は、パワーダウン信号(「PWD」)1282が加えられない限り機能モード中は変化しないままである。パワーダウン信号(「PWD」)1282は、通常機能モードの間は対応するクロックドメインのオペレーションを停止することができる。クロックドメインをパワーダウンすることは、低出力回路のアプリケーションをテストするのに所要の機能とすることができる。しかしながら、パワーダウン信号(「PWD」)1282は、種々の実施形態の構造をテストするために拡張機能を提供することができる。詳細には、PWD1282は、テストクロックコントローラに組み込まれ、機能クロック経路に沿って介在する追加の論理ゲートを挿入することなくクロックゲーティングを行う。PWD信号1282がテストクロック1254の機能クロックを遮断するよう設定された場合、マルチプレクサ1255は、通常機能モード中はイナクティブであるスキャンクロック(「SCLK」)1208を選択し、これによってテストクロック1254としてクロックパルスは生成されない点に留意されたい。更に、PWD信号1282はまた、機能テスト及びシリコンデバッグの両方でクロック停止回路として使用することができる。従って、埋め込まれた内部モニター回路(図示せず)がシステムエラーを検出した場合に、有利には問題のあるクロックドメインを遮断することができる。エラーが検出された場合、エラーが更に伝播しないように対応するクロックドメインを停止することができる。これにより、エラーを迅速に検出するための制御メカニズムのない比較的長いスキャンチェーンを含む従来のスキャンチェーン構造を使用するデバッギング回路と比べた場合、デバッグプロセスが簡素化される。多くの場合、数クロックサイクルを超えるエラー又は遅延検出のいずれかを妨げるのは、従来のスキャンチェーンの長さ及び介在する論理からの出力である。対照的に、本発明の種々の実施形態は、PWD1282を用いて、例えば数個のクロックサイクル又はこれよりも少ない範囲内で迅速にエラーを検出するためにテストを停止することができる。パワーダウン信号(「PWD」)1282を生成するためのPWD信号ジェネレータは、低出力回路アプリケーションを提供するための回路設計の当該技術で公知であり、詳細に説明する必要はない点に留意されたい。
図13は、本発明の1つの実施形態による特定のクロックドメインをプログラムするための図12Bの2ビットシフトレジスタの実施例の状態図を示す。2ビットシフトレジスタ1300をロードすることによって、個々のクロックドメインは、スキャンロード及びアンロードオペレーション用に、並びに起動及び取り込みオペレーション用にプログラムすることができる。状態図1310は、図12A及び12BのTCEn信号1202が、2ビットシフトレジスタ1300内に記憶されたプログラム状態からどのように生成されるのかを要約している。状態図1310は、補完クロックコマンドソースからの文字列ジェネレータ入力(「SGenIn」)1302が使用されない(すなわち、SGenIn端子が0の値に設定される)と仮定している。状態1312から状態1318までの各状態は、2ビットシフトレジスタ1300のコンテンツを表し、遷移は「SGenIn/TCEn」の表記でラベル付けされている。補完クロックコマンドソースの使用を除外する入力制約(すなわち、SGenIn=0)により、破線1320で示される幾つかの遷移は適用されない点に留意されたい。2ビットシフトレジスタ1300の初期状態は、起動/取り込み状態1312(SRのコンテンツは「11」である)、起動のみの状態1314(SRのコンテンツは「10」である)、取り込みのみの状態1318(SRのコンテンツは「01」である)、及びディスエーブル状態1316(SRのコンテンツは「00」である)を含む。つまり、2ビットシフトレジスタ1300での1の数は、テストクロックCLK[i]としてパスすることができる機能クロックパルスの数に対応する。
例えば、2ビットシフトレジスタ1300がコンテンツ「11」を含む場合、2つの連続する機能クロックパルスが生成されてテストクロックを形成し、すなわち1つが起動オペレーション用のパルスエッジであり、もう1つが取り込みオペレーション用のパルスエッジである。起動/取り込み状態1312の終了後、2ビットシフトレジスタ1300は、ディスエーブル状態1316に達し、「00」のコンテンツによりテストクロックCLKがディスエーブルになる。具体的には、ディスエーブル状態1316は、スキャンクロックSCLKをディスエーブルにする。SCLKは起動/取り込み中に休止状態になることができる点に留意されたい。同様に、2ビットシフトレジスタ1300が「10」又は「01」のいずれかの値を含む場合、起動のみの状態1314及び取り込みのみの状態1318に対して1つの機能クロックパルスが出される。起動クロックパルスエッジと取り込みクロックパルスエッジと間の差違は、これらのクロックエッジの時間的変位である。例えば、起動クロックパルスは、一般に、少なくとも1つの機能(「PCLK」)クロック周期だけ取り込みクロックパルスに先行する。
スキャンロード及びアンロードオペレーションを実施するために、2ビットシフトレジスタ1300の初期状態は、テストクロックがスキャンクロックパルスを含むかどうかを判断するTCEn信号値を供給する。2ビットシフトレジスタ1300が「1x」のコンテンツを含む場合、スキャンクロックは、スキャンロード及びアンロードオペレーションに対してイネーブルにされ、ここでxは「ドント・ケア」を意味する。しかしながら、コンテンツが「0x」である場合、スキャンクロックはディスエーブルにされ、パルスエッジはスキャンチェーンに加えられない。TCEn信号の値は、一般的にスキャンロード/アンロードの間は変化しない点に留意されたい。1つの実施形態では、全てのスキャンチェーンが選択的にではなく同時にロード/アンロードされることになる場合、SCLK経路におけるANDゲートを取り除くことができる。
図14A及び14Bは、本発明の種々の実施形態による、起動及び取り込みオペレーションを行うためのテストクロックと、これに対応するクロックドメインをディスエーブルにするためのテストクロックとをそれぞれ構築するようにプログラム可能テストクロックコントローラを構成するための信号のタイミングを示している。図14Aのタイミング図1400は、どのようにプログラム可能テストクロックコントローラがスキャンクロック(「SCLK」)信号及び機能クロック(「PCLK」)信号1402を使用して、起動及び/又は取り込みオペレーションの構成可能なテストクロック波形(「CLK」)1410を生成するかを示している。他の信号1420は図示の状態に初期化されると仮定する。CPCEn信号1406は、スキャンロード又はアンロードオペレーションの後に論理0の値に設定される。CPCEn信号1406の値は、出力信号の値(「Mux.S0」)1408を論理1にする。SeC信号1401及びSeD信号1430の両方が論理0の値に設定された場合、CPCEN信号1406は、論理0の値を維持し、これによってクロック選択レジスタ(「CSR」)出力信号(「Mux.S0」)1408を1の論理値に保持する。従って、CSR出力信号1408は、マルチプレクサに、スキャンモード間隔1413中にテストクロック1410を形成するスキャンクロック(「SCLK[i]」)1412を選択させる。次に、TCEn信号1404がイネーブル(すなわち1の値)であるときに、クロックパルスコントローラは、制御チェーンからのロードオペレーション中にそのシフトレジスタにおいて「11」の値を含む(すなわちSR=11)ようにプログラムされると仮定する。CSRの状態は、SeC信号1401が1の論理値に遷移するまでCPCEn信号1406に対して論理0の値を継続して生成する。次いで、SeC信号1401がサンプル及びホールドレジスタにサンプリングされた後の機能クロック信号1402の第1立ち下がりエッジ1490で、CPCEn信号1406のエッジ1407での1の論理値がクロック選択レジスタに取り込まれる。クロック選択レジスタコンテンツの状態がCSR出力信号1408を1の論理値から0に変える場合、マルチプレクサは、テストクロック1410として機能クロック(「PCLK[i]」)1414を選択する。機能モード間隔1415の間、2つの連続する機能クロックパルス1419は、起動クロックパルス及び取り込みクロックパルスとしてTCEn信号1404によってイネーブルにされる。各機能クロックパルス1419に対し、0の論理値が(例えば、論理ゼロに設定されたSGenIn入力を介して)シフトレジスタにシフトされる点に留意されたい。シフトレジスタがディスエーブル状態に達した(すなわち、そのコンテンツが値「00」を含む)場合、TCEn信号1404はディスエーブルにされ、エッジ1421で0の論理値に下がる。更に、CSR出力信号1408は、エッジ1423で状態が変化することで、プログラム可能テストクロックコントローラを間隔1417の間はスキャンモードに戻し、テストクロック1410としてスキャンクロック(「SCLK[i]」)1416を出力する。
スキャンクロック1412は一般に、SeD信号が論理0にある場合に0の定常状態値に維持される点に留意されたい。プログラム可能テストクロックコントローラは、論理0の定常状態値にある場合、マルチプレクサ出力(すなわち、出力信号1408)の遷移が機能クロック1402のデューティサイクルのほぼ中間1430で発生することを目標にする。有利には、定常状態段階1432の中間1430にあるスイッチングテストクロック1410は、製造で発生する可能性のあるプロセス変動に対する耐性をもたらし、これによってタイミングの不確実性を低減すると共に、不変の機能クロックデューティサイクルを維持する。
図14Bのタイミング図1450は、本発明の1つの実施形態による、クロックドメインをディスエーブルにするための構成可能なテストクロック波形をプログラム可能テストクロックコントローラがどのように生成するかを示している。他の信号1470は、図示の状態に初期化されると想定する。従って、シフトレジスタ(「SR」)は「00」のコンテンツがロードされ、これによって論理0のTCEn信号1454値を生成する。この結果、クロック選択レジスタは、1の論理値を有するCSR出力信号1458を生成し、これによってテストクロック1460としてスキャンクロック(「SCLK[i]」)1462を選択する。従って、テストクロックに対してスキャンパルスも機能パルスも生成されない。
図15は、本発明の1つの実施形態による単純化されたクロックパルスコントローラと単純化されたテストクロックジェネレータとを含むプログラム可能テストクロックコントローラを示す。プログラム可能テストクロックコントローラ1500は、単純化されたクロックパルスコントローラ1502と単純化されたテストクロックジェネレータ1520とを含み、これらの両方が図12Bに記載された同じ名前の信号と対話する。プログラム可能テストクロックコントローラ1500は、図12Bのプログラム可能テストクロックコントローラと同様に動作し、起動及び/又は取り込みオペレーション及び順次的なテスト機能を提供するように特に構成されている。この場合、単純化されたクロックパルスコントローラ1502は、シングルビットを記憶し供給するための1ビットシフトレジスタ(「CPCR」)1504を含む。例えば、プログラム可能テストクロックコントローラ1500は、1[1*00]又は0[x*]などのTCEn信号1506値の対応するストリームを供給することができ、ここで1ビットシフトレジスタ504の初期状態が第1ビット(すなわち、ブラケット間のビットが外部から供給される)のみを含む。この場合、クロック速度制御信号(例えばCPCEn信号)はSeD1521から得られる。信号SeD1521は、MUX1508にスキャンロード/アンロード後にCLK[i]を選択させる。しかしながら、CLK[i]は、一般的に、CSR1524の出力がCLK[i]を選択するよう設定されるまで休止状態にある。これは、論理0から1へ信号SeC1523の値の変化によって起こる。プログラム可能テストクロックコントローラ1500は、起動及び取り込みオペレーション用にTCEn信号1506値を適応させるために有効な2ビットシフトレジスタ(「SR」)として1ビットシフトレジスタ1504とクロック選択レジスタ1526の両方を実装することができる。クロック選択レジスタ1526は、クロックコマンド情報のローディング及びアット・スピードテストの両方のテストクロックを決定する点に留意されたい。オペレーションにおいて、1ビットシフトレジスタ1504のコンテンツは、起動又は取り込みオペレーションの前にクロック選択レジスタ1526にコピーされる。1ビットシフトレジスタ1504をシフトすることによって、TCEn信号1506の値は、出力1524を介してマルチプレクサ1528に加えられる。別の実施形態では、単純化されたテストクロックジェネレータ1520は、同期式サンプル及びホールドが正確な又は安全なテストオペレーションを保証するのに十分でない場合に対応する2ビットシンクロナイザー1522を含む。また、図示されていないが、基準クロックRefClk[k]を用いて、機能クロック(「PCLK[i]」)1530の代わりにシンクロナイザー1522を駆動することができる。
図16は、本発明の1つの実施形態による補完クロックコマンドソースを含むプログラム可能テストクロックコントローラを示す。図示のように、プログラム可能テストクロックコントローラ1600は、補完クロックコマンドソース(「SCCS」)1602に結合され、生成された機能クロックパルスをプログラム可能な時間量だけ阻止又は遅延させる。補完クロックコマンドソース1602は、例えば個々のクロックエッジに対してクロック制御(「TCEn」)信号値として所要のバイナリビットストリームを生成する有限状態機械とすることができる。図12Bを再度参照すると、SGenIn信号1248が制限されていない(すなわち、他の場合には2ビットのシフトアウト後にプログラム可能テストクロックコントローラをディスエーブルにする定常状態の「low」値に保持されていない)場合、補完クロックコマンドソース1602によって生成されたビットストリームは、マルチサイクル経路テストを促進することができる点に留意されたい。従って、取り込みクロックエッジは、特定の起動クロックエッジの後の幾つかの機能クロックパルスを阻止することによって複数のサイクルだけ遅延させることができる。図13を参照すると、最初に2ビットシフトレジスタ1300の初期状態のように起動のみの状態1314(すなわち「10」にプログラムされたコンテンツを持つ)から始めることによって、マルチサイクルクロッキング方式を実施することができると仮定する。その結果、10[0*100*]の図16のTCEn信号値1604は、遅延テストのマルチサイクル経路をサポートすることができる。補完クロックコマンド情報[0*100*](すなわち、「10」の最初の2ビット後のシーケンスの残り)は、補完クロックコマンドソース1602によって提供することができる。
有利には、補完クロックコマンドソース1602は、マルチサイクルに対して10*100*、順次的に対して1*00*、及び起動のみ又は取り込みのみのいずれかでは0*100*のTCEn値を生成し、これに応じて、マルチサイクル経路テストオペレーション、順次テストオペレーション、及び遅延起動のみのオペレーション又は取り込みのみのオペレーションを実施する。TCEn値1604の最初の2ビットは、クロックパルスコントローラ内に記憶することができる。「x*」の最初の発生の後に「x」の補完が続き、その後で「00*」が続く。最後の文字列「00*」は、テスト動作の最後で機能クロックをディスエーブルにし、これによってプログラム可能テストクロックコントローラ1600をディスエーブル状態にする。幾つかの実施形態では、補完クロックコマンドソース1602は、TCEn信号1604に対してkビットの値(又は個々のクロックエッジ)まで供給するkビットシフトレジスタとすることができる。しかしながら、kが比較的大きい場合、文字列ジェネレータを利用してハードウェアオーバーヘッドを低減することができる。
図17A及び17Bは、本発明の種々の実施形態に従って文字列ジェネレータとして実施される補完クロックコマンドソースとその対応する状態図とをそれぞれ示す。1つの実施形態では、文字列ジェネレータ1700は、補完クロックコマンド情報を表わすデータビットの文字列を生成し、文字列は、例えばkビットレジスタにkデータビットを記憶することが必要なある量のメモリ要素よりも一般的に長いビット長を有する。文字列ジェネレータ1700は、第1パルス値及び第2パルス値を記憶するように構成されたビット保持ユニット1720と、幾つかの介在クロックサイクルが第1パルス値と第2パルス値との間でシフトされた後、専用リングカウンタの最上位ビット(「MSB」)の論理遷移を行うための専用リングカウンタ1720とを含む。例えば、ビット保持ユニット1720は、TCEn信号値のストリームで0又は1のいずれかの論理値を「n」回生成することができる。専用リングカウンタ1720は、生成されることになるパルスの数を追跡する。専用リングカウンタ1720の初期コンテンツは、CSI1711及びCSO1712を介して連続してロード又はアンロードすることができる。起動及び取り込みオペレーションの間、カウンタはゼロ状態に達するまでカウントし続ける。
オペレーションにおいて、ビット保持ユニット1710は、論理0の値を有するゼロ(「ゼロ」)信号1716が端子1714に達するまで初期値を保持する。従って、ゼロ信号1716は、専用リングカウンタ1720がゼロ状態に達しているか否かを示す。レジスタ(「G1」)1702及びレジスタ(「G0」)1704は、例えば起動及び/又は取り込みオペレーションが次に進む前に補足論理値で初期化される。補足論理値は、カウントの終了時にクロックパルスコントローラ(図示せず)に出力される。専用リングカウンタ1720は、リロードされるまでゼロ状態のままである。説明の目的で、ゼロ信号1716は、論理1の値を有し、レジスタ1702及び1704は補足論理値を含むと仮定する。更に、XORゲート1718は、レジスタ1704のコンテンツが変化しないようにするために追加の反転を導入する。次に、ゼロ信号1716は論理0の値を有し、これによって2ビットシフトレジスタとしてビット保持ユニット1710を構成すると仮定する。XORゲート1718は、ゼロ信号1716が論理1の値を有する場合に反転器として機能するが、それ以外はバッファとして動作する点に留意されたい。従って、ゼロ信号1716が0の値に達した後の2つの機能クロックサイクル、すなわちレジスタ1702及び1704の各々は、0の論理値を含む。両方のレジスタ1702及び1704からのコンテンツに基づいて、SGenEn信号1719は、文字列ジェネレータ1700がイネーブルか否かを示すために生成される。レジスタ1702及び1704がそれぞれ0及び0の論理値を含む場合、SGenEn信号1719は、文字列ジェネレータ1700がディスエーブルである(及びリロードされるまでディスエーブルのままである)ことを示す。これ以外は、文字列ジェネレータ1700は、起動及び/又は取り込みオペレーションに対してイネーブルである。図17Bの状態図1750は、ビット保持ユニット1710のオペレーションを説明するための状態図1760を含む。
図17Aを再度参照すると、専用リングカウンタ1720は、レジスタ(「G1」)1704が保持する幾つかの機能クロックサイクル(例えば、起動クロックエッジと取り込みクロックエッジとの間の幾つかの個々のクロックエッジ)を含むようにプログラム可能である。文字列ジェネレータ1700は、ゼロ検出能力を有する専用リングカウンタ1720を利用する。図示の実施例では、専用リングカウンタ1720は、3ビットリングカウンタ1722を実装する。有利には、3ビットリングカウンタ1722は、起動及び取り込みオペレーションの間のゼロ出力に対する単一のORゲート遅延の最悪状況遅延を維持する。3ビットリングカウンタ1722は、専用リングカウンタ1720の最上位ビット(「MSB」)をイネーブルにして、論理1から0遷移を有するゼロ信号1716として出力信号を設定することによって遅延を1ORゲート遅延に制限する。ORゲートのチェーン1724は、ゼロ信号1716においてゼロ値を直接決定するために最下位ビット(「LSB」)から遷移が伝播しないという点で偽経路を提供する。専用リングカウンタ1720は、Nが本発明の他の実施形態でMビットリングカウンタを実装するのに使用されるフリップフロップの数である場合、2Nまでカウントできる点に留意されたい。他のカウンタを文字列ジェネレータに組み込んでもよい。図17Bの状態図1750は、3ビットリングカウンタ1722の動作を表す状態図1770を含む。
図18は、本発明の実施形態に従って電子デバイス及びその回路をテストするためにプログラム可能テストクロックコントローラのあらゆる数を実装する概念的なテストクロック制御構造を示すブロック図を示している。テストクロック制御構造1800は、あらゆる数Nのプログラム可能テストクロックコントローラ(「PTCC」)を含み、その1つがPTCC1810として示されている。テストクロック制御構造1800の各PTCCは、スキャンクロック(「SCLK」)1816などのソースクロックと、機能クロック(「PCLK[1..N]」)1806の1つとを切り替えるマルチプレクサ(「MUX」)1812を含む。この実施例では、1つ又はそれ以上のPLL回路1802は、PLL出力クロック1806にロックされた位相を有する1つ又はそれ以上の基準クロック(「Ref Clk[1..M]」)1801から機能クロック1806を生成する。更に、各PTCCは、クロックコマンド情報(「CCI」)を加え、テストクロック(「CLK[1..N]」)1818からの少なくとも1つのテストクロックを有するスキャンチェーン1820において1つ又はそれ以上のフリップフロップ及び/又はスキャンチェーンを駆動するための論理1814を含む。スキャンチェーン1820は、順次的なセル1820aのどのような数も含み、その1つは図18に示されている。1つの実施形態では、順次セル1820aはマルチプレクサ(「mux」)1870と記憶要素1872とを含む。マルチプレクサ1870は、スキャンイネーブルデータ(「SeD」)制御信号1840の再時間調節バージョンであるSE2FF信号1871によって制御され、入力1880(例えば被試験回路からの結果として得られるデータ)又はスキャンチェーン入力(「SI」)1882(前の順次セルから)のいずれかを記憶要素1872に切り換える。記憶要素は、出力1884として(例えば被試験回路への刺激データとして)及び/又はスキャン出力(「SO」)1886を介して次の順次セルにデータを供給するように構成されている。
この実施例では、PTCC1810は、制御チェーン1830の少なくとも一部からクロックコマンド情報を受け取る。幾つかの実施形態では、スキャンチェーン1820及び/又は制御チェーン1830は各々、単一のチェーン(例えば連続してデータをシフトする)又はスキャンチェーンの幾つかの部分(例えば、並行してデータをシフトする)のいずれかを含むことができる点に留意されたい。幾つかの実施形態では、ATE(図示せず)は、SeD信号1840、SeC信号1842、一次スキャンクロック(「ScanClk」)信号1844、及び基準クロック1801を生成する。少なくとも1つの実施形態では、これらのATE生成信号はグローバル信号である。すなわち、これらは、テストクロック制御構造1800でPTCCに加えられる。幾つかの実施形態では、オプションのテスト用設計(「DFT」)ブロック1850が追加される。DFTブロック1850は、SeD信号1840及びクロックドメインイネーブル(「CDEn」)信号1852によって制御される幾つかのフリップフロップ(「SeFFs」)1860を含む。一般に、SeD信号1840のタイミング制約を確保するためのSeFFs1860は、例えば大きなシステム(例えばチップ上のシステム)でのラスト−シフト−ローンチテストプロトコルに適合する。論理1814が起動及び/又は取り込みオペレーションを行うためのクロックコマンド情報を含む場合、CDEn信号1852は、対応するPTCCにプログラムされたコンテンツに基づいてSeFFs1860のコンテンツを調節する。CDEn信号1852の状態は、SeFFs1860のコンテンツをイネーブルにされたクロックドメインに保持し、ディスエーブルにされたクロックドメインのSeFFs1860をリセットする。従って、イネーブルにされたクロックドメインのみが、ラスト−シフト−ローンチテストに参加することができ、他のクロックドメインはディスエーブルにされるか、又は機能モードで動作することができる。
図19は、本発明の実施形態による種々のドメインで回路をテストするためのプログラム可能テストクロックコントローラを実施するテストクロック制御構造を示す図である。テストクロック制御構造1900(又はその一部)は、クロックドメイン1902a、1902b、及び1902cとそれぞれ対話するためにプログラム可能テストクロックコントローラ(「PTCC」)1910、1920、及び1930を含む。各クロックドメイン1902は、1つ又はそれ以上のスキャンチェーン1904(又はその一部)と被試験回路1906とを含む。この実施例では、クロックドメイン1902のスキャンチェーン1904は、1つ又はそれ以上のスキャンチェーン部分1904が例えばスキャンアンロード/ロードオペレーションを受けるが、他は受けない点で並行している。更に、1つ又はそれ以上のクロックドメインは、テストプロトコルの同じ又は異なるタイプで実行できると同時に、他は待機状態のままか又は他のテストに従事することができる。例えば、PTCC1910及び1920にそれぞれロードされたクロックコマンド情報(「CCI」)1912及び1922がクロックドメイン1920aで起動オペレーションを生じ、クロックドメイン1920bで取り込みオペレーションを生じることで、ドメイン間テストを実施すると仮定する。これは、クロックドメイン1902cのスキャンチェーン部分1904が、例えばCCI1924に応じてドメイン1902cをディスエーブルにするPTCC1930の結果として、ロード/アンロードオペレーションを受けるか又はイナクティブ(例えば静的テストを行うために)である場合に起こる可能性がある。テストクロック制御構造1900が1つ又はそれ以上のクロックドメイン1902を並行してテストする柔軟性をもたらすので、クロックドメイン間の順次的な依存が低減され、その結果自動化されたテストパターン生成の複雑さが軽減される。有利には、テストクロック制御構造1900における並行ドメインの実施は、スキャンロード/アンロードオペレーションの数を低減することによって全体的なテスト時間及びテストデータボリュームを低減することができる。図19はクロックドメインとしてのドメイン1902を示しているが、クロックドメインは、パワードメインなどの他のどのようなタイプのドメインとしても特徴付けることができる。テストクロック制御構造1900に関する前述の説明は、以下の図23及び24にも適用可能である。
図20は、本発明の実施形態によるテストアクセスポイントを低減するために一次入力2020と一次出力2022とを共用する制御チェーン2002及びスキャンチェーン2004を示す図である。この実施例では、SeC信号2001が、制御チェーン2002又はスキャンチェーン2004のいずれかからシフトされたデータをマルチプレクサ2006に選択させ、SeD信号2003が、チェーンから又は機能出力からシフトされたデータをマルチプレクサ2008に選択させる。
図21は、本発明の1つの実施形態によるドメイン間テストを実行するように構成されたテストクロック制御構造を示す。テストクロック制御構造2100は、2つのクロックドメインに対して遅延テストを協働させるためのプログラム可能テストクロックコントローラ(「PTCC」)2111及びPTCC2121を含む。クロックドメイン2102及びクロックドメイン2104はそれぞれ回路2103及び2105を含み、この両方は、本質的に異なるクロック周波数で共に動作するように設計されている。従って、PTCC2111は、機能クロックPCLK[i]2110を使用して第1クロック速度を生成することができ、PTCC2121は、機能クロックPCLK[j]2120を使用して第2クロック速度を生成することができる。本発明の種々の実施形態によれば、PTCC2111及び2121のクロックパルスコントローラ2130は、相対的に同時に起動のみのオペレーション及び取り込みのみオペレーションをそれぞれ実行し、ドメイン間領域2150でインタフェース回路及び同様のものをテストするように制御チェーン2140を介してプログラムすることができる。起動のみのオペレーション及び取り込みのみのオペレーションを含むマルチサイクル経路テストオペレーションを統合するために、自動化テストパターンジェネレータ(「ATPジェネレータ」)として機能するように構成されたコンピュータデバイスは、ドメイン間テストを実行してドメイン間領域2150における欠陥を検出するためのPTCC2111及び2121のオペレーションを同期させるテストパターンを作成することができる。例えば、ATPジェネレータは、共通基準クロック(「Ref Clk」)2160を使用してタイミング基準ポイントを設定することができる。他の実施形態では、ATPジェネレータはまた、互いに対して非同期の異なる基準クロックを使用してドメイン間テストを行うことができる。幾つかの実施形態では、用語「マルチサイクル経路テスト」は、一般的にドメイン間テスト又はドメイン内テスト、或いはこれらの両方を意味することができる点に留意されたい。
図22A及び22Bは、本発明の種々の実施形態に従って1つ又はそれ以上のタイミング基準ポイントを使用して時間間隔を計算しドメイン間テストを実施するための種々の技術を示す。図22Aは、共通基準クロック(「Ref Clk[k]」)2216を用いてタイミング基準ポイント2220を提供し、1つ又はそれ以上のプログラム可能テストクロックコントローラ(「PTCC」)によって行われるオペレーションを遅延させる幾つかのクロックサイクルを決定する方法を示している。PTCCは、SeC信号2218がサンプリングされた後に起動オペレーション又は取り込みオペレーションのいずれかを遅延させることができる。PTCCは、その特定のクロックドメインにおけるテストクロックに対してオペレーションを遅延させる。ドメイン間(例えばクロックドメイン間)テストが、クロックドメイン[i]から取り込みが行われる別のクロックドメイン[j]に起動を行うように設計することができると仮定する。従って、クロックドメイン[i]の起動クロックパルスは、SeC信号2218がサンプリングされた後に4PCLK[i]クロックサイクルだけ遅延させることができる。更に、クロックドメイン[j]の取り込みオペレーションは、1PCLK[j]クロックサイクルだけ遅延させることができる。Ref Clk[k]クロック2216の位相は、少なくともPCLK[j]2212及びPCLK[j]2214にロックされる点に留意されたい。「時間間隔」は、PCLK[i]2212又はPCLK[j]2214のいずれかなどのある一定のクロックに対する幾つかのサイクルにおける遅延である。従って、ATPジェネレータは、基準クロックエッジ2220から始まり指定された起動(又は取り込み)クロックエッジまでのPCLK[i]2212の立ち下がりエッジの数をカウントすることによって時間間隔を算出することができる。ATPジェネレータは、時間間隔に基づいてテストパターンを形成することができる。次いで、ATEは、時間間隔をPTCCのクロックパルスコントローラ並びにスティングジェネレータにプログラムしてマルチサイクルテストを行うことができる。
図22Aの図2230は、クロックドメイン[i]からの遷移を起動し、これをクロックドメイン[j]で取り込むための算出時間間隔2232及び2234を示している。そのため、入力遷移は、Ref Clk[k]2216の立ち上がりエッジ2220から4立ち下がりエッジの遅延(例えば4の時間間隔2232)後にPCLK[i]2212の5番目の立ち上がりエッジ2217で起動することができる。遷移は、1立ち下がりエッジの遅延(例えば、1の時間間隔2234)の後でクロックPCLK[j]2214の2番目の立ち上がりエッジ2219で取り込まれる。図2240は、遷移を起動するクロックドメイン[j]からクロックドメイン[i]へ遷移を取り込む(図2230とは逆方向)ための算出時間間隔2242及び2244を示している。従って、遷移は、PCLK[j]2214の2番目の立ち上がりエッジ2219(例えば、1の時間間隔2244の後)に起動することができ、遷移は、6立ち下がりエッジの遅延(例えば、6の時間間隔2242)後にPCLK[i]2212の7番目の立ち上がりエッジ2221で取り込むことができる。
図22Bは、基準クロックもテストクロックも同相でない場合の時間間隔の算出を示す。この図は、クロックドメインが同相でなく且つ同期されていない機能クロックに相当するクロックドメイン間テストのタイミングを示す。この実施例では、クロックPCLK[i]2262及びPCLK[j]2264がそれぞれ、非同期である基準クロックRef Clk[k]2266及びRef Clk[l]2268から得られる。従って、時間間隔の算出は、複数のタイミング基準ポイントを用いてなされる。例えば、基準ポイント2267及び2269は、時間間隔を決定付ける種々のベースを提供する。図22Bの図2280は、クロックドメイン[i]からの遷移を起動しこれをクロックドメイン[j]で取り込むための算出時間間隔2282及び2284をそれぞれ示す。そのため、入力遷移は、Ref Clk[k]2266の立ち上がりエッジ2267から4立ち下がりエッジの遅延(例えば、4の時間間隔2282)後にPCLK[i]2262の5番目の立ち上がりエッジ2277で起動することができる。遷移は、1立ち下がりエッジの遅延(例えば、1の時間間隔2284)後にクロックPCLK[j]2264の2番目の立ち上がりエッジ2279で取り込まれる。図2290は、遷移を起動するクロックドメイン[j]からクロックドメイン[i]への遷移を取り込むための算出時間間隔2292及び2294を示している。従って、遷移は、PCLK[j]2264の2番目の立ち上がりエッジ2279(例えば、1の時間間隔2294の後)で起動することができ、7立ち下がりエッジの遅延(例えば、7の時間間隔2292)後にPCLK[i]2262の8番目の立ち上がりエッジ2281で取り込むことができる。幾つかの実施形態では、複数のSeC信号2270を組み込み、クロックドメイン間テストの融通性のある実施を可能にすることができる。複数のSeC信号2270(図示せず)は、基準クロックのエッジ選択の可制御性を高めることで、基準クロックの所要の開始エッジを選択することによって1つ又はそれ以上の文字列ジェネレータのサイズを低減することができる。例えば、SeC[m]信号及びSeC[m+1]信号は、文字列ジェネレータのサイズを最小にするために(t)番目の周期及び(t+h)番目の立ち下がり又は立ち上がりエッジになるように開始エッジを選択することができる。
図23は、本発明の1つの実施形態によるドメイン内テストを実施するように構成されたテストクロック制御構造を示す。テストクロック制御構造2300は、各々が対応するサブドメイン2302を制御するためのプログラム可能テストクロックコントローラ(「PTCC」)2304を含む。ドメイン2301は、幾つかの小さなドメイン、又はサブドメイン2302に分割される。ドメイン2301がクロックドメインである場合、PTCC2304は、サブクロック「クロック」ドメインとしてサブドメイン2302をテストするための共通機能クロックPCLK2306を集合的に使用する。
図24は、本発明の1つの実施形態による単純化されたプログラム可能テストクロックコントローラを使用してドメイン内テストを行うように構成されたテストクロック制御構造を示す。この実施例では、テストクロック制御構造2400は、複数のサブクロックドメイン2403のスキャンテストを制御するための単純化されたプログラム可能テストクロックコントローラの構成2401を含む。幾つかの実施形態において本明細書で使用される用語「クロックドメイン一般化」は、クロックドメインをサブクロックドメイン2403のセットに分割するプロセスを意味し、これによって単純化されたプログラム可能テストクロックコントローラの構成2401は、予め分割されたオリジナルのクロックドメインの構造よりも一般化されたクロックドメインでより融通性を高くすることができる。例えば、単純化されたプログラム可能テストクロックコントローラの構成2401は、回路に埋め込まれたパワードメインがサブドメイン2403に分割されてテストすることができる場合により有用とすることができる。パワー回路の性能がパワードメイン内のシステム遅延に影響を与える可能性があるので、別個のサブドメイン2403として各パワードメインを形成し、遅延テスト中はこれを独立して制御することが望ましいとすることができる。クロックドメインの一般化はまた、例えば他のサブクロックドメインのテストと干渉することなくサブクロックドメインの欠陥フリップフロップを検出するためのシリコンデバッグで有用とすることができる点に留意されたい。構成2401によってユーザーはどのクロックドメインでもスキャンロード/アンロードをプログラムすることが可能であるので、サブクロックドメイン2403を含むクロックドメインにおける選択スキャンチェーンだけを、診断中にロード/アンロードする必要がある。
構成2401は、機能クロックPCLK[i]2405を使用してサブクロックドメイン2403の「m」個を駆動するように構成されている。構成2401は、親PTCC2402と子PTCC2406及び2408を含む。親PTCC2402は、テストクロックパルス2407のプログラム可能な数を子PTCC2406及び2408にブロードキャストするよう動作し、これらのいずれかを、テストクロックパルス2407を使用するか又は使用しないようにプログラムすることができる。PTCC2406及び2408が親PTCC2402と同じ構造及び/又は機能を有することができるが、これらは、この実施例では単純化されたプログラム可能テストクロックコントローラ(「SPTCC」)から構成される。有利には、SPTCCとしてのPTCC2406及び2408は、実施するのにハードウェアリソースをそれほど必要としない。図示のように、SPTCCは、単純化されたクロックパルスコントローラ(「SCPC」)とクロックドメイン一般化(「CDG」)セルとを含む。ここで、PTCC2406は、SCPC2410とCDGセル2420とを含み、PTCC2408は、SCPC2430及びCDGセル2440を含む。幾つかの実施形態では、SCPC2430及びCDGセル2440は、それぞれ親PTCC2402のCPCとTCG(どちらも図示していない)の単純化されたバージョンとして記述することができる。オペレーションにおいて、SCPC2410及びSCPC2430の出力は、ゲート2470でテストクロックパルス2407と論理積演算され、例えばCLK[i,m]までのサブドメインクロックCLK[i,l]、CLK[i,j]を生成する。親PTCC2402をディスエーブルにすることにより、全サブクロックドメインがディスエーブルになる点に留意されたい。また、ゲート2490及びゲート2492は、クロックドメイン2403a及び2403cのオペレーションをそれぞれイネーブルにするクロックドメインイネーブル信号(「CEDN[i,l]」)2496及び(「CEDN[i,m]」)2498を生成する点に留意されたい。
更に、SPTCCの構造は、各サブクロックドメインのテスト要件に対して最適化することができる点に留意されたい。例えば、テストクロックパルス2407がパス又はブロックされることになる場合、SPTCCは、SCPC2410を含むことができ、該SCPC2410は、クロックCLK[i,l]を制御するための単一のフリップフロップ(「C0」)を含む。この場合、SCPC2410は、ICLK[i]2411を使用してロードされ、起動及び/又は取り込みオペレーション中は変化しないままにすることができる。幾つかの実施形態では、ICLK[i]2411は、図12に示されるように信号CPCen1240、PCLK1252、及びTCLK1210を使用して生成することができる。起動及び/又は取り込みオペレーションでは、SCPC2410は、CLK[i](例えば文字列ジェネレータ又は同様のものから)を生成するために制御パターンがロードされた親PTCC2402の親CPC(図示せず)と共に1の論理値(例えば要素(「C0」)2472にロードされた)をロードすることができる。ローカルテストクロックCLK[i,j]が親テストクロックCLK[i]2407と同じである場合、PTCC2406及び2408はイネーブルにされる。サブクロックドメイン2403のテストが、例えば異なるクロックサイクルで遅延の起動のみ又は取り込みのみのいずれかを実行することが必要である場合、SPTCCは、要素(「C0」)2476及び(「C1」)2433から構成される2ビットローカルシフトレジスタ(親PTCC2402と同じ)を有するSCPC2430を含むことができる。有利には、SCPC2430などのSCPCの2ビット実装は、テスト時間及びテストボリュームの低減を促進する。
図25Aから25Dは、本発明の1つの実施形態によるプログラム可能テストクロックコントローラを使用してドメイン間テスト及びドメイン内テストを容易にするように構成されたテストクロック制御構造を示す。図25Aでは、テストクロック制御構造2500が、ドメインの一部又はサブドメイン2510及び2530がテスト回路2520に並行して又は連続して実行されるかどうかに関わらず、回路のドメイン間テスト又はドメイン内テスト、或いはその両方を容易にする。プログラム可能テストクロックコントローラは、各クロックドメインの境界内にドメインの内部相互作用を限定するようにプログラムすることができるので、ドメインのインタフェースは、ドメインの残りとは独立して制御することができる。この結果、1つ又はそれ以上のドメインインタフェース(及びサブドメインインタフェース)は、ドメイン(又はサブドメイン)の他の部分のテストと並行して又は連続してスキャンベースのテストに実装することができる。従って、個々のPTCCを用いて、スキャンチェーン部分、回路、及び同様のものなどのサブドメインの選択部分を制御することができる。
例証の目的で、サブドメイン2510のPTCC2512及び2514は各々、サブドメイン2530のPTCC2522及び2524によって使用される機能クロックとは異なるクロック速度と同じ機能クロックで動作すると仮定する。最初に、PTCC2514及び2524は、ある時間T1でテストクロック制御構造2500の一部2502を作動させるようにプログラムされると仮定する。例えば、PTCC2514及び2524は、起動及び取り込みオペレーション、又はスキャンチェーンロード又はアンロードオペレーションなどのある他のオペレーションを実行するようにプログラムすることができる。このような部分2502は、クロック制御構造2500の他の部分とは独立して制御することができる。更にこの実施例では、PTCC2512及び2522は、部分2502のテストと並行又は連続したドメイン内(又はサブドメイン内)動的及び/又は静的テストを実行するようにプログラムすることができると仮定する。次に、時間T2で、PTCC2514及び2524はディスエーブルとすることができ、他のPTCCでは、部分2504をテストするために動的(例えば、ブロードサイド、ラスト−シフト−ローンチ、ドメイン間、ドメイン内など)及び/又は静的テストに従事するようにイネーブルにされると仮定する。幾つかの実施形態において、テストクロック制御構造2500及び付随回路は一般に、PTCC2512、2514、2522、及び2524から構成された構造を定める点に留意されたい。
図25Bから25Dは、本発明の別の実施形態によるプログラム可能テストクロックコントローラを使用してドメイン間テスト及びドメイン内テストを容易にするように構成されたテストクロック制御構造の更に別の実施例を示す。テストクロック制御構造2550は、ドメイン間テスト又はドメイン内テスト、或いはこれらの両方を容易にする。プログラム可能テストクロックコントローラが各クロックドメインの境界内に内部相互作用を限定するようにプログラムすることができるので、ドメインのインタフェースは、ドメインの残りとは独立して制御することができる。このようなインタフェースの実施例は、入力レジスタ及び/又は出力レジスタを含む。この結果、1つ又はそれ以上のドメインインタフェース(及びサブドメインインタフェース)は、ドメイン(又はサブドメイン)の他の部分のテストと並行及び/又は連続したスキャンベースのテストにおいて実装することができる。従って、個々のSPCPを用いて、スキャンチェーン部分、回路、又は同様のものなどのサブドメインの選択部分を制御することができる。
例えば、図25Bは、サブドメイン2560のSPCP2564及び2566が各々同じ機能クロックで動作し、その両方がサブドメイン2520及び2580それぞれのSPCP2571及び2581によって使用される機能クロックとは異なるクロック速度を有することができることを示している。最初に、SPCP2571及び2564は、クロックドメイン間テストを作動させて回路部分2530で論理2572及び/又は論理2474をテストするようプログラムされ、SPCP2566及び2581は、クロックドメイン間テストを作動させて回路部分2531で論理2582及び/又は論理2584をテストするようプログラムされると仮定する。全SPCP2571、2564、2566、及び2581は、ある時間T1に動作するようプログラムすることができる。レジスタ2559は、サブドメイン(「ドメインr」)2580の出力レジスタを表すことができる点に留意されたい。従って、SPCP2571及び2564は、例えばそれぞれ起動(例えばサブドメイン2570から)及び取り込みオペレーション(例えばサブドメイン(「ドメインq」)2560に)を、或いはスキャンチェーンロード又はアンロードオペレーションのような他のオペレーションを実行するようにプログラムすることができる。レジスタ2589は、サブドメイン(「ドメインp」)2570の入力レジスタを表すことができる点に留意されたい。同様に、SPCP2566及び2581は、例えばそれぞれ起動(例えばサブドメイン(「ドメインq」)2560から)及び取り込みオペレーション(例えば、サブドメイン(「ドメインr」)2580に)を、或いはスキャンチェーンロード又はアンロードオペレーションのような他のオペレーションを実行するようにプログラムすることができる。従って、回路部分2530及び2531は、クロック制御構造2550の他の部分とは独立して(例えば、サブドメイン2560の論理2561、論理2562、及び論理2563とは独立して)制御することができる。更にこの実施例では、SPCP2564、2565、及び2566は、図25Bの部分回路部分2530及び2531のテストと並行又は連続してドメイン内(又はサブドメイン内)動的及び/又は静的テストを実行するようにプログラムすることができると仮定する。図25Cは、時間T2でSPCP2571及び2581をディスエーブルにすることができ(例えば、レジスタ2559及び2589のコンテンツを保護するため)、同時にSPCP2564及び2565が、システム組合せ論理の部分2561、及び内部レジスタ及び論理を含むことができる別の部分2562を含む回路部分2590をテストするために動的(例えば、ブロードサイド、ラスト−シフト−ローンチ、ドメイン間、ドメイン内テストなど)及び/又は静的テストに従事するように構成されることを示している。同様に、図25Dは、時間T3でSPCP2565及び2566をイネーブルにし、回路の他の部分2562及び論理2563を含む回路部分2591をテストするために動的及び静的テストに従事できることを示している。
図26は、プログラム可能テストクロックコントローラ(「PTCC」)を実装するテストクロックコントローラ構造を使用して本発明の実施形態による回路をテストするためのマイクロレベルのフローの実施例を示す。フロー2600は一般に、2ビットシフトレジスタを備え補完クロックコマンドソースを備えないPTCCに適用される。場合によっては、SeFFは、フロー2600でのスキャンロード/アンロードオペレーション開始の前に初期化される。SeFFの実施例は、図18のSeFF1860として参照される。フロー2600は、2601でテストモード作動信号をアサートすることによってスキャンテストモード(「TM」)をイネーブルすることから始まる。2602で、制御ロード/アンロードオペレーションは、制御チェーンにアクセスするために初期化される。次いでPTCCは、スキャンクロック SCLKとしてのテストクロックの伝播をイネーブル又はディスエーブルにするように2604でプログラムされる。次に、スキャン経路がイネーブルである場合、スキャンロード/アンロードオペレーションが2606から始まる。2608で、スキャンデータは、スキャンチェーン部分にロードされるか、又はスキャンチェーン部分からアンロードされ、その後、PTCCは2610でプログラムモードに入る。任意選択的に、2612の前に1つのSCLKクロックパルスを全SeFFに加えることによってSeFFを初期化することができる。プログラムモードになると、2612でロードされたクロックコマンド情報に従ってPTCCを構成することができる。例えば、PTCCは、起動及び/又は取り込みオペレーション、起動のみのオペレーション、取り込みのみのオペレーション、サイレントオペレーション、又は同様のもののうちの1つ又はそれ以上に従事するように構成することができる。2614で、PTCCは、サイレント状態オペレーションに入ることができる。任意選択的に、IDDQ漏れテストなどの静的テストを行うことができる。この場合、ATEは、2618で入力を加える(又は強制する)ことができ、その後、電源及び接地端子でのパラメータIDDQを測定する。次にPTCCは、2620で機能テストモードに入り、起動及び/又は取り込みに関連する動的テストを行う。PTCCは、2622でプログラムされた起動又は/及び取り込みを実行する。2624でATEは、例えば、全てのドメインがテストされたかどうかを判断し、テストされていない場合、行うべき次の一連の措置が何かを判断する。1つ又はそれ以上の追加のクロックドメインがテストを要求する場合、フロー2600は、PTCCがその機能を変更して付随するスキャンロード/アンロードオペレーションなしに回路を更にテストするようにプログラムすることができる場合には2612に進む。しかしながら、スキャンロード/アンロードオペレーションが要求される場合、フロー2600は2604に進む。2630で、ATEは、パターン実施が完了するまでテストを継続する。
フロー2600は、制御チェーンを使用したPTCCの2つのプログラミングステップを示しており、2604及び2610でのオペレーションに関連したテスト時間及びテストデータボリュームは、スキャンロード及びアンロードオペレーションに比べて総テスト時間及びデータボリュームの影響が極めて少ない。更に、全クロックドメインは、クロックドメインが実行されるまでスキャンロード及びアンロードオペレーションに従事する必要はない。一般に、テストクロック制御構造は、実行されたクロックドメインにおいてのみスキャンチェーンに対してスキャンロード及びアンロードオペレーションを行うように設計されている。有利には、フロー2600は、より頻繁にスキャンチェーンをロード及びアンロードする従来のスキャンベースのテストに比べて総テスト時間の削減をもたらした。
フロー2600は、事前構成又はセットアップレベルでテストを実施するためにテストクロック制御構造を使用する方法の実施例を説明しており、本発明の他の実施形態は、本明細書に記載されるテストクロック制御構造を使用するマクロレベルテストフローを対象としている。1つの実施形態によれば、スキャンベースのテストのためのテストクロック制御構造を実施する方法は以下のように説明することができる。本方法は、動的欠陥検出テストパターンを実装する複数の回路のドメインの第1サブセットを実行するドメイン内テストを行うことができる。本方法は、動的欠陥検出テストパターンを実装する複数の回路のドメインの第2セットを実行するドメイン間テストなどの別のテストを更に行う段階に進む。これらの動的欠陥検出テストパターンは、ラスト−シフト−ローンチテストパターン及びブロードサイドテストパターン、並びに他のあらゆる動的テストパターンを含むことができる。幾つかの実施形態では、これらのドメインはクロックドメインである。場合によっては、本方法は更に、ドメイン間テストを受ける回路から分離された回路の部分に対して縮退テスト及び動的テストなどのドメイン内テストを実行する段階を含む。
次に、本方法は、ほぼ並行して種々のクロックドメインをテストするように種々のプログラム可能テストクロックコントローラを構成することができる。一般的に、これにより、種々のクロックドメインをテストするときに1つ又はそれ以上のスキャンチェーンがロードされる回数が低減される。プログラム可能テストクロックコントローラが、種々のサブクロックドメインをテストするための種々のサブクロックドメインを含むことができる点に留意されたい。幾つかの実施形態では、ドメイン内テストの実行は、縮退テストと共に実施することができるクロックドメイン間テストの実行を交互にすることができる。例えば、クロックドメイン内及びクロックドメイン間テストパターンを組み合わせて単一のテストパターンにし、これによって有利にはスキャンチェーンオペレーション当たりのテスト対象範囲を広くすることができる。クロックドメイン内テストの後にドメイン間テストを実行することができる点に留意されたい。ドメイン間テストの実行はまた、静的欠陥検出テストパターンを実施する段階を含むことができる。例えば、欠陥検出テストパターンは、ドメイン間テスト用に使用される動的欠陥検出テストパターンとほぼ同時にスキャンチェーンにロードすることができる。ATEはまた、ドメイン間テスト中の静的欠陥テストとほぼ同時にラスト−シフト−ローンチテストを実行することができる。
幾つかの実施形態では、本方法のドメイン間テストの実行は、時間間隔を算出する段階と、時間間隔に基づいて2つのドメイン間の起動及び取り込みシーケンスを開始する段階とを含む。少なくとも1つの実施形態では、本方法は、1つ又はそれ以上の制御チェーン及び1つ又はそれ以上のスキャンチェーンを含む、特定のテストクロック制御構造の自動テストパターン生成(「ATPG」)フローに従って、動的欠陥検出テストパターンを生成する段階を含む。ATPGフローの実施例を次に説明する。
図27は、本発明の実施形態による回路をテストするためにプログラム可能テストクロックコントローラ(「PTCC」)を実装するテストクロックコントローラ構造を使用するためのマクロレベルのフローの実施例を示す。具体的には、フロー2700は、テストクロック制御構造を実施するためのテストパターンを生成するATPGフローである。フロー2700では、クロックドメイン内及びクロックドメイン間テストは、スキャンロード/アンロードオペレーションの数を削減するために分離されている。クロックドメイン内及びクロックドメイン間テスト内では、ラスト−シフト−ローンチテスト用のアット・スピードテストが以下のブロードサイドと共に最初に実行される。ブロードサイド前のラスト−シフト−ローンチのこの位置付けは、全体的なテスト対象範囲、テストデータボリューム、及びATPGランタイムを最適化しようと試みる。更に、テストパターンは、ラスト−シフト−ローンチを使用するパターンに対してブロードサイドを使用する遅延テストパターンを付加することによって取得することができる。縮退テストのフロー2700におけるATPGは、クロックドメイン間テストで実施することができる点に留意されたい。これは、遅延テストパターンに含まれる縮退テストパターンが遅延テスト中に実際にはどのような影響も及ぼさないことに起因するが、これらは、生成されることになる縮退テストパターンの数を削減することができる。
従って、フロー2700は、2710でクロックドメイン内論理に対して遅延テストを実施するためのパターンを生成することによって自動テストパターン生成を開始する。これは、2720でラスト−シフト−ローンチを使用して遅延欠陥のテストパターンを生成する段階と、2730でブロードサイドを使用して2720で検出されなかった欠陥のテストパターンを生成する段階とを含むことができる。幾つかの実施形態では、クロックドメイン間テストパターンは、ラスト−シフト−ローンチテストのための2722でのテストパターン生成、並びにブロードアサイドテストのための2732でのテストパターン生成に含めることができる点に留意されたい。フロー2700は、該フローがクロックドメイン間論理の遅延テストパターンを生成する2740に進む。2750で、ATPGフローは、ラスト−シフト−ローンチを使用して遅延欠陥のテストパターンを生成し、この後に、ブロードサイドを使用した2750で検出されなかった欠陥に対して2760でのテストパターンの生成が続く。例えば、幾つかの場合でのラスト−シフト−ローンチを使用した遅延テストパターン生成の後に、ラスト−シフト−ローンチを使用したテストから漏れた欠陥を検出するためにブロードサイドテストプロトコルを使用する同じテストが続く。幾つかの実施形態では、クロックドメイン内論理をテストするための縮退パターンは、ラスト−シフト−ローンチテストのための2752でのテストパターン生成、並びにブロード−アサイドテストのための2762でのテストパターン生成に含めることができる。従って、フロー2700は、動的テストと並行して静的テストを行うための縮退テストパターンを生成することができる。2780で、ATPGフローは、2710と2740との間に生成されたテストパターン用の欠陥シミュレーションを実行し、縮退欠陥を検出することができる。この後に2780において、ステップ3で検出されなかった縮退欠陥のテストパターンを生成する。これは、2792でのクロックドメイン内論理及び2794でのクロックドメイン間論理用のテストパターンを生成する段階を含む。機能スピードで縮退テストパターンを実施することにより、縮退テストプロトコルを考える必要がないので、テストの品質を拡張すると同時にテストプロセスを単純化することができる。2796において、フロー2700は、2792で生成された縮退テストパターンを2720で生成された遅延テストパターンと統合する。2798で、フロー2700は、2794で生成された縮退テストパターンを2750で生成された遅延テストパターンと統合することによって続く。2799で、結果として得られたブロード−アサイドテストパターンは、ラスト−シフト−ローンチパターンに付加して最終テストパターンを形成することができる。
本発明の実施形態は、種々のコンピュータに実装されたオペレーションを行うためのコンピュータコードを有するコンピュータ可読媒体を備えたコンピュータ記憶製品に関する。本媒体及びコンピュータコードは、具体的に本発明の目的のために設計及び構成されたものとすることができ、或いはコンピュータソフトウェアの当業者には公知であり利用可能な種類のものとすることができる。コンピュータ可読媒体の実施例には、限定ではないが、ハードディスク、フロッピーディスク、及び磁気テープなどの磁気媒体;CD−ROM及びホログラフィックデバイスなどの光学媒体;フロプティカルディスクなどの磁気光学媒体;及び特定用途向け集積回路(「ASIC」)、プログラム可能論理デバイス(「PLD」)及びROM並びにRAMデバイスなどのプログラムコードを記憶及び実行するように具体的に構成されたハードウェアデバイスが含まれる。コンピュータコードの実施例は、コンパイラによって作成されるような機械コード、及びインタープリターを使用するコンピュータによって実行される高レベルのコードを包含するファイルを含む。例えば、本発明の実施形態は、Java、C++、又は他のオブジェクト指向プログラミング言語並びに開発ツールを使用して実施することができる。本発明の別の実施形態は、機械実行可能ソフトウェア命令の変わりに或いはこれと組み合わせたハードワイヤード回路で実施することができる。
上記の記載は、説明の目的として本発明の完全な理解をもたらすための特定の用語を使用した。しかしながら、本発明を実施するために特定の詳細が必要ではないことは当業者には明らかであるだろう。実際に、この説明は、本発明のいずれかの特徴又は態様をいずれかの実施形態に限定するように読まれるものではなく、逆に1つの実施形態の特徴及び態様は、他の実施形態と容易に置き換えることができる。例えば、ドメイン間及びドメイン内テストはクロックドメインの観点から一般的に説明してきたが、当業者であれば、これらのテストがパワードメインなどの他のあらゆるタイプのドメインにも適用することができる点を理解するはずである。
従って、本発明の特定の実施形態の上記の説明は、例証及び説明の目的で提示されている。これらは、網羅的なものではなく、或いは開示された正確な形式に限定されるものでもなく、明らかに多くの修正及び変形形態が上記の教示の点から実施可能である。本発明の原理及びその実際的な応用を良く説明するために実施形態が選択されて説明されており、これによって当業者は、本発明及び種々の実施形態を企図される特定の用途に好適な種々の修正形態と共に当業他者に良く利用させることが可能となる。特に、本明細書で説明されたあらゆる利益が本発明の各実施形態によって必ずしも実現される必要はなく、逆にいずれかの特定の実施形態が上述の利点の1つ又はそれ以上を提供することができる。添付の請求項及びこれらの均等物により本発明の範囲が定義されるものとする。
被試験回路に対して従来の遅延テストを実施するのに通常使用されるスキャンチェーンの一部を示す図である。 従来のスキャンチェーン構造でアット・スピード遅延テストを行うために単一のスキャンイネーブル(「SE」)信号を使用する場合のタイミング不確実性を示す図である。 アット・スピード遅延テストを実施するために従来のテストクロック制御技術を使用する一般的なスキャンチェーン構造を示す図である。 図3のスキャンチェーン構造を使用するドメイン間論理のテストを示す図である。 アット・スピードクロック信号をスキューするテスト機能クロック経路を有する従来の内部テストクロックコントローラを示すブロック図である。 ブロードサイドテストプロトコルの一般的な実施を示す図である。 ラスト−シフト−ローンチテストプロトコルの一般的な実施を示す図である。 本発明の少なくとも1つの特定の実施形態による回路をテストするためのテストクロック制御構造を示すブロック図である。 本発明の少なくとも1つの特定の実施形態によるプログラム可能テストクロックコントローラを示すブロック図である。 本発明の実施形態によるプログラム可能テストクロックコントローラの1つの機能の実施例を示す図である。 本発明の実施形態によるプログラム可能テストクロックコントローラの実施例を示す図である。 本発明の実施形態に従って複数のスキャンイネーブル制御信号に基づいたプログラム可能テストクロックコントローラのオペレーションの状態を示すテーブルである。 本発明の種々の実施形態によるスキャンクロックデコーダの特定の実施を示す図である。 本発明の種々の実施形態によるプログラム可能テストクロックコントローラの特定の実施を示す図である。 本発明の1つの実施形態による特定のクロックドメインをプログラムするための図12Bのプログラム可能テストクロックコントローラを実施するのに適したクロックパルスコントローラのための状態図である。 本発明の種々の実施形態による、起動及び取り込みオペレーションのためのテストクロックを構築するようにプログラム可能テストクロックコントローラを構成するための信号のタイミングを示す図である。 本発明の種々の実施形態による、起動及び取り込みオペレーションのためのテストクロックが対応するクロックドメインをディスエーブルにするようにプログラム可能テストクロックコントローラを構成するための信号のタイミングを示す図である。 本発明の1つの実施形態による単純化されたクロックパルスコントローラと単純化されたテストクロックジェネレータとを含むプログラム可能テストクロックコントローラを示す図である。 本発明の1つの実施形態による補助クロックコマンドソースを含むプログラム可能テストクロックコントローラを示す図である。 本発明の種々の実施形態による文字列ジェネレータとして実装される補助クロックコマンドソースを示す図である。 本発明の種々の実施形態による文字列ジェネレータとして実装される補助クロックコマンドソースに対応する状態図である。 本発明の実施形態による電子デバイス及びその回路をテストするためにプログラム可能テストクロックコントローラのどのような数も実施する概念的なテストクロック制御構造を示すブロック図である。 本発明の実施形態による種々のドメインで回路をテストするためにプログラム可能テストクロックコントローラを実施するテストクロック制御構造を示す図である。 本発明の実施形態によるテストアクセスポイントを低減するために一次入力及び一次出力を共用する制御チェーン及びスキャンチェーンを示す図である。 本発明の1つの実施形態によるドメイン間テストを行うように構成されたテストクロック制御構造を示す図である。 本発明の種々の実施形態によるドメイン間テストを実施するために1つ又はそれ以上のタイミング基準ポイントを使用して時間間隔を算出するための種々の技術を示す図である。 本発明の種々の実施形態によるドメイン間テストを実施するために1つ又はそれ以上のタイミング基準ポイントを使用して時間間隔を算出するための種々の技術を示す図である。 本発明の1つの実施形態によるドメイン内テストを行うように構成されたテストクロック制御構造を示す図である。 本発明の1つの実施形態による、単純化されたプログラム可能テストクロックコントローラを使用してドメイン内テストを行うように構成されたテストクロック制御構造を示す図である。 本発明の1つの実施形態によるプログラム可能テストクロックコントローラを使用してドメイン間テスト及びドメイン内テストを容易にするように構成されたテストクロック制御構造を示す図である。 本発明の1つの実施形態によるプログラム可能テストクロックコントローラを使用してドメイン間テスト及びドメイン内テストを容易にするように構成されたテストクロック制御構造を示す図である。 本発明の1つの実施形態によるプログラム可能テストクロックコントローラを使用してドメイン間テスト及びドメイン内テストを容易にするように構成されたテストクロック制御構造を示す図である。 本発明の1つの実施形態によるプログラム可能テストクロックコントローラを使用してドメイン間テスト及びドメイン内テストを容易にするように構成されたテストクロック制御構造を示す図である。 本発明の実施形態による回路をテストするためにプログラム可能テストクロックコントローラ(「PTCC」)を実施するテストクロックコントローラ構造を使用するためのマイクロレベルのフローの実施例を示す図である。 本発明の実施形態による回路をテストするためにテストクロックコントローラ構造及びプログラム可能テストクロックコントローラ(「PTCC」)を使用するためのマクロレベルのフローの実施例を示す図である。
符号の説明
700 プログラム可能テストクロックコントローラ
701 テストクロック制御構造
703 被試験回路
704 テストクロックジェネレータ
712 スキャンレイヤインタフェース
720 制御レイヤ
722 制御チェーン
730 スキャンレイヤ
734 スキャンチェーン

Claims (16)

  1. テストクロックを生成して電子回路のスキャンベースのテストを実施するためのテストクロック制御構造であって、前記テストクロック制御構造が、回路をテストするためのプログラム可能テストクロックコントローラを備え、前記プログラム可能テストクロックコントローラが、
    制御チェーンからクロックコマンド情報の一部を受信するクロックパルスコントローラと、
    スキャンチェーンのスキャンチェーン部分を駆動するテストクロックを、クロックコマンド情報の前記一部に基づいて発生するように構成されたテストクロックジェネレータと、
    スキャンチェーンの部分を前記テストクロックで駆動するように構成されたスキャンレイヤインタフェースと、
    前記制御チェーン内の前記クロックコマンド情報にアクセスするように構成された制御レイヤインタフェースと、
    を含み、
    前記クロックパルスコントローラが、スキャンイネーブルデータ(SeD)信号を受信して、前記クロックパルスコントローラへのクロックコマンド情報の一部のシフトを制御し、
    前記テストクロックジェネレータが、前記クロックパルスコントローラに、前記SeD信号及び前記スキャンチェーンに与えられるクロック信号を示すスキャンイネーブルクロック(SeC)信号に基づいて発生されたクロック速度制御信号を供給して、
    前記クロック速度制御信号に応答して、前記クロックパルスコンローラが、テストクロックイネーブル信号を発生するためのクロック速度を選択し、前記クロックパルスコントローラは、前記テストクロックイネーブル信号を前記テストクロックジェネレータに供給し、
    前記テストクロックジェネレータが、スキャンクロック用入力と機能クロック用入力とを、前記テストクロックイネーブル信号に基づいて、切り替えて発生することを特徴とするテストクロック制御構造。
  2. 前記プログラム可能テストクロックコントローラは、前記制御チェーンの一部をインタフェースする制御論理を備え、前記制御論理は、前記クロックコマンド情報に基づいて前記スキャンチェーン部分にスキャンデータを選択可能にロードするように構成されていることを特徴とする請求項1に記載のテストクロック制御構造。
  3. 前記制御論理は、前記スキャンクロック用入力と前記機能クロック用入力とを切り替えて、前記テストクロックを出力するように構成されていることを特徴とする請求項2に記
    載のテストクロック制御構造。
  4. 前記制御論理が、前記回路をテストするために2つ以上のスキャンテストプロトコルを実装するように構成されており、先行するプロトコルによって実行された前記スキャンチェーンの部分のみに、データをリロードすることを特徴とする請求項2に記載のテストクロック制御構造。
  5. 前記2つ以上のスキャンテストプロトコルが、ブロードサイドテスト及びラストシフトローンチテストを含むことを特徴とする請求項4に記載のテストクロック制御構造。
  6. 前記SeD及びSeC信号が組み合わさって、前記回路への全てのクロックがオフであるサイレント状態が提供され、前記サイレント状態がSeD機能テスト状態及びSeCスキャンクロック状態に対応することを特徴とする請求項5に記載のテストクロック制御構造。
  7. 前記SeD及びSeC信号が組み合わさって、前記クロックコマンド情報がアクセスされるクロックコントロールロード/アンロード状態が提供され、前記クロックコントロールロード/アンロード状態がSeDスキャンテスト状態及びSeC機能クロック状態に対応することを特徴とする請求項6に記載のテストクロック制御構造。
  8. スキャンチェーンのテストクロック波形を生成して複数の回路を含む電子デバイスのスキャンベースのテストを実施するための方法であって、前記方法は、
    プログラム可能テストクロックコントローラのクロックパルスコントローラにおいて、制御チェーンからクロックコマンド情報の一部を受信する段階であって、前記クロックコマンド情報の前記一部は、スキャンイネーブルデータ(SeD)信号に応答して、クロックパルスコントローラへシフトされる、前記受信する段階と、
    前記プログラム可能テストクロックコントローラのテストクロックジェネレータにおいて、前記SeD信号及び前記クロックパルスコントローラのクロック速度を示すスキャンイネーブルクロック(SeC)信号を受信する段階と、
    前記テストクロックジェネレータから前記クロックパルスコントローラに、前記SeD信号及び前記SeC信号に基づいて、クロック速度制御信号を送信する段階と、
    前記クロック速度制御信号に応答して、前記クロックパルスコントローラにおいて、テストクロックイネーブル信号を発生するためのクロック速度を選択して、前記テストクロックジェネレータに供給する段階と、
    前記クロックパルスコントローラから前記テストクロックジェネレータへ前記テストクロックイネーブル信号を送信する段階と、
    前記テストクロックジェネレータでテストクロックを発生して、スキャンチェーンのスキャンチェーン部分を駆動する段階であって、前記テストクロックイネーブル信号に基づいて、スキャンクロック用入力と機能クロック用入力とを切り替えることを含む、前記駆動する段階と、
    を含む方法。
  9. 前記プログラム可能テストクロックコントローラを、前記クロックコマンド情報に従って、テスト実行モードで作動する段階を更に含むことを特徴とする請求項8に記載の方法。
  10. 前記プログラム可能テストクロックコントローラを、前記テスト実行モードで作動して、前記テストクロックを停止して、静的テストを実施する段階を更に含む請求項9に記載の方法。
  11. アット・スピードクロック速度で前記テストクロックの速度を設定して動的テストを実行するように前記テスト実行モードにおいて前記プログラム可能テストクロックコントローラを動作させる段階を更に含む請求項9に記載の方法。
  12. キャンデータのスキャンデータビットのNビットを含む第1部分と、前記スキャンデータビットのN−1ビットを含む第2部分とをほぼ同時に前記スキャンチェーン部分にロードする段階と、
    前記NビットにおけるNスキャンクロックエッジ後にブロードサイドテストを実行するように前記プログラム可能テストクロックコントローラを構成する段階であって、前記クロックコマンド情報は、前記Nビット後にアット・スピードクロック速度で起動クロックエッジと取り込みクロックエッジとを提供する段階と、
    前記N−1ビットにおけるN−1スキャンクロックエッジ後にラストシフト起動テストを実行するように前記プログラム可能テストクロックコントローラを構成する段階であって、前記クロックコマンド情報は、N番目のクロックエッジとして前記起動クロックエッジを提供し、(N+1)番目のクロック取り込みクロックエッジとして前記取り込みクロックエッジを提供する段階と、
    を更に含む請求項8に記載の方法。
  13. テストクロックを生成してスキャンベースのテストを実施するためのテストクロック制御構造を含む電子デバイスであって、前記電子デバイスが、
    前記電子デバイスの機能モードで動作可能な幾つかのドメインを含み、前記幾つかのドメインの少なくとも1つのドメインがテストモードで各々独立してテストするためのサブドメインに分割される複数の回路と、
    複数のプログラム可能テストクロックコントローラであって、該複数のプログラム可能テストクロックコントローラの内の第1のものが、制御チェーンからクロックコマンド情報を受信して、前記幾つかのドメインに対するテストクロック信号を発生するように、前記複数のプログラ可能テストクロックコントローラの第2のものの制御スキャン出力と接続されている制御スキャン入力を有し、前記複数のプログラム可能テストクロックコントローラの内の前記第1のものが、
    前記クロックコマンド情報の一部を受信するように構成されているクロックパルスコントローラと、
    前記クロックコマンド情報の一部に基づいて、スキャンチェーンのスキャンチェーン部分を駆動するテストクロックを発生するように構成されているテストクロックジェネレータとを含む、前記複数のプログラム可能テストクロックコントローラと、を備え、
    前記クロックパルスコントローラが、スキャンイネーブルデータ(SeD)信号を受信して、前記クロックパルスコントローラへのクロックコマンド情報の前記一部のシフトを制御し、
    前記テストクロックジェネレータが、前記クロックパルスコントローラに、前記SeD信号及び前記スキャンチェーンに与えられるクロック信号を示すスキャンイネーブルクロック(SeC)信号に基づいて発生されたクロック速度制御信号を供給し、
    前記クロック速度制御信号に応答して、前記クロックパルスコンローラが、テストクロックイネーブル信号を発生するためのクロック速度を選択し、前記クロックパルスコントローラは、前記テストクロックイネーブル信号を前記テストクロックジェネレータに供給し、
    前記テストクロックジェネレータが、スキャンクロック用入力と機能クロック用入力とを、前記テストクロックイネーブル信号に基づいて、切り替えて発生し、
    前記複数のプログラム可能テストクロックコントローラのサブセットが、前記テストモード中に、前記サブドメインの一つ以上を並行してテストするように構成されていることを特徴とする電子デバイス。
  14. データを前記選択されたサブドメインと交換するために前記ドメイン及び前記サブドメインに結合された1つ又はそれ以上のスキャンチェーンと、
    他のサブドメインから独立して各サブドメインにおいて、前記データの交換を制御するために前記クロックコマンド情報に従って前記テストクロック信号を生成するように構成されたテストクロックジェネレータと、
    を更に備えることを特徴とする請求項13に記載の電子デバイス。
  15. 前記1つのドメインを前記サブドメインに分割することにより、前記テストクロック信号の制御下にある前記1つ又はそれ以上のスキャンチェーンのサブセットに関する刺激又は結果データとして前記データを選択的にロード又はアンロードすることでテストパターンボリュームの低減が促進されることを特徴とする請求項14に記載の電子デバイス。
  16. 記サブドメインの1つ又はそれ以上のオペレーションを停止するようにパワーダウン(PD)信号を配信するためのパワーダウン信号ジェネレータを更に備え、前記パワーダウン信号ジェネレータは、前記サブドメインに対するテスト中に停止すべきエラーを検出することに応答して、前記サブドメインに前記PWD信号を提供することを特徴とする請求項13に記載の電子デバイス。
JP2007181485A 2006-06-27 2007-06-13 プログラム可能テストクロックコントローラを使用した電子回路のスキャンベーステスト用に構成可能なテストクロックを生成するためのテストクロック制御構造 Expired - Fee Related JP5588590B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/477,049 2006-06-27
US11/477,049 US7793179B2 (en) 2006-06-27 2006-06-27 Test clock control structures to generate configurable test clocks for scan-based testing of electronic circuits using programmable test clock controllers

Publications (2)

Publication Number Publication Date
JP2008051804A JP2008051804A (ja) 2008-03-06
JP5588590B2 true JP5588590B2 (ja) 2014-09-10

Family

ID=38543794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007181485A Expired - Fee Related JP5588590B2 (ja) 2006-06-27 2007-06-13 プログラム可能テストクロックコントローラを使用した電子回路のスキャンベーステスト用に構成可能なテストクロックを生成するためのテストクロック制御構造

Country Status (7)

Country Link
US (1) US7793179B2 (ja)
EP (1) EP1873540B1 (ja)
JP (1) JP5588590B2 (ja)
KR (1) KR101402865B1 (ja)
CN (1) CN101127518B (ja)
DE (1) DE602007003052D1 (ja)
TW (1) TWI341393B (ja)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4845543B2 (ja) * 2006-03-15 2011-12-28 富士通セミコンダクター株式会社 遅延故障試験回路
JP5058503B2 (ja) * 2006-03-17 2012-10-24 日本電気株式会社 スキャンテスト用回路を備える電子回路、集積回路及び該集積回路に用いられる消費電力低減方法
US7900108B2 (en) * 2006-08-31 2011-03-01 Nxp B.V. Multi-clock system-on-chip with universal clock control modules for transition fault test at speed multi-core
JP4854456B2 (ja) * 2006-10-04 2012-01-18 富士通セミコンダクター株式会社 半導体集積回路及び試験方法
JP4815326B2 (ja) * 2006-10-31 2011-11-16 富士通株式会社 集積回路のタイミング不良改善装置、並びに、集積回路のタイミング不良診断装置および方法、並びに、集積回路
US20080108528A1 (en) * 2006-11-03 2008-05-08 M-I Llc Methods to enhance the pneumatic handling characteristics of weighting agents
KR101047533B1 (ko) * 2007-02-23 2011-07-08 삼성전자주식회사 멀티 페이즈 스캔체인을 구동하는 시스템온칩과 그 방법
JP5181499B2 (ja) * 2007-03-07 2013-04-10 株式会社リコー Scanテスト回路及び半導体集積回路
WO2009105787A2 (en) * 2008-02-21 2009-08-27 Mentor Graphics Corporation Detection and diagnosis of scan cell internal defect
JP2009222644A (ja) * 2008-03-18 2009-10-01 Toshiba Corp 半導体集積回路、及び設計自動化システム
US8584073B2 (en) * 2008-07-21 2013-11-12 Synopsys, Inc. Test design optimizer for configurable scan architectures
JP5134089B2 (ja) * 2008-09-17 2013-01-30 株式会社アドバンテスト 試験装置およびドメイン間同期方法
JP2010091482A (ja) * 2008-10-09 2010-04-22 Toshiba Corp 半導体集積回路装置及びその遅延故障テスト方法
US7949916B1 (en) 2009-01-20 2011-05-24 Altera Corporation Scan chain circuitry for delay fault testing of logic circuits
US8775880B2 (en) * 2009-06-11 2014-07-08 STMicroelectronics Intenational N.V. Shared fuse wrapper architecture for memory repair
US8028209B2 (en) * 2009-06-26 2011-09-27 Intel Corporation Scalable scan system for system-on-chip design
US8386867B2 (en) 2009-07-02 2013-02-26 Silicon Image, Inc. Computer memory test structure
CN101714114B (zh) * 2009-12-21 2012-05-23 龙芯中科技术有限公司 一种支持处理器硅后调试的装置和方法
US8543873B2 (en) * 2010-01-06 2013-09-24 Silicon Image, Inc. Multi-site testing of computer memory devices and serial IO ports
US8862954B1 (en) * 2010-03-09 2014-10-14 Marvell International Ltd. Integrated circuit scan testing with stop-clock and auto-step features
US8918689B2 (en) 2010-07-19 2014-12-23 Stmicroelectronics International N.V. Circuit for testing integrated circuits
US8356221B2 (en) * 2010-08-24 2013-01-15 Apple Inc. Transition delay test function logic
US8707117B2 (en) * 2010-10-20 2014-04-22 Advanced Micro Devices, Inc. Methods and apparatus to test multi clock domain data paths with a shared capture clock signal
JP5621566B2 (ja) * 2010-12-10 2014-11-12 日本電気株式会社 遅延時間測定装置および遅延時間測定方法
TWI416147B (zh) * 2011-03-09 2013-11-21 Global Unichip Corp 於積體電路設計中進行測試時脈域設計的方法及相關的電腦可讀媒體
CN102156259B (zh) * 2011-04-02 2013-07-03 北京大学深圳研究生院 一种集成电路的测试方法及一种集成电路
US8694843B2 (en) * 2011-08-04 2014-04-08 Texas Instruments Incorporated Clock control of pipelined memory for improved delay fault testing
US8375265B1 (en) * 2011-09-13 2013-02-12 Texas Instruments Incorporated Delay fault testing using distributed clock dividers
US8850280B2 (en) * 2011-10-28 2014-09-30 Lsi Corporation Scan enable timing control for testing of scan cells
US8966419B2 (en) * 2012-07-11 2015-02-24 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for testing stacked dies
US8561001B1 (en) * 2012-07-11 2013-10-15 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for testing stacked dies
US8700962B2 (en) * 2012-07-27 2014-04-15 Lsi Corporation Scan test circuitry configured to prevent capture of potentially non-deterministic values
EP2722680B1 (en) * 2012-10-19 2018-10-10 IMEC vzw Transition delay detector for interconnect test
US8904256B1 (en) * 2012-11-09 2014-12-02 Cadence Design Systems, Inc. Method and apparatus for low-pin count testing of integrated circuits
KR101992205B1 (ko) 2012-12-12 2019-06-24 삼성전자주식회사 온칩 클록 제어회로 및 시스템 온 칩
CN104346366B (zh) * 2013-07-30 2017-11-24 国际商业机器公司 扩展测试数据的方法及设备
US9188642B2 (en) * 2013-08-23 2015-11-17 Qualcomm Incorporated Reconfigurable memory interface circuit to support a built-in memory scan chain
US9264049B2 (en) * 2013-11-21 2016-02-16 Stmicroelectronics International N.V. Synchronous on-chip clock controllers
US9261560B2 (en) * 2013-12-31 2016-02-16 Texas Instruments Incorporated Handling slower scan outputs at optimal frequency
US9482719B2 (en) * 2014-01-10 2016-11-01 Stmicroelectronics International N.V. On-the-fly test and debug logic for ATPG failures of designs using on-chip clocking
CN105096790B (zh) 2014-04-24 2018-10-09 敦泰电子有限公司 驱动电路、驱动方法、显示装置和电子设备
CN104660240B (zh) * 2015-01-04 2017-09-15 北京化工大学 超速时延测试时钟生成器
TWI603104B (zh) * 2015-09-14 2017-10-21 Integrated circuit with scan test and test method
US10248520B2 (en) 2015-09-25 2019-04-02 Oracle International Corporation High speed functional test vectors in low power test conditions of a digital integrated circuit
TWI625534B (zh) * 2015-12-21 2018-06-01 瑞昱半導體股份有限公司 透過掃描測試的掃描鏈所執行的除錯方法及相關電路系統
CN108153964B (zh) * 2017-12-21 2021-11-09 北京兆芯电子科技有限公司 片上时钟电路
CN110514981B (zh) * 2018-05-22 2022-04-12 龙芯中科技术股份有限公司 集成电路的时钟控制方法、装置及集成电路
US10983159B2 (en) * 2018-12-20 2021-04-20 International Business Machines Corporation Method and apparatus for wiring multiple technology evaluation circuits
KR102681969B1 (ko) 2019-01-10 2024-07-08 삼성전자주식회사 논리 회로의 at-speed 테스트를 위한 시스템-온-칩 및 그것의 동작 방법
CN111443275B (zh) * 2019-01-17 2022-06-17 瑞昱半导体股份有限公司 电路测试系统及电路测试方法
US11073557B2 (en) * 2019-05-08 2021-07-27 Texas Instruments Incorporated Phase controlled codec block scan of a partitioned circuit device
CN113495206A (zh) * 2020-04-03 2021-10-12 龙芯中科技术股份有限公司 时序电路和时序电路控制方法
US11360143B2 (en) * 2020-10-29 2022-06-14 Stmicroelectronics International N.V. High speed debug-delay compensation in external tool
US11899066B2 (en) * 2022-07-15 2024-02-13 Hewlett Packard Enterprise Development Lp Configuration of configurable test logic
CN117890753A (zh) * 2022-10-08 2024-04-16 深圳市中兴微电子技术有限公司 芯片测试方法、寄存器、电子设备和存储介质
US20240192271A1 (en) * 2022-12-13 2024-06-13 Nxp B.V. Design For Test For Source Synchronous Interfaces
US20240295602A1 (en) * 2023-03-01 2024-09-05 Nxp B.V. System and method for controlling at-speed testing of integrated circuits

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860290A (en) * 1987-06-02 1989-08-22 Texas Instruments Incorporated Logic circuit having individually testable logic modules
US4965524A (en) * 1988-06-09 1990-10-23 National Semiconductor Corp. Glitch free clock select
EP0419734B1 (en) * 1989-08-25 1995-06-14 Koninklijke Philips Electronics N.V. Method for testing a hierarchically organised integrated circuit device, and integrated circuit device suitable for being so tested
GR920100088A (el) 1992-03-05 1993-11-30 Consulting R & D Corp Koloni S Διαφανής έλεγχος ολοκληρωμένων κυκλωμάτων.
US5546408A (en) * 1994-06-09 1996-08-13 International Business Machines Corporation Hierarchical pattern faults for describing logic circuit failure mechanisms
US6966021B2 (en) * 1998-06-16 2005-11-15 Janusz Rajski Method and apparatus for at-speed testing of digital circuits
US6442722B1 (en) * 1999-10-29 2002-08-27 Logicvision, Inc. Method and apparatus for testing circuits with multiple clocks
US6539491B1 (en) * 1999-11-08 2003-03-25 International Business Machines Corporation Method and apparatus for implementing IEEE 1149.1 compliant boundary scan
US6763489B2 (en) * 2001-02-02 2004-07-13 Logicvision, Inc. Method for scan testing of digital circuit, digital circuit for use therewith and program product for incorporating test methodology into circuit description
US7007213B2 (en) * 2001-02-15 2006-02-28 Syntest Technologies, Inc. Multiple-capture DFT system for detecting or locating crossing clock-domain faults during self-test or scan-test
US6836856B2 (en) 2001-05-25 2004-12-28 Carnegie Mellon University Methods for characterizing, generating test sequences for, and/or simulating integrated circuit faults using fault tuples and related systems and computer program products
US7444567B2 (en) * 2002-04-09 2008-10-28 Syntest Technologies, Inc. Method and apparatus for unifying self-test with scan-test during prototype debug and production test
US6779163B2 (en) * 2002-09-25 2004-08-17 International Business Machines Corporation Voltage island design planning
US7194669B2 (en) * 2003-02-14 2007-03-20 Logicvision, Inc. Method and circuit for at-speed testing of scan circuits
US7038505B2 (en) * 2003-12-31 2006-05-02 Intel Corporation Configurable enabling pulse clock generation for multiple signaling modes
US7266742B1 (en) * 2004-04-06 2007-09-04 Cisco Technology, Inc. Method and apparatus for generating a local scan enable signal to test circuitry in a die
US7155651B2 (en) * 2004-04-22 2006-12-26 Logicvision, Inc. Clock controller for at-speed testing of scan circuits
US7293210B2 (en) * 2005-05-06 2007-11-06 Lsi Corporation System and method for improving transition delay fault coverage in delay fault tests through use of transition launch flip-flop

Also Published As

Publication number Publication date
TWI341393B (en) 2011-05-01
TW200807003A (en) 2008-02-01
EP1873540B1 (en) 2009-11-04
CN101127518A (zh) 2008-02-20
CN101127518B (zh) 2012-08-22
DE602007003052D1 (de) 2009-12-17
EP1873540A1 (en) 2008-01-02
US20080010573A1 (en) 2008-01-10
JP2008051804A (ja) 2008-03-06
KR101402865B1 (ko) 2014-06-03
US7793179B2 (en) 2010-09-07
KR20080000536A (ko) 2008-01-02

Similar Documents

Publication Publication Date Title
JP5588590B2 (ja) プログラム可能テストクロックコントローラを使用した電子回路のスキャンベーステスト用に構成可能なテストクロックを生成するためのテストクロック制御構造
JP5253768B2 (ja) テストクロック制御構造を実装するデバイスのスキャンベーステスト
US6763489B2 (en) Method for scan testing of digital circuit, digital circuit for use therewith and program product for incorporating test methodology into circuit description
JP4091957B2 (ja) 複数のクロック発生回路を含むテスト可能な集積回路
US8516317B2 (en) Methods for at-speed testing of memory interface
JP4701244B2 (ja) マイクロコンピュータ及びそのテスト方法
US20160169966A1 (en) Integrated circuit with scan chain having dual-edge triggered scannable flip flops and method of operating thereof
JP4366353B2 (ja) 半導体集積回路及びその設計方法
US7689885B2 (en) Integrated circuit and method for identifying propagation time errors in integrated circuits
JP2004502147A (ja) 高性能回路をテストする方法及び装置
JP2007240414A (ja) 半導体集積回路及びその設計装置
US20160349318A1 (en) Dynamic Clock Chain Bypass
JP4355345B2 (ja) 集積回路における電圧変動を抑制する回路
US20170176535A1 (en) Clock gating for x-bounding timing exceptions in ic testing
US7454675B1 (en) Testing of a programmable device
Baláž et al. Delay faults testing
JP3469294B2 (ja) 線型帰還シフトレジスタおよび半導体集積回路装置
JP2011158440A (ja) クロック生成回路、半導体集積回路およびその試験システム
KR20090047027A (ko) 반도체 회로 테스트를 위한 클럭 제어 회로, 반도체 회로테스트를 위한 클럭 제어 방법 및 클럭 제어 회로를 구비한반도체 장치
Lin et al. A new circuit for at-speed scan SoC testing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100602

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140219

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140224

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140305

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140305

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140530

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: 20140701

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140728

R150 Certificate of patent or registration of utility model

Ref document number: 5588590

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees