(57)【特許請求の範囲】
【請求項１】
スキャン入力信号を入力するスキャン入力端子と、データ入力信号を入力するデータ入力端子と、テスト制御信号を入力するテスト制御端子と、クロック信号を入力するクロック端子と、データ出力信号を出力するデータ出力端子と、
前記スキャン入力端子に接続された第１の入力端と前記データ入力端子に接続された第２の入力端と前記テスト制御端子に接続された選択入力端と出力端とを備え選択入力端に入力する前記テスト制御信号が第１の信号レベルのときに前記スキャン入力信号を選択して出力端から出力し前記テスト制御信号が第２の信号レベルのときに前記データ入力信号を選択して出力端から出力する第１のマルチプレクサと、
前記第１のマルチプレクサの出力端に接続されたデータ入力端と前記クロック端子に接続されたトリガ入力端と出力端とを備え、前記クロック信号が第１のクロックレベルのときに前記第１のマルチプレクサの出力データを入力して実質的にそのまま出力端から出力し、前記クロック信号が第１のクロックレベルから第２のクロックレベルに変化したときに入力中のデータをラッチして前記クロック信号が第２のクロックレベルになるとラッチしたデータを出力端から出力する第１のラッチ回路と、
第１の入力端と前記第１のラッチ回路の出力端に接続された第２の入力端と前記テスト制御端子に接続された選択入力端と出力端とを備え前記テスト制御信号が第１の信号レベルのときに第１の入力端の入力信号を選択して出力端から出力し、前記テスト制御信号が第２の信号レベルのときに第２の入力端に入力する信号を選択して出力端から出力する第２のマルチプレクサと、
前記第２のマルチプレクサの出力端に接続されたデータ入力端と前記クロック端子に接続されたトリガ入力端と出力端とを備え出力端が前記データ出力端子に接続されるとともに前記第２のマルチプレクサの第１の入力端に接続され、前記クロック信号が第２のクロックレベルのときに前記第２のマルチプレクサの出力データを入力して実質的にそのまま出力端から出力し、前記クロック信号が第２のクロックレベルから第１のクロックレベルに変化したときに入力中のデータをラッチして前記クロック信号が第１のクロックレベルになるとラッチしたデータを出力端から出力する第２のラッチ回路とを備え、
通常動作モードでは、前記テスト制御信号が第２の信号レベルに固定され前記クロック信号が所定の時間周期で第１のクロックレベルと第２のクロックレベルとの間で変化して入力され、テストモードでは、前記テスト制御信号が第１の信号レベルのときに前記クロック信号が第１のクロックレベルから第２のクロックレベルへ変化し、前記クロック信号が第２のクロックレベルのときに前記テスト制御信号が第１の信号レベルから第２の信号レベルに変化し、前記テスト制御信号が第２の信号レベルのときに前記クロック信号が第２のクロックレベルから第１のクロックレベルへ変化し、前記クロック信号が第１のクロックレベルのときに前記テスト制御信号が第２の信号レベルから第１の信号レベルに変化して入力されることを特徴とするスキャン用フリップフロップ。
【請求項２】
前記第１のラッチ回路の出力端と前記第２のマルチプレクサの第２の入力端との間に遅延回路を挿入して設けたことを特徴とする請求項１記載のスキャン用フリップフロップ。
【請求項３】
前記第２のマルチプレクサの出力端と前記第２のラッチ回路のデータ入力端との間に遅延回路を挿入して設けたことを特徴とする請求項１記載のスキャン用フリップフロップ。
【請求項４】
前記クロック信号が遅延回路を介して前記第１のラッチ回路のトリガ入力端に入力することを特徴とする請求項１記載のスキャン用フリップフロップ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スキャン用フリップフロップおよびスキャンテスト回路に関し、特に、スキャン用フリップフロップが近接して配置されてスキャン用フリップフロップ間のスキャンデータの信号遅延が極めて小さいときにも誤動作を防止できるスキャン用フリップフロップと、これを縦列に接続して構成されたスキャンテスト回路に関する。
【０００２】
【従来の技術】
ＬＳＩの製造工程で発生した故障を効率よく検出するために、スキャンパス方式と呼ばれるテスト方式が広く用いられている。図５は、スキャンパス方式の模式図である。スキャンテスト回路２０は、スキャン用フリップフロップ２１−１〜２１−ｎにより構成され、テスト制御信号ＳＥＮがハイレベルであるスキャンモードのときには１個のシフトレジスタとして動作し、テスト制御信号ＳＥＮがローレベルの通常動作モードのときには被テスト回路１０の一部として動作する。スキャンテストでは、先ず、スキャンテスト回路２０にスキャンデータを設定する。テスト制御信号ＳＥＮをハイレベルとしてスキャンモードとし、スキャンデータをクロックＣＬＫがローレベルからハイレベルへ変化する毎にスキャンデータ入力ＳＣＩＮからシリアルに入力するとともに順次シフトしてスキャン用フリップフロップ２１−１〜２１−ｎのすべてにスキャンデータを設定する。これにより、各スキャン用フリップフロップの出力ＳＣ１〜ＳＣｎに接続された被テスト回路１０の内部節点の初期値が決められる。次に、テスト制御信号ＳＥＮをローレベルとして通常動作モードとし、被テスト回路１０に回路入力を与えて動作させ回路出力を観測したのち、被テスト回路１０の内部節点の動作応答結果をデータ信号Ｄ１〜Ｄｎとしてスキャン用フリップフロップ２１−１〜２１−ｎに取り込んで保持する。次に、テスト制御信号ＳＥＮを再びハイレベルとしてスキャンモードとし、クロックＣＬＫを与えて順次シフトしてスキャン用フリップフロップ２１−ｎの出力ＳＣｎを観測することにより被テスト回路１０の内部節点の動作応答結果を知ることができ、被テスト回路１０の故障を効率よく検出することができる。
【０００３】
図６（ａ）は、特開平４−７２５８３号公報に記載された第１の従来例のスキャン用フリップフロップの回路図である。スキャン用フリップフロップ２１は、テスト制御信号ＳＥＮがハイレベル（論理値１に対応）のときにスキャン入力信号ＳＩＮを選択して出力し、テスト制御信号ＳＥＮがローレベル（論理値０に対応）のときにデータ入力信号ＤＩＮを選択して出力するマルチプレクサ（ＭＵＸ）２２と、クロックＣＬＫがローレベルのときにマルチプレクサ２２の出力を入力してそのまま出力し、クロックＣＬＫがハイレベルのときにはラッチしたデータを出力するラッチ回路２３と、クロックＣＬＫがハイレベルのときにラッチ回路２３のＱ出力を入力してそのままスキャン用フリップフロップ２１のデータ出力信号ＱＯとして出力し、クロックＣＬＫがローレベルのときにはラッチしたデータを出力するラッチ回路２５とにより構成される。ラッチ回路２３は、ラッチ回路２５と同様なラッチ回路２６とそのトリガ入力端ＧにクロックＣＬＫの反転クロックＣＬＫＢを供給するインバータ回路２７とを含んでいる。
【０００４】
図６（ｂ）は、スキャン用フリップフロップ２１の動作タイミング図である。テスト制御信号ＳＥＮがハイレベルで、マルチプレクサ２２はスキャン入力信号ＳＩＮを選択している場合を示している。ラッチ回路２３の出力は、クロックＣＬＫのハイレベルからローレベルへの変化に同期してスキャンデータＳＤ１，ＳＤ２を順次出力し、ラッチ回路２５の出力すなわちスキャン用フリップフロップ２１のデータ出力信号ＱＯは、半クロックサイクル遅れてクロックＣＬＫのハイレベルからローレベルへの変化に同期してスキャンデータＳＤ０，ＳＤ１，ＳＤ２を順次出力する。
【０００５】
【発明が解決しようとする課題】
図６（ａ）のスキャン用フリップフロップ２１を用いてスキャンテスト回路２０を構成した場合に、スキャン用フリップフロップのデータ出力信号ＱＯを出力するデータ出力端から次段のスキャン用フリップフロップのスキャンＳＩＮを入力するスキャン入力端までの配線負荷容量が小さく、且つ、次段のスキャン用フリップフロップのクロックＣＬＫが遅延しているときには誤動作することがある。これについて図７を用いて説明する。
【０００６】
図７（ａ）は、誤動作が生じ易い配置を示す図であり、スキャン用フリップフロップ２１−１とスキャン用フリップフロップ２１−２とは近接して配置されているのでスキャン用フリップフロップ２１−１のデータ出力端からスキャン用フリップフロップ２１−２のスキャン入力端までの配線が短く、一方、クロックＣＬＫはクロックツリー配線において互いに別系統のツリーを経て供給されスキャン用フリップフロップ２１−１に供給されるクロックＣＬＫ−Ｘに対してスキャン用フリップフロップ２１−２に供給されるクロックＣＬＫ−Ｙが遅延しているものとする。
【０００７】
このような場合には、図７（ｂ）の動作タイミング図に示すように、スキャン用フリップフロップ（図ではＦＦと略す）２１−１のデータ出力信号ＱＯがスキャンデータＳＤ０から次のスキャンデータＳＤ１に変化してからクロックＣＬＫ−Ｙが立ち上がるので、時刻ｔ３１ではスキャン用フリップフロップ２１−２は本来取り込むべきスキャンデータＳＤ０ではなくスキャンデータＳＤ１を取り込んでしまい誤動作することになる。時刻ｔ３３においても同様にスキャン用フリップフロップ２１−２は本来取り込むべきスキャンデータＳＤ１ではなくスキャンデータＳＤ２を取り込んでしまう。このため、正常な動作であればシフトレジスタとして動作するので、図７（ｃ）のように、時刻ｔ３２ではスキャン用フリップフロップ２１−１からスキャンデータＳＤ１が出力され、スキャン用フリップフロップ２１−２からスキャンデータＳＤ０が出力されるべきところであるが、図７（ｂ）に示すように、時刻ｔ３２ではスキャン用フリップフロップ２１−１とスキャン用フリップフロップ２１−２との両方からスキャンデータＳＤ０が出力され、シフトレジスタとして動作しない。
【０００８】
図７では、問題点を明確にするために極端な配置状態に単純化して説明したが実際にこのような配置となることは稀である。しかしながら、このような極端な配置をとらない場合においても、実際の動作ではスキャン用フリップフロップが正常にデータを取り込むためにはトリガ入力（すなわちクロック）が変化したのちも入力データの状態を一定期間（データホールド時間）維持する必要があるので、クロックとスキャンデータとの時間関係の条件はさらに厳しくなる。レイアウト設計に自動配置配線を用いる場合にはスキャン用フリップフロップ同士が近隣して配置配線されないように制御することが困難なため、データホールド時間違反による誤動作が頻繁に発生する。図７（ｂ）のようなデータホールド時間違反による誤動作が発生した場合にはスキャン用フリップフロップ２１−１のデータ出力端（ＱＯ）とスキャン用フリップフロップ２１−２のスキャン入力端（ＳＩＮ）との間に遅延回路を挿入すればよいが、配置配線のやり直しを伴うために設計期間が増大する。前述の特開平４−７２５８３号公報にはデータの受け渡しタイミングを制御する信号を別に設けてスキャンパスに含まれるスキャン用フリップフロップのすべてに供給することによりデータホールド時間違反による誤動作の発生を回避する技術（第２の従来例）が同時に開示されているが、この技術を適用した場合には余分な配線を必要とするので配線性が低下するという新たな問題点が生じる。
【０００９】
本発明の目的は、自動配置配線を用いた場合にもデータホールド時間違反による誤動作の発生を回避でき、且つ余分な制御信号配線を必要としないスキャンテスト用のスキャン用フリップフロップを提供することであり、スキャンテスト回路を提供することである。
【００１０】
【課題を解決するための手段】
本発明のスキャン用フリップフロップは、スキャン入力信号を入力するスキャン入力端子と、データ入力信号を入力するデータ入力端子と、テスト制御信号を入力するテスト制御端子と、クロック信号を入力するクロック端子と、データ出力信号を出力するデータ出力端子と、前記スキャン入力端子に接続された第１の入力端と前記データ入力端子に接続された第２の入力端と前記テスト制御端子に接続された選択入力端と出力端とを備え選択入力端に入力する前記テスト制御信号が第１の信号レベルのときに前記スキャン入力信号を選択して出力端から出力し前記テスト制御信号が第２の信号レベルのときに前記データ入力信号を選択して出力端から出力する第１のマルチプレクサと、前記第１のマルチプレクサの出力端に接続されたデータ入力端と前記クロック端子に接続されたトリガ入力端と出力端とを備え、前記クロック信号が第１のクロックレベルのときに前記第１のマルチプレクサの出力データを入力して実質的にそのまま出力端から出力し、前記クロック信号が第１のクロックレベルから第２のクロックレベルに変化したときに入力中のデータをラッチして前記クロック信号が第２のクロックレベルになるとラッチしたデータを出力端から出力する第１のラッチ回路と、第１の入力端と前記第１のラッチ回路の出力端に接続された第２の入力端と前記テスト制御端子に接続された選択入力端と出力端とを備え前記テスト制御信号が第１の信号レベルのときに第１の入力端の入力信号を選択して出力端から出力し、前記テスト制御信号が第２の信号レベルのときに第２の入力端に入力する信号を選択して出力端から出力する第２のマルチプレクサと、前記第２のマルチプレクサの出力端に接続されたデータ入力端と前記クロック端子に接続されたトリガ入力端と出力端とを備え出力端が前記データ出力端子に接続されるとともに前記第２のマルチプレクサの第１の入力端に接続され、前記クロック信号が第２のクロックレベルのときに前記第２のマルチプレクサの出力データを入力して実質的にそのまま出力端から出力し、前記クロック信号が第２のクロックレベルから第１のクロックレベルに変化したときに入力中のデータをラッチして前記クロック信号が第１のクロックレベルになるとラッチしたデータを出力端から出力する第２のラッチ回路とを備え、通常動作モードでは、前記テスト制御信号が第２の信号レベルに固定され前記クロック信号が所定の時間周期で第１のクロックレベルと第２のクロックレベルとの間で変化して入力され、テストモードでは、前記テスト制御信号が第１の信号レベルのときに前記クロック信号が第１のクロックレベルから第２のクロックレベルへ変化し、前記クロック信号が第２のクロックレベルのときに前記テスト制御信号が第１の信号レベルから第２の信号レベルに変化し、前記テスト制御信号が第２の信号レベルのときに前記クロック信号が第２のクロックレベルから第１のクロックレベルへ変化し、前記クロック信号が第１のクロックレベルのときに前記テスト制御信号が第２の信号レベルから第１の信号レベルに変化して入力されるようにして構成される。
【００１３】
【発明の実施の形態】
以下、本発明について図面を用いて説明する。図１（ａ）は本発明の一実施形態のスキャン用フリップフロップの回路図である。スキャン用フリップフロップ回路１は、スキャン入力信号ＳＩＮを入力するスキャン入力端子と、データ入力信号ＤＩＮを入力するデータ入力端子と、テスト制御信号ＳＥＮを入力するテスト制御端子と、クロックＣＬＫを入力するクロック端子と、データ出力信号ＱＯを出力するデータ出力端子とを有している。
【００１４】
スキャンテストモードでは、テスト制御信号ＳＥＮが第１の信号レベルであるハイレベルのときにクロックＣＬＫが第１のクロックレベルであるローレベルから第２のクロックレベルであるハイレベルへ変化し、クロックＣＬＫがハイレベルのときにテスト制御信号ＳＥＮが第１の信号レベルであるハイレベルから第２の信号レベルであるローレベルに変化し、テスト制御信号ＳＥＮがローレベルのときにクロックＣＬＫがハイレベルからローレベルへ変化し、クロックＣＬＫがローレベルのときにテスト制御信号ＳＥＮがローレベルからハイレベルに変化するように設定されたテスト制御信号ＳＥＮおよびクロックＣＬＫを入力する。スキャンテストモードでは、クロックＣＬＫが第１のクロックレベルであるローレベルから第２のクロックレベルであるハイレベルへの変化に同期してスキャン入力信号ＳＩＮの論理値データを取り込み、この論理値データを次にテスト制御信号ＳＥＮが第１の信号レベルであるハイレベルから第２の信号レベルであるローレベルへの変化に同期して、データ出力信号ＱＯとして出力する。テスト制御信号ＳＥＮがハイレベルにあるときはデータ出力信号ＱＯの信号レベルを変化させずに維持する。
【００１５】
通常動作モードでは、テスト制御信号ＳＥＮを第２の信号レベルであるローレベルに固定しクロックＣＬＫを所定の時間周期でローレベルとハイレベルとの間で変化させ、クロックＣＬＫのローレベルからハイレベルへの変化に同期してデータ入力信号ＤＩＮの論理値データを取り込むとともに、この論理値データをデータ出力端子からデータ出力信号ＱＯとして出力する。
【００１６】
スキャン用フリップフロップ１の具体的な実施例について図１（ａ）の回路図を参照して詳細に説明する。スキャン用フリップフロップ１は、第１の入力端と第２の入力端と選択入力端と出力端とを備え、選択入力端に入力するテスト制御信号ＳＥＮが第１の信号レベルであるハイレベル（論理値１に対応）のときに第１の入力端から入力するスキャン入力信号ＳＩＮを選択して信号Ｓ１として出力端から出力し、テスト制御信号ＳＥＮが第２の信号レベルであるローレベル（論理値０に対応）のときに第２の入力端から入力するデータ入力信号ＤＩＮを選択して信号Ｓ１として出力端から出力する第１のマルチプレクサ（ＭＵＸ）２と、データ入力端Ｄ１とトリガ入力端Ｇ１と出力端Ｑ１とを備え、データ入力端Ｄ１が第１のマルチプレクサ２の出力端に接続されトリガ入力端Ｇ１にクロックＣＬＫが入力され、クロックＣＬＫが第１のクロックレベルであるローレベルのときに第１のマルチプレクサ２の出力である信号Ｓ１を入力して信号Ｓ２として出力端Ｑ１から出力し、クロックＣＬＫがローレベルから第２のクロックレベルであるハイレベルに変化したときに入力中のデータをラッチし、クロックＣＬＫがハイレベルの間はラッチしたデータを信号Ｓ２として出力端Ｑ１から出力する第１のラッチ回路３と、第１の入力端と第２の入力端と選択入力端と出力端とを備え、選択入力端に入力するテスト制御信号ＳＥＮがハイレベルのときに第１の入力端の入力信号を選択して信号Ｓ３として出力端から出力し、選択入力端に入力するテスト制御信号ＳＥＮがローレベルのときに第２の入力端に入力する信号Ｓ２を選択して信号Ｓ３として出力端から出力する第２のマルチプレクサ４と、データ入力端Ｄとトリガ入力端Ｇと出力端Ｑとを備え、データ入力端Ｄが第２のマルチプレクサ４の出力端に接続されトリガ入力端ＧにクロックＣＬＫが入力され出力端Ｑは第２のマルチプレクサ４の第１の入力端に接続され、クロックＣＬＫがハイレベルのときに信号３を入力して出力端Ｑからスキャン用フリップフロップ１のデータ出力信号ＱＯとして出力し、クロックＣＬＫがハイレベルからローレベルに変化したときに入力中のデータをラッチしてクロックＣＬＫがローレベルになるとラッチしたデータを出力端Ｑからスキャン用フリップフロップ１のデータ出力信号ＱＯとして出力する第２のラッチ回路５とにより構成される。第１のラッチ回路３は、例えば、第２のラッチ回路５と同様なラッチ回路６と、そのトリガ入力端ＧにクロックＣＬＫの反転クロックＣＬＫＢを供給するインバータ回路７とで構成される。
【００１７】
スキャン用フリップフロップ１では、スキャンデータを設定するスキャンモードではテスト制御信号ＳＥＮをハイレベルとローレベルに交互に変化させる点が図６（ａ）のスキャン用フリップフロップ２１と異なる。テスト制御信号ＳＥＮを第２の信号レベルであるローレベルに固定した場合には通常操作モードとなり、データ入力信号ＤＩＮが信号Ｓ１として選択され、信号Ｓ２が信号Ｓ３として選択されるので、図６（ａ）のスキャン用フリップフロップ２１と同様に、通常のスキャン用フリップフロップとして動作する。
【００１８】
次に、図１（ｂ）を参照してスキャンデータ設定動作について説明する。時刻ｔ１１でテスト制御信号ＳＥＮがハイレベルに変化すると、第１のマルチプレクサ２はスキャン入力信号ＳＩＮを選択して信号Ｓ１として出力する。スキャン入力信号ＳＩＮはスキャンデータＳＤ１を送信しているので、信号Ｓ１はスキャンデータＳＤ１となる。また、時刻ｔ１１ではクロックＣＬＫはローレベルであるので第１のラッチ回路３は入力を論理操作がなく実質的にそのまま出力する導通状態にあり、信号Ｓ２もスキャンデータＳＤ１に変化する。第２のマルチプレクサ４は、第２のラッチ回路５の出力すなわちスキャン用フリップフロップ１のデータ出力信号ＱＯであるスキャンデータＳＤ０を信号Ｓ３として選択する。第２のラッチ回路５はクロックＣＬＫがローレベルであるので入力を受け付けないラッチ状態となってスキャンデータＳＤ０を保持している。
【００１９】
次に、時刻ｔ１２でクロックＣＬＫがローレベルからハイレベルに変化し、第１のラッチ回路３がラッチ状態になる。第２のラッチ回路５は導通状態になるが、第２のマルチプレクサ４がラッチ回路５の出力を選択しているので、第２のラッチ回路５の出力は変化せずスキャンデータＳＤ０を維持する。
【００２０】
時刻ｔ１３でテスト制御信号ＳＥＮがハイレベルからローレベルに変化すると、第１のマルチプレクサ２はデータ入力信号ＤＩＮを信号Ｓ１として出力する。データ入力信号ＤＩＮはスキャンデータとしては無効のデータであるので、信号Ｓ１のデータは無効となるが、第１のラッチ回路３はラッチ状態にあるため無効データを読み込むことはない。したがって、信号Ｓ２は変化せずスキャンデータＳＤ１のままである。時刻ｔ１２のテスト制御信号ＳＥＮのローレベルへの変化により第２のマルチプレクサ４が信号Ｓ２を選択して信号Ｓ３として出力するので信号Ｓ３はスキャンデータＳＤ１に変わり、第２のラッチ回路５が導通状態にあるのでスキャン用フリップフロップ１のデータ出力信号ＱＯはスキャンデータＳＤ１を出力する。
【００２１】
次に、時刻ｔ１４でクロックＣＬＫがハイレベルからローレベルに変化すると、第１のラッチ回路３が導通状態になり、第２のラッチ回路５がラッチ状態になる。このため、第１のラッチ回路３は、信号Ｓ１の無効データを入力して信号Ｓ２として出力する。第２のマルチプレクサ４が信号Ｓ２を選択しているので信号Ｓ３も無効データに変化する。しかしながら、第２のラッチ回路５がラッチ状態にあるので信号Ｓ３を読み込まず、スキャン用フリップフロップ１のデータ出力信号ＱＯはスキャンデータＳＤ１を維持する。
【００２２】
時刻ｔ１５でテスト制御信号ＳＥＮが再びハイレベルに変化すると、第１のマルチプレクサ２はスキャン入力信号ＳＩＮを選択して信号Ｓ１として出力する。スキャン入力信号ＳＩＮはスキャンデータＳＤ２を送信しているので、信号Ｓ１はスキャンデータＳＤ２となる。第１のラッチ回路３は導通状態にあるので信号Ｓ２はスキャンデータＳＤ２に変化する。第２のマルチプレクサ４は、第２のラッチ回路５の出力であるスキャンデータＳＤ１を信号Ｓ３として選択する。第２のラッチ回路５はラッチ状態でスキャン用フリップフロップ１のデータ出力信号ＱＯとしてスキャンデータＳＤ１を出力として維持し続ける。
【００２３】
時刻ｔ１５以降の動作は、スキャンデータが変更されたことを除けば時刻ｔ１１から時刻ｔ１５までの動作を繰り返すだけであるので詳細な説明を省略する。図１（ｂ）で、時刻ｔ１４でクロックＣＬＫがローレベルに変化してから信号Ｓ３のデータがスキャンデータから無効データに変化するまでの時間Ｔｄとして、第２のラッチ回路５の動作特性により定まっているデータホールド時間以上の時間を確保することが必要である。例えばインバータ回路７による反転クロックＣＬＫＢ生成の遅延時間および第２のマルチプレクサ４の動作遅延時間により時間Ｔｄを確保できるように留意して設計する必要がある。
【００２４】
図２（ａ）は、本発明の第２の実施形態のスキャンテスト回路１１によるスキャンパス方式の模式図である。スキャンテスト回路１１では図５のスキャン用フリップフロップ２１−１〜２１−ｎに換えて本発明のスキャン用フリップフロップ１−１〜１−ｎを用いている。スキャンテスト回路１１は、第１番目のスキャン用フリップフロップ１−１のスキャン入力端にＬＳＩの外部入力であるスキャンデータ入力ＳＣＩＮを接続し、第ｉ（ｉは、１≦ｉ≦（ｎ−１）の正整数）番目のスキャン用フリップフロップ１−ｉの出力端を第（ｉ＋１）番目のスキャン用フリップフロップのスキャン信号入力端と接続し、第ｎ番目のスキャン用フリップフロップ１−ｎの出力端がスキャンテスト回路１１のスキャン出力ＳＣｎとなっている。テスト制御信号ＳＥＮがハイレベルとローレベルを交互に繰り返すスキャンモードのときにはスキャンテスト回路１１が１個のシフトレジスタとして動作し、テスト制御信号ＳＥＮがローレベルに固定の通常動作モードのときには被テスト回路１０の一部の複数の独立したスキャン用フリップフロップとして動作する。テスト制御信号ＳＥＮをハイレベルとローレベルを交互に繰り返すスキャンモードとし、スキャンデータをクロックＣＬＫのローレベルからハイレベルへの変化毎にスキャンデータ入力ＳＣＩＮからシリアルに入力したデータを取り込んで保持し、テスト制御信号ＳＥＮのハイレベルからローレベルへの変化毎に次段のスキャン用フリップフロップへ出力してスキャンデータを順次シフトし、スキャン用フリップフロップ１−１〜１−ｎのすべてにスキャンデータを設定する。これにより、各スキャン用フリップフロップの出力ＳＣ１〜ＳＣｎに接続された被テスト回路１０の内部節点の初期値が決められる。次に、テスト制御信号ＳＥＮをローレベルに固定して通常動作モードとし、被テスト回路１０に回路入力を与えて動作させ回路出力を観測したのち、各節点の動作応答結果をデータ信号Ｄ１〜Ｄｎとしてスキャン用フリップフロップ１−１〜１−ｎに取り込んで保持する。次に、テスト制御信号ＳＥＮを再びハイレベルとローレベルを交互に繰り返すスキャンモードとし、前段のスキャン用フリップフロップの出力を入力しクロックＣＬＫのローレベルからハイレベルへの変化毎に入力データを取り込んで保持し、テスト制御信号ＳＥＮのハイレベルからローレベルへの変化毎に次段のスキャン用フリップフロップへ出力して動作応答結果データを順次シフトしてスキャン用フリップフロップ２１−ｎの出力ＳＣｎをＬＳＩの外部に出力して観測することにより、図５の従来のスキャンテスト回路２０と同様に被テスト回路１０の内部節点の動作応答結果を知ることができる。
【００２５】
図２（ｂ）は、図２（ａ）のスキャン用フリップフロップ１−１に供給されるクロックＣＬＫ−Ｘとスキャン用フリップフロップ１−２に供給されるクロックＣＬＫ−Ｙとの間でクロック遅延による位相差が生じた場合の動作タイミング図である。時刻ｔ２１でテスト制御信号ＳＥＮのハイレベルからローレベルへの変化により、スキャン用フリップフロップ１−１はスキャンデータＳＤ１の出力を開始し、スキャン用フリップフロップ１−２はスキャンデータＳＤ０の出力を開始する。時刻ｔ２２でテスト制御信号ＳＥＮがハイレベルに復帰したのち、時刻ｔ２３でスキャン用フリップフロップ１−１に供給されるクロックＣＬＫ−Ｘがローレベルからハイレベルへ変化し、これより遅れて時刻ｔ２４でスキャン用フリップフロップ１−２に供給されるクロックＣＬＫ−Ｙがローレベルからハイレベルへ変化してスキャン入力信号ＳＣＩＮのスキャンデータＳＤ１を取り込んで保持する。こののち時刻ｔ２５でテスト制御信号ＳＥＮのハイレベルからローレベルへの変化により、スキャン用フリップフロップ１−１はスキャンデータＳＤ１の出力を開始し、スキャン用フリップフロップ１−２はスキャンデータＳＤ０の出力を開始する。
【００２６】
このように、クロックＣＬＫ−ＸとクロックＣＬＫ−Ｙとの間でクロック遅延による位相差が生じても、時刻ｔ２４でスキャン用フリップフロップ１−２のクロックがハイレベルになりスキャンデータＳＤ１を取り込みんだのちも時刻ｔ２５までスキャン用フリップフロップ１−２のスキャン入力信号ＳＩＮすなわちスキャン用フリップフロップ１−１のデータ出力信号ＱＯはスキャンデータＳＤ１を維持するため、スキャン用フリップフロップ１−２のデータホールド時間を確保できるので誤動作が生じることがない。すなわち、クロックＣＬＫ−Ｘのローレベルからハイレベルへの変化点とクロックＣＬＫ−Ｙのローレベルからハイレベルへの変化点とがいずれも制御信号ＳＥＮのハイレベル期間内であれば誤動作が生じることはない。また、スキャンテスト回路１１では、図５の従来のスキャンテスト回路２０と比較して余分な配線が付加されることがない。
【００２７】
図１（ｂ）の説明で、図１（ａ）スキャン用フリップフロップ１では、時刻ｔ１４でクロックＣＬＫがローレベルに変化してから信号Ｓ３のデータがスキャンデータから無効データに変化するまでの時間Ｔｄとして第２のラッチ回路５のデータホールド時間を確保することが必要なことを述べた。図３（ａ）、図３（ｂ）および図４は、データホールド時間をより容易かつ確実に確保できるようにした他の実施例の回路図である。
【００２８】
図３（ａ）のスキャン用フリップフロップ１ａでは、第１のラッチ回路３の出力端Ｑ１と第２のマルチプレクサ４の第２の入力端との間に遅延回路１２を挿入設置することにより、ラッチ回路５のデータ入力端に入力する信号のスキャンデータから無効データへの変化タイミングを遅らせてデータホールド時間を確保する。
【００２９】
図３（ｂ）のスキャン用フリップフロップ１ｂでは、第２のマルチプレクサ４の出力端と第２のラッチ回路５のデータ入力端Ｄとの間に遅延回路１３を挿入設置することにより、ラッチ回路５のデータ入力端に入力する信号のスキャンデータから無効データへの変化タイミングを遅らせてデータホールド時間を確保する。
【００３０】
図４のスキャン用フリップフロップ１ｃでは、クロックＣＬＫを遅延回路１４を通して遅延させてから第１のラッチ回路３のトリガ入力端Ｇ１に入力することにより、ラッチ回路５のデータ入力端に入力する信号のスキャンデータから無効データへの変化タイミングを遅らせてデータホールド時間を確保する。なお、遅延回路１２，１３，１４は、例えば偶数個のインバータ回路を縦列接続することより容易に実現できる。
【００３１】
【発明の効果】
以上に説明したように、本発明のスキャン用フリップフロップでは、スキャンデータの取り込みがクロックのローレベルからハイレベルへの変化に同期して行われ、データ出力の変化がテスト制御信号のハイレベルからローレベルへの変化に同期して行われる。このため、このスキャン用フリップフロップを縦列接続した本発明のスキャンテスト回路では、次段のスキャン用フリップフロップがスキャンデータを取り込んだのちもスキャンデータの出力を維持するようにしてデータホールド時間を確保できるので、スキャン用フリップフロップ同士が近隣して配置配線されないように制御することが困難な自動配置配線を用いてレイアウト設計する場合においてもデータホールド時間違反による誤動作の発生を防止することが可能となる。また、余分な配線が付加されることがないので、第２の従来例のように配線性の低下が生じることはない。
【図面の簡単な説明】
【図１】（ａ）は、本発明のスキャン用フリップフロップの回路図であり、（ｂ）は、動作タイミング図である。
【図２】（ａ）は、本発明のスキャンテスト回路によるスキャンパス方式の模式図であり、（ｂ）は、動作タイミング図である。
【図３】スキャン用フリップフロップの他の実施例の回路図である。
【図４】スキャン用フリップフロップの他の実施例の回路図である。
【図５】スキャンパス方式の模式図であ
【図６】従来のスキャン用フリップフロップの回路図と動作タイミング図である。
【図７】誤動作の発生を説明する図であり、（ｂ）が誤動作で、（ｃ）が正常動作を示す。
【符号の説明】
１，１ａ，１ｂ，１ｃ，１−１，１−ｎ    スキャン用フリップフロップ
２，４    マルチプレクサ
３，５    ラッチ回路
１１    スキャンテスト回路
１２，１３，１４    遅延回路
ＣＬＫ    クロック
ＤＩＮ    データ入力信号
ＳＥＮ    テスト制御信号
ＳＩＮ    スキャン入力信号
【図１】
0003699019.tif 000002
【図２】
0003699019.tif 000003
【図３】
0003699019.tif 000004
【図４】
0003699019.tif 000005
【図５】
0003699019.tif 000006
【図６】
0003699019.tif 000007
【図７】
0003699019.tif 000008