JPH0950367A - パラレル乗算器セルとしてのプログラマブル・ファンクション・ユニット - Google Patents
パラレル乗算器セルとしてのプログラマブル・ファンクション・ユニットInfo
- Publication number
- JPH0950367A JPH0950367A JP8192622A JP19262296A JPH0950367A JP H0950367 A JPH0950367 A JP H0950367A JP 8192622 A JP8192622 A JP 8192622A JP 19262296 A JP19262296 A JP 19262296A JP H0950367 A JPH0950367 A JP H0950367A
- Authority
- JP
- Japan
- Prior art keywords
- pfu
- line
- programmable
- function
- adder
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- 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/17704—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 the logic functions being realised by the interconnection of rows and columns
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Logic Circuits (AREA)
Abstract
(57)【要約】
【課題】 パラレル乗算器を構成するためには複数のP
FUを必要としていた。 【解決手段】 フィールド・プログラマブル・ゲート・
アレー(FPGA)は、コンフィギュレーション・ビッ
ト・ストリームに応答して様々な機能を生じるための、
入力ライン、出力ライン、ルック・アップ・テーブル
(LUT)を含む、少なくとも1つのプログラマブル・
ファンクション・ユニット(PFU)を含む。第1機能
は、第1入力ライン(112)が加算/減算制御信号
(加算/減算)を全加算器(124)に接続されたマル
チプレクサ(128)に供給する加算器/減算器であ
る。マルチプレクサはデータ・ビット(Bi )かその補
数(Bi )のどちらが全加算器に接続されるかを決定す
る。第2機能は、第1入力ライン(112)がデータ・
ビット(Yi )をANDゲートに提供する、全加算器に
接続されたANDゲートである。第2機能は、パラレル
乗算器のための基本セルを提供する。さらに、第1入力
ラインは、PFUの機能によって、一般論理機能のため
の制御ラインまたはデータ・ラインとして使われる。
FUを必要としていた。 【解決手段】 フィールド・プログラマブル・ゲート・
アレー(FPGA)は、コンフィギュレーション・ビッ
ト・ストリームに応答して様々な機能を生じるための、
入力ライン、出力ライン、ルック・アップ・テーブル
(LUT)を含む、少なくとも1つのプログラマブル・
ファンクション・ユニット(PFU)を含む。第1機能
は、第1入力ライン(112)が加算/減算制御信号
(加算/減算)を全加算器(124)に接続されたマル
チプレクサ(128)に供給する加算器/減算器であ
る。マルチプレクサはデータ・ビット(Bi )かその補
数(Bi )のどちらが全加算器に接続されるかを決定す
る。第2機能は、第1入力ライン(112)がデータ・
ビット(Yi )をANDゲートに提供する、全加算器に
接続されたANDゲートである。第2機能は、パラレル
乗算器のための基本セルを提供する。さらに、第1入力
ラインは、PFUの機能によって、一般論理機能のため
の制御ラインまたはデータ・ラインとして使われる。
Description
【0001】
【発明の属する技術分野】本発明は、一般に、プログラ
ム可能な論理デバイスに関し、詳細には、プログラマブ
ル・ファンクション・ユニットを利用するフィールド・
プログラマブル・ゲート・アレーに関する。
ム可能な論理デバイスに関し、詳細には、プログラマブ
ル・ファンクション・ユニットを利用するフィールド・
プログラマブル・ゲート・アレーに関する。
【0002】
【従来の技術】特殊用途向集積回路(ASIC)は、多
様な機能を果たすようプログラム出来るマイクロプロセ
ッサと反対に、特定の機能を果たすよう設計されてい
る。ASICの主要な利点は、通常ユニットのコストが
低く、性能が高いことである。ASICは、普通、カス
タム・標準セル、ロジックの物理的配置(PPL)、ゲ
ート・アレー、またはフィールド・プログラマブル・ゲ
ート・アレー(FGPA)といった設計手法を利用す
る、何らかの形態の相補形金属酸化膜半導体(CMO
S)技術を使って製造される。
様な機能を果たすようプログラム出来るマイクロプロセ
ッサと反対に、特定の機能を果たすよう設計されてい
る。ASICの主要な利点は、通常ユニットのコストが
低く、性能が高いことである。ASICは、普通、カス
タム・標準セル、ロジックの物理的配置(PPL)、ゲ
ート・アレー、またはフィールド・プログラマブル・ゲ
ート・アレー(FGPA)といった設計手法を利用す
る、何らかの形態の相補形金属酸化膜半導体(CMO
S)技術を使って製造される。
【0003】ゲート・アレーとFPGAは、望ましい論
理機能を達成するために、多数の方法で相互接続される
一定の組み合わせのゲート構造を含む、セミ・カスタム
・デバイスである。ゲート・アレーでは、相互接続パタ
ーンは、製造者によって、カスタマイズされた処理マス
クを使って決定される。FPGAでは、相互接続パター
ンはユーザーによって電気的にプログラムされる。
理機能を達成するために、多数の方法で相互接続される
一定の組み合わせのゲート構造を含む、セミ・カスタム
・デバイスである。ゲート・アレーでは、相互接続パタ
ーンは、製造者によって、カスタマイズされた処理マス
クを使って決定される。FPGAでは、相互接続パター
ンはユーザーによって電気的にプログラムされる。
【0004】FPGAは、一般に、プログラマブル・フ
ァンクション・ユニット(PFU)の配列を含む。PF
Uは、組み合わせ可能論理ブロック(CLB)または組
み合わせ可能論理エレメント(CLE)とも呼ばれる。
各PFUは、小さなプログラム可能な論理ブロックで、
1つかそれ以上の入力ライン、1つかそれ以上の出力ラ
イン、1つかそれ以上のラッチ、1つかそれ以上のルッ
ク・アップ・テーブル(LUT)を含むことが多い。普
通入力ラインは出力ラインより数が多く、各入力ライン
は、専用データ・ラインか専用制御ラインのどちらかで
ある。LUTは、一般組み合わせまたは制御論理、読み
だし専用メモリ(ROM)、ランダム・アクセス・メモ
リ(RAM)、入出力ライン間のデータ・パス機能を含
む、多様な機能を果たすようプログラム出来る。こうし
て、LUTは、対応するPFUが、汎用論理として機能
するのか、加算器、減算器、計数器、累算器、レジスタ
といった特殊なモードで機能するのか、またはシングル
・ポートROM、シングル・ポートRAMといったメモ
リ・セルとして機能するのかを決定する。場合によって
は、LUTは、ラッチとは比較的無関係に使うことが出
来る。FPGAは、通常100から1000個台の本質
的に同一のPFUを含む。
ァンクション・ユニット(PFU)の配列を含む。PF
Uは、組み合わせ可能論理ブロック(CLB)または組
み合わせ可能論理エレメント(CLE)とも呼ばれる。
各PFUは、小さなプログラム可能な論理ブロックで、
1つかそれ以上の入力ライン、1つかそれ以上の出力ラ
イン、1つかそれ以上のラッチ、1つかそれ以上のルッ
ク・アップ・テーブル(LUT)を含むことが多い。普
通入力ラインは出力ラインより数が多く、各入力ライン
は、専用データ・ラインか専用制御ラインのどちらかで
ある。LUTは、一般組み合わせまたは制御論理、読み
だし専用メモリ(ROM)、ランダム・アクセス・メモ
リ(RAM)、入出力ライン間のデータ・パス機能を含
む、多様な機能を果たすようプログラム出来る。こうし
て、LUTは、対応するPFUが、汎用論理として機能
するのか、加算器、減算器、計数器、累算器、レジスタ
といった特殊なモードで機能するのか、またはシングル
・ポートROM、シングル・ポートRAMといったメモ
リ・セルとして機能するのかを決定する。場合によって
は、LUTは、ラッチとは比較的無関係に使うことが出
来る。FPGAは、通常100から1000個台の本質
的に同一のPFUを含む。
【0005】FPGAはまた、PFUを取り囲むプログ
ラマブル・インターコネクション・ネットワークも含
む。インターコネクション・ネットワークは、プログラ
マブル・クロスポイント・スイッチと、様々なPFUを
選択的に接続するためのメタル・インターコネクト・セ
グメント(ルーティング・ノード)を含む。クロスポイ
ント・スイッチは、プログラマブル・インターコネクト
・ポイント(PIP)とも呼ばれる。クロスポイント・
スイッチは、信号の切り換え、増幅、アイソレーション
を提供する。メタル・インターコネクト・セグメント
は、FPGAの水平・垂直軸について対称に配置され
る。
ラマブル・インターコネクション・ネットワークも含
む。インターコネクション・ネットワークは、プログラ
マブル・クロスポイント・スイッチと、様々なPFUを
選択的に接続するためのメタル・インターコネクト・セ
グメント(ルーティング・ノード)を含む。クロスポイ
ント・スイッチは、プログラマブル・インターコネクト
・ポイント(PIP)とも呼ばれる。クロスポイント・
スイッチは、信号の切り換え、増幅、アイソレーション
を提供する。メタル・インターコネクト・セグメント
は、FPGAの水平・垂直軸について対称に配置され
る。
【0006】FPGAの機能は、PFUとインターコネ
クション・ネットワークの組み合わせプログラミングに
よって決定される。ユーザーは、この組み合わせプログ
ラミングを達成するために、電源が入った、またはシス
テムが制御された状態で、コンフィギュレーション・ビ
ット・ストリームをFGPAにロードすることによっ
て、FGPAの機能を決定する。コンフィギュレーショ
ン・ビット・ストリームの様々なビットは、FPGAの
内部コンフィギュレーションRAMに記憶される。コン
フィギュレーションRAMは、LUTとクロスポイント
・スイッチに接続される。従って、コンフィギュレーシ
ョン・ビット・ストリームは、各PFUの固有の機能は
もとより、様々なPFUの入出力ライン間の相互接続、
外部ボンディング・パッド、その他のFPGA内の回路
を決定する。コンフィギュレーション・ビット・ストリ
ームは、最初電気的消去可能なプログラマブルROM
(EEPROM)、基盤上のROMなどの、FPGAの
外部にある何らかの記憶媒体に常駐している。
クション・ネットワークの組み合わせプログラミングに
よって決定される。ユーザーは、この組み合わせプログ
ラミングを達成するために、電源が入った、またはシス
テムが制御された状態で、コンフィギュレーション・ビ
ット・ストリームをFGPAにロードすることによっ
て、FGPAの機能を決定する。コンフィギュレーショ
ン・ビット・ストリームの様々なビットは、FPGAの
内部コンフィギュレーションRAMに記憶される。コン
フィギュレーションRAMは、LUTとクロスポイント
・スイッチに接続される。従って、コンフィギュレーシ
ョン・ビット・ストリームは、各PFUの固有の機能は
もとより、様々なPFUの入出力ライン間の相互接続、
外部ボンディング・パッド、その他のFPGA内の回路
を決定する。コンフィギュレーション・ビット・ストリ
ームは、最初電気的消去可能なプログラマブルROM
(EEPROM)、基盤上のROMなどの、FPGAの
外部にある何らかの記憶媒体に常駐している。
【0007】FPGAはまた、プログラマブル論理セル
(PLC)とプログラマブル入出力セル(PIC)に関
しても定義される。PLCは、PFU、様々なコンフィ
ギュレーションRAM、PFUを接続するインターコネ
クト・ネットワークの一部を含む。これにより、様々な
論理機能がPLCで行われる。PICは、デバイスの周
辺、PLCの外部に位置する。PICは、入出力バッフ
ァ、様々なコンフィギュレーションRAM、ボンディン
グ・パッドを接続するインターコネクト・ネットワーク
の一部を含む。各PICは、例えば、4つのボンディン
グ・パッドとのインタフェースのための4つのバッファ
を含む。各バッファは、入力、出力、または双方向入出
力として構成される。各バッファはまた、TTLまたは
CMOS互換としても構成される。
(PLC)とプログラマブル入出力セル(PIC)に関
しても定義される。PLCは、PFU、様々なコンフィ
ギュレーションRAM、PFUを接続するインターコネ
クト・ネットワークの一部を含む。これにより、様々な
論理機能がPLCで行われる。PICは、デバイスの周
辺、PLCの外部に位置する。PICは、入出力バッフ
ァ、様々なコンフィギュレーションRAM、ボンディン
グ・パッドを接続するインターコネクト・ネットワーク
の一部を含む。各PICは、例えば、4つのボンディン
グ・パッドとのインタフェースのための4つのバッファ
を含む。各バッファは、入力、出力、または双方向入出
力として構成される。各バッファはまた、TTLまたは
CMOS互換としても構成される。
【0008】FPGAはさらに、米国特許第5、38
6、156号、5、384、497号、4、870、3
02号、再発行番号第34、363号、ヨーロッパ特許
明細書第0 177 261 B1号公報で説明されて
いるが、これらは全て、参照によって本明細書に組み込
まれている。
6、156号、5、384、497号、4、870、3
02号、再発行番号第34、363号、ヨーロッパ特許
明細書第0 177 261 B1号公報で説明されて
いるが、これらは全て、参照によって本明細書に組み込
まれている。
【0009】二進乗算は、FPGAで実現出来る多くの
論理機能の1つである。二進法では、被乗数は、乗数の
各ビットによって乗算され、積を生じる。乗数のビット
が「1」である場合、被乗数は適当にシフトされた位置
に入力される。乗数のビットが「0」である場合、
「0」が入力される。適当にシフトされた被乗数が加え
られ、積を生じる。
論理機能の1つである。二進法では、被乗数は、乗数の
各ビットによって乗算され、積を生じる。乗数のビット
が「1」である場合、被乗数は適当にシフトされた位置
に入力される。乗数のビットが「0」である場合、
「0」が入力される。適当にシフトされた被乗数が加え
られ、積を生じる。
【0010】パラレル乗算器(アレー乗算器とも呼ばれ
る)が、二進乗算を行うために使われる。図1、図2を
参照すると、従来のパラレル乗算器2は、通常セル4の
二次元論理アレーを含む。Mビットの被乗数の、Nビッ
トの乗数による乗算は、MセルのN列に配置されたM×
Nセルによって達成される。列は、すぐ上の列に対し
て、セル1つ分左にシフトされ、被乗数は、対角線の信
号路によって、列毎にセル1つ分左にシフトされる。パ
ラレル乗算器の「基本セル」は、ここで使われるよう
に、全加算器8に接続されたANDゲート6を含む。A
NDゲートは、被乗数の1ビットと乗数の1ビットを受
け取り、これらのビットの積を生じる。ANDゲートの
出力は全加算器の入力に接続される。
る)が、二進乗算を行うために使われる。図1、図2を
参照すると、従来のパラレル乗算器2は、通常セル4の
二次元論理アレーを含む。Mビットの被乗数の、Nビッ
トの乗数による乗算は、MセルのN列に配置されたM×
Nセルによって達成される。列は、すぐ上の列に対し
て、セル1つ分左にシフトされ、被乗数は、対角線の信
号路によって、列毎にセル1つ分左にシフトされる。パ
ラレル乗算器の「基本セル」は、ここで使われるよう
に、全加算器8に接続されたANDゲート6を含む。A
NDゲートは、被乗数の1ビットと乗数の1ビットを受
け取り、これらのビットの積を生じる。ANDゲートの
出力は全加算器の入力に接続される。
【0011】全加算器は、ANDゲートからのビットの
積をキャリー・イン・ビットと入力部分積ビットに加算
し、総和ビットとキャリー・アウト・ビットを生じる。
従って、ANDゲートは、その列の乗数ビットの値に基
づいて、被乗数ビットが入力部分積ビットに加えられる
かどうかを決定する。その列の乗数ビットが「1」の場
合、アレーは、(適当にシフトされた)被乗数を、入力
部分積に加え、出力部分積を発生する。その列の乗数ビ
ットが「0」の場合、入力部分積は変更されずに垂直に
下に通過する。基本セルを利用するパラレル乗算器は、
技術上良く知られている。例えば、参照されることによ
って本明細書に組み込まれている、Hamacher
他、”Computer Organizatio
n”、McGraw−Hill社刊、1978年、19
4〜195ページを参照されたい。
積をキャリー・イン・ビットと入力部分積ビットに加算
し、総和ビットとキャリー・アウト・ビットを生じる。
従って、ANDゲートは、その列の乗数ビットの値に基
づいて、被乗数ビットが入力部分積ビットに加えられる
かどうかを決定する。その列の乗数ビットが「1」の場
合、アレーは、(適当にシフトされた)被乗数を、入力
部分積に加え、出力部分積を発生する。その列の乗数ビ
ットが「0」の場合、入力部分積は変更されずに垂直に
下に通過する。基本セルを利用するパラレル乗算器は、
技術上良く知られている。例えば、参照されることによ
って本明細書に組み込まれている、Hamacher
他、”Computer Organizatio
n”、McGraw−Hill社刊、1978年、19
4〜195ページを参照されたい。
【0012】パラレル乗算器のための多くのスキームが
存在する。パラレル乗算器の全てのセルが、必ずしも基
本セルである必要はない。例えば、各列の一番右側のセ
ルは、全加算器の代わりに、キャリー・イン・ビットを
受け取らない半加算器であっても良い。または、上の列
のセルは、全加算器の代わりに、部分積ビットを受け取
らない半加算器であっても良い。それにもかかわらず、
多くの数のセルでないにしても、普通少なくとも1つの
セルは、基本セルである。さらに、パラレル乗算器は、
一番右側のセルのキャリー・イン・ビットを「0」に、
上の列の部分積ビットを「0」に設定して、全てのセル
に基本セルを使っても良い。
存在する。パラレル乗算器の全てのセルが、必ずしも基
本セルである必要はない。例えば、各列の一番右側のセ
ルは、全加算器の代わりに、キャリー・イン・ビットを
受け取らない半加算器であっても良い。または、上の列
のセルは、全加算器の代わりに、部分積ビットを受け取
らない半加算器であっても良い。それにもかかわらず、
多くの数のセルでないにしても、普通少なくとも1つの
セルは、基本セルである。さらに、パラレル乗算器は、
一番右側のセルのキャリー・イン・ビットを「0」に、
上の列の部分積ビットを「0」に設定して、全てのセル
に基本セルを使っても良い。
【0013】
【発明が解決しようとする課題】従来のFPGAの主な
欠点は、個々のPFUが普通パラレル乗算器の基本セル
を提供出来ないことである。その結果、基本セルを実現
するためには、普通2つのPFUが必要とされ、1つの
PFUがANDゲートとして機能し、もう1つのPFU
が全加算器として機能する。追加のPFUを必要とする
ために、多数の欠点が生じる。第1に、ハードウェアと
チップの領域への要求が増大する。第2に、動作中の時
間遅延が追加される。例えば、PFU間の信号は、イン
ターコネクション・ネットワークのn形FETクロスポ
イント・スイッチで、ソース・ゲート間、ドレイン・ゲ
ート間の静電容量によって、遅延されることが多い。従
って、パラレル乗算器を有効に実現するFPGAが必要
である。
欠点は、個々のPFUが普通パラレル乗算器の基本セル
を提供出来ないことである。その結果、基本セルを実現
するためには、普通2つのPFUが必要とされ、1つの
PFUがANDゲートとして機能し、もう1つのPFU
が全加算器として機能する。追加のPFUを必要とする
ために、多数の欠点が生じる。第1に、ハードウェアと
チップの領域への要求が増大する。第2に、動作中の時
間遅延が追加される。例えば、PFU間の信号は、イン
ターコネクション・ネットワークのn形FETクロスポ
イント・スイッチで、ソース・ゲート間、ドレイン・ゲ
ート間の静電容量によって、遅延されることが多い。従
って、パラレル乗算器を有効に実現するFPGAが必要
である。
【0014】
【課題を解決するための手段】本発明の主要な態様は、
単一のPFUがパラレル乗算器の基本セルとして機能す
るようプログラム可能なFPGAである。本発明の一態
様に従って、単一のPFUは、入力ライン、出力ライ
ン、コンフィギュレーション・ビット・ストリームに応
答して様々な機能を生成するためのLUTを含む。第1
の機能は、第1入力ラインが、全加算器に接続された乗
算器に加算/減算制御信号を供給する加算器/減算器で
ある。この乗算器は、データ・ビットまたはその補数が
全加算器に適用されるかどうかを決定する。第2の機能
は、第1入力ラインがデータ・ビットをANDゲートに
供給する全加算器に接続された、ANDゲートである。
この第2の機能は、パラレル乗算器に基本セルを提供す
る。
単一のPFUがパラレル乗算器の基本セルとして機能す
るようプログラム可能なFPGAである。本発明の一態
様に従って、単一のPFUは、入力ライン、出力ライ
ン、コンフィギュレーション・ビット・ストリームに応
答して様々な機能を生成するためのLUTを含む。第1
の機能は、第1入力ラインが、全加算器に接続された乗
算器に加算/減算制御信号を供給する加算器/減算器で
ある。この乗算器は、データ・ビットまたはその補数が
全加算器に適用されるかどうかを決定する。第2の機能
は、第1入力ラインがデータ・ビットをANDゲートに
供給する全加算器に接続された、ANDゲートである。
この第2の機能は、パラレル乗算器に基本セルを提供す
る。
【0015】パラレル乗算器の基本セルによって表され
る、本発明のより一般的な態様に従って、PFUの第1
入力ラインは、PFUの機能次第で、一般論理機能のた
めの制御ラインまたはデータ・ラインとして使われる。
る、本発明のより一般的な態様に従って、PFUの第1
入力ラインは、PFUの機能次第で、一般論理機能のた
めの制御ラインまたはデータ・ラインとして使われる。
【0016】
【発明の実施の形態】図3を参照すると、加算器/減算
器として機能する(すなわち、加算器であるか減算器で
あるかは、加算/減算制御信号の状態に依存する)従来
技術のPFUの略図が示される。PFU10は、加算、
減算、加算/減算、カウント・アップ、カウント・ダウ
ン、カウント・アップダウンといった6つの特殊なモー
ドの機能をサポートする。これらの機能は、ASMOD
E、COUNTMODE、SUBMODEといった3つ
のコンフィギュレーションRAM(図示せず)を通じて
選択出来る。コンフィギュレーション・ビット・ストリ
ームの一部は、コンフィギュレーションRAMの内容を
決定し、6つの特殊なモードの機能の中のいずれか1つ
を選択する。ここでは説明のために、加算/減算機能
が、コンフィギュレーション・ビット・ストリームによ
って選択される。
器として機能する(すなわち、加算器であるか減算器で
あるかは、加算/減算制御信号の状態に依存する)従来
技術のPFUの略図が示される。PFU10は、加算、
減算、加算/減算、カウント・アップ、カウント・ダウ
ン、カウント・アップダウンといった6つの特殊なモー
ドの機能をサポートする。これらの機能は、ASMOD
E、COUNTMODE、SUBMODEといった3つ
のコンフィギュレーションRAM(図示せず)を通じて
選択出来る。コンフィギュレーション・ビット・ストリ
ームの一部は、コンフィギュレーションRAMの内容を
決定し、6つの特殊なモードの機能の中のいずれか1つ
を選択する。ここでは説明のために、加算/減算機能
が、コンフィギュレーション・ビット・ストリームによ
って選択される。
【0017】PFU10は、入力ライン12、14、1
6、18、出力ライン20、22を含む。コンフィギュ
レーション・ビット・ストリームは、PFU10を加算
/減算モードに置く。入力ライン12は、PFUが加算
器として機能するか減算器として機能するかを選択する
ための加算/減算制御信号を受け取る。入力ライン14
はキャリー・イン・ビットを受け取る。入力ライン16
はデータ信号Aからデータ・ビットAi を受け取り、入
力ライン18はデータ信号Bからデータ・ビットBi を
受け取る。全加算器24は、入力ライン14、入力ライ
ン16、内部ライン26の信号を加算し、出力ライン2
0に総和ビットを、出力ライン22にキャリー・アウト
・ビットをそれぞれ生じる。全加算器のための制御論理
と組み合わせ論理は、技術上良く知られている。例え
ば、Hamacher他、前掲書、184〜185ペー
ジを参照されたい。
6、18、出力ライン20、22を含む。コンフィギュ
レーション・ビット・ストリームは、PFU10を加算
/減算モードに置く。入力ライン12は、PFUが加算
器として機能するか減算器として機能するかを選択する
ための加算/減算制御信号を受け取る。入力ライン14
はキャリー・イン・ビットを受け取る。入力ライン16
はデータ信号Aからデータ・ビットAi を受け取り、入
力ライン18はデータ信号Bからデータ・ビットBi を
受け取る。全加算器24は、入力ライン14、入力ライ
ン16、内部ライン26の信号を加算し、出力ライン2
0に総和ビットを、出力ライン22にキャリー・アウト
・ビットをそれぞれ生じる。全加算器のための制御論理
と組み合わせ論理は、技術上良く知られている。例え
ば、Hamacher他、前掲書、184〜185ペー
ジを参照されたい。
【0018】PFU10が加算器として機能する場合、
全加算器24はAi をBi に加算する。PFU10が減
算器として機能する場合、全加算器24はAi をBi の
補数に加算することによって、Ai からBi を減じる。
マルチプレクサ28はBi またはその補数を、内部ライ
ン26を通じて全加算器24に接続する。特に、加算操
作は、加算/減算制御信号をハイに設定することによっ
て選択され、減算操作は、加算/減算制御信号をローに
設定することによって選択される。加算/減算制御信号
がハイの時、トランジスタ30はオンに切り替わり、ラ
イン18にあるBi を全加算器24に接続された内部ラ
イン26に接続する。
全加算器24はAi をBi に加算する。PFU10が減
算器として機能する場合、全加算器24はAi をBi の
補数に加算することによって、Ai からBi を減じる。
マルチプレクサ28はBi またはその補数を、内部ライ
ン26を通じて全加算器24に接続する。特に、加算操
作は、加算/減算制御信号をハイに設定することによっ
て選択され、減算操作は、加算/減算制御信号をローに
設定することによって選択される。加算/減算制御信号
がハイの時、トランジスタ30はオンに切り替わり、ラ
イン18にあるBi を全加算器24に接続された内部ラ
イン26に接続する。
【0019】さらに、トランジスタ32は、インバータ
34によってオフに切り替わる。加算/減算制御信号が
ローの時、トランジスタ30はオフに切り替わり、イン
バータ34はトランジスタ32をオンに切り換える。そ
の結果、トランジスタ32は、インバータ36によって
発生したBi の補数を、全加算器24に接続された内部
ライン26に接続する。全加算器24とマルチプレクサ
26は、PFU10の中の4入力、2出力LUT(図示
せず)によって実現される。
34によってオフに切り替わる。加算/減算制御信号が
ローの時、トランジスタ30はオフに切り替わり、イン
バータ34はトランジスタ32をオンに切り換える。そ
の結果、トランジスタ32は、インバータ36によって
発生したBi の補数を、全加算器24に接続された内部
ライン26に接続する。全加算器24とマルチプレクサ
26は、PFU10の中の4入力、2出力LUT(図示
せず)によって実現される。
【0020】あいにく、PFU10は、全加算器24に
接続されたANDゲートを持たないために、パラレル乗
算器の基本セルとして機能することが出来ない。PFU
10の各入力ラインは制御またはデータのどちらか専用
であることにも留意されたい。すなわち、PFU10に
よって行われるどんな機能についても、入力ライン12
は専用制御ラインであり、入力ライン14、16、18
は専用データ・ラインである。
接続されたANDゲートを持たないために、パラレル乗
算器の基本セルとして機能することが出来ない。PFU
10の各入力ラインは制御またはデータのどちらか専用
であることにも留意されたい。すなわち、PFU10に
よって行われるどんな機能についても、入力ライン12
は専用制御ラインであり、入力ライン14、16、18
は専用データ・ラインである。
【0021】図4を参照すると、本発明の実施例による
PFUの略図が示される。PFU110は、半導体チッ
プである集積回路として製造されたFPGAの一部でも
ある。PFU110は、PFU10の基本的な特徴と共
に、主要な付加的な特徴を含む。図示されるように、P
FU110は、入力ライン112、114、116、1
18、出力ライン120、122、全加算器124を含
む。PFU110はまた、論理ブロック128を含む
が、この論理ブロックは、マルチプレクサ28にはない
付加的な回路を含む。全加算器124と論理ブロック1
28は、PFU110の中のLUT(図示せず)によっ
て実現される。さらに、PFU110は、PFU110
を実現するFPGA(好適には、PLC)の中でコンフ
ィギュレーションRAMセル138に接続される。
PFUの略図が示される。PFU110は、半導体チッ
プである集積回路として製造されたFPGAの一部でも
ある。PFU110は、PFU10の基本的な特徴と共
に、主要な付加的な特徴を含む。図示されるように、P
FU110は、入力ライン112、114、116、1
18、出力ライン120、122、全加算器124を含
む。PFU110はまた、論理ブロック128を含む
が、この論理ブロックは、マルチプレクサ28にはない
付加的な回路を含む。全加算器124と論理ブロック1
28は、PFU110の中のLUT(図示せず)によっ
て実現される。さらに、PFU110は、PFU110
を実現するFPGA(好適には、PLC)の中でコンフ
ィギュレーションRAMセル138に接続される。
【0022】RAMセル138は、FPGAに適用され
るコンフィギュレーション・ビット・ストリームから特
定のビットを受け取る。RAMセル138に記憶された
特定のビットは、「0」(ローを示す)か「1」(ハイ
を示す)である。RAMセル138の特定のビットの論
理状態はPFU10が加算器/減算器として機能する
か、パラレル乗算器の基本セルとして機能するかを決定
する。図4では、特定のビット「0」に関連する入力信
号は括弧なしで示され、特定のビット「1」に関連する
入力信号は括弧付きで示される。例えば、特定のビット
が「0」の時、入力ライン116で受け取られる信号は
Ai であり、特定のビットが「1」の時、入力ライン1
16で受け取られる信号は括弧のついたPPi として示
される。PFU110によって出力ライン120、12
2に生成される出力信号は、特定のビットが「0」の時
も「1」の時も、それぞれ総和ビットとキャリー・アウ
ト・ビットである。
るコンフィギュレーション・ビット・ストリームから特
定のビットを受け取る。RAMセル138に記憶された
特定のビットは、「0」(ローを示す)か「1」(ハイ
を示す)である。RAMセル138の特定のビットの論
理状態はPFU10が加算器/減算器として機能する
か、パラレル乗算器の基本セルとして機能するかを決定
する。図4では、特定のビット「0」に関連する入力信
号は括弧なしで示され、特定のビット「1」に関連する
入力信号は括弧付きで示される。例えば、特定のビット
が「0」の時、入力ライン116で受け取られる信号は
Ai であり、特定のビットが「1」の時、入力ライン1
16で受け取られる信号は括弧のついたPPi として示
される。PFU110によって出力ライン120、12
2に生成される出力信号は、特定のビットが「0」の時
も「1」の時も、それぞれ総和ビットとキャリー・アウ
ト・ビットである。
【0023】RAMセル138で特定のビットが「0」
に設定されている時、PFU110は、PFU10と同
様の方法で加算器/減算器として機能する。RAMセル
138の「0」は、インバータ140の入力と、トラン
ジスタ144のゲートにロー信号を送る。このため、ト
ランジスタ144はオフに切り替わり、トランジスタ1
42はオンに切り替わる。その結果、ライン112の加
算/減算制御信号がハイの時、トランジスタ130はオ
ンに切り替わり、ライン118のBi を全加算器124
に接続された内部ライン126に接続する。さらに、ト
ランジスタ132はインバータ134によってオフに切
り替わる。加算/減算制御信号がローの時、トランジス
タ130はオフに切り替わり、インバータ134はトラ
ンジスタ132をオンに切り替えて、インバータ136
によって生じたBi の補数を、内部ライン126を通じ
て全加算器124に接続する。
に設定されている時、PFU110は、PFU10と同
様の方法で加算器/減算器として機能する。RAMセル
138の「0」は、インバータ140の入力と、トラン
ジスタ144のゲートにロー信号を送る。このため、ト
ランジスタ144はオフに切り替わり、トランジスタ1
42はオンに切り替わる。その結果、ライン112の加
算/減算制御信号がハイの時、トランジスタ130はオ
ンに切り替わり、ライン118のBi を全加算器124
に接続された内部ライン126に接続する。さらに、ト
ランジスタ132はインバータ134によってオフに切
り替わる。加算/減算制御信号がローの時、トランジス
タ130はオフに切り替わり、インバータ134はトラ
ンジスタ132をオンに切り替えて、インバータ136
によって生じたBi の補数を、内部ライン126を通じ
て全加算器124に接続する。
【0024】RAMセル138の特定のビットが「1」
に設定されている時、PFU110は、パラレル乗算器
の基本セルとして機能する。特に、論理ブロック128
は、内部ライン126によって全加算器124に接続さ
れたANDゲートとして機能する。このモードでは、入
力ライン118は、被乗数データ信号XのビットXiに
接続され、入力ライン112は、乗数データ信号Yのビ
ットYi に接続され、入力ライン116は、適用される
部分積のビットPPi に接続される。入力ライン112
は、ここでは加算/減算制御信号の代わりに、データ信
号を受け取ることに留意されたい。
に設定されている時、PFU110は、パラレル乗算器
の基本セルとして機能する。特に、論理ブロック128
は、内部ライン126によって全加算器124に接続さ
れたANDゲートとして機能する。このモードでは、入
力ライン118は、被乗数データ信号XのビットXiに
接続され、入力ライン112は、乗数データ信号Yのビ
ットYi に接続され、入力ライン116は、適用される
部分積のビットPPi に接続される。入力ライン112
は、ここでは加算/減算制御信号の代わりに、データ信
号を受け取ることに留意されたい。
【0025】従って、RAMセル138の特定のビット
が「1」に設定されている時、論理ブロック128はビ
ットXi 、Yi に関するAND機能を行う。RAMセル
138の「1」は、インバータ140の入力とトランジ
スタ144のゲートにハイ信号を供給する。このため、
トランジスタ144はオンに切り替わり、トランジスタ
142はオフに切り替わる。トランジスタ142がオフ
に切り替わっているので、インバータ136の出力はラ
イン126に接続されない。Xi 、Yi が共にローの場
合、トランジスタ130はオフに、トランジスタ132
はオンにそれぞれ切り替わり、トランジスタ144はラ
イン112のロー信号をノード146に接続し、トラン
ジスタ132はノード146のロー信号をライン126
に接続する。Xi がローでYi がハイの場合、トランジ
スタ130はオンに、トランジスタ132はオフにそれ
ぞれ切り替わり、トランジスタ132はノード146と
ライン126の接続を絶ち、トランジスタ130はライ
ン118のロー信号をライン126に接続する。
が「1」に設定されている時、論理ブロック128はビ
ットXi 、Yi に関するAND機能を行う。RAMセル
138の「1」は、インバータ140の入力とトランジ
スタ144のゲートにハイ信号を供給する。このため、
トランジスタ144はオンに切り替わり、トランジスタ
142はオフに切り替わる。トランジスタ142がオフ
に切り替わっているので、インバータ136の出力はラ
イン126に接続されない。Xi 、Yi が共にローの場
合、トランジスタ130はオフに、トランジスタ132
はオンにそれぞれ切り替わり、トランジスタ144はラ
イン112のロー信号をノード146に接続し、トラン
ジスタ132はノード146のロー信号をライン126
に接続する。Xi がローでYi がハイの場合、トランジ
スタ130はオンに、トランジスタ132はオフにそれ
ぞれ切り替わり、トランジスタ132はノード146と
ライン126の接続を絶ち、トランジスタ130はライ
ン118のロー信号をライン126に接続する。
【0026】Xi がハイでYi がローの場合、トランジ
スタ130はオフに、トランジスタ132はオンにそれ
ぞれ切り替わり、トランジスタ130はライン118と
ライン126の接続を絶ち、トランジスタ144はライ
ン112のロー信号をノード146に接続し、トランジ
スタ132は、ノード146のロー信号をライン126
に接続する。最後に、Xi とYi が共にハイの場合、ト
ランジスタ130はオンに、トランジスタ132はオフ
にそれぞれ切り替わり、トランジスタ130はライン1
18のハイ信号をライン126に接続する。従って、論
理ブロック128はANDゲートを実現し、Xi Yi の
積を全加算器124に接続する。
スタ130はオフに、トランジスタ132はオンにそれ
ぞれ切り替わり、トランジスタ130はライン118と
ライン126の接続を絶ち、トランジスタ144はライ
ン112のロー信号をノード146に接続し、トランジ
スタ132は、ノード146のロー信号をライン126
に接続する。最後に、Xi とYi が共にハイの場合、ト
ランジスタ130はオンに、トランジスタ132はオフ
にそれぞれ切り替わり、トランジスタ130はライン1
18のハイ信号をライン126に接続する。従って、論
理ブロック128はANDゲートを実現し、Xi Yi の
積を全加算器124に接続する。
【0027】本発明の教えるところによって、PFU1
0は、比較的わずかなハードウェアの追加によってPF
U110にグレードアップ出来る。例えば、数千個のF
ETを含むPFU10は、わずか約14個のFETを追
加するだけでPFU110にグレードアップ出来る。こ
のために増加するFETの数は比較的少数である。さら
に、PFU110によって、FPGAは、チップの領域
を大きく減少させ(約50%程度)、パラレル乗算の間
の時間遅延を大きく減少させたパラレル乗算器を提供出
来る。その結果、PFU110は、FPGAにおいて、
高度に有効なパラレル乗算器を実現する。
0は、比較的わずかなハードウェアの追加によってPF
U110にグレードアップ出来る。例えば、数千個のF
ETを含むPFU10は、わずか約14個のFETを追
加するだけでPFU110にグレードアップ出来る。こ
のために増加するFETの数は比較的少数である。さら
に、PFU110によって、FPGAは、チップの領域
を大きく減少させ(約50%程度)、パラレル乗算の間
の時間遅延を大きく減少させたパラレル乗算器を提供出
来る。その結果、PFU110は、FPGAにおいて、
高度に有効なパラレル乗算器を実現する。
【0028】本発明の他のバリエーションは、本技術に
熟練した者には明らかであろう。例えば、異なったPF
Uの機能がコンフィギュレーション・ビット・ストリー
ムによって選択される時、PFUの1つかそれ以上の入
力ラインまたは出力ラインが、制御信号、データ信号両
方のために個々に使われる。データ信号X、Yは、被乗
数と乗数に関して切り替えられ、PFU110は、パラ
レル乗算器のいずれかの単一のセル(すなわち、ビット
X2 、Y2 用、ビットX1 、Y4 用等)を提供出来る。
RAMセル138は、コンフィギュレーション・ビット
・ストリームから特定のビットを受け取る個別のセルと
して示されるが、上記で言及したコンフィギュレーショ
ンRAMは復号化され、RAMセル138によって供給
される機能選択論理信号を供給することが理解される。
熟練した者には明らかであろう。例えば、異なったPF
Uの機能がコンフィギュレーション・ビット・ストリー
ムによって選択される時、PFUの1つかそれ以上の入
力ラインまたは出力ラインが、制御信号、データ信号両
方のために個々に使われる。データ信号X、Yは、被乗
数と乗数に関して切り替えられ、PFU110は、パラ
レル乗算器のいずれかの単一のセル(すなわち、ビット
X2 、Y2 用、ビットX1 、Y4 用等)を提供出来る。
RAMセル138は、コンフィギュレーション・ビット
・ストリームから特定のビットを受け取る個別のセルと
して示されるが、上記で言及したコンフィギュレーショ
ンRAMは復号化され、RAMセル138によって供給
される機能選択論理信号を供給することが理解される。
【0029】LUT以外のプログラム可能な構成要素が
使われる。さらに、所与のFPGAはPFU10とPF
U110の両方を含む。第1、第2コンフィギュレーシ
ョン・ビット・ストリームが順次適用される場合、PF
U110は、初め加算器/減算器として機能し、次いで
パラレル乗算器の基本セルとして機能する。さらに、第
1のPFUが加算器/減算器として機能し、第2のPF
Uが基本セルとして機能するように、第1、第2PFU
をプログラムすることもある。第1、第2PFUに適用
されるコンフィギュレーション・ビット・ストリームの
一部は、1ビットの量だけ異なっている。FPGAのM
×N PFUを使ってMビットの被乗数にNビットの乗
数を掛けるためのM×Nセル・パラレル乗算器を作る方
法は、上記から明らかである。
使われる。さらに、所与のFPGAはPFU10とPF
U110の両方を含む。第1、第2コンフィギュレーシ
ョン・ビット・ストリームが順次適用される場合、PF
U110は、初め加算器/減算器として機能し、次いで
パラレル乗算器の基本セルとして機能する。さらに、第
1のPFUが加算器/減算器として機能し、第2のPF
Uが基本セルとして機能するように、第1、第2PFU
をプログラムすることもある。第1、第2PFUに適用
されるコンフィギュレーション・ビット・ストリームの
一部は、1ビットの量だけ異なっている。FPGAのM
×N PFUを使ってMビットの被乗数にNビットの乗
数を掛けるためのM×Nセル・パラレル乗算器を作る方
法は、上記から明らかである。
【0030】本発明の好適な実施例を説明したが、本技
術に熟練した者には、その概念を包含する他の実施例が
使われることが今や明らかであろう。従って、本発明は
開示された実施例に制限されず、添付の請求項の精神と
範囲によってのみ制限される。
術に熟練した者には、その概念を包含する他の実施例が
使われることが今や明らかであろう。従って、本発明は
開示された実施例に制限されず、添付の請求項の精神と
範囲によってのみ制限される。
【図1】従来のパラレル乗算器を表す略図である。
【図2】図1のパラレル乗算器の中の従来のセルを表す
略図である。
略図である。
【図3】加算器/減算器として機能する従来の技術のP
FUを表す略図である。
FUを表す略図である。
【図4】本発明の実施例に従って、パラレル乗算器のた
めの基本セルとして機能するPFUを表す略図である。
めの基本セルとして機能するPFUを表す略図である。
Claims (8)
- 【請求項1】 プログラマブル・ファンクション・ユニ
ット(PFU)を含むフィールド・プログラマブル・ゲ
ート・アレー(FPGA)を含む集積回路であって、P
FUが、 入力ライン(112)と、 出力ライン(120)と、 第1機能が生成される時、入力ライン(112)がプロ
グラム可能な構成要素への制御ラインを提供し、第2機
能が生成される時、入力ラインがプログラム可能な構成
要素へのデータ・ラインを提供する、コンフィギュレー
ション・ビット(138)・ストリームに応答して少な
くとも第1、第2機能を生成するためのプログラム可能
な構成要素(128)とを含む、集積回路。 - 【請求項2】 プログラム可能な構成要素がルック・ア
ップ・テーブルである、請求項1に記載の集積回路。 - 【請求項3】 第1、第2機能が個別の論理機能であ
る、請求項1に記載の集積回路。 - 【請求項4】 第1機能が、加算器/減算器であり、制
御ライン(112)が、プログラム可能な構成要素に、
加算と減算を選択するための制御信号(加算/減算)を
供給し、 第2機能が、加算器(124)に接続されたANDゲー
トであり、データ・ライン(112)がプログラム可能
な構成要素にデータ・ビット(Yi )を供給する、請求
項3に記載の集積回路。 - 【請求項5】 加算器に接続されたANDゲートが、F
PGAによって実現されるパラレル乗算器のための単一
のセルを提供する、請求項4に記載の集積回路。 - 【請求項6】 複数のプログラマブル・ファンクション
・ユニット(PFU)とプログラマブル・インターコネ
クション・ネットワークを含むフィールド・プログラマ
ブル・ゲート・アレー(FPGA)をプログラムするた
めの方法であって、PFUが第1、第2の本質的に同一
のPFUを含み、 第1PFUが全加算器(124)に接続されたANDゲ
ート(128)として機能するように、コンフィギュレ
ーション・ビット・ストリームの第1部分を第1PFU
に適用するステップと、 第2PFUが全加算器(124)に接続されたマルチプ
レクサ(128)として機能するように、コンフィギュ
レーション・ビット・ストリームの第2部分を第2PF
Uに適用するステップとを含む方法。 - 【請求項7】 第1、第2PFUが各々複数の入力ライ
ンと出力ラインを含み、入力ラインが第1入力ライン
(112)を含み、 第1PFUの第1入力ラインが、第1データ・ビット
(Yi )を受け取るために、ANDゲート(128)の
第1入力に接続され、 第2PFUの第1入力ラインが、第2データ・ビット
(Bi )またはその補数(Bi バー)のどちらが全加算
器に接続されるかを決定する制御信号(加算/減算)を
受け取るためのマルチプレクサ(128)に接続され
る、請求項6に記載の方法。 - 【請求項8】 コンフィギュレーション・ビット・スト
リームの第1、第2部分が1ビットだけお互いに異なっ
ている、請求項6に記載の方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/507893 | 1995-07-27 | ||
| US08/507,893 US5570039A (en) | 1995-07-27 | 1995-07-27 | Programmable function unit as parallel multiplier cell |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0950367A true JPH0950367A (ja) | 1997-02-18 |
Family
ID=24020561
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8192622A Pending JPH0950367A (ja) | 1995-07-27 | 1996-07-23 | パラレル乗算器セルとしてのプログラマブル・ファンクション・ユニット |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5570039A (ja) |
| JP (1) | JPH0950367A (ja) |
| KR (1) | KR970007617A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003084967A (ja) * | 2001-06-25 | 2003-03-20 | Nec Corp | 機能ブロック |
Families Citing this family (77)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020088822A1 (en) * | 1995-08-14 | 2002-07-11 | Dresser, Inc. | Multiproduct fuel dispenser using a common meter |
| US5805477A (en) * | 1996-09-26 | 1998-09-08 | Hewlett-Packard Company | Arithmetic cell for field programmable devices |
| US6069487A (en) * | 1997-10-14 | 2000-05-30 | Altera Corporation | Programmable logic device circuitry for improving multiplier speed and/or efficiency |
| JP3185727B2 (ja) * | 1997-10-15 | 2001-07-11 | 日本電気株式会社 | プログラマブル機能ブロック |
| GB9727414D0 (en) * | 1997-12-29 | 1998-02-25 | Imperial College | Logic circuit |
| US6140839A (en) * | 1998-05-13 | 2000-10-31 | Kaviani; Alireza S. | Computational field programmable architecture |
| US6323680B1 (en) | 1999-03-04 | 2001-11-27 | Altera Corporation | Programmable logic device configured to accommodate multiplication |
| JP2002538562A (ja) | 1999-03-04 | 2002-11-12 | アルテラ・コーポレーション | 桁上げ選択加算付プログラマブルロジックデバイス |
| US7119576B1 (en) | 2000-09-18 | 2006-10-10 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
| US7346644B1 (en) | 2000-09-18 | 2008-03-18 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
| US6628140B2 (en) * | 2000-09-18 | 2003-09-30 | Altera Corporation | Programmable logic devices with function-specific blocks |
| US6771162B1 (en) * | 2000-10-12 | 2004-08-03 | Fairchild Semiconductor Corporation | Active cell crosspoint switch |
| US6959316B2 (en) * | 2001-02-01 | 2005-10-25 | Nokia Mobile Phones Limited | Dynamically configurable processor |
| CN1232041C (zh) * | 2001-05-16 | 2005-12-14 | 皇家菲利浦电子有限公司 | 可重新配置的逻辑器件以及包括该器件的乘法阵列 |
| DE10159480B4 (de) * | 2001-12-04 | 2006-05-24 | Daimlerchrysler Ag | Steuervorrichtung |
| US7196541B2 (en) * | 2003-02-19 | 2007-03-27 | Koninklijke Philips Electronics N.V. | Electronic circuit with array of programmable logic cells |
| CN1751438A (zh) * | 2003-02-19 | 2006-03-22 | 皇家飞利浦电子股份有限公司 | 具有可编程逻辑单元阵列的电子电路 |
| US7082592B1 (en) | 2003-06-16 | 2006-07-25 | Altera Corporation | Method for programming programmable logic device having specialized functional blocks |
| US7698358B1 (en) | 2003-12-24 | 2010-04-13 | Altera Corporation | Programmable logic device with specialized functional block |
| US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
| US8041759B1 (en) | 2006-02-09 | 2011-10-18 | Altera Corporation | Specialized processing block for programmable logic device |
| US8266198B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
| US8301681B1 (en) | 2006-02-09 | 2012-10-30 | Altera Corporation | Specialized processing block for programmable logic device |
| US8266199B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
| US7570505B2 (en) * | 2006-03-23 | 2009-08-04 | Toshiba America Research, Inc. | Memory based computation systems and methods for high performance and/or fast operations |
| US7836117B1 (en) | 2006-04-07 | 2010-11-16 | Altera Corporation | Specialized processing block for programmable logic device |
| US7822799B1 (en) | 2006-06-26 | 2010-10-26 | Altera Corporation | Adder-rounder circuitry for specialized processing block in programmable logic device |
| US8386550B1 (en) | 2006-09-20 | 2013-02-26 | Altera Corporation | Method for configuring a finite impulse response filter in a programmable logic device |
| US7930336B2 (en) | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
| US8386553B1 (en) | 2006-12-05 | 2013-02-26 | Altera Corporation | Large multiplier for programmable logic device |
| US7814137B1 (en) | 2007-01-09 | 2010-10-12 | Altera Corporation | Combined interpolation and decimation filter for programmable logic device |
| US7865541B1 (en) | 2007-01-22 | 2011-01-04 | Altera Corporation | Configuring floating point operations in a programmable logic device |
| US8650231B1 (en) | 2007-01-22 | 2014-02-11 | Altera Corporation | Configuring floating point operations in a programmable device |
| US8645450B1 (en) | 2007-03-02 | 2014-02-04 | Altera Corporation | Multiplier-accumulator circuitry and methods |
| US7949699B1 (en) | 2007-08-30 | 2011-05-24 | Altera Corporation | Implementation of decimation filter in integrated circuit device using ram-based data storage |
| 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 |
| EP2141585A1 (en) * | 2008-06-27 | 2010-01-06 | Panasonic Corporation | Combined adder circuit array and and/or plane |
| US8626815B1 (en) | 2008-07-14 | 2014-01-07 | Altera Corporation | Configuring a programmable integrated circuit device to perform matrix multiplication |
| US8255448B1 (en) | 2008-10-02 | 2012-08-28 | Altera Corporation | Implementing division in a programmable integrated circuit device |
| US8307023B1 (en) | 2008-10-10 | 2012-11-06 | Altera Corporation | DSP block for implementing large multiplier on a programmable integrated circuit device |
| US8706790B1 (en) | 2009-03-03 | 2014-04-22 | Altera Corporation | Implementing mixed-precision floating-point operations in a programmable integrated circuit device |
| US8805916B2 (en) | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
| US8549055B2 (en) | 2009-03-03 | 2013-10-01 | Altera Corporation | Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry |
| US8886696B1 (en) | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
| US8468192B1 (en) | 2009-03-03 | 2013-06-18 | Altera Corporation | Implementing multipliers in a programmable integrated circuit device |
| US8645449B1 (en) | 2009-03-03 | 2014-02-04 | Altera Corporation | Combined floating point adder and subtractor |
| US8650236B1 (en) | 2009-08-04 | 2014-02-11 | Altera Corporation | High-rate interpolation or decimation filter in integrated circuit device |
| US8396914B1 (en) | 2009-09-11 | 2013-03-12 | Altera Corporation | Matrix decomposition in an integrated circuit device |
| US8412756B1 (en) | 2009-09-11 | 2013-04-02 | Altera Corporation | Multi-operand floating point operations in a programmable integrated circuit device |
| US7948267B1 (en) | 2010-02-09 | 2011-05-24 | Altera Corporation | Efficient rounding circuits and methods in configurable integrated circuit devices |
| US8539016B1 (en) | 2010-02-09 | 2013-09-17 | Altera Corporation | QR decomposition in an integrated circuit device |
| US8601044B2 (en) | 2010-03-02 | 2013-12-03 | Altera Corporation | Discrete Fourier Transform in an integrated circuit device |
| US8458243B1 (en) | 2010-03-03 | 2013-06-04 | Altera Corporation | Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering |
| US8484265B1 (en) | 2010-03-04 | 2013-07-09 | Altera Corporation | Angular range reduction in an integrated circuit device |
| US8510354B1 (en) | 2010-03-12 | 2013-08-13 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
| US8539014B2 (en) | 2010-03-25 | 2013-09-17 | Altera Corporation | Solving linear matrices in an integrated circuit device |
| US8862650B2 (en) | 2010-06-25 | 2014-10-14 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
| US8589463B2 (en) | 2010-06-25 | 2013-11-19 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
| US8577951B1 (en) | 2010-08-19 | 2013-11-05 | Altera Corporation | Matrix operations in an integrated circuit device |
| US8645451B2 (en) | 2011-03-10 | 2014-02-04 | Altera Corporation | Double-clocked specialized processing block in an integrated circuit device |
| US9600278B1 (en) | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
| US8812576B1 (en) | 2011-09-12 | 2014-08-19 | Altera Corporation | QR decomposition in an integrated circuit device |
| US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
| US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
| US8762443B1 (en) | 2011-11-15 | 2014-06-24 | Altera Corporation | Matrix operations in an integrated circuit device |
| US8543634B1 (en) | 2012-03-30 | 2013-09-24 | Altera Corporation | Specialized processing block for programmable integrated circuit device |
| US9098332B1 (en) | 2012-06-01 | 2015-08-04 | Altera Corporation | Specialized processing block with fixed- and floating-point structures |
| US8996600B1 (en) | 2012-08-03 | 2015-03-31 | Altera Corporation | Specialized processing block for implementing floating-point multiplier with subnormal operation support |
| 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 |
| US9348795B1 (en) | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
| US9379687B1 (en) | 2014-01-14 | 2016-06-28 | Altera Corporation | Pipelined systolic finite impulse response filter |
| US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
| US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
| US11374574B2 (en) | 2019-12-27 | 2022-06-28 | Kepler Computing Inc. | Linear input and non-linear output threshold logic gate |
| US12524204B1 (en) * | 2021-09-02 | 2026-01-13 | Kepler Computing Inc. | Ferroelectric or paraelectric based low power multiplier |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4870302A (en) * | 1984-03-12 | 1989-09-26 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
| USRE34363E (en) * | 1984-03-12 | 1993-08-31 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
| US4642487A (en) * | 1984-09-26 | 1987-02-10 | Xilinx, Inc. | Special interconnect for configurable logic array |
| KR920003908B1 (ko) * | 1987-11-19 | 1992-05-18 | 미쓰비시뎅끼 가부시끼가이샤 | 승산기(乘算器) |
| US5384497A (en) * | 1992-11-04 | 1995-01-24 | At&T Corp. | Low-skew signal routing in a programmable array |
| JPH06276086A (ja) * | 1993-03-18 | 1994-09-30 | Fuji Xerox Co Ltd | フィールドプログラマブルゲートアレイ |
| US5386156A (en) * | 1993-08-27 | 1995-01-31 | At&T Corp. | Programmable function unit with programmable fast ripple logic |
-
1995
- 1995-07-27 US US08/507,893 patent/US5570039A/en not_active Expired - Lifetime
-
1996
- 1996-07-23 JP JP8192622A patent/JPH0950367A/ja active Pending
- 1996-07-24 KR KR19960029910A patent/KR970007617A/ko not_active Ceased
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003084967A (ja) * | 2001-06-25 | 2003-03-20 | Nec Corp | 機能ブロック |
Also Published As
| Publication number | Publication date |
|---|---|
| US5570039A (en) | 1996-10-29 |
| KR970007617A (ja) | 1997-02-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0950367A (ja) | パラレル乗算器セルとしてのプログラマブル・ファンクション・ユニット | |
| US5546018A (en) | Fast carry structure with synchronous input | |
| US6288570B1 (en) | Logic structure and circuit for fast carry | |
| US5821774A (en) | Structure and method for arithmetic function implementation in an EPLD having high speed product term allocation structure | |
| US6937064B1 (en) | Versatile logic element and logic array block | |
| US6157209A (en) | Loadable up-down counter with asynchronous reset | |
| EP0667059B1 (en) | Logic structure and circuit for fast carry | |
| JP4593866B2 (ja) | 乗算器をfpgaに組込むための方法および装置 | |
| US6873182B2 (en) | Programmable logic devices having enhanced cascade functions to provide increased flexibility | |
| JP2614169B2 (ja) | プログラム可能アレイ論理装置およびプログラム可能論理装置 | |
| US7971172B1 (en) | IC that efficiently replicates a function to save logic and routing resources | |
| US5675262A (en) | Fast carry-out scheme in a field programmable gate array | |
| US7251672B2 (en) | Reconfigurable logic device | |
| EP2391010B1 (en) | A programmable logic device having complex logic blocks with improved logic cell functionality | |
| US7358765B2 (en) | Dedicated logic cells employing configurable logic and dedicated logic functions | |
| US5386155A (en) | Apparatus and method for selecting polarity and output type in a programmable logic device | |
| CN100576355C (zh) | 具有可编程逻辑单元阵列的电子电路 | |
| US5805491A (en) | Fast 4-2 carry save adder using multiplexer logic | |
| US7368941B2 (en) | Dedicated logic cells employing sequential logic and control logic functions | |
| JPH07273638A (ja) | 複数広域入力機能のためのプログラム式専用fpga機能ブロックを備えたfpgaアーキテクチャ | |
| JP2006518144A (ja) | プログラム可能な論理セルのアレイをもつ電子回路 | |
| US7167021B1 (en) | Logic device logic modules having improved arithmetic circuitry | |
| US7617269B2 (en) | Logic entity with two outputs for efficient adder and other macro implementations | |
| US20060109027A1 (en) | Programmable logic cell | |
| JPH09181598A (ja) | フィールドプログラマブルゲートアレイ |