(57)【要約】  【課題】  動作プログラムの命令コードをＲＡＭ１３２０に配置し、ＣＰＵ１３１０はＲＡＭ１３１０から命令コードを読み出しても、ＲＯＭ１３２０が読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来る半導体集積回路を提供することを目的とする。  【解決手段】  テストモード信号をイネーブルにし、ＲＡＭ１３３０の命令コード読出し動作と同時に、ＲＯＭ１３２０も読み出し動作状態にするＲＯＭ制御部１３４０を備えることで、ＲＯＭ１３２０の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。【選択図】    図１
2006252361.tif 000002
【特許請求の範囲】
【請求項１】
機能ブロックと、
通常動作時に実行される命令コードを配置する第１の記憶装置と、
テストモード時に実行される外部から入力された命令コードを配置することが可能な第２の記憶装置と、
命令コードを実行するＣＰＵと、
通常動作モード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号を選択し、テストモード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号を選択して前記第１の記憶装置に出力する制御部と
を有し、テストモード時には前記第１の記憶装置の読み出し動作を行いながら前記第２の記憶装置に配置された命令コードを用いて前記ＣＰＵを動作させて動作時電源電流テストを行うことを特徴とする半導体集積回路。
【請求項２】
前記制御部が、
通常動作モード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号および前記第１の記憶装置のアドレス信号を選択し、テストモード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号および前記第２の記憶装置のアドレス信号を選択して前記第１の記憶装置に出力する
ことを特徴とする請求項１記載の半導体集積回路。
【請求項３】
前記制御部が、更に、
テストモード時に前記第２の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、
テストモード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号および前記変換されたアドレス信号を選択して前記第１の記憶装置に出力する
ことを特徴とする請求項２記載の半導体集積回路。
【請求項４】
前記制御部が、
テストモード時であったとしても、前記第１の記憶装置のリードイネーブル信号入力期間中には、前記第１の記憶装置のリードイネーブル信号入力を選択して前記第１の記憶装置に出力する
ことを特徴とする請求項１記載の半導体集積回路。
【請求項５】
前記制御部が、
テストモード時であったとしても、前記第１の記憶装置のリードイネーブル信号入力期間中には、前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号および前記第１の記憶装置のアドレス信号を選択して前記第１の記憶装置に出力する
ことを特徴とする請求項２または請求項３のいずれかに記載の半導体集積回路。
【請求項６】
前記ＣＰＵが、更に
テストモード時に、第２の記憶装置のリードイネーブル信号に所定の保持期間を持たせるＷＡＩＴ制御部を
備えることを特徴とする請求項１または請求項２または請求項３または請求項４または請求項５のいずれかに記載の半導体集積回路。
【請求項７】
前記第２の記憶装置のリードイネーブル信号に持たせた保持期間をあらかじめ設定した期間マスクするＷＡＩＴマスク部を
備えることを特徴とする請求項６記載の半導体集積回路。
【請求項８】
前記第２の記憶装置のアドレス信号があらかじめ設定した１または複数のアドレス期間である場合には、テストモード時であってもテストモードをキャンセルするテストモードキャンセル部を
備えることを特徴とする請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７のいずれかに記載の半導体集積回路。
【請求項９】
機能ブロックと、
通常動作時に実行される命令コードを配置する読み取り専用の第１の記憶装置と、
テストモード時に実行される外部から入力された命令コードを配置することが可能な第２の記憶装置と、
命令コードを実行するＣＰＵと、
通常動作モード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号を選択し、テストモード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号を選択して前記第２の記憶装置にリードイネーブル信号として出力するイネーブル信号制御部と、
前記第２の記憶装置のライトイネーブル信号がイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がイネーブル時には前記第２の記憶装置と前記ＣＰＵ間のデータアクセスを選択し、前記第２の記憶装置のライトイネーブル信号がディスイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がディスイネーブル時には前記第１の記憶装置と前記ＣＰＵ間のデータアクセスを選択する制御を行うデータ制御部と
を有し、テストモード時には前記第１の記憶装置の読み出し動作を行いながら前記第２の記憶装置に配置された命令コードを用いて前記ＣＰＵを動作させて動作時電源電流テストを行うことを特徴とする半導体集積回路。
【請求項１０】
前記イネーブル信号制御部が、更に、
テストモード時に前記第２の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、
テストモード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号を選択して前記第２の記憶装置に出力し、前記変換されたアドレス信号を前記第２の記憶装置に出力する
ことを特徴とする請求項９記載の半導体集積回路。
【請求項１１】
前記イネーブル信号制御部が、
テストモード時であったとしても、前記第２の記憶装置のリードイネーブル信号入力期
間中には、前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号を選択して前記第２の記憶装置に出力し、
前記第２の記憶装置のリードイネーブル信号入力期間中、または前記第２の記憶装置のライトイネーブル信号入力期間中には、前記アドレス変換回路によるアドレス変換を停止する
ことを特徴とする請求項９または請求項１０のいずれかに記載の半導体集積回路。
【請求項１２】
前記第１の記憶装置がＲＯＭで前記第２の記憶装置がＲＡＭであることを特徴とする請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７または請求項８または請求項９または請求項１０または請求項１１のいずれかに記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作時電源電流テストを行う半導体集積回路に関する。
【背景技術】
【０００２】
現在、半導体集積回路のテストにはＬＳＩテスタが幅広く使われ、テスト項目の一つとして動作時電源電流テストがある。
従来、ＣＰＵ、ＲＯＭ、ＲＡＭを搭載する半導体集積回路の所定の動作における動作時電源電流をテストするには、動作プログラムの命令コードをＲＯＭに配置するか、または、ＬＳＩテスタより転送しＲＡＭに配置させ、ＣＰＵがそれぞれの記憶装置より命令コードを読み出して実行することで、テスト対象である半導体集積回路を所定の動作状態において、ＬＳＩテスタで電源電流をテストしていた。
【０００３】
以下、図１５を参照して従来のＣＰＵ、ＲＯＭ、ＲＡＭを搭載する半導体集積回路の所定の動作における動作時電源電流テストについて説明する。
図１５は従来の記憶装置に記憶された命令コードをＣＰＵが実行した時の動作時電源電流測定テストを説明する構成図である。
【０００４】
図１５において、０１００は半導体集積回路であり機能ブロック０２００とマイコン部０３００で構成される。機能ブロック０２００はＣＰＵ０３１０が制御する。マイコン部０３００はＣＰＵ０３１０、ＲＯＭ０３２０、ＲＡＭ０３３０を構成要素とする。
【０００５】
００００はＬＳＩテスタであり、半導体集積回路０１００に接続している。
ＬＳＩテスタ００００のテスト手順は以下の通りである。
動作プログラムの命令コードをＲＯＭに配置する場合には、あらかじめ、ＲＯＭ０３２０に動作プログラムの命令コードを記憶させ、ＣＰＵ０３１０がＲＯＭ０３２０から命令コードを読出して実行する。
【０００６】
また、動作プログラムの命令コードをＲＡＭに配置する場合には、まず、ＬＳＩテスタ００００から半導体集積回路０１００へ動作プログラムを転送し、命令コードをＲＡＭ０３３０に配置する。次に、ＣＰＵ０３１０がＲＡＭ０３３０から命令コードを読出し、実行する。
【０００７】
上記の手順を経て、半導体集積回路０１００は動作プログラムに準じた所定の動作状態になり、この時の動作時電源電流をテストする（例えば、特許文献１参照）。
【特許文献１】特開２００３−９８２２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが上記のテスト方法には、それぞれ以下の問題があった。
まず、ＲＯＭに配置する方法では、マスクＲＯＭの場合、あらかじめ動作プログラムの命令コードを半導体マスクに埋め込む必要がある。動作プログラムを変更する場合、高価な半導体マスクを修正し、更に、修正した半導体マスクで拡散工程からやりなおさなければならないため、迅速な修正は不可能である。ＦＬＡＳＨ−ＥＥＰＲＯＭの場合では、半導体マスクに埋め込む必要はないので、修正は容易になる。しかし、あらかじめ動作時電源電流テストの前工程で動作プログラムの命令コードを書き込む必要があるため、テスト工程の変更や、書き込み工数増加による生産性低下やコスト増加の恐れがある。また、動作プログラムを変更する場合、当該テストのテストプログラムの変更ばかりでなく、書き込み工程も変更しなければならない。
【０００９】
一方、ＲＡＭに配置する方法では、当該テストの前工程であらかじめ動作プログラムの命令コードを配置する必要はなく、また、動作プログラムの変更は当該テストのテストプログラムの変更だけで済み、上記の問題点は解決できる。
【００１０】
しかし、ＣＰＵはＲＡＭから命令コードを読出すことになるため、ＲＯＭへの命令コード読出し動作は全く行われない。そのため、テストする動作時電源電流はＲＯＭの命令読出し動作電流成分が全くないものになる。半導体集積回路の実使用時において、ＣＰＵがＲＡＭから命令コードを読出して実行することは少なく、ほとんどがＲＯＭから読み出して実行する。そのような使用条件の動作プログラムをＲＡＭに配してテストすると、テスト条件が実使用条件と乖離してしまうと言う問題点があった。
【００１１】
動作プログラムにＲＯＭへのデータ読出し命令を加えることにより、ＲＯＭの読出し頻度を上げることも出来るが、命令コード読出し頻度に比べ、格段に読出し頻度が低いため、不十分であり、かつ、動作プログラムを変えるため、テスト時の動作状態は、本来の動作プログラムに準じた所定の動作と異なった状態になってしまう。
【００１２】
そこで、本発明は、これら上記の問題点を解決するために、動作プログラムの命令コードをＲＡＭに配置し、ＣＰＵがＲＡＭから命令コードを読み出して動作しても、ＲＯＭに配置した場合と同様にＲＯＭが読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来る半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の請求項１記載の半導体集積回路は、機能ブロックと、通常動作時に実行される命令コードを配置する第１の記憶装置と、テストモード時に実行される外部から入力された命令コードを配置することが可能な第２の記憶装置と、命令コードを実行するＣＰＵと、通常動作モード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号を選択し、テストモード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号を選択して前記第１の記憶装置に出力する制御部とを有し、テストモード時には前記第１の記憶装置の読み出し動作を行いながら前記第２の記憶装置に配置された命令コードを用いて前記ＣＰＵを動作させて動作時電源電流テストを行うことを特徴とする。
【００１４】
請求項２記載の半導体集積回路は、請求項１記載の半導体集積回路において、前記制御部が、通常動作モード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号および前記第１の記憶装置のアドレス信号を選択し、テストモード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号および前記第２の記憶装置のアドレス信号を選択して前記第１の記憶装置に出力することを特徴とする。
【００１５】
請求項３記載の半導体集積回路は、請求項２記載の半導体集積回路において、前記制御部が、更に、テストモード時に前記第２の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、テストモード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号および前記変換されたアドレス信号を選択して前記第１の記憶装置に出力することを特徴とする。
【００１６】
請求項４記載の半導体集積回路は、請求項１記載の半導体集積回路において、前記制御部が、テストモード時であったとしても、前記第１の記憶装置のリードイネーブル信号入力期間中には、前記第１の記憶装置のリードイネーブル信号入力を選択して前記第１の記憶装置に出力することを特徴とする。
【００１７】
請求項５記載の半導体集積回路は、請求項２または請求項３のいずれかに記載の半導体集積回路において、前記制御部が、テストモード時であったとしても、前記第１の記憶装置のリードイネーブル信号入力期間中には、前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号および前記第１の記憶装置のアドレス信号を選択して前記第１の記憶装置に出力することを特徴とする。
【００１８】
請求項６記載の半導体集積回路は、請求項１または請求項２または請求項３または請求項４または請求項５のいずれかに記載の半導体集積回路において、前記ＣＰＵが、更にテストモード時に、第２の記憶装置のリードイネーブル信号に所定の保持期間を持たせるＷＡＩＴ制御部を備えることを特徴とする。
【００１９】
請求項７記載の半導体集積回路は、請求項６記載の半導体集積回路において、前記第２の記憶装置のリードイネーブル信号に持たせた保持期間をあらかじめ設定した期間マスクするＷＡＩＴマスク部を備えることを特徴とする。
【００２０】
請求項８記載の半導体集積回路は、請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７のいずれかに記載の半導体集積回路において、前記第２の記憶装置のアドレス信号があらかじめ設定した１または複数のアドレス期間である場合には、テストモード時であってもテストモードをキャンセルするテストモードキャンセル部を備えることを特徴とする。
【００２１】
請求項９記載の半導体集積回路は、機能ブロックと、通常動作時に実行される命令コードを配置する読み取り専用の第１の記憶装置と、テストモード時に実行される外部から入力された命令コードを配置することが可能な第２の記憶装置と、命令コードを実行するＣＰＵと、通常動作モード時には前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号を選択し、テストモード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号を選択して前記第２の記憶装置にリードイネーブル信号として出力するイネーブル信号制御部と、前記第２の記憶装置のライトイネーブル信号がイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がイネーブル時には前記第２の記憶装置と前記ＣＰＵ間のデータアクセスを選択し、前記第２の記憶装置のライトイネーブル信号がディスイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がディスイネーブル時には前記第１の記憶装置と前記ＣＰＵ間のデータアクセスを選択する制御を行うデータ制御部とを有し、テストモード時には前記第１の記憶装置の読み出し動作を行いながら前記第２の記憶装置に配置された命令コードを用いて前記ＣＰＵを動作させて動作時電源電流テストを行うことを特徴とする。
【００２２】
請求項１０記載の半導体集積回路は、請求項９記載の半導体集積回路において、前記イネーブル信号制御部が、更に、テストモード時に前記第２の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、テストモード時には前記ＣＰＵから出力する前記第１の記憶装置のリードイネーブル信号を選択して前記第２の記憶装置に出力し、前記変換されたアドレス信号を前記第２の記憶装置に出力することを特徴とする。
【００２３】
請求項１１記載の半導体集積回路は、請求項９または請求項１０のいずれかに記載の半導体集積回路において、前記イネーブル信号制御部が、テストモード時であったとしても、前記第２の記憶装置のリードイネーブル信号入力期間中には、前記ＣＰＵから出力する前記第２の記憶装置のリードイネーブル信号を選択して前記第２の記憶装置に出力し、前記第２の記憶装置のリードイネーブル信号入力期間中、または前記第２の記憶装置のライトイネーブル信号入力期間中には、前記アドレス変換回路によるアドレス変換を停止することを特徴とする。
【００２４】
請求項１２記載の半導体集積回路は、請求項１または請求項２または請求項３または請求項４または請求項５または請求項６または請求項７または請求項８または請求項９または請求項１０または請求項１１のいずれかに記載の半導体集積回路において、前記第１の記憶装置がＲＯＭで前記第２の記憶装置がＲＡＭであることを特徴とする。
【００２５】
以上により、動作プログラムの命令コードをＲＡＭに配置し、ＣＰＵがＲＡＭから命令コードを読み出して動作しても、ＲＯＭに配置した場合と同様にＲＯＭが読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来る。
【発明の効果】
【００２６】
本発明の半導体集積回路は、テストモード時に、ＣＰＵによる第２の記憶装置の読み出しと同時に第１の記憶装置も読み出し状態にする記憶装置制御手段を備えることにより、テストモードで第１の記憶装置の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
【００２７】
更に、テストモード時に、第１の記憶装置に第２の記憶装置と同じアドレスを入力することにより、第２の記憶装置のアドレスの値が第１の記憶装置のアドレス空間範囲内ならば正常に第１の記憶装置の読出し動作が行われた状態で動作時電源電流テストを行うことが可能となる。
【００２８】
更に、テストモード時に、第２の記憶装置のアドレスの値が第１の記憶装置のアドレス空間範囲外の場合でも、第１の記憶装置へ入力するアドレスを第１の記憶装置のアドレス空間範囲に合うように変換することにより、正常に第１の記憶装置の読出し動作が行われた状態で、所定の動作の動作時電源電流テストを行うことが出来る。
【００２９】
更に、テストモード時に、前記ＣＰＵによる第１の記憶装置への読出し動作を優先することにより、第１の記憶装置の読出し動作電流減少を抑制して、所定の動作の動作時電源電流テストを行うことが出来る。
【００３０】
更に、ＣＰＵがＷＡＩＴ設定手段を備え、第２の記憶装置の読出し動作にＷＡＩＴ設定することで、テストモードにおいて第１の記憶装置の読出しに必要な読出し期間を前記第２の記憶装置の読出し信号に持たせることができるため、第１の記憶装置制御手段により発生するＣＰＵの単位時間当たりの実行命令数増加を抑制し、かつ第１の記憶装置の読出し動作を正しく完了させた状態で、所定の動作の動作時電源電流テストを行うことが出来る。
【００３１】
更に、ＷＡＩＴマスク手段を備えることで、テストモード時に、ＣＰＵの第２の記憶装置の読出し動作に設定したＷＡＩＴ期間を非読出し状態に強制することで、読出し動作期間を削減することができるため、ＷＡＩＴ設定手段による第２の記憶装置の読出し電流の増加を抑えた状態で、所定の動作の動作時電源電流テストを行うことが出来る。
【００３２】
更に、テストモードキャンセル手段を備えることで、第２の記憶装置の特定アドレス範囲への読出しではテストモードをキャンセルすることができるため、テストモード時に、第１の記憶装置制御手段により発生する不要な第１の記憶装置の読出し動作を停止することで、第１の記憶装置の読出し動作電流増加を抑制し、かつＷＡＩＴマスク手段により発生する第２の記憶装置の読み出し頻度低下を抑制することで、第２の記憶装置の読出し電流の減少と、ＣＰＵの単位時間当たりの実行命令数減少によるＣＰＵ動作電流の減少を防止して、所定の動作の動作時電源電流テストを行うことが出来る。
【００３３】
また、ＣＰＵによる第１の記憶装置への命令コード読み出し動作で第２の記憶装置から命令コードを読み出す記憶装置制御手段と、テストモード時に、第２の記憶装置のデータ出力信号をＣＰＵに入力するデータ制御手段を備えることにより、テストモードで、第１の記憶装置の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
【００３４】
更に、テストモード時に、第１の記憶装置のアドレス値が第２の記憶装置のアドレス空間範囲外の場合でも、第１の記憶装置へ入力するアドレスを第２の記憶装置のアドレス空間範囲に合うように変換することにより、正常に第２の記憶装置から命令を読出し、実行させることができ、所定の動作の動作時電源電流テストを行うことが出来る。
【００３５】
更に、テストモード時に、ＣＰＵによる第２の記憶装置への書き込み及び読出し動作を優先させることができることにより、テストに使用できる動作プログラムの自由度を増やし、第１の記憶装置の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが出来る。
【発明を実施するための最良の形態】
【００３６】
＜実施の形態１＞
以下、本発明の実施の形態１に係る半導体集積回路について説明する。
まず、図１を用いて実施の形態１における半導体集積回路の構成を説明する。
【００３７】
図１は本発明の実施の形態１に係る半導体集積回路の構成図である。
１１００は半導体集積回路であり、機能ブロック１２００とマイコン部１３００で構成される。機能ブロック１２００はＣＰＵ１１００が制御を行う。マイコン部１３００はＣＰＵ１３１０、ＲＯＭ１３２０、ＲＡＭ１３３０と後に述べるＲＯＭ制御部１３４０を構成要素とする。
【００３８】
ＣＰＵ１３１０はハーバードアーキテクチャに分類されるＣＰＵであり、記憶装置に対し、命令読出しとデータ読出しを同時に行うことが出来る。
ＲＯＭ制御部１３４０はリードイネーブル選択回路１３４１を構成要素とし、テストモード信号がディスイネーブルの時にはＣＰＵ１３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択し、イネーブルの時には、ＣＰＵ１３１０が出力したＲＡＭ読出し信号ＲＡＭＲＥを選択してＲＯＭ１３２０のＲＯＭＲＥ入力に出力することで、テストモード信号がイネーブルでＲＡＭアクセス状態でも、ＲＯＭを読み出し状態にする機能を有する。
【００３９】
次に、上述の構成を備える半導体集積回路１１００の動作について説明する。
半導体集積回路１１００のテストを行う場合、まず、半導体集積回路１１００の外部に構成されるＬＳＩテスタ００００から半導体集積回路１１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０に配置する。ＣＰＵ１３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路１１００は動作プログラムに準じた所定の動作状態となる。
【００４０】
ここで、半導体集積回路１１００が実動作モードであり、テストモード信号がディスイネーブルの場合、リードイネーブル選択回路１３４１は、ＣＰＵ１３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択し、ＲＯＭ１３２０のＲＯＭＲＥ入力へ出力する。
【００４１】
一方、テストモード信号がイネーブルの場合、リードイネーブル選択回路１３４１は、ＣＰＵ１３１０が出力したＲＡＭ読出し信号ＲＡＭＲＥを選択し、ＲＯＭ１３２０のＲＯＭＲＥ入力へ出力する。ＲＡＭ読出し信号ＲＡＭＲＥがイネーブルになるとＲＯＭ１３２０はＲＯＭアドレス信号ＡＲＯＭの指し示すアドレスが読み出され、ＲＯＭデータ信号ＤＲＯＭに出力する。
【００４２】
つまりテストモード信号をイネーブルにすると、ＲＡＭ１３３０への命令コード読出し動作と同時に、ＲＯＭ１３２０も読み出し動作状態になる。
このように、実施の形態１では、動作時電源電流テスト時に、テストモード信号をイネーブルにし、ＲＡＭ１３３０の命令コード読出し動作と同時に、ＲＯＭ１３２０も読み出し動作状態にするＲＯＭ制御部１３４０を備えることで、ＲＯＭ１３２０の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
【００４３】
なお、テストモード信号は、レジスタ設定などで容易に実現できる。また、テストモード信号をイネーブルにしたことで、読み出したＲＯＭデータ信号ＤＲＯＭはＣＰＵ１３１０へ入力するが、ＣＰＵ１３１０はＲＯＭ１３２０への読出し動作を行っていないので、誤動作などの問題はない。また、テスト値は、ＣＰＵ１３１０がＲＯＭ１３２０に配置した命令コードの読み出し動作をする場合に比べ、ＲＡＭ１３３０の読出し動作にかかる電流分が増えるが、電流の増分が検査規格値とテスト値の差に比べ十分小さければ、歩留低下の恐れはない。もしくはＲＡＭ１３３０の命令コード読出し動作にかかる電流分をあらかじめ見積もり、検査規格値を修正すればよい。
＜実施の形態２＞
しかしながら、実施の形態１では、次の問題がある。ＣＰＵの種類にもよるが、ＣＰＵ１３１０はＲＯＭ１３２０への命令コード読出し動作をしていないので、ＲＯＭアドレス信号ＡＲＯＭの値が不確定になる場合がある。例えば、ＲＯＭアドレス信号ＡＲＯＭの値がＲＯＭ１３２０のアドレス空間の範囲外ならば、正常にＲＯＭ読出し動作が行われない可能性がある。
【００４４】
以下、上記問題を解決する本発明の実施の形態２に係る半導体集積回路について説明する。
まず、図２，図３を用いて実施の形態２における半導体集積回路の構成を説明する。
【００４５】
図２は本発明の実施の形態２に係る半導体集積回路の構成図、図３は本発明の実施の形態２に係るメモリのメモリマップを示す図である。
２１００は半導体集積回路であり、機能ブロック１２００とマイコン部２３００で構成される。マイコン部２３００は、ＣＰＵ１３１０、ＲＯＭ１３２０、ＲＡＭ１３３０、後に述べるＲＯＭ制御部２３４０を構成要素とする。
【００４６】
同図において、半導体集積回路２１００の構成要素のうち、半導体集積回路１１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【００４７】
ＲＯＭ制御部２３４０はリードイネーブル選択回路１３４１とアドレス選択回路２３４２を構成要素とし、実施の形態１記載のＲＯＭ制御部１３４０が、アドレス選択回路２３４２を備えることで、更に、テストモード信号がディスイネーブルの時にはＣＰＵ１３１０が出力したＲＯＭアドレス信号ＡＲＯＭを選択し、イネーブルの時には、ＣＰＵ１３１０が出力したＲＡＭアドレス信号ＡＲＡＭを選択してＲＯＭ１３２０に出力することで、テストモード信号がイネーブルでＲＡＭアクセス状態でも、ＲＡＭのアクセスアドレスをＲＯＭにも入力してＲＯＭを読み出し状態にする機能を有したものである。
【００４８】
次に、上述の構成を備える半導体集積回路２１００の動作について説明する。
半導体集積回路２１００のテストを行う場合、まず、半導体集積回路２１００の外部に構成されるＬＳＩテスタ００００から半導体集積回路２１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０に配置する。ＣＰＵ１３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路２１００は動作プログラムに準じた所定の動作状態となる。
【００４９】
ここで、半導体集積回路２１００が実動作モードであり、テストモード信号がディスイネーブルの場合、アドレス選択回路２３４２は、ＣＰＵ１３１０が出力したＲＯＭアドレス信号ＡＲＯＭを選択し、ＲＯＭ１３２０のＡＲＯＭ入力へ出力する。リードイネーブル選択回路１３４１は、ＣＰＵ１３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択し、ＲＯＭ１３２０のＲＯＭＲＥ入力へ出力する。
【００５０】
一方、テストモード信号がイネーブルの場合、アドレス選択回路２３４２は、ＣＰＵ１３１０が出力したＲＡＭアドレス信号ＡＲＡＭを選択し、ＲＯＭ１３２０のＡＲＯＭ入力へ出力する。リードイネーブル選択回路１３４１は、ＣＰＵ１３１０が出力したＲＡＭ読出し信号ＲＡＭＲＥを選択し、ＲＯＭ１３２０のＲＯＭＲＥ入力へ出力する。ＲＡＭ読出し信号ＲＡＭＲＥがイネーブルになると、ＲＯＭ１３２０はＲＡＭアドレス信号ＡＲＡＭの指し示すアドレスを読み出し、ＲＯＭデータ信号ＤＲＯＭを出力する。
【００５１】
図３を用いて、ＲＡＭ１３３０のアドレス空間が００００番地〜３ＦＦＦ番地で、命令コードが０２００番地〜０ＦＦＦ番地に格納し、ＲＯＭ１３２０のアドレス空間が００００番地〜２ＢＦＦＦ番地である例を挙げ説明する。
【００５２】
転送した動作プログラムの命令コードをＲＡＭ１３３０の０２００番地から０ＦＦＦ番地に配置し、動作プログラムを実行しているとする。ここでテストモード信号がイネーブルの時に、例えば、ＲＡＭ１３３０の５００番地の命令コード読み出すと、同時にＲＯＭ１３２０の５００番地を読み出す。
【００５３】
つまり、テストモード信号をイネーブルにすると、ＲＡＭ１３３０への命令コード読出し動作と同時に、ＲＯＭ１３２０もＲＡＭアドレス信号ＡＲＡＭの指し示す同じアドレスに対して読み出し動作をする。
【００５４】
このように、実施の形態２では、ＲＯＭ制御部２３４０を備えることで、動作時電源電流テスト時に、テストモード信号がイネーブルならば、ＲＡＭ１３３０への命令コード読出しと同時に、ＲＯＭ１３２０も読み出し動作状態になると共に、ＲＡＭアドレス信号ＡＲＡＭが指し示すアドレスを、ＲＯＭ１３２０へ入力することにより、ＲＯＭ１３２０を正常に読み出し動作をした状態にして、所定の動作の動作時電源電流テストが可能となる。
＜実施の形態３＞
しかしながら、以上の方法では、ＲＡＭアドレス信号ＡＲＡＭの値がＲＯＭ１３２０のアドレス空間範囲外になる場合、正常にＲＯＭ１３２０の読出し動作が行われない可能性がある。
【００５５】
以下、上記問題を解決する本発明の実施の形態３に係る半導体集積回路について説明する。
まず、図４，図５を用いて実施の形態３における半導体集積回路の構成を説明する。
【００５６】
図４は本発明の実施の形態３に係る半導体集積回路の構成図、図５は本発明の実施の形態３に係るメモリのメモリマップを示す図である。
３１００は半導体集積回路であり、機能ブロック１２００とマイコン部３３００で構成される。マイコン部３３００は、ＣＰＵ１３１０、ＲＯＭ１３２０、ＲＡＭ１３３０、後に述べるＲＯＭ制御部３３４０を構成要素とする。
【００５７】
同図において、半導体集積回路３１００の構成要素のうち、半導体集積回路２１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【００５８】
ＲＯＭ制御部３３４０はリードイネーブル選択回路１３４１とアドレス選択回路２３４２とアドレス変換回路３３４３を構成要素とし、実施の形態２記載のＲＯＭ制御部２３４０が更にアドレス変換回路３３４３を備えることで、入力したＲＡＭアドレス信号ＡＲＡＭをあらかじめ決められた論理で変換し、テストモード信号がイネーブルの時には、アドレス選択回路２３４２はアドレス変換回路３３４３が変換したＲＡＭアドレス信号ＡＲＡＭＥＣを選択し、ＲＯＭ１３２０のＲＯＭアドレス信号入力へ出力することで、テストモード信号がイネーブルでＲＡＭアクセス状態でも、ＲＯＭを読み出し状態にすると共に、ＲＯＭのアドレス空間に対応したＲＡＭのアクセスアドレスをＲＯＭにも入力する機能を有したものである。
【００５９】
次に、上述の構成を備える半導体集積回路３１００の動作について説明する。
半導体集積回路３１００のテストを行う場合、まず、半導体集積回路３１００の外部に構成されるＬＳＩテスタ００００から半導体集積回路３１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０に配置する。ＣＰＵ１３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路３１００は動作プログラムに準じた所定の動作状態となる。
【００６０】
ここで、半導体集積回路３１００が実動作モードであり、テストモード信号がディスイネーブルの場合、アドレス選択回路２３４２は、ＣＰＵ１３１０が出力したＲＯＭアドレス信号ＡＲＯＭを選択し、ＲＯＭ１３２０のＡＲＯＭ入力へ出力する。リードイネーブル選択回路１３４１は、ＣＰＵ１３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択し、ＲＯＭ１３２０のＲＯＭＲＥ入力へ出力する。
【００６１】
一方、テストモード信号がイネーブルの場合、アドレス選択回路２３４２は、アドレス変換回路３３４３が出力したＲＡＭアドレス信号ＡＲＡＭＥＣを選択し、ＲＯＭ１３２０のＡＲＯＭ入力へ出力する。リードイネーブル選択回路１３４１は、ＣＰＵ１３１０が出力したＲＡＭ読出し信号ＲＡＭＲＥを選択し、ＲＯＭ１３２０のＲＯＭＲＥ入力へ出力する。ＲＡＭ読出し信号ＲＡＭＲＥがイネーブルになると、ＲＯＭ１３２０はアドレス変換回路３３４３で変換したＲＡＭアドレス信号ＡＲＡＭＥＣが指し示すアドレスを読み出し、ＲＯＭデータ信号ＤＲＯＭを出力する。
【００６２】
つまり、テストモード信号をイネーブルにすると、ＲＡＭ１３３０の読出し動作と同時に、ＲＯＭ１３２０もアドレス変換回路３３４３がＲＯＭ１３２０のアクセス空間内のアドレスに変換したＲＡＭアドレス信号ＡＲＡＭＥＣが指し示す、ＲＯＭ１３２０のアドレスに対して読み出し動作をする。
【００６３】
このように、実施の形態３では、動作時電源電流テスト時に、テストモード信号がイネーブルならば、ＲＡＭ１３３０への命令コード読出しと同時に、ＲＯＭ１３２０も読み出し動作状態になると共に、ＲＯＭ制御部３３４０を備えることで、ＲＡＭアドレス信号ＡＲＡＭの値がＲＯＭ１３２０のアドレス空間範囲外の場合でも、ＲＡＭアドレス信号ＡＲＡＭを変換することで、ＲＯＭ１３２０へ入力するアドレスを、ＲＯＭ１３２０のアドレス空間範囲に合うように調整することが可能となり、アドレス空間範囲が異なる場合でも、正常にＲＯＭ１３２０を読み出した状態で、所定の動作の動作時電源電流テストを行うことが出来る。
【００６４】
なお、アドレス変換回路３３４３の変換論理はレジスタ設定などで実現できる。ここで、アドレス変換回路３３４３の一例として、図５に示す、ＲＡＭ１３３０のアドレス空間が００００番地から３ＦＦＦ番地、ＲＯＭ１３２０のアドレス空間が４０００番地から２ＦＦＦＦ番地である場合を挙げて説明する。変換論理はレジスタ値をＲＡＭアドレス信号ＡＲＡＭの値に加算するという構成にする。あらかじめレジスタに補正値として４０００を設定すると、変換後のＲＡＭアドレス信号ＡＲＡＭＥＣの値は４０００以上となり、ＲＯＭ１３２０のアドレス空間に収まるよう調整される。例えば、所定の動作プログラムの命令コードをＲＯＭ１３２０の５２００番地から配置した場合に相当する動作時電源電流テストをするならば、まず、転送したプログラムの命令コードをＲＡＭ１３３０の２００番地から配置し、補正値を５０００に設定する。そして、テストモードをイネーブルにするとＲＯＭ１３２０へのアドレスＲＯＭ入力値は“アドレスＲＡＭ信号ＡＲＡＭの値＋５０００”となり、ＲＯＭ１３２０は、あたかも５２００番地以降に命令コードを配置したかのような読み出し動作をすることが出来る。
＜実施の形態４＞
しかしながら、以上の方法では、テストモード信号がイネーブルの場合、リードイネーブル選択回路１３４１はＲＯＭ読出し信号ＲＯＭＲＥを、アドレス選択回路２３４２はＲＯＭアドレス信号ＡＲＯＭを、常に非選択にするため、ＣＰＵ１３１０がＲＯＭ１３２０から読出しを出来ないなど、所定の動作が正常に出来ない場合がある。また、読出し動作が出来ないため、ＲＯＭ１３２０の読出し動作電流が少なくなってしまう。
【００６５】
再び、図５を用い、ＲＯＭ１３２０の９ＦＦＦ番地のデータ読み出し命令を例に示す。当該命令コードはＲＡＭ１３３０の０９００番地に配置している。ＣＰＵ１３１０は読み出した命令コードをデコードし、実行すると、ＲＯＭアドレス信号ＡＲＯＭを“９ＦＦＦ”に、ＲＯＭ読出し信号ＲＯＭＲＥをイネーブルにする。しかし、テストモード信号がイネーブルの時は、上記のように非選択になるため、実際にはＲＯＭ１３２０には入力できず、読み出すことが出来ない。
【００６６】
以下、上記問題を解決する本発明の実施の形態４に係る半導体集積回路について説明する。
まず、図５，図６を用いて実施の形態４における半導体集積回路の構成を説明する。
【００６７】
図６は本発明の実施の形態４に係る半導体集積回路の構成図である。
４１００は半導体集積回路であり、機能ブロック１２００とマイコン部４３００で構成する。マイコン部４３００は、ＣＰＵ１３１０、ＲＯＭ１３２０、ＲＡＭ１３３０と後に述べるＲＯＭ制御部４３４０を構成要素とする。
【００６８】
同図において、半導体集積回路４１００の構成要素のうち、半導体集積回路３１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【００６９】
ＲＯＭ制御部４３４０はリードイネーブル選択回路１３４１とアドレス選択回路２３４２とアドレス変換回路３３４３と選択回路制御部４３４４を構成要素とし、実施の形態３記載のＲＯＭ制御部３３４０が選択回路制御部４３４４を備えることで、更に、ＲＯＭ読出し信号ＲＯＭＲＥがイネーブルならば、リードイネーブル選択回路１３４１がＲＯＭ読出し信号ＲＯＭＲＥを選択し、アドレス選択回路２３４２がＲＯＭアドレス信号ＡＲＯＭを選択するように制御でき、ＲＡＭ１３３０にアクセスするテストモード時であっても、ＣＰＵ１３１０によるＲＯＭ１３２０への読出し動作が可能となる。
【００７０】
次に、上述の構成を備える半導体集積回路４１００の動作について説明する。
半導体集積回路４１００のテストを行う場合、まず、半導体集積回路４１００の外部に構成されたＬＳＩテスタ００００から半導体集積回路４１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０に配置する。ＣＰＵ１３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路４１００は動作プログラムに準じた所定の動作状態となる。
【００７１】
ここで、半導体集積回路４１００が実動作モードであり、テストモード信号がディスイネーブルの場合、実施の形態３と同様にアドレス選択回路２３４２は、ＲＯＭアドレス信号ＡＲＯＭを選択し、リードイネーブル選択回路１３４１は、ＲＯＭ読出し信号ＲＯＭＲＥを選択し、ＲＯＭ１３２０へ出力する。
【００７２】
テストモード信号がイネーブルの場合の動作を、再度図５を例に示す。
ＲＡＭ１３３０の０９００番地には命令コードが配置され、その内容はＲＯＭ１３２０の９ＦＦＦ番地のデータを読み出し、ＲＡＭ１３３０の３０００番地へ転送する転送命令である。
【００７３】
ＲＯＭ読出し信号ＲＯＭＲＥがディスイネーブルならば、選択回路制御部４３４４はリードイネーブル選択回路１３４１がＲＡＭ読出し信号ＲＡＭＲＥを選択し、アドレス選択回路２３４２がＲＡＭアドレス信号ＡＲＡＭを選択するように制御することで、実施の形態３のテストモード信号がイネーブルの場合と同じ動作になる。
【００７４】
ＣＰＵ１３１０が、上記転送命令の命令コードをＲＡＭ１３３０から読み出し、実行すると、ＲＯＭアドレス信号ＡＲＯＭは“９ＦＦＦ”になり、ＲＯＭ読出し信号ＲＯＭＲＥはイネーブルになる。ＲＯＭ読出し信号ＲＯＭＲＥがイネーブルになったことで、選択回路制御部４３４４はリードイネーブル選択回路１３４１がＲＯＭ読出し信号ＲＯＭＲＥを選択し、アドレス選択回路２３４２がＲＯＭアドレス信号ＡＲＯＭを選択するように制御する。そして、テストモード信号がディスイネーブルの場合と同様に、アドレス選択回路２３４２は、ＣＰＵ１３１０が出力したＲＯＭアドレス信号ＡＲＯＭ“９ＦＦＦ”を選択し、ＲＯＭ１３２０のＡＲＯＭ入力へ出力する。リードイネーブル選択回路１３４１は、ＣＰＵ１３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択し、ＲＯＭ１３２０のＲＯＭＲＥ入力へ出力する。以上により、テストモード時においても、ＲＯＭ１３２０の９ＦＦＦ番地のデータを読み出すことが出来る。
【００７５】
つまり、テストモード中であっても、ＣＰＵ１３１０がＲＯＭ１３２０を読み出す時は、選択回路制御部４３４４により、リードイネーブル選択回路１３４１がＲＯＭ読出し信号ＲＯＭＲＥを選択し、アドレス選択回路２３４２がＲＯＭアドレス信号ＡＲＯＭを選択するように制御することで、ＲＯＭ１３２０の読出しが可能となる。
【００７６】
このように、実施の形態４では、ＲＯＭ制御部４３４０を備えることで、ＣＰＵ１３１０のＲＯＭ１３２０読出し動作を行う場合には、テストモード時でもＣＰＵ１３１０のＲＯＭ１３２０読出し動作を行うことが出来るので、動作プログラムに準じた所定の動作を正常に行いながら、ＲＯＭ１３２０の読出し動作電流を少なくすることなく、動作時電源電流テストを行うことが出来る。
【００７７】
なお、本実施の形態記載の選択回路制御部４３４４は、イネーブル状態をＨとした場合、１個のＡＮＤゲートと１個のＮＯＴゲートで容易に実現できる。
＜実施の形態５＞
ところで、記憶装置の読出し速度がＣＰＵの１マシンサイクルより遅い場合、アドレス信号や読出し信号に記憶装置の読み出し時間に合わせたＷＡＩＴを加え、数マシンサイクルにわたって読出し状態を保たせることで、読出しを行わせることがある。一般的にＲＡＭに比べＲＯＭ特にＦＬＡＳＨ−ＥＥＰＲＯＭの読出し速度は遅く、ＲＯＭのＷＡＩＴ設定をＲＡＭよりも長くする場合がある。図７のＲＡＭおよびＲＯＭのデータ読み出しタイミング図における図７（ａ）はＲＡＭ１３３０の読出しが０ウエイト、ＲＯＭ１３２０の読出しが２ＷＡＩＴとした例のタイミング図である。ＲＯＭ１３２０の読出しには２ＷＡＩＴを加えた読出しイネーブル期間が必要である。
【００７８】
このような場合、実施の形態１〜４で示した動作時電源電流テストを行い、読出しイネーブル期間の短いＲＡＭ読出し信号１３２０をＲＯＭ１３２０に入力しても、読出し期間が十分でないため、ＲＯＭ１３２０の読み出し動作を完了できず、正常なＲＯＭ１３２０にかかる読出し動作電流の測定ができない。また、ＲＡＭ１３３０から命令コードを読み出すと、ＷＡＩＴ数が少ない分、ＣＰＵ１３１０への単位時間当たりの命令供給量が増加し、パイプラインストールが発生しにくくなる。そのため、単位時間当たりの実行命令数が増加し、ＣＰＵ１３１０にかかる動作電流は増加する。以上より、正常な動作時電源電流をテスト出来ない恐れがある。
【００７９】
以下、上記問題を解決する本発明の実施の形態５に係る半導体集積回路について説明する。
まず、図７，図８を用いて実施の形態５における半導体集積回路の構成を説明する。
【００８０】
図８は本発明の実施の形態５に係る半導体集積回路の構成図である。
５１００は半導体集積回路であり、機能ブロック１２００とマイコン部４３００で構成される。マイコン部５３００は、ＣＰＵ５３１０、ＲＯＭ１３２０、ＲＡＭ１３３０、ＲＯＭ制御部４３４０を構成要素とする。
【００８１】
同図において、半導体集積回路５１００の構成要素のうち、半導体集積回路４１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【００８２】
ＣＰＵ５３１０はＣＰＵ１３１０とＷＡＩＴ制御部５３１１を構成要素とし、ＣＰＵ１３１０とＷＡＩＴ制御部５３１１を備えることで、ＲＡＭの読出し動作に係るＷＡＩＴ数を制御することが可能となり、テストモード信号により、あらかじめ設定したテストモード用のＷＡＩＴ数または通常動作モード用のＷＡＩＴ数に切り替える機能を有する。
【００８３】
次に、上述の構成を備える半導体集積回路５１００の動作について図７（ｂ）を用いて説明する。ここで、ＲＡＭ１３３０の読出しには０ＷＡＩＴ、ＲＯＭ１３２０の読出しには２ＷＡＩＴ必要だとする。また、あらかじめＷＡＩＴ制御部５３１１には、ＲＯＭ１３２０読み出に必要な２ＷＡＩＴをテストモード用ＷＡＩＴ数として設定する。
【００８４】
半導体集積回路５１００のテストを行う場合、まず、半導体集積回路５１００の外部に構成されたＬＳＩテスタ００００から半導体集積回路５１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０に配置する。ＣＰＵ５３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路５１００は動作プログラムに準じた所定の動作状態となる。
【００８５】
ここで、テストモード信号がイネーブルの場合、ＷＡＩＴ制御部５３１１はＲＡＭ１３３０読出しのＷＡＩＴ設定をテストモード用ＷＡＩＴに切り替え、ＣＰＵ５３１０は２ＷＡＩＴ分の読出しイネーブル期間を保持したＲＡＭ読出し信号ＲＡＭＲＥと２ＷＡＩＴ分のアドレス保持期間を持つＲＡＭアドレス信号ＡＲＡＭを出力し、ＲＯＭ制御部４３４０の制御で、ＲＯＭ１３２０の読出し動作をする。
【００８６】
このように実施の形態５では、ＷＡＩＴ制御部５３１１を内蔵するＣＰＵ５３１０を備えることで、ＲＡＭの読出し動作にＷＡＩＴ設定をすることができ、ＲＯＭ１３２０の読出しに必要な読出し期間をＲＡＭ１３３０の読出し信号に持たせることができるため、ＲＯＭ１３２０の読み出し動作を正しく完了させ、単位時間当たりの実行命令数の増加を抑制した通常動作と同じ状態で、動作時電源電流をテスト出来るようにしたものである。
【００８７】
なお、ＣＰＵ１３１０がソフトウェアによって内蔵ＲＡＭ読出しのＷＡＩＴ数を変更できる機能を有する構成にすることもできる。ただし、半導体集積回路外部に接続するさまざまな読出し速度の記憶装置に対応するためソフトウェアにより外部記憶装置へのＷＡＩＴ数を変更できるようにする機能を設けたとしても、内蔵する記憶装置に対しては、半導体集積回路設計段階で動作速度が判り、ソフトウェアでウエイト数を変更する必要がないため、必要なウエイト数に固定している場合が多い。
＜実施の形態６＞
しかしながら、実施の形態５に係る半導体集積回路では以下の問題点がある。本来の実使用条件に比べＲＡＭ１３３０アクセスのＷＡＩＴ数が多いため、ＲＡＭ１３３０の読出し動作期間が当該ＷＡＩＴ数分増えてしまう。そのため、ＲＡＭ１３３０の読出し電流が増加し、動作時電源電流が増えてしまう。
【００８８】
以下、上記問題を解決する本発明の実施の形態６に係る半導体集積回路について説明する。
まず、図７，図９を用いて実施の形態６における半導体集積回路の構成を説明する。
【００８９】
図９は本発明の実施の形態６に係る半導体集積回路の構成図である。
６１００は半導体集積回路であり、機能ブロック１２００とマイコン部６３００で構成される。マイコン部６３００は、ＣＰＵ５３１０、ＲＯＭ１３２０、ＲＡＭ１３３０、ＲＯＭ制御部４３４０と、後に述べるＷＡＩＴマスク部６３５０を構成要素とする。同図において、半導体集積回路６１００の構成要素のうち、半導体集積回路５１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【００９０】
ＷＡＩＴマスク部６３５０は、テストモード信号がイネーブルの時、ＲＡＭ読出し信号ＲＡＭＲＥのイネーブル期間をあらかじめ設定した期間マスクすることで、ＲＡＭ１３３０の読出し動作期間を短縮する機能を有する。
【００９１】
次に、上述の構成を備える半導体集積回路６１００の動作について図７（ｃ）を用いて説明する。ここで、ＲＡＭ１３３０の読出しには０ＷＡＩＴ、ＲＯＭ１３２０の読出しには２ＷＡＩＴ必要だとする。
【００９２】
また、あらかじめＷＡＩＴ制御部５３１１には、ＲＯＭ１３２０読み出に必要な２ＷＡＩＴをテストモード用ＷＡＩＴに設定する。更に、ＷＡＩＴマスク回路６３５０はＲＡＭ１３３０とＲＯＭ１３２０のＷＡＩＴ期間の差分である２ＷＡＩＴ期間をマスクするように設定する。
【００９３】
半導体集積回路６１００のテストを行う場合、まず、半導体集積回路６１００の外部に構成されたＬＳＩテスタ００００から半導体集積回路６１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０に配置する。ＣＰＵ５３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路６１００は動作プログラムに準じた所定の動作状態となる。
【００９４】
ここで、テストモード信号がイネーブルの場合、ＷＡＩＴ制御部５３１１は実施の形態５記載の動作と同様に、ＲＡＭ読出しのＷＡＩＴ設定をテストモード用ＷＡＩＴに切り替え、ＲＡＭ読出し信号ＲＡＭＲＥは２ＷＡＩＴ分の読出しイネーブル期間を保持する。
【００９５】
また、ＷＡＩＴマスク部６３５０は、テストモード信号がイネーブルの時、ＲＡＭ読出し信号ＲＡＭＲＥのイネーブル期間をあらかじめ設定した期間だけマスクしてディスイネーブルにすることで、当該期間のＲＡＭ１３３０読出し動作を停止させ、マスク後のイネーブル期間の短いＲＡＭ読出し信号ＲＡＭＲＥにより読出し動作を行う。
【００９６】
このように実施の形態６では、ＷＡＩＴマスク部６３５０を備えることで、ＲＡＭ読出し信号ＲＡＭＲＥをあらかじめ設定したＲＯＭのＷＡＩＴ期間だけマスクしてＲＡＭの読み出しをディスイネーブルすることにより、余分なＲＡＭの読み出し動作期間を削減することができるため、ＲＡＭ１３３０の読出し電流の増加を抑え、通常動作と同じ状態で、動作時電源電流を行うことが出来る。
【００９７】
なお、マスク回路はシフトレジスタ等で実現できる。
また、本実施の形態では、ＷＡＩＴ制御部５３１１によるテストＷＡＩＴ設定は、ＲＡＭ１３３０読出しのみを有効とした構成であるが、同様に書き込み用のＷＡＩＴ制御部を備えることにより、書き込みに関しても設定が有効となる構成にすることも可能であり、更に、ＷＡＩＴマスク部６３５０をＲＡＭの書き込み信号にも適応させることもできる。
＜実施の形態７＞
しかしながら、上記構成ではテストモード信号がイネーブルの時、半導体集積回路の動作時電源電流を正確にテスト出来ない場合がある。例えば、前述のようにＲＡＭに比べＲＯＭの読出し速度が遅い場合、処理速度を低下させないことを目的に、図１０に示す本発明の実施の形態６に係るメモリのメモリマップを示す図からわかるように、動作プログラムの一部であるサブプログラムをＲＯＭ１３２０からＲＡＭ１３３０に転送し、ＲＡＭから命令コードを読み出して実行することがある。そのような動作プログラムの動作時電源電流をテストする場合、当該サブプログラムを実行する期間は、ＲＯＭ制御部４３３０の制御によるＲＯＭ読み出し動作を行う必要はない。また、サブプログラム実行にかかるＲＡＭ１３３０への命令読出しは通常用のＷＡＩＴ設定で読み出す必要がある。このように、上記構成ではテストモード信号がイネーブルの時、リードイネーブル選択回路１３４１によるＲＯＭ１３２０の読出し動作が行われ、ＲＯＭ１３２０の読出し電流が増加してしまう問題が生じる。また、ＷＡＩＴ制御部５３１１によるＷＡＩＴ数増加に伴い、ＲＡＭ１３３０の読み出し頻度が低下する。そのため、ＲＡＭ１３３０読出し電流は減少する。また、ＣＰＵ１３１０への単位時間当たりの命令供給量が低下することにより、ＣＰＵ５３１０の単位時間当たりの実行命令数が減少し、ＣＰＵ５３１０の動作電流も減少する。
【００９８】
以下、上記問題を解決する本発明の実施の形態７に係る半導体集積回路について説明する。
まず、図１０，図１１を用いて実施の形態７における半導体集積回路の構成を説明する。
【００９９】
図１１は本発明の実施の形態７に係る半導体集積回路の構成図である。
７１００は半導体集積回路であり、機能ブロック１２００とマイコン部７３００で構成される。マイコン部７３００は、ＣＰＵ５３１０、ＲＯＭ１３２０、ＲＡＭ１３３０、ＲＯＭ制御部４、ＷＡＩＴマスク部６３５０と、後に述べるテストモードキャンセル部７３６０を構成要素とする。同図において、半導体集積回路７１００の構成要素のうち、半導体集積回路６１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【０１００】
テストモードキャンセル部７３６０は、キャンセル開始アドレス設定部ＣＳＡ７３６１、キャンセル終了アドレス設定部ＣＥＡ７３６２、アドレス比較部７３６３、キャンセル実行部７３６４で構成される。キャンセル開始アドレス設定部ＣＳＡ７３６１で示されるＲＡＭ１３３０のアドレスからキャンセル終了アドレス設定部ＣＥＡ７３６２で示されるＲＡＭ１３３０のアドレスまでの範囲がテストモードをキャンセルするキャンセル区間として設定され、アドレス比較部７３６３はＲＡＭアドレス信号ＡＲＡＭがキャンセル区間になると、キャンセル信号ＣＳＬをイネーブルにする。
【０１０１】
キャンセル実行部７３６４はＲＡＭ読出し信号ＲＡＭＲＥがイネーブルの時に、キャンセル信号ＣＳＬがイネーブルになるとテストモード信号をディスイネーブルにする。
次に、上述の構成を備える半導体集積回路７１００の動作について再び図１０を用いて説明する。ここで、動作プログラムのメインプログラムはサブプログラムの命令コードをＲＡＭ１３３０の２０００番地から２２ＦＦ番地に転送するものとする。
【０１０２】
また、実施の形態６記載の半導体集積回路と同様に、ＲＡＭ１３３０の読出しには０ＷＡＩＴ、ＲＯＭ１３２０の読出しには２ＷＡＩＴ必要だとし、ＷＡＩＴ制御部５３１１にはテストモード用ＷＡＩＴを２ＷＡＩＴに設定し、ＷＡＩＴマスク回路６３５０は２ＷＡＩＴ期間をマスクするように設定する。
【０１０３】
さらに、あらかじめキャンセル開始アドレス設定部ＣＳＡ７３６１を２０００番地に、キャンセル終了アドレス設定部ＣＥＡ７３６２を２２ＦＦ番地に設定する。
半導体集積回路７１００のテストを行う場合、まず、半導体集積回路７１００の外部に構成されるＬＳＩテスタ００００から半導体集積回路７１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０に配置する。ＣＰＵ５３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路７１００は動作プログラムに準じた所定の動作状態となる。この過程でメインプログラムは、サブプログラムの命令コードを２０００番地から２２ＦＦ番地に転送している。
【０１０４】
テストモード信号がイネーブルの時であっても、ＣＰＵ５３１０は、メインプログラムが動作している期間、キャンセル開始アドレス設定部ＣＳＡ７３６１、キャンセル終了アドレス設定部ＣＥＡ７３６２で定義したキャンセル区間外から命令コードを読出すので、キャンセル動作は発生しない。
【０１０５】
ここで、プログラムがサブプログラムに分岐し、サブプログラム実行中について考える。
サブプログラム実行中において、ＣＰＵ５３１０は、ＲＡＭ１３１０の２０００番地から２２ＦＦ番地から命令コードを読み出す。よって、サブプログラム実行中の命令コード読出しに対して、アドレス比較部７３６３はＲＡＭアドレス信号ＡＲＡＭがキャンセル区間であると判定して、キャンセル信号ＣＳＬをイネーブルにし、キャンセル実行部７３６４はキャンセル信号ＣＳＬイネーブルを受けて、テストモード信号をディスイネーブルする。
【０１０６】
以上によりテストモードによるＲＯＭ１３２０の読出し動作を停止する。
このように実施の形態７では、テストモードキャンセル部７３６０を備えることで、特定のＲＡＭ１３３０アドレス範囲への命令コード読出しではテストモードをキャンセルすることで、ＲＯＭ制御部４３４０による、不要なＲＯＭ１３２０読出し動作を停止する。また、ＷＡＩＴ制御部５３１１による、ＲＡＭ１３２０の読み出し頻度低下を抑制し、ＲＡＭ１３３０読出し電流の減少、並びにＣＰＵ５３１０の単位時間当たりの実行命令数の減少によるＣＰＵ５３１０の動作電流の減少などを防止することが出来る。
＜実施の形態８＞
以下、本発明の実施の形態８に係る半導体集積回路について説明する。
【０１０７】
まず、図３，図１２を用いて実施の形態８における半導体集積回路の構成を説明する。
図１２は本発明の実施の形態８に係る半導体集積回路の構成図である。
８１００は半導体集積回路であり機能ブロック１２００とマイコン部８３００で構成する。機能ブロック１２００は、ＣＰＵ５３１０に制御される。マイコン部８３００は、ＣＰＵ８３１０、ＲＯＭ１３２０、ＲＡＭ１３３０と後に述べるデータ制御部８３４０とＲＡＭ制御部８３５０を構成要素とする。
【０１０８】
ＣＰＵ８３１０はプリンストンアーキテクチャに分類されるＣＰＵであり、記憶装置に対し命令読出しとデータ読出しを同時に行うことが出来ない。そのために、ＲＡＭ１３３０もしくはＲＯＭ１３２０に対して命令読出しを行っている時に、データ読出しを行うことは出来ない。
【０１０９】
データ制御部８３４０は、ＲＡＭ書き込み信号ＲＡＭＷＥがイネーブルもしくは後に述べるリードイネーブル選択回路８３５１の出力がＲＡＭの読み出しイネーブルの時は、ＲＡＭデータ信号ＤＲＡＭを選択してデータ信号ＤＡＴＡへ接続し、ＲＡＭ１３３０とＣＰＵ８３１０間のデータアクセスを行う。また、ＲＡＭ書き込み信号ＲＡＭＷＥがディスイネーブルでリードイネーブル選択回路８３５１の出力がＲＡＭの読み出しディスイネーブルの時は、ＲＯＭデータ信号ＤＲＯＭを選択してデータ信号ＤＡＴＡへ接続し、ＣＰＵ８３１０はＲＯＭ１３２０のデータを読み出す。
【０１１０】
ＲＡＭ制御部８３５０は、リードイネーブル選択回路８３５１を構成要素としリードイネーブル選択回路８３５１は、テストモード信号がディスイネーブルの時にはＣＰＵ８３１０が出力したＲＡＭ読出し信号ＲＡＭＲＥを選択し、イネーブルの時には、ＣＰＵ８３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択することで、ＲＡＭ１３３０のＲＡＭの読み出しイネーブルを示す信号を出力し、ＲＡＭ１３３０の読出し動作を制御する機能を有する。
【０１１１】
次に、上述の構成を備える半導体集積回路８１００の動作について、再び図３を例に説明する。図３では、ＲＡＭ１３３０のアドレス空間は００００番地〜３ＦＦＦ番地であり、ＲＯＭ１３２０のアドレス空間は００００番地〜２ＢＦＦＦ番地である場合を示している。
【０１１２】
半導体集積回路８１００のテストを行う場合、まず、半導体集積回路８１００の外部に構成されるＬＳＩテスタ００００から半導体集積回路８１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０の０２００番地から配置する。テストモード信号がディスイネーブルの場合、リードイネーブル選択回路８３５１は、ＣＰＵ８３１０が出力したＲＡＭ読出し信号ＲＡＭＲＥを選択し、ＲＡＭ１３３０のＲＡＭ読出し信号入力へ出力する。
【０１１３】
テストモード信号をイネーブルにし、ＲＯＭ１３２０の０２００番地へ分岐して動作時電源電流テスト動作になると、リードイネーブル選択回路８３４１は、ＣＰＵ８３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択し、ＲＡＭ１３３０のＲＡＭ読出し信号入力へ出力することにより、ＲＯＭ読出し信号ＲＯＭＲＥによってＲＡＭ１３３０に配置された命令コードの読み出し動作が行われ、ＲＡＭ１３３０からはアドレス信号ＡＤＤＲの指し示す２００番地の命令コードが読み出され、ＲＡＭデータ信号ＤＲＡＭからＣＰＵ８３１０のＤＡＴＡ入出力に出力する。また、この時にも、ＲＯＭ読出し信号ＲＯＭＲＥはＲＯＭ１３２０に入力されているので、データ制御部８３４０に出力データがマスクされているものの、ＲＯＭ１３２０も命令コード読み出し動作状態を維持している。
【０１１４】
つまり、テストモード信号をイネーブルにすると、ＲＯＭ１３２０への命令コード読み出し動作で、ＲＡＭ１３３０から命令コードを読出し、ＲＡＭ１３３０から読み出した命令コードをＣＰＵ８３１０へ与えることで、あたかもＲＡＭ１３３０に配置した命令コードをＲＯＭ１３２０から読み出したようにＣＰＵ８３１０入力する。以上により、ＣＰＵ８３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、ＲＯＭに配置した場合と同様にＲＯＭが読み出し動作をした状態で、半導体集積回路８１００は動作プログラムに準じた所定の動作状態になる。
【０１１５】
このように、実施の形態８では、テストモード信号をイネーブルにし、ＲＡＭ１３３０の読出し動作と同時に、ＲＯＭ１３２０も読み出し動作状態にすることで、ＲＯＭ１３２０の読出し動作電流を含んだ状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
＜実施の形態９＞
しかしながら、実施の形態８の構成では、ＲＯＭ１３２０へ命令を読出す時のアドレス信号ＡＤＤＲの値がＲＡＭ１３３０のアドレス空間範囲外になる場合、ＲＡＭ１３３０から正常に命令コードを読出すことが出来ず、動作プログラムが正常に動作せず、テストが不可能になる。
【０１１６】
以下、上記問題を解決する本発明の実施の形態９に係る半導体集積回路について説明する。
まず、図５，図１３を用いて実施の形態９における半導体集積回路の構成を説明する。
【０１１７】
図１３は本発明の実施の形態９に係る半導体集積回路の構成図である。
９１００は半導体集積回路であり、機能ブロック１２００とマイコン部９３００で構成される。機能ブロック１２００は、ＣＰＵ８３１０に制御される。マイコン部９３００は、ＣＰＵ８３１０、ＲＯＭ１３２０、ＲＡＭ１３３０、データ制御回路８３４０、後に述べるＲＡＭ制御部９３５０を構成要素とする。図１３において、半導体集積回路９１００の構成要素のうち、半導体集積回路８１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【０１１８】
ＲＡＭ制御部９３５０は、リードイネーブル選択回路８３５１とアドレス変換回路９３５２を構成要素とし、実施の形態８記載のＲＡＭ制御部８３５０が更にアドレス変換回路９３５２を備えることで、テストモード信号がイネーブルの時、アドレス信号ＡＤＤＲをあらかじめ決められた論理で変換し、変換したアドレス信号ＡＤＤＲＥＣをＲＡＭ１３３０のＲＡＭアドレス信号入力へ出力する機能を有したものである。
【０１１９】
次に、上述の構成を備える半導体集積回路９１００の動作について、再び図５を例に説明をする。ＲＡＭ１３３０のアドレス空間は００００番地〜３ＦＦＦ番地であり、ＲＯＭ１３２０のアドレス空間は４０００番地〜２ＦＦＦＦ番地であり、アドレス変換回路９３５２の変換論理はあらかじめ設定した補正値をアドレス信号ＡＤＤＲの値から減算する構成とし、補正値は５０００にすることで、変換後のアドレス信号ＡＤＤＲＥＣの値が”ＡＤＤＲ−５０００”になるとする。
【０１２０】
半導体集積回路９１００のテストを行う場合、まず、半導体集積回路９１００の外部に構成されたＬＳＩテスタ００００から半導体集積回路９１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０の２００番地から配置する。
【０１２１】
ここで、テストモード信号がイネーブルの場合、ＲＯＭ１３２０の５２００番地へ分岐すると、リードイネーブル選択回路８３５１は、ＣＰＵ８３１０が出力したＲＯＭ読出し信号ＲＯＭＲＥを選択し、ＲＡＭ１３３０のＲＡＭ読出し信号入力へ出力する。アドレス変換回路９３５２はアドレス信号ＡＤＤＲを５２００から２００に変換する。よってＲＡＭ１３３０からは変換後のアドレス信号ＡＤＤＲＥＣが指し示す２００番地の命令コードが読み出され、ＲＡＭデータ信号ＤＲＡＭを出力する。
【０１２２】
つまり、テストモード信号をイネーブルにすると、ＲＯＭ１３２０へ読み出し動作を行うことで、アドレス変換回路８３５２で変換したアドレス信号ＡＤＤＲＥＣの指し示すＲＡＭ１３３０のアドレスから命令コードを読出し、ＲＡＭ１３３０から読み出した命令コードをＣＰＵ８３１０へ与えることで、実行することが出来る。
【０１２３】
以上により、ＣＰＵ８３１０がＲＡＭ１３３０から命令コードを読出し、実行することで、半導体集積回路９１００は動作プログラムに準じた所定の動作状態になる。
このように、実施の形態９では、ＲＡＭ制御部９３５０を備えることで、アドレス信号ＡＤＤＲの値をアドレス変換回路９３５２でアドレス信号ＡＤＤＲを変換することにより、ＲＡＭ１３３０から正常に命令コードを読出すことが可能となる。
＜実施の形態１０＞
しかしながら、以上の方法では、テストモード信号がイネーブルの場合、リードイネーブル選択回路８３５１はＲＡＭ読出し信号ＲＡＭＲＥを常に非選択にするため、ＣＰＵ１３１０がＲＡＭ１３３０から読出しを行えない。また、ＲＡＭ１３３０へ書き込みをする場合、アドレス変換回路９３５２が常にアドレスを変換するので、本来の書き込み先アドレスに書き込みが出来なくなり、またＲＡＭ１３３０のアドレス空間外のアドレスに変換すれば書き込みそのものが行えない可能性もある。例えば、スタック領域をＲＡＭ１３３０に設定した場合、動作プログラムが当該領域のデータを参照出来ないため、動作プログラムが暴走してしまう恐れがある。
【０１２４】
以下、上記問題を解決する本発明の実施の形態１０に係る半導体集積回路について説明する。
まず、図５，図１４を用いて実施の形態１０における半導体集積回路の構成を説明する。
【０１２５】
図１４は本発明の実施の形態９に係る半導体集積回路の構成図である。
Ａ１００は半導体集積回路であり、機能ブロック１２００とマイコン部Ａ３００で構成される。機能ブロック１２００は、ＣＰＵ８３１０に制御される。マイコン部Ａ３００は、ＣＰＵ８３１０、ＲＯＭ１３２０、ＲＡＭ１３３０、データ制御回路８３４０と後に述べるＲＡＭ制御部Ａ３５０を構成要素とする。図１４において、半導体集積回路Ａ１００の構成要素のうち、半導体集積回路９１００の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
【０１２６】
ＲＡＭ制御部Ａ３５０は、リードイネーブル選択回路８３５１、アドレス変換回路９３５２と選択変換回路制御部Ａ３５３を構成要素とし、実施の形態８記載のＲＡＭ制御部９３５０が更に選択変換回路制御部Ａ３５３を備えることで、ＲＡＭ読出し信号ＲＡＭＲＥがイネーブルならば、リードイネーブル選択回路８３５１がＲＡＭ読出し信号ＲＡＭＲＥを選択し、アドレス変換回路９３５２が変換を停止するよう制御を行い、ＲＡＭ書き込み信号ＲＡＭＷＥがイネーブルならば、アドレス変換回路９３５２の変換を停止するよう制御することでＣＰＵ８３１０によるＲＡＭ１３３０への読出し動作と書き込み動作を保障する機能を有する。
【０１２７】
次に、上述の構成を備える半導体集積回路Ａ１００の動作について、図５を例に説明する。図５では、ＲＡＭ１３３０のアドレス空間は００００番地〜３ＦＦＦ番地であり、ＲＯＭ１３２０のアドレス空間は４０００番地〜２ＦＦＦＦ番地であり、アドレス変換回路９３５２の変換論理はあらかじめ設定した補正値をアドレス信号ＡＤＤＲの値にマイナスする構成とし、補正値は５０００にすることで、変換後のアドレス信号ＡＤＤＲＥＣの値が”ＡＤＤＲ−５０００”になる場合を示す。
【０１２８】
半導体集積回路Ａ１００のテストを行う場合、まず、半導体集積回路Ａ１００の外部に構成されたＬＳＩテスタ００００から半導体集積回路Ａ１００へ動作プログラムを転送し、命令コードをＲＡＭ１３３０の２００番地から配置する。ここで、テストモード信号がディスイネーブルの場合、実施の形態９と同様に動作する。
【０１２９】
テストモード信号がイネーブルである間は、ＲＡＭ１３３０への書き込み及び読出しがなければ、ＲＡＭ書き込み信号ＲＡＭＷＥ及びＲＡＭ読出し信号ＲＡＭＲＥはディスイネーブルなので、リードイネーブル選択回路８３５１がＲＯＭ読出し信号ＲＯＭＲＥを選択し、アドレス変換回路９３５２が変換を実行することで、実施の形態９と同様に動作する。
【０１３０】
この状態で割り込み動作が発生し、ＲＡＭ１３３０の３０００番地へ復帰アドレスを待避するとする。ＲＡＭ１３３０書き込みの時には、ＲＡＭ書き込み信号ＲＡＭＷＥがイネーブルとなり、選択変換回路制御部Ａ３５３の制御により、アドレス変換回路９３５２が変換を停止するので、ＲＡＭ１３３０の３０００番地へ復帰アドレスを書き込むことが出来る。また、割り込み処理が完了すると、退避した復帰アドレスをＲＡＭ１３３０から読出す。この時、ＲＡＭ読出し信号ＲＡＭＲＥがイネーブルとなるので、選択変換回路制御部Ａ３５３の制御により、リードイネーブル選択回路８３５１がＲＡＭ読出し信号ＲＡＭＲＥを選択し、アドレス変換回路９３５２が変換を停止するので、ＲＡＭ１３３０の３０００番地から復帰アドレスを読み出し、正常に割り込みを完了することが出来る。
【０１３１】
このように、実施の形態１０では、ＲＡＭ制御部Ａ３５０を備えることで、テストモードがイネーブル期間でのＣＰＵ８３１０のＲＡＭ１３３０の書き込み及び読出し動作を保障することが出来、テストに使用できる動作プログラムの自由度を増やすことが出来る。
【０１３２】
なお、前述のようにＲＡＭに比べＲＯＭの読出し速度が遅い場合でも、本構成ではＲＯＭ読出し信号ＲＯＭＲＥをＲＡＭ１３２０に入力しているので、ＷＡＩＴ制御部５３１１による制御は必要ない。また、同様に、テストモードキャンセル部７３６０も必要ない。
【０１３３】
以上、本発明に係る半導体集積回路の実施の形態１〜１０について説明したが、実施の形態で示した半導体集積回路を以下のように部分的に変形することも出来る。
実施の形態１ではハーバードアーキテクチャであるＣＰＵ１３１０を構成要素としたが、プリンストンアーキテクチャであるＣＰＵ８３１０を構成要素としても、同様の効果を実現できる。
【０１３４】
実施の形態４では選択回路制御部４３４４を、ＲＯＭ制御部４３４０に適用したが、ＲＯＭ制御部１３４０、２３４０、３３４０に適用することも可能である。
実施の形態５〜７では、構成要素としてＲＯＭ制御部４３４０を有していたが、ＲＯＭ制御部４３４０の代わりに、ＲＯＭ制御部１３４０もしくはＲＯＭ制御部２３４０もしくはＲＯＭ制御部３３４０を構成要素としたものでもよい。
【０１３５】
実施の形態７では、構成要素としてＷＡＩＴ制御部５３１１及びＷＡＩＴマスク部６３５０を有していたが、構成要素としてＷＡＩＴマスク部６３５０のみ、もしくはＷＡＩＴ制御部５３１１及びＷＡＩＴマスク部６３５０を有していなくてもよい。
【０１３６】
テストモードキャンセル部７３９０に１組のキャンセル開始アドレス設定部ＣＳＡとキャンセル終了アドレス設定部ＣＥＡを備えることで、一区間のキャンセル区間を設定している。複数組のキャンセル開始アドレス設定部ＣＳＡとキャンセル終了アドレス設定部ＣＥＡを備えることで、複数区間のキャンセル区間を設定することも可能である。
【０１３７】
テストモードキャンセル部７３９０に別途キャンセル許可信号などを備えて、キャンセル機能の許可を設定することも可能である。
実施の形態１０では、構成要素としてアドレス変換回路９３５２を有していたが、構成要素としてアドレス変換回路９３５２を有していなくてもよい。
【０１３８】
実施の形態８〜１０に対し、ＷＡＩＴマスク６３５０を適応することも可能である。
データ制御部８３４０の制御に、選択回路制御部４３４４を適用し、ＣＰＵ８３１０によるＲＯＭ１３３０へのデータ読出しを保障することも可能である。ただし、制御条件はＲＯＭ読み出し信号ＲＯＭＲＥだけでなく、データ読出しであるという条件も必要である。
【０１３９】
また、以上の説明では、ＲＡＭ，ＲＯＭを例に説明したが、その他の記憶装置に置き換えることも可能である。
【産業上の利用可能性】
【０１４０】
本発明は、動作プログラムの命令コードをＲＡＭに配置し、ＣＰＵがＲＡＭから命令コードを読み出して動作しても、ＲＯＭに配置した場合と同様にＲＯＭが読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来、動作時電源電流テストを行う半導体集積回路等に有用である。
【図面の簡単な説明】
【０１４１】
【図１】本発明の実施の形態１に係る半導体集積回路の構成図
【図２】本発明の実施の形態２に係る半導体集積回路の構成図
【図３】本発明の実施の形態２に係るメモリのメモリマップを示す図
【図４】本発明の実施の形態３に係る半導体集積回路の構成図
【図５】本発明の実施の形態３に係るメモリのメモリマップを示す図
【図６】本発明の実施の形態４に係る半導体集積回路の構成図
【図７】ＲＡＭおよびＲＯＭのデータ読み出しタイミング図
【図８】本発明の実施の形態５に係る半導体集積回路の構成図
【図９】本発明の実施の形態６に係る半導体集積回路の構成図
【図１０】本発明の実施の形態６に係るメモリのメモリマップを示す図
【図１１】本発明の実施の形態７に係る半導体集積回路の構成図
【図１２】本発明の実施の形態８に係る半導体集積回路の構成図
【図１３】本発明の実施の形態９に係る半導体集積回路の構成図
【図１４】本発明の実施の形態１０に係る半導体集積回路の構成図
【図１５】従来の記憶装置に記憶された命令コードをＣＰＵが実行した時の動作時電源電流測定テストを説明する構成図
【符号の説明】
【０１４２】
００００    ＬＳＩテスタ
０１００、１１００、２１００、３１００、４１００、５１００、６１００、７１００、８１００、９１００、Ａ１００    半導体集積回路
０２００、１２００    機能ブロック
０３００、１３００、２３００、３３００、４３００、５３００、６３００、７３００、８３００、９３００、Ａ３００    マイコン部
０３１０、１３１０、５３１０、８３１０    ＣＰＵ
０３２０、１３２０    ＲＯＭ
０３３０、１３３０    ＲＡＭ
１３４０、２３４０、３３４０、４３４０    ＲＯＭ制御部
１３４１    リードイネーブル選択回路
２３４２    アドレス選択回路
３３４３    アドレス変換回路
４３４４    選択回路制御部
５３１１    ＷＡＩＴ制御部
６３５０    ＷＡＩＴマスク部
７３６０    テストモードキャンセル部
７３６１    キャンセル開始アドレス設定部ＣＳＡ
７３６２    キャンセル終了アドレス設定部ＣＥＡ
７３６３    アドレス比較部
７３６４    キャンセル実行部
８３４０    データ制御部
８３５０、９３５０、Ａ３５０    ＲＡＭ制御部
８３５１    リードイネーブル選択回路
９３５２    アドレス変換部
Ａ３５３    選択変換制御部
【図１】
2006252361.tif 000003
【図２】
2006252361.tif 000004
【図３】
2006252361.tif 000005
【図４】
2006252361.tif 000006
【図５】
2006252361.tif 000007
【図６】
2006252361.tif 000008
【図７】
2006252361.tif 000009
【図８】
2006252361.tif 000010
【図９】
2006252361.tif 000011
【図１０】
2006252361.tif 000012
【図１１】
2006252361.tif 000013
【図１２】
2006252361.tif 000014
【図１３】
2006252361.tif 000015
【図１４】
2006252361.tif 000016
【図１５】
2006252361.tif 000017