(57)【要約】【課題】半導体集積回路にＢＩＳＴ回路を挿入した後の接続検証のためのシミュレーション実行の所要時間を短縮する。【解決手段】半導体集積回路１は、データを記憶する少なくとも１つのメモリ２１と、メモリ２１をテストする少なくとも１つのＢＩＳＴ（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）回路１０と、を備える。ＢＩＳＴ回路１０は、アドレス生成器１３を備える。アドレス生成器１３は、メモリ２１の全アドレスに対応するアドレス信号を生成する第１動作モードと、メモリ２１のアドレス入力の各ビットが、それぞれ、０と１の両状態をとり、かつ、異なるビット同士が一度は別の信号状態を持つような一連のデータとなるようにアドレス信号を生成する第２動作モードの何れかで動作する。【選択図】図１
2012203963.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する少なくとも１つのメモリと、前記メモリをテストする少なくとも１つの組み込み自己テスト回路と、を備える半導体集積回路であって、
前記組み込み自己テスト回路は、前記メモリの全アドレスに対応するアドレス信号を生成する第１動作モードと、前記メモリのアドレス入力の各ビットが、それぞれ、０と１の両状態をとり、かつ、異なるビット同士が一度は別の信号状態を持つような一連のデータとなるように前記アドレス信号を生成する第２動作モードの何れかで動作するアドレス生成器を備えることを特徴とする、半導体集積回路。
【請求項２】
前記アドレス生成器は、前記第２動作モードで、全ビットが０の初期値から、最下位ビットが１の状態から１を最上位ビットまで前記アドレス入力の各ビットを順次シフトする、請求項１に記載の半導体集積回路。
【請求項３】
前記アドレス生成器は、前記第２動作モードで、前記アドレス入力を昇順にシフトする昇順モードと、前記アドレス入力を降順にシフトする降順モードとの何れかで動作し、前記昇順モードでは、全ビットが０の初期値から、最下位ビットが１の状態から１を最上位ビットまで前記アドレス入力の各ビットを順次シフトし、前記降順モードでは、最上位ビットのみが１の状態から最下位ビットまで前記アドレス入力の各ビットを順次シフトし、前記昇順モード及び前記降順モードの何れの場合にも、最終的に前記アドレス入力を全ビットが０の状態に戻す、請求項１又は２に記載の半導体集積回路。
【請求項４】
前記組み込み自己テスト回路は、
保持した値を前記アドレス信号として出力する、アドレスレジスタと、
前記アドレス信号に１を加算し、第１上位アドレス信号を生成する、加算器と、
前記アドレス信号を上位アドレス方向にシフトし、第２上位アドレス信号を生成する、上位シフタと、
前記第１動作モードでは前記第１上位アドレス信号を選択し、前記第２動作モードでは前記第２上位アドレス信号を選択し、前記第１上位アドレス信号又は前記第２上位アドレス信号に対応する選択アドレス信号を出力する、アドレス選択器と、
前記アドレス選択器により選択された選択アドレス信号及び前記アドレスレジスタから出力されたアドレス信号の一方を選択し、選択した信号を次のアドレス入力を示すレジスタ値として出力する、レジスタ値選択器と、
前記モード選択信号に基づいて、前記選択アドレス信号が、前記メモリのテスト範囲の最終アドレスであるか否かを判定し、前記選択アドレス信号が前記最終アドレスであるか否かを示す通知信号を生成する、最終アドレス判定器と、をさらに備え、
前記アドレスレジスタは、前記通知信号が生成された場合、保持した値を初期化する、請求項１乃至３の何れかに記載の半導体集積回路。
【請求項５】
前記組み込み自己テスト回路は、複数のメモリへ書き込むべきメモリデータと、前記複数のメモリのメモリ出力の期待値データとを生成するとともに、前記第２動作モードにおいて、前記アドレス信号のデータ幅範囲に含まれないアドレスでの前記メモリデータの書き込みと、メモリ出力と前記期待値データとの比較とを無効化するデータ生成器をさらに備える、請求項１乃至４の何れか１項に記載の半導体集積回路。
【請求項６】
請求項１乃至５の何れか１項に記載の半導体集積回路の設計装置であって、
前記メモリがＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）の場合、テスト実行時に、前記メモリ出力を順次圧縮し、最終的な圧縮結果で前記メモリの良否を判定し、かつ、前記ＲＯＭの構成を示す構成情報から、前記第２動作モードで生成される前記アドレス信号に含まれないアドレスに対して、異なるアドレスでデータが重複しないように検証用ＲＯＭデータを生成し、かつ、前記アドレス信号を伝送するピンに接続上の不具合があった場合の圧縮結果が、前記接続上の不具合がない場合の圧縮結果と異なるように、圧縮期待値を生成することを特徴とする、設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、組込自己テスト回路及び設計装置に関する。
【背景技術】
【０００２】
半導体集積回路に組み込まれたメモリデバイスに対して、組み込み自己テスト回路（Ｂｕｉｌｔ−Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ回路、以下、「ＢＩＳＴ回路」という）を組込み、製造テストにおいて故障を検出する方法が一般的に行われている。
【０００３】
一方で、テストにはＢＩＳＴ回路がメモリのフルアドレスを生成して、書き込みや読み出しの動作を行う必要がある。このため、ワード数の大きいメモリが搭載されていたり、搭載メモリ数が非常に多かったりすると、システム論理へのＢＩＳＴ回路挿入後の、接続検証のためのシミュレーション実行で、非常に長い時間がかかる問題がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２５２３９号公報
【特許文献２】特開２００３−２９４８１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、半導体集積回路にＢＩＳＴ回路を挿入した後の接続検証のためのシミュレーション実行の所要時間を短縮することである。
【課題を解決するための手段】
【０００６】
本実施形態の半導体集積回路は、データを記憶する少なくとも１つのメモリと、メモリをテストする少なくとも１つの組み込み自己テスト回路と、を備える。組み込み自己テスト回路は、アドレス生成器を備える。アドレス生成器は、メモリの全アドレスに対応するアドレス信号を生成する第１動作モードと、メモリのアドレス入力の各ビットが、それぞれ、０と１の両状態をとり、かつ、異なるビット同士が一度は別の信号状態を持つような一連のデータとなるようにアドレス信号を生成する第２動作モードの何れかで動作する。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態の半導体集積回路１の構成図。
【図２】第１実施形態のアドレス生成器１３の構成図。
【図３】第１実施形態のＢＩＳＴの説明図。
【図４】第１実施形態のＢＩＳＴの説明図。
【図５】第１実施形態のＢＩＳＴの説明図。
【図６】第１実施形態のＢＩＳＴの説明図。
【図７】第１実施形態のＢＩＳＴの説明図。
【図８】第２実施形態のアドレス生成器１３の構成図。
【図９】第３実施形態の半導体集積回路１の構成図。
【図１０】第４実施形態の半導体集積回路１の構成図。
【図１１】第４実施形態の設計装置４０の構成図。
【図１２】第４実施形態のシミュレーションのフローチャート。
【発明を実施するための形態】
【０００８】
（第１実施形態）
第１実施形態について説明する。第１実施形態は、１つのメモリに１つのＢＩＳＴ回路が接続された半導体集積回路の例である。
【０００９】
第１実施形態の半導体集積回路について説明する。図１は、第１実施形態の半導体集積回路１の構成図である。
【００１０】
図１に示すように、半導体集積回路１は、ＢＩＳＴ回路１０と、メモリカラー２０とを備える。ＢＩＳＴ回路１０は、ＢＩＳＴを実行する回路である。メモリカラー２０は、ＢＩＳＴの対象となるデバイスである。ＢＩＳＴ回路１０には、ＢＩＳＴに必要なクロック信号が供給される。クロック信号は、半導体集積回路１の外部に接続された回路又は半導体集積回路１の内部に設けられたクロック生成回路により生成される。
【００１１】
ＢＩＳＴ回路１０は、いわゆる圧縮器型ＢＩＳＴである。ＢＩＳＴ回路１０は、ＢＩＳＴ制御回路１１と、データ生成器１２と、アドレス生成器１３と、制御信号生成器１４と、解析器１５とを備える。メモリカラー２０は、メモリ２１と、取込レジスタ２２と、比較器２３と、フラグレジスタ２４とを備える。
【００１２】
ＢＩＳＴ制御回路１１は、ＢＩＳＴ制御信号Ｄ１０を生成する。ＢＩＳＴ制御信号Ｄ１０は、データ生成器１２と、アドレス生成器１３と、制御信号生成器１４と、解析器１５とを制御するための信号であり、初期化信号と、アドレス更新信号と、モード選択信号とを含む。初期化信号は、アドレス生成器１３と、制御信号生成器１４と、解析器１５とを初期化する信号である。アドレス更新信号は、アドレス生成器１３内で管理されるアドレス情報を更新する信号である。モード選択信号は、アドレス生成器１３の動作モード（第１動作モード及び第２動作モードの何れか）を選択するために用いられる信号である。
【００１３】
データ生成器１２は、ＢＩＳＴ制御信号Ｄ１０に基づいて、メモリデータＤ１１を生成する。メモリデータＤ１１は、メモリ２１へ書き込まれるべきデータである。また、データ生成器１２は、生成したメモリデータＤ１１を所定クロック（例えば２クロック）だけ保持し、保持したメモリデータＤ１１を期待値データＤ１２として出力する。すなわち、期待値データＤ１２は、所定クロック前に生成されたメモリデータＤ１１に対応する。
【００１４】
アドレス生成器１３は、クロック信号と、ＢＩＳＴ制御信号とに基づいて、アドレス信号Ｄ１３を生成する。アドレス信号Ｄ１３は、メモリデータＤ１１の書き込み先の書込アドレスを示す信号である。より具体的には、アドレス生成器１３は、モード選択信号が第１動作モードを示す場合、メモリ２１の全アドレスに対応するアドレス信号Ｄ１３を生成し、モード選択信号が第２動作モードを示す場合、メモリ２１の一部のアドレスに対応するアドレス信号Ｄ１３を生成する。このとき、アドレス生成器１３は、アドレス信号Ｄ１３に対応するアドレスのメモリデータＤ１１について、アドレス毎に各ビットが変化し、且つ、複数のビット間で値が異なるように、アドレス信号Ｄ１３を生成する。また、アドレス生成器１３は、通知信号Ｄ１６を生成する。通知信号Ｄ１６は、アドレス信号Ｄ１３が、テスト範囲の最終アドレスであるか否かを示す信号である。ＢＩＳＴ制御回路１１は、最終アドレスであることを示す通知信号Ｄ１６を入力すると、初期化信号を生成する。
【００１５】
制御信号生成器１４は、メモリ制御信号Ｄ１４を生成する。メモリ制御信号Ｄ１４は、書込アドレスにメモリデータＤ１１を書き込み、書込アドレスのメモリデータＤ１１をメモリ出力Ｍとして出力するように、メモリ２１を動作させる信号である。
【００１６】
メモリ２１は、メモリ制御信号Ｄ１４で書き込み動作を指示すると、書込アドレスにメモリデータＤ１１を記憶し、読み出し動作を指示すると、書込アドレスのメモリデータＤ１１をメモリ出力Ｍとして出力する。メモリ２１は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
【００１７】
取込レジスタ２２は、メモリ出力Ｍを入力し、入力したメモリ出力Ｍを所定クロック（例えば１クロック）だけ保持する。なお、取込レジスタ２２は省略可能である。
【００１８】
比較器２３は、取込レジスタ２２に保持されたメモリ出力Ｍと、期待値データＤ１２とを入力し、メモリ出力Ｍを期待値データＤ１２と比較し、２値のフラグデータＤ１５を生成する。フラグデータＤ１５は、メモリ出力Ｍが期待値データＤ１２と一致するか否かを示す２値データである。例えば、比較器２３は、メモリ出力Ｍが期待値データＤ１２と一致する（即ち、メモリ出力Ｍと期待値データＤ１２との間に差がない）場合にフラグデータ“０”を生成し、メモリ出力Ｍが期待値データＤ１２と一致しない（即ち、メモリ出力Ｍと期待値データＤ１２との間に差がある）場合にフラグデータ“１”を生成する。
【００１９】
フラグレジスタ２４は、フラグデータＤ１５を入力し、入力したフラグデータＤ１５を所定クロック（例えば１クロック）だけ保持する。なお、フラグレジスタ２４は省略可能である。
【００２０】
解析器１５は、テスト対象メモリのフラグデータＤ１５を入力し、半導体集積回路１の外部へ出力するＢＳＩＴ結果出力を生成する。
【００２１】
設計者は、一般的な論理シミュレーションソフトウェアを用いて、ＢＩＳＴ回路挿入後の半導体集積回路１の論理シミュレーションを行い、ＢＩＳＴ回路１０の動作検証を行う。
【００２２】
第１実施形態のアドレス生成器について説明する。図２は、第１実施形態のアドレス生成器１３の構成図である。
【００２３】
図２に示すように、アドレス生成器１３は、アドレスレジスタ１３０と、加算器１３１と、上位シフタ１３２と、アドレス選択器１３３と、レジスタ値選択器１３４と、最終アドレス判定器１３５と、を備える。
【００２４】
アドレスレジスタ１３０は、レジスタ値選択器１３４により選択されたレジスタ値Ｄ２０を保持する。また、アドレスレジスタ１３０は、クロック信号に同期して保持した値（以下、「保持値」という）を更新する。すなわち、アドレスレジスタ１３０の出力であるアドレス信号Ｄ１３は、クロック信号に対応するレジスタ値Ｄ２０である。レジスタ値Ｄ２０は、クロック信号に対応するメモリ２１のアドレスを示す信号であって、例えば８ビットのビット列である。また、アドレスレジスタ１３０は、初期化信号に基づいて、保持値を初期値に更新する。初期値は、例えば全８ビットが“０”の信号である。
【００２５】
加算器１３１は、アドレス信号Ｄ１３に“１”を加算し、第１上位アドレス信号Ｄ２２を生成する。第１上位アドレス信号Ｄ２２は、クロック信号に対応するアドレスに対して１つ上位アドレス方向に位置するアドレスを示す所定数（例えば８ビット）のビット列を含む。加算器１３１は、クロック信号がアドレスレジスタ１３０へ供給される度に第１上位アドレス信号Ｄ２２を生成する。従って、第１上位アドレス信号Ｄ２２に対応するアドレスは、メモリ２１の先頭アドレス（例えば“００００００００”）から終端アドレス（例えば“１１１１１１１１”）まで推移する。すなわち、第１上位アドレス信号Ｄ２２は、メモリ２１の全アドレスに対応する。
【００２６】
上位シフタ１３２は、第１シフト方式又は第２シフト方式を用いて、最下位ビットから最上位ビットまで上位アドレス方向にアドレス信号Ｄ１３上のデータビットをシフトし、第２上位アドレス信号Ｄ２３を生成する。第１シフト方式では、上位シフタ１３２は、アドレス信号Ｄ１３の最下位ビットから順に、各ビット毎に１を設定する。第２シフト方式では、上位シフタ１３２は、アドレス信号Ｄ１３の最下位ビットから連続して１を設定する。これにより、表１の第２上位アドレス信号Ｄ２３が生成される。表１は、クロックサイクル０で初期化信号が入力されたときのクロックサイクル毎の第２上位アドレス信号Ｄ２３を示す。クロックサイクルは、クロック信号のサイクル数である。表１のように、第２上位アドレス信号Ｄ２３は、クロックサイクル０〜９で、メモリ２１のテスト範囲の先頭アドレス“００００００００”から最終アドレス“１０００００００”又は“１１１１１１１１”まで推移する。すなわち、第２上位アドレス信号Ｄ２３は、メモリ２１の一部のアドレスに対応する。
【表１】
2012203963.tif 000003
【００２７】
アドレス選択器１３３は、モード選択信号に基づいて、第１動作モード又は第２動作モードで動作する。アドレス選択器１３３は、第１動作モードでは加算器１３１により生成された第１上位アドレス信号Ｄ２２を選択し、第２動作モードでは上位シフタ１３２により生成された第２上位アドレス信号Ｄ２３を選択する。すなわち、アドレス選択器１３３の出力である選択アドレス信号Ｄ２４は、第１動作モードではメモリ２１の全アドレスに対応し、第２動作モードではメモリ２１の一部のアドレスに対応する。
【００２８】
レジスタ値選択器１３４は、アドレス更新信号に基づいて、アドレス信号Ｄ１３又は選択アドレス信号Ｄ２４を次のアドレス入力を示すレジスタ値Ｄ２０として選択する。例えば、レジスタ値選択器１３４は、アドレス更新信号が供給されていない場合、アドレス信号Ｄ１３を選択し、アドレス更新信号が供給された場合、選択アドレス信号Ｄ２４を選択する。すなわち、アドレスレジスタ１３０は、アドレス更新信号が供給された場合、保持値を選択アドレス信号Ｄ２４に更新し、アドレス更新信号が供給されなかった場合、保持値を維持する。
【００２９】
最終アドレス判定器１３５は、モード選択信号に基づいて、選択アドレス信号Ｄ２４が最終アドレスであるか否かを判定し、選択アドレス信号Ｄ２４が最終アドレスであるか否かを示す通知信号Ｄ１６を生成する。例えば、最終アドレス判定器１３５は、モード選択信号が第１動作モードを示す場合、全ビットが“１”の信号（すなわち、メモリ２１の終端アドレス）を最終アドレスと判定する。一方、最終アドレス判定器１３５は、モード選択信号が第２動作モードを示す場合、シフト方式に応じた最終アドレス条件に基づいて、選択アドレス信号Ｄ２４が最終アドレスであるか否かを判定する。例えば、最終アドレス条件は、第１シフト方式では最上位ビットのみが“１”であり、第２シフト方式では全ビットが“１”である。最終アドレス判定器１３５は、最終アドレスであると判定した場合、「有効」を示す通知信号Ｄ１６を生成し、最終アドレスでないと判定した場合、「無効」を示す通知信号Ｄ１６を生成する。表２は、クロックサイクル毎の、初期化信号と、アドレス更新信号と、第２上位アドレス信号Ｄ２３と、通知信号Ｄ１６とを示す。
【表２】
2012203963.tif 000004
【００３０】
第１実施形態のＢＩＳＴについて説明する。図３〜７は、第１実施形態のＢＩＳＴの説明図である。
【００３１】
第１実施形態のＢＩＳＴは、マーチングパタンを用いて行われるマーチングテストである。マーチングパタンとは、メモリ２１の各メモリセルに対する１セットの動作（いわゆる、マーチエレメント）を、メモリ２１の全アドレスに適用しながら、メモリセルの値を書き換えるテストパタンである。
【００３２】
動作を行う順番は、アドレスの昇順又は降順である。この動作は、表３のマーチテストシーケンスの記法で表現される。この記法では、ｗ０，ｗ１、ｒ０，ｒ１は、それぞれ、値０又は１の書き込み又は読み出しを示す。この記法を用いて、例えば「９Ｎ  Ｍａｒｃｈ」と呼ばれるアルゴリズムを記述すると、表３のようになる。表３では、括弧内の部分がマーチエレメントである。
【表３】
2012203963.tif 000005
【００３３】
以下、昇順アドレスのみを行う表４のマーチテストシーケンスを用いるものとする。表４のように、アドレス生成器１３は、第２動作モードで、全ビットが０の初期値から、最下位ビットが１の状態から１を最上位ビットまで、アドレス入力の各ビットを順次シフトする。
【表４】
2012203963.tif 000006
【００３４】
図３（Ａ）は、メモリ２１には、Ａｉビットが“０”に固定されるという設計ミスに起因する接続上の不具合が起こっていることを示す。図４は、図３（Ａ）のｉ＝３の場合に対応するクロックサイクル毎の正しいアドレス及び実際のアドレスを示す。図４のように、クロックサイクル４及び５の実際のアドレスが同一になる。
【００３５】
前述のマーチテストシーケンスでは、あるステップで、アドレス“０００００１１１”でメモリからデータを読み出し、そのメモリ出力Ｍ“００００．．．”を期待値データＤ１２“００００．．．”と比較する。次のステップで、アドレス“０００００１１１”にメモリデータＤ１１“１１１１．．．”が書き込まれる。次に、アドレスレジスタ１３０の値を更新し、アドレス“００００１１１１”でメモリ２１からデータを読み出し、そのメモリ出力Ｍを期待値データＤ１２“００００．．．”と比較する。しかし、前述のように接続上の不具合により、メモリ２１に入力されるアドレスは、“０００００１１１”となる。このアドレスでは、前のステップでデータが“１１１１．．．”に書き換えられた後である。したがって、メモリ出力Ｍと期待値データＤ１２との比較結果は一致せず、シミュレーションにおけるＢＩＳＴ結果出力がエラーとして検出される。
【００３６】
図３（Ｂ）は、メモリ２１には、Ａｉビットが“１”に固定されるという設計上の不具合が起こっていることを示す。図５は、図３（Ｂ）のｉ＝３の場合に対応するクロックサイクル毎の正しいアドレス及び実際のアドレスを示す。図５のように、クロックサイクル４及び５の実際のアドレスが同一になる。
【００３７】
前述のマーチテストシーケンスでは、あるステップで、アドレス“０００００１１１”でメモリ２１からデータを読み出し、そのメモリ出力Ｍを期待値データＤ１２“００００．．．”と比較する。この場合、実際にメモリ２１に入力されるアドレス入力は、接続上の不具合により“００００１１１１”となるが、書き込まれている値は正常な場合と同じであるので、比較結果は一致を示す。次のステップで、同じアドレス“００００１１１１”にメモリデータＤ１１“１１１１．．．”が書き込まれる。次に、アドレスレジスタ１３０の値を更新し、アドレス“００００１１１１”でメモリ２１からデータを読み出し、そのメモリ出力Ｍを期待値データＤ１２“００００．．．”と比較する。しかし、このアドレスでは、前のステップでデータが“１１１１．．．”に書き換えられた後である。したがって、メモリ出力Ｍと期待値データＤ１２との比較結果は一致せず、シミュレーションにおけるＢＩＳＴ結果出力がエラーとして検出される。
【００３８】
図３（Ｃ）は、メモリ２１には、Ａｉビット及びＡｊビットが同じ値に固定されるという接続上の不具合があることを示す。図６は、図３（Ｃ）のｉ＝２且つｊ＝４の場合に対応するクロックサイクル毎の正しいアドレス及び実際のアドレスを示す。図６のように、クロックサイクル５及び６の実際のアドレスが同一になる。
【００３９】
前述のマーチテストシーケンスでは、あるステップで、アドレス“００００１１１１”でメモリ２１からデータを読み出し、そのメモリ出力Ｍを期待値データＤ１２“００００．．．”と比較する。この場合、実際にメモリに入力されるアドレス入力は、接続上の不具合により“０００１１１１１”となるが、書き込まれている値は正常な場合と同じであるので、比較結果は一致する。次のステップで、同じアドレス“０００１１１１１”にメモリデータＤ１１“１１１１．．．”が書き込まれる。次に、アドレスレジスタ１３０の値を更新し、アドレス“０００１１１１１”でメモリ２１からデータを読み出し、期待値データＤ１２“００００．．．”と比較する。しかし、このアドレスでは前のステップでデータが“１１１１．．．”に書き換えられた後である。したがって、メモリ出力Ｍと期待値データＤ１２との比較結果は一致せず、シミュレーションにおけるＢＩＳＴ結果出力がエラーとして検出される。
【００４０】
図３（Ｄ）は、マルチポートを有するメモリ２１のあるポートでＡｉビットとＡｊビットが入れ替わっているという接続上の不具合があることを示す。図７は、図３（Ｄ）のｉ＝２且つｊ＝４の場合に対応するクロックサイクル毎の正しいアドレス及び実際のアドレスを示す。このメモリ２１は、書き込みポートと読み出しポートを別に持ち、書き込みポートのアドレスには、上記のように接続上の不具合があり、読み出しポートのアドレスは正常に接続されているものとする。
【００４１】
前述のマーチテストシーケンスでは、最初の全アドレスに対する書き込みで、一通りのアドレスにメモリデータＤ１１“００００．．．”が書き込まれる。しかし、アドレスカウンタの値が“０００００１１１”になった時には、実際にメモリ２１に入力されるアドレス入力は“０００１００１１”となり、目的とするアドレスにはデータは書き込まれない。その後、読み出しポートからアドレス“０００００１１１”でデータを読み出すと、そのアドレスにはデータが書き込まれておらず、不定の値が出力されるため、メモリ出力Ｍと期待値データＤ１２“００００．．．”との比較結果は一致せず、シミュレーションにおけるＢＩＳＴ結果出力がエラーとして検出される。
【００４２】
第１実施形態によれば、アドレス生成器１３は、第１動作モードでメモリ２１の全アドレスに対応するアドレス信号Ｄ１３を生成し、第２動作モードでメモリ２１の一部のアドレスに対応するアドレス信号Ｄ１３を生成する。換言すると、ＢＩＳＴ回路１０は、メモリ２１の全アドレスに対応するアドレス信号Ｄ１３を生成する第１動作モードと、メモリ２１のアドレス入力の各ビットが、それぞれ、０と１の両状態をとり、かつ、異なるビット同士が一度は別の信号状態を持つような一連のデータとなるように、メモリ２１の一部のアドレスに対応するアドレス信号Ｄ１３を生成する第２動作モードの何れかで動作する。これにより、テスト範囲は、第１動作モードではメモリ２１の全アドレスであるが、第２動作モードではメモリ２１の一部のアドレスのみである。従って、テスト範囲が常にメモリ２１の全アドレスである場合と比べて、ＢＩＳＴ実行に要するステップ数が低減し、結果として、半導体集積回路１にＢＩＳＴ回路１０を挿入した後の接続検証のためのシミュレーション実行の所要時間を短縮することができる。
【００４３】
より具体的には、メモリ２１の全アドレスに対してマーチングパタンを適用する場合、ＢＩＳＴ実行に要するステップ数は、２Ｎ（Ｎは、アドレス幅を示す整数）に比例する個数である。一方、第２動作モードでは、ステップ数は、（Ｎ＋１）に比例する個数に過ぎない。これは、マーチテストではＢＩＳＴ実行ステップ数がアドレス数に比例することから、第２動作モードで生成されるＢＩＳＴ結果出力のデータ量は、従来に比べて（Ｎ＋１）／２Ｎに低減することを意味する。例えば、Ｎ＝１３であれば、メモリのアドレス数（ワード数）は、第１動作モードでは８１９２個であるが、第２動作モードでは１４個に過ぎない。つまり実行ステップ数は１４／８１９２に削減される。
【００４４】
また、第１実施形態によれば、アドレス生成器１３は、モード選択信号に応じたテスト範囲のアドレス信号Ｄ１３を生成するので、ＢＩＳＴ回路１０の一連の動作が連続して正しく行われているか否かについて、全てのメモリアドレスに対して漏れなく検証することができる。
【００４５】
また、第１実施形態によれば、上位シフタ１３２は、２つのシフト方式（第１シフト方式及び第２シフト方式）をサポートするので、メモリ２１のワード数が２のべき乗である場合及び２のべき乗でない場合の何れにおいても、ＢＩＳＴ結果出力のデータ量を低減することができる。
【００４６】
（第２実施形態）
第２実施形態について説明する。第１実施形態は、アドレスを上位アドレス側に変化させる例であるが、第２実施形態は、アドレスを上位アドレス側及び下位アドレス側に変化させる例である。なお、上述の実施形態と同様の内容の説明は省略する。
【００４７】
第２実施形態の半導体集積回路１は、第１実施形態と同様である。但し、ＢＩＳＴ制御回路１１は、初期化信号と、アドレス更新信号と、モード選択信号とに加えて、シフト方向選択信号をさらに含むＢＩＳＴ制御信号Ｄ１０を生成する。シフト方向選択信号は、アドレス信号Ｄ１３を、上位アドレス方向（昇順）に推移させる昇順モードか、又は下位アドレス方向（降順）に推移させる降順モードか（すなわち、アドレス信号Ｄ１３のシフト方向）を示す信号である。
【００４８】
第２実施形態のアドレス生成器について説明する。図８は、第２実施形態のアドレス生成器１３の構成図である。
【００４９】
図８に示すように、アドレス生成器１３は、アドレスレジスタ１３０と、加算器１３１と、上位シフタ１３２と、アドレス選択器１３３と、レジスタ値選択器１３４と、最終アドレス判定器１３５と、減算器１３６と、下位シフタ１３７と、上位アドレス選択器１３８と、下位アドレス選択器１３９と、を備える。アドレスレジスタ１３０、加算器１３１、上位シフタ１３２及びレジスタ値選択器１３４は、第１実施形態と同様である。
【００５０】
減算器１３６は、アドレス信号Ｄ１３から“１”を減算し、第１下位アドレス信号Ｄ２５を生成する。第１下位アドレス信号Ｄ２５は、クロック信号に対応するアドレスに対して１つ下位アドレス方向に位置するアドレスを示す所定数（例えば８ビット）のビット列を含む。減算器１３６は、クロック信号がアドレスレジスタ１３０へ供給される度に第１下位アドレス信号Ｄ２５を生成する。従って、第１下位アドレス信号Ｄ２５に対応するアドレスは、メモリ２１の終端アドレス（例えば“１１１１１１１１”）から先頭アドレス（例えば“００００００００”）まで推移する。すなわち、第１下位アドレス信号Ｄ２５は、メモリ２１の全アドレスに対応する。
【００５１】
下位シフタ１３７は、第３シフト方式又は第４シフト方式を用いて、アドレス信号Ｄ１３を下位アドレス方向にシフトし、第２下位アドレス信号Ｄ２６を生成する。第３シフト方式では、下位シフタ１３７は、アドレス信号Ｄ１３の最上位ビットから順に、各ビット毎に１を設定する。第４シフト方式では、下位シフタ１３７は、アドレス信号Ｄ１３の最上位ビットから連続して１を設定する。これにより、表５の第２下位アドレス信号Ｄ２６が生成される。表５は、クロックサイクル０で初期化信号が入力されたときのクロックサイクル毎の第２下位アドレス信号Ｄ２６を示す。クロックサイクルは、クロック信号のサイクル数である。表５のように、第２下位アドレス信号Ｄ２６は、クロックサイクル０〜９で、メモリ２１のテスト範囲の先頭アドレス“１１１１１１１１”又は“１０００００００”から最終アドレス“００００００００”まで推移する。すなわち、第２下位アドレス信号Ｄ２６は、メモリ２１の一部のアドレスに対応する。
【表５】
2012203963.tif 000007
【００５２】
上位アドレス選択器１３８は、モード選択信号に基づいて、第１動作モード又は第２動作モードで動作する。上位アドレス選択器１３８は、第１動作モードでは加算器１３１により生成された第１上位アドレス信号Ｄ２２を選択し、第２動作モードでは上位シフタ１３２により生成された第２上位アドレス信号Ｄ２３を選択する。すなわち、上位アドレス選択器１３８の出力である選択上位アドレス信号Ｄ２７は、第１動作モードではメモリ２１の全アドレスに対応し、第２動作モードではメモリ２１の一部のアドレスに対応する。
【００５３】
下位アドレス選択器１３９は、モード選択信号に基づいて、第１動作モード又は第２動作モードで動作する。下位アドレス選択器１３９は、第１動作モードでは減算器１３６により生成された第１下位アドレス信号Ｄ２５を選択し、第２動作モードでは下位シフタ１３７により生成された第２下位アドレス信号Ｄ２６を選択する。すなわち、下位アドレス選択器１３９の出力である選択下位アドレス信号Ｄ２８は、第１動作モードではメモリ２１の全アドレスに対応し、第２動作モードではメモリ２１の一部のアドレスに対応する。
【００５４】
アドレス選択器１３３は、シフト方向選択信号に基づいて、選択上位アドレス信号Ｄ２７又は選択下位アドレス信号Ｄ２８を選択する。アドレス選択器１３３は、シフト方向選択信号が上位アドレス方向を示す場合、選択上位アドレス信号Ｄ２７を選択し、シフト方向選択信号が下位アドレス方向を示す場合、選択下位アドレス信号Ｄ２８を選択する。すなわち、アドレス選択器１３３の出力である選択アドレス信号Ｄ２４は、第１動作モードではメモリ２１の全アドレスに対応し、第２動作モードではメモリ２１の一部のアドレスに対応するだけでなく、シフト方向選択信号が示すアドレス方向に推移する。
【００５５】
第２実施形態によれば、ＢＩＳＴ回路１０は、第２動作モードで、アドレス入力を昇順にシフトする昇順モードと、アドレス入力を降順にシフトする降順モードとの何れかで動作する。ＢＩＳＴ回路１０は、昇順モードでは、アドレス入力の全ビットが０の初期値から、最下位ビットが１の状態から１を最上位ビットまでアドレス入力の各ビットを順次シフトする。ＢＩＳＴ回路１０は、降順モードでは、最上位ビットのみが１の状態から最下位ビットまでアドレス入力の各ビットを順次シフトする。ＢＩＳＴ回路１０は、昇順モード及び降順モードの何れの場合にも、最終的にアドレス入力を全ビットが０の状態に戻す。従って、アドレスを上位アドレス方向（昇順）にシフトするテストパタンと、アドレスを下位アドレス方向（降順）にシフトするテストパタンとの何れの場合にも、第１実施形態と同様の効果を得ることができる。
【００５６】
（第３実施形態）
第３実施形態について説明する。第３実施形態は、複数のメモリカラーに１つのＢＩＳＴ回路が接続された半導体集積回路の例である。なお、上述の実施形態と同様の内容の説明は省略する。
【００５７】
第３実施形態の半導体集積回路について説明する。図９は、第３実施形態の半導体集積回路１の構成図である。
【００５８】
図９に示すように、半導体集積回路１は、ＢＩＳＴ回路１０と、複数のメモリカラー２０ａ及び２０ｂとを備える。ＢＩＳＴ回路１０は、データ生成器１２を備える。複数のメモリカラー２０ａ及び２０ｂは、それぞれ、メモリ２１ａ及び２１ｂを備える。なお、図９に図示されていない構成は、第１実施形態と同様である。
【００５９】
アドレス生成器１３は、アドレス信号Ｄ１３を出力する（ｎ＋１）（ｎは０以上の整数）個のピンＰ［０］〜Ｐ［ｎ］を備える。メモリ２１ａは、（ｎ＋１）個のアドレス入力ピンＡ［０］〜Ａ［ｎ］を備える。メモリ２１ｂは、ｎ個のアドレス入力ピンＢ［０］〜Ｂ［ｎ−１］を備える。ピンＰ［０］〜Ｐ［ｎ−１］は、それぞれ、ピンＡ［０］〜Ａ［ｎ−１］及びピンＢ［０］〜Ｂ［ｎ−１］に接続される。一方、ピンＰ［ｎ］は、ピンＡ［ｎ］にのみ接続される。すなわち、複数のメモリ２１ａ及び２１ｂは、それぞれ、アドレス幅が異なる。
【００６０】
アドレス生成器１３は、アドレス信号Ｄ１３［０］〜Ｄ１３［ｎ］を生成する。次いで、データ生成器１３は、ピンＰ［０］〜Ｐ［ｎ］からメモリ２１ａのピンＡ［０］〜Ａ［ｎ］へ、それぞれ、アドレス信号Ｄ１３［０］〜Ｄ１３［ｎ］を送信する。一方、データ生成器１３は、ピンＰ［０］〜Ｐ［ｎ−１］からメモリ２１ｂのピンＢ［０］〜Ｂ［ｎ−１］へ、それぞれ、アドレス信号Ｄ１３［０］〜Ｄ１３［ｎ−１］を送信し、メモリ２１ｂへのアドレス信号Ｄ１３［ｎ］は無効化する。
【００６１】
データ生成器１２は、複数のメモリ２１ａ及び２１ｂへ書き込むべきメモリデータＤ１１と、複数のメモリ２１ａ及び２１ｂのメモリ出力Ｍの期待値データＤ１２とを生成する。また、データ生成器１２は、第２動作モードにおいて、アドレス信号Ｄ１３のデータ幅の範囲に含まれないアドレスでのメモリデータＤ１１の書き込みと、メモリ出力Ｍと期待値データＤ１２との比較とを無効化する。
【００６２】
第３実施形態によれば、ＢＩＳＴ回路１０は、第２動作モードでメモリデータＤ１１の書き込みと、メモリ出力Ｍと期待値データＤ１２との比較とを無効化する。従って、第１及び第２実施形態に比べて、複数のメモリ２１ａ及び２１ｂの動作を検証するためのＢＩＳＴ結果出力のデータ量を大幅に削減することができる。
【００６３】
（第４実施形態）
第４実施形態について説明する。第１〜第３実施形態は、ＲＡＭに適用可能な比較型ＢＩＳＴの例であるが、第４実施形態は、ＲＡＭだけでなく、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）にも適用可能な圧縮型ＢＩＳＴの例である。なお、上述の実施形態と同様の内容の説明は省略する。
【００６４】
第４実施形態の半導体集積回路について説明する。図１０は、第４実施形態の半導体集積回路１の構成図である。
【００６５】
図１０に示すように、半導体集積回路１は、ＢＩＳＴ回路１０と、メモリカラー２０とを備える。ＢＩＳＴ回路１０は、ＢＩＳＴを実行する回路である。メモリカラー２０は、ＢＩＳＴの対象となるメモリデバイスを含む。
【００６６】
ＢＩＳＴ回路１０は、ＢＩＳＴ制御回路１１と、データ生成器１２と、アドレス生成器１３と、制御信号生成器１４と、解析器１５とを備える。ＢＩＳＴ制御回路１１、アドレス生成器１３及び制御信号生成器１４は、第１実施形態と同様である。メモリカラー２０は、メモリ２１と、圧縮器２５とを備える。
【００６７】
データ生成器１２は、ＢＩＳＴ制御信号Ｄ１０に基づいて、メモリデータＤ１１を生成する。メモリデータＤ１１は、メモリ２１へ書き込まれるべきデータである。なお、データ生成器１２は、生成したメモリデータ１１を保持しない（すなわち、第１実施形態の期待値データＤ１２を出力しない）。
【００６８】
メモリ２１は、メモリ制御信号Ｄ１４で書き込み動作を指示すると、書込アドレスにメモリデータＤ１１を記憶し、メモリ制御信号Ｄ１４で読み出し動作を指示すると、書込アドレスのメモリデータＤ１１をメモリ出力Ｍとして出力する。上述の実施形態と異なり、メモリ２１は、ＲＡＭであっても良いし、ＲＯＭであっても良い。なお、ＲＯＭの場合は書き込み動作を行わないので、データ生成器１２は不要となる。
【００６９】
圧縮器２５は、メモリ２１のメモリ出力Ｍを入力し、入力したメモリ出力Ｍを圧縮し、圧縮データＤ１７を生成する。圧縮器２５は、例えばＭＩＳＲ（Ｍｕｌｔｉｐｌｅ  Ｉｎｐｕｔ  Ｓｉｇｎａｔｕｒｅ  Ｒｅｇｉｓｔｅｒ）である。
【００７０】
解析器１５は、メモリカラー２０が１個の場合には、圧縮データＤ１７をＢＩＳＴデータとして出力する。一方、解析器１５は、メモリカラー２０が複数の場合には、各メモリカラー２０から出力される圧縮データＤ１７をシリアルに入力し、入力した圧縮データＤ１７をＢＩＳＴ実行結果として順次出力する。
【００７１】
第４実施形態によれば、第１実施形態と同様に、アドレス生成器１３は、第１動作モードでメモリ２１の全アドレスに対応するアドレス信号Ｄ１３を生成し、第２動作モードでメモリ２１の一部のアドレスに対応するアドレス信号Ｄ１３を生成する。従って、テスト範囲が常にメモリ２１の全アドレスである場合と比べて、ＢＩＳＴ実行に要するステップ数が低減し、結果としてＢＩＳＴ検証を行うシミュレーションの所要時間を短縮することができる。
【００７２】
ところで、メモリ２１がＲＯＭである場合、ＲＯＭに記憶されるＲＯＭデータにはランダム性がある。従って、データ生成器１２は、ＲＯＭデータを生成することができない。また、ＲＯＭデータを生成する代わりに、半導体集積回路１内にＲＯＭデータを保存しておくことは、非現実的である。以上のことから、ＲＯＭに対しては、上述の実施形態と異なり、メモリ出力Ｍを期待値データＤ１３と比較する手法は利用できない。
【００７３】
仮に、ＲＯＭに対して圧縮器型ＢＩＳＴを用いるときに、上述の実施形態のように、第２動作モードでメモリ２１の一部のアドレスに対応するアドレス信号Ｄ１３を生成する（即ち、アドレス範囲を削減する）と、ＲＯＭデータのランダム性が問題になる。具体的には、第２動作モードで生成されたアドレス信号Ｄ１３に含まれないアドレス（即ち、削減された範囲のアドレス）でデータを読み出すと、異なるアドレスのデータが同じであった場合、最終的な出力圧縮結果である圧縮データＤ１７も同じになってしまうという問題がある。
【００７４】
以下、ＲＯＭデータのランダム性に起因する問題の解決する第４実施形態の設計装置について説明する。図１１は、第４実施形態の設計装置４０のブロック図である。図１１の設計装置４０は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の設計装置である。この設計装置４０は、ＲＯＭデータ生成部４２と、シミュレーション実行部４４と、判定部４６とを備える。
【００７５】
第４実施形態の設計装置４０の動作について説明する。図１２は、第４実施形態の設計装置４０の動作のフローチャートである。設計装置４０の動作は、ＲＯＭデータ生成ステップ（Ｓ１２００）と、シミュレーションステップ（Ｓ１２０２）と、判定ステップ（Ｓ１２０４）とで構成される。
【００７６】
＜Ｓ１２００＞  ＲＯＭデータ生成部４２は、上記のＲＯＭデータのランダム性に起因する問題を避けるために、半導体集積回路１を利用するシステムで用いられるシステム用ＲＯＭデータのほかに、システムに搭載されるＲＯＭデバイスの構成を示す構成情報から、検証動作で用いられる検証用ＲＯＭデータを生成する。この際、ＲＯＭデータ生成部４２は、第２動作モードで生成されるアドレス信号Ｄ１３に含まれないアドレス（即ち、検証動作時に削減された範囲のアドレス）に対しては、異なるアドレスでそれぞれデータが重複しないように検証用ＲＯＭデータを生成する。これと同時に、ＲＯＭデータ生成部４２は、ＢＩＳＴ実行結果の圧縮期待値のログを示す圧縮期待値データも生成する。なお、圧縮回路には、一般的に、圧縮の結果として故障の情報を失う現象（いわゆるエイリアス現象）が起こる場合がある。このため、ＲＯＭデータ生成部４２は、予め想定される設計ミスがある場合に、検証用ＲＯＭデータを用いた論理シミュレーションによる圧縮結果が、設計ミスのない場合と同一になったときは、その検証用ＲＯＭデータを破棄する。これにより、エイリアス現象の起こらない検証用ＲＯＭデータが生成される。
【００７７】
＜Ｓ１２０２＞  シミュレーション実行部４４は、この検証用ＲＯＭデータと、設計データと、テストパタンと、を用いて、検証モードでのＢＳＩＴ動作の論理シミュレーションを行い、ＲＯＭのメモリ出力Ｍの圧縮結果のシミュレーション結果を出力する。設計データは、検証対象である半導体集積回路１の構成に関する記述を含む。テストパタンデータは、ＢＩＳＴ回路１０の動作に関する記述を含む。
【００７８】
＜Ｓ１２０４＞  判定部４６は、シミュレーション実行部４４から出力されたシミュレーション結果と、ＲＯＭデータ生成部４２で生成された圧縮期待値データとを比較し、両者が一致した場合は「パス」と判定し、両者が一致しない場合は「エラー」と判定し、判定結果を出力する。
【００７９】
第４実施形態によれば、本来はランダム性のあるＲＯＭデータを記憶するＲＯＭデバイスに対して、第２動作モードで削減された範囲のアドレスを示すアドレス信号Ｄ１３を生成するアドレス生成器１３と、検証用ＲＯＭデータを生成するＲＯＭデータ生成部４２とを用いる。即ち、設計装置４０は、メモリ２１がＲＯＭの場合、テスト実行時に、メモリ出力Ｍを順次圧縮し、最終的な圧縮結果でメモリ２１の良否を判定する。また、設計装置４０は、ＲＯＭの構成を示す構成情報から、第２動作モードで生成されるアドレス信号Ｄ１３に含まれないアドレスに対して、異なるアドレスでデータが重複しないように検証用ＲＯＭデータを生成する。また、設計装置４０は、アドレス信号Ｄ１３を伝送するピンに接続上の不具合があった場合の圧縮結果が、接続上の不具合がない場合の圧縮結果と異なるように、圧縮期待値を生成する。従って、全アドレスで論理シミュレーションを実行するよりも、接続上の不具合の検証時間を大幅に削減することができる。
【００８０】
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で構成要素を変形して具体化される。また、上述した実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明が形成可能である。例えば、上述した実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００８１】
１  半導体集積回路
１０  ＢＩＳＴ回路
１１  ＢＩＳＴ制御回路
１２  データ生成器
１３  アドレス生成器
１４  制御信号生成器
１５  解析器
２０  メモリカラー
２１  メモリ
２２  取込レジスタ
２３  比較器
２４  フラグレジスタ
４０  設計装置
４２  ＲＯＭデータ生成部
４４  シミュレーション実行部
４６  判定部
【図１】
2012203963.tif 000008
【図２】
2012203963.tif 000009
【図３】
2012203963.tif 000010
【図４】
2012203963.tif 000011
【図５】
2012203963.tif 000012
【図６】
2012203963.tif 000013
【図７】
2012203963.tif 000014
【図８】
2012203963.tif 000015
【図９】
2012203963.tif 000016
【図１０】
2012203963.tif 000017
【図１１】
2012203963.tif 000018
【図１２】
2012203963.tif 000019