【文献】
三宅外4名,フィールドテストのための温度・電圧推定回路の試作評価,電子情報通信学会技術報告,日本,2012年 2月,p.61-66
【文献】
三宅外4名,モニタ回路による製造バラツキを考慮した温度・電圧推定手法,電子情報通信学会技術報告,日本,2013年 2月,p.55-60
(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
トランジスタ等の半導体素子を使用した集積回路において、半導体の微細化に伴って、回路のばらつきが顕著になり、ばらつきを回路遅延として評価するためには、高精度に遅延時間を計測することが重要になっている。また、各種の故障は、回路の動作速度に影響を与えるが、微小な遅延時間を計測することはより精度よく回路のテストを行うことに寄与する。また、トランジスタの経年劣化は、回路の動作速度を低下させるため、回路の劣化判定にも遅延時間の計測が有効である。また、実際に製造された回路(もしくは任意の入出力間経路)の遅延時間を計測することは、回路の実力(動作速度マージンの確認)設計の正当性(設計通りの速度で設計されたかの確認)を評価することにも役立つ。
よって、高精度に且つ簡易、低コストで、回路の遅延時間を評価することは、半導体・回路の設計、テスト、評価、品質において重要である。
【0003】
図14は従来の順序回路の一例の説明図である。
図14において、回路の遅延時間を測定したりテストする(故障の有無を調べる)ことを考える。遅延計測やテストを行う対象の順序回路01において、演算や論理機能を実現する組合せ回路02に対して、状態を保持(記憶)するフリップフロップ(FF)03がある。この構成では、通常、FF03には、外部から直接、値を設定したり、またFF03の値を直接取り出したりすることができないためにテストを困難にしている。また、FF03はクロック信号に同期して動作するため、順序回路01全体がクロック信号に同期して動作することとなり、組合せ回路02の遅延時間を計測することもできない。
しかしながら、組合せ回路02の遅延時間のテストを行う場合は、組合せ回路02に入力した信号と、出力された信号との遅延時間、すなわち、回路02への入力に対する回路02の出力までの時間を測定することでテスト(遅延時間の計測)が可能である。そのために、外部から、FF03への値の設定とその取り出しをできるようにし、テストの実行時のみ、順序回路を組合せ回路として動作できるようにしたものとして、スキャン設計された回路が知られている。
【0004】
図15は
図14の順序回路の等価回路の説明図である。
図15において、スキャン設計された回路01において、テスト対象回路02(より正確にはテスト対象経路)の遅延テスト(遅延故障を検出するテスト)を実施する場合、まずはじめにスキャンインフリップフロップ(スキャンインFF)03aにテスト用の入力値を設定した後にクロック(Launchクロック)を与えて、入力値をテスト対象回路02に印加する。その後、テスト対象回路02の出力値をCaptureクロックのタイミングでスキャンアウトFF03bで取り込む。なお、
図15の等価回路の図では、信号の流れを理解しやすくするために、
図14のFF03を、スキャンインFF03aとスキャンアウトFF03bとみなして図示している。
この時、スキャンアウトFF03bの値が期待値(正しい出力値)であれば、テスト対象回路02の遅延時間tpdは、クロック周期T(capture時刻〜launch時刻)より小さいので(tpd<T)、正常であると判断される。
【0005】
仮に、スキャンアウトFF03bの値が期待値ではない場合(誤り出力値)は、tpd>Tであり、故障と判断される(遅延故障が存在)。なお、
図15に示すスキャン設計された回路01では、縮退故障(信号線)が論理値「0」または「1」に固定される故障もテストできる。一般にスキャンテストでは、Tはその回路の動作周期に設定される(at-speedテスト)が、faster-than-at-speedテストと呼ばれるテスト手法では、T-fast<Tであるテスト周期T-fastでテストされる。いずれの方法でも、TやT-fastは固定値である。このように、スキャン設計された回路01に対する遅延故障テストでは、クロック周期Tを一定にしてテストを行い、テスト対象経路(回路02)の出力値のパス・フェイル(期待値か否か)で遅延故障の有無を検出している。
【0006】
(launchクロック発生タイミングを可変にする従来技術)
図16はクロック信号の発生タイミングを可変にする回路の一例である。
図15に示す手法に類似する手法として、スキャンインFF03aへの供給クロック信号のlaunchクロックの発生タイミングを可変にして(captureのタイミングは一定)、テスト時のクロック周期を通常動作より早めてテストする手法もある。なお、この方法では、回路01全体のシステムクロックを可変にするのではなく、テスト時にlaunchクロックの発生タイミングだけを可変にする。
launchクロックの発生タイミングを可変にする方法としては、
図16に示すように、マルチプレクサ011の入力側の一方に遅延時間Δtのバッファ(遅延素子)012を接続し、他方には何も接続しない構成の組を、直列に接続した可変クロック発生回路013を使用する方法が考えられる。この可変クロック発生回路013では、各マルチプレクサ011を制御して、クロック信号が通過するバッファ012の個数を設定することで、Δt刻みでクロックの発生タイミングを設定可能である。
【0007】
遅延テスト時に入力されるlaunchクロックの発生タイミングを遅らせる(変化させる)ことで、遅延テスト時のクロック周期T-test(capture時刻〜launch時刻)を短くすることができる(なお、captureタイミングは一定)。この方法により、通常のクロック周期Tよりも短いクロック周期T-testで遅延テストが可能である。
なお、可変クロックの発生方法は、
図16に例示した構成だけでなく、例えば、ODCS(on die clock shrink)などいくつかの方法が提案されている。
【0008】
図17はlaunchクロック発生タイミングを可変にした場合のテスト結果の一例の説明図であり、
図17Aはlaunchクロックの発生タイミングをn×Δtだけ遅らせた場合の説明図、
図17Bはlaunchクロックの発生タイミングを(n+1)×Δtだけ遅らせた場合の説明図である。
図16のようなlaunchクロックの発生タイミングを遅らせて遅延テストを行う場合、
図15におけるスキャンインFF03aのクロック信号に可変クロック発生回路013の出力側が接続される。
図15のテスト対象回路02において、テスト対象の経路Pに対して、launchクロックをn×Δt(nは正の整数)まで変化させた時は、
図17Aに示すようにスキャンアウトFF03bの出力値は期待値であり(遅延テストをパス)、launchクロックを(n+1)×Δtまで変化させた時に、
図17Bに示すようにスキャンアウトFF03bの値が期待値とは異なっていた(遅延テストをフェイル)とする。
【0009】
このとき、テスト対象の経路Pの遅延時間tpd(P)は、以下の式(01)を満たす。
T−(n+1)×Δt<tpd(P)<T−n×Δt …式(01)
したがって、経路Pのタイミングマージン(周期Tに対する遅延時間の余裕)は、n×Δtであることがわかる。
なお、このように、可変クロック発生回路を使用して、遅延テストを行う技術として、例えば、特許文献1(国際公開2011/115038号公報)が知られている。
【0010】
(captureクロック発生タイミングを可変にする従来技術)
図15〜
図17に示す従来技術と類似する手法として、スキャンアウトFF03bへの供給クロック信号のcaptureクロックの発生タイミングを可変にして(launchクロックのタイミングは一定)、テスト時のクロック周期を通常動作よりも早めてテストする技術も存在する。
なお、captureクロックの発生タイミングを可変にする技術でも、
図16、
図17に示すlaunchクロックの発生タイミングを可変にする従来技術と、遅延時間(n×Δt)の計測の方法は同様である。
また、captureクロックの発生タイミングを可変にする技術としては、例えば、非特許文献1が知られている。
【発明を実施するための形態】
【0019】
次に図面を参照しながら、本発明の実施の形態の具体例(以下、実施例と記載する)を説明するが、本発明は以下の実施例に限定されるものではない。
なお、以下の図面を使用した説明において、理解の容易のために説明に必要な部材以外の図示は適宜省略されている。
【実施例1】
【0020】
図1は本発明の実施例1の遅延時間計測装置の説明図である。
図1において、本発明の実施例1の遅延時間計測装置1は、制御装置の一例としてのテスタ2を有する。テスタ2は、本体2aと、表示部の一例としてのディスプレイ2bと、テストヘッド11と、図示しない入力ボタン等と、を有する。テストヘッド11には、計測対象物の一例としてのシステムLSI基板12が装着されている。テスタ2の本体2aは、システムLSI基板12に電源を供給する電源装置や、システムLSI基板12に信号を入力する回路、システムLSI基板12からの出力信号を取得する測定装置、パルスを発生させるパルスジェネレータ、各信号の入力や出力のタイミングを生成するタイミング発生器、各種プログラムが記憶されたメモリや演算装置(CPU等)等を有する。
【0021】
図2は実施例1の遅延時間計測装置の機能ブロック図である。
図2において、実施例1のシステムLSI基板12の内部には、複数の回路ブロックがあり,そのブロックは組合せ回路21を有している。各組合せ回路21は、入力されるデータに基づいてデータ処理を行うデータ処理部の一例としての回路本体21aと、データが入力される入力部の一例としての入力端子21b,21cと、データが出力される出力部の一例としての出力端子21d,21eとを有する。
入力端子の一方(21b)は、組合せ回路21への外部入力であり、出力端子の一方(21d)も、組合せ回路21の外部出力である。
【0022】
入力端子の他方(21c)は、組合せ回路21のデータ処理に対応して設けられたデータの保持部の一例としてのフリップフロップ31の出力側に接続されている。
なお、フリップフロップ31は、
図2では、理解の容易のために1つのみを代表して示しているが、実際は、組合せ回路21の処理に応じてデータを保持する必要のある数だけ、フリップフロップ31が設けられている。すなわち、フリップフロップ31は複数設けられている。フリップフロップ31には、データを保持、更新する時期を制御するためのクロック信号が入力される。
【0023】
また、組合せ回路21の出力端子の他方(21e)には、遅延部の一例としての遅延回路32が接続されている。なお、実施例1の遅延回路32は、テスタ2からの制御信号が入力可能に構成されている。
遅延回路32の出力側は、切替素子の一例としてのマルチプレクサ33の一方の入力端子に入力されている。マルチプレクサ33の他方の入力端子には、テスタ2からテスト用の信号(スキャンイン、Cin)が入力可能に構成されている。また、マルチプレクサ33には、テスタ2から切り替え用の制御信号も入力可能に構成されている。
マルチプレクサ33の出力側は、フリップフロップ31の入力側に接続されている。また、実施例1のフリップフロップ31は、テスタ2に対してテスト用の信号(スキャンアウト、Cout)が出力可能に構成されている。
【0024】
図3は
図2の回路部分の等価回路図である。
図2、
図3において、
図2の回路図において、マルチプレクサ33での切り替えをわかりやすくした等価回路が
図3に示す回路図となる。すなわち、テスト用の信号(Cin)がマルチプレクサ33を通過して入力される状態のフリップフロップ31を第1のフリップフロップの一例としてのスキャンインFF31aとみなすことができ、遅延回路32を通過した信号(Dout)がマルチプレクサ33を通過して入力される状態のフリップフロップ31を第2のフリップフロップの一例としてのスキャンアウトFF31bとみなすことができる。
【0025】
図4は実施例1の遅延部の説明図であり、
図4Aは実施例1の遅延回路の説明図、
図4Bは実施例1の変更例の遅延回路の説明図である。
図4Aにおいて、実施例1の遅延回路32は、切替素子の一例としてのマルチプレクサ41を有する。マルチプレクサ41には、複数の入力部42が設けられている。実施例1のマルチプレクサ41は、入力信号が直接接続される入力部42−0や、遅延素子の一例としてのバッファ43が1つ挿入されてバッファ43を1つ通過した入力信号が入力される入力部42−1、バッファ42が2つ挿入された入力部42−2、…、バッファ43がn個(nは正の整数)挿入された入力部42−n、を有する。なお、実施例1では、各バッファ43は全て共通の構成をしており、1つのバッファ43を通過した信号は、遅延量の一例としての時間Δtだけ遅延するものが使用される。したがって、n個のバッファ43を通過した場合、遅延量(遅延時間)はn×Δtとなる。なお、整数nは、一例として、回路本体21aにおいて故障がない状況における最大の遅延時間に対応する値が設定されているが、測定したい遅延時間の範囲や許容される遅延時間の範囲等、設計や仕様に応じて適宜変更可能である。
なお、テスタ2から遅延回路32に入力される制御信号は、マルチプレクサ41に入力され、どの入力部42−0〜42−nから入力された信号を出力するかが制御される。
【0026】
なお、遅延回路32は、
図4Aに記載された構成に限定されず、遅延時間が切替可能な任意の構成を採用可能である。例えば、
図4Bに示すように、マルチプレクサ46の一方の入力にバッファ47を挿入し、他方の入力には何も素子を挿入しないものを1段として、このマルチプレクサ46とバッファ47の組を多段に接続した構成を採用することも可能である。この構成では、各段のマルチプレクサ46を制御して、出力信号を通過させる経路を、バッファ47側にするか否かを切り替えることで、出力信号が通過するバッファ47の数を制御して、遅延量を制御することが可能である。
【0027】
(実施例1のテスタ2の制御部の説明)
図2において、実施例1のテスタ2は、外部との信号の入出力および入出力信号レベルの調節等を行うI/O(入出力インターフェース)、必要な起動処理を行うためのプログラムおよびデータ等が記憶されたROM(リードオンリーメモリ)、必要なデータ及びプログラムを一時的に記憶するためのRAM(ランダムアクセスメモリ)、ROM等に記憶された起動プログラムに応じた処理を行うCPU(中央演算処理装置)ならびにクロック発振器等を有するコンピュータ装置により構成されており、前記ROM及びRAM等に記憶されたプログラムを実行することにより種々の機能を実現することができる。
前記本体2aには、基本動作を制御する基本ソフト、いわゆる、オペレーティングシステムOS、アプリケーションプログラムとしての遅延時間計測プログラムAP1、その他の図示しないソフトウェアが記憶されている。
【0028】
(実施例1の本体2aに接続された信号入力要素)
本体2aは、システムLSI基板12のフリップフロップ31からの出力信号(スキャンアウト、Cout)等の信号出力要素からの出力信号が入力されている。
【0029】
(テスタ2の本体2aの機能)
実施例1のテスタ2の本体2aは、下記の機能手段(プログラムモジュール)を有する。
C1:テスト信号入力手段
テスト信号入力手段C1は、組合せ回路21における遅延時間の測定を行う場合に、予め設定されたテスト用の信号の一例としてのスキャンインの信号(Cin)を入力する。すなわち、実施例1のテスト信号入力手段C1は、
図3に示す等価回路において、スキャンインFF31aにスキャンイン信号Cinを入力する。実施例1のスキャンインの信号は、テスト対象の回路本体21aにおいて、一般には最も時間がかかる処理(経路Pの処理)、すなわち、時間的なマージン(余裕)が最も少なく、遅延時間が最も厳しい処理が行われる信号(テストパターン)が使用されるが、適切なテストパターンを入力することで任意の経路の遅延時間を計測できる。なお、実施例1では、テストパターンとして、従来公知の通常のスキャンテストで使用される遅延故障テスト用の入力値を使用しているが、これに限定されず、遅延時間計測用の専用の信号を使用することも可能である。なお、実施例1では、スキャンインの信号は、マルチプレクサ33の他方の入力端子に入力される。
【0030】
C2:切替制御手段
切替制御手段C2は、マルチプレクサ33を介して、フリップフロップ31に入力される信号の切り替えを制御する。実施例1では、マルチプレクサ33は、通常時は、遅延回路32からの信号がフリップフロップ31に入力されるように設定されており、スキャンインの信号が入力される場合に、切替制御手段C2は、マルチプレクサ33からスキャンインの信号がフリップフロップ31に入力されるように切り替え、スキャンインの信号が入力されると、遅延回路32からの信号がフリップフロップ31に入力されるように切り替える。
【0031】
C3:遅延量制御手段
遅延量制御手段C3は、遅延回路32のマルチプレクサ41を介して、遅延回路32に入力された信号に対する出力される信号の遅延量を制御する。実施例1では、マルチプレクサ41は、遅延テストが行われない通常時は、入力信号が直接接続される入力部42−0に接続されており、遅延テストが開始された場合、遅延量制御手段C3は、入力部42−1から、順に、挿入されたバッファ42が多い入力部42−2〜42−nに順次切り替える。なお、実施例1の遅延量制御手段C3は、スキャンインの信号が入力される度に入力部42−1〜42−nを1つずつ切り替える。
【0032】
C4:テストパス判定手段
テストパス判定手段C4は、フリップフロップ31から出力された信号、すなわち、スキャンアウトFF31bから出力された信号(スキャンアウト信号Cout)に基づいて、遅延テストに合格したか否かを判定する。実施例1のテストパス判定手段C4は、スキャンアウトの信号が、予め設定された期待値の一例としての「1」である場合に、遅延テストに合格(パス)したと判定し、スキャンアウトの信号が「0」の場合に、遅延テストに不合格(フェイル)したと判定する。すなわち、クロック信号(capture)に応じて、スキャンアウトFFがデータを保持するタイミングにおける遅延回路32からの信号Doutが、「0」であるか「1」であるかを判定する。
【0033】
C5:遅延時間計測手段
遅延時間計測手段C5は、テストパス判定手段C4が遅延テストに不合格と判定された場合の遅延量に基づいて、回路本体21aの遅延時間を測定する。なお、実施例1の遅延時間計測手段C5は、テストパス判定手段C4が不合格と判定すると、遅延時間の計測処理を終了させて、テスト信号入力手段C1によるテスト信号の入力や遅延量制御手段C3による切り替え等を終了させる。なお、遅延量が用意されている最大の遅延量n×Δtでも遅延テストをパスした場合には、遅延時間を「n×Δt以上」として出力する。また、実施例1の遅延時間計測手段C5は、テストをフェイルした時の遅延量(m+1)×Δtと、フェイルする直前にパスした時の遅延量m×Δt(m≦n)と、クロック信号の周期Tと、スキャンインFF31aを信号が通過することに伴う遅延時間t1、遅延回路32のマルチプレクサ41を信号が通過することに伴う遅延時間をt2、スキャンアウトFF31bにおいてデータを取り込むために必要な時間(セットアップ時間)t3、に基づいて、遅延回路32の経路Pの遅延時間tpdを、以下の式(1)を使用して導出する。
T−(m+1)×Δt−t1−t2−t3<tpd<T−m×Δt−t1−t2−t3
…式(1)
すなわち、実施例1の遅延時間計測手段C5は、遅延回路32の遅延時間tpdの範囲を計測結果として、ディスプレイ2bに表示する。なお、遅延時間tpdの範囲を遅延時間の計測結果とする構成に限定されず、例えば、遅延時間tpdの範囲の中間値(=T−(m+1/2)×Δt−t1−t2−t3)を、遅延時間tpdとみなしたり、最初にフェイルした時間(=T−(m+1)×Δt−t1−t2−t3)を、遅延時間tpdとみなして、計測結果とすることも可能である。
【0034】
(実施例1の流れ図の説明)
次に、実施例1の遅延時間計測装置における制御の流れを流れ図、いわゆるフローチャートを使用して説明する。
【0035】
(遅延時間計測処理のフローチャートの説明)
図5は実施例1の遅延時間計測処理のフローチャートの説明図である。
図5のフローチャートの各ステップSTの処理は、テスタ2の本体2aに記憶されたプログラムに従って行われる。また、この処理はテスタ2の他の各種処理と並行して実行される。
図5に示すフローチャートは遅延時間計測プログラムAP1の起動により開始される。
【0036】
図5のST1において、遅延回路32における遅延量m×Δtのmを1に設定する。すなわち、マルチプレクサ41を制御して、バッファ43が1つ挿入された入力部42−1に切り替える。そして、ST2に進む。
ST2において、マルチプレクサ33をスキャンイン側に切り替える。そして、ST3に進む。
ST3において、次の処理(1),(2)を実行して、ST4に進む。
(1)スキャンインの信号をフリップフロップ31に入力する。
(2)マルチプレクサ33を遅延回路32側に切り替える。
ST4において、クロック信号をフリップフロップ31に印加し、ST5に進む。
【0037】
ST5において、フリップフロップ31からスキャンアウトの信号を受信する。そして、ST6に進む。
ST6において、受信したスキャンアウトの信号に基づいて、遅延テストにパスしたか否かを判定する。イエス(Y)の場合、すなわち、テストをパスした場合はST7に進む。ノー(N)の場合、すなわち、テストをフェイルした場合はST9に進む。
ST7において、遅延素子の数mが、最大値n以上であるか否か、すなわち、m≧nであるか否かを判別する。ノー(N)の場合はST8に進み、イエス(Y)の場合はST9に進む。
ST8において、遅延量m×Δtのmを1加算する(m=m+1)。すなわち、マルチプレクサ41を制御して、テストをパスした場合よりもバッファ43が1つ多い側の入力部42−2〜42−nに切り替える。そして、ST2に戻る。
ST9において、テストをフェイルした場合の遅延量m×Δtまたは最大の遅延量n×Δtと、式(1)とに基づいて、遅延時間tpdの計測結果をディスプレイ2bに出力する。そして、遅延時間計測処理を終了する。
【0038】
(実施例1の作用)
前記構成を備えた実施例1の遅延時間計測装置1では、遅延時間の計測が行われない通常の状況では、遅延回路32が、バッファ43の無い入力部42−0に接続されており、遅延のない状況で組合せ回路21での処理や、フリップフロップ31との間でのデータのやりとりが行われる。
【0039】
図6は実施例1の作用説明図であり、
図6Aは
図3に対応する等価回路図、
図6Bは遅延素子が0個の場合のクロック信号、組合せ回路への入力信号および出力信号のタイミングチャート、
図6Cは遅延素子が1個の場合のクロック信号、組合せ回路への入力信号および出力信号のタイミングチャート、
図6Dは遅延素子がm個の場合のクロック信号、組合せ回路への入力信号および出力信号のタイミングチャート、
図6Eは遅延素子がm+1個の場合のクロック信号、組合せ回路への入力信号および出力信号のタイミングチャートである。
図6において、遅延時間の計測が行われる場合、遅延時間の計測対象の組合せ回路21に対応するフリップフロップ31に対して、スキャンインの信号が入力される。フリップフロップ31には、クロック信号が入力されており、ある時刻tのクロックに同期して、フリップフロップ31(スキャンインFF31a)からテストパターンが組合せ回路21に入力される。
【0040】
図6Bにおいて、仮に、バッファ43が挿入されていない場合は、時刻tからクロック信号の1周期Tが経過した後の時刻(t+T)に、組合せ回路21からの出力がフリップフロップ31(スキャンアウトFF31b)に取り込まれる。スキャンアウトFF31bの出力Coutが期待値(回路が正常な場合の出力値、実施例1では「1」)と同じ時は、クロック信号の1周期Tの時間内に、組合せ回路21の入力から出力まで信号が伝搬したことになり、テストはパスする(正常)。すなわち、組合せ回路21の遅延時間tpd<Tである。
【0041】
図6Cにおいて、遅延回路32が制御されて、バッファ43が1つ挿入された入力部42−1に切り替えられた場合、
図6Cに示すように、出力Coutの時刻が、
図6Bに示すバッファ43が挿入されていない場合に比べて、1×Δtだけ遅くなる。この状態でも、出力Coutが期待値と同じ場合は、テストはパスする。一方、出力Coutが期待値と異なる場合、組合せ回路21での信号の伝搬が1クロック周期Tよりも長くかかっている、すなわち、tpd+1×Δt>Tであり、テストはフェイルする(異常、故障)。
【0042】
そして、テストがパスからフェイルになるまで、バッファ43の数を増やしていく。一例として、
図6Dに示すようにバッファ43がm個挿入された場合(挿入された遅延量=m×Δt)ではテストをパスし、
図6Eに示すように、バッファ43が(m+1)個挿入された場合(挿入された遅延量=(m+1)×Δt)ではテストをフェイルする場合を考える。
この時、クロック周期Tと、挿入された遅延量m×Δt、(m+1)×Δtから、未知数である計測対象経路Pの遅延時間tpd(P)は、以下の式(2),(3)で表すことができる。
tpd(P)+m×Δt<T …式(2)
tpd(P)+(m+1)×Δt>T …式(3)
式(2),式(3)から、以下の式(4)が得られる。
T−(m+1)×Δt<tpd(P)<T−m×Δt …式(4)
なお、入力信号Cinを変えることで、計測対象経路Pを変更することが可能である。よって、クロック周期Tと、挿入された遅延量m×Δt、(m+1)×Δtから任意の経路Pの遅延時間tpd(P)を求めることが可能である。したがって、実施例1では、バッファ43の1つ当たりの遅延量Δtの精度で遅延時間を計測できる。
【0043】
図7はスキャンインFFや遅延回路での伝搬遅延の説明図であり、
図7Aは
図3に対応する等価回路図、
図7Bは遅延素子が1個の場合のクロック信号、組合せ回路への入力信号、組合せ回路からの出力信号、遅延回路からの出力信号のタイミングチャートである。
図7において、実施例1の回路構成では、スキャンインFF31aにクロック信号が入ってからスキャンインFF31aの出力に信号が出力されるまでの伝搬時間が伝搬遅延t1として存在する。また、遅延回路32内のマルチプレクサ41においても伝搬遅延t2が存在する。よって、これらの伝搬遅延t1,t2を考慮すると、式(4)は、式(5)のように書き換えられる。
T−(m+1)×Δt−t1−t2<tpd(P)<T−m×Δt−t1−t2
…式(5)
なお、伝搬遅延t1,t2が十分に小さくて無視できる場合や、遅延時間tpdの測定で要求される精度によっては、式(4)を使用して遅延時間を演算することも可能である。また、遅延回路32の構成が実施例と異なり、マルチプレクサを使用しない場合は、t2=0となる場合もある。
【0044】
図8はセットアップ時間とホールド時間の説明図である。
また、
図8に示すように、一般に、フリップフロップには、クロック信号が入る前にフリップフロップのデータ入力信号が安定している期間(セットアップ時間)t3と、データを確実に取り込むためにクロック信号が入った後もデータ入力信号が安定している期間(ホールド時間)t4が必要である。よって、スキャンアウトFF31bが、遅延回路32の出力信号Doutの値を取り込むためには、スキャンアウトFF31bのセットアップ時間t3よりも前に、データ信号が到着していなければならない。裏を返せば、スキャンアウトFF31bが遅延回路32の出力Doutを取り込んだのであれば、セットアップ時間t3よりも前に、スキャンアウトFF31bの入力側にデータ信号が到着している。よって、スキャンアウトFF31bのセットアップ時間t3を考慮した場合、式(5)は、前述の式(1)で表現される。
T−(m+1)×Δt−t1−t2−t3<tpd<T−m×Δt−t1−t2−t3
…式(1)
なお、セットアップ時間t3が、他の値(周期Tや遅延量Δt等)に比べて十分小さい場合等では、セットアップ時間t3を無視したり、t3=0とみなして計算することも可能である。
【0045】
なお、一般に、フリップフロップでは、セットアップ時間t3より遅れ、且つ、ホールド時間より前にデータ信号入力された場合には、フリップフロップの出力が取り込んだ値が「不定」となる。しかし、挿入するバッファ43を増やしていき、信号変化がセットアップ時間t3+ホールド時間t4の間に起こったとしても、スキャンアウトFF31bが故障値(期待値ではない値)を取り込んで、遅延テストをフェイルすれば、遅延計測は終了する。よって、結果として、この場合でも、Δtの精度で遅延計測が可能である。
例えば、Δt>t3+t4の場合に、挿入された遅延量m′×Δtで、セットアップ時間t3より遅れてデータ信号が入力された場合、すなわち、信号変化がt3+t4の間に発生した場合を考える。この時、スキャンアウトFF31bが故障値を取り込んだ場合(テストをフェイルした場合)は、遅延計測が終了するので、求める遅延時間tpd(P)は、以下の式(6)となる。
T−m′×Δt−t1−t2−t3
<tpd(P)<T−(m′−1)×Δt−t1−t2−t3 …式(6)
【0046】
逆に、スキャンアウトFF31bが期待値を取り込んだ場合(テストをパスした場合)は、挿入されるバッファ43がもう1つ増やされて、遅延量が(m′+1)Δtになる。遅延量が(m′+1)Δtになると、Δt>t3+t4であるため、信号変化は、t3+t4よりも後に確実に発生する。よって、スキャンアウトFF31bには、確実に故障値が入力され、スキャンアフトFF31bは、確実に故障値を取り込む(テストをフェイルする)。よって、この時の遅延時間tpdは、以下の式(7)となる。
T−(m′+1)×Δt−t1−t2−t3
<tpd(P)<T−m′×Δt−t1−t2−t3 …式(7)
よって、式(6)、式(7)のいずれの場合でも、Δtの精度で遅延時間tpd(P)を計測できる。なお、より精度が要求される場合には、遅延時間の計測を複数回行って、式(6)の発生回数と、式(7)の発生回数から、平均をとって遅延時間tpd(P)とすることも可能である。
【0047】
なお、1つのバッファ43の遅延量Δtの値が、Δt<t3+t4の場合、データ信号の変化がt3+t4の期間に複数回発生する。具体的には、[]をガウス記号とした場合、[(t3+t4)/Δt]回、データ信号の変化が発生する。その中でテストをフェイルした時のバッファ43がk個であれば、以下の式(8)が成立する。
T−k×Δt−t1−t2−t3
<tpd(P)<T−(k−1)×Δt−t1−t2−t3 …式(8)
【0048】
したがって、実施例1の遅延時間計測装置1では、特許文献1、非特許文献1のような従来技術と異なり、フリップフロップ31のクロック信号を変化させず、組合せ回路21の出力側に遅延回路32を挿入するだけで、遅延時間tpdを測定することが可能である。よって、従来技術に比べて、クロック信号が不安定になることが抑制され、フリップフロップ31の挙動が不安定になることが低減される。したがって、システムLSI基板12全体が不安定になることを抑制しつつ、遅延時間tpdを測定することが可能である。
【0049】
図3に示す構成ではでは、フリップフロップ31を備え、スキャン設計がされたシステムLSI基板12における遅延時間tpdの計測方法を説明した。すなわち、スキャン設計がされた回路では、既存のスキャン設計の部分を利用して、遅延時間の計測を行っている。これに対して、実施例1の構成は、スキャン設計がされていない回路や、フリップフロップ31を備えない回路、例えば、ボード回路(組合せ回路21のみ)等の遅延時間の計測にも適用可能である。
ボード回路等の遅延時間の計測を行う場合には、ボード回路側に備わっていない各素子、すなわち、テストヘッド11側に、スキャンインFF31aと、遅延回路32、スキャンアウトFF31b、図示しないクロック信号の発生回路を設けておき、テストヘッド11にボード回路(
図3の組合せ回路21のみに相当)を装着することで、
図3の場合と同様にして、ボード回路の遅延時間を計測可能である。他にも、スキャンインFF31a、遅延回路32、スキャンアウトFF31b、クロック発生回路を統合したアダプタを作成しておき、ボード回路等の計測を行う場合には、テストヘッド11とボード回路との間にアダプタを装着してボード回路の遅延時間を計測し、スキャン設計回路の遅延時間の計測を行う場合にはアダプタを使用せずに遅延時間の計測を行うことも可能である。
よって、特許文献1、非特許文献1に記載の技術では、スキャン設計された回路が前提となっているが、実施例1では、スキャン設計されていない回路やフリップフロップを有しない回路といった多様な電気動作の回路の遅延時間を計測可能である。
【実施例2】
【0050】
図9は実施例2の遅延時間計測装置の回路図および機能ブロック図であり、実施例1の
図3に対応する図である。
図10は実施例2のタイミングチャートの説明図であり、
図10Aは遅延素子が0個の場合のクロック信号、組合せ回路への入力信号および出力信号のタイミングチャート、
図10Bは遅延素子がa個の場合のクロック信号、組合せ回路への入力信号および出力信号のタイミングチャート、
図10Cは遅延素子がb個の場合のクロック信号、組合せ回路への入力信号および出力信号のタイミングチャートである。
次に、本発明の実施例2の説明をするが、この実施例2の説明において、前記実施例1の構成要素に対応する構成要素には同一の符号を付して、その詳細な説明を省略する。
この実施例2は、下記の点で前記実施例1と相違しているが、他の点では前記実施例1と同様に構成されている。
【0051】
図9において、実施例2の遅延時間計測装置1では、第2のフリップフロップの一例として、スキャンアウトFF31bとは異なるスキャンアウトFF51を有する。実施例2のスキャンアウトFF51は、クロック信号の立ち上がりでデータを取り込む第1観測FF52と、クロック信号の立ち下がりでデータを取り込む第2観測FF53と、を有する。なお、実施例2では、実施例1と異なり、スキャンインFF31aとスキャンアウトFF51とが統合されておらず、別個のフリップフロップにより構成されている。
また、
図10において、実施例2の遅延時間計測装置1では、クロック信号として、デューティー比(1周期に対する「1」の時間の割合)が1/2のものが使用される。
【0052】
さらに、
図9において、実施例2の遅延時間計測装置1では、テスタ2の機能手段は、実施例1に比べて、スキャンインFFとスキャンアウトFFとを切り替える切替制御手段C2が省略され、スキャンアウト信号を取得する観測FF52,53を設定、切り替える観測FF設定手段C6を有する。なお、実施例2の観測FF設定手段C6は、遅延時間の計測開始時には第2観測FF53に設定し、第2観測FF53で取得した信号がフェイルした場合には、第1観測FF52に切り替える。
また、実施例2の遅延時間計測手段C5は、第1観測FF52が設定されている場合に、遅延テストがパスからフェイルになった時の遅延量(m+1)×Δtに基づいて、前記式(1)を使用して遅延時間tpdを導出する。一方、遅延時間計測手段C5は、第2観測FF53が設定されている場合に、遅延テストがパスからフェイルになった時の遅延量(m+1)×Δtに基づいて、以下の式(9)を使用して遅延時間tpdを導出する。
T/2−(m+1)×Δt−t1−t2−t3
<tpd<T/2−m×Δt−t1−t2−t3 …式(9)
なお、時間t1〜t3は、実施例1で詳述したように、十分に小さい場合等では無視可能である。
よって、クロック周期1周期を使用して遅延計測を行う実施例1と異なり、実施例2では、デューティー比が1/2のクロック信号の立ち上がりまたは立ち下がり、すなわち、1/2周期を使用して遅延計測を行っている。
【0053】
(実施例2の流れ図の説明)
次に、実施例2の遅延時間計測装置における制御の流れを流れ図、いわゆるフローチャートを使用して説明する。
【0054】
(遅延時間計測処理のフローチャートの説明)
図11は実施例2の遅延時間計測処理のフローチャートの説明図である。
図11の遅延時間計測処理では、実施例1と同様にST1〜ST4を実行して、ST11に進む。
ST11において、第2観測FF53でスキャンアウト信号を受信する。そして、ST12に進む。
ST12において、受信したスキャンアウトの信号に基づいて、遅延テストにパスしたか否かを判定する。イエス(Y)の場合、すなわち、テストをパスした場合はST13に進む。ノー(N)の場合、すなわち、テストをフェイルした場合はST21に進む。
ST13において、遅延量m×Δtのnを1加算する(m=m+1)。すなわち、すなわち、マルチプレクサ41を制御して、テストをパスした場合よりもバッファ43が1つ多い側の入力部42−2〜42−nに切り替える。そして、ST14に進む。
【0055】
ST14において、マルチプレクサ33をスキャンイン側に切り替える。そして、ST15に進む。
ST15において、次の処理(1),(2)を実行して、ST16に進む。
(1)スキャンインの信号をフリップフロップ31に入力する。
(2)マルチプレクサ33を遅延回路32側に切り替える。
ST16において、クロック信号をフリップフロップ31に印加し、ST17に進む。
ST17において、第2観測FF53でスキャンアウト信号を受信する。そして、ST18に進む。
ST18において、受信したスキャンアウトの信号に基づいて、遅延テストにパスしたか否かを判定する。イエス(Y)の場合、すなわち、テストをパスした場合はST19に進む。ノー(N)の場合、すなわち、テストをフェイルした場合はST20に進む。
ST19において、m≧nであるか否かを判別する。イエス(Y)の場合はST20に進み、ノー(N)の場合はST13に戻る。
ST20において、式(9)に基づいて遅延時間tpdを計測して、ディスプレイ2bに表示する。そして、遅延時間計測処理を終了する。
【0056】
ST21において、マルチプレクサ33をスキャンイン側に切り替える。そして、ST22に進む。
ST22において、次の処理(1),(2)を実行して、ST23に進む。
(1)スキャンインの信号をフリップフロップ31に入力する。
(2)マルチプレクサ33を遅延回路32側に切り替える。
ST23において、クロック信号をフリップフロップ31に印加し、ST24に進む。
ST24において、第1観測FF52でスキャンアウト信号を受信する。そして、ST6に進む。
ST6において、受信したスキャンアウトの信号に基づいて、遅延テストにパスしたか否かを判定する。イエス(Y)の場合、すなわち、テストをパスした場合はST7に進む。ノー(N)の場合、すなわち、テストをフェイルした場合はST9に進む。
ST7において、m≧nであるか否かを判別する。ノー(N)の場合はST8に進み、イエス(Y)の場合はST9に進む。
ST8において、遅延量m×Δtのnを1加算する(m=m+1)。すなわち、すなわち、マルチプレクサ41を制御して、テストをパスした場合よりもバッファ43が1つ多い側の入力部42−2〜42−nに切り替える。そして、ST21に戻る。
ST9において、テストをフェイルした場合の遅延量m×Δtと、式(1)とに基づいて、遅延時間tpdの計測結果をディスプレイ2bに出力する。そして、遅延時間計測処理を終了する。
【0057】
(実施例2の作用)
前記構成を備えた実施例2の遅延時間計測装置1では、デューティー比が1/2のクロック信号の立ち下がりでデータを取り込む第2観測FF53を有する。すなわち、第1観測FF52は、実施例1と同様に、クロック信号の1周期Tに対応するタイミングで遅延回路32からの信号を取り込むが、第2観測FF53は、クロック信号の半周期T/2に対応するタイミングで遅延回路32からの信号を取り込む。
【0058】
ここで、実施例1の構成では、1周期Tに対応するタイミングで遅延回路32からの信号を取り込んでおり、遅延時間tpdが短い場合には、
図10Bに示すように、テストがフェイルするまで、バッファ43を1つずつ増やしてテストを行う工程の繰り返しが多くなり、遅延時間tpdの計測が終了するまでの時間が長くなる問題がある。これに対して、実施例2では、ST11,ST12において、まず、半周期T/2においてテストをパスするか否か、すなわち、遅延時間が半周期T/2よりも短いか否かを判定する。そして、テストをパスする場合、すなわち、遅延時間tpdが半周期T/2よりも短い場合には、第2観測FF53を使用して遅延テストを繰り返して遅延時間tpdを計測する。よって、この場合、b<aとなり,実施例2では、
図10Cに示すように、
図10Bに示す場合に対して、半周期分の遅延テストが省略された事となり、遅延時間tpdを計測するまでの時間を短くすることができる。
【0059】
なお、実施例2の遅延時間計測装置1では、ST11,ST12で、遅延時間tpdが半周期T/2よりも短いか否かを判定したが、遅延時間tpdが、半周期T/2よりも長いか短いかが既知の場合には、ST11,ST12の処理を省略して、適切な観測FF52,53を使用した遅延時間tpdの計測を行う構成に変更することも可能である。
また、実施例2の遅延時間計測装置1では、実施例1と同様に、スキャン設計された回路に限定されず、多様な電気動作をする任意の回路において、遅延時間を計測することが可能である。
【0060】
図12は実施例2の変更例の説明図であり、
図12Aは実施例2の変更例1の説明図、
図12Bは実施例2の変更例2の説明図である。
(実施例2の変更例1)
実施例2の遅延時間計測装置1におけるスキャンアウトFF51とは異なる構成のスキャンアウトFF51′を有する。実施例2の変更例1のスキャンアウトFF51′では、第2観測FF53のように立ち下がりでデータを取り込むフリップフロップを使用することに替えて、
図12Aに示すように、クロック信号を反転する反転素子61を介して、第1観測FF52と同一の立ち上がりでデータを取り込むフリップフロップを第2観測FF62として使用することで、実施例2と同様の機能を実現可能である。
なお、この場合、反転素子61でクロック信号を反転させるため、その分の遅延時間t5が発生する。したがって、第2観測FF62は、元のクロックの半周期T/2に対して、遅延時間t5だけ遅れてデータを取り込む。よって、
図12Aに示す実施例2の変形例1では、式(9)に替えて以下の式(9a)を使用して遅延時間の計測を行うこととなる。
(T/2+t5)−(m+1)×Δt−t1−t2−t3
<tpd<(T/2+t5)−m×Δt−t1−t2−t3 …式(9a)
【0061】
(実施例2の変更例2)
図12Bにおいて、実施例2の変更例2では、スキャンアウトFF51とは異なる構成のスキャンアウトFF51″を有する。実施例2の変更例2のスキャンアウトFF51″は、立ち上がりでデータを取り込むフリップフロップ66と、フリップフロップ66にクロック信号を入力する経路に配置された切替素子の一例としてのマルチプレクサ67とを有する。マルチプレクサ67は、一方の入力にクロック信号がそのまま入力され、他方の入力に反転素子68を介してクロック信号が反転して入力される。
よって、マルチプレクサ67で、クロック信号をそのままフリップフロップ66に入力した場合は、1周期Tに基づく遅延時間の計測が可能であり、クロック信号を反転して入力した場合は、半周期T/2に基づく遅延時間の計測が可能になる。よって、実施例2の変更例2も、実施例2と同様の機能を実現可能である。
なお、実施例2の変更例2では、半周期T/2での計測時に反転素子68での遅延時間t6が発生するとともに、1周期Tの場合と半周期T/2の場合の両方でマルチプレクサ67による遅延時間t7が発生する。よって、
図12Bに示す実施例2の変形例2では、式(1)、式(9)に替えて以下の式(1b)、式(9b)を使用して遅延時間の計測を行うこととなる。
(T+t7)−(m+1)×Δt−t1−t2−t3
<tpd<(T+t7)−m×Δt−t1−t2−t3 …式(1b)
(T/2+t6+t7)−(m+1)×Δt−t1−t2−t3
<tpd<(T/2+t6+t7)−m×Δt−t1−t2−t3 …式(9b)
【0062】
(実験例)
次に、
図12Aに示す実施例2の変更例1の構成を使用して、本発明の効果を確かめる実験を行った。実験は、ブレッドボード上に組合せ回路やFF、遅延回路等のICを差したものを使用した。
フリップフロップ52,62として、株式会社東芝製のTC74HAPを使用した。
組合せ回路21として、株式会社東芝製のTC74HC04AP(インバータ)のチェーン回路(縦続接続回路)を作成した。組合せ回路21では、経路Bとして、インバータ12段のチェーン回路を作成し、経路Cとして、インバータ30段のチェーン回路を作成した。
【0063】
遅延素子(バッファ43)として、株式会社東芝製のTC74HC04AP(インバータ)2個からなるバッファ43を作成して、これを挿入遅延1個分として構成した。
テスト信号の入力値およびクロック信号は、ファンクションジェネレータから供給した。また、出力値はデジタルオシロスコープで観測した。電圧は5[V]で駆動し、クロック周期Tは200ns(5MHz)に設定した。
経路B,Cについて、各経路の実際の遅延時間を計測したところ、経路Bについては、実測遅延時間tpd(meas)が69.5nsであり、半周期(100ns)よりも短かった。また、経路Cについては、実測遅延時間tpd(meas)が141nsであり、半周期(100ns)よりも長かった。
【0064】
挿入遅延時間Δtを実測したところ、7.5nsであった。なお、挿入遅延時間Δtには、素子のばらつき、配線による遅延、計測誤差等による値の変動があるため、平均値を使用した。また、挿入遅延(バッファ43)は、順次1個ずつ増やしながら計測したため、マルチプレクサ41は使用していない。よって、実験では、t2=0となる。
経路Bは、遅延時間が1/2周期以内であるので、式(9a)を使用して遅延時間を計測した。また、経路Cは、遅延時間が1/2周期異常であるので、式(1)を使用して遅延時間を計測した。
【0065】
図13は実験例の説明図であり、
図13Aは実験パラメータの一覧表、
図13Bは挿入遅延の個数とテストの結果の一覧表、
図13Cは遅延素子の変動の一覧表の説明図である。
図13Aに実験例で使用した伝搬遅延時間t1〜t3,t5、Δt等のパラメータ値を示す。また、
図13Bに、バッファ43の個数と、遅延テストの結果を示す。なお、
図13Bには、個々の挿入したバッファ43の遅延量Δtの実測値も示す。
図13Bの実験結果から、経路Bについて、式(9a)を使用して計算すると、以下の式(10)が得られた。
69.0[ns]<tpd(経路B)<76.5[ns] …式(10)
また、経路Cについて、
図13Bの結果から、式(1)を使用して計算すると、以下の式(11)が得られた。
139.8[ns]<tpd(経路C)<147.3[ns] …式(11)
よって、経路Bについては、式(10)から実測値69.5nsが範囲内に含まれ、経路Cについても、式(11)から実測値141nsが範囲内に含まれることが確認できた。よって、実験例の構成で、遅延時間の計測が可能であることが確認された。
【0066】
なお、
図13Bの結果から、仮に、セットアップ時間t3を無視(t3=0)として計算した場合は、式(10)、式(11)の結果が、以下の式(10a)、式(11a)となった。
72.3[ns]<tpd(経路B)<79.8[ns] …式(10a)
143.1[ns]<tpd(経路C)<150.6[ns] …式(11a)
したがって、今回の実験例では、フリップフロップ52,62のセットアップ時間t3が3.3[ns]であり、遅延時間Δt=7.5[ns]に対して、比較的大きな値であることから、セットアップ時間t3を考慮しない式(10a)、式(11a)を用いた計算では、遅延時間が、真値(実測値)よりも大きく推定されている。裏を返せば、セットアップ時間t3が、遅延量Δtに対して十分に小さいフリップフロップを使用する場合には、セットアップ時間t3を考慮しなくても、遅延時間が計測できることもわかる。
【0067】
なお、実験例では、ブレッドボードを使用したため、バッファ43の個体差、配線のばらつき、測定誤差等で、バッファ43の遅延量Δtに変動があった。
図13Cに、個々の遅延量Δtを示す。一般に挿入される遅延43はどのような方法で実現してもばらつきがあると考えられる。よって、遅延時間Δtの変動量(散らばり具合)を考慮すると、遅延量Δtの標準偏差をσとすると、式(1)、式(9)は、以下の式(1c)、式(9c)ように書き換えられる。
T−(m+1)×(Δt+3σ)−t1−t2−t3
<tpd<T−m×(Δt−3σ)−t1−t2−t3 …式(1c)
T/2−(m+1)×(Δt+3σ)−t1−t2−t3
<tpd<T/2−m×(Δt−3σ)−t1−t2−t3 …式(9c)
なお、ここでは、遅延量Δtの標準偏差σに対して、±3σの範囲を考慮した。これは、一般に回路設計の分野ではばらつきを±3σの範囲で考慮しているためである。なお、「平均値±3σ」の範囲には、全データの99.7%が入る。
【0068】
この式(1c)、式(9c)を、
図13Bの実験結果に適用すると、以下の式(10b)、式(11b)の結果となった。
58.0[ns]<tpd(経路B)<83.8[ns] …式(10b)
119.5[ns]<tpd(経路C)<164.2[ns] …式(11b)
よって、実測値は、式(10b)、式(11b)の範囲に含まれるが、推定精度が下がった(推定範囲が広がった)。これは、実験で使用したΔtのばらつきが大きく、±3σを考慮すると、Δtの変動範囲は、2×Δtとなるためである。しかし、バッファ43を現実に製作する上で、このばらつきは排除できないが、実際の製品を製造する際には、実験例ほど大きな値にならない。よって、Δtのばらつきが十分に小さくなれば、式(1c)、式(9c)を使用しても、十分な推定精度が確保できることも期待できる。
【0069】
(変更例)
以上、本発明の実施例を詳述したが、本発明は、前記実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内で、種々の変更を行うことが可能である。本発明の変更例(H01)〜(H03)を下記に例示する。
(H01)前記実施例1,2において、各式(1)、式(9)等において、回路の構成に応じて、バッファ43以外に伝搬遅延時間t1〜t7を考慮した式を示したが、これに限定されない。例えば、遅延回路等の構成上、信号の遅延を発生させる素子等を有する場合には、各式に対応する遅延時間の項を追加することも可能である。逆に、無視できる項は省略することも可能である。
【0070】
(H02)前記実施例1において、スキャンインFF31aとスキャンアウトFF31bとを共通のフリップフロップ31で実現する構成を例示したが、等価回路で示すように、2つのフリップフロップを使用して回路を実現することも可能である。
(H03)前記実施例1,2において、組合せ回路21として、ボード回路や非スキャン設計の回路等、任意の回路に適用可能である。