(57)【要約】【課題】従来の半導体装置では、ＢＩＳＴに関するテスト時間が増加してしまう問題がある。【解決手段】一実施の形態によれば、半導体装置は、サイズの異なる複数のメモリアレイと、複数のメモリアレイに対するテストパターンを出力するテストパターン生成回路と、メモリアレイ毎に設けられ、アクセスアドレスを変換するメモリインタフェース回路と、を有し、メモリインタフェース回路は、テストパターン生成回路から出力されるテストアドレスをメモリアレイ毎に設定されるシフト量に応じてシフトさせることで、テスト対象のメモリアレイの実際のアドレスに変換する。【選択図】図９
2019192322.tif 000002
【特許請求の範囲】
【請求項１】
格子状に配置されるメモリセルの個数がそれぞれ異なる複数のメモリアレイと、
それぞれが前記複数のメモリアレイの何れか１つに対応し、アクセスアドレスに基づき前記メモリセルの１つを活性化する複数のメモリインタフェース回路と、
前記複数のメモリアレイのテスト時に前記アクセスアドレスとしてテストアドレスを生成するメモリテストパターン生成回路と、を有し、
前記複数のメモリインタフェース回路は、それぞれ、
アドレスシフト処理により、前記テストアドレスのうちテスト対象の前記メモリアレイのＸ方向のアドレスとなる第１のＸアドレスをテスト対象の前記メモリアレイの実際のアドレスとなる第２のＸアドレスに変換する第１のアドレスシフト演算器と、
前記第１のアドレスシフト演算器における前記第１のＸアドレスと前記第２のＸアドレスとの間のシフト量を指定する第１のオフセット値を格納する第１のオフセット格納レジスタと、
アドレスシフト処理により、前記テストアドレスのうちテスト対象の前記メモリアレイのＹ方向のアドレスとなる第１のＹアドレスをテスト対象の前記メモリアレイの実際のアドレスとなる第２のＹアドレスに変換する第２のアドレスシフト演算器と、
前記第２のアドレスシフト演算器における前記第１のＹアドレスと前記第２のＹアドレスとの間のシフト量を指定する第２のオフセット値を格納する第２のオフセット格納レジスタと、を有し、
前記第１のオフセット格納レジスタと前記第２のオフセット格納レジスタは、外部から前記シフト量を示すシフト量データがシフト動作により与えられるシフトレジスタ回路の一部を構成する半導体装置。
【請求項２】
前記複数のメモリアレイに対するアクセスアドレスを出力して、前記複数のメモリアレイを利用した処理を実行する論理回路と、
前記論理回路によって前記複数のメモリアレイを利用する通常動作モードと、前記複数のメモリアレイをテストするテスト動作モードと、切り替えるテストモード制御信号を出力するテストモード制御回路と、をさらに有し、
前記複数のメモリインタフェース回路は、それぞれ、
前記アクセスアドレスのうち前記メモリアレイのＸ方向のアドレスとなる第３のＸアドレスと、前記第２のＸアドレスと、のいずれか一方を選択して対応する前記メモリアレイに出力する第１の選択回路と、
前記アクセスアドレスのうち前記メモリアレイのＹ方向のアドレスとなる第３のＹアドレスと、前記第２のＹアドレスと、のいずれか一方を選択して対応する前記メモリアレイに出力する第２の選択回路と、を有し、
前記第１の選択回路及び前記第２の選択回路は、前記テストモード制御信号が前記通常動作モードを指定するときは、前記第３のＸアドレス及び前記第３のＹアドレスを選択し、前記テストモード制御信号が前記テスト動作モードを指定するときは、前記第２のＸアドレス及び前記第２のＹアドレスを選択する請求項１に記載の半導体装置。
【請求項３】
前記第１のアドレスシフト演算器は、前記第１のオフセット値から前記第１のＸアドレスを減算した値のうち０以上の値となるアドレス値を前記第２のＸアドレスとして出力し、
前記第２のアドレスシフト演算器は、前記第２のオフセット値から前記第１のＹアドレスを減算した値のうち０以上の値となるアドレス値を前記第２のＹアドレスとして出力する請求項１に記載の半導体装置。
【請求項４】
前記第１のオフセット格納レジスタは、前記第１のＸアドレスのビット数よりも小さなＮ（Ｎは整数）ビットの大きさを有するオフセット値を前記第１のオフセット値として格納し、
前記第１のアドレスシフト演算器は、
前記第１のオフセット値のＮビットの各値と、前記第１のＸアドレスの上位Ｎビットの各値と、の排他的論理和をそれぞれ演算する複数の第１の排他的論理和回路と、
前記複数の第１の排他的論理和回路の出力が全て１になったことに応じて、前記第１のＸアドレスのうち上位Ｎビットを除く値を、前記第２のＸアドレスとして出力する第１のゲート回路を有し、
前記第２のオフセット格納レジスタは、前記第１のＹアドレスのビット数よりも小さなＭ（Ｍは整数）ビットの大きさを有するオフセット値を前記第２のオフセット値として格納し、
前記第２のアドレスシフト演算器は、
前記第２のオフセット値のＭビットの各値と、前記第１のＹアドレスの上位Ｍビットの各値と、の排他的論理和をそれぞれ演算する複数の第２の排他的論理和回路と、
前記複数の第２の排他的論理和回路の出力が全て１になったことに応じて、前記第１のＹアドレスのうち上位Ｍビットを除く値を、前記第２のＹアドレスとして出力する第２のゲート回路を有する請求項１に記載の半導体装置。
【請求項５】
前記第１のオフセット格納レジスタ及び前記第２のオフセット格納レジスタは、それぞれ、リセット信号に応じて予め決められたリセット用オフセット値を保持し、リセット信号がアクティブ状態となったことに応じて前記リセット用オフセット値を自回路が出力するオフセット値とする請求項１に記載の半導体装置。
【請求項６】
外部から与えられるアドレスシフト設定パターンに基づき、前記第１のオフセット格納レジスタと前記第２のオフセット格納レジスタに前記第１のオフセット値及び前記第２のオフセット値をシフト動作により設定するＪＴＡＧコントローラを更に有する請求項１に記載の半導体装置。
【請求項７】
アドレスシフト設定パターンを含むテストパターンを格納する不揮発性メモリと、
前記アドレスシフト設定パターンに基づき、前記第１のオフセット格納レジスタと前記第２のオフセット格納レジスタに前記第１のオフセット値及び前記第２のオフセット値をシフト動作により設定するＪＴＡＧコントローラと、
前記ＪＴＡＧコントローラに前記アドレスシフト設定パターンを転送すると共に、前記ＪＴＡＧコントローラに動作指示を与えるポストコントローラと、
を更に有する請求項１に記載の半導体装置。
【請求項８】
アドレスシフト設定パターンを含むテストパターンを格納する不揮発性メモリと、
前記半導体装置がリセットされたことに応じてリセット信号を出力するリセット制御回路と、
前記リセット信号に応じて、前記不揮発性メモリに格納された前記アドレスシフト設定パターンを前記第１のオフセット格納レジスタと前記第２のオフセット格納レジスタに与えて、各オフセット格納レジスタに前記第１のオフセット値及び前記第２のオフセット値を格納させる指示を前記不揮発性メモリに対して行うポストコントローラと、
を更に有する請求項１に記載の半導体装置。
【請求項９】
アドレスシフト設定パターンを含むテストパターンを格納する不揮発性メモリと、
前記半導体装置がリセットされたことに応じてリセット信号を出力するリセット制御回路と、
外部から与えられる指示に基づき、前記不揮発性メモリに格納された前記アドレスシフト設定パターンを前記第１のオフセット格納レジスタと前記第２のオフセット格納レジスタに与えて、各オフセット格納レジスタに前記第１のオフセット値及び前記第２のオフセット値を格納させる指示を前記不揮発性メモリに対して行うテストモード制御回路と、を有する請求項１に記載の半導体装置。
【請求項１０】
格子状に配置されるメモリセルの個数がそれぞれ異なる複数のメモリアレイと、
それぞれが前記複数のメモリアレイの何れか１つに対応し、アクセスアドレスに基づき前記メモリセルの１つを活性化する複数のメモリインタフェース回路と、
前記複数のメモリアレイのテスト時に前記アクセスアドレスとしてテストアドレスを生成するメモリテストパターン生成回路と、を有し、
前記複数のメモリインタフェース回路が、ディジーチェーン接続される第１のオフセット格納レジスタ及び第２のオフセット格納レジスタを有する半導体装置のメモリテスト方法であって、
アドレスシフト設定パターンをシフト動作により前記第１のオフセット格納レジスタ及び前記第２のオフセット格納レジスタに与えて、前記第１のオフセット格納レジスタに第１のオフセット値を格納し、かつ、前記第２のオフセット格納レジスタに第２のオフセット値を格納し、
アドレスシフト処理により、前記テストアドレスのうちテスト対象の前記メモリアレイのＸ方向のアドレスとなる第１のＸアドレスを前記第１のオフセット値に応じたシフト量分シフトさせて第２のＸアドレスに変換し、
アドレスシフト処理により、前記テストアドレスのうちテスト対象の前記メモリアレイのＹ方向のアドレスとなる第１のＹアドレスを前記第２のオフセット値に応じたシフト量分シフトさせて第２のＹアドレスに変換し、
前記第１のＸアドレス及び前記第２のＹアドレスを用いて前記複数のメモリアレイに対するテストを実施する半導体装置のメモリテスト方法。
【請求項１１】
前記第１のオフセット値は、前記第２のＸアドレスが前記第１のＸアドレスのアドレス値以下のアドレス値となるように定義され、
前記第２のオフセット値は、前記第２のＹアドレスが前記第１のＹアドレスのアドレス値以下のアドレス値となるよう定義される請求項１０に記載の半導体装置のメモリテスト方法。
【請求項１２】
前記第１のオフセット値と前記第２のオフセット値は、前記複数のメモリインタフェース回路毎に独立して値が設定される請求項１０記載の半導体装置のメモリテスト方法。
【請求項１３】
格子状に配置されるメモリセルの個数がそれぞれ異なる複数のメモリアレイと、
それぞれが前記複数のメモリアレイの何れか１つに対応し、アクセスアドレスに基づき前記メモリセルの１つを活性化する複数のメモリインタフェース回路と、
前記複数のメモリアレイのテスト時に前記アクセスアドレスとしてテストアドレスを生成するメモリテストパターン生成回路と、を有し、
前記複数のメモリインタフェース回路が、ディジーチェーン接続される第１のオフセット格納レジスタ及び第２のオフセット格納レジスタを有し、
アドレスシフト設定パターンをシフト動作により前記第１のオフセット格納レジスタ及び前記第２のオフセット格納レジスタに与えて、前記第１のオフセット格納レジスタに第１のオフセット値を格納し、かつ、前記第２のオフセット格納レジスタに第２のオフセット値を格納し、
アドレスシフト処理により、前記テストアドレスのうちテスト対象の前記メモリアレイのＸ方向のアドレスとなる第１のＸアドレスを前記第１のオフセット値に応じたシフト量分シフトさせて第２のＸアドレスに変換し、
アドレスシフト処理により、前記テストアドレスのうちテスト対象の前記メモリアレイのＹ方向のアドレスとなる第１のＹアドレスを前記第２のオフセット値に応じたシフト量分シフトさせて第２のＹアドレスに変換し、
前記第１のＸアドレス及び前記第２のＹアドレスを用いて前記複数のメモリアレイに対するテストを実施する半導体装置に対して、前記第１のオフセット値及び前記第２のオフセット値を含む前記アドレスシフト設定パターンを生成するテストパターン生成プログラムであって、
前記半導体装置において前記複数のメモリアレイの動作テストを実施するテスト動作時の前記半導体装置の消費電力の遷移条件を含むユーザー条件情報を読み込み、
前記メモリテストパターン生成回路の回路構成に情報となるメモリＢＩＳＴ構成情報と、前記複数のメモリアレイに含まれる各メモリのメモリサイズに関する情報となるメモリデータと、前記第１のオフセット格納レジスタ及び前記第２のオフセット格納レジスタの回路構成情報となるオフセット格納レジスタ情報と、を読み込み、
前記ユーザー条件情報で示される消費電力の遷移条件を満たすように、メモリＢＩＳＴ構成情報と、前記メモリデータと、を用いて前記第１のオフセット値及び前記第２のオフセット値を算出するオフセット値算出処理を行い、
算出された前記第１のオフセット値及び前記第２のオフセット値をオフセット格納レジスタ情報に示されたレジスタ構成に合わせて並び替えてアドレスシフト設定パターンを生成するテストパターン生成プログラム。
【請求項１４】
前記アドレスシフト設定パターンと、少なくともテスト時に前記複数のメモリアレイに与えるライトデータを含む既存のテストパターンとをマージして、新たな前記テストパターンを生成する請求項１３に記載のテストパターン生成プログラム。
【請求項１５】
前記オフセット値算出処理では、
前記複数のメモリアレイのうち最大のＸアドレス空間を有するメモリアレイと、前記複数のメモリアレイのうち最大のＹアドレス空間を有するメモリアレイと、が少なくとも収まるメモリ空間を有する最大メモリ空間を作成し、
前記メモリアレイを並べた場合に前記最大メモリ空間の最大Ｘアドレスの範囲内に収まるメモリアレイを１つのグループとし、前記複数のメモリアレイの全てを複数のグループに分類する第１のグルーピング処理と、
前記メモリアレイを並べた場合に前記最大メモリ空間の最大Ｙアドレスの範囲内に収まるメモリアレイを１つのグループとし、前記複数のメモリアレイの全てを複数のグループに分類する第２のグルーピング処理と、
前記第１のグルーピング処理と前記第２のグルーピング処理で生成されたグループに基づきメモリアレイ毎のシフト可能量を算出し、
前記第１のグルーピング処理又は前記第２のグルーピング処理で生成された複数のグループを重ね合わせて、重ね合わせ後のテストタイミング毎の総消費電力を算出し、
前記総消費電力が、前記ユーザー条件情報で示される消費電力の遷移条件を満たすように、前記シフト可能量を考慮して前記メモリアレイを重ね合わせる位置を変更し、
変更後の前記メモリアレイの前記最大メモリ空間上の位置に応じて前記メモリアレイ毎の前記第１のオフセット値と前記第２のオフセット値を算出する請求項１３に記載のテストパターン生成プログラム。
【請求項１６】
前記テストパターン生成プログラムは、
演算処理を行う演算部と、
前記ユーザー条件情報、前記メモリＢＩＳＴ構成情報、前記メモリデータ、及び、前記オフセット格納レジスタ情報と、前記テストパターン生成プログラムにより生成された前アドレスシフト設定パターンと、を格納する記憶装置と、
を有するコンピュータにより実行される請求項１３に記載のテストパターン生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置、半導体装置のメモリテスト方法、テストパターン生成プログラムに関し、例えば、内蔵メモリに対して自己テストを行うメモリＢＩＳＴ（Build In Self-Test）機能を搭載する半導体装置、半導体装置のメモリテスト方法、テストパターン生成プログラムに関する。
【背景技術】
【０００２】
メモリを搭載する半導体装置では、メモリの故障を検出して、故障セルの置き換え処理、或いは、故障セルの無効化処理等を行い、メモリに故障が発生してもシステムとして動作を継続することが可能なような機能が備わっている。この機能を実現するために、メモリを搭載する半導体装置では、メモリをテストするためのテスト回路が組み込まれている。そして、このようなテスト回路を有する半導体装置の例が特許文献１に開示されている。
【０００３】
特許文献１では、半導体装置が、制御回路、第１及び第２のパターンジェネレータを有する。そして、制御回路は、第１及び第２のテストパターンジェネレータによるテストがともにライトの場合、一方のテストパターンジェネレータによるテストシーケンスの実行を許可し、他方のテストパターンジェネレータに対してテストシーケンスの実行を不許可とし、一方のテストパターンジェネレータからメモリグループの対応する一方のグループに対してライトのテストパターンを出力し、他方のグループに対するライトの実行を、一方のグループのライトのテストサイクル単位で時間的にずらし、一方のテストパターンジェネレータによる一方のグループのライトの終了後、他方のテストパターンジェネレータによるテストシーケンスの実行を許可し、他方のテストパターンジェネレータから対応する他方のグループに対するライトのテストパターンを出力する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２３４６０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、メモリテストを行うグループのテストタイミングをずらすことで、同時に活性化されるメモリセル数を削減して、テスト時の消費電力を低減する。しかしながら、特許文献１に記載の技術では、テスト時間が増加してしまう問題がある。テスト時間が増加した場合、規定されたテストタイム内にテストを終えることできない、或いは、テスト時間の増加によりテストコストが増加するという問題が発生する。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、サイズの異なる複数のメモリアレイと、複数のメモリアレイに対するテストパターンを出力するテストパターン生成回路と、メモリアレイ毎に設けられるアクセスアドレスを変換するメモリインタフェース回路と、を有し、メモリインタフェース回路は、テストパターン生成回路から出力されるテストアドレスをメモリアレイ毎に設定されるシフト量に応じてシフトさせることで、テスト対象のメモリアレイの実際のアドレスに変換する。
【発明の効果】
【０００８】
前記一実施の形態によれば、半導体装置は、テスト時間の抑制とテスト時の消費電力の大きさを任意に設定することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる半導体装置のブロック図である。
【図２】実施の形態１にかかる半導体装置におけるテストパターンの供給経路の第１の例を示す半導体装置のブロック図である。
【図３】実施の形態１にかかる半導体装置におけるテストパターンの供給経路の第２の例を示す半導体装置のブロック図である。
【図４】実施の形態１にかかる半導体装置におけるテストパターンの供給経路の第３の例を示す半導体装置のブロック図である。
【図５】実施の形態１にかかる半導体装置におけるテストパターンの供給経路の第４の例を示す半導体装置のブロック図である。
【図６】実施の形態１にかかる半導体装置におけるメモリＢＩＳＴ回路のブロック図である。
【図７】実施の形態１にかかる半導体装置におけるメモリインタフェース回路のブロック図である。
【図８】実施の形態１にかかる半導体装置におけるアドレスシフト演算器の動作を説明するメモリインタフェース回路のブロック図である。
【図９】実施の形態１にかかる半導体装置におけるテスト対象のメモリアレイに対するメモリ空間と、テスト時のメモリアレイのメモリ空間との関係を説明する図である。
【図１０】実施の形態１にかかる半導体装置におけるテスト対象のメモリアレイの一例を説明する図である。
【図１１】実施の形態１にかかるメモリインタフェース回路を利用しない場合の、半導体装置におけるメモリテストを説明する図である。
【図１２】実施の形態１にかかるメモリインタフェース回路を利用した場合の、半導体装置におけるメモリテストを説明する図である。
【図１３】実施の形態２にかかるアドレスシフト演算器のブロック図である。
【図１４】実施の形態２にかかるアドレスシフト演算器の入出力の値を説明する表である。
【図１５】実施の形態３にかかる半導体装置に対して設定される電力プロファイルの例を示す表である。
【図１６】実施の形態４にかかるオフセット格納レジスタのブロック図である。
【図１７】実施の形態５にかかるテスト回路生成処理の動作を示すフローチャートである。
【図１８】実施の形態５にかかるアドレスシフト設定パターン生成処理の動作を示すフローチャートである。
【図１９】実施の形態５にかかるテスト回路生成プログラム、及び、テストパターン生成プログラムの動作を示すフローチャートである。
【図２０】実施の形態５にかかるユーザー条件に基づくテストパターン生成プログラムの動作を示すフローチャートである。
【図２１】実施の形態５にかかる半導体装置におけるオフセット値の決定方法の詳細な説明をするための図である。
【図２２】実施の形態５にかかる半導体装置におけるオフセット値の決定方法の詳細な説明をするための図である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Central Processing Unit）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１２】
図１に実施の形態１にかかる半導体装置１のブロック図を示す。図１に示すように、実施の形態１にかかる半導体装置１は、外部インタフェース回路１０、ユーザー論理回路１１、メモリＢＩＳＴ回路１２、内蔵メモリ１３、ＪＴＡＧ（Joint Test Action Group）コントローラ１４、リセット制御回路１５、テストモード制御回路１６、ポスト（POST：Power On Self-Test）コントローラ１７、不揮発性メモリ１８を有する。
【００１３】
外部インタフェース回路１０は、半導体装置１の内部と、半導体装置１の外部との間で信号の送受信を行うインタフェース回路である。ユーザー論理回路１１は、ユーザーの要求に応じて設計される論理回路、或いは、ユーザーが導入するプログラムを実行する演算回路である。ユーザー論理回路１１は、内蔵メモリ１３を利用しながら論理回路或いはプログラムに基づき実現される機能を実現する。つまり、ユーザー論理回路１１は、複数のメモリアレイに対するアクセスアドレスを出力して、複数のメモリアレイを利用した処理を実行する。
【００１４】
メモリＢＩＳＴ回路１２は、内蔵メモリ１３をテストするための回路である。メモリＢＩＳＴ回路１２は、ユーザー論理回路１１が内蔵メモリ１３を利用する通常動作モードでは、ユーザー論理回路１１と内蔵メモリ１３との間の信号の送受信を仲介する。一方、内蔵メモリ１３をテストするテスト動作モードでは、メモリＢＩＳＴ回路１２は、ＪＴＡＧコントローラ１４或いは不揮発性メモリ１８からテストプログラムとしてテスト条件設定値を受け取り、内蔵するパターンジェネレータから発生するテストパターン（例えば、アドレス信号、ライトデータ、メモリ制御信号）を用いて内蔵メモリ１３をテストする。また、メモリＢＩＳＴ回路１２は、通常動作モードで動作するか、テスト動作モードで動作するかが、テストモード制御回路１６が出力するテストモード制御信号ＭＢＭＤにより指示される。
【００１５】
内蔵メモリ１３は、複数のメモリアレイが含まれる記憶装置である。メモリアレイは、例えば、ＳＲＡＭ（Static Random Access Memory）等の揮発性メモリである。図１に示す例では、メモリアレイ単位で、“SRAM”の符号を付した。実施の形態１にかかる半導体装置１では、複数のメモリアレイには、格子状に配置されるメモリセルの個数がそれぞれ異なるメモリアレイが含まれる構成であるものとする。つまり、複数のメモリアレイは、それぞれメモリの記憶容量が異なる。
【００１６】
ＪＴＡＧコントローラ１４は、ＩＥＥＥ（Institute of Electrical and Electronics Engineers）規定のステート動作を使用して回路へのテストモード設定を行う方法により、メモリＢＩＳＴ回路１２内のシフトレジスタにアドレスシフト設定パターンを含むテストパターンを設定する。なお、アドレスシフト設定パターンは、実施の形態１にかかるメモリＢＩＳＴ回路１２に特有のパターンであり、詳細は後述する。つまり、実施の形態１にかかる半導体装置１で用いるテストパターンには、テスト時のテストシーケンスを示すテストアドレスに関する情報、テスト時にメモリアレイに書き込むライトデータ、ライトデータに対応する期待値、及び、アドレスシフト設定パターンが少なくとも含まれるものとする。
【００１７】
リセット制御回路１５は、半導体装置１の電源投入を検出してリセット信号を発生させる、或いは、半導体装置１に対して入力されたリセット信号に基づきリセット信号を発生させる。テストモード制御回路１６は、ユーザー論理回路１１によって複数のメモリアレイを利用する通常動作モードと、複数のメモリアレイをテストするテスト動作モードと、切り替えるテストモード制御信号ＭＢＭＤを出力する。また、テストモード制御回路１６は、外部インタフェース回路１０を介して与えられる指示に基づき不揮発性メモリ１８に格納されたテストパターン等の情報をメモリＢＩＳＴ回路１２に与える。ポストコントローラ１７は、リセット制御回路１５が出力するテスト信号に応じて、半導体装置１を含むシステムをブートする前に実施するパワーオンセルフテストを実施するシーケンサーである。不揮発性メモリ１８は、例えば、フラッシュメモリ等の不揮発性メモリである。不揮発性メモリ１８には、例えば、メモリＢＩＳＴ回路で利用されるアドレスシフト設定パターンを含むテストパターン等が格納される。
【００１８】
実施の形態１にかかる半導体装置１では、メモリＢＩＳＴ回路１２に対して、ＪＴＡＧコントローラ１４、リセット制御回路１５、テストモード制御回路１６、ポストコントローラ１７、不揮発性メモリ１８を有することで、メモリＢＩＳＴ回路１２へのテストパターンの与え方に複数の形態をとることができる。例えば、実施の形態１にかかる半導体装置１では４つのテストパターンの与え方が可能である。そこで以下で実施の形態１にかかる半導体装置１のテストパターンの与え方の形態の例について説明する。
【００１９】
図２に実施の形態１にかかる半導体装置１におけるテストパターンの供給経路の第１の例（例えば、第１のテスト動作モード）を示す半導体装置のブロック図を示す。第１の例では、ＪＴＡＧコントローラ１４を外部インタフェース回路１０を介して外部から制御する。そして、第１の例では、ＪＴＡＧコントローラ１４を用いてテストパターンをメモリＢＩＳＴ回路１２に設定する。
【００２０】
図３に実施の形態１にかかる半導体装置１におけるテストパターンの供給経路の第２の例（第２のテスト動作モード）を示す半導体装置のブロック図を示す。第２の例では、リセット制御回路１５がリセット信号を出力したことに応じてポストコントローラ１７を動作させる。このときポストコントローラ１７は不揮発性メモリ１８に格納されているテストパターンをＪＴＡＧコントローラ１４を介してメモリＢＩＳＴ回路１２に与える。
【００２１】
図４に実施の形態１にかかる半導体装置１におけるテストパターンの供給経路の第３の例（例えば、第３のテスト動作モード）を示す半導体装置のブロック図を示す。第３の例では、リセット制御回路１５がリセット信号を出力したことに応じてポストコントローラ１７を動作させる。このときポストコントローラ１７は不揮発性メモリ１８に格納されているテストパターンをメモリＢＩＳＴ回路１２に与える。つまり、第３のテスト動作モードでは、ＪＴＡＧコントローラ１４を利用することなくメモリＢＩＳＴ回路１２にテストパターンを与えることができる。
【００２２】
図５に実施の形態１にかかる半導体装置１におけるテストパターンの供給経路の第４の例（例えば、第４のテスト動作モード）を示す半導体装置のブロック図を示す。第４の例では、リセット制御回路１５がリセット信号を出力したことに応じてテストモード制御回路１６を起動させる。そして、外部インタフェース回路１０を介して外部から与えられる指示に基づき、不揮発性メモリ１８に格納されているテストパターンをメモリＢＩＳＴ回路１２に与える。つまり、第４のテスト動作モードでは、ＪＴＡＧコントローラ１４を利用することなくメモリＢＩＳＴ回路１２にテストパターンを与えることができる。
【００２３】
上述したように、メモリＢＩＳＴ回路１２へのテストパターンの与え方には様々な方法が考えられ、第１の例から第４の例のいずれを採用するかにより半導体装置１に搭載する回路ブロックが変わる。また、複数のテストパターンの供給経路を実現できるように、例えば、第１の例と第３の例を実現できる回路ブロックを搭載しておくことも可能である。
【００２４】
ここで、実施の形態１にかかる半導体装置１では、メモリＢＩＳＴ回路１２の構成に特徴の１つを有する。より具体的には、実施の形態１にかかる半導体装置１では、メモリインタフェース回路２０に設けられるオフセット格納レジスタにテストパターンに含まれるアドレスシフト設定パターンを用いてオフセット値を設定し、このオフセット値により、メモリアレイのテストが実施される時間的なタイミングをずらす。そこで、メモリＢＩＳＴ回路１２の構成について、以下で詳細に説明する。
【００２５】
図６に実施の形態１にかかる半導体装置１におけるメモリＢＩＳＴ回路１２のブロック図を示す。図６では、メモリＢＩＳＴ回路１２と他の回路との接続関係を説明するために、ユーザー論理回路１１、内蔵メモリ１３、ＪＴＡＧコントローラ１４もメモリＢＩＳＴ回路１２と一緒に示した。なお、図６に示す例では、メモリＢＩＳＴ回路１２へのアドレスシフト設定パターンの設定をＪＴＡＧコントローラ１４で行う例を示した。
【００２６】
図６に示すように、メモリＢＩＳＴ回路１２は、複数のメモリインタフェース回路２０と、メモリテストパターン生成回路２１、期待値生成器２２、期待値比較器２３を有する。メモリテストパターン生成回路２１は、複数のメモリアレイのテスト時にアクセスアドレスとしてテストアドレスを生成する。また、メモリテストパターン生成回路２１は、テスト対象のメモリセルに対して書き込みを行うデータ（例えば、“１”又は“０”となる値）、リード／ライト制御信号等を出力する。期待値生成器２２は、テストシーケンスに従い、そのとき実施されているテストにおいて期待される期待値を生成する。期待値比較器２３は、メモリアレイから読み出したリードデータと期待値とを比較してテスト対象のメモリセルの正当性を判断する。なお、メモリＢＩＳＴ回路１２は、他にも一般にメモリＢＩＳＴ回路を構成する要素を有するが、ここでは直接関係しないため省略している。
【００２７】
複数のメモリインタフェース回路２０は、それぞれ、メモリアレイのいずれか１つに対応して設けられる。メモリインタフェース回路２０は、それぞれ、アクセスアドレスに基づき対応するメモリアレイのメモリセルの１つを活性化する。ここで、メモリインタフェース回路２０に入力されるアクセスアドレス及びデータ（ライトデータと制御信号を含む）は、動作モードにより出力先が異なる。例えば、通常動作モードでは、アクセスアドレス及びデータは、ユーザー論理回路１１から出力される。テスト動作モードでは、アクセスアドレス及びデータは、メモリテストパターン生成回路２１から出力される。いずれの回路から出力されたデータを内蔵メモリ１３に出力するかはテストモード制御回路１６が出力するテストモード制御信号ＭＢＭＤの値により切り替えられる。
【００２８】
そして、複数のメモリインタフェース回路２０は、それぞれ、アドレス制御部２０ａを有する。このアドレス制御部２０ａには、オフセット格納レジスタ（図６のＲＥＧ）が含まれる。このオフセット格納レジスタは、複数のメモリインタフェース回路２０を跨いでディジーチェーン接続される。つまり、実施の形態１にかかる半導体装置１では、複数のメモリインタフェース回路２０内のオフセット格納レジスタを用いてシフトレジスタを構成する。ＪＴＡＧコントローラ１４は、アドレスシフト設定パターンをシフト動作によりオフセット格納レジスタに与え、各オフセット格納レジスタにオフセット値を与える。
【００２９】
続いて、メモリインタフェース回路２０についてより詳細に説明する。そこで、図７に実施の形態１にかかる半導体装置１におけるメモリインタフェース回路２０のブロック図を示す。
【００３０】
図７では、ユーザー論理回路１１が出力するライトデータ、制御信号を含む信号をユーザーアクセス信号Ｄａｔａ＿ｕとし、メモリテストパターン生成回路２１が出力するライトデータ、制御信号を含む信号をテストアクセス信号Ｄａｔａ＿ｕとした。また、ユーザー論理回路１１が出力するアクセスアドレスのうちメモリアレイのＸ方向のアドレスを示す信号をユーザーＸアドレスＸａｄｄ＿ｕとし、メモリテストパターン生成回路２１が出力するアクセスアドレスのうちメモリアレイのＸ方向のアドレスを示す信号をテストＸアドレスＸａｄｄ＿ＭＰＧとした。ユーザー論理回路１１が出力するアクセスアドレスのうちメモリアレイのＹ方向のアドレスを示す信号をユーザーＹアドレスＹａｄｄ＿ｕとし、メモリテストパターン生成回路２１が出力するアクセスアドレスのうちメモリアレイのＹ方向のアドレスを示す信号をテストＹアドレスＹａｄｄ＿ＭＰＧとした。また、メモリインタフェース回路２０が対応するメモリアレイに出力するライトデータ、制御信号を含む信号をアクセス信号Ｄａｔａ＿ＭＥＭ、メモリアレイのＸ方向のアドレスを示す信号をＸアドレスＸａｄｄ＿ＭＥＭ、メモリアレイのＹ方向のアドレスを示す信号をテストＹアドレスＹａｄｄ＿ＭＥＭとした。
【００３１】
図７に示すように、メモリインタフェース回路２０は、第１の選択回路（例えば、選択回路３３）、第２の選択回路（例えば、選択回路３６）、第３の選択回路（例えば、選択回路３０）、アドレス制御部２０ａを有する。また、アドレス制御部２０ａは、第１のオフセット格納レジスタ（例えば、オフセット格納レジスタ３１）、第２のオフセット格納レジスタ（例えば、オフセット格納レジスタ３４）、第１のアドレスシフト演算器（例えば、アドレスシフト演算器３２）、第２のアドレスシフト演算器（例えば、アドレスシフト演算器３５）を有する。
【００３２】
選択回路３０は、テストモード制御信号ＭＢＭＤに応じて、通常動作モード時にはユーザーアクセス信号Ｄａｔａ＿ｕを選択し、テスト動作モード時にはテストアクセス信号Ｄａｔａ＿ＭＰＧを選択し、選択し信号をアクセス信号Ｄａｔａ＿ＭＥＭとして出力する。
【００３３】
テストアドレスのうちテスト対象のメモリアレイのＸ方向のアドレスを第１のＸアドレスとし、テスト対象のメモリアレイの実際のアドレスを第２のＸアドレスとした場合、オフセット格納レジスタ３１及びアドレスシフト演算器３２は、次のような機能を有する。オフセット格納レジスタ３１は、アドレスシフト演算器３２における第１のＸアドレスと第２のＸアドレスとの間のシフト量を指定する第１のオフセット値を格納する。アドレスシフト演算器３２は、第１のオフセット値に基づくアドレスシフト処理により、第１のＸアドレスを第２のＸアドレスに変換する。選択回路３３は、テストモード制御信号ＭＢＭＤに応じて、通常動作モード時には第３のＸアドレス（例えば、ユーザーＸアドレスＸａｄｄ＿ｕ）を選択し、テスト動作モード時にはアドレスシフト演算器３２が出力する第２のＸアドレスを選択し、選択し信号をＸアドレスＸａｄｄ＿ＭＥＭとして出力する。
【００３４】
テストアドレスのうちテスト対象のメモリアレイのＹ方向のアドレスを第１のＹアドレスとし、テスト対象のメモリアレイの実際のアドレスを第２のＹアドレスとした場合、オフセット格納レジスタ３４及びアドレスシフト演算器３５は、次のような機能を有する。オフセット格納レジスタ３４は、アドレスシフト演算器３５における第１のＹアドレスと第２のＹアドレスとの間のシフト量を指定する第２のオフセット値を格納する。アドレスシフト演算器３５は、第２のオフセット値に基づくアドレスシフト処理により、第１のＹアドレスを第２のＹアドレスに変換する。選択回路３６は、テストモード制御信号ＭＢＭＤに応じて、通常動作モード時には第１のＹアドレス（例えば、ユーザーＹアドレスＹａｄｄ＿ｕ）を選択し、テスト動作モード時にはアドレスシフト演算器３２が出力する第２のＹアドレスを選択し、選択し信号をＹアドレスＹａｄｄ＿ＭＥＭとして出力する。
【００３５】
そして、実施の形態１にかかる半導体装置１では、複数のメモリインタフェース回路２０内のオフセット格納レジスタ３１及びオフセット格納レジスタ３４をディジーチェーン接続することで、シフトレジスタ回路を構成する。このシフトレジスタ回路を構成するオフセット格納レジスタ３１とオフセット格納レジスタ３４は、外部からシフト量を示すシフト量データ（例えば、オフセット値）をオフセット格納レジスタの順序に応じて並べたアドレスシフト設定パターンがシフト動作により与えられる。
【００３６】
ここで、実施の形態１にかかるアドレスシフト演算器３２、３５の動作について説明する。そこで、図８に実施の形態１にかかる半導体装置１におけるアドレスシフト演算器３２、３５の動作を説明するメモリインタフェース回路２０のブロック図を示す。なお、図８は、動作の一例として、Ｘ方向に６、Ｙ方向に４の大きさを有するメモリアレイを、Ｘ方向に８、Ｙ方向に８の大きさを有する最大アドレス空間内でシフトする動作を一例として示したものである。
【００３７】
図８に示すように、インタフェース回路２０では、オフセット格納レジスタ３１に第１のオフセット値（例えば、Ｘアドレスオフセット値Ｘ＿ＯＦＦ）が格納される。図８に示す例では、Ｘアドレスオフセット値Ｘ＿ＯＦＦは２ビットで表される値で有り、オフセット格納レジスタ３１には値“２”が格納される。
【００３８】
そして、アドレスシフト演算器３２には、第１のＸアドレス（例えば、テストＸアドレスＸａｄｄ＿ＭＰＧ）とＸアドレスオフセット値Ｘ＿ＯＦＦとが入力される。アドレスシフト演算器３２は、テストＸアドレスＸａｄｄ＿ＭＰＧからＸアドレスオフセット値Ｘ＿ＯＦＦを引いた値のうち０以上の値となる値を第２のＸアドレス（例えば、ＸアドレスＸａｄｄ＿ＭＥＭ）として出力する。
【００３９】
インタフェース回路２０では、オフセット格納レジスタ３４に第２のオフセット値（例えば、Ｙアドレスオフセット値Ｙ＿ＯＦＦ）が格納される。図８に示す例では、Ｙアドレスオフセット値Ｘ＿ＯＦＦは３ビットで表される値で有り、オフセット格納レジスタ３４には値“４”が格納される。
【００４０】
そして、アドレスシフト演算器３４には、第１のＹアドレス（例えば、テストＹアドレスＹａｄｄ＿ＭＰＧ）とＹアドレスオフセット値Ｙ＿ＯＦＦとが入力される。アドレスシフト演算器３４は、テストＹアドレスＹａｄｄ＿ＭＰＧからＹアドレスオフセット値Ｙ＿ＯＦＦを引いた値のうち０以上の値となる値を第２のＹアドレス（例えば、ＹアドレスＹａｄｄ＿ＭＥＭ）として出力する。
【００４１】
つまり、Ｘアドレスオフセット値Ｘ＿ＯＦＦは、ＸアドレスＸａｄｄ＿ＭＥＭが、テストＸアドレスＸａｄｄ＿ＭＰＧのアドレス値以下のアドレス値となるように定義されるものである。また、Ｙアドレスオフセット値Ｙ＿ＯＦＦは、ＹアドレスＹａｄｄ＿ＭＥＭが、テストＹアドレスＹａｄｄ＿ＭＰＧのアドレス値以下のアドレス値となるように定義されるものである。また、Ｘアドレスオフセット値Ｘ＿ＯＦＦとＹアドレスオフセット値Ｙ＿ＯＦＦは、複数のメモリインタフェース回路２０毎に独立して値が設定されるものである。
【００４２】
この図８で示した動作について、メモリ空間の概念を用いて説明する。そこで、図９に実施の形態１にかかる半導体装置１におけるテスト対象のメモリアレイに対するメモリ空間と、テスト時のメモリアレイのメモリ空間との関係を説明する図を示す。なお、図９においても、メモリアレイは、Ｘ方向に６、Ｙ方向に４の大きさを有し、最大アドレス空間は、Ｘ方向に８、Ｙ方向に８の大きさを有するものとする。また、図９では、テスト対象メモリ空間は、テスト対象のメモリアレイの実際のアドレス空間（あるいは物理アドレス）を表し、テスト時メモリ空間は、実際にメモリアクセスが発生するテストアドレスを表すものとする。
【００４３】
図９に示すように、テスト対象のメモリ空間は、メモリインタフェース回路２０によるシフト処理を行わない場合、テスト開始アドレスＳＴ＿ＡのＸ方向のアドレス値とＹ方向のアドレス値を“０，０”として、Ｘ方向に６、Ｙ方向４の大きさとなる。しかし、図８に示す例に基づきメモリインタフェース回路２０がアクセスアドレスをシフトさせた場合、Ｘ方向のテストアドレスが２つ小さくなる方向にシフトされ、Ｙ方向のテストアドレスが４つ小さくなる方向にシフトされる。そのため、実際にテスト対象のメモリアレイがテストされるタイミングは、テストアドレスのＸアドレスが２〜７、Ｙアドレスが４〜７となる期間となる。つまり、テスト時メモリ空間は、Ｘ方向に２つ、Ｙ方向に４つ、シフトしたメモリ空間にシフトした状態となる。
【００４４】
ここで、オフセット格納レジスタのビット数の決定方法について説明する。実施の形態１にかかる半導体装置１では、１つのテストパターンでテストする複数のメモリアレイのうち最大のＸ方向の大きさを有するメモリアレイと、最大のＹ方向の大きさを有するメモリアレイと、が収まる大きさの最大メモリ空間を準備する。そして、この最大メモリ空間からテスト対象のメモリアレイの全セルがはみ出さない範囲でメモリアレイのシフト量（つまり、オフセット値）を設定する。そのため、オフセット値は、メモリアレイ毎の最大シフト量に応じて最大値が決まる。図８及び図９に示す例では、Ｘ方向のシフト量は最大値が２となるため、オフセット格納レジスタ３１には、２を表現できる２ビットの大きさの容量が指定され、２ビットを用いて２を指定するＸアドレスオフセット値Ｘ＿ＯＦＦが格納される。また、図８及び図９に示す例では、Ｙ方向のシフト量は最大値が４となるため、オフセット格納レジスタ３４には、４を表現できる３ビットの大きさの容量が指定され、３ビットを用いて４を指定するＹアドレスオフセット値Ｙ＿ＯＦＦが格納される。
【００４５】
このように、オフセット格納レジスタ及びオフセット値のビット数を対応するメモリアレイのテスト時のシフト量の最大値に応じて決定することで、オフセット格納レジスタを構成する回路を最小化することができる。また、オフセット値のビット数を削減すことでアドレスシフト設定パターンの設定時間を短縮することができる。
【００４６】
続いて、メモリインタフェース回路２０を含むメモリＢＩＳＴ回路１２を有する実施の形態１にかかる半導体装置１のメモリテストの動作について説明する。まず、図１０に実施の形態１にかかる半導体装置におけるテスト対象のメモリアレイの一例を説明する図を示す。図１０に示す例は、図１１、図１２の説明で用いるメモリアレイを説明するものである。
【００４７】
図１０に示すように、以下の説明では、メモリＡ〜メモリＣを用いる。メモリＡは、６４個のメモリセルがＸ方向に８、Ｙ方向に８のメモリ空間に配置されるメモリアレイである。メモリＢは、２４個のメモリセルがＸ方向に６、Ｙ方向に４のメモリ空間に配置されるメモリアレイである。メモリＣは、１６個のメモリセルがＸ方向に８、Ｙ方向に２のメモリ空間に配置されるメモリアレイである。また、以下の説明では、一例として、メモリＡ〜メモリＣは、いずれも最もセル番号が小さいメモリセルから昇順に番号が進むようにテストが行われる例について説明する。
【００４８】
メモリＡ〜メモリＣは、メモリインタフェース回路２０によるアドレスシフト処理を行わない場合、いずれもテスト開始アドレスＳＴ＿ＡのＸ方向のアドレス値とＹ方向のアドレス値を“０、０”とするものである。そのため、メモリＡ〜メモリＣは、メモリ空間としては、図１０のようなメモリ空間に配置される。具体的には、メモリＡ〜メモリＣは、同時に活性化される数は３となるメモリ空間に配置されることになる。
【００４９】
続いて、図１１に実施の形態１にかかるメモリインタフェース回路２０を利用しない場合の、半導体装置１におけるメモリテストを説明する図を示す。図１１の上図に示すように、メモリインタフェース回路２０を用いない場合、メモリＡ〜メモリＣは、メモリ空間としては図１０のメモリ空間と同じ位置に配置される。
【００５０】
そして、メモリインタフェース回路２０を利用しない場合、図１１の下図に示すように、同時テストされるメモリセルの数が３つになる期間に半導体装置１の最大許容電力を超える。一方、テスト時間は、最大のセル数を有するメモリＡのテストの完了と同時にメモリＡ〜メモリＣの全てのテストが完了する。
【００５１】
続いて、図１２に実施の形態１にかかるメモリインタフェース回路２０を利用した場合の、半導体装置１におけるメモリテストを説明する図を示す。図１２に示す例では、実施の形態１にかかるメモリインタフェース回路２０を利用してメモリＢのテスト時のメモリ空間をＹ方向に４つシフトさせ、メモリＣのテスト時のメモリ空間をＸ方向に６つシフトさせる。これにより、図１２の上図に示すように、実施の形態１にかかる半導体装置１は、テスト時のメモリ空間において、最大のメモリ空間を有するメモリＡのメモリ空間の範囲内において、同時テストセル数を２に抑えたテストを実施する。
【００５２】
そして、図１２の下図に示すタイミングチャートように、実施の形態１にかかる半導体装置１では、メモリインタフェース回路２０を用いることで、消費電力を最大許容電力以下に抑制する同時テストセル数を維持しながら、テスト時間をメモリＡのテストが完了するまでの期間に抑制することができる。
【００５３】
上記説明より、実施の形態１にかかる半導体装置１は、メモリインタフェース回路２０において、メモリテストパターン生成回路２１が出力するテストアドレスのアドレス値をメモリアレイ毎に所定のシフト量でシフトさせて、実際にメモリアレイに与えるアドレス値を生成する。具体的には、実施の形態１にかかる半導体装置１では、メモリインタフェース回路２０内のオフセット格納レジスタ３１にＸアドレスオフセット値Ｘ＿ＯＦＦを格納し、メモリテストパターン生成回路２１が出力するテストＸアドレスＸａｄｄ＿ＭＰＧをＸアドレスオフセット値Ｘ＿ＯＦＦに応じたシフト量でシフトさせてＸアドレスＸａｄｄ＿ＭＥＭを生成する。また、実施の形態１にかかる半導体装置１では、メモリインタフェース回路２０内のオフセット格納レジスタ３４にＹアドレスオフセット値Ｙ＿ＯＦＦを格納し、メモリテストパターン生成回路２１が出力するテストＹアドレスＹａｄｄ＿ＭＰＧをＹアドレスオフセット値Ｙ＿ＯＦＦに応じたシフト量でシフトさせてＹアドレスＹａｄｄ＿ＭＥＭを生成する。
【００５４】
つまり、実施の形態１にかかる半導体装置１は、テスト時のメモリ空間におけるメモリアレイの位置を実際のメモリアレイのメモリ空間の位置からシフトさせることができる。また、実施の形態１にかかる半導体装置１は、メモリアレイ毎にシフト量を独立して設定する。これにより、実施の形態１にかかる半導体装置１は、同時にテストされるセル数を実際のメモリアレイのアドレスにかかわらずテストタイミング毎に調整することができる。また、テスト時の最大メモリ空間を、テスト対象のメモリアレイの最大サイズとすることで、最大サイズのメモリアレイのテストを完了する時間内に、他のメモリアレイのテストを完了することができる。このようなことから、実施の形態１にかかる半導体装置１では、テスト時の消費電力を許容最大電力以下に抑制しながら、メモリアレイのテスト時間を抑制することができる。
【００５５】
実施の形態２
実施の形態２では、アドレスシフト演算器の別の例について説明する。なお、実施の形態２の説明では、実施の形態１にて説明した構成要素と同じ構成要素については、実施の形態１で用いた符号と同じ符号を付して説明を省略する。
【００５６】
図１３に実施の形態２にかかるアドレスシフト演算器４０のブロック図を示す。なお、図１３に示す例では、アドレスシフト演算器４０の回路構成をより明確にするために、オフセット格納レジスタ４１、４２、アドレス無効値レジスタ４３を示した。オフセット格納レジスタ４１、４２は、実施の形態１で説明したオフセット格納レジスタ３１に含まれる１つのビットを格納するレジスタである。オフセット格納レジスタ４１には、Ｘアドレスオフセット値Ｘ＿ＯＦＦの１ビット目の値が格納され、オフセット格納レジスタ４２にはＸアドレスオフセット値Ｘ＿ＯＦＦの０ビット目の値が格納される。また、アドレス無効値レジスタ４３は、アドレスシフト演算器４０がアドレス値として無効な値として定義される値を格納するレジスタである。
【００５７】
図１３に示すように、アドレスシフト演算器４０は、ＥＸＯＲ回路５１、５２、ＡＮＤ回路５３、選択回路５４を有する。ＥＸＯＲ回路５１は、Ｘアドレスオフセット値Ｘ＿ＯＦＦの１ビット目の値とテストＸアドレスＸａｄｄ＿ＭＰＧの２ビット目の値との排他的論理和演算結果を出力する。ＥＸＯＲ回路５２は、Ｘアドレスオフセット値Ｘ＿ＯＦＦの０ビット目の値とテストＸアドレスＸａｄｄ＿ＭＰＧの１ビット目の値との排他的論理和演算結果を出力する。
【００５８】
ＡＮＤ回路５３は、ＥＸＯＲ回路５１の出力値とＥＸＯＲ回路５２の出力値との論理積演算結果に基づき選択信号ＧＳＥＬの値を切り替える。選択回路５４は、選択信号ＧＳＥＬの値が“０”である場合は、アドレス無効値レジスタ４３に格納された無効アドレス値（例えば、０００）を選択して、選択した値をＸアドレスＸａｄｄ＿ＭＥＭとして出力する。また、選択回路５４は、選択信号ＧＳＥＬの値が“１”である場合は、ＸアドレスＸａｄｄ＿ＭＥＭの０ビット目の値を選択し、最下位ビットとする３ビットの値（例えば、０００、００１）をＸアドレスＸａｄｄ＿ＭＥＭとして出力する。
【００５９】
なお、図１３に示したアドレスシフト演算器と同じ構成は、オフセット格納レジスタ３４としても用いることが出来る。
【００６０】
つまり、実施の形態２にかかるメモリインタフェース回路２０は、オフセット格納レジスタ３１、アドレスシフト演算器３２、オフセット格納レジスタ３４、アドレスシフト演算器３５をそれぞれ、第１のオフセット格納レジスタ、第１のアドレスシフト演算器、第２のオフセット格納レジスタ、第２のアドレスシフト演算器とした場合、以下のような構成となる。
【００６１】
第１のオフセット格納レジスタ（例えば、オフセット格納レジスタ３１）は、第１のＸアドレス（例えば、テストＸアドレスＸａｄｄ＿ＭＰＧ）のビット数よりも小さなＮ（Ｎは整数）ビットの大きさを有するオフセット値を第１のオフセット値（例えばＸアドレスオフセット値Ｘ＿ＯＦＦ）として格納する。
【００６２】
第１のアドレスシフト演算器（例えば、アドレスシフト演算器４０）は、複数の第１の排他的論理和回路（例えば、ＥＸＯＲ回路５１、５２）と、第１のゲート回路（例えば、ＡＮＤ回路５３、選択回路５４からなる回路）とを有する。ＥＸＯＲ回路５１、ＥＸＯＲ回路５２は、Ｘアドレスオフセット値Ｘ＿ＯＦＦのＮビットの各値と、テストＸアドレスＸａｄｄ＿ＭＰＧの上位Ｎビットの各値と、の排他的論理和をそれぞれ演算する。ＡＮＤ回路５３及び選択回路５４により構成される回路は、複数の第１の排他的論理和回路の出力が全て１になったことに応じて、テストＸアドレスＸａｄｄ＿ＭＰＧのうち上位Ｎビットを除く値を、第３のＸアドレス（例えば、ＸアドレスＸａｄｄ＿ＭＥＭ）して出力する。
【００６３】
第２のオフセット格納レジスタは、テストＹアドレスＹａｄｄ＿ＭＰＧのビット数よりも小さなＭ（Ｍは整数）ビットの大きさを有するオフセット値を第２のオフセット値（例えば、Ｙアドレスオフセット値Ｙ＿ＯＦＦ）として格納する。
【００６４】
第２のアドレスシフト演算器（例えば、アドレスシフト演算器４０）は、複数の第２の排他的論理和回路（例えば、ＥＸＯＲ回路５１、５２）と、第２のゲート回路（例えば、ＡＮＤ回路５３、選択回路５４からなる回路）とを有する。ＥＸＯＲ回路５１、ＥＸＯＲ回路５２は、Ｙアドレスオフセット値Ｙ＿ＯＦＦのＭビットの各値と、テストＹアドレスＸａｄｄ＿ＭＰＧの上位Ｎビットの各値と、の排他的論理和をそれぞれ演算する。ＡＮＤ回路５３及び選択回路５４により構成される回路は、複数の第２の排他的論理和回路の出力が全て１になったことに応じて、テストＹアドレスＹａｄｄ＿ＭＰＧのうち上位Ｍビットを除く値を、第３のＹアドレス（例えば、ＹアドレスＸａｄｄ＿ＭＥＭ）して出力する。
【００６５】
続いて、図１３に示したアドレスシフト演算器の入出力値に基づき実施の形態２にかかるアドレスシフト演算器４０の動作について説明する。そこで、図１４に実施の形態２にかかるアドレスシフト演算器４０の入出力の値を説明する表を示す。なお、図１４に示す表はＸ方向のアドレス変換に関するものであるが、図１４に示した表と同様のシフト処理はＹ方向のアドレス変換についても適用可能である。また、図１４に示す例では、２の１乗、つまりシフト量が２の倍数とする例である
【００６６】
図１４に示すように、アドレスシフト演算器４０は、Ｘ方向のシフト量を６とする場合にはＸアドレスオフセット値Ｘ＿ＯＦＦとして、値が６〜７となるテストＸアドレスＸａｄｄ＿ＭＰＧの上位２ビットの逆の値となる“００”を設定する。この場合、テストＸアドレスＸａｄｄ＿ＭＰＧとして“１１０”又は“１１１”が入力された場合にＸアドレスＸａｄｄ＿ＭＥＭとして“０００”又は“００１”を出力する。
【００６７】
また、アドレスシフト演算器４０は、Ｘ方向のシフト量を４とする場合にはＸアドレスオフセット値Ｘ＿ＯＦＦとして、値が４〜５となるテストＸアドレスＸａｄｄ＿ＭＰＧの上位２ビットの逆の値となる“０１”を設定する。この場合、テストＸアドレスＸａｄｄ＿ＭＰＧとして“１００”又は“１０１”が入力された場合にＸアドレスＸａｄｄ＿ＭＥＭとして“０００”又は“００１”を出力する。
【００６８】
また、アドレスシフト演算器４０は、Ｘ方向のシフト量を２とする場合にはＸアドレスオフセット値Ｘ＿ＯＦＦとして、値が２〜３となるテストＸアドレスＸａｄｄ＿ＭＰＧの上位２ビットの逆の値となる“１０”を設定する。この場合、テストＸアドレスＸａｄｄ＿ＭＰＧとして“０１０”又は“０１１”が入力された場合にＸアドレスＸａｄｄ＿ＭＥＭとして“０００”又は“００１”を出力する。
【００６９】
また、アドレスシフト演算器４０は、Ｘ方向のシフト量を０とする場合にはＸアドレスオフセット値Ｘ＿ＯＦＦとして、値が０〜１となるテストＸアドレスＸａｄｄ＿ＭＰＧの上位２ビットの逆の値となる“１１”を設定する。この場合、テストＸアドレスＸａｄｄ＿ＭＰＧとして“０００”又は“００１”が入力された場合にＸアドレスＸａｄｄ＿ＭＥＭとして“０００”又は“００１”を出力する。
【００７０】
上記説明より、実施の形態２にかかるアドレスシフト演算器４０を採用した半導体装置では、メモリアレイのテストタイミングのシフト量が２、４、８等の２のｎ乗倍の値に限定されるものの、回路規模を削減することができる。
【００７１】
実施の形態３
実施の形態３では、オフセット格納レジスタ３１、オフセット格納レジスタ３４に与えるＸアドレスオフセット値Ｘ＿ＯＦＦ及びＹアドレスオフセット値Ｙ＿ＯＦＦの種類について説明する。そこで、図１５に実施の形態３にかかる半導体装置に対して設定される電力プロファイルの例を示す表を示す。
【００７２】
図１５に示す例では、メモリのテスト期間中の消費電力の遷移プロファイル毎に４つのプロファイルを示した。第１の電力プロファイルでは、テスト期間中の電力変化が出来るだけ少なくなるように遷移させることを特徴とするプロファイルである。第２の電力プロファイルでは、テスト期間の後半に消費電力が増加するように消費電力を遷移させるプロファイルである。第３の電力プロファイルでは、テスト期間の前半に消費電力が増加するように消費電力を遷移させるプロファイルである。第４の電力プロファイルでは、テスト期間中に消費電力が許容消費電力以上になる過負荷試験を行うためのプロファイルである。
【００７３】
そして、第１の電力プロファイルから第４の電力プロファイルでは、それぞれメモリアレイに対するシフト量が規定される。そして、各電力プロファイルに対して規定されているメモリアレイのシフト量を用いてアドレスシフト設定パターンを生成する。そして、生成したテストパターンから選択した１つのアドレスシフト設定パターンをオフセット格納レジスタ３１及びオフセット格納レジスタ３４を含むシフトレジスタ回路に与えることで、実施の形態３にかかる半導体装置は、各電力プロファイルに基づくテストを行うことが可能になる。
【００７４】
また、各電力プロファイルを不揮発性メモリ１８に格納しておくことで、半導体装置を出荷後に複数の電力プロファイルに基づくテストを実施することができる。
【００７５】
実施の形態４
実施の形態４では、オフセット格納レジスタ３１、３４として用いる回路の例について説明する。なお、実施の形態４の説明では、実施の形態１で説明した構成要素と同じ構成要素については実施の形態１と同じ符号を付して説明を省略する。
【００７６】
図１６に実施の形態４にかかるオフセット格納レジスタのブロック図を示す。図１６に示すように、実施の形態４にかかるオフセット格納レジスタは、リセット用オフセット値格納レジスタ６１、選択回路６２、Ｄフリップフロップ６３、インバータ６４、ＳＲラッチ６５を有する。
【００７７】
リセット用オフセット値格納レジスタ６１は、不揮発性メモリである。リセット用オフセット値格納レジスタ６１には、リセット用オフセット値ＯＦＦ＿ＲＳＴが格納される。選択回路６２は、リセット信号がリセット状態（例えば、ロウレベル）を示す場合にはリセット用オフセット値格納レジスタ６１に格納されたリセット用オフセット値ＯＦＦ＿ＲＳＴを選択し、リセット信号がリセット解除状態（例えば、ハイレベル）を示す場合にはアドレスシフト設定パターンを選択する。
【００７８】
Ｄフリップフロップ６３は、クロック信号の立ち上がりエッジが入力された際にデータ入力端子Ｄに入力されている信号の値を次のクロック信号の立ち上がりエッジが入力されるまでの期間、保持するとともに出力端子Ｑから出力する。インバータ６４は、リセット信号を反転させて出力する。ＳＲラッチ６５は、セット端子Ｓに立ち上がりエッジが入力されたことに応じてハイレベルを出力端子Ｑから出力し、リセット端子Ｒに立ち上がりエッジが入力されたことに応じて出力端子Ｑの論理レベルをロウレベルとする。なお、Ｄフリップフロップ６３の出力信号は、次段のオフセット格納レジスタに与えるテストパターン信号となる。また、インバータ６４の出力信号は、アドレスシフト演算器に入力される。
【００７９】
なお、図１６で示したオフセット格納レジスタはリセット用オフセット値を有するものであるが、リセット用オフセット値を用いない場合、オフセット格納レジスタ３１、３４は、Ｄフリップフロップ６３のみで構成することができる。
【００８０】
図１６に示した実施の形態４にかかるオフセット格納レジスタは、半導体装置がリセット処理を行っている期間にリセット用オフセット値格納レジスタ６１に格納されたリセット用オフセット値ＯＦＦ＿ＲＳＴをＳＲラッチ６５によりアドレスシフト演算器に与える。つまり、実施の形態４にかかるオフセット格納レジスタを採用した半導体装置では、オフセット格納レジスタ３１及びオフセット格納レジスタ３４は、それぞれ、リセット信号に応じて予め決められたリセット用オフセット値を保持し、リセット信号がアクティブ状態となったことに応じてリセット用オフセット値を自回路が出力するオフセット値とする。
【００８１】
上記構成により、実施の形態４にかかる半導体装置は、リセット処理においてはリセット用オフセット格納レジスタ６１に格納したリセット用オフセット値を用いることでテストパターンとして設定することなく、オフセット値をアドレスシフト演算器に与えることができる。これにより、実施の形態４にかかる半導体装置は、リセット処理後にオフセット値を設定するのに要する時間を短縮することができる。また、リセット用オフセット値として、消費電力を抑制する電力プロファイルに基づくオフセット値を設定しておくことで、リセット処理に起因してユーザー論理回路１１等が他の回路が同時期に多く動作することで消費電力が増加する傾向にあるリセット処理の期間においても電力超過を生じることなくメモリアレイのテストを実施することができる。
【００８２】
実施の形態５
実施の形態５では、上記実施の形態で説明したメモリＢＩＳＴ回路１２の組み込み方法とテストパターンの生成方法について説明する。なお、実施の形態５の説明においても、上記実施の形態で説明した構成要素と同じ構成要素については、上記実施の形態と同じ符号を付して説明を省略する。
【００８３】
実施の形態５で説明するメモリＢＩＳＴ回路１２の組み込み処理及びテストパターン生成処理は、テスト回路生成プログラム及びテストパターン生成プログラムを用いて行う。このテスト回路生成プログラム及びテストパターン生成プログラムは、プログラムを実行するＣＰＵ等の演算装置と、プログラムの実行で用いられるメモリ、プログラムを格納するハードディスク、ユーザーインタフェースを表示する表示装置、キーボード等の入力装置を備えるコンピュータで実行されるものとする。
【００８４】
上記実施の形態で説明したメモリＢＩＳＴ回路１２を有する半導体装置内に組み込む場合、ユーザー論理回路１１等の回路情報が記述された回路情報にメモリＢＩＳＴ回路１２を組み込むメモリＢＩＳＴ組み込み処理を行う。そこで、図１７に実施の形態５にかかるテスト回路生成処理の動作を示すフローチャートを示す。なお、以下の説明では、アドレス制御部２０ａが組み込み対象回路として登場するが、このアドレス調整部２０ａは、実施の形態１で説明したオフセット格納レジスタ３１、アドレスシフト演算器３２、オフセット格納レジスタ３４、アドレスシフト演算器３５を含む回路である。
【００８５】
図１７に示すように、メモリＢＩＳＴ組み込み処理では、まず、対象チップのメモリＢＩＳＴ時の消費電力の確認を行う（ステップＳ１）。このステップＳ１の消費電力確認処理では、Ｘアドレス或いはＹアドレスとして共通のアドレス値を利用でき、かつ、消費電力がある程度の範囲に収まるメモリアレイを１つのグループとし、このグループ毎に消費電力の見積もりを行う。
【００８６】
続いて、ステップＳ１において算出したグループ毎の消費電力が基準値（例えば、許容最大電力）よりも大きいかいなかを判断する（ステップＳ２）。このステップＳ２の判断において、消費電力が基準値よりも大きなグループに対してはアドレス制御部２０ａを組み込むための処理を行う（ステップＳ５）。一方、消費電力が基準値以下のグループに対してはアドレス制御部２０ａを組み込むか否かを判断する（ステップＳ３）。ステップＳ３の処理において、アドレス制御部２０ａを組み込まないと判断した場合（ステップＳ３のＮＯの枝）、アドレス制御部２０ａがないメモリＢＩＳＴ回路１２を回路情報に組み込む（ステップＳ４）。また、ステップＳ３の処理において、アドレス制御部２０ａを組み込むと判断した場合（ステップＳ３のＹＥＳの枝）、ステップＳ５のアドレス制御部２０ａを組み込むための処理を行う（ステップＳ５）。
【００８７】
ステップＳ５の処理では、アドレス制御部２０ａをどのメモリアレイに対応して設けるのか、アドレス制御部２０ａで変換するテストアドレスのビット数を何ビットとするのか等が決定される。
【００８８】
続いて、アドレス制御部２０ａのオフセット格納レジスタ３１及びオフセット格納レジスタ３４に格納するオフセット値の算出処理を行う（ステップＳ６）。次いで、リセット用オフセット値を用いるのか否を判断する（ステップＳ７）。このステップＳ７においてリセット用オフセット値を用いないと判断された場合、実施の形態４の図１６で説明したオフセット格納レジスタをメモリＢＩＳＴ回路１２に組み込む（ステップＳ９）。一方、このステップＳ７においてリセット用オフセット値を用いると判断された場合、リセット用オフセット格納レジスタ６１等のリセット用オフセット値を用いるための回路を含まないオフセット格納レジスタをメモリＢＩＳＴ回路１２に組み込む（ステップＳ８）。
【００８９】
実施の形態５では、このような処理を経て、メモリＢＩＳＴ回路１２の構成を決定する。そして、メモリＢＩＳＴ回路１２の構成が決定した後にテストパターンの１つとしてメモリＢＩＳＴ回路１２に与えるアドレスシフト設定パターンの生成を行う。そこで、図１８に実施の形態５にかかるアドレスシフト設定パターン生成処理の動作を示すフローチャートを示す。
【００９０】
図１８に示すようにアドレスシフト設定パターンの生成処理では、まず、図１７で説明した処理フローに従ってチップに実装されたアドレス制御部２０ａの構成を確認する（ステップＳ１１）。より具体的には、ステップＳ１１の確認処理では、オフセット格納レジスタ３１、３４のビット数、対応するメモリアレイの大きさ等の情報を取得する。
【００９１】
次いで、アドレスシフト設定パターン生成処理では、メモリテストの諸条件を設定する（ステップＳ１２）。このステップＳ１２では、例えば、実施の形態３で説明した電力プロファイル等の条件を設定する。その後、アドレスシフト設定パターン生成処理では、オフセット値を算出する（ステップＳ１３）。
【００９２】
そして、ステップＳ１３で計算したオフセット値を適用した場合のメモリテストの消費電力を算出し、算出した消費電力がステップＳ１２で設定した諸条件を満たすか否かを検討する（ステップＳ１４）。そして、ステップＳ１４において、ステップＳ１３で算出したオフセット値によるテスト時の動作状態が諸条件を満たさないと判断された場合（ステップＳ１４のＮＯの枝）、オフセット値の算出に用いる条件を見直す（ステップＳ１５）。ステップＳ１５では、例えば、電力プロファイルにより規定される消費電力の推移条件をステップＳ１２で設定された諸条件の範囲内で見直す。そして、ステップＳ１５で見直した条件に基づき再度ステップＳ１３のオフセット値の算出処理を行う。一方、ステップＳ１４において、ステップＳ１３で算出したオフセット値によるテスト時の動作状態が諸条件を満たすと判断した場合（ステップＳ１４のＹＥＳの枝）、アドレスシフト設定パターン生成処理を終了する。
【００９３】
図１７及び図１８で示した処理フローは、メモリＢＩＳＴ回路１２及びアドレスシフト設定パターンの生成手順を説明するものであるが、実際には、メモリＢＩＳＴ回路１２を生成する回路設計プログラムのＤＦＴ（Design For Test）機能（例えば、テスト回路生成プログラム）を用いて生成されるものである。
【００９４】
そこで、回路設計プログラムのＤＦＴ処理における処理手順を示して、メモリＢＩＳＴ回路１２及びアドレスシフト設定パターンを含むテストパターンを生成するプログラムについて説明する。図１９に実施の形態５にかかるテスト回路生成プログラムの動作を示すフローチャートを示す。
【００９５】
図１９に示すように、テスト回路生成プログラムによりＤＦＴ処理を開始すると、テスト回路生成プログラムは、まず、オフセット格納レジスタの構成を算出する（ステップＳ２１）。このステップＳ２１の処理では、半導体装置のテスト回路以外の回路の素子接続情報となるネットリストと、半導体装置で用いられるクロックの分配情報及びタイミング情報を方組むクロック情報、半導体装置の内蔵メモリ１３に搭載されるメモリアレイのサイズ等を記述したメモリデータを読み込む。そして、ステップＳ２１の処理では、読み込んだ情報を解析して、メモリＢＩＳＴ回路１２内のアドレス制御部２０ａの有無及び必要個数を算出する。つまり、ステップＳ２１の処理では、図１７で示したステップＳ１〜Ｓ３、Ｓ５の処理が行われる。そして、ステップＳ２１の処理が完了したことに伴い、オフセット格納レジスタの構成が記述されるファイルが生成される。
【００９６】
続いて、テスト回路生成プログラムは、オフセット格納レジスタに格納するオフセット値を算出する（ステップＳ２２）。このステップＳ２２の処理では、メモリデータと、オフセット値を、ＪＴＡＧコントローラ１４を用いて入力するのか、不揮発性メモリ１８に保持した状態でメモリＢＩＳＴ回路１２に与えるのか等を規定したオフセット設定ルール仕様と、メモリアレイをどのような電力プロファイルでテストするかを規定するメモリテストアルゴリズムと、オフセット格納レジスタの構成情報とを読み込む。そして、ステップＳ２２の処理では、読み込んだ情報を用いてオフセット値を算出する。このオフセット値算出処理は、図１７のステップＳ６〜Ｓ９の処理である。このステップＳ２２では、メモリテストアルゴリズム毎にオフセット値を生成する。また、リセット用オフセット値を用いる場合は、このステップＳ２２において、このリセット用オフセット値を生成する。
【００９７】
続いて、テスト回路生成プログラムは、メモリＢＩＳＴ回路１２の具体的な回路構成を規定するメモリＢＩＳＴ回路生成処理を行う（ステップＳ２３）。このステップＳ２３の処理では、ネットリスト、クロック情報及びオフセット格納レジスタの構成情報が読み込む。そして、ステップＳ２３では、読み込んだ情報を元にしてメモリＢＩＳＴ回路１２の具体的な回路を合成して、メモリＢＩＳＴ回路情報（図１９のＭＢＩＳＴ回路）と、メモリＢＩＳＴ回路１２を用いたテストを行うために必要なレジスタの配置情報を含むテスト回路情報と、を生成する。
【００９８】
続いて、テスト回路生成プログラムは、アドレスシフト設定パターンを生成する（ステップＳ２４）。このステップＳ２４の処理では、ステップＳ２２で生成したアルゴリズム毎のオフセット値と、メモリテストアルゴリズムとに基づきアドレスシフト設定パターンを生成する。
【００９９】
続いて、テスト回路生成プログラムは、メモリＢＩＳＴパターン（図１９中のＭＢＩＳＴパターン）を生成する（ステップＳ２５）。このステップＳ２５の処理では、ステップＳ２３で生成したテスト回路情報と、メモリテストアルゴリズムとに基づきメモリＢＩＳＴパターンを生成する。このメモリＢＩＳＴパターンは、メモリアレイ中のメモリセルの活性化順序及びテストシーケンス中に用いるライトデータに関する情報が含まれる。
【０１００】
続いて、テスト回路生成プログラムは、ステップＳ２４で生成したアドレスシフト設定パターンとステップＳ２５で生成したメモリＢＩＳＴパターンとをマージして１つのテストパターンファイルを生成する（ステップＳ２６）。そして、このステップＳ２６が完了することでＤＦＴ処理が終了する。
【０１０１】
また、上記実施の形態で説明した半導体装置に適用するテストパターンは、半導体装置を出荷後にも追加することができる。そこで、テスト回路生成処理とは独立して行うテストパターンの追加処理について以下で説明する。また、以下では、半導体装置の設計時に生成したテストパターンにユーザーが任意に条件を設定したテストを行う場合に用いるユーザー条件テストパターンの生成処理について説明する。そこで、図２０に実施の形態５にかかるテストパターン生成プログラムの動作を示すフローチャートを示す。
【０１０２】
図２０に示すように、テストパターン生成プログラムでは、まず、ユーザー条件テストで適用するオフセット値を算出する（ステップＳ３１）。このステップＳ３１では、ユーザーが示す電力推移条件等を記述したユーザー条件テストの指示情報と、メモリＢＩＳＴ回路１２の回路構成を記述したＭＢＩＳＴ構成情報と、メモリデータとオフセット格納レジスタの構成情報とを読み込む。そして、ステップＳ３１では、読み込んだ情報を用いてユーザー条件テストの指示情報を満たすオフセット値を算出する。このステップＳ３１では、ユーザー条件テストに対応した新たにオフセット値が生成される。
【０１０３】
続いて、テストパターン生成プログラムは、ステップＳ３１で生成されたオフセット値に基づきアドレスシフト設定パターンを生成する（ステップＳ３２）。その後、ステップＳ３２で生成したアドレスシフト設定パターンと、既に生成されている規定テストパターンとをマージして、規定テストパターンに新たなアドレスシフト設定パターンを追加する（ステップＳ３３）。このステップＳ３３において、ユーザー条件を含むテストパターンが生成される。
【０１０４】
上記説明より、上記実施の形態で説明した半導体装置に組み込まれるメモリＢＩＳＴ回路１２及び半導体装置に適用されるテストパターンが、希望するテスト条件を示した諸情報をプログラムに読み込ませることでコンピュータを用いて自動的に生成されることがわかる。
【０１０５】
ここで、上記プログラムにおけるオフセット値の算出手順について、詳細に説明する。このオフセット値算出手順を図２１及び図２２を参照しながら説明を行う。図２１及び図２２は、実施の形態５にかかる半導体装置におけるオフセット値の決定方法の詳細な説明をするための図である。図２１及び図２２は、オフセット値算出手順の一連の流れを説明するものである。
【０１０６】
まず、図２１を参照する。図２１に示すように、オフセット値を算出する場合、まず、１つのテストシーケンスでテストするグループに属するメモリアレイのＸ方向の最大アドレスとＹ方向の最大アドレスに基づきこれら最大アドレスが収まる最大メモリ空間を規定する。そして最大メモリ空間に対して、電力プロファイルに基づきテストタイミング毎に求められる電力が低くなるほど重くなる係数（以下、重み係数と称す）を設定する。なお、この重み係数の設定は、必ず行わなくてもよい。また、テスト対象のメモリアレイ毎の消費電力をメモリデータから取得しておく。
【０１０７】
続いて、最大メモリ空間のＸ方向の大きさに着目して、最大メモリ空間にテスト対象のメモリアレイが収まるようにテスト対象のメモリアレイをグルーピングする第１のグルーピング処理を行う。図２１に示す例では、メモリＤのＸ方向の大きさが最大メモリ空間と同じであるため、メモリＤを第１のグループとする。また、最大メモリ空間とメモリＤの大きさとの差分となる領域に配置可能なメモリとしてメモリＡ、Ｂがあるため、このメモリＡ、Ｂを第１のグループに組み込む。そして、余ったメモリＣを第２のグループとする。
【０１０８】
続いて、第１のグループと第２のグループとの重なりを調節する。図２１に示す例では、メモリＡとメモリＤを足したＹ方向の大きさ、又は、メモリＢとメモリＤを足したＹ方向の大きさが最大メモリ空間のＹ方向の大きさと同じである。また、メモリＣのＹ方向の大きさが最大メモリ空間のＹ方向の大きさと同じで有る。このことから、第１のグループに対して第２のグループは、Ｙ方向にずらして配置することは出来ないことが確認出来る。
【０１０９】
続いて、最大メモリ空間のＹ方向の大きさに着目して、最大メモリ空間にテスト対象のメモリアレイが収まるようにテスト対象のメモリアレイをグルーピングする第２のグルーピング処理を行う。図２２に示す例では、メモリＡ、Ｂ、ＣをＸ方向に並べた時に最大メモリ空間のＸ方向の大きさとなるため、メモリＡ、Ｂ、Ｃを第３のグループとする。そして、余ったメモリＤを第４のグループとする。
【０１１０】
続いて、第３のグループと第４のグループとの重なりを調節する。図２２に示す例では、メモリＡ、Ｂ、Ｃを足したＸ方向の大きさが最大メモリ空間のＸ方向の大きさと同じである。また、メモリＤのＸ方向の大きさが最大メモリ空間のＸ方向の大きさと同じで有る。このことから、第３のグループに対して第４のグループは、Ｘ方向にずらして配置することは出来ないことが確認出来る。
【０１１１】
そして、第１のグルーピング処理と第２のグルーピング処理との処理結果に基づき、メモリＡ〜Ｄを最大メモリ空間に配置する。図２２の最下段に示した例では、メモリＡ〜Ｄを最大メモリ空間に仮配置した結果、各メモリセルの消費電力と重み計数との合算値として２０を超えるセルが生じる。そこで、メモリＣをＸ方向にずらして、メモリＡ及びメモリＤと重なる位置に移動させる。そして、メモリＣを移動した後に、再度各メモリセルの消費電力と重み計数との合算値を計算すると、メモリＣを移動する前よりも最大となる消費電力が小さくなる。そこで、図２２に示す例では、図２２の右下のメモリ配置となるように、各メモリアレイのオフセット値を算出する。
【０１１２】
上記説明より、実施の形態１〜４で説明した半導体装置に適用されるアドレスシフト設定パターンは、コンピュータによる最適化計算により容易に算出することができることがわかる。
【０１１３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【０１１４】
（付記１）
格子状に配置されるメモリセルの個数がそれぞれ異なる複数のメモリアレイと、
それぞれが前記複数のメモリアレイの何れか１つに対応し、アクセスアドレスに基づき前記メモリセルの１つを活性化する複数のメモリインタフェース回路と、
前記複数のメモリアレイのテスト時に前記アクセスアドレスとしてテストアドレスを生成するメモリテストパターン生成回路と、を有する半導体装置に対して、テスト回路を組み込むテスト回路生成プログラムであって、
前記テスト回路を含まない前記半導体装置のネットリスト及びクロック情報と、前記半導体装置上の前記複数のメモリアレイのサイズ及び個数に関する情報を含むメモリデータと、を読み込み、
前記メモリアレイに対応して設けられるオフセット格納レジスタと、前記オフセット格納レジスタに格納されたオフセット設定値に基づき前記アクセスアドレスをシフトさせるアドレスシフト演算器と、前記アドレスシフト演算器に対応して設けられる選択回路と、を含むテスト回路を生成し、
前記ネットリスト、前記クロック情報、前記メモリデータ、及び、前記テスト回路の情報に基づき、前記メモリテストパターン生成回路の構成を決定して、前記メモリテストパターン生成回路の構成を示すメモリＢＩＳＴ構成情報と、前記メモリテストパターン生成回路と前記テスト回路とを利用したテストを実施するための条件を示すテスト回路情報と、を生成するテスト回路生成プログラム。
【０１１５】
（付記２）
前記半導体装置において前記複数のメモリアレイの動作テストを実施するテスト動作時の前記半導体装置の消費電力の遷移条件を含むテスト条件情報で示される消費電力の遷移条件を満たすように、前記テスト回路に適応するオフセット値を算出するオフセット値算出処理と、
前記オフセット値算出処理で算出された前記第オフセット値を前記テスト回路情報に示されたレジスタ構成に合わせて並び替えてアドレスシフト設定パターンを生成し、
前記テスト回路情報に基づき前記メモリテストパターン生成回路が生成するテストパターンを示すＭＢＩＳＴパターン情報を生成し、
前記ＭＢＩＳＴパターン情報と前記アドレスシフト設定パターンとをマージしてテストパターンを生成する付記１に記載のテスト回路生成プログラム。
【０１１６】
（付記３）
前記オフセット値算出処理では、
前記複数のメモリアレイのうち最大のＸアドレス空間を有するメモリアレイと、前記複数のメモリアレイのうち最大のＹアドレス空間を有するメモリアレイと、が少なくとも収まるメモリ空間を有する最大メモリ空間を作成し、
前記メモリアレイを並べた場合に前記最大メモリ空間の最大Ｘアドレスの範囲内に収まるメモリアレイを１つのグループとし、前記複数のメモリアレイの全てを複数のグループに分類する第１のグルーピング処理と、
前記メモリアレイを並べた場合に前記最大メモリ空間の最大Ｙアドレスの範囲内に収まるメモリアレイを１つのグループとし、前記複数のメモリアレイの全てを複数のグループに分類する第２のグルーピング処理と、
前記第１のグルーピング処理と前記第２のグルーピング処理で生成されたグループに基づきメモリアレイ毎のシフト可能量を算出し、
前記第１のグルーピング処理又は前記第２のグルーピング処理で生成された複数のグループを重ね合わせて、重ね合わせ後のテストタイミング毎の総消費電力を算出し、
前記総消費電力が、前記テスト条件情報で示される消費電力の遷移条件を満たすように、前記シフト可能量を考慮して前記メモリアレイを重ね合わせる位置を変更し、
変更後の前記メモリアレイの前記最大メモリ空間上の位置に応じて前記メモリアレイ毎の前記第１のオフセット値と前記第２のオフセット値を算出する付記２に記載のテスト回路生成プログラム。
【０１１７】
（付記４）
前記テスト回路生成プログラムは、
演算処理を行う演算部と、
前記テスト回路生成プログラムで利用される条件情報、及び、前記テスト回路生成プログラムにより出力される情報を格納する記憶装置と、
を有するコンピュータにより実行される付記１に記載のテスト回路生成プログラム。
【符号の説明】
【０１１８】
１  半導体装置
１０  外部インタフェース回路
１１  ユーザー論理回路
１２  メモリＢＩＳＴ回路
１３  内蔵メモリ
１４  ＪＴＡＧコントローラ
１５  リセット制御回路
１６  テストモード制御回路
１７  ポストコントローラ
１８  不揮発性メモリ
２０  メモリインタフェース回路
２１  メモリテストパターン生成回路
３０、３３、３６  選択回路
３１、３４、４１、４２  オフセット格納レジスタ
３２、３５、４０  アドレスシフト演算器
４３  アドレス無効値レジスタ
５１、５２  ＥＸＯＲ回路
５３  ＡＮＤ回路
５４  選択回路
６１  リセット用オフセット格納レジスタ
６２  選択回路
６３  Ｄフリップフロップ
６４  インバータ
６５  ＳＲラッチ
ＭＢＭＤ  テストモード制御信号
Ｄａｔａ＿ｕ  ユーザーアクセス信号
Ｄａｔａ＿ＭＰＧ  テストアクセス信号
Ｄａｔａ＿ＭＥＭ  アクセス信号
Ｘａｄｄ＿ｕ  ユーザーＸアドレス
Ｘａｄｄ＿ＭＰＧ  テストＸアドレス
Ｘａｄｄ＿ＭＥＭ  Ｘアドレス
Ｘ＿ＯＦＦ  Ｘアドレスオフセット値
Ｙａｄｄ＿ｕ  ユーザーＹアドレス
Ｙａｄｄ＿ＭＰＧ  テストＹアドレス
Ｙａｄｄ＿ＭＥＭ  Ｙアドレス
Ｙ＿ＯＦＦ  Ｙアドレスオフセット値
ＯＦＦ＿ＲＳＴ  リセット用オフセット値
【図１】
2019192322.tif 000003
【図２】
2019192322.tif 000004
【図３】
2019192322.tif 000005
【図４】
2019192322.tif 000006
【図５】
2019192322.tif 000007
【図６】
2019192322.tif 000008
【図７】
2019192322.tif 000009
【図８】
2019192322.tif 000010
【図９】
2019192322.tif 000011
【図１０】
2019192322.tif 000012
【図１１】
2019192322.tif 000013
【図１２】
2019192322.tif 000014
【図１３】
2019192322.tif 000015
【図１４】
2019192322.tif 000016
【図１５】
2019192322.tif 000017
【図１６】
2019192322.tif 000018
【図１７】
2019192322.tif 000019
【図１８】
2019192322.tif 000020
【図１９】
2019192322.tif 000021
【図２０】
2019192322.tif 000022
【図２１】
2019192322.tif 000023
【図２２】
2019192322.tif 000024