JP2006252361A - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP2006252361A
JP2006252361A JP2005070187A JP2005070187A JP2006252361A JP 2006252361 A JP2006252361 A JP 2006252361A JP 2005070187 A JP2005070187 A JP 2005070187A JP 2005070187 A JP2005070187 A JP 2005070187A JP 2006252361 A JP2006252361 A JP 2006252361A
Authority
JP
Japan
Prior art keywords
storage device
cpu
read
semiconductor integrated
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005070187A
Other languages
English (en)
Inventor
Masanobu Kuboshima
昌伸 久保島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005070187A priority Critical patent/JP2006252361A/ja
Publication of JP2006252361A publication Critical patent/JP2006252361A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Microcomputers (AREA)

Abstract

【課題】 動作プログラムの命令コードをRAM1320に配置し、CPU1310はRAM1310から命令コードを読み出しても、ROM1320が読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来る半導体集積回路を提供することを目的とする。
【解決手段】 テストモード信号をイネーブルにし、RAM1330の命令コード読出し動作と同時に、ROM1320も読み出し動作状態にするROM制御部1340を備えることで、ROM1320の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
【選択図】 図1

Description

本発明は、動作時電源電流テストを行う半導体集積回路に関する。
現在、半導体集積回路のテストにはLSIテスタが幅広く使われ、テスト項目の一つとして動作時電源電流テストがある。
従来、CPU、ROM、RAMを搭載する半導体集積回路の所定の動作における動作時電源電流をテストするには、動作プログラムの命令コードをROMに配置するか、または、LSIテスタより転送しRAMに配置させ、CPUがそれぞれの記憶装置より命令コードを読み出して実行することで、テスト対象である半導体集積回路を所定の動作状態において、LSIテスタで電源電流をテストしていた。
以下、図15を参照して従来のCPU、ROM、RAMを搭載する半導体集積回路の所定の動作における動作時電源電流テストについて説明する。
図15は従来の記憶装置に記憶された命令コードをCPUが実行した時の動作時電源電流測定テストを説明する構成図である。
図15において、0100は半導体集積回路であり機能ブロック0200とマイコン部0300で構成される。機能ブロック0200はCPU0310が制御する。マイコン部0300はCPU0310、ROM0320、RAM0330を構成要素とする。
0000はLSIテスタであり、半導体集積回路0100に接続している。
LSIテスタ0000のテスト手順は以下の通りである。
動作プログラムの命令コードをROMに配置する場合には、あらかじめ、ROM0320に動作プログラムの命令コードを記憶させ、CPU0310がROM0320から命令コードを読出して実行する。
また、動作プログラムの命令コードをRAMに配置する場合には、まず、LSIテスタ0000から半導体集積回路0100へ動作プログラムを転送し、命令コードをRAM0330に配置する。次に、CPU0310がRAM0330から命令コードを読出し、実行する。
上記の手順を経て、半導体集積回路0100は動作プログラムに準じた所定の動作状態になり、この時の動作時電源電流をテストする(例えば、特許文献1参照)。
特開2003−98229号公報
ところが上記のテスト方法には、それぞれ以下の問題があった。
まず、ROMに配置する方法では、マスクROMの場合、あらかじめ動作プログラムの命令コードを半導体マスクに埋め込む必要がある。動作プログラムを変更する場合、高価な半導体マスクを修正し、更に、修正した半導体マスクで拡散工程からやりなおさなければならないため、迅速な修正は不可能である。FLASH−EEPROMの場合では、半導体マスクに埋め込む必要はないので、修正は容易になる。しかし、あらかじめ動作時電源電流テストの前工程で動作プログラムの命令コードを書き込む必要があるため、テスト工程の変更や、書き込み工数増加による生産性低下やコスト増加の恐れがある。また、動作プログラムを変更する場合、当該テストのテストプログラムの変更ばかりでなく、書き込み工程も変更しなければならない。
一方、RAMに配置する方法では、当該テストの前工程であらかじめ動作プログラムの命令コードを配置する必要はなく、また、動作プログラムの変更は当該テストのテストプログラムの変更だけで済み、上記の問題点は解決できる。
しかし、CPUはRAMから命令コードを読出すことになるため、ROMへの命令コード読出し動作は全く行われない。そのため、テストする動作時電源電流はROMの命令読出し動作電流成分が全くないものになる。半導体集積回路の実使用時において、CPUがRAMから命令コードを読出して実行することは少なく、ほとんどがROMから読み出して実行する。そのような使用条件の動作プログラムをRAMに配してテストすると、テスト条件が実使用条件と乖離してしまうと言う問題点があった。
動作プログラムにROMへのデータ読出し命令を加えることにより、ROMの読出し頻度を上げることも出来るが、命令コード読出し頻度に比べ、格段に読出し頻度が低いため、不十分であり、かつ、動作プログラムを変えるため、テスト時の動作状態は、本来の動作プログラムに準じた所定の動作と異なった状態になってしまう。
そこで、本発明は、これら上記の問題点を解決するために、動作プログラムの命令コードをRAMに配置し、CPUがRAMから命令コードを読み出して動作しても、ROMに配置した場合と同様にROMが読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来る半導体集積回路を提供することを目的とする。
上記目的を達成するために、本発明の請求項1記載の半導体集積回路は、機能ブロックと、通常動作時に実行される命令コードを配置する第1の記憶装置と、テストモード時に実行される外部から入力された命令コードを配置することが可能な第2の記憶装置と、命令コードを実行するCPUと、通常動作モード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号を選択し、テストモード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号を選択して前記第1の記憶装置に出力する制御部とを有し、テストモード時には前記第1の記憶装置の読み出し動作を行いながら前記第2の記憶装置に配置された命令コードを用いて前記CPUを動作させて動作時電源電流テストを行うことを特徴とする。
請求項2記載の半導体集積回路は、請求項1記載の半導体集積回路において、前記制御部が、通常動作モード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号および前記第1の記憶装置のアドレス信号を選択し、テストモード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号および前記第2の記憶装置のアドレス信号を選択して前記第1の記憶装置に出力することを特徴とする。
請求項3記載の半導体集積回路は、請求項2記載の半導体集積回路において、前記制御部が、更に、テストモード時に前記第2の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、テストモード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号および前記変換されたアドレス信号を選択して前記第1の記憶装置に出力することを特徴とする。
請求項4記載の半導体集積回路は、請求項1記載の半導体集積回路において、前記制御部が、テストモード時であったとしても、前記第1の記憶装置のリードイネーブル信号入力期間中には、前記第1の記憶装置のリードイネーブル信号入力を選択して前記第1の記憶装置に出力することを特徴とする。
請求項5記載の半導体集積回路は、請求項2または請求項3のいずれかに記載の半導体集積回路において、前記制御部が、テストモード時であったとしても、前記第1の記憶装置のリードイネーブル信号入力期間中には、前記CPUから出力する前記第1の記憶装置のリードイネーブル信号および前記第1の記憶装置のアドレス信号を選択して前記第1の記憶装置に出力することを特徴とする。
請求項6記載の半導体集積回路は、請求項1または請求項2または請求項3または請求項4または請求項5のいずれかに記載の半導体集積回路において、前記CPUが、更にテストモード時に、第2の記憶装置のリードイネーブル信号に所定の保持期間を持たせるWAIT制御部を備えることを特徴とする。
請求項7記載の半導体集積回路は、請求項6記載の半導体集積回路において、前記第2の記憶装置のリードイネーブル信号に持たせた保持期間をあらかじめ設定した期間マスクするWAITマスク部を備えることを特徴とする。
請求項8記載の半導体集積回路は、請求項1または請求項2または請求項3または請求項4または請求項5または請求項6または請求項7のいずれかに記載の半導体集積回路において、前記第2の記憶装置のアドレス信号があらかじめ設定した1または複数のアドレス期間である場合には、テストモード時であってもテストモードをキャンセルするテストモードキャンセル部を備えることを特徴とする。
請求項9記載の半導体集積回路は、機能ブロックと、通常動作時に実行される命令コードを配置する読み取り専用の第1の記憶装置と、テストモード時に実行される外部から入力された命令コードを配置することが可能な第2の記憶装置と、命令コードを実行するCPUと、通常動作モード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号を選択し、テストモード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号を選択して前記第2の記憶装置にリードイネーブル信号として出力するイネーブル信号制御部と、前記第2の記憶装置のライトイネーブル信号がイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がイネーブル時には前記第2の記憶装置と前記CPU間のデータアクセスを選択し、前記第2の記憶装置のライトイネーブル信号がディスイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がディスイネーブル時には前記第1の記憶装置と前記CPU間のデータアクセスを選択する制御を行うデータ制御部とを有し、テストモード時には前記第1の記憶装置の読み出し動作を行いながら前記第2の記憶装置に配置された命令コードを用いて前記CPUを動作させて動作時電源電流テストを行うことを特徴とする。
請求項10記載の半導体集積回路は、請求項9記載の半導体集積回路において、前記イネーブル信号制御部が、更に、テストモード時に前記第2の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、テストモード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号を選択して前記第2の記憶装置に出力し、前記変換されたアドレス信号を前記第2の記憶装置に出力することを特徴とする。
請求項11記載の半導体集積回路は、請求項9または請求項10のいずれかに記載の半導体集積回路において、前記イネーブル信号制御部が、テストモード時であったとしても、前記第2の記憶装置のリードイネーブル信号入力期間中には、前記CPUから出力する前記第2の記憶装置のリードイネーブル信号を選択して前記第2の記憶装置に出力し、前記第2の記憶装置のリードイネーブル信号入力期間中、または前記第2の記憶装置のライトイネーブル信号入力期間中には、前記アドレス変換回路によるアドレス変換を停止することを特徴とする。
請求項12記載の半導体集積回路は、請求項1または請求項2または請求項3または請求項4または請求項5または請求項6または請求項7または請求項8または請求項9または請求項10または請求項11のいずれかに記載の半導体集積回路において、前記第1の記憶装置がROMで前記第2の記憶装置がRAMであることを特徴とする。
以上により、動作プログラムの命令コードをRAMに配置し、CPUがRAMから命令コードを読み出して動作しても、ROMに配置した場合と同様にROMが読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来る。
本発明の半導体集積回路は、テストモード時に、CPUによる第2の記憶装置の読み出しと同時に第1の記憶装置も読み出し状態にする記憶装置制御手段を備えることにより、テストモードで第1の記憶装置の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
更に、テストモード時に、第1の記憶装置に第2の記憶装置と同じアドレスを入力することにより、第2の記憶装置のアドレスの値が第1の記憶装置のアドレス空間範囲内ならば正常に第1の記憶装置の読出し動作が行われた状態で動作時電源電流テストを行うことが可能となる。
更に、テストモード時に、第2の記憶装置のアドレスの値が第1の記憶装置のアドレス空間範囲外の場合でも、第1の記憶装置へ入力するアドレスを第1の記憶装置のアドレス空間範囲に合うように変換することにより、正常に第1の記憶装置の読出し動作が行われた状態で、所定の動作の動作時電源電流テストを行うことが出来る。
更に、テストモード時に、前記CPUによる第1の記憶装置への読出し動作を優先することにより、第1の記憶装置の読出し動作電流減少を抑制して、所定の動作の動作時電源電流テストを行うことが出来る。
更に、CPUがWAIT設定手段を備え、第2の記憶装置の読出し動作にWAIT設定することで、テストモードにおいて第1の記憶装置の読出しに必要な読出し期間を前記第2の記憶装置の読出し信号に持たせることができるため、第1の記憶装置制御手段により発生するCPUの単位時間当たりの実行命令数増加を抑制し、かつ第1の記憶装置の読出し動作を正しく完了させた状態で、所定の動作の動作時電源電流テストを行うことが出来る。
更に、WAITマスク手段を備えることで、テストモード時に、CPUの第2の記憶装置の読出し動作に設定したWAIT期間を非読出し状態に強制することで、読出し動作期間を削減することができるため、WAIT設定手段による第2の記憶装置の読出し電流の増加を抑えた状態で、所定の動作の動作時電源電流テストを行うことが出来る。
更に、テストモードキャンセル手段を備えることで、第2の記憶装置の特定アドレス範囲への読出しではテストモードをキャンセルすることができるため、テストモード時に、第1の記憶装置制御手段により発生する不要な第1の記憶装置の読出し動作を停止することで、第1の記憶装置の読出し動作電流増加を抑制し、かつWAITマスク手段により発生する第2の記憶装置の読み出し頻度低下を抑制することで、第2の記憶装置の読出し電流の減少と、CPUの単位時間当たりの実行命令数減少によるCPU動作電流の減少を防止して、所定の動作の動作時電源電流テストを行うことが出来る。
また、CPUによる第1の記憶装置への命令コード読み出し動作で第2の記憶装置から命令コードを読み出す記憶装置制御手段と、テストモード時に、第2の記憶装置のデータ出力信号をCPUに入力するデータ制御手段を備えることにより、テストモードで、第1の記憶装置の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
更に、テストモード時に、第1の記憶装置のアドレス値が第2の記憶装置のアドレス空間範囲外の場合でも、第1の記憶装置へ入力するアドレスを第2の記憶装置のアドレス空間範囲に合うように変換することにより、正常に第2の記憶装置から命令を読出し、実行させることができ、所定の動作の動作時電源電流テストを行うことが出来る。
更に、テストモード時に、CPUによる第2の記憶装置への書き込み及び読出し動作を優先させることができることにより、テストに使用できる動作プログラムの自由度を増やし、第1の記憶装置の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが出来る。
<実施の形態1>
以下、本発明の実施の形態1に係る半導体集積回路について説明する。
まず、図1を用いて実施の形態1における半導体集積回路の構成を説明する。
図1は本発明の実施の形態1に係る半導体集積回路の構成図である。
1100は半導体集積回路であり、機能ブロック1200とマイコン部1300で構成される。機能ブロック1200はCPU1100が制御を行う。マイコン部1300はCPU1310、ROM1320、RAM1330と後に述べるROM制御部1340を構成要素とする。
CPU1310はハーバードアーキテクチャに分類されるCPUであり、記憶装置に対し、命令読出しとデータ読出しを同時に行うことが出来る。
ROM制御部1340はリードイネーブル選択回路1341を構成要素とし、テストモード信号がディスイネーブルの時にはCPU1310が出力したROM読出し信号ROMREを選択し、イネーブルの時には、CPU1310が出力したRAM読出し信号RAMREを選択してROM1320のROMRE入力に出力することで、テストモード信号がイネーブルでRAMアクセス状態でも、ROMを読み出し状態にする機能を有する。
次に、上述の構成を備える半導体集積回路1100の動作について説明する。
半導体集積回路1100のテストを行う場合、まず、半導体集積回路1100の外部に構成されるLSIテスタ0000から半導体集積回路1100へ動作プログラムを転送し、命令コードをRAM1330に配置する。CPU1310がRAM1330から命令コードを読出し、実行することで、半導体集積回路1100は動作プログラムに準じた所定の動作状態となる。
ここで、半導体集積回路1100が実動作モードであり、テストモード信号がディスイネーブルの場合、リードイネーブル選択回路1341は、CPU1310が出力したROM読出し信号ROMREを選択し、ROM1320のROMRE入力へ出力する。
一方、テストモード信号がイネーブルの場合、リードイネーブル選択回路1341は、CPU1310が出力したRAM読出し信号RAMREを選択し、ROM1320のROMRE入力へ出力する。RAM読出し信号RAMREがイネーブルになるとROM1320はROMアドレス信号AROMの指し示すアドレスが読み出され、ROMデータ信号DROMに出力する。
つまりテストモード信号をイネーブルにすると、RAM1330への命令コード読出し動作と同時に、ROM1320も読み出し動作状態になる。
このように、実施の形態1では、動作時電源電流テスト時に、テストモード信号をイネーブルにし、RAM1330の命令コード読出し動作と同時に、ROM1320も読み出し動作状態にするROM制御部1340を備えることで、ROM1320の読出し動作をした状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
なお、テストモード信号は、レジスタ設定などで容易に実現できる。また、テストモード信号をイネーブルにしたことで、読み出したROMデータ信号DROMはCPU1310へ入力するが、CPU1310はROM1320への読出し動作を行っていないので、誤動作などの問題はない。また、テスト値は、CPU1310がROM1320に配置した命令コードの読み出し動作をする場合に比べ、RAM1330の読出し動作にかかる電流分が増えるが、電流の増分が検査規格値とテスト値の差に比べ十分小さければ、歩留低下の恐れはない。もしくはRAM1330の命令コード読出し動作にかかる電流分をあらかじめ見積もり、検査規格値を修正すればよい。
<実施の形態2>
しかしながら、実施の形態1では、次の問題がある。CPUの種類にもよるが、CPU1310はROM1320への命令コード読出し動作をしていないので、ROMアドレス信号AROMの値が不確定になる場合がある。例えば、ROMアドレス信号AROMの値がROM1320のアドレス空間の範囲外ならば、正常にROM読出し動作が行われない可能性がある。
以下、上記問題を解決する本発明の実施の形態2に係る半導体集積回路について説明する。
まず、図2,図3を用いて実施の形態2における半導体集積回路の構成を説明する。
図2は本発明の実施の形態2に係る半導体集積回路の構成図、図3は本発明の実施の形態2に係るメモリのメモリマップを示す図である。
2100は半導体集積回路であり、機能ブロック1200とマイコン部2300で構成される。マイコン部2300は、CPU1310、ROM1320、RAM1330、後に述べるROM制御部2340を構成要素とする。
同図において、半導体集積回路2100の構成要素のうち、半導体集積回路1100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
ROM制御部2340はリードイネーブル選択回路1341とアドレス選択回路2342を構成要素とし、実施の形態1記載のROM制御部1340が、アドレス選択回路2342を備えることで、更に、テストモード信号がディスイネーブルの時にはCPU1310が出力したROMアドレス信号AROMを選択し、イネーブルの時には、CPU1310が出力したRAMアドレス信号ARAMを選択してROM1320に出力することで、テストモード信号がイネーブルでRAMアクセス状態でも、RAMのアクセスアドレスをROMにも入力してROMを読み出し状態にする機能を有したものである。
次に、上述の構成を備える半導体集積回路2100の動作について説明する。
半導体集積回路2100のテストを行う場合、まず、半導体集積回路2100の外部に構成されるLSIテスタ0000から半導体集積回路2100へ動作プログラムを転送し、命令コードをRAM1330に配置する。CPU1310がRAM1330から命令コードを読出し、実行することで、半導体集積回路2100は動作プログラムに準じた所定の動作状態となる。
ここで、半導体集積回路2100が実動作モードであり、テストモード信号がディスイネーブルの場合、アドレス選択回路2342は、CPU1310が出力したROMアドレス信号AROMを選択し、ROM1320のAROM入力へ出力する。リードイネーブル選択回路1341は、CPU1310が出力したROM読出し信号ROMREを選択し、ROM1320のROMRE入力へ出力する。
一方、テストモード信号がイネーブルの場合、アドレス選択回路2342は、CPU1310が出力したRAMアドレス信号ARAMを選択し、ROM1320のAROM入力へ出力する。リードイネーブル選択回路1341は、CPU1310が出力したRAM読出し信号RAMREを選択し、ROM1320のROMRE入力へ出力する。RAM読出し信号RAMREがイネーブルになると、ROM1320はRAMアドレス信号ARAMの指し示すアドレスを読み出し、ROMデータ信号DROMを出力する。
図3を用いて、RAM1330のアドレス空間が0000番地〜3FFF番地で、命令コードが0200番地〜0FFF番地に格納し、ROM1320のアドレス空間が0000番地〜2BFFF番地である例を挙げ説明する。
転送した動作プログラムの命令コードをRAM1330の0200番地から0FFF番地に配置し、動作プログラムを実行しているとする。ここでテストモード信号がイネーブルの時に、例えば、RAM1330の500番地の命令コード読み出すと、同時にROM1320の500番地を読み出す。
つまり、テストモード信号をイネーブルにすると、RAM1330への命令コード読出し動作と同時に、ROM1320もRAMアドレス信号ARAMの指し示す同じアドレスに対して読み出し動作をする。
このように、実施の形態2では、ROM制御部2340を備えることで、動作時電源電流テスト時に、テストモード信号がイネーブルならば、RAM1330への命令コード読出しと同時に、ROM1320も読み出し動作状態になると共に、RAMアドレス信号ARAMが指し示すアドレスを、ROM1320へ入力することにより、ROM1320を正常に読み出し動作をした状態にして、所定の動作の動作時電源電流テストが可能となる。
<実施の形態3>
しかしながら、以上の方法では、RAMアドレス信号ARAMの値がROM1320のアドレス空間範囲外になる場合、正常にROM1320の読出し動作が行われない可能性がある。
以下、上記問題を解決する本発明の実施の形態3に係る半導体集積回路について説明する。
まず、図4,図5を用いて実施の形態3における半導体集積回路の構成を説明する。
図4は本発明の実施の形態3に係る半導体集積回路の構成図、図5は本発明の実施の形態3に係るメモリのメモリマップを示す図である。
3100は半導体集積回路であり、機能ブロック1200とマイコン部3300で構成される。マイコン部3300は、CPU1310、ROM1320、RAM1330、後に述べるROM制御部3340を構成要素とする。
同図において、半導体集積回路3100の構成要素のうち、半導体集積回路2100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
ROM制御部3340はリードイネーブル選択回路1341とアドレス選択回路2342とアドレス変換回路3343を構成要素とし、実施の形態2記載のROM制御部2340が更にアドレス変換回路3343を備えることで、入力したRAMアドレス信号ARAMをあらかじめ決められた論理で変換し、テストモード信号がイネーブルの時には、アドレス選択回路2342はアドレス変換回路3343が変換したRAMアドレス信号ARAMECを選択し、ROM1320のROMアドレス信号入力へ出力することで、テストモード信号がイネーブルでRAMアクセス状態でも、ROMを読み出し状態にすると共に、ROMのアドレス空間に対応したRAMのアクセスアドレスをROMにも入力する機能を有したものである。
次に、上述の構成を備える半導体集積回路3100の動作について説明する。
半導体集積回路3100のテストを行う場合、まず、半導体集積回路3100の外部に構成されるLSIテスタ0000から半導体集積回路3100へ動作プログラムを転送し、命令コードをRAM1330に配置する。CPU1310がRAM1330から命令コードを読出し、実行することで、半導体集積回路3100は動作プログラムに準じた所定の動作状態となる。
ここで、半導体集積回路3100が実動作モードであり、テストモード信号がディスイネーブルの場合、アドレス選択回路2342は、CPU1310が出力したROMアドレス信号AROMを選択し、ROM1320のAROM入力へ出力する。リードイネーブル選択回路1341は、CPU1310が出力したROM読出し信号ROMREを選択し、ROM1320のROMRE入力へ出力する。
一方、テストモード信号がイネーブルの場合、アドレス選択回路2342は、アドレス変換回路3343が出力したRAMアドレス信号ARAMECを選択し、ROM1320のAROM入力へ出力する。リードイネーブル選択回路1341は、CPU1310が出力したRAM読出し信号RAMREを選択し、ROM1320のROMRE入力へ出力する。RAM読出し信号RAMREがイネーブルになると、ROM1320はアドレス変換回路3343で変換したRAMアドレス信号ARAMECが指し示すアドレスを読み出し、ROMデータ信号DROMを出力する。
つまり、テストモード信号をイネーブルにすると、RAM1330の読出し動作と同時に、ROM1320もアドレス変換回路3343がROM1320のアクセス空間内のアドレスに変換したRAMアドレス信号ARAMECが指し示す、ROM1320のアドレスに対して読み出し動作をする。
このように、実施の形態3では、動作時電源電流テスト時に、テストモード信号がイネーブルならば、RAM1330への命令コード読出しと同時に、ROM1320も読み出し動作状態になると共に、ROM制御部3340を備えることで、RAMアドレス信号ARAMの値がROM1320のアドレス空間範囲外の場合でも、RAMアドレス信号ARAMを変換することで、ROM1320へ入力するアドレスを、ROM1320のアドレス空間範囲に合うように調整することが可能となり、アドレス空間範囲が異なる場合でも、正常にROM1320を読み出した状態で、所定の動作の動作時電源電流テストを行うことが出来る。
なお、アドレス変換回路3343の変換論理はレジスタ設定などで実現できる。ここで、アドレス変換回路3343の一例として、図5に示す、RAM1330のアドレス空間が0000番地から3FFF番地、ROM1320のアドレス空間が4000番地から2FFFF番地である場合を挙げて説明する。変換論理はレジスタ値をRAMアドレス信号ARAMの値に加算するという構成にする。あらかじめレジスタに補正値として4000を設定すると、変換後のRAMアドレス信号ARAMECの値は4000以上となり、ROM1320のアドレス空間に収まるよう調整される。例えば、所定の動作プログラムの命令コードをROM1320の5200番地から配置した場合に相当する動作時電源電流テストをするならば、まず、転送したプログラムの命令コードをRAM1330の200番地から配置し、補正値を5000に設定する。そして、テストモードをイネーブルにするとROM1320へのアドレスROM入力値は“アドレスRAM信号ARAMの値+5000”となり、ROM1320は、あたかも5200番地以降に命令コードを配置したかのような読み出し動作をすることが出来る。
<実施の形態4>
しかしながら、以上の方法では、テストモード信号がイネーブルの場合、リードイネーブル選択回路1341はROM読出し信号ROMREを、アドレス選択回路2342はROMアドレス信号AROMを、常に非選択にするため、CPU1310がROM1320から読出しを出来ないなど、所定の動作が正常に出来ない場合がある。また、読出し動作が出来ないため、ROM1320の読出し動作電流が少なくなってしまう。
再び、図5を用い、ROM1320の9FFF番地のデータ読み出し命令を例に示す。当該命令コードはRAM1330の0900番地に配置している。CPU1310は読み出した命令コードをデコードし、実行すると、ROMアドレス信号AROMを“9FFF”に、ROM読出し信号ROMREをイネーブルにする。しかし、テストモード信号がイネーブルの時は、上記のように非選択になるため、実際にはROM1320には入力できず、読み出すことが出来ない。
以下、上記問題を解決する本発明の実施の形態4に係る半導体集積回路について説明する。
まず、図5,図6を用いて実施の形態4における半導体集積回路の構成を説明する。
図6は本発明の実施の形態4に係る半導体集積回路の構成図である。
4100は半導体集積回路であり、機能ブロック1200とマイコン部4300で構成する。マイコン部4300は、CPU1310、ROM1320、RAM1330と後に述べるROM制御部4340を構成要素とする。
同図において、半導体集積回路4100の構成要素のうち、半導体集積回路3100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
ROM制御部4340はリードイネーブル選択回路1341とアドレス選択回路2342とアドレス変換回路3343と選択回路制御部4344を構成要素とし、実施の形態3記載のROM制御部3340が選択回路制御部4344を備えることで、更に、ROM読出し信号ROMREがイネーブルならば、リードイネーブル選択回路1341がROM読出し信号ROMREを選択し、アドレス選択回路2342がROMアドレス信号AROMを選択するように制御でき、RAM1330にアクセスするテストモード時であっても、CPU1310によるROM1320への読出し動作が可能となる。
次に、上述の構成を備える半導体集積回路4100の動作について説明する。
半導体集積回路4100のテストを行う場合、まず、半導体集積回路4100の外部に構成されたLSIテスタ0000から半導体集積回路4100へ動作プログラムを転送し、命令コードをRAM1330に配置する。CPU1310がRAM1330から命令コードを読出し、実行することで、半導体集積回路4100は動作プログラムに準じた所定の動作状態となる。
ここで、半導体集積回路4100が実動作モードであり、テストモード信号がディスイネーブルの場合、実施の形態3と同様にアドレス選択回路2342は、ROMアドレス信号AROMを選択し、リードイネーブル選択回路1341は、ROM読出し信号ROMREを選択し、ROM1320へ出力する。
テストモード信号がイネーブルの場合の動作を、再度図5を例に示す。
RAM1330の0900番地には命令コードが配置され、その内容はROM1320の9FFF番地のデータを読み出し、RAM1330の3000番地へ転送する転送命令である。
ROM読出し信号ROMREがディスイネーブルならば、選択回路制御部4344はリードイネーブル選択回路1341がRAM読出し信号RAMREを選択し、アドレス選択回路2342がRAMアドレス信号ARAMを選択するように制御することで、実施の形態3のテストモード信号がイネーブルの場合と同じ動作になる。
CPU1310が、上記転送命令の命令コードをRAM1330から読み出し、実行すると、ROMアドレス信号AROMは“9FFF”になり、ROM読出し信号ROMREはイネーブルになる。ROM読出し信号ROMREがイネーブルになったことで、選択回路制御部4344はリードイネーブル選択回路1341がROM読出し信号ROMREを選択し、アドレス選択回路2342がROMアドレス信号AROMを選択するように制御する。そして、テストモード信号がディスイネーブルの場合と同様に、アドレス選択回路2342は、CPU1310が出力したROMアドレス信号AROM“9FFF”を選択し、ROM1320のAROM入力へ出力する。リードイネーブル選択回路1341は、CPU1310が出力したROM読出し信号ROMREを選択し、ROM1320のROMRE入力へ出力する。以上により、テストモード時においても、ROM1320の9FFF番地のデータを読み出すことが出来る。
つまり、テストモード中であっても、CPU1310がROM1320を読み出す時は、選択回路制御部4344により、リードイネーブル選択回路1341がROM読出し信号ROMREを選択し、アドレス選択回路2342がROMアドレス信号AROMを選択するように制御することで、ROM1320の読出しが可能となる。
このように、実施の形態4では、ROM制御部4340を備えることで、CPU1310のROM1320読出し動作を行う場合には、テストモード時でもCPU1310のROM1320読出し動作を行うことが出来るので、動作プログラムに準じた所定の動作を正常に行いながら、ROM1320の読出し動作電流を少なくすることなく、動作時電源電流テストを行うことが出来る。
なお、本実施の形態記載の選択回路制御部4344は、イネーブル状態をHとした場合、1個のANDゲートと1個のNOTゲートで容易に実現できる。
<実施の形態5>
ところで、記憶装置の読出し速度がCPUの1マシンサイクルより遅い場合、アドレス信号や読出し信号に記憶装置の読み出し時間に合わせたWAITを加え、数マシンサイクルにわたって読出し状態を保たせることで、読出しを行わせることがある。一般的にRAMに比べROM特にFLASH−EEPROMの読出し速度は遅く、ROMのWAIT設定をRAMよりも長くする場合がある。図7のRAMおよびROMのデータ読み出しタイミング図における図7(a)はRAM1330の読出しが0ウエイト、ROM1320の読出しが2WAITとした例のタイミング図である。ROM1320の読出しには2WAITを加えた読出しイネーブル期間が必要である。
このような場合、実施の形態1〜4で示した動作時電源電流テストを行い、読出しイネーブル期間の短いRAM読出し信号1320をROM1320に入力しても、読出し期間が十分でないため、ROM1320の読み出し動作を完了できず、正常なROM1320にかかる読出し動作電流の測定ができない。また、RAM1330から命令コードを読み出すと、WAIT数が少ない分、CPU1310への単位時間当たりの命令供給量が増加し、パイプラインストールが発生しにくくなる。そのため、単位時間当たりの実行命令数が増加し、CPU1310にかかる動作電流は増加する。以上より、正常な動作時電源電流をテスト出来ない恐れがある。
以下、上記問題を解決する本発明の実施の形態5に係る半導体集積回路について説明する。
まず、図7,図8を用いて実施の形態5における半導体集積回路の構成を説明する。
図8は本発明の実施の形態5に係る半導体集積回路の構成図である。
5100は半導体集積回路であり、機能ブロック1200とマイコン部4300で構成される。マイコン部5300は、CPU5310、ROM1320、RAM1330、ROM制御部4340を構成要素とする。
同図において、半導体集積回路5100の構成要素のうち、半導体集積回路4100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
CPU5310はCPU1310とWAIT制御部5311を構成要素とし、CPU1310とWAIT制御部5311を備えることで、RAMの読出し動作に係るWAIT数を制御することが可能となり、テストモード信号により、あらかじめ設定したテストモード用のWAIT数または通常動作モード用のWAIT数に切り替える機能を有する。
次に、上述の構成を備える半導体集積回路5100の動作について図7(b)を用いて説明する。ここで、RAM1330の読出しには0WAIT、ROM1320の読出しには2WAIT必要だとする。また、あらかじめWAIT制御部5311には、ROM1320読み出に必要な2WAITをテストモード用WAIT数として設定する。
半導体集積回路5100のテストを行う場合、まず、半導体集積回路5100の外部に構成されたLSIテスタ0000から半導体集積回路5100へ動作プログラムを転送し、命令コードをRAM1330に配置する。CPU5310がRAM1330から命令コードを読出し、実行することで、半導体集積回路5100は動作プログラムに準じた所定の動作状態となる。
ここで、テストモード信号がイネーブルの場合、WAIT制御部5311はRAM1330読出しのWAIT設定をテストモード用WAITに切り替え、CPU5310は2WAIT分の読出しイネーブル期間を保持したRAM読出し信号RAMREと2WAIT分のアドレス保持期間を持つRAMアドレス信号ARAMを出力し、ROM制御部4340の制御で、ROM1320の読出し動作をする。
このように実施の形態5では、WAIT制御部5311を内蔵するCPU5310を備えることで、RAMの読出し動作にWAIT設定をすることができ、ROM1320の読出しに必要な読出し期間をRAM1330の読出し信号に持たせることができるため、ROM1320の読み出し動作を正しく完了させ、単位時間当たりの実行命令数の増加を抑制した通常動作と同じ状態で、動作時電源電流をテスト出来るようにしたものである。
なお、CPU1310がソフトウェアによって内蔵RAM読出しのWAIT数を変更できる機能を有する構成にすることもできる。ただし、半導体集積回路外部に接続するさまざまな読出し速度の記憶装置に対応するためソフトウェアにより外部記憶装置へのWAIT数を変更できるようにする機能を設けたとしても、内蔵する記憶装置に対しては、半導体集積回路設計段階で動作速度が判り、ソフトウェアでウエイト数を変更する必要がないため、必要なウエイト数に固定している場合が多い。
<実施の形態6>
しかしながら、実施の形態5に係る半導体集積回路では以下の問題点がある。本来の実使用条件に比べRAM1330アクセスのWAIT数が多いため、RAM1330の読出し動作期間が当該WAIT数分増えてしまう。そのため、RAM1330の読出し電流が増加し、動作時電源電流が増えてしまう。
以下、上記問題を解決する本発明の実施の形態6に係る半導体集積回路について説明する。
まず、図7,図9を用いて実施の形態6における半導体集積回路の構成を説明する。
図9は本発明の実施の形態6に係る半導体集積回路の構成図である。
6100は半導体集積回路であり、機能ブロック1200とマイコン部6300で構成される。マイコン部6300は、CPU5310、ROM1320、RAM1330、ROM制御部4340と、後に述べるWAITマスク部6350を構成要素とする。同図において、半導体集積回路6100の構成要素のうち、半導体集積回路5100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
WAITマスク部6350は、テストモード信号がイネーブルの時、RAM読出し信号RAMREのイネーブル期間をあらかじめ設定した期間マスクすることで、RAM1330の読出し動作期間を短縮する機能を有する。
次に、上述の構成を備える半導体集積回路6100の動作について図7(c)を用いて説明する。ここで、RAM1330の読出しには0WAIT、ROM1320の読出しには2WAIT必要だとする。
また、あらかじめWAIT制御部5311には、ROM1320読み出に必要な2WAITをテストモード用WAITに設定する。更に、WAITマスク回路6350はRAM1330とROM1320のWAIT期間の差分である2WAIT期間をマスクするように設定する。
半導体集積回路6100のテストを行う場合、まず、半導体集積回路6100の外部に構成されたLSIテスタ0000から半導体集積回路6100へ動作プログラムを転送し、命令コードをRAM1330に配置する。CPU5310がRAM1330から命令コードを読出し、実行することで、半導体集積回路6100は動作プログラムに準じた所定の動作状態となる。
ここで、テストモード信号がイネーブルの場合、WAIT制御部5311は実施の形態5記載の動作と同様に、RAM読出しのWAIT設定をテストモード用WAITに切り替え、RAM読出し信号RAMREは2WAIT分の読出しイネーブル期間を保持する。
また、WAITマスク部6350は、テストモード信号がイネーブルの時、RAM読出し信号RAMREのイネーブル期間をあらかじめ設定した期間だけマスクしてディスイネーブルにすることで、当該期間のRAM1330読出し動作を停止させ、マスク後のイネーブル期間の短いRAM読出し信号RAMREにより読出し動作を行う。
このように実施の形態6では、WAITマスク部6350を備えることで、RAM読出し信号RAMREをあらかじめ設定したROMのWAIT期間だけマスクしてRAMの読み出しをディスイネーブルすることにより、余分なRAMの読み出し動作期間を削減することができるため、RAM1330の読出し電流の増加を抑え、通常動作と同じ状態で、動作時電源電流を行うことが出来る。
なお、マスク回路はシフトレジスタ等で実現できる。
また、本実施の形態では、WAIT制御部5311によるテストWAIT設定は、RAM1330読出しのみを有効とした構成であるが、同様に書き込み用のWAIT制御部を備えることにより、書き込みに関しても設定が有効となる構成にすることも可能であり、更に、WAITマスク部6350をRAMの書き込み信号にも適応させることもできる。
<実施の形態7>
しかしながら、上記構成ではテストモード信号がイネーブルの時、半導体集積回路の動作時電源電流を正確にテスト出来ない場合がある。例えば、前述のようにRAMに比べROMの読出し速度が遅い場合、処理速度を低下させないことを目的に、図10に示す本発明の実施の形態6に係るメモリのメモリマップを示す図からわかるように、動作プログラムの一部であるサブプログラムをROM1320からRAM1330に転送し、RAMから命令コードを読み出して実行することがある。そのような動作プログラムの動作時電源電流をテストする場合、当該サブプログラムを実行する期間は、ROM制御部4330の制御によるROM読み出し動作を行う必要はない。また、サブプログラム実行にかかるRAM1330への命令読出しは通常用のWAIT設定で読み出す必要がある。このように、上記構成ではテストモード信号がイネーブルの時、リードイネーブル選択回路1341によるROM1320の読出し動作が行われ、ROM1320の読出し電流が増加してしまう問題が生じる。また、WAIT制御部5311によるWAIT数増加に伴い、RAM1330の読み出し頻度が低下する。そのため、RAM1330読出し電流は減少する。また、CPU1310への単位時間当たりの命令供給量が低下することにより、CPU5310の単位時間当たりの実行命令数が減少し、CPU5310の動作電流も減少する。
以下、上記問題を解決する本発明の実施の形態7に係る半導体集積回路について説明する。
まず、図10,図11を用いて実施の形態7における半導体集積回路の構成を説明する。
図11は本発明の実施の形態7に係る半導体集積回路の構成図である。
7100は半導体集積回路であり、機能ブロック1200とマイコン部7300で構成される。マイコン部7300は、CPU5310、ROM1320、RAM1330、ROM制御部4、WAITマスク部6350と、後に述べるテストモードキャンセル部7360を構成要素とする。同図において、半導体集積回路7100の構成要素のうち、半導体集積回路6100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
テストモードキャンセル部7360は、キャンセル開始アドレス設定部CSA7361、キャンセル終了アドレス設定部CEA7362、アドレス比較部7363、キャンセル実行部7364で構成される。キャンセル開始アドレス設定部CSA7361で示されるRAM1330のアドレスからキャンセル終了アドレス設定部CEA7362で示されるRAM1330のアドレスまでの範囲がテストモードをキャンセルするキャンセル区間として設定され、アドレス比較部7363はRAMアドレス信号ARAMがキャンセル区間になると、キャンセル信号CSLをイネーブルにする。
キャンセル実行部7364はRAM読出し信号RAMREがイネーブルの時に、キャンセル信号CSLがイネーブルになるとテストモード信号をディスイネーブルにする。
次に、上述の構成を備える半導体集積回路7100の動作について再び図10を用いて説明する。ここで、動作プログラムのメインプログラムはサブプログラムの命令コードをRAM1330の2000番地から22FF番地に転送するものとする。
また、実施の形態6記載の半導体集積回路と同様に、RAM1330の読出しには0WAIT、ROM1320の読出しには2WAIT必要だとし、WAIT制御部5311にはテストモード用WAITを2WAITに設定し、WAITマスク回路6350は2WAIT期間をマスクするように設定する。
さらに、あらかじめキャンセル開始アドレス設定部CSA7361を2000番地に、キャンセル終了アドレス設定部CEA7362を22FF番地に設定する。
半導体集積回路7100のテストを行う場合、まず、半導体集積回路7100の外部に構成されるLSIテスタ0000から半導体集積回路7100へ動作プログラムを転送し、命令コードをRAM1330に配置する。CPU5310がRAM1330から命令コードを読出し、実行することで、半導体集積回路7100は動作プログラムに準じた所定の動作状態となる。この過程でメインプログラムは、サブプログラムの命令コードを2000番地から22FF番地に転送している。
テストモード信号がイネーブルの時であっても、CPU5310は、メインプログラムが動作している期間、キャンセル開始アドレス設定部CSA7361、キャンセル終了アドレス設定部CEA7362で定義したキャンセル区間外から命令コードを読出すので、キャンセル動作は発生しない。
ここで、プログラムがサブプログラムに分岐し、サブプログラム実行中について考える。
サブプログラム実行中において、CPU5310は、RAM1310の2000番地から22FF番地から命令コードを読み出す。よって、サブプログラム実行中の命令コード読出しに対して、アドレス比較部7363はRAMアドレス信号ARAMがキャンセル区間であると判定して、キャンセル信号CSLをイネーブルにし、キャンセル実行部7364はキャンセル信号CSLイネーブルを受けて、テストモード信号をディスイネーブルする。
以上によりテストモードによるROM1320の読出し動作を停止する。
このように実施の形態7では、テストモードキャンセル部7360を備えることで、特定のRAM1330アドレス範囲への命令コード読出しではテストモードをキャンセルすることで、ROM制御部4340による、不要なROM1320読出し動作を停止する。また、WAIT制御部5311による、RAM1320の読み出し頻度低下を抑制し、RAM1330読出し電流の減少、並びにCPU5310の単位時間当たりの実行命令数の減少によるCPU5310の動作電流の減少などを防止することが出来る。
<実施の形態8>
以下、本発明の実施の形態8に係る半導体集積回路について説明する。
まず、図3,図12を用いて実施の形態8における半導体集積回路の構成を説明する。
図12は本発明の実施の形態8に係る半導体集積回路の構成図である。
8100は半導体集積回路であり機能ブロック1200とマイコン部8300で構成する。機能ブロック1200は、CPU5310に制御される。マイコン部8300は、CPU8310、ROM1320、RAM1330と後に述べるデータ制御部8340とRAM制御部8350を構成要素とする。
CPU8310はプリンストンアーキテクチャに分類されるCPUであり、記憶装置に対し命令読出しとデータ読出しを同時に行うことが出来ない。そのために、RAM1330もしくはROM1320に対して命令読出しを行っている時に、データ読出しを行うことは出来ない。
データ制御部8340は、RAM書き込み信号RAMWEがイネーブルもしくは後に述べるリードイネーブル選択回路8351の出力がRAMの読み出しイネーブルの時は、RAMデータ信号DRAMを選択してデータ信号DATAへ接続し、RAM1330とCPU8310間のデータアクセスを行う。また、RAM書き込み信号RAMWEがディスイネーブルでリードイネーブル選択回路8351の出力がRAMの読み出しディスイネーブルの時は、ROMデータ信号DROMを選択してデータ信号DATAへ接続し、CPU8310はROM1320のデータを読み出す。
RAM制御部8350は、リードイネーブル選択回路8351を構成要素としリードイネーブル選択回路8351は、テストモード信号がディスイネーブルの時にはCPU8310が出力したRAM読出し信号RAMREを選択し、イネーブルの時には、CPU8310が出力したROM読出し信号ROMREを選択することで、RAM1330のRAMの読み出しイネーブルを示す信号を出力し、RAM1330の読出し動作を制御する機能を有する。
次に、上述の構成を備える半導体集積回路8100の動作について、再び図3を例に説明する。図3では、RAM1330のアドレス空間は0000番地〜3FFF番地であり、ROM1320のアドレス空間は0000番地〜2BFFF番地である場合を示している。
半導体集積回路8100のテストを行う場合、まず、半導体集積回路8100の外部に構成されるLSIテスタ0000から半導体集積回路8100へ動作プログラムを転送し、命令コードをRAM1330の0200番地から配置する。テストモード信号がディスイネーブルの場合、リードイネーブル選択回路8351は、CPU8310が出力したRAM読出し信号RAMREを選択し、RAM1330のRAM読出し信号入力へ出力する。
テストモード信号をイネーブルにし、ROM1320の0200番地へ分岐して動作時電源電流テスト動作になると、リードイネーブル選択回路8341は、CPU8310が出力したROM読出し信号ROMREを選択し、RAM1330のRAM読出し信号入力へ出力することにより、ROM読出し信号ROMREによってRAM1330に配置された命令コードの読み出し動作が行われ、RAM1330からはアドレス信号ADDRの指し示す200番地の命令コードが読み出され、RAMデータ信号DRAMからCPU8310のDATA入出力に出力する。また、この時にも、ROM読出し信号ROMREはROM1320に入力されているので、データ制御部8340に出力データがマスクされているものの、ROM1320も命令コード読み出し動作状態を維持している。
つまり、テストモード信号をイネーブルにすると、ROM1320への命令コード読み出し動作で、RAM1330から命令コードを読出し、RAM1330から読み出した命令コードをCPU8310へ与えることで、あたかもRAM1330に配置した命令コードをROM1320から読み出したようにCPU8310入力する。以上により、CPU8310がRAM1330から命令コードを読出し、実行することで、ROMに配置した場合と同様にROMが読み出し動作をした状態で、半導体集積回路8100は動作プログラムに準じた所定の動作状態になる。
このように、実施の形態8では、テストモード信号をイネーブルにし、RAM1330の読出し動作と同時に、ROM1320も読み出し動作状態にすることで、ROM1320の読出し動作電流を含んだ状態で、所定の動作の動作時電源電流テストを行うことが可能となる。
<実施の形態9>
しかしながら、実施の形態8の構成では、ROM1320へ命令を読出す時のアドレス信号ADDRの値がRAM1330のアドレス空間範囲外になる場合、RAM1330から正常に命令コードを読出すことが出来ず、動作プログラムが正常に動作せず、テストが不可能になる。
以下、上記問題を解決する本発明の実施の形態9に係る半導体集積回路について説明する。
まず、図5,図13を用いて実施の形態9における半導体集積回路の構成を説明する。
図13は本発明の実施の形態9に係る半導体集積回路の構成図である。
9100は半導体集積回路であり、機能ブロック1200とマイコン部9300で構成される。機能ブロック1200は、CPU8310に制御される。マイコン部9300は、CPU8310、ROM1320、RAM1330、データ制御回路8340、後に述べるRAM制御部9350を構成要素とする。図13において、半導体集積回路9100の構成要素のうち、半導体集積回路8100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
RAM制御部9350は、リードイネーブル選択回路8351とアドレス変換回路9352を構成要素とし、実施の形態8記載のRAM制御部8350が更にアドレス変換回路9352を備えることで、テストモード信号がイネーブルの時、アドレス信号ADDRをあらかじめ決められた論理で変換し、変換したアドレス信号ADDRECをRAM1330のRAMアドレス信号入力へ出力する機能を有したものである。
次に、上述の構成を備える半導体集積回路9100の動作について、再び図5を例に説明をする。RAM1330のアドレス空間は0000番地〜3FFF番地であり、ROM1320のアドレス空間は4000番地〜2FFFF番地であり、アドレス変換回路9352の変換論理はあらかじめ設定した補正値をアドレス信号ADDRの値から減算する構成とし、補正値は5000にすることで、変換後のアドレス信号ADDRECの値が”ADDR−5000”になるとする。
半導体集積回路9100のテストを行う場合、まず、半導体集積回路9100の外部に構成されたLSIテスタ0000から半導体集積回路9100へ動作プログラムを転送し、命令コードをRAM1330の200番地から配置する。
ここで、テストモード信号がイネーブルの場合、ROM1320の5200番地へ分岐すると、リードイネーブル選択回路8351は、CPU8310が出力したROM読出し信号ROMREを選択し、RAM1330のRAM読出し信号入力へ出力する。アドレス変換回路9352はアドレス信号ADDRを5200から200に変換する。よってRAM1330からは変換後のアドレス信号ADDRECが指し示す200番地の命令コードが読み出され、RAMデータ信号DRAMを出力する。
つまり、テストモード信号をイネーブルにすると、ROM1320へ読み出し動作を行うことで、アドレス変換回路8352で変換したアドレス信号ADDRECの指し示すRAM1330のアドレスから命令コードを読出し、RAM1330から読み出した命令コードをCPU8310へ与えることで、実行することが出来る。
以上により、CPU8310がRAM1330から命令コードを読出し、実行することで、半導体集積回路9100は動作プログラムに準じた所定の動作状態になる。
このように、実施の形態9では、RAM制御部9350を備えることで、アドレス信号ADDRの値をアドレス変換回路9352でアドレス信号ADDRを変換することにより、RAM1330から正常に命令コードを読出すことが可能となる。
<実施の形態10>
しかしながら、以上の方法では、テストモード信号がイネーブルの場合、リードイネーブル選択回路8351はRAM読出し信号RAMREを常に非選択にするため、CPU1310がRAM1330から読出しを行えない。また、RAM1330へ書き込みをする場合、アドレス変換回路9352が常にアドレスを変換するので、本来の書き込み先アドレスに書き込みが出来なくなり、またRAM1330のアドレス空間外のアドレスに変換すれば書き込みそのものが行えない可能性もある。例えば、スタック領域をRAM1330に設定した場合、動作プログラムが当該領域のデータを参照出来ないため、動作プログラムが暴走してしまう恐れがある。
以下、上記問題を解決する本発明の実施の形態10に係る半導体集積回路について説明する。
まず、図5,図14を用いて実施の形態10における半導体集積回路の構成を説明する。
図14は本発明の実施の形態9に係る半導体集積回路の構成図である。
A100は半導体集積回路であり、機能ブロック1200とマイコン部A300で構成される。機能ブロック1200は、CPU8310に制御される。マイコン部A300は、CPU8310、ROM1320、RAM1330、データ制御回路8340と後に述べるRAM制御部A350を構成要素とする。図14において、半導体集積回路A100の構成要素のうち、半導体集積回路9100の構成要素と同一のものには、同一の符号を付しており、その同一の構成要素についてはここでは説明を省略する。
RAM制御部A350は、リードイネーブル選択回路8351、アドレス変換回路9352と選択変換回路制御部A353を構成要素とし、実施の形態8記載のRAM制御部9350が更に選択変換回路制御部A353を備えることで、RAM読出し信号RAMREがイネーブルならば、リードイネーブル選択回路8351がRAM読出し信号RAMREを選択し、アドレス変換回路9352が変換を停止するよう制御を行い、RAM書き込み信号RAMWEがイネーブルならば、アドレス変換回路9352の変換を停止するよう制御することでCPU8310によるRAM1330への読出し動作と書き込み動作を保障する機能を有する。
次に、上述の構成を備える半導体集積回路A100の動作について、図5を例に説明する。図5では、RAM1330のアドレス空間は0000番地〜3FFF番地であり、ROM1320のアドレス空間は4000番地〜2FFFF番地であり、アドレス変換回路9352の変換論理はあらかじめ設定した補正値をアドレス信号ADDRの値にマイナスする構成とし、補正値は5000にすることで、変換後のアドレス信号ADDRECの値が”ADDR−5000”になる場合を示す。
半導体集積回路A100のテストを行う場合、まず、半導体集積回路A100の外部に構成されたLSIテスタ0000から半導体集積回路A100へ動作プログラムを転送し、命令コードをRAM1330の200番地から配置する。ここで、テストモード信号がディスイネーブルの場合、実施の形態9と同様に動作する。
テストモード信号がイネーブルである間は、RAM1330への書き込み及び読出しがなければ、RAM書き込み信号RAMWE及びRAM読出し信号RAMREはディスイネーブルなので、リードイネーブル選択回路8351がROM読出し信号ROMREを選択し、アドレス変換回路9352が変換を実行することで、実施の形態9と同様に動作する。
この状態で割り込み動作が発生し、RAM1330の3000番地へ復帰アドレスを待避するとする。RAM1330書き込みの時には、RAM書き込み信号RAMWEがイネーブルとなり、選択変換回路制御部A353の制御により、アドレス変換回路9352が変換を停止するので、RAM1330の3000番地へ復帰アドレスを書き込むことが出来る。また、割り込み処理が完了すると、退避した復帰アドレスをRAM1330から読出す。この時、RAM読出し信号RAMREがイネーブルとなるので、選択変換回路制御部A353の制御により、リードイネーブル選択回路8351がRAM読出し信号RAMREを選択し、アドレス変換回路9352が変換を停止するので、RAM1330の3000番地から復帰アドレスを読み出し、正常に割り込みを完了することが出来る。
このように、実施の形態10では、RAM制御部A350を備えることで、テストモードがイネーブル期間でのCPU8310のRAM1330の書き込み及び読出し動作を保障することが出来、テストに使用できる動作プログラムの自由度を増やすことが出来る。
なお、前述のようにRAMに比べROMの読出し速度が遅い場合でも、本構成ではROM読出し信号ROMREをRAM1320に入力しているので、WAIT制御部5311による制御は必要ない。また、同様に、テストモードキャンセル部7360も必要ない。
以上、本発明に係る半導体集積回路の実施の形態1〜10について説明したが、実施の形態で示した半導体集積回路を以下のように部分的に変形することも出来る。
実施の形態1ではハーバードアーキテクチャであるCPU1310を構成要素としたが、プリンストンアーキテクチャであるCPU8310を構成要素としても、同様の効果を実現できる。
実施の形態4では選択回路制御部4344を、ROM制御部4340に適用したが、ROM制御部1340、2340、3340に適用することも可能である。
実施の形態5〜7では、構成要素としてROM制御部4340を有していたが、ROM制御部4340の代わりに、ROM制御部1340もしくはROM制御部2340もしくはROM制御部3340を構成要素としたものでもよい。
実施の形態7では、構成要素としてWAIT制御部5311及びWAITマスク部6350を有していたが、構成要素としてWAITマスク部6350のみ、もしくはWAIT制御部5311及びWAITマスク部6350を有していなくてもよい。
テストモードキャンセル部7390に1組のキャンセル開始アドレス設定部CSAとキャンセル終了アドレス設定部CEAを備えることで、一区間のキャンセル区間を設定している。複数組のキャンセル開始アドレス設定部CSAとキャンセル終了アドレス設定部CEAを備えることで、複数区間のキャンセル区間を設定することも可能である。
テストモードキャンセル部7390に別途キャンセル許可信号などを備えて、キャンセル機能の許可を設定することも可能である。
実施の形態10では、構成要素としてアドレス変換回路9352を有していたが、構成要素としてアドレス変換回路9352を有していなくてもよい。
実施の形態8〜10に対し、WAITマスク6350を適応することも可能である。
データ制御部8340の制御に、選択回路制御部4344を適用し、CPU8310によるROM1330へのデータ読出しを保障することも可能である。ただし、制御条件はROM読み出し信号ROMREだけでなく、データ読出しであるという条件も必要である。
また、以上の説明では、RAM,ROMを例に説明したが、その他の記憶装置に置き換えることも可能である。
本発明は、動作プログラムの命令コードをRAMに配置し、CPUがRAMから命令コードを読み出して動作しても、ROMに配置した場合と同様にROMが読み出し動作をした状態で、所定の動作の動作時電源電流テストを実施出来、動作時電源電流テストを行う半導体集積回路等に有用である。
本発明の実施の形態1に係る半導体集積回路の構成図 本発明の実施の形態2に係る半導体集積回路の構成図 本発明の実施の形態2に係るメモリのメモリマップを示す図 本発明の実施の形態3に係る半導体集積回路の構成図 本発明の実施の形態3に係るメモリのメモリマップを示す図 本発明の実施の形態4に係る半導体集積回路の構成図 RAMおよびROMのデータ読み出しタイミング図 本発明の実施の形態5に係る半導体集積回路の構成図 本発明の実施の形態6に係る半導体集積回路の構成図 本発明の実施の形態6に係るメモリのメモリマップを示す図 本発明の実施の形態7に係る半導体集積回路の構成図 本発明の実施の形態8に係る半導体集積回路の構成図 本発明の実施の形態9に係る半導体集積回路の構成図 本発明の実施の形態10に係る半導体集積回路の構成図 従来の記憶装置に記憶された命令コードをCPUが実行した時の動作時電源電流測定テストを説明する構成図
符号の説明
0000 LSIテスタ
0100、1100、2100、3100、4100、5100、6100、7100、8100、9100、A100 半導体集積回路
0200、1200 機能ブロック
0300、1300、2300、3300、4300、5300、6300、7300、8300、9300、A300 マイコン部
0310、1310、5310、8310 CPU
0320、1320 ROM
0330、1330 RAM
1340、2340、3340、4340 ROM制御部
1341 リードイネーブル選択回路
2342 アドレス選択回路
3343 アドレス変換回路
4344 選択回路制御部
5311 WAIT制御部
6350 WAITマスク部
7360 テストモードキャンセル部
7361 キャンセル開始アドレス設定部CSA
7362 キャンセル終了アドレス設定部CEA
7363 アドレス比較部
7364 キャンセル実行部
8340 データ制御部
8350、9350、A350 RAM制御部
8351 リードイネーブル選択回路
9352 アドレス変換部
A353 選択変換制御部

Claims (12)

  1. 機能ブロックと、
    通常動作時に実行される命令コードを配置する第1の記憶装置と、
    テストモード時に実行される外部から入力された命令コードを配置することが可能な第2の記憶装置と、
    命令コードを実行するCPUと、
    通常動作モード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号を選択し、テストモード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号を選択して前記第1の記憶装置に出力する制御部と
    を有し、テストモード時には前記第1の記憶装置の読み出し動作を行いながら前記第2の記憶装置に配置された命令コードを用いて前記CPUを動作させて動作時電源電流テストを行うことを特徴とする半導体集積回路。
  2. 前記制御部が、
    通常動作モード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号および前記第1の記憶装置のアドレス信号を選択し、テストモード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号および前記第2の記憶装置のアドレス信号を選択して前記第1の記憶装置に出力する
    ことを特徴とする請求項1記載の半導体集積回路。
  3. 前記制御部が、更に、
    テストモード時に前記第2の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、
    テストモード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号および前記変換されたアドレス信号を選択して前記第1の記憶装置に出力する
    ことを特徴とする請求項2記載の半導体集積回路。
  4. 前記制御部が、
    テストモード時であったとしても、前記第1の記憶装置のリードイネーブル信号入力期間中には、前記第1の記憶装置のリードイネーブル信号入力を選択して前記第1の記憶装置に出力する
    ことを特徴とする請求項1記載の半導体集積回路。
  5. 前記制御部が、
    テストモード時であったとしても、前記第1の記憶装置のリードイネーブル信号入力期間中には、前記CPUから出力する前記第1の記憶装置のリードイネーブル信号および前記第1の記憶装置のアドレス信号を選択して前記第1の記憶装置に出力する
    ことを特徴とする請求項2または請求項3のいずれかに記載の半導体集積回路。
  6. 前記CPUが、更に
    テストモード時に、第2の記憶装置のリードイネーブル信号に所定の保持期間を持たせるWAIT制御部を
    備えることを特徴とする請求項1または請求項2または請求項3または請求項4または請求項5のいずれかに記載の半導体集積回路。
  7. 前記第2の記憶装置のリードイネーブル信号に持たせた保持期間をあらかじめ設定した期間マスクするWAITマスク部を
    備えることを特徴とする請求項6記載の半導体集積回路。
  8. 前記第2の記憶装置のアドレス信号があらかじめ設定した1または複数のアドレス期間である場合には、テストモード時であってもテストモードをキャンセルするテストモードキャンセル部を
    備えることを特徴とする請求項1または請求項2または請求項3または請求項4または請求項5または請求項6または請求項7のいずれかに記載の半導体集積回路。
  9. 機能ブロックと、
    通常動作時に実行される命令コードを配置する読み取り専用の第1の記憶装置と、
    テストモード時に実行される外部から入力された命令コードを配置することが可能な第2の記憶装置と、
    命令コードを実行するCPUと、
    通常動作モード時には前記CPUから出力する前記第2の記憶装置のリードイネーブル信号を選択し、テストモード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号を選択して前記第2の記憶装置にリードイネーブル信号として出力するイネーブル信号制御部と、
    前記第2の記憶装置のライトイネーブル信号がイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がイネーブル時には前記第2の記憶装置と前記CPU間のデータアクセスを選択し、前記第2の記憶装置のライトイネーブル信号がディスイネーブル時および前記イネーブル信号制御部のリードイネーブル信号がディスイネーブル時には前記第1の記憶装置と前記CPU間のデータアクセスを選択する制御を行うデータ制御部と
    を有し、テストモード時には前記第1の記憶装置の読み出し動作を行いながら前記第2の記憶装置に配置された命令コードを用いて前記CPUを動作させて動作時電源電流テストを行うことを特徴とする半導体集積回路。
  10. 前記イネーブル信号制御部が、更に、
    テストモード時に前記第2の記憶装置へ入力するアドレス信号を所定の論理で変換するアドレス変換回路を備え、
    テストモード時には前記CPUから出力する前記第1の記憶装置のリードイネーブル信号を選択して前記第2の記憶装置に出力し、前記変換されたアドレス信号を前記第2の記憶装置に出力する
    ことを特徴とする請求項9記載の半導体集積回路。
  11. 前記イネーブル信号制御部が、
    テストモード時であったとしても、前記第2の記憶装置のリードイネーブル信号入力期
    間中には、前記CPUから出力する前記第2の記憶装置のリードイネーブル信号を選択して前記第2の記憶装置に出力し、
    前記第2の記憶装置のリードイネーブル信号入力期間中、または前記第2の記憶装置のライトイネーブル信号入力期間中には、前記アドレス変換回路によるアドレス変換を停止する
    ことを特徴とする請求項9または請求項10のいずれかに記載の半導体集積回路。
  12. 前記第1の記憶装置がROMで前記第2の記憶装置がRAMであることを特徴とする請求項1または請求項2または請求項3または請求項4または請求項5または請求項6または請求項7または請求項8または請求項9または請求項10または請求項11のいずれかに記載の半導体集積回路。
JP2005070187A 2005-03-14 2005-03-14 半導体集積回路 Pending JP2006252361A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005070187A JP2006252361A (ja) 2005-03-14 2005-03-14 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005070187A JP2006252361A (ja) 2005-03-14 2005-03-14 半導体集積回路

Publications (1)

Publication Number Publication Date
JP2006252361A true JP2006252361A (ja) 2006-09-21

Family

ID=37092774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005070187A Pending JP2006252361A (ja) 2005-03-14 2005-03-14 半導体集積回路

Country Status (1)

Country Link
JP (1) JP2006252361A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114654A1 (ja) * 2007-03-21 2008-09-25 Advantest Corporation 試験装置および電子デバイス
US10720202B2 (en) 2018-08-21 2020-07-21 Fujitsu Limited Apparatus for memory control

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008114654A1 (ja) * 2007-03-21 2008-09-25 Advantest Corporation 試験装置および電子デバイス
US7725794B2 (en) 2007-03-21 2010-05-25 Advantest Corporation Instruction address generation for test apparatus and electrical device
JPWO2008114654A1 (ja) * 2007-03-21 2010-07-01 株式会社アドバンテスト 試験装置および電子デバイス
US10720202B2 (en) 2018-08-21 2020-07-21 Fujitsu Limited Apparatus for memory control

Similar Documents

Publication Publication Date Title
JP3867862B2 (ja) 半導体集積回路およびメモリの検査方法
JP4601305B2 (ja) 半導体装置
JP4889357B2 (ja) 試験装置、プログラムおよび試験方法
JP4044075B2 (ja) 半導体集積回路の試験回路及び試験方法
JP2005031018A (ja) 半導体集積回路装置
JP2006252361A (ja) 半導体集積回路
JP2008262630A (ja) 半導体集積回路及びメモリ検査方法
US7110305B2 (en) Nonvolatile semiconductor memory device for outputting a status signal having an output data width wider than an input data width
US7047444B2 (en) Address selection for testing of a microprocessor
JP2007335809A (ja) 半導体装置及び半導体装置の動作制御方法
US20110238883A1 (en) Information processing device
KR20010085537A (ko) 반도체 장치 및 그 테스트 방법
KR20040002440A (ko) 자기 테스트 기능 내장 반도체 집적 회로 및 그것을구비한 시스템
KR20080034061A (ko) 정상 동작 속도로 테스트 가능한 시스템온칩 및 그 테스트방법
US20230176871A1 (en) Semiconductor device and test method thereof, and non-transitory computer readable medium
JP2006228357A (ja) 半導体装置および半導体装置の検査方法
KR100800132B1 (ko) 반도체 메모리 장치의 테스트 모드 엔트리 방법 및 이를 이용한 테스트 모드 신호선이 배치된 반도체 메모리 장치
JP2004198367A (ja) 半導体装置及びその試験方法
US20070226573A1 (en) System on chip having test circuit
JP2004333246A (ja) 半導体装置
JP2008257418A (ja) マイクロコンピュータ及びマイクロコンピュータの動作設定方法
JP2009038234A (ja) 半導体集積回路装置
JP2003331600A (ja) 半導体テスト回路と半導体テスト方法
JP2008111682A (ja) 半導体試験方法および半導体試験装置
JP2007018710A (ja) 半導体装置及びその試験方法