(57)【特許請求の範囲】
【請求項１】
互いに同じ電圧配線に接続された複数の論理回路を備えた第１回路と、
それぞれ、前記複数の論理回路のそれぞれに対応し、対応する論理回路にテストパタンを供給する複数のパタン発生器と、
テストパタンに応じて、前記複数の論理回路のそれぞれから出力される信号が供給される処理器と、
前記複数のパタン発生器に接続され、前記複数のパタン発生器間において、対応する論理回路へ供給するテストパタンの停止タイミングが互いに異なるように制御する制御回路と、
を備え、
前記複数のパタン発生器のうち、前記制御回路により、テストパタンの停止タイミングが遅くされたパタン発生器は、診断に用いられない無効データを含むテストパタンを出力する、半導体装置。
【請求項２】
請求項１に記載の半導体装置において、
前記複数の論理回路のそれぞれは、
対応するテストパタンが供給されるとき、互いに直列に接続され、対応するテストパタンを、次段へ転送する複数の保持回路と、
前記複数の保持回路に保持されている信号を受け、信号の論理値に従って動作する組合せ回路と、
を備えている、半導体装置。
【請求項３】
請求項２に記載の半導体装置において、
前記制御回路は、前記複数のパタン発生器間において、対応する論理回路へのテストパタンの供給の開始タイミングが、互いに異なるように制御する、半導体装置。
【請求項４】
請求項１に記載の半導体装置において、
前記制御回路は、前記テストパタンの停止タイミングを定める情報が設定されるレジスタを備える、半導体装置。
【請求項５】
第１回路と、
前記第１回路に接続され、前記第１回路に、それぞれテストパタンを供給する複数のパタン発生器と、
前記複数のパタン発生器を、それぞれ制御するパタン発生器制御回路と、
前記複数のパタン発生器からのテストパタンの供給に応じて、前記第１回路から出力される結果を圧縮処理するパタン圧縮器と、
前記パタン圧縮器が自己診断に用いられるテストパタンに応じて前記第１回路から出力された結果を圧縮するように、前記パタン圧縮器の動作を制御する圧縮器制御回路と、
前記パタン発生器制御回路と前記パタン圧縮器制御回路とに接続され、前記複数のパタン発生器間において、前記第１回路へ供給するテストパタンの停止タイミングが異なるように、前記パタン発生器制御回路を制御する自己診断制御回路と、
を備え、
前記複数のパタン発生器のうち、前記自己診断制御回路により、テストパタンの停止タイミングが遅くされたパタン発生器は、前記自己診断に用いられない無効データを含むテストパタンを出力する、半導体装置。
【請求項６】
互いに同じ電圧配線に接続された複数の論理回路を備えた第１回路と、
それぞれ、前記複数の論理回路のそれぞれに対応し、対応する論理回路にテストパタン
を供給する複数のパタン発生器と、
テストパタンに応じて、前記複数の論理回路のそれぞれから出力される信号が供給され
る処理器と、
前記複数のパタン発生器に接続され、前記複数のパタン発生器間において、対応する論
理回路へ供給するテストパタンの停止タイミングが互いに異なるように制御する制御回路
と、
を備え、
前記制御回路は、前記処理器が診断に用いられるテストパタンに応じて前記複数の論理回路のそれぞれから出力された信号を処理するように、前記処理器の動作を制御し、
前記複数のパタン発生器のうち、前記制御回路により、テストパタンの停止タイミングが遅くされたパタン発生器は、前記診断に用いられない無効データを含むテストパタンを出力する、半導体装置。
【請求項７】
それぞれ同じ電圧配線に接続された複数の論理回路を備える第１回路と、
前記複数の論理回路のそれぞれに対応し、対応する論理回路へテストパタンを供給する複数のパタン発生器と、
テストパタンに応じて、前記複数の論理回路のそれぞれから出力される信号が、供給される処理回路と、
前記複数のパタン発生器に接続され、前記パタン発生器間において、対応する論理回路へのテストパタンの供給開始タイミングが互いに異なるように、前記複数のパタン発生器を制御する制御回路と、
を備え、
前記制御回路は、前記処理回路が診断に用いられるテストパタンに応じて前記複数の論理回路のそれぞれから出力された信号を処理するように、前記処理回路の動作を制御し、
前記複数のパタン発生器のうち、前記制御回路により、テストパタンの供給開始タイミングが速くされたパタン発生器は、前記診断に用いられない無効データを含むテストパタンを出力する、半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に自己診断回路を内蔵する半導体装置に関する。
【背景技術】
【０００２】
自己診断回路を内蔵する半導体装置は、例えば車載用の半導体装置として用いられる。車には、種々の制御を行うために、複数のマイクロコントローラ（以下、ＭＣＵとも称する）が搭載される。この場合、ＭＣＵは、例えば１個の半導体装置によって構成される。安全性の観点から、車載用のＭＣＵ（以下、車載用ＭＣＵと称する）には、自己診断回路が内蔵される。【０００３】
車載用ＭＣＵは、その機能を達成するために、多数の論理回路を有している。一方、論理回路を自己診断する技術として、例えばＬｏｇｉｃ  Ｂｕｉｌｔ  Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ（ＬＢＩＳＴ）が知られている。ＬＢＩＳＴについては、例えば特許文献１〜６に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２３４６０５号公報
【特許文献２】特開２００４−１１７２５８号公報
【特許文献３】特開２００６−１０５９９９号公報
【特許文献４】特開２０１２−１６８１４１号公報
【特許文献５】特開２０１２−１９８０７８号公報
【特許文献６】特表２００３−５１８２４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
車載用ＭＣＵに内蔵されている自己診断回路は、車載用ＭＣＵが起動したとき、診断動作（パワーオンセルフテスト）を行う。例えば、車載用ＭＣＵに電源が投入された時あるいはリセット時において、自己診断回路が動作する。本発明者らが検討したところでは、パワーオンセルフテストのときに、車載用ＭＣＵを流れる電流値の時間に対する変化（電流変化率）が比較的大きいことが判明した。電流変化率が大きいと、電源配線における電圧変動が大きくなり、車載用ＭＣＵの動作が不安定になることが危惧される。【０００６】
特許文献１〜６には、パワーオンセルフテストにおいて、電流変化率が大きくなることは、認識されていない。【０００７】
本発明の目的は、自己診断動作の際に、電流変化率の抑制が可能な半導体装置を提供することにある。【０００８】
その他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本明細書には、解決するための手段が複数開示されている。ここでは、代表的な解決手段についてのみ述べる。【００１０】
半導体装置は、第１回路と、第１回路に、それぞれテストパタンを供給する複数のパタン発生器と、複数のパタン発生器のそれぞれを制御するパタン発生器制御回路と、パタン発生制御回路を制御する自己診断制御回路とを備えている。ここで、自己診断制御回路は、複数のパタン発生器間で、テストパタンの停止タイミングが異なるように、制御を行う。テストパタンの停止タイミングを異ならせることにより、それぞれのテストパタンにより動作している第１回路内の回路を停止するタイミングを異ならせることが可能となり、半導体装置を流れる電流が急激に変化するのを抑制することが可能となる。これにより、自己診断動作の際に、半導体装置の電流変化率を抑制することが可能となり、半導体装置の動作が不安定になることを防ぐことが可能となる。
【発明の効果】
【００１１】
一実施の形態によれば、自己診断動作の際に、その電流変化率を抑制することが可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態２に係わる半導体装置の全体的な構成を示すブロック図である。
【図２】実施の形態２に係わる半導体装置の動作を示すフローチャート図である。
【図３】（Ａ）〜（Ｊ）は、実施の形態２に係わる半導体装置の波形を示す波形図である。
【図４】実施の形態２に係わる半導体装置の電流波形を模式的に示す波形図である。
【図５】実施の形態２に係わる半導体装置の電流変動を示す波形図である。
【図６】実施の形態２に係わるＰＲＰＧ制御回路の構成を示すブロック図である。
【図７】実施の形態２に係わるＭＩＳＲ制御回路の構成を示すブロック図である。
【図８】実施の形態３に係わる半導体装置の構成を示すブロック図である。
【図９】実施の形態３に係わる半導体装置の動作を示すフローチャート図である。
【図１０】（Ａ）〜（Ｊ）は、実施の形態３に係わる半導体装置の波形を示す波形図である。
【図１１】実施の形態３に係わる半導体装置の電流波形を模式的に示す波形図である。
【図１２】実施の形態３に係わる半導体装置の電流変動を示す波形図である。
【図１３】実施の形態３に係わるＰＲＰＧ制御回路の構成を示すブロック図である。
【図１４】実施の形態３に係わるＭＩＳＲ制御回路の構成を示すブロック図である。
【図１５】実施の形態４に係わる半導体装置の構成を示すブロック図である。
【図１６】実施の形態４に係わるシフトデータ制御回路の構成を示すブロック図である。
【図１７】テストパタン生成方法を示すフローチャート図である。
【図１８】論理回路の構成を示すブロック図である。
【図１９】実施の形態１に係わる半導体装置の構成を示すブロック図である。
【図２０】実施の形態１に係わる半導体装置の動作を示すフローチャート図である。
【図２１】（Ａ）〜（Ｈ）は、実施の形態１に係わる半導体装置の動作を示す波形図である。
【図２２】実施の形態１に係わる半導体装置の電流波形を模式的に示す波形図である。
【図２３】実施の形態１に係わる半導体装置の電流変動を示す波形図である。
【図２４】本発明者らが検討した半導体装置の構成を示すブロック図である。
【図２５】図２４に示した半導体装置の動作を示すフローチャート図である。
【図２６】（Ａ）および（Ｂ）は、図２４に示した半導体装置の動作を示す波形図である。
【図２７】図２４に示した半導体装置の電流波形を模式的に示す波形図である。
【図２８】図２４に示した半導体装置の電流変動を示す波形図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は、原則省略する。
【００１４】
本発明に先だって、本発明者らが検討した事項を説明する。
【００１５】
＜検討回路の構成＞
図２４は、本発明者らにより検討された半導体装置の構成を示すブロック図である。同図において、１Ｄは、半導体装置を示しており、半導体装置１ＤによりＭＣＵが構成されている。ＭＣＵの機能を達成するために、半導体装置１Ｄは、複数の論理回路を有している。図２４には、複数の論理回路のうち、論理回路４０〜４３が示されている。これらの論理回路４０〜４３の自己診断を行うために、半導体装置１Ｄは、ＬＢＩＳＴ制御回路１０と、パタン発生器（ＰＲＰＧ）２０、２１、２２、２３と、パタン圧縮器（ＭＩＳＲ）３０、３１、３２、３３を備えている。以下の本明細書および図面においては、パタン発生器はＰＲＰＧ、パタン圧縮器はＭＩＳＲとも記載する。
【００１６】
パタン発生器２０〜２３のそれぞれは、ＬＢＩＳＴ制御回路１０からのＰＲＰＧ制御信号１０２により、その機能が動作または停止するように切り替えられる。パタン圧縮器３０〜３３のそれぞれも、ＬＢＩＳＴ制御回路１０からのＭＩＳＲ制御信号１０３により、その機能が動作または停止するように切り替えられる。この検討回路においては、ＰＲＰＧ制御信号１０２がハイレベルのとき、パタン発生器２０〜２３は動作し、ＰＲＰＧ制御信号１０２がロウレベルのとき、パタン発生器２０〜２３は停止するものとする。同様に、ＭＩＳＲ制御信号１０３がハイレベルのとき、パタン圧縮器３０〜３３は動作し、ＭＩＳＲ制御信号１０３がロウレベルのとき、パタン圧縮器３０〜３３は停止するものとする。
【００１７】
全てのパタン発生器２０〜２３とパタン圧縮器３０〜３３は、ＰＲＰＧ／ＭＩＳＲチェーン１０１でＬＢＩＳＴ制御回路１０と数珠繋ぎになっている。数珠繋ぎにされたパタン発生器２０〜２３およびパタン圧縮器３０〜３３に対して、シフト動作を繰り返えさせながら、ＬＢＩＳＴ制御回路１０より初期値を供給し、例えば、パタン発生器２０〜２３のそれぞれに初期値を設定する。また、シフト動作を繰り返させることにより、パタン圧縮器３０〜３３から、ＬＢＩＳＴ制御回路１０に診断結果を回収する。
【００１８】
論理回路４０〜４３のそれぞれは、フリップフロップ（ＦＦ）と組合せ回路とを備えており、自己診断動作の期間（以下、テスト期間とも称する）においては、組合せ回路はフリップフロップ（ＦＦ）からの信号を受け、組合せ回路の出力はフリップフロップ（ＦＦ）へ供給される。自己診断動作の期間においては、論理回路４０〜４３におけるフリップフロップ（ＦＦ）は、スキャンチェーン４００により一定個数ずつ数珠繋ぎで接続されている。スキャンチェーン４００は、入力側がパタン生成器２０〜２３に、出力側がパタン圧縮器３０〜３３にそれぞれ接続されている。
【００１９】
また、図２４において、５００および５０１は、パタン発生器２０〜２３、パタン圧縮器３０〜３３、論理回路４０〜４３およびＬＢＩＳＴ制御回路１０へ電源電圧を給電する電圧配線（電源配線）を示している。例えば、電圧配線５００は、それぞれの回路を動作させるための電源電圧を供給する電圧配線であり、電圧配線５０１は、それぞれの回路に接地電圧を供給する電圧配線である。勿論、論理回路４０〜４３に含まれているフリップフロップ（ＦＦ）および組合せ回路にも、電圧配線５００、５０１は接続されており、電源電圧および接地電圧が供給されている。
【００２０】
図２５は、図２４に示した半導体装置１Ｄの自己診断時の動作を示したフローチャート図である。図２５においては、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが表されている。すなわち、ステップＳ４７からステップＳ５７へと処理が実行される。
【００２１】
自己診断の動作を開始させると、ステップＳ４７が実行される。ステップＳ４７においては、ＬＢＩＳＴ制御回路１０からＰＲＰＧ／ＭＩＳＲチェーン１０１を通して、パタン発生器２０〜２３に初期値を設定する。ステップＳ４８において、ＬＢＩＳＴ制御回路１０が、ＰＲＰＧ制御信号１０２を有効（ハイレベル）にする。これにより、スキャンチェーン４００を通して、初回のテストデータが、パタン発生器２０〜２３から論理回路４０〜４３に入力される（ステップＳ４９）。
【００２２】
次に、ステップＳ５０において、ＬＢＩＳＴ制御回路１０は、ＭＩＳＲ制御信号１０３を有効（ハイレベル）にする。ステップＳ５１において、キャプチャの動作を行い論理回路４０〜４３のデータを更新させる。すなわち、ステップＳ４９において論理回路４０〜４３に供給した初回のテストデータに従って、論理回路４０〜４３を動作させ、論理回路４０〜４３のデータを、初回のテストデータに応じたデータに更新させる。
【００２３】
ステップＳ５２においては、スキャンチェーン４００を通して、二回目以降のテストデータを論理回路４０〜４３に入力するとともに、スキャンチェーン４００を通して、論理回路４０〜４３のデータをパタン圧縮器３０〜３３に供給し、パタン圧縮器３０〜３３において圧縮（テスト結果の圧縮）を行う。テストが終了したか否かを、ステップＳ５３において、判定し、テストが終了するまで、ステップＳ５１〜Ｓ５３を繰り返す。
【００２４】
一方、テストが終了したと判定した場合には、ステップＳ５４において、ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ制御信号１０２を無効（ロウレベル）にする。ステップＳ５５においては、スキャンチェーン４００を通して、論理回路４０〜４３のテスト結果は、パタン圧縮器３０〜３３において圧縮される。その後に、ステップＳ５６において、ＬＢＩＳＴ制御回路１０は、ＭＩＳＲ制御信号１０３を無効（ロウレベル）にする。次に、ステップＳ５７において、ＰＲＰＧ／ＭＩＳＲチェーン１０１を通して、パタン圧縮器３０〜３３に格納されている圧縮されたテスト結果を、ＬＢＩＳＴ制御回路１０が回収する。ＬＢＩＳＴ制御回路１０は、回収したテスト結果と期待値とを照合し、自己診断の結果を求め、自己診断の動作を終了する。
【００２５】
図２６（Ａ）および（Ｂ）は、図２５で説明した動作を、ＰＲＰＧ制御信号１０２およびＭＩＳＲ制御信号１０３に注目して示した波形図である。同図において、横軸は時間を示し、縦軸は電圧を示している。また、図２６において、符号Ｓ４７〜Ｓ５７は、図２５に示したステップＳ４７〜Ｓ５７に対応している。図２６において、ステップＳ４９からＳ５５（図２５参照）までの間が、有効なテスト範囲となっており、その期間、論理回路４０〜４３は、パタン発生器２０〜２３が生成したテストパタン（テストデータ）が供給され、テストパタンに従って、ランダムな動作を繰り返して、電力を消費している。
【００２６】
図２７は、図２４に示した半導体装置１Ｄを流れる電流の波形を模式的に示した波形図である。図２７に示している電流の波形は、図２５において説明した自己診断動作の時の電流波形である。同図において、横軸は時間を示しており、縦軸は半導体装置１Ｄを流れる電流、言い換えるならば半導体装置１Ｄの消費電流の大きさを示している。半導体装置１Ｄの消費電流は、図２７において上に行けば大きくなるものとする。横軸に沿って添えられた符号Ｓ４７〜Ｓ５７は、図２５において説明したステップＳ４７〜Ｓ５７に対応している。
【００２７】
半導体装置１Ｄの消費電流は、論理回路４０〜４３へのテストパタン（テストデータ）の供給が開始されるステップＳ４９から徐々に増し、ステップＳ５１およびＳ５２の繰り返し動作が発生している時刻にピークに達する。その後、ステップＳ５４のイベントによりＰＲＰＧ制御信号１０２がロウレベルになり、パタン発生器２０〜２３が停止状態になったあたりから徐々に減少し、ステップＳ５６のＭＩＳＲ制御信号１０３がロウレベルになり、パタン圧縮器３０〜３３が停止状態になったあたりで急激に減少する。これは、パタン発生器２０〜２３やパタン圧縮器３０〜３３の動作が停止することにより、論理回路４０〜４３に供給される信号の論理値変化が発生しなくなるためである。
【００２８】
図２８は、時間当たりの電流変動を示した波形図である。図２８において、横軸は時間を示しており、縦軸は電流変動の大きさを示している。図２８において中心線は、０として電流の変動が無いことを示している。時間当たりの電流が増えれば上に伸び、電流が減れば下に伸びるものとする。図２８において横軸に沿って添えられた符号Ｓ４７〜Ｓ５７は、図２５で説明されたステップＳ４７〜Ｓ５７に対応している。
【００２９】
図２８のステップＳ５７（図２５参照）付近の単位時間当たりの電流値の変化、すなわち電流変化率（ｄｉ／ｄｔ）が大きく、所定の許容値下限を大きく超えている。ここで、所定の許容値下限および許容値上限は、例えば、８０ｍＡ／２０ｕｓである。電圧配線５００、５０１（図２４）には、それぞれ寄生抵抗および寄生容量等が存在している。そのため、電流変化率が大きいと、電圧配線５００、５０１における電源電圧および接地電圧が変動する。例えば、ステップＳ５７付近で、電流変化率が、許容値下限を大きく超えているため、電圧配線５００、５０１を介して、パタン発生器２０〜３０、パタン圧縮器３０〜３３、論理回路４０〜４３、ＬＢＩＳＴ制御回路１０に供給されている電源電圧、接地電圧にオーバーシュートが発生することが考えられる。これにより、最悪の場合、正常な自己診断が行えず、 半導体装置１Ｄが起動できなくなると言う問題が発生することが考えられる。
【００３０】
（実施の形態１）
図１９は、実施の形態１に係わる半導体装置の構成を示すブロック図である。同図において、１Ｅは半導体装置を示しており、半導体装置１Ｅは、ＭＣＵを構成している。ＭＣＵの機能を達成するために、半導体装置１Ｅには、複数の論理回路が内蔵されているが、図１９には、複数の論理回路のうち、論理回路４０〜４３が代表として示されている。半導体装置１Ｅには、自己診断を行うために、ＬＢＩＳＴ制御回路１０〜１３と、パタン発生器２０〜２３と、パタン圧縮器３０〜３３が設けられている。この実施の形態１においては、ＬＢＩＳＴ制御回路１０〜１３と、パタン発生器２０〜２３と、パタン圧縮器３０〜３３と、論理回路４０〜４３とが、互いに１対１に対応している。例を述べるならば、ＬＢＩＳＴ制御回路１０と、パタン発生器２０と、パタン圧縮器３０と、論理回路４０とが１対１に対応している。残りのＬＢＩＳＴ制御回路１１〜１３と、パタン発生器２１〜２３と、パタン圧縮器３１〜３３と、論理回路４１〜４３も、互いに１対１に対応している。
【００３１】
パタン発生器２０〜２３のそれぞれは、対応するＬＢＩＳＴ制御回路１０〜１３からのＰＲＰＧ制御信号１０２０〜１０２３によって、その機能が動作または停止するように切り替えられる。パタン圧縮器３０〜３３のそれぞれも、対応するＬＢＩＳＴ制御回路１０〜１３からのＭＩＳＲ制御信号１０３０〜１０３３によって、その機能が動作または停止するように切り替えられる。この実施の形態１においては、対応するＬＢＩＳＴ制御回路１０〜１３からのＰＲＰＧ制御信号１０２０〜１０２３が、ハイレベルのとき、パタン発生器は動作し、ロウレベルのとき、パタン発生器は動作を停止する。同様に、対応するＬＢＩＳＴ制御回路１０〜１３からのＭＩＳＲ制御信号１０３０〜１０３３が、ハイレベルのとき、パタン圧縮器は動作し、ロウレベルのとき、パタン圧縮器は動作を停止する。
【００３２】
ＬＢＩＳＴ制御回路１０を例にして述べると、このＬＢＩＳＴ制御回路１０が、ハイレベルのＰＲＰＧ制御信号１０２０を出力した場合、対応するパタン発生器２０は動作する。一方、ＬＢＩＳＴ制御回路１０が、ロウレベルのＰＲＰＧ制御信号１０２０を出力した場合、対応するパタン発生器２０は動作を停止する。また、このＬＢＩＳＴ制御回路１０が、ハイレベルのＭＩＳＲ制御信号１０３０を出力した場合、対応するパタン圧縮器３０は動作する。一方、ＬＢＩＳＴ制御回路１０が、ロウレベルのＭＩＳＲ制御信号１０３０を出力した場合、対応するパタン圧縮器３０は動作を停止する。残りのＬＢＩＳＴ制御回路１１〜１３についても同様に、対応するパタン発生器２１〜２３および対応するパタン圧縮器３１〜３３の動作を制御する。
【００３３】
パタン発生器２０〜２３と、対応するパタン圧縮器３０〜３３は、ＰＲＰＧ／ＭＩＳＲチェーン１０１０〜１０１３により、対応するＬＢＩＳＴ制御回路１０〜１３と数珠繋ぎにされている。ＰＲＰＧ／ＭＩＳＲチェーン１０１０〜１０１３を介して、対応するパタン発生器と対応するパタン圧縮器と対応するＬＢＩＳＴ制御回路において、シフト動作を繰り返しながら、対応するＬＢＩＳＴ制御回路１０〜１３から対応するパタン発生器２０〜２３へ初期値を供給して、それぞれのパタン発生器１０〜３０へ初期値を設定する。また、シフト動作を繰り返すことにより、ＰＲＰＧ／ＭＩＳＲチェーン１０１０〜１０１３を介して、対応するＬＢＩＳＴ制御回路１０〜１３が、対応するパタン圧縮器３０〜３３から診断結果を回収する。ここでも、ＬＢＩＳＴ制御回路１０を例にして述べると、ＰＲＰＧ／ＭＩＳＲチェーン１０１０を介して、パタン発生器２０とパタン圧縮器３０とＬＢＩＳＴ制御回路１０間において、シフト動作を繰り返し行う。この繰り返されるシフト動作において、ＬＢＩＳＴ制御回路１０からは、対応するパタン発生器２０へ初期値が供給され、設定される。また、シフト動作において、ＬＢＩＳＴ制御回路１０は、パタン圧縮器３０からの診断結果を回収する。
【００３４】
論理回路４０〜４３のそれぞれは、複数のフリップフロップ（ＦＦ）と組合せ回路で構成されている。自己診断動作のときには、スキャンチェーン４００〜４０３により、論理回路４０〜４３における複数のフリップフロップ（ＦＦ）のうちの一定個数のフリップフロップ（ＦＦ）が数珠繋ぎで接続される。スキャンチェーン４００〜４０３は、その入力側がパタン生成器２０〜２３に、その出力側がパタン圧縮器３０〜３３にそれぞれ接続されている。論理回路４０を例にすると、自己診断動作のときには、一定個数のフリップフロップ（ＦＦ）の入出力が数珠繋ぎに接続され、スキャンチェーン４００によって、パタン発生器２０からテストパタンが、順次フリップフロップ（ＦＦ）に格納される。数珠繋ぎにされたフリップフロップ（ＦＦ）に格納されたテストパタンは、組合せ回路に供給される。供給されたテストパタンに従って、組合せ回路が動作し、その動作結果が、複数のフリップフロップ（ＦＦ）に入力される。組合せ回路の動作結果が入力されたフリップフロップ（ＦＦ）は、数珠繋ぎに接続され、スキャンチェーン４００によって、パタン圧縮器３０に供給される。パタン圧縮器３０は、供給された動作結果を圧縮し、ＰＲＰＧ／ＭＩＳＲチェーン１０１０を介して診断結果として、対応するＬＢＩＳＴ制御回路１０へ供給する。論理回路４１、４２、４３においても、論理回路４０と同様であり、ＬＢＩＳＴ制御回路１０、１１、１２、１３は独立して制御可能なものである。
【００３５】
この実施の形態１においては、遮断回路５０〜５３が半導体装置１Ｅに設けられている。遮断回路５０〜５３は、自己診断動作のときに、論理回路４０、４１、４２、４３間を信号（境界信号）が伝搬しないようにする回路である。自己診断動作のとき、遮断回路５０は、例えば論理回路４０と４１との間を境界信号が伝搬しないように制御し、遮断回路５１は、例えば論理回路４１と４２との間を境界信号が伝搬しないように制御し、遮断回路５２は、例えば論理回路４２と４３との間を境界信号が伝搬しないように制御し、遮断回路５３は、例えば論理回路４３と４０との間を境界信号が伝搬しないように制御する。遮断回路５０〜５３による遮断とは、自己診断動作のとき、境界信号を所定の電圧（論理値）に固定することを意味している。
【００３６】
例えば、遮断回路５０〜５３のそれぞれは、遮断する境界信号の数に対応したフリップフロップを有する。このフリップフロップは、半導体装置１ＥをＭＵＣとして機能させる場合には、自己診断動作のとき遮断する境界信号に従って、その状態が変化するようにする。これにより、ＭＣＵとして機能させるときには、論理回路４０〜４３間を境界信号が伝搬することを可能にする。一方、自己診断動作の場合には、フリップフロップを所定の状態にセットする。これにより、境界信号を所定の電圧（論理値）に固定することが可能となり、論理回路４０〜４３間を境界信号が伝搬するのを遮断することが可能となる。
【００３７】
この実施の形態１において、ＬＢＩＳＴ制御回路１０〜１３のそれぞれは、カウンタ１０Ｃ、１１Ｃ、１２Ｃ、１３Ｃを有している。カウンタ１０Ｃ〜１３Ｃのそれぞれは、パタン数調整回路６０によって、初期値が設定される。すなわち、自己診断動作を開始する前に、パタン数調整回路６０によって、カウンタ１０Ｃ、１１Ｃ、１２Ｃおよび１３Ｃのそれぞれに初期値が設定される。この実施の形態１においては、設定される初期値の値が、互いに異なるようにされる。例えば、カウンタ１０Ｃ、１１Ｃ、１２Ｃおよび１３Ｃの順に、初期値が大きくなるようにされる。すなわち、カウンタ１０Ｃよりもカウンタ１１Ｃの初期値は大きくされ、カウンタ１１Ｃよりもカウンタ１２Ｃの初期値は大きくされ、カウンタ１２Ｃよりもカウンタ１３Ｃの初期値は大きくされる。
【００３８】
自己診断動作が開始すると、カウンタ１０Ｃ、１１Ｃ、１２Ｃおよび１３Ｃは、互いに同期してカウントダウンする。また、自己診断動作を開始すると、それぞれのＬＢＩＳＴ制御回路１０〜１３は、実質的に同時に、ＰＲＰＧ制御信号１０２０〜１０２３を有効（ハイレベル）にする。ＰＲＰＧ制御信号１０２０〜１０２３を有効にした後で、ＬＢＩＳＴ制御回路１０〜１３は、実質的に同時に、ＭＩＳＲ制御信号１０３０〜１０３３を有効（ハイレベル）にする。それぞれのＬＢＩＳＴ制御回路１０〜１３は、それぞれが有しているカウンタ１０Ｃ、１１Ｃ、１２Ｃおよび１３Ｃが、カウントダウン動作により、所定の値（例えば、０）になるまでの間、ＰＲＰＧ制御信号１０２０〜１０２３およびＭＩＳＲ制御信号１０３０〜１０３３を有効にし、所定の値に到達すると、ＰＲＰＧ制御信号１０２０〜１０２３およびＭＩＳＲ制御信号１０３０〜１０３３を無効（ロウレベル）にする。
【００３９】
例えば、ＬＢＩＳＴ制御回路１０を例にすると、ＰＲＰＧ制御信号１０２０およびＭＩＳＲ制御信号１０３０を有効にしたあと、それが有しているカウンタ１０Ｃの値が、０になるまで、ＰＲＰＧ制御信号１０２０およびＭＩＳＲ制御信号１０３０を有効な状態に維持する。一方、カウンタ１０Ｃの値が、０に到達すると、ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ制御信号１０２０およびＭＩＳＲ制御信号１０３０を無効の状態へ遷移させる。他のＬＢＩＳＴ制御回路１１〜１３も同様である。これにより、パタン発生器は、パタン発生器２０から２３の順に動作が停止し、パタン圧縮器は、パタン圧縮器３０から３３の順に動作が停止することになる。これにより、パタン発生器２０から２３の順に動作が停止するため、論理回路４０から４３の順に、供給されるテストパタンの変化がなくなることになる。そのため、論理回路４０〜４３における消費電流は徐々に低下することになり、急激な電流変化を防ぐことが可能となり、電流変化率を小さくすることが可能となる。
【００４０】
なお、図１９において、５００および５０１は、電圧配線を示している。ここで、電圧配線５００は、回路を動作させるための電源電圧を供給する電圧配線を示しており、電圧配線５０１は、接地電圧を供給する電圧配線を示している。また、これらの電圧配線５００および５０１は、半導体装置１Ｅに設けられた電源用外部端子（図示せず）に接続されており、電源用外部端子を介して、半導体装置１Ｅの外部から電圧配線５００および５０１に電源電圧および接地電圧が供給される。
【００４１】
図２０は、実施の形態１に係わる半導体装置１Ｅの自己診断時の動作を示すフローチャート図である。同図では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが示されている。なお、動作の概要を把握しやすいようにフローチャート図の縦方向については、おおよその時間の経過が表されており、より下にあるイベントがより後に発生するものとする。
【００４２】
図２０において、ステップＳ５８、Ｓ６２、Ｓ６６、Ｓ７０、Ｓ７４、Ｓ７８、Ｓ８２〜Ｓ８６は、ＬＢＩＳＴ１０、パタン発生回路２０、論理回路４０およびパタン圧縮器３０において行われる処理を示しており、ステップＳ５９、Ｓ６３、Ｓ６７、Ｓ７１、Ｓ７５、Ｓ７９、Ｓ８７〜Ｓ９１は、ＬＢＩＳＴ１１、パタン発生回路２１、論理回路４１およびパタン圧縮器３１において行われる処理を示している。同様に、ステップＳ６０、Ｓ６４、Ｓ６８、Ｓ７２、Ｓ７６、Ｓ８０、Ｓ９２〜Ｓ９６は、ＬＢＩＳＴ１２、パタン発生回路２２、論理回路４２およびパタン圧縮器３２において行われる処理を示しており、ステップＳ６１、Ｓ６５、Ｓ６９、Ｓ７３、Ｓ７７、Ｓ８１、Ｓ９７〜Ｓ１０１は、ＬＢＩＳＴ１３、パタン発生回路２３、論理回路４３およびパタン圧縮器３３において行われる処理を示している。
【００４３】
ＬＢＩＳＴ１０、パタン発生回路２０、論理回路４０およびパタン圧縮器３０において行われる処理と、ＬＢＩＳＴ１１、パタン発生回路２１、論理回路４１およびパタン圧縮器３１において行われる処理と、ＬＢＩＳＴ１２、パタン発生回路２２、論理回路４２およびパタン圧縮器３２において行われる処理と、ＬＢＩＳＴ１３、パタン発生回路２３、論理回路４３およびパタン圧縮器３３において行われる処理とは、互いに同じである。そのため、ここでは、ＬＢＩＳＴ１０、パタン発生回路２０、論理回路４０およびパタン圧縮器３０において行われる処理を、図２０を用いて説明する。
【００４４】
先ず、自己診断動作が開始される。自己診断動作を開始する前に、図１９で説明したように、パタン数調整回路６０によって、カウンタ１０Ｃに対して初期値が設定されている。自己診断動作が開始されると、カウンタ１０Ｃはカウントダウン動作を開始する。
【００４５】
ステップＳ５８において、ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ／ＭＩＳＲチェーン１０１０を通して、初期値をパタン発生器２０に設定する。次に、ステップＳ６２において、ＰＲＰＧ制御信号１０２０を有効（ハイレベル）にする。これにより、スキャンチェーン４００を通して、初回のテストパタン（テストデータ）が、パタン発生器２０から論理回路４０に入力される（ステップＳ６６）。
【００４６】
次に、ステップＳ７０において、ＬＢＩＳＴ制御回路１０は、ＭＩＳＲ制御信号１０３０を有効（ハイレベル）にする。論理回路４０は、ステップＳ６６で入力されたテストパタンに従って動作する（ステップＳ７４）。ステップＳ７８において、パタン発生器２０は、スキャンチェーン４００を通して、二回目以降のテストパタン（テストデータ）を論理回路４０に入力し、スキャンチェーン４００を通して、パタン圧縮器３０は、ステップＳ７４で更新された論理回路の結果を受け取り、テスト結果を圧縮する。
【００４７】
次に、ステップＳ８２において、テストが終了か否かの判定を行う。この実施の形態１においては、カウンタ１０Ｃがカウントダウンされたことにより、所定の値（０）に到達したか否かの判定が、このステップＳ８２において行われる。カウンタ１０Ｃのカウント値が所定の値に到達していなければ、ステップＳ７４、Ｓ７８およびＳ８２を繰り返し実行する。一方、カウンタ１０Ｃのカウント値が所定の値に到達していれば、ステップＳ８３を実行する。ステップＳ８３においては、ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ制御信号１０２０を無効（ロウレベル）にする。スキャンチェーン４００を通して、更新された論理回路の結果をパタン圧縮器３０が受け取り、テスト結果を圧縮する（ステップＳ８４）。その後、ＬＢＩＳＴ制御回路１０は、ＭＩＳＲ制御信号１０３０を無効（ロウレベル）にする（ステップＳ８５）。
【００４８】
ステップＳ８６において、ＰＲＰＧ／ＭＩＳＲチェーン１０１０を通して、パタン圧縮器３０に格納されているテスト結果を、ＬＢＩＳＴ制御回路１０が回収し、期待値との照合を行う。
【００４９】
以上述べた動作と同様に動作が、ＬＢＩＳＴ１１〜１３、パタン発生回路２１〜２３、論理回路４１〜４３およびパタン圧縮器３１〜３３において行われ、自己診断動作が終了する。ＬＢＩＳＴ制御回路１０〜１３のそれぞれに設けられているカウンタ１０Ｃ、１１Ｃ、１２Ｃおよび１３Ｃの初期値が異なっているため、ステップＳ８２、Ｓ８７、Ｓ９２およびＳ９７においてテスト終了と判定する時間が異なる。これにより、論理回路４０〜４３が、動作を停止する停止タイミングが異なるようにされている。
【００５０】
図２１（Ａ）〜（Ｈ）は、図２０で説明した動作を、波形で示した波形図である。図２１において、横軸は時間を示しており、縦軸は、電圧を示している。ここで、図２１（Ａ）は、ＰＲＰＧ制御信号１０２０の波形、図２１（Ｃ）は、ＰＲＰＧ制御信号１０２１の波形、図２１（Ｅ）は、ＰＲＰＧ制御信号１０２２の波形、図２１（Ｇ）は、ＰＲＰＧ制御信号１０２３の波形を示している。また、図２１（Ｂ）は、ＭＩＳＲ制御信号１０３０の波形、図２１（Ｄ）は、ＭＩＳＲ制御信号１０３１の波形、図２１（Ｆ）は、ＭＩＳＲ制御信号１０３２の波形、図２１（Ｈ）は、ＭＩＳＲ制御信号１０３３の波形を示している。また、図２１において、横軸に沿って添えられた符号Ｓ５８〜Ｓ１０１は、図２０で説明したステップＳ５８〜Ｓ１０１に対応している。
【００５１】
ここで、Ｓ６６からＳ８４までの期間が、論理回路４０の有効なテスト範囲であり、Ｓ６６からＳ８９までの期間が論理回路４１の有効なテスト範囲である。同様に、Ｓ６６からＳ９４までの期間が、論理回路４２の有効なテスト範囲であり、Ｓ６６からＳ９９までの期間が、論理回路４３の有効なテスト範囲となっている。それぞれの有効なテスト範囲の期間において、パタン発生器２０、２１、２２、２３が生成したテストパタンにより、論理回路４０〜４３がランダムな動作を繰り返して電力を消費する。
【００５２】
図２２は、実施の形態１に係わる半導体装置１Ｅにおける自己診断動作時の電流波形を模式的に示した波形図である。同図において、横軸は時間を示しており、縦軸は消費電流の大きさを示している。消費電流は、同図において上に行けば大きくなるものとする。横軸に沿って添えられた符号Ｓ５８〜Ｓ１０１は、図２４で説明したステップＳ５８〜Ｓ１０１に対応している。
【００５３】
図２２に示すように、消費電流は、テストパタンの供給が始まるステップＳ６２から徐々に増し、ステップＳ７４からＳ８１の繰り返し動作が発生している時刻にピークに達する。その後、ステップＳ８３のイベントによりＰＲＰＧ制御信号１０２０がロウレベルになり、パタン発生器２０が停止状態になったあたりから徐々に減少し、ステップＳ８５のＭＩＳＲ制御信号１０３０がロウレベルになり、パタン圧縮回路３０が停止状態になったあたりで、論理回路４０で消費されていた電力分の電流が減少する。これは、パタン発生器２０やパタン圧縮器３０の動作が停止することにより、論理回路４０の論理値変化が発生しなくなるためである。その後、所定の時間間隔をおいて、論理回路４１、４２、４３の順に、論理回路４０と同じ手順で停止する。
【００５４】
図２３は、実施の形態１に係わる半導体装置１Ｅにおける単位時間当たりの電流変動を示した波形図である。同図において、横軸は時間を示しており、縦軸は電流変動の大きさを示している。中心線は０として電流の変動が無いことを示している。電流が増えれば上に伸び、電流が減れば下に伸びるものとする。横軸に沿って添えられた符号Ｓ５８〜Ｓ１０１は、図２４で説明したステップＳ５８〜Ｓ１０１に対応している。
【００５５】
図２８と図２３とを比べると、実施の形態１に係わる半導体装置１Ｅにおいては、時間当たりの電流値の変化、すなわち電流変化率（ｄｉ／ｄｔ）を低く抑えることができていることが分かり、許容値上限および許容値下限（例えば、８０ｍＡ／２０ｕｓ）も満たせている。
【００５６】
なお、図１９に示した各回路は、周知の半導体技術により、１個の半導体基板に形成されている。また、カウンタ１０Ｃ、１１Ｃ、１２Ｃおよび１３Ｃは、互いに同期してカウントダウンするように説明したが、勿論、互いに同期してカウントアップするようにしてもよい。この場合、先に説明したカウントダウン動作はカウントアップ動作となる。
【００５７】
（実施の形態２）
＜半導体装置の全体構成＞
図１は、実施の形態２に係わる半導体装置の全体的な構成を示すブロック図である。同図において、１Ａは、半導体装置を示しており、半導体装置１ＡによりＭＣＵが構成されている。ＭＣＵの機能を達成するために、半導体装置１Ａには、複数の論理回路が内蔵されている。これらの複数の論理回路のうちの一部の論理回路が、同図には、４０〜４３として示されている。また、実施の形態１と同様に、論理回路の自己診断を行うために、半導体装置１Ａは、ＬＢＩＳＴ制御回路１０と、パタン発生器（ＰＲＰＧ）２０、２１、２２、２３と、パタン圧縮器（ＭＩＳＲ）３０、３１、３２、３３を備えている。特に制限されないが、この実施の形態１においては、パタン発生器２０〜２３と、パタン圧縮器３０〜３３と、論理回路４０〜４３とが１対１に対応している。
【００５８】
半導体装置１Ａは、さらに、パタン発生器２０〜２３に接続され、これらのパタン発生器２０〜２３を制御するＰＲＰＧ制御回路２Ａと、パタン圧縮器３０〜３３に接続され、パタン圧縮器３０〜３３を制御するＭＩＳＲ制御回路３Ａとを備えている。ＰＲＰＧ制御回路２ＡおよびＭＩＳＲ制御回路３Ａは、ＬＢＩＳＴ制御回路１０に接続され、ＬＩＢＳＴ制御回路１０によって制御されている。
【００５９】
パタン発生器２０〜２３のそれぞれは、ＰＲＰＧ制御回路２ＡからのＰＲＰＧ制御信号２００〜２０３により、その動作が制御され、パタン圧縮器３０〜３３のそれぞれは、ＭＩＳＲ制御回路３ＡからのＭＩＳＲ制御信号３００〜３０３により、その動作が制御される。ＰＲＰＧ制御回路２ＡおよびＭＩＳＲ制御回路３Ａによる制御を、パタン発生器２０およびパタン圧縮器３０を例にして説明すると、次のようになる。ＰＲＰＧ制御回路２Ａは、ＰＲＰＧ制御信号２００により、パタン発生器２０の機能を動作または停止させるように切り替える。例えば、ＰＲＰＧ制御回路２Ａは、ＰＲＰＧ制御信号２００をハイレベルにすることにより、パタン発生器２０の機能を動作させ、ＰＲＰＧ制御信号２００をロウレベルにすることにより、パタン発生器２０の機能を停止させる。同様に、ＭＩＳＲ制御回路３Ａは、ＭＩＳＲ制御信号３００をハイレベルにすることにより、パタン圧縮機３０の機能を動作させ、ＭＩＳＲ制御信号３００をロウレベルにすることにより、パタン圧縮器３０の機能を停止させる。
【００６０】
残りのパタン発生器２１〜２３についても、パタン発生器２０と同様に、ＰＲＰＧ制御回路２Ａは、それぞれのパタン発生器２１〜２３に対応したＰＲＰＧ制御信号２０１〜２０３をハイレベルにすることにより、対応するパタン発生器２１〜２３の機能を動作させ、ＰＲＰＧ制御信号２０１〜２０３をロウレベルにすることにより、対応するパタン発生器２１〜２３の機能を停止させる。また、残りのパタン圧縮器３１〜３３についても、パタン圧縮器３０と同様に、ＭＩＳＲ制御回路３Ａは、それぞれのパタン圧縮器３１〜３３に対応したＭＩＳＲ制御信号３０１〜３０３をハイレベルにすることにより、対応するパタン圧縮器３１〜３３の機能を動作させ、ＭＩＳＲ制御信号３０１〜３０３をロウレベルにすることにより、対応するパタン圧縮器３１〜３３の機能を停止させる。
【００６１】
ＰＲＰＧ制御回路２Ａは、それぞれのパタン発生器２０〜２３に対応したＰＲＰＧ制御信号２００〜２０３をハイレベル／ロウレベルとすることに、別々に制御することが可能とされている。また、ＭＩＳＲ制御回路３Ａも、それぞれのパタン圧縮器３０〜３３に対応したＭＩＳＲ制御信号３００〜３０３をハイレベル／ロウレベルとすることに、別々に制御することが可能とされている。
【００６２】
全てのパタン発生器２０〜２３と全てのパタン圧縮器３０〜３３は、ＰＲＰＧ／ＭＩＳＲチェーン１０１によって、ＬＢＩＳＴ制御回路１０と数珠繋ぎになっている。ＰＲＰＧ／ＭＩＳＲチェーン１０１を介して、データが、パタン発生器２０〜２３とパタン圧縮器３０〜３３とＬＢＩＳＴ制御回路１０との間をシフトする。このデータとしては、パタン発生器２０〜２３に設定する初期値と、圧縮されたテスト結果が含まれる。ＬＩＢＳＴ制御回路１０は、シフト動作を繰り返しながら、初期値を、ＰＲＰＧ／ＭＩＳＲチェーン１０１を介してパタン発生器２０〜３０に供給して、それぞれのパタン発生器２０〜２３に初期値を設定する。また、シフト動作を繰り返すことにより、パタン圧縮器３０〜３３における圧縮されたテスト結果が、順次、ＰＲＰＧ／ＭＩＳＲチェーン１０１を介してＬＢＩＳＴ制御回路１０に回収する。
【００６３】
論理回路４０〜４３については、後で一例を図面を用いて詳しく説明するが、それぞれの論理回路４０〜４３は、複数のフリップフロップ（ＦＦ）と組合せ回路とを有している。複数のフリップフロップは、自己診断動作のとき、スキャンチェーン４００により、一定個数のフリップフロップの入出力が数珠繋ぎに接続される。スキャンチェーン４００の入力側はパタン発生器２０〜２３に接続され、その出力側はパタン圧縮器３０〜３３に接続される。自己診断動作においては、スキャンチェーン４００を通して、対応するパタン発生器２０〜２３からのテストパタンが順次フリップフロップに取り込まれる。フリップフロップに取り込まれたテストパタンは、組合せ回路に供給され、テストパタンに従って組合せ回路が動作する。組合せ回路が動作することにより得られたデータ（テスト結果）は、数珠繋ぎに接続されたフリップフロップに供給され、スキャンチェーン４００を通して、フリップフロップから順次パタン圧縮器３０〜３３へ供給される。
【００６４】
スキャンチェーン４００を通して、パタン圧縮器３０〜３３に供給されたテスト結果は、圧縮され、圧縮されたテスト結果は、ＰＲＰＧ／ＭＩＳＲチェーン１０１を介して、ＬＢＩＳＴ制御回路１０に供給される。ＬＢＩＳＴ制御回路１０に回収されたテスト結果は、期待値を参照にして、判定を行い、自己診断を行う。
【００６５】
図１において、５００および５０１は、実施の形態１と同様に、電圧配線を示している。電圧配線５００、５０１は、パタン発生器２０〜２３、パタン圧縮器３０〜３３、論理回路４０〜４３、ＰＲＰＧ制御回路２Ａ、ＭＩＳＲ制御回路３ＡおよびＬＢＩＳＴ制御回路１０に接続されている。実施の形態１と同様に、電圧配線５００は、接続された各回路を動作させるための電源電圧を、各回路へ給電し、電圧配線５０１は、各回路へ接地電圧を供給する。実施の形態１と同様に、これらの電圧配線５００および５０１は、半導体装置１Ａに設けられた電源用外部端子（図示せず）に接続されており、電源用外部端子を介して、半導体装置１Ｅの外部から電圧配線５００および５０１に電源電圧および接地電圧が供給される。
【００６６】
図１において、１０２、１０３、１０４、１０５―Ｉ、１０５−Ｏ、１０６、１０７Ｌは、信号を示しており、これらの信号１０２、１０３、１０４、１０５―Ｉ、１０５−Ｏ、１０６、１０７Ｌについては、あとで説明するが、信号１０４はクロック信号であり、半導体装置１Ａに設けられた外部端子（図示せず）を介して外部から供給される。
【００６７】
特に制限されないが、図１に示した半導体装置１Ａは、周知の半導体製造技術によって製造されており、図１に示した回路ブロックは、１個の半導体基板に形成されている。
【００６８】
＜ＰＲＰＧ制御回路＞
図６は、実施の形態２に係わるＰＲＰＧ制御回路２Ａの構成を示すブロック図である。ＰＲＰＧ制御回路２Ａは、複数のＰＲＰＧ停止回路２Ａ１０〜２Ａ１２と、制御回路２Ａ２４−Ｃとを備えている。複数のＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれは、互いに同じ構成を有しており、図６には、ＰＲＰＧ停止回路２Ａ１０が、代表として、その構成が詳しく示されている。この実施の形態２においては、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２は、パタン発生器２０〜２２に１対１に対応している。
【００６９】
制御回路２Ａ２４−Ｃは、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２を制御する制御回路であり、１個の制御回路２Ａ２４によって、複数のＰＲＰＧ停止回路２Ａ１０〜２Ａ１２が制御される。この制御回路２Ａ２４−Ｃは、フリップフロップ２Ａ２４と、組合せ回路２Ａ２５とを有している。ここで、組合せ回路２Ａ２５は、ＬＢＩＳＴ制御回路１０からのＰＲＰＧ制御信号１０２と、リセット信号１０６と、フリップフロップ２Ａ２４の出力とを受け、またフリップフロップ２Ａ２４は、組合せ回路２Ａ２５の出力を受ける。
【００７０】
ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ制御回路２Ａをリセットするとき、リセット信号１０６をハイレベルにし、リセットを解除するとき、リセット信号１０６をロウレベルにアサートする。組合せ回路２Ａ２５は、２入力アンド（ＡＮＤ）回路２Ａ２５−Ａと２入力オア回路（ＯＲ）２Ａ２５−Ｏとを有している。ここで、２入力アンド回路２Ａ２５−Ａの一方の入力には位相反転したリセット信号１０６が供給され、２入力アンド回路２Ａ２５−Ａの他方の入力には、２入力オア回路２Ａ２５−Ｏの出力が供給されている。なお、リセット信号１０６を位相反転するインバータ回路が、図６では２入力アンド回路２Ａ２５−Ａの一方の入力に付されている○印で示されている。また、２入力オア回路２Ａ２５−Ｏの一方の入力には、ＬＢＩＳＴ制御回路１０からのＰＲＰＧ制御信号１０２が供給され、その他方の入力にはフリップフロップ２Ａ２４の出力が供給されている。
【００７１】
リセットのときには、リセット信号１０６がハイレベルとなるため、２入力アンド回路２Ａ２５−Ａの出力はロウレベルとなる。フリップフロップ２Ａ２４は、この２入力アンド回路２Ａ２５−Ａの出力を取り込み、保持し、取り込んだレベルを出力し続ける。そのため、リセットのときには、フリップフロップ２Ａ２４の出力はロウレベルとなる。一方、ＬＢＩＳＴ制御回路１０により、リセット信号１０６がロウレベルへアサートされ、リセットが解除されると、２入力アンド回路２Ａ２５−Ａは、２入力オア回路２Ａ２５−Ｏの入力の電圧（論理値）に従った電圧をフリップフロップ２Ａ２４へ入力する。
【００７２】
ＬＢＩＳＴ制御回路１０は、パタン発生器２０〜２３を起動状態にするとき、言い換えるならばＰＲＰＧ制御回路２Ａを起動状態にするとき、ＰＲＰＧ制御信号１０２をハイレベルにし、停止状態にするとき、ＰＲＰＧ制御信号１０２をロウレベルにする。リセット状態を解除したとき、ＰＲＰＧ制御信号１０２がロウレベルであれば、２入力オア回路２Ａ２５−Ｏの出力はロウレベルのため、フリップフロップ２Ａ２４は、ロウレベルを保持し続け、ロウレベルを出力する。一方、リセットを解除したとき、ＰＲＰＧ制御回路２Ａを起動状態にするように、ＰＲＰＧ制御信号１０２をハイレベルにすると、２入力オア回路２Ａ２５−Ｏの出力はハイレベルとなり、フリップフロップ２Ａ２４はハイレベル（論理値“１”）を取りこみ、その出力はロウレベルからハイレベルへと変化する。フリップフロップ２Ａ２４の出力は、２入力オア回路２Ａ２５−Ｏの他方の入力に供給されているため、以後はＰＲＰＧ制御信号１０２がロウレベルへ変化しても、フリップフロップ２Ａ２４の出力はハイレベルに維持される。ＬＢＩＳＴ制御回路１０が、再びリセットを指示するように、リセット信号１０６をハイレベルにするまで、このフリップフロップ２Ａ２４のハイレベルは維持され続けることになる。
【００７３】
フリップフロップ２Ａ２４の出力が、制御回路２Ａ２４−Ｃの出力である。そのため、このフリップフロップ２Ａ２４が、ＰＲＰＧ制御回路２Ａによる制御の開始と終了を司っていると見なすこともできる。
【００７４】
次に、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２の構成を説明する。これらのＰＲＰＧ停止回路２Ａ１０〜２Ａ１２は、先の述べたように、互いに同じ構成を有しているので、代表として示したＰＲＰＧ停止回路２Ａ１０を例にして説明する。
【００７５】
ＰＲＰＧ停止回路２Ａ１０は、カウンタ２Ａ２０、レジスタ２Ａ２１、比較器２Ａ２２、組合せ回路２Ａ２６、フリップフロップ２Ａ２３および２入力アンド回路２Ａ２７を有している。カウンタ２Ａ２０は、半導体装置１Ａの外部から供給されるクロック信号１０４を受け、クロック信号１０４をカウントするカウンタである。特に制限されないが、この実施の形態２において、自己診断動作は、このクロック信号１０４に同期して実行される。
【００７６】
レジスタ２Ａ２１は、ＬＢＩＳＴ制御回路１０から、このＰＲＰＧ停止回路２Ａ１０に供給されるレジスタ設定信号１０５−Ｉによって、その値が設定されるレジスタである。
ＬＢＩＳＴ制御回路１０は、それぞれのＰＲＰＧ停止回路２Ａ１０〜２Ａ１２に対して、それぞれに対応したパタン発生器２０〜２２において発生されるテストパタンを停止させる停止タイミングに応じた値を、供給し、レジスタ２Ａ２１に格納する。このＰＲＰＧ停止回路２Ａ１０を例にすると、このＰＲＰＧ停止回路２Ａ１０に対応したパタン発生器２０において発生するテストパタンを停止する停止タイミングに応じた値を、レジスタ設定信号１０５−Ｉとして、レジスタ２Ａ２１へ供給し、レジスタ２Ａ２１へ格納する。
【００７７】
比較器２Ａ２２は、カウンタ２Ａ２０のカウント値と、レジスタ２Ａ２１に格納されている値とを比較する。カウンタ２Ａ２０がクロック信号１０４をカウントすることにより、そのカウント値が、例えば大きくなり、レジスタ２Ａ２１に格納されている値と、カウンタ２Ａ２０のカウント値とが一致すると、比較器２Ａ２２は、ハイレベルの信号を出力する。
【００７８】
組合せ回路２Ａ２６は、２入力オア回路２Ａ２６−Ｏと２入力アンド回路２Ａ２６−Ａとを有している。２入力アンド回路２Ａ２６−Ａの一方の入力には、制御回路２Ａ２４−Ｃの出力が供給されており、この２入力アンド回路２Ａ２６−Ａの他方の入力には、２入力オア回路２Ａ２６−Ｏの出力が供給されている。２入力アンド回路２Ａ２６−Ａの出力が、組合せ回路２Ａ２６の出力とされ、組合せ回路２Ａ２６の出力はフリップフロップ２Ａ２３に入力されている。２入力オア回路２Ａ２６−Ｏの一方の入力に上記した比較器２Ａ２２の出力が供給され、その他方の入力には、上記したフリップフロップ２Ａ２３の出力が供給されている。
【００７９】
上記したように、制御回路２Ａ２４−Ｃは、リセットを解除し、ＰＲＰＧ制御回路２Ａが起動状態にされている期間において、ハイレベルを出力し、リセット状態およびＰＲＰＧ制御回路２Ａを起動していないとき、ロウレベルを出力する。そのため、２入力アンド回路２Ａ２６−Ａは、リセット状態およびＰＲＰＧ制御回路２Ａが起動されていない期間においては、ロウレベルをフリップフロップ２Ａ２３の入力に供給する。
【００８０】
一方、リセットが解除され、ＰＲＰＧ制御回路２Ａが起動状態となっている期間においては、２入力アンド回路２Ａ２６−Ａは、２入力オア回路２Ａ２６−Ｏの入力に従った電圧をフリップフロップ２Ａ２３の入力に供給する。例えば、この期間において、比較器２Ａ２２の出力がハイレベルとなれば、２入力アンド回路２Ａ２６−Ａは、ハイレベルを組合せ回路２Ａ２６の出力として、フリップフロップ２Ａ２３へ供給する。これにより、フリップフロップ２Ａ２３は、ハイレベルを取りこみ、格納する。ハイレベルを格納することにより、フリップフロップ２Ａ２３からの出力電圧は、ロウレベルからハイレベルへ変化する。このハイレベルの電圧が、２入力オア回路２Ａ２６−Ｏの他方の入力に供給されるため、比較器２Ａ２２の電圧が、例えロウレベルへ変化しても、フリップフロップ２Ａ２３は、ハイレベルの電圧を継続して出力する。フリップフロップ２Ａ２３から出力されている電圧は、制御回路２Ａ２４−Ｃの電圧が、ロウレベルになることにより、ハイレベルからロウレベルへ変化することになる。
【００８１】
フリップフロップ２Ａ２３の出力は、２入力アンド回路２Ａ２７の一方の入力に供給される。ここで、２入力アンド回路２Ａ２７の一方の入力に付した○印はインバータ回路を意味している。そのため、フリップフロップ２Ａ２３の出力は位相反転され、２入力アンド回路２Ａ２７の一方の入力に供給されることになる。また、２入力アンド回路２Ａ２７の他方の入力には、ＰＲＰＧ制御信号１０２が供給されている。これにより、２入力アンド回路２Ａ２７は、ＰＲＰＧ制御信号１０２が、ハイレベルで、フリップフロップ２Ａ２３の出力がロウレベルの期間において、ハイレベルを出力することになる。フリップフロップ２Ａ２３は、ＰＲＰＧ制御回路２Ａを起動した後、カウンタ２Ａ２０のカウント値が、レジスタ２Ａ２１に格納されている値に到達するまで（一致するまで）、ロウレベルを出力する。
【００８２】
そのため、ＬＢＩＳＴ制御回路１０が、ＰＲＰＧ制御回路２Ａを起動した後、レジスタ２Ａ２１に格納されている値に相当する時間が経過するまで、２入力アンド回路２Ａ２７は、ハイレベルを出力し、レジスタ２Ａ２１に格納されている値に相当する時間を経過すると、２入力アンド回路２Ａ２７は、ロウレベルを出力する。この２入力アンド回路２Ａ２７の出力が、対応するパタン発生器２０に供給されるＰＲＰＧ制御信号２００となる。また、フリップフロップ２Ａ２３の出力が、ＭＩＳＲ制御回路３Ａに供給されるＭＩＳＲ停止信号１０８となる。
【００８３】
残りのＰＲＰＧ停止回路２Ａ１１、２Ａ１２のそれぞれについても、上記したＰＲＰＧ停止回路２Ａ１０と同様な構成と動作を行う。すなわち、ＰＲＰＧ停止回路２Ａ１１においては、ＰＲＰＧ制御回路２Ａを起動した後、ＰＲＰＧ停止回路２Ａ１１に設けられているレジスタ２Ａ２１に格納された値に対応する時間が経過するまで、ハイレベルのＰＲＰＧ制御信号２０１を、対応するパタン発生器２１へ供給する。一方、レジスタ２Ａ２１に格納された値に対応する時間を経過すると、ＰＲＰＧ停止回路２Ａ１１は、ロウレベルのＰＲＰＧ制御信号２０１を、対応するパタン発生器２１へ供給する。また、ＰＲＰＧ停止回路２Ａ１２においては、ＰＲＰＧ制御回路２Ａを起動した後、ＰＲＰＧ停止回路２Ａ１２に設けられているレジスタ２Ａ２１に格納された値に対応する時間が経過するまで、ハイレベルのＰＲＰＧ制御信号２０２を、対応するパタン発生器２２へ供給する。一方、レジスタ２Ａ２１に格納された値に対応する時間を経過すると、ＰＲＰＧ停止回路２Ａ１２は、ロウレベルのＰＲＰＧ制御信号２０２を、対応するパタン発生器２２へ供給する。
【００８４】
ＰＲＰＧ停止回路２Ａ１１および２Ａ１２においても、ＰＲＰＧ停止回路２Ａ１０と同様に、ＭＩＳＲ停止信号２０１−１０８、２０２−１０８を出力する。しかしながら、この実施の形態２においては、ＰＲＰＧ停止回路２Ａ１１および２Ａ１２により形成されたＭＩＳＲ停止信号２０１−１０８、２０２−１０８は、ＭＩＳＲ制御回路３Ａには、供給されない。
【００８５】
この実施の形態２においては、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれにおけるレジスタ２Ａ２１へ、ＰＲＰＧ制御回路２Ａを起動する前に、ＬＢＩＳＴ制御回路１０が、時間に相当する値を、それぞれ設定する。このとき、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれにおけるレジスタ２Ａ２１へ設定する時間が、互いに異なるような値を設定する。具体的には、例えば、ＰＲＰＧ停止回路２Ａ１０のレジスタ２Ａ２１へ設定する値は、最も短くなる時間に相当する値を設定し、ＰＲＰＧ停止回路２Ａ１１のレジスタ２Ａ２１へ設定する値は、次に短くなる時間に相当する値を設定し、ＰＲＰＧ停止回路２Ａ１２のレジスタ２Ａ２１へ設定する値は、最も長くなる時間に相当する値を設定する。
【００８６】
このようにＰＲＰＧ停止回路２Ａ１０〜２Ａ１２内のレジスタ２Ａ２１に設定する時間の長さを変えることにより、ＰＲＰＧ制御回路２Ａを起動（ＰＲＰＧ制御信号１０２をハイレベルへ変化）すると、ＭＩＳＲ停止信号１０８、２０１−１０８、２０２−１０８の順に、その電圧がロウレベルからハイレベルへ変化することになる。あとで説明するが、ＭＩＳＲ停止信号は、パタン圧縮器３０〜３３の機能を停止させるために用いられる。最も早くハイレベルへ変化するＭＩＳＲ停止信号１０８によって、パタン圧縮器３０〜３３を停止させることにより、パタン圧縮器が不要に動作することを低減することが可能となり、消費電力の低減も図ることが可能となる。この場合、ＰＲＰＧ制御信号は、ＰＲＰＧ制御信号２００、２０１、２０２の順にロウレベルとなる。
【００８７】
また、この実施の形態２においては、パタン発生器２３に供給されるＰＲＰＧ制御信号２０３は、ＰＲＰＧ制御信号１０２がそのまま用いられている。
【００８８】
この実施の形態２においても、パタン発生器２０〜２３は、対応するＰＲＰＧ制御信号２００〜２０３により制御される。すなわち、対応するＰＲＰＧ制御信号２００〜２０３が、ハイレベルとなることにより、パタン発生器２０〜２３は動作する。動作することにより、パタン発生器２０〜２３は、テストパタンを発生し、スキャンチェーン４００を通して対応する論理回路４０〜４３に供給する。一方、対応するＰＲＰＧ制御信号２００〜２０３がロウレベルへ変化することにより、対応するパタン発生器２０〜２３は動作を停止する。この場合、パタン発生器２０〜２３が動作を停止するとは、パタン発生器２０〜２３から出力される信号が所定の電圧に固定され、時間的に変化しないことを意味している。そのため、パタン発生器２０〜２３が動作を停止すると、テストパタンも停止すると見なすことができる。
【００８９】
この実施の形態２によれば、ＰＲＰＧ制御信号１０２によって、ＰＲＰＧ制御回路２Ａが起動されると、この起動に応答して、ＰＲＰＧ制御信号２００〜２０３のそれぞれが、実質的に同時にハイレベルとなる。これにより、パタン発生器２０〜２３のそれぞれが動作を開始し、それぞれがテストパタンを発生して、論理回路４０〜４３へ供給することになる。その後、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれのレジスタ２Ａ２１に予め設定した時間に関する値に基づき、時間が経過すると、ＰＲＰＧ制御信号２００、２０１、２０２の順に、その電圧がハイレベルからロウレベルへ変化する。その結果、論理回路４０、４１、４２の順に、パタン発生器２０〜２２から供給される信号の電圧が固定され、論理回路４０、４１、４２の順に、消費電流が削減される。この結果として、急激に消費電流が変動することを防ぐことが可能となる。
【００９０】
ＰＲＰＧ制御回路２Ａに設けるＰＲＰＧ停止回路の個数は、半導体装置１Ａに搭載するパタン発生器の個数に応じて増減し、最大でもパタン発生器の個数と同じとなる。しかしながら、パタン発生器の個数を上限として制限するものではない。また、複数のパタン発生器に対して１つのＰＲＰＧ停止回路を共有させても良い。ＰＲＰＧ制御信号２０３のように、ＰＲＰＧ停止回路によって制御されないＰＲＰＧ制御信号があってもよい。
【００９１】
また、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２からのそれぞれのＭＩＳＲ停止信号（１０８、２０１−１０８、２０２−１０８）間で論理和の演算を実行し、求めた論理和の結果を、停止信号１０８（図１）としてよい。この場合には、ＰＲＰＧ停止回路２Ａ１０のレジスタ２Ａ２１に設定する時間に関する値が、最も短い時間に対応する値でなくてもよい。すなわち、論理和を求めることにより、最も早くロウレベルとなるＭＩＳＲ停止信号のタイミングが、ＭＩＳＲ制御回路３Ａに伝達されることになるため、それぞれのレジスタに設定する値の自由度を増すことが可能となり、自己診断動作の設定を容易化することが可能となる。
【００９２】
また、制御回路２Ａ２４−Ｃ、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２の構成は、図６に示した構成に限定されるものではない。例えば、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれに設けられているカウンタ２Ａ２１は、１個の共通カウンタとしてもよい。この場合には、それぞれのＰＲＰＧ停止回路において、共通カウンタの値とレジスタの値とを比較すればよい。また、カウンタ２Ａ２１および共通カウンタは、クロック信号１０４に基づいて、カウントアップ動作によりカウント値を求めるようにしてもよいし、カウントダウン動作によりカウント値を求めるようにしてもよい。
【００９３】
ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれにおけるレジスタ２Ａ２１に時間に関する値を設定する際、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれにおけるレジスタ２Ａ２１は、直列接続される。すなわち、ＰＲＰＧ停止回路２Ａ１０内のレジスタ２Ａ２１の出力が、ＰＲＰＧ停止回路２Ａ１１内のレジスタ２Ａ２１の入力に接続され、ＰＲＰＧ停止回路２Ａ１１内のレジスタ２Ａ２１の出力が、ＰＲＰＧ停止回路２Ａ１２内のレジスタ２Ａ２１の入力に接続される。これらの直列接続されたレジスタをシフトレジスタとして動作させる。それぞれのレジスタ２Ａ２１に設定する値は、レジスタ設定信号１０５−Ｉとして、ＬＢＩＳＴ制御回路１０から、ＰＲＰＧ停止回路２Ａ１０内のレジスタ２Ａ２１の入力へ、順次供給する。このとき、直列に接続されたレジスタをシフトレジスタとして動作させることにより、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれにおけるレジスタ２Ａ２１に、時間に関する値（初期値）を設定することが可能となる。
【００９４】
また、それぞれのレジスタ２Ａ２１を直列接続し、シフトレジスタとして動作させることにより、それぞれのレジスタ２Ａ２１に格納されていた値を、レジスタ設定信号１０５−Ｏとして、ＬＢＩＳＴ制御回路１０は読み出すことが可能である。
【００９５】
勿論、それぞれのレジスタ２Ａ２１に別々にレジスタ設定信号１０５−Ｉとして、時間に関する初期値を設定するようにしてもよい。
【００９６】
＜ＭＩＳＲ制御回路３Ａ＞
図７は、実施の形態２に係わるＭＩＳＲ制御回路３Ａの構成を示すブロック図である。ＭＩＳＲ制御回路３Ａは、２入力アンド回路３Ａ１０と２入力オア回路３Ａ１１とを有している。２入力アンド回路３Ａ１０の一方の入力には、図６において説明したＭＩＳＲ制御信号１０８が位相反転して供給され、その他方の入力には、ＬＢＩＳＴ制御回路１０からのＭＩＳＲ制御信号１０３が供給される。ここで、２入力アンド回路３Ａ１０の一方の入力に付されている○印はインバータ回路を示しており、ＭＩＳＲ制御信号１０８は、○印のインバータ回路により位相反転されて、２入力アンド回路３Ａ１０の一方の入力に供給されていることを示している。
【００９７】
２入力アンド回路３Ａ１０の出力は、パタン圧縮器３０〜３３にＭＩＳＲ制御信号３００〜３０３として供給される。また、ＭＩＳＲ停止信号１０８とＬＢＩＳＴ制御回路１０からのスキャンイネーブル信号１０７Ｌは、２入力オア回路３Ａ１１に供給され、２入力オア回路３Ａ１１の出力は、論理回路４０〜４３のそれぞれに対して、スキャンイネーブル信号１０７として供給される。
【００９８】
ＬＢＩＳＴ制御回路１０は、ＭＩＳＲ制御回路３Ａを起動するとき、ＭＩＳＲ制御信号１０３をハイレベルにし、ＭＩＳＲ制御回路３Ａを停止するとき、ＭＩＳＲ制御信号１０３をロウレベルにする。一方、ＭＩＳＲ停止信号１０８は、図６において説明したように、ＰＲＰＧ制御回路２Ａを起動したあと、レジスタ２Ａ２１に格納されている値とカウンタ２Ａ２０によるカウント値とが一致するまで、ロウレベルとなり、レジスタ２Ａ２１の値とカウント値とが一致すると、ハイレベルとなる。すなわち、ＰＲＰＧ制御回路２Ａを起動したあと、レジスタ２Ａ２１に設定されている時間が経過するまでは、ＭＩＳＲ停止信号１０８はロウレベルとなり、時間を経過すると、ＭＩＳＲ制御信号１０８はハイレベルとなる。
【００９９】
そのため、ＬＢＩＳＴ制御回路１０が、ＭＩＳＲ制御回路３Ａを起動したあと、レジスタ２Ａ２０に設定されている時間を経過するまでは、２入力アンド回路３Ａ１０は、ＭＩＳＲ制御信号３００〜３０３のそれぞれをハイレベルにし、時間を経過すると、ＭＩＳＲ制御信号３００〜３０３のそれぞれをロウレベルにする。
【０１００】
ＭＩＳＲ制御回路３Ａから出力されるＭＩＳＲ制御信号３００〜３０３は、パタン圧縮器３０〜３３に１対１に対応している。パタン圧縮器３０〜３３のそれぞれは、対応するＭＩＳＲ制御信号３００〜３０３がハイレベルのときに動作し、対応するＭＩＳＲ制御信号３００〜３０３がロウレベルとなることにより動作を停止する。
【０１０１】
パタン圧縮機３０〜３３のそれぞれは、それらが動作しているとき、論理回路４０〜４３からの動作結果（テスト結果）を、スキャンチェーン４００を通して受け取り、圧縮し、ＰＲＰＧ／ＭＩＳＲチェーン１０１を通して、ＬＢＩＳＴ制御回路１０へ供給する。レジスタ２Ａ２１に設定されている時間を経過すると、これらの動作が停止する。
【０１０２】
ＬＢＩＳＴ制御回路１０は、自己診断動作において、テストパタンを論理回路４０〜４３内のフリップフロップＦＦへ、順次転送する際に、スキャンイネーブル信号１０７Ｌをハイレベルにし、論理回路４０〜４３の動作結果（テスト結果）をフリップフロップＦＦ取り込むとき、すなわちキャプチャ動作のとき、スキャンイネーブル信号１０７Ｌをロウレベルにする。ＰＲＰＧ制御信号２００が、ハイレベルのとき、パタン発生器２０がテストパタンを発生する。このとき、図６で説明したように、ＭＩＳＲ停止信号１０８はロウレベルである。しかしながら、ＬＢＩＳＴ制御回路１０が、ハイレベルのスキャンイネーブル信号１０７Ｌを出力しているため、２入力オア回路３Ａ１１からは、ハイレベルのスキャンイネーブル信号１０７が、それぞれの論理回路４０〜４３に供給されているため、テストパタンは論理回路４０〜４３内のフリップフロップＦＦを順次転送することが可能とされている。また、ＬＢＩＳＴ制御回路１０が、スキャンイネーブル信号１０７Ｌをロウレベルとすることにより、２入力オア回路３Ａ１１は、スキャンイネーブル信号１０７をロウレベルにするため、キャプチャ動作によって、論理回路の動作結果によりフリップフロップＦＦを更新することが可能となる。
【０１０３】
一方、ＭＩＳＲ停止信号１０８が、パタン圧縮器４０〜４３を停止させるために、ハイレベルとなると、２入力オア回路３Ａ１１は、ハイレベルのスキャンイネーブル信号１０７を出力する。これにより、パタン圧縮器４０〜４３を停止したときは、キャプチャ動作が行われるのを防ぐことが可能となり、無効な動作結果が論理回路内のフリップフロップに取り込まれるのを防ぐことが可能となる。
【０１０４】
＜論理回路４０の例＞
次に、論理回路４０〜４３のうち、論理回路４０の構成例を説明する。ここでは、自己診断動作のときの構成を説明する。図１８は、論理回路４０内の一部の構成を示すブロック図である。
【０１０５】
図１８において、４０Ａ１〜４０Ａ３のそれぞれは、組合せ回路であり、４０Ｂ１、４０Ｂ２は、フリップフロップ（保持回路）であり、４０Ｃ１、４０Ｃ２はセレクタである。同図においては、説明を容易にするために、５個のフリップフロップ４０Ｂ１と５個のフリップフロップ４０Ｂ２が示されている。フリップフロップ４０Ｂ１のそれぞれの入力は、セレクタ４０Ｃ１を介して、前段のフリップフロップ４０Ｂ１の出力と、組合せ回路４０Ａ１の出力とに接続されている。最前段のフリップフロップ、すなわち同図において最も左側に示したフリップフロップ４０Ｂ１には、前段のフリップフロップ４０Ｂ１が存在しないため、スキャンチェーン４００を通して、対応するパタン発生器２０の出力に接続されている。また、最後段のフリップフロップ４０Ｂ１の出力は、スキャンチェーン４００を通して、パタン圧縮器４０の入力に接続されている。
【０１０６】
フリップフロップ４０Ｂ１のそれぞれは、セレクタ４０Ｃ１の出力を受け、クロック信号１０４に同期して、セレクタ４０Ｃ１の出力を取り込み、保持するとともに、出力する。例えば、クロック信号１０４の立ち上がりに同期して、セレクタ４０Ｃ１の出力を取り込み、保持して、出力する。セレクタ４０Ｃ１のそれぞれは、スキャンイネーブル信号１０７の電圧に従って、論理回路４０Ａ１からの出力または前段（スキャンチェーン４００を含む）からの出力を選択し、出力する。すなわち、スキャンイネーブル信号１０７の電圧がハイレベルのとき、セレクタ４０Ｃ１は、前段（スキャンチェーン４００）からの出力をフリップフロップ４０Ｂ１へ出力する。一方、スキャンイネーブル信号１０７の電圧がロウレベルのとき、セレクタ４０Ｃ１は、論理回路４０Ａ１の出力をフリップフロップ４０Ｂ１へ出力する。また、フリップフロップ４０Ｂ１の出力は、組合せ回路４０Ａ２へ入力として供給されている。
【０１０７】
組合せ回路４０Ａ１、４０Ａ２、４０Ａ３およびフリップフロップ４０Ｂ１、４０Ｂ２のそれぞれは、電圧配線５００、５０１に接続されており、電圧配線５００を介して、これらの回路を動作させるための電源電圧が供給され、電圧配線５０１を介して接地電圧が供給されている。
【０１０８】
自己診断動作においては、先ず、ＭＩＳＲ制御回路２Ａから出力されるスキャンイネーブル信号１０７はハイレベルにされる。これにより、セレクタ４０Ｃ１は、前段（スキャンチェーン４００）からの出力をフリップフロップ４０Ｂ１へ出力する。クロック信号１０４の電圧が周期的に変化することにより、スキャンチェーン４００に供給されたテストパタンが、順次フリップフロップ４０Ｂ１に伝達される。すなわち、同図において、左側から右側に向かって、テストパタンが移動し、フリップフロップ４０Ｂ１内に順次格納される。言い換えるならば、複数のフリップフロップ４０Ｂ１によってシフトレジスタが構成され、クロック信号１０４の変化に従って、テストパタンがシフトレジスタ内を移動する。この場合、テストパタンは、シフトレジスタ内を移動するシフトデータと見なすこともできる。
【０１０９】
シフトレジスタ内をシフトデータが移動するとき、論理回路４０Ａ２には、フリップフロップ４０Ｂ１の出力が供給されているため、論理回路４０Ａ２は、フリップフロップ４０Ｂ１の出力に従って動作する。すなわち、論理回路４０Ａ２内の状態が、それに供給される電圧（論理値）に従って、変化する。この状態の変化により、電圧配線５００、５０１を流れる電流の値が変化する。
【０１１０】
リセット信号１０６によりリセットの状態を解除したときのように、自己診断動作を開始した時点では、例えばフリップフロップ４０Ｂ１のそれぞれは、例えば論理値“０”を格納している。この論理値“０”に対応するフリップフロップ４０Ｂ１の出力が組合せ回路４０Ａ２に供給されていることになる。自己診断動作を開始すると、同図において、左側から右側に向かったテストパタンが移動するため、フリップフロップの状態は、左側から右側に向かって、テストパタンに従って変化する。すなわち、自己診断動作を開始した時点では、組合せ回路４０Ａ２に供給される論理値は、同図において左側の組合せ回路部分に供給される論理値が変わっており、右側の組合せ回路部分に供給される論理値は変わっていない。その結果、組合せ回路４０Ａ２において、左側の部分において消費電流の変化が生じるが、右側の部分においての消費電流の変化は少ない。
【０１１１】
一方、自己診断動作が進むと、同図に示した５個のフリップフロップ４０Ｂ１の全てに、テストパタンが格納された状態となる。この状態で、例えば、クロック信号１０４に同期してフリップフロップ４０Ｂ１がテストパタンをさらに取り込むと、組合せ回路４０Ａ２に供給されている５個のフリップフロップ４０Ｂ１のそれぞれに格納されている論理値の多くが変化するようになる。すなわち、組合せ回路４０Ａ２の左側の回路部分に供給される論理値と右側の回路部分に供給される論理値の両方が変化するようになる。そのため、自己診断動作が進行すると、自己診断動作を開始したときに比べて、組合せ回路４０Ａ２において消費される消費電流が大きくなる。
【０１１２】
自己診断動作が進行しているときに、パタン発生器を停止させると、大きくなっている消費電流を急激に低下させることになるため、特に電圧配線５０１における電圧が急激に上昇することになる。そのため、パタン発生器を停止させる停止タイミングを変えることが、特に望ましい。
【０１１３】
スキャンイネーブル信号１０７が、ロウレベルに変化することにより、セレクタ４０Ｃ１は、組合せ回路４０Ａ１からの出力をフリップフロップ４０Ｂ１へ供給する。クロック信号１０４が変化することにより、フリップフロップ４０Ｂ１は、組合せ回路４０Ａ１からの出力を取り込み、格納する。その後、スキャンイネーブル信号１０７をハイレベルにし、クロック信号１０４を変化させることにより、フリップフロップ４０Ｂ１に格納されている論理回路４０Ａ１の出力が、同図において、左側から右側へ移動し、スキャンチェーン４００を通して、順次パタン圧縮器４０に供給される。この実施の形態においては、パタン圧縮器を停止したとき、スキャンイネーブル信号１０７がハイレベルとなる。そのため、フリップフロップ４０Ｂ１に組合せ回路４０Ａ１の出力が取り込まれるのを防ぐことが可能である。
【０１１４】
フリップフロップ４０Ｂ２、セレクタ４０Ｃ２および組合せ回路４０Ａ２、４０Ａ３についても、フリップフロップ４０Ｂ１、セレクタ４０Ｃ１および組合せ回路４０Ａ１、４０Ａ２と同じであるため、説明は省略する。
【０１１５】
＜自己診断動作＞
図２は、実施の形態２に係わる半導体装置１Ａにおける自己診断時の動作を示すフローチャート図である。
【０１１６】
同図では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが表されている。矢印が分岐しているところは並列した処理を示す。但し、ひし形のイベントについては、分岐を表し、下向きの矢印がイベントの内容に合致した場合の次処理を指している。
【０１１７】
半導体装置１Ａの自己診断動作が開始されると、ステップＳ０において、ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ／ＭＩＳＲチェーン１０１を通して、初期値をパタン発生器２０、２１、２２、２３およびパタン圧縮器３０、３１、３２、３３に設定する。また、このとき、レジスタ設定信号１０５−Ｉによって、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれにおけるレジスタ２Ａ２１に対して、時間に相当する初期値を設定する。これらの初期値の設定が完了すると、さらにステップＳ０において、初回のスキャンシフトを行うために、ＬＢＩＳＴ制御回路１０は、リセット信号１０６をハイレベルからロウレベルにして、リセットを解除する。また、このとき、ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ制御信号１０２をハイレベル（起動状態）にする。
【０１１８】
ＰＲＰＧ制御信号１０２は、ＰＲＰＧ制御回路２Ａ（図６）に入力されるが、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２内のそれぞれのフリップフロップ２Ａ２３は、リセットが解除された初期状態であるため、フリップフロップ２Ａ２３の出力はロウレベルである。そのため、ＰＲＰＧ制御信号１０２のハイレベル（有効）は、２入力アンド回路２Ａ２７を通過して、ＰＲＰＧ制御信号２００〜２０３としてパタン発生器２０〜２３に入力される（ステップＳ１〜Ｓ４）。
【０１１９】
ハイレベルのＰＲＰＧ制御信号２００〜２０３が供給されるため、パタン発生器２０〜２３が動作し、それぞれがテストパタンを発生する。発生したテストパタンは、スキャンチェーン４００を通して、初回のテストデータ（テストパタン）として、対応する論理回路４０〜４３に入力される（ステップＳ５）。
【０１２０】
テストデータの入力が完了すると、ＬＢＩＳＴ制御回路１０は、ＭＩＳＲ制御信号１０３をハイレベル（起動状態）にする。ＭＩＳＲ制御信号１０３は、ＭＩＳＲ制御回路３Ａ（図７）に入力される。このとき、ＰＲＰＧ停止回路２Ａ１０のフリップフロップ２Ａ２３は初期状態のロウレベルである。そのため、ＭＩＳＲ制御信号１０３は、ＭＩＳＲ制御回路３Ａ内の２入力アンド回路３Ａ１０を通過して、ＭＩＳＲ制御信号３００〜３０３として、パタン圧縮器３０、３１、３２、３３に入力される（ステップＳ６〜Ｓ９）。なお、同図では、ＭＩＳＲ制御信号３００〜３０３を有効に設定と記載している。
【０１２１】
次に、ステップＳ１０において、スキャンテストにおけるキャプチャ動作を行い論理回路４０〜４３のデータを更新する。スキャンチェーン４００を通して、パタン発生器２０〜２３で発生した２回目以降のテストデータを論理回路４０〜４３に入力する（ステップＳ１１）。
【０１２２】
この後、ステップＳ１２において、自己診断動作が完了したかどうかの判定を行なう。自己診断動作が完了したか否かは、ＰＲＰＧ停止回路２Ａ１０におけるカウンタ２Ａ２０とレジスタ２Ａ２１の値が比較器２Ａ２２によって一致したかどうかで行われる。一致しない場合は、自己診断動作が完了していないとして、ステップＳ１０へ戻り、自己診断動作が完了と判定するまで、ステップＳ１０〜Ｓ１２を繰り返す。
【０１２３】
自己診断動作が完了すると、図６で述べたＰＲＰＧ停止回路２Ａ１０内のフリップフロップ２Ａ２３がハイレベルを出力する。これにより、ＭＩＳＲ制御回路３Ａ内の２入力アンド回路３Ａ１０は、ＭＩＳＲ制御信号３００〜３０３のそれぞれをロウレベルに固定する。すなわち、フリップフロップ２Ａ２３がハイレベルに固定され、ハイレベルのＭＩＳＲ停止信号１０８によって、２入力アンド回路３Ａ１０の出力がロウレベルに固定する（ステップＳ１３〜Ｓ１６）。なお、図２では、ＭＩＳＲ制御信号３００〜３０３を無効に設定と記載している。ＭＩＳＲ制御信号３００〜３０３がロウレベルとなることにより、パタン圧縮器４０〜４３の機能は停止する。
【０１２４】
このとき、ＭＩＳＲ制御回路３Ａにおける２入力オア回路３Ａ１１にも、ハイレベルのＭＩＳＲ停止信号１０８が供給されているため、スキャンイネーブル信号１０７は、ハイレベルに固定される。これにより、論理回路４０〜４３がスキャンチェーン４００以外の経路からのデータを取り込まないようにされている。
【０１２５】
ＰＲＰＧ停止回路２Ａ１０内のフリップフロップ２Ａ２３の出力がハイレベルとなるため、このＰＲＰＧ停止回路２Ａ１０から出力されるＰＲＰＧ制御信号２００はロウレベルに固定される。すなわち、フリップフロップ２Ａ２３の出力がハイレベルに固定されるため、２入力アンド回路２Ａ２７の出力はロウレベルに固定される（ステップＳ１７）。ＰＲＰＧ制御信号２００がロウレベルとなることにより、このＰＲＰＧ制御信号２００が供給されているパタン発生器２０は、その機能が停止する。なお、図２では、ＰＲＰＧ制御信号２００を無効に設定と記載している。
【０１２６】
図６において説明したように、ＰＲＰＧ停止回路２Ａ１１におけるレジスタ２Ａ２１には、ＰＲＰＧ停止回路２Ａ１０におけるレジスタ２Ａ２１よりも長い時間に相当する値（初期値）が設定されている。また、ＰＲＰＧ停止回路２Ａ１２におけるレジスタ２Ａ２１には、ＰＲＰＧ停止回路２Ａ１１におけるレジスタ２Ａ２１よりも長い時間に相当する値（初期値）が設定されている。
【０１２７】
そのため、ＰＲＰＧ停止回路２Ａ１０から出力されているＰＲＰＧ制御信号２００がロウレベルになった時点では、ＰＲＰＧ停止回路２Ａ１１および２Ａ１２のそれぞれにおけるフリップフロップ２Ａ２３は、まだロウレベルを出力している。これは、ＰＲＰＧ停止回路２Ａ１１および２Ａ１２のそれぞれにおいて、カウンタ２Ａ２０によるカウント値とレジスタ２Ａ２１に格納されている初期値とが一致していないためである。
【０１２８】
ＰＲＰＧ停止回路２Ａ１１および２Ａ１２のそれぞれにおけるフリップフロップ２Ａ２３が、まだロウレベルを出力しているため、ＰＲＰＧ制御信号２０１〜２０３はハイレベルとなり、パタン発生器２１〜２３は動作しており、テストパタンを発生し続けている。
【０１２９】
パタン発生器２１〜２３により発生したテストパタンは、スキャンチェーン４００を通して、論理回路４１〜４３に入力される（ステップＳ１８）。この場合、パタン圧縮器３０〜３３は、既に、ステップＳ１３〜Ｓ１６において、その機能を停止しているため、パタン発生器２１〜２３により発生しているテストパタンに基づいた論理回路４１〜４３の結果は、自己診断に用いられない。そのため、ここで、パタン発生器２１〜２３が発生しているテストパタンは、無効なデータと見なすことができる。また、このとき、パタン発生器２０は停止状態にあるため、論理回路４０には常に固定値が入力されている。
【０１３０】
次に、ステップＳ１９において、テスト終了か否かの判定が行われる。ここでの判定に基づいて、パタン発生器２１を停止されるか否かが決定される（停止判定）。すなわち、ＰＲＰＧ停止回路２Ａ１１における比較器２Ａ２２が、ＰＲＰＧ停止回路２Ａ１１におけるカウンタ２Ａ２０のカウント値と、ＰＲＰＧ停止回路２Ａ１１におけるレジスタ２Ａ２１に格納されている初期値との比較を行う。比較の結果、一致していなければ、一致するまで、ステップＳ１８とＳ１９を繰り返す。比較の結果、一致すれば、ステップＳ２０において、ＰＲＰＧ停止回路２Ａ１１におけるフリップフロップ２Ａ２３がハイレベルを出力する。これにより、ＰＲＰＧ停止回路２Ａ１１は、ロウレベルのＰＲＰＧ制御信号２０１を出力する。その結果、ＰＲＰＧ制御信号２０１を受けるパタン発生器２１が停止する。なお、図９では、ステップＳ２０を、ＰＲＰＧ制御信号２０１を無効に設定と記載している。
【０１３１】
ＰＲＰＧ停止回路２Ａ１２におけるレジスタ２Ａ２１に設定した初期値が、最も長い時間に相当する値であるため、ＰＲＰＧ停止回路２Ａ１２におけるフリップフロップ２Ａ２３は、未だロウレベルを出力している。そのため、パタン発生器２２とパタン発生器２３は動作しており、テストパタンを継続して発生している。そのため、スキャンチェーン４００を通して、パタン発生器２２、２３により発生したテストパタンは、論理回路４２、４３に、無効なデータとして供給され続け、論理回路４２、４３は、この無効なデータに従って動作している（ステップＳ２１）。
【０１３２】
次に、ステップＳ２２において、再びテスト終了か否かの判定が行われる。ここでの判定に基づいて、パタン発生器２２を停止されるか否かが決定される（停止判定）。すなわち、ＰＲＰＧ停止回路２Ａ１２における比較器２Ａ２２が、ＰＲＰＧ停止回路２Ａ１２におけるカウンタ２Ａ２０のカウント値と、ＰＲＰＧ停止回路２Ａ１２におけるレジスタ２Ａ２１に格納されている初期値との比較を行う。比較の結果、一致していなければ、一致するまで、ステップＳ２１とＳ２２を繰り返す。比較の結果、一致すれば、ステップＳ２３において、ＰＲＰＧ停止回路２Ａ１２におけるフリップフロップ２Ａ２３がハイレベルを出力する。これにより、ＰＲＰＧ停止回路２Ａ１２は、ロウレベルのＰＲＰＧ制御信号２０２を出力する。その結果、ＰＲＰＧ制御信号２０２を受けるパタン発生器２２が停止する。なお、図９では、ステップＳ２３を、ＰＲＰＧ制御信号２０２を無効に設定と記載している。
【０１３３】
この実施の形態２においては、図６に示したように、ＰＲＰＧ制御信号１０２が、ＰＲＰＧ制御信号２０３として、パタン発生器２３に供給されている。そのため、パタン発生器２３は動作しており、テストパタンを継続して発生している。そのため、スキャンチェーン４００を通して、パタン発生器２３により発生したテストパタンは、論理回路４３に、無効なデータとして供給され続け、論理回路４３は、この無効なデータに従って動作している（ステップＳ２４）。
【０１３４】
ステップＳ２５もテスト終了か否かを判定するステップである。このステップＳ２５で行われる判定（停止判定）は、ＬＢＩＳＴ制御回路１０からのＰＲＰＧ制御信号１０２が停止状態になるまで行われる。すなわち、ＬＢＩＳＴ制御回路１０からのＰＲＰＧ制御信号１０２がロウレベルとなるまで、ステップＳ２４とＳ２５が繰り返される。ＬＢＩＳＴ制御回路１０が、停止状態を示すロウレベルのＰＲＰＧ制御信号１０２を、ＰＲＰＧ制御回路２Ａに供給することにより、ステップＳ２６において、ＰＲＰＧ制御回路２Ａは、ロウレベルのＰＲＰＧ制御信号２０３を出力し、パタン発生器２３が停止する。なお、図９では、ステップＳ２６を、ＰＲＰＧ制御信号２０３を無効に設定と記載している。
【０１３５】
ＰＲＰＧ制御信号１０２を停止状態にすることにより、ＬＢＩＳＴ制御回路１０の制御によるパタン発生を、ここで完了することを意味している。従って、ＬＢＩＳＴ制御回路１０がＰＲＰＧ制御信号１０２によって、停止状態にするまでの動作は、ＬＢＩＳＴ制御回路１０による制御とは、全く独立して行われていたことを意味している。
【０１３６】
最後に、ステップＳ２７において、ＰＲＰＧ／ＭＩＳＲチェーン１０１を通して、パタン圧縮回路３０、３１、３２、３３に格納されたテスト結果をＬＢＩＳＴ制御回路１０に回収し、期待値と照合して、終了する。
【０１３７】
このように、この実施の形態２においては、ＰＲＰＧ制御回路２Ａに設けられているＰＲＰＧ停止回路２Ａ１０〜２Ａ１２が、ＬＢＩＳＴ制御回路１０による制御とは独立して、パタン発生器２０〜２２を１個ずつ停止させている。ここでの停止は、論理回路４０〜４２に供給される信号を、時間的に変化させず、固定にすることを意味している。
【０１３８】
＜半導体装置の動作波形＞
図３（Ａ）〜（Ｊ）は、図２のフローチャート図で説明した動作を行った場合の半導体装置の波形を示した波形図である。図３において、横軸は時間の経過を表しており、縦軸は、電圧を示している。図３（Ａ）および（Ｂ）は、ＬＢＩＳＴ制御回路１０が出力するＰＲＰＧ制御信号１０２およびＭＩＳＲ制御信号１０３の波形を示している。また、図３（Ｃ）、（Ｅ）、（Ｇ）および（Ｉ）は、ＰＲＰＧ制御回路２Ａが出力するＰＲＰＧ制御信号２００、２０１、２０２および２０３の波形を示しており、図３（Ｄ）、（Ｆ）、（Ｈ）および（Ｊ）は、ＭＩＳＲ制御回路３Ａが出力するＭＩＳＲ制御信号３００、３０１、３０２および３０３の波形を示している。
【０１３９】
図３において、横軸に沿って添えられた符号Ｓ０〜Ｓ２７は、図２で説明されたステップＳ０〜Ｓ２７に対応している。図３において、Ｓ５からＳ１１までの期間が、自己診断動作において有効なテスト範囲となっている。この期間、論理回路４０〜４３は、パタン発生器２０〜２３が発生したテストパタンによりランダムな動作を繰り返し実行し、電力を消費している。この期間での、論理回路４０〜４３の動作した結果が、パタン圧縮器３０〜３３により圧縮され、ＬＢＩＳＴ制御回路１０に供給され、ＬＢＩＳＴ制御回路１０において期待値と照合される。
【０１４０】
論理回路４０は、図３（Ｃ）に示されているように、Ｓ１１において、対応するパタン発生器２０が停止するため、Ｓ５からＳ１１の期間、動作し、停止する。
【０１４１】
一方、論理回路４１については、図３（Ｅ）に示されているように、Ｓ１８の期間においても、対応するＰＲＰＧ制御信号２０１がハイレベルである。そのため、論理回路４１に対応するパタン発生器２１が、Ｓ１８の期間においても動作し、パタン発生器２１により発生したテストパタンにより、論理回路４１は、ランダムな動作を繰り返し実行し、電力を消費している。
【０１４２】
同様に、論理回路４２については、図３（Ｇ）に示されているように、Ｓ１８〜Ｓ２１の期間においても、対応するＰＲＰＧ制御信号２０２がハイレベルである。そのため、対応するパタン発生器２２がＳ１８〜Ｓ２１の期間においても動作し、この期間においても、論理回路４２は、パタン発生器２２により発生したテストパタンによりランダムな動作を繰り返し実行し、電力を消費している。さらに、論理回路４３については、図３（Ｉ）に示されているように、Ｓ１８〜Ｓ２４の期間においても、対応するＰＲＰＧ制御信号２０３がハイレベルである。そのため、対応するパタン発生器２３は、Ｓ１８〜Ｓ２４の期間においても動作し、論理回路４３は、パタン発生器２２により発生したテストパタンにより、Ｓ１８〜Ｓ２４の期間においても、ランダムな動作を繰り返し実行し、電力を消費している。
【０１４３】
このように、動作している論理回路４０〜４３の数を順次減らすことにより、半導体装置１Ａに流れる電流の変化率を低減することが可能となる。
【０１４４】
一方、ＭＩＳＲ制御回路３Ａは、図３に示すように、ＭＩＳＲ制御信号３００〜３０３を同時にロウレベルからハイレベルへ変化させ、また同時にハイレベルからロウレベルへ変化させている。これにより、パタン圧縮器３０〜３３が圧縮の処理（圧縮処理）を開始する開始タイミングは、互いに同じになるように制御され、圧縮処理を停止する停止タイミングも互いに同じになるように制御されている。
【０１４５】
＜半導体装置の電流＞
図４は、実施の形態２に係わる半導体装置１Ａにおける自己診断動作のときの電流波形を模式的に示した波形図である。同図において、横軸は時間の経過を表しており、縦軸は消費電流の大きさを示している。消費電流は、上に行けば大きくなるものとする。横軸に沿って添えられた符号Ｓ０〜Ｓ２７は、図２のフローチャート図で説明されたステップＳ０〜Ｓ２７に対応している。
【０１４６】
消費電流は、テストパタンの供給が始まるＳ５から徐々に増し、Ｓ１０からＳ１１の繰り返し動作が発生している時刻にピークに達する。その後、Ｓ１７のイベントによりＰＲＰＧ制御信号２００がロウレベルになり、パタン発生器２０が停止状態になったあたりで、論理回路４０で消費されていた電力分の電流が減少する。これは、パタン発生器２０やパタン圧縮器３０の動作が停止することにより、論理回路４０の論理値変化が発生しなくなるためである。その後、所定の時間間隔があけて、論理回路４１、４２、４３を、論理回路４０と同じ手順で停止していく。この結果、消費電流は、Ｓ１８、Ｓ２１、Ｓ２４、Ｓ２７の順で階段状に減っている。ここでの所定の時間間隔は、ＰＲＰＧ停止回路２Ａ１０〜２Ａ１２のそれぞれにおけるレジスタ２Ａ２１に格納した値の差分に対応する。
【０１４７】
図５は、単位時間当たりの電流変動を示した波形図である。同図において、横軸は時間の経過を表しており、縦軸は電流変動の大きさを示している。中心線は０として電流の変動が無いことを示している。電流が増えれば上に伸び、電流が減れば下に伸びるものとする。横軸に沿って添えられた符号Ｓ０〜Ｓ２７は、図２のフローチャート図で説明したステップＳ０〜Ｓ２７に対応している。
【０１４８】
図５と図２８とを比較すると、実施の形態２に係わる半導体装置１Ａでは、単位時間当たりの電流値の変化率（ｄｉ／ｄｔ）が、低く抑えられ、許容値上限および許容値下限との間に納まっていることがわかる。ここでも、許容値は、例えば、８０ｍＡ／２０ｕｓである。
【０１４９】
また、この実施の形態２によれば、半導体装置の面積が増加するのを抑制することが可能である。例えば、実施の形態１で述べた半導体装置１Ｅでは、パタン発生器２０〜２３およびパタン圧縮器３０〜３３に対応した複数のＬＢＩＳＴ制御回路１０〜１３を設けていた。また、半導体装置１Ｅでは、自己診断動作のときに、論理回路４０〜４３間を伝達する境界信号の電圧を固定する遮断回路５０〜５３が設けられていた。この遮断回路５０〜５３は、境界信号の数に比例して、それにより占有される面積が増える。この実施の形態２においては、ＬＢＩＳＴ制御回路の数を減らすことが可能であり、また遮断回路を設けなくて済むため、半導体装置の面積が増加することを抑制することが可能であり、半導体装置の価格が上昇するのも抑制することが可能となる。
【０１５０】
さらに、実施の形態１で述べた半導体装置１Ｅでは、自己診断動作のとき、遮断回路により境界信号の電圧を固定してしまうため、境界信号を含めた診断を行うことができない。これに対して、実施の形態２においては、遮断回路が必要とされないため、自己診断の品質低下を低減することが可能である。
【０１５１】
（実施の形態３）
図８は、実施の形態３に係わる半導体装置の構成を示すブロック図である。この実施の形態３に係わる半導体装置１Ｂは、図１に示した半導体装置１Ａと類似しているので、ここでは、相違点を主に説明する。先ず、図１に示した半導体装置１Ａとこの実施の形態３に係わる半導体装置１Ｂとの間で、相違するのは、ＰＲＰＧ制御回路およびＭＩＳＲ制御回路の構成である。実施の形態３においては、ＰＲＰＧ制御回路２Ａの代わりにＰＲＰＧ制御回路２Ｂが用いられ、ＭＩＳＲ制御回路３Ａの代わりにＭＩＳＲ制御回路３Ｂが用いられている。次に、ＰＲＰＧ制御回路２ＢおよびＭＩＳＲ制御回路３Ｂについて説明する。
【０１５２】
＜ＰＲＰＧ制御回路２Ｂの構成＞
図１３は、実施の形態３に係わるＰＲＰＧ制御回路２Ｂの構成を示すブロック図である。ＰＲＰＧ制御回路２Ｂは、制御回路２Ｂ４２−Ｃ、ＰＲＰＧ起動回路２Ｂ１０〜２Ｂ１２およびＰＲＰＧ停止回路２Ｂ２０〜２Ｂ２２を備えている。
【０１５３】
制御回路２Ｂ４２−Ｃは、図６で説明した制御回路２Ａ２４−Ｃと同様に、２入力アンド回路２Ｂ４３−Ａ、２入力オア回路２Ｂ４３−Ｏおよびフリップフロップ２Ｂ４２とを有している。ここで、２入力アンド回路２Ｂ４３−Ａは、図６の２入力アンド回路２Ａ２５−Ａに相当し、２入力オア回路２Ｂ４３−Ｏは、図６の２入力オア回路２Ａ２５−Ａに相当し、フリップフロップ２Ｂ４２は、図６のフリップフロップ２Ａ２４に相当する。なお、図１３において、２Ｂ４３は、２入力アンド回路２Ｂ４３−Ａと２入力オア回路２Ｂ４３−Ｏにより構成された組合せ回路を示しており、図６の組合せ回路２Ａ２５に相当する。
【０１５４】
図６と同様に、２入力アンド回路２Ｂ４３−Ａの一方の入力には、○印で示されたインバータ回路を介してリセット信号１０６が供給され、２入力オア回路２Ｂ４３−Ｏの一方の入力には、ＰＲＰＧ制御信号１０２が供給され、２入力オア回路２Ｂ４３−Ｏの出力は、２入力アンド回路２Ｂ４３−Ａの他方の入力に供給されている。また、２入力アンド回路２Ｂ４３−Ａの出力は、フリップフロップ２Ｂ４２の入力に供給され、フリップフロップ２Ｂ４２の出力は、２入力オア回路２Ｂ４３−Ｏの他方の入力に供給されている。フリップフロップ２Ｂ４２の出力が、制御回路２Ｂ４２−Ｃの出力となる。
【０１５５】
制御回路２Ｂ４２−Ｃの動作は、図６で説明した制御回路２Ａ２４−Ｃと同じであり、リセット信号１０６が、リセット状態を示すハイレベルのとき、フリップフロップ２Ｂ４２は、ロウレベルの制御信号を出力する。一方、リセット信号１０６が、リセット解除を意味するロウレベルにされている期間において、ＬＢＩＳＴ制御回路１０からのＰＲＰＧ制御信号１０２がハイレベルとなることにより、フリップフロップ２Ｂ４２は、ハイレベルの制御信号を出力し、維持する。すなわち、このフリップフロップ２Ｂ４２は、ＬＢＩＳＴ制御回路１０からＰＲＰＧ制御信号１０２が起動状態を示すハイレベルになったとき、ハイレベルを出力し、リセット信号１０６がハイレベルになるまで、ハイレベルを維持する。これにより、フリップフロップ２Ｂ４２は、図６に示したフリップフロップ２Ａ２４と同様に、ＰＲＰＧ制御回路２Ｂによる制御の開始と終了を司っている。
【０１５６】
ＰＲＰＧ起動回路およびＰＲＰＧ停止回路は、半導体装置１Ｂに搭載するパタン発生器の数に応じて増減し、最大でパタン発生器の数と同じだけ必要となるが、その数を上限として制限するものではない。
【０１５７】
この実施の形態３においては、図８に示すように、半導体装置１Ｂは、４個のパタン発生器２０〜２３を有しているが、ＰＲＰＧ制御回路２Ｂは、３個のＰＲＰＧ起動回路２Ｂ１０〜２Ｂ１２と、３個のＰＲＰＧ停止回路２Ｂ２０〜２Ｂ２２とを備えている。ここで、ＰＲＰＧ起動回路２Ｂ１０は、パタン発生器２３に対応し、ＰＲＰＧ停止回路２Ｂ２０は、パタン発生器２０に対応している。また、ＰＲＰＧ起動回路２Ｂ１１とＰＲＰＧ停止回路２Ｂ２２は、パタン発生器２２に対応し、ＰＲＰＧ起動回路２Ｂ１２とＰＲＰＧ停止回路２Ｂ２１は、パタン発生器２１に対応している。このように、パタン発生器に対して、ＰＲＰＧ起動回路だけを対応させてもよいし、ＰＲＰＧ停止回路だけを対応させても良いし、さらにはＰＲＰＧ起動回路とＰＲＰＧ停止回路とを組み合わせて対応させても良い。
【０１５８】
さらに、複数個のパタン発生器に対して、１個のＰＲＰＧ起動回路または１個のＰＲＰＧ停止回路を対応させるようにしてもよい。また、複数個のパタン発生器に対して、１個のＰＲＰＧ起動回路と１個のＰＲＰＧ停止回路との組合せを、対応させるようにしてもよい。
【０１５９】
ＰＲＰＧ起動回路２Ｂ１０〜２Ｂ１２のそれぞれは、互いに同じ構成を有しているため、図１３には、代表としてＰＲＰＧ起動回路２Ｂ１０の構成が示されている。また、ＰＲＰＧ停止回路２Ｂ２０〜２Ｂ２２も、互いに同じ構成を有しているため、図１３では、代表としてＰＲＰＧ停止回路２Ｂ２０の構成が示されている。
【０１６０】
ＰＲＰＧ停止回路２Ｂ２０の構成は、図６において説明したＰＲＰＧ停止回路２Ａ１０と同じ構成を有している。そのため、ＰＲＰＧ停止回路２Ｂ２０〜２Ｂ２２の構成および動作については、省略する。
【０１６１】
次に、ＰＲＰＧ起動回路について、代表としてその構成を示したＰＲＰＧ起動回路２Ｂ１０を説明する。
【０１６２】
ＰＲＰＧ起動回路２Ｂ１０は、カウンタ２Ｂ３０、レジスタ２Ｂ３１、比較器２Ｂ３２、フリップフロップ２Ｂ３３、組合せ回路２Ｂ３４および２入力アンド回路２Ｂ３５を有している。ここで、組合せ回路２Ｂ３４は、２入力アンド回路２Ｂ３４−Ａと２入力オア回路２Ｂ３４−Ｏとを有している。
【０１６３】
レジスタ２Ｂ３１は、初期値として時間に関する値が設定され、カウンタ２Ｂ３０は、クロック信号１０４をカウントすることによりカウント値を出力する。レジスタ２Ｂ３１に設定された値（初期値）とカウンタ２Ｂ３０のカウント値とは、比較器２Ｂ３２において、比較される。この比較により、一致した場合に、比較器２Ｂ３２は、ハイレベルを出力し、一致しない場合には、ロウレベルを出力する。比較器２Ｂ３２の出力は、２入力オア回路２Ｂ３４−Ｏの一方の入力に供給される。この２入力オア回路２Ｂ３４−Ｏの出力は、その一方に入力、上記した制御回路２Ｂ４２−Ｃからの出力が供給される２入力アンド回路２Ｂ３４−Ａの他方の入力に供給されている。この２入力アンド回路２Ｂ３４−Ａの出力は、フリップフロップ２Ｂ３３の入力に供給され、フリップフロップ２Ｂ３３の出力は、２入力アンド回路２Ｂ３５の一方の入力に供給される。
【０１６４】
フリップフロップの出力は、２入力オア回路２Ｂ３４−Ｏの他方の入力に供給されるとともに、ＭＩＳＲ起動信号１０９として出力される。また、２入力アンド回路２Ｂ３５の他方の入力には、ＰＲＰＧ制御信号１０２が供給され、この２入力アンド回路２Ｂ３５の出力は、ＰＲＰＧ制御信号２０３として出力される。
【０１６５】
リセット信号１０６がロウレベルとされ、ＬＢＩＳＴ制御回路１０がＰＲＰＧ制御信号１０２を、起動を示すハイレベルにすると、図６において説明したのと同様に、制御回路２Ｂ４２−Ｃの出力はハイレベルとなる。カウンタ２Ｂ３０は、入力されるクロック信号１０４に同期して、カウントアップもしくはカウントダウンをすることにより、カウント値を出力する。レジスタ２Ｂ３１には、初期値として時間に関する任意の値が格納されている。
【０１６６】
レジスタ２Ｂ３１に格納されている初期値とカウンタ２Ｂ３０のカウント値とが一致すると、比較器２Ｂ３２は、ハイレベルを出力する。制御回路２Ｂ４２−Ｃの出力であるフリップフロップ２Ｂ４２の出力が、ハイレベルであるため、比較器２Ｂ３２のハイレベルは、２入力オア回路２Ｂ３４−Ｏおよび２入力アンド回路２Ｂ３４−Ａを通して、フリップフロップ２Ｂ３３の入力に伝えられる。これにより、フリップフロップ２Ｂ３３は、ハイレベルに相当する論理値“１”を取り込み、格納するとともに、ハイレベルを出力する。このとき、ＰＲＰＧ制御信号１０２は、起動を示すハイレベルであるため、２入力アンド回路２Ｂ３５は、ハイレベルのＰＲＰＧ制御信号２０３を出力する。
【０１６７】
ＰＲＰＧ制御信号２０３がハイレベルとなることにより、このＰＲＰＧ起動回路２Ｂ１０に対応したパタン発生器２３に、ハイレベルのＰＲＰＧ制御信号２０３が供給され、パタン発生器２３が起動され、動作を開始し、テストパタンを発生する。パタン発生器２３の起動状態は、リセット信号１０６をハイレベルにして、フリップフロップ２Ｂ４２の出力をロウレベルにするまで継続する。
【０１６８】
一方、レジスタ２Ｂ３１に格納されている初期値に、カウンタ２Ｂ３０のカウント値が到達していない場合には、比較器２Ｂ３２はロウレベルを出力する。この比較器２Ｂ３２のロウレベルが、フリップフロップ２Ｂ３３の入力に伝達され、フリップフロップ２Ｂ３３は、ロウレベルを継続して出力する。その結果、ＰＲＰＧ制御信号２０３はロウレベルとなり、対応するパタン発生器２３は起動されない。
【０１６９】
すなわち、ＰＲＰＧ制御信号１０２をハイレベルにすることにより、起動されてから対応するパタン発生器２３を起動するまでの時間（起動タイミング）を、レジスタ２Ｂ３１へ格納する値によって定めることができる。起動タイミングを定めることができるため、パタン発生器２３から論理回路４３へのテストパタンの供給を開始する供給開始タイミングを定めることができる。
【０１７０】
また、ＰＲＰＧ制御信号２０３がハイレベルになるとき、ＭＩＳＲ起動信号１０９もハイレベルになる。このＭＩＳＲ起動信号１０９は、ＭＩＳＲ制御回路３Ｂに供給される。あとで図１４を用いて説明するが、ＭＩＳＲ起動信号１０９がハイレベルとなることにより、パタン圧縮器３０〜３３は起動可能となる。
【０１７１】
ＰＲＰＧ起動回路２Ｂ１１および２Ｂ１２についても、ＰＲＰＧ起動回路２Ｂ１０と同様に、それぞれにおけるレジスタ２Ｂ３１に、時間に関する値を初期値として格納する。ＰＲＰＧ起動回路２Ｂ１０〜２Ｂ１２のそれぞれにおけるレジスタ２Ｂ３１に格納する時間に関する値を、互いに異なる値とすることにより、論理回路４１〜４３間で、テストパタンの供給開始タイミングを異ならせることができる。
【０１７２】
この実施の形態においては、パタン圧縮器３０〜３３は、パタン発生器２０〜２３のうち、最も遅くパタン発生器を起動させるＰＲＰＧ起動回路からのＭＩＳＲ起動信号が、ＭＩＳＲ制御回路３Ｂに供給される。図１３に示した構成では、ＰＲＰＧ起動回路２Ｂ１０におけるレジスタ２Ｂ３１に初期値として格納された値が、最も長い時間に対応する値とされている。すなわち、ＰＲＰＧ起動回路２Ｂ１１におけるレジスタ２Ｂ３１に初期値として格納された値は、ＰＲＰＧ起動回路２Ｂ１０におけるレジスタ２Ｂ３１に格納された値よりも短い時間に対応する値とされている。また、ＰＲＰＧ起動回路２Ｂ１２におけるレジスタ２Ｂ３１に初期値として格納された値は、ＰＲＰＧ起動回路２Ｂ１１におけるレジスタ２Ｂ３１に格納された値よりも短い時間に対応する値とされている。そのため、ＰＲＰＧ起動回路２Ｂ１１および２Ｂ１２から出力されるＭＩＳＲ起動信号２Ｂ１１−１０９、２Ｂ１２−１０９は、ＭＩＳＲ制御回路３Ｂに供給されない。
【０１７３】
しかしながら、例えば、ＭＩＳＲ起動信号１０９、２Ｂ１１−１０９および２Ｂ１２−１０９間で論理積の演算を行い、その演算結果をＭＩＳＲ起動信号１０９としてもよい。
【０１７４】
この実施の形態３においては、論理回路へのテストパタンの供給開始タイミングが、この論理回路に対応したＰＲＰＧ起動回路により定められる。また、論理回路へのテストパタンの供給停止タイミングが、この論理回路に対応したＰＲＰＧ停止回路により定められる。さらに、論理回路に対してＰＲＰＧ起動回路とＰＲＰＧ停止回路とを組み合わせて対応させることにより、当該論理回路へ供給されるテストパタンの供給開始タイミングと停止タイミングとをそれぞれ定めることができる。
【０１７５】
次に、ＰＲＰＧ起動回路とＰＲＰＧ停止回路とを組み合わせた例を説明する。図１３においては、ＰＲＰＧ起動回路２Ｂ１１とＰＲＰＧ停止回路２Ｂ２２とが組み合わされており、パタン発生器２２に対応している。また、ＰＲＰＧ起動回路２Ｂ１２とＰＲＰＧ停止回路２Ｂ２１とが組み合わされており、パタン発生器２１に対応している。
【０１７６】
ＰＲＰＧ起動回路２Ｂ１２からは、対応するパタン発生器２１の起動タイミングを定める制御信号２Ｂ１２−２０１をＰＲＰＧ停止回路２Ｂ２１へ供給する。ここで、制御信号２Ｂ２１−２０１は、ＰＲＰＧ起動回路２Ｂ１２における２入力アンド回路２Ｂ３５から出力される制御信号である。ＰＲＰＧ停止回路２Ｂ２１は、このＰＲＰＧ停止回路２Ｂ２１を構成する２入力アンド回路２Ａ２７の他方の入力に、ＰＲＰＧ制御信号１０２の代わりに、ＰＲＰＧ停止回路２Ｂ１２からの制御信号２Ｂ１２−２０１が供給される。ＰＲＰＧ制御信号１０２の代わりに、制御信号２Ｂ１２−２０１が供給されることを除いて、ＰＲＰＧ停止回路２Ｂ２０と同様に、ＰＲＰＧ停止回路２Ｂ２１におけるカウンタ２Ａ２０にはクロック信号１０４が供給され、２入力アンド回路２Ａ２６−Ａの一方の入力には、フリップフロップ２Ｂ４２からの出力が供給される。
【０１７７】
ＰＲＰＧ起動回路２Ｂ１２におけるレジスタ２Ｂ３１に格納されている初期値と、カウンタ２Ｂ３０のカウント値とが一致することにより、ＰＲＰＧ起動回路２Ｂ１２は、制御信号２Ｂ１２−２０１をロウレベルからハイレベルへ変化させる。一方、ＰＲＰＧ停止回路２Ｂ２１においては、ＰＲＰＧ停止回路２Ｂ２１におけるレジスタ２Ａ２１の初期値とカウンタ２Ａ２０のカウント値が一致するまで、フリップフロップ２Ａ２３の出力がロウレベルである。そのため、制御信号２Ｂ１２−２０１がロウレベルからハイレベルへ変化することにより、ＰＲＰＧ停止回路２Ｂ２１の出力であるＰＲＰＧ制御信号２０１は、ロウレベルからハイレベルへ変化する。ＰＲＰＧ停止回路２Ｂ２０におけるレジスタ２Ａ２１の初期値とカウンタ２Ａ２０のカウント値とが一致すると、フリップフロップ２Ａ２３の出力がハイレベルとなるため、ＰＲＰＧ制御信号２０１は、ハイレベルからロウレベルへ変化する。これにより、対応するパタン発生器２１は、ＰＲＰＧ起動回路２Ｂ１２におけるレジスタ２Ｂ３１に格納されている値により定まるタイミングで、起動され、ＰＲＰＧ停止回路２Ｂ２１におけるレジスタ２Ａ２１に格納されている値により定まるタイミングで停止する。すなわち、パタン発生器２１に対応する論理回路４１に供給されるテストパタンの供給開始タイミングと停止タイミングを制御することが可能となる。
【０１７８】
ＰＲＰＧ起動回路２Ｂ１１とＰＲＰＧ停止回路２Ｂ２２についても、ＰＲＰＧ起動回路２Ｂ１２とＰＲＰＧ停止回路２Ｂ２１と同様である。
【０１７９】
この実施の形態３においても、ＰＲＰＧ起動回路２Ｂ１０〜２Ｂ１２およびＰＲＰＧ停止回路２Ｂ２０〜２Ｂ２２のそれぞれにおけるレジスタ２Ｂ３１および２Ａ２１は、初期値を設定するとき、直列的に接続される。実施の形態２で述べたように、順次レジスタに初期値が設定される。図１３においてはＰＲＰＧ停止回路２Ｂ２０におけるレジスタ２Ａ２１の出力が、ＰＲＰＧ起動回路２Ｂ１２のレジスタ２Ｂ３１の入力に接続され、ＰＲＰＧ起動回路２Ｂ１２のレジスタ２Ｂ３１の出力が、ＰＲＰＧ停止回路２Ｂ２１のレジスタ２Ａ２１の入力に接続される。同様に、ＰＲＰＧ停止回路２Ｂ２１のレジスタ２Ａ２１の出力が、ＰＲＰＧ起動回路２Ｂ１１のレジスタ２Ｂ３１の入力に接続され、ＰＲＰＧ起動回路２Ｂ１１のレジスタ２Ｂ３１の出力が、ＰＲＰＧ停止回路２Ｂ２２のレジスタ２Ａ２１の入力に接続され、ＰＲＰＧ停止回路２Ｂ２２のレジスタ２Ａ２１の出力が、ＰＲＰＧ起動回路２Ｂ１０のレジスタ２Ｂ３１の入力に接続される。
【０１８０】
図１３においては、レジスタへ初期値を設定する際のＰＲＰＧ起動回路２Ｂ１２のレジスタ２Ｂ３１から、ＰＲＰＧ停止回路２Ｂ２１のレジスタ２Ｂ３１へ伝達される信号、およびＰＲＰＧ起動回路２Ｂ１１のレジスタ２Ｂ３１から、ＰＲＰＧ停止回路２Ｂ２２のレジスタ２Ｂ３１へ伝達される信号が、１０５Ｍとして示されている。同様に、レジスタへ初期値を設定する際のＰＲＰＧ停止回路２Ｂ２１のレジスタ２Ａ２１から、ＰＲＰＧ起動回路２Ｂ１１のレジスタ２Ｂ３１へ伝達される信号、およびＰＲＰＧ停止回路２Ｂ２２のレジスタ２Ａ２１から、ＰＲＰＧ起動回路２Ｂ１０のレジスタ２Ｂ３１へ伝達される信号も、１０５Ｍとして示されている。
【０１８１】
＜ＭＩＳＲ制御回路３Ｂの構成＞
図１４は、実施の形態３に係わるＭＩＳＲ制御回路の構成を示すブロック図である。ＭＩＳＲ制御回路３Ｂは、ＭＩＳＲ起動回路３Ｂ１０、２入力アンド回路３Ｂ２６、２入力排他的論理和回路３Ｂ２７、２入力ノア回路３Ｂ２８および２入力オア回路３Ｂ２９を備えている。
【０１８２】
ＭＩＳＲ制御回路３Ｂには、図１３に示したＰＲＰＧ制御回路２Ｂから、ＭＩＳＲ起動信号１０９、レジスタ設定信号１０５およびＭＩＳＲ停止信号１０８が供給される。また、ＬＢＩＳＴ制御回路１０から、ＭＩＳＲ制御信号１０３、リセット信号１０６およびスキャンイネーブル信号１０７Ｌが供給される。
【０１８３】
ＰＲＰＧ制御回路２Ｂから供給されるＭＩＳＲ停止信号１０８がハイレベルとなることにより、○印で示したインバータ回路により、ＭＩＳＲ停止信号１０８は位相反転され、２入力アンド回路３Ｂ２６の入力に供給される。そのため、２入力アンド回路３Ｂ２６の出力は、ロウレベルとなる。この２入力アンド回路３Ｂ２６の出力は、ＭＩＳＲ制御信号３００〜３０３としてパタン圧縮器３０〜３３に供給されている。それぞれのパタン圧縮器３０〜３３は、ＭＩＳＲ制御信号３００〜３０３がロウレベルとなることにより、その機能を停止する。ＭＩＳＲ停止信号１０８がハイレベルに維持されているときは、ＭＩＳＲ制御信号３００〜３０３がロウレベルに維持される。そのため、それぞれのパタン圧縮器３０〜３３は、機能を停止した状態を継続することになる。
【０１８４】
一方、ＭＩＳＲ停止信号１０８がロウレベルのときには、２入力アンド回路３Ｂ２６は、ＭＩＳＲ起動回路３Ｂ２８の出力に従ったＭＩＳＲ制御信号３００〜３０３を出力する。すなわち、パタン圧縮器３０〜３３は、ＭＩＳＲ起動回路３Ｂ２８によって制御されることになる。
【０１８５】
次に、ＭＩＳＲ起動回路３Ｂ１０について、説明する。ＭＩＳＲ起動回路３Ｂ１０は、カウンタ３Ｂ２０、レジスタ３Ｂ２１、比較器３Ｂ２２、フリップフロップ３Ｂ２３、組合せ回路３Ｂ２４および２入力アンド回路３Ｂ２５を有している。ここで、組合せ回路３Ｂ２４は、２入力アンド回路３Ｂ２４−Ａと２入力オア回路３Ｂ２４−Ｏとを有しており、２入力アンド回路３Ｂ２４−Ａの一方の入力には、ＭＩＳＲ起動信号１０９が供給され、その他方の入力には２入力オア回路３Ｂ２４−Ｏの出力が供給されている。また、２入力オア回路３Ｂ２４−Ｏの一方の入力には比較器３Ｂ２２の出力が供給され、その他の入力にはフリップフロップ３Ｂ２３の出力が供給されている。さらに、２入力アンド回路３Ｂ２４−Ａの出力はフリップフロップ３Ｂ２３の入力に供給されている。
【０１８６】
カウンタ３Ｂ２０は、入力されるクロック信号１０４に同期して、カウントアップもしくはカウントダウンし、カウント値を出力する。レジスタ３Ｂ２１には、時間に関する値が初期値として格納される。比較器３Ｂ２２は、カウンタ３Ｂ２０のカウント値とレジスタ３Ｂ２１に格納されている値とを比較する。比較して、一致する場合、比較器３Ｂ２１は、ハイレベルを出力する。一方、カウント値が、レジスタ３Ｂ２１に格納されている値に到達していない場合には、比較器３Ｂ２２はロウレベルを出力する。
【０１８７】
図１３に示したＰＲＰＧ制御回路２ＢからのＭＩＳＲ起動信号１０９がハイレベルの場合、カウンタ３Ｂ２０のカウント値とレジスタ３Ｂ２１に格納されている値とが一致していれば、比較器３Ｂ２２から出力されているハイレベルは、２入力オア回路３Ｂ２４−Ｏおよび２入力アンド回路３Ｂ２４を通して、フリップフロップ３Ｂ２３の入力に伝達される。フリップフロップ３Ｂ２３は、このハイレベルを取り込み、格納するとともに、ハイレベルを出力する。このとき、ＬＢＩＳＴ制御回路１０は、ハイレベルのＭＩＳＲ制御信号１０３を出力しているため、２入力アンド回路３Ｂ２５は、ＭＩＳＲ起動回路３Ｂ１０の出力として、ハイレベルを出力する。ＭＩＳＲ起動回路３Ｂ１０からハイレベルが出力されることにより、２入力アンド回路３Ｂ２６は、ＭＩＳＲ制御信号３００〜３０３のそれぞれをロウレベルからハイレベルへ変化させる。ＭＩＳＲ制御信号３００〜３０３のこのハイレベルの状態は、リセット信号１０６によって、フリップフロップ２Ｂ４２（図１３）の状態が変更されるまで継続する。ＭＩＳＲ制御信号３００〜３０３がハイレベルとなることにより、パタン圧縮器３０〜３３のそれぞれが起動され、動作状態となる。
【０１８８】
一方、カウンタ３Ｂ２０のカウント値とレジスタ３Ｂ２１に格納されている値とが一致していなければ、比較器３Ｂ２２はロウレベルを出力する。これにより、ＭＩＳＲ起動回路３Ｂ１０はロウレベルを出力する。
【０１８９】
ここで、カウンタ３Ｂ２０は、例えば、図１３で示した複数のＰＲＰＧ起動回路またはＰＲＰＧ停止回路におけるカウンタと共有にしてもよい。
【０１９０】
また、レジスタ３Ｂ２１に時間に関する初期値を設定する際には、図１３において説明したレジスタ２Ａ２１、２Ｂ３１と直列に接続される。すなわち、図１３に示したレジスタ設定信号１０５を介して、レジスタ３Ｂ２１の入力は、図１３のレジスタ２Ｂ３１の出力に接続される。初期値を設定する際、レジスタ２Ａ２１、２Ｂ３１および３Ｂ２１によりシフトレジスタが構成され、ＬＢＩＳＴ制御回路１０から、時間に関する初期値が、順次、レジスタ２Ａ２１、２Ｂ３１および３Ｂ２１に供給され、設定される。なお、この実施の形態３においても、レジスタ３Ｂ２１の出力は、レジスタ設定信号１０５−Ｏを通して、ＬＢＩＳＴ制御回路１０へ供給されている。これにより、これらのレジスタ２Ａ２１、２Ｂ３１および３Ｂ２１に設定されている初期値を、これらのレジスタをシフトレジスタとして構成することにより、ＬＢＩＳＴ制御回路１０は、確認することが可能となる。
【０１９１】
＜半導体装置１Ｂの動作＞
図９は、半導体装置１Ｂの自己診断動作時の動作を示すフローチャート図である。図９では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが表されている。矢印が分岐しているところは並列した処理を示す。但し、ひし形のイベントについては、分岐を表し、下向きの矢印がイベントの内容に合致した場合の次処理を指している。
【０１９２】
図８に示した半導体装置１Ｂの自己診断動作が開始されると、ステップＳ２８において、ＬＢＩＳＴ制御回路１０からＰＲＰＧ／ＭＩＳＲチェーン１０１を通して、初期値がパタン発生器２０、２１、２２、２３およびパタン圧縮器３０、３１、３２、３３に設定される。また、このとき、ＬＢＩＳＴ制御回路１０は、レジスタ設定信号１０５−Ｉを通して、図１３に示したレジスタ２Ａ２１、２Ｂ３１および図１４に示したレジスタ３Ｂ２１のそれぞれに時間に関する初期値を供給し、設定する。レジスタ２Ａ２１、２Ｂ３１および３Ｂ２１のそれぞれに、初期値を設定する際には、先に説明したように、これらのレジスタ２Ａ２１、２Ｂ３１および３Ｂ２１は直列に接続され、シフトレジスタを構成する。
【０１９３】
以下の説明を分かり易くするために、各レジスタに設定されている初期値は、次のようになっているものとして説明する。ＰＲＰＧ起動回路２Ｂ１２のレジスタ２Ｂ３１には、起動に関して最も短い時間に相当する初期値が設定され、ＰＲＰＧ起動回路２Ｂ１１のレジスタ２Ｂ３１に、ＰＲＰＧ起動回路２Ｂ１２のレジスタ２Ｂ３１に設定されている時間よりも長い時間に相当する初期値が設定されている。また、ＰＲＰＧ起動回路２Ｂ１０のレジスタ２Ｂ３１には、ＰＲＰＧ起動回路２Ｂ１１のレジスタ２Ｂ３１に設定されている時間よりも長い時間に相当する初期値が設定されている。すなわち、ＰＲＰＧ起動回路２Ｂ１０のレジスタ２Ｂ３１には、起動に関して最も長い時間に相当する初期値が設定されている。
【０１９４】
また、ＰＲＰＧ停止回路２Ｂ２１におけるレジスタ２Ａ２１には、停止に関して最も短い時間に相当する初期値が設定され、ＰＲＰＧ停止回路２Ｂ２２におけるレジスタ２Ａ２１には、ＰＲＰＧ停止回路２Ｂ２１のレジスタ２Ａ２１に設定されている時間よりも長い時間に相当する初期値が設定されている。また、ＰＲＰＧ停止回路２Ｂ２０のレジスタ２Ａ２１には、ＰＲＰＧ停止回路２Ｂ２２のレジスタ２Ａ２１に設定されている時間よりも長い時間に相当する初期値が設定されている。すなわち、ＰＲＰＧ停止回路２Ｂ２０のレジスタ２Ａ２１には、停止に関して最も長い時間に相当する初期値が設定されている。
【０１９５】
また、停止に関して最も短い時間は、起動に関して最も長い時間よりも、長い時間となっている。
【０１９６】
また、図１４に示したレジスタ３Ｂ２１には、パタン圧縮器３０〜３３を動作させる時間に関する初期値を設定する。この実施の形態３においては、停止に関して最も短い時間と起動に関して最も長い時間との間の時間に相当する初期値を、レジスタ３Ｂ２１に設定する。
【０１９７】
初期値の設定が完了すると、初回のスキャンシフトを行うために、ＬＢＩＳＴ制御回路１０は、ＰＲＰＧ制御信号１０２がハイレベル（起動状態）にする。ＰＲＰＧ制御信号１０２は、ＰＲＰＧ制御回路２Ｂに入力されるが、リセットが解除されたときの状態であるため、ＰＲＰＧ起動回路２Ｂ１０のフリップフロップ２Ｂ３３は、初期状態のロウレベルを出力する。そのため、２入力アンド回路２Ｂ３５により、ハイレベルのＰＲＰＧ制御信号１０２はブロックされ、２入力アンド回路２Ｂ３５は、ロウレベルのＰＲＰＧ制御信号２０３を出力する。従って、このＰＲＰＧ起動回路２Ｂ１０に対応するパタン発生器２３には、ロウレベルのＰＲＰＧ制御信号２０３が入力されることになる。ＰＲＰＧ起動回路２Ｂ１１およびＰＲＰＧ起動回路２Ｂ１２についても、ＰＲＰＧ起動回路２Ｂ１０と同様に、ロウレベルの制御信号２Ｂ１１−２０２および２Ｂ１２−２０１を出力する。
【０１９８】
ＰＲＰＧ起動回路２Ｂ１０は、その後段に、ＰＲＰＧ停止回路が設けられていないため、その出力であるＰＲＰＧ制御信号２０３は、対応するパタン発生器２３に入力される（ステップＳ２９）。パタン発生器２３は、ＰＲＰＧ制御信号２０３がロウレベルであるため、ステップＳ２９においては、未だ動作が停止している。このとき、ＰＲＰＧ停止回路２Ｂ２１および２Ｂ２２においても、それぞれにおける２入力アンド回路２Ａ２７の他方の入力に、ロウレベルの制御信号２Ｂ１２−２０１および２Ｂ１２−２０２が供給されているため、ロウレベルのＰＲＰＧ制御信号２０１および２０２を出力する。そのため、ステップＳ２９においては、ＰＲＰＧ停止回路２Ｂ２１および２Ｂ２２にそれぞれ対応したパタン発生器２１および２２は、動作を停止している。
【０１９９】
一方、リセットが解除された状態であるため、ＰＲＰＧ停止回路２Ｂ２０におけるフリップフロップ２Ａ２３も、ロウレベルを出力している。そのため、ＰＲＰＧ停止回路２Ｂ２０における２入力アンド回路２Ａ２７には、○印で示されたインバータ回路を介して、ハイレベルが供給される。これにより、ステップＳ２９において、この２入力アンド回路２Ａ２７は、ＰＲＰＧ制御信号２００をロウレベルからハイレベルへ変化させる。すなわち、ＰＲＰＧ制御信号２００を有効に設定する。このＰＲＰＧ停止回路２Ｂ２０に対応したパタン発生器２０は、ＰＲＰＧ制御信号２００がハイレベルへ変化することにより、動作を開始し、ステップＳ３０において、テストパタンを発生する。発生したテストパタンは、スキャンチェーン４００を通して、論理回路４０に供給される。なお、この実施の形態３においては、このときのテストパタンは、自己診断動作に用いられないため、無効なデータである。ステップＳ３０において、論理回路４１、４２、４３には、パタン発生器２１、２２、２３が動作を開始していないため、常に固定値が入力されている。
【０２００】
次に、ステップＳ３１において、パタン発生器２１の起動判定が行われる。パタン発生器２１を起動させるかどうかは、ＰＲＰＧ起動回路２Ｂ１２におけるカウンタ２Ｂ３０のカウント値とレジスタ２Ｂ３１の初期値とが比較器２Ｂ３２によって一致したかどうかで行われる。ＰＲＰＧ起動回路２Ｂ１２における比較器２Ｂ３２が、一致していないと判定した場合には、一致するまで、ステップＳ３０およびＳ３１のイベントを繰り返す。
【０２０１】
一方、ＰＲＰＧ起動回路２Ｂ１２における比較器２Ｂ３２が、一致したと判定した場合には、ＰＲＰＧ起動回路２Ｂ１２におけるフリップフロップ２Ｂ３３の値がハイレベルに固定される。これにより、ＰＲＰＧ起動回路２Ｂ１２における２入力アンド回路２Ｂ３５の他方の入力にハイレベルが供給されるため、ＰＲＰＧ起動回路２Ｂ１２の出力であるＰＲＰＧ制御信号２０１はロウレベルからハイレベルへ変化する。すなわち、ステップＳ３２において、ＰＲＰＧ制御信号２０１を有効に設定する。ＰＲＰＧ制御信号２０１はハイレベルとなることにより、パタン発生器２１が動作を開始し、テストパタンを発生する。
【０２０２】
発生したテストパタンは、スキャンチェーン４００を通して、論理回路４１に入力される（ステップＳ３３）。このとき、パタン発生器２０も動作しているため、スキャンチェーン４００を通して、パタン発生器２０から論理回路４０へのテストパタンの供給は継続している。また、パタン発生器２０および２１により発生されているテストパタンは、自己診断に用いられないため、無効なデータである。なお、ステップＳ３３においては、未だ、パタン発生器２２および２３は動作を開始していないため、論理回路４２および４３には、固定の電圧が供給されている。
【０２０３】
ステップＳ３４〜Ｓ３６は、パタン発生器２１の代わりにパタン発生器２２の起動判定をし、パタン発生器２１の代わりにパタン発生器２２を起動することを除き、ステップＳ３１〜Ｓ３３と同じであるため、説明は省略する。同様に、ステップＳ３７〜Ｓ３９は、パタン発生器２１の代わりにパタン発生器２３の起動判定をし、パタン発生器２１の代わりにパタン発生器２３を起動することを除き、ステップＳ３１〜Ｓ３３と同じであるため、説明は省略する。
【０２０４】
このようにして、それぞれのＰＲＰＧ起動回路におけるレジスタ２Ｂ３１に設定された時間に関する初期値に従って、ＰＲＰＧ起動回路が１個ずつ、対応するパタン発生器を順次起動する。
【０２０５】
ステップＳ３９においては、パタン発生器３０〜３３のそれぞれが起動されている。そのため、このステップでは、スキャンチェーン４００を通して、論理回路４０〜４３に、パタン発生器３０〜３３からテストパタンが供給されていることになる。すなわち、自己診断用の有効なデータが、論理回路４０〜４３に供給されていることになる。そのため、ステップＳ３９において、スキャンチェーン４００を通して、論理回路（４０〜４３）に入力されるテストデータは、初回のテストデータとなる。
【０２０６】
次に、ステップＳ４０〜Ｓ４３において、ＭＩＳＲ制御信号３００、３０１、３０２、３０３をハイレベルに設定する。これは、図１４に示したＭＩＳＲ制御回路３Ｂで行う。ＭＩＳＲ制御回路３Ｂにおいて、ＭＩＳＲ制御回路３Ｂには、ＬＢＩＳＴ制御回路１０からＭＩＳＲ制御信号１０３が供給されている。ＬＢＩＳＴ制御回路１０は、例えば、ステップＳ３０において、このＭＩＳＲ制御信号１０３をハイレベルにしている。これは、ステップＳ３０において、ＬＢＩＳＴ制御回路１０がスキャンテストを開始していることに起因する。また、起動に関して最も遅い時間に設定された初期値を有するＰＲＰＧ起動回路２Ｂ１０が、ステップＳ３８において、ＰＲＰＧ制御信号２０３をロウレベルからハイレベルへ変化させている。このＰＲＰＧ制御信号２０３と同期して、ＭＩＳＲ起動信号１０９も、ステップＳ３８のタイミングで、ロウレベルからハイレベルへ変化している。
【０２０７】
また、ＭＩＳＲ起動回路３Ｂ１０内のレジスタ３Ｂ２１には、起動に関して最も長い時間と停止に関して最も短い時間の間の時間に相当する初期値が設定されている。そのため、ステップＳ３９後に、カウンタ３Ｂ２０のカウント値とレジスタ３Ｂ２１の初期値とが一致する。一致することにより、フリップフロップ３Ｂ２３の出力は、ロウレベルからハイレベルに変化する。ＭＩＳＲ停止信号１０８は、ＰＲＰＧ停止回路２Ｂ２０内のレジスタ２Ａ２１に設定されている初期値と、カウンタ２Ａ２０のカウント値とが一致していないため、フリップフロップ２Ａ２３はロウレベルを維持している。その結果、ＭＩＳＲ制御回路３Ｂは、ハイレベルのＭＩＳＲ制御信号３００〜３０３を出力することになる。
【０２０８】
ＭＩＳＲ制御信号３００〜３０３のハイレベルは、図９においては、ＭＩＳＲ制御信号３００〜３０３を有効に設定として示されている（ステップＳ４０〜Ｓ４３）。図９において、ステップＳ４４〜Ｓ４６は、図２に示したステップＳ１０〜Ｓ１２と同じである。また、ステップＳ４６以降は、図２に示したステップＳ１３〜Ｓ２７が実行される。そのため、ここでは、詳しい説明は省略するが、実施の形態２で述べたように、ＰＲＰＧ停止回路２Ｂ２０、２Ｂ１２、２Ｂ１１のそれぞれにおけるレジスタ２Ａ２１に格納されている時間に関する初期値に従って、ＰＲＰＧ制御信号２００、２０１および２０２の順に、その電圧がハイレベルからロウレベルへ変化する。これにより、パタン発生器２０から２２の順に、パタン発生器が停止する。パタン発生器が停止することにより、対応する論理回路には、固定的な電圧が入力として供給されるようになる。
【０２０９】
なお、ＰＲＰＧ制御信号２０３は、リセット信号１０６がリセットを示すハイレベルまたはＰＲＰＧ制御信号１０２をロウレベルにすることにより、ロウレベルとなり、対応するパタン発生器２３が停止する。
【０２１０】
＜半導体装置１Ｂの動作波形＞
図１０（Ａ）〜（Ｊ）は、実施の形態３に係わる半導体装置１Ｂにおける自己診断動作での波形を示す波形図である。図１０において、横軸は時間の経過を表しており、縦軸は、電圧を表している。図１０（Ａ）および（Ｂ）は、ＬＢＩＳＴ制御回路１０が出力するＰＲＰＧ制御信号１０２とＭＩＳＲ制御信号１０３の波形を示している。また、図１０（Ｃ）、（Ｅ）、（Ｇ）および（Ｉ）は、図１３に示したＰＲＰＧ制御回路２Ｂが出力するＰＲＰＧ制御信号２００〜２０３の波形を示しており、図１０（Ｄ）、（Ｆ）、（Ｈ）および（Ｊ）は、図１４に示したＭＩＳＲ制御回路３Ｂが出力するＭＩＳＲ制御信号３００〜３０３の波形を示している。
【０２１１】
さらに、図１０において、横軸に沿って添えられた符号Ｓ２８〜Ｓ４６および符号Ｓ１３〜Ｓ２７までの符号は、図９および図２のフローチャート図で説明されたステップＳ２８〜Ｓ４６およびＳ１３〜Ｓ２７に対応している。ここでは、Ｓ２９からＳ４５までの間が、有効なテスト範囲となっており、この有効なテスト範囲の期間においては、論理回路４０〜４３は、パタン発生器が生成したテストパタンによりランダムな動作を繰り返し実行し、電力を消費する。
【０２１２】
また、論理回路４０は、有効なテストの前の期間Ｓ３０〜Ｓ３６において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。論理回路４１は、有効なテストの前の期間Ｓ３３〜Ｓ３６と有効なテストのあとの期間Ｓ１８において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。同様に、論理回路４２は、有効なテストの前の期間Ｓ３６と有効なテストのあとの期間Ｓ１８〜Ｓ２１において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。さらに、論理回路４３は、有効なテストのあとの期間Ｓ１８〜Ｓ２４において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。
【０２１３】
このように、無効なデータであるテストパタンにより動作する論理回路の数を順次増加および減少させることにより、半導体装置１Ｂを流れる電流が急激に変化することを抑制し、電流変化率を小さく抑えることが可能となる。この実施の形態３においては、有効なテストの前においても、電流変化率を小さく抑制することが可能となるため、さらに誤動作が発生するのを低減することが可能となる。さらに、レジスタ３Ｂ２１に設定する時間に関する初期値を変えることにより、任意のタイミングで、パタン圧縮器を起動させることが可能となる。
【０２１４】
なお、この実施の形態３においては、自己診断動作において有効なテストが開始される前、すなわち有効なテスト範囲の前に、パタン発生器が動作を開始する。そのため、ＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  Ｔｅｓｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）を用いて、テストパタンに対応した期待値を生成することが困難になる。これは、ＡＴＰＧが生成する期待値は、図９においてステップＳ２８で入力された初期値に基づいて生成されているためである。しかしながら、期待値は、別途、シミュレータを使って論理シミュレーションを実行して求めることが可能である。
【０２１５】
図１１は、実施の形態３に係わる半導体装置１Ｂにおける自己診断動作時の電流波形を模式的に示す波形図である。同図において、横軸は時間の経過を表しており、縦軸は消費電流の大きさを表している。消費電流は、同図において上に行けば大きくなるものとする。横軸に沿って添えられた符号Ｓ２８〜Ｓ４６およびＳ１３〜Ｓ２７は、図９および図２で説明したステップＳ２８〜Ｓ４６およびＳ１３〜Ｓ２７に対応している。図１１から理解されるように、半導体装置１Ｂの消費電流は、テストパタンに従って動作する論理回路の個数が増えることにより、階段状に増加し、テストパタンに従って動作する論理回路の個数が得ることにより、階段状に減少する。そのため、自己診断動作の開始と終了において、半導体装置１Ｂの消費電流が、急激に変化することを抑制することが、可能となる。
【０２１６】
また、図１２は、実施の形態３に係わる半導体装置１Ｂにおける単位時間当たりの電流変動を示す波形図である。同図において、横軸は時間の経過を表しており、縦軸は電流変動の大きさを表している。図１２の中心線は、０として電流の変動が無いことを示している。電流が増えれば上に伸び、電流が減れば下に伸びるものとする。横軸に沿って添えられた符号Ｓ２８〜Ｓ４６およびＳ１３〜Ｓ２７は、図９および図２で説明したステップＳ２８〜Ｓ４６およびＳ１３〜Ｓ２７に対応している。同図に示すように、電流変化は、許容値上限と許容値下限との間に納めることが可能である。
【０２１７】
実施の形態３によれば、実施の形態１および２に比べ、テストパタンの供給が始まるステップＳ３０〜Ｓ３６までの間で、消費電力が急激に変化するのを抑制するように制御が行われる。そのため、自己診断動作の開始時における時間当たりの電流値の変化率（ｄｉ／ｄｔ）を低減させることも可能となる。
【０２１８】
実施の形態３において、スキャンイネーブル信号１０７は、２入力排他的論理和回路３Ｂ２７、２入力ノア回路３Ｂ２８および２入力オア回路３Ｂ２９により、形成されている。ＭＩＳＲ起動信号１０９がハイレベルとなっている期間において、ＭＩＳＲ停止信号１０８がハイレベルとなることにより、２入力排他的論理和回路３Ｂ２７からロウレベルが出力される。これにより、セレクタ４０Ｃ１（図１８）に供給されるスキャンイネーブル信号１０７は、ハイレベルとなる。その結果、実施の形態２と同様に、論理回路内のフリップフロップ４０Ｂ１は、組合せ回路からの不所望のデータを取り込むのを抑制することが可能となる。
【０２１９】
また、ＭＩＳＲ起動信号１０９は、起動に関して最も長い時間に相当する初期値が設定されたレジスタ２Ｂ３１を有するＰＲＰＧ起動回路２Ｂ１０から出力される。そのため、最も遅く起動されるパタン発生器２３が起動されるまで、ＭＩＳＲ起動信号１０９はロウレベルであり、ＭＩＳＲ停止信号１０８もロウレベルである。従って、有効なデータとなるテストパタンが論理回路４０〜４３に供給されるまで、２入力排他的論理和回路３Ｂ２７はロウレベルを出力する。その結果、有効なデータであるテストパタンが、論理回路４０〜４３へ供給され始めるまで、セレクタ４０Ｃ１（図１８）に供給されるスキャンイネーブル信号１０７は、ハイレベルとなる。その結果、無効なデータが論理回路に供給されている期間において、フリップフロップ４０Ｂ１は、組合せ回路からの不所望のデータを取り込むのを抑制することが可能となる。
【０２２０】
図１３においては、ＰＲＰＧ制御回路２Ｂが、ＰＲＰＧ起動回路２Ｂ１０〜２Ｂ１２とＰＲＰＧ停止回路２Ｂ２０〜２Ｂ２２を備えていたが、ＰＲＰＧ制御回路２Ｂは、ＰＲＰＧ停止回路２Ｂ２０〜２Ｂ２２を備えず、ＰＲＰＧ起動回路２Ｂ１０〜２Ｂ１２と制御回路２Ｂ４２−Ｃを備えるようにしてもよい。この場合においても、自己診断動作の開始時に、半導体装置１Ｂを流れる電流の電流変化率を抑制することが可能であり、誤動作が発生するのを抑制することが可能となる。
【０２２１】
＜変形例＞
実施の形態３においては、自己診断テストの開始時に、ＰＲＰＧ制御信号２００〜２０３を時間分割して、順次ハイレベルにしている。すなわち、パタン発生器３０〜３３が、時間間隔をおいて、順次動作する。そのため、実際に有効なテストを開始する時点（図９のステップＳ３９）におけるパタン発生器２０〜２２のシード値は、初期値として入力した時点（図９のステップＳ２８）の値と異なってしまう。これは、図９のステップＳ２８において入力した初期値に基づいて計算したＡＴＰＧの出力を期待値として使用することが困難であることを示している。対策として、シミュレータによる論理シミュレーションの結果から期待値を取得することが考えられる。
【０２２２】
変形例では、実施の形態３に適した期待値を、ＡＴＰＧによって生成する、テストパタン生成方法が開示される。図１７は、テストパタン生成方法を示すフローチャート図である。同図において、Ｔ１はＡＴＰＧツールを示している。図１７においては、説明を容易にするために、２個のパタン発生器ＰＲＰＧ１、ＰＲＰＧ２を用いる場合を説明する。この場合、パタン発生器ＰＲＰＧ１は、例えば図８のパタン発生器２０に相当し、パタン発生器ＰＲＰＧ２は、例えば図８のパタン発生器２１に相当する。
【０２２３】
テストパタンに対応した期待値を求めるために、パタン発生器ＰＲＰＧ１、ＰＲＰＧ２の初期値Ｄ１、Ｄ２を求める（第１工程）。また、パタン発生器ＰＲＰＧ１、ＰＲＰＧ２のそれぞれの動作開始時間Ｄ３、Ｄ４を求める（第２工程）。求めた初期値Ｄ１、Ｄ２と動作開始時間Ｄ３、Ｄ４をＡＴＰＧツールＴ１に入力する。この場合の動作開始時間Ｄ３、Ｄ４は、図９のステップＳ２９、Ｓ３２に相当する時間である。
【０２２４】
ＡＴＰＧツールＴ１は、与えられたパタン発生器ＰＲＰＧ１、ＰＲＰＧ２の初期値Ｄ１、Ｄ２とその動作開始時間Ｄ３、Ｄ４から、シード値計算Ｆ１によって、実際に有効なテストが始まる時刻（図９のステップＳ３９）におけるパタン発生器のシード値（初期値）Ｄ５、Ｄ６を求める（第３工程）。
【０２２５】
その後、ＡＴＰＧのメインエンジンＦ２にパタン発生器のシード値Ｄ５、Ｄ６を与えて、故障シミュレーションを実行し、実際に有効なテストが始まる時刻における期待値Ｄ７を求める（第４工程）。求めた期待値Ｄ７と初期値Ｄ１、Ｄ２とに基づいて、テストパタン生成Ｆ３を行い、テストパタンＤ７を出力する。
【０２２６】
これにより、ＡＴＰＧを用いて、期待値とテストパタンを生成することが可能となる。この場合、シミュレータを用いて期待値を計算する方法と比べて、比較的短時間で期待値を算出することができる。また、故障シミュレーションを実施するため、比較的短時間で正確な故障検出率を算出することができる。これは、シミュレータによる論理シミュレーションは、スキャンシフト動作を含めて全サイクル分のシミュレーションを実施するのに対して、ＡＴＰＧによる故障シミュレーションは、キャプチャの動作だけをピックアップしてシミュレーションを実施するため、短時間化が図れる。
【０２２７】
（実施の形態４）
図１５は、実施の形態４に係わる半導体装置１Ｃの構成を示すブロック図である。半導体装置１Ｃは、その機能を達成する構成として、論理回路４０を備えており、これらの論理回路４０の自己診断を目的に、ＬＢＩＳＴ制御回路１０と、パタン発生器２０と、パタン圧縮器３０を備えている。また、半導体装置１Ｃは、パタン発生器２０が出力するシフトデータを制御するシフトデータ制御回路２Ｃと、パタン圧縮器３０を制御するＭＩＳＲ制御回路３Ｃとを備えている。
【０２２８】
シフトデータ制御回路２Ｃは、ＬＢＩＳＴ制御回路１０とＰＲＰＧ制御信号１０２で電気的に接続されている。また、シフトデータ制御回路２Ｃは、パタン発生器２０および論理回路４０とスキャンチェーン４００（２Ｃ３０〜２Ｃ３３）で電気的に接続されている。ＭＩＳＲ制御回路３Ｃは、ＬＢＩＳＴ制御回路１０とＭＩＳＲ制御信号１０３で電気的に接続されている。また、ＭＩＳＲ制御回路３Ｃは、パタン圧縮器３０とＭＩＳＲ制御信号３００で電気的に接続されている。
【０２２９】
スキャンチェーン４００（２Ｃ３０〜２Ｃ３３）は、シフトデータ制御回路２Ｃにより、その機能の動作開始と動作停止とが切り替えられる。パタン圧縮器３０は、ＭＩＳＲ制御回路３Ｃが生成するＭＩＳＲ制御信号３００により、その機能の動作開始と動作停止とが切り替えられる。この実施の形態においては、どちらもロウレベルが動作停止で、ハイレベルが動作開始である。
【０２３０】
パタン発生器２０とパタン圧縮器３０は、ＰＲＰＧ／ＭＩＳＲチェーン１０１でＬＢＩＳＴ制御回路１０と数珠繋ぎになっており、シフト動作を繰り返すことにより、ＬＢＩＳＴ制御回路１０よって、パタン発生器２０およびパタン圧縮器３０に初期値を設定する。同様にシフト動作を繰り返すことにより、ＬＢＩＳＴ制御回路１０は、パタン圧縮器３０から診断結果を回収する。論理回路４０は、フリップフロップ（ＦＦ）で構成されており、スキャンチェーン４００（２Ｃ３０〜２Ｃ３３）により一定個数ずつ数珠繋ぎで接続されている。スキャンチェーン４００（２Ｃ３０〜２Ｃ３３）は、入力側がシフトデータ制御回路２Ｃに、出力側がパタン圧縮器３０にそれぞれ接続されている。図１５では、半導体装置１Ｃは、パタン発生器２０とパタン圧縮器３０を１個ずつ有するように示しているが、この個数に限定されない。
【０２３１】
＜シフトデータ制御回路２Ｃの構成＞
図１６は、実施の形態４に係わるシフトデータ制御回路２Ｃの構成を示すブロック図である。シフトデータ制御回路２Ｃは、制御回路２Ｃ２７−Ｃと、シフトデータ停止回路２Ｃ１０、２Ｃ１１、２Ｃ１２を備えている。制御回路２Ｃ２７−Ｃは、シフトデータ制御回路２Ｃの制御を行う制御回路であって、シフトデータ制御回路２Ｃの動作開始と動作終了を司るフリップフロップ２Ｃ２７と組合せ回路２Ｃ２８を備えている。この制御回路２Ｃ２７−Ｃは、先の述べた制御回路２Ａ２４−Ｃ、２Ｂ４２−Ｃと同様に、フリップフロップ２Ｃ２７は、入力されるＰＲＰＧ制御信号１０２が起動状態（ハイレベル）となったときに、ハイレベルの状態を保持し、リセット信号１０６がハイレベルにされるまで、ハイレベルを継続する。
【０２３２】
シフトデータ停止回路２Ｃ１０〜２Ｃ１２は、互いに同じ構成を有している。そのため、図１６には、シフトデータ停止回路２Ｃ１０についてのみ、構成が示されている。シフトデータ停止回路の個数は、半導体装置１Ｃに搭載するスキャンチェーンの数に応じて増減し、最大でスキャンチェーンの数と同じだけ必要となるが、その数を上限として制限するものではない。なお、複数のスキャンチェーンに対して１つのシフトデータ停止回路を共有させても良い。また同図において、スキャンチェーン２Ｃ３３のようにシフトデータ停止回路による制御をさせないスキャンチェーンがあっても良い。
【０２３３】
次に、シフトデータ停止回路の構成を、シフトデータ停止回路２Ｃ１０を代表として、説明する。シフトデータ停止回路２Ｃ１０は、カウンタ２Ｃ２０、レジスタ２Ｃ２１、比較器２Ｃ２２、フリップフロップ２Ｃ２３、組合せ回路２Ｃ２４、２入力アンド回路２Ｃ２５および２Ｃ２６を備えている。ここで、組合せ回路２Ｃ２４は、その一方の入力に比較器２Ｃ２２の出力が供給され、その他方の入力にフリップフロップ２Ｃ２３の出力が供給される２入力オア回路２Ｃ２４−Ｏと、その一方の入力に制御回路２Ｃ２７−Ｃからの出力が供給され、その他方の入力に２入力オア回路２Ｃ２４−Ｏの出力が供給される２入力アンド回路２Ｃ２４−Ａを有している。
【０２３４】
カウンタ２Ｃ２０は、入力されるクロック信号１０４に同期して、カウントアップもしくはカウントダウンを行い、カウント値を出力する。レジスタ２Ｃ２１には、レジスタ設定信号１０５−Ｉにより時間に関する任意の値が格納される。比較器２Ｃ２２は、カウンタ２Ｃ２０のカウント値とレジスタ２Ｃ２１に格納されている値とを比較する。比較の結果、一致すれば、比較器２Ｃ２３はハイレベルを出力し、一致しなければ、比較器２Ｃ２３はロウレベルを出力する。
【０２３５】
制御回路２Ｃ２７−Ｃにおけるフリップフロップ２Ｃ２７がハイレベルの状態のとき、比較の結果が一致していれば、比較器２Ｃ２２からのハイレベルは、組合せ回路２Ｃ２４を介して、フリップフロップ２Ｃ２３の入力に伝達され、フリップフロップ２Ｃ２３は、このハイレベルに対応する論理値を格納するとともに、ハイレベルを出力する。反対に、比較の結果が不一致であれば、組合せ回路２Ｃ２４の出力はロウレベル出力し、フリップフロップ２Ｃ２３は、論理値“０”を格納し、ロウレベルを出力する。
【０２３６】
フリップフロップ２Ｃ２３の出力は、○印で示されたインバータ回路により位相反転され、２入力アンド回路２Ｃ２５の一方の入力に供給されている。同様に、フリップフロップ２Ｃ２３の出力は、○印で示されたインバータ回路により位相反転され、２入力アンド回路２Ｃ２６の一方の入力に供給されている。また、このシフトデータ停止回路２Ｃ１０においては、フリップフロップ２Ｃ２３の出力は、ＭＩＳＲ停止信号１０８として出力される。
【０２３７】
パタン発生器２０は、自己診断動作のとき、テストパタンＴＰ３０〜ＴＰ３３を発生する。図１６においては、パタン発生器２０は、スキャンチェーン３Ｃ３０にテストパタンに従ったシフトデータＴＰ３０を供給し、スキャンチェーン３Ｃ３１にテストパタンに従ったシフトデータＴＰ３１を供給し、スキャンチェーン３Ｃ３２にテストパタンに従ったシフトデータＴＰ３２を供給し、スキャンチェーン３Ｃ３３にテストパタンに従ったシフトデータＴＰ３３を供給する。
【０２３８】
カウンタ２Ｃ２０のカウント値が、レジスタ２Ｃ２１に格納されている値に到達していない場合、フリップフロップ２Ｃ２３はロウレベルを出力する。これにより、２入力アンド回路２Ｃ２５および２Ｃ２６は、シフトデータＴＰ３０を論理回路４０へ供給する。一方、カウンタ２Ｃ２０のカウント値が、レジスタ２Ｃ２１に格納されている値と一致すると、フリップフロップ２Ｃ２３はハイレベルを出力する。これにより、２入力アンド回路２Ｃ２５および２Ｃ２６は、シフトデータＴＰ３０の論理値とは無関係に、ロウレベルを論理回路４０へ供給する。
【０２３９】
図１６に示した２入力アンド回路２Ｃ２５の出力は、例えば図１８に示した論理回路４０において、同図の上側に示したスキャンチェーン４００に接続され、２入力アンド回路２Ｃ２６の出力は、図１８において下側に示したスキャンチェーン４００に接続される。これにより、レジスタ２Ｃ２１に設定した値により、論理回路４０に設けられているフリップフロップ４０Ｂ１、４０Ｂ２の入力に供給される電圧（論理値）をシフトデータに従って変化させるか、ロウレベルに固定するのかを定めることが可能となる。また、ロウレベルに固定するタイミング、言い換えるならばシフトデータの供給を停止する停止タイミングを定めることが可能となる。シフトデータではなく、ロウレベルのような所定の電圧に固定するため、スキャンチェーンを停止している停止状態と見なすこともできる。
【０２４０】
スキャンチェーンを停止している停止状態は、リセット信号１０６によってフリップフロップ２Ｃ２７の値がロウレベルにクリアされるまで継続する。
【０２４１】
他のシフトデータ停止回路２Ｃ１１、２Ｃ１２についても、シフトデータ停止回路２Ｃ１０と同様であるが、シフトデータ停止回路２Ｃ１０、２Ｃ１１、２Ｃ１２のそれぞれにおいて、レジスタ２Ｃ２１に設定される時間に関する値は互いに異なるようにする。この実施の形態４においては、シフトデータ停止回路２Ｃ１０におけるレジスタ２Ｃ２１には、最も短い時間に相当する値を設定し、シフトデータ停止回路２Ｃ１１におけるレジスタ２Ｃ２１には、シフトデータ停止回路２Ｃ１０におけるレジスタ２Ｃ２１に設定する時間よりも長い時間に相当する値を設定する。さらにシフトデータ停止回路２Ｃ１２におけるレジスタ２Ｃ２１には、シフトデータ停止回路２Ｃ１１におけるレジスタ２Ｃ２１に設定する時間よりも長い時間に相当する値を設定する。
【０２４２】
実施の形態２および３と同様に、シフトデータ停止回路２Ｃ１０、２Ｃ１１、２Ｃ１２のそれぞれにおけるレジスタ２Ｃ２１の設定は、これらのシフトデータ停止回路２Ｃ１０、２Ｃ１１、２Ｃ１２を互いに直列に接続して、シフトレジスタとし、ＬＢＩＳＴ制御回路１０からレジスタ設定信号１０５−Ｉにより、順次時間に関する値を供給することにより、設定する。
【０２４３】
このようにそれぞれのレジスタ２Ｃ２１に時間に関する値を設定することにより、スキャンチェーン２Ｃ３０が最初に停止状態になり、スキャンチェーン２Ｃ３１、２Ｃ３２の順に停止状態となる。なお、スキャンチェーン２Ｃ３３は、リセット信号１０６をハイレベルとすることにより、停止状態となる。この場合、最初にスキャンチェーンを停止状態とするシフトデータ停止回路２Ｃ１０におけるフリップフロップ２Ｃ２３の値がＭＩＳＲ停止信号として、ＭＩＳＲ制御回路３Ｃに供給される。
【０２４４】
実施の形態２で述べたように、シフトデータ停止回路２Ｃ１１から出力されるＭＩＳＲ停止信号２Ｃ１１−１０８と、シフトデータ停止回路２Ｃ１２から出力されるＭＩＳＲ停止信号２Ｃ１２−１０８と、シフトデータ停止回路２Ｃ１０から出力されるＭＩＳＲ停止信号１０８とで論理和の演算を行い、演算結果をＭＩＳＲ停止信号としてＭＩＳＲ制御回路３Ｃに供給してもよい。また、カウンタ２Ｃ２０は、複数のシフトデータ停止回路で共有してもよい。
【０２４５】
ＭＩＳＲ制御回路３Ｃの構成は、図７で説明したＭＩＳＲ制御回路３Ａと同じであるため、説明は省略する。
【０２４６】
この実施の形態４においては、実施の形態１〜３と異なり、パタン発生器の動作を停止して、テストパタンを停止させるのではなく、パタン発生器が生成したテストパタンに従ったシフトデータの論理回路への供給を停止させる点である。
【０２４７】
実施の形態４においては、消費電力の制御を、パタン発生器単位ではなく、スキャンチェーン単位で制御している。これにより、パタン発生器の単位で実施している電力制御よりも、よりきめの細かい制御が可能となる。また、パタン発生器とパタン圧縮器のセットが１セットである場合でも実施の形態２と同等以上の効果を得ることが可能である。
【０２４８】
この実施の形態４において、シフトデータ制御回路２Ｃは、テストパタン制御回路と見なされる。また、例えばスキャンチェーン２Ｃ３０を通してシフトデータ（テストパタン）が供給される論理回路を、第１論理回路と見なした場合、シフトデータ停止回路２Ｃ１０のレジスタ２Ｃ２１（第１レジスタ）に格納された値により、第１論理回路へ供給されるテストパタンの停止タイミングが定められることになる。同様に、スキャンチェーン２Ｃ３１を通して、シフトデータ（テストパタン）が供給される論理回路を、第２論理回路と見なした場合、シフトデータ停止回路２Ｃ１１のレジスタ２Ｃ２１（第２レジスタ）に格納された値により、第２論理回路へ供給されるテストパタンの停止タイミングが定められることになる。
【０２４９】
以上述べた実施の形態１〜４において、論理回路４０〜４３を含む回路は、第１回路と見なすことができる。また、ＰＲＰＧ制御回路は、パタン発生器制御回路と見なし、ＭＩＳＲ制御回路は、パタン圧縮器制御回路と見なすことができる。例えば、実施の形態２においては、複数のパタン圧縮器３０〜３３を用いた例を示したが、これらの複数のパタン圧縮器３０〜３３は１個のパタン圧縮器と見なしてもよい。また、パタン圧縮器は、テストパタンに従って論理回路から出力される信号を処理する処理器と見なしてもよい。さらに、ＬＢＩＳＴ制御回路１０は、自己診断制御回路と見なしてもよい。
【０２５０】
また、ＬＢＩＳＴ制御回路１０と、例えば図６に示したＰＲＰＧ制御回路２Ａとを併せて制御回路と見なしてもよい。この場合、制御回路が、複数のパタン発生器２０〜２２間において、対応する論理回路４０〜４２へ供給するテストパタンの停止タイミングが互いに異なるように制御していると見なすことができる。
【０２５１】
車載用ＭＣＵに内蔵される自己診断回路を例にして、課題を説明した。しかしながら、以上述べた複数の実施の形態に係わる自己診断回路は、車載用ＭＣＵに内蔵される自己診断回路に限定されず、種々の半導体装置に内蔵することが可能である。また、自己診断回路は、電源の投入に応答して起動されるものに限定されない。例えば、電源の投入等とは無関係に、自己診断回路は任意のタイミングで起動するようにしてもよい。
【０２５２】
また、実施の形態において、クロック信号１０４は、半導体装置（例えば、１Ａ）の外部端子を介して半導体装置の外部から供給することを説明した。しかしながら、半導体装置（例えば、１Ａ）に、クロック信号１０４を発生するクロック信号発生回路を設けるようにしてもよいことは言うまでもない。
【０２５３】
＜付記＞
本明細書には、複数の発明が開示されており、その内のいくつかは、特許請求の範囲に記載しているが、これ以外の発明も開示しており、その代表的なものを次に列記する。
（Ａ）テスト期間において、テストパタンを発生するパタン発生器と、
電圧配線に接続された第１論理回路を有する第１回路と、
前記パタン発生器と前記第１回路とに接続されたテストパタン制御回路と、
前記テストパタン制御回路を制御する制御回路と、
前記テストパタンに応じて、前記第１論理回路から出力された信号が供給される処理回路と、
を備え、
前記テストパタン制御回路は、テスト期間において、前記制御回路の制御により、前記第１回路内の第１論理回路への前記テストパタンの供給を停止する、半導体装置。
（Ｂ）（Ａ）に記載の半導体装置において、
前記第１回路は、前記電圧配線、前記パタン発生器および前記テストパタン制御回路に接続された第２論理回路を備え、
前記テストパタン制御回路は、前記制御回路の制御により、前記第１論理回路へ供給されるテストパタンの停止タイミングと前記第２論理回路へ供給されるテストパタンの停止タイミングを異ならせる、半導体装置。
（Ｃ）（Ｂ）に記載の半導体装置において、
前記テストパタンの停止は、前記第１論理回路および前記第２論理回路へ供給されるテストパタンの論理値を所定の論理値に固定することである、半導体装置。
（Ｄ）（Ｃ）に記載の半導体装置において、
前記第１論理回路および第２論理回路のそれぞれは、
テスト期間において、前記テストパタン制御回路からテストパタンが供給されるシフトレジスタを構成するように直列に接続される複数のフリップフロップ回路と、
テスト期間において、前記複数のフリップフロップ回路に接続される組合せ回路と、
を備える、半導体装置。
（Ｅ）（Ｄ）に記載の半導体装置において、
前記半導体装置は、前記第１論理回路へ供給されるテストパタンの停止タイミングを定める情報が格納される第１レジスタと、前記第２論理回路へ供給されるテストパタンの停止タイミングを定める第２レジスタとを備える、半導体装置。
（Ｆ）複数の論理回路と、テスト期間において、前記複数の論理回路間を遮断する遮断回路とを備えた第１回路と、
前記複数の論理回路のそれぞれに対応し、テスト期間において、対応する論理回路へテストパタンを供給する複数のパタン発生器と、
テストパタンに応じて、前記複数の論理回路のそれぞれから出力される信号が供給される処理器と、
前記複数のパタン発生器に接続され、前記複数のパタン発生器間において、対応する論理回路へ供給するテストパタンの停止タイミングが互いに異なるように、前記複数のパタン発生器をそれぞれ制御する制御回路と、
を備える、半導体装置。
（Ｇ）（Ｆ）に記載の半導体装置において、
前記遮断回路は、所定の論理値を前記複数の論理回路へ供給することにより、前記複数の論理回路間を遮断する、半導体装置。
（Ｈ）（Ｇ）に記載の半導体装置において、
前記遮断回路は、フリップフロップを有し、前記フリップフロップを所定の状態にすることにより、前記所定の論理値を前記複数の論理回路へ供給する、半導体装置。
（Ｉ）パタン発生器により発生されるテストパタンの初期値を求める第１工程と、
前記パタン発生器の動作開始時間を求める第２工程と、
前記第１工程により求めたテストパタンの初期値と、前記第２工程により求めた前記パタン発生器の動作開始時間とに基づいて、有効なテストが始まる時刻におけるテストパタンの初期値を求める第３工程と、
前記第３工程により求めた初期値を基にして、故障シミュレーションを実行し、前記有効なテストが始まる時刻におけるテストパタンに対する期待値を求める第４工程と、
前記第４工程により求めた期待値と、前記パタン発生器により発生されるテストパタンとに基づいて、論理回路へ供給されるテストパタンを形成する、テストパタン生成方法。
（Ｊ）（Ｉ）に記載のテストパタン生成方法において、
前記故障シミュレーションは、ＡＴＰＧにより行われる、テストパタン生成方法。
【０２５４】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【符号の説明】
【０２５５】
１Ａ〜１Ｅ  半導体装置
２Ａ〜２Ｃ  ＰＲＰＧ制御回路
３Ａ〜３Ｃ  ＭＩＳＲ制御回路
１０  ＬＢＩＳＴ制御回路
２０〜２３  パタン発生器
３０〜３３  パタン圧縮器
４０〜４３  論理回路
【図１】
0006452720.tif 000002
【図２】
0006452720.tif 000003
【図３】
0006452720.tif 000004
【図４】
0006452720.tif 000005
【図５】
0006452720.tif 000006
【図６】
0006452720.tif 000007
【図７】
0006452720.tif 000008
【図８】
0006452720.tif 000009
【図９】
0006452720.tif 000010
【図１０】
0006452720.tif 000011
【図１１】
0006452720.tif 000012
【図１２】
0006452720.tif 000013
【図１３】
0006452720.tif 000014
【図１４】
0006452720.tif 000015
【図１５】
0006452720.tif 000016
【図１６】
0006452720.tif 000017
【図１７】
0006452720.tif 000018
【図１８】
0006452720.tif 000019
【図１９】
0006452720.tif 000020
【図２０】
0006452720.tif 000021
【図２１】
0006452720.tif 000022
【図２２】
0006452720.tif 000023
【図２３】
0006452720.tif 000024
【図２４】
0006452720.tif 000025
【図２５】
0006452720.tif 000026
【図２６】
0006452720.tif 000027
【図２７】
0006452720.tif 000028
【図２８】
0006452720.tif 000029