JPH09246954A - 改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ - Google Patents

改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ

Info

Publication number
JPH09246954A
JPH09246954A JP8121502A JP12150296A JPH09246954A JP H09246954 A JPH09246954 A JP H09246954A JP 8121502 A JP8121502 A JP 8121502A JP 12150296 A JP12150296 A JP 12150296A JP H09246954 A JPH09246954 A JP H09246954A
Authority
JP
Japan
Prior art keywords
programmable
resources
address
memory
addressable
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.)
Granted
Application number
JP8121502A
Other languages
English (en)
Other versions
JP3480784B2 (ja
Inventor
Wendell Ray Larsen
ウェンデル・レイ・ラーセン
Frank Ray Keyser Iii
フランク・レイ・キーザー
Brian A Worth
ブライアン・エイ・ワース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH09246954A publication Critical patent/JPH09246954A/ja
Application granted granted Critical
Publication of JP3480784B2 publication Critical patent/JP3480784B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Memories (AREA)

Abstract

(57)【要約】 【課題】 メモリをプログラマブル・ゲート・アレイの
プログラム可能リソースに割り当てる改善された方法、
及び装置を提供する。 【解決手段】 フィールド・プログラマブル・ゲート・
アレイは、x、y2次元配列のx及びy次元それぞれに
よってアドレス可能な、複数のプログラム可能リソース
をもつ。メモリ素子は、フィールド・プログラマブル・
ゲート・アレイの関連するプログラム可能リソースを構
成するための構成データを保管する、複数のメモリ・ユ
ニットを提供する。コントローラは所定の構成データを
取り出すために、Nビット・アドレスを用いてメモリ素
子をアドレスする。アドレス・デコーダ兼シーケンサ
は、Nビット・アドレスを第1、第2、及び第3の部分
に分割し、複数のプログラム可能リソースのx及びy次
元のそれぞれをアドレスするために、第2の部分に従っ
て第1及び第3の部分を切り換えて用い、取り出された
構成データに従って構成される関連したプログラム可能
リソースを選択する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は概して集積回路素子
に関し、より詳細には、複数のプログラム可能な論理セ
ル、及びプログラム可能な相互接続ネットワークを有す
る、プログラム可能な集積回路素子に関する。
【0002】
【従来の技術】プログラム可能な集積回路は当該技術分
野では周知のものであり、プログラム可能なロジック・
デバイス(PLD)、プログラム可能なアレイ・ロジッ
ク(PAL)、及びプログラム可能なロジック・アレイ
(PLA)が含まれる。これらのプログラム可能な回路
のそれぞれは、入力AND論理プレーン及びその後に付
くOR論理プレーンを備える。出力関数は、入力条件の
積を加算したものとして計算される。論理プレーンは一
般にプログラム可能であり、したがってこれらプレーン
の当初の全体的なレイアウトは、特定の用途のためにカ
ストマイズできる。
【0003】プログラム可能な回路に対する更に一般的
なアプローチは、プログラマブル・ゲート・アレイ(P
GA)中に個別の特定の機能のものでない論理セルの配
列を設けることである。セルを相互接続し、配列にデー
タを入力し、配列から出力を取り出すために、一般にプ
ログラム可能な相互接続ネットワークが設けられる。カ
ストマイゼーション、即ち一般には共通なものとして設
計される論理セル、及び相互接続ネットワークをプログ
ラムすることは、特定の用途に対して行われる。そのよ
うな配列の1つは、マスク式プログラマブル・ゲート・
アレイ(MPGA)であり、この配列では、セル及び配
線ネットワークの構成が、集積回路に最後の金属化層を
付着させるときに行われる。変形のアプローチでは、金
属化パターンをカストマイズするためにレーザが方向づ
けられたエネルギを用いる。このような配列のもう1つ
は、フィールド・プログラマブル・ゲート・アレイ(F
PGA)であり、この配列では、構成は「フィールド」
でユーザが行うことができる。こうした構成は、電気的
にプログラム可能な可溶性の結線、アンチフューズ、メ
モリ制御トランジスタ、又はフローティング・ゲート・
トランジスタの使用によりもたらされる。
【0004】FPGAをプログラムするに当っては、構
成データは、外部の記憶素子からFPGAの電気的にプ
ログラム可能なリソース(resource)に転送さ
れる。FPGAの電気的にプログラム可能なリソース
は、一般に配列構造に配置されており、配列の関連した
X及びYのアドレスを用いてアクセスされる。一般に外
部メモリのメモリ・マップは、電気的にプログラム可能
なリソースのメモリ・マップに対応しており、その結
果、外部メモリのメモリ・セルをアクセスするアドレス
は、関連するプログラム可能リソースをアクセスするア
ドレスに対応する。FPGAのサイズ及び機能が拡張さ
れるにしたがって、X、Yでアドレス可能な配列の関連
するメモリ・マップは、分割されて不連続なものにな
る。外部メモリのメモリ・マップがプログラム可能なリ
ソースのメモリ・マップに対応するときは、外部メモリ
も分割されて不連続なものになり、その結果外部メモリ
は、普通ならよりぎっしりと詰って割り当てられるもの
が、多くの未使用の部分を生じることになり、恐らく余
分のアドレス・ビットも必要になる。
【0005】
【発明が解決しようとする課題】
(a) したがって、本発明の目的は、プログラマブル
・ゲート・アレイのプログラム可能リソースにメモリを
割り当てるための改善された方法及び装置を提供するこ
とである。 (b) 本発明の更に別の目的は、フィールド・プログ
ラマブル・ゲート・アレイに外部メモリを割り当てるに
当り、メモリ空間を節約し、メモリをアドレスするため
に必要とされるアドレス・ビット数を減少させる方法、
及びその装置を提供することである。 (c) 本発明の更に別の目的は、フィールド・プログ
ラマブル・ゲート・アレイにメモリを割り当てるに当
り、必要なメモリ・サイズを減少させ、その結果メモリ
をアドレスに必要なアドレス・ビット数を減少させ、そ
の一方でメモリ・アドレスと、フィールド・プログラマ
ブル・ゲート・アレイの関連したプログラム可能リソー
スの相対的位置との間に相関性を維持する方法、及びそ
の装置を提供することである。
【0006】
【課題を解決するための手段】本発明の第1の面に従っ
て、コンピュータ・システムは複数のアドレス可能メモ
リ・ユニット、及び2次元配列に配置された複数の制御
可能リソースをもつ。複数の制御可能リソースのそれぞ
れは、それぞれに対応する複数のメモリ・ユニット中の
1つに関連づけられる。複数のメモリ・ユニットはNビ
ットのアドレスでアクセスされる。複数のメモリ・ユニ
ットをそれぞれの制御可能リソースに関連づけるに際
し、複数のメモリ・ユニットをアドレスにするNビット
のアドレスは第1、第2、及び第3の部分に分割され
る。第1及び第3の部分は、2次元配列のそれぞれの次
元に切り換えられるように関連づけられる。第2の部分
は、配列の2つの次元量のどちらが第1及び第3の部分
に関連づけられるかを定めるために使われる。
【0007】本発明のもう1つの面に従って、X、Y2
次元配列によってアドレス可能な複数のプログラム可能
リソースをもつプログラマブル・ゲート・アレイに対し
て、メモリを割り当てる方法を提供する。メモリはNビ
ットのアドレスによってアクセスされる。Nビットのア
ドレスは第1、第2、及び第3の部分に分割される。N
ビット・アドレスの第1及び第3の部分は、複数のプロ
グラム可能リソースのX、Y2次元配列のX、及びY次
元それぞれに対して第2の部分に従って切り換えられる
ように関連づけられる。Nビット・アドレスによってア
クセスされるメモリ・ユニットは、Nビット・アドレス
の第1及び第3の部分によってアクセスされて、X、Y
2次元配列内の複数のプログラム可能リソースの、それ
ぞれのプログラム可能リソースに割り当てられる。
【0008】本発明の上記の面に加えて、X、Y2次元
配列の所定の位置にあるプログラム可能リソースは、第
3のZ次元に沿ってアクセス可能な複数の個別のプログ
ラム可能リソースをもつ。Nビット・アドレスを分割す
るステップは、更にNビット・アドレス中で第3のZ次
元に関連づけられる第4の部分を提供することも含む。
Nビット・アドレスによってアクセスされるメモリは、
Nビット・アドレスの第4の部分によってアクセスされ
る第3のZ次元に沿い、更に第2の部分に従って、Nビ
ット・アドレスの第1及び第3の部分によってアクセス
されるX、Y2次元配列内で,複数の個別のプログラム
可能リソースのそれぞれの個別プログラム可能リソース
に対して、割り当てられる。
【0009】本発明のもう1つの実施例に従い、コンピ
ュータ・システムは、X、Y2次元配列によってアクセ
ス可能な複数のプログラム可能リソース、及びNビット
・アドレスによってアクセス可能な、複数のアクセス可
能メモリ・ユニットを含む。コントローラは、所定のN
ビット・アドレスによって複数のアクセス可能メモリ・
ユニットをアクセスする。分割回路が、Nビット・アド
レスを第1、第2、及び第3の部分に分割する。デコー
ダがX、Y2次元配列のX、Y次元のそれぞれを、前記
所定のNビット・アドレスの第2の部分に従って、Nビ
ット・アドレスの第1及び第3の部分のそれぞれ、又は
第3及び第1の部分のそれぞれを使って切り換えてアク
セスする。
【0010】
【発明の実施の形態】本発明は、プログラマブル・ゲー
ト・アレイのプログラム可能リソースに対し、効率よく
メモリを割り当てる方法及び装置を提供する。この方法
及び装置は、メモリをアクセスするのに必要なアドレス
・ビット数を減少させ、一方でメモリをアクセスするア
ドレスと、プログラマブル・ゲート・アレイの関連する
プログラム可能リソースの相対位置との相関関係を維持
する。本発明の理解を容易にするために、この発明開示
では、さまざまなプログラム可能リソースが配列中でお
互いに関連づけて配置される、フィールド・プログラマ
ブル・ゲート・アレイを中心として本発明を説明する。
構成データをマッピングするための本発明のこの記述
は、フィールド・プログラマブル・ゲート・アレイのプ
ログラム可能リソースを構成することに関連したもので
あり、単に1つの適用例を図を交えて説明しているだけ
である。本発明に紹介されているようなアドレスを折り
重ねる技術及びその装置は、他の共通点のあるプログラ
マブル・アレイの用途にも採用できることを理解された
い。
【0011】以降で本開示は、フィールド・プログラマ
ブル・ゲート・アレイ及びその関連するプログラム可能
リソースを簡潔に記述する。さまざまなプログラム可能
リソースを記述するに当り、さまざまなプログラム可能
リソースを構成するために必要な構成データを表現する
記号を用いる。そしてフィールド・プログラマブル・ゲ
ート・アレイ中の関連するプログラム可能リソースの相
対的位置を記述するために、これらの記号は記号配列図
中に図示される。その後、従来技術のデータ(構成)の
メモリ・マップが、フィールド・プログラマブル・ゲー
ト・アレイのさまざまなプログラム可能リソースにメモ
リを割り当てるために導入され、ここではメモリ・マッ
プの構成データ用アドレスは、フィールド・プログラマ
ブル・ゲート・アレイ内の関連するプログラム可能リソ
ースの相対位置に対応する。最後に本発明のアドレス折
り重ねが紹介される。アドレス折り重ねは、メモリをア
クセスするために必要なアドレス・ビット数をより少く
するより高密度に集合させたメモリ・マップを提供し、
一方でアドレスとフィールド・プログラマブル・ゲート
・アレイ内の関連するプログラム可能リソースの相対位
置との対応を、エンコードはされているが、維持する。
【0012】図1を参照すると、複数の論理セルを含む
プログラマブル・ゲート・アレイ10のレイアウトが示
されている。この特定の実施例では、複数のプログラム
可能論理セルは、セクタ12に分割されている56×5
6配列のセルから成っている。個々のセクタ12は、8
×8のセル・グループによって画定されている。配列の
周辺に沿って入出力ピン14も示されており、これらは
データの入力及び出力に使われる。更にこれらのいくつ
かのピンは、クロック・ピン、リセット・ピン、又は配
列10のプログラム可能リソースをプログラムするため
の構成用ピンの用途に専用とされる。この配列の入出力
部分は、米国特許申請、主題「PROGRAMMABL
E ARRAY I/O−ROUTING RESOU
RCE」に従って実現できる。
【0013】図2を参照すると、論理161,1から16
8,8によって成るプログラム可能論理セルの単一セクタ
12が示されている。論理セル161,6は、垂直方向の
相互接続導体18a及び18b、ならびに水平方向の相
互接続導体20a及び20bによって囲まれていること
が示されている。これらの水平方向及び垂直方向の相互
接続導体は、配列の行及び列の間に配置され、配列内の
いずれかの2つの論理セル間、及びこれと入出力ピンと
の間の接続を行う。相互接続導体は一緒になってプログ
ラマブル・アレイの全体的な相互接続ネットワークを形
成する。相互接続ネットワーク内のプログラム可能リソ
ースが、プログラム可能ロジック・セル内のプログラム
可能リソースに加えられることもある。相互接続ネット
ワーク内のプログラム可能リソースは、例えば2つの垂
直方向導体間で信号を伝達するスイッチング素子36を
含むこともある。加えてバス折り返し点(示されてな
い)が、特定の垂直相互接続導体と特定の水平相互接続
導体との間に、プログラム可能な相互接続を提供するた
めに用いられることもある。相互接続ネットワークは、
米国特許申請、主題「PROGRAMMABLE AR
RAY INTERCONNECT NETWORK」
に従って実現することができる。
【0014】特定のプログラマブル・ゲート・アレイに
関連する個々の論理セル16は、図3に示すように、複
数の論理素子及び内部相互接続を含む。プログラム可能
入力マルチプレクサ24a〜24dは、論理セルを囲む
ローカル・バスL1、L2、L3、L4のそれぞれから
の複数の入力を受信する。更にマルチプレクサへの入力
のいくつかは近隣の論理セルへのクロック、フィードバ
ック、及び論理1又は論理0信号と直接接続F、Gであ
る。
【0015】個々の入力マルチプレクサ24は、スタテ
ィックRAM(示されてない)のプログラム可能ビット
によって駆動され、論理セル16の内部論理にどの入力
が結合するのかを選択するための選択ライン(示されて
ない)をもつ。プログラム可能入力マルチプレクサ24
aは16の入力をもち、したがって16の入力のどの1
つが自身の出力Eに送られるのかを選択するために、4
つのプログラム可能ビットを必要とする。プログラム可
能入力マルチプレクサ24bは8入力をもち、したがっ
て8入力の1つを選択して自身の出力Fに送るために、
マルチプレクサを構成するには3つのみのプログラム可
能ビットを必要とする。プログラム可能入力マルチプレ
クサ24cは、マルチプレクサ24dと共に16入力を
もち、したがってそれぞれのマルチプレクサは、4つの
構成用ビットを必要とする。
【0016】個々のマルチプレクサ24の出力はプログ
ラム可能反転回路26を通過し、これらのプログラム可
能反転回路は、自身のプログラミング状態に従って個々
のマルチプレクサからの出力を直接に、又は反転させ
て、個々のプログラム可能NAND/NOR論理素子2
2に渡す。プログラム可能NAND/NORゲート22
の論理タイプは、それらに関連するプログラム可能ビッ
トに従って決定される。論理素子22からの出力I、J
は、更に別の論理素子27、29及びマルチプレクサ2
8、30に結合される。フリップ・フロップ25は論理
素子29からの入力信号D、ならびに関連するリセット
信号及びクロック信号を受信する。
【0017】出力マルチプレクサ28は4つの入力をも
つ。それらは論理素子22からの出力I、論理素子27
からの出力の反転回路を経由したもの、フリップ・フロ
ップ25からの出力、及びマルチプレクサ30からの出
力である。マルチプレクサ28は自身の構成ビット(示
されていない)に従って構成され、その出力はトライ・
ステイト・バッファ32を介して、プログラム可能出力
マルチプレクサ34に結合されている。更にマルチプレ
クサ28の出力は反転バッファを介して、北、東、西、
南、にある近接の論理セルに直接接続信号Fを供給す
る。マルチプレクサ30も4つの入力をもつ。それらは
論理素子22からの出力J、論理素子29及び27から
の2つの出力、ならびにマルチプレクサ28からの出力
である。マルチプレクサ30の出力は、反転バッファを
介して近接論理セルに直接接続信号Gを供給する。
【0018】出力マルチプレクサ34は、論理セルの多
数の側面に存在する関連したローカル・バスL1〜L4
に結合される16の出力をもつ。トライ・ステイト・バ
ッファ32からの出力は、マルチプレクサの構成ビット
(示されていない)に従って、16出力の1つに結合さ
れる。論理セル16内部の論理及び相互接続のこれ以上
の説明は、米国特許申請、主題「PROGRAMMAB
LE LOGIC CELL」に記述されている。
【0019】通過ゲート・マルチプレクサは、ローカル
・バスへのコア・セルの相互接続を行う入出力マルチプ
レクサとして用いられる。これらのマルチプレクサは、
静的ランダム・アクセス・メモリ(SRAM)セルによ
って制御される。SRAMセルは、通過ゲート・マルチ
プレクサ内の通過ゲートに直接に、又は間接に(デコー
ダを経由)結合され、通過ゲートの状態を制御する。例
えば論理セル16は、論理セルの多数の側面に存在する
入力接続Eを制御する、プログラム可能入力マルチプレ
クサ24aを含む。この開示の特定の実施例では、個々
の潜在的バスから伝送ゲートのソース/ドレインの組み
合わせに単一の接続がされ、そして伝送ゲートのソース
/ドレインの組み合わせは、論理セルの入力ノードに結
合されている。16のこのような伝送ゲートが、16:
1通過ゲート・マルチプレクサに存在する。ソフトウェ
ア及びプログラミング・システムのデコード論理回路
が、ただ1つの特定の通過ゲートが、マルチプレクサ2
4aに関連する入力ノードに信号を伝達することを保証
する。
【0020】引き続く節の中で、プログラマブル・ゲー
ト・アレイのさまざまなプログラム可能リソースの構成
データを表すために、いくつかのラベル及び信号が使わ
れる。構成データ、関連するプログラム可能リソース、
及びそれらの相関関係の概略の記述のみがなされる。こ
れらのデータ及びプログラム可能リソースの具体的詳細
は、本発明を理解するために不必要であり、本発明は、
プログラマブル・アレイのプログラム可能リソースに、
メモリ(構成データ保管用)を割り当てるためのメモリ
・マップに主に関係している。次の表は、フィールド・
プログラマブル・ゲート・アレイに関する構成データ記
号、対応するバイト・ラベル、関連説明、及び1列当り
のビット数の早見表である。 [表] 記号 バイト 説明 ビット数/列 C a セル論理 8 W bcde セル配線 32 R fgh fgh 中継器グループ 48 L ll 中継器ラッチ・ジャンパ 16 J ジャンパ 4 D クロック/リセット分配 4 G グローバル分配 5 I ii 入出力構成 8 B stuv wxyz 入出力バス中継器 64 M nopq 入出力バス折り返し点、MUX 32
【0021】論理セル16のプログラム可能NAND/
NOR論理素子22は、8ビットによって構成され、プ
ログラムされる。構成データのこれらの8ビットは、ラ
ベル付けされたバイト「a」となり、記号Cで表され
る。フィールド・プログラマブル・ゲート・アレイの個
々の論理セル16は、関連するセル論理構成データCを
必要とする。
【0022】コア・セル配線ネットワークを構成するた
めには、データの別の4バイト「bcde」が必要であ
る。データのこれらの4バイトは全体がWで表される。
したがって、フィールド・プログラマブル・ゲート・ア
レイの個々の論理セルをプログラム化するためには、3
2の配線構成ビット及び8つの論理構成ビットが必要に
なることが理解できる。
【0023】図4に示すように、個々のコア・セルの対
角線に位置する2つの角(かど)に、プログラム可能な
バス折り返し点38が設けられ、スーパ・バス以外のす
べてのバスに対して、垂直バスを水平バスに結合するこ
とができる。コア・セル16を取囲むバス配線間にプロ
グラム可能バス折り返し点を構成するための構成データ
は、そのコア・セルに対する配線構成データW中に含ま
れる。
【0024】図4を参照すると、水平バス及び垂直バス
が、フィールド・プログラマブル・ゲート・アレイ内で
論理セル16のそれぞれを取囲んでいる。これらのバス
は4つのローカル・バスL1、L2、L3、L4、2つ
の直通バスE1、E2、及び1つのスーパ・バスS1を
含んでいる。個々のセクタの境界において、例えば8つ
の論理セル毎にローカル・バス、直通バス、及びスーパ
・バス配線間の切り替えを行うため、及びフィールド・
プログラマブル・ゲート・アレイの多数のセクタにわた
ってローカル・バスをバッファリングするために、中継
器のグループ36がバス配線の中間に置かれる。中継器
グループの個々の中継器は、関連する構成データによっ
てプログラム可能であり、複数の相互接続構成の中の1
つを提供する。中継器グループ中の6中継器のそれぞれ
を構成するためには、8つのプログラミング・ビットが
必要である。中継器グループを構成するためのデータの
関連バイトは、「fgh fgh」とラベル付けされ
る。これらの6バイト用の構成データは、全体として記
号Rで表される。
【0025】中継器ラッチ・ジャンパ(示されていな
い)もまた、それぞれの中継器グループ36の個々の中
継器に関連づけられる。それぞれの中継器グループのロ
ーカル・バスに関連して、プログラム可能通過ゲート
(ジャンパ)があり、この通過ゲートは、中継器グルー
プの1方のローカル・バスを、この中継器グループの他
方の関連するローカル・バスに結合するために、選択的
にイネーブルにされる。更にLSSD(レベル・センシ
ティブ・スキャン・デザイン)ラッチが、中継器グルー
プの1方のローカル・バスと、この中継器グループの他
方の関連するローカル・バスとの間に配置される。この
LSSDレジスタ(ラッチ)は、ローカル・バスのデー
タを選択的に捕捉するため、このレジスタを通して選択
的に信号を伝達するため、又は自身からの信号をローカ
ル・バス上に選択的に送り出すために、プログラム可能
である。ラッチ・ジャンパの3つの組当り8構成ビット
が必要であり、中継器グループ当り2つのジャンパの3
つの組が設けられていることに注意されたい。したがっ
て、所定のラッチ・ジャンパ・グループに対して構成デ
ータの2つのバイト「ll」が、必要になる。構成デー
タのこれらの2バイトは、全体として記号Lで表され
る。
【0026】所定のセクタ全体の半分の位置において、
行及び列の双方に関連するローカル・バスの選択は、関
連する行バス用の水平のジャンパ、及び関連する列バス
用の垂直のジャンパが備えられている。水平及び垂直の
ジャンパは、それぞれのバスをより小さなバス部分に更
に分割し、その結果、所定のセクタ全体にわたるローカ
ル・バスの1部分は、そのローカル・バスの他の部分か
ら分離されたり、分離されなかったりする。1セクタの
論理セルの1行当りの水平バスの水平のジャンパをプロ
グラムするために、構成データの4ビットが必要であ
り、更に1セクタの論理セルの1列当りの垂直バスの垂
直のジャンパをプログラムするためにも、構成データの
4ビットが必要である。それぞれのジャンパ・グループ
を個別に構成するために必要となる構成データの4ビッ
トは、全体として記号Jで表される。
【0027】図5及び図6を参照すると、個々のセクタ
の個々の列は、論理セル16のフリップ・フロップ43
にクロック信号を分配するための分配ネットワーク、及
びフリップ・フロップにリセット信号を分配するための
同様の分配ネットワークをもつ。列クロック線44は、
関連する列クロック・マルチプレクサ42の出力からク
ロック信号を受信し、セクタ内の論理セル列中の個々の
論理セル16のフリップ・フロップ43にこのクロック
信号を伝達する。マルチプレクサ42は、4つの隣接す
るグローバル・クロック線の1つ、例えば44から、構
成データの2ビットに従って選択されたクロック信号を
使って、列クロック線45をドライブするために、構成
データの2ビットに従って構成される。同じように、同
様の回路及び信号線(示されていない)が、多数のコア
・セル列のフリップ・フロップ43にリセット信号を分
配するために、設けられる。各列の関連するリセット用
マルチプレクサを構成するために、同様に構成データの
2ビットが必要である。その結果、所定のセクタ内で、
クロック信号及びリセット信号それぞれを分配するため
のマルチプレクサを構成するために、1列当り合計で構
成データの4ビットが必要になる。分配用構成データの
これらの4ビットは、全体として記号Dで表される。
【0028】フィールド・プログラマブル・ゲート・ア
レイの各列に関連し、このゲート・アレイの特定の実施
例で特徴付けられているように、多数のセクタにまたが
ってグローバルな列クロック線44があり、この線は関
連するグローバル列マルチプレクサ46からのクロック
信号を分配する。それぞれのグローバル列クロック線4
4をドライブするために、各グローバル・マルチプレク
サ46の入力として3つの第1次クロックが使われる。
これに代る方法として、8入力マルチプレクサ(示され
ていない)に対しては、6つの第1次クロックが使われ
る。所定のセクタの所定の列からのもう1本の信号線
が、マルチプレクサ46に対する4つ目(7つ目)の入
力として結合され、関連するグローバル列クロック線4
4をドライブするために使われる。フィールド・プログ
ラマブル・ゲート・アレイの列に沿ってリセット信号を
分配するために、同様のグローバルな列配線及びマルチ
プレクサ・ネットワーク(示されていない)が設けられ
ている。グローバルなクロック信号及びリセット信号を
分配するためのマルチプレクサをプログラムするため
に、1列当り構成データの5ビットが必要である。グロ
ーバル列クロック用マルチプレクサを構成するために、
このデータの3ビットが必要であり、同様のグローバル
列リセット用マルチプレクサを構成するために、データ
の2ビットが必要である。グローバル構成データのこれ
らの5ビットは、全体として記号Gのラベルが付けられ
る。フィールド・プログラマブル・ゲート・アレイ内の
クロック及びリセットのネットワークの構成、及びプロ
グラミングに関してのより詳しい情報は、米国特許申
請、主題「PROGRAMMABLE ARRAY C
LOCK/RESET RESOURCE」に記述され
ている。
【0029】フィールド・プログラマブル・ゲート・ア
レイ内の論理セルの各列及び各行の端部には、図7に示
されているような入出力ネットワーク50a及び50b
がある。入出力(I/O)パッド52は、受信バッファ
の入力及び出力バッファの出力に結合されている。個々
の入出力バッファの構成をプログラムするために、デー
タの4ビットが必要である。したがって、入出力ネット
ワーク50a及び50b双方の構成をプログラムするた
めに、構成データの8ビットが必要である。それぞれの
入出力ネットワークをプログラムするためのこのデータ
の4ビット・バイトのそれぞれは、「i」のラベルが付
けられる。入出力ネットワーク50a及び50bの組を
プログラムするための構成データの結合された8ビット
は、全体として信号Iで表される。
【0030】マルチプレクサ54は、トライ・ステート
・バッファをイネーブルするためにどの信号を用いる
か、入力データをどの線に結合すべきか、どの線から出
力データを送出すべきかを決定する。フィールド・プロ
グラマブル・ゲート・アレイのさまざまな行及び列に入
出力線を結合するために、フィールド・プログラマブル
・ゲート・アレイの周辺に沿って入出力バス56が設け
られる(周辺論理セルと入出力ブロックとの間を結合す
る)。入出力バス折り返し点58は、所定の入出力線を
入出力バス56に選択的に結合させるために、プログラ
ム可能である。入出力バス折り返し点58及びマルチプ
レクサ54をプログラムするために、構成データの4バ
イト「nopq」が必要である。構成データのこれらの
4バイトは全体として記号Mで表される。
【0031】フィールド・プログラマブル・ゲート・ア
レイ(FPGA)の周辺を囲む入出力バス56に沿っ
て、入出力バス中継器59があり、これらの中継器は入
出力バスに沿って入出力信号をバッファリングする。入
出力バス中継器グループ59は、個々のセクタ境界とF
PGAの4つの隅との間の入出力バスに沿って設けられ
る。個々の入出力バス中継器グループ59をプログラム
するために、構成データの8バイト「stuv wxy
z」が必要である。入出力バス中継器グループを構成す
るためのこの構成データは、全体として記号Bで表され
る。FPGAの入出力リソースに関してのより詳しい情
報は、米国特許申請、主題「PROGRAMMABLE
ARRAY I/O−ROUTING RESOUR
CE」に記述されている。
【0032】プログラマブル・ゲート・アレイのさまざ
まなプログラム可能リソース、及び関連する構成データ
を前記で確認したので、次にこれらのプログラム可能リ
ソースの相対的配置を、本発明の特別な特徴に更なる重
要性を与えるために、特徴づけて以降に記述する。
【0033】図8はプログラマブル・ゲート・アレイの
7×7配列のセクタを示し、この中で選択されたセクタ
は参照番号のラベルが付けられている。図9は、図8で
示されたフィールド・プログラマブル・ゲート・アレイ
の左上部の4つの隣接するセクタ1、2、3、4内の、
プログラム可能リソースの物理的なビット・マッピング
を示す。プログラム可能リソースの上部及び左側面に沿
った各列の頭部及び行の端部には、入出力用プログラム
可能リソースがあり、このリソースは、入出力ネットワ
ークの個々の組を構成するための構成データIを受信す
る。入出力バス折り返し点及びマルチプレクサ構成デー
タMは、隣接する個々の入出力ネットワークに関連づけ
られ、個々の関連する入出力ポートの相互接続を決定す
る。個々のセクタは8×8配列のコア・セル論理回路、
及びコア・セル配線用のプログラム可能リソースを含
み、これらはそれぞれ構成データC及びWによって構成
される。各セクタの間では列バス及び行バスのそれぞれ
が、構成データR及びLでそれぞれ構成される関連する
中継器グループ、及び中継器ラッチ・ジャンパをもつ。
各セクタの各行を半分進んだ位置、及び各列を半分下っ
た位置に垂直及び水平のジャンパがあり、これらのジャ
ンパは、関連する構成データJによって構成されるロー
カル・バスを選択する。更に各セクタの各列の長さの半
分下った位置には、構成データDで構成される関連した
クロック及びリセット信号分配用のプログラム可能リソ
ースがある。プログラマブル・ゲート・アレイの周辺に
沿った個々のセクタの境界には、構成データBによって
構成される入出力バス中継器用プログラム可能リソース
がある。入出力バス中継器はまたフィールド・プログラ
マブル・ゲート・アレイの離れた4隅にも配置される。
最後に、フィールド・プログラマブル・ゲート・アレイ
の各列を半分下った位置に、グローバルなクロック/リ
セット分配リソースがあり、このリソースは、関連する
列に沿ってクロック信号及びリセット信号をそれぞれ分
配するための構成データGによって構成される。
【0034】配列(array)をプログラム可能にす
るために、多様な技術が当分野に知識のある当業者には
知られている。マスクを使ったプログラミング技術は、
最後の金属化層の付着をカストマイズすることを含み、
この金属化層は、カストマイズされないときは共通に設
計された集積回路に使われるものである。(例えば、C
ox、外に発行された米国特許第3,993,919
号、主題「PROGRAMMABLE LATCH A
ND OTHER CIRCUITS FORLOGI
C ARRAYS」、1976年11月23日付、及び
Fitzgeraldに発行された米国特許第4,74
2,383号、主題「MULTI−FUNCTION
FET MASTERSLICE CELL」、198
8年5月3日付、を参照されたい。これら双方の特許は
本申請と同じ出願人に譲渡されている。)レーザを使っ
たプログラミング技術は、金属化層の付着後に金属化層
をカストマイズすることを含む。(例えば、Raffe
l、外による主題「A WAFER−SCALE DI
GITAL INTEGRATOR USINGRES
TRUCTURABLE VLSI」、IEEE Jo
urnal ofSolid−State Circu
its、Vol.SC−20、No.1、1985年2
月、頁399を参照されたい。)溶融可能リンク、又は
アンチ・フューズも用いられ、これらは恒久的な(揮発
性でない)プログラミングを行う。(例えば、Mill
anによる主題「MICROELECTRONIC
S」、Mc−Graw−Hill社、1979年出版、
頁196、及びElgamal、外に発行された米国特
許第4,758,745号、主題「USER PROG
RAMMABLE INTEGRATED CIRCU
IT INTERCONNECT ARCHITECT
URE AND TEST METHOD」、1988
年7月19日付を参照されたい。)消去可能プログラム
可能読み出し専用メモリ(EPROM)素子、及び電気
的に消去可能なプログラム可能読み出し専用メモリ(E
EPROM)素子も用いられ、半恒久的なプログラミン
グを提供する。EPROM及びEEPROMは両方とも
電気的にプログラム可能であり、電源が切れてもそれら
の状態を保持する。しかしこれらの素子を再プログラム
するためには、特別な消去手順が用いられる。(例え
ば、Wood、外による主題「AN ELECTRIC
ALLY ALTERABLE PLA FOR FA
ST TURNAROUND TIME VLSI D
EVELOPMENTHARDWARE」、IEEE
Journal of Solid−State Ci
rcuits、Vol.SC−16、No.5、198
1年10月、頁570を参照されたい。)最後に揮発性
のランダム・アクセス・メモリ(RAM)素子も使用可
能であり、これらは完全にプログラム可能及び再プログ
ラム可能であるが、電源が切れるとそのプログラム状態
が失われる。(例えば、Balasubramania
n、外に発行された米国特許第4,177,452号、
1979年12月4日付を参照されたい。この特許は本
申請と同じ出願人に譲渡されている。)配列をプログラ
ムするこれらの技術及び他の技術は、当分野の当業者に
は周知のものであり、又S.Brown、R.Fran
cis、J.Rose及びZ.Vranesicによる
主版物、主題「FIELD−PROGRAMMABLE
GATE ARRAYS」、Kluwer Acad
emic Publishers 1992年発行にも
全体的に記述されている。
【0035】前述のように、論理セルをプログラムする
ための本発明の好ましい方法は、ユーザがプログラムす
るSRAMメモリ・セルを含む。配列は、主題「APP
LICATION NOTE AT6000 SERI
ES CONFIGURATION」の出版物、199
3年5月発行、改定1B、Atmel Corpora
tion社発行、で開示されている技術に従って構成さ
れる。SRAMのメモリ・セルは、図10の論理ビット
・マップに従ってFPGAのリソースに割り当てられ
る。
【0036】本発明開示の次の部分では、プログラマブ
ル・ゲート・アレイの関連するプログラム可能リソース
に対しての、構成データを保管するためのメモリ割り当
てを説明する。
【0037】図10の論理ビット・マップは、フィール
ド・プログラマブル・ゲート・アレイのリソースに対し
てSRAMのメモリ・セルを割り当てる、3次元のメモ
リ・マップを表示している。図10のメモリ・マップ
は、プログラマブル・ゲート・アレイのプログラム可能
リソースにメモリを割り当てるために、既知の手順に従
って構成されている。SRAMメモリ・マップの水平x
軸は、ビット0からビット89でアドレス可能である。
SRAMメモリ・マップの垂直y軸は、ワード0からワ
ード89でアドレス可能である。SRAMメモリ・マッ
プの第3のz軸は、別々の平面として図示されているよ
うに、バイト0からバイト4でアドレス可能である。
【0038】ビット0からビット55、ワード0からワ
ード55、及びバイト0のメモリ・ブロック(図10に
示されるように、その最上層は全体のメモリ・マップか
らオフセットされている)において、関連するSRAM
メモリ・セルは、フィールド・プログラマブル・ゲート
・アレイのそれぞれの論理セルの論理回路をプログラム
するために、構成データCを提供する。前述のように、
構成データCはデータ・バイト「a」から成る。データ
・バイトa0,0(個別には示されていない)はこのメモ
リ・ブロック内のビット0、ワード0に保管され、フィ
ールド・プログラマブル・ゲート・アレイの論理セル1
1,1(図2)の論理回路をプログラムするための構成
データを供給することに留意されたい。同様にデータ・
バイトa55,55(個別には示されていない)は、このメ
モリ・ブロック内のビット55、ワード55に保管さ
れ、フィールド・プログラマブル・ゲート・アレイの論
理セル1656,56(示されていない)を構成するための
構成データを提供する。
【0039】前述のように、フィールド・プログラマブ
ル・ゲート・アレイの各論理セル用の配線リソースは、
4バイトのデータ「bcde」を必要とする(構成デー
タW)。4つの個別のデータ・バイト「bcde」は、
SRAMメモリ・マップ内で各x、y位置に対してz軸
に沿ってバイト1からバイト4でアドレス可能であるこ
とに留意されたい。フィールド・プログラマブル・ゲー
ト・アレイの第1列、第1行の論理セルの配線リソース
をプログラムするために、SRAMのビット0、ワード
0の位置は、z方向バイト1〜4それぞれに構成データ
「bcde」がロードされる。同様に、56列目、56
行目の論理セルのプログラム可能配線リソースをプログ
ラムするために、SRAMのビット55、ワード55の
位置のz方向バイト1〜4それぞれに、構成データ「b
cde」それぞれがロードされる。
【0040】SRAMメモリ・セルのx軸に沿って移動
したビット56からビット62のxアドレス位置、及び
ワード0からワード55のy軸位置のブロックのSRA
Mメモリ・セルは、フィールド・プログラマブル・ゲー
ト・アレイの56のそれぞれの水平行に沿った、フィー
ルド・プログラマブル・ゲート・アレイのそれぞれのプ
ログラム可能ジャンパ・リソースをドライブするための
水平ジャンパ構成データJを提供する。フィールド・プ
ログラマブル・ゲート・アレイの行毎の7つのジャンパ
(図9参照)に従って、ビット56からビット62の7
つの位置が設けられていることに留意されたい。
【0041】SRAMメモリ・マップのビット64から
ビット79、及びワード0からワード55のメモリ・ブ
ロックは、フィールド・プログラマブル・ゲート・アレ
イの各行に対するバス中継器、及びラッチそれぞれを構
成するための構成データR及びLを提供する。メモリの
この特定のブロックに割り当てられた構成データは、中
継器構成データ・バイト(「fgh」)、及びラッチ構
成データ・バイト(「l」)それぞれを含む。それぞれ
の「fgh」データ・バイトは、SRAMのz軸に沿っ
てバイト0〜2に割り当てられ、一方で「l」データ・
バイトは、z軸に沿ってバイト3に割り当てられる。中
継器グループ当り6バイトの構成データが必要であり、
ラッチ・ジャンパ・グループ当り2バイトの構成データ
が必要であることに留意されたい。行当り中継器及びラ
ッチ・ジャンパの8グループがあり、フィールド・プロ
グラマブル・ゲート・アレイの56の各行に対して、x
軸に沿って16の位置(ビット64からビット79)が
提供される。
【0042】ビット80〜83、ワード0〜55のメモ
リ・マップは、論理セル各行の端部の入出力バス折り返
し点、及びマルチプレクサを構成するための構成データ
Mを提供する。データ・バイト「nopq」が、各x、
yメモリ位置でz軸に沿って、それぞれバイト0〜3に
割り当てられる。フィールド・プログラマブル・ゲート
・アレイの各行の各端部に、入出力バス折り返し点及び
マルチプレクサの構成データの2組(MM)が必要であ
ることに留意されたい。したがって、フィールド・プロ
グラマブル・ゲート・アレイの56の各行の対応する入
出力バス折り返し点、及びマルチプレクサ用プログラム
可能リソースに対して、x軸に沿ってビット80から8
3の4つの位置、行の端部当り2つのビット位置が提供
される。
【0043】フィールド・プログラマブル・ゲート・ア
レイの行端部にある出力ポートの入出力構成を構成する
ための構成データIは、SRAMメモリ・マップのビッ
ト88〜89、ワード0〜55のブロック内に割り当て
られ、各x、y位置でz軸に沿ってバイト0にただ1つ
のデータ・バイトが提供される。フィールド・プログラ
マブル・ゲート・アレイの各行に対して2つの1バイト
入出力プログラム可能リソースが存在するので(行端部
当り1つ)、x軸に沿ってビット88からビット89の
ただ2つの位置が指定される。フィールド・プログラマ
ブル・ゲート・アレイの論理セルの行をサポートする、
「水平の」プログラム可能リソース、及びSRAMメモ
リ・マップ内の関連する構成データの確認を上記で完了
したので、以降はフィールド・プログラマブル・ゲート
・アレイの論理セルの列をサポートする、「垂直の」プ
ログラム可能リソース、及びSRAMメモリ・マップ内
の関連する構成データを説明する。
【0044】ビット0〜55、ワード56〜62、及び
バイト0〜2のメモリ・ブロックは、フィールド・プロ
グラマブル・ゲート・アレイの各列に対応するジャン
パ、ローカル分配、及びグローバル分配それぞれ用のプ
ログラム可能リソースを構成する構成データJ、D、及
びGを提供する。フィールド・プログラマブル・ゲート
・アレイの各列に7つのジャンパ、及び7つのクロック
/リセット分配リソースが設けられる。各関連するx、
y位置において、ジャンパ構成データJはバイト0に配
置され、一方で分配構成データDはバイト1に配置され
る。対照的にフィールド・プログラマブル・ゲート・ア
レイの各列に対して、ただ1つのグローバル・クロック
/リセット分配リソースが設けられる。グローバル分配
構成データGは、56の各行に対してバイト2、ワード
59において提供される。フィールド・プログラマブル
・ゲート・アレイの列数に対して、1つ追加のグローバ
ル分配用プログラム可能リソースが存在するので、この
1つ追加のグローバル分配用プログラム可能リソースを
プログラムするための構成データ@Gを提供するため
に、ビット64、ワード59、バイト2に追加のSRA
Mセルが配置される。
【0045】フィールド・プログラマブル・ゲート・ア
レイの各列用のバス中継器及びラッチを構成するための
構成データR及びLは、ビット0〜55及びワード64
〜79にわたるメモリ・ブロック内に提供される。関連
する「fghl」構成データ・バイトが、z軸位置のバ
イト0〜3それぞれに割り当てられる。
【0046】フィールド・プログラマブル・ゲート・ア
レイの各列の両端にある入出力バス折り返し点、及びマ
ルチプレクサを構成するための構成データMMは、SR
AMメモリ・マップ内のビット0〜55、及びワード8
0〜83にわたって割り当てられている。データ・バイ
ト「nopq」のそれぞれが、各関連するx、y位置の
z軸に沿ったバイト0〜3それぞれに割り当てられる。
【0047】最後に、フィールド・プログラマブル・ゲ
ート・アレイの各列両端において、入出力の性格をプロ
グラムできるリソースを構成する構成データIは、SR
AMメモリ・マップ内のビット0〜55及びワード88
〜89にわたって割り当てられる。
【0048】フィールド・プログラマブル・ゲート・ア
レイの周辺に分配された、入出力バス中継器用プログラ
ム可能リソースは、中継器グループ当り8バイトの構成
データ「stuv wxyz」を必要とする。水平の、
又は西・東方向の、入出力バス中継器用プログラム可能
リソースは、ビット84〜87の12の関連するワード
・ラインにわたるSRAMメモリ・ブロック内に配置さ
れた、構成データに従って構成される。フィールド・プ
ログラマブル・ゲート・アレイの所定の縁(ふち)にお
いて各セクタ間に、8つの入出力バス中継器が必要であ
る。各入出力バス中継器は、1バイトの構成データが必
要である。したがって、各入出力中継器グループ(8つ
の入出力バス中継器)は、8バイトの構成データ「st
uv wxyz」を必要とする。これらの関連する構成
データ・バイト「stuv」及び「wxyz」は、SR
AMメモリ・マップの4つのそれぞれの隣接するx、y
位置において、z軸上のバイト位置0〜1に割り当てら
れる。例えば2つのデータ・バイト「st」が、SRA
Mのビット84、ワード64の位置のz軸上のバイト0
〜1の位置に割り当てられる。そして2つのデータ・バ
イト「uv」が、ビット85、ワード64の位置のz軸
上のバイト0〜1の位置に割り当てられる。引き続く
「wx」の構成データ・バイトは、ビット84、ワード
65のメモリ・マップ位置のz軸上のバイト0〜1のメ
モリ位置に割り当てられ、一方で引き続く「yz」構成
データ・バイトは、ビット85、ワード65のメモリ・
マップ位置のz軸上のバイト0〜1の位置に割り当てら
れる。
【0049】したがって、x軸及びy軸に沿って4つの
アドレス割り当て(ビット84〜85、ワード64〜6
5)が、各「水平の」入出力バス中継器グループに対し
て必要であることが理解できる。このようにして、フィ
ールド・プログラマブル・ゲート・アレイの所定の縁に
沿った関連する6つの入出力バス中継器グループに対し
て、y軸に沿って12のワード位置が必要である。x軸
に沿った2つの位置(ビット84〜85)が、フィール
ド・プログラマブル・ゲート・アレイの片側の中継器グ
ループに対して構成データを提供し、一方でx軸に沿っ
た次の2つの位置(ビット86及びビット87)が、フ
ィールド・プログラマブル・ゲート・アレイのもう一方
の側の中継器グループ用の、対応する構成でデータを提
供する。
【0050】垂直の、又は北・南方向の、入出力バス中
継器リソース用の構成データBは、ワード84からワー
ド87、ビット64からビット75のSRAMメモリ・
ブロック内に保管される。入出力バス中継器グループそ
れぞれに対するデータ・バイト「stuv wxyz」
のそれぞれは、近隣のx、y位置それぞれのz軸に沿っ
たバイト0〜1に割り当てられる。x軸に沿った12の
メモリ割り当て、及びy軸に沿った4つの関連するメモ
リ位置は、水平の入出力バス中継器グループに対するメ
モリ・ブロックと同様に説明できる。
【0051】4隅の入出力バス中継器グループ用の構成
データBは、ビット84〜87、ワード84〜87、及
びz軸方向バイト0〜1で指定されたSRAMメモリ・
ブロック中に割り当てられる。
【0052】図10のSRAMメモリ・マップは、x軸
に沿って90位置(ビット0からビット89)、y軸に
沿って90位置(w0からw89)、及びz軸に沿って
5位置(バイト0からバイト4)をもつ。このような3
次元のメモリ・マップをリニアにアドレスするために
は、既知の手順に従って割り当てると、x軸をアドレス
するために7つのアドレス・ビット、y軸をアドレスす
るために7つのアドレス・ビット、z軸をアドレスする
ために3つのアドレス・ビットを必要とし、合計17の
アドレス・ビットが必要である。図10に示されている
ように、SRAM用のリニアなメモリ・マップは、分割
され多くの空白の位置があることに注意されたい。
【0053】フィールド・プログラマブル・ゲート・ア
レイ(FPGA)をコンピュータ・システム内に組み込
むとき、FPGA用のSRAMには、FPGAのプログ
ラム可能リソースを構成するための所定の構成データを
ロードする必要がある。電源投入時、構成データは例え
ばEEPROMからダウン・ロードされ、プログラマブ
ル・ゲート・アレイの種々のプログラム可能リソースを
ドライブするために、SRAMの関連するメモリ・セル
にロードされる。フィールド・プログラマブル・ゲート
・アレイのSRAMをアドレスするに当り、構成データ
を受け取るためのメモリ・セルは、図10に図示したメ
モリ・マップに従ってアドレスされる。EEPROMか
ら構成データを取り出すためには同じアドレス法が用い
られ、そこでEEPROMのメモリ・ユニットをSRA
Mの関連するメモリ・セルに割り当てるために、対応す
るリニアなアドレスのメモリ・マップが必要となる。し
かしながらこのようなアドレス構成は、EEPROMの
多くの位置を空白の状態にし、メモリ空間を無駄にす
る。
【0054】本発明に従って、プログラマブル・ゲート
・アレイの関連するプログラム可能リソースに対してメ
モリを割り当てるために、新しい手順が提供される。前
述のような(図10)既知の割り当て手順のメモリ・マ
ップを効果的に折り重ねることにより、新しい割り当て
手順は、新しくより密度の高いメモリ・マップとして、
「水平の」プログラム可能リソースのメモリ・ブロック
を、対応する「垂直の」プログラム可能リソースの関連
したメモリ・ブロックに近づけて配列する(図11)。
本発明の折りたたんだメモリ割り当ては、メモリのより
効率良く利用をもたらし、メモリをアドレスするために
必要なアドレス・ビット数を減らす。
【0055】本発明の結果としてのメモリ割り当てを説
明する前に、図12を参照してハードウェア回路の特徴
を説明する。このハードウェア回路は、例えばフィール
ド・プログラマブル・ゲート・アレイのプログラム可能
リソースへのメモリ割り当てに関連して、メモリ・マッ
プを効果的に折り重ねるために必要なアドレス・デコー
ドを行う。
【0056】図12を参照して、フィールド・プログラ
マブル・ゲート・アレイ60は、Nビットのアドレスを
メモリ素子62、例えばEEPROMに渡し、このプロ
グラマブル・ゲート・アレイを構成するために、EEP
ROMから構成データを受け取る。コントローラ68は
EEPROM62をアドレスするために、電源投入時に
開始アドレスを渡す。EEPROMのアドレスされたメ
モリ・ユニットからの構成データは、その後このフィー
ルド・プログラマブル・ゲート・アレイ、FPGA、の
プログラム可能リソースを構成するために、例えば、S
RAM64に送られる。アドレス・デコーダ66は、デ
ータ・ストリームからNビットのアドレスを第1及び第
2の開始バイトとして受け取り、続いて第1及び第2の
終了バイトを受け取り、このNビット・アドレスをSR
AM64をアクセスするためにx、y、及びzのそれぞ
れのアドレスにデコードする。テスト(モード7)操作
では、アドレスP(0〜15)がFPGAに与えられ、
x、y、zアドレスそれぞれを提供するためにデコード
される。本発明の第1の特徴は、プログラム可能リソー
ス64の3次元のアドレス可能配列をアクセスするため
に、アドレス・デコーダ66がNビット・アドレスを
x、y、zそれぞれの部分にデコードする方法にある。
【0057】本発明の1つの実施例では、Nビット・ア
ドレスは16ビットから成る。この16ビット・アドレ
スは4つの別々の部分に分けられる。それらは、(1)
アドレス・ビット0〜6から成る第1の部分、(2)ア
ドレス・ビット7から成る第2の部分、(3)アドレス
・ビット8〜13から成る第3の部分、及び(4)アド
レス・ビット14〜15から成る第4の部分である。N
ビット・アドレスの第1及び第3の部分は、ビット7の
状態に従って、SRAMのx、y、zアドレス可能メモ
リ・マップのx次元(ビット)、又はy次元(ワード)
のいずれかをアクセスするために用いられる。アドレス
・ビット7がロー(low)のときは、アドレス・ビッ
ト0〜6はx、y、zアドレス可能メモリ・マップのy
次元(ワード)をアクセスするために用いられ、一方で
ビット8〜13はSRAMメモリ・マップのx次元(ビ
ット)をアクセスするために用いられる。反対に、アド
レス・ビット7がハイ(high)ならば、このときは
アドレス・ビット0〜6がx次元をアクセスするために
指定され、一方でアドレス・ビット8〜13はメモリ・
マップのy次元をアクセスするために用いられる。上記
のようにアドレス・ビット7に従って連続したアドレス
構造を折り重ねることにより、図10のx、y、zアド
レス可能メモリ・マップは、FPGAのプログラム可能
リソース用の構成データを割り当てるために、図11に
図示されたように効果的に折り重ねられ、修正されたメ
モリ・マップを提供する。
【0058】図11を参照すると、アドレス・ビット7
がローのときは、アドレス・ビット0〜6は、SRAM
メモリ・マップのy次元(ワード0からワード89)を
アクセスするために用いられ、アドレス・ビット8〜1
3は、SRAMメモリ・マップのx次元(ビット0から
ビット55)をアクセスするために用いられる。メモリ
・マップのこの部分は、図11の左の列に図示される。
代ってアドレス・ビット7がハイのときは、アドレス・
ビット0〜6は、SRAMメモリ・マップのx次元(ビ
ット0からビット89)をアクセスするために用いら
れ、一方でアドレス・ビット8〜13は、SRAMメモ
リ・マップのy次元(ワード0からワード55)をアク
セスするために用いられる。メモリ・マップのこの部分
は、図11の右の列に表示されている。連続するアドレ
ス構造を折り重ねることにより、FPGAの「垂直な」
プログラム可能リソース用の構成データを割り当てるた
めの関連するメモリ・マップは、「水平の」プログラム
可能リソース用の構成データを割り当てるための関連す
るメモリ・マップに並んで、対称的に効果的に積み重ね
られる。この新しいアドレス構造は空白のメモリ空間の
数を減らし、より少いアドレス・ビットでアクセス可能
なより密度の高いメモリ・マップを提供する。
【0059】上述のように、アドレス・デコーダ66は
(図12に示すように)、アドレス・ビット7の状態に
従ってNビット・アドレスをデコードし、Nビット・ア
ドレスのどの部分をSRAMメモリ・マップのxアドレ
ス、及びyアドレスに割り当てるかを指定する。アドレ
ス・デコーダ66はNビット・アドレスのビット7を調
べ、このビット7の状態に従って、アドレス・ビット0
〜6及び8〜13をSRAM配列のx及びyアドレスの
それぞれに、又はy及びxアドレスのそれぞれに割り当
てる。アドレス・ビット14及び15はそのまま送ら
れ、SRAMメモリ・マップのz次元(バイト0〜3)
をアドレスする。
【0060】図11を参照すると、論理ビット・マップ
の左の列は、SRAM論理ビット・マップの右の列に対
して対称的なメモリ・ブロック割り当てになっている。
FPGAの論理セル内の論理回路をプログラムするため
の構成データCは、ビット0〜55、ワード0〜55の
メモリ・ブロックに割り当てられている。コア・セル配
線用の構成データWは、論理ビット・マップの右列に図
示されているように、メモリ・マップ内のワード0〜5
5、ビット0〜55にわたるブロックを占めている。コ
ア・セル配線用構成データWは、z次元に沿ってバイト
0からバイト3を満たしており、一方でコア・セル論理
回路用構成データCは、z次元のバイト0のみを占め
る。
【0061】図11に図示された論理ビット・マップを
上に動くと、フィールド・プログラマブル・ゲート・ア
レイのジャンパ用、及び分配用それぞれの垂直のリソー
スをプログラムするための構成データJ、Dが、ビット
0〜55、ワード56〜62にわたるメモリ・ブロック
に割り当てられている。ジャンパ構成データJはz軸の
バイト0にあり、一方で分配構成データDはバイト1に
割り当てられている。各列のグローバル分配リソース用
の構成データ*Gは、ワード59、バイト2のビット0
〜55のメモリ・マップに割り当てられている。
【0062】垂直なプログラム可能リソースに対称に配
置されて、フィールド・プログラマブル・ゲート・アレ
イの水平のプログラム可能リソースがある。水平ジャン
パの構成データJは、図11に図示された右列のワード
0〜55、ビット56〜62、バイト0のメモリ・ブロ
ックに割り当てられる。行当り7つのジャンパが、ビッ
ト56からビット62の7位置に対応する。フィールド
・プログラマブル・ゲート・アレイの56の行が、ワー
ド0からワード55に対応する。z軸のバイト2にある
特定のメモリ・ブロック内に、1つの特別のグローバル
・クロック/リセット分配リソース用の構成データ@G
もある。左列と右列との間で、垂直なプログラム可能リ
ソースと水平のプログラム可能リソースとの間では、メ
モリ・ブロックが同様なサイズであることに注意された
い。左側のワード56からワード62までに配列された
垂直リソース用の構成データは、ビット56からビット
62までの水平プログラム可能リソース用の構成データ
と等しい空間を占める。
【0063】フィールド・プログラマブル・ゲート・ア
レイの更に別の垂直及び水平のプログラム可能リソー
ス、即ち中継器グループ(R)、ラッチ(L)、入出力
バス折り返し点及びマルチプレクサ(M)、入出力構成
(iiで表されるI)、入出力バス中継器(B)、これ
らの垂直及び水平リソース用の構成データに対しては、
同様で対称なメモリ・ブロック割り当てが行われる。入
出力バス中継器用の構成データB、バイト「stuv
wxyz」は、図11の左列と右列との間で等しく割り
当てがされていない。データ・バイト「stuv」及び
「wxyz」で表される4隅のバス中継器用構成データ
Bは、ビット20からビット23まで、ワード84から
87までのメモリ・ブロック内に割り当てられる。
【0064】繰り返すが、プログラマブル・ロジック・
アレイのプログラム可能リソースに対して、図11に図
示したメモリ・マップに従って構成データが割り当てら
れる。アドレス・ビット7がローのとき、アドレス・ビ
ット0〜6は、ワード0からワード89までをアドレス
するために用いられ、一方でアドレス・ビット8〜13
は、ビット0〜55をアドレスするために用いられる。
反対にアドレス・ビット7がハイのときは、アドレス・
ビット8〜13はワード0〜55のアドレス用に使わ
れ、アドレス・ビット0〜6はビット0〜89のアドレ
ス用に使われる。アドレス・ビット14及び15は、z
次元のバイト0からバイト3までをアドレスするために
使われる。したがって16アドレス・ビットは、アドレ
ス・ビット7の状態に従って折り重ねられ、割り当てら
れたとき、このフィールド・プログラマブル・ゲート・
アレイのプログラム可能リソースのx、y、zアドレス
可能配列をアドレスするのに十分であることが理解でき
る。この方式においては、フィールド・プログラマブル
・ゲート・アレイに関連するメモリをアクセスするため
に必要なビット数は、1つ減らされた。更にフィールド
・プログラマブル・ゲート・アレイの水平及び垂直のリ
ソースは、それらが図11に図示したように折り重ねら
れた論理ビット・マップ内で対称で対応するメモリ・ブ
ロック・サイズをもつならば、x次元及びy次元それぞ
れに沿って同じようにアクセスできることが理解でき
る。
【0065】図12を参照して前述したように、電源投
入時にプログラマブル・ゲート・アレイ64は、フィー
ルド・プログラマブル・ゲート・アレイの種々の論理セ
ル、相互接続、及び入出力ポートを構成するために、外
部メモリ、EEPROM62から構成データを受け取
る。電源が立ち上がる間、コントローラ68はアドレス
・デコーダ兼シーケンサ66を使用可能にし、図11に
図示されているメモリ・ブロックに関連するアドレスを
順次走査して行く。テスト操作の間(モード7)、個々
のアドレスはP(0〜15)からデコードされる。シー
ケンサ66のさまざまな状態、及び生成される対応した
メモリ・アドレス配列の大要が、図13の表に示されて
いる。
【0066】シーケンサ66は状態SCOから開始し、
ビット0〜55、ワード0〜55、バイト0にわたって
開始アドレスから終了アドレスまでNビット・アドレス
を順次走査し、プログラマブル・ゲート・アレイ60の
対応するプログラム可能リソース64(SRAM装置)
に、論理セルそれぞれの論理回路を構成するために、E
EPROM62のそれぞれの位置の関連する構成データ
Cを伝達する。この方法により各論理セルの論理リソー
スは、EEPROM62の関連する構成データに従って
構成される。
【0067】1つの状態の終了アドレスに到達すると、
シーケンサは次の状態の開始アドレスに飛ぶ。各論理セ
ルのプログラム可能配線リソースは、状態SC1の開始
アドレス及び終了アドレスによって指定されたメモリ・
ブロックから得られるEEPROM62の関連する構成
データを用いて構成される。同様にフィールド・プログ
ラマブル・ゲート・アレイのその他のプログラム可能リ
ソースも、図13に図示された状態SJOからSI1ま
でをシーケンサが連続に走査してプログラムされる。
【0068】したがってここに開示されたものは、フィ
ールド・プログラマブル・ゲート・アレイのプログラム
可能リソースに関連づけて、連続したアドレス構造を折
り重ねるための方法及び装置である。更にアドレス折り
重ねは、フィールド・プログラマブル・アレイの垂直の
リソース及び水平のリソースを、対称なメモリ・ブロッ
ク割り当てによって同様にプログラムできるようにす
る。最後に、本発明に従ったアドレス折り重ね構造を採
用することにより、プログラマブル・ゲート・アレイの
プログラム可能リソースに割り当てられるメモリをアド
レスするために必要なビット数は、プログラマブル・ア
レイのそれぞれの次元に従ってメモリがリニアにアドレ
スされるときに必要になるビット数より減らすことがで
きる。
【0069】プログラマブル・ゲート・アレイの特定の
プログラム可能リソースは、変更できるがそれでもな
お、本発明が指定するアドレス折り重ね方法に従ってメ
モリを割り当てることから利益が得られることは、当分
野に知識をもつ当業者には明らかであろう。更に外部メ
モリ及び(又は)プログラマブル・ゲート・アレイに与
えられるアドレス・ビット数は、上で図示された例に従
って設定される必要はなく、アドレス・ビット数は、本
発明の真の意図及び範囲から逸脱することなく変更でき
る。
【0070】最後に、前述の実施例中で取り扱われたプ
ログラマブル・ゲート・アレイは、プログラマブル・ゲ
ート・アレイの制御可能リソースそれぞれをドライブす
るSRAMメモリ・セルと共に説明された。他のプログ
ラマブル・ゲート・アレイも、本発明の範囲から逸脱す
ることなくプログラムするために同様にアドレスできる
ことは、当分野に知識をもつ当業者には理解できるであ
ろう。プログラム可能リソースがx、y配列に従ってア
ドレスでき、プログラマブル・ゲート・アレイ外部のメ
モリの関連する構成データに従ってプログラムできるこ
とだけが必要である。例えばプログラム可能リソース6
4は、ゲート・アレイ用に所定の構成を提供するために
カストマイズされるマスク・レイアウトであってもよ
い。このマスク・レイアウトは、所定のx、yアドレス
可能な位置で選択的にカストマイズされ、関連したアド
レス可能データ源の構成データに従って、ゲート・アレ
イ用のいくつかの金属化層の選択的付着を行う。この構
成データはゲート・アレイのリソースを選択するため
に、マスク・レイアウトのカストマイゼーションを行
う。この構成データは、Nビット・アドレスによってア
クセスされたデータ源から取り出される。アドレス・デ
コーダ兼シーケンサは、本発明のアドレス折り重ね手順
に基づいて、x、y部分のそれぞれに対してNビット・
アドレスをデコードするか、又はデコードのためのNビ
ット・アドレスの順列を提供し、関連する構成データに
従ってカストマイズされるマスク・レイアウトの選択位
置をアドレスする。
【0071】当開示では、本発明を本発明の好ましい実
施例を特別に参照して示し、説明したが、本発明の意図
及び範囲を逸脱することなく、その形態及び詳細中に多
くの変更が行えることは、当分野に知識をもつ当業者に
は理解できるであろう。
【0072】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0073】(1) 複数のアドレス可能メモリ・ユニ
ット、及び2次元に配列された複数の制御可能リソース
を有するコンピュータ・システム内において、前記複数
の制御可能リソースのそれぞれが、本リソースに対応す
る前記複数のメモリ・ユニットの関連する1つを有し、
前記複数のメモリ・ユニットが、本メモリ・ユニットに
関連するNビットのアドレスを有する場合に、前記複数
のメモリ・ユニットを前記複数の制御可能リソースに関
連づける方法であって、前記Nビット・アドレスを第
1、第2及び第3の部分に分割するステップを含み、前
記第1及び第3の部分のそれぞれが、2次元配列の2つ
の次元の対応する1つに切り換え可能で関連づけられ、
前記第2の部分は、前記第1及び第3の部分のそれぞれ
が2つの次元のどちらに関連づけられるかを判定するた
めに用いられる、方法。 (2) 前記複数の制御可能リソースの少くとも1つ
が、複数の個別プログラム可能リソースを含み、複数の
個別メモリ・ユニットを含む前記複数のメモリ・ユニッ
トの少くとも1つに関連づけられ、前記複数の個別プロ
グラム可能リソースのそれぞれが、本リソースに対応す
る前記複数の個別メモリ・ユニットの1つずつを有し、
前記分割するステップが更にNビット・アドレスの第4
の部分を設けることを含み、該第4の部分が、前記複数
の個別メモリ・ユニットの1つずつをアドレスするため
に用いられる、(1)に記載の方法。 (3) 前記コンピュータ・システムがフィールド・プ
ログラマブル・ゲート・アレイを含み、前記複数のメモ
リ・ユニットが前記フィールド・プログラマブル・ゲー
ト・アレイのSRAMからなる(1)に記載の方法。 (4) x、y2次元配列によってアドレス可能な複数
のプログラム可能リソースを有するプログラマブル・ゲ
ート・アレイにメモリを割り当てる方法であって、Nビ
ットのアドレスによってアドレス可能な複数のアドレス
可能メモリ・ユニットを設けるステップと、前記Nビッ
トのアドレスを第1、第2、及び第3の部分に分割する
ステップと、前記Nビット・アドレスの前記第1及び第
3の部分を、前記第2の部分に従って、前記複数のプロ
グラム可能リソースの前記x、y2次元配列のx次元及
びy次元のそれぞれに切り換えて関連づけるステップ
と、前記Nビット・アドレスによってアドレスされる前
記複数のアドレス可能メモリ・ユニットのメモリ・ユニ
ットを、前記Nビット・アドレスの前記第1及び第3の
部分によってアドレスすることにより、前記x、y2次
元配列内の前記複数のプログラム可能リソースのプログ
ラム可能リソースのそれぞれに割り当てるステップと、
を含む方法。 (5) 前記x、y2次元配列の所定の位置に存在する
前記複数のプログラム可能リソースの1つ1つが、第3
のz次元に沿ってアドレス可能な複数の個別のプログラ
ム可能リソースを有し、前記分割するステップが、更に
前記Nビット・アドレスの第4の部分を設けることを含
み、前記Nビット・アドレスの前記第4の部分を、前記
複数の個別プログラム可能リソースの前記第3のz次元
に関連づけるステップを更に含み、前記割り当てるステ
ップが更に、前記x、y2次元配列の前記所定の位置に
おいて、前記Nビット・アドレスの前記第4の部分によ
りアドレスすることにより前記第3のz次元に沿って、
前記Nビット・アドレスによってアドレスされるメモリ
・ユニットを前記複数の個別プログラム可能リソースの
個別のプログラム可能リソースのそれぞれに割り当て
る、(4)に記載の方法。 (6) 前記プログラマブル・ゲート・アレイの前記複
数のプログラム可能リソースが、電気的に制御可能なリ
ソース前記電気的に制御可能なリソースそれぞれをドラ
イブするために結合され、x、y2次元配列によってア
ドレス可能なメモリ・セルを有するプログラム可能なS
RAMと、を含み、前記割り当てるステップが、前記N
ビット・アドレスの前記第1及び第3の部分を、前記
x、y2次元配列のx次元、及びy次元のそれぞれに前
記Nビット・アドレスの第2の部分に従って切り換えて
対応付け、前記Nビット・アドレスによってアドレスさ
れる前記複数のアドレス可能メモリ・ユニットの各メモ
リ・ユニットを前記プログラム可能SRAMのメモリ・
セルのそれぞれに割り当てることを含む、(4)に記載
の方法。 (7) 所定のNビット・アドレスを用いて前記複数の
アドレス可能メモリ・ユニットをアドレスするステップ
と、前記所定のNビット・アドレスの第2の部分に従
い、前記x、y2次元配列のx及びy次元のそれぞれ、
又はy及びx次元のそれぞれのいずれかをアドレスする
ために、前記所定のNビット・アドレスの前記第1及び
第3の部分を用いて、前記プログラム可能SRAMのメ
モリ・セルをアドレスするステップと、前記複数のアド
レス可能メモリ・ユニットの前記アドレスされたメモリ
・ユニットのデータを、前記プログラム可能SRAMの
前記アドレスされたメモリ・セルに伝達するステップ
と、を更に含む、(6)に記載の方法。 (8) 前記プログラム可能SRAMの全メモリ・セル
をプログラムし終るまで、異なったNビット・アドレス
を用いて前記ステップa、b、cを複数回繰り返すステ
ップを更に含む、(7)に記載の方法。 (9) 前記電気的に制御可能なリソースが、構成可能
な論理リソース及び配線リソースを含む、(6)に記載
の方法。 (10) x、y2次元配列によってアドレス可能な複
数のプログラム可能リソースと、Nビットのアドレスに
よってアドレス可能な複数のアドレス可能メモリ・ユニ
ットと、所定のNビット・アドレスによって前記複数の
アドレス可能メモリ・ユニットをアドレスする手段と、
前記所定のNビット・アドレスを第1、第2、及び第3
の部分に分割する手段と、前記複数のプログラム可能リ
ソースの前記x、y2次元配列のx及びyアドレス可能
な次元のそれぞれを、前記所定のNビット・アドレスの
第2の部分に従って、前記所定のNビット・アドレスの
前記第1及び第3の部分それぞれ、又は前記第3及び第
1の部分それぞれのいずれかを用いて、切り換えてアド
レスするための手段と、を有するコンピュータ・システ
ム。 (11) 前記複数のプログラム可能リソースがプログ
ラマブル・ゲート・アレイを含む、(10)に記載のコ
ンピュータ・システム。 (12) 前記プログラマブル・ゲート・アレイが、電
気的に制御可能なリソースと、前記電気的に制御可能な
リソースそれぞれをドライブするために結合され、x、
y2次元配列によってアドレス可能なメモリ・セルを有
するプログラム可能なSRAMと、を有し、前期切り換
えてアドレスするための手段が、前記プログラム可能S
RAMのx及びyアドレス可能な次元のそれぞれを、前
記所定のNビット・アドレスの第2の部分に従って、前
記所定のNビット・アドレスの第1及び第3の部分それ
ぞれ、又は第3及び第1の部分のそれぞれのいずれかを
用いてアドレスする、(11)に記載のコンピュータ・
システム。 (13) 前記所定のNビット・アドレスによってアド
レスされる前記複数のアドレス可能なメモリ・ユニット
の各メモリ・ユニットのデータを、前記所定のNビット
・アドレスの第1及び第3の部分によってアドレスする
ことにより、前記プログラム可能SRAMのメモリ・セ
ルに伝達する手段を更に含む、(12)に記載のコンピ
ュータ・システム。 (14) 前記プログラム可能SRAMの全メモリ・セ
ルがプログラムされるように、一連のNビット・アドレ
スを生成する手段を更に含む、(13)に記載のコンピ
ュータ・システム。 (15) 前記x、y2次元配列の所定の位置におい
て、前記複数のプログラム可能リソースの各プログラム
可能リソースが、第3のz次元に沿ってアドレス可能な
複数の個別プログラム可能リソースを有し、前記分割す
る手段が前記所定のNビット・アドレスの第4の部分を
設ける手段を含み、前記アドレスする手段が、前記複数
のプログラム可能リソースの前記アドレス可能な第3の
z次元を、前記所定のNビット・アドレスの第4の部分
によってアドレスする手段を含む、(10)に記載のコ
ンピュータ・システム。 (16) 前記複数のプログラム可能リソースが、プロ
グラマブル・ゲート・アレイを含む、(15)に記載の
コンピュータ・システム。 (17) 改善されたコンピュータ・システムであっ
て、x、y2次元配列のx及びyアドレスのそれぞれに
よってアドレス可能な、複数のプログラム可能リソース
を含むフィールド・プログラマブル・ゲート・アレイ
と、前記フィード・プログラマブル・ゲート・アレイの
構成データを保管する目的で、Nビット・アドレスによ
ってアドレス可能な複数のメモリ・ユニットを含むメモ
リ手段であって、前記複数のプログラム可能リソースの
各プログラム可能リソースが、前記複数のメモリ・ユニ
ットの各メモリ・ユニットそれぞれに関連づけられる、
メモリ手段と、前記メモリ・ユニットから、メモリ・ユ
ニットに関連づけられたプログラム可能リソースへの構
成データの伝達を可能にするために、プログラム可能リ
ソース及び各メモリ・ユニットを同時にアドレスするた
めのアドレス手段と、前記複数のプログラム可能リソー
スをアドレスするために、前記複数のメモリ・ユニット
のNビット・アドレスを第1、第2、及び第3の部分に
分割し、前記第2の部分に従って前記第1及び第3の部
分をx及びyアドレスそれぞれ、又はy及びxアドレス
それぞれのいずれかとして切り換えられるように用いる
アドレス手段の範囲内手段とを含む、コンピュータ・シ
ステム。 (18) 前記x、y2次元配列の所定のx及びyアド
レスにおける、前記複数のプログラム可能リソースの各
プログラム可能リソースが、第3のzアドレスによって
アドレス可能な複数の個別のプログラム可能リソースを
含み、前記アドレス手段が、前記Nビット・アドレスの
第4の部分を提供し、前記複数の個別のプログラム可能
リソースをアドレスするための前記第3のzアドレスと
して、前記第4の部分を用いる手段を含む、(17)に
記載のコンピュータ・システム。
【図面の簡単な説明】
【図1】複数のプログラム可能論理セルが配列されたプ
ログラマブル・ゲート・アレイを示す図である。
【図2】複数のプログラム可能論理セルが配列されたプ
ログラマブル・ゲート・アレイの1セクタ部分、及び論
理セルを選択的に接続するプログラム可能な相互接続ネ
ットワークを示す図である。
【図3】論理セルのプログラム可能論理素子及び相互接
続を示すブロック図である。
【図4】4つのコア・セル、及び4つの個別セルの境界
にあるコア・セル関連のバス構造を示す図である。
【図5】プログラマブル・ゲート・アレイのプログラム
可能クロック・リソースを示すブロック図である。
【図6】図5の単一の論理セルを示す図である。
【図7】プログラマブル・ゲート・アレイのプログラム
可能入出力リソースを示すブロック図である。
【図8】セクタを7×7配列にした多数セクタを示す図
である。
【図9】図8に示したセクタ1、2、3、4に関連する
さまざまなプログラム可能リソースの物理的マッピング
を示す図である。
【図10】プログラマブル・ゲート・アレイのさまざま
なリソースをプログラムするための論理ビット・マップ
を示す図である。
【図11】フィールド・プログラマブル・ゲート・アレ
イのプログラム可能リソースにメモリ・セルを割り当て
るための、メモリ・マップを示す図である。
【図12】外部メモリからの構成データをロードするた
めのコントローラ及びデコーダを有する、フィールド・
プログラマブル・ゲート・アレイのブロック図である。
【図13】状態マシーンのさまざまな状態、及び状態マ
シーンによって生成される関連アドレスの大要をまとめ
た表である。
【符号の説明】
1、2、3、4、5、 セクタ 10 プログラマブル・ゲ
ート・アレイ 12 単一セクタ 14 入出力ピン 16 論理セル 161,1〜168,8 論理セル 16a、16b、16c、16d 論理セル、コア・セ
ル 18a、18b 垂直相互接続導体 20a、20b 水平相互接続導体 22 プログラム可能NA
ND/NOR論理素子 24a、24b、24c、24d プログラム可能入出
力マルチプレクサ 25 フリップ・フロップ 26 プログラム可能反転
回路 27 論理素子 28 出力マルチプレクサ 29 論理素子 30 出力マルチプレクサ 32 トライ・ステート・
バッファ 34 プログラム可能出力
マルチプレクサ 36 スイッチング素子
(図2)、中継器グループ(図4) 38 プログラム可能バス
折り返し点 42 列クロック・マルチ
プレクサ 43 フリップ・フロップ 44 グローバル列クロッ
ク線 45 ローカル列クロック
線 46 グローバル列マルチ
プレクサ 50a、50b 入出力ネットワーク 52 入出力パッド 54 マルチプレクサ 56 入出力バス 58 入出力バス折り返し
点 59 入出力バス中継器グ
ループ 60 フィールド・プログ
ラマブル・ゲート・アレイ 62 メモリ素子、EEP
ROM 64 プログラム可能リソ
ース、SRAM、プログラマブル・ゲート・アレイ 66 アドレス・デコーダ
兼シーケンサ 68 コントローラ
【手続補正書】
【提出日】平成9年1月17日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図1】複数のプログラム可能論理セルが配列されたプ
ログラマブル・ゲート・アレイを示す図である。
【図2】複数のプログラム可能論理セルが配列されたプ
ログラマブル・ゲート・アレイの1セクタ部分、及び論
理セルを選択的に接続するプログラム可能な相互接続ネ
ットワークを示す図である。
【図3】論理セルのプログラム可能論理素子及び相互接
続を示すブロック図である。
【図4】4つのコア・セル、及び4つの個別セルの境界
にあるコア・セル関連のバス構造を示す図である。
【図5】プログラマブル・ゲート・アレイのプログラム
可能クロック・リソースを示すブロック図である。
【図6】図5の単一の論理セルを示す図である。
【図7】プログラマブル・ゲート・アレイのプログラム
可能入出力リソースを示すブロック図である。
【図8】セクタを7×7配列にした多数セクタを示す図
である。
【図9】図8に示したセクタ1、2、3、4に関連する
さまざまなプログラム可能リソースの物理的マッピング
を示す図である。
【図10】プログラマブル・ゲート・アレイのさまざま
なリソースをプログラムするための論理ビット・マップ
を示す図である。
【図11】フィールド・プログラマブル・ゲート・アレ
イのプログラム可能リソースにメモリ・セルを割り当て
るための、メモリ・マップを示す図である。
【図12】外部メモリからの構成データをロードするた
めのコントローラ及びデコーダを有する、フィールド・
プログラマブル・ゲート・アレイのブロック図である。
【図13】状態マシーンのさまざまな状態、及び状態マ
シーンによって生成される関連アドレスの大要をまとめ
た図表である。
【符号の説明】 1、2、3、4、5、 セクタ 10 プログラマブル・ゲ
ート・アレイ 12 単一セクタ 14 入出力ピン 16 論理セル 161,1〜168,8 論理セル 16a、16b、16c、16d 論理セル、コア・セ
ル 18a、18b 垂直相互接続導体 20a、20b 水平相互接続導体 22 プログラム可能NA
ND/NOR論理素子 24a、24b、24c、24d プログラム可能入出
力マルチプレクサ 25 フリップ・フロップ 26 プログラム可能反転
回路 27 論理素子 28 出力マルチプレクサ 29 論理素子 30 出力マルチプレクサ 32 トライ・ステート・
バッファ 34 プログラム可能出力
マルチプレクサ 36 スイッチング素子
(図2)、中継器グループ(図4) 38 プログラム可能バス
折り返し点 42 列クロック・マルチ
プレクサ 43 フリップ・フロップ 44 グローバル列クロッ
ク線 45 ローカル列クロック
線 46 グローバル列マルチ
プレクサ 50a、50b 入出力ネットワーク 52 入出力パッド 54 マルチプレクサ 56 入出力バス 58 入出力バス折り返し
点 59 入出力バス中継器グ
ループ 60 フィールド・プログ
ラマブル・ゲート・アレイ 62 メモリ素子、EEP
ROM 64 プログラム可能リソ
ース、SRAM、プログラマブル・ゲート・アレイ 66 アドレス・デコーダ
兼シーケンサ 68 コントローラ
フロントページの続き (72)発明者 フランク・レイ・キーザー アメリカ合衆国05446、バーモント州コル チェスター、ヘリテジ・レイン 8 (72)発明者 ブライアン・エイ・ワース アメリカ合衆国05468、バーモント州ミル トン、アンドリア・レイン 32

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数のアドレス可能メモリ・ユニット、及
    び2次元に配列された複数の制御可能リソースを有する
    コンピュータ・システム内において、前記複数の制御可
    能リソースのそれぞれが、本リソースに対応する前記複
    数のメモリ・ユニットの関連する1つを有し、前記複数
    のメモリ・ユニットが、本メモリ・ユニットに関連する
    Nビットのアドレスを有する場合に、前記複数のメモリ
    ・ユニットを前記複数の制御可能リソースに関連づける
    方法であって、 前記Nビット・アドレスを第1、第2及び第3の部分に
    分割するステップを含み、前記第1及び第3の部分のそ
    れぞれが、2次元配列の2つの次元の対応する1つに切
    り換え可能で関連づけられ、前記第2の部分は、前記第
    1及び第3の部分のそれぞれが2つの次元のどちらに関
    連づけられるかを判定するために用いられる、方法。
  2. 【請求項2】前記複数の制御可能リソースの少くとも1
    つが、複数の個別プログラム可能リソースを含み、複数
    の個別メモリ・ユニットを含む前記複数のメモリ・ユニ
    ットの少くとも1つに関連づけられ、前記複数の個別プ
    ログラム可能リソースのそれぞれが、本リソースに対応
    する前記複数の個別メモリ・ユニットの1つずつを有
    し、前記分割するステップが更にNビット・アドレスの
    第4の部分を設けることを含み、該第4の部分が、前記
    複数の個別メモリ・ユニットの1つずつをアドレスする
    ために用いられる、請求項1に記載の方法。
  3. 【請求項3】前記コンピュータ・システムがフィールド
    ・プログラマブル・ゲート・アレイを含み、前記複数の
    メモリ・ユニットが前記フィールド・プログラマブル・
    ゲート・アレイのSRAMからなる、請求項1に記載の
    方法。
  4. 【請求項4】x、y2次元配列によってアドレス可能な
    複数のプログラム可能リソースを有するプログラマブル
    ・ゲート・アレイにメモリを割り当てる方法であって、 Nビットのアドレスによってアドレス可能な複数のアド
    レス可能メモリ・ユニットを設けるステップと、 前記Nビットのアドレスを第1、第2、及び第3の部分
    に分割するステップと、 前記Nビット・アドレスの前記第1及び第3の部分を、
    前記第2の部分に従って、前記複数のプログラム可能リ
    ソースの前記x、y2次元配列のx次元及びy次元のそ
    れぞれに切り換えて関連づけるステップと、 前記Nビット・アドレスによってアドレスされる前記複
    数のアドレス可能メモリ・ユニットのメモリ・ユニット
    を、前記Nビット・アドレスの前記第1及び第3の部分
    によってアドレスすることにより、前記x、y2次元配
    列内の前記複数のプログラム可能リソースのプログラム
    可能リソースのそれぞれに割り当てるステップと、を含
    む方法。
  5. 【請求項5】x、y2次元配列によってアドレス可能な
    複数のプログラム可能リソースと、 Nビットのアドレスによってアドレス可能な複数のアド
    レス可能メモリ・ユニットと、 所定のNビット・アドレスによって前記複数のアドレス
    可能メモリ・ユニットをアドレスする手段と、 前記所定のNビット・アドレスを第1、第2、及び第3
    の部分に分割する手段と、 前記複数のプログラム可能リソースの前記x、y2次元
    配列のx及びyアドレス可能な次元のそれぞれを、前記
    所定のNビット・アドレスの第2の部分に従って、前記
    所定のNビット・アドレスの前記第1及び第3の部分そ
    れぞれ、又は前記第3及び第1の部分それぞれのいずれ
    かを用いて、切り換えてアドレスするための手段と、を
    有するコンピュータ・システム。
  6. 【請求項6】前記複数のプログラム可能リソースがプロ
    グラマブル・ゲート・アレイを含む、請求項5に記載の
    コンピュータ・システム。
  7. 【請求項7】前記プログラマブル・ゲート・アレイが、 電気的に制御可能なリソースと、 前記電気的に制御可能なリソースそれぞれをドライブす
    るために結合され、x、y2次元配列によってアドレス
    可能なメモリ・セルを有するプログラム可能なSRAM
    と、を有し、 前記切り換えてアドレスするための手段が、前記プログ
    ラム可能SRAMのx及びyアドレス可能な次元のそれ
    ぞれを、前記所定のNビット・アドレスの第2の部分に
    従って、前記所定のNビット・アドレスの第1及び第3
    の部分それぞれ、又は第3及び第1の部分のそれぞれの
    いずれかを用いてアドレスする、請求項6に記載のコン
    ピュータ・システム。
  8. 【請求項8】前記x、y2次元配列の所定の位置におい
    て、前記複数のプログラム可能リソースの各プログラム
    可能リソースが、第3のz次元に沿ってアドレス可能な
    複数の個別プログラム可能リソースを有し、 前記分割する手段が前記所定のNビット・アドレスの第
    4の部分を設ける手段を含み、 前記アドレスする手段が、前記複数のプログラム可能リ
    ソースの前記アドレス可能な第3のz次元を、前記所定
    のNビット・アドレスの第4の部分によってアドレスす
    る手段を含む、請求項5に記載のコンピュータ・システ
    ム。
  9. 【請求項9】改善されたコンピュータ・システムであっ
    て、 x、y2次元配列のx及びyアドレスのそれぞれによっ
    てアドレス可能な、複数のプログラム可能リソースを含
    むフィールド・プログラマブル・ゲート・アレイと、 前記フィード・プログラマブル・ゲート・アレイの構成
    データを保管する目的で、Nビット・アドレスによって
    アドレス可能な複数のメモリ・ユニットを含むメモリ手
    段であって、前記複数のプログラム可能リソースの各プ
    ログラム可能リソースが、前記複数のメモリ・ユニット
    の各メモリ・ユニットそれぞれに関連づけられる、メモ
    リ手段と、 前記メモリ・ユニットから、メモリ・ユニットに関連づ
    けられたプログラム可能リソースへの構成データの伝達
    を可能にするために、プログラム可能リソース及び各メ
    モリ・ユニットを同時にアドレスするためのアドレス手
    段と、 前記複数のプログラム可能リソースをアドレスするため
    に、前記複数のメモリ・ユニットのNビット・アドレス
    を第1、第2、及び第3の部分に分割し、前記第2の部
    分に従って前記第1及び第3の部分を、x及びyアドレ
    スそれぞれ、又はy及びxアドレスそれぞれのいずれか
    として切り換えられるように用いるアドレス手段の範囲
    内の手段とを含む、コンピュータ・システム。
  10. 【請求項10】前記x、y2次元配列の所定のx及びy
    アドレスにおける、前記複数のプログラム可能リソース
    の各プログラム可能リソースが、第3のzアドレスによ
    ってアドレス可能な複数の個別のプログラム可能リソー
    スを含み、 前記アドレス手段が、前記Nビット・アドレスの第4の
    部分を提供し、前記複数の個別のプログラム可能リソー
    スをアドレスするための前記第3のzアドレスとして、
    前記第4の部分を用いる手段を含む、請求項9に記載の
    コンピュータ・システム。
JP12150296A 1995-06-07 1996-05-16 改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ Expired - Fee Related JP3480784B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US488314 1990-03-05
US08/488,314 US5692147A (en) 1995-06-07 1995-06-07 Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof

Publications (2)

Publication Number Publication Date
JPH09246954A true JPH09246954A (ja) 1997-09-19
JP3480784B2 JP3480784B2 (ja) 2003-12-22

Family

ID=23939237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12150296A Expired - Fee Related JP3480784B2 (ja) 1995-06-07 1996-05-16 改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ

Country Status (3)

Country Link
US (1) US5692147A (ja)
EP (1) EP0748052A1 (ja)
JP (1) JP3480784B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002223162A (ja) * 2000-09-18 2002-08-09 Altera Corp 特定機能ブロックを有するプログラマブルロジックデバイス
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre
JP2005156199A (ja) * 2003-11-21 2005-06-16 Hitachi Ltd 車両検知方法及び車両検知装置

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6002268A (en) * 1993-01-08 1999-12-14 Dynachip Corporation FPGA with conductors segmented by active repeaters
US6130550A (en) * 1993-01-08 2000-10-10 Dynalogic Scaleable padframe interface circuit for FPGA yielding improved routability and faster chip layout
US6025736A (en) * 1993-01-08 2000-02-15 Dynalogic Fast reprogrammable logic with active links between cells
US5914906A (en) * 1995-12-20 1999-06-22 International Business Machines Corporation Field programmable memory array
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5845296A (en) * 1996-07-10 1998-12-01 Oracle Corporation Method and apparatus for implementing segmented arrays in a database
US5892962A (en) * 1996-11-12 1999-04-06 Lucent Technologies Inc. FPGA-based processor
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
AU7812798A (en) * 1997-06-04 1998-12-21 Dynaco Corporation Fpga with conductors segmented by active repeaters
US6314551B1 (en) 1998-06-22 2001-11-06 Morgan Stanley & Co. Incorporated System processing unit extended with programmable logic for plurality of functions
US6219824B1 (en) * 1998-09-04 2001-04-17 Advanced Micro Devices, Inc. Integrated circuit having a programmable input/output processor that is used for increasing the flexibility of communications
JP3616518B2 (ja) 1999-02-10 2005-02-02 日本電気株式会社 プログラマブルデバイス
US6347346B1 (en) * 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US6191613B1 (en) * 1999-07-29 2001-02-20 Xilinx, Inc. Programmable logic device with delay-locked loop
US6970967B2 (en) * 2002-06-18 2005-11-29 Texas Instruments Incorporated Crossbar circuit having a plurality of repeaters forming different repeater arrangements
AU2003237005A1 (en) * 2002-06-28 2004-01-19 Koninklijke Philips Electronics N.V. Integrated circuit having building blocks
US7043630B1 (en) * 2003-04-28 2006-05-09 Altera Corporation Techniques for actively configuring programmable circuits using external memory
US7441097B2 (en) * 2003-09-10 2008-10-21 Seagate Technology Llc Data storage system and method for adaptive reconstruction of a directory structure
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
US7126381B1 (en) 2004-02-14 2006-10-24 Herman Schmit VPA interconnect circuit
US7157933B1 (en) 2004-02-14 2007-01-02 Herman Schmit Configurable circuits, IC's, and systems
US7425841B2 (en) 2004-02-14 2008-09-16 Tabula Inc. Configurable circuits, IC's, and systems
US7193440B1 (en) 2004-02-14 2007-03-20 Herman Schmit Configurable circuits, IC's, and systems
US7193432B1 (en) 2004-02-14 2007-03-20 Herman Schmit VPA logic circuits
US7126373B1 (en) 2004-02-14 2006-10-24 Herman Schmit Configurable logic circuits with commutative properties
US7284222B1 (en) 2004-06-30 2007-10-16 Tabula, Inc. Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit
US7109752B1 (en) * 2004-02-14 2006-09-19 Herman Schmit Configurable circuits, IC's, and systems
US7408382B2 (en) 2004-06-30 2008-08-05 Tabula, Inc. Configurable circuits, IC's, and systems
US7282950B1 (en) 2004-11-08 2007-10-16 Tabula, Inc. Configurable IC's with logic resources with offset connections
US7145361B1 (en) 2004-06-30 2006-12-05 Andre Rohe Configurable integrated circuit with different connection schemes
US7312630B2 (en) 2004-06-30 2007-12-25 Tabula, Inc. Configurable integrated circuit with built-in turns
US7439766B2 (en) 2004-06-30 2008-10-21 Tabula, Inc. Configurable logic circuits with commutative properties
US7449915B2 (en) 2004-06-30 2008-11-11 Tabula Inc. VPA logic circuits
US7193438B1 (en) 2004-06-30 2007-03-20 Andre Rohe Configurable integrated circuit with offset connection
US7295037B2 (en) * 2004-11-08 2007-11-13 Tabula, Inc. Configurable IC with routing circuits with offset connections
US7259587B1 (en) 2004-11-08 2007-08-21 Tabula, Inc. Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs
US7743085B2 (en) 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7276933B1 (en) 2004-11-08 2007-10-02 Tabula, Inc. Reconfigurable IC that has sections running at different looperness
US7268586B1 (en) 2004-11-08 2007-09-11 Tabula, Inc. Method and apparatus for accessing stored data in a reconfigurable IC
US7917559B2 (en) 2004-11-08 2011-03-29 Tabula, Inc. Configurable IC's with configurable logic circuits that perform adder and/or subtractor operations
US20070244958A1 (en) * 2004-11-08 2007-10-18 Jason Redgrave Configurable IC's with carry bypass circuitry
US7330050B2 (en) 2004-11-08 2008-02-12 Tabula, Inc. Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements
US7342415B2 (en) 2004-11-08 2008-03-11 Tabula, Inc. Configurable IC with interconnect circuits that also perform storage operations
US7242216B1 (en) 2004-11-08 2007-07-10 Herman Schmit Embedding memory between tile arrangement of a configurable IC
US7301368B2 (en) 2005-03-15 2007-11-27 Tabula, Inc. Embedding memory within tile arrangement of a configurable IC
US7317331B2 (en) 2004-11-08 2008-01-08 Tabula, Inc. Reconfigurable IC that has sections running at different reconfiguration rates
US7573296B2 (en) 2004-11-08 2009-08-11 Tabula Inc. Configurable IC with configurable routing resources that have asymmetric input and/or outputs
US7224181B1 (en) 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7236009B1 (en) 2004-12-01 2007-06-26 Andre Rohe Operational time extension
US7496879B2 (en) * 2004-12-01 2009-02-24 Tabula, Inc. Concurrent optimization of physical design and operational cycle assignment
US7428721B2 (en) 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US7230869B1 (en) 2005-03-15 2007-06-12 Jason Redgrave Method and apparatus for accessing contents of memory cells
US7825684B2 (en) 2005-03-15 2010-11-02 Tabula, Inc. Variable width management for a memory of a configurable IC
US7530033B2 (en) 2005-03-15 2009-05-05 Tabula, Inc. Method and apparatus for decomposing functions in a configurable IC
US7224182B1 (en) 2005-03-15 2007-05-29 Brad Hutchings Hybrid configurable circuit for a configurable IC
US7298169B2 (en) 2005-03-15 2007-11-20 Tabula, Inc Hybrid logic/interconnect circuit in a configurable IC
US7310003B2 (en) * 2005-03-15 2007-12-18 Tabula, Inc. Configurable IC with interconnect circuits that have select lines driven by user signals
US7818361B1 (en) 2005-11-07 2010-10-19 Tabula, Inc. Method and apparatus for performing two's complement multiplication
US7372297B1 (en) 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US7765249B1 (en) 2005-11-07 2010-07-27 Tabula, Inc. Use of hybrid interconnect/logic circuits for multiplication
US7489162B1 (en) 2005-12-01 2009-02-10 Tabula, Inc. Users registers in a reconfigurable IC
US7461362B1 (en) 2005-12-01 2008-12-02 Tabula, Inc. Replacing circuit design elements with their equivalents
US7679401B1 (en) 2005-12-01 2010-03-16 Tabula, Inc. User registers implemented with routing circuits in a configurable IC
US7904688B1 (en) * 2005-12-21 2011-03-08 Trend Micro Inc Memory management unit for field programmable gate array boards
US7835803B1 (en) * 2006-01-17 2010-11-16 Boston Scientific Neuromodulation Corporation Lead assemblies with one or more switching networks
US7504858B1 (en) 2006-03-08 2009-03-17 Tabula, Inc. Configurable integrated circuit with parallel non-neighboring offset connections
US7518400B1 (en) 2006-03-08 2009-04-14 Tabula, Inc. Barrel shifter implemented on a configurable integrated circuit
US7797497B1 (en) 2006-03-08 2010-09-14 Tabula, Inc. System and method for providing more logical memory ports than physical memory ports
US7609085B1 (en) 2006-03-08 2009-10-27 Tabula, Inc. Configurable integrated circuit with a 4-to-1 multiplexer
US7694083B1 (en) 2006-03-08 2010-04-06 Tabula, Inc. System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture
US7529992B1 (en) 2006-03-27 2009-05-05 Tabula, Inc. Configurable integrated circuit with error correcting circuitry
US7669097B1 (en) 2006-03-27 2010-02-23 Tabula, Inc. Configurable IC with error detection and correction circuitry
WO2008013098A1 (fr) * 2006-07-27 2008-01-31 Panasonic Corporation Circuit intégré à semi-conducteurs, appareil de conversion de programmes et appareil de mappage
US7587697B1 (en) 2006-12-12 2009-09-08 Tabula, Inc. System and method of mapping memory blocks in a configurable integrated circuit
US7930666B1 (en) 2006-12-12 2011-04-19 Tabula, Inc. System and method of providing a memory hierarchy
EP2140548A4 (en) 2007-03-20 2010-06-09 Tabula Inc CONFIGURABLE IC WITH A COUPLING AREA WITH MEMORY ELEMENTS
US7535252B1 (en) 2007-03-22 2009-05-19 Tabula, Inc. Configurable ICs that conditionally transition through configuration data sets
US8120989B2 (en) * 2007-06-25 2012-02-21 Qualcomm Incorporated Concurrent multiple-dimension word-addressable memory architecture
US8344755B2 (en) 2007-09-06 2013-01-01 Tabula, Inc. Configuration context switcher
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US7930162B1 (en) 2008-05-05 2011-04-19 Xilinx, Inc. Accelerating hardware co-simulation using dynamic replay on first-in-first-out-driven command processor
US8166435B2 (en) 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
WO2011123151A1 (en) 2010-04-02 2011-10-06 Tabula Inc. System and method for reducing reconfiguration power usage
US8650514B2 (en) 2010-06-23 2014-02-11 Tabula, Inc. Rescaling
US8788987B2 (en) 2010-06-23 2014-07-22 Tabula, Inc. Rescaling
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US9148151B2 (en) 2011-07-13 2015-09-29 Altera Corporation Configurable storage elements
US9203397B1 (en) 2011-12-16 2015-12-01 Altera Corporation Delaying start of user design execution
US9000801B1 (en) 2013-02-27 2015-04-07 Tabula, Inc. Implementation of related clocks
HRP20140883A2 (hr) * 2014-09-16 2016-03-25 Željko Božić Višeslojni univerzalni logički sklopovi
TWI689818B (zh) * 2018-08-28 2020-04-01 其陽科技股份有限公司 可變式電子裝置
US11842169B1 (en) 2019-09-25 2023-12-12 Amazon Technologies, Inc. Systolic multiply delayed accumulate processor architecture
US11816446B2 (en) 2019-11-27 2023-11-14 Amazon Technologies, Inc. Systolic array component combining multiple integer and floating-point data types
US11467806B2 (en) 2019-11-27 2022-10-11 Amazon Technologies, Inc. Systolic array including fused multiply accumulate with efficient prenormalization and extended dynamic range
US11308027B1 (en) * 2020-06-29 2022-04-19 Amazon Technologies, Inc. Multiple accumulate busses in a systolic array
US11422773B1 (en) 2020-06-29 2022-08-23 Amazon Technologies, Inc. Multiple busses within a systolic array processing element
US11308026B1 (en) * 2020-06-29 2022-04-19 Amazon Technologies, Inc. Multiple busses interleaved in a systolic array
US11880682B2 (en) 2021-06-30 2024-01-23 Amazon Technologies, Inc. Systolic array with efficient input reduction and extended array performance

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6284495A (ja) * 1985-10-08 1987-04-17 Nippon Texas Instr Kk 半導体記憶装置
JP2541248B2 (ja) * 1987-11-20 1996-10-09 三菱電機株式会社 プログラマブル・ロジック・アレイ
US5067167A (en) * 1990-10-10 1991-11-19 Cornell Research Foundation, Inc. Apparatus and method for rotating of three-dimensional images
US5293593A (en) * 1990-10-11 1994-03-08 Hewlett-Packard Company Method and apparatus for the mapping of physically non-contiguous memory fragments to be linearly addressable
JP2623979B2 (ja) * 1991-01-25 1997-06-25 日本電気株式会社 ダイナミック型論理回路
US5313119A (en) * 1991-03-18 1994-05-17 Crosspoint Solutions, Inc. Field programmable gate array
US5298805A (en) * 1991-08-29 1994-03-29 National Semiconductor Corporation Versatile and efficient cell-to-local bus interface in a configurable logic array
JP3269117B2 (ja) * 1992-05-26 2002-03-25 安藤電気株式会社 半導体メモリ用試験パターン発生器
US5291079A (en) * 1992-07-23 1994-03-01 Xilinx, Inc. Configuration control unit for programming a field programmable gate array and reading array status
GB9223226D0 (en) * 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
JPH081752B2 (ja) * 1993-03-24 1996-01-10 日本電気株式会社 半導体記憶装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002223162A (ja) * 2000-09-18 2002-08-09 Altera Corp 特定機能ブロックを有するプログラマブルロジックデバイス
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre
EA005344B1 (ru) * 2001-05-24 2005-02-24 Ай Пи ФЛЕКС ИНК. Интегральная схема
US7191312B2 (en) 2001-05-24 2007-03-13 Ipflex Inc. Configurable interconnection of multiple different type functional units array including delay type for different instruction processing
US7577821B2 (en) 2001-05-24 2009-08-18 Ipflex Inc. IC containing matrices of plural type operation units with configurable routing wiring group and plural delay operation units bridging two wiring groups
JP2005156199A (ja) * 2003-11-21 2005-06-16 Hitachi Ltd 車両検知方法及び車両検知装置

Also Published As

Publication number Publication date
EP0748052A1 (en) 1996-12-11
JP3480784B2 (ja) 2003-12-22
US5692147A (en) 1997-11-25

Similar Documents

Publication Publication Date Title
JP3480784B2 (ja) 改善されたメモリ割り当てを行うプログラマブル・ゲート・アレイ
US5598108A (en) High-density erasable programmable logic device architecture using multiplexer interconnections, and registered macrocell with product term allocation and adjacent product term stealing
US5241224A (en) High-density erasable programmable logic device architecture using multiplexer interconnections
JP3454834B2 (ja) 複数個のピンを有する集積回路
JP3547446B2 (ja) フィールドプログラマブルゲートアレーのタイル型構造
US6292021B1 (en) FPGA structure having main, column and sector reset lines
US5801547A (en) Embedded memory for field programmable gate array
US5668771A (en) Programmable logic array integrated circuits
US7009422B2 (en) Floor plan for scalable multiple level tab oriented interconnect architecture
US6300793B1 (en) Scalable multiple level tab oriented interconnect architecture
US5081375A (en) Method for operating a multiple page programmable logic device
US5268598A (en) High-density erasable programmable logic device architecture using multiplexer interconnections
EP0746107A2 (en) Programmable logic cell
US20030016053A1 (en) Programmable logic array integrated circuit devices
JPH05183425A (ja) 複数個の集積回路プログラマブル論理装置、プログラマブル論理装置における複数個のプログラマブル論理ブロックを相互接続するための方法および集積回路プログラマブル論理装置のためのプログラマブル論理ブロック
JPH098646A (ja) プログラマブル・アレイ相互接続ラッチ
JPH08503111A (ja) 改良型コンフィギャラブルセルアレイ
US5883850A (en) Programmable logic array integrated circuits
JPH05218199A (ja) 複数の入力/出力(i/o)ピンを有する集積回路
US5781032A (en) Programmable inverter circuit used in a programmable logic cell
US20020130681A1 (en) Programmable logic array integrated circuits
JP3576837B2 (ja) プログラマブルロジックlsiの基本セル及び基本セル2次元アレイ
US5021689A (en) Multiple page programmable logic architecture
US5463328A (en) Expanded programmable logic architecture
US5836007A (en) Methods and systems for improving memory component size and access speed including splitting bit lines and alternate pre-charge/access cycles

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees