説明

半導体集積回路のクロック遅延調整回路およびその制御方法

【課題】回路規模が増大する問題があった。
【解決手段】複数の回路ブロックと、入力するクロック信号を遅延制御信号に基づいて遅延したクロック信号を対応する前記複数の回路ブロックに供給する複数のクロック遅延回路と、前記複数の回路ブロックの遅延試験を行う制御回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報を記憶する救済グループ記憶回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの遅延値情報を記憶する、所定数の遅延設定回路と、前記救済グループ記憶回路が記憶した回路ブロックの情報に対応したクロック遅延回路に対し、前記遅延設定回路が記憶した遅延値情報に応じた前記遅延制御信号を割り当てる遅延設定割当制御回路と、を有する半導体集積回路のクロック信号調整回路。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路のクロック遅延調整回路およびその制御方法に関するものである。
【背景技術】
【0002】
近年、半導体集積回路の製造プロセスの微細化および高速動作化の要求が高くなっている。それに伴い、デバイス性能向上では製造バラツキがカバーしきれなくなってきている。また、統計的STA手法に代表されるような、極力少ないタイミングマージンでの設計がなされるようになってきている。このため、チップ内のあらゆる場所における、遅延故障の発生による歩留り低下が懸念されるようになってきている。半導体集積回路に含まれる数個の特定マクロだけではなく、より多くのランダムにばらついたマクロに対する遅延故障救済への要求が高まってきた。なお、以下ではマクロとは、半導体集積回路を構成する各機能ブロックを指すものとする。
【0003】
遅延故障救済が可能な従来の技術として特許文献1に開示されているシステムLSI1のようなものがある。図10に、システムLSI1の構成を示す。システムLSI1は、ロジック回路10と、ROM20と、クロック遅延回路30と、遅延設定回路40と、遅延調整端子51、52と、セレクタ43、61と、チェックサム計算回路60と、チェックサム出力端子62とを有する。
【0004】
ロジック回路10は、CPUや図示しないRAMや入出力回路等の複数の回路ブロック11と、クロックツリーバッファ12とを有する。
【0005】
ここで、回路ブロックとは、予め機能と回路パターンが決定されている論理回路部品で、ハードマクロと呼ばれることもある。そして、この回路ブロックは、目的のシステムLSIの機能に合わせて、各種回路パターンを適宜半導体基板上に配置することで実現される。さらに、この回路ブロックに信号及び電源の配線パターンで接続すると共に、各回路ブロックへのクロック供給経路を設ける。このことにより、所望の機能を有するシステムLSIを構成することができるようになっている。
【0006】
ロジック回路10には動作の基本となるクロック信号CK0が与えられ、このクロック信号CK0がクロックツリーバッファ12で位相調整されて、CPU等の各回路ブロック11に供給されるようになっている。
【0007】
例えば、回路ブロック11をCPUとすると(以下、CPU11と称す)、CPU11のクロック端子Cには、クロックツリーバッファ12の最終の出力側から、クロック信号CK2が与えられている。
【0008】
また、クロックツリーバッファ12の中間ノードからは、このシステムLSIにおいて試験対象となる特定の回路ブロック20、例えばROM(以下では、ROM20と称す)へ供給するためのクロック信号CK1が出力される。但し、クロック信号CK1は、クロック遅延回路30を経由して与えられる。
【0009】
クロック遅延回路30は、縦続接続された複数の遅延素子(DL)31a〜31cと、セレクタ32とで構成される。クロック遅延回路30は、遅延調整信号DCNの指定によってクロック信号CK1または、これらの遅延素子31a〜31cで遅延されたクロック信号を遅延クロック信号DCKとして出力する。
【0010】
遅延クロック信号DCKは、ROM20のクロック端子Cに与えられる。ROM20は、CPU11で実行するプログラムや固定データが記憶されたもので、アドレス信号ADで指定された領域の記憶内容を読み出し、データRDとして出力する。
【0011】
遅延設定回路40は、製造後の試験で得られたクロック遅延回路30の適切な遅延調整量を記憶させておく。例えば電源電位VDDと接地電位GNDの間にヒューズ41と抵抗42からなる直列回路を複数並列に接続し、そのヒューズ41と抵抗42の各接続点からヒューズ41の切断/未切断の状態を、遅延設定信号DSTとして出力する。
【0012】
遅延設定信号DSTは、セレクタ43の入力端子Aに与えられる。また、このセレクタ43の入力端子Bには、遅延調整端子51から遅延調整信号DADが与えられるようになっている。セレクタ43は、モード指定端子52から与えられるモード信号MODによって通常動作モードが指定されたときに入力端子Aを選択し、試験動作モードが指定されたときには入力端子Bを選択する。そして、その選択した信号を出力端子Qから遅延調整信号DCNとして、クロック遅延回路30に出力する。
【0013】
チェックサム計算回路60及びセレクタ61は、システムLSI1の製造後の試験を行う。チェックサム計算回路60は、クロック端子Cに与えられるクロック信号CK2に従ってアドレス信号ADTを0から順次増加させて出力する。更に、それと共にROM20の各アドレスから読み出された読み出しデータRDを累積加算(但し、桁上がりは無視)して、その結果をチェックサムSUMとしてチェックサム出力端子62に出力する。
【0014】
チェックサム計算回路60のアドレス信号ADTは、セレクタ61の入力端子Bに与えられている。セレクタ61の入力端子Aには、CPU11からアドレス信号ADRが与えられ、このセレクタ61の出力端子Qからアドレス信号ADがROM20に与えられている。また、ROM20から出力される読み出しデータRDは、CPU11とチェックサム計算回路60に与えられるようになっている。
【0015】
以下、このシステムLSI1の製造直後の試験調整処理を説明する。まず、遅延調整端子51、モード指定端子52及びチェックサム出力端子62に、LSIテスタ等の試験治具を接続し、モード信号MODを試験動作モード(例えば、レベル"H")に設定する。これにより、セレクタ43、61では入力端子B側が選択され、遅延調整端子51から与えられる遅延調整信号DADが、遅延調整信号DCNとしてクロック遅延回路30に出力される。また、チェックサム計算回路60から出力されるアドレス信号ADTが、ROM20へアドレス信号ADとして与えられる。
【0016】
次に、遅延調整信号DADを0に設定して、所定のクロック信号CK0を与える。これにより、チェックサム計算回路60から順次出力されるアドレス信号ADTに従って、これに対応するROM20の記憶内容が読み出され、読み出しデータRDとして出力される。
チェックサム計算回路60では、順次読み出された読み出しデータRDの累積加算が行われ、その結果がチェックサムSUMとして出力される。
【0017】
そして、ROM20の全記憶内容に対するチェックサムSUMが出力された時点で、その値が予めROM20の記憶内容に基づいて算出されている値と比較して、正しいか否かを判定する。このようなチェックサムによる試験を、設定可能な遅延調整信号DADの値に対して順次実施する。そして、正しいチェックサムが得られたときに、その遅延調整信号DADの値を、遅延設定回路40にヒューズ41の切断/未切断の状態として記憶させる。
【0018】
このようにして、製造後の試験調整が行われたシステムLSIは、装置に組み込まれて使用される。このとき、通常動作モードが指定されるように、モード指定端子52はレベル"L"に固定接続される。これにより、クロック遅延回路30には、遅延設定回路40に設定された遅延設定信号DSTが、遅延調整信号DCNとして与えられるので、このクロック遅延回路30から適切な遅延時間を有する遅延クロック信号DCKが出力されてROM20に供給される。また、CPU11から出力されるアドレス信号ADRが、ROM20に対するアドレス信号ADとして与えられる。
【0019】
以上のように、この実施例1のシステムLSI1は、ROM20に対するクロック信号の遅延時間を製造後に調整するためのクロック遅延回路30及びチェックサム計算回路60を有すると共に、調整した値を記憶するための遅延設定回路40を有している。これにより、製造プロセスのばらつきによってクロック信号のタイミングが設計値からずれてしまった場合でも、製造後の製品に応じてクロック信号のタイミングを補正することができるので、動作ノイズによる誤動作や、クロックタイミングのずれによる誤動作を抑制することが可能になり、製品不良を回避することができるという利点がある。
【0020】
また、内部ブロックへの各クロック遅延量を遅延測定回路で測定し、その測定結果に基いて遅延調整回路(クロック遅延回路に相当)で各クロックの遅延量を調整し、その調整値を不揮発性メモリで記憶させることで、製造ばらつきによって発生した想定外のクロック遅延を修正するという特許文献2のような技術もある。
【先行技術文献】
【特許文献】
【0021】
【特許文献1】特開2006−12046号公報
【特許文献2】特開2004−228504号公報
【発明の概要】
【発明が解決しようとする課題】
【0022】
上述した従来の技術では、チップに含まれる全てのマクロを遅延故障救済の対象とした場合、救済に必要な情報を記憶する非揮発性記憶回路(ヒューズ回路)を個々のマクロに対して必要となる。このため、不揮発性記憶回路の数が膨大になり、チップに占める不揮発性記憶回路の回路規模が大きくなってしまう問題が発生する。このため、不揮発性記憶回路の規模を増やさずに、全てのマクロの遅延故障に対する救済可能な機構が求められている。
【課題を解決するための手段】
【0023】
本発明の一態様は、遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、外部からの設定信号で設定される前記遅延制御信号によって、前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行う制御回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報を記憶する救済グループ記憶回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの遅延値情報を記憶する、前記複数の回路ブロックの数よりも少ない所定数の遅延設定回路と、前記救済グループ記憶回路が記憶した回路ブロックの情報に対応したクロック遅延回路に対し、前記遅延設定回路が記憶した遅延値情報に応じた前記遅延制御信号を割り当てる遅延設定割当制御回路と、を有する半導体集積回路のクロック信号調整回路である。
【0024】
本発明の他の態様は、遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、を有する
半導体集積回路のクロック信号調整回路の制御方法であって、前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行い、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報及びその回路ブロックの遅延値情報を記憶し、その記憶した回路ブロックの情報に対応した前記クロック遅延回路に対して、前記遅延値情報に基づいた遅延制御信号を割り当てる
半導体集積回路のクロック信号調整回路の制御方法である。
【0025】
本発明により、複数の回路ブロックの全てに対応した遅延設定回路を必要としない。このため、最小限の数の遅延設定回路により、遅延処理が必要な回路ブロックの遅延故障を救済でき、回路規模の増大を抑えることが可能となる。
【発明の効果】
【0026】
本発明は、半導体集積回路の回路規模の増大を抑えることが可能である。
【図面の簡単な説明】
【0027】
【図1】実施の形態にかかるクロック遅延自動調整回路のブロック構成の一例である。
【図2】実施の形態にかかるクロック遅延回路の構成の一例である。
【図3】実施の形態にかかる遅延設定回路の構成の一例である。
【図4】実施の形態にかかる救済グループ記憶回路の一例である。
【図5】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図6】実施の形態にかかるテスター結果ファイルの一例である。
【図7】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図8】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図9】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図10】従来のクロック遅延自動調整回路のブロック構成である。
【発明を実施するための形態】
【0028】
発明の実施の形態
【0029】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を半導体集積回路のクロック遅延自動調整回路に適用したものである。図1に本実施の形態にかかるクロック遅延自動調整回路CHIP100の構成を示す。
【0030】
クロック遅延自動調整回路CHIP100は、ロジック回路10と、マクログループ130、131、132と、クロック遅延回路30、31、32と、遅延制御切替回路112と、遅延設定割当回路113と、救済グループ記憶回路114と、制御回路115と、遅延設定回路116、117とを有する。なお、遅延制御切替回路112と、遅延設定割当回路113とで、遅延設定割当制御回路を構成する。
【0031】
ロジック回路10は、CPU11等の特定の回路ブロックおよびクロックツリーバッファ12を有する。クロックツリーバッファ12は、図1の例では、遅延素子DLY12a〜DLY12cを有する。
【0032】
ここで、ロジック回路10は、動作の基本となるクロック信号CK0を入力する。そして、クロック信号CK0は、クロックツリーバッファ12で位相調整され、CPU11等の各回路ブロックに供給されるようになっている。
【0033】
クロックツリーバッファ12の遅延素子DLY12a〜DLY12cは、順に直列接続されている。遅延素子DLY12aは、クロック信号CK0を所定の遅延させたクロック信号CK1を出力する。遅延素子DLY12bは、クロック信号CK1を所定の遅延させたクロック信号CK2を出力する。遅延素子DLY12cは、クロック信号CK2を所定の遅延させたクロック信号CK3を出力する。
【0034】
例えば、回路ブロック10をCPUとすると(以下、CPU11と称す)、CPU11のクロック端子Cには、クロックツリーバッファ12の最終の出力側から、クロック信号CK2が与えられている。
【0035】
マクログループ130、131、132はそれぞれ、例えば、ROM等の特定の回路ブロックを有する。本実施の形態では、マクログループ130は、ROM130a〜130cを有する。マクログループ131は、ROM131a〜131cを有する。マクログループ132は、ROM132a〜132cを有する。
【0036】
マクログループ130、131、132は、ロジック回路10とそれぞれデータ入出力を行う構成となっている。例えばROM130aは、CPU11で実行するプログラムや固定データが記憶されたもので、アドレス信号ADで指定された領域の記憶内容を、読み出しデータRDとして出力する。マクログループ130、131、132に含まれるROM130a〜130c、131a〜131c、132a〜132cは、それぞれ専用のアドレス信号、データRDを有しているものとする。
【0037】
遅延設定回路116、117は、クロックタイミング等の不良の救済を行うマクログループの数だけ搭載され、その数はマクログループの総数以下である。図1に示すクロック遅延自動調整回路CHIP100では、3つのマクログループ(マクログループ130、131、132)に対して、2つの遅延設定回路(遅延設定回路116、117)を有している構成とする。
【0038】
遅延設定回路116は、遅延設定制御入力端子106と、遅延設定値入力端子108とを入力端子とし、遅延設定信号DS0を遅延設定割当回路113に出力する。同様に、遅延設定回路117は、遅延設定制御入力端子107、遅延設定値入力端子109と、を入力端子とし、遅延設定信号DS1を遅延設定割当回路113に出力する。なお、遅延設定制御入力端子106、107及び遅延設定値入力端子108、109は、半導体集積回路が構成されるチップの外部端子である。また、遅延設定回路116、117の構成として、図10の遅延設定回路40と同様な構成の不揮発性記憶回路であってもよい。つまり、内部にヒューズを有し、そのヒューズの切断、未切断で情報を記憶する。
【0039】
救済グループ記憶回路114は、救済グループ設定制御入力端子110より与えられる救済グループ設定制御信号と、救済グループ選択入力端子111より与えられる救済グループ選択信号を入力し、救済グループ設定信号RGSを遅延設定割当回路113と遅延制御切替回路112に出力する。なお、救済グループ設定制御入力端子110、救済グループ選択入力端子111は、半導体集積回路が構成されるチップの外部端子である。
【0040】
遅延設定割当回路113は、遅延設定回路116、117の出力信号である遅延設定信号DS0、DS1と、救済グループ記憶回路114の出力である救済グループ設定信号RGSを入力する。そして、割当遅延設定信号DSA0〜DSA2を、それぞれ遅延制御切替回路112に出力する。なお、割当遅延設定信号DSA0〜DSA2は、それぞれマクログループ130〜132に対応する信号である。なお、必要に応じて、割当遅延設定信号DSA0〜DSA2をまとめて割当遅延設定信号DSAとする。
【0041】
制御回路115は、クロック遅延初期値入力端子IN100によるクロック遅延初期値信号と、クロック遅延終了値入力端子IN101によるクロック遅延終了値信号と、Pass/Fail判定入力端子IN102によるPass/Fail判定信号を入力する。そして、制御回路115は、クロック遅延上限値信号をクロック遅延上限値出力端子OUT103へ出力、クロック遅延下限値信号をクロック遅延下限値出力端子OUT104へ出力、救済要否信号を救済要否出力端子OUT105へ出力、救済可否信号を救済可否出力端子OUT129へ出力する。
【0042】
なお、クロック遅延初期値入力端子IN100は、クロック遅延初期値入力端子IN100a、IN100b、IN100cを有する。クロック遅延終了値入力端子IN101は、クロック遅延終了値入力端子IN101a、IN101b、IN101cを有する。Pass/Fail判定入力端子IN102は、Pass/Fail判定入力端子IN102a、IN102b、IN102cを有する。クロック遅延上限値出力端子OUT103は、クロック遅延上限値出力端子OUT103a、OUT103b、OUT103cを有する。クロック遅延下限値出力端子OUT104は、クロック遅延下限値出力端子OUT104a、OUT104b、OUT104cを有する。救済要否出力端子OUT105は、救済要否出力端子OUT105a、OUT105b、OUT105cを有する。
【0043】
更に、制御回路115は、遅延制御切替回路112へ遅延調整信号DAD0〜DAD2を出力する。なお、遅延調整信号DAD0〜DAD2は、それぞれマクログループ130〜132に対応する信号である。なお、必要に応じて、遅延調整信号DAD0〜DAD2をまとめて遅延調整信号DADとする。
【0044】
クロック遅延初期値入力端子IN100は、クロック遅延初期値入力端子IN100a〜IN100cを有する。クロック遅延初期値入力端子IN100a〜IN100cそれぞれマクログループ130〜132に対応する入力端子である。同様に、クロック遅延終了値入力端子IN101は、クロック遅延終了値入力端子IN101a〜IN101cを有する。クロック遅延終了値入力端子IN101a〜IN101cは、それぞれマクログループ130〜132に対応する入力端子である。
【0045】
同様に、Pass/Fail判定入力端子IN102は、Pass/Fail判定入力端子IN102a〜IN102cを有する。Pass/Fail判定入力端子IN102a〜IN102cは、それぞれマクログループ130〜132に対応する入力端子である。同様に、クロック遅延上限値出力端子OUT103は、クロック遅延上限値出力端子OUT103a〜OUT103cを有する。クロック遅延上限値出力端子OUT103a〜OUT103cは、それぞれマクログループ130〜132に対応する出力端子である。
【0046】
同様に、クロック遅延下限値出力端子OUT104は、クロック遅延下限値出力端子OUT104a〜OUT104cを有する。クロック遅延下限値出力端子OUT104a〜OUT104cは、それぞれマクログループ130〜132に対応する出力端子である。同様に、救済要否出力端子OUT105は、救済要否出力端子OUT105a〜OUT105cを有する。救済要否出力端子OUT105a〜OUT105cは、それぞれマクログループ130〜132に対応する出力端子である。
【0047】
遅延制御切替回路112は、遅延調整信号DAD0〜DAD2と、遅延設定割当回路113の出力信号である割当遅延設定信号DSA0〜DSA2と、救済グループ記憶回路114の出力信号である救済グループ設定信号RGSを入力する。また、遅延制御切替回路112は、遅延制御信号DCN0〜DCN2を、それぞれクロック遅延回路30〜32に出力する。なお、必要に応じて、遅延制御信号DCN0〜DCN2をまとめて、遅延制御信号DCNとする。
【0048】
クロック遅延回路30〜32は、それぞれ遅延制御信号DCN0〜DCN2及びクロック信号CK0〜CK2を入力する。そして、クロック遅延回路30〜32は、それぞれ遅延クロック信号DCK0〜DCK2を出力する。遅延クロック信号DCK0〜DCK2は、それぞれマクログループ130〜132に対応する。なお、必要に応じて、遅延クロック信号DCK0〜DCK2をまとめて、遅延クロック信号DCKとする。
【0049】
以下に、クロック遅延回路30〜32の構成を示す。但し、クロック遅延回路30〜32は同様な構成であり、図2には代表してクロック遅延回路30のみを示す。なお、この構成は基本的に図10のクロック遅延回路30と同じである。クロック遅延回路30は、セレクタSEL30と、遅延素子DLY31〜DLY33とを有する。
【0050】
遅延素子DLY31〜DLY33は、順に直列接続されている。遅延素子DLY31はクロック信号CK0を入力し、所定の遅延を持たせて出力する。遅延素子DLY32、DLY33も同様に、入力した信号を所定の遅延を持たせて出力する。
【0051】
セレクタSEL30は、遅延制御信号DCN0に応じて、クロック信号CK0もしくは遅延素子DLY31〜DLY33の出力信号のうちいずれか1つを選択して出力する。
【0052】
以上のように、クロック遅延回路30〜32は、それぞれ入力したクロック信号CK0〜CK2の遅延した信号を、それぞれ遅延制御信号DCN0〜DCN2に応じて出力することができる。
【0053】
図3に遅延設定回路116の構成の一例を示す。なお、遅延設定回路117も、遅延設定回路116と同様の構成であるため、ここでの説明は省略する。
【0054】
ここで、クロック遅延回路30〜32がそれぞれ遅延クロック信号DCKの遅延量をK通りに調整可能である場合、遅延設定回路116、117はそれぞれlog2(K)の小数点以下を切り上げた数だけのヒューズ回路を有する。K=4とする場合、ヒューズ回路が2個となり、図3のように遅延設定回路116は、ヒューズ回路118、119を有する。
【0055】
ヒューズ回路118は、値入力端子118aと、値設定端子118bとを有する。ヒューズ回路119は、値入力端子119aと、値設定端子119bとを有する。ヒューズ回路118、119は、それぞれ値設定端子118b、119bに"0"もしくは"1"を入力することで、値入力端子118a、119aに入力された値が記憶される。なお、以下では、値設定端子118b、119bに"1"が入力される場合に、値入力端子118a、119aに入力された値が記憶されるものとする。
【0056】
遅延設定回路116のヒューズ回路118、119のそれぞれの値入力端子118a、119aは、遅延設定値入力端子108に接続される。遅延設定回路116のヒューズ回路118、119のそれぞれの値設定端子118b、119bは、遅延設定制御入力端子106に接続される。なお、遅延設定回路116のヒューズ回路118、119のそれぞれの出力端子118c、119cから出力される信号は、遅延設定回路116の出力端子125から遅延設定信号DS0として遅延設定割当回路113に出力される。
【0057】
同様に、遅延設定回路117のヒューズ回路118、119のそれぞれの値入力端子118a、119aは、遅延設定値入力端子109に接続される。遅延設定回路117のヒューズ回路118、119のそれぞれの値設定端子118b、119bは、遅延設定制御入力端子107に接続される。なお、遅延設定回路117のヒューズ回路118、119のそれぞれの出力端子118c、119cから出力される信号は、遅延設定信号DS1として遅延設定割当回路113に出力される。
【0058】
図4に救済グループ記憶回路114の構成の一例を示す。救済グループ記憶回路114は、ヒューズ回路120、121、122を有する。なお、ヒューズ回路120、121、122は、それぞれマクログループ130、131、132に対応しているものとする。
【0059】
ヒューズ回路120〜122のそれぞれの値入力端子120a〜122aは、救済グループ選択入力端子111に接続される。ヒューズ回路120〜122のそれぞれの値設定端子120b〜122bは、救済グループ設定制御入力端子110に接続される。なお、ヒューズ回路120〜122のそれぞれの出力端子120c〜122cから出力される信号は、救済グループ設定信号RGSとして、遅延設定割当回路113と遅延制御切替回路112に出力される。
【0060】
また、CPU11は、ROM130a〜130c、131a〜131c、132a〜132cのファンクション動作時における入出力パス上の論理回路を有するものとする。また、CPU11は、ROM130a〜130c、131a〜131c、132a〜132cの遅延故障テストを行うテスト回路を有する。なお、ROM130a〜130c、131a〜131c、132a〜132cは、それぞれ図10のROM20と同等な機能を有している。また、クロック遅延回路30〜32は、それぞれ図10のクロック遅延回路30と同等な機能を有している。
【0061】
なお、図1に示すクロック遅延回路30〜32は、それぞれ複数のROMにクロック信号線を通じて接続しているが、単一のROMのみに接続していてもよい。さらに、接続する回路はROMに限らず、遅延故障テストさえ行うことができれば一般的なマクロでよい。1つのクロック遅延回路にクロック信号線を通じて接続されているすべてのマクロの集合(マクログループ130〜132)が遅延故障テストおよび故障救済の対象である。なお、各クロック遅延回路30〜32の出力クロック信号線は、それぞれ対応するマクログループに含まれる全マクロのクロック信号の入力のみに接続されている。
【0062】
以下に、本実施の形態のクロック遅延自動調整回路CHIP100の動作について説明する。図5にクロック遅延自動調整回路CHIP100の動作を説明するフローチャートを示す。この図5に示すフローチャートは、例えば複数のクロック遅延自動調整回路CHIP100のチップ(以下、必要に応じて単にチップと称す)が形成されるウエハに対して適用した動作フローである。
【0063】
このウエハテストでは、例えば、高温テストと低温テストが、それぞれテスターを用いて行われるものとする。なお、それぞれのテストの順番を考慮しなくても良いように、ここでは1回目テスター処理、2回目テスター処理と呼ぶ。
【0064】
図5に示すように、まず、1回目テスター処理を行う(S100)。1回目テスター処理の結果が、テスタプログラムによりファイルとして、テスターに保存される。このファイルのことを、1回目テスター結果ファイルと称す。この1回目テスター結果ファイルの一例を図6に示す。なお、図6の1回目テスター結果ファイルでは、例として一枚のウエハー上にN個の半導体集積回路チップが存在し、各チップには3つずつのマクログループが存在しているとする。図6の1回目テスター結果ファイルには、チップごとに救済可否が記載されており、またチップごとに全マクログループについてクロック遅延下限値、クロック遅延上限値、救済要否が記載されている。
【0065】
次に、1回目テスター結果ファイルをテスターに入力し、2回目テスター処理を行う(S101)。2回目テスター処理の結果が、テスタプログラムによりファイルとして、テスターに保存される。このファイルのことを、2回目テスター結果ファイルと称す。この2回目テスター結果ファイルは、図6と同様の構成で記載される。
【0066】
次に、ステップS101より得た2回目テスター結果ファイルに記載された、チップ毎の救済可否情報を参照し、救済可能とされたチップに対して救済グループ設定処理を行う(S102)。このステップS102の救済グループ設定処理では、以下のことが行われる。
【0067】
まず、テスタプログラムが2回目テスター結果ファイルに記載された各マクログループ130〜132に対応する救済要否の判定を行う。
【0068】
その判定結果に従って、救済グループ記憶回路114が救済グループ選択入力端子111より、救済が行われるマクログループ(以降、救済グループと呼ぶ)を示す信号を入力する。更に、救済グループ設定制御入力端子110よりヒューズ切断制御信号を入力する。
【0069】
このことにより、救済グループ記憶回路114のヒューズ回路120〜122において、救済グループ選択入力端子111より入力された救済グループを示す信号が記憶され、チップ全体の電源を落としても、救済グループが記憶される。ヒューズ回路120〜122に記憶された設定値は、図4の選択グループ出力端子126〜128により救済グループ設定信号RGSとして出力される。
【0070】
例えば、マクログループ130、132を救済する場合、ヒューズ回路120、122に接続する救済グループ選択入力端子111に"1"を入力する。また、ヒューズ回路121に接続する救済グループ選択入力端子111には"0"を入力する。そして、全ての救済グループ設定制御入力端子110に"1"を入力することで、救済グループがマクログループ130、132であることが記憶される。この結果、救済グループ設定信号RGS="101"が出力される。
【0071】
なお、図4の救済グループ記憶回路114は、マクログループ130〜132にそれぞれ対応したヒューズ回路120〜122を有している。つまり、救済グループ記憶回路114には、マクログループの個数分のヒューズ回路120〜122が必要である。但し、以下に述べるような救済グループの全組み合わせが表現できるビット分のみで構成することも出来る。
【0072】
例えば、マクログループの個数が5個、救済個数が2個である場合を考える。この場合、救済グループ記憶回路114が、"00000"、"00001"、"00010"、"00100"、"01000"、"10000"、"00011"、"00110"、"01100"、"11000"、"00101"、"01010"、"10100"、"01001"、"10010"、"10001"の計16個の出力状態が記憶できればよい。このため、救済グループ記憶回路114において、ヒューズ回路を4個だけ用意すればよい。但し、この場合デコーダ回路が必要になる。
【0073】
そして、救済グループ記憶回路114は、上述したような救済グループが記憶されると救済グループを示す救済グループ設定信号RGSを、遅延設定割当回路113及び遅延制御切替回路112へ出力する。
【0074】
遅延設定割当回路113では、救済グループ設定信号RGSに従って遅延設定回路116、117の設定値である遅延設定信号DS0、DS1を、対応するマクログループの割当遅延設定信号DSA出力ポートに割当て、遅延制御切替回路112へ出力する。なお、ここでは、マクログループ130〜132には識別番号"0"、"1"、"2"が与えられているものとする。また、遅延設定回路116、117にも別の識別番号"0"、"1"が与えられるものとする。
【0075】
遅延設定割当回路113は、対応するマクログループの識別番号が小さい順に割当遅延設定信号DSA出力ポート(DSA0、DSA1、DSA2)を、識別番号が小さい遅延設定回路の遅延設定信号に割り当てる。
【0076】
例えば、救済グループがマクログループ130のみである場合は、上述した動作により救済グループ記憶回路114が、救済グループ設定信号RGS="100"を出力する。この場合、遅延設定割当回路113において、識別番号"0"であるマクログループ130に対応する割当遅延設定信号DSA0には、識別番号"0"である遅延設定回路116による遅延設定信号DS0が出力される。なお、他のマクログループに対応する割当遅延設定信号DSA1、DSA2は、任意の値を出力する。
【0077】
また他の例として、救済グループがマクログループ130、132の場合、救済グループ記憶回路114が、救済グループ設定信号RGS="101"を出力する。この場合、遅延設定割当回路113において、識別番号"0"であるマクログループ130に対応する割当遅延設定信号DSA0には、識別番号"0"である遅延設定回路116による遅延設定信号DS0が出力され、識別番号"2"であるマクログループ132に対応する割当遅延設定信号DSA2には、識別番号"1"である遅延設定回路117による遅延設定信号DS1が出力される。なお、マクログループ131に対応する割当遅延設定信号DSA1は、任意の値を出力する。
【0078】
次に、遅延制御切替回路112は、救済グループ設定信号RGSに従って、クロック遅延回路30、31、32にそれぞれ対応する遅延制御信号DCN0、DCN1、DCN2を、遅延調整信号DAD0、DAD1、DAD2か、割当遅延設定信号DSA0、DSA1、DSA2か、に切り替える。なお、遅延制御信号DCN0、DCN1、DCN2には、制御回路115が出力するそれぞれ遅延調整信号DAD0、DAD1、DAD2が対応する。同様に、遅延制御信号DCN0、DCN1、DCN2には、遅延設定割当回路113が出力するそれぞれ割当遅延設定信号DSA0、DSA1、DSA2が対応する。この遅延制御信号DCN0、DCN1、DCN2によりそれぞれクロック遅延回路30、31、32に対して遅延量制御を行う。
【0079】
上記の遅延設定割当回路113および遅延制御切替回路112の動作により、救済グループに対応する遅延制御信号DCNには、対応する割当遅延設定信号DSAが出力され、救済が行われないマクログループに対応する遅延制御信号DCNには、対応する遅延調整信号DADが出力される。
【0080】
なお、チップの設計段階の制御回路115は、全ての遅延調整信号DADに固定値を出力する。このとき、救済グループ記憶回路114は未設定である。よって、遅延制御切替回路112は、全ての遅延制御信号DCNとして、遅延調整信号DADを出力する。そのためチップの設計段階では、制御回路115より出力される固定値の遅延調整信号DADにより、全てのクロック遅延回路30、31、32のクロック遅延量が固定されて設計される。
【0081】
次に、ステップS101で得られた2回目テスター結果ファイルに記載された、チップ毎の救済可否情報を参照し、救済可能とされたチップに対して遅延設定処理を行う(S103)。まず、この遅延設定処理では、テスタプログラムが、2回目テスター結果ファイルに記載された各救済グループの有効設定範囲から各救済グループのクロック遅延設定値を求める。例えば、この遅延設定値として、中央値を求める。そして、それぞれ対応する遅延設定回路116、117の遅延設定値入力端子108、109にこの設定値を入力する。更に、遅延設定制御入力端子106、107より遅延設定制御信号を入力して、救済グループのクロック遅延値を記憶する。
【0082】
以下に図3の遅延設定回路116での具体的な動作例を示す。まず、遅延設定値入力端子108より設定する遅延値を入力する。次に、遅延設定制御入力端子123に"1"を入力し、ヒューズ回路118、119の切断を行う。この後は、チップの電源を落としても設定値が記憶されており、記憶された設定値が遅延設定値出力端子125より遅延設定信号DS0として出力される。なお、遅延設定回路117も同様の動作を行い、設定値が記憶され、遅延設定回路117の遅延設定値出力端子125より遅延設定信号DS1が出力される。
【0083】
より具体的な数値を用いて、遅延設定信号DS0の動作を説明する。なお、前提として遅延設定回路116に対応するマクログループを、マクログループ130とする。そして、クロック遅延回路30が、遅延制御信号DCN0のパターン"00"により遅延クロック信号DCK0の遅延量が1.0ns、"01"により1.1ns、"10"により1.2ns、"11"により1.3nsに設定可能であるとする。
【0084】
この前提条件にて、遅延クロック信号DCK0の遅延量を1.2nsに設定する場合、ヒューズ回路118に対応する遅延設定値入力端子108には"1"、ヒューズ回路119に対応する遅延設定値入力端子108には"0"を入力する。次に、遅延設定制御入力端子123に"11"を入力することで、この遅延設定値入力端子108に入力した値が記憶される。その後、チップの電源を落としても設定値が記憶されており、遅延設定値出力端子125から"10"が出力される。
【0085】
図7に、1回目のテスター処理のフローチャートを示す。この図7のフローチャートを用いて、図5のステップS100における1回目テスター処理の動作を説明する。
【0086】
まず、テスターのテストプログラムにより、制御回路115は、それぞれクロック遅延初期値として、各マクログループ130、131、132に対応するクロック遅延回路30、31、32で調整可能な最小値を、クロック遅延初期値入力端子IN100a、IN100b、IN100cより入力する。同様に、それぞれクロック遅延終了値として、各マクログループ130、131、132に対応するクロック遅延回路30、31、32で調整可能な最大値を、クロック遅延終了値入力端子IN101a、IN101b、IN101cより入力する(S110)。
【0087】
次に、テスタプログラムがクロック遅延自動調整回路CHIP100に遅延調整処理を行わせる(S111)。このステップS111にて、クロック遅延回路30〜32は、対応する各マクログループ130〜132に対して、ステップS110で設定したクロック遅延初期値からクロック遅延終了値まで、段階的にクロック遅延値を増加させていく。そして、各マクログループ130〜132に、それぞれのクロック遅延値に対した遅延故障テストが実施される。
【0088】
次に、ステップS111にて、各マクログループ130〜132のクロック遅延下限値およびクロック遅延上限値が判定され、この判定結果を有効設定範囲とし、遅延調整処理の結果として、テスターのテスタプログラムが、制御回路115より得る(S112)。なお、マクログループ毎のクロック遅延下限値はクロック遅延下限値出力端子OUT104a、OUT104b、OUT104cより出力される。また、マクログループ毎のクロック遅延上限値は、クロック遅延上限値出力端子OUT103a、OUT103b、OUT103cより出力される。
【0089】
また、各マクログループ130、131、132の救済要否の判定が、それぞれ救済要否出力端子OUT105a、OUT105b、OUT105cより得られ、現在処理対象のチップの救済可否の判定は救済可否出力端子OUT129より得られる。
【0090】
ウエハ上の全てのクロック遅延自動調整回路CHIP100に対して上記処理が終了していない場合(S113NO)、他のクロック遅延自動調整回路CHIP100に対して、ステップS110〜S112の処理が行われる。そして、ウエハ上の全てのクロック遅延自動調整回路CHIP100に対して上記処理が終了した場合(S113YES)、全てのチップにおける救済可否およびマクログループ毎のクロック遅延下限値、クロック遅延上限値、救済要否が、1回目テスター結果ファイルとしてテスタプログラムにより保存され、1回目のテスター処理を終了する。
【0091】
図8に、2回目のテスター処理のフローチャートを示す。この図8のフローチャートを用いて、図5のステップS101における2回目テスター処理の動作を説明する。
【0092】
まず、テスターのテストプログラムにより、制御回路115は、それぞれクロック遅延初期値として、1回目テスター結果ファイルに記載された現在処理対象としているチップの全てのマクログループ130、131、132のクロック遅延下限値を、クロック遅延初期値入力端子IN100a、IN100b、IN100cより入力する。同様に、それぞれクロック遅延終了値として、1回目テスター結果ファイルに記載された現在処理対象としているチップの全てのマクログループ130、131、132のクロック遅延上限値を、クロック遅延終了値入力端子IN101a、IN101b、IN101cより入力する(S120)。
【0093】
次に、テスタプログラムがクロック遅延自動調整回路CHIP100に遅延調整処理を行わせる(S121)。このステップS121にて、クロック遅延回路30〜32は、対応する各マクログループ130〜132に対して、ステップS120で設定したクロック遅延初期値からクロック遅延終了値まで、段階的にクロック遅延値を増加させていく。そして、各マクログループ130〜132に、それぞれのクロック遅延値に対した遅延故障テストが実施される。
【0094】
次に、ステップS121にて、各マクログループ130〜132のクロック遅延下限値およびクロック遅延上限値が判定され、この判定結果を有効設定範囲とし、遅延調整処理の結果として、テスターのテスタプログラムが、制御回路115より得る。なお、マクログループ毎のクロック遅延下限値はクロック遅延下限値出力端子OUT104a、OUT104b、OUT104cより出力される。また、マクログループ毎のクロック遅延上限値は、クロック遅延上限値出力端子OUT103a、OUT103b、OUT103cより出力される。
【0095】
また、各マクログループ130、131、132の救済要否の判定が、それぞれ救済要否出力端子OUT105a、OUT105b、OUT105cより得られ、現在処理対象のチップの救済可否の判定は救済可否出力端子OUT129より得られる。
【0096】
ウエハ上の全てのクロック遅延自動調整回路CHIP100に対して上記処理が終了していない場合(S123NO)、他のクロック遅延自動調整回路CHIP100に対して、ステップS120〜S122の処理が行われる。そして、ウエハ上の全てのクロック遅延自動調整回路CHIP100に対して上記処理が終了した場合(S123YES)、全てのチップにおける救済可否およびマクログループ毎のクロック遅延下限値、クロック遅延上限値、救済要否が、2回目テスター結果ファイルとしてテスタプログラムにより保存され、2回目のテスター処理を終了する。
【0097】
図9に、1回目、2回目テスター処理のステップS111、S121の遅延調整処理のフローチャートを示す。図9のフローチャートを用いて遅延調整処理の動作を説明する。
【0098】
制御回路115が、クロック遅延初期値入力端子IN100a、IN100b、IN100cの入力情報により各マクログループ130、131、132のクロック遅延値の初期値を設定する(S200)。各初期値は、マクログループ130に対応するものが遅延調整信号DAD0より、マクログループ131に対応するものが遅延調整信号DAD1より、マクログループ132に対応するものが遅延調整信号DAD2より設定される。
【0099】
なお、救済グループ記憶回路114の記憶処理を行うまでは、遅延制御切替回路112の出力である遅延制御信号DCN0、DCN1、DCN2は、それぞれ制御回路115による遅延調整信号DAD0、DAD1、DAD2が出力される。このため、この遅延調整処理のフローチャートにおいては、常に制御回路115により、クロック遅延回路30、31、32の遅延量が制御されるものとする。
【0100】
次に、制御回路115が、クロック遅延終了値入力端子IN101a、IN101b、IN101cの入力情報により各マクログループ130、131、132のクロック遅延値の終了値を設定する(S201)。
【0101】
次に、CPU11に含まれるテスト回路が、現在のクロック遅延設定値において未実行の、1つの遅延故障テストパターンを実行する(S202)。そして、CPU11内のテスト回路が、各テストパターンの実行結果であるPass/Fail判定信号を出力し、制御回路115の対応するマクログループのPass/Fail判定入力端子IN102に入力される。なお、チップ外部でテストパターンの期待値照合を行う場合には、Pass/Fail判定入力端子IN102は、チップ外部端子としてもよい。
【0102】
制御回路115が、ステップS202で実行された遅延故障テストパターンに対する、Pass/Fail判定結果をPass/Fail判定入力端子IN102より受け取る。この判定結果がPassであれば(S203PASS)、ステップS204へ進む。
【0103】
ステップS204では、全ての遅延故障テストパターンがPassしたかどうかを制御回路115が判定し、遅延故障テストパターン全てがPassであれば(S204YES)、ステップS205へ進む。未実行の遅延故障テストパターンがあれば(S204NO)、ステップS202へ戻る。
【0104】
上記ステップS204にて遅延故障テストパターンが全てPassした場合(S204YES)、この全ての遅延故障テストパターンをPassしたのが、現在のクロック遅延設定値が初めてなのかを、制御回路115が判定する(S205)。初めてであれば(S205YES)、制御回路115は、現在のクロック遅延設定値を、現在処理対象のマクログループのクロック遅延下限値として、対応するマクログループのクロック遅延下限値出力端子OUT104より出力する(S206)。
【0105】
クロック遅延回路30、31、32は、それぞれ遅延制御信号DCN0、DCN1、DCN2の値により出力する遅延クロック信号DCKの遅延量を決定する。但し、図5のステップS102の救済グループ記憶回路の設定を行う前では、制御回路115より出力された遅延調整信号DAD0、DAD1、DAD2が、それぞれ遅延制御信号DCN0、DCN1、DCN2として遅延制御切替回路112より出力される。このため、各クロック遅延回路30、31、32の遅延クロック信号DCKの遅延量は、それぞれ遅延調整信号DAD0、DAD1、DAD2により決定される。つまり、各マクログループのクロック遅延値は、制御回路115により制御される。
【0106】
なお、制御回路115が、クロック遅延回路30、31、32の遅延クロック信号DCKの遅延量を調整する際、1つのチップ内のあるマクログループに対応するクロック遅延回路において、設定可能なクロック遅延値のうち、現在のクロック遅延値よりも1つだけ小さいクロック遅延値を実現するクロック遅延設定値のことを、以降、前遅延設定値と呼ぶ。更に、1つだけ大きいクロック遅延値を実現するクロック遅延設定値のことを、以降、次遅延設定値と呼ぶ。
【0107】
ステップS205において、全ての遅延故障テストパターンをPassしたのが現在のクロック遅延設定値が初めてではない場合(S205NO)、つまり、前遅延設定値でも全ての遅延故障テストパターンがPassしていた場合は、ステップS206は実行されず、クロック遅延下限値は出力しない。
【0108】
次に、現在のクロック遅延設定値が最終値なのかどうかを、制御回路115が判定する(S207)。最終値であれば(S207YES)、現在のクロック遅延設定値を現在処理対象のマクログループのクロック遅延上限値として、制御回路115が対応するマクログループのクロック遅延上限値出力端子OUT103より出力する(S208)。
【0109】
最終値でなければ(S207NO)、制御回路115がクロック遅延設定値を次遅延設定値にし、ステップS202へ進む。
【0110】
ここで、ステップS203にて、ある遅延故障テストパターンがFailした場合、前遅延設定値で全ての遅延故障テストパターンがPassしていたかどうかを、制御回路115が判定する(S209)。Passしていた場合(S209YES)、前遅延設定値を現在処理対象のマクログループのクロック遅延上限値として、制御回路115が対応するマクログループのクロック遅延上限値出力端子OUT103より出力(S210)し、ステップS216に進む。
【0111】
ステップS209にて、前遅延設定値で、ある遅延故障テストパターンがFailしていた、もしくは現在のクロック遅延設定値が初期値であった場合(S209NO)、現在のクロック遅延設定値が終了値かどうかを制御回路115が判定する(S211)。終了値であれば(S211YES)、どのクロック遅延設定値においてもFailしていたことを意味する。このため、制御回路115がステップS214にて救済可否信号="0"を救済可否出力端子OUT129より出力する(S214)。終了値でなければ(S211NO)、制御回路115がクロック遅延設定値を次遅延設定値にし(S212)、ステップS202へ進む。
【0112】
チップごとの全てのマクログループ130〜132に対して、上記ステップS202〜S212を実行していない場合(S216NO)、実行していないマクログループに対して、上記ステップS202〜S212を実行する。
【0113】
一方、チップごとの全てのマクログループ130〜132に対して、上記ステップS202〜S212を実行完了した場合(S216YES)、制御回路115が救済可否信号="1"を救済可否出力端子OUT129より出力する(S213)。
【0114】
次に、救済が必要なマクログループ(要救済グループ)の数を求め、予め決められた救済可能数(=遅延設定回路116、117の数)よりも多い場合は(S217YES)、ステップS214に進み、救済可否信号="0"を救済可否出力端子OUT129より出力する(S214)。
【0115】
一方、要救済グループ数が、救済可能数以下である場合(S217NO)、制御回路115は、ウエハテスト終了時に各マクログループ130〜132に救済が必要かどうかを判定し、チップ外部端子である救済要否出力端子OUT105a、OUT105b、OUT105cに、それぞれマクログループ130、131、132の救済要否信号を出力する(S218)。例えば救済必要ならば"1"、救済不要ならば"0"を出力する。
【0116】
なお、各マクログループ130〜132に救済が必要かどうかの判定は、それぞれ設計時に使用していた固定値の遅延調整信号DADが、それぞれの有効設定範囲内に含まれるかどうかにより判定される。例えば、2回目テスター処理終了時点で、あるチップの救済可否信号="1"であった場合、この対応する救済要否信号="1"であるマクログループに対しては、1回目と2回目の両方のテスター処理で、全ての遅延故障テストパターンがPassするクロック遅延値の有効設定範囲が、クロック遅延上限値出力端子OUT103およびクロック遅延下限値出力端子OUT104より得られているため、救済可能である。
【0117】
なお、ステップS202のパターン実行については、例えばスキャンチェーンをマクログループ130〜132毎に分けて構成しておき、設計時に予め遅延故障検出率の高いパターンおよび期待値を生成しておき、期待値比較自体はチップ外部でテスタプログラムにて行うという方法をとることによって、実現可能である。
【0118】
本発明は、救済グループ記憶回路114及び遅延設定回路116〜117と、遅延制御切替回路112との間に接続された遅延設定割当回路113とを備えている。このことで、マクログループ130〜132の救済を行う個数だけ搭載した遅延設定回路116〜117が、救済グループに割り当てられる。このため、少ない不揮発性記憶回路で、チップに含まれる全てのマクロを遅延故障救済できる。
【0119】
以下にマクログループを500個搭載したチップを具体例として説明する。この例では、遅延設定回路、救済グループ記憶回路の面積は、400[μm/bit]とする。また、遅延設定回路は、5[bit]で構成されるものとする。また、各マクログループで遅延故障が発生する確率は、0.0005(=0.05%)とし、歩留り目標は、99%とする。
【0120】
チップに搭載される全てのマクログループを救済の対象とする場合、各マクログループに対してクロック遅延回路が必要である。そして、従来技術の場合、クロック遅延回路の設定値を保持するための遅延設定回路は、それぞれのクロック遅延回路に対して必要となっていた。このため、遅延設定回路全体で、不揮発性記憶回路(ヒューズ回路)の面積S1は、以下のような式(1)で求められる。

S1=(遅延設定回路の面積)×(bit数)×(マクロ数) ・・・(1)
【0121】
この式(1)に上記想定した各値を代入すると、式(2)のような結果となる。

S1=400[μm/bit]×5[bit]×500個
=1,000,000[μm] ・・・(2)
【0122】
ここで、本発明の場合、各マクログループに対してクロック遅延回路が必要なのは従来技術と同じであるが、次に求める数だけ遅延設定回路を有していればよい。まず、n個のマクログループで遅延故障が発生する確率P(n)は次の式(3)で求められる。

P(n)=0.0005^n×(1−0.0005)^(500−n)×C(500,n)
・・・(3)
【0123】
但し、C(m,n)はm個からn個を抽出する組合せである。この式(3)から、

P(0)=77.88%
P(1)=19.48%
P(2)=2.43%

となるため、以下に示すような式(4)、式(5)になる。

P(0)+P(1)=97.35% ・・・(4)
P(0)+P(1)+P(2)=99.78% ・・・(5)
【0124】
歩留まり目標は、99%であるため、式(4)、式(5)より式(6)が成り立つ。

P(0)+P(1)<99%<P(0)+P(1)+P(2) ・・・(6)
【0125】
式(6)より、2個までのマクログループが救済できれば歩留り目標である99%が達成できる。そのため本発明での不揮発性記憶回路の面積をS2とすると、以下の式(7)のようになる。

S2=(遅延設定回路の面積)+(救済グループ記憶回路の面積)・・・(7)
【0126】
式(7)に上記想定した各値を代入すると、式(8)のような結果となる。

S2=400[μm/bit]×5[bit]×2個+400[μm/bit]×500[bit]
=204,000[μm] ・・・(8)
【0127】
よって、従来技術の不揮発性記憶回路面積S1と本発明の不揮発性記憶回路面積S2の比は、式(9)で示される。

S1:S2=1,000,000:204,000 ・・・(9)
【0128】
以上のことから、式(9)に示されるように、本発明では、不揮発性記憶回路面積が、従来技術の20.4%にすることが可能である。結果として、本発明では、従来技術と比較し、少ない不揮発性記憶回路で、チップに含まれる全てのマクロを遅延故障救済できることが可能となる。これは、救済グループ記憶回路が、救済を必要とするマクログループを記憶し、遅延設定割当回路が、マクログループの救済を行う個数だけ搭載した遅延設定回路をマクログループに割り当てることにより可能とする。
【0129】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0130】
CHIP100 クロック遅延自動調整回路
10 ロジック回路(CPU)
130、131、132 マクログループ
130a〜130c、131a〜131c、132a〜132c ROM
30、31、32 クロック遅延回路
112 遅延制御切替回路
113 遅延設定割当回路
114 救済グループ記憶回路
115 制御回路
116、117 遅延設定回路
12 クロックツリーバッファ
DLY12a〜DLY12c 遅延素子
118、119、120、121、122 ヒューズ回路
IN100a、IN100b、IN100c クロック遅延初期値入力端子
IN101a、IN101b、IN101c クロック遅延終了値入力端子
IN102a、IN102b、IN102c Pass/Fail判定入力端子
OUT103a、OUT103b、OUT103c クロック遅延上限値出力端子
OUT104a、OUT104b、OUT104c クロック遅延下限値出力端子
OUT105a、OUT105b、OUT105c 救済要否出力端子
OUT129 救済可否出力端子

【特許請求の範囲】
【請求項1】
遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、
前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、
前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、
外部からの設定信号で設定される前記遅延制御信号によって、前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行う制御回路と、
前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報を記憶する救済グループ記憶回路と、
前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの遅延値情報を記憶する、前記複数の回路ブロックの数よりも少ない所定数の遅延設定回路と、
前記救済グループ記憶回路が記憶した回路ブロックの情報に対応したクロック遅延回路に対し、前記遅延設定回路が記憶した遅延値情報に応じた前記遅延制御信号を割り当てる遅延設定割当制御回路と、を有する
半導体集積回路のクロック信号調整回路。
【請求項2】
前記遅延設定回路の所定数は、前記複数の回路ブロックの遅延故障が発生する確率に応じて決定される
請求項1に記載の半導体集積回路のクロック信号調整回路。
【請求項3】
前記救済グループ記憶回路は、前記複数の回路ブロックのそれぞれに対応する第1の不揮発性記憶素子を有し、前記遅延試験の結果に応じて、前記遅延処理が必要な回路ブロックに対応した第1の不揮発性記憶素子に情報を書き込む
請求項1または請求項2に記載の半導体集積回路のクロック信号調整回路。
【請求項4】
前記遅延処理が必要な回路ブロックに対応した第1の不揮発性記憶素子は、ヒューズの切断により情報が書き込まれる
請求項3に記載の半導体集積回路のクロック信号調整回路。
【請求項5】
前記遅延設定回路は、前記クロック遅延回路が入力するクロック信号を遅延させる遅延精度に応じた個数の第2の不揮発性記憶素子を有する
請求項1〜請求項4のいずれか1項に記載の半導体集積回路のクロック信号調整回路。
【請求項6】
前記救済グループ記憶回路は、前記複数の回路ブロックの遅延故障が発生する確率に応じて決定される前記遅延設定回路の所定数と、前記複数の回路ブロックの個数と、による組み合わせの数に応じた個数の第1の不揮発性記憶素子を有する
請求項1または請求項2に記載の半導体集積回路のクロック信号調整回路。
【請求項7】
遅延設定割当制御回路は、遅延設定割当回路と、遅延制御切替回路とを有し、
前記所定数の遅延設定回路は、それぞれ記憶した前記遅延処理が必要な回路ブロックの遅延値情報を、遅延設定信号として出力し、
前記遅延設定割当回路は、前記遅延設定回路が出力した遅延設定信号を、前記救済グループ記憶回路が記憶した遅延処理が必要な回路ブロックの情報に応じて割り当て、割当遅延設定信号として出力し、
前記遅延制御切替回路は、前記救済グループ記憶回路が記憶した遅延処理が必要な回路ブロックの情報に応じて、前記割当遅延設定信号を前記遅延制御信号として、遅延処理が必要な回路ブロックに対応するクロック遅延回路へ出力する
請求項1〜請求項6のいずれか1項に記載の半導体集積回路のクロック信号調整回路。
【請求項8】
前記制御回路は、前記外部からの設定信号に応じて、前記複数の回路ブロックに対して遅延処理を行う前記遅延試験用の遅延調整信号を出力し、
前記遅延制御切替回路は、前記遅延試験のとき前記遅延調整信号を前記遅延制御信号として出力する
請求項7に記載の半導体集積回路のクロック信号調整回路。
【請求項9】
遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、
前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、
前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、を有する
半導体集積回路のクロック信号調整回路の制御方法であって、
前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行い、
前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報及びその回路ブロックの遅延値情報を記憶し、
その記憶した回路ブロックの情報に対応した前記クロック遅延回路に対して、前記遅延値情報に基づいた遅延制御信号を割り当てる
半導体集積回路のクロック信号調整回路の制御方法。
【請求項10】
前記遅延試験において、遅延処理が必要な回路ブロックの数が、前記複数の回路ブロックの遅延故障が発生する確率に応じて決定される数以上であった場合、救済不可信号を生成する
請求項9に記載の半導体集積回路のクロック信号調整回路の制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−221574(P2011−221574A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−86359(P2010−86359)
【出願日】平成22年4月2日(2010.4.2)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】