(57)【要約】【課題】非常に厳格に制御される入力−出力Ｉ／Ｏタイミング仕様を達成する課題に適用される電気的ヒューズｅＦｕｓｅを提供すること。【解決手段】Ｉ／Ｏタイミングをプログラム可能にして、これにウェハ・プローブ・テストの一環として調整を施す。提示されるパラメータ調整技法は、一般にクロック・スキューイング又はクロック・チューニングと呼ばれる技法に基づく。本発明は、対象パラメータに課される実際のパラメータ限界による機能テストに基づき、ダイごとにクロック・スキューイングを選択するための方法を説明する。各ダイに関する結果は、選択されたクロック・スキュー値を電気的ヒューズを介してダイにハード・プログラミングするための基礎を形成する。【選択図】図３
2005117044.tif 000002
【特許請求の範囲】
【請求項１】
集積回路のデータ入力／出力動作の性能に影響を及ぼすクロック・タイミングを調整するための方法であって、
すべてのデータ動作がテストに合格するまで、クロック遅延を漸増させながら連続的にデータ動作をテストするステップと、
前記データ動作テストに合格する最小クロック遅延を設定するプログラミング・ビットの目標状態を決定するステップと、
前記プログラミング・ビットの目標状態をライトワンス・メモリに書き込むステップと、
前記ライトワンス型メモリに保存された前記プログラミング・ビットに対応するクロック遅延を制御するステップとを含む方法。
【請求項２】
データ端子と、
データ入力、データ出力、及びクロック入力を有するレジスタであって、前記データ入力及びデータ出力の一方は、前記データ端子からデータを受信するように、又は前記データ端子にデータを供給するように接続され、前記データ入力及びデータ出力のもう一方は、前記集積回路の別の部分からデータを受信するように、又は別の部分にデータを供給するように接続され、前記レジスタは、前記クロック入力でクロック・パルスを受信した際に、前記データ入力で受信したデータをサンプリングし、格納するレジスタと、
反復性のクロック・パルスを発生させるクロック源と、
少なくとも１つの遅延ビットを有するライトワンス型メモリであって、各遅延ビットは、未プログラミングのデジタル状態を有し、プログラミング済のデジタル状態に１回のみ変更可能であるライトワンス型メモリと、
前記クロック源からクロック信号を受信する入力、前記少なくとも１つの遅延ビットを受信する制御入力、及び前記レジスタの前記クロック入力に接続される出力を有するクロック遅延素子であって、前記少なくとも１つの遅延ビットの前記デジタル状態に対応する量だけ前記クロック信号を遅延させるクロック遅延素子とを含む集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術分野は、集積回路の入出力のタイミング制御に関する。
【背景技術】
【０００２】
現在のＣＭＯＳ技術によって製作されるマイクロプロセッサ・デバイスは、許容範囲の一方の極限からもう一方の極限まで変動するプロセスシフトに起因する回路性能の変動を把握するのに、細心の注意を払って設計される。設計者たちは、最大駆動能力をもつＭＯＳトランジスタを強いトランジスタ、最小駆動能力をもつＭＯＳトランジスタを弱いトランジスタと呼び習わしている。これらの両極において、トランジスタは特定の処理許容限界内にあり、異なる速度性能をもつデバイスが製造されるにしても、すべての機能デバイスについて利用可能歩留まりを最大化するのが望ましい。通常、性能分布全体にわたる製品の販売を可能にすることは困難ではない。
【０００３】
実際、設計は、可能なパラメータの中でもとりわけ、（ａ）トランジスタ強度、（ｂ）電源電圧許容範囲、（ｃ）配線の抵抗及び静電容量、及び（ｄ）動作温度の観点から分析される。論理回路は、メモリに可能な限り整合しなければならず、インタフェースは、すべてのダイで実用となる程度に最適化すべきである。
【０００４】
送信チップの出力と受信チップの入力の間で適正なインタフェース機能を保証するには、Ｉ／Ｏ設計にかなり厳しい最小−最大伝播遅延限界を課すべきであることが、経験上知られている。信号送信元と信号受信先の両方でラッチ素子が存在し、所望の性能を保証するには、セットアップ時間及びホールド時間要件が満たされなければならない。したがって、与えられた集積回路で、クリティカルな入力での最大セットアップ時間及び最大ホールド時間の仕様は厳格に制御されなければならない。設計が提供し得る制御の程度では、回路性能の全体的な分布においてクリティカルな設計パラメータを満たし得るにはしばしば不十分である。こうした場合、クリティカルな入出力機能の性能を調整する技法が、歩留まりを改善する手段を提供する。
【０００５】
設計／製作／テスト法
従来、クリティカルなＩ／Ｏタイミング仕様に関して、設計者は以下に示す設計特性、すなわち、（ａ）Ｉ／Ｏインタフェース設計／アーキテクチャ、（ｂ）簡略化されたクロック分配、（ｃ）マスタ／スレーブ・プロトコル、（ｄ）Ｉ／Ｏ回路とプロセスの間を調整するアナログ又はデジタル・フェーズ・ロック・ループ機能の使用を含むセルフ・クロッキング技法、（ｅ）低電圧−温度性能変動のために設計されたＩ／Ｏバッファ、（ｆ）厳密なプロセス制御、（ｇ）Ｉ／Ｏテスト選別、及び（ｈ）Ｉ／Ｏ速度／用途による速度分別部品をすべて理解しておく必要がある。こうした設計及び用途上の配慮はすべて、設計／製法の実施の複雑化、及び／又は設計／製法での妥協を招く。
【０００６】
最適Ｉ／Ｏインタフェース性能を実現するための従来の技法
当初、Ｉ／Ｏ性能整合は、チップ配線パターンの修正において、ゲートを追加又は除去して遅延パス内のゲート数を変化させることによって達成された。この手法は、修正されたフォトマスク・レチクルを作成し、修正された製品の製作を完了するのに、多くのコスト及びサイクル・タイムを必要とする。
【０００７】
その後、Ｉ／Ｏ性能調整技法においてレーザ・ヒューズが利用された。多くの所望のＩ／Ｏタイミング調整を達成するため、ダイの中に構築されたレーザ・ヒューズを切断することができる。しかし、レーザ光線を高い信頼性で的確に照射するには、レーザ・ヒューズはチップ領域内で大きくなければならない。
【０００８】
プログラミング用の電気的ヒューズ
電気的ヒューズ（ｅＦｕｓｅ）は、この種のアプリケーションにとって非常に魅力的である。ｅＦｕｓｅは、デジタル・プロセッサ・デバイスに大きな影響を及ぼした。当初、ｅＦｕｓｅは、プログラム可能性を明らかに必要とするデバイスに適用された。デバイスをプログラミングして特定のタスクを効率的に実行させられるようになったことで、妥当なコストの専用プロセッサが現実のものとなった。ヒューズ付き配線リンクの多くは、溶着アモルファス・ポリシリコンなどの材料から作られる。
【０００９】
従来技術では、ＶＬＳＩシリコン・デバイス内の電気的ヒューズ（ｅＦｕｓｅ）は、ヒューズ本体に比較的大きな電力を印加して、ヒューズ本体を溶かし切断することによってプログラミングされる。ｅＦｕｓｅの抵抗値は、この切断によって、切断前の低い抵抗値から切断後の高い抵抗値に変化する。この結果を感知して、ｅＦｕｓｅの状態、すなわち、未切断か切断かを判定することができる。
【００１０】
ｅＦｕｓｅの実装
従来のプログラム可能デバイスを適用例とするｅＦｕｓｅは、時には数百のｅＦｕｓｅとサポート論理回路を含むチェーン又は２次元アレイとして通常は構成される。いくつかの定義を行っておけば、以下で行うｅＦｕｓｅの実装の説明を分かり易くするのに役立つであろう。
【００１１】
ｅＦｕｓｅとは、生成りの未プログラミング状態（ｎａｔｕｒａｌ  ｕｎｐｒｏｇｒａｍｍｅｄ  ｓｔａｔｅ）をもつが、プログラミングすることで反対の状態を永続的に維持できる回路素子のことである。ｅＦｕｓｅ素子は、プログラミング及び感知回路と共にｅＦｕｓｅを含む。ｅＦｕｓｅセルは、ｅＦｕｓｅ素子に加え、ｅＦｕｓｅセルをｅＦｕｓｅチェーンに統合（ｉｎｔｅｇｒａｔｅ）するのに必要なローカル論理回路を含む。ｅＦｕｓｅチェーンとは、列状又はアレイ状に接続された１つ又は複数のｅＦｕｓｅセルのことである。ｅＦｕｓｅコントローラは、ｅＦｕｓｅチェーン又はアレイへのアクセス用に設計された制御論理回路から構成される。未プログラミングのｅＦｕｓｅは、事前定義された最大の低い抵抗値をもつ。プログラミング済のｅＦｕｓｅは、事前定義された最小の高い抵抗値をもつ。ｅＦｕｓｅチェーンをプログラミングするには、まず、チェーン全体の個々の素子に関する記録を格納するプログラミング・データベースに、所望の切断状態及び未切断状態の位置をロードする。その後、それらの値は、各ｅＦｕｓｅに順々にプログラミングされる。
【００１２】
図１には、従来のｅＦｕｓｅセルの回路構成が示されている。この回路構成は、ｅＦｕｓｅ素子１０１に加え、ｅＦｕｓｅ素子をｅＦｕｓｅチェーンに統合するのに必要なローカル論理回路を含む。この論理回路は、Ｅｎａｂｌｅ  Ｃｌｏｃｋ１０８によってクロッキングされ、チェーン内のセル・データを保存するＣＤａｔａフリップフロップ１０３を含む。この論理回路は、Ｄａｔａ  Ｃｌｏｃｋ１０６によって刻時され、ｅＦｕｓｅセルに供給されるプログラム・データをラッチするＰＤａｔａフリップフロップ１０２を更に含む。
【００１３】
プログラム・モードでは、着信したＰＤａｔａ  Ｉｎ１０７は、ＰＤａｔａフリップフロップ１０２にラッチされ、Ｐｒｏｇｒａｍ入力１１０で発生させられた１つ又は複数のプログラム・パルスの出現時にｅＦｕｓｅ素子にプログラミングされる。ＰＤａｔａ  Ｏｕｔは、パス１１６を介してｅＦｕｓｅセルに供給される。プログラム・モードでは、ＰＤａｔａ  Ｏｕｔは、マルチプレクサ１０４、１０５を通過して、ＣＤａｔａフリップフロップ１０３にラッチされる。電圧ＶＰＰ１０９は、プログラミング用の電力源である。プログラム・データは、ＰＤａｔａ  Ｏｕｔ線１１６で、チェーン内の隣接セルに直列に供給される。
【００１４】
テスト・モードでは、ＣＤａｔａフリップフロップ１０３は、現在のセルのデータをラッチし、そのデータをＣｅｌｌ  Ｄａｔａ  Ｏｕｔ１１５に供給する。現在のセルのこのデータは、Ｔｅｓｔ入力１１１によって指示される仕方でマルチプレクサ１０４、１０５を通過する。
【００１５】
Ｉｎｉｔｚ入力１１２は、プログラミング・サイクルの前にセル・チェーン内のすべてのフリップフロップを初期化する働きをもつ。Ｍａｒｇｉｎ入力１１４は、プログラミング素子に対して指定された所望の高い抵抗値を変更できるように、差動増幅器への基準入力を調節可能にする。
【００１６】
図２には、ｅＦｕｓｅコントローラ２００、及び複数の直列接続されたｅＦｕｓｅセル２０１から２０５を有する、従来のｅＦｕｓｅシステムの概略図が示されている。各ｅＦｕｓｅセル２０１から２０５は、セルをｅＦｕｓｅアレイに統合するための図１のローカル論理回路を有する。しかし、セル２０１は、焼き付けられたダイ識別子（ｂｕｒｎｅｄ−ｉｎ  ｄｉｅ  ｉｄｅｎｔｉｆｉｅｒ）（ダイＩＤ）のための記憶域を提供する点で異なっている。アレイの最終ステージ２０５で、ＰＤａｔａ  Ｏｕｔ２０８及びＣＤａｔａ  Ｏｕｔ２０９は、プログラム及びテスト・モードで必要に応じてコントローラに戻される。Ｃｅｌｌ  Ｏｕｔと表記されたノード（例えば、２０６及び２０７）は、プログラム済状態及びソフト・テスト状態の両方で、そのセルの状態を表す単一ビットのデジタル出力を提供する。ソフト・テスト状態は、ヒューズのプログラミング後に確定する状態をエミュレートする非永続的な状態を提供する。
【００１７】
Ｉ／Ｏ設計パラメータ及び仕様
クリティカルなＩ／Ｏタイミング仕様は、以下に示すタイミング・パラメータ、すなわち、信号データ出力の最小伝播遅延であるｔｐｄｍｉｎ、信号データ出力の最大伝播遅延であるｔｐｄｍａｘ、データ入力信号の最小セットアップ時間であるｔｉｓｅｔｕｐｍｉｎ、データ入力信号の最小ホールド時間であるｔｉｈｏｌｄｍｉｎから構成される。これらのタイミング仕様は、表１に示す設計分析の９つのコーナの各々で満たされなければならない。
【００１８】
【表１】
2005117044.tif 000003
一般には、テスト・マシン間の相関、及び反復テストにおける測定値の安定性を考慮した、適切な保護帯域の許容範囲に関する要件も存在する。
【発明の開示】
【発明が解決しようとする課題】
【００１９】
電気的ヒューズ（ｅＦｕｓｅ）は、付加的な処理工程及び高価な装置を必要とせず、Ｉ／Ｏタイミングをプログラミングするのに利用される。これは、ヒューズ切断のサイクル・タイム及びコストを低下させる。電気的ヒューズのプログラミングは、ウェハ・プローブにおいて、テスト・マシン上で電気的に実行される。電気的ヒューズは、ヒューズを実際にプログラミングすることなくＩ／Ｏタイミングの効果をテストできる、ソフト・テスト機能を提供する。したがって、電気的ヒューズは、必要となるコスト及びサイクル・タイムを大幅に低下させつつ、バランスのとれたＩ／Ｏタイミングを達成するのに非常に有効な不揮発性の方法を提供する。提示されるパラメータ調整技法は、一般にクロック・スキューイング又はクロック・チューニングと呼ばれる技法に基づく。本発明は、対象パラメータに課される実際のパラメータ限界による機能テストに基づき、ダイごとにクロック・スキューイングを選択するための方法を説明する。各ダイに関する結果は、選択されたクロック・スキュー値を電気的ヒューズを介してダイにハード・プログラミングするための基礎を形成する。
【００２０】
本発明の上記及びその他の態様について、図面を参照しながら説明する。
【実施例】
【００２１】
本発明は、ダイに関するセットアップ時間、ホールド時間、及び伝播遅延パラメータの測定に基づき、ダイごとに内部クロック・タイミングをプログラム可能に選択し、選択されたクロック・スキューを電気的ヒューズを介してダイにハード・プログラミングする方法を説明する。
【００２２】
こうしたクロック・チューニング技法は、設計／製法の複雑化又は妥協を招くことがない。こうした技法は、一般にクロック・スキューイングと呼ばれ、クロック分配パスの特定のポイントに漸増するクロック遅延を導入することを含む。本発明は、ダイに関して測定されたタイミング・パラメータに基づき、ダイごとにクロック・スキューイングを選択し、選択されたクロック・スキューを電気的ヒューズを介してダイにハード・プログラミングする方法を説明する。
【００２３】
このクロック・チューニング法によって、漸増的に異なるトランジスタ強度をもつダイから製作される高性能デバイスがより広域に分布したとしても、非常に厳格なＩ／Ｏタイミング仕様を満たすことができる。これらのタイミング仕様は、上掲の表１に示す９つの設計分析コーナの各々で満たされなければならない。
【００２４】
図３には、関連する入力及び出力レジスタ・ステージ、関連信号、並びに仕様定義が示された境界３０３をもつプロセッサ・デバイス用の高速Ｉ／Ｏバッファ・ブロック３００が示されている。システム・クロック３１０は、クロック分配幹線３０４によって回路の入力部及び出力部に供給される。高速Ｉ／Ｏバッファブロックの中で最も重要なのは、外部メモリ・インタフェース（ＥＭＩＦ）機能であるが、本明細書で説明するクロック・チューニング調整は、決してＥＭＩＦに限定されるものではない。Ｉ／Ｏバッファ・ステージ３００は、データ入力３０１をバッファリングする入力部と、データ出力３０２をバッファリングする出力部を有する。データ入力３０１は、レジスタ３１１に供給され、入力クロック３１３によって刻時される。入力クロック３１３は、システム・クロック３１０の遅延形式である。レジスタに供給されたデータ入力は、着信データ３０７という表記で示されている。遅延素子３１５は、ｅＦｕｓｅプログラム入力３１７によって制御される。発信データ３０８は、レジスタ３１２に供給され、出力クロック３１４によってクロッキングされる。出力クロック３１４は、システム・クロック３１０の遅延形式である。遅延素子３１６は、ｅＦｕｓｅプログラム入力３１８によって制御される。レジスタ３１２を出たデータは、バッファリングされ、データ出力ノード３０２に供給される。
【００２５】
高速Ｉ／Ｏブロックの非常に重要な仕様には、信号データ出力の最小伝播遅延であるｔｐｄｍｉｎ、信号データ出力の最大伝播遅延であるｔｐｄｍａｘ、データ入力信号の最小セットアップ時間であるｔｉｓｅｔｕｐｍｉｎ、データ入力信号の最小ホールド時間であるｔｉｈｏｌｄｍｉｎがある。
【００２６】
セットアップ時間は、データ入力３０１からシステム・クロック３１０までの時間として測定されるが、この実際に測定されるセットアップ時間は、システム・クロック３１０に対する遅延増加分を遅延素子３１５を介して入力クロック３１３に追加することによって調整することができる。言い換えれば、データ入力３０１と内部入力クロック３１３の間のセットアップ時間は、遅延素子３１５によってどれだけの遅延が導入されても一定に維持されるが、データ入力３０１と実際の外部クロック・ノード３１０の間のセットアップ時間は、付加的な遅延が遅延素子３１５で追加されるにつれて短くなる。これは、入力クロックがより遅い時間にノード３１３に到着するならば、データ入力３０１もより遅い時間に到着するためである（外部的に測定されるセットアップ時間はより短い）。
【００２７】
同様に、ホールド時間は、データ入力３０１からシステム・クロック３１０までの時間として測定されるが、この実際に測定されるホールド時間は、システム・クロック３１０に対する遅延増加分を遅延素子３１５を介して入力クロック３１３に追加することによって調整することができる。言い換えれば、データ入力３０１と内部入力クロック３１３の間のホールド時間は、遅延素子３１５によってどれだけの遅延が導入されても一定に維持されるが、データ入力３０１と実際の外部クロック・ノード３１０の間のホールド時間は、付加的な遅延が遅延素子３１５で追加されるにつれて長くなる。これは、入力クロック３１３がより遅い時間にノード３１３に到着するならば、データ入力３０１はより長い時間有効であり続けるからである（外部的に測定されるホールド時間はより長い）。
【００２８】
図４には、これらの調整の様子がタイミング図で示されている。システム・クロック４０１は、遅延素子３１５の遅延が０に設定されるならば、データ入力エッジ４２１に対してセットアップ時間４１１をもつであろう。遅延素子３１５で遅延させた入力遅延１クロック４０２を代わりに入力クロックとして用いた場合、セットアップ時間は４１２になる（データ入力エッジ４２２に対するシステム・クロック４０１）。遅延素子３１５でより長く遅延させた入力遅延２クロック４０３を代わりに入力クロックとして用いた場合、セットアップ時間は４１３になる（データ入力エッジ４２３に対するシステム・クロック４０１）。したがって、遅延素子３１５で追加された遅延が、システム・クロック・エッジ４０１に対して測定されるセットアップ時間から直接的に差し引かれる。
【００２９】
システム・クロック４０４は、遅延素子３１５の遅延が０であるならば、データ入力エッジ４２６に対してホールド時間４１４をもつ。入力クロックが遅延素子３１５で遅延させられて遅延１クロック４０５となった場合、ホールド時間は４１５になる（データ入力エッジ４２５に対するシステム・クロック４０１）。更に、入力クロックが遅延素子３１５でより長く遅延させられて遅延２クロック４０６となった場合、ホールド時間は４１６になる（データ入力エッジ４２４に対するシステム・クロック４０１）。したがって、遅延素子３１５で追加された遅延が、システム・クロック・エッジ４０４に対して測定されるホールド時間を直接的に増加する。入力クロック遅延の調整によるこのセットアップ時間とホールド時間の反対方向への調整は、２つのパラメータがまたプロセス許容シフトに関して反対の仕方で変化するので、セットアップ時間とホールド時間を最大仕様限界内に収束させるのにまさに望ましい。
【００３０】
図３に戻ると、伝播遅延時間は、システム・クロック３１０からデータ出力３０２までの時間として測定されるが、この実際に測定される伝播遅延時間は、システム・クロック３１０に対する遅延増加分を遅延素子３１６を介して出力クロック３１４に追加することによって調整することができる。遅延素子ブロック３１６で導入された追加遅延が、システム・クロック３１０とデータ出力ノード３０２の間の伝播遅延時間を直接的に増加する。
【００３１】
この様子は、図４のタイミング図にも示されている。システム・クロック４０７は、遅延素子３１６の遅延が０であるならば、データ出力エッジ４２７に対して伝播遅延時間４１７をもつ。出力クロックが遅延素子３１６で遅延させられて遅延１クロック４０８となった場合、伝播遅延時間は４１８になる（データ出力エッジ４２８に対するシステム・クロック４０７）。出力クロックが遅延素子３１６でより長く遅延させられて遅延２出力クロック４０９となった場合、伝播遅延時間は４１９になる（データ出力エッジ４２９に対するシステム・クロック４０７）。したがって、遅延素子３１６で追加された遅延が、伝播遅延時間を直接的に増加する。
【００３２】
図５には、クリティカルな設計パラメータごとに、その仕様限界までの余裕（縦軸）が、製作したトランジスタの強度の相対的変化（横軸）に対してどう変化するかが示されている。ｔｄｍａｘ及びｔｄｍｉｎに影響するトランジスタ強度の違いによる伝播遅延時間の変化が、曲線５０１及び５０２としてそれぞれ与えられている。ホールド時間のパラメータ性能に関する２つの別個の設計ａ及びｂが、曲線５０３及び５０４としてそれぞれ示されている。それに対応するセットアップ時間のパラメータ性能に関する２つの別個の設計ａ及びｂが、曲線５０５及び５０６としてそれぞれ示されている。これらは、２つのタイプの入力回路におけるわずかに異なる要件に相当し得る。
【００３３】
曲線を見ながら、２つの例について考察する。公称トランジスタ強度の場合、曲線５０１（ｔｄｍａｘ）と公称トランジスタ強度の交点５０７では、ｔｄｍａｘ仕様の余裕は＋０．９ナノ秒を示す。弱いトランジスタ強度の場合、曲線５０２（ｔｄｍｉｎ）と弱いトランジスタ強度の交点５０８では、ｔｄｍｉｎ仕様の余裕は＋１．５５ナノ秒を示す。
【００３４】
図６には、図３の機能ブロック３１５及び３１６の各々のための遅延素子の構造が示されている。システム・クロック入力は、６００として示されている。４つのクロック・パスは、２つのインバータと、それに加えＭ個又はＭの倍数個の追加遅延用のインバータ（それぞれ６０４、６０７、６１０で示す）を含むことができ、例えば、最小遅延（６０１、６０２）から最大遅延（６０９、６１０、６１１）までそれぞれ異なる伝播遅延をもつ。遅延の増分は、より長いパスほど累加的に追加されるＭ個のインバータ（例えば、Ｍ＝６）による遅延によって決定される。ｅＦｕｓｅ素子は、マルチプレクサがプログラミングされたクロック遅延を選択できるようにコード形式の入力６１２を提供して、入力クロック６１３（図３の３１３）又は出力クロック６１３（図３の３１４）を選択する。図６には、主として２つの選択入力６１２によって選択される４つのパスが示されている。これをより多くのパスに拡張できること、例えば、３つの選択線を用いた場合、パスを最大８つまで拡張でき、その際に１つ又は複数の不許可状態が選択コードに含まれることは明らかであろう。
【００３５】
図７には、個々のダイでメモリ・テストを行って、ｅＦｕｓｅ駆動Ｉ／Ｏプログラミング信号の最適なプログラミングを決定するための本発明の手順が示されている。ブロック７０１では、最高速度のＩ／Ｏ入力クロック及び最高速度の出力クロックが決定される。この反復は、ソフト・ヒューズによってプログラミングされる。ブロック７０２では、このテスト反復＃１についての全体的なＩ／Ｏテストが実行される。判定７０３では、Ｉ／Ｏが全体的に正しく動作するかどうかが判定される。Ｉ／Ｏが全体的に正しく動作する（判定７０３でＹｅｓと判定される）場合、ブロック７１４で、この反復のプログラミングが保存される。Ｉ／Ｏが全体的に正しく動作しない（判定７０３でＮｏと判定される）場合、ブロック７０５に進み、次のより遅い速度レベルの反復＃２でソフト・テストが行われる。
【００３６】
ブロック７０６では、このテスト反復＃２についての別の全体的なＩ／Ｏテストが実行される。判定７０７では、反復＃２に関してＩ／Ｏが全体的に正しく動作するかどうかが判定される。Ｉ／Ｏが全体的に正しく動作する（判定７０７でＹｅｓと判定される）場合、ブロック７１４で、このプログラミングの選択が保存される。Ｉ／Ｏが全体的に正しく動作しない（判定７０７でＮｏと判定される）場合、フローは次のより遅い速度レベルの次の反復に進む。以上の処理は、Ｉ／Ｏが全体的に正しく動作するか、又はブロック７０９で最低速度レベルの最終反復＃Ｚに到達するまで繰り返される。ブロック７１０では、最後の全体的なＩ／Ｏテストが実行される。最後の判定７１１では、Ｉ／Ｏが全体的に正しく動作するかどうかが判定される。Ｉ／Ｏが全体的に正しく動作する（判定７１１でＹｅｓと判定される）場合、ブロック７１４で、このプログラミングの選択が保存される。Ｉ／Ｏが全体的に正しく動作しない（判定７１１でＮｏと判定される）場合、その集積回路は不合格とされる。ダイのテストは、ブロック７１４から図８のフローに進む。
【００３７】
図８には、ウェハ・テストを行い、且つ与えられたダイにすべてのｅＦｕｓｅをプログラミングする手順が示されている。ブロック８００は、図７のフローチャートに示されるＩ／Ｏテストに相当する。ブロック８０１では、所望のＩ／Ｏ及び所望の非Ｉ／Ｏプログラミング・データが読み出され、ｅＦｕｓｅコントローラ（図２の２００を参照）に供給される。ブロック８０２では、ソフト・プログラミング機能を用いて、プログラミング・データがｅＦｕｓｅチェーンに適用される。ブロック８０３では、全体的な歩留まりについて、ダイごとに非Ｉ／Ｏ  ｅＦｕｓｅプログラミングの評価が行われる。ブロック８０４では、最適なプログラミング選択肢が選択される。
【００３８】
ブロック８０５から、最後のプログラミング操作が開始される。ブロック８０６では、各チェーンのｅＦｕｓｅにプログラム・パルスを与え、再生されたプログラム・データ入力に従ってｅＦｕｓｅを切断する。ブロック８０７では、プログラム結果が読み出され、所望のデータと比較される。ブロック８０８では、ｅＦｕｓｅの結果が満足し得るものかどうか判定される。すべてのｅＦｕｓｅが適正にプログラミングされた（判定８０８でＹｅｓと判定された）場合、フローはパス８１０を介してプログラミング完了ブロック８１１に進む。適正にプログラミングされなかったｅＦｕｓｅがある（判定８０８でＮｏと判定された）場合、フローはパス８０９を介してブロック８０５に戻り、プログラミングされるべきであったのに誤ってプログラミングされずに残っているｅＦｕｓｅをプログラミングするためのコマンドが再生される。
【００３９】
以上の説明に関して更に以下の項を開示する。
（１）集積回路のデータ入力／出力動作の性能に影響を及ぼすクロック・タイミングを調整するための方法であって、
すべてのデータ動作がテストに合格するまで、クロック遅延を漸増させながら連続的にデータ動作をテストするステップと、
前記データ動作テストに合格する最小クロック遅延を設定するプログラミング・ビットの目標状態を決定するステップと、
前記プログラミング・ビットの目標状態をライトワンス・メモリに書き込むステップと、
前記ライトワンス型メモリに保存された前記プログラミング・ビットに対応するクロック遅延を制御するステップとを含む方法。
（２）前記プログラミング・ビットの目標状態を決定するステップの後、且つ前記プログラミング・ビットの目標状態をライトワンス・メモリに書き込むステップの前に、
前記プログラミング・ビットの目標状態をリード／ライト型メモリに保存するステップと、
前記リード／ライト型メモリに保存された前記プログラミング・ビットの目標状態に対応する前記クロック遅延を制御しながら、前記集積回路のメモリ以外の部分をテストするステップと、
前記メモリ以外の部分が前記テストに不合格となるかどうかを判定するステップと、
前記メモリ以外の部分が前記テストに合格するまで、前記クロック遅延を漸増させながら、前記保存、テスト、及び判定ステップを繰り返すステップを更に含む、（１）に記載の方法。
（３）前記プログラミング・ビットの目標状態を前記ライトワンス型メモリに書き込む前記ステップが、
目標状態が第１のデジタル状態である各プログラミング・ビットにプログラミング電圧を印加するステップと、
目標状態が前記第１のデジタル状態である各プログラミング・ビットが前記第１のデジタル状態になっているかどうかを判定するステップと、
目標状態が前記第１のデジタル状態でありながら第２の反対のデジタル状態になっている各プログラミング・ビットに前記プログラミング電圧を印加するステップと、
目標状態が前記第１のデジタル状態であるすべてのプログラミング・ビットが前記第１のデジタル状態になるまで、前記判定ステップ、及び目標状態が前記第１のデジタル状態でありながら前記第２のデジタル状態になっている各プログラミング・ビットに前記プログラミング電圧を印加する前記ステップを繰り返すステップを含む、（１）に記載の方法。
（４）前記プログラミング・ビットの目標状態をライトワンス型メモリに書き込む前記ステップが、特定のダイの識別コードに関係するプログラミング・ビットを書き込むステップを含む、（１）に記載の方法。
（５）データ端子と、
データ入力、データ出力、及びクロック入力を有するレジスタであって、前記データ入力及びデータ出力の一方は、前記データ端子からデータを受信するように、又は前記データ端子にデータを供給するように接続され、前記データ入力及びデータ出力のもう一方は、前記集積回路の別の部分からデータを受信するように、又は別の部分にデータを供給するように接続され、前記レジスタは、前記クロック入力でクロック・パルスを受信した際に、前記データ入力で受信したデータをサンプリングし、格納するレジスタと、
反復性のクロック・パルスを発生させるクロック源と、
少なくとも１つの遅延ビットを有するライトワンス型メモリであって、各遅延ビットは、未プログラミングのデジタル状態を有し、プログラミング済のデジタル状態に１回のみ変更可能であるライトワンス型メモリと、
前記クロック源からクロック信号を受信する入力、前記少なくとも１つの遅延ビットを受信する制御入力、及び前記レジスタの前記クロック入力に接続される出力を有するクロック遅延素子であって、前記少なくとも１つの遅延ビットの前記デジタル状態に対応する量だけ前記クロック信号を遅延させるクロック遅延素子とを含む集積回路。
（６）前記データ端子に接続される入力、及び前記レジスタの前記データ入力に接続される出力を有するバッファを更に含む、（５）に記載の集積回路。
（７）前記クロック遅延素子が、
各遅延パスが前記クロック源に接続される入力、出力、及び独自の遅延量を有する複数の遅延パスと、
入力の１つが対応する遅延パスの前記出力に接続される複数の入力、前記レジスタの前記クロック入力に接続される出力、及び前記少なくとも１つの遅延ビットを受信する制御入力を有するマルチプレクサであって、前記少なくとも１つの遅延ビットに対応する前記複数の入力のうちの１つの入力を前記出力で選択するマルチプレクサとを含む、（５）に記載の集積回路。
（８）前記クロック遅延素子の各遅延パスが、前記独自の遅延量に対応する数の複数のインバータを含む、（７）に記載の集積回路。
（９）前記データ端子は、入力端子であり、前記レジスタは、前記入力端子からデータを受信するように接続される前記データ入力、及び前記集積回路の別の部分にデータを供給するように接続される前記データ出力を有する入力レジスタであり、前記少なくとも１つの遅延ビットは、少なくとも１つの入力遅延ビットであり、前記クロック遅延素子は、入力クロック遅延素子であり、前記少なくとも１つの遅延ビットの前記デジタル状態に対応する量だけ前記クロック信号を遅延させる前記入力クロック遅延素子が、
データ端子と、
前記集積回路の別の部分からの発信データを受信する入力、クロック入力、及び前記データ端子に接続される出力を有する出力レジスタであって、前記クロック入力でクロック・パルスを受信した際に、前記データ入力で受信したデータをサンプリングし、格納する出力レジスタと、
少なくとも１つの出力遅延ビットを更に有する前記ライトワンス型メモリであって、各出力遅延ビットは、未プログラミングのデジタル状態を有し、プログラミング済のデジタル状態に１回のみ変更可能である前記ライトワンス型メモリと、
前記クロック源から前記クロック信号を受信する入力、前記少なくとも１つの出力遅延ビットを受信する制御入力、及び前記出力レジスタの前記クロック入力に接続される出力を有する出力クロック遅延素子であって、前記少なくとも１つの出力遅延ビットの前記デジタル状態に対応する量だけ前記クロック信号を遅延させる出力クロック遅延素子とを含む、（５）に記載の集積回路。
（１０）電気的ヒューズｅＦｕｓｅを、非常に厳格に制御される入力−出力Ｉ／Ｏタイミング仕様を達成する課題に適用する。Ｉ／Ｏタイミングをプログラム可能にして、これにウェハ・プローブ・テストの一環として調整を施す。提示されるパラメータ調整技法は、一般にクロック・スキューイング又はクロック・チューニングと呼ばれる技法に基づく。本発明は、対象パラメータに課される実際のパラメータ限界による機能テストに基づき、ダイごとにクロック・スキューイングを選択するための方法を説明する。各ダイに関する結果は、選択されたクロック・スキュー値を電気的ヒューズを介してダイにハード・プログラミングするための基礎を形成する。
【図面の簡単な説明】
【００４０】
【図１】ｅＦｕｓｅ素子に加え、ｅＦｕｓｅセルをｅＦｕｓｅチェーンに統合するのに必要なローカル論理回路から構成される、従来のｅＦｕｓｅセルの回路構成を示した図である（従来技術）。
【図２】ｅＦｕｓｅコントローラ、及びｅＦｕｓｅアレイに統合された複数の直列接続されたｅＦｕｓｅセルを有する、従来の簡単なｅＦｕｓｅシステムを示した図である（従来技術）。
【図３】プロセッサ・デバイス用のＩ／Ｏバッファ・ブロック、関連する入力及び出力レジスタ・ステージ、関連信号、並びに仕様定義を示した図である。
【図４】本発明のＩ／Ｏトリミング操作のための、セットアップ時間、ホールド時間、及び伝播遅延を示したタイミング図である。
【図５】高速Ｉ／Ｏ機能におけるセットアップ時間、ホールド時間、及び伝播遅延の変動、並びにトランジスタ強度に応じて仕様までの余裕が変化する様子を示した図である。
【図６】セットアップ時間、ホールド時間、及び伝播遅延を調整する目的で入力クロック及び出力クロックのタイミングをスキューするのに、マルチプレクサによって選択されるプログラム可能クロック・パスを用いる考え方を示した図である。
【図７】Ｉ／Ｏ回路の最適なｅＦｕｓｅプログラミング状態を決定する目的で個々のダイのＩ／Ｏテストを遂行する際の、本発明によって指示される手順を示した図である。
【図８】プログラム可能回路の残りの部分の最適なｅＦｕｓｅプログラミング状態を決定する目的で個々のダイの非Ｉ／Ｏテストを遂行する際の、本発明によって指示される手順を示した図である。
【符号の説明】
【００４１】
１０１  ｅＦｕｓｅ素子
１０２  ＰＤａｔａフリップフロップ
１０３  ＣＤａｔａフリップフロップ
１０４  マルチプレクサ
１０５  マルチプレクサ
１０６  Ｄａｔａ  Ｃｌｏｃｋ
１０７  ＰＤａｔａ  Ｉｎ
１０８  Ｅｎａｂｌｅ  Ｃｌｏｃｋ
１０９  電圧ＶＰＰ
１１０  Ｐｒｏｇｒａｍ入力
１１１  Ｔｅｓｔ入力
１１２  Ｉｎｉｔｚ入力
１１３  Ｃｅｌｌ  Ｄａｔａ  Ｉｎ
１１４  Ｍａｒｇｉｎ入力
１１５  Ｃｅｌｌ  Ｄａｔａ  Ｏｕｔ
１１６  ＰＤａｔａ  Ｏｕｔ
１１８  Ｆｕｓｅ  Ｏｕｔｐｕｔ
２００  ｅＦｕｓｅコントローラ
２０１  ｅＦｕｓｅセル
２０２  ｅＦｕｓｅセル
２０３  ｅＦｕｓｅセル
２０４  ｅＦｕｓｅセル
２０５  ｅＦｕｓｅセル
２０６  Ｃｅｌｌ  Ｏｕｔ
２０７  Ｃｅｌｌ  Ｏｕｔ
２０８  ＰＤａｔａ  Ｏｕｔ
２０９  ＣＤａｔａ  Ｏｕｔ
３００  Ｉ／Ｏバッファ・ステージ
３０１  データ入力
３０２  データ出力
３０３  境界
３０４  クロック分配幹線
３０７  着信データ
３０８  発信データ
３１０  システム・クロック
３１１  レジスタ
３１２  レジスタ
３１３  入力クロック
３１４  出力クロック
３１５  遅延素子
３１６  遅延素子
３１７  ｅＦｕｓｅプログラム入力
３１８  ｅＦｕｓｅプログラム入力
４０５  遅延１クロック
４０６  遅延２クロック
４０７  システム・クロック
４０８  遅延１クロック
４０９  遅延２クロック
４１１  セットアップ時間
４１２  セットアップ時間
４１３  セットアップ時間
４１４  ホールド時間
４１５  ホールド時間
４１６  ホールド時間
４１７  伝播遅延時間
４１８  伝播遅延時間
４１９  伝播遅延時間
４２１  データ入力エッジ
４２２  データ入力エッジ
４２３  データ入力エッジ
４２４  データ入力エッジ
４２５  データ入力エッジ
４２６  データ入力エッジ
４２７  データ出力エッジ
４２８  データ出力エッジ
４２９  データ出力エッジ
５０５  ｔｉｓｅｔｕｐ曲線（ａ）
５０６  ｔｉｓｅｔｕｐ曲線（ｂ）
５０７  ｔｄｍａｘ曲線と公称トランジスタ強度の交点
５０８  ｔｄｍｉｎ曲線と弱いトランジスタ強度の交点
６００  システム・クロック入力
６０１  インバータ
６０２  インバータ
６０３  インバータ
６０４  追加遅延用インバータ
６０５  インバータ
６０６  インバータ
６０７  追加遅延用インバータ
６０８  インバータ
６０９  インバータ
６１０  追加遅延用インバータ
６１１  インバータ
６１２  選択入力
６１３  入力クロック／出力クロック
【図１】
2005117044.tif 000004
【図２】
2005117044.tif 000005
【図３】
2005117044.tif 000006
【図４】
2005117044.tif 000007
【図５】
2005117044.tif 000008
【図６】
2005117044.tif 000009
【図７】
2005117044.tif 000010
【図８】
2005117044.tif 000011