以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部分には原則として同一の符号を付し、その繰り返しの説明は、原則省略する。
本発明に先だって、本発明者らが検討した事項を説明する。
<検討回路の構成>
図24は、本発明者らにより検討された半導体装置の構成を示すブロック図である。同図において、1Dは、半導体装置を示しており、半導体装置1DによりMCUが構成されている。MCUの機能を達成するために、半導体装置1Dは、複数の論理回路を有している。図24には、複数の論理回路のうち、論理回路40〜43が示されている。これらの論理回路40〜43の自己診断を行うために、半導体装置1Dは、LBIST制御回路10と、パタン発生器(PRPG)20、21、22、23と、パタン圧縮器(MISR)30、31、32、33を備えている。以下の本明細書および図面においては、パタン発生器はPRPG、パタン圧縮器はMISRとも記載する。
パタン発生器20〜23のそれぞれは、LBIST制御回路10からのPRPG制御信号102により、その機能が動作または停止するように切り替えられる。パタン圧縮器30〜33のそれぞれも、LBIST制御回路10からのMISR制御信号103により、その機能が動作または停止するように切り替えられる。この検討回路においては、PRPG制御信号102がハイレベルのとき、パタン発生器20〜23は動作し、PRPG制御信号102がロウレベルのとき、パタン発生器20〜23は停止するものとする。同様に、MISR制御信号103がハイレベルのとき、パタン圧縮器30〜33は動作し、MISR制御信号103がロウレベルのとき、パタン圧縮器30〜33は停止するものとする。
全てのパタン発生器20〜23とパタン圧縮器30〜33は、PRPG/MISRチェーン101でLBIST制御回路10と数珠繋ぎになっている。数珠繋ぎにされたパタン発生器20〜23およびパタン圧縮器30〜33に対して、シフト動作を繰り返えさせながら、LBIST制御回路10より初期値を供給し、例えば、パタン発生器20〜23のそれぞれに初期値を設定する。また、シフト動作を繰り返させることにより、パタン圧縮器30〜33から、LBIST制御回路10に診断結果を回収する。
論理回路40〜43のそれぞれは、フリップフロップ(FF)と組合せ回路とを備えており、自己診断動作の期間(以下、テスト期間とも称する)においては、組合せ回路はフリップフロップ(FF)からの信号を受け、組合せ回路の出力はフリップフロップ(FF)へ供給される。自己診断動作の期間においては、論理回路40〜43におけるフリップフロップ(FF)は、スキャンチェーン400により一定個数ずつ数珠繋ぎで接続されている。スキャンチェーン400は、入力側がパタン生成器20〜23に、出力側がパタン圧縮器30〜33にそれぞれ接続されている。
また、図24において、500および501は、パタン発生器20〜23、パタン圧縮器30〜33、論理回路40〜43およびLBIST制御回路10へ電源電圧を給電する電圧配線(電源配線)を示している。例えば、電圧配線500は、それぞれの回路を動作させるための電源電圧を供給する電圧配線であり、電圧配線501は、それぞれの回路に接地電圧を供給する電圧配線である。勿論、論理回路40〜43に含まれているフリップフロップ(FF)および組合せ回路にも、電圧配線500、501は接続されており、電源電圧および接地電圧が供給されている。
図25は、図24に示した半導体装置1Dの自己診断時の動作を示したフローチャート図である。図25においては、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが表されている。すなわち、ステップS47からステップS57へと処理が実行される。
自己診断の動作を開始させると、ステップS47が実行される。ステップS47においては、LBIST制御回路10からPRPG/MISRチェーン101を通して、パタン発生器20〜23に初期値を設定する。ステップS48において、LBIST制御回路10が、PRPG制御信号102を有効(ハイレベル)にする。これにより、スキャンチェーン400を通して、初回のテストデータが、パタン発生器20〜23から論理回路40〜43に入力される(ステップS49)。
次に、ステップS50において、LBIST制御回路10は、MISR制御信号103を有効(ハイレベル)にする。ステップS51において、キャプチャの動作を行い論理回路40〜43のデータを更新させる。すなわち、ステップS49において論理回路40〜43に供給した初回のテストデータに従って、論理回路40〜43を動作させ、論理回路40〜43のデータを、初回のテストデータに応じたデータに更新させる。
ステップS52においては、スキャンチェーン400を通して、二回目以降のテストデータを論理回路40〜43に入力するとともに、スキャンチェーン400を通して、論理回路40〜43のデータをパタン圧縮器30〜33に供給し、パタン圧縮器30〜33において圧縮(テスト結果の圧縮)を行う。テストが終了したか否かを、ステップS53において、判定し、テストが終了するまで、ステップS51〜S53を繰り返す。
一方、テストが終了したと判定した場合には、ステップS54において、LBIST制御回路10は、PRPG制御信号102を無効(ロウレベル)にする。ステップS55においては、スキャンチェーン400を通して、論理回路40〜43のテスト結果は、パタン圧縮器30〜33において圧縮される。その後に、ステップS56において、LBIST制御回路10は、MISR制御信号103を無効(ロウレベル)にする。次に、ステップS57において、PRPG/MISRチェーン101を通して、パタン圧縮器30〜33に格納されている圧縮されたテスト結果を、LBIST制御回路10が回収する。LBIST制御回路10は、回収したテスト結果と期待値とを照合し、自己診断の結果を求め、自己診断の動作を終了する。
図26(A)および(B)は、図25で説明した動作を、PRPG制御信号102およびMISR制御信号103に注目して示した波形図である。同図において、横軸は時間を示し、縦軸は電圧を示している。また、図26において、符号S47〜S57は、図25に示したステップS47〜S57に対応している。図26において、ステップS49からS55(図25参照)までの間が、有効なテスト範囲となっており、その期間、論理回路40〜43は、パタン発生器20〜23が生成したテストパタン(テストデータ)が供給され、テストパタンに従って、ランダムな動作を繰り返して、電力を消費している。
図27は、図24に示した半導体装置1Dを流れる電流の波形を模式的に示した波形図である。図27に示している電流の波形は、図25において説明した自己診断動作の時の電流波形である。同図において、横軸は時間を示しており、縦軸は半導体装置1Dを流れる電流、言い換えるならば半導体装置1Dの消費電流の大きさを示している。半導体装置1Dの消費電流は、図27において上に行けば大きくなるものとする。横軸に沿って添えられた符号S47〜S57は、図25において説明したステップS47〜S57に対応している。
半導体装置1Dの消費電流は、論理回路40〜43へのテストパタン(テストデータ)の供給が開始されるステップS49から徐々に増し、ステップS51およびS52の繰り返し動作が発生している時刻にピークに達する。その後、ステップS54のイベントによりPRPG制御信号102がロウレベルになり、パタン発生器20〜23が停止状態になったあたりから徐々に減少し、ステップS56のMISR制御信号103がロウレベルになり、パタン圧縮器30〜33が停止状態になったあたりで急激に減少する。これは、パタン発生器20〜23やパタン圧縮器30〜33の動作が停止することにより、論理回路40〜43に供給される信号の論理値変化が発生しなくなるためである。
図28は、時間当たりの電流変動を示した波形図である。図28において、横軸は時間を示しており、縦軸は電流変動の大きさを示している。図28において中心線は、0として電流の変動が無いことを示している。時間当たりの電流が増えれば上に伸び、電流が減れば下に伸びるものとする。図28において横軸に沿って添えられた符号S47〜S57は、図25で説明されたステップS47〜S57に対応している。
図28のステップS57(図25参照)付近の単位時間当たりの電流値の変化、すなわち電流変化率(di/dt)が大きく、所定の許容値下限を大きく超えている。ここで、所定の許容値下限および許容値上限は、例えば、80mA/20usである。電圧配線500、501(図24)には、それぞれ寄生抵抗および寄生容量等が存在している。そのため、電流変化率が大きいと、電圧配線500、501における電源電圧および接地電圧が変動する。例えば、ステップS57付近で、電流変化率が、許容値下限を大きく超えているため、電圧配線500、501を介して、パタン発生器20〜30、パタン圧縮器30〜33、論理回路40〜43、LBIST制御回路10に供給されている電源電圧、接地電圧にオーバーシュートが発生することが考えられる。これにより、最悪の場合、正常な自己診断が行えず、 半導体装置1Dが起動できなくなると言う問題が発生することが考えられる。
(実施の形態1)
図19は、実施の形態1に係わる半導体装置の構成を示すブロック図である。同図において、1Eは半導体装置を示しており、半導体装置1Eは、MCUを構成している。MCUの機能を達成するために、半導体装置1Eには、複数の論理回路が内蔵されているが、図19には、複数の論理回路のうち、論理回路40〜43が代表として示されている。半導体装置1Eには、自己診断を行うために、LBIST制御回路10〜13と、パタン発生器20〜23と、パタン圧縮器30〜33が設けられている。この実施の形態1においては、LBIST制御回路10〜13と、パタン発生器20〜23と、パタン圧縮器30〜33と、論理回路40〜43とが、互いに1対1に対応している。例を述べるならば、LBIST制御回路10と、パタン発生器20と、パタン圧縮器30と、論理回路40とが1対1に対応している。残りのLBIST制御回路11〜13と、パタン発生器21〜23と、パタン圧縮器31〜33と、論理回路41〜43も、互いに1対1に対応している。
パタン発生器20〜23のそれぞれは、対応するLBIST制御回路10〜13からのPRPG制御信号1020〜1023によって、その機能が動作または停止するように切り替えられる。パタン圧縮器30〜33のそれぞれも、対応するLBIST制御回路10〜13からのMISR制御信号1030〜1033によって、その機能が動作または停止するように切り替えられる。この実施の形態1においては、対応するLBIST制御回路10〜13からのPRPG制御信号1020〜1023が、ハイレベルのとき、パタン発生器は動作し、ロウレベルのとき、パタン発生器は動作を停止する。同様に、対応するLBIST制御回路10〜13からのMISR制御信号1030〜1033が、ハイレベルのとき、パタン圧縮器は動作し、ロウレベルのとき、パタン圧縮器は動作を停止する。
LBIST制御回路10を例にして述べると、このLBIST制御回路10が、ハイレベルのPRPG制御信号1020を出力した場合、対応するパタン発生器20は動作する。一方、LBIST制御回路10が、ロウレベルのPRPG制御信号1020を出力した場合、対応するパタン発生器20は動作を停止する。また、このLBIST制御回路10が、ハイレベルのMISR制御信号1030を出力した場合、対応するパタン圧縮器30は動作する。一方、LBIST制御回路10が、ロウレベルのMISR制御信号1030を出力した場合、対応するパタン圧縮器30は動作を停止する。残りのLBIST制御回路11〜13についても同様に、対応するパタン発生器21〜23および対応するパタン圧縮器31〜33の動作を制御する。
パタン発生器20〜23と、対応するパタン圧縮器30〜33は、PRPG/MISRチェーン1010〜1013により、対応するLBIST制御回路10〜13と数珠繋ぎにされている。PRPG/MISRチェーン1010〜1013を介して、対応するパタン発生器と対応するパタン圧縮器と対応するLBIST制御回路において、シフト動作を繰り返しながら、対応するLBIST制御回路10〜13から対応するパタン発生器20〜23へ初期値を供給して、それぞれのパタン発生器10〜30へ初期値を設定する。また、シフト動作を繰り返すことにより、PRPG/MISRチェーン1010〜1013を介して、対応するLBIST制御回路10〜13が、対応するパタン圧縮器30〜33から診断結果を回収する。ここでも、LBIST制御回路10を例にして述べると、PRPG/MISRチェーン1010を介して、パタン発生器20とパタン圧縮器30とLBIST制御回路10間において、シフト動作を繰り返し行う。この繰り返されるシフト動作において、LBIST制御回路10からは、対応するパタン発生器20へ初期値が供給され、設定される。また、シフト動作において、LBIST制御回路10は、パタン圧縮器30からの診断結果を回収する。
論理回路40〜43のそれぞれは、複数のフリップフロップ(FF)と組合せ回路で構成されている。自己診断動作のときには、スキャンチェーン400〜403により、論理回路40〜43における複数のフリップフロップ(FF)のうちの一定個数のフリップフロップ(FF)が数珠繋ぎで接続される。スキャンチェーン400〜403は、その入力側がパタン生成器20〜23に、その出力側がパタン圧縮器30〜33にそれぞれ接続されている。論理回路40を例にすると、自己診断動作のときには、一定個数のフリップフロップ(FF)の入出力が数珠繋ぎに接続され、スキャンチェーン400によって、パタン発生器20からテストパタンが、順次フリップフロップ(FF)に格納される。数珠繋ぎにされたフリップフロップ(FF)に格納されたテストパタンは、組合せ回路に供給される。供給されたテストパタンに従って、組合せ回路が動作し、その動作結果が、複数のフリップフロップ(FF)に入力される。組合せ回路の動作結果が入力されたフリップフロップ(FF)は、数珠繋ぎに接続され、スキャンチェーン400によって、パタン圧縮器30に供給される。パタン圧縮器30は、供給された動作結果を圧縮し、PRPG/MISRチェーン1010を介して診断結果として、対応するLBIST制御回路10へ供給する。論理回路41、42、43においても、論理回路40と同様であり、LBIST制御回路10、11、12、13は独立して制御可能なものである。
この実施の形態1においては、遮断回路50〜53が半導体装置1Eに設けられている。遮断回路50〜53は、自己診断動作のときに、論理回路40、41、42、43間を信号(境界信号)が伝搬しないようにする回路である。自己診断動作のとき、遮断回路50は、例えば論理回路40と41との間を境界信号が伝搬しないように制御し、遮断回路51は、例えば論理回路41と42との間を境界信号が伝搬しないように制御し、遮断回路52は、例えば論理回路42と43との間を境界信号が伝搬しないように制御し、遮断回路53は、例えば論理回路43と40との間を境界信号が伝搬しないように制御する。遮断回路50〜53による遮断とは、自己診断動作のとき、境界信号を所定の電圧(論理値)に固定することを意味している。
例えば、遮断回路50〜53のそれぞれは、遮断する境界信号の数に対応したフリップフロップを有する。このフリップフロップは、半導体装置1EをMUCとして機能させる場合には、自己診断動作のとき遮断する境界信号に従って、その状態が変化するようにする。これにより、MCUとして機能させるときには、論理回路40〜43間を境界信号が伝搬することを可能にする。一方、自己診断動作の場合には、フリップフロップを所定の状態にセットする。これにより、境界信号を所定の電圧(論理値)に固定することが可能となり、論理回路40〜43間を境界信号が伝搬するのを遮断することが可能となる。
この実施の形態1において、LBIST制御回路10〜13のそれぞれは、カウンタ10C、11C、12C、13Cを有している。カウンタ10C〜13Cのそれぞれは、パタン数調整回路60によって、初期値が設定される。すなわち、自己診断動作を開始する前に、パタン数調整回路60によって、カウンタ10C、11C、12Cおよび13Cのそれぞれに初期値が設定される。この実施の形態1においては、設定される初期値の値が、互いに異なるようにされる。例えば、カウンタ10C、11C、12Cおよび13Cの順に、初期値が大きくなるようにされる。すなわち、カウンタ10Cよりもカウンタ11Cの初期値は大きくされ、カウンタ11Cよりもカウンタ12Cの初期値は大きくされ、カウンタ12Cよりもカウンタ13Cの初期値は大きくされる。
自己診断動作が開始すると、カウンタ10C、11C、12Cおよび13Cは、互いに同期してカウントダウンする。また、自己診断動作を開始すると、それぞれのLBIST制御回路10〜13は、実質的に同時に、PRPG制御信号1020〜1023を有効(ハイレベル)にする。PRPG制御信号1020〜1023を有効にした後で、LBIST制御回路10〜13は、実質的に同時に、MISR制御信号1030〜1033を有効(ハイレベル)にする。それぞれのLBIST制御回路10〜13は、それぞれが有しているカウンタ10C、11C、12Cおよび13Cが、カウントダウン動作により、所定の値(例えば、0)になるまでの間、PRPG制御信号1020〜1023およびMISR制御信号1030〜1033を有効にし、所定の値に到達すると、PRPG制御信号1020〜1023およびMISR制御信号1030〜1033を無効(ロウレベル)にする。
例えば、LBIST制御回路10を例にすると、PRPG制御信号1020およびMISR制御信号1030を有効にしたあと、それが有しているカウンタ10Cの値が、0になるまで、PRPG制御信号1020およびMISR制御信号1030を有効な状態に維持する。一方、カウンタ10Cの値が、0に到達すると、LBIST制御回路10は、PRPG制御信号1020およびMISR制御信号1030を無効の状態へ遷移させる。他のLBIST制御回路11〜13も同様である。これにより、パタン発生器は、パタン発生器20から23の順に動作が停止し、パタン圧縮器は、パタン圧縮器30から33の順に動作が停止することになる。これにより、パタン発生器20から23の順に動作が停止するため、論理回路40から43の順に、供給されるテストパタンの変化がなくなることになる。そのため、論理回路40〜43における消費電流は徐々に低下することになり、急激な電流変化を防ぐことが可能となり、電流変化率を小さくすることが可能となる。
なお、図19において、500および501は、電圧配線を示している。ここで、電圧配線500は、回路を動作させるための電源電圧を供給する電圧配線を示しており、電圧配線501は、接地電圧を供給する電圧配線を示している。また、これらの電圧配線500および501は、半導体装置1Eに設けられた電源用外部端子(図示せず)に接続されており、電源用外部端子を介して、半導体装置1Eの外部から電圧配線500および501に電源電圧および接地電圧が供給される。
図20は、実施の形態1に係わる半導体装置1Eの自己診断時の動作を示すフローチャート図である。同図では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが示されている。なお、動作の概要を把握しやすいようにフローチャート図の縦方向については、おおよその時間の経過が表されており、より下にあるイベントがより後に発生するものとする。
図20において、ステップS58、S62、S66、S70、S74、S78、S82〜S86は、LBIST10、パタン発生回路20、論理回路40およびパタン圧縮器30において行われる処理を示しており、ステップS59、S63、S67、S71、S75、S79、S87〜S91は、LBIST11、パタン発生回路21、論理回路41およびパタン圧縮器31において行われる処理を示している。同様に、ステップS60、S64、S68、S72、S76、S80、S92〜S96は、LBIST12、パタン発生回路22、論理回路42およびパタン圧縮器32において行われる処理を示しており、ステップS61、S65、S69、S73、S77、S81、S97〜S101は、LBIST13、パタン発生回路23、論理回路43およびパタン圧縮器33において行われる処理を示している。
LBIST10、パタン発生回路20、論理回路40およびパタン圧縮器30において行われる処理と、LBIST11、パタン発生回路21、論理回路41およびパタン圧縮器31において行われる処理と、LBIST12、パタン発生回路22、論理回路42およびパタン圧縮器32において行われる処理と、LBIST13、パタン発生回路23、論理回路43およびパタン圧縮器33において行われる処理とは、互いに同じである。そのため、ここでは、LBIST10、パタン発生回路20、論理回路40およびパタン圧縮器30において行われる処理を、図20を用いて説明する。
先ず、自己診断動作が開始される。自己診断動作を開始する前に、図19で説明したように、パタン数調整回路60によって、カウンタ10Cに対して初期値が設定されている。自己診断動作が開始されると、カウンタ10Cはカウントダウン動作を開始する。
ステップS58において、LBIST制御回路10は、PRPG/MISRチェーン1010を通して、初期値をパタン発生器20に設定する。次に、ステップS62において、PRPG制御信号1020を有効(ハイレベル)にする。これにより、スキャンチェーン400を通して、初回のテストパタン(テストデータ)が、パタン発生器20から論理回路40に入力される(ステップS66)。
次に、ステップS70において、LBIST制御回路10は、MISR制御信号1030を有効(ハイレベル)にする。論理回路40は、ステップS66で入力されたテストパタンに従って動作する(ステップS74)。ステップS78において、パタン発生器20は、スキャンチェーン400を通して、二回目以降のテストパタン(テストデータ)を論理回路40に入力し、スキャンチェーン400を通して、パタン圧縮器30は、ステップS74で更新された論理回路の結果を受け取り、テスト結果を圧縮する。
次に、ステップS82において、テストが終了か否かの判定を行う。この実施の形態1においては、カウンタ10Cがカウントダウンされたことにより、所定の値(0)に到達したか否かの判定が、このステップS82において行われる。カウンタ10Cのカウント値が所定の値に到達していなければ、ステップS74、S78およびS82を繰り返し実行する。一方、カウンタ10Cのカウント値が所定の値に到達していれば、ステップS83を実行する。ステップS83においては、LBIST制御回路10は、PRPG制御信号1020を無効(ロウレベル)にする。スキャンチェーン400を通して、更新された論理回路の結果をパタン圧縮器30が受け取り、テスト結果を圧縮する(ステップS84)。その後、LBIST制御回路10は、MISR制御信号1030を無効(ロウレベル)にする(ステップS85)。
ステップS86において、PRPG/MISRチェーン1010を通して、パタン圧縮器30に格納されているテスト結果を、LBIST制御回路10が回収し、期待値との照合を行う。
以上述べた動作と同様に動作が、LBIST11〜13、パタン発生回路21〜23、論理回路41〜43およびパタン圧縮器31〜33において行われ、自己診断動作が終了する。LBIST制御回路10〜13のそれぞれに設けられているカウンタ10C、11C、12Cおよび13Cの初期値が異なっているため、ステップS82、S87、S92およびS97においてテスト終了と判定する時間が異なる。これにより、論理回路40〜43が、動作を停止する停止タイミングが異なるようにされている。
図21(A)〜(H)は、図20で説明した動作を、波形で示した波形図である。図21において、横軸は時間を示しており、縦軸は、電圧を示している。ここで、図21(A)は、PRPG制御信号1020の波形、図21(C)は、PRPG制御信号1021の波形、図21(E)は、PRPG制御信号1022の波形、図21(G)は、PRPG制御信号1023の波形を示している。また、図21(B)は、MISR制御信号1030の波形、図21(D)は、MISR制御信号1031の波形、図21(F)は、MISR制御信号1032の波形、図21(H)は、MISR制御信号1033の波形を示している。また、図21において、横軸に沿って添えられた符号S58〜S101は、図20で説明したステップS58〜S101に対応している。
ここで、S66からS84までの期間が、論理回路40の有効なテスト範囲であり、S66からS89までの期間が論理回路41の有効なテスト範囲である。同様に、S66からS94までの期間が、論理回路42の有効なテスト範囲であり、S66からS99までの期間が、論理回路43の有効なテスト範囲となっている。それぞれの有効なテスト範囲の期間において、パタン発生器20、21、22、23が生成したテストパタンにより、論理回路40〜43がランダムな動作を繰り返して電力を消費する。
図22は、実施の形態1に係わる半導体装置1Eにおける自己診断動作時の電流波形を模式的に示した波形図である。同図において、横軸は時間を示しており、縦軸は消費電流の大きさを示している。消費電流は、同図において上に行けば大きくなるものとする。横軸に沿って添えられた符号S58〜S101は、図24で説明したステップS58〜S101に対応している。
図22に示すように、消費電流は、テストパタンの供給が始まるステップS62から徐々に増し、ステップS74からS81の繰り返し動作が発生している時刻にピークに達する。その後、ステップS83のイベントによりPRPG制御信号1020がロウレベルになり、パタン発生器20が停止状態になったあたりから徐々に減少し、ステップS85のMISR制御信号1030がロウレベルになり、パタン圧縮回路30が停止状態になったあたりで、論理回路40で消費されていた電力分の電流が減少する。これは、パタン発生器20やパタン圧縮器30の動作が停止することにより、論理回路40の論理値変化が発生しなくなるためである。その後、所定の時間間隔をおいて、論理回路41、42、43の順に、論理回路40と同じ手順で停止する。
図23は、実施の形態1に係わる半導体装置1Eにおける単位時間当たりの電流変動を示した波形図である。同図において、横軸は時間を示しており、縦軸は電流変動の大きさを示している。中心線は0として電流の変動が無いことを示している。電流が増えれば上に伸び、電流が減れば下に伸びるものとする。横軸に沿って添えられた符号S58〜S101は、図24で説明したステップS58〜S101に対応している。
図28と図23とを比べると、実施の形態1に係わる半導体装置1Eにおいては、時間当たりの電流値の変化、すなわち電流変化率(di/dt)を低く抑えることができていることが分かり、許容値上限および許容値下限(例えば、80mA/20us)も満たせている。
なお、図19に示した各回路は、周知の半導体技術により、1個の半導体基板に形成されている。また、カウンタ10C、11C、12Cおよび13Cは、互いに同期してカウントダウンするように説明したが、勿論、互いに同期してカウントアップするようにしてもよい。この場合、先に説明したカウントダウン動作はカウントアップ動作となる。
(実施の形態2)
<半導体装置の全体構成>
図1は、実施の形態2に係わる半導体装置の全体的な構成を示すブロック図である。同図において、1Aは、半導体装置を示しており、半導体装置1AによりMCUが構成されている。MCUの機能を達成するために、半導体装置1Aには、複数の論理回路が内蔵されている。これらの複数の論理回路のうちの一部の論理回路が、同図には、40〜43として示されている。また、実施の形態1と同様に、論理回路の自己診断を行うために、半導体装置1Aは、LBIST制御回路10と、パタン発生器(PRPG)20、21、22、23と、パタン圧縮器(MISR)30、31、32、33を備えている。特に制限されないが、この実施の形態1においては、パタン発生器20〜23と、パタン圧縮器30〜33と、論理回路40〜43とが1対1に対応している。
半導体装置1Aは、さらに、パタン発生器20〜23に接続され、これらのパタン発生器20〜23を制御するPRPG制御回路2Aと、パタン圧縮器30〜33に接続され、パタン圧縮器30〜33を制御するMISR制御回路3Aとを備えている。PRPG制御回路2AおよびMISR制御回路3Aは、LBIST制御回路10に接続され、LIBST制御回路10によって制御されている。
パタン発生器20〜23のそれぞれは、PRPG制御回路2AからのPRPG制御信号200〜203により、その動作が制御され、パタン圧縮器30〜33のそれぞれは、MISR制御回路3AからのMISR制御信号300〜303により、その動作が制御される。PRPG制御回路2AおよびMISR制御回路3Aによる制御を、パタン発生器20およびパタン圧縮器30を例にして説明すると、次のようになる。PRPG制御回路2Aは、PRPG制御信号200により、パタン発生器20の機能を動作または停止させるように切り替える。例えば、PRPG制御回路2Aは、PRPG制御信号200をハイレベルにすることにより、パタン発生器20の機能を動作させ、PRPG制御信号200をロウレベルにすることにより、パタン発生器20の機能を停止させる。同様に、MISR制御回路3Aは、MISR制御信号300をハイレベルにすることにより、パタン圧縮機30の機能を動作させ、MISR制御信号300をロウレベルにすることにより、パタン圧縮器30の機能を停止させる。
残りのパタン発生器21〜23についても、パタン発生器20と同様に、PRPG制御回路2Aは、それぞれのパタン発生器21〜23に対応したPRPG制御信号201〜203をハイレベルにすることにより、対応するパタン発生器21〜23の機能を動作させ、PRPG制御信号201〜203をロウレベルにすることにより、対応するパタン発生器21〜23の機能を停止させる。また、残りのパタン圧縮器31〜33についても、パタン圧縮器30と同様に、MISR制御回路3Aは、それぞれのパタン圧縮器31〜33に対応したMISR制御信号301〜303をハイレベルにすることにより、対応するパタン圧縮器31〜33の機能を動作させ、MISR制御信号301〜303をロウレベルにすることにより、対応するパタン圧縮器31〜33の機能を停止させる。
PRPG制御回路2Aは、それぞれのパタン発生器20〜23に対応したPRPG制御信号200〜203をハイレベル/ロウレベルとすることに、別々に制御することが可能とされている。また、MISR制御回路3Aも、それぞれのパタン圧縮器30〜33に対応したMISR制御信号300〜303をハイレベル/ロウレベルとすることに、別々に制御することが可能とされている。
全てのパタン発生器20〜23と全てのパタン圧縮器30〜33は、PRPG/MISRチェーン101によって、LBIST制御回路10と数珠繋ぎになっている。PRPG/MISRチェーン101を介して、データが、パタン発生器20〜23とパタン圧縮器30〜33とLBIST制御回路10との間をシフトする。このデータとしては、パタン発生器20〜23に設定する初期値と、圧縮されたテスト結果が含まれる。LIBST制御回路10は、シフト動作を繰り返しながら、初期値を、PRPG/MISRチェーン101を介してパタン発生器20〜30に供給して、それぞれのパタン発生器20〜23に初期値を設定する。また、シフト動作を繰り返すことにより、パタン圧縮器30〜33における圧縮されたテスト結果が、順次、PRPG/MISRチェーン101を介してLBIST制御回路10に回収する。
論理回路40〜43については、後で一例を図面を用いて詳しく説明するが、それぞれの論理回路40〜43は、複数のフリップフロップ(FF)と組合せ回路とを有している。複数のフリップフロップは、自己診断動作のとき、スキャンチェーン400により、一定個数のフリップフロップの入出力が数珠繋ぎに接続される。スキャンチェーン400の入力側はパタン発生器20〜23に接続され、その出力側はパタン圧縮器30〜33に接続される。自己診断動作においては、スキャンチェーン400を通して、対応するパタン発生器20〜23からのテストパタンが順次フリップフロップに取り込まれる。フリップフロップに取り込まれたテストパタンは、組合せ回路に供給され、テストパタンに従って組合せ回路が動作する。組合せ回路が動作することにより得られたデータ(テスト結果)は、数珠繋ぎに接続されたフリップフロップに供給され、スキャンチェーン400を通して、フリップフロップから順次パタン圧縮器30〜33へ供給される。
スキャンチェーン400を通して、パタン圧縮器30〜33に供給されたテスト結果は、圧縮され、圧縮されたテスト結果は、PRPG/MISRチェーン101を介して、LBIST制御回路10に供給される。LBIST制御回路10に回収されたテスト結果は、期待値を参照にして、判定を行い、自己診断を行う。
図1において、500および501は、実施の形態1と同様に、電圧配線を示している。電圧配線500、501は、パタン発生器20〜23、パタン圧縮器30〜33、論理回路40〜43、PRPG制御回路2A、MISR制御回路3AおよびLBIST制御回路10に接続されている。実施の形態1と同様に、電圧配線500は、接続された各回路を動作させるための電源電圧を、各回路へ給電し、電圧配線501は、各回路へ接地電圧を供給する。実施の形態1と同様に、これらの電圧配線500および501は、半導体装置1Aに設けられた電源用外部端子(図示せず)に接続されており、電源用外部端子を介して、半導体装置1Eの外部から電圧配線500および501に電源電圧および接地電圧が供給される。
図1において、102、103、104、105―I、105−O、106、107Lは、信号を示しており、これらの信号102、103、104、105―I、105−O、106、107Lについては、あとで説明するが、信号104はクロック信号であり、半導体装置1Aに設けられた外部端子(図示せず)を介して外部から供給される。
特に制限されないが、図1に示した半導体装置1Aは、周知の半導体製造技術によって製造されており、図1に示した回路ブロックは、1個の半導体基板に形成されている。
<PRPG制御回路>
図6は、実施の形態2に係わるPRPG制御回路2Aの構成を示すブロック図である。PRPG制御回路2Aは、複数のPRPG停止回路2A10〜2A12と、制御回路2A24−Cとを備えている。複数のPRPG停止回路2A10〜2A12のそれぞれは、互いに同じ構成を有しており、図6には、PRPG停止回路2A10が、代表として、その構成が詳しく示されている。この実施の形態2においては、PRPG停止回路2A10〜2A12は、パタン発生器20〜22に1対1に対応している。
制御回路2A24−Cは、PRPG停止回路2A10〜2A12を制御する制御回路であり、1個の制御回路2A24によって、複数のPRPG停止回路2A10〜2A12が制御される。この制御回路2A24−Cは、フリップフロップ2A24と、組合せ回路2A25とを有している。ここで、組合せ回路2A25は、LBIST制御回路10からのPRPG制御信号102と、リセット信号106と、フリップフロップ2A24の出力とを受け、またフリップフロップ2A24は、組合せ回路2A25の出力を受ける。
LBIST制御回路10は、PRPG制御回路2Aをリセットするとき、リセット信号106をハイレベルにし、リセットを解除するとき、リセット信号106をロウレベルにアサートする。組合せ回路2A25は、2入力アンド(AND)回路2A25−Aと2入力オア回路(OR)2A25−Oとを有している。ここで、2入力アンド回路2A25−Aの一方の入力には位相反転したリセット信号106が供給され、2入力アンド回路2A25−Aの他方の入力には、2入力オア回路2A25−Oの出力が供給されている。なお、リセット信号106を位相反転するインバータ回路が、図6では2入力アンド回路2A25−Aの一方の入力に付されている○印で示されている。また、2入力オア回路2A25−Oの一方の入力には、LBIST制御回路10からのPRPG制御信号102が供給され、その他方の入力にはフリップフロップ2A24の出力が供給されている。
リセットのときには、リセット信号106がハイレベルとなるため、2入力アンド回路2A25−Aの出力はロウレベルとなる。フリップフロップ2A24は、この2入力アンド回路2A25−Aの出力を取り込み、保持し、取り込んだレベルを出力し続ける。そのため、リセットのときには、フリップフロップ2A24の出力はロウレベルとなる。一方、LBIST制御回路10により、リセット信号106がロウレベルへアサートされ、リセットが解除されると、2入力アンド回路2A25−Aは、2入力オア回路2A25−Oの入力の電圧(論理値)に従った電圧をフリップフロップ2A24へ入力する。
LBIST制御回路10は、パタン発生器20〜23を起動状態にするとき、言い換えるならばPRPG制御回路2Aを起動状態にするとき、PRPG制御信号102をハイレベルにし、停止状態にするとき、PRPG制御信号102をロウレベルにする。リセット状態を解除したとき、PRPG制御信号102がロウレベルであれば、2入力オア回路2A25−Oの出力はロウレベルのため、フリップフロップ2A24は、ロウレベルを保持し続け、ロウレベルを出力する。一方、リセットを解除したとき、PRPG制御回路2Aを起動状態にするように、PRPG制御信号102をハイレベルにすると、2入力オア回路2A25−Oの出力はハイレベルとなり、フリップフロップ2A24はハイレベル(論理値“1”)を取りこみ、その出力はロウレベルからハイレベルへと変化する。フリップフロップ2A24の出力は、2入力オア回路2A25−Oの他方の入力に供給されているため、以後はPRPG制御信号102がロウレベルへ変化しても、フリップフロップ2A24の出力はハイレベルに維持される。LBIST制御回路10が、再びリセットを指示するように、リセット信号106をハイレベルにするまで、このフリップフロップ2A24のハイレベルは維持され続けることになる。
フリップフロップ2A24の出力が、制御回路2A24−Cの出力である。そのため、このフリップフロップ2A24が、PRPG制御回路2Aによる制御の開始と終了を司っていると見なすこともできる。
次に、PRPG停止回路2A10〜2A12の構成を説明する。これらのPRPG停止回路2A10〜2A12は、先の述べたように、互いに同じ構成を有しているので、代表として示したPRPG停止回路2A10を例にして説明する。
PRPG停止回路2A10は、カウンタ2A20、レジスタ2A21、比較器2A22、組合せ回路2A26、フリップフロップ2A23および2入力アンド回路2A27を有している。カウンタ2A20は、半導体装置1Aの外部から供給されるクロック信号104を受け、クロック信号104をカウントするカウンタである。特に制限されないが、この実施の形態2において、自己診断動作は、このクロック信号104に同期して実行される。
レジスタ2A21は、LBIST制御回路10から、このPRPG停止回路2A10に供給されるレジスタ設定信号105−Iによって、その値が設定されるレジスタである。
LBIST制御回路10は、それぞれのPRPG停止回路2A10〜2A12に対して、それぞれに対応したパタン発生器20〜22において発生されるテストパタンを停止させる停止タイミングに応じた値を、供給し、レジスタ2A21に格納する。このPRPG停止回路2A10を例にすると、このPRPG停止回路2A10に対応したパタン発生器20において発生するテストパタンを停止する停止タイミングに応じた値を、レジスタ設定信号105−Iとして、レジスタ2A21へ供給し、レジスタ2A21へ格納する。
比較器2A22は、カウンタ2A20のカウント値と、レジスタ2A21に格納されている値とを比較する。カウンタ2A20がクロック信号104をカウントすることにより、そのカウント値が、例えば大きくなり、レジスタ2A21に格納されている値と、カウンタ2A20のカウント値とが一致すると、比較器2A22は、ハイレベルの信号を出力する。
組合せ回路2A26は、2入力オア回路2A26−Oと2入力アンド回路2A26−Aとを有している。2入力アンド回路2A26−Aの一方の入力には、制御回路2A24−Cの出力が供給されており、この2入力アンド回路2A26−Aの他方の入力には、2入力オア回路2A26−Oの出力が供給されている。2入力アンド回路2A26−Aの出力が、組合せ回路2A26の出力とされ、組合せ回路2A26の出力はフリップフロップ2A23に入力されている。2入力オア回路2A26−Oの一方の入力に上記した比較器2A22の出力が供給され、その他方の入力には、上記したフリップフロップ2A23の出力が供給されている。
上記したように、制御回路2A24−Cは、リセットを解除し、PRPG制御回路2Aが起動状態にされている期間において、ハイレベルを出力し、リセット状態およびPRPG制御回路2Aを起動していないとき、ロウレベルを出力する。そのため、2入力アンド回路2A26−Aは、リセット状態およびPRPG制御回路2Aが起動されていない期間においては、ロウレベルをフリップフロップ2A23の入力に供給する。
一方、リセットが解除され、PRPG制御回路2Aが起動状態となっている期間においては、2入力アンド回路2A26−Aは、2入力オア回路2A26−Oの入力に従った電圧をフリップフロップ2A23の入力に供給する。例えば、この期間において、比較器2A22の出力がハイレベルとなれば、2入力アンド回路2A26−Aは、ハイレベルを組合せ回路2A26の出力として、フリップフロップ2A23へ供給する。これにより、フリップフロップ2A23は、ハイレベルを取りこみ、格納する。ハイレベルを格納することにより、フリップフロップ2A23からの出力電圧は、ロウレベルからハイレベルへ変化する。このハイレベルの電圧が、2入力オア回路2A26−Oの他方の入力に供給されるため、比較器2A22の電圧が、例えロウレベルへ変化しても、フリップフロップ2A23は、ハイレベルの電圧を継続して出力する。フリップフロップ2A23から出力されている電圧は、制御回路2A24−Cの電圧が、ロウレベルになることにより、ハイレベルからロウレベルへ変化することになる。
フリップフロップ2A23の出力は、2入力アンド回路2A27の一方の入力に供給される。ここで、2入力アンド回路2A27の一方の入力に付した○印はインバータ回路を意味している。そのため、フリップフロップ2A23の出力は位相反転され、2入力アンド回路2A27の一方の入力に供給されることになる。また、2入力アンド回路2A27の他方の入力には、PRPG制御信号102が供給されている。これにより、2入力アンド回路2A27は、PRPG制御信号102が、ハイレベルで、フリップフロップ2A23の出力がロウレベルの期間において、ハイレベルを出力することになる。フリップフロップ2A23は、PRPG制御回路2Aを起動した後、カウンタ2A20のカウント値が、レジスタ2A21に格納されている値に到達するまで(一致するまで)、ロウレベルを出力する。
そのため、LBIST制御回路10が、PRPG制御回路2Aを起動した後、レジスタ2A21に格納されている値に相当する時間が経過するまで、2入力アンド回路2A27は、ハイレベルを出力し、レジスタ2A21に格納されている値に相当する時間を経過すると、2入力アンド回路2A27は、ロウレベルを出力する。この2入力アンド回路2A27の出力が、対応するパタン発生器20に供給されるPRPG制御信号200となる。また、フリップフロップ2A23の出力が、MISR制御回路3Aに供給されるMISR停止信号108となる。
残りのPRPG停止回路2A11、2A12のそれぞれについても、上記したPRPG停止回路2A10と同様な構成と動作を行う。すなわち、PRPG停止回路2A11においては、PRPG制御回路2Aを起動した後、PRPG停止回路2A11に設けられているレジスタ2A21に格納された値に対応する時間が経過するまで、ハイレベルのPRPG制御信号201を、対応するパタン発生器21へ供給する。一方、レジスタ2A21に格納された値に対応する時間を経過すると、PRPG停止回路2A11は、ロウレベルのPRPG制御信号201を、対応するパタン発生器21へ供給する。また、PRPG停止回路2A12においては、PRPG制御回路2Aを起動した後、PRPG停止回路2A12に設けられているレジスタ2A21に格納された値に対応する時間が経過するまで、ハイレベルのPRPG制御信号202を、対応するパタン発生器22へ供給する。一方、レジスタ2A21に格納された値に対応する時間を経過すると、PRPG停止回路2A12は、ロウレベルのPRPG制御信号202を、対応するパタン発生器22へ供給する。
PRPG停止回路2A11および2A12においても、PRPG停止回路2A10と同様に、MISR停止信号201−108、202−108を出力する。しかしながら、この実施の形態2においては、PRPG停止回路2A11および2A12により形成されたMISR停止信号201−108、202−108は、MISR制御回路3Aには、供給されない。
この実施の形態2においては、PRPG停止回路2A10〜2A12のそれぞれにおけるレジスタ2A21へ、PRPG制御回路2Aを起動する前に、LBIST制御回路10が、時間に相当する値を、それぞれ設定する。このとき、PRPG停止回路2A10〜2A12のそれぞれにおけるレジスタ2A21へ設定する時間が、互いに異なるような値を設定する。具体的には、例えば、PRPG停止回路2A10のレジスタ2A21へ設定する値は、最も短くなる時間に相当する値を設定し、PRPG停止回路2A11のレジスタ2A21へ設定する値は、次に短くなる時間に相当する値を設定し、PRPG停止回路2A12のレジスタ2A21へ設定する値は、最も長くなる時間に相当する値を設定する。
このようにPRPG停止回路2A10〜2A12内のレジスタ2A21に設定する時間の長さを変えることにより、PRPG制御回路2Aを起動(PRPG制御信号102をハイレベルへ変化)すると、MISR停止信号108、201−108、202−108の順に、その電圧がロウレベルからハイレベルへ変化することになる。あとで説明するが、MISR停止信号は、パタン圧縮器30〜33の機能を停止させるために用いられる。最も早くハイレベルへ変化するMISR停止信号108によって、パタン圧縮器30〜33を停止させることにより、パタン圧縮器が不要に動作することを低減することが可能となり、消費電力の低減も図ることが可能となる。この場合、PRPG制御信号は、PRPG制御信号200、201、202の順にロウレベルとなる。
また、この実施の形態2においては、パタン発生器23に供給されるPRPG制御信号203は、PRPG制御信号102がそのまま用いられている。
この実施の形態2においても、パタン発生器20〜23は、対応するPRPG制御信号200〜203により制御される。すなわち、対応するPRPG制御信号200〜203が、ハイレベルとなることにより、パタン発生器20〜23は動作する。動作することにより、パタン発生器20〜23は、テストパタンを発生し、スキャンチェーン400を通して対応する論理回路40〜43に供給する。一方、対応するPRPG制御信号200〜203がロウレベルへ変化することにより、対応するパタン発生器20〜23は動作を停止する。この場合、パタン発生器20〜23が動作を停止するとは、パタン発生器20〜23から出力される信号が所定の電圧に固定され、時間的に変化しないことを意味している。そのため、パタン発生器20〜23が動作を停止すると、テストパタンも停止すると見なすことができる。
この実施の形態2によれば、PRPG制御信号102によって、PRPG制御回路2Aが起動されると、この起動に応答して、PRPG制御信号200〜203のそれぞれが、実質的に同時にハイレベルとなる。これにより、パタン発生器20〜23のそれぞれが動作を開始し、それぞれがテストパタンを発生して、論理回路40〜43へ供給することになる。その後、PRPG停止回路2A10〜2A12のそれぞれのレジスタ2A21に予め設定した時間に関する値に基づき、時間が経過すると、PRPG制御信号200、201、202の順に、その電圧がハイレベルからロウレベルへ変化する。その結果、論理回路40、41、42の順に、パタン発生器20〜22から供給される信号の電圧が固定され、論理回路40、41、42の順に、消費電流が削減される。この結果として、急激に消費電流が変動することを防ぐことが可能となる。
PRPG制御回路2Aに設けるPRPG停止回路の個数は、半導体装置1Aに搭載するパタン発生器の個数に応じて増減し、最大でもパタン発生器の個数と同じとなる。しかしながら、パタン発生器の個数を上限として制限するものではない。また、複数のパタン発生器に対して1つのPRPG停止回路を共有させても良い。PRPG制御信号203のように、PRPG停止回路によって制御されないPRPG制御信号があってもよい。
また、PRPG停止回路2A10〜2A12からのそれぞれのMISR停止信号(108、201−108、202−108)間で論理和の演算を実行し、求めた論理和の結果を、停止信号108(図1)としてよい。この場合には、PRPG停止回路2A10のレジスタ2A21に設定する時間に関する値が、最も短い時間に対応する値でなくてもよい。すなわち、論理和を求めることにより、最も早くロウレベルとなるMISR停止信号のタイミングが、MISR制御回路3Aに伝達されることになるため、それぞれのレジスタに設定する値の自由度を増すことが可能となり、自己診断動作の設定を容易化することが可能となる。
また、制御回路2A24−C、PRPG停止回路2A10〜2A12の構成は、図6に示した構成に限定されるものではない。例えば、PRPG停止回路2A10〜2A12のそれぞれに設けられているカウンタ2A21は、1個の共通カウンタとしてもよい。この場合には、それぞれのPRPG停止回路において、共通カウンタの値とレジスタの値とを比較すればよい。また、カウンタ2A21および共通カウンタは、クロック信号104に基づいて、カウントアップ動作によりカウント値を求めるようにしてもよいし、カウントダウン動作によりカウント値を求めるようにしてもよい。
PRPG停止回路2A10〜2A12のそれぞれにおけるレジスタ2A21に時間に関する値を設定する際、PRPG停止回路2A10〜2A12のそれぞれにおけるレジスタ2A21は、直列接続される。すなわち、PRPG停止回路2A10内のレジスタ2A21の出力が、PRPG停止回路2A11内のレジスタ2A21の入力に接続され、PRPG停止回路2A11内のレジスタ2A21の出力が、PRPG停止回路2A12内のレジスタ2A21の入力に接続される。これらの直列接続されたレジスタをシフトレジスタとして動作させる。それぞれのレジスタ2A21に設定する値は、レジスタ設定信号105−Iとして、LBIST制御回路10から、PRPG停止回路2A10内のレジスタ2A21の入力へ、順次供給する。このとき、直列に接続されたレジスタをシフトレジスタとして動作させることにより、PRPG停止回路2A10〜2A12のそれぞれにおけるレジスタ2A21に、時間に関する値(初期値)を設定することが可能となる。
また、それぞれのレジスタ2A21を直列接続し、シフトレジスタとして動作させることにより、それぞれのレジスタ2A21に格納されていた値を、レジスタ設定信号105−Oとして、LBIST制御回路10は読み出すことが可能である。
勿論、それぞれのレジスタ2A21に別々にレジスタ設定信号105−Iとして、時間に関する初期値を設定するようにしてもよい。
<MISR制御回路3A>
図7は、実施の形態2に係わるMISR制御回路3Aの構成を示すブロック図である。MISR制御回路3Aは、2入力アンド回路3A10と2入力オア回路3A11とを有している。2入力アンド回路3A10の一方の入力には、図6において説明したMISR制御信号108が位相反転して供給され、その他方の入力には、LBIST制御回路10からのMISR制御信号103が供給される。ここで、2入力アンド回路3A10の一方の入力に付されている○印はインバータ回路を示しており、MISR制御信号108は、○印のインバータ回路により位相反転されて、2入力アンド回路3A10の一方の入力に供給されていることを示している。
2入力アンド回路3A10の出力は、パタン圧縮器30〜33にMISR制御信号300〜303として供給される。また、MISR停止信号108とLBIST制御回路10からのスキャンイネーブル信号107Lは、2入力オア回路3A11に供給され、2入力オア回路3A11の出力は、論理回路40〜43のそれぞれに対して、スキャンイネーブル信号107として供給される。
LBIST制御回路10は、MISR制御回路3Aを起動するとき、MISR制御信号103をハイレベルにし、MISR制御回路3Aを停止するとき、MISR制御信号103をロウレベルにする。一方、MISR停止信号108は、図6において説明したように、PRPG制御回路2Aを起動したあと、レジスタ2A21に格納されている値とカウンタ2A20によるカウント値とが一致するまで、ロウレベルとなり、レジスタ2A21の値とカウント値とが一致すると、ハイレベルとなる。すなわち、PRPG制御回路2Aを起動したあと、レジスタ2A21に設定されている時間が経過するまでは、MISR停止信号108はロウレベルとなり、時間を経過すると、MISR制御信号108はハイレベルとなる。
そのため、LBIST制御回路10が、MISR制御回路3Aを起動したあと、レジスタ2A20に設定されている時間を経過するまでは、2入力アンド回路3A10は、MISR制御信号300〜303のそれぞれをハイレベルにし、時間を経過すると、MISR制御信号300〜303のそれぞれをロウレベルにする。
MISR制御回路3Aから出力されるMISR制御信号300〜303は、パタン圧縮器30〜33に1対1に対応している。パタン圧縮器30〜33のそれぞれは、対応するMISR制御信号300〜303がハイレベルのときに動作し、対応するMISR制御信号300〜303がロウレベルとなることにより動作を停止する。
パタン圧縮機30〜33のそれぞれは、それらが動作しているとき、論理回路40〜43からの動作結果(テスト結果)を、スキャンチェーン400を通して受け取り、圧縮し、PRPG/MISRチェーン101を通して、LBIST制御回路10へ供給する。レジスタ2A21に設定されている時間を経過すると、これらの動作が停止する。
LBIST制御回路10は、自己診断動作において、テストパタンを論理回路40〜43内のフリップフロップFFへ、順次転送する際に、スキャンイネーブル信号107Lをハイレベルにし、論理回路40〜43の動作結果(テスト結果)をフリップフロップFF取り込むとき、すなわちキャプチャ動作のとき、スキャンイネーブル信号107Lをロウレベルにする。PRPG制御信号200が、ハイレベルのとき、パタン発生器20がテストパタンを発生する。このとき、図6で説明したように、MISR停止信号108はロウレベルである。しかしながら、LBIST制御回路10が、ハイレベルのスキャンイネーブル信号107Lを出力しているため、2入力オア回路3A11からは、ハイレベルのスキャンイネーブル信号107が、それぞれの論理回路40〜43に供給されているため、テストパタンは論理回路40〜43内のフリップフロップFFを順次転送することが可能とされている。また、LBIST制御回路10が、スキャンイネーブル信号107Lをロウレベルとすることにより、2入力オア回路3A11は、スキャンイネーブル信号107をロウレベルにするため、キャプチャ動作によって、論理回路の動作結果によりフリップフロップFFを更新することが可能となる。
一方、MISR停止信号108が、パタン圧縮器40〜43を停止させるために、ハイレベルとなると、2入力オア回路3A11は、ハイレベルのスキャンイネーブル信号107を出力する。これにより、パタン圧縮器40〜43を停止したときは、キャプチャ動作が行われるのを防ぐことが可能となり、無効な動作結果が論理回路内のフリップフロップに取り込まれるのを防ぐことが可能となる。
<論理回路40の例>
次に、論理回路40〜43のうち、論理回路40の構成例を説明する。ここでは、自己診断動作のときの構成を説明する。図18は、論理回路40内の一部の構成を示すブロック図である。
図18において、40A1〜40A3のそれぞれは、組合せ回路であり、40B1、40B2は、フリップフロップ(保持回路)であり、40C1、40C2はセレクタである。同図においては、説明を容易にするために、5個のフリップフロップ40B1と5個のフリップフロップ40B2が示されている。フリップフロップ40B1のそれぞれの入力は、セレクタ40C1を介して、前段のフリップフロップ40B1の出力と、組合せ回路40A1の出力とに接続されている。最前段のフリップフロップ、すなわち同図において最も左側に示したフリップフロップ40B1には、前段のフリップフロップ40B1が存在しないため、スキャンチェーン400を通して、対応するパタン発生器20の出力に接続されている。また、最後段のフリップフロップ40B1の出力は、スキャンチェーン400を通して、パタン圧縮器40の入力に接続されている。
フリップフロップ40B1のそれぞれは、セレクタ40C1の出力を受け、クロック信号104に同期して、セレクタ40C1の出力を取り込み、保持するとともに、出力する。例えば、クロック信号104の立ち上がりに同期して、セレクタ40C1の出力を取り込み、保持して、出力する。セレクタ40C1のそれぞれは、スキャンイネーブル信号107の電圧に従って、論理回路40A1からの出力または前段(スキャンチェーン400を含む)からの出力を選択し、出力する。すなわち、スキャンイネーブル信号107の電圧がハイレベルのとき、セレクタ40C1は、前段(スキャンチェーン400)からの出力をフリップフロップ40B1へ出力する。一方、スキャンイネーブル信号107の電圧がロウレベルのとき、セレクタ40C1は、論理回路40A1の出力をフリップフロップ40B1へ出力する。また、フリップフロップ40B1の出力は、組合せ回路40A2へ入力として供給されている。
組合せ回路40A1、40A2、40A3およびフリップフロップ40B1、40B2のそれぞれは、電圧配線500、501に接続されており、電圧配線500を介して、これらの回路を動作させるための電源電圧が供給され、電圧配線501を介して接地電圧が供給されている。
自己診断動作においては、先ず、MISR制御回路2Aから出力されるスキャンイネーブル信号107はハイレベルにされる。これにより、セレクタ40C1は、前段(スキャンチェーン400)からの出力をフリップフロップ40B1へ出力する。クロック信号104の電圧が周期的に変化することにより、スキャンチェーン400に供給されたテストパタンが、順次フリップフロップ40B1に伝達される。すなわち、同図において、左側から右側に向かって、テストパタンが移動し、フリップフロップ40B1内に順次格納される。言い換えるならば、複数のフリップフロップ40B1によってシフトレジスタが構成され、クロック信号104の変化に従って、テストパタンがシフトレジスタ内を移動する。この場合、テストパタンは、シフトレジスタ内を移動するシフトデータと見なすこともできる。
シフトレジスタ内をシフトデータが移動するとき、論理回路40A2には、フリップフロップ40B1の出力が供給されているため、論理回路40A2は、フリップフロップ40B1の出力に従って動作する。すなわち、論理回路40A2内の状態が、それに供給される電圧(論理値)に従って、変化する。この状態の変化により、電圧配線500、501を流れる電流の値が変化する。
リセット信号106によりリセットの状態を解除したときのように、自己診断動作を開始した時点では、例えばフリップフロップ40B1のそれぞれは、例えば論理値“0”を格納している。この論理値“0”に対応するフリップフロップ40B1の出力が組合せ回路40A2に供給されていることになる。自己診断動作を開始すると、同図において、左側から右側に向かったテストパタンが移動するため、フリップフロップの状態は、左側から右側に向かって、テストパタンに従って変化する。すなわち、自己診断動作を開始した時点では、組合せ回路40A2に供給される論理値は、同図において左側の組合せ回路部分に供給される論理値が変わっており、右側の組合せ回路部分に供給される論理値は変わっていない。その結果、組合せ回路40A2において、左側の部分において消費電流の変化が生じるが、右側の部分においての消費電流の変化は少ない。
一方、自己診断動作が進むと、同図に示した5個のフリップフロップ40B1の全てに、テストパタンが格納された状態となる。この状態で、例えば、クロック信号104に同期してフリップフロップ40B1がテストパタンをさらに取り込むと、組合せ回路40A2に供給されている5個のフリップフロップ40B1のそれぞれに格納されている論理値の多くが変化するようになる。すなわち、組合せ回路40A2の左側の回路部分に供給される論理値と右側の回路部分に供給される論理値の両方が変化するようになる。そのため、自己診断動作が進行すると、自己診断動作を開始したときに比べて、組合せ回路40A2において消費される消費電流が大きくなる。
自己診断動作が進行しているときに、パタン発生器を停止させると、大きくなっている消費電流を急激に低下させることになるため、特に電圧配線501における電圧が急激に上昇することになる。そのため、パタン発生器を停止させる停止タイミングを変えることが、特に望ましい。
スキャンイネーブル信号107が、ロウレベルに変化することにより、セレクタ40C1は、組合せ回路40A1からの出力をフリップフロップ40B1へ供給する。クロック信号104が変化することにより、フリップフロップ40B1は、組合せ回路40A1からの出力を取り込み、格納する。その後、スキャンイネーブル信号107をハイレベルにし、クロック信号104を変化させることにより、フリップフロップ40B1に格納されている論理回路40A1の出力が、同図において、左側から右側へ移動し、スキャンチェーン400を通して、順次パタン圧縮器40に供給される。この実施の形態においては、パタン圧縮器を停止したとき、スキャンイネーブル信号107がハイレベルとなる。そのため、フリップフロップ40B1に組合せ回路40A1の出力が取り込まれるのを防ぐことが可能である。
フリップフロップ40B2、セレクタ40C2および組合せ回路40A2、40A3についても、フリップフロップ40B1、セレクタ40C1および組合せ回路40A1、40A2と同じであるため、説明は省略する。
<自己診断動作>
図2は、実施の形態2に係わる半導体装置1Aにおける自己診断時の動作を示すフローチャート図である。
同図では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが表されている。矢印が分岐しているところは並列した処理を示す。但し、ひし形のイベントについては、分岐を表し、下向きの矢印がイベントの内容に合致した場合の次処理を指している。
半導体装置1Aの自己診断動作が開始されると、ステップS0において、LBIST制御回路10は、PRPG/MISRチェーン101を通して、初期値をパタン発生器20、21、22、23およびパタン圧縮器30、31、32、33に設定する。また、このとき、レジスタ設定信号105−Iによって、PRPG停止回路2A10〜2A12のそれぞれにおけるレジスタ2A21に対して、時間に相当する初期値を設定する。これらの初期値の設定が完了すると、さらにステップS0において、初回のスキャンシフトを行うために、LBIST制御回路10は、リセット信号106をハイレベルからロウレベルにして、リセットを解除する。また、このとき、LBIST制御回路10は、PRPG制御信号102をハイレベル(起動状態)にする。
PRPG制御信号102は、PRPG制御回路2A(図6)に入力されるが、PRPG停止回路2A10〜2A12内のそれぞれのフリップフロップ2A23は、リセットが解除された初期状態であるため、フリップフロップ2A23の出力はロウレベルである。そのため、PRPG制御信号102のハイレベル(有効)は、2入力アンド回路2A27を通過して、PRPG制御信号200〜203としてパタン発生器20〜23に入力される(ステップS1〜S4)。
ハイレベルのPRPG制御信号200〜203が供給されるため、パタン発生器20〜23が動作し、それぞれがテストパタンを発生する。発生したテストパタンは、スキャンチェーン400を通して、初回のテストデータ(テストパタン)として、対応する論理回路40〜43に入力される(ステップS5)。
テストデータの入力が完了すると、LBIST制御回路10は、MISR制御信号103をハイレベル(起動状態)にする。MISR制御信号103は、MISR制御回路3A(図7)に入力される。このとき、PRPG停止回路2A10のフリップフロップ2A23は初期状態のロウレベルである。そのため、MISR制御信号103は、MISR制御回路3A内の2入力アンド回路3A10を通過して、MISR制御信号300〜303として、パタン圧縮器30、31、32、33に入力される(ステップS6〜S9)。なお、同図では、MISR制御信号300〜303を有効に設定と記載している。
次に、ステップS10において、スキャンテストにおけるキャプチャ動作を行い論理回路40〜43のデータを更新する。スキャンチェーン400を通して、パタン発生器20〜23で発生した2回目以降のテストデータを論理回路40〜43に入力する(ステップS11)。
この後、ステップS12において、自己診断動作が完了したかどうかの判定を行なう。自己診断動作が完了したか否かは、PRPG停止回路2A10におけるカウンタ2A20とレジスタ2A21の値が比較器2A22によって一致したかどうかで行われる。一致しない場合は、自己診断動作が完了していないとして、ステップS10へ戻り、自己診断動作が完了と判定するまで、ステップS10〜S12を繰り返す。
自己診断動作が完了すると、図6で述べたPRPG停止回路2A10内のフリップフロップ2A23がハイレベルを出力する。これにより、MISR制御回路3A内の2入力アンド回路3A10は、MISR制御信号300〜303のそれぞれをロウレベルに固定する。すなわち、フリップフロップ2A23がハイレベルに固定され、ハイレベルのMISR停止信号108によって、2入力アンド回路3A10の出力がロウレベルに固定する(ステップS13〜S16)。なお、図2では、MISR制御信号300〜303を無効に設定と記載している。MISR制御信号300〜303がロウレベルとなることにより、パタン圧縮器40〜43の機能は停止する。
このとき、MISR制御回路3Aにおける2入力オア回路3A11にも、ハイレベルのMISR停止信号108が供給されているため、スキャンイネーブル信号107は、ハイレベルに固定される。これにより、論理回路40〜43がスキャンチェーン400以外の経路からのデータを取り込まないようにされている。
PRPG停止回路2A10内のフリップフロップ2A23の出力がハイレベルとなるため、このPRPG停止回路2A10から出力されるPRPG制御信号200はロウレベルに固定される。すなわち、フリップフロップ2A23の出力がハイレベルに固定されるため、2入力アンド回路2A27の出力はロウレベルに固定される(ステップS17)。PRPG制御信号200がロウレベルとなることにより、このPRPG制御信号200が供給されているパタン発生器20は、その機能が停止する。なお、図2では、PRPG制御信号200を無効に設定と記載している。
図6において説明したように、PRPG停止回路2A11におけるレジスタ2A21には、PRPG停止回路2A10におけるレジスタ2A21よりも長い時間に相当する値(初期値)が設定されている。また、PRPG停止回路2A12におけるレジスタ2A21には、PRPG停止回路2A11におけるレジスタ2A21よりも長い時間に相当する値(初期値)が設定されている。
そのため、PRPG停止回路2A10から出力されているPRPG制御信号200がロウレベルになった時点では、PRPG停止回路2A11および2A12のそれぞれにおけるフリップフロップ2A23は、まだロウレベルを出力している。これは、PRPG停止回路2A11および2A12のそれぞれにおいて、カウンタ2A20によるカウント値とレジスタ2A21に格納されている初期値とが一致していないためである。
PRPG停止回路2A11および2A12のそれぞれにおけるフリップフロップ2A23が、まだロウレベルを出力しているため、PRPG制御信号201〜203はハイレベルとなり、パタン発生器21〜23は動作しており、テストパタンを発生し続けている。
パタン発生器21〜23により発生したテストパタンは、スキャンチェーン400を通して、論理回路41〜43に入力される(ステップS18)。この場合、パタン圧縮器30〜33は、既に、ステップS13〜S16において、その機能を停止しているため、パタン発生器21〜23により発生しているテストパタンに基づいた論理回路41〜43の結果は、自己診断に用いられない。そのため、ここで、パタン発生器21〜23が発生しているテストパタンは、無効なデータと見なすことができる。また、このとき、パタン発生器20は停止状態にあるため、論理回路40には常に固定値が入力されている。
次に、ステップS19において、テスト終了か否かの判定が行われる。ここでの判定に基づいて、パタン発生器21を停止されるか否かが決定される(停止判定)。すなわち、PRPG停止回路2A11における比較器2A22が、PRPG停止回路2A11におけるカウンタ2A20のカウント値と、PRPG停止回路2A11におけるレジスタ2A21に格納されている初期値との比較を行う。比較の結果、一致していなければ、一致するまで、ステップS18とS19を繰り返す。比較の結果、一致すれば、ステップS20において、PRPG停止回路2A11におけるフリップフロップ2A23がハイレベルを出力する。これにより、PRPG停止回路2A11は、ロウレベルのPRPG制御信号201を出力する。その結果、PRPG制御信号201を受けるパタン発生器21が停止する。なお、図9では、ステップS20を、PRPG制御信号201を無効に設定と記載している。
PRPG停止回路2A12におけるレジスタ2A21に設定した初期値が、最も長い時間に相当する値であるため、PRPG停止回路2A12におけるフリップフロップ2A23は、未だロウレベルを出力している。そのため、パタン発生器22とパタン発生器23は動作しており、テストパタンを継続して発生している。そのため、スキャンチェーン400を通して、パタン発生器22、23により発生したテストパタンは、論理回路42、43に、無効なデータとして供給され続け、論理回路42、43は、この無効なデータに従って動作している(ステップS21)。
次に、ステップS22において、再びテスト終了か否かの判定が行われる。ここでの判定に基づいて、パタン発生器22を停止されるか否かが決定される(停止判定)。すなわち、PRPG停止回路2A12における比較器2A22が、PRPG停止回路2A12におけるカウンタ2A20のカウント値と、PRPG停止回路2A12におけるレジスタ2A21に格納されている初期値との比較を行う。比較の結果、一致していなければ、一致するまで、ステップS21とS22を繰り返す。比較の結果、一致すれば、ステップS23において、PRPG停止回路2A12におけるフリップフロップ2A23がハイレベルを出力する。これにより、PRPG停止回路2A12は、ロウレベルのPRPG制御信号202を出力する。その結果、PRPG制御信号202を受けるパタン発生器22が停止する。なお、図9では、ステップS23を、PRPG制御信号202を無効に設定と記載している。
この実施の形態2においては、図6に示したように、PRPG制御信号102が、PRPG制御信号203として、パタン発生器23に供給されている。そのため、パタン発生器23は動作しており、テストパタンを継続して発生している。そのため、スキャンチェーン400を通して、パタン発生器23により発生したテストパタンは、論理回路43に、無効なデータとして供給され続け、論理回路43は、この無効なデータに従って動作している(ステップS24)。
ステップS25もテスト終了か否かを判定するステップである。このステップS25で行われる判定(停止判定)は、LBIST制御回路10からのPRPG制御信号102が停止状態になるまで行われる。すなわち、LBIST制御回路10からのPRPG制御信号102がロウレベルとなるまで、ステップS24とS25が繰り返される。LBIST制御回路10が、停止状態を示すロウレベルのPRPG制御信号102を、PRPG制御回路2Aに供給することにより、ステップS26において、PRPG制御回路2Aは、ロウレベルのPRPG制御信号203を出力し、パタン発生器23が停止する。なお、図9では、ステップS26を、PRPG制御信号203を無効に設定と記載している。
PRPG制御信号102を停止状態にすることにより、LBIST制御回路10の制御によるパタン発生を、ここで完了することを意味している。従って、LBIST制御回路10がPRPG制御信号102によって、停止状態にするまでの動作は、LBIST制御回路10による制御とは、全く独立して行われていたことを意味している。
最後に、ステップS27において、PRPG/MISRチェーン101を通して、パタン圧縮回路30、31、32、33に格納されたテスト結果をLBIST制御回路10に回収し、期待値と照合して、終了する。
このように、この実施の形態2においては、PRPG制御回路2Aに設けられているPRPG停止回路2A10〜2A12が、LBIST制御回路10による制御とは独立して、パタン発生器20〜22を1個ずつ停止させている。ここでの停止は、論理回路40〜42に供給される信号を、時間的に変化させず、固定にすることを意味している。
<半導体装置の動作波形>
図3(A)〜(J)は、図2のフローチャート図で説明した動作を行った場合の半導体装置の波形を示した波形図である。図3において、横軸は時間の経過を表しており、縦軸は、電圧を示している。図3(A)および(B)は、LBIST制御回路10が出力するPRPG制御信号102およびMISR制御信号103の波形を示している。また、図3(C)、(E)、(G)および(I)は、PRPG制御回路2Aが出力するPRPG制御信号200、201、202および203の波形を示しており、図3(D)、(F)、(H)および(J)は、MISR制御回路3Aが出力するMISR制御信号300、301、302および303の波形を示している。
図3において、横軸に沿って添えられた符号S0〜S27は、図2で説明されたステップS0〜S27に対応している。図3において、S5からS11までの期間が、自己診断動作において有効なテスト範囲となっている。この期間、論理回路40〜43は、パタン発生器20〜23が発生したテストパタンによりランダムな動作を繰り返し実行し、電力を消費している。この期間での、論理回路40〜43の動作した結果が、パタン圧縮器30〜33により圧縮され、LBIST制御回路10に供給され、LBIST制御回路10において期待値と照合される。
論理回路40は、図3(C)に示されているように、S11において、対応するパタン発生器20が停止するため、S5からS11の期間、動作し、停止する。
一方、論理回路41については、図3(E)に示されているように、S18の期間においても、対応するPRPG制御信号201がハイレベルである。そのため、論理回路41に対応するパタン発生器21が、S18の期間においても動作し、パタン発生器21により発生したテストパタンにより、論理回路41は、ランダムな動作を繰り返し実行し、電力を消費している。
同様に、論理回路42については、図3(G)に示されているように、S18〜S21の期間においても、対応するPRPG制御信号202がハイレベルである。そのため、対応するパタン発生器22がS18〜S21の期間においても動作し、この期間においても、論理回路42は、パタン発生器22により発生したテストパタンによりランダムな動作を繰り返し実行し、電力を消費している。さらに、論理回路43については、図3(I)に示されているように、S18〜S24の期間においても、対応するPRPG制御信号203がハイレベルである。そのため、対応するパタン発生器23は、S18〜S24の期間においても動作し、論理回路43は、パタン発生器22により発生したテストパタンにより、S18〜S24の期間においても、ランダムな動作を繰り返し実行し、電力を消費している。
このように、動作している論理回路40〜43の数を順次減らすことにより、半導体装置1Aに流れる電流の変化率を低減することが可能となる。
一方、MISR制御回路3Aは、図3に示すように、MISR制御信号300〜303を同時にロウレベルからハイレベルへ変化させ、また同時にハイレベルからロウレベルへ変化させている。これにより、パタン圧縮器30〜33が圧縮の処理(圧縮処理)を開始する開始タイミングは、互いに同じになるように制御され、圧縮処理を停止する停止タイミングも互いに同じになるように制御されている。
<半導体装置の電流>
図4は、実施の形態2に係わる半導体装置1Aにおける自己診断動作のときの電流波形を模式的に示した波形図である。同図において、横軸は時間の経過を表しており、縦軸は消費電流の大きさを示している。消費電流は、上に行けば大きくなるものとする。横軸に沿って添えられた符号S0〜S27は、図2のフローチャート図で説明されたステップS0〜S27に対応している。
消費電流は、テストパタンの供給が始まるS5から徐々に増し、S10からS11の繰り返し動作が発生している時刻にピークに達する。その後、S17のイベントによりPRPG制御信号200がロウレベルになり、パタン発生器20が停止状態になったあたりで、論理回路40で消費されていた電力分の電流が減少する。これは、パタン発生器20やパタン圧縮器30の動作が停止することにより、論理回路40の論理値変化が発生しなくなるためである。その後、所定の時間間隔があけて、論理回路41、42、43を、論理回路40と同じ手順で停止していく。この結果、消費電流は、S18、S21、S24、S27の順で階段状に減っている。ここでの所定の時間間隔は、PRPG停止回路2A10〜2A12のそれぞれにおけるレジスタ2A21に格納した値の差分に対応する。
図5は、単位時間当たりの電流変動を示した波形図である。同図において、横軸は時間の経過を表しており、縦軸は電流変動の大きさを示している。中心線は0として電流の変動が無いことを示している。電流が増えれば上に伸び、電流が減れば下に伸びるものとする。横軸に沿って添えられた符号S0〜S27は、図2のフローチャート図で説明したステップS0〜S27に対応している。
図5と図28とを比較すると、実施の形態2に係わる半導体装置1Aでは、単位時間当たりの電流値の変化率(di/dt)が、低く抑えられ、許容値上限および許容値下限との間に納まっていることがわかる。ここでも、許容値は、例えば、80mA/20usである。
また、この実施の形態2によれば、半導体装置の面積が増加するのを抑制することが可能である。例えば、実施の形態1で述べた半導体装置1Eでは、パタン発生器20〜23およびパタン圧縮器30〜33に対応した複数のLBIST制御回路10〜13を設けていた。また、半導体装置1Eでは、自己診断動作のときに、論理回路40〜43間を伝達する境界信号の電圧を固定する遮断回路50〜53が設けられていた。この遮断回路50〜53は、境界信号の数に比例して、それにより占有される面積が増える。この実施の形態2においては、LBIST制御回路の数を減らすことが可能であり、また遮断回路を設けなくて済むため、半導体装置の面積が増加することを抑制することが可能であり、半導体装置の価格が上昇するのも抑制することが可能となる。
さらに、実施の形態1で述べた半導体装置1Eでは、自己診断動作のとき、遮断回路により境界信号の電圧を固定してしまうため、境界信号を含めた診断を行うことができない。これに対して、実施の形態2においては、遮断回路が必要とされないため、自己診断の品質低下を低減することが可能である。
(実施の形態3)
図8は、実施の形態3に係わる半導体装置の構成を示すブロック図である。この実施の形態3に係わる半導体装置1Bは、図1に示した半導体装置1Aと類似しているので、ここでは、相違点を主に説明する。先ず、図1に示した半導体装置1Aとこの実施の形態3に係わる半導体装置1Bとの間で、相違するのは、PRPG制御回路およびMISR制御回路の構成である。実施の形態3においては、PRPG制御回路2Aの代わりにPRPG制御回路2Bが用いられ、MISR制御回路3Aの代わりにMISR制御回路3Bが用いられている。次に、PRPG制御回路2BおよびMISR制御回路3Bについて説明する。
<PRPG制御回路2Bの構成>
図13は、実施の形態3に係わるPRPG制御回路2Bの構成を示すブロック図である。PRPG制御回路2Bは、制御回路2B42−C、PRPG起動回路2B10〜2B12およびPRPG停止回路2B20〜2B22を備えている。
制御回路2B42−Cは、図6で説明した制御回路2A24−Cと同様に、2入力アンド回路2B43−A、2入力オア回路2B43−Oおよびフリップフロップ2B42とを有している。ここで、2入力アンド回路2B43−Aは、図6の2入力アンド回路2A25−Aに相当し、2入力オア回路2B43−Oは、図6の2入力オア回路2A25−Aに相当し、フリップフロップ2B42は、図6のフリップフロップ2A24に相当する。なお、図13において、2B43は、2入力アンド回路2B43−Aと2入力オア回路2B43−Oにより構成された組合せ回路を示しており、図6の組合せ回路2A25に相当する。
図6と同様に、2入力アンド回路2B43−Aの一方の入力には、○印で示されたインバータ回路を介してリセット信号106が供給され、2入力オア回路2B43−Oの一方の入力には、PRPG制御信号102が供給され、2入力オア回路2B43−Oの出力は、2入力アンド回路2B43−Aの他方の入力に供給されている。また、2入力アンド回路2B43−Aの出力は、フリップフロップ2B42の入力に供給され、フリップフロップ2B42の出力は、2入力オア回路2B43−Oの他方の入力に供給されている。フリップフロップ2B42の出力が、制御回路2B42−Cの出力となる。
制御回路2B42−Cの動作は、図6で説明した制御回路2A24−Cと同じであり、リセット信号106が、リセット状態を示すハイレベルのとき、フリップフロップ2B42は、ロウレベルの制御信号を出力する。一方、リセット信号106が、リセット解除を意味するロウレベルにされている期間において、LBIST制御回路10からのPRPG制御信号102がハイレベルとなることにより、フリップフロップ2B42は、ハイレベルの制御信号を出力し、維持する。すなわち、このフリップフロップ2B42は、LBIST制御回路10からPRPG制御信号102が起動状態を示すハイレベルになったとき、ハイレベルを出力し、リセット信号106がハイレベルになるまで、ハイレベルを維持する。これにより、フリップフロップ2B42は、図6に示したフリップフロップ2A24と同様に、PRPG制御回路2Bによる制御の開始と終了を司っている。
PRPG起動回路およびPRPG停止回路は、半導体装置1Bに搭載するパタン発生器の数に応じて増減し、最大でパタン発生器の数と同じだけ必要となるが、その数を上限として制限するものではない。
この実施の形態3においては、図8に示すように、半導体装置1Bは、4個のパタン発生器20〜23を有しているが、PRPG制御回路2Bは、3個のPRPG起動回路2B10〜2B12と、3個のPRPG停止回路2B20〜2B22とを備えている。ここで、PRPG起動回路2B10は、パタン発生器23に対応し、PRPG停止回路2B20は、パタン発生器20に対応している。また、PRPG起動回路2B11とPRPG停止回路2B22は、パタン発生器22に対応し、PRPG起動回路2B12とPRPG停止回路2B21は、パタン発生器21に対応している。このように、パタン発生器に対して、PRPG起動回路だけを対応させてもよいし、PRPG停止回路だけを対応させても良いし、さらにはPRPG起動回路とPRPG停止回路とを組み合わせて対応させても良い。
さらに、複数個のパタン発生器に対して、1個のPRPG起動回路または1個のPRPG停止回路を対応させるようにしてもよい。また、複数個のパタン発生器に対して、1個のPRPG起動回路と1個のPRPG停止回路との組合せを、対応させるようにしてもよい。
PRPG起動回路2B10〜2B12のそれぞれは、互いに同じ構成を有しているため、図13には、代表としてPRPG起動回路2B10の構成が示されている。また、PRPG停止回路2B20〜2B22も、互いに同じ構成を有しているため、図13では、代表としてPRPG停止回路2B20の構成が示されている。
PRPG停止回路2B20の構成は、図6において説明したPRPG停止回路2A10と同じ構成を有している。そのため、PRPG停止回路2B20〜2B22の構成および動作については、省略する。
次に、PRPG起動回路について、代表としてその構成を示したPRPG起動回路2B10を説明する。
PRPG起動回路2B10は、カウンタ2B30、レジスタ2B31、比較器2B32、フリップフロップ2B33、組合せ回路2B34および2入力アンド回路2B35を有している。ここで、組合せ回路2B34は、2入力アンド回路2B34−Aと2入力オア回路2B34−Oとを有している。
レジスタ2B31は、初期値として時間に関する値が設定され、カウンタ2B30は、クロック信号104をカウントすることによりカウント値を出力する。レジスタ2B31に設定された値(初期値)とカウンタ2B30のカウント値とは、比較器2B32において、比較される。この比較により、一致した場合に、比較器2B32は、ハイレベルを出力し、一致しない場合には、ロウレベルを出力する。比較器2B32の出力は、2入力オア回路2B34−Oの一方の入力に供給される。この2入力オア回路2B34−Oの出力は、その一方に入力、上記した制御回路2B42−Cからの出力が供給される2入力アンド回路2B34−Aの他方の入力に供給されている。この2入力アンド回路2B34−Aの出力は、フリップフロップ2B33の入力に供給され、フリップフロップ2B33の出力は、2入力アンド回路2B35の一方の入力に供給される。
フリップフロップの出力は、2入力オア回路2B34−Oの他方の入力に供給されるとともに、MISR起動信号109として出力される。また、2入力アンド回路2B35の他方の入力には、PRPG制御信号102が供給され、この2入力アンド回路2B35の出力は、PRPG制御信号203として出力される。
リセット信号106がロウレベルとされ、LBIST制御回路10がPRPG制御信号102を、起動を示すハイレベルにすると、図6において説明したのと同様に、制御回路2B42−Cの出力はハイレベルとなる。カウンタ2B30は、入力されるクロック信号104に同期して、カウントアップもしくはカウントダウンをすることにより、カウント値を出力する。レジスタ2B31には、初期値として時間に関する任意の値が格納されている。
レジスタ2B31に格納されている初期値とカウンタ2B30のカウント値とが一致すると、比較器2B32は、ハイレベルを出力する。制御回路2B42−Cの出力であるフリップフロップ2B42の出力が、ハイレベルであるため、比較器2B32のハイレベルは、2入力オア回路2B34−Oおよび2入力アンド回路2B34−Aを通して、フリップフロップ2B33の入力に伝えられる。これにより、フリップフロップ2B33は、ハイレベルに相当する論理値“1”を取り込み、格納するとともに、ハイレベルを出力する。このとき、PRPG制御信号102は、起動を示すハイレベルであるため、2入力アンド回路2B35は、ハイレベルのPRPG制御信号203を出力する。
PRPG制御信号203がハイレベルとなることにより、このPRPG起動回路2B10に対応したパタン発生器23に、ハイレベルのPRPG制御信号203が供給され、パタン発生器23が起動され、動作を開始し、テストパタンを発生する。パタン発生器23の起動状態は、リセット信号106をハイレベルにして、フリップフロップ2B42の出力をロウレベルにするまで継続する。
一方、レジスタ2B31に格納されている初期値に、カウンタ2B30のカウント値が到達していない場合には、比較器2B32はロウレベルを出力する。この比較器2B32のロウレベルが、フリップフロップ2B33の入力に伝達され、フリップフロップ2B33は、ロウレベルを継続して出力する。その結果、PRPG制御信号203はロウレベルとなり、対応するパタン発生器23は起動されない。
すなわち、PRPG制御信号102をハイレベルにすることにより、起動されてから対応するパタン発生器23を起動するまでの時間(起動タイミング)を、レジスタ2B31へ格納する値によって定めることができる。起動タイミングを定めることができるため、パタン発生器23から論理回路43へのテストパタンの供給を開始する供給開始タイミングを定めることができる。
また、PRPG制御信号203がハイレベルになるとき、MISR起動信号109もハイレベルになる。このMISR起動信号109は、MISR制御回路3Bに供給される。あとで図14を用いて説明するが、MISR起動信号109がハイレベルとなることにより、パタン圧縮器30〜33は起動可能となる。
PRPG起動回路2B11および2B12についても、PRPG起動回路2B10と同様に、それぞれにおけるレジスタ2B31に、時間に関する値を初期値として格納する。PRPG起動回路2B10〜2B12のそれぞれにおけるレジスタ2B31に格納する時間に関する値を、互いに異なる値とすることにより、論理回路41〜43間で、テストパタンの供給開始タイミングを異ならせることができる。
この実施の形態においては、パタン圧縮器30〜33は、パタン発生器20〜23のうち、最も遅くパタン発生器を起動させるPRPG起動回路からのMISR起動信号が、MISR制御回路3Bに供給される。図13に示した構成では、PRPG起動回路2B10におけるレジスタ2B31に初期値として格納された値が、最も長い時間に対応する値とされている。すなわち、PRPG起動回路2B11におけるレジスタ2B31に初期値として格納された値は、PRPG起動回路2B10におけるレジスタ2B31に格納された値よりも短い時間に対応する値とされている。また、PRPG起動回路2B12におけるレジスタ2B31に初期値として格納された値は、PRPG起動回路2B11におけるレジスタ2B31に格納された値よりも短い時間に対応する値とされている。そのため、PRPG起動回路2B11および2B12から出力されるMISR起動信号2B11−109、2B12−109は、MISR制御回路3Bに供給されない。
しかしながら、例えば、MISR起動信号109、2B11−109および2B12−109間で論理積の演算を行い、その演算結果をMISR起動信号109としてもよい。
この実施の形態3においては、論理回路へのテストパタンの供給開始タイミングが、この論理回路に対応したPRPG起動回路により定められる。また、論理回路へのテストパタンの供給停止タイミングが、この論理回路に対応したPRPG停止回路により定められる。さらに、論理回路に対してPRPG起動回路とPRPG停止回路とを組み合わせて対応させることにより、当該論理回路へ供給されるテストパタンの供給開始タイミングと停止タイミングとをそれぞれ定めることができる。
次に、PRPG起動回路とPRPG停止回路とを組み合わせた例を説明する。図13においては、PRPG起動回路2B11とPRPG停止回路2B22とが組み合わされており、パタン発生器22に対応している。また、PRPG起動回路2B12とPRPG停止回路2B21とが組み合わされており、パタン発生器21に対応している。
PRPG起動回路2B12からは、対応するパタン発生器21の起動タイミングを定める制御信号2B12−201をPRPG停止回路2B21へ供給する。ここで、制御信号2B21−201は、PRPG起動回路2B12における2入力アンド回路2B35から出力される制御信号である。PRPG停止回路2B21は、このPRPG停止回路2B21を構成する2入力アンド回路2A27の他方の入力に、PRPG制御信号102の代わりに、PRPG停止回路2B12からの制御信号2B12−201が供給される。PRPG制御信号102の代わりに、制御信号2B12−201が供給されることを除いて、PRPG停止回路2B20と同様に、PRPG停止回路2B21におけるカウンタ2A20にはクロック信号104が供給され、2入力アンド回路2A26−Aの一方の入力には、フリップフロップ2B42からの出力が供給される。
PRPG起動回路2B12におけるレジスタ2B31に格納されている初期値と、カウンタ2B30のカウント値とが一致することにより、PRPG起動回路2B12は、制御信号2B12−201をロウレベルからハイレベルへ変化させる。一方、PRPG停止回路2B21においては、PRPG停止回路2B21におけるレジスタ2A21の初期値とカウンタ2A20のカウント値が一致するまで、フリップフロップ2A23の出力がロウレベルである。そのため、制御信号2B12−201がロウレベルからハイレベルへ変化することにより、PRPG停止回路2B21の出力であるPRPG制御信号201は、ロウレベルからハイレベルへ変化する。PRPG停止回路2B20におけるレジスタ2A21の初期値とカウンタ2A20のカウント値とが一致すると、フリップフロップ2A23の出力がハイレベルとなるため、PRPG制御信号201は、ハイレベルからロウレベルへ変化する。これにより、対応するパタン発生器21は、PRPG起動回路2B12におけるレジスタ2B31に格納されている値により定まるタイミングで、起動され、PRPG停止回路2B21におけるレジスタ2A21に格納されている値により定まるタイミングで停止する。すなわち、パタン発生器21に対応する論理回路41に供給されるテストパタンの供給開始タイミングと停止タイミングを制御することが可能となる。
PRPG起動回路2B11とPRPG停止回路2B22についても、PRPG起動回路2B12とPRPG停止回路2B21と同様である。
この実施の形態3においても、PRPG起動回路2B10〜2B12およびPRPG停止回路2B20〜2B22のそれぞれにおけるレジスタ2B31および2A21は、初期値を設定するとき、直列的に接続される。実施の形態2で述べたように、順次レジスタに初期値が設定される。図13においてはPRPG停止回路2B20におけるレジスタ2A21の出力が、PRPG起動回路2B12のレジスタ2B31の入力に接続され、PRPG起動回路2B12のレジスタ2B31の出力が、PRPG停止回路2B21のレジスタ2A21の入力に接続される。同様に、PRPG停止回路2B21のレジスタ2A21の出力が、PRPG起動回路2B11のレジスタ2B31の入力に接続され、PRPG起動回路2B11のレジスタ2B31の出力が、PRPG停止回路2B22のレジスタ2A21の入力に接続され、PRPG停止回路2B22のレジスタ2A21の出力が、PRPG起動回路2B10のレジスタ2B31の入力に接続される。
図13においては、レジスタへ初期値を設定する際のPRPG起動回路2B12のレジスタ2B31から、PRPG停止回路2B21のレジスタ2B31へ伝達される信号、およびPRPG起動回路2B11のレジスタ2B31から、PRPG停止回路2B22のレジスタ2B31へ伝達される信号が、105Mとして示されている。同様に、レジスタへ初期値を設定する際のPRPG停止回路2B21のレジスタ2A21から、PRPG起動回路2B11のレジスタ2B31へ伝達される信号、およびPRPG停止回路2B22のレジスタ2A21から、PRPG起動回路2B10のレジスタ2B31へ伝達される信号も、105Mとして示されている。
<MISR制御回路3Bの構成>
図14は、実施の形態3に係わるMISR制御回路の構成を示すブロック図である。MISR制御回路3Bは、MISR起動回路3B10、2入力アンド回路3B26、2入力排他的論理和回路3B27、2入力ノア回路3B28および2入力オア回路3B29を備えている。
MISR制御回路3Bには、図13に示したPRPG制御回路2Bから、MISR起動信号109、レジスタ設定信号105およびMISR停止信号108が供給される。また、LBIST制御回路10から、MISR制御信号103、リセット信号106およびスキャンイネーブル信号107Lが供給される。
PRPG制御回路2Bから供給されるMISR停止信号108がハイレベルとなることにより、○印で示したインバータ回路により、MISR停止信号108は位相反転され、2入力アンド回路3B26の入力に供給される。そのため、2入力アンド回路3B26の出力は、ロウレベルとなる。この2入力アンド回路3B26の出力は、MISR制御信号300〜303としてパタン圧縮器30〜33に供給されている。それぞれのパタン圧縮器30〜33は、MISR制御信号300〜303がロウレベルとなることにより、その機能を停止する。MISR停止信号108がハイレベルに維持されているときは、MISR制御信号300〜303がロウレベルに維持される。そのため、それぞれのパタン圧縮器30〜33は、機能を停止した状態を継続することになる。
一方、MISR停止信号108がロウレベルのときには、2入力アンド回路3B26は、MISR起動回路3B28の出力に従ったMISR制御信号300〜303を出力する。すなわち、パタン圧縮器30〜33は、MISR起動回路3B28によって制御されることになる。
次に、MISR起動回路3B10について、説明する。MISR起動回路3B10は、カウンタ3B20、レジスタ3B21、比較器3B22、フリップフロップ3B23、組合せ回路3B24および2入力アンド回路3B25を有している。ここで、組合せ回路3B24は、2入力アンド回路3B24−Aと2入力オア回路3B24−Oとを有しており、2入力アンド回路3B24−Aの一方の入力には、MISR起動信号109が供給され、その他方の入力には2入力オア回路3B24−Oの出力が供給されている。また、2入力オア回路3B24−Oの一方の入力には比較器3B22の出力が供給され、その他の入力にはフリップフロップ3B23の出力が供給されている。さらに、2入力アンド回路3B24−Aの出力はフリップフロップ3B23の入力に供給されている。
カウンタ3B20は、入力されるクロック信号104に同期して、カウントアップもしくはカウントダウンし、カウント値を出力する。レジスタ3B21には、時間に関する値が初期値として格納される。比較器3B22は、カウンタ3B20のカウント値とレジスタ3B21に格納されている値とを比較する。比較して、一致する場合、比較器3B21は、ハイレベルを出力する。一方、カウント値が、レジスタ3B21に格納されている値に到達していない場合には、比較器3B22はロウレベルを出力する。
図13に示したPRPG制御回路2BからのMISR起動信号109がハイレベルの場合、カウンタ3B20のカウント値とレジスタ3B21に格納されている値とが一致していれば、比較器3B22から出力されているハイレベルは、2入力オア回路3B24−Oおよび2入力アンド回路3B24を通して、フリップフロップ3B23の入力に伝達される。フリップフロップ3B23は、このハイレベルを取り込み、格納するとともに、ハイレベルを出力する。このとき、LBIST制御回路10は、ハイレベルのMISR制御信号103を出力しているため、2入力アンド回路3B25は、MISR起動回路3B10の出力として、ハイレベルを出力する。MISR起動回路3B10からハイレベルが出力されることにより、2入力アンド回路3B26は、MISR制御信号300〜303のそれぞれをロウレベルからハイレベルへ変化させる。MISR制御信号300〜303のこのハイレベルの状態は、リセット信号106によって、フリップフロップ2B42(図13)の状態が変更されるまで継続する。MISR制御信号300〜303がハイレベルとなることにより、パタン圧縮器30〜33のそれぞれが起動され、動作状態となる。
一方、カウンタ3B20のカウント値とレジスタ3B21に格納されている値とが一致していなければ、比較器3B22はロウレベルを出力する。これにより、MISR起動回路3B10はロウレベルを出力する。
ここで、カウンタ3B20は、例えば、図13で示した複数のPRPG起動回路またはPRPG停止回路におけるカウンタと共有にしてもよい。
また、レジスタ3B21に時間に関する初期値を設定する際には、図13において説明したレジスタ2A21、2B31と直列に接続される。すなわち、図13に示したレジスタ設定信号105を介して、レジスタ3B21の入力は、図13のレジスタ2B31の出力に接続される。初期値を設定する際、レジスタ2A21、2B31および3B21によりシフトレジスタが構成され、LBIST制御回路10から、時間に関する初期値が、順次、レジスタ2A21、2B31および3B21に供給され、設定される。なお、この実施の形態3においても、レジスタ3B21の出力は、レジスタ設定信号105−Oを通して、LBIST制御回路10へ供給されている。これにより、これらのレジスタ2A21、2B31および3B21に設定されている初期値を、これらのレジスタをシフトレジスタとして構成することにより、LBIST制御回路10は、確認することが可能となる。
<半導体装置1Bの動作>
図9は、半導体装置1Bの自己診断動作時の動作を示すフローチャート図である。図9では、各動作イベントが矢印で連結されており、矢印の向きに従って時系列でイベントが生じることが表されている。矢印が分岐しているところは並列した処理を示す。但し、ひし形のイベントについては、分岐を表し、下向きの矢印がイベントの内容に合致した場合の次処理を指している。
図8に示した半導体装置1Bの自己診断動作が開始されると、ステップS28において、LBIST制御回路10からPRPG/MISRチェーン101を通して、初期値がパタン発生器20、21、22、23およびパタン圧縮器30、31、32、33に設定される。また、このとき、LBIST制御回路10は、レジスタ設定信号105−Iを通して、図13に示したレジスタ2A21、2B31および図14に示したレジスタ3B21のそれぞれに時間に関する初期値を供給し、設定する。レジスタ2A21、2B31および3B21のそれぞれに、初期値を設定する際には、先に説明したように、これらのレジスタ2A21、2B31および3B21は直列に接続され、シフトレジスタを構成する。
以下の説明を分かり易くするために、各レジスタに設定されている初期値は、次のようになっているものとして説明する。PRPG起動回路2B12のレジスタ2B31には、起動に関して最も短い時間に相当する初期値が設定され、PRPG起動回路2B11のレジスタ2B31に、PRPG起動回路2B12のレジスタ2B31に設定されている時間よりも長い時間に相当する初期値が設定されている。また、PRPG起動回路2B10のレジスタ2B31には、PRPG起動回路2B11のレジスタ2B31に設定されている時間よりも長い時間に相当する初期値が設定されている。すなわち、PRPG起動回路2B10のレジスタ2B31には、起動に関して最も長い時間に相当する初期値が設定されている。
また、PRPG停止回路2B21におけるレジスタ2A21には、停止に関して最も短い時間に相当する初期値が設定され、PRPG停止回路2B22におけるレジスタ2A21には、PRPG停止回路2B21のレジスタ2A21に設定されている時間よりも長い時間に相当する初期値が設定されている。また、PRPG停止回路2B20のレジスタ2A21には、PRPG停止回路2B22のレジスタ2A21に設定されている時間よりも長い時間に相当する初期値が設定されている。すなわち、PRPG停止回路2B20のレジスタ2A21には、停止に関して最も長い時間に相当する初期値が設定されている。
また、停止に関して最も短い時間は、起動に関して最も長い時間よりも、長い時間となっている。
また、図14に示したレジスタ3B21には、パタン圧縮器30〜33を動作させる時間に関する初期値を設定する。この実施の形態3においては、停止に関して最も短い時間と起動に関して最も長い時間との間の時間に相当する初期値を、レジスタ3B21に設定する。
初期値の設定が完了すると、初回のスキャンシフトを行うために、LBIST制御回路10は、PRPG制御信号102がハイレベル(起動状態)にする。PRPG制御信号102は、PRPG制御回路2Bに入力されるが、リセットが解除されたときの状態であるため、PRPG起動回路2B10のフリップフロップ2B33は、初期状態のロウレベルを出力する。そのため、2入力アンド回路2B35により、ハイレベルのPRPG制御信号102はブロックされ、2入力アンド回路2B35は、ロウレベルのPRPG制御信号203を出力する。従って、このPRPG起動回路2B10に対応するパタン発生器23には、ロウレベルのPRPG制御信号203が入力されることになる。PRPG起動回路2B11およびPRPG起動回路2B12についても、PRPG起動回路2B10と同様に、ロウレベルの制御信号2B11−202および2B12−201を出力する。
PRPG起動回路2B10は、その後段に、PRPG停止回路が設けられていないため、その出力であるPRPG制御信号203は、対応するパタン発生器23に入力される(ステップS29)。パタン発生器23は、PRPG制御信号203がロウレベルであるため、ステップS29においては、未だ動作が停止している。このとき、PRPG停止回路2B21および2B22においても、それぞれにおける2入力アンド回路2A27の他方の入力に、ロウレベルの制御信号2B12−201および2B12−202が供給されているため、ロウレベルのPRPG制御信号201および202を出力する。そのため、ステップS29においては、PRPG停止回路2B21および2B22にそれぞれ対応したパタン発生器21および22は、動作を停止している。
一方、リセットが解除された状態であるため、PRPG停止回路2B20におけるフリップフロップ2A23も、ロウレベルを出力している。そのため、PRPG停止回路2B20における2入力アンド回路2A27には、○印で示されたインバータ回路を介して、ハイレベルが供給される。これにより、ステップS29において、この2入力アンド回路2A27は、PRPG制御信号200をロウレベルからハイレベルへ変化させる。すなわち、PRPG制御信号200を有効に設定する。このPRPG停止回路2B20に対応したパタン発生器20は、PRPG制御信号200がハイレベルへ変化することにより、動作を開始し、ステップS30において、テストパタンを発生する。発生したテストパタンは、スキャンチェーン400を通して、論理回路40に供給される。なお、この実施の形態3においては、このときのテストパタンは、自己診断動作に用いられないため、無効なデータである。ステップS30において、論理回路41、42、43には、パタン発生器21、22、23が動作を開始していないため、常に固定値が入力されている。
次に、ステップS31において、パタン発生器21の起動判定が行われる。パタン発生器21を起動させるかどうかは、PRPG起動回路2B12におけるカウンタ2B30のカウント値とレジスタ2B31の初期値とが比較器2B32によって一致したかどうかで行われる。PRPG起動回路2B12における比較器2B32が、一致していないと判定した場合には、一致するまで、ステップS30およびS31のイベントを繰り返す。
一方、PRPG起動回路2B12における比較器2B32が、一致したと判定した場合には、PRPG起動回路2B12におけるフリップフロップ2B33の値がハイレベルに固定される。これにより、PRPG起動回路2B12における2入力アンド回路2B35の他方の入力にハイレベルが供給されるため、PRPG起動回路2B12の出力であるPRPG制御信号201はロウレベルからハイレベルへ変化する。すなわち、ステップS32において、PRPG制御信号201を有効に設定する。PRPG制御信号201はハイレベルとなることにより、パタン発生器21が動作を開始し、テストパタンを発生する。
発生したテストパタンは、スキャンチェーン400を通して、論理回路41に入力される(ステップS33)。このとき、パタン発生器20も動作しているため、スキャンチェーン400を通して、パタン発生器20から論理回路40へのテストパタンの供給は継続している。また、パタン発生器20および21により発生されているテストパタンは、自己診断に用いられないため、無効なデータである。なお、ステップS33においては、未だ、パタン発生器22および23は動作を開始していないため、論理回路42および43には、固定の電圧が供給されている。
ステップS34〜S36は、パタン発生器21の代わりにパタン発生器22の起動判定をし、パタン発生器21の代わりにパタン発生器22を起動することを除き、ステップS31〜S33と同じであるため、説明は省略する。同様に、ステップS37〜S39は、パタン発生器21の代わりにパタン発生器23の起動判定をし、パタン発生器21の代わりにパタン発生器23を起動することを除き、ステップS31〜S33と同じであるため、説明は省略する。
このようにして、それぞれのPRPG起動回路におけるレジスタ2B31に設定された時間に関する初期値に従って、PRPG起動回路が1個ずつ、対応するパタン発生器を順次起動する。
ステップS39においては、パタン発生器30〜33のそれぞれが起動されている。そのため、このステップでは、スキャンチェーン400を通して、論理回路40〜43に、パタン発生器30〜33からテストパタンが供給されていることになる。すなわち、自己診断用の有効なデータが、論理回路40〜43に供給されていることになる。そのため、ステップS39において、スキャンチェーン400を通して、論理回路(40〜43)に入力されるテストデータは、初回のテストデータとなる。
次に、ステップS40〜S43において、MISR制御信号300、301、302、303をハイレベルに設定する。これは、図14に示したMISR制御回路3Bで行う。MISR制御回路3Bにおいて、MISR制御回路3Bには、LBIST制御回路10からMISR制御信号103が供給されている。LBIST制御回路10は、例えば、ステップS30において、このMISR制御信号103をハイレベルにしている。これは、ステップS30において、LBIST制御回路10がスキャンテストを開始していることに起因する。また、起動に関して最も遅い時間に設定された初期値を有するPRPG起動回路2B10が、ステップS38において、PRPG制御信号203をロウレベルからハイレベルへ変化させている。このPRPG制御信号203と同期して、MISR起動信号109も、ステップS38のタイミングで、ロウレベルからハイレベルへ変化している。
また、MISR起動回路3B10内のレジスタ3B21には、起動に関して最も長い時間と停止に関して最も短い時間の間の時間に相当する初期値が設定されている。そのため、ステップS39後に、カウンタ3B20のカウント値とレジスタ3B21の初期値とが一致する。一致することにより、フリップフロップ3B23の出力は、ロウレベルからハイレベルに変化する。MISR停止信号108は、PRPG停止回路2B20内のレジスタ2A21に設定されている初期値と、カウンタ2A20のカウント値とが一致していないため、フリップフロップ2A23はロウレベルを維持している。その結果、MISR制御回路3Bは、ハイレベルのMISR制御信号300〜303を出力することになる。
MISR制御信号300〜303のハイレベルは、図9においては、MISR制御信号300〜303を有効に設定として示されている(ステップS40〜S43)。図9において、ステップS44〜S46は、図2に示したステップS10〜S12と同じである。また、ステップS46以降は、図2に示したステップS13〜S27が実行される。そのため、ここでは、詳しい説明は省略するが、実施の形態2で述べたように、PRPG停止回路2B20、2B12、2B11のそれぞれにおけるレジスタ2A21に格納されている時間に関する初期値に従って、PRPG制御信号200、201および202の順に、その電圧がハイレベルからロウレベルへ変化する。これにより、パタン発生器20から22の順に、パタン発生器が停止する。パタン発生器が停止することにより、対応する論理回路には、固定的な電圧が入力として供給されるようになる。
なお、PRPG制御信号203は、リセット信号106がリセットを示すハイレベルまたはPRPG制御信号102をロウレベルにすることにより、ロウレベルとなり、対応するパタン発生器23が停止する。
<半導体装置1Bの動作波形>
図10(A)〜(J)は、実施の形態3に係わる半導体装置1Bにおける自己診断動作での波形を示す波形図である。図10において、横軸は時間の経過を表しており、縦軸は、電圧を表している。図10(A)および(B)は、LBIST制御回路10が出力するPRPG制御信号102とMISR制御信号103の波形を示している。また、図10(C)、(E)、(G)および(I)は、図13に示したPRPG制御回路2Bが出力するPRPG制御信号200〜203の波形を示しており、図10(D)、(F)、(H)および(J)は、図14に示したMISR制御回路3Bが出力するMISR制御信号300〜303の波形を示している。
さらに、図10において、横軸に沿って添えられた符号S28〜S46および符号S13〜S27までの符号は、図9および図2のフローチャート図で説明されたステップS28〜S46およびS13〜S27に対応している。ここでは、S29からS45までの間が、有効なテスト範囲となっており、この有効なテスト範囲の期間においては、論理回路40〜43は、パタン発生器が生成したテストパタンによりランダムな動作を繰り返し実行し、電力を消費する。
また、論理回路40は、有効なテストの前の期間S30〜S36において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。論理回路41は、有効なテストの前の期間S33〜S36と有効なテストのあとの期間S18において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。同様に、論理回路42は、有効なテストの前の期間S36と有効なテストのあとの期間S18〜S21において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。さらに、論理回路43は、有効なテストのあとの期間S18〜S24において、無効なデータであるテストパタンに従ってランダムな動作を繰り返し実行している。
このように、無効なデータであるテストパタンにより動作する論理回路の数を順次増加および減少させることにより、半導体装置1Bを流れる電流が急激に変化することを抑制し、電流変化率を小さく抑えることが可能となる。この実施の形態3においては、有効なテストの前においても、電流変化率を小さく抑制することが可能となるため、さらに誤動作が発生するのを低減することが可能となる。さらに、レジスタ3B21に設定する時間に関する初期値を変えることにより、任意のタイミングで、パタン圧縮器を起動させることが可能となる。
なお、この実施の形態3においては、自己診断動作において有効なテストが開始される前、すなわち有効なテスト範囲の前に、パタン発生器が動作を開始する。そのため、ATPG(Automatic Test Pattern Generator)を用いて、テストパタンに対応した期待値を生成することが困難になる。これは、ATPGが生成する期待値は、図9においてステップS28で入力された初期値に基づいて生成されているためである。しかしながら、期待値は、別途、シミュレータを使って論理シミュレーションを実行して求めることが可能である。
図11は、実施の形態3に係わる半導体装置1Bにおける自己診断動作時の電流波形を模式的に示す波形図である。同図において、横軸は時間の経過を表しており、縦軸は消費電流の大きさを表している。消費電流は、同図において上に行けば大きくなるものとする。横軸に沿って添えられた符号S28〜S46およびS13〜S27は、図9および図2で説明したステップS28〜S46およびS13〜S27に対応している。図11から理解されるように、半導体装置1Bの消費電流は、テストパタンに従って動作する論理回路の個数が増えることにより、階段状に増加し、テストパタンに従って動作する論理回路の個数が得ることにより、階段状に減少する。そのため、自己診断動作の開始と終了において、半導体装置1Bの消費電流が、急激に変化することを抑制することが、可能となる。
また、図12は、実施の形態3に係わる半導体装置1Bにおける単位時間当たりの電流変動を示す波形図である。同図において、横軸は時間の経過を表しており、縦軸は電流変動の大きさを表している。図12の中心線は、0として電流の変動が無いことを示している。電流が増えれば上に伸び、電流が減れば下に伸びるものとする。横軸に沿って添えられた符号S28〜S46およびS13〜S27は、図9および図2で説明したステップS28〜S46およびS13〜S27に対応している。同図に示すように、電流変化は、許容値上限と許容値下限との間に納めることが可能である。
実施の形態3によれば、実施の形態1および2に比べ、テストパタンの供給が始まるステップS30〜S36までの間で、消費電力が急激に変化するのを抑制するように制御が行われる。そのため、自己診断動作の開始時における時間当たりの電流値の変化率(di/dt)を低減させることも可能となる。
実施の形態3において、スキャンイネーブル信号107は、2入力排他的論理和回路3B27、2入力ノア回路3B28および2入力オア回路3B29により、形成されている。MISR起動信号109がハイレベルとなっている期間において、MISR停止信号108がハイレベルとなることにより、2入力排他的論理和回路3B27からロウレベルが出力される。これにより、セレクタ40C1(図18)に供給されるスキャンイネーブル信号107は、ハイレベルとなる。その結果、実施の形態2と同様に、論理回路内のフリップフロップ40B1は、組合せ回路からの不所望のデータを取り込むのを抑制することが可能となる。
また、MISR起動信号109は、起動に関して最も長い時間に相当する初期値が設定されたレジスタ2B31を有するPRPG起動回路2B10から出力される。そのため、最も遅く起動されるパタン発生器23が起動されるまで、MISR起動信号109はロウレベルであり、MISR停止信号108もロウレベルである。従って、有効なデータとなるテストパタンが論理回路40〜43に供給されるまで、2入力排他的論理和回路3B27はロウレベルを出力する。その結果、有効なデータであるテストパタンが、論理回路40〜43へ供給され始めるまで、セレクタ40C1(図18)に供給されるスキャンイネーブル信号107は、ハイレベルとなる。その結果、無効なデータが論理回路に供給されている期間において、フリップフロップ40B1は、組合せ回路からの不所望のデータを取り込むのを抑制することが可能となる。
図13においては、PRPG制御回路2Bが、PRPG起動回路2B10〜2B12とPRPG停止回路2B20〜2B22を備えていたが、PRPG制御回路2Bは、PRPG停止回路2B20〜2B22を備えず、PRPG起動回路2B10〜2B12と制御回路2B42−Cを備えるようにしてもよい。この場合においても、自己診断動作の開始時に、半導体装置1Bを流れる電流の電流変化率を抑制することが可能であり、誤動作が発生するのを抑制することが可能となる。
<変形例>
実施の形態3においては、自己診断テストの開始時に、PRPG制御信号200〜203を時間分割して、順次ハイレベルにしている。すなわち、パタン発生器30〜33が、時間間隔をおいて、順次動作する。そのため、実際に有効なテストを開始する時点(図9のステップS39)におけるパタン発生器20〜22のシード値は、初期値として入力した時点(図9のステップS28)の値と異なってしまう。これは、図9のステップS28において入力した初期値に基づいて計算したATPGの出力を期待値として使用することが困難であることを示している。対策として、シミュレータによる論理シミュレーションの結果から期待値を取得することが考えられる。
変形例では、実施の形態3に適した期待値を、ATPGによって生成する、テストパタン生成方法が開示される。図17は、テストパタン生成方法を示すフローチャート図である。同図において、T1はATPGツールを示している。図17においては、説明を容易にするために、2個のパタン発生器PRPG1、PRPG2を用いる場合を説明する。この場合、パタン発生器PRPG1は、例えば図8のパタン発生器20に相当し、パタン発生器PRPG2は、例えば図8のパタン発生器21に相当する。
テストパタンに対応した期待値を求めるために、パタン発生器PRPG1、PRPG2の初期値D1、D2を求める(第1工程)。また、パタン発生器PRPG1、PRPG2のそれぞれの動作開始時間D3、D4を求める(第2工程)。求めた初期値D1、D2と動作開始時間D3、D4をATPGツールT1に入力する。この場合の動作開始時間D3、D4は、図9のステップS29、S32に相当する時間である。
ATPGツールT1は、与えられたパタン発生器PRPG1、PRPG2の初期値D1、D2とその動作開始時間D3、D4から、シード値計算F1によって、実際に有効なテストが始まる時刻(図9のステップS39)におけるパタン発生器のシード値(初期値)D5、D6を求める(第3工程)。
その後、ATPGのメインエンジンF2にパタン発生器のシード値D5、D6を与えて、故障シミュレーションを実行し、実際に有効なテストが始まる時刻における期待値D7を求める(第4工程)。求めた期待値D7と初期値D1、D2とに基づいて、テストパタン生成F3を行い、テストパタンD7を出力する。
これにより、ATPGを用いて、期待値とテストパタンを生成することが可能となる。この場合、シミュレータを用いて期待値を計算する方法と比べて、比較的短時間で期待値を算出することができる。また、故障シミュレーションを実施するため、比較的短時間で正確な故障検出率を算出することができる。これは、シミュレータによる論理シミュレーションは、スキャンシフト動作を含めて全サイクル分のシミュレーションを実施するのに対して、ATPGによる故障シミュレーションは、キャプチャの動作だけをピックアップしてシミュレーションを実施するため、短時間化が図れる。
(実施の形態4)
図15は、実施の形態4に係わる半導体装置1Cの構成を示すブロック図である。半導体装置1Cは、その機能を達成する構成として、論理回路40を備えており、これらの論理回路40の自己診断を目的に、LBIST制御回路10と、パタン発生器20と、パタン圧縮器30を備えている。また、半導体装置1Cは、パタン発生器20が出力するシフトデータを制御するシフトデータ制御回路2Cと、パタン圧縮器30を制御するMISR制御回路3Cとを備えている。
シフトデータ制御回路2Cは、LBIST制御回路10とPRPG制御信号102で電気的に接続されている。また、シフトデータ制御回路2Cは、パタン発生器20および論理回路40とスキャンチェーン400(2C30〜2C33)で電気的に接続されている。MISR制御回路3Cは、LBIST制御回路10とMISR制御信号103で電気的に接続されている。また、MISR制御回路3Cは、パタン圧縮器30とMISR制御信号300で電気的に接続されている。
スキャンチェーン400(2C30〜2C33)は、シフトデータ制御回路2Cにより、その機能の動作開始と動作停止とが切り替えられる。パタン圧縮器30は、MISR制御回路3Cが生成するMISR制御信号300により、その機能の動作開始と動作停止とが切り替えられる。この実施の形態においては、どちらもロウレベルが動作停止で、ハイレベルが動作開始である。
パタン発生器20とパタン圧縮器30は、PRPG/MISRチェーン101でLBIST制御回路10と数珠繋ぎになっており、シフト動作を繰り返すことにより、LBIST制御回路10よって、パタン発生器20およびパタン圧縮器30に初期値を設定する。同様にシフト動作を繰り返すことにより、LBIST制御回路10は、パタン圧縮器30から診断結果を回収する。論理回路40は、フリップフロップ(FF)で構成されており、スキャンチェーン400(2C30〜2C33)により一定個数ずつ数珠繋ぎで接続されている。スキャンチェーン400(2C30〜2C33)は、入力側がシフトデータ制御回路2Cに、出力側がパタン圧縮器30にそれぞれ接続されている。図15では、半導体装置1Cは、パタン発生器20とパタン圧縮器30を1個ずつ有するように示しているが、この個数に限定されない。
<シフトデータ制御回路2Cの構成>
図16は、実施の形態4に係わるシフトデータ制御回路2Cの構成を示すブロック図である。シフトデータ制御回路2Cは、制御回路2C27−Cと、シフトデータ停止回路2C10、2C11、2C12を備えている。制御回路2C27−Cは、シフトデータ制御回路2Cの制御を行う制御回路であって、シフトデータ制御回路2Cの動作開始と動作終了を司るフリップフロップ2C27と組合せ回路2C28を備えている。この制御回路2C27−Cは、先の述べた制御回路2A24−C、2B42−Cと同様に、フリップフロップ2C27は、入力されるPRPG制御信号102が起動状態(ハイレベル)となったときに、ハイレベルの状態を保持し、リセット信号106がハイレベルにされるまで、ハイレベルを継続する。
シフトデータ停止回路2C10〜2C12は、互いに同じ構成を有している。そのため、図16には、シフトデータ停止回路2C10についてのみ、構成が示されている。シフトデータ停止回路の個数は、半導体装置1Cに搭載するスキャンチェーンの数に応じて増減し、最大でスキャンチェーンの数と同じだけ必要となるが、その数を上限として制限するものではない。なお、複数のスキャンチェーンに対して1つのシフトデータ停止回路を共有させても良い。また同図において、スキャンチェーン2C33のようにシフトデータ停止回路による制御をさせないスキャンチェーンがあっても良い。
次に、シフトデータ停止回路の構成を、シフトデータ停止回路2C10を代表として、説明する。シフトデータ停止回路2C10は、カウンタ2C20、レジスタ2C21、比較器2C22、フリップフロップ2C23、組合せ回路2C24、2入力アンド回路2C25および2C26を備えている。ここで、組合せ回路2C24は、その一方の入力に比較器2C22の出力が供給され、その他方の入力にフリップフロップ2C23の出力が供給される2入力オア回路2C24−Oと、その一方の入力に制御回路2C27−Cからの出力が供給され、その他方の入力に2入力オア回路2C24−Oの出力が供給される2入力アンド回路2C24−Aを有している。
カウンタ2C20は、入力されるクロック信号104に同期して、カウントアップもしくはカウントダウンを行い、カウント値を出力する。レジスタ2C21には、レジスタ設定信号105−Iにより時間に関する任意の値が格納される。比較器2C22は、カウンタ2C20のカウント値とレジスタ2C21に格納されている値とを比較する。比較の結果、一致すれば、比較器2C23はハイレベルを出力し、一致しなければ、比較器2C23はロウレベルを出力する。
制御回路2C27−Cにおけるフリップフロップ2C27がハイレベルの状態のとき、比較の結果が一致していれば、比較器2C22からのハイレベルは、組合せ回路2C24を介して、フリップフロップ2C23の入力に伝達され、フリップフロップ2C23は、このハイレベルに対応する論理値を格納するとともに、ハイレベルを出力する。反対に、比較の結果が不一致であれば、組合せ回路2C24の出力はロウレベル出力し、フリップフロップ2C23は、論理値“0”を格納し、ロウレベルを出力する。
フリップフロップ2C23の出力は、○印で示されたインバータ回路により位相反転され、2入力アンド回路2C25の一方の入力に供給されている。同様に、フリップフロップ2C23の出力は、○印で示されたインバータ回路により位相反転され、2入力アンド回路2C26の一方の入力に供給されている。また、このシフトデータ停止回路2C10においては、フリップフロップ2C23の出力は、MISR停止信号108として出力される。
パタン発生器20は、自己診断動作のとき、テストパタンTP30〜TP33を発生する。図16においては、パタン発生器20は、スキャンチェーン3C30にテストパタンに従ったシフトデータTP30を供給し、スキャンチェーン3C31にテストパタンに従ったシフトデータTP31を供給し、スキャンチェーン3C32にテストパタンに従ったシフトデータTP32を供給し、スキャンチェーン3C33にテストパタンに従ったシフトデータTP33を供給する。
カウンタ2C20のカウント値が、レジスタ2C21に格納されている値に到達していない場合、フリップフロップ2C23はロウレベルを出力する。これにより、2入力アンド回路2C25および2C26は、シフトデータTP30を論理回路40へ供給する。一方、カウンタ2C20のカウント値が、レジスタ2C21に格納されている値と一致すると、フリップフロップ2C23はハイレベルを出力する。これにより、2入力アンド回路2C25および2C26は、シフトデータTP30の論理値とは無関係に、ロウレベルを論理回路40へ供給する。
図16に示した2入力アンド回路2C25の出力は、例えば図18に示した論理回路40において、同図の上側に示したスキャンチェーン400に接続され、2入力アンド回路2C26の出力は、図18において下側に示したスキャンチェーン400に接続される。これにより、レジスタ2C21に設定した値により、論理回路40に設けられているフリップフロップ40B1、40B2の入力に供給される電圧(論理値)をシフトデータに従って変化させるか、ロウレベルに固定するのかを定めることが可能となる。また、ロウレベルに固定するタイミング、言い換えるならばシフトデータの供給を停止する停止タイミングを定めることが可能となる。シフトデータではなく、ロウレベルのような所定の電圧に固定するため、スキャンチェーンを停止している停止状態と見なすこともできる。
スキャンチェーンを停止している停止状態は、リセット信号106によってフリップフロップ2C27の値がロウレベルにクリアされるまで継続する。
他のシフトデータ停止回路2C11、2C12についても、シフトデータ停止回路2C10と同様であるが、シフトデータ停止回路2C10、2C11、2C12のそれぞれにおいて、レジスタ2C21に設定される時間に関する値は互いに異なるようにする。この実施の形態4においては、シフトデータ停止回路2C10におけるレジスタ2C21には、最も短い時間に相当する値を設定し、シフトデータ停止回路2C11におけるレジスタ2C21には、シフトデータ停止回路2C10におけるレジスタ2C21に設定する時間よりも長い時間に相当する値を設定する。さらにシフトデータ停止回路2C12におけるレジスタ2C21には、シフトデータ停止回路2C11におけるレジスタ2C21に設定する時間よりも長い時間に相当する値を設定する。
実施の形態2および3と同様に、シフトデータ停止回路2C10、2C11、2C12のそれぞれにおけるレジスタ2C21の設定は、これらのシフトデータ停止回路2C10、2C11、2C12を互いに直列に接続して、シフトレジスタとし、LBIST制御回路10からレジスタ設定信号105−Iにより、順次時間に関する値を供給することにより、設定する。
このようにそれぞれのレジスタ2C21に時間に関する値を設定することにより、スキャンチェーン2C30が最初に停止状態になり、スキャンチェーン2C31、2C32の順に停止状態となる。なお、スキャンチェーン2C33は、リセット信号106をハイレベルとすることにより、停止状態となる。この場合、最初にスキャンチェーンを停止状態とするシフトデータ停止回路2C10におけるフリップフロップ2C23の値がMISR停止信号として、MISR制御回路3Cに供給される。
実施の形態2で述べたように、シフトデータ停止回路2C11から出力されるMISR停止信号2C11−108と、シフトデータ停止回路2C12から出力されるMISR停止信号2C12−108と、シフトデータ停止回路2C10から出力されるMISR停止信号108とで論理和の演算を行い、演算結果をMISR停止信号としてMISR制御回路3Cに供給してもよい。また、カウンタ2C20は、複数のシフトデータ停止回路で共有してもよい。
MISR制御回路3Cの構成は、図7で説明したMISR制御回路3Aと同じであるため、説明は省略する。
この実施の形態4においては、実施の形態1〜3と異なり、パタン発生器の動作を停止して、テストパタンを停止させるのではなく、パタン発生器が生成したテストパタンに従ったシフトデータの論理回路への供給を停止させる点である。
実施の形態4においては、消費電力の制御を、パタン発生器単位ではなく、スキャンチェーン単位で制御している。これにより、パタン発生器の単位で実施している電力制御よりも、よりきめの細かい制御が可能となる。また、パタン発生器とパタン圧縮器のセットが1セットである場合でも実施の形態2と同等以上の効果を得ることが可能である。
この実施の形態4において、シフトデータ制御回路2Cは、テストパタン制御回路と見なされる。また、例えばスキャンチェーン2C30を通してシフトデータ(テストパタン)が供給される論理回路を、第1論理回路と見なした場合、シフトデータ停止回路2C10のレジスタ2C21(第1レジスタ)に格納された値により、第1論理回路へ供給されるテストパタンの停止タイミングが定められることになる。同様に、スキャンチェーン2C31を通して、シフトデータ(テストパタン)が供給される論理回路を、第2論理回路と見なした場合、シフトデータ停止回路2C11のレジスタ2C21(第2レジスタ)に格納された値により、第2論理回路へ供給されるテストパタンの停止タイミングが定められることになる。
以上述べた実施の形態1〜4において、論理回路40〜43を含む回路は、第1回路と見なすことができる。また、PRPG制御回路は、パタン発生器制御回路と見なし、MISR制御回路は、パタン圧縮器制御回路と見なすことができる。例えば、実施の形態2においては、複数のパタン圧縮器30〜33を用いた例を示したが、これらの複数のパタン圧縮器30〜33は1個のパタン圧縮器と見なしてもよい。また、パタン圧縮器は、テストパタンに従って論理回路から出力される信号を処理する処理器と見なしてもよい。さらに、LBIST制御回路10は、自己診断制御回路と見なしてもよい。
また、LBIST制御回路10と、例えば図6に示したPRPG制御回路2Aとを併せて制御回路と見なしてもよい。この場合、制御回路が、複数のパタン発生器20〜22間において、対応する論理回路40〜42へ供給するテストパタンの停止タイミングが互いに異なるように制御していると見なすことができる。
車載用MCUに内蔵される自己診断回路を例にして、課題を説明した。しかしながら、以上述べた複数の実施の形態に係わる自己診断回路は、車載用MCUに内蔵される自己診断回路に限定されず、種々の半導体装置に内蔵することが可能である。また、自己診断回路は、電源の投入に応答して起動されるものに限定されない。例えば、電源の投入等とは無関係に、自己診断回路は任意のタイミングで起動するようにしてもよい。
また、実施の形態において、クロック信号104は、半導体装置(例えば、1A)の外部端子を介して半導体装置の外部から供給することを説明した。しかしながら、半導体装置(例えば、1A)に、クロック信号104を発生するクロック信号発生回路を設けるようにしてもよいことは言うまでもない。
<付記>
本明細書には、複数の発明が開示されており、その内のいくつかは、特許請求の範囲に記載しているが、これ以外の発明も開示しており、その代表的なものを次に列記する。
(A)テスト期間において、テストパタンを発生するパタン発生器と、
電圧配線に接続された第1論理回路を有する第1回路と、
前記パタン発生器と前記第1回路とに接続されたテストパタン制御回路と、
前記テストパタン制御回路を制御する制御回路と、
前記テストパタンに応じて、前記第1論理回路から出力された信号が供給される処理回路と、
を備え、
前記テストパタン制御回路は、テスト期間において、前記制御回路の制御により、前記第1回路内の第1論理回路への前記テストパタンの供給を停止する、半導体装置。
(B)(A)に記載の半導体装置において、
前記第1回路は、前記電圧配線、前記パタン発生器および前記テストパタン制御回路に接続された第2論理回路を備え、
前記テストパタン制御回路は、前記制御回路の制御により、前記第1論理回路へ供給されるテストパタンの停止タイミングと前記第2論理回路へ供給されるテストパタンの停止タイミングを異ならせる、半導体装置。
(C)(B)に記載の半導体装置において、
前記テストパタンの停止は、前記第1論理回路および前記第2論理回路へ供給されるテストパタンの論理値を所定の論理値に固定することである、半導体装置。
(D)(C)に記載の半導体装置において、
前記第1論理回路および第2論理回路のそれぞれは、
テスト期間において、前記テストパタン制御回路からテストパタンが供給されるシフトレジスタを構成するように直列に接続される複数のフリップフロップ回路と、
テスト期間において、前記複数のフリップフロップ回路に接続される組合せ回路と、
を備える、半導体装置。
(E)(D)に記載の半導体装置において、
前記半導体装置は、前記第1論理回路へ供給されるテストパタンの停止タイミングを定める情報が格納される第1レジスタと、前記第2論理回路へ供給されるテストパタンの停止タイミングを定める第2レジスタとを備える、半導体装置。
(F)複数の論理回路と、テスト期間において、前記複数の論理回路間を遮断する遮断回路とを備えた第1回路と、
前記複数の論理回路のそれぞれに対応し、テスト期間において、対応する論理回路へテストパタンを供給する複数のパタン発生器と、
テストパタンに応じて、前記複数の論理回路のそれぞれから出力される信号が供給される処理器と、
前記複数のパタン発生器に接続され、前記複数のパタン発生器間において、対応する論理回路へ供給するテストパタンの停止タイミングが互いに異なるように、前記複数のパタン発生器をそれぞれ制御する制御回路と、
を備える、半導体装置。
(G)(F)に記載の半導体装置において、
前記遮断回路は、所定の論理値を前記複数の論理回路へ供給することにより、前記複数の論理回路間を遮断する、半導体装置。
(H)(G)に記載の半導体装置において、
前記遮断回路は、フリップフロップを有し、前記フリップフロップを所定の状態にすることにより、前記所定の論理値を前記複数の論理回路へ供給する、半導体装置。
(I)パタン発生器により発生されるテストパタンの初期値を求める第1工程と、
前記パタン発生器の動作開始時間を求める第2工程と、
前記第1工程により求めたテストパタンの初期値と、前記第2工程により求めた前記パタン発生器の動作開始時間とに基づいて、有効なテストが始まる時刻におけるテストパタンの初期値を求める第3工程と、
前記第3工程により求めた初期値を基にして、故障シミュレーションを実行し、前記有効なテストが始まる時刻におけるテストパタンに対する期待値を求める第4工程と、
前記第4工程により求めた期待値と、前記パタン発生器により発生されるテストパタンとに基づいて、論理回路へ供給されるテストパタンを形成する、テストパタン生成方法。
(J)(I)に記載のテストパタン生成方法において、
前記故障シミュレーションは、ATPGにより行われる、テストパタン生成方法。
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。