(57)【要約】【課題】スキャンテスト動作時に通常動作と同位相のクロックをスキャンフリップフロップに供給してホールドマージンの確認を行うことができる半導体集積回路を提供すること。【解決手段】クロック制御回路３０は、スキャンクロック制御信号ＳＣＯＮＴに基づいて、オリジナルクロックＣＬＫ，分周クロックＣＬＫ２および分周クロックＣＬＫ４をスルーにしてスキャンフリップフロップ４０，５０，６０に供給するか、スキャンクロック制御信号ＳＣＯＮＴと同一周期で、かつ、オリジナルクロックＣＬＫ、分周クロックＣＬＫ２および分周クロックＣＬＫ４と立ち上がりが一致する複数のスキャンクロックを生成して、生成した複数のスキャンクロックをスキャンフリップフロップ４０，５０，６０に供給するかを決定する。【選択図】      図１
2004354059.tif 000002
【特許請求の範囲】
【請求項１】
異なる位相または周期を持つ複数のクロックで通常動作時に動作する複数のスキャンフリップフロップを用いてスキャンパスを構成してスキャンテストが実行可能な半導体集積回路において、
前記通常動作時には、前記複数のクロックをスルーにして前記複数のスキャンフリップフロップに供給し、スキャンテスト動作時には、所定の周期をもつスキャンクロック制御信号と同一周期であってかつ前記各クロックと立ち上がりまたは立ち下がりが一致する複数のスキャンクロックをそれぞれ生成して、該生成した複数のスキャンクロックを前記複数のスキャンフリップフロップに供給するクロック制御回路、
を備えることを特徴とする半導体集積回路。
【請求項２】
前記スキャンクロック制御信号は、スキャンテスト動作時には、前記複数のクロックの中で最も周期の長いクロックの周期と同一周期であって、かつ前記複数のクロックの中で最も周期の短いクロックの周期より小さいパルス幅をもつ信号であることを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記各スキャンクロックは、通常動作時における前記複数のクロックと同一伝達経路を経由して前記各スキャンフリップフロップに供給されることを特徴とする請求項１または２に記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路のテストに関するものであり、特に、通常動作時に異なる位相または周期を持つ複数のクロックで動作するスキャンフリップフロップを用いてスキャンパスを構成する半導体集積回路に関するものである。
【０００２】
【従来の技術】
近年、半導体製造の多層配線技術や微細化技術の向上により、半導体集積回路の１チップの搭載ゲート規模も大きくなり、高性能・高機能の半導体集積回路が１チップで実現可能となっている。一方、１チップの搭載ゲート規模が大きくなったことにより、製造後の半導体集積回路のテスト方法が問題となっている。半導体集積回路のテストは、製造工程での不良が無いか、すなわち、半導体集積回路の機能とは無関係に、回路図通りに製造されているか、半導体集積回路内の全てのトランジスタに対してオン／オフの動作を確認する必要がある。半導体集積回路内のトランジスタの動作を効率よく行うために、半導体集積回路内部のフリップフロップを外部端子から直接制御し観測するスキャンテスト方式が一般的である。
【０００３】
スキャンテストは、半導体集積回路内の全て、もしくは一部のフリップフロップをセレクタ付のスキャンフリップフロップに置き換えるか、フリップフロップの前段にセレクタを挿入する。そして、これらのフリップフロップをチェーン接続してシフトレジスタ（スキャンチェーン）を構成する。テスト時には、このシフトレジスタに組合せ回路のテストパターンをシリアルに入力し、シフト動作により、フリップフロップにテストパターンを設定する。そして、１クロックだけ通常動作を行い、組合せ回路を動作させてフリップフロップに組合せ回路の動作結果をラッチする。ふたたび、シフト動作により設定したテストパターンにより動作した組合せ回路の出力結果を外部端子に出力する。この出力を予め準備した期待値と比較する。このような動作を繰り返すことにより、テスト動作か通常動作を指定する入力端子、シリアルにテストパターンを入力するテストパターンの入力端子およびテスト結果を出力する出力端子を追加するだけで、半導体集積回路の組み合わせ回路のテストを行うことができる。
【０００４】
しかしながら、スキャンテストでは、スキャンテスト動作時にシフトレジスタを構成するフリップフロップのクロックに同一タイミングのクロックを入力する必要があるため、たとえば、半導体集積回路内に半導体集積回路の外部端子から入力されるオリジナルクロックで動作するフリップフロップと、オリジナルクロックを分周した内部クロックで動作するフリップフロップとが混載している場合などは、オリジナルクロックを分周した内部クロックの代わりにスキャンクロックを用いなければならない。そのため、半導体集積回路が所望の機能を実現する通常動作時のクロックの遅延とスキャンテスト時のクロックの遅延とが異なってしまい、スキャンテスト時にフリップフロップのホールド・タイム違反が生じてしまうことがあるという問題があった。
【０００５】
このような問題を改善するために、従来技術では、異なる周期や位相のクロックに同期して動作することを前提に設計されたパスには、フリップフロップのクロック端子に入力されるクロックのエッジで、通常動作時にはフリップフロップのＤ端子に入力される信号をラッチし、スキャンテスト動作時にはフリップフロップのクロック端子にクロックのエッジが到達するより前にフリップフロップのＤ端子の論理値を保持する入力データ保持回路の出力をラッチするフリップフロップを用いる。そして、スキャンテスト動作時に入力データ保持回路がフリップフロップのＤ端子の論理値を保持するタイミングをクロックのスキューに合わせて最適化することで、クロックのスキューが一定値以下であることが保証されていないパスで生じるホールド・タイム違反を回避するようにしている（たとえば、特許文献１参照）。
【０００６】
【特許文献１】
特開平１１−１７４１２３号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、通常動作時とスキャンテスト動作時とでは、フリップフロップがクロック端子に入力される信号でラッチする信号の伝達経路が異なっているため、スキャンテスト動作では通常動作時のクロックスキューに対するホールドマージンを確認することはできないという問題があった。
【０００８】
また、スキャンテスト時にフリップフロップの通常動作時のホールドマージンを確認することができない場合、通常動作でホールドマージンの確認を行わなければならない。しかしながら、通常動作で半導体集積回路内の全てのフリップフロップを動作させることは難しい。そのため、全てのフリップフロップのホールドマージンを確認することができず、不良品が出荷されてしまう恐れがあるという問題があった。
【０００９】
さらに、通常動作で半導体集積回路内の全てのフリップフロップを動作させることができたとしても、膨大なテストパターンが必要であり、テスト時間が長くなってしまうという問題があった。
【００１０】
この発明は上記に鑑みてなされたもので、スキャンテスト動作時に通常動作と同位相のスキャンクロックをスキャンフリップフロップに供給してホールドマージンの確認を行うことができる半導体集積回路を得ることを目的としている。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかる半導体集積回路は、異なる位相または周期を持つ複数のクロックで通常動作時に動作する複数のスキャンフリップフロップを用いてスキャンパスを構成してスキャンテストが実行可能な半導体集積回路において、前記通常動作時には、前記複数のクロックをスルーにして前記複数のスキャンフリップフロップに供給し、スキャンテスト動作時には、所定の周期をもつスキャンクロック制御信号と同一周期であってかつ前記各クロックと立ち上がりまたは立ち下がりが一致する複数のスキャンクロックをそれぞれ生成して、該生成した複数のスキャンクロックを前記複数のスキャンフリップフロップに供給するクロック制御回路を備えることを特徴とする。
【００１２】
この発明によれば、クロック制御回路は、異なる位相または周期を持つ複数のクロックで通常動作時に動作する複数のスキャンフリップフロップを用いてスキャンパスを構成してスキャンテストを行う場合、複数のスキャンフリップフロップに供給するスキャンクロックを制御するための所定の周期をもつスキャンクロック制御信号および通常動作時に供給すべき各クロックに基づいて、スキャンクロック制御信号と同一周期で、かつ各クロックと立ち上がりまたは立ち下がりが一致する複数のスキャンクロックをそれぞれ生成して、生成した複数のスキャンクロックを複数のスキャンフリップフロップに供給するようにしている。
【００１３】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかる半導体集積回路の好適な実施の形態を詳細に説明する。
【００１４】
図１〜図３を用いて本発明の実施の形態を説明する。図１は、この発明における本実施の形態の半導体集積回路の構成の一例を示すブロック図である。この発明における本実施の形態の半導体集積回路は、分周回路１０，２０、クロック制御回路３０、スキャンフリップフロップ４０，５０，６０および組合せ回路７０，８０を備えている。
【００１５】
分周回路１０は、オリジナルクロックＣＬＫの周波数の１／２の周波数の分周クロックＣＬＫ２を生成する。すなわち、分周回路１０は、オリジナルクロックＣＬＫの周期の２倍の周期の分周クロックＣＬＫ２を生成する。
【００１６】
分周回路２０は、オリジナルクロックＣＬＫの周波数の１／４の分周クロックＣＬＫ４を生成する。すなわち、分周回路２０は、オリジナルクロックＣＬＫの周期の４倍の周期の分周クロックＣＬＫ４を生成する。
【００１７】
組合せ回路７０，８０は、スキャンテスト対象となる半導体集積回路内の組み合わせ回路であり、アンドゲートやオアゲートなどの論理回路を組み合わせて所望の機能を実現する。
【００１８】
スキャンフリップフロップ４０，５０，６０は同一の機能を備えている。スキャンフリップフロップ４０は、端子ＭＯＤに入力される信号がアサートの場合、端子ＣＫに入力される信号の立ち上がりで端子ＳＩに入力される信号をラッチし、端子ＭＯＤに入力される信号がネゲートの場合、端子ＣＫに入力される信号の立ち上がりで端子Ｄに入力される信号をラッチする。そして、ラッチした信号を端子Ｑに出力する。
【００１９】
クロック制御回路３０は、スキャンクロック制御信号ＳＣＯＮＴに基づいて、スキャンフリップフロップ４０，５０，６０の端子ＣＫに入力する信号を制御する。クロック制御回路３０は、通常動作時には、オリジナルクロックＣＬＫをスキャンフリップフロップ４０の端子ＣＫに、分周クロックＣＬＫ２をスキャンフリップフロップ５０の端子ＣＫに、分周クロックＣＬＫ４をスキャンフリップフロップ６０の端子ＣＫにそれぞれ出力する。スキャンテスト動作時には、スキャンクロック制御信号ＳＣＯＮＴ、オリジナルクロックＣＬＫ、分周クロックＣＬＫ２および分周クロックＣＬＫ４に基づいて複数のスキャンクロックを生成して、生成した複数のスキャンクロックをフリップフロップ４０，５０，６０の端子ＣＫに出力する。図１の場合、クロック制御回路３０は、アンドゲート３１〜３３で構成されている。
【００２０】
入力データＤＩＮは、スキャンフリップフロップ４０の端子Ｄに入力される。シリアルデータＳＩＮは、スキャンフリップフロップ４０の端子ＳＩに入力される。モード選択信号ＭＯＤＥは、スキャンフリップフロップ４０，５０，６０の端子ＭＯＤに入力される。オリジナルクロックＣＬＫは、分周回路１０，２０と、アンドゲート３１に入力される。
【００２１】
分周回路１０は出力である分周クロックＣＬＫ２をアンドゲート３２に出力する。分周回路２０は出力である分周クロックＣＬＫ４をアンドゲート３３に出力する。
【００２２】
アンドゲート３１は、出力ＣＬＫＡをスキャンフリップフロップの端子ＣＫに出力する。アンドゲート３２は、出力ＣＬＫＢをスキャンフリップフロップの端子ＣＫに出力する。アンドゲート３３は、出力ＣＬＫＣをスキャンフリップフロップの端子ＣＫに出力する。
【００２３】
スキャンフリップフロップ４０は、端子ＣＫに入力された信号の立ち上がりでラッチした信号を組合せ回路７０とスキャンフリップフロップ５０の端子ＳＩに出力する。スキャンフリップフロップ５０は、端子ＣＫに入力された信号の立ち上がりでラッチした信号を組合せ回路８０とスキャンフリップフロップ６０の端子ＳＩに出力する。スキャンフリップフロップ６０は、端子ＣＫに入力された信号の立ち上がりでラッチした信号を半導体集積回路の外部端子に出力する。
【００２４】
つぎに、図２および図３のタイミングチャートを参照して、この発明における本実施の形態の半導体集積回路の動作を説明する。まず、図２のタイミングチャートを参照して、この発明における本実施の形態の半導体集積回路の通常動作について説明する。通常動作時には、モード選択信号をネゲート（この場合は“Ｌ”）にするとともに、スキャンクロック制御信号ＳＣＯＮＴを“Ｈ”に固定する。そして、半導体集積回路の外部端子からオリジナルクロックＣＬＫを入力する。
【００２５】
分周回路１０は、オリジナルクロックＣＬＫを分周して、オリジナルクロックＣＬＫの２倍の周期の分周クロックＣＬＫ２を生成する。そして、生成した分周クロックＣＬＫ２をアンドゲート３２に出力する。
【００２６】
分周回路２０は、オリジナルクロックＣＬＫの４倍の周期の分周クロックＣＬＫ４を生成する。そして、生成した分周クロックＣＬＫ４をアンドゲート３３に出力する。
【００２７】
スキャンクロック制御信号ＳＣＯＮＴが“Ｈ”であるので、クロック制御回路３０のアンドゲート３１は出力ＣＬＫＡにオリジナルクロックＣＬＫを、アンドゲート３２は出力ＣＬＫＢに分周クロックＣＬＫ２を、アンドゲート３３は出力ＣＬＫＣに分周クロックＣＬＫ４をそれぞれ出力する。すなわち、クロック制御回路３０は、オリジナルクロックＣＬＫ、分周クロックＣＬＫ２，ＣＬＫ４をスルーにして、スキャンフリップフロップ４０，５０，６０のそれぞれの端子ＣＫに出力する。
【００２８】
モード選択信号ＭＯＤＥが“Ｌ”であるので、スキャンフリップフロップ４０，５０，６０はぞれぞれの端子ＣＫに入力される信号の立ち上がりで端子Ｄに入力される信号をラッチする。すなわち、スキャンフリップフロップ４０は、アンドゲート３１の出力ＣＬＫＡの立ち上がりで入力データＤＩＮをラッチして、ラッチした入力データＤＩＮを組み合わせ回路７０とスキャンフリップフロップ５０の端子ＳＩとに出力する。スキャンフリップフロップ５０は、スキャンフリップフロップ４０の出力で駆動された組み合わせ回路７０の出力をアンドゲート３２の出力ＣＬＫＢの立ち上がりでラッチして、ラッチした組み合わせ回路７０の出力を組み合わせ回路８０とスキャンフリップフロップ６０の端子ＳＩとに出力する。スキャンフリップフロップ６０は、スキャンフリップフロップ５０の出力で駆動された組み合わせ回路８０の出力をアンドゲート３３の出力ＣＬＫＣの立ち上がりでラッチして、ラッチした組み合わせ回路８０の出力を半導体集積回路の外部端子に出力する。このようにして、半導体集積回路は、所望の機能を実現する。
【００２９】
つぎに、図３のタイミングチャートを参照して、この発明における本実施の形態の半導体集積回路のスキャンテスト時の動作を説明する。スキャンテスト開始時には、モード選択信号ＭＯＤＥをアサート（この場合は“Ｈ”）にするともに、スキャンクロック制御信号ＳＣＯＮＴを、半導体集積回路内で用いられるクロックの中で最も周期の長いクロックの周期と同一周期で入力する。図１に示した半導体集積回路内で最も周期の長いクロックは、分周回路２０で生成される分周クロックＣＬＫ４である。分周回路２０は、オリジナルクロックＣＬＫの周期の４倍の分周クロックＣＬＫ４を生成する。図３のタイミングチャートで示すように、オリジナルクロックＣＬＫの周期をＴとすると、分周回路２０が生成する分周クロックＣＬＫ４の周期は４Ｔである。したがって、周期４Ｔでスキャンクロック制御信号ＳＣＯＮＴを入力する。具体的には、オリジナルクロックＣＬＫが“Ｌ”の期間、または、オリジナルクロックＣＬＫの立ち上がりに同期してスキャンクロック制御信号ＳＣＯＮＴを“Ｈ”にする。そして、スキャンクロック制御信号ＳＣＯＮＴを“Ｈ”にしてからｘ時間後に、スキャンクロック制御信号ＳＣＯＮＴを“Ｌ”にする。このとき、ｘは、半導体集積回路内のスキャンフリップフロップ４０，５０，６０のそれぞれの端子ＣＫのパルス幅・タイムを満足し、かつｘ＜Ｔが成り立つ値とする。
【００３０】
分周回路１０は、オリジナルクロックＣＬＫを分周して、オリジナルクロックＣＬＫの２倍の周期の分周クロックＣＬＫ２を生成する。そして、生成した分周クロックＣＬＫ２をアンドゲート３２に出力する。
【００３１】
分周回路２０は、オリジナルクロックＣＬＫの４倍の周期の分周クロックＣＬＫ４を生成する。そして、生成した分周クロックＣＬＫ４をアンドゲート３３に出力する。
【００３２】
クロック制御回路３０のアンドゲート３１は、オリジナルクロックＣＬＫが“Ｈ”かつスキャンクロック制御信号ＳＣＯＮＴが“Ｈ”の時に出力ＣＬＫＡを“Ｈ”に、オリジナルクロックＣＬＫが“Ｌ”またはスキャンクロック制御信号ＳＣＯＮＴが“Ｌ”の時に出力ＣＬＫＡを“Ｌ”にする。アンドゲート３２は、分周クロックＣＬＫ２が“Ｈ”かつスキャンクロック制御信号ＳＣＯＮＴが“Ｈ”の時に出力ＣＬＫＢを“Ｈ”に、分周クロックＣＬＫ２が“Ｌ”またはスキャンクロック制御信号ＳＣＯＮＴが“Ｌ”の時に出力ＣＬＫＢを“Ｌ”にする。アンドゲート３３は、分周クロックＣＬＫ４が“Ｈ”かつスキャンクロック制御信号ＳＣＯＮＴが“Ｈ”の時に出力ＣＬＫＣを“Ｈ”に、分周クロックＣＬＫ４が“Ｌ”またはスキャンクロック制御信号ＳＣＯＮＴが“Ｌ”の時に出力ＣＬＫＣを“Ｌ”にする。
【００３３】
スキャンクロック制御信号ＳＣＯＮＴは、周期４Ｔ毎にオリジナルクロックＣＬＫの立ち上がりと同期するか、オリジナルクロックＣＬＫが“Ｌ”の期間に“Ｈ”になるように入力しているので、アンドゲート３１〜３３の出力ＣＬＫＡ，ＣＬＫＢ，ＣＬＫＣは、それぞれオリジナルクロックＣＬＫ，分周クロックＣＬＫ２，ＣＬＫ４の立ち上がりで“Ｈ”となる。すなわち、スキャンフリップフロップ４０，５０，６０の端子ＣＫに入力されるそれぞれのクロックの立ち上がりのタイミングは、通常動作時のクロックの立ち上がりと同一タイミングとなる。
【００３４】
テスト開始時には、モード選択信号ＭＯＤＥは“Ｈ”であるので、スキャンフリップフロップ４０はアンドゲート３１の出力ＣＬＫＡの立ち上がりで、スキャンフリップフロップ５０はアンドゲート３２の出力ＣＬＫＢの立ち上がりで、スキャンフリップフロップ６０はアンドゲート３３の出力ＣＬＫＣの立ち上がりで、それぞれの端子ＳＩに入力される信号をラッチして出力する。すなわち、スキャンフリップフロップ４０，５０，６０はシフトレジスタを構成して、シリアルデータＳＩＮを順次シフトして組み合わせ回路７０，８０のテストパターンを設定する。そして、半導体集積回路が動作するクロックの１周期分、すなわち、スキャンクロック制御信号の周期である４Ｔの期間だけモード選択信号ＭＯＤＥを“Ｌ”にして通常動作を行い、スキャンフリップフロップ４０，５０に設定したテストパターンで組み合わせ回路７０，８０を動作させてスキャンフリップフロップ５０，６０に組み合わせ回路７０，８０の動作結果をラッチする。ふたたび、モード選択信号ＭＯＤＥを“Ｈ”にしてスキャンフリップフロップ４０，５０，６０をシフト動作させて、半導体集積回路の外部端子に組み合わせ回路７０，８０の動作結果を出力する。この出力を予め準備した期待値と比較する。
【００３５】
このように本実施の形態では、クロック制御回路３０は、スキャンクロック制御信号ＳＣＯＮＴに基づいて、オリジナルクロックＣＬＫ，分周クロックＣＬＫ２および分周クロックＣＬＫ４をスルーにしてスキャンフリップフロップ４０，５０，６０に供給するか、スキャンクロック制御信号ＳＣＯＮＴと同一周期で、かつ、オリジナルクロックＣＬＫ、分周クロックＣＬＫ２および分周クロックＣＬＫ４と立ち上がりが一致する複数のスキャンクロックを生成して、生成した複数のスキャンクロックをスキャンフリップフロップ４０，５０，６０に供給するかを決定するようにしているため、ホールド−マージンを確認するための新たなテストパターンを追加することなく、スキャンテスト動作時に確実にスキャンフリップフロップのホールドマージンを確認することができ、テスト時間を短縮することができる。
【００３６】
また、スキャンテスト動作時に、スキャンクロック制御信号ＳＣＯＮＴを半導体集積回路内で最も周期の長い分周クロックＣＬＫ４の周期毎に入力することにより、クロック制御回路３０が、分周クロックＣＬＫ４の周期ごとに変化するクロックを生成するようにしているため、スキャンフリップフロップに同一タイミングのクロックを入力するというスキャンテスト時のクロックの制約を満足したクロックを供給することができる。
【００３７】
さらに、スキャンフリップフロップ４０，５０，６０の端子ＣＫへの伝達経路は、通常動作時とスキャンテスト動作時とで同一伝達経路としているため、通常動作時とスキャンテスト動作時とで、スキャンフリップフロップ４０，５０，６０に供給されるクロックの遅延が等しくなり、スキャンテスト時においてもクロックスキュー管理を行うことができ、半導体集積回路の動作不良検出率を向上させ、正確なテストを行うことができる。
【００３８】
なお、本実施の形態では、分周回路が生成する半導体集積回路の内部クロックが２つの場合を例に挙げて説明したが、これに限るものではない。
【００３９】
【発明の効果】
以上説明したように、この発明にかかる半導体集積回路によれば、クロック制御回路は、異なる位相または周期を持つ複数のクロックで通常動作時に動作する複数のスキャンフリップフロップを用いてスキャンパスを構成してスキャンテストを行う場合、複数のスキャンフリップフロップに供給するスキャンクロックを制御するための所定の周期をもつスキャンクロック制御信号および通常動作時に供給すべき各クロックに基づいて、スキャンクロック制御信号と同一周期で、かつ各クロックと立ち上がりまたは立ち下がりが一致する複数のスキャンクロックをそれぞれ生成して、生成した複数のスキャンクロックを複数のスキャンフリップフロップに供給するようにしているため、スキャンテスト動作時に各スキャンフリップフロップのホールドマージンを確認することができ、テストパターンを増やすことなく確実に良品、不良品の選別を行うことができる。
【図面の簡単な説明】
【図１】この発明における本実施の形態の半導体集積回路の構成の一例を示すブロック図である。
【図２】この発明における本実施の形態の半導体集積回路の通常の動作を説明するためのタイミングチャートである。
【図３】この発明における本実施の形態の半導体集積回路のスキャンテスト時の動作を説明するためのタイミングチャートである。
【符号の説明】
１０，２０  分周回路、３０  クロック制御回路、３１，３２，３３  アンドゲート、４０，５０，６０  スキャンフリップフロップ、７０，８０  組み合わせ回路。
【図１】
2004354059.tif 000003
【図２】
2004354059.tif 000004
【図３】
2004354059.tif 000005