以下,図面を用いて本発明の実施の形態について説明する。
図1は,LSIの構成例を示す図である。図1のLSI4は,インサーキットエミュレータ(ICE)2を介し,ホストPC等デバッグツール1に接続している。デバッグツール1は,ICE2を介して,後述するスキャンイン信号とテスト開始信号とをLSI4に出力する。また,デバッグツール1は,後述するスキャンアウト信号をLSI4から供給される。
さらに,LSI4は,オンチップデバッガ(OCD)6と,CPU7と,デバッグツール1からICE2と外部端子5とを介して入力されるテスト開始信号に応じてテストモード信号を生成するテストモードコントローラ(TMC)8と,クロック信号を生成するクロック信号ユニット9と,メモリインターフェース10と,メモリ11と,周辺機能回路12と,内部バス13とを有する。そしてLSI4は,後述するスナップショット用スキャンクロック信号(以下,SS用スキャンクロック信号と記す。)とスナップショット用スキャンモード信号(以下,SS用スキャンモード信号と記す。)を出力するスキャン制御部14とを有する。
また,LSI4は,CPU7,メモリIF10,周辺機能回路12内の組合せ回路(ロジック回路)の間に設けられるメインFF群を接続するメインスキャンチェーン配線15と,各メインFFに対応して設けられ,対応するメインFFがラッチする組合せ回路の出力信号をラッチするサブFFを接続するSS用スキャンチェーン配線16とを有する。LSI4は,すなわち,複数のメインFFとそれらを接続するメインスキャンチェーン配線15とを有するスキャンチェーンと共に,複数のサブFFとそれらを接続するSS用スキャンチェーン配線16とを有するSS用スキャンチェーンとが設けられている。
図2は,LSIの内部状態を読み出すための内部回路の構成を示す図である。図2の構成は,周辺機能回路12,メモリインターフェース10,CPU7内の一部の内部回路30を示す。内部回路30は,組合せ回路31,35と,メインFF33,37とを有し,通常動作時,メインFF33,37は組合せ回路31,35の出力信号をクロック信号に同期してラッチする。
また,メインスキャンチェーン配線15を介してスキャンアウト端子18からLSI4の内部状態を示すメインFFのデータを出力できるように,内部回路30は,さらに,メインFF33と37とを接続するメインスキャンチェーン配線15と,組合せ回路33,35とメインFF33,37との間に設けられ,テストモード信号に応答してメインスキャンチェーン配線15の信号と組合せ回路33,37の出力信号とのいずれかを選択するスイッチ32,36とを有する。
この内部回路30では,不良解析のために,スイッチ32,36がメインスキャンチェーン配線15の信号を選択して,メインスキャンチェーン配線15を介してメインFF33,37のデータがスキャンアウト端子18から出力される。しかし,この場合,スイッチ32,36がスキャンチェーン配線15を選択するため,組合せ回路31,35とメインFF33,37とによる通常動作が中断されてしまう。
そこで,組合せ回路とメインFFが通常動作を継続しながら,任意のタイミングで内部回路30の内部状態を抽出できるように,図2の内部回路30は,さらに,サブFF40,42と,サブFF40と42とを接続するSS用スキャンチェーン配線16と,メインFF33,37とサブFF40,42との間にSS用スキャンモード信号に応答してSS用スキャンチェーン配線16の信号とメインFF33,37の出力信号とを選択するスイッチ39,41とを有している。
通常動作時,スイッチ39,41はSS用スキャンモード信号により「0」側を選択し,サブFF40,42はSS用スキャンクロック信号に同期して,メインFF33,37のラッチ信号をラッチする。そして,スキャンテスト時,スイッチ39,41がSS用スキャンチェーン配線16の信号を選択することで,SS用スキャンチェーン配線16を介してサブFF40,42のデータを出力する。この構成であれば,内部回路30は,組合せ回路31,35とメインFF33,37とによる通常動作を継続しながら,任意のタイミングでのLSI4のメインFF内の内部状態をサブFF33,37のSS用スキャンチェーン配線16を使って読み出すことができる。
図2に示す構成により,LSI4の内部状態を読み出すためにスキャンテストが行われる。スキャンテストでは,まず,スキャンテスト用の入力信号として,デバッグツール1からICE2とスキャンイン端子17とを介してメインFF33,37にスキャンイン信号が入力される。すなわち,最初に,入力されたテスト開始信号に応答してテストモードコントローラ8によりHレベルのテストモード信号が生成される。スイッチ32,36は,このテストモード信号に応答してメインスキャンチェーン配線15の信号を選択し,メインスキャンチェーン配線15を介してメインFF33,37にスキャンイン信号を入力する。
次に,LSI4を通常動作させる。具体的には,まず,スイッチ32,36が組合せ回路31,35の出力信号(スイッチ「0」側)を選択するようにテストモードコントローラ8はテストモード信号をLレベルにし,所望の入力テストパターンがLSI4に入力されてクロックユニット9によりクロック信号が生成され,内部回路30は組合せ回路31,35とメインFF33,37とによる通常動作をする。これにより,メインFF33,37は,クロック信号に同期して組合せ回路31,35の出力信号をラッチする。
さらに,スイッチ39,41がメインFF33,37の出力信号(スイッチ「0」側)を選択するようにスキャン制御部14はSS用スキャンモード信号をLレベルにし,SS用スキャンクロック信号を生成する。 サブFF40,42は,SS用スキャンクロック信号に同期して,メインFF33,37のラッチ信号をラッチする。
そして,任意のタイミングで,スキャン制御部によりHレベルのSS用スキャンモード信号が出力される。これにより,スイッチ39,41は,SS用スキャンチェーン配線16の信号(スイッチ「1」側)を選択し,サブFF40は,図示しない前段のサブFFのラッチ信号をラッチし,サブFF42は,SS用スキャンクロック信号に応じてサブFF40のラッチ信号をラッチする。
このように,SS用スキャンチェーン配線16で接続される全てのサブFFについて,前段のサブFFのラッチ信号が順にその後段のサブFFにラッチされることで,LSI4の内部状態を示すデータが,SS用スキャンチェーン配線16を介してスキャンアウト端子18から,スキャンアウト信号として出力される。また,SS用スキャンチェーン配線16を介してサブFFのラッチ信号をスキャンアウトしている間,スイッチ32,36は組合せ回路31,35の出力信号を選択しているため,内部回路30は,組合せ回路31,35とメインFF33,37とを用いて通常動作を継続することができる。
以上のように図2では,内部回路30が通常動作を継続しながら,任意のタイミングで,LSI4の内部状態を示すデータが読み出される。しかし,サブFF40,42はスキャンテスト専用の回路であり,このようなサブFFをLSI4に設けることはコスト増加を招き望ましくない。また,図2では,メインFF33,37とサブFF40,42とがそれ自体は正常に動作していても,仮にメインFFとサブFFとの間の配線で不具合があると,サブFF40,42は正しくラッチできないため,スキャンアウト端子18から出力されたサブFFのデータが正しくないリスクがある。
[第1の実施の形態]
そこで,第1の実施の形態では,図1,図2のSS用スキャンチェーン配線16を無くして,図3,図4に示す半導体装置により,後述するようにサブFFを使用して内部回路の動作を継続しながら,メインスキャンチェーン配線を介してスキャンアウト端子からLSIの内部状態を読み出す。
図3は,第1の実施の形態におけるLSIの構成図である。図3のLSI4は,図1のLSI4からSS用スキャンチェーン16が除かれ,外部端子19が追加された構成となっており,後述するように,周辺機能回路12,メモリインターフェース10,CPU7内の内部回路の構成が図1と異なる。また,デバッグツール1からは,スナップショット開始信号が,ICE2を介してLSI4に入力される。そして,スキャン制御部14は,外部端子19を介して入力されるスナップショット開始信号に応答して,SS用スキャンモード信号101とSS用スキャンクロック信号102とを出力する。
図4は,第1の実施の形態における内部回路の構成を示す図である。図4の構成は,図3のLSI4が有する周辺機能回路12,メモリインターフェース10,CPU7内の一部の内部回路30を示す。
図4の内部回路50は,組合せ回路51,56と,メインFF53,58とを有し,通常動作時,メインFF53,58は後述するメインクロック信号105に同期して組合せ回路51,56の出力信号をラッチする。
また,内部回路50は,メインFF53と58とを接続するメインスキャンチェーン配線15と,後述するスナップショット信号107に応答して組合せ回路53,58の出力信号とメインスキャンチェーン配線15とのいずれかを選択するスイッチ52,57とを有する。
この内部回路50では,不良解析のために,スイッチ52,57がメインスキャンチェーン配線15の信号を選択する。そして,メインスキャンチェーン配線15を介してメインFF53,58のデータが,スキャンアウト信号としてスキャンアウト端子18から出力され,ICE2を介してデバッグツールに供給される。しかし,この場合,スイッチ52,57がメインスキャンチェーン配線15の信号を選択するため,組合せ回路51,56とメインFF53,58とによる通常動作が中断されてしまう。
そこで,内部回路50は,さらに,サブFF54,59と,後述するフリップフロップ選択信号108に応答してメインFF53,58のラッチ信号とサブFF54,59のラッチ信号とのいずれかを選択するスイッチ55,60と,通常動作時とスキャンテスト時の内部回路50の動作を制御するモード制御回路61とを有する。
モード制御回路61は,SS用スキャンモード信号101とSS用スキャンモード信号102とテストモード信号103とクロック信号104とを入力し,メインクロック信号105とサブクロック信号106とスナップショット信号107とフリップフロップ選択信号108とを出力する。
これにより,通常動作時は,スイッチ52,57は,スナップショット信号107により組合せ回路51,56の出力信号(スイッチ「0」側)を選択し,スイッチ55,60はフリップフロップ選択信号108によりメインFF53,58のラッチ信号(スイッチ「0」側)を選択し,メインFF53,58はメインクロック信号105に同期して組合せ回路51,56の出力信号をラッチする。それと共に,メインFF53,58のラッチ信号が後段の組合せ回路56等に入力する。
そして,スキャンテスト時は,スイッチ52,57は,スナップショット信号107によりメインスキャンチェーン配線15の信号(スイッチ「1」側)を選択し,スイッチ55,60はフリップフロップ選択信号108によりサブFF54,59のラッチ信号(スイッチ「1」側)を選択する。それにより,サブFF54,59はサブクロック信号106に同期して組合せ回路51,56の出力信号をラッチする。それと共に,サブFFは54,59のラッチ信号が後段の組合せ回路56等に入力する。また,メインFF58は,メインクロック信号105に同期してメインFF53のラッチ信号をラッチし,さらに,メインFF53は,メインクロック信号105に同期して,図示しない前段のメインFFのラッチ信号をラッチする。
このようにして,メインスキャンチェーン配線15で接続される全てのメインFFでは,前段のメインFFのラッチ信号が順に後段のメインFFにラッチされることで,スナップショット信号107のタイミングにおけるLSIの内部状態を示すデータがメインスキャンチェーン配線15を介してスキャンアウト端子18から出力されデバッグツール1に供給される。また,メインスキャンチェーン配線15を介してメインFFのラッチ信号をスキャンアウトしている間,スイッチ55,60はサブFF54,59のラッチ信号を選択しているため,内部回路50は,組合せ回路51,56とサブFF54,59とを用いて通常動作を継続することができる。
以上のように,図4では,メインスキャンチェーン配線15を介してスナップショット信号107のタイミングでのLSIの内部状態であるメインFF53,54のラッチ信号が読み出されるため,図1及び図2のSS用スキャンチェーン配線16に相当する配線が不要となる。また,上述のとおり図2では読み出されたサブFFのデータが正しくないリスクがある。しかし,メインFF53,58は通常動作で正常に動作することが検証されており,図4ではメインFFを使ってデータを読み出すためこのようなリスクは生じない。
第1の実施の形態では,内部回路50の動作は4つの動作モード(通常動作モード,スナップショットモード,スキャンアウトモード,リターンモード)に分けられる。図5は,第1の実施の形態における動作モードを示す図である。図5(1)はSS用スキャンモード信号101と動作モードの切替条件と切替後の動作モード,図5(2)はモード制御回路61の出力信号を示す。
通常動作モードでは,内部回路50は組合せ回路51,56とメインFF53,58とを用いて通常動作を行う。すなわち,この動作モードでは,上述のとおり,スイッチ52,57は,スナップショット信号107により組合せ回路51,56の出力信号(スイッチ「0」側)を選択し,スイッチ55,60はフリップフロップ選択信号によりメインFF53,58のラッチ信号(スイッチ「0側」)を選択する。
図5(1)に示すように,通常動作モードIDLEでは,2ビットのSS用スキャンモード信号101が「00」に対応する。また,図5(2)に示すように,通常動作モードIDLEでは,モード制御回路61は,入力されたクロック信号104,テストモード信号103をそれぞれメインクロック信号105,スナップショット信号107として出力する。また,モード制御回路61は,出力するサブクロック信号106,フリップフロップ選択信号108をLレベルにする。すなわち,通常動作モードIDLEでは,サブクロック信号106を入力するサブFF54,59は組合せ回路51,59の出力信号をラッチしない。また,フリップフロップ選択信号108を入力するスイッチ55,60はメインFF53,58のラッチ信号(スイッチ「0」側)を選択する。
図5(1)に戻り,通常動作モードIDLEでは,スナップショット開始信号がLレベルの間,内部回路50は通常動作モードIDLEを継続する。しかし,任意のタイミングでスナップショット開始信号がHレベルになると,スキャン制御部14はSS用スキャンモード信号101を「00」から「10」に切り替え,動作モードはスナップショットモードSSに切り替わる。
スナップショットモードSSは,通常動作モードのときにHレベルのスナップショット開始信号が入力されてSS用スキャンモード信号101が「00」から「10」に切り替えられてから,後述するスキャンアウトモードSOUTの動作が開始されるまでの内部回路50の過渡的な動作である。
図5(1)に示すように,スナップショットモードSSではクロック信号104の1クロック経過後に,スキャンアウトモードSOUTに切り替わる。すなわち,スキャン制御部14はSS用スキャンモード信号101を「10」から「11」に切り替える。また,図5(2)に示すように,スナップショットモードSSでは,モード制御回路61は,スナップショット信号107をHレベルにし,信号105,106,108は通常動作モードと同様に保つ。これにより,スナップショット信号107を入力するスイッチ52,57は,メインスキャンチェーン配線15の信号(スイッチ「1」側)を選択する。
スキャンアウトモードSOUTでは,内部回路50は組合せ回路51,56とサブFF54,59とを用いて通常動作を行う。すなわち,この動作モードでは,上述のとおり,スイッチ52,57は,Hレベルのスナップショット信号107によりメインスキャンチェーン配線15の信号(スイッチ「1」側)を選択し,スイッチ55,60はHレベルのフリップフロップ選択信号によりサブFF54,59のラッチ信号(スイッチ「1」側)を選択する。
図5(1)に示すように,スキャンアウトモードSOUTでは,テストモード信号103がHレベルの間,内部回路50はスキャンアウトモードSOUTの動作を継続する。
一方,任意のタイミングでテストモード信号103がLレベルになると,動作モードはリターンモードに切り替わる。すなわち,スキャン制御部14はSS用スキャンモード信号101を「11」から「01」に切り替える。
スキャンアウトモードSOUTでは,モード制御回路61は,図5(2)に示すとおり,入力されたSS用スキャンクロック信号102,クロック信号104をそれぞれメインクロック信号105,サブクロック信号106として出力し,出力するスナップショット信号107,フリップフロップ選択信号108をHレベルにする。これにより,フリップフロップ選択信号108を入力するスイッチ55,60は,サブFF54,59のラッチ信号(スイッチ「1」側)を選択する。すなわち,スキャンアウトモードSOUTでは,内部回路50は組合せ回路51,56とサブFF54,59とで通常動作を継続し,メインスキャンチェーン配線15を介してメインFF53,58のラッチ信号がスキャンアウトされ読み出される。
リターンモードRETは,上述のようにSS用スキャンモード信号101が「11」から「01」に切り替えられてから,通常動作モードIDLEの動作が開始されるまでの内部回路50の過渡的な動作を表す。
図5(1)に示すように,リターンモードRETは,クロック信号104の1クロック経過後に,通常動作モードIDLEに切り替わる。すなわち,スキャン制御部14はSS用スキャンモード信号101を「01」から「00」に切り替える。また,モード制御回路は,スナップショット信号107をLレベルにし,信号105,106,108に対してはスキャンアウトモードの状態を継続する。
このようにして,内部回路50の動作モードは,図5(1)に示す切替条件を満たした場合に,通常動作モード,スナップショットモード,スキャンアウトモード,リターンモードの順に切り替わる。
これらの4つの動作モードにおける内部回路50の具体的な動作について,図6〜図10を用いて説明する。図6は,第1の実施の形態におけるモード制御回路から出力される信号の波形図である。内部回路50には,図示しない1つのメインFF(以下,前段メインFFと記す。)とこれに対応するサブFF(以下,前段サブFFと記す。)がメインFF53の前段に,さらにその前段に1つのメインFF(以下,前々段メインFFと記す。)とこれに対応するサブFF(以下,前々段サブFFと記す。)があるものとし,メインスキャンチェーン配線15に接続するメインFFはこれら4個のメインFFとする。
[通常動作モード(時間T1〜T2)]
時間T1では,SS用スキャンモード信号101は「00」であり,内部回路50の動作は通常動作モードIDLEである。
図7は,第1の実施の形態における通常動作モードの動作状態を示す図である。通常動作モードでは,モード制御回路61は,メインクロック信号105としてクロック信号104を出力し,サブクロック信号106,スナップショット信号107,フリップフロップ選択信号108をLレベルにする。
そして,図7(1)の実線で示すように,スイッチ52,57は,Lレベルのスナップショット信号107により組合せ回路51,56の出力信号(スイッチ「0」側)を選択し,スイッチ55,60は,Lレベルのフリップフロップ選択信号108によりメインFF53,58のラッチ信号を選択する。
これにより,メインFF53,58は,メインクロック信号105の立ち上がりに応答して,時間T1より1クロック前における組合せ回路51,56の出力信号「1」,「A」をラッチする。これらのラッチ信号は,さらに後段の組合せ回路56等に入力する。そして,組合せ回路51,56は,前段メインFF,メインFF53のラッチ信号を入力して内部のロジック回路により出力信号「2」,「B」を出力する。そして,組合せ回路51,56の出力信号「2」,「B」は,スイッチ52,57を介してメインFF53,58の入力端子まで届けられる。
このようにして,時間T1では,内部回路50は組合せ回路51,56とメインFF53,58を用いて通常動作を行う。
時間T2では,LSI4の内部状態を読み出すために,クロック信号104の1周期の間だけ,Hレベルのスナップショット開始信号がLSI4に入力される。また,内部回路50はT1と同様にして通常動作を行う。組合せ回路51,56の出力信号「3」,「C」は,スイッチ52,57を介してメインFF53,58の入力端子まで届けられる。
[スナップショットモード(時間T3)]
時間T3では,スキャン制御部14は,Hレベルのスナップショット開始信号に応答して,SS用スキャンモード信号101を「00」から「10」に切り替え,内部回路50の動作モードは通常動作モードからスナップショットモードに切り替わる。
図8は,第1の実施の形態におけるスナップショットモードの動作状態を示す図である。スナップショットモードでは,モード制御回路61は,クロック信号104をメインクロック信号105として出力し,スナップショット信号107をHレベルにする。また,モード制御回路61は,サブクロック信号106とフリップフロップ選択信号108をLレベルに保つ。
これにより,図8(1)の実線に示すように,メインFF53,58は,メインクロック信号105の立ち上がりに応答して,時間T2における組合せ回路51,56の出力信号「3」,「C」をラッチする。スイッチ55,60が「0」側を選択しているので,これらの信号は,さらに,後段の組合せ回路56等へ入力する。そして,組合せ回路51,56は,前段メインFF,メインFF53のラッチ信号を入力して出力信号「4」,「D」を出力し,これらの出力信号「4」,「D」は,サブFF54,59の入力端子まで届けられる。それと共に,図8(2)の実線に示すように,スイッチ52,57は,Hレベルのスナップショット信号107により,メインスキャンチェーン配線15の信号(スイッチ「1」側)に切り替える。
このように通常動作モードからスナップショットモードへ切り替えると,メインFF53,58のラッチ後にスイッチ52,57の切替が行われる。これにより,メインFF53,58のラッチ信号がスイッチ55,60を介して後段の組合せ回路56等へ入力し,組合せ回路51,56は前段メインFF,メインFF53のラッチ信号を入力して出力信号「4」,「0」を出力する。
[スキャンアウトモード(時間T4〜T8)]
時間T3からクロック信号104の1クロック経過後の時間T4で,内部回路50の動作モードはスナップショットモードからスキャンアウトモードに切り替わる。すなわち,スキャン制御部14がSS用スキャンモード信号101を「10」から「11」に切り替える。
時間T4で,スキャン制御部14は,周期がクロック信号104の2倍であるSS用スキャンクロック信号102を,3周期生成する。また,時間T4からクロック信号104の4周期の間,Hレベルのテストモード信号103がテストモードコントローラ8から出力される。
図9は,第1の実施の形態におけるスキャンアウトモードの動作状態を示す図である。スキャンアウトモードでは,モード制御回路61は,SS用スキャンクロック信号102をメインクロック信号105として出力し,クロック信号104をサブクロック信号106として出力する。また,モード制御回路61は,出力するスナップショット信号107,フリップフロップ選択信号108をHレベルにする。
これにより,図9(1)の実線で示すように,サブFF54,59は,サブクロック信号106に同期して,時間T3における組合せ回路51,56の出力信号「4」,「D」をラッチする。それと共に,図9(2)の実線で示すように,スイッチ55,60は,Hレベルのフリップフロップ選択信号108により,サブFF54,59のラッチ信号(スイッチ「1」側)に切り替える。これにより,サブFF54,59のラッチ信号「4」,「0」が後段の組合せ回路56等に入力する。そして,組合せ回路51,56は,前段サブFF,サブFF54のラッチ信号を入力して出力信号「5」,「E」を出力し,これらの出力信号「5」,「E」は,サブFF54,59の入力端子まで届けられる。
このようにして,スナップショットモードからスキャンアウトモードに切り替わると,サブFF54,59のラッチ後に,スイッチ55,60の切替が行われる。これにより,サブFF54,59のラッチ信号が後段の組合せ回路56等に入力され,組合せ回路51,56は前段サブFF,サブFF54のラッチ信号を入力し出力信号「5」,「E」を出力する。
一方,図9(1),(2)に示すように,スイッチ52,57は,Hレベルのスナップショット信号107により,メインスキャンチェーン配線15の信号(スイッチ「1」側)を選択する。これにより,メインFF53は,メインクロック信号105に同期し,メインスキャンチェーン配線15を介して,時間T3における前段メインFFのラッチ信号「F2」をラッチする。また,メインFF58は,メインクロック信号105に同期し,メインスキャンチェーン配線15を介して,時間T3におけるメインFF53のラッチ信号「3」をラッチする。そして,スキャンアウト端子18からは,時間T3におけるメインFF58のラッチ信号「C」が出力される。すなわち,時間T4より,メインスキャンチェーン端子15を介して,メインFFからデータの読み出しが開始される。
時間T5では,図9(2)に示すように,サブFF54,59は,サブクロック信号106の立ち上がりに応答して,時間T4における組合せ回路51,56の出力信号「5」,「E」をラッチし,これらのラッチ信号はさらに後段の組合せ回路56等に入力する。そして,組合せ回路51,56は前段サブFF,サブFF54のラッチ信号を入力して出力信号「6」,「F」を出力し,これらの出力信号「6」,「F」は,サブFF54,59の入力端子まで届けられる。
そして,時間T6からT8では,内部回路50は,組合せ回路51,56とサブFF54,59とを用いて通常動作を継続する。さらに,時間T6,T8では,各メインFFがメインクロック信号の立ち上がりに応答して前段のメインFFのラッチ信号をラッチすることで,メインスキャンチェーン端子15を介して,メインFFからデータが読み出される。
[リターンモード(時間T9)]
時間T9に,スキャン制御部14は,時間T8のテストモード信号103の立ち下がりに応答して,SS用スキャンモード信号101を「11」から「01」にする。すなわち,内部回路50の動作モードはスキャンアウトモードからリターンモードに切り替わる。
図10は,第1の実施の形態におけるリターンモードの動作状態を示す図である。リターンモードでは,モード制御回路61は,SS用スキャンクロック信号102をメインクロック信号105として出力し,クロック信号104をサブクロック信号106として出力する。また,モード制御回路61は,スナップショット信号107をLレベルにして,フリップフロップ選択信号をHレベルに維持する。
これにより,図10(1)の実線で示すように,サブFF54,59は,時間T9のサブクロック信号106の立ち上がりに応答して,時間T8における組合せ回路51,56の出力信号「9」,「I」をラッチし,これらのラッチ信号はさらに後段の組合せ回路56等に入力する。そして,組合せ回路51,56は前段サブFF,サブFF54のラッチ信号を入力して出力信号「10」,「J」を出力し,これらの出力信号「10」,「J」は,サブFF54,59の入力端子まで届けられる。それと共に,図10(2)に示すように,スイッチ52,57は,Lレベルのスナップショット信号107により,組合せ回路51,56の出力信号(スイッチ「0」側)を選択する。
このように,リターンモードでは,サブFFのラッチ後にスイッチ52,57の切替が行われる。これにより,サブFF54,59のラッチ信号「9」,「I」は後段の組合せ回路56などに入力し,組合せ回路51,56は前段サブFF,サブFF54のラッチ信号を入力して出力信号「10」,「J」を出力する。
[通常動作モード(時間T10〜T12)]
時間T9からクロック信号104の1クロック経過後の時間T10で,動作モードがリターンモードから通常動作モードに切り替わる。すなわち,スキャン制御部14がSS用スキャンモード信号101を「01」から「00」にする。
通常動作モードでは,モード制御回路61は,クロック信号104をメインクロック信号105として出力し,Lレベルのテストモード信号103をスナップショット信号107として出力する。また,モード制御回路61は,サブクロック信号106,フリップフロップ選択信号108をLレベルにする。
これにより,図7(2)に示すように,メインFF53,58は,時間T9における組合せ回路の出力信号「10」,「J」をラッチする。そして,これらのラッチ信号は,後段の組合せ回路56等に入力する。組合せ回路51,56は前段メインFF,メインFF53のラッチ信号を入力して出力信号「11」,「K」を出力する。さらに,メインスキャンチェーン配線15を介して,時間T3における前々段メインFFのラッチ信号「F1」が出力される。そして,図7(1)に示すように,スイッチ55,60は,Lレベルにフリップフロップ選択信号108により,メインFF53,58のラッチ信号(スイッチ「0」側)を選択する。これにより,組合せ回路51,56の出力信号「11」,「K」は,メインFF53,58の入力端子まで届けられる。
このように,リターンモードから通常動作モードに切り替えると,メインFF53,56のラッチ後にスイッチ55,60の切替が行われる。これにより,サブFF54,59のラッチ信号「10」,「J」は後段の組合せ回路56などに入力し,組合せ回路51,56は前段サブFF,サブFF54のラッチ信号を入力して出力信号「11」,「K」を出力する。時間T11以降は,内部回路50は,時間T1と同様に通常動作を行う。
上記4つの動作モードは,任意のスナップショットタイミングでの内部状態をスキャンアウトする毎に繰り返される。
以上のように,内部回路50は,通常動作モード とスナップショットモードでは,組合せ回路51,56とメインFF53,58とを用いて通常動作を継続する。また,内部回路50は,スキャンアウトモードとリターンモードでは,組合せ回路51,56とサブFF54,59とを用いて通常動作を継続しながら,LSIの内部状態を示すデータをメインFF53,58から読み出す。これにより,図1及び図2のSS用スキャンチェーン配線16が不要となるだけでなく,通常動作を継続しながらメインFFからデータを読み出すことができる。
なお,第1の実施の形態では,組合せ回路51とスイッチ52,55とメインFF53とサブFF54とを有するスキャンユニットと,組合せ回路56とスイッチ57,60とメインFF58とサブFF59とを有するスキャンユニットとを有するスキャンユニットの2つのユニットを用いて内部回路50の動作を説明したが,スキャンユニットは3個以上でもよい。また,内部回路50が有する複数のメインFFのうち1個だけをメインスキャンチェーン配線15に接続し,このメインFFに対応するサブFFを設けて,スキャンユニットを1個にしてもよい。
さらに,モード制御回路61は,周辺機能回路12,メモリインターフェース10,CPU7内の各内部回路50に設けられているが,LSI4内でモード制御回路61を1個設けて各内部回路50に信号105〜108を供給してもよい。
[第2の実施の形態]
第1の実施の形態では,通常動作モード時,内部回路50はメインFF53,56を用いて通常動作を行う。しかし,メインFF53,58が故障すると,内部回路50は通常動作を継続することができなくなる。そこで,第2の実施の形態では,このような場合,メインFF53,58の代わりにサブFF54,59を用いて通常動作を継続する。
図11は,第2の実施の形態における内部回路の構成を示す図である。図11の構成は,図3のLSI4が有する周辺機能回路12,メモリインターフェース10,CPU7内の一部の内部回路200を示す。
内部回路200は,第1の実施の形態の4つの動作モード(通常動作モード,スナップショットモード,スキャンアウトモード,リターンモード)に加えて,代替モードを有する。そして,メインFF53,58の故障により内部回路200が通常動作を行えないときは,動作モードは代替モードに切り替わる。また,内部回路200は,第1の実施の形態の図4の内部回路50のと同様な構成であるが,さらに代替モードであるか否かを記憶する不揮発性メモリ202を有しており,後述するようにモード制御回路61はメモリ201から代替モード信号201をラッチし,サブクロック信号106とフリップフロップ選択信号108とを出力する。
内部回路200が4つの動作モード(通常動作モード,スナップショットモード,スキャンアウトモード,リターンモード)のいずれかで動作しているとき,メモリ202は非代替モード状態“1”となっている。そして,デバッグ等試験によりメインFF53,58の故障が判明した場合,ユーザによりメモリ202は代替モード状態“0”に書き換えられ,動作モードは代替モードに切り替わる。
モード制御回路61は,代替モード状態“0”のメモリ202から出力される代替モード信号201に応答して,サブクロック信号106とHレベルのフリップフロップ信号108とを出力する。これにより,サブFF54,59は,サブクロック信号106に同期して組合せ回路51,56の出力信号をラッチする。それと共に,スイッチ55,60はサブFF54,59のラッチ信号(スイッチ「1」側)を選択する。そして,サブFF54,59のラッチ信号は後段の組合せ回路56等に入力し,組合せ回路51,56は前段サブFF,サブFF54のラッチ信号を入力する。これ以降もスイッチ55,60はサブFF54,59のラッチ信号(スイッチ「1」側)の選択を維持し,内部回路200は,組合せ回路51,56とサブFF54,59とを用いて代替モードで通常動作を継続する。
このように,通常動作時にメインFF53,58が故障しても,スイッチ55,60がフリップフロップ選択信号108に応答してメインFF53,58のラッチ信号からサブF54,59のラッチ信号へ切り替わることで,内部回路200は組合せ回路51,56とサブFF54,59とを用いて通常動作を継続することができる。つまり,サブFF54,59は,メインFF53,58の代替としての使用が可能である。したがって,サブFF54,59はスキャンアウトの間の通常動作に利用されることに加えて,メインFF53,58の故障時にメインFF53,58の代替手段としても利用することができるため,サブFF54,59を内部回路200に設けることは単純なコストアップにはならない。
[第3の実施の形態]
上述のスキャンアウトモードや代替モードでは,内部回路50,200はサブFF54,59を用いて通常動作を継続する。しかし,サブFF54,59に不具合があると内部回路50,200は通常動作をできなくなる。そこで,第3の実施の形態では,内部回路50,200の通常動作の前に,後述するサブFF54,59用のスキャンチェーン配線を使いサブFF54,59のスキャンテストが行われる(以下,スキャンテストモードと呼ぶ。)。
図12は,第3の実施の形態における内部回路の構成を示す図である。図12の構成は,図3のLSI4が有する周辺機能回路12,メモリインターフェース10,CPU7内の一部の内部回路300を示す。
内部回路300は,図4の内部回路50又は図11の内部回路200に,スイッチ301,302と,サブFF54,59用のスキャンチェーン配線であるサブスキャンチェーン配線303とが追加された構成となっている。
サブスキャンチェーン配線303は,図1のSS用スキャンチェーン配線16と同様,LSI4内のサブFFを接続する。また,サブスキャンチェーン配線303は,デバッグツール1より外部端子21を介して,スキャンテスト用の入力信号であるサブスキャンイン信号304を入力され,外部端子22を介してサブFF54,59のデータであるサブスキャンアウト信号305を出力する。
スイッチ301,302は後述するサブスキャンモード信号304により,組合せ回路51,56の出力信号とサブスキャンチェーン配線303の信号とのいずれかを選択する。
スキャンテストモードでは,まず,デバッグツール1よりプレテストモード信号300がモード制御回路61に入力され,さらに,デバッグツール1よりサブスキャンイン信号304がサブスキャンチェーン配線303に入力される。スキャンイン信号モード制御回路61は,プレテストモード信号300に応答して,サブクロック信号106とHレベルのサブスキャンモード信号304を出力する。そして,スイッチ301,302は,Hレベルのサブスキャンモード信号304によりサブスキャンチェーン配線303の信号(スイッチ「1」側)を選択する。
これにより,サブFF54は,サブクロック信号106の立ち上がりに応答して,サブスキャンイン信号304をラッチする。そして,サブFF59は,次のサブクロック信号106の立ち上がりに応答してこのサブFF54のラッチ信号をラッチし,それと共にサブFF54は再びサブスキャンイン信号304をラッチする。このように,サブFF54,59はサブクロック信号に同期してサブスキャンイン信号304をラッチし,サブFF54,59に入力データが順に設定される。一方,外部端子23からは,サブクロック信号に同期して,サブFF54,59のデータであるスキャンアウト信号305として出力される。そして,入力したサブスキャンイン信号304と出力されるサブスキャンイン信号305とが一致すれば,サブFF54,59には故障が無いと判断することができる。
上記スキャンテストモードによりサブFF54,59に不具合がないことを確認できれば,内部回路300は,第1及び第2の実施の形態と同様に,各動作モードにおいて,メインFF53,58又はサブFF54,59を用いて通常動作を継続することができる。
[第4の実施の形態]
第1,第2及び第3の実施の形態において,内部回路50,200,300がメモリI/F10であり,組合せ回路51又は56がRAM等のメモリ11である場合,メモリI/F10の通常動作中,すなわちLSI4によるメモリ11の読み出し動作の間に,メモリから読み出されメインFFでラッチされたデータをスキャンアウトすることは可能である。しかし,スキャンアウトされたメモリのデータが所望のアドレスに対応しているか否かの判断は困難である。なぜなら,第1,第2及び第3の実施の形態では,LSI4によるメモリ11の読み出し動作の間にどのタイミングで所望のアドレスのデータの読み込み動作が行われているのかを把握できず,スキャンアウトモードに切り替えるべきタイミングが分からないためである。つまり,第1,第2及び第3の実施の形態では,LSI4によるメモリ11の読み出し動作の間にメモリから読み出されたデータをスキャンアウトをすることはできても,所望のアドレスのデータをスキャンアウトすることは困難である。
そこで,第4の実施の形態では,LSI4によるメモリ11の読み出し動作の間に所望のアドレスのデータをメモリから読み出してスキャンアウトをすることができるメモリI/F10について,説明する。
第4の実施の形態において,LSI4は,後述する図13の構成を有する。LSI4はメモリ11への読み出し動作を行いながら,後述するように,内部動作で所望のアドレスがアクセスされたタイミングで通常動作モードからスキャンアウトモードに切り替えて,所望のアドレスのデータをスキャンアウトする。その結果,LSI4はメモリ11の読み出しを継続しながら,所望のアドレスのデータをスキャンアウトすることができる。
第4の実施の形態において,メモリI/F10は,図14で後述するように,アドレス用のメインFF及びサブFFと,データ用のメインFF及びサブFFとを有する。アドレス用メインFF及びデータ用メインFFはスキャンチェーンに含まれている。
そして,メモリI/F10は,第1乃至第3の実施の形態と同様に通常動作モードのときはアドレス用及びデータ用メインFFを用いて通常動作をし,スキャンアウトモードのときはアドレス用及びデータ用サブFFを用いて通常動作を継続しながらアドレス用及びデータ用メインFFのデータをスキャンアウトする。
第1乃至第3の実施の形態と異なる点として,第4の実施の形態では,データ用メインFFが所望のアドレスのデータをラッチするタイミングでメモリI/F10の動作が通常動作モードからスキャンアウトモードに切り替わるように,この切替動作の前にアドレス用サブFFが予め所望のアドレス(以下,監視アドレス信号と呼ぶ。)をラッチするセットモードが設けられている。
そして,通常動作モードの時にアドレス用メインFFが監視アドレス信号と等しいアドレス信号をラッチすると,通常動作モードからスキャンアウトモードへの切替動作が行われる。この結果,アドレス用メインFFにラッチされた監視アドレス信号に対応するメモリのデータが,スキャンアウトモード時にスキャンアウトされる。これにより,LSI4はメモリ11の読み出し動作を継続しながら,所望のアドレスのデータをスキャンアウトすることができる。
以下,第4の実施の形態について詳細を説明する。
図13は,第4の実施の形態におけるLSIの構成図である。図13のLSI4は,図3のLSI4と同様の構成を有する。図3のLSI4と共通する部分には,同じ符号が付されている。
ただし,図13では,スキャン制御部14は,スキャンイン端子17を介してスキャンイン信号を入力する。そして,スキャン制御部14は,後述するように,スキャイン信号とスナップショット開始信号に基づいて,通常動作モードからセットモードへの切り替え又はセットモードから通常動作モードへの切り替えを行う。また,スキャン制御部14は,セットモードから通常動作モードへの切り替えの際に,アクセス監視信号401をメモリI/F10に出力する。さらに,スキャン制御部14は,メモリI/F10から出力された内部スナップショット開始信号402を入力し,後述するように内部スナップショット開始信号402に基づいて通常動作モードからスキャンアウトモードへの切り替えを開始する。
図14は,第4の実施の形態におけるメモリI/Fの構成を示す図である。
メインI/F10の各モード(通常動作モード,スナップショットモード,スキャンアウトモード,リターンモード,セットモード)の動作は,モード制御回路81が制御する。モード制御回路81は,第1乃至第3の実施の形態と同様に,SS用スキャンモード信号101とSS用スキャンクロック信号102とテストモード信号103とクロック信号104とを入力し,メインクロック信号105とサブクロック信号106とスナップショット信号107とフリップフロップ選択信号108とを出力する。さらに,モード制御回路81は,アドレスセット信号403を出力する。
また,メモリI/F10は,バスからのアドレス信号ASとスキャンチェーン配線15とのいずれかを選択するスイッチ70と,アドレス用メインFF71と,データ信号DSとスキャンチェーン配線15とのいずれかを選択するスイッチ77と,データ用メインFF78とを有する。
通常動作モードのとき,バス13からのアドレス信号ASに対応したデータ信号DSがメモリ11からバス13へ出力されるように,スイッチ70,77は,スナップショット信号107に基づいて,それぞれアドレス信号AS,データ信号DSを選択する(「0」側)。その結果,アドレス用メインFF71はメインクロック信号105に同期してバス13からのアドレス信号ASをラッチしてメモリ11に出力し,データ用メインFF78はメインクロック信号105に同期してメモリ11からのデータ信号DSをラッチしてバス13に出力する。
スキャンアウトモードのとき,アドレス用メインFF71のラッチ信号及びデータ用メインFF78のラッチ信号がスキャンチェーン配線15を介してスキャンアウトされるよう,スイッチ70,77は,スナップショット信号107に基づいて,共にスキャンチェーン配線15を選択する(「1」側)。その結果,アドレス用メインFF71及びデータ用メインFF78がメインクロック信号105に同期してそれぞれ前段のメインFFのラッチ信号をラッチすることで,各メインFFのラッチ信号がスキャンチェーン配線15を介してスキャンアウト端子18から出力される。
さらに,メインI/F10は,スキャンアウトモードの間も通常動作を継続するために,アドレス用サブFF73と,データ用サブFF79と,アドレス用メインFF71とアドレス用サブFF73とのいずれかのラッチ信号を選択しメモリ11に出力するスイッチ74と,データ用メインFF78とデータ用サブFF79とのいずれかのラッチ信号を選択しバス13に出力するスイッチ80とを有する。
通常動作モードの時,スイッチ74,80は,フリップフロップ選択信号108に基づいて,それぞれアドレス用メインFF71,データ用メインFF78を選択する(「0」側)。その結果,バス13からのアドレス信号ASをラッチしたアドレス用メインFF71のラッチ信号は,スイッチ74を介してメモリ11に出力される。また,メモリ11から出力されたデータ信号DSをラッチしたデータ用メインFF78のラッチ信号は,スイッチ80を介してバス13に出力される。
スキャンアウトモードの時,スイッチ74,80は,フリップフロップ選択信号108に基づいて,それぞれアドレス用サブFF73,データ用サブFF79選択する(「1」側)。その結果,バス13からのアドレス信号ASをラッチしたアドレス用サブFF73のラッチ信号は,スイッチ74を介してメモリ11に出力される。また,メモリ11から出力されたデータ信号DSをラッチしたデータ用サブFF79のラッチ信号は,スイッチ80を介してバス13に出力される。
バス13とアドレス用サブFF73との間には,後述するセットモードの時にアドレス用サブFF73が監視アドレス信号をラッチするように,アドレス信号ASとスキャンチェーン配線15とのいずれかを選択するスイッチ72が設けられている。スイッチ72は,セットモード以外の動作モードの時はアドレスセット信号403に基づいてアドレス信号ASを選択し(「0」側),セットモードの時はアドレスセット信号403に基づいてスキャンチェーン配線15を選択する(「1」側)。
そして,通常動作モード時のアドレス用メインFF71のラッチ信号とアドレス用サブFF73がラッチした監視アドレス信号とを比較するために,比較器75が設けられている。比較器75は,アクセス監視信号401に基づいて活性状態又は非活性状態となり,活性状態のときにはアドレス用メインFF71のラッチ信号と監視アドレス信号とを比較する。
アドレス用メインFF71のラッチ信号と監視アドレス信号とが等しいとき,比較器78はHレベルの内部スナップショット開始信号402を,メインクロック信号105の1周期だけ出力する。スキャン制御部14は,Hレベルの内部スナップショット開始信号402に基づいて,通常動作モードからスキャンアウトモードへの切り替え動作を開始する。
なお,アドレス用メインFF71,アドレス用サブFF73,データ用メインFF78,及びデータ用サブFF79は,信号のビット数に応じた数のフリップフロップを有する。スイッチ70,72,74,77,80も同様に信号のビット数に応じた数のスイッチを有する。
図15は,第4の実施の形態におけるアドレス用メインFFの構成を示す図である。図15には,バス13からnビットのアドレス信号ASが伝送される場合における,スイッチ70及びアドレス用メインFF71の構成が示されている。
スイッチ70は,ビット毎に選択を行うスイッチAMS0〜AMSn−1を有し,スナップショット信号107に基づいて,nビットのアドレス信号AS(AS[0]〜AS[n−1])又はスキャンチェーン配線15の信号を選択し,出力する。
アドレス用メインFF71は,スキャンチェーン配線15を介してそれぞれ後段のフリップフロップと接続するフリップフロップAMF0〜AMFn−1を有する。フリップフロップAMF0〜AMFn−1は,対応するスイッチAMS0〜AMSn−1の出力信号を,メインクロック信号105に同期してラッチする。
したがって,スナップショット信号107がLレベルのとき(通常動作モード,リターンモード,セットモード),スイッチAMS0〜AMSn−1はアドレス信号ASを選択するため,フリップフロップAMF0〜AMFn−1は,メインクロック信号105に同期してnビットのアドレス信号ASをラッチすることができる。
また,スナップショット信号107がHレベルのとき(スナップショットモード,スキャンアウトモード),スイッチAMS0〜AMSn−1はスキャンチェーン配線15の信号を選択するため,フリップフロップAMF0〜AMFn−1は,メインクロック信号105に同期して,それぞれスキャンチェーン配線15を介して前段のフリップフロップのラッチ信号をラッチすることができる。
図16は,第4の実施の形態におけるアドレス用サブFFの構成を示す図である。図16には,バス13からnビットのアドレス信号ASが伝送される場合における,スイッチ72及びアドレス用サブFF73の構成が示されている。
スイッチ72は,ビット毎に選択を行うスイッチASS0〜ASSn−1を有し,アドレスセット信号403に基づいて,nビットのアドレス信号AS(AS[0]〜AS[n−1])又はスキャンチェーン配線15の信号を選択し,出力する。
アドレス用サブFF73は,スキャンチェーン配線15を介してそれぞれ後段のフリップフロップと接続するフリップフロップASF0〜ASFn−1を有する。フリップフロップASF0〜ASFn−1がスキャンチェーン配線15で接続されているのは,セットモードでフリップフロップASF0〜ASFn−1が監視アドレス信号をラッチするためである。そのため,nビット目の信号をラッチするフリップフロップASFn−1は,後段のフリップフロップとは接続しない。フリップフロップASF0〜ASFn−1は,対応するスイッチASS0〜ASSn−1の出力信号を,サブクロック信号106に同期してラッチする。
したがって,アドレスセット信号403がLレベルのとき(通常動作モード,スナップショットモード,スキャンアウトモード,リターンモード),スイッチASS0〜ASSn−1はアドレス信号ASを選択するため,フリップフロップASF0〜ASFn−1は,サブクロック信号106に同期して,nビットのアドレス信号ASをラッチすることができる。
また,アドレスセット信号403がHレベルのとき(セットモード),スイッチASS0〜ASSn−1はスキャンチェーン配線15の信号を選択するため,フリップフロップASF0〜ASFn−1は,サブクロック信号106をn回入力することで,スキャンチェーン配線15を介してnビットの監視アドレス信号をラッチすることができる。
図17は,第4の実施の形態におけるデータ用メインFFの構成を示す図である。スイッチ77及びデータ用サブFF78は,図15と同様の構成を有する。
スイッチ77は,ビット毎に選択を行うスイッチDMS0〜DMSn−1を有し,スナップショット信号107に基づいて,nビットのデータ信号DS(DS [0]〜DS[n−1])又はスキャンチェーン配線15の信号を選択し,出力する。
データ用メインFF78は,スキャンチェーン配線15を介してそれぞれ後段のフリップフロップと接続するフリップフロップDMF0〜DMFn−1を有する。フリップフロップDMF0〜DMFn−1は,対応するスイッチDMS0〜DMSn−1の出力信号を,メインクロック信号105に同期してラッチする。
したがって,スナップショット信号107がLレベルのとき(通常動作モード,リターンモード,セットモード),スイッチDMS0〜DMSn−1はアドレス信号ASを選択するため,フリップフロップDMF0〜DMFn−1は,メインクロック信号105に同期してnビットのデータ信号ASをラッチすることができる。
また,スナップショット信号107がHレベルのとき(スナップショットモード,スキャンアウトモード),スイッチDMS0〜DMSn−1はスキャンチェーン配線15の信号を選択するため,フリップフロップDMF0〜DMFn−1は,メインクロック信号105に同期して,それぞれスキャンチェーン配線15を介して前段のフリップフロップのラッチ信号をラッチすることができる。
図18は,第4の実施の形態におけるデータ用サブFFの構成を示す図である。データ用サブFF79では,フリップフロップDSF0〜DSFn−1が,サブクロック信号106に同期して,メモリからのnビットのデータ信号DSをラッチする。
図19は,第4の実施の形態におけるフリップフロップのラッチ信号を選択するスイッチの構成を示す図である。スイッチ74はビット毎にスイッチS0〜Sn−1を有する。スイッチ74のスイッチS0〜Sn−1は,それぞれフリップフロップ選択信号108に基づいて,アドレス用メインFF71のフリップフロップAMF0〜AMFn−1の出力とアドレス用サブFF72のフリップフロップASF0〜ASFn−1の出力とのいずれかを選択して出力する。
また,スイッチ80も,スイッチ74と同様な構成を有する。スイッチ80のスイッチS0〜Sn−1は,それぞれフリップフロップ選択信号108に基づいて,データ用メインFF78のフリップフロップDMF0〜DMFn−1の出力とデータ用サブFF79のフリップフロップDSF0〜DSFn−1の出力とのいずれかを選択して出力する。
図20は,第4の実施の形態におけるメモリI/Fの動作モードの切替条件を示す図である。第4の実施の形態では,メモリI/F10の動作は5つの動作モード(通常動作モード,スナップショットモード,スキャンアウトモード,リターンモード,セットモード)に分けられる。通常動作モード(IDLE),スナップショットモード(SS),スキャンアウトモード(SOUT)及びリターンモード(RET),セットモード(SET)は,それぞれ3ビットのSS用スキャンモード信号101の「000」,「010」,「011」,「001」,「100」に対応する。
通常動作モード(IDLE)では,比較器75からの内部スナップショット開始信号402がLレベルの間,メモリI/F10は通常動作モード(IDLE)を継続する。しかし,後述するようにアドレス用メインFF71がラッチしたアドレス信号ASが監視アドレス信号と等しいとき(内部スナップショット開始信号402=Hレベル),スキャン制御部14はSS用スキャンモード信号101を「000」から「010」に切り替え,メモリI/F10の動作はスナップショットモード(SS)に切り替わる。
また,通常動作モード(IDLE)では,デバッグツール1が通常動作モード(IDLE)からセットモード(SET)への切替タイミングを制御できるように,Hレベルのスナップショット開始信号及びHレベルのスキャンイン信号が,通常動作モード(IDLE)からセットモード(SET)への切替条件とされている。デバッグツール1がLSI4にHレベルのスナップショット開始信号とHレベルのスキャンイン信号がLSI4に入力すると,スキャン制御部14はSS用スキャンモード信号101を「000」から「100」に切り替え,メモリI/F10の動作はセットモード(SET)に切り替わる。
スナップショットモード(SS),スキャンアウトモード(SOUT)及びリターンモード(RET)の切替条件及び切替後の動作モードについては,第1の実施の形態の図5(1)と同様である。
セットモード(SETで)では,デバッグツール1がセットモード(SET)から通常動作モード(IDLE)への切替タイミングを制御できるように,Hレベルのスナップショット開始信号及びHレベルのスキャンイン信号が,セットモード(SET)から通常動作モード(IDLE)への切替条件とされている。デバッグツール1がHレベルのスナップショット開始信号及びHレベルのスキャンイン信号をLSI4に入力すると,スキャン制御部14はSS用スキャンモード信号101を「100」から「000」に切り替え,メモリI/F10の動作は通常動作モード(IDLE)に切り替わる。
図21は,第4の実施の形態におけるモード制御回路の出力信号を示す図である。通常動作モード(IDLE),スナップショットモード(SS),スキャンアウトモード(SOUT)及びリターンモード(RET)における信号105〜108は,第1の実施の形態の図5(2)と同様である。アドレスセット信号403は,通常動作モード(IDLE),スナップショットモード(SS),スキャンアウトモード(SOUT)及びリターンモード(RET)では,Lレベルに維持されるため,スイッチ72はバス13からのアドレス信号ASの選択を維持する。
セットモード(SET)では,モード制御回路81は,通常動作モード(IDLE)と同様に,メインクロック信号105及びフリップフロップ選択信号108を出力し,スナップショット信号107をLレベルに維持する。これにより,メモリI/F10はアドレス用メインFF71及びデータ用メインFF78を使用して通常動作を継続する。
また,モード制御回路81は,SS用スキャンクロック信号102をサブクロック信号106として出力し,アドレスセット信号402をHレベルに維持する。これにより,スイッチ72はスキャンチェーン配線15の信号を選択し,アドレス用サブFF73はサブクロック信号106をn回入力し,スキャンチェーン配線15を介してフリップフロップASF0〜ASFn−1にnビットの監視アドレス信号を格納する。
次に,図22,図23を用いて具体的な動作について説明する。図22は,第4の実施の形態におけるセットモードのタイミングチャートである。なお,バス13からは8ビットのアドレス信号が伝送されるものとする。また,時間T20〜時間T34の間にメモリ11への読み出し動作は行われていないものとする。
[通常動作モード(時間T20〜T21)]
時間T20では,SS用スキャンモード信号101は「000」であるため,メモリI/F10は通常動作モードである。
このとき,スイッチ70はバス13からのアドレス信号ASを選択し(「0」側),スイッチ74はアドレス用メインFF71のラッチ信号を選択する(「0」側)。また,スイッチ77はメモリ11からのデータ信号DSを選択し(「0」側),スイッチ80はデータ用メインFF78のラッチ信号を選択する(「0」側)。
そして,時間T21で,通常動作モードからセットモードへの切替を開始するために,デバッグツール1からHレベルのスナップショット開始信号及びHレベルのスキャンイン信号が,クロック信号104の1周期の間だけ入力される。
[セットモード(時間T22〜T32)]
時間T22で,スキャン制御部14はHレベルのスナップショット開始信号及びHレベルのスキャンイン信号に基づいて,SS用スキャンモード信号101を「000」から「100」へ切り替え,メモリI/F10の動作は通常動作モードからセットモードに切り替わる。セットモードでは,アドレス用サブFF73がスキャンチェーン配線15を介して監視アドレス信号をラッチする。
モード制御回路81は,「100」のSS用スキャンモード信号101に基づいて,アドレスセット信号403をLレベルからHレベルにする。その結果,スイッチ72は,スキャンチェーン配線15の信号を選択する(「1」側)。
また,モード制御回路81は,クロック信号104をメインクロック信号105として継続して出力し,スナップショット信号107及びフリップフロップ選択信号108をLレベルに維持する。
これにより,スイッチ70はバス13からのアドレス信号ASの選択を維持し(「0」側),スイッチ77はメモリからのデータ信号DSの選択を維持する(「0」側)。また,スイッチ74はアドレス用メインFF71のラッチ信号の選択を維持し(「0」側),スイッチ80はデータ用メインFF78のラッチ信号の選択を維持する(「0」側)。
そのため,図22では行われていないが,セットモードの間にメモリ11の読み出し動作が行われた場合であっても,メモリI/F10は,アドレス用メインFF71及びデータ用メインFF78を用いて,通常動作を継続することができる。
時間T22以降,監視アドレス信号が,スキャンイン信号として,SS用スキャンクロック信号102に同期して,デバッグツール1からスキャンチェーン配線15に入力される。
時間T23で,スキャン制御部14は,周期がクロック信号104の2倍であるSS用スキャンクロック信号102を出力する。また,Hレベルのテストモード信号103がテストモードコントローラ8から出力される。そして,モード制御回路81は,SS用スキャンクロック信号102とHレベルのテストモード信号103とに基づいて,SS用スキャンクロック信号102をサブクロック信号106として出力する。その結果,アドレス用サブFF73は,サブクロック信号106に同期し,スキャンチェーン配線15を介して監視アドレス信号をラッチすることが可能となる。
時間T25で,アドレス用サブFF73のフリップフロップASF0が,サブクロック信号106の立ち上がりに応じて,監視アドレス信号の最上位の7ビット目の信号a[7]をラッチする。次に,時間T26で,アドレス用サブFF73のフリップフロップASF1が,サブクロック信号106の立ち上がりに応じて,スキャンチェーン配線15を介しフリップフロップASF0のラッチ信号a[7]をラッチする。そして,フリップフロップASF0は,次の監視アドレス信号の6ビット目の信号a[6]をラッチする。
このように,アドレス用サブFF73のフリップフロップASF0〜ASF7が,スキャンチェーン配線15を介し,それぞれ前段のフリップフロップのラッチ信号を順にラッチすることで,監視アドレス信号の各ビットの信号がアドレス用サブFF73に順にラッチされる。
時間T32で,監視アドレス信号の各ビットの信号a[0]〜a[7]が全てアドレス用サブFF73にラッチされる。そして,テストモードコントローラ8はテストモード信号103をHレベルからLレベルにし,監視アドレス信号のスキャンインを終了する。また,メモリI/F10がセットモードから通常動作モードに切り替わるように,デバッグツール1からHレベルのスナップショット開始信号及びHレベルのスキャンイン信号が,クロック信号104の1周期の間だけ入力される。
[通常動作モード(時間T33〜T34)]
時間T33で,スキャン制御部14は,Hレベルのスナップショット開始信号及びHレベルのスキャンイン信号に基づいて,SS用スキャンモード信号101を「100」から「000」へ切り替え,メモリI/F10の動作はセットモードから通常動作モードに切り替わる。それとともに,スキャン制御部14は,SS用スキャンクロック信号102をLレベルに維持する。
さらにスキャン制御部14は,時間T33で,アクセス監視信号401をLレベルからHレベルにする。これにより,比較器75が,アドレス用メインFF71のラッチ信号及びアドレス用サブFF73がラッチした監視アドレス信号の比較を開始する。なお,後述するように,アドレス用メインFF71のラッチ信号が監視アドレス信号と等しい場合には,通常動作モードからスキャンアウトモードへの切替動作が開始される。
一方,モード制御回路81は,サブクロック信号106及びアドレスセット信号403をHレベルからLレベルにし,スナップショット信号107をテストモード信号103と同じLレベルに維持する。
その結果,時間T20〜T21のときの通常動作モードと同様に,スイッチ70,72はバス13からのアドレス信号ASを選択し(「0」側),スイッチ77はメモリ11からのデータ信号DSを選択する(「0」側)。しかし,時間T20〜T21とは異なり,アドレス用サブFF73は監視アドレス信号を保持する。
そのため,時間T33以降,メモリI/F10は通常動作を行いながら,比較器75を用いてアドレス用メインFF71のラッチ信号と監視アドレス信号との比較をすることができる。
このように,セットモードでは,メモリI/F10は,アドレス用サブFF73にアドレス監視信号をラッチさせる。また,セットモードにおいてもスイッチ70,74,77,80は通常動作モードのときの選択を維持するため,セットモードの間にメモリ11の読み出し動作が行われても,メモリI/F10は通常動作を継続することができる。そして,メモリI/F10は,セットモードから通常動作モードに切り替わると,アドレス用メインFF71のラッチ信号,すなわちバス13からのアドレス信号ASが監視アドレス信号と等しいか否かの比較を開始する。
図23は,第4の実施の形態におけるメモリI/Fによるスキャンアウト動作のタイミングチャートである。図23は,セット―モード後の通常動作モードにおいて,メモリI/F10が通常動作モードからスキャンアウトモードに切り替わり,アドレス用メインFF71及びデータ用メインFF78のラッチ信号をスキャンアウトする動作の具体例を示す。
図23では,まず,LSI4がセットモードでメモリI/F10のアドレス用サブFF73に監視アドレス信号を保持した後,時間T40以前からメモリ11の読み出し動作を行っている。アドレス用メインFF71がアドレス信号ASをラッチする都度,メモリI/F10は,アドレス用メインFF71がラッチしたアドレス信号ASとアドレス用サブFF73がラッチした監視アドレス信号との比較を行う。そして,アドレス用メインFF71がラッチしたアドレス信号ASとアドレス用サブFF73がラッチした監視アドレス信号とが等しい場合に(時間T40),メインI/F10は通常動作モードからスキャンアウトモードへの切替を開始する(時間T41〜T42)。
スキャンアウトモードでは(時間T43〜T50),メインI/F10は,アドレス用サブFF73及びデータ用サブFF79を用いて通常動作を継続可能とし,アドレス用メインFF71及びデータ用メインFF78のラッチ信号を,スキャンチェーン配線15を介してスキャンアウトする。スキャンアウト完了後,メモリI/F10はスキャンアウトモードから通常動作モードへの切替を開始する(時間T51)。
そして,メモリI/F10は,セットモードで監視アドレスを保持する前の通常動作モードに戻り(時間T52),アドレス用メインFF71がラッチしたアドレス信号ASとアドレス用サブFF73がラッチした監視アドレス信号との比較を行うことなく,通常動作を行う。
以下,詳細について説明する。
[通常動作モード(時間T40〜T41)]
時間T40では,メモリI/F10はセットモード後の通常動作モードである。つまり,スイッチ70はバス13からのアドレス信号ASを選択し,スイッチ74はアドレス用メインFF71のラッチ信号を選択し,スイッチ77はメモリ11からのデータ信号DSを選択し,スイッチ80はデータ用メインFF78のラッチ信号を選択する。
そのため,データ用メインFF78は,時間T40以前にメモリ11から出力されたデータ信号DS(X[0]〜X[7])をメインクロック信号105に同期してラッチする。これにより,データ信号DS(X[0]〜X[7])がバス13に出力される。
また,メモリ11は時間T40以前にアドレス用メインFF71がラッチしたアドレス信号AS(c[0]〜c[7])に対応するデータ信号DS(C[0]〜C[7])を出力する。
そして,アドレス用メインFF71がアドレス信号AS(a[0]〜a[7])をメインクロック信号105に同期してラッチする。
それとともに,アドレス用メインFF71がラッチしたアドレス信号AS(a[0]〜a[7])は,比較器75にも入力され,アドレス用サブFF73がセットモードでラッチした監視アドレス信号(a[0]〜a[7])と比較される。時間T40では,アドレス信号AS(a[0]〜a[7])は監視アドレス信号(a[0]〜a[7])と等しいため,比較器75の出力はHレベルとなる。
時間T41で,フリップフロップ76が,時間T40の比較器75からのHレベルの出力をメインクロック信号105に同期してラッチする。その結果,内部スナップショット開始信号402がHレベルとなる。なお,これによりスキャン制御部14は,アドレス信号ASと監視アドレス信号とが等しいことを検出し,後述する時間T42以降の動作を開始する。
データ用メインFF78は時間T40でメモリ11から出力されたデータ信号DS(C[0]〜C[7])をメインクロック信号105に同期してラッチする。その結果,データ信号DS(C[0]〜C[7])がバス13に出力される。
メモリ11は,は時間T40にアドレス用メインFF71がラッチしたアドレス信号AS(a[0]〜a[7])に対応するデータ信号DS(A[0]〜A[7])を出力する。
アドレス用メインFF71は,バス13からのアドレス信号(d[0]〜d[7])をメインクロック信号105に同期してラッチする。アドレス信号(d[0]〜d[7])は比較器75に入力される。このアドレス信号(d[0]〜d[7])は監視アドレス信号と異なるため,比較器75の出力はLレベルとなる。
[スナップショットモード(時間T42)]
時間T42で,まず,フリップフロップ76が,時間T41の比較器75からのLレベルの出力をメインクロック信号105に同期してラッチする。その結果,内部スナップショット開始信号402はLレベルになる。
データ用メインFF78は,時間T41にメモリ11から出力されたアドレス信号AS(a[0]〜a[7])に対応するデータ信号DS(A[0]〜A[7])を,メインクロック信号105に同期してラッチする。その結果,データ信号DS(A[0]〜A[7])がバス13に出力される。
メモリ11は,時間T41でアドレス用メインFF71にラッチされたアドレス信号AS(d[0]〜d[7])に対応するデータ信号DS(D[0]〜D[7])を出力する。
アドレス用メインFF71は,バス13からのアドレス信号(y[0]〜y[7])を,メインクロック信号105に同期してラッチする。
一方,スキャン制御部14は,時間T41の内部スナップショット開始信号402の立ち上がりに基づいて,SS用スキャンモード信号101を「000」から「010」に切り替える。それとともに,スキャン制御部14はアクセス監視信号401をHレベルからLレベルにし,比較器75を非活性状態にして比較動作を終了する。
このSS用スキャンモード信号101の切替により,メモリI/F10の動作は,通常動作モードからスナップショットモードに切り替わる。スナップショットモードでは,メモリI/F10は,後述するスキャンアウトモードの動作を開始するまでの過渡的な動作を行う。
そして,モード制御回路81は,「010」のSS用スキャンモード信号101に基づいて,スナップショット信号107をHレベルにする。これにより,スイッチ70,77は,スキャンチェーン配線15の信号を選択する(「1」側)。
[スキャンアウトモード(時間T43〜T50)]
時間T42からクロック信号104の1クロック経過後の時間T43で,スキャン制御部14は,SS用スキャンモード信号101を「010」から「011」に切り替える。それとともに,スキャン制御部14は,周期がクロック信号104の2倍であるSS用スキャンクロック信号102を出力する。
このSS用スキャンモード信号101の切替により,メモリI/F10の動作はスナップショットモードからスキャンアウトモードに切り替わる。
また,このとき,テストモードコントローラ8が,アドレス用メインFF71及びデータ用メインFF78のスキャンアウトを開始するためにデバッグツール1から出力された,テスト開始を示すテスト開始信号に応答して,Hレベルのテストモード信号103を出力する。
モード制御回路81は,「011」のSS用スキャンモード信号101とHレベルのテストモード信号103とに基づいて,まず,クロック信号104をサブクロック信号106として出力し,アドレスセット信号403をLレベルに維持する。
これにより,スイッチ72は,Lレベルのアドレスセット信号403に基づいてバス13からのアドレス信号ASの選択を維持する(「0」側)。
そして,データ用サブFF79は,時間T42にメモリ11から出力されたデータ信号DS(D[0]〜D[7])を,サブクロック信号106に同期してラッチする。
メモリ11は,時間T42でアドレス用メインFF71がラッチしたアドレス信号AS(y[0]〜y[7])に対応するデータ信号(Y[0]〜Y[7])を出力する。
アドレス用サブFF73は,バス13からのアドレス信号AS(r[0]〜r[7])をサブクロック信号106に同期してラッチする。
一方,モード制御回路81は,「011」のSS用スキャンモード信号101とHレベルのテストモード信号103とに基づいて,SS用スキャンクロック信号102をメインクロック信号105として出力し,スナップショット信号107をHレベルに維持し,フリップフロップ選択信号108をHレベルにする。
これにより,スイッチ70,77はスキャンチェーン配線15の信号の選択を維持し(「1」側)する。また,スイッチ74はアドレス用サブFF73のラッチ信号を選択し(「1」側),スイッチ80はデータ用サブFF79のラッチ信号を選択する(「1」側)。
その結果,データ用サブFF79がラッチしたデータ信号DS(D[0]〜D[7])がバス13に出力される。
また,アドレス用メインFF71の各フリップフロップAMF0〜AMF7と,データ用メインFF78の各フリップフロップDMF0〜DMF7とは,メインクロック信号105に同期して,それぞれスキャンチェーン配線15を介し前段のフリップフロップのラッチ信号をラッチする。つまり,アドレス用メインFF71及びデータ用メインFF78のスキャンアウトが開始される。これにより,時間T43では,スキャンアウト端子18からは,時間T42におけるフリップフロップDMF7のラッチ信号,すなわちデータ信号DS(A[0]〜A[7])の最上位の「A[7]」が出力される。
時間T44で,データ用サブFF79は,時間T43にメモリ11から出力されたデータ信号DS(Y[0]〜Y[7])を,サブクロック信号106に同期してラッチする。これにより,データ信号DS(Y[0]〜Y[7])はバス13に出力される。
メモリ11は,時間T43にアドレス用サブFF73がラッチしたアドレス信号AS(r[0]〜r[7])に対応するデータ信号(R[0]〜R[7])を出力する。
アドレス用サブFF73は,バス13からのアドレス信号AS(t[0]〜t[7])をサブクロック信号106に同期してラッチする。
このように,メモリI/F10は,アドレス用サブFF73及びデータ用サブFF79を用いて,通常動作を継続する。
時間T45で,アドレス用メインFF71の各フリップフロップAMF0〜AMF7と,データ用メインFF78の各フリップフロップDMF0〜DMF7とは,メインクロック信号105に同期して,それぞれスキャンチェーン配線15を介し前段のフリップフロップのラッチ信号をラッチする。その結果,時間T44では,スキャンアウト端子18からは,時間T43におけるフリップフロップDMF7のラッチ信号「A[6]」が出力される。
また,データ用サブFF79は,時間T44にメモリ11から出力されたデータ信号DS(R[0]〜R[7])を,サブクロック信号106に同期してラッチする。これにより,データ信号DS(R[0]〜R[7])はバス13に出力される。
メモリ11は,時間T43にアドレス用サブFF73がラッチしたアドレス信号AS(t[0]〜t[7])に対応するデータ信号(T[0]〜T[7])を出力する。
アドレス用サブFF73は,バス13からのアドレス信号AS(q[0]〜q[7])をサブクロック信号106に同期してラッチする。
このように時間T44以降は,メモリI/F10は通常動作を継続しながら,アドレス用メインFF71及びデータ用メインFF78のラッチ信号のスキャンアウトを行う。
[リターンモード(時間T51)]
時間T50で,スキャンアウト対象のラッチ信号が「y[0]」のみとなり,テストモードコントローラ8が,アドレス用メインFF71及びデータ用メインFF78のスキャンアウトを終了するためにデバッグツール1から出力された,テスト終了を示すテスト開始信号に応答して,テストモード信号103をHレベルからLレベルにする。
これにより,時間T51で,スキャン制御部14はSS用スキャンモード信号101を「011」から「001」に切り替え,メモリI/F10の動作はスキャンアウトモードからリターンモードに切り替わる。リターンモードでは,メモリI/F10は,通常動作モードの動作が開始されるまでの過渡的な動作を行う。
モード制御回路81は,まず,クロック信号104をサブクロック信号106として出力し,フリップフロップ選択信号108をHレベルに維持し,アドレスセット信号403をLレベルに維持する。
これにより,スイッチ72は,Lレベルのアドレスセット信号403に基づいてバス13からのアドレス信号ASの選択を維持する(「0」側)。スイッチ74は,Hレベルのフリップフロップ選択信号108に基づいて,アドレス用サブFF73のラッチ信号の選択を維持する(「1」側)。また,スイッチ80は,Hレベルのフリップフロップ選択信号108に基づいて,アデータ用サブFF79のラッチ信号の選択を維持する(「1」側)。
そして,データ用サブFF79は,時間T50でメモリ11から出力されたデータ信号DS(Z[0]〜Z[7])をサブクロック信号106に同期してラッチする。これにより,データ信号DS(Z[0]〜Z[7])はバス13に出力される。
また,メモリ11は時間T50でアドレス用サブFF73がラッチしたアドレス信号(e[0]〜e[7])に対応するデータ信号DS(E[0]〜E[7])を出力する。
アドレス用サブFF73は,バスからのアドレス信号AS(u[0]〜u[7])をサブクロック信号106に同期してラッチする。
一方,モード制御回路81は,SS用スキャンクロック信号102をメインクロック信号105として出力し,スナップショット信号107をLレベルにする。
その結果,スイッチ70は,Lレベルのスナップショット信号107に基づいて,バス13からのアドレス信号ASを選択する(「0」側)。また,スイッチ77は,Lレベルのスナップショット信号107に基づいて,メモリ11からのデータ信号DSを選択する(「0」側)。
[通常動作モード(時間T52)]
時間T51からクロック信号104の1クロック経過後の時間T52で,スキャン制御部14はSS用スキャンモード信号101を「01」から「00」に切り替え,メモリI/F10はリターンモードから通常動作モードに切り替わる。それとともにスキャン制御部14は,SS用スキャンクロック信号102をLレベルに維持する。
モード制御回路81は,まず,クロック信号104をメインクロック信号105として出力し,Lレベルのテストモード信号103をスナップショット信号107として出力する。
これにより,スイッチ70は,Lレベルのスナップショット信号107に基づいて,バスからのアドレス信号ASの選択を維持する(「0」側)。スイッチ77は,Lレベルのスナップショット信号107に基づいて,メモリ11からのデータ信号DSの選択を維持する(「0」側)。
そして,データ用メインFF78は,時間T51でメモリから出力されたデータ信号DS(E[0]〜E[7])をメインクロック信号105に同期してラッチする。これにより,データ信号DS(E[0]〜E[7])がバス13に出力される。
メモリ11は,時間T51でアドレス用サブFF73がラッチしたアドレス信号AS(u[0]〜u[7])に対応するデータ信号DS(U[0]〜U[7])を出力する。
アドレス用メインFF71は,バス13からのアドレス信号AS(b[0]〜b[7])をメインクロック信号105に同期してラッチする。
一方,モード制御回路81は,サブクロック信号106,フリップフロップ選択信号108をLレベルにし,アドレスセット信号403をLレベルに維持する。
これにより,スイッチ72は,Lレベルのアドレスセット信号403に基づいてバス13からのアドレス信号ASの選択を維持する(「0」側)。スイッチ74は,Lレベルのフリップフロップ選択信号108に基づいて,アドレス用メインFF71を選択する(「0」側)。また,スイッチ80は,Lレベルのフリップフロップ選択信号108に基づいて,データ用メインFF78を選択する(「0」側)。
このようにして,時間T52以降のスイッチ70,72,74,77,80は,時間T40の通常動作モードにおける選択状態と同じになるため,メインI/F10は,アドレス用メインFF71及びデータ用メインFF73を用いて通常動作を行うことができる。以上のように,図23では,セットモードでアドレス用サブFF73が監視アドレス信号をラッチした後の通常動作モードでは,アドレス用メインFF71が監視アドレス信号と等しいアドレス信号ASをラッチすると,通常動作モードからスキャンアウトモードへの切替動作が開始される。また,監視アドレス信号と等しいアドレス信号ASに対応するデータ信号DSがデータ用メインFF78にラッチされる。そして,スキャンアウトモードにおいて,メモリI/F10はアドレス用サブFF73及びデータ用サブFF79を使用して通常動作を継続しながら,監視アドレス信号に対応するデータ信号DS,すなわち所望のアドレスのデータを,データ用メインFF78からスキャンアウトする。
[第5の実施の形態]
上述の第4の実施の形態では,アドレス用サブFF73がセットモードで監視アドレス信号をラッチしても,LSI4によるメモリ11の読み出し動作の間に所望のアドレスのデータの読み出しが行われないと,所望のアドレスのデータがスキャンアウトされない。また,プログラムの暴走時やバスのハングアップ時等,LSI4が動作をしていても不具合状態の場合には,LSI4によるメモリ11の読み出し動作が行われない可能性もあり,所望のアドレスのデータをスキャンアウトすることは困難である。
そこで,第5の実施の形態では,LSI4によるメモリ11の読み出し動作が行われていないタイミングを利用して,所望のアドレスのデータをスキャンアウトすることができるメモリI/F10について,説明する。
第5の実施の形態では,LSI4は第4の実施の形態と同様に図13の構成を有する。また,第4の実施の形態と同様に,セットモードが設けられている。しかし,メモリI/F10やアドレス用メインFF82は,後述する図23や図24のように,第4の実施の形態と異なる構成を有する。
また,メモリI/F10は,LSI4によるメモリ11の読み出し動作が行われていないタイミングで通常動作モードからスキャンアウトモードに切り替えるために,バス13からアドレス信号ASとともに伝送される有効信号YSを利用する。この有効信号YSは,アドレス信号ASが有効であるか否かを示すものである。LSI4によるメモリ11の読み出し動作が行われるとき,バス13を伝送する有効信号YSはアドレス信号ASが「有効」であることを示す。
したがって,セットモード後の通常動作モードにおいて,有効信号YSが「無効」を示すとき,すなわち後述のアドレス用メインFF82が有効なアドレス信号ASをラッチしないときに,通常動作モードからスキャンアウトモードへの切替動作が開始される。そして,アドレス用サブFFにラッチされた監視アドレス信号がメモリに入力され,それに対応するメモリのデータ信号DSがデータ用メインFF78にラッチされてスキャンアウトモード時にスキャンアウトされる。
つまり,LSI4は動作はしているがメモリ11への読み出しを行わないタイミングで,メモリI/F10の動作を通常動作モードからスキャンアウトモードに切り替えて,所望のアドレスのデータをスキャンアウトする。その結果,LSI4は動作を継続しながら,所望のアドレスのデータをメモリから読み出してスキャンアウトすることができる。
図24は,第5の実施の形態におけるメモリI/Fの構成を示す図である。図14と共通する部分には同じ符号が付されている。図14と異なる点は,メモリI/F10は,後述の図25の構成を有するアドレスメインFF82と,ANDゲート83と,フリップフロップ84と,ORゲート85とを有することである。
アドレス用メインFF82は,バス13からアドレス信号AS及び有効信号YSをラッチする。アドレス用メインFF82のラッチ信号は,スイッチ74及びスキャンチェーン配線15に入力される。ただし,アドレス用メインFF82のラッチ信号のうち,有効信号YSに対するラッチ信号YS‘は信号レベルを反転されて,アクセス監視信号401と共にANDゲート83に入力される。
ANDゲート83の出力信号は,フリップフロップ84を介して内部スナップショット開始信号402としてスキャン制御部14へ出力される。さらに,ANDゲート83の出力信号は,フリップフロップ選択信号108とともにORゲート85へ入力される。
ORゲート85の出力信号はスイッチ74に入力される。そして,スイッチ74はORゲートの出力信号に基づいて,アドレス用メインFF82のラッチ信号とアドレス用サブFF73のラッチ信号とのいずれかを選択する。
図25は,第5の実施の形態におけるアドレス用メインFFの構成を示す図である。図15と共通する部分には同じ符号が付されている。アドレス用メインFF82のフリップフロップAMF0〜AMFn−1は,対応するスイッチAMS0〜AMSn−1の出力信号を,メインクロック信号105に同期してラッチする。さらに,アドレス用メインFF82は,メインクロック信号105に同期して有効信号YSをラッチするフリップフロップYFを有する。
図26は,第5の実施の形態におけるメモリI/Fによるスキャンアウト動作のタイミングチャートである。図26は,セット―モード後の通常動作モードにおいて,メモリI/F10が通常動作モードからスキャンアウトモードに切り替わり,アドレス用メインFF82及びデータ用メインFF78のラッチ信号をスキャンアウトする動作の具体例を示す。図26では,第4の実施の形態と同様に,LSI4がセットモードでアドレス用サブFF73に監視アドレス信号を保持した後,時間T60以前から動作を行っている。したがって,セットモード以降,アクセス監視開始信号401はHレベルで維持されているため,ANDゲート83は有効信号YSのラッチ信号YS´に従ってHレベル又はLレベルの出力をする。つまり,ANDゲート83は,有効信号YSが「無効」(Lレベル)を示すか否かを判定する監視状態である。
そして,有効信号YSが「無効」(Lレベル)を示すとき(ANDゲート83の出力信号=Hレベル),すなわち後述のアドレス用メインFF82が有効なアドレス信号をラッチしないときに(時間T60),メインI/F10は通常動作モードからスキャンアウトモードへの切替を開始する(時間T61〜T62)。
スキャンアウトモードでは(時間T63〜T70),メインI/F10は,アドレス用サブFF73及びデータ用サブFF79を用いて通常動作を継続し,アドレス用メインFF82及びデータ用メインFF78のラッチ信号を,スキャンチェーン配線15を介してスキャンアウトする。スキャンアウト完了後,メモリI/F10はスキャンアウトモードから通常動作モードへの切替を開始する(時間T71)。
そして,メモリI/F10は,セットモードで監視アドレスを保持する前の通常動作モードに戻り(時間T72),通常動作を行う。
以下,詳細について説明する。
[通常動作モード(時間T60〜T61)]
時間T60では,メモリI/F10は,セットモード後の通常動作モードである。つまり,スイッチ70はバス13からのアドレス信号ASを選択し,スイッチ74はアドレス用メインFF71のラッチ信号を選択し,スイッチ77はメモリ11からのデータ信号DSを選択し,スイッチ80はデータ用メインFF78のラッチ信号を選択する。
そのため,データ用メインFF78は,時間T60以前にメモリ11から出力されたデータ信号DS(X[0]〜X[7])をメインクロック信号105に同期してラッチする。その結果,データ信号DS(X[0]〜X[7])がバス13に出力される。
メモリ11は時間T60以前にアドレス用メインFF82がラッチしたアドレス信号AS(c[0]〜c[7])に対応するデータ信号DS(C[0]〜C[7])を出力する。
時間T60ではバス13からアドレス信号ASが伝送されないため,アドレス用メインFF82のフリップフロップAMF0〜AMF7にはアドレス信号ASがラッチされない。また,アドレス用メインFF82のフリップフロップYFは,アドレス用バス13から,「無効」を示すLレベルの有効信号YSをラッチし,Lレベルのラッチ信号YS´を出力する。すなわち,時間T60で,アドレス用メインFF82はアドレス信号ASが有効でないことを検出する。
「無効」を示すLレベルの有効信号YSに対するラッチ信号YS´は反転され,図13のスキャン制御部14から供給されるHレベル(監視状態)のアクセス監視信号401とともにANDゲート83に入力される。その結果,ANDゲート83は,有効信号YSが「無効」を示していると判定し,Hレベルの出力信号を出力する。
時間T61で,フリップフロップ84が,時間T60におけるANDゲート83からのHレベルの出力信号をメインクロック信号105に同期してラッチする。その結果,内部スナップショット開始信号402がHレベルとなる。
これにより,スキャン制御部14は,アドレス用メインFF82が有効なアドレス信号ASをラッチしていないこと,すなわちANDゲート83が監視状態であって,かつメモリ11の読み出し動作が行われていないことを検出し,後述する時間T62以降の動作を開始する。また,スキャン制御部14は,内部スナップショット開始信号402の立ち上がりに応答して,アクセス監視開始信号をHレベル(監視状態)からLレベルにし,ANDゲート83を有効信号YSの判定を行わない通常状態にする。その結果,ANDゲート83の出力信号はLレベルとなる。
ORゲート85は,Hレベルの内部スナップショット開始信号402を入力し,Hレベルの出力信号を出力する。これにより,スイッチ74は,アドレス用サブFF73のラッチ信号を選択する(「1」側)。その結果,アドレス用サブFF73からメモリ11に監視アドレス信号(a[0]〜a[7])が入力される。そして,メモリ11は,監視アドレス信号(a[0]〜a[7])に対応するデータ信号DS(A[0]〜A[7])を出力する。
データ用メインFF78は,時間T60でメモリ11から出力されたデータ信号DS(C[0]〜C[7])をメインクロック信号105に同期してラッチする。これにより,データ信号DS(C[0]〜C[7])がバス13に出力される。
アドレス用メインFF82は,バス13からHレベルの有効信号YSとアドレス信号AS(d[0]〜d[7])とを,メインクロック信号105に同期してラッチする。
[スナップショットモード(時間T62)]
時間T62で,まず,フリップフロップ84が,時間T61のANDゲート83からのLレベルの出力信号をメインクロック信号105に同期してラッチする。その結果,内部スナップショット開始信号402がLレベルとなる。
ORゲート85は,このLレベルの内部スナップショット開始信号402及びLレベルのフリップフロップ選択信号108を入力し,ORゲート85の出力信号はHレベルからLレベルになる。その結果,スイッチ74は,アドレス用メインFF82のラッチ信号を選択する(「0」側)。
データ用メインFF78は,時間T61にメモリ11から出力された監視アドレス信号(a[0]〜a[7])に対応するデータ信号DS(A[0]〜A[7])を,メインクロック信号105に同期してラッチする。その結果,データ信号DS(A[0]〜A[7])がバス13に出力される。
メモリ11は,時間T61でアドレス用メインFF82がラッチしたアドレス信号AS(d[0]〜d[7])に対応するデータ信号DS(D[0]〜D[7])を出力する。
アドレス用メインFF82は,バス13からのHレベルの有効信号YS及びアドレス信号(y[0]〜y[7])を,メインクロック信号105に同期してラッチする。
一方,図13のスキャン制御部14は,時間T61の内部スナップショット開始信号402の立ち上がりに基づいて,SS用スキャンモード信号101を「000」から「010」に切り替える。
このSS用スキャンモード信号101の切替により,メモリI/F10の動作は,通常動作モードからスナップショットモードに切り替わる。スナップショットモードでは,メモリI/F10は,後述するスキャンアウトモードの動作を開始するまでの過渡的な動作を行う。
そして,モード制御回路81は,「010」のSS用スキャンモード信号101に基づいて,スナップショット信号107をHレベルにする。これにより,スイッチ70,77は,スキャンチェーン配線15の信号を選択する(「1」側)。
[スキャンアウトモード(時間T63〜T70)]
時間T62からクロック信号104の1クロック経過後の時間T63で,図13のスキャン制御部14は,SS用スキャンモード信号101を「010」から「011」に切り替える。それとともに,スキャン制御部14は,周期がクロック信号104の2倍であるSS用スキャンクロック信号102を出力する。
このSS用スキャンモード信号101の切替により,メモリI/F10の動作はスナップショットモードからスキャンアウトモードに切り替わる。
また,このとき,図13のテストモードコントローラ8が,アドレス用メインFF82及びデータ用メインFF78のスキャンアウトを開始するためにデバッグツール1から出力された,テスト開始を示すテスト開始信号に応答して,Hレベルのテストモード信号103を出力する。
モード制御回路81は,「011」のSS用スキャンモード信号101とHレベルのテストモード信号103とに基づいて,まず,クロック信号104をサブクロック信号106として出力し,アドレスセット信号403をLレベルに維持する。
これにより,スイッチ72は,Lレベルのアドレスセット信号403に基づいてバス13からのアドレス信号ASの選択を維持する(「0」側)。
そして,データ用サブFF79は,時間T62にメモリ11から出力されたデータ信号DS(D[0]〜D[7])を,サブクロック信号106に同期してラッチする。
メモリ11は,時間T62でアドレス用メインFF82がラッチしたアドレス信号AS(y[0]〜y[7])に対応するデータ信号DS(Y[0]〜Y[7])を出力する。
アドレス用サブFF73は,バス13からアドレス信号AS(r[0]〜r[7])を,サブクロック信号106に同期してラッチする。
一方,モード制御回路81は,「011」のSS用スキャンモード信号101とHレベルのテストモード信号103とに基づいて,SS用スキャンクロック信号102をメインクロック信号105として出力し,スナップショット信号107をHレベルに維持し,フリップフロップ選択信号108をHレベルにする。
これにより,スイッチ70,77は,Hレベルのスナップショット信号107に基づいて,スキャンチェーン配線15の信号を維持する(「1」側)。また,スイッチ74はアドレス用サブFF73のラッチ信号を選択し(「1」側),スイッチ80はデータ用サブFF79のラッチ信号を選択する(「1」側)。
その結果,データ用サブFF79がラッチしたデータ信号DS(D[0]〜D[7])がバス13に出力される。なお,スイッチ74,80の切替により,時間T64以降,後述するように,バス13からのアドレス信号ASをラッチしたアドレス用サブFF73のラッチ信号はメモリ11に供給され,メモリ11からのデータ信号DSをラッチしたデータ用サブFF79のラッチ信号はバス13に出力され,メモリI/F10は通常動作を継続する。
また,スイッチ70,77の状態により,アドレス用メインFF82の各フリップフロップAMF0〜AMF7と,データ用メインFF78の各フリップフロップDMF0〜DMF7とは,メインクロック信号105に同期して,それぞれスキャンチェーン配線15を介し前段のフリップフロップのラッチ信号をラッチする。つまり,アドレス用メインFF82及びデータ用メインFF78のスキャンアウトが開始される。したがって,時間T63では,図13のスキャンアウト端子18からは,時間T62におけるデータ用メインFF78内のフリップフロップDMF7のラッチ信号,すなわちデータ信号DS(A[0]〜A[7])の最上位の「A[7]」が出力される。
時間T64で,データ用サブFF79は,時間T63にメモリ11から出力されたデータ信号DS(Y[0]〜Y[7])を,サブクロック信号106に同期してラッチする。その結果,データ信号DS(Y[0]〜Y[7])はバス13に出力される。
メモリ11は,時間T63にアドレス用サブFF73がラッチしたアドレス信号AS(r[0]〜r[7])に対応するデータ信号DS(R[0]〜R[7])を出力する。
アドレス用サブFF73は,バス13からのアドレス信号AS(t[0]〜t[7])をサブクロック信号106に同期してラッチする。
このように,メモリI/F10は,アドレス用サブFF73及びデータ用サブFF79を用いて,通常動作を継続する。
時間T65でも,時間T63と同様に,アドレス用メインFF82の各フリップフロップAMF0〜AMF7と,データ用メインFF78の各フリップフロップDMF0〜DMF7とは,メインクロック信号105に同期して,それぞれスキャンチェーン配線15を介し前段のフリップフロップのラッチ信号をラッチする。その結果,時間T64では,スキャンアウト端子18からは,時間T63におけるフリップフロップDMF7のラッチ信号「A[6]」が出力される。
データ用サブFF79は,時間T64にメモリ11から出力されたデータ信号DS(R[0]〜R[7])を,サブクロック信号106に同期してラッチする。その結果,データ信号DS(R[0]〜R[7])はバス13に出力される。
メモリ11は,時間T64にアドレス用サブFF73がラッチしたアドレス信号AS(t[0]〜t[7])に対応するデータ信号DS(T[0]〜T[7])を出力する。
アドレス用サブFF73は,バス13からのアドレス信号AS(q[0]〜q[7])をサブクロック信号106に同期してラッチする。
このように時間T64以降は,メモリI/F10は通常動作を継続しながら,アドレス用メインFF82及びデータ用メインFF78のラッチ信号のスキャンアウトを行う。
[リターンモード(時間T71)]
時間T70で,スキャンアウト対象のラッチ信号が「y[0]」のみとなり,テストモードコントローラ8が,アドレス用メインFF82及びデータ用メインFF78のスキャンアウトを終了するためにデバッグツール1から出力された,テスト終了を示すテスト開始信号に応答して,テストモード信号103をHレベルからLレベルにする。
これにより,時間T71で,スキャン制御部14はSS用スキャンモード信号101を「011」から「001」に切り替え,メモリI/F10の動作はスキャンアウトモードからリターンモードに切り替わる。リターンモードでは,メモリI/F10は,通常動作モードの動作が開始されるまでの過渡的な動作を行う。
モード制御回路81は,まず,クロック信号104をサブクロック信号106として出力し,フリップフロップ選択信号108をHレベルに維持し,アドレスセット信号403をLレベルに維持する。
これにより,スイッチ72は,Lレベルのアドレスセット信号403に基づいてバス13からのアドレス信号ASの選択を維持する(「0」側)。スイッチ74は,Hレベルのフリップフロップ選択信号108に基づいて,アドレス用サブFF73のラッチ信号の選択を維持する(「1」側)。また,スイッチ80は,Hレベルのフリップフロップ選択信号108に基づいて,データ用サブFF79のラッチ信号の選択を維持する(「1」側)。
そして,データ用サブFF79は,時間T70でメモリ11から出力されたデータ信号DS(Z[0]〜Z[7])をサブクロック信号106に同期してラッチする。これにより,ラッチされたデータ信号DS(Z[0]〜Z[7])はバス13に出力される。
また,メモリ11は時間T70でアドレス用サブFF73がラッチしたアドレス信号(e[0]〜e[7])に対応するデータ信号DS(E[0]〜E[7])を出力する。アドレス用サブFF73は,バスからのアドレス信号AS(u[0]〜u[7])をサブクロック信号106に同期してラッチする。
一方,モード制御回路81は,SS用スキャンクロック信号102をメインクロック信号105として出力し,スナップショット信号107をLレベルにする。
これにより,スイッチ70は,Lレベルのスナップショット信号107に基づいて,バス13からのアドレス信号ASを選択する(「0」側)。また,スイッチ77は,Lレベルのスナップショット信号107に基づいて,メモリ11からのデータ信号DSを選択する(「0」側)。
[通常動作モード(時間T72)]
時間T71からクロック信号104の1クロック経過後の時間T72で,図13のスキャン制御部14はSS用スキャンモード信号101を「01」から「00」に切り替え,メモリI/F10はリターンモードから通常動作モードに切り替わる。それとともにスキャン制御部14は,SS用スキャンクロック信号102をLレベルに維持する。
モード制御回路81は,まず,クロック信号104をメインクロック信号105として出力し,Lレベルのテストモード信号103をスナップショット信号107として出力する。
これにより,スイッチ70は,Lレベルのスナップショット信号107に基づいて,バスからのアドレス信号ASの選択を維持する(「0」側)。スイッチ77は,Lレベルのスナップショット信号107に基づいて,メモリ11からのデータ信号DSの選択を維持する(「0」側)。
そして,データ用メインFF78は,時間T71でメモリから出力されたデータ信号DS(E[0]〜E[7])を,メインクロック信号105に同期してラッチする。その結果,データ信号DS(E[0]〜E[7])がバス13に出力される。
メモリ11は,時間T71でアドレス用サブFF73がラッチしたアドレス信号AS(u[0]〜u[7])に対応するデータ信号DS(U[0]〜U[7])を出力する。
アドレス用メインFF71は,バス13からのアドレス信号AS(b[0]〜b[7])をメインクロック信号105に同期してラッチする。
一方,モード制御回路81は,サブクロック信号106をLレベルにし,フリップフロップ選択信号108をLレベルにし,アドレスセット信号403をLレベルに維持する。
これにより,スイッチ72は,Lレベルのアドレスセット信号403に基づいてバス13からのアドレス信号ASの選択を維持する(「0」側)。スイッチ74は,Lレベルのフリップフロップ選択信号108に基づいて,アドレス用メインFF71を選択する(「0」側)。また,スイッチ80は,Lレベルのフリップフロップ選択信号108に基づいて,データ用メインFF78を選択する(「0」側)。
このようにして,時間T72以降のスイッチ70,72,74,77,80は,時間T60の通常動作モードにおける選択状態と同じになるため,メインI/F10は,アドレス用メインFF82及びデータ用メインFF73を用いて通常動作を行うことができる。
以上のように,図26では,セットモードでアドレス用サブFF73が監視アドレス信号をラッチした後の通常動作モードで,アドレス用メインFF82が有効なアドレス信号ASをラッチしないと,監視アドレス信号がメモリ11に入力され,監視アドレス信号と等しいアドレス信号ASに対応するデータ信号DSがデータ用メインFF78にラッチされる。それとともに,そのデータ信号DSをスキャンアウトするために,通常動作モードからスキャンアウトモードへの切替動作が開始される。そして,スキャンアウトモードにおいて,メモリI/F10はアドレス用サブFF73及びデータ用サブFF79を使用して通常動作を継続しながら,監視アドレス信号に対応するデータ信号DS,すなわち所望のアドレスのデータを,データ用メインFF78からスキャンアウトする。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと,
組合せ回路の出力信号と前記スキャンチェーンの信号とのいずれかを選択する第1のスイッチと,
前記スキャンチェーンに挿入され,前記第1のスイッチの出力信号を入力する第1のラッチと,
前記組合せ回路の出力信号を入力する第2のラッチと,
前記第1のラッチのラッチ信号と前記第2のラッチのラッチ信号とのいずれかを選択し後段の組合せ回路に供給する第2のスイッチとを有する半導体装置。
(付記2)
付記1において,
前記組合せ回路と,前記第1及び第2のスイッチと,前記第1及び第2のラッチとを有するスキャンユニットを複数段有し,前段の前記スキャンユニットの前記第2のスイッチの出力が後段の前記スキャンユニットの前記組合せ回路に入力し,前段の前記スキャンユニットの前記第1のラッチのラッチ信号及び後段の前記スキャンユニットの前記第1のスイッチが前記スキャンチェーンを介して接続される半導体装置。
(付記3)
付記1又は2において,
さらに,前記第1のスイッチが前記組合せ回路の出力信号を選択し,前記第1のラッチは前記第1のスイッチを介して前記組合せ回路の出力信号をラッチし,前記第2のスイッチは前記第1のラッチのラッチ信号を選択する通常動作モードと,
前記第1のスイッチが前記スキャンチェーンの信号を選択して前記第1のラッチのラッチ信号を前記スキャンチェーンを介して出力し,前記第2のラッチが前記組合せ回路の出力信号をラッチし,前記第2のスイッチは前記第2のラッチのラッチ信号を選択するスキャンアウトモードとを,
切替制御する制御部を有する半導体装置。
(付記4)
付記3において,
前記制御部は,任意のタイミングで前記通常動作モードから前記スキャンアウトモードに切り替え,所定の時間経過後,前記スキャンアウトモードから前記通常動作モードに切り替える半導体装置。
(付記5)
付記4において,
前記制御部は,前記通常動作モードから前記スキャンアウトモードに切り替えるとき,前記第1のラッチが前記組合せ回路の出力信号をラッチし前記第1のスイッチが前記スキャンチェーンの信号に選択を切り替えるスナップショットモードを介して切り替え, 前記スナップショットモードの後の前記スキャンアウトモードで,前記第2のラッチが前記組合せ回路の出力信号をラッチし,前記第2のスイッチが前記第2のラッチのラッチ信号に選択を切り替える半導体装置。
(付記6)
付記4において,
前記制御部は,前記スキャンアウトモードから前記通常動作モードに切り替えるとき,前記第2のラッチが前記組合せ回路の出力信号をラッチし前記第1のスイッチが前記組合せ回路の出力信号に選択を切り替えるリターンモードを介して切り替え, 前記リターンモードの後の前記通常動作モードで,前記第1のラッチが前記組合せ回路の出力信号をラッチし,前記第2のスイッチが前記第1のラッチのラッチ信号に選択を切り替える半導体装置。
(付記7)
付記3において,
前記制御部は,前記第2のラッチが前記組合せ回路の出力信号をラッチし前記第2のスイッチが前記第2のラッチのラッチ信号を選択する代替モードに切り替える半導体装置。
(付記8)
付記3において,
さらに,複数の前記第2のラッチのラッチ信号をスキャン入出力するサブスキャンチェーンと,
前記組合せ回路と前記第2のラッチの間に,前記組合せ回路の出力信号又は前記サブスキャンチェーンの信号のいずれかを選択する第3のスイッチとを有し,
前記制御部は,前記第3のスイッチが前記サブスキャンチェーンの信号を選択し前記第2のラッチは前記第3のスイッチを介して前記サブスキャンチェーンの信号をラッチし,前記第2のラッチのラッチ信号が前記サブスキャンチェーンを介して出力されるスキャンテストモードに切り替える半導体装置。
(付記9)
付記3乃至付記8のいずれかに記載の半導体装置と,
前記制御部に前記通常動作モードから前記スキャンアウトモードへの切替信号を供給し,前記スキャンアウトモードで前記第1のラッチのラッチ信号を供給されるデバッグ装置とを有するデバッグシステム。
(付記10)
付記8記載の半導体装置と,
前記制御部に前記通常動作モードから前記スキャンアウトモードへの切替信号を供給し,前記スキャンアウトモードで前記第1のラッチのラッチ信号を供給され,前記制御部に前記通常動作モードから前記スキャンテストモードへの切替信号を供給し,前記スキャンテストモードで前記第2のラッチのラッチ信号を供給されるデバッグ装置とを有するデバッグシステム。
(付記11)
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと,組合せ回路の出力信号と前記スキャンチェーンの信号とのいずれかを選択する第1のスイッチと,前記スキャンチェーンに挿入され前記第1のスイッチの出力信号を入力する第1のラッチと,前記組合せ回路の出力信号を入力する第2のラッチと,前記第1のラッチのラッチ信号と前記第2のラッチのラッチ信号とのいずれかを選択し前記組合せ回路の後段の組合せ回路に供給する第2のスイッチとを有する半導体装置の試験方法において,
前記第1のスイッチで前記組合せ回路の出力信号を選択して前記組合せ回路の出力信号を前記第1のラッチでラッチし,前記第2のスイッチで前記第1のラッチのラッチ信号を選択して前記後段の組合せ回路に前記第1のラッチのラッチ信号を入力する通常動作工程と,
前記第1のスイッチで前記スキャンチェーンの信号を選択して前記スキャンチェーンを介して前記第1のラッチのラッチ信号を出力し,前記第2のラッチで前記組合せ回路の出力信号をラッチし,前記第2のスイッチで前記第2のラッチのラッチ信号を選択して前記第2のラッチのラッチ信号を前記後段の組合せ回路に入力するスキャンアウト工程とを有する半導体装置の試験方法。
(付記12)
付記11において,
さらに,前記通常動作工程から前記スキャンアウト工程に切り替えるとき,前記第1のラッチが前記組合せ回路の出力信号をラッチし前記第1のスイッチが前記スキャンチェーンの信号に選択を切り替えるスナップショット工程と,
前記スキャンアウト工程から前記通常動作工程に切り替えるとき,前記第2のラッチが前記組合せ回路の出力信号をラッチし前記第1のスイッチが前記組合せ回路の出力信号に選択を切り替えるリターン工程とを有し,
前記スナップショット工程の後の前記スキャンアウト工程で,前記第2のラッチが前記組合せ回路の出力信号をラッチし,前記第2のスイッチが前記第2のラッチのラッチ信号に選択を切り替え,
前記リターン工程の後の前記通常動作工程で,前記第1のラッチが前記組合せ回路の出力信号をラッチし,前記第2のスイッチが前記第1のラッチのラッチ信号に選択を切り替える半導体装置の試験方法。
(付記13)
メモリと,
複数のラッチのラッチ信号をスキャン出力するスキャンチェーンと,
バスからの前記メモリのアドレス信号と前記スキャンチェーンの信号とのいずれかを選択する第1のスイッチと,
前記スキャンチェーンに挿入され,前記第1のスイッチの出力信号を入力する第1のラッチと,
前記アドレス信号と前記スキャンチェーンの信号とのいずれかを選択する第2のスイッチと,
前記スキャンチェーンに挿入され,前記第2のスイッチの出力信号を入力する第2のラッチと,
前記第1のラッチのラッチ信号と前記第2のラッチのラッチ信号とのいずれかを選択し後段の前記メモリに供給する第3のスイッチと,
前記メモリからのデータ信号と前記スキャンチェーンの信号とのいずれかを選択する第4のスイッチと,
前記スキャンチェーンに挿入され,前記第4のスイッチの出力信号を入力する第3のラッチと,
前記データ信号を入力する第4のラッチと,
前記第3のラッチのラッチ信号と前記第4のラッチのラッチ信号とのいずれかを選択し前記バスに供給する第5のスイッチとを有する半導体装置。
(付記14)
付記13において,
前記第1のスイッチが前記アドレス信号を選択し,前記第1のラッチが前記第1のスイッチを介して入力する前記アドレス信号をラッチし,前記第3のスイッチが前記第1のラッチのラッチ信号を選択し,前記第4のスイッチが前記メモリの出力信号を選択し,前記第3のラッチが前記第4のスイッチを介して入力する前記データ信号をラッチし,前記第5のスイッチが前記第3のラッチのラッチ信号を選択する通常動作モードと,
前記第2のスイッチが前記スキャンチェーンの監視アドレス信号を選択し,前記第2のラッチが前記第2のスイッチを介して入力する前記監視アドレス信号をラッチするセットモードと,
前記第1のスイッチが前記スキャンチェーンの信号を選択して前記第1のラッチのラッチ信号を前記スキャンチェーンを介して出力し,前記第2のスイッチが前記アドレス信号を選択し,前記第2のラッチが前記第2のスイッチを介して入力する前記アドレス信号をラッチし,前記第3のスイッチが前記第2のラッチのラッチ信号を選択し,前記第4のスイッチが前記スキャンチェーンの信号を選択して前記第3のラッチのラッチ信号を前記スキャンチェーンを介して出力し,前記第4のラッチが前記データ信号をラッチし,前記第5のスイッチが前記第4のラッチのラッチ信号を選択するスキャンアウトモードとを,
切替制御する制御部を有する半導体装置。
(付記15)
付記14において,
前記制御部は,前記セットモードから前記通常動作モードに切り替えた後,前記第1のラッチのラッチ信号と,前記第2のラッチが前記セットモードでラッチした前記監視アドレス信号とが等しいとき,前記通常動作モードから前記スキャンアウトモードに切替制御し,
前記第3のラッチは,前記通常動作モードから前記スキャンアウトモードに切り替わるときに,前記メモリから出力された前記監視アドレス信号に対応する前記データ信号をラッチする半導体装置。
(付記16)
付記14において,
前記制御部は,前記セットモードから前記通常動作モードに切り替えた後,前記第1のラッチが有効なアドレス信号をラッチしていない状態のとき,前記通常動作モードから前記スキャンアウトモードに切替制御し,
前記第2のラッチがラッチした監視アドレス信号は,前記通常動作モードから前記スキャンアウトモードに切り替わるときに,前記第3のスイッチを介して前記メモリに入力し,
前記第3のラッチは,前記通常動作モードから前記スキャンアウトモードに切り替わるときに,前記メモリから出力された前記監視アドレス信号に対応する前記データ信号をラッチする半導体装置。