JP2021099674A - 信号処理回路及び信号処理回路の故障診断方法 - Google Patents
信号処理回路及び信号処理回路の故障診断方法 Download PDFInfo
- Publication number
- JP2021099674A JP2021099674A JP2019231285A JP2019231285A JP2021099674A JP 2021099674 A JP2021099674 A JP 2021099674A JP 2019231285 A JP2019231285 A JP 2019231285A JP 2019231285 A JP2019231285 A JP 2019231285A JP 2021099674 A JP2021099674 A JP 2021099674A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- arithmetic device
- input
- boundary scan
- processing 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
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】CPUとCPLDを併存して搭載した回路基板に対してバウンダリスキャンテストを行う場合、CPUの動作モードを切り替えるBSMODE信号をCPLDにも入力し、ウォッチドッグタイマ機能が動作中にリセットや再起動してしまうことを防止する従来技術が知られている。しかし、従来技術によれば、BSMODE信号の配線に短絡異常が発生した場合、ウォッチドッグタイマ機能によりCPUの故障を検出することができなくなくなる。【解決手段】本発明では、BSMODE信号に加えて、バウンダリスキャンテストのために使用されるクロック信号TCKやリセット信号TRSTをCPLDに入力する。これにより、クロック信号TCKやリセット信号TRSTが入力されるまでは、ウォッチドッグタイマ機能がディスイネーブル状態になることを防止することができる。【選択図】図6
Description
本発明は、故障診断機能を有する信号処理回路、及び、前記信号処理回路の故障診断方法に関する。
回路基板の配線接続及び実装テストを行うために、プローブピンなどの治具を別途用いる必要のない故障診断方法として、バウンダリスキャンテスト(BST)が知られている(例えば、特許文献1を参照)。バウンダリスキャンテストでは、プローブピンを立てるための特別な治具を用いなくても、比較的容易に配線接続及び実装テストが可能である。このため、バウンダリングテストは、ボールグリッドアレイ(BGA)など、プローブピンを立てられない基板や、目視や画像検査等により半田付け部を直接確認できない基板に対する配線接続及び実装テストとして特に有用である。
図1は、バウンダリスキャンテストの動作を説明するための回路基板上の回路図の一例である。図1に示すように、信号処理回路としての回路基板上には、互いに接続された2つの演算デバイスである、デバイス1a及び1bが備えられる。また、回路基板上には、デバイス1a及び1bには、それぞれ、バウンダリスキャンテストを実行する際に後述の各種の信号を出力するバウンダリスキャンI/F(インターフェース)101及び102が接続される。ただし、接続されるデバイス数及び接続の形態は、この例に限られるものではない。例えば、図1では、バウンダリスキャンI/F101及び102は2つが備えられているが、1つのバウンダリスキャンI/Fで構成してもよい。
デバイス1a及び1bは、例えば、LSIなどの内部ロジック回路から構成される。以下に、図1の回路図の構成について説明するが、デバイス1a及び1bの内部構成については同じものを含むため、同じ構成については同じ符号を用いて説明する。
デバイス1a及び1bは、それぞれ、複数の外部端子Tと、複数の外部端子Tにそれぞれ接続された複数段のバウンダリスキャンセルBCと、各バウンダリスキャンセルBCに接続された内部ロジック回路10と、TAPコントローラ11と、を有する。
デバイス1a及び1bは、それぞれ、複数の外部端子Tと、複数の外部端子Tにそれぞれ接続された複数段のバウンダリスキャンセルBCと、各バウンダリスキャンセルBCに接続された内部ロジック回路10と、TAPコントローラ11と、を有する。
また、デバイス1a及び1bには、それぞれ、外部端子Tとは別に、バウンダリスキャンI/F101及び102に接続される端子として、TDI端子12、TCK端子14、TMS端子15、TRST端子16及びTDO端子13が設けられている。
TDI端子12は、バウンダリスキャンテストにおいてバウンダリスキャンセルBCにデータを入力するために用いられる。TDO端子13は、バウンダリスキャンセルBCのデータを出力するために用いられる。
また、TCK端子14、TMS端子15、TRST端子16には、それぞれ、バウンダリスキャンI/Fから、バウンダリスキャンテストが実行される際に出力されるクロック信号TCK、状態制御信号TMS及びリセット信号TRSTが入力される。
TDI端子12は、バウンダリスキャンテストにおいてバウンダリスキャンセルBCにデータを入力するために用いられる。TDO端子13は、バウンダリスキャンセルBCのデータを出力するために用いられる。
また、TCK端子14、TMS端子15、TRST端子16には、それぞれ、バウンダリスキャンI/Fから、バウンダリスキャンテストが実行される際に出力されるクロック信号TCK、状態制御信号TMS及びリセット信号TRSTが入力される。
内部ロジック回路10は、デバイス1a及び1bの機能を実現する論理回路である。内部ロジック回路10には、複数の外部端子Tを介して信号が入出力される。デバイス1a及び1bの外部端子Tの一部は、回路基板上の配線103、104及び105を介して、互いに接続されている。
TAPコントローラ11には、クロック信号TCK、バウンダリスキャンテストのための状態制御信号TMS、リセット信号TRSTが、それぞれ、TCK端子14、TMS端子15及びTRST端子16を介して入力される。TAPコントローラ11は、信号処理回路内で複数のバウンダリスキャンセルBCと接続され、状態制御信号TMSに従って状態遷移することでバウンダリスキャンテストのシーケンスを実行する。なお、TAPコントローラ11は、リセット信号TRSTが入力すると初期状態に遷移する。
TAPコントローラ11には、クロック信号TCK、バウンダリスキャンテストのための状態制御信号TMS、リセット信号TRSTが、それぞれ、TCK端子14、TMS端子15及びTRST端子16を介して入力される。TAPコントローラ11は、信号処理回路内で複数のバウンダリスキャンセルBCと接続され、状態制御信号TMSに従って状態遷移することでバウンダリスキャンテストのシーケンスを実行する。なお、TAPコントローラ11は、リセット信号TRSTが入力すると初期状態に遷移する。
複数段のバウンダリスキャンセルBCは、バウンダリスキャンテストが実行されると、入力された値を順番に保持して出力する複数段のレジスタ回路である。複数段のバウンダリスキャンセルBCは、TDI端子12とTDO端子13の間で直列に接続される。バウンダリスキャンセルBCは、TCK端子14に入力されるクロック信号TCKのエッジをトリガとして、TDI端子12から入力された値をラッチすることにより、バウンダリスキャンレジスタとして保持する。
より具体的には、バウンダリスキャンセルBCは、クロック信号TCKに同期して、TDI端子14から入力されたシリアルデータをバウンダリスキャンレジスタとして保持し、後段のバウンダリスキャンセルBCに出力する。また、最後段のバウンダリスキャンセルBCはシリアルデータをTDO端子13に出力する。すなわち、複数のバウンダリスキャンセルBCは、前段から後段に向けて、順次にバウンダリスキャンレジスタの値をシフトさせる。
次に、図2を用いて、バウンダリスキャンテストにより図1のデバイス1a及び1bの端子T間の回路基板上の配線103、104及び105を検査する方法と、バウンダリングテストの際のバウンダリスキャンセルBCの動作について説明する。
より具体的には、バウンダリスキャンセルBCは、クロック信号TCKに同期して、TDI端子14から入力されたシリアルデータをバウンダリスキャンレジスタとして保持し、後段のバウンダリスキャンセルBCに出力する。また、最後段のバウンダリスキャンセルBCはシリアルデータをTDO端子13に出力する。すなわち、複数のバウンダリスキャンセルBCは、前段から後段に向けて、順次にバウンダリスキャンレジスタの値をシフトさせる。
次に、図2を用いて、バウンダリスキャンテストにより図1のデバイス1a及び1bの端子T間の回路基板上の配線103、104及び105を検査する方法と、バウンダリングテストの際のバウンダリスキャンセルBCの動作について説明する。
図2(a)は、図1に示したデバイス1a及び1bにおける端子T及びバウンダリスキャンセルBCの部分を示したものである。また、図2(b)は、デバイス1a及び1bのバウンダリスキャンセルBCに格納されている値の一例を示したものである。
図1に示したデバイス1a及び1bには、それぞれ、直列に接続されたバウンダリスキャンセルBCが6個設けられている。図2では、説明のため、デバイス1aの各バウンダリスキャンセルBCに、前段のTDI端子12側から後段のTDO13側に向かって、順番にBC#1a〜#6aと符号を付している。同様に、デバイス1bの各バウンダリスキャンセルBCに、前段のTDI端子12側から後段のTDO13側に向かって、順番にBC#1b〜#6bと符号を付している。
デバイス1aのバウンダリスキャンセルBC#4a〜#6aは、それぞれ、回路基板上の配線103、104及び105を介して、デバイス1bのバウンダリスキャンセルBC#1b〜#3bと接続されている。
図1に示したデバイス1a及び1bには、それぞれ、直列に接続されたバウンダリスキャンセルBCが6個設けられている。図2では、説明のため、デバイス1aの各バウンダリスキャンセルBCに、前段のTDI端子12側から後段のTDO13側に向かって、順番にBC#1a〜#6aと符号を付している。同様に、デバイス1bの各バウンダリスキャンセルBCに、前段のTDI端子12側から後段のTDO13側に向かって、順番にBC#1b〜#6bと符号を付している。
デバイス1aのバウンダリスキャンセルBC#4a〜#6aは、それぞれ、回路基板上の配線103、104及び105を介して、デバイス1bのバウンダリスキャンセルBC#1b〜#3bと接続されている。
図2(b)の例においては、デバイス1aのバウンダリスキャンセルBC#1a〜#6aには、それぞれ、シリアルデータの値として、「X」,「X」,「X」,「1」,「0」,「1」が格納されている。なお、「X」は、ここでの説明では必要でないため、「1」または「0」のどちらの値でも構わないことを表す。
図2(b)に示すような値をデバイス1aのバウンダリスキャンセルBC#1a〜#6aに格納するために、デバイス1aのTDI端子12から、TCK信号に同期させて、「X」,「X」,「X」,「1」,「0」,「1」の順番に値を入力する。
デバイス1aのバウンダリスキャンセルBC#4a〜#6aの格納値は、それぞれのバウンダリスキャンセルBCから、回路基板上の配線103、104及び105に出力される。例えば、格納値「1」は、ハイ(High)レベルの電圧「H」として出力される。また、格納値「0」は、ロー(Low)レベルの電圧「L」として出力される。
これにより、デバイス1aのバウンダリスキャンセルBC#4a〜#6aの格納値は、回路基板上の配線103、104及び105を介して、デバイス1bのバウンダリスキャンセルBC#1〜#3に入力される。
図2(b)に示すような値をデバイス1aのバウンダリスキャンセルBC#1a〜#6aに格納するために、デバイス1aのTDI端子12から、TCK信号に同期させて、「X」,「X」,「X」,「1」,「0」,「1」の順番に値を入力する。
デバイス1aのバウンダリスキャンセルBC#4a〜#6aの格納値は、それぞれのバウンダリスキャンセルBCから、回路基板上の配線103、104及び105に出力される。例えば、格納値「1」は、ハイ(High)レベルの電圧「H」として出力される。また、格納値「0」は、ロー(Low)レベルの電圧「L」として出力される。
これにより、デバイス1aのバウンダリスキャンセルBC#4a〜#6aの格納値は、回路基板上の配線103、104及び105を介して、デバイス1bのバウンダリスキャンセルBC#1〜#3に入力される。
図2(b)において、デバイス1bのバウンダリスキャンセルBC#1b〜#6bは、それぞれ、端子Tから入力された電圧を取得した状態を表している。例えば、ハイレベルの電圧「H」が入力された場合は、バウンダリスキャンセルBCには「1」が格納される。また、ローレベルの電圧「L」が入力された場合は、バウンダリスキャンセルBCには「0」が格納される。
以上の動作により、図2(b)のデバイス1bのバウンダリスキャンセルBC#1b〜#6bには、それぞれ、「1」,「0」,「1」,「X」,「X」,「X」が格納される。なお、「X」は、デバイス1aについて説明したように、「1」または「0」のどちらの値でも構わないことを表す。
以上の動作により、図2(b)のデバイス1bのバウンダリスキャンセルBC#1b〜#6bには、それぞれ、「1」,「0」,「1」,「X」,「X」,「X」が格納される。なお、「X」は、デバイス1aについて説明したように、「1」または「0」のどちらの値でも構わないことを表す。
図2(b)のデバイス1bのバウンダリスキャンセルBC#1b〜#6bの格納値は、シフト動作により、デバイス1bのTDO端子13から「X」,「X」,「X」,「1」,「0」,「1」の順番で出力される。
そして、デバイス1aのバウンダリスキャンセルBC#4a〜#6aに格納されている格納値と、デバイス1bのバウンダリスキャンセルBC#1b〜#3bに格納されている格納値とを比較する。比較した結果が同一であるかにより、デバイス1a及び1b間の回路基板上の配線103、104及び105が正常であるかを検査することができる。
そして、デバイス1aのバウンダリスキャンセルBC#4a〜#6aに格納されている格納値と、デバイス1bのバウンダリスキャンセルBC#1b〜#3bに格納されている格納値とを比較する。比較した結果が同一であるかにより、デバイス1a及び1b間の回路基板上の配線103、104及び105が正常であるかを検査することができる。
ここまで、バウンダリスキャンテストによる回路基板の故障診断処理について説明してきたが、バウンダリスキャンテストを行うためには、デバイスをバウンダリスキャンテストができる状態にする必要がある。そのために、一般的に2つの方法が用いられる。
第1の方法は、デバイスを起動するために電源を入力する前に、バウンダリスキャンテストを行うか、通常動作を行うかを決める方法である(以下、この方法を「起動前決定方法」という)。この場合、デバイスには、バウンダリスキャンテストを行うバウンダリスキャンモードで起動するか、通常動作を行う通常動作モードで起動するかを選択するモード端子が追加される。
そして、起動時にモード端子に入力される電圧に応じて、例えば、モード端子に入力された電圧がハイレベル「H」の場合はバウンダリスキャンモードで動作させ、ローレベル「L」の場合は通常動作モードで動作させる。
起動前決定方法によるバウンダリスキャンモードと通常動作モードの決定は、一般的に、CPUで用いられている。
そして、起動時にモード端子に入力される電圧に応じて、例えば、モード端子に入力された電圧がハイレベル「H」の場合はバウンダリスキャンモードで動作させ、ローレベル「L」の場合は通常動作モードで動作させる。
起動前決定方法によるバウンダリスキャンモードと通常動作モードの決定は、一般的に、CPUで用いられている。
第2の方法は、デバイスの起動後にバウンダリスキャンモードと通常動作モードを切り替える方法である(以下、この方法を「起動後切替方法」という)。この場合、モードの切り替えは、デバイス内部のレジスタに所定の値を設定することにより行う。また、バウンダリスキャンで使用する信号(具体的には、状態制御信号TMS、リセット信号TRST、クロック信号TCK等)が入力されることにより、バウンダリスキャンモードに移行する方法もある。この場合、バウンダリスキャンで使用する信号が一定時間変化しないと、通常動作モードに戻る。
起動後切替方法によるバウンダリスキャンモードと通常動作モードとの切り替えは、一般的に、動作が比較的複雑でない回路や、CPLD等のプログラマブルロジックデバイスで用いられている。
起動後切替方法によるバウンダリスキャンモードと通常動作モードとの切り替えは、一般的に、動作が比較的複雑でない回路や、CPLD等のプログラマブルロジックデバイスで用いられている。
回路基板上に搭載されているすべてのデバイスが、前述した起動前決定方法か起動後切替方法のどちらか一方の方法でバウンダリスキャンモードに移行するデバイスで統一されている場合は、問題なくバウンダリスキャンテストを行うことができる。しかし、一般的には、起動前決定方法でバウンダリスキャンモードに移行するデバイスと、起動後切替方法でバウンダリスキャンモードに移行するデバイスという異なる種類のデバイスが、同一の回路基板上に併存して搭載されていることが多い。
図3は、起動前決定方法でバウンダリスキャンモードに移行するデバイスと起動後切替方法でバウンダリスキャンモードに移行するデバイスとを接続した回路基板における動作を説明するための回路図の一例である。図3において、デバイス31は、起動前決定方法、すなわち、電源を入力する前にバウンダリスキャンモードで起動するか通常動作モードで起動するかをモード端子で決定して起動するデバイスである。また、デバイス32は、起動後切替方法、すなわち、電源の入力後にバウンダリスキャンモードで起動するか通常動作モードで起動するかをモード端子で切り替えて起動するデバイスである。
図3の例では、起動前決定方法でバウンダリスキャンモードに移行するデバイス31の一例として、CPUが用いられる。デバイス31の内部回路はCPU311として構成されている。また、デバイス31には、起動時に動作モードを決めるモード端子301が追加されている。モード端子301には、デバイス31の動作モードを決めるBSMODE信号が入力される。
動作モードを決定する一例として、図3では、デバイス31をバウンダリスキャンモードで起動する場合は起動時にBSMODE信号にハイレベル電圧「H」を入力し、通常動作モードで起動する場合はBSMODE信号にローレベル電圧「L」を入力する。
モード端子301から入力されたBSMODE信号は、デバイス31のTAPコントローラ11に入力される。TAPコントローラ11は、入力された電圧のレベルにより、デバイス31がバウンダリスキャンモードか通常動作モードのどちらかで動作するよう制御する。
動作モードを決定する一例として、図3では、デバイス31をバウンダリスキャンモードで起動する場合は起動時にBSMODE信号にハイレベル電圧「H」を入力し、通常動作モードで起動する場合はBSMODE信号にローレベル電圧「L」を入力する。
モード端子301から入力されたBSMODE信号は、デバイス31のTAPコントローラ11に入力される。TAPコントローラ11は、入力された電圧のレベルにより、デバイス31がバウンダリスキャンモードか通常動作モードのどちらかで動作するよう制御する。
また、図3の例では、起動後切替方法でバウンダリスキャンモードに移行するデバイス32の一例として、プログラマブルロジックデバイスの一種であるCPLDが用いられる。デバイス32の内部回路はCPLD321として構成されている。また、デバイス32は、起動後にバウンダリスキャンで使用する状態制御信号TMS又はリセット信号TRSTがTAPコントローラ11に入力されると、バウンダリスキャンモードで動作する。
図3のように、起動前決定方法によりバウンダリスキャンモードで起動するデバイスと起動後切替方法によりバウンダリスキャンモードに移行するデバイスとが接続されると、バウンダリスキャンテストを実行する際に以下に記述する問題が発生することがある。
例えば、図3にデバイス32の例として用いたCPLDには、CPUがハングアップや暴走をせずに稼動していることを監視するためにウォッチドッグタイマ機能を有するものがある。ウォッチドッグタイマ機能とは、CPUがCPLDに対して、所定時間毎に割り込み信号を出力し、CPLDが所定時間内に割り込み信号を取得することで、CPUがハングアップなどの不正な状態に陥っていないかを認識する機能である。
なお、CPLDは、所定時間内に割り込み信号を取得できなかった場合は、CPUが不正な状態に陥ったと判断する。この場合、CPLDは、CPUに対してリセット信号を出力して、CPUの動作を停止させたり、回路基板の電源を再起動させたりするなどの動作を行って、CPUの正常動作への復帰を促す。
例えば、図3にデバイス32の例として用いたCPLDには、CPUがハングアップや暴走をせずに稼動していることを監視するためにウォッチドッグタイマ機能を有するものがある。ウォッチドッグタイマ機能とは、CPUがCPLDに対して、所定時間毎に割り込み信号を出力し、CPLDが所定時間内に割り込み信号を取得することで、CPUがハングアップなどの不正な状態に陥っていないかを認識する機能である。
なお、CPLDは、所定時間内に割り込み信号を取得できなかった場合は、CPUが不正な状態に陥ったと判断する。この場合、CPLDは、CPUに対してリセット信号を出力して、CPUの動作を停止させたり、回路基板の電源を再起動させたりするなどの動作を行って、CPUの正常動作への復帰を促す。
図3において、CPUであるデバイス31と、CPLDであるデバイス32との間を接続する回路基板上の配線(例えば、配線105)が、ウォッチドッグタイマ機能のために接続されている配線であるとする。通常動作時、デバイス31の内部回路であるCPU311は、配線105に割り込み信号を出力する。また、デバイス32の内部回路であるCPLD321は、配線105から入力される割り込み信号を監視している。
ここで、デバイス31が起動時にバウンダリスキャンモードで起動した場合、デバイス31のバウンダリスキャンテストを行うために、CPU311と端子TはバウンダリスキャンセルBCによって電気的に切り離しされる。そのため、各端子TからはバウンダリスキャンセルBCに格納されていた値が出力されるため、CPU311は配線105に割り込み信号を出力することができなくなる。
ここで、デバイス31が起動時にバウンダリスキャンモードで起動した場合、デバイス31のバウンダリスキャンテストを行うために、CPU311と端子TはバウンダリスキャンセルBCによって電気的に切り離しされる。そのため、各端子TからはバウンダリスキャンセルBCに格納されていた値が出力されるため、CPU311は配線105に割り込み信号を出力することができなくなる。
一方、デバイス32は、バウンダリスキャンで使用する状態制御信号TMS又はリセット信号TRSTが入力されるまでは、通常動作モードで動作するため、CPLD321は端子Tを介して入出力を行う。そのため、デバイス32は、配線105を介して内部回路であるCPLD321に入力される割り込み信号を監視する。デバイス31がバウンダリスキャンモードで起動している場合、配線105を介してCPU311から割り込み信号が入力されないため、CPLD321は、CPU311が不正な状態に陥っていると認識してしまう。そして、CPLD321は、CPU311に対してリセット信号を出力して、CPU311の動作を停止させるか、回路基板の電源を再起動させてしまう。
そのため、デバイス31が起動してから、デバイス32に状態制御信号TMS又はリセット信号TRSTが入力されるまでに、デバイス32によってCPU311のリセット動作又は回路基板の電源の再起動が定期的に行われてしまうという問題があった。
この問題を解決するために、特許文献2では、故障解析を行う際には、ウォッチドッグ停止指令を出力して、自動的にウォッチドッグ機能を停止させるという提案がなされている。
そのため、デバイス31が起動してから、デバイス32に状態制御信号TMS又はリセット信号TRSTが入力されるまでに、デバイス32によってCPU311のリセット動作又は回路基板の電源の再起動が定期的に行われてしまうという問題があった。
この問題を解決するために、特許文献2では、故障解析を行う際には、ウォッチドッグ停止指令を出力して、自動的にウォッチドッグ機能を停止させるという提案がなされている。
図4は、特許文献2に開示された従来技術における動作を説明するための回路図である。
図4において、端子401は、デバイス31の動作モード(バウンダリスキャンモード又は通常動作モード)を切り替えるための信号であるBSMODE信号をデバイス32に入力するための端子である。端子401から入力されたBSMODE信号は、デバイス32の内部回路であるCPLD321に入力される。
図4において、端子401は、デバイス31の動作モード(バウンダリスキャンモード又は通常動作モード)を切り替えるための信号であるBSMODE信号をデバイス32に入力するための端子である。端子401から入力されたBSMODE信号は、デバイス32の内部回路であるCPLD321に入力される。
次に、図5を用いて、ウォッチドックタイマ機能を制御する回路について説明する。
図5は、図4におけるデバイス32の内部回路であるCPLD321の内部構成である。図5において、BSMODE信号は、図4の端子401を介してデバイス32に入力される。なお、BSMODE信号は、上述のとおり、デバイス31のCPU311の動作モードを切り替えるための信号である。
BSMODE信号がCPLD321に入力されると、ローレベル電圧「L」に接続されている抵抗501によりプルダウンが行われる。これは、BSMODE信号がCPLD321に入力されない(ハイインピーダンス状態)場合に論理を安定させるための処理である。
図5は、図4におけるデバイス32の内部回路であるCPLD321の内部構成である。図5において、BSMODE信号は、図4の端子401を介してデバイス32に入力される。なお、BSMODE信号は、上述のとおり、デバイス31のCPU311の動作モードを切り替えるための信号である。
BSMODE信号がCPLD321に入力されると、ローレベル電圧「L」に接続されている抵抗501によりプルダウンが行われる。これは、BSMODE信号がCPLD321に入力されない(ハイインピーダンス状態)場合に論理を安定させるための処理である。
NOT回路502は、入出力の論理を反転させる論理回路である。BSMODE信号として「L」が入力されると、NOT回路502からは「H」が出力される。また、「H」が入力されると、「L」を出力される。
イネーブルレジスタ503は、CPLD321のウォッチドッグタイマ機能を制御するためのレジスタである。イネーブルレジスタ503が「L」(ローレベルの電圧)を出力すると、ウォッチドッグタイマ機能を動作しない状態に制御される。また、イネーブルレジスタ503が「H」(ハイレベルの電圧)を出力すると、BSMODE信号に応じて、ウォッチドッグタイマ機能のウォッチドッグタイマ機能が動作可能となる状態と動作しない状態のいずれかに制御されるようになる。
イネーブルレジスタ503は、CPLD321のウォッチドッグタイマ機能を制御するためのレジスタである。イネーブルレジスタ503が「L」(ローレベルの電圧)を出力すると、ウォッチドッグタイマ機能を動作しない状態に制御される。また、イネーブルレジスタ503が「H」(ハイレベルの電圧)を出力すると、BSMODE信号に応じて、ウォッチドッグタイマ機能のウォッチドッグタイマ機能が動作可能となる状態と動作しない状態のいずれかに制御されるようになる。
回路基板を内蔵した装置の製造過程などにおいては、ウォッチドッグタイマ部506を動作させないようにイネーブル信号505を「L」に固定するため、イネーブルレジスタ503からは「L」を出力する状態にしておく。また、装置の稼働中など通常時においては、ウォッチドッグタイマ部506がBSMODE信号に応じて制御されるように、イネーブルレジスタ503からは「H」を出力する状態にしておく。
AND回路504は、イネーブルレジスタ503の出力とNOT回路502の出力との論理積を、ウォッチドッグタイマ部506のイネーブル信号505として出力する。
AND回路504は、イネーブルレジスタ503の出力とNOT回路502の出力との論理積を、ウォッチドッグタイマ部506のイネーブル信号505として出力する。
ウォッチドッグタイマ部506は、CPLD321におけるウォッチドッグタイマ機能を有する。ウォッチドッグタイマ部506は、イネーブル信号505として「H」が入力された状態(これを「イネーブル状態」という)において、割り込み信号INTが入力されることにより、ウォッチドッグタイマ機能を動作させる。そして、前回の割り込み信号が入力されてから所定時間内に次の割り込み信号が入力されないと、ウォッチドッグタイマ部506は、CPUをリセットするため又は回路基板の電源を再起動させるためのリセット信号をRESETとして出力する。
一方、イネーブル信号505として「L」が入力されている状態(これを「ディスイネーブル状態」という)においては、ウォッチドッグタイマ部506は、割り込み信号INTが入力されても、リセット信号を出力しない。
一方、イネーブル信号505として「L」が入力されている状態(これを「ディスイネーブル状態」という)においては、ウォッチドッグタイマ部506は、割り込み信号INTが入力されても、リセット信号を出力しない。
図5において、イネーブルレジスタ503から「H」が出力されている場合、BSMODE信号として入力される値に応じて、ウォッチドッグタイマ部506によるイネーブルの制御が行われる。
すなわち、BSMODE信号として「H」が入力(デバイス31がバウンダリスキャンモードで動作)されると、NOT回路502を介して、AND回路504からは「L」が出力されるため、ウォッチドッグタイマ部506はディスイネーブル状態となる。
一方、BSMODE信号として「L」が入力(デバイス31が通常動作モードで動作)されると、AND回路504からは「H」が出力されて、ウォッチドッグタイマ部506はイネーブル状態となる。
すなわち、BSMODE信号として「H」が入力(デバイス31がバウンダリスキャンモードで動作)されると、NOT回路502を介して、AND回路504からは「L」が出力されるため、ウォッチドッグタイマ部506はディスイネーブル状態となる。
一方、BSMODE信号として「L」が入力(デバイス31が通常動作モードで動作)されると、AND回路504からは「H」が出力されて、ウォッチドッグタイマ部506はイネーブル状態となる。
以上説明したように、図4の回路構成では、デバイス31がバウンダリスキャンモードであるか通常動作モードであるかによって、デバイス32のウォッチドッグタイマ機能のイネーブル状態/ディスイネーブル状態の制御を行うことができる。これにより、デバイス31のバウンダリスキャンテストを実行する際に、デバイス32のウォッチドッグタイマ機能によりデバイス31をリセット又は回路基板の電源を再起動してしまうことを防止することができる。
しかし、図4に示すような回路構成では、BSMODE信号の配線に導電性のゴミが付着したり、デバイス32の端子401が半田ブリッジにより他端子と接触したりする短絡異常などが発生すると、ウォッチドックタイマ機能が誤動作を起こす可能性がある。
例えば、回路基板上のBSMODE信号の配線に導電性のゴミ等が付着してしまった場合を想定する。
この場合、BSMODE信号の配線が短絡状態となる。そのため、バウンダリスキャンテストを実行していなくても、バウンダリテスト端子401から「H」(ハイレベルの電圧)が入力されたままの状態となるため、デバイス32のCPLD321のウォッチドッグタイマ機能はディスイネーブル状態となる。このような異常が回路基板を内蔵した装置の稼働中において発生した場合、CPU311がハングアップなどの不正な状態に陥ったとしても、CPLD321のウォッチドッグタイマ機能によりCPU311の故障を検出することができなくなってしまう。
例えば、回路基板上のBSMODE信号の配線に導電性のゴミ等が付着してしまった場合を想定する。
この場合、BSMODE信号の配線が短絡状態となる。そのため、バウンダリスキャンテストを実行していなくても、バウンダリテスト端子401から「H」(ハイレベルの電圧)が入力されたままの状態となるため、デバイス32のCPLD321のウォッチドッグタイマ機能はディスイネーブル状態となる。このような異常が回路基板を内蔵した装置の稼働中において発生した場合、CPU311がハングアップなどの不正な状態に陥ったとしても、CPLD321のウォッチドッグタイマ機能によりCPU311の故障を検出することができなくなってしまう。
そこで、本発明は、上記のような問題に鑑み、稼働中に演算デバイスの監視機能が無効になるのを防止することを目的とする。
本発明は、第1の演算デバイスと、前記第1の演算デバイスに接続され、前記第1の演算デバイスの状態を監視する機能を有する第2の演算デバイスと、前記第1の演算デバイスの故障診断処理を行うための信号が出力されるインターフェースと、を有する信号処理回路であって、前記インターフェースから、前記第1の演算デバイスを故障診断処理を行うモードに切り替えるための第1の信号に加えて、前記第1の演算デバイスに対して前記故障診断処理を行う際に出力される第2の信号が、前記第2の演算デバイスに対しても出力されることを特徴とする。
本発明によれば、回路基板の稼働中に異常が発生したとしても、監視機能が無効になるのを防止することができる。
以下に、図面を参照して、本発明を実施するための実施例について説明する。ただし、以下に説明する実施例はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、以下の実施例で説明されている特徴の組み合わせのすべてが本発明の解決手段に必須のものとは限らない。
<実施例1>
図6は、実施例1における、CPLD321の内部にあるウォッチドックタイマ機能を制御する回路図である。
実施例1における信号処理回路の全体的な構成は、CPU311を内部回路として備えたデバイス31とCPLD312を内部回路として備えたデバイス32とが接続された回路基板である点では、図4に示したものと同様である。ただし、実施例1におけるCPLD321は、BSMODE信号の入力について、フリップフロップを用いてクロック信号TCKが入力されるまでラッチする。そして、クロック信号TCKが入力された後に、フリップフロップの出力を後段に接続したNOT回路502に出力する点で、図5に示した従来技術における回路とは異なる。
図6は、実施例1における、CPLD321の内部にあるウォッチドックタイマ機能を制御する回路図である。
実施例1における信号処理回路の全体的な構成は、CPU311を内部回路として備えたデバイス31とCPLD312を内部回路として備えたデバイス32とが接続された回路基板である点では、図4に示したものと同様である。ただし、実施例1におけるCPLD321は、BSMODE信号の入力について、フリップフロップを用いてクロック信号TCKが入力されるまでラッチする。そして、クロック信号TCKが入力された後に、フリップフロップの出力を後段に接続したNOT回路502に出力する点で、図5に示した従来技術における回路とは異なる。
図6において、論理回路の1種であるフリップフロップは、複数段(ここでは、2段)で構成されている。そして、各フリップフロップ601及び602には、それぞれ、バウンダリスキャンテストを実行している際にバウンダリスキャンI/Fからクロックとして出力されるクロック信号TCKが入力される。この構成により、BSMODE信号として「H」(ハイレベルの電圧)が入力されても、最初のクロック信号TCKがフリップフロップ601に入力され、さらに、次のクロック信号TCKがフリップフロップ602に入力されない限り、出力は変化しない。このため、AND回路504を介してウォッチドッグタイマ部506に入力されるイネーブル信号505にも影響しない。
したがって、回路基板上の配線に導電性のゴミが付着するなどして短絡状態となり、BSMODE信号が「H」のままになったとしても、2度のクロック信号TCKが入力されない限り、ウォッチドッグタイマ部506の動作に影響はない。
すなわち、クロック信号TCKの配線についても短絡状態となる可能性があるが、このような場合には、2度目のクロック信号TCKは入力されないため、BSMODE信号が「H」のままになったとしてもウォッチドッグタイマ部506の動作に影響はない。
なお、図6には示していないが、フリップフロップ602の出力の初期値は「L」(ローレベルの電圧)とすることが望ましい。これにより、NOT回路502からは初期値として「H」が出力されるため、回路基板を内蔵した装置稼働中においてはウォッチドッグタイマ部506の動作には影響を与えない。
すなわち、クロック信号TCKの配線についても短絡状態となる可能性があるが、このような場合には、2度目のクロック信号TCKは入力されないため、BSMODE信号が「H」のままになったとしてもウォッチドッグタイマ部506の動作に影響はない。
なお、図6には示していないが、フリップフロップ602の出力の初期値は「L」(ローレベルの電圧)とすることが望ましい。これにより、NOT回路502からは初期値として「H」が出力されるため、回路基板を内蔵した装置稼働中においてはウォッチドッグタイマ部506の動作には影響を与えない。
次に、図7を用いて、ウォッチドッグタイマ機能の動作を説明する。図7は、CPLD321のウォッチドッグタイマ機能の動作を示すフローチャートである。なお、この動作は、図5に示した従来技術における動作と同様である。
まず、CPLD321は、RESET出力として「H」(ハイレベルの電圧)を出力する(S701)。ここで、RESET出力は、CPU311のリセット又は電源を再起動させるための出力である。
次に、CPLD321は、内部のカウンタに初期値を設定する(S702)。ここで設定する初期値は、CPLD321に割り込み信号が入力される間隔である所定時間を規定するものである。ここで設定した初期値からダウンカウントして0になるまでの所定時間内に、割り込み信号INTが入力されない場合、CPLD321はRESET出力として「L」を出力する。
カウンタに初期値を設定すると、CPLD321は、ウォッチドッグタイマ機能が有効であるか(イネーブル状態であるか)の判断を行う(S703)。この判断は、ウォッチドッグタイマ部506にイネーブル信号505として「H」が入力されているか否かにより行われる。
S703においてイネーブル信号505が「L」である場合、CPLD321はウォッチドッグタイマ機能が無効である(ディスイネーブル状態である)と判断し、ステップ703による判断を繰り返す。
S703においてイネーブル信号505が「L」である場合、CPLD321はウォッチドッグタイマ機能が無効である(ディスイネーブル状態である)と判断し、ステップ703による判断を繰り返す。
S703においてイネーブル信号505が「H」である場合、CPLD321はウォッチドッグタイマ機能が有効である(イネーブル状態である)と判断する。そして、CPLD321は、割り込み信号INTが入力されているかを判断する(S704)。
S704において割り込み信号INTが入力されている場合、ステップ702に戻り、CPLD321はカウンタ値を初期値に戻す。S704において割り込み信号INTの入力がない場合、CPLD321はカウンタの値をデクリメントする(S705)。そして、カウンタの値が0となったかを判断する(S706)。
S704において割り込み信号INTが入力されている場合、ステップ702に戻り、CPLD321はカウンタ値を初期値に戻す。S704において割り込み信号INTの入力がない場合、CPLD321はカウンタの値をデクリメントする(S705)。そして、カウンタの値が0となったかを判断する(S706)。
ステップ706においてカウンタの値が0であった場合、カウンタが初期値から0までダウンカウントする所定時間の間に割り込み信号INTの入力がなかったと判断し、CPLD321はRESET出力として「L」を出力する(S707)。そして、ステップS701に戻り、RESET出力を「H」に戻す。そして、ステップS702において再びカウンタを初期値に設定して、カウンタをダウンカウントしながら割り込み信号INTの入力を待つ。
一方、ステップ706においてカウンタ値が0でなかった場合、ステップS704に戻り、CPLD321は割り込み信号INTの入力を待つ。
一方、ステップ706においてカウンタ値が0でなかった場合、ステップS704に戻り、CPLD321は割り込み信号INTの入力を待つ。
上記のフローチャートで説明したように、ウォッチドッグタイマ機能がイネーブル状態においては、カウンタ値が初期値から0になるまでの所定時間内に割り込み信号INTが入力されない場合、CPLD321はRESET出力として「L」を出力する。一方、ウォッチドッグタイマ機能がディスイネーブル状態においては、ダウンカウントを行わず、CPLD321はRESET出力として常に「H」を出力する。
このように、実施例1では、バウンダリスキャンテストを実行していないのにもかかわらず短絡異常などにより稼働中にBSMODE信号が「H」のままになっても、イネーブル信号505がすぐに「L」に変化することはない。すなわち、フリップフロップ601,602に、バウンダリスキャンテストの実行中に出力されるクロック信号TCKが入力されるまでは、イネーブル信号505が「L」に変化することはない。
このため、稼働中においてBSMODE信号の配線などに短絡異常などが発生したとしても、2度のクロック信号TCKが入力されるまでは、CPLD321のウォッチドックタイマ機能がディスイネーブル状態になることを防止することができる。
このため、稼働中においてBSMODE信号の配線などに短絡異常などが発生したとしても、2度のクロック信号TCKが入力されるまでは、CPLD321のウォッチドックタイマ機能がディスイネーブル状態になることを防止することができる。
<実施例2>
図8は、実施例2における、CPLD321の内部にあるウォッチドックタイマ機能を制御する回路図である。
実施例2における信号処理回路の全体的な構成は、CPU311を内部回路として備えたデバイス31とCPLD312を内部回路として備えたデバイス32とが接続された回路基板である点では、実施例1(図6)と同様である。ただし、実施例2におけるCPLD321は、BSMODE信号入力について、フリップフロップを用いて、クロック信号TCKに加えて、リセット信号TRSTが入力されるまでラッチする点で、実施例1における回路とは異なる。
図8は、実施例2における、CPLD321の内部にあるウォッチドックタイマ機能を制御する回路図である。
実施例2における信号処理回路の全体的な構成は、CPU311を内部回路として備えたデバイス31とCPLD312を内部回路として備えたデバイス32とが接続された回路基板である点では、実施例1(図6)と同様である。ただし、実施例2におけるCPLD321は、BSMODE信号入力について、フリップフロップを用いて、クロック信号TCKに加えて、リセット信号TRSTが入力されるまでラッチする点で、実施例1における回路とは異なる。
実施例2では、実施例1(図6)と同様に、論理回路の1種であるフリップフロップ801に、バウンダリスキャンテストを実行している際にバウンダリスキャンI/Fからクロックとして出力されるクロック信号TCKを入力する。さらに、実施例2では、フリップフロップ801のリセット端子に、バウンダリスキャンを行う際にTAPコントローラ11をリセット状態(初期状態)にするためのリセット信号TRSTがバウンダリスキャンI/Fから入力される。なお、リセット信号TRSTは、「L」を出力することによりTAPコントローラ11をリセット状態とする信号であり、「H」を出力することによりバウンダリスキャンテストを実行させる信号である。
この構成により、BSMODE信号として「H」(ハイレベルの電圧)が入力されても、クロック信号TCKに加えて、リセット信号TRSTが入力されない限り、フリップフロップ801の出力は変化しない。すなわち、ウォッチドッグタイマ部506のイネーブル信号に影響しない。
すなわち、稼働中にBSMODE信号が短絡などにより「H」のままとなったとしても、リセット信号TRSTが「H」となり、バウンダリスキャンテストが実行されるまでは、フリップフロップ801の出力からは「L」(ローレベルの電圧)が出力される。
すなわち、稼働中にBSMODE信号が短絡などにより「H」のままとなったとしても、リセット信号TRSTが「H」となり、バウンダリスキャンテストが実行されるまでは、フリップフロップ801の出力からは「L」(ローレベルの電圧)が出力される。
このように、実施例2では、フリップフロップ801に、クロック信号TCKに加えて、バウンダリスキャンで使用するリセット信号TRSTが入力される。このため、バウンダリスキャンテストが行われるまでは、CPLD321のウォッチドックタイマ機能がディスイネーブル状態になることを防止することができる。
<その他の実施例>
本発明は上述の実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。すなわち、上述した各実施例及びその変形例を組み合わせた構成もすべて本発明に含まれるものである。
本発明は上述の実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形が可能であり、それらを本発明の範囲から除外するものではない。すなわち、上述した各実施例及びその変形例を組み合わせた構成もすべて本発明に含まれるものである。
311 CPU
321 CPLD
503 イネーブルレジスタ
504 AND回路
505 イネーブル信号
506 ウォッチドッグタイマ部
601,602,801 フリップフロップ
321 CPLD
503 イネーブルレジスタ
504 AND回路
505 イネーブル信号
506 ウォッチドッグタイマ部
601,602,801 フリップフロップ
Claims (11)
- 第1の演算デバイスと、
前記第1の演算デバイスに接続され、前記第1の演算デバイスの状態を監視する機能を有する第2の演算デバイスと、
前記第1の演算デバイスの故障診断処理を行うための信号が出力されるインターフェースと、
を有する信号処理回路であって、
前記インターフェースから、前記第1の演算デバイスを故障診断処理を行うモードに切り替えるための第1の信号に加えて、前記第1の演算デバイスに対して前記故障診断処理を行う際に出力される第2の信号が、前記第2の演算デバイスに対しても出力される
ことを特徴とする信号処理回路。 - 前記第2の演算デバイスは、前記第1の演算デバイスから入力される第3の信号を監視することにより、前記第1の演算デバイスの状態を監視する
ことを特徴とする請求項1に記載の信号処理回路。 - 前記第2の演算デバイスは、所定時間、前記第3の信号が前記第1の演算デバイスから入力されない場合、前記第1の演算デバイスをリセットする
ことを特徴とする請求項2に記載の信号処理回路。 - 前記第2の信号は、クロック信号を含む
ことを特徴とする請求項1乃至3のいずれか1項に記載の信号処理回路。 - さらに、前記第2の信号は、前記故障診断処理をリセットするリセット信号を含む
ことを特徴とする請求項4に記載の信号処理回路。 - 前記第2の信号は、前記第2の演算デバイスに備えられた論理回路に入力される
ことを特徴とする請求項1乃至5のいずれか1項に記載の信号処理回路。 - 前記論理回路は、フリップフロップを含む
ことを特徴とする請求項6に記載の信号処理回路。 - 前記フリップフロップは、複数段で構成される
ことを特徴とする請求項7に記載の信号処理回路。 - 前記第2の演算デバイスは、内部回路として、プログラマブルロジックデバイスを備える
ことを特徴とする請求項1乃至8のいずれか1項に記載の信号処理回路。 - 前記第1の演算デバイスは、内部回路として、プログラマブルロジックとは異なる種類のロジックデバイスを備える
ことを特徴とする請求項1乃至9のいずれか1項に記載の信号処理回路。 - 第1の演算デバイスと、
前記第1の演算デバイスに接続され、前記第1の演算デバイスの状態を監視する機能を有する第2の演算デバイスと、
前記第1の演算デバイスの故障診断処理を行うための信号が出力されるインターフェースと、
を有する信号処理回路の故障診断方法であって、
前記インターフェースから、前記第1の演算デバイスを故障診断処理を行うモードに切り替えるための第1の信号に加えて、前記第1の演算デバイスに対して前記故障診断処理を行う際に出力される第2の信号が、前記第2の演算デバイスに対しても出力される
ことを特徴とする信号処理回路の故障診断方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019231285A JP2021099674A (ja) | 2019-12-23 | 2019-12-23 | 信号処理回路及び信号処理回路の故障診断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019231285A JP2021099674A (ja) | 2019-12-23 | 2019-12-23 | 信号処理回路及び信号処理回路の故障診断方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021099674A true JP2021099674A (ja) | 2021-07-01 |
Family
ID=76541985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019231285A Pending JP2021099674A (ja) | 2019-12-23 | 2019-12-23 | 信号処理回路及び信号処理回路の故障診断方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021099674A (ja) |
-
2019
- 2019-12-23 JP JP2019231285A patent/JP2021099674A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0169736B1 (ko) | 데이타 통신 인터페이스 및 이의 통신 방법 | |
JP5095273B2 (ja) | 制御装置 | |
CN107430167B (zh) | 半导体装置和诊断测试方法 | |
US20130162345A1 (en) | Semiconductor integrated circuit including a power controllable region | |
JP2018082169A (ja) | 自己テスト可能な集積回路装置及び集積回路を自己テストする方法 | |
JPS5833576B2 (ja) | 計算機システムの故障診断装置 | |
EP3971595A1 (en) | Fault injection in a clock monitor unit | |
JP6358107B2 (ja) | 電源監視回路 | |
JP4265934B2 (ja) | スキャンパス回路およびそれを備える論理回路ならびに集積回路のテスト方法 | |
KR100188170B1 (ko) | 회로소자 상태의 진단 장치 및 그 방법, 디지탈 프로세서 시스템 | |
JP7334531B2 (ja) | 半導体回路装置 | |
JP2021099674A (ja) | 信号処理回路及び信号処理回路の故障診断方法 | |
JP2006292646A (ja) | Lsiのテスト方法 | |
US20180277234A1 (en) | Failure prevention of bus monitor | |
JP5176962B2 (ja) | プリント板接続試験装置および方法 | |
JP4705886B2 (ja) | 回路基板の診断方法、回路基板およびcpuユニット | |
JP7135497B2 (ja) | データ処理装置 | |
JP2013242746A (ja) | 故障検出システムと方法並びに半導体装置 | |
JP2002286806A (ja) | 半導体デバイスのスキャンテスト方式 | |
JP4610919B2 (ja) | 半導体集積回路装置 | |
US20190285696A1 (en) | Semiconductor device and failure diagnosis method | |
KR100217536B1 (ko) | 이벤트 한정 검사 방법 및 회로 | |
JP2005190112A (ja) | マイクロコンピュータ及びそのデバッグ方法 | |
US11619668B2 (en) | Integrated circuit with self-test circuit, method for operating an integrated circuit with self-test circuit, multi-core processor device and method for operating a multi-core processor device | |
JPWO2010125793A1 (ja) | 試験装置および試験方法 |