説明

半導体集積回路

【課題】 マイクロコンピュータ等の半導体集積回路がユーザモードで正常に動作することをプログラムメモリに試験用プログラムを格納せずに短時間で確認できるようにする。
【解決手段】 半導体集積回路(100)は、プログラムメモリ(114)と、中央処理ユニット(111)と、内部情報レジスタ(131a)とを備える。中央処理ユニット(111)は、ユーザモード時にはプログラムメモリ(114)に格納されたプログラムを実行し、テストモード時には外部装置から供給されるプログラムを実行する。内部情報レジスタ(131a)は、ユーザモードでの起動時にユーザモードでの起動の証拠となる内部情報を格納する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路に関する。
【背景技術】
【0002】
一般に、マイクロコンピュータ等のLSI(Large Scale Integration)では、内蔵のプログラムメモリに格納されたプログラムをCPU(Central Processing Unit)が実行するユーザモードと、外部装置(テスタ装置等)から供給されるプログラムをCPUが実行するテストモードとが設けられている。通常、LSIがどちらのモードで動作するかについては、モード設定用外部端子(モード端子)の入力信号に応じて決定される。
【0003】
この種のLSIの試験工程では、LSIがユーザモードで正常に動作することを確認するための試験(ユーザモード動作試験)が行われる。この試験は、例えば、試験用プログラムをプログラムメモリに格納することで実現される。
【0004】
また、回路動作の一部または全部を停止させて電源電流を制御できる回路構成にすることで、マイクロコンピュータがユーザモードで動作していることを電源電流の測定によって確認できるようにする技術が考案されている(例えば、特許文献1を参照)。
【0005】
ユーザモード動作試験を行うために試験用プログラムをプログラムメモリに格納する場合、次のような問題がある。プログラムメモリがフラッシュメモリ等の書き換え可能なメモリであれば、試験用プログラムを書き込んで試験を行った後に試験用プログラムを消去することになる。このため、試験時間が長くなり、LSIのコストが増大してしまう。プログラムメモリがマスクROM(Read Only Memory)等の書き換え可能でないメモリであれば、ユーザプログラムとともに試験用プログラムをプログラムメモリに予め格納しておくことになる。このため、ユーザが使用できるメモリ領域が減少してしまう。
【0006】
また、特許文献1の技術では、試験用プログラムをプログラムメモリに格納する必要はなくなるが、マイクロコンピュータがユーザモードで動作しているか否かを電源電流の測定結果に基づいて判定することになるため、試験時間が長くなってしまう。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平01−258043号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
マイクロコンピュータ等のLSI(半導体集積回路)がユーザモードで正常に動作することを、プログラムメモリに試験用プログラムを格納せずに短時間で確認できるようにすることが望ましい。
【課題を解決するための手段】
【0009】
本発明の一態様では、半導体集積回路は、プログラムメモリと、中央処理ユニットと、内部情報レジスタとを備える。中央処理ユニットは、ユーザモード時にはプログラムメモリに格納されたプログラムを実行し、テストモード時には外部装置から供給されるプログラムを実行する。内部情報レジスタは、ユーザモードでの起動時にユーザモードでの起動の証拠となる内部情報を格納する。
【発明の効果】
【0010】
半導体集積回路がユーザモードで正常に動作することをプログラムメモリに試験用プログラムを格納せずに短時間で確認できるようになる。
【図面の簡単な説明】
【0011】
【図1】本発明の第1実施形態を示す図である。
【図2】本発明の第1実施形態におけるユーザモード動作試験を示す図である。
【図3】本発明の比較例を示す図である。
【図4】本発明の比較例におけるユーザモード動作試験を示す図である。
【図5】本発明の第2実施形態を示す図である。
【図6】本発明の第2実施形態におけるユーザモード動作試験を示す図である。
【図7】本発明の第3実施形態を示す図である。
【図8】本発明の第3実施形態におけるユーザモード動作試験を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について図面を用いて説明する。
【0013】
図1は、本発明の第1実施形態を示している。本発明の第1実施形態のLSI100は、ユーザモードおよびテストモードを有するシングルチップマイクロコンピュータとして形成されている。LSI100は、CPU111、内部バスブリッジ112、ROMインタフェース(ROMI/F)113、ROM114、RAM(Random Access Memory)インタフェース(RAMI/F)115、RAM116、DMA(Direct Memory Access)コントローラ121、周辺バスブリッジ122、外部バスブリッジ123、モードデコーダ131および周辺リソース132を有している。
【0014】
CPU111は、モードデコーダ131から出力されるユーザモード信号151が“1”に設定されている場合(ユーザモードが選択されている場合)、ROM114に格納されているプログラムを実行する。また、CPU111は、ユーザモード信号151が“0”に設定されている場合(テストモードが選択されている場合)、外部バスブリッジ123を介して外部装置から供給されるプログラムを実行する。
【0015】
内部バスブリッジ112は、CPUバス(CPU111の命令バスおよびデータバス)と、メモリバス(ROM114のバスおよびRAM116のバス)と、内部バス(DMAコントローラ121等が接続されるバス)との間におけるデータの受け渡しを行う。
【0016】
ROMインタフェース113は、ROM114に対するアクセスを制御する。ROM114は、ユーザプログラムが格納されるプログラムメモリである。RAMインタフェース115は、RAM116に対するアクセスを制御する。RAM116は、CPU111の処理結果等が一時的に格納されるワークメモリである。
【0017】
DMAコントローラ121は、メモリおよび周辺リソース間等のDMA転送を制御する。周辺パスブリッジ122は、内部バスと、周辺バス(モードデコーダ131等が接続されるパス)との間におけるデータの受け渡しを行う。外部バスブリッジ123は、内部バスと、外部バス(外部装置が接続されるバス)との間におけるデータの受け渡しを行う。
【0018】
モードデコーダ131は、モード端子141の入力信号に応じてユーザモード信号151を出力する。例えば、ユーザモード信号151は、モード端子141の入力信号がユーザモードを示している場合に“1”に設定され、モード端子141の入力信号がテストモードを示している場合に“0”に設定される。
【0019】
モードデコーダ131には、LSI100のユーザモードでの起動の証拠となる内部情報を格納するテストレジスタとして、モード情報レジスタ131aが設けられている。モード情報レジスタ131aは、モード端子141の入力信号がユーザモードを示している状態でLSI100に対するリセットが解除されると、モード端子141の入力信号を格納する。なお、モード情報レジスタ131aは、テストモード時にのみ、CPU111によるリードアクセス/ライトアクセスが許可されるようになっている。これにより、ユーザによるモード情報レジスタ131aの使用が防止される。
【0020】
周辺リソース132は、例えば、汎用入出力端子142に関する汎用入出力(GPIO:General-Purpose Input/Output)機能を具現している。なお、図示を省略しているが、LSI100では、汎用入出力機能を具現する周辺リソース132の他に、タイマ機能や通信機能等を具現する周辺リソースも設けられている。
【0021】
図2は、本発明の第1実施形態におけるユーザモード動作試験を示している。本発明の第1実施形態におけるユーザモード動作試験では、まず、テスタ装置において、LSI100に対して電源投入およびリセットが行われる(ステップS101)。次に、LSI100のモード端子141に対してテストモードを示す信号が入力され(ステップS102)、その後、LSI100に対するリセットが解除される(ステップS103)。
【0022】
そして、テスタ装置において、LSI100の外部バス(外部バスブリッジ123)に対してレジスタ初期化用プログラムが供給される(ステップS104)。これにより、LSI100において、CPU111により、モード情報レジスタ131aが所定値(モード端子141の入力信号におけるユーザモードを示す場合の値とは異なる値)に初期化される(ステップS105)。
【0023】
次に、テスタ装置において、再度、LSI100に対するリセットが行なわれる(ステップS106)。そして、LSI100のモード端子141に対してユーザモードを示す信号が入力され(ステップS107)、その後、LSI100に対するリセットが解除される(ステップS108)。これに伴って、LSI100において、モード端子141の入力信号がモード情報レジスタ131aに格納される(ステップS109)。
【0024】
この後、テスタ装置において、再度、LSI100に対するリセットが行われる(ステップS110)。そして、LSI100のモード端子141に対してテストモードを示す信号が入力され(ステップS111)、その後、LSI100に対するリセットが解除される(ステップS112)。
【0025】
そして、テスタ装置において、LSI100の外部バスに対してレジスタ確認用プログラムが供給される(ステップS113)。これにより、LSI100において、CPU111により、モード情報レジスタ131aの格納値が読み出されて正常値(モード端子141の入力信号におけるユーザモードを示す場合の値)と一致するか否かが確認された後、汎用入出力端子142から確認結果(一致/不一致)が出力されるように周辺リソース(GPIO)132のレジスタが設定される(ステップS114)。例えば、周辺リソース132の方向レジスタが出力機能用の値に設定されるとともに、周辺リソース132のデータレジスタが確認結果に応じた値(例えば、“1”:一致、“0”:不一致)に設定される。
【0026】
そして、テスタ装置において、LSI100の汎用入出力端子142の出力値が期待値と比較される(ステップS115)。このとき、汎用入出力端子142の出力値が期待値と一致すれば、LSI100はユーザモードで正常に動作すると判定される(パス判定)。一方、汎用入出力端子142の出力値が期待値と一致しなければ、LSI100はユーザモードで正常に動作しないと判定される(フェイル判定)。このように、LSI100がユーザモードで正常に動作するか否か(LSI100がユーザモードで起動されるか否か)をROM114に試験用プログラムを格納せずに確認することが可能である。
【0027】
図3は、本発明の比較例を示している。なお、本発明の比較例を説明するにあたって、本発明の第1実施形態で説明した要素と同一の要素については、本発明の第1実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。
【0028】
本発明の比較例のLSI500は、本発明の第1実施形態(図1)のLSI100についてモードデコーダ131をモードデコーダ531に置き換えたものである。モードデコーダ531は、モードデコーダ131からモード情報レジスタ131aを取り除いたものである。
【0029】
図4は、本発明の比較例におけるユーザモード動作試験を示している。本発明の比較例におけるユーザモード動作試験では、まず、テスタ装置において、LSI500に対して電源投入およびリセットが行われる(ステップS501)。次に、LSI500のモード端子141に対してユーザモードを示す信号が入力され(ステップS502)、その後、LSI500に対するリセットが解除される(ステップS503)。
【0030】
これにより、LSI500において、ROM114に格納された試験用プログラムがCPU111によって実行される。その結果、CPU111により、汎用入出力端子142から所定値(例えば、“1”)が出力されるように周辺リソース(GPIO)132のレジスタが設定される(ステップS504)。そして、テスタ装置において、LSI500の汎用入出力端子142の出力値が期待値と比較される(ステップS505)。
【0031】
このように、本発明の比較例では、LSI500がユーザモードで正常に動作するか否かを確認するには、試験用プログラムをROM(プログラムメモリ)114に格納する必要がある。従って、ROM114がフラッシュメモリ等であれば、試験用プログラムを書き込んで試験を行った後に試験用プログラムを消去する必要があるため、試験時間が長くなり、LSI500のコストが増大してしまう。ROM114がマスクROM等であれば、ユーザプログラムとともに試験用プログラムをROM114に予め格納しておく必要があるため、ユーザが使用できるメモリ領域が減少してしまう。
【0032】
これに対して、前述のような本発明の第1実施形態では、ユーザモード動作試験についても、その他の試験(各種機能の試験等)と同様に、テスタ装置から試験用プログラムを供給して試験を行うことができる。即ち、ユーザモード動作試験を行うために試験用プログラムをROM(プログラムメモリ)114に格納する必要がない。このため、ROM114がフラッシュメモリ等であれば、試験用プログラムの書き込み/消去が不要になり、試験時間を短縮することができる。ROM114がマスクROM等であれば、試験用プログラを格納するためにメモリ領域を割く必要がなくなり、ユーザが使用できるメモリ領域を増大させることができる。
【0033】
また、LSI100がユーザモードで正常に動作するか否かを汎用入出力端子142の出力値から判定可能であるため、電源電流の測定結果から判定する場合(特許文献1)に比べて、ユーザモード動作試験を短時間で行うことができる。
【0034】
図5は、本発明の第2実施形態を示している。なお、本発明の第2実施形態を説明するにあたって、本発明の第1実施形態で説明した要素と同一の要素については、本発明の第1実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。
【0035】
本発明の第2実施形態のLSI200は、本発明の第1実施形態(図1)のLSI100についてROMインタフェース113およびモードデコーダ131をROMインタフェース113’およびモードデコーダ131’にそれぞれ置き換えたものである。
【0036】
ROMインタフェース113’は、ROMインタフェース113にCPU情報レジスタ113aを追加したものである。モードデコーダ131’は、モードデコーダ131からモード情報レジスタ131aを取り除いたものである。
【0037】
CPU情報レジスタ113aは、LSI200のユーザモードでの起動の証拠となる内部情報を格納するテストレジスタとして設けられている。CPU情報レジスタ113aは、モード端子141の入力信号がユーザモードを示している状態(ユーザモード信号151が“1”を示している状態)でLSI200に対するリセットが解除された後、CPU111のフェッチ動作によりROM114から順次読み出されるユーザプログラムの開始アドレスおよび命令コードの少なくとも一方を格納する。ここでは、ユーザプログラムの開始アドレスおよび命令コードの双方がCPU情報レジスタ113aに格納されるものとする。
【0038】
なお、CPU情報レジスタ113aは、テストモード時にのみ、CPU111によるリードアクセス/ライトアクセスが許可されるようになっている。これにより、ユーザによるCPU情報レジスタ113aの使用が防止される。
【0039】
図6は、本発明の第2実施形態におけるユーザモード動作試験を示している。本発明の第2実施形態におけるユーザモード動作試験では、まず、テスタ装置において、LSI200に対して電源投入およびリセットが行われる(ステップS201)。次に、LSI200のモード端子141に対してテストモードを示す信号が入力され(ステップS202)、その後、LSI200に対するリセットが解除される(ステップS203)。
【0040】
そして、テスタ装置において、LSI200の外部バス(外部バスブリッジ123)に対してレジスタ初期化用プログラムが供給される(ステップS204)。これにより、LSI200において、CPU111により、CPU情報レジスタ113aが所定値(ユーザプログラムの開始アドレスおよび命令コードの値とは異なる値)に初期化される(ステップS205)。
【0041】
次に、テスタ装置において、再度、LSI200に対するリセットが行なわれる(ステップS206)。そして、LSI200のモード端子141に対してユーザモードを示す信号が入力され(ステップS207)、その後、LSI200に対するリセットが解除される(ステップS208)。これにより、LSI200において、ROM114に格納されたユーザプログラムがCPU111によって実行される。その結果、CPU111のフェッチ動作によりROM114から順次読み出されるユーザプログラムの開始アドレスおよび命令コードがCPU情報レジスタ113aに格納される(ステップS209)。
【0042】
この後、テスタ装置において、再度、LSI200に対するリセットが行われる(ステップS210)。そして、LSI200のモード端子141に対してテストモードを示す信号が入力され(ステップS211)、その後、LSI200に対するリセットが解除される(ステップS212)。
【0043】
そして、テスタ装置において、LSI200の外部バスに対してレジスタ確認用プログラムが供給される(ステップS213)。これにより、LSI200において、CPU111により、CPU情報レジスタ113aの格納値が読み出されて正常値(ユーザプログラムの開始アドレスおよび命令コードの値)と一致するか否かが確認された後、汎用入出力端子142から確認結果(一致/不一致)が出力されるように周辺リソース(GPIO)132のレジスタが設定される(ステップS214)。そして、テスタ装置において、LSI200の汎用入出力端子142の出力値が期待値と比較される(ステップS215)。
【0044】
以上のような本発明の第2実施形態でも、本発明の第1実施形態と同様の効果が得られる。また、例えば、ユーザモード信号151用の信号線が断線しているような場合、本発明の第1実施形態(モード情報レジスタ131aを設けた場合)におけるユーザモード動作試験では故障を検出できないが、本発明の第2実施形態(CPU情報レジスタ113aを設けた場合)におけるユーザモード動作試験では故障を検出可能である。従って、故障検出率の向上に寄与することができる。
【0045】
図7は、本発明の第3実施形態を示している。なお、本発明の第3実施形態を説明するにあたって、本発明の第1および第2実施形態で説明した要素と同一の要素については、本発明の第1および第2実施形態で使用した符号と同一の符号を使用し、詳細な説明を省略する。
【0046】
本発明の第3実施形態のLSI300は、本発明の第1実施形態(図1)のLSI100についてROMインタフェース113をROMインタフェース113’(図5)に置き換えたものである。即ち、LSI300では、LSI300のユーザモードでの起動の証拠となる内部情報を格納するテストレジスタとして、モード情報レジスタ131aおよびCPU情報レジスタ113aが設けられている。
【0047】
図8は、本発明の第3実施形態におけるユーザモード動作試験を示している。本発明の第3実施形態におけるユーザモード動作試験では、まず、テスタ装置において、LSI300に対して電源投入およびリセットが行われる(ステップS301)。次に、LSI300のモード端子141に対してテストモードを示す信号が入力され(ステップS302)、その後、LSI300に対するリセットが解除される(ステップS303)。
【0048】
そして、テスタ装置において、LSI300の外部バス(外部バスブリッジ123)に対してレジスタ初期化用プログラムが供給される(ステップS304)。これにより、LSI300において、CPU111により、モード情報レジスタ131aおよびCPU情報レジスタ113aが所定値にそれぞれ初期化される(ステップS305)。なお、モード情報レジスタ131aに関する所定値は、モード端子141の入力信号におけるユーザモードを示す場合の値とは異なる値である。CPU情報レジスタ113aに関する所定値は、ユーザプログラムの開始アドレスおよび命令コードの値とは異なる値である。
【0049】
次に、テスタ装置において、再度、LSI300に対するリセットが行なわれる(ステップS306)。そして、LSI300のモード端子141に対してユーザモードを示す信号が入力され(ステップS307)、その後、LSI300に対するリセットが解除される(ステップS308)。これに伴って、LSI300において、モード端子141の入力信号がモード情報レジスタ131aに格納された後、CPU111のフェッチ動作によりROM114から順次読み出されるユーザプログラムの開始アドレスおよび命令コードがCPU情報レジスタ113aに格納される(ステップS309)。
【0050】
この後、テスタ装置において、再度、LSI300に対するリセットが行われる(ステップS310)。そして、LSI300のモード端子141に対してテストモードを示す信号が入力され(ステップS311)、その後、LSI300に対するリセットが解除される(ステップS312)。
【0051】
そして、テスタ装置において、LSI300の外部バスに対してレジスタ確認用プログラムが供給される(ステップS313)。これにより、LSI300において、CPU111により、モード情報レジスタ131aおよびCPU情報レジスタ113aの格納値が読み出されて正常値と一致するか否かがそれぞれ確認され、汎用入出力端子142から確認結果(一致/不一致)が出力されるように周辺リソース(GPIO)132のレジスタが設定される(ステップS314)。なお、モード情報レジスタ131aに関する正常値は、モード端子141の入力信号におけるユーザモードを示す場合の値である。CPU情報レジスタ113aに関する正常値は、ユーザプログラムの開始アドレスおよび命令コードの値である。そして、テスタ装置において、LSI300の汎用入出力端子142の出力値が期待値と比較される(ステップS315)。
【0052】
以上のような本発明の第3実施形態でも、本発明の第1および第2実施形態と同様の効果が得られる。更に、モード情報レジスタ131aに加えてCPU情報レジスタ113aも設けられることで、ユーザモード動作試験の信頼性を向上させることができる。また、ユーザモード動作試験の際に、モード情報レジスタ131aおよびCPU情報レジスタ113aの各々について確認結果(正常値との一致/不一致)を出力させることで、不良解析(故障箇所の特定)の効率向上に寄与することができる。
【0053】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずであり、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【0054】
100,200,300‥LSI;111‥CPU;112‥内部バスブリッジ;113,113’‥ROMインタフェース;113a‥CPU情報レジスタ;114‥ROM;115‥RAMインタフェース;116‥RAM;121‥DMAコントローラ;122‥周辺バスブリッジ;123‥外部バスブリッジ;131,131’‥モードデコーダ;131a‥モード情報レジスタ;132‥周辺リソース;141‥モード端子;142‥汎用入出力端子;151‥ユーザモード信号

【特許請求の範囲】
【請求項1】
プログラムメモリと、
ユーザモード時には前記プログラムメモリに格納されたプログラムを実行し、テストモード時には外部装置から供給されるプログラムを実行する中央処理ユニットと、
前記ユーザモードでの起動時に前記ユーザモードでの起動の証拠となる内部情報を格納する内部情報レジスタとを備えることを特徴とする半導体集積回路。
【請求項2】
請求項1に記載の半導体集積回路において、
前記内部情報レジスタは、モードを指示する信号を前記内部情報として格納することを特徴とする半導体集積回路。
【請求項3】
請求項1または請求項2に記載の半導体集積回路において、
前記内部情報レジスタは、前記中央処理ユニットが前記プログラムメモリから取得するプログラム開始アドレスを前記内部情報として格納することを特徴とする半導体集積回路。
【請求項4】
請求項1乃至請求項3の何れかに記載の半導体集積回路において、
前記内部情報レジスタは、前記中央処理ユニットが前記プログラムメモリからプログラム開始アドレスに続いて取得する命令コードを前記内部情報として格納することを特徴とする半導体集積回路。
【請求項5】
請求項1乃至請求項4の何れかに記載の半導体集積回路において、
前記内部情報レジスタは、前記テストモード時にのみ前記中央処理ユニットによるアクセスが許可されることを特徴とする半導体集積回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−225121(P2010−225121A)
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願番号】特願2009−74758(P2009−74758)
【出願日】平成21年3月25日(2009.3.25)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】