(57)【要約】【課題】複数の機能マクロを同時に選択し、動作させることができる半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法を実現する。【解決手段】本発明の半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法は、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、それらに対応した複数の選択信号出力を備え、共通アドレスを受信した場合に、複数の選択信号出力のうち少なくとも２つを同時に活性化し、複数の機能マクロのうち少なくとも２つを同時に選択する選択手段を有することを特徴とし、共通アドレスにアクセスすることで、複数の機能マクロを並列に動作させ、半導体装置の処理時間を短縮することができる。【選択図】  図１
2004362157.tif 000002
【特許請求の範囲】
【請求項１】
主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、
予め定められたアドレスを受信した場合に、前記複数の機能マクロのうち少なくとも２つを同時に選択する選択手段を備え、
前記選択された機能マクロにおいて同一の処理が並列に実行されることを特徴とする半導体装置。
【請求項２】
前記選択手段は、
予め定められたアドレスを受信した場合に、前記複数の機能マクロのすべてを同時に選択することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記複数の機能マクロが生成した前記出力信号を受信し、これらの一致または不一致を示す判定信号を生成する比較手段をさらに有することを特徴とする請求項１に記載の半導体装置。
【請求項４】
前記判定信号を外部に出力する出力手段をさらに有することを特徴とする請求項３に記載の半導体装置。
【請求項５】
前記機能マクロは、
処理が正常に終了しなかった場合にエラー信号を生成し出力する機能をさらに備え、
前記判定信号および前記複数の機能マクロからの前記エラー信号が入力され、受信したアドレスに従って、前記判定信号および前記エラー信号のうちいずれか１つを選択しエラー割込み信号として出力するエラー出力切替手段をさらに有することを特徴とする請求項３に記載の半導体装置。
【請求項６】
前記複数の機能マクロからの前記出力信号が入力され、受信したアドレスに従って前記出力信号のうち１つを選択して出力する出力切替手段と、前記選択手段へ前記アドレスを供給し、前記複数の機能マクロへ前記入力信号を供給し、前記出力切替手段へ前記アドレスを供給し、前記出力切替手段から前記選択された出力信号を受信し、前記機能マクロに処理を実行させるＣＰＵを接続可能なシステムバスをさらに有することを特徴とする請求項１に記載の半導体装置。
【請求項７】
前記複数の機能マクロからの前記出力信号が入力され、受信したアドレスに従って前記出力信号のうち１つを選択して出力する出力切替手段と、前記選択手段へ前記アドレスを供給し、前記複数の機能マクロへ前記入力信号を供給し、前記出力切替手段へ前記アドレスを供給し、前記出力切替手段から前記選択された前記出力信号を受信し、前記エラー出力切替手段へ前記アドレスを供給し、前記エラー出力切替手段から前記エラー割込み信号を受信し、前記機能マクロに処理を実行させるＣＰＵを接続可能なシステムバスをさらに有することを特徴とする請求項５に記載の半導体装置。
【請求項８】
主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、
前記機能マクロを選択する選択手段を備えた半導体装置のアドレス割り付け方法であって、
前記選択手段が前記複数の機能マクロのうち少なくとも２つを同時に選択するように、予め定められた共通アドレスに前記複数の機能マクロを割り付け、前記共通アドレスを受信することにより、前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置のアドレス割り付け方法。
【請求項９】
前記共通アドレスに、前記複数の機能マクロのすべてを割り付けることを特徴とする請求項８に記載の半導体装置のアドレス割り付け方法。
【請求項１０】
主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、
前記機能マクロを選択する選択手段を備えた半導体装置の制御方法であって、
前記選択手段が前記複数の機能マクロのうち少なくとも２つを同時に選択するような予め定められた共通アドレスを前記選択手段に供給するアドレス設定ステップと、
前記選択された機能マクロの前記共通アドレスによって特定されるレジスタからのデータ読み出し、または、当該レジスタへのデータ書き込みを行うアクセスステップを有し、
前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置の制御方法。
【請求項１１】
前記共通アドレスは、前記複数の機能マクロをすべて選択するためのアドレスであることを特徴とする請求項１０に記載の半導体装置の制御方法。
【請求項１２】
前記アクセスステップでの前記機能マクロの処理が終了した後、前記機能マクロからの前記出力信号を比較し、これらが不一致の場合には、実行中断を選択する処理判定ステップをさらに有することを特徴とする請求項１０に記載の半導体装置の制御方法。
【請求項１３】
前記複数の機能マクロが生成した前記出力信号を受信し、これらの一致または不一致を示す判定信号を生成する比較手段をさらに備えた半導体装置の制御方法であって、
前記判定信号が不一致の場合には、実行中断を選択する処理判定ステップをさらに有することを特徴とする請求項１０に記載の半導体装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の機能マクロを搭載する半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法に関する。
【０００２】
【従来の技術】
機能マクロ、例えば、ＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）を有する従来の半導体装置では、出荷前の最終テストで機能マクロのテストを実行する必要がある。これには、実際にユーザが使用する場合のシステム動作を想定し、これに則して各機能マクロのテストプログラムを作成し、これらを順次実行させる方法が用いられている。
【０００３】
近年は、システム全体が複雑化し、すべての組合せをテストすることは現実的ではないため、このテストプログラムの完成度が半導体装置の動作保証の信頼性に大きく影響するようになっている。
【０００４】
さらに、半導体プロセスにおける微細化の飛躍的な進展に伴ってＳＯＣ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ）が登場し、１チップに多数の機能マクロが搭載されるようになったため、このようなテスト技術はますます重要になっている。
【０００５】
ところで、上述のようなテスト方法には、機能マクロの数だけテストプログラムを繰り返し実行するため、搭載する機能マクロの数に比例してテスト時間がかかる、という問題がある。また、出荷前の最終テストでは、システム全体の動作を保証するテストプログラムの完成度が非常に重要であり、過去の問題事例をスクリーニングする目的で導入したテストルーチンを簡素化すると、十分な保証が困難になる恐れがある。このため、システムの複雑化に伴う搭載マクロ数の増加とあいまって、最終テストは膨大なテスト時間を必要とするようになっている。
【０００６】
このため、入出力が単純な半導体装置に対しては、複数の半導体装置を同時にテストするいわゆる多個取りのテスト装置を用い、これを複数台並列に稼働し、単位時間あたりのテスト数を増やす方法が従来から採用されていた。しかし、ＳＯＣなどの多数の入出力を持つ半導体装置では、多個取りのできるテスト装置がなく、したがって、テスト装置の設置面積も含めて、この方法には膨大な設備投資が必要となっている。
【０００７】
このような問題に対応するために、スキャンテストのテスト時間を短縮する方法が提案されている。すなわち、スキャンパスの一部を枝分かれさせ、その部分でのスキャンデータの入出力を並列に行うことで、テスト時間の短縮を図る方法が特許文献１に記載されている。
【０００８】
しかし、スキャンテストには機能マクロの動作保証を十分には行えないという本質的な欠点がある。スキャンテストはもともと部分回路ロジックの検証や配線の接続不良、つまり、配線のオープンやショートを検出することが目的であり、上述したような最終テストでの半導体装置のスクリーニングには向いていないテスト方法である。特に、機能マクロの動作を保証するためには、スキャンテストでは不十分で、蓄積されたテストルーチンによる動作テストが必須である。
【０００９】
近年は上述したようにシステムがより複雑化する傾向にあり、この最終テストでの動作保証にかかるテスト時間の短縮が重要な課題となっている。
【００１０】
【特許文献１】
特開２００２−１９６０４５号公報
【００１１】
【発明が解決しようとする課題】
上述のごとく、従来は、テストプログラムを繰り返し順次実行させて搭載している複数の機能マクロの動作テストを行うため、出荷前の最終テストで膨大なテスト時間を必要とするという問題があった。
【００１２】
本発明は、上記問題点を解決するためになされたもので、複数の機能マクロのテストを短時間で行うことができる半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
本発明の一態様によれば、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、予め定められたアドレスを受信した場合に、前記複数の機能マクロのうち少なくとも２つを同時に選択する選択手段を備え、前記選択された機能マクロにおいて同一の処理が並列に実行されることを特徴とする半導体装置が提供される。
【００１４】
また、本発明の一態様によれば、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、前記機能マクロを選択する選択手段を備えた半導体装置のアドレス割り付け方法であって、前記選択手段が前記複数の機能マクロのうち少なくとも２つを同時に選択するように、予め定められた共通アドレスに前記複数の機能マクロを割り付け、前記共通アドレスを受信することにより、前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置のアドレス割り付け方法が提供される。
【００１５】
さらに、本発明の一態様によれば、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、前記機能マクロを選択する選択手段を備えた半導体装置の制御方法であって、前記選択手段が前記複数の機能マクロのうち少なくとも２つを同時に選択するような予め定められた共通アドレスを前記選択手段に供給するアドレス設定ステップと、前記選択された機能マクロの前記共通アドレスによって特定されるレジスタからのデータ読み出し、または、当該レジスタへのデータ書き込みを行うアクセスステップを有し、前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置の制御方法が提供される。
【００１６】
【発明の実施の形態】
以下、図面を参照しながら本発明に係わる半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法の実施の形態（以下、「実施形態」という。）を説明する。
【００１７】
図１は、本発明の実施形態に係わる半導体装置を示す回路ブロック図である。ここでは、主に、主な構成が同じ複数の機能マクロとそれらを同時に動作させる手段にかかわる部分を示した。
【００１８】
本発明の実施形態に係わる半導体装置は、主な構成が同じ機能マクロＡ１１および機能マクロＢ１２（以下、それぞれ「ＩＰ−Ａ１１」、「ＩＰ−Ｂ１２」という。さらに、ＩＰ−Ａ１１およびＩＰ−Ｂ１２をまとめて「ＩＰｓ」という。）、ＩＰｓを選択するアドレスデコーダ１３（以下、「ＤＥＣ１３」という。）、ＩＰｓからの出力信号を受信しいずれかを選択して出力するマルチプレクサ１４（以下、「ＭＵＸ１４」という。）、ＩＰｓからの出力信号を受信しそれらを比較して一致または不一致を判定するコンパレータ１５（以下、「ＣＭＰ１５」という。）、エラー割り込みを発生するエラー信号マルチプレクサ１６（以下、「ＥｒＭＸ１６」という。）、およびＣＰＵ（図には示していない。）を接続可能なシステムバス１７を有している。
【００１９】
ＤＥＣ１３は、システムバス１７から上位アドレス２０を受信し、ＩＰ−Ａ１１へ選択信号Ａ２１（以下、「Ｓｅｌ−Ａ２１」という。）を出力し、ＩＰ−Ｂ１２へ選択信号Ｂ２２（以下、「Ｓｅｌ−Ｂ２２」という。）を出力する。
【００２０】
ＩＰ−Ａ１１は、ＤＥＣ１３からのＳｅｌ−Ａ２１の他に、システムバス１７から入力信号である下位アドレス２３、リードライト信号２４（以下、「ＲＷ２４」という。）、およびライトデータ２５（以下、「ＷｒＤ２５」という。）を受信し、出力信号であるリードデータＡ２６（以下、「ＲｄＤ−Ａ２６」という。）と応答信号Ａ２７（以下、「Ａｃｋ−Ａ２７」という。）、およびエラー出力であるエラー信号Ａ２８（以下、「Ｅｒｒ−Ａ２８」という。）を出力する。
【００２１】
また、ＩＰ−Ａ１１は、半導体装置の外部との間でパッドＡ１８を介してシリアルデータＡ２９を入出力する。
【００２２】
ＩＰ−Ｂ１２は、ＤＥＣ１３からのＳｅｌ−Ｂ２２の他に、システムバス１７から入力信号である下位アドレス２３、ＲＷ２４、およびＷｒＤ２５を受信し、出力信号であるリードデータＢ３０（以下、「ＲｄＤ−Ｂ３０」という。）と応答信号Ｂ３１（以下、「Ａｃｋ−Ｂ３１」という。）、およびエラー出力であるエラー信号Ｂ３２（以下、「Ｅｒｒ−Ｂ３２」という。）を出力する。
【００２３】
また、ＩＰ−Ｂ１２は、半導体装置の外部との間でパッドＢ１９を介してシリアルデータＢ３３を入出力する。
【００２４】
ＭＵＸ１４は、システムバス１７からの上位アドレス２０と、ＩＰ−Ａ１１の出力信号であるＲｄＤ−Ａ２６およびＡｃｋ−Ａ２７と、ＩＰ−Ｂ１２の出力信号であるＲｄＤ−Ｂ３０およびＡｃｋ−Ｂ３１とを受信し、出力信号としてリードデータ３４（以下、「ＲｄＤ３４」という。）と応答信号３５（以下、「Ａｃｋ３５」という。）をシステムバス１７へ出力する。
【００２５】
ＣＭＰ１５は、ＩＰ−Ａ１１の出力信号であるＲｄＤ−Ａ２６およびＡｃｋ−Ａ２７と、ＩＰ−Ｂ１２の出力信号であるＲｄＤ−Ｂ３０およびＡｃｋ−Ｂ３１とを受信し、その一致または不一致を示す判定信号３６（以下、「Ｅｒｒ−Ｍ３６」という。）を出力する。
【００２６】
ＥｒＭＸ１６は、システムバス１７からの上位アドレス２０と、ＣＭＰ１５からのＥｒｒ−Ｍ３６と、ＩＰ−Ａ１１からのＥｒｒ−Ａ２８と、ＩＰ−Ｂ１２からのＥｒｒ−Ｂ３２とを受信し、ＣＰＵへの割り込みを発生させるエラー割込み信号３７（以下、「Ｅｒｒｏｒ３７」という。）をシステムバス１７へ出力する。
【００２７】
システムバス１７は、３２ｂｉｔ幅のアドレスバス、ＲＷ２４やＡｃｋ３５、Ｅｒｒｏｒ３７などを含むコントロールバス、およびＲｄＤ３４とＷｒＤ２５からなるデータバスを備え、ＣＰＵを接続してＩＰｓを制御できるようになっている。
【００２８】
３２ｂｉｔのアドレスは、上位２０ｂｉｔ（［３１：１２］）を上位アドレス２０として使用し、下位１２ｂｉｔ（［１１：０］）を下位アドレス２３として使用する。後述するように、上位アドレス２０はＩＰｓを識別するために用いられ、下位アドレス２３は各ＩＰｓ内のアドレスとして用いられている。
【００２９】
ＷｒＤ２５はＩＰｓへ書き込まれるデータであり、ＲｄＤ３４はＩＰｓから読み出されたデータである。ＲＷ２４は、ＩＰｓからの読み出しまたはＩＰｓへの書き込みを制御する信号であり、ＲＷ２４＝“１”で読み出しを意味し、ＲＷ２４＝“０“で書き込みを意味している。
【００３０】
すなわち、ＲＷ２４＝“１”の時は、上位アドレス２０で指定されたＩＰｓに対して下位アドレス２３で指定されたレジスタからデータが読み出され、システムクロックに同期してそのデータがＲｄＤ３４に出力される。ＲＷ２４＝“０“の時は、上位アドレス２０で指定されたＩＰｓに対して下位アドレス２３で指定されたレジスタへシステムクロックに同期してＷｒＤ２５が書き込まれる。
【００３１】
Ａｃｋ３５は、ＣＰＵからのコマンド受付が可能な状態を示すＩＰｓの応答信号であり、“１”の時にＩＰｓはコマンド受付が可能であり、“０”の時にＩＰｓは処理中であることを示している。
【００３２】
以下、特に断らない限り、制御信号は正論理とする。
【００３３】
Ｅｒｒｏｒ３７は、ＩＰｓでの致命的な処理エラーなどか発生した時にこれをＣＰＵへ知らせる割り込み信号である。
【００３４】
ＤＥＣ１３は、システムバス１７から受信した上位アドレス２０の値に従って、ＩＰｓを選択するＳｅｌ−Ａ２１およびＳｅｌ−Ｂ２２を出力する。すなわち、上位アドレス２０が｛Ｃ００００｝であれば、Ｓｅｌ−Ａ２１に“１”、Ｓｅｌ−Ｂ２２に“０“を出力し、ＩＰ−Ａ１１を選択する。（以下、アドレスの値は１６進数を用いて｛Ｃ００００｝のように表わす。また、アドレスマップの詳細は後述する。）
【００３５】
また、上位アドレス２０が｛Ｃ０００１｝であれば、Ｓｅｌ−Ａ２１に“０”、Ｓｅｌ−Ｂ２２に“１”を出力し、ＩＰ−Ｂ１２を選択する。さらに、上位アドレス２０が｛Ｃ０００Ｆ｝であれば、Ｓｅｌ−Ａ２１に“１”、Ｓｅｌ−Ｂ２２に“１”を出力し、ＩＰ−Ａ１１およびＩＰ−Ｂ１２の両方を同時に選択する。
【００３６】
ＩＰ−Ａ１１は、半導体装置外部との間でシリアルデータＡ２９の入出力を行うシリアル入出力モジュールであり、シリアル入出力端子が専用のパッドＡ１８に接続されている。また、ＩＰ−Ａ１１は、下位アドレス２３で識別されるデータレジスタ、コマンドレジスタ、フラグレジスタ、およびマクロＩＤを持ち、これらのレジスタ群を介してＣＰＵからデータおよび処理コマンドを受信し、また、コマンドの処理結果をＣＰＵへ出力する。
【００３７】
データレジスタは、シリアルデータＡ２９として入出力するデータなどのＣＰＵとの受渡しに使用される。また、コマンドレジスタは、ＩＰ−Ａ１１が実行する処理コマンドをＣＰＵが書き込むレジスタであり、フラグレジスタは、その処理結果などを示すフラグビットの集まりである。
【００３８】
これらレジスタ群からの読み出しは次のように行われる。まず、Ａｃｋ−Ａ２７が調べられ、これが“１”であれば、下位アドレス２３に従ってレジスタが選択される。次に、ＲＷ２４に“１”が与えられ、システムクロックに同期してＲｄＤ−Ａ２６が出力される。
【００３９】
同様にして、レジスタ群への書き込みは次のように行われる。まず、Ａｃｋ−Ａ２７が調べられ、これが“１”であれば、下位アドレス２３に従ってレジスタが選択される。次に、ＲＷ２４に“０”が与えられ、システムクロックに同期して、選択されたレジスタにＷｒＤ２５が書き込まれる。
【００４０】
なお、マクロＩＤはＩＰｓを識別するための識別コードを保持しており、読み出し専用となっている。
【００４１】
ＩＰ−Ｂ１２は、シリアル入出力端子が専用のパッドＢ１９に接続されている点と、マクロＩＤが保持する識別コードがＩＰ−Ａ１１とは異なることを除けば、その構成、動作はＩＰ−Ａ１１と同じである。
【００４２】
ＭＵＸ１４は、システムバス１７から受信した上位アドレス２０の値に従って、ＩＰ−Ａ１１の出力信号であるＲｄＤ−Ａ２６、Ａｃｋ−Ａ２７と、ＩＰ−Ｂ１２の出力信号であるＲｄＤ−Ｂ３０、Ａｃｋ−Ｂ３１のいずれかの信号セットを選択し、出力信号ＲｄＤ３４およびＡｃｋ３５としてシステムバス１７へ出力する。
【００４３】
すなわち、上位アドレス２０が｛Ｃ００００｝であれば、ＩＰ−Ａ１１の出力信号を選択し、上位アドレス２０が｛Ｃ０００１｝であれば、ＩＰ−Ｂ１２の出力信号を選択して出力する。また、上位アドレス２０が、｛Ｃ０００Ｆ｝であれば、ＩＰ−Ａ１１の出力を選択して出力する。上述したように、ＩＰ−Ａ１１およびＩＰ−Ｂ１２は主な構成が同じで同じ動作をするので、両方が同時に選択された場合、処理エラーが発生しない限り、同じ入力信号に対しては出力信号も同じになる。
【００４４】
ＣＭＰ１５は、ＩＰ−Ａ１１の出力信号であるＲｄＤ−Ａ２６、Ａｃｋ−Ａ２７と、ＩＰ−Ｂ１２の出力信号であるＲｄＤ−Ｂ３０、Ａｃｋ−Ｂ３１をそれぞれ比較し、これらがすべて一致していれば、Ｅｒｒ−Ｍ３６に“０”を出力し、１つでも異なっていれば、ＣＰＵに対して割り込みを発生させるためにＥｒｒ−Ｍ３６に“１”を出力する。
【００４５】
ＥｒＭＸ１６は、システムバス１７から受信した上位アドレス２０の値に従って、Ｅｒｒ−Ａ２８、Ｅｒｒ−Ｂ３２、およびＥｒｒ−Ｍ３６を論理演算してＥｒｒｏｒ３７としてシステムバス１７へ出力する。すなわち、上位アドレス２０が｛Ｃ００００｝であれば、Ｅｒｒ−Ａ２８を選択し、上位アドレス２０が｛Ｃ０００１｝であれば、Ｅｒｒ−Ｂ３２を選択して出力する。また、上位アドレス２０が｛Ｃ０００Ｆ｝であれば、Ｅｒｒ−Ｍ３６とＥｒｒ−Ａ２８の論理和を出力する。
【００４６】
次に、上述した構成を持つ半導体装置の制御方法について説明する。図２は、本発明の実施形態に係わる半導体装置の制御方法を示すフロー図である。ここでは、主に、システムバス１７にＣＰＵモジュールを接続してＩＰｓを同時に動作させ、ＩＰｓの動作テストを効率良く行うための制御フローを示した。
【００４７】
本発明の実施形態に係わる半導体装置の制御方法は、ＩＰｓの処理終了を待つ待機ステップ４１、ＩＰｓを指定するアドレス設定ステップ４２、レジスタのリードライトを行うアクセスステップ４３、ＩＰｓでの処理状況を確認する処理判定ステップ４４、終了判定ステップ４５、および、割り込み処理ステップ４６とから構成される。
【００４８】
待機ステップ４１では、ＣＰＵは、ＩＰｓがコマンド受付可能な状態になるまで待機する。すなわち、Ａｃｋ３５が“０”の間、ＩＰｓはビジー状態であり、ＣＰＵは定期的にＡｃｋ３５をモニターしながら待機する。そして、Ａｃｋ３５が“１”になりＩＰｓがコマンド受付可能な状態になったら、ＣＰＵは次のアドレス設定ステップ４２へ移行する。
【００４９】
アドレス設定ステップ４２では、ＣＰＵは、共通アドレスとして｛Ｃ０００Ｆ｝（アドレスマップの詳細は後述する。）を上位アドレス２０へ出力する。この共通アドレスにより、ＤＥＣ１３はＩＰ−Ａ１１およびＩＰ−Ｂ１２の両方を選択し、ＭＵＸ１４はＩＰ−Ａ１１の出力信号であるＲｄＤ−Ａ２６およびＡｃｋ−Ａ２７を出力信号ＲｄＤ３４およびＡｃｋ３５としてシステムバス１７へ出力するように設定される。
【００５０】
また、ＥｒＭＸ１６は、ＣＭＰ１５からのＥｒｒ−Ｍ３６とＩＰ−Ａ１１からのＥｒｒ−Ａ２８との論理和を割り込み信号Ｅｒｒｏｒ３７としてシステムバス１７へ出力するように設定される。
【００５１】
また、上位アドレス２０と同時にＣＰＵから出力される下位アドレス２３により、ＩＰｓは、レジスタがＷｒＤ２５からデータを受信し、ＲｄＤ３４へデータを出力するよう設定される。アドレスの出力が済むとＣＰＵは次のアクセスステップ４３へ移行する。
【００５２】
アクセスステップ４３は、アドレス設定ステップ４２で指定されたレジスタに実際にアクセスするステップである。例えば、レジスタへ書き込みをする場合、ＣＰＵは、アドレス設定ステップ４２でアクセスするレジスタのアドレス、データレジスタなら｛０００｝を下位アドレス２３に出力する。
【００５３】
次に、アクセスステップ４３でデータレジスタに書き込むべきデータをＷｒＤ２５へ出力し、ＲＷ２４を“０”にする。実際の書き込みはシステムクロックに同期して行われ、ＩＰ−Ａ１１およびＩＰ−Ｂ１２の両方のデータレジスタに同時に同じデータが書き込まれる。
【００５４】
同様に、読み出しを行う場合、ＣＰＵは、アクセスステップ４３でまずＲＷ２４を“１”にし、次のシステムクロックに同期してＲｄＤ３４からデータを受信する。この時、ＭＵＸ１４にはアドレス設定ステップ４２で共通アドレスが与えられているので、ＲｄＤ３４にはＲｄＤ−Ａ２６が出力されており、ＣＰＵはＩＰ−Ａ１１のデータレジスタの値を読み取ることになるが、ＩＰｓは、エラーが発生しない限り、すべて同じ出力信号を出力しているので、問題はない。ＩＰｓへのアクセスが済むとＣＰＵは次の処理判定ステップ４４へ移行する。
【００５５】
処理判定ステップ４４は、アクセスステップ４３で行ったＩＰｓへのアクセスが設計どおりに正しく処理されたかを判定するステップである。すなわち、アクセスステップ４３で読み出しが行われた場合、ＣＭＰ１５でＩＰｓからの出力信号が比較され、その一致または不一致が判定される。
【００５６】
比較結果が不一致である場合には、ＣＭＰ１５はＥｒｒ−Ｍ３６に“１”を出力し、ＥｒＭＸ１６を介してＣＰＵへ割り込み信号であるＥｒｒｏｒ３７を送出する。これを受けてＣＰＵは割り込み処理ステップ４６へ移行する。
【００５７】
また、処理判定ステップ４４では、ＣＰＵは、ＩＰｓのフラグレジスタを読出し、それらの値が正しいことを確認する。具体的な方法は、フラグレジスタを指定する｛００８｝を下位アドレス２３に出力することを除けば、アクセスステップ４３のデータ読み出しと同じである。
【００５８】
つまり、アクセスステッブと同様に、ＣＭＰ１５は必要に応じてＥｒｒｏｒ３７をＣＰＵへ送出し、これを受けてＣＰＵは割り込み処理ステップ４６へ移行する。ＣＭＰ１５での比較結果が一致の場合でも、ＩＰｓでの処理が正しく行われないこともありうる。
【００５９】
この場合は、ＩＰ−Ａ１１からのＥｒｒ−Ａ２８によって割り込みがかけられ、フラグレジスタの値を調べることで確認できる。設計通りに正しくエラーを発生する場合を除けば、これは、設計に問題があるか、テストルーチンにバグがあることを意味している。このような場合（“ＮＧ”）、ＣＰＵはテストルーチンを異常終了させる。ただし、開発が終了し量産段階に至った半導体装置の出荷前テスト、いわゆるスクリーニングテストなどに適用する場合には、個別のＩＰｓでの不具合によるＣＭＰ１５での不一致を除き、このような“ＮＧ”が起こる可能性はほとんどないので、フラグレジスタを調べる部分は省略しても差し支えない。
【００６０】
さらに、処理判定ステップ４４では、各ＩＰｓで固有の出力、つまり、シリアルデータＡ２９およびシリアルデータＢ３３も判定される。すなわち、例えば、アクセスステップ４３でシリアル出力の処理コマンドがコマンドレジスタに書き込まれた場合には、パッドＡ１８およびパッドＢ１９に接続された外部テスト装置により、シリアルデータＡ２９およびシリアルデータＢ３３の出力が設計どおりであるかが確認される。この結果が“ＮＧ”である場合は、ＣＰＵはテストルーチンを異常終了させる。
【００６１】
上述したような不具合が発生しなければ（“ＯＫ”）、ＣＰＵは終了判定ステップ４５へ移行する。
【００６２】
終了判定ステップ４５では、必要なテストがすべて終了した時（“Ｙｅｓ”）に、ＣＰＵはテストルーチンを正常終了する。まだテストが残っている場合（“Ｎｏ”）には、ＣＰＵは待機ステップ４１へ移行し次の処理サイクルに入る。
【００６３】
処理判定ステップ４４でＣＭＰ１５からのＥｒｒｏｒ３７が発生すると、ＣＰＵは割り込み処理ステップ４６へ移行する。ここでは、個別のＩＰｓごとのアドレスを上位アドレス２０へ出力し、各ＩＰｓのフラグレジスタを読み出し、どのＩＰｓがエラーの原因となったかを調べ、その情報を外部に通知してテストルーチンを終了する。
【００６４】
このようにして、ＣＰＵは、複数のＩＰｓを同時に動作テストすることができる。
【００６５】
次に、上述した構成を持つ半導体装置のアドレス割り付け方法について説明する。図３は、本発明の実施形態に係わる半導体装置のアドレス割り付けを示すアドレスマップである。ここでは、主に、ＩＰｓにかかわる部分のアドレスマップを示した。
【００６６】
本発明の実施形態に係わる半導体装置のアドレスマップは、上位アドレス２０＝｛Ｃ００００｝（以下、「専用アドレスＡ」という。）にＩＰ−Ａ１１のレジスタ群が割り付けられ、上位アドレス２０＝｛Ｃ０００１｝（以下、「専用アドレスＢ」という。）にＩＰ−Ｂ１２のレジスタ群が割り付けられ、上位アドレス２０＝｛Ｃ０００Ｆ｝（以下、「共通アドレス」という。）にＩＰ−Ａ１１およびＩＰ−Ｂ１２の両方のレジスタ群が多重に割り付けられている。
【００６７】
専用アドレスＡには、下位アドレス２３＝｛０００｝にＩＰ−Ａ１１のデータレジスタであるＤＲ−Ａ５１が割り付けられ、下位アドレス２３＝｛００４｝にＩＰ−Ａ１１のコマンドレジスタであるＣＭＤ−Ａ５２が割り付けられ、下位アドレス２３＝｛００８｝にＩＰ−Ａ１１のフラグレジスタであるＦｌａｇ−Ａ５３が割り付けられ、下位アドレス２３＝｛ＦＦＣ｝にＩＰ−Ａ１１のマクロＩＤであるＩＤ−Ａ５４が割り付けられている。
【００６８】
ここで、下位アドレス２３が４の倍数になっているのは、アドレスの割り付けがバイト単位であるのに対し、データバス幅が３２ビット、つまり４バイトであることによる。
【００６９】
専用アドレスＢには、下位アドレス２３＝｛０００｝にＩＰ−Ｂ１２のデータレジスタであるＤＲ−Ｂ５５が割り付けられ、下位アドレス２３＝｛００４｝にＩＰ−Ｂ１２のコマンドレジスタであるＣＭＤ−Ｂ５６が割り付けられ、下位アドレス２３＝｛００８｝にＩＰ−Ｂ１２のフラグレジスタであるＦｌａｇ−Ｂ５７が割り付けられ、下位アドレス２３＝｛ＦＦＣ｝にＩＰ−Ｂ１２のマクロＩＤであるＩＤ−Ｂ５８が割り付けられている。
【００７０】
共通アドレスには、下位アドレス２３＝｛０００｝にＩＰｓのデータレジスタであるＤＲ−Ｍ５９が割り付けられ、下位アドレス２３＝｛００４｝にＩＰｓのコマンドレジスタであるＣＭＤ−Ｍ６０が割り付けられ、下位アドレス２３＝｛００８｝にＩＰｓのフラグレジスタであるＦｌａｇ−Ｍ６１が割り付けられている。ここで、ＤＲ−Ｍ５９はＤＲ−Ａ５１およびＤＲ−Ｂ５５が多重に割り付けられていることを表わす仮想的なレジスタであり、ＣＭＤ−Ｍ６０、Ｆｌａｇ−Ｍ６１も同様である。
【００７１】
すなわち、ＣＰＵが共通アドレスにアクセスした場合、上述したように、ＤＥＣ１３がＳｅｌ−Ａ２１およびＳｅｌ−Ｂ２２の両方に“１”を出力し、ＩＰ−Ａ１１およびＩＰ−Ｂ１２が同時に選択されるため、両方のレジスタ群に同時に書き込み、または、両方のレジスタ群から同時に読み出しが行われる。
【００７２】
なお、共通アドレスの下位アドレス２３＝｛ＦＦＣ｝にはマクロＩＤは割り付けられていない。これは、マクロＩＤがＩＰｓを一意に識別する目的で使用されているためである。
【００７３】
このようなアドレスマップを持つ半導体装置を用いてシリアル出力を行う一例を説明する。
【００７４】
ＩＰ−Ａ１１を用いてシリアル出力を行う場合、ＣＰＵは上述した制御フロー（図２）の処理サイクルに従って、まず、シリアル出力するデータをＤＲ−Ａ５１に書き込む。次に、シリアル出力を指示する処理コマンドをＣＭＤ−Ａ５２に書き込んでＩＰ−Ａ１１の処理実行を起動し、待機ステップ４１でその終了を待つ待機状態になる。
【００７５】
ただし、開発が終了した量産段階での出荷前テストでは、図２の処理判定ステップ４４における各処理サイクルごとのフラグレジスタの読み出しは行われない。シリアルデータＡ２９の出力が終了したら、ＣＰＵは、Ｆｌａｇ−Ａ５３を読み出して処理の実行状況を調べ、処理が要求どおりに行われたことを確認する。
【００７６】
この一連の動作において、ＣＰＵはＩＰ−Ａ１１のレジスタ群にアクセスするために上位アドレス２０に｛Ｃ００００｝を出力しているので、ＭＵＸ１４およびＥｒＭＸ１６はＩＰ−Ａ１１からの出力信号を選択し、出力している。
【００７７】
また、ＩＰ−Ａ１１での処理実行中に致命的なエラーが発生した場合は、ＩＰ−Ａ１１が出力するＥｒｒ−Ａ２８がＥｒｒｏｒ３７としてＣＰＵに割り込みをかけるので、ＣＰＵはエラー処理ルーチンを実行することができる。
【００７８】
ＩＰ−Ｂ１２を用いてシリアル出力を行う場合も、ＩＰ−Ｂ１２のレジスタ群にアクセスすることを除けば、ＩＰ−Ａ１１と同様である。
【００７９】
次に動作テストのためにＩＰｓを同時に動作させる場合を、シリアル出力を例に説明する。ＣＰＵは、まず、シリアル出力するデータをＤＲ−Ｍ５９に書き込む。次に、シリアル出力を指示する処理コマンドをＣＭＤ−Ｍ６０に書き込んでＩＰｓの処理実行を同時に起動し、その終了を待つ状態になる。
【００８０】
シリアルデータの出力が終了したら、ＣＰＵは、Ｆｌａｇ−Ｍ６１を読み出して処理の実行状況を調べ、処理が要求どおりに行われたことを確認する。この一連の動作において、ＣＰＵは上位アドレス２０として｛Ｃ０００Ｆ｝を出力しているので、ＭＵＸ１４はＩＰ−Ａ１１からの出力信号を選択出力し、ＥｒＭＸ１６はＣＭＰ１５からのＥｒｒ−Ｍ３６とＩＰ−Ａ１１からのＥｒｒ−Ａ２８との論理和を出力している。
【００８１】
ＩＰｓが設計通りに動作していれば、それらの出力信号は全く同じ値となるので、Ｅｒｒ−Ｍ３６は“０”である。逆に、ＩＰｓでの処理実行中に何らかのエラーが発生した場合は、ＩＰｓの出力信号が異なった値となるので、Ｅｒｒ−Ｍ３６が“１”となり、Ｅｒｒｏｒ３７によってＣＰＵに割り込みがかけられ、ＣＰＵはエラー処理ルーチンを実行することができる。
【００８２】
また、ＩＰｓが設計通りに同じエラーを発生した場合には、ＩＰ−Ａ１１からのＥｒｒ−Ａ２８が“１”となり、Ｅｒｒｏｒ３７によってＣＰＵに割り込みがかけられる。
【００８３】
このようにして、１回のコマンド実行で両方のＩＰｓをテストすることができる。重要なことは、ＣＰＵが実行するプログラムは、共通アドレスにアクセスすることを除けば、従来のＩＰｓに対するルーチンがそのまま使用できることである。つまり、過去に蓄積されたＩＰｓのテストルーチンをほとんど変更せずに利用できるということである。
【００８４】
上記実施形態によれば、複数のＩＰｓを同時に選択し、動作させることが容易にできるので、半導体装置の動作テスト時間を大幅に短縮することができる。
【００８５】
さらに、上位アドレス２０の変更だけでＩＰｓへの多重アクセスが容易に実現できるので、従来の蓄積されたテストルーチンをほとんどそのまま使用でき、テストプログラムの開発時間を大幅に削減することができるとともに、テストプログラムの信頼性、ひいては動作テストの信頼性をも損なうことがない。
【００８６】
上述の実施形態では、制御信号は正論理であるとしたが、本発明はこれに限られるものではない。また、上述の実施形態では、一例として、共通アドレスにアクセスすることによって動作テストを行う方法を示したが、本発明はこれに限られるものではなく、例えば、複数のＩＰｓに同時に初期値を設定する場合にも適用することができる。その場合、出荷前動作テストでＩＰｓが正しく動作することが確認されていれば、ＣＭＰ１５による出力信号の比較判定は必ずしも必要ではない。
【００８７】
さらに、上述の実施形態では、ＩＰｓは２つのシリアル入出力マクロであるとしたが、本発明はこれに限られるものではなく、主な構成が同じで所定の入力信号に対して同じ出力信号を生成する機能マクロであれば、その数や機能は限定されない。
【００８８】
その場合、共通アドレスのアドレス空間に割り付けられるレジスタ群（以下、これらをまとめて「共通レジスタ」という。）の種類や順序が上述した実施形態と異なるものとなることはいうまでもない。本発明は、複数の機能マクロを有するシステムＬＳＩなどに広く適用することができる。
【００８９】
さらに、多重アクセスされるＩＰｓの中に他とは異なる付加機能、付加レジスタなどを有するものがあってもよい。原理的には、多重アクセスされるＩＰｓが、それらに共通する機能、レジスタを有していれば、その部分について本発明を適用することができる。
【００９０】
例えば、その機能マクロに固有のレジスタ（以下、「固有レジスタ」という。）は、上述したマクロＩＤのように、共通アドレスのアドレス空間には割り付けないようにし、同時に動作させるＩＰｓに共通するレジスタだけを共通レジスタとして割り付けるようにすれば良い。
【００９１】
また、逆に、固有レジスタも共通アドレスのアドレス空間に割り付け、ＣＰＵがそこをアクセスした時は、その機能マクロだけが動作するように設定することもできる。
【００９２】
さらに、共通レジスタへ入力可能なすべての組合せに対して、多重アクセスされるＩＰｓがすべて同じ出力信号を生成する必要はない。原理的には、同じ出力信号を生成する入力信号のサブセットに対して本発明を適用し、それらの入力信号に対してだけ共通アドレスを用いた並列動作をさせるように設定することができる。
【００９３】
さらに、上述の実施形態では、共通アドレスは１つとしたが、本発明はこれに限られるものではなく、ＩＰｓを機能、動作が類似の複数のグループに分け、それぞれに共通アドレスを設けることもできる。この場合、ＤＥＣ１３はそれぞれの共通アドレスに対応するグループに属するＩＰｓへの選択信号を同時に活性化することになる。
【００９４】
重要なことは、１つの共通アドレスでアクセスされるあるグループに属するＩＰｓは、同じ種類のレジスタが同じ下位アドレス２３に割り付けられているということである。さらに、このグループ分けは、排他的である必要はなく、１つのＩＰｓが複数の共通アドレスでアクセスされるようにしてもよい。
【００９５】
さらに、上述の実施形態では、上位アドレス２０は２０ｂｉｔであるとしたが、本発明はこれに限られるものではなく、上位アドレス２０と下位アドレス２３のｂｉｔ数は必要に応じて任意に設定してよい。
【００９６】
さらに、上述の実施形態では、ＭＵＸ１４は、共通アドレスがアクセスされた場合、ＩＰ−Ａ１１の出力信号を選択するとしたが、本発明はこれに限られるものではなく、共通アドレスで多重にアクセスされるＩＰｓのうちどのＩＰｓの出力信号を選択してもよい。
【００９７】
さらに、上述の実施形態では、ＣＭＰ１５の判定結果であるＥｒｒ−Ｍ３６は、ＥｒＭＸ１６へ出力するとしたが、本発明はこれに限られるものではなく、出力バッファおよび出力パッドなどの外部出力手段を介して、半導体装置外部へ直接出力してもよい。この場合、半導体装置の良否判定はＥｒｒ−Ｍ３６に従って外部装置で行う。
【００９８】
また、上述したＣＭＰ１５と同等の機能をＣＰＵのソフトウェアとして実装することも可能である。この場合、ＩＰｓの出力信号はそれぞれの専用アドレスを用いて順次読み出す必要があるが、ソフトウェアで比較することには、出力信号のうち特定のビットだけを比較するなど、必要に応じて柔軟に対応できるというメリットがある。
【００９９】
さらに、上述の実施形態では、ＣＰＵは、システムバス１７に接続された内部モジュールであるとしたが、本発明はこれに限られるものではなく、例えば、システムバス１７を半導体装置の外部へ引き出し、そこへ汎用のＣＰＵまたはコンピュータなどを接続し、上述のＣＰＵモジュールと同様に、ＩＰｓの動作テストや初期値設定を行うことができる。
【０１００】
【発明の効果】
以上説明したように本発明によれば、複数の機能マクロを同時に選択し、選択した機能マクロに同一の処理を並列に実行させることが容易にできるので、半導体装置の処理時間を大幅に短縮することができる。
【図面の簡単な説明】
【図１】本発明の実施形態に係わる半導体装置を示す回路ブロック図。
【図２】本発明の実施形態に係わる半導体装置の制御方法を示すフロー図。
【図３】本発明の実施形態に係わる半導体装置のアドレス割り付けを示すアドレスマップ。
【符号の説明】
１１  機能マクロＡ
１２  機能マクロＢ
１３  アドレスデコーダ
１４  マルチプレクサ
１５  コンパレータ
１６  エラー信号マルチプレクサ
１７  システムバス
１８  パッドＡ
１９  パッドＢ
２０  上位アドレス
２１  選択信号Ａ
２２  選択信号Ｂ
２３  下位アドレス
２４、２５  入力信号
２６、２７  出力信号Ａ
２８  エラー信号Ａ
２９  シリアルデータＡ
３０、３１  出力信号Ｂ
３２  エラー信号Ｂ
３３  シリアルデータＢ
３４、３５  出力信号
３６  判定信号
３７  エラー割込み信号
４１  待機ステップ
４２  アドレス設定ステップ
４３  アクセスステップ
４４  処理判定ステップ
４５  終了判定ステップ
４６  割り込み処理ステップ
５１、５５、５９  データレジスタ
５２、５６、６０  コマンドレジスタ
５３、５７、６１  フラグレジスタ
５４、５８  マクロＩＤ
【図１】
2004362157.tif 000003
【図２】
2004362157.tif 000004
【図３】
2004362157.tif 000005