図1は、或る実施形態に従った、集積回路(IC)におけるスキャンチェーン100の例を示す。図1に示すように、スキャンチェーン100は、多くのスキャン可能なストレージ要素1001、1002、...、100nによって形成される。スキャン可能なストレージ要素の各々(下記では、スキャン可能なストレージ要素を「ストレージ要素」とも称する)は、データ入力(「D」参照)及びスキャン入力(「SD」参照)などの入力と、データ出力(「Q」参照)及びスキャン出力(「SQ」参照)などの対応する出力とを有する。スキャンチェーン100は、機能モード又はシフトモードで動作するように構成される。或る実施形態では、ストレージ要素1001、1002、...、100nは、スキャンチェーンを構成するため直列方式で結合され得る。例えば、ストレージ要素(例えば、ストレージ要素1002)のデータ入力「D」が、先行するストレージ要素(ストレージ要素1001)のデータ出力「Q」に結合され、ストレージ要素(例えば、ストレージ要素1002)のスキャン入力「SD」が、先行するストレージ要素(ストレージ要素1001)のデータ出力「Q」に結合される。データ入力「D」と先行するストレージ要素のデータ出力「Q」との間に、幾つかの組合せ構成要素(例えば、1021、1022、1023、...)が存在し得る。スキャンチェーン100のストレージ要素の様々な構成を図2〜図21を参照してさらに説明する。
図2は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素の例を示す。例えば、ストレージ要素200が、スキャンチェーン100の第1のスキャン可能なストレージ要素1001の例とし得る。この実施形態では、ストレージ要素200は、ICにおけるスキャン要素をトグルしないようにすることよって電力を節減するために、ストレージ要素200のスキャン出力が機能モードにおいてプルアップされるように構成される。例えば、機能モードにおいてスキャン出力端子をプルアップすることによって、スキャン経路(これはスキャン出力端子によって駆動される)における組合せ論理切り替えによって生じる電力消費が低減され得る。
スキャン可能なストレージ要素200は、スキャン出力端子を駆動するためのスキャン出力バッファ320などのスキャン出力バッファに結合されるノード145を含む。この例示実施形態では、ノード145は、データ出力端子を駆動するためのデータ出力バッファ440にも結合される。ストレージ要素200は、スキャンイネーブル入力に応答して(データ入力を受け取るための)データ入力端子及び(スキャン入力を受け取るための)スキャン入力端子に選択的に結合されるように構成される。例えば、ストレージ要素200は、データ入力(「D」参照)とスキャン入力(「SD」参照)とを有するマルチプレクサ260を含む。スキャンイネーブル入力(SCAN)が、マルチプレクサ260のための選択ラインとして働く。マルチプレクサ260は、例えば、PMOSトランジスタ262、264、266、268並びにNMOSトランジスタ270、272、274、及び276の8個のMOSトランジスタを含むことによって構成される。付加的なトランジスタ280も、SCANを反転SCAN信号(SCANZ)に変換するために必要とされる。トランジスタ262及び264は、電源(VDD参照)とノード278の間で第1のプルアップ経路を構成し、ここで、トランジスタ262のゲートはデータ入力「D」に接続され、トランジスタ264のゲートはSCANに接続される。トランジスタ266及び268は、VDDとノード278の間で第2のプルアップ経路を構成し、トランジスタ266のゲートはスキャン入力「SD」に接続され、トランジスタ268のゲートはSCANZに接続される。トランジスタ270及び272は、ノード278と基準源(VSS参照)の間で第1のプルダウン経路を構成し、トランジスタ270のゲートはSCANに接続され、トランジスタ272のゲートはスキャン入力「SD」に接続される。トランジスタ274及び276は、ノード278とVSSの間で第2のプルダウン経路を構成し、トランジスタ274のゲートはSCANZに接続され、トランジスタ276のゲートはデータ入力「D」に接続される。
マルチプレクサ260の出力(ノード278)が、マルチプレクサ260の出力に基づいてノード145で信号を提供するように構成されるシフト回路150に接続される。図2に示す実施形態では、シフト回路150は1つ又は複数のラッチ/フリップフロップを含み、1つ又は複数のラッチ/フリップフロップは、インバータ110、トランスミッションゲート115、インバータ120、インバータ130、トランスミッションゲート125、トランスミッションゲート135、インバータ140、インバータ146、インバータ185、及びトランスミッションゲート190によって構成される。シフト回路150の図2に示す実施形態からの様々な変形があり得ることに留意されたい。インバータ110はマルチプレクサ260の出力に結合され、インバータ110の出力が、トランスミッションゲート115の入力に接続される。反転クロック入力(CLKZ)がトランスミッションゲート115に提供される。CLKZは、インバータ290を用いてクロック入力CLKを反転することによって提供され得る。トランスミッションゲート115の出力がノード195に接続される。インバータ130はノード195に接続される。トランスミッションゲート125はインバータ130の出力に接続される。トランスミッションゲート125の出力はインバータ120の入力に接続される。トランスミッションゲート125はクロック信号(CLK)に接続される。インバータ130の出力はノード197にも接続される。トランスミッションゲート135の入力がノード197に接続される。トランスミッションゲート135の出力がインバータ140に接続され、インバータ140はノード145に接続される。
データ出力バッファ440は、PMOSトランジスタ425及びNMOSトランジスタ430(インバータを構成する)を含む。トランジスタ425のソースは電源電圧(例えばVDD)に接続され、トランジスタ425のドレインはノード435に接続される。トランジスタ430のソースは基準源(又は接地電圧、VSS参照)に接続され、トランジスタ430のドレインはノード435に接続される。両トランジスタ(425及び430)のゲートはノード145に接続される。データ出力端子はノード310に接続され、データ出力「Q」がノード310から取り出される。スキャン出力バッファ320は、PMOSトランジスタ302及びNMOSトランジスタ304を含む。トランジスタ302のソースは電源電圧(VDD)に接続され、トランジスタ302のドレインはノード310に接続される。トランジスタ302のゲートはノード145に接続される。トランジスタ304のソースは別のNMOSトランジスタ306のドレインに接続され、トランジスタ304のドレインはノード310に接続される。トランジスタ304のゲートもノード145に接続される。トランジスタ306のソースは基準源に接続され、トランジスタ306のドレインはトランジスタ304のソースに接続される。トランジスタ306のゲートはスキャンイネーブル入力(SCAN)に接続される。トランジスタ306は、SCANが0であるとき、VDDとVSSの間の直接経路をディセーブルするために用いられる。別のPMOSトランジスタ308が、スキャン出力「SQ」をプルアップするために用いられる。トランジスタ308のソースは電源VDDに接続され、トランジスタ308のドレインはノード310(これはスキャン出力「SQ」である)に接続される。トランジスタ308のゲートはスキャンイネーブル入力(SCAN)に接続される。ストレージ要素200のスキャン出力「sq」がノード310から取り出される。
ここでストレージ要素200の動作を説明する。マルチプレクサ260は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード278で転送させる。図2に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード278で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード278で転送される。説明のため、SCANが論理0である場合、トランジスタ262及び264を含むプルアップ経路がイネーブルされ、トランジスタ274及び276を含むプルダウン経路がイネーブルされる。したがって、トランジスタ262、264、274、及び276はインバータ構成を形成し、「D」の反転論理レベルがノード278に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード278で利用可能となる。シフト回路150は、ノード145において、ノード278における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115は透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるときトランスミッションゲート125が透過になり、これによりノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ440(インバータ)は、ノード145における値を反転させ、ノード435を論理0にする。データ出力「Q」がノード435(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。いくつかの他の実施形態において、データ入力「D」と同じ論理レベルであるデータ出力「Q」になるように、別のインバータがデータ出力バッファ440に付加され得る。SCANが論理0であるため、トランジスタ306はディセーブルされ、これはノード310へのデータ伝播を停止させる。同時に、トランジスタ308がイネーブルされ、これは、ノード310を論理1までプルアップさせる。スキャン出力端子はノード310に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理1に拘束される(これは、スキャン出力端子により駆動されるスキャン経路における組合せ論理切り替えに起因する、機能モードにおける電力低減を助け得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束するか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。
SCANが論理1であるとき、トランジスタ266及び268を含むプルアップ経路がイネーブルされ、トランジスタ270及び272を含むプルダウン経路がイネーブルされる。したがって、トランジスタ266、268、270、及び272はインバータ構成を形成し、「SD」の反転論理レベルがノード278に転送される。SCANが論理1であるとき、トランジスタ308はディセーブルされ、トランジスタ302、304、及び306はインバータ構成を形成するので、スキャン出力バッファ320はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード278の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1であるとき、ノード278は論理0であり、ノード145は論理1である。スキャン出力バッファ320は、スキャン出力sqに結合されるノード310で論理0を転送する。したがって、デバイス(IC)がシフトモードで動作するときスキャン入力「SD」の反転がスキャン出力「SQ」に転送される。
図3は、別の実施形態に従ったスキャンチェーン100の第1のストレージ要素の例を示す。例えば、ストレージ要素300を、スキャンチェーン100の第1のスキャン可能なストレージ要素1001の例とし得る。この実施形態では、ストレージ要素300は、ICにおけるスキャン要素をトグルしないようにすることによって電力を節減するために、ストレージ要素300のスキャン出力が機能モードにおいてプルダウンされるように構成される。
ストレージ要素300は、スキャン出力端子を駆動するためのスキャン出力バッファ340などのスキャン出力バッファに結合されるノード145を含む。この例示実施形態では、ノード145は、データ出力端子を駆動するためのデータ出力バッファ440にも結合される。ストレージ要素300は、スキャンイネーブル入力に応答して、(データ入力を受け取るための)データ入力端子と(スキャン入力を受け取るための)スキャン入力端子とに選択的に結合されるように構成される。例えば、ストレージ要素300は、データ入力(「D」参照)及びスキャン入力(「SD」参照)を有するマルチプレクサ260を含む。スキャンイネーブル入力(SCAN)が、マルチプレクサ260のための選択ラインとして働く。マルチプレクサ260は、例えば、PMOSトランジスタ262、264、266、268、並びにNMOSトランジスタ270、272、274、及び276の、8個のMOSトランジスタを含むことによって構成される。SCANを反転SCAN信号(SCANZ)に変換するために付加的なトランジスタ280も必要とされる。トランジスタ262及び264は、電源(VDD参照)とノード278との間で第1のプルアップ経路を構成し、トランジスタ262のゲートはデータ入力「D」に接続され、トランジスタ264のゲートはSCANに接続される。トランジスタ266及び268は、VDDとノード278の間で第2のプルアップ経路を構成し、トランジスタ266のゲートはスキャン入力「SD」に接続され、トランジスタ268のゲートはSCANZに接続される。トランジスタ270及び272は、ノード278と基準源(VSS)の間で第1のプルダウン経路を構成し、トランジスタ270のゲートはSCANに接続され、トランジスタ272のゲートはスキャン入力「SD」に接続される。トランジスタ274及び276は、ノード278とVSSの間で第2のプルダウン経路を構成し、トランジスタ274のゲートはSCANZに接続され、トランジスタ276のゲートはデータ入力「D」に接続される。
マルチプレクサ260の出力(ノード278)が、マルチプレクサ260の出力に基づいてノード145で信号を提供するように構成されるシフト回路150に接続される。図3に示す実施形態では、シフト回路150は1つ又は複数のラッチ/フリップフロップを含み、1つ又は複数のラッチ/フリップフロップは、インバータ110、トランスミッションゲート115、インバータ120、インバータ130、トランスミッションゲート125、トランスミッションゲート135、インバータ140、インバータ146、インバータ185、及びトランスミッションゲート190によって構成される。シフト回路150の図3に示す実施形態からの様々な変形があり得ることに留意されたい。インバータ110はマルチプレクサ260の出力に結合され、インバータ110の出力がトランスミッションゲート115の入力に接続される。反転クロック入力(CLKZ)がトランスミッションゲート115に提供される。トランスミッションゲート115の出力がノード195に接続される。インバータ130はノード195に接続される。トランスミッションゲート125はインバータ130の出力に接続される。トランスミッションゲート125の出力はインバータ120の入力に接続される。トランスミッションゲート125はクロック信号(CLK)に接続される。インバータ130の出力はノード197にも接続される。トランスミッションゲート135の入力がノード197に接続される。トランスミッションゲート135の出力がインバータ140に接続され、インバータ140はノード145に接続される。
図2を参照して説明したように、データ出力バッファ440は、PMOSトランジスタ425及びNMOSトランジスタ430(インバータを構成する)を含む。データ出力端子はノード330に接続され、そこからデータ出力「Q」が取り出される。スキャン出力バッファ340は、PMOSトランジスタ322及び324並びにNMOSトランジスタ326及び328を含む。トランジスタ322のソースは電源電圧(VDD)に接続され、トランジスタ322のドレインはトランジスタ324のソースに接続される。トランジスタ324のドレインは、ノード330に接続され、トランジスタ326のドレインにも接続される。トランジスタ324及び326のゲートはノード145に接続され、トランジスタ322のゲートはSCANZに接続される。NMOSトランジスタ328のドレインがノード330に接続され、トランジスタ328のゲートがSCANZに接続されて、(SCANZが論理1であるとき)機能モードにおいてトランジスタ328がプルダウントランジスタとして働かせる。さらに、トランジスタ322は、機能モードにおいてVDDとVSSの間の直接経路をディセーブルするために用いられる。(SCANZが論理0であるとき)シフトモードにおいて、トランジスタ328がディセーブルされ、トランジスタ322がイネーブルされ、それによって、シフトモードにおいてVDDとVSSの直接経路が提供されることに留意されたい。したがって、シフトモードにおいて、トランジスタ322、324、及び326が、インバータ構成を形成し、ノード145の値の反転をノード330に提供する。
ここでストレージ要素300の動作を説明する。マルチプレクサ260は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード278で転送させる。図3に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード278で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード278で転送される。説明のため、SCANが論理0である場合、トランジスタ262及び264を含むプルアップ経路がイネーブルされ、トランジスタ274及び276を含むプルダウン経路がイネーブルされる。したがって、トランジスタ262、264、274、及び276はインバータ構成を形成し、「D」の反転論理レベルがノード278に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード278で利用可能となる。シフト回路150は、ノード145において、ノード278における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115は透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるときトランスミッションゲート125が透過になり、これは、ノード197における値(論理0)をインバータ120に転送する。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ440(インバータ)は、ノード145における値を反転し、ノード435を論理0にする。データ出力「Q」がノード435(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。幾つかの他の実施形態において、データ入力「D」と同じデータ出力「Q」になるように、別のインバータがデータ出力バッファ440に付加され得る。SCANは論理0であるため、トランジスタ322はディセーブルされ、これは、ノード330へのデータ伝播を停止させる。同時に、トランジスタ328がイネーブルされ、これは、ノード330を論理0までプルダウンさせる。スキャン出力端子はノード330に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切替えに起因する機能モードにおける電力節減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理0に拘束するか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。
SCANが論理1であるとき、トランジスタ266及び268を含むプルアップ経路がイネーブルされ、トランジスタ270及び272を含むプルダウン経路がイネーブルされる。したがって、トランジスタ266、268、270、及び272はインバータ構成を形成し、「SD」の反転論理レベルがノード278に転送される。SCANが論理1であるとき、トランジスタ328はディセーブルされ、トランジスタ322、324、及び326はインバータ構成を形成するので、スキャン出力バッファ340はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード278の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合、ノード278は論理0であり、ノード145は論理1である。スキャン出力バッファ340は、スキャン出力端子「SQ」に結合されるノード310で論理0を転送する。したがって、デバイス(IC)がシフトモードで動作するときスキャン入力「SD」の反転がスキャン出力「SQ」に転送される。
スキャン出力はスキャンチェーン100の第1のストレージ要素1001においてプルアップ又はプルダウンされるので、スキャン出力の論理状態は固定される。本技術の様々な実施形態において、この情報を、後続のストレージ要素のための入力マルチプレクサ回路を設計するために利用する。入力マルチプレクサ回路をこのように設計することにより、ストレージ要素におけるトランジスタの数を減らすことができ、このような設計を図4〜図21を参照して説明する。さらに、様々な実施形態において、q及びsqの一方又は両方のゲーティングを行い得、このような実施形態を図4〜図21を参照して説明する。
図4は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素400は、ストレージ要素400によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合のストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素400は、(ストレージ要素400の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素400のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされるとき用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素400は、スキャン出力端子535を駆動するためスキャン出力バッファ550に結合されるノード145(第2のノード)を含む。この例示実施形態では、ノード145は、データ出力端子510を駆動するためデータ出力バッファ505にも結合される。この実施形態では、データ出力バッファ505はインバータとして示されている。ストレージ要素400は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、ノード362(第1のノード)で、データ入力「D」及びスキャン入力「SD」の一方に対応する信号(第1の信号)を提供するように構成される。入力回路360は、この信号をノード362でスキャンイネーブル入力(SCAN参照)などの選択信号に基づいて提供する。入力回路360は、ノード362に結合されるプルアップ構成要素及びプルダウン構成要素を含む。例えば、入力回路360は、ノード362と電源(VDD参照)の間で接続される2つのプルアップ経路を含む。第1のプルアップ経路は、データ入力「D」を受け取るための第1のスイッチと、スキャンイネーブル入力「SCAN」を受け取るための第2のスイッチとを含む。図4の実施形態に示すように、第1のスイッチの例にはPMOSトランジスタ365が含まれ得、第2のスイッチの例にはPMOSトランジスタ370が含まれ得、これらのトランジスタは、PMOSトランジスタ365のドレインがPMOSトランジスタ370のソースに接続されるように結合される。第2のプルアップ経路は、スキャン入力「SD」を受け取るため第3のスイッチ(例えばPMOSトランジスタ375)を含む。この実施形態では、PMOSトランジスタ365、370、及び375のゲートが、それぞれ、データ入力「D」、スキャンイネーブル入力「SCAN」、及びスキャン入力「SD」に接続され、PMOSトランジスタ370及び375のソースがノード362と結合される。入力回路360はさらに、ノード362と基準源(VSS参照)又は接地源との間で接続される2つのプルダウン経路を含む。第1のプルダウン経路が、スキャンイネーブル入力「SCAN」を受け取るための第4のスイッチと、スキャン入力「SD」を受け取るための第5のスイッチとを含む。図4の実施形態に示すように、第4のスイッチの例はNMOSトランジスタ380であり、第5のスイッチの例はNMOSトランジスタ385であり、これらのトランジスタは、NMOSトランジスタ380のソースがNMOSトランジスタ385のドレインに接続されるように結合される。第2のプルダウン経路が、データ入力「D」を受け取るため第6のスイッチを含む。図4に示すように、第6のスイッチの例にはNMOSトランジスタ390が含まれ得る。NMOSトランジスタ380、385、及び390のゲートが、それぞれ、スキャンイネーブル入力「SCAN」、スキャン入力「SD」、データ入力「D」と結合され、NMOSトランジスタ380及び390のドレインがノード362と結合される。機能モードにおいて「SD」入力が(例えば論理1に)固定されるので、入力回路260において10個のトランジスタが必要とされるのとは異なり、入力回路360は、6個のトランジスタしか必要としないように構成される。図4に示す実施形態では、第1のスイッチ、第2のスイッチ、第3のスイッチ、第4のスイッチ、第5のスイッチ、及び第6のスイッチは、PMOS又はNMOSトランジスタとして示されているが、これらは、例えば、BJTトランジスタ、ダイオードの組合せなど、MOSトランジスタに機能的に類似する他の構成要素を用いて構成されてもよい。
入力回路360の出力(例えばノード362)がシフト回路150に接続され、シフト回路150は、ノード362に対応する信号をノード145に転送するように構成される。シフト回路150は、ノード362から入力を取り込むインバータ110を含み、インバータ110の出力はトランスミッションゲート115に接続される。反転クロック入力CLKZがトランスミッションゲート115に与えられる。トランスミッションゲート115はノード195に接続される。インバータ130がノード195に接続される。別のトランスミッションゲート125が、インバータ130の出力に接続される。トランスミッションゲート125の出力が、別のインバータ120の入力に接続される。トランスミッションゲート125はクロック信号(CLK参照)に接続される。インバータ130の出力はノード197にも接続される。トランスミッションゲート135がノード197に接続される。トランスミッションゲート135の出力がインバータ140に接続され、インバータ140はノード145に接続される。データ出力バッファ505の入力はノード145に接続され、データ出力バッファ505の出力は、データ出力端子であるノード510に接続される。データ出力バッファ505はインバータを含む。ノード145はインバータ185に接続される。インバータ185の出力はノード152に接続され、ノード152はトランスミッションゲート190に接続される。トランスミッションゲート190は反転クロック信号CLKZによって制御される。トランスミッションゲート190は別のインバータ146を駆動する。インバータ146の出力もまたノード145に接続される。スキャン出力バッファ550は、PMOSトランジスタ515及びNMOSトランジスタ520によって構成されるインバータと、トランジスタ525(第3のMOSトランジスタ)と、トランジスタ530(第4のMOSトランジスタ)とを含む。トランジスタ515のソースが電源電圧(VDD)に接続され、トランジスタ515のドレインがノード535に接続される。トランジスタ515のゲートはノード145に接続される。トランジスタ520のソースは別のNMOSトランジスタ525のドレインに接続され、トランジスタ520のドレインはノード535に接続される。トランジスタ520(第3のMOSトランジスタ)のゲートもノード145に接続される。トランジスタ525のソースは接地電圧に接続され、トランジスタ525のドレインはトランジスタ520のソースに接続される。トランジスタ525のゲートはスキャンイネーブル入力(SCAN)に接続される。トランジスタ525は、SCANが0であるとき、VDDとVSSの間の直接経路をディセーブルするために用いられる。トランジスタ530(例えばPMOSトランジスタ)は、スキャン出力「SQ」をプルアップするために用いられる。トランジスタ530のソースは電源電圧に接続され、トランジスタ530のドレインはノード535(これはスキャン出力「SQ」である)に接続される。トランジスタ530のゲートはスキャンイネーブル入力(SCAN)に接続される。スキャン可能なストレージ要素400のスキャン出力(sq)はノード535から取り出される。
ここで、ストレージ要素400の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素400の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素400のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
説明のため、SCANが論理0である(スキャン入力「SD」が論理1である)場合、トランジスタ375及び380がディセーブルされ、トランジスタ370及び380がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362において利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるときトランスミッションゲート115は透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるときトランスミッションゲート125が透過になり、それによって、ノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ505(インバータ)は、ノード145における値を反転させ、ノード410を論理0にする。データ出力「Q」がノード510(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。幾つかの実施形態において、データ入力「D」と同じ論理のデータ出力「Q」を受け取るように、付加的なインバータがデータ出力バッファ505に追加され得る。SCANが論理0であるため、トランジスタ525がディセーブルされ、それによってノード535へのデータ伝播が停止する。同時に、トランジスタ530がイネーブルされ、それによってノード535が論理1にプルアップされる。スキャン出力端子はノード535に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理1に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。幾つかの実施形態において、スキャン入力「SD」と同じ論理のスキャン出力「SQ」を受け取るように、付加的なインバータがスキャン出力バッファ550に追加され得る。
SCANが論理1であるとき、トランジスタ370はディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)がインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ530がディセーブルされ、トランジスタ515、520、及び525がインバータ構成を形成するので、スキャン出力バッファ550はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ550は、スキャン出力sqに結合されるノード535で論理0を転送する。したがって、デバイス(IC)がシフトモードで動作するときスキャン入力「SD」の反転がスキャン出力「SQ」に転送される。
図5は、別の実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素500は、ストレージ要素500によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素500は、(ストレージ要素500の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素500のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされるとき用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理0である。
ストレージ要素500は、スキャン出力端子535を駆動するためスキャン出力バッファ550に結合されるノード145を含む。この例示実施形態では、ノード145は、データ出力端子510を駆動するためデータ出力バッファ505にも結合される。この実施形態では、データ出力バッファ505はインバータとして示されている。ストレージ要素500は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、ノード462(第1のノード)で、データ入力「D」及びスキャン入力「SD」の一方に対応する信号を提供するように構成される。入力回路460は、この信号をノード462で反転スキャンイネーブル入力(SCANZ参照)などの選択信号に基づいて提供する。入力回路460は、ノード462に結合されるプルアップ構成要素及びプルダウン構成要素を含む。例えば、入力回路460は、ノード462と電源(VDD参照)の間で接続される2つのプルアップ経路を含む。第1のプルアップ経路は、スキャン入力「SD」を受け取るための第1のスイッチと、データ入力「D」を受け取るための第2のスイッチとを含む。図5の実施形態に示すように、第1のスイッチの例にはPMOSトランジスタ465が含まれ得、第2のスイッチの例にはPMOSトランジスタ470が含まれ得、これらのトランジスタは、PMOSトランジスタ465のドレインがPMOSトランジスタ470のソースに接続されるように結合される。第2のプルアップ経路は、第1のスイッチと、反転スキャンイネーブル入力「SCANZ」を受け取るため第3のスイッチとを含む。第3のスイッチの例にはPMOSトランジスタ475が含まれ得る。PMOSトランジスタ475のソースがPMOSトランジスタ465のドレインに接続される。PMOSトランジスタ465、470、及び475のゲートが、それぞれ、スキャン入力「SD」、データ入力「D」、及び反転スキャンイネーブル入力「SCANZ」に接続され、PMOSトランジスタ470及び475のソースがノード462に結合される。入力回路460はさらに、ノード462と基準源(VSS参照)又は接地源との間で接続される2つのプルダウン経路を含む。第1のプルダウン経路が、反転スキャンイネーブル入力「SCANZ」を受け取るための第4のスイッチと、データ入力「D」を受け取るための第5のスイッチとを含む。第4のスイッチの例にはNMOSトランジスタ480が含まれ得、第5のスイッチの例にはNMOSトランジスタ485が含まれ、これらのトランジスタは、NMOSトランジスタ480のソースがNMOSトランジスタ485のドレインに接続されるように結合される。第2のプルダウン経路は、スキャン入力「SD」を受け取るため第6のスイッチを含む。第6のスイッチの例にはNMOSトランジスタ490が含まれ得る。NMOSトランジスタ480、485、及び490のゲートが、それぞれ、SCANZ、データ入力「D」、スキャン入力「SD」に結合され、NMOSトランジスタ480及び490のドレインがノード462に結合される。図5に示す実施形態では、「SD」入力が固定される(論理0又は論理1のいずれか)ので、入力回路260において10個のトランジスタが必要とされるのとは異なり、入力回路460は8個のトランジスタしか必要としないように構成される。この実施形態では、反転スキャンイネーブル入力「SCANZ」を生成するために2つのトランジスタが必要とされるので、図4を参照して説明した実施形態と比較すると、2つの付加的なトランジスタが必要とされることに留意されたい。図5に示す実施形態では、第1のスイッチ、第2のスイッチ、第3のスイッチ、第4のスイッチ、第5のスイッチ、及び第6のスイッチがPMOS又はNMOSトランジスタとして示されているが、これらのスイッチは、例えば、BJTトランジスタ、ダイオードの組合せなど、MOSトランジスタに機能的に類似する他の構成要素を用いて構成されてもよい。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。シフト回路150は、ノード462から入力を取り込むインバータ110を含み、インバータ110の出力がトランスミッションゲート115に接続される。反転クロック入力CLKZがトランスミッションゲート115に与えられる。トランスミッションゲート115はノード195に接続される。インバータ130がノード195に接続される。別のトランスミッションゲート125が、インバータ130の出力に接続される。トランスミッションゲート125の出力が、別のインバータ120の入力に接続される。トランスミッションゲート125はクロック信号(CLK参照)に接続される。インバータ130の出力はノード197にも接続される。トランスミッションゲート135がノード197に接続される。トランスミッションゲート135の出力がインバータ140に接続され、インバータ140はノード145に接続される。データ出力バッファ505の入力はノード145に接続され、データ出力バッファ505の出力は、ノード510(これはデータ出力端子である)に接続される。データ出力バッファ505はインバータを含む。ノード145はインバータ185に接続される。インバータ185の出力はノード152に接続され、ノード152はトランスミッションゲート190に接続される。トランスミッションゲート190は反転クロック入力CLKZによって制御される。トランスミッションゲート190は別のインバータ146を駆動する。インバータ146の出力もまたノード145に接続される。スキャン出力バッファ550は、PMOSトランジスタ515及びNMOSトランジスタ520を含む。トランジスタ515のソースが電源電圧(VDD)に接続され、トランジスタ515のドレインがノード535に接続される。トランジスタ515のゲートはノード145に接続される。トランジスタ520のソースは別のNMOSトランジスタ525のドレインに接続され、トランジスタ520のドレインはノード535に接続される。トランジスタ520のゲートもノード145に接続される。トランジスタ525のソースが接地電圧に接続され、トランジスタ525のドレインがトランジスタ520のソースに接続される。トランジスタ525のゲートはスキャンイネーブル入力(SCAN)に接続される。トランジスタ525は、SCANが0であるとき、VDDとVSSの間の直接経路をディセーブルするために用いられる。別のPMOSトランジスタ530が、スキャン出力「SQ」をプルアップするために用いられる。トランジスタ530のソースが電源電圧に接続され、トランジスタ530のドレインがノード535(これはスキャン出力「SQ」である)に接続される。トランジスタ530のゲートがスキャンイネーブル入力(SCAN)に接続される。スキャン可能なストレージ要素500のスキャン出力(sq)はノード535から取り出される。
ここで、ストレージ要素500の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素500の先行するストレージ要素(ストレージ要素300など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素500のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図5に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき(又はSCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で転送される。
説明のため、機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力において論理1が転送される。CLKがローであるとき、トランスミッションゲート115は透過になり、トランスミッションゲートの入力における論理1がノード195に転送され、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125は透過になり、それによって、ノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ505(インバータ)は、ノード145における値を反転させ、ノード510を論理0にする。データ出力「Q」がノード510(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ525がディセーブルされ、それによってノード535へのデータ伝播が停止する。同時に、トランジスタ530がイネーブルされ、それによってノード535が論理1にプルアップされる。スキャン出力端子はノード535に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理1に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480がディセーブルされ、トランジスタ465,475(プルアップ)及びトランジスタ490(プルダウン)がインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ530がディセーブルされ、トランジスタ515、520、及び525がインバータ構成を形成するので、スキャン出力バッファ550はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ550は、スキャン出力「SQ」に結合されるノード535で論理0を転送する。したがって、デバイスがシフトモードで動作するとき、反転スキャン入力「SD」がスキャン出力「SQ」に転送される。
図6は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素600は、ストレージ要素600によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素600は、(ストレージ要素600の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素600のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素600は、ノード725(スキャン出力端子)を駆動するためスキャン出力バッファ750に結合されるノード145を含む。この例示実施形態では、ノード145はまた、データ出力端子510を駆動するためデータ出力バッファ505に結合される。この実施形態では、データ出力バッファ505はインバータとして示されている。ストレージ要素600は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、図4を参照して既に説明されており、簡潔にするためその説明は提供しない。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ505の入力はノード145に接続され、データ出力バッファ505の出力は、ノード510(データ出力端子)に接続される。データ出力バッファ505はインバータを含む。スキャン出力バッファ750もノード145に接続される。スキャン出力バッファ750は、PMOSトランジスタ705(第1のMOSトランジスタ)、インバータ(PMOSトランジスタ710及びNMOSトランジスタ715を含む)、及びNMOSトランジスタ720(第2のMOSトランジスタ)を含む。トランジスタ705のソースが電源電圧(VDD)に接続され、トランジスタ705のドレインがトランジスタ710のソースに接続される。トランジスタ710のドレインが、ノード725に接続され、トランジスタ715のドレインにも接続される。トランジスタ710及び715のゲートがノード145に接続され、トランジスタ705のゲートがSCANZに接続される。NMOSトランジスタ720のドレインがノード725に接続され、トランジスタ720のゲートがSCANZに接続され、そのため、トランジスタ720が機能モードにおいて(SCANZが論理1であるとき)プルダウントランジスタとして働く。また、トランジスタ705は、機能モードにおいてVDDとVSSの間の直接経路をディセーブルするために用いられる。シフトモードにおいて(SCANZが論理0であるとき)、トランジスタ720がディセーブルされ、トランジスタ705がイネーブルされ、それによって、シフトモードにおいてVDDとVSSの間で直接経路が提供されることに留意されたい。したがって、シフトモードにおいて、トランジスタ705、710、及び715は、インバータ構成を形成し、ノード145の値の反転をノード725に提供する。
ここで、ストレージ要素600の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素600の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素600のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理1であり、そのため、トランジスタ375及び380はディセーブルされ、トランジスタ370及び385はイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによって、ノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ505(インバータ)は、ノード145における値を反転させ、ノード510を論理0にする。データ出力「Q」がノード510(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ705がディセーブルされ、それによってノード725へのデータ伝播が停止する。同時に、トランジスタ720がイネーブルされ、それによってノード725が論理0にプルダウンされる。スキャン出力端子はノード725に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。反転スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ370がディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)がインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ750はディセーブルされ、トランジスタ705、710、及び715はインバータ構成を形成するので、スキャン出力バッファ750はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ750は、スキャン出力「SQ」に結合されるノード725で論理0を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」の反転がスキャン出力「SQ」に転送される。
図7は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素700は、ストレージ要素700によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素700は、(ストレージ要素700の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素700のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理0である。
ストレージ要素700は、ノード725(スキャン出力端子)を駆動するためスキャン出力バッファ750に結合されるノード145を含む。この例示実施形態では、ノード145は、データ出力端子510を駆動するためデータ出力バッファ505にも結合される。この実施形態では、データ出力バッファ505はインバータとして示されている。ストレージ要素700は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、図5を参照して既に説明されており、簡潔にするためその説明は提供しない。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ505の入力はノード145に接続され、データ出力バッファ505の出力は、ノード510(データ出力端子)に接続される。データ出力バッファ505はインバータを含む。スキャン出力バッファ750もノード145に接続される。機能モードにおいて、スキャン出力バッファ750はノード725をプルダウンするように構成されるが、シフトモードにおいて、トランジスタ705、710、及び715はインバータ構成を形成し(また、トランジスタ720がディセーブルされ)、ノード145における値の反転がノード725に提供される。
ここで、ストレージ要素700の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。この実施形態において、SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素700の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素700のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図7に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
説明のため、機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、論理1がシフト回路150のインバータ110の出力において転送される。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力におけるCLKがハイになるとき論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ505(インバータ)は、ノード145における値を反転させ、ノード510を論理0にする。データ出力「Q」がノード510(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ705がディセーブルされ、それによってノード725へのデータ伝播が停止する。同時に、トランジスタ720がイネーブルされ、それによってノード725が論理0にプルダウンされる。スキャン出力端子はノード725に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480がディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ720がディセーブルされ、トランジスタ705、710、及び715がインバータ構成を形成するので、スキャン出力バッファ750はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ750は、スキャン出力「SQ」に結合されるノード725で論理0を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」の反転がスキャン出力「SQ」に転送される。
図8は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素800は、ストレージ要素800によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素800は、(ストレージ要素800の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素800のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素800は、ノード415(スキャン出力端子)を駆動するためスキャン出力バッファ450に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード510(データ出力端子)を駆動するためデータ出力バッファ505にも結合される。この実施形態では、データ出力バッファ505はインバータとして示されている。ストレージ要素800は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、図4を参照して既に説明されており、簡潔にするためその説明は提供しない。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード362で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード362で提供される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ505の入力はノード145に接続され、データ出力バッファ505の出力は、ノード510(データ出力端子)に接続される。データ出力バッファ505はインバータを含む。スキャン出力バッファ450もノード145に接続される。スキャン出力バッファ450は、PMOSトランジスタ405(第5のMOSトランジスタ)及びNMOSトランジスタ410(第6のMOSトランジスタ)(トランスミッションゲートを形成する)を含み、プルダウンMOSトランジスタ420(第7のMOSトランジスタ)がそれに続く。トランジスタ405及び410のドレインがノード145に接続される。トランジスタ405及び410のソースはノード415に接続される。トランジスタ405のゲートは反転スキャンイネーブル入力(SCANZ)に接続される。トランジスタ410のゲートはスキャンイネーブル入力(SCAN)に接続される。トランジスタ420(第3のMOSトランジスタ)のソースは接地電圧に接続され、トランジスタ420のドレインはノード415に接続される。トランジスタ420のゲートは反転スキャンイネーブル入力(SCANZ)に接続されて、トランジスタ420を、機能モードにおいて(SCANZが論理1であるとき)プルダウントランジスタとして働かせる。機能モードの間、トランジスタ405及び410はディセーブルされる。シフトモードにおいて(SCANZが論理0であるとき)、トランジスタ420はディセーブルされ、トランスミッションゲートは、イネーブルされ、ノード145における値をノード415に提供する。
ここで、ストレージ要素800の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素800の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素800のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
説明のため、SCANが論理0である(スキャン入力「SD」が論理1)である場合、トランジスタ375及び380がディセーブルされ、トランジスタ370及び385がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ505(インバータ)は、ノード145における値を反転させ、ノード510を論理0にする。データ出力「Q」がノード510(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ405及び410によって形成されるトランスミッションゲートがノード415をノード145から隔離する。同時に、トランジスタ420がイネーブルされ、これは、機能モードにおいてクロック信号CLKに関わらずノード415を論理0にプルダウンする。スキャン出力端子はノード415に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
SCANが論理1であるとき、トランジスタ370はディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ420はディセーブルされ、トランジスタ405及び410によって形成されるトランスミッションゲートはノード145に存在する値をノード415に転送するので、スキャン出力バッファ450はトランスミッションゲートバッファとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ450は、スキャン出力「SQ」に結合されるノード415で論理1を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」がスキャン出力「SQ」に転送される。
図9は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素900は、ストレージ要素900によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素900は、(ストレージ要素900の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素900のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素900は、ノード415(スキャン出力端子)を駆動するためスキャン出力バッファ450に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード510(データ出力端子)を駆動するためデータ出力バッファ505にも結合される。この実施形態では、データ出力バッファ505はインバータとして示されている。ストレージ要素900は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、図5を参照して既に説明されており、簡潔にするためその説明は提供しない。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、機能モードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、シフトモードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ505の入力はノード145に接続され、データ出力バッファ505の出力は、ノード510(データ出力端子)に接続される。データ出力バッファ505はインバータを含む。スキャン出力バッファ450もノード145に接続される。図8を参照して説明したように、スキャン出力バッファ450は、PMOSトランジスタ405(第1のMOSトランジスタ)及びNMOSトランジスタ410(第2のMOSトランジスタ)(トランスミッションゲートを形成する)を含み、プルダウンMOSトランジスタ420がそれに続く。トランジスタ420は、機能モードにおいて(SCANZが論理1であるとき)プルダウントランジスタとして働く。これは、機能モードにおいてトランジスタ405及び410がディセーブルされるからである。シフトモードにおいて(SCANZが論理0であるとき)、トランジスタ420はディセーブルされ、トランスミッションゲートは、イネーブルされ、ノード145における値をノード415に提供する。
ここで、ストレージ要素900の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素900の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素900のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図5を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、論理1がシフト回路150のインバータ110の出力において転送される。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ505(インバータ)は、ノード145における値を反転させ、ノード510を論理0にする。データ出力「Q」がノード510(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ405及び410によって形成されるトランスミッションゲートはノード415をノード145から隔離する。同時に、トランジスタ420がイネーブルされ、これは、機能モードにおいてクロック信号CLKに関わらずノード415を論理0にプルダウンする。スキャン出力端子はノード415に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480はディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ420はディセーブルされ、トランジスタ405及び410によって形成されるトランスミッションゲートはノード145に存在する値をノード415に転送するので、スキャン出力バッファ450はトランスミッションゲートバッファとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ450は、スキャン出力「SQ」に結合されるノード415で論理1を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」がスキャン出力「SQ」に転送される。
本技術の様々な実施形態はまた、データ出力及びスキャン出力の両方のプルアップ及び/又はプルダウンを提供する。これらの実施形態を図10〜図21を参照してさらに説明する。例えば、機能モードにおいて、スキャン出力「SQ」がプルアップ又はプルダウンされ得、シフトモードにおいて、データ出力「D」がプルアップ又はプルダウンされ得、それによって、これらのモードの間ICにおける電力がより多く節減される。
図10は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1000は、ストレージ要素1000によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1000は、(ストレージ要素1000の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1000のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1000は、ノード535(スキャン出力端子)を駆動するためスキャン出力バッファ550に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード225(データ出力端子)を駆動するためデータ出力バッファ250にも結合される。ストレージ要素1000は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、図4を参照して既に説明されており、簡潔にするためその説明は提供しない。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。例えば、シフトモードにおいて(SCANが論理1であるとき)、データ入力「D」の反転がノード362で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード362で提供される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ250の入力はノード145に接続され、データ出力バッファ250の出力はノード225(データ出力端子)に接続される。データ出力バッファ250はPMOSトランジスタ205及びNMOSトランジスタ210を含む。トランジスタ205のソースは電源電圧に接続され、トランジスタ205のドレインはノード225に接続される。トランジスタ205のゲートはノード145に接続される。トランジスタ210のソースは別のNMOSトランジスタ215(第8のMOSトランジスタ)のドレインに接続され、トランジスタ210のドレインはノード225に接続される。トランジスタ210のゲートもノード145に接続される。トランジスタ215のソースは接地電圧に接続され、トランジスタ215のドレインはトランジスタ210のソースに接続される。トランジスタ215のゲートは反転スキャンイネーブル入力(SCANZ)に接続される。トランジスタ215は、SCANが1であるとき、VDDからVSSへの直接経路をディセーブルするために用いられる。別のPMOSトランジスタ220(第9のMOSトランジスタ)が、データ出力端子qをプルアップするために用いられる。トランジスタ220のソースは電源電圧に接続され、トランジスタ220のドレインはノード225(データ出力端子q)に接続される。トランジスタ220のゲートは反転スキャンイネーブル入力(SCANZ)に接続される。ストレージ要素1000のデータ出力(q)が、ノード225から取り出される。スキャン出力バッファ550もノード145に接続される。機能モードにおいて、スキャン出力バッファ550はノード535をプルアップするように構成される。シフトモードにおいて、トランジスタ515、520、及び525がインバータ構成を形成し(また、トランジスタ530がディセーブルされ)、ノード145における値の反転がノード535に提供される。
ここで、ストレージ要素1000の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1000の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素1000のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理1であり、そのため、トランジスタ375及び380がディセーブルされ、トランジスタ370及び385がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ250は、ノード145における値を反転させ、ノード225を論理0にする。SCANが論理0であるため、トランジスタ220はディセーブルされ、トランジスタ205、210、及び215はインバータ構成を形成し、それによって、ノード145の反転値(例えば論理0)がノード225で転送される。データ出力「Q」がノード225(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ525はディセーブルされ、それによってノード535へのデータ伝播が停止する。同時に、トランジスタ530がイネーブルされ、これにより、ノード535が論理1にプルアップされる。スキャン出力端子はノード535に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理1に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ370がディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ530はディセーブルされ、トランジスタ515、520、及び525はインバータ構成を形成するので、スキャン出力バッファ550はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ550は、スキャン出力「SQ」に結合されるノード535で論理0を転送する。したがって、デバイスがシフトモードで動作するとき、反転スキャン入力「SD」がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ215がディセーブルされて、トランジスタ205及び210によって構成されるインバータをディセーブルさせる。トランジスタ220は、論理0であるSCANZに応答して、イネーブルされ、ノード225(データ出力端子q)をプルアップする。トランジスタ215は、データ出力端子(ノード225)がプルアップされるとき(トランジスタ205及び210によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理1に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。SCANが論理1であるとき、データ出力qは論理1に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理すべてはトグルしないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図11は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1100は、ストレージ要素1100によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1100は、(ストレージ要素1100の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1100のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1100は、ノード535(スキャン出力端子)を駆動するためスキャン出力バッファ550に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード625(データ出力端子)を駆動するためデータ出力バッファ650にも結合される。ストレージ要素1100は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード362で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード362で提供される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ650の入力はノード145に接続され、データ出力バッファ650の出力は、ノード625(データ出力端子)に接続される。データ出力バッファ650はまた、PMOSトランジスタ610及びNMOSトランジスタ615を含む。トランジスタ610のソースは別のPMOSトランジスタ605(第16のMOSトランジスタ)のドレインに接続され、トランジスタ610のドレインはノード625に接続される。トランジスタ610のゲートはノード145に接続される。トランジスタ620のソースは接地電圧に接続され、トランジスタ620のドレインはノード625に接続される。トランジスタ615のゲートもノード145に接続される。トランジスタ605のソースは電源電圧に接続され、トランジスタ605のドレインはトランジスタ610のソースに接続される。トランジスタ605のゲートはスキャンイネーブル入力(SCAN)に接続される。トランジスタ605は、SCANが1であるとき、VDDとVSSの間の直接経路をディセーブルするために用いられる。別のNMOSトランジスタ620(第16のMOSトランジスタ)が、ノード625(データ出力端子)をプルダウンするために用いられる。トランジスタ620のソースは接地電圧に接続され、トランジスタ620のドレインはノード625に接続される。トランジスタ620のゲートはSCANに接続される。スキャン可能なストレージ要素1100のデータ出力(q)がノード625から取り出される。スキャン出力バッファ550もノード145に接続される。機能モードにおいて、スキャン出力バッファ550はノード550をプルアップするように構成される。シフトモードにおいて、トランジスタ515、520、及び525がインバータ構成を形成し(また、トランジスタ530がディセーブルされ)、ノード145の値の反転がノード535に提供される。
ここで、ストレージ要素1100の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1100の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素1100のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理1であり、そのため、トランジスタ375及び380がディセーブルされ、トランジスタ370及び385がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ650は、ノード145における値を反転させ、ノード625を論理0にする。SCANが論理0であるため、トランジスタ620はディセーブルされ、トランジスタ605、610、及び615はインバータ構成を形成し、それによってノード145の反転値(例えば論理0)がノード625で転送される。データ出力「Q」がノード625(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ525はディセーブルされ、それによってノード535へのデータ伝播が停止する。同時に、トランジスタ530がイネーブルされ、それによってノード535が論理1にプルアップされる。スキャン出力端子はノード535に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理1に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ370はディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ530がディセーブルされ、トランジスタ515、520、及び525がインバータ構成を形成するので、スキャン出力バッファ550はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ550は、スキャン出力「SQ」に結合されるノード535で論理0を転送する。したがって、デバイスがシフトモードで動作するとき、反転スキャン入力「SD」がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ605はディセーブルされ、それにより、トランジスタ605及び610によって構成されるインバータがディセーブルされる。トランジスタ620は、SCANに応答して、イネーブルされ、ノード625(データ出力端子q)をプルダウンする。トランジスタ605は、データ出力端子625がプルダウンされるとき(トランジスタ610及び615によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」が論理0に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。SCANが論理1であるとき、データ出力qは論理0に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図12は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1200は、ストレージ要素1200によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1200は、(ストレージ要素1200の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1200のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1200は、ノード535(スキャン出力端子)を駆動するためスキャン出力バッファ550に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード225(データ出力端子)を駆動するためデータ出力バッファ250にも結合される。ストレージ要素1200は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)並びにスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ250の入力はノード145に接続され、データ出力バッファ250の出力はノード225(データ出力端子)に接続される。ストレージ要素1200のデータ出力(q)はノード225から取り出される。スキャン出力バッファ550もノード145に接続される。機能モードにおいて、スキャン出力バッファ550はノード535をプルアップするように構成される。シフトモードにおいて、トランジスタ515、520、及び525がインバータ構成を形成し(また、トランジスタ530がディセーブルされ)、そのため、ノード145の値の反転がノード535に提供される。
ここで、ストレージ要素1200の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。この実施形態では、SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1200の先行するストレージ要素(ストレージ要素300など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素1200のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図12に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ120の出力で論理1が転送される。CLKがローであるとき、トランスミッションゲート125が透過になり、トランスミッションゲートの入力における論理1がノード195に転送され、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125は透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ250は、ノード145における値を反転させ、ノード225を論理0にする。SCANが論理0であるため、トランジスタ220はディセーブルされ、トランジスタ205、210、及び215はインバータ構成を形成し、それによりノード145の反転値(例えば論理0)がノード225に転送される。データ出力「Q」がノード225(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ525はディセーブルされ、それによってノード535へのデータ伝播が停止する。同時に、トランジスタ530がイネーブルされ、それによってノード535が論理1にプルアップされる。スキャン出力端子はノード535に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理1に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480はディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ530がディセーブルされ、トランジスタ515、520、及び525がインバータ構成を形成するので、スキャン出力バッファ550はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ550は、スキャン出力「SQ」に結合されるノード535において論理0を転送する。したがって、デバイスがシフトモードで動作するとき、反転スキャン入力「SD」がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ215はディセーブルされ、これにより、トランジスタ205及び210によって構成されるインバータがディセーブルされる。トランジスタ220は、論理0であるSCANZに応答して、イネーブルされ、ノード225(データ出力端子q)をプルアップする。トランジスタ215は、データ出力端子(ノード225)がプルアップされるとき(トランジスタ200及び210によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理1に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。SCANが論理1であるとき、データ出力qは論理1に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図13は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1300は、ストレージ要素1300によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1300は、(ストレージ要素1300の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1300のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1300は、ノード535(スキャン出力端子)を駆動するためスキャン出力バッファ550に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード625(データ出力端子)を駆動するためデータ出力バッファ650にも結合される。ストレージ要素1300は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ650の入力はノード145に接続され、データ出力バッファ650の出力はノード625(データ出力端子)に接続される。ストレージ要素1300のデータ出力(q)はノード625から取り出される。スキャン出力バッファ550もノード145に接続される。機能モードにおいて、スキャン出力バッファ550はノード535をプルアップするように構成される。シフトモードにおいて、トランジスタ515、520、及び525がインバータ構成を形成し(また、トランジスタ530がディセーブルされ)、そのため、ノード145の値の反転がノード535に提供される。
ここで、ストレージ要素1300の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。この実施形態では、SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1300の先行するストレージ要素(ストレージ要素300など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素1300のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図13に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ130の出力で論理1が転送される。CLKがローであるとき、トランスミッションゲート135が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート135は透過になり、それによってノード197における値(論理0)がインバータ130に転送される。インバータ130は、ノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ650は、ノード145における値を反転させ、ノード625を論理0にする。SCANが論理0であるため、トランジスタ620がディセーブルされ、トランジスタ605、610、及び615がインバータ構成を形成し、それにより、ノード145の反転値(例えば論理0)がノード625で転送される。データ出力「Q」がノード625(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ525はディセーブルされ、それによってノード535へのデータ伝播が停止する。同時に、トランジスタ530はイネーブルされ、それによってノード535は論理1にプルアップされる。スキャン出力端子はノード535に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理1に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480はディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ530がディセーブルされ、トランジスタ515、520、及び525がインバータ構成を形成するので、スキャン出力バッファ550はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ550は、スキャン出力「SQ」に結合されるノード535において論理0を転送する。したがって、デバイスがシフトモードで動作するとき、反転スキャン入力「SD」がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ605はディセーブルされ、これにより、トランジスタ605及び610によって構成されるインバータがディセーブルされる。トランジスタ620は、SCANに応答して、イネーブルされ、ノード625(データ出力端子q)をプルダウンする。トランジスタ605は、データ出力端子がプルダウンされるとき(トランジスタ610及び615によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理0に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理1に拘束される。SCANが論理1であるとき、データ出力qは論理0に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図14は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1400は、ストレージ要素1400によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1400は、(ストレージ要素1400の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1400のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1400は、ノード725(スキャン出力端子)を駆動するためスキャン出力バッファ750に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード225(データ出力端子)を駆動するためデータ出力バッファ250にも結合される。ストレージ要素1400は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。例えば、シフトモードにおいて(SCANが論理1であるとき)、データ入力「D」の反転がノード362で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード362で提供される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ250の入力はノード145に接続され、データ出力バッファ250の出力はノード225(データ出力端子)に接続される。ストレージ要素1400のデータ出力(q)はノード225から取り出される。スキャン出力バッファ750もノード145に接続される。機能モードにおいて、スキャン出力バッファ750はノード725をプルアップするように構成される。シフトモードにおいて、トランジスタ705、710、及び715がインバータ構成を形成し(また、トランジスタ720がディセーブルされ)、そのため、ノード145の値の反転がノード725に提供される。
ここで、ストレージ要素1400の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1400の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素1400のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理1であり、そのため、トランジスタ375及び380がディセーブルされ、トランジスタ370及び385がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ250は、ノード145における値を反転させ、ノード225を論理0にする。SCANが論理0であるため、トランジスタ220がディセーブルされ、トランジスタ205、210、及び215がインバータ構成を形成し、それにより、ノード145の反転値(例えば論理0)がノード225で転送される。データ出力「Q」は、ノード225(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ705はディセーブルされ、それによってノード725へのデータ伝播が停止する。同時に、トランジスタ720はイネーブルされ、それによってノード725が論理0にプルダウンされる。スキャン出力端子はノード725に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ370はディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ720がディセーブルされ、トランジスタ705、710、及び715がインバータ構成を形成するので、スキャン出力バッファ750はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ750は、スキャン出力「SQ」に結合されるノード725で論理0を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」の反転がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ215はディセーブルされ、これにより、トランジスタ205及び210によって構成されるインバータがディセーブルされる。トランジスタ220は、論理0であるSCANZに応答して、イネーブルされ、ノード225(データ出力端子)をプルアップする。トランジスタ215は、データ出力端子(ノード225)がプルアップされるとき(トランジスタ205及び210によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理1に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力qは論理1に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図15は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1500は、ストレージ要素1500によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1500は、(ストレージ要素1500の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1500のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1500は、ノード725(スキャン出力端子)を駆動するためスキャン出力バッファ750に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード625(データ出力端子)を駆動するためデータ出力バッファ650にも結合される。ストレージ要素1500は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。例えば、シフトモードにおいて(SCANが論理1であるとき)、データ入力「D」の反転がノード362で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード362で提供される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ650の入力はノード145に接続され、データ出力バッファ650の出力はノード625(データ出力端子)に接続される。ストレージ要素1500のデータ出力(q)はノード625から取り出される。スキャン出力バッファ750もノード145に接続される。機能モードにおいて、スキャン出力バッファ750はノード725をプルダウンするように構成される。シフトモードにおいて、トランジスタ705、710、及び715がインバータ構成を形成し(また、トランジスタ720がディセーブルされ)、そのため、ノード145の値の反転がノード725に提供される。
ここで、ストレージ要素1500の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1500の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素1500のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理1であり、そのため、トランジスタ375及び380がディセーブルされ、トランジスタ370及び385がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ150に転送する。インバータ150はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ650は、ノード145における値を反転させ、ノード625を論理0にする。SCANが論理0であるため、トランジスタ620がディセーブルされ、トランジスタ605、610、及び615がインバータ構成を形成し、それによって、ノード145の反転値(例えば論理0)がノード625で転送される。データ出力「Q」がノード625(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ705はディセーブルされ、それによってノード725へのデータ伝播が停止する。同時に、トランジスタ720はイネーブルされ、それによってノード725が論理0にプルダウンされる。スキャン出力端子はノード725に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ370はディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ720がディセーブルされ、トランジスタ705、710、及び715がインバータ構成を形成するので、スキャン出力バッファ750はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ750は、スキャン出力「SQ」に結合されるノード725において論理0を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」の反転がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ605はディセーブルされ、これにより、トランジスタ605及び610によって構成されるインバータがディセーブルされる。トランジスタ620は、SCANに応答して、イネーブルされ、ノード625(データ出力端子q)をプルダウンする。トランジスタ605は、データ出力端子がプルダウンされるとき(トランジスタ610及び615によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理0に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力qは論理0に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図16は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1600は、ストレージ要素1600によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1600は、(ストレージ要素1600の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1600のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1600は、ノード725(スキャン出力端子)を駆動するためスキャン出力バッファ750に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード225(データ出力端子)を駆動するためデータ出力バッファ250にも結合される。ストレージ要素1600は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ250の入力はノード145に接続され、データ出力バッファ250の出力はノード225(データ出力端子)に接続される。ストレージ要素1600のデータ出力(q)はノード225から取り出される。スキャン出力バッファ550もノード145に接続される。機能モードにおいて、スキャン出力バッファ750はノード725をプルダウンするように構成される。シフトモードにおいて、トランジスタ705、710、及び715がインバータ構成を形成し(また、トランジスタ720がディセーブルされ)、そのため、ノード145の値の反転がノード725に提供される。
ここで、ストレージ要素1600の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。この実施形態では、SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1600の先行するストレージ要素(ストレージ要素300など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素1600のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図16に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、論理1がシフト回路150のインバータ120の出力で転送される。CLKがローであるとき、トランスミッションゲート125が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ250は、ノード145における値を反転させ、ノード225を論理0にする。SCANが論理0であるため、トランジスタ220がディセーブルされ、トランジスタ205、210、及び215がインバータ構成を形成し、それによって、ノード145の反転値(例えば論理0)がノード225で転送される。データ出力「Q」は、ノード225(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ705はディセーブルされ、それによってノード725へのデータ伝播が停止する。同時に、トランジスタ720はイネーブルされ、それによってノード725が論理0にプルダウンされる。スキャン出力端子はノード725に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理0に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480はディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ720がディセーブルされ、トランジスタ705、710、及び715がインバータ構成を形成するので、スキャン出力バッファ750はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ750は、スキャン出力「SQ」に結合されるノード725において論理0を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」の反転がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ215はディセーブルされ、これにより、トランジスタ205及び210によって構成されるインバータがディセーブルされる。トランジスタ220は、論理0であるSCANZに応答して、イネーブルされ、ノード225(データ出力端子q)をプルアップする。トランジスタ215は、データ出力端子(ノード225)がプルアップされるとき(トランジスタ205及び210によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理1に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力qは論理1に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図17は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1700は、ストレージ要素1700によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1700は、(ストレージ要素1700の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1700のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1700は、ノード725(スキャン出力端子)を駆動するためスキャン出力バッファ750に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード625(データ出力端子)を駆動するためデータ出力バッファ650にも結合される。ストレージ要素1700は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ650の入力はノード145に接続され、データ出力バッファ650の出力は、ノード625(データ出力端子)に接続される。ストレージ要素1700のデータ出力(q)はノード625から取り出される。スキャン出力バッファ550もノード145に接続される。機能モードにおいて、スキャン出力バッファ750はノード725をプルダウンするように構成される。シフトモードにおいて、トランジスタ705、710、及び715はインバータ構成を形成し(また、トランジスタ720がディセーブルされ)、そのため、ノード145の値の反転がノード725に提供される。
ここで、ストレージ要素1700の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。この実施形態では、SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1700の先行するストレージ要素(ストレージ要素300など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素1700のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図17に示すように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、論理1がシフト回路150のインバータ120の出力で転送される。CLKがローであるとき、トランスミッションゲート125が透過になり、トランスミッションゲートの入力における論理1がノード195に転送されて、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ650は、ノード145における値を反転させ、ノード625を論理0にする。SCANが論理0であるため、トランジスタ620がディセーブルされ、トランジスタ605、610、及び615がインバータ構成を形成し、それによって、ノード145の反転値(例えば論理0)がノード625で転送される。データ出力「Q」は、ノード625(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ705はディセーブルされ、それによってノード725へのデータ伝播が停止する。同時に、トランジスタ720がイネーブルされ、それによってノード725が論理0にプルダウンされる。スキャン出力端子はノード725に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理0に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480はディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ720がディセーブルされ、トランジスタ705、710、及び715がインバータ構成を形成するので、スキャン出力バッファ750はインバータとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ750は、スキャン出力「SQ」に結合されるノード725において論理0を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」の反転がスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ605はディセーブルされ、これにより、トランジスタ605及び610によって構成されるインバータがディセーブルされる。トランジスタ620は、SCANに応答して、イネーブルされ、ノード625(データ出力端子q)をプルダウンする。トランジスタ605は、データ出力端子がプルダウンされるとき(トランジスタ610及び615によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理0に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理0に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力qは論理0に拘束され、スキャン出力「SQ」はスキャン入力(sd)の反転に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」qゲーティングの選択によって決まるからである。
図18は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1800は、ストレージ要素1800によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1800は、(ストレージ要素1800の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1800のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1800は、ノード415(スキャン出力端子)を駆動するためスキャン出力バッファ450に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード225(データ出力端子)を駆動するためデータ出力バッファ250にも結合される。ストレージ要素1800は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。例えば、シフトモードにおいて(SCANが論理1であるとき)、データ入力「D」の反転がノード362で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード362で提供される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ250の入力はノード145に接続され、データ出力バッファ250の出力はノード225(データ出力端子)に接続される。ストレージ要素1800のデータ出力(q)はノード225から取り出される。スキャン出力バッファ450もノード145に接続される。図8を参照して説明したように、スキャン出力バッファ450は、PMOSトランジスタ405(第1のMOSトランジスタ)及びNMOSトランジスタ410(第2のMOSトランジスタ)(トランスミッションゲートを形成する)を含み、プルダウンNMOSトランジスタ420がそれに続く。トランジスタ420は、機能モードにおいて(SCANZが論理1であるとき)プルダウントランジスタとして動作する。これは、機能モードにおいてトランジスタ405及び410がディセーブルされるからである。シフトモードにおいて(SCANZが論理0であるとき)、トランジスタ420はディセーブルされ、トランスミッションゲートは、イネーブルされ、ノード145の値をノード415に提供する。
ここで、ストレージ要素1800の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1800の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素1800のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理1であり、そのため、トランジスタ375及び380がディセーブルされ、トランジスタ370及び385がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送され、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ250は、ノード145における値を反転させ、ノード225を論理0にする。SCANが論理0であるため、トランジスタ220がディセーブルされ、トランジスタ205、210、及び215がインバータ構成を形成し、それによって、ノード145の反転値(例えば論理0)がノード225で転送される。データ出力「Q」がノード225(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ405及び410によって形成されるトランスミッションゲートがノード145からノード415を隔離する。同時に、トランジスタ420がイネーブルされ、それによって、機能モードにおいてクロック信号CLKに関わらずノード415が論理0にプルダウンされる。スキャン出力端子はノード415に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ370はディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ420がディセーブルされ、トランジスタ405及び410によって形成されるトランスミッションゲートがノード145に存在する値をノード415に転送するので、スキャン出力バッファ450はトランスミッションゲートバッファとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ450は、スキャン出力「SQ」に結合されるノード415で論理1を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」はスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ215はディセーブルされ、それにより、トランジスタ205及び210によって構成されるインバータがディセーブルされる。トランジスタ220は、論理0であるSCANZに応答して、イネーブルされ、ノード225(データ出力端子)をプルアップする。トランジスタ215は、データ出力端子(ノード225)がプルアップされるとき(トランジスタ205及び210によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理1に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力「Q」は論理1に拘束され、スキャン出力「SQ」はスキャン入力(sd)に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図19は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素1900は、ストレージ要素1900によって受け取られるスキャン入力データ「SD」が機能モードにおいてプルアップされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素1900は、(ストレージ要素1900の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素1900のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルアップされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理1である。
ストレージ要素1900は、ノード415(スキャン出力端子)を駆動するためスキャン出力バッファ450に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード625(データ出力端子)を駆動するためデータ出力バッファ650にも結合される。ストレージ要素1900は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路360を含む。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で提供するように構成される。例えば、シフトモードにおいて(SCANが論理1であるとき)、データ入力「D」の反転がノード362で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード362で提供される。
入力回路360の出力(例えばノード362)が、ノード362に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ650の入力はノード145に接続され、データ出力バッファ650の出力はノード625(データ出力端子)に接続される。ストレージ要素1900のデータ出力(q)はノード625から取り出される。スキャン出力バッファ450もノード145に接続される。図8を参照して説明したように、スキャン出力バッファ450は、PMOSトランジスタ405(第1のMOSトランジスタ)及びNMOSトランジスタ410(第2のMOSトランジスタ)(トランスミッションゲートを形成する)を含み、プルダウンNMOSトランジスタ420がそれに続く。トランジスタ420は、機能モードにおいて(SCANZが論理1であるとき)プルダウントランジスタとして動作する。これは、機能モードにおいてトランジスタ405及び410がディセーブルされるからである。シフトモードにおいて(SCANZが論理0であるとき)、トランジスタ420はディセーブルされ、トランスミッションゲートは、イネーブルされ、ノード145の値をノード415に提供する。
ここで、ストレージ要素1900の動作を説明する。入力回路360は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード362で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理1であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素1900の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルアップされ、このプルアップされた論理1はストレージ要素1900のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図4を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード362で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード362で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理1であり、そのため、トランジスタ375及び380がディセーブルされ、トランジスタ370及び385がイネーブルされる。したがって、トランジスタ365、370、390、及び385はインバータ構成を形成し、「D」の反転論理レベルがノード362に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード362で利用可能となる。シフト回路150は、ノード145において、ノード362における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ110の出力は論理1である。CLKがローであるとき、トランスミッションゲート115が透過になり、トランスミッションゲートの入力における論理1がノード195に転送され、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125が透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ650は、ノード145における値を反転させ、ノード625を論理0にする。SCANが論理0であるため、トランジスタ620がディセーブルされ、トランジスタ605、610、及び615がインバータ構成を形成し、それによってノード145の反転値(例えば論理0)がノード625で転送される。データ出力「Q」がノード625(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ405及び410によって形成されるトランスミッションゲートはノード145からノード415を隔離する。同時に、トランジスタ420がイネーブルされ、それによって、機能モードにおいてクロック信号CLKに関わらずノード415が論理0にプルダウンされる。スキャン出力端子はノード415に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ370はディセーブルされ、トランジスタ375(プルアップ)並びにトランジスタ380及び385(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード362に転送される。SCANが論理1であるとき、トランジスタ420がディセーブルされ、トランジスタ405及び410によって形成されるトランスミッションゲートがノード145に存在する値をノード415に転送するので、スキャン出力バッファ450はトランスミッションゲートバッファとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード362の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード362は論理0であり、ノード145は論理1である。スキャン出力バッファ450は、スキャン出力「SQ」に結合されるノード415で論理1を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」はスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ605はディセーブルされ、それにより、トランジスタ605及び610によって構成されるインバータがディセーブルされる。トランジスタ620は、SCANに応答して、イネーブルされ、ノード625(データ出力端子q)をプルダウンする。トランジスタ605は、データ出力端子625がプルダウンされるとき(トランジスタ610及び615によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理0に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号はデータ出力端子「Q」を論理0に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力「Q」は論理0に拘束され、スキャン出力「SQ」はスキャン入力(sd)に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図20は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素2000は、ストレージ要素2000によって受け取られるスキャン入力「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素2000は、(ストレージ要素2000の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素2000のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理0である。
ストレージ要素2000は、ノード415(スキャン出力端子)を駆動するためスキャン出力バッファ450に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード225(データ出力端子)を駆動するためデータ出力バッファ250にも結合される。ストレージ要素2000は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ250の入力はノード145に接続され、データ出力バッファ250の出力はノード225(データ出力端子)に接続される。ストレージ要素2000のデータ出力(q)はノード225から取り出される。スキャン出力バッファ450もノード145に接続される。図8を参照して説明したように、スキャン出力バッファ450は、PMOSトランジスタ405(第1のMOSトランジスタ)及びNMOSトランジスタ410(第2のMOSトランジスタ)(トランスミッションゲートを形成する)を含み、プルダウンNMOSトランジスタ420がそれに続く。トランジスタ420は、機能モードにおいて(SCANZが論理1であるとき)プルダウントランジスタとして動作する。これは、機能モードにおいてトランジスタ405及び410がディセーブルされるからである。シフトモードにおいて(SCANZが論理0であるとき)、トランジスタ420はディセーブルされ、トランスミッションゲートは、イネーブルされ、ノード145の値をノード415に提供する。
ここで、ストレージ要素2000の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素2000の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素2000のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図5を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ120の出力において論理1が転送される。CLKがローであるとき、トランスミッションゲート125が透過になり、トランスミッションゲートの入力における論理1がノード195に転送され、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125は透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ250は、ノード145における値を反転させ、ノード225を論理0にする。SCANが論理0であるため、トランジスタ220がディセーブルされ、トランジスタ205、210、及び215がインバータ構成を形成し、それによって、ノード145の反転値(例えば論理0)がノード225で転送される。データ出力「Q」がノード225(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ405及び410によって形成されるトランスミッションゲートはノード145からノード415を隔離する。同時に、トランジスタ420がイネーブルされ、それによって、機能モードにおいてクロック信号CLKに関わらずノード415が論理0にプルダウンされる。スキャン出力端子はノード415に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480はディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ420がディセーブルされ、トランジスタ405及び410によって構成されるトランスミッションゲートがノード145に存在する値をノード415に転送するので、スキャン出力バッファ450はトランスミッションゲートバッファとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ450は、スキャン出力「SQ」に結合されるノード415で論理1を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」はスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ215はディセーブルされ、そのため、トランジスタ205及び210によって構成されるインバータがディセーブルされる。トランジスタ220は、論理0であるSCANZに応答して、イネーブルされ、ノード225(データ出力端子)をプルアップする。トランジスタ215は、データ出力端子(ノード225)がプルアップされるとき(トランジスタ205及び210によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理1に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理1に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力「Q」は論理1に拘束され、スキャン出力「SQ」はスキャン入力(sd)に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
図21は、或る実施形態に従ったスキャンチェーン100の第1のストレージ要素以外のストレージ要素の例を示す。ストレージ要素2100は、ストレージ要素2100によって受け取られるスキャン入力「SD」が機能モードにおいてプルダウンされる場合の、ストレージ要素1002、1003、...、又は100nのいずれかの例とし得る。例えば、ストレージ要素2100は、(ストレージ要素2100の)先行するストレージ要素によって提供されるスキャン出力「SQ」(これは、ストレージ要素2100のスキャン入力「SD」に結合される)が機能モードにおいて(SCANが論理0であるとき)プルダウンされる場合に用いられる。例えば、SCANが論理0であるとき、スキャン入力「SD」は論理0である。
ストレージ要素2100は、ノード415(スキャン出力端子)を駆動するためスキャン出力バッファ450に結合されるノード145を含む。この例示実施形態では、ノード145は、ノード625(データ出力端子)を駆動するためデータ出力バッファ650にも結合される。ストレージ要素2100は、それぞれ、先行するストレージ要素のデータ出力「Q」及びスキャン出力「SQ」からデータ入力(「D」参照)及びスキャン入力(「SD」参照)を受け取るように構成される入力回路460を含む。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で提供するように構成される。例えば、シフトモードにおいて(SCANZが論理1であるとき)、データ入力「D」の反転がノード462で提供され、機能モードにおいて(SCANZが論理0であるとき)、スキャン入力「SD」の反転がノード462で提供される。
入力回路460の出力(例えばノード462)が、ノード462に対応する信号をノード145に転送するように構成されるシフト回路150に接続される。データ出力バッファ650の入力はノード145に接続され、データ出力バッファ650の出力はノード625(データ出力端子)に接続される。ストレージ要素2100のデータ出力(q)はノード625から取り出される。スキャン出力バッファ450もノード145に接続される。図8を参照して説明したように、スキャン出力バッファ450は、PMOSトランジスタ405(第1のMOSトランジスタ)及びNMOSトランジスタ410(第2のMOSトランジスタ)(トランスミッションゲートを形成する)を含み、プルダウンNMOSトランジスタ420がそれに続く。トランジスタ420は、機能モードにおいて(SCANZが論理1であるとき)プルダウントランジスタとして動作する。これは、機能モードにおいてトランジスタ405及び410がディセーブルされるからである。シフトモードにおいて(SCANZが論理0であるとき)、トランジスタ420はディセーブルされ、トランスミッションゲートは、イネーブルされ、ノード145の値をノード415に提供する。
ここで、ストレージ要素2100の動作を説明する。入力回路460は、データ入力「D」及びスキャン入力「SD」の一方に対応する信号をノード462で転送させる。SCANが論理0であるとき、スキャン入力「SD」は論理0であることに留意されたい。例えば、SCANが論理0であるとき、ストレージ要素2100の先行するストレージ要素(ストレージ要素200など)のスキャン出力「SQ」がプルダウンされ、このプルダウンされた論理0はストレージ要素2100のスキャン入力「SD」に供給される。SCANが論理1であるとき、テストデータ、及び先行するストレージ要素から受け取る値に応じて、スキャン入力「SD」は論理0又は論理1のいずれかを取り得る。図5を参照して説明したように、SCANが論理0であるとき、データ入力「D」の反転がノード462で転送され、SCANが論理1であるとき、スキャン入力「SD」の反転がノード462で転送される。
機能モードにおいて(SCANが論理0である又はSCANZが論理1であるとき)、スキャン入力「SD」は論理0であり、そのため、トランジスタ475及び490がディセーブルされ、トランジスタ465及び480がイネーブルされる。したがって、トランジスタ465、470、480、及び485はインバータ構成を形成し、「D」の反転論理レベルがノード462に転送される。「D」が論理1に設定されると仮定すると、「D」の反転、例えば論理0、がノード462で利用可能となる。シフト回路150は、ノード145において、ノード462における値の反転である論理レベルを強制するように構成される。例えば、シフト回路150のインバータ120の出力において論理1が転送される。CLKがローであるとき、トランスミッションゲート125が透過になり、トランスミッションゲートの入力における論理1がノード195に転送され、インバータ130の出力(ノード197)を論理0にする。CLKがハイになるとき、トランスミッションゲート125は透過になり、それによってノード197における値(論理0)がインバータ120に転送される。インバータ120はノード195を論理1にする。別のトランスミッションゲート135が、CLKがハイになるときイネーブルされ、そのためノード197における値(論理0)をインバータ140に転送する。インバータ140はノード145を論理1にする。インバータ185、トランスミッションゲート190、及びインバータ146は、CLKが論理0であるときループバック経路を構成し、ノード145における値を保持することを助ける。データ出力バッファ650は、ノード145における値を反転させ、ノード625を論理0にする。SCANが論理0であるため、トランジスタ620がディセーブルされ、トランジスタ605、610、及び615がインバータ構成を形成し、それによってノード145の反転値(例えば論理0)がノード625で転送される。データ出力「Q」がノード625(これはデータ出力端子である)からデータ入力「D」の反転として取り出される。SCANが論理0であるため、トランジスタ405及び410によって形成されるトランスミッションゲートはノード145からノード415を隔離する。同時に、トランジスタ420がイネーブルされ、それによって、機能モードにおいてクロック信号CLKに関わらずノード415が論理0にプルダウンされる。スキャン出力端子はノード415に結合される。したがって、機能モードにおいて(SCANが論理0であるとき)、スキャン出力「SQ」は論理0に拘束される(これは、スキャン出力端子によって駆動されるスキャン経路における組合せ論理切り替えに起因する機能モードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCANZ)は制御信号として働き、この制御信号は、スキャン出力端子「SQ」を論理1に拘束させるか否かを決定する。したがって、SCANが論理0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される(すなわち、プルダウンされる)。
シフトモードにおいて(SCANが論理1である又はSCANZが論理0であるとき)、トランジスタ480はディセーブルされ、トランジスタ465、475(プルアップ)及びトランジスタ490(プルダウン)はインバータ構成を形成し、スキャン入力「SD」の反転がノード462に転送される。SCANが論理1であるとき、トランジスタ420がディセーブルされ、トランジスタ405及び410によって形成されるトランスミッションゲートがノード145に存在する値をノード415に転送するので、スキャン出力バッファ450はトランスミッションゲートバッファとして動作することにさらに留意されたい。シフト回路150は、ノード145において、ノード462の反転である論理レベルを強制するように構成される。例えば、スキャン入力「SD」が論理1である場合(SCANが論理1であれば)、ノード462は論理0であり、ノード145は論理1である。スキャン出力バッファ450は、スキャン出力「SQ」に結合されるノード415で論理1を転送する。したがって、ICがシフトモードで動作するとき、スキャン入力「SD」はスキャン出力「SQ」に転送される。SCANが論理1であるため、トランジスタ215がディセーブルされ、そのため、トランジスタ205及び210によって構成されるインバータがディセーブルされる。トランジスタ620は、論理1であるSCANZに応答して、イネーブルされ、ノード625(データ出力端子)をプルダウンする。トランジスタ605は、データ出力端子がプルダウンされるとき(トランジスタ610及び615によって形成される)インバータを通る漏れ電流を保護するように構成されることに留意されたい。
シフトモードにおいて、データ出力「Q」は論理0に拘束される(これは、データ出力端子によって駆動される組合せ論理切り替えに起因するシフトモードにおける電力低減の助けとなり得る)。スキャンイネーブル入力(SCAN)は制御信号として働き、この制御信号は、データ出力端子「Q」を論理0に拘束させるか否かを決定する。SCANが0であるとき、データ出力「Q」はデータ入力「D」の反転に従い、スキャン出力「SQ」は論理0に拘束される。SCANが論理1であるとき、データ出力「Q」は論理0に拘束され、スキャン出力「SQ」はスキャン入力(sd)に従う。この実施形態に従って、Qゲーティングに起因して機能組合せ論理がすべてはトグルされないので、多くのATPGシフトサイクルにわたる平均電力が下がる。各論理ブロックに対しフロップの種類(プルアップ又はプルダウン)を正しく選択することによって第1のシフトサイクルにわたる瞬間ピーク電力が最適化され得る。この技術は、既存のスキャンフロップのサブセットのみをこの新たな設計に変換するように設計者が決定する場合に極めて有用である。ピーク/平均電力が「プルアップ」又は「プルダウン」Qゲーティングの選択によって決まるからである。
様々な実施形態が、ICが提供されるスキャンチェーン(例えばスキャンチェーン100)におけるスキャン可能なストレージ要素を動作させるための方法2200も提供する。このスキャン可能なストレージ要素の例は、図4〜図21を参照して説明したスキャン可能なストレージ要素とし得る。2205において、方法2200は、データ入力及びスキャン入力の一方に応答して、スキャン可能なストレージ要素の第1のノードで第1の信号を生成することを含む。或る実施形態では、スキャン入力は、ICをテストする機能モードにおけるプルアップ及びプルダウン論理の一方とし得る。或る実施形態では、第1の信号を生成することは、データ入力を受け取るための第1のスイッチとスキャンイネーブル入力を受け取るための第2のスイッチとを含む第1のプルアップ経路を提供すること、及び、スキャン入力を受け取るための第3のスイッチを含む第2のプルアップ経路を提供することを含む。第1のプルアップ経路及び第2のプルアップ経路は、電源と第1のノードとの間で結合される。この実施形態では、第1の信号を生成することは更に、スキャンイネーブル入力を受け取るための第4のスイッチとスキャン入力を受け取るための第5のスイッチとを含む第1のプルダウン経路を提供すること、及び、データ入力を受け取るための第6のスイッチを含む第2のプルダウン経路を提供することを含む。第1のプルダウン経路及び第2のプルダウン経路は、第1のノードと基準源との間で結合される。第1〜第6のスイッチの例は、MOSトランジスタ、又は任意の他の電子/電気構成要素、或いはMOSトランジスタに機能的に類似し得る構成要素の組合せを含み得る。
別の実施形態において、第1の信号を生成することは、スキャン入力を受け取るための第1のスイッチとデータ入力を受け取るための第2のスイッチとを含む第1のプルアップ経路を提供すること、及び、第1のスイッチと反転スキャンイネーブル入力を受け取るための第3のスイッチとを含む第2のプルアップ経路を提供することを含む。第1のプルアップ経路及び第2のプルアップ経路は、電源と第1のノードとの間で結合される。この実施形態では、第1の信号を生成することは更に、反転スキャンイネーブル入力を受け取るための第4のスイッチとデータ入力を受け取るための第5のスイッチとを含む第1のプルダウン経路を提供すること、及び、スキャン入力を受け取るための第6のスイッチを含む第2のプルダウン経路を提供することを含む。第1のプルダウン経路及び第2のプルダウン経路は、第1のノードと基準源との間で結合される。第1〜第6のスイッチの例は、MOSトランジスタ、又は任意の他の電子/電気構成要素、或いはMOSトランジスタに機能的に類似し得る構成要素の組合せを含み得る。
2210において、方法2200は、スキャン可能なストレージ要素の第2のノードにおいて第1の信号に応答して1つ又は複数の逐次要素によって第2の信号を生成することを含む。さらに、2215において、方法2200は、第2の信号に応答して、スキャン可能なストレージ要素のスキャン出力端子でスキャン出力を生成することを含む。スキャン出力は、機能モードにおけるプルアップ論理及びプルダウン論理の一方であり、スキャン出力は、シフトモードにおけるスキャン入力に対応する。2220において、方法2200はさらに、データ出力端子で第2の信号に応答してデータ出力を生成することを含む。
本発明の特許請求の範囲内で、説明した例示実施形態を改変することができ、また、多くの他の実施形態が可能であることが当業者には理解されよう。