(58)【調査した分野】(Int.Cl.,DB名)
マクロが設けられた半導体装置において、第1入力パッドからの第1信号が前記マクロに入力されるまでの第1遅延と、第2入力パッドからの第2信号が前記マクロに入力されるまでの第2遅延の遅延差を測定する半導体装置の遅延差検出方法であって、
前記第1信号における正または負のいずれか一方の論理の第1論理信号、および、前記第2信号における正または負のいずれか一方の第2論理信号に従って変化する第1出力を出力し、
前記第1論理信号と反対論理の第3論理信号、および、前記第2論理信号と反対論理の第4論理信号に従って変化する第2出力を出力し、
前記第2信号をスイープさせながら、前記第1ユニットの出力が変化する第1変化点および前記第2ユニットの出力が変化する第2変化点を測定し、
測定された前記第1変化点および前記第2変化点の中間値を得ることで前記第1信号および前記第2信号の遅延差を求める、
ことを特徴とする半導体装置の遅延差検出方法。
【発明を実施するための形態】
【0015】
まず、遅延差検出回路、半導体装置および半導体装置の遅延差検出方法の実施例を詳述する前に、
図1〜
図7を参照して、半導体装置の遅延差検出方法の例およびその課題を説明する。
【0016】
図1は、半導体装置における信号の遅延差を説明するための図であり、
図1(a)は、マクロを搭載したチップ(半導体装置)の一例を示すブロック図であり、
図1(b)は、
図1(a)に示すチップの信号遅延を説明するためのタイミング図である。
【0017】
図1(a)および
図1(b)において、参照符号1はチップ、2はマクロ、Cdinはチップ1の入力データ、Cclkはチップ1の入力クロック、Mdinはマクロ2の入力データ、そして、Mclkはマクロ2の入力クロックを示す。
【0018】
なお、Ddは、チップ1のデータ入力からマクロ2のデータ入力までの遅延(データ遅延)を示し、また、Dclkは、チップ1のクロック入力からマクロ2のクロック入力までの遅延(クロック遅延)を示す。
【0019】
図1(a)に示されるように、例えば、チップ1上には、様々なマクロ2(
図1(a)では、説明を簡略化するために1つのマクロのみを示す)が配置(搭載)されている。
【0020】
このようなマクロ2において、その入力クロックMclkに対する入力データMdinのセットアップ時間(ホールド時間)は、直接測定することが困難なため、チップ1のパッド(端子)からマクロ2の入力までの遅延時間を測定することが行われている。
【0021】
すなわち、
図1(b)に示されるように、例えば、マクロ2のセットアップ時間Tsum、チップ1のセットアップ時間をTsucとすると、次の[式1]が成り立つ。
Tsuc + Dclk = Dd + Tsum …… [式1]
【0022】
従って、マクロ2のセットアップ時間Tsumは、次の[式2]により求めることができる。
Tsum = Tsuc + Dclk − Dd …… [式2]
【0023】
すなわち、Tsumは、チップ1のデータ入力からマクロ2のデータ入力までのデータ遅延Dd、チップ1のクロック入力からマクロ2のクロック入力までのクロック遅延Dclk、および、チップ1のセットアップ時間Tsucを測定することにより求めることができる。
【0024】
ここで、チップ1のセットアップ時間Tsucは、チップ1のパッドからクロックCLKおよび入力データDinを与えることにより測定することができる。なお、データ遅延Ddおよびクロック遅延Dclk(DclkとDdの遅延差)は、例えば、
図2の遅延差検出回路により求めることができる。
【0025】
図2は、半導体装置の遅延差検出方法の一例を説明するための図であり、
図2(a)は、マクロ2および遅延差検出回路3を搭載したチップを示すブロック図であり、
図2(b)は、
図2(a)に示すチップの信号遅延を説明するためのタイミング図である。
【0026】
図2(a)において、参照符号3は、遅延差検出回路(D型フリップフロップ(D Flip-Flop:DFF))を示す。なお、
図2(a)においても、説明を簡略化するために1つのマクロのみを示すが、チップ1には、複数のマクロが搭載されるのはいうまでもない。
【0027】
図2(a)に示されるように、チップ1には、DFF(遅延差検出回路)3が設けられ、データ遅延Ddとクロック遅延Dclkの遅延差を測定するようになっている。すなわち、DFF3のデータ入力には、チップ1の入力データCdinが入力され、DFF3のクロック入力には、チップ1の入力クロックCclkが入力され、DFF3の出力(Q)は、チップ1の外部に取り出されるようになっている。
【0028】
ここで、例えば、DFF3のデータ入力とマクロ2のデータ入力までの距離と、DFF3のクロック入力とマクロ2のクロック入力までの距離はほぼ等しくされ、それらの間に遅延が存在しても相殺してDdとDclkの遅延差を正確に検出できるようになっている。
【0029】
図2(b)に示されるように、例えば、入力データCdinの立ち上がりタイミングを時間的に変化(スイープ)させ、DFF3により、その入力データCdinの遷移を入力クロックCclkで取り込み、出力Qの立ち上がりタイミングをチップ1の外部で測定する。
【0030】
この入力データCdin,入力クロックCclkおよび出力Qの立ち上がり(遷移)を測定することにより、データ遅延Ddとクロック遅延Dclkの遅延差を求めることができる。
【0031】
図3は、
図2に示す半導体装置の遅延差検出方法の一例に適用されるD型フリップフロップを示す回路図であり、信号を取り込む(キャプチャする)のに使用する一般的なD型フリップフロップ(DFF3)を示すものである。
【0032】
図3に示されるように、DFF3は、インバータ301〜307、pチャネル型MOS(pMOS)トランジスタ311〜314、および、nチャネル型MOS(nMOS)トランジスタ321〜324を含む。
【0033】
ここで、トランジスタ311,321およびインバータ302、並びに、トランジスタ313,323およびインバータ305は、それぞれトランスファーゲートとして機能する。また、入出力が交差接続された、インバータ303および304、並びに、インバータ306および307は、それぞれラッチとして機能する。
【0034】
トランジスタ311および321、並びに、トランジスタ313および323は、それぞれクロックCLKによりオン/オフしてトランスファーゲートの動作を制御する。また、トランジスタ312および322、並びに、トランジスタ314および324は、それぞれクロックCLKによりオン/オフしてラッチの動作を制御する。
【0035】
インバータ302,303、305および306は、直列に接続され、初段のインバータ302の入力には、データDinが入力され、最終段のインバータ306からDFF3の出力Qが取り出されるようになっている。
【0036】
なお、トランスファーゲート302,311、321およびラッチ306,307,314,324は、クロックCLKが低レベル『L』のとき動作状態となり(オンし)、クロックCLKが高レベル『H』のとき非動作状態となる(オフする)。
【0037】
逆に、トランスファーゲート305,313、323およびラッチ303,304,312,322は、クロックCLKが『L』のときオフし、クロックCLKが『H』のときオンする。
【0038】
図4は、
図3に示すD型フリップフロップの動作を説明するための図である。ここで、
図4(a)は、データDinの変化(『L』から『H』への変化)がクロックCLKの変化よりも十分に早い場合を示すタイミング図である。
【0039】
さらに、
図4(b)は、データDinの変化がクロックCLKの変化と近い場合を示すタイミング図であり、また、
図4(c)は、データDinの変化がクロックCLKの変化よりも十分に遅い場合を示すタイミング図である。
【0040】
まず、
図4(a)に示されるように、データDinの変化がクロックCLKの変化よりも十分に早い場合、DFF3は、データDinの『L』から『H』に変化したのを、クロックCLKの立ち上がりタイミングで取り込み、『L』から『H』に変化する出力Qを出力する。
【0041】
次に、
図4(c)に示されるように、データDinの変化がクロックCLKの変化よりも十分に遅い場合、DFF3は、データDinの『L』を、クロックCLKの立ち上がりタイミングで取り込み、『L』のままの出力Qを出力する。
【0042】
一方、
図4(b)に示されるように、データDinの変化がクロックCLKの変化と近く、データDinが『L』から『H』に変化した直後にクロックCLKが『L』から『H』に変化すると、DFF3は、一瞬『H』に立ち上がって『L』に戻る出力Qを出力する。
【0043】
すなわち、クロックCLKのエッジ(立ち上がり)とデータDinの遷移(立ち上がり)がほぼ同時刻になると、ラッチによる取り込みタイミングと、トランスファーゲートによるデータの転送タイミングほぼ等しくなって、一時的にメタステーブル状態が生じる。
【0044】
このメタステーブル状態では、ラッチとトランスファーゲートの電荷供給能力の差などによって、意図しない方向(レベル)にラッチが確定してしまうことも生じ得る。その結果、DFF3の出力Qは、クロックCLKのエッジとデータDinの遷移の順序を正しく反映することができず、データ遅延Ddとクロック遅延Dclkの遅延差を正確に求めることが困難になる。
【0045】
図5は、半導体装置の遅延差検出方法の他の例を説明するための図であり、遅延差検出回路3の他の例、すなわち、DFF(D型フリップフロップ)を使わないで、データDinおよびクロックCLKの遷移をRS型フリップフロップで検出するものである。ここで、
図5(a)は、遅延差検出回路3の他の例を示す回路図であり、
図5(b)および
図5(c)は、
図5(a)の遅延差検出回路3における動作を説明するためのタイミング図である。
【0046】
図5(a)に示されるように、遅延差検出回路3の他の例は、インバータ308およびNANDゲート331〜333を含む。データDinは、インバータ308を介してNANDゲート331の一方の入力に入力され、クロックCLKは、NANDゲート331の他方の入力に入力される。
【0047】
NANDゲート331の出力(ノードn1)は、NANDゲート332の一方の入力に入力され、NANDゲート332の出力(Q)は、遅延差検出回路3の出力Qとしてチップ1の外部に取り出されると共に、NANDゲート333の一方の入力に入力される。
【0048】
NANDゲート333の出力は、NANDゲート332の他方の入力に入力され、これらNANDゲート332および333はラッチとして機能する。なお、NANDゲート333の他方の入力には、リセット信号RSTXが入力され、ラッチ(332,333)により保持された出力Qのリセットを行う。
【0049】
上述した
図5(a)に示す回路により、DFFを使わないで、クロックCLKの立ち上がりに対するデータDinの立ち上がりのタイミング(時刻)を検出することができる。
【0050】
すなわち、
図5(b)に示されるように、データDinの立ち上がり遷移がクロックCLKの立ち上がりタイミングよりも早いと、ノードn1は『H』を維持し、出力Qは『L』を維持する。
【0051】
一方、
図5(c)に示されるように、データDinの立ち上がり遷移がクロックCLKの立ち上がりタイミングよりも遅いと、ノードn1には、両者のタイミング差に対応して『L』に変化するパルスが発生する。なお、
図5(b)および
図5(c)において、リセット信号RSTXは、『H』となっている。
【0052】
すなわち、
図5(a)に示す遅延差検出回路は、
図5(b)および
図5(c)に示されるように、ノードn1に『L』に変化するパルスが発生するか否かにより、データDinとクロックCLKの立ち上がりのタイミングを判定するようになっている。
【0053】
しかしながら、データDinとクロックCLKの遷移時刻がほぼ等しくなると、ノードn1に発生するパルスの幅が非常に狭くなって、そのパルスを検知することができずに出力Qに反映されないことが生じ得る。
【0054】
図6は、
図5に示す半導体装置の遅延差検出方法における課題を説明するための図である。ここで、
図6(a)は、上述した
図5(a)と同じ回路図であり、
図6(b)は、上述した
図5(c)において、データDinとクロックCLKの遷移時刻がほぼ等しい(Dinの立ち上がりがクロックCLKよりも僅かに遅い)場合のタイミング図である。
【0055】
図6(b)に示されるように、クロックCLKの立ち上がりに対するデータDinの立ち上がり遷移がクロックCLK立ち上がり遷移よりわずかに遅い場合、NANDゲート331の出力ノードn1は、『H』から『L』に一瞬変化する非常に狭いパルスを出力する。
【0056】
しかしながら、このノードn1における一瞬『H』から『L』に変化するパルスは、例えば、後段のラッチ(NANDゲート332)で検出することができず、出力Qは、
図6(b)中の破線のように変化せず、実線のように『L』を維持する。すなわち、不感帯が存在することになってしまう。
【0057】
図7は、
図5に示す半導体装置の遅延差検出方法の変形例における課題を説明するための図であり、
図7(a)は、本変形例の遅延差検出回路3の回路図を示し、
図7(b)は、
図7(a)に示す遅延差検出回路の動作を説明するためのタイミング図を示す。
【0058】
図7(a)と上述した
図5(a)(
図6(a))の比較から明らかなように、本変形例では、NANDゲート331の一方の入力に設けたインバータ308を削除し、入力にデータDinをNANDゲート331の一方の入力に直接入力している。
【0059】
すなわち、
図7(b)に示されるように、
図7(a)に示す回路は、データDinの立ち下がり遷移がクロックCLKの立ち上がりタイミングよりも遅いとき、両者のタイミング差に対応して『L』に変化するパルスがノードn1に発生する。
【0060】
しかしながら、
図7(a)に示す遅延差検出回路3においても、上述したノードn1における一瞬『H』から『L』に変化するパルスは、例えば、後段のラッチで検出することがでず、出力Qは、
図7(b)中の破線のように変化せず、実線のように『L』を維持する。すなわち、不感帯が存在することになってしまう。
【0061】
なお、メタステーブル状態および不感帯の問題は、上述した回路だけに限定されるものではなく、様々な回路(遅延差検出回路)においても存在する。
【0062】
以下、本実施例の遅延差検出回路、半導体装置および半導体装置の遅延差検出方法を、添付図面を参照して詳述する。
図8は、第1実施例に係る半導体装置における遅延差検出回路を示す回路図である。
【0063】
なお、半導体装置(チップ)1の全体は、例えば、前述した
図2(a)と同様に、マクロ2および遅延差検出回路3により形成される。なお、チップ1には、複数のマクロが搭載されるのはいうまでもない。
【0064】
図8に示されるように、遅延差検出回路3は、インバータ(反転論理素子)31,32およびNANDゲート33〜38を含む。ここで、遅延差検出回路3は、2つのユニット3aおよび3bを有し、第1ユニット3aは、インバータ31およびNANDゲート33〜35を含み、第2ユニット3bは、インバータ32およびNANDゲート36〜38を含む。
【0065】
チップ1のパッドPclkに入力されたクロック(第1信号)CLKは、NANDゲート33の他方の入力に入力され、チップ1のパッドPdinに入力されたデータ(第2信号)Dinは、インバータ31を介してNANDゲート33の一方の入力に入力される。
【0066】
NANDゲート33の出力(ノードN3)は、NANDゲート34の一方の入力に入力され、NANDゲート34の出力は、遅延差検出回路3の第1出力Q1としてチップ1の外部に取り出されると共に、NANDゲート35の一方の入力に入力される。なお、第1出力Q1は、チップ1のパッドPq1から外部に取り出される。
【0067】
NANDゲート35の出力は、NANDゲート34の他方の入力に入力され、これらNANDゲート34および35はラッチとして機能する。なお、NANDゲート35の他方の入力には、リセット信号RSTXが入力され、ラッチ(34,35)により保持された第1出力Q1のリセットを行う。すなわち、リセット信号RSTXは、例えば、データDinの立ち上がりタイミングを時間的に変化(スイープ)させるごとに、ラッチに保持されたデータをリセットする。
【0068】
また、パッドPdinに入力されたデータDinは、直接NANDゲート36の一方の入力に入力され、パッドPclkに入力されたクロックCLKは、インバータ32を介してNANDゲート36の他方の入力に入力される。
【0069】
NANDゲート36の出力(ノードN4)は、NANDゲート37の一方の入力に入力され、NANDゲート37の出力は、遅延差検出回路3の第2出力Q2としてチップ1の外部に取り出されると共に、NANDゲート38の一方の入力に入力される。なお、第2出力Q2は、チップ1のパッドPq2から外部に取り出される。
【0070】
NANDゲート38の出力は、NANDゲート37の他方の入力に入力され、これらNANDゲート37および38はラッチとして機能する。なお、NANDゲート38の他方の入力には、リセット信号RSTXが入力され、ラッチ(37,38)により保持された第2出力Q2のリセットを行う。すなわち、リセット信号RSTXは、例えば、データDinの立ち上がりタイミングをスイープさせるごとに、ラッチに保持されたデータをリセットする。
【0071】
上述した
図8に示す遅延差検出回路3を適用することにより、例えば、
図5および
図6を参照して説明した不感帯の影響を相殺し、データDinとクロックCLK間の遅延差をより正確に測定することが可能になる。
【0072】
例えば、第1出力Q1がパス(pass)からフェイル(fail)に変化するポイントと、第2出力Q2がパスからフェイルに変化するポイントを読み取り、両者の中間値を測定値として規定する。
【0073】
ここで、パスとは、チップ1のパッドPq1およびPq2に出力される第1および第2出力Q1およびQ2が高レベル『H』(期待値)になった場合であり、逆に、フェイルとは、第1および第2出力Q1およびQ2が低レベル『L』の場合である。
【0074】
なお、
図8では、NANDゲート33〜38を適用した例を示したが、例えば、NANDゲートをNORゲートに置き換えることができるのはいうまでもない。さらに、第1ユニット3aおよび第2ユニット3bを同様の回路構成とすれば、様々に変形することが可能である。
【0075】
図9〜
図11は、
図8に示す半導体装置における動作を説明するための図である。まず、
図8および
図9において、外部からチップ1のパッドPclkに入力するクロックCLKが遷移する時刻と、外部からチップ1のパッドPdinに入力するデータDinが遷移する時刻との差をt0とする。
【0076】
インバータ31による信号反転の遅延時間をt1とし、NANDゲート33による信号反転の遅延時間が、クロックCLKの立ち上がりに対するノードN3の立ち下がりと、ノードN1の立ち下がりに対するノードN3の立ち上がりとで等しいとする。
【0077】
なお、NANDゲード33の一方の入力には、データDinをインバータ31で反転した信号(ノードN1の信号:遅延時間t1)が入力され、他方の入力には、クロックCLKが入力される。
【0078】
このとき、ノードN3に現れるパルス幅は、t0+t1となる。このt0+t1の幅を有するパルス信号が、第1出力Q1を低レベル『L』から高レベル『H』に反転させるのに十分なパルス幅ti以上であれば、Q1は『H』に遷移して、Q1はパスとなる。
【0079】
従って、Q1がフェイルからパスに変化する地点(変化点、タイミング)において、t0+t1=tiが成立する。ゆえに、その時のt0=ti−t1、すなわち、Q1にストローブを立ててスイープしたとき、フェイルからパスに変化する地点は、データDinの立ち上がりとクロックCLKの立ち上がりが同時となる地点よりも、ti−t1だけずれる。
【0080】
次に、
図8および
図10において、外部からチップ1のパッドPclkに入力するクロックCLKが遷移する時刻と、外部からチップ1のパッドPdinに入力するデータDinが遷移する時刻との差をt0'とする。
【0081】
インバータ32による信号反転の遅延時間をt1'とし、NANDゲート33による信号反転の遅延時間が、データDinの立ち上がりに対するノードN4の立ち下がりと、ノードN2の立ち下がりに対するノードN4の立ち上がりとで等しいとする。
【0082】
なお、NANDゲード36の一方の入力には、データDinが入力され、他方の入力には、クロックCLKをインバータ32で反転した信号(ノードN2の信号:遅延時間t1')が入力される。
【0083】
このとき、ノードN4に現れるパルス幅は、t0'+t1'となる。このt0'+t1'の幅を有するパルス信号が、第2出力Q2を『L』から『H』に反転させるのに十分なパルス幅ti'以上であれば、Q2は『H』に遷移して、Q2はパスとなる。
【0084】
従って、Q2がフェイルからパスに変化する地点において、−t0'+t1'=ti'が成立する。ゆえに、その時のt0'=−(ti'−t1')、すなわち、Q2にストローブを立ててスイープしたとき、フェイルからパスに変化する地点は、データDinの立ち上がりとクロックCLKの立ち上がりが同時となる地点よりも、−(ti'−t1')だけずれる。
【0085】
そして、
図11に示されるように、Q1およびQ2の両方に対する期待値を『H』とし、それぞれストローブを立ててパッドPclkに入力するクロックCLK対して、パッドPdinに入力するデータDinをスイープしながら試験を行う。
【0086】
このとき、第1出力Q1がフェイルからパスに変化する地点P1、すなわち、Din − CLK(t0) は、次の[式3]により表すことができる。
Din − CLK(t0) = t1 − ti …… [式3]
【0087】
さらに、第2出力Q2がフェイルからパスに変化する地点P2、すなわち、Din − CLK(t0') は、次の[式4]により表すことができる。
Din − CLK(t0')= −(ti' − t1') …… [式4]
【0088】
ここで、インバータ31および32、並びに、NANDゲート33および36を、それぞれ同一ジメンション(dimension)で同一負荷となるようレイアウトすることによって、t1=t1'、ti=ti'とすることができる。
【0089】
従って、
図11に示されるように、上記2つの地点P1およびP2の中間点(中間値)は、丁度データDinとクロックCLKが同時に遷移する地点(タイミング)であると言える。すなわち、不感帯(ti,ti')の影響、および、インバータ31,32による遅延(t1,t1')の影響は、2つの変化点(地点)P1およびP2の中間値を得ることにより相殺される。
【0090】
図12は、第1実施例に係る半導体装置の遅延差検出方法を説明するための図である。ここで、
図12(a)に示されるように、データDinに関して、チップ1のパッドPdin(Cdin)からマクロ2のデータ入力(Mdin)までの信号伝搬遅延時間をTDdinとする。さらに、クロックCLKに関して、チップ1のパッドPclk(Cdin)からマクロ2のクロック入力(Mdin)までの信号伝搬遅延時間をTDclkとする。
【0091】
図12(b)のタイミング図に示されるように、Tr + TDdin = TDclk となり、従って、Tr = TDclk − TDdin が得られる。
【0092】
すなわち、Q1の変化点と、Q2の変化点の中間地点において、Pclkの信号遷移時刻に対するPdinの信号遷移時刻読み取り値(Tr)が、データDinおよびクロックCLKのパッドから遅延測定対象地点までの信号伝搬遅延時間の差と一致することが分かる。
【0093】
ここで、前述した
図1との比較から明らかなように、パッドのデータDinは、チップ1の入力データCdinに対応し、パッドのクロックCLKは、チップ1の入力クロックCclkに対応する。また、遅延測定対象地点のデータDinは、マクロ2の入力データMdinに対応し、遅延測定対象地点のクロックCLKは、マクロ2の入力クロックに対応する。
【0094】
従って、例えば、マクロ2のセットアップ時間Tsumは、前述した[式2]のように、チップ1のセットアップ時間Tsucと、遅延差 Dclk − Dd (Tr = TDclk − TDdin)から求めることができる。
【0095】
これにより、半導体装置に設けられたマクロのセットアップ時間やホールド時間などのタイミング制約を正しく定義することができ、半導体装置の性能を十分に発揮させることが可能になる。
【0096】
図13は、第2実施例に係る半導体装置における遅延差検出回路を示す回路図である。なお、半導体装置(チップ)1の全体は、例えば、前述した
図2(a)および第1実施例と同様に、マクロ2および遅延差検出回路3により形成される。なお、チップ1には、複数のマクロが搭載されるのはいうまでもない。
【0097】
図13および前述した
図8の比較から明らかなように、第2実施例の遅延差検出回路3は、第1実施例において、NANDゲート31の一方の入力に設けたインバータ31を削除し、NANDゲート36の一方の入力にインバータ30を追加したものに相当する。
【0098】
図13に示されるように、遅延差検出回路3は、2つのユニット3aおよび3bを有し、第1ユニット3aは、NANDゲート33〜35を含み、第2ユニット3bは、インバータ30,32およびNANDゲート36〜38を含む。
【0099】
チップ1のパッドPdinに入力されたデータ(第1信号)Dinは、NANDゲート33の一方の入力、および、インバータ30を介してNANDゲート36の一方の入力に入力される。
【0100】
また、チップ1のパッドPclkに入力されたクロック(第2信号)CLKは、NANDゲート33の他方の入力、および、インバータ32を介してNANDゲート36の他方の入力に入力される。
【0101】
NANDゲート33の出力(ノードN13)は、NANDゲート34の一方の入力に入力され、NANDゲート34の出力は、遅延差検出回路3の第1出力Q11としてチップ1の外部に取り出されると共に、NANDゲート35の一方の入力に入力される。なお、第1出力Q11は、チップ1のパッドPq1から外部に取り出される。
【0102】
NANDゲート35の出力は、NANDゲート34の他方の入力に入力され、これらNANDゲート34および35はラッチとして機能する。なお、NANDゲート35の他方の入力には、リセット信号RSTXが入力され、ラッチ(34,35)により保持された第1出力Q11のリセットを行う。すなわち、リセット信号RSTXは、例えば、データDinの立ち上がりタイミングを時間的に変化(スイープ)させるごとに、ラッチに保持されたデータをリセットする。
【0103】
また、NANDゲート36の出力(ノードN14)は、NANDゲート37の一方の入力に入力され、NANDゲート37の出力は、遅延差検出回路3の第2出力Q12としてチップ1の外部に取り出されると共に、NANDゲート38の一方の入力に入力される。なお、第2出力Q12は、チップ1のパッドPq2から外部に取り出される。
【0104】
NANDゲート38の出力は、NANDゲート37の他方の入力に入力され、これらNANDゲート37および38はラッチとして機能する。なお、NANDゲート38の他方の入力には、リセット信号RSTXが入力され、ラッチ(37,38)により保持された第2出力Q12のリセットを行う。すなわち、リセット信号RSTXは、例えば、データDinの立ち上がりタイミングをスイープさせるごとに、ラッチに保持されたデータをリセットする。
【0105】
図13に示す第2実施例の遅延差検出回路では、NANDゲート33は、データDinおよびクロックCLKを直接受け取り、NANDゲート36は、インバータ30および32を介して反転されたデータDinおよびクロックCLKを受け取る。
【0106】
ここで、インバータ30および32による遅延を等しいものとする。このとき、インバータ30によるデータDinの遅延とインバータ32によるクロックCLKの遅延は等しくなるため、NANDゲート36は、インバータ30および32が設けられていない場合と同様のパルスを出力することになる。
【0107】
上述した
図13に示す遅延差検出回路3を適用することにより、例えば、
図5および
図6を参照して説明した不感帯の影響を相殺し、データDinとクロックCLK間の遅延差をより正確に測定することが可能になる。
【0108】
例えば、第1出力Q11がパスからフェイルに変化するポイントと、第2出力Q12がパスからフェイルに変化するポイントを読み取り、両者の中間値を測定値として規定する。なお、
図13では、NANDゲート33〜38を適用した例を示したが、例えば、NANDゲートをNORゲートに置き換えることができるのは、前述した通りである。
【0109】
さらに、第1ユニット3aが第2ユニット3bの一部の共通回路構成部(例えば、インバータ30および32を除いた部分)と同様の回路構成を有していれば、様々に変形することが可能である。
【0110】
図14〜
図16は、
図13に示す半導体装置における動作を説明するための図である。まず、
図13および
図14において、外部からチップ1のパッドPclkに入力するクロックCLKが遷移する時刻と、外部からチップ1のパッドPdinに入力するデータDinが遷移する時刻との差をt10とする。
【0111】
NANDゲート33による信号反転の遅延時間が、クロックCLKの立ち上がりに対するノードN13の立ち下がりと、データDinの立ち下がりに対するノードN13の立ち上がりとで等しいとする。
【0112】
このとき、ノードN13に現れるパルス幅は、t10となる。このt10の幅を有するパルス信号が、第1出力Q1を『L』から『H』に反転させるのに十分なパルス幅ti以上であれば、Q11は『H』に遷移して、Q11はパスとなる。
【0113】
従って、Q11がフェイルからパスに変化する地点において、t10=tiが成立する。ゆえに、その時のt10=ti、すなわち、Q1にストローブを立ててスイープしたとき、フェイルからパスに変化する地点は、データDinの立ち上がりとクロックCLKの立ち上がりが同時となる地点よりも、tiだけずれる。
【0114】
次に、
図13および
図15において、外部からチップ1のパッドPclkに入力するクロックCLKが遷移する時刻と、外部からチップ1のパッドPdinに入力するデータDinが遷移する時刻との差をt10'とする。
【0115】
また、インバータ30および32による信号反転の遅延時間を、それぞれt11およびt12とする。NANDゲート33による信号反転の遅延時間が、データDinの立ち上がりに対するノードN14の立ち下がりと、ノードN12の立ち下がりに対するノードN14の立ち上がりとで等しいとする。
【0116】
なお、NANDゲード36の一方の入力には、データDinをインバータ30で反転した信号(ノードN11の信号:遅延時間t11)が入力される。また、NANDゲード36の他方の入力には、クロックCLKをインバータ32で反転した信号(ノードN12の信号:遅延時間t12)が入力される。
【0117】
このとき、ノードN14に現れるパルス幅は、−t10'−t11+t12となる。この−t10'−t11+t12の幅を有するパルス信号が、第2出力Q12を『L』から『H』に反転させるのに十分なパルス幅ti'以上であれば、Q12は『H』に遷移して、Q12はパスとなる。
【0118】
従って、Q12がフェイルからパスに変化する地点において、−t10−t11+t12=ti'が成立する。ゆえに、その時のt10'=−(ti'+t11−t12)、すなわち、Q12にストローブを立ててスイープしたとき、フェイルからパスに変化する地点は、Dinの立ち上がりとCLKの立ち上がりが同時となる地点よりも、−(ti'+t11−t12)だけずれる。
【0119】
そして、
図16に示されるように、Q11およびQ12の両方に対する期待値を『H』とし、それぞれストローブを立ててパッドPclkに入力するクロックCLK対して、パッドPdinに入力するデータDinをスイープしながら試験を行う。
【0120】
このとき、第1出力Q11がフェイルからパスに変化する地点P11、すなわち、Din − CLK(t10) は、次の[式5]により表すことができる。
Din − CLK(t10) = ti …… [式5]
【0121】
さらに、第2出力Q12がフェイルからパスに変化する地点P12、すなわち、Din − CLK(t10') は、次の[式6]により表すことができる。
Din − CLK(t10')= −(ti' + t11 − t12) …… [式6]
【0122】
ここで、インバータ30および32、並びに、NANDゲート33および36を、それぞれ同一ジメンションで同一負荷となるようレイアウトすることによって、t11=t12、ti=ti'とすることができる。
【0123】
従って、
図16に示されるように、上記2つの地点P1およびP2の中間点(中間値)は、丁度データDinとクロックCLKが同時に遷移する地点(タイミング)であると言える。すなわち、インバータ30,32による遅延(t11,t12)の影響は、NANDゲート36〜38により変化点P2を発生するときに相殺され、また、不感帯(ti,ti')の影響は、2つの変化点P1およびP2の中間値を得ることにより相殺される。
【0124】
図17は、第2実施例に係る半導体装置の遅延差検出方法を説明するための図である。ここで、
図17(a)に示されるように、データDinに関して、チップ1のパッドPdin(Cdin)からマクロ2のデータ入力(Mdin)までの信号伝搬遅延時間をTDdinとする。さらに、クロックCLKに関して、チップ1のパッドPclk(Cdin)からマクロ2のクロック入力(Mdin)までの信号伝搬遅延時間をTDclkとする。
【0125】
図17(b)のタイミング図に示されるように、Tr + TDdin = TDclk となり、従って、Tr = TDclk − TDdin が得られる。
【0126】
すなわち、Q1の変化点と、Q2の変化点の中間地点において、Pclkの信号遷移時刻に対するPdinの信号遷移時刻読み取り値(Tr)が、データDinおよびクロックCLKのパッドから遅延測定対象地点までの信号伝搬遅延時間の差と一致することが分かる。
【0127】
これにより、
図12を参照して説明したように、半導体装置に設けられたマクロのセットアップ時間やホールド時間などのタイミング制約を正しく定義することができ、半導体装置の性能を十分に発揮させることが可能になる。
【0128】
以上において、遅延差検出回路の実施例は、NANDゲートを適用したものを説明したが、例えば、NORゲート等の様々な回路構成とすることが可能であり、また、クロックおよびデータを始めとする信号の論理も適宜変更することができるのはいうまでもない。
【0129】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【0130】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
第1信号および第2信号の遅延差を測定する遅延差検出回路であって、
前記第1信号における正または負のいずれか一方の論理の第1論理信号、および、前記第2信号における正または負のいずれか一方の第2論理信号に従って変化する第1出力を出力する第1ユニットと、
前記第1論理信号と反対論理の第3論理信号、および、前記第2論理信号と反対論理の第4論理信号に従って変化する第2出力を出力する第2ユニットと、を有し、
前記第2信号をスイープさせながら、前記第1ユニットの出力が変化する第1変化点および前記第2ユニットの出力が変化する第2変化点を測定し、測定された前記第1変化点および前記第2変化点の中間値を得ることで前記第1信号および前記第2信号の遅延差を求める、
ことを特徴とする遅延差検出回路。
【0131】
(付記2)
前記第1ユニットは、
前記第1論理信号および前記第2論理信号の変化タイミングを検知する第1論理ゲートと、
前記第1論理ゲートの出力におけるパルスを検出して保持する第1ラッチ回路と、を有し、
前記第2ユニットは、
前記第3論理信号および前記第4論理信号の変化タイミングを検知する第2論理ゲートと、
前記第2論理ゲートの出力におけるパルスを検出して保持する第2ラッチ回路と、を有する、
ことを特徴とする付記1に記載の遅延差検出回路。
【0132】
(付記3)
前記第1ラッチ回路および前記第2ラッチ回路は、リセット信号により保持しているデータをリセットする、
ことを特徴とする付記2に記載の遅延差検出回路。
【0133】
(付記4)
前記第1ユニットに設けられた第1論理反転素子は、前記第2信号を受け取って論理反転して前記第2論理信号を出力し、
前記第2ユニットに設けられた第2論理反転素子は、前記第1信号を受け取って論理反転して前記第3論理信号を出力する、
ことを特徴とする付記1乃至付記3のいずれか1項に記載の遅延差検出回路。
【0134】
(付記5)
前記第1論理反転素子による遅延および前記第2論理反転素子による遅延は、測定された前記第1変化点および前記第2変化点の中間値を得るときに相殺される、
ことを特徴とする付記4に記載の遅延差検出回路。
【0135】
(付記6)
前記第2ユニットは、
前記共通回路構成部と、
前記第2信号を受け取って論理反転して前記第4論理信号を出力する第1論理反転素子と、
前記第1信号を受け取って論理反転して前記第3論理信号を出力する第2論理反転素子と、を含む、
ことを特徴とする付記1乃至付記3のいずれか1項に記載の遅延差検出回路。
【0136】
(付記7)
前記第1論理反転素子による遅延および前記第2論理反転素子による遅延は、前記第2ユニットが前記第2変化点を発生するときに相殺される、
ことを特徴とする付記6に記載の遅延差検出回路。
【0137】
(付記8)
マクロが設けられた半導体装置であって、
第1信号が入力される第1入力パッドと、
第2信号が入力される第2入力パッドと、
前記第1入力パッドから前記マクロに対して前記第1信号を入力するときに生じる第1遅延、および、前記第2入力パッドから前記マクロに対して前記第2信号を入力するときに生じる第2遅延の遅延差を測定可能とする遅延差検出回路と、
前記遅延差検出回路からの第1出力を出力する第1出力パッドと、
前記遅延差検出回路からの第2出力を出力する第2出力パッドと、を有し、
前記遅延差検出回路は、付記1乃至付記7のいずれか1項に記載の遅延差検出回路であり、
前記第1出力は、前記遅延差検出回路における前記第1ユニットの出力であり、
前記第2出力は、前記遅延差検出回路における前記第2ユニットの出力である、
ことを特徴とする半導体装置。
【0138】
(付記9)
マクロが設けられた半導体装置において、第1入力パッドからの第1信号が前記マクロに入力されるまでの第1遅延と、第2入力パッドからの第2信号が前記マクロに入力されるまでの第2遅延の遅延差を測定する半導体装置の遅延差検出方法であって、
前記第1信号における正または負のいずれか一方の論理の第1論理信号、および、前記第2信号における正または負のいずれか一方の第2論理信号に従って変化する第1出力を出力し、
前記第1論理信号と反対論理の第3論理信号、および、前記第2論理信号と反対論理の第4論理信号に従って変化する第2出力を出力し、
前記第2信号をスイープさせながら、前記第1ユニットの出力が変化する第1変化点および前記第2ユニットの出力が変化する第2変化点を測定し、
測定された前記第1変化点および前記第2変化点の中間値を得ることで前記第1信号および前記第2信号の遅延差を求める、
ことを特徴とする半導体装置の遅延差検出方法。