【解決手段】半導体装置は、クロック入力端子に入力されるクロック信号に同期して記憶データを更新し、記憶データをデータ出力端子から出力する記憶回路と、データ出力端子に接続された複数のデータ出力用外部端子と、クロック入力端子に接続され、複数のデータ出力用外部端子の各々に対応する、複数のクロック出力用外部端子と、を含む。半導体装置は、複数のデータ出力用外部端子のうちの所定のデータ出力用外部端子の各々から出力されるデータの各々を遅延させる第1の遅延手段と、複数のクロック出力用外部端子のうちの第1の遅延手段によって遅延されない特定のデータ出力用外部端子に対応する特定のクロック出力用外部端子から出力されるクロック信号を遅延させる第2の遅延手段と、を含む。
前記第1の遅延手段は、前記複数のデータ出力用外部端子のうちの前記特定のデータ出力用外部端子以外の他の複数のデータ出力用外部端子の各々から出力されるデータの各々を、前記特定のデータ出力用外部端子から出力されるデータに対して遅延させ、
前記第2の遅延手段は、前記特定のクロック出力用外部端子から出力されるクロック信号を、前記複数のクロック出力用外部端子のうちの前記特定のクロック出力用外部端子以外の他の複数のクロック出力用外部端子の各々から出力されるクロック信号の各々に対して遅延させる
請求項1に記載の半導体装置。
前記第1の遅延手段は、前記複数のデータ出力用外部端子のうちの前記特定のデータ出力用外部端子以外の他の複数のデータ出力用外部端子の各々と前記データ出力端子との間にそれぞれ設けられた第1の遅延素子を含み、
前記第2の遅延手段は、前記特定のクロック出力用外部端子と前記クロック入力端子との間に設けられた第2の遅延素子を含む
請求項2に記載の半導体装置。
前記第1の遅延手段は、前記特定のデータ出力用外部端子から出力されるデータを、前記複数のデータ出力用外部端子のうちの前記特定のデータ出力用外部端子以外の他の複数のデータ出力用外部端子の各々から出力されるデータの各々に対して遅延させ、
前記第2の遅延手段は、前記複数のクロック出力用外部端子のうちの前記特定のデータ出力用外部端子に対応する特定のクロック出力用外部端子以外の他の複数のクロック出力用外部端子の各々から出力されるクロック信号の各々を、前記特定のクロック出力用外部端子から出力されるクロック信号に対して遅延させる
請求項5に記載の半導体装置。
クロック入力端子に入力されるクロック信号に同期して記憶データを更新し、前記記憶データをデータ出力端子から出力する記憶回路と、前記データ出力端子に接続された複数のデータ出力用外部端子と、前記クロック入力端子に接続され、前記複数のデータ出力用外部端子の各々に対応する複数のクロック出力用外部端子と、を含む半導体装置のテスト方法であって、
前記複数のデータ出力用外部端子のうちの特定のデータ出力用外部端子から出力されるデータの更新タイミング、および前記複数のクロック出力用外部端子のうちの前記特定のデータ出力用外部端子に対応する特定のクロック出力用外部端子から出力されるクロック信号の遷移タイミングが、それぞれワーストケースとなるように前記半導体装置を構成し、
前記特定のクロック出力用外部端子から出力されるクロック信号の遷移タイミングを第1の測定値として取得し、
前記特定のデータ出力用外部端子から出力されるデータの更新タイミングを第2の測定値として取得し、
前記複数のクロック出力用外部端子のうちの前記特定のクロック出力用外部端子以外の他の複数のクロック出力用端子の各々から出力されるクロック信号のレベルが、前記第1の測定値に対応するタイミングにおいて所定のレベルであるか否かを判定し、
前記複数のデータ出力用外部端子のうちの前記特定のデータ出力用外部端子以外の他の複数のデータ出力用外部端子の各々から出力されるデータの値が、前記第2の測定値に対応するタイミングにおいて所定値であるか否かを判定する
テスト方法。
【発明を実施するための形態】
【0014】
[比較例]
図1は、比較例に係る半導体装置100Xの構成を示す図である。比較例に係る半導体装置100Xは、インターフェース装置を構成するフリップフロップ10を含んで構成されている。フリップフロップ10のデータ入力端子Dには、半導体装置100X内に設けられたCPU(Central Processing Unit)等の他の回路(図示せず)からのデータ信号が任意のロジック回路21を介して入力される。フリップフロップ10のクロック入力端子Cには、半導体装置100X内に設けられたクロック生成回路(図示せず)からのクロック信号が任意のロジック回路22を介して入力される。フリップフロップ10は、データ入力端子Dに入力されるデータ信号に含まれるデータを、クロック入力端子Cに入力されるクロック信号に同期して保持し、保持しているデータをデータ出力端子Qから出力する。すなわち、フリップフロップ10は、クロック入力端子Cに入力されるクロック信号に同期してデータ出力端子から出力されるデータを更新する。
【0015】
フリップフロップ10のデータ出力端子Qには、データ出力用外部端子30A、30B、30C、30Dおよび30Eが接続されている。フリップフロップ10のデータ出力端子Qから出力されるデータは、データ出力用外部端子30A、30B、30C、30Dおよび30Eから半導体装置100Xの外部に取り出すことが可能である。データ出力用外部端子30A、30B、30C、30Dおよび30Eとフリップフロップ10のデータ出力端子Qとの間には、それぞれ、任意のロジック回路23が設けられていてもよい。
【0016】
フリップフロップ10のクロック入力端子Cには、クロック出力用外部端子31A、31B、31C、31Dおよび31Eが接続されている。フリップフロップ10のクロック入力端子Cに入力されるクロック信号は、クロック出力用外部端子31A、31B、31C、31Dおよび31Eから半導体装置100Xの外部に取り出すことが可能である。クロック出力用外部端子31A、31B、31C、31Dおよび31Eとフリップフロップ10のクロック入力端子Cとの間には、それぞれ、任意のロジック回路24が設けられていてもよい。
【0017】
図2は、データ出力用外部端子30A〜30Eおよびクロック出力用外部端子31A〜31Eからそれぞれ出力されるデータおよびクロック信号のタイミングチャートである。ここで、データ出力用外部端子30Aとクロック出力用外部端子31Aとが対をなし、データ出力用外部端子30Bとクロック出力用外部端子31Bとが対をなし、データ出力用外部端子30Cとクロック出力用外部端子31Cとが対をなし、データ出力用外部端子30Dとクロック出力用外部端子31Dとが対をなし、データ出力用外部端子30Eとクロック出力用外部端子31Eとが対をなしているものとする。また、クロック出力用外部端子31A、31B、31C、31Dおよび31Eからそれぞれ出力されるクロック信号を、それぞれ、clk_A、clk_B、clk_C、clk_Dおよびclk_Eと表記し、データ出力用外部端子30A、30B、30C、30Dおよび30Eからそれぞれ出力されるデータを、それぞれ、data_A、data_B、data_C、data_Dおよびdata_Eと表記する。
【0018】
半導体装置100Xのテストにおいては、クロック信号clk_A、clk_B、clk_C、clk_Dおよびclk_Eの遷移タイミング(例えば、立ち上がりエッジが生じるタイミング)に対する、データdata_A、data_B、data_C、data_Dおよびdata_Eの更新タイミングの遅延(以下出力遅延時間Tdと称する)が測定され、測定された出力遅延時間Tdが規格内であるか否かが判定される。出力遅延時間Tdは、対をなすデータ出力用外部端子およびクロック出力用外部端子からそれぞれ出力されるデータとクロック信号との間で測定される。
図2に示すように、クロック信号clk_A〜clk_E間でクロック信号の遷移タイミングは互いに異なる。同様に、データdata_A〜data_E間でデータの更新タイミングは互いに異なる。
【0019】
上記の出力遅延時間Tdのテストは、例えば、以下のようにして行われる。はじめに、クロック出力用外部端子31A、31B、31C、31Dおよび31Eからそれぞれ出力されるクロック信号clk_A、clk_B、clk_C、clk_Dおよびclk_Eを、バイナリーサーチやシュムーなどのサーチ測定手法により測定する(第1のステップ)。次に、データ出力用外部端子30A、30B、30C、30Dおよび30Eからそれぞれ出力されるデータdata_A、data_B、data_C、data_Dおよびdata_Eをバイナリーサーチやシュムーなどのサーチ測定手法により測定する(第2のステップ)。次に、第1のステップおよび第2のステップにおいて測定された値に基づいて、クロック出力用外部端子およびデータ出力用外部端子のペア毎に、出力遅延時間Tdを算出し、出力遅延時間Tdが規格を満たすか否かを判定する(第3のステップ)。
【0020】
サーチ測定手法によるクロック信号の遷移タイミングの測定では、時間軸上のサーチポイントを順次移動させながらクロック信号の遷移タイミングを探索する。同様に、サーチ測定手法によるデータの更新タイミングの測定では、時間軸上のサーチポイントを順次移動させながらデータの更新タイミングを探索する。従って、サーチ測定手法によるクロック信号の遷移タイミングの測定およびデータの更新タイミングの測定は、比較的長い時間を要する。また、データ出力用外部端子30A〜30Eの各々およびクロック出力用外部端子31A〜31Eの各々について測定を行うと、テスト時間が膨大となる。
【0021】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または対応する構成要素および部分には同一の参照符号を付与している。また、上記した比較例に係る半導体装置100Xの各構成要素と同一または対応する構成要素については、半導体装置100Xの各構成要素に付された参照符号と同一の参照を付与する。
【0022】
[第1の実施形態]
図3は、本発明の実施形態に係る半導体装置100の構成を示す図である。半導体装置100は、出力遅延時間Tdについて下限規格が定められている場合の構成を有する。すなわち、出力遅延時間Tdは、下限規格よりも大きいことが要求される。
【0023】
半導体装置100は、インターフェース装置を構成するフリップフロップ10を含んで構成されている。フリップフロップ10のデータ入力端子Dには、半導体装置100内に設けられたCPU(Central Processing Unit)等の他の回路(図示せず)からのデータ信号が任意のロジック回路21を介して入力される。フリップフロップ10のクロック入力端子Cには、クロック生成回路(図示せず)からのクロック信号が任意のロジック回路22を介して入力される。フリップフロップ10は、データ入力端子Dに入力されるデータ信号に含まれるデータを、クロック入力端子Cに入力されるクロック信号に同期して保持し、保持しているデータをデータ出力端子Qから出力する。すなわち、フリップフロップ10は、クロック入力端子Cに入力されるクロック信号に同期してデータ出力端子から出力されるデータを更新する。
【0024】
フリップフロップ10のデータ出力端子Qには、データ出力用外部端子30A、30B、30C、30Dおよび30Eが接続されている。フリップフロップ10のデータ出力端子Qから出力されるデータは、データ出力用外部端子30A、30B、30C、30Dおよび30Eから半導体装置100の外部に取り出すことが可能である。データ出力用外部端子30A、30B、30C、30Dおよび30Eとフリップフロップ10のデータ出力端子Qとの間には、それぞれ、任意のロジック回路23が設けられていてもよい。
【0025】
フリップフロップ10のクロック入力端子Cには、クロック出力用外部端子31A、31B、31C、31Dおよび31Eが接続されている。フリップフロップ10のクロック入力端子Cに入力されるクロック信号は、クロック出力用外部端子31A、31B、31C、31Dおよび31Eから半導体装置100の外部に取り出すことが可能である。クロック出力用外部端子31A、31B、31C、31Dおよび31Eとフリップフロップ10のクロック入力端子Cとの間には、それぞれ、任意のロジック回路24が設けられていてもよい。
【0026】
半導体装置100において、データ出力用外部端子30B、30C、30Dおよび30Eと、フリップフロップ10のデータ出力端子Qとの間には、それぞれ遅延素子40が設けられている。一方、データ出力用外部端子30Aと、フリップフロップ10のデータ出力端子Qとの間には遅延素子は設けられていない。すなわち、フリップフロップ10のデータ出力端子Qから出力されたデータは、遅延素子40によって遅延時間が付与されてデータ出力用外部端子30B〜30Eからそれぞれデータdata_B〜data_Eとして出力される。一方、フリップフロップ10のデータ出力端子Qから出力されたデータは、遅延時間が付与されることなくデータ出力用外部端子30Aからデータdata_Aとして出力される。
【0027】
半導体装置100において、クロック出力用外部端子31Aと、フリップフロップ10のクロック入力端子Cとの間には、遅延素子41が設けられている。一方、クロック出力用外部端子31B〜31Eと、フリップフロップ10のクロック入力端子Cとの間には遅延素子は設けられていない。すなわち、フリップフロップ10のクロック入力端子Cに入力されるクロック信号は、遅延素子41によって遅延時間が付与されてクロック出力用外部端子31Aからクロック信号clk_Aとして出力される。一方、フリップフロップ10のクロック入力端子Cに入力されるクロック信号は、遅延時間が付与されることなくクロック出力用外部端子31B〜31Eからそれぞれクロック信号clk_B〜clk_Eとして出力される。
【0028】
図4は、データ出力用外部端子30A〜30Eからそれぞれ出力されるデータdata_A〜data_Eおよびクロック出力用外部端子31A〜31Eからそれぞれ出力されるクロック信号clk_A〜clk_Eのタイミングチャートである。ここで、データ出力用外部端子30Aとクロック出力用外部端子31Aとが対をなし、データ出力用外部端子30Bとクロック出力用外部端子31Bとが対をなし、データ出力用外部端子30Cとクロック出力用外部端子31Cとが対をなし、データ出力用外部端子30Dとクロック出力用外部端子31Dとが対をなし、データ出力用外部端子30Eとクロック出力用外部端子31Eとが対をなしているものとする。
【0029】
本実施形態に係る半導体装置100の構成によれば、データ出力用外部端子30Aから出力されるデータdata_Aの更新タイミングは、他のデータ出力用外部端子30B〜30Eから出力されるデータdata_B〜data_Eの更新タイミングに対して先行するため、出力遅延時間Tdにおいて下限規格が規定される状況の下では、ワーストケースとなる。また、クロック出力用外部端子31Aから出力されるクロック信号clk_Aの遷移タイミングは、他のクロック出力用外部端子31B〜31Eから出力されるクロック信号clk_B〜clk_Eの遷移タイミングよりも遅れるため、出力遅延時間Tdにおいて下限規格が規定される状況の下ではワーストケースとなる。すなわち、本実施形態に係る半導体装置100においては、遅延素子40および41を設けることにより、データ出力用外部端子30Aから出力されるデータdata_Aとクロック出力用外部端子31Aから出力されるクロック信号clk_Aとのペアを、下限規格が規定される出力遅延時間Tdに関しワーストケースとしている。
【0030】
図5は、半導体装置100の出力遅延時間Tdのテスト方法の一例を示すフローチャートである。
【0031】
ステップS1において、ワーストケースに対応するクロック出力用外部端子31Aから出力されるクロック信号clk_Aの遷移タイミングを、第1の測定値M1として取得する。クロック信号clk_Aの遷移タイミングは、バイナリーサーチやシュムーなどのサーチ測定手法により測定される。第1の測定値M1は、所定の基準時点からクロック信号clk_Aの遷移時点までの時間幅である。
【0032】
ステップS2において、ワーストケースに対応するデータ出力用外部端子30Aから出力されるデータdata_Aの更新タイミングを、第2の測定値M2として取得する。データdata_Aの更新タイミングは、バイナリーサーチやシュムーなどのサーチ測定手法により測定される。第2の測定値M2は、所定の基準時点からデータdata_Aの更新時点までの時間幅である。
【0033】
ステップS3において、第1の測定値M1と第2の測定値M2とに基づいて、ワーストケースに対応するデータdata_Aとクロック信号clk_Aからなるペアについての出力遅延時間Td_worstを算出する。具体的には、第2の測定値M2から第1の測定値M1を減算することで出力遅延時間Td_worstを求めることができる。
【0034】
ステップS4において、算出された出力遅延時間Td_worstが、出力遅延時間についての下限規格Td_lよりも大であるか否かを判定する。出力遅延時間Td_worstが、下限規格Td_lよりも小である場合にはフェイル判定となる。出力遅延時間Td_worstが、出力遅延時間についての下限規格Td_lよりも大である場合には、処理を次のステップS5に移行する。
【0035】
ステップS5において、クロック信号clk_B〜clk_Eが、ワーストケースに対応する第1の測定値M1に対応するタイミングにおいて既にハイレベルに遷移しているか否かを判定する。クロック信号clk_B〜clk_Eのいずれかが、第1の測定値M1に対応するタイミングにおいてハイレベルに遷移していないと判定された場合にはフェイル判定となる。クロック信号clk_B〜clk_Eが、第1の測定値M1に対応するタイミングにおいてハイレベルに遷移している場合には、処理を次のステップS6に移行する。
【0036】
ステップS6において、データdata_B〜data_Eの値が、ワーストケースに対応する第2の測定値M2に対応するタイミングにおいて未だデータ更新前の値であるか否かを判定する。データdata_B〜data_Eの値が、第2の測定値M2に対応するタイミングにおいてデータ更新前の値ではないと判定された場合には、フェイル判定となる。ステップS4〜S6における判定が、全て肯定判定となった場合には、半導体装置100の出力遅延時間Tdについて、パス判定となる。
【0037】
以上のように、本実施形態に係る半導体装置100によれば、ワーストケースに対応するクロック信号clk_Aの遷移タイミングおよびデータdata_Aの更新タイミングのみがサーチ測定手法を用いて測定される。そして、ワーストケース以外のクロック信号clk_B〜clk_Eの遷移タイミングについては、ワーストケースに対応する第1の測定値M1によって示されるタイミングにおいて、クロック信号clk_B〜clk_Eのレベルが、ハイレベルであるか否かを判定する所謂ファンクションテストによって良否判定がなされる。同様に、ワーストケース以外のデータdata_B〜data_Eの更新タイミングについては、ワーストケースに対応する第2の測定値M2によって示されるタイミングにおいて、データdata_B〜data_Eの値が更新前の値であるか否かを判定する所謂ファンクションテストによって良否判定がなされる。
【0038】
このように、出力遅延時間Tdのテストにおいて、サーチ測定手法を用いた測定を、ワーストケースとなる特定のデータおよびクロック信号に限定し、残りのデータおよびクロック信号については、ワーストケースにおける測定値を用いたファンクションテストを実施することで、テスト時間を大幅に短縮することができる。
【0039】
なお、フリップフロップ10は、本発明における記憶回路の一例である。データ出力用外部端子30A〜30Eは、本発明におけるデータ出力用外部端子の一例である。クロック出力用外部端子31A〜31Eは、本発明におけるクロック出力用外部端子の一例である。遅延素子40は、本発明における第1の遅延手段および第1の遅延素子の一例である。遅延素子41は、本発明における第2の遅延手段および第2の遅延素子の一例である。
【0040】
[第2の実施形態]
図6は、本発明の第2の実施形態に係る半導体装置100Aの構成を示す図である。半導体装置100Aは、フリップフロップ10のクロック入力端子Cとクロック出力用外部端子31Aとの間に設けられたバイパス配線42と、遅延素子41の入力端およびバイパス配線42の一端を選択的にフリップフロップ10のクロック入力端子Cに接続するスイッチ43と、遅延素子41の出力端およびバイパス配線42の他端を選択的にクロック出力用外部端子31Aに接続するスイッチ44と、を更に含む点において、上記した第1の実施形態に係る半導体装置100と異なる。
【0041】
スイッチ43および44は、半導体装置100Aの出力遅延時間Tdをテストする際に、遅延素子41側に接続される。すなわち、半導体装置100Aの出力遅延時間Tdのテスト時において、クロック信号は、遅延素子41を経由してクロック出力用外部端子31Aから出力される。一方、スイッチ43および44は、半導体装置100Aの通常動作時においては、バイパス配線42側に接続される。すなわち、半導体装置100Aの通常動作時において、クロック信号は、遅延素子41を迂回するバイパス配線42を経由してクロック出力用外部端子31Aから出力される。
【0042】
遅延素子41は、出力遅延時間Tdのテストにおいて、クロック出力用外部端子31Aから出力されるクロック信号clk_Aの遷移タイミングをワーストケースとするために設けられたものであり、通常動作時においては不要である。本実施形態に係る半導体装置100Aによれば、通常動作時においては、クロック信号を、遅延素子41を迂回するバイパス配線42を経由してクロック出力用外部端子31Aから出力させることが可能となる。
【0043】
なお、バイパス配線42は、本発明におけるバイパス配線の一例である。スイッチ43および44は、本発明におけるスイッチの一例である。
【0044】
[第3の実施形態]
図7は、本発明の第3の実施形態に係る半導体装置100Bの構成を示す図である。半導体装置100Bは、出力遅延時間Tdについて上限規格が定められている場合の構成を有する。すなわち、出力遅延時間Tdは、上限規格よりも小さいことが要求される。
【0045】
半導体装置100Bにおいて、データ出力用外部端子30Aと、フリップフロップ10のデータ出力端子Qとの間には遅延素子40が設けられている。一方、データ出力用外部端子30B〜30Eと、フリップフロップ10のデータ出力端子Qとの間には遅延素子は設けられていない。すなわち、フリップフロップ10のデータ出力端子Qから出力されたデータは、遅延素子40によって遅延時間が付与されてデータ出力用外部端子30Aからデータdata_Aとして出力される。一方、フリップフロップ10のデータ出力端子Qから出力されたデータは、遅延時間が付与されることなくデータ出力用外部端子30B〜30Eからそれぞれデータdata_B〜data_Eとして出力される。
【0046】
半導体装置100Bにおいて、クロック出力用外部端子31B〜31Eと、フリップフロップ10のクロック入力端子Cとの間にはそれぞれ遅延素子41が設けられている。一方、クロック出力用外部端子31Aと、フリップフロップ10のクロック入力端子Cとの間には、遅延素子41が設けられていない。すなわち、クロック信号は、遅延素子41によって遅延時間が付与されてクロック出力用外部端子31B〜31Eからそれぞれクロック信号clk_B〜clk_Eとして出力される。一方、クロック信号は、遅延時間が付与されることなくクロック出力用外部端子31Aからクロック信号clk_Aとして出力される。
【0047】
図8は、データ出力用外部端子30A〜30Eからそれぞれ出力されるデータdata_A〜data_Eおよびクロック出力用外部端子31A〜31Eからそれぞれ出力されるクロック信号clk_A〜clk_Eのタイミングチャートである。
【0048】
本実施形態に係る半導体装置100Bの構成によれば、データ出力用外部端子30Aから出力されるデータdata_Aの更新タイミングは、他のデータ出力用外部端子30B〜30Eから出力されるデータdata_B〜data_Eの更新タイミングよりも遅れるため、出力遅延時間Tdにおいて上限規格が規定される状況の下では、ワーストケースとなる。また、クロック出力用外部端子31Aから出力されるクロック信号clk_Aの遷移タイミングは、他のクロック出力用外部端子31B〜31Eから出力されるクロック信号clk_B〜clk_Eの遷移タイミングに対して先行するため、出力遅延時間Tdにおいて上限規格が規定される状況の下ではワーストケースとなる。つまり、本実施形態に係る半導体装置100Bにおいては、遅延素子40および41を設けることにより、データ出力用外部端子30Aから出力されるデータdata_Aとクロック出力用外部端子31Aから出力されるクロック信号clk_Aとのペアを、上限規格が規定される出力遅延時間Tdに関しワーストケースとしている。
【0049】
図9は、半導体装置100Bの出力遅延時間Tdのテスト方法の一例を示すフローチャートである。
【0050】
ステップS11において、ワーストケースに対応するクロック出力用外部端子31Aから出力されるクロック信号clk_Aの遷移タイミングを、第1の測定値M1として取得する。クロック信号clk_Aの遷移タイミングは、バイナリーサーチやシュムーなどのサーチ測定手法により測定される。第1の測定値M1は、所定の基準時点からクロック信号clk_Aの遷移時点までの時間幅である。
【0051】
ステップS12において、ワーストケースに対応するデータ出力用外部端子30Aから出力されるデータdata_Aの更新タイミングを、第2の測定値M2として取得する。データdata_Aの更新タイミングは、バイナリーサーチやシュムーなどのサーチ測定手法により測定される。第2の測定値M2は、所定の基準時点からデータdata_Aの更新時点までの時間幅である。
【0052】
ステップS13において、第1の測定値M1と第2の測定値M2とに基づいて、ワーストケースに対応するデータdata_Aとクロック信号clk_Aからなるペアについての出力遅延時間Td_worstを算出する。具体的には、第2の測定値M2から第1の測定値M1を減算することで出力遅延時間Td_worstを求めることができる。
【0053】
ステップS14において、算出された出力遅延時間Td_worstが、出力遅延時間についての上限規格Td_uよりも小であるか否かを判定する。出力遅延時間Td_worstが、上限規格Td_uよりも大である場合にはフェイル判定となる。出力遅延時間Td_worstが、出力遅延時間についての上限規格Td_uよりも小である場合には、処理を次のステップS15に移行する。
【0054】
ステップS15において、クロック信号clk_B〜clk_Eが、ワーストケースに対応する第1の測定値M1に対応するタイミングにおいて未だローレベルを維持しているか否かを判定する。クロック信号clk_B〜clk_Eのいずれかが、第1の測定値M1に対応するタイミングにおいてローレベルを維持していないと判定された場合にはフェイル判定となる。クロック信号clk_B〜clk_Eが、第1の測定値M1に対応するタイミングにおいてローレベルを維持している場合には、処理を次のステップS16に移行する。
【0055】
ステップS16において、データdata_B〜data_Eの値が、ワーストケースに対応する第2の測定値M2に対応するタイミングにおいてデータ更新後の値であるか否かを判定する。データdata_B〜data_Eの値が、第2の測定値M2に対応するタイミングにおいてデータ更新後の値ではないと判定された場合には、フェイル判定となる。ステップS14〜S16における判定が、全て肯定判定となった場合には、半導体装置100Bの出力遅延時間Tdについて、パス判定となる。
【0056】
以上のように、本実施形態に係る半導体装置100Bによれば、ワーストケースに対応するクロック信号clk_Aの遷移タイミングおよびデータdata_Aの更新タイミングのみがサーチ測定手法を用いて測定される。そして、ワーストケース以外のクロック信号clk_B〜clk_Eの遷移タイミングについては、ワーストケースに対応する第1の測定値M1によって示されるタイミングにおいて、クロック信号clk_B〜clk_Eが未だローレベルを維持しているか否かを判定する所謂ファンクションテストによって良否判定がなされる。同様に、ワーストケース以外のデータdata_B〜data_Eの更新タイミングについては、ワーストケースに対応する第2の測定値M2によって示されるタイミングにおいて、データdata_B〜data_Eの値が更新後の値であるか否かを判定する所謂ファンクションテストによって良否判定がなされる。
【0057】
このように、出力遅延時間Tdのテストにおいて、サーチ測定手法を用いた測定を、ワーストケースとなる特定のデータおよびクロック信号に限定し、残りのデータおよびクロック信号については、ワーストケースにおける測定値を用いたファンクションテストを実施することで、テスト時間を大幅に短縮することができる。
【0058】
なお、フリップフロップ10は、本発明における記憶回路の一例である。データ出力用外部端子30A〜30Eは、本発明におけるデータ出力用外部端子の一例である。クロック出力用外部端子31A〜31Eは、本発明におけるクロック出力用外部端子の一例である。遅延素子40は、本発明における第1の遅延手段および第1の遅延素子の一例である。遅延素子41は、本発明における第2の遅延手段および第2の遅延素子の一例である。
【0059】
[第4の実施形態]
図10は、本発明の第4の実施形態に係る半導体装置100Cの構成を示す図である。半導体装置100Cは、フリップフロップ10のデータ出力端子Qとデータ出力用外部端子30Aとの間に設けられたバイパス配線45と、遅延素子40の入力端およびバイパス配線45の一端を選択的にフリップフロップ10のデータ出力端子Qに接続するスイッチ46と、遅延素子40の出力端およびバイパス配線45の他端を選択的にデータ出力用外部端子30Aに接続するスイッチ47と、を更に含む点において、上記した第3の実施形態に係る半導体装置100Bと異なる。
【0060】
スイッチ46および47は、半導体装置100Cの出力遅延時間Tdをテストする際に、遅延素子40側に接続される。すなわち、半導体装置100Cの出力遅延時間Tdのテスト時において、フリップフロップ10のデータ出力端子Qから出力されたデータは、遅延素子40を経由してデータ出力用外部端子30Aから出力される。一方、スイッチ46および47は、半導体装置100Cの通常動作時においては、バイパス配線45側に接続される。すなわち、半導体装置100Cの通常動作時において、フリップフロップ10のデータ出力端子Qから出力されたデータは、遅延素子40を迂回するバイパス配線45を経由してデータ出力用外部端子30Aから出力される。
【0061】
遅延素子40は、出力遅延時間Tdのテストにおいて、データ出力用外部端子30Aから出力されるデータdata_Aの更新タイミングをワーストケースとするために設けられたものであり、通常動作時においては不要である。本実施形態に係る半導体装置100Cによれば、通常動作時においては、データを、遅延素子40を迂回するバイパス配線45を経由してデータ出力用外部端子30Aから出力させることが可能となる。
【0062】
なお、バイパス配線45は、本発明におけるバイパス配線の一例である。スイッチ46および47は、本発明におけるスイッチの一例である。
【0063】
上記の第1〜第4の実施形態に係る半導体装置においては、クロック信号clk_Aの遷移タイミングおよびデータdata_Aの更新タイミングをワーストケースとするために、遅延素子40および41を用いたが、この態様に限定されるものではない。例えば、遅延素子以外の素子、レイアウト、配線長およびタイミング設計によってワーストケースを作り出してもよい。
【0064】
[第5の実施形態]
図11は、本発明の第5の実施形態に係る半導体装置100Dの構成を示す図である。半導体装置100Dは、第1のセレクタ51、第2のセレクタ52、テストデータ入力用外部端子61、セレクタ制御用外部端子62、テストクロック入力用外部端子63、CPU70およびクロック生成回路71を含む。
【0065】
CPU70は、任意のロジック回路21を介して第1のセレクタ51の入力端子Jに接続されている。テストデータ入力用外部端子61は、第1のセレクタ51の入力端子Kに接続されている。クロック生成回路71は、任意のロジック回路22を介して第2のセレクタ52の入力端子Uに接続されている。テストクロック入力用外部端子63は、第2のセレクタ52の入力端子Vに接続されている。セレクタ制御用外部端子62は、第1のセレクタ51の制御端子Mおよび第2のセレクタ52の制御端子Xに接続されている。第1のセレクタ51の出力端子Lは、フリップフロップ10のデータ入力端子Dに接続されている。第2のセレクタ52の出力端子Wは、フリップフロップ10のクロック入力端子Cに接続されると共に、任意のロジック回路24を介してクロック出力用外部端子31A〜31Eに接続されている。
【0066】
CPU70は、フリップフロップ10に供給すべきデータ信号を生成する。クロック生成回路71は、フリップフロップ10に供給すべきクロック信号を生成する。第1のセレクタ51は、セレクタ制御用外部端子62を介して制御端子Mに入力されるセレクタ制御信号selに基づいて、入力端子Jに入力される信号および入力端子Kに入力される信号のいずれか一方を選択して出力端子Lに出力する。同様に、第2のセレクタ52は、セレクタ制御用外部端子62を介して制御端子Xに入力されるセレクタ制御信号selに基づいて、入力端子Uに入力される信号および入力端子Vに入力される信号のいずれか一方を選択して出力端子Wに出力する。
【0067】
テストデータ入力用外部端子61は、出力遅延時間Tdのテストに使用するテストデータdata_Tの入力を半導体装置100Dの外部から受け付ける。テストクロック入力用外部端子63は、出力遅延時間Tdのテストに使用するテストクロック信号clk_Tの入力を半導体装置100Dの外部から受け付ける。セレクタ制御用外部端子62は、第1のセレクタ51および第2のセレクタ52における選択動作を制御するセレクタ制御信号selの入力を半導体装置100Dの外部から受け付ける。
【0068】
半導体装置100Dの通常動作時において、第1のセレクタ51は、制御端子Mに入力されるセレクタ制御信号selに基づいて、入力端子Jに入力されるCPU70からのデータ信号を選択し、これをフリップフロップ10のデータ入力端子Dに供給する。また、半導体装置100Dの通常動作時において、第2のセレクタ52は、制御端子Xに入力されるセレクタ制御信号selに基づいて、入力端子Uに入力されるクロック生成回路71からのクロック信号を選択し、これをフリップフロップ10のクロック入力端子Cに供給する。
【0069】
一方、出力遅延時間Tdのテスト時において、第1のセレクタ51は、制御端子Mに入力されるセレクタ制御信号selに基づいて、テストデータ入力用外部端子61を介して半導体装置100Dの外部から供給され、入力端子Kに入力されるテストデータdata_Tを選択し、これをフリップフロップ10のデータ入力端子Dに供給する。また、出力遅延時間Tdのテスト時において、第2のセレクタ52は、制御端子Xに入力されるセレクタ制御信号selに基づいて、テストクロック入力用外部端子63を介して半導体装置100Dの外部から供給され、入力端子Vに入力されるテストクロック信号clk_Tを選択し、これをフリップフロップ10のクロック入力端子Cに供給する。
【0070】
以上のように、半導体装置100Dは、通常動作時において、内部のCPU70から供給されるデータ信号および内部のクロック生成回路71から供給されるクロック信号に基づいて動作する。一方、半導体装置100Dは、出力遅延時間Tdのテスト時において、半導体装置100Dの外部から供給されるテストデータdata_Tおよびテストクロック信号clk_Tを用いてテストを行う。このように、通常動作時における信号経路とは別に外部入力によるテスト用の経路を設けることで、テスト時間を削減することが可能となる。
【0071】
仮に外部入力によるテスト用の経路を設けない場合には、CPU70がテストデータ(テストパターン)を作成することとなるが、テストデータの作成にはある程度の時間を要するため、テスト時間が長くなる。また、テストデータの伝送レートは、CPU70の能力によって制限されてしまうため、テスト時間の短縮を図ることが困難である。
【0072】
一方、半導体装置100Dによれば、外部入力によるテスト用の経路を有するため、外部のテスタに予め保持しておいたテストデータdata_Tを用いて半導体装置100Dのテストを行うことが可能である。従って、CPU70がテストデータを作成する場合と比較して、テスト時間を削減することが可能である。また、テストデータdata_Tの伝送レートは、CPU70の能力に依存しないので、容易にテスト時間の短縮を図ることが可能となる。
【0073】
なお、第1のセレクタ51は、本発明における第1のセレクタの一例である。第2のセレクタ52は、本発明における第2のセレクタの一例である。CPU70は、本発明におけるデータ生成回路の一例である。クロック生成回路71は、本発明におけるクロック生成回路の一例である。テストデータ入力用外部端子61は、本発明におけるデータ入力用外部端子の一例である。テストクロック入力用外部端子63は、本発明におけるクロック入力用外部端子の一例である。