(57)【特許請求の範囲】
【請求項１】
読出専用メモリと、
外部の検査器から供給されるクロックに同期して前記読出専用メモリからデータを順次読み出し、前記検査器に前記データの正常性と読出速度とを検査させる第１手段と、
前記データをデコードして分岐命令が得られた場合、次にデータを読み出すべきアドレスを退避し、前記次にデータを読み出すべきアドレスに代えて、前記分岐命令による分岐先アドレスからデータを読み出して前記検査器に検査させ、前記分岐先アドレスからのデータ読出後、前記退避したアドレスからのデータ読出を再開する第２手段と、
を備えたマイクロコンピュータ。
【請求項２】
請求項１において、
前記分岐命令が、条件分岐命令及び無条件分岐命令を含むことを特徴としたマイクロコンピュータ。
【請求項３】
請求項１において、
前記第２手段が、前記分岐命令として相対分岐命令が得られた場合、前記分岐先アドレスを、前記相対分岐命令が得られたデータの読出元アドレスに前記相対分岐命令による相対アドレスを加算したアドレスとする手段を含むことを特徴としたマイクロコンピュータ。
【請求項４】
読出専用メモリと、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）とを備えたマイクロコンピュータの検査方法であって、
前記ＣＰＵは、
外部の検査器から供給されるクロックに同期して前記読出専用メモリからデータを順次読み出し、前記検査器に前記データの正常性と読出速度とを検査させる第１ステップと、
前記データをデコードして分岐命令が得られた場合、次にデータを読み出すべきアドレスを退避し、前記次にデータを読み出すべきアドレスに代えて、前記分岐命令による分岐先アドレスからデータを読み出して前記検査器に検査させ、前記分岐先アドレスからのデータ読出後、前記退避したアドレスからのデータ読出を再開する第２ステップと、
を実行する、
マイクロコンピュータの検査方法。
【請求項５】
請求項４において、
前記ＣＰＵは、前記第２ステップで、前記分岐命令として条件分岐命令及び無条件分岐命令のいずれが得られた場合であっても、前記分岐先アドレスからデータを読み出して前記検査器に検査させるステップを実行する、
ことを特徴としたマイクロコンピュータの検査方法。
【請求項６】
請求項４において、
前記ＣＰＵは、前記第２ステップで、前記分岐命令として相対分岐命令が得られた場合、前記分岐先アドレスを、前記相対分岐命令が得られたデータの読出元アドレスに前記相対分岐命令による相対アドレスを加算したアドレスとするステップを実行する、
ことを特徴としたマイクロコンピュータの検査方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及びその検査方法に関し、特にROM(Read Only Memory)内の配線不良に伴うデータ読出遅延を検査する技術に関する。
【背景技術】
【０００２】
マイクロコンピュータは、一般に、半導体基板上にCPU(Central Processing Unit)やROM等を集積したものである。マクロコンピュータにおいては、近年のプロセス微細化や高集積化に伴う配線不良が顕著化して来ている。特に、メタル層同士間の配線を繋ぐためのスルーホールに混入する微細なゴミ等が配線抵抗を増大させ(以下、これを高抵抗不良と呼称する)、配線遅延を生じさせてしまう。
【０００３】
この配線遅延の影響は、マイクロコンピュータ内で大きな実装面積を占めるメモリ部分に特に顕著に現れる。すなわち、メモリを構成するアドレスデコーダに上記のような高抵抗不良が生じると、アドレスデコーダの出力が遅延し、データの読出速度が低下してしまう。従って、メモリ内の配線不良に伴うデータ読出遅延を検査する必要性が高まって来ている。
【０００４】
このようなデータ読出遅延の検査技術としては、以下に説明する関連技術が知られている。
【０００５】
[関連技術]
図7に示すマイクロコンピュータ1bは、CPU10bと、ROM20とを備えている。また、CPU10bとROM20は、アドレスバスB1及びデータバスB2により相互接続されている。また、マイクロコンピュータ1bにはクロック入力端子P1が設けられ、外部から入力される検査用クロックCLKをCPU10bに与えるようにしている。さらに、マイクロコンピュータ1bにはデータ出力端子P2が設けられ、データバスB2を介してROM20から読み出したデータを外部に出力できるようにしている。
【０００６】
また、同図に示すテスタ2は、クロック入力端子P1に対して検査用クロックCLKを供給するドライバ200と、データ出力端子P2から出力されたデータを期待値と比較することによりデータの正常性及び読出遅延を検査するコンパレータ300とを備えている。なお、図示されないが、マイクロコンピュータ1bには、ドライバ200からの動作モード設定信号やリセット信号を入力するための端子も設けられている。
【０００７】
動作においては、図8に示すように、まずマイクロコンピュータ1bとテスタ2の相互動作により、上記の各端子に対する入出力設定や、CPU10bに対するROM20の先頭アドレス及び最終アドレスの指示等を含む検査用初期設定を行う(ステップT1)。
【０００８】
この後、CPU10bは、ROM20の先頭アドレスからデータを読み出し、データ出力端子P2を介してコンパレータ300に与える(ステップT2)。コンパレータ300は、CPU10bから受けたデータを期待値と比較して判定する(ステップT3)。具体的には、コンパレータ200は、データが正常な値であるか否か、及びデータが検査用クロックCLKのクロック周期に対応する速度で読み出されたか否かを判定する。この判定結果が"NG"であれば、コンパレータ300は、即座に検査を終了する。
【０００９】
一方、データの判定結果が"OK"である場合には、コンパレータ300は、データ読出が行われたアドレスがROM20の最終アドレスに到達したか否か(すなわち、ROM20内の全アドレスに対するデータ読出が完了したか否か)をさらに判定する(ステップT4)。ROM20の最終アドレスに到達していれば、コンパレータ300は検査を終了する。
【００１０】
一方、ROM20の最終アドレスに未だ到達していない場合には、コンパレータ300は検査を継続する。すなわち、CPU10bが、データ読出を行うアドレスを順次インクリメントして(ステップT6)、上記のステップT2を繰り返し実行し、コンパレータ300が上記のステップT3及びT4を繰り返し実行する。
【００１１】
このようにして、ROM内の全アドレスについてデータの正常性及び読出速度を検査することが可能である(例えば、特許文献1参照)。
【００１２】
【特許文献１】特開平１０−１１６２６３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、上記の関連技術では、上述した高抵抗不良に伴うデータ読出遅延を十分に検査できないという課題があった。これは、実際に高抵抗不良が生じていても、上記の関連技術のようにアドレスを単純にインクリメントさせながらデータの順次読出を行った場合には、近傍配線からのクロストークの影響を受けて配線中に信号変化が生じ、その変化如何によってはデータ読出が正常動作しているように見えてしまうためである。
【００１４】
ところで、実運用条件下においては、ROMに格納されるプログラムに分岐命令が含まれる。この分岐命令によるアドレス遷移時には、近傍配線からのクロストークの影響を受けないため(すなわち、アドレス遷移前のデータ読出により信号が変化している配線と、アドレス遷移後のデータ読出により信号が伝送されることとなる配線とが離れているため)、高抵抗不良に伴うデータ読出遅延が顕在化してしまう。
【課題を解決するための手段】
【００１５】
本発明の一態様に係るマイクロコンピュータは、読出専用メモリと、外部の検査器から供給されるクロックに同期して前記読出専用メモリからデータを順次読み出し、前記検査器に前記データの正常性と読出速度とを検査させる第１手段と、前記データをデコードして分岐命令が得られた場合、次にデータを読み出すべきアドレスを退避し、前記次にデータを読み出すべきアドレスに代えて、前記分岐命令による分岐先アドレスからデータを読み出して前記検査器に検査させ、前記分岐先アドレスからのデータ読出後、前記退避したアドレスからのデータ読出を再開する第２手段とを備える。
【００１６】
また、本発明の一態様に係るマイクロコンピュータの検査方法は、読出専用メモリと、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）とを備えたマイクロコンピュータの検査方法を提供する。この方法において、前記ＣＰＵは、外部の検査器から供給されるクロックに同期して前記読出専用メモリからデータを順次読み出し、前記検査器に前記データの正常性と読出速度とを検査させる第１ステップと、前記データをデコードして分岐命令が得られた場合、次にデータを読み出すべきアドレスを退避し、前記次にデータを読み出すべきアドレスに代えて、前記分岐命令による分岐先アドレスからデータを読み出して前記検査器に検査させ、前記分岐先アドレスからのデータ読出後、前記退避したアドレスからのデータ読出を再開する第２ステップとを実行する。
【００１７】
すなわち、本発明では、分岐命令による分岐先アドレスからデータを読み出して検査するため(すなわち、クロストークの影響を受けない状態での読出検査を行うため)、高抵抗不良に伴うデータ読出遅延を検出することができる。
【発明の効果】
【００１８】
本発明によれば、ROM内の配線不良に伴うデータ読出遅延を上記の関連技術と比較してより確実に検査でき、以てマイクロコンピュータの製品品質を向上させることが可能である。
【発明を実施するための最良の形態】
【００１９】
以下、本発明に係るマイクロコンピュータの実施の形態１及び２を、図1〜図6を参照して説明する。なお、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
【００２０】
[実施の形態１]
[構成例]
図1に示す本実施の形態に係るマイクロコンピュータ1は、CPU10と、このCPU10にアドレスバス及びデータバス(共に図示せず)により接続されたROM20とを備えており、クロック入力端子P1、データ出力端子P2、及び動作モード設定端子P3を介して図7と同様のテスタ2に接続されている。
【００２１】
また、CPU10は、アドレス制御信号SG2に従ってROM20へアドレスAnを供給するアドレスカウンタ11と、アドレスAnに対応してROM20から読み出されたデータDnをラッチするフェッチレジスタ12と、退避制御信号SG3に従ってアドレスAnをラッチする退避レジスタ13と、フェッチレジスタ12から出力されたデータDnをデコード(解析)して命令コードDiを取得すると共に、命令コードDiが分岐命令である場合には分岐先アドレスAbを生成するID回路14と、選択信号SG4に従って退避レジスタ13から出力されたアドレス又はID回路14から出力された分岐先アドレスAbの一方を選択するセレクタ15と、命令コードDiが分岐命令及びこれ以外の命令(以下、他命令と呼称する)のいずれを示すかに応じてアドレス制御信号SG2、退避制御信号SG3、及び選択信号SG4を生成する分岐監視回路16とを備えている。
【００２２】
ここで、上記のアドレス制御信号SG2は、アドレスカウンタ11に対して、カウンタ11自身でカウント(インクリメント)したアドレスをROM20へ出力させるか、又はセレクタ15から受けたアドレスをROM20へ出力させるかを指示するための信号である。
【００２３】
また、CPU10内の各部11〜16には、クロック入力端子P1を介してテスタ2から検査用クロックCLKが供給される。フェッチレジスタ12から出力されたデータDnは、データ出力端子P2を介してテスタ2に出力される。分岐監視回路16には、動作モード設定端子P3を介してテスタ2から動作モード信号SG1が与えられる。
【００２４】
[動作例]
次に本実施の形態の動作を説明するが、まずマイクロコンピュータ1及びテスタ2の全体動作を、図2を参照して説明する。そして、マイクロコンピュータ1の詳細動作を、図3及び図4を参照して説明する。
【００２５】
[全体動作例]
図2に示すように、まずテスタ2が、CPU10内の分岐監視回路16に対して動作モード信号SG1＝"1(検査モード)"を与え、以て分岐監視回路16(すなわち、CPU10)をROM20の検査が可能な状態に遷移させる(ステップS1)。この時、アドレスカウンタ11、フェッチレジスタ12、退避レジスタ13、及び後述する分岐フラグFLGが初期化される(ステップS2)。
【００２６】
そして、アドレスカウンタ11は、初期化されたアドレス(例えば、ROM20の先頭アドレス)AnをROM20に与える。これに対応してROM20から読み出されたデータDnがフェッチレジスタ12に取り込まれる(ステップS3)。フェッチレジスタ12は、データDnをデータ出力端子P2を介してテスタ2に与える(ステップS4)。
【００２７】
テスタ2は、フェッチレジスタ12から受けたデータDnを期待値と比較する(ステップS5)。ここで、期待値との比較とは、上記の関連技術と同様、データDnが正常な値であるか否か、及びデータDnが検査用クロックCLKのクロック周期に対応する速度で読み出されたか否かを判定することである。テスタ2は、上記の関連技術と同様、比較結果が"OK"であれば検査を継続し、"NG"であれば検査を終了する(ステップS6)。
【００２８】
上記の検査と並行して、分岐監視回路16は、内部に保持する分岐フラグFLGを判定する(ステップS7)。ここで、分岐フラグFLGは、アドレスカウンタ11に分岐先アドレスAbをラッチさせた場合に"1"に設定されるものである。
【００２９】
初期状態においては、分岐フラグFLG＝"0"が成立するため、分岐監視回路16は、ID回路14にてデコードされた命令コードDiを取得する(ステップS8)と共に、命令コードDiが分岐命令を示すか否かを判定する(ステップS9)。
【００３０】
今、命令コードDiが分岐命令でないとすると、分岐監視回路16は、アドレスカウンタ11に対してアドレス制御信号SG2＝"0(インクリメント)"を与え、以てアドレスカウンタ11にインクリメント後のアドレスをROM20へ与えさせる(ステップS10)。
【００３１】
そして、ステップS11に進んで再び分岐フラグFLGが判定されるが、やはり分岐フラグFLG＝"0"が成立するため、分岐監視回路16は、ステップS12へ進み、データ読出を行ったアドレスがROM20の最終アドレスに到達したかを判定する。ROM20の最終アドレスに到達していれば、分岐監視回路16はデータ読出を終了する。また、テスタ2による検査も終了する。なお、分岐監視回路16は、ROM20の最終アドレスを予め認識しているものとする。
【００３２】
一方、ROM20の最終アドレスに未だ到達していない場合には、上記のステップS3〜S8が再び実行される。
【００３３】
これにより、命令コードDiとして分岐命令が得られたとすると、分岐監視回路16は、上記のステップS10と同様にしてアドレスカウンタ11にアドレスをインクリメントさせる一方、退避レジスタ13に対して退避制御信号SG3を与えてアドレスAnをラッチさせる。また、分岐監視回路16は、セレクタ15に対して選択信号SG4＝"1"を与えてID回路14から出力された分岐先アドレスAbを選択させる。さらに、分岐監視回路16は、アドレスカウンタ11に対してアドレス制御信号SG2＝"1(セレクタ15の出力取込)"を与え、以て分岐先アドレスAbをROM20へ与えさせる。そして、分岐監視回路16は、分岐フラグFLGを"1"に設定する(ステップS14)。
【００３４】
これにより、上記のステップS11を経由して、上記のステップS3〜S6が再び実行され、以てテスタ2に分岐先アドレスAbから読み出されたデータの検査を行わせることができる。
【００３５】
この時、上記のステップS7において分岐フラグFLG＝"1"が成立するため、分岐監視回路16は、セレクタ15に対して選択信号SG4＝"0"を与えると共にアドレスカウンタ11に対してアドレス制御信号SG2＝"1(セレクタ15の出力取込)"を与え、以てアドレスカウンタ11に退避レジスタ13から出力されたアドレスをROM20へ与えさせる。そして、分岐監視回路16は、分岐フラグFLGを"0"に設定する(ステップS15)。
【００３６】
これにより、退避していたアドレスからのデータ読出を再開し、テスタ2に検査を継続させることができる。
【００３７】
[詳細動作例]
図3に、上記の全体動作を実現するための分岐監視回路16の一構成例を示す。この分岐監視回路16は、動作モード信号SG1に従いID回路14から出力された分岐命令コードDib及び他命令コードDioを遮断する命令OFF回路101と、分岐命令コードDib中のビットDib[0]〜[m](分岐命令(条件分岐命令及び無条件分岐命令を含む)である場合には、少なくとも１つのビットに"1"が設定される)の論理和を取って分岐ステータス信号SG5を生成するOR回路102と、NOR回路103と、動作モード信号SG1、分岐ステータス信号SG5、及びNOR回路103の出力の論理積を取って退避制御信号SG3を生成するAND回路104と、退避制御信号SG3をラッチしてNOR回路103の一方の入力端へ与えるフリップフロップ(以下、FF)105及びこの出力をラッチしてNOR回路103の他方の入力端へ与えるFF106から成る分岐フラグレジスタ107と、退避制御信号SG3及びFF105の出力の論理和を取るOR回路108と、このOR回路108の出力及び分岐命令コードDibの論理和を取ってアドレス制御信号SG2を生成するOR回路109と、退避制御信号SG3及び分岐命令コードDibの論理和を取って選択信号SG4を生成するOR回路110とを備える。
【００３８】
ここで、命令OFF回路101は、動作モード信号SG1が"1(検査モード)"を示す時、分岐命令コードDib及び他命令コードDioを遮断する。従って、検査モード時には、命令OFF回路101から出力される分岐命令コードDibが"0"に固定されるため、OR回路109が、OR回路108の出力をそのままアドレス制御信号SG2とし、OR回路110が、AND回路104の出力をそのまま選択信号SG4とする(すなわち、退避制御信号SG3と選択信号SG4が同一の信号波形となる)。
【００３９】
なお、動作モード信号SG1が"0(通常モード)"を示す時には、命令OFF回路101は、他命令コードDioを後段の命令実行部(図示せず)に与え、分岐命令コードDibをOR回路109及び110に共通に与える。また、AND回路104の出力が"0"に固定されるため、OR回路108の出力も常に"0"となる。従って、CPU10は、命令コードDiに従って通常動作を行うことができる。これは、後述する実施の形態２においても同様に適用される。
【００４０】
また、アドレス制御信号SG2、退避制御信号SG3、及び選択信号SG4の値を、それぞれ下記の通りに定義する。
【００４１】
[アドレス制御信号SG2]
・"1"：アドレスカウンタ11に、セレクタ15から出力されたアドレスをROM20へ与えさせると共に、アドレスAnを退避レジスタ13へ与えさせる。
・"0"：アドレスカウンタ11に、アドレスAnをインクリメントしてROM20へ与えさせる。
[退避制御信号SG3]
・"1"：退避レジスタ13に、保持しているアドレスをアドレスカウンタ11から出力されたアドレスAnに更新させる。
・"0"：退避レジスタ13に、保持しているアドレスを維持させる。
[選択信号SG4]
・"1"：セレクタ15に、分岐先アドレスAbを選択させる。
・"0"：セレクタ15に、退避レジスタ13から出力されたアドレスを選択させる。
【００４２】
以下、検査モード時の動作を、図4を参照して検査用クロックCLKのクロック周期毎に説明する。
【００４３】
[クロック周期T1]
アドレスカウンタ11は、初期アドレスA00をROM20に与える。これにより、アドレスA00に対応するデータD00がROM20から出力される。
【００４４】
[クロック周期T2]
フェッチレジスタ12は、データD00を取り込む。この段階では、未だ命令コードDiが取得されていないため、OR回路102から出力される分岐ステータス信号SG5は"0"である。このため、AND回路104から出力される退避制御信号SG3及び選択信号SG4が"0"であり、FF105の出力も"0"である。従って、OR回路から出力されるアドレス制御信号SG2は"0"を維持し、以てアドレスカウンタ11によりインクリメントされたアドレスA01がROM20に与えられる。これにより、アドレスA01に対応するデータD01がROM20から出力される。
【００４５】
一方、データD00をデコードして得られた命令コードDiが他命令Dioであるため、分岐ステータス信号SG5は"0"を維持する。
【００４６】
[クロック周期T3]
検査用クロックCLKの立ち上がり時、アドレス制御信号SG2が"0"であるため、アドレスA02がROM20に与えられる。これにより、アドレスA02に対応するデータD02がROM20から出力される。
【００４７】
一方、データD01をデコードして得られた命令コードDiが分岐命令Dibであるため、分岐ステータス信号SG5は"1"に変化する。この時、動作モード信号SG1(図3参照)及びNOR回路103の出力も"1"であるため、退避制御信号SG3及び選択信号SG4が共に"1"に変化する。これに伴い、アドレス制御信号SG2も"1"に変化する。
【００４８】
従って、セレクタ15は、ID回路14により生成された分岐先アドレスAb(この例では、アドレスA10)を選択する状態となる。また、アドレスカウンタ11は、アドレスA02を退避レジスタ13に出力する状態となる。
【００４９】
[クロック周期T4]
検査用クロックCLKの立ち上がり時、退避制御信号SG3が"1"であるため、退避レジスタ13は、アドレスカウンタ11から出力されたアドレスA02を取り込む。
【００５０】
また、アドレス制御信号SG2及び選択信号SG4が共に"1"であるため、アドレスカウンタ11は、セレクタ15から出力されたアドレスA10を取り込み、ROM20に与える。これにより、アドレスA10に対応するデータD10がROM20から出力される。
【００５１】
一方、データD02をデコードして得られた命令コードDiが他命令Dioであるため、分岐ステータス信号SG5は"0"に変化する。この時、選択信号SG4が"0"に変化するため、セレクタ15は、退避レジスタ13から出力されたアドレスA02を選択する状態となる。また、FF105の出力が"1"であるため、アドレス制御信号SG2は"1"を維持する。従って、アドレスカウンタ11は、セレクタ15からアドレスを取り込む状態を維持する。
【００５２】
また、FF105の出力が"1"である一方、FF106の出力が"0"であるため、NOR回路103の出力は"0"に変化する。このため、例えデータD02をデコードして得られた命令コードDiが分岐命令Dibであっても(すなわち、分岐ステータス信号SG5が"1"を維持しても)、分岐ステータス信号SG5が遮断されて上記と同様の動作が実行される(すなわち、２重の分岐読出は実行されない)。
【００５３】
[クロック周期T5]
検査用クロックCLKの立ち上がり時、アドレス制御信号SG2が"1"であり、選択信号SG4が"0"であるため、退避レジスタ13に退避されていたアドレスA02がROM20に与えられる。これにより、アドレスA02に対応するデータD02がROM20から出力される。
【００５４】
一方、データD10をデコードして得られた命令コードDiが他命令Dioであるため、分岐ステータス信号SG5は"0"を維持する。従って、退避制御信号SG3及び選択信号SG4も"0"を維持する。また、FF105の出力が"0"であるため、アドレス制御信号SG2は"0"に変化する。従って、アドレスカウンタ11は、アドレスA02をインクリメントしてROM20に与える状態となる。
【００５５】
また、FF105の出力が"0"である一方、FF106の出力が"1"であるため、NOR回路103の出力は"0"を維持する。このため、例えデータD10をデコードして得られた命令コードDiが分岐命令Dibであっても、上記と同様の動作が実行される。
【００５６】
[クロック周期T6〜T8]
クロック周期T6において、アドレスカウンタ11によりインクリメントされたアドレスA03がROM20に与えられる。これにより、アドレスA03に対応するデータD03がROM20から出力される。一方、データD02が他命令Dioであるため、上記のクロック周期T2と同様の動作が実行される。
【００５７】
また、クロック周期T7及びT8、並びにこれ以降においても、分岐命令Dibが得られる迄は、上記のクロック周期T2と同様の動作が実行されることとなる。
【００５８】
[実施の形態２]
[構成例]
図5に示す本実施の形態に係るマイクロコンピュータ1aは、CPU10aが、図1に示したCPU10の構成に加えて、アドレスカウンタ11からROM20に対して出力されたアドレスAnを検査用クロックCLKの１クロック周期分だけ遅延させるシフトレジスタ17と、相対分岐信号SG6に従ってシフトレジスタ17の出力とID回路14から出力された分岐先アドレスAbとを加算する加算器18と、相対分岐信号SG6に従って分岐アドレスAb又は加算器18の出力の一方を選択するセレクタ19とを有している点が上記の実施の形態１と異なる。
【００５９】
ここで、分岐監視回路16には図3に示したものを用い、ID回路14から出力された分岐命令コードDib中の例えばビットDib[0](相対分岐命令である場合に"1"、他の分岐命令である場合には"0"が設定されるものとする)を相対分岐信号SG6として使用する。従って、セレクタ19は、分岐命令コードDibが相対分岐命令を示す場合に加算器18の出力をセレクタ15に与え、分岐命令コードDibが相対分岐命令以外の分岐命令(以下、通常分岐命令と呼称する)を示す場合には分岐先アドレスAbをセレクタ15に与える。
【００６０】
なお、図示されないが、マイクロコンピュータ1aには、図1と同様、クロック入力端子P1、データ出力端子P2、及び動作モード設定端子P3を介してテスタ2を接続することができる。また、CPU10a内の各部11〜19には、クロック入力端子P1を介してテスタ2から検査用クロックCLKが供給される。
【００６１】
[動作例]
以下、図5に示したマイクロコンピュータ1aの検査モード時の動作を、図6を参照して検査用クロックCLKのクロック周期毎に説明する。
【００６２】
[クロック周期T1〜T6]
アドレスA01に対応してROM20から読み出されたデータD01のみが分岐命令Dibであり且つ通常分岐命令であるとすると、相対分岐信号SG6は"0"を維持するため、図4に示したクロック周期T1〜T6と同様の動作が実行される。
【００６３】
[クロック周期T7]
検査用クロックCLKの立ち上がり時、アドレス制御信号SG2が"0"であるため、アドレスA04がROM20に与えられる。これにより、アドレスA04に対応するデータD04がROM20から出力される。
【００６４】
一方、前のクロック周期T6においてROM20に与えられたアドレスA03に対応するデータD03が分岐命令Dibであるため、分岐ステータス信号SG5は、クロック周期T3と同様に"1"に変化する。この時、アドレス制御信号SG2、退避制御信号SG3、及び選択信号SG4が、それぞれ、クロック周期T3と同様に"1"に変化する。従って、セレクタ15は、セレクタ19の出力を選択する状態となる。また、アドレスカウンタ11は、アドレスA04を退避レジスタ13に出力する状態となる。
【００６５】
また、分岐命令Dibが相対分岐命令(Dib[0]＝"1")であるとすると、相対分岐信号SG6が"1"に変化する。従って、セレクタ19は、加算器18の出力を選択する状態となる。また、加算器18は、シフトレジスタ17から出力されたアドレスA03と分岐先アドレスAb(この例では、相対アドレス"+20")とを加算してアドレスA23を生成し、セレクタ19に与える。
【００６６】
[クロック周期T8]
検査用クロックCLKの立ち上がり時、退避制御信号SG3が"1"であるため、退避レジスタ13は、アドレスカウンタ11から出力されたアドレスA04を取り込む。
【００６７】
また、選択信号SG4が"1"であるため、セレクタ15は、セレクタ19から出力されたアドレスA23をアドレスカウンタ11に与える。この時、アドレス制御信号SG2が "1"であるため、アドレスカウンタ11は、セレクタ15から出力されたアドレスA23を取り込み、ROM20に与える。これにより、アドレスA23に対応するデータD23がROM20から出力される。
【００６８】
一方、データD04をデコードして得られた命令コードDiが他命令Dioであるため、分岐ステータス信号SG5は"0"に変化する。この時、選択信号SG4が"0"に変化するため、セレクタ15は、退避レジスタ13から出力されたアドレスA04を選択する状態となる。また、FF105の出力が"1"であるため、アドレス制御信号SG2は"1"を維持する。従って、アドレスカウンタ11は、セレクタ15からアドレスを取り込む状態を維持する。
【００６９】
また、相対分岐信号SG6は"0"に変化する。従って、セレクタ19は、ID回路14から出力された分岐先アドレスAbを選択する状態に戻る。
【００７０】
また、FF105の出力が"1"である一方、FF106の出力が"0"であるため、NOR回路103の出力は"0"に変化する。このため、例えデータD04をデコードして得られた命令コードDiが分岐命令Dibであっても、分岐ステータス信号SG5が遮断されて上記と同様の動作が実行される。
【００７１】
[クロック周期T9]
検査用クロックCLKの立ち上がり時、アドレス制御信号SG2が"1"であり、選択信号SG4が"0"であるため、退避レジスタ13に退避されていたアドレスA04がROM20に与えられる。これにより、アドレスA04に対応するデータD04がROM20から出力される。
【００７２】
一方、データD23をデコードして得られた命令コードDiが他命令Dioであるため、分岐ステータス信号SG5は"0"を維持する。従って、退避制御信号SG3及び選択信号SG4も"0"を維持する。また、FF105の出力が"0"であるため、アドレス制御信号SG2は"0"に変化する。従って、アドレスカウンタ11は、アドレスA04をインクリメントしてROM20に与える状態となる。
【００７３】
また、FF105の出力が"0"である一方、FF106の出力が"1"であるため、NOR回路103の出力は"0"を維持する。このため、例えデータD23をデコードして得られた命令コードDiが分岐命令Dibであっても、上記と同様の動作が実行される。
【００７４】
[クロック周期T10]
クロック周期T6において、アドレスカウンタ11によりインクリメントされたアドレスA05がROM20に与えられる。一方、データD04が他命令Dioであるため、上記のクロック周期T2と同様の動作が実行される。また、これ以降においても、分岐命令Dibが得られる迄は、上記のクロック周期T2と同様の動作が実行されることとなる。
【００７５】
このように、相対分岐命令によるアドレス遷移時のデータ読出検査を行うこともできる。
【００７６】
なお、上記の実施の形態によって本発明は限定されるものではなく、特許請求の範囲の記載に基づき、当業者によって種々の変更が可能なことは明らかである。
【図面の簡単な説明】
【００７７】
【図１】本発明に係るマイクロコンピュータの実施の形態１の構成例を示したブロック図である。
【図２】本発明に係るマイクロコンピュータの実施の形態１の全体動作例を示したフローチャート図である。
【図３】本発明に係るマイクロコンピュータの実施の形態１及び２に共通に用いる分岐監視回路の構成例を示したブロック図である。
【図４】本発明に係るマイクロコンピュータの実施の形態１の詳細動作例を示したタイムチャート図である。
【図５】本発明に係るマイクロコンピュータの実施の形態２の構成例を示したブロック図である。
【図６】本発明に係るマイクロコンピュータの実施の形態２の動作例を示したタイムチャート図である。
【図７】本発明の関連技術に係るマイクロコンピュータの構成例を示したブロック図である。
【図８】本発明の関連技術に係るマイクロコンピュータの動作例を示したフローチャート図である。
【符号の説明】
【００７８】
1, 1a  マイクロコンピュータ
2  テスタ
10, 10a  CPU
11  アドレスカウンタ
12  フェッチレジスタ
13  退避レジスタ
14  ID回路
15, 19  セレクタ
16  分岐監視回路
17  シフトレジスタ
18  加算器
20  ROM
101  命令OFF回路
102, 108〜110  OR回路
103  NOR回路
104  AND回路
105, 106  フリップフロップ
107  分岐フラグレジスタ
CLK  検査用クロック
An  アドレス
Ab  分岐先アドレス
Dn  データ
Di  命令コード
Dib  分岐命令コード
Dio  他命令コード
SG1  動作モード設定信号
SG2  アドレス制御信号
SG3  退避制御信号
SG4  選択信号
SG5  分岐ステータス信号
SG6  相対分岐信号
P1  クロック入力端子
P2  データ出力端子
P3  動作モード設定端子
【図１】
0004825834.tif 000002
【図２】
0004825834.tif 000003
【図３】
0004825834.tif 000004
【図４】
0004825834.tif 000005
【図５】
0004825834.tif 000006
【図６】
0004825834.tif 000007
【図７】
0004825834.tif 000008
【図８】
0004825834.tif 000009