(57)【特許請求の範囲】
【請求項１】
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと，
組合せ回路の出力信号と前記スキャンチェーンの信号とのいずれかを選択する第１のスイッチと，
前記スキャンチェーンに挿入され，前記第１のスイッチの出力信号を入力する第１のラッチと，
前記組合せ回路の出力信号を入力する第２のラッチと，
前記第１のラッチのラッチ信号と前記第２のラッチのラッチ信号とのいずれかを選択し前記組合せ回路の後段の組合せ回路に供給する第２のスイッチとを有する半導体装置。
【請求項２】
請求項１において，
前記組合せ回路と，前記第１及び第２のスイッチと，前記第１及び第２のラッチとを有するスキャンユニットを複数段有し，前段の前記スキャンユニットの前記第２のスイッチの出力が後段の前記スキャンユニットの前記組合せ回路に入力し，前段の前記スキャンユニットの前記第１のラッチのラッチ信号及び後段の前記スキャンユニットの前記第１のスイッチが前記スキャンチェーンを介して接続される半導体装置。
【請求項３】
請求項１又は２において，
さらに，前記第１のスイッチが前記組合せ回路の出力信号を選択し，前記第１のラッチは前記第１のスイッチを介して前記組合せ回路の出力信号をラッチし，前記第２のスイッチは前記第１のラッチのラッチ信号を選択する通常動作モードと，
前記第１のスイッチが前記スキャンチェーンの信号を選択して前記第１のラッチのラッチ信号を前記スキャンチェーンを介して出力し，前記第２のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチは前記第２のラッチのラッチ信号を選択するスキャンアウトモードとを，
切替制御する制御部を有する半導体装置。
【請求項４】
請求項３において，
前記制御部は，任意のタイミングで前記通常動作モードから前記スキャンアウトモードに切り替え，所定の時間経過後，前記スキャンアウトモードから前記通常動作モードに切り替える半導体装置。
【請求項５】
請求項４において，
前記制御部は，前記通常動作モードから前記スキャンアウトモードに切り替えるとき，前記第１のラッチが前記組合せ回路の出力信号をラッチし前記第１のスイッチが前記スキャンチェーンの信号に選択を切り替えるスナップショットモードを介して切り替え， 前記スナップショットモードの後の前記スキャンアウトモードで，前記第２のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチが前記第２のラッチのラッチ信号に選択を切り替える半導体装置。
【請求項６】
請求項４において，
前記制御部は，前記スキャンアウトモードから前記通常動作モードに切り替えるとき，前記第２のラッチが前記組合せ回路の出力信号をラッチし前記第１のスイッチが前記組合せ回路の出力信号に選択を切り替えるリターンモードを介して切り替え， 前記リターンモードの後の前記通常動作モードで，前記第１のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチが前記第１のラッチのラッチ信号に選択を切り替える半導体装置。
【請求項７】
請求項３において，
前記制御部は，前記第２のラッチが前記組合せ回路の出力信号をラッチし前記第２のスイッチが前記第２のラッチのラッチ信号を選択する代替モードに切り替える半導体装置。
【請求項８】
請求項３において，
さらに，複数の前記第２のラッチのラッチ信号をスキャン入出力するサブスキャンチェーンと，
前記組合せ回路と前記第２のラッチの間に，前記組合せ回路の出力信号又は前記サブスキャンチェーンの信号のいずれかを選択する第３のスイッチとを有し，
前記制御部は，前記第３のスイッチが前記サブスキャンチェーンの信号を選択し前記第２のラッチは前記第３のスイッチを介して前記サブスキャンチェーンの信号をラッチし，前記第２のラッチのラッチ信号が前記サブスキャンチェーンを介して出力されるスキャンテストモードに切り替える半導体装置。
【請求項９】
請求項３乃至請求項８のいずれかに記載の半導体装置と，
前記制御部に前記通常動作モードから前記スキャンアウトモードへの切替信号を供給し，前記スキャンアウトモードで前記第１のラッチのラッチ信号を供給されるデバッグ装置とを有するデバッグシステム。
【請求項１０】
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと，組合せ回路の出力信号と前記スキャンチェーンの信号とのいずれかを選択する第１のスイッチと，前記スキャンチェーンに挿入され前記第１のスイッチの出力信号を入力する第１のラッチと，前記組合せ回路の出力信号を入力する第２のラッチと，前記第１のラッチのラッチ信号と前記第２のラッチのラッチ信号とのいずれかを選択し前記組合せ回路の後段の組合せ回路に供給する第２のスイッチとを有する半導体装置の試験方法において，
前記第１のスイッチで前記組合せ回路の出力信号を選択して前記組合せ回路の出力信号を前記第１のラッチでラッチし，前記第２のスイッチで前記第１のラッチのラッチ信号を選択して前記後段の組合せ回路に前記第１のラッチのラッチ信号を入力する通常動作工程と，
前記第１のスイッチで前記スキャンチェーンの信号を選択して前記スキャンチェーンを介して前記第１のラッチのラッチ信号を出力し，前記第２のラッチで前記組合せ回路の出力信号をラッチし，前記第２のスイッチで前記第２のラッチのラッチ信号を選択して前記第２のラッチのラッチ信号を前記後段の組合せ回路に入力するスキャンアウト工程とを有する半導体装置の試験方法。
【請求項１１】
メモリと，
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと，
バスからの前記メモリのアドレス信号と前記スキャンチェーンの信号とのいずれかを選択する第１のスイッチと，
前記スキャンチェーンに挿入され，前記第１のスイッチの出力信号を入力する第１のラッチと，
前記アドレス信号と前記スキャンチェーンの信号とのいずれかを選択する第２のスイッチと，
前記スキャンチェーンに挿入され，前記第２のスイッチの出力信号を入力する第２のラッチと，
前記第１のラッチのラッチ信号と前記第２のラッチのラッチ信号とのいずれかを選択し後段の前記メモリに供給する第３のスイッチと，
前記メモリからのデータ信号と前記スキャンチェーンの信号とのいずれかを選択する第４のスイッチと，
前記スキャンチェーンに挿入され，前記第４のスイッチの出力信号を入力する第３のラッチと，
前記データ信号を入力する第４のラッチと，
前記第３のラッチのラッチ信号と前記第４のラッチのラッチ信号とのいずれかを選択し前記バスに供給する第５のスイッチとを有する半導体装置。
【請求項１２】
請求項１１において，
前記第１のスイッチが前記アドレス信号を選択し，前記第１のラッチが前記第１のスイッチを介して入力する前記アドレス信号をラッチし，前記第３のスイッチが前記第１のラッチのラッチ信号を選択し，前記第４のスイッチが前記メモリの出力信号を選択し，前記第３のラッチが前記第４のスイッチを介して入力する前記データ信号をラッチし，前記第５のスイッチが前記第３のラッチのラッチ信号を選択する通常動作モードと，
前記第２のスイッチが前記スキャンチェーンの監視アドレス信号を選択し，前記第２のラッチが前記第２のスイッチを介して入力する前記監視アドレス信号をラッチするセットモードと，
前記第１のスイッチが前記スキャンチェーンの信号を選択して前記第１のラッチのラッチ信号を前記スキャンチェーンを介して出力し，前記第２のスイッチが前記アドレス信号を選択し，前記第２のラッチが前記第２のスイッチを介して入力する前記アドレス信号をラッチし，前記第３のスイッチが前記第２のラッチのラッチ信号を選択し，前記第４のスイッチが前記スキャンチェーンの信号を選択して前記第３のラッチのラッチ信号を前記スキャンチェーンを介して出力し，前記第４のラッチが前記データ信号をラッチし，前記第５のスイッチが前記第４のラッチのラッチ信号を選択するスキャンアウトモードとを，
切替制御する制御部を有する半導体装置。
【請求項１３】
請求項１２において， 
前記制御部は，前記セットモードから前記通常動作モードに切り替えた後，前記第１のラッチのラッチ信号と，前記第２のラッチが前記セットモードでラッチした前記監視アドレス信号とが等しいとき，前記通常動作モードから前記スキャンアウトモードに切替制御し，
前記第３のラッチは，前記通常動作モードから前記スキャンアウトモードに切り替わるときに，前記メモリから出力された前記監視アドレス信号に対応する前記データ信号をラッチする半導体装置。
【請求項１４】
請求項１２において，
前記制御部は，前記セットモードから前記通常動作モードに切り替えた後，前記第１のラッチが有効なアドレス信号をラッチしていない状態のとき，前記通常動作モードから前記スキャンアウトモードに切替制御し，
前記第２のラッチがラッチした監視アドレス信号は，前記通常動作モードから前記スキャンアウトモードに切り替わるときに，前記第３のスイッチを介して前記メモリに入力し，
前記第３のラッチは，前記通常動作モードから前記スキャンアウトモードに切り替わるときに，前記メモリから出力された前記監視アドレス信号に対応する前記データ信号をラッチする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，半導体装置に関する。
【背景技術】
【０００２】
ＬＳＩの出荷試験の際に，ＬＳＩが正しく動作しているか否かを確認するために，スキャンチェーンを用いたテストが行われる。このテストのために，テスト対象回路内の各フリップフロップ（以下メインＦＦと記す。）の出力信号をラッチするサブフリップフロップ（以下サブＦＦと記す。）を設け，各サブＦＦをスナップショット用スキャンチェーン（以下ＳＳ用スキャンチェーン）により連結する。そして，任意のタイミングでサブＦＦがメインＦＦの出力信号をラッチし，ＳＳ用スキャンチェーンを介してサブＦＦの出力信号を外部に出力することで，ＬＳＩの内部動作を停止することなく故障解析を行う。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１０−５３１００１号公報
【特許文献２】特開２００４−１５７０２９号公報
【特許文献３】特開２００６−３３７２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したサブＦＦは，メインＦＦの出力信号をラッチするためだけのものであり，さらにスナップショット用スキャンチェーンを配線するのに必要なだけチップ上の面積を使用することとなる。このようなサブＦＦとそのＳＳ用スキャンチェーンをＬＳＩに設けることはコストの増加を招き望ましくない。
【０００５】
そこで，本発明の目的は，上記を鑑み，故障解析用の回路のコストを抑制した半導体装置を提供することにある。
【課題を解決するための手段】
【０００６】
半導体装置の第１の側面は，
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと，
組合せ回路の出力信号と前記スキャンチェーンの信号とのいずれかを選択する第１のスイッチと，
前記スキャンチェーンに挿入され，前記第１のスイッチの出力信号を入力する第１のラッチと，
前記組合せ回路の出力信号を入力する第２のラッチと，
前記第１のラッチのラッチ信号と前記第２のラッチのラッチ信号とのいずれかを選択し前記組合せ回路の後段の組合せ回路に供給する第２のスイッチとを有する。
【発明の効果】
【０００７】
半導体装置の第１の側面によれば，サブＦＦを使って通常動作を継続しながらメインＦＦから正しいデータを読み出すことができる。また，メインＦＦの故障時にはメインＦＦの代替としてサブＦＦを使うことができる。
【図面の簡単な説明】
【０００８】
【図１】ＬＳＩの構成例を示す図である。
【図２】ＬＳＩの内部状態を読み出すための内部回路の構成を示す図である。
【図３】第１の実施の形態におけるＬＳＩの構成図である。
【図４】第１の実施の形態における内部回路の構成を示す図である。
【図５】第１の実施の形態における動作モードを示す図である。
【図６】第１の実施の形態におけるモード制御回路から出力される信号の波形図である。
【図７】第１の実施の形態における通常動作モードの動作状態を示す図である。
【図８】第１の実施の形態におけるスナップショットモードの動作状態を示す図である。
【図９】第１の実施の形態におけるスキャンアウトモードの動作状態を示す図である。
【図１０】第１の実施の形態におけるリターンモードの動作状態を示す図である。
【図１１】第２の実施の形態における内部回路の構成を示す図である。
【図１２】第３の実施の形態における内部回路の構成を示す図である。
【図１３】第４の実施の形態におけるＬＳＩの構成図である。
【図１４】第４の実施の形態におけるメモリＩ／Ｆの構成を示す図である。
【図１５】第４の実施の形態におけるアドレス用メインＦＦの構成を示す図である。
【図１６】第４の実施の形態におけるアドレス用サブＦＦの構成を示す図である。
【図１７】第４の実施の形態におけるデータ用メインＦＦの構成を示す図である。
【図１８】第４の実施の形態におけるデータ用サブＦＦの構成を示す図である。
【図１９】第４の実施の形態におけるフリップフロップのラッチ信号を選択するスイッチの構成を示す図である。
【図２０】第４の実施の形態におけるメモリＩ／Ｆの動作モードの切替条件を示す図である。
【図２１】第４の実施の形態におけるモード制御回路の出力信号を示す図である。
【図２２】第４の実施の形態におけるセットモードのタイミングチャートである。
【図２３】第４の実施の形態におけるメモリＩ／Ｆによるスキャンアウト動作のタイミングチャートである。
【図２４】第５の実施の形態におけるメモリＩ／Ｆの構成を示す図である。
【図２５】第５の実施の形態におけるアドレス用メインＦＦの構成を示す図である。
【図２６】第５の実施の形態におけるメモリＩ／Ｆによるスキャンアウト動作のタイミングチャートである。
【発明を実施するための形態】
【０００９】
以下，図面を用いて本発明の実施の形態について説明する。
【００１０】
図１は，ＬＳＩの構成例を示す図である。図１のＬＳＩ４は，インサーキットエミュレータ（ＩＣＥ）２を介し，ホストＰＣ等デバッグツール１に接続している。デバッグツール１は，ＩＣＥ２を介して，後述するスキャンイン信号とテスト開始信号とをＬＳＩ４に出力する。また，デバッグツール１は，後述するスキャンアウト信号をＬＳＩ４から供給される。
【００１１】
さらに，ＬＳＩ４は，オンチップデバッガ（ＯＣＤ）６と，ＣＰＵ７と，デバッグツール１からＩＣＥ２と外部端子５とを介して入力されるテスト開始信号に応じてテストモード信号を生成するテストモードコントローラ（ＴＭＣ）８と，クロック信号を生成するクロック信号ユニット９と，メモリインターフェース１０と，メモリ１１と，周辺機能回路１２と，内部バス１３とを有する。そしてＬＳＩ４は，後述するスナップショット用スキャンクロック信号（以下，ＳＳ用スキャンクロック信号と記す。）とスナップショット用スキャンモード信号（以下，ＳＳ用スキャンモード信号と記す。）を出力するスキャン制御部１４とを有する。
【００１２】
また，ＬＳＩ４は，ＣＰＵ７，メモリＩＦ１０，周辺機能回路１２内の組合せ回路（ロジック回路）の間に設けられるメインＦＦ群を接続するメインスキャンチェーン配線１５と，各メインＦＦに対応して設けられ，対応するメインＦＦがラッチする組合せ回路の出力信号をラッチするサブＦＦを接続するＳＳ用スキャンチェーン配線１６とを有する。ＬＳＩ４は，すなわち，複数のメインＦＦとそれらを接続するメインスキャンチェーン配線１５とを有するスキャンチェーンと共に，複数のサブＦＦとそれらを接続するＳＳ用スキャンチェーン配線１６とを有するＳＳ用スキャンチェーンとが設けられている。
【００１３】
図２は，ＬＳＩの内部状態を読み出すための内部回路の構成を示す図である。図２の構成は，周辺機能回路１２，メモリインターフェース１０，ＣＰＵ７内の一部の内部回路３０を示す。内部回路３０は，組合せ回路３１，３５と，メインＦＦ３３，３７とを有し，通常動作時，メインＦＦ３３，３７は組合せ回路３１，３５の出力信号をクロック信号に同期してラッチする。
【００１４】
また，メインスキャンチェーン配線１５を介してスキャンアウト端子１８からＬＳＩ４の内部状態を示すメインＦＦのデータを出力できるように，内部回路３０は，さらに，メインＦＦ３３と３７とを接続するメインスキャンチェーン配線１５と，組合せ回路３３，３５とメインＦＦ３３，３７との間に設けられ，テストモード信号に応答してメインスキャンチェーン配線１５の信号と組合せ回路３３，３７の出力信号とのいずれかを選択するスイッチ３２，３６とを有する。
【００１５】
この内部回路３０では，不良解析のために，スイッチ３２，３６がメインスキャンチェーン配線１５の信号を選択して，メインスキャンチェーン配線１５を介してメインＦＦ３３，３７のデータがスキャンアウト端子１８から出力される。しかし，この場合，スイッチ３２，３６がスキャンチェーン配線１５を選択するため，組合せ回路３１，３５とメインＦＦ３３，３７とによる通常動作が中断されてしまう。
【００１６】
そこで，組合せ回路とメインＦＦが通常動作を継続しながら，任意のタイミングで内部回路３０の内部状態を抽出できるように，図２の内部回路３０は，さらに，サブＦＦ４０，４２と，サブＦＦ４０と４２とを接続するＳＳ用スキャンチェーン配線１６と，メインＦＦ３３，３７とサブＦＦ４０，４２との間にＳＳ用スキャンモード信号に応答してＳＳ用スキャンチェーン配線１６の信号とメインＦＦ３３，３７の出力信号とを選択するスイッチ３９，４１とを有している。
【００１７】
通常動作時，スイッチ３９，４１はＳＳ用スキャンモード信号により「０」側を選択し，サブＦＦ４０，４２はＳＳ用スキャンクロック信号に同期して，メインＦＦ３３，３７のラッチ信号をラッチする。そして，スキャンテスト時，スイッチ３９，４１がＳＳ用スキャンチェーン配線１６の信号を選択することで，ＳＳ用スキャンチェーン配線１６を介してサブＦＦ４０，４２のデータを出力する。この構成であれば，内部回路３０は，組合せ回路３１，３５とメインＦＦ３３，３７とによる通常動作を継続しながら，任意のタイミングでのＬＳＩ４のメインＦＦ内の内部状態をサブＦＦ３３，３７のＳＳ用スキャンチェーン配線１６を使って読み出すことができる。
【００１８】
図２に示す構成により，ＬＳＩ４の内部状態を読み出すためにスキャンテストが行われる。スキャンテストでは，まず，スキャンテスト用の入力信号として，デバッグツール１からＩＣＥ２とスキャンイン端子１７とを介してメインＦＦ３３，３７にスキャンイン信号が入力される。すなわち，最初に，入力されたテスト開始信号に応答してテストモードコントローラ８によりＨレベルのテストモード信号が生成される。スイッチ３２，３６は，このテストモード信号に応答してメインスキャンチェーン配線１５の信号を選択し，メインスキャンチェーン配線１５を介してメインＦＦ３３，３７にスキャンイン信号を入力する。
【００１９】
次に，ＬＳＩ４を通常動作させる。具体的には，まず，スイッチ３２，３６が組合せ回路３１，３５の出力信号（スイッチ「０」側）を選択するようにテストモードコントローラ８はテストモード信号をＬレベルにし，所望の入力テストパターンがＬＳＩ４に入力されてクロックユニット９によりクロック信号が生成され，内部回路３０は組合せ回路３１，３５とメインＦＦ３３，３７とによる通常動作をする。これにより，メインＦＦ３３，３７は，クロック信号に同期して組合せ回路３１，３５の出力信号をラッチする。
【００２０】
さらに，スイッチ３９，４１がメインＦＦ３３，３７の出力信号（スイッチ「０」側）を選択するようにスキャン制御部１４はＳＳ用スキャンモード信号をＬレベルにし，ＳＳ用スキャンクロック信号を生成する。 サブＦＦ４０，４２は，ＳＳ用スキャンクロック信号に同期して，メインＦＦ３３，３７のラッチ信号をラッチする。
【００２１】
そして，任意のタイミングで，スキャン制御部によりＨレベルのＳＳ用スキャンモード信号が出力される。これにより，スイッチ３９，４１は，ＳＳ用スキャンチェーン配線１６の信号（スイッチ「１」側）を選択し，サブＦＦ４０は，図示しない前段のサブＦＦのラッチ信号をラッチし，サブＦＦ４２は，ＳＳ用スキャンクロック信号に応じてサブＦＦ４０のラッチ信号をラッチする。
【００２２】
このように，ＳＳ用スキャンチェーン配線１６で接続される全てのサブＦＦについて，前段のサブＦＦのラッチ信号が順にその後段のサブＦＦにラッチされることで，ＬＳＩ４の内部状態を示すデータが，ＳＳ用スキャンチェーン配線１６を介してスキャンアウト端子１８から，スキャンアウト信号として出力される。また，ＳＳ用スキャンチェーン配線１６を介してサブＦＦのラッチ信号をスキャンアウトしている間，スイッチ３２，３６は組合せ回路３１，３５の出力信号を選択しているため，内部回路３０は，組合せ回路３１，３５とメインＦＦ３３，３７とを用いて通常動作を継続することができる。
【００２３】
以上のように図２では，内部回路３０が通常動作を継続しながら，任意のタイミングで，ＬＳＩ４の内部状態を示すデータが読み出される。しかし，サブＦＦ４０，４２はスキャンテスト専用の回路であり，このようなサブＦＦをＬＳＩ４に設けることはコスト増加を招き望ましくない。また，図２では，メインＦＦ３３，３７とサブＦＦ４０，４２とがそれ自体は正常に動作していても，仮にメインＦＦとサブＦＦとの間の配線で不具合があると，サブＦＦ４０，４２は正しくラッチできないため，スキャンアウト端子１８から出力されたサブＦＦのデータが正しくないリスクがある。
【００２４】
［第１の実施の形態］
そこで，第１の実施の形態では，図１，図２のＳＳ用スキャンチェーン配線１６を無くして，図３，図４に示す半導体装置により，後述するようにサブＦＦを使用して内部回路の動作を継続しながら，メインスキャンチェーン配線を介してスキャンアウト端子からＬＳＩの内部状態を読み出す。
【００２５】
図３は，第１の実施の形態におけるＬＳＩの構成図である。図３のＬＳＩ４は，図１のＬＳＩ４からＳＳ用スキャンチェーン１６が除かれ，外部端子１９が追加された構成となっており，後述するように，周辺機能回路１２，メモリインターフェース１０，ＣＰＵ７内の内部回路の構成が図１と異なる。また，デバッグツール１からは，スナップショット開始信号が，ＩＣＥ２を介してＬＳＩ４に入力される。そして，スキャン制御部１４は，外部端子１９を介して入力されるスナップショット開始信号に応答して，ＳＳ用スキャンモード信号１０１とＳＳ用スキャンクロック信号１０２とを出力する。
【００２６】
図４は，第１の実施の形態における内部回路の構成を示す図である。図４の構成は，図３のＬＳＩ４が有する周辺機能回路１２，メモリインターフェース１０，ＣＰＵ７内の一部の内部回路３０を示す。
【００２７】
図４の内部回路５０は，組合せ回路５１，５６と，メインＦＦ５３，５８とを有し，通常動作時，メインＦＦ５３，５８は後述するメインクロック信号１０５に同期して組合せ回路５１，５６の出力信号をラッチする。
【００２８】
また，内部回路５０は，メインＦＦ５３と５８とを接続するメインスキャンチェーン配線１５と，後述するスナップショット信号１０７に応答して組合せ回路５３，５８の出力信号とメインスキャンチェーン配線１５とのいずれかを選択するスイッチ５２，５７とを有する。
【００２９】
この内部回路５０では，不良解析のために，スイッチ５２，５７がメインスキャンチェーン配線１５の信号を選択する。そして，メインスキャンチェーン配線１５を介してメインＦＦ５３，５８のデータが，スキャンアウト信号としてスキャンアウト端子１８から出力され，ＩＣＥ２を介してデバッグツールに供給される。しかし，この場合，スイッチ５２，５７がメインスキャンチェーン配線１５の信号を選択するため，組合せ回路５１，５６とメインＦＦ５３，５８とによる通常動作が中断されてしまう。
【００３０】
そこで，内部回路５０は，さらに，サブＦＦ５４，５９と，後述するフリップフロップ選択信号１０８に応答してメインＦＦ５３，５８のラッチ信号とサブＦＦ５４，５９のラッチ信号とのいずれかを選択するスイッチ５５，６０と，通常動作時とスキャンテスト時の内部回路５０の動作を制御するモード制御回路６１とを有する。
【００３１】
モード制御回路６１は，ＳＳ用スキャンモード信号１０１とＳＳ用スキャンモード信号１０２とテストモード信号１０３とクロック信号１０４とを入力し，メインクロック信号１０５とサブクロック信号１０６とスナップショット信号１０７とフリップフロップ選択信号１０８とを出力する。
【００３２】
これにより，通常動作時は，スイッチ５２，５７は，スナップショット信号１０７により組合せ回路５１，５６の出力信号（スイッチ「０」側）を選択し，スイッチ５５，６０はフリップフロップ選択信号１０８によりメインＦＦ５３，５８のラッチ信号（スイッチ「０」側）を選択し，メインＦＦ５３，５８はメインクロック信号１０５に同期して組合せ回路５１，５６の出力信号をラッチする。それと共に，メインＦＦ５３，５８のラッチ信号が後段の組合せ回路５６等に入力する。
【００３３】
そして，スキャンテスト時は，スイッチ５２，５７は，スナップショット信号１０７によりメインスキャンチェーン配線１５の信号（スイッチ「１」側）を選択し，スイッチ５５，６０はフリップフロップ選択信号１０８によりサブＦＦ５４，５９のラッチ信号（スイッチ「１」側）を選択する。それにより，サブＦＦ５４，５９はサブクロック信号１０６に同期して組合せ回路５１，５６の出力信号をラッチする。それと共に，サブＦＦは５４，５９のラッチ信号が後段の組合せ回路５６等に入力する。また，メインＦＦ５８は，メインクロック信号１０５に同期してメインＦＦ５３のラッチ信号をラッチし，さらに，メインＦＦ５３は，メインクロック信号１０５に同期して，図示しない前段のメインＦＦのラッチ信号をラッチする。
【００３４】
このようにして，メインスキャンチェーン配線１５で接続される全てのメインＦＦでは，前段のメインＦＦのラッチ信号が順に後段のメインＦＦにラッチされることで，スナップショット信号１０７のタイミングにおけるＬＳＩの内部状態を示すデータがメインスキャンチェーン配線１５を介してスキャンアウト端子１８から出力されデバッグツール１に供給される。また，メインスキャンチェーン配線１５を介してメインＦＦのラッチ信号をスキャンアウトしている間，スイッチ５５，６０はサブＦＦ５４，５９のラッチ信号を選択しているため，内部回路５０は，組合せ回路５１，５６とサブＦＦ５４，５９とを用いて通常動作を継続することができる。
【００３５】
以上のように，図４では，メインスキャンチェーン配線１５を介してスナップショット信号１０７のタイミングでのＬＳＩの内部状態であるメインＦＦ５３，５４のラッチ信号が読み出されるため，図１及び図２のＳＳ用スキャンチェーン配線１６に相当する配線が不要となる。また，上述のとおり図２では読み出されたサブＦＦのデータが正しくないリスクがある。しかし，メインＦＦ５３，５８は通常動作で正常に動作することが検証されており，図４ではメインＦＦを使ってデータを読み出すためこのようなリスクは生じない。
【００３６】
第１の実施の形態では，内部回路５０の動作は４つの動作モード（通常動作モード，スナップショットモード，スキャンアウトモード，リターンモード）に分けられる。図５は，第１の実施の形態における動作モードを示す図である。図５（１）はＳＳ用スキャンモード信号１０１と動作モードの切替条件と切替後の動作モード，図５（２）はモード制御回路６１の出力信号を示す。
【００３７】
通常動作モードでは，内部回路５０は組合せ回路５１，５６とメインＦＦ５３，５８とを用いて通常動作を行う。すなわち，この動作モードでは，上述のとおり，スイッチ５２，５７は，スナップショット信号１０７により組合せ回路５１，５６の出力信号（スイッチ「０」側）を選択し，スイッチ５５，６０はフリップフロップ選択信号によりメインＦＦ５３，５８のラッチ信号（スイッチ「０側」）を選択する。
【００３８】
図５（１）に示すように，通常動作モードＩＤＬＥでは，２ビットのＳＳ用スキャンモード信号１０１が「００」に対応する。また，図５（２）に示すように，通常動作モードＩＤＬＥでは，モード制御回路６１は，入力されたクロック信号１０４，テストモード信号１０３をそれぞれメインクロック信号１０５，スナップショット信号１０７として出力する。また，モード制御回路６１は，出力するサブクロック信号１０６，フリップフロップ選択信号１０８をＬレベルにする。すなわち，通常動作モードＩＤＬＥでは，サブクロック信号１０６を入力するサブＦＦ５４，５９は組合せ回路５１，５９の出力信号をラッチしない。また，フリップフロップ選択信号１０８を入力するスイッチ５５，６０はメインＦＦ５３，５８のラッチ信号（スイッチ「０」側）を選択する。
【００３９】
図５（１）に戻り，通常動作モードＩＤＬＥでは，スナップショット開始信号がＬレベルの間，内部回路５０は通常動作モードＩＤＬＥを継続する。しかし，任意のタイミングでスナップショット開始信号がＨレベルになると，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「００」から「１０」に切り替え，動作モードはスナップショットモードＳＳに切り替わる。
【００４０】
スナップショットモードＳＳは，通常動作モードのときにＨレベルのスナップショット開始信号が入力されてＳＳ用スキャンモード信号１０１が「００」から「１０」に切り替えられてから，後述するスキャンアウトモードＳＯＵＴの動作が開始されるまでの内部回路５０の過渡的な動作である。
【００４１】
図５（１）に示すように，スナップショットモードＳＳではクロック信号１０４の１クロック経過後に，スキャンアウトモードＳＯＵＴに切り替わる。すなわち，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「１０」から「１１」に切り替える。また，図５（２）に示すように，スナップショットモードＳＳでは，モード制御回路６１は，スナップショット信号１０７をＨレベルにし，信号１０５，１０６，１０８は通常動作モードと同様に保つ。これにより，スナップショット信号１０７を入力するスイッチ５２，５７は，メインスキャンチェーン配線１５の信号（スイッチ「１」側）を選択する。
【００４２】
スキャンアウトモードＳＯＵＴでは，内部回路５０は組合せ回路５１，５６とサブＦＦ５４，５９とを用いて通常動作を行う。すなわち，この動作モードでは，上述のとおり，スイッチ５２，５７は，Ｈレベルのスナップショット信号１０７によりメインスキャンチェーン配線１５の信号（スイッチ「１」側）を選択し，スイッチ５５，６０はＨレベルのフリップフロップ選択信号によりサブＦＦ５４，５９のラッチ信号（スイッチ「１」側）を選択する。
【００４３】
図５（１）に示すように，スキャンアウトモードＳＯＵＴでは，テストモード信号１０３がＨレベルの間，内部回路５０はスキャンアウトモードＳＯＵＴの動作を継続する。
【００４４】
一方，任意のタイミングでテストモード信号１０３がＬレベルになると，動作モードはリターンモードに切り替わる。すなわち，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「１１」から「０１」に切り替える。
【００４５】
スキャンアウトモードＳＯＵＴでは，モード制御回路６１は，図５（２）に示すとおり，入力されたＳＳ用スキャンクロック信号１０２，クロック信号１０４をそれぞれメインクロック信号１０５，サブクロック信号１０６として出力し，出力するスナップショット信号１０７，フリップフロップ選択信号１０８をＨレベルにする。これにより，フリップフロップ選択信号１０８を入力するスイッチ５５，６０は，サブＦＦ５４，５９のラッチ信号（スイッチ「１」側）を選択する。すなわち，スキャンアウトモードＳＯＵＴでは，内部回路５０は組合せ回路５１，５６とサブＦＦ５４，５９とで通常動作を継続し，メインスキャンチェーン配線１５を介してメインＦＦ５３，５８のラッチ信号がスキャンアウトされ読み出される。
【００４６】
リターンモードＲＥＴは，上述のようにＳＳ用スキャンモード信号１０１が「１１」から「０１」に切り替えられてから，通常動作モードＩＤＬＥの動作が開始されるまでの内部回路５０の過渡的な動作を表す。
【００４７】
図５（１）に示すように，リターンモードＲＥＴは，クロック信号１０４の１クロック経過後に，通常動作モードＩＤＬＥに切り替わる。すなわち，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「０１」から「００」に切り替える。また，モード制御回路は，スナップショット信号１０７をＬレベルにし，信号１０５，１０６，１０８に対してはスキャンアウトモードの状態を継続する。
【００４８】
このようにして，内部回路５０の動作モードは，図５（１）に示す切替条件を満たした場合に，通常動作モード，スナップショットモード，スキャンアウトモード，リターンモードの順に切り替わる。
【００４９】
これらの４つの動作モードにおける内部回路５０の具体的な動作について，図６〜図１０を用いて説明する。図６は，第１の実施の形態におけるモード制御回路から出力される信号の波形図である。内部回路５０には，図示しない1つのメインＦＦ（以下，前段メインＦＦと記す。）とこれに対応するサブＦＦ（以下，前段サブＦＦと記す。）がメインＦＦ５３の前段に，さらにその前段に1つのメインＦＦ（以下，前々段メインＦＦと記す。）とこれに対応するサブＦＦ（以下，前々段サブＦＦと記す。）があるものとし，メインスキャンチェーン配線１５に接続するメインＦＦはこれら４個のメインＦＦとする。
【００５０】
［通常動作モード（時間Ｔ１〜Ｔ２）］
時間Ｔ１では，ＳＳ用スキャンモード信号１０１は「００」であり，内部回路５０の動作は通常動作モードＩＤＬＥである。
【００５１】
図７は，第１の実施の形態における通常動作モードの動作状態を示す図である。通常動作モードでは，モード制御回路６１は，メインクロック信号１０５としてクロック信号１０４を出力し，サブクロック信号１０６，スナップショット信号１０７，フリップフロップ選択信号１０８をＬレベルにする。
【００５２】
そして，図７（１）の実線で示すように，スイッチ５２，５７は，Ｌレベルのスナップショット信号１０７により組合せ回路５１，５６の出力信号（スイッチ「０」側）を選択し，スイッチ５５，６０は，Ｌレベルのフリップフロップ選択信号１０８によりメインＦＦ５３，５８のラッチ信号を選択する。
【００５３】
これにより，メインＦＦ５３，５８は，メインクロック信号１０５の立ち上がりに応答して，時間Ｔ１より１クロック前における組合せ回路５１，５６の出力信号「１」，「Ａ」をラッチする。これらのラッチ信号は，さらに後段の組合せ回路５６等に入力する。そして，組合せ回路５１，５６は，前段メインＦＦ，メインＦＦ５３のラッチ信号を入力して内部のロジック回路により出力信号「２」，「Ｂ」を出力する。そして，組合せ回路５１，５６の出力信号「２」，「Ｂ」は，スイッチ５２，５７を介してメインＦＦ５３，５８の入力端子まで届けられる。
【００５４】
このようにして，時間Ｔ１では，内部回路５０は組合せ回路５１，５６とメインＦＦ５３，５８を用いて通常動作を行う。
【００５５】
時間Ｔ２では，ＬＳＩ４の内部状態を読み出すために，クロック信号１０４の１周期の間だけ，Ｈレベルのスナップショット開始信号がＬＳＩ４に入力される。また，内部回路５０はＴ１と同様にして通常動作を行う。組合せ回路５１，５６の出力信号「３」，「Ｃ」は，スイッチ５２，５７を介してメインＦＦ５３，５８の入力端子まで届けられる。
【００５６】
［スナップショットモード（時間Ｔ３）］
時間Ｔ３では，スキャン制御部１４は，Ｈレベルのスナップショット開始信号に応答して，ＳＳ用スキャンモード信号１０１を「００」から「１０」に切り替え，内部回路５０の動作モードは通常動作モードからスナップショットモードに切り替わる。
【００５７】
図８は，第１の実施の形態におけるスナップショットモードの動作状態を示す図である。スナップショットモードでは，モード制御回路６１は，クロック信号１０４をメインクロック信号１０５として出力し，スナップショット信号１０７をＨレベルにする。また，モード制御回路６１は，サブクロック信号１０６とフリップフロップ選択信号１０８をＬレベルに保つ。
【００５８】
これにより，図８（１）の実線に示すように，メインＦＦ５３，５８は，メインクロック信号１０５の立ち上がりに応答して，時間Ｔ２における組合せ回路５１，５６の出力信号「３」，「Ｃ」をラッチする。スイッチ５５，６０が「０」側を選択しているので，これらの信号は，さらに，後段の組合せ回路５６等へ入力する。そして，組合せ回路５１，５６は，前段メインＦＦ，メインＦＦ５３のラッチ信号を入力して出力信号「４」，「Ｄ」を出力し，これらの出力信号「４」，「Ｄ」は，サブＦＦ５４，５９の入力端子まで届けられる。それと共に，図８（２）の実線に示すように，スイッチ５２，５７は，Ｈレベルのスナップショット信号１０７により，メインスキャンチェーン配線１５の信号（スイッチ「１」側）に切り替える。
【００５９】
このように通常動作モードからスナップショットモードへ切り替えると，メインＦＦ５３，５８のラッチ後にスイッチ５２，５７の切替が行われる。これにより，メインＦＦ５３，５８のラッチ信号がスイッチ５５，６０を介して後段の組合せ回路５６等へ入力し，組合せ回路５１，５６は前段メインＦＦ，メインＦＦ５３のラッチ信号を入力して出力信号「４」，「０」を出力する。
【００６０】
［スキャンアウトモード（時間Ｔ４〜Ｔ８）］
時間Ｔ３からクロック信号１０４の１クロック経過後の時間Ｔ４で，内部回路５０の動作モードはスナップショットモードからスキャンアウトモードに切り替わる。すなわち，スキャン制御部１４がＳＳ用スキャンモード信号１０１を「１０」から「１１」に切り替える。
【００６１】
時間Ｔ４で，スキャン制御部１４は，周期がクロック信号１０４の２倍であるＳＳ用スキャンクロック信号１０２を，３周期生成する。また，時間Ｔ４からクロック信号１０４の４周期の間，Ｈレベルのテストモード信号１０３がテストモードコントローラ８から出力される。
【００６２】
図９は，第１の実施の形態におけるスキャンアウトモードの動作状態を示す図である。スキャンアウトモードでは，モード制御回路６１は，ＳＳ用スキャンクロック信号１０２をメインクロック信号１０５として出力し，クロック信号１０４をサブクロック信号１０６として出力する。また，モード制御回路６１は，出力するスナップショット信号１０７，フリップフロップ選択信号１０８をＨレベルにする。
【００６３】
これにより，図９（１）の実線で示すように，サブＦＦ５４，５９は，サブクロック信号１０６に同期して，時間Ｔ３における組合せ回路５１，５６の出力信号「４」，「Ｄ」をラッチする。それと共に，図９（２）の実線で示すように，スイッチ５５，６０は，Ｈレベルのフリップフロップ選択信号１０８により，サブＦＦ５４，５９のラッチ信号（スイッチ「１」側）に切り替える。これにより，サブＦＦ５４，５９のラッチ信号「４」，「０」が後段の組合せ回路５６等に入力する。そして，組合せ回路５１，５６は，前段サブＦＦ，サブＦＦ５４のラッチ信号を入力して出力信号「５」，「Ｅ」を出力し，これらの出力信号「５」，「Ｅ」は，サブＦＦ５４，５９の入力端子まで届けられる。
【００６４】
このようにして，スナップショットモードからスキャンアウトモードに切り替わると，サブＦＦ５４，５９のラッチ後に，スイッチ５５，６０の切替が行われる。これにより，サブＦＦ５４，５９のラッチ信号が後段の組合せ回路５６等に入力され，組合せ回路５１，５６は前段サブＦＦ，サブＦＦ５４のラッチ信号を入力し出力信号「５」，「Ｅ」を出力する。
【００６５】
一方，図９（１），（２）に示すように，スイッチ５２，５７は，Ｈレベルのスナップショット信号１０７により，メインスキャンチェーン配線１５の信号（スイッチ「１」側）を選択する。これにより，メインＦＦ５３は，メインクロック信号１０５に同期し，メインスキャンチェーン配線１５を介して，時間Ｔ３における前段メインＦＦのラッチ信号「Ｆ２」をラッチする。また，メインＦＦ５８は，メインクロック信号１０５に同期し，メインスキャンチェーン配線１５を介して，時間Ｔ３におけるメインＦＦ５３のラッチ信号「３」をラッチする。そして，スキャンアウト端子１８からは，時間Ｔ３におけるメインＦＦ５８のラッチ信号「Ｃ」が出力される。すなわち，時間Ｔ４より，メインスキャンチェーン端子１５を介して，メインＦＦからデータの読み出しが開始される。
【００６６】
時間Ｔ５では，図９（２）に示すように，サブＦＦ５４，５９は，サブクロック信号１０６の立ち上がりに応答して，時間Ｔ４における組合せ回路５１，５６の出力信号「５」，「Ｅ」をラッチし，これらのラッチ信号はさらに後段の組合せ回路５６等に入力する。そして，組合せ回路５１，５６は前段サブＦＦ，サブＦＦ５４のラッチ信号を入力して出力信号「６」，「Ｆ」を出力し，これらの出力信号「６」，「Ｆ」は，サブＦＦ５４，５９の入力端子まで届けられる。
【００６７】
そして，時間Ｔ６からＴ８では，内部回路５０は，組合せ回路５１，５６とサブＦＦ５４，５９とを用いて通常動作を継続する。さらに，時間Ｔ６，Ｔ８では，各メインＦＦがメインクロック信号の立ち上がりに応答して前段のメインＦＦのラッチ信号をラッチすることで，メインスキャンチェーン端子１５を介して，メインＦＦからデータが読み出される。
【００６８】
［リターンモード（時間Ｔ９）］
時間Ｔ９に，スキャン制御部１４は，時間Ｔ８のテストモード信号１０３の立ち下がりに応答して，ＳＳ用スキャンモード信号１０１を「１１」から「０１」にする。すなわち，内部回路５０の動作モードはスキャンアウトモードからリターンモードに切り替わる。
【００６９】
図１０は，第１の実施の形態におけるリターンモードの動作状態を示す図である。リターンモードでは，モード制御回路６１は，ＳＳ用スキャンクロック信号１０２をメインクロック信号１０５として出力し，クロック信号１０４をサブクロック信号１０６として出力する。また，モード制御回路６１は，スナップショット信号１０７をＬレベルにして，フリップフロップ選択信号をＨレベルに維持する。
【００７０】
これにより，図１０（１）の実線で示すように，サブＦＦ５４，５９は，時間Ｔ９のサブクロック信号１０６の立ち上がりに応答して，時間Ｔ８における組合せ回路５１，５６の出力信号「９」，「Ｉ」をラッチし，これらのラッチ信号はさらに後段の組合せ回路５６等に入力する。そして，組合せ回路５１，５６は前段サブＦＦ，サブＦＦ５4のラッチ信号を入力して出力信号「１０」，「Ｊ」を出力し，これらの出力信号「１０」，「Ｊ」は，サブＦＦ５４，５９の入力端子まで届けられる。それと共に，図１０（２）に示すように，スイッチ５２，５７は，Ｌレベルのスナップショット信号１０７により，組合せ回路５１，５６の出力信号（スイッチ「０」側）を選択する。
【００７１】
このように，リターンモードでは，サブＦＦのラッチ後にスイッチ５２，５７の切替が行われる。これにより，サブＦＦ５４，５９のラッチ信号「９」，「Ｉ」は後段の組合せ回路５６などに入力し，組合せ回路５１，５６は前段サブＦＦ，サブＦＦ５４のラッチ信号を入力して出力信号「１０」，「Ｊ」を出力する。
【００７２】
［通常動作モード（時間Ｔ１０〜Ｔ１２）］
時間Ｔ９からクロック信号１０４の１クロック経過後の時間Ｔ１０で，動作モードがリターンモードから通常動作モードに切り替わる。すなわち，スキャン制御部１４がＳＳ用スキャンモード信号１０１を「０１」から「００」にする。
【００７３】
通常動作モードでは，モード制御回路６１は，クロック信号１０４をメインクロック信号１０５として出力し，Ｌレベルのテストモード信号１０３をスナップショット信号１０７として出力する。また，モード制御回路６１は，サブクロック信号１０６，フリップフロップ選択信号１０８をＬレベルにする。
【００７４】
これにより，図７（２）に示すように，メインＦＦ５３，５８は，時間Ｔ９における組合せ回路の出力信号「１０」，「Ｊ」をラッチする。そして，これらのラッチ信号は，後段の組合せ回路５６等に入力する。組合せ回路５１，５６は前段メインＦＦ，メインＦＦ５３のラッチ信号を入力して出力信号「１１」，「Ｋ」を出力する。さらに，メインスキャンチェーン配線１５を介して，時間Ｔ３における前々段メインＦＦのラッチ信号「Ｆ１」が出力される。そして，図７（１）に示すように，スイッチ５５，６０は，Ｌレベルにフリップフロップ選択信号１０８により，メインＦＦ５３，５８のラッチ信号（スイッチ「０」側）を選択する。これにより，組合せ回路５１，５６の出力信号「１１」，「Ｋ」は，メインＦＦ５３，５８の入力端子まで届けられる。
【００７５】
このように，リターンモードから通常動作モードに切り替えると，メインＦＦ５３，５６のラッチ後にスイッチ５５，６０の切替が行われる。これにより，サブＦＦ５４，５９のラッチ信号「１０」，「Ｊ」は後段の組合せ回路５６などに入力し，組合せ回路５１，５６は前段サブＦＦ，サブＦＦ５４のラッチ信号を入力して出力信号「１１」，「Ｋ」を出力する。時間Ｔ１１以降は，内部回路５０は，時間Ｔ１と同様に通常動作を行う。
【００７６】
上記４つの動作モードは，任意のスナップショットタイミングでの内部状態をスキャンアウトする毎に繰り返される。
【００７７】
以上のように，内部回路５０は，通常動作モード とスナップショットモードでは，組合せ回路５１，５６とメインＦＦ５３，５８とを用いて通常動作を継続する。また，内部回路５０は，スキャンアウトモードとリターンモードでは，組合せ回路５１，５６とサブＦＦ５４，５９とを用いて通常動作を継続しながら，ＬＳＩの内部状態を示すデータをメインＦＦ５３，５８から読み出す。これにより，図１及び図２のＳＳ用スキャンチェーン配線１６が不要となるだけでなく，通常動作を継続しながらメインＦＦからデータを読み出すことができる。
【００７８】
なお，第１の実施の形態では，組合せ回路５１とスイッチ５２，５５とメインＦＦ５３とサブＦＦ５４とを有するスキャンユニットと，組合せ回路５６とスイッチ５７，６０とメインＦＦ５８とサブＦＦ５９とを有するスキャンユニットとを有するスキャンユニットの２つのユニットを用いて内部回路５０の動作を説明したが，スキャンユニットは３個以上でもよい。また，内部回路５０が有する複数のメインＦＦのうち１個だけをメインスキャンチェーン配線１５に接続し，このメインＦＦに対応するサブＦＦを設けて，スキャンユニットを1個にしてもよい。
【００７９】
さらに，モード制御回路６１は，周辺機能回路１２，メモリインターフェース１０，ＣＰＵ７内の各内部回路５０に設けられているが，ＬＳＩ４内でモード制御回路６１を１個設けて各内部回路５０に信号１０５〜１０８を供給してもよい。
【００８０】
［第２の実施の形態］
第１の実施の形態では，通常動作モード時，内部回路５０はメインＦＦ５３，５６を用いて通常動作を行う。しかし，メインＦＦ５３，５８が故障すると，内部回路５０は通常動作を継続することができなくなる。そこで，第２の実施の形態では，このような場合，メインＦＦ５３，５８の代わりにサブＦＦ５４，５９を用いて通常動作を継続する。
【００８１】
図１１は，第２の実施の形態における内部回路の構成を示す図である。図１１の構成は，図３のＬＳＩ４が有する周辺機能回路１２，メモリインターフェース１０，ＣＰＵ７内の一部の内部回路２００を示す。
【００８２】
内部回路２００は，第１の実施の形態の４つの動作モード（通常動作モード，スナップショットモード，スキャンアウトモード，リターンモード）に加えて，代替モードを有する。そして，メインＦＦ５３，５８の故障により内部回路２００が通常動作を行えないときは，動作モードは代替モードに切り替わる。また，内部回路２００は，第１の実施の形態の図４の内部回路５０のと同様な構成であるが，さらに代替モードであるか否かを記憶する不揮発性メモリ２０２を有しており，後述するようにモード制御回路６１はメモリ２０１から代替モード信号２０１をラッチし，サブクロック信号１０６とフリップフロップ選択信号１０８とを出力する。
【００８３】
内部回路２００が４つの動作モード（通常動作モード，スナップショットモード，スキャンアウトモード，リターンモード）のいずれかで動作しているとき，メモリ２０２は非代替モード状態“１”となっている。そして，デバッグ等試験によりメインＦＦ５３，５８の故障が判明した場合，ユーザによりメモリ２０２は代替モード状態“０”に書き換えられ，動作モードは代替モードに切り替わる。
【００８４】
モード制御回路６１は，代替モード状態“０”のメモリ２０２から出力される代替モード信号２０１に応答して，サブクロック信号１０６とＨレベルのフリップフロップ信号１０８とを出力する。これにより，サブＦＦ５４，５９は，サブクロック信号１０６に同期して組合せ回路５１，５６の出力信号をラッチする。それと共に，スイッチ５５，６０はサブＦＦ５４，５９のラッチ信号（スイッチ「１」側）を選択する。そして，サブＦＦ５４，５９のラッチ信号は後段の組合せ回路５６等に入力し，組合せ回路５１，５６は前段サブＦＦ，サブＦＦ５４のラッチ信号を入力する。これ以降もスイッチ５５，６０はサブＦＦ５４，５９のラッチ信号（スイッチ「１」側）の選択を維持し，内部回路２００は，組合せ回路５１，５６とサブＦＦ５４，５９とを用いて代替モードで通常動作を継続する。
【００８５】
このように，通常動作時にメインＦＦ５３，５８が故障しても，スイッチ５５，６０がフリップフロップ選択信号１０８に応答してメインＦＦ５３，５８のラッチ信号からサブＦ５４，５９のラッチ信号へ切り替わることで，内部回路２００は組合せ回路５１，５６とサブＦＦ５４，５９とを用いて通常動作を継続することができる。つまり，サブＦＦ５４，５９は，メインＦＦ５３，５８の代替としての使用が可能である。したがって，サブＦＦ５４，５９はスキャンアウトの間の通常動作に利用されることに加えて，メインＦＦ５３，５８の故障時にメインＦＦ５３，５８の代替手段としても利用することができるため，サブＦＦ５４，５９を内部回路２００に設けることは単純なコストアップにはならない。
【００８６】
［第３の実施の形態］
上述のスキャンアウトモードや代替モードでは，内部回路５０，２００はサブＦＦ５４，５９を用いて通常動作を継続する。しかし，サブＦＦ５４，５９に不具合があると内部回路５０，２００は通常動作をできなくなる。そこで，第３の実施の形態では，内部回路５０，２００の通常動作の前に，後述するサブＦＦ５４，５９用のスキャンチェーン配線を使いサブＦＦ５４，５９のスキャンテストが行われる（以下，スキャンテストモードと呼ぶ。）。
【００８７】
図１２は，第３の実施の形態における内部回路の構成を示す図である。図１２の構成は，図３のＬＳＩ４が有する周辺機能回路１２，メモリインターフェース１０，ＣＰＵ７内の一部の内部回路３００を示す。
【００８８】
内部回路３００は，図４の内部回路５０又は図１１の内部回路２００に，スイッチ３０１，３０２と，サブＦＦ５４，５９用のスキャンチェーン配線であるサブスキャンチェーン配線３０３とが追加された構成となっている。
【００８９】
サブスキャンチェーン配線３０３は，図１のＳＳ用スキャンチェーン配線１６と同様，ＬＳＩ４内のサブＦＦを接続する。また，サブスキャンチェーン配線３０３は，デバッグツール１より外部端子２１を介して，スキャンテスト用の入力信号であるサブスキャンイン信号３０４を入力され，外部端子２２を介してサブＦＦ５４，５９のデータであるサブスキャンアウト信号３０５を出力する。
【００９０】
スイッチ３０１，３０２は後述するサブスキャンモード信号３０４により，組合せ回路５１，５６の出力信号とサブスキャンチェーン配線３０３の信号とのいずれかを選択する。
【００９１】
スキャンテストモードでは，まず，デバッグツール１よりプレテストモード信号３００がモード制御回路６１に入力され，さらに，デバッグツール１よりサブスキャンイン信号３０４がサブスキャンチェーン配線３０３に入力される。スキャンイン信号モード制御回路６１は，プレテストモード信号３００に応答して，サブクロック信号１０６とＨレベルのサブスキャンモード信号３０４を出力する。そして，スイッチ３０１，３０２は，Ｈレベルのサブスキャンモード信号３０４によりサブスキャンチェーン配線３０３の信号（スイッチ「１」側）を選択する。
【００９２】
これにより，サブＦＦ５４は，サブクロック信号１０６の立ち上がりに応答して，サブスキャンイン信号３０４をラッチする。そして，サブＦＦ５９は，次のサブクロック信号１０６の立ち上がりに応答してこのサブＦＦ５４のラッチ信号をラッチし，それと共にサブＦＦ５４は再びサブスキャンイン信号３０４をラッチする。このように，サブＦＦ５４，５９はサブクロック信号に同期してサブスキャンイン信号３０４をラッチし，サブＦＦ５４，５９に入力データが順に設定される。一方，外部端子２３からは，サブクロック信号に同期して，サブＦＦ５４，５９のデータであるスキャンアウト信号３０５として出力される。そして，入力したサブスキャンイン信号３０４と出力されるサブスキャンイン信号３０５とが一致すれば，サブＦＦ５４，５９には故障が無いと判断することができる。
【００９３】
上記スキャンテストモードによりサブＦＦ５４，５９に不具合がないことを確認できれば，内部回路３００は，第１及び第２の実施の形態と同様に，各動作モードにおいて，メインＦＦ５３，５８又はサブＦＦ５４，５９を用いて通常動作を継続することができる。
【００９４】
［第４の実施の形態］
第１，第２及び第３の実施の形態において，内部回路５０，２００，３００がメモリＩ／Ｆ１０であり，組合せ回路５１又は５６がＲＡＭ等のメモリ１１である場合，メモリＩ／Ｆ１０の通常動作中，すなわちＬＳＩ４によるメモリ１１の読み出し動作の間に，メモリから読み出されメインＦＦでラッチされたデータをスキャンアウトすることは可能である。しかし，スキャンアウトされたメモリのデータが所望のアドレスに対応しているか否かの判断は困難である。なぜなら，第１，第２及び第３の実施の形態では，ＬＳＩ４によるメモリ１１の読み出し動作の間にどのタイミングで所望のアドレスのデータの読み込み動作が行われているのかを把握できず，スキャンアウトモードに切り替えるべきタイミングが分からないためである。つまり，第１，第２及び第３の実施の形態では，ＬＳＩ４によるメモリ１１の読み出し動作の間にメモリから読み出されたデータをスキャンアウトをすることはできても，所望のアドレスのデータをスキャンアウトすることは困難である。
【００９５】
そこで，第４の実施の形態では，ＬＳＩ４によるメモリ１１の読み出し動作の間に所望のアドレスのデータをメモリから読み出してスキャンアウトをすることができるメモリＩ/Ｆ１０について，説明する。
【００９６】
第４の実施の形態において，ＬＳＩ４は，後述する図１３の構成を有する。ＬＳＩ４はメモリ１１への読み出し動作を行いながら，後述するように，内部動作で所望のアドレスがアクセスされたタイミングで通常動作モードからスキャンアウトモードに切り替えて，所望のアドレスのデータをスキャンアウトする。その結果，ＬＳＩ４はメモリ１１の読み出しを継続しながら，所望のアドレスのデータをスキャンアウトすることができる。
【００９７】
第４の実施の形態において，メモリＩ/Ｆ１０は，図１４で後述するように，アドレス用のメインＦＦ及びサブＦＦと，データ用のメインＦＦ及びサブＦＦとを有する。アドレス用メインＦＦ及びデータ用メインＦＦはスキャンチェーンに含まれている。
【００９８】
そして，メモリＩ/Ｆ１０は，第１乃至第３の実施の形態と同様に通常動作モードのときはアドレス用及びデータ用メインＦＦを用いて通常動作をし，スキャンアウトモードのときはアドレス用及びデータ用サブＦＦを用いて通常動作を継続しながらアドレス用及びデータ用メインＦＦのデータをスキャンアウトする。
【００９９】
第１乃至第３の実施の形態と異なる点として，第４の実施の形態では，データ用メインＦＦが所望のアドレスのデータをラッチするタイミングでメモリＩ／Ｆ１０の動作が通常動作モードからスキャンアウトモードに切り替わるように，この切替動作の前にアドレス用サブＦＦが予め所望のアドレス（以下，監視アドレス信号と呼ぶ。）をラッチするセットモードが設けられている。
【０１００】
そして，通常動作モードの時にアドレス用メインＦＦが監視アドレス信号と等しいアドレス信号をラッチすると，通常動作モードからスキャンアウトモードへの切替動作が行われる。この結果，アドレス用メインＦＦにラッチされた監視アドレス信号に対応するメモリのデータが，スキャンアウトモード時にスキャンアウトされる。これにより，ＬＳＩ４はメモリ１１の読み出し動作を継続しながら，所望のアドレスのデータをスキャンアウトすることができる。
【０１０１】
以下，第４の実施の形態について詳細を説明する。
【０１０２】
図１３は，第４の実施の形態におけるＬＳＩの構成図である。図１３のＬＳＩ４は，図３のＬＳＩ４と同様の構成を有する。図３のＬＳＩ４と共通する部分には，同じ符号が付されている。
【０１０３】
ただし，図１３では，スキャン制御部１４は，スキャンイン端子１７を介してスキャンイン信号を入力する。そして，スキャン制御部１４は，後述するように，スキャイン信号とスナップショット開始信号に基づいて，通常動作モードからセットモードへの切り替え又はセットモードから通常動作モードへの切り替えを行う。また，スキャン制御部１４は，セットモードから通常動作モードへの切り替えの際に，アクセス監視信号４０１をメモリＩ/Ｆ１０に出力する。さらに，スキャン制御部１４は，メモリＩ／Ｆ１０から出力された内部スナップショット開始信号４０２を入力し，後述するように内部スナップショット開始信号４０２に基づいて通常動作モードからスキャンアウトモードへの切り替えを開始する。
【０１０４】
図１４は，第４の実施の形態におけるメモリＩ／Ｆの構成を示す図である。
【０１０５】
メインＩ／Ｆ１０の各モード（通常動作モード，スナップショットモード，スキャンアウトモード，リターンモード，セットモード）の動作は，モード制御回路８１が制御する。モード制御回路８１は，第１乃至第３の実施の形態と同様に，ＳＳ用スキャンモード信号１０１とＳＳ用スキャンクロック信号１０２とテストモード信号１０３とクロック信号１０４とを入力し，メインクロック信号１０５とサブクロック信号１０６とスナップショット信号１０７とフリップフロップ選択信号１０８とを出力する。さらに，モード制御回路８１は，アドレスセット信号４０３を出力する。
【０１０６】
また，メモリＩ／Ｆ１０は，バスからのアドレス信号ＡＳとスキャンチェーン配線１５とのいずれかを選択するスイッチ７０と，アドレス用メインＦＦ７１と，データ信号ＤＳとスキャンチェーン配線１５とのいずれかを選択するスイッチ７７と，データ用メインＦＦ７８とを有する。
【０１０７】
通常動作モードのとき，バス１３からのアドレス信号ＡＳに対応したデータ信号ＤＳがメモリ１１からバス１３へ出力されるように，スイッチ７０，７７は，スナップショット信号１０７に基づいて，それぞれアドレス信号ＡＳ，データ信号ＤＳを選択する（「０」側）。その結果，アドレス用メインＦＦ７１はメインクロック信号１０５に同期してバス１３からのアドレス信号ＡＳをラッチしてメモリ１１に出力し，データ用メインＦＦ７８はメインクロック信号１０５に同期してメモリ１１からのデータ信号ＤＳをラッチしてバス１３に出力する。
【０１０８】
スキャンアウトモードのとき，アドレス用メインＦＦ７１のラッチ信号及びデータ用メインＦＦ７８のラッチ信号がスキャンチェーン配線１５を介してスキャンアウトされるよう，スイッチ７０，７７は，スナップショット信号１０７に基づいて，共にスキャンチェーン配線１５を選択する（「１」側）。その結果，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８がメインクロック信号１０５に同期してそれぞれ前段のメインＦＦのラッチ信号をラッチすることで，各メインＦＦのラッチ信号がスキャンチェーン配線１５を介してスキャンアウト端子１８から出力される。
【０１０９】
さらに，メインＩ／Ｆ１０は，スキャンアウトモードの間も通常動作を継続するために，アドレス用サブＦＦ７３と，データ用サブＦＦ７９と，アドレス用メインＦＦ７１とアドレス用サブＦＦ７３とのいずれかのラッチ信号を選択しメモリ１１に出力するスイッチ７４と，データ用メインＦＦ７８とデータ用サブＦＦ７９とのいずれかのラッチ信号を選択しバス１３に出力するスイッチ８０とを有する。
【０１１０】
通常動作モードの時，スイッチ７４，８０は，フリップフロップ選択信号１０８に基づいて，それぞれアドレス用メインＦＦ７１，データ用メインＦＦ７８を選択する（「０」側）。その結果，バス１３からのアドレス信号ＡＳをラッチしたアドレス用メインＦＦ７１のラッチ信号は，スイッチ７４を介してメモリ１１に出力される。また，メモリ１１から出力されたデータ信号ＤＳをラッチしたデータ用メインＦＦ７８のラッチ信号は，スイッチ８０を介してバス１３に出力される。
【０１１１】
スキャンアウトモードの時，スイッチ７４，８０は，フリップフロップ選択信号１０８に基づいて，それぞれアドレス用サブＦＦ７３，データ用サブＦＦ７９選択する（「１」側）。その結果，バス１３からのアドレス信号ＡＳをラッチしたアドレス用サブＦＦ７３のラッチ信号は，スイッチ７４を介してメモリ１１に出力される。また，メモリ１１から出力されたデータ信号ＤＳをラッチしたデータ用サブＦＦ７９のラッチ信号は，スイッチ８０を介してバス１３に出力される。
【０１１２】
バス１３とアドレス用サブＦＦ７３との間には，後述するセットモードの時にアドレス用サブＦＦ７３が監視アドレス信号をラッチするように，アドレス信号ＡＳとスキャンチェーン配線１５とのいずれかを選択するスイッチ７２が設けられている。スイッチ７２は，セットモード以外の動作モードの時はアドレスセット信号４０３に基づいてアドレス信号ＡＳを選択し（「０」側），セットモードの時はアドレスセット信号４０３に基づいてスキャンチェーン配線１５を選択する（「１」側）。
【０１１３】
そして，通常動作モード時のアドレス用メインＦＦ７１のラッチ信号とアドレス用サブＦＦ７３がラッチした監視アドレス信号とを比較するために，比較器７５が設けられている。比較器７５は，アクセス監視信号４０１に基づいて活性状態又は非活性状態となり，活性状態のときにはアドレス用メインＦＦ７１のラッチ信号と監視アドレス信号とを比較する。
【０１１４】
アドレス用メインＦＦ７１のラッチ信号と監視アドレス信号とが等しいとき，比較器７８はＨレベルの内部スナップショット開始信号４０２を，メインクロック信号１０５の１周期だけ出力する。スキャン制御部１４は，Ｈレベルの内部スナップショット開始信号４０２に基づいて，通常動作モードからスキャンアウトモードへの切り替え動作を開始する。
【０１１５】
なお，アドレス用メインＦＦ７１，アドレス用サブＦＦ７３，データ用メインＦＦ７８，及びデータ用サブＦＦ７９は，信号のビット数に応じた数のフリップフロップを有する。スイッチ７０，７２，７４，７７，８０も同様に信号のビット数に応じた数のスイッチを有する。
【０１１６】
図１５は，第４の実施の形態におけるアドレス用メインＦＦの構成を示す図である。図１５には，バス１３からｎビットのアドレス信号ＡＳが伝送される場合における，スイッチ７０及びアドレス用メインＦＦ７１の構成が示されている。
【０１１７】
スイッチ７０は，ビット毎に選択を行うスイッチＡＭＳ０〜ＡＭＳｎ−１を有し，スナップショット信号１０７に基づいて，ｎビットのアドレス信号ＡＳ（ＡＳ[０]〜ＡＳ[ｎ−１]）又はスキャンチェーン配線１５の信号を選択し，出力する。
【０１１８】
アドレス用メインＦＦ７１は，スキャンチェーン配線１５を介してそれぞれ後段のフリップフロップと接続するフリップフロップＡＭＦ０〜ＡＭＦｎ−１を有する。フリップフロップＡＭＦ０〜ＡＭＦｎ−１は，対応するスイッチＡＭＳ０〜ＡＭＳｎ−１の出力信号を，メインクロック信号１０５に同期してラッチする。
【０１１９】
したがって，スナップショット信号１０７がＬレベルのとき（通常動作モード，リターンモード，セットモード），スイッチＡＭＳ０〜ＡＭＳｎ−１はアドレス信号ＡＳを選択するため，フリップフロップＡＭＦ０〜ＡＭＦｎ−１は，メインクロック信号１０５に同期してｎビットのアドレス信号ＡＳをラッチすることができる。
【０１２０】
また，スナップショット信号１０７がＨレベルのとき（スナップショットモード，スキャンアウトモード），スイッチＡＭＳ０〜ＡＭＳｎ−１はスキャンチェーン配線１５の信号を選択するため，フリップフロップＡＭＦ０〜ＡＭＦｎ−１は，メインクロック信号１０５に同期して，それぞれスキャンチェーン配線１５を介して前段のフリップフロップのラッチ信号をラッチすることができる。
【０１２１】
図１６は，第４の実施の形態におけるアドレス用サブＦＦの構成を示す図である。図１６には，バス１３からｎビットのアドレス信号ＡＳが伝送される場合における，スイッチ７２及びアドレス用サブＦＦ７３の構成が示されている。
【０１２２】
スイッチ７２は，ビット毎に選択を行うスイッチＡＳＳ０〜ＡＳＳｎ−１を有し，アドレスセット信号４０３に基づいて，ｎビットのアドレス信号ＡＳ（ＡＳ[０]〜ＡＳ[ｎ−１]）又はスキャンチェーン配線１５の信号を選択し，出力する。
【０１２３】
アドレス用サブＦＦ７３は，スキャンチェーン配線１５を介してそれぞれ後段のフリップフロップと接続するフリップフロップＡＳＦ０〜ＡＳＦｎ−１を有する。フリップフロップＡＳＦ０〜ＡＳＦｎ−１がスキャンチェーン配線１５で接続されているのは，セットモードでフリップフロップＡＳＦ０〜ＡＳＦｎ−１が監視アドレス信号をラッチするためである。そのため，ｎビット目の信号をラッチするフリップフロップＡＳＦn−１は，後段のフリップフロップとは接続しない。フリップフロップＡＳＦ０〜ＡＳＦｎ−１は，対応するスイッチＡＳＳ０〜ＡＳＳｎ−１の出力信号を，サブクロック信号１０６に同期してラッチする。
【０１２４】
したがって，アドレスセット信号４０３がＬレベルのとき（通常動作モード，スナップショットモード，スキャンアウトモード，リターンモード），スイッチＡＳＳ０〜ＡＳＳｎ−１はアドレス信号ＡＳを選択するため，フリップフロップＡＳＦ０〜ＡＳＦｎ−１は，サブクロック信号１０６に同期して，ｎビットのアドレス信号ＡＳをラッチすることができる。
【０１２５】
また，アドレスセット信号４０３がＨレベルのとき（セットモード），スイッチＡＳＳ０〜ＡＳＳｎ−１はスキャンチェーン配線１５の信号を選択するため，フリップフロップＡＳＦ０〜ＡＳＦｎ−１は，サブクロック信号１０６をｎ回入力することで，スキャンチェーン配線１５を介してｎビットの監視アドレス信号をラッチすることができる。
【０１２６】
図１７は，第４の実施の形態におけるデータ用メインＦＦの構成を示す図である。スイッチ７７及びデータ用サブＦＦ７８は，図１５と同様の構成を有する。
【０１２７】
スイッチ７７は，ビット毎に選択を行うスイッチＤＭＳ０〜ＤＭＳｎ−１を有し，スナップショット信号１０７に基づいて，ｎビットのデータ信号ＤＳ（ＤＳ [０]〜ＤＳ[ｎ−１]）又はスキャンチェーン配線１５の信号を選択し，出力する。
【０１２８】
データ用メインＦＦ７８は，スキャンチェーン配線１５を介してそれぞれ後段のフリップフロップと接続するフリップフロップＤＭＦ０〜ＤＭＦｎ−１を有する。フリップフロップＤＭＦ０〜ＤＭＦｎ−１は，対応するスイッチＤＭＳ０〜ＤＭＳｎ−１の出力信号を，メインクロック信号１０５に同期してラッチする。
【０１２９】
したがって，スナップショット信号１０７がＬレベルのとき（通常動作モード，リターンモード，セットモード），スイッチＤＭＳ０〜ＤＭＳｎ−１はアドレス信号ＡＳを選択するため，フリップフロップＤＭＦ０〜ＤＭＦｎ−１は，メインクロック信号１０５に同期してｎビットのデータ信号ＡＳをラッチすることができる。
【０１３０】
また，スナップショット信号１０７がＨレベルのとき（スナップショットモード，スキャンアウトモード），スイッチＤＭＳ０〜ＤＭＳｎ−１はスキャンチェーン配線１５の信号を選択するため，フリップフロップＤＭＦ０〜ＤＭＦｎ−１は，メインクロック信号１０５に同期して，それぞれスキャンチェーン配線１５を介して前段のフリップフロップのラッチ信号をラッチすることができる。
【０１３１】
図１８は，第４の実施の形態におけるデータ用サブＦＦの構成を示す図である。データ用サブＦＦ７９では，フリップフロップＤＳＦ０〜ＤＳＦｎ−１が，サブクロック信号１０６に同期して，メモリからのｎビットのデータ信号ＤＳをラッチする。
【０１３２】
図１９は，第４の実施の形態におけるフリップフロップのラッチ信号を選択するスイッチの構成を示す図である。スイッチ７４はビット毎にスイッチＳ０〜Ｓｎ−１を有する。スイッチ７４のスイッチＳ０〜Ｓｎ−１は，それぞれフリップフロップ選択信号１０８に基づいて，アドレス用メインＦＦ７１のフリップフロップＡＭＦ０〜ＡＭＦｎ−１の出力とアドレス用サブＦＦ７２のフリップフロップＡＳＦ０〜ＡＳＦｎ−１の出力とのいずれかを選択して出力する。
【０１３３】
また，スイッチ８０も，スイッチ７４と同様な構成を有する。スイッチ８０のスイッチＳ０〜Ｓｎ−１は，それぞれフリップフロップ選択信号１０８に基づいて，データ用メインＦＦ７８のフリップフロップＤＭＦ０〜ＤＭＦｎ−１の出力とデータ用サブＦＦ７９のフリップフロップＤＳＦ０〜ＤＳＦｎ−１の出力とのいずれかを選択して出力する。
【０１３４】
図２０は，第４の実施の形態におけるメモリＩ／Ｆの動作モードの切替条件を示す図である。第４の実施の形態では，メモリＩ／Ｆ１０の動作は５つの動作モード（通常動作モード，スナップショットモード，スキャンアウトモード，リターンモード，セットモード）に分けられる。通常動作モード（ＩＤＬＥ），スナップショットモード（ＳＳ），スキャンアウトモード（ＳＯＵＴ）及びリターンモード（ＲＥＴ），セットモード（ＳＥＴ）は，それぞれ３ビットのＳＳ用スキャンモード信号１０１の「０００」，「０１０」，「０１１」，「００１」，「１００」に対応する。
【０１３５】
通常動作モード（ＩＤＬＥ）では，比較器７５からの内部スナップショット開始信号４０２がＬレベルの間，メモリＩ／Ｆ１０は通常動作モード（ＩＤＬＥ）を継続する。しかし，後述するようにアドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳが監視アドレス信号と等しいとき（内部スナップショット開始信号４０２＝Ｈレベル），スキャン制御部１４はＳＳ用スキャンモード信号１０１を「０００」から「０１０」に切り替え，メモリＩ／Ｆ１０の動作はスナップショットモード（ＳＳ）に切り替わる。
【０１３６】
また，通常動作モード（ＩＤＬＥ）では，デバッグツール１が通常動作モード（ＩＤＬＥ）からセットモード（ＳＥＴ）への切替タイミングを制御できるように，Ｈレベルのスナップショット開始信号及びＨレベルのスキャンイン信号が，通常動作モード（ＩＤＬＥ）からセットモード（ＳＥＴ）への切替条件とされている。デバッグツール１がＬＳＩ４にＨレベルのスナップショット開始信号とＨレベルのスキャンイン信号がＬＳＩ４に入力すると，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「０００」から「１００」に切り替え，メモリＩ／Ｆ１０の動作はセットモード（ＳＥＴ）に切り替わる。
【０１３７】
スナップショットモード（ＳＳ），スキャンアウトモード（ＳＯＵＴ）及びリターンモード（ＲＥＴ）の切替条件及び切替後の動作モードについては，第１の実施の形態の図５（１）と同様である。
【０１３８】
セットモード（ＳＥＴで）では，デバッグツール１がセットモード（ＳＥＴ）から通常動作モード（ＩＤＬＥ）への切替タイミングを制御できるように，Ｈレベルのスナップショット開始信号及びＨレベルのスキャンイン信号が，セットモード（ＳＥＴ）から通常動作モード（ＩＤＬＥ）への切替条件とされている。デバッグツール１がＨレベルのスナップショット開始信号及びＨレベルのスキャンイン信号をＬＳＩ４に入力すると，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「１００」から「０００」に切り替え，メモリＩ／Ｆ１０の動作は通常動作モード（ＩＤＬＥ）に切り替わる。
【０１３９】
図２１は，第４の実施の形態におけるモード制御回路の出力信号を示す図である。通常動作モード（ＩＤＬＥ），スナップショットモード（ＳＳ），スキャンアウトモード（ＳＯＵＴ）及びリターンモード（ＲＥＴ）における信号１０５〜１０８は，第１の実施の形態の図５（２）と同様である。アドレスセット信号４０３は，通常動作モード（ＩＤＬＥ），スナップショットモード（ＳＳ），スキャンアウトモード（ＳＯＵＴ）及びリターンモード（ＲＥＴ）では，Ｌレベルに維持されるため，スイッチ７２はバス１３からのアドレス信号ＡＳの選択を維持する。
【０１４０】
セットモード（ＳＥＴ）では，モード制御回路８１は，通常動作モード（ＩＤＬＥ）と同様に，メインクロック信号１０５及びフリップフロップ選択信号１０８を出力し，スナップショット信号１０７をＬレベルに維持する。これにより，メモリＩ／Ｆ１０はアドレス用メインＦＦ７１及びデータ用メインＦＦ７８を使用して通常動作を継続する。
【０１４１】
また，モード制御回路８１は，ＳＳ用スキャンクロック信号１０２をサブクロック信号１０６として出力し，アドレスセット信号４０２をＨレベルに維持する。これにより，スイッチ７２はスキャンチェーン配線１５の信号を選択し，アドレス用サブＦＦ７３はサブクロック信号１０６をｎ回入力し，スキャンチェーン配線１５を介してフリップフロップＡＳＦ０〜ＡＳＦｎ−１にｎビットの監視アドレス信号を格納する。
【０１４２】
次に，図２２，図２３を用いて具体的な動作について説明する。図２２は，第４の実施の形態におけるセットモードのタイミングチャートである。なお，バス１３からは８ビットのアドレス信号が伝送されるものとする。また，時間Ｔ２０〜時間Ｔ３４の間にメモリ１１への読み出し動作は行われていないものとする。
【０１４３】
[通常動作モード（時間Ｔ２０〜Ｔ２１）]
時間Ｔ２０では，ＳＳ用スキャンモード信号１０１は「０００」であるため，メモリＩ／Ｆ１０は通常動作モードである。
【０１４４】
このとき，スイッチ７０はバス１３からのアドレス信号ＡＳを選択し（「０」側），スイッチ７４はアドレス用メインＦＦ７１のラッチ信号を選択する（「０」側）。また，スイッチ７７はメモリ１１からのデータ信号ＤＳを選択し（「０」側），スイッチ８０はデータ用メインＦＦ７８のラッチ信号を選択する（「０」側）。
【０１４５】
そして，時間Ｔ２１で，通常動作モードからセットモードへの切替を開始するために，デバッグツール１からＨレベルのスナップショット開始信号及びＨレベルのスキャンイン信号が，クロック信号１０４の１周期の間だけ入力される。
【０１４６】
[セットモード（時間Ｔ２２〜Ｔ３２）]
時間Ｔ２２で，スキャン制御部１４はＨレベルのスナップショット開始信号及びＨレベルのスキャンイン信号に基づいて，ＳＳ用スキャンモード信号１０１を「０００」から「１００」へ切り替え，メモリＩ／Ｆ１０の動作は通常動作モードからセットモードに切り替わる。セットモードでは，アドレス用サブＦＦ７３がスキャンチェーン配線１５を介して監視アドレス信号をラッチする。
【０１４７】
モード制御回路８１は，「１００」のＳＳ用スキャンモード信号１０１に基づいて，アドレスセット信号４０３をＬレベルからＨレベルにする。その結果，スイッチ７２は，スキャンチェーン配線１５の信号を選択する（「１」側）。
【０１４８】
また，モード制御回路８１は，クロック信号１０４をメインクロック信号１０５として継続して出力し，スナップショット信号１０７及びフリップフロップ選択信号１０８をＬレベルに維持する。
【０１４９】
これにより，スイッチ７０はバス１３からのアドレス信号ＡＳの選択を維持し（「０」側），スイッチ７７はメモリからのデータ信号ＤＳの選択を維持する（「０」側）。また，スイッチ７４はアドレス用メインＦＦ７１のラッチ信号の選択を維持し（「０」側），スイッチ８０はデータ用メインＦＦ７８のラッチ信号の選択を維持する（「０」側）。
【０１５０】
そのため，図２２では行われていないが，セットモードの間にメモリ１１の読み出し動作が行われた場合であっても，メモリＩ／Ｆ１０は，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８を用いて，通常動作を継続することができる。
【０１５１】
時間Ｔ２２以降，監視アドレス信号が，スキャンイン信号として，ＳＳ用スキャンクロック信号１０２に同期して，デバッグツール１からスキャンチェーン配線１５に入力される。
【０１５２】
時間Ｔ２３で，スキャン制御部１４は，周期がクロック信号１０４の２倍であるＳＳ用スキャンクロック信号１０２を出力する。また，Ｈレベルのテストモード信号１０３がテストモードコントローラ８から出力される。そして，モード制御回路８１は，ＳＳ用スキャンクロック信号１０２とＨレベルのテストモード信号１０３とに基づいて，ＳＳ用スキャンクロック信号１０２をサブクロック信号１０６として出力する。その結果，アドレス用サブＦＦ７３は，サブクロック信号１０６に同期し，スキャンチェーン配線１５を介して監視アドレス信号をラッチすることが可能となる。
【０１５３】
時間Ｔ２５で，アドレス用サブＦＦ７３のフリップフロップＡＳＦ０が，サブクロック信号１０６の立ち上がりに応じて，監視アドレス信号の最上位の７ビット目の信号ａ[７]をラッチする。次に，時間Ｔ２６で，アドレス用サブＦＦ７３のフリップフロップＡＳＦ１が，サブクロック信号１０６の立ち上がりに応じて，スキャンチェーン配線１５を介しフリップフロップＡＳＦ０のラッチ信号ａ[７]をラッチする。そして，フリップフロップＡＳＦ０は，次の監視アドレス信号の６ビット目の信号ａ[６]をラッチする。
【０１５４】
このように，アドレス用サブＦＦ７３のフリップフロップＡＳＦ０〜ＡＳＦ７が，スキャンチェーン配線１５を介し，それぞれ前段のフリップフロップのラッチ信号を順にラッチすることで，監視アドレス信号の各ビットの信号がアドレス用サブＦＦ７３に順にラッチされる。
【０１５５】
時間Ｔ３２で，監視アドレス信号の各ビットの信号ａ[０]〜ａ[７]が全てアドレス用サブＦＦ７３にラッチされる。そして，テストモードコントローラ８はテストモード信号１０３をＨレベルからＬレベルにし，監視アドレス信号のスキャンインを終了する。また，メモリＩ／Ｆ１０がセットモードから通常動作モードに切り替わるように，デバッグツール１からＨレベルのスナップショット開始信号及びＨレベルのスキャンイン信号が，クロック信号１０４の１周期の間だけ入力される。
【０１５６】
[通常動作モード（時間Ｔ３３〜Ｔ３４）]
時間Ｔ３３で，スキャン制御部１４は，Ｈレベルのスナップショット開始信号及びＨレベルのスキャンイン信号に基づいて，ＳＳ用スキャンモード信号１０１を「１００」から「０００」へ切り替え，メモリＩ／Ｆ１０の動作はセットモードから通常動作モードに切り替わる。それとともに，スキャン制御部１４は，ＳＳ用スキャンクロック信号１０２をＬレベルに維持する。
【０１５７】
さらにスキャン制御部１４は，時間Ｔ３３で，アクセス監視信号４０１をＬレベルからＨレベルにする。これにより，比較器７５が，アドレス用メインＦＦ７１のラッチ信号及びアドレス用サブＦＦ７３がラッチした監視アドレス信号の比較を開始する。なお，後述するように，アドレス用メインＦＦ７１のラッチ信号が監視アドレス信号と等しい場合には，通常動作モードからスキャンアウトモードへの切替動作が開始される。
【０１５８】
一方，モード制御回路８１は，サブクロック信号１０６及びアドレスセット信号４０３をＨレベルからＬレベルにし，スナップショット信号１０７をテストモード信号１０３と同じＬレベルに維持する。
【０１５９】
その結果，時間Ｔ２０〜Ｔ２１のときの通常動作モードと同様に，スイッチ７０，７２はバス１３からのアドレス信号ＡＳを選択し（「０」側），スイッチ７７はメモリ１１からのデータ信号ＤＳを選択する（「０」側）。しかし，時間Ｔ２０〜Ｔ２１とは異なり，アドレス用サブＦＦ７３は監視アドレス信号を保持する。
【０１６０】
そのため，時間Ｔ３３以降，メモリＩ／Ｆ１０は通常動作を行いながら，比較器７５を用いてアドレス用メインＦＦ７１のラッチ信号と監視アドレス信号との比較をすることができる。
【０１６１】
このように，セットモードでは，メモリＩ／Ｆ１０は，アドレス用サブＦＦ７３にアドレス監視信号をラッチさせる。また，セットモードにおいてもスイッチ７０，７４，７７，８０は通常動作モードのときの選択を維持するため，セットモードの間にメモリ１１の読み出し動作が行われても，メモリＩ／Ｆ１０は通常動作を継続することができる。そして，メモリＩ／Ｆ１０は，セットモードから通常動作モードに切り替わると，アドレス用メインＦＦ７１のラッチ信号，すなわちバス１３からのアドレス信号ＡＳが監視アドレス信号と等しいか否かの比較を開始する。
【０１６２】
図２３は，第４の実施の形態におけるメモリＩ／Ｆによるスキャンアウト動作のタイミングチャートである。図２３は，セット―モード後の通常動作モードにおいて，メモリＩ／Ｆ１０が通常動作モードからスキャンアウトモードに切り替わり，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８のラッチ信号をスキャンアウトする動作の具体例を示す。
【０１６３】
図２３では，まず，ＬＳＩ４がセットモードでメモリＩ／Ｆ１０のアドレス用サブＦＦ７３に監視アドレス信号を保持した後，時間Ｔ４０以前からメモリ１１の読み出し動作を行っている。アドレス用メインＦＦ７１がアドレス信号ＡＳをラッチする都度，メモリＩ／Ｆ１０は，アドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳとアドレス用サブＦＦ７３がラッチした監視アドレス信号との比較を行う。そして，アドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳとアドレス用サブＦＦ７３がラッチした監視アドレス信号とが等しい場合に（時間Ｔ４０），メインＩ／Ｆ１０は通常動作モードからスキャンアウトモードへの切替を開始する（時間Ｔ４１〜Ｔ４２）。
【０１６４】
スキャンアウトモードでは（時間Ｔ４３〜Ｔ５０），メインＩ／Ｆ１０は，アドレス用サブＦＦ７３及びデータ用サブＦＦ７９を用いて通常動作を継続可能とし，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８のラッチ信号を，スキャンチェーン配線１５を介してスキャンアウトする。スキャンアウト完了後，メモリＩ／Ｆ１０はスキャンアウトモードから通常動作モードへの切替を開始する（時間Ｔ５１）。
【０１６５】
そして，メモリＩ／Ｆ１０は，セットモードで監視アドレスを保持する前の通常動作モードに戻り（時間Ｔ５２），アドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳとアドレス用サブＦＦ７３がラッチした監視アドレス信号との比較を行うことなく，通常動作を行う。
【０１６６】
以下，詳細について説明する。
【０１６７】
[通常動作モード（時間Ｔ４０〜Ｔ４１）]
時間Ｔ４０では，メモリＩ／Ｆ１０はセットモード後の通常動作モードである。つまり，スイッチ７０はバス１３からのアドレス信号ＡＳを選択し，スイッチ７４はアドレス用メインＦＦ７１のラッチ信号を選択し，スイッチ７７はメモリ１１からのデータ信号ＤＳを選択し，スイッチ８０はデータ用メインＦＦ７８のラッチ信号を選択する。
【０１６８】
そのため，データ用メインＦＦ７８は，時間Ｔ４０以前にメモリ１１から出力されたデータ信号ＤＳ（Ｘ[０]〜Ｘ[７]）をメインクロック信号１０５に同期してラッチする。これにより，データ信号ＤＳ（Ｘ[０]〜Ｘ[７]）がバス１３に出力される。
【０１６９】
また，メモリ１１は時間Ｔ４０以前にアドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳ（ｃ[０]〜ｃ[７]）に対応するデータ信号ＤＳ（Ｃ[０]〜Ｃ[７]）を出力する。
【０１７０】
そして，アドレス用メインＦＦ７１がアドレス信号ＡＳ（a[０]〜a[７]）をメインクロック信号１０５に同期してラッチする。
【０１７１】
それとともに，アドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳ（a[０]〜a[７]）は，比較器７５にも入力され，アドレス用サブＦＦ７３がセットモードでラッチした監視アドレス信号（a[０]〜a[７]）と比較される。時間Ｔ４０では，アドレス信号ＡＳ（a[０]〜a[７]）は監視アドレス信号（a[０]〜a[７]）と等しいため，比較器７５の出力はＨレベルとなる。
【０１７２】
時間Ｔ４１で，フリップフロップ７６が，時間Ｔ４０の比較器７５からのＨレベルの出力をメインクロック信号１０５に同期してラッチする。その結果，内部スナップショット開始信号４０２がＨレベルとなる。なお，これによりスキャン制御部１４は，アドレス信号ＡＳと監視アドレス信号とが等しいことを検出し，後述する時間Ｔ４２以降の動作を開始する。
【０１７３】
データ用メインＦＦ７８は時間Ｔ４０でメモリ１１から出力されたデータ信号ＤＳ（Ｃ[０]〜Ｃ[７]）をメインクロック信号１０５に同期してラッチする。その結果，データ信号ＤＳ（Ｃ[０]〜Ｃ[７]）がバス１３に出力される。
【０１７４】
メモリ１１は，は時間Ｔ４０にアドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳ（ａ[０]〜ａ[７]）に対応するデータ信号ＤＳ（Ａ[０]〜Ａ[７]）を出力する。
【０１７５】
アドレス用メインＦＦ７１は，バス１３からのアドレス信号（ｄ[０]〜ｄ[７]）をメインクロック信号１０５に同期してラッチする。アドレス信号（ｄ[０]〜ｄ[７]）は比較器７５に入力される。このアドレス信号（ｄ[０]〜ｄ[７]）は監視アドレス信号と異なるため，比較器７５の出力はＬレベルとなる。
【０１７６】
[スナップショットモード（時間Ｔ４２）]
時間Ｔ４２で，まず，フリップフロップ７６が，時間Ｔ４１の比較器７５からのＬレベルの出力をメインクロック信号１０５に同期してラッチする。その結果，内部スナップショット開始信号４０２はＬレベルになる。
【０１７７】
データ用メインＦＦ７８は，時間Ｔ４１にメモリ１１から出力されたアドレス信号ＡＳ（a[０]〜a[７]）に対応するデータ信号ＤＳ（Ａ[０]〜Ａ[７]）を，メインクロック信号１０５に同期してラッチする。その結果，データ信号ＤＳ（Ａ[０]〜Ａ[７]）がバス１３に出力される。
【０１７８】
メモリ１１は，時間Ｔ４１でアドレス用メインＦＦ７１にラッチされたアドレス信号ＡＳ（ｄ[０]〜ｄ[７]）に対応するデータ信号ＤＳ（Ｄ[０]〜Ｄ[７]）を出力する。
【０１７９】
アドレス用メインＦＦ７１は，バス１３からのアドレス信号（ｙ[０]〜ｙ[７]）を，メインクロック信号１０５に同期してラッチする。
【０１８０】
一方，スキャン制御部１４は，時間Ｔ４１の内部スナップショット開始信号４０２の立ち上がりに基づいて，ＳＳ用スキャンモード信号１０１を「０００」から「０１０」に切り替える。それとともに，スキャン制御部１４はアクセス監視信号４０１をＨレベルからＬレベルにし，比較器７５を非活性状態にして比較動作を終了する。
【０１８１】
このＳＳ用スキャンモード信号１０１の切替により，メモリＩ／Ｆ１０の動作は，通常動作モードからスナップショットモードに切り替わる。スナップショットモードでは，メモリＩ／Ｆ１０は，後述するスキャンアウトモードの動作を開始するまでの過渡的な動作を行う。
【０１８２】
そして，モード制御回路８１は，「０１０」のＳＳ用スキャンモード信号１０１に基づいて，スナップショット信号１０７をＨレベルにする。これにより，スイッチ７０，７７は，スキャンチェーン配線１５の信号を選択する（「１」側）。
【０１８３】
[スキャンアウトモード（時間Ｔ４３〜Ｔ５０）]
時間Ｔ４２からクロック信号１０４の１クロック経過後の時間Ｔ４３で，スキャン制御部１４は，ＳＳ用スキャンモード信号１０１を「０１０」から「０１１」に切り替える。それとともに，スキャン制御部１４は，周期がクロック信号１０４の２倍であるＳＳ用スキャンクロック信号１０２を出力する。
【０１８４】
このＳＳ用スキャンモード信号１０１の切替により，メモリＩ／Ｆ１０の動作はスナップショットモードからスキャンアウトモードに切り替わる。
【０１８５】
また，このとき，テストモードコントローラ８が，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８のスキャンアウトを開始するためにデバッグツール１から出力された，テスト開始を示すテスト開始信号に応答して，Ｈレベルのテストモード信号１０３を出力する。
【０１８６】
モード制御回路８１は，「０１１」のＳＳ用スキャンモード信号１０１とＨレベルのテストモード信号１０３とに基づいて，まず，クロック信号１０４をサブクロック信号１０６として出力し，アドレスセット信号４０３をＬレベルに維持する。
【０１８７】
これにより，スイッチ７２は，Ｌレベルのアドレスセット信号４０３に基づいてバス１３からのアドレス信号ＡＳの選択を維持する（「０」側）。
【０１８８】
そして，データ用サブＦＦ７９は，時間Ｔ４２にメモリ１１から出力されたデータ信号ＤＳ（Ｄ[０]〜Ｄ[７]）を，サブクロック信号１０６に同期してラッチする。
【０１８９】
メモリ１１は，時間Ｔ４２でアドレス用メインＦＦ７１がラッチしたアドレス信号ＡＳ（ｙ[０]〜ｙ[７]）に対応するデータ信号（Ｙ[０]〜Ｙ[７]）を出力する。
【０１９０】
アドレス用サブＦＦ７３は，バス１３からのアドレス信号ＡＳ（ｒ[０]〜ｒ[７]）をサブクロック信号１０６に同期してラッチする。
【０１９１】
一方，モード制御回路８１は，「０１１」のＳＳ用スキャンモード信号１０１とＨレベルのテストモード信号１０３とに基づいて，ＳＳ用スキャンクロック信号１０２をメインクロック信号１０５として出力し，スナップショット信号１０７をＨレベルに維持し，フリップフロップ選択信号１０８をＨレベルにする。
【０１９２】
これにより，スイッチ７０，７７はスキャンチェーン配線１５の信号の選択を維持し（「１」側）する。また，スイッチ７４はアドレス用サブＦＦ７３のラッチ信号を選択し（「１」側），スイッチ８０はデータ用サブＦＦ７９のラッチ信号を選択する（「１」側）。
【０１９３】
その結果，データ用サブＦＦ７９がラッチしたデータ信号ＤＳ（Ｄ[０]〜Ｄ[７]）がバス１３に出力される。
【０１９４】
また，アドレス用メインＦＦ７１の各フリップフロップＡＭＦ０〜ＡＭF７と，データ用メインＦＦ７８の各フリップフロップＤＭＦ０〜ＤＭＦ７とは，メインクロック信号１０５に同期して，それぞれスキャンチェーン配線１５を介し前段のフリップフロップのラッチ信号をラッチする。つまり，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８のスキャンアウトが開始される。これにより，時間Ｔ４３では，スキャンアウト端子１８からは，時間Ｔ４２におけるフリップフロップＤＭＦ７のラッチ信号，すなわちデータ信号ＤＳ（Ａ[０]〜Ａ[７]）の最上位の「Ａ[７]」が出力される。
【０１９５】
時間Ｔ４４で，データ用サブＦＦ７９は，時間Ｔ４３にメモリ１１から出力されたデータ信号ＤＳ（Ｙ[０]〜Ｙ[７]）を，サブクロック信号１０６に同期してラッチする。これにより，データ信号ＤＳ（Ｙ[０]〜Ｙ[７]）はバス１３に出力される。
【０１９６】
メモリ１１は，時間Ｔ４３にアドレス用サブＦＦ７３がラッチしたアドレス信号ＡＳ（ｒ[０]〜ｒ[７]）に対応するデータ信号（Ｒ[０]〜Ｒ[７]）を出力する。
【０１９７】
アドレス用サブＦＦ７３は，バス１３からのアドレス信号ＡＳ（ｔ[０]〜ｔ[７]）をサブクロック信号１０６に同期してラッチする。
【０１９８】
このように，メモリＩ／Ｆ１０は，アドレス用サブＦＦ７３及びデータ用サブＦＦ７９を用いて，通常動作を継続する。
【０１９９】
時間Ｔ４５で，アドレス用メインＦＦ７１の各フリップフロップＡＭＦ０〜ＡＭF７と，データ用メインＦＦ７８の各フリップフロップＤＭＦ０〜ＤＭＦ７とは，メインクロック信号１０５に同期して，それぞれスキャンチェーン配線１５を介し前段のフリップフロップのラッチ信号をラッチする。その結果，時間Ｔ４４では，スキャンアウト端子１８からは，時間Ｔ４３におけるフリップフロップＤＭＦ７のラッチ信号「Ａ[６]」が出力される。
【０２００】
また，データ用サブＦＦ７９は，時間Ｔ４４にメモリ１１から出力されたデータ信号ＤＳ（Ｒ[０]〜Ｒ[７]）を，サブクロック信号１０６に同期してラッチする。これにより，データ信号ＤＳ（Ｒ[０]〜Ｒ[７]）はバス１３に出力される。
【０２０１】
メモリ１１は，時間Ｔ４３にアドレス用サブＦＦ７３がラッチしたアドレス信号ＡＳ（ｔ[０]〜ｔ[７]）に対応するデータ信号（Ｔ[０]〜Ｔ[７]）を出力する。
【０２０２】
アドレス用サブＦＦ７３は，バス１３からのアドレス信号ＡＳ（ｑ[０]〜ｑ[７]）をサブクロック信号１０６に同期してラッチする。
【０２０３】
このように時間Ｔ４４以降は，メモリＩ／Ｆ１０は通常動作を継続しながら，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８のラッチ信号のスキャンアウトを行う。
【０２０４】
[リターンモード（時間Ｔ５１）]
時間Ｔ５０で，スキャンアウト対象のラッチ信号が「ｙ[０]」のみとなり，テストモードコントローラ８が，アドレス用メインＦＦ７１及びデータ用メインＦＦ７８のスキャンアウトを終了するためにデバッグツール１から出力された，テスト終了を示すテスト開始信号に応答して，テストモード信号１０３をＨレベルからＬレベルにする。
【０２０５】
これにより，時間Ｔ５１で，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「０１１」から「００１」に切り替え，メモリＩ／Ｆ１０の動作はスキャンアウトモードからリターンモードに切り替わる。リターンモードでは，メモリＩ／Ｆ１０は，通常動作モードの動作が開始されるまでの過渡的な動作を行う。
【０２０６】
モード制御回路８１は，まず，クロック信号１０４をサブクロック信号１０６として出力し，フリップフロップ選択信号１０８をＨレベルに維持し，アドレスセット信号４０３をＬレベルに維持する。
【０２０７】
これにより，スイッチ７２は，Ｌレベルのアドレスセット信号４０３に基づいてバス１３からのアドレス信号ＡＳの選択を維持する（「０」側）。スイッチ７４は，Ｈレベルのフリップフロップ選択信号１０８に基づいて，アドレス用サブＦＦ７３のラッチ信号の選択を維持する（「１」側）。また，スイッチ８０は，Ｈレベルのフリップフロップ選択信号１０８に基づいて，アデータ用サブＦＦ７９のラッチ信号の選択を維持する（「１」側）。
【０２０８】
そして，データ用サブＦＦ７９は，時間Ｔ５０でメモリ１１から出力されたデータ信号ＤＳ（Ｚ[０]〜Ｚ[７]）をサブクロック信号１０６に同期してラッチする。これにより，データ信号ＤＳ（Ｚ[０]〜Ｚ[７]）はバス１３に出力される。
【０２０９】
また，メモリ１１は時間Ｔ５０でアドレス用サブＦＦ７３がラッチしたアドレス信号（ｅ[０]〜ｅ[７]）に対応するデータ信号ＤＳ（Ｅ[０]〜Ｅ[７]）を出力する。
【０２１０】
アドレス用サブＦＦ７３は，バスからのアドレス信号ＡＳ（ｕ[０]〜ｕ[７]）をサブクロック信号１０６に同期してラッチする。
【０２１１】
一方，モード制御回路８１は，ＳＳ用スキャンクロック信号１０２をメインクロック信号１０５として出力し，スナップショット信号１０７をＬレベルにする。
【０２１２】
その結果，スイッチ７０は，Ｌレベルのスナップショット信号１０７に基づいて，バス１３からのアドレス信号ＡＳを選択する（「０」側）。また，スイッチ７７は，Ｌレベルのスナップショット信号１０７に基づいて，メモリ１１からのデータ信号ＤＳを選択する（「０」側）。
【０２１３】
[通常動作モード（時間Ｔ５２）]
時間Ｔ５１からクロック信号１０４の１クロック経過後の時間Ｔ５２で，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「０１」から「００」に切り替え，メモリＩ／Ｆ１０はリターンモードから通常動作モードに切り替わる。それとともにスキャン制御部１４は，ＳＳ用スキャンクロック信号１０２をＬレベルに維持する。
【０２１４】
モード制御回路８１は，まず，クロック信号１０４をメインクロック信号１０５として出力し，Ｌレベルのテストモード信号１０３をスナップショット信号１０７として出力する。
【０２１５】
これにより，スイッチ７０は，Ｌレベルのスナップショット信号１０７に基づいて，バスからのアドレス信号ＡＳの選択を維持する（「０」側）。スイッチ７７は，Ｌレベルのスナップショット信号１０７に基づいて，メモリ１１からのデータ信号ＤＳの選択を維持する（「０」側）。
【０２１６】
そして，データ用メインＦＦ７８は，時間Ｔ５１でメモリから出力されたデータ信号ＤＳ（Ｅ[０]〜Ｅ[７]）をメインクロック信号１０５に同期してラッチする。これにより，データ信号ＤＳ（Ｅ[０]〜Ｅ[７]）がバス１３に出力される。
【０２１７】
メモリ１１は，時間Ｔ５１でアドレス用サブＦＦ７３がラッチしたアドレス信号ＡＳ（ｕ[０]〜ｕ[７]）に対応するデータ信号ＤＳ（Ｕ[０]〜Ｕ[７]）を出力する。
【０２１８】
アドレス用メインＦＦ７１は，バス１３からのアドレス信号ＡＳ（ｂ[０]〜ｂ[７]）をメインクロック信号１０５に同期してラッチする。
【０２１９】
一方，モード制御回路８１は，サブクロック信号１０６，フリップフロップ選択信号１０８をＬレベルにし，アドレスセット信号４０３をＬレベルに維持する。
【０２２０】
これにより，スイッチ７２は，Ｌレベルのアドレスセット信号４０３に基づいてバス１３からのアドレス信号ＡＳの選択を維持する（「０」側）。スイッチ７４は，Ｌレベルのフリップフロップ選択信号１０８に基づいて，アドレス用メインＦＦ７１を選択する（「０」側）。また，スイッチ８０は，Ｌレベルのフリップフロップ選択信号１０８に基づいて，データ用メインＦＦ７８を選択する（「０」側）。
【０２２１】
このようにして，時間Ｔ５２以降のスイッチ７０，７２，７４，７７，８０は，時間Ｔ４０の通常動作モードにおける選択状態と同じになるため，メインＩ／Ｆ１０は，アドレス用メインＦＦ７１及びデータ用メインＦＦ７３を用いて通常動作を行うことができる。以上のように，図２３では，セットモードでアドレス用サブＦＦ７３が監視アドレス信号をラッチした後の通常動作モードでは，アドレス用メインＦＦ７１が監視アドレス信号と等しいアドレス信号ＡＳをラッチすると，通常動作モードからスキャンアウトモードへの切替動作が開始される。また，監視アドレス信号と等しいアドレス信号ＡＳに対応するデータ信号ＤＳがデータ用メインＦＦ７８にラッチされる。そして，スキャンアウトモードにおいて，メモリＩ／Ｆ１０はアドレス用サブＦＦ７３及びデータ用サブＦＦ７９を使用して通常動作を継続しながら，監視アドレス信号に対応するデータ信号ＤＳ，すなわち所望のアドレスのデータを，データ用メインＦＦ７８からスキャンアウトする。
【０２２２】
［第５の実施の形態］
上述の第４の実施の形態では，アドレス用サブＦＦ７３がセットモードで監視アドレス信号をラッチしても，ＬＳＩ４によるメモリ１１の読み出し動作の間に所望のアドレスのデータの読み出しが行われないと，所望のアドレスのデータがスキャンアウトされない。また，プログラムの暴走時やバスのハングアップ時等，ＬＳＩ４が動作をしていても不具合状態の場合には，ＬＳＩ４によるメモリ１１の読み出し動作が行われない可能性もあり，所望のアドレスのデータをスキャンアウトすることは困難である。
【０２２３】
そこで，第５の実施の形態では，ＬＳＩ４によるメモリ１１の読み出し動作が行われていないタイミングを利用して，所望のアドレスのデータをスキャンアウトすることができるメモリＩ／Ｆ１０について，説明する。
【０２２４】
第５の実施の形態では，ＬＳＩ４は第４の実施の形態と同様に図１３の構成を有する。また，第４の実施の形態と同様に，セットモードが設けられている。しかし，メモリＩ／Ｆ１０やアドレス用メインＦＦ８２は，後述する図２３や図２４のように，第４の実施の形態と異なる構成を有する。
【０２２５】
また，メモリＩ／Ｆ１０は，ＬＳＩ４によるメモリ１１の読み出し動作が行われていないタイミングで通常動作モードからスキャンアウトモードに切り替えるために，バス１３からアドレス信号ＡＳとともに伝送される有効信号ＹＳを利用する。この有効信号ＹＳは，アドレス信号ＡＳが有効であるか否かを示すものである。ＬＳＩ４によるメモリ１１の読み出し動作が行われるとき，バス１３を伝送する有効信号ＹＳはアドレス信号ＡＳが「有効」であることを示す。
【０２２６】
したがって，セットモード後の通常動作モードにおいて，有効信号ＹＳが「無効」を示すとき，すなわち後述のアドレス用メインＦＦ８２が有効なアドレス信号ＡＳをラッチしないときに，通常動作モードからスキャンアウトモードへの切替動作が開始される。そして，アドレス用サブＦＦにラッチされた監視アドレス信号がメモリに入力され，それに対応するメモリのデータ信号ＤＳがデータ用メインＦＦ７８にラッチされてスキャンアウトモード時にスキャンアウトされる。
【０２２７】
つまり，ＬＳＩ４は動作はしているがメモリ１１への読み出しを行わないタイミングで，メモリＩ／Ｆ１０の動作を通常動作モードからスキャンアウトモードに切り替えて，所望のアドレスのデータをスキャンアウトする。その結果，ＬＳＩ４は動作を継続しながら，所望のアドレスのデータをメモリから読み出してスキャンアウトすることができる。
【０２２８】
図２４は，第５の実施の形態におけるメモリＩ／Ｆの構成を示す図である。図１４と共通する部分には同じ符号が付されている。図１４と異なる点は，メモリＩ／Ｆ１０は，後述の図２５の構成を有するアドレスメインＦＦ８２と，ＡＮＤゲート８３と，フリップフロップ８４と，ＯＲゲート８５とを有することである。
【０２２９】
アドレス用メインＦＦ８２は，バス１３からアドレス信号ＡＳ及び有効信号ＹＳをラッチする。アドレス用メインＦＦ８２のラッチ信号は，スイッチ７４及びスキャンチェーン配線１５に入力される。ただし，アドレス用メインＦＦ８２のラッチ信号のうち，有効信号ＹＳに対するラッチ信号ＹＳ‘は信号レベルを反転されて，アクセス監視信号４０１と共にＡＮＤゲート８３に入力される。
【０２３０】
ＡＮＤゲート８３の出力信号は，フリップフロップ８４を介して内部スナップショット開始信号４０２としてスキャン制御部１４へ出力される。さらに，ＡＮＤゲート８３の出力信号は，フリップフロップ選択信号１０８とともにＯＲゲート８５へ入力される。
【０２３１】
ＯＲゲート８５の出力信号はスイッチ７４に入力される。そして，スイッチ７４はＯＲゲートの出力信号に基づいて，アドレス用メインＦＦ８２のラッチ信号とアドレス用サブＦＦ７３のラッチ信号とのいずれかを選択する。
【０２３２】
図２５は，第５の実施の形態におけるアドレス用メインＦＦの構成を示す図である。図１５と共通する部分には同じ符号が付されている。アドレス用メインＦＦ８２のフリップフロップＡＭＦ０〜ＡＭＦｎ−１は，対応するスイッチＡＭＳ０〜ＡＭＳｎ−１の出力信号を，メインクロック信号１０５に同期してラッチする。さらに，アドレス用メインＦＦ８２は，メインクロック信号１０５に同期して有効信号ＹＳをラッチするフリップフロップＹＦを有する。
【０２３３】
図２６は，第５の実施の形態におけるメモリＩ／Ｆによるスキャンアウト動作のタイミングチャートである。図２６は，セット―モード後の通常動作モードにおいて，メモリＩ／Ｆ１０が通常動作モードからスキャンアウトモードに切り替わり，アドレス用メインＦＦ８２及びデータ用メインＦＦ７８のラッチ信号をスキャンアウトする動作の具体例を示す。図２６では，第４の実施の形態と同様に，ＬＳＩ４がセットモードでアドレス用サブＦＦ７３に監視アドレス信号を保持した後，時間Ｔ６０以前から動作を行っている。したがって，セットモード以降，アクセス監視開始信号４０１はＨレベルで維持されているため，ＡＮＤゲート８３は有効信号ＹＳのラッチ信号ＹＳ´に従ってＨレベル又はＬレベルの出力をする。つまり，ＡＮＤゲート８３は，有効信号ＹＳが「無効」（Ｌレベル）を示すか否かを判定する監視状態である。
【０２３４】
そして，有効信号ＹＳが「無効」（Ｌレベル）を示すとき（ＡＮＤゲート８３の出力信号＝Ｈレベル），すなわち後述のアドレス用メインＦＦ８２が有効なアドレス信号をラッチしないときに（時間Ｔ６０），メインＩ／Ｆ１０は通常動作モードからスキャンアウトモードへの切替を開始する（時間Ｔ６１〜Ｔ６２）。
【０２３５】
スキャンアウトモードでは（時間Ｔ６３〜Ｔ７０），メインＩ／Ｆ１０は，アドレス用サブＦＦ７３及びデータ用サブＦＦ７９を用いて通常動作を継続し，アドレス用メインＦＦ８２及びデータ用メインＦＦ７８のラッチ信号を，スキャンチェーン配線１５を介してスキャンアウトする。スキャンアウト完了後，メモリＩ／Ｆ１０はスキャンアウトモードから通常動作モードへの切替を開始する（時間Ｔ７１）。
【０２３６】
そして，メモリＩ／Ｆ１０は，セットモードで監視アドレスを保持する前の通常動作モードに戻り（時間Ｔ７２），通常動作を行う。
【０２３７】
以下，詳細について説明する。
【０２３８】
[通常動作モード（時間Ｔ６０〜Ｔ６１）]
時間Ｔ６０では，メモリＩ／Ｆ１０は，セットモード後の通常動作モードである。つまり，スイッチ７０はバス１３からのアドレス信号ＡＳを選択し，スイッチ７４はアドレス用メインＦＦ７１のラッチ信号を選択し，スイッチ７７はメモリ１１からのデータ信号ＤＳを選択し，スイッチ８０はデータ用メインＦＦ７８のラッチ信号を選択する。
【０２３９】
そのため，データ用メインＦＦ７８は，時間Ｔ６０以前にメモリ１１から出力されたデータ信号ＤＳ（Ｘ[０]〜Ｘ[７]）をメインクロック信号１０５に同期してラッチする。その結果，データ信号ＤＳ（Ｘ[０]〜Ｘ[７]）がバス１３に出力される。
【０２４０】
メモリ１１は時間Ｔ６０以前にアドレス用メインＦＦ８２がラッチしたアドレス信号ＡＳ（ｃ[０]〜ｃ[７]）に対応するデータ信号ＤＳ（Ｃ[０]〜Ｃ[７]）を出力する。
【０２４１】
時間Ｔ６０ではバス１３からアドレス信号ＡＳが伝送されないため，アドレス用メインＦＦ８２のフリップフロップＡＭＦ０〜ＡＭＦ７にはアドレス信号ＡＳがラッチされない。また，アドレス用メインＦＦ８２のフリップフロップＹＦは，アドレス用バス１３から，「無効」を示すＬレベルの有効信号ＹＳをラッチし，Ｌレベルのラッチ信号ＹＳ´を出力する。すなわち，時間Ｔ６０で，アドレス用メインＦＦ８２はアドレス信号ＡＳが有効でないことを検出する。
【０２４２】
「無効」を示すＬレベルの有効信号ＹＳに対するラッチ信号ＹＳ´は反転され，図１３のスキャン制御部１４から供給されるＨレベル（監視状態）のアクセス監視信号４０１とともにＡＮＤゲート８３に入力される。その結果，ＡＮＤゲート８３は，有効信号ＹＳが「無効」を示していると判定し，Ｈレベルの出力信号を出力する。
【０２４３】
時間Ｔ６１で，フリップフロップ８４が，時間Ｔ６０におけるＡＮＤゲート８３からのＨレベルの出力信号をメインクロック信号１０５に同期してラッチする。その結果，内部スナップショット開始信号４０２がＨレベルとなる。
【０２４４】
これにより，スキャン制御部１４は，アドレス用メインＦＦ８２が有効なアドレス信号ＡＳをラッチしていないこと，すなわちＡＮＤゲート８３が監視状態であって，かつメモリ１１の読み出し動作が行われていないことを検出し，後述する時間Ｔ６２以降の動作を開始する。また，スキャン制御部１４は，内部スナップショット開始信号４０２の立ち上がりに応答して，アクセス監視開始信号をＨレベル（監視状態）からＬレベルにし，ＡＮＤゲート８３を有効信号ＹＳの判定を行わない通常状態にする。その結果，ＡＮＤゲート８３の出力信号はＬレベルとなる。
【０２４５】
ＯＲゲート８５は，Ｈレベルの内部スナップショット開始信号４０２を入力し，Ｈレベルの出力信号を出力する。これにより，スイッチ７４は，アドレス用サブＦＦ７３のラッチ信号を選択する（「１」側）。その結果，アドレス用サブＦＦ７３からメモリ１１に監視アドレス信号（ａ[０]〜ａ[７]）が入力される。そして，メモリ１１は，監視アドレス信号（ａ[０]〜ａ[７]）に対応するデータ信号ＤＳ（Ａ[０]〜Ａ[７]）を出力する。
【０２４６】
データ用メインＦＦ７８は，時間Ｔ６０でメモリ１１から出力されたデータ信号ＤＳ（Ｃ[０]〜Ｃ[７]）をメインクロック信号１０５に同期してラッチする。これにより，データ信号ＤＳ（Ｃ[０]〜Ｃ[７]）がバス１３に出力される。
【０２４７】
アドレス用メインＦＦ８２は，バス１３からＨレベルの有効信号ＹＳとアドレス信号ＡＳ（ｄ[０]〜ｄ[７]）とを，メインクロック信号１０５に同期してラッチする。
【０２４８】
[スナップショットモード（時間Ｔ６２）]
時間Ｔ６２で，まず，フリップフロップ８４が，時間Ｔ６１のＡＮＤゲート８３からのＬレベルの出力信号をメインクロック信号１０５に同期してラッチする。その結果，内部スナップショット開始信号４０２がＬレベルとなる。
【０２４９】
ＯＲゲート８５は，このＬレベルの内部スナップショット開始信号４０２及びＬレベルのフリップフロップ選択信号１０８を入力し，ＯＲゲート８５の出力信号はＨレベルからＬレベルになる。その結果，スイッチ７４は，アドレス用メインＦＦ８２のラッチ信号を選択する（「０」側）。
【０２５０】
データ用メインＦＦ７８は，時間Ｔ６１にメモリ１１から出力された監視アドレス信号（a[０]〜a[７]）に対応するデータ信号ＤＳ（Ａ[０]〜Ａ[７]）を，メインクロック信号１０５に同期してラッチする。その結果，データ信号ＤＳ（Ａ[０]〜Ａ[７]）がバス１３に出力される。
【０２５１】
メモリ１１は，時間Ｔ６１でアドレス用メインＦＦ８２がラッチしたアドレス信号ＡＳ（ｄ[０]〜ｄ[７]）に対応するデータ信号ＤＳ（Ｄ[０]〜Ｄ[７]）を出力する。
【０２５２】
アドレス用メインＦＦ８２は，バス１３からのＨレベルの有効信号ＹＳ及びアドレス信号（ｙ[０]〜ｙ[７]）を，メインクロック信号１０５に同期してラッチする。
【０２５３】
一方，図１３のスキャン制御部１４は，時間Ｔ６１の内部スナップショット開始信号４０２の立ち上がりに基づいて，ＳＳ用スキャンモード信号１０１を「０００」から「０１０」に切り替える。
【０２５４】
このＳＳ用スキャンモード信号１０１の切替により，メモリＩ／Ｆ１０の動作は，通常動作モードからスナップショットモードに切り替わる。スナップショットモードでは，メモリＩ／Ｆ１０は，後述するスキャンアウトモードの動作を開始するまでの過渡的な動作を行う。
【０２５５】
そして，モード制御回路８１は，「０１０」のＳＳ用スキャンモード信号１０１に基づいて，スナップショット信号１０７をＨレベルにする。これにより，スイッチ７０，７７は，スキャンチェーン配線１５の信号を選択する（「１」側）。
【０２５６】
[スキャンアウトモード（時間Ｔ６３〜Ｔ７０）]
時間Ｔ６２からクロック信号１０４の１クロック経過後の時間Ｔ６３で，図１３のスキャン制御部１４は，ＳＳ用スキャンモード信号１０１を「０１０」から「０１１」に切り替える。それとともに，スキャン制御部１４は，周期がクロック信号１０４の２倍であるＳＳ用スキャンクロック信号１０２を出力する。
【０２５７】
このＳＳ用スキャンモード信号１０１の切替により，メモリＩ／Ｆ１０の動作はスナップショットモードからスキャンアウトモードに切り替わる。
【０２５８】
また，このとき，図１３のテストモードコントローラ８が，アドレス用メインＦＦ８２及びデータ用メインＦＦ７８のスキャンアウトを開始するためにデバッグツール１から出力された，テスト開始を示すテスト開始信号に応答して，Ｈレベルのテストモード信号１０３を出力する。
【０２５９】
モード制御回路８１は，「０１１」のＳＳ用スキャンモード信号１０１とＨレベルのテストモード信号１０３とに基づいて，まず，クロック信号１０４をサブクロック信号１０６として出力し，アドレスセット信号４０３をＬレベルに維持する。
【０２６０】
これにより，スイッチ７２は，Ｌレベルのアドレスセット信号４０３に基づいてバス１３からのアドレス信号ＡＳの選択を維持する（「０」側）。
【０２６１】
そして，データ用サブＦＦ７９は，時間Ｔ６２にメモリ１１から出力されたデータ信号ＤＳ（Ｄ[０]〜Ｄ[７]）を，サブクロック信号１０６に同期してラッチする。
【０２６２】
メモリ１１は，時間Ｔ６２でアドレス用メインＦＦ８２がラッチしたアドレス信号ＡＳ（ｙ[０]〜ｙ[７]）に対応するデータ信号ＤＳ（Ｙ[０]〜Ｙ[７]）を出力する。
【０２６３】
アドレス用サブＦＦ７３は，バス１３からアドレス信号ＡＳ（ｒ[０]〜ｒ[７]）を，サブクロック信号１０６に同期してラッチする。
【０２６４】
一方，モード制御回路８１は，「０１１」のＳＳ用スキャンモード信号１０１とＨレベルのテストモード信号１０３とに基づいて，ＳＳ用スキャンクロック信号１０２をメインクロック信号１０５として出力し，スナップショット信号１０７をＨレベルに維持し，フリップフロップ選択信号１０８をＨレベルにする。
【０２６５】
これにより，スイッチ７０，７７は，Ｈレベルのスナップショット信号１０７に基づいて，スキャンチェーン配線１５の信号を維持する（「１」側）。また，スイッチ７４はアドレス用サブＦＦ７３のラッチ信号を選択し（「１」側），スイッチ８０はデータ用サブＦＦ７９のラッチ信号を選択する（「１」側）。
【０２６６】
その結果，データ用サブＦＦ７９がラッチしたデータ信号ＤＳ（Ｄ[０]〜Ｄ[７]）がバス１３に出力される。なお，スイッチ７４，８０の切替により，時間Ｔ６４以降，後述するように，バス１３からのアドレス信号ＡＳをラッチしたアドレス用サブＦＦ７３のラッチ信号はメモリ１１に供給され，メモリ１１からのデータ信号ＤＳをラッチしたデータ用サブＦＦ７９のラッチ信号はバス１３に出力され，メモリＩ／Ｆ１０は通常動作を継続する。
【０２６７】
また，スイッチ７０，７７の状態により，アドレス用メインＦＦ８２の各フリップフロップＡＭＦ０〜ＡＭF７と，データ用メインＦＦ７８の各フリップフロップＤＭＦ０〜ＤＭＦ７とは，メインクロック信号１０５に同期して，それぞれスキャンチェーン配線１５を介し前段のフリップフロップのラッチ信号をラッチする。つまり，アドレス用メインＦＦ８２及びデータ用メインＦＦ７８のスキャンアウトが開始される。したがって，時間Ｔ６３では，図１３のスキャンアウト端子１８からは，時間Ｔ６２におけるデータ用メインＦＦ７８内のフリップフロップＤＭＦ７のラッチ信号，すなわちデータ信号ＤＳ（Ａ[０]〜Ａ[７]）の最上位の「Ａ[７]」が出力される。
【０２６８】
時間Ｔ６４で，データ用サブＦＦ７９は，時間Ｔ６３にメモリ１１から出力されたデータ信号ＤＳ（Ｙ[０]〜Ｙ[７]）を，サブクロック信号１０６に同期してラッチする。その結果，データ信号ＤＳ（Ｙ[０]〜Ｙ[７]）はバス１３に出力される。
【０２６９】
メモリ１１は，時間Ｔ６３にアドレス用サブＦＦ７３がラッチしたアドレス信号ＡＳ（ｒ[０]〜ｒ[７]）に対応するデータ信号ＤＳ（Ｒ[０]〜Ｒ[７]）を出力する。
【０２７０】
アドレス用サブＦＦ７３は，バス１３からのアドレス信号ＡＳ（ｔ[０]〜ｔ[７]）をサブクロック信号１０６に同期してラッチする。
【０２７１】
このように，メモリＩ／Ｆ１０は，アドレス用サブＦＦ７３及びデータ用サブＦＦ７９を用いて，通常動作を継続する。
【０２７２】
時間Ｔ６５でも，時間Ｔ６３と同様に，アドレス用メインＦＦ８２の各フリップフロップＡＭＦ０〜ＡＭF７と，データ用メインＦＦ７８の各フリップフロップＤＭＦ０〜ＤＭＦ７とは，メインクロック信号１０５に同期して，それぞれスキャンチェーン配線１５を介し前段のフリップフロップのラッチ信号をラッチする。その結果，時間Ｔ６４では，スキャンアウト端子１８からは，時間Ｔ６３におけるフリップフロップＤＭＦ７のラッチ信号「Ａ[６]」が出力される。
【０２７３】
データ用サブＦＦ７９は，時間Ｔ６４にメモリ１１から出力されたデータ信号ＤＳ（Ｒ[０]〜Ｒ[７]）を，サブクロック信号１０６に同期してラッチする。その結果，データ信号ＤＳ（Ｒ[０]〜Ｒ[７]）はバス１３に出力される。
【０２７４】
メモリ１１は，時間Ｔ６４にアドレス用サブＦＦ７３がラッチしたアドレス信号ＡＳ（ｔ[０]〜ｔ[７]）に対応するデータ信号ＤＳ（Ｔ[０]〜Ｔ[７]）を出力する。
【０２７５】
アドレス用サブＦＦ７３は，バス１３からのアドレス信号ＡＳ（ｑ[０]〜ｑ[７]）をサブクロック信号１０６に同期してラッチする。
【０２７６】
このように時間Ｔ６４以降は，メモリＩ／Ｆ１０は通常動作を継続しながら，アドレス用メインＦＦ８２及びデータ用メインＦＦ７８のラッチ信号のスキャンアウトを行う。
【０２７７】
[リターンモード（時間Ｔ７１）]
時間Ｔ７０で，スキャンアウト対象のラッチ信号が「ｙ[０]」のみとなり，テストモードコントローラ８が，アドレス用メインＦＦ８２及びデータ用メインＦＦ７８のスキャンアウトを終了するためにデバッグツール１から出力された，テスト終了を示すテスト開始信号に応答して，テストモード信号１０３をＨレベルからＬレベルにする。
【０２７８】
これにより，時間Ｔ７１で，スキャン制御部１４はＳＳ用スキャンモード信号１０１を「０１１」から「００１」に切り替え，メモリＩ／Ｆ１０の動作はスキャンアウトモードからリターンモードに切り替わる。リターンモードでは，メモリＩ／Ｆ１０は，通常動作モードの動作が開始されるまでの過渡的な動作を行う。
【０２７９】
モード制御回路８１は，まず，クロック信号１０４をサブクロック信号１０６として出力し，フリップフロップ選択信号１０８をＨレベルに維持し，アドレスセット信号４０３をＬレベルに維持する。
【０２８０】
これにより，スイッチ７２は，Ｌレベルのアドレスセット信号４０３に基づいてバス１３からのアドレス信号ＡＳの選択を維持する（「０」側）。スイッチ７４は，Ｈレベルのフリップフロップ選択信号１０８に基づいて，アドレス用サブＦＦ７３のラッチ信号の選択を維持する（「１」側）。また，スイッチ８０は，Ｈレベルのフリップフロップ選択信号１０８に基づいて，データ用サブＦＦ７９のラッチ信号の選択を維持する（「１」側）。
【０２８１】
そして，データ用サブＦＦ７９は，時間Ｔ７０でメモリ１１から出力されたデータ信号ＤＳ（Ｚ[０]〜Ｚ[７]）をサブクロック信号１０６に同期してラッチする。これにより，ラッチされたデータ信号ＤＳ（Ｚ[０]〜Ｚ[７]）はバス１３に出力される。
【０２８２】
また，メモリ１１は時間Ｔ７０でアドレス用サブＦＦ７３がラッチしたアドレス信号（ｅ[０]〜ｅ[７]）に対応するデータ信号ＤＳ（Ｅ[０]〜Ｅ[７]）を出力する。アドレス用サブＦＦ７３は，バスからのアドレス信号ＡＳ（ｕ[０]〜ｕ[７]）をサブクロック信号１０６に同期してラッチする。
【０２８３】
一方，モード制御回路８１は，ＳＳ用スキャンクロック信号１０２をメインクロック信号１０５として出力し，スナップショット信号１０７をＬレベルにする。
【０２８４】
これにより，スイッチ７０は，Ｌレベルのスナップショット信号１０７に基づいて，バス１３からのアドレス信号ＡＳを選択する（「０」側）。また，スイッチ７７は，Ｌレベルのスナップショット信号１０７に基づいて，メモリ１１からのデータ信号ＤＳを選択する（「０」側）。
【０２８５】
[通常動作モード（時間Ｔ７２）]
時間Ｔ７１からクロック信号１０４の１クロック経過後の時間Ｔ７２で，図１３のスキャン制御部１４はＳＳ用スキャンモード信号１０１を「０１」から「００」に切り替え，メモリＩ／Ｆ１０はリターンモードから通常動作モードに切り替わる。それとともにスキャン制御部１４は，ＳＳ用スキャンクロック信号１０２をＬレベルに維持する。
【０２８６】
モード制御回路８１は，まず，クロック信号１０４をメインクロック信号１０５として出力し，Ｌレベルのテストモード信号１０３をスナップショット信号１０７として出力する。
【０２８７】
これにより，スイッチ７０は，Ｌレベルのスナップショット信号１０７に基づいて，バスからのアドレス信号ＡＳの選択を維持する（「０」側）。スイッチ７７は，Ｌレベルのスナップショット信号１０７に基づいて，メモリ１１からのデータ信号ＤＳの選択を維持する（「０」側）。
【０２８８】
そして，データ用メインＦＦ７８は，時間Ｔ７１でメモリから出力されたデータ信号ＤＳ（Ｅ[０]〜Ｅ[７]）を，メインクロック信号１０５に同期してラッチする。その結果，データ信号ＤＳ（Ｅ[０]〜Ｅ[７]）がバス１３に出力される。
【０２８９】
メモリ１１は，時間Ｔ７１でアドレス用サブＦＦ７３がラッチしたアドレス信号ＡＳ（ｕ[０]〜ｕ[７]）に対応するデータ信号ＤＳ（Ｕ[０]〜Ｕ[７]）を出力する。
【０２９０】
アドレス用メインＦＦ７１は，バス１３からのアドレス信号ＡＳ（ｂ[０]〜ｂ[７]）をメインクロック信号１０５に同期してラッチする。
【０２９１】
一方，モード制御回路８１は，サブクロック信号１０６をＬレベルにし，フリップフロップ選択信号１０８をＬレベルにし，アドレスセット信号４０３をＬレベルに維持する。
【０２９２】
これにより，スイッチ７２は，Ｌレベルのアドレスセット信号４０３に基づいてバス１３からのアドレス信号ＡＳの選択を維持する（「０」側）。スイッチ７４は，Ｌレベルのフリップフロップ選択信号１０８に基づいて，アドレス用メインＦＦ７１を選択する（「０」側）。また，スイッチ８０は，Ｌレベルのフリップフロップ選択信号１０８に基づいて，データ用メインＦＦ７８を選択する（「０」側）。
【０２９３】
このようにして，時間Ｔ７２以降のスイッチ７０，７２，７４，７７，８０は，時間Ｔ６０の通常動作モードにおける選択状態と同じになるため，メインＩ／Ｆ１０は，アドレス用メインＦＦ８２及びデータ用メインＦＦ７３を用いて通常動作を行うことができる。
【０２９４】
以上のように，図２６では，セットモードでアドレス用サブＦＦ７３が監視アドレス信号をラッチした後の通常動作モードで，アドレス用メインＦＦ８２が有効なアドレス信号ＡＳをラッチしないと，監視アドレス信号がメモリ１１に入力され，監視アドレス信号と等しいアドレス信号ＡＳに対応するデータ信号ＤＳがデータ用メインＦＦ７８にラッチされる。それとともに，そのデータ信号ＤＳをスキャンアウトするために，通常動作モードからスキャンアウトモードへの切替動作が開始される。そして，スキャンアウトモードにおいて，メモリＩ／Ｆ１０はアドレス用サブＦＦ７３及びデータ用サブＦＦ７９を使用して通常動作を継続しながら，監視アドレス信号に対応するデータ信号ＤＳ，すなわち所望のアドレスのデータを，データ用メインＦＦ７８からスキャンアウトする。
【０２９５】
以上の実施の形態をまとめると，次の付記のとおりである。
【０２９６】
（付記１）
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと，
組合せ回路の出力信号と前記スキャンチェーンの信号とのいずれかを選択する第１のスイッチと，
前記スキャンチェーンに挿入され，前記第１のスイッチの出力信号を入力する第１のラッチと，
前記組合せ回路の出力信号を入力する第２のラッチと，
前記第１のラッチのラッチ信号と前記第２のラッチのラッチ信号とのいずれかを選択し後段の組合せ回路に供給する第２のスイッチとを有する半導体装置。
【０２９７】
（付記２）  
付記１において，
前記組合せ回路と，前記第１及び第２のスイッチと，前記第１及び第２のラッチとを有するスキャンユニットを複数段有し，前段の前記スキャンユニットの前記第２のスイッチの出力が後段の前記スキャンユニットの前記組合せ回路に入力し，前段の前記スキャンユニットの前記第１のラッチのラッチ信号及び後段の前記スキャンユニットの前記第１のスイッチが前記スキャンチェーンを介して接続される半導体装置。
【０２９８】
（付記３）
付記１又は２において，
さらに，前記第１のスイッチが前記組合せ回路の出力信号を選択し，前記第１のラッチは前記第１のスイッチを介して前記組合せ回路の出力信号をラッチし，前記第２のスイッチは前記第１のラッチのラッチ信号を選択する通常動作モードと，
前記第１のスイッチが前記スキャンチェーンの信号を選択して前記第１のラッチのラッチ信号を前記スキャンチェーンを介して出力し，前記第２のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチは前記第２のラッチのラッチ信号を選択するスキャンアウトモードとを，
切替制御する制御部を有する半導体装置。
【０２９９】
（付記４）
付記３において，
前記制御部は，任意のタイミングで前記通常動作モードから前記スキャンアウトモードに切り替え，所定の時間経過後，前記スキャンアウトモードから前記通常動作モードに切り替える半導体装置。
【０３００】
（付記５）
付記４において，
前記制御部は，前記通常動作モードから前記スキャンアウトモードに切り替えるとき，前記第１のラッチが前記組合せ回路の出力信号をラッチし前記第１のスイッチが前記スキャンチェーンの信号に選択を切り替えるスナップショットモードを介して切り替え， 前記スナップショットモードの後の前記スキャンアウトモードで，前記第２のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチが前記第２のラッチのラッチ信号に選択を切り替える半導体装置。
【０３０１】
（付記６）
付記４において，
前記制御部は，前記スキャンアウトモードから前記通常動作モードに切り替えるとき，前記第２のラッチが前記組合せ回路の出力信号をラッチし前記第１のスイッチが前記組合せ回路の出力信号に選択を切り替えるリターンモードを介して切り替え， 前記リターンモードの後の前記通常動作モードで，前記第１のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチが前記第１のラッチのラッチ信号に選択を切り替える半導体装置。
【０３０２】
（付記７）
付記３において，
前記制御部は，前記第２のラッチが前記組合せ回路の出力信号をラッチし前記第２のスイッチが前記第２のラッチのラッチ信号を選択する代替モードに切り替える半導体装置。
【０３０３】
（付記８）
付記３において，
さらに，複数の前記第２のラッチのラッチ信号をスキャン入出力するサブスキャンチェーンと，
前記組合せ回路と前記第２のラッチの間に，前記組合せ回路の出力信号又は前記サブスキャンチェーンの信号のいずれかを選択する第３のスイッチとを有し，
前記制御部は，前記第３のスイッチが前記サブスキャンチェーンの信号を選択し前記第２のラッチは前記第３のスイッチを介して前記サブスキャンチェーンの信号をラッチし，前記第２のラッチのラッチ信号が前記サブスキャンチェーンを介して出力されるスキャンテストモードに切り替える半導体装置。
【０３０４】
（付記９）
付記３乃至付記８のいずれかに記載の半導体装置と，
前記制御部に前記通常動作モードから前記スキャンアウトモードへの切替信号を供給し，前記スキャンアウトモードで前記第１のラッチのラッチ信号を供給されるデバッグ装置とを有するデバッグシステム。
【０３０５】
（付記１０）
付記８記載の半導体装置と，
前記制御部に前記通常動作モードから前記スキャンアウトモードへの切替信号を供給し，前記スキャンアウトモードで前記第１のラッチのラッチ信号を供給され，前記制御部に前記通常動作モードから前記スキャンテストモードへの切替信号を供給し，前記スキャンテストモードで前記第２のラッチのラッチ信号を供給されるデバッグ装置とを有するデバッグシステム。
【０３０６】
（付記１１）
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと，組合せ回路の出力信号と前記スキャンチェーンの信号とのいずれかを選択する第１のスイッチと，前記スキャンチェーンに挿入され前記第１のスイッチの出力信号を入力する第１のラッチと，前記組合せ回路の出力信号を入力する第２のラッチと，前記第１のラッチのラッチ信号と前記第２のラッチのラッチ信号とのいずれかを選択し前記組合せ回路の後段の組合せ回路に供給する第２のスイッチとを有する半導体装置の試験方法において，
前記第１のスイッチで前記組合せ回路の出力信号を選択して前記組合せ回路の出力信号を前記第１のラッチでラッチし，前記第２のスイッチで前記第１のラッチのラッチ信号を選択して前記後段の組合せ回路に前記第１のラッチのラッチ信号を入力する通常動作工程と，
前記第１のスイッチで前記スキャンチェーンの信号を選択して前記スキャンチェーンを介して前記第１のラッチのラッチ信号を出力し，前記第２のラッチで前記組合せ回路の出力信号をラッチし，前記第２のスイッチで前記第２のラッチのラッチ信号を選択して前記第２のラッチのラッチ信号を前記後段の組合せ回路に入力するスキャンアウト工程とを有する半導体装置の試験方法。
【０３０７】
（付記１２）
付記１１において，
さらに，前記通常動作工程から前記スキャンアウト工程に切り替えるとき，前記第１のラッチが前記組合せ回路の出力信号をラッチし前記第１のスイッチが前記スキャンチェーンの信号に選択を切り替えるスナップショット工程と，
前記スキャンアウト工程から前記通常動作工程に切り替えるとき，前記第２のラッチが前記組合せ回路の出力信号をラッチし前記第１のスイッチが前記組合せ回路の出力信号に選択を切り替えるリターン工程とを有し，
前記スナップショット工程の後の前記スキャンアウト工程で，前記第２のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチが前記第２のラッチのラッチ信号に選択を切り替え，
前記リターン工程の後の前記通常動作工程で，前記第１のラッチが前記組合せ回路の出力信号をラッチし，前記第２のスイッチが前記第１のラッチのラッチ信号に選択を切り替える半導体装置の試験方法。
【０３０８】
（付記１３）
メモリと，
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと，
バスからの前記メモリのアドレス信号と前記スキャンチェーンの信号とのいずれかを選択する第１のスイッチと，
前記スキャンチェーンに挿入され，前記第１のスイッチの出力信号を入力する第１のラッチと，
前記アドレス信号と前記スキャンチェーンの信号とのいずれかを選択する第２のスイッチと，
前記スキャンチェーンに挿入され，前記第２のスイッチの出力信号を入力する第２のラッチと，
前記第１のラッチのラッチ信号と前記第２のラッチのラッチ信号とのいずれかを選択し後段の前記メモリに供給する第３のスイッチと，
前記メモリからのデータ信号と前記スキャンチェーンの信号とのいずれかを選択する第４のスイッチと，
前記スキャンチェーンに挿入され，前記第４のスイッチの出力信号を入力する第３のラッチと，
前記データ信号を入力する第４のラッチと，
前記第３のラッチのラッチ信号と前記第４のラッチのラッチ信号とのいずれかを選択し前記バスに供給する第５のスイッチとを有する半導体装置。
【０３０９】
（付記１４）
付記１３において，
前記第１のスイッチが前記アドレス信号を選択し，前記第１のラッチが前記第１のスイッチを介して入力する前記アドレス信号をラッチし，前記第３のスイッチが前記第１のラッチのラッチ信号を選択し，前記第４のスイッチが前記メモリの出力信号を選択し，前記第３のラッチが前記第４のスイッチを介して入力する前記データ信号をラッチし，前記第５のスイッチが前記第３のラッチのラッチ信号を選択する通常動作モードと，
前記第２のスイッチが前記スキャンチェーンの監視アドレス信号を選択し，前記第２のラッチが前記第２のスイッチを介して入力する前記監視アドレス信号をラッチするセットモードと，
前記第１のスイッチが前記スキャンチェーンの信号を選択して前記第１のラッチのラッチ信号を前記スキャンチェーンを介して出力し，前記第２のスイッチが前記アドレス信号を選択し，前記第２のラッチが前記第２のスイッチを介して入力する前記アドレス信号をラッチし，前記第３のスイッチが前記第２のラッチのラッチ信号を選択し，前記第４のスイッチが前記スキャンチェーンの信号を選択して前記第３のラッチのラッチ信号を前記スキャンチェーンを介して出力し，前記第４のラッチが前記データ信号をラッチし，前記第５のスイッチが前記第４のラッチのラッチ信号を選択するスキャンアウトモードとを，
切替制御する制御部を有する半導体装置。
【０３１０】
（付記１５）
付記１４において，
前記制御部は，前記セットモードから前記通常動作モードに切り替えた後，前記第１のラッチのラッチ信号と，前記第２のラッチが前記セットモードでラッチした前記監視アドレス信号とが等しいとき，前記通常動作モードから前記スキャンアウトモードに切替制御し，
前記第３のラッチは，前記通常動作モードから前記スキャンアウトモードに切り替わるときに，前記メモリから出力された前記監視アドレス信号に対応する前記データ信号をラッチする半導体装置。
【０３１１】
（付記１６）
付記１４において，
前記制御部は，前記セットモードから前記通常動作モードに切り替えた後，前記第１のラッチが有効なアドレス信号をラッチしていない状態のとき，前記通常動作モードから前記スキャンアウトモードに切替制御し，
前記第２のラッチがラッチした監視アドレス信号は，前記通常動作モードから前記スキャンアウトモードに切り替わるときに，前記第３のスイッチを介して前記メモリに入力し，
前記第３のラッチは，前記通常動作モードから前記スキャンアウトモードに切り替わるときに，前記メモリから出力された前記監視アドレス信号に対応する前記データ信号をラッチする半導体装置。
【符号の説明】
【０３１２】
ＦＦ，ＡＭＦ，ＤＭＦ，ＡＳＦ，ＤＳＦ  ：フリップフロップ
ＩＤＬＥ：通常動作モード
ＳＳ：スナップショットモード
ＳＯＵＴ：スキャンアウトモード
ＲＥＴ：リターンモード
ＳＥＴ：セットモード
【図１】
0005949410.tif 000002
【図２】
0005949410.tif 000003
【図３】
0005949410.tif 000004
【図４】
0005949410.tif 000005
【図５】
0005949410.tif 000006
【図６】
0005949410.tif 000007
【図７】
0005949410.tif 000008
【図８】
0005949410.tif 000009
【図９】
0005949410.tif 000010
【図１０】
0005949410.tif 000011
【図１１】
0005949410.tif 000012
【図１２】
0005949410.tif 000013
【図１３】
0005949410.tif 000014
【図１４】
0005949410.tif 000015
【図１５】
0005949410.tif 000016
【図１６】
0005949410.tif 000017
【図１７】
0005949410.tif 000018
【図１８】
0005949410.tif 000019
【図１９】
0005949410.tif 000020
【図２０】
0005949410.tif 000021
【図２１】
0005949410.tif 000022
【図２２】
0005949410.tif 000023
【図２３】
0005949410.tif 000024
【図２４】
0005949410.tif 000025
【図２５】
0005949410.tif 000026
【図２６】
0005949410.tif 000027