JPH0983347A - マルチ・ポートramを有するフィールド・プログラマブル・ゲート・アレー - Google Patents
マルチ・ポートramを有するフィールド・プログラマブル・ゲート・アレーInfo
- Publication number
- JPH0983347A JPH0983347A JP8192623A JP19262396A JPH0983347A JP H0983347 A JPH0983347 A JP H0983347A JP 8192623 A JP8192623 A JP 8192623A JP 19262396 A JP19262396 A JP 19262396A JP H0983347 A JPH0983347 A JP H0983347A
- Authority
- JP
- Japan
- Prior art keywords
- ram
- port
- cells
- read
- cell
- 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
-
- 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
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)
Abstract
(57)【要約】
【課題】 各ポートで読み出し/書き込みを行うマルチ
・ポートRAMを実現可能なFPGAを提供する。 【解決手段】 第1、第2RAMセル(102、10
8)と、RAMセルの接続、切り離しに使われるプログ
ラム可能なスイッチング・デバイス(114)を含む、
複数の機能を実現するためのルック・アップ・テーブル
(LUT)を含む、プログラマブル・ファンクション・
ユニット(PFU)を有する、フィールド・プログラマ
ブル・ゲート・アレー(FPGA)。第1、第2RAM
セルは、対応する第1、第2読み出し/書き込みポート
(104、110)に接続される。RAMセルは、スイ
ッチング・デバイスによって切り離される時シングル・
ポートRAMとして独立して機能する。しかし、RAM
セルは、スイッチング・デバイスによって接続される
時、二重ポートRAMとして集合的に機能するためデー
タを分け合う。二重ポートRAMセルは、第1、第2書
き込み/読み出しポートの両方によってアクセス出来
る。
・ポートRAMを実現可能なFPGAを提供する。 【解決手段】 第1、第2RAMセル(102、10
8)と、RAMセルの接続、切り離しに使われるプログ
ラム可能なスイッチング・デバイス(114)を含む、
複数の機能を実現するためのルック・アップ・テーブル
(LUT)を含む、プログラマブル・ファンクション・
ユニット(PFU)を有する、フィールド・プログラマ
ブル・ゲート・アレー(FPGA)。第1、第2RAM
セルは、対応する第1、第2読み出し/書き込みポート
(104、110)に接続される。RAMセルは、スイ
ッチング・デバイスによって切り離される時シングル・
ポートRAMとして独立して機能する。しかし、RAM
セルは、スイッチング・デバイスによって接続される
時、二重ポートRAMとして集合的に機能するためデー
タを分け合う。二重ポートRAMセルは、第1、第2書
き込み/読み出しポートの両方によってアクセス出来
る。
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】RAMは、各セルが1ビットの情報を記憶
する、1つかそれ以上のセル(メモリ・ユニット)を含
む。各セルは、セルの位置やアドレスとは無関係に、あ
る定められた時間内に読み出し・書き込み操作を行うた
めにアクセス出来る。このことで、RAMは、磁気テー
プ、ドラム、ディスクといったシリアル(または一部シ
リアル)アクセス記憶デバイスと区別される。後者のデ
バイスへのアクセス時間は、データのアドレスまたは位
置に依存する。RAMに関連するアドレス、データ、制
御ラインは集まって1つかそれ以上のポートを形成す
る。シングル・ポートRAMは、1つのポートのみによ
るメモリ・セルへのアクセスを許す。従って、シングル
・ポートRAMは、異なったアドレスからの同時操作を
許容しない。マルチ・ポートRAMは、2つかそれ以上
の機能的に独立したポートによるメモリ・セルへのアク
セスを許す。
する、1つかそれ以上のセル(メモリ・ユニット)を含
む。各セルは、セルの位置やアドレスとは無関係に、あ
る定められた時間内に読み出し・書き込み操作を行うた
めにアクセス出来る。このことで、RAMは、磁気テー
プ、ドラム、ディスクといったシリアル(または一部シ
リアル)アクセス記憶デバイスと区別される。後者のデ
バイスへのアクセス時間は、データのアドレスまたは位
置に依存する。RAMに関連するアドレス、データ、制
御ラインは集まって1つかそれ以上のポートを形成す
る。シングル・ポートRAMは、1つのポートのみによ
るメモリ・セルへのアクセスを許す。従って、シングル
・ポートRAMは、異なったアドレスからの同時操作を
許容しない。マルチ・ポートRAMは、2つかそれ以上
の機能的に独立したポートによるメモリ・セルへのアク
セスを許す。
【0010】従って、マルチ・ポートRAMは、異なっ
たアドレスからの同時操作を許容する。マルチ・ポート
RAMは、二重ポートRAM、三重ポートRAM、四重
ポートRAM等を含む。二重ポートRAMは、例えば、
読み出し、書き込み両方の操作によって絶えずアップデ
ートする必要のあるバッファ、キュー、レジスタで利用
される。二重ポートRAMの適用例は、1つのソース
(例えば、ライン)からデータを受信し、そのデータを
別のソース(例えば、コンピュータ)に伝送する通信チ
ャネルを含む。この例では、ラインは第1ポートに接続
され、コンピュータは第2ポートに接続される。
たアドレスからの同時操作を許容する。マルチ・ポート
RAMは、二重ポートRAM、三重ポートRAM、四重
ポートRAM等を含む。二重ポートRAMは、例えば、
読み出し、書き込み両方の操作によって絶えずアップデ
ートする必要のあるバッファ、キュー、レジスタで利用
される。二重ポートRAMの適用例は、1つのソース
(例えば、ライン)からデータを受信し、そのデータを
別のソース(例えば、コンピュータ)に伝送する通信チ
ャネルを含む。この例では、ラインは第1ポートに接続
され、コンピュータは第2ポートに接続される。
【0011】PFUは二重ポートRAMを実現するよう
装備されている。例えば、N入力LUTは、2N ビット
のメモリ・セルのバンク、N−2N ビットのデコーダ、
1つの出力を含む。これは、メモリをロードするコンフ
ィギュレーション・ビット・ストリームと、アドレス信
号に応答して適当なセルを選択するデコーダを有する、
シングル・ポートROMを提供する。シングル・ポート
RAMを提供するために、データをLUTに書き込むた
めの追加のロジックが含まれる。二重ポートRAMは、
従来技術で教えられるように、シングル・ポートRAM
のための第2のN−2N ビットのデコーダを提供するこ
とによって得られる。第2デコーダは、第2アドレス信
号に応答してRAMセルを選択する。第1、第2デコー
ダは、異なったアドレス信号によるRAMセルへの同時
アクセスを許容する。同様の方法で、第3のN−2N ビ
ットのデコーダは、三重ポートRAMを提供する。
装備されている。例えば、N入力LUTは、2N ビット
のメモリ・セルのバンク、N−2N ビットのデコーダ、
1つの出力を含む。これは、メモリをロードするコンフ
ィギュレーション・ビット・ストリームと、アドレス信
号に応答して適当なセルを選択するデコーダを有する、
シングル・ポートROMを提供する。シングル・ポート
RAMを提供するために、データをLUTに書き込むた
めの追加のロジックが含まれる。二重ポートRAMは、
従来技術で教えられるように、シングル・ポートRAM
のための第2のN−2N ビットのデコーダを提供するこ
とによって得られる。第2デコーダは、第2アドレス信
号に応答してRAMセルを選択する。第1、第2デコー
ダは、異なったアドレス信号によるRAMセルへの同時
アクセスを許容する。同様の方法で、第3のN−2N ビ
ットのデコーダは、三重ポートRAMを提供する。
【0012】
【発明が解決しようとする課題】あいにく、追加デコー
ダは普通マルチ・ポートRAM動作専用である。所与の
PFUがマルチ・ポートRAMとして使われない場合、
追加デコーダはほとんど使い道がない。FPGAの最初
の目的は、幅広い機能を実現する能力にあるので、マル
チ・ポートRAMのサポート専用のデコーダを使うの
は、費用がかかり非効率的なアプローチである。
ダは普通マルチ・ポートRAM動作専用である。所与の
PFUがマルチ・ポートRAMとして使われない場合、
追加デコーダはほとんど使い道がない。FPGAの最初
の目的は、幅広い機能を実現する能力にあるので、マル
チ・ポートRAMのサポート専用のデコーダを使うの
は、費用がかかり非効率的なアプローチである。
【0013】FPGAで二重ポートRAMを実現する別
のアプローチが、最近、”XC4000E Logic
Cell Array Family”、製品予告、
Xilinx Inc.社、1995年5月2日、1−
4ページで報告された。第1モードでは、CLB中の1
6×2シングル・ポートRAMが、16×1シングル・
ポート”F−RAM”と16×1シングル・ポート”G
−RAM”を含む。第2モードでは、16×2シングル
・ポートRAMは、16×1二重ポートRAMに変換さ
れる。二重ポート・モードでは、F−RAMに書き込み
する操作は全て、F−アドレスを使って、自動的にG−
RAMに書き込みをする。しかし、主な欠点は、二重ポ
ート・モードでは、G−RAMに書き込みするためにG
−アドレスを使えないことである。その結果、16×1
二重ポートRAMには、F−アドレスを使う読み出し/
書き込みポートがあるが、G−アドレスを使うのは、読
み出し専用ポートである。
のアプローチが、最近、”XC4000E Logic
Cell Array Family”、製品予告、
Xilinx Inc.社、1995年5月2日、1−
4ページで報告された。第1モードでは、CLB中の1
6×2シングル・ポートRAMが、16×1シングル・
ポート”F−RAM”と16×1シングル・ポート”G
−RAM”を含む。第2モードでは、16×2シングル
・ポートRAMは、16×1二重ポートRAMに変換さ
れる。二重ポート・モードでは、F−RAMに書き込み
する操作は全て、F−アドレスを使って、自動的にG−
RAMに書き込みをする。しかし、主な欠点は、二重ポ
ート・モードでは、G−RAMに書き込みするためにG
−アドレスを使えないことである。その結果、16×1
二重ポートRAMには、F−アドレスを使う読み出し/
書き込みポートがあるが、G−アドレスを使うのは、読
み出し専用ポートである。
【0014】従って、各ポートで読み出し/書き込み操
作の両方をサポートするマルチ・ポートRAMを有効に
実現するFPGAが必要である。
作の両方をサポートするマルチ・ポートRAMを有効に
実現するFPGAが必要である。
【0015】
【課題を解決するための手段】本発明の主要な態様は、
様々なRAMセル間のビット・レベルの接続を提供する
ためのプログラマブル・スイッチング・デバイスによっ
て、マルチ・ポートRAMを実現するFPGAである。
様々なRAMセル間のビット・レベルの接続を提供する
ためのプログラマブル・スイッチング・デバイスによっ
て、マルチ・ポートRAMを実現するFPGAである。
【0016】本発明の一態様に従って、FPGAは、第
1、第2RAMセルを含む複数の機能を提供するための
LUT、RAMセルを接続、分離するために使われるプ
ログラム可能なスイッチング・デバイスを含む。第1、
第2RAMセルは、対応する第1、第2読み出し/書き
込みポートに接続される。RAMセルは、スイッチング
・デバイスによって分離されると、シングル・ポートR
AMとして独立して機能する。しかし、RAMセルは、
スイッチング・デバイスによって接続されると、データ
を分け合い、二重ポートRAMとして集合的に機能す
る。二重ポートRAMセルは、第1、第2読み出し/書
き込みポートによってアクセス出来る。
1、第2RAMセルを含む複数の機能を提供するための
LUT、RAMセルを接続、分離するために使われるプ
ログラム可能なスイッチング・デバイスを含む。第1、
第2RAMセルは、対応する第1、第2読み出し/書き
込みポートに接続される。RAMセルは、スイッチング
・デバイスによって分離されると、シングル・ポートR
AMとして独立して機能する。しかし、RAMセルは、
スイッチング・デバイスによって接続されると、データ
を分け合い、二重ポートRAMとして集合的に機能す
る。二重ポートRAMセルは、第1、第2読み出し/書
き込みポートによってアクセス出来る。
【0017】
【発明の実施の形態】図1を参照すると、一般に本発明
の実施例を表す略図が示される。見られるように、RA
M102はチャネル106によってポート104に接続
され、RAM108はチャネル112によってポート1
10に接続される。さらに、スイッチング・デバイス1
14がチャネル116によってRAM102、108の
間に接続される。RAM、チャネル、スイッチング・デ
バイスは、半導体チップのような集積回路として実現さ
れたFPGAの一部である。RAM102、108は、
コンフィギュレーション・ビット・ストリームに応答し
て、1つかそれ以上のLUTの様なプログラム可能な構
成要素によって提供される。ポート104、110は、
好適には、説明のために、アドレス・ライン、読み出し
ライン、書き込みライン、読み出し/書き込み制御ライ
ンを含む、チャネル106、112を有する、読み出し
/書き込みポートである。スイッチング・デバイス11
4も、コンフィギュレーション・ビット・ストリームに
応答する。好適には、スイッチング・デバイスは、イン
ターコネクション・ネットワークの一般的なクロスポイ
ント・スイッチとは反対に、シングル・ポートRAMか
らマルチ・ポートRAMへの変換専用である。
の実施例を表す略図が示される。見られるように、RA
M102はチャネル106によってポート104に接続
され、RAM108はチャネル112によってポート1
10に接続される。さらに、スイッチング・デバイス1
14がチャネル116によってRAM102、108の
間に接続される。RAM、チャネル、スイッチング・デ
バイスは、半導体チップのような集積回路として実現さ
れたFPGAの一部である。RAM102、108は、
コンフィギュレーション・ビット・ストリームに応答し
て、1つかそれ以上のLUTの様なプログラム可能な構
成要素によって提供される。ポート104、110は、
好適には、説明のために、アドレス・ライン、読み出し
ライン、書き込みライン、読み出し/書き込み制御ライ
ンを含む、チャネル106、112を有する、読み出し
/書き込みポートである。スイッチング・デバイス11
4も、コンフィギュレーション・ビット・ストリームに
応答する。好適には、スイッチング・デバイスは、イン
ターコネクション・ネットワークの一般的なクロスポイ
ント・スイッチとは反対に、シングル・ポートRAMか
らマルチ・ポートRAMへの変換専用である。
【0018】コンフィギュレーション・ビット・ストリ
ームがスイッチング・デバイス114にRAM102を
RAM108から切り離すように指示する時、RAM1
02、108は、別のシングル・ポートRAMとして独
立して機能する。すなわち、チャネル116に関して、
RAM102はポート110から切り離され、RAM1
08はポート104から切り離される。
ームがスイッチング・デバイス114にRAM102を
RAM108から切り離すように指示する時、RAM1
02、108は、別のシングル・ポートRAMとして独
立して機能する。すなわち、チャネル116に関して、
RAM102はポート110から切り離され、RAM1
08はポート104から切り離される。
【0019】一方、コンフィギュレーション・ビット・
ストリームがスイッチング・デバイス114にRAM1
02をRAM108に接続するように指示する時、RA
M102、108は1つのマルチ・ポートRAMとして
集合的に機能する。このモードでは、スイッチング・デ
バイス114はチャネル116を通じてRAM102、
108の間にビット・レベルの接続を提供する。RAM
102の各セルはRAM108の1つのセルと接続さ
れ、RAM108の各セルはRAM102の1つのセル
と接続される。こうして接続されたメモリ・セルの組み
合わせが形成され、各接続された組み合わせはRAM1
02の1つのセルとRAM108の1つのセルを含む。
接続された組み合わせのセルはお互いにデータを分け合
う。すなわち、接続された組み合わせの各セルに記憶さ
れた論理値はお互いに同一である。その結果、RAM1
02はポート110に接続され、RAM108はポート
104に接続される。従って、RAM102、RAM1
08の両方は、ポート104、ポート110の両方を通
じて、マルチ・ポートRAM動作をサポートするようア
クセス出来る。
ストリームがスイッチング・デバイス114にRAM1
02をRAM108に接続するように指示する時、RA
M102、108は1つのマルチ・ポートRAMとして
集合的に機能する。このモードでは、スイッチング・デ
バイス114はチャネル116を通じてRAM102、
108の間にビット・レベルの接続を提供する。RAM
102の各セルはRAM108の1つのセルと接続さ
れ、RAM108の各セルはRAM102の1つのセル
と接続される。こうして接続されたメモリ・セルの組み
合わせが形成され、各接続された組み合わせはRAM1
02の1つのセルとRAM108の1つのセルを含む。
接続された組み合わせのセルはお互いにデータを分け合
う。すなわち、接続された組み合わせの各セルに記憶さ
れた論理値はお互いに同一である。その結果、RAM1
02はポート110に接続され、RAM108はポート
104に接続される。従って、RAM102、RAM1
08の両方は、ポート104、ポート110の両方を通
じて、マルチ・ポートRAM動作をサポートするようア
クセス出来る。
【0020】図2を参照すると、本発明の他の実施例に
従って、1つの16×1二重ポートRAMに変換された
2つの16×1シングル・ポートRAMを表す略図を示
す。LUT202、204は、コンフィギュレーション
・ビット・ストリームに応答して対応する16×1RA
Mを実現する。LUT202、204は1つのLUTの
1部分(例えば、LUTの半分)か、または別のLUT
であることが理解される。いずれにしても、LUT20
2、204は1つのより大きなLUTと交換可能であ
る。同様に、LUT202、204は多数のより小さな
LUTと交換可能である。例えば、LUT202は、各
々8×1シングルポートRAMを実現する、2つのLU
Tによって置き換えられる。LUT202、204は同
じPFUに常駐するのが好適であるが、別のPFUに常
駐しても良く、その場合、その別のPFUは好適には隣
合っている。
従って、1つの16×1二重ポートRAMに変換された
2つの16×1シングル・ポートRAMを表す略図を示
す。LUT202、204は、コンフィギュレーション
・ビット・ストリームに応答して対応する16×1RA
Mを実現する。LUT202、204は1つのLUTの
1部分(例えば、LUTの半分)か、または別のLUT
であることが理解される。いずれにしても、LUT20
2、204は1つのより大きなLUTと交換可能であ
る。同様に、LUT202、204は多数のより小さな
LUTと交換可能である。例えば、LUT202は、各
々8×1シングルポートRAMを実現する、2つのLU
Tによって置き換えられる。LUT202、204は同
じPFUに常駐するのが好適であるが、別のPFUに常
駐しても良く、その場合、その別のPFUは好適には隣
合っている。
【0021】LUT202は16のRAMセルC0〜C
15からなる。分かりやすく表すために、セルC0、C
14、C15だけが示される。LUT202はセルC0
〜C15の1つを選択するためのアドレス・ラインA0
〜A3を受信する。LUT202はまた、アドレス・ラ
インA0〜A3とセルC0〜C15の間に、この選択を
達成するための4×16デコーダ(図示せず)を含む。
LUT202は、セルC0〜C15に書き込みされるデ
ータを提供するための書き込みデータ・ラインWDAを
受信する。LUT202はまた、セルC0〜C15の読
み出し、書き込み動作を選択するための読み出し/書き
込み制御ラインとして書き込み可能ラインWEAを受信
する。LUT202はセルC0〜C15の内容を読み出
しデータ・ラインRDAに接続する。ラインA0〜A
3、WDA、WEA、RDAは集合的にセルC0〜C1
5のための読み出し/書き込みポートを提供する。
15からなる。分かりやすく表すために、セルC0、C
14、C15だけが示される。LUT202はセルC0
〜C15の1つを選択するためのアドレス・ラインA0
〜A3を受信する。LUT202はまた、アドレス・ラ
インA0〜A3とセルC0〜C15の間に、この選択を
達成するための4×16デコーダ(図示せず)を含む。
LUT202は、セルC0〜C15に書き込みされるデ
ータを提供するための書き込みデータ・ラインWDAを
受信する。LUT202はまた、セルC0〜C15の読
み出し、書き込み動作を選択するための読み出し/書き
込み制御ラインとして書き込み可能ラインWEAを受信
する。LUT202はセルC0〜C15の内容を読み出
しデータ・ラインRDAに接続する。ラインA0〜A
3、WDA、WEA、RDAは集合的にセルC0〜C1
5のための読み出し/書き込みポートを提供する。
【0022】LUT204はLUT202と同様であ
る。LUT204は16のRAMセルC16〜C31か
らなるが、セルC16、C30、C31を図示する。L
UT204は、4×16デコーダ(図示せず)を通じ
て、セルC16〜C31の1つを選択するためのアドレ
ス・ラインB0〜B3を受信する。LUT204はま
た、セルC16〜C31のための書き込みデータ・ライ
ンWDBと書き込み可能ラインWEBを受信する。同様
に、LUT204は、セルC16〜C31の内容を読み
出しデータ・ラインRDBに接続する。ラインB0〜B
3、WEB、WDB、RDBは集合的にセルC16〜C
31のための読み出し/書き込みポートを提供する。
る。LUT204は16のRAMセルC16〜C31か
らなるが、セルC16、C30、C31を図示する。L
UT204は、4×16デコーダ(図示せず)を通じ
て、セルC16〜C31の1つを選択するためのアドレ
ス・ラインB0〜B3を受信する。LUT204はま
た、セルC16〜C31のための書き込みデータ・ライ
ンWDBと書き込み可能ラインWEBを受信する。同様
に、LUT204は、セルC16〜C31の内容を読み
出しデータ・ラインRDBに接続する。ラインB0〜B
3、WEB、WDB、RDBは集合的にセルC16〜C
31のための読み出し/書き込みポートを提供する。
【0023】図ではスイッチング・デバイス114の配
置を示すスイッチング・デバイスS0〜S15は、LU
T202、204の間に接続される。分かりやすく表す
ために、スイッチング・デバイスS0、S14、S15
だけが示される。各スイッチング・デバイスは、セルC
0〜C15の1つと、セルC16〜C31の1つの間に
接続される。例えば、スイッチング・デバイスS0はセ
ルC0、C16の間に接続され、スイッチング・デバイ
スS14はセルC14、C30の間に接続され、スイッ
チング・デバイスS15はセルC15、C31の間に接
続される。スイッチング・デバイスS0〜S15はま
た、普通FPGAコンフィギュレーションRAMセル2
06に接続される。セル206は、スイッチング・デバ
イスが、普通接続・切り離しのどちらに設定されている
かを決定する。セル206が第1論理値を記憶している
場合、スイッチング・デバイスS0〜S15は全て接続
に設定され(すなわち、閉じており)、セル206が第
2論理値を記憶している場合、スイッチング・デバイス
S0〜S15は全て切り離しに設定される(すなわち、
開いている)。セル206に記憶される論理値はコンフ
ィギュレーション・ビット・ストリームによって決定さ
れる。従って、スイッチング・デバイスS0〜S15
は、セルC0〜C15とセルC16〜C31との接続・
切り離しについて、コンフィギュレーション・ビット・
ストリームに応答してプログラム可能である。
置を示すスイッチング・デバイスS0〜S15は、LU
T202、204の間に接続される。分かりやすく表す
ために、スイッチング・デバイスS0、S14、S15
だけが示される。各スイッチング・デバイスは、セルC
0〜C15の1つと、セルC16〜C31の1つの間に
接続される。例えば、スイッチング・デバイスS0はセ
ルC0、C16の間に接続され、スイッチング・デバイ
スS14はセルC14、C30の間に接続され、スイッ
チング・デバイスS15はセルC15、C31の間に接
続される。スイッチング・デバイスS0〜S15はま
た、普通FPGAコンフィギュレーションRAMセル2
06に接続される。セル206は、スイッチング・デバ
イスが、普通接続・切り離しのどちらに設定されている
かを決定する。セル206が第1論理値を記憶している
場合、スイッチング・デバイスS0〜S15は全て接続
に設定され(すなわち、閉じており)、セル206が第
2論理値を記憶している場合、スイッチング・デバイス
S0〜S15は全て切り離しに設定される(すなわち、
開いている)。セル206に記憶される論理値はコンフ
ィギュレーション・ビット・ストリームによって決定さ
れる。従って、スイッチング・デバイスS0〜S15
は、セルC0〜C15とセルC16〜C31との接続・
切り離しについて、コンフィギュレーション・ビット・
ストリームに応答してプログラム可能である。
【0024】スイッチング・デバイスS0〜S15が切
り離しに設定されている時、LUT202、204は別
の、シングル・ポート16×1RAMとして独立して機
能する。または、スイッチング・デバイスS0〜S15
が接続に設定されている時、LUT202、204は1
つの16×1二重ポートRAMに変換される。二重ポー
ト・モードでは、セルC0〜C15は、セルC16〜C
31に、1対1の関係で、ビット・レベルで接続され
る。すなわち、セルC0、C16は第1の接続された組
み合わせを形成し、セルC1、C17は第2の接続され
た組み合わせを形成し、セルC15、C31は第16の
接続された組み合わせを形成する。さらに、セルC0〜
C15は、ラインB0〜B3、WDB、WEB、RDB
からなる読み出し/書き込みポートによってアクセス出
来、セルC16〜C31は、ラインA0〜A3、WD
A、WEA、RDAからなる読み出し/書き込みポート
によってアクセス出来る。
り離しに設定されている時、LUT202、204は別
の、シングル・ポート16×1RAMとして独立して機
能する。または、スイッチング・デバイスS0〜S15
が接続に設定されている時、LUT202、204は1
つの16×1二重ポートRAMに変換される。二重ポー
ト・モードでは、セルC0〜C15は、セルC16〜C
31に、1対1の関係で、ビット・レベルで接続され
る。すなわち、セルC0、C16は第1の接続された組
み合わせを形成し、セルC1、C17は第2の接続され
た組み合わせを形成し、セルC15、C31は第16の
接続された組み合わせを形成する。さらに、セルC0〜
C15は、ラインB0〜B3、WDB、WEB、RDB
からなる読み出し/書き込みポートによってアクセス出
来、セルC16〜C31は、ラインA0〜A3、WD
A、WEA、RDAからなる読み出し/書き込みポート
によってアクセス出来る。
【0025】図3を参照すると、図2のある構成要素の
1つの実施例の単純化された回路図が示される。セルC
0はノード306、308で一緒に接続された反転接続
インバータ302、304を含む。LUT202に関連
する4×16デコーダが、デコーダ回路310とトラン
ジスタ312、314の組み合わせによって提供され
る。デコーダ回路310はアドレス・ラインA0〜A3
に接続される。アドレス・ラインA0〜A3が0000
に設定されている場合、デコーダ回路310はトランジ
スタ312、314をオンに切り替える。書き込み操作
の間、WEAはトランジスタ316をオンに切り替え、
WDAはトランジスタ312に接続され、WDAはノー
ド306に接続されて、WDAの論理値をセルC0に書
き込む。読み出し操作の間、WEAはトランジスタ31
6をオフに切り替え、WDAはトランジスタ312と切
り離される。しかし、ノード308の論理値はインバー
タ318によって変換され、インバータ318の出力は
トランジスタ314によってRDAに接続される。その
結果、RDAはノード306に記憶された論理値を推定
する。
1つの実施例の単純化された回路図が示される。セルC
0はノード306、308で一緒に接続された反転接続
インバータ302、304を含む。LUT202に関連
する4×16デコーダが、デコーダ回路310とトラン
ジスタ312、314の組み合わせによって提供され
る。デコーダ回路310はアドレス・ラインA0〜A3
に接続される。アドレス・ラインA0〜A3が0000
に設定されている場合、デコーダ回路310はトランジ
スタ312、314をオンに切り替える。書き込み操作
の間、WEAはトランジスタ316をオンに切り替え、
WDAはトランジスタ312に接続され、WDAはノー
ド306に接続されて、WDAの論理値をセルC0に書
き込む。読み出し操作の間、WEAはトランジスタ31
6をオフに切り替え、WDAはトランジスタ312と切
り離される。しかし、ノード308の論理値はインバー
タ318によって変換され、インバータ318の出力は
トランジスタ314によってRDAに接続される。その
結果、RDAはノード306に記憶された論理値を推定
する。
【0026】同様の方法で、セルC16はノード32
6、328で一緒に接続された反転接続インバータ32
2、324を含む。LUT204に関連する4×16デ
コーダが、デコーダ回路330とトランジスタ332、
334を含む。アドレス・ラインB0〜B3が0000
に設定されると、デコーダ回路330はトランジスタ3
32、334をオンに切り替え、ノード326の論理値
を読み出し操作のためにRDBに送り、WEBによって
許可される場合、ノード326のWDBの論理値を書き
込み操作のために記憶する。
6、328で一緒に接続された反転接続インバータ32
2、324を含む。LUT204に関連する4×16デ
コーダが、デコーダ回路330とトランジスタ332、
334を含む。アドレス・ラインB0〜B3が0000
に設定されると、デコーダ回路330はトランジスタ3
32、334をオンに切り替え、ノード326の論理値
を読み出し操作のためにRDBに送り、WEBによって
許可される場合、ノード326のWDBの論理値を書き
込み操作のために記憶する。
【0027】セルC0、C16は、トランジスタ320
からなるスイッチング・デバイスS0に接続されてい
る。トランジスタ320のソースとドレインは、それぞ
れノード306、326に接続されている。トランジス
タ320のゲートは、コンフィギュレーションRAMセ
ル206に接続されている。従って、セル206はトラ
ンジスタ320がノード306、326を一緒に接続す
るかどうかを決定する。セル206が論理ロー(すなわ
ち、0)を記憶している場合、トランジスタ320はオ
フに切り替わり、ノード306をノード326に接続し
ない。または、セル206が論理ハイ(すなわち、1)
を記憶している場合、トランジスタ320はオンに切り
替わり、ノード306、326を一緒にショートする。
この回路がショートされた状態は、セルC0、C16の
間にビット・レベルの接続を提供する。
からなるスイッチング・デバイスS0に接続されてい
る。トランジスタ320のソースとドレインは、それぞ
れノード306、326に接続されている。トランジス
タ320のゲートは、コンフィギュレーションRAMセ
ル206に接続されている。従って、セル206はトラ
ンジスタ320がノード306、326を一緒に接続す
るかどうかを決定する。セル206が論理ロー(すなわ
ち、0)を記憶している場合、トランジスタ320はオ
フに切り替わり、ノード306をノード326に接続し
ない。または、セル206が論理ハイ(すなわち、1)
を記憶している場合、トランジスタ320はオンに切り
替わり、ノード306、326を一緒にショートする。
この回路がショートされた状態は、セルC0、C16の
間にビット・レベルの接続を提供する。
【0028】セルC0、C16が異なった論理値を記憶
している間にトランジスタ320がオンに切り替わる場
合、セルC0、C16の間に到着した分配された論理値
は確定出来ない。しかし、セルC0、C16がデータ処
理操作を行う前にコンフィギュレーション・ビット・ス
トリームがロードされるので、セルC0、C16間の対
立は起こらない。おそらく、LUT202、204がコ
ンフィギュレーション・ビット・ストリームによってそ
れぞれセルC0、C16を実現するようプログラムされ
ている時、セルC0、C16は、トランジスタ320を
通じてビット・レベルの接続が起こる前に、普通の論理
値(例えばロー)に再設定される。
している間にトランジスタ320がオンに切り替わる場
合、セルC0、C16の間に到着した分配された論理値
は確定出来ない。しかし、セルC0、C16がデータ処
理操作を行う前にコンフィギュレーション・ビット・ス
トリームがロードされるので、セルC0、C16間の対
立は起こらない。おそらく、LUT202、204がコ
ンフィギュレーション・ビット・ストリームによってそ
れぞれセルC0、C16を実現するようプログラムされ
ている時、セルC0、C16は、トランジスタ320を
通じてビット・レベルの接続が起こる前に、普通の論理
値(例えばロー)に再設定される。
【0029】トランジスタ320は、セル206からの
指示に従うセルC0、C16の接続、切り離し専用であ
る。好適には、各スイッチング・デバイスS0〜S15
は、各トランジスタのゲートが共通にセル206に接続
された、トランジスタ320と同様の、単一のトランジ
スタからなる。もちろん、1組の相補形パス・トランジ
スタのような、他の形態のスイッチング・デバイスも使
われる。さらに、追加のインバータが、速度とノイズに
配慮するためのバッファとしてセルC0、C16に接続
されることもある。
指示に従うセルC0、C16の接続、切り離し専用であ
る。好適には、各スイッチング・デバイスS0〜S15
は、各トランジスタのゲートが共通にセル206に接続
された、トランジスタ320と同様の、単一のトランジ
スタからなる。もちろん、1組の相補形パス・トランジ
スタのような、他の形態のスイッチング・デバイスも使
われる。さらに、追加のインバータが、速度とノイズに
配慮するためのバッファとしてセルC0、C16に接続
されることもある。
【0030】図4を参照すると、本発明の他の実施例に
従って、16×2二重ポートRAMに変換された2つの
16×2シングル・ポートRAMを表す略図が示され
る。これまでの議論の多くは本実施例に関するので、繰
り返す必要はない。しかし、LUT402はRAMセル
の第1集合(またはバンク)C0〜C15と、RAMセ
ルの第2集合(またはバンク)C32〜C47を含む。
さらに、WDAはWDA1、WDA2によって置き換え
られ、RDAはRDA1、RDA2によって置き換えら
れる。WDA1、RDA1はRAMセルの第1集合C0
〜C15に接続される。同様に、WDA2、RDA2
は、RAMセルの第2集合C32〜C47に接続され
る。LUT402は4×16デコーダ(図示せず)を含
む。アドレス・ラインA0〜A3は2つのRAMセル
を、1つはセルC0〜C15から、もう1つはセルC3
2〜C47から選択する。例えば、アドレス0000は
セルC0、C32を選択し、アドレス1111はセルC
15、C47を選択する。アドレスが0000でWEA
がハイの場合、WDA1の論理値はセルC0に記憶さ
れ、WDA2の論理値はセルC32に記憶される。アド
レスが0000でWEAがローの場合、セルC0、C3
2の内容は、それぞれRDA1、RDA2に接続され
る。
従って、16×2二重ポートRAMに変換された2つの
16×2シングル・ポートRAMを表す略図が示され
る。これまでの議論の多くは本実施例に関するので、繰
り返す必要はない。しかし、LUT402はRAMセル
の第1集合(またはバンク)C0〜C15と、RAMセ
ルの第2集合(またはバンク)C32〜C47を含む。
さらに、WDAはWDA1、WDA2によって置き換え
られ、RDAはRDA1、RDA2によって置き換えら
れる。WDA1、RDA1はRAMセルの第1集合C0
〜C15に接続される。同様に、WDA2、RDA2
は、RAMセルの第2集合C32〜C47に接続され
る。LUT402は4×16デコーダ(図示せず)を含
む。アドレス・ラインA0〜A3は2つのRAMセル
を、1つはセルC0〜C15から、もう1つはセルC3
2〜C47から選択する。例えば、アドレス0000は
セルC0、C32を選択し、アドレス1111はセルC
15、C47を選択する。アドレスが0000でWEA
がハイの場合、WDA1の論理値はセルC0に記憶さ
れ、WDA2の論理値はセルC32に記憶される。アド
レスが0000でWEAがローの場合、セルC0、C3
2の内容は、それぞれRDA1、RDA2に接続され
る。
【0031】LUT404はLUT402と同様であ
る。LUT404はRAMセルの第1集合C16〜C3
1と、RAMセルの第2集合C48〜C63を含む。さ
らに、WDBはWDB1、WDB2によって置き換えら
れ、RDBはRDB1、RDB2によって置き換えられ
る。WDB1、RDB1はRAMセルの第1集合C16
〜C31に接続され、WDB2、RDB2はRAMセル
の第2集合C48〜C63に接続される。アドレス・ラ
インB0〜B3は2つのRAMセルを、1つはセルC1
6〜C31から、もう1つはセルC48〜C63から選
択する。
る。LUT404はRAMセルの第1集合C16〜C3
1と、RAMセルの第2集合C48〜C63を含む。さ
らに、WDBはWDB1、WDB2によって置き換えら
れ、RDBはRDB1、RDB2によって置き換えられ
る。WDB1、RDB1はRAMセルの第1集合C16
〜C31に接続され、WDB2、RDB2はRAMセル
の第2集合C48〜C63に接続される。アドレス・ラ
インB0〜B3は2つのRAMセルを、1つはセルC1
6〜C31から、もう1つはセルC48〜C63から選
択する。
【0032】LUT402、404は各々16×2、す
なわち32のRAMセルを含む。従って、スイッチング
・デバイスS0〜S31は、LUT402、404の間
に接続される。スイッチング・デバイスS0、S15、
S16、S31が示される。スイッチング・デバイスS
0は、セルC0、C16の間に接続され、スイッチング
・デバイスS15は、セルC15、C31の間に接続さ
れ、スイッチング・デバイスS16は、セルC32、C
48の間に接続され、スイッチング・デバイスS31
は、セルC47、C63の間に接続される。または、必
要な場合、スイッチング・デバイスはLUT402の中
のセルの第1集合と、LUT404の中のセルの第2集
合の間、またはその逆に接続出来る。
なわち32のRAMセルを含む。従って、スイッチング
・デバイスS0〜S31は、LUT402、404の間
に接続される。スイッチング・デバイスS0、S15、
S16、S31が示される。スイッチング・デバイスS
0は、セルC0、C16の間に接続され、スイッチング
・デバイスS15は、セルC15、C31の間に接続さ
れ、スイッチング・デバイスS16は、セルC32、C
48の間に接続され、スイッチング・デバイスS31
は、セルC47、C63の間に接続される。または、必
要な場合、スイッチング・デバイスはLUT402の中
のセルの第1集合と、LUT404の中のセルの第2集
合の間、またはその逆に接続出来る。
【0033】図5は、本発明の他の実施例に従って、二
重ポートRAMに変換されたシングル・ポート16×2
RAMとシングル・ポート32×1RAMを表す略図で
ある。これまでの議論の多くは本実施例に関するので、
繰り返す必要はない。例えば、LUT402は、セルC
0〜C15、C32〜C47を有する16×2シングル
・ポートRAMである。しかし、LUT504は、セル
C16〜C31、C48〜C63を有する32×1シン
グル・ポートRAMである。LUT504は、追加のア
ドレス・ライン、ラインB4を含む。LUT504はま
た、アドレス・ラインB0〜B4にセルC16〜C3
1、C48〜C63の1つを選択出来るようにするため
の5×32デコーダ(図示せず)も含む。スイッチング
・デバイスS0〜S31はLUT402、504の間に
接続され、スイッチング・デバイスS0、S15、S1
6、S31が図示される。LUT402、504は2つ
のビット・ストリーム(それぞれセルC0〜C15、C
32〜C47に関連する)を1つのビット・ストリーム
(セルC16〜C31、C48〜C63に関連する)に
変換出来る、「コーナー・ターニング」二重ポートRA
Mを提供する。
重ポートRAMに変換されたシングル・ポート16×2
RAMとシングル・ポート32×1RAMを表す略図で
ある。これまでの議論の多くは本実施例に関するので、
繰り返す必要はない。例えば、LUT402は、セルC
0〜C15、C32〜C47を有する16×2シングル
・ポートRAMである。しかし、LUT504は、セル
C16〜C31、C48〜C63を有する32×1シン
グル・ポートRAMである。LUT504は、追加のア
ドレス・ライン、ラインB4を含む。LUT504はま
た、アドレス・ラインB0〜B4にセルC16〜C3
1、C48〜C63の1つを選択出来るようにするため
の5×32デコーダ(図示せず)も含む。スイッチング
・デバイスS0〜S31はLUT402、504の間に
接続され、スイッチング・デバイスS0、S15、S1
6、S31が図示される。LUT402、504は2つ
のビット・ストリーム(それぞれセルC0〜C15、C
32〜C47に関連する)を1つのビット・ストリーム
(セルC16〜C31、C48〜C63に関連する)に
変換出来る、「コーナー・ターニング」二重ポートRA
Mを提供する。
【0034】図6は、本発明の他の実施例に従って、1
6×1三重ポートRAMに変換された3つの16×1シ
ングル・ポートRAMを表す略図である。これまでの議
論の多くは本実施例に適用されるので、繰り返す必要は
ない。例えば、LUT202、204は16×1シング
ル・ポートRAMである。しかし、LUT606は第3
の16×1シングル・ポートRAMである。LUT60
6はLUT202、204と同様である。LUT606
は16のRAMセルC32〜C47からなり、セルC3
2、C46、C47が図示される。LUT606は、セ
ルC32〜C47の1つを選択するためのアドレス・ラ
インF0〜F3を受信する。LUT606は、書き込み
データ・ラインWDF、書き込み可能ラインWEF、読
み出しデータ・ラインRDFに接続される。ラインF0
〜F3、WEF、WDF、RDFは集合的にセルC32
〜C47のための読み出し/書き込みポートを提供す
る。
6×1三重ポートRAMに変換された3つの16×1シ
ングル・ポートRAMを表す略図である。これまでの議
論の多くは本実施例に適用されるので、繰り返す必要は
ない。例えば、LUT202、204は16×1シング
ル・ポートRAMである。しかし、LUT606は第3
の16×1シングル・ポートRAMである。LUT60
6はLUT202、204と同様である。LUT606
は16のRAMセルC32〜C47からなり、セルC3
2、C46、C47が図示される。LUT606は、セ
ルC32〜C47の1つを選択するためのアドレス・ラ
インF0〜F3を受信する。LUT606は、書き込み
データ・ラインWDF、書き込み可能ラインWEF、読
み出しデータ・ラインRDFに接続される。ラインF0
〜F3、WEF、WDF、RDFは集合的にセルC32
〜C47のための読み出し/書き込みポートを提供す
る。
【0035】スイッチング・デバイスS0〜S15がL
UT202、204の間に接続され、スイッチング・デ
バイスS0、S14、S15が図示される。同様に、ス
イッチング・デバイスS16〜S31はLUT204、
606の間に接続され、スイッチング・デバイスS1
6、S30、S31が図示される。何組かのスイッチン
グ・デバイスは、セルC0〜C15の1つ、セルC16
〜C31の1つ、セルC32〜C47の1つに接続され
る。例えば、スイッチング・デバイスS0はセルC0、
C16の間に接続され、スイッチング・デバイスS16
はセルC16、C32の間に接続される。
UT202、204の間に接続され、スイッチング・デ
バイスS0、S14、S15が図示される。同様に、ス
イッチング・デバイスS16〜S31はLUT204、
606の間に接続され、スイッチング・デバイスS1
6、S30、S31が図示される。何組かのスイッチン
グ・デバイスは、セルC0〜C15の1つ、セルC16
〜C31の1つ、セルC32〜C47の1つに接続され
る。例えば、スイッチング・デバイスS0はセルC0、
C16の間に接続され、スイッチング・デバイスS16
はセルC16、C32の間に接続される。
【0036】スイッチング・デバイスS0〜S31はま
た、共通してコンフィギュレーションRAMセル206
に接続される。スイッチング・デバイスS0〜S31が
切り離しに設定されている時、LUT202、204、
606は、別の、16×1シングル・ポートRAMとし
て独立して機能する。または、スイッチング・デバイス
S0〜S31が接続に設定されている時、LUT20
2、204、606は1つの16×1三重ポートRAM
に変換される。三重ポート・モードでは、セルC0〜C
15は、1体1の関係で、セルC16〜C31、セルC
32〜C47にビット・レベルで接続される。すなわ
ち、セルC0、C16、C32は、スイッチング・デバ
イスS0、S16を通じて第1の接続された3個の組を
形成し、セルC15、C31、C47は、スイッチング
・デバイスS15、S31を通じて、第16の接続され
た3個の組を形成する。さらに、セルC0〜C15、C
16〜C31、C32〜C47は全て、LUT202、
204、606に関連する3つの読み出し/書き込みポ
ートによってアクセス出来る。
た、共通してコンフィギュレーションRAMセル206
に接続される。スイッチング・デバイスS0〜S31が
切り離しに設定されている時、LUT202、204、
606は、別の、16×1シングル・ポートRAMとし
て独立して機能する。または、スイッチング・デバイス
S0〜S31が接続に設定されている時、LUT20
2、204、606は1つの16×1三重ポートRAM
に変換される。三重ポート・モードでは、セルC0〜C
15は、1体1の関係で、セルC16〜C31、セルC
32〜C47にビット・レベルで接続される。すなわ
ち、セルC0、C16、C32は、スイッチング・デバ
イスS0、S16を通じて第1の接続された3個の組を
形成し、セルC15、C31、C47は、スイッチング
・デバイスS15、S31を通じて、第16の接続され
た3個の組を形成する。さらに、セルC0〜C15、C
16〜C31、C32〜C47は全て、LUT202、
204、606に関連する3つの読み出し/書き込みポ
ートによってアクセス出来る。
【0037】本発明の教えるところによって、FPGA
は、比較的わずかなハードウェアの追加によってグレー
ドアップされ、マルチ・ポートRAMを提供出来る。例
えば、スイッチング・デバイス114が占めるシリコン
の領域は、デコーダを追加するよりはるかに少ないと思
われる。その結果、本発明は、FPGAにおいて高度に
有効なマルチ・ポートRAMを実現する。
は、比較的わずかなハードウェアの追加によってグレー
ドアップされ、マルチ・ポートRAMを提供出来る。例
えば、スイッチング・デバイス114が占めるシリコン
の領域は、デコーダを追加するよりはるかに少ないと思
われる。その結果、本発明は、FPGAにおいて高度に
有効なマルチ・ポートRAMを実現する。
【0038】本発明の他のバリエーションは、本技術に
熟練した者には明らかであろう。例えば、LUT(また
は、複数のLUT)によって実現されるRAMは、様々
なサイズのアレーに配置される。コンフィギュレーショ
ンRAMセル206は、コンフィギュレーション・ビッ
ト・ストリームから特定のビットを受信するための個別
のセルとして示されるが、FPGAの他のコンフィギュ
レーションRAMが副号されてスイッチング・デバイス
114に接続/切り離しの指示を提供出来ることが理解
される。LUT以外のプログラム可能な構成要素がRA
Mを実現するために使われることがある。さらに、所与
のFPGAで、いくつかの、全てではないPFUがスイ
ッチング・デバイス114を含むことがある。第1、第
2コンフィギュレーション・ビット・ストリームが順次
適用される場合、PFUは最初に2N+1 シングル・ポー
トRAMを実現し、次いで、2N 二重ポートRAMを実
現する。同様に、コンフィギュレーション・ビット・ス
トリームは、第1PFUが2N+1 シングル・ポートRA
Mセルを実現し、第2PFUが2N 二重ポートRAMセ
ルを実現するように、本質的に同一な第1、第2PFU
をプログラム出来る。第1、第2PFUに適用されるコ
ンフィギュレーション・ビット・ストリームの部分は、
1ビットの値だけ異なる。FPGAを使ってマルチ・ポ
ートRAMを作る方法は上記から明らかである。
熟練した者には明らかであろう。例えば、LUT(また
は、複数のLUT)によって実現されるRAMは、様々
なサイズのアレーに配置される。コンフィギュレーショ
ンRAMセル206は、コンフィギュレーション・ビッ
ト・ストリームから特定のビットを受信するための個別
のセルとして示されるが、FPGAの他のコンフィギュ
レーションRAMが副号されてスイッチング・デバイス
114に接続/切り離しの指示を提供出来ることが理解
される。LUT以外のプログラム可能な構成要素がRA
Mを実現するために使われることがある。さらに、所与
のFPGAで、いくつかの、全てではないPFUがスイ
ッチング・デバイス114を含むことがある。第1、第
2コンフィギュレーション・ビット・ストリームが順次
適用される場合、PFUは最初に2N+1 シングル・ポー
トRAMを実現し、次いで、2N 二重ポートRAMを実
現する。同様に、コンフィギュレーション・ビット・ス
トリームは、第1PFUが2N+1 シングル・ポートRA
Mセルを実現し、第2PFUが2N 二重ポートRAMセ
ルを実現するように、本質的に同一な第1、第2PFU
をプログラム出来る。第1、第2PFUに適用されるコ
ンフィギュレーション・ビット・ストリームの部分は、
1ビットの値だけ異なる。FPGAを使ってマルチ・ポ
ートRAMを作る方法は上記から明らかである。
【0039】本発明の好適な実施例を説明したが、本技
術に熟練した者には、その概念を包含する他の実施例が
使われることが今や明らかであろう。従って、本発明は
開示された実施例に制限されず、添付の請求項の精神と
範囲によってのみ制限される。
術に熟練した者には、その概念を包含する他の実施例が
使われることが今や明らかであろう。従って、本発明は
開示された実施例に制限されず、添付の請求項の精神と
範囲によってのみ制限される。
【図1】一般に本発明の実施例を表す略図である。
【図2】本発明の他の実施例に従って、16×1二重ポ
ートRAMに変換される2つの16×1シングル・ポー
トRAMを表す略図である。
ートRAMに変換される2つの16×1シングル・ポー
トRAMを表す略図である。
【図3】図2のある構成要素の1つの実施例を表す単純
化した回路図である。
化した回路図である。
【図4】本発明の他の実施例に従って、16×2二重ポ
ートRAMに変換された2つの16×2シングル・ポー
トRAMを表す略図である。
ートRAMに変換された2つの16×2シングル・ポー
トRAMを表す略図である。
【図5】本発明の他の実施例に従って、二重ポートRA
Mに変換された16×2シングル・ポートRAMと32
×1シングル・ポートRAMを表す略図である。
Mに変換された16×2シングル・ポートRAMと32
×1シングル・ポートRAMを表す略図である。
【図6】本発明の他の実施例に従って、16×1三重ポ
ートRAMに変換された3つの16×1シングル・ポー
トRAMを表す略図である。
ートRAMに変換された3つの16×1シングル・ポー
トRAMを表す略図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 サトワント シング アメリカ合衆国 18062 ペンシルヴァニ ア,マッカンジー,バイオレット サーク ル 7575
Claims (8)
- 【請求項1】 プログラマブル・ファンクション・ユニ
ット(PFU)を含むフィールド・プログラマブル・ゲ
ート・アレー(FPGA)を含む集積回路であって、 コンフィギュレーション・ビット・ストリームに応答し
て、第1、第2の対応するRAMセル(102、10
8)を含む様々な機能を生成するための第1、第2のプ
ログラム可能な構成要素と、 コンフィギュレーション・ビット・ストリームに応答し
て、RAMセルが一緒にマルチ・ポートRAMセルを提
供するような、RAMセル間のビット・レベル接続を提
供するためのプログラム可能なスイッチング・デバイス
(114)とを含む、集積回路。 - 【請求項2】 第1、第2のプログラム可能な構成要素
が1つかそれ以上のルック・アップ・テーブル(LU
T)(202、204)に含まれる、請求項1に記載の
集積回路。 - 【請求項3】 第1、第2のプログラム可能な構成要素
が1つのPFUに含まれる、請求項1に記載の集積回
路。 - 【請求項4】 第1、第2のプログラム可能な構成要素
が隣合うPFUに含まれる、請求項1に記載の集積回
路。 - 【請求項5】 第1、第2RAMセルが対応する第1、
第2読み出し/書き込みポート(104、110)に接
続され、少なくとも2つの読み出し/書き込みポートを
有するマルチ・ポートRAMセルを提供する、請求項1
に記載の集積回路。 - 【請求項6】 複数のプログラマブル・ファンクション
・ユニット(PFU)とプログラマブル・インターコネ
クション・ネットワークを含む、フィールド・プログラ
マブル・ゲート・アレー(FPGA)をプログラム、操
作する方法であって、 第1PFUに、第1読み出し/書き込みポート(10
4)に接続されたRAMセルの第1集合(102)と、
第2読み出し/書き込みポート(110)に接続された
RAMセルの第2集合(108)として機能するよう指
示し、第1PFUのスイッチング・デバイス(114)
に、RAMセルの組み合わせの間にビット・レベルの接
続を提供し、各RAMセルが1つの接続されたペアの一
部であり、各接続されたペアが、RAMセルの第1集合
からの1つのRAMセルと、RAMセルの第2集合から
の1つのRAMセルを含み、各接続されたペアが第1、
第2と読み出し/書き込みポートの両方によってアクセ
ス出来る二重ポートRAMを提供するよう指示するため
のコンフィギュレーション・ビット・ストリームをFP
GAに適用するステップと、 第1読み出し/書き込みポートを通じて少なくとも1つ
の二重ポートRAMセルにデータを書き込むステップ
と、 第2読み出し/書き込みポートを通じて少なくとも1つ
の二重ポートRAMセルからデータを読み出すステップ
とを含む方法。 - 【請求項7】 第1読み出し/書き込みポートを通じて
少なくとも1つの二重ポートRAMセルからデータを読
み出すステップと、 第2読み出し/書き込みポートを通じて少なくとも1つ
の二重ポートRAMセルにデータを書き込むステップと
を含む、請求項6に記載の方法。 - 【請求項8】 第1読み出し/書き込みポートを通じて
少なくとも1つの二重ポートRAMセルにデータを書き
込むステップと、同時に、 第2読み出し/書き込みポートを通じて少なくとも1つ
の二重ポートRAMセルからデータを読み出すステップ
とを含む、請求項7に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/507,957 US5559450A (en) | 1995-07-27 | 1995-07-27 | Field programmable gate array with multi-port RAM |
US08/507957 | 1995-07-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0983347A true JPH0983347A (ja) | 1997-03-28 |
Family
ID=24020792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8192623A Pending JPH0983347A (ja) | 1995-07-27 | 1996-07-23 | マルチ・ポートramを有するフィールド・プログラマブル・ゲート・アレー |
Country Status (5)
Country | Link |
---|---|
US (1) | US5559450A (ja) |
EP (1) | EP0756383B1 (ja) |
JP (1) | JPH0983347A (ja) |
DE (1) | DE69633370T2 (ja) |
TW (1) | TW298651B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356109B1 (en) | 1999-02-10 | 2002-03-12 | Nec Corporation | Programmable device |
Families Citing this family (129)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5566123A (en) * | 1995-02-10 | 1996-10-15 | Xilinx, Inc. | Synchronous dual port ram |
US5943242A (en) * | 1995-11-17 | 1999-08-24 | Pact Gmbh | Dynamically reconfigurable data processing system |
US5804986A (en) * | 1995-12-29 | 1998-09-08 | Cypress Semiconductor Corp. | Memory in a programmable logic device |
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
US5744980A (en) * | 1996-02-16 | 1998-04-28 | Actel Corporation | Flexible, high-performance static RAM architecture for field-programmable gate arrays |
US5623217A (en) * | 1996-02-26 | 1997-04-22 | Lucent Technologies Inc. | Field programmable gate array with write-port enabled memory |
US5726584A (en) * | 1996-03-18 | 1998-03-10 | Xilinx, Inc. | Virtual high density programmable integrated circuit having addressable shared memory cells |
US5977791A (en) | 1996-04-15 | 1999-11-02 | Altera Corporation | Embedded memory block with FIFO mode for programmable logic device |
US5894565A (en) * | 1996-05-20 | 1999-04-13 | Atmel Corporation | Field programmable gate array with distributed RAM and increased cell utilization |
US5715197A (en) | 1996-07-29 | 1998-02-03 | Xilinx, Inc. | Multiport RAM with programmable data port configuration |
US5933023A (en) * | 1996-09-03 | 1999-08-03 | Xilinx, Inc. | FPGA architecture having RAM blocks with programmable word length and width and dedicated address and data lines |
US5920882A (en) * | 1996-11-21 | 1999-07-06 | Tsi Telsys Inc. | Programmable circuit assembly and methods for high bandwidth data processing |
DE19651075A1 (de) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen |
US6338106B1 (en) | 1996-12-20 | 2002-01-08 | Pact Gmbh | I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures |
DE19654595A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen |
DE19654593A1 (de) | 1996-12-20 | 1998-07-02 | Pact Inf Tech Gmbh | Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit |
DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
EP1329816B1 (de) | 1996-12-27 | 2011-06-22 | Richter, Thomas | Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.) |
US5959466A (en) | 1997-01-31 | 1999-09-28 | Actel Corporation | Field programmable gate array with mask programmed input and output buffers |
US5821776A (en) * | 1997-01-31 | 1998-10-13 | Actel Corporation | Field programmable gate array with mask programmed analog function circuits |
DE19704044A1 (de) * | 1997-02-04 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine |
DE19704728A1 (de) * | 1997-02-08 | 1998-08-13 | Pact Inf Tech Gmbh | Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
DE19704742A1 (de) | 1997-02-11 | 1998-09-24 | Pact Inf Tech Gmbh | Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand |
US6150837A (en) | 1997-02-28 | 2000-11-21 | Actel Corporation | Enhanced field programmable gate array |
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 |
US5905385A (en) * | 1997-04-01 | 1999-05-18 | Advanced Micro Devices, Inc. | Memory bits used to couple look up table inputs to facilitate increased availability to routing resources particularly for variable sized look up tables for a field programmable gate array (FPGA) |
US6011744A (en) * | 1997-07-16 | 2000-01-04 | Altera Corporation | Programmable logic device with multi-port memory |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US6052327A (en) * | 1997-10-14 | 2000-04-18 | Altera Corporation | Dual-port programmable logic device variable depth and width memory array |
US6288970B1 (en) | 1997-10-16 | 2001-09-11 | Altera Corporation | Programmable logic device memory array circuit having combinable single-port memory arrays |
US6191998B1 (en) | 1997-10-16 | 2001-02-20 | Altera Corporation | Programmable logic device memory array circuit having combinable single-port memory arrays |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6127843A (en) * | 1997-12-22 | 2000-10-03 | Vantis Corporation | Dual port SRAM memory for run time use in FPGA integrated circuits |
DE19807872A1 (de) | 1998-02-25 | 1999-08-26 | Pact Inf Tech Gmbh | Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl. |
US6262933B1 (en) | 1999-01-29 | 2001-07-17 | Altera Corporation | High speed programmable address decoder |
WO2002013000A2 (de) | 2000-06-13 | 2002-02-14 | Pact Informationstechnologie Gmbh | Pipeline ct-protokolle und -kommunikation |
AU5805300A (en) | 1999-06-10 | 2001-01-02 | Pact Informationstechnologie Gmbh | Sequence partitioning in cell structures |
GB2351824B (en) | 1999-07-02 | 2004-03-31 | Altera Corp | Embedded memory blocks for programmable logic |
US6400635B1 (en) | 2000-03-15 | 2002-06-04 | Altera Corporation | Memory circuitry for programmable logic integrated circuit devices |
US6373779B1 (en) * | 2000-05-19 | 2002-04-16 | Xilinx, Inc. | Block RAM having multiple configurable write modes for use in a field programmable gate array |
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 |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
US6990555B2 (en) * | 2001-01-09 | 2006-01-24 | Pact Xpp Technologies Ag | Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.) |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US6720796B1 (en) | 2001-05-06 | 2004-04-13 | Altera Corporation | Multiple size memories in a programmable logic device |
EP2224330B1 (de) | 2001-06-20 | 2012-05-09 | Krass, Maren | Verfahren und gerät zum partitionieren von grossen rechnerprogrammen |
US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
US8686475B2 (en) | 2001-09-19 | 2014-04-01 | Pact Xpp Technologies Ag | Reconfigurable elements |
WO2003060747A2 (de) | 2002-01-19 | 2003-07-24 | Pact Xpp Technologies Ag | Reconfigurierbarer prozessor |
US8127061B2 (en) | 2002-02-18 | 2012-02-28 | Martin Vorbach | Bus systems and reconfiguration methods |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US20030229738A1 (en) * | 2002-06-05 | 2003-12-11 | Dactron | Controller interface |
AU2003286131A1 (en) | 2002-08-07 | 2004-03-19 | Pact Xpp Technologies Ag | Method and device for processing data |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US6948030B1 (en) * | 2002-09-04 | 2005-09-20 | Cypress Semiconductor Corporation | FIFO memory system and method |
WO2004038599A1 (de) | 2002-09-06 | 2004-05-06 | Pact Xpp Technologies Ag | Rekonfigurierbare sequenzerstruktur |
KR100475093B1 (ko) * | 2002-09-13 | 2005-03-10 | 삼성전자주식회사 | 둘 이상의 입력포트를 구비하는 집적 회로 장치 및 시스템 |
JP3958232B2 (ja) * | 2003-03-05 | 2007-08-15 | 富士通株式会社 | 動作継続中にデータ書き換え可能な論理装置 |
JP4700611B2 (ja) | 2003-08-28 | 2011-06-15 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | データ処理装置およびデータ処理方法 |
US7350026B2 (en) * | 2004-12-03 | 2008-03-25 | Thales | Memory based cross compare for cross checked systems |
US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
US7463056B1 (en) | 2005-12-12 | 2008-12-09 | Xilinx, Inc. | Writeable shift register lookup table in FPGA with SRAM memory cells in lookup table reprogrammed by writing after initial configuration |
US7392032B2 (en) * | 2005-12-30 | 2008-06-24 | L3 Communications Corporation | Modular ASIC with crosspoint switch |
EP1974265A1 (de) | 2006-01-18 | 2008-10-01 | PACT XPP Technologies AG | Hardwaredefinitionsverfahren |
US8041759B1 (en) | 2006-02-09 | 2011-10-18 | 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 |
US8266198B2 (en) | 2006-02-09 | 2012-09-11 | 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 |
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 |
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 |
US8645449B1 (en) | 2009-03-03 | 2014-02-04 | Altera Corporation | Combined floating point adder and subtractor |
US8805916B2 (en) | 2009-03-03 | 2014-08-12 | Altera Corporation | Digital signal processing circuitry with redundancy and bidirectional data paths |
US8468192B1 (en) | 2009-03-03 | 2013-06-18 | Altera Corporation | Implementing multipliers in a programmable integrated circuit device |
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 |
US8706790B1 (en) | 2009-03-03 | 2014-04-22 | Altera Corporation | Implementing mixed-precision floating-point operations in a programmable integrated circuit device |
US8886696B1 (en) | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
US8650236B1 (en) | 2009-08-04 | 2014-02-11 | Altera Corporation | High-rate interpolation or decimation filter in integrated circuit device |
US8412756B1 (en) | 2009-09-11 | 2013-04-02 | Altera Corporation | Multi-operand floating point operations in a programmable integrated circuit device |
US8396914B1 (en) | 2009-09-11 | 2013-03-12 | Altera Corporation | Matrix decomposition in an 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 |
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 |
CN102436427B (zh) * | 2011-11-07 | 2014-10-08 | 华为技术有限公司 | 一种数据读写方法和存储设备 |
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 |
US9350357B2 (en) * | 2012-10-28 | 2016-05-24 | Taiyo Yuden Co., Ltd. | Reconfigurable semiconductor device |
US9207909B1 (en) | 2012-11-26 | 2015-12-08 | Altera Corporation | Polynomial calculations optimized for programmable integrated circuit device structures |
US8923089B2 (en) * | 2012-12-21 | 2014-12-30 | Lsi Corporation | Single-port read multiple-port write storage device using single-port memory cells |
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 |
US9305618B2 (en) | 2014-01-30 | 2016-04-05 | International Business Machines Corporation | Implementing simultaneous read and write operations utilizing dual port DRAM |
US9374094B1 (en) | 2014-08-27 | 2016-06-21 | Altera Corporation | 3D field programmable gate array system with reset manufacture and method of manufacture thereof |
US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
US10168938B2 (en) * | 2016-11-25 | 2019-01-01 | Hughes Network Systems, Llc | LDPC decoder design to significantly increase throughput in ASIC by utilizing pseudo two port memory structure |
US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5960793A (ja) * | 1982-09-30 | 1984-04-06 | Fujitsu Ltd | 半導体メモリ |
USRE34363E (en) * | 1984-03-12 | 1993-08-31 | Xilinx, Inc. | Configurable electrical circuit having configurable logic elements and configurable interconnects |
US4870302A (en) * | 1984-03-12 | 1989-09-26 | 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 |
US5343406A (en) * | 1989-07-28 | 1994-08-30 | Xilinx, Inc. | Distributed memory architecture for a configurable logic array and method for using distributed memory |
US5128559A (en) * | 1989-09-29 | 1992-07-07 | Sgs-Thomson Microelectronics, Inc. | Logic block for programmable logic devices |
US5255221A (en) * | 1991-04-02 | 1993-10-19 | At&T Bell Laboratories | Fully configurable versatile field programmable function element |
US5282174A (en) * | 1992-01-31 | 1994-01-25 | At&T Bell Laboratories | Dual-port memory with read and read/write ports |
US5384497A (en) * | 1992-11-04 | 1995-01-24 | At&T Corp. | Low-skew signal routing in a programmable array |
US5386156A (en) * | 1993-08-27 | 1995-01-31 | At&T Corp. | Programmable function unit with programmable fast ripple logic |
US5442306A (en) * | 1994-09-09 | 1995-08-15 | At&T Corp. | Field programmable gate array using look-up tables, multiplexers and decoders |
-
1995
- 1995-07-27 US US08/507,957 patent/US5559450A/en not_active Expired - Lifetime
-
1996
- 1996-06-21 TW TW085107452A patent/TW298651B/zh active
- 1996-07-17 DE DE69633370T patent/DE69633370T2/de not_active Expired - Lifetime
- 1996-07-17 EP EP96305238A patent/EP0756383B1/en not_active Expired - Lifetime
- 1996-07-23 JP JP8192623A patent/JPH0983347A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356109B1 (en) | 1999-02-10 | 2002-03-12 | Nec Corporation | Programmable device |
Also Published As
Publication number | Publication date |
---|---|
DE69633370T2 (de) | 2005-09-22 |
US5559450A (en) | 1996-09-24 |
EP0756383A2 (en) | 1997-01-29 |
EP0756383A3 (en) | 2000-11-15 |
DE69633370D1 (de) | 2004-10-21 |
TW298651B (ja) | 1997-02-21 |
EP0756383B1 (en) | 2004-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0983347A (ja) | マルチ・ポートramを有するフィールド・プログラマブル・ゲート・アレー | |
US6128770A (en) | Configurable logic array including IOB to longlines interconnect means for providing selectable access to plural longlines from each IOB (input/output block) | |
EP0461798B1 (en) | Configurable interconnect structure | |
US6150839A (en) | Rapidly reconfigurable FPGA having a multiple region architecture with reconfiguration caches useable as data RAM | |
US6853215B1 (en) | Programmable I/O element circuit for high speed logic devices | |
US5233539A (en) | Programmable gate array with improved interconnect structure, input/output structure and configurable logic block | |
US5260881A (en) | Programmable gate array with improved configurable logic block | |
JP3228818B2 (ja) | 論理モジュール間にカスケード接続を有するプログラマブル論理アレイ集積回路 | |
US5442306A (en) | Field programmable gate array using look-up tables, multiplexers and decoders | |
EP0789950B1 (en) | Apparatus for programmable circuit and signal switching | |
US5396126A (en) | FPGA with distributed switch matrix | |
US6356109B1 (en) | Programmable device | |
US7269089B1 (en) | Divisible true dual port memory system supporting simple dual port memory subsystems | |
US5544104A (en) | Virtual crosspoint memory | |
US5623217A (en) | Field programmable gate array with write-port enabled memory | |
US5475644A (en) | Crosspoint memory | |
USRE41561E1 (en) | Method for sharing configuration data for high logic density on chip | |
JP3471628B2 (ja) | 書き換え可能な論理回路およびラッチ回路 | |
JPH0222938A (ja) | タイムスロット切替方法 | |
WO1997002710A1 (en) | Integrated circuit cross point switch | |
JP2000276400A (ja) | アドレス及びデータ転送回路 | |
JP2882617B2 (ja) | プログラマブル論理セル | |
JPH03214492A (ja) | マルチポートメモリ | |
JPH02207321A (ja) | 双方向fifoメモリ | |
JPH0310335A (ja) | エミュレーションチップ |