JPH09181599A - 時間多重書込可能論理装置 - Google Patents
時間多重書込可能論理装置Info
- Publication number
- JPH09181599A JPH09181599A JP8217527A JP21752796A JPH09181599A JP H09181599 A JPH09181599 A JP H09181599A JP 8217527 A JP8217527 A JP 8217527A JP 21752796 A JP21752796 A JP 21752796A JP H09181599 A JPH09181599 A JP H09181599A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- programmable logic
- logic
- configuration
- memory
- 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
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/17748—Structural details of configuration resources
- H03K19/1776—Structural details of configuration resources for memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Logic Circuits (AREA)
- Dram (AREA)
Abstract
プログラム可能論理装置を提供する。 【解決手段】 本発明によれば、複数個の形態特定可能
論理ブロック(CLB)、該CLBを相互接続するため
の相互接続構成体、該CLB及び相互接続構成体の形態
を特定するための複数個のプログラム可能論理要素を有
するプログラム可能論理装置(PLD)が提供される。
各CLBは、組合わせ要素と順序論理要素とを有してお
り、少なくとも1個のプログラム可能論理要素は該組合
わせ要素の形態を特定するための複数個のメモリセルを
有しており、且つ少なくとも1個のプログラム可能論理
要素は該順序論理要素の形態を特定するための複数個の
メモリセルを有している。
Description
ブルロジック装置即ちプログラム可能論理装置に関する
ものであって、更に詳細には、コンフィギャラブル(形
態特定可能)論理ブロック及びプログラム可能ルーチン
グ(経路付け)マトリクスがダイナミックに再度形態特
定されるフィールドプログラマブルゲートアレイ、即ち
現場においてプログラム可能なゲートアレイに関するも
のである。
(FPGA)等のプログラム可能論理装置は公知のタイ
プの集積回路であり且つ再プログラム可能特性によって
提供される柔軟性のために広く適用可能なものである。
FPGAは、典型的に、ユーザ(回路設計者)によって
所望される論理関数を与えるために互いにプログラムす
ることによって相互接続される複数個のコンフィギャラ
ブル(形態特定可能)論理ブロック(CLB)からなる
アレイを有している。FPGAは、典型的に、同一の複
数個のCLBからなる規則的なアレイを有しており、各
CLBは、多数の異なる論理関数のうちのいずれか1つ
を実行するために個別的にプログラムされる。FPGA
は、所望のユーザの回路設計にしたがってCLBを相互
接続するためのコンフィギャラブル即ち形態特定可能な
ルーチング(経路付け)構成体を有している。FPGA
は、更に、多数のコンフィギュレーション(形態)メモ
リセルを有しており、それらはCLBと結合されて各C
LBによって実行されるべき関数を特定し、且つコンフ
ィギャラブルルーチング(形態特定可能な経路付け)構
成体へ結合されており各CLBの入力線及び出力線の結
合を特定する。FPGAは、更に、動作期間中にユーザ
によってアクセス可能なデータ格納メモリセルを有する
ことが可能である。然しながら、特に断りがない限り、
メモリセルという用語はコンフィギュレーション(形
態)メモリセルのことを言及する。ザイリンクスインコ
ーポレイテッドの1994年に出版された「ザ・プログ
ラマブル・ロジック・データ・ブック(The Pro
grammable LogicData Boo
k)」という題名の出版物は、幾つかのFPGA製品を
記載しており、引用によってその全体を本明細書に取込
む。
めに従来技術において使用可能な1つのアプローチは、
外部接続によって複数個のFPGA(即ち、複数個のチ
ップ)を結合させることであった。然しながら、FPG
A間での入力/出力接続部、即ちピンの数が制限されて
いたために、全ての回路がこのアプローチを使用して実
現することが可能なものではない。更に、1個を超えた
数のFPGAを使用することは、ユーザの回路設計を実
現する上で、電力消費、コスト及び空間を不所望に増加
させる。
CLB及び相互接続構成体の数を増加させることであっ
た。然しながら、いずれの与えられた半導体製造技術の
場合にも、実際的な寸法の集積回路チップ上に製造する
ことの可能なCLBの数には制限がある。従って、FP
GA用の論理ゲート数即ちCLB密度を増加させること
の必要性が継続して存在している。
するためにFPGAを再度形態を特定することは当該技
術分野において公知である。然しながら、この再形態特
定は、各再形態特定のためにコンフィギュレーション
(形態)ビットストリームを再ロードする時間のかかる
ステップを必要とする。更に、従来のFPGAの再形態
特定は、通常、論理関数の実行を中断し、論理関数の現
在の状態をFPGA外部のメモリ装置内へ保存し、メモ
リ形態セルの全アレイを再ロードし、且つチップ外に保
存した論理関数の状態及びその他の必要な入力を入力す
ることを必要とする。これらのステップの各々は、かな
りの時間を必要とし、そのために再形態特定は典型的な
回路を実現する場合に非実際的なものとさせている。
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、形態特定可能論理ブロック及びプログラム
可能経路付けマトリクスをダイナミックに再形態特定す
ることの可能なプログラム可能論理装置を提供するを目
的とする。
ラム可能論理装置(PLD)が、少なくとも1個のコン
フィギャラブルロジックブロック即ち形態特定可能論理
ブロック(CLB)と、該CLBを相互接続するための
相互接続構成体と、該CLB及び該相互接続構成体をコ
ンフィギュア、即ち形態を特定するための複数個のプロ
グラム可能論理要素とを有している。各CLBは、組合
わせ要素と順序論理要素とを有しており、少なくとも1
個のプログラム可能論理要素は、該組合わせ要素をコン
フィギュア、即ち形態を特定するための複数個のメモリ
セルを有しており、且つ少なくとも1個のプログラム可
能論理要素は該順序論理要素をコンフィギュア、即ち形
態を特定するための複数個のメモリセルを有している。
本発明によれば、PLDは、前記複数個のメモリ要素の
うちの少なくとも1つへのアクセスをディスエーブル、
即ち動作不能状態とさせる手段を有している。一実施例
においては、該メモリセルはRAMセルであり、一方他
の実施例においては、該メモリセルはROMセルであ
り、又はそれらの組合わせである。
レーション(形態)メモリ用に使用されるメモリセル
は、更に、ユーザのデータメモリとしても使用可能であ
る。従って、1個のメモリスライス(1つのコンフィギ
ュレーション即ち形態に対するビットの全て)又は1つ
のメモリスライスの一部を、コンフィギュレーションメ
モリ又はユーザデータのいずれかとして選択的に使用さ
れる。ラッチがアクティブ即ち活性なコンフィギュレー
ション(形態)を保持している間に、データビットをア
ドレスでアクセスすることが可能である。
接続構成体の複数個の中間状態を格納する。該マイクロ
レジスタは複数個の読取ポートを有しており、その際に
1つのコンフィギュレーション(形態)が幾つかのその
他のコンフィギュレーション(形態)のうちのいずれか
1つの期間中に該CLBにおいて計算された値を同時的
に使用することを可能としている。このような態様で、
CLBは他のコンフィギュレーション(形態)において
CLB(その他のCLB又はそれ自身)によって計算さ
れた値へアクセスすることが可能である。種々の実施例
において、該マイクロレジスタはCLBの出力端か、C
LBの入力端か、又は相互接続構成体内のその他の箇所
のいずれかに位置されている。
又は外部又は内部信号からのコマンドによって、逐次的
にコンフィギュレーション(形態)間でスイッチする。
このスイッチ動作は、「フラッシュリコンフィギュレー
ション(フラッシュ再形態特定)」と呼ばれる。フラッ
シュリコンフィギュレーションは、本PLDがN個のコ
ンフィギュレーション(形態)のうちの1つにおいて機
能することを可能とし、尚、Nは各プログラム可能な点
へ割当てられた最大数のメモリセルに等しい。このよう
な態様で、M個の実際のCLBを有するPLDは、それ
があたかもM×N個の実効的なCLBを有するように機
能する。従って、8個のコンフィギュレーション(形
態)を仮定した場合に、本PLDは、付加的なコンフィ
ギュレーションメモリを有することによってそれが実際
に有する論理の量の8倍の論理を実現する。フラッシュ
リコンフィギュレーションを使用することによって、本
発明のCLBはダイナミックに効果的に再使用され、そ
の際に与えられた数の論理関数を実現するために必要と
される物理的なCLBの数をコンフィギュレーションの
数の係数だけ減少させる。更に、該マイクロレジスタ
は、各フラッシュリコンフィギュレーションに対して保
存及び再格納機能を提供し、その際にそのコンフィギュ
レーション(形態)が最後に終了した箇所からコンフィ
ギュレーション即ち形態特定を行なうこととを再開する
ことを可能とする。
論理要素のうちの1つの出力信号として該メモリセルの
1つの値を供給するためのラッチを有している。このラ
ッチは、該メモリセルのコンフィギュア即ち形態特定を
行なうための複数個のビット線に関して行なわれるプレ
チャージの遅延を効果的に隠す。更に、該ラッチはユー
ザのコンフィギュレーションとは独立的に該PLDに対
し既知の状態へパワーアップする。更に、該ラッチは、
コンフィギュレーション即ち形態特定がアクティブ即ち
活性状態にある間にメモリへのアクセスを可能とさせ
る。
該中間状態、少なくとも1個のCLBにおける値(順序
論理要素又は組合わせ要素と関連している)又はCLB
への外部信号のいずれかへアクセスするための複数個の
マルチプレクサを有している。
されており、それらは以下の目次に従って構成されてい
る。
ン 9.3 マイクロレジスタ代替物 9.4 より深い論理に対する代替物 9.5 CLB毎メモリアクセスコンフィギュレーショ
ンビット 9.6 マイクロレジスタセレクタオプション 9.7 低パワー相互接続回路 9.8 コンフィギュレーション用マルチアクセス 9.9 パイプライン特徴モード 9.10 ROMセルの組込み1.0 用語 ここにおいては3つのタイプのデータ(3つのタイプの
メモリ又は格納部を暗示する)、即ち、コンフィギュレ
ーションデータ、ユーザデータ、状態データについて説
明する。コンフィギュレーションデータは、そのデータ
が論理ブロック又は相互接続体へ供給された場合に、論
理ブロック又は相互接続体のコンフィギュレーション即
ち形態特定を決定する。ユーザデータは、典型的に、ユ
ーザの論理によって発生され且つそうでなければコンフ
ィギュレーションデータの格納のために使用することの
可能なメモリにおいて格納/検索されるデータである。
状態データは、任意の特定の時間においてのユーザ論理
におけるノードの論理値を画定するデータである。典型
的に、状態データは、該ノードにおける値が後の時間に
おいて必要とされる場合に格納される。「状態」という
用語は、特定の時間においてのノード値の全て又はこれ
らの値のうちのサブセットのいずれかを言及するために
使用される。
レイテッドから市販されているザイリンクスXC400
0(商標)ファミリィのFPGAのうちの1つの装置
は、各プログラミング点を制御するために1個のコンフ
ィギュレーションメモリセルを有している。図1に示し
たように、従来のラッチ101(即ち、4トランジスタ
装置)及びセレクトトランジスタ102は、FPGAチ
ップ上の全ての論理関数に対する制御の基本的なユニッ
トを形成する5トランジスタ(5T)メモリセル100
を有している。1989年4月11日付で発行された米
国特許第4,821,233号、及び1988年6月7
日付で発行された米国特許第4,750,155号は、
この5Tメモリセルのコンフィギュレーション即ち形態
特定について詳細に説明しており、それらは引用によっ
て本明細書に導入する。
各メモリセル100(図1)はランダムアクセスメモリ
(RAM)ビット組200で置換されている。ビット組
200は、8個のメモリセルMC0−MC7を有してい
る。各メモリセルMCはラッチ201と、それと関連す
るセレクトトランジスタ202とを有している。メモリ
セルMC0−MC7はクロック動作されるラッチ204
へ信号を供給する共通ビット線203へ結合されてい
る。別の実施例においては、メモリセルMC0−MC7
は従来の6トランジスタ(6T)メモリセルであって、
それらは当該技術分野において公知であり、従ってその
詳細な説明は割愛する。異なるビット組における同一の
位置における全てのコンフィギュレーションビット(例
えば、メモリセルMC2によってラッチ2012 により
格納されている3番目のコンフィギュレーションビッ
ト)はメモリの単一の「スライス」内に存在するものと
考えられ、アレイの単一コンフィギュレーション(形
態)に対応している。
ルはFPGA回路のダイナミックな再使用により論理密
度を増加させる。特に、CLB及び相互接続体はある時
刻において何らかの定義されたタスクを実行すべく形態
特定され且つ別の時刻において別のタスクを実効すべく
再度形態特定される。従って、各先のFPGAプログラ
ミング点に対してビット組を供給することにより、本発
明におけるFPGAは従来のFPGAの論理量の8倍の
量を「保持」する。CLBを再度形態特定させることに
よって、CLBにおける関数発生器の数、典型的には、
ユーザの回路において与えられた数のルックアップテー
ブル(「仮想のLUT」)を実現するために必要とされ
る従来のルックアップテーブル(「現実のLUT」)の
数は、コンフィギュレーション(形態特定)の数の係数
だけ減少される。
施例を示したブロック図である。この実施例において
は、CLB301は320個のプログラミング点を有し
ており、各プログラミング点は1ビットのコンフィギュ
レーションデータを必要とし、各ビットは8ビットメモ
リを有している。例えば、G論理関数発生器302は1
28個のビット(16ビット×8)によって形態が特定
される。論理関数発生器302,303,304、複数
個のマルチプレクサ305−321、SR制御を制御す
るコンフィギュレーションビットは、コンフィギュレー
ションワード内のビットの各々の「後ろ側」の8ビット
メモリ組を表わす陰付きボックスとして示されている。
説明の便宜上、図3はスイッチボックス及び接続ボック
ス及びそれらに関連するコンフィギュレーションビット
を図示していないが、これらのボックス内の各プログラ
ミング点も8ビットメモリを有している。
値が同時的に読み出されて、チップ上のCLB及び相互
接続体のコンフィギュレーション即ち形態特定をアップ
デートし、その際にCLBをして異なる論理関数を実行
させ且つ相互接続体をして異なる接続を行なわせる。
合されているマイクロレジスタ324及び325を示し
ている。中間論理状態を格納する各マイクロレジスタ
は、8個のマイクロレジスタビットを有しており、その
場合に、各マイクロレジスタビットは前述した8個のメ
モリスライスのうちの1つに対応している(然しなが
ら、一実施例においては、全てのマイクロレジスタの全
てのビットが存在する訳ではない)。コンフィギュレー
ション即ち形態特定の変化の直前において、現在のメモ
リスライスに対応するマイクロレジスタビットがクロッ
ク動作され全てのCLB(及び、ある実施例において
は、IOB)の状態を捕獲する。本発明によれば、マイ
クロレジスタ324及び325の内容はどのようなコン
フィギュレーション(形態特定)においても使用するこ
とが可能である。各コンフィギュレーション期間中に、
信号は従来の態様でFPGAを介して伝播し、プログラ
ムした相互接続体を介してマイクロレジスタからルック
アップテーブル(LUT)又はCLBの入力端子へ付加
的な経路が与えられる。
に対する複数個のセレクタが設けられており、従って単
一のコンフィギュレーション即ち形態特定が、CLBの
複数個のその他のコンフィギュレーションによって発生
された値へアクセスするか、又はマイクロレジスタ32
4及び325をバイパスする現在のCLBの値へアクセ
スすることが可能である。例えば、マイクロレジスタ3
24は複数個の出力セレクタ、即ちマルチプレクサ31
3,314,315,316へ結合されている。同様の
態様で、マイクロレジスタ325はマルチプレクサ31
7,318,319,320へ結合されている。注意す
べきことであるが、上述したマルチプレクサ(セレク
タ)の各々は関数発生器302,303,304からの
信号、又はCLB301外部の信号(即ち、信号H1又
はDIN)を受取る。マルチプレクサの数は、一度に使
用することの可能なマイクロレジスタからの信号の数を
制限する。例えば、各マイクロレジスタに対して4個の
出力マルチプレクサが存在しているので(即ち、マイク
ロレジスタ324に対してマルチプレクサ313−31
6及びマイクロレジスタ325に対してマルチプレクサ
317−328)、単一のコンフィギュレーションは、
その他のコンフィギュレーションにおいて同一のマイク
ロレジスタ内に格納されている4つを超えた数の信号へ
アクセスすることは不可能である。
ト(LWS)信号がどのマイクロレジスタビット、即ち
ビット0−7へ書込を行なうかを決定する。読取セレク
ト信号は、例えば、出力マルチプレクサ313を制御
し、該マルチプレクサはどのマイクロレジスタビットを
読取るかを決定する。コンフィギュレーションセレクト
(CRS)信号は、ブロック330から読取ったどのセ
レクト信号を使用するかを決定し、各ブロックは8個の
メモリセル(MC0−MC7)を有している。注意すべ
きことであるが、RWS信号は、メモリ書込動作のみの
ためにメモリ制御器によって供給され(図11及び12
を参照して更に詳細に説明する)及びその他の動作のた
めにシーケンサによって供給される(図22A及び52
を参照して更に詳細に説明する)。対照的に、CRS信
号は、コンフィギュレーション読取動作のためにシーケ
ンサによって供給され且つその他の動作のためにメモリ
制御器によって供給される。
は、単に、一つのマイクロサイクルだけ遅延されたCR
S信号である(「マイクロサイクル」は「μcycl
e」又は「ucycle」とも呼称する)。即ち、CR
S信号はマイクロサイクルの開始時において計算を特定
し、且つRWS信号はマイクロサイクルの終了時にその
結果を格納する。
クロック(μCLK)信号によってパイプラインラッチ
350内へラッチされるので、読取セレクト信号又はC
RS信号をラッチすることは必要ではなく、従ってシリ
コン面積を最小とすると共にマルチプレクサ313がコ
ンフィギュレーション読取プロセスと並列的に動作する
ことを可能としている。
プレクサ305,321,313−316と、Dフリッ
プフロップ322とを有するCLB301(図3)の一
部のより詳細な実施例を示している。注意すべきことで
あるが、図4に示した構造はCLB301内において二
度複製されている。何故ならば、2組のマイクロレジス
タ(即ち、マイクロレジスタ324及び325)が設け
られているからである。この実施例においては、マルチ
プレクサ311(図3)は3個のマルチプレクサ40
2,403,404を有している。マルチプレクサ31
3,314,315,316は、夫々、バッファした出
力信号YA,YB,YQA,YQBを供給する。
ブル信号によって制御される。特に、クロックイネーブ
ル信号ECが論理0であると、現在のマイクロレジスタ
ビットの前の値を以下の態様で得ることが可能である。
最初に、マイクロレジスタ324からの出力信号がCR
S信号で選択され且つマルチプレクサ408を介してマ
イクロクロック(μCLK)信号と共にラッチ415へ
転送される。図3Aを参照して前述したように、このC
RS信号は現在アクティブなコンフィギュレーションの
ビット組におけるアドレス即ち位置である。第二に、ラ
ッチされた信号QOLDは、次いで、マルチプレクサ4
02(信号EC′によって制御される)、マルチプレク
サ403(信号SEL(コンフィギュレーションビット
によって供給される)によって制御される)、及びマル
チプレクサ404(信号SAVE(シーケンサによって
与えられる)によって制御される)を介して、現在のマ
イクロレジスタビットへフィードバックされる。
ているザイリンクスXC4000ファミリィのFPGA
において与えられる信号に適合している。例えば、信号
Kはクロック入力信号であり、且つ信号IVはパワーアッ
プ又はリセット時のフリップフロップ322の初期値で
あり且つビット組200(図2)によって与えられる値
である。
力信号である(尚、X2(不図示)はマイクロレジスタ
325への入力信号である)。注意すべきことである
が、ビット組200(図2)は図4の種々の要素を制御
する。マルチプレクサ408の出力信号はメモリインタ
ーフェース(MEM I−F)405へ供給され、該メ
モリインターフェースはマイクロレジスタ324のプレ
ロードのため、パワーアップ動作のため、又はデバッグ
動作のため等のためにマルチプレクサ404へ値を供給
する。一実施例においては、マイクロレジスタ324
は、該レジスタの各ビットがそれを発生したコンフィギ
ュレーションと同一のアドレス空間内に存在するように
アドレスされ、その際に状態へアクセスすることの複雑
性を著しく減少させている。注意すべきことであるが、
Dフリップフロップ322のセット/リセット(S/
R)及びイネーブルクロック(EC)端子へ供給される
信号(SR′及びEC′)は、ライン413及び414
を介してマルチプレクサ402の動作を制御する。
ップ322からの信号又はマルチプレクサ402からの
信号(1つのコンフィギュレーションにおいては、マイ
クロレジスタ324からのフィードバック信号RECI
RC)がマルチプレクサ404へ供給されるか否かを決
定する。ラッチ407はマルチプレクサ404からの出
力信号を捕獲し且つ適宜のマイクロサイクルクロック信
号μCLKによってこの値をマイクロレジスタ324へ
転送させる。図63A,63B,63Cはマルチプレク
サ313−320(図3)に対する種々の実施例を示し
ている。
互接続構成体へ供給する本発明に基づく出力マルチプレ
クサの一実施例、この場合には、マルチプレクサ313
(図4)を示している。尚、本明細書において英文字記
号の後にアンダーラインを付したものはその英文字記号
の反転した信号であることを示している。注意すべきで
あるが、ラッチ407及びレジスタ324はマルチプレ
クサ314−316によって共用されている(図4参
照)。レジスタ書込信号RWS0−RWS7を受取るレ
ジスタ324は信号uR0−uR7をマルチプレクサ6
301A−6301Dへ供給する。アドレスビットA0
は、各マルチプレクサへの2つの信号のうちのいずれが
マルチプレクサ6301E及び6301Fへ転送される
かを決定する。同様の態様で、アドレスビットA1は、
これらのマルチプレクサへの2つの信号のうちのいずれ
がマルチプレクサ6301Gへ転送されるかを決定す
る。アドレスビットA2は、どの入力信号が反転され且
つマルチプレクサ6301Hへ転送されるかを決定す
る。マルチプレクサ6301Hは、更に、ラッチ407
から反転されたレジスタバイパス信号RBYPを受取り
且つ回路6302へ出力信号を供給する(セレクト信号
A3によって決定される)。アドレスビットA3は、マ
ルチプレクサ6301Gからの出力信号か又はレジスタ
バイパス信号RBYPのいずれが爾後にマルチプレクサ
6301Iへ供給されるかを決定する。注意すべきこと
であるが、信号RBYPが選択されると、マルチプレク
サ6301Hは前のマイクロサイクルにおいて該レジス
タ内に書き込んだ値を供給している。RBYP信号はツ
リーマルチプレクサ6301の待ち時間を取除いている
が、該信号は論理エンジンモード以外における前のマイ
クロサイクルにおける値に関してある程度の不明確性を
発生させる場合がある。
313−320に対する入力信号を示しており、その場
合に、信号X1はラッチ407の出力信号であり(即
ち、マイクロレジスタ324と関連しているレジスタバ
イパス信号)、且つ信号X2はマイクロレジスタ325
と関連しているレジスタバイパス信号である。入力信号
SBYP0及びSBYP1は、典型的に、ザイリンクス
XC4000ファミリィの装置のコンフィギュレーショ
ン論理ブロックにおいて発生される逐次的なバイパス信
号(即ち、信号F,H,DIN又はQ)を参照してい
る。
及びSBYP1はアドレスビットA1−A3によって選
択される。特に、アドレスビットA1はラッチ6303
内に格納され、該ラッチはマルチプレクサ6301Jを
制御し(即ち、入力信号SBYP0及びSBYP1の間
の選択を行なう)、一方アドレスビットA2及びA3は
ANDゲート6304へ供給される。両方のアドレスビ
ットA2及びA3が低状態であると、高信号がラッチ6
305内に格納され、そうでない場合には低信号がラッ
チ6305内に格納される。ラッチ6305の出力信号
は、マルチプレクサ6301Iがマルチプレクサ630
1H又はマルチプレクサ6301Jの出力信号を選択す
ることを制御する(以下に詳細に説明する)。
場合は、ラッチ407がマイクロレジスタ324へ接続
されており、マイクロレジスタ324はラッチ6311
0 −63117 及びラッチ6312へ接続している。上
述したラッチの全てはマイクロクロック信号uClkに
よってクロック動作されるので、回路6315は複数個
のフリップフロップとして機能し、信号RWS0−RW
S7はこれらのフリップフロップに対してのイネーブル
信号として作用する。更に、マイクロクロック信号uC
lkはチップ全体にわたって低スキューで分布されるの
で、信号RWS0−RWS7は図63Fにおいてハッチ
ングした部分によって示したようにかなりの勾配を有す
ることが可能であり、その部分は信号RWSに対する
「don’t care」期間を表わしている。注意す
べきことであるが、回路6315において競合問題を除
去するために、マイクロクロック信号uClkとuCl
k_との間にあるオーバーラップしていない部分が与え
られている(そうでないと、オーバーラップ期間中にデ
ータがこれらのラッチを介して通過する場合がある)。
この実施例においては、信号SBYP0及びSBYP1
が選択されると、それはマイクロサイクルクロックuC
lkとは無関係にマルチプレクサ313によって転送さ
れ、一方マイクロレジスタ324からの信号が選択され
る場合には、そのような信号はマイクロサイクルクロッ
クuClkのエッジ上でサンプルされる。
この場合は、ラッチ407がマイクロレジスタ324へ
接続されており、マイクロレジスタ324はマルチプレ
クサ313Aへ接続している。図示したように、この実
施例は、ラッチされる入力信号に対してマルチプレクサ
313Aを設けてあり且つラッチされない入力信号に対
して別のマルチプレクサ313Bを設けてある。従っ
て、ラッチ6311(図63B)はマルチプレクサ31
3を介して「プッシュ」されており、その際に図63B
における9個のラッチ、即ちラッチ63110 −631
17 からラッチ数を効果的に1個、即ちラッチ6317
へ減少させている。マルチプレクサ313Aは4個のブ
ロック330によって制御され(図3A参照)、一方マ
ルチプレクサ313Bはラッチ6318を介してブロッ
ク330によって制御される。この実施例においては、
マルチプレクサ313Aからの出力信号に対してラッチ
6317が設けられている。従って、リコンフィギュレ
ーション即ち再形態特定が完了すると、図63Cの実施
例は値がマルチプレクサ313Aを介してリップル動作
することを待機する必要はない。
する真理値表を示している。例えば、信号SBYP0又
は信号SBYP1のいずれかが選択されると、アドレス
ビットA2及びA3は0である。従って、ゲート630
4の出力信号(実効的には、その反転された入力端子の
ためにNORゲートである)は高状態である。ラッチ6
305によってuClk信号が検知された後に、それは
高信号を出力し、その際にORゲート6306の出力信
号を強制的に高状態とさせる。その高信号は、実効的
に、ラッチ6307をトランスペアレントなものとさ
せ、その際に信号SBYP0又はSBYP1のいずれか
が直接的にCLB出力線へリップル動作することを可能
とさせる。換言すると、回路6302はマルチプレクサ
として機能する。注意すべきことであるが、図63B及
び63Cに示した構造も同一の機能を実行するが、その
機能は異なる態様で実現される。
が所望される場合には、ラッチ6305の出力信号が低
状態であり且つORゲート6306の出力信号はマイク
ロクロックと同じである。この態様においては、ラッチ
6307はラッチ6317と同一の機能を実行する(図
63C)。従って、このコンフィギュレーションにおい
ては、回路6302はラッチへ結合されているマルチプ
レクサとして機能する。
3及びインバータ6334−6337を有する回路63
02に対する1つの詳細な実現例を示している。
04,MEN I/F405を示しており、それらは、
この実施例においては、効果的に単一のマルチプレクサ
回路500として統合されており、それは直列したパス
トランジスタの数を減少させることによって遅延を減少
させている。注意すべきことであるが、読取信号RD、
書込信号WR、メモリセレクト信号MSELはメモリ制
御器(図11を参照して詳細に説明する)によって供給
され、一方SAVE信号はシーケンサ(図22A及び5
2を参照して詳細に説明する)によって供給され、且つ
セレクト信号SELはコンフィギュレーションビットに
よって供給される。図6はノード501(図5)におけ
る特定の信号となる種々の入力信号に対する真理値表6
01を示している。
箇所に位置されている。一実施例においては(図3に示
してある)、マイクロレジスタ324,325は出力マ
ルチプレクサ313−320の入力端子へ結合されてい
る。第二実施例においては、これらのマイクロレジスタ
は論理関数発生器302及び303の入力端子へ結合さ
れている。例えば、マイクロレジスタ324が論理関数
発生器302の入力端子へ結合されている場合には、マ
ルチプレクサ313−316は簡単化される。注意すべ
きことであるが、2つの信号が同一のコンフィギュレー
ションにおいて発生され且つこれらの信号が異なるコン
フィギュレーションに関し論理関数発生器の同一のピン
上で必要とされる場合には、コンフリクト即ち競合が発
生する。特に、これらのマイクロレジスタが論理関数発
生器の入力端子へ結合されている場合には、これらのマ
イクロレジスタへ供給される2つの信号は同一のコンフ
ィギュレーション上で供給することは不可能である。
レジスタは相互接続体内に位置されており、その場合
に、使用可能である場合には信号がマイクロレジスタへ
経路付けされ且つ必要とされる場合にはこれらのマイク
ロレジスタから経路付けされる。一実施例においては、
これらのマイクロレジスタは計算を行なう論理関数発生
器とは独立的に割当てられている。このような態様で、
配置プログラムはコンフリクト即ち競合を有することの
ないマイクロレジスタのみを自動的に選択することが可
能である。この実施例はデータ格納位置に関し最大の柔
軟性を与えている。
レジスタはコンフィギュレーションとは独立した格納位
置内に位置されている。そのアドレス又はそのアドレス
の一部はコンフィギュレーションビット又は配置位置と
することが可能である。この態様においては、維持され
るべき値のみが格納され且つコンフリクト即ち競合を有
することのない位置のみが選択される。
ュレーション即ち形態特定動作は1組のコンフィギュレ
ーションメモリビットによって制御される。これらのコ
ンフィギュレーションビットをロードするために使用さ
れるバスは、典型的に、単一レベルのヒエラルキ即ち階
層を形成し、垂直アドレス線がCLBアレイの高さ全体
にわたり、且つ水平なデータ線(グローバルバスとして
呼称する)がアレイの幅全体にわたる。
ションメモリビットの各々がN個のビットによって置換
されている。これらのN個のビット、即ちメモリセルM
C0−MC7内に格納されているビットは、それらのロ
ーカルバス203を介しスイッチ700を介して図7に
示したようにグローバルバス701へ接続されている。
ローカルバス203はメモリ機能装置703(即ち、C
LB又は相互接続構成体におけるプログラム可能点)を
駆動するためにメモリセルMC0−MC7へランダムに
又は逐次的にアクセスすることが可能である。一実施例
においては、スイッチ700はトランジスタであり、一
方その他の実施例においては、スイッチ700は従来の
バッファ型スイッチである。一実施例においては、各メ
モリセルMCは5トランジスタメモリセル100(図
1)を使用して実現される。その他のメモリセル実現例
については以下に詳細に説明する。
ションに対するビットを担持するのでよりアクティブで
あり(ラッチ204に対して)、一方グローバルバス7
01はプレーン(スライスとも呼ばれる)をリコンフィ
ギュア即ち再形態特定する場合又はユーザメモリ動作を
実施する場合にのみアクティブである。ローカルバス2
03の容量は、小型のレイアウト及び電力及び速度に関
して小型のトランジスタ寸法によって最小とされてい
る。バス205はトランジスタ202に対してコンフィ
ギュレーションセレクト(CRS)信号を供給し、アド
レスバス702はスイッチ700へアドレス信号を供給
する。
及びグローバルバス701は、所望により、真信号及び
その相補的信号を担持する。例えば、メモリセルMCは
従来の6トランジスタ(6T)メモリセル(それは当該
技術分野において公知であり、従ってその詳細な説明は
割愛する)で実現されている場合には、2つのローカル
バス203A及び203B、2つのスイッチ700A及
び700B、及び2つのグローバルバス701A及び7
01Bは、典型的に、図7Aに示した如くに使用され、
その際に各ビット組200Aに対するトランジスタ数を
増加させる。
においては、その転送に参加するメモリセルMCはグロ
ーバルバス701当たり1個に過ぎない(従って、CL
Bアレイに対する一列のMCセル)。本発明に基づき、
4個の列及び列当たり80個のビット組を有する例示的
なCLBにおいては、16×16CLBアレイは64個
の列及び列当たり1280個のビット組を有するアレイ
を形成する。
7に示してあり、その場合には、2つのローカルバス1
702A及び1702Bが単一のグローバルバス170
1上に多重化される。この改良の利点はグローバルバス
線を減少させることである。注意すべきことであるが、
その他の実施例においては(不図示)、2つを超えた数
のローカルバスが単一のグローバルバス上へ多重化され
る。
い、即ち160,000の程度であるために、ダイナミ
ックな電力消費は著しいものである。4T,5T,6T
メモリセルのビット線容量、電圧の振れ及びクロックサ
イクル時間は異なるものである。更に、それらの夫々の
バス線の電圧の振れの周波数も異なる。特に、図8及び
9を参照すると、4Tセル801はローカルバスLB及
びLBB上の信号を高状態へ駆動することは不可能であ
る。何故ならば、抵抗802はその抵抗値が高過ぎるか
らである。従って、ローカルバスLB及びLBBは、コ
ンフィギュレーションを読取る度にプレチャージされね
ばならない(トランジスタ902A及び902Bのゲー
トへ供給される低プレチャージ信号PCHBを介し
て)。ローカルバスLBB上の信号はローカルバスLB
上の信号の反転したものであり、従って全てのサイクル
に関して、ローカルバスLB又はローカルバスLBBの
いずれかがメモリセル801のうちの1つによって放電
される。従って、サイクル当たり1つの高及び1つの低
遷移が存在しており、そのことはセンスアンプ901に
よって検知され、該アンプはメモリ機能装置703を駆
動する。
モリセルはローカルバス203を高状態及び低状態へ駆
動することが可能であり、その際にプレチャージの必要
性を取除いている(6Tセルもプレチャージを必要とす
るものではない)。逐次的なアクセスは異なるデータを
有するのと同様に同一のデータを有する可能性があるの
で、5Tの場合に対する平均的バス遷移は1つ置きのサ
イクルである。6Tセルは2つのバスを有しているの
で、そのセルに対する平均的バス遷移は4Tセルのもの
と5Tセルのものとの間である。従って、5Tメモリセ
ルは4Tセルが有するものの遷移数の1/4を有してお
り、一方6Tメモリセルは4Tセルが有する遷移数の半
分を有している。各バス遷移はパワーすなわち電力を使
用することに対応しているので、5Tセルは75%だけ
電力消費を減少させ、一方6Tセルは50%だけ電力消
費を減少させる。例えば、電源が5Vであり、電圧の振
れが2Vであり、160Kのローカルバス203であ
り、CL=0.06pFであり、100MHzのクロッ
ク周波数であると仮定すると、4Tセル形態905(図
9)を使用するチップの電力消費は10ワットである。
同一のパラメータを使用した場合に、ビット組200
(図7)を使用することにより、チップの電力消費は
2.5ワットへ減少される。
合に電力が消費される。一実施例において電力を節約す
るために、メモリセルへのアクセスはCLBに対するコ
ンフィギュレーション当たり1ビットを持ったレジスタ
を付加することによって各コンフィギュレーションに対
してCLB毎に制限される。CLB750A及び750
Bを示した図7Bを参照すると、レジスタ7200及び
7201はメモリセル101(図1)である。これらの
メモリセルの格納されている値は、本発明のコンフィギ
ュレーション即ち形態特定に対するメモリセル201に
対するセレクトトランジスタ202を制御する(説明の
便宜上、2つのコンフィギュレーション、即ち「0」及
び「1」コンフィギュレーションのみ、及び2つのビッ
ト組、即ちA及びBビット組のみが図7Bに対して仮定
されている)。特に、レジスタ7200の値が低状態で
ある場合には、ANDゲート7210は論理0出力信号
を供給する。このような態様で、アクセストランジスタ
2020A及び2020Bはターンオンされることはな
く、その際にCLB705A内のメモリセル2010A
及び2010Bが読取られることがないことを確保し、
その結果電力を節約している。ライン205A上のCR
S信号(図2)はグローバル組205から各CLB内に
おいて局所的に発生され且つ制御レジスタビット720
がセットされていない場合にはアサート即ち活性化され
ることはない。
取られた後にラッチ204内に格納されるので、本FP
GAはコンフィギュレーションメモリの初期的な読取の
後にその機能703を継続して実行する。ユーザデータ
参照期間中にパワー散逸を制限するための付加的な手段
は、アドレスされた列内のローカルバス線203のみが
活性化されることを可能とする。典型的に、これはロー
カルバス線の60分の1である。
ザデータメモリを提供している。特に、メモリスライス
の各々は、コンフィギュレーションデータか又は読取/
書込(ユーザデータとも呼称される)メモリのいずれか
に割当てられている。8個のメモリスライス全てを読取
/書込メモリのために使用することが可能であるが、少
なくとも1個のメモリスライスは初期的にはコンフィギ
ュレーションデータを格納している。このコンフィギュ
レーションデータがラッチ204内に格納されると、コ
ンフィギュレーションメモリはユーザデータのために再
使用することが可能である。
一部は、コンフィギュレーションのその部分によって制
御される論理が論理を実行しているコンフィギュレーシ
ョンの残部の動作と干渉することがない場合には、ユー
ザデータのために使用することが可能である。コンフィ
ギュレーションの一部の割当ては厄介な場合があるの
で、一実施例では各メモリスライス全体をコンフィギュ
レーションか又はユーザデータメモリへ割当てる。換言
すると、メモリスライスがユーザデータメモリへ割当て
られると、そのスライス内の全てのビットは読取/書込
格納部、即ち全てのCLBに対する全体的なコンフィギ
ュレーションワードとして使用することが可能である。
従って、本発明は、ユーザに対して豊富な格納部を使用
可能なものとしている。例えば、20×20アレイのC
LBの場合には、RAMの約16,000バイトがメモ
リスライス毎に使用可能である。
ック図を示しており、その場合に、データバスDbu
s、メモリ1102、論理1101は、夫々、図7にお
けるグローバルバス701、メモリセルMC0−MC
7、機能(関数)装置703と等価である。アドレスバ
スAbus及びレジスタバスRbusは一般論理及び相
互接続体を使用してCLB1100において形態が特定
される。一般相互接続線は、CLB1100の周辺部に
位置されている専用のレジスタへの経路付けを行なう。
メモリアドレスレジスタMAR1105はメモリアドレ
スを保持し、一方メモリデータレジスタMDR1103
はメモリデータを保持する。一般論理及び相互接続体は
Abus/Rbusのために使用されるので、ユーザメ
モリをサポートするためにCLB1100内において専
用のメモリハードウエアは必要ではない。
り、典型的な値は1,2又は4バイトである。列データ
レジスタCDR1108はDbus幅と同数のビットを
有しており、典型的には、16×16CLBアレイに対
しては256ビット幅である。CDR1108を使用す
ることにより、CDR1108の転送毎にMDR110
3の複数個の転送を行なうことが可能であり、その際に
性能を向上させ且つCLB1100における行デコード
を減少させている。シフタ1104はMDR1103内
のデータをCDR1108内の適切なバイトへシフトさ
せる。CLB1100の周辺部に位置されているメモリ
制御器1106は入力信号RC(読取コマンド)、WC
(書込コマンド)、BURST(バーストコマンド)を
CLB1100内のユーザ論理から受取る。
バースト読取(BR)及びバースト書込(BW)動作を
サポートするための制御信号であるBURST信号は、
CDR転送毎の複数個のMDR転送をトリガする。バー
ストアクセスは隣接したアドレスに制限される。何故な
らば、これはデータバスDbusを介してメモリ110
2とCDR1108との間で転送するデータだからであ
る。
ータ寸法識別子(図11における論理1101によって
発生されるSIZE信号)、及びデータを発生し、次い
でこれらのパラメータ(メモリに特定の論理なしで)を
MAR1105、MDR1103、CLB1100へ及
びそれらから転送させる。MAR1105、MDR11
03、CDR1108、シフタ1104、メモリ制御器
1106、アドレスデコード・タイミングブロック11
07は、全て、チップの周辺部における専用のメモリハ
ードウエアである。
106、アドレスデコード1107、MDR1103、
メモリ1102、CDR1108の部分をより詳細に示
している(全て「A」で示してある)。シフタ1104
は図12において暗示されており、それにより、Vbu
s1201に沿ってのCDRセルが活性化される。32
ビット未満のデータ(即ち、1又は2バイト)はRbu
s1202、フリップフロップ1212、ラッチ120
8上で右側に整列される。アライナ即ち整列器1206
及び1211はデータを右側整列からVbus1201
上でアドレス整列又はその逆に変換を行なう。
り分布される高周波数の低スキュークロックである。そ
うであるから、μCLK(又は、それのイネーブルさせ
たもの)は、MDRセル1103Aのような専用ハード
ウエア、単一クロックシーケンサ(図22Aに参照して
詳細に説明する)、コンフィギュレーションラッチ20
4(図2)、CLB常駐フリップフロップ322及び3
23のような形態特定可能ハードウエア及びローカルメ
モリ(図12には示していないが、本明細書に取込んだ
1994年ザイリンクスデータブック2頁乃至13頁に
詳細に記載されている)をクロック動作するために使用
される。
に説明する)で使用される場合には、全てのメモリスラ
イス信号は所定数のμCLKサイクルを有している。装
置がタイムシェアリングモード(以下に詳細に説明す
る)で使用される場合には、任意の数のμCLKサイク
ルに対して単一のコンフィギュレーションが活性状態に
あるが、コンフィギュレーションスイッチングは未だに
μCLKに対して同期されている。従って、μCLK
は、論理エンジンモードにあるか又はタイムシェアリン
グモードにあるかに拘らず、メモリ参照用のクロックで
ある。
SIZE(即ち、転送されるべきバイト数を表わすマル
チビット値)、BURST、Abusはフリップフロッ
プ1217においてμCLKの上昇エッジ上で捕獲され
る。書込信号Wはメモリ制御器1106によって供給さ
れる。組合わせ論理1218はアドレス(Abus)及
びSIZE信号をアドレス行(ARi)及びアドレス列
(ACj,SALK)選択信号へ変換する。信号AR
i,ACj,SELkは、μCLKサイクル内に発生す
る読取R、書込W、バースト読取BR、バースト書込B
W、形態特定CFG(図22A及び52において更に詳
細に説明するシーケンサによって供給される)信号パル
スをイネーブルさせる。マルチプレクサ出力信号である
信号SELkは、データメモリ及びコンフィギュレーシ
ョン参照のために使用される。特に、信号SELkはメ
モリスライスを選択する。信号PREVはデコードした
アドレス信号である。
が読取セレクト信号RSEL=1とさせ(読取セレクト
信号RSELは組合わせ論理1218によって供給され
る)、その際にトランジスタ213をターンオンさせ且
つマルチプレクサ1207においてVbus1201を
選択する。このような態様でVbus上の信号はラッチ
1208内にラッチされ且つRbus1202上に駆動
される(導通状態にあるトランジスタ1213を介し
て)。この読取動作期間中に、トランジスタ1215及
び1216がターンオンされ、その際にメモリセルMC
iからローカルバス1214へ及びDbus1205へ
データを転送させる。次いで、このデータはラッチ12
09内へラッチされる。トランジスタ1204は、それ
が導通状態にある場合に、ラッチ1209内に格納され
ている信号をVbus1201上へ駆動する。
213をターンオフさせ且つRbus1202上のデー
タ(フリップフロップ1212内に格納されている)が
書込動作のためにVbus1201へ転送されるように
マルチプレクサ1207におけるフリップフロップ12
12を選択する。この書込動作期間中に、トランジスタ
1203,1216,1215はVbus1201から
Dbus1205へデータを転送し、Dbus1205
からローカルバス1214へ転送し、且つローカルバス
1214からメモリセルMCiへ転送する。この駆動
は、メモリセルMCiの試みによる駆動に打ち勝つのに
充分に強いものである。一列内の選択したメモリセルM
Ciのみが書き込まれ、その場合にこのような選択はト
ランジスタ1203によって制御される。特に、トラン
ジスタ1203がアドレスAriに対してオフである場
合には、Dbus1205上の駆動のみがメモリセルM
Ciによって供給されるものであり、従ってメモリセル
MCi内の値は不変のまま溜まる。
る。アドレスバスAbus上の信号がμCLK上昇エッ
ジでサンプルされ、その際に1つのμCLKサイクルに
対し安定なACj,Ari信号を発生する。安定な信号
ACj,AriはRパルスをイネーブルさせ、それはメ
モリセルMCiからローカルバス1214(図12)
へ、Dbus1205へ、次いでVbus1201への
データの伝搬を開始させる。このデータは、次いで、ア
ライナ(整合器)1206によって整合され、マルチプ
レクサ1207を介して転送されラッチ1208内へラ
ッチされ、導通状態にあるトランジスタ1213によっ
て転送され、最後にRbus1202上に供給される。
次いで、そのデータは図13に示した如くμCLKの2
番目の上昇エッジでサンプルされる。従って、読取動作
の場合には、1つのμCLKサイクルにおけるAbus
上のアドレス信号は次のμCLKサイクル上でRbus
1202上にデータを発生する。このデータは、μCL
Kレートでデータを発生させるためにパイプライン動作
させることが可能である。
s上の信号と共にMAR1105をロードし且つ読取制
御信号RCがuCLK信号と共にラッチされる。この時
間における信号Ari及びAcj(夫々、行アドレス及
び列アドレス)がMAR1105の信号を反映する。ラ
ッチした信号RSELは、レジスタバスRbusではな
くメモリ1102がラッチ1208をロードするように
MDR1103内のマルチプレクサ1207を制御す
る。[即ち、読取メモリデータをCLB論理内へ] (ii)格納したデータメモリ1102は信号R*ACj
=1を受取った後にラッチ1209へ転送される。ラッ
チ1209は、信号R*Ari=1である場合に垂直バ
ス1201へ結合される。垂直バス1201は、信号R
=1でラッチ1208へ結合される。
いる。Abus上の信号がμCLKの上昇エッジでサン
プルされ、その際に1つのμCLKサイクルに対し安定
なACj,ARi(夫々、列及び行アドレス)を発生す
る。安定な信号ACj,ARiは、Wパルスをイネーブ
ルさせ、該パルスは、ラッチ1208からアライナ12
11を介してVbus1201へ、導通状態にあるトラ
ンジスタ1203を介してDbus1205へ、導通状
態にあるトランジスタ1216を介してローカルバス1
214へ、トランジスタ1215を介してメモリセルM
Ciへのデータの伝搬を開始させる。
s内容上の信号と共にMAR1105をロードし、且つ
信号RCはuCLK信号と共にフリップフロップ121
7内へラッチされる。この時間における信号Ari,A
CjはMAR1105の信号を反映する。RC=0のラ
ッチされた信号は、メモリ1102ではなくレジスタバ
スRbusがラッチ1208をロードするように、MD
R1103内のマルチプレクサ1207を制御する。信
号WC=1の場合には、その信号は信号Wを発生するシ
ーケンスを開始させる。
信号は、信号W=1の場合に、垂直バス1201へ転送
される。垂直バス1201上の信号は、信号W*ARi
=1の場合にデータバスDbusへ転送される。
に変化しながら、CDRロード当たりCDRを複数回読
取ることによって画定される。BR信号は性能を改善す
る。何故ならば、それはメモリセルMCiからの同数の
読取よりも高速だからである。
図を示している。μCy1期間中、読取パルスRはメモ
リセルMCiへアクセスする(Rパルスがトランジスタ
1215のゲートを制御する図12を参照)。
B当たり16ビットをCLB列からCDR1108A内
へロードする。CDR1108(図11)は複数個のC
DRセル1108Aを有しているので、爾後の読取がこ
れらのCDRセルに対してのものである場合には、読取
動作はメモリセルMCiからではなくCDR1108か
ら容易に実施することが可能である。従って、メモリセ
ルMCiはμCy2乃至μCy4に対して二度アクセス
される必要はなく、その際にこれらのサイクルを短縮化
している。再度図15を参照すると、信号BRはデータ
ビットd1,d2,d3へアクセスする(信号BRは図
12のトランジスタ1204及びラッチ1208を制御
する)。
有している。
間中、ユーザはアドレスバスAbus上のアドレス信号
a0−a3のアサート(活性化)を開始し且つ信号RC
=1を供給する。信号BURST=0は非バースト読取
であることを意味している。これらの信号は次のuCL
Kの上昇エッジでサンプルされる。
アソートされた即ち活性化された信号RCが実行され
る。データビットd0/d1/d2/d3を包含するメ
モリ列全体(各データ「ビット」は複数個のビットを含
んでいる)がデータビットd1/d2/d3を得るため
にメモリ1102の代わりに現在アクセス可能なテンポ
ラリレジスタCDR1108内へラッチされる。データ
ビットd0もMDR1103へ供給される。uCy1に
おいてアソートされた両方の信号RC=1=Burst
がマイクロサイクルuCy2においてCDR1108へ
アクセスする。
ータビットは継続してアドレスAriに関してインクリ
メントし且つ信号RC=1=Burstをアサートす
る。更に、ユーザは書込を行なう前に各サイクル毎にM
DR1103を読み出さねばならない(Rbus120
2上)。
それは最後のサイクルであるが、RC=0=Burst
(又は別の基準)の信号を発生する。
CDR書込毎にCDR内に複数回書込を行なうことによ
って画定され、その際に全ての書込に関してメモリセル
MCiに対して書込を行なうことの必要性を取り除いて
いる。
図を示している。この動作期間中、フリップフロップ1
212、マルチプレクサ1207、ラッチ1208、ア
ライナ1211、最後にトランジスタ1203を介して
のRbus1202からの複数サイクルのデータがラッ
チ1209(図12)内へロードされる。信号ARiは
図16に示したようにシーケンス動作され、ラッチ12
09内の複数個のデータ要素をアドレスする。マイクロ
サイクル4において、最後のデータ要素が、トランジス
タ1219を介してメモリセルMCi内のDbus12
05を駆動する前にロードしたCDRデータと並列的
に、メモリセルMCi内へDbus1205へのトラン
ジスタ1203を介してリップル動作する。トランジス
タを制御する信号、即ち信号W*Prevにおいて、前
のバーストサイクルにおいてロードされているアドレス
に対してPrevは「1」に等しい。図16において、
Prev=a0+a1+a2である。
有している。
バスAbus上のアドレス信号a0及びそのアドレスに
対するレジスタバスRbus上のデータ信号d0をアサ
ート即ち活性化させる。両方の信号ともWC=Burs
t=1である。
アサートされた信号WCは実行される。データ信号d0
はアドレス信号a0によって決定されたCDR1108
のバイト内へロードされる。同時的に、ユーザはアドレ
スバスAbus上のアドレス信号a1及びレジスタバス
Rbus上のデータ信号d1をアサートする。
ータ信号d1及びd2はアドレス信号a1及びa2によ
って決定されたCDR1108のバイト内へロードされ
る。ユーザはアドレスバスAbus上のアドレス信号a
3及びa4及びレジスタバスRbus上のデータ信号d
3及びd4をアサートする。uCy3期間中、ユーザは
WC=1をアサートするが、メモリ制御器1106をト
リガするBURST=0をリターンさせて、バースト動
作期間中にCDR1108内へロードされた全てのバイ
トをuCy4においてメモリへ書き戻させる。
クルであるが、CDR1108の修正したバイトが最終
的なデータ要素と共にメモリセルMCiへ書込まれる。
CDR1108の修正していないバイトはCDR110
8からデータバスDbus上へ駆動することがないこと
によって書込まれることはない。
ュレーションメモリアクセスがユーザメモリアクセスと
インターリーブされるかを説明する。一例においては、
コンフィギュレーションアクセスは信号CRS0乃至C
RS7のサブセットであるCRSi信号のシーケンスで
あり、一方ユーザメモリアクセスはコンフィギュレーシ
ョンサブセット内に存在しないCSRjアクセスであ
る。
ションに対する書込動作のタイミング線図を示してい
る。3つのマイクロサイクル(uCy1,uCy2,u
Cy3)が図18に示されており、各マイクロサイクル
はCLBアレイに対し異なるコンフィギュレーションを
有している。アクセス信号CRS1はuCy1に対する
コンフィギュレーションを画定する。同様の態様で、ア
クセス信号CRS2及びCRS3は、夫々、uCy2及
びuCy3に対するコンフィギュレーションを画定す
る。アサートした信号CRS2及びCRS3の間におい
て、ユーザアクセス信号CRS7が与えられる。書込
(W=1)信号がこのユーザアクセス信号期間中にアサ
ートされる。アドレス信号(Abus上)及び書込デー
タ信号(Rbus上)はuCy1においてユーザ論理に
よって画定されており、それら両方を次のマイクロサイ
クルクロックでラッチし、従ってそれらはuCy2に対
して使用可能である。8個のCRS信号の場合、3個の
アドレスビットがユーザアクセスに対する信号CRSn
(この例においてはCRS7)を選択するために使用さ
れる。各コンフィギュレーションはMDR1103(図
11)とインターフェースするそれ自身の組のレジスタ
を有している。
路チップはザイリンクスXC4000(商標)ファミリ
ィの装置のアーキテクチュアに基づいている。図23は
チップレイアウトと同一のトポロジィを有するビット組
200(図2)の2×5アレイ2300を示している。
ビット組列2300A及び2300Bは、両方とも、5
個のラッチ出力線23200 −23204 を提供する。
スプリッタトランジスタ2301A及び2301B(夫
々ライン702A及び702B上のアドレス信号によっ
て制御される)は、マルチプレクサトランジスタ230
3及びスイッチ2302をビット組列2300A及び2
300Bの間で共用することを可能とし、一方全てのト
ランジスタ2301がターンオフされている場合に両方
の列がラッチ204を並列的にロードすることを可能と
する。信号Y0乃至Y4は、グローバルバス701転送
に対してどの行が選択されるかを決定する。トランジス
タ2302は、アレイ2300の1ビット組列をグロー
バルバス701へ選択的に結合させることを可能とす
る。
401B,2401Cを含むCLBレイアウトを示して
おり、その場合に各列2401は16個のアレイ230
0(図23)を有している。列2401A及び2401
Cは隣接するCLB(不図示)で共用され、一方列24
01BはCLB2400によって使用される。2つの論
理セクション、即ちIO2403及びCLE2402が
隣接するアレイ2300のラッチ出力によって供給され
る。この実施例においては、各論理セクションは160
個のラッチによって供給される。
特定) 従来のFPGAリコンフィギュレーション、即ち再形態
特定は、FPGAの状態をリセットすることなしに、オ
フチップからの新たなコンフィギュレーションデータの
ローディングを行なっている。このことは、FPGAが
動作中に実施することが可能であり(ダイナミックリコ
ンフィギュレーション即ち動的再形態特定)と呼ばれ
る)且つ全コンフィギュレーションデータパターンを再
ロードする必要性なしにコンフィギュレーションのある
部分に対してのみのものとすることが可能である(即
ち、部分的再形態特定)。対照的に、本発明は、オンチ
ップ即ちチップ上に複数個のコンフィギュレーション
(形態)を格納する能力を与えることによって、従来の
リコンフィギュレーション(再形態特定)モードのスー
パーセットを画定する。
例において、FPGAが第一コンフィギュレーションに
基づいて動作し、一方部分的な又は全体的な新たな組の
コンフィギュレーションデータがメモリスライスの1つ
又はそれ以上のものの中へロードされる(オフチップか
ら)。(注意すべきことであるが、この動作は、論理エ
ンジンが8個のメモリスライスに等しいか又はそれ未満
のものを使用する場合には、論理エンジンモードにおい
ても動作する。)次いで、フラッシュリコンフィギュレ
ーション動作によって第二コンフィギュレーションデー
タが並列的に活性化される。この動作は、システムのブ
ートアップの後に付加的なコンフィギュレーションデー
タがオフチップから持ち込まれるという点において、通
常のフラッシュリコンフィギュレーションとは異なる。
このオフチップ能力は、ユーザが、8個のみ(本発明の
一実施例を参照して上述した)ではなく無制限の数のコ
ンフィギュレーションの間で変更することを可能として
いる。クロック速度に依存して、リコンフィギュレーシ
ョン(再形態特定)はオフチップから各新たなコンフィ
ギュレーションワードをロードするのにミリ秒を必要と
する場合がある。然しながら、注意すべきことである
が、FPGAはこの時間期間中いまだに活性状態にあ
る。専用のリコンフィギュレーションハードウエアがユ
ーザメモリインターフェースのメモリアクセス機能を共
用することが可能であるか、又はユーザ論理がリコンフ
ィギュレーション(再形態)を制御することが可能であ
るか、又はその両方である。
ョン(再形態特定)を開始させ、リコンフィギュレーシ
ョンを終了させ、且つコンフィギュレーションシーケン
ス動作を管理するための制御信号を発生する。好適に
は、シーケンサはユーザ論理によって制御されるか又は
それから形成され、その際に入力信号と出力信号の任意
の組合わせを使用して論理を形成する場合にユーザが著
しい柔軟性を有することを確保している。
ス動作 シーケンサは、プログラムすることによって次のコンフ
ィギュレーション即ち形態を選択する。前述したよう
に、次のコンフィギュレーションは逐次的に選択される
か、又はアドレスで直接選択される。そのアドレスは外
部的に発生させるか(即ち、FPGAチップのピンへ供
給する)、又は内部的に発生させることが可能である。
従って、次のアドレスは内部又は外部論理に関して条件
付けすることが可能である。次のコンフィギュレーショ
ンへのスイッチは、外部信号、内部信号又はナノサイク
ルの数のカウントによって代替的に支配される(尚、ナ
ノサイクルは200MHzの程度の非常に高速の内部ク
ロックである)。注意すべきことであるが、一実施例に
おいては、シーケンス動作方法の選択は1つのコンフィ
ギュレーションと次のコンフィギュレーションでは異な
っている。
シーケンサを有しており、その各々がFPGAの異なる
部分を制御する。該シーケンサは、ロック(lock)
ステップで動作し、単一のシーケンサをエミュレートす
るか、又は独立的に動作して、複数個のユーザクロック
で動作することを可能とする。
ば、フラッシュリコンフィギュレーション(即ち、メモ
リスライスのコンフィギュレーション)が2つの方法の
うちの1つにおいて発生する。第一の方法においては、
フラッシュリコンフィギュレーションは選択した入力信
号(又はいずれかの入力信号)によってトリガされる。
チップは、選択した組の入力信号のうちの1つが変化す
るまで(即ち、高状態又は低状態へ移行するまで)何等
計算をすることなしに(低電力消費状態)待機する。こ
の時点において、チップは、内部又は外部信号がストッ
プ条件を表わすまで、1つの主要なサイクル(尚、1つ
の主要なサイクルは全てのリコンフィギュレーションを
介しての完全な繰返しである)、固定した数の主要なサ
イクル、又は多数の主要なサイクル又はリコンフィギュ
レーションと関連するリコンフィギュレーションを実行
する。
フィギュレーションは連続的なリコンフィギュレーショ
ンシーケンス動作を含んでいる。特に、チップは何等特
定の外部信号を考慮することなしに全ての又は幾つかの
リコンフィギュレーションを介して断続的にサイクル動
作する。
は、次のコンフィギュレーションへ進行する前に最も長
いネットが安定化するのに充分に長いものでなければな
らない。本発明は、シーケンサにおける以下の代替物を
提供している。 1.固定マイクロサイクル期間 全てのネット遅延はこの時間拘束条件を満足するのに充
分に短いものでなければならない。一実施例において
は、この時間拘束条件の実行はどのような可能な経路も
予め設定した限界よりも長いものでないようにアーキテ
クチュア(即ち、ハードウエア)において行なわれる。
別の実施例においては、その施行は時間制限を超えるネ
ットを再経路付けすることによってソフトウエアで行な
われる。
することを可能とする。
イクル期間 マイクロサイクル期間を変化するのには幾つかの方法が
ある。同期的方法においては、各マイクロサイクルコン
フィギュレーションは期間フィールドを有している。こ
のフィールドは固定した遅延を選択し、その場合に、固
定した遅延の寸法は以下の方法のうちの1つによって設
定される。
って(即ち外部遅延回路)遅延を決定する。
内に遅延を設定する。
ル数の各マイクロサイクルとカウントとを関連付ける。
ナノサイクルはナノサイクルクロックと呼ばれる非常に
高速の内部クロックのサイクルである。
スを有する外部マイクロサイクルクロックに基づいて1
つのマイクロサイクルから次のマイクロサイクルへ進行
する。
ロサイクルへ進行し、その場合にその内部信号は、それ
がマイクロサイクルにおける最も遅い経路をトラバース
するように経路付けされる。
て、マイクロサイクルシーケンスをトリガしてすぐさま
新たなアドレスへジャンプし且つその点から動作を継続
する。
づいて2つのアドレスのうちの1つを選択する。換言す
ると、この代替方法は次のマイクロサイクルへの条件付
きジャンプを与える。別の実施例においては、複数個の
内部信号が供給され、その場合に、各内部信号は異なる
次のアドレスを選択する(即ち、マルチウエイ分岐)。
所定のシーケンス動作の場合(即ち、コンフィギュレー
ションのスキップがない)、これらのビットは定数に対
して配線されねばならない。更に別の実施例において
は、次のアドレスはマイクロサイクルにおいてユーザ論
理によって計算される。一実施例においては、シーケン
サは現在のコンフィギュレーションを保存し且つそのコ
ンフィギュレーション又は次のコンフィギュレーション
へ復帰し、その際にサブセットのコンフィギュレーショ
ンに対しての「サブルーチンコール」を効果的に与え
る。
モリスライスに対する読取アクセス時間は、次のコンフ
ィギュレーションに対するメモリの読取が現在のコンフ
ィギュレーションの論理と並列的に行なわれるようにパ
イプライン動作され、その際にリコンフィギュレーショ
ン時間を最小としている。
サイクル発生 アナログ自己同期型回路は当該技術分野において公知で
ある。図19は従来のアナログ自己同期型回路1910
を示しており、それはANDゲート1904及び3個の
インバータ1905,1906,1907を有してい
る。ANDゲート1904は信号1900及び信号19
01(信号1900の反転されたもの)を受取る。図2
0における回路1910の関連するタイミング線図に示
したように、信号1901はインバータ1905によっ
て多少遅延されている。ANDゲート1904は信号1
902を出力し、その場合に信号1900と1901の
両方が高状態である場合にのみ信号1902は高状態で
ある。信号1902は更に反転され、従ってインバータ
1906及び1907によって二度遅延される。この二
度遅延された信号1903を図20に示してある。従っ
て、回路1910は複数個のクロック、即ち信号190
2及び1903を形成する。
905,1906又は1907の遅延を制御するための
フィードバックを与えるものではない。従って、該イン
バータによって与えられる遅延が小さすぎる場合には
(典型的に、処理又は環境変動によって発生される)、
信号1902及び1903のパルス幅は回路条件を満足
するのには小さすぎるものとなる。このような態様で、
外部クロック、即ち信号1900が遅滞化しても、チッ
プは動作することはない。換言すると、アナログ自己同
期型回路は、それが機能障害を起こしている場合には、
典型的に、どのような速度においても機能不全である。
当を形成し、それはチップが動作上機能的なものとさせ
るために外部クロックをスローダウンさせることを可能
とし、その際にアナログ自己同期型回路1910よりも
より信頼性のある正確な複数個のクロックを供給する方
法を提供している。一実施例においては、時間多重型F
PGAは、外部サイクル毎に複数個の内部サイクルが発
生するように、外部クロック周波数の倍数である内部ク
ロック周波数を与える。図21を参照すると、外部クロ
ック2101はフェーズロックループ(PLL)210
7に対してクロック信号を供給する。PLL2107
は、典型的に、位相検知器2102、ローパスフィルタ
(LPF)2103、オシレータ2104を有してい
る。オシレータ2104は外部クロック2101によっ
て与えられるクロック信号の倍数である周波数で動作す
る。
によって与えられた信号周波数を近似するためにオシレ
ータ周波数を分周する。外部クロック2101によって
与えられた入力クロック信号に対してのこれらの出力信
号の正確な同期を確保するために、フィードバック線2
106が位相比較器2102へ結合されている。位相比
較器2102は入力線2108上に与えらえた周波数と
フィードバック線2106上の周波数とを比較する。位
相比較器2102はこれら2つの周波数の間の位相差に
よって決定される出力位相エラー信号を発生する。ライ
ン2106上の周波数がライン2108上の周波数と等
しくない場合には、位相エラー信号は、LPF2103
(これはジッタを補正する)によってフィルタされた後
に、オシレータ2104の周波数をライン2108上の
周波数の方向へそらさせる。
(即ち、5ナノ秒周期)は全ての内部サイクルをオシレ
ータ周期の倍数とすることを可能とする。特に、オシレ
ータ2104の周波数が高ければ高い程、可能な内部サ
イクルはより精細に同調され、即ちより短いものとな
る。例えば、オシレータ2104が200MHz(即ち
5ナノ秒周期)の周波数を与えるものと仮定すると、単
一クロックシーケンサ(図22Aを参照して詳細に説明
する)は5ナノ秒又はその倍数の内部サイクルを供給す
ることが可能である。本発明においては、内部サイクル
は等しいものである必要はないが、内部サイクルの全て
の和は外部サイクルと等しい。
からのコンフィギュレーションビットは、フィードバッ
ク線2106に対しての分周を選択するように分周器2
105をプログラムし、その際に外部クロック2101
の周波数範囲を拡張させる。分周器2105は従来の二
進カウンタであって、分周器が0に到達するたびにコン
フィギュレーションブロック2109によってプリセッ
トされる。
クロックシーケンサ2201を示しており、それはその
動作を制御するためにCLB1100からユーザが発生
した信号を受取る。特に、ユーザが発生した信号Jum
pComm(即ち、ユーザ論理から発生され且つ、例え
ば、マルチプレクサ315(図13)によって与えられ
る)は、単一クロックシーケンサ2201に対してその
プログラムされたシーケンスのコンフィギュレーション
からそれることを支持し、一方ユーザが発生した信号J
umpAddr(典型的に3ビット)は、どのスライス
へ単一クロックシーケンサ2201がジャンプするかを
決定する。単一クロックシーケンサ2201はいつ及び
どこへジャンプするかを決定する場合に論理1101を
助けるために、ユーザ論理1101に対して現在のスラ
イスアドレス信号CurrentAddrを供給する。
のフィールド、即ちNextAddr,JumpEn,
Durationへ分割されている複数個のビットを具
備するシーケンステーブル2202を有している。ビッ
トNextAddr0乃至NextAddr7は夫々の
メモリスライスに対するアドレスである(即ち、Nex
tAddr0はスライス0に対するもの等)。ビットJ
umpEn0乃至JumpEn7は、ユーザジャンプコ
マンドをそのメモリスライスに対して実行すべきか否か
を決定する。ビットDuration0乃至Durat
ion7は、夫々のメモリスライスの期間を表示する。
一実施例においては、シーケンステーブル2202のビ
ットはコンフィギュレーションビットストリームによっ
て供給され、一方その他の実施例においては、これらの
ビットはユーザ論理1101によって供給される。
2201の動作はモードに依存するものである。例え
ば、 (i)タイムシェアリングのみのモード又はタイムシェ
アリング+スタティックモードにおいては、nanoc
lock(nCLK)はマイクロクロック(uCLK)
へ等しく(タイムシェアリングモード信号TSmode
によって設定される)、且つコンフィギュレーションス
イッチのみがユーザ論理ジャンプによるものである。こ
の場合には、NextAddrは循環される。換言する
と、次のアドレスは現在のアドレスである。
くらかの論理エンジンCLBが存在する混合モードをサ
ポートする実施例においては、第二単一クロックシーケ
ンサが必要となる。即ち、1つのシーケンサは論理エン
ジンモード用であり且つ別のシーケンサはタイムシェア
リングモード用のシーケンステーブルのないものであ
る。その実施例においては、各シーケンサ2201は別
個のJumpComm及びJumpAddr入力ビット
及び別個のCurrentAddr出力ビットを有して
いる。
エンジン+スタティックモードにおいては、単一クロッ
クシーケンサ2201が使用される。
た単一クロックシーケンサ2201は、例えば当該技術
分野において公知な例えばリセット等の特徴を有してい
るが、その詳細な説明は割愛する。
態動作は以下のとおりである。
ップフロップ2204は「0」を有しており且つアドレ
スデコーダ2203はシーケンステーブル2202から
スライス0の値を選択する(即ち、NextAddr
0,JumpEn0,Duration0)。
とられない場合に、次のuCycleに対するメモリス
ライスの番号を与える。JumpEn0はジャンプが可
能であるか否かを決定する。従って、JumpEn=0
である場合には、JumpCommは無視される。
は、ユーザ論理1101(図11)は3ビットアドレス
JumpAddrを供給し且つJumpComm上でジ
ャンプコマンドを発生することによって、次のコンフィ
ギュレーションに対するメモリスライスアドレスを決定
する。ユーザ論理1101はCurrentAddrに
関する現在のコンフィギュレーションアドレスを使用し
てJumpAddrを計算する(換言すると、ユーザ論
理1101はアクティブ即ち活性状態にあるスライスに
依存してジャンプを表示する)。
leに対するナノサイクル即ちnanocyleをカウ
ントする。例えば、カウンタ2205がDuratio
n0でロードされたと仮定すると、0へカウントダウン
し(カウンタ2205上での「=0」信号)、且つ新た
なuCLKパルスを発生し、それはフリップフロップ2
204をロードし且つ次のuCycleでプロセスを再
開始する。
に対するシーケンサテーブル2202内の選択したNe
xtAddr信号が使用されないように、即ち8未満の
シーケンスに対して、NextAddr値をプログラム
することが可能である。3つのコンフィギュレーション
のシーケンスに対するタイミングを図22Bに示してあ
る。特に、最初のuCycle(uCLKパルス221
0によって示してある)は、3つのナノクロック221
1を有しており、2番目のuCycle(uCLKパル
ス2212によって示してある)は5つのナノサイクル
2213を有しており、且つ3番のuCycle221
4(uCLKパルス2214によって示してある)は4
個のナノサイクル2215を有している。注意すべきこ
とであるが、uCLKパルス2210は「2」のカウン
タ値のローディングをトリガし、uCLKパルス221
2は「4」のカウンタ値のローディングをトリガし、且
つuCLKパルス2214は「3」のカウンタ値のロー
ディングをトリガする。ローディングの後に、各ナノサ
イクルパルスは「0」が発生されるまでカウンタ値を
「1」だけ減少させる。0が発生されると次のuCLK
パルスをトリガする。 8. 動作モード 本発明に基づくFPGAは3つのモードで動作する。第
一のモード、即ちタイムシェアリングモードにおいて
は、フラッシュリコンフィギュレーション当たり複数個
のユーザサイクルが存在している(例えば、複数個のユ
ーザクロックサイクルに対してFPGAは単一のコンフ
ィギュレーションに溜まる)。フラッシュリコンフィギ
ュレーション(再形態特定)は、通常、信号によってト
リガされ、且つ典型的には予め定めたシーケンスのコン
フィギュレーションは存在しない。第二のモードである
論理エンジンモードにおいては、ユーザサイクル当たり
複数個のフラッシュリコンフィギュレーション(マイク
ロサイクル)が存在している。このモードにおいては、
フラッシュリコンフィギュレーションは、通常、予め定
めたシーケンスのコンフィギュレーションで継続的にシ
ーケンス動作される。第三のモードであるスタティック
モードにおいては、多くのコンフィギュレーションが同
一である。換言すると、FPGAがリコンフィギュア即
ち再形態特定が行なわれる場合に実行中の論理は同一の
ままであり、その際に永久的に常駐しているように見え
る。このモードにおいては、フラッシュリコンフィギュ
レーションは上述した方法のいずれかによってトリガさ
れる。幾つかの実施例では1つのモードにおいて排他的
に動作するが、他の実施例は逐次的か又は同時的かのい
ずれかにおいて複数個のモードで動作する。これらのモ
ードの各々については以下に詳細に説明する。
ては、FPGAは、同時的に動作状態となることが必要
ではない異なる機能をサポートするために、複数個のコ
ンフィギュレーション2500、即ちメモリスライス0
−7でプログラムされる。図示した形状2501の各々
は任意の寸法(例えば、CLBの数)及び形態(例え
ば、経路付け構成体)の論理関数を表わしている。論理
関数2501A−2501Hが図25に示されている。
1つのシーケンス動作において、FPGAは初期的にあ
る論理関数(例えば、2501A)を実行すべくプログ
ラムされており、次いでフラッシュリコンフィギュレー
ションによって再形態特定されて異なる論理関数(例え
ば、2501H)を実行する。FPGAはユーザ論理に
おいて発生されるか又は外部ピンによって与えられる信
号に応答していずれかの論理関数からいずれかのその他
の論理関数へスイッチする。
ップ即ちチップ上に同時的に最大で8個の別個のコンフ
ィギュレーションを格納する(各々は異なるメモリスラ
イスに格納される)。フラッシュリコンフィギュレーシ
ョンが発生すると、CLBの出力の状態が自動的に前述
したマイクロレジスタ内へ格納され、その際にコンフィ
ギュレーション間においてパラメータをパスさせること
を可能としている。前に使用したコンフィギュレーショ
ンを再度呼ぶ場合には、コンフィギュレーション動作が
それが中断した箇所から再開することが可能であるよう
に全ての以前の状態を回復することが可能である。
1は所定数のゲートを必要とする。従来技術において
は、例えば400個のCLBからなるアレイが10,0
00個のゲートの論理を実現していた。然しながら、本
発明の時間多重能力によれば、最大で80,000個の
ゲートの論理を実現可能である(8×10,000)。
図25は、400個のCLBからなるアレイにおいて6
2,000個のゲートの論理が実現されている実施例を
示している。
LDは、マイクロレジスタ324へ供給することに加え
て、フリップフロップ322へも供給される。上述した
タイムシェアリングモードにおいては、新たなコンフィ
ギュレーションの最初のサイクル上で(それはアクティ
ブグローバル信号FirstCycによって表わされ
る)、信号QOLDはフリップフロップ322のQ出力
端子へ回復される。これと対比して、スタティックモー
ドにおいては(セクション8.3参照)、信号Firs
tCycはコンフィギュレーションビットを具備するス
タティックモードCLBにおいて局所的に禁止され、そ
の際に信号QOLDがフリップフロップ322内へロー
ドされることを防止する。特に、その他の周辺論理(不
図示)は信号FirstCycを発生する。この信号
は、コンフィギュレーションビットと共にゲート動作さ
れ、その際に信号FirstCycを禁止させるか又は
アクティブ即ち活性な信号FirstCycを供給す
る。
ンフィギュレーションへ変化するビットによって制御さ
れるライン上でグリッチが発生する場合がある。これら
の可能性のあるグリッチはスタティックモードフリップ
フロップ接続を制限する。特に、組合わせ論理と対比し
て、殆どのフリップフロップ入力信号はグリッチがフリ
ップフロップ状態を変化させることを防止するために常
にグリッチがない状態に維持されねばならない。従っ
て、例えばC及びSR等の信号は、それらの供給源へ至
るまでずっとグリッチのないものでなければならず、こ
れらの経路上全てにおいてコンフィギュレーションビッ
ト制限を暗示している。更に、信号D及びECはクロッ
ク信号Cと相対的なあるセットアップ及びホールド時間
に関し有効なものである必要がある。非同期的クロック
の場合には、信号Cはコンフィギュレーションスイッチ
ング時間に対し何等関係を有するものではないので、信
号D及びECはコンフィギュレーションスイッチに基づ
く任意の時間においてグリッチを有することができず、
その際に信号C及びSRと同一の制限を暗示している。
ステージに分かれた単一の大きな設計を実現すべくプロ
グラムされており、各ステージは1つのコンフィギュレ
ーションである。FPGAは、典型的に、各論理部分を
介しての信号伝搬速度と同等の速度で所定の順番で全て
のコンフィギュレーションを介してシーケンス動作す
る。1つのコンフィギュレーションにおいて実行された
論理の結果は後のコンフィギュレーションで使用するた
めにマイクロレジスタ内に格納される。この設計におけ
るフリップフロップ内に格納すべき結果はマイクロレジ
スタ内に格納され且つマイクロサイクルを介して後のパ
スにおいて使用される。このプロセスはCLBの再使用
のために従来のFPGAよりも遅いが、チップ容量は著
しく増加される。
フィギュレーションは「マイクロサイクル」と呼ばれ
る。全てのマイクロサイクルを介しての1つの繰返しは
「主要なサイクル」と呼ばれる。「ユーザサイクル」は
ユーザの最も速いクロックサイクルにおける時間であ
る。典型的に、出力信号はユーザサイクル当たり一度ア
ップデートされねばならない。簡単な場合においては、
ユーザサイクルは主要なサイクルと同一である。全ての
ユーザ論理が同期的であり且つ一つのクロックのみが存
在するか(「ユーザ」クロック)、又はその他の全ての
クロックがユーザクロックから派生される場合には、そ
のユーザクロックは主要なサイクルと同一であるユーザ
サイクルを画定する。ユーザクロックは全てのコンフィ
ギュレーションを介してシーケンス動作するマイクロサ
イクルをトリガするか、又はシーケンサは全てのマイク
ロサイクルを介して断続的にサイクル動作することが可
能である。注意すべきことであるが、主要なサイクルは
ユーザクロックと同期させることが可能である(例え
ば、コンフィギュレーション0はユーザクロックの上方
向遷移と同期させることが可能である)。
は、ユーザの設計における組合わせ論理がLUT又はF
PGA上で使用可能な論理原始要素に分割される。ある
デザイン(設計)におけるLUT「レベル」は以下の如
くに定義される。フリップフロップ出力端子及びチップ
入力ピンへの接続のみを有するLUTのレベルは「1」
であり、一方その他全てのLUTのレベルはその入力信
号を発生するLUTの最も大きなレベルよりも1つ大き
なものである。組合わせ論理サイクルはLUT出力信号
に依存するLUT入力信号を無視することによって分解
される。このデザイン(設計)における任意のLUTの
最も大きなレベルはこの設計の深さと呼ばれる。
に、1つのLUTから次のものへの直列接続は、その信
号の供給を発生するLUTは、その信号の全てのディス
ティネーション(宛先)よりも1つのマイクロサイクル
先に(又は同一のマイクロサイクル)評価されねばなら
ない。従って、各LUTはそのレベルに対応するマイク
ロサイクルにおいて評価され、その場合にLUT出力信
号はマイクロレジスタ内に保持される。その設計のレベ
ル及び深さは、その論理を評価するのに必要とされるマ
イクロサイクルの数を表わす。これらの制限については
図26及び30を参照して後に説明する。
論理エンジンモードにおいては各マイクロサイクルに対
して再形態特定が行なわれ、中間状態は後のマイクロサ
イクルにおいてアクセスするためにマイクロレジスタ内
に保持される。図26に示した例においては、5個の仮
想LUT2601−2605を必要とする回路設計が、
単に3個の実際のLUTを使用して実現されている。第
一マイクロサイクル期間中、即ちμcycle 0期間
中に、LUT2601−2603がコンフィギュア、即
ち形態が特定され、ネット1−8から信号を受取り、且
つネット9,10,11上にその結果を発生する。ネッ
ト9,10,11の状態は、マイクロレジスタ内にラッ
チされ、且つ第二マイクロサイクル、即ちμcycle
1に対応する新たなコンフィギュレーションワードが
読取られる。μcycle 1において、LUT260
4は、μcycle 0において前に使用したLUT3
02−304(図3)のうちの1つを再度使用すること
によって実現される。ネット10及び11へのアクセス
は、出力マルチプレクサ313−320(図3)のうち
の3つを介して行なわれる。同様の態様において、μc
ycle 2において、LUT302−304(図3)
のうちの1つを再度使用することによって、LUT26
05が構成される。
イクルを示しているに過ぎない。然しながら、8個のメ
モリスライスの全てがコンフィギュレーションデ−タの
ために使用されるものと仮定すると、本発明に基づくF
PGAは最大で従来技術の回路と等価な論理の量の8倍
の量を保持するものである。然しながら、実現される論
理はクリティカルパス(臨界的経路)における論理レベ
ルの数及びユーザクロック条件に依存して、より遅いも
のである。例えば、クリティカルパスが2つのレベルの
深さに過ぎないが、回路設計は8個のマイクロサイクル
を使用して実現される場合には、その回路設計は従来の
FPGAで実現されたもの(又は、本明細書に詳細に説
明したようにタイムシェアリング又はスタティックモー
ドで)実現した設計よりも少なくとも4倍遅いものとな
る。一方、回路設計がそのクリティカルパスにおいて8
個又はそれ以上の論理レベルを有するものである場合に
は、本発明において実現したような設計は従来のFPG
Aよりもわずかに遅いものに過ぎない場合がある。従っ
て、論理エンジンモードはある程度速度を犠牲にして著
しい密度を得るものである。
たコンフィギュレーションの数と同一でない場合があ
る。例えば、該設計が単に3つのコンフィギュレーショ
ンを必要とするに過ぎない場合(即ち、計算が3つのコ
ンフィギュレーションで完了)、シーケンサはその他の
コンフィギュレーション(例えば、8個のコンフィギュ
レーションを有するFPGAにおけるコンフィギュレー
ション4乃至8)をスキップし且つ最初のコンフィギュ
レーションへ復帰する場合がある。このように、該論理
の完了後(即ち、3番目のマイクロサイクル(μcyc
le2)の後)次のものの開始への待ち時間はより少な
い(即ち、潜在的に、5サイクル後の代わりに次のマイ
クロサイクルにおいて)。従ってこの例においては、主
要なサイクルは該設計に適合するように短縮化されてい
る。一実施例においては、この各ユーザ設計に対して設
定されるシーケンサ内のこの終了カウントはプログラム
可能なレジスタ内に格納される。
即ち「n」マイクロサイクルアーキテクチュアの場合に
は、最大でn個のレベルの深さまでのユーザ設計のみが
評価することが可能であるように見える。回路設計にお
ける平均経路深さは典型的に3個のレベルと4個のレベ
ルとの間であるが、典型的な回路設計においては2,3
の長い経路を有することは異常ではない。性能を改善す
るか又はユーザの設計が使用可能なマイクロサイクルの
数よりも多くのレベルの論理を有する場合に設計に適合
させるために、該設計の深さよりもより少ないマイクロ
サイクルに適合させるように設計を修正させることが可
能である。本発明は、以下の代替的な解決方法を提供し
ている。
レジスタ周りに信号を指向させる(例えば、マルチプレ
クサ313−314(図3)へ供給される信号G参
照)。これらの信号は、現在のマイクロサイクルにおい
てその他の論理によって使用されるが、それらがマイク
ロレジスタ内に格納されていない限りその他のマイクロ
サイクルにおいて論理によって使用されることはない。
マイクロサイクルコンフィギュレーションの総数よりも
多くの値を保持しており、その際に1つを超えた主要な
サイクル前に発生された結果へアクセスすることを可能
としている。該コンフィギュレーション(主要なサイク
ル)を介しての複数個のパスが該計算を完了するのに必
要とされる。
え且つより長い計算の結果に関するイネーブルとしてユ
ーザクロックを供給する。従って、この解決方法におい
ては、ユーザサイクルは1つを超えた主要サイクルを有
している。オプションとして、この解決方法はマイクロ
サイクルの数より長いマイクロサイクルシーケンスカウ
ントを有しており、従って回路設計におけるマイクロサ
イクルの数はチップ内に組込んだ実際のマイクロサイク
ルの数の倍数である必要はない。
サイクルにおける複数個の主要なサイクルのうちの単に
1つのみに関して使用される。その他の主要なサイクル
に関しては、LUTは無視される値を計算する。従っ
て、ユーザクロックは無視された値が格納されることが
ないことを確保するためのイネーブル信号として必要と
され、コンフィギュレーションビットはどの主要サイク
ルに関して結果を保存するかを表わすために必要とさ
れ、且つグローバル信号はどの主要なサイクルがアクテ
ィブ即ち活性状態であるかを表わすために必要とされ
る。オプションとして、いつ結果及びグローバル活性信
号を保存するかの表示は、FPGAに関する論理で構成
することが可能である。
ック動作 論理エンジンモードの上述した説明は単一のクロックを
暗示しているが、多くのユーザ回路設計はこの制限を有
するものではない。クロック動作される回路の2つの異
なるカテゴリが存在しており、即ち複数個の関連したク
ロック及び関連していない(非同期)クロックである。
しており且つ全てのクロックが最も速いクロックの倍数
である場合には、最も速いクロックはユーザクロックと
して実現され、且つその他の全てのクロックはマイクロ
サイクルレジスタイネーブル信号で実現される。例え
ば、図39及び39Aを参照すると、遅いクロック信号
SC(状態3901において決定される)の上昇エッジ
の後可及的速やかに、遅いクロックイネーブル信号SC
Eがアクティブ即ち活性状態(状態3902)へ移行し
且つ1つの主要サイクルの間アクティブ即ち活性状態に
溜まる。1つの主要サイクルの後(主要なクロック信号
MCによって決定される)、遅いクロックが低状態へ移
行し(ステップ3903)且つシステムは遅いクロック
SCが0へ復帰する場合の遅いクロックの上昇エッジ
(状態3901)を待機する状態に復帰する。イネーブ
ル信号状態マシンは、オンチップの特別目的論理として
与えられるか又はCLBにおいてFPGA論理から構築
される。この技術は、最も速いクロックの倍数ではない
より遅いクロックを実現するために使用することも可能
である。
しており、その場合に、フリップフロップ2700はク
ロックゲート動作回路2701からクロック信号を受取
る。この実施例においては、クロックゲート動作回路2
701はANDゲート2702を有しており、該ゲート
はクロック2703及びイネーブル回路2704から入
力信号を受取る。このように、フリップフロップ270
0のクロック端子Kは、クロック2703及びイネーブ
ル回路2704からの両方の信号が論理高である場合に
のみ、ANDゲート2702からイネーブル信号を受取
る。クロック2703は主要なサイクル毎に信号を供給
する(即ち、PLDにおける最も速いユーザクロック信
号を供給する)。1つの例示的なユーザ設計において
は、イネーブル回路2704は主要なサイクル毎に信号
を供給する。従って、クロックゲート動作回路2701
がユーザの設計したフリップフロップ2700へ結合さ
れているものとして識別される場合には、2つの重要な
情報が決定される。第一に、クロック2703によって
供給される信号(ユーザクロック)及びフリップフロッ
プ2700のクロック端子Kへ供給される信号は関連し
ており、且つ、第二に、フリップフロップ2700のク
ロック端子Kへ供給される信号はユーザクロックよりも
遅いものである。従って、より遅いクロック信号が識別
される。このより遅い信号がマイクロレジスタイネーブ
ルでクロックイネーブルピンへ供給されるようにユーザ
の設計を最適化させることが可能であり、その場合には
ANDゲート2702を除去している。
(ゲート、フリップフロップ又はその他の論理関数)が
クロックの分割即ち分周を特定する(換言すると、エン
ドユーザによって選択されるマイクロクロックを識別す
る)。図28は例示的なライブラリ要素2802A,2
802B,2802C及びそれらのマイクロサイクルク
ロック2801に対する関係を示している。特に、ライ
ブラリ要素2802Bは、クロック信号CLKが8によ
って分周されることを特定し、その際に出力信号CLK
8を与える。最後に、一般的ライブラリ要素2802N
が、クロック信号CLKがNによって分周されることを
特定し、その場合にNはユーザによって与えられる数で
ある。然しながら、この実施例においてはユーザの設計
がクロック分周器を使用しているが、本発明は、典型的
に、図27に示した態様でクロック分周器を実現する。
換言すると、クロック2801はマイクロサイクルクロ
ック信号を供給し、且つライブラリ要素2802A−2
802Nと関連する分周器はイネーブル信号を供給す
る。
は、概略的捕獲期間中にユーザによって決定されるフリ
ップフロップ(不図示)のクロック入力端子へ供給され
る信号である。図29に示した一実施例においては、こ
れらの信号は、分周信号、例えば出力線2808上の分
周信号を図39に示した状態マシンに従って動作する回
路2911へ供給することによって実現される。回路2
911はマイクロレジスタ2910のイネーブルENピ
ンへ遅いクロックイネーブル信号を供給する。高速論理
の一部は、例えば、システム全体としての速度の2倍乃
至4倍で走る場合がある。本発明においては、この論理
は例えば、マイクロサイクル1−4、次いで、再度、マ
イクロサイクル5−8において複製され且つ実現され
る。この実現、即ち高速クロックの2つのサイクルを単
一の主要なサイクルへ適合させることは、論理の残部に
関して高速論理の速度を2倍とさせる。
サイクルシーケンス動作用シーケンサ シーケンサは、元のコンフィギュレーションからの入力
及びユーザが発生した信号を取りながらマイクロサイク
ルを介してシーケンス動作する。回路設計の最良の性能
のためには、マイクロサイクルは可及的に短い期間から
構成する。マイクロサイクルの期間は、 1.コンフィギュレーションメモリからのマイクロサイ
クルコンフィギュレーションの読取、 2.LUTへの信号の伝搬、 3.LUTの評価、 4.次のマイクロサイクルに対するマイクロレジスタの
セットアップ、 を行なうために必要とされる時間の量によって設定され
る。
イクルで評価される場合にはステップ2及び3が繰返し
行なわれる(注意すべきであるが、ステップ1の待ち時
間は、パイプラインラッチによって隠すことが可能であ
り、従ってそれはμcycle期間に貢献することはな
い)。
理、即ちその動作を迅速に実行する論理、及びより遅い
論理、即ちその動作を完了するために著しくより多くの
時間(高速論理によって必要とされる時間と比較して)
を必要とする論理へ分割することが可能である。本発明
の一実施例によれば、高速論理はそれがいずれかの主要
なサイクルにおいて少なくとも2回評価されるように所
定のマイクロサイクルにおいて複数回評価される。この
評価は、繰返し技術(図33を参照して説明する)又は
サブルーチン技術(図34を参照して説明する)を使用
して行なわれる。換言すると、高速論理が低速論理のク
ロック速度の2倍の速度を有するものと仮定する。この
例においては、主要なサイクルは低速論理のクロック速
度に設定され、その場合に、高速論理は主要サイクル毎
に2度実行する。
クル3301−3305を介してのCLB1−5の表示
を示している。前述したように、各CLB1−5は、典
型的に、各マイクロサイクル3301−3305に対し
て異なるコンフィギュレーション(形態)を有してい
る。陰線の付けた区域3306は、矢印3310によっ
て示したように、各主要なサイクルにおいて複数回評価
されるべき論理を表わしている。
イクル3302がマイクロサイクル3301に追従して
いる。マイクロサイクル3302と関連するコンフィギ
ュレーションを完了した後に、高速論理はマイクロサイ
クル3301(矢印3310で示してある)と関連する
コンフィギュレーションへ復帰することを表わす次のマ
イクロサイクルアドレスを発生する。マイクロサイクル
3301及び3302と関連するCLB1−5に対する
コンフィギュレーションが繰返される。一実施例におい
ては、繰返しカウントは例えば2等の固定数である。そ
の実施例においては、CLB1−5はマイクロサイクル
3301及び3302期間中に4回リコンフィギュア即
ち再形態特定が行なわれる(即ち、3301,330
2,3301,3302,3303...)。
3301及び3302と関連するコンフィギュレーショ
ンは、ある条件(条件付き分岐論理へ供給される)が充
足されるまで繰返される。マイクロサイクル3301及
び3302が適宜の回数繰返された後に、マイクロサイ
クル3303,3304,3305は逐次的に追従する
(即ち、(3301,3302)...(3301,3
302),3303,3304,3305))。従っ
て、マイクロサイクル3301及び3302と関連する
論理は、マイクロサイクル3303,3304,330
5と関連する論理よりも多数回評価される。マイクロサ
イクル3301及び3302と関連する論理はマイクロ
サイクル3303,3304,3305と関連する論理
よりもより多数回評価されるので、該論理はより速い応
答を有しており従ってより高速で走るように見える。従
って、マイクロサイクル3301及び3302を介して
の繰返しは、典型的に、主要なサイクル当たり多数回発
生し、一方、マイクロサイクル3303,3304,3
305を介してのシーケンスは、典型的に、主要なサイ
クル当たり1回発生する。
サブルーチンコールに類似したものである。換言する
と、サブルーチンはマイクロサイクルシーケンスにおけ
る任意の場所において選択的にコールされ、且つ元のマ
イクロサイクルシーケンスへリターンする。図34はマ
イクロサイクル3401,3405を介してのCLB1
−5の表示を示している。この実施例においては、マイ
クロサイクル3401と関連するCLB1−CLB5の
低速論理コンフィギュレーションの後に、マイクロサイ
クル3404及び3405と関連する高速論理コンフィ
ギュレーションがコールされ(矢印3410で表わして
ある)且つ解析される。マイクロサイクル3405の完
了の後に、プログラムはリターンして(矢印3411で
表わしてある)マイクロサイクル3402において与え
られた低速論理コンフィギュレーションを解析する。従
って、プログラムは再度マイクロサイクル3404及び
3405において高速論理コンフィギュレーションをコ
ールする(矢印3412で表わしてある)。マイクロサ
イクル3405の完了後、プログラムはリターンし(矢
印3413で表わしてある)マイクロサイクル3403
において低速論理コンフィギュレーションを解析する。
最後に、プログラムは、シーケンス全体を繰返すため
に、マイクロサイクル3401へリターンする(矢印3
414で表わしてある)。従って、この実施例において
は、プログラムは、マイクロサイクル3401,340
4,3405,3402,3404,3405,340
3と関連する論理コンフィギュレーションシーケンスに
従う。
るコンフィギュレーションスライスへの割当はスケジュ
ーリングと呼ばれる。スケジューリングは手動的に行な
うことが可能であるが、より便宜的にはスケジューラと
呼ばれるプログラムによって自動的に行なわれる。
い。例えば回路26における回路等の回路が1つの主要
なサイクルにおいて正しい結果を発生するためには、各
LUTは、それに対して入力信号を発生する全てのLU
Tよりも速くないようにマイクロサイクルにおいてスケ
ジューリングがなされねばならない。更に、フリップフ
ロップに対して2つの条件が存在している。第一に、各
フリップフロップはそのLUTに対する入力信号を発生
する全てのLUTよりも速くないようにマイクロサイク
ルにおいてスケジューリングされねばならない。第二
に、各フリップフロップは、それを駆動する全てのLU
T又はフリップフロップよりも速くないようにマイクロ
サイクルにおいてスケジューリングされねばならない。
2611は第二の条件を満足する、即ちLUT2610
(この場合には、LUT2610と同一のマイクロサイ
クルn内にある)よりも速くないようにスケジューリン
グされている。従って、LUT2610は前のユーザサ
イクルからフリップフロップから2611の値をとる。
このように、フリップフロップ2611の出力信号はマ
イクロサイクルn+1まで変化することはない。従っ
て、フリップフロップ2611はマイクロサイクルnの
終了時にLUT2610の入力信号に対してサンプルさ
れる。注意すべきことであるが、フリップフロップ26
11は後のマイクロサイクルにおいてスケジューリング
することが可能であったものであり且つLUT2610
はより速いマイクロサイクルにおいてスケジューリング
することが可能であったものである。更に、フリップフ
ロップ2612は第一の条件を満足する。即ち、LUT
2610よりも速くないようにマイクロサイクルにおい
てスケジューリングされている(この場合には、後のマ
イクロサイクルにおいてスケジューリングされてい
る)。フリップフロップ2612もマイクロサイクルn
内にスケジューリングすることが可能であったものであ
り又はマイクロサイクルn+1の後のマイクロサイクル
においてスケジューリングすることが可能であったもの
である。
ば、ソフトウエアプログラム(以後、「スケジューラ」
と呼ぶ)が設計中のクリティカルパスを識別するための
レベライゼーション(levelization)即ち
レベル化と呼ばれる技術を使用する。最も簡単な場合に
おいては、該設計は全てのフリップフロップが同一のク
ロック信号によって同期される同期型設計であると仮定
される(注意すべきことであるが、マルチクロック設計
のクロックイネーブル信号を有する単一クロック設計へ
の変換についてはセクション8.2fにおいて後に詳細
に説明する)。最初の(最も低い番号)マイクロサイク
ルはユーザクロックの上昇エッジと同期される。全ての
組合わせ論理が評価され且つ全てのフリップフロップ値
が該コンフィギュレーションを介しての1つのパスにお
いてアップデートされる。各ユーザクロックサイクルは
全てのマイクロサイクルの評価を行なう。
理が各マイクロサイクルにおいて評価されるものと仮定
すると(換言すると、マイクロサイクル当たり1つを超
えたLUTを介して伝搬が発生することがない)、1つ
のマイクロサイクル期間は、1つのLUT遅延+入力信
号をLUT入力端子へ転送するための相互接続遅延から
構成されている。マイクロレジスタは後のマイクロサイ
クルにおいて使用するために組合わせ論理中間値を保持
する。マイクロレジスタは、更に、マイクロサイクルを
介しての次のパス上で評価される次のユーザサイクルに
おいて使用するためのフリップフロップ値を保持する。
はレベライゼーションアルゴリズムを使用してスケジュ
ーリングすることが可能である。特にチップ入力ピン又
はフリップフロップからのみ入力信号をとる各LUTは
レベル1が与えられる。その他のLUTはいずれかの入
力の最も大きいレベルよりも1つ大きなレベル番号が与
えられる。この技術は可及的速やかなスケジュールを発
生する。
ングは、全ての入力信号がレディ即ち準備されるや否や
各LUTをスケジューリングする。図30に示した可及
的に遅いスケジューリングは、その出力信号が要求され
る前にマイクロサイクルにおいて各LUTをスケージュ
ーリングする。その他のスケジューリングも可能であ
り、例えば、各マイクロサイクルにおいて必要とされる
LUTの数を減少させるためにマイクロサイクルの数を
増加させるもの等がある。例えば、図26において、ス
ケジューラが5個のマイクロサイクルを使用することが
許容される場合には、スケジューラはそれ自身のマイク
ロサイクルにおいて各LUTをスケジューリングするこ
とが可能であり、全ての結果をマイクロレジスタ内に保
存し、且つ前のマイクロサイクル期間中にマイクレジス
タ内の格納した結果を入力信号として使用することが可
能である。このように、該設計を構築するのに単に1つ
の実際のLUTが必要とされるに過ぎない。
るものであるが、クリティカル即ち臨界的な遅延経路上
にないLUTに対する部分的な評価には著しい余裕が存
在している。このために、スケジューラはクリティカル
パス内にないLUTを識別し且つマイクロサイクル当た
り必要とされるLUTの数を最小とさせるためにそれら
の評価をその他のマイクロサイクル内へ再スケジュール
することが可能である。例えば、図26と図30とを比
較すると、LUT2601はマイクロサイクル1期間中
に評価されるべく再スケジュールされている(スケジュ
ーラによって)。このようにすることによって、回路設
計を実現するために必要とされる物理的なLUTの数は
3個から2個へ減少される。LUT2601はクリティ
カルパス即ち臨界的経路内にはないので、そのLUTを
マイクロサイクル1内へ再度スケジューリングすること
は回路性能に影響を与えるものではない。
ことが可能であり、即ち(i)いずれかのマイクロサイ
クルにおいて必要とされる実際のLUTの数を最小とさ
せ、(ii)各ネットが表われる毎にマイクロサイクルの
数を最小とさせ、且つ(iii)同一のマイクロサイクル
内に経路付けされた各ネットのピン数を最大とすること
によって改善することが可能である。
法、即ちリストスケジューリングとして知られる技術の
変形例について図40を参照して説明する。
る(ステップ4001)。
ュールすることの可能な全てのLUTを識別する(ステ
ップ4002)。即ち、その入力信号がチップ入力ピ
ン、フリップフロップ出力端子、又はより先のマイクロ
サイクルにおいて既にスケジューリングされている入力
信号を発生する全てのLUTを持ったLUTから来る入
力信号を受取るLUTを識別する。
順番付けする(ステップ4003)。
ケジューリングによって決定されて、最も速い又は最も
遅いスケジュールを有するLUTが最初である。 b.ネット:その他の全てのデスティネーションLUT
が既にスケジューリングされている入力ネットを有する
LUT。
スタンスのうちの少なくとも1つがスケジューリングさ
れているネット上の1個のピンを有するLUT。 d.可能なネット:リスト内の先のLUTを付加するこ
とによってこのマイクロサイクルにおいて導入させるこ
との可能なネットを完成するLUT。
付加することによってこのマイクロサイクル内に導入す
ることの可能なネット上に1個のピンを有するLUT。
を選択し、尚mはFPGAにおける実際のLUTの数で
ある。これらm個のLUTを現在のマイクロサイクル番
号の符号を付ける。それらを識別したLUTのリストか
ら取除く(ステップ4004)。
テップ4005)。
LUTが存在する場合には(ステップ4006)、ステ
ップ4002へ移行し、そうでない場合には終了する
(ステップ4007)。
度に1個選択され、その場合には、ステップ4003は
各選択の後に再度実行される。この実施例は低速である
が、各選択の後にLUTの順番付けをすることは、より
少ない数のマイクロサイクルを使用する結果となるか又
は配置させ且つ経路付けすることがより簡単となる。 8.2d スケジューリング圧縮 クリティカルパスにおける論理のレベル数がFPGA設
計が実現されるコンフィギュレーションの数よりも大き
い場合には、スケジューラはクリティカルパスを圧縮さ
せる。図26Aを参照すると、2つのLUT、即ちLU
T2604及び2605を同一のマイクロサイクル、即
ちマイクロサイクル1において直列的に接続させるため
にマイクロレジスタバイパスを使用してクリティカルパ
ス上のレベルの対を単一レベルへ合体させる。一実施例
においては、圧縮はクリティカルパス上のLUTの数の
最小の拡張に基づいて、合体すべき対を選択する。
置 1つのコンフィギュレーションにおける論理は、その他
のコンフィギュレーションにおける同一のLUTにおい
て発生される固定数の信号を超えてアクセスすることは
できない。この制限はスケジューリング(コンフィギュ
レーション)と配置(実際のLUT)との間の拘束条件
であり、そのことはこれらのプロセスを分離することを
困難又は非現実的なものとしている。
ーリングするためにLUTをレベル化することについて
説明したが、スケジューリングによって課される拘束条
件はプレースメント即ち配置及び経路付け可能性に悪影
響を与える場合がある。従って、一実施例においては、
スケジューリング及びプレースメント(配置)は同時的
に行なわれる。
な」時間多重型FPGA設計プロセス、及び「より良
い」時間多重型FPGA設計プロセスに対するスタンダ
ードなFPGA回路設計プロセスを比較している。
後、回路設計が最適化され且つFPGA上で使用可能な
物理的資源に対してマッピングが行なわれる(例えば、
組合わせ論理に対するLUT)。最適化は当業者にとっ
て公知であるが、それは設計におけるLUTを最小とす
るための組合わせ論理の作り直し、及び長い組合わせ論
理経路を短くするための再計時を行なうことを包含す
る。次いで、FPGA資源は、ユーザの論理における各
関数を実現するために使用される実際の資源を選択する
ために配置され且つこれらの資源を接続するための経路
付けが行なわれる。
PGAで実現するための簡単な方法は、テクノロジマッ
ピングの後であるがプレースメント(配置)の前にスケ
ジュールステップを付加することである。このスケジュ
ールステップは、設計内の各LUTのマイクロサイクル
を決定し、その際に該設計をN個の配置及び経路付け問
題へ分割することを可能とする(尚、Nは該設計によっ
て使用されるマイクロサイクルの数である)。
存している。特に、スケジュールステップは、各マイク
ロサイクル期間中にどのネットが必要とされるかを決定
する。明らかに、接続されるべきネットの数又はピンの
数が減少されると、プレースメント即ち配置はそれに対
応してより簡単なものとなる。
れるLUTの出力信号はその他のマイクロサイクル(例
えば、n+1)における入力信号として使用される。従
って、これらn個の配置のうちの1つにおける全てのネ
ットの供給源の位置はその他のマイクロサイクルにおけ
るLUTの配置によって決定される。各LUT出力マイ
クロレジスタがN個のマルチプレクサを有する場合に
は、同一の実際のLUTが同一のマイクロサイクルにお
いてスケジュールされるべきN個を超える異なる信号を
供給すべきではない。設計におけるLUTのFPGAに
おける実際のLUTへの割当はプレースメント(配置)
ステップ期間中に行なわれる。従って、よりよいタイム
シェアリングFPGAプロセスにおいて、スケジューリ
ング及び配置動作は同時的に行なわれる。
(LUT配置9)及び時間(マイクロサイクル)におけ
る配置である。スケジューリング拘束条件はマイクロサ
イクル(時間)次元におけるLUTの相対的配置に関す
る拘束条件である。
スケジューリングと配置とは図32に示したように三次
元配置問題として解くことが可能である。配置コスト関
数は、PLDのx及びy次元における物理的な拘束条件
コスト及びマイクロサイクル次元におけるスケジューリ
ング拘束条件コストを反映している。従来の配置発見的
手法、例えばシミュレーション型アニーリング、最小切
断ニ分割(min−cut bi−partition
ing)、クラスタ成長、シミュレーション型展開(s
imulated evolution)及び力指向型
緩和(force−directed relaxat
ion)が適用可能である。配置アルゴリズムはスケジ
ューリングによって課される相対的な配置拘束条件に従
わねばならない。
デートせねばならない。然しながら、好適には、最後の
マイクロサイクルを待つのではなく、値が計算されると
それを出力へパスさせる。
ルにおいては、全ての入力信号が最初のマイクロサイク
ルにおいて使用可能であり且つ全ての出力信号はユーザ
サイクルの終りにおいて必要とされる(最後のマイクロ
サイクルの終了時)。実際に、幾つかの入力信号はあと
に到着し、且つ幾つかの出力信号はより速く必要とされ
る。これらの拘束条件を受付けるために、スケジューラ
コンピュータプログラムは幾つかのマイクロサイクルの
後になるまで後に到着する入力信号を使用するスケジュ
ーリングを回避し、且つ最後のマイクロサイクルの前の
早期に必要とされる出力信号を発生する。これらの早期
の出力信号は早期のマイクロサイクルにおいて夫々の出
力パッドへ経路付けされ且つチップ出力ピン上に供給さ
れねばならない。
力端に値を供給するために、信号を保持するレジスタか
ら出力パッドへ経路付けされた経路はスタティック即ち
静的な経路でなければならない(即ち、セクション8.
3において説明したスタティック論理技術を使用し、そ
の場合に、その経路に対するプログラミングは全てのマ
イクロサイクルコンフィギュレーション内に含まれてい
る)。一実施例においては、単一のスタティックレジス
タが出力すべき値を保持する全ての出力パッドを具備し
ている。
号が論理エンジン同期動作と同期される。この同期はそ
の他のシステムにおいて遭遇する同期問題と類似してい
る。ユーザの回路設計がユーザクロックがサイクル動作
する場合に信号が使用可能であることを考慮に入れる。
後に到着する信号は主要なサイクルにおいてこれらの信
号を後に使用するようにスケジューリングすることによ
って受入れることが可能である。
可能である。入力信号から出力信号をアップデートする
ために完全なユーザサイクルが必要とされる。更に、主
要なサイクルのスタート直後に入力信号が変化すると、
その信号は結果の中に含まれない場合がある。従って、
非同期入力の結果が可視的なものであることが保証され
る前に、2つの完全な主要なサイクルが必要とされる。
同期を簡単化させるために、入力信号を直接チップへ供
給するか又はI/Oブロック内のマイクロレジスタを介
して供給する。
サイクルが実行された後に入力信号が変化するとスキュ
ー問題が発生する。特に、信号の異なる値が計算の異な
る部分に含まれる場合があり、その際に不正確な結果と
なる場合がある。例えば、図64Aを参照すると、マイ
クロサイクル1及び2期間に信号INを使用する論理は
IN=1を使用し、マイクロサイクル4及び5期間中に
INを使用する論理はIN=0を使用し、且つマイクロ
サイクル3期間中にINを使用する論理はIN=0又は
IN=1のいずれかを使用する。図64Bは、論理要素
がそれらがスケジューリングされているマイクロサイク
ルの符号が付けられた論理回路6400を示している。
信号INの値はANDゲート6401及び6402の評
価の間で変化するので、これらのゲートは同一の信号の
異なる値を受取り、その際に予測不可能な結果を発生す
る。特に、この場合には、ORゲート6403の出力信
号は、ANDゲート6401又は6402の一方が
「1」を供給するので、信号Aの値に拘らずに、「1」
である(信号INはこれらのゲートの評価の値で変化す
る)。
スタを使用する本発明の入力同期はこの問題を回避して
いる。例えば、入力/出力ブロック4100の一部を示
している図41を参照すると、マイクロレジスタ410
1はパッド4105からの入力信号を捕獲し、一方マイ
クロレジスタ4102はフリップフロップ4103から
の出力信号を捕獲する。ビット組200(図2)によっ
て制御されるマルチプレクサ4106は、マイクロレジ
スタ4101、マイクロレジスタ4102、又はライン
4107からの信号を選択的に出力する。パッド410
5への出力信号を捕獲するマイクロレジスタ4104
は、タイムシェアリングモードにおいて値を出力するた
めにリコンフィギュレーション即ち再形態特定からの遅
延に対し一定の(即ち、設計と独立的な)時間仕様を可
能としている。
の幾つかをこれらの信号及び計算に対するスタティック
ロジック即ち静的論理として専用化することによって実
現することが可能である。
いては、FPGAの一部が、FPGAのその他の部分が
再形態特定される場合に、単一のコンフィギュレーショ
ン即ち形態特定を維持する。スタティックモードで形態
特定されているFPGAの部分は、機能的には、従来の
PFGAの対応する部分と同一である。付加的なシリコ
ン面積がメモリビットによって消費されるので、スタテ
ィックモードにおけるCLBの論理密度は従来のCLB
の論理密度よりも低い。
メモリスライスを同一のコンフィギュレーション(形態
特定)値へプログラミングすることによって実現され、
その際にコンフィギュレーションに拘らずに機能が同一
状態を維持することを確保する。スタティックモードに
おいては、フリップフロップクロック及びマイクロレジ
スタクロックは互いに何等関係を有するものではない。
従って、マイクロレジスタからスタティックフリップフ
ロップへ値を回復されることは何等意味がなく、且つ禁
止されねばならない。例えば、スタティックフリップフ
ロップはマイクロレジスタクロックを定義する全てのユ
ーザサイクルに対し複数個のクロックサイクルを有する
ことが可能である。従って、マイクロレジスタ値は古す
ぎるかも知れず且つ回復動作はセクション8.1タイム
シェアリングモードにおいて詳細に説明した信号Fir
stCyc(図4)をディスエーブルさせることによっ
て禁止されねばならない。
性能の必要性を有する論理タイプの混合を必要とする場
合がある。更に、同期システムは、実時間インタラプト
を取扱うために何らかの非同期能力を有する必要性があ
る。このことをサポートするために、本発明アーキテク
チュアは混合動作モードを提供している。例えば、幾つ
かのコンフィギュレーションではタイムシェアリングサ
イクルで動作し、一方その他のコンフィギュレーション
は論理エンジンシーケンスに結合される。例えば、マイ
クロプロセサバスぺリフェラルは、バス動作を検知する
ための静的論理を有する場合があり且つペリフェラルが
プリンタ制御器、ネットワークインターフェース又はデ
ィスクドライブ制御器等と異なる時間に動作することを
可能とするタイムシェアリグを行なう。この適用例の一
実施例においては、プリンタ制御器が論理エンジンの幾
つかのマイクロサイクルを有する場合がある。更に、C
LB及び相互接続体のサブセットがスタティックモード
でプログラムされ、その場合にそれらがタイムシェアリ
ング又は論理エンジンモード使用可能ではない。
るコンフィギュレーションメモリセルの数)は回路設計
依存性であり且つ設計内において変化する。従って、特
定のユーザ設計が各CLBの全てのコンフィギュレーシ
ョンの利点を得ることができない場合には、コンフィギ
ュレーションメモリの幾つかは浪費され、その際に必要
以上のFPGAとなる。従って、本発明に基づく典型的
なCLBはN個のメモリサイクルに対しN個ビットを有
するものであるが、幾つかの実施例における幾つかのC
LBはより少ない数を有している。図35はタイムシェ
アリング型PLDを示しており、y軸上のCLBA−F
及びx軸上のコンフィギュレーション1−6を有してい
る。図35において、各CLBは6個の異なるコンフィ
ギュレーションを有している。従って、アーキテクチュ
ア3500はメモリの36個のCLBマップを必要とす
る(即ち、6個のCLB×6個のマイクロサイクル)。
てあり、その場合には、CLB A及びBはコンフィギ
ュレーション1−8を有しており、一方CLB C及び
Dはコンフィギュレーション1−5を有しており、且つ
CLB E及びFはコンフィギュレーション1を有する
に過ぎない。アーキテクチュア3600はメモリの28
個のCLBMマップを必要とする(2×8+2×5+2
×1)。従って、回路設計が深さにおける変化を有する
ものと仮定すると、アーキテクチュア3600はアーキ
テクチュア3500と比較して著しい量のメモリを節約
する。
で実現されるべき回路設計に適合すべく選択された深さ
の分布を有している。例えば、図37A及び37Bは2
つの2入力LUTを示しており、即ちLUT3700A
(マルチプレクサ3701及びメモリセル3702によ
って供給される8個のコンフィギュレーションを包含し
ている)、且つLUT3700B(マルチプレクサ37
03及びメモリセル3704によって与えられる4つの
コンフィギュレーションを含んでいる)。1列のメモリ
セルが各コンフィギュレーションに対して必要とされ
る。従って、メモリセル3702は8個の列に配列され
ており、一方メモリセル3704は4つの列に配列され
ている。動作期間中に、1列のメモリセルがLUTの内
容として逐次的に選択される。
メモリセルを有することのないCLBは尚且つそのコン
フィギュレーションに対してプログラムされねばならな
い。例えば、図36を参照すると、CLB E及びFは
コンフィギュレーション2−8期間中にプログラムされ
ねばならず、且つCLB C,D,E,Fはコンフィギ
ュレーション6−8期間中にプログラムされねばならな
い。幾つかの実施例においては、特定のコンフィギュレ
ーションに対してCLBを実際的にプログラミングする
代わりに、本発明は以下の代替方法を提供している。
ミングは最後に実現されたメモリセル上に存在していた
ものを残存させる。
ーションより少ない数を有するCLBはより高いコンフ
ィギュレーション数に対してそのコンフィギュレーショ
ンを介して再度サイクル動作する(最大で8個のコンフ
ィギュレーションがあり且つCLBでの格納が4ビット
である場合には、CLBは12341234の順番で進
行する)。
をすることもなく、即ち所定のハードワイヤードアイド
リング形態を使用する。
用するかの選択はCLB毎に基づいて行なわれる。
対して異なる数の形態を有する2入力LUT3801を
示している。同様に、マルチプレクサ3803は5個の
コンフィギュレーションを受取るための2つの入力端子
を有すると共に、4つのコンフィギュレーションを受取
るための2つの入力端子を有している。アイドリング形
態の選択は0,1又はユーザ信号3805とすることが
可能でありその場合は、これらのコンフィギュレーショ
ンに対して、LUTはより少ない数の完全に制御される
入力信号を有するか、全ての入力信号の幾つかの制限さ
れた関数がいまだに使用可能である。全ての入力信号が
存在するものではないコンフィギュレーションにおいて
は、LUT3801はあるメモリセルが入力信号を供給
し且つある定数が入力信号を供給するマルチプレクサと
して記述することが可能である。 9.2 マイクロサイクルインタラプトシミュレーショ
ン 論理エンジンモードは単一クロックシステムで両方に動
作する。然しながら、ネットワークはしばしばマルチク
ロックシステムとして動作する。特に、多くのエンドユ
ーザ設計におけるフリップフロップは、関係のないクロ
ックによってトリガされ、又クロック間のタイミング関
係は決定することは不可能である。換言すると、これら
のクロックは非同期的に動作するものと考えられる。
論理回路網がシミュレーションされる。特に、論理回路
網は、最初に、サブネットワーク即ち副回路網へ分割さ
れ、各サブネットワークは共通のクロック及び中間論理
を共用するフリップフロップを含んでいる。一実施例に
おいては、論理ネットワークはクロックの数を減少させ
るために変換され、その際にサブネットワークの数を減
少させる。従って、各サブネットワークは前述した方法
を使用して独立的に編集され(スケジューリングされ)
且つその他のサブネットワークとは排他的にそれが占有
する8個のコンフィギュレーションスライスからなるサ
ブセットが割当られる。最後に、各サブネットワークと
関連するクロックネットに関する遷移が検知され、ダイ
ナミックスケジューリングとして夫々のサブネットワー
クの評価をトリガする。
202,4204が第一クロック線4209上の信号に
よってトリガされ且つフリップフロップ4203及び4
205が第二クロック線4210上の信号によってトリ
ガされるユーザネットワーク4200の一例を示してい
る。注意すべきことであるが、中間組合わせ論理ブロッ
ク(以後、ブロックと呼ぶ)4211−4214は異な
る時間において信号を受取る。例えば、ブロック421
3はライン4208上の主要な入力信号i1を受取り更
にクロック線4209上のクロック信号Caによってト
リガされるフリップフロップ4202からの別の入力信
号i2を受取る。別の例として、ブロック4214はブ
ロック4213からの出力信号を受取ると共にクロック
線4210上のクロック信号Cbによってトリガされる
フリップフロップ4203からの信号を受取る。注意す
べきことであるが、ブロック4211−4214は、定
義上、フリップフロップ又はフィードバックループを包
含するものではない。
サブネットワーク4200−1,4200−2,420
0−3への区画化即ち分割を示している。これらのサブ
ネットワークはオーバーラップしており、そのことは幾
つかのブロックの評価は1つを超えた数のクロック遷移
によってトリガすることを可能であることを意味してい
る。極端な一例として、ブロック4214は信号Caの
正のエッジ、信号Cbの正のエッジ、又は信号I1にお
ける何等かの変化によってトリガすることが可能であ
る。
クのフリップフロップから派生するものではない全ての
ブロック入力信号は、可能である場合には、それらの入
力を供給するフリップフロップを介して前方向へ「再同
期」される。例えば、図43を参照すると、ブロック4
212はフリップフロップ4204を介して再同期され
且つブロック4214はフリップフロップ4205を介
して再同期される。このステップにおいては、フリップ
フロップ4204は2個のフリップフロップ4204A
及び4204Bによって置換されており、これらのフリ
ップフロップの各々はブロック4212に対して出力信
号を供給する。同様に、フリップフロップ4205は2
個のフリップフロップ4205A及び4205Bによっ
て置換されており、その場合にこれらのフリップフロッ
プの各々はブロック4214に対して出力信号を供給す
る。図44においては、ブロック4213はフリップフ
ロップ4204Bを介して再同期される。このステップ
においては、フリップフロップ4204Bはフリップフ
ロップ4204B1及び4204B2によって置換され
ている。再度図43を参照すると、ブロック4213は
フリップフロップ4204B及びフリップフロップ42
05Aの両方へ出力信号を供給する。従って、ネットワ
ーク4200においては、ブロック4213もフリップ
フロップ4205Aを介して再同期されねばならず、そ
の際にフリップフロップ4205A1及び4205A2
を形成する。
おり、それは機能的にネットワーク4200(図42)
と等価であり、それは本発明に基づいてサブネットワー
ク4200B1及び4200B2に分割され、その各サ
ブネットワークは1つのクロックを有するに過ぎない。
ブロック4213A及び4213Bはブロック4213
を有するに過ぎないネットワーク4200と比較して、
1個のブロックだけネットワーク4200Bのダイ面積
を増加させる。フリップフロップ4204B1,420
4B2,4205A1,4205A2,4205Bは、
ユーザの設計においては「新しい」フリップフロップと
して表わされているが、それらは、通常、付加的なハー
ドウエア資源を必要とするものではない。何故ならば、
マイクロレジスタがブロック出力端において充分な格納
を与え、且つその格納はユーザの設計におけるブロック
出力端においてのフリップフロップの配置とは無関係に
必要とされるからである(セクション2.1参照)。付
加的な資源はフリップフロップ又は主要な入力が中間論
理なしでフリップフロップへ供給する稀な場合において
のみ必要とされるに過ぎない。従って、フリップフロッ
プの数の増加がユーザのネットワークを実現するのに必
要とされるダイ面積を著しく増加させるという蓋然性は
ない。
ロック4213が、1つを超えたクロックエッジで評価
されねばならないので、変換されたネットワーク420
0B内において複製されている。然しながら、典型的な
設計プラクティスにおいては、単一のブロックは複数個
のクロックエッジにおいて動作することが必要とされる
ものではない。従って、再同期はユーザの設計において
ブロック数を殆ど増加させることはない。従って、再同
期変換はダイ面積の増加をさせることはないか殆どさせ
ることはない。
なった論理ネットワーク4200及び4200B(図4
2及び45)の夫々に対しての擬似的コード変換460
0及び4700を示している(再同期プロセスを含む変
換4700は典型的に変換4600よりも好適である
が、両方の変換が機能的に正しい結果を発生する)。各
変換は複数個の区画部、即ちプロセスを有している。例
えば、変換4600はプロセス1(5),2(5),3
(5)を有している。プロセス1(5)はクロック信号
Caの正のエッジによってトリガされ、プロセス2
(5)はクロック信号Cbの正のエッジによってトリガ
され、且つプロセス3(5)は信号I1の遷移によって
トリガされる。
後に、プロセス1(5)は最初にフリップフロップ42
01及び4202の入力信号をサンプルする(即ち、フ
リップフロップ4201及び4202のQ出力端子へ転
送された入力信号i2及びi3であって、信号i3及び
i2として示してある)。第二に、プロセス1(5)は
図48に示したスケジューリング拘束条件4600Aに
基づいて論理ネットワーク4200−1を評価する。
尚、「<」は「前」を表わしている。従って、例えば、
ブロック4211はブロック4212の前に評価され
る。同様に、「≧」は「後又は同時」を表わしている。
従って、例えば、ブロック4212はブロック4211
の後か又は同時に評価される。
ック信号Cbの正のエッジを検知した後に、プロセス2
(5)はブロック4214を評価する前に信号o2をサ
ンプルする。同時的に、プロセス2(5)は出力信号O
2をサンプリングする前ではない時にブロック4214
を評価し、且つ出力信号O2が変換した信号o2である
ことを識別する。入力I1の信号遷移を検知した後に、
プロセス3(5)はブロック4214の前にブロック4
213を評価する。図50はプロセス1−3(5)に対
するマイクロサイクル割当を示している。特に、プロセ
ス1(5)はマイクロサイクルC0及びC1を有してお
り、プロセス2(5)はマイクロサイクルC2を有して
おり、且つプロセス3(5)はマイクロサイクルC3及
びC4を有している。残りのマイクロサイクル、即ちマ
イクロサイクルC5−C7は使用されないままである。
割当に対する状態線図を示している。ステップ5105
において状態マシンが開始した後に、例えばプロセス1
(5)の等のプロセスが開始する(図46においても示
してある)。プロセス1(5)が完了した後に、状態マ
シンはアイドル状態5100へ復帰し、そこで別のプロ
セス、例えばプロセス3(5)が開始するまでシステム
はループ状態となる(ループ5104で示してある)。
同様に、プロセス3(5)が完了した後に、状態マシン
は、更に別のプロセスが開始するまで、アイドル状態5
100へ復帰する。然しながら、図51に示したよう
に、この状態マシンは論理資源に対する「プロセス」競
合の可能性を考慮に入れるものではない。
0B(図45)は、論理ネットワーク4200B(図4
5)は、論理ネットワーク4200(図42)よりも複
雑であるが、実際にはより簡単な擬似的コード変換を有
している。スケジュール4600において、ブロック4
212,4213,4214は1つを超えた位置が割当
てられる。この割当は、マイクロレジスタ書込セレクト
信号が本明細書に開示した実現例によってはサポートさ
れていないCLB毎に独立的に制御されることを必要と
する。この問題に対する解決方法は、アレイ内に専用の
サイト(箇所)を与えることであり、各箇所は任意の組
合わせのマイクロサイクルでクロック動作すべく形態が
特定されたフリップフロップから構成されている。この
ような箇所は、1個のブロックが1つを超えたマイクロ
サイクルでスケジューリングされている場合にマイクロ
レジスタの代りに使用することが可能である。付加的な
利点として、このような箇所は使用していない相互接続
体に対して定数1又は0のいずれかを適用するハードウ
エア資源(業界においては「タイダウン(tie−do
wn)」として知られている)として使用することが可
能であり、その際に相互接続体におけるバッファがフロ
ーティング条件の結果としてスタティックな電流を流す
ことを防止する。
によって破られることのない主要な入力端から主要な出
力端への経路に沿って発生する場合にのみマイクロレジ
スタに1つを超えた位置が割当てられ、且つそれは異な
るクロックからなる信号によって供給される。論理を複
製することによって、このようなマイクロレジスタは主
要な出力端においてのみ必要とされる。
ワーク(マイクロプロセッサにおいて「プロセス」とし
て言及される)はデフォルトによってトリガイベントを
待機している(即ち、プロセスは「ブロック」されてい
る)。本発明においては、トリガイベントはプロセスに
よって特定される入力ピン遷移である。クロックエッジ
が発生すると、対応するサブネットワークが評価され
る。その評価が完了すると、サブネットワークは待機状
態へ復帰し、その場合にシステムは次のクロックエッジ
によってトリガされる。
で、システムが既に別のサブネットワークを評価するプ
ロセスにある間にクロックエッジが到着する可能性があ
り、その際に多数の異なる動作のうちの1つをトリガす
る。一実施例においては、インタラプトしているサブネ
ットワークが待機状態とされる。資源が使用可能となる
と、例えばインタラプト中のサブネットワーク等の所定
のプロセスが選択され且つ稼動される。このプロセスス
ケジューリングを実現する1つの回路実施例を図52に
示してある。
0を示しており、それは外部クロック信号C1,C
2,...,CK(典型的に、FPGAチップ上のピン
を介して供給される)を受取り、且つ適宜のマイクロサ
イクル(即ちサブネットワーク)を活性状態とすること
を決定する内部マイクロサイクルクロックuC0,uC
1,...,uCNを出力する。エッジ検知ブロック5
201A−5201Kはクロック信号C1−CKのエッ
ジを夫々検知する。これらの信号は同期ブロック520
2A−5202Kによって自走マルチクロックシーケン
サへ同期される。マルチクロックシーケンサクロックは
図52において「シーケンサクロック(sequenc
er CLOCK)」として示してあり、それは、暗示
的に、明示的には接続されていない回路内の全てのクロ
ック入力端(例えば、5202A−K,5205A−
K,5209A−N)へ接続されている。優先度付器5
203は同期ブロック5202A−5202Kから信号
を受取り、且つ、複数個の信号が同時的に受取られた場
合に、どの信号をANDゲート5204A−5204K
へ供給すべきかを決定する。図52に示したように、A
NDゲート5204A−5204Kは、更に、ANDゲ
ート5212Nによって供給される信号BLOCKを受
取る(以下に詳細に説明する)。BLOCK信号は、サ
ブネットワークは稼動中である場合には、なされた要求
(入力クロック信号によって示されている)が無視され
ることとする。特に、BLOCK信号が低状態である場
合には、ANDゲート5204A−5204Kの全ての
出力信号も低状態である。その条件の結果、デマルチプ
レクサ(demux)5206は全て論理0信号を供給
する(即ち、「無視」条件)。
には、システムがアイドルであることを意味する(即
ち、どのサブネットワークも稼動中ではない)。この条
件においては、ANDゲート5204の出力信号(即
ち、信号RUN)が高状態へ移行すると、その特定の高
信号は、その他のANDゲート5204によって供給さ
れるその他の全ての低信号と共に、デマルチプレクサ
(DEMUX)5206へ供給され、その際に、1ホッ
ト又は0ホットパターンを与え、該パターンは、それも
1ホット又は0ホットであるDEMUX5206の出力
信号を決定する。DEMUX5206は、該プロセスの
スタートのマイクロサイクルを反映すべく形態特定され
ている。DEMUX5206の出力信号は、どのマイク
ロサイクルクロックuCが活性されるべきかを決定し、
そのことは、どのマイクロサイクルが活性化されるかを
決定する。DEMUX5206はメモリセル5207に
よってプログラムされ、そのプログラミングはどのマイ
クロサイクルが各トリガ信号uCと関連するかを決定す
る。
は、夫々、RUN(A)−RUN(K)を受取る。マル
チクロックシーケンサクロック(FPGAチップ上の最
高速のクロック)によってトリガされると、フリップフ
ロップ5205A−5205Nは、夫々、エッジ検知器
5201A−5201Nへフィードバック信号を供給す
る。このコンフィギュレーションにおいては、高信号が
フリップフロップ5205によって出力されると、その
高信号は夫々のエッジ検知器5201をリセットし、従
って1つのエッジの受取りをアクノレッジ即ち認証す
る。
Dゲート5210A−5210N、ANDゲート521
2A−5212Nを包含する論理ゲートは信号BLOC
Kを発生する。1つの好適実施例においては、ANDゲ
ート5212A−5212Nの直列チェーンが単一幅N
ORゲートとして実現されており且つ別のプレチャージ
型論理が使用されている。このような実現例は従来公知
であり(例えば、Weste及びEshraghian
「CMOS VLSI設計の原理:システム展望(Pr
inciples of CMOS VLSI Des
ign: ASystem Perspectiv
e)」、160−164頁、アジソンウェリィ出版社、
1988)、従ってその詳細については割愛する。
は、対応するマイクロサイクルがスケジューリングされ
たネットワークにおけるプロセスの最後のマイクロサイ
クルである場合にのみ、それに対応するANDゲート5
210A−5210Nへ論理0を供給する。例えば、図
50のスケジュールにおいて、マイクロサイクル1,
2,4は最後のマイクロサイクルであり、従ってメモリ
セル5211B,5211C,5211E(明示的には
示していない)が論理0を供給する。メモリセル521
1A−5211N,5204,5207はコンフィギュ
レーションメモリの一部を構成しているが、それらの出
力は図2に示したように時間多重型ではない。フリップ
フロップ5209A−5209Nの状態は現在のマイク
ロサイクルの状態を表わしている。特に、フリップフロ
ップ5209A−5209Nは論理1を保持するもので
はない場合には、マルチクロックシーケンサ5200は
アイドル状態にある(図57の状態5100)。単一の
フリップフロップが論理1を保持している場合には、マ
ルチクロックシーケンサ5200は対応するマイクロサ
イクル内にある。例えば、フリップフロップ5209B
が1を保持している場合にのみ、マルチクロックシーケ
ンサ5200はマイクロサイクル1内にある(図5
0)。フリップフロップ5209A−5209Nのその
他の全ての状態は無効である。
ル状態において、フリップフロップ5209A−520
9Nは低信号を格納し、そのことはANDゲート521
0A−5210Nの出力信号を強制的に低状態とさせ
る。これらの低信号はゲート5212A−5212Nの
出力信号、従って信号BLOCKを強制的に高状態とさ
せる。高BLOCK信号は、最も優先度の高い未定のク
ロックエッジ(存在する場合)がDEMUX5206へ
高信号を供給することを可能とする。どのエッジも未定
でない場合には、(換言すると、サービスされていない
クロックエッジが検知されない場合)、全て0がDEM
UX5206へ供給される。次いで、DEMUX520
6は信号を発生するエッジ(存在する場合)を対応する
プロセスにおける最初のマイクロサイクルへマッピング
する。未定のエッジが存在しない場合には、DEMUX
5206は全てのその出力端上で論理0を出力し、その
際に全てのORゲート5208A−5208Nの出力信
号を強制的に0とさせる。これらの低信号はフリップフ
ロップ5209A−Nへ供給され、マルチクロックシー
ケンサ5200が次のシーケンサクロックにおいてアイ
ドル状態に溜まることを確保する。
には、単一のDEMUX出力信号が高状態であり、対応
するORゲート5208の出力信号を強制的に高状態と
させる。この高信号は、マルチクロックシーケンサ52
00をして次のシーケンサクロックで適宜のマイクロサ
イクルへエンターさせる。
ケンスの最後のマイクロサイクルではないマイクロサイ
クルにある場合には、現在のマイクロサイクルに対応す
るメモリセル5211が高信号を格納する。従って、対
応するANDゲート5210の出力信号は高状態であ
り、BLOCK信号が低状態であることを保証する。低
BLOCK信号は、DEMUX5206の出力信号が全
て低状態であることを保証する。対応するフリップフロ
ップ5209における論理1信号が対応するANDゲー
ト5210を介して次のORゲート5208へ流れ、次
いで次のフリップフロップ5209内へ流れる。このよ
うに、マルチクロックシーケンサ5200は次のシーケ
ンサクロックにおいてシーケンス内の次のマイクロサイ
クルへエンターする。
ケンスの最後のマイクロサイクルであるマイクロサイク
ル内にある場合には、BLOCK信号は高状態であり、
あたかもマルチクロックシーケンサ5200が現在アイ
ドル状態にあるかのように次の状態を決定させる。これ
は、IDLE(アイドル)状態5100を適宜バイパス
することが可能であるという点において、図51によっ
て例示される形態の状態線図よりも改良されたものであ
る。
り、且つ各マイクロサイクルは1つのシーケンササイク
ルの間持続する。フェーズロックループ(PLL)52
14は通常必要とされる。何故ならば、適切なシステム
性能を達成するために、シーケンサクロックはオフチッ
プから実際的に分配されるのには高過ぎる周波数のもの
でなければならないからである。従って、より低い周波
数のクロック信号CINがピン5212を介して供給さ
れ且つPLL5214によって周波数が増加されてシー
ケンサクロックを達成する。PLL5214は又、クロ
ックのオフチップのものとオンチップのものとの間のス
キュー即ち歪を効果的に最小なものとさせる。ある場合
には、トリガ信号はシーケンサクロックに対して同期し
ていることが既知であり(例えば、シーケンサクロック
から分周された信号、別の信号によって特性付けられた
シーケンサクロック、又は何等かのそれらの組合わ
せ)、従ってシンクロナイザ5202A−Kと関連する
本質的な遅延を解消している。同期クロック発生器52
13はこのようなクロックを発生するために設けられて
おり、その際に不必要な同期ステップをバイパスしてい
る。マイクロサイクル期間はシーケンサクロックの期間
を操作することによって変化する。
トワークは、インラプトしているサブネットワークが評
価されている間に、先買され且つ待機状態とされる。イ
ンタラプト中のサブネットワークの稼動が完了すると、
先買されたサブネットワークの中間状態が回復され且つ
評価が継続して行なわれる。更に別の実施例において
は、稼動中のサブネットワークが先買され、その中間状
態が廃棄され、且つ稼動中のサブネットワークが待機状
態とされる。資源が使用可能となると、先買されたサブ
ネットワークの評価が回復される。このアプローチは通
常計算環境において代替的なものではないが、この実施
例は、状態節約の使用可能なレベルの数がサブネットワ
ークの数よりも少ない場合に利点を与える。
「プロセス間通信」メカニズムを必要とする。特に、サ
ブネットワークAからの信号がサブネットワークBにお
けるフリップフロップへ供給される場合に、サブネット
ワークBは、単に、サブネットワークBに対するクロッ
クエッジが発生する場合にサブネットワークAのデータ
空間からの値を読取る。換言すると、サブネットワーク
A及びBは共用メモリを有している。然しながら、複数
個のサブネットワークからの信号が同一の組合わせ論理
へ供給される場合には、各「プロセス」がその組合わせ
論理の出力信号をアップデートすることを可能とするメ
カニズムが必要である。冗長な論理ブロックを形成する
ことによりこのような条件を迂回することが可能である
が(図45を参照して詳細に説明する)、このようなメ
カニズムは、基本的に、複数個のクロックエッジで変化
する出力信号を実現することを必要とする。
300のようなある論理ネットワークは、それらの入力
信号の関数として非同期的に遷移する信号を有してい
る。特に、ピン5311A、ピン5311B、クロック
ピン5314上の信号が互いに非同期的であると仮定す
ると、ANDゲート5312Aの出力信号、即ちノード
5313における信号Iは、入力ピン5311A及び5
311B上に供給される信号が遷移する場合にはいつで
も遷移する。ノードIにおける信号遷移が観察される
と、入力ピン5311A及び5311Bへ供給される信
号は評価をトリガするクロックとして考えねばならな
い。然しながら、フリップフロップ5301が入力ピン
5311A及び5311Bにおける全ての信号遷移をサ
ンプルするのに充分な頻度でクロック動作されない限
り、信号Iは出力ピン5311Cへ到達することはな
い。このコンフィギュレーションにおいて、ANDゲー
ト入力信号のうちの1つが変化する度にANDゲート5
312Aは不必要にシミュレーションされ、その際に不
所望にシミュレーションの複雑性を増加させる。
5400を例示しており、その場合に、ANDゲート5
312Aはフリップフロップ5301を介して再同期さ
れ、且つそれは論理ネットワーク5300と機能的に等
価である(図53)。論理ネットワーク5400におい
て、重要である場合には(即ち、出力信号に影響を与え
ることが可能)、入力信号をサンプルするために冗長な
論理が形成され、その際にシミュレーションを簡単化さ
せる。特にフリップフロップ5410B及び5410C
はフリップフロップ5301を置換する(図53)。従
って、このコンフィギュレーションにおいては、入力ピ
ン5411D及び5411Eは、夫々、フリップフロッ
プ5410B及び5410Cへ信号を供給する。このよ
うに、クロック信号Cを受取ると(クロック5314に
よって供給される)、フリップフロップ5410B及び
5410CはANDゲート5412Bへ信号を供給し、
それは出力ピン5411Fへ信号を供給する。
フリップフロップにおいて破られることのない入力から
出力の経路の場合には、各入力端に対して別個のサブネ
ットワークが必要とされる。サブネットワークの数が法
外もなく大きくなることを防止するために、信号のうち
のいずれか1つの遷移が入力信号によって組合わせによ
り共用される単一のサブネットワークをトリガするよう
に入力信号をグループ化させる。このステップは、典型
的に、該経路がフリップフロップで破られることがない
場合にのみ行なわれる。再度、再同期が行なわれない場
合には、典型的に、各入力端に対して別個のサブネット
ワークが必要とされる。
(即ち、オンチップ)メモリ内に存在するアイドルのサ
ブネットワークが現在ローカルメモリ内に存在すること
のないサブネットワークに対するコンフィギュレーショ
ンメモリとして又はユーザメモリとして使用するために
ローカルメモリを解放するために格納(即ち、オフチッ
プ)メモリへ転送させることが可能である。従って、サ
ブネットワークは要求によりロードさせることが可能で
あり、且つ同時的にオンチップに存在することは必要で
はない。外部メモリからコンフィギュレーションをロー
ディングするためにある応答の時間の犠牲が必要である
が、このコンフィギュレーションにおけるチップの論理
密度は理論的に無制限である。
の方法は、「バイパス」と呼ばれる固定した遅延を持っ
た格納装置によるものである。図10Aを参照すると、
バイパス350及び351が、夫々、上述したマイクロ
レジスタ324及び325を置換している(図3)。バ
イパスは単一ビット装置であって、それは次のコンフィ
ギュレーションまで現在の結果を保存するラッチを有し
ている。単に次のコンフィギュレーションへパスされる
これらの信号はバイパス350及び351内に格納され
る。典型的に、バイパス350及び351は完全なマイ
クロレジスタ324及び325よりもより小型で且つよ
り簡単である。
各バイパス350及び351がシフトレジスタ352を
有している。このように、信号が、例えば、バイパス3
50内に格納される場合には、その信号は1マイクロサ
イクル遅延されるものではなく、その代わりに、多数の
マイクロサイクル遅延される。この遅延は該信号をマイ
クロサイクル毎に経路再決定することを節約し、そのサ
イクルに相互接続資源を節約している。
イクロサイクル毎に異なる信号をシフトレジスタ内へ入
れ、且つレジスタ遅延の後に結果的に得られる値を取出
すことが可能である。スケジューラは同一の遅延を有す
る信号を同一のバイパスへ割当てるに過ぎない。
の利用を最大とするために論理遅延を同一の長さのもの
とさせる。
の択一的なものである。
いるもの。この実施例においては、FPGAは多様なバ
イパス遅延で予め構築されており、その場合に各バイパ
スは固定した遅延を有している。全ての遅延が同じであ
る必要はないので、シフトレジスタ352の長いもの及
び短いものが存在する場合がある。シフトレジスタ長さ
の適切な分布は回路設計における必要とされる最小レジ
スタ格納時間の解析から決定される。
固定されているもの。この実施例においては、バイパス
はどのビットが出力信号であるかを選択する長さレジス
タを有している。スケジューラプログラムは手元にある
設計に対するバイパス長さを選択する。
なもの。この実施例においては、各マイクロサイクルに
おいて、どのビットが出てくるかを選択することが可能
である。スケジューラは、それらのビットが同一のマイ
クロサイクルにおいて必要とされる場合には、同一のバ
イパス内に2つのビットをスケジュールしてはならな
い。
されるもの。
のマイクロサイクルの数よりも長い場合がある。一実施
例においては、2つのバイパスをカスケードさせてより
長い遅延を構築することが可能である。
の幾つかのビットをアーキテクチュアから省略すること
が可能である。減少させたマイクロレジスタは、CLB
がマイクロレジスタビットを有するものではないマイク
ロサイクルに対するバイパスと結合させることが可能で
ある。換言すると、殆どのCLBが全てのマイクロサイ
クルからの出力信号を格納するマイクロレジスタを有し
ており、幾つかのCLBは最初の2,3個のマイクロサ
イクルからの出力信号を保存するためにのみ構築するこ
とが可能である。これらのCLBは他のマイクロサイク
ルにおけるバイパスで次のマイクロサイクルへ信号をパ
スせねばならない。
されており、各ブロック内のCLBは論理エンジンモー
ドにおけるm個のシーケンスのマイクロサイクルのうち
の1つにおいてアクティブ即ち活性状態である。部分的
な結果が1つのブロックから次のブロックへパス即ち通
過される。この場合には、最大論理深さはm×nであ
る。スケジューリング及び区画化によって、論理を非常
に効率的に詰込むことが可能である。何故ならば、nよ
りも深いレベルを有する論理部分のみが別個に区画化さ
せることが必要であるに過ぎず、論理の残部は、尚且
つ、全てのシーケンスのマイクロサイクルにおいて稼動
しているからである。例えば、活性なCLBのアレイ5
500を示す図55を参照すると、CLB5501は特
定のシーケンスのマイクロサイクル期間中に活性である
に過ぎず、一方CLB5502は、全てのシーケンスの
マイクロサイクル期間中において活性状態だからである
(8.2a 同期/非同期クロック動作参照)。
ンフィギュレーションスライスの数よりもより多くのマ
イクロサイクルを可能とするマイクロサイクルシーケン
サを調節することである。この実施例においては、シー
ケンサは、コンフィギュレーションを選択するためにマ
イクロサイクル番号の低次ビットを使用して、論理のレ
ベル当たり1つのマイクロサイクルを介してサイクル動
作すべく設定される。この実施例は論理の深さがFPG
Aにおけるコンフィギュレーション数よりも大きい場合
の経路に対するCLBアレイの部分的区画化に関連して
いる。より長いアドレスカウンタは、チップ内のコンフ
ィギュレーション数の単純な倍数ではなくコンフィギュ
レーションの任意の数FPGAがシーケンス動作するこ
とを可能とする。
ィギュレーションビット 本発明の一実施例によれば、付加的なレジスタがメモリ
アクセスサイクル期間中にメモリへのアクセスを制限す
る。このレジスタは、メモリサイクルによって影響され
ることのないCLBに対するメモリアクセスを選択的に
ターンオフし、その際に各メモリサイクルに対する電力
消費を減少させている。更に、電力の節約に加えて、こ
のレジスタはメモリへのアクセスを選択的にディスエー
ブルさせることによってメモリのサブセットへのアクセ
スを可能とさせる。例えば、図61を参照すると、信号
MCikはレジスタ720に類似した態様でメモリへの
アクセスを制御するメモリセル(不図示)からのもので
ある(図7B)。従って、この信号は、指定されたメモ
リセルが読取のために選択されているか否かを決定す
る。従って、信号MCikがこの実施例において論理
「0」である場合には、CLKb内のメモリセルは読取
られるか書込まれることはなく、その際に電力を節約し
ている。
ョン 本発明によれば、マイクロレジスタ上のセレクタの数
(以前に簡単化のためにマルチプレクサとして言及し
た)がチップ面積を節約するために最小化されている。
一実施例によれば、セレクタに対する2つの要素が存在
しており、即ちマルチプレクサとバッファとである。隣
接するレジスタに関してマルチプレクサを共用すること
によりセレクトのピークの利用を低下させる。図56A
及び56Bはマイクロレジスタ(この例においては8ビ
ットレジスタ)5601及び5602及び関連するセレ
クタ(即ち、3出力マルチプレクサ)5601A及び5
602Aを夫々示している。
1(それはCLB Aから信号を受取る)からマルチプ
レクサセレクタ5602A(それはCLB Bから信号
を受取る)へ付加的な接続5700が設けられている。
このように、CLB Bがコンフィギュレーションにお
けるマルチプレクサの全てを必要とするものではなく且
つCLB Aがエキストラな1つを必要とする場合に
は、CLB Aは共用マルチプレクサを使用することが
可能である。レジスタ5601における全てのビットが
全てのコンフィギュレーションに関して共用されること
は必要ではない。実際に、異なるビットが異なるセレク
タに関して共用されうる。
01A及び5602Aと関連しているバッファ(図4の
出力線上)の幾つかを取除いている。例えば、幾つかの
信号がCLB Aによって次のコンフィギュレーション
において使用される場合には、マルチプレクサ5601
Aは経路5801を使用することによって完全にバイパ
スされる。マルチプレクサ5601Aからの信号がCL
B A内に位置されるべき場合には、該信号はフィード
バック経路5802上に供給される。更に、マルチプレ
クサ5601Aからの信号が隣接するCLB B内に位
置されるべき場合には、該信号は直接接続経路5803
上に供給される。
れにより速度を増加させ且つPLDの相互接続回路にお
ける電力を著しく減少させている。図59はPLD59
00の一部を示しており、それは、ソース(発信元)形
態特定可能論理ブロック(CLB)出力回路5901、
ディスティネーション(宛先)CLB入力回路590
3、相互接続構成体5902を有している。ソースCL
B出力回路5901の出力線5901Aは相互接続構成
体5902を介してディスティネーションCLB入力回
路5903の入力線5903Aへ結合している。
Nチャンネルトランジスタ5908A−5908Nによ
って実現されるRCネットワークである。特に、各トラ
ンジスタ5908A−5908Nは関連する抵抗Qを提
供し、一方各トランジスタ5908A−5908N及び
関連するラインセグメント5910A−5910Nは、
夫々、容量5909A−5909N(コンデンサとして
示してある)を提供する。
ランジスタ5908の容量は、そのチャンネル領域の面
積を増加することによって増加される。従って、いずれ
かのトランジスタ5908の幅を増加させることによっ
て抵抗Qを低下させることは、減少効果を有している。
何故ならば、関連する容量5909も増加するからであ
る。
−5908Nのゲート上の電圧を高く維持しながらこれ
らのトランジスタのソース/ドレイン電圧を制限するこ
とによって、容量5909を増加させることなしに実効
的に抵抗Qを低下させ、その際に相互接続構成体590
2を介しての信号転送速度を改善し且つCLA5900
における電力消費を著しく減少させる。従って、本発明
によれば、ソースCLB出力回路5901は低い電圧ト
リガ点及び2つのNチャンネルトランジスタを有する従
来のインバータ5904を有している。
る論理0信号は、トランジスタ5906のゲートへ供給
され、その際に該トランジスタをターンオフさせる。該
論理0信号はインバータ5904によって反転され、そ
の際にトランジスタ5905へ高信号を供給し、そのト
ランジスタを完全にターンオンさせる。トランジスタ5
905は、そのオン状態において、約2.0Vを相互接
続線5901Aへ転送する。
給された論理1信号はトランジスタ5905をターンオ
フし且つトランジスタ5906をターンオンし、その際
に相互接続線5901A上の電圧を接地へプルする。こ
のように、ソースCLB出力回路5901は、高ゲート
電圧駆動(インバータ5904を介し)を供給し、一方
相互接続構成体5902へ最大2Vを確保する(トラン
ジスタ5905及び5906を介して)。出力線590
1A上の電圧の振れを約3.6Vではなく2Vへ制限す
ることによって、相互接続構成体5902の電力条件を
著しく減少させる(式1を参照して以下に説明する)。
トランジスタ5908A−5908Nのゲートへ夫々供
給される制御信号を反転させる。インバータ5907A
−5907Nが論理低信号を受取るものと仮定すると、
トランジスタ5908A−5908Nがターンオンし、
その際に出力線5901A上の信号を入力線5903A
へ転送させる。
03は、約0.8Vのノイズマージンにおける低パワー
で、低「1」レベル(即ち、2V)入力を取扱うことが
可能であり且つ高「1」レベル(即ち、5V)出力を与
えることが可能でなければならない。典型的に、高スレ
ッシュホールドは1個の0.8VスレッシュホールドV
ccから低い信号によって駆動されるゲートにおける
1.6V範囲において回路5903のPチャンネル装置
上で使用される。回路5903の場合には、入力「1」
レベルはVccから約3V低い。図60に示した一実施
例においては、3つのステージが「1」レベルをVcc
とさせ、各ステージは1V上昇させる。各ステージの生
来のPチャンネル装置のゲート対ソース電圧(Vgs)
は、Pチャンネル装置6001がオフである場合に、
1.6Vのスレッシュホールド電圧よりも0.6V低
く、その際に良好なマージンを与えている。3及び4V
の中間状態供給電圧は当該技術分野において公知のN個
のダイオードで得ることが可能であり、従ってその詳細
な説明は割愛する。
S回路における電力消費は次式と等価である。
あり、V2は相互接続構成体5902の電圧の振れであ
り、且つfは動作周波数である。容量負荷CL、毎秒当
たりの遷移数f、供給電圧V1が適用場面毎に一定であ
ると仮定すると、本発明はPLD5900における電力
消費を著しく減少させる。特に、3.6V信号レベルの
代わりに2Vの信号レベルを与えることによって、本発
明は44%電力消費を減少させる。何故ならば、電圧V
1は変化せず電圧V2が変化するに過ぎないからであ
る。
マルチアクセス メモリアクセスは相互接続体及びLUTアクセスよりも
かなり速いので、メモリをパイプライン動作させること
が可能であり、即ち各メモリサイクル期間中に複数個の
コンフィギュレーションワードを読取ることが可能であ
る。
れていると仮定すると(例えば、図3参照)、論理エン
ジンモードにおけるマイクロサイクルは以下のステップ
を包含している(典型的な関連する時間は各ステップに
続くカッコ内に示されている)。
り且つパイプラインラッチ値をアップデートする(5n
s)。
を伝搬させる(15ns)。
ためにLUTを介して信号を伝搬させる(5ns)。
るまでLUTコンフィギュレーションは必要とされない
(上述した実施例においては、相互接続が有効となった
後15ns)。従って、LUTコンフィギュレーション
は、相互接続コンフィギュレーションの後メモリから読
取ることが可能である。実際に、LUTコンフィギュレ
ーションに対してメモリを2度目にサイクル動作する時
間がある。
いて、全ての従来のコンフィギュレーションメモリセル
の「後ろ側」に8個のビットを置く代わりに、各対の従
来のコンフィギュレーションメモリセル(即ち、1つが
相互接続用及び別のものが論理用)に対して16ビット
(即ち、メモリセルMC1−MC15内に格納されてい
るビット)を供給する。この実施例においては、コンフ
ィギュレーションデータは2つのメモリアクセスで読取
られ、その際により大きな深さに基づいてメモリ効率の
利点を得ている。この実施例においてはビット線203
が共用されているが、各メモリアクセスに対し付加的な
ラッチ204が設けられており、各ラッチ204は別個
のクロック線を有している。従って、ラッチ2041
(それは相互接続体に対して信号を供給する)及びラッ
チ2042 (それはCLB論理に対して信号を供給す
る)は、夫々、コンフィギュレーションクロック1及び
2によって駆動される。爾後のマイクロサイクルがオー
バーラップされる上述したプロセスと異なり、この実施
例においては、FPGAをコンフィギュア即ち形態特定
するために複数回のメモリアクセスが必要とされる。
ンフィギュレーションの後に、FPGA計算が従来の対
応で実行される。典型的に、これらの計算はメモリアク
セスよりも長い時間を必要とする。従って、初期的なコ
ンフィギュレーションデータを読取った後に、コンフィ
ギュレーションメモリはある時間期間の間アイドル状態
となる。
ようにラッチされると、図2を参照すると、論理及び相
互接続が評価されている間にそのコンフィギュレーショ
ンと同一のマイクロサイクルにおけるメモリアイドル時
間内にメモリ動作を「挿入」することが可能であり、そ
の際に効果的にメモリアクセスをパイプライン動作させ
る。ユーザメモリアクセス、コンフィギュレーション、
ユーザ論理及び相互接続のタイミングは以下の表Bに示
してある。
Pは論理相互接続伝搬であり、且つMはメモリアクセス
である。
おいてコンフィギュレーションメモリから読取られる。
時間T1において、コンフィギュレーションはFPGA
における論理及び相互接続を制御するためにラッチされ
(LIP0)、それはREAD(読取)メモリ動作を発
生させることを包含している。メモリアクセス(M0)
は時間T2において行なわれ、データが時間T3におい
てCLB入力信号として与えられる。メモリアクセスの
後に、メモリは再度サイクル動作されて次のマイクロサ
イクルに対するコンフィギュレーション情報を維持す
る。コンフィギュレーションC1はコンフィギュレーシ
ョンC0によるメモリアクセスの結果を使用することは
できないが、コンフィギュレーションC1は次のメモリ
アドレスを発生する。従って、1サイクルの待ち時間期
間の後(コンフィギュレーションC1に対して)、メモ
リはサイクル当たり1個の転送割合でフローを転送す
る。
モリアクセス(M)及びコンフィギュレーションアクセ
ス(C)は同一の時間Tにおいて発生することは不可能
であるが、時間(T)の期間は、通常、論理相互接続伝
搬(LIP)ステップによって決定される。従って、メ
モリ(M)は、コンフィギュレーションの論理が評価さ
れている間に多数回サイクル動作することが可能であ
る。実際に、FPGA計算の期間に依存して、マイクロ
サイクルの期間を増加させることなしに、幾つかのメモ
リサイクル(例えば書込に続く読取)を挿入させること
が可能である。本発明のその他の実施例においては、よ
り短い待ち時間を有するパイプラインスケジュールが提
供される。
て計算される。そのメモリアクセスは、そのアドレスの
計算が完了するまで遅延され、その計算はLIP遅延全
体よりも小さい場合がある。M0が充分に短いか又はT
1が充分に長い場合には、メモリ動作M0の結果が時間
T1内に得られる場合がある。
ーションの後に発生するので、アドレス計算が充分に速
いものと仮定すると、メモリはアドレスが計算されるの
と同一のサイクルにおいてアクセス可能である。このよ
うな高速計算は次のものを含んでいる。
て与えられるアドレス計算(即ち、即値)。
る信号よりも充分前にアドレスレジスタに到着する場合
(即ち、迅速な経路)。後者の計算においては、メモリ
は、アドレスが発生されるFPGAサイクルの後の部分
においてアクセス可能である。一実施例においては、リ
コンフィギュレーション即ち再形態特定は、メモリ動作
から結果が戻されるまで遅延される。遅延の量は、最悪
の場合のアドレス発生遅延+メモリアクセス遅延から決
定することが可能である。
AMセルを有している。その他の実施例においては、付
加的なメモリスライスはROMセルを有しており、それ
はローカルバス203上のサイト即ち箇所を占有し(図
2)、RAMセルと同一のラッチ204を使用し、且つ
それ自身の制御線205を有している。ROMセルはR
AMセルよりも著しく小さいが柔軟性はより低い。従っ
て、RAMセルと比較してROMセルを使用することの
柔軟性の減少は、ROMセルに関連する低コストとバラ
ンスされる。これらの実施例においては、ROMセル
は、製品をエンドユーザがテストすることを助けるため
の自己テスト等の機能のため、又は例えば直接メモリア
クセス又は特定バスインターフェース(例えば、PC
I)等のある固定した機能を提供するために使用され
る。
へジャンプすることによってこれらの機能を喚起させ
る。自己テスト機能能力は、固定機能能力よりも容易に
提供される。何故ならば、自己テストは、典型的に、ユ
ーザのコンフィギュレーションとは独立的だからであ
る。対照的に、固定機能能力は、より制限的なものであ
る。何故ならば、コールを行なうエンドユーザスライス
とROMスライスとの間でパラメータをパスするための
構成を設けねばならないからである。パラメータのパス
はユーザメモリとして設定されたRAMスライスの固定
したサブセットを介して行なうことが可能である。パス
されたパラメータ及びメモリ内のパラメータ区域でさえ
も、例えばスタートアドレス、リターンプレーンアドレ
ス等の機能特定性である。
て異なっている。本発明によれば、新たな製品はROM
技術を定義するマスク層を単に変更するだけで開発され
る。一方、ROMは例えばアンチヒューズ等の一度だけ
プログラム可能な装置で実現することが可能である。一
実施例においては、混合ROM及びRAM装置が2つの
既存の業界標準部品、即ちRAMをベースとしたFPG
Aとそのハードワイヤード型等価物の間のハイブリッド
部品として使用される(例えば、ザイリンクスのHar
dWire(商標)装置)。このように顧客はROM密
度の単価の利点を得るために顧客に特定的なROMマス
クの固定コストを支払うが、尚且つ、可変のコンフィギ
ュレーション及びユーザメモリのために使用可能な幾つ
かのスライスを有している。
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
トを示した概略図。
トスライスを示した概略図。
プレクサ、マイクロレジスタの夫々供給される本発明の
コンフィギュレーション選択信号、読取選択信号、書込
選択信号を示した概略図。
詳細に示した概略ブロック図。
図。
図。
バスが真及び相補信号をビット組へ担持する実施例を示
した概略図。
るレジスタコンフィギュレーションを示した概略図。
略図。
ンフィギュレーションを示した概略図。
有する格納装置を具備するCLBを示した概略図。
った格納装置を具備する別のCLBを示した概略図。
図。
を示した概略図。
を示した概略図。
グを示した概略図。
グを示した概略図。
レーションビットを示した概略図。
ンアクセスタイミングを示した概略図。
概略図。
内部サイクルを発生するタイミング回路を示した概略
図。
シーケンサを示した概略図。
例示的なタイミングシーケンスを示した概略図。
図。
した概略図。
ードを示した概略図。
例を示した概略図。
のマイクロサイクル内に2つのLUTを直列的に適合さ
せるためにマイクロレジスタバイパスを使用して単一レ
ベルへ合体させる本発明の一実施例に基づく圧縮方法を
示した概略図。
素との間の2つの必要なスケジューリング関係を示した
概略図。
た概略図。
ライブラリィ要素及びそれらの関係を示した概略図。
示した概略図。
た概略図。
配置ルックアップテーブルを示した概略図。
配置ルックアップテーブルを示した概略図。
ルシーケンス動作を示した概略図。
ルシーケンス動作を示した概略図。
ュレーションを持った全てのCLBを示した概略図。
ュレーションを有することのない幾つかのCLBを示し
た概略図。
た概略図。
概略図。
クルを有するCLBを示した概略図。
現され且つその他の全てのクロックがマイクロサイクル
レジスタイネーブル信号で実現されている場合の適宜の
波形を与える状態マシンを示した概略図。
信号及びマスタクロック信号を示したタイミング線図。
する流れを示したフローチャート図。
クを示した概略図。
ションに露呈される回路を示した概略図。
サブネットワークへ区画化する状態を示した概略図。
略図。
略図。
れるスケジューリング拘束条件を示した概略図。
れるスケジュ−リング拘束条件を示した概略図。
図。
示した概略図。
た概略図。
示した概略図。
LDを示した概略図。
ルチプレクサを具備するCLBを示した概略図。
ルチプレクサを具備する別のCLBを示した概略図。
示した概略図。
ク経路を具備する2つのCLBを示した概略図。
概略図。
タを示した概略図。
ル期間中にメモリへのアクセスを制限する本発明の一実
施例を示した概略図。
モリアクセスで読取られる本発明の一実施例を示した概
略図。
ンフィギュレーションメモリへ供給されるコンフィギュ
レーション選択信号及びマイクロレジスタへ供給される
書込選択信号を示した概略図。
た概略図。
てラッチ数を減少させる出力マルチプレクサの更に別の
実施例を示した概略図。
力信号を示した表の説明図。
に設けられる回路に対する真理値表を示した説明図。
対するタイミング線図。
実現例を示した概略図。
を例示するタイミング線図。
を例示する回路を示した概略図。
Claims (26)
- 【請求項1】 プログラム可能論理装置において、 少なくとも1個の形態特定可能論理ブロックが設けられ
ており、各形態特定可能論理ブロックは組合わせ要素と
順序論理要素とを有しており、 前記少なくとも1個の形態特定可能論理ブロックを形態
特定させるための複数個のプログラム可能論理要素が設
けられており、少なくとも1個のプログラム可能論理要
素は、前記組合わせ要素の形態を特定させるための複数
個のメモリセルを有しており、且つ少なくとも1個のプ
ログラム可能論理要素は前記順序論理要素の形態を特定
させるための複数個のメモリセルを有している、ことを
特徴とするプログラム可能論理装置。 - 【請求項2】 請求項1において、更に、1個の形態特
定可能論理ブロックの複数個の中間状態を格納するため
の格納装置が設けられていることを特徴とするプログラ
ム可能論理装置。 - 【請求項3】 請求項2において、各形態特定可能論理
ブロックが、更に、前記中間状態へアクセスするための
複数個のセレクタを有していることを特徴とするプログ
ラム可能論理装置。 - 【請求項4】 請求項2において、各形態特定可能論理
ブロックが、更に、少なくとも1個の形態特定可能論理
ブロックにおける値へアクセスするための複数個のセレ
クタを有していることを特徴とするプログラム可能論理
装置。 - 【請求項5】 請求項4において、前記値が順序論理要
素の出力信号であることを特徴とするプログラム可能論
理装置。 - 【請求項6】 請求項4において、前記値が組合わせ要
素の出力信号であることを特徴とするプログラム可能論
理装置。 - 【請求項7】 請求項2において、各形態特定可能論理
ブロックが、更に、前記中間状態へアクセスするため又
は少なくとも1個の形態特定可能論理ブロックにおける
値へアクセスするための複数個のセレクタを有している
ことを特徴とするプログラム可能論理装置。 - 【請求項8】 請求項7において、前記複数個のセレク
タが、更に、少なくとも1個の形態特定可能論理ブロッ
ク内の値へアクセスすることを特徴とするプログラム可
能論理装置。 - 【請求項9】 請求項2において、前記格納装置が第一
トリガ信号によって制御されることを特徴とするプログ
ラム可能論理装置。 - 【請求項10】 請求項3において、前記セレクタが複
数個のトリガ信号によって制御されることを特徴とする
プログラム可能論理装置。 - 【請求項11】 請求項2において、更に、複数個のラ
ッチが設けられており、前記格納装置の各ビットが関連
するラッチへ供給され、前記複数個のラッチの出力端子
がマルチプレクサの入力端子へ結合されており、前記マ
ルチプレクサは前記複数個のプログラム可能論理要素に
よって制御されることを特徴とするプログラム可能論理
装置。 - 【請求項12】 請求項11において、前記複数個のラ
ッチが第一トリガ信号によってクロック動作されること
を特徴とするプログラム可能論理装置。 - 【請求項13】 請求項12において、前記格納装置が
前記第一トリガ信号よりも精度の低い複数個のトリガ信
号によって制御されることを特徴とするプログラム可能
論理装置。 - 【請求項14】 請求項12において、更に、バイパス
ラッチが前記形態特定可能論理ブロックと前記マルチプ
レクサとの間に結合されており、前記バイパスラッチが
前記複数個のラッチと同一のトリガによって制御される
ことを特徴とするプログラム可能論理装置。 - 【請求項15】 請求項4において、各セレクタが前記
形態特定可能論理ブロック及び前記格納装置から信号を
受取るための第一マルチプレクサを有していることを特
徴とするプログラム可能論理装置。 - 【請求項16】 請求項2において、更に、前記順序論
理要素又は前記組合わせ要素から前記格納装置へ信号を
選択的に供給するために少なくとも1個の形態特定可能
論理ブロック内にマルチプレクサが設けられていること
を特徴とするプログラム可能論理装置。 - 【請求項17】 請求項1において、更に、前記プログ
ラム可能論理要素のうちの1つの出力信号として前記複
数個のメモリセルのうちの1つの値を供給するラッチが
設けられていることを特徴とするプログラム可能論理装
置。 - 【請求項18】 請求項2において、各形態特定可能論
理ブロックが、更に、前記格納装置からの信号を受取る
ための出力マルチプレクサを有していることを特徴とす
るプログラム可能論理装置。 - 【請求項19】 請求項2において、前記格納装置が前
記形態特定可能論理ブロックのうちの少なくとも1つの
入力端子へ結合されていることを特徴とするプログラム
可能論理装置。 - 【請求項20】 請求項1において、更に、前記複数個
のメモリセルへアクセスするための複数個のラインが設
けられていることを特徴とするプログラム可能論理装
置。 - 【請求項21】 請求項20において、更に、1つの形
態と関連した前記複数個のプログラム可能論理要素のう
ちの所定の組を選択するための手段が設けられているこ
とを特徴とするプログラム可能論理装置。 - 【請求項22】 請求項20において、更に、1個の形
態特定可能論理ブロック内の1つの形態と関連した前記
複数個のプログラム可能論理要素のうちの所定の組を選
択するレジスタが設けられていることを特徴とするプロ
グラム可能論理装置。 - 【請求項23】 プログラム可能論理装置において、 組合わせ要素及び順序論理要素を含む形態特定可能論理
ブロックが設けられており、 入力/出力ブロックが設けられており、 前記形態特定可能論理ブロック及び前記入力/出力ブロ
ックを相互接続する相互接続構成体が設けられており、 前記形態特定可能論理ブロック及び前記相互接続構成体
の形態を特定するための複数個のプログラム可能論理要
素が設けられており、少なくとも1個のプログラム可能
論理要素が複数個のメモリセルを有しており、 前記入力/出力ブロックの複数個の中間状態を格納する
ための格納装置が設けられている、ことを特徴とするプ
ログラム可能論理装置。 - 【請求項24】 プログラム可能論理装置において、 少なくとも1個の形態特定可能要素が設けられており、 前記少なくとも1個の形態特定可能要素を相互接続させ
るための相互接続構成体が設けられており、 前記少なくとも1個の形態特定可能要素の形態を特定す
るための複数個のプログラム可能論理要素が設けられて
おり、少なくとも1個のプログラム可能論理要素は、前
記少なくとも1個の形態特定可能要素の形態を特定する
ための少なくとも1個のROMセルを有している、こと
を特徴とするプログラム可能論理装置。 - 【請求項25】 プログラム可能論理装置において、 少なくとも1個の形態特定可能要素が設けられており、 前記少なくとも1個の形態特定可能要素を相互接続する
ための相互接続構成体が設けられており、 前記少なくとも1個の形態特定可能要素の形態を特定す
るための複数個のプログラム可能論理要素が設けられて
おり、少なくとも1個のプログラム可能論理要素は前記
少なくとも1個の形態特定可能要素の形態を特定するた
めの複数個のメモリセルを有しており、 前記プログラム可能論理要素のうちの1つの出力信号と
して前記複数個のメモリセルのうちの1つの値を供給す
るラッチが設けられている、ことを特徴とするプログラ
ム可能論理装置。 - 【請求項26】 プログラム可能論理装置において、 少なくとも1個の形態特定可能要素が設けられており、 前記少なくとも1個の形態特定可能要素を相互接続する
ための相互接続構成体が設けられており、 前記少なくとも1個の形態特定可能要素の形態を特定す
るための複数個のプログラム可能論理要素が設けられて
おり、少なくとも1個のプログラム可能論理要素は前記
少なくとも1個の形態特定可能要素の形態を特定するた
めの複数個のメモリセルを有しており、第一プログラム
可能論理要素内の前記複数個のメモリセルの数は第二プ
ログラム可能論理要素内の前記複数個のメモリセルの数
と異なっている、ことを特徴とするプログラム可能論理
装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/516,186 US5646545A (en) | 1995-08-18 | 1995-08-18 | Time multiplexed programmable logic device |
US08/516186 | 1995-08-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09181599A true JPH09181599A (ja) | 1997-07-11 |
JP3729943B2 JP3729943B2 (ja) | 2005-12-21 |
Family
ID=24054509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21752796A Expired - Lifetime JP3729943B2 (ja) | 1995-08-18 | 1996-08-19 | 時間多重書込可能論理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5646545A (ja) |
EP (1) | EP0759662A3 (ja) |
JP (1) | JP3729943B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006129722A1 (ja) * | 2005-05-31 | 2006-12-07 | Ipflex Inc. | 再構成可能な装置 |
JP2008539485A (ja) * | 2005-04-28 | 2008-11-13 | ザ ユニバーシティ コート オブ ザ ユニバーシティ オブ エディンバラ | 再構成可能命令セル・アレイ |
JP2008289151A (ja) * | 2007-05-21 | 2008-11-27 | Altera Corp | 改良された論理セル機能性の複合論理ブロックを有するプログラマブルロジックデバイス |
US7586326B2 (en) | 2007-08-17 | 2009-09-08 | Fujitsu Limited | Integrated circuit apparatus |
JP2013013077A (ja) * | 2011-06-27 | 2013-01-17 | Samsung Electronics Co Ltd | 論理装置及びそれを含む半導体パッケージ |
Families Citing this family (247)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556044B2 (en) | 2001-09-18 | 2003-04-29 | Altera Corporation | Programmable logic device including multipliers and configurations thereof to reduce resource utilization |
US5701441A (en) * | 1995-08-18 | 1997-12-23 | Xilinx, Inc. | Computer-implemented method of optimizing a design in a time multiplexed programmable logic device |
US5784313A (en) | 1995-08-18 | 1998-07-21 | Xilinx, Inc. | Programmable logic device including configuration data or user data memory slices |
US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
US5787007A (en) * | 1996-01-30 | 1998-07-28 | Xilinx, Inc. | Structure and method for loading RAM data within a programmable logic device |
US5852795A (en) * | 1996-11-22 | 1998-12-22 | New York Gas Group | Apparatus for controlling a multiplicity of compressors |
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 |
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 |
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 |
US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
US6150837A (en) | 1997-02-28 | 2000-11-21 | Actel Corporation | Enhanced field programmable gate array |
US6047115A (en) * | 1997-05-29 | 2000-04-04 | Xilinx, Inc. | Method for configuring FPGA memory planes for virtual hardware computation |
US6421817B1 (en) * | 1997-05-29 | 2002-07-16 | Xilinx, Inc. | System and method of computation in a programmable logic device using virtual instructions |
US8686549B2 (en) | 2001-09-03 | 2014-04-01 | Martin Vorbach | Reconfigurable elements |
US5986467A (en) * | 1997-10-31 | 1999-11-16 | Xilinx, Inc. | Time-multiplexed programmable logic devices |
DE19861088A1 (de) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Verfahren zur Reparatur von integrierten Schaltkreisen |
US6034538A (en) * | 1998-01-21 | 2000-03-07 | Lucent Technologies Inc. | Virtual logic system for reconfigurable hardware |
US6011740A (en) * | 1998-03-04 | 2000-01-04 | Xilinx, Inc. | Structure and method for providing additional configuration memories on an FPGA |
US6292907B1 (en) * | 1998-07-29 | 2001-09-18 | Hewlett-Packard Company | State machine bit group selection apparatus for debugging a digital system |
EP1138001B1 (en) | 1998-11-20 | 2003-08-27 | Altera Corporation | Reconfigurable programmable logic device computer system |
US6292916B1 (en) | 1998-12-10 | 2001-09-18 | Lucent Technologies Inc. | Parallel backtracing for satisfiability on reconfigurable hardware |
EP1017059B1 (en) * | 1998-12-30 | 2007-07-18 | STMicroelectronics S.r.l. | Method for reading a memory, particularly a non-volatile memory |
US6107821A (en) * | 1999-02-08 | 2000-08-22 | Xilinx, Inc. | On-chip logic analysis and method for using the same |
US6407576B1 (en) * | 1999-03-04 | 2002-06-18 | Altera Corporation | Interconnection and input/output resources for programmable logic integrated circuit devices |
US6088784A (en) * | 1999-03-30 | 2000-07-11 | Sandcraft, Inc. | Processor with multiple execution units and local and global register bypasses |
US6442732B1 (en) | 1999-04-21 | 2002-08-27 | Lucent Technologies, Inc. | Virtual logic system for solving satisfiability problems using reconfigurable hardware |
AU5805300A (en) | 1999-06-10 | 2001-01-02 | Pact Informationstechnologie Gmbh | Sequence partitioning in cell structures |
JP3520810B2 (ja) | 1999-07-02 | 2004-04-19 | 日本電気株式会社 | バックアップ機能を有するデータ保持回路 |
GB2352548B (en) | 1999-07-26 | 2001-06-06 | Sun Microsystems Inc | Method and apparatus for executing standard functions in a computer system |
US6618698B1 (en) | 1999-08-12 | 2003-09-09 | Quickturn Design Systems, Inc. | Clustered processors in an emulation engine |
US6255849B1 (en) | 2000-02-04 | 2001-07-03 | Xilinx, Inc. | On-chip self-modification for PLDs |
US6496971B1 (en) | 2000-02-07 | 2002-12-17 | Xilinx, Inc. | Supporting multiple FPGA configuration modes using dedicated on-chip processor |
US6438737B1 (en) | 2000-02-15 | 2002-08-20 | Intel Corporation | Reconfigurable logic for a computer |
US6694491B1 (en) | 2000-02-25 | 2004-02-17 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
US6769109B2 (en) | 2000-02-25 | 2004-07-27 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
EP1342158B1 (de) | 2000-06-13 | 2010-08-04 | Richter, Thomas | Pipeline ct-protokolle und -kommunikation |
US7343594B1 (en) | 2000-08-07 | 2008-03-11 | Altera Corporation | Software-to-hardware compiler with symbol set inference analysis |
AU2001283549A1 (en) | 2000-08-07 | 2002-02-18 | Altera Corporation | Software-to-hardware compiler |
US7055125B2 (en) * | 2000-09-08 | 2006-05-30 | Lightspeed Semiconductor Corp. | Depopulated programmable logic array |
US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
AU2002220600A1 (en) * | 2000-10-06 | 2002-04-15 | Pact Informationstechnologie Gmbh | Cell system with segmented intermediate cell structure |
US7187673B2 (en) * | 2000-12-18 | 2007-03-06 | Koninklijke Philips Electronics N.V. | Technique for creating a machine to route non-packetized digital signals using distributed RAM |
US7844796B2 (en) | 2001-03-05 | 2010-11-30 | Martin Vorbach | Data processing device and method |
US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
US7581076B2 (en) * | 2001-03-05 | 2009-08-25 | Pact Xpp Technologies Ag | Methods and devices for treating and/or processing data |
WO2005045692A2 (en) | 2003-08-28 | 2005-05-19 | Pact Xpp Technologies Ag | Data processing device and method |
US7249242B2 (en) | 2002-10-28 | 2007-07-24 | Nvidia Corporation | Input pipeline registers for a node in an adaptive computing engine |
US7325123B2 (en) * | 2001-03-22 | 2008-01-29 | Qst Holdings, Llc | Hierarchical interconnect for configuring separate interconnects for each group of fixed and diverse computational elements |
US6836839B2 (en) | 2001-03-22 | 2004-12-28 | Quicksilver Technology, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US7653710B2 (en) | 2002-06-25 | 2010-01-26 | Qst Holdings, Llc. | Hardware task manager |
US7752419B1 (en) | 2001-03-22 | 2010-07-06 | Qst Holdings, Llc | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture |
US7962716B2 (en) | 2001-03-22 | 2011-06-14 | Qst Holdings, Inc. | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US6526559B2 (en) | 2001-04-13 | 2003-02-25 | Interface & Control Systems, Inc. | Method for creating circuit redundancy in programmable logic devices |
US6577678B2 (en) | 2001-05-08 | 2003-06-10 | Quicksilver Technology | Method and system for reconfigurable channel coding |
EP1402382B1 (de) | 2001-06-20 | 2010-08-18 | Richter, Thomas | Verfahren zur bearbeitung von daten |
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 |
US7046635B2 (en) | 2001-11-28 | 2006-05-16 | Quicksilver Technology, Inc. | System for authorizing functionality in adaptable hardware devices |
US8412915B2 (en) | 2001-11-30 | 2013-04-02 | Altera Corporation | Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements |
US6986021B2 (en) | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US7215701B2 (en) | 2001-12-12 | 2007-05-08 | Sharad Sambhwani | Low I/O bandwidth method and system for implementing detection and identification of scrambling codes |
JP3540796B2 (ja) * | 2001-12-28 | 2004-07-07 | 東京エレクトロンデバイス株式会社 | 演算システム |
US7403981B2 (en) | 2002-01-04 | 2008-07-22 | Quicksilver Technology, Inc. | Apparatus and method for adaptive multimedia reception and transmission in communication environments |
US8281108B2 (en) | 2002-01-19 | 2012-10-02 | Martin Vorbach | Reconfigurable general purpose processor having time restricted configurations |
ATE402446T1 (de) | 2002-02-18 | 2008-08-15 | Pact Xpp Technologies Ag | Bussysteme und rekonfigurationsverfahren |
US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
US7328414B1 (en) | 2003-05-13 | 2008-02-05 | Qst Holdings, Llc | Method and system for creating and programming an adaptive computing engine |
US7660984B1 (en) | 2003-05-13 | 2010-02-09 | Quicksilver Technology | Method and system for achieving individualized protected space in an operating system |
US20040025004A1 (en) * | 2002-08-02 | 2004-02-05 | Gorday Robert Mark | Reconfigurable logic signal processor (RLSP) and method of configuring same |
WO2004021176A2 (de) | 2002-08-07 | 2004-03-11 | Pact Xpp Technologies Ag | Verfahren und vorrichtung zur datenverarbeitung |
US7657861B2 (en) | 2002-08-07 | 2010-02-02 | Pact Xpp Technologies Ag | Method and device for processing data |
US8108656B2 (en) | 2002-08-29 | 2012-01-31 | Qst Holdings, Llc | Task definition for specifying resource requirements |
AU2003289844A1 (en) | 2002-09-06 | 2004-05-13 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
US7502915B2 (en) * | 2002-09-30 | 2009-03-10 | Nvidia Corporation | System and method using embedded microprocessor as a node in an adaptable computing machine |
US7937591B1 (en) | 2002-10-25 | 2011-05-03 | Qst Holdings, Llc | Method and system for providing a device which can be adapted on an ongoing basis |
US8276135B2 (en) | 2002-11-07 | 2012-09-25 | Qst Holdings Llc | Profiling of software and circuit designs utilizing data operation analyses |
US7225301B2 (en) | 2002-11-22 | 2007-05-29 | Quicksilver Technologies | External memory controller node |
US8296764B2 (en) | 2003-08-14 | 2012-10-23 | Nvidia Corporation | Internal synchronization control for adaptive integrated circuitry |
US7174432B2 (en) | 2003-08-19 | 2007-02-06 | Nvidia Corporation | Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture |
US7099227B1 (en) | 2004-01-16 | 2006-08-29 | Xilinx, Inc. | PLD hardwire programming with multiple functional modes |
US7109752B1 (en) * | 2004-02-14 | 2006-09-19 | Herman Schmit | Configurable circuits, IC's, and systems |
US7193440B1 (en) * | 2004-02-14 | 2007-03-20 | Herman Schmit | Configurable circuits, IC's, and systems |
US7126381B1 (en) | 2004-02-14 | 2006-10-24 | Herman Schmit | VPA interconnect circuit |
US7425841B2 (en) * | 2004-02-14 | 2008-09-16 | Tabula Inc. | Configurable circuits, IC's, and systems |
US7167025B1 (en) * | 2004-02-14 | 2007-01-23 | Herman Schmit | Non-sequentially configurable IC |
US7622951B2 (en) * | 2004-02-14 | 2009-11-24 | Tabula, Inc. | Via programmable gate array with offset direct connections |
US7284222B1 (en) * | 2004-06-30 | 2007-10-16 | Tabula, Inc. | Method and apparatus for identifying connections between configurable nodes in a configurable integrated circuit |
US7084664B1 (en) | 2004-06-14 | 2006-08-01 | Alter Corporation | Integrated circuits with reduced interconnect overhead |
US7282950B1 (en) * | 2004-11-08 | 2007-10-16 | Tabula, Inc. | Configurable IC's with logic resources with offset connections |
US7193438B1 (en) * | 2004-06-30 | 2007-03-20 | Andre Rohe | Configurable integrated circuit with offset connection |
US7449915B2 (en) | 2004-06-30 | 2008-11-11 | Tabula Inc. | VPA logic circuits |
US7439766B2 (en) * | 2004-06-30 | 2008-10-21 | Tabula, Inc. | Configurable logic circuits with commutative properties |
US7408382B2 (en) * | 2004-06-30 | 2008-08-05 | Tabula, Inc. | Configurable circuits, IC's, and systems |
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 |
US7530044B2 (en) * | 2004-11-04 | 2009-05-05 | Tabula, Inc. | Method for manufacturing a programmable system in package |
US7301242B2 (en) * | 2004-11-04 | 2007-11-27 | Tabula, Inc. | Programmable system in package |
US7242216B1 (en) * | 2004-11-08 | 2007-07-10 | Herman Schmit | Embedding memory between tile arrangement of a configurable IC |
US7295037B2 (en) * | 2004-11-08 | 2007-11-13 | Tabula, Inc. | Configurable IC with routing circuits with offset connections |
US7268586B1 (en) * | 2004-11-08 | 2007-09-11 | Tabula, Inc. | Method and apparatus for accessing stored data in a reconfigurable IC |
US7743085B2 (en) * | 2004-11-08 | 2010-06-22 | Tabula, Inc. | Configurable IC with large carry chains |
US7224181B1 (en) * | 2004-11-08 | 2007-05-29 | Herman Schmit | Clock distribution in a configurable 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 |
US7573296B2 (en) * | 2004-11-08 | 2009-08-11 | Tabula Inc. | Configurable IC with configurable routing resources that have asymmetric input and/or outputs |
US7276933B1 (en) * | 2004-11-08 | 2007-10-02 | Tabula, Inc. | Reconfigurable IC that has sections running at different looperness |
US20070244958A1 (en) * | 2004-11-08 | 2007-10-18 | Jason Redgrave | Configurable IC's with carry bypass circuitry |
US7317331B2 (en) | 2004-11-08 | 2008-01-08 | Tabula, Inc. | Reconfigurable IC that has sections running at different reconfiguration rates |
US7259587B1 (en) | 2004-11-08 | 2007-08-21 | Tabula, Inc. | Configurable IC's with configurable logic resources that have asymetric inputs and/or outputs |
US7342415B2 (en) * | 2004-11-08 | 2008-03-11 | Tabula, Inc. | Configurable IC with interconnect circuits that also perform storage operations |
US7301368B2 (en) * | 2005-03-15 | 2007-11-27 | Tabula, Inc. | Embedding memory within tile arrangement of a configurable IC |
US7330050B2 (en) | 2004-11-08 | 2008-02-12 | Tabula, Inc. | Storage elements for a configurable IC and method and apparatus for accessing data stored in the storage elements |
US7236009B1 (en) | 2004-12-01 | 2007-06-26 | Andre Rohe | Operational time extension |
US7428721B2 (en) * | 2004-12-01 | 2008-09-23 | Tabula, Inc. | Operational cycle assignment in a configurable IC |
US7496879B2 (en) * | 2004-12-01 | 2009-02-24 | Tabula, Inc. | Concurrent optimization of physical design and operational cycle assignment |
US7224182B1 (en) * | 2005-03-15 | 2007-05-29 | Brad Hutchings | Hybrid configurable circuit for a configurable IC |
US8201124B1 (en) | 2005-03-15 | 2012-06-12 | Tabula, Inc. | System in package and method of creating system in package |
US7298169B2 (en) * | 2005-03-15 | 2007-11-20 | Tabula, Inc | Hybrid logic/interconnect circuit in a configurable IC |
US7825684B2 (en) * | 2005-03-15 | 2010-11-02 | Tabula, Inc. | Variable width management for a memory of a configurable IC |
US7530033B2 (en) * | 2005-03-15 | 2009-05-05 | Tabula, Inc. | Method and apparatus for decomposing functions 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 |
US7272031B1 (en) * | 2005-03-15 | 2007-09-18 | Tabula, Inc. | Method and apparatus for reduced power cell |
US20070244959A1 (en) * | 2005-03-15 | 2007-10-18 | Steven Teig | Configurable IC's with dual carry chains |
US7230869B1 (en) * | 2005-03-15 | 2007-06-12 | Jason Redgrave | Method and apparatus for accessing contents of memory cells |
US7492186B2 (en) * | 2005-07-15 | 2009-02-17 | Tabula, Inc. | Runtime loading of configuration data in a configurable IC |
US7375550B1 (en) * | 2005-07-15 | 2008-05-20 | Tabula, Inc. | Configurable IC with packet switch configuration network |
US7212448B1 (en) | 2005-07-19 | 2007-05-01 | Xilinx, Inc. | Method and apparatus for multiple context and high reliability operation of programmable logic devices |
US7266020B1 (en) | 2005-07-19 | 2007-09-04 | Xilinx, Inc. | Method and apparatus for address and data line usage in a multiple context programmable logic device |
US7250786B1 (en) | 2005-07-19 | 2007-07-31 | Xilinx, Inc. | Method and apparatus for modular redundancy with alternative mode of operation |
US7746785B2 (en) * | 2005-08-22 | 2010-06-29 | Broadcom Corporation | Time multiplexing logic in physical design domain for multiple instantiation |
US8620980B1 (en) | 2005-09-27 | 2013-12-31 | Altera Corporation | Programmable device with specialized multiplier blocks |
US7236000B1 (en) | 2005-10-18 | 2007-06-26 | Xilinx, Inc. | Method and apparatus for error mitigation of programmable logic device configuration memory |
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 |
US7818361B1 (en) | 2005-11-07 | 2010-10-19 | Tabula, Inc. | Method and apparatus for performing two's complement multiplication |
US7765249B1 (en) | 2005-11-07 | 2010-07-27 | Tabula, Inc. | Use of hybrid interconnect/logic circuits for multiplication |
US7262633B1 (en) | 2005-11-11 | 2007-08-28 | Tabula, Inc. | Via programmable gate array with offset bit lines |
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 |
JP2009524134A (ja) | 2006-01-18 | 2009-06-25 | ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト | ハードウェア定義方法 |
US8266199B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US8301681B1 (en) | 2006-02-09 | 2012-10-30 | Altera Corporation | Specialized processing block for programmable logic device |
US8266198B2 (en) | 2006-02-09 | 2012-09-11 | Altera Corporation | Specialized processing block for programmable logic device |
US8041759B1 (en) | 2006-02-09 | 2011-10-18 | Altera Corporation | Specialized processing block for programmable logic device |
US7797497B1 (en) | 2006-03-08 | 2010-09-14 | Tabula, Inc. | System and method for providing more logical memory ports than physical memory ports |
US7518400B1 (en) | 2006-03-08 | 2009-04-14 | Tabula, Inc. | Barrel shifter implemented on a configurable integrated circuit |
US7694083B1 (en) | 2006-03-08 | 2010-04-06 | Tabula, Inc. | System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture |
US7504858B1 (en) | 2006-03-08 | 2009-03-17 | Tabula, Inc. | Configurable integrated circuit with parallel non-neighboring offset connections |
US7609085B1 (en) | 2006-03-08 | 2009-10-27 | Tabula, Inc. | Configurable integrated circuit with a 4-to-1 multiplexer |
US7669097B1 (en) | 2006-03-27 | 2010-02-23 | Tabula, Inc. | Configurable IC with error detection and correction circuitry |
US7529992B1 (en) | 2006-03-27 | 2009-05-05 | Tabula, Inc. | Configurable integrated circuit with error correcting circuitry |
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 |
US8386553B1 (en) | 2006-12-05 | 2013-02-26 | Altera Corporation | Large multiplier for programmable logic device |
US7930336B2 (en) | 2006-12-05 | 2011-04-19 | Altera Corporation | Large multiplier for programmable logic device |
US7587697B1 (en) | 2006-12-12 | 2009-09-08 | Tabula, Inc. | System and method of mapping memory blocks in a configurable integrated circuit |
US7930666B1 (en) | 2006-12-12 | 2011-04-19 | Tabula, Inc. | System and method of providing a memory hierarchy |
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 |
EP2140548A4 (en) | 2007-03-20 | 2010-06-09 | Tabula Inc | CONFIGURABLE IC WITH A COUPLING AREA WITH MEMORY ELEMENTS |
US8112468B1 (en) | 2007-03-22 | 2012-02-07 | Tabula, Inc. | Method and apparatus for performing an operation with a plurality of sub-operations in a configurable IC |
US7827433B1 (en) | 2007-05-16 | 2010-11-02 | Altera Corporation | Time-multiplexed routing for reducing pipelining registers |
US7579867B2 (en) * | 2007-06-27 | 2009-08-25 | Tabula Inc. | Restructuring data from a trace buffer of a configurable IC |
US8412990B2 (en) * | 2007-06-27 | 2013-04-02 | Tabula, Inc. | Dynamically tracking data values in a configurable IC |
US7652498B2 (en) | 2007-06-27 | 2010-01-26 | Tabula, Inc. | Integrated circuit with delay selecting input selection circuitry |
US7501855B2 (en) | 2007-06-27 | 2009-03-10 | Tabula, Inc | Transport network for a configurable IC |
US8069425B2 (en) * | 2007-06-27 | 2011-11-29 | Tabula, Inc. | Translating a user design in a configurable IC for debugging the user design |
US7595655B2 (en) * | 2007-06-27 | 2009-09-29 | Tabula, Inc. | Retrieving data from a configurable IC |
US7839162B2 (en) * | 2007-06-27 | 2010-11-23 | Tabula, Inc. | Configurable IC with deskewing circuits |
US7471104B1 (en) | 2007-07-27 | 2008-12-30 | Xilinx, Inc. | Lookup table with relatively balanced delays |
US7423452B1 (en) * | 2007-07-27 | 2008-09-09 | Xilinx, Inc. | Integrated circuit including a multiplexer circuit |
US7949699B1 (en) | 2007-08-30 | 2011-05-24 | Altera Corporation | Implementation of decimation filter in integrated circuit device using ram-based data storage |
EP2201569A4 (en) | 2007-09-06 | 2011-07-13 | Tabula Inc | CONFIGURATION CONTEXT SWITCH |
US7969184B1 (en) | 2007-09-06 | 2011-06-28 | Tabula, Inc. | Configurable high speed high voltage input/output circuit for an IC |
US8990651B2 (en) | 2007-09-19 | 2015-03-24 | Tabula, Inc. | Integrated circuit (IC) with primary and secondary networks and device containing such an IC |
US8863067B1 (en) | 2008-02-06 | 2014-10-14 | Tabula, Inc. | Sequential delay analysis by placement engines |
US8959137B1 (en) | 2008-02-20 | 2015-02-17 | Altera Corporation | Implementing large multipliers in a programmable integrated circuit device |
US8244789B1 (en) | 2008-03-14 | 2012-08-14 | Altera Corporation | Normalization of floating point operations in a programmable integrated circuit device |
US8166435B2 (en) | 2008-06-26 | 2012-04-24 | Tabula, Inc. | Timing operations in an IC with configurable circuits |
US8626815B1 (en) | 2008-07-14 | 2014-01-07 | Altera Corporation | Configuring a programmable integrated circuit device to perform matrix multiplication |
US7956639B2 (en) * | 2008-07-23 | 2011-06-07 | Ndsu Research Foundation | Intelligent cellular electronic structures |
US8525548B2 (en) * | 2008-08-04 | 2013-09-03 | Tabula, Inc. | Trigger circuits and event counters for an IC |
WO2010033263A1 (en) * | 2008-09-17 | 2010-03-25 | Tabula, Inc. | Controllable storage elements for an ic |
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 |
US8468192B1 (en) | 2009-03-03 | 2013-06-18 | Altera Corporation | Implementing multipliers in a programmable integrated circuit device |
US8706790B1 (en) | 2009-03-03 | 2014-04-22 | Altera Corporation | Implementing mixed-precision floating-point operations in a programmable integrated circuit device |
US8886696B1 (en) | 2009-03-03 | 2014-11-11 | Altera Corporation | Digital signal processing circuitry with redundancy and ability to support larger multipliers |
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 |
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 |
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 |
US8072234B2 (en) | 2009-09-21 | 2011-12-06 | Tabula, Inc. | Micro-granular delay testing of configurable ICs |
WO2011091323A1 (en) | 2010-01-21 | 2011-07-28 | Qst Holdings, Llc | A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
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 |
WO2011123151A1 (en) | 2010-04-02 | 2011-10-06 | Tabula Inc. | System and method for reducing reconfiguration power usage |
US8589463B2 (en) | 2010-06-25 | 2013-11-19 | Altera Corporation | Calculation of trigonometric functions in an integrated circuit device |
US8862650B2 (en) | 2010-06-25 | 2014-10-14 | 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 |
US9355690B1 (en) | 2011-03-17 | 2016-05-31 | Xilinx, Inc. | Time-multiplexed, asynchronous device |
US9600278B1 (en) | 2011-05-09 | 2017-03-21 | Altera Corporation | Programmable device using fixed and configurable logic to implement recursive trees |
US8760193B2 (en) | 2011-07-01 | 2014-06-24 | Tabula, Inc. | Configurable storage elements |
US8812576B1 (en) | 2011-09-12 | 2014-08-19 | Altera Corporation | QR decomposition in an integrated circuit device |
US9053045B1 (en) | 2011-09-16 | 2015-06-09 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US8949298B1 (en) | 2011-09-16 | 2015-02-03 | Altera Corporation | Computing floating-point polynomials in an integrated circuit device |
US8874837B2 (en) * | 2011-11-08 | 2014-10-28 | Xilinx, Inc. | Embedded memory and dedicated processor structure within an integrated circuit |
US8762443B1 (en) | 2011-11-15 | 2014-06-24 | Altera Corporation | Matrix operations in an integrated circuit device |
US8959469B2 (en) | 2012-02-09 | 2015-02-17 | Altera Corporation | Configuring a programmable device using high-level language |
US9230046B2 (en) | 2012-03-30 | 2016-01-05 | International Business Machines Corporation | Generating clock signals for a cycle accurate, cycle reproducible FPGA based hardware accelerator |
US8543634B1 (en) | 2012-03-30 | 2013-09-24 | Altera Corporation | Specialized processing block for programmable integrated circuit device |
US9286423B2 (en) | 2012-03-30 | 2016-03-15 | International Business Machines Corporation | Cycle accurate and cycle reproducible memory for an FPGA based hardware accelerator |
US8536896B1 (en) | 2012-05-31 | 2013-09-17 | Xilinx, Inc. | Programmable interconnect element and method of implementing a programmable interconnect element |
US9461649B2 (en) * | 2012-06-01 | 2016-10-04 | The Regents Of The University Of California | Programmable logic circuit architecture using resistive memory elements |
US9098332B1 (en) | 2012-06-01 | 2015-08-04 | Altera Corporation | Specialized processing block with fixed- and floating-point structures |
US8519741B1 (en) | 2012-07-06 | 2013-08-27 | Xilinx, Inc. | Operating a programmable integrated circuit with functionally equivalent configuration bitstreams |
US8996600B1 (en) | 2012-08-03 | 2015-03-31 | Altera Corporation | Specialized processing block for implementing floating-point multiplier with subnormal operation support |
KR101920719B1 (ko) * | 2012-11-19 | 2019-02-13 | 삼성전자주식회사 | 논리 장치, 논리 장치를 포함하는 디지털 필터 및 논리 장치를 제어하는 방법 |
US9207909B1 (en) | 2012-11-26 | 2015-12-08 | Altera Corporation | Polynomial calculations optimized for programmable integrated circuit device structures |
US9189200B1 (en) | 2013-03-14 | 2015-11-17 | Altera Corporation | Multiple-precision processing block in a programmable integrated circuit device |
US9348795B1 (en) | 2013-07-03 | 2016-05-24 | Altera Corporation | Programmable device using fixed and configurable logic to implement floating-point rounding |
US9330040B2 (en) | 2013-09-12 | 2016-05-03 | Qualcomm Incorporated | Serial configuration of a reconfigurable instruction cell array |
US9379687B1 (en) | 2014-01-14 | 2016-06-28 | Altera Corporation | Pipelined systolic finite impulse response filter |
US9183337B1 (en) | 2014-08-08 | 2015-11-10 | Xilinx, Inc. | Circuit design with predefined configuration of parameterized cores |
US9337841B1 (en) | 2014-10-06 | 2016-05-10 | Xilinx, Inc. | Circuits for and methods of providing voltage level shifting in an integrated circuit device |
US9966960B2 (en) * | 2014-12-17 | 2018-05-08 | Silicon Laboratories Inc. | Configurable logic circuit including dynamic lookup table |
US9684488B2 (en) | 2015-03-26 | 2017-06-20 | Altera Corporation | Combined adder and pre-adder for high-radix multiplier circuit |
US10942706B2 (en) | 2017-05-05 | 2021-03-09 | Intel Corporation | Implementation of floating-point trigonometric functions in an integrated circuit device |
CN108231120B (zh) * | 2017-10-18 | 2021-01-01 | 上海博维逻辑半导体技术有限公司 | 可重新配置的非易失性存储器结构和系统 |
US10909292B1 (en) * | 2019-02-14 | 2021-02-02 | Xilinx, Inc. | Implementing circuit designs on multi-die programmable devices |
TWI698088B (zh) * | 2019-08-22 | 2020-07-01 | 瑞昱半導體股份有限公司 | 應用於多個操作模式的電路 |
FR3121315B1 (fr) * | 2021-03-26 | 2024-03-29 | Schneider Electric Ind Sas | Module fonctionnel pour armoire électrique de raccordement et armoire électrique de raccordement comprenant un tel module fonctionnel |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4821233A (en) * | 1985-09-19 | 1989-04-11 | Xilinx, Incorporated | 5-transistor memory cell with known state on power-up |
US4750155A (en) * | 1985-09-19 | 1988-06-07 | Xilinx, Incorporated | 5-Transistor memory cell which can be reliably read and written |
US5155389A (en) * | 1986-11-07 | 1992-10-13 | Concurrent Logic, Inc. | Programmable logic cell and 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 |
US5212652A (en) * | 1989-08-15 | 1993-05-18 | Advanced Micro Devices, Inc. | Programmable gate array with improved interconnect structure |
US5185706A (en) * | 1989-08-15 | 1993-02-09 | Advanced Micro Devices, Inc. | Programmable gate array with logic cells having configurable output enable |
US5245227A (en) * | 1990-11-02 | 1993-09-14 | Atmel Corporation | Versatile programmable logic cell for use in configurable logic arrays |
WO1993009504A1 (en) * | 1991-10-30 | 1993-05-13 | I-Cube Design Systems Inc. | Field programmable circuit board |
KR960702643A (ko) * | 1993-05-28 | 1996-04-27 | 윌리암 에이. 호스킨스 | 동적 논리코어에 동적으로 상호접속된 필드 프로그램 가능 논리장치(field programmable logic device with dynamic interconnections to a dynamic logic core) |
JP3547446B2 (ja) * | 1994-02-15 | 2004-07-28 | ジリンクス,インコーポレーテッド | フィールドプログラマブルゲートアレーのタイル型構造 |
US5426378A (en) * | 1994-04-20 | 1995-06-20 | Xilinx, Inc. | Programmable logic device which stores more than one configuration and means for switching configurations |
-
1995
- 1995-08-18 US US08/516,186 patent/US5646545A/en not_active Expired - Lifetime
-
1996
- 1996-08-16 EP EP96305984A patent/EP0759662A3/en not_active Withdrawn
- 1996-08-19 JP JP21752796A patent/JP3729943B2/ja not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008539485A (ja) * | 2005-04-28 | 2008-11-13 | ザ ユニバーシティ コート オブ ザ ユニバーシティ オブ エディンバラ | 再構成可能命令セル・アレイ |
WO2006129722A1 (ja) * | 2005-05-31 | 2006-12-07 | Ipflex Inc. | 再構成可能な装置 |
US8138788B2 (en) | 2005-05-31 | 2012-03-20 | Fuji Xerox Co., Ltd. | Reconfigurable device |
JP2008289151A (ja) * | 2007-05-21 | 2008-11-27 | Altera Corp | 改良された論理セル機能性の複合論理ブロックを有するプログラマブルロジックデバイス |
US7586326B2 (en) | 2007-08-17 | 2009-09-08 | Fujitsu Limited | Integrated circuit apparatus |
JP2013013077A (ja) * | 2011-06-27 | 2013-01-17 | Samsung Electronics Co Ltd | 論理装置及びそれを含む半導体パッケージ |
Also Published As
Publication number | Publication date |
---|---|
EP0759662A3 (en) | 1998-01-28 |
US5646545A (en) | 1997-07-08 |
EP0759662A2 (en) | 1997-02-26 |
JP3729943B2 (ja) | 2005-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3729943B2 (ja) | 時間多重書込可能論理装置 | |
US5978260A (en) | Method of time multiplexing a programmable logic device | |
US5825662A (en) | Computer-implemented method of optimizing a time multiplexed programmable logic device | |
US5761483A (en) | Optimizing and operating a time multiplexed programmable logic device | |
US5629637A (en) | Method of time multiplexing a programmable logic device | |
US5838954A (en) | Computer-implemented method of optimizing a time multiplexed programmable logic device | |
US5583450A (en) | Sequencer for a time multiplexed programmable logic device | |
US5600263A (en) | Configuration modes for a time multiplexed programmable logic device | |
US5778439A (en) | Programmable logic device with hierarchical confiquration and state storage | |
US6829756B1 (en) | Programmable logic device with time-multiplexed interconnect | |
US6421817B1 (en) | System and method of computation in a programmable logic device using virtual instructions | |
US8719750B1 (en) | Placement and routing of a circuit design | |
US6047115A (en) | Method for configuring FPGA memory planes for virtual hardware computation | |
Tiwari et al. | Saving power by mapping finite-state machines into embedded memory blocks in FPGAs | |
US8015530B1 (en) | Method of enabling the generation of reset signals in an integrated circuit | |
US9065440B2 (en) | Bypassable clocked storage circuitry for dynamic voltage-frequency scaling | |
US7268581B1 (en) | FPGA with time-multiplexed interconnect | |
JPH08510885A (ja) | ダイナミックロジックコアに動的に相互接続するフィールドプログラマブル・ロジックデバイス | |
JPH08503111A (ja) | 改良型コンフィギャラブルセルアレイ | |
US9685957B2 (en) | System reset controller replacing individual asynchronous resets | |
US20090160483A1 (en) | Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array | |
Paulsson et al. | Implementation of a virtual internal configuration access port (JCAP) for enabling partial self-reconfiguration on Xilinx Spartan III FPGAs | |
US9792395B1 (en) | Memory utilization in a circuit design | |
Low et al. | Variation tolerant AFPGA architecture | |
US9729153B1 (en) | Multimode multiplexer-based circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050517 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050810 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050906 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051005 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091014 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101014 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111014 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121014 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131014 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |