(57)【要約】【課題】ＢＩＳＴによりセルフチェックをする場合は、ビット線カップリングの影響等の特定ビットのデータの組み合わせ時に発生する不良の検出が難しい。【解決手段】半導体集積回路装置は、ランダムアクセスメモリＲＡＭを有し、ランダムアクセスメモリＲＡＭの各アドレスに対応したデータ格納領域は、複数のパリティビット格納領域と、複数の通常ビット格納領域を有し、ランダムアクセスメモリＲＡＭの特定のアドレスに対応した複数のパリティビット格納領域に格納された複数のパリティビットに基づいて、ワンホットテストまたはワンクールテストをランダムアクセスメモリＲＡＭに対して行う。【選択図】図６
2014086109.tif 000002
【特許請求の範囲】
【請求項１】
ランダムアクセスメモリを有し、
前記ランダムアクセスメモリの各アドレスに対応したデータ格納領域は、複数のパリティビット格納領域と、複数の通常ビット格納領域を有し、
前記ランダムアクセスメモリの特定のアドレスに対応した前記複数のパリティビット格納領域に格納された複数のパリティビットに基づいて、ワンホットテストまたはワンクールテストを前記ランダムアクセスメモリに対して行う半導体集積回路装置。
【請求項２】
前記ワンホットテストまたはワンクールテストを実行するテスト回路を有し、
前記ランダムアクセスメモリの特定のアドレスに対応した前記複数のパリティビット格納領域に格納されたパリティビットは、前記ワンホットテストをするのか、前記ワンクールテストをするのか否かを定め、前記ランダムアクセスメモリの各メモリセルの非反転バスからの出力信号をテストするのか、反転バスからの出力信号をテストするのか否かを定め、
前記テスト回路は前記ランダムアクセスメモリのどの範囲のアドレスをテストするのかを定める第一レジスタを有する請求項１に記載の半導体集積回路装置。
【請求項３】
前記ランダムアクセスメモリの各アドレスに対応する前記複数のデータ格納領域から読みだされた複数のビットのうちのどのビットをマスクするのかを設定するためのマスクレジスタを有し、
前記ワンホットテストまたは前記ワンクールテストを実行する際は、前記マスクレジスタに格納されたテストデータと、前記ランダムアクセスメモリから読みだされた複数のビットとを比較することでエラーがあるか否かを判定する比較判定回路を前記テスト回路は持つ請求項２に記載の半導体集積回路装置。
【請求項４】
前記ワンホットテストまたは前記ワンクールテストを実行する際に、前記複数のデータ格納領域のどの領域をテストするのかを設定するテストビット設定レジスタと、前記ランダムアクセスメモリのどのアドレスをテストするのかを設定するテストアドレス設定レジスタとを前記テスト回路は持つ請求項３に記載の半導体集積回路装置。
【請求項５】
前記ワンホットテストまたは前記ワンクールテストは中央演算装置および不揮発性メモリに格納されているプログラムにより実行される請求項１に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、半導体集積回路装置に関し、特にランダムアクセスメモリを持つ半導体集積回路装置に関する。
【背景技術】
【０００２】
ＲＡＭのセルフチェックを行う半導体集積回路装置は、多くの場合ＢＩＳＴ（Built In Self Test）を搭載している。この場合、固定テストデータのライトおよびリードをランダムアクセスメモリに対して行い、期待値とランダムアクセスメモリからのリードデータを比較してテストを行うことでセルフチェックをおこなう。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ＢＩＳＴによりセルフチェックをする場合は、ビット線カップリングの影響等の特定ビットのデータの組み合わせ時に発生する不良の検出が難しい問題がある。さらに検出率を向上させるためには多彩な試験を行って検証をする必要があり、期待値を生成する回路の設計負担が大きいという問題がある。
【０００４】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００５】
一実施の形態による半導体集積回路装置は、パリティビットに基づいて、ワンホット、ワンクールテストをランダムアクセスメモリに対して行う。
【発明の効果】
【０００６】
上記一実施の形態によれば、簡単な構成にて特定ビットのデータの組み合わせ時に発生する不良の検出が可能となる。
【図面の簡単な説明】
【０００７】
【図１】実施の形態１の半導体集積回路装置の全体図である。
【図２】ランダムアクセスメモリの構成図である。
【図３】メモリセルの構成を示す図である。
【図４】ランダムアクセスメモリのアドレスとデータ格納領域の関係を表した図である。
【図５】ワンホットテストおよびワンクールテストを説明するための図である。
【図６】テスト回路を説明するための図である。
【図７】ランダムアクセスメモリのテスト動作を表すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら、実施の形態について詳細に説明する。
【０００９】
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらはお互いに無関係なものではなく、一方は他方の一部または全部の変形例、応用例、詳細説明、補足説明等の関係にある。また、以下の実施の形態において、要素の数等（個数、数値、量、範囲等を含む）に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
さらに、以下の実施の形態において、その構成要素（動作、タイミングチャート、要素ステップ、動作ステップ等も含む）は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数等（個数、数値、量、範囲等を含む）についても同様である。
【００１０】
なお、実施の形態を説明するための全図において、同一の機能を有する部位や部材には同一または関連する符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態では、特に必要なとき以外は同一または同様な部分の説明を原則として繰り返さない。
【００１１】
また、実施の形態で用いる図面においては、断面図であっても図面を見易くするためにハッチングを省略する場合もある。また、平面図であっても図面を見易くするためにハッチングを付す場合もある。
【００１２】
（実施の形態１）
図１は実施の形態１の半導体集積回路装置の全体図である。
【００１３】
半導体集積回路装置ＩＣは、中央演算装置ＣＰＵと、ランダムアクセスメモリＲＡＭと不揮発性メモリＦＬＡＳＨと、ＡＤ変換回路ＡＤＣと、入出力回路Ｉ／Ｏと、発振回路ＯＳＣと、バスＢＵＳと、テスト回路ＴＥＳＴとを有する。
【００１４】
中央演算装置ＣＰＵはプログラムに従って半導体集積回路装置ＩＣ全体を制御する。ランダムアクセスメモリＲＡＭは中央演算装置ＣＰＵのワークエリアとして用いられ、各種データや命令等を記憶する記憶領域である。不揮発性メモリＦＬＡＳＨは格納されたデータが書き換え可能となっており、中央演算装置ＣＰＵにて用いられる各種プログラムが記憶されている。入出力回路Ｉ／Ｏは各種ポートの入出力制御を行う回路である。ＡＤ変換回路ＡＤＣはアナログ信号をデジタル信号に変換する回路である。テスト回路ＴＥＳＴはランダムアクセスメモリＲＡＭ等各種内部回路をテストするための回路である。バスＢＵＳは中央演算装置ＣＰＵ、ランダムアクセスメモリＲＡＭ、不揮発性メモリＦＬＡＳＨ、入出力回路Ｉ／Ｏ、テスト回路ＴＥＳＴ、及び発振回路ＯＳＣとの間にて各種データ、コマンド、及びアドレスを互いにやり取りするための複数の信号線である。バスＢＵＳは各種データが流れるデータバスＤ−ＢＵＳと、コマンドが流れる制御バスＣ−ＢＵＳと、アドレスが流れるアドレスバスＡ−ＢＵＳがある。発振回路ＯＳＣは外部のクロック信号に基づいて、中央演算装置ＣＰＵ、ランダムアクセスメモリＲＡＭ、不揮発性メモリＦＬＡＳＨ、入出力回路Ｉ／Ｏ、テスト回路ＴＥＳＴ、および発振回路ＯＳＣにて用いられる各種クロック信号を生成する。
【００１５】
図２はランダムアクセスメモリの構成図である。
【００１６】
ランダムアクセスメモリＲＡＭは、メモリマットＭＭ−Ｌと、メモリマットＭＭ−Ｒと、複数のワードラインＷＬと、ロウデコーダＬＤと、カラムゲートＣＧ−Ｌと、カラムゲートＣＧ−Ｒと、カラムデコーダＣＤと、プリデコーダＰｒｅ−Ｄと、メモリ制御部ＭＣ−Ｌと、メモリ制御部ＭＣ−Ｒと、複数のビットラインＢＬとを有する。
【００１７】
メモリマットＭＭ−ＲおよびメモリマットＭＭ−Ｌはマトリクス状に配置された複数のメモリセルＭＣを有する。メモリセルＭＣそれぞれは１ビットのデータを格納する領域となっている。メモリマットＭＭ−ＲおよびメモリマットＭＭ−Ｌには図中にて縦方向に複数のビットラインＢＬが設けられており、図中にて左右方向に複数のワードラインＷＬが設けられている。この複数のビットラインＢＬそれぞれと、複数のワードラインＷＬそれぞれとの交点に対応して、メモリセルＭＣが設けられている。
【００１８】
プリデコーダＰｒｅ−ＤはアドレスバスＡ−ＢＵＳのアドレスをデコード処理し、ロウデコーダＬＤはプリデコーダＰｒｅ−Ｄからの出力をさらにデコード処理してどのワードラインＷＬを選択するのかを定める。
【００１９】
図中にてメモリマットＭＭ−ＲおよびメモリマットＭＭ−Ｌ内において左右方向に複数のワードラインＷＬがそれぞれ延び、ロウデコーダＬＤの出力に基づいたワードラインＷＬにて選択されたメモリセルＭＣが書き込みおよび読み出し可能となる。
【００２０】
カラムデコーダＣＤはアドレスバスＡ−ＢＵＳのアドレスをデコード処理しどのビットラインＢＬに対応するメモリセルＭＣのデータの読み出しや書き込みが可能となるのかを定める。
【００２１】
図中にてメモリマットＭＭ−ＲおよびメモリマットＭＭ−Ｌ内において上下方向に複数のビットラインＢＬがそれぞれ延び、カラムデコーダＣＤの出力に基づいたビットラインＢＬにて選択されたメモリセルＭＣが書き込みおよび読み出し可能となる。
【００２２】
カラムゲートＣＧ−ＲおよびカラムゲートＣＧ−ＬはカラムデコーダＣＤの出力に基づいて、ビットラインＢＬからの読み出しデータを受けたりビットラインＢＬに書き込みデータを流したりする。カラムゲートＣＧ−ＲがメモリマットＭＭ−Ｒのデータを取扱い、カラムゲートＣＧ−ＬがメモリマットＭＭ−Ｌのデータを取り扱う。
【００２３】
メモリコントローラＭＣ−ＲやメモリコントローラＭＣ−ＬはデータバスＤ−ＢＵＳからのデータやデータバスＤ−ＢＵＳへ出力するデータをどのように取り扱うかを制御する回路である。メモリコントローラＭＣ−ＲがメモリマットＭＭ−Ｒに対するデータを取扱い、メモリコントローラＭＣ−ＬがメモリマットＭＭ−Ｌに対するデータを取り扱う。
【００２４】
メモリコントローラＭＣ−ＲはセンスアンプＳＡと、入出力コントローラＩＯ−Ｃと、入力ゲートＩＧと、モードコントローラＭｏｄｅ−Ｃとを有する。
【００２５】
センスアンプＳＡは、カラムゲートＣＧ−Ｒからのデータを増幅してモードコントローラＭｏｄｅ−Ｃにデータを渡す。入出力コントローラＩＯ−ＣはモードコントローラＭｏｄｅ−Ｃの設定値に基づいて、メモリマットＭＭ−Ｒに対して書き込み制御を行うのか、メモリマットＭＭ−Ｒからの読み出しデータの制御を行うのかを制御する。書き込み制御を行う場合は、入力ゲートＩＧをイネーブルにし、読み出しデータの制御を行う場合は、センスアンプＳＡをイネーブルにする。入力ゲートＩＧはモードコントローラＭｏｄｅ−ＣからのデータをカラムゲートＣＧ−Ｒに渡す。
【００２６】
モードコントローラＭｏｄｅ−ＣはデータバスＤ−ＢＵＳに出力するデータやデータバスＤ−ＢＵＳから入力されるデータやセンスアンプＳＡから入力されるデータを、半導体集積回路装置ＩＣの外部や中央演算装置ＣＰＵにより設定されたモードに基づいて加工して入力ゲートＩＧやデータバスＤ−ＢＵＳに渡す。
【００２７】
モードコントローラＭｏｄｅ−Ｃはパリティビット制御回路ＰＲＴＹ−Ｃと、マスクレジスタＭａｓｋＲｅｇとを有する。メモリマットＭＭ−Ｒに対してデータを書き込みするときは、パリティビット制御回路ＰＲＴＹ−Ｃは特に何もせず、マスクレジスタＭａｓｋＲｅｇは設定されたビットに対してはデータの書き込みをしないような制御をする。メモリマットＭＭ−Ｒからのデータを読み出すときは、パリティビット制御回路ＰＲＴＹ−Ｃはパリティビットに基づいて読み出しデータのエラーがあるか否かを検出し、エラーがある場合には半導体集積回路装置ＩＣの外部または中央演算装置ＣＰＵに通知する。メモリマットＭＭ−Ｒからのデータを読み出すときは、マスクレジスタＭａｓｋＲｅｇは設定されたビットに対してはデータの読み出しをしないような制御をする。
【００２８】
モードコントローラＭｏｄｅ−Ｃにテストモードが設定された場合は、パリティビット制御回路ＰＲＴＹ−Ｃは後に説明するようにどのようなテストを行うかをパリティビットにて設定するように用いられ、マスクレジスタＭａｓｋＲｅｇはテストにて用いられる期待値としてのテストデータが格納されるように用いられる。
【００２９】
メモリコントローラＭＣ−Ｌは基本的にメモリコントローラＭＣ−Ｒと構成及び動作が基本的に同じであるが、入出力されるデータがメモリマットＭＭ−Ｌに関するものである。
【００３０】
図３はメモリセルの構成を示す図である。
【００３１】
メモリセルＭＣはインバータＩＮＶ１と、インバータＩＮＶ２と、トランスファーゲートＴＧ１と、トランスファーゲートＴＧ２とを有する。
【００３２】
トランスファーゲートＴＧ１とトランスファーゲートＴＧ２はＮチャネルＭＯＳトランジスタであり、ゲートがワードラインＷＬに接続されている。トランスファーゲートＴＧ１の一方のソース・ドレイン端子はビットラインＢＬ（非反転ビットライン）に接続されており、トランスファーゲートＴＧ１の他方のソース・ドレイン端子はインバータＩＮＶ１の入力と接続されている。トランスファーゲートＴＧ２の一方のソース・ドレイン端子は反転ビットラインＲ−ＢＬに接続されており、トランスファーゲートＴＧ２の他方のソース・ドレイン端子はインバータＩＮＶ１の出力と接続されている。ビットラインＢＬに流されるデータと反転ビットラインＲ−ＢＬに流されるデータとは互いに反転な関係となっている。なお、図２にてランダムアクセスメモリＲＡＭは複数のビットラインＢＬがあるとの説明を行ったが、実際には１つのビットラインＢＬに１つの反転ビットラインＲ−ＢＬがペアとなって存在している。
【００３３】
インバータＩＮＶ１の入力とインバータＩＮＶ２の出力が接続されており、インバータＩＮＶ１の出力とインバータＩＮＶ２の入力が接続されている。インバータＩＮＶ１とインバータＩＮＶ２によりラッチが構成されており、ワードラインＷＬが選択されてトランスファーゲートＴＧ１およびトランスファーゲートＴＧ２がオンとなった時に、インバータＩＮＶ１の入力にデータがビットラインＢＬから入力され、インバータＩＮＶ２の入力に反転されたデータが反転ビットラインＲ−ＢＬから入力されることで、ラッチにデータが保持される。同じくワードラインＷＬが選択されてトランスファーゲートＴＧ１およびトランスファーゲートＴＧ２がオンとなった時に、インバータＩＮＶ１の出力に保持された反転データが反転ビットラインＲ−ＢＬから出力され、インバータＩＮＶ２の出力に保持されたデータがビットラインＢＬから出力されることで、ラッチからデータが出力される。
【００３４】
図４はランダムアクセスメモリのアドレスとデータ格納領域の関係を表した図である。
ランダムアクセスメモリＲＡＭはデータ格納場所を表す領域としてのアドレス００００〜アドレスＦＦＦＦを持つ。ここでアドレスは１６進数で表されている。各アドレスはデータ格納領域を持っており、このデータ格納領域は通常ビット格納領域Ｂ０〜Ｂ７、Ｂ９〜Ｂ１６と、パリティビット格納領域Ｂ８、Ｂ１７を持っている。各通常ビット格納領域Ｂ０〜Ｂ７、Ｂ１０〜Ｂ１６は通常のデータを構成する各１ビットが格納されており、各パリティビット格納領域Ｂ８、Ｂ１７は通常のデータのエラーを検出するためのパリティビットの各１ビットが格納されている。
【００３５】
アドレスＦＦＦＦは特別なアドレスとなり、このアドレスのパリティビット格納領域Ｂ８、Ｂ１７のパリティビットはテスト時においては、ランダムアクセスメモリＲＡＭに対するテストの方式を定めるビットとなる。
【００３６】
図５はワンホットテストおよびワンクールテストを説明するための図である。
【００３７】
図５の（ａ）はワンホットテストを説明するための図である。
【００３８】
ワンホットテストはランダムアクセスメモリＲＡＭのテスト対象のアドレスのデータ格納領域のうちの１ビットのみを１としてその他を０としてテストを行うものである。（ａ）では通常ビット格納領域Ｂ４を１とし、その他のデータ格納領域である通常ビット格納領域Ｂ０〜Ｂ３、Ｂ５〜Ｂ７、Ｂ９〜Ｂ１６およびパリティビット格納領域Ｂ８、Ｂ１７は０としている。テストとしては対象のアドレスのデータ格納領域に期待値を書き込み、次にこの対象のアドレスのデータ格納領域から読みだされた値と期待値とを比較することで実行される。このワンホットテストは各データ格納領域全てに１を格納するようにして実行するために、通常ビット格納領域Ｂ０に１を格納して実行してからパリティビット格納領域Ｂ１７に１を格納して実行するまで１８回順番に実行される。
【００３９】
図５の（ｂ）はワンクールテストを説明するための図である。
【００４０】
ワンクールテストはランダムアクセスメモリＲＡＭのテスト対象のアドレスのデータ格納領域のうちの１ビットのみを０としてその他を１としてテストを行うものである。（ｂ）では通常ビット格納領域Ｂ１３を０とし、その他のデータ格納領域である通常ビット格納領域Ｂ０〜Ｂ７、Ｂ９〜Ｂ１２、Ｂ１４〜Ｂ１６およびパリティビット格納領域Ｂ８、Ｂ１７は１としている。テストとしては対象のアドレスのデータ格納領域に期待値を書き込み、次にこの対象のアドレスのデータ格納領域から読みだされた値と期待値とを比較することで実行される。このワンホットテストは各データ格納領域全てに０を格納するようにして実行するために、通常ビット格納領域Ｂ０に０を格納して実行してからパリティビット格納領域Ｂ１７に０を格納して実行するまで１８回順番に実行される。
【００４１】
図６はテスト回路を説明するための図である。
【００４２】
図６の（ａ）はパリティビットとテスト回路のテスト方式との関係を表した表である。
パリティビット格納領域Ｂ１７に格納されたパリティビットをパリティビットＰＨとし、パリティビット格納領域Ｂ８に格納されたパリティビットをパリティビットＰＬとする。アドレスＦＦＦＦのパリティビットＰＨが０で、パリティビットＰＬが０の時は、ワンホットテストが実行され、書き込まれた期待値が読み出されるバスは非反転バスとしてのビットラインＢＬとなる。アドレスＦＦＦＦのパリティビットＰＨが０で、パリティビットＰＬが１の時は、ワンホットテストが実行され、書き込まれた期待値が読み出されるバスは反転バスとしての反転ビットラインＲ−ＢＬとなる。アドレスＦＦＦＦのパリティビットＰＨが１で、パリティビットＰＬが０の時は、ワンクールテストが実行され、書き込まれた期待値が読み出されるバスは非反転バスとしてのビットラインＢＬとなる。アドレスＦＦＦＦのパリティビットＰＨが１で、パリティビットＰＬが１の時は、ワンクールテストが実行され、書き込まれた期待値が読み出されるバスは反転バスとしての反転ビットラインＲ−ＢＬとなる。
【００４３】
図６の（ｂ）はテスト回路の構成を表した図である。
【００４４】
テスト回路ＴＥＳＴは、比較判定回路ＣＭＰ−Ｄと、テストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧと、テストアドレス設定レジスタＴＡＳ−ＲＥＧと、テストデータ生成回路ＴＤＧと、ビット＆アドレスカウンタＢ＆ＡＣと、テストビット設定レジスタＴＢＳ−ＲＥＧとを有する。
【００４５】
比較判定回路ＣＭＰ−Ｄは、ランダムアクセスメモリＲＡＭから読み出された期待値と、マスクレジスタＭａｓｋＲｅｇに書き込まれた期待値とを比較して同一か否かを判定する回路であり、同一であればエラーがなく、同一でなければエラーであると判定する。
【００４６】
テストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧは、２つのランダムアクセスメモリＲＡＭのアドレスを設定可能であり、この２つのアドレスの間のアドレスのデータ格納領域をテストする。たとえば、アドレス１０００とアドレスＡＦＦＦと設定した場合は、アドレス１０００からアドレスＡＦＦＦまでのデータ格納領域がテストされる。
【００４７】
テストアドレス設定レジスタＴＡＳ−ＲＥＧは、現状テストを行っているランダムアクセスメモリＲＡＭのアドレスを格納する。
【００４８】
テストデータ生成回路ＴＤＧは、期待値を生成する回路である。
【００４９】
ビット＆アドレスカウンタＢ＆ＡＣは、テストを行うアドレスをインクリメントまたはデクリメントするものであり、期待値をシフト動作させて次のテストを行うための期待値を生成するものである。
【００５０】
テストビット設定レジスタＴＢＳ−ＲＥＧは、ワンホットテストにて１が格納されるデータ格納領域を設定するものであり、ワンクールテストにて０が格納されるデータ格納領域を設定するものである。
【００５１】
図７はランダムアクセスメモリのテスト動作を表すフローチャートである。
【００５２】
まず、モードコントローラＭｏｄｅ−Ｃにテストモードが設定される。その後ステップＳ１にて、期待値をマスクレジスタＭａｓｋＲｅｇに設定し、さらにテストするランダムアクセスメモリＲＡＭのアドレス範囲を設定する。マスクレジスタＭａｓｋＲｅｇにテストデータ生成回路ＴＤＧにて生成された期待値を書き込み、テストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧに２つのアドレスを書き込む。マスクレジスタはマスクデータ格納領域ＭＢ０〜ＭＢ１７を持っている。
マスクレジスタＭａｓｋＲｅｇに設定する期待値は、ワンホットテストを実行するのであれば、マスクデータ格納領域ＭＢ０は１、それ以外のマスクデータ格納領域ＭＢ１〜ＭＢ１７は０となる。ワンクールテストを実行するのであれば、マスクデータ格納領域ＭＢ０は０、それ以外のマスクデータ格納領域ＭＢ１〜ＭＢ１７は１となる。
【００５３】
次にステップＳ２にて、テストモードを選択する。アドレスＦＦＦＦのパリティビット格納領域Ｂ８、Ｂ１７にパリティビットＰＬ、ＰＨを格納することで図６の（ａ）に従ったテスト方式を選択する。
【００５４】
次にステップＳ３にて、ランダムアクセスメモリＲＡＭのテスト対象となる全てのアドレスのデータ格納領域に期待値をマスクレジスタＭａｓｋＲｅｇから転送する。テストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧに格納されている２つのアドレスの間のアドレスそれぞれのデータ格納領域に、マスクレジスタＭａｓｋＲｅｇに格納されている期待値を書き込む。
【００５５】
次にステップＳ４にて、期待値とランダムアクセスメモリＲＡＭの対象のアドレスのデータ格納領域から読み出された期待値とを比較することでテストを実行する。初めは対象アドレスの中の先頭アドレスにてテストを行い、のちに説明するアドレスシフトされた場合は順次シフトされたアドレスにてテストを行う。ステップＳ４にてテストされるアドレスは、テストアドレス設定レジスタＴＡＳ−ＲＥＧに格納されている。アドレスＦＦＦＦのパリティビットＰＬが０の場合は、非反転バスに対するテストであるので、マスクデータ格納領域ＭＢ０に格納されたビットと対象アドレスの通常データ格納領域Ｂ０に格納されたビットがビットラインＢＬを介して読み出されたものとが比較判定回路ＣＭＰ−Ｄにて比較される。次にマスクデータ格納領域ＭＢ１に格納されたビットと対象アドレスの通常データ格納領域Ｂ１に格納されたビットがビットラインＢＬを介して読み出されたものとが比較判定回路ＣＭＰ−Ｄにて比較される。以下順次実行され、マスクデータ格納領域ＭＢ１７に格納されたビットと対象アドレスのパリティビット格納領域Ｂ１７に格納されたビットがビットラインＢＬを介して読み出されたものとが比較判定回路ＣＭＰ−Ｄにて比較される。アドレスＦＦＦＦのパリティビットＰＬが１の場合は、反転バスに対するテストであるので、マスクデータ格納領域ＭＢ０に格納されたビットを反転したものと対象アドレスの通常データ格納領域Ｂ０に格納されたビットが反転ビットラインＲ−ＢＬを介して読み出されたものとが比較判定回路ＣＭＰ−Ｄにて比較される。次にマスクデータ格納領域ＭＢ１に格納されたビットを反転したものと対象アドレスの通常データ格納領域Ｂ１に格納されたビットが反転ビットラインＲ−ＢＬを介して読み出されたものとが比較判定回路ＣＭＰ−Ｄにて比較される。以下順次実行され、マスクデータ格納領域ＭＢ１７に格納されたビットを反転したものと対象アドレスのパリティビット格納領域Ｂ１７に格納されたビットが反転ビットラインＲ−ＢＬを介して読み出されたものとが比較判定回路ＣＭＰ−Ｄにて比較される。これら比較にて不一致が検出された場合エラーとなり、中央演算装置ＣＰＵや半導体集積回路装置ＩＣの外部にエラー信号が出力される。
【００５６】
次にステップＳ５にて、全対象アドレスがテスト実行されたか否かが判定される。全対象アドレスがテスト実行された場合、ステップＳ７に進み、そうではない場合はステップＳ６に進む。ステップＳ４にてテストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧに設定された２つのアドレスのうちの大きなアドレスと、テストアドレス設定レジスタＴＡＳ−ＲＥＧに格納されているアドレスとが一致した場合はステップＳ７に進み、そうでない場合はステップＳ６に進む。
【００５７】
ステップＳ６にて、アドレスシフトを行って、次にテストを行うアドレスを指定する。テストアドレス設定レジスタＴＡＳ−ＲＥＧに格納されているアドレスを１つインクリメントして新たなアドレスをテストアドレス設定レジスタＴＡＳ−ＲＥＧに格納する。変形例としては以下の形でもよい。ステップＳ４のテストにおいて、対象アドレスの最大のアドレスのデータ格納領域からテストを行う。ステップＳ５にてテストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧに設定された２つのアドレスのうちの小さなアドレスと、テストアドレス設定レジスタＴＡＳ−ＲＥＧに格納されているアドレスとが一致した場合はステップＳ７に進み、そうでない場合はステップＳ６に進む。ステップＳ６にてテストアドレス設定レジスタＴＡＳ−ＲＥＧに格納されているアドレスを１つデクリメントして新たなアドレスをテストアドレス設定レジスタＴＡＳ−ＲＥＧに格納する。
【００５８】
ステップＳ６の次にステップＳ４に進む。ステップＳ４〜ステップＳ６を繰り返すことで、全対象アドレスのテストが実行できる。
【００５９】
ステップＳ７にて、全てのデータ格納領域に対するテストを実行したか否かを判断する。１８ビットあるデータ格納領域にワンホットテストであればそれぞれに１を格納してテストしたのであれば終了し、そうでなければステップＳ８に進む。１８ビットあるデータ格納領域にワンクールテストであればそれぞれに０を格納してテストしたのであれば終了し、そうでなければステップＳ８に進む。ワンホットテストであれば、パリティビット格納領域Ｂ１７に１が格納されていてテストされていたのであれば終了し、そうでなければステップＳ８に進む。ワンクールテストであれば、パリティビット格納領域Ｂ１７に０が格納されていてテストされていたのであれば終了し、そうでなければステップＳ８に進む。
【００６０】
ステップＳ８にてマスクレジスタＭａｓｋＲｅｇに格納されているデータをシフト処理する。マスクデータ格納領域ＭＢ０に格納されているビットをマスクデータ格納領域ＭＢ１に格納し、マスクデータ格納領域ＭＢ１に格納されているビットをマスクデータ格納領域ＭＢ２に格納する。このように順次シフトさせるように格納し、マスクデータ格納領域ＭＢ１７に格納されているビットをマスクデータ格納領域ＭＢ０に格納する。ステップＳ８の後ステップＳ３に進む。
【００６１】
ステップＳ３からステップＳ８を繰り返すことで、全対象のアドレスそれぞれのデータ格納領域の全てに対して、ワンホットテストやワンクールテストを実行することができる。
【００６２】
本実施の形態によると、ランダムアクセスメモリＲＡＭのデータ格納領域が複数の通常ビット格納領域Ｂ０〜Ｂ７、Ｂ９〜Ｂ１６と複数のパリティビット格納領域Ｂ８、Ｂ１７を持つ。特定アドレス（実施の形態１ではアドレスＦＦＦＦ、当然に他の場所が特定アドレスとなっても問題はない。）のパリティビット格納領域Ｂ８、Ｂ１７のパリティビットに基づいて、ワンホットテストまたはワンクールテストを行うようになっている。
【００６３】
このように特定アドレスのパリティビットに基づいて、ワンホットテストやワンクールテストを行うことが可能となることで、簡単な構成にて特定ビットのデータの組み合わせ時に発生する不良の検出が可能となる。隣り合うビット格納領域（例えば通常ビット格納領域Ｂ３と通常ビット格納領域Ｂ４）は物理的にも隣り合うメモリセルＭＣにビットデータが格納されている。よってビット線カップリングの影響は隣り合うメモリセルＭＣのビットラインＢＬや反転ビットラインＢＬの間にて発生するものである。このビット線カップリングの不良は隣り合うメモリセルＭＣに格納されるビットデータによっては検出しにくいものである。この検出しにくい不良をワンホットテストやワンクールテストを行うことで簡単に検出できる。
【００６４】
ワンホットテストやワンクールテストを行うテスト回路をさらに有する。このテスト回路はテストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧを持つ。このテスト回路があることで、プログラム動作に基づくテストよりも迅速にワンホットテストやワンクールテストが可能となる。テストアドレス領域設定レジスタＴＡＲＳ−ＲＥＧにより、ランダムアクセスメモリＲＡＭのテスト範囲をアドレスに基づいて簡単に指定できる。
【００６５】
マスクレジスタＭａｓｋＲｅｇがワンホットテストやワンクールテスト実行時にはテストデータ格納領域として用いられる。テスト回路ＴＥＳＴはマスクレジスタＭａｓｋＲｅｇのテストデータとランダムアクセスメモリＲＡＭからの読み出しデータとを比較する比較判定回路ＣＭＰ−Ｄを持つ。
【００６６】
マスクレジスタＭａｓｋＲｅｇがテストデータ格納領域として用いられることで、テストデータ格納領域の面積を削減できる。比較判定回路ＣＭＰ−Ｄにより素早いテストが可能となる。
【００６７】
特定アドレスのパリティビットＰＬ、ＰＨに基づいて、ビットラインＢＬからの読み出しデータのテストか、反転ビットラインＲ−ＢＬからの読み出しデータのテストか、ワンクールテストか、ワンホットテストかを選択できる。このことで、簡単にテスト方式を定めることができる。
【００６８】
テスト回路ＴＥＳＴは、テストビット設定レジスタＴＢＳ−ＲＥＧと、テストアドレス設定レジスタＴＡＳ−ＲＥＧとを持つ。このことで、ステップＳ６やステップＳ８を行うことで簡単に次のテストすべきアドレスを指定することができ、次にテストデータを簡単に作成できる。
【００６９】
（実施の形態２）
実施の形態１ではテスト回路を用いたが、この機能の一部またはすべてを中央演算装置ＣＰＵおよび不揮発性メモリＦＬＡＳＨに格納されているプログラムにて代替することができる。この場合はテスト回路が不要となるが、プログラム動作時間が大きくなるために、テスト時間は長くなる。
【００７０】
このテストフローは図７のものと基本的には同じとなるが、テスト回路ＴＥＳＴの一部またはすべてがないので、その機能は中央演算装置ＣＰＵおよびプログラムにて代替される。
【００７１】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【００７２】
ＣＰＵ  中央演算装置
ＲＡＭ  ランダムアクセスメモリ
ＴＥＳＴ  テスト回路
ＰＲＴＹ−Ｃ  パリティビット制御回路
Ｍａｓｋ−Ｒｅｇ  マスクレジスタ
ＭＣ  メモリセル
Ｂ０〜Ｂ７、Ｂ９〜Ｂ１６  通常ビット格納領域
Ｂ８、Ｂ１７  パリティビット格納領域
ＣＭＰ−Ｄ  比較判定回路
ＴＡＲＳ−ＲＥＧ  テストアドレス領域設定レジスタ
ＴＡＳ−ＲＥＧ  テストアドレス設定レジスタ
ＴＤＧ  テストデータ生成回路
Ｂ＆ＡＣ  ビット＆アドレスカウンタ
ＴＢＳ−ＲＥＧ  テストビット設定レジスタ
【図１】
2014086109.tif 000003
【図２】
2014086109.tif 000004
【図３】
2014086109.tif 000005
【図４】
2014086109.tif 000006
【図５】
2014086109.tif 000007
【図６】
2014086109.tif 000008
【図７】
2014086109.tif 000009