(57)【要約】【課題】  状態変化に伴うソフトウェア処理のデバッグにおいて、フレキシブルに監視対象ビットを意図的に変化させることができる半導体集積回路を提供する。【解決手段】  マイクロプロセッサから設定可能な置き換えデータレジスタ２１０、比較アドレスレジスタ２４０を設け、マイクロプロセッサからのアドレス入力と比較アドレス値との一致検出を行なう。そして、テストモード状態においてアドレスが一致する場合、マイクロプロセッサからの読み出し要求に対して、通常のステータスデータを出力する代わりに、予め設定された置き換えデータレジスタ２１０の値を出力する。【選択図】      図１
2007058450.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサに接続され、外部から設定可能なテストモードレジスタ、置き換えデータレジスタ、マスク設定レジスタ、比較アドレスレジスタを備えた半導体集積回路であって、
前記マイクロプロセッサからの入力アドレスに基づいてレジスタ空間に記録されたレジスタデータを選択する第１の選択手段と、
前記入力アドレスと前記比較アドレスレジスタに記録されたアドレスとの一致検出を行なうアドレス比較器と、
前記テストモードレジスタにおいてテストモードが設定され、前記アドレス比較器から一致検出信号が出力された場合、前記マスク設定レジスタ、前記置き換えデータレジスタにより対象ビットを選択し、通常のレジスタデータに対してビットデータの変更動作を実行して生成した最終レジスタデータを出力する第２の選択手段と
を設けたことを特徴とする半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記変更は、前記マスク設定レジスタ、前記置き換えデータレジスタに記録されたデータに基づき、信号の反転又は所定値への置換を行なうことを特徴とする半導体集積回路。
【請求項３】
請求項１又は２に記載の半導体集積回路において、
前記テストモードレジスタには、変更動作の回数を設定するためのビットデータを更に記録し、
前記第２の選択手段において、前記回数に応じて前記最終レジスタデータの出力を行なうことを特徴とする半導体集積回路。
【請求項４】
請求項１〜３のいずれか一つに記載の半導体集積回路において、
前記比較アドレスレジスタは複数のレジスタから構成され、各レジスタに記録された複数のアドレスに対して変更動作を行なうことを特徴とする半導体集積回路。
【請求項５】
請求項１〜４のいずれか一つに記載の半導体集積回路において、
レジスタデータはステータスレジスタに記録されたステータスデータであることを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に係り、詳しくはマイクロプロセッサとその周辺の集積回路に関する。
【背景技術】
【０００２】
マイクロプロセッサを備えた情報処理装置では、通常起こり得る装置の状態や正常状態では起こり得ない状態の監視を、ポーリングルーチンや、割り込みルーチンにてステータスレジスタのビットの監視により行なっている。例えば、「通常起こり得る装置の状態」としては、通信バッファの空き状態等があり、また、「正常状態では起こり得ない状態」としては、受信データのＣＲＣエラー等がある。そして、この監視に基づき、これに応じたソフトウェア処理を行なっている。このように、開発段階において、これらの機能のデバッグが必須であり、正常状態では発生させることのできないエラーなどにおけるステータスビットの変化を確認する必要がある。このため、システムメモリ上に同等のレジスタ空間を用意し、このメモリ空間をステータスレジスタに見立て、その値を書き換えることにより、擬似的にステータスレジスタが変化したものとして、監視対象のレジスタのデバッグを行なっていた。
【０００３】
更に、メモリセルのテスティングのコストを削減し、かつテスト時間を短縮するメモリチップを提供する技術も開示されている（例えば、特許文献１を参照。）。この技術では、半導体メモリチップを、被テストメモリ素子を備えたメモリアレイと、メモリアレイに入力かつ格納されるべき基準データを供給するパターン発生器と、基準データとメモリアレイからの格納データとを比較するためにメモリチップ上に形成されたコンパレータとを備える。そして、コンパレータは、基準データと格納データとを比較して両者の整合性に相応する比較結果を供給する論理回路と、論理回路からの比較結果を受け取り、かつそれぞれが第１および第２状態を有する複数のラッチと、ラッチの第１および第２状態を格納及び出力してテスト結果を与えるレジスタとを有する。
【０００４】
また、半導体集積回路の一部では、通常起こり得ないエラーに対する検出機能の正当性の確認のため、図４に示すようなテスト用の回路を設けているものもある。部分的にはこの機能を使ってステータスビットの変化をさせて、デバッグを行なっていた。この回路では、データエラー挿入部１１、データライト処理部１２、受信バッファ１３、ＣＲＣ検査部１４、パケット長検査部１５を備える。更に、ＣＲＣテストレジスタ１１０、パケット長テストレジスタ１１１、ＣＲＣエラーステータスレジスタ１２０及びパケット長エラーステータスレジスタ１２１を備える。受信データに対して、データエラー挿入部１１において、ＣＲＣテストレジスタ１１０に格納されたデータが付加され、パケット長テストレジスタ１１１において、データライト処理部１２においてパケット長テストレジスタ１１１に格納されたデータが付加される。そして、ＣＲＣ検査部１４においてＣＲＣエラーが検出された場合には、その結果がＣＲＣエラーステータスレジスタ１２０に格納される。また、パケット長検査部１５においてパケット長エラーが検出された場合には、その結果がパケット長エラーステータスレジスタ１２１に格納される。
【０００５】
更に、このように最終的な製品段階でバグが発現した場合でも、短時間に且つ低コストに不具合の解消を行なうことが可能な半導体集積回路も開示されている（例えば、特許文献２を参照。）。この半導体集積回路においては、プログラムが記憶されるＲＯＭと、このＲＯＭから読み出されたプログラムコードを実行するマイクロプロセッサとが設けられている。更に、プログラムコードの代替となる代替コードが格納される代替コードレジスタと、プログラムコードの代替を行なうアドレスが格納される代替アドレス指定レジスタ
を備える。そして、比較器が、アドレスバスに出力されるリードアドレスと代替アドレス指定レジスタに格納されるアドレスとを比較する。この比較結果に基づき、セレクタがマイクロプロセッサで実行されるプログラムコードをＲＯＭ側から供給するか、代替コードレジスタ側から供給するかを選択する。
【特許文献１】特開２００１−６３９４号公報（第１頁）
【特許文献２】特開２００３−１７８５９６号公報（第１頁）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上に述べたように、一時的にメモリ上にステータスレジスタの割当を行なう方法では、ソフトウェア・デバッグのため、多くのプログラム書き換えが必要となり、さらに、デバッグ完了後に元に戻すときに新たなバグが混入する可能性がある。
【０００７】
また、ステータス変化はシステムメモリ上で生じるため、実際の半導体集積回路とのマイクロプロセッサ間で発生する接続の問題などが見落とされる可能性もあり、ハード・ソフト全体としての検証の品質として問題になる。新たに半導体集積回路を設計する場合には、半導体集積回路側のステータスレジスタ空間に対してすべてのテスト回路を用意することも考えられるが、テスト回路の規模が大きくなり、更に有限のレジスタ空間に対して、多くのレジスタ空間はテスト用に占有されるという問題があった。
【０００８】
本発明は、マイクロプロセッサを備えた情報処理装置において、状態変化に伴うソフトウェア処理のデバッグ時にフレキシブルに監視対象ビットを意図的に変化させることができる半導体集積回路を提供することにある。
【課題を解決するための手段】
【０００９】
本発明によれば、マイクロプロセッサに接続され、外部から設定可能なテストモードレジスタ、置き換えデータレジスタ、マスク設定レジスタ、比較アドレスレジスタを備えた半導体集積回路であって、前記マイクロプロセッサからの入力アドレスに基づいてレジスタ空間に記録されたレジスタデータを選択する第１の選択手段と、前記入力アドレスと前記比較アドレスレジスタに記録されたアドレスとの一致検出を行なうアドレス比較器と、前記テストモードレジスタにおいてテストモードが設定され、前記アドレス比較器から一致検出信号が出力された場合、前記マスク設定レジスタ、前記置き換えデータレジスタにより対象ビットを選択し、通常のレジスタデータに対してビットデータの変更動作を実行して生成した最終レジスタデータを出力する第２の選択手段とを設けたことを特徴とする。
【００１０】
比較アドレスレジスタにより特定したアドレスにおいて、置き換えデータレジスタ及びマスク設定レジスタを用いてビット単位で変更を行なうことができる。フレキシブルに、通常、起こりえないステータスを発生させることができ、そのときのデバグを行なうことができる。
【００１１】
本発明によれば、前記変更は、前記マスク設定レジスタ、前記置き換えデータレジスタに記録されたデータに基づき、信号の反転又は所定値への置換を行なうことを特徴とする。これにより多様な変更を設定することができる。
【００１２】
本発明によれば、前記テストモードレジスタには、変更動作の回数を設定するためのビットデータを更に記録し、前記第２の選択手段において、前記回数に応じて前記最終レジスタデータの出力を行なうことを特徴とする。テストモードレジスタには、変更動作の回数を設定するためのビットを備えるため、複数回の変更動作を連続的に実行させることができる。
【００１３】
本発明によれば、前記比較アドレスレジスタは複数のレジスタから構成され、各レジスタに記録された複数のアドレスに対して変更動作を行なうことを特徴とする。複数の比較アドレスレジスタを備えるため、複数のアドレスに対して変更動作を実行させることができる。
【００１４】
本発明によれば、レジスタデータはステータスレジスタに記録されたステータスデータであることを特徴とする。従って、ステータスレジスタにおいて、通常、起こらない状態を再現することによりデバグを行なうことができる。
【発明の効果】
【００１５】
本発明によれば、全レジスタに対する個別の回路を設けることなく、フレキシブルにビット単位にステータスを変化させ、デバグを行なうことができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を具体化した半導体集積回路の一実施形態を図１、図２に従って説明する。図１は、本実施形態の半導体集積回路の要部を示すブロック図である。この本実施形態の半導体集積回路は、例えば、各種電子制御を行なうコントロールＩＣに用いられる。このコントロールＩＣは、制御プログラムが記録されたＲＯＭ（Read Only Memory）や、この制御プログラムを実行するＣＰＵ（Central Processing Unit ）を備えたものである。
【００１７】
この半導体集積回路は、第１セレクタ２１、第２セレクタ２２、アドレス比較器２３、ステータスレジスタ空間５００、置き換えデータレジスタ２１０、マスク設定レジスタ２２０、テストモードレジスタ２３０、及び比較アドレスレジスタ２４０を備える。
【００１８】
第１の選択手段としての第１セレクタ２１は、入力アドレスが供給されるアドレスバスに接続されている。そして、第１セレクタ２１は、この入力アドレスに基づいてステータスレジスタ空間５００のＮワードステータスデータを選択する。ここで、ステータスレジスタ空間５００は、マイクロプロセッサの内部状態を設定、表示するためのレジスタであり、本実施形態では１６ｂｉｔとする。
【００１９】
この第１セレクタ２１は、取得したＮワードステータスデータを、第２の選択手段としての第２セレクタ２２に通常ステータス信号として供給する。
この第２セレクタ２２には、置き換えデータレジスタ２１０、マスク設定レジスタ２２０、テストモードレジスタ２３０からデータが供給され、最終ステータスデータを出力する。この最終ステータスデータは、データバスを介してマイクロプロセッサ側に出力される。
【００２０】
置き換えデータレジスタ２１０は、テスト時に、異常状態を想定して通常ステータスデータを置き換えるビットパターンが格納されるレジスタである。
マスク設定レジスタ２２０は、特定のステータスビットのみを置き換える場合に、このビットを特定するためのマスクパターンを決定するレジスタである。
【００２１】
テストモードレジスタ２３０は、ステータスデータの置換の要否を決めるテストイネーブル信号を設定するレジスタである。このレジスタに所定のデータが入力された場合にテストモードになる。
【００２２】
更に、第２セレクタ２２には、アドレス比較器２３が接続される。このアドレス比較器２３には、比較アドレスレジスタ２４０からのデータと、アドレスバスから供給される入力アドレスとが供給される。
【００２３】
比較アドレスレジスタ２４０は、通常ステータスデータの置き換えを行なうステータスレジスタのアドレスを特定するデータを格納するレジスタである。
アドレス比較器２３は、比較アドレスレジスタ２４０に設定されているアドレスと、マイクロプロセッサ側から指定されアドレスバスに出力されたアドレスとを比較して、その比較結果を一致検知信号として第２セレクタ２２に出力する。
【００２４】
一方、アドレス比較器２３から比較一致を示す一致検知信号が入力された場合には、第２セレクタ２２は、通常のレジスタデータに対してビットデータの変更動作を実行する。そして、この変更動作により生成された最終ステータスデータ（最終レジスタデータ）を、データバスを介してマイクロプロセッサ側に出力するように構成されている。
【００２５】
以下、本実施形態の具体例を説明する。ここでは、ステータスレジスタ空間５００のステータスレジスタ＃６の特定のステータスビット、例えばＬＳＢ（ｂｉｔ０）を監視対象とする。このＬＳＢを「０」から「１」への変化を起こさせる場合は、置き換えデータレジスタ２１０に「０１ｈ」をライトし、マスク設定レジスタには監視対象以外のビットは「ＡＬＬ０」として「０１ｈ」をライトする。この組み合わせにより、ｂｉｔ０は、図２に示すように、「オリジナルにステータスを１にして出力する」設定となり、それ以外のビットは「オリジナルステータスはそのまま出力する」設定となる。
【００２６】
また、図１に示すように、ステータスレジスタ空間５００のステータスレジスタ＃６が対象レジスタであるため、比較アドレスレジスタ２４０には、ステータスレジスタ＃６と同じアドレスの「０５ｈ」をライトする。
【００２７】
そして、テストモードに切り替える。ここでは、テストモードレジスタ２３０に「０１ｈ」をライトすることによりテストモードに切り替わる。このテストモードにおいては、マイクロプロセッサがアドレス「０５ｈ」以外のレジスタにアクセスしている場合は、第１セレクタ２１は、通常の場合と同様に入力アドレスに応じてＮワードのステータスデータから該当する１つのワードデータを選択する。また、この場合には、入力アドレスと比較アドレスレジスタ２４０に設定されているアドレスとが異なるため、アドレス比較器２３から出力される一致検出信号がアクティブとならない。このため、次段の第２セレクタ２２においても、第１セレクタ２１から入力された通常ステータスデータを最終ステータスデータとして出力する。
【００２８】
もし、入力アドレスが「０５ｈ」を示している場合は、アドレス比較器２３から一致検出信号がアクティブとして出力される。この場合、第１セレクタ２１は、入力アドレスが「０５ｈ」のステータスレジスタ＃６を選択する。そして、このデータを第２セレクタ２２に供給する。一致検出信号がアクティブとなっているため、第２セレクタ２２はビットデータの置き換えを行なう。具体的には、マスク設定レジスタ２２０からの出力においてＬＳＢビットのみが「１」であることから、置き換えデータレジスタ２１０のＬＳＢビットのみを選択対象とする。このＬＳＢビット以外のビットは第１セレクタ２１からの出力を選択対象として、最終ステータス出力へのデータとする。
【００２９】
この一連の動作により、ステータスレジスタ＃６のＬＳＢビットのみが「１」に置き換えられる。
なお、以上は、対象ビットを「１」に置き換える場合であるが、「０」に置き換える場合、オリジナルステータスを反転させる場合、オリジナルステータスをそのまま出力する場合も、図２に示す置き換えデータレジスタ２１０とマスク設定レジスタ２２０の設定値の組み合わせにより、任意に変更することが可能である。
【００３０】
上記実施形態の半導体集積回路よれば、以下のような効果を得ることができる。
・  上記実施形態では、入力アドレスと、比較アドレスレジスタ２４０に設定されているアドレスとが異なる場合、アドレス比較器２３から出力される一致検出信号がアクティブとならない。一方、入力アドレスと、比較アドレスレジスタ２４０に設定されているアドレスとが一致する場合、アドレス比較器２３から出力される一致検出信号がアクティブとなる。この場合、第２セレクタ２２は、置き換えデータレジスタ２１０とマスク設定レジスタ２２０とを用いてビットデータの置き換えを行なう。すなわち、テストモード状態の場合、所定のアドレスについてのマイクロプロセッサからの読み出し要求に対して、通常のステータスデータを出力する代わりに、予め設定されている置き換えデータレジスタ２１０の値を出力する。これにより、通常、起こりえないステータスを発生させることにより、このような状態でのデバグを行なうことができる。従って、何らかのハードウェア障害により、ステータスデータの設定値が書き換わってしまった場合の状態を再現することが可能となる。
【００３１】
・  上記実施形態では、マスク設定レジスタ２２０には、置き換えるビットを特定するためのマスクデータが格納される。これにより、ビット単位で、特定のステータスビットのみを置き換えることができる。
【００３２】
・  上記実施形態では、置き換えには、置き換えデータレジスタ２１０とマスク設定レジスタ２２０とを用いるため、ビット単位でステータスの各種置き換え（「０」の出力、「１」の出力、信号の反転、又はオリジナルの出力）を行なうことができる。これにより、フレキシブルに、通常、起こりえないステータスを発生させることが可能になり、このような状態でのデバグを行なうことができる。
【００３３】
・  上記実施形態では、比較アドレスレジスタ２４０には、置き換えるステータスレジスタのアドレスを格納する。そして、アドレス比較器２３は、比較アドレスレジスタ２４０に設定されているアドレスと、マイクロプロセッサ側から指定されたアドレスとを比較して、その比較結果を一致検知信号として第２セレクタ２２に出力する。このため、所定のアドレスのみのステータスデータを置き換えることができる。
【００３４】
・  テストモードレジスタ２３０は、ステータスデータの置換の要否を決めるテストイネーブル信号を設定するレジスタである。このレジスタに所定のデータが入力された場合にテストモードになる。これにより、テストモード以外は、通常動作を行なわせることができる。
【００３５】
なお、本実施形態は以下のように変更してもよい。
○  上記実施形態では、ステータスレジスタ空間５００のステータスデータの置き換えを行なったが、マイクロプロセッサから見えるレジスタ空間であれば、ステータスレジスタだけに限定されるものではない。例えば、コントロールレジスタ空間および内部メモリ空間にも適用することが可能である。従って、特定レジスタに所定の設定を行なったが、何らかのハードウェア障害により、設定値が書き換わってしまった場合の状態を再現することが可能となる。
【００３６】
○  上記実施形態では、所定のアドレス（ここでは、「０５ｈ」）のステータスデータを置き換えたが、１個のアドレスに限定されるものではない。この場合、複数の比較アドレスレジスタ２４０を設け、各比較アドレスレジスタ２４０に記録されたアドレスをアドレス比較器２３に、順次、比較させてもよい。これにより、複数の設定値が書き換わってしまった場合の状態をも再現することが可能となる。
【００３７】
また、複数の比較アドレスレジスタ２４０に対応させて、それぞれアドレス比較器２３
を設けてもよい。パラレルにアドレス比較を行なうことで、処理速度を低下させることなく置き換えを行なうことができる。
【００３８】
○  上記実施形態では、テストモードレジスタ２３０に「０１ｈ」をライトすることによりテストモードに切り替える。これにテストイネーブルビット動作の連続性を示すビットを加えてもよい。具体的には、テストモードレジスタ２３０の構成を図３に示すようにする。ここでは、ｂｉｔ０はテストモードを設定するビットであり、ｂｉｔ１はテストイネーブルビット動作の連続性を示すＯＮＣＥビットを設ける。そして、このＯＮＣＥビットが「１」の場合には置き換え又は反転動作を１回だけ行ない、「０」の場合には、常に、置き換え又は反転動作を行なう。これにより、置き換え動作を行なった場合には、Ｂｉｔ０を「０」にする。これにより、置き換え動作を一回のみとすることも可能であり、フレキシブルに色々な状況を再現することができる。
【００３９】
また、ｂｉｔ１〜ｂｉｔ７を用いて置き換え動作の回数を定めても良い。この場合には、置き換え動作毎に、ｂｉｔ１〜ｂｉｔ７のデータを減算する。そして、「ＡＬＬ０」になった場合にテストモードを終了する。そして、通常ステータスデータを最終ステータスデータとして出力する。これにより、任意の回数の置き換え動作を実行させることも可能である。
【図面の簡単な説明】
【００４０】
【図１】本発明の一実施形態の機能ブロックの概略図。
【図２】置き換えデータレジスタ、マスク設定レジスタの説明図。
【図３】テストモードレジスタの概略図。
【図４】従来の集積回路の機能ブロックの概略図。
【符号の説明】
【００４１】
２１…第１セレクタ、２２…第２セレクタ、２３…アドレス比較器、２１０…置き換えデータレジスタ、２２０…マスク設定レジスタ、２３０…テストモードレジスタ、２４０…比較アドレスレジスタ、５００…ステータスレジスタ空間。
【図１】
2007058450.tif 000003
【図２】
2007058450.tif 000004
【図３】
2007058450.tif 000005
【図４】
2007058450.tif 000006