JP2011203158A - 半導体集積回路のテスト回路、テスト方法、テストパタン作成方法、及びテストパタン作成プログラム - Google Patents

半導体集積回路のテスト回路、テスト方法、テストパタン作成方法、及びテストパタン作成プログラム Download PDF

Info

Publication number
JP2011203158A
JP2011203158A JP2010071652A JP2010071652A JP2011203158A JP 2011203158 A JP2011203158 A JP 2011203158A JP 2010071652 A JP2010071652 A JP 2010071652A JP 2010071652 A JP2010071652 A JP 2010071652A JP 2011203158 A JP2011203158 A JP 2011203158A
Authority
JP
Japan
Prior art keywords
clock
test
circuit
semiconductor integrated
trigger
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.)
Withdrawn
Application number
JP2010071652A
Other languages
English (en)
Inventor
Takeshi Yoshikoshi
健 吉越
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010071652A priority Critical patent/JP2011203158A/ja
Publication of JP2011203158A publication Critical patent/JP2011203158A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

【課題】複数のクロックドメインを用いる半導体集積回路のテスト回路において、ダブルクロックを印加するタイミングを任意に設定することを可能にする。
【解決手段】複数のトリガクロックのうち、被テスト回路の複数のクロックドメインのクロックうちの選択クロックに対応する選択トリガクロックにおいてダブルクロックの抽出トリガを検出するとイネーブル信号を出力するダブルクロック抽出回路と、イネーブル信号をトリガとして選択クロックからダブルクロックを抽出するクロックマスク回路と、ダブルクロックを入力して被テスト回路に対してスキャンテストを実行するスキャンフリップフロップとを備える。ダブルクロック抽出回路と、クロックマスク回路と、スキャンフリップフロップとは、複数のクロックドメインに対応して設けられる。抽出トリガは、複数のクロックドメイン間においてダブルクロックを出力するべきタイミング関係に基づいて選択トリガクロックの各々に設定される。
【選択図】図10

Description

本発明は、遅延故障試験を行う半導体集積回路のテスト回路に関する。
半導体集積回路は、製造後に不良の有無を確認するために試験(以下、テスト)が行われる。このようなテストに関し、テスタビリティを高めるテスト設計の一手法として、スキャンテスト設計が知られている。
遅延故障テストは、スキャンテストのうちの一つのテスト技術である。遅延故障テストは、半導体集積回路が実動作速度で正常に動作するかを確認するテストである。スキャンテストは、高速化の進む半導体集積回路における必須の技術である。半導体集積回路の1チップに搭載される機能ブロック数の増加に伴い、テスト設計の困難性が増して半導体集積回路の設計期間も長期化している。また、半導体集積回路の回路規模の増加により、テストパタンも膨大な量となりテスト実行時間も増加している。半導体集積回路のテスタビリティを高めて製造後の不良を減少させ、かつ、設計期間やテスト実行時間の増加を抑えることが可能なテスト設計やテストパタン生成技術が求められている。
遅延故障テストは、シフト動作と、ラウンチ動作と、キャプチャ動作とからなる。シフト動作は、スキャンチェーンを用いて、複数のスキャンフリップフロップにデータを順に設定する動作である。ラウンチ動作は、設定されたデータをユーザ仕様に基づいて構成された回路(以下、ユーザ回路)のうち、テスト対象の回路(以下、被テスト回路)の信号ラインに遷移させる動作である。キャプチャ動作は、遷移させたデータを実動作速度でスキャンフリップフロップに取り込む動作である。
また、遅延故障テストには、シングルキャプチャ手法と、マルチキャプチャ(以下、「複数キャプチャ」も同義)手法とが存在する。シングルキャプチャ手法は、前述の3つの動作からなる一連の動作を1パタンセットとする場合に、複数クロックドメインからなる半導体集積回路において、1パタンセットで1つのクロックドメインの被テスト回路のパスのみをテストする手法である。一方、マルチキャプチャ手法は、前述の3つの動作からなる一連の動作を1パタンセットとする場合に、複数クロックドメインからなる半導体集積回路において、1パタンセットで複数のクロックドメインの被テスト回路の信号ラインをテストする手法である。特許文献1は、マルチキャプチャ手法により、複数パタンセット実施するようなテスト設計の効率化を図る技術を開示している。
なお、以下では、半導体集積回路においてユーザ回路の被テスト回路に対するスキャンテストを行うためにユーザ回路へ組み込まれた回路をテスト回路と呼ぶ。また、ユーザ回路が活性化された状態をユーザモードと呼び、ユーザ回路をテストする為にテスト回路が活性化した状態をテストモードと呼ぶ。ユーザモードとテストモードとは、モードを切り替えるための信号により切り替えを行えるものとする。
[半導体集積回路の設計手順]
以下に、従来の半導体集積回路設計における仕様設計からテストパタン作成までのフローを説明する。図1は、従来の半導体集積回路設計における仕様設計からテストパタン作成までを説明するフローチャートである。本説明では、テスト容易化手法としてマルチキャプチャ手法を含むテスト設計手法を適用してテストパタンを作成する。
まず、半導体集積回路で実現するべき仕様やシステム設計が行われる(ステップS1101)。次に、動作レベル設計が行われた後に(ステップS1102)、動作レベル検証が行われる(ステップS1103)。動作レベル検証に問題がある場合、仕様と動作レベル検証の結果とが一致するまで繰り返される(ステップS1103のNG)。一方、仕様と動作レベル検証の結果が一致すると(ステップS1103のOK)、論理合成が行われて、動作レベル記述がゲートレベルの回路に置き換えられる(ステップS1104)。続いて、ゲートレベル回路に置き換えられた回路の動作速度やチップサイズを考慮したタイミング検証が行われる(ステップS1105)。タイミング検証に問題がある場合(ステップS1105のNG)、論理合成で修正可能であるかが判定され(ステップS1106)、論理合成で修正が可能な場合(ステップS1106のYES)、ステップS1104へ戻って再び論理合成が行われる。一方、論理合成で修正可能でない場合(ステップS1106のNO)、ステップS1102の動作レベル設計へ戻る。タイミング検証に問題がない場合(ステップS1105のOK)、ユーザ回路が完成されて、テスト容易化設計工程(ステップS1151)へ移行する。
テスト容易化設計工程(ステップS1151)では、スキャンテストによりユーザ回路のテストを行うテスト回路を、ユーザ回路内に構築するためのテスト容易化設計が行われる(ステップS1107)。テスト回路が構築されると、論理検証が行われてテスト回路の妥当性が検証される(ステップS1108)。論理検証において問題がある場合(ステップS1108のNG)、ゲートレベルの回路修正で修正可能であるかが判定され(ステップS1109)、ゲートレベルの回路修正で修正可能な場合(ステップS1109のYES)、ステップS1107へ戻って回路修正が行われる。ゲートレベルの回路修正で修正可能でない場合(ステップS1109のNO)、ステップS1106へ戻って、論理合成で修正可能であるかが判定される。論理検証において問題がない場合(ステップS1108のOK)、内部にテスト回路の構築されたユーザ回路のゲートレベルのネットリストが完成される。
続いて、完成されたネットリストを用いて回路のレイアウト設計を行う(ステップS1110)。レイアウト設計により遅延情報とネットリストが出力されると、パタン作成工程(ステップS1152)へ移行する。
パタン作成工程(ステップS1152)では、レイアウト設計により出力された遅延情報とネットリストを用いたタイミング検証が実行される(ステップS1111)。タイミング検証に問題がある場合(ステップS1111のNG)、レイアウト修正で修正可能かどうかが判定され(ステップS1112)、レイアウト修正で修正可能な場合(ステップS1112のYES)、ステップS1110へ戻ってレイアウト設計が行われる。レイアウト修正で修正可能でない場合(ステップS1112のNO)ステップS1109へ戻り、ゲートレベルの回路修正で修正可能であるかが判定される。タイミング検証に問題がない場合(ステップS1111のOK)、ステップS1110で出力されたネットリストを用いて、テストパタン生成ツール(ATPG:Automatic Test Pattern Generator)によりテストパタンが作成される(ステップS1113)。このようにして、半導体集積回路設計において回路の仕様設計からテストパタン作成までが行われる。
以上が、従来の半導体集積回路設計における仕様設計からテストパタン作成までのフローの説明である。
[テスト容易化設計工程の手順]
次に、マルチキャプチャ手法を含むテスト容易化設計のフローを説明する。図2は、特許文献1におけるテスト容易化設計を説明する流れ図である。なお、本説明は、図1のステップS1151におけるテスト容易化設計工程を詳細に説明するものであり、特許文献1において複数キャプチャセルフテスト計算機援用設計(CAD)システムとして開示されている。
複数キャプチャセルフテスト計算機援用設計(CAD)システムは、ユーザが供給するHDLコードまたはネットリスト2402を、セルフテスト制御ファイル2401および選択されたファウンドリライブラリ2403と共に受け入れる。セルフテスト制御ファイル2401には、コンパイル2404、セルフテストルールチェック2406、セルフテストルール修復2507、および複数キャプチャセルフテスト合成2408に必要なすべてのセットアップ情報およびスクリプトが含まれる。その結果、同等の組合せ回路モデル2409が生成される。その後、組合せ故障シミュレーション2410を実行することができる。最後に、後処理2411を使用して、最終的なセルフテストのHDLコードまたはネットリスト2413ならびにHDLテストベンチおよびATEテストプログラム2412を作る。すべてのレポートおよびエラーが、レポートファイル2414に保管され、テスト容易化設計工程(ステップS1151)が完了する。
以上が、マルチキャプチャ手法を含むテスト容易化設計のフローの説明である。
[半導体集積回路のテスト回路の構成]
次に、特許文献1による半導体集積回路のテスト回路の構成例の説明を行う。ここでは、図2で説明を行ったテスト容易化設計工程(ステップS1151)の複数キャプチャセルフテスト合成2408で構築される半導体集積回路のテスト回路の構成例の説明を行う。図3は、特許文献1による半導体集積回路のテスト回路の構成例を示す図である。従来、複数キャプチャを用いたテスト回路では、デイジーチェーンクロックトリガ技法を使用して、キャプチャクロックを次々に生成し、順序付ける。これにより、デイジーチェーンクロックトリガ技法を使った回路構成は、キャプチャクロックのエッジによって第2のキャプチャクロックがトリガされるカスケード接続構成とすることで容易に実現できる。デイジーチェーンクロックトリガ技法は、特許文献1に開示されている。
図3に示された半導体集積回路は、ダブルクロック抽出回路ユニット1300と、マルチプレクサ603、604、607、608と、スキャンフリップフロップ609、610、611、612と、組み合わせ回路613と、インバータ回路614と、2入力AND回路615と、クロックマスク回路605、606とを備える。
ここで、ダブルクロックとは、遅延故障テストにおけるラウンチ期間からキャプチャ期間に検出されるラウンチクロックとキャプチャクロックの二つのクロックを示す。ダブルクロック抽出回路は、ユーザ回路の動作に用いられるクロック信号からダブルクロックを抽出するためのイネーブル信号を出力する回路であり、ユーザ回路中に構築される。
ダブルクロック抽出回路ユニット1300は、遅延故障テストのマルチキャプチャ手法において、2つのクロックドメインが存在する場合の、ダブルクロック抽出回路1301、1303を備える。ダブルクロック抽出回路1301、1303は、第1入力端子(i_enable)がハイレベルの時に、第2入力端子(i_start_n)がロウレベルになったのを起点として、第3入力端子(i_clock)へ入力されるクロック信号の2クロック分のハイパルスを、第1出力端子(o_clk_en_ctrl)から出力する。また、ダブルクロック抽出回路1301は、第1出力端子から出力されるハイパルスがロウレベルになるのと同時に、第2出力端子(o_finish_n)からロウレベルの終了信号を出力する。ダブルクロック抽出回路1301の第2出力端子と、ダブルクロック抽出回路1303の第2入力端子とは接続されている。ダブルクロック抽出回路1303は、ダブルクロック抽出回路1301からの終了信号を、第2入力端子入力する。
マルチプレクサ603、604、607、608は、入力端子S0に入力された値に応じて入力端子D0とD1のいずれかの値を出力端子Yに出力する。クロックマスク回路605、606は、入力端子IN1がハイレベルのとき、入力端子IN2の値を出力端子OUT1へ出力する。
スキャンフリップフロップ609、610、611、612は、入力端子CLKに入力されるクロック信号の立ち上がりに同期して、入力端子D、または入力端子SIに入力されるデータを記憶して、出力端子Qから出力する。また、スキャンフリップフロップ609、610、611、612は、入力端子SMCにロウレベルが入力されると入力端子Dの値を出力端子Qに出力し、入力端子SMCにハイレベルが入力されると入力端子SIの値を出力端子Qに出力する。
組み合わせ回路613は、入力端子DI、IN11、IN12、IN21、IN22と、出力端子OUT11、OUT12、OUT21、OUT22、DOとを備えるユーザ回路である。インバータ回路614は、入力端子Aの値を論理反転して出力端子YBから出力する。AND回路615は、入力端子Aと入力端子Bに入力された値をAND演算して出力端子Yから出力する。
また、入力信号SIN1は、シフト期間中にスキャンフリップフロップ609の入力端子SIへ入力されるシフトデータである。入力信号SIN2は、シフト期間中にスキャンフリップフロップ610の入力端子SIへ入力されるシフトデータである。入力信号DIは、組み合わせ回路613の入力端子DIへ入力される入力データである。
入力信号CLK1と、CLK2とは、ユーザ回路の動作に用いるクロック信号である。入力信号CLK1、CLK2は、それぞれ、二つのクロックドメインにおけるクロック信号である。入力信号CLK1は、ダブルクロック抽出回路1301の第3入力端子と、クロックマスク回路605の入力端子IN2に入力されるクロック信号である。入力信号CLK2は、ダブルクロック抽出回路1303の第3入力端子と、クロックマスク回路606の入力端子IN2に入力されるクロック信号である。入力信号CLK1とCLK2は、半導体集積回路の外部(以下、外部)から入力されたLSIテスタ装置で扱うことが可能な動作周波数の低速クロック(以下、低速クロック)信号である。
入力信号INCLK1は、マルチプレクサ607の入力端子D1に入力されるクロック信号である。入力信号INCLK2は、マルチプレクサ608の入力端子D1に入力するクロック信号である。入力信号TEは、ユーザモード時にロウレベル、テストモード時にハイレベルに切り替わるテストイネーブル信号である。入力信号TEは、ダブルクロック抽出回路1301、1303の第1入力端子と、インバータ回路614の入力端子Aと、マルチプレクサ603、604の入力端子Sと、AND回路615の入力端子Aとへ入力される。入力信号SEは、テストモード時において、ハイレベルの場合にシフト期間となり、ロウレベルの場合にラウンチ−キャプチャ期間となるよう切り替えを行うためのスキャンイネーブル信号である。入力信号SEは、ダブルクロック抽出回路1301の第2入力端子と、AND回路615の入力端子Bと、スキャンフリップフロップ609、610、611、612のSMC端子とに、それぞれ入力される。
以上が、特許文献1による半導体集積回路のテスト回路の構成例の説明である。
[半導体集積回路のテスト回路の動作方法]
次に、以上のような、特許文献1による半導体集積回路のテスト回路の構成例における動作方法の説明を行う。ここでは、ダブルクロック抽出回路のユーザモード時、及びテストモード時の動作方法を説明する。
まず、ユーザモード時の説明を行う。ユーザモード時において、入力信号TEは、ロウレベルである。ユーザモードにおいて、ダブルクロック抽出回路1301、1303は、半導体集積回路の動作には無関係であり、入力信号CLK1、CLK2がユーザ回路のクロックとして使用される。
ダブルクロック抽出回路1301、1303の第1入力端子は、ロウレベルの入力信号TEを入力している。この間、第1出力端子は、ロウレベルの信号を、マルチプレクサ603、604の入力端子D1へ出力する。マルチプレクサ603、604の入力端子S0は、ロウレベルの入力信号TEを入力している。そのため、マルチプレクサ603、604の出力端子Yは、入力端子D0を選択している。これにより、ダブルクロック抽出回路1301、1303の動作は、スキャンフリップフロップ609、610、611、612の入力端子CLKのクロック印加には関係しない。
ユーザモード時において、スキャンフリップフロップ609、610、611、612の入力端子CLKには、ユーザ回路の動作に用いる入力信号CLK1,CLK2が、クロックマスク回路605、606、及びマルチプレクサ607、608を経由して印加され、組み合わせ回路613を含むユーザ回路が動作する。
次に、テストモード時の説明を行う。まず、テストモード時におけるシフト動作が行われるシフト期間中は、入力信号TE、入力信号SEがそれぞれハイレベルである。このとき、ダブルクロック抽出回路1301、1303は、半導体集積回路の動作には無関係であり、入力信号INCLK1、CLK2がシフトクロックとして使用される。
まず、シフト期間において、ダブルクロック抽出回路1301、1303の第2入力端子は、ハイレベルの入力信号SEを入力している。この間、第1出力端子は、ロウレベルの信号をマルチプレクサ603、604へ出力する。マルチプレクサ603、604の入力端子S0は、ハイレベルの入力信号TEを入力している。そのため、マルチプレクサ603、604の出力端子Yは、入力端子D1を選択する。マルチプレクサ603、604は、入力端子D1にダブルクロック抽出回路1301、1303からのロウレベルの信号が入力しているため、出力端子Yからロウレベルの信号をクロックマスク回路605、606へ出力する。クロックマスク回路605、606は、入力端子IN1にロウレベルの信号が入力されるため、入力端子IN2に入力される入力信号CLK1、CLK2を出力しない。このように、ダブルクロック抽出回路1301、1303の動作により入力信号CLK1、CLK2はマスクされる。
マルチプレクサ607、608は、入力端子S0にハイレベルの信号が入力されるため、入力端子D1が出力として選択される。スキャンフリップフロップ609、610、611、612の入力端子CLKは、マルチプレクサ607、608の出力端子Yから出力された入力信号INCLK1、INCLK2が入力される。また、スキャンフリップフロップ609、610、611、612の入力端子SMCには、ハイレベルの入力信号SEを入力しており、入力端子SIからデータがシフトされる。
次に、テストモード時におけるラウンチ動作及びキャプチャ動作を行うラウンチ−キャプチャ期間において、入力信号TEはハイレベルであり、入力信号SEはロウレベルである。このとき、ダブルクロック抽出回路1301、1303は、ダブルクロックを抽出するためのハイレベルのイネーブル信号を出力しており、このイネーブル信号によって抽出されたダブルクロックを用いて遅延故障テストが行われる。なお、ダブルクロック抽出回路1301と1303とは、カスケード接続されているため、ダブルクロック抽出回路1301からハイレベルのイネーブル信号が出力された後、ダブルクロック抽出回路1303からハイレベルのイネーブル信号が出力される。
まず、入力信号SEが、ユーザ回路の動作に用いるクロックである入力信号CLK1ドメイン側となるダブルクロック抽出回路1301の第2入力端子へ入力される。入力信号SEがハイレベルからロウレベルへ変化するのを起点として、第1出力端子は、第3入力端子に入力される入力信号CLK1における2クロック分のハイパルスをマルチプレクサ603へ出力する。このとき、マルチプレクサ603は、入力端子S0にハイレベルの入力信号TEを入力しているので、入力端子D1を出力として選択する。そのため、マルチプレクサ603は、ダブルクロック抽出回路1301から入力端子D1へ入力した入力信号CLK1における2クロック分のハイパルスを出力端子Yからクロックマスク回路605へ出力する。
クロックマスク回路605は、入力端子IN1へ入力信号CLK1における2クロック分のハイパルスが入力されている間、入力端子IN2に入力される入力信号CLKを、出力端子OUT1へ出力する。すなわち、クロックマスク回路605は、入力端子IN2に入力される入力信号CLK1からダブルクロックが抽出される。マルチプレクサ607は、入力端子S0にロウレベルの信号を入力する。そのため、マルチプレクサ607は、入力端子D0に入力されるダブルクロックを出力として選択して、出力端子Yへ出力する。スキャンフリップフロップ609、611は、入力端子CLKに、マルチプレクサ607からダブルクロックを入力し、遅延故障テストが行われる。
一方、ダブルクロック抽出回路1303は、ダブルクロック抽出回路1301の第2出力端子がハイレベルからロウレベルへ変化したのを起点として、第3入力端子へ入力される入力信号CLK2における2クロック分のハイパルスを第1出力端子からマルチプレクサ604へ出力する。マルチプレクサ604は、入力端子S0にハイレベルの入力信号TEを入力しており、入力端子D1を出力として選択する。マルチプレクサ604は、入力端子D1に入力する入力信号CLK2における2クロック分のハイパルスを出力Yからクロックマスク回路606へ出力する。
クロックマスク回路606は、入力端子IN1に2クロック分のハイパルスを入力している間、入力端子IN2に入力する入力信号CLK2を出力端子OUT1へ出力からマルチプレクサ608へ出力してダブルクロックを抽出する。マルチプレクサ608は、入力端子S0にロウレベルの信号を入力しており、入力端子D0を出力として選択する。マルチプレクサ608は、入力端子D0に入力されるダブルクロックを出力Yから、スキャンフリップフロップ610、612へ出力する。スキャンフリップフロップ610、612は、入力端子CLKにダブルクロックを入力して、遅延故障テストを実行する。
以上が、従来技術による半導体集積回路のテスト回路の構成例における動作方法の説明である。
次に、特許文献1によるキャプチャクロックの順序付けを行って各クロックドメイン内の遅延故障およびクロックドメインにまたがる縮退故障を検出するか突き止める動作の説明を行う。図4Aは、特許文献1による半導体集積回路のテスト回路のデイジーチェーンクロックトリガ技法のタイミングチャートである。
図4Aを参照すると異なる周波数で動作する4つのキャプチャクロックCK1、CK2、CK3、CK4の波形のシーケンスが示されている。各シフトサイクル1014中に、異なる周波数の一連のクロックパルスが、キャプチャクロックCK1からCK4を介して印加される。各キャプチャサイクル1015中に、4組のキャプチャクロックパルスが、次の順序で印加される。第1に、CK1のダブルクロックが印加されて、クロックドメイン内の遅延故障が検出されるか突き止められる。第2に、CK2のダブルクロックが印加されて、クロックドメイン内の遅延故障が検出されるか突き止められる。第3に、CK3のダブルクロックが印加されて、クロックドメイン内の遅延故障が検出されるか突き止められる。第4に、CK4のダブルクロックが印加されて、クロックドメイン内の遅延故障が検出されるか突き止められる。
さらに、それぞれのクロッシングクロックドメイン間の縮退故障も、下記の条件が満足される場合に同時に検出されるか突き止められる。CK1のダブルクロックの第2のパルスの立ち上がりエッジとCK2のダブルクロックの第1のパルスの立ち上がりエッジの間の相対クロック遅延を調整し、その結果、クロッシングクロックドメイン論理を介してキャプチャされている間に競合またはタイミング違反が発生しないようにしなければならない。同一の原理が、それぞれ、CK2とCK3の間の相対クロック遅延、およびCK3とCK4の間の相対クロック遅延にも適用される。
デイジーチェーンクロックトリガ技法を使用して、次の形でキャプチャクロックのシーケンスを次々に生成し、順序付ける。シフトサイクルの最後のパルスの立ち上がりエッジによって、グローバル走査イネーブルGSE801に0を印加するイベント1001がトリガされ、テスト動作がシフトサイクルからキャプチャサイクルに切り替えられる。GSE801の立ち下がりエッジによって、CK1にダブルクロックを印加するイベント1002がトリガされる。同様に、CK1の第2のキャプチャパルスの立ち上がりエッジによって、CK2にダブルクロックを印加するイベント1003がトリガされ、CK2の第2のキャプチャパルスの立ち上がりエッジによって、CK3にダブルクロックを印加するイベント1004がトリガされ、CK3の第2のキャプチャパルスの立ち上がりエッジによって、CK4にダブルクロックを印加するイベント1005がトリガされる。最後に、CK4の第2のキャプチャパルスの立ち上がりエッジによって、グローバル走査イネーブルGSE801に1を印加するイベント1006がトリガされ、テスト動作が、キャプチャサイクルからシフトサイクルに切り替えられる。
次に、図4Bを参照して、特許文献1による半導体集積回路のテスト回路の一例におけるタイミングチャートの説明を行う。図4Bは、特許文献1による半導体集積回路のテスト回路の構成例におけるタイミングチャートである。図4Aにおいて説明したデイジーチェーンクロックトリガ技法を取り込んだ具体的なテスト回路の構成例を図3に示しており、図4Bでは、図3の回路の動作を示すタイミングチャートを示している。図4Bにおいて、縦軸は、各信号のレベルを示しており、横軸は、時間を示している。なお、入力信号CLK1、及びCLK2は、簡易のため、まとめて記載している。
入力信号TEは、ユーザモードとテストモードとの切り替え信号である。入力信号TEは、時刻T1401から時刻T1410までハイレベルであり、この期間がテストモードの期間となる。入力信号SEは、ラウンチ−キャプチャ期間の切り替え信号である。入力信号SEは、時刻T1402から時刻T1409までロウレベルであり、この期間がラウンチ−キャプチャ期間となる。
テストモード時のラウンチ−キャプチャ期間は、入力信号TEがハイレベル、SEがロウレベルである。ダブルクロック抽出回路1301は、ラウンチ−キャプチャ期間において、入力信号SEがハイレベルからロウレベルに変化した(T1402)のを起点として、第1出力端子から入力信号CLK1の2クロック分のハイパルスを出力する(T1403−T1405)。クロックマスク回路605は、ダブルクロック抽出回路1301からハイレベルの信号を入力端子IN1に入力する。クロックマスク回路605は、入力端子IN1にハイレベルの信号を入力している間、入力信号CLK1の2クロックを出力端子OUT1からダブルクロックとして出力する(T1404−1405)。
また、ダブルクロック抽出回路1303は、ダブルクロック抽出回路1301の第1出力信号がハイレベルからロウレベルに変化した(T1405)のを起点として、第1出力端子から入力信号CLK2の2クロック分のハイパルスを出力する(T1406−1407)。クロックマスク回路606は、ダブルクロック抽出回路1303からハイレベルの信号を入力端子IN1に入力する。クロックマスク回路606は、入力端子IN1にハイレベルの信号を入力している間、入力信号CLK1の2クロックを出力端子OUT1からダブルクロックとして出力する(T1407−1408)。
このように、ダブルクロックは、ダブルクロック抽出回路1301、1303の出力に基づいて、ユーザ回路で用いられるクロック信号から抽出される。以上が、従来技術による半導体集積回路のテスト回路におけるタイミングチャートの説明である。
一般に遅延故障テストのマルチキャプチャ手法では、シフト動作、ラウンチ動作、キャプチャ動作からなる一連の動作を1パタンセットとして、半導体集積回路のユーザ回路に複数のクロックドメインが存在する場合、1パタンセットで複数のクロックドメインの被テスト回路であるユーザ回路の信号ラインをテストする手法である。そのため、マルチキャプチャ手法は、被テスト回路であるユーザ回路にラウンチ−キャプチャ期間中に複数のクロックドメインのダブルクロックを印加する。
このとき、ユーザ回路の2つのクロックドメインにおいて、2つのクロックドメイン間を接続する信号が存在する場合、どちらか片方のクロックドメインのキャプチャデータが確定した後に、もう片方のクロックドメインのラウンチ動作を開始するべきというタイミング関係が存在する。
上述した従来技術のマルチキャプチャ手法において、例えば、2つのクロックドメイン間にタイミング関係が存在するのであれば、これを満たす必要がある。つまり、図3のダブルクロック抽出1301、1303は、ダブルクロックを抽出するためのハイレベルの信号を出力するタイミングにおいて、所定のタイミング関係を満たさなければならない。そのため、従来技術では、ダブルクロック抽出回路1301と1303とをカスケード接続することで、クロックを印加する順番を固定して、ダブルクロック抽出回路1301、1303の中に、予めタイミングマージンを確保して、所定のタイミング関係を実現している。これによって、従来技術の半導体集積回路は、テストモード時において入力信号CLK1に同期するスキャンフリップフロップ610、612にタイミング関係が存在する場合、ダブルクロック抽出回路1301からダブルクロックを抽出するためのハイパルスを出力後に、ダブルクロック抽出回路1303からダブルクロックを抽出するためのハイパルスを、タイミング関係を満たすように出力させている。
特開2009−109512号公報
しかし、2つのクロックドメイン間において、ダブルクロックを出力するタイミングは、ユーザ回路におけるタイミング関係に依存しており、一様に順番を固定することはできない。クロックドメインの規模や、多数存在するロジックコーンの深さによって、ダブルクロックの印加順を変更しなければならない場合も存在する。ここで、ロジックコーンは、スキャンフリップフロップ間にはさまれた組み合わせ回路の部分を示す。
また、2つ以上の多数のクロックドメインが存在する場合には、それぞれのクロックドメイン間の接続がより複雑になり、クロック印加順を固定できるものではない。そのため、従来技術のように、ダブルクロック抽出回路1301、1303をカスケード接続にして、ダブルクロックの印加順を固定してしまうと、ユーザモード時に存在しないタイミング関係ができてしまうことがある。これでは、図1で説明を行ったレイアウト設計(ステップS1110)において、タイミング関係を予め作りこむことができない。そのため、タイミング検証(ステップS1111)において、複数のクロックドメイン間のタイミング違反が判明することになり、ダブルクロック抽出回路1301、1303の再設計が発生してしまう。
このように、従来技術では、ダブルクロック抽出回路1301、1303をカスケード接続することによりダブルクロックの印加順が固定されている。このような、テスト回路によりテストパタンを作成すると、テストパタンを、非テスト回路、及びテスト回路のタイミングが収束したネットリストから生成する必要があるにも関わらす、タイミングが収束するまで何度もイタレーションを繰り返すことになり、設計期間が増大するという課題がある。
以下に、(発明を実施するための形態)で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、(特許請求の範囲)の記載と(発明を実施するための形態)との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、(特許請求の範囲)に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明の半導体集積回路のテスト回路は、被テスト回路(613)の動作に用いられる複数のクロックドメイン(CLK1、CLK2)のうちから選択される選択クロックと複数のクロックドメインに対応して設けられた複数のトリガクロック(INCLK1、INCLK2)のうちの選択クロックに対応する選択トリガクロックとを入力して、選択トリガクロックにおいて被テスト回路(613)のスキャンテストに用いられるダブルクロックの抽出トリガを検出するとイネーブル信号を出力するダブルクロック抽出回路(601、602)と、選択クロックとイネーブル信号とを入力して、イネーブル信号をトリガとして選択クロックからダブルクロックを抽出するクロックマスク回路(605、606)と、ダブルクロックを入力して被テスト回路(613)に対してスキャンテストを実行するスキャンフリップフロップ(609、610、611、612)とを備え、ダブルクロック抽出回路(601、602)と、クロックマスク回路(605、606)と、スキャンフリップフロップ(609、610、611、612)とは、複数のクロックドメインに対応して設けられ、抽出トリガは、複数のクロックドメイン間においてダブルクロックを出力するべきタイミング関係に基づいて選択トリガクロックの各々に設定される。
本発明の半導体集積回路のテスト方法は、被テスト回路(613)の動作に用いられる複数のクロックドメイン(CLK1、CLK2)のうちから選択される選択クロックと複数のクロックドメインに対応して設けられた複数のトリガクロック(INCLK1、INCLK2)のうちの選択クロックに対応する選択トリガクロックとを入力するステップと、選択トリガクロックにおいて被テスト回路(613)のスキャンテストに用いられるダブルクロックの抽出トリガを検出するとイネーブル信号を出力するステップと、選択クロックとイネーブル信号とを入力して、イネーブル信号をトリガとして選択クロックからダブルクロックを抽出するステップと、ダブルクロックを入力して被テスト回路(613)に対してスキャンテストを実行するステップとを備え、抽出トリガは、複数のクロックドメイン間においてダブルクロックを出力するべきタイミング関係に基づいて選択トリガクロックの各々に設定される。
本発明の半導体集積回路のテストパタン作成方法は、上述の半導体集積回路のテスト回路のテストパタンを作成する半導体集積回路のテストパタン作成方法であって、コンピュータ(10)が、被テスト回路(613)に入力されるテストパタンの繰り返し周期の1サイクル時間であるテストレートを抽出するステップと、コンピュータ(10)が、被テスト回路で用いられる複数のクロックドメインを抽出するステップと、コンピュータ(10)が、複数のクロックドメインのうちから選択される2つの選択クロックドメインの選択クロック(CLK1、CLK2)間において、被テスト回路(613)のスキャンテストに用いられるダブルクロックを出力するべきタイミング関係が存在するか否かを判定するステップと、コンピュータ(10)が、タイミング関係が存在する場合に、タイミング関係に基づいて、複数のクロックドメインに対応して設けられた複数のトリガクロックのうちの選択クロック(CLK1、CLK2)に対応する選択トリガクロック(INCLK1、INCLK2)に、抽出トリガを設定したテストパタンを作成するステップとを備える。
本発明によれば、複数のクロックドメインを用いる半導体集積回路のテスト回路において、ダブルクロックを印加するタイミングを任意に設定することが可能となる。そのため、ダブルクロックを印加するべきタイミングが収束するまでイタレーションを繰り返す必要が無くなる。
図1は、従来の半導体集積回路設計における仕様設計からテストパタン作成までを説明するフローチャートである。 図2は、特許文献1におけるテスト容易化設計を説明する流れ図である。 図3は、特許文献1による半導体集積回路のテスト回路の構成例を示す図である。 図4Aは、特許文献1による半導体集積回路のテスト回路のデイジーチェーンクロックトリガ技法のタイミングチャートである。 図4Bは、特許文献1による半導体集積回路のテスト回路の構成例におけるタイミングチャートである。 図5は、本発明の実施形態における半導体集積回路のテスト回路設計システムの構成を示す図である。 図6Aは、本発明の実施形態における半導体集積回路のテスト回路設計システムの動作を説明するフローチャートである。 図6Bは、本発明の実施形態における半導体集積回路のテスト回路設計システムの動作を説明するフローチャートである。 図7は、本発明の実施形態におけるテストレートとSLACK値に対応したテストレート間隔数Bを示す表である。 図8は、本発明の実施形態におけるテストレート間隔数Bが「5」である場合のテストパタンのタイミングチャートの一例である。 図9は、本発明の実施形態におけるテストレート間隔数Bが「2」である場合のテストパタンのタイミングチャートの一例である。 図10は、本発明の実施形態における半導体集積回路のテスト回路の構成を示す図である。 図11は、本発明の実施形態における半導体集積回路のテスト回路のタイミングチャートである。
添付図面を参照して、本発明の実施形態による半導体集積回路のテスト回路を以下に説明する。
[構成の説明]
まず、図5を参照して、本実施形態における半導体集積回路のテスト回路の設計を行うための半導体集積回路のテスト回路設計システムの構成の説明を行う。本実施形態における半導体集積回路のテスト回路は、以下に説明を行う半導体集積回路のテスト回路設計システムにより構築される。図5は、本実施形態における半導体集積回路のテスト回路設計システムの構成を示す図である。
本実施形態の半導体集積回路のテスト回路設計システムは、コンピュータ10と、サーバ14と、インターネット16とを備える。
まず、インターネット16は、コンピュータ10とサーバ14との間の通信を接続する。インターネット16は、コンピュータ10とサーバ14との間の通信を接続可能であれば、インターネットに限定しない。例えば、ネットワーク16は、移動体通信網や、専用線網や、LAN(Local Area Network)といった有線通信や無線通信を含めた各種のネットワーク、あるいはこれらのネットワークが相互に接続されたネットワークを適用可能である。
サーバ14は、本実施形態における半導体集積回路のテスト回路設計システムを実現するための実行プログラムや、回路素子データ、マクロのライブラリ、回路のネットリストといったデータを記録する記憶部15を備える。記憶部15は、ハードディスクやRAM(Random Access Memory)やROM(Read Only Memory)といった記憶装置で構成される。また、サーバ14は、図示されない通信部を備え、インターネット16を介してコンピュータ10と通信を行うことが可能である。さらに、サーバ14は、CPU(Central Processing Unit)で構成される図示されない処理部を備える。処理部は、記憶部15に記憶されたサーバ14の機能を実現するための実行プログラムを読み込んで実行することで、サーバ14の機能を実現する。なお、各実行プログラムやデータは、サーバ14の管理者により、キーボードやマウスや、LCD(Liquid Crystal Display)といった図示されない入出力部を用いて外部から記憶部15へ記憶される。このような構成により、サーバ14は、実行プログラムやデータを、インターネット16を介してコンピュータ10へ提供することが可能である。
コンピュータ10は、本実施形態における半導体集積回路のテスト回路設計システムを実行する。コンピュータ10は、例えば、パーソナルコンピュータのような一般的な汎用コンピュータである。コンピュータ10は、図示されない通信部を備え、インターネット16を介してサーバ14と通信が可能である。コンピュータ10は、インターネット16を介してサーバ14へ接続して、本実施形態における半導体集積回路のテスト回路設計システムを実現するための実行プログラムやデータを取得し、図示されない記憶部へ記憶する。記憶部15は、ハードディスクやRAMやROMといった記憶装置で構成される。コンピュータ10は、CPUで構成される処理部を備える。処理部は、記憶部に記憶されたコンピュータ10の機能を実現するための実行プログラムを読み込んで、実行することによりコンピュータ10の機能を実現する。なお、コンピュータ10は、コンピュータ10の使用者との入出力インターフェースである図示されない入出力部を備える。入出力部は、キーボードやマウスや、LCDで構成される。コンピュータ10は、このような構成により、サーバ14から取得された半導体集積回路のテスト回路設計システムを実現するための実行プログラムを読み込んで、実行し、本実施形態における半導体集積回路のテスト回路設計システムを実現する。
ここで、本実施形態における半導体集積回路のテスト回路設計システムを実現するための実行プログラムは、サーバ14の記憶部15に記憶される形態には限定しない。実行プログラムは、例えば、CD(Compact Disk)やフラッシュメモリを搭載したUSB(Universal Serial Bus)メモリといった持ち運び可能な記憶媒体に記録されてもよい。この場合、実行プログラムは、これらの持ち運び可能な記憶媒体から、コンピュータ10の備えるCDドライブや、USBポート等を介して導入される。
以上が、本実施形態における半導体集積回路のテスト回路設計システムの構成の説明である。
[動作方法の説明]
次に、図6A、図6Bを参照して、本実施形態の半導体集積回路のテスト回路設計システムにおける動作方法の説明を行う。図6A、図6Bは、本実施形態における半導体集積回路のテスト回路設計システムの動作を説明するフローチャートである。図6A、図6Bの半導体集積回路のテスト回路設計システムにおける動作フローは、テスト容易化設計工程(ステップS151)と、レイアウト設計(ステップS106)と、タイミング検証及びテストパタン作成工程(ステップS152)とを含む。
はじめに、テスト容易化設計工程(ステップS151)が実行される。まず、ユーザ回路中にロジックBIST、及び圧縮スキャンが構築される(ステップS101)。続いて、ユーザ回路中に本発明のダブルクロック抽出回路ユニット600を備えたテスト回路が構築される(ステップS102)。なお、ダブルクロック抽出回路ユニット600を備えたテスト回路の実施例については、後述する。ダブルクロック抽出回路ユニット600が構築されると、ダブルクロック抽出回路ユニット600が正常に動作するか否かを確認するシミュレーションが実行される(ステップS103)。シミュレーション結果に問題がある場合(ステップS103のNG)、ステップS104へ進む。一方、シミュレーション結果に問題がない場合(ステップS103のOK)、ステップS105へ進む。シミュレーション結果に問題がある場合、ダブルクロック抽出回路ユニットのデバッグが行われて、問題の調査、修正が行われ(ステップS104)、その後、ステップS102へ戻る。一方、シミュレーション結果に問題がない場合、ネットリストが作成される(ステップS105)。以上で、テスト容易化設計工程(ステップS151)が完了する。
続いて、作成されたネットリストに基づいて半導体集積回路のレイアウト設計が行われる(ステップS106)。レイアウト設計が完了すると、遅延情報とネットリストが出力されて、タイミング検証及びパタン作成工程(ステップS152)へ移行する。
タイミング検証及びパタン作成工程(ステップS152)へ移行すると、まず、テストパタンの繰り返し周波数の1サイクル時間(以下、テストレート)が決定される(ステップS107)。続いて、テストパタンを作成する際のテストモードのタイミング検証を実行するために、テストイネーブル信号がテストモードに切り替えられる(ステップS108)。次に、クロックドメイン情報が抽出される(ステップS109)。抽出されたクロックドメイン情報の組み合わせに基づく組み合わせ情報により組み合わせ数を算出して、定数Aへ代入する(ステップS110)。これは、例えば、ステップS109において、クロックドメインa、b、c、dの4つが抽出されたとすると、この4つのクロックドメインの組み合わせである(a、b)、(a、c)、(a、d)、(b、c)、(b、d)、(c、d)の6通りの組み合わせ情報が得られることを意味する。この場合、定数Aには、「6」が代入される。定数Aが確定すると変数iが生成されて、変数iは初期値「1」に設定される(ステップS111)。
次に、変数iと定数Aとの数値の大小が比較される(ステップS112)。変数iの値が定数Aの値以下である場合(ステップS112のYes)、ステップS113へ進む。一方、変数iの値が定数Aより大きい場合(ステップS112のNo)、ステップS118へ進む。変数iの値が定数Aの値以下である場合、ステップS110で抽出されたクロックドメインの組み合わせ情報のうちから任意に一つ選択して、クロックドメイン間の接続にタイミング関係が存在するかの判定が行われる(ステップS113)。例えば、前述の6つのクロックドメインのうちから(a、b)が選択されたとして、クロックドメインaからクロックドメインbへタイミング関係が有るか否か、また、クロックドメインbからクロックドメインaへタイミング関係が有るか否かの判定が行われる。いずれにおいても、タイミング関係が存在しない場合、(a、b)のクロックドメイン間には接続関係が無いと判定され(ステップS113のNo)、ステップS114へ進む。一方、いずれかにおいて、タイミング関係が存在する場合(ステップS113のYes)、(a、b)のクロックドメイン間に接続関係があると判断され、ステップS116へ進む。
クロックドメイン間にタイミング関係がないと判断された場合、クロックドメイン(a、b)の組み合わせのテストレート間隔数Bに「0」が設定される(ステップS114)。ここで、テストレート間隔数とは、繰り返し周波数の1サイクルを1単位とした時のクロックドメイン(a、b)のダブルクロック同士の間隔である。テストレート間隔数Bの設定が完了すると、変数iに「1」が加算されて(ステップS115)、ステップS112へ戻る。一方、クロックドメイン間にタイミング関係があると判断された場合、クロックドメイン間のSLACK解析が行われて、SLACK値が抽出される(ステップS116)。ここで、SLACK値とは、クロックドメイン間のタイミング違反値である。SLACK値が抽出されると、ステップS107で抽出されたテストレートを用いて、クロックドメイン(a、b)のそれぞれのダブルクロック間においてタイミング違反を起こさないテストレート間隔数Bが算出される(ステップS117)。テストレート間隔数Bは、以下の式(1)に基づいて算出される。なお、式(1)において、int()は、引数の整数である。
テストレート間隔数B=int(−1×SLACK値/テストレート+3)・・・(式1)
ここで、図7は、本実施形態におけるテストレートとSLACK値に対応したテストレート間隔数Bを示す表である。図7の表は、横軸にSLACK値、縦軸にテストレートをとっている。例えば、ステップS107でテストレートが2[NS]と抽出され、ステップS116でSLACK値が−5[NS]を抽出された場合、テストレート間隔数B=int(−1×(−5)/2+3)=5となる。これは、テストモード時のラウンチキャプチャ期間中に外部から入力される低速のダブルクロック同士のテストレート間隔数Bが「5」であることを示している。
さらに、図8は、本実施形態におけるテストレート間隔数Bが「5」である場合のテストパタンのタイミングチャートの一例である。図8のタイミングチャートは、横軸に時刻、縦軸に信号区分をとっている。入力信号INCLK1、INCLK2は、外部から入力される低速クロック信号である。入力信号TEは、ユーザモードとテストモードの切り替えを行う信号である。入力信号SEは、シフト期間とラウンチ−キャプチャ期間の切り替えを行うスキャンイネーブル信号である。図8において、例えば、テストレートは、時刻T401から時刻T402までの2[NS]である。また、テストレート間隔数Bは、時刻T403から時刻T408までの5個分のテストレートが必要であることを示している。
図6A、Bに戻り、動作フローの説明を続ける。テストレート間隔数Bが抽出されると、ステップS115において変数iに「1」が加算されて、ステップS112へ戻る。この後、ステップS112において、変数iが定数Aより大きくなるまで、ステップS113からステップS117が繰り返される。
ステップS112において、変数iの値が定数Aより大きくなると、外部から入力される低速クロック信号のラウンチ−キャプチャ期間中の2クロックを、2テストレートの間隔を空けたタイミングで発生するようにした制約を有するテストパタンが作成される(ステップS118)。
ここで、図9は、本実施形態におけるテストレート間隔数Bが「2」である場合のテストパタンのタイミングチャートの一例である。図9のタイミングチャートに示されるテストパタンは、前述のステップS118で作成される。図9のタイミングチャートは、横軸に時刻、縦軸に信号区分をとっている。入力信号INCLK1、INCLK2は、外部から入力される低速クロック信号である。入力信号TEは、ユーザモードとテストモードの切り替えを行う信号である。入力信号SEは、シフト期間とラウンチ−キャプチャ期間の切り替えを行うスキャンイネーブル信号である。ラウンチ−キャプチャ期間中において、入力信号INCLKの時刻T303から時刻T305までの2クロックに対して、入力信号INCLK2の2クロックは、時刻T305から時刻T307にテストレート間隔数Bを「2」としたタイミングのテストパタンを示している。すなわち、入力信号INCLK1のキャプチャクロック(時刻T304から時刻T305までの間のクロック)で被テスト回路を遷移したデータが、入力信号INCLK2のラウンチクロック(時刻T306から時刻T307までの間のクロック)で取り込むデータとなるため、ステップS118においてATPGで生成するテストパタンには、最低でもテストレート間隔数Bを「2」空ける必要があることを表している。
再び図6A、Bに戻り、動作フローの説明を続ける。続いて、ステップS114、ステップS117で抽出されたテストレート間隔数Bに基づいて、ステップS118で作成されたテストパタンにおいて、外部から入力された低速クロック信号のラウンチ−キャプチャ期間中のダブルクロックの印加タイミングを修正して(ステップS119)、タイミング検証及びテストパタン作成工程(ステップS152)を終了する。
以上が、本実施形態における半導体集積回路のテスト回路設計システムにおける動作方法の説明である。このようにして、半導体集積回路の被テスト回路の動作に用いられる複数のクロックドメイン間のタイミング関係が抽出されて、この複数のクロックドメイン間のタイミング関係に基づいて、入力信号INCLK1、2間のテストレート間隔数Bが設定される。そのため、後述する半導体集積回路のテスト回路は、複数のクロックドメイン間において、適切なタイミングでINCLK1、2を入力することができる。
[半導体集積回路のテスト回路構成]
次に、半導体集積回路のテスト回路設計システムにより作成されたテストパタンを用いてテストを実行する本実施形態における半導体集積回路のテスト回路の構成の説明を行う。図10は、本実施形態における半導体集積回路のテスト回路の構成を示す図である。
図10に示された半導体集積回路のテスト回路は、ダブルクロック抽出回路ユニット600と、マルチプレクサ603、604、607、608と、スキャンフリップフロップ609、610、611、612と、組み合わせ回路613と、インバータ回路614と、AND回路615と、クロックマスク回路605、606とを備える。
入力信号TEは、ユーザモードとテストモードとの切り替え信号である。入力信号SEは、ラウンチ−キャプチャ期間の切り替え信号である。入力信号CLK1、CLK2は、ユーザ回路の動作に使用されるそれぞれ異なるクロックドメインに属したクロック信号である。入力信号INCLK1、INCLK2は、半導体集積回路のテスト回路で扱うことができる動作周波数の低速クロック信号である。入力信号SIN1、SIN2は、それぞれ、スキャンフリップフロップ609、610へ入力されるシフトデータである。入力信号DIは、組み合わせ回路613に入力される入力データである。
ダブルクロック抽出回路ユニット600は、遅延故障テストのマルチキャプチャ手法における2つのクロックドメインに対応するダブルクロック抽出回路601、602を備える。ダブルクロック抽出回路601、602は、それぞれ、第1入力端子(i_enable)と、第2入力端子(i_start_n)と、第3入力端子(i_clk)と、第4入力端子(i_clk_byps)と、出力端子(o_clk_en_ctrl1)とを備える。
ダブルクロック抽出回路601の第1入力端子は、入力信号TEを入力する。ダブルクロック抽出回路601の第2入力端子は、入力信号SEを入力する。ダブルクロック抽出回路601の第3入力端子は、入力信号CLK1を入力する。ダブルクロック抽出回路601の第4入力端子は、入力信号INCLK1を入力する。また、ダブルクロック抽出回路602の第1入力端子は、入力信号TEを入力する。ダブルクロック抽出回路602の第2入力端子は、入力信号SEを入力する。ダブルクロック抽出回路602の第3入力端子は、入力信号CLK2を入力する。ダブルクロック抽出回路602の第4入力端子は、入力信号INCLK2を入力する。
ダブルクロック抽出回路601は、第1入力端子に入力する入力信号TEがハイレベルで第2入力端子に入力する入力信号SEがロウレベルであるラウンチキャプチャ期間中に、第4入力端子に入力する入力信号INCLK1の2クロック目の立ち上がりを起点として、第3入力端子に入力する入力信号CLK1の2クロック分のハイパルスを、出力端子に出力する。また、ダブルクロック抽出回路602は、第1入力端子に入力する入力信号TEがハイレベルで第2入力端子に入力する入力信号SEがロウレベルであるラウンチキャプチャ期間中に、第4入力端子に入力する入力信号INCLK2の2クロック目の立ち上がりを起点として、第3入力端子に入力する入力信号CLK2の2クロック分のハイパルスを、出力端子に出力する。
マルチプレクサ603、604は、入力端子D0にインバータ回路614で反転された入力信号TEを入力する。マルチプレクサ603の入力端子D1はダブルクロック抽出回路601の出力端子と接続されており、マルチプレクサ604の入力端子D1はダブルクロック抽出回路602の出力端子と接続される。マルチプレクサ603、604は、共に入力端子S0に入力信号TEを入力して、入力信号TEに基づいて、出力端子Yへの出力を入力端子D0と入力端子D1のうちから選択する。
クロックマスク回路605は、入力端子IN2に入力信号CLK1を入力する。クロックマスク回路605の入力端子IN1は、マルチプレクサ603の出力端子Yと接続される。クロックマスク回路605は、入力端子NI1がハイレベルのときに、入力端子IN2に入力する値を出力端子OUTに出力する。また、クロックマスク回路606は、入力端子IN2に入力信号CLK2を入力する。クロックマスク回路606の入力端子IN1は、マルチプレクサ604の出力端子Yと接続される。クロックマスク回路606は、入力端子NI1がハイレベルのときに、入力端子IN2に入力する値を出力端子OUTに出力する。
マルチプレクサ607の入力端子D0は、クロックマスク回路605の出力端子OUTと接続される。マルチプレクサ607の入力端子D1は、入力信号INCLK1を入力する。マルチプレクサ608の入力端子D0は、クロックマスク回路606の出力端子OUTと接続される。マルチプレクサ608の入力端子D1は、入力信号INCLK2を入力する。マルチプレクサ607、608の入力端子S0は、AND回路615の出力端子Yと接続される。マルチプレクサ607、608は、入力端子S0へ入力される信号に基づいて、出力端子Yへの出力を入力端子D0と入力端子D1のうちから選択する。
AND回路615の入力端子Aは、入力信号TEを入力する。AND回路615の入力端子Bは、入力信号SEを入力する。AND回路615の出力端子Yの出力は、入力端子A及び入力端子Bの入力に基づいて決定される。
スキャンフリップフロップ609の入力端子Dは、組み合わせ回路613の出力端子OUT11と接続される。スキャンフリップフロップ609の入力端子SIは、入力信号SIN1を入力する。スキャンフリップフロップ609の入力端子SMCは、入力信号SEを入力する。スキャンフリップフロップ609の入力端子CLKは、マルチプレクサ607の出力端子Yと接続される。スキャンフリップフロップ609の出力端子Qは、組み合わせ回路613の入力端子IN11と、スキャンフリップフロップ611の入力端子SIと、それぞれ接続される。また、スキャンフリップフロップ611の入力端子Dは、組み合わせ回路613の出力端子OUT12と接続される。スキャンフリップフロップ611の入力端子SIは、スキャンフリップフロップ609の出力端子Qと接続される。スキャンフリップフロップ611の入力端子SMCは、入力信号SEを入力する。スキャンフリップフロップ611の入力端子CLKは、マルチプレクサ607の出力端子Yと接続される。スキャンフリップフロップ611の出力Qは、組み合わせ回路613の入力端子12と接続されると共に、後段への出力SOT1となる。
スキャンフリップフロップ610の入力端子Dは、組み合わせ回路613の出力端子OUT21と接続される。スキャンフリップフロップ610の入力端子SIは、入力信号SIN2を入力する。スキャンフリップフロップ610の入力端子SMCは、入力信号SEを入力する。スキャンフリップフロップ610の入力端子CLKは、マルチプレクサ608の出力端子Yと接続される。スキャンフリップフロップ610の出力端子Qは、組み合わせ回路613の入力端子IN21と、スキャンフリップフロップ612の入力端子SIと、それぞれ接続される。また、スキャンフリップフロップ612の入力端子Dは、組み合わせ回路613の出力端子OUT22と接続される。スキャンフリップフロップ612の入力端子SIは、スキャンフリップフロップ610の出力端子Qと接続される。スキャンフリップフロップ612の入力端子SMCは、入力信号SEを入力する。スキャンフリップフロップ612の入力端子CLKは、マルチプレクサ607の出力端子Yと接続される。スキャンフリップフロップ612の出力Qは、組み合わせ回路613の入力端子22と接続されると共に、後段への出力SOT2となる。
組み合わせ回路613の入力端子DIは入力信号DIを入力する。組み合わせ回路613の出力端子11は、スキャンフリップフロップ609の入力端子Dと接続され、入力端子11は、スキャンフリップフロップ609の出力端子Qと接続される。組み合わせ回路613の出力端子12は、スキャンフリップフロップ611の入力端子Dと接続され、入力端子12は、スキャンフリップフロップ611の出力端子Qと接続される。組み合わせ回路613の出力端子21は、スキャンフリップフロップ610の入力端子Dと接続され、入力端子21は、スキャンフリップフロップ610の出力端子Qと接続される。組み合わせ回路613の出力端子22は、スキャンフリップフロップ612の入力端子Dと接続され、入力端子22は、スキャンフリップフロップ612の出力端子Qと接続される。また、組み合わせ回路613の出力端子DOは、後段への出力DOとなる。
以上が、本実施形態における半導体集積回路のテスト回路の構成の説明である。なお、ダブルクロック抽出回路601及び602、マルチプレクサ603及び604、クロックマスク回路605及び606、マルチプレクサ607及び608は、クロックドメインの数に対応して設けられている。すなわち、本実施形態では、クロックドメインが2つ存在する場合を例としているため、それぞれ2構成ずつ設けられている。そのため、クロックドメインの数が増加する場合には、これらの各構成をクロックドメインの数に対応して増加させることで対応することができる。また、この場合、入力信号CLKがクロックドメインの数に対応して存在するのは当然であるが、入力信号INCLKについてもクロックドメインの数に対応して存在することになる。つまり、クロックドメインが、例えば4つ存在する場合には、入力信号CLKも4入力存在し、また、入力信号INCLKも4入力存在し、さらに各構成も4構成ずつ設けられることになる。これによって、複数のクロックドメインが存在する場合にも、対応することが可能となる。
[動作方法の説明]
次に、上述のような構成を備える本実施形態における半導体集積回路のテスト回路の動作方法の説明を行う。なお、本実施形態における半導体集積回路のテスト回路は、ユーザモードとテストモードの切り替えが可能であるが、ユーザモード時の動作は、図3を用いて説明を行った特許文献1による半導体集積回路のテスト回路の構成例と同様であるので説明を省略して、テストモード時の説明のみを行う。また、以下の説明において、ダブルクロックの印加順は、入力信号CLK1のドメインから入力信号CLK2のドメインの順とする。
テストモード時のラウンチ−キャプチャ期間において、入力信号TEはハイレベルであり、入力信号SEはロウレベルである。このラウンチ−キャプチャ期間において、ダブルクロック抽出回路601、602は、ダブルクロックを抽出するためのハイレベルのイネーブル信号を出力している。このイネーブル信号に基づいて抽出されたダブルクロックを用いて、遅延故障テストが行われる。このダブルクロック抽出回路601、602から出力されるハイレベルのイネーブル信号は、図6のステップS114、及びステップS117におけるテストレート間隔数Bに基づいて、外部から入力される低速クロック信号である入力信号INCLK1、及び入力信号INCLK2の印加タイミングで決定される。
まず、入力信号CLK1側のクロックドメインの説明を行う。ダブルクロック抽出回路601は、入力信号INCLK1を第4入力端子に入力する。ダブルクロック抽出回路601は、入力信号INCLK1の2クロック目の立ち上がりを起点に、入力信号CLK1の2クロック分のハイパルスを出力端子に出力する。このときマルチプレクサ603は、入力端子S0にハイレベルの入力信号TEを入力しているため、ダブルクロック抽出回路601の出力端子から入力端子D1に入力される入力信号CLK1の2クロック分のハイパルスを出力端子Yに出力する。
クロックマスク回路605は、マルチプレクサ603の出力端子から入力信号CLK1の2クロック分のハイパルスを入力端子IN1に入力している間、入力端子IN2に入力する入力信号CLK1を出力端子OUT1に出力する。これによって、入力信号CLK1側のクロックドメインにおけるダブルクロック信号が抽出される。ここで、マルチプレクサ607は、AND回路615からロウレベルの信号を入力端子S0に入力しているため、クロックマスク回路605の出力端子OUTから入力端子D0に入力するダブルクロック信号を出力端子Yに出力する。スキャンフリップフロップ609、611は、マルチプレクサ607の出力端子Yから出力されるダブルクロック信号を入力端子CLKに入力して、ダブルクロック信号により遅延故障テストを行う。
次に、入力信号CLK2側のクロックドメインの説明を行う。ダブルクロック抽出回路602は、を第4入力端子に入力する入力信号INCLK2の2クロック目の立ち上がりを起点に、第3入力端子に入力する入力信号CLK2の2クロック分のハイパルスを出力端子に出力する。このときマルチプレクサ604は、入力端子S0にハイレベルの入力信号TEを入力しているため、ダブルクロック抽出回路602の出力端子から入力端子D1に入力する入力信号CLK2の2クロック分のハイパルスを出力端子Yに出力する。
クロックマスク回路606は、マルチプレクサ604の出力端子から入力信号CLK2の2クロック分のハイパルスを入力端子IN1に入力している間、入力端子IN2に入力する入力信号CLK2を出力端子OUT1に出力する。これによって、入力信号CLK2側のクロックドメインにおけるダブルクロック信号が抽出される。ここで、マルチプレクサ608は、AND回路615からロウレベルの信号を入力端子S0に入力しているため、クロックマスク回路606の出力端子OUTから入力端子D0に入力するダブルクロック信号を出力端子Yに出力する。スキャンフリップフロップ610、612は、マルチプレクサ608の出力端子Yから出力されるダブルクロック信号を入力端子CLKに入力して、ダブルクロック信号により遅延故障テストを行う。
図11は、本実施形態における半導体集積回路のテスト回路のタイミングチャートである。図11において、横軸は時刻、縦軸は信号区分を示している。
図11のタイミングチャートは、テストモード時のラウンチ−キャプチャ期間中において、ダブルクロック抽出回路601は、第4入力端子へ入力する入力信号INCLK1の2クロック目の立ち上がりを起点に、第3入力端子へ入力する入力信号CLK1の2クロック分のハイパルスを出力端子から出力し、ダブルクロック抽出回路602は、第4入力端子へ入力する入力信号INCLK2の2クロック目の立ち上がりを起点に、第3入力端子へ入力する入力信号CLK2の2クロック分のハイパルスを出力端子から出力することを示している。
入力信号TEは、ユーザモードとテストモードとの切り替え信号であり、ハイレベルでテストモードとなる。時刻T701以降、入力信号TEはハイレベルであり、テストモード期間となる。また、入力信号SEは、ラウンチ−キャプチャ期間の切り替え信号であり、ロウレベルでラウンチ−キャプチャ期間となる。時刻T702から時刻T711までの間、入力信号SEはロウレベルであり、ラウンチ−キャプチャ期間となる。
入力信号INCLK1と入力信号INCLK2は、外部から入力する低速のクロック信号である。入力信号INCLK1と入力信号INCLK2は、シフト期間中に、スキャンフリップフロップ609、610、611、612へシフトデータを供給し、ラウンチ−キャプチャ期間中に、入力信号CLK1、入力信号CLK2からダブルクロックを抽出するための2クロックの信号を供給する。また、入力信号CLK1と入力信号CLK2は、ユーザ回路の動作に用いられるクロック信号である。入力信号CLK1と入力信号CLK2は、クロックドメインが異なり、それぞれ異なる周波数を有する。
まず、図11において、シフト期間は、時刻T701から時刻T702の期間である。シフト期間において、入力信号TEと入力信号SEとは、それぞれハイレベルである。このとき、マルチプレクサ607、608は、入力端子D1を出力として選択しており、それぞれ、入力端子D1に入力する入力信号INCLK1、INCLK2を出力端子Yに出力する。スキャンフリップフロップ609、611は、マルチプレクサ607の出力端子Yから出力される入力信号INCLK1を入力端子CLKに入力する。また、スキャンフリップフロップ610、612は、マルチプレクサ608の出力端子Yから出力される入力信号INCLK2を入力端子CLKに入力する。
次に、図11において、ラウンチ−キャプチャ期間は、時刻T702から時刻T711までの期間である。ラウンチ−キャプチャ期間において、入力信号TEはハイレベルであり、入力信号SEはロウレベルである。ダブルクロック抽出回路601は、時刻T703において、入力信号INCLK1によるダブルクロックを抽出するための2クロックの信号を第4入力端子に入力すると、時刻T704から時刻T706までの間に、第3入力端子に入力する入力信号CLK1の2クロック分の期間のハイパルスであるイネーブル信号を出力端子に出力する。マルチプレクサ603は、入力端子D1を出力として選択しており、ダブルクロック抽出回路601の出力端子から入力端子D1へ入力するイネーブル信号を出力端子Yに出力する。クロックマスク回路605は、マルチプレクサ603の出力端子Yから入力端子IN1に入力するイネーブル信号がハイレベルである間、入力端子IN2に入力する入力信号CLK1の2クロック分をダブルクロック信号として出力端子OUT1に出力する。マルチプレクサ607は、入力端子D0を出力として選択しており、クロックマスク回路605から入力端子D0へ入力するダブルクロック信号を出力端子Yに出力する。スキャンフリップフロップ609、611は、マルチプレクサ607の出力端子Yから出力されるダブルクロック信号を、それぞれの入力端子CLKへ入力する。
また、ダブルクロック抽出回路602は、時刻T707において、入力信号INCLK2によるダブルクロックを抽出するための2クロックの信号を第4入力端子に入力すると、時刻T708から時刻T710までの間に、第3入力端子に入力する入力信号CLK2の2クロック分の期間のハイパルスであるイネーブル信号を出力端子に出力する。マルチプレクサ604は、入力端子D1を出力として選択しており、ダブルクロック抽出回路602の出力端子から入力端子D1へ入力するイネーブル信号を出力端子Yに出力する。クロックマスク回路606は、マルチプレクサ604の出力端子Yから入力端子IN1に入力するイネーブル信号がハイレベルである間、入力端子IN2に入力する入力信号CLK2の2クロック分をダブルクロック信号として出力端子OUT1に出力する。マルチプレクサ608は、入力端子D0を出力として選択しており、クロックマスク回路606から入力端子D0へ入力するダブルクロック信号を出力端子Yに出力する。スキャンフリップフロップ610、612は、マルチプレクサ608の出力端子Yから出力されるダブルクロック信号を、それぞれの入力端子CLKへ入力する。
なお、各クロックドメイン間のダブルクロックの出力タイミングは、時刻T706から時刻T709までの期間をおかれている。この期間は、タイミング検証の結果に基づいて、テストパタンにおける入力信号INCLK1、及び入力信号INCLK2の印加タイミングにより修正が行われる。
2つのクロックドメインにおけるそれぞれのラウンチ動作、キャプチャ動作を終了した後、時刻T711で入力信号SEがハイレベルとなりシフト期間へ移行すると、スキャンチェーンを用いてスキャンフリップフロップ609、610、611、612のキャプチャデータをシフトして、出力信号SOT1、SOT2として出力する。
以上が、本実施形態における半導体集積回路のテスト回路の動作方法の説明である。
ここまで、実施形態により半導体集積回路のテスト回路を説明してきた。本発明によれば、クロックドメインの数に対応して設けられたダブルクロック抽出回路とクロックマスク回路によりダブルクロックを抽出する。複数のクロックドメイン間におけるダブルクロックの出力タイミングは、各クロックドメインの数に対応して設けられた低速クロック信号である入力信号INCLKの2つのハイパルスのタイミングによって決定される。また、各クロックドメインに対応する入力信号INCLKの2つのハイパルスのタイミングは、前述した半導体集積回路のテスト回路設計システムにより、半導体集積回路のテスト回路におけるテストレートとクロックドメイン間のSLACK値に基づいて設定される。このように、本実施形態の半導体集積回路のテスト回路は、各クロックドメインに対応する入力信号INCLKの2つのハイパルスのタイミングによって、複数のクロックドメイン間におけるダブルクロックの出力タイミングを決定できるため、半導体集積回路のレイアウト設計後においてもクロックドメイン間のタイミング関係を調整することが可能となる。これによって、半導体集積回路のレイアウト設計後のタイミング検証において、前述したテスト容易化設計工程やレイアウト設計工程へのイタレーションの発生を抑えることができ、半導体集積回路の設計期間が増大することを防ぐことが可能になる。
また、テスト容易化設計工程後に、マルチキャプチャにおける全てのクロックドメインの印加順を任意に変更することができるため、タイミング検証の解析結果で求めたテストレート間隔数Bに基づいて、全てのクロックドメインにおける最短の組み合わせを考慮してテストパタンを修正することで、最短のテストパタンを作成することができる。さらに、被テスト回路の構成に応じて、被テスト回路の故障が検出しやすいダブルクロックの印加順を考えてテストパタンを作成することが可能となり、テストパタン数の削減も可能となる。
加えて、本発明の半導体集積回路のテスト回路とテストパタン作成フローは、レイアウト設計後におけるタイミング検証の結果に応じて、複数のクロックドメインの各々のダブルクロックの印加タイミングをテストパタンに反映できる。そのため、テスト容易化設計工程、レイアウト設計工程で、テストモード時に活性化するパスのタイミングを考慮する必要が無くなり、テスト設計が容易になる。また、タイミング検証の結果に応じたテストパタンを作成することができるため、レイアウト設計の途中でユーザ回路の変更が発生し、遅延故障テスト時のタイミングパスの遅延が変わっても、テスト容易化設計工程、レイアウト設計工程へのイタレーションが発生しない。
以上、実施形態を参照して本願発明を説明したが、本願発明は、上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解し得る様々な変更を行うことが可能である。
10 コンピュータ
14 サーバ
15 記憶部
16 インターネット
600 ダブルクロック抽出回路ユニット
601 ダブルクロック抽出回路
602 ダブルクロック抽出回路
603 マルチプレクサ
604 マルチプレクサ
605 クロックマスク回路
606 クロックマスク回路
607 マルチプレクサ
608 マルチプレクサ
609 スキャンフリップフロップ
610 スキャンフリップフロップ
611 スキャンフリップフロップ
612 スキャンフリップフロップ
613 組み合わせ回路
614 インバータ回路
615 AND回路
1300 ダブルクロック抽出回路ユニット
1301 ダブルクロック抽出回路
1303 ダブルクロック抽出回路

Claims (15)

  1. 被テスト回路の動作に用いられる複数のクロックドメインのうちから選択される選択クロックと前記複数のクロックドメインに対応して設けられた複数のトリガクロックのうちの前記選択クロックに対応する選択トリガクロックとを入力して、前記選択トリガクロックにおいて前記被テスト回路のスキャンテストに用いられるダブルクロックの抽出トリガを検出するとイネーブル信号を出力するダブルクロック抽出回路と、
    前記選択クロックと前記イネーブル信号とを入力して、前記イネーブル信号をトリガとして前記選択クロックからダブルクロックを抽出するクロックマスク回路と、
    前記ダブルクロックを入力して前記被テスト回路に対して前記スキャンテストを実行するスキャンフリップフロップと
    を備え、
    前記ダブルクロック抽出回路と、前記クロックマスク回路と、前記スキャンフリップフロップとは、前記複数のクロックドメインに対応して設けられ、
    前記抽出トリガは、前記複数のクロックドメイン間において前記ダブルクロックを出力するべきタイミング関係に基づいて前記選択トリガクロックの各々に設定される
    半導体集積回路のテスト回路。
  2. 請求項1に記載の半導体集積回路のテスト回路であって、
    前記ダブルクロック抽出回路は、前記タイミング関係として、当該クロックドメインにおいて出力されるべき前記ダブルクロックと他のクロックドメインにおいて出力されるべき前記ダブルクロックとが、前記スキャンテストにおけるテストレートの繰り返し周期を1単位としたときに何周期分の間隔を空けて出力すべきかを示すテストレート間隔数に基づいて前記抽出トリガの設定された前記選択トリガクロックを入力する
    半導体集積回路のテスト回路。
  3. 請求項2に記載の半導体集積回路のテスト回路であって、
    前記テストレート間隔数は、前記複数のクロックドメイン間において前記ダブルクロックを出力するタイミングの違反値と前記トリガクロックのテストレートとに基づいて算出される
    半導体集積回路のテスト回路。
  4. 請求項3に記載の半導体集積回路のテスト回路であって、
    前記テストレート間隔数は、前記違反値であるSLACK値と前記テストレートとを用いて、int()を引数の整数とすると、
    テストレート間隔数=int(−1×SLACK値/テストレート+3)
    により算出される
    半導体集積回路のテスト回路。
  5. 請求項1から請求項4までのいずれかに記載の半導体集積回路のテスト回路であって、
    前記抽出トリガは、前記トリガクロックにおける2クロックのハイパルスであり、
    前記ダブルクロック抽出回路は、前記抽出トリガの2クロック目の立ち上がりを起点として、前記選択クロックにおける2クロック分のハイパルスを前記イネーブル信号として出力する
    半導体集積回路のテスト回路。
  6. 被テスト回路の動作に用いられる複数のクロックドメインのうちから選択される選択クロックと前記複数のクロックドメインに対応して設けられた複数のトリガクロックのうちの前記選択クロックに対応する選択トリガクロックとを入力するステップと、
    前記選択トリガクロックにおいて前記被テスト回路のスキャンテストに用いられるダブルクロックの抽出トリガを検出するとイネーブル信号を出力するステップと、
    前記選択クロックと前記イネーブル信号とを入力して、前記イネーブル信号をトリガとして前記選択クロックからダブルクロックを抽出するステップと、
    前記ダブルクロックを入力して前記被テスト回路に対して前記スキャンテストを実行するステップと
    を備え、
    前記抽出トリガは、前記複数のクロックドメイン間において前記ダブルクロックを出力するべきタイミング関係に基づいて前記選択トリガクロックの各々に設定される
    半導体集積回路のテスト方法。
  7. 請求項6に記載の半導体集積回路のテスト方法であって、前記選択トリガクロックを入力するステップは、
    前記タイミング関係として、当該クロックドメインにおいて出力されるべき前記ダブルクロックと他のクロックドメインにおいて出力されるべき前記ダブルクロックとが、前記スキャンテストにおけるテストレートの繰り返し周期を1単位としたときに何周期分の間隔を空けて出力すべきかを示すテストレート間隔数に基づいて前記抽出トリガの設定された前記選択トリガクロックを入力するステップ
    を含む半導体集積回路のテスト方法。
  8. 請求項7に記載の半導体集積回路のテスト方法であって、テストレート間隔数に基づいて前記抽出トリガの設定された前記選択トリガクロックを入力するステップは、
    前記複数のクロックドメイン間において前記ダブルクロックを出力するタイミングの違反値と前記トリガクロックのテストレートとに基づいて前記テストレート間隔数を算出するステップ
    を含む半導体集積回路のテスト方法。
  9. 請求項8に記載の半導体集積回路のテスト方法であって、前記算出するステップは、
    前記テストレート間隔数を、前記違反値であるSLACK値と前記テストレートとを用いて、int()を引数の整数とすると、
    テストレート間隔数=int(−1×SLACK値/テストレート+3)
    により算出するステップ
    を含む半導体集積回路のテスト方法。
  10. 請求項6から請求項9までのいずれかに記載の半導体集積回路のテスト方法であって、
    抽出トリガは、前記トリガクロックにおける2クロックのハイパルスであり、
    前記出力するステップは、
    前記抽出トリガの2クロック目の立ち上がりを起点として、前記選択クロックにおける2クロック分のハイパルスを前記イネーブル信号として出力するステップ
    を含む半導体集積回路のテスト方法。
  11. 請求項1から請求項5までのいずれかに記載の半導体集積回路のテスト回路のテストパタンを作成する半導体集積回路のテストパタン作成方法であって、
    コンピュータが、被テスト回路に入力されるテストパタンの繰り返し周期の1サイクル時間であるテストレートを抽出するステップと、
    前記コンピュータが、前記被テスト回路で用いられる複数のクロックドメインを抽出するステップと、
    前記コンピュータが、前記複数のクロックドメインのうちから選択される2つの選択クロックドメインの選択クロック間において、前記被テスト回路のスキャンテストに用いられるダブルクロックを出力するべきタイミング関係が存在するか否かを判定するステップと、
    前記コンピュータが、前記タイミング関係が存在する場合に、前記タイミング関係に基づいて、前記複数のクロックドメインに対応して設けられた複数のトリガクロックのうちの前記選択クロックに対応する選択トリガクロックに前記抽出トリガを設定したテストパタンを作成するステップと
    を備える半導体集積回路のテストパタン作成方法。
  12. 請求項11に記載の半導体集積回路のテストパタン作成方法であって、前記テストパタンを作成するステップは、
    前記コンピュータが、前記選択クロック間において前記テストレートの何周期分の間隔を空けて前記ダブルクロックを出力すべきかを示すテストレート間隔数を算出するステップと、
    前記コンピュータが、前記選択トリガクロックに前記抽出トリガを設定したテストパタンを前記テストレート間隔数に基づいて作成するステップと
    を含む半導体集積回路のテストパタン作成方法。
  13. 請求項12に記載の半導体集積回路のテストパタン作成方法であって、前記算出するステップは、
    コンピュータが、前記選択クロックドメインのクロック間において前記ダブルクロックを出力するタイミングの違反値であるSLACK値と、前記トリガクロックのテストレートとを用いて、int()を引数の整数とすると、
    テストレート間隔数=int(−1×SLACK値/テストレート+3)
    によりテストレート間隔数を算出するステップ
    を含む半導体集積回路のテストパタン作成方法。
  14. 請求項11から請求項13までのいずれかに記載の半導体集積回路のテストパタン作成方法であって、前記判定するステップは、
    コンピュータが、前記複数のクロックドメインのうちから組み合わせ可能な全ての組み合わせによる2つの選択クロックドメインを抽出するステップと、
    コンピュータが、前記2つの選択クロックドメインの各々全ての間において前記タイミング関係が存在するか否かを判定するステップと
    を含む半導体集積回路のテストパタン作成方法。
  15. 請求項11から請求項14までのいずれかに記載の半導体集積回路のテストパタン作成方法であって、前記テストパタンを作成するステップは、
    コンピュータが、前記選択クロックドメイン間に前記タイミング関係が存在しない場合、前記選択クロックドメイン間における前記テストレート間隔数を「2」と設定したテストパタンを作成するステップ
    を含む半導体集積回路のテストパタン作成方法。
JP2010071652A 2010-03-26 2010-03-26 半導体集積回路のテスト回路、テスト方法、テストパタン作成方法、及びテストパタン作成プログラム Withdrawn JP2011203158A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010071652A JP2011203158A (ja) 2010-03-26 2010-03-26 半導体集積回路のテスト回路、テスト方法、テストパタン作成方法、及びテストパタン作成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010071652A JP2011203158A (ja) 2010-03-26 2010-03-26 半導体集積回路のテスト回路、テスト方法、テストパタン作成方法、及びテストパタン作成プログラム

Publications (1)

Publication Number Publication Date
JP2011203158A true JP2011203158A (ja) 2011-10-13

Family

ID=44879952

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010071652A Withdrawn JP2011203158A (ja) 2010-03-26 2010-03-26 半導体集積回路のテスト回路、テスト方法、テストパタン作成方法、及びテストパタン作成プログラム

Country Status (1)

Country Link
JP (1) JP2011203158A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014533356A (ja) * 2011-11-07 2014-12-11 アレグロ・マイクロシステムズ・エルエルシー 故障テストのための回路および方法
JP2017528728A (ja) * 2014-06-30 2017-09-28 インテル コーポレイション I/o acタイミングのためのデューティサイクルベースのタイミングマージニング

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014533356A (ja) * 2011-11-07 2014-12-11 アレグロ・マイクロシステムズ・エルエルシー 故障テストのための回路および方法
US9513337B2 (en) 2011-11-07 2016-12-06 Allegro Microsystems, Llc Circuits and methods for fault testing
JP2017528728A (ja) * 2014-06-30 2017-09-28 インテル コーポレイション I/o acタイミングのためのデューティサイクルベースのタイミングマージニング

Similar Documents

Publication Publication Date Title
US8775985B2 (en) Computer-aided design system to automate scan synthesis at register-transfer level
US8578226B2 (en) Apparatus and system for implementing variable speed scan testing
US8386866B2 (en) Methods for implementing variable speed scan testing
US20040237015A1 (en) Method and apparatus for debug, diagnosis, and yield improvement of scan-based integrated circuits
US20140101500A1 (en) Circuits and methods for functional testing of integrated circuit chips
US20050262409A1 (en) Smart capture for ATPG (automatic test pattern generation) and fault simulation of scan-based integrated circuits
US20040153926A1 (en) Method and apparatus for testing asynchronous set/reset faults in a scan-based integrated circuit
US7228262B2 (en) Semiconductor integrated circuit verification system
US11408938B2 (en) Bidirectional scan cells for single-path reversible scan chains
JP7204697B2 (ja) 半導体集積回路
US7228515B2 (en) Methods and apparatuses for validating AC I/O loopback tests using delay modeling in RTL simulation
JP2011203158A (ja) 半導体集積回路のテスト回路、テスト方法、テストパタン作成方法、及びテストパタン作成プログラム
JP4039853B2 (ja) テスト容易化設計システム
JP2008047121A (ja) 半導体集積回路の間接シミュレーション方法及び装置
Wang et al. Diagnosis of hold time defects
Taatizadeh et al. Emulation-based selection and assessment of assertion checkers for post-silicon validation
Goswami et al. Test generation in the presence of timing exceptions and constraints
Dehbashi et al. Automated post-silicon debugging of failing speedpaths
Chang et al. Rtl analysis and modifications for improving at-speed test
Tehranipoor et al. Introduction to VLSI testing
Niewenhuis et al. Path Delay Test of the Carnegie Mellon Logic Characterization Vehicle
Guo et al. Speed-path debug using at-speed scan test patterns
Raval et al. DFT methodology for memory testing on lower technological node
Huang et al. Debugging clock-data race failures caused by vulnerable design
JP4332680B2 (ja) テスト容易化設計システム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130604