(57)【要約】【課題】全てのスキャン用フリップフロップ内部のクロックラインの遅延を制御することでセットアップマージン、ホールドマージンを増やすことにより不良チップを正常動作させること。【解決手段】入出力端子、クロック端子ＣＬＫ、テスト用信号を入力するＳｃａｎ Ｉｎ端子ＳＩ、入力端子Ｄ又はＳｃａｎ Ｉｎ端子ＳＩのいずれかの端子から入力を選択するＳｃａｎ Ｅｎａｂｌｅ信号用のＳＥ端子ＳＥ、を備えたスキャン用フリップフロップであって、ＳＥ信号によって選択された入力を一時的に保持するラッチ部８，１０を有し、クロック端子ＣＬＫからのクロック信号を遅延させる遅延素子１１を設け、遅延素子１１を介したクロックと遅延素子を介さないクロックとを入力し、いずれかのクロックをクロック選択信号によって出力するクロック選択部１２を設ける。遅延クロックの適用によりタイミングマージンを確保する。【選択図】図１
2006300669.tif 000002
【特許請求の範囲】
【請求項１】
入力端子、出力端子、クロック端子、テスト用信号を入力するＳｃａｎ Ｉｎ端子、前記入力端子又は前記Ｓｃａｎ Ｉｎ端子のいずれかの端子から保持するための入力を選択するＳｃａｎ Ｅｎａｂｌｅ信号用のＳｃａｎ Ｅｎａｂｌｅ端子、を備えたスキャン用フリップフロップであって、
前記Ｓｃａｎ Ｅｎａｂｌｅ信号によって選択された入力を一時的に保持するマスタラッチ部及びスレーブラッチ部を有し、
前記クロック端子からのクロック信号を遅延させる遅延素子を設け、前記遅延素子からの遅延クロックでクロック動作させる
ことを特徴とするスキャン用フリップフロップ。
【請求項２】
入力端子、出力端子、クロック端子、テスト用信号を入力するＳｃａｎ Ｉｎ端子、前記入力端子又は前記Ｓｃａｎ Ｉｎ端子のいずれかの端子から保持するための入力を選択するＳｃａｎ Ｅｎａｂｌｅ信号用のＳｃａｎ Ｅｎａｂｌｅ端子、を備えたスキャン用フリップフロップであって、
前記Ｓｃａｎ Ｅｎａｂｌｅ信号によって選択された入力を一時的に保持するマスタラッチ部及びスレーブラッチ部を有し、
前記クロック端子からのクロック信号を遅延させる遅延素子を設け、
前記遅延素子を介したクロックと前記遅延素子を介さないクロックとを入力し、いずれかのクロックをクロック選択信号によって出力するクロック選択部を設ける
ことを特徴とするスキャン用フリップフロップ。
【請求項３】
請求項２において、
前記クロック選択信号は、前記Ｓｃａｎ Ｉｎ端子からのＳｃａｎ Ｉｎ信号を入力とし、前記Ｓｃａｎ Ｉｎ信号を内部でＬａｔｃｈ Ｅｎａｂｌｅ信号で制御して当該クロック選択信号をラッチして形成する
ことを特徴とするスキャン用フリップフロップ。
【請求項４】
請求項３に記載のスキャン用フリップフロップを用いて同期回路を構成する半導体集積回路。
【請求項５】
入力端子、出力端子、クロック端子、テスト用信号を入力するＳｃａｎ Ｉｎ端子、前記入力端子又は前記Ｓｃａｎ Ｉｎ端子のいずれかの端子から保持するための入力を選択するＳｃａｎ Ｅｎａｂｌｅ信号用のＳｃａｎ Ｅｎａｂｌｅ端子、を備えた複数の同期用フリップフロップと、
前記同期用フリップフロップ間に接続される論理回路と、からなる同期回路の半導体集積回路において、
前記複数の同期用フリップフロップは、
前記Ｓｃａｎ Ｅｎａｂｌｅ信号によって選択された入力を一時的に保持するマスタラッチ部及びスレーブラッチ部を有し、
前記クロック端子からのクロック信号を遅延させる遅延素子を設け、
前記遅延素子を介した遅延クロックと前記遅延素子を介さない通常のクロックとを入力し、クロック選択信号によっていずれかのクロックを出力するクロック選択部を設け、
前記クロック選択信号は、前記複数の同期用フリップフロップごとに前記遅延クロック又は前記通常のクロックを出力できるように設定可能であり、
前記クロック選択信号の設定で前記遅延クロックを出力することにより、当該同期用フリップフロップのセットアップマージン又はホールドマージンを確保する
ことを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置で用いられるフリップフロップ及びこれを用いて構成した同期回路に関する。
【背景技術】
【０００２】
近年の半導体集積回路装置（以下、ＬＳＩと称す）はプロセスの微細化の恩恵を受け、１チップのＬＳＩに集積される回路規模が飛躍的に増大している。しかし、プロセスの微細化は恩恵だけではなくＬＳＩ設計の難易度を引き上げている。これによって、回路規模の増加に伴う論理回路の複雑化や高速化、試作コストの増大などを引き起こしている。しかも、そのＬＳＩを搭載する商品サイクル自体が短くなっており、その結果ＬＳＩ開発のＴＡＴも短縮せざるを得ない。つまりＬＳＩは年々大規模化していく回路をできるだけ少ない試作かつ短期間で設計することが要求されている。しかし、一回の試作で全ての機能が問題なく、且つ量産にも耐え得るタイミングマージンを有するＬＳＩを設計するのは甚だ困難である。
【０００３】
ＬＳＩ上で実現される回路構造は特殊な例を除き、有限個のクロックに従って動作する同期回路が採用される。同期回路はクロックのエッジに同期してデータを一時保持するフリップフロップと論理を構成する組み合わせ回路からなる。
【０００４】
最も基本的なフリップフロップは１対の入出力端子とクロック端子の３端子から構成され、クロック端子に印加されたクロック信号と呼ばれるデジタル信号の立ち上がりに、入力端子のデジタル信号を出力端子にコピーし、かつ、次のクロック信号の立ち上がりまでそのデジタル値を保持する機能を有する。
【０００５】
なお、現在ではスキャンパステストと呼ばれるテスト容易化手法に対応するため、上記の端子以外に試験用の信号入力であるＳｃａｎ  Ｉｎ端子、保持するための入力信号を入力端子もしくはＳｃａｎ  Ｉｎ端子から選択するＳｃａｎ  Ｅｎａｂｌｅ端子を持つものが一般的である。ここで、スキャンパステストとは大規模化する回路を効率的かつ容易にテストできるように、回路内のフリップフロップを鎖状に連結してシフトレジスタとしても動作するように設計しておき、試験時にこのシフト機能を利用して外部から各フリップフロップの値を任意に制御、観測できるようにするものである。
【０００６】
図５に従来のリセット付きスキャン用フリップフロップ回路例を示す。図５に示すように従来のフリップフロップは、データ信号ＤもしくはＳｃａｎ  Ｉｎ信号ＳＩを選択信号ＳＥに基づいて選択して出力するデータ選択部１と、データ選択部１からの信号をクロックＣＬＫに同期して出力する第１のクロック制御部２と、リセット信号ＲＮがアクティブの時は強制的にリセット値を保持し、また、リセット信号ＲＮがアクティブでない時は第１のクロック制御部２からの出力信号をクロックＣＬＫに同期して一時的に保持するマスタラッチ部３と、マスタラッチ部３の出力信号をクロックＣＬＫに同期して出力する第２のクロック制御部４と、リセット信号ＲＮがアクティブの時は強制的にリセット値を保持し、また、リセット信号ＲＮがアクティブでない時は第２のクロック制御部４からの出力信号をクロックＣＬＫに同期して一時的に保持するスレーブラッチ部５と、を有する構成である。スレーブラッチ部５から出力された信号は端子Ｎ０１から出力データＱとして出力される。
【０００７】
データ選択部１には選択信号ＳＥを反転させるインバータＩＮＶ８の出力端子ＳＥ＿ｎ、及びインバータＩＮＶ８の出力を反転させるインバータＩＮＶ９の出力端子ＳＥ＿ｐが接続されている。
【０００８】
第１のクロック制御部２、第２のクロック制御部４にはクロックＣＬＫを反転させるインバータＩＮＶ６の出力端子ＣＬＫ＿ｎ、及びインバータＩＮＶ６の出力を反転させるインバータ７の出力端子ＣＬＫ＿ｐが接続されている。
【０００９】
マスタラッチ部３、スレーブラッチ部５にはクロックＣＬＫを反転させるインバータＩＮＶ６の出力端子ＣＬＫ＿ｎ、インバータＩＮＶ６の出力を反転させるインバータ７の出力端子ＣＬＫ＿ｐ及びリセット信号ＲＮを反転させるインバータＩＮＶ１の出力が接続されている。
【００１０】
データ選択部１は、データ信号Ｄを信号入力とするトランスファーゲートＴＧ１の出力と、Ｓｃａｎ  Ｉｎ信号ＳＩを信号入力とするトランスファーゲートＴＧ２の出力が接続され、トランスファーゲートＴＧ１、ＴＧ２の制御端子にはインバータＩＮＶ８の出力端子ＳＥ＿ｎ及びインバータＩＮＶ９の出力端子ＳＥ＿ｐが接続されている。
【００１１】
第１のクロック制御部２は、データ選択部１からの出力信号を反転するインバータＩＮＶ２とクロック信号ＣＬＫに同期してＯＮ／ＯＦＦするトランスファーゲートＴＧ３とを有する構成であり、トランスファーゲートＴＧ３にはＩＮＶ６の出力端子ＣＬＫ＿ｎ及びＩＮＶ７の出力端子ＣＬＫ＿ｐが接続されている。
【００１２】
マスタラッチ部３は、ノア（否定論和）ＮＯＲ１とノアＮＯＲ１の出力信号を反転させるインバータＩＮＶ３とインバータＩＮＶ３の出力とノアＮＯＲ１の入力間に直列に挿入されたトランスファーゲートＴＧ４を有する構成であり、ＮＯＲ１の片側の入力にはリセット信号ＲＮの反転であるインバータＩＮＶ１の出力信号が接続され、トランスファーゲートＴＧ４にはインバータＩＮＶ６の出力端子ＣＬＫ＿ｎ及びインバータＩＮＶ７の出力端子ＣＬＫ＿ｐが接続されている。
【００１３】
第２のクロック制御部４は、マスタラッチ３の出力信号を反転するインバータＩＮＶ４とクロックＣＬＫに同期してＯＮ／ＯＦＦするトランスファーゲートＴＧ５とを有する構成であり、トランスファーゲートＴＥＧ５にはＩＮＶ６の出力端子ＣＬＫ＿ｎ及びＩＮＶ７の出力端子ＣＬＫ＿ｐが接続されている。
【００１４】
スレーブラッチ部５は、ノアＮＯＲ２とノアＮＯＲ２の出力信号を反転させるインバータＩＮＶ５とインバータＩＮＶ５の出力とノアＮＯＲ２の入力間に直列に挿入されたトランスファーゲートＴＧ６を有する構成であり、ＮＯＲ２の片側の入力にはリセット信号ＲＮの反転であるインバータＩＮＶ１の出力信号が接続され、トランスファーゲートＴＧ６にはインバータＩＮＶ６の出力端子ＣＬＫ＿ｎ及びインバータＩＮＶ７の出力端子ＣＬＫ＿ｐが接続されている。
【００１５】
なお、トランスファーゲートは、ＰＭＯＳトランジスタとＮＭＯＳトランジスタのソース、ドレインを共通に接続した構成であり、ＰＭＯＳトランジスタのゲートとＮＭＯＳトランジスタのゲートに反転の関係の制御信号を印加することによりスイッチとして動作する。
【００１６】
次に、図５に示したリセット付きスキャンフリップフロップの動作について説明する。なお、図５に示すフリップフロップは従来技術のものであるが、以下説明するこの従来技術の動作は、本発明の実施形態に係るフリップフロップにおいても当然にその基礎動作として機能するものである。まず、リセット信号ＲＮにＬレベルが入力された時はインバータＩＮＶ１の出力はＨレベルに固定され、それらはマスタラッチ部３とスレーブラッチ部４内のＮＯＲ１、ＮＯＲ２の片側の入力をＨレベルに固定する。その結果ＮＯＲ１とＮＯＲ２の出力はクロックやデータ入力Ｄの値に依存することなくＬレベルに固定され、それが端子Ｎ０１を介して出力データＱとして出力される。この動作はリセット信号ＲＮにＨレベルが入力されるまで保持される。
【００１７】
次に、リセット信号ＲＮがＨレベル（通常動作）時の動作を説明する。まず、クロック信号ＣＬＫはＬレベルで保持されている。従って、第１のクロック制御部２のトランスファーゲートＴＧ３、及びスレーブラッチ部５のトランスファーゲートＴＧ６はそれぞれＯＮ状態で保持され、マスタラッチ部３のトランスファーゲートＴＧ４、第２のクロック制御部４のトランスファーゲートＴＧ５はそれぞれＯＦＦ状態で保持される。
【００１８】
このような状態でデータ選択信号ＳＥの値に応じて、もし選択信号ＳＥがＬレベルの場合はデータ選択部１のトランスファーゲートＴＧ１がＯＮ状態、トランスファーゲートＴＧ２がＯＦＦ状態となるためデータ信号Ｄがデータ選択部１の出力となり第１のクロック制御部２に入力される。第１のクロック制御部２ではトランスファーゲートＴＧ３がＯＮ状態となっているためデータ選択部１からの入力をインバータＩＮＶ２で反転したレベルをマスタラッチ部３に出力する。マスタラッチ部３は第１のクロック制御部２より入力された信号を片側の入力をＬレベルで固定されたノアＮＯＲ１を通して第２のクロック制御部４に出力する。前述したとおりトランスファーゲートＴＧ４はＯＦＦ状態であるため何も出力しない。第２のクロック制御部４ではＴＧ５がＯＦＦ状態であるため、スレーブラッチ部５には何も出力しない。
【００１９】
次に、クロック信号ＣＬＫが立ち上がると第１のクロック制御部２はトランスファーゲートＴＧ３がＯＦＦするためマスタラッチ部３に対するデータの出力を停止する。マスタラッチ部３ではクロックＣＬＫの立ち上がりに同期してトランスファーゲートＴＧ４がＯＮし、インバータＩＮＶ３の出力信号がトランスファーゲートＴＧ４を介して片側の入力がＬレベルに固定されているノアＮＯＲ１の入力に帰還されるためクロックＣＬＫがＨレベルの間出力信号は保持される。
【００２０】
第２のクロック制御部４はクロックＣＬＫが立ち上がるとトランスファーゲートＴＧ５がＯＮするためマスタラッチ部３から受け取った信号を反転してスレーブラッチ部５に出力する。スレーブラッチ部５は第２のクロック制御部４から受け取った信号を片側がＬレベルで固定されたノアＮＯＲ２で反転して端子Ｎ０１から出力する。
【００２１】
続いて、クロックＣＬＫが再び立ち下がると、第２のクロック制御部４はトランスファーゲートＴＧ５が再びＯＦＦするためスレーブラッチ部５へのデータの出力を停止する。スレーブラッチ部５ではトランスファーゲートＴＧ６がＯＮしてインバータＩＮＶ５の出力が片側がＬレベルで固定されたノアＮＯＲ２の入力に帰還されるためクロックＣＬＫがＬレベルの間出力信号は保持される。
【００２２】
以上の動作をまとめると、図６に示す真理値表のようになる。ここで、図６に示した「Ｘ」はＤｏｎ’ｔ  Ｃａｒｅを示し、「↑」はクロックの立ち上がりを示している。さらに「Ｎｏｒｍａｌ」は通常動作時を示し「Ｓｃａｎ  Ｓｈｉｆｔ」はスキャン動作を示している。
【００２３】
また、フリップフロップ回路には、正常な動作を保証するためにクロックとデータとの間にセットアップ時間、ホールド時間と呼ばれる制約が存在する。上記のような立ち上がりでデータをラッチするタイプのフリップフロップでは、クロックが立ち上がる前にデータが確定していなければならない期間をセットアップ時間、クロックが立ち上がった後データを確定させておかなければならない期間をホールド時間と呼ぶ。このセットアップ時間とホールド時間の具体例は、後述する図８の説明で述べる。もしこの制約を守らない場合はフリップフロップにおいて保持される値が予想できず回路の誤動作を引き起こす。
【００２４】
同期回路が正常に動作する条件は図７に示した同期回路を例とすると、以下の２式に集約される。図７において、ＦＦ１，ＦＦ２は同期用のフリップフロップ、ＣＯＭＢ１は組み合わせ回路、Ｃｌｏｃｋｔｒｅｅ１はクロックツリー、ＣＬＫ１，ＣＬＫ２はそれぞれフリップフロップＦＦ１，ＦＦ２に到達するクロックを表している。また、ＦＦ１の前段、ＦＦ２の後段は省略してある。
【００２５】
ＴＭＡＸ＞ＤＱ１＋ＤＣＯＭＢ＋ＣＳＥＴＵＰ＋（ＤＣＬＫ１−ＤＣＬＫ２）  …（１）
ＤＱ１＋ＤＣＯＭＢ＞ＣＨＯＬＤ＋（ＤＣＬＫ２−ＤＣＬＫ１）  …（２）    
但し、ＴＭＡＸは動作周期、ＤＱ１はフリップフロップＦＦ１のクロック端子ＣＫから出力端子Ｑまでの遅延時間、ＤＣＯＭＢは組み合わせ回路ＣＯＭＢ１の遅延時間、ＣＳＥＴＵＰはＦＦ２におけるセットアップ時間、ＣＨＯＬＤはホールド時間を表し、ＤＣＬＫ１とＤＣＬＫ２はクロック信号ＣＬＫの入力端子Ｈ０１からクロックツリーを介しＦＦ１，ＦＦ２のクロック端子ＣＫまでのそれぞれの遅延時間を表している（図８を参照）。式（１）、式（２）は全てのフリップフロップ間で満たされている必要がある。
【００２６】
例えば、上述した同期回路をクロック周波数１００ＭＨｚで動作させたい時は、全てのフリップフロップ間で式（１）の右辺が１００ＭＨｚの周期１０ｎｓより小さい必要がある。また、式（２）は動作周波数に関係なく満たされている必要がある。この２式を直感的に理解するためにタイミングチャートを図８として示す。
【００２７】
図８より送り側のフリップフロップＦＦ１のデータは受け側のフリップフロップＦＦ２の次のアクティブエッジ（図８の構成例の場合ではクロックの立ち上がり）のセットアップ時間ＣＳＥＴＵＰより早くフリップフロップＦＦ２のデータ端子Ｄに到達すればよいことがわかる（図８中の４−１）。
【００２８】
また、送り側のフリップフロップＦＦ１からのデータは受け取り側フリップフロップＦＦ２の同じアクティブエッジよりホールド時間ＣＨＯＬＤ分遅くフリップフロップＦＦ２のデータ端子Ｄに到達すればよいことがわかる（図８中の４−２）。
【００２９】
通常、図８に示すタイミングはＬＳＩ開発時に静的タイミング検証（Ｓｔａｔｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ：以下、ＳＴＡと称す）や論理シミュレータによる動的タイミング検証（Ｄｙｎａｍｉｃ  Ｔｉｍｉｎｇ  Ａｎａｌｙｓｉｓ）により十分検証される。
【発明の開示】
【発明が解決しようとする課題】
【００３０】
ＬＳＩが正常に動作しない場合、原因箇所をつきとめその後再試作が必要となるため開発遅延が生じることになる。特に、近年のＬＳＩはＣＰＵを内部に実装しＣＰＵでソフトウェアを動作させＬＳＩ全体の制御を行なうものが多いため、ＬＳＩが正常に動作しない場合ソフトウェアの開発にまで影響を及ぼす可能性がある。
【００３１】
同期回路構造を有するＬＳＩ（例えば、図７に示すような回路）が誤動作する原因は検証不足による論理不良やダスト等による製造上の不良を除けば結局フリップフロップにおけるセットアップ、ホールドマージン不良によるものである。無論これらは前述したＳＴＡなどで十分検証されているはずであるが、ＩＲドロップと呼ばれる電源ラインの落ち込みやクロストークと呼ばれる他の配線からの影響により実際の遅延値とシミュレーション値との間に誤差が生じてしまう。その結果確保していたマージンを食いつぶし誤動作を引き起こしてしまう場合がある。
【００３２】
試作したＬＳＩが誤動作するような場合、通常電源電圧を上下させて動作電圧を探ることが行なわれる。例えば、電源電圧を上げて各素子の遅延を小さくすることによりセットアップマージンを確保したり、また、逆に電源電圧を下げて各素子の遅延を大きくすることによりホールドマージンを確保することもできる。しかし、これらはセットアップ、ホールドマージン不良のどちらか一方が発生している時のみ有効で、セットアップ、ホールドマージン不良が同時に発生している場合は対応ができない。また、再試作するためには不良箇所の特定が必須であるが現状では不良箇所の予想はできても確認することはできない。
【００３３】
本発明は、上述した従来の課題を解決するためになされたもので、その目的はＬＳＩに搭載されている全てのスキャン用フリップフロップ内部のクロックラインの遅延を制御することで擬似的にセットアップマージン、ホールドマージンを増やすことにより不良チップを正常動作させ開発遅延を最小限にとどめ、また、失敗のない再試作をするために不良箇所の確認をできるようにすることにある。
【課題を解決するための手段】
【００３４】
前記課題を解決するために、本発明は主として次のような構成を採用する。  
入力端子、出力端子、クロック端子、テスト用信号を入力するＳｃａｎ Ｉｎ端子、前記入力端子又は前記Ｓｃａｎ Ｉｎ端子のいずれかの端子から保持するための入力を選択するＳｃａｎ Ｅｎａｂｌｅ信号用のＳｃａｎ Ｅｎａｂｌｅ端子、を備えたスキャン用フリップフロップであって、
前記Ｓｃａｎ Ｅｎａｂｌｅ信号によって選択された入力を一時的に保持するマスタラッチ部及びスレーブラッチ部を有し、
前記クロック端子からのクロック信号を遅延させる遅延素子を設け、
前記遅延素子を介したクロックと前記遅延素子を介さないクロックとを入力し、いずれかのクロックをクロック選択信号によって出力するクロック選択部を設ける構成とする。
【００３５】
また、入力端子、出力端子、クロック端子、テスト用信号を入力するＳｃａｎ Ｉｎ端子、前記入力端子又は前記Ｓｃａｎ Ｉｎ端子のいずれかの端子から保持するための入力を選択するＳｃａｎ Ｅｎａｂｌｅ信号用のＳｃａｎ Ｅｎａｂｌｅ端子、を備えた複数の同期用フリップフロップと、
前記同期用フリップフロップ間に接続される論理回路と、からなる同期回路の半導体集積回路において、
前記複数の同期用フリップフロップは、
前記Ｓｃａｎ Ｅｎａｂｌｅ信号によって選択された入力を一時的に保持するマスタラッチ部及びスレーブラッチ部を有し、
前記クロック端子からのクロック信号を遅延させる遅延素子を設け、
前記遅延素子を介した遅延クロックと前記遅延素子を介さない通常のクロックとを入力し、クロック選択信号によっていずれかのクロックを出力するクロック選択部を設け、
前記クロック選択信号は、前記複数の同期用フリップフロップごとに前記遅延クロック又は前記通常のクロックを出力できるように設定可能であり、
前記クロック選択信号の設定で前記遅延クロックを出力することにより、当該同期用フリップフロップのセットアップマージン又はホールドマージンを確保する構成とする。
【発明の効果】
【００３６】
本発明によると、試作したＬＳＩが予測以上のＩＲドロップやクロストークなどにより、セットアップもしくはホールドマージン不良が発生し誤動作してしまう場合でもタイミングマージンを確保することが可能となる。
【００３７】
また、タイミング不良が疑われるデータパスの修正による効果の確認が可能となる。
【発明を実施するための最良の形態】
【００３８】
本発明の実施形態に係るスキャン用フリップフロップについて、図１〜図４を参照しながら以下詳細に説明する。図１は本発明の実施形態に係るリセット付きスキャン用フリップフロップの構成を示す回路図である。図２は図１のフリップフロップを用いた同期回路の構成例である。図３は図１においてセットアップマージンが不足している場合のタイミングチャートを示す図である。図４は本実施形態を適用したことによるタイミングチャートにおける改善例を示す図である。
【００３９】
図面において、６はデータ選択部、７は第１のクロック制御部、８はマスタラッチ部、９は第２のクロック制御部、１０はスレーブラッチ部、１１はクロック遅延素子、１２はクロック選択部、１３はＬＥ制御部、１４はクロック選択信号ラッチ部、ＴＧ７〜ＴＧ１６はトランスファーゲート、ＩＮＶ１０〜ＩＮＶ２２はインバータ、ＮＯＲ３〜ＮＯＲ５はノア、ＡＮＤ１はアンド、ＣＯＭＢ２＿Ｍ−１，ＣＯＭＢ２＿Ｍ，ＣＯＭＢ３＿Ｍ＋１は組合せ回路、Ｃｌｏｃｋｔｒｅｅ２はクロックツリー、ＦＦ＿３１，ＦＦ＿３２，ＦＦ＿３３，ＦＦ＿３４はフリップフロップ、ＦＦ＿４１，ＦＦ＿４２，ＦＦ＿４３，ＦＦ＿４４はフリップフロップ、をそれぞれ表す。
【００４０】
図１に示す本発明の実施形態に係るリセット付きスキャンフリップフロップ回路は、図５に示す従来のリセット付きスキャンフリップフロップ回路との比較において、リセット付きスキャンフリップフロップ回路にクロック信号ＣＬＫを遅延させる遅延素子Ｄｅｌａｙ１と、遅延素子Ｄｅｌａｙ１を介し遅延させたクロック信号と通常のクロック信号を選択するクロック選択部１２と、クロック選択部１２の選択信号をラッチするＬａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥに応じてＳｃａｎ  Ｉｎ信号ＳＩを内部に伝播するＬＥ制御部１３と、ＬＥ制御部１３からの出力に応じてクロック選択信号をラッチし且つリセット信号ＲＮ及び選択信号ＳＥに応じてリセットされる選択信号ラッチ部１４と、が追加されている点で従来のスキャン用フリップフロップ回路と構成上異なっている。
【００４１】
次に、本発明の実施形態に係るリセット付きスキャンフリップフロップの動作について説明する。まず、リセット信号ＲＮ、Ｌａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥ及び選択信号ＳＥはＬレベルに固定されている。このとき、マスタラッチ部８及びスレーブラッチ部１０は、従来のフリップフロップと同様にＬレベルを保持する。また、クロック選択信号ラッチ部１４のノアＮＯＲ５もＬレベルを保持し、ノアＮＯＲ５の出力を反転するインバータＩＮＶ２２の出力ＣＬＫ＿ｓｅｌ＿ｎと共にクロック信号選択部１２へと出力される。その結果クロック信号選択部１２では通常のクロック（遅延素子１１を介さないクロック信号）が選択される。なお、選択信号ＳＥ（スキャンイネーブル信号）がＨレベル時にリセット信号ＲＮをＬレベルにしてもクロック選択信号ラッチ部１４はリセットされない。リセット信号ＲＮ解除後、クロックを入力すれば通常と同じ動作のフリップフロップとなる。
【００４２】
リセット解除後、Ｌａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥと選択信号ＳＥがＨレベルの場合、ＬＥ制御部１３ではトランスファーゲートＴＧ１５がオン状態となりＳｃａｎ  Ｉｎ信号ＳＩからの信号をラッチ部１４に出力する。クロック選択信号ラッチ部１４では、ＬＥ制御部１３からの出力を片側をＨレベルで固定されているノアＮＯＲ５に入力してその出力信号ＣＬＫ＿ｓｅｌと、信号ＣＬＫ＿ｓｅｌをインバータＩＮＶ２２で反転したＣＬＫ＿ｓｅｌ＿ｎと共にクロック選択部１２に入力する。
【００４３】
クロック選択部１２ではクロック選択信号ラッチ部１４からの出力に応じて通常のクロック、遅延素子Ｄｅｌａｙ１を介したクロックのどちらかを選択してインバーターＩＮＶ１５に出力する。例えば、Ｓｃａｎ  Ｉｎ信号ＳＩがＬレベルの場合、クロック選択信号ＣＬＫ＿ｓｅｌとＣＬＫ＿ｓｅｌ＿ｎはそれぞれＨレベル、Ｌレベルとなりクロック選択部１２中のトランスファーゲートＴＧ１３、ＴＧ１４がそれぞれオフ、オンになり遅延素子Ｄｅｌａｙ１を介したクロック信号がインバーターＩＮＶ１５に出力される。その後Ｌａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥをＬレベルにすることによりＬＥ制御部１３内のトランスファーゲートＴＧ１５がオフとなり、クロック選択信号ラッチ部１４への出力を停止する。
【００４４】
一方、クロック選択信号ラッチ部１４ではトランスファーゲートＴＧ１６がオンとなりインバーターＩＮＶ２１の信号がノアＮＯＲ５の片側の入力にフィードバックされることにより選択信号のレベルがラッチされる。その結果Ｌａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥがＬレベルになる直前に選択されているクロックパス（通常もしくは遅延素子Ｄｅｌａｙ１を介したクロックパス）が保持される。
【００４５】
図２に本実施形態に係るリセット付きスキャンフリップフロップを使用した同期回路例を示す。各フリップフロップのＬａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥピンにＬＥ信号を供給する外部ピンＬＥが追加されている以外、従来の同期回路となんら変わりない。スキャンチェーンｃｈａｉｎ１，２はそれぞれ別のスキャンチェーンを構成しており、外部Ｓｃａｎ  Ｉｎ端子より幾つかの同一スキャンチェーン内のフリップフロップを経由してそれぞれＦＦ＿３１、ＦＦ＿４１のＳＩ端子に接続されているものとする。また、ＦＦ＿３４、ＦＦ＿４４の出力はそれぞれ同一スキャンチェーン内の次のフリップフロップのＳＩ端子に接続されているものとする。なお、この図では簡略化のためＦＦ＿３１からＦＦ＿３４、ＦＦ＿４１からＦＦ＿４４をそれぞれ同一のスキャンチェーンｃｈａｉｎ１、ｃｈａｉｎ２に割り当ててあるが実際には同一チェーン内に割り当てる必要はなく、いずれかのチェーングループに属していれさえすればよい。
【００４６】
次に、本発明の実施形態に係るフリップフロップの効果について説明する。図２中のフリップフロップＦＦ＿３１からＦＦ＿４１へのパスにおいてセットアップマージン不良が疑われた場合を想定する。これをタイミングチャートで記述すると図３のようになっていると予想される。なお、ＤＱ１はフリップフロップＦＦ＿３１のクロック端子ＣＫから出力端子Ｑへの出力遅延、ＤＣＯＭＢ１はフリップフロップＦＦ＿３１からＦＦ＿４１への組み合わせ回路による遅延、ＣＳＥＴＵＰ１はフリップフロップＦＦ＿４１のデータ入力端子Ｄに対するセットアップ時間、ＣＫはクロック信号端子Ｈ０４におけるクロック信号（図３を参照）、ＣＫ＿３１、ＣＫ＿４１はフリップフロップＦＦ＿３１、ＦＦ＿４１のクロック端子におけるクロック信号、ＤＣＫ＿３１、ＤＣＫ＿４１はそれぞれクロック信号端子Ｈ０４からフリップフロップＦＦ＿３１、ＦＦ＿４１への到達遅延、Ｔ１は動作周期を表している。
【００４７】
図３は、ＣＫ＿３１と、トリガーとして出力されたデータがＤＱ１、ＤＣＯＭＢ１分の遅延後フリップフロップＦＦ＿４１のデータ入力信号Ｄに到達していることを表している。しかし、フリップフロップＦＦ＿４１のセットアップ時間ＣＳＥＴＵＰ１を満たしていないため誤動作する。これは前述した背景技術欄の式（１）が満たされていないことに相当する。
【００４８】
図示するように、フリップフロップ間のデータ信号が次段のフリップフロップ（図２でＦＦ＿４１）のセットアップ時間（図３のＣＳＥＴＵＰ１）を満たさない場合は式（１）より、データ信号の遅延量（ＤＱ１＋ＤＣＯＭＢ１）、フリップフロップのセットアップ時間（ＣＳＥＴＵＰ１）を小さくするか、受け側のフリップフロップのクロック（ＣＫ＿４１）を遅延させれば、セットアップマージンを確保できる。前述したように従来技術では、電圧を上げるなどしてデータ信号の遅延量を少なくすることによりセットアップマージンを確保することが行われていたが、この方法ではＬＳＩ全体が影響を受けてしまい、逆にホールドマージンを減少させるという課題が生じる。
【００４９】
そこで、本発明の実施形態では、以下の手順で特定の受け側のフリップフロップへのクロック到達時間を遅らせることが可能なため、他のフリップフロップ間のホールドマージンに影響を及ぼすことなくセットアップマージンを確保することができる。
【００５０】
まず、手順１として、Ｓｃａｎ  Ｅｎａｂｌｅ信号をアクティブ（スキャンシフトモード）にする。手順２として、クロック信号の到達を遅らせたいフリップフロップのＳｃａｎ  Ｉｎ端子の値をＬレベル、それ以外のフリップフロップのＳｃａｎ  Ｉｎ端子の値をＨレベルになるように、外部Ｓｃａｎ  Ｉｎ端子よりシリアルデータを入力する（本実施形態においては、ＦＦ＿４１のＳｃａｎ  Ｉｎ端子のみＬレベルに設定する）。
【００５１】
手順３として、シフト用のクロックを一時的に止め、外部からＬａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥに１パルス入力する。手順４として、必要ならばリセット信号を入力する。手順５として、Ｓｃａｎ  Ｅｎａｂｌｅ信号を非アクティブ（通常モード）にする。手順６として、通常動作クロックを入力し、処理を開始する。
【００５２】
上述した手順によりフリップフロップＦＦ＿４１のクロックを本実施形態による内蔵のクロック遅延素子１１で遅延させた時のタイミングチャートを図４に示す。
【００５３】
図４において、点線で示しているＣＫ＿４１は元のフリップフロップＦＦ＿４１のクロック端子におけるクロック信号である。本実施形態に関するＤｅｌａｙｅｄ  ＣＫ＿４１は、クロック遅延素子１１（図１を参照）を介したＦＦ＿４１の内部クロック、図４に示すＤＩＣＬＫはクロック遅延素子１１の遅延量を表している。図４に示すタイミングチャートによって、フリップフロップＦＦ＿４１が使用するクロックがクロック遅延素子１１によって遅延させられることによりクロックのアクティブエッジ（図４では立ち上がり）に対して設定されるセットアップ時間が元のクロックＣＫ＿４１の時よりも相対的に遅くなるためセットアップマージンが増加することが理解できる。なお、本実施形態によるクロック遅延素子量ＤＩＣＬＫは経験上そのクロックツリー内の最大スキューをカバーできる程度の遅延が望ましい。
【００５４】
また、ホールドマージン不良が疑われる場合も同様にして上述した手順に基づいて、ホールドマージン不良が疑われるフリップフロップ間の送り側のクロックを遅延させることによりホールドマージンが確保されるのは明らかである。
【００５５】
なお、確保されるタイミングマージン（セットアップマージンとホールドマージン）はクロック遅延素子の遅延量に依存するが、通常は、本実施形態ではクロック信号の立ち上がりエッジをトリガーとして出力信号が更新されるフリップフロップを例として説明したが、これに限られるものでなくクロック信号の立下りエッジをトリガーとするフリップフロップでも当然に実現できる。
【００５６】
以上説明したように、本発明の実施形態に係るスキャン用フリップフロップは次のような構成、機能ないし作用を奏することを主要な特徴とするものである。すなわち、本実施形態に係るフリップフロップ内部にクロック遅延素子を設け、遅延無しのクロックパスと遅延素子を通したクロックパスの選択を、Ｓｃａｎ  Ｉｎ信号ＳＩ及びＬａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥによりフリップフロップごとに設定を可能とするものである。これによって、セットアップマージン不足のためにターゲット周波数で動作しないＬＳＩを動作させることができ、また、マージン不足箇所の特定が可能となる（フリップフロップ毎にクロック遅延素子を設置していて、遅延の有無で動作確認をするので）。
【００５７】
さらに、本発明は次のような具体的な実施形態を含むものである。すなわち、Ｓｃａｎ  Ｅｎａｂｌｅ信号ＳＥの値に応じて入力信号ＤまたはＳｃａｎ  Ｉｎ信号ＳＩを一時的保持するマスタラッチ部及びスレーブラッチ部を有し、クロック信号ＣＬＫを遅延させる素子を有するマスタスレーブ型のスキャン用フリップフロップ回路であり、さらに、前記スキャン用フリップフロップ回路において、前記遅延素子を介したクロック信号と前記遅延素子を介さないクロック信号を選択するクロック選択信号を有し、前記クロック選択信号はＳｃａｎ  Ｉｎ信号ＳＩから供給され信号を保持するために、Ｌａｔｃｈ  Ｅｎａｂｌｅ信号ＬＥによって制御されるラッチ回路を備えたスキャン用フリップフロップである。また、このようなフリップフロップを用いて同期回路を構成するものである。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施形態に係るリセット付きスキャン用フリップフロップの構成を示す回路図である。
【図２】図１のフリップフロップを用いた同期回路の構成例である。
【図３】スキャン用フリップフロップにおいてセットアップマージンが不足している場合のタイミングチャートを示す図である。
【図４】本発明の実施形態を適用したことによるタイミングチャートにおける改善例を示す図である。
【図５】従来技術に関するリセット付きスキャン用フリップフロップの構成を示す回路図である。
【図６】従来技術に関するスキャン用フリップフロップの真理値表である。
【図７】従来技術に関するフリップフロップを用いた同期回路例を示す図である。
【図８】図７に示す従来技術の同期回路例のタイミングチャートを示す図である。
【符号の説明】
【００５９】
１，６  データ選択部
２，７  第１のクロック制御部
３，８  マスタラッチ部
４、９  第２のクロック制御部
５，１０  スレーブラッチ部
１１  クロック遅延素子
１２  クロック選択部
１３  ＬＥ制御部
１４  クロック選択信号ラッチ部
４−１  タイミングチャート（セットアップ確認エリア）
４−２  タイミングチャート（ホールド確認エリア）
ＴＧ１〜ＴＧ１６  トランスファーゲート
ＩＮＶ１〜ＩＮＶ２２  インバータ
ＮＯＲ１〜ＮＯＲ５  ノア
ＡＮＤ１  アンド
ＦＦ１，ＦＦ２  フリップフロップ
ＣＯＭＢ１，ＣＯＭＢ２＿Ｍ−１，ＣＯＭＢ２＿Ｍ，ＣＯＭＢ３＿Ｍ＋１  組合せ回路
Ｃｌｏｃｋｔｒｅｅ１，Ｃｌｏｃｋｔｒｅｅ２  クロックツリー
ＦＦ＿３１，ＦＦ＿３２，ＦＦ＿３３，ＦＦ＿３４  フリップフロップ
ＦＦ＿４１，ＦＦ＿４２，ＦＦ＿４３，ＦＦ＿４４  フリップフロップ
【図１】
2006300669.tif 000003
【図２】
2006300669.tif 000004
【図３】
2006300669.tif 000005
【図４】
2006300669.tif 000006
【図５】
2006300669.tif 000007
【図６】
2006300669.tif 000008
【図７】
2006300669.tif 000009
【図８】
2006300669.tif 000010