(57)【要約】論理経路上のデータ伝送のスループットレートを倍にするための方法および装置は、伝送されるべきデータストリームの連続ビットを交互に受取る２つのラッチと、実質的に１８０度位相がずれた２つの別個のクロックによって交互にクロックされるデータ伝送経路を有するマルチプレクサとを設けることを含む。
2004518334.tif 000002
【特許請求の範囲】
【請求項１】
マルチプレクサであって、
第１のデータ伝送経路および第２のデータ伝送経路と、
第１のクロック入力部および第２のクロック入力部とを含み、第１のクロック入力部は、第１のクロック信号を受け、第２のクロック入力部は、第１のクロック信号と実質的に１８０度位相がずれたクロック信号を受け、
前記第１のデータ伝送経路は、第１のクロック信号によって制御される第１のクロックスイッチを有し、
前記第２のデータ伝送経路は、第１のクロック信号と実質的に１８０度位相がずれたクロック信号によって制御される第２のクロックスイッチを有し、前記マルチプレクサはさらに、
前記第１のデータ伝送経路および第２のデータ伝送経路に接続される共通の出力ノードを含む、マルチプレクサ。
【請求項２】
第１のデータ伝送経路内の第１の選択スイッチと、第２のデータ伝送経路内の第２の選択スイッチとをさらに含み、第１の選択スイッチは、第１のクロック信号の遅延コピーによって制御され、第２の選択スイッチは、第１のクロック信号と実質的に１８０度位相がずれたクロック信号の遅延コピーによって制御され、これにより前記共通の出力ノードで衝突が存在しないようにされる、請求項１に記載のマルチプレクサ。
【請求項３】
前記共通の出力ノードに接続されて、データ伝送経路のうちの１つを通過したデータ値を記憶するスタティックラッチをさらに含む、請求項１に記載のマルチプレクサ。
【請求項４】
ダブルデータレートフリップフロップであって、
第１のラッチおよび第２のラッチを含み、第１のラッチおよび第２のラッチは、データ入力部およびデータ出力部を有し、前記ダブルデータレートフリップフロップはさらに、
マルチプレクサを含み、前記マルチプレクサは、
第１の端部上で前記第１のラッチのデータ出力部に結合され、第２の端部上で共通の出力ノードに結合され、かつ、さらに第１のクロック信号によって制御される第１のデータ伝送経路と、第１の端部上で第２のラッチのデータ出力部に結合され、第２の端部上で共通の出力ノードに結合され、かつ、さらに前記第１のクロック信号と実質的に１８０度位相がずれたクロック信号によって制御される第２のデータ伝送経路とを含む、ダブルデータレートフリップフロップ。
【請求項５】
前記第１のクロック信号は第１のラッチへの書込を制御し、前記第１のクロック信号と実質的に１８０度位相がずれたクロック信号は、第２のラッチへの書込を制御する、請求項４に記載のダブルデータレートフリップフロップ。
【請求項６】
前記共通の出力ノードに結合されるラッチをさらに含む、請求項４に記載のダブルデータレートフリップフロップ。
【請求項７】
前記第１のクロック信号と実質的に１８０度位相がずれたクロック信号は、第１のクロック信号の反転である、請求項４に記載のダブルデータレートフリップフロップ。
【請求項８】
前記第１のクロック信号と実質的に１８０度位相がずれたクロック信号は、第２のクロック信号である、請求項４に記載のダブルデータレートフリップフロップ。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、集積回路の入力／出力回路に関し、より具体的には、レジスタデータが集積回路装置に対して入出力され得るレートを倍にするための方法および装置に関する。
【０００２】
【背景】
多くのデジタル論理応用では、ＩＣ装置が許容し得る限りできるだけ高いデータレートを用いて集積回路装置（ＩＣ）の入力／出力ポートにデータを与えることが望ましい。この高いデータスループットレートは、ネットワーク通信および携帯電話基地局等の応用において重要である。
【０００３】
データ入力および出力レートを最大にするための様々なアプローチが、過去に用いられてきた。これらの原理は、装置が動作し得るクロックレートを高速化することであった。これらのアプローチは、ＩＣ装置を製造するために用いられる材料およびツールのプロセスまたは製造許容誤差を改善することに焦点を当ててきた。しかし、プロセスまたは装置に対していかなる改良が行なわれても、既存のいかなる技術でも、データレートを設定する最大のクロックレートが存在する。
【０００４】
書替え可能ゲートアレイ（「ＦＰＧＡ」）等のリプログラマブル論理装置が、すべての種類のデジタル論理応用において一般的に用いられている。したがって、ＦＰＧＡは、高いデータスループットを必要とする多くの応用で用いられている。ＦＰＧＡのデータスループットレートも、他のＩＣのように、その最大のクロックレートによって制限される。ＦＰＧＡは通例、論理関数発生器または構成可能な論理素子のアレイ、入力／出力ポート、および行列状の配線を含む。行列状の配線は一般に、構成可能な論理素子を囲み、構成可能な論理素子間および構成可能な論理素子と入力／出力ポートとの間で論理データ信号を接続する。ＦＰＧＡは、装置の構成を制御する、スタティックＲＡＭセル、アンチヒューズ、ＥＰＲＯＭセル、およびＥＥＰＲＯＭセル等のプログラム用メモリ素子によって構成される。メモリ素子のプログラミングに応じて、構成可能な論理素子は、異なった論理機能を実行し、さまざまな様態で互いに、および入力／出力ポートに接続される。一般に、ＦＰＧＡはまた、ＩＣ上で他の機能を構成するためのプログラマブルメモリセルを提供する。たとえば、クロック信号のルーティングおよびＦＰＧＡ上での多数のクロックネットの使用は、多くの場合、ユーザによってプログラマブルに選択可能である。
【０００５】
集積回路装置を製造するために用いられるプロセスの限界にかかわらず、いかなる既知の製造プロセスにおいても装置の出力部でのデータスループットレートを上げることのできる論理回路設計を実現することが望ましい。さらに、このような論理回路設計をＦＰＧＡに組込んで論理回路のスループット能力を活用し、また構成可能ではない装置内では実現され得ない論理回路設計にプログラマブル機能を提供することが望ましい。
【０００６】
【発明の概要】
この発明に従うと、いかなる既存のクロック信号レートに対しても集積回路装置の入力／出力ポートのデータスループットレートを倍にすることのできる論理回路設計が開示される。この回路は、デバイス内通信に対して有用であり得る。ＦＰＧＡに組込まれると、論理回路とともに用いられるクロックおよびデータソースは、プログラマブルに選択可能となり得る。
【０００７】
この発明の第１の局面では、２つのマスタラッチと、スレーブラッチを含むマルチプレクサとから構成されるダブルデータレートフリップフロップが開示される。各マスタラッチは、別々のデータ信号と、他方のマスタラッチが受けるクロック信号から実質的に１８０度位相がずれたクロック信号とを受ける。
【０００８】
各マスタラッチの出力信号は、マルチプレクサの入力部に送られる。マルチプレクサはまた、互いに１８０度位相がずれた２つのクロック信号を受け、これらは、マルチプレクサにその入力をその出力部とスレーブラッチとにクロック信号に同期して交互に与えさせる。
【０００９】
この発明の第２の別の局面では、ダブルデータレートフリップフロップ回路は、入力経路、出力経路、および装置の入力／出力ポートでのトライステートイネーブル経路に任意に設けられ得る。
【００１０】
この発明の第３の別の局面では、ダブルデータレートフリップフロップ回路は、ダブルデータレートフリップフロップ、通常のフリップフロップ、ラッチ、または非レジスタ化経路として動作するようにプログラマブルに選択され得る。
【００１１】
この発明の第４の別の局面では、ＦＰＧＡに組込まれると、ダブルデータレートフリップフロップのためのクロックソースは、単一のクロックとその反転との間で、または互いに１８０度位相がずれて動作するように同期された２つの別個のクロックとの間で、プログラマブルに選択され得、また、ダブルデータレートフリップフロップに対するデータソースは、プログラマブルに選択され得る。
【００１２】
［詳細な説明］
図１は、この発明の１つの実施例に従ったダブルデータレートフリップフロップ１０を示すブロック図である。構造１０は、書替え可能ゲートアレイ等のより大きな集積回路装置の一部である。この回路は現在、ザイリンクス社（Ｘｉｌｉｎｘ， Ｉｎｃ．）から間もなくリリースされる予定のバーテックス（Ｖｉｒｔｅｘ）ＩＩ  ＦＰＧＡ内に組込まれる。しかし、ダブルデータレートフリップフロップは、高速データスループット応用で採用されるどのような集積回路装置の種類に対しても有用である。
【００１３】
伝統的には、フリップフロップは、単一のマスタラッチとスレーブラッチとで構成され、ダブルデータレートフリップフロップ１０を生成するための制御回路系は、２つのマスタラッチ１２および１４と、スレーブラッチをその出力部に含むダブルデータレートマルチプレクサ１６とを含む。各レジスタ１２および１４は、データ入力ピン１８および２０と、クロックピン２２および２４と、出力ピン２６および２８とを含む。データ入力ピン１８および２０は、集積回路装置の残りの部分から来るデータの異なるソースに接続されると仮定される。
【００１４】
通例、２つのマスタラッチは、集積回路装置上または集積回路装置外のどこかに送られるデータストリームからの連続ビットを交互に受ける。この回路を組込んだＦＰＧＡの場合、データをマスタラッチ入力部に与えることは、データをマスタラッチ入力ピンに送るように適切に配線をプログラムすることによって達成される。
【００１５】
通例、入力部は、関連のデータストリームを搬送する別個の配線にプログラマブルに接続される。プログラマブル接続は、プログラマブル論理技術の当業者には周知であるいくつかの手段のうちのいずれかを用いて行なわれ得る。たとえば、このようなプログラマブル接続は、スタティックラッチメモリセルが制御するｎチャネルパストランジスタを用いて行なわれ得る。マスタラッチは、クロック制御されたアクセスゲートまたはいずれかの他の好適なクロックトリガ型メモリ回路を備えたクロスカップルされたインバータであり得る。
【００１６】
マスタラッチのクロックピン２２および２４は、互いに実質的に１８０度位相がずれたクロック信号３０および３２をクロックソース３４から受ける。しかし、２つのクロックピンが必要でないことも理解されるべきである。１８０度位相がシフトしたクロック信号を生成する働きをするフリップフロップ内部のインバータに結合される単一のクロックピンが代わりに用いられてもよい。
【００１７】
この発明の好ましいＦＰＧＡ、バーテックスＩＩは、クロックソースを制御する能力をダブルデータレートフリップフロップに提供する。
【００１８】
具体的には、クロックソースは、単一のクロックおよびその反転信号であってもよく、またはそれらの間の位相のずれが１８０度で、かつ同じ周波数で動作するように同期された２つの別個のクロックであってもよい。後者のアプローチが、以下の点で有利である。すなわち、単一のクロックは一様でない立上がりエッジおよび立下がりエッジを有するおそれがあり、このことは、クロックスキューを引き起こし、ダブルデータレート動作に悪影響を及ぼすおそれがある点で、後者のアプローチが有利である。互いに１８０度位相がずれるように同期された２つの別個のクロックを用いることによって、この問題が回避される。なぜならば、立上がりエッジのみが問題となり、立上がりエッジと立下がりエッジとの間のいかなる差も無関係となるためである。ユーザが異なるオプションの間で選択することを可能にするユーザプログラマブル接続は、「デジタル移相器」（“Ｄｉｇｉｔａｌ Ｐｈａｓｅ Ｓｈｉｆｔｅｒ”）と題された米国特許出願第０９／６８４，５４０号においてヤング他（Ｙｏｕｎｇ ｅｔ． ａｌ．）によって説明されている。したがって、クロック信号３０および３２は、互いに実質的に１８０度位相がずれている。
【００１９】
第１のマスタラッチ１２の出力ピン２６が、ダブルデータレートマルチプレクサ１６の論理データ入力ピン３６に接続される。第２のマスタラッチ１４の出力ピン２８が、ダブルデータレートマルチプレクサ１６の論理データ入力ピン３８に接続される。クロック信号３０および３２は、ダブルデータレートマルチプレクサにも送られ、ここで、これらは、制御入力ピン４２および４４に接続し、それがダブルデータレートモードで動作しているときダブルデータレートマルチプレクサを介しての論理データの伝送を制御する。ダブルデータレートマルチプレクサの出力ピン４０の信号は、装置の出力段または適当ないずれの部分にも送られ得る。
【００２０】
動作において、データストリーム内の連続ビットが、２つのマスタラッチの入力部１８および２０に与えられる。ＦＰＧＡ内では、これは、入力部を２つの異なる配線にプログラマブルに接続することによって達成され得る。これらのビットは、各関連のクロック信号の立上がりエッジでマスタラッチへとクロック同期して入れられる（これは、プログラマブルに変更可能なエッジトリガを用いるラッチが採用される場合にはプログラミングまたはラッチ設計に応じて、立下がりエッジ上で起こってもよい）。第１のクロック信号３０の立上がりエッジ上では、第１のマスタラッチの出力値２６が、ダブルデータレートマルチプレクサ１６を通過する。第２のクロック信号３２の立上がりエッジ上では、第２のマスタラッチの出力２８が、ダブルデータレートマルチプレクサ１６を通過する。２つのクロック信号は１８０度位相がずれているため、単一のクロックトレジスタを用いた場合に比べて２倍のデータスループットレートが達成されることが当業者によって理解されるであろう。
【００２１】
図２は、この発明のマスタラッチ２００の好ましい実施例の詳細な実現例を示す。マスタラッチ２００は、（これが第１のマスタラッチまたは第２のマスタラッチであるかに応じてクロック信号３０および３２のうちのいずれか、または単一のクロック信号の真または補信号を受け得る）クロック入力ピン２０２、データ入力ピン２０４、クロックイネーブルピン２０６、グローバルセットおよびリセットピン２０８、セットピン２１０、およびリセットピン２１２の信号を有する。
【００２２】
ラッチはさらに、クロスカップルされたインバータ２１４および２１６と、ｎチャネルパストランジスタで構成されるアクセスゲート２１８とを含む。通常の動作中、アクセスゲートは、その入力をクロックピン２０２から受けるインバータ２２０によって制御される。
【００２３】
データは、入力ピン２０４上に与えられ、通常の動作中、ラッチのアクセスゲート２１８に与えられる。クロック信号がローになると、インバータ２２０は、その信号を反転させて、アクセスゲート２１８に入力ピン２０４からラッチへとデータを転送させる。ラッチの第１のインバータ２１４が、データを反転させ、それを第２のインバータ２２２に送り、これは、ラッチ出力部２２４でデータの真の値を利用可能にする。
【００２４】
同時に、第１のインバータ２１４は、データをフィードバックインバータ２１６に送る。フィードバックインバータ２１６の出力部と第１のインバータ２１４の入力部との間には、クロックが制御するｎチャネルパストランジスタ２２６がある。クロック信号がハイに遷移すると、パストランジスタ２２６は、フィードバックインバータ２１６からの出力を第１のインバータ２１４の入力部へと返し始め、したがって、データ値がラッチによって維持されることを確実にする。標準的なグローバルセット／リセットおよび個別のセットおよびリセット回路が、当業者には周知のように、またブロック２２８として示されるように、設けられ得る。
【００２５】
図３は、この発明のダブルデータレートマルチプレクサ２５０の好ましい実施例を開示する。図３のマルチプレクサ２５０内では、４つのデータ伝送経路２５２、２５４、２５６、および２５８が存在する。これらの経路の各々が、入力ピンを有し、共通の出力ノード２５９で終端する。このノードは、クロスカップルされたインバータで構成されるスレーブラッチ２６１に結合する。図３に示されるように、スレーブラッチ２６１は、インバータ２６５とクロスカップルされたＮＯＲゲート２６３を含む。インバータ２６５は弱くされており（弱い保持回路）、これにより、マルチプレクサ出力部２５９上の信号は、インバータ２６５の出力を容易に打ち負かすことができ、また、出力部２５９上の信号が与えられない場合は、ラッチ２６１はその値を保持する。スレーブラッチ２６１はまた、パワーオンリセット信号ＰＯＲによってイネーブルにされるパワーオンリセット機能を含む。ハイのＰＯＲ信号は、装置に電源が投入され、ＰＯＲがローにされるまで、ダブルデータレート出力信号ＯＵＴをハイに保持する。
【００２６】
図示されない別の実施例では、トランジスタ２６８、２７０、２６０、または２６４のうちのいずれかがオンの場合、インバータ２６５の出力部のパストランジスタは、衝突が起こらないように、インバータ２６５の出力部を線２５９から切離する。
【００２７】
マルチプレクサ内でスレーブラッチを含むことは決定されたが、ある特定の応用のタイミングシーケンスおよびデータスループットレートは、スレーブラッチが不要であり、除去され得るようなものであってもよい。
【００２８】
第３のデータ伝送経路２５６は、一個のｎチャネルパストランジスタ２６０を含む。パストランジスタ２６０のゲートは、パストランジスタの導通状態を決定する信号２６６によって制御される。第４のデータ伝送経路２５８も、一個のｎチャネルパストランジスタ２６４を含み、そのゲートは、パストランジスタの導通状態を決定する制御信号２６２によって制御される。マルチプレクサが非レジスタフィードスルーモードで動作することを可能にするように、第３の経路および第４の経路が設けられる。ＦＰＧＡでは、制御信号２６２および２６６は、構成メモリセルによって与えられ、したがって、ダブルデータレートフリップフロップを非レジスタフィードスルーモードにされてもよい。
【００２９】
第１のデータ伝送経路２５２および第２のデータ伝送経路２５４は、各々、単一のｎチャネルパストランジスタ２６８、２７０によって制御され、その伝送は、１８０度位相がずれた２つのクロック信号２７２および２７４のうちの１つによって制御される。これらのトランジスタの各々は、同様の様態で制御されるため、これらのトランジスタのうちの１つの制御のみを詳細に説明する。第１のデータ経路のｎチャネルパストランジスタ２６８は、２入力ＮＡＮＤゲート２７６の出力部に接続される。ＮＡＮＤゲート２７６の一方入力部２８２は、入力信号を生成する経路２８０により論理的に合成される信号２７８によって制御される。ＮＡＮＤゲート２７６への他方入力部２８４は、根本的には、第１のクロック信号２７２によって制御される。ＮＡＮＤゲート入力部２８４に到達する前に、クロック信号は２つの並列な経路を通過する。各経路は、第２のＮＡＮＤゲート２８６への入力部で終端する。第２のＮＡＮＤゲート２８６の出力部は、第１のＮＡＮＤゲートの第２の入力部２８４に結合される。第２のＮＡＮＤゲート２８６への一方入力は、第１のクロック信号２７２から直接得られる。第２のＮＡＮＤゲートへの第２の入力は、第１のクロック信号の遅延信号である。この第１のクロック信号の遅延信号は、４つの遅延インバータ２８８および２入力ＮＯＲゲート２９０を通過する。追加の遅延インバータ２９２が、所望であれば選択的にこの経路に加えられてもよい。
【００３０】
マルチプレクサがダブルデータレートモードで用いられる場合、伝送用のデータの連続ビットは、マスタラッチから２つの入力ピン２５２および２５４上に交互に与えられる。データは、関連のパストランジスタが導通している場合にのみ、第１のデータ経路または第２のデータ経路を通過する。共通ノードでのいかなる競合も防ぐために、第３の経路２５６および第４の経路２５８に対する制御信号は、他の経路が導通しないように設定される。
【００３１】
ここで、図３のダブルデータレート動作を表すタイミング図である図４を参照する。動作において、２入力ＮＯＲゲート２９０は、その入力部のうちの１つ２９４上で論理ローを受け、したがって、それがその他方入力部上で受けるクロック信号の遅延信号のインバータとして働く。
【００３２】
第１のクロック信号２７２は、時間ｔ０の間ローであり、これは、ロー信号が遅延インバータ２８８およびＮＯＲゲート２９０を伝搬するのに十分なほど長く、第２のＮＡＮＤゲート２８６への２つの入力がロー信号およびハイ信号となる。これによって、第２のＮＡＮＤゲート２８６の出力がハイとなる。第１のＮＡＮＤゲート２７６が２つのハイの入力を受け、その出力がローとなり、第１のデータ経路２５２内のパストランジスタ２６８がオフとなるように、制御信号２７８も適切に設定される。（時間ｔ１の始めに）第１のクロック信号２７２がハイに遷移すると、第２のＮＡＮＤゲート２８６の出力はローとなる。なぜならば、１つの入力はハイであり、第２の入力へのクロック遷移が遅延され、第２の入力信号は一時的にハイにされるためである。第２のＮＡＮＤゲート２８６の出力は、ハイへのクロック遷移が遅延インバータ２８８およびＮＯＲゲート２９０を伝わる時間ｔ１の間、ローのままである。第１のＮＡＮＤゲート２７６の一方入力部２８４上のローによって、第１のＮＡＮＤゲートの出力がハイとなり、パストランジスタ２６８および第１のデータ経路がオンとなり、入力ピン２５２上のデータ信号が、共通の出力ノード２５９へと伝送され、スレーブラッチ２６１に書込まれる。第１のクロック信号のハイへの遷移が４つの遅延インバータ２８８およびＮＯＲゲート２９０を伝搬し（ｔ２の始め）、信号の５回の反転が引起こされた後、第２のＮＡＮＤゲート２８６への第２の入力は、ロー入力に遷移する。これによって再び、第２のＮＡＮＤゲート２８６の出力がハイになる。第２のＮＡＮＤゲートの出力がハイとなると、これによって、第１のＮＡＮＤゲート２７６の出力がローとなり、第１のデータ経路内のパストランジスタ２６８が再びオフとなる。
【００３３】
第１のクロック信号と実質的に１８０度位相がずれた第２のクロック信号２７４によってこの第２の経路が制御されること以外は、第２のデータ経路２５４内のパストランジスタ２７０は、第１のデータ経路に関して説明されたものと本質的に同一である第２の組の回路によって制御される。したがって、動作において、第２のデータ経路２５４内のパストランジスタ２７０は、第１の経路から１８０度遅延した時間枠ｔ３の間導通する。クロック信号によって制御される経路に関連した制御回路および遅延インバータは、あるデータ経路上でデータが伝送される時間枠を作り、データがラッチへと書込まれる共通出力ノードでの衝突を防止することが、当業者によって理解されるであろう。
【００３４】
ダブルデータレートモードに加えて、マルチプレクサ２５０は、２つの他の動作モードを有する。上述のように、それは、非レジスタ信号コネクタとして動作し得る。同様に、マルチプレクサ２５０は、２つのマスタラッチのうちの１つからのデータが非同期的に通過してマルチプレクサスレーブラッチに到達するラッチモードにプログラムされ得る。マルチプレクサは、以下のようにラッチモードでは動作する。第３のデータ伝送経路２５６および第４のデータ伝送経路２５８がオフにされる。最初の２つのデータ伝送経路２５２および２５４のうちの１つもオフにされる。第２のデータ経路２５４がオフにされると仮定すると、第１のデータ経路２５２は、制御信号２７９をハイに設定することによってオンにされる。このハイの信号は、インバータ２８１、ＮＡＮＤゲート２８３、インバータ２８５、およびＮＡＮＤゲート２７６によって４回反転させられる。信号が４回反転させられるため、パストランジスタ２６８は、その制御ゲート上でハイの信号を受け、経路２５２をオンにし、これによって、マルチプレクサは、マスタラッチからのデータをスレーブラッチ２６１へと非同期的に渡す。
【００３５】
図５は、この発明のダブルデータレートマルチプレクサ１６の別の好ましい実施例の詳細な実現例を示す。このマルチプレクサは、４つの論理データ入力ピン５０、５２、５４、および５６を有する。各入力ピンは、少なくとも１つの論理データ伝送経路に接続される。第１のデータ経路５８は、その経路上のデータの伝送を制御する直列の２つのｎチャネルパストランジスタ６０および６２を有する。同様に、第２のデータ経路６４も、その経路上のデータの伝送を制御する２つのｎチャネルパストランジスタ６６および６８を有する。第３のデータ経路７０および第４のデータ経路７２は、各々、データの伝送を制御するための一個のｎチャネルパストランジスタ７４、７６を有する。加えて、一番上のデータ入力ピン５０は、一個のｎチャネルパストランジスタ８０が制御する第５の論理データ経路７８に接続される。第２のデータ入力ピン５２はまた、１つのパストランジスタ８４が制御する第６の論理データ経路８２に接続される。パストランジスタはまた、ｐチャネルデバイスを用いて実現され得る。論理データ経路の各々は、共通の出力ノード８６において終端する。
【００３６】
第１のデータ経路５８の第１のパストランジスタ６０の制御ゲートは、３入力ＮＯＲゲート８８の出力部に接続される。ＮＯＲゲート８８の１つの入力は、制御信号９０から来る。第２の入力は、アクティブロークロックイネーブル信号９２から来る。第３の入力は、ＮＯＲゲートへのクロック信号の伝搬を遅延する４つのインバータ９３を通過した後の第１のクロック信号３０（図１参照）から来る。第１の論理データ経路５８内の第２のパストランジスタ６２の制御ゲートは、第１のクロック信号３０に直接接続される。第２の論理データ経路６４内の第１のパストランジスタ６６の制御ゲートは、３入力ＮＯＲゲート９４の出力部に接続される。３入力ＮＯＲゲート９４は、その２入力として、制御信号９６およびクロックイネーブル信号９２を受ける。３入力ＮＯＲゲート９４の第３の入力は、ＮＯＲゲートへのクロック信号の伝搬を遅延する４つのインバータ９６を通過した後の第２のクロック信号３２から来る。第２のデータ経路６４内の第２のパストランジスタ６８は、第２のクロック信号３２に直接接続される。第３のデータ経路７０は、一個のパストランジスタ７４を有し、その制御ゲートは選択信号９８に接続される。第４のデータ経路７２は、一個のパストランジスタ７６を有し、その制御ゲートは第２の選択信号１００に接続される。第１の論理データ経路５８と並列である第５の論理データ経路７８は、一個のパストランジスタ８０を有し、その制御ゲートは第３の選択信号１０２に接続される。第２の論理データ経路６４と並列である第６のデータ経路８２は、パストランジスタ８４を有し、その制御ゲートは第４の選択信号１０４に接続される。共通の出力ノード８６が、クロスカップルされたインバータで構成されるスタティックラッチ１０６の入力部に接続される。スタティックラッチ１０６の第１のインバータの出力は、ダブルデータレートマルチプレクサの出力である。
【００３７】
マルチプレクサがダブルデータレートモードで用いられるべき場合、伝送用のデータの連続ビットは、２つの入力ピン５０と５２との上に交互に与えられる。データは、第１のデータ経路５８または第２のデータ経路６４を、その経路に関連した両方のパストランジスタが導通している場合にのみ、通過する。残りの経路に対する制御信号は、共通のノードでのいずれの競合も防ぐために、他の経路が導通しないように設定される。加えて、ＮＯＲゲート制御信号９０および９６とクロックイネーブル信号９２とがローとなり、各ＮＯＲゲート８８、９４は、自身に入力される関連のクロック信号のインバータとして作用する。
【００３８】
ここで、図５と図６との両方が参照される。図６は、ダブルデータレートモードで動作しているときの図５の回路のタイミング図である。以下の信号シーケンスによってダブルデータレートが生成される。第１の時間ｔ０では、第１のクロック信号３０はローである。このローの信号は、４つの遅延インバータ９３を通って３入力ＮＯＲゲート８８へと伝わり、その出力が、論理ハイとなり、第１のパストランジスタ６０が導通させられる。（時間ｔ１の始めに）第１のクロック信号３０がハイの値に遷移すると、そのハイの値はすぐに第２のパストランジスタ６２の制御ゲートに伝わり、これが次に導通する。両方のパストランジスタ６０および６２が導通すると、経路５８は、入力ピン５０からスタティックラッチ１０６が導通し、入力ピン５０上の論理データ値がスタティックラッチ１０６に書込まれる。（時間ｔ１の終りに）第１のクロック信号３０の立上がりエッジが４つの遅延インバータ９３を伝搬した後、それはＮＯＲゲート８８によって反転させられ、論理ロー値が第１のパストランジスタ６０の制御ゲート上に置かれる。これによって、パスデバイスが導通を停止し、第１の論理データ経路５８は、入力ピン５０からスタティックラッチ１０６の導通を停止する。第１のクロック信号は、時間ｔ１＋ｔ２の間、ハイのままである。
【００３９】
第２のクロック信号３２は、第１のクロック信号と実質的に１８０度位相がずれているため、（時間ｔ１の始めに）第１のクロック信号がハイに遷移するとき、第２のクロック信号はローに遷移する。このローへの遷移によって、第２のデータ経路６４の第２のパストランジスタ６８がオフとなる。クロック信号３２のローへの遷移が、４つの遅延インバータ９６を通ってＮＯＲゲート９４へと伝搬した後、ＮＯＲゲート９４は、ローの信号をハイへと反転し、これによって、第２の論理データ伝送経路６４の第１のパストランジスタ６６が導通させられる。（時間ｔ３の始めに）第２のクロック信号３２がハイの値へと遷移すると、第２の論理データ経路６４の第２のパストランジスタ６８も導通し始め、第２の入力ピン５２上の論理データ値は、共通の出力ノード８６に送られ、スタティックラッチ１０６に書込まれる。
【００４０】
当業者によって理解されるように、遅延インバータ９３および９６とＮＯＲゲート８８および９４とが生成するこのタイミングシーケンスの目的は、第１の論理データ伝送経路と第２の論理データ伝送経路との間での衝突が共通の出力ノードに存在しないことを確実にすることである。データ経路が導通する時間枠は、値をスタティックラッチ１０６に書込むのに十分なほど長くなるように、注意が払われなければならない。図１および図２を再び参照して、クロック信号が遷移するとき、第１のマスタラッチからの出力信号が、マルチプレクサ１６の第１の入力ピンでラッチされ、利用可能となることが理解されるだろう。図４および図６のタイミング図からわかるように、このデータ信号は、第１のクロック信号がハイに遷移するとき、マルチプレクサ１６のスレーブラッチに書込まれる。
【００４１】
一つの制御信号が制御する一つのスイッチを有する４つの論理データ経路７０、７２、７８、および８２が設けられてダブルデータレートマルチプレクサが伝統的な４対１のマルチプレクサとして働くことが可能になることも理解されるべきである。マルチプレクサの所望の機能に応じて、一つのスイッチ制御を備えた経路は、いくつ設けられてもよい。加えて、制御信号の適切な設定によって、図３のマルチプレクサに関して上で説明されたものと同様の様態でマルチプレクサ１６がラッチモードで動作することが可能となる。
【００４２】
図７は、ダブルデータレート能力が、入力部、出力部、および入力／出力ブロックのトライステート制御部に提供される、この発明の好ましい実施例を例示する。図７は、書き替え可能ゲートアレイ（図示せず）の入力／出力ブロック１１０を示す。このブロックは、ＩＣ装置の外部に接続されるパッド１１２を含む。１対の入力ラッチ１１４および１１６が、パッド１１２から論理データを受けるように接続される。入力ラッチ１１４および１１６は、１８０度位相がずれた２つの別個のクロック（図示せず）によってクロックされる。ＦＰＧＡ論理からパッドへの出力経路は、トライステートバッファ１１８によって制御される。トライステートバッファ１１８のデータ入力は、ダブルデータレートフリップフロップ１２０の出力から来る。トライステートバッファのための制御信号は、第２のダブルデータレートフリップフロップ１２２から来る。
【００４３】
ダブルデータレートフリップフロップ１２０および１２２の各々は、一般に、図１に関連して上で説明されたように動作する。つまり、これらは、これらが含まれているＦＰＧＡ装置の標準のクロックレートの２倍で、これらの出力ピン上にデータを出力することができる。したがって、ＦＰＧＡ装置のユーザは、装置をプログラムして、論理データの出力に対してダブルデータレートを用い得る。ダブルデータレートフリップフロップはまた、制御信号をトライステートバッファに供給する。これは、出力ポートがダブルデータレートモードで用いられている時にトライステートバッファが適宜、活性または非活性であることを確実にするために、必要である。クロックレートで動作させられるソースからトライステート制御信号が来る場合、データが損失し得るか、または衝突が結果として生じ得る。たとえば、トライステートが装置外部の共通のバス信号線に接続されると仮定する。バス信号線は、ダブルデータレートフリップフロップに接続されるトライステートバッファからそれが受取るダブルデータレートで動作する。他の出力が共通のバス信号線を駆動する時間が存在する。したがって、トライステートバッファは、他の時間ではなく、ある時間だけ活性であるべきである。有効なデータがトライステート入力においてはハーフクロック周期で変化している一方、トライステート制御がフルクロック周期でのみ変化している場合、競合が起こるおそれがあり、さらにはデータが損失するおそれもある。
【００４４】
クロックフォワードまたはミラーリング機能でＩ／Ｏポート回路を用いることもできる。この動作モードでは、マスタラッチのうちの１つへの１つの入力は、プログラマブルにハイに固定される。残りのマスタラッチへの入力は、プログラマブルにローに固定される。ダブルデータレート動作中、ダブルデータレートフリップフロップは、ダブルデータレートで、ハイとローとの間でトグルする。この信号は、チップ外部に送られ得、ＦＰＧＡクロックをミラーリングするスキューの小さなクロックである。ＦＰＧＡ上の多数の出力がこの態様でプログラムされて任意の設計に対して多数のクロックソースが生成され得る。
【００４５】
最終的に、二重の入力ラッチ１１４および１１６は、ダブルデータレート入力信号を装置外部から受けることができる。パッド１１２から入力ラッチ１１４および１１６への入力経路上には、マルチプレクサは設けられない。なぜならば、ユーザの設計によってデータが所望のデータレートでパッドに与えられると仮定されるためである。
【００４６】
この発明の上の説明は、限定的ではなく、例示的であることが意図される。この発明の他の実施例は、上の開示を参照することによって、当業者には明らかとなるであろう。
【図面の簡単な説明】
【図１】この発明の１つの実施例のダブルデータレートフリップフロップを示すブロック図である。
【図２】この発明のマスタラッチの１つの実施例の詳細な実現例を示す概略図である。
【図３】この発明のダブルデータレートマルチプレクサの１つの実施例の詳細な実現例を示す概略図である。
【図４】図３で示される回路の動作を示すタイミング図である。
【図５】この発明のダブルデータレートマルチプレクサの１つの実施例の詳細な実現例を示す概略図である。
【図６】図５で示される回路の動作を示すタイミング図である。
【図７】多数のダブルデータレートフリップフロップが集積回路装置の入力／出力ポートに設けられる、この発明の１つの実施例を表わすブロック図である。
【図１】
2004518334.tif 000003
【図４】
2004518334.tif 000004
【図６】
2004518334.tif 000005
【図７】
2004518334.tif 000006
【国際公開パンフレット】
2004518334.tif 000007
2004518334.tif 000008
2004518334.tif 000009
2004518334.tif 000010
2004518334.tif 000011
2004518334.tif 000012
2004518334.tif 000013
2004518334.tif 000014
2004518334.tif 000015
2004518334.tif 000016
2004518334.tif 000017
2004518334.tif 000018
2004518334.tif 000019
2004518334.tif 000020
2004518334.tif 000021
2004518334.tif 000022
2004518334.tif 000023
2004518334.tif 000024
2004518334.tif 000025
2004518334.tif 000026
2004518334.tif 000027
2004518334.tif 000028
2004518334.tif 000029
2004518334.tif 000030
2004518334.tif 000031
2004518334.tif 000032
2004518334.tif 000033
2004518334.tif 000034
【国際公開パンフレット（コレクトバージョン）】
2004518334.tif 000035
【国際調査報告】
2004518334.tif 000036
2004518334.tif 000037
2004518334.tif 000038