JP2004362157A - Semiconductor device, address assignment method thereof, and control method of semiconductor device - Google Patents

Semiconductor device, address assignment method thereof, and control method of semiconductor device Download PDF

Info

Publication number
JP2004362157A
JP2004362157A JP2003158337A JP2003158337A JP2004362157A JP 2004362157 A JP2004362157 A JP 2004362157A JP 2003158337 A JP2003158337 A JP 2003158337A JP 2003158337 A JP2003158337 A JP 2003158337A JP 2004362157 A JP2004362157 A JP 2004362157A
Authority
JP
Japan
Prior art keywords
address
output
semiconductor device
function
signal
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
Application number
JP2003158337A
Other languages
Japanese (ja)
Inventor
Yoshihiro Ichikawa
芳弘 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003158337A priority Critical patent/JP2004362157A/en
Publication of JP2004362157A publication Critical patent/JP2004362157A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

【課題】複数の機能マクロを同時に選択し、動作させることができる半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法を実現する。
【解決手段】本発明の半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法は、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、それらに対応した複数の選択信号出力を備え、共通アドレスを受信した場合に、複数の選択信号出力のうち少なくとも2つを同時に活性化し、複数の機能マクロのうち少なくとも2つを同時に選択する選択手段を有することを特徴とし、共通アドレスにアクセスすることで、複数の機能マクロを並列に動作させ、半導体装置の処理時間を短縮することができる。
【選択図】 図1
A semiconductor device capable of simultaneously selecting and operating a plurality of function macros, an address assignment method thereof, and a control method of the semiconductor device are realized.
A semiconductor device, an address assignment method thereof, and a control method of a semiconductor device according to the present invention have a plurality of function macros which have the same main configuration and generate the same output signal with respect to a predetermined input signal. And selecting means for simultaneously activating at least two of the plurality of selection signal outputs and simultaneously selecting at least two of the plurality of function macros when a common address is received. By accessing a common address, a plurality of function macros can be operated in parallel, and the processing time of the semiconductor device can be reduced.
[Selection diagram] Fig. 1

Description

【0001】
【発明の属する技術分野】
本発明は、複数の機能マクロを搭載する半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法に関する。
【0002】
【従来の技術】
機能マクロ、例えば、IP(Intellectual Property)を有する従来の半導体装置では、出荷前の最終テストで機能マクロのテストを実行する必要がある。これには、実際にユーザが使用する場合のシステム動作を想定し、これに則して各機能マクロのテストプログラムを作成し、これらを順次実行させる方法が用いられている。
【0003】
近年は、システム全体が複雑化し、すべての組合せをテストすることは現実的ではないため、このテストプログラムの完成度が半導体装置の動作保証の信頼性に大きく影響するようになっている。
【0004】
さらに、半導体プロセスにおける微細化の飛躍的な進展に伴ってSOC(System on Chip)が登場し、1チップに多数の機能マクロが搭載されるようになったため、このようなテスト技術はますます重要になっている。
【0005】
ところで、上述のようなテスト方法には、機能マクロの数だけテストプログラムを繰り返し実行するため、搭載する機能マクロの数に比例してテスト時間がかかる、という問題がある。また、出荷前の最終テストでは、システム全体の動作を保証するテストプログラムの完成度が非常に重要であり、過去の問題事例をスクリーニングする目的で導入したテストルーチンを簡素化すると、十分な保証が困難になる恐れがある。このため、システムの複雑化に伴う搭載マクロ数の増加とあいまって、最終テストは膨大なテスト時間を必要とするようになっている。
【0006】
このため、入出力が単純な半導体装置に対しては、複数の半導体装置を同時にテストするいわゆる多個取りのテスト装置を用い、これを複数台並列に稼働し、単位時間あたりのテスト数を増やす方法が従来から採用されていた。しかし、SOCなどの多数の入出力を持つ半導体装置では、多個取りのできるテスト装置がなく、したがって、テスト装置の設置面積も含めて、この方法には膨大な設備投資が必要となっている。
【0007】
このような問題に対応するために、スキャンテストのテスト時間を短縮する方法が提案されている。すなわち、スキャンパスの一部を枝分かれさせ、その部分でのスキャンデータの入出力を並列に行うことで、テスト時間の短縮を図る方法が特許文献1に記載されている。
【0008】
しかし、スキャンテストには機能マクロの動作保証を十分には行えないという本質的な欠点がある。スキャンテストはもともと部分回路ロジックの検証や配線の接続不良、つまり、配線のオープンやショートを検出することが目的であり、上述したような最終テストでの半導体装置のスクリーニングには向いていないテスト方法である。特に、機能マクロの動作を保証するためには、スキャンテストでは不十分で、蓄積されたテストルーチンによる動作テストが必須である。
【0009】
近年は上述したようにシステムがより複雑化する傾向にあり、この最終テストでの動作保証にかかるテスト時間の短縮が重要な課題となっている。
【0010】
【特許文献1】
特開2002−196045号公報
【0011】
【発明が解決しようとする課題】
上述のごとく、従来は、テストプログラムを繰り返し順次実行させて搭載している複数の機能マクロの動作テストを行うため、出荷前の最終テストで膨大なテスト時間を必要とするという問題があった。
【0012】
本発明は、上記問題点を解決するためになされたもので、複数の機能マクロのテストを短時間で行うことができる半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法を提供することを目的とする。
【0013】
【課題を解決するための手段】
本発明の一態様によれば、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、予め定められたアドレスを受信した場合に、前記複数の機能マクロのうち少なくとも2つを同時に選択する選択手段を備え、前記選択された機能マクロにおいて同一の処理が並列に実行されることを特徴とする半導体装置が提供される。
【0014】
また、本発明の一態様によれば、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、前記機能マクロを選択する選択手段を備えた半導体装置のアドレス割り付け方法であって、前記選択手段が前記複数の機能マクロのうち少なくとも2つを同時に選択するように、予め定められた共通アドレスに前記複数の機能マクロを割り付け、前記共通アドレスを受信することにより、前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置のアドレス割り付け方法が提供される。
【0015】
さらに、本発明の一態様によれば、主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、前記機能マクロを選択する選択手段を備えた半導体装置の制御方法であって、前記選択手段が前記複数の機能マクロのうち少なくとも2つを同時に選択するような予め定められた共通アドレスを前記選択手段に供給するアドレス設定ステップと、前記選択された機能マクロの前記共通アドレスによって特定されるレジスタからのデータ読み出し、または、当該レジスタへのデータ書き込みを行うアクセスステップを有し、前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置の制御方法が提供される。
【0016】
【発明の実施の形態】
以下、図面を参照しながら本発明に係わる半導体装置、そのアドレス割り付け方法、および半導体装置の制御方法の実施の形態(以下、「実施形態」という。)を説明する。
【0017】
図1は、本発明の実施形態に係わる半導体装置を示す回路ブロック図である。ここでは、主に、主な構成が同じ複数の機能マクロとそれらを同時に動作させる手段にかかわる部分を示した。
【0018】
本発明の実施形態に係わる半導体装置は、主な構成が同じ機能マクロA11および機能マクロB12(以下、それぞれ「IP−A11」、「IP−B12」という。さらに、IP−A11およびIP−B12をまとめて「IPs」という。)、IPsを選択するアドレスデコーダ13(以下、「DEC13」という。)、IPsからの出力信号を受信しいずれかを選択して出力するマルチプレクサ14(以下、「MUX14」という。)、IPsからの出力信号を受信しそれらを比較して一致または不一致を判定するコンパレータ15(以下、「CMP15」という。)、エラー割り込みを発生するエラー信号マルチプレクサ16(以下、「ErMX16」という。)、およびCPU(図には示していない。)を接続可能なシステムバス17を有している。
【0019】
DEC13は、システムバス17から上位アドレス20を受信し、IP−A11へ選択信号A21(以下、「Sel−A21」という。)を出力し、IP−B12へ選択信号B22(以下、「Sel−B22」という。)を出力する。
【0020】
IP−A11は、DEC13からのSel−A21の他に、システムバス17から入力信号である下位アドレス23、リードライト信号24(以下、「RW24」という。)、およびライトデータ25(以下、「WrD25」という。)を受信し、出力信号であるリードデータA26(以下、「RdD−A26」という。)と応答信号A27(以下、「Ack−A27」という。)、およびエラー出力であるエラー信号A28(以下、「Err−A28」という。)を出力する。
【0021】
また、IP−A11は、半導体装置の外部との間でパッドA18を介してシリアルデータA29を入出力する。
【0022】
IP−B12は、DEC13からのSel−B22の他に、システムバス17から入力信号である下位アドレス23、RW24、およびWrD25を受信し、出力信号であるリードデータB30(以下、「RdD−B30」という。)と応答信号B31(以下、「Ack−B31」という。)、およびエラー出力であるエラー信号B32(以下、「Err−B32」という。)を出力する。
【0023】
また、IP−B12は、半導体装置の外部との間でパッドB19を介してシリアルデータB33を入出力する。
【0024】
MUX14は、システムバス17からの上位アドレス20と、IP−A11の出力信号であるRdD−A26およびAck−A27と、IP−B12の出力信号であるRdD−B30およびAck−B31とを受信し、出力信号としてリードデータ34(以下、「RdD34」という。)と応答信号35(以下、「Ack35」という。)をシステムバス17へ出力する。
【0025】
CMP15は、IP−A11の出力信号であるRdD−A26およびAck−A27と、IP−B12の出力信号であるRdD−B30およびAck−B31とを受信し、その一致または不一致を示す判定信号36(以下、「Err−M36」という。)を出力する。
【0026】
ErMX16は、システムバス17からの上位アドレス20と、CMP15からのErr−M36と、IP−A11からのErr−A28と、IP−B12からのErr−B32とを受信し、CPUへの割り込みを発生させるエラー割込み信号37(以下、「Error37」という。)をシステムバス17へ出力する。
【0027】
システムバス17は、32bit幅のアドレスバス、RW24やAck35、Error37などを含むコントロールバス、およびRdD34とWrD25からなるデータバスを備え、CPUを接続してIPsを制御できるようになっている。
【0028】
32bitのアドレスは、上位20bit([31:12])を上位アドレス20として使用し、下位12bit([11:0])を下位アドレス23として使用する。後述するように、上位アドレス20はIPsを識別するために用いられ、下位アドレス23は各IPs内のアドレスとして用いられている。
【0029】
WrD25はIPsへ書き込まれるデータであり、RdD34はIPsから読み出されたデータである。RW24は、IPsからの読み出しまたはIPsへの書き込みを制御する信号であり、RW24=“1”で読み出しを意味し、RW24=“0“で書き込みを意味している。
【0030】
すなわち、RW24=“1”の時は、上位アドレス20で指定されたIPsに対して下位アドレス23で指定されたレジスタからデータが読み出され、システムクロックに同期してそのデータがRdD34に出力される。RW24=“0“の時は、上位アドレス20で指定されたIPsに対して下位アドレス23で指定されたレジスタへシステムクロックに同期してWrD25が書き込まれる。
【0031】
Ack35は、CPUからのコマンド受付が可能な状態を示すIPsの応答信号であり、“1”の時にIPsはコマンド受付が可能であり、“0”の時にIPsは処理中であることを示している。
【0032】
以下、特に断らない限り、制御信号は正論理とする。
【0033】
Error37は、IPsでの致命的な処理エラーなどか発生した時にこれをCPUへ知らせる割り込み信号である。
【0034】
DEC13は、システムバス17から受信した上位アドレス20の値に従って、IPsを選択するSel−A21およびSel−B22を出力する。すなわち、上位アドレス20が{C0000}であれば、Sel−A21に“1”、Sel−B22に“0“を出力し、IP−A11を選択する。(以下、アドレスの値は16進数を用いて{C0000}のように表わす。また、アドレスマップの詳細は後述する。)
【0035】
また、上位アドレス20が{C0001}であれば、Sel−A21に“0”、Sel−B22に“1”を出力し、IP−B12を選択する。さらに、上位アドレス20が{C000F}であれば、Sel−A21に“1”、Sel−B22に“1”を出力し、IP−A11およびIP−B12の両方を同時に選択する。
【0036】
IP−A11は、半導体装置外部との間でシリアルデータA29の入出力を行うシリアル入出力モジュールであり、シリアル入出力端子が専用のパッドA18に接続されている。また、IP−A11は、下位アドレス23で識別されるデータレジスタ、コマンドレジスタ、フラグレジスタ、およびマクロIDを持ち、これらのレジスタ群を介してCPUからデータおよび処理コマンドを受信し、また、コマンドの処理結果をCPUへ出力する。
【0037】
データレジスタは、シリアルデータA29として入出力するデータなどのCPUとの受渡しに使用される。また、コマンドレジスタは、IP−A11が実行する処理コマンドをCPUが書き込むレジスタであり、フラグレジスタは、その処理結果などを示すフラグビットの集まりである。
【0038】
これらレジスタ群からの読み出しは次のように行われる。まず、Ack−A27が調べられ、これが“1”であれば、下位アドレス23に従ってレジスタが選択される。次に、RW24に“1”が与えられ、システムクロックに同期してRdD−A26が出力される。
【0039】
同様にして、レジスタ群への書き込みは次のように行われる。まず、Ack−A27が調べられ、これが“1”であれば、下位アドレス23に従ってレジスタが選択される。次に、RW24に“0”が与えられ、システムクロックに同期して、選択されたレジスタにWrD25が書き込まれる。
【0040】
なお、マクロIDはIPsを識別するための識別コードを保持しており、読み出し専用となっている。
【0041】
IP−B12は、シリアル入出力端子が専用のパッドB19に接続されている点と、マクロIDが保持する識別コードがIP−A11とは異なることを除けば、その構成、動作はIP−A11と同じである。
【0042】
MUX14は、システムバス17から受信した上位アドレス20の値に従って、IP−A11の出力信号であるRdD−A26、Ack−A27と、IP−B12の出力信号であるRdD−B30、Ack−B31のいずれかの信号セットを選択し、出力信号RdD34およびAck35としてシステムバス17へ出力する。
【0043】
すなわち、上位アドレス20が{C0000}であれば、IP−A11の出力信号を選択し、上位アドレス20が{C0001}であれば、IP−B12の出力信号を選択して出力する。また、上位アドレス20が、{C000F}であれば、IP−A11の出力を選択して出力する。上述したように、IP−A11およびIP−B12は主な構成が同じで同じ動作をするので、両方が同時に選択された場合、処理エラーが発生しない限り、同じ入力信号に対しては出力信号も同じになる。
【0044】
CMP15は、IP−A11の出力信号であるRdD−A26、Ack−A27と、IP−B12の出力信号であるRdD−B30、Ack−B31をそれぞれ比較し、これらがすべて一致していれば、Err−M36に“0”を出力し、1つでも異なっていれば、CPUに対して割り込みを発生させるためにErr−M36に“1”を出力する。
【0045】
ErMX16は、システムバス17から受信した上位アドレス20の値に従って、Err−A28、Err−B32、およびErr−M36を論理演算してError37としてシステムバス17へ出力する。すなわち、上位アドレス20が{C0000}であれば、Err−A28を選択し、上位アドレス20が{C0001}であれば、Err−B32を選択して出力する。また、上位アドレス20が{C000F}であれば、Err−M36とErr−A28の論理和を出力する。
【0046】
次に、上述した構成を持つ半導体装置の制御方法について説明する。図2は、本発明の実施形態に係わる半導体装置の制御方法を示すフロー図である。ここでは、主に、システムバス17にCPUモジュールを接続してIPsを同時に動作させ、IPsの動作テストを効率良く行うための制御フローを示した。
【0047】
本発明の実施形態に係わる半導体装置の制御方法は、IPsの処理終了を待つ待機ステップ41、IPsを指定するアドレス設定ステップ42、レジスタのリードライトを行うアクセスステップ43、IPsでの処理状況を確認する処理判定ステップ44、終了判定ステップ45、および、割り込み処理ステップ46とから構成される。
【0048】
待機ステップ41では、CPUは、IPsがコマンド受付可能な状態になるまで待機する。すなわち、Ack35が“0”の間、IPsはビジー状態であり、CPUは定期的にAck35をモニターしながら待機する。そして、Ack35が“1”になりIPsがコマンド受付可能な状態になったら、CPUは次のアドレス設定ステップ42へ移行する。
【0049】
アドレス設定ステップ42では、CPUは、共通アドレスとして{C000F}(アドレスマップの詳細は後述する。)を上位アドレス20へ出力する。この共通アドレスにより、DEC13はIP−A11およびIP−B12の両方を選択し、MUX14はIP−A11の出力信号であるRdD−A26およびAck−A27を出力信号RdD34およびAck35としてシステムバス17へ出力するように設定される。
【0050】
また、ErMX16は、CMP15からのErr−M36とIP−A11からのErr−A28との論理和を割り込み信号Error37としてシステムバス17へ出力するように設定される。
【0051】
また、上位アドレス20と同時にCPUから出力される下位アドレス23により、IPsは、レジスタがWrD25からデータを受信し、RdD34へデータを出力するよう設定される。アドレスの出力が済むとCPUは次のアクセスステップ43へ移行する。
【0052】
アクセスステップ43は、アドレス設定ステップ42で指定されたレジスタに実際にアクセスするステップである。例えば、レジスタへ書き込みをする場合、CPUは、アドレス設定ステップ42でアクセスするレジスタのアドレス、データレジスタなら{000}を下位アドレス23に出力する。
【0053】
次に、アクセスステップ43でデータレジスタに書き込むべきデータをWrD25へ出力し、RW24を“0”にする。実際の書き込みはシステムクロックに同期して行われ、IP−A11およびIP−B12の両方のデータレジスタに同時に同じデータが書き込まれる。
【0054】
同様に、読み出しを行う場合、CPUは、アクセスステップ43でまずRW24を“1”にし、次のシステムクロックに同期してRdD34からデータを受信する。この時、MUX14にはアドレス設定ステップ42で共通アドレスが与えられているので、RdD34にはRdD−A26が出力されており、CPUはIP−A11のデータレジスタの値を読み取ることになるが、IPsは、エラーが発生しない限り、すべて同じ出力信号を出力しているので、問題はない。IPsへのアクセスが済むとCPUは次の処理判定ステップ44へ移行する。
【0055】
処理判定ステップ44は、アクセスステップ43で行ったIPsへのアクセスが設計どおりに正しく処理されたかを判定するステップである。すなわち、アクセスステップ43で読み出しが行われた場合、CMP15でIPsからの出力信号が比較され、その一致または不一致が判定される。
【0056】
比較結果が不一致である場合には、CMP15はErr−M36に“1”を出力し、ErMX16を介してCPUへ割り込み信号であるError37を送出する。これを受けてCPUは割り込み処理ステップ46へ移行する。
【0057】
また、処理判定ステップ44では、CPUは、IPsのフラグレジスタを読出し、それらの値が正しいことを確認する。具体的な方法は、フラグレジスタを指定する{008}を下位アドレス23に出力することを除けば、アクセスステップ43のデータ読み出しと同じである。
【0058】
つまり、アクセスステッブと同様に、CMP15は必要に応じてError37をCPUへ送出し、これを受けてCPUは割り込み処理ステップ46へ移行する。CMP15での比較結果が一致の場合でも、IPsでの処理が正しく行われないこともありうる。
【0059】
この場合は、IP−A11からのErr−A28によって割り込みがかけられ、フラグレジスタの値を調べることで確認できる。設計通りに正しくエラーを発生する場合を除けば、これは、設計に問題があるか、テストルーチンにバグがあることを意味している。このような場合(“NG”)、CPUはテストルーチンを異常終了させる。ただし、開発が終了し量産段階に至った半導体装置の出荷前テスト、いわゆるスクリーニングテストなどに適用する場合には、個別のIPsでの不具合によるCMP15での不一致を除き、このような“NG”が起こる可能性はほとんどないので、フラグレジスタを調べる部分は省略しても差し支えない。
【0060】
さらに、処理判定ステップ44では、各IPsで固有の出力、つまり、シリアルデータA29およびシリアルデータB33も判定される。すなわち、例えば、アクセスステップ43でシリアル出力の処理コマンドがコマンドレジスタに書き込まれた場合には、パッドA18およびパッドB19に接続された外部テスト装置により、シリアルデータA29およびシリアルデータB33の出力が設計どおりであるかが確認される。この結果が“NG”である場合は、CPUはテストルーチンを異常終了させる。
【0061】
上述したような不具合が発生しなければ(“OK”)、CPUは終了判定ステップ45へ移行する。
【0062】
終了判定ステップ45では、必要なテストがすべて終了した時(“Yes”)に、CPUはテストルーチンを正常終了する。まだテストが残っている場合(“No”)には、CPUは待機ステップ41へ移行し次の処理サイクルに入る。
【0063】
処理判定ステップ44でCMP15からのError37が発生すると、CPUは割り込み処理ステップ46へ移行する。ここでは、個別のIPsごとのアドレスを上位アドレス20へ出力し、各IPsのフラグレジスタを読み出し、どのIPsがエラーの原因となったかを調べ、その情報を外部に通知してテストルーチンを終了する。
【0064】
このようにして、CPUは、複数のIPsを同時に動作テストすることができる。
【0065】
次に、上述した構成を持つ半導体装置のアドレス割り付け方法について説明する。図3は、本発明の実施形態に係わる半導体装置のアドレス割り付けを示すアドレスマップである。ここでは、主に、IPsにかかわる部分のアドレスマップを示した。
【0066】
本発明の実施形態に係わる半導体装置のアドレスマップは、上位アドレス20={C0000}(以下、「専用アドレスA」という。)にIP−A11のレジスタ群が割り付けられ、上位アドレス20={C0001}(以下、「専用アドレスB」という。)にIP−B12のレジスタ群が割り付けられ、上位アドレス20={C000F}(以下、「共通アドレス」という。)にIP−A11およびIP−B12の両方のレジスタ群が多重に割り付けられている。
【0067】
専用アドレスAには、下位アドレス23={000}にIP−A11のデータレジスタであるDR−A51が割り付けられ、下位アドレス23={004}にIP−A11のコマンドレジスタであるCMD−A52が割り付けられ、下位アドレス23={008}にIP−A11のフラグレジスタであるFlag−A53が割り付けられ、下位アドレス23={FFC}にIP−A11のマクロIDであるID−A54が割り付けられている。
【0068】
ここで、下位アドレス23が4の倍数になっているのは、アドレスの割り付けがバイト単位であるのに対し、データバス幅が32ビット、つまり4バイトであることによる。
【0069】
専用アドレスBには、下位アドレス23={000}にIP−B12のデータレジスタであるDR−B55が割り付けられ、下位アドレス23={004}にIP−B12のコマンドレジスタであるCMD−B56が割り付けられ、下位アドレス23={008}にIP−B12のフラグレジスタであるFlag−B57が割り付けられ、下位アドレス23={FFC}にIP−B12のマクロIDであるID−B58が割り付けられている。
【0070】
共通アドレスには、下位アドレス23={000}にIPsのデータレジスタであるDR−M59が割り付けられ、下位アドレス23={004}にIPsのコマンドレジスタであるCMD−M60が割り付けられ、下位アドレス23={008}にIPsのフラグレジスタであるFlag−M61が割り付けられている。ここで、DR−M59はDR−A51およびDR−B55が多重に割り付けられていることを表わす仮想的なレジスタであり、CMD−M60、Flag−M61も同様である。
【0071】
すなわち、CPUが共通アドレスにアクセスした場合、上述したように、DEC13がSel−A21およびSel−B22の両方に“1”を出力し、IP−A11およびIP−B12が同時に選択されるため、両方のレジスタ群に同時に書き込み、または、両方のレジスタ群から同時に読み出しが行われる。
【0072】
なお、共通アドレスの下位アドレス23={FFC}にはマクロIDは割り付けられていない。これは、マクロIDがIPsを一意に識別する目的で使用されているためである。
【0073】
このようなアドレスマップを持つ半導体装置を用いてシリアル出力を行う一例を説明する。
【0074】
IP−A11を用いてシリアル出力を行う場合、CPUは上述した制御フロー(図2)の処理サイクルに従って、まず、シリアル出力するデータをDR−A51に書き込む。次に、シリアル出力を指示する処理コマンドをCMD−A52に書き込んでIP−A11の処理実行を起動し、待機ステップ41でその終了を待つ待機状態になる。
【0075】
ただし、開発が終了した量産段階での出荷前テストでは、図2の処理判定ステップ44における各処理サイクルごとのフラグレジスタの読み出しは行われない。シリアルデータA29の出力が終了したら、CPUは、Flag−A53を読み出して処理の実行状況を調べ、処理が要求どおりに行われたことを確認する。
【0076】
この一連の動作において、CPUはIP−A11のレジスタ群にアクセスするために上位アドレス20に{C0000}を出力しているので、MUX14およびErMX16はIP−A11からの出力信号を選択し、出力している。
【0077】
また、IP−A11での処理実行中に致命的なエラーが発生した場合は、IP−A11が出力するErr−A28がError37としてCPUに割り込みをかけるので、CPUはエラー処理ルーチンを実行することができる。
【0078】
IP−B12を用いてシリアル出力を行う場合も、IP−B12のレジスタ群にアクセスすることを除けば、IP−A11と同様である。
【0079】
次に動作テストのためにIPsを同時に動作させる場合を、シリアル出力を例に説明する。CPUは、まず、シリアル出力するデータをDR−M59に書き込む。次に、シリアル出力を指示する処理コマンドをCMD−M60に書き込んでIPsの処理実行を同時に起動し、その終了を待つ状態になる。
【0080】
シリアルデータの出力が終了したら、CPUは、Flag−M61を読み出して処理の実行状況を調べ、処理が要求どおりに行われたことを確認する。この一連の動作において、CPUは上位アドレス20として{C000F}を出力しているので、MUX14はIP−A11からの出力信号を選択出力し、ErMX16はCMP15からのErr−M36とIP−A11からのErr−A28との論理和を出力している。
【0081】
IPsが設計通りに動作していれば、それらの出力信号は全く同じ値となるので、Err−M36は“0”である。逆に、IPsでの処理実行中に何らかのエラーが発生した場合は、IPsの出力信号が異なった値となるので、Err−M36が“1”となり、Error37によってCPUに割り込みがかけられ、CPUはエラー処理ルーチンを実行することができる。
【0082】
また、IPsが設計通りに同じエラーを発生した場合には、IP−A11からのErr−A28が“1”となり、Error37によってCPUに割り込みがかけられる。
【0083】
このようにして、1回のコマンド実行で両方のIPsをテストすることができる。重要なことは、CPUが実行するプログラムは、共通アドレスにアクセスすることを除けば、従来のIPsに対するルーチンがそのまま使用できることである。つまり、過去に蓄積されたIPsのテストルーチンをほとんど変更せずに利用できるということである。
【0084】
上記実施形態によれば、複数のIPsを同時に選択し、動作させることが容易にできるので、半導体装置の動作テスト時間を大幅に短縮することができる。
【0085】
さらに、上位アドレス20の変更だけでIPsへの多重アクセスが容易に実現できるので、従来の蓄積されたテストルーチンをほとんどそのまま使用でき、テストプログラムの開発時間を大幅に削減することができるとともに、テストプログラムの信頼性、ひいては動作テストの信頼性をも損なうことがない。
【0086】
上述の実施形態では、制御信号は正論理であるとしたが、本発明はこれに限られるものではない。また、上述の実施形態では、一例として、共通アドレスにアクセスすることによって動作テストを行う方法を示したが、本発明はこれに限られるものではなく、例えば、複数のIPsに同時に初期値を設定する場合にも適用することができる。その場合、出荷前動作テストでIPsが正しく動作することが確認されていれば、CMP15による出力信号の比較判定は必ずしも必要ではない。
【0087】
さらに、上述の実施形態では、IPsは2つのシリアル入出力マクロであるとしたが、本発明はこれに限られるものではなく、主な構成が同じで所定の入力信号に対して同じ出力信号を生成する機能マクロであれば、その数や機能は限定されない。
【0088】
その場合、共通アドレスのアドレス空間に割り付けられるレジスタ群(以下、これらをまとめて「共通レジスタ」という。)の種類や順序が上述した実施形態と異なるものとなることはいうまでもない。本発明は、複数の機能マクロを有するシステムLSIなどに広く適用することができる。
【0089】
さらに、多重アクセスされるIPsの中に他とは異なる付加機能、付加レジスタなどを有するものがあってもよい。原理的には、多重アクセスされるIPsが、それらに共通する機能、レジスタを有していれば、その部分について本発明を適用することができる。
【0090】
例えば、その機能マクロに固有のレジスタ(以下、「固有レジスタ」という。)は、上述したマクロIDのように、共通アドレスのアドレス空間には割り付けないようにし、同時に動作させるIPsに共通するレジスタだけを共通レジスタとして割り付けるようにすれば良い。
【0091】
また、逆に、固有レジスタも共通アドレスのアドレス空間に割り付け、CPUがそこをアクセスした時は、その機能マクロだけが動作するように設定することもできる。
【0092】
さらに、共通レジスタへ入力可能なすべての組合せに対して、多重アクセスされるIPsがすべて同じ出力信号を生成する必要はない。原理的には、同じ出力信号を生成する入力信号のサブセットに対して本発明を適用し、それらの入力信号に対してだけ共通アドレスを用いた並列動作をさせるように設定することができる。
【0093】
さらに、上述の実施形態では、共通アドレスは1つとしたが、本発明はこれに限られるものではなく、IPsを機能、動作が類似の複数のグループに分け、それぞれに共通アドレスを設けることもできる。この場合、DEC13はそれぞれの共通アドレスに対応するグループに属するIPsへの選択信号を同時に活性化することになる。
【0094】
重要なことは、1つの共通アドレスでアクセスされるあるグループに属するIPsは、同じ種類のレジスタが同じ下位アドレス23に割り付けられているということである。さらに、このグループ分けは、排他的である必要はなく、1つのIPsが複数の共通アドレスでアクセスされるようにしてもよい。
【0095】
さらに、上述の実施形態では、上位アドレス20は20bitであるとしたが、本発明はこれに限られるものではなく、上位アドレス20と下位アドレス23のbit数は必要に応じて任意に設定してよい。
【0096】
さらに、上述の実施形態では、MUX14は、共通アドレスがアクセスされた場合、IP−A11の出力信号を選択するとしたが、本発明はこれに限られるものではなく、共通アドレスで多重にアクセスされるIPsのうちどのIPsの出力信号を選択してもよい。
【0097】
さらに、上述の実施形態では、CMP15の判定結果であるErr−M36は、ErMX16へ出力するとしたが、本発明はこれに限られるものではなく、出力バッファおよび出力パッドなどの外部出力手段を介して、半導体装置外部へ直接出力してもよい。この場合、半導体装置の良否判定はErr−M36に従って外部装置で行う。
【0098】
また、上述したCMP15と同等の機能をCPUのソフトウェアとして実装することも可能である。この場合、IPsの出力信号はそれぞれの専用アドレスを用いて順次読み出す必要があるが、ソフトウェアで比較することには、出力信号のうち特定のビットだけを比較するなど、必要に応じて柔軟に対応できるというメリットがある。
【0099】
さらに、上述の実施形態では、CPUは、システムバス17に接続された内部モジュールであるとしたが、本発明はこれに限られるものではなく、例えば、システムバス17を半導体装置の外部へ引き出し、そこへ汎用のCPUまたはコンピュータなどを接続し、上述のCPUモジュールと同様に、IPsの動作テストや初期値設定を行うことができる。
【0100】
【発明の効果】
以上説明したように本発明によれば、複数の機能マクロを同時に選択し、選択した機能マクロに同一の処理を並列に実行させることが容易にできるので、半導体装置の処理時間を大幅に短縮することができる。
【図面の簡単な説明】
【図1】本発明の実施形態に係わる半導体装置を示す回路ブロック図。
【図2】本発明の実施形態に係わる半導体装置の制御方法を示すフロー図。
【図3】本発明の実施形態に係わる半導体装置のアドレス割り付けを示すアドレスマップ。
【符号の説明】
11 機能マクロA
12 機能マクロB
13 アドレスデコーダ
14 マルチプレクサ
15 コンパレータ
16 エラー信号マルチプレクサ
17 システムバス
18 パッドA
19 パッドB
20 上位アドレス
21 選択信号A
22 選択信号B
23 下位アドレス
24、25 入力信号
26、27 出力信号A
28 エラー信号A
29 シリアルデータA
30、31 出力信号B
32 エラー信号B
33 シリアルデータB
34、35 出力信号
36 判定信号
37 エラー割込み信号
41 待機ステップ
42 アドレス設定ステップ
43 アクセスステップ
44 処理判定ステップ
45 終了判定ステップ
46 割り込み処理ステップ
51、55、59 データレジスタ
52、56、60 コマンドレジスタ
53、57、61 フラグレジスタ
54、58 マクロID
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a semiconductor device equipped with a plurality of function macros, an address assignment method thereof, and a control method of the semiconductor device.
[0002]
[Prior art]
In a conventional semiconductor device having a function macro, for example, an IP (Intellectual Property), it is necessary to execute a test of the function macro in a final test before shipment. For this, a method is used in which a system operation when the user actually uses the system is assumed, a test program for each function macro is created in accordance with the system operation, and these are sequentially executed.
[0003]
In recent years, since the entire system has become complicated and it is not practical to test all combinations, the degree of completion of the test program greatly affects the reliability of operation guarantee of the semiconductor device.
[0004]
Furthermore, with the rapid progress of miniaturization in semiconductor processes, SOC (System on Chip) has appeared and many functional macros have been mounted on one chip, so such test technology is becoming increasingly important. It has become.
[0005]
By the way, the test method as described above has a problem that a test time is increased in proportion to the number of mounted function macros because the test program is repeatedly executed by the number of function macros. Also, in the final test before shipment, the completeness of the test program that guarantees the operation of the entire system is very important, and simplifying the test routine introduced to screen past problem cases will provide sufficient assurance. It can be difficult. For this reason, the final test requires an enormous amount of test time in combination with the increase in the number of mounted macros due to the complexity of the system.
[0006]
Therefore, for a semiconductor device with simple input / output, a so-called multi-cavity test device for simultaneously testing a plurality of semiconductor devices is used, and a plurality of such devices are operated in parallel to increase the number of tests per unit time. The method has traditionally been adopted. However, in a semiconductor device having a large number of inputs and outputs such as an SOC, there is no test device capable of obtaining a large number of devices. Therefore, this method requires a huge capital investment including the installation area of the test device. .
[0007]
In order to cope with such a problem, there has been proposed a method of reducing a test time of a scan test. That is, Patent Document 1 describes a method of shortening a test time by branching a part of a scan path and performing input / output of scan data in that part in parallel.
[0008]
However, the scan test has an essential disadvantage that the operation of the function macro cannot be sufficiently guaranteed. The scan test is originally intended to verify partial circuit logic and to detect wiring connection failures, that is, open or shorted wiring, and is not suitable for screening of semiconductor devices in the final test as described above. It is. In particular, in order to guarantee the operation of the function macro, the scan test is not sufficient, and the operation test using the accumulated test routine is indispensable.
[0009]
In recent years, as described above, the system tends to be more complicated, and reducing the test time required for guaranteeing the operation in the final test is an important issue.
[0010]
[Patent Document 1]
JP-A-2002-196045
[0011]
[Problems to be solved by the invention]
As described above, conventionally, since the operation test of a plurality of function macros mounted by repeatedly and sequentially executing the test program is performed, there is a problem that an enormous test time is required for a final test before shipment.
[0012]
SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide a semiconductor device capable of testing a plurality of function macros in a short time, an address assignment method thereof, and a semiconductor device control method. Aim.
[0013]
[Means for Solving the Problems]
According to one aspect of the present invention, a plurality of function macros having the same main configuration and generating the same output signal with respect to a predetermined input signal and the plurality of function macros when a predetermined address is received. There is provided a semiconductor device comprising a selecting means for simultaneously selecting at least two of the macros, wherein the same processing is executed in parallel in the selected function macro.
[0014]
According to one embodiment of the present invention, a semiconductor device having the same main configuration and including a plurality of function macros that generate the same output signal with respect to a predetermined input signal and a selection unit that selects the function macro Address allocation method, wherein the plurality of function macros are allocated to a predetermined common address so that the selection means simultaneously selects at least two of the plurality of function macros, and the common address is received. Accordingly, there is provided an address allocation method for a semiconductor device, wherein the same processing is executed in parallel in the selected function macro.
[0015]
Further, according to one aspect of the present invention, a semiconductor device having the same main configuration and including a plurality of function macros that generate the same output signal with respect to a predetermined input signal and a selection unit that selects the function macro An address setting step of supplying a predetermined common address to the selection unit such that the selection unit simultaneously selects at least two of the plurality of function macros, and the selected function An access step of reading data from a register specified by the common address of the macro or writing data to the register, so that the same processing is executed in parallel in the selected function macro A method for controlling a semiconductor device is provided.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of a semiconductor device, an address assignment method thereof, and a control method of a semiconductor device according to the present invention (hereinafter, referred to as “embodiments”) will be described with reference to the drawings.
[0017]
FIG. 1 is a circuit block diagram illustrating a semiconductor device according to an embodiment of the present invention. Here, mainly, a portion relating to a plurality of function macros having the same main configuration and a means for operating them at the same time is shown.
[0018]
The semiconductor device according to the embodiment of the present invention has a function macro A11 and a function macro B12 (hereinafter, referred to as “IP-A11” and “IP-B12”, respectively) having the same main configuration. These are collectively referred to as “IPs”), an address decoder 13 (hereinafter, referred to as “DEC 13”) for selecting IPs, and a multiplexer 14 (hereinafter, “MUX 14”) for receiving an output signal from the IPs and selecting and outputting one of them. ), A comparator 15 (hereinafter, referred to as “CMP15”) that receives output signals from IPs and compares them to determine a match or mismatch, an error signal multiplexer 16 that generates an error interrupt (hereinafter, “ErMX16”). And a system bus 17 to which a CPU (not shown) can be connected. It has.
[0019]
The DEC 13 receives the upper address 20 from the system bus 17, outputs a selection signal A21 (hereinafter, referred to as “Sel-A21”) to the IP-A11, and outputs a selection signal B22 (hereinafter, “Sel-B22”) to the IP-B12. ").
[0020]
The IP-A11 includes, in addition to the Sel-A21 from the DEC 13, the lower address 23, the read / write signal 24 (hereinafter, referred to as "RW24"), and the write data 25 (hereinafter, referred to as "WrD25") which are input signals from the system bus 17. ), An output signal read data A26 (hereinafter referred to as “RdD-A26”), a response signal A27 (hereinafter referred to as “Ack-A27”), and an error signal A28 as an error output. (Hereinafter, referred to as “Err-A28”).
[0021]
Further, the IP-A11 inputs and outputs serial data A29 to and from the outside of the semiconductor device via the pad A18.
[0022]
The IP-B 12 receives, in addition to the Sel-B 22 from the DEC 13, the lower address 23, RW 24, and WrD 25 that are input signals from the system bus 17, and outputs read data B 30 (hereinafter, “RdD-B 30”) that is an output signal. ), A response signal B31 (hereinafter, “Ack-B31”), and an error signal B32 (hereinafter, “Err-B32”) which is an error output.
[0023]
The IP-B12 inputs and outputs serial data B33 to and from the outside of the semiconductor device via the pad B19.
[0024]
The MUX 14 receives the upper address 20 from the system bus 17, the output signals RdD-A26 and Ack-A27 of the IP-A11, and the output signals RdD-B30 and Ack-B31 of the IP-B12, The read data 34 (hereinafter, referred to as “RdD34”) and the response signal 35 (hereinafter, referred to as “Ack35”) are output to the system bus 17 as output signals.
[0025]
The CMP 15 receives the output signals RdD-A26 and Ack-A27 of the IP-A11 and the output signals RdD-B30 and Ack-B31 of the IP-B12, and determines whether the signals match or mismatch (refer to FIG. Hereinafter, “Err-M36” is output.
[0026]
The ErMX 16 receives the upper address 20 from the system bus 17, the Err-M 36 from the CMP 15, the Err-A 28 from the IP-A 11, and the Err-B 32 from the IP-B 12, and generates an interrupt to the CPU. An error interrupt signal 37 (hereinafter, referred to as “Error 37”) to be output is output to the system bus 17.
[0027]
The system bus 17 includes a 32-bit address bus, a control bus including the RW 24, the Ack 35, and the Error 37, and a data bus including the RdD 34 and the WrD 25. The system bus 17 is connected to a CPU to control IPs.
[0028]
For the 32-bit address, the upper 20 bits ([31:12]) are used as the upper address 20, and the lower 12 bits ([11: 0]) are used as the lower address 23. As described later, the upper address 20 is used to identify IPs, and the lower address 23 is used as an address in each IPs.
[0029]
WrD25 is data written to IPs, and RdD34 is data read from IPs. RW24 is a signal for controlling reading from IPs or writing to IPs. RW24 = "1" means reading, and RW24 = "0" means writing.
[0030]
That is, when RW24 = "1", data is read from the register specified by the lower address 23 for the IPs specified by the upper address 20, and the data is output to the RdD 34 in synchronization with the system clock. You. When RW24 = "0", WrD25 is written to the register specified by the lower address 23 for the IPs specified by the upper address 20 in synchronization with the system clock.
[0031]
Ack35 is a response signal of IPs indicating that a command can be received from the CPU. When "1", the IPs can receive the command, and when "0", the IPs indicate that the IPs are being processed. I have.
[0032]
Hereinafter, the control signal is positive logic unless otherwise specified.
[0033]
The Error 37 is an interrupt signal for notifying the CPU when a fatal processing error in IPs occurs.
[0034]
The DEC 13 outputs Sel-A21 and Sel-B22 for selecting IPs according to the value of the upper address 20 received from the system bus 17. That is, if the upper address 20 is {C0000}, "1" is output to Sel-A21 and "0" is output to Sel-B22 to select IP-A11. (Hereinafter, the value of the address is represented by hexadecimal notation, such as {C0000}. The details of the address map will be described later.)
[0035]
If the upper address 20 is {C0001}, "0" is output to Sel-A21 and "1" is output to Sel-B22 to select IP-B12. Further, if the upper address 20 is {C000F}, “1” is output to Sel-A21 and “1” is output to Sel-B22, and both IP-A11 and IP-B12 are selected simultaneously.
[0036]
The IP-A11 is a serial input / output module that inputs and outputs serial data A29 to and from the outside of the semiconductor device, and has a serial input / output terminal connected to a dedicated pad A18. Further, the IP-A 11 has a data register, a command register, a flag register, and a macro ID identified by the lower address 23, receives data and a processing command from the CPU through these register groups, and The processing result is output to the CPU.
[0037]
The data register is used to transfer data input and output as serial data A29 to and from the CPU. The command register is a register in which the CPU writes a processing command to be executed by the IP-A 11, and the flag register is a set of flag bits indicating the processing result and the like.
[0038]
Reading from these register groups is performed as follows. First, Ack-A 27 is checked. If this is “1”, a register is selected according to the lower address 23. Next, "1" is given to the RW 24, and the RdD-A 26 is output in synchronization with the system clock.
[0039]
Similarly, writing to the register group is performed as follows. First, Ack-A 27 is checked. If this is “1”, a register is selected according to the lower address 23. Next, "0" is given to RW24, and WrD25 is written to the selected register in synchronization with the system clock.
[0040]
The macro ID holds an identification code for identifying IPs, and is read-only.
[0041]
The configuration and operation of the IP-B12 are the same as those of the IP-A11 except that the serial input / output terminal is connected to the dedicated pad B19 and the identification code held by the macro ID is different from the IP-A11. Is the same.
[0042]
According to the value of the upper address 20 received from the system bus 17, the MUX 14 selects one of the output signals RdD-A26 and Ack-A27 of the IP-A11 and the output signal RdD-B30 and Ack-B31 of the IP-B12. These signal sets are selected and output to the system bus 17 as output signals RdD34 and Ack35.
[0043]
That is, if the upper address 20 is {C0000}, the output signal of the IP-A11 is selected, and if the upper address 20 is {C0001}, the output signal of the IP-B12 is selected and output. If the upper address 20 is {C000F}, the output of the IP-A11 is selected and output. As described above, since the main configurations of the IP-A11 and the IP-B12 are the same and operate in the same manner, if both are selected at the same time, the output signal is not changed for the same input signal unless a processing error occurs. Will be the same.
[0044]
The CMP 15 compares the output signals RdD-A26 and Ack-A27 of the IP-A11 with the output signals RdD-B30 and Ack-B31 of the IP-B12, and if all of them match, Err "0" is output to -M36, and if even one is different, "1" is output to Err-M36 to generate an interrupt to the CPU.
[0045]
The ErMX 16 performs a logical operation on Err-A 28, Err-B 32, and Err-M 36 according to the value of the upper address 20 received from the system bus 17 and outputs the result to the system bus 17 as an Error 37. That is, if the upper address 20 is {C0000}, Err-A28 is selected, and if the upper address 20 is {C0001}, Err-B32 is selected and output. If the upper address 20 is {C000F}, the logical sum of Err-M36 and Err-A28 is output.
[0046]
Next, a control method of the semiconductor device having the above-described configuration will be described. FIG. 2 is a flowchart showing a method for controlling the semiconductor device according to the embodiment of the present invention. Here, a control flow for connecting a CPU module to the system bus 17 to simultaneously operate IPs and efficiently perform an IPs operation test has been described.
[0047]
The control method of the semiconductor device according to the embodiment of the present invention includes a waiting step 41 for waiting for the end of processing of IPs, an address setting step 42 for designating IPs, an access step 43 for reading / writing a register, and checking a processing status in IPs. This is composed of a process determining step 44, an end determining step 45, and an interrupt processing step 46.
[0048]
In the standby step 41, the CPU waits until the IPs becomes ready to receive a command. That is, while Ack35 is "0", the IPs are busy, and the CPU waits while monitoring Ack35 periodically. When the Ack 35 becomes “1” and the IPs are ready to receive a command, the CPU proceeds to the next address setting step 42.
[0049]
In the address setting step 42, the CPU outputs {C000F} (the details of the address map will be described later) to the upper address 20 as a common address. With this common address, the DEC 13 selects both the IP-A11 and the IP-B12, and the MUX 14 outputs the output signals RdD-A26 and Ack-A27 of the IP-A11 to the system bus 17 as output signals RdD34 and Ack35. It is set as follows.
[0050]
The ErMX 16 is set so as to output the logical sum of the Err-M 36 from the CMP 15 and the Err-A 28 from the IP-A 11 as an interrupt signal Error 37 to the system bus 17.
[0051]
The IPs are set so that the register receives the data from the WrD 25 and outputs the data to the RdD 34 by the lower address 23 output from the CPU simultaneously with the upper address 20. When the output of the address is completed, the CPU proceeds to the next access step 43.
[0052]
The access step 43 is a step of actually accessing the register specified in the address setting step 42. For example, when writing to a register, the CPU outputs the address of the register to be accessed in the address setting step 42 or {000} to the lower address 23 if it is a data register.
[0053]
Next, in access step 43, data to be written to the data register is output to WrD25, and RW24 is set to "0". Actual writing is performed in synchronization with the system clock, and the same data is simultaneously written to both the IP-A11 and the IP-B12 data registers.
[0054]
Similarly, when performing reading, the CPU first sets the RW 24 to “1” in the access step 43 and receives data from the RdD 34 in synchronization with the next system clock. At this time, since the common address is given to the MUX 14 in the address setting step 42, the RdD-A26 is output to the RdD34, and the CPU reads the value of the data register of the IP-A11. Output the same output signal unless an error occurs, so there is no problem. When the access to the IPs is completed, the CPU proceeds to the next processing determination step 44.
[0055]
The processing determination step 44 is a step of determining whether the access to the IPs performed in the access step 43 has been correctly processed as designed. That is, when reading is performed in the access step 43, the output signals from the IPs are compared by the CMP 15 and it is determined whether the output signals match or mismatch.
[0056]
If the comparison results are inconsistent, the CMP 15 outputs “1” to the Err-M 36 and sends an error signal 37 as an interrupt signal to the CPU via the ErMX 16. In response to this, the CPU proceeds to the interrupt processing step 46.
[0057]
In the processing determination step 44, the CPU reads the IPs flag register and confirms that the values are correct. The specific method is the same as the data reading in the access step 43 except that {008} designating the flag register is output to the lower address 23.
[0058]
That is, similarly to the access step, the CMP 15 sends the Error 37 to the CPU as needed, and the CPU shifts to the interrupt processing step 46 in response to this. Even when the comparison results in the CMP 15 match, the processing in the IPs may not be performed correctly.
[0059]
In this case, an interrupt is generated by Err-A28 from IP-A11 and can be confirmed by checking the value of the flag register. This means that there is a problem in the design or a bug in the test routines, except when errors are generated correctly as designed. In such a case (“NG”), the CPU abnormally ends the test routine. However, when applied to a pre-shipment test of a semiconductor device whose development has been completed and has reached the mass production stage, that is, a so-called screening test, such “NG” is excluded except for a mismatch in the CMP 15 due to a defect in individual IPs. Since it is unlikely that this will happen, the part that checks the flag register can be omitted.
[0060]
Further, in the process determination step 44, the output unique to each IPs, that is, the serial data A29 and the serial data B33 is also determined. That is, for example, when a serial output processing command is written in the command register in the access step 43, the output of the serial data A29 and the serial data B33 is as designed by an external test device connected to the pads A18 and B19. Is confirmed. If the result is "NG", the CPU abnormally ends the test routine.
[0061]
If the above-described problem does not occur (“OK”), the CPU proceeds to the end determination step 45.
[0062]
In the end determination step 45, when all necessary tests have been completed ("Yes"), the CPU normally ends the test routine. If the test still remains ("No"), the CPU proceeds to the standby step 41 and enters the next processing cycle.
[0063]
When an error 37 from the CMP 15 occurs in the processing determination step 44, the CPU proceeds to an interrupt processing step 46. Here, the address for each individual IPs is output to the upper address 20, the flag register of each IPs is read, which IPs has caused an error, the information is notified to the outside, and the test routine ends. .
[0064]
In this way, the CPU can simultaneously test the operation of a plurality of IPs.
[0065]
Next, an address assignment method for the semiconductor device having the above-described configuration will be described. FIG. 3 is an address map showing address assignment of the semiconductor device according to the embodiment of the present invention. Here, an address map of a portion related to IPs is mainly shown.
[0066]
In the address map of the semiconductor device according to the embodiment of the present invention, the register group of the IP-A11 is allocated to the upper address 20 = {C0000} (hereinafter, referred to as “dedicated address A”), and the upper address 20 = {C0001}. (Hereinafter, referred to as “dedicated address B”), a register group of IP-B12 is allocated, and upper address 20 = {C000F} (hereinafter, referred to as “common address”) of both IP-A11 and IP-B12. Register groups are assigned multiple times.
[0067]
To the dedicated address A, DR-A51 which is a data register of IP-A11 is allocated to lower address 23 = {000}, and CMD-A52 which is a command register of IP-A11 is allocated to lower address 23 = {004}. Flag-A53, which is a flag register of IP-A11, is allocated to lower address 23 = {008}, and ID-A54, which is a macro ID of IP-A11, is allocated to lower address 23 = {FFC}.
[0068]
Here, the reason why the lower address 23 is a multiple of 4 is that the address allocation is in units of bytes, whereas the data bus width is 32 bits, that is, 4 bytes.
[0069]
For the dedicated address B, DR-B55 which is a data register of IP-B12 is allocated to lower address 23 = {000}, and CMD-B56 which is a command register of IP-B12 is allocated to lower address 23 = {004}. Flag-B57 which is a flag register of IP-B12 is allocated to lower address 23 = {008}, and ID-B58 which is a macro ID of IP-B12 is allocated to lower address 23 = {FFC}.
[0070]
To the common address, DR-M59 which is a data register of IPs is assigned to lower address 23 = {000}, CMD-M60 which is a command register of IPs is assigned to lower address 23 = {004}, and lower address 23 is assigned. Flag-M61, which is a flag register of IPs, is assigned to {008}. Here, DR-M59 is a virtual register indicating that DR-A51 and DR-B55 are multiplexed, and the same applies to CMD-M60 and Flag-M61.
[0071]
That is, when the CPU accesses the common address, as described above, the DEC 13 outputs “1” to both the Sel-A21 and the Sel-B22, and the IP-A11 and the IP-B12 are simultaneously selected. , Or read from both register groups simultaneously.
[0072]
Note that no macro ID is assigned to the lower address 23 = {FFC} of the common address. This is because the macro ID is used for the purpose of uniquely identifying IPs.
[0073]
An example of performing serial output using a semiconductor device having such an address map will be described.
[0074]
When serial output is performed using the IP-A11, the CPU first writes data to be serially output to the DR-A51 according to the processing cycle of the above-described control flow (FIG. 2). Next, a processing command for instructing serial output is written into the CMD-A 52 to start the processing of the IP-A 11, and the processing enters a standby state of waiting for its termination in a standby step 41.
[0075]
However, in the pre-shipment test at the stage of mass production after the development is completed, reading of the flag register for each processing cycle in the processing determination step 44 of FIG. 2 is not performed. When the output of the serial data A29 is completed, the CPU reads the Flag-A53, checks the execution status of the process, and confirms that the process has been performed as requested.
[0076]
In this series of operations, the CPU outputs {C0000} to the upper address 20 in order to access the register group of the IP-A11. Therefore, the MUX 14 and the ErMX16 select and output the output signal from the IP-A11. ing.
[0077]
Further, when a fatal error occurs during the execution of the processing in the IP-A11, the Err-A28 output from the IP-A11 interrupts the CPU as the Error37, so that the CPU may execute the error processing routine. it can.
[0078]
The case of performing serial output using the IP-B12 is the same as that of the IP-A11, except that the register group of the IP-B12 is accessed.
[0079]
Next, a case where IPs are operated simultaneously for an operation test will be described by taking a serial output as an example. First, the CPU writes data to be serially output to the DR-M59. Next, a processing command instructing a serial output is written into the CMD-M60, and the execution of the processing of the IPs is started at the same time.
[0080]
When the output of the serial data is completed, the CPU reads the Flag-M61, checks the execution status of the process, and confirms that the process has been performed as requested. In this series of operations, the CPU outputs {C000F} as the upper address 20, so the MUX 14 selects and outputs the output signal from the IP-A11, and the ErMX16 selects the Err-M36 from the CMP 15 and the Err-M36 from the IP-A11. The logical sum with Err-A28 is output.
[0081]
If the IPs are operating as designed, their output signals have exactly the same value, and Err-M36 is "0". Conversely, if any error occurs during the execution of the process in the IPs, the output signal of the IPs has a different value, and the Err-M 36 becomes “1”, the CPU is interrupted by the Error 37, and the CPU An error handling routine can be executed.
[0082]
If the same error occurs in the IPs as designed, the Err-A 28 from the IP-A 11 becomes “1” and the CPU is interrupted by the Error 37.
[0083]
In this way, both IPs can be tested with one command execution. The important thing is that the program executed by the CPU can use the routine for the conventional IPs as it is, except for accessing a common address. In other words, the test routine for IPs accumulated in the past can be used with almost no change.
[0084]
According to the above embodiment, a plurality of IPs can be simultaneously selected and operated easily, so that the operation test time of the semiconductor device can be significantly reduced.
[0085]
Furthermore, since multiple access to IPs can be easily realized only by changing the upper address 20, the conventional stored test routine can be used almost as it is, and the test program development time can be greatly reduced. It does not impair the reliability of the program, and thus the reliability of the operation test.
[0086]
In the above embodiment, the control signal has a positive logic, but the present invention is not limited to this. In the above-described embodiment, as an example, a method of performing an operation test by accessing a common address has been described. However, the present invention is not limited to this. For example, an initial value may be set to a plurality of IPs at the same time. It can also be applied to the case. In this case, if it is confirmed by the pre-shipment operation test that the IPs operate correctly, the comparison judgment of the output signal by the CMP 15 is not necessarily required.
[0087]
Furthermore, in the above-described embodiment, IPs are two serial input / output macros. However, the present invention is not limited to this. The main configuration is the same, and the same output signal is output for a predetermined input signal. The number and functions of the function macros to be generated are not limited.
[0088]
In this case, it goes without saying that the types and order of the register groups (hereinafter collectively referred to as “common registers”) allocated to the address space of the common address are different from those in the above-described embodiment. The present invention can be widely applied to a system LSI having a plurality of function macros and the like.
[0089]
Further, some of the IPs that are multiple-accessed may have additional functions, additional registers, and the like different from the others. In principle, the present invention can be applied to multiple access IPs provided that they have a common function and register.
[0090]
For example, registers unique to the function macro (hereinafter, referred to as “unique registers”) are not allocated to the address space of the common address as in the macro ID described above, and only registers common to the IPs operated simultaneously are used. May be assigned as a common register.
[0091]
Conversely, a unique register can also be assigned to the address space of the common address, and when the CPU accesses it, it can be set so that only the function macro operates.
[0092]
Further, it is not necessary that the multiple-accessed IPs all generate the same output signal for all combinations that can be input to the common register. In principle, the present invention can be applied to a subset of input signals that generate the same output signal, and can be set so that only those input signals are operated in parallel using a common address.
[0093]
Further, in the above-described embodiment, the number of common addresses is one. However, the present invention is not limited to this. IPs may be divided into a plurality of groups having similar functions and operations, and a common address may be provided for each group. . In this case, the DEC 13 simultaneously activates the selection signals for the IPs belonging to the group corresponding to each common address.
[0094]
What is important is that IPs belonging to a group accessed by one common address have the same type of register assigned to the same lower address 23. Furthermore, this grouping need not be exclusive, and one IPs may be accessed by a plurality of common addresses.
[0095]
Further, in the above-described embodiment, the upper address 20 is 20 bits, but the present invention is not limited to this, and the number of bits of the upper address 20 and the lower address 23 may be arbitrarily set as necessary. Good.
[0096]
Furthermore, in the above-described embodiment, the MUX 14 selects the output signal of the IP-A11 when the common address is accessed, but the present invention is not limited to this, and the MUX 14 is accessed multiple times with the common address. The output signal of any of the IPs may be selected.
[0097]
Further, in the above-described embodiment, the Err-M36 which is the determination result of the CMP 15 is output to the ErMX16. However, the present invention is not limited to this, and the output is performed via external output means such as an output buffer and an output pad. Alternatively, the data may be directly output to the outside of the semiconductor device. In this case, the quality of the semiconductor device is determined by an external device according to Err-M36.
[0098]
In addition, a function equivalent to the above-described CMP 15 can be implemented as software of a CPU. In this case, the output signals of the IPs need to be sequentially read out using the respective dedicated addresses, but the comparison by software can be flexibly performed as necessary, such as comparing only specific bits of the output signal. There is a merit that can be.
[0099]
Further, in the above-described embodiment, the CPU is an internal module connected to the system bus 17, but the present invention is not limited to this. For example, the system bus 17 is pulled out of the semiconductor device, A general-purpose CPU or computer or the like is connected thereto, and similarly to the above-described CPU module, an operation test of IPs and initial value setting can be performed.
[0100]
【The invention's effect】
As described above, according to the present invention, it is easy to select a plurality of function macros at the same time and to execute the same processing in parallel on the selected function macros, so that the processing time of the semiconductor device is greatly reduced. be able to.
[Brief description of the drawings]
FIG. 1 is a circuit block diagram showing a semiconductor device according to an embodiment of the present invention.
FIG. 2 is a flowchart showing a control method of the semiconductor device according to the embodiment of the present invention.
FIG. 3 is an address map showing address assignment of the semiconductor device according to the embodiment of the present invention.
[Explanation of symbols]
11 Function macro A
12 Function macro B
13 Address decoder
14 Multiplexer
15 Comparator
16 Error signal multiplexer
17 System bus
18 Pad A
19 Pad B
20 Upper address
21 Selection signal A
22 Selection signal B
23 Lower address
24, 25 input signal
26, 27 output signal A
28 Error signal A
29 Serial data A
30, 31 output signal B
32 Error signal B
33 Serial data B
34, 35 output signal
36 Judgment signal
37 Error interrupt signal
41 Waiting step
42 Address setting step
43 Access Step
44 Processing decision step
45 End judgment step
46 Interrupt processing step
51, 55, 59 data registers
52, 56, 60 Command register
53, 57, 61 flag registers
54, 58 Macro ID

Claims (13)

主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、
予め定められたアドレスを受信した場合に、前記複数の機能マクロのうち少なくとも2つを同時に選択する選択手段を備え、
前記選択された機能マクロにおいて同一の処理が並列に実行されることを特徴とする半導体装置。
A plurality of function macros having the same main configuration and generating the same output signal with respect to a predetermined input signal,
When receiving a predetermined address, comprising: selecting means for simultaneously selecting at least two of the plurality of function macros;
A semiconductor device wherein the same processing is executed in parallel in the selected function macro.
前記選択手段は、
予め定められたアドレスを受信した場合に、前記複数の機能マクロのすべてを同時に選択することを特徴とする請求項1に記載の半導体装置。
The selecting means,
2. The semiconductor device according to claim 1, wherein when a predetermined address is received, all of the plurality of function macros are selected at the same time.
前記複数の機能マクロが生成した前記出力信号を受信し、これらの一致または不一致を示す判定信号を生成する比較手段をさらに有することを特徴とする請求項1に記載の半導体装置。2. The semiconductor device according to claim 1, further comprising a comparison unit that receives the output signals generated by the plurality of function macros and generates a determination signal indicating a match or a mismatch between the output signals. 3. 前記判定信号を外部に出力する出力手段をさらに有することを特徴とする請求項3に記載の半導体装置。4. The semiconductor device according to claim 3, further comprising an output unit that outputs the determination signal to the outside. 前記機能マクロは、
処理が正常に終了しなかった場合にエラー信号を生成し出力する機能をさらに備え、
前記判定信号および前記複数の機能マクロからの前記エラー信号が入力され、受信したアドレスに従って、前記判定信号および前記エラー信号のうちいずれか1つを選択しエラー割込み信号として出力するエラー出力切替手段をさらに有することを特徴とする請求項3に記載の半導体装置。
The function macro is
It further has a function to generate and output an error signal when the processing is not completed normally,
An error output switching unit that receives the determination signal and the error signal from the plurality of function macros, selects one of the determination signal and the error signal according to a received address, and outputs the selected signal as an error interrupt signal; The semiconductor device according to claim 3, further comprising:
前記複数の機能マクロからの前記出力信号が入力され、受信したアドレスに従って前記出力信号のうち1つを選択して出力する出力切替手段と、前記選択手段へ前記アドレスを供給し、前記複数の機能マクロへ前記入力信号を供給し、前記出力切替手段へ前記アドレスを供給し、前記出力切替手段から前記選択された出力信号を受信し、前記機能マクロに処理を実行させるCPUを接続可能なシステムバスをさらに有することを特徴とする請求項1に記載の半導体装置。An output switching unit that receives the output signals from the plurality of function macros, selects one of the output signals according to a received address, and outputs the selected output signal; A system bus connectable to a CPU for supplying the input signal to a macro, supplying the address to the output switching means, receiving the selected output signal from the output switching means, and causing the function macro to execute a process The semiconductor device according to claim 1, further comprising: 前記複数の機能マクロからの前記出力信号が入力され、受信したアドレスに従って前記出力信号のうち1つを選択して出力する出力切替手段と、前記選択手段へ前記アドレスを供給し、前記複数の機能マクロへ前記入力信号を供給し、前記出力切替手段へ前記アドレスを供給し、前記出力切替手段から前記選択された前記出力信号を受信し、前記エラー出力切替手段へ前記アドレスを供給し、前記エラー出力切替手段から前記エラー割込み信号を受信し、前記機能マクロに処理を実行させるCPUを接続可能なシステムバスをさらに有することを特徴とする請求項5に記載の半導体装置。An output switching unit that receives the output signals from the plurality of function macros, selects one of the output signals according to a received address, and outputs the selected output signal; Supplying the input signal to a macro, supplying the address to the output switching means, receiving the selected output signal from the output switching means, supplying the address to the error output switching means, 6. The semiconductor device according to claim 5, further comprising a system bus connectable to a CPU that receives the error interrupt signal from output switching means and causes the function macro to execute a process. 主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、
前記機能マクロを選択する選択手段を備えた半導体装置のアドレス割り付け方法であって、
前記選択手段が前記複数の機能マクロのうち少なくとも2つを同時に選択するように、予め定められた共通アドレスに前記複数の機能マクロを割り付け、前記共通アドレスを受信することにより、前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置のアドレス割り付け方法。
A plurality of function macros having the same main configuration and generating the same output signal with respect to a predetermined input signal,
An address assignment method for a semiconductor device, comprising a selection unit for selecting the function macro,
By assigning the plurality of function macros to a predetermined common address and receiving the common address so that the selecting means simultaneously selects at least two of the plurality of function macros, the selected function is selected. An address allocation method for a semiconductor device, wherein the same processing is executed in parallel in a macro.
前記共通アドレスに、前記複数の機能マクロのすべてを割り付けることを特徴とする請求項8に記載の半導体装置のアドレス割り付け方法。The method according to claim 8, wherein all of the plurality of function macros are assigned to the common address. 主な構成が同じで、所定の入力信号に対して同じ出力信号を生成する複数の機能マクロと、
前記機能マクロを選択する選択手段を備えた半導体装置の制御方法であって、
前記選択手段が前記複数の機能マクロのうち少なくとも2つを同時に選択するような予め定められた共通アドレスを前記選択手段に供給するアドレス設定ステップと、
前記選択された機能マクロの前記共通アドレスによって特定されるレジスタからのデータ読み出し、または、当該レジスタへのデータ書き込みを行うアクセスステップを有し、
前記選択された機能マクロにおいて同一の処理が並列に実行されるようにしたことを特徴とする半導体装置の制御方法。
A plurality of function macros having the same main configuration and generating the same output signal with respect to a predetermined input signal,
A control method of a semiconductor device comprising a selection unit for selecting the function macro,
An address setting step of supplying a predetermined common address to the selection unit such that the selection unit simultaneously selects at least two of the plurality of function macros;
An access step of reading data from a register specified by the common address of the selected function macro, or writing data to the register,
A method of controlling a semiconductor device, wherein the same processing is executed in parallel in the selected function macro.
前記共通アドレスは、前記複数の機能マクロをすべて選択するためのアドレスであることを特徴とする請求項10に記載の半導体装置の制御方法。The method according to claim 10, wherein the common address is an address for selecting all of the plurality of function macros. 前記アクセスステップでの前記機能マクロの処理が終了した後、前記機能マクロからの前記出力信号を比較し、これらが不一致の場合には、実行中断を選択する処理判定ステップをさらに有することを特徴とする請求項10に記載の半導体装置の制御方法。After the processing of the function macro in the access step is completed, the output signal from the function macro is compared, and if they do not match, a processing determining step of selecting execution suspension is further provided. The method for controlling a semiconductor device according to claim 10. 前記複数の機能マクロが生成した前記出力信号を受信し、これらの一致または不一致を示す判定信号を生成する比較手段をさらに備えた半導体装置の制御方法であって、
前記判定信号が不一致の場合には、実行中断を選択する処理判定ステップをさらに有することを特徴とする請求項10に記載の半導体装置の制御方法。
A method for controlling a semiconductor device, further comprising: a comparison unit configured to receive the output signals generated by the plurality of function macros and generate a determination signal indicating a match or a mismatch between the output signals.
The method according to claim 10, further comprising a process determining step of selecting execution interruption when the determination signals do not match.
JP2003158337A 2003-06-03 2003-06-03 Semiconductor device, address assignment method thereof, and control method of semiconductor device Pending JP2004362157A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003158337A JP2004362157A (en) 2003-06-03 2003-06-03 Semiconductor device, address assignment method thereof, and control method of semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003158337A JP2004362157A (en) 2003-06-03 2003-06-03 Semiconductor device, address assignment method thereof, and control method of semiconductor device

Publications (1)

Publication Number Publication Date
JP2004362157A true JP2004362157A (en) 2004-12-24

Family

ID=34051778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003158337A Pending JP2004362157A (en) 2003-06-03 2003-06-03 Semiconductor device, address assignment method thereof, and control method of semiconductor device

Country Status (1)

Country Link
JP (1) JP2004362157A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011527746A (en) * 2008-07-11 2011-11-04 株式会社アドバンテスト Test apparatus and semiconductor device
WO2014045500A1 (en) * 2012-09-21 2014-03-27 三菱電機株式会社 Lsi and method for producing lsi

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011527746A (en) * 2008-07-11 2011-11-04 株式会社アドバンテスト Test apparatus and semiconductor device
WO2014045500A1 (en) * 2012-09-21 2014-03-27 三菱電機株式会社 Lsi and method for producing lsi
JP5835498B2 (en) * 2012-09-21 2015-12-24 三菱電機株式会社 LSI and LSI manufacturing method
US9424040B2 (en) 2012-09-21 2016-08-23 Mitsubishi Electric Corporation LSI and LSI manufacturing method

Similar Documents

Publication Publication Date Title
KR100488232B1 (en) A method for testing integrated memory using an integrated dma controller
JP4215393B2 (en) Integrated circuit repair method
CN110515891B (en) FPGA chip and configuration method thereof
JP2001154875A (en) Microcomputer debug architecture and method
US20070067685A1 (en) Testing apparatus and testing method
CN109213638B (en) Semiconductor device with a plurality of semiconductor chips
JP2002323993A (en) Single chip microcomputer, testing method therefor and test program
CN109144808B (en) Semiconductor device with a semiconductor device having a plurality of semiconductor chips
JP2004362157A (en) Semiconductor device, address assignment method thereof, and control method of semiconductor device
US20010052114A1 (en) Data processing apparatus
CN100524537C (en) Memory test circuit and method
US7484147B2 (en) Semiconductor integrated circuit
WO2012172682A1 (en) Arithmetic processing device and control method for arithmetic processing device
JPH1040130A (en) Microcomputer
US7222202B2 (en) Method for monitoring a set of semaphore registers using a limited-width test bus
JP2004101203A (en) Failure analysis system for logic lsi and failure analysis method
JP2004079032A (en) Semiconductor device test method and semiconductor device
KR100289831B1 (en) Rom data verification circuit
CN113742198B (en) Test method, test device, electronic equipment and storage medium
JPH08161191A (en) In-circuit emulator
JPH01270684A (en) Testing system of lsi
CN121579283A (en) Memory testing methods, apparatus, electronic devices and storage media
JP2000181900A (en) Single chip microcomputer
KR20250110644A (en) Test device, electronic device, and opertaing method of test device
JP4688724B2 (en) Functional block test circuit and integrated circuit device

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050415

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606