(57)【要約】【課題】半導体装置の不具合の再現を容易にする。【解決手段】ダミーアドレス格納レジスタ１０ａ、調査アドレス格納レジスタ１０ｂが、プロセッサ２により実行される試験プログラムで指定される第１のアドレス（ダミーアドレス）及び第２のアドレス（調査アドレス）を保持し、試験回路７が、プロセッサ２にバス８の使用要求を行い、プロセッサ２によるバス８の制御を待機させた状態で、ダミーアドレス格納レジスタ１０ａ、調査アドレス格納レジスタ１０ｂに保持されたダミーアドレス及び調査アドレスを、バス８を介して試験対象回路６に順に供給して試験を行う。【選択図】図１
2014235100.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続され、試験プログラムを実行するプロセッサと、
前記バスに接続される試験対象回路と、
前記バスに接続される試験回路と、を有し、
前記試験回路は、
前記試験プログラムで指定される第１のアドレス及び第２のアドレスを保持する記憶部と、
前記プロセッサに前記バスの使用要求を行い、前記プロセッサによる前記バスの制御を待機させた状態で、前記記憶部に保持された前記第１のアドレス及び前記第２のアドレスを、前記バスを介して前記試験対象回路に順に供給して試験を行う試験制御部と、
を有することを特徴とする半導体装置。
【請求項２】
前記試験回路は、前記第２のアドレスが指定されることにより前記試験対象回路から読み出されるデータを保持する他の記憶部を有し、
前記他の記憶部への前記データの保持後、前記試験制御部は前記バスの使用要求を取り下げ、前記プロセッサは前記他の記憶部に保持された前記データを読み出し前記データの良否を判定する、ことを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記試験プログラムには、前記第１のアドレス、前記第２のアドレス及び、前記バスの使用要求を前記試験制御部に発生させる命令が記述されている、ことを特徴とする請求項１または２に記載の半導体装置。
【請求項４】
前記バスに接続されるＤＭＡコントローラと、
前記ＤＭＡコントローラ及び前記試験回路と、前記プロセッサの間に接続され、前記ＤＭＡコントローラまたは前記試験回路から発行される前記バスの使用要求を前記プロセッサに通知する論理回路と、をさらに有することを特徴とする請求項１乃至３の何れか一項に記載の半導体装置。
【請求項５】
プロセッサにより実行される試験プログラムで指定される第１のアドレス及び第２のアドレスを保持する記憶部と、
前記プロセッサにバスの使用要求を行い、前記プロセッサによる前記バスの制御を待機させた状態で、前記記憶部に保持された前記第１のアドレス及び前記第２のアドレスを、前記バスを介して試験対象回路に順に供給して試験を行う試験制御部と、
を有することを特徴とする試験回路。
【請求項６】
記憶部が、プロセッサにより実行される試験プログラムで指定される第１のアドレス及び第２のアドレスを保持し、
試験回路が、前記プロセッサにバスの使用要求を行い、前記プロセッサによる前記バスの制御を待機させた状態で、前記記憶部に保持された前記第１のアドレス及び前記第２のアドレスを、前記バスを介して試験対象回路に順に供給して試験を行う、
ことを特徴とする試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置、試験回路及び試験方法に関する。
【背景技術】
【０００２】
半導体装置の不良判定を行う試験の際、アドレスの動きを、たとえば、ワーストケースにして、不良動作（不具合）を再現することが行われる。
チップ内のＣＰＵ（Central Processing Unit）からメモリへの書き込み動作を例にあげる。書き込み動作時には、書き込みアドレスが指定される前に、メモリから書き込み命令を読み出すための読み出しアドレスが指定される。この読み出しアドレスと書き込みアドレスの特定のアドレスビットにおいて、値の変化（“０”から“１”または“１”から“０”への変化）が遅れると、指定された書き込みアドレスではないアドレスにデータが誤書き込みされる可能性がある。
【０００３】
このような不具合を再現する際、読み出しアドレスと書き込みアドレスの上記アドレスビットが同じ値の場合（つまり値が変化しない場合）には、このアドレスビットに生じる異常による誤書き込みを再現できない。そのため、そのアドレスビットの値を、読み出しアドレスと書き込みアドレスとで異ならせることが考えられる。つまり、不具合が発生する可能性があるアドレスビットの動きにすることが考えられる。
【０００４】
しかし、読み出しアドレスは、命令コードのメモリ上での配置位置によって決まるものであるため任意には変えられず、アドレスの動きを上記のようなワーストケースにすることは難しい。半導体装置の外部の試験回路が、専用のアドレス信号を半導体装置に供給して試験を行うことも考えられるが、システムボードに半導体装置を搭載するような状態で不具合動作確認を実施する際には適さない。
【０００５】
なお、チップの内部バスにバスインターフェースを介して、ＣＰＵと試験回路を接続し、試験対象とする周辺回路やメモリなどのアクセス制御を、ＣＰＵがプログラムの実行によって行うのではなく、試験回路が行う技術がある。この技術では、内部テーブルに設定した周辺回路の状態や内部バスの状態などのトリガー条件、動作、アドレス、データにしたがって、試験回路により周辺回路などに対する動作が行われる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−３２８１４７号公報
【特許文献２】特開２００１−５１８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、上記の技術は、アドレスの動きを任意に設定するものではなく、特定のアドレスの動きに起因して生じるような不具合の再現は、依然として困難であった。
【課題を解決するための手段】
【０００８】
発明の一観点によれば、バスに接続され、試験プログラムを実行するプロセッサと、前記バスに接続される試験対象回路と、前記バスに接続される試験回路と、を有し、前記試験回路は、前記試験プログラムで指定される第１のアドレス及び第２のアドレスを保持する記憶部と、前記プロセッサに前記バスの使用要求を行い、前記プロセッサによる前記バスの制御を待機させた状態で、前記記憶部に保持された前記第１のアドレス及び前記第２のアドレスを、前記バスを介して前記試験対象回路に順に供給して試験を行う試験制御部と、を有する半導体装置が提供される。
【０００９】
また、発明の一観点によれば、プロセッサにより実行される試験プログラムで指定される第１のアドレス及び第２のアドレスを保持する記憶部と、前記プロセッサにバスの使用要求を行い、前記プロセッサによる前記バスの制御を待機させた状態で、前記記憶部に保持された前記第１のアドレス及び前記第２のアドレスを、前記バスを介して試験対象回路に順に供給して試験を行う試験制御部と、を有する試験回路が提供される。
【００１０】
また、発明の一観点によれば、プロセッサにより実行される試験プログラムで指定される第１のアドレス及び第２のアドレスを記憶部に保持し、前記プロセッサにバスの使用要求を行い、前記プロセッサによる前記バスの制御を待機させた状態で、前記記憶部に保持された前記第１のアドレス及び前記第２のアドレスを、前記バスを介して試験対象回路に順に供給して試験を行う、試験方法が提供される。
【発明の効果】
【００１１】
開示の半導体装置、試験回路及び試験方法によれば、半導体装置の不具合の再現が容易になる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の半導体装置及び試験回路の一例を示す図である。
【図２】第２の実施の形態の半導体装置の一例を示す図である。
【図３】第２の実施の形態の試験回路の一例を示す図である。
【図４】本実施の形態の半導体装置の試験方法の一例の流れを示すフローチャートである（その１）。
【図５】本実施の形態の半導体装置の試験方法の一例の流れを示すフローチャートである（その２）。
【図６】試験プログラムの一例を示す図である。
【図７】通信マクロからＲＡＭへの試験プログラムの転送動作時の各部の信号の一例を示すタイミングチャートである。
【図８】試験プログラム実行時の各部の信号の一例を示すタイミングチャートである。
【図９】試験回路動作時の各部の信号の一例を示すタイミングチャートである。
【図１０】アドレスバスでの異常発生の一例を示す図である。
【図１１】試験回路動作終了後の結果出力処理時の各部の信号の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、発明を実施するための形態を、図面を参照しつつ説明する。
（第１の実施の形態）
図１は、第１の実施の形態の半導体装置及び試験回路の一例を示す図である。
【００１４】
半導体装置１は、プロセッサ２、試験プログラム入力部３、ＲＡＭ（Random Access Memory）４、ＲＯＭ（Read Only Memory）５、試験対象回路６、試験回路７を有し、これらはバス８に接続されている。
【００１５】
プロセッサ２は、ＲＯＭ５に格納されたプログラムや、試験プログラム入力部３から入力された試験プログラムに基づき、半導体装置１の各部を制御する。
試験プログラム入力部３は、試験対象回路６に対する試験プログラムを入力する。試験プログラム入力部３は、たとえば、通信マクロである。なお、試験プログラムはＲＯＭ５に格納されていてもよい。
【００１６】
ＲＡＭ４は、プロセッサ２に実行させるプログラムの少なくとも一部を一時的に格納する。たとえば、試験プログラムはＲＡＭ４上に展開されて実行される。
ＲＯＭ５は、プロセッサ２が実行するプログラムや、各種データを格納する。
【００１７】
試験対象回路６は、設定値などを格納するレジスタを有している各種周辺回路などである。たとえば、タイマや通信インターフェースなどが試験対象回路６となる。なお、バス８に接続されている試験プログラム入力部３、ＲＡＭ４、ＲＯＭ５が試験対象回路６であってもよい。
【００１８】
試験回路７は、記憶部１０、試験制御部１１、バス出力制御回路１２、バス入力制御回路１３を有する。
記憶部１０は、ダミーアドレス格納レジスタ１０ａ、調査アドレス格納レジスタ１０ｂ、データ格納レジスタ１０ｃを有している。
【００１９】
ダミーアドレス格納レジスタ１０ａと調査アドレス格納レジスタ１０ｂは、試験プログラムで指定される２つのアドレスを保持する。以下、上記の２つのアドレスを、ダミーアドレスと調査アドレスと呼ぶことにする。調査アドレスは、調査するデータが格納される試験対象回路６のアドレスであり、ダミーアドレスは、試験時に特定のアドレスの動きをさせるために、調査アドレスの前に指定されるアドレスである。これらの２つのアドレスは、試験プログラムに記述されている。
【００２０】
データ格納レジスタ１０ｃは、試験対象回路６から読み出されるデータ、または試験対象回路６に書き込むデータを保持する。試験対象回路６に書き込むデータは、たとえば、試験プログラムに記述されている。
【００２１】
試験制御部１１は、プロセッサ２にバス８の使用要求を行う。試験制御部１１にバス８の使用要求を発生させる命令は、試験プログラムに記述されている。試験制御部１１は、プロセッサ２からバス８の使用許可を受けると、プロセッサ２によるバス８の制御を待機させた状態で、ダミーアドレスと調査アドレスをバス８に順に供給し、試験対象回路６に対する試験を行う。
【００２２】
バス出力制御回路１２は、試験制御部１１の制御のもと、ダミーアドレス、調査アドレス、または書き込み試験時には書き込みデータをバス８に出力する。
バス入力制御回路１３は、試験制御部１１の制御のもと、試験対象回路６から読み出されたデータを、バス８を介して読み出し、データ格納レジスタ１０ｃに供給する。
【００２３】
以下、第１の実施の形態の半導体装置の動作の一例を説明する。
プロセッサ２の制御のもと、試験プログラム入力部３が試験プログラムを入力する。試験プログラムは、ＲＡＭ４に展開される。ＲＡＭ４に展開された試験プログラムにより、ダミーアドレス格納レジスタ１０ａと調査アドレス格納レジスタ１０ｂに、ダミーアドレスと調査アドレスが保持される。書き込み試験が行われる場合には、データ格納レジスタ１０ｃに試験プログラムに記述された書き込み用のデータが格納される。
【００２４】
また、試験プログラムにより、試験制御部１１が、プロセッサ２にバス８の使用要求を行う。プロセッサ２は試験制御部１１からバス８の使用要求を受けると、バス８の使用許可を発行する。これにより、プロセッサ２は待機状態となり、バス８の制御が試験回路７で行われるようになる。
【００２５】
試験制御部１１は、プロセッサ２からのバス８の使用許可を受けると、プロセッサ２を待機させた状態で、ダミーアドレスと調査アドレスをバス出力制御回路１２にバス８に出力させる。
【００２６】
図１の例では、試験回路７からの出力アドレスと、バス８（アドレスバス）を伝達するその出力アドレスのアドレスビット群のうち、あるアドレスビット（ｂｉｔ  ｘ）の一例の様子が示されている。
【００２７】
タイミングｔ１では、試験回路７の出力アドレスとしてダミーアドレスが出力される。また、タイミングｔ２では、試験回路７の出力アドレスとして調査アドレスが出力される。ここで、ダミーアドレスと調査アドレスの共通のｂｉｔ  ｘは、正常時の場合、“１”（Ｈ（High）レベル）から“０”（Ｌ（Low）レベル）に変化している。しかしながら、たとえば、ｂｉｔ  ｘを伝達するアドレス線において、遅延性の不具合が発生した場合、“１”から“０”への変化が遅延して、たとえば図１に示すような異常時の波形となる。このような場合、試験対象回路６では、ｂｉｔ  ｘが、“０”ではなく“１”であると判定して、たとえば、意図したアドレスとは違うアドレスからの誤読み出しが発生する。
【００２８】
試験制御部１１は、調査アドレスを出力した後に、その調査アドレスに基づき試験対象回路６から読み出されたデータを、バス入力制御回路１３を介してデータ格納レジスタ１０ｃに格納する。
【００２９】
その後、試験制御部１１は、バス８の使用要求を取り下げる。これにより、プロセッサ２によるバス８の制御が行われ、たとえば、データ格納レジスタ１０ｃからのデータの読み出しが行われる。これにより、意図したデータが読み出されているかが判定される。図１のように、ｂｉｔ  ｘが異常時の波形で示したように変化すると、正しいアドレスが指定されないため、読み出されたデータは意図したものとは異なるため、不具合が発生していることを把握することができる。なお、データ格納レジスタ１０ｃに格納されたデータは、プロセッサ２による制御のもと、図示しない通信マクロを介して外部に出力され、外部の装置により不具合の発生の有無が判定されるようにしてもよい。
【００３０】
なお、試験対象回路６に対するデータ書き込み時のアドレスの異常による、誤読み出しを検出する際には、試験制御部１１の制御のもと、調査アドレスで指定された試験対象回路６のレジスタへ、データ格納レジスタ１０ｃに格納されているデータが書き込まれる。ただし、図１に示すようなアドレスの異常が発生した場合には、意図しないアドレスへ誤書き込みされる。試験制御部１１によるバス８の使用要求の取り下げ後、プロセッサ２により、調査アドレスにおけるデータがデータ格納レジスタ１０ｃから読み出され、意図した値が書き込まれたかが判定される。
【００３１】
このように、本実施の形態では、試験プログラムで指定されるダミーアドレスと調査アドレスが記憶部１０に保持され、プロセッサ２によるバス８の制御を待機させた状態で、試験回路７がこれらのアドレスを順にバス８に出力して試験を実行する。試験プログラムに記述されたダミーアドレスと調査アドレスの値は任意に変更できる。そのため、試験対象回路６に対する試験の際に、アドレスの動きを任意に設定でき、不具合の再現が容易になる。
【００３２】
また、アドレスの動きをワーストケースにするために命令コードのアドレス配置を考えなくてもよくなるため、プロセッサ２が試験を行う場合のように、ワーストケースを再現するための複雑な試験プログラムを作成せずともよくなる。
【００３３】
また、試験プログラムにより、アドレスを任意に設定できるため、アドレス／データ入出力専用端子や、外部のアドレス発生器などが不要となる。
また、試験プログラムが実行されることにより、試験回路７の試験制御部１１が、バス８の使用要求を発行して、プロセッサ２を待機させ、試験回路７によるバス８の制御が行われるようになる。これにより、予め周辺回路などに試験開始トリガーのための回路を設けたり、トリガー条件などを記述したテーブルなどを設けずともよくなる。
【００３４】
（第２の実施の形態）
図２は、第２の実施の形態の半導体装置の一例を示す図である。
半導体装置２０は、プロセッサ２１、デコーダ２２、ＲＯＭ２３，２６、通信マクロ２４、周辺回路２５、ＲＡＭ２７、ＤＭＡＣ（Direct Memory Access Controller）２８、試験回路２９を有しており、これらは内部バス３０に接続されている。また、半導体装置２０は、ＯＲ回路３１を有している。
【００３５】
プロセッサ２１は、ＲＯＭ２３，２６に格納されたプログラムや、たとえば、通信マクロ２４から入力された試験プログラムに基づき、半導体装置２０の各部を制御する。プロセッサ２１は、マルチプロセッサであってもよい。プロセッサ２１は、たとえばＣＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ２１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３６】
デコーダ２２は、外部より入力される動作モード選択信号に応じて、ＲＯＭ２３を選択するか、ＲＯＭ２６を選択するか切り替える。
ＲＯＭ２３は、たとえば、試験時にプロセッサ２１によって実行されるプログラムや、各種データを格納する。
【００３７】
通信マクロ２４は、プロセッサ２１またはＤＭＡＣ２８の制御のもと、外部からの試験プログラムの入力や、試験結果の出力を行う。
周辺回路２５は、タイマや入出力インターフェースなどである。
【００３８】
ＲＯＭ２６は、ユーザによって使用されるプログラムや、各種データを格納する。
ＲＡＭ２７は、プロセッサ２１に実行させるプログラムの少なくとも一部を一時的に格納する。
【００３９】
ＤＭＡＣ２８は、通信マクロ２４や周辺回路２５などと、ＲＡＭ２７との間のデータの送受信を制御する。また、ＤＭＡＣ２８は、ＯＲ回路３１を介してプロセッサ２１に、内部バス３０の使用要求を発行するとともに、プロセッサ２１から内部バス３０の使用許可を受ける。
【００４０】
試験回路２９は、試験プログラムで指定されるアドレスを試験対象回路に供給して、試験を行う。また、試験回路２９は、ＯＲ回路３１を介してプロセッサ２１に、内部バス３０の使用要求を発行するとともに、プロセッサ２１から内部バス３０の使用許可を受ける。
【００４１】
ＯＲ回路３１は、ＤＭＡＣ２８または試験回路２９の少なくとも１つから内部バス３０の使用要求が発行されたとき、それをプロセッサ２１に通知する。
なお、内部バス３０は、データバスとアドレスバスを含む。
【００４２】
図３は、第２の実施の形態の試験回路の一例を示す図である。
試験回路２９は、ダミーアドレス格納レジスタ４０、調査アドレス格納レジスタ４１、データ格納レジスタ４２、内部バス使用要求信号生成部４３、シーケンス回路４４、バス出力制御回路４５、バス入力制御回路４６を有する。
【００４３】
ダミーアドレス格納レジスタ４０は、試験時に特定のアドレスの動きをさせるために、調査アドレスの前に指定されるアドレスであるダミーアドレスを保持する。
調査アドレス格納レジスタ４１は、試験対象回路６に調査のために指定されるアドレスを保持する。これらのアドレスは、試験プログラムに基づいて設定されるアドレスである。
【００４４】
データ格納レジスタ４２は、試験時に試験対象となる回路から読み出されるデータ、または試験対象となる回路に書き込むデータを保持する。
内部バス使用要求信号生成部４３は、プロセッサ２１に内部バス３０の使用要求を行う内部バス使用要求信号を生成する。以下、内部バス使用要求信号が“１”のときに、試験回路２９が内部バス３０の使用を要求するものとする。
【００４５】
シーケンス回路４４は、プロセッサ２１に接続されており、プロセッサ２１から内部バス３０の使用を許可する旨の信号を受けると、バス出力制御回路４５を制御してダミーアドレスと調査アドレスを内部バス３０に順に供給する。そして、シーケンス回路４４は、読み出し試験のときは、バス入力制御回路４６を制御して、調査アドレスによって、試験対象となる回路から読み出されるデータを、内部バス３０を介してデータ格納レジスタ４２に保持させる。また、書き込み試験のときは、シーケンス回路４４は、バス出力制御回路４５を制御して、データ格納レジスタ４２に保持されているデータを、内部バス３０を介して、試験対象となる回路に書き込ませる。シーケンス回路４４は、データ格納レジスタ４２へのデータの書き込み、またはデータ格納レジスタ４２からのデータの読み出しが終わると、内部バス使用要求信号生成部４３を制御して、内部バス使用要求信号を“０”にさせる。
【００４６】
バス出力制御回路４５は、シーケンス回路４４の制御のもと、ダミーアドレス、調査アドレス、または書き込みデータを内部バス３０に出力する。
バス入力制御回路４６は、シーケンス回路４４の制御のもと、試験対象の回路から読み出されたデータを、内部バス３０を介してデータ格納レジスタ４２に供給する。
【００４７】
以下、読み出し試験を例にして、本実施の形態の半導体装置２０の試験方法の一例を説明する。
（半導体装置２０の試験方法の一例）
図４及び図５は、本実施の形態の半導体装置の試験方法の一例の流れを示すフローチャートである。
【００４８】
まず、デコーダ２２は、ＲＯＭ２３に格納された試験時に実行されるプログラムを選択する旨の動作モード選択信号を受信して、試験プログラムのＲＡＭ２７への転送のための動作モードを選択する（ステップＳ１）。これにより、プロセッサ２１は、ＲＯＭ２３上のプログラムを起動し、通信マクロ２４によるＲＡＭ２７へ転送動作を開始する（ステップＳ２）。
【００４９】
通信マクロ２４は、外部からの試験プログラムの読み込みを開始し（ステップＳ３）、読み込まれた試験プログラムが、ＲＡＭ２７上へ展開される（ステップＳ４）。そして、プロセッサ２１は、実行中のプログラムの処理から、上記の試験プログラムへ処理を移す。
【００５０】
その後、プロセッサ２１の制御のもと、試験プログラムに基づく初期設定（ステップＳ５）、試験回路２９に対する設定が行われる（ステップＳ６）。これによって、試験回路２９が起動する。ステップＳ５の処理では、たとえば、通信マクロ２４におけるボーレートの設定やビット長などの設定が行われる。また、ステップＳ６の処理では、ダミーアドレス格納レジスタ４０と、調査アドレス格納レジスタ４１へのダミーアドレスと調査アドレスの書き込みなどが行われる。
【００５１】
その後、試験回路２９の内部バス使用要求信号生成部４３は、内部バス使用要求信号を“１”として、内部バス使用要求を発行する（ステップＳ７）。
プロセッサ２１は、内部バス使用要求を受けて、内部バス使用許可を発行するとともに内部バス３０を開放して、待機状態となる（ステップＳ８）。
【００５２】
試験回路２９においてシーケンス回路４４は、内部バス使用許可を受け取ると（ステップＳ９）、バス出力制御回路４５を制御して、ダミーアドレス格納レジスタ４０に保持されているダミーアドレスを内部バス３０に出力する（ステップＳ１０）。
【００５３】
その後、シーケンス回路４４は、バス出力制御回路４５を制御して、調査アドレス格納レジスタ４１に保持されている調査アドレスを内部バス３０に出力する（ステップＳ１１）。
【００５４】
その後、シーケンス回路４４は、バス入力制御回路４６を制御して、調査アドレスによって読み出された試験対象の回路からの読み出しデータを、データ格納レジスタ４２に格納させる（ステップＳ１２）。
【００５５】
ステップＳ１２の処理後、シーケンス回路４４は、内部バス使用要求信号生成部４３を制御して、内部バス使用要求信号を“０”にさせ、内部バス使用要求の取り下げを行う（ステップＳ１３）。これによって、プロセッサ２１による内部バス３０を用いる動作が再開する（ステップＳ１４）。
【００５６】
プロセッサ２１は、データ格納レジスタ４２に格納されたデータを読み出し、理想値との比較を行い、その比較結果を通信マクロ２４から出力する出力処理を行う（ステップＳ１５）。
【００５７】
通信マクロ２４から出力されたデータに基づき、外部の装置では良否判定処理が行われる（ステップＳ１６）。なお、プロセッサ２１が良否判定処理を行うようにしてもよいし、試験回路２９が、理想値を保持しており、その理想値とデータ格納レジスタ４２に格納されたデータとを比較して、その比較結果または比較結果に基づく良否判定結果を出力するようにしてもよい。
【００５８】
次に、試験プログラムの一例を説明する。
（試験プログラムの一例）
図６は、試験プログラムの一例を示す図である。
【００５９】
試験プログラムでは、まずレジスタ群が定義されている。“ＴＥＳＴ＿ＤＡ”は、ダミーアドレス格納レジスタ４０、“ＴＥＳＴ＿ＲＡ”は、調査アドレス格納レジスタ４１、“ＴＥＳＴ＿ＲＤ”は、データ格納レジスタ４２を示している。“ＴＳＥＴ＿ＳＴ”は、内部バス使用要求信号生成部４３内の図示しない内部バス要求ビット格納レジスタを示している。また、“ＣＡＮＲＥＧ”と“ＣＡＮＳＴＡＴ”は、通信マクロ２４内の、図示しない通信マクロ送信データレジスタと通信マクロ状態レジスタを示している。
【００６０】
その次に、試験時の各処理が記述されている。まずは通信マクロ２４の初期化を行うコードとして、通信マクロ２４のボーレート、ビット長、送信許可の設定などが記述されている。これらのコードにより、前述した図４のステップＳ５の処理が行われる。
【００６１】
さらに、試験回路２９の設定を行うコードの一例が記述されている。“ＭＯＶ  ＴＥＳＴ＿ＤＡ，＃７ＦＦＦＥｈ”は、ダミーアドレス格納レジスタ４０に、ダミーアドレス“７ＦＦＦＥｈ”を転送するコードである。“ＭＯＶ  ＴＥＳＴ＿ＲＡ，＃Ｃ００００ｈ”は、調査アドレス格納レジスタ４１に、調査アドレス“Ｃ００００ｈ”を転送するコードである。“ＭＯＶ  ＴＥＳＴ＿ＳＴ，＃ＦＦｈ”は、内部バス使用要求ビット格納レジスタに、内部バス使用要求ビット“ＦＦｈ”を転送するコードである。
【００６２】
これらのコードにより、前述した図４のステップＳ６，Ｓ７の処理が行われる。
その次に、プロセッサ２１による制御から、試験回路２９のシーケンス回路４４による制御に切り替わるまで、プロセッサ２１を待機させる、切り替わり待ちのためのダミーコード“ＮＯＰ”が記述されている。図６の例では、２サイクル待機させたタイミングで、シーケンス回路４４による制御に移行する。コード“ＮＯＰ”は、さらにもう一つ記述されており、さらに１サイクル分、プロセッサ２１を待機させる。
【００６３】
次に記載されている“ＷＡＩＴＬＯＯＰ”内の、“ＭＯＶ  Ａ，ＴＥＳＴ＿ＳＴ”は、内部バス要求ビット格納レジスタの値を、プロセッサ２１の図示しないアキュムレータ（レジスタ）に転送するコードである。また、“ＣＭＰ  Ａ，００ｈ”は、アキュムレータの値が、“００ｈ”であるか否かを判定するコードである。これにより、試験回路２９による内部バス３０の制御が終了したか否かが確認される。内部バス要求ビット格納レジスタの値は、シーケンス回路４４の制御のもと、試験対象の回路から読み出されたデータがデータ格納レジスタ４２に格納された後に、“００ｈ”となる。これにより内部バス使用要求信号が“０”となり、試験回路２９による内部バス３０の制御が終了することになる。
【００６４】
“ＢＮＥ  ＷＡＩＴＬＯＯＰ”は、アキュムレータの値が、“００ｈ”でない場合には、“ＷＡＩＴＬＯＯＰ”内の処理を繰り返させるコードである。つまり、試験回路２９による内部バス３０の制御が終了していないなら、プロセッサ２１の処理は、“ＷＡＩＴＬＯＯＰ”の行からの処理に戻る。
【００６５】
以下のコードは、試験回路２９による内部バス３０の制御が終了したときに実行される。
“ＭＯＶ  Ａ，ＴＥＳＴ＿ＲＤ”は、調査アドレス格納レジスタ４１に書き込まれた、試験対象の回路からの読み出しデータのプロセッサ２１のアキュムレータへの取り込みを行うコードである。
【００６６】
“ＭＯＶ  ＣＡＮＲＥＧ，Ａ”は、アキュムレータに取り込まれた読み出しデータを、通信マクロ送信レジスタに書き込むコードである。
次に記載されている“ＷＡＩＴＬＯＯＰ１”内の、“ＢＢＳ，ＣＡＮＳＴＡＴ：０，ＷＡＩＴＬＯＯＰ１”は、通信マクロ２４内の、通信マクロ状態レジスタの値が“０”（送信終了を示す値）になるまで、プロセッサ２１の動作を待機させるコードである。
【００６７】
“／／ＰＲＯＧ  ＥＮＤ”は、試験プログラムの終わりを示している。なお、図６の試験プログラムの例では、試験対象の回路から読み出したデータを、そのまま通信マクロ２４を用いて出力するものとしているが、前述したように、理想値と読み出しデータとの比較結果を通信マクロ送信レジスタに書き込んだ後、外部に出力するようにしてもよい。
【００６８】
次に、読み出し試験を例にして、本実施の形態の半導体装置２０の試験動作時の各部の信号の一例の様子を説明する。
（半導体装置２０の試験動作時の各部の信号の一例）
図７は、通信マクロからＲＡＭへの試験プログラムの転送動作時の各部の信号の一例を示すタイミングチャートである。
【００６９】
図７では、上から内部バス３０（アドレスバス）、通信マクロ２４の入力波形、内部バス３０（データバス）、ＲＡＭ２７のデータ入力波形の一例が示されている。
タイミングｔ１０〜ｔ１１の間で、通信マクロ２４による試験プログラムの読み込みと、内部バス３０（データバス）への伝達が行われ、プロセッサ２１に入力される。タイミングｔ１２〜ｔ１３の間で、試験プログラムがプロセッサ２１から、ＲＡＭ２７の指定されたアドレスに書き込まれる。
【００７０】
タイミングｔ１４から、ＲＡＭ２７に書き込まれた試験プログラムが実行されることになる。
図８は、試験プログラム実行時の各部の信号の一例を示すタイミングチャートである。
【００７１】
図８では、上から内部バス３０（アドレスバス）、ＲＡＭ２７のデータ出力波形、内部バス３０（データバス）、ダミーアドレス格納レジスタ４０の入力波形、調査アドレス格納レジスタ４１の入力波形、内部バス使用要求ビット格納レジスタの入力波形の一例が示されている。
【００７２】
試験プログラムが実行されると、タイミングｔ１５から、試験回路２９の各レジスタへの書き込み動作が行われる。
タイミングｔ１６では、ダミーアドレス格納レジスタ４０に、前述のように試験プログラムに記述されたダミーアドレスが書き込まれる。
【００７３】
タイミングｔ１７では、調査アドレス格納レジスタ４１に、試験プログラムに記述された調査アドレスが書き込まれる。
タイミングｔ１８では、内部バス使用要求ビット格納レジスタに、試験プログラムに記述された内部バス使用要求ビットの値（図６に示した試験プログラムの例の場合“ＦＦｈ”）が書き込まれる。
【００７４】
なお、上記では、ダミーアドレス、調査アドレスの順で書き込まれる例について示したが、この順番に限定されるものではない。調査プログラムのコードに応じて、書き込む順番は変更してもよい。
【００７５】
図９は、試験回路動作時の各部の信号の一例を示すタイミングチャートである。
図９では、上から内部バス３０（アドレスバス）の様子と、アドレスのｂｉｔ  １４の正常時の波形と異常時の波形、内部バス使用要求ビット格納レジスタの入力波形、内部バス使用要求信号及び内部バス使用許可信号の一例が示されている。さらに、正常時と異常時の内部バス３０（データバス）の波形、ダミーアドレス格納レジスタ４０と調査アドレス格納レジスタ４１の出力波形、データ格納レジスタ４２の入力波形の一例が示されている。
【００７６】
前述したように、タイミングｔ１８で、内部バス使用要求ビット格納レジスタに、内部バス使用要求ビットの値が書き込まれると、タイミングｔ１９において、内部バス使用要求信号生成部４３は、内部バス使用要求信号を“０”から“１”にする。
【００７７】
内部バス使用要求信号の変化を受けて、プロセッサ２１は、内部バス使用許可信号を“０”から“１”にする。これによって、内部バス３０が、試験回路２９によって制御されることになる。
【００７８】
タイミングｔ２１〜ｔ２２の間では、試験回路２９のシーケンス回路４４が、バス出力制御回路４５を制御して、ダミーアドレスと調査アドレスを順に内部バス３０に出力させている。さらにシーケンス回路４４は、バス入力制御回路４６を制御して、試験対象の回路から読み出されたデータを、データ格納レジスタ４２に格納させている。
【００７９】
図９の例では、ダミーアドレスと調査アドレスとが、図６に示した試験プログラムに記述されている値、“７ＦＦＦＥｈ”と“Ｃ００００ｈ”とである場合について示されている。“７ＦＦＦＥｈ”から“Ｃ００００ｈ”へアドレスを動かすとき、アドレスビットｂｉｔ  １４は、正常時の場合、“１”から“０”へ変化する。しかしながら、異常時には、たとえば、図９に示されているように“０”への変化が遅れる。このような異常が発生する理由の一例を以下に示す。
【００８０】
図１０は、アドレスバスでの異常発生の一例を示す図である。
周辺回路２５が試験対象回路である場合について示されている。たとえば、周辺回路２５は、レジスタ５０，５１、ＡＮＤ回路５２，５３、インバータ回路５４を有している。
【００８１】
図１０の例では、内部バス３０（アドレスバス）のアドレス線３０ａ，３０ｂ，３０ｃは、ＡＮＤ回路５２の入力端子に接続されており、ＡＮＤ回路５２の出力端子はレジスタ５０に接続されている。また、アドレス線３０ａ，３０ｂは、ＡＮＤ回路５３の入力端子に接続されており、アドレス線３０ｃは、インバータ回路５４を介してＡＮＤ回路５３の入力端子に接続されている。ＡＮＤ回路５３の出力端子は、レジスタ５１に接続されている。
【００８２】
内部バス３０（アドレスバス）により周辺回路２５に供給されるアドレスによって、レジスタ５０またはレジスタ５１が選択される。たとえば、アドレス線３０ａ，３０ｂ，３０ｃを伝達する各アドレスビットが“１”であれば、ＡＮＤ回路５２の出力信号は“１”となり、ＡＮＤ回路５３の出力信号は“０”となる。このとき、レジスタ５０が選択されて読み出しまたは書き込みが行われる。ここで、アドレス線３０ｃを伝達するアドレスビットが“０”となると、ＡＮＤ回路５２の出力信号は“０”となり、ＡＮＤ回路５３の出力信号は“１”となり、レジスタ５１が選択されることになる。
【００８３】
しかしながら、たとえば、図１０のように、アドレス線３０ｃに異物６０が付着して、アドレス線３０ｃを伝達するアドレスビットの変化が、図９にｂｉｔ  １４の異常時波形として示したように遅れる場合を考える。この場合、ＡＮＤ回路５２，５３の出力信号の変化も遅れ、読み出し時や書き込み時にレジスタ５１を選択すべきところをレジスタ５０が選択される可能性がある。これにより誤読み出しや誤書き込みが生じる。
【００８４】
図９のタイミングｔ２１〜ｔ２２に示すように、ダミーアドレス“７ＦＦＦＥｈ”と調査アドレス“Ｃ００００ｈ”がアドレスバスに供給されることで、データバスには試験対象の回路のデータが読み出される。しかし、アドレスビットｂｉｔ  １４の波形が図９のように正常時の場合と異常時の場合では、データバスに読み出されるデータが変わる。そのため、データ格納レジスタ４２に格納されるデータも変わる。
【００８５】
タイミングｔ２２でシーケンス回路４４が、内部バス使用要求信号を“０”とすると、タイミングｔ２３にて、プロセッサ２１は、内部バス使用許可信号を“０”とする。これによって、内部バス３０がプロセッサ２１によって制御されるようになる。
【００８６】
図１１は、試験回路動作終了後の結果出力処理時の各部の信号の一例を示す図である。
図１１では、上から内部バス３０（アドレスバス）の様子と、内部バス使用要求信号及び内部バス使用許可信号の一例が示されている。さらに、内部バス３０（データバス）の波形、調査アドレス格納レジスタ４１の出力波形、データ格納レジスタ４２の入出力波形、通信マクロ２４の出力波形の一例が示されている。
【００８７】
図１１の例では、タイミングｔ２４からプロセッサ２１の処理が再開している。プロセッサ２１は、タイミングｔ２５〜ｔ２６の間で、データ格納レジスタ４２に格納されたデータを読み出し、良否判定を行い、通信マクロ２４を用いて判定結果の送信準備を行う。ここでは、前述したように、通信マクロ２４のレジスタへの判定結果の書き込みなどが行われる。これにより、タイミングｔ２６から、通信マクロ２４は、判定結果を送信する。
【００８８】
第２の実施の形態の半導体装置２０及び試験回路２９でも第１の実施の形態の半導体装置１及び試験回路７と同様の効果を有する。すなわち、試験対象となる回路に対する試験の際に、アドレスの動きを任意に設定でき、不具合の再現が容易になる。たとえば、図９のアドレスビットｂｉｔ  １４の異常時波形のように、誤読み出しや誤書き込みを行う状態をピンポイントで設定できるようになる。
【００８９】
また、アドレスの動きをワーストケースにするために命令コードのアドレス配置を考えなくてもよくなるため、プロセッサ２１が試験を行う場合のように、ワーストケースを再現するための複雑な試験プログラムを作成せずともよくなる。
【００９０】
また、試験プログラムにより、アドレスを任意に設定できるため、アドレス／データ入出力専用端子や、外部のアドレス発生器などが不要となる。
また、試験プログラムが実行されることにより、試験回路２９の内部バス使用要求信号生成部４３が、内部バス３０の使用要求を発行して、プロセッサ２１を待機させ、試験回路２９による内部バス３０の制御が行われるようになる。これにより、予め周辺回路などに試験開始トリガーのための回路を設けたり、トリガー条件などを記述したテーブルなどを設けずともよくなる。また、ＯＲ回路３１が、ＤＭＡＣ２８または試験回路２９から出力される内部バス３０の使用要求をプロセッサ２１に伝えるようにしたため、簡単な構成で内部バス３０の制御主体を、プロセッサ２１、ＤＭＡＣ２８、試験回路２９の間で切り替えられる。
【００９１】
以上、実施の形態に基づき、本発明の半導体装置、試験回路及び試験方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
たとえば、試験プログラムは、通信マクロを介して外部から取り込んでＲＡＭに展開するのではなく、予め半導体装置内のＲＯＭ内に格納しておき、半導体装置の起動時に自己診断を行わせるようにしてもよい。
【符号の説明】
【００９２】
１  半導体装置
２  プロセッサ
３  試験プログラム入力部
４  ＲＡＭ
５  ＲＯＭ
６  試験対象回路
７  試験回路
８  バス
１０  記憶部
１０ａ  ダミーアドレス格納レジスタ
１０ｂ  調査アドレス格納レジスタ
１０ｃ  データ格納レジスタ
１１  試験制御部
１２  バス出力制御回路
１３  バス入力制御回路
【図１】
2014235100.tif 000003
【図２】
2014235100.tif 000004
【図３】
2014235100.tif 000005
【図４】
2014235100.tif 000006
【図５】
2014235100.tif 000007
【図６】
2014235100.tif 000008
【図７】
2014235100.tif 000009
【図８】
2014235100.tif 000010
【図９】
2014235100.tif 000011
【図１０】
2014235100.tif 000012
【図１１】
2014235100.tif 000013