JP3632691B2 - テスト回路、集積回路及びテスト方法 - Google Patents

テスト回路、集積回路及びテスト方法 Download PDF

Info

Publication number
JP3632691B2
JP3632691B2 JP2003022235A JP2003022235A JP3632691B2 JP 3632691 B2 JP3632691 B2 JP 3632691B2 JP 2003022235 A JP2003022235 A JP 2003022235A JP 2003022235 A JP2003022235 A JP 2003022235A JP 3632691 B2 JP3632691 B2 JP 3632691B2
Authority
JP
Japan
Prior art keywords
test
macroblock
input
selector
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.)
Expired - Fee Related
Application number
JP2003022235A
Other languages
English (en)
Other versions
JP2004233200A (ja
Inventor
治雄 西田
卓也 石田
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003022235A priority Critical patent/JP3632691B2/ja
Priority to US10/765,895 priority patent/US7299389B2/en
Priority to CNA2004100393789A priority patent/CN1519576A/zh
Publication of JP2004233200A publication Critical patent/JP2004233200A/ja
Application granted granted Critical
Publication of JP3632691B2 publication Critical patent/JP3632691B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3172Optimisation aspects, e.g. using functional pin as test pin, pin multiplexing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318541Scan latches or cell details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318572Input/Output interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、テスト回路、集積回路及びテスト方法に関する。
【0002】
【背景技術】
近年、集積回路は大規模化しており、集積回路が含む全ての回路の故障(結線不良、素子不良)を検出しようとすると、テストパターンが複雑になってしまい、テストパターン開発の長期化や高コスト化を招く。このような問題を解決するものとしてスキャン手法と呼ばれるテスト手法が知られている。
【0003】
【特許文献1】
特開2001−183424号公報
【0004】
【発明が解決しようとする課題】
このスキャン手法では、論理設計が終わり、回路のネットリストを生成した後、回路(ネットリスト)にスキャン用フリップフロップ(スキャン用回路)を挿入する。より具体的には、回路中のフリップフロップ(以下、適宜FFと呼ぶ)をスキャン用FFに置き換える。そしてスキャン用FFを含むネットリストを用いて故障シミュレーションを行い、テストパターンを作成(自動生成)する。そしてこのテストパターンを用いて試作品や量産品のテストを行う。
【0005】
しかしながら、このスキャン手法を用いても、大規模な集積回路においては、テストパターンの作成や故障検出率の向上が難しくなってきている。特に、近年、特定機能を有する回路をブロック化し、このブロック化された回路ブロックであるマクロブロック(マクロセル)を接続することで、集積回路を設計する手法が主流となっている。例えばUSB2.0のUTMI(USB2.0 Transceiver Macrocell Interface)仕様に準拠したマクロブロックと、このUTMIを制御する回路(Serial Interface Engine)やユーザのカスタム回路を含む制御用マクロブロックとを接続することで、USB2.0機能を有する特定用途の集積回路(ASIC)を設計できる。この場合に、各マクロブロックのそれぞれについてのテストパターンを作成することは比較的容易だが、マクロブロック間の接続部分の故障(結線不良)を検出するテストパターンの作成は容易ではないという課題がある。
【0006】
また集積回路では、端子数が膨大になっており、この端子数をなるべく減らす必要があるという課題もある。従って、テスト端子の本数もなるべく少なくできることが望ましい。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、テストパターン作成の容易化等を実現できるテスト回路、これを含む集積回路、及びこれを用いたテスト方法を提供することにある。
【0008】
【課題を解決するための手段】
本発明は、複数のマクロブロックを含む集積回路のためのテスト回路であって、その第1の入力に、第1のマクロブロックからの出力信号が入力され、その第2の入力に、第2のマクロブロック用のテスト入力信号が入力される第1のセレクタと、その第1の入力に、第1のセレクタからの出力信号が入力され、その第2の入力に、第2のマクロブロックからの出力信号が入力される第2のセレクタとを含み、第1のマクロブロックをテストする第1のテストモード時には、前記第1のセレクタが、その第1の入力に入力された第1のマクロブロックからの出力信号を第2のセレクタの第1の入力に出力し、前記第2のセレクタが、その第1の入力に入力された第1のセレクタからの出力信号を第1のマクロブロックに出力し、第2のマクロブロックをテストする第2のテストモード時には、前記第1のセレクタが、その第2の入力に入力された第2のマクロブロック用のテスト入力信号を第2のマクロブロックに出力し、前記第2のセレクタが、その第2の入力に入力された第2のマクロブロックからの出力信号を第2のマクロブロック用のテスト出力信号として出力するテスト回路に関係する。
【0009】
本発明では、第1のテストモード時には、第1のマクロブロックからの出力信号が、第1、第2のセレクタを介して第2のマクロブロックに出力されるようになる。一方、第2のテストモード時には、第2のマクロブロック用のテスト入力信号が第2のマクロブロックに出力され、第2のマクロブロックからの出力信号が第2のマクロブロック用のテスト出力信号として出力されるようになる。
【0010】
このようにすれば、例えば、第1のテストモードを用いることで、第1のマクロブロックとテスト回路との接続部分の故障検出が可能になる。また、第2のテストモードを用いることで、テスト回路と第2のマクロブロックとの接続部分の故障検出が可能になる。これにより、第1、第2のマクロブロック間の接続部分の故障検出が可能になる。
【0011】
なお通常動作モード(第1、第2のテストモードではないモード)においては、第1のセレクタが、その第1の入力に入力された第1のマクロブロックからの出力信号を第2のマクロブロックに出力し、第2のセレクタが、その第2の入力に入力された第2のマクロブロックからの出力信号を第1のマクロブロックに出力してもよい。
【0012】
また第2のマクロブロック用のテスト入力信号は、テスト入力端子から入力してもよいし、他の回路から入力してもよい。また第2のマクロブロック用のテスト出力信号は、テスト出力端子に出力してもよいし、他の回路に出力してもよい。また第1のセレクタの出力信号を他の回路を介して第2のセレクタの第1の入力に入力してもよい。また第1、第2のセレクタが備える入力は、第1、第2の入力に限定されず、3以上の入力を備えていてもよい。
【0013】
また本発明では、テスト回路に対して第1のマクロブロックと共にスキャンパスが設定され、前記第1のテストモードが、前記スキャンパスを用いてスキャン手法でテストを行うスキャンモードであってもよい。
【0014】
ここでスキャンパスが設定されるとは、例えば、スキャンイン端子(1又は複数本)からスキャン用フリップフロップ(スキャン回路)を介してスキャンアウト端子(1又は複数本)に至るパスが設定されることをいう。
【0015】
また本発明では、第1のマクロブロックからテスト回路への出力信号の本数がI本であり、テスト回路から第1のマクロブロックへの入力信号の本数がJ本(I>J)である場合に、第1のセレクタからのI本の出力信号のうちの(I−J)本の出力信号を保持する(I−J)個のダミーのスキャン用フリップフロップを含み、前記スキャンモード時において、前記ダミーのスキャン用フリップフロップが、保持された出力信号をスキャンパスを介して出力するようにしてもよい。
【0016】
このようにすれば、第1のマクロブロックからのI本の出力信号(第1〜第Iの出力信号)のうち、(I−J)本の出力信号(第J〜第Iの出力信号)の結線不良等も効率良く調べることが可能になる。
【0017】
また本発明では、Mビットの第2のマクロブロック用のテスト入力信号を、K本(M>K)のテスト入力端子からKビット毎に入力して蓄積し、蓄積したテスト入力信号を第1のセレクタに出力するテスト用バッファを含むようにしてもよい。
【0018】
なおテスト用バッファが、蓄積したLビットの第2のマクロブロック用のテスト出力信号を、K本(L>K)のテスト出力端子からKビット毎に出力するようにしてもよい。
【0019】
また本発明では、第2のマクロブロックが、データ通信用の物理層回路を含むマクロブロックであり、第2のマクロブロックとの間で所定の通信手順で送受信処理を行うための通信シーケンサを含み、前記通信シーケンサが、前記第2のテストモード時において、第2のマクロブロックへの送信データ信号を、第1のセレクタを介して第2のマクロブロックに送信する処理を行い、第2のマクロブロックからの受信データ信号を、第2のセレクタを介して第2のマクロブロックから受信する処理を行うようにしてもよい。
【0020】
このようにすれば、第2のマクロブロックとの間の送受信処理が通信シーケンサにより自動的に行われるようになるため、テスト効率を向上できる。なお、通信シーケンサが、送信処理機能と受信処理機能のいずれか一方のみを持つようにしてもよい。
【0021】
また本発明では、第2のマクロブロックへの送信データ信号を蓄積するテスト用送信バッファと、第2のマクロブロックからの受信データ信号を蓄積するテスト用受信バッファとを含んでもよい。
【0022】
このようにすれば、例えば、遅い周波数のクロック周波数で送信データ信号や受信データ信号を蓄積することも可能になり、より信頼性の高いテストを実現できる。なおテスト用送信バッファとテスト用受信バッファのいずれか一方のみを設けるようにしてもよい。
【0023】
また本発明では、前記テスト用送信バッファが、テスト入力端子から入力された送信データ信号を蓄積し、前記通信シーケンサが、前記テスト用送信バッファによる送信データ信号の蓄積が完了した後に、蓄積された送信データ信号を、第1のセレクタを介して第2のマクロブロックに送信する処理を行うと共に、ループバックモードに設定された第2のマクロブロックからの受信データ信号を受信する処理を行い、前記テスト用受信バッファが、受信された受信データ信号を蓄積し、蓄積した受信データ信号をテスト出力端子に出力するようにしてもよい。
【0024】
このようにすれば、テスト用送信バッファの送信データ信号を第2のマクロブロックに送信し、第2のマクロブロックからの受信データ信号をテスト用受信バッファに受信するという一連の送受信処理を自動的に行えるようになり、テスト効率を向上できる。
【0025】
また本発明では、前記テスト用送信バッファが、第2のマクロブロックへのNビットの送信データ信号をK本(N>K)のテスト入力端子からKビット毎に入力し、前記テスト用受信バッファが、第2のマクロブロックからのNビットの受信データ信号を蓄積し、蓄積した受信データ信号をKビット毎にK本のテスト出力端子に出力するようにしてもよい。
【0026】
また本発明は、上記のいずれかのテスト回路と、前記第1のマクロブロックと、前記第2のマクロブロックとを含む集積回路に関係する。
【0027】
なお集積回路は、第1、第2のマクロブロック以外のマクロブロックを含んでもよい。
【0028】
また本発明は、その第1の入力に、第1のマクロブロックからの出力信号が入力され、その第2の入力に、第2のマクロブロック用のテスト入力信号が入力される第1のセレクタと、その第1の入力に、第1のセレクタからの出力信号が入力され、その第2の入力に、第2のマクロブロックからの出力信号が入力される第2のセレクタとを含むテスト回路を用いたテスト方法であって、第1のマクロブロックをテストする第1のテストモード時には、第1のセレクタの第1の入力に入力された第1のマクロブロックからの出力信号を、第2のセレクタの第1の入力に出力し、第2のセレクタの第1の入力に入力された第1のセレクタからの出力信号を、第1のマクロブロックに出力し、第2のマクロブロックをテストする第2のテストモード時には、第1のセレクタの第2の入力に入力された第2のマクロブロック用のテスト入力信号を、第2のマクロブロックに出力し、第2のセレクタの第2の入力に入力された第2のマクロブロックからの出力信号を、第2のマクロブロック用のテスト出力信号として出力するテスト方法に関係する。
【0029】
また本発明では、テスト回路に対して第1のマクロブロックと共にスキャンパスを設定し、前記第1のテストモード時において、スキャンパスを用いてスキャン手法でテストを行うようにしてもよい。
【0030】
また本発明では、第1のマクロブロックからテスト回路への出力信号の本数がI本であり、テスト回路から第1のマクロブロックへの入力信号の本数がJ本(I>J)である場合に、第1のセレクタからのI本の出力信号のうちの(I−J)本の出力信号を保持し、前記スキャンモード時において、保持された出力信号をスキャンパスを介して出力するようにしてもよい。
【0031】
また本発明では、前記テスト回路が、第2のマクロブロックとの間で所定の通信手順で送受信処理を行うための通信シーケンサを含み、前記第2のテストモード時において、前記通信シーケンサを用いて、第2のマクロブロックへの送信データ信号を、第1のセレクタを介して第2のマクロブロックに送信し、第2のマクロブロックからの受信データ信号を、第2のセレクタを介して第2のマクロブロックから受信するようにしてもよい。
【0032】
【発明の実施の形態】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0033】
1.マクロブロック間の接続部分の故障検出
図1(A)に、複数のマクロブロックMB1、MB2(マクロセル、回路ブロック)を接続することで構成される集積回路の例を示す。このような集積回路の故障検出を行う場合に、例えば図1(B)に示すようにマクロブロックMB1内部の故障検出については、MB1にスキャンパスを設定して行う公知のスキャン手法により実現できる。またマクロブロックMB2内部の故障検出についても、例えばテスト入力端子TPIからテスト入力信号TINを入力し、その結果であるテスト出力信号TOUTをテスト出力端子TPOから出力することで実現できる。
【0034】
しかしながら、図1(B)に示す手法によっても、接続部分10(I本の信号SC12の結線及びJ本の信号SC21の結線)の故障検出は難しいという課題がある。即ち、マクロブロックMB1にスキャンパスを設定してテストしたとしても、接続部分10(信号SC12、SC21)の故障検出率を例えば90パーセント以上にできるテストパターンの作成は困難である。このためテストパターン開発の長期化や高コスト化を招く。
【0035】
また図1(B)の手法では、(I+J)本のテスト端子TPI、TPOを設ける必要があるため、端子数が増加してしまい、集積回路の高コスト化を招く。そこで、このようなマクロブロックMB1、MB2間の接続部分10の故障検出を容易化できるテスト回路の実現が望まれる。
【0036】
2.テスト回路
図2に本実施形態のテスト回路TC及びこれを含む集積回路の構成例を示す。なお本実施形態のテスト回路TC及び集積回路は、図2に示す全ての構成要素を含む必要はなく、その一部を省略してもよい。また本実施形態の集積回路は3個以上のマクロブロックを含んでもよい。
【0037】
図2においてマクロブロックMB1、MB2は、1又は複数の特定機能を有する回路(例えば通信用回路、通信用回路を制御する回路、バスとのインターフェース回路、RAM、CPU、DSP、液晶ドライバ、CCDコントローラ、或いはユーザのカスタム回路等)を有する回路ブロックである。
【0038】
より具体的にはMB2は、例えば通信用の物理層回路を含む通信用のマクロブロックであり、更に具体的にはUTMI仕様(特定のインターフェース規格)に準拠したマクロブロックである。またMB1は、例えばMB2を制御する回路(SIE)、バッファ、インターフェース回路、或いはユーザのカスタム回路などを含むマクロブロックである。別の言い方をすればMB1は、ロジック回路により構成されるマクロブロックであり、MB2は、通信用物理層回路などのアナログ回路を含むマクロブロックである。
【0039】
テスト回路TCはセレクタSEL1(第1のセレクタ)を含む。ここでSEL1は、その第1の入力に、MB1(第1のマクロブロック)からの出力信号M1OUTが入力される。またその第2の入力に、MB2(第2のマクロブロック)用のテスト入力信号TINが入力される。このSEL1の選択動作は選択信号SS1により制御される。
【0040】
テスト回路TCはセレクタSEL2(第2のセレクタ)を含む。ここでSEL2は、その第1の入力に、SEL1からの出力信号SQが入力される。また、その第2の入力に、MB2からの出力信号M2OUTが入力される。このSEL2の選択動作は選択信号SS2により制御される。
【0041】
そして図3(A)に示すようにMB1をテストする第1のテストモード(例えばスキャンモード)では、セレクタSEL1が、その第1の入力に入力されたMB1からの出力信号M1OUT(例えばI本)を選択して、その出力信号SQをSEL2の第1の入力に出力する。またセレクタSEL2が、その第1の入力に入力された第1のセレクタからの出力信号SQを、入力信号M1IN(例えばJ本)としてMB1に出力する。図3(A)に示すように、この第1のテストモードでは、端子DTIN(データ入力端子又はスキャンイン端子SCIN等)からテストパターン信号(論理テストパターン)を入力する。そして、端子DTOUT(データ出力端子又はスキャンアウト端子SCOUT等)から出力される結果と期待値とを比較して検証を行う。
【0042】
一方、図3(B)に示すように、MB2をテストする第2のテストモードでは、SEL1が、その第2の入力に入力されたMB2用のテスト入力信号TIN(例えばI本)を、入力信号M2IN(例えばI本)としてMB2に出力する。またSEL2が、その第2の入力に入力されたMB2からの出力信号M2OUT(例えばJ本)を、MB2用のテスト出力信号TOUT(例えばJ本)として出力する。この第2のテストモードでは、端子TPIからテスト入力信号(論理テストパターン、送信データ信号)を入力する。そして端子TPOから出力されたテスト出力信号(論理テストパターンの結果、受信データ信号)と期待値とを比較して検証を行うことになる。
【0043】
なお、第1、第2のテストモードではない通常動作モード(集積回路が通常に動作するモード)では、マクロブロックMB1からの出力信号M1OUTは、セレクタSEL1を介してマクロブロックMB2への入力信号M2INとしてMB2に入力される。またマクロブロックMB2からの出力信号M2OUTは、セレクタSEL2を介してマクロブロックMB1への入力信号M1INとしてMB1に入力される。
【0044】
また、テスト入力信号TINは、テスト入力端子TPIからバッファなどを介して入力される信号であってもよいし、図示しない回路(例えば後述する通信シーケンサ)から出力される信号であってもよい。またテスト出力信号TOUTも、テスト出力端子TPOにバッファなどを介して出力してもよいし、図示しない回路(例えば通信シーケンサ)に出力してもよい。
【0045】
図2の本実施形態のテスト回路TCによれば、図3(A)の第1のテストモードにより、マクロブロックMB1とテスト回路TCの接続部分12の故障検出(結線不良)が可能になる。また図3(B)の第2のテストモードにより、テスト回路TCとマクロブロックMB2の接続部分14の故障検出も可能になる。これにより、結局、図1で説明したマクロブロックMB1、MB2間の接続部分10の故障検出が可能になる。
【0046】
しかも図3(A)の第1のテストモードにより接続部分12の故障を検出するテストパターンは比較的容易に作成(自動生成)できる。また図3(B)の第2のテストモードでの接続部分14の故障検出も容易である。更にテスト入力信号TINやテスト出力信号TOUTを用いれば、マクロブロックMB2が通信用物理層回路などのアナログ回路を含む場合にも、そのテストを容易化できる。従って本実施形態によれば、テストパターン開発期間の短縮化、低コスト化を図れるとと共に、故障検出率を高めて集積回路の信頼性を向上できる。
【0047】
3.スキャン手法
図3(A)の第1のテストモードはスキャン手法でテストを行うスキャンモードであることが望ましい。例えば図4に示すように、マクロブロックMB1のみならずテスト回路TCに対してもスキャンパスを設定する。即ち、マクロブロックMB1内のフリップフロップのみならず、テスト回路TC内のフリップフロップもスキャン用FF(スキャン回路)に置き換えて、これらのスキャン用FFをネットで結んでスキャンパス(スキャンチェーン)を構成する。別の言い方をすれば、マクロブロックMB1及びテスト回路TCを1つのマクロブロックMB12と見なして、MB12のネットリストに対して、公知のスキャンテスト用ツールを用いてスキャン用FFを挿入する(スキャンパスを設定する)。
【0048】
例えば図5(A)にフリップフロップFF1、FF2、FF3と、組み合わせ論理回路CM1、CM2を含む回路を示す。この回路をスキャン手法でテストする場合には、図5(B)に示すように、フリップフロップFF1、FF2、FF3を、セレクタSL1、SL2、SL3を有するスキャン用フリップフロップSFF1、SFF2、SFF3に置き換える。また組み合わせ論理回路CM1、CM2を通る通常パスをバイパスするスキャンパスSCP1、SCP2を設ける。
【0049】
そして、まず、スキャンイネーブル信号SCENを第1のレベル(例えばHレベル)に設定して、セレクタSL1、SL2、SL3にスキャンパス側(SCIN側)を選択させる。そしてスキャンイン端子SCINからテストパターン信号をシリアルに順次入力して、フリップフロップFF1、FF2、FF3に対してテストパターン信号を設定する。
【0050】
次に、スキャンイネーブル信号SCENを第2のレベル(例えばLレベル)に設定し、セレクタSL1、SL2、SL3に通常パス側(DIN側)を選択させる。そしてクロック信号CKを例えば1クロックパルス分だけアクティブにして、フリップフロップFF1、FF2の出力信号を組み合わせ回路CM1、CM2に入力すると共に、CM1、CM2の出力信号をFF2、FF3に保持する。
【0051】
次に、スキャンイネーブル信号SCENを第1のレベルに設定して、セレクタSL1、SL2、SL3にスキャンパス側(SCIN側)を選択させる。そして、フリップフロップFF1、FF2、FF3に保持されているテスト結果信号を、スキャンパスSCP1、SCP2を介して、スキャンアウト端子SCOUTからシリアルに出力し、期待値と比較する。このようにすることで、フリップフロップFF1、FF2、FF3及び組み合わせ論理回路CM1、CM2の素子不良や、これらの回路間の結線不良をテストできる。
【0052】
図6にスキャン手法を用いるテスト方法のフローチャートを示す。まず回路設計を行い、設計した回路のネットリストを生成する(ステップS1、S2)。次に、公知のスキャンテスト用ツールを用いて、設計した回路にスキャンFFを挿入し、スキャンFFを含むネットリストを生成する(ステップS3、S4)。次に、スキャンFFを含むネットリストを用いて論理シミュレーションを行い、テストパターンを作成(自動生成)する(ステップS5、S6)。その後、回路のレイアウトを行い、マスクデータを生成する(ステップS7、S8)。そして、ステップS6で作成(自動生成)されたテストパターンを用いて、試作品又は量産品のテストを行う(ステップS9)。
【0053】
以上のようなスキャン手法を用いると、マクロブロックの規模は若干大きくなるが、スキャンFFの間にある組み合わせ論理回路を切り出して部分的にテストできるようになるため、テストパターンの作成を容易化できると共に、故障検出率を向上できる。
【0054】
そして本実施形態では図4に示すように、マクロブロックMB1とテスト回路TCを1つのマクロブロックMB12と見なして、マクロブロックMB1及びテスト回路TCに対して、スキャンイン端子SCINからスキャンアウト端子SCOUTに至るスキャンパスを設定している(スキャン用FFを挿入している)。従って、マクロブロックMB1とテスト回路TCの間の接続部分12の故障(結線不良)を高い故障検出率で検出できるテストパターンを容易に作成できるようになる。これによりテストパターン開発の期間短縮化、低コスト化を実現できる。
【0055】
4.ダミーのスキャン用フリップフロップ
本実施形態では、図7に示すようにテスト回路TCに1又は複数個のダミーのスキャン用フリップフロップDSFFを含ませることができる。
【0056】
例えば図7では、マクロブロックMB1からの出力信号M1OUTの本数がI本であり、テスト回路TCからMB1への入力信号の本数がJ本(I>J。I、Jは自然数又は2以上の整数)となっている。即ち出力信号M1OUTの本数の方が入力信号M1INの本数よりも多い。このように信号本数に違いがある場合において、テスト回路TC及びマクロブロックMB1に一体的にスキャンパスを設定する図4の手法を実現するために、図7ではダミーのスキャン用フリップフロップDSFFをテスト回路TCに含ませている。
【0057】
より具体的には、セレクタSEL1からのI本の出力信号(第1〜第Iの出力信号)のうち、(I−J)本の出力信号(第J〜第Iの出力信号)を保持する(I−J)個のダミーのスキャン用フリップフロップDSFFをテスト回路TC内に設ける。そして、図4で説明したスキャンモード(第1のテストモード)時において、ダミーのスキャン用フリップフロップDSFFが、保持した出力信号をスキャンパス(スキャンイン端子からスキャン用フリップフロップを介してスキャンアウト端子に至るパス)を介して出力するようにする。即ち、DSFFは、前段のスキャン用フリップフロップから入力された信号を保持し、保持した信号を後段のスキャン用フリップに出力する。
【0058】
例えば図6のステップS2で生成されるネットリストに対して、図8(A)に示すような3個(広義には(I−J)個)のダミーのフリップフロップDFF1、DFF2、DFF3を含ませておく。これらのDFF1、DFF2、DFF3のデータ端子Dには、セレクタSEL1からのI本の出力信号のうちの(I−J)本の出力信号DIN1、DIN2、DIN3(第J〜第Iの出力信号)が接続される。
【0059】
そして図6のステップS4、S5で説明したスキャン手法により、ネットリスト中のDFF1、DFF2、DFF3を図8(B)に示すようにダミーのスキャン用フリップフロップDSFF1、DSFF2、DSFF3(通常動作モードにおいては意味をなさない無効なダミーのフリップフロップ)に置き換える。
【0060】
そしてスキャンモード時に、SL1、SL2、SL3にDIN側を選択させて、信号DIN1、DIN2、DIN3(セレクタSEL1或いはSEL1の後段のスキャン用フリップフロップからの(I−J)本の出力信号)を、DFF1、DFF2、DFF3に保持させる。その後、SL1、SL2、SL3にSCIN側を選択させて、SCINからSCOUTに至るスキャンパスを介して、DFF1、DFF2、DFF3(DSFF1〜DSFF3)に保持された信号DIN1、DIN2、DIN3をシリアルに出力させる。
【0061】
図8(C)には、マクロブロックMB1及びテスト回路TCに設定されるスキャンパスの様子が概念的に示されている。例えば図8(C)では、MB1からTCへの出力信号M1OUT−1、M1OUT−2が2本(I本)であり、TCからMB1への入力信号M1INが1本であるため、1個(I−J個)のダミーのスキャン用フリップフロップDSFF1が設けられる。
【0062】
そしてSEL1−1(第1のセレクタ)の第1の入力には、MB1内のフリップフロップFF6からの出力信号M1OUT−1が入力され、第2の入力には、テスト入力端子TPI−1からのテスト入力信号TIN−1が入力される。そしてSEL1−1の出力信号SQ−1は、TC内に設けられたダミーのスキャン用フリップフロップDSFF1のデータ端子に入力される。
【0063】
またSEL1−2(第1のセレクタ)の第1の入力には、MB1内のフリップフロップFF5からの出力信号M1OUT−2が入力され、第2の入力には、テスト入力端子TPI−2からのテスト入力信号TIN−2が入力される。そしてSEL1−2の出力信号SQ−2は、TC内に設けられたフリップフロップFF2のデータ端子に入力される。
【0064】
またSEL2(第2のセレクタ)の第1の入力には、SEL1−2からの出力信号SQ−2が入力され、第2の入力には、MB2からの出力信号M2OUTが入力される。そしてSEL2の出力信号TOUTは、テスト出力端子TPO、或いはMB1内のフリップフロップFF4に出力される。
【0065】
そしてスキャンモード時には、SCINからSCOUTに至るスキャンパスを介して、DSFF1、FF2、FF3、FF4、FF5、FF6に保持された信号(値)がSCOUTからシリアルに出力され、これによりスキャン手法によるテストを実現できる。
【0066】
以上のようにすることで、図7のように信号M1OUTの本数Iの方がM1INの本数Jよりも多い場合においても、余った(I−J)本の信号M1OUTについての結線不良を、図4で説明したスキャン手法により検出できる。即ちこれらの(I−J)本の信号をスキャンモード時に、SCINからMB1、TCを介してSCOUTに至るスキャンパスを介して出力できるようになる。この結果、より信頼性のある故障検出が可能になる。
【0067】
なお、図8(A)では、スキャン用フリップフロップに置き換える前のダミーのフリップフロップDFF1、DFF2、DFF3は、そのQ端子に何も接続されていないフリップフロップとなっている。このようにQ端子に何も接続されていないフリップフロップDFF1、DFF2、DFF3は、ネットリスト生成ツールの仕様によっては、無効なフリップフロップであると認識されて削除されてしまう可能性がある。従って、このような事態を防止するために、DFF1、DFF2、DFF3のQ端子に対して、通常動作に対して悪影響を及ぼさないノード(例えば後述するテスト用バッファのノード)を接続するようにしてもよい。
【0068】
5.詳細例
5.1 全体構成
図9にテスト回路TCの詳細な構成例を示す。なお本実施形態のテスト回路は図9に示す全て構成要素を含む必要はなく、その一部を省略してもよい。
【0069】
図9においてTPIはテスト入力端子であり、TPOはテスト出力端子である。またTPCKはテストクロック端子であり、TPRSはリセット端子である。またTPAD、TPWR、TPRDはバッファ(レジスタ)のアドレス端子、ライト端子、リード端子である。またTPMD1、TPMD2はテストモード端子である。またPDP、PDMは、USBにおいて定義される差動信号DP、DM(データプラス、データマイナス)の端子である。
【0070】
図9においてMB2は、データ通信用の物理層回路PHYを含むマクロブロックである。このMB2としてはUTMI仕様(広義には通信マクロブロック仕様)に準拠したマクロブロックなどがある。なおこのマクロブロックMB2は、DP、DMを用いてUSB上で送信した送信データ信号を、ループバックモードで受信データ信号として受信する機能も有している。
【0071】
テスト回路TCは通信シーケンサCSQを含む。この通信シーケンサCSQはマクロブロックMB2との間で所定の通信手順(通信マクロブロック仕様に準拠した通信手順)で信号の送受信処理(ハンドシェーク処理)を行うためのシーケンサである。この通信シーケンサCSQ(テスト用送信バッファTXB)からの送信データ信号は、MB2へのテスト入力信号TIN1としてセレクタSEL1に入力される。またセレクタSEL2からのテスト出力信号TOUT1(TOUT)は、受信データ信号として通信シーケンサCSQ(テスト用受信バッファRXB)に入力される。
【0072】
より具体的には通信シーケンサCSQは、図3(B)で説明した第2のテストモード時において、マクロブロックMB2への送信データ信号を、セレクタSEL1を介してMB2に送信する処理を行う。またMB2からの受信データ信号を、SEL2を介してMB2から受信する処理を行う。
【0073】
通信シーケンサCSQはテスト用送信バッファTXB、テスト用受信バッファRXBを含む。TXBはMB2への送信データ信号(TIN1)を蓄積(store)するバッファ(レジスタ)である。RXBはMB2からの受信データ信号(TOUT1)を蓄積するバッファ(レジスタ)である。即ち、TXBは、テスト入力端子TPIから入力された信号TIを送信データ信号として蓄積する。またRXBは、MB2からの受信データ信号を蓄積し、蓄積した受信データ信号を信号TOとしてテスト出力端子TPOに出力する。
【0074】
更に具体的にはテスト用送信バッファTXBは、テスト入力端子TPIから入力された送信データ信号TIを蓄積する。そして通信シーケンサCSQは、TXBによる送信データ信号TIの蓄積が完了した後(所定のバイト数の送信データ信号を蓄積した後)に、蓄積された送信データ信号を、セレクタSEL1を介してマクロブロックMB2に送信する処理を行う。また通信シーケンサCSQは、ループバックモードに設定されたMB2からの受信データ信号TOUT1を受信する処理を行う。そしてテスト用受信バッファRXBは、受信された受信データ信号TOUT1を蓄積し、蓄積した受信データ信号をテスト出力端子TPOに出力する
なお、送信バッファTXB、受信バッファRXBのいずれか一方のみをテスト回路TCに設けるようにしてもよい。またTXB、RXBは通信シーケンサCSQの内部に設けてもよいし外部に設けてもよい。
【0075】
テスト回路TCはテスト用バッファTSBを含む。このTSBはテスト入力信号やテスト出力信号を蓄積(store)するバッファ(レジスタ)である。より具体的にはTSBは、テスト入力端子TPIからの信号TIを蓄積して、テスト入力信号TIN2としてセレクタSEL1に出力する。またTSBは、セレクタSEL2からのテスト出力信号TOUT2(TOUT)を蓄積して、信号TOとしてテスト出力端子TPOに出力する。
【0076】
テスト回路TCはデコーダDECを含む。このDECは集積回路のテスト端子からの信号に基づいて、テスト回路の各回路に制御信号を出力する。より具体的にはデコーダDECには、バッファTXB、RXB、TSBのアドレス(レジスタアドレス)を指定するためのアドレス信号TADや、これらのバッファへのライト信号TWR、リード信号TRDが入力される。またテストモード信号TMD1、TMD2(第1、第2のテストモードを切り替えたり、テストモードと通常動作モードを切り替える信号)や、テスト用のクロック信号TCKや、テスト用のリセット信号TRSが入力される。デコーダDECは、テスト端子から入力されるこれらの信号に基づいてデコード処理を行い、通信シーケンサCSQ(TXB、RXB)、テスト用バッファTSBへの制御信号DCTL1、DCTL2や、セレクタSEL1、SEL2への選択信号SS1、SS2を生成する。
【0077】
例えば通信シーケンサCSQ(TXB、RXB)はデコーダDECからの制御信号DCTL1やテスト用クロック信号TCKなどに基づいて、TXB、RXBに送信データ信号、受信データ信号を蓄積する処理や、TXB、RXBから送信データ信号、受信データ信号を出力する処理や、送受信(ハンドシェーク)処理を行う。またテスト用バッファTSBは、デコーダDECからの制御信号DCTL2やテスト用クロック信号TCKなどに基づいて、TSBにテスト入力信号やテスト出力信号を蓄積する処理や、TSBからテスト入力信号やテスト出力信号を出力する処理などを行う。
【0078】
またデコーダDECは、信号TMD1、TMD2が共にL(ロー)レベル(第1のレベル)の場合には、選択信号SS1をH(ハイ)レベルに設定して、セレクタSEL1に信号M1OUTを選択させると共に、信号SS1をLレベルに設定して、セレクタSEL2にM2OUTを選択させる。これにより動作モードが通常動作モード(テストモードではないモード)になる。
【0079】
また信号TMD1がHレベル(第2のレベル)の場合には、信号SS1、SS2を共にHレベルに設定して、SEL1に信号M1OUTを選択させると共にSEL2に信号SQを選択させる。これにより動作モードが、マクロブロックMB1をテストする第1のテストモードになる。
【0080】
また信号TMD2がHレベルの場合には、信号SS1、SS2を共にLレベルに設定して、SEL1に信号TIN1及びTIN2を選択させると共に、SEL2に信号M2OUTを選択させる。これにより動作モードが、マクロブロックMB2をテストする第2のテストモードになる。
【0081】
5.2 バッファ構成
図10に、テスト用送信バッファTXB、テスト用受信バッファRXB、テスト用バッファTSBのアドレスマップを示す。
【0082】
本実施形態では送信バッファTXB、受信バッファRXBは、各々、4段(広義には複数段)のバッファ構成(FIFO構成)となっている。即ち図10において、TxBuf0、TxBuf1、TxBuf2、TxBuf3は、送信バッファTXBの4段のバッファに相当し、RxBuf0、RxBuf1、RxBuf2、RxBuf3は、受信バッファRXBの4段のバッファに相当する。また、これらの4段の各バッファは8ビット構成になっている。即ち図10において、TxBuf0[7]〜[0]はTxBuf0の各ビットを表す。TxBuf1、TxBuf2、TxBuf3も同様である。またRxBuf0[7]〜[0]はRxBuf0の各ビットを表す。RxBuf1、RxBuf2、RxBuf3も同様である。
【0083】
図10に示すように本実施形態では、端子TPADからの信号TADで指定されるアドレスが0x0〜0x7(16進数表現)の範囲である場合には、送信バッファTXB、受信バッファRXBのいずれかがアドレス指定される。そして端子TPWRからのライト信号TWRがアクティブになると送信バッファTXBが指定され、端子TPRDからのリード信号TRDがアクティブになると受信バッファRXBが指定される。
【0084】
一方、信号TADで指定されるアドレスが0x8〜0xFの範囲である場合には、テスト用バッファTSBがアドレス指定される。また、リード、ライトの指定はリード信号TRD、ライト信号TWRにより行われる。そしてテスト用バッファTSBの各ビットには図10に示すように、TXMODE、XCVRSELECT、TERMSELECT・・・・・TXSTARTなどが割り当てられている。
【0085】
例えばTXMODEは通信シーケンサCSQの送信モードを設定するビットである。TXMODEが「0」に設定されると、通信シーケンサCSQは4バイト(広義には複数バイト)の送信データを送信して停止する。一方、TXMODEが「1」に設定されると、CSQはTxBuf0に蓄積された1バイトの送信データを送信し続ける。
【0086】
またXCVRSELECT、TERMSELECT、OPMODE1・・・・SUSPEND等は、マクロブロックMB2の入力端子(M2IN)に所望の信号レベル(Hレベル、Lレベル)を設定するためのビットである。またMonRXACTIVE、MonRXERROR、MonLINESTATE1、MonLINESTATE0等は、マクロブロックMB2の出力端子(M2OUT)の信号レベルをモニタするためのビットである。
【0087】
またTXSTARTは通信シーケンサCSQに対して送信(テスト用送信)の開始を指示するためのビットであり、TXSTARTを「1」に設定すると送信が開始される。そして送信が完了するとTXSTARTは「0」にクリアされる。またTXMODEが「1」の時にTXSTARTに「0」を書き込むと送信が停止する。
【0088】
さて集積回路においては端子数が増加すると製造コストの増加を招く。このためテスト端子についてもその本数をなるべく少なくできることが望ましい。そこで本実施形態では、図9のテスト端子TPI、TPOの本数を以下に述べるような手法で減少させている。
【0089】
例えばマクロブロックMB2のテストに必要な入力信号がMビットであったとする。この場合に本実施形態では図11(A)(B)に示すように、テスト用バッファTSBが、このMビットのテスト入力信号を、K本(M>K。M、Kは自然数又は2以上の整数)のテスト入力端子TPIからKビット毎に入力して蓄積する。そして、蓄積した信号をテスト入力信号TIN2としてセレクタSEL1に出力する。このようにすることで、本来はM本のテスト入力端子TPIが必要であるのに、これをK本に減らすことができる。
【0090】
例えば図10において、XCVRSELECT〜SUSPENDの全てのビットをTPIとして外部端子に設定すると、12本(M本)の端子が必要になってしまう。これに対して図11(A)(B)では、テスト用バッファTSBが、12ビット(Mビット)のテスト入力信号(XCVRSELECT〜SUSPEND)をTPIから4ビット(Kビット)毎に取り込んで蓄積している。これによりTPIの本数を4本にすることができ、集積回路の端子数を減らすことができる。
【0091】
また送信データ信号や受信データ信号のビット数がNビットであったとする。この場合に本実施形態では図11(C)(D)に示すように、テスト用送信バッファTXBが、このNビットの送信データ信号(テスト入力信号)を、K本(N>K。N、Kは自然数又は2以上の整数)のテスト入力端子TPIからKビット毎に入力して蓄積する。そして蓄積した信号を、テスト入力信号TIN1としてセレクタSEL1に出力する。このようにすることで、本来はN本のテスト入力端子TPIが必要であるのに、これをK本に減らすことができる。また図11(C)(D)では、テスト用受信バッファRXBが、マクロブロックMB2からのNビットの受信データ信号(テスト出力信号)を蓄積し、蓄積した受信データ信号をKビット毎にK本のテスト出力端子TPOに出力する。このようにすることで、本来はN本のテスト出力端子TPOが必要であるのに、これをK本に減らすことができる。
【0092】
例えば図10において、TxBuf0[7]〜TxBuf0[0]の全てのビットをTPIとして外部端子に設定し、RxBuf0[7]〜RxBuf0[0]の全てのビットをTPOとして外部端子に設定すると、TPI、TPOの本数がそれぞれ8本(N本)になり、合計で16本の端子が必要になってしまう。これに対して図11(C)(D)では、送信バッファTXBが、8ビット(Nビット)の送信データ信号を4ビット(Kビット)毎にTPIから入力して蓄積している。また、受信バッファRXBが、8ビットの受信データ信号を4ビット毎にTPOに出力している。これによりTPI、TPOの本数をそれぞれ4本(K本)にすることができ、集積回路の端子数を減らすことができる。
【0093】
更に本実施形態では図9、図10に示すように、4本(K本)の端子TPI、TPOをバッファTXB、RXB、TSBに共通接続し、アドレス信号TADを用いてこれらのバッファTXB、RXB、TSBの各ビットのアドレス指定を行っている。これにより集積回路の端子数を更に減らすことに成功している。
【0094】
5.3 通信シーケンサ
図12に通信シーケンサCSQの構成例を示す。但し通信シーケンサCSQの構成は図12に示すものに限定されない。
【0095】
通信シーケンサCSQは送信シーケンサTSQを含む。このTSQはマクロブロックMB2との間でハンドシェークによる送信処理を行うためのシーケンサである。具体的には送信シーケンサTSQは、送信データ信号DATAINが有効であることを示す信号TXVALID(送信開始信号)をマクロブロックMB2に出力する。そしてMB2は、TXVALIDのアクティブ期間に存在するDATAINを1つのパケットと見なす。この信号TXVALIDは図9において、信号TIN1としてSEL1を介してMB2に出力される。
【0096】
また送信シーケンサTSQは、DATAINのバッファリングが完了したことを示す信号TXREADYを、MB2から受ける。この信号TXREADYは図9において、MB2からSEL2を介して信号TOUT1として送信シーケンサTSQに入力される。
【0097】
そして送信シーケンサTSQは制御信号TCTL(送信開始信号等)を用いてテスト用送信バッファTXBを制御する。具体的には、送信バッファTXBによるテスト入力端子TPIからの信号TIの蓄積処理を制御する。また送信バッファTXBによるマクロブロックMB2への信号DATAINの出力処理を制御する。この場合に本実施形態では、信号DATAINの出力処理の際のクロック周波数CF1(例えば60MHz)よりも遅いクロック周波数CF2で、送信バッファTXBに信号TIを蓄積するようにしている。このようにすれば、信号TIの蓄積処理を、遅いクロック周波数CF2を用いて余裕を持ってできるようになる。従って、テスト入力端子TPIに大きな寄生容量が寄生している場合にも、バラツキの少ない安定したテスト結果を得ることができる。
【0098】
通信シーケンサCSQは受信シーケンサRSQを含む。このRSQはマクロブロックMB2との間でハンドシェークによる受信処理を行うためのシーケンサである。具体的には受信シーケンサRSQは、バスにアクティビティがあることを示す信号RXACTIVEや、受信データ信号DATAOUTが有効であることを示す信号RXVALIDや、パケット受信中にエラーがあったことを示す信号RXERRORを、マクロブロックMB2から受ける。これらの信号RXACTIVE、RXVALID、RXERRORは、図9においてMB2からSEL2を介して信号TOUT1として受信シーケンサRSQに入力される。
【0099】
そして受信シーケンサRSQは制御信号RCTLを用いてテスト用受信バッファRXBを制御する。具体的には、受信バッファRXBによるマクロブロックMB2からの信号DATAOUTの蓄積処理を制御する。また受信バッファRXBによるテスト出力端子TPOへの信号TOの出力処理を制御する。この場合に本実施形態では、信号DATAOUTの蓄積処理の際のクロック周波数CF1(例えば60MHz)よりも遅いクロック周波数CF3で(CF3はCF2と同じでもよい)、信号TOを出力するようにしている。このようにすれば、信号TOの出力処理を、遅いクロック周波数CF3を用いて余裕を持ってできるようになる。従って、テスト出力端子TPOに大きな寄生容量が寄生している場合にも、バラツキの少ない安定したテスト結果を得ることができる
次に図13、図14の波形図を用いて、テスト回路TC及び通信シーケンサCSQの詳細な動作について説明する。
【0100】
まずC1に示すように外部のテスタがテスト端子を用いて、アドレス信号TADを0xBに設定し、ライト信号TWRをアクティブ(Lレベル)にすると共に信号TIを0x0に設定することで、図10のPLLSELECT、OSCENB、CLKSELECT1、CLKSELECT0が全て「0」に設定される。そしてC2に示すようにテスタが、TADを0x8に設定し、TWRをアクティブにすると共にTIを0x0に設定することで、図10のTXMODEが「0」に設定される。これにより、4バイト(複数バイト)の送信データ信号を連続して送信するモードに通信シーケンサCSQが設定される。
【0101】
次にC3に示すようにテスタが、アドレス信号TADを0x0〜0x7に設定し、ライト信号TWRをアクティブにすると共にTIを0xFに設定することで、図10の送信バッファTXBの4段のバッファTxBuf0〜TxBuf3の全てのビットに「1」が書き込まれる。この場合にこの書き込み処理は遅いクロック周波数CF2で行われる。そしてC4に示すようにテスタが、アドレス信号TADを0xFに設定し、ライト信号TWRをアクティブにすると共に信号TIを0x1に設定することで、図10のTXSTARTに「1」が設定される。これにより通信シーケンサCSQによる自動送信処理が開始する。
【0102】
図14は、図13のC5に示す部分を拡大した波形図である。通信シーケンサCSQ(送信シーケンサTSQ)は、送信処理が開始すると図14のD1に示すように信号TXVALIDをアクティブにし、D2に示すようにマクロブロックMB2が信号TXREADYをアクティブにする。そしてD3に示す送信データ信号DATAIN(FF)がMB2に送信される。
【0103】
マクロブロックMB2は、送信データ信号DATAINを受けると、D4に示すように、差動信号DP、DMを用いてUSBバス上での送信処理を開始する。そしてループバックモードに設定されたマクロブロックMB2は、自身が送信した送信データ信号を、ループバックモードで受信データ信号として受信する。そしてD5に示すようにマクロブロックMB2は信号RXACTIVEをアクティブにする。その後、MB2はD6、D7に示すように信号RXVALIDをアクティブにする。すると、これを受けた通信シーケンサCSQ(受信シーケンサRSQ)は、D8、D9に示すMB2からの受信データ信号DATAOUT(FF)をテスト用受信バッファRXBに蓄積する。この場合にこの蓄積処理は速いクロック周波数CF1で行われる。
【0104】
その後、図13のC6に示すようにテスタが、アドレス信号TADを0x0〜0x7に設定し、リード信号TRDをアクティブにすることで、C7に示すように受信バッファRXBに蓄積された受信データ信号TOがテスト出力端子TPOを介してテスタにより読み出される。この場合にこの読み出し処理は遅いクロック周波数CF3により行われる。そして、テスタが、読み出された値と期待値との比較処理を行い、期待値と一致していればテストを合格とし、一致していなければ不合格とする。このようにすることテストが完了する。
【0105】
6.マクロブロック
図15にマクロブロックMB1の一例を示す。なお本実施形態のマクロブロックMB1は図15に示す構成に限定されるものではない。図15のマクロブロックMB1は、SIE(Serial Interface Engine)30、エンドポイント管理回路40、バッファ管理回路50、バッファ60、バルク転送管理回路70、DMAC(Direct Memory Accesss Controller)80を含む。
【0106】
SIE30は、USBのパケット転送処理などの種々の処理を行う回路である。このSIE30(広義には第1のインターフェース回路)はパケットハンドラ回路32、サスペンド&レジューム制御回路34、トランザクション管理回路36を含む。ここでパケットハンドラ回路32は、ヘッダ及びデータからなるパケットの組み立て(生成)や分解などを行ったり、CRCの生成や解読を行う。またサスペンド&レジューム制御回路34は、サスペンドやレジューム時のシーケンス制御を行う。またトランザクション管理回路36は、トークン、データ、ハンドシェークなどのパケットにより構成されるトランザクションを管理する。そしてトランザクション管理回路36は、トークンパケットを受信した場合には、自分宛か否かを確認し、自分宛の場合には、データパケットの転送処理を行い、その後に、ハンドシェークパケットの転送処理を行う。
【0107】
エンドポイント管理回路40は、バッファ60の各記憶領域の入り口となるエンドポイントを管理する回路であり、エンドポイントの属性情報を記憶するレジスタ(レジスタセット)などを含む。
【0108】
バッファ管理回路50は、例えばRAMなどで構成されるバッファ60を管理する回路である。より具体的には、書き込みアドレスや読み出しアドレスを生成し、バッファ60へのデータの書き込み処理やバッファ60からのデータの読み出し処理を行う。
【0109】
バッファ60(パケットバッファ、パケット記憶手段)は、USBを介して転送されるデータ(パケット)を一時的に記憶するものであり、USB(第1のバス)でのデータ転送速度と、EBUS(第2のバス)でのデータ転送速度との速度差を補償する機能などを有する。なお、EBUSは、ハードディスクドライブ、光ディスクドライブ、MPEGエンコーダ、MPEGデコーダなどの外部デバイスに接続される外部バスである。
【0110】
バルク転送管理回路70は、USBにおけるバルク転送を管理するための回路である。またDMAC80(広義には第2のインターフェース回路)は、EBUSを介して外部デバイスとの間でDMA転送を行うためのDMAコントローラである。
【0111】
図16にマクロブロックMB2の一例を示す。なお本実施形態のマクロブロックMB2は図16に示す構成に限定されるものではない。
【0112】
マクロブロックMB2は、データハンドラ回路90、クロック生成回路92、HS(High Speed)回路94、FS(Full Speed)回路96を含む。これらの回路は論理層回路である。またMB2は、物理層回路(PHY)であるアナログフロントエンド回路98(送受信回路)を含む。
【0113】
データハンドラ回路90は、USB2.0等に準拠したデータ転送のための種々の処理を行う。より具体的には、送信時には、送信データにSYNC(SYNChronization)、SOP(Start Of Packet)、EOP(End Of Packet)を付加する処理や、ビットスタッフィング処理等を行う。一方、受信時には、受信データのSYNC、SOP、EOPを検出し、削除する処理や、ビットアンスタッフィング処理などを行う。更に、データハンドラ回路90は、データの送受信を制御するための各種のタイミング信号を生成する処理も行う。
【0114】
USB2.0では、HSモード(広義には第1の転送モード)とFSモード(広義には第2の転送モード)が定義されている。HSモードは、USB2.0により新たに定義された転送モードである。FSモードは、従来のUSB1.1で既に定義されている転送モードである。
【0115】
クロック生成回路92は、HS用の480MHzのクロックや、60MHzのシステムクロックなどの種々の周波数のクロックを生成する回路であり、OSC、PLL480M、PLL60Mを含む。
【0116】
ここでOSC(発振回路)は、例えば外部振動子との組み合わせによりベースクロックを生成する。PLL480Mは、OSC(発振回路)で生成されたベースクロックに基づいて、HSモードで必要な480MHzのクロックと、FSモードやシステムクロックに必要な60MHzのクロックを生成するPLL(Phase Locked Loop)である。PLL60Mは、OSC(発振回路)で生成されたベースクロックに基づいて、FSモードやシステムクロックに必要な60MHzのクロックを生成するPLLである。
【0117】
HS回路94は、データ転送速度が480MbpsとなるHSモードでのデータの送受信を行うためのロジック回路である。一方、FS回路96は、データ転送速度が12MbpsとなるFSモードでのデータの送受信を行うためのロジック回路である。
【0118】
アナログフロントエンド回路98(送受信回路)は、FSモードやHSモードでの送受信を行うためのドライバやレシーバを含むアナログ回路であり、差動信号DP、DMを用いて送受信処理を行う。このアナログフロントエンド回路98には、HSモードでの送受信を行うためのHSモード用ドライバ及びレシーバと、FSモードで送受信を行うためのFSモード用ドライバ及びレシーバを含ませることができる。
【0119】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0120】
例えばテスト回路、第1、第2のマクロブロックの構成は、図2、図7、図9、図15、図16等で説明した構成に限定されず、種々の変形実施が可能である。
【0121】
また本実施形態で説明したセレクタSEL1、SEL2、ダミーのスキャン用フリップフロップDSFF、通信シーケンサCSQ、テスト用送信バッファTXB、テスト用受信バッファRXB、テスト用バッファTSBと均等な回路を用いる場合も、本発明の均等な範囲に含まれる。
【0122】
また、明細書又は図面中の記載において広義な用語(通信マクロブロック仕様、第1のインターフェース回路、第2のインターフェース回路、第1の転送モード、第2の転送モード、(I−J)個、複数段、複数バイト等)として引用された用語(UTMI、SIE、DAMC、HSモード、FSモード、3個、4段、4バイト等)は、明細書又は図面中の他の記載においても広義な用語に置き換えることができる。
【0123】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【図1】図1(A)(B)はマクロブロックを含む集積回路のテスト手法についての説明図である。
【図2】本実施形態のテスト回路の構成例である。
【図3】図3(A)(B)はテスト回路の動作説明図である。
【図4】マクロブロック及びテスト回路にスキャンパスを設定する手法の説明図である。
【図5】図5(A)(B)はスキャン手法の説明図である。
【図6】スキャン手法を利用したテスト方法のフローチャートである。
【図7】ダミーのスキャン用FFを含むテスト回路の例である。
【図8】図8(A)(B)(C)はダミーのスキャン用FFの説明図である。
【図9】本実施形態のテスト回路の詳細例である。
【図10】バッファのアドレスマップの例である。
【図11】図11(A)〜(D)は本実施形態のテスト用バッファ、テスト用送信バッファ、テスト用受信バッファの説明図である。
【図12】通信シーケンサの構成例である。
【図13】テスト回路や通信シーケンサの動作を説明する波形図である。
【図14】テスト回路や通信シーケンサの動作を説明する波形図である。
【図15】マクロブロックMB1の一例である。
【図16】マクロブロックMB2の一例である。
【符号の説明】
MB1 第1のマクロブロック、MB2 第2のマクロブロック、
SEL1 第1のセレクタ、SEL2 第2のセレクタ、
TC テスト回路、SS1、SS2 選択信号、
M1OUT MB1の出力信号、M1IN MB1の入力信号、
M2IN MB2の入力信号、M2OUT MB2の出力信号、
TIN テスト入力信号、TOUT テスト出力信号、
TPI テスト入力端子、TPO テスト出力端子、
SQ SEL1の出力信号、
DSFF、DSFF1〜DSFF3 ダミーのスキャン用フリップフロップ、
CSQ 通信シーケンサ、TXB テスト用送信バッファ、
RXB テスト用受信バッファ、TSB テスト用バッファ、
DEC デコーダ、PHY 物理層回路、
10、12、14 接続部分、30 SIE、32 パケットハンドラ回路、
34 サスペンド&レジューム回路、36 トランザクション管理回路
40 エンドポイント管理回路、50 バッファ管理回路、60 バッファ、
70 バルク転送管理回路、80 DMAC、
90 データハンドラ回路、92 クロック生成回路、94 HS回路、
96 FS回路、98 アナログフロントエンド回路、

Claims (13)

  1. 複数のマクロブロックを含む集積回路のためのテスト回路であって、
    その第1の入力に、第1のマクロブロックからの出力信号が入力され、その第2の入力に、第2のマクロブロック用のテスト入力信号が入力される第1のセレクタと、
    その第1の入力に、第1のセレクタからの出力信号が入力され、その第2の入力に、第2のマクロブロックからの出力信号が入力される第2のセレクタとを含み、
    第1のマクロブロックをテストする第1のテストモード時には、
    前記第1のセレクタが、その第1の入力に入力された第1のマクロブロックからの出力信号を第2のセレクタの第1の入力に出力し、前記第2のセレクタが、その第1の入力に入力された第1のセレクタからの出力信号を第1のマクロブロックに出力し、
    第2のマクロブロックをテストする第2のテストモード時には、
    前記第1のセレクタが、その第2の入力に入力された第2のマクロブロック用のテスト入力信号を第2のマクロブロックに出力し、前記第2のセレクタが、その第2の入力に入力された第2のマクロブロックからの出力信号を第2のマクロブロック用のテスト出力信号として出力することを特徴とするテスト回路。
  2. 請求項1において、
    テスト回路に対して第1のマクロブロックと共にスキャンパスが設定され、
    前記第1のテストモードが、
    前記スキャンパスを用いてスキャン手法でテストを行うスキャンモードであることを特徴とするテスト回路。
  3. 請求項2において、
    第1のマクロブロックからテスト回路への出力信号の本数がI本であり、テスト回路から第1のマクロブロックへの入力信号の本数がJ本(I>J)である場合に、第1のセレクタからのI本の出力信号のうちの(I−J)本の出力信号を保持する(I−J)個のダミーのスキャン用フリップフロップを含み、
    前記スキャンモード時において、前記ダミーのスキャン用フリップフロップが、保持された出力信号をスキャンパスを介して出力することを特徴とするテスト回路。
  4. 請求項1乃至3のいずれかにおいて、
    Mビットの第2のマクロブロック用のテスト入力信号を、K本(M>K)のテスト入力端子からKビット毎に入力して蓄積し、蓄積したテスト入力信号を第1のセレクタに出力するテスト用バッファを含むことを特徴とするテスト回路。
  5. 請求項1乃至4のいずれかにおいて、
    第2のマクロブロックが、データ通信用の物理層回路を含むマクロブロックであり、
    第2のマクロブロックとの間で所定の通信手順で送受信処理を行うための通信シーケンサを含み、
    前記通信シーケンサが、
    前記第2のテストモード時において、第2のマクロブロックへの送信データ信号を、第1のセレクタを介して第2のマクロブロックに送信する処理を行い、第2のマクロブロックからの受信データ信号を、第2のセレクタを介して第2のマクロブロックから受信する処理を行うことを特徴とするテスト回路。
  6. 請求項5において、
    第2のマクロブロックへの送信データ信号を蓄積するテスト用送信バッファと、
    第2のマクロブロックからの受信データ信号を蓄積するテスト用受信バッファとを含むことを特徴とするテスト回路。
  7. 請求項6において、
    前記テスト用送信バッファが、
    テスト入力端子から入力された送信データ信号を蓄積し、
    前記通信シーケンサが、
    前記テスト用送信バッファによる送信データ信号の蓄積が完了した後に、蓄積された送信データ信号を、第1のセレクタを介して第2のマクロブロックに送信する処理を行うと共に、ループバックモードに設定された第2のマクロブロックからの受信データ信号を受信する処理を行い、
    前記テスト用受信バッファが、
    受信された受信データ信号を蓄積し、蓄積した受信データ信号をテスト出力端子に出力することを特徴とするテスト回路。
  8. 請求項6又は7において、
    前記テスト用送信バッファが、
    第2のマクロブロックへのNビットの送信データ信号をK本(N>K)のテスト入力端子からKビット毎に入力し、
    前記テスト用受信バッファが、
    第2のマクロブロックからのNビットの受信データ信号を蓄積し、蓄積した受信データ信号をKビット毎にK本のテスト出力端子に出力することを特徴とするテスト回路。
  9. 請求項1乃至8のいずれかのテスト回路と、
    前記第1のマクロブロックと、
    前記第2のマクロブロックと、
    を含むことを特徴とする集積回路。
  10. その第1の入力に、第1のマクロブロックからの出力信号が入力され、その第2の入力に、第2のマクロブロック用のテスト入力信号が入力される第1のセレクタと、その第1の入力に、第1のセレクタからの出力信号が入力され、その第2の入力に、第2のマクロブロックからの出力信号が入力される第2のセレクタとを含むテスト回路を用いたテスト方法であって、
    第1のマクロブロックをテストする第1のテストモード時には、
    第1のセレクタの第1の入力に入力された第1のマクロブロックからの出力信号を、第2のセレクタの第1の入力に出力し、第2のセレクタの第1の入力に入力された第1のセレクタからの出力信号を、第1のマクロブロックに出力し、
    第2のマクロブロックをテストする第2のテストモード時には、
    第1のセレクタの第2の入力に入力された第2のマクロブロック用のテスト入力信号を、第2のマクロブロックに出力し、第2のセレクタの第2の入力に入力された第2のマクロブロックからの出力信号を、第2のマクロブロック用のテスト出力信号として出力することを特徴とするテスト方法。
  11. 請求項10において、
    テスト回路に対して第1のマクロブロックと共にスキャンパスを設定し、
    前記第1のテストモード時において、スキャンパスを用いてスキャン手法でテストを行うことを特徴とするテスト方法。
  12. 請求項11において、
    第1のマクロブロックからテスト回路への出力信号の本数がI本であり、テスト回路から第1のマクロブロックへの入力信号の本数がJ本(I>J)である場合に、第1のセレクタからのI本の出力信号のうちの(I−J)本の出力信号を保持し、
    前記スキャンモード時において、保持された出力信号をスキャンパスを介して出力することを特徴とするテスト方法。
  13. 請求項10乃至12のいずれかにおいて、
    前記テスト回路が、第2のマクロブロックとの間で所定の通信手順で送受信処理を行うための通信シーケンサを含み、
    前記第2のテストモード時において、前記通信シーケンサを用いて、第2のマクロブロックへの送信データ信号を、第1のセレクタを介して第2のマクロブロックに送信し、第2のマクロブロックからの受信データ信号を、第2のセレクタを介して第2のマクロブロックから受信することを特徴とするテスト方法。
JP2003022235A 2003-01-30 2003-01-30 テスト回路、集積回路及びテスト方法 Expired - Fee Related JP3632691B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003022235A JP3632691B2 (ja) 2003-01-30 2003-01-30 テスト回路、集積回路及びテスト方法
US10/765,895 US7299389B2 (en) 2003-01-30 2004-01-29 Test circuit, integrated circuit, and test method
CNA2004100393789A CN1519576A (zh) 2003-01-30 2004-01-30 测试电路、集成电路及其测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003022235A JP3632691B2 (ja) 2003-01-30 2003-01-30 テスト回路、集積回路及びテスト方法

Publications (2)

Publication Number Publication Date
JP2004233200A JP2004233200A (ja) 2004-08-19
JP3632691B2 true JP3632691B2 (ja) 2005-03-23

Family

ID=32951356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003022235A Expired - Fee Related JP3632691B2 (ja) 2003-01-30 2003-01-30 テスト回路、集積回路及びテスト方法

Country Status (3)

Country Link
US (1) US7299389B2 (ja)
JP (1) JP3632691B2 (ja)
CN (1) CN1519576A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7184929B2 (en) * 2004-01-28 2007-02-27 Microsoft Corporation Exponential priors for maximum entropy models
US7519111B2 (en) * 2004-03-15 2009-04-14 Texas Instruments Incorporated Apparatus and method for providing system and test clock signals to an integrated circuit on a single pin
US7282925B2 (en) * 2004-10-25 2007-10-16 Dell Products L.P. Apparatus to facilitate functional shock and vibration testing of device connections and related method
US7884599B2 (en) * 2006-07-24 2011-02-08 International Business Machines Corporation HDL design structure for integrating test structures into an integrated circuit design
US7382149B2 (en) * 2006-07-24 2008-06-03 International Business Machines Corporation System for acquiring device parameters
US20080222584A1 (en) * 2006-07-24 2008-09-11 Nazmul Habib Method in a Computer-aided Design System for Generating a Functional Design Model of a Test Structure
JP4422134B2 (ja) * 2006-09-29 2010-02-24 Okiセミコンダクタ株式会社 Usbテスト回路
US7945827B1 (en) * 2006-12-28 2011-05-17 Marvell International Technology Ltd. Method and device for scan chain management of dies reused in a multi-chip package
JP5096024B2 (ja) * 2007-03-19 2012-12-12 株式会社リコー Usbコントローラ及びusbコントローラ試験方法
US8103464B2 (en) * 2007-03-22 2012-01-24 Renesas Electronics Corporation Test circuit, pattern generating apparatus, and pattern generating method
ES2883587T3 (es) 2007-04-12 2021-12-09 Rambus Inc Sistema de memoria con interconexión de solicitud punto a punto
US20090083690A1 (en) * 2007-09-24 2009-03-26 Nazmul Habib System for and method of integrating test structures into an integrated circuit
JP5074294B2 (ja) * 2008-05-22 2012-11-14 ルネサスエレクトロニクス株式会社 半導体装置のテスト方法
US8543873B2 (en) * 2010-01-06 2013-09-24 Silicon Image, Inc. Multi-site testing of computer memory devices and serial IO ports
US8479070B2 (en) * 2010-06-24 2013-07-02 International Business Machines Corporation Integrated circuit arrangement for test inputs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09127199A (ja) * 1995-10-30 1997-05-16 Toshiba Corp 論理回路及びその試験方法
JP3961607B2 (ja) * 1997-03-04 2007-08-22 株式会社東芝 集積回路装置のテスト回路およびテスト方法
US6586266B1 (en) * 1999-03-01 2003-07-01 Megic Corporation High performance sub-system design and assembly
US6180426B1 (en) * 1999-03-01 2001-01-30 Mou-Shiung Lin High performance sub-system design and assembly
JP3677422B2 (ja) 1999-12-27 2005-08-03 株式会社東芝 集積回路及びその設計方法
DE10241385A1 (de) * 2002-09-06 2004-03-25 Infineon Technologies Ag Integrierter Schaltkreis

Also Published As

Publication number Publication date
JP2004233200A (ja) 2004-08-19
US7299389B2 (en) 2007-11-20
CN1519576A (zh) 2004-08-11
US20040260992A1 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
JP3632692B2 (ja) テスト回路、集積回路及びテスト方法
JP3632691B2 (ja) テスト回路、集積回路及びテスト方法
US8726112B2 (en) Scan test application through high-speed serial input/outputs
TWI506291B (zh) 積體電路及於積體電路中建立掃描測試架構之方法
US7484188B2 (en) On-chip test circuit and method for testing of system-on-chip (SOC) integrated circuits
US20030023912A1 (en) Integrated testing of serializer/deserializer in FPGA
JP2003332443A (ja) 半導体集積回路とその設計支援装置およびテスト方法
US20050204228A1 (en) Low power scan & delay test method and apparatus
WO2011059439A2 (en) Scan test application through high-speed serial input/outputs
JP2006250824A (ja) 半導体集積回路およびその半導体集積回路におけるデータ解析方法
US8145963B2 (en) Semiconductor integrated circuit device and delay fault testing method thereof
US6834368B2 (en) Semiconductor integrated circuit including a test facilitation circuit for functional blocks intellectual properties and automatic insertion method of the same test facilitation circuit
KR100915822B1 (ko) 바운더리 스캔 테스트 회로 및 바운더리 스캔 테스트 방법
Larsson et al. IEEE Std. P1687. 1: Translator and protocol
CN100442072C (zh) 用以测试数字逻辑电路的测试电路
CN105988080A (zh) 建立扫描测试架构的方法和集成电路与电子装置
JP2002181903A (ja) 試験アーキテクチャ
JP4610919B2 (ja) 半導体集積回路装置
JP4416469B2 (ja) 半導体集積回路およびその設計方法
CN115562925B (zh) 一种芯片接口测试系统、方法、设备及存储介质
US20070283203A1 (en) Semiconductor apparatus and method of disposing observation flip-flop
Praneeth et al. A Novel Architecture Design of a USB Module in Wireless Modem for IOT Applications
US20050044461A1 (en) Semiconductor device test circuit and semiconductor device
JP2004294213A (ja) スキャン機能付フリップフロップ回路およびスキャンテスト回路ならびにスキャンテスト回路配線方法
JP2001153928A (ja) バウンダリスキャン回路

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041213

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090107

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100107

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110107

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110107

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120107

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120107

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130107

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130107

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees