JP3626239B2 - プログラマブルアレイ - Google Patents

プログラマブルアレイ Download PDF

Info

Publication number
JP3626239B2
JP3626239B2 JP09522195A JP9522195A JP3626239B2 JP 3626239 B2 JP3626239 B2 JP 3626239B2 JP 09522195 A JP09522195 A JP 09522195A JP 9522195 A JP9522195 A JP 9522195A JP 3626239 B2 JP3626239 B2 JP 3626239B2
Authority
JP
Japan
Prior art keywords
output
data
configuration
input
storage means
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
JP09522195A
Other languages
English (en)
Other versions
JPH0851356A (ja
Inventor
ティー. オング ランディー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
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
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of JPH0851356A publication Critical patent/JPH0851356A/ja
Application granted granted Critical
Publication of JP3626239B2 publication Critical patent/JP3626239B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17758Structural details of configuration resources for speeding up configuration or reconfiguration
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Description

【0001】
【産業上の利用分野】
本発明は、大略、プログラマブル即ちプログラム可能(書込み可能)な論理装置に関するものであって、更に詳細には、コンフィギャラブル即ちコンフィギュレーション(形態)を構成可能な論理ブロック及びプログラマブル即ちプログラム可能(書込み可能)なルーチング(経路付け)マトリクス又はフィールドプログラマブルゲートアレイを再度コンフィギュレーション(即ち形態を特定)するための技術に関するものである。
【0002】
【従来の技術】
フィールドプログラマブルゲートアレイ(「FPGA」)などのプログラマブル(プログラム可能、即ち書込み可能)論理装置を使用することが益々広く行われるようになっている。なぜならば、その再書込み可能特性によって与えられる柔軟性のためである。FPGAは、典型的に、ユーザが所望する論理関数を与えるために、プログラミング即ち書込みを行うことによって互いに相互接続させることの可能なコンフィギャラブル即ち形態を特定可能な論理ブロック(「CLB」)からなるアレイを有している。アメリカ合衆国、95124、カリフォルニア州、サンノゼ、ロジックドライブ、2100に住所を有するザイリンクス、インコーポレイテッドから入手可能な「プログラマブル論理データブック(TheProgrammable Logic Data Book)」という名称のザイリンクスの1993年データブックには、本願の出願人であるザイリンクス、インコーポレイテッドによって製造されている幾つかのFPGA製品について記載されている。このデータブックは、引用により本明細書に組込むこととする。FPGAは、典型的に、同一の構成を有するCLBからなる通常のアレイを有している。これらCLBの各々は、多数の異なる論理関数のうちの何れか一つを実施するために個別的にプログラムすることが可能である。FPGAは、所望のコンフィギュレーション即ち形態に基づいてこれらのCLBを結合させるためにコンフィギャラブル即ち形態を特定することの可能なルーチング(経路付け)マトリクスを有している。FPGAは、更に、多数のコンフィギュレーションメモリセルを有している。これらのコンフィギュレーションメモリセルは、各CLBによって実行される関数を特定するためにCLBへ結合されると共に、CLBの入力及び出力の結合を特定するためのコンフィギャラブル即ち形態を特定することの可能なルーチングマトリクスへ結合されている。FPGAは、更に、典型的に、FPGAの動作期間中にユーザへアクセスすることの可能なデータ格納メモリセルを有しているが、本明細書におけるメモリセルの説明はコンフィギュレーションメモリセルに関してのものである。各CLBが、該CLBが実施する関数を特定する幾つかのメモリセルへ結合されており、且つその他のCLBはそれが結合されるものへ結合している。従って、メモリセル内に異なる値を格納することによって、各CLBはその関数及び結合に関して個別的にプログラムさせることが可能である。
【0003】
CLB及びコンフィギャラブルルーチングマトリクスに対するコンフィギュレーションデータはコンフィギュレーションメモリセル内に格納される。コンフィギュレーションデータは、コンフィギュレーションメモリセル内にロードされると、CLBによって実行される関数を選択し且つコンフィギャラブルルーチングマトリクスを接続させる。
【0004】
最近、多様な適用例において使用される論理回路の複雑性及び寸法が著しく増加している。単一の集積回路チップ上に製造可能なCLBの数は制限されているので、この様な回路要素の数の増加は単一のFPGAで実現することは不可能である。従って、CLBが論理関数を実行する効率を改善することが必要である。
既存のFPGAのこの欠点を解消するための従来の一つのアプローチは、複数個のFPGAを外部的に接続させることであった。しかしながら、このアプローチは部分的な解決方法にしか過ぎないものである。FPGA間の入力/出力接続の数が制限されているので、このアプローチによって全ての回路を実現させることは不可能である。更に、1個を超えた数のFPGAを使用することは、その回路を実現するために必要とされる電力消費、コスト及び空間を増加させることとなる。
【0005】
別の解決方法は、FPGA内のCLB及び相互接続構成体の数を増加させることであった。何れかの与えられた製造技術に対し、単一の集積回路チップ上に製造することの可能なCLBの数には制限がある。従って、アーキテクチャの観点から、FPGAに対しての論理ゲート及びCLB密度を増加させることの必要性が継続して存在している。
【0006】
従来のFPGAは異なる時間において異なる論理関数を実行するために再度コンフィギュレーション即ち形態を特定させることが可能であるが、その場合にビットストリームを再度ロードさせることが必要であり、そのことは時間がかかる。FPGAを再度コンフィギュレーションさせることは、論理関数の実行を中止させ、FPGA外部のメモリ装置内にその論理関数の現在の状態を格納させ、メモリコンフィギュレーションセルからなるアレイを再度ロードさせ、且つ論理関数の状態、及び何らかのその他の入力を入力させることが必要である。コンフィギュレーションメモリセルを再度ロードさせること自身、再度コンフィギュレーションを行うことが多くの回路を実現するのに有用なものでないような長時間を必要とする。速度及び空間を犠牲にすることなしに、FPGA内において実行される論理関数の数を増加させることがより有益的である。
【0007】
【発明が解決しようとする課題】
本発明は以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、複数個の論理関数を実行するために内部的にCLB及びコンフィギャラブルルーチングマトリクスを再度コンフィギュレーション即ち再び形態を構成させることによって、FPGA内において実現することの可能な論理関数の数を増加させることを目的とする。
【0008】
【課題を解決するための手段】
本発明は、コンフィギュレーションメモリセルからなる1個を超えた数のアレイ及び該アレイの各々から交互にコンフィギュレーションデータを出力させるためのスイッチ、特別格納装置を具備するCLB、コンフィギャラブルルーチングマトリクスを有している。第一アレイは一組のコンフィギュレーションデータを格納し、第二アレイは第二組のコンフィギュレーションデータを格納し、以下同様である。各CLBは、第一アレイ内に格納されたデータに基づいてCLBのコンフィギュレーション、即ち形態の特定が行われる場合にCLBの入力又は出力を格納するための第一データラッチと、第二アレイ内に格納されたデータに基づいてCLBのコンフィギュレーションが行われる場合にCLBの入力又は出力を格納するための第二データラッチ、以下同様のものを具備する格納装置へアクセスする。各格納装置は、更に、第一データラッチからデータをクロック出力又はクロック入力させるための第一レジスタ、及び第二データラッチからデータをクロック出力させるか又はクロック入力させるための第二レジスタを有することが可能である。
【0009】
FPGAのユーザは、FPGAが動作するクロック信号を入力させる。本発明の一実施例では、ユーザのクロックサイクルを二つの部分に分割し、且つ格納装置がCLBの出力を受取る。
【0010】
第一部分期間中に、これらのスイッチは第一アレイ内に格納されているコンフィギュレーションデータを出力し、且つCLB及びコンフィギャラブルルーチングマトリクスは第一アレイ内に格納されているコンフィギュレーションデータに基づいてコンフィギュレーション即ち形態の特定が行われる。この第一部分において、FPGAは、CLBへ入力された信号の第一組の論理関数を実行する。第二データラッチ及び第二レジスタの出力は、CLBへの入力信号として使用することが可能である。全てのCLBが該入力のそれらの論理関数を実行した後に、各CLBの出力がCLBの出力装置の第一データラッチ内に格納される。
【0011】
第二部分期間中に、これらのスイッチは第二アレイ内に格納されているコンフィギュレーションデータを出力し、且つCLB及びコンフィギャラブルルーチングマトリクスは第二アレイ内に格納されたコンフィギュレーションデータに基づいてコンフィギュレーション即ち形態特定が行われる。次いで、FPGAはCLBへの入力の論理関数を実行する。CLBが該入力のそれらの論理関数を実行した後に、各CLBの出力がCLBの第二データラッチ内に格納される。ユーザクロックサイクルのこの第二部分期間中に、第一データラッチ及び第一レジスタの出力はCLBへの入力として使用することが可能である。
【0012】
ユーザクロックサイクルの終了時に、第一及び第二ラッチ内に格納されているデータを第一及び第二レジスタ内へそれぞれ転送させることが可能である。次いで、FPGAはその関数の結果を出力させる。ユーザクロックの1サイクル期間中に、従来技術の各CLBは各論理関数を実行することが可能であるが、二つのアレイのコンフィギュレーションデータを有する実施例に基づいて、各CLBはユーザクロックの1サイクル期間中に二つの論理関数を実行することが可能である。従って、上述した実施形態はFPGAが従来技術と比較して実施することの可能な論理関数の数を2倍としている。より一般的に説明すると、FPGAが各CLBに対して5個又は10個のラッチ及びレジスタ及び5個又は10個のアレイのコンフィギュレーションデータを有している場合には、FPGAは従来のFPGAの論理の5倍又は10倍のものを実行することが可能である。
【0013】
【実施例】
図1を参照すると、フィールドプログラマブルゲートアレイ(「FPGA」)10のブロック図が示されている。FPGA10は複数個の区画部分12を有しており、その各々はコンフィギャラブル論理ブロック(「CLB」)14と、コンフィギュレーションメモリ16と、コンフィギャラブルルーチングマトリクス18とを有している。ルーチングマトリクス即ち経路付け用のマトリクス18は、CLBを互いに接続させ、従って相互接続を行う。このルーチングマトリクスは、更に、ライン44を介して外部ピンへの接続も行う。典型的に、ルーチングマトリクス18は、クロック信号などの信号を担持するためのグローバルラインと、CLBを相互接続するためのローカルライン又はラインセグメントの両方を有している。FPGA10のユーザは、FPGA10がそれに基づいて動作するクロック信号、即ちユーザのクロックを入力させる。ユーザのクロック信号(又は1個以上の信号)はライン44の一つ(又はそれ以上)を介してFPGA10の全ての部分へ担持される。
【0014】
各区画部分12はユーザの回路の一部を実現するものである。各区画部分12の論理関数はそれのそれぞれのCLB14によって実行される。各CLB14、従って各区画部分12は、多数の異なる論理関数を実行することが可能である。CLB14によって実行される論理関数は、CLB14に対応するコンフィギュレーションメモリ16内に格納されたデータによって決定される。CLB14は、論理関数データ及びコンフィギュレーションデータ用の入力を有しており、且つ論理関数データ用の出力を有している。
【0015】
各CLB14はFPGA10の他のCLB14及びFPGA10の入力及び出力へ、コンフィギャラブルルーチングマトリクス18を介して結合されている。コンフィギャラブルルーチングマトリクス18は、コンフィギュレーションデータを受取るためのコンフィギュレーション入力を有しており、且つそれに応答してCLB14のデータ入力及び出力の結合状態を制御する。コンフィギュレーションメモリ16内に格納されたデータに従って、コンフィギャラブルルーチングマトリクス18は、CLB14の出力及びFPGA10の入力をCLB14のデータ入力へ選択的に接続させる。コンフィギャラブルルーチングマトリクス18は、更に、CLB14の出力をFPGA10の出力へ指向させる。
【0016】
別々のサイクルに対して関数発生器出力を別々にラッチする実施例においては、コンフィギャラブルルーチングマトリクス18及びCLB14は従来技術に基づいて構成された同等の装置よりも大きい。CLB14の出力数は従来技術におけるよりも多く、従ってコンフィギャラブルルーチングマトリクス18も、CLB14の付加的な出力を受付けるためにより大きい。コンフィギャラブルルーチングマトリクス18は対応するCLB14及びその他のルーチングマトリクス18へ結合される。
【0017】
区画部分12の各CLB14及び各コンフィギャラブルルーチングマトリクス18に対するコンフィギュレーションデータは対応するコンフィギュレーションメモリ16内に格納される。コンフィギュレーションデータはFPGA10外側からコンフィギュレーションメモリ16内へロードされ、且つ少なくとも1個の外部ピンを有するシフトレジスタを介してロードさせることが可能である。この様なロード手段は、本願明細書に引用により組込んだ米国再発行特許第34,363号(Freeman)に記載されている。各コンフィギュレーションメモリ16の出力はそれのそれぞれのCLB14及びコンフィギャラブルルーチングマトリクス18へ結合される。
【0018】
コンフィギュレーションメモリ
次に、図2を参照すると、従来のコンフィギュレーションメモリ15の一部を示したブロック図が示されている。この従来のコンフィギュレーションメモリ15はアレイ形態に配列された複数個のメモリセル20−1乃至20−nを有している。図2は該アレイの一つの列22を示している。実際のアレイは多数の列を有している。
【0019】
各メモリセル20−1乃至20−nは二進データからなる単一ビットを格納する。各メモリセル20−1乃至20−nはデータ入力と、データ出力と、アドレス入力とを有している。アドレス信号に応答してデータがメモリセル20−1乃至20−n内に格納される。データは、一度に一つの列毎にアレイ内に格納される。アドレス信号は各メモリセル20−1乃至20−nのアドレス入力へ結合されているアドレスバス24を介してメモリセル20−1乃至20−nへ供給される。従って、同一の列22におけるメモリセル20−1乃至20−nのアドレス入力は共通結合されている。メモリセル20−1乃至20−nのデータ入力はコンフィギュレーションデータを受取るために従来のデータバスへ結合されている。メモリセル20−1乃至20−nの出力はCLB14及びコンフィギャラブルルーチングマトリクス18へ結合、即ち供給される。アドレスライン24はアドレス手段へ結合されている従来のバスの一部である。これらのアドレス手段及びコンフィギュレーション手段を構成することは当業者にとって自明である。
【0020】
次に、図3を参照すると、本発明に基づいて構成されたコンフィギュレーションメモリ16の一部のブロック図が示されている。本発明のコンフィギュレーションメモリ16は第一組のメモリセル21−1乃至21−n、第二組のメモリセル23−1乃至23−n、及び複数個のスイッチ28−1乃至28−nを具備するスイッチング手段を有している。第一組のメモリセル21−1乃至21−nを第一アレイとし、且つ第二組のメモリセル23−1乃至23−nを第二アレイとして説明するが、当業者にとって明らかな如く、2個以上のアレイを設けることも可能である。一方、第一アレイ及び第二アレイは単一アレイの一部とすることが可能であり、且つコンフィギュレーションメモリセルの一つの列における交互のセルとすることも可能である。図3は第一アレイの一つの列26−a及び第二アレイの一つの列26−bを示している。実際の装置においては、各アレイは図1の多数の区画部分12のコンフィギュレーションを行うために多数の列を有している。第一アレイと第二アレイの両方はCLB14及びコンフィギャラブルルーチングマトリクス18に対し完全な組のコンフィギュレーションデータを格納する。従って、本発明に基づくコンフィギュレーションメモリ16は、従来のコンフィギュレーションメモリ15内に設けられているものよりも一層多くのメモリセル21−1乃至21−n、23−1乃至23−nを有している。本発明に基づいて、各CLB14及びコンフィギャラブルルーチングマトリクス18は、第一アレイ内に格納されているコンフィギュレーションデータ又は第二アレイ内に格納されているコンフィギュレーションデータの何れかを使用してコンフィギュレーション即ち形態の特定を行うことが可能である。
【0021】
再度のコンフィギュレーションによってスイッチすることがなく長い間一定のコンフィギュレーションを保持する付加的なメモリセル31を設けることが可能である。メモリセル31の出力は、更に、区画部分12のコンフィギュレーションを行うためのデータを供給する。
【0022】
従来のコンフィギュレーションメモリ15の場合における如く、メモリセル21−1乃至21−n、23−1乃至23−n及び31−1乃至31−mのアドレス入力はアドレスライン24によって共通結合されている。第一アレイの各列は第二アレイの一つの列に対応している。図3において、列26−aは列26−bに対応している。第一アレイの一つの列は第二アレイの対応する列と同一のアドレスを有している。第三アレイの一つの列もこのアドレスを共用することが可能である。従って、列26−a、26−b及び31に対応するアドレス信号がアドレスライン24上においてアサート即ち活性化されると、列26−a、列26−b、列31はコンフィギュレーション手段からのデータを受取るべく結合される。メモリセル21−1乃至21−n、23−1乃至23−n、31−1乃至31−mからのデータは、常に、Q出力において使用可能な状態である。コンフィギュレーションメモリセル21−1乃至21−n及び23−1乃至23−nの最初の二つのアレイの出力はそれぞれのスイッチ28−1乃至28−nへ結合される。通常、第二アレイ内におけるコンフィギュレーションメモリセル23と同数のコンフィギュレーションメモリセル21が第一アレイ内に存在している。更に、通常、第一アレイ又は第二アレイ内のコンフィギュレーションメモリセル21,23と同数のスイッチ28−1乃至28−nがスイッチ手段28内に存在している。
【0023】
各スイッチ28−1乃至28−nは二つのデータ入力と一つのセレクト(選択)入力とを有している。各スイッチ28−1乃至28−nの第一データ入力は、列26−aのメモリセル21−1乃至21−nのそれぞれの一つへ結合即ち供給され、且つ第二データ入力は列26−bのメモリセル23−1乃至23−nのそれぞれの一つへ結合即ち供給される。図3における如く、列26−aのメモリセル21−1の出力及び列26−bのメモリセル23−1の出力は、スイッチ28−1の第一入力及び第二入力へそれぞれ結合即ち供給される。同様に、列26−aのメモリセル21−2の出力及び列26−bのメモリセル23−2の出力はスイッチ28−2の第一入力及び第二入力へそれぞれ結合即ち供給される。図3に示した実施例においては、スイッチ28−1乃至28−nは2:1マルチプレクサである。各スイッチ28−1乃至28−nは、セレクト入力へ印加される信号に応答して、第一データ入力における信号又は第二データ入力における信号をパス即ち通過させる。各スイッチ28−1乃至28−nのセレクト入力は、A/Bセレクト信号を受取るために、A/Bライン30へ結合即ち供給される。A/Bセレクト信号が「高」状態であると、スイッチ28−1乃至28−nは列26−aのメモリセル21−1乃至21−nからの入力をパス即ち通過させる。A/Bセレクト信号が「低」状態であると、スイッチ28−1乃至28−nは、列26−bのコンフィギュレーションメモリセル23−1乃至23−nからの入力をパス即ち通過させる。スイッチ28−1乃至28−nの出力はCLB14及びコンフィギャラブルルーチングマトリクス18へ結合即ち供給される。A/Bライン30上のA/Bセレクト信号をアサート(活性化)し且つアサートしないことにより、第一アレイ内に格納されたコンフィギュレーションデータ及び第二アレイ内に格納されたコンフィギュレーションデータは、選択的に、CLB14及びコンフィギャラブルルーチングマトリクス18へパスされる。従って、二つの択一的な組のコンフィギュレーションデータに従ってCLB14及びコンフィギャラブルルーチングマトリクス18を再度コンフィギュレーション即ち形態特定を行うことが可能である。スイッチ28−1乃至28−nは非常に迅速にスイッチすることが可能であるので、CLB14及びコンフィギャラブルルーチングマトリクス18へ供給されるコンフィギュレーションデータは第一アレイ内に格納されている第一組のコンフィギュレーションデータと第二アレイ内に格納されている第二組のコンフィギュレーションデータとの間で迅速にスイッチすることが可能である。本実施例においては、このスイッチング動作は、CLB14及びコンフィギャラブルルーチングマトリクス18がユーザクロックの単一サイクル内において実効的に二度再コンフィギュレーションを行うことが可能であるような速さのものである。
【0024】
スイッチング手段28を複数個の2:1マルチプレクサとして記載してあるが、当業者にとって明らかな如く、n個の2:1マルチプレクサは2x個の入力を受取り且つx個の出力を送給する多様なその他のマルチプレクサ形態で置換させることが可能である。例えば、n個の2:1マルチプレクサはn/4個の8:4マルチプレクサで置換させることが可能である。
【0025】
上述した実施例のコンフィギュレーションメモリ16は第一組のメモリセルと、第二組のメモリセルと、二つの入力の間でスイッチするスイッチング手段とを具備するものとして記載してあるが、当業者にとって明らかな如く、付加的な組のメモリセルを設けることが可能であり、且つスイッチング手段28は第一組、第二組又は付加的な組のメモリセルのうちの何れか一つからのデータを出力させることが可能である。この様な付加的な組のメモリセルを有する実施例は、CLB14及びコンフィギャラブルルーチングマトリクス18をユーザクロックの単一サイクル内において3回、4回又はそれ以上の回数再コンフィギュレーションさせることが可能である。
【0026】
次に、図4を参照すると、コンフィギュレーションメモリ16の別の実施例が示されている。この実施例においては、マルチプレクサ28−1乃至28−n、メモリセル21−1乃至21−n、メモリセル23−1乃至23−nは列センスアンプ72−1乃至72−n、スタチックランダムアクセスメモリ(SRAM)セル74−1乃至74−n及び76−1乃至76−nでそれぞれ置換されている。この実施例においては、列26−a及び26−bは行78a及び78bでそれぞれ置換されており、それらは従来の書込み回路46−1乃至46−nによってロードされる。マルチプレクサ28−1乃至28−nは使用されていない。その代わりに、行出力信号は列センスアンプ72−1乃至72−nによってバッファされる。A/Bライン30はAアドレスライン80及びBアドレスライン82で置換されている。Aアドレスライン80上の信号が「高」であり且つBアドレスライン82上の信号が「低」である場合には、SRAMセル行78−a内のデータはセンスアンプ72−1乃至72−nへ供給され、次いでCLB14及びコンフィギャラブルルーチングマトリクス18へ供給される。Aアドレスライン80上の信号が「低」であり且つBアドレスライン82上の信号が「高」である場合には、SRAMセル行78−b内のデータはセンスアンプ72−1乃至72−nへ供給され、それは、次いでCLB14及びコンフィギャラブルルーチングマトリクス18へ供給される。当業者はAアドレスライン80上の信号及びBアドレスライン82上の信号を交互に「高」に設定する手段を発生させることが可能である。当業者にとって明らかな如く、より多くのSRAMセル行78を付加して、二組を超えた組のコンフィギュレーションデータを与え、従って、ユーザのクロックサイクル期間中にCLB14及びコンフィギャラブルルーチングマトリクス18を再コンフィギュレーションさせることの可能な回数を増加させることが可能である。
【0027】
コンフィギャラブル論理ブロック
次に、図5を参照すると、従来のCLB13のブロック図が示されている。従来のCLB13は、関数発生器34と、レジスタ36と、出力スイッチ38とを有している。関数発生器34はコンフィギュレーションメモリ15内に格納したデータに従って幾つかの入力の論理関数を実現する。特定の論理関数はコンフィギュレーションデータによって選択される。入力は従来のルーチングマトリクスへ結合される。コンフィギュレーションデータはCLB13と関連したコンフィギュレーションメモリ15からやってくる。
【0028】
関数発生器34の出力は直接的に又はレジスタ36を介して出力スイッチ38へ供給される。レジスタ36は例えばDフリップフロップなどの従来のデータ格納レジスタである。レジスタ36は関数発生器34の出力へ結合したデータ入力と、ライン44のうちの1本のライン44−cを介してユーザのクロック信号を受取るべく結合されたクロック入力を有している。レジスタ36はデータ出力Qを有している。
【0029】
出力スイッチ38は2個のデータ入力と、1個のデータ出力と、1個の選択入力とを有しており、且つ2:1マルチプレクサとすることが可能である。典型的に、コンフィギュレーションメモリはスイッチ38のセレクト入力を制御する。次に、図6Aを参照すると、本発明に基づいて構成されたCLB14の一実施例のブロック図が示されている。この実施例に基づくCLB14は、関数発生器34と、第一データラッチ42aと、第二データラッチ42bと、第一レジスタ36aと、第二レジスタ36bと、第一出力スイッチ39aと、第二出力スイッチ39bとを有している。好適には、第一データラッチ42a、第一レジスタ36a、第一出力スイッチ39aが、関数発生器34が第一組のメモリセル21の出力でコンフィギュレーションが行われた場合(図3)に、関数発生器34の出力を与える。従って、第一データラッチ42a又はレジスタ36aによって格納されているデータは、メモリセル23からの第二組のコンフィギュレーションデータに基づいてCLB14のコンフィギュレーションが行われた場合に、ユーザクロックサイクルの後半において使用することが可能である。第二データラッチ42b、第二レジスタ36b、第二スイッチ39bは、メモリセル23の第二組のコンフィギュレーションデータに基づいてコンフィギュレーションが行われる場合に、関数発生器34の出力を格納し且つルーチング即ち経路付けを行うために同様に使用される。
【0030】
関数発生器34は上述した図5のものと均等である。関数発生器34のデータ入力はコンフィギャラブルルーチングマトリクス18へ結合されており、且つ制御入力は本発明のコンフィギュレーションメモリ16へ供給される。従って、関数発生器34は、CLB14の他の部分が再度コンフィギュレーションされる場合に、制御信号によって再度コンフィギュレーションさせることが可能である。第一データラッチ42aは二進ビットのデータを格納するための従来のデータラッチである。第一データラッチ42aはデータ入力(D)と、データ出力(Q)と、ラッチイネーブル入力(クロック入力)とを有している。第一データラッチ42aのデータ入力は関数発生器34の出力へ結合している。ラッチイネーブル入力はA/Bライン30へ供給されてA/B信号を受取る。第一データラッチ42aは、ラッチイネーブル入力へ印加される信号に応答して、データをラッチするか又はパス即ち通過させる。第一データラッチ42aは、ユーザクロックサイクルの第一部分期間中にデータをパス即ち通過させ、且つユーザのクロックサイクルの第二部分期間中にデータをラッチさせる。本実施例においては、ラッチイネーブル信号が低状態へアサート即ち活性化され、従ってデータは「高」A/B信号によってパスされ且つ「低」A/B信号によってラッチされる。第二データラッチ42bは第一データラッチ42aと同一の機能性及び構成を有している。第二データラッチ42bのデータ入力は関数発生器34の出力へ結合している。しかしながら、第二データラッチ42bのラッチイネーブル入力はA/B_信号を受取るためにライン68へ結合している。尚、本明細書において、英文字記号の後にアンダーラインを付したものはその英文字記号の反転信号であることを表わしている。第二データラッチ42bがそのラッチイネーブル入力において、第一データラッチ42aへ印加した信号の反転した信号を受取るので、データラッチ42a,42bはユーザのクロックサイクル期間中の反対の時間においてデータをパス及びラッチする。
【0031】
当業者にとって明らかな如く、ラッチ42bのラッチイネーブル入力を駆動するためにA/Bライン30から駆動されるインバータを使用することが可能であり、従ってA/B_ライン68の必要性を取除いている。
【0032】
第一レジスタ36aは上述した図5に関連して説明したタイプのデータレジスタである。例えば、第一レジスタ36aはDフリップフロップとすることが可能である。レジスタ36bのデータ入力は第一データラッチ42aのデータ出力へ結合されている。第一レジスタ36aのクロック入力はユーザのクロック信号を受取るためにライン44−cへ結合している。同様に、第二データレジスタはDフリップフロップとすることが可能である。第二レジスタ36bのデータ入力は第二データラッチ42bのデータ出力へ結合しており、且つクロック入力はユーザのクロック信号を受取るためにライン44−cへ供給される。
【0033】
第一出力スイッチ39aは例えば3:1マルチプレクサなどの従来のスイッチング装置である。出力スイッチ39a,39bは三つのデータ入力と、一つのデータ出力と、一つのコマンド入力とを有している。出力スイッチ39aの第一データ入力はレジスタ36aの出力へ結合している。出力スイッチ39aの第二データ入力はデータラッチ42aのデータ出力へ結合している。本実施例においては、関数発生器34の出力は出力スイッチ39aの第三データ入力へ結合している。出力スイッチ39aは、出力スイッチ39aの制御入力への信号に応答して三つの入力上へ印加される信号のうちの一つを出力する。これらの制御入力は関連するメモリセル21,23又はより一般的には本発明のコンフィギュレーションメモリ16における31へ供給され、且つ典型的に、A/Bライン30がスイッチする場合に不変のまま止まる。
【0034】
第二出力スイッチ39bも3:1マルチプレクサである。第二出力スイッチ39bは第一、第二、第三データ入力と、1個のデータ出力と、一対の制御入力とを有している。第一データ入力は第二レジスタ36bの出力へ結合しており、第二データ入力は第二データラッチ42bの出力へ結合している。出力スイッチ39bの第三入力は関数発生器34の出力へ結合している。これらの制御入力は、これらの入力信号のうちの何れが第二出力スイッチ39bから出力されるかを制御するために、関連するメモリセル21,23又はコンフィギュレーションメモリ16内の31へ供給される。第二出力スイッチ39bの出力はCLB14の出力のうちの一つを形成する。
【0035】
本発明のこの実施例は、ユーザのクロックの1サイクル期間中にCLB14が1個を超えた数の論理関数を実行するように、CLB14を再度コンフィギュレーション即ち形態特定させることによってFPGA10により実現される論理関数の数を増加させている。本発明の2期間実施例は、ユーザのクロックの1サイクルを二つの期間、即ちA期間とB期間とに分割している。A期間及びB期間は、等しいものとさせることが可能であるが、その様にすることは必ずしも必要ではない。A期間の期間中に、本発明の2期間実施例は、コンフィギュレーションメモリ16の第一アレイ内に格納されているコンフィギュレーションデータを使用して、CLB14及びコンフィギャラブルルーチングマトリクス18のコンフィギュレーション即ち形態特定を行う。次いで、CLB14はそれらの論理関数を実行し、A期間が終了する。B期間の期間中、CLB14及びコンフィギャラブルルーチングマトリクス18は、コンフィギュレーションメモリ16の第二アレイ内に格納されているコンフィギュレーションデータを印加することによって再度コンフィギュレーションが行われる。次いで、CLB14はそれらの論理関数を実行し、且つB期間及びユーザクロックのサイクルが終了する。従って、本実施例においては、FPGA10がユーザのクロックの1サイクル期間中に実行することの可能な論理関数の数を2倍とさせている。
【0036】
図6Aは、本発明が二組のコンフィギュレーションデータを有する場合のCLB14を示している。本発明は任意の数の組のコンフィギュレーションデータを有することが可能である。各組のコンフィギュレーションデータに対して、各CLB14は、出力信号を発生するために、データラッチ42と、レジスタ36と、スイッチ39とを包含する付加的な出力経路を有している。
【0037】
別の実施例においては、データラッチは、それらの出力が関数発生器34の出力ではなく入力へ指向されるように配設させることが可能である。この様な実施例を図6Bに示してある。図6Bにおいては、ラッチ62a−62dがCLB17の入力に設けられており、且つ二つの異なる動作期間の期間中にルーチングマトリクス18内に存在する信号を格納する。ラッチ62a及び62bは、A/B信号が高状態である場合にそれらのそれぞれのD入力端子上に存在する信号をパス即ち通過させ、且つA/B信号が低状態へ移行する場合に存在するデータを捕獲する。ラッチ62c及び62dは、A/B信号が低状態にある場合にそれらのD入力端子上に存在するデータをパス即ち通過させ、且つA/Bが高状態へ移行する場合に存在するデータを捕獲する。任意の時刻においてラッチ62a−62dのうちの二つがルーチングマトリクス18からのデータをパスさせており且つ二つがルーチングマトリクス18から先に受取ったデータを格納している場合であっても、ラッチ62a−62dの四つの全ての出力は常に関数発生器34の端子I1−I4へ供給される。従って、A/Bクロック信号の二つのフェーズにおいて、ルーチングマトリクス18におけるラインは異なる目的のために使用することが可能である。例えば、同一のルーチングマトリクスラインセグメント、即ちラインセグメントのストリングをA/Bクロック信号の第一フェーズ期間中にラッチ62aへの信号及びA/Bクロック信号の第二フェーズ期間中にラッチ62cへの信号を供給するために使用することが可能である。両方の信号は関数発生器34によって使用される。ラッチ62a乃至62dはルーチングマトリクス18がこれら二つのフェーズ期間中に便利に再使用することを可能としている。勿論、二つを超えた数のクロック信号でラッチ62a−62dを別々にクロック動作させることにより二つを超えた数のフェーズを与えることが可能である。
【0038】
ルーチングマトリクス
図6Cは本発明と共に使用することの可能なルーチングマトリクス即ち経路付けマトリクス18の一実施例を示している。更に、図6Cの周辺には4個のCLB14a,14b,14c,14dの一部が示されている。ルーチングマトリクス18におけるトランジスタはそれらが接続させることの可能なラインの間に延在する短いラインによって表わされている。例えば、トランジスタT61は、CLB14bにおける入力ラインI4とルーチングラインR61との間に延在している。トランジスタT62はCLB14aにおけるマルチプレクサ39bの出力をルーチングラインR61へ接続させることが可能である。トランジスタT63は、ルーチングラインR61をルーチングラインR63へ接続させることが可能であり、且つトランジスタT64はルーチングラインR61をルーチングラインR64へ接続させることが可能である。各トランジスタの制御は、コンフィギュレーションメモリ16から該トランジスタのゲートへのラインによって与えられる。図面において簡単化のために、ほとんどのトランジスタには記号が付けられておらず、且つコンフィギュレーションメモリ16から各ゲートへの接続はスイッチボックスS61,S62,S63,S64の各々への単一のラインによって表わされている。その他のルーチングマトリクスは引用により本明細書に導入した1993年のザイリンクスのデータブックに示されている。図6Cの目的は、ルーチングマトリクス18と、CLB14と、コンフィギュレーションメモリ16からのコンフィギュレーションラインとの間の関係を例示することである。図6Cの新規な側面は、コンフィギュレーションメモリ16からの信号がCLB14を再度コンフィギュレーションすることに関連してルーチングマトリクス18を再度コンフィギュレーションすることが可能であり、その際に上述した如く一つを超えた接続に対してルーチングマトリクス18内の同一のルーチングラインを使用することを可能としているという点である。
【0039】
動作モード
本発明はCLB14の三つの動作モードを与える。CLB14はシンプルで、高速で、非同期な組合わせ論理機能を実現するために使用することが可能である。この第一モードは、第一アレイ内に格納されているコンフィギュレーションデータが第二アレイ内に格納されているコンフィギュレーションデータと同一である場合に存在する。このモードにおいては、第一及び第二出力スイッチ39a,39bは、関数発生器34によって出力されるデータを直接的に受取り且つパスするようにコンフィギュレーションがなされる。B出力経路は、使用されることがないか、又はスイッチ39a,39bの出力が共通結合されて単一の出力経路を形成する。ライン30上のA/B信号及びライン44上のユーザのクロック信号をアサート即ち活性化させることが可能であるが、この第一モードはデータラッチ42a,42b及びレジスタ36a,36bを使用するものではない。従って、A/B信号及びユーザのクロック信号は無視される。このモードはFPGA10によって実現される論理関数の数を増加させるという本発明の能力を使用するものではない。
【0040】
第二動作モードは高速レジスタ型モードである。このモードは同期的である。高速非同期モードの場合における如く、この第二モードは、第一及び第二アレイ内に格納されているコンフィギュレーションデータが同一である場合に存在する。A/B信号はアサート即ち活性化されることはなく(高状態に保持される)、従って第一データラッチ42aは、ユーザのクロックサイクルのA期間及びB期間の両方の期間中に第一レジスタ36aへデータをパス即ち通過させる。次いで、ユーザクロックの次の上昇エッジにおいて、第一データラッチ42aを介してパスされたデータが第一レジスタ36a内へクロック入力される。このモードにおいては、CLB14の出力は、ユーザのクロックの次のサイクルの開始まで変化することはない。このモードはB出力経路を使用することはなく、且つ本発明のFPGA10によって実現される論理関数の数を増加させるための本発明の能力を利用するものではない。
【0041】
次に、図7を参照して第三モードについて説明する。図7は、本発明のFPGA10における再コンフィギュレーション制御信号を示したタイミング線図である。図7は、例示的なユーザクロックの二つのサイクル、例示的なA/B信号の二つのサイクル、例示的なA/B′信号の二つのサイクル、ラッチ42aの四つの例示的な状態、ラッチ42bの四つの例示的な状態、レジスタ36aの二つの例示的な出力、及びレジスタ36bの二つの例示的な出力を示している。A/B及びA/B′信号がユーザのクロックのサイクルにおける中間点Tにおける遷移に対して示されているが、この様な分割は必ずしも必要なものではない。A/B信号は、ユーザのクロックの1サイクルを多数の中間点において分割することが可能である。この分割に関する制限は、A期間及びB期間の両方が十分に長いものであって、FPGA10における全ての信号がCLB14を介して伝搬し且つ問題なく格納が行われるのに十分に長い間ラッチ及びレジスタの入力において信号がセットアップされるように安定化するものでなければならないということである。
【0042】
図7はCLB14の第三動作モードを説明するのに有用である。この第三動作モードはFPGA10によって実行される論理関数の数を増加させる本発明の能力を利用するものである。この第三モードにおいては、A期間中のCLB14のコンフィギュレーション及びコンフィギャラブルルーチングマトリクス18のコンフィギュレーションはB期間中のコンフィギュレーションとは異なるものである。この第三モードは本明細書においてはパイプラインモードと呼称する。
【0043】
ユーザクロックサイクルの開始時Tにおいて、A/B信号がサイクルを開始する。A期間において、A/B信号は高状態であり、従ってCLB14及びルーチングマトリクス18は第一組のコンフィギュレーションデータでコンフィギュレーションが行われる。A期間の期間中においては、第一データラッチ42aがデータをパス即ち通過させ、且つデータラッチ42bがデータをラッチする。
【0044】
A/B信号の遷移時即ちTにおいて、A/B信号がメモリ16からの第二組のコンフィギュレーションデータを選択し、従ってCLB14及びコンフィギャラブルルーチングマトリクス18の再コンフィギュレーションを行う。第一データラッチ42aはその入力においてデータをラッチし、且つ第二データラッチ42bはその入力においてデータをパスさせる。
【0045】
ユーザのクロックの次のサイクルの開始時Tにおいて、A/B信号は再度遷移を行う。再度、CLB14及びコンフィギャラブルルーチングマトリクス18は、第一組のコンフィギュレーションデータに従って再コンフィギュレーションが行われる。第一データラッチ42aがデータをパスし、且つ第二データラッチ42bがデータをラッチする。ユーザのクロック及びA/B信号の上昇エッジにおいて、第一及び第二レジスタ36a,36bがデータをクロック入力させる。レジスタ36aはデータラッチ42aからラッチされたデータをクロック入力し、且つレジスタ36bはデータラッチ42bからのパスデータをクロック入力させる。従って、第一レジスタ36aは、第一組のコンフィギュレーションデータに従ってユーザのクロックの最初の部分の期間中にコンフィギュレーションが行われた場合に関数発生器34の出力を格納する。第二レジスタ36bは第二組のコンフィギュレーションデータに従ってユーザのクロックの後の部分の期間中にコンフィギュレーションがされた場合に関数発生器34の出力を格納する。
【0046】
A/B信号の各遷移上において、第一及び第二出力スイッチ39a,39bは再度コンフィギュレーションが行われる。多くの適用場面において、出力スイッチ39a及び39bはユーザクロックサイクル期間中に再度コンフィギュレーションが行われることはない。しかしながら、図6Aの実施例においては、その構造が出力スイッチの再コンフィギュレーションを行うことを可能としており、且つ幾つかの適用例においてはそのことが望ましい場合がある。例えば、スイッチ39aは、A期間中に関数発生器34からのデータをパスし且つB期間中にレジスタ36aからのデータをパスさせる場合がある。一方、スイッチ39bは両方の期間中にラッチ42bからのデータをパスさせる場合がある。
【0047】
ルーチングマトリクス18もA/B信号の各遷移において再コンフィギュレーションされる。CLB14の場合における如く、A期間中に、CLB14への入力はB期間中におけるものと異なる供給源から来ることが可能である。A/B信号の各遷移において、ルーチングマトリクスは再コンフィギュレーションが行われて、正しい入力を各CLB14へ供給し且つCLB14の出力を正確にルーチング即ち経路付けさせる。
【0048】
本発明のFPGA10の全ての区画部分12が同一のモードでコンフィギュレーションが行われることが必要なものではない。幾つかの区画部分12は高速非同期モードでコンフィギュレーションさせ、他のものを高速レジスタ型モードでコンフィギュレーションさせ、更に他のものをパイプラインモードでコンフィギュレーションさせることが可能である。従って、CLB14は従来のFPGA10において実現される論理関数の数よりもFPGA10において実現される論理関数の数を著しく増加させることを可能としている。本発明は従来技術と比較してFPGA10のシリコン面積を著しく増加させることなしにこの様な論理関数の数を増加させている。
【0049】
図7はユーザのクロックの1サイクルにおいて発生するA/B信号の完全なサイクルを示している。しかしながら、A/B信号はユーザのクロックの1サイクルよりも長い期間を有することが可能である。次に、図8を参照すると、第一変形A/B信号A/B−1及びその反転信号A/B−1_、及び第二変形A/B信号A/B−2及びその反転信号A/B−2_と比較して、ユーザクロックの四つのサイクルを示したタイミング線図が示されている。図8において、A/B−1信号の第一部分はユーザのクロックの二つのサイクルである。同様に、A/B−1信号の第二の部分はユーザのクロックの二つのサイクルである。A/B−2信号の第一部分はユーザのクロックの1サイクルである。A/B−2信号の第二部分もユーザのクロックの1サイクルである。図7に関して説明した如く、A/B信号の第一部分はA/B信号の第二部分と長さが等しいものである必要はない。図8は、一般的に、A/B信号は任意の長さとすることが可能であり、ユーザのクロックの期間よりも大きいか、等しいか、短いかの何れかとすることが可能であることを示している。
【0050】
具体例
次に、図9を参照すると、FPGA10において実現することの可能な3ビットカウンタのブロック図が示されている。このカウンタは三つの出力A,B,Cと1個のクロック入力とを有している。この3ビットカウンタは、第一2入力ANDゲート50と、第二2入力ANDゲート52と、3入力ANDゲート54と、3入力ORゲート56と、2入力XORゲート58と、第一レジスタ60と、第二レジスタ62と、第三レジスタ64とを有しており、それらの構成要素の全ては図示した如くに接続されている。
【0051】
図9,10,11の場合には、その具体例はCLBの出力としてQ_を示している。このことは、ルーチングマトリクスの再コンフィギュレーションを行うことの利点をより明確に例示する目的のためになされている。FPGAの場合には、Qはプログラマブルルックアップテーブルを駆動することが可能であり、その場合にそれはQ_へ反転させることが可能であるので、一つの出力が必要であるに過ぎない。従って、図4及び5はCLBの出力としてQ_は示していない。
【0052】
次に、図10を参照すると、従来のFPGAを使用して3ビットカウンタを実現する場合のブロック図が示されている。この具体例は、従来の区画部分11−1,11−2,11−3,11−4を有している。コンフィギャラブルルーチングマトリクス70−1,70−2,70−3,70−4はこれらの区画部分を相互接続している。区画部分11−1,11−2,11−3,11−4の出力の接続は、各区画部分11のコンフィギャラブルルーチングマトリクス70を介して行われる。各ドット即ち黒点はそれらの関連するコンフィギュレーションメモリ内にデータを格納することによって接続されたルーチングマトリクス70の一部を表わしている。簡単化のために、出力スイッチ、コンフィギュレーションメモリ、制御ライン、及びクロックラインは図示していない。
【0053】
第一の従来のCLB13−1は、関数発生器34−1が2入力XOR関数を実現し且つ出力スイッチ38−1(不図示)がレジスタ36−1の出力をパスさせるようにコンフィギュレーションが行われている。第二の従来のCLB13−2は、関数発生器34−2がD=AB_+AC_+A_BCの方程式、尚A_BCは関数発生器34−4の出力であり且つDは関数発生器34−2の出力である方程式の3入力2レベルレジタル関数を関数発生器34−2が実現するようにコンフィギュレーションが行われている。第二の従来のCLB13−2の出力スイッチ(図5の出力スイッチ38参照)は、レジスタ36−2の出力をパスさせるようにコンフィギュレーションがなされている。第三の従来のCLB13−3は、関数発生器34−3が該信号を出力C_へ反転させ、且つ出力スイッチ38−3(不図示)がレジスタ36−3の出力をパスさせるようにコンフィギュレーションがなされている。従来のCLB13−4は3入力AND関数A_BCを実現するためにコンフィギュレーションがなされている。従来のCLB13−4の出力スイッチは、関数発生器34−4の出力をパスするようにコンフィギュレーションがなされている。コンフィギャラブルルーチングマトリクス70−1,70−2,70−3,70−4は図9のカウンタを形成するために黒点によって表わされているように接続されている。
【0054】
次に、図11を参照すると、本発明のFPGA10を使用した3ビットカウンタの実現例のブロック図を示している。コンフィギャラブルルーチングマトリクス18はそれによって形成される接続部の周りに点線として示してある。これらの接続部は中実のコネクタ又は中空のコネクタの何れかで示してある。ルーチングマトリクス18はA期間中にコンフィギュレーションが行われて中実の接続部によって表わされる接続部を構成させる。B期間において、コンフィギャラブルルーチングマトリクス18は中空接続部によって表わされる接続を形成するためにコンフィギュレーションが行われる。ルーチングマトリクス18は、A期間及びB期間の両方において中実の接続部の周りの中空の接続部によって表わされる接続部を実現するためにコンフィギュレーションが行われる。このことはメモリセル21−x内に格納されているデータがメモリセル23−x内に格納されているデータ(尚、xは図3の1とnとの間)と同一である場合に対応している。コンフィギャラブルルーチングマトリクス18は従来のコンフィギャラブルルーチングマトリクスよりも一層大きいが、従来のコンフィギャラブルルーチングマトリクスの寸法の2倍であることは必ずしも必要ではない。簡単化のために、図6Aのものに対応する出力スイッチ39a−1,39b−1,39a−2,39b−2、コンフィギュレーションメモリ、制御ライン、クロックラインは図示していない。
【0055】
図11において、この3ビットカウンタはFPGA10の二つの区画部分12−1及び12−2を使用している。各区画部分は二つの論理関数を実行し、即ちA期間中に一つとB期間中に別の一つとを実行する。図11において、参照番号34−1−a及び34−1−bは二つの期間において異なる関数発生器論理を実現する同一の物理的装置を表わしている。A期間中において、区画部分12−1の第一のCLB14−1−aは、関数発生器論理34−1−aが3入力ANDゲートであり且つ出力スイッチ39−1(不図示)が第一のデータラッチ42−1−aからのデータをパスさせるようにコンフィギュレーションが行われる。区画部分12−1はB期間において再コンフィギュレーションが行われると、関数発生器論理34−1−bはD=AB_+AC_+A_BCの方程式で、尚Dは関数発生器論理34−1−bの出力である方程式を有する3入力論理関数である。注意すべきことであるが、関数発生器論理34−1−aの出力はA期間の終了時にデータラッチ42−1−a内にラッチされる。データラッチコンフィギュレーション42−1−aの出力は次のB期間における関数発生器論理34−1−bに対して使用可能であり且つそれによって使用される。図6Aのスイッチ39bと均等なCLB14−1の出力スイッチはレジスタ36−1−bからのデータをパスするようにコンフィギュレーションされているが図示していない。
【0056】
区画部分12−2は、関数発生器論理34−2−aが入力C_を単純にパスさせるようにA期間中にコンフィギュレーションが行われる。出力スイッチは、レジスタ36−2−aからのデータをパスするようにコンフィギュレーションが行われる。B期間において、関数発生器論理34−2−bは2入力XOR関数を実行し、且つ出力スイッチ(図6Aの39bと均等)はレジスタコンフィギュレーション36−2−bからのデータを出力するようにコンフィギュレーションされる。
【0057】
図10と11との比較により、本発明の2コンフィギュレーション実施例は従来のFPGAと比較してFPGA10が実現可能な論理関数の数を2倍としている。この3ビットカウンタを実現するために四つの従来の区画部分が必要とされているが、本発明では二つの区画部分12が必要とされるに過ぎない。本発明のこの実施例は、シリコン面積を多少増加することを必要とする。なぜならば、コンフィギュレーションデータを格納するための付加的なメモリを設けることが必要であり且つコンフィギャラブルルーチングマトリクス18及びCLB14の寸法が増加するためである。しかしながら、二つのコンフィギュレーションを提供する一つの区画部分は1個のコンフィギュレーション区画部分の面積の2倍よりも著しく小さい。
【0058】
ユーザのクロックの1サイクル以内において再コンフィギュレーションを行うことが可能である。ほとんどのユーザは二つの区画部分の遅延よりも大きな1個のクロックサイクルを必要とするので、ユーザが該論理をA上でランするものとB上でランするものとの間に注意深く区別する場合には、唯一の速度に関するペナルティは、データ経路内の要素がコンフィギュレーションをスイッチするのにかかる時間である。これらの要素はルーチングマトリクス18におけるゲート、関数発生器34におけるパスゲート乃至はその他の装置、及び出力スイッチ39を包含しており、各経路要素はマルチプレクサ28−xによって制御され、尚xは図3の1とnとの間である。このマルチプレクサは高速要素であり、データ経路内の要素は高速であり、且つこれらの要素は並列的にスイッチし、従ってペナルティは小さい。
【0059】
ユーザにとって明白な最小の速度損失が存在する場合がある。ユーザにとって明白な速度のペナルティを更に最小とさせるために、スイッチ28−1乃至28−nの幾つかは他のものよりも一層クリチカル即ち臨界的である。図6Aの実施例においては、ラッチ及びレジスタ内に格納される信号は、それらが経路内の下流側の次のCLBの関数発生器34へ到達する前に、スイッチ39a及び39bへ到達し次いでルーチングマトリクス18におけるゲートをパスするので、再コンフィギュレーション期間中に、関数発生器34がスイッチするよりも速くスイッチ39a及び39b及びルーチングマトリクス18におけるパストランジスタがスイッチすること(データ信号の到達前に)がより一層重要である。従って、スイッチ28−1乃至28−nの中でスイッチ39a,39bを制御するスイッチ及びルーチングマトリクス18のパストランジスタからの出力信号の速度を最大とすべきである。この目的のために、スイッチ28−1乃至28−nからの最もクリチカルな出力信号をメタルライン上に配置すべきである。スイッチ28−1乃至28−nの寸法を制御するなどの付加的な手段を採用して最もクリチカルな速度を最大とさせると共に速度がそれほどクリチカルでない場合に面積を最小とさせることが可能である。勿論、例えば、図6Bなどのその他の実施例においては、速度の臨界性は異なっている。
【0060】
従って、本発明は、性能に影響を与えることなしに、同一の処理技術の従来の区画部分よりも、面積当たりに実現可能な論理関数の数を著しく増加させている。
【0061】
本発明を幾つかの好適実施例を参照して説明したが、当業者にとって明らかな如く、種々の変形を行うことが可能であることは勿論である。例えば、本発明のCLB14は多様なコンフィギュレーション即ち形態で従来のCLBと共にFPGA上において使用することが可能である。従って、この様なFPGAは、パイプラインモードで動作可能な区画部分と共に、レジスタ型モード及び非同期モード(従来技術)で動作可能な幾つかの区画部分を有するものである。別の実施例では、本発明のプログラマブル論理アレイは単一のシリコンチップに制限されることが必要なものではなく、複数個のチップで実現することも可能である。更に別の実施例としては、本発明をFPGAアーキテクチャに関連して説明したが、フィールドプログラマブルであり且つ再度コンフィギュレーションを行うことの可能なその他のアーキテクチャに使用することも可能である。本発明は論理ブロックを有することはなく単にスイッチング・ルーチングマトリクスを有する装置において使用することが可能である。更に、本発明は例えば、単一のプログラマブル論理装置のみを有するPLAにおいて使用することも可能である。
【0062】
上述した詳細な説明ではSRAMコンフィギュレーションメモリセルを使用してコンフィギュレーションを行った実施例に焦点を合わせている。本発明においてはコンフィギュレーションメモリを変化させることなしにコンフィギュレーションの変化を達成することが可能であるので、コンフィギュレーションメモリを例えばヒューズ又はアンチヒューズなどの一度だけプログラム可能な技術、又は例えばEPROMやEEPROMなどの再度プログラムを行うことが一層困難な技術を使用してコンフィギュレーションメモリを形成することが可能である。
【0063】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ限定されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【図1】本発明を使用可能なFPGAの一実施例を示したブロック図。
【図2】従来のFPGAのコンフィギュレーションメモリセルからなるアレイの一つの列を示したブロック図。
【図3】本発明に基づく第一アレイのコンフィギュレーションメモリセルの一つの列、第二アレイのコンフィギュレーションメモリセルの一つの列、複数個のメモリセルからなる第三の列、及び第一列と第二列とを交互に結合させるスイッチとを有する構造を示したブロック図。
【図4】本発明のコンフィギュレーションメモリの別の実施例を示したブロック図。
【図5】FPGAの従来のコンフィギャラブル論理ブロックを示したブロック図。
【図6A】本発明の一実施例に基づくコンフィギャラブル論理ブロックを示したブロック図。
【図6B】本発明の別の実施例に基づくコンフィギャラブル論理ブロックを示したブロック図。
【図6C】本発明を使用することの可能なコンフィギャラブルルーチングマトリクスを示した概略図。
【図7】動作期間中におけるA/B制御信号、ラッチング信号、レジスタクロック動作信号を示したタイミング線図。
【図8】レジスタクロック動作信号、第一変形A/B制御信号A/B−1、第二変形A/B制御信号A/B−2を示したタイミング線図。
【図9】FPGAによって実現することの可能な例示的な論理回路を示した回路図。
【図10】従来のFPGAを使用した図9の例示的な論理回路の実現例を示したブロック図。
【図11】本発明のFPGAを使用した図9の例示的な論理回路の実現例を示したブロック図。
【符号の説明】
10 FPGA
12 区画部分
14 コンフィギャラブル論理ブロック(CLB)
16 コンフィギュレーションメモリ
18 コンフィギャラブルルーチングマトリクス
21,23 メモリセル
24 アドレスライン
26 列
28 スイッチ

Claims (35)

  1. プログラマブルアレイにおいて、
    第一組のコンフィギュレーションデータを格納するための第一格納手段と、第二組のコンフィギュレーションデータを格納するための第二格納手段と、前記第一組及び第二組のコンフィギュレーションデータのうちの一つを出力すべく結合されているスイッチング手段とを具備するコンフィギュレーションメモリ、
    コンフィギュレーションデータに応答して選択的に導電性ラインを結合させ、前記スイッチング手段へ結合したコンフィギュレーション入力を具備するコンフィギャラブルルーチングマトリクス、
    を有することを特徴とするプログラマブルアレイ。
  2. 請求項1において、更に、少なくとも1個のコンフィギュレーション入力と、少なくとも1個のデータ入力と、前記第一組及び第二組のコンフィギュレーションデータに応答して入力データに関して論理演算を実行するための少なくとも1個のデータ出力とを具備するコンフィギャラブル論理ブロックが設けられており、前記コンフィギャラブル論理ブロックのコンフィギュレーション入力は前記スイッチング手段の出力へ結合されていることを特徴とするプログラマブルアレイ。
  3. 請求項2において、前記コンフィギュレーションメモリが、更に、第三組のコンフィギュレーションデータを格納するための第三格納手段を有することを特徴とするプログラマブルアレイ。
  4. 請求項2において、前記スイッチング手段が、ユーザクロックサイクルの第一部分の期間中に、前記第一格納手段を前記コンフィギャラブル論理ブロック及び前記コンフィギャラブルルーチングマトリクスへ結合させ、且つ前記スイッチング手段が、前記ユーザクロックサイクルの第二部分期間中に、前記第二格納手段を前記コンフィギャラブル論理ブロック及び前記コンフィギャラブルルーチングマトリクスへ結合させることを特徴とするプログラマブルアレイ。
  5. 請求項2において、前記コンフィギュレーションメモリが二つを超えた数の格納手段を有しており、且つ前記スイッチング手段が、ユーザクロックサイクルのそれぞれの部分の期間中に、各格納手段を前記コンフィギャラブル論理ブロック及び前記コンフィギャラブルルーチングマトリクスへ選択的に結合させることを特徴とするプログラマブルアレイ。
  6. 請求項2において、前記スイッチング手段が、第一時間期間中に、前記第一格納手段を前記コンフィギャラブル論理ブロック及び前記コンフィギャラブルルーチングマトリクスへ、且つ第二時間期間中に前記第二格納手段を前記コンフィギャラブル論理ブロック及び前記コンフィギャラブルルーチングマトリクスヘ選択的に結合させ、前記第一及び第二時間期間が連続的であることを特徴とするプログラマブルアレイ。
  7. 請求項6において、前記連続する時間期間の各々が少なくともユーザクロックサイクルの長さであることを特徴とするプログラマブルアレイ。
  8. 請求項1において、
    前記第一格納手段が複数個のメモリセルを有しており、各メモリセルが入力と出力とを具備しており、各メモリセルが前記第一組のコンフィギュレーションデータの1個のビットを格納し、
    前記第二格納手段が複数個のメモリセルを有しており、各メモリセルが入力と出力とを具備しており、各メモリセルが前記第二組のコンフィギュレーションデータの1個のビットを格納する、
    ことを特徴とするプログラマブルアレイ。
  9. 請求項8において、前記メモリセルがスタチックランダムアクセスメモリセルであることを特徴とするプログラマブルアレイ。
  10. 請求項8において、前記メモリセルがヒューズであることを特徴とするプログラマブルアレイ。
  11. 請求項8において、前記メモリセルがアンチヒューズであることを特徴とするプログラマブルアレイ。
  12. 請求項8において、前記メモリセルがEPROMセルであることを特徴とするプログラマブルアレイ。
  13. 請求項8において、前記メモリセルがEEPROMセルであることを特徴とするプログラマブルアレイ。
  14. 請求項8において、前記第一格納手段における各メモリセルが前記第二格納手段において対応するメモリセルを有することを特徴とするプログラマブルアレイ。
  15. 請求項8において、前記コンフィギュレーションメモリが、更に、前記第一格納手段及び前記第二格納手段に加えて複数個のメモリセルを有しており、前記複数個のメモリセルが、更に、前記ルーチングマトリクスのコンフィギュレーションを行うことを特徴とするプログラマブルアレイ。
  16. 請求項1において、前記スイッチング手段がマルチプレクサであることを特徴とするプログラマブルアレイ。
  17. 請求項1において、前記スイッチング手段が1個のセンスアンプと複数個のアドレスラインとを有していることを特徴とするプログラマブルアレイ。
  18. 請求項1において、前記スイッチング手段が複数個のスイッチを有しており、各スイッチは前記第一格納手段におけるコンフィギュレーションメモリセルへ結合した第一データ入力と、前記第二格納手段における対応するコンフィギュレーションメモリセルへ結合した第二データ入力と、前記コンフィギュレーションメモリの出力を形成する出力とを具備していることを特徴とするプログラマブルアレイ。
  19. 請求項18において、前記複数個のスイッチが複数個の2対1マルチプレクサを有することを特徴とするプログラマブルアレイ。
  20. 請求項2において、前記コンフィギャラブル論理ブロックが、
    コンフィギュレーションデータによって特定された論理関数を実施するための関数発生器であって、前記スイッチング手段へ結合した少なくとも1個のコンフィギュレーション入力と、前記コンフィギャラブルルーチングマトリクスへ結合した少なくとも1個のデータ入力と、少なくとも1個のデータ出力とを具備する関数発生器、
    第一期間からの前記関数発生器の出力を格納する第一出力装置であって、前記関数発生器の出力へ結合したデータ入力と、データ出力とを具備する第一出力装置、
    第二期間からの前記関数発生器の出力を格納する第二出力装置であって、前記関数発生器の出力へ結合したデータ入力と、データ出力とを具備する第二出力装置、
    を有することを特徴とするプログラマブルアレイ。
  21. 請求項20において、前記第一出力装置が、更に、前記コンフィギュレーションメモリへ結合したコンフィギュレーション入力を有しており、且つ前記第二出力装置が、更に、前記コンフィギュレーションメモリへ結合したコンフィギュレーション入力を有していることを特徴とするプログラマブルアレイ。
  22. 請求項20において、前記第一及び第二出力装置の出力が前記コンフィギャラブルルーチングマトリクスへ結合されていることを特徴とするプログラマブルアレイ。
  23. 請求項20において、前記第一出力装置が、前記コンフィギュレーションメモリの第一格納手段内に格納された前記第一組のデータでコンフィギュレーションが行われた前記関数発生器の出力を選択的に格納し且つ出力し、且つ前記第二出力装置が、前記コンフィギュレーションメモリの第二格納手段内に格納された第二組のデータでコンフィギュレーションされた前記関数発生器の出力を選択的に格納及び出力することを特徴とするプログラマブルアレイ。
  24. 請求項20において、前記第一出力装置が、ラッチイネーブル入力における信号に応答してデータを格納及び通過させるラッチであって、前記関数発生器の出力へ結合したデータ入力と、ラッチイネーブル入力と、データ出力とを具備するラッチ、
    前記ラッチのデータ出力へ結合したデータ入力と、クロック信号を受取るべく結合されたクロック入力と、データ出力とを具備しており、前記クロック入力におけるクロック信号に応答してデータを格納するレジスタと、
    複数個のデータ入力と、コンフィギュレーション入力と、データ出力とを具備しており、複数個の信号のうちの一つを出力させる出力スイッチ、
    を有することを特徴とするプログラマブルアレイ。
  25. 請求項24において、前記出力スイッチの第一データ入力が前記ラッチの出力へ結合しており、且つ前記出力スイッチの第二データ入力が前記レジスタの出力へ結合しており、前記出力スイッチのコンフィギュレーション入力が前記コンフィギュレーションメモリへ結合しており、且つ前記出力スイッチの出力が前記コンフィギャラブルルーチングマトリクスへ結合していることを特徴とするプログラマブルアレイ。
  26. 請求項25において、前記出力スイッチの第三データ入力が前記関数発生器の出力へ結合していることを特徴とするプログラマブルアレイ。
  27. 請求項24において、前記第二出力装置が、
    ラッチイネーブル入力における信号に応答してデータを格納及び通過させるラッチであって、前記関数発生器の出力へ結合したデータ入力と、ラッチイネーブル入力と、データ出力とを具備するラッチ、
    前記ラッチのデータ出力へ結合したデータ入力と、クロック信号を受取るべく結合されたクロック入力と、データ出力とを具備しており、前記クロック入力におけるクロック信号に応答してデータを格納するレジスタ、
    複数個のデータ入力と、コンフィギュレーション入力と、データ出力とを具備しており、複数個の信号のうちの一つを出力させる出力スイッチ、
    を有しており、前記出力スイッチの第一データ入力が前記関数発生器の出力へ結合しており、前記出力スイッチの第二データ入力が前記ラッチの出力へ結合しており、且つ前記出力スイッチの第三入力が前記レジスタの出力へ結合しており、前記出力スイッチのコンフィギュレーション入力が前記コンフィギュレーションメモリへ結合しており、且つ前記出力スイッチの出力が前記コンフィギャラブルルーチングマトリクスへ結合していることを特徴とするプログラマブルアレイ。
  28. 請求項24において、前記出力スイッチがマルチプレクサであることを特徴とするプログラマブルアレイ。
  29. プログラマブルアレイにおいて、
    第一組のコンフィギュレーションデータを格納するための第一格納手段、第二組のコンフィギュレーションデータを格納するための第二格納手段、前記第一組及び第二組のコンフィギュレーションデータのうちの一つを出力すべく結合されたスイッチング手段とを具備するコンフィギュレーションメモリ、
    前記スイッチング手段の出力へ結合したコンフィギュレーション入力と、データ入力と、前記第一組及び第二組のコンフィギュレーションデータに応答して入力データに関し論理関数を実行するためのコンフィギャラブル論理ブロック、
    を有することを特徴とするプログラマブルアレイ。
  30. プログラマブルアレイにおいて、
    論理信号を供給する手段、
    前記論理信号を受取る第一格納手段、
    前記論理信号を受取る第二格納手段、
    第一時間期間中に前記第一格納手段を介して前記論理信号を通過させ且つ第二時間期間中に前記第二格納手段を介して前記論理信号を通過させる手段、
    第一時間期間及び第二時間期間中に前記第一及び第二格納手段の出力を異なるラインへ結合させる手段、
    を有することを特徴とするプログラマブルアレイ。
  31. 請求項30において、前記異なるラインが第一ラインと、第二ラインと、第三ラインと、第四ラインとを有しており、前記結合させる手段が、前記第一格納手段の出力を、前記第一時間期間中に前記第一ラインへ及び前記第二時間期間中に前記第三ラインへ結合させ、且つ前記結合させる手段が、前記第二格納手段の出力を、前記第一時間期間中に前記第二ラインへ及び前記第二時間期間中に前記第四ラインへ結合させることを特徴とするプログラマブルアレイ。
  32. 請求項30において、前記第一格納手段が第一ラッチであり且つ前記第二格納手段が第二ラッチであることを特徴とするプログラマブルアレイ。
  33. 請求項32において、前記第一ラッチが第一期間中にルーチングマトリクス内の1本のラインへ接続され、且つ前記第二ラッチが第二期間中に前記ルーチングマトリクス内の前記ラインへ接続されることを特徴とするプログラマブルアレイ。
  34. プログラマブルアレイにおいて、
    論理信号を供給する手段、
    前記論理信号を受取る第一格納手段、
    前記論理信号を受取る第二格納手段、
    第一時間期間中に前記第一格納手段を介して前記論理信号を通過させ且つ第二時間期間中に前記第二格納手段を介して前記論理信号を通過させる手段、
    第一時間期間中に前記第一格納手段の出力を少なくとも1個のルーチングラインへ結合させ且つ第二時間期間中に前記第二格納手段の出力を同一の少なくとも1個のルーチングラインへ結合させる手段、
    を有することを特徴とするプログラマブルアレイ。
  35. 請求項34において、前記第一格納手段が第一ラッチであり且つ前記第二格納手段が第二ラッチであることを特徴とするプログラマブルアレイ。
JP09522195A 1994-04-20 1995-04-20 プログラマブルアレイ Expired - Lifetime JP3626239B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/231,009 US5426378A (en) 1994-04-20 1994-04-20 Programmable logic device which stores more than one configuration and means for switching configurations
US231009 1994-04-20

Publications (2)

Publication Number Publication Date
JPH0851356A JPH0851356A (ja) 1996-02-20
JP3626239B2 true JP3626239B2 (ja) 2005-03-02

Family

ID=22867425

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09522195A Expired - Lifetime JP3626239B2 (ja) 1994-04-20 1995-04-20 プログラマブルアレイ

Country Status (4)

Country Link
US (1) US5426378A (ja)
EP (2) EP0678985B1 (ja)
JP (1) JP3626239B2 (ja)
DE (1) DE69534812T2 (ja)

Families Citing this family (289)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6759870B2 (en) 1991-09-03 2004-07-06 Altera Corporation Programmable logic array integrated circuits
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US20020130681A1 (en) * 1991-09-03 2002-09-19 Cliff Richard G. Programmable logic array integrated circuits
US5477172A (en) * 1994-12-12 1995-12-19 Advanced Micro Devices, Inc. Configurable input buffer dependent on supply voltage
US5742180A (en) * 1995-02-10 1998-04-21 Massachusetts Institute Of Technology Dynamically programmable gate array with multiple contexts
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US6049223A (en) * 1995-03-22 2000-04-11 Altera Corporation Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory
US5646544A (en) * 1995-06-05 1997-07-08 International Business Machines Corporation System and method for dynamically reconfiguring a programmable gate array
US5583450A (en) * 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US5646545A (en) * 1995-08-18 1997-07-08 Xilinx, Inc. Time multiplexed programmable logic device
US5784313A (en) 1995-08-18 1998-07-21 Xilinx, Inc. Programmable logic device including configuration data or user data memory slices
US5701441A (en) * 1995-08-18 1997-12-23 Xilinx, Inc. Computer-implemented method of optimizing a design in a time multiplexed programmable logic device
US5838954A (en) * 1995-08-18 1998-11-17 Xilinx, Inc. Computer-implemented method of optimizing a time multiplexed programmable logic device
US5600263A (en) * 1995-08-18 1997-02-04 Xilinx, Inc. Configuration modes for a time multiplexed programmable logic device
US5629637A (en) * 1995-08-18 1997-05-13 Xilinx, Inc. Method of time multiplexing a programmable logic device
US5761483A (en) * 1995-08-18 1998-06-02 Xilinx, Inc. Optimizing and operating a time multiplexed programmable logic device
US5684411A (en) * 1995-10-13 1997-11-04 Seiko Communications Systems, Inc. Self-configuring bus
US5794033A (en) * 1995-10-24 1998-08-11 International Business Machines Corporation Method and system for in-site and on-line reprogramming of hardware logics with remote loading in a network device
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US5732407A (en) * 1995-12-11 1998-03-24 Hewlett-Packard Co. Configurable random access memory for programmable logic devices
JPH09231788A (ja) * 1995-12-19 1997-09-05 Fujitsu Ltd シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム
US5914906A (en) * 1995-12-20 1999-06-22 International Business Machines Corporation Field programmable memory array
US5848285A (en) * 1995-12-26 1998-12-08 Cypress Semiconductor Corporation Macrocell having a dual purpose input register for use in a logic device
US5811989A (en) * 1995-12-29 1998-09-22 Cypress Semiconductor Corp. Programmable I/O cell with data conversion capability
US5760719A (en) * 1995-12-29 1998-06-02 Cypress Semiconductor Corp. Programmable I/O cell with data conversion capability
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5786710A (en) * 1995-12-29 1998-07-28 Cypress Semiconductor Corp. Programmable I/O cell with data conversion capability
US5760602A (en) * 1996-01-17 1998-06-02 Hewlett-Packard Company Time multiplexing a plurality of configuration settings of a programmable switch element in a FPGA
US6020758A (en) * 1996-03-11 2000-02-01 Altera Corporation Partially reconfigurable programmable logic device
US5726584A (en) * 1996-03-18 1998-03-10 Xilinx, Inc. Virtual high density programmable integrated circuit having addressable shared memory cells
US5956518A (en) 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5977791A (en) 1996-04-15 1999-11-02 Altera Corporation Embedded memory block with FIFO mode for programmable logic device
JPH09293015A (ja) * 1996-04-24 1997-11-11 Mitsubishi Electric Corp メモリシステムおよびそれに用いられる半導体記憶装置
US5838165A (en) * 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US5901279A (en) * 1996-10-18 1999-05-04 Hughes Electronics Corporation Connection of spares between multiple programmable devices
US6134707A (en) * 1996-11-14 2000-10-17 Altera Corporation Apparatus and method for in-system programming of integrated circuits containing programmable elements
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654593A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
ATE243390T1 (de) * 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
US5959466A (en) 1997-01-31 1999-09-28 Actel Corporation Field programmable gate array with mask programmed input and output buffers
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (de) 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE19704742A1 (de) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US6150837A (en) * 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US6551857B2 (en) 1997-04-04 2003-04-22 Elm Technology Corporation Three dimensional structure integrated circuits
JP3106998B2 (ja) * 1997-04-11 2000-11-06 日本電気株式会社 メモリ付加型プログラマブルロジックlsi
US6421817B1 (en) 1997-05-29 2002-07-16 Xilinx, Inc. System and method of computation in a programmable logic device using virtual instructions
US6047115A (en) * 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
US5960191A (en) * 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US6011744A (en) 1997-07-16 2000-01-04 Altera Corporation Programmable logic device with multi-port memory
US6034857A (en) 1997-07-16 2000-03-07 Altera Corporation Input/output buffer with overcurrent protection circuit
US6020760A (en) * 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6108760A (en) * 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US5986467A (en) * 1997-10-31 1999-11-16 Xilinx, Inc. Time-multiplexed programmable logic devices
US5915123A (en) 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US6091263A (en) * 1997-12-12 2000-07-18 Xilinx, Inc. Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6367063B1 (en) * 1998-02-05 2002-04-02 Hughes Electronics Corporation Method and apparatus for selectively performing a plurality of logic operations and memory functions
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US6008666A (en) * 1998-04-01 1999-12-28 Xilinx, Inc. Variable-delay interconnect structure for a programmable logic device
US6150863A (en) * 1998-04-01 2000-11-21 Xilinx, Inc. User-controlled delay circuit for a programmable logic device
US6226735B1 (en) 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6138229A (en) * 1998-05-29 2000-10-24 Motorola, Inc. Customizable instruction set processor with non-configurable/configurable decoding units and non-configurable/configurable execution units
US6467017B1 (en) 1998-06-23 2002-10-15 Altera Corporation Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US6356637B1 (en) 1998-09-18 2002-03-12 Sun Microsystems, Inc. Field programmable gate arrays
JP3444216B2 (ja) 1999-01-28 2003-09-08 日本電気株式会社 プログラマブルデバイス
US6262933B1 (en) 1999-01-29 2001-07-17 Altera Corporation High speed programmable address decoder
JP3616518B2 (ja) 1999-02-10 2005-02-02 日本電気株式会社 プログラマブルデバイス
WO2002013000A2 (de) 2000-06-13 2002-02-14 Pact Informationstechnologie Gmbh Pipeline ct-protokolle und -kommunikation
US6407576B1 (en) 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
DE10081643D2 (de) 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
US6486702B1 (en) 1999-07-02 2002-11-26 Altera Corporation Embedded memory blocks for programmable logic
US6507211B1 (en) 1999-07-29 2003-01-14 Xilinx, Inc. Programmable logic device capable of preserving user data during partial or complete reconfiguration
US6745317B1 (en) 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US6288566B1 (en) * 1999-09-23 2001-09-11 Chameleon Systems, Inc. Configuration state memory for functional blocks on a reconfigurable chip
US6662302B1 (en) * 1999-09-29 2003-12-09 Conexant Systems, Inc. Method and apparatus of selecting one of a plurality of predetermined configurations using only necessary bus widths based on power consumption analysis for programmable logic device
US6714537B1 (en) * 1999-10-19 2004-03-30 Ciena Corp. Switch fabric architecture and techniques for implementing rapid hitless switchover
US6633181B1 (en) * 1999-12-30 2003-10-14 Stretch, Inc. Multi-scale programmable array
US6462577B1 (en) * 2000-04-28 2002-10-08 Altera Corporation Configurable memory structures in a programmable logic device
US7031267B2 (en) 2000-12-21 2006-04-18 802 Systems Llc PLD-based packet filtering methods with PLD configuration data update of filtering rules
US7013482B1 (en) 2000-07-07 2006-03-14 802 Systems Llc Methods for packet filtering including packet invalidation if packet validity determination not timely made
US6526557B1 (en) * 2000-07-25 2003-02-25 Xilinx, Inc. Architecture and method for partially reconfiguring an FPGA
AU2002220600A1 (en) 2000-10-06 2002-04-15 Pact Informationstechnologie Gmbh Cell system with segmented intermediate cell structure
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US6603330B1 (en) * 2000-10-26 2003-08-05 Cypress Semiconductor Corporation Configuring digital functions in a digital configurable macro architecture
US6825689B1 (en) 2000-10-26 2004-11-30 Cypress Semiconductor Corporation Configurable input/output interface for a microcontroller
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US6507214B1 (en) 2000-10-26 2003-01-14 Cypress Semiconductor Corporation Digital configurable macro architecture
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US20020080784A1 (en) * 2000-12-21 2002-06-27 802 Systems, Inc. Methods and systems using PLD-based network communication protocols
US20020083331A1 (en) * 2000-12-21 2002-06-27 802 Systems, Inc. Methods and systems using PLD-based network communication protocols
US6990555B2 (en) * 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US6720796B1 (en) 2001-05-06 2004-04-13 Altera Corporation Multiple size memories in a programmable logic device
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
EP1402382B1 (de) 2001-06-20 2010-08-18 Richter, Thomas Verfahren zur bearbeitung von daten
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US8069405B1 (en) * 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7577822B2 (en) 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
US6924663B2 (en) * 2001-12-28 2005-08-02 Fujitsu Limited Programmable logic device with ferroelectric configuration memories
EP1483682A2 (de) 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
AU2003214003A1 (en) 2002-02-18 2003-09-09 Pact Xpp Technologies Ag Bus systems and method for reconfiguration
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
DE60204539D1 (de) * 2002-04-03 2005-07-14 Sgs Thomson Microelectronics Feldprogrammierbare Vorrichtung
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US6661724B1 (en) 2002-06-13 2003-12-09 Cypress Semiconductor Corporation Method and system for programming a memory device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
US7402897B2 (en) * 2002-08-08 2008-07-22 Elm Technology Corporation Vertical system integration
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US6829756B1 (en) 2002-09-23 2004-12-07 Xilinx, Inc. Programmable logic device with time-multiplexed interconnect
US7111110B1 (en) 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device
US7590829B2 (en) * 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US7613900B2 (en) * 2003-03-31 2009-11-03 Stretch, Inc. Systems and methods for selecting input/output configuration in an integrated circuit
US8001266B1 (en) 2003-03-31 2011-08-16 Stretch, Inc. Configuring a multi-processor system
US7000211B2 (en) * 2003-03-31 2006-02-14 Stretch, Inc. System and method for efficiently mapping heterogeneous objects onto an array of heterogeneous programmable logic resources
US7581081B2 (en) 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
JP4665760B2 (ja) * 2003-06-25 2011-04-06 日本電気株式会社 電子計算機、半導体集積回路、制御方法、プログラムの生成方法、及びプログラム
US7796464B1 (en) 2003-06-27 2010-09-14 Cypress Semiconductor Corporation Synchronous memory with a shadow-cycle counter
US7418575B2 (en) * 2003-07-29 2008-08-26 Stretch, Inc. Long instruction word processing with instruction extensions
US7373642B2 (en) * 2003-07-29 2008-05-13 Stretch, Inc. Defining instruction extensions in a standard programming language
US7167025B1 (en) * 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7126381B1 (en) 2004-02-14 2006-10-24 Herman Schmit VPA interconnect circuit
US7284222B1 (en) * 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7109752B1 (en) * 2004-02-14 2006-09-19 Herman Schmit Configurable circuits, IC's, and systems
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7193440B1 (en) * 2004-02-14 2007-03-20 Herman Schmit Configurable circuits, IC's, and systems
US7622951B2 (en) * 2004-02-14 2009-11-24 Tabula, Inc. Via programmable gate array with offset direct connections
JP3836109B2 (ja) * 2004-02-19 2006-10-18 東京エレクトロン株式会社 プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US20050214419A1 (en) * 2004-03-29 2005-09-29 Aberle Rick A Method and apparatus for providing instantaneous, real-time data for extrusion process control
JP4546775B2 (ja) * 2004-06-30 2010-09-15 富士通株式会社 時分割多重処理可能なリコンフィギュラブル回路
US7439766B2 (en) * 2004-06-30 2008-10-21 Tabula, Inc. Configurable logic circuits with commutative properties
US7282950B1 (en) * 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7408382B2 (en) * 2004-06-30 2008-08-05 Tabula, Inc. Configurable circuits, IC's, and systems
US7449915B2 (en) * 2004-06-30 2008-11-11 Tabula Inc. VPA logic circuits
US7312630B2 (en) 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7145361B1 (en) * 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7193438B1 (en) * 2004-06-30 2007-03-20 Andre Rohe Configurable integrated circuit with offset connection
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US8082531B2 (en) * 2004-08-13 2011-12-20 Cypress Semiconductor Corporation Method and an apparatus to design a processing system using a graphical user interface
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US7183801B2 (en) * 2004-09-08 2007-02-27 Atmel Corporation Programmable logic auto write-back
US7301242B2 (en) * 2004-11-04 2007-11-27 Tabula, Inc. Programmable system in package
US7530044B2 (en) * 2004-11-04 2009-05-05 Tabula, Inc. Method for manufacturing a programmable system in package
US7573296B2 (en) * 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7917559B2 (en) * 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US7330050B2 (en) * 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7295037B2 (en) 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7224181B1 (en) * 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7317331B2 (en) * 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7276933B1 (en) * 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7259587B1 (en) 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7301368B2 (en) * 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7242216B1 (en) * 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7342415B2 (en) 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7428721B2 (en) * 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
US7236009B1 (en) 2004-12-01 2007-06-26 Andre Rohe Operational time extension
JP4831957B2 (ja) * 2004-12-02 2011-12-07 ルネサスエレクトロニクス株式会社 コピー防止回路装置およびコピー防止方法
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7298169B2 (en) * 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US7825684B2 (en) * 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7230869B1 (en) * 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US7272031B1 (en) * 2005-03-15 2007-09-18 Tabula, Inc. Method and apparatus for reduced power cell
US8201124B1 (en) 2005-03-15 2012-06-12 Tabula, Inc. System in package and method of creating system in package
US20070244959A1 (en) * 2005-03-15 2007-10-18 Steven Teig Configurable IC's with dual carry chains
US7224182B1 (en) * 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US7301822B1 (en) * 2005-05-18 2007-11-27 Xilinx, Inc. Multi-boot configuration of programmable devices
US7358762B1 (en) 2005-05-18 2008-04-15 Xilinx, Inc. Parallel interface for configuring programmable devices
US8138788B2 (en) * 2005-05-31 2012-03-20 Fuji Xerox Co., Ltd. Reconfigurable device
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US7492186B2 (en) * 2005-07-15 2009-02-17 Tabula, Inc. Runtime loading of configuration data in a configurable IC
US7375550B1 (en) * 2005-07-15 2008-05-20 Tabula, Inc. Configurable IC with packet switch configuration network
US7212448B1 (en) 2005-07-19 2007-05-01 Xilinx, Inc. Method and apparatus for multiple context and high reliability operation of programmable logic devices
US7266020B1 (en) 2005-07-19 2007-09-04 Xilinx, Inc. Method and apparatus for address and data line usage in a multiple context programmable logic device
US7250786B1 (en) 2005-07-19 2007-07-31 Xilinx, Inc. Method and apparatus for modular redundancy with alternative mode of operation
US7236000B1 (en) 2005-10-18 2007-06-26 Xilinx, Inc. Method and apparatus for error mitigation of programmable logic device configuration memory
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US7262633B1 (en) 2005-11-11 2007-08-28 Tabula, Inc. Via programmable gate array with offset bit lines
US7461362B1 (en) 2005-12-01 2008-12-02 Tabula, Inc. Replacing circuit design elements with their equivalents
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7489162B1 (en) 2005-12-01 2009-02-10 Tabula, Inc. Users registers in a reconfigurable IC
US7783467B2 (en) * 2005-12-10 2010-08-24 Electronics And Telecommunications Research Institute Method for digital system modeling by using higher software simulator
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US8090568B2 (en) * 2006-02-21 2012-01-03 Cadence Design Systems, Inc. Hardware emulator having a variable input primitive
US7797497B1 (en) * 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7504858B1 (en) 2006-03-08 2009-03-17 Tabula, Inc. Configurable integrated circuit with parallel non-neighboring offset connections
US7609085B1 (en) 2006-03-08 2009-10-27 Tabula, Inc. Configurable integrated circuit with a 4-to-1 multiplexer
US7518400B1 (en) 2006-03-08 2009-04-14 Tabula, Inc. Barrel shifter implemented on a configurable integrated circuit
US7694083B1 (en) * 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
US7529992B1 (en) 2006-03-27 2009-05-05 Tabula, Inc. Configurable integrated circuit with error correcting circuitry
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
US7587697B1 (en) 2006-12-12 2009-09-08 Tabula, Inc. System and method of mapping memory blocks in a configurable integrated circuit
US7870472B2 (en) * 2007-01-31 2011-01-11 Sandisk 3D Llc Methods and apparatus for employing redundant arrays to configure non-volatile memory
US7870471B2 (en) * 2007-01-31 2011-01-11 Sandisk 3D Llc Methods and apparatus for employing redundant arrays to configure non-volatile memory
EP2597777A3 (en) 2007-03-20 2014-08-20 Tabula, Inc. Configurable IC having a routing fabric with storage elements
US7610566B1 (en) 2007-03-22 2009-10-27 Tabula, Inc. Method and apparatus for function decomposition
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US7501855B2 (en) * 2007-06-27 2009-03-10 Tabula, Inc Transport network for a configurable IC
US8412990B2 (en) * 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
US8069425B2 (en) * 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US7652498B2 (en) * 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US7839162B2 (en) * 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US7579867B2 (en) * 2007-06-27 2009-08-25 Tabula Inc. Restructuring data from a trace buffer of a configurable IC
US7595655B2 (en) * 2007-06-27 2009-09-29 Tabula, Inc. Retrieving data from a configurable IC
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
EP2201569A4 (en) 2007-09-06 2011-07-13 Tabula Inc CONFIGURATION CONTEXT SWITCH
US8990651B2 (en) 2007-09-19 2015-03-24 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
US7996656B2 (en) * 2007-09-25 2011-08-09 Intel Corporation Attaching and virtualizing reconfigurable logic units to a processor
US7576561B1 (en) 2007-11-13 2009-08-18 Xilinx, Inc. Device and method of configuring a device having programmable logic
US7893772B1 (en) 2007-12-03 2011-02-22 Cypress Semiconductor Corporation System and method of loading a programmable counter
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
GB2457912A (en) * 2008-02-27 2009-09-02 Silicon Basis Ltd An FPGA which is reconfigured between each clock cycle
WO2009107212A1 (ja) * 2008-02-28 2009-09-03 富士通株式会社 ストレージ装置、ストレージ制御装置およびストレージ制御方法
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8525548B2 (en) * 2008-08-04 2013-09-03 Tabula, Inc. Trigger circuits and event counters for an IC
EP2345160A4 (en) * 2008-09-17 2016-11-16 Altera Corp CONTROLLABLE STORAGE ELEMENTS FOR INTEGRATED CIRCUIT
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
US8912820B2 (en) 2010-04-02 2014-12-16 Tabula, Inc. System and method for reducing reconfiguration power
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
US9203397B1 (en) 2011-12-16 2015-12-01 Altera Corporation Delaying start of user design execution
WO2013176199A1 (en) 2012-05-25 2013-11-28 Semiconductor Energy Laboratory Co., Ltd. Programmable logic device and semiconductor device
US8536896B1 (en) 2012-05-31 2013-09-17 Xilinx, Inc. Programmable interconnect element and method of implementing a programmable interconnect element
US8519741B1 (en) 2012-07-06 2013-08-27 Xilinx, Inc. Operating a programmable integrated circuit with functionally equivalent configuration bitstreams
KR101920719B1 (ko) * 2012-11-19 2019-02-13 삼성전자주식회사 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법
US9330040B2 (en) * 2013-09-12 2016-05-03 Qualcomm Incorporated Serial configuration of a reconfigurable instruction cell array
US9973265B2 (en) 2014-04-30 2018-05-15 The Boeing Company Hitless rearrangement of a satellite-hosted switch via propagated synchronization
US10523207B2 (en) * 2014-08-15 2019-12-31 Altera Corporation Programmable circuit having multiple sectors
US9954531B2 (en) * 2015-03-03 2018-04-24 Semiconductor Energy Laboratory Co., Ltd. Electronic device
US10509757B2 (en) * 2016-09-22 2019-12-17 Altera Corporation Integrated circuits having expandable processor memory
EP4137941A1 (en) 2017-03-20 2023-02-22 Intel Corporation Systems, methods, and apparatuses for matrix add, subtract, and multiply
WO2019009870A1 (en) 2017-07-01 2019-01-10 Intel Corporation SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670749A (en) * 1984-04-13 1987-06-02 Zilog, Inc. Integrated circuit programmable cross-point connection technique
US4879688A (en) * 1985-03-04 1989-11-07 Lattice Semiconductor Corporation In-system programmable logic device
JP2541248B2 (ja) * 1987-11-20 1996-10-09 三菱電機株式会社 プログラマブル・ロジック・アレイ
US5212652A (en) * 1989-08-15 1993-05-18 Advanced Micro Devices, Inc. Programmable gate array with improved interconnect structure
US4972105A (en) * 1989-09-22 1990-11-20 The U.S. Government As Represented By The Director, National Security Agency Programmable configurable logic memory
JP2544020B2 (ja) * 1990-11-19 1996-10-16 川崎製鉄株式会社 プログラマブル論理素子
US5122685A (en) * 1991-03-06 1992-06-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5317209A (en) * 1991-08-29 1994-05-31 National Semiconductor Corporation Dynamic three-state bussing capability in a configurable logic array
CA2091860A1 (en) * 1992-07-29 1994-01-30 F. Erich Goetting Configuration control unit for programming a field programmable gate array and reading array status
US5329179A (en) * 1992-10-05 1994-07-12 Lattice Semiconductor Corporation Arrangement for parallel programming of in-system programmable IC logical devices
US5341044A (en) * 1993-04-19 1994-08-23 Altera Corporation Flexible configuration logic array block for programmable logic devices
US5430687A (en) * 1994-04-01 1995-07-04 Xilinx, Inc. Programmable logic device including a parallel input device for loading memory cells

Also Published As

Publication number Publication date
EP0678985B1 (en) 2006-03-01
DE69534812D1 (de) 2006-04-27
EP1455455A2 (en) 2004-09-08
EP1455455B1 (en) 2013-09-11
US5426378A (en) 1995-06-20
JPH0851356A (ja) 1996-02-20
EP1455455A3 (en) 2008-04-09
DE69534812T2 (de) 2006-09-14
EP0678985A2 (en) 1995-10-25
EP0678985A3 (en) 1997-07-23

Similar Documents

Publication Publication Date Title
JP3626239B2 (ja) プログラマブルアレイ
US5081375A (en) Method for operating a multiple page programmable logic device
US6198304B1 (en) Programmable logic device
US5811986A (en) Flexible synchronous/asynchronous cell structure for a high density programmable logic device
US7477072B1 (en) Circuit for and method of enabling partial reconfiguration of a device having programmable logic
US4963768A (en) Flexible, programmable cell array interconnected by a programmable switch matrix
JP3471088B2 (ja) 改良されたプログラマブル論理セルアレイアーキテクチャ
US6105105A (en) Data processing system using configuration select logic, an instruction store, and sequencing logic during instruction execution
US6501296B2 (en) Logic/memory circuit having a plurality of operating modes
US5742180A (en) Dynamically programmable gate array with multiple contexts
US5457409A (en) Architecture of a multiple array high density programmable logic device with a plurality of programmable switch matrices
US7088134B1 (en) Programmable logic device with flexible memory allocation and routing
US4942319A (en) Multiple page programmable logic architecture
JPH08330945A (ja) プログラム可能ゲート・アレイの動的再構成システム
JPH09231788A (ja) シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム
WO1996038917A1 (en) Very high-density complex programmable logic devices with a multi-tiered hierarchical switch matrix and optimized flexible logic allocation
US4983959A (en) Logic output macrocell
JP2001520837A (ja) ゲートアレイのための機能ブロックアーキテクチャ
US5617042A (en) Multiple array programmable logic device with a plurality of programmable switch matrices
US6879185B2 (en) Low power clock distribution scheme
US5497107A (en) Multiple, selectable PLAS having shared inputs and outputs
US5021689A (en) Multiple page programmable logic architecture
US6249149B1 (en) Apparatus and method for centralized generation of an enabled clock signal for a logic array block of a programmable logic device
US6028446A (en) Flexible synchronous and asynchronous circuits for a very high density programmable logic device
US6680871B1 (en) Method and apparatus for testing memory embedded in mask-programmable logic device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041014

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: 20041102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041202

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: 20071210

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081210

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091210

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101210

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111210

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121210

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term