(57)【要約】【課題】複数のメモリについてのメモリテストを効率的に行う。【解決手段】半導体集積回路１は、複数のメモリモジュールＭ１〜Ｍ４と、前記複数のメモリモジュールＭ１〜Ｍ４におけるテストデータの書き込み又は読み出しを制御するテスト制御回路Ｌ３とを備えている。メモリモジュールＭ１〜Ｍ４のそれぞれは、前記テストデータをそれぞれのメモリ構成に応じたテストデータに加工し、この加工されたテストデータを前記メモリモジュールＭ１〜Ｍ４に書き込むデータ制御回路と、当該書き込まれたテストデータと当該メモリモジュールＭ１〜Ｍ４から読み出された読出データとを比較し、その比較結果を前記テスト制御回路Ｌ３に出力する比較回路と、を備えている。【選択図】図１
2007250122.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリと、
前記複数のメモリにおけるテストデータの書き込み又は読み出しを制御するテスト制御回路とを備え、
前記複数のメモリのそれぞれに、当該メモリに書き込まれたテストデータと当該メモリから読み出された読出データとを比較し、その比較結果を前記テスト制御回路に出力する比較回路を備えたことを特徴とする半導体集積回路。
【請求項２】
前記複数のメモリは、それぞれ同一又は異なるメモリ構成を有することを特徴とする請求項１に記載の半導体集積回路。
【請求項３】
前記複数のメモリのそれぞれに、
前記テストデータをそれぞれのメモリ構成に応じたテストデータに加工し、この加工されたテストデータを前記メモリに書き込むデータ制御回路を備えることを特徴とする請求項１又は２に記載の半導体集積回路。
【請求項４】
前記データ制御回路は、前記テストデータのデータ変換を行い、この変換されたテストデータを前記メモリに書き込むことを特徴とする請求項３に記載の半導体集積回路。
【請求項５】
前記テスト制御回路は、外部コントローラによるテスト制御指示に応じて制御を行うことを特徴とする請求項１〜４の何れか一項に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリを備えた半導体集積回路に関する。
【背景技術】
【０００２】
近年、チップの縮小化技術の向上に伴い、１つの半導体集積回路に多数のメモリを搭載することが可能となっている。また、メモリについてもユーザの目的に応じて様々なメモリ構成のものを搭載することが可能である。
【０００３】
一般に、半導体集積回路にはその出荷時に各メモリについてのメモリテストを半導体ベンダーにて行うためのテスト回路（以下、ＢＩＳＴ：Built In Self Testingという）が設けられている。ＢＩＳＴはセレクタを介して各メモリに接続され、通常動作時とテスト時の切り替えが可能なものが多い（例えば、特許文献１参照）。
【特許文献１】特開平８−４３４９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＢＩＳＴは、半導体集積回路を目的のシステムに搭載した後は不要となるため、通常はこのＢＩＳＴと外部を接続する端子は無効とされ、使用不能とされることが多い。また、半導体集積回路にはユーザ固有のロジック回路が搭載されることが多いが、ＢＩＳＴによるメモリテストは、メモリ単体の動作を検証するために利用されるものであり、ユーザ固有のロジックを機能させた状態でメモリの動作を確認するわけではない。よって、半導体集積回路をシステムに実装した後に不具合が生じることも考えられるが、このような場合であってもＢＩＳＴをメモリテストに利用することができない。利用することができたとしても、ＢＩＳＴはベンダー側で設計されるため、ＢＩＳＴの制御を行うことは困難である。
【０００５】
また、多様なメモリ構成を持つメモリ全てについてテストするには、個々のメモリに応じたテストデータを作成しなければならない。また、ＢＩＳＴではテストデータをメモリに書き込み、その読み出したデータをメモリから受け取って書込データとの比較を行うため、個々のメモリについて順にテストしなければならず、テスト効率が悪い。
【０００６】
また、連続する数ライン分のラインメモリ等の場合には、連続する数ライン分のテストデータを書き込まなければその実質的なメモリ機能を判断することができない。そのため、このようなメモリ構成の場合にはテストデータの容量が大きくなってしまう。
例えば、容量が大きい画像データを扱う複写機等では、Ａ４サイズの画像データを６００dpiの解像度で扱う場合、１ライン分のメモリとして約７０００画素分の容量が必要となる。画像処理のためにある程度の画像領域を確保する必要がある場合にはさらに複数ライン分必要となり、そのメモリ構成は約７０００画素×ｎラインとなる。仮に４ライン分のラインメモリの機能動作を確認する場合、テストデータの書き込みと読み出しを考慮すると、約５６０００（７０００×４×２）画素分のテストデータが必要となる。さらに、高解像度とすると、テストデータの容量は増幅する。
【０００７】
テストデータのための記憶容量を確保するには限りがあるため、テスト対象のメモリ数が膨大になると全てのテストデータを記憶することができない。また、上述のようにメモリ構成が大きい場合にはテストデータの容量もかなり大きくなってしまう。その結果、一度に全てのメモリについてテストすることができず、分割してテストしなければならない場合がある。分割してテストする場合、テスト時間を要するとともにテストに係るコストが増大する。
【０００８】
本発明の課題は、複数のメモリについてのメモリテストを効率的に行うことである。
【課題を解決するための手段】
【０００９】
請求項１に記載の発明は、半導体集積回路において、
複数のメモリと、
前記複数のメモリにおけるテストデータの書き込み又は読み出しを制御するテスト制御回路とを備え、
前記複数のメモリのそれぞれに、当該メモリに書き込まれたテストデータと当該メモリから読み出された読出データとを比較し、その比較結果を前記テスト制御回路に出力する比較回路を備えたことを特徴とする。
【００１０】
請求項２に記載の発明は、請求項１に記載の半導体集積回路において、
前記複数のメモリは、それぞれ同一又は異なるメモリ構成を有することを特徴とする。
【００１１】
請求項３に記載の発明は、請求項１又は２に記載の半導体集積回路において、
前記複数のメモリのそれぞれに、
前記テストデータをそれぞれのメモリ構成に応じたテストデータに加工し、この加工されたテストデータを前記メモリに書き込むデータ制御回路を備えることを特徴とする。
【００１２】
請求項４に記載の発明は、請求項３に記載の半導体集積回路において、
前記データ制御回路は、前記テストデータのデータ変換を行い、この変換されたテストデータを前記メモリに書き込むことを特徴とする。
【００１３】
請求項５に記載の発明は、請求項１〜４の何れか一項に記載の半導体集積回路において、
前記テスト制御回路は、外部コントローラによるテスト制御指示に応じて制御を行うことを特徴とする。
【発明の効果】
【００１４】
請求項１に記載の発明によれば、複数のメモリにおけるテストデータを用いたメモリテストを同時に行うことができ、それぞれのテスト結果を一括して得ることができる。よって、各メモリについて個別にメモリテストを行うことなく、テストの効率化を図ることができる。
【００１５】
請求項２に記載の発明によれば、複数のメモリはそれぞれ同一のメモリ構成であってもよいし、一部同一又は全て異なる構成でもよく、何れのメモリ構成であっても同時にテストを行うことができる。
【００１６】
請求項３に記載の発明によれば、それぞれのメモリ構成に応じて加工されたテストデータが各メモリのテストに用いられるので、テストデータは各メモリに共通のものを準備しておけばよく、テストデータに係るコストを抑えることができる。
【００１７】
請求項４に記載の発明によれば、データ変換によりメモリテストにおいて異なるパターンのテストデータを利用することができる。よって、異なる検証方法でメモリテストが可能となる。
【００１８】
請求項５に記載の発明によれば、外部コントローラからの指示によってテスト制御回路にテスト制御を行わせることができる。これにより、外部コントローラを介してテスト指示を遠隔操作することが可能となる。
【発明を実施するための最良の形態】
【００１９】
まず、構成を説明する。
図１に、本実施形態における半導体集積回路１の構成を示す。
図１に示すように、半導体集積回路１は、ロジック回路Ｌ１、Ｌ２、複数のメモリモジュールＭ１〜Ｍ４を備えて構成されており、これらメモリモジュールＭ１〜Ｍ４のメモリテスト制御を行うための回路としてテスト制御回路Ｌ３が設けられている。なお、半導体集積回路１の出荷時におけるメモリテスト用としてベンダー側で利用されるＢＩＳＴＬ４も搭載されているが、このＢＩＳＴＬ４の信号は、その入出力が制限されＢＩＳＴＬ４の機能は停止状態とされている。
【００２０】
ロジック回路Ｌ１、Ｌ２は、ユーザの用途に応じて構築された論理回路であり、入力信号の論理処理を行う。
ロジック回路Ｌ１は、端子Ｔ２を介して入力された信号の論理処理を行う。また、ロジック回路Ｌ１から各メモリモジュールＭ１〜Ｍ４へのデータの書き込みが可能であり、制御信号及び書込データを各メモリモジュールＭ１〜Ｍ４に出力する。ロジック回路Ｌ２は、各メモリモジュールＭ１〜Ｍ４から読み出された読出データを論理処理し、出力端子Ｔ４を介して外部へ出力する。
【００２１】
テスト制御回路Ｌ３は、複数のメモリモジュールＭ１〜Ｍ４に対するメモリテストを一括して行うためのテスト制御を行う回路である。テスト制御回路Ｌ３は、端子Ｔ１を介してＣＰＵ（Central Processing Unit）等の外部コントローラに接続され、この外部コントローラからの指示に従ってテスト制御を行う。テスト制御回路Ｌ３は内部レジスタにテストデータを保持しており、テスト時には各メモリモジュールＭ１〜Ｍ４に各種テスト制御信号を出力するとともに、そのテストデータを出力する。また、各メモリモジュールＭ１〜Ｍ４からテスト結果を示すＣＦ信号を受けると、これを外部コントローラへ出力する。
【００２２】
テスト制御回路Ｌ３は、テスト制御にあたってテストモードの設定を行う。メモリテストは、テストに係る設定を全て初期化した後、メモリの検証を行うためにテストデータを書き込み、その後書き込んだテストデータと、メモリ１６から読み出したテストデータとの比較を行うものである。テストモードは、このメモリテスト動作を３つの動作モードに分け、テストモードｎ（ｎ＝０、１、２）で表される。テストモード０はテストデータの書込モードであり、テストモード１はテストデータの比較モード、テストモード２はテストの終了モードである。テスト制御回路Ｌ３は、タイミング制御回路１１から入力される制御信号又は比較回路１５から入力されるＣＦ信号に基づいてテストモードの切替設定を行う。
【００２３】
ＢＩＳＴＬ４は、ベンダーによって半導体集積回路１の出荷時に利用されるテスト回路である。ＢＩＳＴＬ４は、各メモリモジュールＭ１〜Ｍ４のそれぞれに接続されており、制御信号及びテストデータの出力及びメモリモジュールＭ１〜Ｍ４から読み出されたテストデータの入力が可能な構成とされている。ＢＩＳＴＬ４では、各メモリモジュールＭ１〜Ｍ４について順にメモリテストを行い、書き込んだテストデータとその読出データとの比較することによってメモリテストを行うものである。
【００２４】
メモリモジュールＭ１〜Ｍ４は、内部にそれぞれ異なるメモリ構成のメモリを有している。ここで、メモリ構成とはメモリを構成するビット幅及びワード数をいう。図１に示す例では、各メモリのビット幅は、メモリモジュールＭ１では８ビット幅、メモリモジュールＭ２では１６ビット幅、メモリモジュールＭ３では２５ビット幅、メモリモジュールＭ４では３２ビット幅である。なお、本実施形態では全てのメモリモジュールＭ１〜Ｍ４においてメモリ構成が異なる例を説明するが、各メモリモジュールＭ１〜Ｍ４のメモリ構成が一部同一又は全部同一であってもよい。
【００２５】
各メモリモジュールＭ１〜Ｍ４はその基本的構成は同一であるので、メモリモジュールＭ１を代表としてその構成を説明する。
図２に、メモリモジュールＭ１の構成を示す。
メモリモジュールＭ１は、図２に示すように、タイミング制御回路１１、アドレス／イネーブル制御回路１２、データ制御回路１３、データ調整回路１４、比較回路１５、メモリ１６、セレクタ１７１〜１７４、データ調整回路１８を備えて構成されている。
【００２６】
タイミング制御回路１１は、メモリ１６に対するデータの書込又は読出のタイミングを制御するものである。なお、タイミング制御回路１１はメモリテストと通常動作の何れにおいても利用可能であり、メモリテスト時にはテスト制御回路Ｌ３から入力されるテスト制御信号に従ってタイミング制御を行い、通常動作時にはロジック回路Ｌ１から入力される制御信号に従ってタイミング制御を行う。
【００２７】
タイミング制御は、アドレス／イネーブル制御回路１２、データ制御回路１３に対してデータの書込開始を指示するＷスタート信号を出力し、アドレス／イネーブル制御回路１２及び比較回路１５にデータの読出開始を指示するＲスタート信号を出力することにより行う。
【００２８】
アドレス／イネーブル制御回路１２は、タイミング制御回路１１から入力されるＷスタート信号に従って、データの書込対象となるアドレスを示すＷアドレス信号及び書込の実行を指示するＷＥＮＢ信号を生成し、メモリ１６に出力する。また、Ｒスタート信号に従って、データの読出対象のアドレスを示すＲアドレス信号及び読出の実行を指示するＲＥＮＢ信号を生成し、メモリ１６に出力するとともに、データ制御回路１３に対してデータの読出タイミングを示すＲタイミング信号を出力する。
【００２９】
データ制御回路１３は、タイミング制御回路１１から入力されるＷスタート信号に従って、テスト制御回路Ｌ３から入力されるテストデータをメモリ１６に出力し、書込を行うものである。なお、通常動作時にはロジック回路Ｌ１から入力されるデータの書込を行う。また、テストデータの読出時にはアドレス／イネーブル制御回路１２から入力されるＲタイミング信号に従って、メモリ１６に書き込みをしたテストデータと同一のデータをデータ調整回路１４に出力する。
【００３０】
ここで、テストデータについて説明する。
テストデータは、テスト制御回路Ｌ３において保持されているものがデータ制御回路１３に入力されるものである。テスト制御回路Ｌ３では各メモリモジュールＭ１〜Ｍ４のメモリが有するビット幅のうち、最大のビット幅に対応するテストデータが内部レジスタに保持されている。図１の例では、メモリモジュールＭ４のメモリが３２ビットと最大ビット幅を有するので、テスト制御回路Ｌ３では図３に示すように３２ビット幅のテストデータが保持される。
【００３１】
そして、テスト制御回路Ｌ３から各メモリモジュールＭ１〜Ｍ４に最大ビット幅分のテストデータが出力されると、テストデータを受け取った各メモリモジュールＭ１〜Ｍ４のデータ制御回路１３において個々のメモリのビット幅に応じたテストデータに加工される。メモリモジュールＭ１の場合、メモリ１６のビット幅は８ビットであるため、図３に示すように３２ビット幅のテストデータの下位８ビット分に対応するテストデータに加工され、そのメモリ１６のメモリ構成に応じたテストデータとして保持される。
【００３２】
また、データ制御回路１３ではメモリテストの検証方法を異なるものとするため、テストデータのデータ変換を行うことが可能である。テストデータの変換モードとしては、ベース、反転、右シフト、左シフトの４つのモードが設定可能である。ベースモードの場合、図４（ａ）に示すように８ビット幅のテストデータはデータ変換されず、各ワードにおいて一様に書き込まれる。これに対し、反転モードの場合には、図４（ｂ）に示すようにテストデータの値（０、１）がワード毎に交互に反転するようデータ制御回路１３においてデータ変換される。右シフトモードでは、図４（ｃ）に示すように、１ワード毎にテストデータが下位側に１ビットシフトされる。逆に、左シフトモードでは図４（ｄ）に示すように、１ワード毎にテストデータが上位側に１ビットシフトされる。
【００３３】
データ調整回路１４は、比較回路１５における書込テストデータ（Ｗテストデータ）と読出テストデータ（Ｒテストデータ）の比較タイミングを合わせるため、比較回路１５へのＲテストデータの入力タイミングを調整するものである。
【００３４】
比較回路１５は、タイミング制御回路１１から入力されるＲスタート信号に従って、データ調整回路１４から入力されるＷテストデータと、メモリ１６から入力されるＲテストデータとをワード単位で比較し、その一致、不一致を判断する回路である。比較回路１５はその比較結果を示すフラグ信号ＣＦを生成し、テスト制御回路Ｌ３へ出力する。ＣＦ信号は、Ｒスタート信号が入力されていない状態においてはテスト未実施を示す「ｂ００」、Ｒスタート信号が入力された後においてはテスト実施中を示す「ｂ０１」が設定される。また、データ比較の結果、あるワードにおいて１つでも不一致のビットが含まれる場合にはメモリ１６が異常であることを示す「ｂ１０」、全てのワードにおいて一致していた場合にはメモリ１６が正常であることを示す「ｂ１１」が設定される。
【００３５】
メモリ１６は、複数の記憶素子からなり、ロジック回路Ｌ１からの入力データやデータ制御回路１３から入力されたテストデータを記憶する。テストデータは、アドレス／イネーブル制御回路１２から入力されるＷＥＮＢ信号に応じて、Ｗアドレス信号により示されるアドレスに記憶される。また、メモリ１６に記憶されたデータの読出時には、アドレス／イネーブル制御回路１２からのＲＥＮＢ信号の入力に応じてＲアドレス信号により示されるアドレスに記憶されているデータが比較回路１５に出力される。なお、通常動作時にはロジック回路Ｌ２にデータを出力する。
【００３６】
セレクタ１７１〜１７４は、ＢＩＳＴＬ４とテスト制御回路Ｌ３の入力切替を行うものである。セレクタ１７１はデータ、セレクタ１７２はアドレス信号、セレクタ１７３はＥＮＢ信号の入力切替を行う。なお、セレクタ１７４はチップセレクトを行うものであり、アドレス／イネーブル制御回路１２からの入力信号に応じて他のセレクタ１７１〜１７３においてＢＩＳＴＬ４以外の入力信号が選択されることとなる。すなわち、セレクタ１７１〜１７４により常にデータ制御回路１３からの入力が選択され、ＢＩＳＴＬ４の機能は使用不能とされるものである。
【００３７】
データ調整回路１８は、比較回路１５におけるＲテストデータとＷテストデータの比較タイミングに合わせるため、比較回路１５へのメモリ１６から読み出されたＲテストデータの入力タイミングを調整するものである。
【００３８】
次に、半導体集積回路１におけるメモリテスト動作について説明する。
説明の前提として、半導体集積回路１が搭載されているシステムの電源ＯＮ時に、システムの全体制御を行うＣＰＵにおいて初期設定が行われているものとする。初期設定では、テストデータ、テストモード、データ変換モード、ＣＦ信号等のメモリテストに係るパラメータの初期値の設定が行われる。メモリテストを実行する際にはＣＰＵにおいてテスト開始を指示するテスト制御信号が生成されるとともに、メモリテストのテスト条件が指定されている場合には当該テスト条件に係る制御信号が生成され、テスト制御回路Ｌ３に出力される。
【００３９】
以下、テスト制御信号により開始されるメモリテストについて図５〜図７を参照して説明する。
図５に示すように、テスト制御回路Ｌ３ではメモリテストに係る各種設定が行われる（ステップＳ１）。設定としては、例えばテストモードをｎ＝０に設定する他、ＣＰＵからのテスト条件の制御信号に従ってデータ変換モードを設定することが挙げられる。
【００４０】
次いで、テスト制御回路Ｌ３ではテスト制御信号によってメモリテストの開始が指示されたか否かが判別され（ステップＳ２）、テスト開始の制御信号ではなく、他の制御信号が入力されている場合は（ステップＳ２；Ｎ）、通常動作の処理に移行する。一方、テスト開始の制御信号が入力されている場合（ステップＳ２；Ｙ）、現在の各メモリモジュールＭ１〜Ｍ４におけるテスト状況が判断される（ステップＳ３）。テスト状況の判断は各メモリモジュールＭ１〜Ｍ４から入力されるＣＦ信号を参照することにより行われる。ＣＦ＝ｂ０１の場合はテスト実行中であるため（ステップＳ３；テスト中）、所定時間待機した後（ステップＳ４）、ステップＳ３の処理に移行して再度テスト状況の判断がなされる。
【００４１】
一方、ＣＦ＝ｂ００でテスト未実施の場合、或いはＣＦ＝ｂ１０、ｂ１１でテスト終了の場合（ステップＳ３；テスト未／終）、現在設定されているテストモードｎが判断される（ステップＳ５）。テストモード０の場合は（ステップＳ５；ｎ＝０）、ステップＳ６の処理へ移行し、テストモード１である場合は（ステップＳ５；ｎ＝１）、ステップＳ７の処理に移行する。また、テストモード２の場合（ステップＳ５；ｎ＝２）はメモリテストを終了するので通常動作の処理に移行する。
【００４２】
まず、テストモード０の書込モードが設定されている場合について説明する。
この場合、テスト制御回路Ｌ３の制御により各メモリモジュールＭ１〜Ｍ４においてＲアドレス、Ｗアドレス、ＣＦ等の信号値の初期化が行われた後（ステップＳ６）、図６の処理Ａに移行する。処理Ａでは、テストモードが判断され（ステップＥ１）、テストモード０の場合は（ステップＥ１；ｎ＝０、１）、テスト制御回路Ｌ３から各メモリモジュールＭ１〜Ｍ４に対してテスト制御信号が出力されるとともにテストデータが出力される。このときのテストデータはメモリモジュールＭ１〜Ｍ４のうちの最大ビット幅３２に対応したものである。
【００４３】
以下、一例としてメモリモジュールＭ１での処理の内容を説明するが、他のメモリモジュールＭ２〜Ｍ４においても同様の処理がなされる。
テスト制御信号及びテストデータが入力されたメモリモジュールＭ１では、テスト制御信号に応じてタイミング制御回路１１においてＷスタート信号が生成され、アドレス／イネーブル制御回路１２、データ制御回路１３に出力される（ステップＥ２）。
【００４４】
データ制御回路１３ではメモリ１６のメモリ構成に応じてテストデータの加工が行われる。メモリモジュールＭ１は８ビット幅のメモリ構成であるため、３２ビット幅のテストデータの下位８ビットがメモリモジュールＭ１用のテストデータとして抽出される。
【００４５】
次に、アドレス／イネーブル制御回路１２においてＷアドレス信号が生成されるが、Ｗアドレス信号はメモリ１６のワード単位で生成される。例えば、メモリモジュールＭ１のメモリ構成が８ビット幅×２０４７ワード（０〜２０４７の全２０４８ワード）である場合、Ｗアドレス信号は００００〜２０４７の信号値が生成されることとなる。
【００４６】
アドレス／イネーブル制御回路１２では、Ｗアドレス信号の出力回数に応じて書込実行ワード数のカウントが行われており、このカウントワード数がメモリ１６の最終ワードを超えたか否かが判別される（ステップＥ３）。２０４７ワードのメモリ構成では最終ワードの数は２０４７であり、書込の開始時にはステップＳ６においてカウントワード数は００００に初期化されているため、最終ワードの数２０４７＞カウントワード数００００となり、最終ワードの数を超えていないと判断される。
【００４７】
最終ワードを超えていない場合には（ステップＥ３；Ｎ）、アドレス／イネーブル制御回路１２では、Ｗスタート信号に応じてＷアドレス信号及びＷＥＮＢ信号が生成され、メモリ１６に出力される（ステップＥ５）。
【００４８】
一方、データ制御回路１３では、データ変換モードが反転モード、左シフトモード、右シフトモードの何れかに設定されており、テストデータのデータ変換制御が必要であれば（ステップＥ６；Ｙ）、設定されているデータ変換モードに応じてテストデータの変換が行われる（ステップＥ７）。例えば、反転モードの場合には１ワード書き込む毎にテストデータのデータ値の反転処理が行われる。データ変換されたテストデータは１ワード毎にメモリ１６に出力される（ステップＥ８）。メモリ１６では、ＷＥＮＢ信号に応じて、Ｗアドレス信号に対応するワード部分にデータ制御回路１３から入力された１ワード分のテストデータが記憶され、データ書込が行われる（ステップＥ９）。
【００４９】
アドレス／イネーブル制御回路１２ではＷアドレス信号を出力後に書込実行ワード数が＋１カウントアップされる（ステップＥ１０）。例えば、カウント数の初期値００００から１ワード分の書込がなされると、カウント数が０００１にカウントアップされる。そして、ステップＥ３の処理に移行し、カウントワード数が最終ワードの数を超えたか否かが判別される。すなわち、最終ワードのテストデータの書込がなされるまでステップＥ３〜Ｅ１０の処理が繰り返される。最終ワードまで書き込みを終えると、最終ワードの数：カウントワード数は２０４７：２０４８となり、カウントワード数が最終ワードの数を超えるため（ステップＥ３；Ｙ）、ステップＥ３においてステップＥ４の処理に移行することとなる。
【００５０】
ステップＥ４では、アドレス／イネーブル制御回路１２において制御信号ＥＮＤが生成され、タイミング制御回路１１を介してテスト制御回路Ｌ３に出力される。テスト制御回路Ｌ３ではＥＮＤ信号に応じてテストモードｎ＝１に設定される。このように、テストモード０からテストモード１に切り替えられると、図５のステップＳ５の処理に移行し、テストモードが判断されるので、ｎ＝１に対応する処理であるステップＳ７に移行する。
【００５１】
次に、テストモード１の比較モードが設定された場合について説明する。
比較モードでは、まずアドレス／イネーブル制御回路１２においてＷアドレスに係る信号値の初期化が行われる（ステップＳ７）。その後、図６に示す処理Ａに移行し、テストモードが判断される（ステップＥ１）。ここで、テストモード１の場合、ステップＥ２以降の処理Ａと、図７に示す処理Ｂが並行して実行される。処理Ｂはテストモード０においてメモリ１６に書き込まれたテストデータを読み出し、この読み出したテストデータと書き込んだテストデータとを比較してその一致性を判断するものである。この処理Ｂにおいてテストデータを読み出すと同時に処理Ａを実行して新たにテストデータを書き込むことにより、メモリ１６の読出及び書込に伴うエラーを検証する。
【００５２】
図６及び図７を参照して並行に行われる処理Ａ及び処理Ｂについて説明する。
図７に示すように、まず処理Ｂにおいて、１ワード毎にテストデータの読出と新たな書込を行うため、タイミング制御回路１１において書込タイミング（Ｗタイミング）と読出タイミング（Ｒタイミング）の調整が行われる（ステップＰ１）。そして、Ｒスタート信号がタイミング制御回路１１から出力される（ステップＰ２）。
【００５３】
アドレス／イネーブル制御回路１２は、書込時と同様に、ワード単位のＲアドレス信号を出力し、この出力毎に読出実行ワード数のカウントを行っている。読出開始時にはステップＳ６の初期化によりそのカウント数は００００に設定されている。
Ｒスタート信号が入力されると、アドレス／イネーブル制御回路１２ではメモリ１６の最終ワードの数とカウントワード数が比較され、カウントワード数がメモリ１６の最終ワードを超えたか否かが判別される（ステップＰ３）。
【００５４】
２０４７ワードのメモリ構成では最終ワードの数は２０４７であり、読出開始時にはカウントワード数は００００に設定されているため、最終ワードの数２０４７＞カウントワード数００００となり、最終ワードの数を超えていないと判断される。最終ワード数を超えていない場合は（ステップＰ３；Ｎ）、アドレス／イネーブル制御回路１２においてＲアドレス信号及びＲＥＮＢ信号が生成されてメモリ１６に出力される（ステップＰ５）。また、データ制御回路１３に対し、Ｒタイミング信号が生成されて出力される。
【００５５】
一方、タイミング制御回路１１では上記のＲスタート信号を出力した後、Ｗスタート信号が生成され、アドレス／イネーブル制御回路１２に出力される（図６：ステップＥ２）。このＷスタート信号の出力タイミングはステップＰ１におけるタイミング調整により制御される。アドレス／イネーブル制御回路１２では、Ｗスタート信号を受け、書込実行ワードのカウント数が最終ワードの数を超えたか否かが判別される（図６：ステップＥ３）。テストモード１の切替直後にはステップＳ７（図５）の初期化によりカウント数は００００に設定されているため、カウント数は最終ワード数を超えず、ＷＥＮＢ信号及びＷアドレス信号がメモリ１６に出力されることとなる（図６：ステップＥ５）。すなわち、Ｒアドレス信号及びＲＥＮＢ信号が出力された後、すぐに同一ワードについてＷアドレス信号及びＷＥＮＢ信号が出力されることとなる。
【００５６】
データ制御回路１３では、Ｗスタート信号によりアドレス／イネーブル制御回路１２のＷＥＮＢ信号の出力に同期してテストデータの変換、出力が行われる（ステップＥ５〜Ｅ８）。テストデータの変換時には、テストモード０において書込を行ったテストデータと同じ変換を行ったデータ（これをＷテストデータという）と、異なる変換を行ったデータ（これをＫテストデータという）の２種類が生成される。
【００５７】
前者は比較回路１５における比較用として生成されるものであり、後者は新たな書込用として生成されるものである。例えば、テストモード０の際に書き込んだテストデータが「１００１」であった場合、テストモード１においてはこれを右シフトモードでデータ変換し「００１１」とする。ＦＩＦＯ（FirstInFirstOut）のようなメモリでは先に書き込まれているデータを読み出し、そこへ新たにデータを書き込む際に書き込むデータと読み出すデータが入れ替わるエラーが生じることがある。よって、上記のようにデータ値を異ならせたデータを用いることにより、先にメモリ１６に書き込まれているＷテストデータを読み出して新たにＫテストデータを書き込む際に、データが入れ替わらないかどうかを検証することができる。
【００５８】
これら変換データの出力時には、Ｗテストデータがデータ調整回路１４に出力され（図６：ステップＥ８；ｎ＝１）、Ｋテストデータがメモリ１６に出力される（図６：ステップＥ８；ｎ＝０or１）。Ｗテストデータの出力タイミングは、Ｒタイミング信号に基づいて判断される。データ調整回路１４に出力されたＷテストデータはタイミング調整がなされた後（ステップＰ８）、比較回路１５に出力される。
【００５９】
メモリ１６では、先に入力されるＲＥＮＢ信号に応じてＲアドレス信号に対応するワード分のテストデータが読み出され、データ調整回路１８に出力された後（ステップＰ６）、次に入力されるＷＥＮＢ信号に応じてＷアドレス信号に対応するワード分のＫテストデータが記憶され、書き込まれる（図６：ステップＥ９）。読み出されたテストデータ（以下、Ｒテストデータという）は、データ調整回路１８においてタイミングが調整された後、比較回路１５に出力される（ステップＰ６）。
【００６０】
比較回路１５では、同一タイミングで入力されたＷテストデータとＲテストデータの比較が行われ（ステップＰ９）、不一致である場合には（ステップＰ９；不一致）、ＣＦ＝ｂ１０に設定されて（ステップＰ１０）、このＣＦ信号がテスト制御回路Ｌ３に出力される。一方、一致している場合であっても（ステップＰ９；一致）、最後のワードの比較ではない場合には（ステップＰ１１；Ｎ）、すぐにはＣＦ信号の設定は行わずにステップＰ１２に移行し次のワードについての処理Ａ、処理Ｂが続行される。そして、最終的に最後のワード分の比較において一致している（すなわち、全てのワードにおいて一致）と判断された場合には（ステップＰ１１；Ｙ）、ＣＦ＝ｂ１１に設定され（ステップＰ１０）、テスト制御回路Ｌ３に出力される。
【００６１】
このように、１ワード分の読出及び書き込みが終了すると、アドレス／イネーブル制御回路１２では、Ｒアドレス及びＷアドレスの実行ワード数が１だけカウントアップされる（ステップＰ１２、図６：ステップＥ１０）。そして、そのカウント数が最終ワードの数を超えるまで、すなわち全てのワードについて上記の読出及び書込の処理が終了するまで当該処理が繰り返される。そして、全てのワード分の読出及び書き込みが終了すると、Ｒアドレス及びＷアドレスのカウント数が最終ワードの数以上となるので（ステップＰ３；Ｙ）、テストモードは１から２へ切り替えられ（ステップＰ４）、処理Ａ、処理Ｂを終了して図５のステップＳ５に移行する。ステップＳ５では、テストモード２であるためメモリテストを終了し、通常動作の処理に移行する。
【００６２】
以上のように、本実施形態によれば、テスト制御を統括するテスト制御回路Ｌ３を設けるとともに、個々のメモリモジュールＭ１〜Ｍ４に比較回路１５を設け、この比較回路１５によりメモリ１６の書込と読出の一致性を判断し、その結果（ＣＦ信号）をテスト制御回路Ｌ３に出力する。
【００６３】
これにより、各メモリモジュールＭ１〜Ｍ４に対して同時にテスト制御を行うことができ、それぞれのテスト結果を一括して得ることができる。よって、従来のようにメモリモジュールＭ１〜Ｍ４の個々について順次メモリテストを行う必要が無く、テスト時間の短縮化が図ることができ効率的である。
また、ＣＦ信号は個々のメモリモジュールＭ１〜Ｍ４から出力されるので、エラーが生じたメモリモジュール（メモリ１６）を特定することが可能となる。
【００６４】
また、データ制御回路１３を設けているので、各メモリモジュールＭ１〜Ｍ４のメモリ構成が異なる場合でも、データ制御回路１３において各メモリモジュールＭ１〜Ｍ４のメモリ構成に対応するテストデータに加工し、メモリテストに供することができる。これにより、各メモリモジュールＭ１〜Ｍ４について共通のテストデータを適用することができ、簡易な構成によりメモリテストを実現することができる。また、反転やシフト等のデータ変換により同一のテストデータから異なるパターンのテストデータを利用することができ、異なる検証方法でメモリテストを行うことができる。
【００６５】
また、テスト制御回路Ｌ３はＣＰＵ等の外部コントローラから入力されるテスト制御信号に応じてテスト制御を開始し、そのテスト結果を出力する。よって、外部からテスト制御に係る指示を行うことが可能となる。
【００６６】
なお、上述した説明は、本発明を適用した好適な一例であり、これに限定されない。
例えば、上述した説明では、テスト制御回路Ｌ３からは最大ビット幅のテストデータが出力され、データ制御回路１３においてこれを個々のメモリモジュールＭ１〜Ｍ４のビット幅に合わせたテストデータとすることとしたが、予めテスト制御回路Ｌ３において各メモリモジュールＭ１〜Ｍ４に応じたビット幅のテストデータとしてこれを出力することとしてもよい。
【００６７】
また、比較回路１５では、あるワードにおいて不一致であると判断されるとすぐにＣＦ信号を出力してメモリテストを終了することとしていたが、例えばワード毎に一致／不一致の結果を示すＣＦ信号を生成して出力することとしてもよい。この場合、テスト制御回路Ｌ３において何れのワード部分でエラーが生じているのかを特定することが可能となり、より詳細な検証を行うことができる。
【図面の簡単な説明】
【００６８】
【図１】本実施形態における半導体集積回路の構成を示す図である。
【図２】図１のメモリモジュールの構成を示す図である。
【図３】テストデータ例を示す図である。
【図４】テストデータのデータ変換例を示す図であり、（ａ）は反転モードによるデータ変換例、（ｂ）は右シフトモードによるデータ変換例、（ｂ）左シフトモードによるデータ変換例を示す図である。
【図５】半導体集積回路において実行されるメモリテストを説明するフローチャートである。
【図６】半導体集積回路において実行されるメモリテストを説明するフローチャートである。
【図７】半導体集積回路において実行されるメモリテストを説明するフローチャートである。
【符号の説明】
【００６９】
１    半導体集積回路
Ｌ１、Ｌ２    ロジック回路
Ｌ３    テスト制御回路
Ｍ１〜Ｍ４    メモリモジュール
１１    タイミング制御回路
１２    アドレス／イネーブル制御回路
１３    データ制御回路
１４    データ調整回路
１５    比較回路
１６    メモリ
１８    データ調整回路
【図１】
2007250122.tif 000003
【図２】
2007250122.tif 000004
【図３】
2007250122.tif 000005
【図４】
2007250122.tif 000006
【図５】
2007250122.tif 000007
【図６】
2007250122.tif 000008
【図７】
2007250122.tif 000009