(57)【要約】【課題】スキャンチェーンを利用した内部状態の退避・回復を、ＩＲドロップによる誤動作を起こさずに行う半導体集積回路およびその制御方法を提供する。【解決手段】半導体集積回路は、通常動作に加え、少なくとも一のレジスタを含むスキャンチェーンを形成し、このスキャンチェーンを介して前記レジスタが記憶するデータをメモリに退避させる退避動作を行う対象回路と、この対象回路にクロックを供給するクロック切替回路を備える。このクロック切替回路は、対象回路が退避動作を行う場合には、通常動作に使用するシステムクロックより低速な退避回復クロックをスキャンチェーンに供給する【選択図】図１
2008117372.tif 000002
【特許請求の範囲】
【請求項１】
通常動作に加え、少なくとも一のレジスタを含むスキャンチェーンを形成し、このスキャンチェーンを介して前記レジスタが記憶するデータをメモリに退避させる退避動作を行う対象回路と、
前記対象回路が前記退避動作を行う場合には、前記通常動作に使用するシステムクロックより低速な退避回復クロックを前記スキャンチェーンに供給するクロック切替回路と、
を備えることを特徴とする半導体集積回路。
【請求項２】
前記対象回路は、前記メモリに退避させたデータを前記レジスタに書き戻す回復動作を更に行い、
前記クロック切替回路は、前記対象回路が前記回復動作を行う場合、前記退避回復クロックを前記スキャンチェーンに供給することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記クロック切替回路は、前記システムクロックを分周したクロックを前記退避回復クロックとして前記スキャンチェーンに供給する分周回路を備えることを特徴とする請求項２に記載の半導体集積回路。
【請求項４】
前記分周回路は、前記システムクロックに基づき入力信号を受信して出力するフリップフロップと、前記フリップフロップが出力した信号を受信するとともに受信した信号の値を反転させて前記フリップフロップに入力するインバータと、からなる第1回路を備えることを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
前記分周回路は、前記第１の回路とは別に設けられ、前記システムクロックに基づき入力信号を受信して出力する複数のフリップフロップを直列に接続し、前記複数のフリップフロップの最終段のフリップフロップの出力を前記複数のフリップフロップの初段のフリップフロップの出力に反転させて入力するインバータと、からなる第２回路
をさらに備えることを特徴とする請求項４に記載の半導体集積回路。
【請求項６】
前記分周回路は、前記第1回路に含まれる前記フリップフロップの出力信号または前記第2回路の出力信号のいずれか一を前記退避回復クロックとして出力する第1セレクタをさらに備えることを特徴とする請求項５に記載の半導体集積回路。
【請求項７】
前記対象回路は、前記スキャンチェーンを用いたスキャンパステストを更に行い、前記クロック切替回路は、前記対象回路が前記スキャンパステストを行う場合には前記システムクロックより低速であって前記退避回復クロックとは異なるテストクロックを前記スキャンチェーンに供給することを特徴とする請求項１に記載の半導体集積回路。
【請求項８】
前記クロック切替回路は、前記システムクロックと前記テストクロックのいずれか一を選択して出力する第2セレクタを備えることを特徴とする請求項７に記載の半導体集積回路。
【請求項９】
前記クロック切替回路は、前記第2セレクタの出力信号または前記システムクロックを分周して生成された前記退避回復クロックのいずれか一を出力する第3セレクタを備えることを特徴とする請求項８に記載の半導体集積回路。
【請求項１０】
前記クロック切替回路は、前記システムクロックまたは前記テストクロックのいずれか一を受信するとともに、受信した前記システムクロックを分周して出力し、受信した前記テストクロックを分周することなく出力する分周回路を備えることを特徴とする請求項７に記載の半導体集積回路。
【請求項１１】
前記分周回路は、前記通常動作時には前記システムクロックを分周したクロック信号をイネーブル信号として出力し、前記スキャンパステスト時には一定の信号値を前記イネーブル信号として出力するイネーブル信号生成回路と、
前記イネーブル信号および前記システムクロックまたは前記テストクロックに基づいた信号を出力するクロックゲーティングセルと、
を備えることを特徴とする請求項１０に記載の半導体集積回路。
【請求項１２】
スキャンパステスト時にシフトレジスタを形成し、テストクロックに基づいてテストデータをシリアルに入出力する少なくとも１つのスキャンチェーンを備え、通常動作時にシステムクロックに基づいて動作する対象回路と、
退避動作時に前記システムクロックより低速な退避回復クロックに基づいて、前記スキャンチェーンを介して前記対象回路の内部状態を示す内部状態データをメモリに格納するバックアップ制御回路とを備えることを特徴とする半導体集積回路。
【請求項１３】
前記バックアップ制御回路は、前記退避動作時からの復帰の際、前記メモリに格納された前記内部状態データを、前記退避回復クロックに基づいて前記スキャンチェーンを介して読み出して前記対象回路に再設定することを特徴とする請求項１２記載の半導体集積回路。
【請求項１４】
前記バックアップ制御部は、前記システムクロックに基づいて前記退避回復クロックを生成するクロック切替回路を備えることを特徴とする請求項１２に記載の半導体集積回路。
【請求項１５】
さらに、前記システムクロックを分周する分周回路を備え、前記クロック切替回路は、前記分周回路から出力される分周クロックを前記退避回復クロックとして前記スキャンチェーンに供給することを特徴とする請求項１４に記載の半導体集積回路。
【請求項１６】
前記テストクロックは、外部から供給されることを特徴とする請求項１２から請求項１５のいずれかに記載の半導体集積回路。
【請求項１７】
前記スキャンチェーンは、前記退避動作時に複数のサブスキャンチェーンに分割されるとともに前記退避回復クロックに基づいて並列に動作し、前記内部状態データは、前記複数のサブスキャンチェーンを介して前記メモリに格納されることを特徴とする請求項１２乃至１６のいずれかに記載の半導体集積回路。
【請求項１８】
前記メモリに格納されている前記内部状態データは、前記退避回復クロックに基づいて前記複数のサブスキャンチェーンを介して前記内部回路に再び設定されることを特徴とする請求項１７に記載の半導体集積回路。
【請求項１９】
前記複数のサブスキャンチェーンの各々を構成するフリップフロップの数は等しいことを特徴とする請求項１７に記載の半導体集積回路。
【請求項２０】
前記複数のサブスキャンチェーンの各々に含まれるフリップフロップの数が等しくなるように、前記複数のサブスキャンチェーンの少なくとも一つに通常動作時にクロックゲーティングによりクロックが供給されないダミーフリップフロップが挿入されていることを特徴とする請求項１７乃至１９のいずれかに記載の半導体集積回路。
【請求項２１】
前記複数のサブスキャンチェーンの各々は、シフトレジスタを形成する複数のフリップフロップと、前記バックアップ制御回路の制御に基づいて、前記スキャンパステストを行うための前記テストデータと、前記メモリから出力される前記内部状態データとのいずれかを選択して前記複数のフリップフロップに出力する第１選択回路とを備える請求項１７に記載の半導体集積回路。
【請求項２２】
前記複数のサブスキャンチェーンの各々は、更に、第２選択回路を備え、
前記第２選択回路は、前記バックアップ制御回路の制御に基づいて、前記メモリから出力される前記内部状態データと、前記第２選択回路を備えるサブスキャンチェーンの出力データとのいずれかを選択して出力し、
前記第１選択回路は、前記バックアップ制御回路の制御に基づいて、前記第２選択回路から出力される選択データと、前記テストデータとのいずれかを選択して前記複数のフリップフロップに出力する請求項２１に記載の半導体集積回路。
【請求項２３】
前記メモリと前記スキャンチェーンとの間に前記退避回復クロックに基づいて前記内部状態データを一時保存するフリップフロップを備える請求項１２乃至請求項２２のいずれかに記載の半導体集積回路。
【請求項２４】
前記スキャンパステスト時には前記スキャンチェーンと独立して動作する第２のスキャンチェーンを備え、前記退避動作時には、前記スキャンチェーンからの内部状態データは、前記退避回復クロックに基づいて前記第２のスキャンチェーンを介して前記メモリに格納されることを特徴とする請求項１２乃至請求項２３のいずれかに記載の半導体集積回路。
【請求項２５】
前記第２のスキャンチェーンは、前記退避動作時には複数のサブスキャンチェーンに分割されることを特徴とする請求項２４記載の半導体集積回路。
【請求項２６】
前記第２のスキャンチェーンのサブスキャンチェーンの各々は、１段のフリップフロップを有する請求項２５に記載の半導体集積回路。
【請求項２７】
前記バックアップ制御回路は、前記退避動作時に、前記複数のサブスキャンチェーン及び前記第２のスキャンチェーンのサブスキャンチェーンを介して内部情報データを前記メモリに格納し、前記退避動作時から復帰する際、前記メモリに格納された前記内部情報データを読み出して前記複数のサブスキャンチェーン及び前記第２のスキャンチェーンのサブスキャンチェーンを介して再設定することを特徴とする請求項２４または請求項２５に記載の半導体集積回路。
【請求項２８】
前記バックアップ制御回路は、退避動作時に前記内部状態データを前記メモリに記憶させた後に、前記対象回路の電源を切断し、退避動作時から復帰する際、前記対象回路の電源を投入して前記メモリに格納された前記内部状態データを前記複数のサブスキャンチェーンを介して再び設定する請求項１６から請求項２７のいずれかに記載の半導体集積回路。
【請求項２９】
前記複数のサブスキャンチェーンは複数のフリップフロップを含み、前記退避動作時に、サブスキャンチェーンを構成する複数のフリップフロップのうち最後段のフリップフロップの出力を、前記サブスキャンチェーンを構成するフリップフロップのうち最前段のフリップフロップの入力に接続する接続回路を備えることを特徴とする請求項１７記載の半導体集積回路。
【請求項３０】
テストクロックに同期してシフト動作するシフトレジスタを形成し、テストデータをシリアルに入出力する少なくとも１つのスキャンチェーンにより対象回路の正常性を試験するスキャンパステストステップと、前記テストクロックより高速なシステムクロックに基づいて、前記対象回路の本来の機能動作を行う通常動作ステップと、前記システムクロックより低速で、且つ、前記テストクロックより高速である退避回復クロックに基づいて、前記対象回路の内部状態を示す内部状態データをメモリに格納し、前記メモリから前記内部状態データを読み出して前記対象回路に再設定する退避回復ステップとを具備する半導体集積回路の制御方法。
【請求項３１】
前記退避回復ステップは、前記システムクロックに基づいて前記退避回復クロックを生成するクロック生成ステップを備える請求項３０に記載の半導体集積回路の制御方法。
【請求項３２】
退避回復ステップは、前記スキャンチェーンを並列に動作する複数のサブスキャンチェーンに分割するステップを備え、
前記内部状態データは、前記複数のサブスキャンチェーンから出力されて前記メモリに格納され、前記メモリに格納されている前記内部状態データは、前記複数のサブスキャンチェーンに再び設定される請求項３０または請求項３１に記載の半導体集積回路の制御方法。
【請求項３３】
前記複数のサブスキャンチェーンの各々は、各サブスキャンチェーンに含まれるフリップフロップの数が等しくなるように、通常動作時にクロックゲーティングによりクロックが供給されないダミーフリップフロップを接続する請求項３２に記載の半導体集積回路の制御方法。
【請求項３４】
前記複数のサブスキャンチェーンの各々は、シフトレジスタを形成する複数のフリップフロップと、前記バックアップ制御回路の制御に基づいて、前記スキャンパステストを行うための前記テストデータと、前記メモリから出力される前記内部状態データとのいずれかを選択して前記複数のフリップフロップに出力する第１選択回路とを備え、
前記退避回復ステップは、前記第１選択回路が前記内部状態データを選択して出力するように設定するステップを備える請求項３２または請求項３３に記載の半導体集積回路の制御方法。
【請求項３５】
前記複数のサブスキャンチェーンの各々は、更に、第２選択回路を備え、
前記退避回復ステップは、前記第２選択回路が、前記第１選択回路の出力を取り込んでシフトする自サブスキャンチェーンの出力を選択して前記第１選択回路に出力するように設定する退避ステップと、前記第２選択回路が、前記メモリから出力される前記内部状態データを選択して前記第１選択回路に出力するように設定する回復ステップとを備える請求項３４に記載の半導体集積回路の制御方法。
【請求項３６】
前記メモリと前記対象回路との間にフリップフロップを備え、
前記退避回復ステップは、前記退避回復クロックに基づいて前記内部状態データを一時保存するステップを備える請求項３０から請求項３５のいずれかに記載の半導体集積回路の制御方法。
【請求項３７】
前記スキャンチェーンに含まれる前記複数のサブスキャンチェーンと同数以上のサブスキャンチェーンを含む第２スキャンチェーンを備え、
前記複数のサブスキャンチェーンと前記メモリとの間に前記第２スキャンチェーンのサブスキャンチェーンを接続し、
前記退避回復ステップは、前記第２スキャンチェーンのサブスキャンチェーンを介して前記内部状態データの退避および回復を行うステップを備える請求項３０から請求項３５のいずれかに記載の半導体集積回路の制御方法。
【請求項３８】
さらに、前記対象回路の内部状態データを前記メモリに退避した後に、前記対象回路に供給される電源を切断するステップと、前記メモリから前記内部状態データを読み出す前に、前記対象回路に電源を供給するステップとを備える
請求項３０から請求項３７のいずれかに記載の半導体集積回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路及びその制御方法に関し、特に、内部状態を退避回復する回路を備える半導体集積回路およびその制御方法に関する。
【背景技術】
【０００２】
近年、スタンバイやレジューム機能等の低消費電力モードを備えた半導体集積回路が注目されている。通常、半導体集積回路は、電源供給が停止されると不揮発性メモリを除いてその内部状態は消去されるため、電源供給を再開した時、回路の電源供給を停止する直前の状態から回路の動作を再開させるためには、内部状態を保持しなくてはならない。
【０００３】
例えば、特開平６−５２０７０号公報によれば、レジスタに保持された内部状態データを電源供給停止時に外部メモリに退避させ、保持する集積回路が開示されている。この集積回路は、複数のレジスタとデータ退避部とデータ復帰部とを具備し、複数のレジスタは、スキャンチェーンを形成するように接続され、データ退避部は、外部信号に応答し、データ退避モード時に、複数のレジスタにスキャンチェーンを形成させ、形成されたスキャンチェーンを介して各レジスタの保持データを外部に読み出す。このとき、データ退避部は、内部状態データを所定のビット幅のデータに直列／並列変換し、データ入出力部を通
じてデータ保護用メモリに格納する。データ復帰部は、外部信号に応答し、データ復帰モード時に、複数のレジスタにスキャンチェーンを形成させ、形成されたスキャンチェーンを介して退避していたデータをもとのレジスタに復帰させる。このとき、データ復帰部は、データ保護用メモリから内部状態データを読出してデータ入出力手段から入力し、所定のビット幅のデータを直列の内部状態データに変換してスキャンチェーンを通じて復帰する。
【０００４】
また、特開２００４−１６４６４７号公報によれば、１つまたは複数のノードを有する回路と、メモリと、システム・バスと、状態保存コントローラとを備えるデータ処理装置に関する技術が開示されている。１つまたは複数のノードを有する回路は、データの処理に用いられる回路であり、全体で回路の状態を定義する１つまたは複数のデータ値を記憶する。メモリは、データを記憶する。システム・バスは、回路とメモリとに結合するシステム・バスであり、回路とメモリの通常の処理動作中にシステム・バスに与えられたメモリ転送要求に応答して回路とメモリとの間で多ビット・データ語を転送する。状態保存コ
ントローラは、回路とシステム・バスに結合し、保存トリガに応答して、回路の状態を定義するデータ値を１つまたは複数のノードから読み取ってメモリ書込み要求のシーケンスをシステム・バス上に生成し、データ値を表す１つまたは複数の状態保存多ビット・データ語をメモリに書き込んで、１つまたは複数の状態保存多ビット・データ語を用いて回路の状態を回復できるようにする。また、関連する技術として、米国公開公報２００５／０１４９７９９に記載されたものもある。
【０００５】
さらに、特開２００２−１９６８４６号公報には、ＣＰＵのアドレスにメモリマップされていない情報の退避を容易化する技術が記載されている。ＣＰＵが特別なスイッチング処理を行うことなく、簡単なスイッチング処理を行い、情報の退避および復帰の処理が実現可能である。具体的にはＬＳＩチップを主電源供給領域とバックアップ電源供給領域とに二分して、スキャンパスを設ける。このスキャンパスは主電源供給領域上のＣＰＵやＣＰＵ周辺回路などの記憶素子を接続するとともに、スキャンパスによるスキャン動作を開始して主電源供給領域上の各回路の記憶素子内の情報を読み込み、読み込んだ情報をバックアップ電源供給領域上のＳＲＡＭに保存する。
【０００６】
【特許文献１】特開平６−５２０７０号公報
【特許文献２】特開２００４−１６４６４７号公報
【特許文献３】米国公開公報２００５／０１４９７９９
【特許文献４】特開２００２−１９６８４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、スキャンチェーンを利用して半導体集積回路の内部状態を退避、回復することにより、スタンバイやレジューム機能等を実現することができる。しかし、スキャンチェーンが動作するときは、スキャンチェーンを構成するフリップフロップが全て同時にシフト動作することになる。フリップフロップは電源ラインから電源の供給を受け、クロックに基づき動作する。集積回路の通常動作時においては、クロックゲーティングにより内蔵されるフリップフロップの内の１／２〜１／３程度のフリップフロップのみがクロックを受けて動作し、他のフリップフロップは不要な動作をしないように制御されている。しかし、スキャンチェーンを利用して半導体集積回路の内部状態を退避、回復する場合には、通常動作時には動作していなかったフリップフロップを含む全てのフリップフロップが動作する。この場合、通常動作時と比較すると大量のフリップフロップが同時に電源供給およびクロックを受けて動作することになる。電源ラインには寄生素子成分である配線抵抗成分や配線容量成分等が存在し、クロックの立ち下がりあるいは立ち上がりごとに大量の電流が電源ラインに流れる。この大量の電流が電源ラインに流れる際、配線容量は蓄積電荷を電源ラインを介して放出する。ここで、クロックの周期が配線容量の充電時間よりも早い場合には、配線容量は電荷の充電を完了する前に再び蓄積電荷の放出を開始する。この状況が続けば、配線容量に印加された電圧は低下し、配線容量近傍の電源ラインの電圧も低下する。つまり電源ラインの電圧が局所的に降下することが考えられる（IRドロップ）。このＩＲドロップによって集積回路が誤動作する可能性がある。
【０００８】
本発明は、スキャンチェーンを利用した内部状態の退避・回復を、ＩＲドロップによる誤動作を起こさずに行う半導体集積回路装置およびその制御方法を提供する。
【課題を解決するための手段】
【０００９】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
本発明の観点では、半導体集積回路は、対象回路（１１）と、バックアップ制御回路（１２）とを備える。対象回路（１１）は、少なくとも１つのスキャンチェーン（１５）を備え、通常動作時にシステムクロックに基づいて動作する。スキャンチェーン（１５）は、スキャンパステスト時にシフトレジスタを形成し、テストクロックに基づいてテストデータをシリアルに入出力する。バックアップ制御回路（１２）は、低消費電力時にシステムクロックより低速な退避回復クロックに基づいて、スキャンチェーン（１５）を介して対象回路（１１）の内部状態を示す内部状態データをメモリ（１３）に格納する。
【００１１】
本発明の他の観点では、半導体集積回路の制御方法は、スキャンパステストステップと、通常動作ステップと、退避回復ステップとを具備する。スキャンパステストステップは、テストクロックに同期してシフト動作するシフトレジスタを形成し、テストデータをシリアルに入出力する少なくとも１つのスキャンチェーン（１５）により対象回路（１１）の正常性を試験する。通常動作ステップは、テストクロックより高速なシステムクロックに基づいて、対象回路（１１）の本来の機能動作を行う。退避回復ステップは、システムクロックより低速で、且つ、テストクロックより高速である退避回復クロックに基づいて
、対象回路（１１）の内部状態を示す内部状態データをメモリ（１３）に格納し、メモリ（１３）から内部状態データを読み出して対象回路（１１）に再設定する。
【発明の効果】
【００１２】
本発明によれば、スキャンチェーンを利用した内部状態の退避および回復動作を行うときに、ＩＲドロップによる誤動作を起こさない半導体集積回路装置およびその制御方法を提供することができる。
【００１３】
また、本発明によれば、動作の遅いメモリをバックアップメモリに使用する半導体集積回路装置およびその制御方法を提供することができる。
さらに、本発明によれば、スキャンチェーンを利用した内部状態の退避および回復動作を行う半導体集積回路装置のレイアウト設計の自由度を向上することができる。また、本発明によれば、半導体集積回路装置の消費電力を低減することができる。
【発明を実施するための最良の形態】
【００１４】
図を参照して、本発明を実施するための最良の形態を説明する。図１は、実施の形態に係る半導体集積回路の構成を示すブロック図である。半導体集積回路は、内部状態が外部に退避される対象回路１１と、対象回路１１の内部状態を記憶するバックアップメモリ１３と、対象回路１１の内部状態の退避・回復を制御するバックアップ制御回路１２と、対象回路１１の電源を制御するスイッチ１４と、対象回路１１とバックアップメモリ１３との間に配置されるフリップフロップ群１６、１７とを具備する。対象回路１１の内部状態は、対象回路１１に内在するフリップフロップに保持される内部ノードデータにより具現
化される。
【００１５】
対象回路１１は、待機中に保持すべき内部状態を有する回路部分である。対象回路１１は、対象回路１１の製造不良等を検出するために実施されるスキャンパステスト用の回路を内蔵している。このスキャンパステスト用回路は、テスト時に対象回路１１に内在するフリップフロップが鎖状に接続され、シフトレジスタとしてデータの入出力を行う。このシフトレジスタが、所謂スキャンチェーンと呼ばれる。対象回路１１内には、このスキャンチェーン１５が少なくとも１つ設定されている。最近の半導体集積回路では、スキャンチェーンは、３２個程度設定されていることが多いが、より多くのスキャンチェーンが設定されていてもよいし、１個だけであってもよい。各スキャンチェーン１５は、外部に接続されるスキャン入力ＳＩ（ＳＩ１〜ＳＩｎ〜ＳＩＮ）からスキャンパステスト用のシリアルデータが入力され、外部に接続されるスキャン出力ＳＯ（ＳＯ１〜ＳＯｎ〜ＳＯＮ）からスキャンパステスト結果データがシリアルに出力される。それぞれのシリアルデータの入出力は、同期している必要はなく、スキャンチェーン毎に独立して動作していてもよい。以下、スキャンチェーン１５は、スキャン入力ＳＩｎ、スキャン出力ＳＯｎ（ｎ＝１、２、…、Ｎ）の回路を例として説明される。
【００１６】
バックアップ制御回路１２は、対象回路１１から指示（ＷＦＩ）を受けて、対象回路１１の動作モード（ＭＤ）を切り替え、対象回路１１の内部状態を示すデータ即ち内部ノードデータをバックアップメモリ１３に退避する。また、バックアップ制御回路１２は、外部からの割り込み信号（ＩＮＴ）に応答してバックアップメモリ１３に格納されている内部ノードデータを対象回路１１の各ノードに設定し、対象回路１１の内部状態を回復する。この内部状態の退避・回復動作に際し、バックアップ制御回路１２は、バックアップメモリ１３の格納アドレス（ＡＤＤＲ）、書き込み・読み出しタイミング（ＣＴＲ）を制御する。また、バックアップ制御回路１２は、クロック切替回路１２０を備え、内部ノードデータの退避および回復のときにスキャンチェーンに供給するクロックＣＬＫを切り替える。また、バックアップ制御回路１２は内部にコントローラを有し、係るコントローラは、対象回路１１からの指示ＷＦＩに応答し、後述する信号である選択信号ＳＬＣおよびスキャン有効信号ＳＥを出力する。
【００１７】
クロック切替回路１２０は、図４に示されるように、分周回路１２４と、選択回路１２２、１２６とを備える。選択回路１２２は、システムクロックＳＹＳＣＬＫとテストクロックＳＣＮＣＬＫとを入力し、選択信号ＴＢに基づいて一方を分周回路１２４と選択回路１２６とに出力する。選択信号ＴＢは、外部からの制御信号であり、対象回路１１の通常動作とスキャンパステストの切替を制御する。分周回路１２４は、入力されるクロック信号を２分周、４分周して出力する。選択回路１２６は、分周回路１２４から出力される分周されたクロック信号と、選択回路１２２から出力される分周される前のクロック信号とを入力し、選択信号ＳＬＣに基づいて一方をクロックＣＬＫとして出力する。対象回路１１の内部状態を退避・回
復するとき、この分周クロックを退避回復クロックとして各フリップフロップに供給することにより、ＩＲドロップの影響を抑制することができる。テストクロックは、半導体集積回路の外部から供給され、半導体集積回路内部で制御に使用されるシステムクロックより低速である。また、退避回復クロックは、テストクロックより高速であり、短時間に内部ノードデータの退避および回復が可能になる。
【００１８】
分周回路１２４は、チップ内の回路の動作に適合するように分周数が設定される。また、ここでは、分周回路１２４を選択回路１２２と選択回路１２６の間に配置したが、選択回路１２２の前段に配置してもよい。クロック切替回路１２０は、通常動作時のシステムクロックＳＹＳＣＬＫ、スキャンパステスト動作時のテストクロックＳＣＮＣＬＫ、内部状態退避・回復動作時のクロックを切り替えて、各フリップフロップにクロックＣＬＫを供給できればよい。
【００１９】
図８は、分周回路１２４の構成の一例である。図８に示す分周回路１２４は、入力ＣＬＫに同期して入力信号を取得するＦ/ＦであるＦ/Ｆ４０１と、このＦ/Ｆ４０１の出力信号を入力信号とし、同様に入力ＣＬＫに同期して入力信号を取得するＦ/Ｆ４０２と、これらＦ/Ｆ４０１およびＦ/Ｆ４０２と同様の機能を有し、Ｆ/Ｆ４０１およびＦ/Ｆ４０２と並列に接続されたＦ/Ｆ４０３とを含む。また、Ｆ/Ｆ４０２の出力信号は、インバータ４０４を介してＦ/Ｆ４０１の入力信号となる。一方、Ｆ/Ｆ４０３の出力信号はインバータ４０５を介してＦ/Ｆ４０３の入力信号となる。Ｆ/Ｆ４０１およびＦ/Ｆ４０３の入力信号の初期値は例えば０であり、外部制御によりシステムリセットをかけてＦ４０１およびＦ/Ｆ４０３の入力信号の初期値を０とすることができる。ここで、入力ＣＬＫは、図４にある高速なシステムクロックＳＹＳＣＬＫである。Ｆ/Ｆ４０１と当該Ｆ/Ｆ４０１と直列に接続されたＦ/Ｆ４０２は、係るＳＹＳＣＬＫを４分周したクロックを出力する。一方、Ｆ/Ｆ４０３は係るＳＹＳＣＬＫを２分周したクロックを出力する。分周回路１２４は、Ｆ/Ｆ４０２の出力信号およびＦ/Ｆ４０３の出力信号を受信するセレクタ４０６を有する。このセレクタ４０６は、Ｆ/Ｆ４０２の出力信号とＦ/Ｆ４０３の出力信号の内のいずれか一を、外部から受信するＣＬＫ切替信号に基づき供給ＣＬＫとして出力する。なお、図８に示す分周回路１２４は入力ＣＬＫであるＳＹＳＣＬＫを２分周あるいは４分周したクロックを生成し、生成されたクロックの内のいずれか一を出力する回路であるが、係る分周回路１２４の構成はこの構成に限られるものではない。例えば分周回路１２４は、３つ以上のＦ/Ｆを直列接続した信号経路を有し、ＳＹＳＣＬＫを８分周以上に分周したクロックを出力する回路であってもよい。
【００２０】
また、図４に代えて、図９に示すクロック切替え回路１２７を使用するとともに、図１０に示す分周回路１２８を使用することもできる。図９に示したクロック切替え回路１２７では、図１に示した対象回路１１が通常動作および退避回復動作を行う場合、選択信号ＴＢはＳＹＳＣＬＫを選択し、対象回路１１がスキャンパステストを行う場合、選択信号ＴＢはＳＣＮＣＬＫを選択する。一方、対象回路１１が通常動作およびスキャンパステスト動作を行う場合、分周回路１２８はＳＬＣに基づき受信したクロックをそのまま出力し、対象回路１１が退避回復動作を行う場合、分周回路１２８は選択信号ＳＬＣに基づき受信したクロックを分周して出力する。図９に示すクロック切替え回路１２７は、図４に示すクロック切替回路１２０が有するセレクタ１２６が不要となる。図１０は、分周回路１２８の構成例である。図１０に示された分周回路１２８は、選択信号ＳＬＣおよび入力ＣＬＫを入力信号とするクロックイネーブル生成回路５０１と、このクロックイネーブル生成回路５０１の出力信号および入力ＣＬＫを入力信号とするクロックゲーティングセル５０２とを有する。ここで、入力ＣＬＫは、ＳＹＳＣＬＫまたはＳＣＮＣＬＫのいずれかとなる。クロックイネーブル生成回路５０１は、選択信号ＳＬＣに基づき動作する。クロックイネーブル生成回路５０１は、対象回路１１が退避回復動作を行う場合、選択信号ＳＬＣに応答して受信する入力ＣＬＫを分周し、クロックゲーティングセル５０２に出力する。クロックイネーブル生成回路５０１は、イネーブル信号を出力する回路を有する。例えばクロックイネーブル生成回路は、受信するクロックの３サイクル毎にオン状態のイネーブル信号を出力することにより、３分周のクロックの生成を可能にする。本発明の権利範囲を特に限定するものではないが、例えばひとつの例として、クロックイネーブル生成回路５０２の構成は以下のようなものが考えられる。まずクロックイネーブル生成回路５０１は内部にカウンタを有する。このカウンタはクロックイネーブル生成回路５０１の受信クロックの立ち上がりごとに、カウント値が0→１→２→０→１→２と変化する。クロックイネーブル生成回路５０１は、内部のカウンタのカウント値が０になる毎に、オン状態のイネーブル信号を出力する。一方、クロックゲーティングセル５０２は、受信したイネーブル信号がオンの場合に入力ＣＬＫをそのまま出力する回路である。したがって、図１０に示す分周回路１２８の出力は、分周された入力ＣＬＫ信号となる。一方、クロックイネーブル生成回路５０１は、対象回路が通常動作あるいはスキャンパステストを行う場合、選択信号ＳＬＣに応答して常にオン状態であるイネーブル信号を出力する。この場合、クロックゲーティングセル５０２は入力ＣＬＫをそのまま出力する。ここで、オン状態とは、特に権利範囲を限定するものではないが、一つの例として、イネーブル信号がハイレベルの値である期間と考えることができる。
【００２１】
対象回路１１の電源系は、他の回路と分離されている。従って、対象回路１１だけの電源を切断することが可能となる。スイッチ１４は、この電源の投入切断をバックアップ制御回路１２の制御（ＰＷＣ）に基づいて行う。
【００２２】
フリップフロップ群１６、１７は、レジスタスライスとも称され、バックアップメモリ１３のデータ幅と等しい幅を有するラッチレジスタである（以下レジスタ１６、１７と称する）。レジスタ１６は、対象回路１１から出力される内部ノードデータＴＯを、供給されるクロックＣＬＫに基づいて一時保持し、バックアップメモリ１３に退避データＭＩとして出力する。レジスタ１７は、バックアップメモリ１３から出力される退避データＭＯを、供給されるクロックＣＬＫに基づいて一時保持し、対象回路１１に内部状態データＴＩとして出力する。このレジスタ１６、１７は、一方だけであってもよい。
【００２３】
バックアップメモリ１３は、対象回路１１の内部状態を示す内部ノードデータを保持する。バックアップメモリ１３は、対象回路１１の内部ノードデータを格納できるだけの容量があればよい。バックアップメモリ１３のデータ幅（ワード長）は、内部ノードデータを効率よく取り込むために広くなっている。例えば、スキャンチェーンが３２本、それぞれのスキャンチェーンが４本のサブスキャンチェーンに分割されて４ヵ所から内部ノードデータＴＯが取り出されるものとすると、１スキャンクロック毎に１２８ビットのデータが並列に出力される。この場合、バックアップメモリ１３は、１２８ビット以上のワード長が必要になる。バックアップメモリ１３の書き込み／読み出しの動作タイミングＣＴＲ、アドレスＡＤＤＲは、バックアップ制御回路１２から与えられる。このバックアップメモリ１３は、閾値電圧が高く設定され、低リーク電流のメモリである。従って、バックアップメモリ１３の速度はそれほど速くないが、消費電力は少ない。また、バックアップメモリ１３として、フラッシュメモリ等の不揮発性メモリを用いると、待機時にバックアップメモリ１３の電源も切断することが可能となり、さらに消費電力を削減することができる。
【００２４】
対象回路１１の内部状態を示す内部ノードデータは、スキャンチェーン１５を介して入出力される。スキャンチェーン１５は、半導体集積回路の正常性を試験するスキャンパステストに使用され、供給されるクロックＣＬＫに基づいてシフト動作を行う。スキャンチェーン１５は、スキャンパステスト時、テストデータをスキャン入力ＳＩから入力し、テスト結果をスキャン出力ＳＯから出力する。ここでは説明しないが、バックアップ制御回路１２、バックアップメモリ１３は、スキャンパステストの対象であってもよい。
【００２５】
対象回路１１は、内部の論理回路が動作すると、論理回路に含まれる順序回路（フリップフロップ）にその動作状態が保持される。即ち、フリップフロップは、対象回路１１の内部状態を保持している。このフリップフロップに保持された内部ノードデータを退避することにより対象回路１１の内部状態が外部に出力でき、データを各フリップフロップに設定することにより対象回路１１の内部状態を設定することができる。一方、フリップフロップは、スキャンパステスト時、スキャンチェーン１５を形成し、その保持しているデータをシリアル出力することができる。また、スキャンチェーン１５は、データをシリア
ル入力して、スキャンパステストするためのデータを各フリップフロップに設定することができる。従って、このスキャンチェーン１５を使うことにより、フリップフロップの状態を読み出し、書き込むことが可能である。
【００２６】
対象回路１１は、バックアップ制御回路１２の制御に基づいて、スキャンチェーン１５の出力、即ち、スキャン出力ＳＯとスキャンチェーン１５の途中の複数の位置から取り出したデータＴＯとをバックアップメモリ１３に出力する。対象回路１１の全てのフリップフロップに保持されるデータが出力されると、対象回路１１の内部状態がバックアップメモリ１３に退避されたことになる。また、対象回路１１は、バックアップ制御回路１２の制御に基づいて、バックアップメモリ１３から出力されるデータＴＩを取り込みスキャンチェーン１５に設定する。スキャンチェーン１５にデータが設定されると、対象回路１１の内部状態が回復されたことになる。対象回路１１を回復状態から通常動作状態に切り替えると、対象回路１１は、通常動作に復帰する。
【００２７】
図２にスキャンチェーンが有効になっている時のスキャンチェーン１５の構成が示される。スキャンチェーン１５は、スキャンテスト時に複数のレジスタを連結して構成される１本のチェーンである。サブスキャンチェーンは、内部ノードデータをバックアップメモリ１３に退避するとき、および、バックアップメモリ１３から内部ノードデータを回復するときに、この１本のチェーンが複数に分割されて動作するものである。したがって、スキャンチェーン１５は、複数のサブスキャンチェーンを備える。ここでは、スキャンチェーン１５は、従属接続される４つのサブスキャンチェーン２１、２２、２３、２４を備える。また、サブスキャンチェーン２１〜２４の入力側にはフリップフロップ２１７、２２７、２３７、２４７を含むレジスタ１７が接続され、出力側にはフリップフロップ２１６、２２６、２３６、２４６を含むレジスタ１６が接続される。
【００２８】
サブスキャンチェーン２１、２２、２３、２４は、それぞれ同数のフリップフロップを含む。フリップフロップの数が揃わない場合、通常動作中にはクロックゲーティングによりクロックが供給されないダミーフリップフロップが挿入される。図２の場合、サブスキャンチェーン２２にはフリップフロップ２２２、サブスキャンチェーン２３にはフリップフロップ２３３が、ダミーフリップフロップとして各サブスキャンチェーンの長さが等しくなるように挿入される。
【００２９】
内部ノードデータの入出力時、サブスキャンチェーン２１〜２４は並列に動作し、同時にデータを入出力する。サブスキャンチェーン２１は、選択回路２１０と、スキャンチェーンの実体であるフリップフロップ２１１〜２１４を備える。同じように、サブスキャンチェーン２２は選択回路２２０とフリップフロップ２２１〜２２４を備え、サブスキャンチェーン２３は選択回路２３０とフリップフロップ２３１〜２３４を備え、サブスキャンチェーン２４は選択回路２４０とフリップフロップ２４１〜２４４を備える。選択回路２１０、２２０、２３０、２４０は、選択信号ＴＢに基づいて、入力される２つの信号のど
ちらかを選択して出力する。
【００３０】
ここで、フリップフロップ２１１〜２１４、２２１〜２２４、２３１〜２３４、２４１〜２４４は、図３に示されるように、フリップフロップ本体１９２と、選択回路１９１とを備えるマルチプレクスドスキャンフリップフロップである。選択回路１９１は、通常動作時の論理回路から出力されるデータ入力Ｄｉｎと、スキャンチェーンの前段から出力されるスキャンチェーン入力Ｓｉｎとを入力し、スキャン有効信号ＳＥに基づいてその一方を選択してフリップフロップ本体１９２に出力する。以下フリップフロップは、このマルチプレクスドスキャンフリップフロップとして説明するが、他の型のスキャンフリップフ
ロップであっても本発明を適用できることは明らかである。
【００３１】
サブスキャンチェーン２１では、選択回路２１０は、スキャン入力ＳＩｎと、内部ノードデータＴＩ１とを入力する。スキャン入力ＳＩｎは、外部から入力され、内部ノードデータＴＩ１は、格納されていたバックアップメモリ１３から出力され、レジスタ１７のフリップフロップ２１７を介して入力される。選択回路２１０は、選択信号ＴＢに基づいて、スキャンパステスト時はスキャン入力ＳＩｎから入力されるデータを選択して出力し、内部状態退避・回復時はメモリ１３に記憶されている内部ノードデータＴＩ１を選択して出力する。フリップフロップ２１１〜２１４は鎖状に接続されてシフトレジスタを形成し、選択回路２１０の出力信号が入力される。フリップフロップ２１４の出力は、内部ノードデータＴＯ１として出力されるとともに、次段のサブスキャンチェーン２２に送られる。
【００３２】
サブスキャンチェーン２２では、選択回路２２０は、前段のサブスキャンチェーン２１の出力データＴＯ１と、内部ノードデータＴＩ２とを入力する。内部ノードデータＴＩ２は、格納されていたバックアップメモリ１３から出力され、レジスタ１７のフリップフロップ２２７を介して入力される。選択回路２２０は、選択信号ＴＢに基づいて、スキャンパステスト時は前段出力データＴＯ１を選択して出力し、内部状態退避・回復時はメモリ１３に記憶されている内部ノードデータＴＩ２を選択して出力する。フリップフロップ２２１〜２２４は、鎖状に接続されてシフトレジスタを形成し、選択回路２２０の出力信号
が入力される。フリップフロップ２２４の出力は、内部ノードデータＴＯ２として出力されるとともに、次段のサブスキャンチェーン２３に送られる。
【００３３】
同じように、サブスキャンチェーン２３では、選択回路２３０は、前段のサブスキャンチェーン２２の出力データＴＯ２と、内部ノードデータＴＩ３とを入力する。内部ノードデータＴＩ３は、格納されていたバックアップメモリ１３から出力され、レジスタ１７のフリップフロップ２３７を介して入力される。選択回路２３０は、選択信号ＴＢに基づいて、スキャンパステスト時は前段出力データＴＯ２を選択して出力し、内部状態退避・回復時はメモリ１３に記憶されている内部ノードデータＴＩ３を選択して出力する。フリップフロップ２３１〜２３４は、鎖状に接続されてシフトレジスタを形成し、選択回路２３０の出力信号が入力される。フリップフロップ２３４の出力は、内部ノードデータＴＯ３として出力されるとともに、次段のサブスキャンチェーン２４に送られる。
【００３４】
同じように、サブスキャンチェーン２４では、選択回路２４０は、前段のサブスキャンチェーン２３の出力データＴＯ３と、内部ノードデータＴＩ４とを入力する。内部ノードデータＴＩ４は、格納されていたバックアップメモリ１３から出力され、レジスタ１７のフリップフロップ２４７を介して入力される。選択回路２４０は、選択信号ＴＢに基づいて、スキャンパステスト時は前段出力データＴＯ３を選択して出力し、内部状態退避・回復時はメモリ１３に記憶されている内部ノードデータＴＩ４を選択して出力する。フリップフロップ２４１〜２４４は、鎖状に接続されてシフトレジスタを形成し、選択回路２４０の出力信号が入力される。フリップフロップ２４４の出力は、内部ノードデータＴＯ４として出力されるとともに、スキャンチェーン１５の出力ＳＯｎとして外部に出力される。
【００３５】
次にスキャンチェーン１５の動作が説明される。対象回路１１の本来の機能動作時、フリップフロップ２１１〜２１４、フリップフロップ２２１〜２２４、フリップフロップ２３１〜２３４、フリップフロップ２４１〜２４４は、内部論理回路のレジスタとして、対象回路１１の内部状態（内部ノードデータ）を保持している。
【００３６】
スキャンパステストの場合、対象回路１１に内在するフリップフロップは、図２に示されるように、スキャンチェーン１５を構成するように接続される。スキャンチェーンに関してはよく知られているため、詳細な説明は省略される。スキャン有効信号ＳＥがスキャンチェーンの形成を指示すると、各フリップフロップに内蔵される選択回路（１９１）が、スキャンチェーンの信号（Ｓｉｎ）を選択するように設定される。
【００３７】
選択回路２１０、２２０、２３０、２４０は、選択信号ＴＢによりスキャンデータ側のデータを選択して出力するように設定される。従って、サブスキャンチェーン２１〜２４に含まれるフリップフロップは、連結された１つのシフトレジスタを形成する。スキャンクロックに同期してスキャンデータは、スキャン入力ＳＩｎから入力され、スキャン出力ＳＯｎに向かって順次フリップフロップを移動していく。全てのフリップフロップにスキャンデータが設定されると、各フリップフロップは、一旦スキャンチェーン１５の構成から解放され、本来の内部論理回路である対象回路１１のデータを取り込む。このとき、各フリップフロップはスキャンデータを出力しているため、各フリップフロップはスキャンパステストの結果を保持することになる。その後、フリップフロップはスキャンチェーン１５の構成に戻る。スキャンパステストの結果を保持するシフトレジスタは、スキャンクロックに基づいて、スキャンパステストの結果データをスキャン出力ＳＯｎから出力する。
【００３８】
内部ノードデータ退避の場合、スキャンチェーン１５は、サブスキャンチェーン２１〜２４が並列に機能するように設定される。選択信号ＴＢは、どちらに設定されていてもよいが、ここではバックアップメモリ１３の出力（ＴＩ）を選択するように設定される。スキャンパステスト時と同じように、フリップフロップに保持されている内部ノードデータは、クロックに同期して並列にサブスキャンチェーンの出力データＴＯ１〜ＴＯ４として一旦レジスタ２１６に保持され、順次バックアップメモリ１３に出力される。レジスタ２１６に一時保持されることにより、出力データがバックアップメモリ１３に格納されるタ
イミングが１クロック分遅延するが、レジスタ１６の出力はほぼ１クロック分変化しないため、バックアップメモリ１３のタイミング設定に余裕ができる。したがって、サブスキャンチェーン２１〜２４の出力位置からバックアップメモリ１３までの配線が長いときに有効である。
【００３９】
バックアップメモリ１３のアドレスＡＤＤＲは、バックアップ制御回路１２によりクロックに同期して更新され、サブスキャンチェーンの出力データＴＯ１〜ＴＯ４は、バックアップメモリ１３に順に記憶される。サブスキャンチェーンに含まれるフリップフロップの数だけデータを出力すると、このスキャンチェーン１５に含まれる全ての内部ノードデータは、バックアップメモリ１３に出力されたことになる。従って、スキャンチェーン１５の出力ＳＯｎをメモリに接続して内部ノードデータを記憶させるより、出力時間は短縮できる。図２に示されるように、スキャンチェーン１５をサブスキャンチェーン２１〜２
４のように４分割すると、出力時間は１／４になる。
【００４０】
内部ノードデータ回復の場合、即ち、バックアップメモリ１３に保持されている内部ノードデータを元のフリップフロップに設定する場合、スキャンチェーン１５は、サブスキャンチェーン２１〜２４が並列に機能するように設定される。選択信号ＴＢは、バックアップメモリ１３の出力（ＴＩ）を選択するように設定される。バックアップメモリ１３から内部ノードデータＴＩ１〜４がレジスタ１７を介してサブスキャンチェーン２１〜２４に入力される。レジスタ１７にバックアップメモリ１３の出力が一時保持されることにより、スキャンチェーン１５にデータが再設定されるタイミングが１クロック分遅延する。
しかし、バックアップメモリ１３から選択回路２１０、２２０、２３０、２４０までの配線遅延やバックアップメモリ１３のアクセス時間を考慮すると、レジスタ１７を挿入することにより、タイミングに余裕ができる。したがって、バックアップメモリ１３のチップ上の配置位置の自由度が向上する。
【００４１】
バックアップ制御回路１２は、バックアップメモリ１３のアドレスＡＤＤＲを初期設定値からクロック毎に更新して、内部ノードデータＴＩ１〜４が退避された順にサブスキャンチェーン２１〜２４に供給されるように制御する。サブスキャンチェーン２１〜２４に供給される内部ノードデータＴＩ１〜４は、選択回路２１０、２２０、２３０、２４０を介してサブスキャンチェーン内に形成されるシフトレジスタを出力ＴＯ１〜４に向けて移動していく。サブスキャンチェーンに含まれるフリップフロップの数だけシフトすると、各フリップフロップには元の内部ノードデータが設定されている。これで対象回路１１の
内部状態は回復したことになる。その後、バックアップ回復モードを解除すると、対象回路１１は通常の動作に復帰する。
【００４２】
対象回路１１に内蔵される各フリップフロップは、通常動作時、システムクロックＳＹＳＣＬＫに同期して動作し、スキャンパステスト時、外部から供給されるテストクロックＳＣＮＳＬＫに同期して動作する。テストクロックＳＣＮＣＬＫは、半導体集積回路の外部との信号の入出力を伴うため、通常システムクロックより遅い（クロック周波数が低い）。上述のスキャンチェーンを利用した内部状態退避・回復時は、その動作時間を短縮するためにシステムクロックＳＹＳＣＬＫを使用することが好ましいが、ＩＲドロップの影響を受けて誤動作する可能性があるため、内部状態退避・回復動作用のクロックを使用する。内部状態退避・回復動作用クロックは、クロック切替回路１２０によりシステムクロックＳＹＳＣＬＫに基づいて生成される。
【００４３】
図５を参照して、各動作モード時において選択回路が選択する信号を説明する。図５には、クロック切替回路１２０に含まれる選択回路１２２、１２６、分周回路１２４と、スキャンチェーン１５のうちのサブスキャンチェーン２ｍに含まれる選択回路２ｍ０、フリップフロップ２ｍ１…２ｍ４と、レジスタ１６のうちのフリップフロップ２ｍ６と、レジスタ１７のうちのフリップフロップ２ｍ７とが示される。なお、以下ではクロック切替回路１２０を使用した場合を例として、選択回路が選択する信号を説明するが、図９に示したクロック切替回路１２７を使用した場合でも、それぞれの選択回路が選択する信号は同様である。
【００４４】
通常動作時、バックアップ制御回路１２は、スキャンパス有効信号ＳＥがスキャンパス無効状態を示すように、選択信号ＴＢが非テスト動作状態を示すように、クロック切替信号ＳＬＣが非分周状態を示すようにそれぞれ設定する。スキャンパス有効信号ＳＥはインアクティブとなり、スキャンチェーンは解除される。したがって、各フリップフロップ２ｍ１…２ｍ４、２ｍ６、２ｍ７は、それぞれ内部回路の状態データを示す信号Ｄｉｎ１…Ｄｉｎ４、Ｄｉｎ５、Ｄｉｎ０を選択する。選択信号ＴＢは、テスト動作状態でないことを示し、クロック切替回路１２０の選択回路１２２に対してシステムクロックＳＹＳＣＬＫの選択を指示する。クロック選択信号ＳＬＣは、選択回路１２６に対して選択回路１２２の出力を選択するように指示する。したがって、クロックＣＬＫとして、システムクロックＳＹＳＣＬＫが各フリップフロップに供給される。なお、選択信号ＴＢは、サブスキャンチェーン２ｍにも供給されるが、選択信号ＴＢが入力される選択回路２ｍ０は、スキャンパスの信号を切り替えるだけで通常動作に影響しない。このように、対象回路１１は、システムクロックＳＹＳＣＬＫに同期して通常の動作を行う。
【００４５】
テスト動作時、バックアップ制御回路１２は、スキャンパス有効信号ＳＥがスキャンパス有効状態を示すように、選択信号ＴＢがテスト動作状態を示すように、クロック切替信号ＳＬＣが非分周状態を示すように設定する。スキャンパス有効信号ＳＥはアクティブとなり、スキャンチェーンが形成される。したがって、各フリップフロップ２ｍ１…２ｍ４、２ｍ６、２ｍ７は、スキャンチェーンを形成するように信号Ｓｉｎ１…Ｓｉｎ４、ＴＯｍ、ＭＯｍを選択して取り込む。選択信号ＴＢは、テスト動作状態を示し、クロック切替回路１２０の選択回路１２２に対してテストクロックＳＣＮＣＬＫの選択を指示する。ま
た、選択信号ＴＢは、サブスキャンチェーン２ｍの選択回路２ｍ０に供給され、前段のサブスキャンチェーン２ｍ−１の出力あるいはスキャンチェーン入力信号ＳＩを選択するように選択回路２ｍ０を切り替える。クロック選択信号ＳＬＣは、選択回路１２６に対して選択回路１２２の出力を選択するように指示する。したがって、クロックＣＬＫとして、テストクロックＳＣＮＣＬＫが各フリップフロップに供給される。このように、テスト動作時、対象回路１１はスキャンチェーンを構成し、各フリップフロップは外部から入力されるテストクロックＳＣＮＣＬＫに同期してシフト動作を行う。
【００４６】
退避・回復動作時、バックアップ制御回路１２は、スキャンパス有効信号ＳＥがスキャンパス有効状態を示すように、選択信号ＴＢが非テスト動作状態を示すように、クロック切替信号ＳＬＣが分周状態を示すように設定する。スキャンパス有効信号ＳＥはアクティブとなり、スキャンチェーンが形成される。したがって、各フリップフロップ２ｍ１…２ｍ４、２ｍ６、２ｍ７は、スキャンチェーンを構成するように信号Ｓｉｎ１…Ｓｉｎ４、ＴＯｍ、ＭＯｍを選択して取り込む。選択信号ＴＢは、テスト動作状態でないことを示し、クロック切替回路１２０の選択回路１２２に対してシステムクロックＳＹＳＣＬＫの選
択を指示する。また、選択信号ＴＢは、サブスキャンチェーン２ｍの選択回路２ｍ０に供給され、フリップフロップ２ｍ７の出力を選択するように選択回路２ｍ０を切り替える。クロック選択信号ＳＬＣは、選択回路１２６に対して分周回路１２４の出力を選択するように指示する。したがって、クロックＣＬＫとして、システムクロックＳＹＳＣＬＫを分周回路１２４により分周したクロックが各フリップフロップに供給される。
【００４７】
このように、退避・回復動作時、対象回路１１はスキャンチェーンを構成し、各フリップフロップはシステムクロックＳＹＳＣＬＫを分周したクロックに同期してシフト動作を行う。即ち、全フリップフロップがシフト動作するとき、システムクロックＳＹＳＣＬＫより遅い（周期の長い）クロックに基づいて動作するため、ＩＲドロップの影響が軽減され、誤動作しなくなる。
【００４８】
上述において、レジスタ１６、１７は、バックアップメモリ１３に接続されるフリップフロップ群として説明されたが、図６に示されるように、選択回路２ｍ５（ｍ＝１、…、４）、２ｍ８（ｍ＝１、…、４）を備えてもよい。選択回路２ｍ５、２ｍ８を備えることにより、レジスタ１６、１７はスキャンパステストが可能となる。このとき、レジスタ１６、１７は、１段のフリップフロップにより形成されるサブスキャンチェーンを有すると見ることもできる。即ち、サブスキャンチェーン２１の入力側に、選択回路２１８とフリップフロップ２１７とを有するスキャンチェーン１７のサブスキャンチェーンが接続され、サブスキャンチェーン２１の出力側に、選択回路２１５とフリップフロップ２１６とを有するスキャンチェーン１６のサブスキャンチェーンが接続される。同じように、サブスキャンチェーン２２、２３、２４の入出力にスキャンチェーン１７、１６のサブスキャンチェーンが接続される。
【００４９】
この場合、レジスタ１６、１７に含まれるフリップフロップ２１６、２２６、２３６、２４６、２１７、２２７、２３７、２４７に保持されるデータをバックアップメモリ１３に格納することもでき、これらが保持する内部状態を示すデータの退避・回復も可能となる。また、ここでは、レジスタ１６、１７のサブスキャンチェーンは１段のフリップフロップにより形成されているが、多段であってもよい。
【００５０】
また、スキャンチェーン１５は、図７に示されるように、サブスキャンチェーン３１〜３４の出力をサブスキャンチェーン３１〜３４自身の入力に戻すように接続されてもよい。このような接続により、最小回復時間を短縮することが可能となる。最小回復時間は、内部状態データの退避が開始された直後に退避の中止、即ち、内部状態データの回復が指示されたときに要する時間である。図７に示されるスキャンチェーン１５は、図２に示されるサブスキャンチェーン２１〜２４の各々の先頭にさらに選択回路が設けられている。
【００５１】
サブスキャンチェーン３１は、選択回路３１９、３１０とフリップフロップ３１１〜３１４を備える。同じように、サブスキャンチェーン３２は、選択回路３２９、３２０とフリップフロップ３２１〜３２４を備え、サブスキャンチェーン３３は、選択回路３３９、３３０とフリップフロップ３３１〜３３４を備え、サブスキャンチェーン３４は、選択回路３４９、３４０とフリップフロップ３４１〜３４４を備える。選択回路３１９、３２９、３３９、３４９を除く部分は、図２に示されるスキャンチェーンと同じである。
【００５２】
選択回路３１９、３２９、３３９、３４９は、選択信号ＢＲに基づいて、バックアップメモリ１３が出力する退避された内部ノードデータＴＩと、サブスキャンチェーンが出力する内部ノードデータＴＯのいずれかを選択して選択回路３１０、３２０、３３０、３４０に出力する。
【００５３】
サブスキャンチェーン３１では、選択回路３１９は、バックアップメモリ１３から入力される内部ノードデータＴＩ１と、サブスキャンチェーン３１が出力する内部ノードデータＴＯ１とを入力する。選択回路３１９は、選択信号ＢＲに基づいて、内部状態退避時はフィードバックされるように内部ノードデータＴＯ１を選択して出力し、内部状態回復時は退避されていた内部ノードデータＴＩ１を選択して出力する。選択回路３１０は、スキャン入力ＳＩｎと、選択回路３１９の出力信号とを入力する。選択回路３１０は、選択信号ＴＢに基づいて、スキャンパステスト時はスキャン入力信号ＳＩｎを選択して出力し、内部状態退避・回復時は選択回路３１９の出力信号を選択して出力する。フリップフロップ３１１〜３１４は、鎖状に接続されてシフトレジスタを形成し、選択回路３１０の出力信号が入力される。フリップフロップ３１４の出力信号は、内部ノードデータＴＯ１として出力されるとともに、次段のサブスキャンチェーン３２に送られる。
【００５４】
サブスキャンチェーン３２では、選択回路３２９は、バックアップメモリ１３から入力される内部ノードデータＴＩ２と、サブスキャンチェーン３２が出力する内部ノードデータＴＯ２とを入力する。選択回路３２９は、選択信号ＢＲに基づいて、内部状態退避時はフィードバックされるように内部ノードデータＴＯ２を選択して出力し、内部状態回復時は退避されていた内部状態ＴＩ２を選択して出力する。選択回路３２０は、前段のサブスキャンチェーン３１の出力データＴＯ１と、選択回路３２９の出力信号とを入力する。選択回路３２０は、選択信号ＴＢに基づいて、スキャンパステスト時は前段出力データＴＯ
１を選択して出力し、内部状態退避・回復時は選択回路３２９の出力信号を選択して出力する。フリップフロップ３２１〜３２４は、鎖状に接続されてシフトレジスタを形成し、選択回路３２０の出力信号が入力される。フリップフロップ３２４の出力信号は、内部ノードデータＴＯ２として出力されるとともに、次段のサブスキャンチェーン３３に送られる。
【００５５】
同じように、サブスキャンチェーン３３では、選択回路３３９は、バックアップメモリ１３から入力される内部ノードデータＴＩ３と、サブスキャンチェーン３３が出力する内部ノードデータＴＯ３とを入力する。選択回路３３９は、選択信号ＢＲに基づいて、内部状態退避時はフィードバックされるように内部ノードデータＴＯ３を選択して出力し、内部状態回復時は退避されていた内部状態ＴＩ３を選択して出力する。選択回路３３０は、前段のサブスキャンチェーン３２の出力データＴＯ２と、選択回路３３９の出力データとを入力する。選択回路３３０は、選択信号ＴＢに基づいて、スキャンパステスト時は前段出力データＴＯ２を選択して出力し、内部状態退避・回復時は選択回路３３９の出力信号を選択して出力する。フリップフロップ３３１〜３３４は、鎖状に接続されてシフトレジスタを形成し、選択回路３３０の出力信号が入力される。フリップフロップ３３４の出力は、内部ノードデータＴＯ３として出力されるとともに、次段のサブスキャンチェーン３４に送られる。
【００５６】
同じように、サブスキャンチェーン３４では、選択回路３４９は、バックアップメモリ１３から入力される内部ノードデータＴＩ４と、サブスキャンチェーン３４が出力する内部ノードデータＴＯ４とを入力する。選択回路３４９は、選択信号ＢＲに基づいて、内部状態退避時はフィードバックされるように内部ノードデータＴＯ４を選択して出力し、内部状態回復時は退避されていた内部状態ＴＩ４を選択して出力する。選択回路３４０は、前段のサブスキャンチェーン３３の出力データＴＯ３と、選択回路３４９の出力データとを入力する。選択回路３４０は、選択信号ＴＢに基づいて、スキャンパステスト時は前段出力データＴＯ３を選択して出力し、内部状態退避・回復時は選択回路３４９の出力信号を選択して出力する。フリップフロップ３４１〜３４４は、鎖状に接続されてシフトレジスタを形成し、選択回路３４０の出力信号が入力される。フリップフロップ３４４の出力は、内部ノードデータＴＯ４として出力されるとともに、スキャンチェーン１５の出力ＳＯｎとして外部に出力される。
【００５７】
このように、退避動作が終了すると、各フリップフロップは、また元の状態に戻る。そのため、退避動作の途中に何らかの要因で内部状態を回復させる場合に、退避動作を完了したところで回復も完了していることになる。したがって、退避動作完了後直ちに通常動作に戻ることが可能となる。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施の形態に係る半導体集積回路の構成を示すブロック図である。
【図２】同スキャンチェーンの構成を示すブロック図である。
【図３】同スキャンフリップフロップの例を示す図である。
【図４】同クロック切替回路の構成を示すブロック図である。
【図５】同動作を説明するための図である。
【図６】同他のレジスタの構成を示すブロック図である。
【図７】同他のスキャンチェーンの構成を示すブロック図である。
【図８】本発明の実施の形態に係る分周回路の構成例である。
【図９】本発明の実施の形態に係るクロック切替回路の他の構成である。
【図１０】本発明の実施の形態に係る分周回路の他の構成例である。
【符号の説明】
【００５９】
１１  対象回路
１２  バックアップ制御回路
１３  バックアップメモリ
１４  スイッチ
１５  スキャンチェーン
１６、１７  レジスタ
２１、２２、２３、２４  サブスキャンチェーン
３１、３２、３３、３４  サブスキャンチェーン
１２０  クロック切替回路
１２２  選択回路
１２４  分周回路
１２６  選択回路
１２８  分周回路
１２７  クロック切替回路
１９０  マルチプレクスド・スキャン・フリップフロップ
１９１  選択回路（マルチプレクサ）
１９２  フリップフロップ
２１０、２１５、２１８  選択回路
２１１、２１２、２１３、２１４、２１６、２１７  フリップフロップ
２２０、２２５、２２８  選択回路
２２１、２２２、２２３、２２４、２２６、２２７  フリップフロップ
２３０、２３５、２３８  選択回路
２３１、２３２、２３３、２３４、２３６、２３７  フリップフロップ
２４０、２４５、２４８  選択回路
２４１、２４２、２４３、２４４、２４６、２４７  フリップフロップ
３１０  選択回路
３１１、３１２、３１３、３１４  フリップフロップ
３２０  選択回路
３２１、３２２、３２３、３２４  フリップフロップ
３３０  選択回路
３３１、３３２、３３３、３３４  フリップフロップ
３４０  選択回路
３４１、３４２、３４３、３４４  フリップフロップ
４０１、４０２、４０３  フリップフロップ
４０３、４０４  インバータ
４０６  選択回路
５０１  クロックイネーブル生成回路
５０２  クロックゲーティングセル
【図１】
2008117372.tif 000003
【図２】
2008117372.tif 000004
【図３】
2008117372.tif 000005
【図４】
2008117372.tif 000006
【図５】
2008117372.tif 000007
【図６】
2008117372.tif 000008
【図７】
2008117372.tif 000009
【図８】
2008117372.tif 000010
【図９】
2008117372.tif 000011
【図１０】
2008117372.tif 000012