特許第6544772号(P6544772)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ 日本テキサス・インスツルメンツ合同会社の特許一覧
特許6544772スキャンテスト用のテストモード制御信号を生成可能な集積回路
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6544772
(24)【登録日】2019年6月28日
(45)【発行日】2019年7月17日
(54)【発明の名称】スキャンテスト用のテストモード制御信号を生成可能な集積回路
(51)【国際特許分類】
   G01R 31/3185 20060101AFI20190705BHJP
   G01R 31/28 20060101ALI20190705BHJP
【FI】
   G01R31/28 W
   G01R31/28 G
【請求項の数】17
【全頁数】34
(21)【出願番号】特願2015-512710(P2015-512710)
(86)(22)【出願日】2013年5月10日
(65)【公表番号】特表2015-522800(P2015-522800A)
(43)【公表日】2015年8月6日
(86)【国際出願番号】US2013040609
(87)【国際公開番号】WO2013173192
(87)【国際公開日】20131121
【審査請求日】2016年4月19日
(31)【優先権主張番号】13/470,863
(32)【優先日】2012年5月14日
(33)【優先権主張国】US
【前置審査】
(73)【特許権者】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ合同会社
(73)【特許権者】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【上記1名の代理人】
【識別番号】100098497
【弁理士】
【氏名又は名称】片寄 恭三
(72)【発明者】
【氏名】ラジェシュ ミッタル
(72)【発明者】
【氏名】プニート サブバルワル
(72)【発明者】
【氏名】プラカシュ ナラヤナン
(72)【発明者】
【氏名】ルビン アジット パレクジ
【審査官】 小川 浩史
(56)【参考文献】
【文献】 米国特許出願公開第2011/0099442(US,A1)
【文献】 特開2004−325124(JP,A)
【文献】 米国特許出願公開第2012/0226942(US,A1)
【文献】 MITTAL, Rajesh et al.,“DFT for Extremely Low Cost Test of Mixed Signal SOCs with Integrated RF and Power Management”,INTERNATIONAL TEST CONFERENCE 2011 PROCEEDINGS,2012年 1月26日,paper 1.2,pp.1-8,DOI: 10.1109/TEST.2011.6139128
(58)【調査した分野】(Int.Cl.,DB名)
G01R 31/28−31/3193
(57)【特許請求の範囲】
【請求項1】
集積回路におけるスキャンチェーンを介するスキャンテストのためのテストモード制御信号を生成するように構成される集積回路であって、
テストパターン検出ブロックであって、
検出パターンを受け取り、
前記検出パターンに基づいて、テストパターンのシフトフェーズに対応する第1のパターンと前記テストパターンのキャプチャフェーズに対応する第2のパターンとの検出を実行し、
前記第1及び第2のパターンのうちの少なくとも1つの前記検出に基づいてトリガ信号を生成する、
ように構成される、前記テストパターン検出ブロックと、
前記テストパターン検出ブロックに結合される制御回路であって、当該制御回路が、前記トリガ信号を受け取り、前記シフトフェーズに対応する1つまたは複数のカウント状態と前記キャプチャフェーズに対応する1つまたは複数のカウント状態とに基づいて、前記テストモード制御信号を生成して制御するように構成される、前記制御回路と、
前記制御回路に結合されるカウンタ回路であって、当該カウンタ回路が、前記第1のパターンと前記第2のパターンとの少なくとも1つに基づいて、前記シフトフェーズとクロック信号とに対応する1つまたは複数のカウント状態と、前記キャプチャフェーズと前記クロック信号とに対応する1つまたは複数のカウント状態とを生成するように構成される、前記カウンタ回路と、
を含み、
前記制御回路が、前記カウンタ回路のカウント状態がシフト開始カウント状態とキャプチャ終了カウント状態のうちの1つである際に、前記テストモード制御信号をアサートすることと、前記カウント状態がキャプチャ開始カウント状態とシフト終了カウント状態のうちの1つである際に、前記テストモード制御信号をデアサートすることとのうちの少なくとも1つを実行するように更に構成され、
前記カウンタ回路が、前記制御回路に結合されるレジスタブロックを含み、前記レジスタブロックが、前記シフト開始カウント状態と前記シフト終了カウント状態と前記キャプチャ開始カウント状態と前記キャプチャ終了カウント状態とのうちの少なくとも1つを記憶するように構成される、集積回路。
【請求項2】
請求項1に記載の集積回路であって、
前記カウンタ回路が、前記レジスタブロックと結合される1つまたは複数のカウンタを更に含み、
前記1つまたは複数のカウンタが、
前記シフト開始カウント状態から前記シフト終了カウント状態までの前記シフトフェーズに対応する1つまたは複数のカウント状態を生成し、
前記キャプチャ開始カウント状態から前記キャプチャ終了カウント状態までの前記キャプチャフェーズに対応する1つまたは複数のカウント状態を生成する、
ように構成される、集積回路。
【請求項3】
請求項1に記載の集積回路であって、
前記カウンタ回路が、
前記シフト開始カウント状態から前記シフト終了カウント状態までの1つまたは複数のカウント状態を生成するように構成される第1のカウンタと、
前記キャプチャ開始カウント状態から前記キャプチャ終了カウント状態までの1つまたは複数のカウント状態を生成するように構成される第2のカウンタと、
前記シフトフェーズの開始前に1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態と、前記キャプチャフェーズの開始前に1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態とを生成するよう構成される1つまたは複数のカウンタと、
を更に含む、集積回路。
【請求項4】
請求項3に記載の集積回路であって、
前記カウンタ回路が、前記テストパターンの前記シフトフェーズに対応する前記シフト開始カウント状態から前記テストパターンの前記キャプチャフェーズに対応するキャプチャ終了カウント状態までの予め決められた数の遷移に対応する1つまたは複数のカウント状態を生成するように構成されるパターンカウンタを更に含む、集積回路。
【請求項5】
請求項1に記載の集積回路であって、
前記テストパターン検出ブロックと結合され、前記シフトフェーズに対応する前記第1のパターンを検出する際に、第1の予め決められた遅延を生成するよう構成される、フリップフロップの第1のセットと、
スキャンチェーンと結合され、第2の予め決められた遅延のために先行するシフトフェーズに対応するテストパターンを記憶し、前記第2の予め決められた遅延が完了する際に前記シフトフェーズを初期化する、フリップフロップの第2のセットと、
を更に含む、集積回路。
【請求項6】
請求項1に記載の集積回路であって、
前記レジスタブロックと通信可能に関連付けられまたは結合され、前記テストパターンに基づいて、前記レジスタブロックを制御し、前記シフト開始カウント状態と前記キャプチャ開始カウント状態と前記シフト終了カウント状態と前記キャプチャ終了カウント状態とのうちの少なくとも1つを変化させる、テストインタフェースを更に含む、集積回路。
【請求項7】
請求項1に記載の集積回路であって、
前記テストモード制御信号が、前記テストパターンの前記シフトフェーズと前記キャプチャフェーズとを制御するためのスキャンイネーブル信号と、前記スキャンチェーンの動作を制御するためのロードイネーブル信号とのうちの1つを含む、集積回路。
【請求項8】
集積回路におけるスキャンチェーンを介するスキャンテストのためのテストモード制御信号を生成するように構成される集積回路であって、
テストパターン検出ブロックであって、
検出パターンを受け取り、
前記検出パターンに基づいて、テストパターンの第1のシフトフェーズに対応するパターンの検出を実行し、
前記パターンの前記検出に基づきトリガ信号を生成する、
ように構成される、前記テストパターン検出ブロックと、
前記テストパターン検出ブロックに結合される制御回路であって、前記トリガ信号を受け取り、前記第1のシフトフェーズに対応する1つまたは複数のカウント状態と、後続のシフトフェーズとキャプチャフェーズとに対応する1つまたは複数のカウント状態とに基づいて、前記テストモード制御信号を生成するように構成される制御回路と、
前記制御回路に結合されたカウンタ回路であって、
前記第1のシフトフェーズの検出の際にトリガされるように構成され、前記テストパターンの前記第1のシフトフェーズと後続のシフトフェーズとのうちの1つに対応するシフト開始カウント状態から、前記テストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの、予め決められた数の遷移に対応する1つまたは複数のカウント状態を生成するように構成される、パターンカウンタと、
前記パターンカウンタに結合され、前記第1のシフトフェーズと前記後続のシフトフェーズと前記キャプチャフェーズとに対応する1つまたは複数のカウント状態を生成するように構成される、1つまたは複数のカウンタと、
を含む、前記カウンタ回路と、
を含む、集積回路。
【請求項9】
請求項に記載の集積回路であって、
前記制御回路が、
前記カウンタ回路のカウント状態が、前記シフト開始カウント状態と前記キャプチャ終了カウント状態とのうちの1つである際に、前記テストモード制御信号をアサートすることと、
前記カウント状態が、キャプチャ開始カウント状態とシフト終了カウント状態とのうちの1つである際に、前記テストモード制御信号をデアサートすること、
のうちの少なくとも1つを実行するように更に構成される、集積回路。
【請求項10】
請求項に記載の集積回路であって、
前記カウンタ回路が、前記シフト開始カウント状態と前記キャプチャ開始カウント状態と前記シフト終了カウント状態と前記キャプチャ終了カウント状態とのうちの少なくとも1つを記憶するように構成されるレジスタブロックを更に含む、集積回路。
【請求項11】
請求項10に記載の集積回路であって、
前記カウンタ回路が、前記第1のシフトフェーズと前記後続のシフトフェーズとのうちの1つを開始する前の1つまたは複数のウェイトサイクルと、前記キャプチャフェーズを開始する前の1つまたは複数のウェイトサイクルとに対応する1つまたは複数のカウント状態を生成するように構成される1つまたは複数のカウンタを更に含み、
前記テストモード制御信号の生成が、前記1つまたは複数のカウンタの1つまたは複数のカウント状態に更に基づく、集積回路。
【請求項12】
請求項に記載の集積回路であって、
前記テストパターン検出ブロックに結合され、前記第1のシフトフェーズに対応する前記パターンを検出する際に、第1の予め決められた遅延を生成するように構成される、フリップフロップの第1のセットと、
前記スキャンチェーンと結合され、第2の予め決められた遅延のために先行するシフトフェーズに対応するテストパターンを記憶し、前記第2の予め決められた遅延が完了する際に前記シフトフェーズを初期化する、フリップフロップの第2のセットと、
を更に含む、集積回路。
【請求項13】
請求項10に記載の集積回路であって、
前記レジスタブロックと通信可能に関連付けられまたは結合され、前記テストパターンに基づいて、前記レジスタブロックを制御し、前記シフト開始カウント状態と前記キャプチャ開始カウント状態と前記シフト終了カウント状態と前記キャプチャ終了カウント状態とのうちの少なくとも1つを変化させる、テストインタフェースを更に含む、集積回路。
【請求項14】
請求項に記載の集積回路であって、
前記テストモード制御信号が、前記テストパターンの前記シフトフェーズと前記キャプチャフェーズとを制御するためのスキャンイネーブル信号と、前記スキャンチェーンの動作を制御するためのロードイネーブル信号とのうちの1つを含む、集積回路。
【請求項15】
集積回路におけるスキャンチェーンを介するスキャンテストのためのテストモード制御信号を生成する方法であって、
テストパターンのシフトフェーズに対応する第1のパターンと、前記テストパターンのキャプチャフェーズに対応する第2のパターンとを検出することと、
前記第1のパターンと前記第2のパターンとを検出する際に、前記シフトフェーズに対応する1つまたは複数のカウント状態と、前記キャプチャフェーズに対応する1つまたは複数のカウント状態とを生成することであって、前記シフトフェーズに対応する前記1つまたは複数のカウント状態が、シフト開始カウント状態とシフト終了カウント状態との間のカウント状態を含み、前記シフト開始カウント状態が、前記シフトフェーズに対応するクロック信号のサイクル数に関連付けられ、前記キャプチャフェーズに対応する前記1つまたは複数のカウント状態が、キャプチャ開始カウント状態とキャプチャ終了カウント状態との間のカウント状態を含み、前記キャプチャ開始カウント状態が、前記キャプチャフェーズに対応する前記クロック信号のサイクル数に関連付けられる、前記生成することと、
前記シフトフェーズに対応する前記1つまたは複数のカウント状態と前記キャプチャフェーズに対応する前記1つまたは複数のカウント状態とに基づいて、前記テストモード制御信号を生成することと、
前記シフトフェーズに対応する前記第1のパターンを検出する際に、前記シフト開始カウント状態として、カウンタ回路の第1のカウンタのカウント状態を生成することと、
を含み、更に、
前記第1のカウンタの前記カウント状態が前記シフト開始カウント状態である場合に、前記テストモード制御信号をアサートすることと、
前記スキャンテストの前記シフトフェーズ中に、前記シフト開始カウント状態から前記シフト終了カウント状態へ、第1のカウンタの1つまたは複数のカウント状態を変化させることと、
前記第1のカウンタの前記カウント状態が前記シフト終了カウント状態に変化された場合に、前記テストモード制御信号をデアサートすることと、
前記第1のカウンタの前記カウント状態が前記シフト終了カウント状態である際に、1つまたは複数のウェイトサイクルに対応する前記カウンタ回路のウェイトカウンタの1つまたは複数のカウント状態を生成することと、
前記1つまたは複数のウェイトサイクルが終了した後に、前記キャプチャ終了カウント状態として、前記カウンタ回路の第2カウンタのカウント状態を生成することと、
前記キャプチャフェーズ中に、前記キャプチャ開始カウント状態から前記キャプチャ終了カウント状態へ、前記第2のカウンタの前記カウント状態を変化させることと、
を反復的に実行することを含む、方法。
【請求項16】
集積回路におけるスキャンチェーンを介するスキャンテストのためのテストモード制御信号を生成する方法であって、
テストパターンのシフトフェーズに対応する第1のパターンと、前記テストパターンのキャプチャフェーズに対応する第2のパターンとを検出することと、
前記第1のパターンと前記第2のパターンとを検出する際に、前記シフトフェーズに対応する1つまたは複数のカウント状態と、前記キャプチャフェーズに対応する1つまたは複数のカウント状態とを生成することであって、前記シフトフェーズに対応する前記1つまたは複数のカウント状態が、シフト開始カウント状態とシフト終了カウント状態との間のカウント状態を含み、前記シフト開始カウント状態が、前記シフトフェーズに対応するクロック信号のサイクル数に関連付けられ、前記キャプチャフェーズに対応する前記1つまたは複数のカウント状態が、キャプチャ開始カウント状態とキャプチャ終了カウント状態との間のカウント状態を含み、前記キャプチャ開始カウント状態が、前記キャプチャフェーズに対応する前記クロック信号のサイクル数に関連付けられる、前記生成することと、
前記シフトフェーズに対応する前記1つまたは複数のカウント状態と前記キャプチャフェーズに対応する前記1つまたは複数のカウント状態とに基づいて、前記テストモード制御信号を生成することと、
前記シフトフェーズに対応する前記第1のパターンを検出する際に、前記シフト開始カウント状態として、カウンタ回路の第1のカウンタのカウント状態を生成することと、
を含み、更に、
前記テストパターンの前記シフトフェーズに対応する前記シフト開始カウント状態から前記テストパターンの前記キャプチャフェーズに対応する前記キャプチャ終了カウント状態までの間の、予め決められた数の遷移に対応する1つまたは複数のカウント状態のために、
第1のシフトフェーズに対応する前記パターンの検出と、パターンカウンタのカウント状態の1つのカウント状態だけの変化とのうちの1つの際に、第1のウェイトサイクルに対応する第1のウェイトカウンタの1つまたは複数の状態を生成することと、
前記第1のウェイトサイクルが終了した後に、前記シフト開始カウント状態として、前記カウンタ回路の前記第1のカウンタのカウント状態を生成することと、
前記第1のカウンタの前記カウント状態が前記シフト開始カウント状態である場合に、前記テストモード制御信号をアサートすることと、
前記シフト開始カウント状態から前記シフト終了カウント状態へ、前記第1のカウンタの前記カウント状態を変化させることと、
前記第1のカウンタの前記カウント状態が前記シフト終了カウント状態に変化された場合に、前記テストモード制御信号をデアサートすることと、
前記カウント状態が前記シフト終了カウント状態である際に、第2のウェイトサイクルに対応する第2のウェイトカウンタの1つまたは複数のカウント状態を生成することと、
前記第2のウェイトサイクルが終了した後に、前記キャプチャ開始カウント状態として、前記カウンタ回路の第2のカウンタのカウント状態を生成することと、
前記スキャンテストの前記キャプチャフェーズ中に、前記キャプチャ開始カウント状態から前記キャプチャ終了カウント状態へ、前記第2のカウンタの前記カウント状態を変化させることと、
前記テストパターンの前記シフトフェーズの前記シフト開始カウント状態から、前記テストパターンの前記キャプチャフェーズの前記キャプチャ終了カウント状態への、予め決められた数の遷移に対応する前記カウンタ回路のパターンカウンタの1つまたは複数の状態を、1つのカウント状態だけ変化させることと、
を反復的に実行することを含む、方法。
【請求項17】
集積回路におけるスキャンチェーンを介するスキャンテストのためのテストモード制御信号を生成する方法であって、
テストパターンのシフトフェーズに対応する第1のパターンと、前記テストパターンのキャプチャフェーズに対応する第2のパターンとを検出することと、
前記第1のパターンと前記第2のパターンとを検出する際に、前記シフトフェーズに対応する1つまたは複数のカウント状態と、前記キャプチャフェーズに対応する1つまたは複数のカウント状態とを生成することであって、前記シフトフェーズに対応する前記1つまたは複数のカウント状態が、シフト開始カウント状態とシフト終了カウント状態との間のカウント状態を含み、前記シフト開始カウント状態が、前記シフトフェーズに対応するクロック信号のサイクル数に関連付けられ、前記キャプチャフェーズに対応する前記1つまたは複数のカウント状態が、キャプチャ開始カウント状態とキャプチャ終了カウント状態との間のカウント状態を含み、前記キャプチャ開始カウント状態が、前記キャプチャフェーズに対応する前記クロック信号のサイクル数に関連付けられる、前記生成することと、
前記シフトフェーズに対応する前記1つまたは複数のカウント状態と前記キャプチャフェーズに対応する前記1つまたは複数のカウント状態とに基づいて、前記テストモード制御信号を生成することと、
前記シフトフェーズに対応する前記第1のパターンを検出する際に、前記シフト開始カウント状態として、カウンタ回路の第1のカウンタのカウント状態を生成することと、
を含み、更に、
前記テストパターンの前記シフトフェーズに対応する前記シフト開始カウント状態から、前記テストパターンの前記キャプチャフェーズに対応する前記キャプチャ終了カウント状態への、予め決められた数の遷移に対応する1つまたは複数のカウント状態のために、
第1のシフトフェーズの検出と、先行するキャプチャフェーズの終了とのうちの1つの際に、前記予め決められた数の遷移に対応する前記カウンタ回路のパターンカウンタの1つまたは複数のカウント状態を、1つのカウント状態だけ変化させることと、
前記1つまたは複数のカウント状態を1つのカウント状態だけ変化させる際に、前記シフト開始カウント状態として、前記カウンタ回路の前記第1のカウンタのカウント状態を生成することと、
前記第1のカウンタの前記カウント状態が前記シフト開始カウント状態である場合に、前記テストモード制御信号をアサートすることと、
前記スキャンテストの前記シフトフェーズ中に、前記シフト開始カウント状態から前記シフト終了カウント状態へ、前記第1のカウンタの前記カウント状態を変化させることと、
前記第1のカウンタの前記カウント状態が前記シフト終了カウント状態へ変化される場合に、前記テストモード制御信号をデアサートすることと、
前記スキャンテストの前記キャプチャフェーズ中に、前記キャプチャ開始カウント状態から前記キャプチャ終了カウント状態へ、前記カウンタ回路の第2のカウンタの前記カウント状態を変化させることと、
を反復的に実行することを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、集積回路のスキャン制御に関する。
【背景技術】
【0002】
例示的なシナリオによれば、組立回路内の論理ゲートの入力または出力が、例えば短絡などの不測の状況により動作中に固定値(例えば、論理0または論理1)に固定しない(またはそこに維持されない)ことを検証するために、組立回路はテストされる。上記の問題を軽減するために、組立回路はスキャンテストを受ける。スキャンテストは、組合せ部分とシーケンシャル部分とを含む集積回路で実行される。シーケンシャル部分は、1つまたは複数の記憶素子(例えば、フリップフロップ)のシーケンスを含む。スキャンテスト中、集積回路のシーケンシャル部分を構成する記憶素子は、スキャンチェーンとして結合または接続され、テストベクトルが、集積回路に提供される1つまたは複数の入力テストピンを介してスキャンチェーンに伝送される。集積回路は、1つまたは複数の入力と1つまたは複数の記憶素子の状態とが評価されるように評価モード(例えば、キャプチャフェーズ)に置かれ、評価モードで得られた対応する応答ベクトルが、1つまたは複数の出力テストピンを介してシフトアウトされる。応答ベクトルのビット値は、集積回路における障害状態を判定するように、出力期待値と比較される。
【発明の開示】
【0003】
集積回路においてスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる、いくつかの例示的な方法および集積回路を本明細書において開示する。集積回路は、テストパターン検出ブロック、カウンタ回路、および制御回路を含む。テストパターン検出ブロックは、検出パターンを受け取り、この検出パターンに基づいて、テストパターンのシフトフェーズに対応する第1のパターンとテストパターンのキャプチャフェーズに対応する第2のパターンとを検出する。テストパターン検出ブロックはまた、第1のパターンおよび第2のパターンのうちの少なくとも1つを検出することに基づいて、トリガ信号を生成するように構成される。カウンタ回路は、検出されたパターンに基づいて(1)シフトフェーズおよびクロック信号に対応する1つまたは複数のカウント状態、ならびに(2)キャプチャフェーズおよびクロック信号に対応する1つまたは複数のカウント状態を生成するように構成される。制御回路は、テストパターン検出ブロックに結合され、トリガ信号を受け取り、シフトフェーズに対応する1つまたは複数のカウント状態とキャプチャフェーズに対応する1つまたは複数のカウント状態とに基づいて、テストモード制御信号を生成および制御するように構成される。
【0004】
制御回路はさらに、(1)カウント状態がシフト開始カウント状態およびキャプチャ終了カウント状態のうちの1つである場合、テストモード制御信号をアサートすること、(2)カウント状態がキャプチャ開始カウント状態およびシフト終了カウント状態のうちの1つである場合、テストモード制御信号をデアサートすること、の少なくとも1つを実行するように構成される。カウンタ回路は、レジスタブロックおよび1つまたは複数のカウンタを含む。レジスタブロックは、シフト開始カウント状態、キャプチャ開始カウント状態、シフト終了カウント状態、およびキャプチャ終了カウント状態のうちの少なくとも1つを記憶するように構成される。レジスタブロックに結合される1つまたは複数のカウンタは、シフト開始カウント状態からシフト終了カウント状態までのシフトフェーズに対応する1つまたは複数のカウント状態を生成するように、および、キャプチャ開始カウント状態からキャプチャ終了カウント状態までのキャプチャフェーズに対応する1つまたは複数のカウント状態を生成するように構成される。
【0005】
さらに、一実施形態において、集積回路におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる集積回路が提供される。集積回路は、テストパターン検出ブロック、カウンタ回路、および制御回路を含む。テストパターン検出ブロックは、検出パターンを受け取り、この検出パターンに基づいてテストパターンの第1のシフトフェーズに対応するパターンを検出し、このパターンの検出に基づいてトリガ信号を生成するように構成される。カウンタ回路は、パターンカウンタおよび1つまたは複数のカウンタを含む。パターンカウンタは、第1のシフトフェーズを検出する際にトリガされるように、および、第1のシフトフェーズおよび後続のシフトフェーズのうちの1つに対応するシフト開始カウント状態と、キャプチャフェーズに対応するキャプチャ終了カウント状態との間の予め決められた数の遷移に対応する1つもしくは複数のカウント状態を生成するように構成される。1つまたは複数のカウンタは、後続のシフトフェーズおよびキャプチャフェーズに対応するカウント状態を生成するように構成される。制御回路は、カウンタ回路およびテストパターン検出ブロックに結合され、かつ、トリガ信号を受け取るように、および、第1のシフトフェーズに対応する1つまたは複数のカウント状態に基づいてテストモード制御信号を生成および制御するように構成される。このカウント状態は、1つまたは複数の後続のシフトフェーズおよび1つまたは複数のキャプチャフェーズに対応する。
【0006】
さらに、一実施形態において、集積回路内のスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成する方法が提供される。この方法は、テストパターンのシフトフェーズに対応する第1のパターンまたはシフトフェーズに対応する当該第1のパターン、およびテストパターンのキャプチャフェーズに対応する第2のパターンのうちの1つを検出することを含む。シフトフェーズおよびキャプチャフェーズの各々に対応する1つまたは複数のカウント状態が、パターンの検出の際にカウンタ回路を介して生成される。シフトフェーズに対応する1つまたは複数のカウント状態は、シフト開始カウント状態とシフト終了カウント状態の間のカウント状態を含む。シフト開始カウント状態は、シフトフェーズに対応するクロック信号のサイクル数と関連付けられる。キャプチャフェーズに対応する1つまたは複数のカウント状態は、キャプチャ開始カウント状態とキャプチャ終了カウント状態の間のカウント状態を含み、このキャプチャ開始カウント状態は、キャプチャフェーズに対応するクロック信号のサイクル数と関連付けられる。テストモード制御信号は、シフトフェーズに対応する1つまたは複数のカウント状態とキャプチャフェーズに対応する1つまたは複数のカウント状態とに基づいて、生成され、次いで制御される。
【図面の簡単な説明】
【0007】
図1A】一実施形態に従った開示される技術の様々な実施形態を実装するための例示的な環境を示すブロック図である。
【0008】
図1B】一実施形態に従った、クロック信号、テストモード制御信号、スキャンデータ入力信号、およびスキャンデータ出力信号の例示的な波形を示す図である。
【0009】
図2】一実施形態に従った集積回路におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる、第1の例示的な集積回路を示す図である。
【0010】
図3A】一実施形態に従った集積回路におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる、第1の例示的な集積回路を示す図である。
【0011】
図3B】一実施形態に従った図3Aの集積回路の動作を示すプロセスフローの例示的な図である。
【0012】
図4A】一実施形態に従った集積回路におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる、第2の例示的な集積回路を示す図である。
【0013】
図4B】一実施形態に従った図4Aの集積回路の動作を示すプロセスフローの例示的な図である。
【0014】
図5A】一実施形態に従った集積回路におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる、第3の例示的な集積回路を示す図である。
【0015】
図5B】一実施形態に従った図5Aの集積回路の動作を示すプロセスフローの例示的な図である。
【0016】
図6】別の実施形態に従った図5Aの集積回路の動作を示すプロセスフローの例示的な図である。
【0017】
図7A】一実施形態に従った、スキャンテスト中にシフトフェーズを制御することのできるフリップフロップのセットを含む例示的な集積回路を示す図である。
【0018】
図7B】一実施形態に従った図7Aの集積回路の動作を示すプロセスフローの例示的な図である。
【0019】
図8】一実施形態に従った集積回路におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成する方法のフロー図である。
【0020】
本明細書において参照する図面は、特に言及する場合を除いて、一定の縮尺で描かれているものと解釈されるべきでなく、このような図面は本質的に単なる例である。
【発明を実施するための形態】
【0021】
例示的なシナリオによれば、集積回路のスキャンテストの間、1つまたは複数のテストベクトルがその集積回路に関連付けられるスキャンチェーンに伝送される。1つまたは複数のテストベクトルは、1つまたは複数のテストパターンの形式で、テスタからピンのセットを介して伝送される。ピンのセットは、スキャンデータ入力ピン、スキャンデータ出力ピン、クロック信号ピン、およびスキャンイネーブルピンを含む。先行するパターンに対応するスキャンデータ出力信号がスキャンチェーンの外に伝送されるのと同時に、新たなテストパターンに対応するスキャンデータ入力信号がスキャンチェーン内に伝送されるように、スキャンデータ入力ピンおよびスキャンデータ出力ピンは同時に機能する。スキャンイネーブルピンは、スキャンテストの間、シフトフェーズ(スキャンイネーブルピンがアサートされる間)とキャプチャフェーズ(スキャンイネーブルピンがデアサートされる間)の間に相違をもたらす。シフトフェーズの間、テストパターンの形式のスキャンデータは、クロック信号を用いてスキャンチェーン内におよびスキャンチェーン外にシフトされ、キャプチャフェーズの間、スキャンデータのための集積回路の応答が、機能クロックを用いてスキャンチェーン内でキャプチャされる。スキャンチェーン内の所与の数の記憶素子およびクロック信号の所与のクロックシーケンスについて、テストモードイネーブル信号(例えば、スキャンイネーブルピンに関連付けられるスキャンイネーブル信号)が、クロック信号のクロックサイクルの数と一定の関係がある。それゆえ、スキャンイネーブルピンのアサートおよびデアサートは、所与のタイプの所与の自動テストパターン発生(ATPG)の実行での様々なパターンについて標準的である。
【0022】
この結果、テスタおよびスキャンイネーブルピンからのサイクルベース毎のテストモード制御信号の動的な制御は重要でない。集積回路を少数セットのピンを介してテストしなければならない低減されたピンカウントテストでは、集積回路はテスタに対してピンを制限し、いくつかの機能的な入力および出力を使用できなくする。また、テストパターンによっては、スキャンデータ入力ピンおよびスキャンデータ出力ピンの状態が、シフト動作終了後およびキャプチャ動作の間、依然として変化しないままであり、または、シフト動作終了とキャプチャ動作終了の間で変化することがある。加えて、スキャンイネーブルピンなどの専用のデバイスレベルピンが、スキャンテストの間テスタから駆動(例えば、制御)される必要があり、これにより資源が無駄に消費されることとなる。さらに、テスタの入力/出力のチャンネル速度により、スキャンイネーブルピンが制御され得る速度、および、テストパターンが集積回路内におよび集積回路外にシフトされ得る速度が制限され得る。事象駆動型のダイレクトメモリアクセスベースのテスタアーキテクチャの場合、シフトフェーズ(例えば、クロック信号を用いてスキャンデータがスキャンチェーン内におよびスキャンチェーン外にシフトされる)とキャプチャフェーズ(例えば、機能クロックを用いて集積回路応答がスキャンチェーン内でキャプチャされる)の間の切り替えにより、スキャンチェーン内にシフトされた最後のデータとテストモード制御信号のデアサートとの間、およびキャプチャクロックの最後の印加とテストモード制御信号のアサートとの間に、デッドデッドサイクルが生じる。事象駆動型のダイレクトメモリアクセスベースのテスタアーキテクチャは、シフトフェーズからキャプチャフェーズへ、同様にキャプチャフェーズからシフトフェーズへ切り替えるために余分のサイクルを利用する。しかし、開示する技術の様々な実施形態が、(1)(集積回路内などの)スキャンチェーンを介してスキャンテスト用のテストモード制御信号を内部生成することができ、(2)上記およびその他の障害を克服し、追加の利点を提供することのできる、方法および集積回路を提供する。
【0023】
以下の説明および添付の図面は、開示する技術が様々な異なる実施形態において実施でき、または実装できることを示す。しかし、開示する技術の範囲が、本明細書において開示する実施形態のいずれかまたはすべてに限定されないことに留意すべきである。実際には、開示する実施形態の、デバイス、特徴、動作、プロセス、特性、または他の性質のうちの1つまたは複数を、削除、置換、補足、または変更することができる。
【0024】
図1Aは、様々な例示的な実施形態を実装する環境を示す。図1Aに示すように、テスタ(102)が、複数の通信経路(例えば、(112)、(114)、(116)、(118)および(120))を介して集積回路(104)と通信可能に関連付けられまたは結合される。集積回路(104)はシステムオンチップ(SoC)であってもよいことに留意されたい。集積回路(104)は、デコンプレッサ(106)、スキャンチェーン(108)、およびコンパクタ(110)を含む。スキャンチェーン(108)は、1つまたは複数の記憶素子(例えば、フリップフロップ)を含む。1つまたは複数の記憶素子は、1つまたは複数のテストベクトルのシフトインおよび1つまたは複数の応答ベクトルのシフトアウトの間、シフトレジスタとして結合または接続され得る。スキャンテストの間、テスタ(102)は、この1つまたは複数のテストベクトルを圧縮した形式で入力経路(112)によりデコンプレッサ(106)に提供し、スキャンテストのキャプチャされた結果を表わす1つまたは複数の応答ベクトルを圧縮した形式で出力経路(114)によりコンパクタ(110)から受け取る。テストベクトルのシフトインがいったん完了すると、またはそれに続いて(例えば、キャプチャフェーズの間)、1つまたは複数の応答ベクトルは、テスト中の集積回路(104)の組合せ論理の評価の結果(例えば、応答ビット)を含む。テスタ(102)は、1つまたは複数の応答ベクトルにおけるビット値を1つまたは複数の期待値と比較して、集積回路(104)内の故障を判定することができる。テスタ(102)は、経路(116)によりテストモード制御信号を、ならびに経路(118)を介して1つまたは複数のクロックを、集積回路(104)に提供する。この1つまたは複数のクロックは、スキャンテストの間集積回路(104)の動作を調整する。テスタ(102)は、この1つまたは複数のクロックの構成を特定するように構成データも提供し得、この構成データは、出力経路(120)を介して集積回路(104)における制御信号を生成するために利用され得る。
【0025】
デコンプレッサ(106)は、経路(112)によって受け取られた1つまたは複数のテストベクトルを復元し、この1つまたは複数のテストベクトルを圧縮されていない形式でスキャンチェーン(108)に提供するように構成される。コンパクタ(110)は、応答ベクトルを圧縮し、対応する圧縮された1つまたは複数の応答ベクトルをテスタ(102)へ出力経路(114)を介して提供するように構成される。デコンプレッサ(106)およびコンパクタ(110)は、組合せおよび/またはシーケンシャル論理回路に基づく様々なアプローチを用いて実装してもよい。この集積回路(104)には、デコンプレッサ(106)およびコンパクタ(110)がなく、テスタ(102)は、スキャンチェーン(108)を直接駆動するように構成される。集積回路(104)は、例えば、スキャンテストの間に必要とされる動作を調整する際に用いられ得る様々なクロック信号および制御信号を内部生成するための、組合せ論理要素および対応する回路などの、様々な追加の要素を含み得る。
【0026】
クロック信号は、テスタ(102)から受け取られたクロック信号に基づいて生成することができる。経路(112)および(120)は、複数の信号ライン(例えば、複数の信号ラインの各信号ラインが、一度に単一のビットを転送する)を含む/表すことができ、さらに、集積回路(104)は、複数の信号ラインに接続または結合するために、対応する数のピンを含むことができる。例示的なシナリオでは、1つまたは複数のテストパターンが、テスタ(102)から、集積回路(104)をスキャンテストにかけるように実装され得るピンのセットを介して、集積回路(104)に印加される。ピンのセットは、スキャンデータ入力ピン、スキャンデータ出力ピン、およびクロック信号ピンを含む。ピンのセットは、スキャンテストの間に必要とされる動作の調整の際に用いられ得る制御信号を生成および伝送するために使用できる。スキャンテストの間生成される様々な制御信号を図1Bに示す。
【0027】
図1Bは、一実施例に従ったクロック信号(122)、テストモード制御信号(124)、スキャンデータ入力信号(126)、およびスキャンデータ出力信号(128)の例示的な波形を示す。先行するテストパターンに対応するスキャンデータ出力信号(128)がスキャンチェーン(108)の外にシフトアウトされるのと同時に、新しい入力パターンがスキャンチェーン(108)内にシフトインすることを確実にするように、スキャンデータ入力信号(126)およびスキャンデータ出力信号(128)は同時に実装される。「テストモード制御信号」という用語は、スキャンテスト中のテストパターンのシフトフェーズおよびキャプチャフェーズを制御するために、ならびに/または、クロックの制御のためおよび/もしくはスキャンチェーンの入出力のための様々な内部レジスタをスキャンチェーンの選択的な動作のために構成するために、開示する技術の集積回路を介して内部生成される信号を指すと解釈されることに留意されたい。テストモード制御信号(124)の例は、これらに限定されないが、制御性を改善し観測を容易にするためのスキャンチェーン(108)の選択的な動作のために、スキャンテストの間テストパターンのシフトフェーズおよびキャプチャフェーズを制御するためのスキャンイネーブル信号と、各スキャンチェーンへのクロックの制御のためならびに/または各スキャンチェーンの入出力の制御のための様々な内部レジスタを構成するためのロードイネーブル信号とを含むことができる。スキャンイネーブル信号は、シフトフェーズおよびキャプチャフェーズの間各テストパターンに対する固定的な挙動を有し、ロードイネーブル信号は、スキャンテストの間スキャンチェーン(108)に1つまたは複数のテストパターンを印加する際の様々な制御のための内部レジスタをロードすることを可能にし、また、シフト動作の一部として1つまたは複数のテストパターンのための一定数のサイクルで動作される。テストモード制御信号(124)は、集積回路(例えば、集積回路(104))において、シフトフェーズ(例えば、テストモード制御信号(124)がアサートされるシフトフェーズ(130)および(134))とキャプチャフェーズ(例えば、その間にテストモード制御信号(124)がデアサートされる(132))との間の相違をもたらし、アサートされたテストモード制御信号またはデアサートされたテストモード制御信号をスキャンチェーン(108)に印加することを制御するのにも役立つ。
【0028】
シフトフェーズ(例えばシフトフェーズ(130)および(134))の間、テストパターンはスキャンチェーン(108)にロードされ、テスト応答はスキャンチェーン(108)からアンロードされる。シフトフェーズの間テストパターンがロードされたことに応答してスキャンチェーン(108)を介して生成された1つまたは複数の応答ベクトルが、スキャンチェーン(108)を構成する記憶素子の通常動作モードの間キャプチャフェーズ(例えば、(132))でキャプチャされる。図1Bに示すように、スキャンチェーン内の所与の数のフリップフロップ、および所与のテストパターンでは、スキャンイネーブル信号に関するテストモード制御信号(124)は、クロック信号(122)のクロックサイクルの数と一定の関係にある。図1Bに示した波形は1つのキャプチャクロック(例えば、キャプチャフェーズ(132)内)を示しているが、複数のキャプチャクロックが様々なタイプのテストパターンに必要とされてもよく、例えば、縮退故障ATPGパターンが1つのキャプチャクロックを含み得、遷移故障ATPGパターンが2つのキャプチャクロックを含み得、また、シーケンシャルなAPTGパターンが複数のキャプチャクロックを含み得る。テストモード制御信号(124)は、例えば、ローンチオフキャプチャ遷移故障ATPGパターンの2つのキャプチャクロックの前、第1のキャプチャクロックと第2のキャプチャクロックの間、および様々なタイプのテストパターン用の連続したキャプチャクロック間での様々なその他の方式で、状態を変化させ得る(すなわち、デアサートされ得る)。
【0029】
図2は、一実施形態に従った集積回路(200)におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる第1の例示的な集積回路(200)を示す。集積回路(200)は、テストパターン検出ブロック(202)、カウンタ回路(204)、および制御回路(206)を含む。テストパターン検出ブロック(202)は、検出パターン(208)を受け取るように構成される。制御回路(206)およびカウンタ回路(204)は、クロック信号(209)を介して動作する。クロック信号(209)(例えば、図1Bのクロック信号(122))は、シフトフェーズおよびキャプチャフェーズの間、テスタ(例えば、図1Aのテスタ(102))から受け取られる。クロック信号(209)は、例えば、キャプチャフェーズの間(例えば、集積回路(200)内または集積回路(200)と通信可能に結合されたデバイス内の)位相ロックループを用いて、内部生成される。検出パターン(208)は、テストパターンのシフトフェーズの開始および/またはテストパターンのキャプチャフェーズの開始を示す情報を含む。例えば、パターン8’hAAがシフトフェーズの開始を示し得、パターン8’h55がキャプチャフェーズの開始を示し得る。テストパターン検出ブロック(202)は、テストパターンのシフトフェーズの開始に対応する第1のパターン(例えば、8’hAA)およびテストパターンのキャプチャフェーズの開始に対応する第2のパターン(例えば、8’h55)を、検出パターン(208)に基づいて検出するように構成される。テストパターンは、テストベクトルと、スキャンテスト中の各シフトフェーズおよび各キャプチャフェーズに対応するクロック信号(209)のクロックサイクル数を示す情報とを含む。テストパターン検出ブロック(202)は、集積回路(200)のスキャンデータ入力ピンでのビット組合せに基づいて、第1のパターンおよび第2のパターンを検出する。
【0030】
テストパターン検出ブロック(202)は、テストパターンセット全体のシフトフェーズの開始およびキャプチャフェーズの開始を検出するために単一検出パターンを利用することができる。テストパターン(208)は、可変数の入力チャンネルを介してテストパターン検出ブロック(202)に伝送され得る。例えば、パターンAAが、01010101として、例えば、1つのサイクルにおける8ビットバス、2つのサイクルにおける4ビットバス(例えば、1サイクルにおいて0101および後続のサイクルにおいて0101として)、4つのサイクルにおける2ビットバス(例えば、4サイクルの各々において01として)、および8つのサイクルにおける1ビットバス、を介して伝送され得る。
【0031】
一実施形態において、テストパターン検出ブロック(202)、カウンタ回路(204)、および制御回路(206)のうちの1つまたは複数が、本明細書で説明するように、いくつかの動作を実行するように特に構成された、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)として、またはそれらの組合せとして、具現化され得る。一実施形態において、テストパターン検出ブロック(202)、カウンタ回路(204)、および制御回路(206)のうちの1つまたは複数が、メモリデバイス(例えば、キャッシュ)、タイミングデバイス(例えば、リアルタイムクロック(RTC))、構成可能な論理ブロック(CBL)のアレイ、プログラム可能な入力/出力ブロック(IOB)および/または追加回路のアレイもしくは伝送チャンネルのアレイを含むこともできる。CLBおよびIOBは、プログラム可能な相互接続構成によって互いに相互接続または結合され得る。
【0032】
一実施形態において、テストパターン検出ブロック(202)、カウンタ回路(204)、および制御回路(206)のうちの1つまたは複数が、メモリデバイスと関連付けられる内部構成メモリセルに構成データのストリーム(例えば、ビットストリーム)をロードすることによってプログラムすることができ、この構成データは様々な構成の定義を含むことができる。構成データは、外部メモリ(例えば、プログラマブルリードオンリメモリ(ROM))から読み出され得、または、外部デバイスにより集積回路(200)に書き込まれ得る。個々のメモリセルの集合的な状態は、FPGAの機能を決定する。図2の集積回路(200)の例示的な回路実装を、図3Aに示す。
【0033】
図3Aは、一実施形態に従った、集積回路(300)内のスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる第1の例示的な集積回路(300)を示す。テストモード制御信号の例は、これらに限定されないが、スキャンイネーブル信号およびロードイネーブル信号を含む。集積回路(300)は、テストパターン検出ブロック(302)、カウンタ回路(304)、および制御回路(306)を含む。テストパターン検出ブロック(302)、カウンタ回路(304)、および制御回路(306)は、図2の、それぞれ、テストパターン検出ブロック(202)、カウンタ回路(204)、および制御回路(206)と実質的に同等である。テストパターン検出ブロック(302)は、検出パターン(308)を受け取るように構成される。検出パターン(308)は、テストパターンのシフトフェーズの開始および/またはテストパターンのキャプチャフェーズの開始を示す情報を含む。テストパターンは、テストベクトルを含み得、また、スキャンテスト中の1つまたは複数のシフトフェーズおよび1つまたは複数のキャプチャフェーズに対応するクロック信号(309)のクロックサイクル数を示す情報、または、スキャンテスト中の1つまたは複数のシフトフェーズに対応するクロック信号(309)のクロックサイクル数を示す情報を含むことができる。
【0034】
テストパターンが、1つもしくは複数のシフトフェーズおよび1つもしくは複数のキャプチャフェーズに対応するクロック信号(309)のクロックサイクル数を示す際、シフトフェーズおよびキャプチャフェーズは、スキャンイネーブル信号を介して区別される。テストパターンが1つまたは複数のシフトフェーズのみを示す際には、シフトフェーズは、ロードイネーブル信号を介して識別される。1つまたは複数のキャプチャフェーズおよびシフトフェーズを示すテストパターン、ならびに1つまたは複数のシフトフェーズのみを示すテストパターンは、マッチングテストモード制御を用いて好ましい順で選択される。クロック信号(309)(例えば、図1Bのクロック信号(122))は、シフトフェーズおよびキャプチャフェーズの間、テスタ(例えば、図1Aの(102))から受け取られる。クロック信号(309)は、例えば、キャプチャフェーズの間(例えば、集積回路(300)内、または集積回路(300)と通信可能に結合されたデバイス内の)位相ロックループを用いて、内部生成され得る。テストパターン検出ブロック(302)は、検出パターン(308)に基づいて、テストパターンのシフトフェーズ(例えば、8’hAA)の開始に対応する第1のパターン、およびテストパターンのキャプチャフェーズの開始に対応する第2のパターン(例えば、8’h55)を検出するようにも構成される。
【0035】
テストパターン検出ブロック(302)は、スキャンデータ入力ピンでのビット組合せに基づいて第1のパターンおよび第2のパターンを検出する。テストパターン検出ブロック(302)は、テストパターンのシフトフェーズに対応する第1のパターンを検出するように構成された第1のテストパターンブロック(310)、およびテストパターンのキャプチャフェーズに対応する第2のパターンを検出するように構成された第2のテストパターンブロック(312)を含む。テストパターン検出ブロック(302)は、第1のパターンおよび第2のパターンの検出に基づいてトリガ信号(例えば、(314)および(316))を生成するように構成される。第1のテストパターン検出ブロック(310)は、シフトフェーズの開始を示しかつトリガ信号(314)を生成する、例えば8’hAAなどの、第1のパターンを検出し、第2のテストパターンブロック(312)は、キャプチャフェーズの開始を示しかつトリガ信号(316)を生成する、例えば8’h55などの、第2のパターンを検出する。
【0036】
トリガ信号(例えば、(314)および(316))は制御回路(306)に送信され、これにより、制御回路(306)を介してカウンタ回路(304)がトリガされる。カウンタ回路(304)は、検出されたパターンに基づいて1つまたは複数の状態を生成するよう構成される。カウンタ回路(304)は、シフトフェーズおよびクロック信号(309)に対応する1つまたは複数のカウント状態、ならびにキャプチャフェーズおよびクロック信号(309)に対応する1つまたは複数のカウント状態を生成する。カウンタ回路(304)は、レジスタブロック(318)、第1のカウンタ(320)、および第2のカウンタ(321)を含む。レジスタブロック(318)は、クロック信号(309)およびリセット信号(319)を介して動作するように構成された1つまたは複数のレジスタを含む。レジスタブロック(318)は、シフト開始カウント状態、キャプチャ開始カウント状態、シフト終了カウント状態、およびキャプチャ終了カウント状態のうちの少なくとも1つを記憶するように構成される。
【0037】
シフト開始カウント状態とシフト終了カウント状態の間の期間は、テストモード制御信号がシフトフェーズのためにアサートされたままである期間に対応し、スキャンテストの間シフト動作を実行しなければならないクロック信号(309)のクロックサイクル数にも対応している。この期間は、期間という観点では、スキャンチェーンの最大の長さに対応し得る。キャプチャ開始カウント状態とキャプチャ終了カウント状態の間の期間は、テストモード制御信号がキャプチャフェーズのためにデアサートされたままである期間に対応し、スキャンテストの間キャプチャ動作を実行しなければならないクロック信号(309)のクロックサイクル数にも対応している。集積回路(300)は更にテストインタフェース(323)を含み、テストインタフェース(323)は、レジスタブロック(318)と通信可能に関連付けられまたは結合され、かつ、レジスタブロック(318)を制御するように、およびテストパターンに基づきシフト開始カウント状態、キャプチャ開始カウント状態、シフト終了カウント状態、およびキャプチャ開始カウント状態のうちの少なくとも1つを変化させるように構成される。テストインタフェース(323)の例は、これらに限定されないが、ジョイントテスト作業グループ(JTAG)インタフェース、および埋め込みコアテストインタフェースを含む。第1のカウンタ(320)および第2のカウンタ(321)は、レジスタブロック(318)と結合される。テスタからのクロック信号(309)は、シフト動作およびキャプチャ動作のために第1のカウンタ(320)および第2のカウンタ(321)に使用される。あるいは、テスタからのクロック信号(309)は、シフト動作のために第1のカウンタ(320)をクロックするために用いられ、高速の内部生成されたクロック信号(例えば、位相ロックループを用いて生成される)が、キャプチャ動作のために第2のカウンタ(321)をクロックするために用いられる。
【0038】
第1のカウンタ(320)は、シフト開始カウント状態からシフト終了カウント状態(例えば、ゼロカウント)までのシフトフェーズに対応する1つまたは複数のカウント状態を生成するように構成される。第2のカウンタ(321)は、キャプチャ開始カウント状態からキャプチャ終了カウント状態(例えば、ゼロカウント)までのキャプチャフェーズに対応する1つまたは複数のカウント状態を生成するように構成される。第1のカウンタ(320)および第2のカウンタ(321)は、ダウンカウンタを含むことができる。ダウンカウンタは、これに限定されないが、8ビットダウンカウンタを含むことができる。制御回路(306)は、テストパターン検出ブロック(302)から1つまたは複数のトリガ信号(例えば、(314)および(316))を受け取るように配置されるように、テストパターン検出ブロック(302)と結合される。制御回路(306)をトリガするために、シフト終了カウント状態またはキャプチャ終了カウント状態を含む1つまたは複数のカウント状態が制御回路(306)に供給されるように、制御回路(306)は、カウンタ回路(304)と結合される。制御回路(306)は、1つまたは複数の選択ブロック(例えば、選択ブロック(322)および(324))、ならびに1つまたは複数のフリップフロップ(例えば、Dフリップフロップ(326)、(328)、(330)および(332))を含む。
【0039】
選択ブロックの例は、これに限定されないが、マルチプレクサを含む。1つまたは複数の選択ブロック(例えば、(322)および(324))の各々が、テストパターン検出ブロック(302)からのトリガ信号(例えば、(314)および(316))、ならびにカウンタ回路(304)からの1つまたは複数のカウント状態に対応する信号((315)および(317))を受け取るように構成される。一実施形態において、第1の選択ブロック(322)が、第1のカウンタ(320)のシフト終了カウント状態に対応する信号(315)を受け取るように構成され、この信号(315)を受け取る際またはそれに続いて非活性化され、また、第2の選択ブロック(324)が、第2のカウンタ(321)のキャプチャ終了カウント状態に対応する信号(317)を受け取るように構成され、この信号(317)を受け取る際またはそれに続いて非活性化される。
【0040】
一実施形態では、フリップフロップ(例えば、フリップフロップ(326)、(328)、(330)、および(332))の各々が、クロック信号(309)およびリセット信号(319)を介して動作する。トリガ信号(例えば、トリガ信号(314)および(316))を受け取る際またはそれに続いて、選択ブロック(例えば、選択ブロック(322)および(324))の各々が、1つまたは複数のフリップフロップ(例えば、フリップフロップ(326)、(328)、(330)、および(332))をトリガして、1つまたは複数のイネーブル信号(例えば、信号(340)および(342))を生成し、その結果、カウンタ回路(304)を介して1つまたは複数のカウント状態の生成をトリガする。制御回路(306)は、シフトフェーズに対応する1つまたは複数のカウント状態およびキャプチャフェーズに対応する1つまたは複数のカウント状態に基づき、テストモード制御信号を生成および制御するように構成される。カウント状態が、シフト開始カウント状態およびキャプチャ終了カウント状態のうちの1つである場合、制御回路(306)は、テストモード制御信号のアサートを実行するように構成される。
【0041】
制御回路(306)は、アサートされたテストモード制御信号がスキャンイネーブル生成論理を介して生成されることに基づき、イネーブル同期(sync)信号(344)を生成するように構成される。カウント状態が、キャプチャ開始カウント状態およびシフト終了カウント状態のうちの1つである場合、制御回路(306)は、テストモード制御信号のデアサートを実行するように構成される。制御回路(306)は、デアサートされたテストモード制御信号がスキャンイネーブル生成論理を介して生成されることに基づき、イネーブル同期(sync)キャプチャ信号(346)を生成するように構成される。
【0042】
図3Bは、一実施形態に従った図3Aの集積回路(300)の動作を図示するプロセスフローの例示的な図である。図3Bにおいて、集積回路(300)のスキャンテストの複数の状態がブロック(350)〜(356)に示されている。動作の複数の状態は、これに限定されないが、初期化状態(350)、アイドル状態(352)、シフト動作(354)、およびキャプチャ動作(356)を含む。一実施形態では、初期化状態(350)の間、集積回路(300)の動作(またはスキャンテスト)が初期化される。アイドル状態(352)の間、シフトフェーズまたはキャプチャフェーズが始まる前に、1つまたは複数のウェイト(待機)サイクルがスキャンテストに生じる。テストパターン検出ブロック(302)がテストパターン(308)のシフトフェーズに対応する第1のパターンを検出する際またはそれに続いて(例えば、(360)参照)、シフト動作は始まる(例えば、(356)参照)。シフト動作(356)の間、制御回路(306)は、カウンタ回路(304)をトリガするためにカウントイネーブル信号(340)を生成するように構成され、かつ、イネーブル同期信号(344)、およびこのイネーブル同期信号(344)に基づくアサートされたテストモード制御信号を生成するようにも構成される。カウンタ回路(304)がトリガされると、カウンタ回路(304)は、シフトフェーズに対応する1つまたは複数のカウント状態を生成する。テストモード制御信号は、カウンタ回路(304)を介して生成された1つまたは複数のカウント状態の期間の間、テストモード制御信号がアサートされたままであることに留意されたい。第1のカウンタ(320)はテストパターン(308)のシフトフェーズに対応するパターンを検出する際またはそれに続いてトリガされ、かつ第1のカウンタ(320)は、1つまたは複数のカウント状態を生成し始める(例えば、各クロックサイクルでシフト開始カウント状態からシフト終了カウント状態へのデクリメントを開始する)。
【0043】
第1のカウンタ(320)のカウント状態がシフト終了カウント状態(例えば、ゼロカウント)に到達するまで、第1のカウンタ(320)はカウンタ状態を(例えば、シフト開始カウント状態からダウンカウントすることによって)変化させる。第1のカウンタ(320)のカウント状態がシフト終了カウント状態に到達する際またはそれに続いて、シフト動作(356)は終了し((362)に示す)、集積回路(300)のスキャンテストはアイドル状態(352)に戻る。テストパターン検出ブロック(302)がテストパターンのキャプチャフェーズに対応する第2のパターンを検出する際またはそれに続いて((364)に示す)、キャプチャ動作が(354)で開始し、制御回路(306)は、カウンタ回路(304)をトリガするようにカウントイネーブル信号(342)を生成し、かつイネーブル同期キャプチャ信号(346)も生成し、デアサートされたテストモード制御信号が、このイネーブル同期キャプチャ信号(346)に基づいて生成される。トリガされる際またはそれに続いて、カウンタ回路(304)は、キャプチャフェーズに対応するカウント状態を生成する。テストモード制御信号は、キャプチャフェーズに対応する1つまたは複数のカウント状態の期間にわたりデアサートされたままである。第2のカウンタ(321)は、カウントイネーブル信号(342)によってトリガされ、第2のカウンタ(321)をトリガする際またはそれに続いて、1つまたは複数のカウント状態を生成する(例えば、各クロックサイクルで、キャプチャ開始カウント状態からキャプチャ終了カウンタ状態へカウント状態をデクリメントする)。
【0044】
第2のカウンタ(321)のカウント状態がキャプチャ終了カウント状態(例えば、ゼロカウント)に到達するまで、第2のカウンタ(321)は、そのカウント状態を(例えば、キャプチャ開始状態からダウンカウントすることにより)変化させる。キャプチャ終了カウント状態に到達する際またはそれに続いて、キャプチャ動作(354)は終了し((366)に示す)、集積回路(300)はアイドル状態(352)へ戻る。いくつかの実施例では、カウンタ回路(304)は、図3Aを参照して本明細書に述べる第1のカウンタ(320)および第2のカウンタ(321)の個々の機能または組み合わされた機能を実行するための単一のカウンタを含み得る。
【0045】
いくつかの実施例において、開示する技術の集積回路は、シフトフェーズおよびキャプチャフェーズの前に1つまたは複数のウェイトサイクルを生成するように構成された1つまたは複数のウェイトカウンタを含むことができ、これにより、特定の数のサイクルの通過が、例えば、スキャンイネーブル信号生成論理を、後続のシフトフェーズが開始する前に安定させることができ、また、内部クロック制御論理に、内部生成された実速度キャプチャパルス(at-speed capture pulse)が後続のキャプチャフェーズが開始する前に利用可能な状態を初期化および獲得させることができるようにする。また、テストパターンの中には、異なる数の実速度キャプチャパルスを実装できるものもある。例えば、縮退故障パターンなどのテストパターンが、1つの実速度キャプチャパルスを実装でき、標準の遷移遅延故障およびパス遅延故障パターンなどのテストパターンが、2つの実速度キャプチャパルスを実装できる。後者のカテゴリのテストパターンには、2つ以上の実速度パルスが必要とされる、2よりも大きな「シーケンシャル深度(sequential depth)」を有するものもある。開示する技術の集積回路は、可変数の実速度キャプチャパルスを提供することができる。一実施形態では、集積回路が、固定数の実速度キャプチャパルスを提供するよう構成された1つまたは複数のウェイトカウンタを含む。1つまたは複数の実施形態では、テストパターン検出ブロックをウェイトカウンタに置き換えて、パターン検出値に基づいて、可変数の実速度キャプチャパルスを提供することができる。ウェイトカウンタを含む例示的な集積回路を、図4Aおよび図4Bに示す。
【0046】
図4Aは、一実施形態に従った集積回路(400)におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる第2の例示的な集積回路(400)を示す。集積回路(400)は、テストパターン検出ブロック(402)、カウンタ回路(404)、および制御回路(406)を含む。テストパターン検出ブロック(402)は、検出パターン(408)を受け取るように構成される。検出パターン(408)は、図3Aの検出パターン(308)と実質的に同等である。クロック信号(410)(例えば図1Bのもの)は、テスタ(例えば、図1Aのテスタ(102))から受け取られる。クロック信号(410)は、例えば(例えば、集積回路(400)内または集積回路(400)と通信可能に結合されたデバイス内の)位相ロックループ等を用いて、集積回路(300)内に内部生成できる。テストパターン検出ブロック(402)は、テストパターンのシフトフェーズの開始に対応するパターン(例えば、8’hAA)を検出するように構成される。テストパターンは、図3Aを参照して本明細書で述べるテストパターンと実質的に同等である。テストパターン検出ブロック(402)は、スキャンデータ入力ピンのビット組合せに基づいてパターンを検出する。
【0047】
テストパターン検出ブロック(402)は、パターンの検出に基づいてトリガ信号(例えば(412))を生成するよう構成される。トリガ信号(412)は制御回路(406)に伝送されて、これにより制御回路(406)を介してカウンタ回路(404)をトリガする。カウンタ回路(404)は、検出されたシフトパターンに基づいて、1つまたは複数のカウント状態を生成するよう構成される。一実施形態では、カウンタ回路(404)は、シフトフェーズおよびクロック信号(410)に対応する1つまたは複数のカウント状態と、キャプチャフェーズおよびクロック信号(410)に対応する1つまたは複数のカウント状態を生成して、スキャンイネーブル信号を介して制御されるテストパターンに備える。別の実施形態では、カウンタ回路(404)は、シフトフェーズおよびクロック信号(410)に対応する1つまたは複数のカウント状態を生成して、ロードイネーブル信号を介して制御されるテストパターンに備える。カウンタ回路(404)は、レジスタブロック(414)、第1のカウンタ(416)、第2のカウンタ(418)、およびウェイトカウンタ(420)を含む。説明のため、詳細な説明は1つのウェイトカウンタに言及する。しかし、本明細書で開示する方法および集積回路の範囲は、1つのカウンタ回路の実装に限定されず、複数のウェイトカウンタの組合せを含むように拡張され得ることに留意されたい。
【0048】
レジスタブロック(414)は、クロック信号(410)およびリセット信号(419)を介して動作する1つまたは複数のレジスタを含む。また、第1のカウンタ(416)、第2のカウンタ(418)、およびウェイトカウンタ(420)の各々が、クロック信号(410)およびリセット信号(419)を介して動作する。レジスタブロック(414)は、シフト開始カウント状態、キャプチャ開始カウント状態、シフト終了カウント状態、キャプチャ終了カウンタ状態、およびウェイトサイクル数を示す予め決められたカウント状態値のうちの少なくとも1つを記憶するように構成される。シフト開始カウント状態とシフト終了カウント状態の間の期間は、テストモード制御信号がシフトフェーズのためにアサートされたままである期間に対応し、キャプチャ開始カウンタ状態とキャプチャ終了カウント状態の間の期間は、テストモード制御信号がキャプチャフェーズのためにデアサートされたままである期間に対応する。シフト開始カウント状態は、期間の観点では、スキャンチェーンの最大の長さに対応し得る。キャプチャ開始カウント状態は、キャプチャフェーズのためにテストモード制御信号がデアサートされたままである期間に対応する。レジスタブロック(414)を制御するため、および、シフト開始カウント状態、キャプチャ開始カウント状態、シフト終了カウンタ状態、およびキャプチャ終了カウンタ状態能のうちの少なくとも1つをテストパターンに基づいて変化させるために配置されるように、集積回路(400)は、レジスタブロック(414)と通信可能に関連付けまたは結合されたテストインタフェース(421)も含む。テストインタフェース(421)の例は、これらに限定されないが、JTAGインタフェースおよび埋め込みコアテストインタフェースを含む。
【0049】
第1のカウンタ(416)および第2のカウンタ418は、レジスタブロック(414)と結合される。テスタ(例えば、図1Aのテスタ(102))からのクロック信号(410)は、それぞれ、シフト動作およびキャプチャ動作のために第1のカウンタ(416)および第2のカウンタ418をクロックするために用いられる。あるいは、一実施形態では、テスタからのクロック信号(410)が、シフト動作のために第1のカウンタ(416)をクロックするために用いられ、高速内部生成クロック信号(例えば、位相ロックループを用いて生成される)が、キャプチャ動作のために第2のカウンタ418をクロックするために用いられる。
【0050】
第1のカウンタ(416)は、シフト開始カウント状態からシフト終了カウント状態(例えば、ゼロカウント)までのシフトフェーズに対応する1つまたは複数のカウント状態を生成するように構成される。第1のカウンタ(416)は、検出パターン(408)に基づきシフトフェーズの開始に対応するパターンを検出する際またはそれに続いて、1つまたは複数のカウント状態を生成する。第2のカウンタ418は、キャプチャ開始カウント状態からキャプチャ終了カウント状態(例えば、ゼロカウント)までのキャプチャフェーズに対応する1つまたは複数のカウント状態を生成するように構成される。第1のカウンタ(416)および第2のカウンタ418は、ダウンカウンタを含むことができる。ダウンカウンタは、これに限定されないが、8ビットダウンカウンタを含むことができる。第1のカウンタ(416)は、ウェイトカウンタ(420)と結合され、その結果、ウェイトカウンタ(420)が、第1のカウンタ(416)のシフト終了カウント状態(例えば、信号(413)参照)に対応する信号によってトリガされて、キャプチャフェーズの前に1つまたは複数のウェイトサイクルに対応するカウント状態を生成するようにする。ウェイトカウンタ(420)は、レジスタブロック(414)に結合されて、予め決められたカウント状態値をレジスタブロック(414)から取得する。この予め決められたカウント状態値は、ウェイトカウンタ(420)が作動する際に生成されるウェイトサイクル数を示す。ウェイトサイクル数を示す情報は、検出パターンに含まれる。このような実施形態では、検出パターンは、ウェイトサイクル数を示すパターンの第1のセット、およびキャプチャフェーズの開始を示すパターンの第2のセットを含むことができる。1つまたは複数のウェイトサイクルが完了する際またはそれに続いて、ウェイトカウンタ(420)は制御回路(406)をトリガして(例えば、信号(415)参照)、これにより、第2のカウンタ418をトリガし、キャプチャフェーズに対応する1つまたは複数のカウント状態を生成する。第2のカウンタ418は、キャプチャ開始カウント状態からキャプチャ終了カウント状態(例えば、ゼロカウント)までの1つまたは複数のカウンタ状態を生成する。
【0051】
シフトフェーズの開始に対応するパターン(例えば、8’hAA)の検出の際またはそれに続いて、テストパターン検出ブロック(402)からトリガ信号(例えば、(314))を受け取るように配置されるように、制御回路(406)はパターン検出ブロック(402)と結合される。制御回路(406)は、1つまたは複数の選択ブロック(例えば、選択ブロック(422)、(424)、および(425))ならびに1つまたは複数のフリップフロップ(例えば、Dフリップフロップ(426)、(428)、(430)、および(432))を含む。選択ブロック(例えば、選択ブロック(422)、(424)、および(425))は、これに限定されないが、マルチプレクサを含み得る。選択ブロック(422)は、テストパターン検出ブロック(402)からのトリガ信号(412)、および第1のカウンタ(416)の1つまたは複数のカウント状態に対応する信号(413)を受け取るように構成される。
【0052】
フリップフロップ(例えば、フリップフロップ(426)、(428)、(430)、および(432))の各々は、クロック信号(410)およびリセット信号(419)を介して動作する。トリガ信号(412)を受け取る際またはそれに続いて、第1の選択ブロック(422)が、フリップフロップ(426)および(428)をトリガする。トリガされる際またはそれに続いて、フリップフロップ(426)および(428)は共同動作して、シフトフェーズに対応する1つまたは複数のカウント状態を生成するように第1のカウンタ(416)をトリガするイネーブル信号(436)、およびアサートされたテストモード制御信号をテストモード制御信号生成論理を介して生成するために用いられ得るイネーブル同期信号(438)を生成する。シフト終了カウント状態を受け取る際またはそれに続いて(例えば、(413)参照)、選択ブロック(422)で、フリップフロップ(例えば、フリップフロップ(426)、(428)、(430)、および(432))は非活性化され、イネーブル同期信号(438)は低レベルに達し、その結果、テストモード制御信号がデアサートされる。第2の選択ブロック(424)が、イネーブル同期信号(438)、およびウェイトカウンタ(420)の1つまたは複数のカウント状態に対応する信号(415)を受け取る。イネーブル同期信号(438)が、シフトフェーズの終了を示す低レベルに達する際またはそれに続いて(イネーブル同期信号(438)が、例えば論理1から論理0に、遷移するときなど)、第2の選択ブロック(424)は、1つまたは複数のカウント状態を生成するために第2のカウンタ418をトリガするカウントイネーブル信号(442)を生成するように、フリップフロップ(430)をトリガする。
【0053】
トリガされる際またはそれに続いて、第2のカウンタ418は、キャプチャ開始カウント状態から開始してキャプチャ終了カウント状態まで1つまたは複数のカウント状態を生成する(例えば、各クロックサイクルで、キャプチャ開始カウント状態からキャプチャ終了カウント状態までのカウント状態をデクリメントする)。また、第3の選択ブロック(425)が、イネーブル信号(442)、および第2のカウンタ418の1つまたは複数のカウント状態に対応する信号(例えば、(417)参照)を受け取る。イネーブル信号(442)および第2のカウンタ418からの1つまたは複数のカウント状態に対応する信号(417)を受け取る際またはそれに続いて、第3の選択ブロック(425)は、デアサートされたテストモード制御信号をテストモード制御信号生成論理を介して生成するために用いられるイネーブル同期キャプチャ信号(444)を生成するように、フリップフロップ(432)をトリガする。キャプチャ終了カウント状態に対応する信号(417)を受け取る際またはそれに続いて、第3の選択ブロック(425)はフリップフロップ(432)を非活性化し、その結果、イネーブル同期キャプチャ信号(444)は、テストモード制御信号のデアサートにつながる低レベルに達する。
【0054】
図4Bは、一実施形態に従った図4Aの集積回路(400)の動作を示すプロセスフローの例示的な図である。図4Bにおいて、集積回路(400)のスキャンテストの複数の状態をブロック(450)〜(458)に示してある。複数の状態は、これらに限定されないが、初期化状態(450)、アイドル状態(452)、シフト動作(454)、キャプチャ動作の準備(456)、およびキャプチャ動作(456)を含む。一実施形態において、初期化状態の間(450)、集積回路(400)のスキャンテストは、テスタ(例えば、図1Aのテスタ(102))からクロック信号(410)を受け取ることによって初期化される。アイドル状態(452)の間、シフトフェーズまたはキャプチャフェーズが開始する前に、スキャンテストには1つまたは複数のウェイトサイクルがある。テストパターン検出ブロック(402)がテストパターンのシフトフェーズに対応するパターンを検出(例えば、(460)参照)する際またはそれに続いて、シフト動作が開始する(例えば、(454)参照)。シフト動作(454)の間、カウンタ回路(404)は、シフトフェーズに対応するカウント状態を生成し始める。
【0055】
制御回路(406)は、カウンタ回路(404)をトリガするようにカウントイネーブル信号(436)を生成し、また、制御回路(406)は、イネーブル同期信号(438)、およびイネーブル同期信号(438)に基づいてアサートされたテストモード制御信号も生成する。第1のカウンタ(416)は、テストパターンのシフトフェーズに対応するパターンを検出する際またはそれに続いてトリガされ、第1のカウンタ(416)がトリガされると、第1のカウンタ(416)は、レジスタブロック(414)からシフト開始カウント状態を取得し、シフトフェーズに対応する1つまたは複数のカウント状態を生成する(例えば、第1のカウンタ(416)は、各クロックサイクルでシフト開始カウント状態からシフト終了カウンタ状態までのカウント状態をデクリメントする)。この1つまたは複数のカウント状態は、シフト開始カウント状態から始まり生成される。テストモード制御信号が、第1のカウンタ(416)を介して生成された1つまたは複数のカウント状態の期間中、アサートされたままであることに留意されたい。
【0056】
第1のカウンタ(416)のカウント状態がシフト終了カウント状態(例えば、ゼロカウント)に達するまで、第1のカウンタ(416)は、そのカウント状態を(例えば、シフト開始カウント状態からダウンカウントすることによって)変化させる。第1のカウンタ(416)のカウント状態がシフト終了カウント状態に達する際またはそれに続いて(例えば、図4Aの信号(413)参照)、シフト動作(454)は終了し((462)に示す)、テストモード制御信号はデアサートされ、集積回路(400)は準備キャプチャ動作を実行する((456)に示す)。キャプチャ動作の準備の間、ウェイトカウンタ(420)はトリガされる。トリガされる際またはそれに続いて、ウェイトカウンタ(420)は、1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態を生成する。1つまたは複数のウェイトサイクルを完了する際またはそれに続いて(例えば、図4Aの信号(415)参照)、第2のカウンタ418はトリガされ、キャプチャ動作((458)に示す)が(466)で始まる。
【0057】
キャプチャ動作(458)の間、第2のカウンタ418は、レジスタブロック(414)からキャプチャ開始カウント状態を取得し、キャプチャフェーズに対応する1つまたは複数のカウント状態を(例えば、各クロックサイクルでキャプチャ開始カウント状態からキャプチャ終了カウント状態までのカウント状態をデクリメントすることによって)生成する。制御回路(406)は、カウンタ回路(404)をトリガするようにカウントイネーブル信号(442)を生成し、かつ、イネーブル同期信号(444)、およびイネーブル同期信号(444)に基づくデアサートされたテストモード制御信号も生成する。第2のカウンタ418のカウント状態がキャプチャ終了カウント状態に達するまで、第2のカウンタ418はカウント状態を(例えば、キャプチャ開始カウント状態からダウンカウントすることによって)変化させる。第2のカウンタ418のカウント状態がキャプチャ終了カウント状態に達する際またはそれに続いて、キャプチャ動作は終了し(466に示す)、集積回路(400)はアイドル状態(452)に戻る。開示する技術の集積回路は、第1のシフトフェーズに対応するパターンの検出に基づいて動作するように構成され得、また、後続のシフトフェーズおよびキャプチャフェーズでは、集積回路は様々なカウンタを介して生成されたカウント状態に基づいて反復的に動作し得る。このような集積回路を図5Aから図6でさらに説明する。
【0058】
図5Aは、一実施形態に従った集積回路(500)におけるスキャンチェーンを介してスキャンテスト用のテストモード制御信号を生成することのできる第3の例示的な集積回路(500)を示す。集積回路(500)は、テストパターン検出ブロック(502)、カウンタ回路(504)、および制御回路(506)を含む。テストパターン検出ブロック(502)は、検出パターン(508)を受け取るように構成される。検出パターン(508)は、図3Aの検出パターン(308)と実質的に同等である。クロック信号(510)(例えば、図1Bのクロック信号(122))は、テスタ(例えば、図1Aのテスタ(102))から受け取られる。クロック信号(510)は、例えば、キャプチャフェーズの間(例えば、集積回路(500)内、または集積回路(500)と通信可能に結合されたデバイス内の)位相ロックループを用いて、内部生成され得る。テストパターン検出ブロック(502)は、テストパターンの第1のシフトフェーズの開始に対応するパターン(例えば、8’hAA)を検出するように構成される。テストパターンは、図3Aを参照して本明細書で説明するテストパターンと実質的に同等である。テストパターン検出ブロック(502)は、スキャンデータ入力ピンでのビット組合せに基づいてパターンを検出する。
【0059】
テストパターン検出ブロック(502)がパターンを検出すると、制御回路(506)はトリガされ、これにより、カウンタ回路(504)がトリガされる。カウンタ回路(504)は、トリガされる際またはそれに続いて、1つまたは複数のカウント状態を生成するよう構成される。カウンタ回路(504)は、シフトフェーズおよびクロック信号(510)に対応する1つまたは複数のカウント状態、ならびにキャプチャフェーズおよびクロック信号(510)または内部生成されたクロック信号に対応する1つまたは複数のカウント状態を生成するように構成される。カウンタ回路(504)は、レジスタブロック(514)、第1のカウンタ(516)、第2のカウンタ(518)、第1のウェイトカウンタ(520)、および第2のウェイトカウンタ(522)を含む。一実施形態において、レジスタブロック(514)、第1のカウンタ(516)、第2のカウンタ(518)、第1のウェイトカウンタ(520)、および第2のウェイトカウンタ(522)の各々は、クロック信号(510)およびリセット信号(519)を介して動作する。説明のため、この詳細な説明は1つのウェイトカウンタに言及するが、本明細書で開示する方法および集積回路の範囲は1つのウェイトカウンタの実装に限定されず、この範囲は2つ以上のウェイトカウンタの組合せを含むように拡張され得ることに留意されたい。
【0060】
レジスタブロック(514)は、1つまたは複数のレジスタを含む。レジスタブロック(514)は、シフト開始カウント状態、キャプチャ開始カウント状態、シフト終了カウント状態、キャプチャ終了カウント状態、およびウェイトサイクル数および期間を示す予め決められたカウント状態値、のうちの少なくとも1つを記憶するように構成される。シフト開始カウント状態とシフト終了カウント状態の間の期間は、テストモード制御信号がシフトフェーズのためにアサートされたままである期間に対応する。この期間は、期間という観点では、スキャンチェーンの最大の長さに対応し得る。キャプチャ開始カウント状態とキャプチャ終了カウント状態の間の期間は、テストモード制御信号がキャプチャフェーズのためにデアサートされたままである期間に対応する。集積回路(500)はテストインタフェース(521)も含み、テストインターフェース(521)は、レジスタブロック(514)と通信可能に関連付けられまたは接続され、またレジスタブロック(514)を制御するように、および、テストパターンに基づいて、シフト開始カウント状態、キャプチャ開始カウント状態、シフト終了カウント状態、およびキャプチャ終了カウント状態のうちの少なくとも1つを変化させるように構成される。テストインタフェース(521)の例は、これらに限定されないが、JTAGインタフェースおよび埋め込みコアテストインタフェースを含む。
【0061】
第1のカウンタ(516)および第2のカウンタ(518)は、レジスタブロック(514)と結合されて、そこから、それぞれ、シフト開始カウント状態およびキャプチャ開始カウント状態を取得する。テスタからのクロック信号(510)は、シフト動作およびキャプチャ動作のために第1のカウンタ(516)および第2のカウンタ(518)に用いられる。あるいは、一実施形態では、テスタからのクロック信号(510)が、シフト動作のための第1のカウンタ(516)をクロックするために用いられ、高速の内部生成のクロック信号(例えば、位相ロックループを用いて生成される)が、キャプチャ動作のために第2のカウンタ(518)に用いられる。
【0062】
第1のカウンタ(516)は、シフト開始カウント状態からシフト終了カウント状態(例えば、ゼロカウント)までのシフトフェーズに対応する1つまたは複数のカウント状態を生成するように構成される。第1のカウンタ(516)は、テストパターンの第1のシフトフェーズの開始に対応するパターンを検出する際またはそれに続いて、ならびに、テストパターンのキャプチャフェーズを終了する際またはそれに続いて、1つまたは複数のカウント状態を生成する。第2のカウンタ(518)は、テストパターンの1つまたは複数のキャプチャフェーズに対応する1つまたは複数のカウント状態を生成するよう構成される。第2のカウンタ(518)は、キャプチャ開始カウント状態からキャプチャ終了カウント状態(例えば、ゼロカウント)までの1つまたは複数のカウント状態を生成するように構成される。第1のカウンタ(516)および第2のカウンタ(518)は、ダウンカウンタを含むことができる。ダウンカウンタは、これに限定されないが、8ビットダウンカウンタを含むことができる。
【0063】
第1のウェイトカウンタ(520)は、シフトフェーズが開始する前に、1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態を生成するように構成される。第2のウェイトカウンタ(522)は、キャプチャフェーズが開始する前に、1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態を生成するように構成される。第1のウェイトカウンタ(520)および第2のウェイトカウンタ(522)は、レジスタブロック(514)と結合され、トリガされる際、トリガされる前、またはトリガされた後に、レジスタブロック(514)からのウェイトサイクル数および期間を示す予め決められたカウント状態値を取得するように構成される。レジスタブロック(514)は、第1のウェイトカウンタ(520)および第2のウェイトカウンタ(522)のための様々なカウント状態値を記憶することができる。集積回路(500)は、テストパターンのシフトフェーズに対応するシフト開始カウント状態からテストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの予め決められた数の遷移に対応する1つまたは複数のカウント状態を生成するように構成されたパターンカウンタ529をさらに含む。予め決められた数の遷移は、スキャンテスト中にスキャンチェーンに適用される予め決められた数のテストパターンを示す。パターンカウンタ529は、スキャンチェーンに適用されるテストパターンの数をカウントする。各テストパターンは、シフトフェーズおよびキャプチャフェーズを含むことができる。レジスタブロック(514)は、スキャンチェーンを介してスキャンテスト中に適用可能なテストパターンの最大数を示すパターンカウンタ529の初期のカウント状態を記憶する。パターンカウンタ529は、レジスタブロック(514)からこの初期のカウント状態を取得し、初期カウント状態から始まる1つまたは複数のカウント状態を生成する。
【0064】
第1のウェイトカウンタ(520)は、テストパターンの第1のシフトフェーズに対応するパターンを検出する際またはそれに続いて第1のウェイトカウンタ(520)がトリガされるように、制御回路(506)と結合される。トリガされる際またはそれに続いて、第1のウェイトカウンタ(520)は、1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態を生成する。1つまたは複数のウェイトサイクルを終了する際またはそれに続いて(例えば、(513)参照)、第1のウェイトカウンタ(520)は、シフトフェーズに対応する1つまたは複数のカウント状態を生成するように、第1のカウンタ(516)をトリガする。トリガされる際またはそれに続いて、第1のカウンタ(516)は、レジスタブロック(514)からシフト開始カウント状態を取得し、かつ、シフト開始カウント状態から開始し、シフト終了カウント状態(例えば、(515)参照)(例えば、ゼロカウント)まで継続することなどにより、シフトフェーズに対応する1つまたは複数のカウント状態を生成する。第1のカウンタ(516)のシフト終了カウント状態(例えば、(515))は、キャプチャフェーズの前に1つまたは複数のウェイトサイクルを生成するように、第2のウェイトカウンタ(522)をトリガする。
【0065】
第2のウェイトカウンタ(522)の1つまたは複数のウェイトサイクル(例えば、(517)参照)を完了する際またはそれに続いて、第2のカウンタ(518)はトリガされる。トリガされる際またはそれに続いて、第2のカウンタ(518)は、キャプチャフェーズに対応する1つまたは複数のカウント状態を生成する。第2のカウンタ(518)は、キャプチャ開始カウント状態から開始し、キャプチャ終了カウント状態(例えば、ゼロカウント)まで継続するカウント状態を生成する。第2のカウンタ(518)のキャプチャ終了カウント状態(例えば、(523)参照)は、パターンカウンタ529のトリガを導き、パターンカウンタ529は、テストパターンのシフトフェーズに対応するシフト開始カウント状態からテストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの予め決められた数の許容遷移を示す初期カウント値に初期化される。トリガされる際またはそれに続いて、パターンカウンタ(521)は、1つのカウント状態だけ変化する。カウント状態のこの変化は、デクリメントとすることができる。パターンカウンタ529のカウント状態(例えば、(546)を参照)の変化が完了する際またはそれに続いて、第1のカウンタ(516)は再びトリガされて、後続のシフトフェーズに対応する1つまたは複数のカウント状態を生成する。パターンカウンタ529は、テストパターンのシフトフェーズに対応するシフト開始カウント状態からテストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの予め決められた数の遷移のために第1のカウンタ(516)をトリガするように構成される。一実施形態では、予め決められた数の遷移を完了する際またはそれに続いて、テストパターンブロック(502)は、後続のシフトフェーズを検出するようにトリガされる(例えば、(549)参照)。
【0066】
テストパターン検出ブロック(502)は、制御回路(506)と結合され、かつ、テストパターンの第1のシフトフェーズの開始に対応するパターンを検出する際またはそれに続いて制御回路(506)をトリガするように構成され、これにより、カウンタ回路(504)をトリガする。制御回路(506)は、1つまたは複数の選択ブロック(例えば、選択ブロック(524)、(525)、(526)、および(527))ならびに1つまたは複数のフリップフロップ(例えば、Dフリップフロップ(528)、(530)、(532)、および(534))を含む。フリップフロップ(例えば、フリップフロップ(528)、(530)、(532)、および(534))は、クロック信号(510)およびリセット信号(519)を介して動作する。第一の選択ブロック(524)が、テストパターン検出ブロック(502)からのトリガ信号(512)、および第1のウェイトカウンタ(520)の1つまたは複数のカウント状態(例えば、(513)参照)を取得するように構成される。トリガ信号(512)を受け取る際またはそれに続いて、第1のシフトフェーズの前の1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態を生成するために第1のウェイトカウンタ(520)をトリガするイネーブル信号を生成するように、第1の選択ブロック(524)はフリップフロップをトリガする。1つまたは複数のウェイトサイクル(例えば、(513)参照)が終了すると、第1のカウンタ(516)がトリガされる。トリガされる際またはそれに続いて、第1のカウンタ(516)は、シフト開始カウント状態から開始し、シフト終了カウント状態(例えば、(515)参照)を継続することなどにより、第1のシフトフェーズに対応する1つまたは複数のカウント状態を生成する。
【0067】
また、第1のカウンタ(516)をトリガすると、第2の選択ブロック(525)がトリガされ、これがイネーブル同期信号(540)を生成するようにフリップフロップ(530)をトリガし、また、アサートされたテストモード制御信号が、テストモード制御信号生成論理を介してイネーブル同期信号(540)に基づき生成される。第1のカウンタ(516)のシフト終了カウント状態(例えば、(515)参照)は、第2の選択ブロック(525)を非活性化し、これにより、イネーブル同期信号(540)はテストモード制御信号をデアサートに導くロー状態に(例えば、論理1から論理0に遷移することによって)達する。第3の選択ブロック(526)が、イネーブル同期信号(540)、および第2のウェイトカウンタ(522)の1つまたは複数のカウント状態(例えば、(517)参照)を受け取るように構成される。第3の選択ブロック(526)は、論理1から論理0にイネーブル同期信号(540)が変化する際またはそれに続いてトリガされる。トリガされる際またはそれに続いて、第3の選択ブロック(526)は、イネーブルキャプチャ信号(542)を生成するようにフリップフロップ(532)をトリガする。イネーブルキャプチャ信号(542)は、キャプチャフェーズの前に1つまたは複数のウェイトサイクルに対応する1つまたは複数のカウント状態を生成するように、第2のウェイトカウンタ(522)をトリガする。
【0068】
第2のウェイトカウンタ(522)の1つまたは複数のウェイトサイクル(例えば、(517)参照)が完了すると、第2のカウンタ(518)がトリガされる。トリガされる際またはそれに続いて、第2のカウンタ(518)はキャプチャフェーズに対応する1つまたは複数のカウント状態を生成する。また、第2のカウンタ(518)の1つまたは複数のカウント状態(例えば、(523)参照)は、第4の選択ブロック(527)のトリガを導き、これによりフリップフロップ(534)がトリガされて、イネーブル同期キャプチャ信号(544)が生成される。デアサートされたテストモード制御信号が、テストモード制御信号生成論理を介してイネーブル同期キャプチャ信号(544)に基づき生成される。第2のカウンタ(518)のキャプチャ終了カウント状態(例えば、(523)参照)が、選択ブロック(527)を非活性化し、選択ブロック(527)は、フリップフロップ(534)を非活性化し、かつ、第1のウェイトカウンタ(520)をトリガして、後続のシフトフェーズの前に1つまたは複数のウェイトサイクルを生成する。キャプチャ終了カウント状態は、パターンカウンタ529をトリガし、パターンカウンタ529により、集積回路(500)は予め決められた数の遷移の間、周期的に動作できる。
【0069】
図5Bは、一実施形態に従った図5Aの集積回路(500)の動作を図示するプロセスフローの例示的な図である。図5Bにおいて、集積回路(500)のスキャンテストの複数の状態をブロック(550)〜(562)に示す。動作の複数の状態は、これらに限定されないが、初期化状態(550)、アイドル状態(552)、シフト動作の準備(554)、シフト動作(556)、キャプチャ動作の準備(588)、キャプチャ動作(560)、およびテストパターンカウント動作(562)を含む。一実施形態では、初期化状態(550)の間、集積回路(500)の動作は、テスタ(例えば、図1Aの(102))からクロック信号(510)を受け取ることによって初期化される。アイドル状態(552)の間、第1のシフトフェーズを検出する前に1つまたは複数のウェイトサイクルがある。テストパターン検出ブロック(502)が、テストパターンの第1のシフトフェーズに対応するパターンを検出する際またはそれに続いて、集積回路(500)はシフトに備える(例えば、(554)参照)。
【0070】
シフト動作(554)の準備の間、第1のウェイトカウンタ(520)は、1つまたは複数のウェイトサイクルを生成するようにトリガされる。1つまたは複数のウェイトサイクルが完了する際またはそれに続いて、シフト動作が開始する(例えば、(556)参照)。シフト動作(556)の間、第1のカウンタ(516)は、第1のシフトフェーズに対応する1つまたは複数のカウント状態を生成するように(例えば、各クロックサイクルでシフト開始カウント状態からシフト終了カウント状態までのカウント状態をデクリメントするように)トリガされ、また、アサートされたテストモード制御信号が図5Aにおいて説明するように生成される。テストモード制御信号は、第1のカウンタ(516)を介して生成された1つまたは複数のカウント状態の期間のためにアサートされたままである。第1のカウンタ(516)のカウント状態がシフト終了カウント状態に到達する際またはそれに続いて、シフト動作は終了する((568)に示す)。(558)では、キャプチャフェーズに備えるようにキャプチャ動作の準備が実行される。キャプチャ動作の準備(558)は、第2のウェイトカウンタ(522)を介する1つまたは複数のウェイトサイクルの生成も必要とする。
【0071】
1つまたは複数のウェイトサイクルが完了する際またはそれに続いて、キャプチャ動作が始まる(例えば、(570)参照)。(560)では、キャプチャ動作は、図5Aを参照して本明細書で前述したように、第2のカウンタ(518)をトリガすることによって実行される。また、キャプチャ動作の間(例えば、(560)参照)、デアサートされたテストモード制御信号が生成される。キャプチャ終了カウント状態を生成する際またはそれに続いて、キャプチャ動作(560)は終了する(例えば、(574)参照)。第2のカウンタ(518)のカウント状態がキャプチャ終了カウント状態に到達する際またはそれに続いて、パターンカウンタ529のカウント状態が、1つのカウント状態だけ変化させる(例えば、(562)参照)。パターンカウンタ529が、予め決められた数の遷移に対応する最小のカウント状態(例えば、ゼロカウント)を保持していない場合、動作(554)、(556)、(558)、および(560)は予め決められた数の遷移のために実行される。予め決められた数の遷移(例えば、574参照)が完了する際またはそれに続いて、プロセスは再び(550)で初期化される。
【0072】
図6は、別の実施形態に従った図5Aの集積回路(500)の動作を図示するプロセスフローの例示的な図である。図6において、集積回路(500)のスキャンテストの複数の状態をブロック(650)〜(656)に示す。動作の複数の状態は、これらに限定されないが、初期化状態(650)、アイドル状態(652)、テストパターンカウント動作(654)、および繰り返しのシフト・キャプチャ動作(656)を含む。一実施形態において、初期化状態(650)の間、集積回路(500)のスキャンテストはテスタ(例えば、図1Aの(102))からクロック信号(510)を受け取ることによって初期化される。アイドル状態(652)の間、第1のシフトフェーズを検出する前に、1つまたは複数のウェイトサイクルがある。
【0073】
テストパターン検出ブロック(502)がテストパターンの第1のシフトフェーズに対応するパターンを検出する際またはそれに続いて(例えば、(658)参照)、パターンカウンタは1つのカウント状態だけカウント状態を変化させ(例えば、(654)参照)、1つのテストパターン(例えば、1つのシフトフェーズおよび1つのキャプチャフェーズを含むテストパターン)の適用を示す。1つのカウント状態だけパターンカウンタのカウント状態を変化させる際またはそれに続いて、シフト動作およびキャプチャ動作は、図5を参照して本明細書で説明したように実行される(例えば、(656)参照)。テストパターンの第1のシフトフェーズおよび後続のシフトフェーズのうちの1つに対応するシフト開始カウント状態からテストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの遷移((656)に示す)は、予め決められた数の遷移(例えば、予め決められた数のテストパターン)のために、このような各遷移の終了時にパターンカウンタのカウント状態を1つのカウント状態だけ変化させることによって、反復的に実行される。
【0074】
スキャンテストはSTUMPSアークテクチャ(Self‐Test Using MISRおよびPRPG構造であり、ここでMISRは多入力シグネチャレジスタであり、PRPGは疑似ランダムパターン生成器である)の動作を含むことができる。一実施形態において、スキャンテスト中のテスト時間を削減するために、内部STUMPSの数を増加させるためにスキャン圧縮が用いられ得、他方で、STUMPSの長さを削減し、内部シフト周波数を増大させ、シフトフェーズとキャプチャフェーズの間のアイドル時間を削減させる。別の実施形態において、1つまたは複数の内部STUMPSが、組合せスキャン圧縮論理および/または順次スキャン圧縮論理によって駆動され得る。組合せスキャン圧縮論理および/または順次スキャン圧縮論理によって駆動される1つまたは複数の内部STUMPSは、任意選択のMISRおよびPRPG要素を含むことができる。さらに、一実施形態においては、より高い周波数でのスキャンシフト動作をサポートするように、1つまたは複数のフリップフロップをスキャン入力ピンおよびスキャン出力ピンに設置することができる。フリップフロップの同じセットが、スキャンイネーブル信号の制御下でスキャンチェーンへテストパターンを駆動するのとは別に、ロードイネーブル信号の制御下でクロックおよびスキャンチェーンの制御のために内部レジスタへ代替のパターンを駆動させるためにも用いられ得、かつ、シフトフェーズの開始を検出するために検出パターンを駆動するためにも用いられ得る。
【0075】
スキャン入力ピンでのフリップフロップは、シフトフェーズの最後で初期化され得、フリップフロップにおけるテストパターンが、現在のテストパターンをスキャンチェーンの外に転送し、かつ後続のテストパターンをスキャンチェーンに適用する準備をする間に用いられ得る。フリップフロップにおけるテストパターンは、2つの連続したシフト動作の間に保持されなければならない。しかし、シフトフェーズの開始を示す検出パターンは、2つのテストパターンの間に発生することがある。このような場合、フリップフロップにおけるテストパターンが妨害され、その結果、テストパターンが破損する。上記の問題を軽減するために、前のスキャンテストサイクル中にフリップフロップの入力に移動したテストパターンは、保存され、後続のスキャンテストサイクル中に再び使用される。一実施形態において、検出パターンおよびテストパターンが、フリップフロップの異なるセットを通過し、予め決められた遅延が、前もって記憶されたテストパターンを保存しかつ再利用するように、パターンの検出および後続のシフトフェーズの開始の後に生じる。この結果、検出パターンの適用は、テストパターンの適用中にフリップフロップの状態を妨害しない。フリップフロップを含む例示的な集積回路を図7Aに示す。
【0076】
図7Aは、一実施形態に従った、スキャンテス中にシフトフェーズを制御することのできる1つまたは複数のフリップフロップを含む例示的な集積回路(700)を示している。集積回路(700)は、フリップフロップの第1のセット(702)およびフリップフロップの第2のセット(704)、テストパターン検出ブロック(706)、STUMP(708)、第1の選択ブロック(710)、ならびに第2の選択ブロック(712)を含む。テストパターン検出ブロック(706)は、図2のテストパターン検出ブロック(202)と実質的に同等とすることができ、図3A図4A、および図5Aを参照して本明細書で説明したように、様々な方式で実装することができる。
【0077】
フリップフロップの第1のセット(702)は、第1のクロック信号(714)を介して動作し、フリップフロップの第2のセットは、クロック信号(716)を介して動作する。第1の選択ブロック(710)は、検出パターン(718)を受け取るように構成され、第2の選択ブロック(712)はテストパターン(717)を受け取るように構成される。一実施形態において、第1の選択ブロック(710)および第2の選択ブロック(712)の各々は、イネーブル信号とイネーブル同期信号(719)の組合せを受け取るように構成され、かつ、イネーブル信号とイネーブル同期信号(719)の組合せを受け取る際にトリガされる。イネーブル信号とイネーブル同期信号(719)の組合せは、例えば、図2の制御回路(206)と実質的に同等の制御回路を介して生成され得る。第1の選択ブロック(710)により、シフトフェーズの開始前にテストモード制御信号が確実にハイにアサートされる。第1のクロック信号(714)(例えば、図1Bのクロック信号(122))は、テスタ(例えば、図1Aの(102))から受け取られる。テストパターン検出ブロック(706)は、フリップフロップの第1のセット(702)を介して検出パターン(718)を受け取るように構成され、その結果、検出パターン(718)に基づいて、テストパターン(717)の第1のシフトフェーズの開始に対応するパターンを検出する。フリップフロップの第1のセット(702)は、テストパターン検出ブロック(706)が検出パターン(718)を受け取った後およびシフトフェーズに対応するパターンを検出する際に、第1の予め決められた遅延を生成する。
【0078】
第2の選択ブロック(712)は、フリップフロップの第2のセット(704)を介して、テストパターン(717)がSTUMP(708)に遷移するのを制御する。フリップフロップの第2のセット(704)は、第2の予め決められた遅延のための先行するシフトフェーズに対応するテストパターンを記憶し、第2の予め決められた遅延が完了する際にシフトフェーズを初期化することができる。第2の選択ブロック(712)は、イネーブル信号およびイネーブル同期信号(718)を受け取る際またはそれに続いて、フリップフロップの第2のセット(704)を介してテストパターン(717)をSTUMP(708)に送信する。テストパターン(717)をSTUMP(708)へ送信する際の第2の予め決められた遅延により、シフト動作の開始前に、テストモード制御信号は確実にハイにアサートされる。図7Aの集積回路(700)の動作を、図7Bを参照して説明する。
【0079】
図7Bは、一実施形態に従った、図7Aの集積回路(700)の動作を図示するプロセスフローの例示的な図である。図7Bにおいて、複数の動作の状態がブロック(720)から(726)に示されている。動作の複数の状態は、これらに限定されないが、選択(720)、シフトの準備(722)、シフト動作(724)、およびキャプチャ動作(726)を含む。一実施形態において、選択の間(720)、フリップフロップの第1のセット(702)またはSTUMP(706)のうちの1つが、クロック信号を受け取るために選択される。フリップフロップの第1のセット(702)を選択する際またはそれに続いて、シフトフェーズを示す情報を含む検出パターン(718)が、パイプラインフリッププロップの第1のセット(702)を介して生成された第1の予め決められた遅延の後に、テストパターン検出ブロック(706)にシフトされ、シフトフェーズに対応するパターンが、検出パターン(718)に基づいて検出される(例えば、(728)参照)。パターンを検出する際またはそれに続いて(例えば、(722)参照)、シフト動作の準備が始まり、第2の予め決められた遅延がパイプラインフリップフロップの第2のセット(704)を介してもたらされる。第2の予め決められた遅延が完了する際またはそれに続いて、STUMP(706)が選択され((720)参照)、フリップフロップの第2のセット(704)がテストパターン(717)をSTUMP(706)に送信して、後続のシフトフェーズを初期化する(例えば、(730)参照)。(724)で、シフト動作が実行され、その後、(726)でのキャプチャ動作が続く。シフト動作およびキャプチャ動作は、図3Aから図5Bを参照して本明細書で説明したとおりである。
【0080】
図8は、一実施形態に従った、集積回路におけるスキャンチェーンを介したスキャンテストのためのテストモード制御信号を生成する方法(800)のフロー図を示す。テストモード制御信号は、これらに限定されないが、テストパターンのシフトフェーズおよびキャプチャフェーズを制御するためのスキャンイネーブル信号、ならびに集積回路内のスキャンチェーン(例えば、図1Aのスキャンチェーン(108))へのクロックを制御するため、および、スキャンチェーンの選択的動作のためにスキャンチェーンの入力および出力を制御するためのロードイネーブル信号を含み得る。方法(800)は動作(802)で始まる。動作(802)で、検出パターンに基づき、テストパターンのシフトフェーズに対応する第1のパターンの検出が、(例えば、図2のテストパターン検出ブロック(202)を用いて)実行され、または、テストパターンのシフトフェーズに対応する第1のパターンの検出およびテストパターンのキャプチャフェーズに対応する第2のパターンの検出が、(例えば、図2のテストパターン検出ブロック(202)を用いて)実行される。一実施形態において、第1のパターン(例えば、8’hAA)および第2のパターン(例えば、8’h55)は、検出パターンにおいて検出される。検出パターンは、テストパターンのシフトフェーズの開始および/またはテストパターンのキャプチャフェーズの開始を示す情報を含む。テストパターンは、テストベクタと、スキャンテスト中に各シフトフェーズおよび各キャプチャフェーズに対応するクロック信号のクロックサイクル数を示す情報とを含む。一実施形態においては、動作(804)で、シフトフェーズに対応する1つまたは複数のカウント状態もしくはキャプチャフェーズに対応する1つまたは複数のカウント状態が、第1のパターンおよび第2のパターンのうちの少なくとも1つを検出する際またはそれに続いて、カウンタ回路(例えば、図3Aのカウンタ回路(304)、図4Aのカウンタ回路(404)、図5Aのカウンタ回路(504))を介して、(例えば、図3A図4Aおよび図5Aを参照して本明細書で説明した、1つまたは複数のカウンタを用いて)生成される。
【0081】
シフトフェーズに対応する1つまたは複数のカウントは、第1のパターンを検出する際またはそれに続いて生成され、キャプチャフェーズに対応する1つまたは複数のカウント状態は、第2のパターンを検出する際またはそれに続いて生成される。シフトフェーズに対応する1つまたは複数のカウント状態は、シフト開始カウント状態とシフト終了カウント状態の間のカウント状態を含む。シフト開始カウント状態とシフト終了カウント状態の間の期間は、シフトフェーズに対応するクロック信号のクロックサイクル数と関連付けられている。キャプチャフェーズに対応する1つまたは複数のカウント状態は、キャプチャ開始カウント状態とキャプチャ終了カウント状態の間のカウント状態を含む。キャプチャ開始カウント状態とキャプチャ終了カウント状態の間の期間は、キャプチャフェーズに対応するクロック信号のクロックサイクル数と関連付けられている。一実施形態において、動作(806)では、テストモード制御信号は、シフトフェーズに対応する1つまたは複数のカウント状態およびキャプチャフェーズに対応する1つまたは複数のカウント状態に基づいて、生成され、その後制御される。テストモード制御信号の生成および制御は、図3A図7Bを参照して本明細書で説明してある。
【0082】
一実施形態において、シフトフェーズに対応するパターンを検出する際、第1のカウンタのカウント状態がシフト開始カウント状態として生成される。テストモード制御信号は、第1のカウンタのカウント状態が第1の予め決められたカウント状態である場合にアサートされる。第1のカウンタのカウント状態は、スキャンテストのシフトフェーズ中に、シフト開始カウント状態からシフト終了カウント状態に変化する。テストモード制御信号は、第1のカウンタのカウント状態がシフト終了カウント状態に変化する場合にデアサートされる。カウンタ回路のウェイトカウンタの1つまたは複数のカウント状態が、第1のカウンタのカウント状態がシフト終了カウント状態である場合に、1つまたは複数のウェイトサイクルに対応して生成される。カウンタ回路の第2のカウンタのカウント状態が、この1つまたは複数のウェイトサイクルが終了した後に、キャプチャ開始カウント状態として生成される。第2のカウンタのカウント状態は、キャプチャフェーズ中にキャプチャ開始カウント状態からキャプチャ終了カウント状態へ変化し、この実施形態は図4A図4Bを参照して本明細書に示してある。
【0083】
一実施形態において、テストパターンのシフトフェーズに対応するシフト開始カウント状態からテストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの間の予め決められた数の遷移に対応する1つまたは複数のカウント状態に対し、第1のシフトフェーズに対応するパターンを検出することと、1つのカウント状態だけパターンカウンタのカウント状態を変化させることのうちの1つの際に、第1のウェイトサイクルに対応する第1のウェイトカウンタの1つまたは複数のカウント状態が生成される。カウンタ回路の第1のカウンタのカウント状態が、第1のウェイトサイクルが終了した後に、シフト開始カウント状態として生成される。テストモード制御信号は、第1のカウンタのカウント状態がシフト開始カウント状態である場合にアサートされる。第1のカウンタのカウント状態は、シフト開始カウント状態からシフト終了カウント状態に変化する。テストモード制御信号は、第1のカウンタのカウント状態がシフト終了カウント状態に変化する場合にデアサートされる。第2のウェイトサイクルに対応する第2のウェイトカウンタの1つまたは複数のカウント状態は、第1のカウンタのカウント状態がシフト終了カウント状態である場合に生成される。カウンタ回路の第2のカウンタのカウント状態が、第2のウェイトサイクルが終了した後に、キャプチャ開始カウント状態として生成される。第2のカウンタのカウント状態は、スキャンテストのキャプチャフェーズ中に、キャプチャ開始カウント状態からキャプチャ終了カウント状態に変化する。テストパターンのシフトフェーズに対応するシフト開始カウント状態からテストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの間の予め決められた数の遷移に対応するカウンタ回路のパターンカウンタの1つまたは複数のカウント状態は、1つのカウント状態だけ変化し、この実施形態は、図5A図5Bを参照して本明細書で示してある。
【0084】
さらに、一実施形態において、テストパターンの第1のシフトフェーズおよび後続のシフトフェーズのうちの1つに対応するシフト開始カウント状態からテストパターンのキャプチャフェーズに対応するキャプチャ終了カウント状態までの予め決められた数の遷移に対応する1つまたは複数のカウント状態のために、カウンタ回路のパターンカウンタの1つまたは複数のカウント状態が、第1のシフトフェーズの検出、および前のキャプチャフェーズの終了のうちの1つの際に、1つのカウント状態だけ変化する。カウンタ回路の第1のカウンタのカウント状態が、パターンカウンタの1つまたは複数のカウント状態を1つのカウント状態だけ変化させる際に、シフト開始カウント状態として生成される。テストモード制御信号は、第1のカウンタのカウント状態がシフト開始カウント状態である場合にアサートされる。第1のカウンタのカウント状態は、スキャンテストのシフトフェーズ中に、シフト開始カウント状態からシフト終了カウント状態へ変化する。テストモード制御信号は、第1のカウンタのカウント状態がシフト終了カウント状態に変化する場合にデアサートされる。カウンタ回路の第2のカウンタのカウント状態が、スキャンテストのキャプチャフェーズ中に、キャプチャ開始カウント状態からキャプチャ終了カウント状態に変化し、この実施形態は、図6を参照して本明細書で説明してある。
【0085】
本明細書で開示した1つまたは複数の例示的な実施例の利点は、スキャンパターンを適用する間に内部スキャンイネーブルの生成および制御のために、集積回路内に追加の回路を使用することを含む。この開示する技術は、ピンを解放することによってより高度のマルチサイトテストを可能にし、また、イベント駆動型の直接メモリアクセスのアーキテクチャに基づき、集積回路とテスタの間のデータ転送中に、1つまたは複数のテスタ制御ピンとテストデータを同期させるためのデッドサイクルの必要がなくなる。イベント駆動型直接メモリアクセスをベースにしたテスタアーキテクチャにだけでなく、直接メモリアクセスアーキテクチャを用いて更新されるメモリを使用するデータ転送に基づき機能する全てのテスタにとって、開示した技術には利点がある。
【0086】
様々なデバイス、モジュール、分析器、生成器等を、ハードウェア回路(例えば、相補型金属酸化物半導体(CMOS)ベースの論理回路)および/またはハードウェアおよびソフトウェアの組合せ(例えば、機械可読媒体に組み込まれる)を用いてイネーブルおよび動作することができる。例えば、様々な電気的構造を、トランジスタ、論理ゲートおよび電気回路(例えば、ASIC回路および/またはデジタル信号プロセッサ(DSP)回路)を用いて組み込むことができる。また、個々のまたは別々なものとして様々な実施形態で説明および例示した回路は、他のシステムやモジュールと結合する、または組合せることができる。
【0087】
請求される発明の範囲内において、説明した例示的な実施形態に対する改変が可能であること、および多くのその他の実施形態が可能であることを、当業者は理解するであろう。
図1A
図1B
図2
図3A
図3B
図4A
図4B
図5A
図5B
図6
図7A
図7B
図8