JP3568215B2 - クロック逓倍回路を備えた安定クロック発生回路 - Google Patents

クロック逓倍回路を備えた安定クロック発生回路 Download PDF

Info

Publication number
JP3568215B2
JP3568215B2 JP10815493A JP10815493A JP3568215B2 JP 3568215 B2 JP3568215 B2 JP 3568215B2 JP 10815493 A JP10815493 A JP 10815493A JP 10815493 A JP10815493 A JP 10815493A JP 3568215 B2 JP3568215 B2 JP 3568215B2
Authority
JP
Japan
Prior art keywords
circuit
input
output
clock
delay
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP10815493A
Other languages
English (en)
Other versions
JPH06202756A (ja
Inventor
ケイ アイトルハイム ジョン
ビー ライス リチャード
Original Assignee
ヴァイア サイリックス インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US07/880,550 external-priority patent/US5336939A/en
Priority claimed from US07/975,809 external-priority patent/US5359232A/en
Application filed by ヴァイア サイリックス インコーポレイテッド filed Critical ヴァイア サイリックス インコーポレイテッド
Publication of JPH06202756A publication Critical patent/JPH06202756A/ja
Application granted granted Critical
Publication of JP3568215B2 publication Critical patent/JP3568215B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/00006Changing the frequency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/15Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors
    • H03K5/15013Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs
    • H03K5/15026Arrangements in which pulses are delivered at different times at several outputs, i.e. pulse distributors with more than two outputs with asynchronously driven series connected output stages

Landscapes

  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pulse Circuits (AREA)
  • Manipulation Of Pulses (AREA)
  • Logic Circuits (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、集積回路の分野に属する。さらに具体的には、集積回路における内部クロックの発生と、その分配機構とに関するものである。
【0002】
【従来の技術と発明が解決しようとする課題】
今日の多くの集積回路は同期型であり、外部クロック信号に制御されて内部動作が実行される。高速クロックによって動作する高集積度の論理回路の例としては、マイクロプロセッサ、マイクロコンピュータ、数値演算コ・プロセッサなどがある。もちろん、メモリや、より小規模な論理回路などの他のより簡単な回路も外部クロック信号に制御されて動作するようにすることもできる。このような回路を用いたシステムのクロック信号は、独立した水晶発振回路を用いて発生させることもできるし、あるいは発振回路が他の論理動作回路とともに同じ集積回路チップ上に集積化されている場合には、水晶をクロック制御デバイズ自身の端子に接続することによって発生させるようにすることもできる。
【0003】
当該技術において良く知られているように、クロック制御集積回路がその機能を実行する速度は一般にクロック信号の周波数に大きく依存している。これは、特にディジタル回路では、チップ内部の動作は直接あるいは間接に(周波数分周器、フェーズ・ロックド・ループなどを介して)受信クロック信号によって制御されるからである。そのような例として、例えばマイクロプロセッサをとってみると、回路がある与えられた時間内に実行することができる命令の数は、クロック信号の周波数によって変わる。
すべての動作機能がクロック周波数だけで決まるわけではなく、ある機能の動作速度はそれ以外の要因によっても制限される。しかし、特に、マイクロプロセッサや数値演算コ・プロセッサなどの複雑なクロック制御回路では、回路動作性能がクロック周波数に依存している部分がある。例えば、ある種の入出力動作は、クロック周波数によってよりも、むしろ、バスインターフェースの仕様によって制限されるが、一方、重要な中心的部分、すなわちCPU部分は、その動作速度がクロック周波数に直接に依存している。従って、このような回路においては、回路のある部分(例えば、マイクロプロセッサの中心的な部分、すなわちCPU部分)には高周波クロックを供給し、また、他の部分(例えば、バスインターフェース)にはより低い周波数のクロックを供給することによって利点を得ることができる。マイクロプロセッサの分野におけるこのような望ましい方法は、特にコア部分のクロック速度がバスインターフェースクロック速度の2倍であるときに、一般に倍速クロック法と呼ばれている。
【0004】
入力されたクロック信号から、いろいろな周波数のクロック信号を導き出すための方法として、従来は、フェーズ・ロックド・ループ(PLL)と1つあるいはそれ以上の数の周波数分周器とを組み合わせた回路が用いられていた。このような構成では、生成される出力クロック信号はPLLによって入力信号を基準として生成されるので、出力クロックの安定性は入力信号に依存している。一方、出力からのフィードバック・ループにおける周波数分周比によって出力クロック信号と入力クロックとの間の相対的周波数が決定される。ところで、PLL回路は瞬間的には入力クロック周波数の変化に対して応答することができず、新しい入力クロック信号周波数に対してロックするまでには、いくつかの遷移サイクルが必要である。ユーザがハードウェア・スイッチを介してより高速なクロック速度(例えば、8MHz の代わりに20MHz )に切り替えて使用することができる“ターボ”モードのパーソナル・コンピュータやワークステーションが出現したことによって、すばやく内部動作周波数を変化させる能力が、近年、重要となってきている。しかし、従来の技術では、PLL回路が新しい周波数にロックするまでに過渡サイクルを必要とするので、ターボ・モードを選択する際に、あるいはターボ・モードから抜け出る際に、システムが誤動作を起こす可能性があった。
【0005】
さらに、PLLをベースとした回路は一般に動作電源電圧範囲に制約があり、(主として、電圧制御発振器の動作において制約を生じる)、そのため、広い電源電圧範囲で動作させる回路に用いるには適していない。最新の製造技術によって、トランジスタのチャンネル長などの物理的サイスが1ミクロンを越えてさらに小さく微細化されるに至ったが、これにつれて、ホット・エレクトロン効果などの信頼性上の問題を回避する必要が生じ、従来より低い電源電圧(例えば、3.3ボルト)を使用することが普通のこととして企図されるようになってきた。従って、従来の5ボルトの電源電圧だけでなく、さらに低い3.3ボルトの電源電圧でも動作できることが、大規模集積回路にとってますます重要となりつつある。異なるクロック周波数を異なる回路部分に供給するための他の既知の技術では、2つの端子を備えさせて、それぞれから異なるクロック周波数の入力を行う。この技術では、例えばインテルの数値演算コ・プロセッサ80387で用いられているように、特別に用意された端子の状態(外部的な配線接続、あるいはオン・チップのボンディング・パッドの配線接続)によって、どちらのクロック端子で受信されるクロック信号を用いるようにするのか、あるいは逆に無視するのかの選択がなされる。
【0006】
他の倍速クロック手法では、内部周波数分周器を用いて、入力クロック周波数を分周し、この分周されたクロックを低速度で動作する回路に対して供給する。例えば、(入力周波数と比較して)2分の1の周波数のクロックをマイクロプロセッサのバスインターフェースを制御するのに用いることが行われている。このような構成では、周波数分周器は単にクロック周波数を低減するだけでなく、入力クロック信号のデューティ・サイクルおよびリンギング状態の変動を補正する働きがある。入力クロックの不安定性に対するそのような補正は、低速動作回路へ供給される分については実現されるが、入力クロック信号自体には不安定性が残っているので、入力クロックを直接にCPUあるいはコア部の高速動作回路に対して用いることは不適当である。入力クロック信号の、ある位相がある種の内部コア動作を実行するのに、短すぎる可能性が出てくる(不安定であるときは、特にそうである)。
【0007】
マイクロプロセッサや、数値演算コ・プロセッサのすべてが必ずしも2倍クロック・モードで動作するわけではない。例えば、比較的低速のコンピュータやワークステーションでは、単一の低い周波数クロック(例えば、8MHz 程度)だけが利用可能で、このような低速クロック周波数でバス動作とCPUやコアの両方の動作をさせるようになっている。このような環境においては、比較的低い周波数の入力クロック周波数をさらに分周させてバスインターフェースクロックを生成すると、深刻な性能低下を招くことになる。従って、このような応用においては、2倍クロック・モードで集積回路を動作させるのは望ましくない。
従来は、ウェーハの製造プロセスを開始する段階において、集積回路を倍速クロック型かあるいは非倍速クロック型のどちらにするかがすでに決定されており、顧客の要望に従ってそれぞれが必要な数量だけ製造されていた。ところが、回路の種類が増加するに従って、それらの製造品目を維持することは価格的に困難となってくる。特に、回路的な要求あるいは製造歩留がばらつく時には、なおさらのことである。従って、倍速クロックおよび非倍速クロックの両方の機能を有する集積回路を提供することが望まれている。
【0008】
従来技術においては、制御信号によって複数のクロック信号のどれを集積回路の、どの機能部分(コア・ユニットやバス・インターフェース・ユニットなど)の動作制御に対して用いるかが選択される。ある特定の回路が複数のクロックの中のどれかに応答するように選択ができるようにするには、選択されたクロック信号に応答する能力を備えた比較的複雑な回路を必要とする。そのような回路は、回路動作速度を制御するのに用いられるクロックに対しての経路となってしまうか、あるいは経路に影響を与えるので、このような選択回路は回路の中の最もクリティカルなタイミング経路に必ず影響を与えることとなる。
さらに、マイクロプロセッサなどの集積回路に対する、従来の内部クロック分配技術では、外部から受信した信号に基づいて生成した内部クロックのデューティ・サイクルを最適化することは極めて困難であった。その理由は、いろいろなタイミングの仕様に適合させるために、外部クロックのデューティ・サイクルにはいろいろなものが用いられるからである。また、スイッチングが高速で行われるようになるに従ってリンギングやその他の雑音の影響を受けやすくなる。従って、マイクロプロセッサのクロック周波数が25MHz へ増大し、さらにはそれ以上に増大するにつれて、外部クロック信号のリンギングやその他の雑音の影響を受けやすくなり、クロックの位相が不明確となってき、またうまく制御ができなくなってくる。そのようなわけで、内部クロック信号を外部クロック信号から生成するに当たり、特に高速動作においては、設計者は内部クロック信号の各位相の選択において妥協が必要となる。
【0009】
【課題を解決するための手段】
本発明は、入力クロック信号に応答して複数の出力クロック信号を発生するクロック発生回路を具備し、これらの複数のクロック信号の各々は集積回路内の異なる機能部分へ供給されるようになされた集積回路に適用することができるものである。第1の出力クロック信号は、イネーブル信号の状態とはかかわりなく、入力クロック信号を基準として、これと一定の周波数関係を有するクロック信号として生成される。また、他の出力クロック信号をどのような周波数モードで生成すべきかを示すイネーブル信号がクロック発生回路へ供給される。イネーブル信号の供給は、例えば、チップのボンディング・パッドを固定電源あるいはアース電位にボンディングすることによって、行うことができ、このイネーブル信号の状態に依存して第2の出力クロック信号の周波数は、第1の出力クロック信号の2倍の周波数となるか、あるいは同じ周波数に選択される。
【0010】
本発明の他の態様においては、クロック発生回路は、入力クロック信号に応答して出力クロック信号の生成を行う。クロック発生回路は遅延回路を有しており、ある1つのクロックの位相に対して最悪の場合となる遅延経路に基づいて遅延時間を選択することができるようになされている。この遅延時間によって、内部生成されたクロックのデューティ・サイクルが入力クロック信号のデューティ・サイクルとは独立に決定される。好適な実施例においては、遅延時間は固定部分と可変部分とを有する遅延回路によって発生される。この遅延回路の固定部分にはいろいろな種類のゲート遅延が含まれており、集積回路のプロセス、電圧、温度の変動およびその動作が遅延回路の変化と見合ったものとなっている。また、遅延回路の可変部分は遅延時間の調節を行うためのものであり、またこれによって遅延回路の特性付けがなされる。
【0011】
【実施例】
まず、図1を参照する。この図は、異なるクロック周波数で動作することができる少なくとも2つの異なる機能部分を有し、本発明が好適に実現されている、マイクロプロセッサ、数値演算コ・プロセッサなどの集積回路2の構成を示したものである。この例においては、集積回路2は、好適には回路性能を最大に引き出すことができるように、可能な限り高速のクロック周波数で命令シーケンスあるいはその他の複雑な論理動作を実行するコア・ユニット4を有している。また、集積回路2は、さらにバスインターフェース・ユニット6を有している。このバスインターフェース・ユニット6は集積回路2の入力および出力端子(図示せず)と接続されており、また、コア・ユニット4とも内部バスのIBUSを介して接続されている。バスインターフェース・ユニット6はアドレスおよびデータ入力端子に供給される入力信号を受信して集積回路2のコア・ユニット4やその他の機能部の動作を制御し、またデータを出力端子から出力するための制御を行うように企図されている。バスインターフェース・ユニット6が、どのようなタイミング動作を必要とするかは、システムの他の集積回路部分の入出力の仕様によって決まり、コア・ユニット4におけるよりも低いクロック周波数で動作させる必要が起こりえる。
【0012】
以下の説明の必要性から、集積回路2の入力端子のいくつかを図1に示す。ボンディング・ワイヤWとボンディング・パッドBPを介して回路に接続されている様子が示されている。他の入力端子および出力端子も、もちろん、同様な方法で接続されているが、簡明とするために、図1には示されていない。図1に示されたボンディング・パッドBPの選択的な接続の役割については後に明らかになろう。また、通常の入力バッファが実際には集積回路2中に使用されているが、これらのバッファも簡明とするために図には示されていない。
図1の例において、集積回路2は入力クロック信号を端子CLKINに受信できるようになっている。入力クロック信号としては外部発振器などの外部で発生された周期的なクロック信号を用いることもできるし、あるいはCLKIN端子に水晶を接続して入力クロック信号を同一チップ上に生成し、この水晶によってクロック周波数を決定するようにもできる。クロック制御回路8は端子CLKINに入力された入力クロック信号と同じ周波数の内部クロック信号をコア・ユニット4へ(ラインCORECLKを介して)供給し、また、バスインターフェース・ユニット6には端子CLKINを入力された入力クロック信号の2分の1の周波数を有する内部クロック信号が(ラインBUSCLKを介して)供給される。2分の1周波数のクロック信号は周波数分周器10によって生成され、ラインBUSCLKに供給される。周波数分周器10は、この例では入力クロック信号周波数を2分の1に分周してからラインBUSCLKに供給する。
【0013】
本発明の好適な実施例においては、クロック制御回路8は、さらにクロック発生器12を有しており、このクロック発生器12は端子CLKINからの入力クロック信号を“セット”入力端子に入力し、また、プログラム可能な遅延回路段14によって遅延された端子CLKINからの入力クロック信号を“リセット”入力端子に入力するようになされている。本発明による実施例のプログラム可能な遅延回路段14は、通常の(非テスト・モード)動作において用いられるデフォルトの遅延値を有しており、このデフォルトの遅延値は金属薄膜パターン、あるいは溶融可能な接続、または、その他のプログラム可能な素子(FAMOSトランジスタなど)によってプログラム可能な遅延回路段14中に実現される。さらに、プログラム可能は遅延回路段14は、端子TESTからテスト入力を入力するとともに、j選択ライン15にINからINまでの選択された入力端子から信号を入力できるようになされており、この端子TESTに入力された論理状態によって特別なテスト・モードが選択されているとき、j選択ライン15によって遅延回路段14で発生する遅延時間の一部を選択することができる。
【0014】
プログラム可能な遅延回路段14およびクロック発生器12はそれぞれライン2XENから2倍クロック・モードを有効とするかどうかを表す信号を入力し、もし、2倍クロック・モードを有効とすべきことが示されたときには、ラインCORECLK上のコア・ユニットクロック周波数が、ラインBUSCLKのバスクロック周波数の2倍となるようになされる。この例においては、2倍速モードのクロックの選択は、製造プロセスのワイヤボンディング工程において、ライン2XENと連結しているボンディング・パッドBPをVcc電源端子に接続する(この例では、2倍速クロック・モード選択される)か、あるいは、Vssまたはアース端子に接続(2倍速クロック・モードを無効とする)ことによってなされる。
【0015】
後に説明するように、本発明の実施例のクロック制御回路8は、ライン2XENの状態によって制御され、ラインCORECLKのクロック信号が2倍クロック・モードとなるか、あるいは非2倍クロック・モードとなるかが決定される。さらに、内部バスIBUSを介してのデータの入出力の制御を行うインターフェース回路も、好適にはライン2XENの状態に従って制御され、コア・ユニット4とバスインターフェース・ユニット6との間の通信が、選択された内部クロックの関係に従って実行されるようになされている。そのようなインターフェース回路構成は当該技術に関して通常の技術を有する者にとっては明かであろう。
一般的に、クロック発生器12は入力クロック信号エッジの1つに応答して2倍クロック・モードで動作する。なお、この明細書においては、「立ち上がり」という用語は信号の低レベルから高レベルへの遷移を指し、また、「立ち下がり」という用語は高レベルから低レベルへの遷移を指すのに用いられる。図1の例では、入力クロック信号の立ち上がりによってクロック発生器12の出力(ラインCORECLK)が高レベルにセットされる。一方、クロック発生器12は、プログラム可能な遅延回路段14に設定された遅延時間だけ遅延して入力される入力クロック信号の立ち上がりを検知すると、ラインCORECLKへの出力を低レベルにリセットする。プログラム可能な遅延回路段14の遅延時間は、好適には、命令リセットあるいはコア・ユニット4の何らかの動作を実行するに当たって最悪の場合に必要となるクロック位相の遅延時間よりもわずかに長くなるように選択される。このような場合、クロック発生器12は、入力クロック信号に基づいたエッジ・トリガによるセットおよびリセット動作を用い、端子CLKINに入力される入力クロック信号と同じ周波数の内部クロック信号を、ある一定の位相期間の間ラインCORECLKに発生させる。従って、入力クロック信号のデューティ・サイクルのばらつきが、ラインCORECLK上の内部クロック信号のデューティ・サイクルに影響を与えることがなくなる。本発明の好適な実施例においては、遅延時間は最悪の場合の論理演算経路の伝搬遅延時間に基づいて選択されるので、入力クロック信号のデューティ・サイクルにかかわらず、集積回路2は正しく動作することができ、従って、広範囲のデューティ・サイクルのタイミング仕様に対して正しい動作が可能である。
【0016】
周波数分周器10は端子CLKINの入力クロック信号の2分の1の周波数のクロック信号をラインBUSCLKに発生させる。従って、バスインターフェース・ユニット6の動作は、外部に接続されている集積回路との整合性がとれるようなやり方で制御され、同時に、コア・ユニット4は可能な限り高速なクロック速度での動作ができるようになされている。
さて図2を参照しながら、本発明の好適な実施例の周波数分周器10およびクロック発生器12の構成について以下に説明する。
本発明この例における周波数分周器10は本質的には従来の設計に基づいたものであり、出力を停止するためのリセット機能を有している。ラインCLKINを介して入力クロック信号が(もし必要ならば、バッファを経由して)インバータ13および17へ供給され、これらのインバータによって相補クロック信号および正クロック信号がラインCLKcおよびCLKtにそれぞれ発生される。各通過ゲート24、26はソース・ドレイン・チャンネル経路が互いに並列に接続された相補型MOSトランジスタから成っており、これらのトランジスタのゲートは相補的ラインCLKtおよびCLKcに接続され、これらの相補トランジスタが同時にオン・オフ動作をするようになされている。
【0017】
ラインRSTを介してリセット信号が集積回路2の他の部分から周波数分周器10のNANDゲート22の入力端子とクロック発生器12の開始/停止論理30とに供給される。ラインRSTの信号は、好適には集積回路2の中で通常の方法でバッファされ、これによって雑音による誤ったリセット動作が生じることが防止され、また、リセット後の確実な位相同期が保証される。NANDゲート22の第2の入力端子は周波数分周器10の出力のラインBUSCLKに接続されている。非リセット・モードにおいて、ラインRSTが低論理レベルとなると、NANDゲート22の一方の入力端子には(インバータ21を介して)高論理レベル入力が与えられるので、NANDゲート22の出力はラインBUSCLKの状態によって制御決定されることになる。
【0018】
NANDゲート22出力は通過ゲート24の一方の側に接続されている。通過ゲート22を通過して、その他方の側へ現れる信号はラッチ28に入力され、さらに(ラッチ28によって反転された信号をインバータ27によってさらに反転して元に戻してから)通過ゲート26の一方の側に供給される。この例、および本発明による実施例の他の部分において、ラッチ28は一対のクロス結合されたインバータで構成される。フィードバック・インバータはフィードフォオード・インバータと比較してずっと弱く駆動されるようになっており、これによって新しい論理レベルが入力端子に入力されたとき、すばやく重ね書きがなされるようになっている。この弱い方の駆動は、図2において、ラッチ28のフィードバック・インバータに、(また、図2および3の他のラッチにおいて)アスタリスク記号(*)を用いて示されている。
【0019】
この例においては、通過ゲート24は、ラインCLKINの入力クロック信号が低レベル位相となっている間、NAND22の出力状態をラッチ29に通過伝達させるように動作する。従って、もし、ラインRSTがこの位相の間、低レベルであれば、ラインBUSCLKの状態に対して相補的な論理関係となる信号が、入力クロック信号が低レベル位相となっている間、ラッチ28に伝送供給される。ラッチ28の状態は、インバータ27によって反転されてから、通過ゲート26に伝送供給される。
一方、通過ゲート26の他方の側はラッチ20に接続されており、インバータ19を介してラインBUSCLKを駆動する。この例においては、通過ゲート26のゲートはラインCLKt、CLKcによって制御され、通過ゲート26が通過ゲート24に対して相補的に動作するようになされており、従って、ラインCLKINの入力クロック信号が高レベル位相となっている間、通過ゲート26は導通状態となる。従って、ラインBUSCLKが(インバータ19によって反転した後に)ラッチ20へ戻ってきて、このクロック出力が論理レベル遷移を起こすには、ラインBUSCLKの相補状態として、低レベル位相と高レベル位相との両方が必要となる。このような状況においては、ラインBUSCLKのトグル周波数は正確にラインCLKINの入力クロック信号の2分の1となる。
【0020】
上記のように、ラインRSTが低論理レベルであるときには、NANDゲート22はラインBUSCLKの状態に応答して動作する。一方、リセットまたは停止動作においては、ラインRSTは高論理レベルとなっており、従って、NANDゲート22の出力は、ラインBUSCLKの状態にかかわらず、強制的に高レベルに維持される。従って、リセット状態の間、ラインBUSCLKは高レベルの状態に維持される。
開始/停止論理は(インバータ21を介して)ラインRST、ラインBUSCLK、およびラインSTRTおよびラインSTPに開始/停止信号のそれぞれの信号を入力する。開始/停止論理30は、ラインRSTのリセット状態に従って、また、開始および停止信号に従って、クロック発生器12を有効にしたり、あるいは無効にしたりするのに必要となる組み合わせ論理回路を有している。後に説明するように、開始および停止信号によって、ラインCORECLKの出力クロック信号の出力を停止することが可能となっている。
【0021】
ラインCLKINへの入力クロック信号は、NANDゲート36の反転入力端子に供給される。一方、NANDゲート34の第2の入力端子にはライン2XENからの信号が与えられ、この2XEN信号が高レベルのときに2倍クロック動作が有効となる。NANDゲート34出力は反転遅延回路段35を介してNANDゲート36の第2の入力端子に供給される。遅延回路段35は、通常の1段遅延回路段をいくつか直列に接続した複数のインバータによって構成することもできるし、あるいは、通常の遅延回路を用いてNANDゲート34の出力信号を選択された時間だけ遅延させてからNANDゲート36の入力端子に伝達させるように構成することもできる。このように、NANDゲート36は、ラインCLKINへ入力される入力クロック信号の立ち上がりに応答して、NANDゲート34および遅延回路段35の伝搬遅延時間に対応するパルス幅を有する低論理レベルパルスを出力する。NANDゲート36の出力端子はpチャンネル・トランジスタ38のゲートに接続されており、このpチャンネル・トランジスタ38のソース・ドレイン・チャンネル経路はVccとラッチ40の入力端子との間に挿入接続されている。ラッチ40の出力は、インバータ41を介してラインCORECLKに出力される。
【0022】
またラインCLKINからの入力クロック信号は、直列に接続された固定遅延回路段14fおよび可変遅延回路段14vにも入力される。この例においては、後にさらに詳細に説明するように、可変遅延回路段14vはラインTESTからおよびj選択ライン15jから図1に示されているように入力信号を入力する。
可変遅延回路段14vからラインCLKDELAYに出力された信号は、NANDゲート46の非反転入力端子およびNANDゲート44の反転入力端子に入力される。NANDゲート44の第2の入力端子にはライン2XENからの信号が入力される。上記の場合では、NANDゲート44の出力はNANDゲート46の第2の入力端子に反転遅延回路段45を介して入力される。その結果、ラインCLKDELAYを介して可変遅延回路段14vから供給される信号の立ち上がりに応答して、NANDゲート46の出力端子から、NANDゲート44および遅延回路段45での遅延時間によって定まるパルス幅を有する低論理レベルパルスが出力される。NANDゲート46の出力は、インバータ47によって反転された後に、nチャンネル・トランジスタ42のゲートに入力される。なお、このnチャンネル・トランジスタ42のソース・ドレイン・チャンネル経路はラッチ40の入力端子とアースとの間に接続されている。
【0023】
また、NANDゲート46の開始/停止論理30の出力端子から入力信号を受け取り、これによって、ラインRSTからのリセット信号、および開始および停止信号、およびラインSTRT、STPからの信号によって、クロック発生器12の2倍クロック・モード動作が制御される。例えば、もし、開始/停止論理30から低論理レベル出力が出力された場合には、NANDゲート46の出力は強制的に高レベルとなり、これによって、nチャンネル・トランジスタ42は決して導通しない状態となる。このような場合においては、ラッチ40は低レベルの重ね書きができないので、ラインCORECLKへのクロック信号には遷移が起こらない。
ライン2XENは、また、NANDゲート50の反転入力端子に対しても入力される。また、NANDゲート50の他の入力端子にはラインCLKINからの入力クロック信号が入力される。NANDゲート50の出力は通過ゲート48に(インバータ49を介して)相補的に接続され、かくして、ライン2XENが高レベルであるとき、2倍クロック・モードにおいて通過ゲート48は非導通状態となる。
【0024】
また、この例のクロック発生器12は、ライン2XENが低論理レベルとなる非2倍クロック・モードにおいて、2分の1周波数クロック信号をラインCORECLKに供給することができる。NANDゲート32の入力端子の1つには、周波数分周器10のラッチ28からの出力が入力され、また他方の入力端子には開始/停止論理30からの出力が入力される。従って、ラッチ28からクロック発生器12の周波数分周器部分への信号供給は開始/停止論理30からの信号によって通過・阻止制御を行うことが可能であり、こうして停止動作(周波数分周器10へのラインRST信号が高レベルの場合)、および同期がかけれた状態での再スタート動作が可能となっている。
NANDゲート32の出力は通過ゲート48の一方の側に入力される。通過ゲート48の反対の側はラッチ40の入力端子に結合されている。NANDゲート50およびインバータ49の作用によって、通過ゲート48のnチャンネル・トランジスタにはラインCLKINからの入力クロック信号に対応する信号が印加され、一方、通過ゲート48のpチャンネル・トランジスタにはラインCLKINからの入力クロック信号とは相補的論理関係となる信号に対応した信号が印加される。このようにして、通過ゲート48は、周波数分周器10の通過ゲート26におけるのと同様の通過・阻止制御がなされる。その結果、非2倍クロック・モードにおいては、クロック発生器12は周波数分周器10と同様の構成となり、(NANDゲート22、通過ゲート24、ラッチ28の第1の部分を共有する2つの回路によって)ラインCORECLKに2分の1の周波数のクロック信号を出力する。従って、このモードでは、周波数ラインCORECLKへのクロック信号とバスCLKの信号とは同一である。
【0025】
図4(a)はクロック発生器12について、ライン2XENを高論理レベルとすることによって選択される、2倍クロック・モードの動作を示したものである。説明をわかりやすくするために微小な伝搬遅延時間や充電のための遷移は図4(a)には示されていない。このモードでは、ラインCLKINからの立ち上がり信号によってまずNANDゲート36の出力(図4(a)のノードS)が低論理レベルに移行する。立ち上がり信号がNANDゲート34および遅延回路段35を伝搬するまでこのNANDゲート36の出力は、低論理レベルのまま維持される。この遅延時間は図4(a)においてδ35として示されており、この遅延時間によってノードSの低論理レベルパルス幅が定められる。ノードSの低レベル信号に応答して、トランジスタ38が導通し、ラッチ40の入力端子が高レベルに充電され、インバータ41を介してラインCORECLKが高レベルに駆動される。従って、2倍クロック・モードでは、入力クロック信号の立ち上がりによってクロック発生回路12からラインCORECLKへの出力がセットされる。
【0026】
ラインCLKINからの入力クロックの立ち上がり信号も遅延回路段14f、14vを伝搬し、遅延時間δ14(すなわち、遅延回路段14f,14vを通過するのに要する伝搬遅延時間)の後にラインCLKDELAYに現れる。入力クロックの立ち上がり信号がラインCLKDELAYに現れると、NANDゲート46の出力は低論理レベルとなる(その他のNANDゲート46の入力は高レベル)。NANDゲート46からの低論理レベル出力は、インバータ47を介してnチャンネル・トランジスタ42のゲート(図2および4(a)におけるノードR)を高レベルに駆動する。これによって、トランジスタ42が導通状態となり、ラッチ40の入力端子がアース電位まで放電される。トランジスタ42が導通状態となったのに応答して、次に、ラッチ40およびインバータ41によってラインCORECLKが低レベルに駆動される。従って、ラインCLKDELAYへの立ち上がり信号によって、クロック発生器12からラインCORECLKへの出力は、高レベル遷移からプログラム可能な遅延回路段14の遅延時間δ14だけ遅延して、低レベルにリセットされる。
【0027】
当該技術の通常の技術を有する者にとっては、ノードSが低論理レベルとなるパルス幅(すなわち、遅延時間δ35)および、ノードRが高論理レベルとなるパルス幅(すなわち、遅延時間δ45)はラッチ40の入力がそれぞれのサイクルにおいて完全に充放電されるのに十分であるように選択すべきであることは明かであろう。一方、これらの遅延時間はセットおよびリセットパルスが重なり合わないように選択されなければならない。もし、そのようなパルスの重なりが発生すると、トランジスタ38および42を介してクロー・バー状態(すなわち、Vccとアースとが直接に短絡してしまう状態)が発生する。
クロック発生器12の動作によって、入力クロック信号と同じ周波数を有するがデューティ・サイクルは入力クロック信号には依存しないクロック信号がラインCORECLKに発生される。これは、ラインCORECLKへのクロック信号の位相幅がセット・パルスとリセット・パルス(この例では、それぞれ低および高レベル)との間隔によって決定されることによっている。本発明の実施例においては、セット・パルスとリセット・パルスとの間隔はプログラム可能な遅延回路14での遅延時間δ14(すなわち、遅延回路段14f,14vでの遅延時間)だけに依存するようになされており、ラインCLKINからの入力クロック信号のデューティ・サイクルには依存しない。実際、図4(a)の例において、ラインCORECLKの高レベル期間はラインCLKINからの入力クロック信号の高レベル期間よりも長くなっているということがわかろう。これにより、後にさらに詳細に議論するように、ラインCORECLKの内部高周波クロックのデューティ・サイクルの最適化を行う際に、入力クロック信号に依存した平均的最適化を行うのではなく、最悪の場合の位相に対して最適化することができる。
【0028】
ラインCORECLKのクロック信号のデューティ・サイクルの独立性は図4(a)の後の方のサイクル(時刻tの後)においていっそう明らかである。これらのサイクルにおいて、時刻tから後においては、ラインCLKINからの入力クロック信号のデューティ・サイクルは、図4(a)に示されているようにそれ以前のサイクルにおける場合よりも短くなっており、ラインCORECLKの信号として望ましい幅と比較しておよそ半分である。しかしながら、以前のサイクルにおけるのと同様に、ラインCLKINからの立ち上がり信号によって低論理レベルパルスがノードSに生成され、この信号がさらにラインCORECLKを高レベルに駆動する。この立ち上がり時点から、遅延時間δ14だけ経過するとラインCLKDELAYが立ち上がり、これによってノードRが高レベルに駆動され、またラインCORECLKは低レベルに駆動される。その結果、ラインCORECLKのクロック信号のデューティ・サイクルは、プログラム可能な遅延回路段14の遅延時間δ14によって決定させる一定の値に維持され、ラインCLKINからの入力クロック信号デューティ・サイクルに依存しない。
【0029】
クロック発生器12を、このように構成することによって、非常に安定した高周波内部クロックを、受信した高周波入力クロック信号に基づいて生成することができる。特にスイッチング速度が速くなると、リンギングおよびその他の雑音の影響を受けやすくなることを考慮すると、マイクロプロセッサのクロック周波数が25MHz からさらにそれ以上に増大するに従い、高品質で高安定な外部クロック信号を発生、供給することは非常に困難となる。本発明の実施例によるクロック発生器12では、クロック信号が入力クロック信号の立ち上がりと内部遅延とに基づいて生成されるので、ラインCORECLKの出力クロック信号は、入力クロック信号の雑音やその他の不安定性にはほとんど影響を受けない。
図4(b)を参照しながら、ライン2XENを低論理レベルとしたときに得られるクロック発生器12の非2倍クロック・モード動作について次に説明する。ライン2XENを低論理レベルにすると、NANDゲート34および44は両方ともにその出力が強制的に高レベルとなり、このモードの間、トランジスタ38および42はともに遮断状態に維持される。また、ライン2XENが低論理レベルとなると、NANDゲート50がラインCLKINからの入力クロック信号に応答することができるようになり、通過ゲート48にはラインCLKINに対応して相補ゲート信号が印加される。
【0030】
図4(b)に示されたサイクルは、ラインBUSCLK(従って、ラッチ20の入力のノードIN20)が高論理レベルであり、ラインCORECLK(従って、ラッチ40の入力のノードIN40)が高論理レベルであるような初期条件で始まっている。ラインCLKINの立ち下がり信号によって(ラインCLKcの立ち上がりおよびラインCLKtの立ち下がりに対応する)、通過ゲート24が導通状態となり、ラインBUSCLKの状態は、NAND22によって反転されて、ラッチ28の入力ノードIN28に低論理レベルとして伝達される。この低論理レベルは、NANDゲート32を介して(動作を可能とするために、開始/停止論理30の出力は高レベルとなる)(ラッチ28およびNANDゲート32によって2回反転される)通過ゲート48の入力ノードIN48に低レベルとして伝達される。入力クロック信号がこのような位相となっている間、通過ゲート26および48は通過ゲート24に対して相補的に動作するようになされているので、非導通状態となっている。
【0031】
入力クロック信号が立ち上がると、通過ゲート26および48は導通状態になり、一方、通過ゲート24は非導通状態になる。このとき、ラッチ28はフィードバック・インバータとしての動作によって低論理レベル入力を維持する。通過ゲート26が導通状態になると、ノードIN28の状態は(反転ラッチ28およびインバータ27によって反転された後)入力ラッチ20のノードIN20に伝達され、かくしてラインBUSCLKは低論理レベルとなる。同様に、通過ゲート48が導通状態になることによって、ノードIN48の低論理レベルがラッチ40の入力(ノードIN40)に伝達され、かくしてラインCORECLKにも伝達される。
周波数分周器10およびクロック発生器12の非2倍クロック・モードにおけるこのような動作はラインBUSCLKの状態がNANDゲート22を経由して周波数分周器10にフィードバックされて交互に逆転しながら続行される。その結果、このモードでは、バスCLKラインおよびCORECLKラインの信号の周波数は互いに等しく、ラインCLKINへの入力クロック信号周波数の2分の1の周波数である。
【0032】
図4(a)に関して前に注意したのと同様に、図4(b)においても回路の伝搬遅延時間は簡明とするために示されていない。しかしながら、安定な動作を得るためにインバータ列などの遅延回路段を回路のある位置に挿入して、通過ゲートが遮断する際に通過ゲートの入力において論理遷移が同時には起こらないようにすることが望ましい。例えば、インバータ27は所望の伝搬遅延時間を有するインバータ列で置き換えることができる。
さらに、クロック発生器12は、ラインCORECLKへの信号が相補クロック信号となるように、容易に構成を変えることができる。例えばラッチ40およびトランジスタ38、42、48による回路と同様ではあるが、ただし相補的に動作する回路を備えるようにすればよい。このような相補論理回路を追加して、図2に示された信号からもう1つのクロック信号を発生できることは、当該技術の通常の技術を有する者にとっては明らかであろう。
【0033】
本発明の実施例においては、クロック制御回路8がライン2XENの状態に応じて2倍クロック・モードあるいは非2倍クロック・モードのどちらでも選択的に動作可能である能力を有する。これによって、集積回路2の設計、および動作において従来技術と比較して著しい利点がもたらされる。従来技術においては、ある集積回路機能部分(コア・ユニットやバス・インターフェース・ユニットなど)に対して制御信号を選択し、そのクロック信号によってこの集積回路の機能部分の動作制御を行うには、選択されたクロック信号に応答してこのような機能を実行する比較的複雑な機能回路を必ず必要とし、このような回路は高周波内部クロックの最もクリティカルなタイミング経路に必ず影響を与える類のものであった。一方、本発明によるクロック制御回路8の、選択されたモードにおいて出力クロック信号を発生させる能力はコア・ユニット4などの機能回路を、クロック制御回路8によって決定されたコア・クロック周波数を有する単一の内部クロック信号に対してのみ応答するだけでよいように設計することを可能とする。
【0034】
上記のように、クロック・モードの選択は、この例では、ボンディング・パッド2XENを電源に接続するか、あるいはアースに接続するかによって行われる。このようなクロック・モードの選択方法によれば、単に1種類の集積回路2を製造するだけでよく、2種類の製品(2倍クロックあるいは非2倍クロック)を供給する必要がない。これは、特に製造業者にとっては有益である。動作モードの選択はウェーハ製造を開始する段階で行う必要がなく、組立工程において決定すればよい。さらに、本発明の実施例による集積回路2を用いれば、顧客は所望の動作モードを維持するために端子を高レベルまたは低レベルに駆動することの必要がない。
図4(a)の2倍クロック・モードに再び戻る。本発明によるクロック発生器12が発生する内部クロック信号のデューティ・サイクルはプログラム可能な遅延回路段14の遅延時間δ14によって決まる。マイクロプロセッサや数値演算コ・プロセッサなどの最近の複雑な集積回路では、2つのクロック位相のどちらかによって、最悪の場合の論理伝搬経路の制御を行うようになっており、最悪の場合における位相幅が回路動作にとってクリティカルである(すなわち、もし、この最悪の場合のクロック位相幅が短すぎると回路は誤動作を起こす)。本発明の好適な実施例においては、図2に示されているように、プログラム可能な遅延回路段14は好適には固定遅延回路段14fと可変遅延回路段14vとを有しており、遅延時間δ14を、従って最悪の場合のクロック位相幅を、特性評価時点あるいは製造の検査工程において、または動作中に設定あるいは変更することができる。
【0035】
遅延時間δ14の設定において、回路設計者はモデリングあるいは他の評価手段によって、コア・ユニット4命令あるいは論理動作を行う際の最悪の場合の高速論理経路を見積り、この最悪の経路に対して必要とされる時間(td )に、さらに安全のためにマージン時間(tm )を加えて、最小クロック位相幅(th =td +tm )を決定しこれが遅延時間δ14に相当するようにすることが必要である。広範囲な仕様のすべての範囲で回路が動作するようにするため、好適には、比td /th がいろいろな電圧、温度、およびプロセス条件に対して実質的に一定となるようにする。特に、マイクロプロセッサや数値演算コ・プロセッサなどの集積回路が、単に従来用いられている標準的な電源電圧Vccレベル(すなわち、公称5ボルト)だけでなく、サブミクロンの物理サイズを有する最新の集積回路に対して必要となると考えられる、さらに低いVccレベル(すなわち公称3.3ボルト)を含む広い電圧範囲で動作するようにすることが望ましい。
【0036】
さて、図3を参照する。本発明の好適な実施例によるプログラム可能な遅延回路段14の構成について次に説明を行う。プログラム可能な遅延回路段14の、この構成の特徴は最小クロック位相幅th に影響を与えるような電圧、温度、およびプロセスの変動に対して整合することができる遅延時間δ14を供給する手段を備えていることである。また、必要に応じて、遅延時間δ14を変更することができる能力も備えている。
固定遅延回路段14fは、ライン2XENの相補信号によって制御される通過ゲート59を介して、ラインCLKINからの入力クロック信号を、受け取る。非2倍クロック・モードにおいては(ラインCLKDELAYへのクロック信号は用いられないので:図3および4(b)を参照のこと)ライン2XENをローレベルとすることによって、通過ゲート59は非導通状態となされ、一方、2倍クロック・モードにおいては、通過ゲート59は導通状態に維持される。本発明の実施例の固定遅延回路段14fは、回路2のコア・ユニット4あるいはその他の機能部分の最悪の場合の伝搬遅延時間に基づいて選択された、いろいろな種類の論理回路による多数の遅延要素を含んでいる。同じ種類の多数の遅延要素(例えば、インバータ列)を用いるのではなく、いろいろな種類の遅延要素を用いることによって温度、プロセス、バイアス電圧などの変動によってもたらされる最悪の場合の論理経路の変動に対して固定遅延回路段14fが高度に整合できるようになされている。いろいろな種類の回路要素間の伝搬遅延時間のばらつきによって電圧、温度、およびプロセスパラメータの関数としての変動が相殺されて打ち消される。本発明による実施例においては、固定遅延回路段14fはラッチ52、インバータ53、NORゲート54(他の入力端子はアース電位に接続されている)、3入力NANDゲート55(他の2つの入力は高レベルに維持されている)、2入力NANDゲート56(他の入力は高レベルに維持されている)、通過ゲート57(オン状態となるようにバイアスされている)、およびそれぞれVccおよびアースにバイアスされたキャパシタ58a、58bを含んでいる。なお、キャパシタ58a、58bはコア・ユニット4の寄生容量を表すためのものであり、固定遅延回路段14f中の独立したキャパシタによって実現されるか、あるいはその寄生容量によって実現するようにもできる。図3には、これらの遅延要素が各1個ずつ示されているが、実際には固定遅延回路段14fはこれらの要素を複数個含むようにしたり、これらの要素を多数個直列に接続させたり、あるいはコア・ユニット4の最悪の場合の遅延経路を模擬したその他の要素の組み合わせを含むようにすることもできる。
【0037】
本発明の実施例においては、可変遅延回路段14vは、固定遅延回路段14fからの出力を受け取り、これに選択可能な遅延量を附加してから、その結果をラインCLKDELAYに出力する。本発明による実施例による可変遅延回路段14vは、特別なテスト・モードにおいていろいろな遅延量を選択することができ、デフォルトの遅延量はメタル・マスクによってオプション選択されるようになっている。さらに、以下の説明によって明らかになるように、可変遅延回路段14vの遅延量の選択は本質的にバイナリ・コードによって等間隔で増加するようにでき、これによって総体的な遅延時間δ14の選択を柔軟に行うことができる。
この例においては、可変遅延回路段14vは4つの独立した選択可能な遅延経路を有している。最も主要な遅延経路はマルチプレクサ643 によって選択可能なようになされている4つのインバータ対60の組である。同様に、次に主要な遅延経路はマルチプレクサ642 によって選択可能となされている2つのインバータ対60である。さらに次に主要な遅延経路はマルチプレクサ641 によって選択可能となされた1つのインバータ対60である。各インバータ対60は、好適には同じ伝搬遅延時間(すなわち遅延δ’)を有している。最も微小な遅延経路はキャパシタ61と通過ゲート62との結合によって実現され、好適にはこの容量性負荷によってインバータ対60の遅延δ’の2分の1に相当する遅延時間あるいは単一のインバータの伝搬遅延時間に相当する遅延時間を附加することができる。このように、4つの選択可能な経路は、2進数的に重み付け(それぞれ、23 、22 、21 、20 )がなされているので、可変遅延回路段14vの遅延時間は2進数的な選択が可能である。
【0038】
マルチプレクサ64(および通過ゲート62)の70から70のそれぞれのマルチプレクサに対して与えられる制御入力に応じて、固定遅延回路段14fからの一連のクロック信号経路を関連する遅延経路を経由するようにも、あるいは遅延なしに次の段へ直接に伝達させるようにもできる。マルチプレクサ63についてはその構成を図3に示してあるが、各マルチプレクサ64、64、64はこれと同様に構成することができる。この例においては、通過ゲート66のソース・ドレイン・チャンネル経路は入力クロック信号と次の段の入力端子との間に挿入されており、一方、通過ゲート68のソース・ドレイン・チャンネル経路は最後の遅延要素60と次の段の入力端子との間に挿入されている。各マルチプレクサ64の通過ゲート66、68は関連するマルチプレクサ70からインバータ65、67を介して印加される制御信号によって一方の通過ゲートがオンであるときには他方の通過ゲートがオフとなるように相補的にゲート制御される。従って、固定遅延回路段14f(または前のマルチプレクサ64)からのクロック信号は、マルチプレクサ70の出力によって、遅延されるか、あるいは遅延されないかの制御が行われて、可変遅延回路段14vの次の段の入力に供給される。ソース・ドレイン・チャンネル経路がキャパシタ61とラインCLKDELAYとの間に接続され、またそのゲートがマルチプレクサ70の出力によって制御されるようになされた通過ゲート62の結合によってキャパシタ61による最小遅延量回路段の選択がなされる。
【0039】
マルチプレクサ70は、関連する選択ライン15から入力されるテスト信号の中から値を選択するか、または、デフォルトとして与えられている値を選択し、マルチプレクサ64(または、通過ゲート62)と協働して関連する遅延値を含めるべきかどうかを決定する。マルチプレクサ70は、テストモードを有効にすべきかどうかを示す信号によって制御される。各マルチプレクサ70には、デフォルトの値が、入力と出力の両方ともが固定電位に結合されている関連する弱インバータ77によって与えられている。例えば、図3において、各インバータ77の入力および出力ともにVccに接続されており、この場合、各インバータ77は高レベルの電圧をその出力端子に出力する。このような各インバータ77の状態は出力と固定電位との間の接続をメタル・マスク、フューズ、レーザ・カットなどによって断ち切り、インバータ77が反対の状態を出力するようにすることによって変更することができる。あるいは、電気的にプログラム可能な素子、レジスタ・ビット、ソフトウェア、またはその他の通常の技術を用いて、デフォルトの条件を設定するようにすることもできる。
【0040】
この例においては、各マルチプレクサ70の一方の入力端子には選択ライン15の1つが接続されており、マルチプレクサ70の他方の入力端子にはインバータ77の出力端子が接続されている。また、これらのマルチプレクサの制御入力としては、NANDゲート72の出力が与えられている。NANDゲート72はライン2XENからの信号をその1つの入力端子から受け取り、他方の入力端子からはラインTEST信号を受け取る。NANDゲート72の出力は第1の通過ゲート74のゲートに(インバータ73を介して)相補的に接続されており、さらに、第2の通過ゲート76のゲートに通過ゲート74と相補的関係となるように接続されている。このような接続がなされているので、NANDゲート72の出力の状態に応じて、通過ゲート74あるいは通過ゲート76のどちらか一方が導通状態となる。また、NANDゲート72の出力は、次のマルチプレクサ70の制御入力にラインを介して直接に供給されている。NANDゲート72の出力を低レベルとすると、通過ゲート74が導通状態となって、選択ライン15がマルチプレクサ64(マルチプレクサ70の場合には、通過ゲート62)の制御入力に接続される。一方、NANDゲート72から高レベル出力が出力された場合には、通過ゲート76の方が導通状態となって、インバータ77の出力がマルチプレクサ64(マルチプレクサ70の場合には、通過ゲート62)の制御入力に接続されることになる。
【0041】
非2倍クロック・モード(ライン2XENが低レベル)の動作においては、すべてのマルチプレクサ70がインバータ77から出力を選択し、かくして、デフォルトの遅延値が選択されるので、可変遅延回路段14vが準安定状態あるいは未決定状態となることが防がれる。一方、2倍クロック・モードにおいては、ラインTEST(NANDゲート72の他方の入力)の状態に応じて、マルチプレクサ70の制御が行われる。非テスト・モード、すなわち通常の動作モードにおいては、インバータ77のアレイ出力によって、可変遅延回路段14vの遅延量が決定される。このときの、可変遅延回路段14vの遅延量は、遅延が全くない場合から15個のインバータの伝搬遅延時間までの範囲で、1つのインバータ(すなわちキャパシタ61)に相当する遅延値きざみで、4個のインバータ77によって2進的に選択可能である。
【0042】
テストモードにおいては、選択ライン15の状態によって、可変遅延回路段14vの遅延量が、4つの選択ライン15jの状態に応じて2進数的に決定される。テストモードを有効とする方法は、集積回路技術において知られている従来の技術の中のいずれかを用いることができる。例えば、専用のテストモード端子あるいはパッドを設ける方法、通常の入力端子の1つから回路に通常よりは過大な電圧を印加する方法、特別なコードを回路2に実行させる方法、あるいは、その他の技術が知られている。ラインTESTを高レベルとすると、マルチプレクサ70の通過ゲート74はすべて導通状態となり、選択ライン15の状態によって可変遅延量が決定される。従って、このテスト・モードにおいては、遅延時間δ14をいろいろに変えながら回路2を動作させてみて、ある与えられた電圧あるいは温度条件下において、回路2が正しく動作することできる最小の遅延時間δ14を、従ってまた、最小位相幅(t)を決定することができる。
【0043】
可変遅延回路段14vを具備することによって、またこれをテストモードで用いることによって、集積回路2の生産において、および設計において多大の利点が得られることがわかろう。これは、初期のプロトタイプのサンプルを、テストモードで動作条件、動作機能をいろいろに変えながら、評価し、確実な動作をさせることができる最小の遅延時間δ14を求め、この求められた遅延時間δ14に応じて、可変遅延回路段14vのインバータ77の適当なライン出力を開放とすることによってデフォルトの値が妥当なものとなるように選択することができることによる。さらに、回路2が生産されている間、テストモードを用いて、定期的に最小遅延時間δ14の測定を行い、インバータ77の状態を設定するメタライゼーション・マスクを変更することができる。
【0044】
もし望むならば、このような可変遅延回路段14vの構成を用いて、インバータ77の状態を、例えば各インバータ77の出力に設けられたポリシリコンのフューズをレーザを用いて、あるいは大電流を流して切断することによって、各回路ごとに個々に設定することも可能である。あるいは、回路の制御業者は、スレショールド電圧、チャンネル長、あるいは、回路2の製造工程途中において測定することが可能な、その他のパラメータに基づいて、適当なメタル・マスクを生産のために選択することができる。もちろん、マルチプレクサ70をレジスタに応答するようにして、可変遅延回路段14vの伝搬遅延時間をソフトウェアによって選択するようにすることも可能である。
以上に述べたように、本発明の好適な実施例を用いることによって、最悪の場合のクロック位相幅を、電圧、温度、プロセスの変動に対してほぼ整合がとれている固定値と、さらにこれに加えて容易に選択することができる可変量とに依存して決定できる。従って、本発明の実施例によれば、不安定なデューティ・サイクルを有する外部入力クロック信号から高周波内部クロック(バス・クロック周波数の2倍)を生成する手段が得られる。また、内部クロックのデューティ・サイクルを温度やプロセス条件に整合するように調整、選択することができる能力が得られる。特に、このようにして生成される内部クロックは、電源電圧の変化に対して十分に安定であるので、従来の電源電圧(5ボルト)でも、また低電圧(3ボルト)でもどちらでも動作可能なマイクロプロセッサ、数値演算コ・プロセッサなどの高速で高度に複雑な論理回路を設計、製造することが可能である。
【0045】
上記の本発明による実施例は、バス・インターフェース動作(ラインBUSCLK)に対しては2分の1の周波数のクロックが、一方、コア・ユニット動作(ラインCORECLK)に対しては高速クロックが、どちらも同じ周波数の入力クロック信号から生成される、内部クロック分配システムである。もちろん、従来の周波数逓倍回路やその他の周波数合成回路を含むようにすることによって、入力クロック信号と比較してより高い、あるいは逆に、より低い周波数の内部クロック信号発生するようにすることも可能である。当該技術の通常の技術を有する者にとっては、この明細書の記述および図面から、本発明をそのような応用に対して用いるようにすることができることは明白なことであろう。
次に図5を参照する。この図は、入力信号の2倍の周波数の内部クロック信号をラインCORECLKに発生するための本発明による、模範的な実施例をブロック図として表したものである。この実施例では、ラインCLKINからの入力クロック信号はエッジ検出回路80に入力され、このエッジ検出回路80は、ラインCLKINからの立ち上がり信号、あるいは立ち下がり信号のいずれかに応答して立ち上がり信号を発生してクロック発生器112のセット入力に印加する。また、ラインCLKINは、上記のプログラム可能な遅延回路段14と同様に構成されているプログラム可能な遅延回路段114に接続されている。プログラム可能な遅延回路段114の出力はラインCLKDELAYを介してエッジ検出器82に接続されており、このエッジ検出器82は、入力される立ち上がり信号、または立ち下がり信号を検出してラインCLKDELAYの立ち上がり、または立ち下がりに応じた立ち上がり信号を発生する。エッジ検出器82の出力はクロック発生器112のリセット入力に接続されている。クロック発生器112は、上記のクロック発生回路123と同様に構成されている。
【0046】
動作において、エッジ検出器80は、CLKINからの入力クロック信号の各遷移を検出して、パルスをクロック発生器112のセット入力に対して供給する。すると、この場合には、クロック発生器112のラインCORECLKに接続されているQ出力端子が高レベルに移行する。遅延時間δ114 の経過の後に、入力クロック遷移がラインCLKDELAYに発生し、この遷移がエッジ検出器82によって検出されると、エッジ検出器82はパルスをクロック発生回路112のリセット入力に対して供給する。このリセット信号によって、ラインCORECLKに接続されているクロック発生回路112のQ出力端子が低論理レベルに移行される。このように、遷移(立ち上がり、または立ち下がり)が発生する度に、セット・パルスおよびリセット・パルスの両方がクロック発生器112に対して供給されるので、クロック発生器112の出力の周波数は、入力クロック信号の周波数の2倍となる。
【0047】
次に図6を参照しながら、本発明の他の実施例によるクロック逓倍回路の構成について説明する。図6の構成においても、ラインCORECLKのクロック信号は、ラインCLKINの周波数が逓倍された周波数となり、この例では、2倍となる。ラインCLKINからの信号は、図2のクロック発生器12のNANDゲート34、36、および遅延回路段35と同様に構成されている立ち上がり検出器84に入力されて、検出器84からは、ラインCLKINからの立ち上がり信号に応答してパルスが発生される。図5の構成とは異なり、この場合には、立ち上がり検出器84は、ラインCLKINの立ち下がりに応答したパルスの発生は行わない。立ち上がり検出器84の出力はORゲート92の第1の入力端子に接続されている。
【0048】
また、ラインCLKINは、一連の遅延回路段214、216、218にも接続されており、これらはそれぞれが、独立した別々の遅延時間(もし望むならば、これらのいくつかを同じ遅延時間を有するようにもできる)を有するようになっている。遅延回路段214、216、218は好適にはプログラム可能な遅延回路段14について先に説明したのと同様な固定および可変部分を有している。
遅延回路段214の出力は立ち上がり検出器86に接続されており、この立ち上がり検出器86の出力はORゲート94の1つの入力に接続されている。遅延回路段216の出力は立ち上がり検出器88に接続されており、この立ち上がり検出器88の出力はORゲート92の第2の入力端子に接続されている。同様に、遅延回路段218の出力は立ち上がり検出器90の入力端子に接続されており、この立ち上がり検出器90の出力はORゲート94第2の入力端子に接続されている。
【0049】
ORゲート92の出力は、クロック発生器212のセット入力を駆動し、一方、ORゲート94の出力は、クロック発生器212リセット入力を駆動する。クロック発生器212は、上記のクロック発生器12、あるいは112と同様に構成することができる。従って、クロック発生器12は、そのセット入力へのパルスに応答してラインCORECLKに接続されているQ出力を高論理レベルに移行させ、リセット入力へのパルスに応答してQ出力を低論理レベルにリセットする。
従って、図6の実施例においては、ラインCORECLKのクロック信号はラインCLKINからの入力クロック信号の2倍の周波数となる。また、遅延時間δ214 、δ216 、δ218 によって、2つのサイクルの中の3つの連続した位相幅が決定される。第2のサイクルの第4の位相幅は、ラインCLKINからの入力クロック信号の1周期幅と、遅延時間δ214 、δ216 、δ218 の和との差によって決定される。次に、図7を参照しながら図6の構成による動作について説明する。先の場合と同様に、微小な伝搬遅延時間については、わかりやくするために、図示していない。
【0050】
図7において、ラインCLKINの立ち上がりが立ち上がり検出器84によって検出されると、立ち上がり検出器84は高レベルパルス(図7のOUT84)をORゲート92を介してクロック発生器212のセット入力に供給する。従って、このラインCLKINの立ち上がり信号によって、ラインCORECLKのクロック信号の立ち上がりが開始される。ラインCLKINの立ち上がりから、遅延時間δ214 が経過すると、立ち上がり検出器86に立ち上がり信号が供給され、これによって高レベル(OUT86)信号がORゲート94に供給され、さらにクロック発生器212のリセット入力に印加される。ORゲート94からのこのパルスによって、クロック発生器212はそのQ出力をリセットする。その結果、CORECLKのクロック信号における、第1のサイクルの高レベル位相幅は遅延時間δ214 によって決定される。
【0051】
ラインCLKINからの立ち上がり信号は、次に遅延回路段216中を伝搬し、遅延時間δ216 の後に立ち上がり検出器88に対して立ち上がり信号を供給する。パルス(OUT88を参照のこと)がORゲート92に印加され、これによって再びクロック発生器212のラインCORECLKに接続されたQ出力を高レベルに移行させる。従って、遅延時間δ216 によってラインCORECLKのクロック信号の第1のサイクルの低レベル位相幅が定まる。
さらに立ち上がり信号が遅延回路段218を伝搬し、さらに遅延時間δ218 の後に立ち上がり信号が立ち上がり検出器90に対して与えられる。立ち上がり検出器90はパルス(OUT90を参照)をORゲート94に供給し、さらにここからパルスがクロック発生器212のリセット入力に対して供給されると、ラインCORECLKが低論理レベルにリセットされる。従って、ラインCORECLKのクロック信号の第2のサイクルの高レベル位相幅は、遅延時間δ218 によって定まる。
【0052】
ラインCORECLKに接続されているクロック発生器212のQ出力は、ラインCLKINから次の立ち上がり入力クロック信号を受け取るまでは、低論理レベルのままに維持される。従って、もちろんのことながら、遅延時間δ214 、δ216 、δ218 は、これらの和が入力クロック信号の1周期を越えることがないように選択されなければならない。もし、そうでないと、不安定な結果がラインCORECLKのクロック信号にもたらされる。こうして、ラインCORECLKの出力クロック信号の第2の低レベル位相幅は、入力クロック信号幅から、遅延時間δ214 、δ216 、δ218 の和を差し引いた幅となる。この幅は図7において、時間tL0として表されている。
このように、図6の構成においては、位相幅が、クロック制御回路の遅延時間によって決定されるので、入力クロック信号の位相幅あるいはデューティ・サイクルに依存しない安定な周波数逓倍が達成できる。従って、出力クロック信号のデューティ・サイクルに影響を与えることなしに、入力クロックのデューティ・サイクルをいろいろに変えることが可能である。特に、入力クロック信号の立ち下がりはの発生には使用されないので、入力クロック信号の立ち下がり部分が出力クロック信号に影響を与えることがない。さらに、遅延時間を適当に選択することにより、交互に変化する出力クロック信号が異なる位相幅を有するようにすることが可能である。さらに、入力クロック周波数を整数倍(3あるいはそれ以上)の周波数に逓倍することも、遅延時間の総和が入力クロック信号幅を越えないようにして、単に遅延回路段を同様にしてさらにスタックするだけで容易に実現できる。
【0053】
図5および6の構成は、もちろん、周波数分周器10あるいは、その他のクロック発生器や周波数合成回路とともに用いて、本発明を有効に活用した回路を実現することもできる。さらに、これらの実施例は、上記の図2におけるのと同様に、ライン2XENの状態または、他の制御信号に応答して、選択的に2倍クロック・モードを有効にしたり、あるいは無効としたりすることができるように構成することもできる。
図8および9は、本発明の他の実施例によるクロック逓倍回路を示したものである。図8の構成において、ラインCORECLKのクロック信号の周波数は、この場合においてもやはり、ラインCLKINの周波数を逓倍したものとなる。この実施例では、CLKINの周波数は、単に2つの遅延回路段314a−314bと、3つのアクティブ・エッジ検出器96a−96cとを用いるだけで、2倍に逓倍される。説明の都合上、アクティブ・エッジ検出器96a−96cは立ち上がり検出器であるものと仮定する。CLKINが立ち上がり検出器96aに入力されると、立ち上がり検出器96aはその出力をORゲート98に供給する。図8にSR(セット・リセット)フリップ・フロップ312aとして示されているクロック発生器のセット入力端子はORゲート98の出力端子に結合されている。図8のSRフリップフロップは、セット入力(S)が高レベルにセットされると、出力を高論理レベルに移行させ、リセット入力(R)が高レベルにセットされるまで、出力を高論理レベルに維持する。リセット入力が高レベルにセットされると、SRフリップフロップは出力を低論理レベルに移行させ、セット入力が高レベルにセットされるまで、これを維持する。フリップ・フロップ312aのQ出力は、CORECLK信号となる。この信号は、上記のプログラム可能な遅延回路段14と同様に構成されている遅延回路段314aに接続されている。遅延回路段314aの出力は立ち上がり検出器96bに接続されている。また、立ち上がり検出器96bの出力はフリップ・フロップ312aのリセット入力に接続されているとともに、ANDゲート100の入力端子の1つに接続されている。立ち上がり検出器96aの出力はSRフリップフロップ312bのセット入力に接続されている。SRフリップフロップ312bのQ出力(“FIRSTCYCLE”信号)はANDゲート100他方の入力端子に結合されている。ANDゲート100の出力はSRフリップフロップ312cのセット入力に接続されている。SRフリップフロップ312cのQ出力端子からは“FIRST PH2”信号が発生されて、遅延回路段314bに入力される。遅延回路段314bの出力は立ち上がり検出器96cに入力される。立ち上がり検出器96cの出力はSRフリップフロップ312bおよび312c、のリセット入力と、また、ORゲート98の第2の入力端子に接続されている。
【0054】
図8の回路の動作を理解するには、図9のタイミング図と関連づけて考えるのがよい。CLKINからのアクティブ信号(この場合には、立ち上がり)を受け取ると、エッジ検出器96aはORゲート98の入力端子の1つにパルスを出力し、これによってORゲート98の出力が高レベルに駆動される。これによって、SRフリップフロップ312aのQ出力が高レベルに遷移し、その結果、CORECLK信号が高レベルに駆動される。また、立ち上がり検出器96aによって発生されたパルスは、SRフリップフロップ312bのセット入力を駆動して、FIRST CYCLE信号を高レベルに遷移させる。CORECLKの低レベルから高レベルへの遷移は、遅延回路段314a(δ314aの期間)によって遅延されて伝搬され、立ち上がり検出器96bによって検出される。CORECLKの遅延された立ち上がり信号を受信すると、立ち上がり検出器96bはSRフリップフロップ312bのリセット入力とANDゲート100に対してパルスを出力する。このパルスに応答して、SRフリップフロップはCORECLKを低レベルに駆動する。エッジ検出器96bからのパルスを受信するとANDゲート100はSRフリップフロップ312cのセット入力に高レベルパルスを出力する。これによって、FIRST PH2信号が高レベルに駆動される。信号FIRST PH2は遅延回路段314bによって遅延される。そして、FIRSTPH2の低レベルから高レベルへの遷移が立ち上がり検出器96cによって検出される。これに応答して、エッジ検出器96cはSRフリップフロップ312b、312cのリセット入力およびORゲート98にパルスを出力する。従って、信号CORECLKが高レベルに駆動され、信号FIRST CYCLEは低レベルに駆動され、また、信号FIRST PH2が低レベルに駆動される。CORECLKの低レベルから高レベルへの遷移が遅延回路段314aによって遅延され、エッジ検出器96bによって検出される。エッジ検出器96bからの信号を受けて、SRフリップフロップ312aは、再び、CORECLKを低レベルに駆動する。信号FIRST CYCLEが低レベルとなっているので、ANDゲート100が立ち上がり検出器96bからパルスを受け取っても、SRフリップフロップ312cは何の影響も受けない。次のアクティブ・エッジをCLKIN信号から受け取るまで、回路はこのまま、CORECLKが低論理状態であり、FIRST CYCLEが低論理状態であり、またFIRST PH2が低論理状態となっている状態を維持する。
【0055】
本発明のこの実施例によれば、図6の回路におけるのと本質的に同じ出力信号がずっと簡単な回路構成で得られる。実質的な動作としては、SRフリップフロップ312bは“1”をカウントすると、SRフリップフロップ312cを不能状態としてさらにクロックを発生しないようにしている。図8の回路は、あらかじめ定められた数のクロック遷移がカウントされたときにFIRST CYCLE信号を“0”に設定するようにすることによって、CLKINのアクティブ・エッジに応答してさらにクロックを発生するように拡張することができる。
図10および11は本発明の他の実施例を示したものであり、入力クロック信号CLKINをn逓倍することができる回路である。ここで、逓倍の数nはレジスタに記憶するようにすることもできるし、あるいは回路中にハードワイヤによって組み込むことも可能である。図10の回路において、nの値がどのようなものであるかにかかわらず、単に2つの遅延回路段414a−414bと3つのエッジ検出器102a−102cとだけで回路を構成できる。信号CLKINはエッジ検出器102aに入力される。このエッジ検出器102aからの出力はORゲート104の入力端子の1つに供給される。また、エッジ検出器102aからの出力はカウンタ106のリセット入力にも接続されている。ORゲート104の出力はSRフリップフロップ412のセット入力に結合されており、また、SRフリップフロップ412のQ出力からはCORECLK信号が出力される。CORECLK信号は遅延回路段414aに入力され、遅延回路段414aの出力はエッジ検出器102bの入力端子に接続されている。エッジ検出器102bの出力はSRフリップフロップ412のリセット入力とカウンタ106のインクリメント入力に結合されている。SRフリップフロップ412の反転Q出力は遅延回路414bによって受け取られ、遅延回路414bからの出力はエッジ検出器102cに供給される。エッジ検出器102cの出力はANDゲート105の入力の1つに結合されている。ANDゲート105の出力はORゲート104の他方の入力端子に結合されている。また、カウンタ106の出力はコンパレータ107の入力の1つに結合されている。nの値はハードワイヤで与えることもできるし、またはレジスタに記憶させておくようにもできるが、このnの値がコンパレータ107の他方の入力端子に与えられる。もし、カウンタ106の出力の値がnの値と等しければ、コンパレータ107のMATCH出力信号端子が高レベルに遷移する。このMATCH信号はANDゲート105の反転入力端子に供給される。
【0056】
図10の回路動作をn=3の場合について説明する。CLKIN信号のアクティブ・エッジを検知したときにエッジ検出器102aから発生されるパルスによって、カウンタ106がリセットされ、また、SRフリップフロップ412のセット入力が高レベルに駆動される。これによって、CORECLK信号が低レベルから高レベルへ遷移する。カウンタ106は、リセットされると0カウントを出力し、これによって、MATCH信号が低レベルに駆動される(n=0でない限り:もしn=0であると回路は不適当な設定をされる)。CORECLKの低レベルから高レベルへの遷移は、遅延回路414aによって遅延された後にエッジ検出器102bに入力される。この遷移がエッジ検出器102bによって検出されると、パルスがSRフリップフロップ412のリセット入力とカウンタ106のインクリメント入力に対して出力される。このパルスによってCORECLKは低レベルに駆動され、一方、反転CORECLKは高レベルに駆動され、またカウンタ106が1だけインクリメントされる。反転CORECLKの低レベルから高レベルへの遷移は遅延回路段414bで遅延された後にエッジ検出器102cによって検出される。これに応答して、エッジ検出器102cはパルスをANDゲート105に出力する。このとき、MATCH信号が低レベルとなっているので、このパルスはANDゲート105を素通りする。ANDゲート105からのパルス出力はORゲート104を経由してSRフリップフロップ412のセット入力に与えられる。その結果、CORECLKが高レベルに駆動される。先に説明したように、CORECLKの低レベルから高レベルへの遷移は遅延回路段414aによって遅延された後に、エッジ検出器102bによって検出され、すると、エッジ検出器102bはパルスを出力してCORECLKを低レベルに駆動し、またカウンタ106をインクリメントさせる。カウンタ106の出力は“2”に等しくなっているので、MATCH信号は低レベルを維持し、エッジ検出器102cが遅延された反転CORECLKの低レベルから高レベルへの遷移検出すると、ANDゲート105の出力が高レベルに駆動され、これによって、CORECLKが低レベルから高レベルへ遷移する。CORECLKの低レベルから高レベルへの遷移が、遅延回路段414aによって遅延された後に、エッジ検出器102bによって検出されると、エッジ検出器102bの出力によってCORECLKが低レベルに駆動され、またカウンタ106はカウント3にインクリメントされる。カウント数が3となるとコンパレータ107のMATCH信号は高レベルに遷移する。この高レベルのMATCH信号によって、ANDゲート105の出力が、エッジ検出器102cの出力にかかわりなく、低レベルに駆動される。従って、反転CORECLKが低レベルから高レベルへ遷移することによって発生されるエッジ検出器102cからの次のパルスはANDゲート105によって阻止される。その結果、CLKIN信号の次のアクティブ・エッジまで、CORECLK信号は、低レベル状態のままとなっている。
【0057】
容易にわかるように、各CLKIN信号のアクティブ・エッジに応答してSRフリップフロップ412によって発生されるクロックサイクルの数はnの値に依存する。遅延回路段414aによる遅延時間によってCORECLKの高論理レベル位相幅が設定される。遅延回路段414bによって発生される遅延によって、CORECLKの低論理レベル位相幅が、最後の低論理状態を除いて、設定される。最後の低論理状態は遅延回路段414bによってではなく、CLKIN信号の次のアクティブ・エッジの発生によって決定される。
図12および13は、1つの遅延回路段514を用いて入力クロックをn逓倍するクロック逓倍回路について示したものである。この回路は、CORECLK出力の高論理レベル期間および低論理レベル期間の両方が遅延回路段514によって設定されるということ以外は図10の回路と同様の動作を行う。動作において、まず、エッジ検出器108aは信号CLKINのアクティブ・エッジを検出する検出したアクティブ・エッジに応答してエッジ検出器108aはパルスをORゲート104に出力し、ORゲート104はSRフリップフロップ512のセット入力を高レベルに駆動する。これによって、CORECLK信号が高レベルに駆動される。また、このパルスはカウンタ106をリセットさせる。CORECLKの低レベルから高レベルへの遷移が遅延回路段514による遅延を受けた後に立ち下がり検出器108bおよび立ち上がり検出器108cに入力される。CORECLKの低レベルから高レベルへの遷移に応答して、エッジ検出器108cはパルスを出力してカウンタ106をインクリメントさせ、またリセット入力SRフリップフロップ512を高レベルに駆動する。これによって、CORECLKが低レベルに駆動される。コンパレータ107から出力されるMATCH信号は、カウンタ106から出力される値が、コンパレータ107に入力されるnの値と等しくなるまで、低レベルのまま維持される。CORECLKの高レベルから低レベルへの遷移は、遅延回路段514で遅延された後に立ち下がり検出器108bによって検出される。検出されたCORECLKの高レベルから低レベルへの遷移に応答して、エッジ検出器108bはパルスをANDゲート105に出力する。MATCH信号が低レベルとなっている間、エッジ検出器108bからのパルスに応じて、このパルスと類似のパルスがANDゲート105の出力端子から発せられ、これによって、SRフリップフロップ512のセット入力が高レベルに駆動される。これによって、CORECLK信号が低レベルから高レベルへ遷移する。
【0058】
すると、遅延回路段514によって指定された遅延時間の後、立ち下がり検出器108bが、CORECLKの高レベルから低レベルへの遷移を検出する。この検出に応答して、CORECLKが高レベルに駆動される。同様に、立ち上がり検出器108cは遅延回路段514で指定された遅延時間の後に、CORECLKの低レベルから高レベルへの遷移を、検出する。これに応答して、CORECLKが低レベルに駆動される。立ち上がり検出器108cによって、高レベルから低レベルへの遷移が検出されるごとに、カウンタがインクリメントされる。カウンタの出力がnの値と等しくなると、MATCH信号が高レベルに駆動され、これによって、立ち下がり検出器108bからの次のパルス出力が阻止される。従って、CORECLKは、CLKINの次のアクティブ・エッジによってカウンタ106がリセットされるまで低レベルの状態のままに維持される。
【0059】
容易にわかるように、この回路では、1つの遅延回路段514を用いて50%のデューティ・サイクルを有するクロックを発生することができる。従って、クロック逓倍回路を実現するのに必要となる回路の数を非常に低減できる。
上記のように、本発明によれば、従来のクロック逓倍方法と比較して著しい利点が得られる。第1に、本発明は、入力クロック信号と同じ基本周波数の、または、この周波数を逓倍した内部クロックを、入力クロック信号のデューティ・サイクルに依存しない位相幅を有するように発生させることができる手段を提供する。従って、25MHz 以上の高周波においてですら、リンギングなどの入力クロック信号のデューティ・サイクルの不安定性あるいは雑音によって内部クロック信号が著しい影響を受けることがない。さらに、本発明によれば、回路中の最悪の場合の論理経路に基づいて、内部クロック信号の位相幅を最適化することが可能であり、不安定なデューティ・サイクルを有する入力クロックに対しても誤動作を起こすことがない。さらに、遅延回路段による最適化された位相幅の生成は、温度、電圧、および製造パラメータのばらつきに対して正確に適合するように、また、これらのばらつきを評価してこれに整合するように行うことができる。従って、本発明によれば、高周波を用いる集積回路、また、特に広範囲の電源電圧範囲で動作する集積回路における内部クロック信号の生成を容易に達成することができる。
【0060】
本発明によれば、nの値をハードワイヤによって、または、メモリに記憶させることによって与え、入力クロックのアクティブ・エッジに応答してトリガされる出力クロック・サイクル数がこのnの値によって定まるようになし、このnの値の変更を回路設計を変更することなく行うことが可能である。また、クロック逓倍回路を1つの遅延回路だけで実現することができる。
本発明は、好適な実施例について説明したが、もちろん、これに限定されることなく、変形を施し、あるいは他の手段によって本発明の利点と恩恵を受けるようにすることができることは、当該技術に関して通常の能力を有する者にとっては明白なことであろう。例えば、逓倍されたクロックを発生させるのに、入力クロックの立ち上がりあるいは立ち下がりのどちらを用いてもよいし、また、立ち上がりと立ち下がりの両方を用いるようにしてもよい。さらに、エッジ検出器の出力に応答してクロック遷移を発生させるのに用いる回路として、SRフリップフロップの代わりに他の論理回路を用いることもできる。また、クロック遷移をカウントするための回路として、汎用のカウンタあるいは個別論理回路を用いることができる。また、カウントすべき遷移の数は、所定のカウント数に達したときにどの信号を阻止するようにするかに依存して変えることもできる。このような変形あるいは別の手段は特許請求範囲に定義された本発明の範囲に属するものであることは明かである。
【図面の簡単な説明】
【図1】本発明の好適な実施例の集積回路の回路構成をブロック図として表したものである。
【図2】本発明の好適な実施例のクロック発生回路の回路図である。
【図3】図2のクロック発生回路の遅延回路段部分の回路を示したものである。
【図4】図4(a)および(b)は本発明の好適な実施例のクロック発生回路の動作を示したタイミング図である。
【図5】本発明の第1の他の実施例のクロック発生回路の回路構成をブロック図として表したものである。
【図6】本発明の第2の他の実施例のクロック発生回路の回路構成をブロック図として表したものである。
【図7】図6の回路の動作を表すタイミング図である。
【図8】本発明の第3の他の実施例のクロック発生回路の回路構成をブロック図として表したものである。
【図9】図8の回路の動作を表すタイミング図である。
【図10】本発明の第4の他の実施例のクロック発生回路の回路構成をブロック図として表したものである。
【図11】図10の回路の動作を表すタイミング図である。
【図12】本発明の第5の他の実施例のクロック発生回路の回路構成をブロック図として表したものである。
【図13】図12の回路の動作を表すタイミング図である。

Claims (11)

  1. 入力クロック信号に応答して、出力クロック信号を発生するためのクロック発生回路であって、
    前記入力クロック信号の単一のアクティブ・エッジの発生に応答して、出力クロック信号エッジのシーケンスを発生するためのリセット可能なラッチ回路、
    前記ラッチ回路は、前記入力クロック信号の前記アクティブ・エッジの検出に応答して、検出回路から信号入力を受信するために接続された第1の入力を含んでおり、それにより前記ラッチ回路の第1の方向に第1の出力遷移を生じ、
    前記ラッチ回路の出力は、遅延手段と第1のアクティブ・エッジ検出器によって、前記ラッチ回路の他の入力に接続され、前記遅延手段によって与えられた所定の遅延の後、第1の方向における出力遷移の検出に応答して、信号入力を前記第1の方向から反対の方向ラッチ出力遷移を生じる前記他の入力に与え、
    第2のアクティブ・エッジ検出器に結合された遅延手段を含み、所定の方向に前記ラッチ回路の遅延された出力遷移を検出し、各検出された遷移に応答して、それぞれの遅延増加後、前記ラッチ回路の前記第1の入力へ第1の方向にラッチ回路の他の出力遷移を生じる更なる入力を加える回路、及び
    出力クロック信号エッジの所定の数の発生後に、前記ラッチ回路の動作を禁止するための回路、
    を有することを特徴とするクロック発生回路。
  2. 各々の前記遅延手段は、前記第1と第2のアクティブ・エッジ検出器の各々に結合された出力を有する共通の遅延手段によって与えられ、且つ前記第1と第2のアクティブ・エッジ検出器の一方は立ち上り検出器であり、他方は立ち下り検出器であることを特徴とする請求項1に記載のクロック発生回路。
  3. 前記禁止回路は、出力クロック信号のエッジを計数するための計数回路を含み、前記ラッチ回路において発生する前記エッジは、所定の数を有する計数回路の計数の比較に基づいて比較器の出力に応答して禁止されることを特徴とする請求項1または請求項2に記載のクロック発生回路。
  4. 前記ラッチ回路からの遅延した出力は、出力クロック信号エッジの所定の数の発生後、前記禁止回路によってディスエーブルされるゲート回路によってラッチ回路の前記第1の入力に接続されることを特徴とする請求項1に記載のクロック発生回路。
  5. 前記所定の遅延の少なくとも1つは、複数の遅延素子と可変遅延回路段の伝播遅延を設定するために、複数の遅延素子の間で選択する選択回路を有する可変遅延回路段と直列の固定遅延回路段によって具現化されることを特徴とする請求項1または請求項2に記載のクロック発生回路。
  6. 前記可変遅延回路段は、さらに、前記可変遅延回路段の前記選択回路に結合され、前記複数の遅延素子の各々と関連する複数のプログラム可能な素子を有し、前記プログラム可能な素子は、その関連する素子が前記可変遅延回路段に直列に接続されるべきであるか否かを表示することを特徴とする請求項5に記載のクロック発生回路。
  7. 更に、複数のマルチプレックサを有し、その各々は関連したプログラム可能な素子に接続された第1の入力を有し、その各々は関連した選択ラインに接続された第2の入力を有し、且つその各々はテストモード入力に応答して、その関連した遅延素子が前記可変遅延回路段に直列に接続されるべきであるか否かを決定するためその関連した選択ラインまたはその関連したプログラム可能な素子の何れかを選択するテストモード入力に結合された制御入力を有することを特徴とする請求項5または請求項6に記載のクロック発生回路。
  8. シーケンスを禁止することによって入力クロック信号に応答する出力クロック信号を発生する方法であって、
    リセット可能なラッチ回路を動作して、前記入力クロック信号の単一のアクティブ・エッジの発生に応答して、一連の出力クロック信号エッジを発生するステップと、
    前記入力クロック信号の前記アクティブ・エッジの検出に応答して、前記ラッチ回路の第1の入力信号入力を与え、それによって、第1の方向に前記ラッチ回路の第1の出力遷移を生じるステップ、
    所定の遅延の後、信号入力を前記ラッチ回路の他の入力に与えることによって、第1の方向における出力遷移の第1のアクティブ・エッジ検出器による検出に応答して、前記第1の方向と逆の方向ラッチ回路の出力遷移を生じるステップ、
    その後、所定の方向における前記ラッチ回路の出力遷移の第2のアクティブ・エッジ検出器による検出に応答して、所定の遅延の後、ラッチ回路の前記第1の入力へ更なる入力を与え、前記シーケンスの繰り返しを禁止するために、第1の方向に前記ラッチ回路の他の出力遷移を生じるステップ、及び
    前記シーケンスの繰返しの選択された数の後、前記ラッチ回路の動作を禁止して、出力クロック信号エッジの所定の数を発生するステップ、
    を有することを特徴とする方法。
  9. 入力クロック周波数の乗算である周波数を有する出力クロック信号を発生するクロック乗算回路であって、
    (a)入力クロックのアクティブ・エッジを検出する検出回路、
    (b)遅延ラインを含み、出力クロックエッジによって規定された出力クロック信号を与えるエッジ発生回路、
    (c)前記エッジ発生回路は、前記入力クロックのアクティブ・エッジの検出に応答して、前記アクティブ・エッジに相当する第1の出力クロック・エッジを発生し、その後、前記遅延ラインを介して、前記第1の出力クロック・エッジと次のn−1出力クロック・エッジを連続的にフィードバックすることによって、nより多くの出力クロック・エッジ(ただし、nは少なくとも2)を発生し、且つ
    (d)第1の出力クロック・エッジの後、n個の出力クロック・エッジの発生後、前記エッジ発生回路を禁止するために、出力クロック・エッジの発生に応答する禁止回路
    を有することを特徴とするクロック乗算回路。
  10. クロック発生回路の出力発生回路の出力に、その入力に受信された入力クロック信号に応答する第1の出力クロック信号を発生するためのクロック発生回路であって、
    前記クロック発生回路の入力に接続された入力を有し、遅延入力クロック信号をプリセットするための出力を有する第1の遅延回路段、
    第1のラッチ入力及び第2のラッチ入力を有し、且つ前記クロック発生回路の出力に接続された出力を有するラッチ、
    前記クロック発生回路の入力に接続された入力を有し、且つ前記第1のラッチ入力に接続された出力を有し、前記入力クロック信号の第1の遷移に応答する前記ラッチをセットするためのセット回路、及び
    前記第1の遅延回路段の出力に接続された入力を有し、且つ前記第2のラッチ入力に接続された出力を有し、遅延された入力クロック信号の第1の遷移に応答するラッチをリセットするためのリセット回路、
    を有することを特徴とするクロック発生回路。
  11. 更に、前記第1の遅延回路段の出力に接続された入力を有し、前記リセット回路に接続された出力を有する第2の遅延回路段、及び
    前記第2の遅延回路段の出力に接続された入力を有し、前記リセット回路に接続された出力を有する第3の遅延回路段を有し、
    前記セット回路は、前記クロック入力における第1の遷移及び前記第2の遅延回路段の出力における第1の遷移を検出するための、及びそれに応答する前記ラッチをセットするための回路を有し、且つ
    前記リセット回路は、前記第1の遅延回路段の出力における第1の遷移及び前記第3の遅延回路段の出力における第1の遷移を検出するための、及びそれに応答する前記ラッチをリセットするための回路を有することを特徴とする請求項10に記載のクロック発生回路。
JP10815493A 1992-05-08 1993-05-10 クロック逓倍回路を備えた安定クロック発生回路 Expired - Lifetime JP3568215B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US88075192A 1992-05-08 1992-05-08
US07/880,550 US5336939A (en) 1992-05-08 1992-05-08 Stable internal clock generation for an integrated circuit
US07/880751 1992-11-13
US07/880550 1992-11-13
US07/975809 1992-11-13
US07/975,809 US5359232A (en) 1992-05-08 1992-11-13 Clock multiplication circuit and method

Publications (2)

Publication Number Publication Date
JPH06202756A JPH06202756A (ja) 1994-07-22
JP3568215B2 true JP3568215B2 (ja) 2004-09-22

Family

ID=27420503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10815493A Expired - Lifetime JP3568215B2 (ja) 1992-05-08 1993-05-10 クロック逓倍回路を備えた安定クロック発生回路

Country Status (3)

Country Link
EP (1) EP0570158B1 (ja)
JP (1) JP3568215B2 (ja)
DE (1) DE69327612T2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5570294A (en) * 1994-03-11 1996-10-29 Advanced Micro Devices Circuit configuration employing a compare unit for testing variably controlled delay units
US5430394A (en) * 1994-03-11 1995-07-04 Advanced Micro Devices, Inc. Configuration and method for testing a delay chain within a microprocessor clock generator
US5617563A (en) * 1994-11-04 1997-04-01 Sony Corporation Of Japan Duty cycle independent tunable clock
JP3505018B2 (ja) * 1994-11-22 2004-03-08 株式会社ルネサステクノロジ 半導体集積回路
DE59500516D1 (de) * 1995-05-05 1997-09-18 Siemens Ag Konfigurierbare integrierte Schaltung
JP3442924B2 (ja) * 1996-04-01 2003-09-02 株式会社東芝 周波数逓倍回路
DE19844481C1 (de) 1998-09-28 2000-05-25 Siemens Ag Integrierte Schaltung mit einer Kontaktierungsstelle zum Wählen einer Betriebsart der integrierten Schaltung
JP3883090B2 (ja) * 1999-02-17 2007-02-21 富士通株式会社 データ再生システムにおけるクロック調整装置
CA2270516C (en) 1999-04-30 2009-11-17 Mosaid Technologies Incorporated Frequency-doubling delay locked loop
US6671817B1 (en) * 2000-03-15 2003-12-30 Nortel Networks Limited Method and apparatus for producing a clock signal having an initial state at reference point of incoming signal thereafter changing state after a predetermined time interval
DE10149585C2 (de) 2001-10-08 2003-11-20 Infineon Technologies Ag Integrierbare, steuerbare Verzögerungseinrichtung, Verwendung einer Verzögerungseinrichtung sowie Verfahren zum Betrieb einer Verzögerungseinrichtung
DE10301239B4 (de) * 2003-01-15 2005-04-28 Infineon Technologies Ag Verfahren und Vorrichtung zur Erzeugung von verzögerten Signalen
US7126396B1 (en) * 2003-07-16 2006-10-24 National Semiconductor Corporation System for clock duty cycle stabilization
JP2006217455A (ja) * 2005-02-07 2006-08-17 Kawasaki Microelectronics Kk リングオシレータ回路
JP2008042501A (ja) * 2006-08-04 2008-02-21 Nippon Telegr & Teleph Corp <Ntt> 電子回路装置
US7592844B2 (en) * 2007-01-19 2009-09-22 Power Integrations, Inc. Comparator with complementary differential input stages
JP2009005029A (ja) * 2007-06-20 2009-01-08 Nippon Telegr & Teleph Corp <Ntt> 電子回路装置
JP5486354B2 (ja) * 2010-03-08 2014-05-07 ラピスセミコンダクタ株式会社 データ伝送回路
JP7255790B2 (ja) 2018-06-15 2023-04-11 三菱重工業株式会社 半導体装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4217639A (en) * 1978-10-02 1980-08-12 Honeywell Information Systems Inc. Logic for generating multiple clock pulses within a single clock cycle
US4316148A (en) * 1979-09-04 1982-02-16 Sperry Corporation Variable frequency logic clock
US4638256A (en) * 1985-08-15 1987-01-20 Ncr Corporation Edge triggered clock distribution system
US5018111A (en) * 1988-12-27 1991-05-21 Intel Corporation Timing circuit for memory employing reset function

Also Published As

Publication number Publication date
EP0570158B1 (en) 2000-01-19
DE69327612D1 (de) 2000-02-24
JPH06202756A (ja) 1994-07-22
EP0570158A3 (en) 1994-06-22
EP0570158A2 (en) 1993-11-18
DE69327612T2 (de) 2000-08-31

Similar Documents

Publication Publication Date Title
US5359232A (en) Clock multiplication circuit and method
JP3568215B2 (ja) クロック逓倍回路を備えた安定クロック発生回路
US5336939A (en) Stable internal clock generation for an integrated circuit
JP4745127B2 (ja) クロック切替回路
US4893271A (en) Synthesized clock microcomputer with power saving
US6400641B1 (en) Delay-locked loop with binary-coupled capacitor
US6100736A (en) Frequency doubler using digital delay lock loop
US5506982A (en) Data processing system generating clock signal from an input clock, phase locked to the input clock and used for clocking logic devices
US5790612A (en) System and method to reduce jitter in digital delay-locked loops
US6225840B1 (en) Clock generation circuit which reduces a transition time period and semiconductor device using the same
US6711229B1 (en) Method of synchronizing phase-locked loop, phase-locked loop and semiconductor provided with same
US7652517B2 (en) Method and apparatus for generating synchronous clock signals from a common clock signal
JP3908618B2 (ja) マルチモードラッチタイミング回路、ロジック回路、ロジック回路を動作させる方法、および、ロジック回路により必要とされるクロック電力を低減する方法
EP0162870B1 (en) Synthesized clock microcomputer with power saving
JPH0511876A (ja) デイジタル回路装置
KR970018653A (ko) 클록 발생회로, pll회로와 도체장치 및 클록발생회로의 설계방법
KR950010208B1 (ko) 신호지연회로 및 클록신호발생회로
US6064244A (en) Phase-locked loop circuit permitting reduction of circuit size
US20020000856A1 (en) Delay locked loop with reduced noise response
KR20040103494A (ko) 지연고정 시간을 줄인 레지스터 제어 지연고정루프
JP3416028B2 (ja) クロック調整回路及びクロック調整方法
JP2008278482A (ja) マルチスピードリングオシレータ
JP3732556B2 (ja) クロック供給回路
US7049864B2 (en) Apparatus and method for high frequency state machine divider with low power consumption
US5606290A (en) Phase locked loop circuit having lock holder

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20031208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040517

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040615

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080625

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090625

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090625

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100625

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100625

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110625

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120625

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130625

Year of fee payment: 9

EXPY Cancellation because of completion of term