(57)【要約】【課題】動作モード設定レジスタへの書き込み後の確認をライト命令直後に自動的にリード命令を実行し動作モード設定レジスタに書き込んだデータを確認するマイクロコンピュータを得ること。【解決手段】ＣＰＵ２０は、周辺イネーブル信号をアサートの状態でＳＦＲ４０にデータを設定するライト動作を実行した後さらに１サイクル周辺イネーブル信号をアサートにする。これにより、周辺リード・ライト信号が有効となり、ＳＦＲ４０は、ライト動作時に設定されたデータを周辺データバス上に出力する。【選択図】      図１
2004185060.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵが実行する命令を格納する命令格納メモリとはメモリバスで接続され、周辺モジュールの動作モードを設定する１〜複数の動作モード設定レジスタとは周辺バスで接続されるバスインタフェースユニットを備えるマイクロコンピュータにおいて、
周辺イネーブル信号をアサートにした状態で所定の動作モード設定レジスタにデータを設定するライト命令によりライト動作を実行した後さらに１サイクルの間、周辺イネーブル信号をアサートにしてリード動作を実行することにより、前記ＣＰＵが前記バスインタフェースユニットを介して前記命令格納メモリからつぎの命令を読み出す命令フェッチの期間に、前記ライト動作により設定されたデータを前記周辺バス内の周辺データバスに出力することを特徴とするマイクロコンピュータ。
【請求項２】
前記ライト動作時には、前記所定の動作モード設定レジスタに設定さるデータと同じデータが設定され、前記リード動作時には、前記ライト動作時に設定されたデータを出力するテスト用レジスタと、
前記リード動作時に、前記所定の動作モード設定レジスタから出力されるデータと前記テスト用レジスタから出力されるデータとを比較して、比較の結果が不一致であった場合、前記ＣＰＵに割り込み要求信号を出力する比較器と、
をさらに備えたことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記テスト用レジスタは、
前記バスインタフェースユニットと専用データバスで接続され、
前記比較器は、
前記リード動作時に、前記所定の動作モード設定レジスタが周辺データバス上に出力したデータと前記テスト用レジスタが専用バス上に出力したデータとを比較することを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項４】
前記テスト用レジスタは、
前記バスインタフェースユニットと周辺データバスで接続され、
前記比較器は、
前記周辺データバスとは異なる信号線を介して得られた前記所定の動作モード設定レジスタからのデータと前記周辺データバスとは異なる信号線を介して得られた前記テスト用レジスタからのデータとを比較することを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項５】
前記ライト動作時に前記テスト用レジスタに設定されたデータを、前記ライト動作時のつぎのサイクルで前記複数の動作モード設定レジスタ全てに設定することを特徴とする請求項１〜４の何れか一つに記載のマイクロコンピュータ。
【請求項６】
ＣＰＵが実行する命令を格納する命令格納メモリとはメモリバスで接続され、周辺モジュールの動作モードを設定する１〜複数の動作モード設定レジスタとは周辺バスで接続されるバスインタフェースユニットを備えるマイクロコンピュータにおいて、
前記バスインタフェースユニットと専用データバスで接続される第１のテスト用レジスタと、
前記バスインタフェースユニットと周辺バス内の周辺データバスで接続される第２のテスト用レジスタと、
をさらに備え、
前記ＣＰＵは、
周辺イネーブル信号をアサートにした状態で所定の動作モード設定レジスタにデータを設定するライト命令によりライト動作を実行した後さらに２サイクルの間、周辺イネーブル信号をアサートにする信号を出力し、
前記ライト動作時には、前記所定の動作モード設定レジスタおよび前記第１のテスト用レジスタに同じデータが設定されるとともに、前記第２のテスト用レジスタには前記第１のテスト用レジスタに設定されたデータを反転させたデータが設定され、
前記ライト動作のつぎのサイクルのリード動作時には、前記第２のテスト用レジスタが設定されたデータを前記周辺データバス上に出力し、
さらにつぎのサイクルのリード動作時には、所定の動作モード設定レジスタが設定されたデータを前記周辺データバス上に出力することを特徴とするマイクロコンピュータ。
【請求項７】
前記第１のテスト用レジスタは、
前記所定の動作モード設定レジスタが設定されたデータを前記周辺データバス上に出力するリードサイクル時に、前記ライト動作時に設定されたデータを専用データバス上に出力し、
前記所定の動作モード設定レジスタが前記周辺データバス上に出力したデータと前記第１のテスト用レジスタが前記専用データバス上に出力したデータとを比較して、比較の結果が不一致であった場合、前記ＣＰＵに割り込み要求信号を出力する比較器と、
をさらに備えたことを特徴とする請求項６に記載のマイクロコンピュータ。
【請求項８】
前記第１のテスト用レジスタを前記周辺データバスに接続し、
前記比較器は、
前記周辺データバスとは異なる信号線を介して得られた前記所定の動作モード設定レジスタからのデータと前記周辺データバスとは異なる信号線を介して得られた前記第１のテスト用レジスタからのデータとを比較することを特徴とする請求項６に記載のマイクロコンピュータ。
【請求項９】
前記ライト動作時に第１のテスト用レジスタに設定されたデータを、前記ライト動作時のつぎのサイクルで前記複数の動作モード設定レジスタ全てに設定することを特徴とする請求項６〜７の何れか一つに記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロコンピュータに関するものであり、特に、周辺モジュールに対する動作を指定するレジスタの内容を確認する機能を有するマイクロコンピュータに関するものである。
【０００２】
【従来の技術】
近年、マイクロコンピュータは、応用範囲の拡大にともないＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の高速化、大容量のメモリ、周辺機器内蔵と多様化している。周辺機器は、タイマ、Ａ／Ｄコンバータ、Ｄ／Ａコンバータなどがある。たとえば、タイマの場合、ＣＰＵが実行するプログラムによりタイマを動作させる基本クロックの周波数やタイマをワンタイムで用いるのか、フリーランで用いるのかなどの動作モードをタイマの動作モード設定レジスタに設定する。
【０００３】
このようにマイクロコンピュータの周辺機器は、動作モード設定レジスタに設定された値にしたがって動作する。そのため、動作モード設定レジスタにデータを設定した後、そのデータを確認する必要がある。
【０００４】
従来技術では、外部の周辺ハードウエアとのインタフェース部を備え、インタフェース部とＣＰＵと周辺機器の動作モード設定レジスタとをバスで相互に接続し、ＣＰＵが動作モード設定レジスタのデータを設定または参照する際に、インタフェース部を介して動作モード設定レジスタのデータを実時間で確認するようにしている（たとえば、特許文献１）。
【０００５】
【特許文献１】
特開平０２−３１０６３６号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、上記従来技術では、外部で動作モード設定レジスタのデータを確認するようにしているためデバック時には有効であるものの、マイクロコンピュータのプログラムがＳＲＦのデータを確認することはできなかった。そのため、デバッグが完了したプログラムにおいてＳＲＦへのデータ設定後に、そのデータを確認するためには、ＳＲＦのデータを参照する必要がある。すなわち、動作モード設定レジスタにデータを設定するライト命令実行後にＳＲＦのデータを参照するリード命令を実行する必要がある。
【０００７】
ＣＰＵが命令を実行する場合、命令が格納されているメモリ領域にアクセスする命令フェッチと演算処理や動作モード設定レジスタへのライト・リードなどの命令の実行を交互に繰り返す。たとえば、動作モード設定レジスタへのライト命令にリードに５つの命令フェッチが必要である場合、動作モード設定レジスタに書き込んだデータを確認するためのリード命令は、５サイクル後に実行することになり、時間がかかってしまうという問題があった。
【０００８】
また、ライト命令とリード命令の２命令が必要となり、プログラム領域であるＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）も増加してしまうという問題があった。
【０００９】
この発明は上記に鑑みてなされたもので、動作モード設定レジスタへの書き込み後の確認をライト命令直後に自動的にリード命令を実行し動作モード設定レジスタに書き込んだデータを確認するマイクロコンピュータを得ることを目的としている。
【００１０】
【課題を解決するための手段】
上記目的を達成するために、この発明にかかるマイクロコンピュータは、ＣＰＵが実行する命令を格納する命令格納メモリとはメモリバスで接続され、周辺モジュールの動作モードを設定する１〜複数の動作モード設定レジスタとは周辺バスで接続されるバスインタフェースユニットを備えるマイクロコンピュータにおいて、周辺イネーブル信号をアサートにした状態で所定の動作モード設定レジスタにデータを設定するライト命令によりライト動作を実行した後さらに１サイクルの間、周辺イネーブル信号をアサートにしてリード動作を実行することにより、前記ＣＰＵが前記バスインタフェースユニットを介して前記命令格納メモリからつぎの命令を読み出す命令フェッチの期間に、前記ライト動作により設定されたデータを前記周辺バス内の周辺データバスに出力することを特徴とする。
【００１１】
この発明によれば、ライト動作を実行後さらに１サイクル周辺イネーブル信号をアサートにするようにしているため、つぎの命令フェッチを読み出すと同時にライト動作時に書き込んだデータを読み出すためのリード動作を実行するようにしている。
【００１２】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるマイクロコンピュータの好適な実施の形態を詳細に説明する。
【００１３】
実施の形態１．
図１〜図２を用いて本発明の実施の形態１を説明する。図１は、この発明の実施の形態１のマイクロコンピュータの構成を示すブロック図である。この実施の形態１のマイクロコンピュータは、命令格納メモリ１０と、ＣＰＵ２０と、ＢＩＵ３０と、複数の周辺モジュール（この場合ｎ個）とそれら周辺モジュールの動作モード設定レジスタＳＦＲ４０〜４ｎと、ラッチ回路５０ａ〜ｃとを備えている。
【００１４】
命令格納メモリ１０には、ＲＯＭおよびＲＡＭで構成され、ＣＰＵ２０が実行するプログラム、すなわち、ＣＰＵ２０が実行する命令が格納される。
【００１５】
ＳＦＲ４０〜４ｎは、たとえば、タイマ、Ａ／Ｄコンバータ、Ｄ／Ａコンバータなどの周辺モジュールの動作モード設定レジスタである。ＳＦＲ４０〜４ｎは、特定のアドレス空間に割り当てられている。
【００１６】
ＣＰＵ２０は、ＢＩＵ３０を介して命令格納メモリ１０の命令を読み出し、その命令にしたがって演算処理などを行う。また、命令がＳＦＲ４０〜４ｎへのライト命令またはリード命令の場合、ＢＩＵ３０を介して周辺バスおよび周辺制御信号を出力する。具体的には、ＳＦＲ４０〜４ｎが割り当てられている特定のアドレス領域の場合、周辺セレクト信号をアサートにする。すなわち、周辺セレクト信号は、ＳＦＲ４０〜４ｎのアドレス領域が指定された場合に、そのアドレス領域をデコードして生成され、周辺アドレスバスのアドレスが変化するまでアサートとなる。また、ＣＰＵ２０は、周辺アドレスバスが示すＳＦＲ４０〜４ｎのいずれかに対するライト動作またはリード動作の実行に必要なサイクルだけ周辺イネーブル信号をアサートにする。周辺リード・ライト信号は、通常リード（この場合“Ｈ”）であり、ライト動作時のみ必要なサイクルだけ“Ｌ”とする。すなわち、ＣＰＵ２０は、周辺セレクト信号と周辺イネーブル信号をアサートにすることでＳＦＲ４０〜４ｎのいずれか一つを選択してライト動作またはリード動作を実行する。
【００１７】
ＢＩＵ３０は、バスインタフェースであり、メモリバス（アドレスバスおよびデータバス）で命令格納メモリ１０と接続される。また、ＢＩＵ３０は、ＳＦＲ４０〜４ｎと周辺バス（周辺アドレスバスおよび周辺データバス）および周辺制御信号（周辺セレクト信号、周辺イネーブル信号、周辺リード・ライト信号）でＳＲＦ４０〜４ｎと接続される。ＣＰＵ２０とはＣＰＵバスで接続され、ＣＰＵ２０が指定したアドレスがメモリアドレスであるか周辺アドレスであるかを識別して、命令格納メモリ１０またはＳＦＲ４０〜４ｎにアクセスする。なお、一般的には、高速化のためにメモリバスと周辺バスは個別に構成されることが多いが、これに限定されるものではない。
【００１８】
ラッチ回路５０ａは、周辺バスに接続され、周辺バスのデータが変化するまで周辺バス上のデータを保持する。ラッチ回路５０ｂは、周辺制御信号に接続され、周辺制御信号が変化するまで周辺上のデータを保持する。ラッチ回路５０ｃは、メモリバスに接続され、メモリバス上のデータが変化するまでメモリバス上のデータを保持する。
【００１９】
図２のタイムチャートを参照して、この実施の形態１のマイクロコンピュータがＳＲＦ４０にデータを書き込み、そのデータを確認する命令動作を説明する。クロックＣＬＫは、この実施の形態１のマイクロコンピュータの動作における基本信号であり、メモリバス、周辺バスおよび周辺制御信号はクロックＣＬＫに同期して変化する。
【００２０】
ＣＰＵ２０は、ＢＩＵ３０を介して命令格納メモリ１０の命令を読み出し、ＳＦＲ４０へのライト動作のために、ＣＰＵバスにＳＦＲ４０のアドレスを出力する。ＢＩＵ３０は、ＣＰＵバス上のアドレスがＳＦＲ４０のアドレスであることを識別し、ＳＦＲ４０のアドレスを周辺アドレスバスに出力する。
【００２１】
ＣＰＵ２０は、周辺セレクト信号をアサート（この場合“Ｌ”）にする。そして、ＳＦＲ４０に対する周辺イネーブル信号をアサート（この場合“Ｌ”）にする。さらに、ＳＦＲ４０の周辺リード・ライト信号を“Ｌ”にする。ＣＰＵ２０は、ＳＦＲ４０に書き込むデータをＢＩＵ３０を介して周辺データバスに出力する。周辺セレクト信号と周辺イネーブル信号と周辺リード・ライト信号とがすべて“Ｌ”であるので、周辺データバスのデータがＳＲＦ４０に書き込まれる。
【００２２】
ＳＦＲ４０にデータを書き込むライト期間である１サイクルが終了すると、ＣＰＵ２０は、周辺リード・ライト信号を“Ｈ”にする。ここで、ＣＰＵ２０は、周辺イネーブル信号を１サイクル延長する。すなわち、ＣＰＵ２０は、周辺リード・ライト信号が  “Ｌ”から“Ｈ”に変化した後、つぎの命令フェッチを読み出す１サイクルの期間周辺イネーブル信号を“Ｌ”にする。これにより、周辺リード・ライト信号の“Ｈ”が有効となり、ＳＦＲ４０のデータが読み出され、周辺データバスに出力される。
【００２３】
このようにこの実施の形態１では、ライト動作を実行後さらに１サイクル周辺イネーブル信号をアサートにするようにしているため、つぎの命令フェッチを読み出すと同時にライト動作時に書き込んだデータを読み出すためのリード動作を実行することが可能となり、周辺モジュールの動作モード設定レジスタに書き込んだデータを確認することができる。
【００２４】
なお、ＣＰＵ２０が、周辺リード・ライト信号によりＳＦＲ４０〜４ｎのいずれかにライト動作を行った後に周辺イネーブル信号を１サイクル延長させる命令は、通常のライト命令で実行してもよいし、新たな命令を追加してその命令の場合に周辺イネーブル信号を１サイクル延長させるようにしてもよい。これにより、ＣＰＵが実行する命令に柔軟性をもたせることができる。
【００２５】
実施の形態２．
図３を用いて本発明の実施の形態２を説明する。図３は、この発明の実施の形態２のマイクロコンピュータの構成を示すブロック図である。この実施の形態２におけるマイクロコンピュータでは、図１に示したマイクロコンピュータに、テスト用レジスタ６０と、ラッチ回路５０ｄと、比較器７０が追加されている。実施の形態１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００２６】
テスト用レジスタ６０は、専用データバスでＢＩＵ３０と接続されており、ＳＦＲ４０〜４ｎのいずれかにライト動作が実行される際に書き込まれるデータと同一のデータが書き込まれる。すなわち、ＣＰＵ２０はＢＩＵ３０を介してＳＦＲ４０〜４ｎにデータを書き込む際には、周辺データバスと専用データバスに同一のデータを出力し、テスト用レジスタ６０には、専用データバス上のデータが書き込まれる。
【００２７】
ラッチ回路５０ｄは、専用データバスに接続され、専用データバスのデータが変化するまでそのデータを保持する。
【００２８】
比較器７０は、周辺データバスのデータと専用データバスのデータを比較する。そして、比較した結果が異なる場合には、ＣＰＵ２０に割り込み要求信号を出力する。
【００２９】
つぎに、この実施の形態２のマイクロコンピュータの動作を説明する。ＣＰＵ２０は、ライト命令を実行する。これにより、ＢＩＵ３０は、周辺アドレスバスにＳＦＲ４０のアドレスを出力する。ＣＰＵ２０は、周辺セレクト信号を“Ｌ”にして、ＳＦＲ４０の周辺イネーブル信号と周辺リード・ライト信号を“Ｌ”にする。これらの信号はＢＩＵ３０を介してＳＦＲ４０に出力される。そして、ＣＰＵ２０は、ＢＩＵ３０を介して周辺データバスと専用データバスとに同一のデータを出力する。これにより、ライト動作が実行されＳＦＲ４０とテスト用レジスタ６０にデータが書き込まれる。
【００３０】
ＣＰＵ２０は、周辺リード・ライト信号を“Ｈ”にする。周辺イネーブル信号は“Ｌ”であるため、リード動作が実行される。これにより、ＳＦＲ４０は、ライト動作時に書き込まれたデータを周辺アドレスバスを介して比較器７０に出力する。また、テスト用レジスタ６０は、ライト動作時に書き込まれたデータを専用データバスを介して比較器７０に出力する。これらのデータはラッチ回路５０ａ，５０ｄにより、つぎにＳＦＲ４０〜４ｎのいずれかへのアクセスがあるまで保持される。
【００３１】
比較器７０は、周辺アドレスバス上のデータと専用データバス上のデータを比較する。すなわち、ＳＦＲ４０に書き込まれているデータとテスト用レジスタ６０に書き込まれているデータとを比較する。そして、比較の結果、２つのデータが不一致である場合には、ＣＰＵ２０に割り込み要求し信号を出力する。
【００３２】
命令格納メモリ１０には、割り込み処理のプログラムが格納されており、ＣＰＵ２０は、割り込み要求信号に基づいて命令格納メモリ１０の割り込み処理プログラムを実行する。
【００３３】
このようにこの実施の形態２では、テスト用レジスタを備え、ライト動作時に周辺モジュールの動作モード設定レジスタとテスト用レジスタの２つのレジスタに同じデータを書き込み、ライト動作直後に２つのデータを読み出して比較し、その比較の結果が不一致である場合、割り込み要求信号を出力するようにしているため、動作モード設定レジスタへのデータの書き込み動作が正しく行われたかを確認するとともに、不一致の場合の処理を行うことができる。
【００３４】
実施の形態３．
図４を用いて本発明の実施の形態３を説明する。実施の形態２では、周辺データバス上に読み出された動作モード設定レジスタのデータと専用データバス上に読み出されたテスト用レジスタとのデータを比較することで動作モード設定レジスタに書き込まれたデータの確認を行うようにした。しかし、テスト用レジスタ６０にデータを書き込むための専用データバスが必要となり、配線が多くなってしまう。
【００３５】
この実施の形態３では、このような問題を改善するために、動作モード設定レジスタが接続されている周辺バス上にテスト用レジスタを接続して、動作モード設定レジスタに書き込んだデータを確認するものである。
【００３６】
図４は、この発明の実施の形態３のマイクロコンピュータの構成を示すブロック図である。この実施の形態３におけるマイクロコンピュータでは、テスト用レジスタ６０が周辺バス上に接続され、ＳＦＲ４０〜４ｎのそれぞれの出力とテスト用レジスタ６０の出力とが比較器７０に入力されている。実施の形態２と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００３７】
つぎに、この実施の形態３のマイクロコンピュータの動作を説明する。ＣＰＵ２０はライト命令を実行する。すなわち、ＣＰＵバスにＳＦＲ４０のアドレスを出力する。これにより、ＢＩＵ３０は、周辺アドレスバスにＳＦＲ４０のアドレスを出力する。ＣＰＵ２０は、周辺セレクト信号を“Ｌ”にして、ＳＦＲ４０の周辺イネーブル信号と周辺リード・ライト信号を“Ｌ”にする。これらの信号はＢＩＵ３０を介してＳＦＲ４０とテスト用レジスタ６０に出力される。そして、ＣＰＵ２０は、ＢＩＵ３０を介して周辺データバスにＳＦＲ４０に書き込むデータを出力する。これにより、ライト動作が実行されＳＦＲ４０とテスト用レジスタ６０にデータが書き込まれる。
【００３８】
ＣＰＵ２０は、周辺リード・ライト信号を“Ｈ”にする。周辺イネーブル信号は“Ｌ”であるため、リード動作が実行される。これにより、ＳＦＲ４０とテスト用レジスタ６０は、ライト動作時に書き込まれたデータをそれぞれ比較器７０に出力する。
【００３９】
比較器７０は、ＳＦＲ４０から入力されたデータとテスト用レジスタ６０から入力されたデータとを比較する。そして、比較の結果、２つのデータが不一致である場合には、ＣＰＵ２０に割り込み要求し信号を出力する。
【００４０】
命令格納メモリ１０には、割り込み処理のプログラムが格納されており、ＣＰＵ２０は、割り込み要求信号に基づいて命令格納メモリ１０の割り込み処理プログラムを実行する。
【００４１】
このようにこの実施の形態３では、動作モード設定レジスタが接続されている周辺バス上にテスト用レジスタを接続して、ライト動作時に、対象となる動作モード設定レジスタとテスト用レジスタに同一のデータを書き込み、その後動作モード設定レジスタとテスト用レジスタとのデータを比較するようにしているため、テスト用レジスタの専用データバスを用いることなく、少ない配線で動作モード設定レジスタに書き込んだデータを確認することができる。
【００４２】
実施の形態４．
図５および図６を用いて本発明の実施の形態４を説明する。実施の形態１〜３では、ライト動作を実行後さらに１サイクル周辺イネーブル信号をアサートにするようにしているため、つぎの命令フェッチを読み出すと同時にライト動作時に書き込んだデータを読み出すためのリード動作を実行するようにした。しかし、マイクロコンピュータの動作における基本信号であるクロックの周波数が高くなり、１サイクルの周期が短くなると動作モード設定レジスタのリード動作時のマージンが取れない場合がある。すなわち、ライト動作時に動作モード設定レジスタに書き込んだデータが正しく読み出せない場合がある。
【００４３】
このような問題を改善するために、この実施の形態４では、２つのテスト用レジスタ６０，８０を備え、ライト動作を実行後に２サイクル周辺イネーブル信号をアサートにすることで、リード動作のマージンを取るものである。
【００４４】
図５は、この発明の実施の形態４のマイクロコンピュータの構成を示すブロック図である。この実施の形態４におけるマイクロコンピュータでは、図１に示したマイクロコンピュータにテスト用レジスタ６０，８０が追加されている。実施の形態１と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００４５】
テスト用レジスタ６０は、専用データバスでＢＩＵ３０と接続されており、ＳＦＲ４０〜４ｎのいずれかにライト動作が実行される際に書き込まれるデータと同一のデータが書き込まれる。すなわち、ＣＰＵ２０はＢＩＵ３０を介してＳＦＲ４０〜４ｎにデータを書き込む際には、周辺データバスと専用データバスに同一のデータを出力し、テスト用レジスタ６０には、専用データバス上のデータが書き込まれる。
【００４６】
テスト用レジスタ８０には、テスト用レジスタ６０に書き込まれているデータを反転させたデータが書き込まれる。
【００４７】
つぎに、この実施の形態４のマイクロコンピュータの動作を説明する。ＣＰＵ２０はライト命令を実行する。すなわち、ＣＰＵバスにＳＦＲ４０のアドレスを出力する。これにより、ＢＩＵ３０は、周辺アドレスバスにＳＦＲ４０のアドレスを出力する。ＣＰＵ２０は、周辺セレクト信号を“Ｌ”にして、ＳＦＲ４０の周辺イネーブル信号と周辺リード・ライト信号を“Ｌ”にする。これらの信号はＢＩＵ３０を介してＳＦＲ４０とテスト用レジスタ６０に出力される。そして、ＣＰＵ２０は、ＢＩＵ３０を介して周辺データバスと専用データバスとに同一のデータを出力する。これにより、ライト動作が実行されＳＦＲ４０とテスト用レジスタ６０にデータが書き込まれる。
【００４８】
テスト用レジスタ６０は、書き込まれたデータを反転したデータをテスト用レジスタ８０に書き込む。すなわち、ライト期間に、テスト用レジスタ６０には周辺バス上のデータが、テスト用レジスタ８０には周辺バス上のデータの反転データがそれぞれ書き込まれる。
【００４９】
ＣＰＵ２０は、周辺リード・ライト信号を“Ｈ”にする。周辺イネーブル信号は“Ｌ”であるため、リード動作が実行される。これにより、テスト用レジスタ８０は、ライト動作時に書き込まれたデータを周辺データバスに出力する。ＣＰＵ２０は、さらに１サイクル周辺イネーブル信号を“Ｌ”にする。すなわち、周辺リード・ライト信号が“Ｌ”から“Ｈ”に変化してから２サイクル周辺イネーブル信号を“Ｌ”にする。これにより周辺リード・ライト信号の“Ｈ”が有効となり、ＳＦＲ４０は書き込まれたデータを周辺データバスに出力する。
【００５０】
このようにこの実施の形態４では、２つのテスト用レジスタを備え、ライト動作時に、動作モード設定レジスタと一方のテスト用レジスタに同一のデータを書き込み、もう一方のテスト用レジスタには、動作モード設定レジスタのデータを反転させたデータを書き込む。そして、ライト動作実行後さらに２サイクル周辺イネーブル信号をアサートして、１サイクル目に反転させたデータを読み出し、つぎのサイクルで動作モード設定レジスタのデータを読み出して周辺バス上の出力するようにしている。これにより、動作モード設定レジスタにデータを書き込むライト動作と書き込んだデータを読み出すリード動作との間に、反転データを読み出すリード動作が入ることになり、動作モード設定レジスタのデータの読み出しのリード動作のマージンを確保することが可能となり、リード動作のマージン不足によるデータの不一致の発生を防ぐことができる。
【００５１】
なお、動作モード設定レジスタのデータを読み出すリード動作時に同じデータを書き込んだテスト用レジスタのデータを読み出し、これら２つのデータを比較した結果が不一致の場合には、割り込み要求を発生させるようにしてもよい。これにより、動作モード設定レジスタへのデータの書き込み動作が正しく行われたかを確認するとともに、不一致の場合の処理を行うことができる。
【００５２】
また、専用データバスを用いることなく、周辺データバスにテスト用レジスタを接続するようにしてもよい。これにより、少ない配線で動作モード設定レジスタのデータの読み出しのリード動作のマージンを確保し、リード動作のマージン不足によるデータの不一致の発生を防ぐことができる。
【００５３】
実施の形態５．
図７を用いて本発明の実施の形態５を説明する。この実施の形態５では、テスト用レジスタを用いて複数の動作モード設定レジスタにデータを書き込み、複数の動作モード設定レジスタのテストを行うものである。
【００５４】
図７は、この発明の実施の形態５のマイクロコンピュータの構成を示すブロック図である。この実施の形態５におけるマイクロコンピュータでは、テスト用レジスタ６０とＳＦＲ４０〜４ｎとがテスト用データバスで接続されている。実施の形態３と同じ機能を持つ構成部分には同一符号を付し、重複する説明は省略する。
【００５５】
ＣＰＵ２０は、ライト動作を実行する。すなわち、ＢＩＵ３０を介して周辺データバス上にテスト用データを出力し、テスト用レジスタ６０に、テスト用データを書き込む。ライト動作のつぎのサイクルで、テスト用レジスタ６０は、テスト用データをテスト用データバスに出力し、ＳＦＲ４０〜４ｎにテスト用データを書き込む。すなわち、つぎの命令を実行するための命令フェッチを読み出す期間に、テスト用レジスタ６０のデータがＳＦＲ４０〜４ｎに一斉に書き込まれる。
【００５６】
ＣＰＵ２０は、ＳＦＲ４０〜４ｎに対してそれぞれリード命令を実行し、ＳＦＲ４０〜４ｎのデータを読み出し、ＳＦＲ４０〜４ｎに書き込まれたデータを確認する。
【００５７】
このようにこの実施の形態５では、テスト用レジスタと複数の動作モード設定レジスタとをテスト用データバスで接続し、テスト用レジスタにデータを書き込むライト動作のつぎのサイクルで、複数の動作モード設定レジスタに同時に同じデータを設定するようにしているため、複数の動作モード設定レジスタに個別にデータを設定することなく、動作モード設定レジスタのテストを行うことが可能となり、テスト時間を短縮することができる。
【００５８】
なお、ＣＰＵ２０が、周辺リード・ライト信号によりＳＦＲ４０〜４ｎのいずれかにライト動作を行った後に周辺イネーブル信号を１サイクル延長させる命令は、通常のライト命令で実行してもよいし、新たな命令を追加してその命令の場合に周辺イネーブル信号を１サイクル延長させるようにしてもよい。これにより、ＣＰＵが実行する命令に柔軟性をもたせることができる。
【００５９】
【発明の効果】
以上説明したように、この発明にかかるマイクロコンピュータによれば、ライト動作を実行後さらに１サイクル周辺イネーブル信号をアサートにするようにしているため、つぎの命令フェッチを読み出すと同時にライト動作時に書き込んだデータを読み出すためのリード動作を実行するようにしているため、ライト命令の後にリード命令を実行することなく周辺モジュールの動作モード設定レジスタに書き込んだデータを確認することができる。
【図面の簡単な説明】
【図１】この発明における実施の形態１のマイクロコンピュータの構成を示すブロック図である。
【図２】この発明における実施の形態１のマイクロコンピュータの動作を説明するためのタイムチャートである。
【図３】この発明における実施の形態２のマイクロコンピュータの構成を示すブロック図である。
【図４】この発明における実施の形態３のマイクロコンピュータの構成を示すブロック図である。
【図５】この発明における実施の形態４のマイクロコンピュータの構成を示すブロック図である。
【図６】この発明における実施の形態４のマイクロコンピュータの動作を説明するためのタイムチャートである。
【図７】この発明における実施の形態５のマイクロコンピュータの構成を示すブロック図である。
【符号の説明】
１０  命令格納メモリ、２０  ＣＰＵ、３０  ＢＩＵ、４０，４ｎ  ＳＦＲ、５０ａ，５０ｂ，５０ｃ，５０ｄ  ラッチ回路、６０，８０  テスト用レジスタ、７０  比較器。
【図１】
2004185060.tif 000003
【図２】
2004185060.tif 000004
【図３】
2004185060.tif 000005
【図４】
2004185060.tif 000006
【図５】
2004185060.tif 000007
【図６】
2004185060.tif 000008
【図７】
2004185060.tif 000009