JP4319786B2 - 多目的論理/メモリ回路を具備するfpga形態特定可能論理ブロック - Google Patents
多目的論理/メモリ回路を具備するfpga形態特定可能論理ブロック Download PDFInfo
- Publication number
- JP4319786B2 JP4319786B2 JP2000601740A JP2000601740A JP4319786B2 JP 4319786 B2 JP4319786 B2 JP 4319786B2 JP 2000601740 A JP2000601740 A JP 2000601740A JP 2000601740 A JP2000601740 A JP 2000601740A JP 4319786 B2 JP4319786 B2 JP 4319786B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- signal
- logic
- write
- lmc
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic 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/1778—Structural details for adapting physical parameters
- H03K19/17792—Structural details for adapting physical parameters for operating speed
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)
- Static Random-Access Memory (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明はプログラム可能論理装置に関するものであって、更に詳細には、フィールドプログラマブルゲートアレイのコンフィギュアラブル(configurable)即ち形態特定可能な論理ブロックに関するものである。
【0002】
【従来の技術】
図1(A)は基本的なフィールドプログラマブルゲートアレイ(FPGA)100を示した概略図であって、それは1つのタイプのプログラム可能論理装置(PLD)である。FPGA100は入力/出力ブロック(IOB)IOB−1乃至IOB−16によって取囲まれている形態特定可能論理ブロック(CLB)CLB−1,1乃至CLB−4,4からなるアレイ、及びCLB及びIOBの行と列との間に延在している垂直相互接続セグメント120と水平相互接続セグメント121とを包含しているプログラム可能相互接続資源を有している。各CLBは形態特定可能な組合わせ回路及びユーザの論理機能(関数)の一部を実現するためにプログラムされているオプションとしての出力レジスタを有している。プログラム可能相互接続資源の相互接続セグメントは、論理機能部分をリンクさせるCLB間に信号経路を発生させるための種々のスイッチを使用して形態特定される。各IOBは同様に形態特定されて、FPGA100の関連するピン(不図示)を装置入力ピン、装置出力ピン、又は入力/出力ピンのいずれかとして選択的に利用する。著しく簡単化してあるが、FPGA100は、通常、カリフォルニア州サンノゼのザイリンクス、インコーポレイテッドによって製造されているFPGAと一貫性を有している。
【0003】
図1(B)乃至1(D)は、FPGA100のプログラム可能相互接続資源と関連している種々のスイッチの例を示した概略図である。図1(B)は6態様セグメント対セグメントスイッチ122の1例を示しており、それはメモリセルM1乃至M6内に格納されているコンフィギュレーション(configuration)即ち形態特定データに従って垂直配線セグメント120(1)及び120(2)及び水平配線セグメント121(1)及び121(2)を選択的に接続させる。一方、水平及び垂直配線セグメント120及び121が交点において断線しない場合には、単一のトランジスタが接続を行う。図1(C)はセグメント対CLB/IOB入力スイッチ123の1例を示しており、それはメモリセルM7及びM8内に格納されているコンフィギュレーションデータに従って、CLB(又はIOB)入力配線110(1)を1つ又はそれ以上の相互接続配線セグメントへ選択的に接続させる。図1(D)はCLB/IOB対セグメント出力スイッチ124の1例を示しており、それはメモリセルM9乃至M11内に格納されているコンフィギュレーションデータに従って、CLB(又はIOB)の出力配線115(1)を1つ又はそれ以上の相互接続配線セグメントへ選択的に接続する。
【0004】
第一FPGAが1980年代に発明されて以来、FPGAが特定の機能をより効率的に実現することを可能とする基本的なFPGA回路に関する変形がなされて来ている。例えば、汎用相互接続線を使用することなしに且つ高速で隣接するCLBを接続させることを可能とするために特別相互接続線が付加されている。更に、FPGAが演算機能又はある幅広の論理機能を実現するべく形態特定される場合に高速のキャリィ信号伝送を可能とするハードウエアが隣接するCLB間に配置されている。最後にCLBと関連する回路は幾つかの変形がなされ、それは各CLBが特別の機能をより効率的に実現することを可能としている。このようなCLBの修正は本発明にとって特に重要である。
【0005】
図2(A)はザイリンクス、インコーポレイテッドによって製造されているXC4000(商標)シリーズのFPGAにおいて使用されている従来のCLB200を示した簡単化した概略図である。CLB200は、第一4入力ルックアップテーブル(LUT)F、第二4入力LUT G、3入力LUT H、1組のLUT出力マルチプレクサ(MUX)210、オプションの出力レジスタFF−1及びFF−2、及びCLB200内における信号のルーチング即ち経路付けを行うための付加的な回路を有している。LUT FはFPGAの相互接続資源から送信されるデータ入力信号F1−F4を受取る。同様に、LUT Gはデータ入力信号G1乃至G4を受取る。LUT F及びGの動作について以下に詳細に説明する。8個のデータ入力信号F1乃至F4及びG1乃至G4に加えて、CLB200は、クロック信号CLK、データ/制御信号H1,DIN/H2,SR/H0,ECを受取る。CLB200と関連している種々のプログラム可能要素を選択的に形態特定させることによって、CLB200はユーザの論理機能の割り当てた部分と一貫性を有するデータ及び制御信号に応答して出力信号を発生する。
【0006】
図2(B)はCLB200において4入力LUT F及びGを実現することが可能な回路を示した概略図である。各4入力LUTは、16個のメモリビットM0乃至M15及びMUX構造240を具備するメモリ回路230を有している。メモリビットM0乃至M15の各々のプログラムした状態はライン235を介してMUX構造240へ送信される。MUX構造240はメモリビットのうちの1つのプログラムした状態を4入力信号(F1乃至F4か又はG1乃至G4)に応答して出力端子245へ選択的に通過させる。機能について説明すると、MUX構造240は該4入力信号によって制御される一連の2入力MUXを有している。4入力信号の各組合わせはメモリ回路230のメモリビットM0乃至M15のうちの1つの内容をLUTが出力させる一時的なアドレスを発生する。
【0007】
図2(C)はメモリ回路230のメモリビットM0を示した簡単化した回路図である(図2(B)参照)。メモリビットM0は夫々パストランジスタ232及び233を介してBIT及びBIT b(反転ビット)線へ接続しているラッチ231を形成するために端部同志を接続した第一及び第二インバータと、ラッチ231と出力線235−1との間に接続されている第三インバータ234とを有している。パストランジスタ232及び233はWRITE(書込)制御線によって制御される。コンフィギュレーション即ち形態特定モード期間中、WRITE線は高へ移行され且つデータがBIT及びBIT b線を介してラッチへ送信される。その後の動作期間中、該ラッチによって格納されるデータビットが第三インバータ234を介して送信され且つ出力線235−1へ印加され、それは該データビットをMUX構造240へ送信する。
【0008】
CLB200の4入力LUT F及びGは多くの論理機能を実現するために極めて有用なものであることが判明した。然しながら、4個又はそれ以上のCLBを介して信号を伝送することを必要とするある大きな論理機能を実現する場合に問題が発生する。図3は6個のCLBを有するFPGAの一部300を示した簡単化した概略図である。部分300と関連する相互接続資源は、選択したCLBの間でデータ信号を伝送させるための信号経路310を与えるべくプログラムされている。特に、信号経路310は、CLB−1,1のLUT Fへ送信される入力信号、CLB−1,2のLUT Fへ送信されるCLB−1,1のLUT Fからの出力信号、CLB−2,2LUT Gへ送信されるCLB−1,2のLUT Fからの出力信号、CLB−2,3のLUT G及びHへ送信されるCLB−2,2のLUT−Gからの出力信号、及びCLB−2,3のLUT Hからの出力信号の伝送経路を定義している。
【0009】
信号経路310は、典型的に、ユーザの論理機能と関連する多数の信号経路のうちの1つを表している。例えば、付加的な入力信号をCLB−1,1のLUT Fへ送信させるためにその他の信号経路が使用される(これらの付加的な信号経路はCLB−1,1から延在する短い線によって省略した態様で表示してある)。これらの付加的な信号経路によって使用される相互接続資源は示しておらず従って信号経路310が明白に識別される。
【0010】
PLDのCLB、IOB、相互接続資源の種々のコンポーネントは信号遅延を導入し、それはPLDを介しての信号を遅延させる。例えば、信号がFPGAと関連する種々のスイッチを介して通過する場合に遅延が導入される(上述した図1(B)乃至1(D)参照)。典型的に、FPGAのCLBを介しての信号の伝播によって更に大きな遅延が発生される。上述したように、各4入力LUT F/Gからの出力信号は4入力信号によってアドレスされる選択されたメモリセルから4個のMUXを介して通過される。各4入力LUTの4個のMUXを介しての送信と関連する遅延は約1ナノ秒(ns)である。付加的な遅延が、その後、LUT出力MUX210によって発生される。
【0011】
PLDユーザは、しばしば、ターゲットPLDにおいて実現される論理機能における1つ又はそれ以上の信号経路に関してタイミング制限を課す場合がある。これらのタイミング制限、即ち「拘束条件」は特定の経路に沿って信号が伝播するのに許容される最大期間を定義する。信号経路は、それが回路の最大クロックレートを制限する場合に、「クリチカル」パスと呼称される。幾つかの信号は比較的数の少ないCLBを介して送信される場合があり、その場合には比較的短い伝播遅延を経験する。逆に、その他の信号は比較的多数のCLBを介して送信され、その場合に比較的大きな遅延を経験し、且つこれらの信号のうちの1つは、しばしば、クリチカルパス上にある。従って、信号がクリチカルパスに沿って進行するCLBの数を最小とすることが重要である。
【0012】
複数個のCLBを介しての信号送信と関連する伝播遅延を最小とさせる1つのアプローチは、ユーザの論理機能の多くの部分を実現することが可能な大型の汎用論理回路を与えることである。上述したように、FPGAのCLBが小さな論理回路(例えば、4入力LUT)を有している場合には、ユーザの論理機能はこれらの小さな論理回路で実現することが可能な比較的小さな論理部分に区画化されねばならない。大きな論理機能を複数個の小さな論理部分へ区画化することは論理機能の1つ又はそれ以上の経路がユーザのタイミング高速条件を満足することに失敗する場合がある。大きな論理回路を提供することによって、配置及び経路付けソフトウエアがユーザの論理機能を伝播遅延が最小であるように大きな論理回路で効率的に実現させることが可能なより大きな論理部分へ区画化することが可能である。
【0013】
大きな汎用論理回路がプログラム可能論理アレイ(PLA)又はプログラム可能アレイ論理(PAL)回路の経路の形態で幾つかのPLDにおいて提供されている。LUTと異なり、PLA及びPAL回路は論理機能を実現するためにAND/OR論理構成を利用する。PLA及びPAL回路は、典型的に、LUTよりも高速なワイドな即ち幅広な論理機能を実現するものであるが、それらはこのAND/OR論理構成によって制限されている。一般的には、LUTは同等の寸法を有するPLA及びPAL回路よりもより複雑な論理機能を実現することが可能である。
【0014】
【発明が解決しようとする課題】
必要とされているものは、制限された量の空間を使用しながら、LUT論理構成を使用して大きな論理機能を実現することを可能とするFPGA用のCLBである。更に必要とされているものは、LUT又はPLA/PALのいずれかとして動作させることが可能であり、それにより論理機能の一部をこれらの論理回路タイプのいずれかで選択的にユーザが実現することを可能とするFPGA用の論理/メモリ回路である。
【0015】
【課題を解決するための手段】
本発明は、プログラム可能要素(メモリセル)の同一のアレイを使用して高容量ルックアップテーブル(LUT)動作及びRAM動作の両方を実現することが可能なプログラム可能論理装置(PLD)のコンフィギャラブル即ち形態特定可能論理ブロック(CLB)において使用される多目的論理/メモリ回路(LMC)に関するものである。幾つかの実施例においては、プログラム可能要素のアレイは、又、高速プログラム可能アレイ論理(PAL)動作を実施するために使用される。プログラム可能要素の同一のアレイがLUT、RAM又はPAL動作のために選択的に使用されるので、本発明のLMCは、ユーザの論理機能を高効率の態様で実現することが可能な高度に多様性のある論理回路を提供する。
【0016】
本発明の1実施例によれば、LMCが、プログラム可能要素の同一の16×16アレイを使用して、8入力ルックアップテーブル(LUT)か又は256ビットRAMのいずれかを実現する。第一組の4入力信号が該アレイの1つの列内に格納されているワード(即ち、16個のプログラム可能要素)をアドレスするために使用され、且つ第二組の4入力信号が選択されたワードからの1個又はそれ以上のビットを1組の出力端子へ通過させるために使用される。その結果得られる8入力LUTは従来の16ビットLUTよりも実質的により大きな容量を与え、従って、最小の付加的な空間を占有しながら、ユーザの論理機能の実質的により大きな部分を実現することが可能である。更に、より大きな論理機能を単一の8入力LUTにおいて実現することが可能であるので、複数個の16ビットLUT間での信号の送信に関連する伝播遅延を回避することが可能である。更に、1実施例においては、独立した読取ビット線が読取動作期間中の容量を最小とするために使用され、それによりより速い動作速度を提供している。
【0017】
本発明の別の実施例によれば、入力信号をアレイの書込ビット線へ直接送信するためにPAL入力信号制御回路を使用している。これらの入力信号は、プログラム可能要素内に格納されているビット値と共に、積項を発生する積項発生回路へ送信される。LMCは、又、積項に応答して積の和の項を発生するマクロセルが設けられている。この積の和の項はPAL動作期間中に選択的に送信され、それによりユーザが高速のPAL回路を使用して速度に影響され易い論理を実現することのオプションを可能としている。
【0018】
別の実施例においては、CLBは4個のLMC及びLMCへの入力信号及びそれからの出力信号に対してルーチング即ち経路付けするためのスイッチ回路を有している。乗算機能を実施するために乗算回路も設けられている。4個の大きな汎用LMC及び比較的小さな特別目的乗算器回路を単一のCLB内に設けることによって、ユーザの論理機能の大きな部分をCLB内において実現することが可能であり、それによりPLDの汎用相互接続資源を介しての信号の送信に関連する伝播遅延を回避している。更に別の実施例においては、CLBは高速論理を実現するためにLMCと乗算回路を具備する専用のPAL回路の両方を組み込んでいる。
【0019】
更に別の実施例においては、LMCは書込動作期間中にハードワイヤードデコーダによってアドレスされる4個の列のプログラム可能要素を具備する論理/メモリアレイを有している。該ハードワイヤードデコーダによって発生される読取アドレス信号によって制御される一連のパストランジスタを介して各プログラム可能要素からビット値が読取られ、それによりLUT及びRAM動作期間中における動作速度が増加される。更に、各読取ビット線へ接続されるプログラム可能要素の数を4へ制限することによって、最小の容量が読取ビット線へ付与され、それにより更に動作速度が増加される。
【0020】
【発明の実施の形態】
図4は標準のFPGA技術と一貫性を有する態様で相互接続資源420を介して選択的に接続される複数個の実質的に同一なコンフィギャラブル即ち形態特定可能な論理ブロック(CLB)410を具備しているFPGA(PLD)400の一部を示している。
【0021】
各CLB410は8入力論理/メモリ回路(LMC)430及びレジスタ回路(FF)440を有している。各LMC430は相互接続資源420から8個のデータ入力信号を受取り且つ1乃至4個のデータ出力信号を発生する。LMC430からの出力信号は相互接続資源420へ直接的に送信されるか、又はレジスタ回路440を介して送信される。
【0022】
相互接続資源420は、例えば、相互接続線セグメント及び従来のFPGA100(図1(A)参照)に関して上述したようなスイッチング回路を有している。以下に説明する1実施例においては、相互接続資源420の各チャンネルは、80個の並列相互接続線を有しており、それから入力信号が各CLB410に対して選択的に経路付けされ、且つそれに対して各CLB410は出力信号を送信する。その他の実施例においては、相互接続資源420の各チャンネルは異なる数の相互接続線を有することが可能である。
【0023】
本発明によれば、各LMC430はプログラム可能要素からなるアレイ及び論理又はメモリ機能のいずれかを実現するためにユーザが定義したコンフィギュレーションデータによってプログラムされるその他のコンフィギャラブル即ち形態特定可能な回路を有している。例えば、本発明の第一実施例においては、各LMC430は(a)最大でn個の入力信号の任意に定義されたブール関数(機能)を実現するためにプログラム可能要素からなるアレイを選択的にプログラムさせるn入力ルックアップテーブル(即ち、関数発生器)としてか、又は(b)入力信号によってアドレスされるメモリワードと関連するビット値をプログラム可能要素からなるアレイが格納する2nビットのランダムアクセスメモリ(RAM)としてのいずれかで動作すべくコンフィギャラブル即ち形態特定可能である。別の実施例においては、LMC430は、又、積の和の論理動作を実施するためのn入力プログラム可能論理アレイ(PLA)回路として選択的に動作すべく形態特定可能である。この別の実施例においては、プログラム可能要素アレイは、相互接続資源420を介してLMC430へ送信される入力信号に応答して1個又はそれ以上の積項(P項)を発生するANDアレイとして使用される。選択されたP項はORゲートへ経路付けされ、積の和の論理動作を実施する。LMC430の種々の実施例について以下に詳細に説明する。
【0024】
以下の説明においては、各LMC430は8個のデータ入力端子を有しており且つ256個のプログラム可能要素を具備する論理/メモリアレイを有している。LMC430は異なる(より大きな又はより小さな)数の入力及び異なる数のプログラム可能要素を具備するアレイを好適に有することが可能であるが、LMC430を8個の入力端子と256個のプログラム可能要素で形成することによってある種の利点が与えられる。第一に、LMC430がLUTとして使用される場合には、4個又はそれ以上の4入力LUT F/Gを必要とするある論理機能は単一のLMC430によってより短い時間で実現することが可能であり、それによりこれらの論理機能を実現するために必要とされる相互接続資源の数を著しく減少させる。8入力LUTをプログラムする技術は、Steve Wilton著「SMAP:埋込型メモリアレイを具備するFPGAにおける面積減少用の異種技術マッピング(SMAP: Heterogeneous Technology Mapping for Area Reduction in FPGAs with Embedded Memory Arrays)」、1998年2月出版、フィールドプログラマブルゲートアレイに関するACM/SIGTAインターナショナルシンポジウムにおいて記載されているものと同様であり、それはブロックRAMにおける組合わせ論理のマッピングについて記載している。第二に、LMC430がRAM回路として使用される場合には、256ビット論理/メモリ回路は高効率の態様で結合させることが可能である。LMC430を8入力256プログラム可能要素回路として形成することのこれら及びその他の利点については以下の特定的な実施例において記載する。
【0025】
第一実施例
図5(A)乃至5(D)は本発明の第一実施例に基づくLMC430−1を示している。LMC430−1は、8入力LUTか又は256ビットRAMのいずれかとして選択的に使用することが可能なプログラム可能要素からなるアレイを有している。従って、このプログラム可能要素からなるアレイは、最大で8入力信号を有するユーザの論理機能(関数)の部分を格納するために使用することが可能である。そうであるから、LMC430−1は、従来の4入力(16ビット)LUTよりもユーザの論理機能の著しくより大きな部分を格納すべく形態特定することが可能であり、それにより信号伝播時間を減少させることによってある適用例においては動作速度が増加される。
【0026】
論理機能部分を実現することに加えて、LMC430−1は、又、256ビットRAMとして使用することも可能である。各LMC430−1と関連するメモリ容量(即ち、256ビット)は典型的なブロックRAM回路よりも小さいが、従来の4入力16ビットLUTのものよりも著しく大きい。更に、大型のメモリ回路を形成するために従来の16ビットLUTを使用することは実際的ではない。何故ならば、このようなメモリ回路を動作させるのに必要なオーバーヘッド(即ち、相互接続資源)は高過ぎるからである。これらのオーバーヘッド拘束条件は256ビットの局所化のためにLMC430−1においては減少されている。更に、ブロックRAM構造と比較して、LMC430−1は不使用のメモリ容量を最小としながら異なる寸法のメモリを実現するためにより多くの柔軟性を提供している。
図5(A)はLMC430−1の基本的な回路コンポーネントを示したブロック図である。LMC430−1はデコーダ510、論理/メモリ(プログラム可能要素)アレイ520、LMCマルチプレクサ/デマルチプレクサ(MUX/DEMUX)530を有している。第一組の入力信号が相互接続資源420(図4参照)から入力端子503へ送信され、且つ第二組の入力信号が入力端子505へ送信される。コンフィギュレーション(形態特定)信号がコンフィギュレーションバス(不図示)からコンフィギュレーションワード線507及びコンフィギュレーションビット線549を介して論理/メモリアレイ520へ送信される。出力信号は出力端子535を介してLMC MUX/DEMUX530から送信される。データ(ビット値)信号がデータ入力端子DIN及びLMC MUX/DEMUX530を介して、相互接続資源420から論理/メモリアレイ520へ書込まれる。
【0027】
デコーダ510は入力端子503上で4個の入力信号を受取り、且つそこから、出力線513を介して16個の書込アドレス信号を発生し且つ読取ワード線518を介して16個の読取アドレス信号を発生する。出力線513上の16個の書込アドレス信号はメモリ書込モード期間中に論理/メモリアレイ520へ選択的に送信される(例えば、FPGA400の「通常」動作期間中に、相互接続資源420を介してデータが論理/メモリアレイ520へ書込まれる場合)。一方、コンフィギュレーション(スタートアップ即ち始動)モード期間中に、コンフィギュレーションワード線507を介して16個のコンフィギュレーションアドレス信号が論理/メモリアレイ520へ送信される。マルチプレクサ515はデコーダ510からの書込アドレス信号か又はコンフィギュレーションアドレス信号のいずれかを選択的に論理/メモリアレイ520をアドレスする単一の組の書込ワード線517上に配置させる。
【0028】
図5(C)は入力端子503−1及び503−2上で受取られた2個の入力信号をデコードする簡単化したデコーダ510を示している。各入力信号は反転され、且つ反転及び非反転入力信号の選択された対が8個のNORゲートN1乃至N8の入力端子へ印加される。更に、書込制御信号WRITEが反転され且つライン512を介してNORゲートN1,N3,N5,N7へ送信される。選択した対の入力信号及びWRITE制御信号に応答して、NORゲートN1,N3,N5,N7は出力線513上に書込アドレス信号を発生し、それは論理/メモリアレイ520内の4個の列のプログラム可能要素ヘ印加される。例えば、NORゲートN1はWRITE制御信号及び入力端子503−1及び503−2において受取られた反転入力信号に応答して、ライン513−1上に書込アドレス信号を発生する。この書込アドレス信号は図5(A)に示したマルチプレクサ515の一部を形成するスイッチ回路515Aを介して書込ワード線517−1へ印加される。同様に、選択した対の入力信号に応答して、NORゲートN2,N4,N6,N8は読取ワード線518上に読取アドレス信号を発生し、それは論理/メモリアレイ520内の同一の4個の列のプログラム可能要素ヘ印加される。例えば、NORゲートN2は入力端子503−1及び503−2において受取られた反転入力信号に応答して、読取ワード線518−1上に読取アドレス信号を発生する。スイッチ回路515Aはライン519上を非反転形態で且つライン519−B上を反転した形態で送信されるコンフィギュレーション信号CFGによって制御される。以下に詳細に説明するように、スイッチ回路515Aはメモリ書込モードにおいて(即ち、コンフィギュレーション信号CFGが論理低である場合)NORゲートN1,N3,N5,N7によって発生される書込アドレス信号をパス即ち通過させる。図5(A)に示したように、4個の入力端子を受取り且つ16個の読取アドレス信号及び16個の書込アドレス信号を発生するようにデコーダ510の修正は図5(C)に示した開示に鑑み容易に達成される。
【0029】
図5(B)は論理/メモリアレイ520の簡単化した表示を示している。論理/メモリアレイ520は16個の行と16個の列とに配列された256個のプログラム可能要素540を有している。例えば、第一行は第一プログラム可能要素540−1及び第二プログラム可能要素540−2を有しており、且つ16番目の行は第三プログラム可能要素540−3及び第四プログラム可能要素540−4を有している。同様に、第一列は第一プログラム可能要素540−1及び第三プログラム可能要素540−3を有しており、且つ16番目の列は第二プログラム可能要素540−2及び第四プログラム可能要素540−4を有している。各プログラム可能要素540は16個の書込ワード線517のうちの関連する1つから書込アドレス信号を受取り、且つ16個の読取ワード線518のうちの関連する1つから読取アドレス信号を受取る。更に、各プログラム可能要素540は関連する書込ビット線545、反転書込ビット線545−B、読取ビット線525へ接続している。例えば、コンフィギュレーション(形態特定)モード期間中に、プログラム可能要素540−1は書込ワード線517−1上で受取られた高アドレス信号に応答して、書込ビット線545−1及び反転書込ビット線545−1−b(パストランジスタ548を介してコンフィギュレーションビット線549から、図5(C)参照)上で受取られたデータ信号によってプログラムされる。対照的に、LUT動作又はメモリ読取モード期間中に、プログラム可能要素540−1は読取ワード線518−1上で受取られた高アドレス信号に応答して、読取/書込制御回路527を介して読取ビット線525−1上を格納したデータ信号を送信する。最後に、メモリ書込動作期間中に、書込ビット線545−1、反転書込ビット線545−1 b、読取/書込制御回路527を介して、LMC MUX/DEMUX530(図5(A)参照)からプログラム可能要素540−1へ送信される。
【0030】
再度図5(C)を参照すると、論理/メモリアレイ520のプログラム可能要素540−1に関する詳細について説明する。プログラム可能要素540−1はビット値を格納するためのラッチを有しており、且つそのビット値のプログラム可能要素540−1への書込及びそのビット値のプログラム可能要素540−1からの読取を制御する制御回路を有している。特に、プログラム可能要素540−1は第一インバータ541及び第二インバータ542を有しており、それらは端部同志が接続されてラッチを形成している。このラッチは、夫々、パストランジスタ543及び544を介して書込ビット線545−1及び反転書込ビット線545−1 bヘ接続している。パストランジスタ543及び544のゲートは書込ワード線517−1へ接続している。従って、高書込アドレス信号が書込ワード線517−1へ印加されると、書込ビット線545−1及び反転書込ビット線545−1 b上を送信されるビット値が該ラッチ内に格納される。該ラッチは、又、第三パストランジスタ547を介して第三インバータ546を介して読取ビット線525−1へ接続している。パストランジスタ547のゲートは読取ワード線518−1へ接続している。従って、高読取アドレス信号が読取ワード線518−1へ印加されると、該ラッチ内に格納されているビット値は読取ビット線525−1へ送信される。
【0031】
図5(C)に示したように、論理/メモリアレイ520は、又、LMC430−1の動作モードを制御する幾つかの制御信号を受取る。
【0032】
デコーダ510を参照して上に説明したように、コンフィギュレーション(形態特定)信号CFGはコンフィギュレーション即ち形態特定及びメモリ書込モード期間中に書込ワード線517上のアドレス信号のソース即ち供給源を制御する。即ち、メモリ書込モード期間中(即ち、コンフィギュレーション信号CFGが低であり且つWRITE信号が高である場合)、ライン513上に発生される書込アドレス信号はマルチプレクサ515(図5(A)参照)の第一スイッチ515Aを介して書込ワード線517上へ送信される。例えば、CFGが低である場合に、NORゲートN1によって発生される信号はスイッチ515A−1を介して書込ワード線517−1上へ送信される。この低CFG信号は、又、マルチプレクサ515の第二スイッチ515Bへ(論理/メモリアレイ520の底部に示してある)をターンオフさせ、従って書込ワード線517−1はコンフィギュレーションワード線507−1から分離される。逆に、コンフィギュレーションモード期間中にCFG信号が高であり、それにより第一スイッチ515A−1がターンオフされ且つ第二スイッチ515Bがターンオンされて書込ワード線517−1をコンフィギュレーションアドレス線507−1へ接続させる。
【0033】
書込ワード線517を制御することに加えて、CFG信号は、WRITE信号及びREAD信号と共に、書込ビット線545及び反転書込ビット線545−bを制御するために使用される。即ち、メモリ書込モード期間中(即ち、CFG信号が低であり、WRITE信号が高であり、且つREAD信号が低である場合)、データ(ビット値)信号がLMC MUX/DEMUX530(図5(A)参照)から読取/書込制御回路527を介して書込ビット線545及び反転書込ビット線545−b上へ送信される。例えば、反転データ値はLMC MUX/DEMUX530から反転書込ビット線545−1 bヘ送信され、且つ高WRITE信号は該データ値を書込ビット線545−1上へパスさせる。このデータ値は、次いで、高アドレス信号が書込ワード線517−1上に送信される場合にプログラム可能要素540−1へパスされ、そのことはパストランジスタ543及び544をターンオンさせる。このメモリ書込動作期間中に、低CFG信号はパストランジスタ548をターンオフさせ、それにより書込ビット線545−1及び反転書込ビット線545−1 bをコンフィギュレーションビット線549−1及び反転コンフィギュレーションビット線549−1 bから分離させる。LUT動作又はメモリ読取モード期間中、CFG信号は低に止まり、WRITE信号は低であり、且つREAD信号は高であり、それによりデータ(ビット値)信号を、読取ワード線518−1上を送信される高アドレス信号に応答して、メモリセル540−1からパス即ち通過させる。最後に、コンフィギュレーションモード期間中(即ち、CFG信号が高であり、WRITE信号及びREAD信号の両方が低である)、パストランジスタ548はターンオンされて書込ビット線545−1及び反転書込ビット線545−1 bを、夫々、コンフィギュレーションビット線549−1及び反転コンフィギュレーションビット線549−1 bからのデータ信号を受取るべく接続させる。
【0034】
図5(D)はLMC MUX/DEMUX530の1実施例を示した簡単化した概略図である。LMC MUX/DEMUX530は16対1でマルチプレクサ回路531、16対1マルチプレクサ/デマルチプレクサ回路532、プログラム可能出力回路534を有している。
【0035】
メモリ書込モード期間中、デマルチプレクサ回路531はパストランジスタ533−1を介して入力端子DINから受取ったデータ信号の反転したものを受取り、且つその反転したデータ信号を反転書込ビット線545 bのうちの選択した1つへ送信する。デマルチプレクサ回路531は一連の2出力デマルチプレクサP1−P8,Q1−Q4,R1,R2,Sを有しており、選択端子が入力端子505上を送信される入力信号を受取る(図5(A))。デマルチプレクサSは反転データ信号を受取り且つそれを第一選択信号に従ってデマルチプレクサR1か又はデマルチプレクサR2のいずれかへパスする。同様に、デマルチプレクサR1又はデマルチプレクサR2はその反転データ信号をデマルチプレクサQ1乃至Q4のうちの1つへパスすべく制御され、それは、次いで、該反転データ信号をデマルチプレクサP1乃至P8へパスし、それは該反転データ信号を反転書込ビット線545 bのうちの1つへパスする。
【0036】
同様に、メモリ書込モード期間中、マルチプレクサ/デマルチプレクサ回路532はパストランジスタ533−2を介して入力端子DINから受取ったデータ信号を受取り、且つそのデータ信号を書込ビット線545のうちの選択した1つへ送信する(読取/書込制御回路527を介して、図5(C)参照)。マルチプレクサ/デマルチプレクサ回路532は一連の2入力マルチプレクサ/デマルチプレクサP11乃至P18,Q11乃至Q14,R11,R12,S11を有しており、選択端子は入力端子505を介して送信された入力信号を受取る(図5(A))。デマルチプレクサS11はデータ信号を受取り且つそれを第一選択信号に従ってデマルチプレクサR11か又はデマルチプレクサR12のいずれかへパスする。同様に、デマルチプレクサR11又はデマルチプレクサR12はそのデータ信号をデマルチプレクサQ11乃至Q14のうちの1つへパスすべく制御され、それは該データ信号をデマルチプレクサP11乃至P18へパスし、それは該データ信号を書込ビット線545のうちの1つへパスする。
【0037】
LUT動作又はメモリ読取モード期間中、マルチプレクサ/デマルチプレクサ回路532は読取ビット線525上を送信されたデータ(ビット値)信号のうちの1つ又はそれ以上を出力端子535のうちの1つ又はそれ以上へ送信する(読取/書込制御回路527を介し、図5(C)参照)。特に、入力端子505(図5(A))上で受取られた第一入力信号に応答して、マルチプレクサP11乃至P18は読取ビット線525からの全部で8個のデータ信号をマルチプレクサQ11乃至Q14へパスする。各マルチプレクサQ11乃至Q14はマルチプレクサP11乃至P18によってパスされた8個のデータ値のうちの2つを受取り、且つ第二入力信号に応答して該2つのデータ値のうちの選択した1つをパスする。各マルチプレクサR11及びR12はマルチプレクサQ11乃至Q14によってパスされた4個のデータ値のうちの2つを受取り、且つ第三アドレス信号に応答して該2つのデータ値のうちの選択した1つをパスする。最後に、2入力マルチプレクサS11はマルチプレクサR11及びR12によってパスされた2つのデータ値を受取り且つ第四アドレス信号に応答して該2つのデータ値のうちの選択した1つをパスする。
【0038】
LMC430−1からの出力信号はプログラム可能出力回路534を介して出力端子535−1乃至535−4上に送信される。プログラム可能出力回路534は出力端子535−1乃至535−4上を格納されたデータ信号のうちの1つ、2つ又は4つを送信するためにコンフィギュレーションデータによって制御される。特に、格納されているデータ信号のうちの4個をLMC430−1から送信する場合には、マルチプレクサT,U,VがメモリセルM−T,M−U,M−Vによって制御されて、マルチプレクサQ12,Q13,Q14を介して送信された信号を夫々出力端子535−2,535−3,535−4へパスする(マルチプレクサQ11を介してパスされた信号は直接的に出力端子535−1へ印加される)。一方格納されているデータ信号のうちの2つがLMC430−1から送信される場合には、マルチプレクサT及びVがメモリセルM−T及びM−Vによって制御されて、マルチプレクサR11及びR12を介して送信された信号を夫々出力端子535−2及び535−4へパスする(出力端子535−1及び535−3へパスされた信号はCLB出力制御回路によって無視される)。最後に、格納されているデータ信号のうちのただ1つがLMC430−1から送信される場合には、マルチプレクサUがメモリセルM−Uによって制御されて、マルチプレクサS11を介して送信された信号を出力端子535−3へパスする(出力端子535−1,535−2,535−4へパスされた信号はCLB出力制御回路によって無視される)。
【0039】
図5(D)においては一連の2対1マルチプレクサとして示してあるが、マルチプレクサ回路に精通した当業者が理解するように、16対1マルチプレクサ回路531及びマルチプレクサ/デマルチプレクサ回路532の機能は、例えば、1個又はそれ以上の4対1マルチプレクサ又はマルチプレクサ/デマルチプレクサで実現することが可能である。
【0040】
上述したように、LMC430−1は、8入力LUTか又は256ビットRAMのいずれかを形成するために、論理/メモリアレイ520のプログラム可能要素を選択的に使用する。例えば、LMC430−1が8入力LUTとして使用される場合には、プログラム可能要素は、最大で8入力信号の任意のブール関数を実現するために使用される。これらの8個の入力信号のうちで、入力端子503上で受取られる4個の入力信号はデコーダ510へ送信され、それは、選択された列内に格納されているデータ(ビット値)が読取ビット線525上を送信されるように、論理/メモリアレイ520における選択した列のプログラム可能要素をアドレスする。入力端子505上で受取られた残りの4個の入力信号はLMC MUX/DEMUX530へ送信され、読取ビット線525上の該信号の1つ、2つ又は4つを出力端子535へ選択的にパスする。同様に、論理/メモリ回路430−1がRAM回路として使用される場合には、論理/メモリアレイ520のプログラム可能要素は、各ワードが16個のビットを有している16個のワードの情報を格納するために使用される。最初の4個の入力信号503は選択したワード(列)をアドレスし、且つ残りの4個の入力信号505は選択したワードに関連するデータビットの出力端子535上へのシリアル送信を制御する。
【0041】
論理/メモリアレイ520内に格納されている1個、2個、または4個の格納されているデータ信号をパスするためにLMC MUX/DEMUX530を選択的に形態特定することによって、ユーザは、最大で8個の入力項を有している任意の単一の論理機能(関数)部分、最大で7個の入力項を有している幾つかの対の論理機能(関数)部分、及び6個の入力項を有している幾つかの組の4個の論理機能(関数)部分を実現するためにLMC430を使用することが可能である。更に、LMC MUX/DEMUX530は、単一のシリーズの16個のビットとして、8個のビットからなる2つのグループとして、又は4個のビットからなる4個のグループとしてメモリデータを送信するように形態特定することが可能である。
【0042】
第二実施例
図6(A)乃至6(D)は本発明の第二実施例に基づくLMC430−2を示している。LMC430−1(図5(A))と同様に、LMC430−2のプログラム可能要素は8入力LUTか又は256ビットRAMのいずれかとして選択的に使用することが可能である。然しながら、これらの動作モードに加えて、LMC430−2は8入力プログラム可能アレイ論理(PAL)回路として又は連想記憶装置(CAM)として選択的に動作させることが可能である。PAL動作期間中、LUT及びRAM動作のために使用される同一のプログラム可能要素を使用してLUT及びRAM動作のために使用されるのと同一の入力端子上で受取られる入力信号に応答して複数個の積項を発生するために使用される。これらの積項はマクロセルにおいて選択的にOR処理されて積の和の項を形成する。上述したように、PLA/PAL回路を使用する論理エミュレーションは、通常、LUT論理動作よりも一層高速である。従って、LMC430−2は、ユーザがその論理機能を高密度LUTフォーマットか又は高速PALフォーマットのいずれかで実現することを可能とする。更に、同一のプログラム可能要素及び入力端子が両方のPAL及びLUT動作に対して使用され、それによりPLD用の高度に柔軟性があり且つ空間効率的な形態特定可能論理ブロックが提供される。この柔軟性は、積項発生回路がCAM動作を与えるように選択的に形態特定することによって更に向上される。
【0043】
図6(A)を参照すると、LMC430−2はデコーダ610、論理/メモリアレイ(L/M ARRAY)620、LMCマルチプレクサ/デマルチプレクサ(MUX/DEMUX)(スイッチ回路)630、マクロセル660、PAL入力(PAL IN)制御回路670を有している。LMC430−1(図5(A))のデコーダ510と同様に、デコーダ610は第一組の入力端子603上の4個の入力信号を受取るべく接続されており、且つ論理/メモリアレイ620へ送信される16個の書込アドレス信号を発生する。論理/メモリアレイ620は、又、コンフィギュレーションバス(不図示)からコンフィギュレーションアドレス線607を介して16個のコンフィギュレーションアドレス信号を受取る。制御回路(後に説明する)が、メモリ書込動作期間中にデコーダ610によって発生された書込アドレス信号を書込ワード線617へ印加するか、又はコンフィギュレーションモード期間中にコンフィギュレーションアドレス線607上のコンフィギュレーションアドレス信号を書込ワード線617へ印加させるために設けられている。デコーダ610は、又、読取ワード線618上に16個の読取アドレス信号を発生し、それらはLUT動作及びメモリ読取モード期間中に使用され、プログラム可能要素640(図6(C))に格納されているビット値が読取ビット線625上に書込まれる。LMC MUX/DEMUX630は入力端子605によって受取られる入力信号に応答し、それはLUT動作及びメモリ読取モード期間中に、選択された読取ビット線625からのビット値を出力端子635へ送信する。更に、LMC MUX/DEMUX630は、メモリ書込モード期間中に、入力信号に応答してデータ入力端子DINからの入力データ値を選択した書込ビット線645及び反転書込ビット線645 bへ送信する。
【0044】
LMC430−2は積項発生回路(後に説明する)、マクロセル660、PAL入力制御回路670を有しているという点においてLMC430−1(図5(A))と異なっている。PAL及びCAM動作期間中、PAL入力制御回路670は入力端子603及び605において受取った入力信号を論理/メモリアレイ620の書込ビット線645上へパスする。更に、論理/メモリアレイ620は積項発生回路を有しており、それは、書込ビット線645上の入力信号及び論理/メモリアレイ620のプログラム可能要素内に格納されているビット値に応答して積項を発生する。CAM動作期間中、これらの積項は、又、該入力信号が論理/メモリアレイ620の1つの列内に整列しているメモリセル内に格納されている値と一致することを表す。これらの積項はライン628を介してマクロセル660へ送信され、それは積の和の項を発生し、それはマクロセル出力線665を介してLMC MUX/DEMUX630ヘ送信される。以下に説明するように、LMC MUX/DEMUX630は出力制御回路を有しており、それは、選択した読取ビット線625を介して送信されたビット値か又はマクロセル630によって発生された積の和の項のいずれかをパスする。従ってLMC430−2は、LUTフォーマットか又はPALフォーマットのいずれかを使用して、ユーザが論理を選択的に実現することを可能とする。PAL動作は、典型的に、LUT動作よりもより高速であるので、この付加的な柔軟性はLMC430−2を小さな論理部分の速度が重要である適用例に対して有用なものとしている。LMC430−2のこの柔軟性は、CAM動作を選択的に実施することによって更に向上される。
【0045】
図6(B)は簡単化したデコーダ610を示しており、それは入力端子603−1及び603−2上で受取った2つの入力信号をデコードし、且つ書込ワード線617−1乃至617−4上で書込アドレス信号を発生し且つ読取ワード線618−1乃至618−4上で読取アドレス信号を発生する。各入力信号は反転され、且つ選択した対の反転及び非反転入力信号が8個のNORゲートN1乃至N8の入力端子へ印加される。更に、書込制御信号WRITEが反転され且つライン612を介してNORゲートN1,N3,N5,N7へ送信される。選択した対の入力信号及びWRITE制御信号に応答して、NORゲートN1,N3,N5,N7は書込アドレス信号を発生し、それは論理/メモリアレイ620内の4個の列のプログラム可能要素ヘ印加される。例えば、NORゲートN1はWRITE制御信号及び入力端子603−1及び603−2において受取った反転入力信号に応答して書込アドレス信号を発生する。この書込アドレス信号はスイッチ回路615Aを介して書込ワード線617−1へ印加される。同様に、選択した対の入力信号に応答して、NORゲートN2,N4,N6,N8は出力線618−1乃至618−4上に読取アドレス信号を発生し、それらは論理/メモリアレイ620内の同一の4個の列のプログラム可能要素ヘ印加される。スイッチ回路615Aは、メモリ書込モードにおいてNORゲートN1,N3,N5,N7によって発生された書込アドレス信号をパスするためにライン619及びライン619 b上のコンフィギュレーション(形態特定)信号CFGによって制御される。図6(A)に示したように、4個の入力端子を受取り且つ16個の読取アドレス信号及び16個の書込アドレス信号を発生するためにデコーダ610の修正は図6(B)に示した開示に鑑み容易に達成される。
【0046】
再度図6(A)を参照すると、論理/メモリアレイ620は2つのグループに分割されている16個の行と16個の列とに配列された256個のプログラム可能要素を有しており、第一グループの8個の列(PAL/LUT/RAM COL)621はPAL/CAM、LUT、RAM動作を実施し、且つ第二グループの8個の列(LUT/RAM COLS)622はLUT及びRAM動作のためにのみ使用される。第一グループ621の各列は8個の対を形成するために配列された16個のプログラム可能要素を有している(以下において「PAL/CAMセル」と呼称する)。第一グループ621の1つの列からの代表的な対のプログラム可能要素を図6(C)に示してあり以下に説明する。第二グループ622のプログラム可能要素は、基本的に、図5(C)に示したプログラム可能要素540−1と同一である。従って、第二グループ622内に設けられるプログラム可能要素の説明は割愛する。
【0047】
論理/メモリアレイ620は論理/メモリアレイ520(図5(C)参照)において使用されるものと同様の態様でCFG、WRITE、READ制御信号を使用する。
【0048】
コンフィギュレーション信号CFGは図5(C)を参照して上に説明したのと同様の態様で、コンフィギュレーション及びメモリ書込モード期間中、書込ワード線617上のアドレス信号のソース即ち供給源を制御する。例えば、メモリ書込モード(CFGが低)期間中、デコーダ610によって発生される信号はスイッチ615A−1(図6(B)参照)を介して書込ワード線617−1上へパスされる。逆に、コンフィギュレーションモード期間中CFG信号は高であり、それにより第一スイッチ615A−1をターンオフさせ且つ第二スイッチ615B−1(図6(C)参照)をターンオンさせて書込ワード線617−1をコンフィギュレーションアドレス線607−1へ接続させる。
【0049】
WRITE信号及びREAD信号は、又、CFG信号と共に、書込ビット線645及び反転書込ビット線645 bを制御するために使用される。例えば、LMC MUX/DEMUX630(図6(A)参照)から送信されたデータ値はWRITE信号が高である場合に書込ビット線645−1又は書込線645−2上へパスされ、且つREAD信号が高である場合にはデータ値は読取ビット線625−1又は625−2からLMC MUX/DEMUX630ヘパスされる。最後に、コンフィギュレーションモード期間中(即ち、CFG信号が高であり、且つWRITE信号及びREAD信号の両方が低である場合)、パストランジスタ645はターンオンされて書込ビット線645−1及び645−2及び反転書込ビット線645−1 b及び645−2 bを接続させてコンフィギュレーションビット線649−1及び649−2及び反転コンフィギュレーションビット線649−1 b及び649−2 bからデータ信号を受取る。
【0050】
CFG,WRITE,READ制御信号に加えて、LMC430−2はPALイネーブル(PAL ENBL)制御信号を使用して、PAL及びCAM動作期間中、PAL入力制御回路670(図6(A)参照)をして入力端子603からの入力信号を書込ビット線645上へ印加させる。図6(C)を参照すると、PAL入力制御回路670−1は第一パストランジスタ671、インバータ673、第二パストランジスタ675を有している。PAL ENBLが高である場合には、PAL入力制御回路670−1は選択的に入力端子603−1からの入力信号を直接的に書込ビット線645−1ヘパスし、且つインバータ673を介して反転書込ビット線645−1 bへパスする。PAL ENBLが低である場合には、パストランジスタ671及び675はターンオフされ、それにより入力端子603−1上の入力信号が書込ビット線645−1及び反転書込ビット線645−1 bへパスされることを防止する。
【0051】
図6(C)は1個のPAL/CAMセル及び論理/メモリアレイ620の関連する回路を示している。PAL/CAMセルは論理/メモリアレイ620の1つの列内において順番に配列されている関連する対のプログラム可能要素640−1及び640−2から形成されている。各プログラム可能要素640−1及び640−2はビット値を格納するためのラッチ、該ラッチへの書込及びそれからの読取を制御する制御回路を有している。特に、プログラム可能要素640−1は第一インバータ641−1及び第二インバータ642−1を有しており、それらの端部同志は接続されて第一ラッチを形成しており、且つプログラム可能要素640−2は第一インバータ641−2及び第二インバータ642−2を有しており、それらは端部同志が接続されて第二ラッチを形成している。プログラム可能要素640−1の第一ラッチは、夫々、パストランジスタ643−1及び644−1を介して書込ビット線645−1及び反転書込ビット線645−1 bへ接続している。パストランジスタ643−1及び644−1のゲートは書込ワード線617−1へ接続している。プログラム可能要素640−2の第二ラッチは、夫々、パストランジスタ643−2及び644−2を介して書込ビット線645−2及び反転書込ビット線645−2 bへ接続している。パストランジスタ643−2及び644−2のゲートは書込ワード線617−1へ接続している。従って、高書込アドレス信号が書込ワード線617−1へ印加されると、書込ビット線645−1及び645−2上及び反転書込ビット線645−1 b及び645−2 b上に送信されるビット値は、夫々、プログラム可能要素640−1及び640−2の第一及び第二ラッチ内に格納される。これらのラッチは、又、第三パストランジスタ647−1及び647−2を介し第三インバータ646−1及び646−2を介して夫々読取ビット線625−1及び625−2へ接続している。パストランジスタ647−1及び647−2のゲートは読取ワード線618−1へ接続している。従って、高読取アドレス信号が読取ワード線618−1へ印加されると、プログラム可能要素640−1及び640−2のラッチによって格納されているビット値が夫々読取ビット線625−1及び625−2へ送信される。
【0052】
PAL入力回路670−1から書込ビット線645−1及び反転書込ビット線645−1 b上へ送信される入力信号に応答し、且つPAL/CAMセル(例えば、プログラム可能要素640−1及び640−2)内に格納されている値に応答して、積項が積項回路によって発生される。該積項回路は複数個のPAL/CAMセル論理回路680及び1個又はそれ以上のANDゲート687を有している。
【0053】
図6(C)に示したように、各PAL/CAMセル論理回路680は、ノード681(プログラム可能要素640−1の内側に示してある)ヘ接続している第一入力端子とプログラム可能要素640−2へ接続している第二入力端子とを具備している2入力NORゲートである。ノード681は第一パストランジスタ682を介して書込ビット線645−1へ接続しており、且つ第二パストランジスタ683を介して反転書込ビット線645−1 bへ接続している。第一パストランジスタ682及び第二パストランジスタ683のゲートは、夫々、プログラム可能要素640−1のラッチによって格納されている非反転及び反転値によって制御される。例えば、インバータ641−1及び642−1によって形成されるラッチが論理低値(即ち、論理低信号はインバータ642−1の出力において発生される)を格納している場合には、ノード681は反転書込ビット線645−1 bへ接続される。逆に、インバータ641−1及び642−1によって形成されるラッチが論理高値(即ち、論理高信号はインバータ642−1の出力において発生される)を格納している場合には、ノード681は書込ビット線645−1へ接続される。従って、PAL/CAMセル論理回路680は、プログラム可能要素640−1及び640−2のプログラムされている即ち書込まれている状態及び入力端子603−1上のPAL入力信号(それは書込ビット線645−1及び反転書込ビット線645−1 b上を送信される)に基づいてPAL/CAMセル出力信号を発生する。このPAL/CAMセル出力信号はAND回路687へ送信される。
【0054】
AND回路687はPAL/CAMセル論理回路680から及びプログラム可能要素640−1及び640−2を含む列内に配列されているその他のPAL/CAMセル及び関連する論理回路(不図示)からのPAL/CAMセル出力信号を受取る。これらのPAL/CAMセル出力信号は、マクロセル660へP項線628−1を介して送信されるP項信号を発生するためにAND回路687によって(反転した形態で)使用される。
【0055】
マクロセル660は、論理/メモリアレイ620のその他の列からの3個又は7個の付加的なP項信号と共に、P項線628−1からのP項信号を受取るORゲート663を有している。マクロセル660はこれらのP項信号に応答して積の和の項を発生し、それはマクロセル出力線665を介してLMC MUX/DEMUX630ヘ送信される。
【0056】
論理/メモリアレイ620はコンフィギュレーション(形態特定)モード、メモリ読取(即ち、LUT動作又はRAM読取)モード、メモリ書込モード、PAL動作モード、及びCAM動作モードにおいて動作するためにコンフィギュレーション(形態特定)信号によって制御される。第二グループ622(即ち、LUT/RAM COLS)の動作は、基本的に、論理/メモリアレイ520に関して上述したものと基本的に同一であり、従って、ここで繰返し説明することはしない。第一グループ621の動作(即ち、PAL/LUT/RAM COLS)は図6(C)を参照して以下に説明する。
【0057】
コンフィギュレーション(形態特定)モード期間中に、CFG制御信号は高であり、且つWRITE及びPLA ENBL制御信号は低である(READ信号は高又は低のいずれかであり、即ち「don’t care」である)。高CFG信号はスイッチ回路615A−1(図6(B)参照)をターンオフさせ、且つスイッチ回路615B−1をターンオンさせ、従ってアドレス信号がコンフィギュレーションアドレス線607−1から書込ワード線617−1上へ送信される。更に、高CFG信号はパストランジスタ648をターンオンさせて、書込ビット線645及び645 bを夫々コンフィギュレーションビット線649及び649 bヘ接続させる。注意すべきことであるが、低WRITE信号はLMC MUX/DEMUX630から書込ビット線645−1,645−1 b,645−2,645−2 bへ信号がパスされることを防止する。更に注意すべきことであるが、低PLA ENBL信号は入力端子603−1から書込ビット線645−1及び645−2へ入力信号の送信を防止する。この状態において、データ値が同時的に書込ビット線645−1及び645−1 bを介して書込可能要素640−1へ及び書込ビット線645−2及び645−2 bを介してプログラム可能要素640−2へ送信される。プログラム可能要素640−1及び640−2は、その後のデータ書込処理が実施されるまで(又は、パワーがターンオフされるまで)これらのデータ値を維持する。
【0058】
メモリ書込モード期間中、WRITE信号は高であり且つCFG,READ,PAL ENBL信号は低である。高WRITE信号はNORゲートN1,N3,N5,N7(図6(B)参照)をイネーブルさせて、入力端子603−1及び603−2によって受取られた入力信号に応答して書込ビット線617−1乃至617−4上にアドレス信号を発生する。高WRITE信号は、又、読取/書込制御回路627−1及び627−2ヘ印加されて書込ビット線645−1及び645−2をLMC MUX/DEMUX630ヘ接続させる。注意すべきことであるが、低CFG信号はスイッチ回路615A−1(図6(B)参照)をターンオンさせ、且つスイッチ回路615B−1をターンオフさせる。更に、低CFG信号はパストランジスタ648をターンオフさせる。この状態において、データ信号DINはLMC MUX/DEMUX630の動作に応答して(後に説明する)LMC MUX/DEMUX630から選択した書込ビット線645−1又は645−2(及び選択した反転書込ビット線645−1 b又は645−2 b)ヘ送信される。メモリ読取(LUT動作又はRAM読取)モード期間中、READ信号は高であり、且つCFG,WRITE,PAL ENBL信号は低である。高READ信号は読取/書込制御回路627−1及び627−2へ印加されて読取ビット線625−1及び625−2をLMC MUX/DEMUX630ヘ接続させる。低WRITE信号はNORゲートN1,N3,N5,N7(図6(B)参照)をディスエーブルさせ、且つ低CFG信号はスイッチ回路615B−1をターンオフさせる。更に、低CFG信号はパストランジスタ648をターンオフさせる。この状態において、プログラム可能要素640−1及び640−2内に格納されているビット値は読取ワード線618−1上をデコーダ610から送信された高読取アドレス信号に応答して読取ビット線625−1及び625−2上を送信される。以下に説明するように、該格納されているビット値は読取ビット線625−1及び625−2を介してLMC MUX/DEMUX630ヘ送信される。
【0059】
PAL及びCAM動作モード期間中、PAL ENBL信号は高であり、且つWRITE及びCFG信号は低である(READは「don’t care」である)。高PAL ENBL信号はPAL入力制御回路670−1のパストランジスタ671及び675をターンオンさせ、それにより入力端子603−1から書込ビット線645−1へ入力信号をパスし、且つ入力信号の反転した形態を反転書込ビット線645−1 bヘパスする。プログラム可能要素640−2によって格納されている値はプログラム可能要素640−1及び640−2によって形成されているPAL/CAMセルをイネーブル又はディスエーブルさせる。プログラム可能要素640−2が論理低値を格納している場合(即ち、論理高値がインバータ641−2の出力において発生される)、この論理低値はPAL/CAMセル論理回路680をして、プログラム可能要素640−1内に格納されている値及び書込ビット線645−1及び645−1 b上の入力信号に拘わらずに、低出力信号を発生させる。プログラム可能要素640−2が論理高値を格納している場合には、PAL/CAMセル論理回路680は、プログラム可能要素640−1内に格納されている値及び書込ビット線645−1上を非反転形態で送信された入力信号及び反転書込ビット線645−1 b上のその反転した形態によって決定される出力信号を発生する。プログラム可能要素640−1及び640−2内に格納されている両方の値が論理高値である場合には、PAL/CAMセル論理回路680から送信される信号は書込ビット線645−1からの非反転入力信号である。プログラム可能要素640−1が論理低値を格納しており且つプログラム可能要素640−2が論理高値を格納している場合には、PAL/CAMセル論理回路680から送信される信号は反転書込ビット線645−1 bからの反転入力信号である。例えば、PAL/CAMセル論理回路680は、両方のプログラム可能要素640−1及び640−2が高(論理1)値を格納しており且つ書込線645−1上の非反転入力信号が論理高である場合には、ANDゲート687へ低(論理0)信号を送信する。PAL/CAMセル論理回路680は、プログラム可能要素640−1が低(論理0)値を格納しており、プログラム可能要素640−2が高(論理1)値を格納しており、且つ書込ビット線645−1上の非反転入力信号が低である場合には、ANDゲート687へ高(論理1)信号を送信する。
【0060】
注意すべきことであるが、CAM動作モードはPAL動作の1つのタイプであって、その場合には8ビット「ワード」がPAL/CAMセルの列の各々に格納される。例えば、図6(C)を参照して、例示したPAL/CAMセルの両方のプログラム可能要素640−1及び640−2が論理高値を格納しており、且つプログラム可能要素640−1及び640−2を包含する列内の各PAL/CAMセルの論理高値を格納しているものと仮定する。入力端子603−1乃至603−4から送信された4個の入力信号及び入力端子605から送信された4個の入力端子の両方が論理高値である場合には、8個の「マッチ(match)」(論理低)信号がPAL/CAMセル論理回路(図6(C)におけるPAL/CAMセル論理回路680と同様)からANDゲート687へ送信され、それはマクロセル660へ「マッチ」信号を送信する。P項線628上に送信される4個(又は8個)のP項信号のうちの少なくとも1つが高であるので、マクロセル660は積の和「マッチ」(論理高)信号をLMC MUX/DEMUX630ヘ送信する。逆に、格納されている8ビットワードのうちのいずれもが入力信号とマッチ即ち一致しない場合には、P項線628上に送信されたP項信号のうちのいずれもが高ではなく、且つマクロセル660は積の和「マッチなし(no−match)」(論理低)信号をLMC MUX/DEMUX630ヘ送信する。
【0061】
図6(D)はLMC MUX/DEMUX630の実施例を示した簡単化した概略図である。LMC MUX/DEMUX530(上に説明した)と同様に、はLMC MUX/DEMUX630は16対1デマルチプレクサ回路631,16対1マルチプレクサ/デマルチプレクサ回路632、プログラム可能出力回路634を有している。デマルチプレクサ回路631は2入力マルチプレクサP1−P8,Q1−Q4,R1,R2,Sを有しており、選択端子は入力端子605上に送信された入力信号を受取る。第二マルチプレクサ回路632は一連の2入力マルチプレクサP11−P18,Q11−Q14,R11,R12,S11を有しており、選択端子は入力端子645上に送信された入力信号を受取る。
【0062】
メモリ書込モード期間中、デマルチプレクサ回路631はパストランジスタ633−1を介してデータ信号DINの反転したものを受取り、且つ入力端子605上に送信された入力信号に従ってデマルチプレクサ回路631の2入力マルチプレクサP1−P8,Q1−Q4,R1,R2,Sを介してその反転データ信号を反転書込ビット線645 bのうちの1つへ送信する。同様に、マルチプレクサ/デマルチプレクサ回路632はパストランジスタ633−2を介してデータ信号DINを受取り、且つそのデータ信号を書込ビット線645のうちの選択した1つへ送信する(読取/書込制御回路627を介して、図6(C)参照)。
【0063】
メモリ読取(LUT動作又はRAM読取)モード期間中、マルチプレクサ/デマルチプレクサ回路632はプログラム可能出力回路634を介し出力端子635−1乃至635−4のうちの1つ又はそれ以上へ読取ビット線625からデータ(ビット値)信号のうちの1つ又はそれ以上を送信する。プログラム可能出力回路634はコンフィギュレーションデータによって制御されて、格納されているデータ信号のうちの1つ、2つ、又は4つを出力端子635−1乃至635−4へ送信する。特に、格納されているデータ信号のうちの4個がLMC430−2から送信される場合には、マルチプレクサT,U,V,WがメモリセルM−T,M−U,M−V,M−Wによって制御されてマルチプレクサQ11,Q12,Q13,Q14を介して送信された信号を夫々出力端子635−1,635−2,635−3,635−4へパスする。一方、格納されているデータ信号のうちの2個がLMC430−2から送信される場合には、マルチプレクサT及びVがメモリセルM−T及びM−Vによって制御されてマルチプレクサR11及びR12を介して送信された信号を夫々出力端子635−1及び635−3へパスする(出力端子635−2及び635−4へパスされた信号は無視される)。最後に、格納されているデータ信号のうちの単に1つがLMC430−2から送信される場合には、マルチプレクサUがメモリセルM−Uによって制御されてマルチプレクサS11を介して送信された信号を出力端子635−2へパスさせる(出力端子635−1,635−3,635−4へパスされる信号は無視される)。
【0064】
PLA/CAM動作モード期間中、典型的にLMC430−2から出力されるビット値のみがマクロセル660によって発生される積の和(マッチ/マッチなし)値である。積の和の値は、メモリセルM−Uによって制御されるマルチプレクサWを介して出力端子635−4へパスされる(出力端子635−1,635−2,635−3へパスされる信号は無視される)。
【0065】
上に説明したように、LMC430−2は8入力LUTか又は8入力PALのいずれかを使用して論理を実現するために論理/メモリアレイ620のプログラム可能要素を選択的に使用することが可能である。従って、ユーザはLUT動作の高密度及び柔軟性とPAL動作の速度との間で選択することが可能である。この能力は、ユーザが、例えば、LUT動作を使用して選択した大きな又は複雑な機能を実現しながら、幾つかのLMC内においてPAL動作を使用するより小さな又は速度が重要な論理グループを実現することを可能とする。両方の動作が同一のプログラム可能要素を使用して実施されるので、LMC430−2のアレイを組込んだPLDは広範な範囲の論理適用例に対して使用することが可能である。
【0066】
第三実施例
図7(A)乃至7(D)は本発明の第三実施例に基づくLMC430−3を示している。LMC430−1(図5(A))及びLMC430−2(図6(A))と同様に、LMC430−3のプログラム可能要素は8入力LUTとしてか又は256ビットRAMとして選択的に使用することが可能である。更に、LMC430−2(図6(A))と同様に、LMC430−3は選択的に8入力プログラム可能アレイ論理(PAL)回路として動作することが可能であり、それによりユーザがその論理機能を高密度LUTフォーマットか又は高速PAL/CAMフォーマットのいずれかで実現することを可能としている。更に、同一のプログラム可能要素及び入力端子が両方のPAL/CAM及びLUT動作に対して使用され、それによりPLD用の高度に柔軟性があり且つ空間効率的なコンフィギャラブル即ち形態特定可能な論理ブロックを提供している。
【0067】
図7(A)を参照すると、LMC430−3はデコーダ710、論理/メモリアレイ(L/M ARRAY)720、LMCマルチプレクサ/デマルチプレクサ(MUX/DEMUX)(スイッチ回路)730、マクロセル760、PAL入力(PAL IN)制御回路770を有している。デコーダ710は第一組の入力端子703を介して4個の入力信号を受取るべく接続されており、且つアドレス線717を介して論理/メモリアレイ720へ送信される16個のアドレス信号を発生する。論理/メモリアレイ720は、又、ライン707を介してコンフィギュレーションバス(不図示)から16個のコンフィギュレーションアドレス信号を受取る。LMC MUX/DEMUX730は入力端子705によって受取られた入力信号に応答して、LUT動作及びメモリ読取モード期間中に選択したビット線745からのビット値を出力端子735へ送信する。LMC MUX/DEMUX730は、メモリ書込モード期間中に、入力信号に応答してデータ入力端子DINからの入力データ値を選択したビット線745及び反転ビット線745 bへ送信する。
【0068】
更に、LMC430−3は積項発生回路(以下に説明する)、マクロセル760、PAL入力制御回路770を有している。PAL及びCAM動作期間中、PAL入力制御回路770は入力端子703及び705において受取られた入力信号を論理/メモリアレイ720のビット線745上へパスする。更に、論理/メモリアレイ720は積項発生回路を有しており、それはビット線745上の入力信号及び論理/メモリアレイ720のプログラム可能要素内に格納されているビット値に応答して積項を発生する。これらの積項はP項線728を介してマクロセル760へ送信され、それはマクロセル出力線765を介してLMC MUX/DEMUX730ヘ送信される積の和の項を発生する。以下に説明するように、LMC MUX/DEMUX730は出力制御回路を有しており、それは選択したビット線745を介して送信されたビット値か又はマクロセル760によって発生された積の和の項のいずれかをパスさせる。従って、LMC430−3はユーザがLUTフォーマットか又はPAL/CAMフォーマットのいずれかを使用して選択的に論理を実現することを可能とする。PAL動作は典型的にLUT動作よりも一層高速であるので、この付加された柔軟性はLMC430−3を小さな論理部分の速度が重要である場合の適用例に対して有用なものとさせる。
【0069】
図7(B)は簡単化したデコーダ710を示しており、それは入力端子703−1及び703−2上で受取られた2個の入力信号をデコードし、且つワード線717−1乃至717−4上に読取/書込アドレス信号を発生する。各入力信号が反転され、且つ選択された対の反転及び非反転入力信号が4個のNORゲートN1,N3,N5,N7の入力端子へ印加される。更に、読取/書込制御信号READ/WRITEが反転され且つライン712を介してNORゲートN1,N3,N5,N7へ送信される。選択された対の入力信号及びREAD/WRITE制御信号に応答して、NORゲートN1,N3,N5,N7は読取/書込アドレス信号を発生し、該信号は論理/メモリアレイ720における4つの列のプログラム可能要素ヘ印加される。例えば、NORゲートN1はREAD/WRITE制御信号及び入力端子703−1及び703−2において受取られた反転入力信号に応答してアドレス信号を発生する。このアドレス信号はスイッチ回路715Aを介してワード線717−1へ印加される。スイッチ回路715Aはライン719及びライン719 b上のコンフィギュレーション信号CFGによって制御されてメモリ書込モードにおいてNORゲートN1,N3,N5,N7によって発生されたアドレス信号をパスする。図7(A)に示したように、4個の入力端子を受取り且つ16個の読取/書込アドレス信号を発生するようにデコーダ710の修正は図7(B)に示した開示に鑑み容易に達成される。
【0070】
再度図7(A)を参照すると、論理/メモリアレイ720は2つのグループに分割されている16個の行と16個の列とに配列されている256個のプログラム可能要素を有している。第一グループの8個の列(PAL/LUT/RAM COLS)721はPAL/CAM,LUT,RAM動作を実施し、且つ第二グループの8個列(LUT/REM COLS)722はLUT及びRAM動作のためにのみ使用される。第一グループ721の各列は8個の対を形成するために配列されている16個のプログラム可能要素を有している(以後「PAL/CAMセル」と呼称する)。第一グループ721の1つの列からの代表的な対のプログラム可能要素を図7(C)に示してあり且つ以下に説明する。第二グループ722のプログラム可能要素は、高速メモリ読取回路(即ち、インバータ546、トランジスタ547、読取ビット線525−1、図5(C)参照)なしでのプログラム可能要素540−1に類似している。従って、第二グループ722内に設けられるプログラム可能要素の説明は割愛する。
【0071】
論理/メモリアレイ620(図6(C)参照)と同様に、論理/メモリアレイ720はビット線745及び745 bへ印加される信号を制御するためにコンフィギュレーションCFG制御信号及びPALイネーブル(PAL ENBL)制御信号を使用し、且つメモリ読取及びメモリ書込の両方の動作期間中にワード線717上に送信されたアドレス信号を制御するためにデコーダ710においてREAD/WRITE制御信号を使用する。注意すべきことであるが、論理/メモリアレイ620によって使用される別個のREAD及びWRITE制御信号は論理/メモリアレイ720においては使用されていない。
【0072】
コンフィギュレーション信号CFGが、LMC430−2(図6(C)参照)に関して上述したのと同様の態様で、コンフィギュレーションモード期間中に、ワード線717上のアドレス信号のソース即ち供給源を制御する。例えば、メモリ書込モード(CFGが低であり且つREAD/WRITEが高)期間中、デコーダ710によって発生される信号はスイッチ715A−1(図7(B)参照)を介してワード線717−1上へパスされる。逆に、CFG信号はコンフィギュレーションモード期間中に高であり、それにより第一スイッチ715A−1をターンオフさせ且つ第二スイッチ715B−1(図7(C)参照)をターンオンさせてワード線717−1をコンフィギュレーションアドレス線707−1へ接続させる。CFG信号は、又、ビット線745及び反転ビット線745 bを制御するために使用される。例えば、メモリ書込モード期間中、CFGが低であり且つLMC MUX/DEMUX730(図7(A)参照)から送信されたデータ値はビット線745−1上へパスされる。LUT動作又はRAM読取モード期間中、データ値はビット線745−1からLMC MUX/DEMUX730ヘパスされる。対照的に、コンフィギュレーションモード期間中(即ち、CFG信号が高)、パストランジスタ748はターンオンされてビット線735−1及び745−2及び反転ビット線745−1 b及び745−2 bを接続させてコンフィギュレーションビット線749−1及び749−2及び反転コンフィギュレーションビット線749−1 b及び749−2 bからデータ信号を受取る。
【0073】
PALイネーブル(PAL ENBL)制御信号は、PAL入力制御回路770(図7(A)参照)をして入力端子703からの入力信号をPAL動作期間中にビット線745上へ印加させる。図7(C)を参照すると、PAL入力制御回路770−1は、PAL入力制御回路670−1(図6(C)参照)を参照して上に説明した態様で動作するパスゲート及びインバータを有している。
【0074】
図7(C)は論理/メモリアレイ720の1個のPAL/CAMセル及び関連する回路を示している。PAL/CAMセルは論理/メモリアレイ720の1つの列において順番に配列されている一対のプログラム可能要素740−1及び740−2から形成されている。プログラム可能要素740−1及び740−2の各々はビット値を格納するためのラッチ、及び該ラッチへの書込及びそれからの読取を制御する制御回路を有している。特にプログラム可能要素740−1は第一インバータ741−1及び第二インバータ742−1を有しており、それらは端部同志を接続して第一ラッチを形成しており、且つプログラム可能要素740−2は第一インバータ741−2及び第二インバータ742−2を有しており、それらは端部同志を接続して第二ラッチを形成している。プログラム可能要素740−1の第一ラッチは、夫々、パストランジスタ743−1及び744−1を介してビット線745−1及び反転ビット線745−1 bへ接続している。パストランジスタ743−1及び744−1のゲートはワード線717−1へ接続している。プログラム可能要素740−2の第二ラッチは、夫々、パストランジスタ743−2及び744−2を介してビット線745−2及び反転ビット線745−2 bへ接続している。パストランジスタ743−2及び744−2のゲートもワード線717−1へ接続している。従って、高アドレス信号がワード線717−1へ印加されると、ビット値はビット線745−1及び745−2及び反転ビット線745−1 b及び745−2 bから送信されて夫々プログラム可能要素740−1及び740−2の第一及び第二ラッチ内へ格納されるか、又は第一及び第二ラッチから読取られてこれらのビット線上へ送信される。
【0075】
積項は、ビット線745−1及び745−1 b及びPAL/CAMセル(即ち、関連する対のプログラム可能要素)ヘ接続されている積項回路によって発生される。この積項回路は、複数個のPAL/CAMセル論理回路780及び1個又はそれ以上のANDゲート787を有している。図7(C)に示したように、各PAL/CAMセル論理回路780は、ノード781(プログラム可能要素740−1の内側に示してある)ヘ接続している第一入力端子とプログラム可能要素740−2へ接続している第二入力端子とを具備している2入力NORゲートである。ノード781は第一パストランジスタ783を介して書込ビット線745−1へ接続しており、且つ第二パストランジスタ782を介して反転ビット線745−1 bへ接続している。第一パストランジスタ783及び第二パストランジスタ782のゲートは、夫々、プログラム可能要素740−1のラッチによって格納されている反転及び非反転値によって制御される。図6(C)を参照して上に説明した対応する回路と同様に、PAL/CAMセル論理回路780は、プログラム可能要素740−1及び740−2のプログラムされている状態、及び入力端子703−1上のPAL入力信号に基づいてPAL/CAMセル出力信号を発生する(それは、書込ビット線745−1及び反転書込ビット線745−1 b上を送信される)。PAL/CAMセル出力信号はAND回路787へ送信され、それは、又、プログラム可能要素740−1及び740−2と同一の列内のその他のプログラム可能要素からのその他のPAL/CAMセル論理回路(不図示)からのPAL/CAMセル出力信号を受取る。これのPAL/CAMセル出力信号は、P項線728−1を介してマクロセル760へ送信されるP項信号を発生するためにAND回路787によって使用される(反転した形式で)。
【0076】
マクロセル760は、論理/メモリアレイ720のその他の列からの3個又は7個の付加的なP項信号と共に、P項線728−1からのP項信号を受取るORゲート763を有している。マクロセル760はマクロセル出力線765を介してLMC MUX/DEMUX730ヘ送信されるこれらのP項信号に応答して積の和の項を発生する。
【0077】
論理/メモリアレイ720は、コンフィギュレーションモード、メモリ読取(即ち、LUT動作又はRAM読取)モード、メモリ書込モード、及びPAL/CAM動作モードで動作するためにコンフィギュレーション信号によって制御される。第二グループ722の動作(即ち、LUT/RAM COLS)は、論理/メモリアレイ520に関して上に説明したのと基本的に同一であり、従ってここで繰り返し説明することはしない。第一グループ721の動作(即ち、PAL/LUT/RAM COLS)は図7(C)を参照して以下に説明する。
【0078】
コンフィギュレーション即ち形態特定モード期間中、CFG制御信号は高であり且つPLA ENBL制御信号は低である(READ/WRITEは「don’t care」である)。高CFG信号はスイッチ回路715A−1(図7(B)参照)をターンオフさせ、且つスイッチ回路715B−1をターンオンさせ、従ってアドレス信号がコンフィギュレーションアドレス線707−1からワード線717−1上へ送信される。更に、高CFG信号はパストランジスタ748をターンオンさせてビット線745及び745 bをコンフィギュレーションビット線749及び749 bへ接続させる。注意すべきことであるが、低PLA ENBL信号は、入力端子703−1からビット線745−1及び745−1 bへの入力信号の送信を防止する。この状態において、データ値が、同時的に、ビット線745−1及び745−1 bを介してプログラム可能要素740−1へ送信され、且つビット線745−2及び745−2 bを介してプログラム可能要素740−2へ送信される。プログラム可能要素740−1及び740−2は、その後のデータ書込処理が実施されるまで(又はパワーがターンオフされるまで)これらのデータ値を維持する。
【0079】
メモリ書込モード期間中、CFG及びPAL ENBL信号は低であり、且つREAD/WRITE制御信号は高である。低CFG信号はスイッチ回路715A−1(図7(B)参照)をターンオンさせ、且つスイッチ回路715B−1をターンオフさせる。高READ/WRITE信号によってイネーブルされると、NORゲートN1,N3,N5,N7(図7(B)参照)は入力端子703−1及び730−2によって受取られる入力信号に応答してワード線717−1乃至717−4上にアドレス信号を発生する。注意すべきことであるが、低CFG信号はパストランジスタ748をターンオフさせる。この状態において、データ信号DINはLMC MUX/DEMUX730(後に説明する)の動作に応答して、LMC MUX/DEMUX730から選択したビット線745−1又は745−2(及び選択した反転ビット線745−1 b又は745−2 b)ヘ送信される。
【0080】
メモリ読取(LUT動作又はRAM読取)モード期間中、CFG及びPAL ENBL制御信号は低であり、且つREAD/WRITE制御信号は高である。READ/WRITE信号は、NORゲートN1,N3,N5,N7(図7(B)参照)をして、入力端子703−1及び703−2によって受取られる入力信号に応答して、ワード線717−1乃至717−4上にアドレス信号を発生させる。低CFGはスイッチ回路715A−1をターンオンさせ、且つスイッチ回路715B−1をターンオフさせる。更に、低CFG信号はパストランジスタ748をターンオフさせる。この状態において、プログラム可能要素740−1及び740−2内に格納されているビット値は、ワード線717−1を介してデコーダ710から送信される高アドレス信号に応答して、ビット線745−1及び745−2上に送信される。以下に説明するように、格納されているビット値はビット線745−1及び745−2を介してLMC MUX/DEMUX730ヘ送信される。
【0081】
PAL/CAM動作モード期間中、PAL ENBL信号は高であり、且つCFG信号は低である(READ/WRITEは「don’t care」である)。高PAL ENBL信号はPALイネーブル制御回路770−1をターンオンさせ、それにより入力信号を入力端子703−1からビット線745−1へパスさせ、かつ入力信号の反転したものを反転ビット線745−1 bヘパスさせる。ビット線745−1及び745−1 b上の入力信号はプログラム可能要素740−1内に格納されている値に従ってPAL/CAMセル論理回路780の第一入力端子へ送信される。プログラム可能要素740−2内に格納されている値はPAL/CAMセル論理回路780の第二入力端子へ送信される。PAL/CAMセル論理回路780は、プログラム可能要素740−1及び740−2内に格納されているビット値に依存し、且つビット線745−1及び745−1 b上に送信される真及び補元PAL入力信号に応答して高(論理1)信号又は低(論理0)信号のいずれかを発生する。PAL/CAMセル論理回路780によって実施される論理は、PAL/CAMセル論理回路680を参照して上に説明したものと同一である。
【0082】
図7(D)は、LMC MUX/DEMUX730の1つの実施例を示した簡単化した概略図である。LMC MUX/DEMUX730はLMC MUX/DEMUX630(上に説明した)と基本的に同一であり、その唯一の差異は、マルチプレクサ/デマルチプレクサ732が単にビット線745に接続されているに過ぎないという点である(即ち、読取/書込制御回路は存在しない)。従って、LMC MUX/DEMUX730の動作の説明は割愛する。
【0083】
第四実施例
図8(A)乃至8(D)は本発明の第四実施例に基づくCLB800を示した概略図である。CLB800は第一スイッチ回路(INPUT MUX)820、4個の論理/メモリ回路(LMC)430−A乃至430−D、第二スイッチ回路(OUTPUT MUX)860、レジスタ回路(FF)870、CLB出力マルチプレクサ回路875を有している。CLB800はCLB800に隣接して位置されている相互接続資源(不図示)の80個の相互接続線から最大で24個の入力信号を受取る。これらの入力信号はCLB入力端子810を介して第一スイッチ回路820へ送信され、それは、又、フィードバック線885を介して最大で12個のフィードバック信号を受取る。第一スイッチ回路820はLMC入力線830を介してLMC430−A乃至430−Dへこれらの入力及びフィードバック信号のうちのいずれか8個をルーチング即ち経路付けさせるためにプログラム可能なスイッチ要素を有している。第一スイッチ回路820は、例えば、LMC430−Aが第一グループの8個の入力信号を受取り且つLMC430−Bが第二の完全に異なるグループの8個の入力信号を受取るように、これらの入力信号を選択的に経路付けする。
【0084】
各LMC430−A乃至430−DはLMC430−1(図5(A)参照)、LMC430−2(図6(A)参照)、又はLMC430−3(図7(A)参照)と一貫したプログラム可能な回路を有している。従って各LMC430−A乃至430−DへLMC入力線830を介して送信される8個の入力信号のグループは、第一組の4個の入力信号と第二組の4個の入力信号とを包含している。各LMC430−A乃至430−Dは、選択したワードが論理/メモリアレイのビット線上に送信されるように、第一組の入力信号によってアドレス可能な複数個のデータワードを格納するための論理/メモリアレイを有している。各LMC430−A乃至430−Dは、又、第二組の入力信号に応答して選択したビット線からLMC出力線850へ選択したデータ値をパスするためのスイッチ回路を有している。例えば制御信号CFG,PAL ENBL,READ,WRITE等の付加的な信号、及びデータ入力信号DINは周りの相互接続線から直接的にLMCへ送信されるか、又は付加的なLMC入力線(不図示)上に送信される。LMC出力線850を介してLMC430−A乃至430−Dから送信される選択したデータ値は第二スイッチ回路(OUTPUT MUX)860へ送信される。第二スイッチ回路860はLMC430−A乃至430−Dから送信される選択したデータ値を12本の出力線865へパスする。CLB800がユーザによって組合わせ論理回路として使用されるか又は状態マシンとして使用されるかに依存して、出力線865上のデータ信号は、夫々、CLB出力マルチプレクサ回路875の第一端子か、又はレジスタ回路(FFs)870を介して第二端子へ送信される。CLB出力マルチプレクサ回路875は、相互接続線(不図示)上へ送信するためにCLB出力端子880へ、又は第一スイッチ回路820へ送り戻すためにフィードバック線885へこれらの組の信号のうちの1つをパスする。
【0085】
図8(B),8(C),8(D)はCLB800の部分を更に詳細に示した概略図である。
【0086】
図8(B)は第一スイッチ回路820を示したブロック図である。第一スイッチ回路820は4個のスイッチブロック820−A乃至820−Dを有しており、各スイッチブロックは8個のマルチプレクサ回路(MXC)を有している。例えば、スイッチブロック820−AはMXC A−1乃至MXC A−8を有している。各スイッチブロック820−A乃至820−DはCLB入力端子810を介して相互接続資源から入力信号を受取り且つフィードバック線885を介してフィードバック信号を受取る。各スイッチブロック820−A乃至820−Dの各MXCはCLB入力端子810又はフィードバック線885から関連するLMC入力線830へ選択した信号をパスするためのプログラム可能なスイッチング要素を有している。例えば、MXC A−1は、入力端子810又はフィードバック線885のいずれかから選択した1つの信号をLMC入力線830−1へパスするようにプログラムすることが可能である。
【0087】
図8(C)はスイッチブロック820−A乃至820−Dの全てのMXCの代表的なものであるMXC A−1のプログラム可能なスイッチ要素を示した簡単化した概略図である。MXC A−1はCLB入力端子810上で24個の入力信号を受取り且つフィードバック線885上で12個のフィードバック信号を受取る。これらの24個の入力端子810及び12個のフィードバック線885は4つのグループにまとめられており、且つ各グループはパストランジスタ812を介して共通ノードへプログラミングによって接続される。例えば、4個の入力端子810−1乃至810−4からなる1つのグループは共通ノード815へ接続している。入力端子810−1はパストランジスタ812−1を介して共通ノード815へ接続しており、且つ入力端子810−2乃至810−4は同様に制御される。第一組の4個のメモリ要素Ma乃至Mdはパストランジスタ812のゲートへ接続しており且つ各グループの4個の入力端子から1個の信号をパスするためにユーザによってプログラムされる。例えば、入力端子810−1からの入力信号は、パストランジスタ812−1をターンオンさせるようにメモリ要素Maをプログラミングすることによって共通ノード815へパスされる(メモリ要素Mb乃至Mdはそれらの関連するパストランジスタをターンオフするようにプログラムされる)。各共通ノードはメモリ要素Me乃至Mmによって制御される関連するパストランジスタを介して出力ノード817へ接続される。例えば、共通ノード815はメモリ要素Meによって制御されるパストランジスタ816を介して出力ノード817へ接続している。従って、MXC A−1は、出力ノード817を介して24個の入力端子810及び12個のフィードバック線885のうちの選択した1つをLMC入力線830−1へ経路付けさせるためにメモリ要素Ma乃至Mmをプログラミングすることによって選択的に制御される。
【0088】
図8(D)は、CLB800の第二スイッチ回路860、レジスタ回路870、CLB出力マルチプレクサ回路875を示した概略図である。簡単に図8(A)を参照すると、各LMC430−A乃至430−DはLMC出力線850を介して第二スイッチ回路860へ送信される1個、2個又は4個の出力信号を発生する。図8(D)に戻ると、第二スイッチ回路860は、各OMXCが16個全てのLMC出力信号を受取るように、LMC出力線850へ接続されている12個の出力マルチプレクサ回路(OMXC)860−1乃至860−12を有している。各OMXC860−1乃至860−12は、選択したLMC出力信号を関連する出力線865へパスさせるようにプログラムされている16対1マルチプレクサを有している。出力線865はレジスタ回路870へ及びCLB出力マルチプレクサ回路875の1組の入力端子へ供給される。レジスタ回路870はフリップフロップFF−1乃至FF−12を有しており、その各々は関連する出力線865を介してパスされる信号を受取るべく接続されているデータ端子を有している。フリップフロップFF−1乃至FF−12はCLB出力マルチプレクサ回路875の第二組の入力端子へ接続している出力端子を有している。CLB出力マルチプレクサ回路875は12個の2対1マルチプレクサZ1乃至Z12を有しており、それらは関連する出力線865を介して直接的に送信された選択したLMC出力信号か、又は関連するフリップフロップFF−1乃至FF−12から送信されたレジスタされた信号のいずれかをパスするためにコンフィギュレーションメモリセルMによって制御される。CLB出力マルチプレクサ回路875によってパスされた信号は関連するフィードバック線及び相互接続資源へ送信される。
【0089】
CLB800は、従来技術において使用されている16ビットLUTが最小の付加的な空間を占有しながら実質的により大きな論理機能部分を実現する4個の256ビットLMC430によって置換されているという点において従来のCLBにない利点を提供している。LUT(即ち、LMC)の寸法を増加させると論理レベルの数が減少され、従って論理機能は多数の16ビットLUTを使用して可能である場合よりもより速い速度で実施される。更に、256ビットLMCを形成するために必要な付加的な空間は各LMCによって実現されるユーザ論理の付加的な量によってオフセットされる。
【0090】
第五実施例
図9(A)乃至9(C)は本発明の第五実施例に基づくCLB900を示した概略図である。CLB900は、CLB800の第二スイッチ回路860及びCLB出力マルチプレクサ回路875がCLB900においては使用されていないという点がCLB800(図8A(参照))と異なっている。これらの出力制御回路が存在しないことを補償するために、CLB800によって与えられる12個と比較して、周りの相互接続資源(不図示)ヘCLB900から出力信号を送信するために24個の出力端子が設けられている。出力端子の数を増加させることは相互接続資源との接続を与えるために付加的なプログラム可能回路が必要となるが、これらの出力制御回路を取除くことは信号遅延を減少させ、それによりより速い動作速度の利点を提供する。
【0091】
CLB900はスイッチ回路(INPUT MUX)920、4個の論理/メモリ回路(LMC)430−A乃至430−D、レジスタ回路(FFs)970−1乃至970−4を有している。CLB900は最大で24個の入力信号を入力端子910上で受取り、それらはホストPLD上のCLB900に隣接して位置されている相互接続資源(不図示)の相互接続線へプログラミングによって接続されている。これらの入力信号はスイッチ回路920へ送信され、それは、又、フィードバックラインバス985上の8個のフィードバック信号を受取る。スイッチ回路920はLMC入力線930−A乃至930−Dを介してLMC430−A乃至430−Dへこれらの入力及びフィードバック信号のうちのいずれか8個をルーチング即ち経路付けするためのプログラム可能なスイッチ要素を有している。
【0092】
各LMC430−A乃至430−Dは本発明のLMC、例えばLMC430−1(図5(A)参照)、LMC430−2(図6(A)参照)、又はLMC430−3(図7(A)参照)とを一貫性のあるプログラム可能回路を有している。従って、各LMC430−A乃至430−DはLMC入力線910―A乃至910−Dを介して受取った入力信号に応答して、CLB出力端子950−1乃至950−4上に最大で4個の出力信号を供給するためのスイッチ回路を有している。例えば制御信号CFG,PAL ENBL,READ,WRITE及びデータ入力信号DINなどの付加的な信号が周りの相互接続線から直接的にLMC430−A乃至430−Dへ送信されるか、又は付加的なLMC入力線(不図示)上に送信される。フィードバック線対985−A乃至985−Dは関連する出力端子950−1乃至950−4からフィードバック信号の経路付けを行う。例えば、フィードバック信号はCLB出力端子950−1を構成する4本のライン(線)のうちの2つからフィードバック線対985−Aを介して送信される。フィードバック線対965−A乃至985−Dはスイッチ回路920へ接続されているフィードバック線バス985を形成する。CLB900がユーザによって組合わせ論理として使用される場合には、CLB出力端子950−1乃至950−4上のデータ信号は直接的に相互接続線(不図示)ヘ送信される。対照的に、CLB900が状態マシンとして使用される場合には、各CLB出力端子950−1乃至950−4と関連する4本のラインのうちの2つの上の信号がレジスタ回路(FFs)970−1乃至970−4へ送信され、それはレジスタされた出力信号をCLBレジスタ済出力端子975−1乃至975−4上に送信する。
【0093】
図9(B)及び9(C)はスイッチ回路(INPUT MUX)920の付加的な詳細を示した概略図である。
【0094】
図9(B)はスイッチ回路920のブロック図である。スイッチ回路920は4個のスイッチブロック920−A乃至920−Dを有しており、各スイッチブロックは8個のマルチプレクサ回路(MXC)を有している。例えば、スイッチブロック920−AはMXC A−11乃至MXC A−18を有している。各スイッチブロック920−A乃至920−Dは、夫々、関連するCLB入力端子910−A乃至910−Dを介して相互接続資源から24個の入力信号を受取り、且つフィードバック線バス985を介して6個のフィードバック信号を受取る。各スイッチブロック920−A乃至920−Dの各マルチプレクサ回路MXCは、CLB入力端子910−A乃至910−Dからの選択した信号又はフィードバック線バス985からのフィードバック信号をLMC入力線930−A乃至930−Dの関連するライン(線)へパスさせるプログラム可能なスイッチング要素を有している。例えば、MXC A−11はCLB入力端子910−Aの24本の線からか又はフィードバック線バス985の6本のフィードバック線からの1個の信号をLMC入力線930−A1へパスさせるべくプログラム可能であり、それは、次いで、LMC430−A(図9(A)参照)ヘ送信される。
【0095】
注意すべきことであるが、フィードバック線バス985の8本のフィードバック線のうちの6本のみが各スイッチブロック920−A乃至920−Dに対して経路付けされる。図示例においては、LMCのうちの1つからの出力信号はそのLMCによってフィードバックとして使用されていない。従って、1個のLMCの出力端子へ接続されているフィードバック線バス985のフィードバック線対はそのLMCと関連しているスイッチブロックに対してフィードバックされることはない。例えば、図9(B)に示したように、スイッチブロック920−Aはフィードバック線対985−B,985−C,985−D、(夫々、LMC430−B,430−C,430−Dによって発生される)からのフィードバック信号を受取る。従って、フィードバック線対985−Aはスイッチブロック920−Aに対して送信されることはない。同様に、スイッチブロック920−Bはフィードバック線対985−A,985−C,985−Dからのフィードバック信号を受取り、スイッチブロック920−Cはフィードバック線対985−A,985−B,985−Dからのフィードバック信号を受取り、且つスイッチブロック920−Dはフィードバック線対985−A,985−B,985−Cからのフィードバック信号を受取る。
【0096】
図9(C)はスイッチブロック920−A乃至920−Dの全てのマルチプレクサ回路を代表するMXC A−11のプログラム可能なスイッチ要素を示した簡単化した概略図である。MXC A−11はCLB入力端子910−A上の24個の入力信号及びフィードバック線対985−B,985−C,985−Dからの6個のフィードバック信号を受取る。これら24個の入力信号はパストランジスタ912を介して4つのグループで送信される。第一組の4個のメモリ要素Ma乃至Mdはパストランジスタ912のゲートへ接続されており且つ各グループの4個の入力信号から1個の信号をパスさせるべくユーザによってプログラムされる。同様に、6個のフィードバック信号がパストランジスタ912を介して2個のグループ毎に送信される。メモリ要素Ma及びMbはこれらのパストランジスタを制御して各グループの2個のフィードバック信号から1個の信号をパスさせる。これらのグループの内の1つからのフィードバック信号又は選択した入力信号がメモリ要素Me乃至Mmによって制御される関連するパストランジスタを介してLMC入力線930−A1へパスされる。従って、MXC A−11はメモリ要素Ma乃至Mmをプログラミングすることによって選択的に制御されて、入力端子910−Aからの24個の入力信号及びフィードバック線対985−B,985−C,985−Dからの6個のフィードバック信号のうちの選択した1つをLMC入力線930−A1を介してLMC430−Aへ経路付けさせる。
【0097】
再度図9(A)を参照すると、各LMC430−A乃至430−Dは周りの相互接続資源(不図示)ヘCLB出力端子950−1乃至950−4を介して送信される1個、2個、又は4個の出力信号を発生する。一方、各CLB出力端子950−1乃至950−4からの2個の信号をCLBレジスタ済出力端子975−1乃至975−4を介してレジスタ回路970−1乃至970−4から送信されるレジスタ済の出力信号としてCLB900から供給することが可能である。
【0098】
第六実施例
CLB800及びCLB900は論理/メモリ機能を実施するために4個のLMC430を有しているが、回路寸法における増加を最小としながら付加的な論理能力を与えるためにLMCと関連して特別目的回路及びその他の論理回路を使用することが可能である。
【0099】
図10は本発明の第六実施例に基づくCLB1000を示したブロック図である。CLB800(図8(A)参照)と同様に、CLB1000は第一スイッチ回路(INPUT MUX)1020、4個の論理/メモリ回路(LMC)430−A乃至430−D、第二スイッチ回路(OUTPUT MUX)1060、レジスタ回路(FFs)1070、CLB出力マルチプレクサ回路1075を有している。更に、CLB1000は4×4アレイ乗算器回路1090を有しており、それは第一スイッチ回路1020から全部で8個の入力信号を受取り且つ第二スイッチ回路1060へ送信される8個の出力信号を発生する。適宜の4×4アレイ乗算器回路は、例えば、Neil Weste及びKamran Eshraghian著「CMOS VLSI設計の原理(Principles of CMOS VLSI Design)」、第二版、アジソンウエズリィ出版社、1993、545−547頁に記載されている。乗算器回路はLMC430の汎用回路よりも実質的に寸法がより小さく、しばしば、DSP適用例において使用される。乗算器回路1090を与えることによって、CLB1000は3倍以上これらの適用例に対する乗算速度を改善する。
【0100】
第七実施例
図11は本発明の第七実施例に基づくCLB1100を示したブロック図である。CLB1000(図10)と同様に、CLB1100は、汎用論理演算を実施するための論理/メモリ回路(LMC)430−A及び430−Bを有しており、且つ乗算演算を実施するための4×4アレイ乗算器回路1190を有している。この第七実施例においては、LMC430−A及び430−Bは、例えば、LUT及びRAM機能のみを実施するLMC430−1(図5(A)参照)を使用して実現される。更に、AND−OR論理形式を使用して論理関数部分を実現するために2個の専用のPAL回路1195−1及び1195−2が設けられている。専用のPAL回路は公知であり、且つ、上述したように、典型的にLUT回路よりも一層高速である。大容量のLMC430と高速の専用のPAL回路の両方を単一のCLB1100内に組込むことによって、高速且つ大容量の両方の論理機能を実現することが可能な高度に多様性のあるPLDが製造される。
【0101】
第八実施例
上述したように、LMC430−1(図5(A))、430−2(図6(A))、430−3(図7(A))の論理/メモリアレイは16×16マトリクス(行列)に配列されている256個のプログラム可能要素を有している。この配列は任意の8入力論理機能の高容量LUT実現を与えるものであるが、それは、又、これらのLMCの動作速度を減少させる。特に、各ビット線へ接続されている16個のプログラム可能要素は各ビット線上に顕著な負荷を形成する。上述したように、LMC430−1(図5(C)参照)及び430−2(図6(C)参照)の論理/メモリアレイにおいて開示した「高速読取」構成はLMC430−3(図7(C)参照)によって与えられるものよりも比較的高速な動作速度を発生する。然しながら、この「高速読取」構成を使用した場合であっても、各「高速読取」ビット線上に16個のプログラム可能要素によって発生される負荷は信号遅延に対して顕著に貢献する。従って、動作速度を更に増加させるために、論理/メモリアレイ内の各ビット線からプログラム可能要素を除去することが可能である。論理/メモリアレイからプログラム可能要素を取除くことはLUT及びRAM容量を犠牲にするものであるが、その結果発生する動作速度における増加は高速論理実現のために極めて有益的なものである。
【0102】
図12(A)乃至12(C)は本発明の第八実施例に基づくLMC430−4を示している。LMC430−2(図6(A))と同様に、LMC430−4のプログラム可能要素はLUT、RAM又はPAL/CAMとして選択的に使用することが可能である。然しながら、LMC430−2と異なり、LMC430−4の論理/メモリアレイは16個の行と4個の列とに配列された64ビットを有するに過ぎない。そうであるから、LMC430−4は6入力LUT動作(LMC430−2の8入力LUT動作と対比される)を実現することが可能であり、且つ64ビットRAM動作(256ビットと対比される)を実現することが可能である。然しながら、論理/メモリアレイの各行内のプログラム可能要素の数を減少させることによって、各読取ビット線に印加される容量は著しく小さく、それによりメモリ読取(LUT動作及びRAM読取)モード期間中の動作速度が増加される。更に、列の数を4へ減少させることによって、メモリ読取モード期間中における動作速度を更に増加させるためにハードワイヤードデコーダを使用することが可能である。
【0103】
図12(A)を参照すると、LMC430−4はデコーダ1210、ハードワイヤードデコーダ(LARD DEC)1216、論理/メモリアレイ1220、LMCマルチプレクサ/デマルチプレクサ(MUX/DEMUX)(スイッチ回路)1230、マクロセル1260、PAL入力(PAL IN)制御回路1270を有している。デコーダ1210が第一組の4個の入力端子1203から2個の入力信号を受取るべく接続されており、且つ書込ワード線1217上に4個の書込アドレス信号を発生し、それらは論理/メモリアレイ1220のプログラム可能要素の列へ送信される。ハードワイヤードデコーダ1216も入力端子1230から同一の2つの入力信号を受取るべく接続されており、且つ読取ワード線1218上に8個の読取アドレス信号を発生し、2個の読取アドレス信号は論理/メモリアレイ1220の各列へ送信される。論理/メモリアレイ1220は、又、コンフィギュレーションバス(不図示)から線1207を介して4個のコンフィギュレーション(形態特定)アドレス信号を受取る。制御回路(後に説明する)が、メモリ書込動作期間中にデコーダ1210によって発生されたアドレス信号を書込ワード線1217上に印加させるか、又はコンフィギュレーションモード期間中にコンフィギュレーションアドレス信号を書込ワード線1217上へ印加させるために設けられている。LMC MUX/DEMUX1230は入力端子1205によって受取られる入力信号に応答して、選択した読取ビット線1225からのビット値をメモリ読取モード期間中に出力端子1235へパスさせる。更に、LMC MUX/DEMUX1230は該入力信号に応答して、メモリ書込モード期間中に、データ入力端子DINからの入力データ値を選択した書込ビット線1245及び反転書込ビット線1245 bへ送信する。
【0104】
図12(B)は、入力端子1203−1及び1203−2上で受取った2つの入力信号をデコードする簡単化したデコーダ1210及びハードワイヤードデコーダ1216を示している。各入力信号は反転され、且つ選択された対の反転及び非反転入力信号がデコーダ1210の4個のNORゲートN1,N3,N5,N7の入力端子へ印加され、それは、又、反転WRITE制御信号を受取る。選択した対の入力信号及びWRITE制御信号に応答して、NORゲートN1,N3,N5,N7は書込アドレス信号を発生し、該信号はスイッチ回路1215を介して論理/メモリアレイ1220におけるプログラム可能要素の4つの列へ印加される。反転及び非反転入力信号は、又、ハードワイヤードデコーダ1216によって使用されて、該デコーダは反転及び非反転入力信号の選択した対を読取線1218−1乃至1218−8を介して論理/メモリアレイ1220におけるプログラム可能要素の4つの列へ供給する。
【0105】
再度図12(A)を参照すると、論理/メモリアレイ1220は16個の行と4個の列とに配列された64個のプログラム可能要素を有している。各列は8個の対を形成すべく配列された16個のプログラム可能要素を有している(以後「PAL/CAMセル」と呼称する)。論理/メモリアレイ1220の1つの列からの代表的な対のプログラム可能要素を図12(C)に示してある。論理/メモリアレイ1220の残りの対のプログラム可能要素は基本的に図12(C)に示した対と同一である。
【0106】
図12(C)は論理/メモリアレイ1220の1つの列において順番に配列されているプログラム可能要素1240−1及び1240−2によって形成される1個のPAL/CAMセルを示している。図6(C)を参照して上に説明したプログラム可能要素640−1及び640−2と同様に、各プログラム可能要素1240−1及び1240−2は、ビット値を格納するためのラッチ、及び書込ビット線1245−1,1245−1 b,1245−2,1245−2 bから各ラッチへビット値を書込むための処理を制御するための制御回路を有している。更に、プログラム可能要素1240−1及び1240−2は、夫々、ビット値を読取ビット線1225−1及び1225−2上へ駆動する第三インバータ1246−1及び1246−2を有している。ゲートが読取ワード線1218−1及び1218−2へ夫々接続されている2個の直列パストランジスタ1247−1A及び1247−1Bによってメモリ読取動作が制御されるという点においてプログラム可能要素1240−1はプログラム可能要素640−1(図6(C))と異なっている。特に、プログラム可能要素1240−1のラッチによって格納されているビット値は、読取ワード線1218−1及び1218−2の両方へ高アドレス信号が印加された場合にのみ読取ビット線1225−1へ送信され、それによりパストランジスタ1247−1A及び1247−1Bの両方をターンオンさせる。簡単に図12(B)を参照すると、読取ワード線1218−1及び1218−2は、入力端子1203−1及び1203−2の両方において受取られる入力信号が低である場合にのみ、高アドレス信号を受取る(即ち、読取ワード線1218−1及び1218−2へ印加される反転入力信号が高)。同様に、プログラム可能要素1240−2に対するメモリ読取動作は、ゲートが読取ワード線1218−1及び1218−2へ夫々接続されている2個の直列パストランジスタ1247−2A及び1247−2Bによって制御される。
【0107】
論理/メモリアレイ1220は単に4個の列のプログラム可能要素を有しているに過ぎないので、ハードワイヤードデコーダ1216の訂正及びメモリ読取動作用の第二パストランジスタの付加は論理/メモリアレイ1220に対して著しい複雑性を導入させることはない。更に、ハードワイヤードデコーダ1216によって除去されるデコーダ遅延はビット値を直列パストランジスタを介して送信させることによって発生される付加的な遅延よりも一層大きく、それにより正味の動作速度の増加が得られる。LMC430−4の動作速度は、単に4個のプログラム可能要素が各ビット線へ接続されているのに過ぎないので、更に増加される。従って、LMC430−4は16×16論理/メモリアレイを具備するLMCによって与えられるものよりもメモリ読取(LUT動作及びRAM読取)モードにおいて著しくより速い動作速度で動作する。
【0108】
プログラム可能要素1240−1及び1240−2の修正されたメモリ読取動作以外、LMC430−4の動作はLMC430−2を参照して上述したものと同様である。更に、LMC MUX/DEMUX1230は基本的LMC MUX/DEMUX630(図6(D)参照)と同一である。従って、LMC MUX/DEMUX1230及びコンフィギュレーション、PAL/CAM、及びメモリ書込モードの説明は割愛する。
【0109】
本発明をその幾つかの好適実施例を参照してかなり詳細に説明したが、その他の実施例も可能である。例えば、別の実施例においては、LMC430−1のメモリセルは16×4マトリクス(上述したLMC430−4において使用したものと同様)として配列させ、且つハードワイヤードデコーダ(ハードワイヤードデコーダ1216と同様、図12(B)参照)を包含するデコーダ構成が提供される。ハードワイヤードデコーダ1216をLMC340−1の高速メモリ読取回路と結合させることによって、極めて高速の読取動作を実施する論理/メモリ回路が提供される。更に別の実施例においては、CLB800又は900は24個を超える入力信号を受取ることが可能である。更に、本明細書に記載したLMCは、9個又はそれ以上の入力のLUTをサポートするためにより大きな数のプログラム可能要素を具備する論理/メモリアレイを有することが可能であるが、このようなLMCは9(又はそれ以上)入力LUTを使用するために論理機能を区画化することに関連する問題のために下限最適である。更に、CLB1000及び1100において使用した乗算器回路の1:1入力対出力比の代わりに、2:1入力対出力比を具備する加算器回路、又は別の特別目的回路を使用することが可能である。従って、特許請求の範囲の精神及び範囲は本明細書に含まれる好適実施例の記載に制限されるべきものではない。
【図面の簡単な説明】
【図1】 (A)は簡単化した従来のFPGAの一部を示した概略図、(B)は(A)のFPGAにおける信号の経路付けのために使用されるスイッチ回路を示した概略図、(C)は(A)のFPGAにおける信号の経路付けのために使用されるスイッチ回路を示した概略図、(D)は(A)のFPGAにおける信号の経路付けのために使用されるスイッチ回路を示した概略図。
【図2A】 従来のFPGAのCLBを示した簡単化した概略図。
【図2B】 図2Aに示したCLBの4入力LUTを示した簡単化した概略図。
【図2C】 図2Bに示した4入力LUTのメモリセルを示した簡単化した概略図。
【図3】 幾つかの4入力LUTを介しての信号の経路付けのために使用されるクリチカルパスを示し且つ従来のFPGAの一部を示した簡単化した概略図。
【図4】 本発明に基づいて形成した論理/メモリ回路(LMC)を含む簡単化したPLDを示したブロック図。
【図5A】 本発明の第一実施例に基づくLMCの一部を示した概略図。
【図5B】 本発明の第一実施例に基づくLMCの一部を示した概略図。
【図5C】 本発明の第一実施例に基づくLMCの一部を示した概略図。
【図5D】 本発明の第一実施例に基づくLMCの一部を示した概略図。
【図6A】 本発明の第二実施例に基づくLMCの一部を示した概略図。
【図6B】 本発明の第二実施例に基づくLMCの一部を示した概略図。
【図6C】 本発明の第二実施例に基づくLMCの一部を示した概略図。
【図6D】 本発明の第二実施例に基づくLMCの一部を示した概略図。
【図7A】 本発明の第三実施例に基づくLMCの一部を示した概略図。
【図7B】 本発明の第三実施例に基づくLMCの一部を示した概略図。
【図7C】 本発明の第三実施例に基づくLMCの一部を示した概略図。
【図7D】 本発明の第三実施例に基づくLMCの一部を示した概略図。
【図8A】 本発明の第四実施例に基づくCLBを示した概略図。
【図8B】 本発明の第四実施例に基づくCLBを示した概略図。
【図8C】 本発明の第四実施例に基づくCLBを示した概略図。
【図8D】 本発明の第四実施例に基づくCLBを示した概略図。
【図9A】 本発明の第五実施例に基づくCLBを示した概略図。
【図9B】 本発明の第五実施例に基づくCLBを示した概略図。
【図9C】 本発明の第五実施例に基づくCLBを示した概略図。
【図10】 本発明の第六実施例に基づくCLBを示した概略図。
【図11】 本発明の第七実施例に基づくCLBを示したブロック図。
【図12A】 本発明の第八実施例に基づくLMCの一部を示した概略図。
【図12B】 本発明の第八実施例に基づくLMCの一部を示した概略図。
【図12C】 本発明の第八実施例に基づくLMCの一部を示した概略図。
Claims (9)
- 複数個の形態特定可能論理ブロック及び前記形態特定論理ブロックへ信号を送信する相互接続資源とを有しているプログラム可能論理装置において、各形態特定可能論理ブロックが論理/メモリを有しており、それが、
前記相互接続資源から第一組の入力信号を受取るための第一複数個の入力端子、
前記第一複数個の入力信号に応答してアドレス信号を発生するデコーダ、
複数個のビット値を格納するためのプログラム可能要素と、前記アドレス信号を受取るために前記デコーダへ接続しているワード線と、前記アドレス信号に応答して前記プログラム可能要素ヘビット値を送信するビット線とを具備しているアレイ、
前記第一複数個の入力端子へ接続しており前記第一組の入力信号を1つのグループのビット線へ選択的に送信する入力制御回路、
前記グループのビット線を介して送信される前記第一組の入力信号及び前記プログラム可能要素内に格納されているビット値に応答して複数個の積項を発生する積項回路、
を有しているプログラム可能論理装置。 - 請求項1において、
前記入力制御回路が第一入力端子と第一ビット線との間に接続している第一パストランジスタと、前記第一入力端子へ接続しているインバータ入力端子を具備しているインバータと、前記インバータの出力端子と第二ビット線との間に接続している第二パストランジスタとを有しており、
前記第一及び第二パストランジスタが、第一動作モード期間中に入力信号が前記第一及び第二ビット線へ通過されるようにターンオンし、且つ第二動作モード期間中に前記入力信号が前記第一及び第二ビット線から分離されるようにターンオフするために制御信号によって制御される、
プログラム可能論理装置。 - 請求項1において、前記論理/メモリ回路が、更に、
第二組の入力信号を受取るための第二複数個の入力端子、
前記相互接続資源から書込ビット値を受取るためのデータ入力端子、
前記ビット線へ接続しているマルチプレクス/デマルチプレクス回路、
を有しており、前記マルチプレクス/デマルチプレクス回路が、第一モードにおいて前記第二組の入力信号に応答して前記プログラム可能要素から読取った選択したビット値を通過させ、且つ第二モードにおいて前記第二組の入力信号に応答して選択したビット線へ前記データ入力端子からの書込ビット値を通過させるべく選択的に制御可能であるプログラム可能論理装置。 - 請求項1において、前記論理/メモリ回路が、更に、前記複数個の積項に応答して積の和の値を発生するマクロセル回路を有しているプログラム可能論理装置。
- 請求項1において、前記デコーダが、
第一入力信号を受取るための第一入力端子、
第二入力信号を受取るための第二入力端子、
書込制御信号を受取るための書込制御端子、
前記第一及び第二入力信号及び前記書込制御信号に応答して第一書込アドレス信号を発生する第一論理ゲート、
前記第一及び第二入力信号に応答して第一読取アドレス信号を発生する第二論理ゲート、
を有しているプログラム可能論理装置。 - 請求項1において、前記入力制御回路が第一ビット線上へ第一入力信号を選択的に印加させるための第一トランジスタと、前記第一信号の反転した信号を第二ビット線上へ印加する第二トランジスタとを有しており、
前記アレイが、
第一ビット値を格納するためのラッチを具備している第一プログラム可能要素、
前記第一ビット線へ接続している第一端子と、ノードへ接続している第二端子と、前記第一プログラム可能要素のラッチへ接続しているゲートとを具備している第一パストランジスタ、
前記第二ビット線へ接続している第一端子と、前記ノードへ接続している第二端子と、前記第一プログラム可能要素のラッチへ接続しているゲートとを具備しているパストランジスタ、
第二ビット値を格納するためのラッチを具備している第二プログラム可能要素、
を有しており、且つ前記積項回路が、
前記ノードへ接続している第一入力端子と、前記第二プログラム可能要素のラッチへ接続している第二入力端子とを具備しているセル論理回路、
前記セル論理回路によって発生される出力信号に応答して積項を発生するAND回路、
を有している、プログラム可能論理装置。 - 請求項1において、
前記デコーダが第一入力信号と、第二入力信号と、書込制御信号とに応答して第一書込アドレス信号を発生し、
前記アレイが、更に、前記第一入力信号及び第二入力信号に応答して第一読取アドレス信号及び第二読取アドレス信号を発生するハードワイヤードデコード回路を有している、
プログラム可能論理装置。 - 請求項7において、前記デコーダが、更に、
前記第一入力信号を送信する第一線、
前記第一入力信号を反転させる第一インバータ、
前記第一インバータへ接続しており前記反転した第一入力信号を送信する第二線、
前記第二入力端子を送信する第三線、
前記第二入力信号を反転させる第二インバータ、
前記第二インバータへ接続しており前記反転した第二入力信号を送信する第四線、
前記書込制御信号を受取る書込制御端子、
前記第一及び第二入力信号及び前記書込制御信号に応答して第一書込アドレス信号を発生する第一論理ゲート、
を有しているプログラム可能論理装置。 - 請求項7において、
前記アレイのプログラム可能要素が行と列との形態に配列されており、各行のプログラム可能要素が関連する書込ビット線と関連する読取ビット線とへ接続しており、各列のプログラム可能要素が関連する書込ワード線と関連する対の読取ワード線とに接続しており、
前記第一書込アドレス信号が第一書込ワード線上へ送信され、
前記第一読取アドレス信号が第一読取ワード線上へ送信され、
前記第二読取アドレス信号が第二読取ワード線上へ送信される、
プログラム可能論理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/258,024 | 1999-02-25 | ||
US09/258,024 US6150838A (en) | 1999-02-25 | 1999-02-25 | FPGA configurable logic block with multi-purpose logic/memory circuit |
PCT/US1999/021993 WO2000051239A1 (en) | 1999-02-25 | 1999-09-21 | Fpga configurable logic block with multi-purpose logic/memory circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002538652A JP2002538652A (ja) | 2002-11-12 |
JP4319786B2 true JP4319786B2 (ja) | 2009-08-26 |
Family
ID=22978780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000601740A Expired - Lifetime JP4319786B2 (ja) | 1999-02-25 | 1999-09-21 | 多目的論理/メモリ回路を具備するfpga形態特定可能論理ブロック |
Country Status (5)
Country | Link |
---|---|
US (4) | US6150838A (ja) |
EP (1) | EP1163725B1 (ja) |
JP (1) | JP4319786B2 (ja) |
DE (1) | DE69904241T2 (ja) |
WO (1) | WO2000051239A1 (ja) |
Families Citing this family (223)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3616518B2 (ja) * | 1999-02-10 | 2005-02-02 | 日本電気株式会社 | プログラマブルデバイス |
US6396302B2 (en) | 1999-02-25 | 2002-05-28 | Xilinx, Inc. | Configurable logic element with expander structures |
US6400180B2 (en) | 1999-02-25 | 2002-06-04 | Xilinix, Inc. | Configurable lookup table for programmable logic devices |
US6686767B1 (en) * | 1999-05-07 | 2004-02-03 | Morphics Technology Inc. | Apparatus and method for controlling a three-state bus |
KR100516693B1 (ko) * | 2003-04-02 | 2005-09-22 | 주식회사 하이닉스반도체 | 불휘발성 프로그래머블 로직 회로 |
US6331790B1 (en) * | 2000-03-10 | 2001-12-18 | Easic Corporation | Customizable and programmable cell array |
US6756811B2 (en) * | 2000-03-10 | 2004-06-29 | Easic Corporation | Customizable and programmable cell array |
US6373279B1 (en) * | 2000-05-05 | 2002-04-16 | Xilinx, Inc. | FPGA lookup table with dual ended writes for ram and shift register modes |
US6288937B1 (en) * | 2000-05-10 | 2001-09-11 | Lattice Semiconductor Corporation | Decoded generic routing pool |
JP3472527B2 (ja) * | 2000-05-16 | 2003-12-02 | 松下電器産業株式会社 | 論理回路モジュール及びこれを用いた半導体集積回路の設計方法並びに半導体集積回路 |
JP2002074862A (ja) * | 2000-08-25 | 2002-03-15 | Toshiba Corp | データ処理方法及び装置及び記録媒体及び再生方法及び装置 |
US6754686B1 (en) * | 2000-10-13 | 2004-06-22 | Xilinx, Inc. | Literal sharing method for fast sum-of-products logic |
US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7624204B2 (en) * | 2001-03-22 | 2009-11-24 | Nvidia Corporation | Input/output controller node in an adaptable computing environment |
US7325123B2 (en) * | 2001-03-22 | 2008-01-29 | Qst Holdings, Llc | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US7433909B2 (en) | 2002-06-25 | 2008-10-07 | Nvidia Corporation | Processing architecture for a reconfigurable arithmetic node |
US6677779B1 (en) * | 2001-03-29 | 2004-01-13 | Atheros Communications, Inc. | Flexible control interface for integrated circuit |
US6388466B1 (en) | 2001-04-27 | 2002-05-14 | Xilinx, Inc. | FPGA logic element with variable-length shift register capability |
US6970951B2 (en) * | 2001-05-04 | 2005-11-29 | Texas Instruments Incorporated | Method and device for providing and external interface using a programmed configuration bit in flash memory |
US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
US6618434B2 (en) * | 2001-05-31 | 2003-09-09 | Quicksilver Technology, Inc. | Adaptive, multimode rake receiver for dynamic search and multipath reception |
JP3613396B2 (ja) | 2001-06-25 | 2005-01-26 | 日本電気株式会社 | 機能ブロック |
US20030068038A1 (en) * | 2001-09-28 | 2003-04-10 | Bedros Hanounik | Method and apparatus for encrypting data |
US7463544B1 (en) * | 2001-10-15 | 2008-12-09 | Altera Corporation | Device programmable to operate as a multiplexer, demultiplexer, or memory device |
US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US7269615B2 (en) | 2001-12-18 | 2007-09-11 | Analog Devices, Inc. | Reconfigurable input Galois field linear transformer system |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US7283628B2 (en) * | 2001-11-30 | 2007-10-16 | Analog Devices, Inc. | Programmable data encryption engine |
US7644279B2 (en) * | 2001-12-05 | 2010-01-05 | Nvidia Corporation | Consumer product distribution in the embedded system market |
US7215701B2 (en) | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
US7508937B2 (en) * | 2001-12-18 | 2009-03-24 | Analog Devices, Inc. | Programmable data encryption engine for advanced encryption standard algorithm |
US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
US6857117B2 (en) * | 2002-01-31 | 2005-02-15 | Cadence Design Systems, Inc. | Method and apparatus for producing a circuit description of a design |
US6765408B2 (en) | 2002-02-11 | 2004-07-20 | Lattice Semiconductor Corporation | Device and method with generic logic blocks |
CN1311637C (zh) * | 2002-03-18 | 2007-04-18 | 皇家飞利浦电子股份有限公司 | 基于lut可重配置逻辑体系结构的配置存储器实现 |
US6732354B2 (en) * | 2002-04-23 | 2004-05-04 | Quicksilver Technology, Inc. | Method, system and software for programming reconfigurable hardware |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US7620678B1 (en) | 2002-06-12 | 2009-11-17 | Nvidia Corporation | Method and system for reducing the time-to-market concerns for embedded system design |
US7802108B1 (en) | 2002-07-18 | 2010-09-21 | Nvidia Corporation | Secure storage of program code for an embedded system |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
US6833730B1 (en) | 2002-08-30 | 2004-12-21 | Xilinx, Inc. | PLD configurable logic block enabling the rapid calculation of sum-of-products functions |
US7194615B2 (en) * | 2002-09-17 | 2007-03-20 | Nokia Corporation | Reconfigurable apparatus being configurable to operate in a logarithmic scale |
US7502915B2 (en) * | 2002-09-30 | 2009-03-10 | Nvidia Corporation | System and method using embedded microprocessor as a node in an adaptable computing machine |
US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
US8949576B2 (en) * | 2002-11-01 | 2015-02-03 | Nvidia Corporation | Arithmetic node including general digital signal processing functions for an adaptive computing machine |
US6813754B2 (en) * | 2002-11-05 | 2004-11-02 | Lattice Semiconductor Corporation | Placement processing for programmable logic devices |
US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
US6798240B1 (en) * | 2003-01-24 | 2004-09-28 | Altera Corporation | Logic circuitry with shared lookup table |
US6943580B2 (en) * | 2003-02-10 | 2005-09-13 | Altera Corporation | Fracturable lookup table and logic element |
US7800401B1 (en) | 2003-02-10 | 2010-09-21 | Altera Corporation | Fracturable lookup table and logic element |
US6888373B2 (en) * | 2003-02-11 | 2005-05-03 | Altera Corporation | Fracturable incomplete look up table for area efficient logic elements |
US7111273B1 (en) * | 2003-07-03 | 2006-09-19 | Xilinx, Inc. | Softpal implementation and mapping technology for FPGAs with dedicated resources |
US8296764B2 (en) | 2003-08-14 | 2012-10-23 | Nvidia Corporation | Internal synchronization control for adaptive integrated circuitry |
US7174432B2 (en) | 2003-08-19 | 2007-02-06 | Nvidia Corporation | Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture |
US7185035B1 (en) | 2003-10-23 | 2007-02-27 | Altera Corporation | Arithmetic structures for programmable logic devices |
US7565388B1 (en) | 2003-11-21 | 2009-07-21 | Altera Corporation | Logic cell supporting addition of three binary words |
US7176716B2 (en) * | 2003-12-24 | 2007-02-13 | Viciciv Technology | Look-up table structure with embedded carry logic |
US7317264B2 (en) * | 2003-11-25 | 2008-01-08 | Eaton Corporation | Method and apparatus to independently control contactors in a multiple contactor configuration |
US7019557B2 (en) * | 2003-12-24 | 2006-03-28 | Viciciv Technology | Look-up table based logic macro-cells |
US7071732B1 (en) | 2003-12-09 | 2006-07-04 | Xilinx, Inc. | Scalable complex programmable logic device with segmented interconnect resources |
US7171633B1 (en) * | 2003-12-12 | 2007-01-30 | Altera Corporation | Estimating quality during early synthesis |
US7336097B2 (en) * | 2003-12-24 | 2008-02-26 | Viciciv, Inc. | Look-up table structure with embedded carry logic |
US8504798B2 (en) | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7176713B2 (en) * | 2004-01-05 | 2007-02-13 | Viciciv Technology | Integrated circuits with RAM and ROM fabrication options |
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 |
US7193432B1 (en) | 2004-02-14 | 2007-03-20 | Herman Schmit | VPA logic circuits |
US7157933B1 (en) | 2004-02-14 | 2007-01-02 | Herman Schmit | Configurable circuits, IC's, and systems |
US7126373B1 (en) | 2004-02-14 | 2006-10-24 | Herman Schmit | Configurable logic circuits with commutative properties |
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 |
US7167025B1 (en) | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
US7193440B1 (en) | 2004-02-14 | 2007-03-20 | Herman Schmit | Configurable circuits, IC's, and systems |
US7167022B1 (en) | 2004-03-25 | 2007-01-23 | Altera Corporation | Omnibus logic element including look up table based logic elements |
US7075332B1 (en) * | 2004-06-08 | 2006-07-11 | Xilinx, Inc. | Six-input look-up table and associated memory control circuitry for use in a field programmable gate array |
US7061271B1 (en) | 2004-06-08 | 2006-06-13 | Xilinx, Inc. | Six-input look-up table for use in a field programmable gate array |
US7084664B1 (en) * | 2004-06-14 | 2006-08-01 | Alter Corporation | Integrated circuits with reduced interconnect overhead |
US7282950B1 (en) | 2004-11-08 | 2007-10-16 | Tabula, Inc. | Configurable IC's with logic resources with offset connections |
US7449915B2 (en) | 2004-06-30 | 2008-11-11 | Tabula Inc. | VPA logic circuits |
US7408382B2 (en) | 2004-06-30 | 2008-08-05 | Tabula, Inc. | Configurable circuits, IC's, and systems |
US7193438B1 (en) * | 2004-06-30 | 2007-03-20 | Andre Rohe | Configurable integrated circuit with offset connection |
US7145361B1 (en) | 2004-06-30 | 2006-12-05 | Andre Rohe | Configurable integrated circuit with different connection schemes |
US7439766B2 (en) | 2004-06-30 | 2008-10-21 | Tabula, Inc. | Configurable logic circuits with commutative properties |
US7312630B2 (en) | 2004-06-30 | 2007-12-25 | Tabula, Inc. | Configurable integrated circuit with built-in turns |
US7243329B2 (en) | 2004-07-02 | 2007-07-10 | Altera Corporation | Application-specific integrated circuit equivalents of programmable logic and associated methods |
US7084665B1 (en) | 2004-07-22 | 2006-08-01 | Altera Corporation | Distributed random access memory in a programmable logic device |
US7116131B1 (en) | 2004-09-15 | 2006-10-03 | Xilinx, Inc. | High performance programmable logic devices utilizing dynamic circuitry |
US7486110B2 (en) * | 2004-09-24 | 2009-02-03 | Stmicroelectronics Pvt. Ltd. | LUT based multiplexers |
US7301368B2 (en) * | 2005-03-15 | 2007-11-27 | Tabula, Inc. | Embedding memory within tile arrangement of a configurable IC |
US7224181B1 (en) | 2004-11-08 | 2007-05-29 | Herman Schmit | Clock distribution in a configurable IC |
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 |
US7242216B1 (en) | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
US7259587B1 (en) | 2004-11-08 | 2007-08-21 | Tabula, Inc. | Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs |
US7268586B1 (en) | 2004-11-08 | 2007-09-11 | Tabula, Inc. | Method and apparatus for accessing stored data in a reconfigurable IC |
US7573296B2 (en) | 2004-11-08 | 2009-08-11 | Tabula Inc. | Configurable IC with configurable routing resources that have asymmetric input and/or outputs |
US7917559B2 (en) | 2004-11-08 | 2011-03-29 | Tabula, Inc. | Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations |
US7342415B2 (en) | 2004-11-08 | 2008-03-11 | Tabula, Inc. | Configurable IC with interconnect circuits that also perform storage operations |
US7276933B1 (en) | 2004-11-08 | 2007-10-02 | Tabula, Inc. | Reconfigurable IC that has sections running at different looperness |
US7317331B2 (en) | 2004-11-08 | 2008-01-08 | Tabula, Inc. | Reconfigurable IC that has sections running at different reconfiguration rates |
US7743085B2 (en) | 2004-11-08 | 2010-06-22 | Tabula, Inc. | Configurable IC with large carry chains |
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 |
US7218141B2 (en) * | 2004-12-07 | 2007-05-15 | Altera Corporation | Techniques for implementing hardwired decoders in differential input circuits |
US20060200603A1 (en) * | 2005-03-01 | 2006-09-07 | Naoto Kaneko | Dynamic resource allocation for a reconfigurable IC |
US7224182B1 (en) | 2005-03-15 | 2007-05-29 | Brad Hutchings | Hybrid configurable circuit for a configurable IC |
US7310003B2 (en) | 2005-03-15 | 2007-12-18 | Tabula, Inc. | Configurable IC with interconnect circuits that have select lines driven by user signals |
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 |
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 |
US7233168B1 (en) | 2005-06-14 | 2007-06-19 | Xilinx, Inc. | Methods of setting and resetting lookup table memory cells |
US7215138B1 (en) | 2005-06-14 | 2007-05-08 | Xilinx, Inc. | Programmable lookup table with dual input and output terminals in shift register mode |
US7205790B1 (en) | 2005-06-14 | 2007-04-17 | Xilinx, Inc. | Programmable integrated circuit providing efficient implementations of wide logic functions |
US7375552B1 (en) | 2005-06-14 | 2008-05-20 | Xilinx, Inc. | Programmable logic block with dedicated and selectable lookup table outputs coupled to general interconnect structure |
US7202697B1 (en) | 2005-06-14 | 2007-04-10 | Xilinx, Inc. | Programmable logic block having improved performance when functioning in shift register mode |
US7265576B1 (en) | 2005-06-14 | 2007-09-04 | Xilinx, Inc. | Programmable lookup table with dual input and output terminals in RAM mode |
US7218139B1 (en) | 2005-06-14 | 2007-05-15 | Xilinx, Inc. | Programmable integrated circuit providing efficient implementations of arithmetic functions |
US7193433B1 (en) | 2005-06-14 | 2007-03-20 | Xilinx, Inc. | Programmable logic block having lookup table with partial output signal driving carry multiplexer |
US7804719B1 (en) | 2005-06-14 | 2010-09-28 | Xilinx, Inc. | Programmable logic block having reduced output delay during RAM write processes when programmed to function in RAM mode |
US20070081396A1 (en) * | 2005-10-06 | 2007-04-12 | Gordon Tarl S | System and method for multi-use eFuse macro |
US7818361B1 (en) | 2005-11-07 | 2010-10-19 | Tabula, Inc. | Method and apparatus for performing two's complement multiplication |
US7765249B1 (en) | 2005-11-07 | 2010-07-27 | Tabula, Inc. | Use of hybrid interconnect/logic circuits for multiplication |
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 |
US8463836B1 (en) | 2005-11-07 | 2013-06-11 | Tabula, Inc. | Performing mathematical and logical operations in multiple sub-cycles |
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 |
US7902864B1 (en) * | 2005-12-01 | 2011-03-08 | Altera Corporation | Heterogeneous labs |
US7461362B1 (en) | 2005-12-01 | 2008-12-02 | Tabula, Inc. | Replacing circuit design elements with their equivalents |
US7405462B2 (en) * | 2006-01-31 | 2008-07-29 | Hewlett-Packard Development Company, L.P. | FPGA architecture at conventional and submicron scales |
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 |
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 |
US7609085B1 (en) | 2006-03-08 | 2009-10-27 | Tabula, Inc. | Configurable integrated circuit with a 4-to-1 multiplexer |
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 |
US7812635B1 (en) * | 2006-05-08 | 2010-10-12 | Altera Corporation | Programmable logic device architecture with the ability to combine adjacent logic elements for the purpose of performing high order logic functions |
CN101496283A (zh) * | 2006-07-27 | 2009-07-29 | 松下电器产业株式会社 | 半导体集成电路、程序变换装置以及映射装置 |
US20080024165A1 (en) * | 2006-07-28 | 2008-01-31 | Raminda Udaya Madurawe | Configurable embedded multi-port memory |
US8386553B1 (en) | 2006-12-05 | 2013-02-26 | Altera Corporation | Large multiplier for programmable logic device |
US7930336B2 (en) | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
US7587697B1 (en) | 2006-12-12 | 2009-09-08 | Tabula, Inc. | System and method of mapping memory blocks in a configurable integrated circuit |
US7930666B1 (en) | 2006-12-12 | 2011-04-19 | Tabula, Inc. | System and method of providing a memory hierarchy |
US8422668B1 (en) | 2006-12-15 | 2013-04-16 | Spansion Llc | Table lookup operation on masked data |
EP2140548A4 (en) | 2007-03-20 | 2010-06-09 | Tabula Inc | CONFIGURABLE IC WITH A COUPLING AREA WITH MEMORY ELEMENTS |
US8112468B1 (en) | 2007-03-22 | 2012-02-07 | Tabula, Inc. | Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC |
US7987065B1 (en) | 2007-04-17 | 2011-07-26 | Nvidia Corporation | Automatic quality testing of multimedia rendering by software drivers |
US7970129B2 (en) * | 2007-04-19 | 2011-06-28 | Spansion Llc | Selection of a lookup table with data masked with a combination of an additive and multiplicative mask |
US7394287B1 (en) * | 2007-05-21 | 2008-07-01 | Altera Corporation | Programmable logic device having complex logic blocks with improved logic cell functionality |
EP2201569A4 (en) * | 2007-09-06 | 2011-07-13 | Tabula Inc | CONFIGURATION CONTEXT SWITCH |
US8863067B1 (en) | 2008-02-06 | 2014-10-14 | Tabula, Inc. | Sequential delay analysis by placement engines |
US8959137B1 (en) | 2008-02-20 | 2015-02-17 | Altera Corporation | Implementing large multipliers in a programmable integrated circuit device |
US8244789B1 (en) | 2008-03-14 | 2012-08-14 | Altera Corporation | Normalization of floating point operations in a programmable integrated circuit device |
US8166435B2 (en) | 2008-06-26 | 2012-04-24 | Tabula, Inc. | Timing operations in an IC with configurable circuits |
US8886696B1 (en) | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
JP5140029B2 (ja) * | 2009-03-30 | 2013-02-06 | 太陽誘電株式会社 | 半導体装置 |
US9411554B1 (en) | 2009-04-02 | 2016-08-09 | Xilinx, Inc. | Signed multiplier circuit utilizing a uniform array of logic blocks |
US9002915B1 (en) | 2009-04-02 | 2015-04-07 | Xilinx, Inc. | Circuits for shifting bussed data |
US7746106B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for enabling feedback paths in a self-timed integrated circuit |
US7746109B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for sharing self-timed logic |
US7733123B1 (en) | 2009-04-02 | 2010-06-08 | Xilinx, Inc. | Implementing conditional statements in self-timed logic circuits |
US7746102B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Bus-based logic blocks for self-timed integrated circuits |
US8706793B1 (en) | 2009-04-02 | 2014-04-22 | Xilinx, Inc. | Multiplier circuits with optional shift function |
US7746112B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Output structure with cascaded control signals for logic blocks in integrated circuits, and methods of using the same |
US7948265B1 (en) | 2009-04-02 | 2011-05-24 | Xilinx, Inc. | Circuits for replicating self-timed logic |
US8527572B1 (en) | 2009-04-02 | 2013-09-03 | Xilinx, Inc. | Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same |
US7746110B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Circuits for fanning out data in a programmable self-timed integrated circuit |
US7746105B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Merging data streams in a self-timed programmable integrated circuit |
US7746101B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Cascading input structure for logic blocks in integrated circuits |
US7746111B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Gating logic circuits in a self-timed integrated circuit |
US7746103B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Multi-mode circuit in a self-timed integrated circuit |
US7746104B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Dynamically controlled output multiplexer circuits in a programmable integrated circuit |
US7746108B1 (en) | 2009-04-02 | 2010-06-29 | Xilinx, Inc. | Compute-centric architecture for integrated circuits |
US7982496B1 (en) | 2009-04-02 | 2011-07-19 | Xilinx, Inc. | Bus-based logic blocks with optional constant input |
US8255702B1 (en) * | 2009-12-03 | 2012-08-28 | Altera Corporation | Programmable logic device with improved security |
WO2011091323A1 (en) | 2010-01-21 | 2011-07-28 | Qst Holdings, Llc | A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
JP5336398B2 (ja) * | 2010-02-01 | 2013-11-06 | ルネサスエレクトロニクス株式会社 | 半導体集積回路、半導体集積回路の構成変更方法 |
US8959251B2 (en) * | 2010-02-15 | 2015-02-17 | Alcatel Lucent | Implementation of switches in a communication network |
WO2011123151A1 (en) | 2010-04-02 | 2011-10-06 | Tabula Inc. | System and method for reducing reconfiguration power usage |
US8862650B2 (en) | 2010-06-25 | 2014-10-14 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8242806B1 (en) * | 2010-07-01 | 2012-08-14 | Altera Corporation | Methods and systems for managing a write operation |
US8402164B1 (en) | 2010-10-27 | 2013-03-19 | Xilinx, Inc. | Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit |
US9600278B1 (en) | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
WO2013071183A1 (en) | 2011-11-11 | 2013-05-16 | Tabula, Inc. | Content addressable memory in integrated circuit |
JP6377317B2 (ja) | 2012-05-30 | 2018-08-22 | 株式会社半導体エネルギー研究所 | プログラマブルロジックデバイス |
US9098332B1 (en) | 2012-06-01 | 2015-08-04 | Altera Corporation | Specialized processing block with fixed- and floating-point structures |
US8898480B2 (en) | 2012-06-20 | 2014-11-25 | Microsoft Corporation | Managing use of a field programmable gate array with reprogammable cryptographic operations |
US9424019B2 (en) | 2012-06-20 | 2016-08-23 | Microsoft Technology Licensing, Llc | Updating hardware libraries for use by applications on a computer system with an FPGA coprocessor |
US9298438B2 (en) | 2012-06-20 | 2016-03-29 | Microsoft Technology Licensing, Llc | Profiling application code to identify code portions for FPGA implementation |
US9230091B2 (en) * | 2012-06-20 | 2016-01-05 | Microsoft Technology Licensing, Llc | Managing use of a field programmable gate array with isolated components |
US8996600B1 (en) | 2012-08-03 | 2015-03-31 | Altera Corporation | Specialized processing block for implementing floating-point multiplier with subnormal operation support |
US9514259B2 (en) | 2012-11-20 | 2016-12-06 | Taiyo Yuden Co., Ltd. | Logic configuration method for reconfigurable semiconductor device |
US9207909B1 (en) | 2012-11-26 | 2015-12-08 | Altera Corporation | Polynomial calculations optimized for programmable integrated circuit device structures |
US9189200B1 (en) | 2013-03-14 | 2015-11-17 | Altera Corporation | Multiple-precision processing block in a programmable integrated circuit device |
JP6272713B2 (ja) | 2013-03-25 | 2018-01-31 | 株式会社半導体エネルギー研究所 | プログラマブルロジックデバイス及び半導体装置 |
WO2014163099A2 (ja) | 2013-04-02 | 2014-10-09 | 太陽誘電株式会社 | 再構成可能な論理デバイス |
US9348795B1 (en) | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
JP6306846B2 (ja) * | 2013-09-16 | 2018-04-04 | 太陽誘電株式会社 | 再構成可能な論理デバイス |
US9553591B2 (en) | 2013-09-20 | 2017-01-24 | Altera Corporation | Hybrid architecture for signal processing |
US9379687B1 (en) | 2014-01-14 | 2016-06-28 | Altera Corporation | Pipelined systolic finite impulse response filter |
US10268605B1 (en) | 2014-04-30 | 2019-04-23 | Altera Corporation | Hybrid architecture for signal processing and signal processing accelerator |
JP6426439B2 (ja) | 2014-11-13 | 2018-11-21 | 太陽誘電株式会社 | 再構成可能オペアンプ |
US9954533B2 (en) * | 2014-12-16 | 2018-04-24 | Samsung Electronics Co., Ltd. | DRAM-based reconfigurable logic |
US10769099B2 (en) * | 2014-12-30 | 2020-09-08 | Micron Technology, Inc. | Devices for time division multiplexing of state machine engine signals |
JP6405262B2 (ja) | 2015-02-18 | 2018-10-17 | 太陽誘電株式会社 | 再構成可能な論理デバイス |
US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
CN105515568A (zh) * | 2015-12-04 | 2016-04-20 | 深圳市同创国芯电子有限公司 | 基于flash的fpga配置控制方法、装置、flash以及fpga |
US10312918B2 (en) * | 2017-02-13 | 2019-06-04 | High Performance Data Storage And Processing Corporation | Programmable logic design |
US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
US10990290B2 (en) | 2017-05-15 | 2021-04-27 | Alibaba Group Holding Limited | High-volume, low-latency data processing in flexibly configured local heterogeneous computing environments |
US10366001B1 (en) * | 2017-09-15 | 2019-07-30 | Xilinx, Inc. | Partitioning memory blocks for reducing dynamic power consumption |
US10128851B1 (en) * | 2017-11-27 | 2018-11-13 | Intel Corporation | Techniques for programming circuits using mode decoding |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4706216A (en) | 1985-02-27 | 1987-11-10 | Xilinx, Inc. | Configurable logic element |
US5343406A (en) * | 1989-07-28 | 1994-08-30 | Xilinx, Inc. | Distributed memory architecture for a configurable logic array and method for using distributed memory |
US5633830A (en) * | 1995-11-08 | 1997-05-27 | Altera Corporation | Random access memory block circuitry for programmable logic array integrated circuit devices |
US5414377A (en) | 1992-12-21 | 1995-05-09 | Xilinx, Inc. | Logic block with look-up table for configuration and memory |
GB9303084D0 (en) * | 1993-02-16 | 1993-03-31 | Inmos Ltd | Programmable logic circuit |
US5362999A (en) * | 1993-03-18 | 1994-11-08 | Xilinx, Inc. | EPLD chip with hybrid architecture optimized for both speed and flexibility |
US5473266A (en) | 1993-04-19 | 1995-12-05 | Altera Corporation | Programmable logic device having fast programmable logic array blocks and a central global interconnect array |
US5815726A (en) | 1994-11-04 | 1998-09-29 | Altera Corporation | Coarse-grained look-up table architecture |
GB9604496D0 (en) * | 1996-03-01 | 1996-05-01 | Xilinx Inc | Embedded memory for field programmable gate array |
US6020759A (en) * | 1997-03-21 | 2000-02-01 | Altera Corporation | Programmable logic array device with random access memory configurable as product terms |
US6160419A (en) * | 1997-11-03 | 2000-12-12 | Altera Corporation | Programmable logic architecture incorporating a content addressable embedded array block |
US6144573A (en) * | 1998-06-26 | 2000-11-07 | Altera Corporation | Programmable logic devices with improved content addressable memory capabilities |
-
1999
- 1999-02-25 US US09/258,024 patent/US6150838A/en not_active Expired - Lifetime
- 1999-06-15 US US09/333,822 patent/US6208163B1/en not_active Expired - Lifetime
- 1999-09-21 EP EP99973723A patent/EP1163725B1/en not_active Expired - Lifetime
- 1999-09-21 JP JP2000601740A patent/JP4319786B2/ja not_active Expired - Lifetime
- 1999-09-21 DE DE69904241T patent/DE69904241T2/de not_active Expired - Lifetime
- 1999-09-21 WO PCT/US1999/021993 patent/WO2000051239A1/en active IP Right Grant
-
2000
- 2000-06-12 US US09/591,762 patent/US6288569B1/en not_active Expired - Lifetime
-
2001
- 2001-07-24 US US09/912,769 patent/US6501296B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO2000051239A1 (en) | 2000-08-31 |
EP1163725A1 (en) | 2001-12-19 |
US6208163B1 (en) | 2001-03-27 |
US6288569B1 (en) | 2001-09-11 |
US20010043082A1 (en) | 2001-11-22 |
US6150838A (en) | 2000-11-21 |
JP2002538652A (ja) | 2002-11-12 |
DE69904241T2 (de) | 2003-09-11 |
US6501296B2 (en) | 2002-12-31 |
EP1163725B1 (en) | 2002-11-27 |
DE69904241D1 (de) | 2003-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4319786B2 (ja) | 多目的論理/メモリ回路を具備するfpga形態特定可能論理ブロック | |
US6184712B1 (en) | FPGA configurable logic block with multi-purpose logic/memory circuit | |
US5850152A (en) | Programmable logic array integrated circuit devices | |
US6191611B1 (en) | Driver circuitry for programmable logic devices with hierarchical interconnection resources | |
US6020759A (en) | Programmable logic array device with random access memory configurable as product terms | |
EP0806836B1 (en) | Architecture and interconnect scheme for programmable logic circuits | |
US6353331B1 (en) | Complex programmable logic device with lookup table | |
US6590415B2 (en) | Methods for configuring FPGA's having variable grain components for providing time-shared access to interconnect resources | |
US20040196066A1 (en) | Architecture and interconnect scheme for programmable logic circuits | |
US6127843A (en) | Dual port SRAM memory for run time use in FPGA integrated circuits | |
EP1594228A2 (en) | Architecture and interconnect scheme for programmable logic circuits | |
US7696783B2 (en) | Logic modules for semiconductor integrated circuits | |
US7425842B2 (en) | Logic basic cell | |
US9768784B2 (en) | Transformable logic and routing structures for datapath optimization | |
Biehl | Overview of complex array-based PLDs | |
GB2333872A (en) | Programmable logic array |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060914 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081216 |
|
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: 20090428 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090529 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120605 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 4319786 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120605 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130605 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |