(57)【要約】【課題】不揮発性メモリに格納されたテストモード制御フラグのデータが故障等によってビット変化しても、セキュリティを十分に確保し、かつ、製造の歩留まりを低下させない半導体装置を提供する。【解決手段】テストモードを有する半導体装置であって、所定番地にテストモード制御コードを記憶する不揮発性メモリ１と、テストモード禁止／許可を示す固定値を発生する発生部３と、前記制御コードと前記固定値とのハミング距離が所定数以下であるか否かに応じて前記テストモードへの移行を制御するハミング距離判定回路４とを備える。【選択図】 図１
2007064762.tif 000002
【特許請求の範囲】
【請求項１】
テストモードを有する半導体装置であって、
所定番地に制御コードを記憶する不揮発性メモリと、
固定値を発生する発生手段と、
前記制御コードと前記固定値とのハミング距離が所定数以下であるか否かに応じて前記テストモードへの移行を制御する制御手段と
を備えることを特徴とする半導体装置。
【請求項２】
前記制御手段は、
前記制御コードと前記発生手段により発生された固定値とのハミング距離を算出する算出手段と、
算出されたハミング距離と前記所定数とを比較することにより、ハミング距離が前記所定数以下であるか否かを判定する比較手段と、
ハミング距離が所定数以下であると判定されたとき、テストモードへの移行を禁止する禁止手段と
を備えることを特徴とする請求項１記載の半導体装置。
【請求項３】
前記制御コードには、前記所定数以下の数のビット誤りを訂正する誤り訂正符号が付加され、
前記制御手段は、
前記制御コードに対して、誤り訂正符号を用いて誤り訂正処理を行う誤り訂正手段と、
誤り訂正処理後の制御コードと前記発生手段により発生された固定値とを比較し、一致するか否かを判定する比較手段と、
一致すると判定されたとき、テストモードへの移行を禁止する禁止手段と
を備えることを特徴とする請求項１記載の半導体装置。
【請求項４】
前記半導体装置は、さらに、データを保持するためのレジスタと、
前記半導体装置のリセット時に前記固定値を初期値としてレジスタに設定する第１設定手段と、
前記半導体装置のリセット後に前記不揮発性メモリから前記制御コードを読み出して前記レジスタに設定する第２設定手段と
を備え、
前記制御手段は、前記レジスタに保持されたデータと前記固定値とのハミング距離に応じて前記テストモードへの移行を制御する
を備えることを特徴とする請求項１から３の何れかに記載の半導体装置。
【請求項５】
前記半導体装置は、さらに、前記ハミング距離が前記所定数以下であるとき、前記固定値を前記不揮発性メモリに書き込む書き込み手段を備える
ことを特徴とする請求項１から３の何れかに記載の半導体装置。
【請求項６】
前記半導体装置は、前記書き込み手段の機能を記述したプログラムを記憶するメモリと、前記プログラムを実行するマイクロコンピュータとを備え、
前記書き込み手段は、前記マイクロコンピュータが前記プログラムを実行することによって実現される
ことを特徴とする請求項５記載の半導体装置。
【請求項７】
テストモードを有する半導体装置に備えられるテストモード制御回路であって、
所定番地に制御コードを記憶する不揮発性メモリと、
固定値を発生する発生手段と、
前記制御コードと前記固定値とのハミング距離が所定数以下であるか否かに応じて前記テストモードへの移行を制御する制御手段と
を備えることを特徴とするテストモード制御回路。
【請求項８】
テストモードを有する半導体装置におけるテストモード制御方法であって、
不揮発性メモリの所定番地に記憶された制御コードを読み出す読み出しステップと、
前記制御コードと前記固定値とのハミング距離が所定数以下であるか否かに応じて前記テストモードへの移行を制御する制御ステップと
を備えることを特徴とするテストモード制御方法。
【請求項９】
テストモードを有する半導体装置内のマイクロコンピュータが読取可能なプログラムであって、
不揮発性メモリの所定番地に記憶された制御コードを読み出す読み出しステップと、
前記制御コードと前記固定値とのハミング距離が所定数以下であるか否かに応じて前記テストモードへの移行を制御する制御ステップと
を前記マイクロコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストモードを有する半導体装置に関し、特にセキュリティの確保を要する半導体装置のテストモードを制御する技術に関する。
【背景技術】
【０００２】
機密性の高いデータやプログラムを搭載するＬＳＩや、ＩＣカード用途等のセキュリティ回路を搭載するＬＳＩでは、テストモードを使用した、データやプログラムおよび回路情報の暴露、改竄を防ぐために、製品の出荷後はテストモードを使用できないようにする必要がある。
【０００３】
テストモードを禁止する手法として、テストモードの実行許可または禁止を示すテストモード制御フラグと、特定の比較用データとを比較し、一致した場合にはテストモードを許可し、不一致の場合にはテストモードを禁止するという方法がある。このテストモード制御フラグは、不揮発性メモリの所定のアドレスに予め格納される。
【０００４】
例えば、特許文献１に開示されている技術では、不揮発性メモリであるＥＥＰＲＯＭに格納されたテストモードの実行許可／禁止を示すフラグと、特定のデータとを比較し、そのフラグと特定のデータとが一致した場合にはテストモードへの移行を禁止する。テストモードではテスト動作の他にＥＥＰＲＯＭの初期化やプログラム等が可能となる。また、フラグと特定のデータとが一致しない場合にはテストモードへ移行可能になる。
【０００５】
上記に示したような不揮発性メモリに格納したテストモード制御フラグによるテストモード制御の実現方法について説明する。図９は、従来のテストモード制御回路の構成を示すブロック図である。従来のテストモード制御回路は、不揮発性メモリ９１とフラグ保持レジスタ９２と固定値発生部９３と比較回路９４とＡＮＤ回路９５とテスト回路９６とを備える。
【０００６】
不揮発性メモリ９１は、テストモードの実行許可／禁止を指定するテストモード禁止フラグを格納する。テストモード禁止フラグは、１ビットでも複数ビットでもよい。フラグ保持レジスタ９２は、ＬＳＩ起動後に不揮発性メモリ９１から読み出されたテストモード制御フラグを保持する。固定値発生部９３は、予め定められたテストモード禁止コードを発生する。比較回路９４は、テストモード制御フラグのデータとテストモード禁止コードとを比較し、一致する場合はハイレベルを出力する。ＡＮＤ回路９５は、比較回路９４の出力がハイレベルの場合はテスト回路９６へのテスト信号をマスクする。
【０００７】
ここで、例としてテストモード禁止コードが５Ａ（１６進数）であるとして説明をする。
【０００８】
ＬＳＩに電源が投入されると不揮発性メモリ９１の所定のアドレスからテストモード制御フラグのデータが読み出され、フラグ保持レジスタ９２に格納される。
【０００９】
フラグ保持レジスタ２に格納されたテストモード制御フラグのデータが５Ａ（１６進数）以外のとき、比較結果９４の出力はＬｏｗとなり、テスト信号はテスト回路９６に入力されテストモードが許可される。
【００１０】
一方、フラグ保持レジスタ９２に格納されたテストモード制御フラグのデータが５Ａ（１６進数）であったとき、比較回路８の出力がハイレベルとなり、テスト信号はテスト回路９６に入力されないために、テストモードが禁止される。
【特許文献１】特開平１１−２１９３１８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記従来技術によれば、不揮発性メモリに格納されたテストモード制御フラグのデータが特定のテストモード禁止コードと一致したときのみテストモードが禁止されるため、不揮発性メモリに格納されたテストモード制御フラグのデータが故障等により１ビットでも変化すると、テストモードの禁止が解除されてしまいうという問題がある。その結果、テストモードに移行すると、認証コード等セキュリティを要するデータにアクセス可能になり、回路情報の暴露、改竄される可能性が高まり、セキュリティを確保できないという問題がある。
【００１２】
一方、不揮発性メモリに格納されたテストモード制御フラグのデータが特定のテストモード禁止コードと不一致の場合のみテストモードを禁止する方式にすると、製造直後の不揮発性メモリのデータが不定の場合には、製造直後からテストモードが禁止されたＬＳＩが多発してしまう。製造直後からテストモードが禁止されると不揮発性メモリの初期化ができなくなりＬＳＩの歩留り低下を招いてしまうという問題がある。
【００１３】
本発明は、上記の如き従来の課題を解決するためになされたもので、その目的は、不揮発性メモリに格納されたテストモード制御フラグのデータが故障等によってビット変化しても、セキュリティを十分に確保し、かつ、製造の歩留まりを低下させない半導体装置を提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成するため本発明の半導体装置は、テストモードを有する半導体装置であって、所定番地に制御コードを記憶する不揮発性メモリと、固定値を発生する発生手段と、前記制御コードと前記固定値とのハミング距離が所定数以下であるか否かに応じて前記テストモードへの移行を制御する制御手段とを備える。
【００１５】
この構成によれば、ハミング距離が所定数以下である場合、すなわち、制御コードが故障等によって変化し、変化したビット数が所定数以下である場合には、テストモードへの移行を禁止または許可する。例えば、テストモードへの移行を禁止することを意味する制御コードに所定数以下のビット変化があった場合でも、テストモードへの移行禁止が解除されることを防止するので、回路情報の暴露、改竄されることを防止し、セキュリティを確保することができる。また、テストモードへの移行を許可することを意味する制御コードに所定数以下のビット変化があった場合でも、テストモードへの移行が禁止されないので、製造直後からテストモードが禁止される確率を低くすることができるため、歩留まりの低下を防止することができる。
【００１６】
ここで、前記制御手段は、前記制御コードと前記発生手段により発生された固定値とのハミング距離を算出する算出手段と、算出されたハミング距離と前記所定数とを比較することにより、ハミング距離が前記所定数以下であるか否かを判定する比較手段と、ハミング距離が所定数以下であると判定されたとき、テストモードへの移行を禁止する禁止手段とを備える構成としてもよい。
【００１７】
この構成によれば、比較的簡単な回路で制御手段を構成することができる。
ここで、前記制御コードには、前記所定数以下の数のビット誤りを訂正する誤り訂正符号が付加され、前記制御手段は、前記制御コードに対して、誤り訂正符号を用いて誤り訂正処理を行う誤り訂正手段と、誤り訂正処理後の制御コードと前記発生手段により発生された固定値とを比較し、一致するか否かを判定する比較手段と、一致すると判定されたとき、テストモードへの移行を禁止する禁止手段とを備える構成としてもよい。
【００１８】
この構成によれば、ハミング距離を直接算出する代わりに、誤り訂正処理後の制御コードと固定値とを単純比較することにより、ハミング距離が所定数以下であるか否かを判定することができる。
【００１９】
ここで、前記半導体装置は、さらに、データを保持するためのレジスタと、前記半導体装置のリセット時に前記固定値を初期値としてレジスタに設定する第１設定手段と、前記半導体装置のリセット後に前記不揮発性メモリから前記制御コードを読み出して前記レジスタに設定する第２設定手段とを備え、前記制御手段は、前記レジスタに保持されたデータと前記固定値とのハミング距離に応じて前記テストモードへの移行を制御するようにしてもよい。
【００２０】
この構成によれば、リセット開始から前記制御コードがレジスタに設定されるまでの期間に、禁止状態が解除されることを防止することができる。例えば、リセット信号を悪用して、テストモードへ移行し、不揮発性メモリのデータを暴露したり改竄することを防止することができる。
【００２１】
ここで、前記半導体装置は、さらに、前記ハミング距離が前記所定数以下であるとき、前記固定値を前記不揮発性メモリに書き込む書き込み手段を備えるようにしてもよい。
【００２２】
この構成によれば、制御コードに所定数以下のビット変化があった場合に、ビット変化していない正しい制御コードに復元することができ、より信頼性を高めることができる。
【００２３】
ここで、前記半導体装置は、前記書き込み手段の機能を記述したプログラムを記憶するメモリと、前記プログラムを実行するＣＰＵとを備え、前記書き込み手段は、前記ＣＰＵが前記プログラムを実行することによって実現されるようにしてもよい。
【００２４】
また、本発明のテストモード制御回路、テストモード制御方法、プログラムについても上記と同様の手段を備えるので説明を省略する
【発明の効果】
【００２５】
本発明によれば、上記ハミング距離が所定数以下である場合、すなわち、制御コードが故障等によって変化し、変化したビット数が所定数以下である場合には、テストモードへの移行を禁止または許可する。例えば、テストモードへの移行を禁止することを意味する制御コードに所定数以下のビット変化があった場合でも、テストモードへの移行禁止が解除されることを防止するので、回路情報の暴露、改竄されることを防止し、セキュリティを確保することができる。また、テストモードへの移行を許可することを意味する制御コードに所定数以下のビット変化があった場合でも、テストモードへの移行が禁止されないので、製造直後からテストモードが禁止される確率を低くすることができるため、歩留まりの低下を防止することができる。
【００２６】
また、リセット信号を悪用して、テストモードへ移行し、不揮発性メモリのデータを暴露したり改竄することを防止することができる。
【００２７】
さらに、不揮発性メモリに記憶された制御コードに所定数以下のビット変化があった場合に、ビット変化していない正しい制御コードに復元することができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づいて説明する。
【００２９】
（第１の実施形態）
図１は、本発明の第１の実施形態におけるテストモード制御回路を備えるシステムＬＳＩの構成を示すブロック図である。同図においてシステムＬＳＩ１００は、テストモードを有する半導体装置であって、不揮発性メモリ１と、レジスタ２と、固定値発生部３と、ハミング距離判定回路４と、ＡＮＤ回路５と、テスト回路６と、マイクロコンピュータ１０とを備える半導体装置である。また、不揮発性メモリ１の一部とレジスタ２と固定値発生部３とハミング距離判定回路４とＡＮＤ回路５とは、テストモード制御回路を構成する。
【００３０】
不揮発性メモリ１は、所定番地に、テストモードへの移行を許可／禁止するテストモード制御コードを格納する。テストモード制御コードは、工場での製造直後やメインテナンス時に必要に応じて設定される。出荷後は、テストモードへの移行を禁止するテストモード制御コードが設定される。
【００３１】
レジスタ２は、不揮発性メモリ１から読み出されたテストモード禁止コードを保持する。例えば、システムＬＳＩ１００のリセット直後にマイクロコンピュータ１０によって、不揮発性メモリ１からテストモード禁止コードが読み出され、レジスタ２に設定される。
【００３２】
固定値発生部３は、固定値であるテストモード禁止コードを発生する。例えば、固定値発生部３は、ハイレベルまたはローレベルに接続される配線の組み合わせで構成される。テストモード禁止コードは、例えば、８ビットであれば１６進数で５Ａ、３２ビットであれば５Ａ５Ａ５Ａ５Ａなどの任意の固定値でよい。
【００３３】
ハミング距離判定回路４は、レジスタ２から出力されるテストモード制御コードと、固定値発生部３から出力されるテストモード禁止コード（以下、固定値と呼ぶ。）とのハミング距離が所定数以下である場合に、前記テストモードへの移行を制御する禁止信号を出力する。ここで、所定数は、テストモード制御コードが８ビットである場合には２ビット程度、テストモード制御コードが３２ビットである場合には５ビット程度の値としてよい。ハミング距離判定回路４は、例えば、３２ビットのテストモード制御コードが故障等によってビット変化し、変化したビット数が所定数以下である場合には、テストモードへの移行を禁止する禁止信号を出力する。
【００３４】
ＡＮＤ回路５は、テストモードへの移行を指示するテスト信号を、禁止信号に応じてマスクするマスク回路である。同図の例では、禁止信号が禁止を意味するハイレベルである場合に、テスト信号をマスクしたローレベルをテスト回路６に出力する。これによりテストモードへの移行が禁止される。また、禁止信号が許可を意味するローレベルである場合に、テスト信号のレベルをそのままテスト回路６に出力する。これによりテストモードへの移行が許可される。
【００３５】
テスト回路６は、ＡＮＤ回路５を介してテスト信号(ハイレベル)が入力されたときにテストモードに移行し、各種テスト動作を行う。テストモードに移行後、システムＬＳＩ１００は、さらに、システムＬＳＩ１００内の初期設定や設定変更のために、不揮発性メモリ１等の各部をアクセス可能なモードに移行することができる。
【００３６】
図１に示した構成と先に説明した図９に示した従来構成との相違点は、比較回路がハミング距離判定回路で置換されている点である。これにより、不揮発性メモリに格納されたテストモード制御フラグのデータが変化しても、所定のビット数以内の変化であれば、テストモード禁止状態を保持することが可能となる。
【００３７】
図２は、ハミング距離判定回路４のより詳細な回路例を示すブロック図である。同図においてハミング距離判定回路４は、ハミング距離算出回路４１と比較回路４２とを備える。
【００３８】
ハミング距離算出回路４１は、レジスタ２からのテストモード制御コードと固定値発生部３からの固定値とのハミング距離を算出する。そのため、ｎ個のＥＸＯＲ回路４−１〜４−ｎと、加算器４０１を備える。ここで、ｎは、テストモード制御コードおよび固定値の各ビット数と等しい。
【００３９】
ＥＸＯＲ回路４−１〜４−ｎは、それぞれテストモード制御コードと固定値との対応するビット値が一致するか否かを判定する。
【００４０】
加算器４０１は、ｎ個のＥＸＯＲ回路４−１〜４−ｎの出力を加算する。これにより、テストモード制御コードと固定値の対応するｎビットのうち、一致したビットの数、すなわちハミング距離を出力する。
【００４１】
比較回路４２は、上記の所定数と、算出されたハミング距離とを比較することにより、ハミング距離が前記所定数以下であるか否かを判定する。所定数以下である場合は、禁止信号をアクティブ（ハイレベル）にし、所定数より大きい場合は、禁止信号をインアクティブ（ローレベル）にする。
【００４２】
以上のように構成された半導体装置について、その動作を説明する。
図３は、上記半導体装置におけるテストモード制御処理を示すフローチャート図である。
【００４３】
同図において、システムＬＳＩ１００が起動されると、最初にマイクロコンピュータ１０は、不揮発性メモリ１からテストモード制御コードを読出し（Ｓ１）、読み出したテストモード制御コードをレジスタ２に書込む（Ｓ２）。これにより、ハミング距離判定回路４は、ハミング距離に応じて禁止信号を出力するので、テストモード制御コードが所定数以下のビット変化していても、テストモードへの移行を禁止することができる。
【００４４】
次に、マイクロコンピュータ１０は、ハミング距離判定回路４の出力がハイレベル（禁止）であるか否かを判定する（Ｓ３）。ハミング距離判定回路４の出力がハイレベルである場合、すなわち不揮発性メモリに格納されていたテストモード制御フラグのデータと前記固定値とのハミング距離が所定数以下である場合には、マイクロコンピュータ１０は、加算器４０１から出力されたハミング距離が１以上であるか否かを判定する（Ｓ４）。ハミング距離が１以上である場合、すなわち、禁止を意味するテストモード制御コードにビット変化があった場合には、マイクロコンピュータ１０は、前記固定値を不揮発性メモリに書き込む（Ｓ４）。
【００４５】
これにより、もし不揮発性メモリ１に格納していたテストモードへの移行禁止を示すテストモード制御コードが何らかの要因により数ビット変化してしまった場合でも、固定値が書き戻されるので、不揮発性メモリのデータ変化によりテストモードの実施禁止が解除されてしまう可能性をより少なくすることが可能となる。
【００４６】
以上説明してきたように、本実施の形態における半導体装置によれば、テストモード制御コードと、固定値とのハミング距離が所定数以下である場合、すなわち、制御コードが故障等によって変化し、変化したビット数が所定数以下である場合には、テストモードへの移行を禁止する。例えば、テストモードへの移行を禁止することを意味する制御コードに所定数以下のビット変化があった場合でも、テストモードへの移行禁止が解除されることを防止するので、回路情報の暴露、改竄されることを防止し、セキュリティを確保することができる。
【００４７】
また、テストモードへの移行を許可することを意味する制御コードに所定数以下のビット変化があった場合でも、テストモードへの移行が禁止されないので、製造直後からテストモードが禁止される確率を低くすることができるため、歩留まりの低下を防止することができる。
【００４８】
さらに、テストモードへの移行禁止を示すテストモード制御コードが何らかの要因により数ビット変化してしまった場合でも、固定値がテストモード制御コードとして不揮発性メモリ１に書き戻されるので、不揮発性メモリ１のデータ変化によりテストモードの移行禁止が誤って解除されてしまう可能性をより少なくすることが可能となる。
【００４９】
続いて、本実施の形態の変形例について説明する。図４は、図２に示したハミング距離判定回路４の変形例の構成を示すブロック図である。同図において、ハミング距離判定回路４ａは、誤り訂正回路４５と比較回路４６とを備える。また、図５に示すように、テストモード制御コードには、前記所定数以下の数のビット誤りを訂正するための誤り訂正符号（ＥＣＣ：Eerror Correction Code）が付加されているものとする。不揮発性メモリ１およびレジスタ２は、誤り訂正符号が付加されたテストモード制御コードを記憶する。
【００５０】
誤り訂正回路４５は、誤り訂正符号が付加されたテストモード制御コードに対して、上記の所定数以下の数のビット誤りを訂正する誤り訂正処理を施す。また、誤り訂正回路４５は、誤り訂正処理に伴って、少なくとも所定数以下の数のビット誤りを検出する。
【００５１】
比較回路４６は、誤り訂正処理後のテストモード制御コードと固定値発生部３からの固定値とを比較し、一致するか否かを判定する。
【００５２】
これによれば、ハミング距離を直接算出する代わりに、誤り訂正処理後のテストモード制御コードと固定値とを単純比較することにより、ハミング距離が所定数以下であるか否かを判定することができる。
【００５３】
また、図６は、図４に示したハミング距離判定回路４ａを備える半導体装置におけるテストモード制御処理を示すフローチャート図である。図６のフローチャートは、図３と比較して、ステップＳ４の代わりにステップＳ４ａを有する点が異なっている。同じ点は説明を省略して異なる点を中心に説明する。ステップＳ４ａにおいて、マイクロコンピュータ１０は、誤り訂正回路４５から誤り検出信号により、誤りが検出されたが否かを判定、すなわち、テストモードへの移行禁止を示すテストモード制御コードが何らかの要因により数ビット変化が起きたか否かを判定する。
【００５４】
なお、上記実施形態では、ハミング距離が所定数以下である場合にテストモードへの移行を禁止するケースについて説明したが、ハミング距離が所定数以下である場合にテストモードへの移行を許可する構成としてもよい。その場合、図２の比較回路４２はＡ＜Ｂのときにハイレベルを出力する構成とすればよいし、図４の比較回路４６はＡとＢが不一致のときにハイレベルを出力する構成とすればよい。
【００５５】
また、図３、図６では、マイクロコンピュータ１０が動作主体である場合を説明したが、マイクロコンピュータ１０以外にハードウェアを動作主体として備えてもよい。
【００５６】
（第２の実施形態）
図７は、本発明の第２の実施形態における半導体装置の構成を示すブロック図である。同図は、図１と比較して、セレクタ７が追加された点と、レジスタ２にセレクタ７からの出力信号が入力される点とが異なっている。以下、同じ点は説明を省略して異なる点を中心に説明する。
【００５７】
セレクタ７は、不揮発性メモリ１からのテストモード制御コードと、固定値発生部３からの固定値とが入力され、リセット信号がアクティブなときはテストモード制御コードを選択し、リセット信号がインアクティブなときは固定値を選択する。
【００５８】
レジスタ２は、半導体装置のリセット時に固定値を初期値として保持し、リセット後に不揮発性メモリ１からのテストモード制御コードを保持する。
【００５９】
これにより、リセット開始時点からテストモード制御コードがレジスタに設定されるまでの期間において、ハミング距離判定回路４は禁止信号をアクティブにし、禁止状態が解除されることを防止することができる。例えば、リセット信号を悪用して、テストモードへ移行し、不揮発性メモリのデータを暴露したり改竄することを防止することができ、よりセキュリティの高いテストモード制御が実現可能となる。
【００６０】
なお、第１の実施形態における変形例を本実施形態に適用してもよい。
【００６１】
（第３の実施形態）
図８は、本発明の第３の実施形態における半導体装置の構成を示すブロック図である。同図は、図１と比較して、アクセス回路８が追加された点が異なっている。以下、同じ点は説明を省略して異なる点を中心に説明する。
【００６２】
フラグアクセス回路８は、図３または図６に示した動作を実行するハードウェア回路である。すなわち、アクセス回路８は、リセット信号が入力されており、リセットが解除されると自動的に不揮発性メモリ１のテストモード制御コードを格納しているアドレスに対する読出し信号を生成し、レジスタ２に書き込む。テストモード制御コードの書き込み終了後、ハミング距離判定回路４の出力がハイレベルであり、かつハミング距離が１以上の場合、すなわち不揮発性メモリ１に格納されていたテストモード制御コードと前記テストモード禁止コードとのハミング距離が所定数以下であり、かつ、テストモード制御コードにビット変化があった場合には、不揮発性メモリ１のテストモード制御フラグを格納しているアドレスに対する書込み信号を生成し、不揮発性メモリ１にテストモード禁止コード（固定値）を書込む。
【００６３】
これにより、もし不揮発性メモリに格納していたテストモード禁止を示すフラグが何らかの要因により数ビット変化してしまった場合でも、再度、テストモード禁止コードが書き戻されるので、不揮発性メモリのデータ変化によりテストモードの実施禁止が解除されてしまう可能性をより少なくすることが可能となる。
【００６４】
なお、図８の構成に、図７に示したセレクタ７を追加した構成としてもよい。
また、第１、第２の実施形態における変形例を本実施形態に適用してもよい。
【産業上の利用可能性】
【００６５】
本発明におけるテストモード制御回路は、不揮発性メモリを利用したテストモードの実行禁止制御を行う全ての半導体装置において有用である。
【００６６】
特に、秘匿性の高いデータやプログラムおよびセキュリティ回路を搭載する半導体装置においては、テストモードを利用した内部情報の暴露、改竄が防止できるため有用である。
【図面の簡単な説明】
【００６７】
【図１】第１の実施形態における半導体装置の構成を示すブロック図である。
【図２】ハミング距離判定回路の具体例を示すブロック図である。
【図３】テストモード制御処理のフローチャート図である。
【図４】本実施形態におけハミング距離判定回路の変形例の構成を示すブロック図である。
【図５】誤り訂正符号が付加されたテストモード制御コードを示す図である。
【図６】変形例におけるテストモード制御処理のフローチャート図である。
【図７】第２の実施形態におけるテストモード制御の構成を示すブロック図である。
【図８】第３の実施形態におけるテストモード制御の構成を示すブロック図である。
【図９】従来のテストモード制御の構成を示すブロック図である。
【符号の説明】
【００６８】
１  不揮発性メモリ
２  レジスタ
３  固定値発生部
４、４ａ  ハミング距離判定回路
５  ＡＮＤ回路
６  テスト回路
７  セレクタ
８  テストモード制御フラグアクセス回路
１０  ＣＰＵ
４−１、４−１、・・・、４−ｎ  ＥＸＯＲ回路
４１  比較回路
４５  誤り訂正回路
４６  比較回路
４０１  加算器
【図１】
2007064762.tif 000003
【図２】
2007064762.tif 000004
【図３】
2007064762.tif 000005
【図４】
2007064762.tif 000006
【図５】
2007064762.tif 000007
【図６】
2007064762.tif 000008
【図７】
2007064762.tif 000009
【図８】
2007064762.tif 000010
【図９】
2007064762.tif 000011