(57)【要約】【課題】フリップフロップを備える半導体集積回路において、エラーフリップフロップを効率的に検出する。【解決手段】半導体集積回路は、冗長フリップフロップを含む複数のフリップフロップと、セレクタ部と、エラー検出部とを備える。セレクタ部は、再構成情報に応じて選択フリップフロップを選択し、入力端子に入力されたデータが選択フリップフロップのそれぞれによって出力端子に出力されるようにデータの流れを切り替える。テストモード時、フリップフロップはスキャンチェーンを構成し、そのスキャンチェーンにはスキャンデータが入力される。そして、エラー検出部は、それぞれのフリップフロップの入出力に基づいてエラーフリップフロップを検出し、当該エラーフリップフロップが選択フリップフロップから除外されるように再構成情報を作成する。【選択図】図１
2014112111.tif 000002
【特許請求の範囲】
【請求項１】
複数のフリップフロップと、
カウンタと
を備え、
前記複数のフリップフロップの各々は、自身の出力から入力へのフィードバックパスを備え、テストモード時に前記フィードバックパスを利用してトグル動作あるいは自己発振動作を行うように構成され、
前記テストモード時、前記カウンタは、前記トグル動作あるいは前記自己発振動作を行う前記各々のフリップフロップから出力データを受け取り、前記出力データに関して所定期間カウントを行う
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路であって、
更に、
Ｎ個（Ｎは１以上の整数）の入力端子と、
Ｎ個の出力端子と、
セレクタ部と
を備え、
前記複数のフリップフロップは、Ｎ個のフリップフロップとＲ個（Ｒは１以上の整数）の冗長フリップフロップとを含み、
前記セレクタ部は、再構成情報に応じて前記複数のフリップフロップの中からＮ個の選択フリップフロップを選択し、前記Ｎ個の入力端子に入力されたデータが前記Ｎ個の選択フリップフロップのそれぞれによって前記Ｎ個の出力端子に出力されるようにデータの流れを切り替える
半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路であって、
前記所定期間におけるトグル回数あるいは自己発振周波数が所定値に満たないフリップフロップは、エラーフリップフロップであり、
前記エラーフリップフロップは、前記テストモード時に前記カウンタによって得られたカウント値に基づいて検出され、
前記再構成情報は、前記検出されたエラーフリップフロップが前記Ｎ個の選択フリップフロップから除外されるように作成される
半導体集積回路。
【請求項４】
請求項３に記載の半導体集積回路であって、
前記再構成情報は、前記テストモード終了後の所定のタイミングに、前記セレクタ部に出力される
半導体集積回路。
【請求項５】
請求項１乃至４のいずれか一項に記載の半導体集積回路であって、
前記複数のフリップフロップの各々は、
入力ノードと、
第１ラッチ回路と、
前記入力ノードと前記第１ラッチ回路との間に設けられた第１スイッチ回路と、
第２ラッチ回路と、
前記第１ラッチ回路と前記第２ラッチ回路との間に設けられた第２スイッチ回路と、
前記第２ラッチ回路の出力に接続された出力ノードと、
前記テストモード時に活性化される、前記出力ノードから前記入力ノードへの前記フィードバックパスと
を備え、
前記トグル動作時、前記第１スイッチ回路と前記第２スイッチ回路は交互にＯＮし、
前記自己発振動作時、前記第１スイッチ回路と前記第２スイッチ回路は共にＯＮ状態に維持される
半導体集積回路。
【請求項６】
請求項１乃至５のいずれか一項に記載の半導体集積回路であって、
更に、カウント対象セレクタを備え、
前記テストモード時、前記カウント対象セレクタは、対象フリップフロップを前記複数のフリップフロップから１つずつ順番に選択し、前記対象フリップフロップから出力される前記出力データを前記カウンタに出力する
半導体集積回路。
【請求項７】
請求項１乃至５のいずれか一項に記載の半導体集積回路であって、
前記テストモード時、カウント対象である対象フリップフロップは、前記複数のフリップフロップから１つずつ順番に選択され、
前記複数のフリップフロップのうち前記対象フリップフロップ以外のフリップフロップが、前記カウンタとして機能する
半導体集積回路。
【請求項８】
請求項７に記載の半導体集積回路であって、
前記テストモード時、
前記対象フリップフロップを先頭として、前記複数のフリップフロップは順番に接続され、
前記対象フリップフロップは、前記トグル動作あるいは前記自己発振動作を行い、
前記対象フリップフロップ以外の前記フリップフロップの各々のクロック入力端子には、前段のフリップフロップからの出力データが入力される
半導体集積回路。
【請求項９】
請求項１乃至８のいずれか一項に記載の半導体集積回路と、
前記複数のフリップフロップの動作電圧を供給する電源回路と、
前記半導体集積回路及び前記電源回路の動作を制御する制御装置と
を備え、
前記Ｒ個の冗長フリップフロップを用いても前記エラーフリップフロップが無くならない場合、前記制御装置は、前記動作電圧を上昇させるよう前記電源回路に指示する
電源電圧適応制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及び電源電圧適応制御システムに関する。特に、本発明は、低電圧動作を行うフリップフロップを備える半導体集積回路、及び電源電圧適応制御システムに関する。
【背景技術】
【０００２】
近年、地球温暖化対策の１つとして、「極低電力回路」の開発が盛んに進められている。極低電力回路は、０．５Ｖ程度の極低電圧で動作し、消費電力を大幅に削減可能な半導体集積回路である。但し、半導体集積回路の低電圧化には、様々な問題がある。
【０００３】
例えば、ロジック回路が低電圧化される場合、そのロジック回路に含まれるフリップフロップに不具合が発生する可能性がある。具体的には、低電圧化により、フリップフロップの出力値が“０”または“１”に固定される「ＤＣエラー」が発生する可能性がある。また、低電圧化により、フリップフロップのラッチ特性や遅延特性といったＡＣ特性が十分でなくなる「ＡＣ特性エラー」が発生する可能性がある。
【０００４】
このようなＤＣエラーやＡＣ特性エラーが、少ない頻度でランダムに発生する場合、「冗長技術」が有効となる。具体的には、ロジック回路中に冗長フリップフロップが設けられ、ＤＣエラーやＡＣ特性エラーが発生したエラーフリップフロップがその冗長フリップフロップにより置換される。フリップフロップの冗長化に関しては、例えば、非特許文献１や非特許文献２に記載されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Ｕ．  Ａｌｓａｉａｒｉ  ａｎｄ  Ｒ．  Ｓａｌｅｈ，  “Ｐａｒｔｉｔｉｏｎｉｎｇ  ｆｏｒ  Ｓｅｌｅｃｔｉｖｅ  Ｆｌｉｐ−Ｆｌｏｐ  Ｒｅｄｕｎｄａｎｃｙ  ｉｎ  Ｓｅｑｕｅｎｔｉａｌ  Ｃｉｒｃｕｉｔｓ”，  ｐｐ．  ７９８−８０３，  ９ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｑｕａｌｉｔｙ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  （ＩＳＱＥＤ），  ２００８．
【非特許文献２】Ｍ．  Ｋｕｒｉｍｏｔｏ  ｅｔ  ａｌ．，  “Ａ  Ｙｉｅｌｄ  Ｉｍｐｒｏｖｅｍｅｎｔ  Ｍｅｔｈｏｄｏｌｏｇｙ  Ｂａｓｅｄ  ｏｎ  Ｌｏｇｉｃ  Ｒｅｄｕｎｄａｎｔ  Ｒｅｐａｉｒ  ｗｉｔｈ  ａ  Ｒｅｐａｉｒａｂｌｅ  Ｓｃａｎ  Ｆｌｉｐ−Ｆｌｏｐ  Ｄｅｓｉｇｎｅｄ  ｂｙ  Ｐｕｓｈ  Ｒｕｌｅ”，  ｐｐ．  １８４−１９０，  １１ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｑｕａｌｉｔｙ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｓｉｇｎ  （ＩＳＱＥＤ），  ２０１０．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
フリップフロップを備える半導体集積回路において、ＤＣエラーあるいはＡＣ特性エラーが発生したエラーフリップフロップを効率的に検出することができる技術が望まれている。
【課題を解決するための手段】
【０００７】
本発明の１つの観点において、半導体集積回路が提供される。その半導体集積回路は、Ｎ個（Ｎは１以上の整数）の入力端子と、Ｎ個の出力端子と、Ｎ個のフリップフロップとＲ個（Ｒは１以上の整数）の冗長フリップフロップとを含む複数のフリップフロップと、セレクタ部と、エラー検出部と、を備える。セレクタ部は、再構成情報に応じて複数のフリップフロップの中からＮ個の選択フリップフロップを選択し、Ｎ個の入力端子に入力されたデータがＮ個の選択フリップフロップのそれぞれによってＮ個の出力端子に出力されるようにデータの流れを切り替える。エラー検出部は、テストモード時に再構成情報を作成する。より詳細には、テストモード時、Ｎ個のフリップフロップはスキャンチェーンを構成し、そのスキャンチェーンにはスキャンデータが入力される。出力が０又は１に固定されるフリップフロップは、エラーフリップフロップである。エラー検出部は、テストモード時にＮ個のフリップフロップのそれぞれに入力されるスキャン入力データ及びそれぞれから出力されるスキャン出力データに基づいて、Ｎ個のフリップフロップに含まれるエラーフリップフロップを検出する。更に、エラー検出部は、検出したエラーフリップフロップがＮ個の選択フリップフロップから除外されるように再構成情報を作成する。
【０００８】
本発明の他の観点において、半導体集積回路が提供される。その半導体集積回路は、複数のフリップフロップと、カウンタと、を備える。複数のフリップフロップの各々は、自身の出力から入力へのフィードバックパスを備え、テストモード時にフィードバックパスを利用してトグル動作あるいは自己発振動作を行うように構成される。テストモード時、カウンタは、トグル動作あるいは自己発振動作を行う各々のフリップフロップから出力データを受け取り、所定期間における出力データのデータ遷移回数をカウントする。
【０００９】
本発明の更に他の観点において、電源電圧適応制御システムが提供される。その電源電圧適応制御システムは、上述の半導体集積回路と、複数のフリップフロップの動作電圧を供給する電源回路と、半導体集積回路に接続された制御回路と、を備える。Ｒ個の冗長フリップフロップを用いてもエラーフリップフロップが無くならない場合、制御回路は、動作電圧を上昇させるよう電源回路に指示する。
【発明の効果】
【００１０】
本発明によれば、フリップフロップを備える半導体集積回路において、ＤＣエラーあるいはＡＣ特性エラーが発生したエラーフリップフロップを効率的に検出することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の第１の実施の形態に係る半導体集積回路の構成を概略的に示すブロック図である。
【図２】図２は、本発明の第１の実施の形態におけるＤＣテスト時の構成を概略的に示すブロック図である。
【図３】図３は、本発明の第１の実施の形態における再構成処理を概略的に示すブロック図である。
【図４】図４は、本発明の第１の実施の形態に係る半導体集積回路の構成例を示す回路図である。
【図５】図５は、本発明の第１の実施の形態におけるエラー検出記憶回路の構成例を示す回路図である。
【図６】図６は、本発明の第１の実施の形態におけるライン判定回路の構成例を示す回路図である。
【図７】図７は、本発明の第１の実施の形態における再構成情報の一例を示す概念図である。
【図８】図８は、本発明の第１の実施の形態におけるＤＣテスト時のデータの流れを示している。
【図９】図９は、ＤＣエラーが発生していない場合の各信号の遷移を示すタイミングチャートである。
【図１０】図１０は、ＤＣエラーが発生している場合の各信号の遷移を示すタイミングチャートである。
【図１１】図１１は、本発明の第１の実施の形態における再構成処理後のデータの流れを示している。
【図１２】図１２は、本発明の第１の実施の形態に係る電源電圧適応制御システムの構成を示すブロック図である。
【図１３】図１３は、本発明の第１の実施の形態に係る電源電圧適応制御システムの動作を示すフローチャートである。
【図１４】図１４は、ライン並列テストを実施する場合を示す概略図である。
【図１５】図１５は、ライン直列テストを実施する場合を示す概略図である。
【図１６】図１６は、本発明の第２の実施の形態に係るフリップフロップの構成例を示す回路図である。
【図１７】図１７は、本発明の第２の実施の形態に係るモード制御回路の構成例を示す回路図である。
【図１８】図１８は、本発明の第２の実施の形態に係るフリップフロップのトグルモードにおける動作を示すタイミングチャートである。
【図１９】図１９は、本発明の第２の実施の形態に係るフリップフロップの自己発振モードにおける動作を示すタイミングチャートである。
【図２０】図２０は、本発明の第２の実施の形態に係る半導体集積回路の構成を概略的に示すブロック図である。
【図２１】図２１は、本発明の第２の実施の形態に係る半導体集積回路の構成例を示す回路図である。
【図２２】図２２は、本発明の第２の実施の形態における再構成情報の一例を示す概念図である。
【図２３】図２３は、本発明の第２の実施の形態における再構成処理後のデータの流れを示している。
【図２４】図２４は、本発明の第２の実施の形態に係る半導体集積回路の変形例を示す回路図である。
【図２５】図２５は、当該変形例の場合のテストモード時のデータの流れを示している。
【図２６】図２６は、当該変形例の場合のデータの流れを示している。
【図２７】図２７は、本発明の第２の実施の形態に係る電源電圧適応制御システムの構成を示すブロック図である。
【図２８】図２８は、本発明の第３の実施の形態における処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
添付図面を参照して、本発明の実施の形態を説明する。
【００１３】
１．第１の実施の形態（ＤＣエラー検出及び再構成）
１−１．概要
本発明の第１の実施の形態では、フリップフロップの出力値が“０”または“１”に固定される「ＤＣエラー」が効率的に検出される。更に、ＤＣエラーが発生したエラーフリップフロップを冗長フリップフロップで置換する「再構成処理」が実施される。
【００１４】
図１は、第１の実施の形態に係る半導体集積回路の構成を概略的に示すブロック図である。本実施の形態に係る半導体集積回路は、複数ビットのデータを記憶する多ビットレジスタ部１を備えている。その多ビットレジスタ部１は、Ｎ個（Ｎは１以上の整数）の入力端子ＩＮ−１〜ＩＮ−Ｎ及びＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎを備えており、入力端子ＩＮ−１〜ＩＮ−Ｎのそれぞれに入力されるＮビットデータを記憶し、そのＮビットデータを出力端子ＯＵＴ−１〜ＯＵＴ−Ｎのそれぞれから出力する。
【００１５】
より詳細には、多ビットレジスタ部１は、Ｎビットデータを記憶するための複数のフリップフロップ１０を備えている。各フリップフロップ１０は、例えばＤフリップフロップである。本実施の形態では、複数のフリップフロップ１０は、少なくとも１つの冗長フリップフロップを含んでいる。すなわち、複数のフリップフロップ１０は、Ｎ個のフリップフロップ１０−１〜１０−Ｎと、Ｒ個の冗長フリップフロップ１０−ｒ１〜１０−ｒＲを含んでいる。ここで、Ｒは、“冗長度”を表す１以上の整数である。これらＮ＋Ｒ個のフリップフロップ１０のうち「Ｎ個の選択フリップフロップ」が、入力端子ＩＮ−１〜ＩＮ−Ｎに入力されるＮビットデータの記憶に用いられる。
【００１６】
そのＮ個の選択フリップフロップの選択に用いられるのが、再構成情報ＲＥＣＯＮ及びセレクタ部（２０、３０）である。再構成情報ＲＥＣＯＮは、Ｎ個の選択フリップフロップを指定するデータである。セレクタ部（２０、３０）は、その再構成情報ＲＥＣＯＮに応じて、複数のフリップフロップ１０の中からＮ個の選択フリップフロップを選択する。そして、セレクタ部（２０、３０）は、Ｎ個の入力端子ＩＮ−１〜ＩＮ−Ｎに入力されたＮビットデータがＮ個の選択フリップフロップのそれぞれによってＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎに出力されるように、データの流れを切り替える。
【００１７】
より詳細には、図１に示されるように、多ビットレジスタ部１は、入力セレクタ部２０及び出力セレクタ部３０を備えている。
【００１８】
入力セレクタ部２０は、Ｎ個の入力端子ＩＮ−１〜ＩＮ−ＮとＮ＋Ｒ個のフリップフロップ１０との間に配置されている。この入力セレクタ部２０は、再構成情報ＲＥＣＯＮに応じて、Ｎ個の入力端子ＩＮ−１〜ＩＮ−ＮとＮ＋Ｒ個のフリップフロップ１０との間の接続関係を切り替える。具体的には、入力セレクタ部２０は、再構成情報ＲＥＣＯＮに基づいて、Ｎ個の入力端子ＩＮ−１〜ＩＮ−Ｎに入力されたＮビットデータがＮ個の選択フリップフロップに供給されるように、当該接続関係を設定する。
【００１９】
出力セレクタ部３０は、Ｎ＋Ｒ個のフリップフロップ１０とＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎとの間に配置されている。この出力セレクタ部３０は、再構成情報ＲＥＣＯＮに応じて、Ｎ個の出力端子ＯＵＴ−１〜ＯＵＴ−ＮとＮ＋Ｒ個のフリップフロップ１０との間の接続関係を切り替える。具体的には、出力セレクタ部３０は、再構成情報ＲＥＣＯＮに基づいて、Ｎ個の選択フリップフロップから出力されるＮビットデータがＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎに出力されるように、当該接続関係を設定する。
【００２０】
本実施の形態において、多ビットレジスタ部１は更に、「エラー検出部５０」を備えている。エラー検出部５０は、各フリップフロップ１０のデータ入力端子及びデータ出力端子に接続されている。このエラー検出部５０は、ＤＣテストモード時に、各フリップフロップ１０の入出力に基づいて、ＤＣエラーが発生しているエラーフリップフロップを検出する。更に、エラー検出部５０は、検出したエラーフリップフロップがＮ個の選択フリップフロップから除外されるように再構成情報ＲＥＣＯＮを作成する。
【００２１】
図２は、ＤＣテスト時の構成をより詳細に示している。尚、図２において、セレクタ部（２０、３０）の図示は省略されている。本実施の形態によれば、ＤＣテストモードにおいて、Ｎ個のフリップフロップ１０−１〜１０−Ｎがスキャンチェーンを構成する。そのスキャンチェーンにはスキャンデータＤｓｃａｎが順次入力される。エラー検出部５０は、各フリップフロップ１０のデータ入力端子及びデータ出力端子に接続されており、それぞれのフリップフロップ１０に入力されるスキャン入力データ及びそれらから出力されるスキャン出力データに基づいてＤＣエラーの発生を検出する。つまり、エラー検出部５０は、Ｎ個のフリップフロップ１０−１〜１０−Ｎにエラーフリップフロップが含まれているか否か検出し、含まれている場合、そのエラーフリップフロップの位置をも検出する。検出されたエラーフリップフロップの数が“冗長度Ｒ”以下であれば、そのエラーフリップフロップを冗長フリップフロップ１０−ｒによって置換可能である。エラー検出部５０は、検出されたエラーフリップフロップの代わりに冗長フリップフロップ１０−ｒが選択フリップフロップに組み込まれるように、再構成情報ＲＥＣＯＮを作成する。すなわち、エラー検出部５０は、検出されたエラーフリップフロップがＮ個の選択フリップフロップから除外されるように再構成情報ＲＥＣＯＮを作成する。
【００２２】
エラー検出部５０は、作成した再構成情報ＲＥＣＯＮを記憶部６０に格納する。好適には、記憶部６０は、多ビットレジスタ部１毎に個別に設けられる。例えば、記憶部６０は、エラー検出部５０内のラッチ回路により構成される。但し、記憶部６０の構成はそれに限られない。記憶部６０は、複数の多ビットレジスタ部１によって共用されるフラッシュメモリ等のメモリマクロであってもよい。
【００２３】
記憶部６０に格納された再構成情報ＲＥＣＯＮは、ＤＣテストモード終了後の所定のタイミングにおいて、セレクタ部２０、３０に出力（反映）される。すなわち、ＤＣテストにおいて検出されたエラーフリップフロップはＮ個の選択フリップフロップから除外され、その代わりに、冗長フリップフロップ１０−ｒが適宜選択フリップフロップに組み込まれる。この処理が「再構成処理」である。
【００２４】
図３は、本実施の形態における再構成処理の一例を概略的に示している。例えば、上述のＤＣテストの結果、フリップフロップ１０−２がエラーフリップフロップとして検出されたとする。この場合、セレクタ部（２０、３０）は、再構成情報ＲＥＣＯＮに応じて、エラーフリップフロップ１０−２を避けるようにデータの流れを切り替える。具体的には、エラーフリップフロップ１０−２の代わりに冗長フリップフロップ１０−ｒ１が選択フリップフロップに組み込まれる。入力セレクタ部２０は、Ｎ個の入力端子ＩＮ−１〜ＩＮ−ＮとＮ個の選択フリップフロップ１０−１、１０−３〜１０−Ｎ、１０−ｒ１とをそれぞれ電気的に接続し、出力セレクタ部３０は、Ｎ個の選択フリップフロップ１０−１、１０−３〜１０−Ｎ、１０−ｒ１とＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎとをそれぞれ電気的に接続する。その結果、Ｎ個の入力端子ＩＮ−１〜ＩＮ−Ｎに入力されたＮビットデータが、エラーフリップフロップ１０−２を介することなく、Ｎ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎにそれぞれ出力されるようになる。
【００２５】
以上に説明されたように、本実施の形態によれば、スキャンチェーンを利用することによりエラーフリップフロップの位置（ＤＣエラー発生位置）が“効率的”に検出される。これにより、ＤＣテスト時間が短縮される。また、本実施の形態によれば、多ビットレジスタ部１はエラー検出部５０を備えており、ＤＣテストモード時に多ビットレジスタ部１自身が再構成情報ＲＥＣＯＮを作成する。これにより、効率的な再構成処理が可能となる。
【００２６】
１−２．具体例
１−２−１．回路構成例
図４は、本実施の形態に係る半導体集積回路の多ビットレジスタ部１の回路構成の一例を示している。本例では、Ｎ＝８、冗長度Ｒ＝１である。多ビットレジスタ部１の入力端子ＩＮ−８〜ＩＮ−１には、８ビットの入力データＩＮ［７：０］が入力される。多ビットレジスタ部１の出力端子ＯＵＴ−８〜ＯＵＴ−１からは、８ビットの出力データＯＵＴ［７：０］が出力される。図４に示されるように、多ビットレジスタ部１は、複数のフリップフロップ１０（１０−１〜１０−８、１０−ｒ１）、入力セレクタ部２０、出力セレクタ部３０、スキャンセレクタ部４０、エラー検出部５０、及びライン判定回路７０を備えている。
【００２７】
各フリップフロップ１０のクロック端子には、クロック信号ＣＬＫが入力される。各フリップフロップ１０は、クロック信号ＣＬＫに基づいて動作する。
【００２８】
入力セレクタ部２０は、Ｎ＋１個の入力セレクタ２１−１〜２１−９を備えている。入力セレクタ２１−ｋ（ｋ＝１〜８）は、入力セレクト信号ＳＬｉ［ｋ−１］に応じて、スキャンセレクタ４１−ｋの出力データあるいは下位ビット側のスキャンセレクタ４１−（ｋ−１）の出力データのいずれか一方を選択し、選択データをフリップフロップ１０−ｋのデータ入力端子に出力する。但し、入力セレクタ２１−１の場合、下位ビット側の出力データは固定データであるとする。入力セレクタ２１−９は、入力セレクト信号ＳＬｉ［８］に応じて、固定データあるいはスキャンセレクタ４１−８の出力データのいずれか一方を選択し、選択データを冗長フリップフロップ１０−ｒ１のデータ入力端子に出力する。尚、９ビットの入力セレクト信号ＳＬｉ［８：０］は、再構成情報ＲＥＣＯＮに相当する。
【００２９】
出力セレクタ部３０は、Ｎ個の出力セレクタ３１−１〜３１−８を備えている。出力セレクタ３１−ｋ（ｋ＝１〜８）は、出力セレクト信号ＳＬｏ［ｋ−１］に応じて、フリップフロップ１０−ｋの出力データあるいは上位ビット側のフリップフロップ１０−（ｋ＋１）の出力データのいずれかを選択し、選択データを出力データＯＵＴ［ｋ−１］として出力する。但し、出力セレクタ３１−８の場合、上位ビット側のフリップフロップは、冗長フリップフロップ１０−ｒ１であるとする。尚、８ビットの出力セレクト信号ＳＬｏ［７：０］も、再構成情報ＲＥＣＯＮに相当する。
【００３０】
スキャンセレクタ部４０は、Ｎ個のスキャンセレクタ４１−１〜４１−８を備えている。スキャンセレクタ４１−ｋ（ｋ＝１〜８）は、スキャン信号ＳＣＡＮに応じて、入力データＩＮ［ｋ−１］あるいは下位ビット側の出力セレクタ３１−（ｋ−１）の出力データＯＵＴ［ｋ−２］のいずれか一方を選択し、選択データを入力セレクタ２１−ｋ及び上位ビット側の入力セレクタ２１−（ｋ＋１）の両方に出力する。但し、スキャンセレクタ４１−１の場合、下位ビット側の出力データＯＵＴ［ｋ−２］の代わりに、スキャンデータＤｓｃａｎが入力される（後述される）。
【００３１】
エラー検出部５０は、Ｎ個のエラー検出記憶回路５１−１〜５１−８を備えている。ＤＣテストモード時、エラー検出記憶回路５１−ｋ（ｋ＝１〜８）は、スキャンセレクタ４１−ｋへの入力データ（スキャン入力データＤｉｎ）及び出力セレクタ３１−ｋからの出力データ（スキャン出力データＤｏｕｔ）を受け取る。そして、エラー検出記憶回路５１−ｋは、スキャン入力データＤｉｎ及びスキャン出力データＤｏｕｔに基づいて、入力セレクト信号ＳＬｉ［ｋ−１］及び出力セレクト信号ＳＬｏ［ｋ−１］を作成し、記憶する。尚、エラー検出記憶回路５１−８は、入力セレクト信号ＳＬｉ［８］を入力セレクト信号ＳＬｉ［７］と同じ値に設定する。
【００３２】
図５は、１つのエラー検出記憶回路５１の回路構成の一例を示している。エラー検出記憶回路５１は、ＥＸＮＯＲ回路５２、ＡＮＤ回路５３、５４、ＮＯＲ回路５５、５６、インバータ回路５７、５８を備えている。
【００３３】
ＥＸＮＯＲ回路５２の入力端子には、スキャン入力データＤｉｎ及びスキャン出力データＤｏｕｔが入力される。ＥＸＮＯＲ回路５２の出力端子は、ノードＮＡに接続されている。ＡＮＤ回路５３の入力端子には、ＤＣテスト信号ＤＣｔｅｓｔ、反転クロック信号ＣＬＫＢ、及びＥＸＮＯＲ回路５２の出力信号（ノードＮＡの信号）が入力される。ＡＮＤ回路５３の出力端子は、ノードＮＢに接続されている。ＡＮＤ回路５４の入力端子には、ＤＣテスト信号ＤＣｔｅｓｔ、反転クロック信号ＣＬＫＢ、及びリセット信号Ｒｅｓｅｔが入力される。ＡＮＤ回路５４の出力端子は、ノードＮＣに接続されている。
【００３４】
ＮＯＲ回路５５、５６は、ＲＳラッチ回路を構成している。詳細には、ＮＯＲ回路５５の入力端子はノードＮＢ、ＮＥに接続されており、その出力端子はノードＮＤに接続されている。また、ＮＯＲ回路５６の入力端子はノードＮＣ、ＮＤに接続されており、その出力端子はノードＮＥに接続されている。インバータ回路５７の入力端子はノードＮＤに接続されており、その出力端子から入力セレクト信号ＳＬｉが出力される。インバータ回路５８の入力端子はノードＮＥに接続されており、その出力端子から出力セレクト信号ＳＬｏが出力される。尚、これらＮＯＲ回路５５、５６、インバータ回路５７、５８が、再構成情報ＲＥＣＯＮ（入力セレクト信号ＳＬｉ、出力セレクト信号ＳＬｏ）を記憶する「記憶部６０」に相当している。エラー検出記憶回路５１の動作の詳細は後述される。
【００３５】
再度図４を参照して、ライン判定回路７０は、ＤＣテストモード時、スキャンセレクタ４１−８への入力データ（スキャン入力データＤｉｎ）及び出力セレクタ３１−８からの出力データ（スキャン出力データＤｏｕｔ）を受け取る。そして、ライン判定回路７０は、スキャン入力データＤｉｎ及びスキャン出力データＤｏｕｔに基づいて、ライン判定ビットＬＢを作成し、記憶する。ライン判定ビットＬＢは、Ｎ個のフリップフロップ１０−１〜１０−８にエラーフリップフロップが１つでも含まれているか否かを示すエラーフラグである。
【００３６】
図６は、ライン判定回路７０の回路構成の一例を示している。ライン判定回路７０の回路構成は、図５で示されたエラー検出記憶回路５１の回路構成と同様である。ＥＸＮＯＲ回路５２、ＡＮＤ回路５３、５４、ＮＯＲ回路５５、５６、インバータ回路５７、５８が、それぞれ、ＥＸＮＯＲ回路７２、ＡＮＤ回路７３、７４、ＮＯＲ回路７５、７６、インバータ回路７７、７８に置き換えられている。また、リセット信号Ｒｅｓｅｔの代わりにラインリセット信号ＬＲｅｓｅｔが入力され、入力セレクト信号ＳＬｉの代わりにライン判定ビットＬＢが出力される。尚、エラー検出記憶回路５１−８のＥＸＮＯＲ回路５２とライン判定回路７０のＥＸＮＯＲ回路７２は、共通化されてもよい。ライン判定回路７０の動作の詳細は後述される。
【００３７】
１−２−２．動作例
ＤＣテストモード時の動作を詳細に説明する。ＤＣテストモードにおいて、ＤＣテスト信号ＤＣｔｅｓｔは“１”に設定され、スキャン信号ＳＣＡＮは“１”に設定される。
【００３８】
まず、リセット処理が行われる。具体的には、全てのエラー検出記憶回路５１において、リセット信号Ｒｅｓｅｔが所定期間“１”に設定される。その結果、ＮＯＲ回路５５、５６によって構成されるＲＳラッチ回路（図５参照）がリセットされ、入力セレクト信号ＳＬｉが“０”になり、出力セレクト信号ＳＬｏが“１”になる。ライン判定回路７０に関しても同様にリセット処理が行われる。ラインリセット信号ＬＲｅｓｅｔが所定期間“１”に設定され、ライン判定ビットＬＢが“０”になる。このようなリセット処理後の各信号の状態は、図７に示される通りである。入力セレクト信号ＳＬｉ及び出力セレクト信号ＳＬｏは、セレクタ部（２０、３０）に反映される。
【００３９】
図８は、ＤＣテスト時のデータの流れを示している。スキャン信号ＳＣＡＮが“１”の場合、各スキャンセレクタ４１−ｋ（ｋ＝１〜８）は、下位ビット側の出力セレクタ３１−（ｋ−１）の出力データＯＵＴ［ｋ−２］を選択し、出力する。但し、スキャンセレクタ４１−１は、スキャンデータＤｓｃａｎを出力する。また、入力セレクト信号ＳＬｉが“０”の場合、各入力セレクタ２１−ｋ（ｋ＝１〜８）は、スキャンセレクタ４１−ｋの出力データを選択し、出力する。また、出力セレクト信号ＳＬｏが“１”の場合、各出力セレクタ３１−ｋ（ｋ＝１〜８）は、フリップフロップ１０−ｋの出力データを選択し、出力する。その結果、図８に示されるように、フリップフロップ１０−１〜１０−８がスキャンチェーンを構成する。そのスキャンチェーンには、スキャンデータＤｓｃａｎとして、“０”、“１”の繰り返しパターン（０、１、０、１・・・）が入力される。
【００４０】
エラー検出記憶回路５１−ｋ（ｋ＝１〜８）は、フリップフロップ１０−ｋへの入力データ（スキャン入力データＤｉｎ）及びフリップフロップ１０−ｋからの出力データ（スキャン出力データＤｏｕｔ）を受け取る。そして、エラー検出記憶回路５１−ｋは、スキャン入力データＤｉｎ及びスキャン出力データＤｏｕｔに基づいて、入力セレクト信号ＳＬｉ［ｋ−１］及び出力セレクト信号ＳＬｏ［ｋ−１］を適宜更新し、記憶する。
【００４１】
図９は、フリップフロップ１０−ｋが正常に動作している場合のエラー検出記憶回路５１−ｋ（図５参照）の動作を説明するためのタイミングチャートである。図９には、クロック信号ＣＬＫ、スキャン入力データＤｉｎ、スキャン出力データＤｏｕｔ、ノードＮＡの信号、反転クロック信号ＣＬＫＢ、及びノードＮＢの信号が示されている。フリップフロップ１０−ｋが正常に動作している場合、ノードＮＢの信号は“０”のままである。従って、ＮＯＲ回路５５、５６によって構成されるＲＳラッチ回路の状態は、そのまま変わらない。すなわち、入力セレクト信号ＳＬｉは“０”のまま維持され、出力セレクト信号ＳＬｏは“１”のまま維持される。
【００４２】
一方、図１０は、フリップフロップ１０−ｋにＤＣエラーが発生している場合を示している。例えば、スキャン出力データＤｏｕｔが“０”に固定されているとする。この場合、ノードＮＢにデータ“１”が印加される。従って、ＮＯＲ回路５５、５６によって構成されるＲＳラッチ回路の状態が反転する。すなわち、入力セレクト信号ＳＬｉは“０”から“１”に反転し、出力セレクト信号ＳＬｏは“１”から“０”に反転する。また、この信号状態は、ＲＳラッチ回路（記憶部６０）によって保持される。
【００４３】
例として、フリップフロップ１０−４がエラーフリップフロップである場合を考える。エラー検出記憶回路５１−４は、フリップフロップ１０−４がエラーフリップフロップであることを検出し、入力セレクト信号ＳＬｉ［３］を“０”から“１”に反転させ、出力セレクト信号ＳＬｏ［３］を“１”から“０”に反転させる。また、スキャンチェーン上でエラーフリップフロップ１０−４以降に存在するフリップフロップ１０−５〜１０−８には、スキャンデータＤｓｃａｎである“０”、“１”の繰り返しパターンが伝わらない。従って、エラーフリップフロップの場合（図１０参照）と同様に、ＲＳラッチ回路の状態が反転する。すなわち、図７に示されるように、入力セレクト信号ＳＬｉ［８：３］は全て“０”から“１”に反転し、出力セレクト信号ＳＬｏ［７：３］は全て“１”から“０”に反転する。これら入力セレクト信号ＳＬｉ及び出力セレクト信号ＳＬｏが再構成情報ＲＥＣＯＮであり、ＲＳラッチ回路（記憶部６０）によって記憶される。
【００４４】
尚、入力セレクト信号ＳＬｉ［８：７］が“０”から“１”に反転する場合、ライン判定回路７０によって作成されるライン判定ビットＬＢも同様に“０”から“１”に反転する。ライン判定ビットＬＢ＝１は、フリップフロップ１０−１〜１０−８からなるラインのどこかでＤＣエラーが発生していることを意味する。つまり、ライン判定ビットＬＢは、ライン毎のエラーフラグである。このライン判定ビットＬＢを利用することによって、ＤＣテストを効率的に実施することができる（後述される）。
【００４５】
ＲＳラッチ回路（記憶部６０）によって保持されている入力セレクト信号ＳＬｉ及び出力セレクト信号ＳＬｏは、所定のタイミングで、入力セレクタ部２０及び出力セレクタ部３０に出力（反映）され、再構成処理が実施される。
【００４６】
図１１は、再構成処理後のデータの流れを示している。スキャン信号ＳＣＡＮが“０”の場合、各スキャンセレクタ４１−ｋ（ｋ＝１〜８）は、入力データＩＮ［ｋ−１］を選択し、出力する。入力セレクト信号ＳＬｉ＝“０”を受け取る入力セレクタ２１−１〜２１−３は、それぞれ、スキャンセレクタ４１−１〜４１−３の出力データを選択し、出力する。一方、入力セレクト信号ＳＬｉ＝“１”を受け取る入力セレクタ２１−４〜２１−９は、それぞれ、下位ビット側のスキャンセレクタ４１−３〜４１−８の出力データを選択し、出力する。また、出力セレクト信号ＳＬｏ＝“１”を受け取る出力セレクタ３１−１〜３１−３は、それぞれ、フリップフロップ１０−１〜１０−３の出力データを選択し、出力する。一方、出力セレクト信号ＳＬｏ＝“０”を受け取る出力セレクタ３１−４〜３１−８は、それぞれ、上位ビット側のフリップフロップ１０−５〜１０−８、１０−ｒ１の出力データを選択し、出力する。その結果、図１１に示されるように、入力データＩＮ［７：０］は、エラーフリップフロップ１０−４を介することなく、選択フリップフロップ（１０−１〜１０−３、１０−５〜１０−８、１０−ｒ１）によって、出力データＯＵＴ［７：０］として出力されることになる。
【００４７】
尚、図８及び図１１で示された例では、エラーフリップフロップ１０−４より後ろのフリップフロップ１０−５〜１０−８、１０−ｒ１の中に、他のエラーフリップフロップがあるかもしれない。従って、最新の入力セレクト信号ＳＬｉ及び出力セレクト信号ＳＬｏを入力セレクタ部２０及び出力セレクタ部３０に反映した後に、再度スキャンデータＤｓｃａｎをスキャンチェーンに供給し、エラー検出処理を再度実施してもよい。図８及び図１１で示された例では冗長度Ｒが１であるが、一般的には、冗長度Ｒを使いきるまで、エラー検出処理及び再構成処理を繰り返し実行することができる。
【００４８】
以上に説明されたように、本実施の形態に係るエラー検出記憶回路５１は、ＥＸＮＯＲ回路及びＲＳラッチ回路を用いることにより、エラー検出、再構成情報ＲＥＣＯＮ（ＳＬｉ、ＳＬｏ）の作成及び保持を効率的に行う。これにより、ＤＣテスト時間が短縮される。
【００４９】
また、本実施の形態によれば、エラー検出記憶回路５１中のラッチ回路が、再構成情報ＲＥＣＯＮ（ＳＬｉ、ＳＬｏ）を記憶するための記憶部６０として用いられる。つまり、ある多ビットレジスタ部１に関する再構成情報ＲＥＣＯＮは、当該多ビットレジスタ部１の中のローカルな記憶部６０に記憶される。比較例として、複数の多ビットレジスタ部１に関する再構成情報ＲＥＣＯＮがフラッシュメモリによって集中的に記憶される場合を考える。その場合、フラッシュメモリと複数の多ビットレジスタ部１との間をつなぐ信号配線が混雑するという問題がある。本実施の形態によれば、信号配線の混雑問題が解消される。
【００５０】
１−３．電源電圧適応制御システム
本実施の形態に係る半導体集積回路は、好適には、「極低電力回路」に適用される。極低電力回路では、動作電圧ＶＤＤをなるべく低く設定することが要求される。以下、動作電圧ＶＤＤを適切に制御する「電源電圧適応制御システム」について説明する。
【００５１】
図１２は、本実施の形態に係る電源電圧適応制御システム９０の構成を示すブロック図である。電源電圧適応制御システム９０は、対象回路９１、電源回路９２、及び制御回路９３を備えている。対象回路９１は、電圧制御対象となる半導体集積回路であり、上述の多ビットレジスタ部１を備えている。電源回路９２は、少なくともフリップフロップ１０の動作電圧ＶＤＤを多ビットレジスタ部１に供給する。制御回路９３は、対象回路９１及び電源回路９２に接続されており、それらの動作を制御する。具体的には、制御回路９３は、ＤＣテストや再構成処理を制御するための制御信号ＣＯＮを、対象回路９１に出力する。また、制御回路９３は、多ビットレジスタ部１からライン判定ビットＬＢを受け取る。更に、制御回路９３は、必要に応じて、電源回路９２を制御する。
【００５２】
電源電圧適応制御システム９０は、１つの半導体チップ上に構築されていてもよい。あるいは、対象回路９１、電源回路９２、及び制御回路９３は、別々の半導体チップにより構成されていてもよい。制御回路９３は、コンピュータであってもよい。
【００５３】
図１３は、本実施の形態に係る電源電圧適応制御システム９０の動作を示すフローチャートである。尚、電源回路９２が供給する動作電圧ＶＤＤは、最初、極低電圧（例えば、０．５Ｖ以下）に設定されているとする。
【００５４】
まず、制御回路９３は、対象回路９１に制御信号ＣＯＮを出力し、再構成情報ＲＥＣＯＮ（ＳＬｉ、ＳＬｏ）をリセットする（ステップＳ１０）。また、制御回路９３は、パラメータｒを初期値０に設定する。パラメータｒは、冗長トランジスタ１０−ｒの使用数である。続いて、制御回路９３は、対象回路９１に制御信号ＣＯＮを出力し、ライン判定ビットＬＢを“０”にリセットする（ステップＳ１１）。
【００５５】
次に、制御回路９３は、対象回路９１に制御信号ＣＯＮを出力し、スキャンデータＤｓｃａｎのスキャン処理を実行させる（ステップＳ１２）。スキャン処理が終了すると、対象回路９１の多ビットレジスタ部１は、上述のライン判定ビットＬＢを制御回路９３に出力する（ステップＳ１３）。
【００５６】
ライン判定ビットＬＢが“０”の場合（ステップＳ１４；Ｙｅｓ）、エラーフリップフロップは存在しない。従って、処理は終了する。一方、ライン判定ビットＬＢが“１”の場合（ステップＳ１４；Ｎｏ）、エラーフリップフロップが存在する。この場合、制御回路９３は、パラメータｒを１増加させる（ステップＳ１５）。
【００５７】
パラメータｒが冗長度Ｒ以内である場合（ステップＳ１６；Ｎｏ）、制御回路９３は、対象回路９１に制御信号ＣＯＮを出力し、上述の再構成処理を実施させる（ステップＳ１７）。その結果、エラーフリップフロップはスキップされ、当該エラーフリップフロップ以降が１ビットずつシフトし、冗長フリップフロップ１０−ｒが１つ消費される（図１１参照）。その後、処理はステップＳ１１に戻り、同じ処理が繰り返される。
【００５８】
一方、パラメータｒが冗長度Ｒを超えた場合（ステップＳ１６；Ｙｅｓ）、エラーフリップフロップをこれ以上排除することができない。この場合、ＤＣエラーの原因となった極低電圧を多少緩和する。そのために、制御回路９３は、電源回路９２に指示を出し、動作電圧ＶＤＤを少しだけ上昇させる（ステップＳ１８）。その後、処理は最初（ステップＳ１０）に戻る。
【００５９】
このように、本実施の形態によれば、全ての冗長フリップフロップ１０−ｒ１〜１０−ｒＲを用いてもエラーフリップフロップが無くならない場合、動作電圧ＶＤＤが少しだけ増加させられる。これにより、エラーフリップフロップを解消しつつ、動作電圧ＶＤＤをなるべく低く設定することが可能となる。その結果、消費電力が必要最小限に抑えられる。
【００６０】
また、本実施の形態では、制御回路９３は、ライン判定ビットＬＢに基づいて制御処理を行う。対象回路９１は、全ての信号ＳＬｉ、ＳＬｏを制御回路９３に送る必要はなく、ライン判定ビットＬＢだけを制御回路９３に送ればよい。従って、対象回路９１と制御回路９３との間の配線が簡略化され、また、制御処理が高速化される。これは、多ビットレジスタ部１のビット数が非常に多い場合に特に有効である。
【００６１】
対象回路９１が複数の多ビットレジスタ部１を備えている場合も同様である。例えば、図１４は、複数の多ビットレジスタ部１−１〜１−４に対して並列的にＤＣテストが実施される「ライン並列テスト」の場合を示している。スキャンデータＤｓｃａｎは、複数の多ビットレジスタ部１−１〜１−４に対して同時並列に供給される。制御回路９３は、複数の多ビットレジスタ部１−１〜１−４の各々からライン判定ビットＬＢを受け取る。そして、制御回路９３は、受け取ったライン判定ビットＬＢに基づいて、動作電圧ＶＤＤを上昇させるか否かを決定する。ライン並列テストの場合、全ての多ビットレジスタ部１から受け取るライン判定ビットＬＢが“０”になるまで、動作電圧ＶＤＤを上昇させる。
【００６２】
図１５は、複数の多ビットレジスタ部１−１〜１−４に対して直列的にＤＣテストが実施される「ライン直列テスト」の場合を示している。複数の多ビットレジスタ部１−１〜１−４のフリップフロップ１０は１つのスキャンチェーンを構成する。スキャンデータＤｓｃａｎは、初段の多ビットレジスタ部１−１に供給される。制御回路９３は、最終段の多ビットレジスタ部１−４からライン判定ビットＬＢを受け取る。そして、制御回路９３は、受け取ったライン判定ビットＬＢに基づいて、動作電圧ＶＤＤを上昇させるか否かを決定する。尚、ライン判定ビットＬＢを次段のリセット信号等の制御信号に使用してもよい。
【００６３】
本実施の形態に係る再構成処理によってスキャンチェーンからエラーフリップフロップが排除された後、当該スキャンチェーンを用いることによって、通常のスキャンテスト（チップテスト）が実施されてもよい。スキャンＦＦのエラー修復後にスキャンテスト（チップテスト）を実施することによって、テストの信頼性が向上する。
【００６４】
２．第２の実施の形態（ＡＣ特性エラー検出及び再構成）
本発明の第２の実施の形態では、フリップフロップのラッチ特性や遅延特性といったＡＣ特性が十分でなくなる「ＡＣ特性エラー」が効率的に検出される。更に、ＡＣ特性エラーが発生したエラーフリップフロップを冗長フリップフロップで置換する「再構成処理」が実施される。
【００６５】
２−１．モード可変フリップフロップ
まず、本実施の形態において用いられるフリップフロップ１１０について詳しく説明する。本実施の形態に係るフリップフロップ１１０は、そのラッチ特性をテストするために、トグル動作が可能なように構成されている。また、本実施の形態に係るフリップフロップ１１０は、その遅延特性をテストするために、自己発振動作が可能なように構成されている。すなわち、本実施の形態に係るフリップフロップ１１０には、通常ＦＦモードだけでなく、「トグルモード」や「自己発振モード」といったテストモードが用意されている。以下に説明されるように、フリップフロップ１１０の動作モードは、それら複数のモード間で切り替え可能である。
【００６６】
図１６は、本実施の形態に係るフリップフロップ１１０の構成例を示す回路図である。フリップフロップ１１０は、ＦＦ入力端子ＦＦＩＮ及びＦＦ出力端子ＦＦＯＵＴを備えている。ＦＦ入力端子ＦＦＩＮには、フリップフロップ１１０の外部から外部入力データが入力される。ＦＦ出力端子ＦＦＯＵＴからは、フリップフロップ１１０の外部に外部出力データが出力される。
【００６７】
フリップフロップ１１０は更に、ＦＦ部１１２０、入力ノードＮｉｎ及び出力ノードＮｏｕｔを備えている。ＦＦ部１１２０は、フリップフロップとしての基本的な動作を行う。入力ノードＮｉｎ及び出力ノードＮｏｕｔのそれぞれは、そのＦＦ部１１２０の入力端子及び出力端子である。出力ノードＮｏｕｔは、ＦＦ出力端子ＦＦＯＵＴに接続されている。より詳細には、ＦＦ部１１２０は、第１スイッチ回路ＳＷ１、第１ラッチ回路ＬＡ１、第２スイッチ回路ＳＷ２、第２ラッチ回路ＬＡ２、及びインバータ１１２５を備えている。
【００６８】
第１スイッチ回路ＳＷ１は、入力ノードＮｉｎとノードＮ１との間に接続されている。この第１スイッチ回路ＳＷ１は、第１クロック信号ＣＫ１（及び第１反転クロック信号ＣＫ１Ｂ）に応じてＯＮ／ＯＦＦする。具体的には、第１クロック信号ＣＫ１がＨｉｇｈレベルの場合、第１スイッチ回路ＳＷ１はＯＦＦし、第１クロック信号ＣＫ１がＬｏｗレベルの場合、第１スイッチ回路ＳＷ１はＯＮする。第１スイッチ回路ＳＷ１は、例えば、図１６に示されるようなインバータ及びトランスファゲートにより構成される。
【００６９】
第１ラッチ回路ＬＡ１は、ノードＮ１とノードＮ２との間に接続されている。この第１ラッチ回路ＬＡ１は、第１クロック信号ＣＫ１（及び第１反転クロック信号ＣＫ１Ｂ）に基づいて動作する。具体的には、第１クロック信号ＣＫ１がＨｉｇｈレベルの場合、第１ラッチ回路ＬＡ１はデータラッチを行う。第１ラッチ回路ＬＡ１は、例えば、図１６に示されるようなインバータ１１２１及びクロックドインバータ１１２２により構成される。
【００７０】
第２スイッチ回路ＳＷ２は、ノードＮ２とノードＮ３との間に接続されている。この第２スイッチ回路ＳＷ２は、第２クロック信号ＣＫ２（及び第２反転クロック信号ＣＫ２Ｂ）に応じてＯＮ／ＯＦＦする。具体的には、第２クロック信号ＣＫ２がＨｉｇｈレベルの場合、第２スイッチ回路ＳＷ２はＯＮし、第２クロック信号ＣＫ２がＬｏｗレベルの場合、第２スイッチ回路ＳＷ２はＯＦＦする。第２スイッチ回路ＳＷ２は、例えば、図１６に示されるようなトランスファゲートにより構成される。
【００７１】
第２ラッチ回路ＬＡ２は、ノードＮ３とノードＮ４との間に接続されている。この第２ラッチ回路ＬＡ２は、第２クロック信号ＣＫ２（及び第２反転クロック信号ＣＫ２Ｂ）に基づいて動作する。具体的には、第２クロック信号ＣＫ２がＬｏｗレベルの場合、第２ラッチ回路ＬＡ２はデータラッチを行う。第２ラッチ回路ＬＡ２は、例えば、図１６に示されるようなインバータ１１２３及びクロックドインバータ１１２４により構成される。
【００７２】
インバータ１１２５は、ノードＮ４と出力ノードＮｏｕｔとの間に接続されている。
【００７３】
本実施の形態に係るフリップフロップ１１０は更に、ＦＦセレクタ部１１１０及びフィードバックパス１１３０を備えている。フィードバックパス１１３０は、ＦＦ部１１２０の出力ノードＮｏｕｔと入力ノードＮｉｎとの間をつないでいる。図１６に示されるように、フィードバックパス１１３０上にはインバータ１１３１が設けられている。
【００７４】
ＦＦセレクタ部１１１０は、入力ノードＮｉｎの前段に設けられている。このＦＦセレクタ部１１１０は、ＦＦ入力端子ＦＦＩＮに入力される外部入力データあるいはフィードバックパス１１３０を通してフィードバックされるフィードバックデータのいずれか一方を選択し、選択したデータを入力ノードＮｉｎに出力する。
【００７５】
より詳細には、ＦＦセレクタ部１１１０は、スイッチ１１１１、１１１２を備えている。スイッチ１１１１は、ＦＦ入力端子ＦＦＩＮと入力ノードＮｉｎとの間に接続されており、反転テスト信号ＴＳＴＢに応じてＯＮ／ＯＦＦする。スイッチ１１１２は、インバータ１１３１と入力ノードＮｉｎとの間に接続されており、テスト信号ＴＳＴに応じてＯＮ／ＯＦＦする。スイッチ１１１１、１１１２の各々は、例えば、ＮチャネルＭＯＳトランジスタにより構成される。
【００７６】
通常ＦＦモードにおいて、テスト信号ＴＳＴはＬｏｗレベルであり、反転テスト信号ＴＳＴＢはＨｉｇｈレベルである。この場合、スイッチ１１１１はＯＮし、一方、スイッチ１１１２はＯＦＦする。従って、ＦＦ入力端子ＦＦＩＮに入力される外部入力データが、入力ノードＮｉｎに伝達される。すなわち、ＦＦセレクタ部１１１０は、外部入力データを選択し、入力ノードＮｉｎに出力する。通常ＦＦモードにおいては、フィードバックパス１１３０は非活性化されていると言える。
【００７７】
一方、テストモード（トグルモード及び自己発振モード）において、テスト信号ＴＳＴはＨｉｇｈレベルであり、反転テスト信号ＴＳＴＢはＬｏｗレベルである。この場合、スイッチ１１１１はＯＦＦし、一方、スイッチ１１１２はＯＮする。従って、フィードバックパス１１３０を通してフィードバックされるフィードバックデータが、入力ノードＮｉｎに伝達される。すなわち、ＦＦセレクタ部１１１０は、フィードバックデータを選択し、入力ノードＮｉｎに出力する。このように、フィードバックパス１１３０は、テストモード（トグルモード及び自己発振モード）において活性化される。
【００７８】
図１７は、本実施の形態に係るフリップフロップ１１０の動作モードを制御するためのモード制御回路１５０の構成例を示している。モード制御回路１５０は、テスト信号生成回路１５１及びクロック生成回路１５４を備えている。
【００７９】
テスト信号生成回路１５１は、テスト信号ＴＥＳＴに応じて、上述のテスト信号ＴＳＴ及び反転テスト信号ＴＳＴＢを生成する。より詳細には、テスト信号生成回路１５１は、図１７に示されるようにインバータ１５２、１５３を備えている。テストモードにおいて、テスト信号ＴＥＳＴがＨｉｇｈレベルになる。その結果、テスト信号ＴＳＴがＨｉｇｈレベルになり、反転テスト信号ＴＳＴＢがＬｏｗレベルになる。尚、ＦＦセレクタ部１１１０における信号遅延及びその面積を低減する観点からは、スイッチ（ＮチャネルＭＯＳトランジスタ）１１１１、１１１２を駆動するための信号ＴＳＴ、ＴＳＴＢの電圧として、高電圧ＶＤＤＨが使用されることが好適である。
【００８０】
クロック生成回路１５４は、クロック信号ＣＬＫ及び信号ＳＯＢに応じて、上述の第１クロック信号ＣＫ１、第１反転クロック信号ＣＫ１Ｂ、第２クロック信号ＣＫ２及び第２反転クロック信号ＣＫ２Ｂを生成する。より詳細には、クロック生成回路１５４は、図１７に示されるようにＮＡＮＤ回路１５５、インバータ１５６、１５７、ＮＯＲ回路１５８、及びインバータ１５９を備えている。
【００８１】
以下、図１６及び図１７を適宜参照して、各動作モードにおけるフリップフロップ１１０の動作を説明する。
【００８２】
（通常ＦＦモード）
通常ＦＦモードにおいて、テスト信号ＴＥＳＴはＬｏｗレベルに設定される。この場合、反転テスト信号ＴＳＴＢがＨｉｇｈレベルとなり、スイッチ１１１１がＯＮする。一方、スイッチ１１１２はＯＦＦし、フィードバックパス１１３０は非活性化される。また、信号ＳＯＢはＨｉｇｈレベル（“１”）に設定される。従って、第１クロック信号ＣＫ１と第２クロック信号ＣＫ２は、共にクロック信号ＣＬＫと同じになる。この場合、ＦＦ部１１２０は通常のラッチ動作を行う。
【００８３】
（トグルモード）
図１８は、トグルモードにおけるフリップフロップ１１０の動作を示すタイミングチャートである。トグルモードにおいて、テスト信号ＴＥＳＴはＨｉｇｈレベルに設定され、テスト信号ＴＳＴがＨｉｇｈレベルになる。この場合、スイッチ１１１１がＯＦＦする一方でスイッチ１１１２がＯＮし、フィードバックパス１１３０が活性化される。
【００８４】
トグルモードの場合、信号ＳＯＢはＨｉｇｈレベル（“１”）に設定される。従って、上述の通常ＦＦモードの場合と同様に、ＦＦ部１１２０は通常のラッチ動作を行う。より詳細には、第１クロック信号ＣＫ１と第２クロック信号ＣＫ２は、共にクロック信号ＣＬＫと同じになる。この場合、ＦＦ部１１２０において、第１スイッチ回路ＳＷ１と第２スイッチ回路ＳＷ２は交互にＯＮし、また、第１ラッチ回路ＬＡ１と第２ラッチ回路ＬＡ２は交互にデータラッチを行う。但し、フィードバックパス１１３０が活性化されているため、ＦＦ部１１２０はデータ０とデータ１を交互にラッチし続ける。このように、トグルモードにおいて、フリップフロップ１１０は、フィードバックパス１１３０を利用してトグル動作を行う。
【００８５】
（自己発振モード）
図１９は、自己発振モードにおけるフリップフロップ１１０の動作を示すタイミングチャートである。自己発振モードにおいて、テスト信号ＴＥＳＴはＨｉｇｈレベルに設定され、テスト信号ＴＳＴがＨｉｇｈレベルになる。この場合、スイッチ１１１１がＯＦＦする一方でスイッチ１１１２がＯＮし、フィードバックパス１１３０が活性化される。
【００８６】
自己発振モードの場合、信号ＳＯＢはＬｏｗレベル（“０”）に設定される。この場合、第１クロック信号ＣＫ１はＬｏｗレベルに維持され、第２クロック信号ＣＫ２はＨｉｇｈレベルに維持される。従って、ＦＦ部１１２０において、第１スイッチ回路ＳＷ１及び第２スイッチ回路ＳＷ２は共にＯＮ状態に維持される。その結果、第１スイッチ回路ＳＷ１（クロックドインバータ）、第１ラッチ回路ＬＡ１のインバータ１１２１、第２ラッチ回路ＬＡ２のインバータ１１２３、インバータ１１２５、及びフィードバックパス１１３０のインバータ１１３１によって、発振回路が形成される。すなわち、フリップフロップ１１０は、ラッチ動作を行わず、自己発振を行う。このように、自己発振モードにおいて、フリップフロップ１１０は、フィードバックパス１１３０を利用して自己発振動作を行う。
【００８７】
２−２．ＡＣ特性エラー検出
図２０は、第２の実施の形態に係る半導体集積回路の構成を概略的に示すブロック図である。本実施の形態に係る半導体集積回路は、複数ビットのデータを記憶する多ビットレジスタ部１０１を備えている。その多ビットレジスタ部１０１は、Ｎ個（Ｎは１以上の整数）の入力端子ＩＮ−１〜ＩＮ−Ｎ及びＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎを備えており、入力端子ＩＮ−１〜ＩＮ−Ｎのそれぞれに入力されるＮビットデータを記憶し、そのＮビットデータを出力端子ＯＵＴ−１〜ＯＵＴ−Ｎのそれぞれから出力する。
【００８８】
より詳細には、多ビットレジスタ部１０１は、Ｎビットデータを記憶するための複数のフリップフロップ１１０を備えている。各フリップフロップ１１０は、既出の図１６で示された構成を有している。本実施の形態では、複数のフリップフロップ１１０は、少なくとも１つの冗長フリップフロップを含んでいる。すなわち、複数のフリップフロップ１１０は、Ｎ個のフリップフロップ１１０−１〜１１０−Ｎと、Ｒ個の冗長フリップフロップ１１０−ｒ１〜１１０−ｒＲを含んでいる。ここで、Ｒは、“冗長度”を表す１以上の整数である。これらＮ＋Ｒ個のフリップフロップ１１０のうち「Ｎ個の選択フリップフロップ」が、入力端子ＩＮ−１〜ＩＮ−Ｎに入力されるＮビットデータの記憶に用いられる。
【００８９】
そのＮ個の選択フリップフロップの選択に用いられるのが、再構成情報ＲＥＣＯＮ及びセレクタ部（１２０、１３０）である。再構成情報ＲＥＣＯＮは、Ｎ個の選択フリップフロップを指定するデータである。セレクタ部（１２０、１３０）は、その再構成情報ＲＥＣＯＮに応じて、複数のフリップフロップ１１０の中からＮ個の選択フリップフロップを選択する。そして、セレクタ部（１２０、１３０）は、Ｎ個の入力端子ＩＮ−１〜ＩＮ−Ｎに入力されたＮビットデータがＮ個の選択フリップフロップのそれぞれによってＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎに出力されるように、データの流れを切り替える。
【００９０】
より詳細には、図２０に示されるように、多ビットレジスタ部１０１は、入力セレクタ部１２０及び出力セレクタ部１３０を備えている。
【００９１】
入力セレクタ部１２０は、Ｎ個の入力端子ＩＮ−１〜ＩＮ−ＮとＮ＋Ｒ個のフリップフロップ１１０との間に配置されている。この入力セレクタ部１２０は、再構成情報ＲＥＣＯＮに応じて、Ｎ個の入力端子ＩＮ−１〜ＩＮ−ＮとＮ＋Ｒ個のフリップフロップ１１０との間の接続関係を切り替える。具体的には、入力セレクタ部１２０は、再構成情報ＲＥＣＯＮに基づいて、Ｎ個の入力端子ＩＮ−１〜ＩＮ−Ｎに入力されたＮビットデータがＮ個の選択フリップフロップに供給されるように、当該接続関係を設定する。
【００９２】
出力セレクタ部１３０は、Ｎ＋Ｒ個のフリップフロップ１１０とＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎとの間に配置されている。この出力セレクタ部１３０は、再構成情報ＲＥＣＯＮに応じて、Ｎ個の出力端子ＯＵＴ−１〜ＯＵＴ−ＮとＮ＋Ｒ個のフリップフロップ１１０との間の接続関係を切り替える。具体的には、出力セレクタ部１３０は、再構成情報ＲＥＣＯＮに基づいて、Ｎ個の選択フリップフロップから出力されるＮビットデータがＮ個の出力端子ＯＵＴ−１〜ＯＵＴ−Ｎに出力されるように、当該接続関係を設定する。
【００９３】
多ビットレジスタ部１０１は、更に、図１７で示されたモード制御回路１５０を備えている。モード制御回路１５０は、複数のフリップフロップ１１０に対して、上述の信号（ＴＳＴ，ＴＳＴＢ，ＣＫ１，ＣＫ１Ｂ，ＣＫ２，ＣＫ２Ｂ）を供給する。
【００９４】
多ビットレジスタ部１０１は、更に、カウント対象セレクタ１４０、カウンタ１６０及び記憶回路１９０を備えている。
【００９５】
カウント対象セレクタ１４０は、複数のフリップフロップ１１０のそれぞれのＦＦ出力端子ＦＦＯＵＴに接続されている。テストモード時、各フリップフロップ１１０は、トグル動作あるいは自己発振動作を行っている。その時、カウント対象セレクタ１４０は、複数のフリップフロップ１１０のそれぞれから出力される出力データを１つずつ順番にカウンタ１６０に転送する。つまり、テストモード時、カウント対象セレクタ１４０は、対象フリップフロップを複数のフリップフロップ１１０から１つずつ順番に選択し、その対象フリップフロップから出力される出力データをカウンタ１６０に出力する。対象フリップフロップは、所定期間毎に順番に切り替えられる。
【００９６】
カウンタ１６０は、カウント対象セレクタ１４０に接続されている。テストモード時、カウンタ１６０は、対象フリップフロップから出力された出力データを、カウント対象セレクタ１４０経由で受け取る。そして、カウンタ１６０は、受け取った出力データに関して所定期間カウントを行う。つまり、カウンタ１６０は、所定期間における出力データのトグル回数や発振回数をカウントする。更に、カウンタ１６０は、当該対象フリップフロップに関して得られたカウント値を示すカウント信号ＣＮＴを、制御装置２００に出力する。対象フリップフロップは順番に切り替えられるため、カウンタ１６０は、複数のフリップフロップ１１０のそれぞれに関するカウント信号ＣＮＴを１つずつ順番に制御装置２００に出力する。
【００９７】
制御装置２００は、例えば、本実施の形態に係る半導体集積回路に接続されたコンピュータである。この制御装置２００は、複数のフリップフロップ１１０のそれぞれに関するカウント信号ＣＮＴをカウンタ１６０から受け取る。そして、制御装置２００は、カウント信号ＣＮＴで示されるカウント値に基づいて、ＡＣ特性が不十分なエラーフリップフロップを検出する。
【００９８】
例えば、トグルモードの場合、カウント値（所定期間におけるトグル回数）が期待値に満たないフリップフロップ１１０は、ラッチ動作を正常に行っていないエラーフリップフロップである。従って、制御装置２００は、カウント値と期待値とを比較することによって、当該フリップフロップ１１０がエラーフリップフロップか否かを判定することができる。これにより、ラッチ特性の劣ったエラーフリップフロップを検出することが可能である。
【００９９】
また、自己発振モードの場合、制御装置２００は、所定期間におけるカウント値に基づいて、自己発振周波数を計算することができる。その自己発振周波数が期待値に満たないフリップフロップ１１０は、遅延特性の劣ったエラーフリップフロップである。従って、制御装置２００は、自己発振周波数と期待値とを比較することによって、当該フリップフロップ１１０がエラーフリップフロップか否かを判定することができる。これにより、遅延特性の劣ったエラーフリップフロップを検出することが可能である。
【０１００】
このように、制御装置２００は、ＡＣ特性エラーが発生したエラーフリップフロップを検出する。検出されたエラーフリップフロップの数が“冗長度Ｒ”以下であれば、そのエラーフリップフロップを冗長フリップフロップ１１０−ｒによって置換可能である。制御装置２００は、検出されたエラーフリップフロップの代わりに冗長フリップフロップ１１０−ｒが選択フリップフロップに組み込まれるように、再構成情報ＲＥＣＯＮを作成する。すなわち、制御装置２００は、検出されたエラーフリップフロップがＮ個の選択フリップフロップから除外されるように再構成情報ＲＥＣＯＮを作成する。
【０１０１】
その後、制御装置２００は、作成した再構成情報ＲＥＣＯＮを、多ビットレジスタ部１０１の記憶回路１９０に格納する。記憶回路１９０は、好適には、多ビットレジスタ部１０１毎に個別に設けられる。そのような記憶回路１９０として、例えば、フリップフロップやｅヒューズが用いられる。
【０１０２】
記憶回路１９０に格納された再構成情報ＲＥＣＯＮは、テストモード終了後の所定のタイミングにおいて、セレクタ部１２０、１３０に出力（反映）される。その結果、テストモードにおいて検出されたエラーフリップフロップはＮ個の選択フリップフロップから除外され、その代わりに、冗長フリップフロップ１０−ｒが適宜選択フリップフロップに組み込まれる。この処理が「再構成処理」である。
【０１０３】
以上に説明されたように、本実施の形態によれば、フリップフロップ１１０がトグルモード及び自己発振モードをサポートしている。そのようなフリップフロップ１１０を利用することによって、ラッチ特性や遅延特性といったＡＣ特性が十分でないエラーフリップフロップを“効率的”に検出することができる。また、再構成処理によって、ＡＣ特性の劣るエラーフリップフロップが排除されるため、多ビットレジスタ部１の速度特性が改善される。
【０１０４】
以下、具体例を説明する。
【０１０５】
図２１は、本実施の形態に係る半導体集積回路の多ビットレジスタ部１０１の回路構成の一例を示している。本例では、Ｎ＝８、冗長度Ｒ＝１である。多ビットレジスタ部１０１の入力端子ＩＮ−８〜ＩＮ−１には、８ビットの入力データＩＮ［７：０］が入力される。多ビットレジスタ部１０１の出力端子ＯＵＴ−８〜ＯＵＴ−１からは、８ビットの出力データＯＵＴ［７：０］が出力される。図２１に示されるように、多ビットレジスタ部１０１は、複数のフリップフロップ１１０（１１０−１〜１１０−８、１１０−ｒ１）、入力セレクタ部１２０、出力セレクタ部１３０、カウント対象セレクタ１４０、モード制御回路１５０、及びカウンタ１６０を備えている。
【０１０６】
入力セレクタ部１２０は、Ｎ＋１個の入力セレクタ１２１−１〜１２１−９を備えている。入力セレクタ１２１−ｋ（ｋ＝１〜８）は、入力セレクト信号ＳＬｉ［ｋ−１］に応じて、入力データＩＮ［ｋ−１］あるいは下位ビット側の入力データＩＮ［ｋ−２］のいずれか一方を選択し、選択データをフリップフロップ１１０−ｋのＦＦ入力端子ＦＦＩＮに出力する。但し、入力セレクタ１２１−１の場合、下位ビット側の入力データは固定データであるとする。入力セレクタ１２１−９は、入力セレクト信号ＳＬｉ［８］に応じて、固定データあるいは入力データＩＮ［７］のいずれか一方を選択し、選択データを冗長フリップフロップ１１０−ｒ１のＦＦ入力端子ＦＦＩＮに出力する。尚、９ビットの入力セレクト信号ＳＬｉ［８：０］は、再構成情報ＲＥＣＯＮに相当する。
【０１０７】
出力セレクタ部１３０は、Ｎ個の出力セレクタ１３１−１〜１３１−８を備えている。出力セレクタ１３１−ｋ（ｋ＝１〜８）は、出力セレクト信号ＳＬｏ［ｋ−１］に応じて、フリップフロップ１１０−ｋの出力データあるいは上位ビット側のフリップフロップ１１０−（ｋ＋１）の出力データのいずれかを選択し、選択データを出力データＯＵＴ［ｋ−１］として出力する。但し、出力セレクタ１３１−８の場合、上位ビット側のフリップフロップは、冗長フリップフロップ１１０−ｒ１であるとする。尚、８ビットの出力セレクト信号ＳＬｏ［７：０］も、再構成情報ＲＥＣＯＮに相当する。
【０１０８】
図２２は、再構成情報ＲＥＣＯＮ（ＳＬｉ、ＳＬｏ）の一例を示している。リセット状態において、入力セレクト信号ＳＬｉは全て“０”であり、出力セレクト信号ＳＬｏは全て“１”である。テストモードにおいて、フリップフロップ１１０−４がエラーフリップフロップとして検出されたとする。その場合、図２２に示されるように、入力セレクト信号ＳＬｉ［８：３］は“１”に変更され、出力セレクト信号ＳＬｏ［７：３］は“０”に変更される。変更後の入力セレクト信号ＳＬｉ及び出力セレクト信号ＳＬｏは、所定のタイミングで、入力セレクタ部１２０及び出力セレクタ部１３０に出力（反映）され、再構成処理が実施される。
【０１０９】
図２３は、再構成処理後のデータの流れを示している。入力セレクト信号ＳＬｉ＝“０”を受け取る入力セレクタ１２１−１〜１２１−３は、それぞれ、入力データＩＮ［０］〜ＩＮ［２］を選択し、出力する。一方、入力セレクト信号ＳＬｉ＝“１”を受け取る入力セレクタ１２１−４〜１２１−９は、それぞれ、下位ビット側の入力データＩＮ［２］〜ＩＮ［７］を選択し、出力する。また、出力セレクト信号ＳＬｏ＝“１”を受け取る出力セレクタ１３１−１〜１３１−３は、それぞれ、フリップフロップ１１０−１〜１１０−３の出力データを選択し、出力する。一方、出力セレクト信号ＳＬｏ＝“０”を受け取る出力セレクタ１３１−４〜１３１−８は、それぞれ、上位ビット側のフリップフロップ１１０−５〜１１０−８、１１０−ｒ１の出力データを選択し、出力する。その結果、図２３に示されるように、入力データＩＮ［７：０］は、エラーフリップフロップ１１０−４を介することなく、選択フリップフロップ（１１０−１〜１１０−３、１１０−５〜１１０−８、１１０−ｒ１）によって、出力データＯＵＴ［７：０］として出力されることになる。
【０１１０】
２−３．変形例
次に、第２の実施の形態の変形例を説明する。本変形例においても、対象フリップフロップは、複数のフリップフロップ１１０から１つずつ順番に選択される。但し、対象フリップフロップ以外のフリップフロップ１１０が、カウンタとして有効利用される。
【０１１１】
図２４は、本変形例に係る多ビットレジスタ部１０１の回路構成例を示している。既出の図２１で示された構成と比較して、カウント対象セレクタ１４０及びカウンタ１６０が省略されている。その代わり、各フリップフロップ１１０に対するクロック入力を切り替えるためのクロックセレクタ部１７０が追加されている。
【０１１２】
クロックセレクタ部１７０は、クロックセレクタ１７１−１〜１７１−９を備えている。クロックセレクタ１７１−ｋ（ｋ＝１〜８）は、クロックセレクト信号ＳＬｔ［ｋ−１］に応じて、モード制御回路１５０からの信号あるいは上位ビット側のフリップフロップ１１０−（ｋ＋１）からの出力信号のいずれか一方を選択し、選択信号をフリップフロップ１１０−ｋのクロック入力端子に出力する。但し、クロックセレクタ１７１−８の場合、上位ビット側のフリップフロップは冗長フリップフロップ１１０−ｒ１であるとする。クロックセレクタ１７１−９は、クロックセレクト信号ＳＬｔ［８］に応じて、モード制御回路１５０からの信号あるいはフリップフロップ１１０−１からの出力信号のいずれか一方を選択し、選択信号を冗長フリップフロップ１１０−ｒ１のクロック入力端子に出力する。
【０１１３】
また、スキャンチェーンを構成するために、スキャンセレクタ部１８０が設けられている。スキャンセレクタ部１８０は、スキャンセレクタ１８１−１〜１８１−９を備えている。スキャンセレクタ１８１−ｋ（ｋ＝１〜９）は、スキャン信号ＳＣＡＮＢに応じて、入力セレクタ部１２０からのデータあるいは上位ビット側のフリップフロップ１１０−（ｋ＋１）からの出力データのいずれか一方を選択し、選択データをフリップフロップ１１０−ｋに出力する。スキャンモードにおいて、スキャン信号ＳＣＡＮＢは“０”に設定される。この場合、各スキャンセレクタ１８１は、上位ビット側のフリップフロップ１１０−（ｋ＋１）からの出力データをフリップフロップ１１０−ｋに出力する。
【０１１４】
図２５は、テストモード時のデータの流れを示している。例として、フリップフロップ１１０−６が対象フリップフロップである場合を考える。クロックセレクタ１７１−６には、クロックセレクト信号ＳＬｔ［５］＝“１”が入力される。この場合、クロックセレクタ１７１−６は、モード制御回路１５０からの信号を選択し、それを対象フリップフロップ１１０−６のクロック入力端子に出力する。その結果、対象フリップフロップ１１０−６はトグル動作あるいは自己発振動作を行う。
【０１１５】
クロックセレクタ１７１−６以外のクロックセレクタ１７１には、クロックセレクト信号ＳＬｔ＝“０”が入力される。これにより、クロックセレクタ１７１−ｍ（ｍ＝１〜５、７〜８）は、上位ビット側のフリップフロップ１１０−（ｍ＋１）からの出力信号を選択し、それをフリップフロップ１１０−ｍのクロック入力端子に出力する。また、クロックセレクタ１７１−９は、フリップフロップ１１０−１からの出力信号を選択し、それを冗長フリップフロップ１１０−ｒ１のクロック入力端子に出力する。
【０１１６】
このように、テストモード時、トグル動作あるいは自己発振動作を行う対象フリップフロップ１１０−６を先頭として、複数のフリップフロップ１１０が順番に接続される。そして、対象フリップフロップ１１０−６以外のフリップフロップ１１０の各々のクロック入力端子には、前段のフリップフロップからの出力データが入力される。従って、対象フリップフロップ１１０−６以外のフリップフロップ１１０が、２進カウンタとして機能する。
【０１１７】
２進カウンタによって計数されたカウント値（カウント信号ＣＮＴ）は、例えば、出力セレクタ部１３０を通して出力データＯＵＴ［７：０］として出力される。あるいは、そのカウント値（カウント信号ＣＮＴ）は、図２６に示されるように、スキャンチェーンを通して外部に出力されてもよい。尚、スキャン時、各フリップフロップ１１０の動作モードは通常ＦＦモードに設定される。
【０１１８】
尚、クロックセレクト信号ＳＬｔ［８：０］の中で“１”となるビットを順番にシフトさせていくことにより、複数のフリップフロップ１１０を１つずつ順番に対象フリップフロップに設定することができる。
【０１１９】
以上に説明されたように、本変形例によれば、対象フリップフロップ以外のフリップフロップ１１０がカウンタとして利用される。すなわち、複数のフリップフロップ１１０が有効活用される。カウンタ１６０を別途設ける必要がないので、回路面積が削減され、好適である。
【０１２０】
２−４．電源電圧適応制御システム
本実施の形態に係る半導体集積回路は、好適には、「極低電力回路」に適用される。極低電力回路では、動作電圧ＶＤＤをなるべく低く設定することが要求される。以下、動作電圧ＶＤＤを適切に制御する「電源電圧適応制御システム」について説明する。
【０１２１】
図２７は、本実施の形態に係る電源電圧適応制御システムの構成を示すブロック図である。電源電圧適応制御システムは、制御装置２００、対象回路２１０及び電源回路２２０を備えている。対象回路２１０は、電圧制御対象となる半導体集積回路であり、上述の多ビットレジスタ部１０１を備えている。電源回路２２０は、少なくともフリップフロップ１１０の動作電圧ＶＤＤを多ビットレジスタ部１０１に供給する。制御装置２００は、対象回路２１０及び電源回路２２０に接続されており、それらの動作を制御する。
【０１２２】
動作電圧ＶＤＤの適応制御方法は、次の通りである。電源回路２２０が供給する動作電圧ＶＤＤは、最初、極低電圧（例えば、０．５Ｖ以下）に設定されているとする。まず、制御装置２００は、対象回路２１０に制御信号ＣＯＮを出力し、ＡＣ特性テストを実行させる。多ビットレジスタ部１０１は、カウント信号ＣＮＴを制御装置２００に出力する。制御装置２００は、受け取ったカウント信号ＣＮＴに基づいて再構成情報ＲＥＣＯＮを作成し、その再構成情報ＲＥＣＯＮを対象回路２１０に送る。対象回路２１０では、最新の再構成情報ＲＥＣＯＮに基づいて再構成処理が実施される。
【０１２３】
但し、全ての冗長フリップフロップ１０−ｒ１〜１０−ｒＲを用いてもエラーフリップフロップが無くならない場合もあり得る。そのような場合、ＡＣ特性エラーの原因となった極低電圧を多少緩和する。そのために、制御装置２００は、電源回路２２０に指示を出し、動作電圧ＶＤＤを少しだけ上昇させる。その後、ＡＣ特性テストが再度実施される。
【０１２４】
このように、本実施の形態によれば、全ての冗長フリップフロップ１０−ｒ１〜１０−ｒＲを用いてもエラーフリップフロップが無くならない場合、動作電圧ＶＤＤが少しだけ増加させられる。これにより、エラーフリップフロップを解消しつつ、動作電圧ＶＤＤをなるべく低く設定することが可能となる。その結果、消費電力が必要最小限に抑えられる。
【０１２５】
エラーフリップフロップが排除された後に、パス遅延に基づく電源電圧や基板バイアスの適応制御が実施してもよい。ＡＣ特性の劣ったエラーフリップフロップが排除されているため、より良い結果が得られる。
【０１２６】
尚、本発明の第２の実施の形態で説明された内容は、次のように記載することもできる。
【０１２７】
（請求項１）
複数のフリップフロップと、
カウンタと
を備え、
前記複数のフリップフロップの各々は、自身の出力から入力へのフィードバックパスを備え、テストモード時に前記フィードバックパスを利用してトグル動作あるいは自己発振動作を行うように構成され、
前記テストモード時、前記カウンタは、前記トグル動作あるいは前記自己発振動作を行う前記各々のフリップフロップから出力データを受け取り、前記出力データに関して所定期間カウントを行う
半導体集積回路。
【０１２８】
（請求項２）
請求項１に記載の半導体集積回路であって、
更に、
Ｎ個（Ｎは１以上の整数）の入力端子と、
Ｎ個の出力端子と、
セレクタ部と
を備え、
前記複数のフリップフロップは、Ｎ個のフリップフロップとＲ個（Ｒは１以上の整数）の冗長フリップフロップとを含み、
前記セレクタ部は、再構成情報に応じて前記複数のフリップフロップの中からＮ個の選択フリップフロップを選択し、前記Ｎ個の入力端子に入力されたデータが前記Ｎ個の選択フリップフロップのそれぞれによって前記Ｎ個の出力端子に出力されるようにデータの流れを切り替える
半導体集積回路。
【０１２９】
（請求項３）
請求項２に記載の半導体集積回路であって、
前記所定期間におけるトグル回数あるいは自己発振周波数が所定値に満たないフリップフロップは、エラーフリップフロップであり、
前記エラーフリップフロップは、前記テストモード時に前記カウンタによって得られたカウント値に基づいて検出され、
前記再構成情報は、前記検出されたエラーフリップフロップが前記Ｎ個の選択フリップフロップから除外されるように作成される
半導体集積回路。
【０１３０】
（請求項４）
請求項３に記載の半導体集積回路であって、
前記再構成情報は、前記テストモード終了後の所定のタイミングに、前記セレクタ部に出力される
半導体集積回路。
【０１３１】
（請求項５）
請求項１乃至４のいずれか一項に記載の半導体集積回路であって、
前記複数のフリップフロップの各々は、
入力ノードと、
第１ラッチ回路と、
前記入力ノードと前記第１ラッチ回路との間に設けられた第１スイッチ回路と、
第２ラッチ回路と、
前記第１ラッチ回路と前記第２ラッチ回路との間に設けられた第２スイッチ回路と、
前記第２ラッチ回路の出力に接続された出力ノードと、
前記テストモード時に活性化される、前記出力ノードから前記入力ノードへの前記フィードバックパスと
を備え、
前記トグル動作時、前記第１スイッチ回路と前記第２スイッチ回路は交互にＯＮし、
前記自己発振動作時、前記第１スイッチ回路と前記第２スイッチ回路は共にＯＮ状態に維持される
半導体集積回路。
【０１３２】
（請求項６）
請求項１乃至５のいずれか一項に記載の半導体集積回路であって、
更に、カウント対象セレクタを備え、
前記テストモード時、前記カウント対象セレクタは、対象フリップフロップを前記複数のフリップフロップから１つずつ順番に選択し、前記対象フリップフロップから出力される前記出力データを前記カウンタに出力する
半導体集積回路。
【０１３３】
（請求項７）
請求項１乃至５のいずれか一項に記載の半導体集積回路であって、
前記テストモード時、カウント対象である対象フリップフロップは、前記複数のフリップフロップから１つずつ順番に選択され、
前記複数のフリップフロップのうち前記対象フリップフロップ以外のフリップフロップが、前記カウンタとして機能する
半導体集積回路。
【０１３４】
（請求項８）
請求項７に記載の半導体集積回路であって、
前記テストモード時、
前記対象フリップフロップを先頭として、前記複数のフリップフロップは順番に接続され、
前記対象フリップフロップは、前記トグル動作あるいは前記自己発振動作を行い、
前記対象フリップフロップ以外の前記フリップフロップの各々のクロック入力端子には、前段のフリップフロップからの出力データが入力される
半導体集積回路。
【０１３５】
（請求項９）
請求項１乃至８のいずれか一項に記載の半導体集積回路と、
前記複数のフリップフロップの動作電圧を供給する電源回路と、
前記半導体集積回路及び前記電源回路の動作を制御する制御装置と
を備え、
前記Ｒ個の冗長フリップフロップを用いても前記エラーフリップフロップが無くならない場合、前記制御装置は、前記動作電圧を上昇させるよう前記電源回路に指示する
電源電圧適応制御システム。
【０１３６】
３．第３の実施の形態
本発明の第３の実施の形態は、上述の第１の実施の形態と第２の実施の形態の組み合わせである。図２８は、第３の実施の形態における処理を示すフローチャートである。まず、第１の実施の形態で説明されたように、ＤＣエラー検出及び再構成が実施される（ステップＳ１００）。ステップＳ１００の結果、全ての冗長ＦＦが使用されてしまった場合（ステップＳ１５０；Ｎｏ）、処理は終了する。一方、ステップＳ１００の後、冗長ＦＦがまだ余っているラインが存在する場合（ステップＳ１５０；Ｙｅｓ）、当該ラインに対して、第２の実施の形態で説明されたように、ＡＣ特性エラー検出及び再構成が実施される（ステップＳ２００）。ＤＣエラーの発生頻度は少ないと予想されるため、冗長ＦＦを有効活用することが可能である。
【０１３７】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【符号の説明】
【０１３８】
１    多ビットレジスタ部
１０    フリップフロップ
２０    入力セレクタ部
２１    入力セレクタ
３０    出力セレクタ部
３１    出力セレクタ
４０    スキャンセレクタ部
４１    スキャンセレクタ
５０    エラー検出部
５１    エラー検出記憶回路
６０    記憶部
７０    ライン判定回路
９０    電源電圧適応制御システム
９１    対象回路
９２    電源回路
９３    制御回路
１０１    多ビットレジスタ部
１１０    フリップフロップ
１２０    入力セレクタ部
１２１    入力セレクタ
１３０    出力セレクタ部
１３１    出力セレクタ
１４０    カウント対象セレクタ
１５０    モード制御回路
１６０    カウンタ
１７０    クロックセレクタ部
１７１    クロックセレクタ
１８０    スキャンセレクタ部
１８１    スキャンセレクタ
１９０    記憶回路
２００    制御装置
２１０    対象回路
２２０    電源回路
ＬＢ    ライン判定ビット
ＩＮ    入力端子
ＯＵＴ    出力端子
ＣＮＴ    カウント値
ＲＥＣＯＮ    再構成情報
【図１】
2014112111.tif 000003
【図２】
2014112111.tif 000004
【図３】
2014112111.tif 000005
【図４】
2014112111.tif 000006
【図５】
2014112111.tif 000007
【図６】
2014112111.tif 000008
【図７】
2014112111.tif 000009
【図８】
2014112111.tif 000010
【図９】
2014112111.tif 000011
【図１０】
2014112111.tif 000012
【図１１】
2014112111.tif 000013
【図１２】
2014112111.tif 000014
【図１３】
2014112111.tif 000015
【図１４】
2014112111.tif 000016
【図１５】
2014112111.tif 000017
【図１６】
2014112111.tif 000018
【図１７】
2014112111.tif 000019
【図１８】
2014112111.tif 000020
【図１９】
2014112111.tif 000021
【図２０】
2014112111.tif 000022
【図２１】
2014112111.tif 000023
【図２２】
2014112111.tif 000024
【図２３】
2014112111.tif 000025
【図２４】
2014112111.tif 000026
【図２５】
2014112111.tif 000027
【図２６】
2014112111.tif 000028
【図２７】
2014112111.tif 000029
【図２８】
2014112111.tif 000030