"回路であって、トリム値に依存する周波数を有する較正可能な出力クロック信号を生成する弛張発振器を含むクロック生成回路と、基準クロック信号と較正可能なクロック信号から導き出されたフィードバッククロック信号とを受け取り、かつフィードバッククロック信号が基準周波数よりも高いかまたは低い周波数を有するか否かの指示を提供するように接続された周波数比較回路と、トリム値調整回路であって、前記指示を受け取り、かつこれに応じ、初期/デフォルトトリム値から始めて、トリム値をより高くまたはより低く調整するように接続されたアップダウンカウンタと、最小最大ロジックであって、アサートされたイネーブル信号に応じてトリム値の最小値および最大値を判断し、かつディアサートされたイネーブル信号に応じてトリム値の最小値および最大値から導き出された値にトリム値を設定する最小最大ロジックと、を含むトリム値調整回路と、を備える回路。請求項1記載の回路において、前記クロック生成回路は、トリム値を受け取り、トリム値に依存する電流値を生成し、かつ電流値を前記弛張発振器へ供給するように接続された電流源をさらに含む回路。請求項2記載の回路において、前記クロック生成回路は、前記弛張発振器へ電圧供給を提供するように接続された電圧調整回路と、前記電圧調整回路と前記弛張発振器回路とへ基準電圧を供給するように接続された基準生成回路と、をさらに含む回路。請求項2記載の回路において、前記弛張発振器は、電流源から電流を受け取るようにそれぞれ接続された第1のキャパシタと第2のキャパシタとを含む回路。請求項1記載の回路において、較正可能な出力クロック信号を受け取り、かつこの信号から分割済みフィードバッククロック信号を生成するように接続された周波数分割器をさらに備える回路。請求項1記載の回路において、前記基準クロック信号は、外部から供給される回路。弛張発振器からクロック信号を生成するクロック回路の周波数を較正する方法であって、初期トリム値を受け取るステップと、次のプロセスを繰り返し遂行するステップであって、トリム値に依存する周波数を有するクロック信号を前記弛張発振器により生成することと、クロック信号の周波数と基準クロック周波数値との比較を遂行することと、前記比較に基づきトリム値を調整することと、を含むプロセスを繰り返し遂行するステップと、前記プロセスを複数回遂行した後に、その過程で、トリム値の最大値および最小値を判断するステップと、最大および最小トリム値に基づき最終トリム値を設定するステップと、を含む方法。請求項7記載の方法において、電流源にてトリム値を受け取るステップと、電流源にてトリム値に依存する電流値を生成するステップと、電流値を前記弛張発振器へ供給するステップと、をさらに含む方法。請求項8記載の方法において、電圧調整回路から前記弛張発振器へ電圧供給を提供するステップと、基準生成回路から前記電圧調整回路と前記弛張発振器回路とへ基準電圧を供給するステップと、をさらに含む方法。請求項8記載の方法において、前記弛張発振器は、第1のキャパシタと第2のキャパシタとを含み、前記方法は、電流源から前記第1および第2のキャパシタにて電流を受け取るステップをさらに含む方法。請求項7記載の方法において、周波数分割器にてクロック信号を受け取るステップと、前記周波数分割器にてクロック信号から分割済みフィードバッククロック信号を生成するステップと、をさらに含み、クロック信号の周波数と基準クロック周波数値との比較は、分割済みフィードバッククロック信号を基準クロック周波数に比較する方法。請求項7記載の方法において、前記基準クロック信号は、外部から供給される方法。以下、プロセス非依存性、自己較正型、弛張発振器式クロックソースの手法および回路を提示する。フェーズロックループPLLを使用する場合に比べて、弛張発振器式クロックソースを使用する場合には省スペース、低コストという利点がある。弛張発振器はこれまで様々な用途に利用されてきたが、プロセス変動のため、比較的不正確になる傾向があり、正確に較正するには比較的長い時間がかかる。例えば、典型的な先行技術構成の場合では、弛張発振器のプロセス変動に対処するのに必要となる較正時間は約1、2秒であり、較正にあたっては高帯域オシロスコープ等の外部装置が必要となる。ここに提示する手法および回路なら、例示的な実施形態において較正にかかる時間を約数百マイクロ秒まで大幅に短縮でき、外部装置を必要としない。この方法によって試験時間が大幅に短縮されるため、試験にかかる費用と最終製品の価格も抑えられる。ここに提示する手法および回路は幅広く応用できるが、特にサイズが小さいデバイス、大量に生産される製品、またはその両方の用途に有利である。例えば、不揮発性メモリカードがこれにあたる。特にマイクロSD、SD、メモリスティック、またはコンパクトフラッシュ登録商標カード等、コントローラのための正確なクロックソースを必要とするフォームファクタが小さいものである。不揮発性メモリカードと関連するデバイスの詳細は、米国特許第5,887,145号特許文献1、第6,040,622号特許文献2、第6,279,114号特許文献3、第6,820,148号特許文献4、第6,901,457号特許文献5、第7,090,124号特許文献6、第7,305,535号特許文献7、および第7,364,090号特許文献8、米国公開特許出願第2004/0064612号特許文献9、第2004/0215996号特許文献10、ならびに2009年9月15日に出願された国際特許出願第PCT/IB2009/006841号特許文献11で確認できる。図1は、外部基準クロックを必要としない弛張発振器式クロックソース100の一例のブロック図である。入力トリム値Strimを設定することにより、出力クロック信号CLKの所望の周波数を速やかに数百nS、かつ正確に設定できる。この例で、トリム値Strim<6:0>はIDAC101へ供給される7ビット値である。電流源IDAC101はまた、基準電流Irefを受け取り、トリムビットStrim<6:0>に従ってこれを乗算し、発振器111のための充電電流IOscを提供する。トリム信号はIOscの値を決定し、IOscの値はクロック信号CLKの周波数を決定し、一定の周波数範囲、例えば100MHz~250MHzにわたり、クロック周波数を正確に設定することを可能にして、この回路を多数の用途に応用することを可能にする。クロック回路100はまた、発振器111のためのイネーブル信号Clk_Enを受け取る。これはIDAC101にも供給される。ローカル電圧基準生成回路VRefGen103は、例えばバンドギャップデバイスによって提供される正確な基準入力Vbgを受け取り、ローカル調整器105のための基準電圧VRef1と発振器111のための基準電圧VRef2を提供する。ローカル電圧調整器OscReg105は、入力供給電圧変動この例では1.6V~3.6Vにわたって周波数変動を低減するため、例えば1.2ボルトのローカル供給Vdd_locを発振器111に提供し、供給電圧変動耐性を提供する。2009年12月8日に出願された米国特許出願第12/632,998号特許文献12と2010年1月25日に出願された米国特許出願第12/693,228号特許文献13には、ここで適用される電圧調整回路の詳細と例が提示されている。図1の実施形態はここで説明するクロック回路の例示的な実施形態として解釈できるが、他の弛張発振器式クロック回路を使用することもできる。図2は弛張発振器111の例示的な実施形態のブロック図であるが、図1と同様、他の実施形態を使用することもできる。かかる弛張発振器において、2つの比較器Comp0201およびComp1211とSRラッチとにより、2つのキャパシタC0203およびC1213を充電および放電することにより、出力クロックCLKが生成される。SRラッチは、交差結合されたNANDゲート221および223とインバータ225とから形成される。定電流源IOscはIDAC101からキャパシタC0203を充電する。キャパシタC0203の電圧vcap1がVrefGen103からの基準レベルVref2に達すると、比較器Comp0201はRSラッチを設定するが、Comp0201の出力における波形に見られるように、信号はNANDゲート223の入力に設定される。ラッチの出力231による反転後は図に示された波形を持つクロック信号CLKである。信号CLKはインバータ229を出力の波形を図に示す通過し、別のキャパシタC1213の充電操作を開始するため、トランジスタT1215のゲートに印加される。ラッチの出力反転CLK信号はまた、トランジスタT0205のゲートに印加され、キャパシタC0203を放電する。第2のキャパシタC1213の電圧vcap2波形を図に示すが基準レベルに達すると、比較器Comp1211はRSラッチをリセットする。このように、ラッチの出力はキャパシタC0203の充電操作を開始し、キャパシタC1213を放電する。その結果、ラッチの出力では連続クロック信号CLKが生成される。基本発振周波数fCLKはfCLK=IOsc/2CVRef2によって与えられ、この式でCはC0およびC1のキャパシタンスである。このため、クロック周波数は充電電流IOscとC1203およびC2213のキャパシタ値Cに左右される。トリム値Strim<6:0>に基づき設定される充電電流を制御することにより、発振器の周波数はトリムされる。このようなアーキテクチャを使用する設計の場合、プロセス依存性による出力クロック周波数変動は非常に大きくなる。図3は、この周波数変動を弛張発振器のDAC制御ビットおよびプロセスコーナーとともに示す。縦軸はクロック周波数であり、横軸はStrim<60>の7ビット入力値であり、発振器の実際の挙動が示されている。公称プロセス値典型的なプロセスコーナー、TT_27の場合の発振器の挙動は線301によって示されている。DACプログラミングビットが7ビット入力値で変動するにつれ、周波数は約90MHzから約320MHzの範囲におよぶ。線303は一対の高速プロセスコーナーFF_-40、FF_125の場合の周波数対プログラミングビット挙動を示し、線305は一対の低速プロセスコーナーSS_-40、SS_125の場合の周波数対プログラミングビット挙動を示している。250MHzの所望の周波数で公称デバイスのStrim値は79である。これは図3の表1に示され、ここで例示されたプロセスコーナーでビット79に対応する周波数が示されている。低速コーナーの場合、これは40MHzより高く所望の250MHz未満である。高速コーナーの場合、周波数は50MHz余り高くなる。反対に、表2は図に示されたプロセス変動にわたり所望の250MHzを提供するにあたって必要とされるビット値を示している。較正される必要があるのはこのStrim値である。この周波数変動に対処するため、図2に見られる弛張発振器のキャパシタC0203およびC1213を充電および放電するために使われる電流Ioscは、図1に見られるIDAC101を使用し生成される。そのような弛張発振器を較正する一手法ではバイナリ探索法を使用する。この方法で適正な周波数に達するまでの繰り返し数はDACにおけるプログラム可能なビットStrimの数に等しい。例えば、7ビットの例示的な設計で適正な出力周波数を得るには7回の繰り返しが必要となる。マルチダイサイト較正を行う必要がある場合は、全サイトの出力周波数を測定し、異なるサイトをそれぞれのプロセスコーナーに応じて異なるDACビットでプログラムするのに多大な時間を要する。この較正プロセスを自動化するため、図5には図4の回路の過渡応答が示されている。図4は、位相周波数検出器PFDと最小最大ロジックとを内蔵する弛張発振器較正回路400の例示的な実施形態のブロック図である。PFDと最小最大ロジックは標準的な実施例だが、PFDの代わりに他の周波数のみ検出器ブロックを使用することもできる。弛張発振クロックソース発振器100は、図1および2について前に述べたようなものであってよい。入力は、トリム値Strim<6:0>と、図1のクロックイネーブル信号Clk_Enに対応するシステムイネーブル信号SysEnである。この例示的な実施形態では7ビットトリム値を使用するが、要求される必要範囲、精度、またはその両方に応じて別の値を使用することもできる。図4では、図1の基準電流Irefや参照電圧Vbg等、ここでの説明に関係しない他の入力は説明を簡潔にするために表示されていない。既に述べたように、発振器100はStrimの値に基づきクロック信号CLKを生成する。図4の他の構成要素はStrim<6:0>の値を較正するために使用される。Strimの値はアップダウンカウンタ/最小最大ロジック405で決定される。回路405は初期/デフォルトトリム値Initial_Trim<6:0>を受け取り、UPおよびDN入力に基づきトリム値を上げ下げする。回路405はまた、基準クロックClk_refと、システムイネーブル信号SysEnと、クロック較正イネーブル信号Clk_Cal_Enと、モジュールイネーブル信号ModEnとを受け取る。これらの信号は、後述するように較正中にトリム値を調整するために使用される。トリム値を一度に1ビットずつ変化させるために使用されるトリム調整値UPおよびDNは、周波数位相検出器PFD407から供給される。周波数位相検出器PFD407の入力は、基準クロック値Clk_ref、較正イネーブル信号Clk_Cal_En、ならびにClkからのフィードバッククロック信号である。PFD407は値CLKを基準値に比較するために使用されるが、Clkの所望の周波数は基準値Clk_refと異なる場合があるので、発振器100からクロック信号Clkを受け取るためにフィードバック分割回路403を含めることができる。Clk_Cal_Enによってイネーブルされると、フィードバック分割回路403は適切なクロック周波数fb_clkをPFD407へ提供する。較正プロセスは、デバイスの出荷前、例えば試験時に遂行できる。デフォルト制御ビットから始まり、公称プロセスコーナーTT_27に対応するInitial_Trim<6:0>は該当するノードへ転送され、クロックブロック100の発振器は出力周波数を生成する。この出力周波数は製造されるシリコンコーナーに依存し、所望の公称値より高くなるかまたは低くなることがある。制御信号ClkCalEnがイネーブルされるとハイになると、位相周波数検出器PFD407は、テスター基準クロックClk_ref例えば、JTAGテストクロックと分割済み出力クロックfb_clkとの比較を開始する。この分割済み出力クロックがテスター基準クロックより高ければダウンDNパルスが生成され、DACの制御ビットは1ビットLSB減少される。このため、クロックブロックの出力周波数は減少する。このプロセスは、分割済み出力クロックがテスター基準クロックに非常に近くなり、かつクロックブロック出力周波数が所望の周波数に非常に近くなるまで続く。分割済みクロックfbclkがテスター基準クロックより低い場合にも同様に、UP信号により出力クロックは高くなる。このループは完全なフェーズロックループPLLではなく、また出力周波数は制御ビットStrim<6:0>の関数にすぎないため、回路がクロック信号を生成し、周波数を比較し、かつトリム値を調整するサイクルを繰り返すにつれClk値は所望値を上回りかつ下回るため、テスター基準クロックに対する位相相関がなければ、ある程度時間が経った後に出力周波数が適正範囲になったときに、出力周波数は三角形で変動し始める。この三角形周波数変動の範囲はPFDの感度に左右されるほか、いくつかの要因に起因する。ひとつの要因は、図4の例示的な実施形態が位相周波数検出器PFD407を使用していることである。これは出力周波数を所望の値に近づけるためにStrmの制御ビットまたはトリムビットの変更を試みる。出力周波数が所望の出力周波数に近づいたら、PFD407は2つの入力周波数の位相調整を開始する。つまり、PFD407は位相を揃えるために周波数の増減を試みる。これらの位相を揃えるため、PFD407が周波数の増減を試みるときにPFD407の出力UPおよびDNは高パルスまたは低パルスを与え続ける。この位相整合問題のため、出力周波数は補正過多になる傾向がある。もうひとつの要因は、図1および図2に見られるように、図4のループのブロック100に対する唯一の制御がStrm<6:0>設定によることである。弛張発振器ブロック111の出力周波数Clkは入力基準周波数との位相相関を有さないため、Strmのビットが変化すると、周波数は位相相関なしで、例えば約2MHzずつ増加する。図3に見られるように約2MHzは例示的な設計値に基づくものであるが、プロセスコーナーと温度にともない変化する。所望の周波数が例えば250MHzならば、このシステムは250MHzに正確に一致せず、この値を上回る/下回る。Clk値はトリム値の分解能のために250MHzに収束せず僅かに外れるため、周波数は、2つの値の間、例えば249MHzと251MHzとの間で揺れ動く。超過の量は、例えばPFDの周波数検出感度を上げ位相感度を下げることによって減らせるが、対処すべきある程度の過剰補正は依然として存在する。例示的な実施形態では、ブロック405のアップダウンカウンタ回路とともに最小最大ロジックを含めて最小最大法によりこれが果たされる。これの使用を図5を参照しながら説明する。図5では256MHzの周波数にシステムが較正される。これは、256の周波数分割器比により1MHzの基準周波数に比較することを可能にする。クロック回路の作動を開始し、これを較正できるようにするため、図5の三番目のトレースに見られるようにシステムイネーブル信号SysEnはハイになり、発振器はクロック信号を提供する。このクロック信号の周波数はInitial_Trim値によって決まる。この場合、これは図5の一番上のトレースに見られるように約301MHzに相当する。実際の較正プロセスを開始するため、図5の二番目のトレースに見られるようにクロック較正イネーブル信号ClkCalEnはハイになり、クロック周波数は期待周波数を上回るため、トリム値はカウントダウンを始め、これに応じてクロック周波数一番上のトレースは所望周波数に向けて下げられる。ただし、前述したように、システムは反転する前に期待周波数をある程度上回りまたは下回り、増加を始め、ハイ側に超過する。この過剰補正は継続し、前述した三角波形に至る。ひとたび出力周波数が一定範囲内になり、この三角形で変動すると、ModEn信号図5の一番下のトレースがイネーブルされるハイになる。ひとたびこの信号がイネーブルされると、ブロック405の最小最大ロジックは三角形周波数変動の中で最大および最小周波数に相当するDAC制御ビットを見つけ、このModEn信号が後ほどローになると、最小最大ロジックはStrim<6:0>ノードで平均制御ビットをロックする。これはクロックのブロックの所望の周波数出力に相当する。これらのビットはテスターによって読み取られ、特定のダイのためにプログラムされるか、あるいはチップのメモリに蓄積されるか、あるいはE-fuseで書き込まれる。最小最大プロセスをいつ開始し終了するか、つまりModEnをいつイネーブルしディスエーブルするかに関して、プロセスは、較正が三角形挙動を確立するにあたって十分に長く継続するまで開始せず、少なくとも1つの最大値および最小値の間は継続する。ただし、一般的にこの方法は先行技術の手法より大幅に速いため、複数の最小および最大ピークを待った後にModEnをハイにし、その後数サイクルにわたってこれをハイに保つことは可能である。値は、いくつかの典型的なデバイスを考慮することにより、また比較的余裕のあるタイミングマージンを許すことにより設定でき、ModEnのイネーブル、ディスエーブルポイントは、トリム値を調整する繰り返しの数または時間に基づき設定できる。この機構により、典型的なデバイス図3の値に相当は、典型的な先行技術構成を使用した場合の較正時間約1.7秒を大きく下回る約300マイクロ秒で較正サイクルを完了できる。また、高価な出力周波数測定システムの必要はない。様々な制御信号に関して、ClkCalEn信号はSysEnからある程度の遅延をはさんだ後に生成できる。このSysEnとClkCalEnとの間の遅延は発振器の整定時間より大きくすべきである。ClkCalEn信号は、試験機能または較正プロセスを制御するファームウェアにより単独制御することもできる。例示的な実施形態における発振器の典型的な整定時間は約500nSである。同様に、ModEn信号はClkCalEnからある程度の遅延をはさんだ後に内部で生成される。この遅延時間は設計段階で予め設定できる。図3に関して前に説明したように、回路は通常、典型的なプロセスコーナーに従って製造されることが期待されるウェハの一部として形成されるチップ上のより大きい回路の一部となる。典型的なプロセスコーナーでは、チップ上の様々なデバイスが所定の典型値または公称値を有するように製造される。これは図3における線301のTT_27デバイスに相当する。実際には、プロセス変動のためにウェハは低速SSまたは高速FFプロセスコーナーになる可能性がある。ウェハまたは特定のシリコンチップが、完全には特定のコーナー、例えばFFコーナーにならず、部分的にそうなることもまれではない。前述した手法で判断し補償するのはこれらのプロセス変動である。主題を締めくくる前に、これらの変動をさらに検討する。例えば、図3の表1を参照する。FFコーナーで初期Strimビット設定が79の場合の出力周波数は約300MHzであり、この例の所望の周波数は250MHzである。同一ウェハ上のほかの場所に形成される同様のクロック回路が、例えば270MHzの周波数あるいは250MHz~約300MHzの別の周波数を提供する典型的なコーナーより速いこともあり得る。低速SSコーナーデバイスでも同様の変動は起こり得る。前述した較正プロセスでは、高速コーナーの場合にStrimの制御ビットが逓減し、最終的には250MHzの所望の周波数を提供するように設定される。その後、初期トリムビットと最終トリムビットとの差を測定することにより、いくつかの重要情報を判断できる。第一に、符号差初期Strimビット-最終Strimビットに注目することによってチップが高速FFコーナーか低速SSコーナーかを判断する。この差は、FFコーナーのチップの場合に正となり、SSコーナーのチップの場合に負となる。第二の重要情報として、チップがどれくらい速いFFかあるいはどれくらい遅いSSかを判断する。例えば250MHzクロック周波数で、図3の表2を参照すると、Strim値がビット79から54へ移される場合は、チップが完全FFコーナーにあったことが分かる。しかし、較正によりStrim値が初期79から67に変わる場合、チップはフルTTコーナーに対して僅か約50速かったことになる。この追加的な情報はこの較正プロセスから引き出すことができる。弛張発振器較正プロセスの副産物であるこの追加的な情報は、基準電圧、電流、または他の重要プロセス依存デバイスパラメータ等、チップの様々な部分を微調整するのに役立てることができる。前述した本発明の詳細な説明は、例証と説明の目的で提示され、網羅的であったり、あるいは本発明を開示されたとおりの形態に限定したりすることを意図するものではない。前述した教示に鑑みれば数多くの修正ならびに変形が可能である。説明した実施形態は、本発明の原理と実際的な応用を十分に説明し、当業者が様々な実施形態で意図された用途に応じて様々な修正を加えながら本発明を十分に役立てるために選ばれたものである。本発明の範囲は添付の特許請求の範囲によって規定される。"