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
Application number
JP8217527A
Other languages
English (en)
Other versions
JP3729943B2 (ja
Inventor
Stephen M Trimberger
エム. トリムバーガー ステファン
Richard A Carberry
エイ. カーベリー リチャード
Robert Anders Johnson
アンダース ジョンソン ロバート
Jennifer Wong
ウォン ジェニファー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xilinx Inc filed Critical Xilinx Inc
Publication of JPH09181599A publication Critical patent/JPH09181599A/ja
Application granted granted Critical
Publication of JP3729943B2 publication Critical patent/JP3729943B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns

Landscapes

  • 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

(57)【要約】 【課題】 ダイナミックに形態を特定することの可能な
プログラム可能論理装置を提供する。 【解決手段】 本発明によれば、複数個の形態特定可能
論理ブロック(CLB)、該CLBを相互接続するため
の相互接続構成体、該CLB及び相互接続構成体の形態
を特定するための複数個のプログラム可能論理要素を有
するプログラム可能論理装置(PLD)が提供される。
各CLBは、組合わせ要素と順序論理要素とを有してお
り、少なくとも1個のプログラム可能論理要素は該組合
わせ要素の形態を特定するための複数個のメモリセルを
有しており、且つ少なくとも1個のプログラム可能論理
要素は該順序論理要素の形態を特定するための複数個の
メモリセルを有している。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、大略、プログラマ
ブルロジック装置即ちプログラム可能論理装置に関する
ものであって、更に詳細には、コンフィギャラブル(形
態特定可能)論理ブロック及びプログラム可能ルーチン
グ(経路付け)マトリクスがダイナミックに再度形態特
定されるフィールドプログラマブルゲートアレイ、即ち
現場においてプログラム可能なゲートアレイに関するも
のである。
【0002】
【従来の技術】フィールドプログラマブルゲートアレイ
(FPGA)等のプログラム可能論理装置は公知のタイ
プの集積回路であり且つ再プログラム可能特性によって
提供される柔軟性のために広く適用可能なものである。
FPGAは、典型的に、ユーザ(回路設計者)によって
所望される論理関数を与えるために互いにプログラムす
ることによって相互接続される複数個のコンフィギャラ
ブル(形態特定可能)論理ブロック(CLB)からなる
アレイを有している。FPGAは、典型的に、同一の複
数個のCLBからなる規則的なアレイを有しており、各
CLBは、多数の異なる論理関数のうちのいずれか1つ
を実行するために個別的にプログラムされる。FPGA
は、所望のユーザの回路設計にしたがってCLBを相互
接続するためのコンフィギャラブル即ち形態特定可能な
ルーチング(経路付け)構成体を有している。FPGA
は、更に、多数のコンフィギュレーション(形態)メモ
リセルを有しており、それらはCLBと結合されて各C
LBによって実行されるべき関数を特定し、且つコンフ
ィギャラブルルーチング(形態特定可能な経路付け)構
成体へ結合されており各CLBの入力線及び出力線の結
合を特定する。FPGAは、更に、動作期間中にユーザ
によってアクセス可能なデータ格納メモリセルを有する
ことが可能である。然しながら、特に断りがない限り、
メモリセルという用語はコンフィギュレーション(形
態)メモリセルのことを言及する。ザイリンクスインコ
ーポレイテッドの1994年に出版された「ザ・プログ
ラマブル・ロジック・データ・ブック(The Pro
grammable LogicData Boo
k)」という題名の出版物は、幾つかのFPGA製品を
記載しており、引用によってその全体を本明細書に取込
む。
【0003】論理回路の複雑性及び寸法を増加させるた
めに従来技術において使用可能な1つのアプローチは、
外部接続によって複数個のFPGA(即ち、複数個のチ
ップ)を結合させることであった。然しながら、FPG
A間での入力/出力接続部、即ちピンの数が制限されて
いたために、全ての回路がこのアプローチを使用して実
現することが可能なものではない。更に、1個を超えた
数のFPGAを使用することは、ユーザの回路設計を実
現する上で、電力消費、コスト及び空間を不所望に増加
させる。
【0004】別の公知の解決方法は、FPGAにおける
CLB及び相互接続構成体の数を増加させることであっ
た。然しながら、いずれの与えられた半導体製造技術の
場合にも、実際的な寸法の集積回路チップ上に製造する
ことの可能なCLBの数には制限がある。従って、FP
GA用の論理ゲート数即ちCLB密度を増加させること
の必要性が継続して存在している。
【0005】異なる時間において異なる論理関数を実行
するためにFPGAを再度形態を特定することは当該技
術分野において公知である。然しながら、この再形態特
定は、各再形態特定のためにコンフィギュレーション
(形態)ビットストリームを再ロードする時間のかかる
ステップを必要とする。更に、従来のFPGAの再形態
特定は、通常、論理関数の実行を中断し、論理関数の現
在の状態をFPGA外部のメモリ装置内へ保存し、メモ
リ形態セルの全アレイを再ロードし、且つチップ外に保
存した論理関数の状態及びその他の必要な入力を入力す
ることを必要とする。これらのステップの各々は、かな
りの時間を必要とし、そのために再形態特定は典型的な
回路を実現する場合に非実際的なものとさせている。
【0006】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、形態特定可能論理ブロック及びプログラム
可能経路付けマトリクスをダイナミックに再形態特定す
ることの可能なプログラム可能論理装置を提供するを目
的とする。
【0007】
【課題を解決するための手段】本発明によれば、プログ
ラム可能論理装置(PLD)が、少なくとも1個のコン
フィギャラブルロジックブロック即ち形態特定可能論理
ブロック(CLB)と、該CLBを相互接続するための
相互接続構成体と、該CLB及び該相互接続構成体をコ
ンフィギュア、即ち形態を特定するための複数個のプロ
グラム可能論理要素とを有している。各CLBは、組合
わせ要素と順序論理要素とを有しており、少なくとも1
個のプログラム可能論理要素は、該組合わせ要素をコン
フィギュア、即ち形態を特定するための複数個のメモリ
セルを有しており、且つ少なくとも1個のプログラム可
能論理要素は該順序論理要素をコンフィギュア、即ち形
態を特定するための複数個のメモリセルを有している。
本発明によれば、PLDは、前記複数個のメモリ要素の
うちの少なくとも1つへのアクセスをディスエーブル、
即ち動作不能状態とさせる手段を有している。一実施例
においては、該メモリセルはRAMセルであり、一方他
の実施例においては、該メモリセルはROMセルであ
り、又はそれらの組合わせである。
【0008】本発明の一実施例によれば、コンフィギュ
レーション(形態)メモリ用に使用されるメモリセル
は、更に、ユーザのデータメモリとしても使用可能であ
る。従って、1個のメモリスライス(1つのコンフィギ
ュレーション即ち形態に対するビットの全て)又は1つ
のメモリスライスの一部を、コンフィギュレーションメ
モリ又はユーザデータのいずれかとして選択的に使用さ
れる。ラッチがアクティブ即ち活性なコンフィギュレー
ション(形態)を保持している間に、データビットをア
ドレスでアクセスすることが可能である。
【0009】マイクロレジスタが1個のCLB又は相互
接続構成体の複数個の中間状態を格納する。該マイクロ
レジスタは複数個の読取ポートを有しており、その際に
1つのコンフィギュレーション(形態)が幾つかのその
他のコンフィギュレーション(形態)のうちのいずれか
1つの期間中に該CLBにおいて計算された値を同時的
に使用することを可能としている。このような態様で、
CLBは他のコンフィギュレーション(形態)において
CLB(その他のCLB又はそれ自身)によって計算さ
れた値へアクセスすることが可能である。種々の実施例
において、該マイクロレジスタはCLBの出力端か、C
LBの入力端か、又は相互接続構成体内のその他の箇所
のいずれかに位置されている。
【0010】本PLDは、ランダムアクセスによるか、
又は外部又は内部信号からのコマンドによって、逐次的
にコンフィギュレーション(形態)間でスイッチする。
このスイッチ動作は、「フラッシュリコンフィギュレー
ション(フラッシュ再形態特定)」と呼ばれる。フラッ
シュリコンフィギュレーションは、本PLDがN個のコ
ンフィギュレーション(形態)のうちの1つにおいて機
能することを可能とし、尚、Nは各プログラム可能な点
へ割当てられた最大数のメモリセルに等しい。このよう
な態様で、M個の実際のCLBを有するPLDは、それ
があたかもM×N個の実効的なCLBを有するように機
能する。従って、8個のコンフィギュレーション(形
態)を仮定した場合に、本PLDは、付加的なコンフィ
ギュレーションメモリを有することによってそれが実際
に有する論理の量の8倍の論理を実現する。フラッシュ
リコンフィギュレーションを使用することによって、本
発明のCLBはダイナミックに効果的に再使用され、そ
の際に与えられた数の論理関数を実現するために必要と
される物理的なCLBの数をコンフィギュレーションの
数の係数だけ減少させる。更に、該マイクロレジスタ
は、各フラッシュリコンフィギュレーションに対して保
存及び再格納機能を提供し、その際にそのコンフィギュ
レーション(形態)が最後に終了した箇所からコンフィ
ギュレーション即ち形態特定を行なうこととを再開する
ことを可能とする。
【0011】本発明は、典型的に、前記プログラム可能
論理要素のうちの1つの出力信号として該メモリセルの
1つの値を供給するためのラッチを有している。このラ
ッチは、該メモリセルのコンフィギュア即ち形態特定を
行なうための複数個のビット線に関して行なわれるプレ
チャージの遅延を効果的に隠す。更に、該ラッチはユー
ザのコンフィギュレーションとは独立的に該PLDに対
し既知の状態へパワーアップする。更に、該ラッチは、
コンフィギュレーション即ち形態特定がアクティブ即ち
活性状態にある間にメモリへのアクセスを可能とさせ
る。
【0012】一実施例においては、各CLBは、更に、
該中間状態、少なくとも1個のCLBにおける値(順序
論理要素又は組合わせ要素と関連している)又はCLB
への外部信号のいずれかへアクセスするための複数個の
マルチプレクサを有している。
【0013】
【発明の実施の形態】以下の説明は、トピック毎に分割
されており、それらは以下の目次に従って構成されてい
る。
【0014】目 次 1.0 用語 2.0 論理アレイアーキテクチュア 2.1 マイクロレジスタ 2.1a マイクロレジスタ位置 2.2 バスヒエラルキ 3.0 パワー節約 4.0 共用メモリ 5.0 チップレイアウト 6.0 リコンフィギュレーション(再形態特定) 7.0 単一クロックシーケンサ 7.1 コンフィギュレーションシーケンス動作 7.2 コンフィギュレーション期間 7.3 同期型FPGA用のマイクロサイクル発生 8.0 動作モード 8.1 タイムシェアリングモード 8.2 論理エンジンモード 8.2a 同期/非同期クロック動作 8.2b 論理エンジンモード用制御器 8.2c スケジューラ 8.2d 圧縮スケジューリング 8.2e 同時的スケジューリング及び配置 8.2f 論理エンジン入力及び出力信号 8.3 スタティックモード 8.4 混合モード 9.0 その他 9.1 可変深さCLB 9.2 マイクロサイクルインタラプトシミュレーショ
ン 9.3 マイクロレジスタ代替物 9.4 より深い論理に対する代替物 9.5 CLB毎メモリアクセスコンフィギュレーショ
ンビット 9.6 マイクロレジスタセレクタオプション 9.7 低パワー相互接続回路 9.8 コンフィギュレーション用マルチアクセス 9.9 パイプライン特徴モード 9.10 ROMセルの組込み1.0 用語 ここにおいては3つのタイプのデータ(3つのタイプの
メモリ又は格納部を暗示する)、即ち、コンフィギュレ
ーションデータ、ユーザデータ、状態データについて説
明する。コンフィギュレーションデータは、そのデータ
が論理ブロック又は相互接続体へ供給された場合に、論
理ブロック又は相互接続体のコンフィギュレーション即
ち形態特定を決定する。ユーザデータは、典型的に、ユ
ーザの論理によって発生され且つそうでなければコンフ
ィギュレーションデータの格納のために使用することの
可能なメモリにおいて格納/検索されるデータである。
状態データは、任意の特定の時間においてのユーザ論理
におけるノードの論理値を画定するデータである。典型
的に、状態データは、該ノードにおける値が後の時間に
おいて必要とされる場合に格納される。「状態」という
用語は、特定の時間においてのノード値の全て又はこれ
らの値のうちのサブセットのいずれかを言及するために
使用される。
【0015】2.0 論理アレイアーキテクチュア 従来の1つのFPGA、例えばザイリンクスインコーポ
レイテッドから市販されているザイリンクス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メモリセルのコンフィギュレーション即ち形態
特定について詳細に説明しており、それらは引用によっ
て本明細書に導入する。
【0016】本発明によれば、且つ図2を参照すると、
各メモリセル100(図1)はランダムアクセスメモリ
(RAM)ビット組200で置換されている。ビット組
200は、8個のメモリセルMC0−MC7を有してい
る。各メモリセルMCはラッチ201と、それと関連す
るセレクトトランジスタ202とを有している。メモリ
セルMC0−MC7はクロック動作されるラッチ204
へ信号を供給する共通ビット線203へ結合されてい
る。別の実施例においては、メモリセルMC0−MC7
は従来の6トランジスタ(6T)メモリセルであって、
それらは当該技術分野において公知であり、従ってその
詳細な説明は割愛する。異なるビット組における同一の
位置における全てのコンフィギュレーションビット(例
えば、メモリセルMC2によってラッチ2012 により
格納されている3番目のコンフィギュレーションビッ
ト)はメモリの単一の「スライス」内に存在するものと
考えられ、アレイの単一コンフィギュレーション(形
態)に対応している。
【0017】付加的なコンフィギュレーションメモリセ
ルはFPGA回路のダイナミックな再使用により論理密
度を増加させる。特に、CLB及び相互接続体はある時
刻において何らかの定義されたタスクを実行すべく形態
特定され且つ別の時刻において別のタスクを実効すべく
再度形態特定される。従って、各先のFPGAプログラ
ミング点に対してビット組を供給することにより、本発
明におけるFPGAは従来のFPGAの論理量の8倍の
量を「保持」する。CLBを再度形態特定させることに
よって、CLBにおける関数発生器の数、典型的には、
ユーザの回路において与えられた数のルックアップテー
ブル(「仮想のLUT」)を実現するために必要とされ
る従来のルックアップテーブル(「現実のLUT」)の
数は、コンフィギュレーション(形態特定)の数の係数
だけ減少される。
【0018】図3は本発明に基づくCLB301の一実
施例を示したブロック図である。この実施例において
は、CLB301は320個のプログラミング点を有し
ており、各プログラミング点は1ビットのコンフィギュ
レーションデータを必要とし、各ビットは8ビットメモ
リを有している。例えば、G論理関数発生器302は1
28個のビット(16ビット×8)によって形態が特定
される。論理関数発生器302,303,304、複数
個のマルチプレクサ305−321、SR制御を制御す
るコンフィギュレーションビットは、コンフィギュレー
ションワード内のビットの各々の「後ろ側」の8ビット
メモリ組を表わす陰付きボックスとして示されている。
説明の便宜上、図3はスイッチボックス及び接続ボック
ス及びそれらに関連するコンフィギュレーションビット
を図示していないが、これらのボックス内の各プログラ
ミング点も8ビットメモリを有している。
【0019】動作期間中に、同一のスライス内の全ての
値が同時的に読み出されて、チップ上のCLB及び相互
接続体のコンフィギュレーション即ち形態特定をアップ
デートし、その際にCLBをして異なる論理関数を実行
させ且つ相互接続体をして異なる接続を行なわせる。
【0020】2.1 マイクロレジスタ 図3はマルチプレクサ311及び312の出力端子へ結
合されているマイクロレジスタ324及び325を示し
ている。中間論理状態を格納する各マイクロレジスタ
は、8個のマイクロレジスタビットを有しており、その
場合に、各マイクロレジスタビットは前述した8個のメ
モリスライスのうちの1つに対応している(然しなが
ら、一実施例においては、全てのマイクロレジスタの全
てのビットが存在する訳ではない)。コンフィギュレー
ション即ち形態特定の変化の直前において、現在のメモ
リスライスに対応するマイクロレジスタビットがクロッ
ク動作され全てのCLB(及び、ある実施例において
は、IOB)の状態を捕獲する。本発明によれば、マイ
クロレジスタ324及び325の内容はどのようなコン
フィギュレーション(形態特定)においても使用するこ
とが可能である。各コンフィギュレーション期間中に、
信号は従来の態様でFPGAを介して伝播し、プログラ
ムした相互接続体を介してマイクロレジスタからルック
アップテーブル(LUT)又はCLBの入力端子へ付加
的な経路が与えられる。
【0021】一実施例においては、各マイクロレジスタ
に対する複数個のセレクタが設けられており、従って単
一のコンフィギュレーション即ち形態特定が、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つを超えた数の信号へ
アクセスすることは不可能である。
【0022】図3Aを参照すると、レジスタ書込セレク
ト(LWS)信号がどのマイクロレジスタビット、即ち
ビット0−7へ書込を行なうかを決定する。読取セレク
ト信号は、例えば、出力マルチプレクサ313を制御
し、該マルチプレクサはどのマイクロレジスタビットを
読取るかを決定する。コンフィギュレーションセレクト
(CRS)信号は、ブロック330から読取ったどのセ
レクト信号を使用するかを決定し、各ブロックは8個の
メモリセル(MC0−MC7)を有している。注意すべ
きことであるが、RWS信号は、メモリ書込動作のみの
ためにメモリ制御器によって供給され(図11及び12
を参照して更に詳細に説明する)及びその他の動作のた
めにシーケンサによって供給される(図22A及び52
を参照して更に詳細に説明する)。対照的に、CRS信
号は、コンフィギュレーション読取動作のためにシーケ
ンサによって供給され且つその他の動作のためにメモリ
制御器によって供給される。
【0023】最も簡単な実施例においては、RWS信号
は、単に、一つのマイクロサイクルだけ遅延されたCR
S信号である(「マイクロサイクル」は「μcycl
e」又は「ucycle」とも呼称する)。即ち、CR
S信号はマイクロサイクルの開始時において計算を特定
し、且つRWS信号はマイクロサイクルの終了時にその
結果を格納する。
【0024】出力信号、例えば出力信号YAはマイクロ
クロック(μCLK)信号によってパイプラインラッチ
350内へラッチされるので、読取セレクト信号又はC
RS信号をラッチすることは必要ではなく、従ってシリ
コン面積を最小とすると共にマルチプレクサ313がコ
ンフィギュレーション読取プロセスと並列的に動作する
ことを可能としている。
【0025】図4はマイクロレジスタ324と、マルチ
プレクサ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を供給する。
【0026】RECIRC経路の機能はクロックイネー
ブル信号によって制御される。特に、クロックイネーブ
ル信号ECが論理0であると、現在のマイクロレジスタ
ビットの前の値を以下の態様で得ることが可能である。
最初に、マイクロレジスタ324からの出力信号がCR
S信号で選択され且つマルチプレクサ408を介してマ
イクロクロック(μCLK)信号と共にラッチ415へ
転送される。図3Aを参照して前述したように、このC
RS信号は現在アクティブなコンフィギュレーションの
ビット組におけるアドレス即ち位置である。第二に、ラ
ッチされた信号QOLDは、次いで、マルチプレクサ4
02(信号EC′によって制御される)、マルチプレク
サ403(信号SEL(コンフィギュレーションビット
によって供給される)によって制御される)、及びマル
チプレクサ404(信号SAVE(シーケンサによって
与えられる)によって制御される)を介して、現在のマ
イクロレジスタビットへフィードバックされる。
【0027】図4に示した入力信号は、概略、市販され
ているザイリンクスXC4000ファミリィのFPGA
において与えられる信号に適合している。例えば、信号
Kはクロック入力信号であり、且つ信号IVはパワーアッ
プ又はリセット時のフリップフロップ322の初期値で
あり且つビット組200(図2)によって与えられる値
である。
【0028】信号X1はマイクロレジスタ324への入
力信号である(尚、X2(不図示)はマイクロレジスタ
325への入力信号である)。注意すべきことである
が、ビット組200(図2)は図4の種々の要素を制御
する。マルチプレクサ408の出力信号はメモリインタ
ーフェース(MEM I−F)405へ供給され、該メ
モリインターフェースはマイクロレジスタ324のプレ
ロードのため、パワーアップ動作のため、又はデバッグ
動作のため等のためにマルチプレクサ404へ値を供給
する。一実施例においては、マイクロレジスタ324
は、該レジスタの各ビットがそれを発生したコンフィギ
ュレーションと同一のアドレス空間内に存在するように
アドレスされ、その際に状態へアクセスすることの複雑
性を著しく減少させている。注意すべきことであるが、
Dフリップフロップ322のセット/リセット(S/
R)及びイネーブルクロック(EC)端子へ供給される
信号(SR′及びEC′)は、ライン413及び414
を介してマルチプレクサ402の動作を制御する。
【0029】マルチプレクサ403は、Dフリップフロ
ップ322からの信号又はマルチプレクサ402からの
信号(1つのコンフィギュレーションにおいては、マイ
クロレジスタ324からのフィードバック信号RECI
RC)がマルチプレクサ404へ供給されるか否かを決
定する。ラッチ407はマルチプレクサ404からの出
力信号を捕獲し且つ適宜のマイクロサイクルクロック信
号μCLKによってこの値をマイクロレジスタ324へ
転送させる。図63A,63B,63Cはマルチプレク
サ313−320(図3)に対する種々の実施例を示し
ている。
【0030】図63AはCLBの出力信号OUT_を相
互接続構成体へ供給する本発明に基づく出力マルチプレ
クサの一実施例、この場合には、マルチプレクサ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の待ち時間を取除いている
が、該信号は論理エンジンモード以外における前のマイ
クロサイクルにおける値に関してある程度の不明確性を
発生させる場合がある。
【0031】図63Dに示した表は、各マルチプレクサ
313−320に対する入力信号を示しており、その場
合に、信号X1はラッチ407の出力信号であり(即
ち、マイクロレジスタ324と関連しているレジスタバ
イパス信号)、且つ信号X2はマイクロレジスタ325
と関連しているレジスタバイパス信号である。入力信号
SBYP0及びSBYP1は、典型的に、ザイリンクス
XC4000ファミリィの装置のコンフィギュレーショ
ン論理ブロックにおいて発生される逐次的なバイパス信
号(即ち、信号F,H,DIN又はQ)を参照してい
る。
【0032】注意すべきことであるが、信号SBYP0
及びSBYP1はアドレスビットA1−A3によって選
択される。特に、アドレスビットA1はラッチ6303
内に格納され、該ラッチはマルチプレクサ6301Jを
制御し(即ち、入力信号SBYP0及びSBYP1の間
の選択を行なう)、一方アドレスビットA2及びA3は
ANDゲート6304へ供給される。両方のアドレスビ
ットA2及びA3が低状態であると、高信号がラッチ6
305内に格納され、そうでない場合には低信号がラッ
チ6305内に格納される。ラッチ6305の出力信号
は、マルチプレクサ6301Iがマルチプレクサ630
1H又はマルチプレクサ6301Jの出力信号を選択す
ることを制御する(以下に詳細に説明する)。
【0033】図63Bは別の実施例を示しており、この
場合は、ラッチ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のエッジ上でサンプルされる。
【0034】図63Cは更に別の実施例を示しており、
この場合は、ラッチ407がマイクロレジスタ324へ
接続されており、マイクロレジスタ324はマルチプレ
クサ313Aへ接続している。図示したように、この実
施例は、ラッチされる入力信号に対してマルチプレクサ
313Aを設けてあり且つラッチされない入力信号に対
して別のマルチプレクサ313Bを設けてある。従っ
て、ラッチ6311(図63B)はマルチプレクサ31
3を介して「プッシュ」されており、その際に図63B
における9個のラッチ、即ちラッチ63110 −631
7 からラッチ数を効果的に1個、即ちラッチ6317
へ減少させている。マルチプレクサ313Aは4個のブ
ロック330によって制御され(図3A参照)、一方マ
ルチプレクサ313Bはラッチ6318を介してブロッ
ク330によって制御される。この実施例においては、
マルチプレクサ313Aからの出力信号に対してラッチ
6317が設けられている。従って、リコンフィギュレ
ーション即ち再形態特定が完了すると、図63Cの実施
例は値がマルチプレクサ313Aを介してリップル動作
することを待機する必要はない。
【0035】図63Eは回路6302(図63A)に対
する真理値表を示している。例えば、信号SBYP0又
は信号SBYP1のいずれかが選択されると、アドレス
ビットA2及びA3は0である。従って、ゲート630
4の出力信号(実効的には、その反転された入力端子の
ためにNORゲートである)は高状態である。ラッチ6
305によってuClk信号が検知された後に、それは
高信号を出力し、その際にORゲート6306の出力信
号を強制的に高状態とさせる。その高信号は、実効的
に、ラッチ6307をトランスペアレントなものとさ
せ、その際に信号SBYP0又はSBYP1のいずれか
が直接的にCLB出力線へリップル動作することを可能
とさせる。換言すると、回路6302はマルチプレクサ
として機能する。注意すべきことであるが、図63B及
び63Cに示した構造も同一の機能を実行するが、その
機能は異なる態様で実現される。
【0036】一方、マイクロレジスタ324の出力信号
が所望される場合には、ラッチ6305の出力信号が低
状態であり且つORゲート6306の出力信号はマイク
ロクロックと同じである。この態様においては、ラッチ
6307はラッチ6317と同一の機能を実行する(図
63C)。従って、このコンフィギュレーションにおい
ては、回路6302はラッチへ結合されているマルチプ
レクサとして機能する。
【0037】図63Gはトランジスタ6330−633
3及びインバータ6334−6337を有する回路63
02に対する1つの詳細な実現例を示している。
【0038】図5はマルチプレクサ402,403,4
04,MEN I/F405を示しており、それらは、
この実施例においては、効果的に単一のマルチプレクサ
回路500として統合されており、それは直列したパス
トランジスタの数を減少させることによって遅延を減少
させている。注意すべきことであるが、読取信号RD、
書込信号WR、メモリセレクト信号MSELはメモリ制
御器(図11を参照して詳細に説明する)によって供給
され、一方SAVE信号はシーケンサ(図22A及び5
2を参照して詳細に説明する)によって供給され、且つ
セレクト信号SELはコンフィギュレーションビットに
よって供給される。図6はノード501(図5)におけ
る特定の信号となる種々の入力信号に対する真理値表6
01を示している。
【0039】2.1a マイクロレジスタ位置 マイクロレジスタ324及び325(図3)は択一的な
箇所に位置されている。一実施例においては(図3に示
してある)、マイクロレジスタ324,325は出力マ
ルチプレクサ313−320の入力端子へ結合されてい
る。第二実施例においては、これらのマイクロレジスタ
は論理関数発生器302及び303の入力端子へ結合さ
れている。例えば、マイクロレジスタ324が論理関数
発生器302の入力端子へ結合されている場合には、マ
ルチプレクサ313−316は簡単化される。注意すべ
きことであるが、2つの信号が同一のコンフィギュレー
ションにおいて発生され且つこれらの信号が異なるコン
フィギュレーションに関し論理関数発生器の同一のピン
上で必要とされる場合には、コンフリクト即ち競合が発
生する。特に、これらのマイクロレジスタが論理関数発
生器の入力端子へ結合されている場合には、これらのマ
イクロレジスタへ供給される2つの信号は同一のコンフ
ィギュレーション上で供給することは不可能である。
【0040】第三実施例においては、これらのマイクロ
レジスタは相互接続体内に位置されており、その場合
に、使用可能である場合には信号がマイクロレジスタへ
経路付けされ且つ必要とされる場合にはこれらのマイク
ロレジスタから経路付けされる。一実施例においては、
これらのマイクロレジスタは計算を行なう論理関数発生
器とは独立的に割当てられている。このような態様で、
配置プログラムはコンフリクト即ち競合を有することの
ないマイクロレジスタのみを自動的に選択することが可
能である。この実施例はデータ格納位置に関し最大の柔
軟性を与えている。
【0041】第四実施例においては、これらのマイクロ
レジスタはコンフィギュレーションとは独立した格納位
置内に位置されている。そのアドレス又はそのアドレス
の一部はコンフィギュレーションビット又は配置位置と
することが可能である。この態様においては、維持され
るべき値のみが格納され且つコンフリクト即ち競合を有
することのない位置のみが選択される。
【0042】2.2 バスヒエラルキ 上述したように、従来のFPGAにおける各コンフィギ
ュレーション即ち形態特定動作は1組のコンフィギュレ
ーションメモリビットによって制御される。これらのコ
ンフィギュレーションビットをロードするために使用さ
れるバスは、典型的に、単一レベルのヒエラルキ即ち階
層を形成し、垂直アドレス線がCLBアレイの高さ全体
にわたり、且つ水平なデータ線(グローバルバスとして
呼称する)がアレイの幅全体にわたる。
【0043】本発明によれば、従来のコンフィギュレー
ションメモリビットの各々がN個のビットによって置換
されている。これらのN個のビット、即ちメモリセルM
C0−MC7内に格納されているビットは、それらのロ
ーカルバス203を介しスイッチ700を介して図7に
示したようにグローバルバス701へ接続されている。
ローカルバス203はメモリ機能装置703(即ち、C
LB又は相互接続構成体におけるプログラム可能点)を
駆動するためにメモリセルMC0−MC7へランダムに
又は逐次的にアクセスすることが可能である。一実施例
においては、スイッチ700はトランジスタであり、一
方その他の実施例においては、スイッチ700は従来の
バッファ型スイッチである。一実施例においては、各メ
モリセルMCは5トランジスタメモリセル100(図
1)を使用して実現される。その他のメモリセル実現例
については以下に詳細に説明する。
【0044】ローカルバス203は各コンフィギュレー
ションに対するビットを担持するのでよりアクティブで
あり(ラッチ204に対して)、一方グローバルバス7
01はプレーン(スライスとも呼ばれる)をリコンフィ
ギュア即ち再形態特定する場合又はユーザメモリ動作を
実施する場合にのみアクティブである。ローカルバス2
03の容量は、小型のレイアウト及び電力及び速度に関
して小型のトランジスタ寸法によって最小とされてい
る。バス205はトランジスタ202に対してコンフィ
ギュレーションセレクト(CRS)信号を供給し、アド
レスバス702はスイッチ700へアドレス信号を供給
する。
【0045】一実施例においては、ローカルバス203
及びグローバルバス701は、所望により、真信号及び
その相補的信号を担持する。例えば、メモリセルMCは
従来の6トランジスタ(6T)メモリセル(それは当該
技術分野において公知であり、従ってその詳細な説明は
割愛する)で実現されている場合には、2つのローカル
バス203A及び203B、2つのスイッチ700A及
び700B、及び2つのグローバルバス701A及び7
01Bは、典型的に、図7Aに示した如くに使用され、
その際に各ビット組200Aに対するトランジスタ数を
増加させる。
【0046】ローカルバスからグローバルバスへの転送
においては、その転送に参加するメモリセルMCはグロ
ーバルバス701当たり1個に過ぎない(従って、CL
Bアレイに対する一列のMCセル)。本発明に基づき、
4個の列及び列当たり80個のビット組を有する例示的
なCLBにおいては、16×16CLBアレイは64個
の列及び列当たり1280個のビット組を有するアレイ
を形成する。
【0047】2レベルヒエラルキの改良したものを図1
7に示してあり、その場合には、2つのローカルバス1
702A及び1702Bが単一のグローバルバス170
1上に多重化される。この改良の利点はグローバルバス
線を減少させることである。注意すべきことであるが、
その他の実施例においては(不図示)、2つを超えた数
のローカルバスが単一のグローバルバス上へ多重化され
る。
【0048】3. パワー節約 1個のチップ上に設けられるビット組200の数が多
い、即ち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を駆
動する。
【0049】対照的に、再度図7を参照すると、5Tメ
モリセルはローカルバス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ワットへ減少される。
【0050】チップメモリへのアクセスが行なわれる場
合に電力が消費される。一実施例において電力を節約す
るために、メモリセルへのアクセスは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
がセットされていない場合にはアサート即ち活性化され
ることはない。
【0051】コンフィギュレーションデータビットは読
取られた後にラッチ204内に格納されるので、本FP
GAはコンフィギュレーションメモリの初期的な読取の
後にその機能703を継続して実行する。ユーザデータ
参照期間中にパワー散逸を制限するための付加的な手段
は、アドレスされた列内のローカルバス線203のみが
活性化されることを可能とする。典型的に、これはロー
カルバス線の60分の1である。
【0052】4. 共用メモリ 本発明は、従来のLUTメモリとは異なるタイプのユー
ザデータメモリを提供している。特に、メモリスライス
の各々は、コンフィギュレーションデータか又は読取/
書込(ユーザデータとも呼称される)メモリのいずれか
に割当てられている。8個のメモリスライス全てを読取
/書込メモリのために使用することが可能であるが、少
なくとも1個のメモリスライスは初期的にはコンフィギ
ュレーションデータを格納している。このコンフィギュ
レーションデータがラッチ204内に格納されると、コ
ンフィギュレーションメモリはユーザデータのために再
使用することが可能である。
【0053】コンフィギュレーションメモリスライスの
一部は、コンフィギュレーションのその部分によって制
御される論理が論理を実行しているコンフィギュレーシ
ョンの残部の動作と干渉することがない場合には、ユー
ザデータのために使用することが可能である。コンフィ
ギュレーションの一部の割当ては厄介な場合があるの
で、一実施例では各メモリスライス全体をコンフィギュ
レーションか又はユーザデータメモリへ割当てる。換言
すると、メモリスライスがユーザデータメモリへ割当て
られると、そのスライス内の全てのビットは読取/書込
格納部、即ち全てのCLBに対する全体的なコンフィギ
ュレーションワードとして使用することが可能である。
従って、本発明は、ユーザに対して豊富な格納部を使用
可能なものとしている。例えば、20×20アレイのC
LBの場合には、RAMの約16,000バイトがメモ
リスライス毎に使用可能である。
【0054】図11は本発明の一実施例のメモリのブロ
ック図を示しており、その場合に、データバスDbu
s、メモリ1102、論理1101は、夫々、図7にお
けるグローバルバス701、メモリセルMC0−MC
7、機能(関数)装置703と等価である。アドレスバ
スAbus及びレジスタバスRbusは一般論理及び相
互接続体を使用してCLB1100において形態が特定
される。一般相互接続線は、CLB1100の周辺部に
位置されている専用のレジスタへの経路付けを行なう。
メモリアドレスレジスタMAR1105はメモリアドレ
スを保持し、一方メモリデータレジスタMDR1103
はメモリデータを保持する。一般論理及び相互接続体は
Abus/Rbusのために使用されるので、ユーザメ
モリをサポートするためにCLB1100内において専
用のメモリハードウエアは必要ではない。
【0055】MDR1103の幅はプログラム可能であ
り、典型的な値は1,2又は4バイトである。列データ
レジスタCDR1108はDbus幅と同数のビットを
有しており、典型的には、16×16CLBアレイに対
しては256ビット幅である。CDR1108を使用す
ることにより、CDR1108の転送毎にMDR110
3の複数個の転送を行なうことが可能であり、その際に
性能を向上させ且つCLB1100における行デコード
を減少させている。シフタ1104はMDR1103内
のデータをCDR1108内の適切なバイトへシフトさ
せる。CLB1100の周辺部に位置されているメモリ
制御器1106は入力信号RC(読取コマンド)、WC
(書込コマンド)、BURST(バーストコマンド)を
CLB1100内のユーザ論理から受取る。
【0056】図15及び16を参照して以下に説明する
バースト読取(BR)及びバースト書込(BW)動作を
サポートするための制御信号であるBURST信号は、
CDR転送毎の複数個のMDR転送をトリガする。バー
ストアクセスは隣接したアドレスに制限される。何故な
らば、これはデータバスDbusを介してメモリ110
2とCDR1108との間で転送するデータだからであ
る。
【0057】ユーザ論理1101はメモリアドレス、デ
ータ寸法識別子(図11における論理1101によって
発生されるSIZE信号)、及びデータを発生し、次い
でこれらのパラメータ(メモリに特定の論理なしで)を
MAR1105、MDR1103、CLB1100へ及
びそれらから転送させる。MAR1105、MDR11
03、CDR1108、シフタ1104、メモリ制御器
1106、アドレスデコード・タイミングブロック11
07は、全て、チップの周辺部における専用のメモリハ
ードウエアである。
【0058】図12はMAR1105、メモリ制御器1
106、アドレスデコード1107、MDR1103、
メモリ1102、CDR1108の部分をより詳細に示
している(全て「A」で示してある)。シフタ1104
は図12において暗示されており、それにより、Vbu
s1201に沿ってのCDRセルが活性化される。32
ビット未満のデータ(即ち、1又は2バイト)はRbu
s1202、フリップフロップ1212、ラッチ120
8上で右側に整列される。アライナ即ち整列器1206
及び1211はデータを右側整列からVbus1201
上でアドレス整列又はその逆に変換を行なう。
【0059】クロック信号μCLKはチップ全体にわた
り分布される高周波数の低スキュークロックである。そ
うであるから、μCLK(又は、それのイネーブルさせ
たもの)は、MDRセル1103Aのような専用ハード
ウエア、単一クロックシーケンサ(図22Aに参照して
詳細に説明する)、コンフィギュレーションラッチ20
4(図2)、CLB常駐フリップフロップ322及び3
23のような形態特定可能ハードウエア及びローカルメ
モリ(図12には示していないが、本明細書に取込んだ
1994年ザイリンクスデータブック2頁乃至13頁に
詳細に記載されている)をクロック動作するために使用
される。
【0060】本装置が論理エンジンモード(以下に詳細
に説明する)で使用される場合には、全てのメモリスラ
イス信号は所定数のμCLKサイクルを有している。装
置がタイムシェアリングモード(以下に詳細に説明す
る)で使用される場合には、任意の数のμCLKサイク
ルに対して単一のコンフィギュレーションが活性状態に
あるが、コンフィギュレーションスイッチングは未だに
μCLKに対して同期されている。従って、μCLK
は、論理エンジンモードにあるか又はタイムシェアリン
グモードにあるかに拘らず、メモリ参照用のクロックで
ある。
【0061】ユーザが発生した信号であるRC、WC、
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はデコードした
アドレス信号である。
【0062】読取動作 メモリ読取動作の場合には、読取コマンド信号RC=1
が読取セレクト信号RSEL=1とさせ(読取セレクト
信号RSELは組合わせ論理1218によって供給され
る)、その際にトランジスタ213をターンオンさせ且
つマルチプレクサ1207においてVbus1201を
選択する。このような態様でVbus上の信号はラッチ
1208内にラッチされ且つRbus1202上に駆動
される(導通状態にあるトランジスタ1213を介し
て)。この読取動作期間中に、トランジスタ1215及
び1216がターンオンされ、その際にメモリセルMC
iからローカルバス1214へ及びDbus1205へ
データを転送させる。次いで、このデータはラッチ12
09内へラッチされる。トランジスタ1204は、それ
が導通状態にある場合に、ラッチ1209内に格納され
ている信号をVbus1201上へ駆動する。
【0063】書込動作 メモリ書込動作の場合には、RC=0がトランジスタ1
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内の値は不変のまま溜まる。
【0064】非バースト読取動作(単一サイクル) 図13は非バースト読取動作タイミング線図を示してい
る。アドレスバス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レートでデータを発生させるためにパイプライン動作
させることが可能である。
【0065】(i)uCLK信号がアドレスバスAbu
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へ結合される。
【0066】非バースト書込動作 図14は非バースト書込動作のタイミング線図を示して
いる。Abus上の信号がμCLKの上昇エッジでサン
プルされ、その際に1つのμCLKサイクルに対し安定
なACj,ARi(夫々、列及び行アドレス)を発生す
る。安定な信号ACj,ARiは、Wパルスをイネーブ
ルさせ、該パルスは、ラッチ1208からアライナ12
11を介してVbus1201へ、導通状態にあるトラ
ンジスタ1203を介してDbus1205へ、導通状
態にあるトランジスタ1216を介してローカルバス1
214へ、トランジスタ1215を介してメモリセルM
Ciへのデータの伝搬を開始させる。
【0067】(i)uCLK信号はアドレスバスAbu
s内容上の信号と共にMAR1105をロードし、且つ
信号RCはuCLK信号と共にフリップフロップ121
7内へラッチされる。この時間における信号Ari,A
CjはMAR1105の信号を反映する。RC=0のラ
ッチされた信号は、メモリ1102ではなくレジスタバ
スRbusがラッチ1208をロードするように、MD
R1103内のマルチプレクサ1207を制御する。信
号WC=1の場合には、その信号は信号Wを発生するシ
ーケンスを開始させる。
【0068】(ii)ラッチ1208内に格納されている
信号は、信号W=1の場合に、垂直バス1201へ転送
される。垂直バス1201上の信号は、信号W*ARi
=1の場合にデータバスDbusへ転送される。
【0069】バースト読取動作 バースト読取(BR=1)は、Ariが各読取動作と共
に変化しながら、CDRロード当たりCDRを複数回読
取ることによって画定される。BR信号は性能を改善す
る。何故ならば、それはメモリセルMCiからの同数の
読取よりも高速だからである。
【0070】図15はバースト読取動作のタイミング線
図を示している。μCy1期間中、読取パルスRはメモ
リセルMCiへアクセスする(Rパルスがトランジスタ
1215のゲートを制御する図12を参照)。
【0071】一実施例においては、読取アクセスはCL
B当たり16ビットをCLB列からCDR1108A内
へロードする。CDR1108(図11)は複数個のC
DRセル1108Aを有しているので、爾後の読取がこ
れらのCDRセルに対してのものである場合には、読取
動作はメモリセルMCiからではなくCDR1108か
ら容易に実施することが可能である。従って、メモリセ
ルMCiはμCy2乃至μCy4に対して二度アクセス
される必要はなく、その際にこれらのサイクルを短縮化
している。再度図15を参照すると、信号BRはデータ
ビットd1,d2,d3へアクセスする(信号BRは図
12のトランジスタ1204及びラッチ1208を制御
する)。
【0072】バースト読取プロセスは以下のステップを
有している。
【0073】(i)マイクロサイクル0(uCy0)期
間中、ユーザはアドレスバスAbus上のアドレス信号
a0−a3のアサート(活性化)を開始し且つ信号RC
=1を供給する。信号BURST=0は非バースト読取
であることを意味している。これらの信号は次のuCL
Kの上昇エッジでサンプルされる。
【0074】(ii)uCy1期間中、uCy0において
アソートされた即ち活性化された信号RCが実行され
る。データビットd0/d1/d2/d3を包含するメ
モリ列全体(各データ「ビット」は複数個のビットを含
んでいる)がデータビットd1/d2/d3を得るため
にメモリ1102の代わりに現在アクセス可能なテンポ
ラリレジスタCDR1108内へラッチされる。データ
ビットd0もMDR1103へ供給される。uCy1に
おいてアソートされた両方の信号RC=1=Burst
がマイクロサイクルuCy2においてCDR1108へ
アクセスする。
【0075】(iii )uCy2及びuCy3期間中、デ
ータビットは継続してアドレスAriに関してインクリ
メントし且つ信号RC=1=Burstをアサートす
る。更に、ユーザは書込を行なう前に各サイクル毎にM
DR1103を読み出さねばならない(Rbus120
2上)。
【0076】(iv)マイクロサイクルuCy4期間中、
それは最後のサイクルであるが、RC=0=Burst
(又は別の基準)の信号を発生する。
【0077】バースト書込動作 バースト書込(BW=1)はメモリセルMCiに対する
CDR書込毎にCDR内に複数回書込を行なうことによ
って画定され、その際に全ての書込に関してメモリセル
MCiに対して書込を行なうことの必要性を取り除いて
いる。
【0078】図16はバースト書込動作のタイミング線
図を示している。この動作期間中、フリップフロップ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である。
【0079】バースト書込プロセスは以下のステップを
有している。
【0080】(i)uCy0期間中、ユーザはアドレス
バスAbus上のアドレス信号a0及びそのアドレスに
対するレジスタバスRbus上のデータ信号d0をアサ
ート即ち活性化させる。両方の信号ともWC=Burs
t=1である。
【0081】(ii)uCy1期間中、uCy0において
アサートされた信号WCは実行される。データ信号d0
はアドレス信号a0によって決定されたCDR1108
のバイト内へロードされる。同時的に、ユーザはアドレ
スバスAbus上のアドレス信号a1及びレジスタバス
Rbus上のデータ信号d1をアサートする。
【0082】(iii )uCy2及びuCy3期間中、デ
ータ信号d1及びd2はアドレス信号a1及びa2によ
って決定されたCDR1108のバイト内へロードされ
る。ユーザはアドレスバスAbus上のアドレス信号a
3及びa4及びレジスタバスRbus上のデータ信号d
3及びd4をアサートする。uCy3期間中、ユーザは
WC=1をアサートするが、メモリ制御器1106をト
リガするBURST=0をリターンさせて、バースト動
作期間中にCDR1108内へロードされた全てのバイ
トをuCy4においてメモリへ書き戻させる。
【0083】(iv)uCy4期間中、それは最後のサイ
クルであるが、CDR1108の修正したバイトが最終
的なデータ要素と共にメモリセルMCiへ書込まれる。
CDR1108の修正していないバイトはCDR110
8からデータバスDbus上へ駆動することがないこと
によって書込まれることはない。
【0084】以下の説明は、どのようにしてコンフィギ
ュレーションメモリアクセスがユーザメモリアクセスと
インターリーブされるかを説明する。一例においては、
コンフィギュレーションアクセスは信号CRS0乃至C
RS7のサブセットであるCRSi信号のシーケンスで
あり、一方ユーザメモリアクセスはコンフィギュレーシ
ョンサブセット内に存在しないCSRjアクセスであ
る。
【0085】図18は図17に示したコンフィギュレー
ションに対する書込動作のタイミング線図を示してい
る。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)とインターフェースするそれ自身の組のレジスタ
を有している。
【0086】5. チップレイアウト 本発明の一実施例によれば、時間多重型FPGA集積回
路チップはザイリンクス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へ選択的に結合させることを可能とす
る。
【0087】図24は3つの列、即ち列2401A,2
401B,2401Cを含むCLBレイアウトを示して
おり、その場合に各列2401は16個のアレイ230
0(図23)を有している。列2401A及び2401
Cは隣接するCLB(不図示)で共用され、一方列24
01BはCLB2400によって使用される。2つの論
理セクション、即ちIO2403及びCLE2402が
隣接するアレイ2300のラッチ出力によって供給され
る。この実施例においては、各論理セクションは160
個のラッチによって供給される。
【0088】6. リコンフィギュレーション(再形態
特定) 従来のFPGAリコンフィギュレーション、即ち再形態
特定は、FPGAの状態をリセットすることなしに、オ
フチップからの新たなコンフィギュレーションデータの
ローディングを行なっている。このことは、FPGAが
動作中に実施することが可能であり(ダイナミックリコ
ンフィギュレーション即ち動的再形態特定)と呼ばれ
る)且つ全コンフィギュレーションデータパターンを再
ロードする必要性なしにコンフィギュレーションのある
部分に対してのみのものとすることが可能である(即
ち、部分的再形態特定)。対照的に、本発明は、オンチ
ップ即ちチップ上に複数個のコンフィギュレーション
(形態)を格納する能力を与えることによって、従来の
リコンフィギュレーション(再形態特定)モードのスー
パーセットを画定する。
【0089】タイムシェアリングモードにおける一実施
例において、FPGAが第一コンフィギュレーションに
基づいて動作し、一方部分的な又は全体的な新たな組の
コンフィギュレーションデータがメモリスライスの1つ
又はそれ以上のものの中へロードされる(オフチップか
ら)。(注意すべきことであるが、この動作は、論理エ
ンジンが8個のメモリスライスに等しいか又はそれ未満
のものを使用する場合には、論理エンジンモードにおい
ても動作する。)次いで、フラッシュリコンフィギュレ
ーション動作によって第二コンフィギュレーションデー
タが並列的に活性化される。この動作は、システムのブ
ートアップの後に付加的なコンフィギュレーションデー
タがオフチップから持ち込まれるという点において、通
常のフラッシュリコンフィギュレーションとは異なる。
このオフチップ能力は、ユーザが、8個のみ(本発明の
一実施例を参照して上述した)ではなく無制限の数のコ
ンフィギュレーションの間で変更することを可能として
いる。クロック速度に依存して、リコンフィギュレーシ
ョン(再形態特定)はオフチップから各新たなコンフィ
ギュレーションワードをロードするのにミリ秒を必要と
する場合がある。然しながら、注意すべきことである
が、FPGAはこの時間期間中いまだに活性状態にあ
る。専用のリコンフィギュレーションハードウエアがユ
ーザメモリインターフェースのメモリアクセス機能を共
用することが可能であるか、又はユーザ論理がリコンフ
ィギュレーション(再形態)を制御することが可能であ
るか、又はその両方である。
【0090】7. 単一クロックシーケンサ 本発明によれば、シーケンサが、リコンフィギュレーシ
ョン(再形態特定)を開始させ、リコンフィギュレーシ
ョンを終了させ、且つコンフィギュレーションシーケン
ス動作を管理するための制御信号を発生する。好適に
は、シーケンサはユーザ論理によって制御されるか又は
それから形成され、その際に入力信号と出力信号の任意
の組合わせを使用して論理を形成する場合にユーザが著
しい柔軟性を有することを確保している。
【0091】7.1 コンフィギュレーションシーケン
ス動作 シーケンサは、プログラムすることによって次のコンフ
ィギュレーション即ち形態を選択する。前述したよう
に、次のコンフィギュレーションは逐次的に選択される
か、又はアドレスで直接選択される。そのアドレスは外
部的に発生させるか(即ち、FPGAチップのピンへ供
給する)、又は内部的に発生させることが可能である。
従って、次のアドレスは内部又は外部論理に関して条件
付けすることが可能である。次のコンフィギュレーショ
ンへのスイッチは、外部信号、内部信号又はナノサイク
ルの数のカウントによって代替的に支配される(尚、ナ
ノサイクルは200MHzの程度の非常に高速の内部ク
ロックである)。注意すべきことであるが、一実施例に
おいては、シーケンス動作方法の選択は1つのコンフィ
ギュレーションと次のコンフィギュレーションでは異な
っている。
【0092】一実施例においては、FPGAは複数個の
シーケンサを有しており、その各々がFPGAの異なる
部分を制御する。該シーケンサは、ロック(lock)
ステップで動作し、単一のシーケンサをエミュレートす
るか、又は独立的に動作して、複数個のユーザクロック
で動作することを可能とする。
【0093】論理エンジンモードにおける本発明によれ
ば、フラッシュリコンフィギュレーション(即ち、メモ
リスライスのコンフィギュレーション)が2つの方法の
うちの1つにおいて発生する。第一の方法においては、
フラッシュリコンフィギュレーションは選択した入力信
号(又はいずれかの入力信号)によってトリガされる。
チップは、選択した組の入力信号のうちの1つが変化す
るまで(即ち、高状態又は低状態へ移行するまで)何等
計算をすることなしに(低電力消費状態)待機する。こ
の時点において、チップは、内部又は外部信号がストッ
プ条件を表わすまで、1つの主要なサイクル(尚、1つ
の主要なサイクルは全てのリコンフィギュレーションを
介しての完全な繰返しである)、固定した数の主要なサ
イクル、又は多数の主要なサイクル又はリコンフィギュ
レーションと関連するリコンフィギュレーションを実行
する。
【0094】第二の方法においては、フラッシュリコン
フィギュレーションは連続的なリコンフィギュレーショ
ンシーケンス動作を含んでいる。特に、チップは何等特
定の外部信号を考慮することなしに全ての又は幾つかの
リコンフィギュレーションを介して断続的にサイクル動
作する。
【0095】7.2 コンフィギュレーション期間 論理エンジンモードにおいては、マイクロサイクル期間
は、次のコンフィギュレーションへ進行する前に最も長
いネットが安定化するのに充分に長いものでなければな
らない。本発明は、シーケンサにおける以下の代替物を
提供している。 1.固定マイクロサイクル期間 全てのネット遅延はこの時間拘束条件を満足するのに充
分に短いものでなければならない。一実施例において
は、この時間拘束条件の実行はどのような可能な経路も
予め設定した限界よりも長いものでないようにアーキテ
クチュア(即ち、ハードウエア)において行なわれる。
別の実施例においては、その施行は時間制限を超えるネ
ットを再経路付けすることによってソフトウエアで行な
われる。
【0096】2.設計毎の可変マイクロサイクル期間 特に、ユーザが正規のマイクロサイクルクロックを供給
することを可能とする。
【0097】3.マイクロサイクル毎の可変マイクロサ
イクル期間 マイクロサイクル期間を変化するのには幾つかの方法が
ある。同期的方法においては、各マイクロサイクルコン
フィギュレーションは期間フィールドを有している。こ
のフィールドは固定した遅延を選択し、その場合に、固
定した遅延の寸法は以下の方法のうちの1つによって設
定される。
【0098】a.チップ内に遅延を構築する。
【0099】b.チップがどのように配線されるかによ
って(即ち外部遅延回路)遅延を決定する。
【0100】c.チップのコンフィギュレーション情報
内に遅延を設定する。
【0101】d.マイクロサイクルにおけるナノサイク
ル数の各マイクロサイクルとカウントとを関連付ける。
ナノサイクルはナノサイクルクロックと呼ばれる非常に
高速の内部クロックのサイクルである。
【0102】e.外部トリガ、例えば、不規則的なパル
スを有する外部マイクロサイクルクロックに基づいて1
つのマイクロサイクルから次のマイクロサイクルへ進行
する。
【0103】f.内部信号が到着する場合に次のマイク
ロサイクルへ進行し、その場合にその内部信号は、それ
がマイクロサイクルにおける最も遅い経路をトラバース
するように経路付けされる。
【0104】g.インタラプトアドレス信号を使用し
て、マイクロサイクルシーケンスをトリガしてすぐさま
新たなアドレスへジャンプし且つその点から動作を継続
する。
【0105】h.シーケンサへ供給された内部信号に基
づいて2つのアドレスのうちの1つを選択する。換言す
ると、この代替方法は次のマイクロサイクルへの条件付
きジャンプを与える。別の実施例においては、複数個の
内部信号が供給され、その場合に、各内部信号は異なる
次のアドレスを選択する(即ち、マルチウエイ分岐)。
所定のシーケンス動作の場合(即ち、コンフィギュレー
ションのスキップがない)、これらのビットは定数に対
して配線されねばならない。更に別の実施例において
は、次のアドレスはマイクロサイクルにおいてユーザ論
理によって計算される。一実施例においては、シーケン
サは現在のコンフィギュレーションを保存し且つそのコ
ンフィギュレーション又は次のコンフィギュレーション
へ復帰し、その際にサブセットのコンフィギュレーショ
ンに対しての「サブルーチンコール」を効果的に与え
る。
【0106】論理エンジンモードにおいては、新たなメ
モリスライスに対する読取アクセス時間は、次のコンフ
ィギュレーションに対するメモリの読取が現在のコンフ
ィギュレーションの論理と並列的に行なわれるようにパ
イプライン動作され、その際にリコンフィギュレーショ
ン時間を最小としている。
【0107】7.3 同期型FPGAに対するマイクロ
サイクル発生 アナログ自己同期型回路は当該技術分野において公知で
ある。図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を形成する。
【0108】然しながら、回路1910はインバータ1
905,1906又は1907の遅延を制御するための
フィードバックを与えるものではない。従って、該イン
バータによって与えられる遅延が小さすぎる場合には
(典型的に、処理又は環境変動によって発生される)、
信号1902及び1903のパルス幅は回路条件を満足
するのには小さすぎるものとなる。このような態様で、
外部クロック、即ち信号1900が遅滞化しても、チッ
プは動作することはない。換言すると、アナログ自己同
期型回路は、それが機能障害を起こしている場合には、
典型的に、どのような速度においても機能不全である。
【0109】対照的に、本発明はデジタルタイミング割
当を形成し、それはチップが動作上機能的なものとさせ
るために外部クロックをスローダウンさせることを可能
とし、その際にアナログ自己同期型回路1910よりも
より信頼性のある正確な複数個のクロックを供給する方
法を提供している。一実施例においては、時間多重型F
PGAは、外部サイクル毎に複数個の内部サイクルが発
生するように、外部クロック周波数の倍数である内部ク
ロック周波数を与える。図21を参照すると、外部クロ
ック2101はフェーズロックループ(PLL)210
7に対してクロック信号を供給する。PLL2107
は、典型的に、位相検知器2102、ローパスフィルタ
(LPF)2103、オシレータ2104を有してい
る。オシレータ2104は外部クロック2101によっ
て与えられるクロック信号の倍数である周波数で動作す
る。
【0110】分周器2105は、外部クロック2101
によって与えられた信号周波数を近似するためにオシレ
ータ周波数を分周する。外部クロック2101によって
与えられた入力クロック信号に対してのこれらの出力信
号の正確な同期を確保するために、フィードバック線2
106が位相比較器2102へ結合されている。位相比
較器2102は入力線2108上に与えらえた周波数と
フィードバック線2106上の周波数とを比較する。位
相比較器2102はこれら2つの周波数の間の位相差に
よって決定される出力位相エラー信号を発生する。ライ
ン2106上の周波数がライン2108上の周波数と等
しくない場合には、位相エラー信号は、LPF2103
(これはジッタを補正する)によってフィルタされた後
に、オシレータ2104の周波数をライン2108上の
周波数の方向へそらさせる。
【0111】本発明によれば、高内部オシレータ周波数
(即ち、5ナノ秒周期)は全ての内部サイクルをオシレ
ータ周期の倍数とすることを可能とする。特に、オシレ
ータ2104の周波数が高ければ高い程、可能な内部サ
イクルはより精細に同調され、即ちより短いものとな
る。例えば、オシレータ2104が200MHz(即ち
5ナノ秒周期)の周波数を与えるものと仮定すると、単
一クロックシーケンサ(図22Aを参照して詳細に説明
する)は5ナノ秒又はその倍数の内部サイクルを供給す
ることが可能である。本発明においては、内部サイクル
は等しいものである必要はないが、内部サイクルの全て
の和は外部サイクルと等しい。
【0112】コンフィギュレーションブロック2109
からのコンフィギュレーションビットは、フィードバッ
ク線2106に対しての分周を選択するように分周器2
105をプログラムし、その際に外部クロック2101
の周波数範囲を拡張させる。分周器2105は従来の二
進カウンタであって、分周器が0に到達するたびにコン
フィギュレーションブロック2109によってプリセッ
トされる。
【0113】図22Aは本発明の一実施例における単一
クロックシーケンサ2201を示しており、それはその
動作を制御するためにCLB1100からユーザが発生
した信号を受取る。特に、ユーザが発生した信号Jum
pComm(即ち、ユーザ論理から発生され且つ、例え
ば、マルチプレクサ315(図13)によって与えられ
る)は、単一クロックシーケンサ2201に対してその
プログラムされたシーケンスのコンフィギュレーション
からそれることを支持し、一方ユーザが発生した信号J
umpAddr(典型的に3ビット)は、どのスライス
へ単一クロックシーケンサ2201がジャンプするかを
決定する。単一クロックシーケンサ2201はいつ及び
どこへジャンプするかを決定する場合に論理1101を
助けるために、ユーザ論理1101に対して現在のスラ
イスアドレス信号CurrentAddrを供給する。
【0114】単一クロックシーケンサ2201は、3つ
のフィールド、即ちNextAddr,JumpEn,
Durationへ分割されている複数個のビットを具
備するシーケンステーブル2202を有している。ビッ
トNextAddr0乃至NextAddr7は夫々の
メモリスライスに対するアドレスである(即ち、Nex
tAddr0はスライス0に対するもの等)。ビットJ
umpEn0乃至JumpEn7は、ユーザジャンプコ
マンドをそのメモリスライスに対して実行すべきか否か
を決定する。ビットDuration0乃至Durat
ion7は、夫々のメモリスライスの期間を表示する。
一実施例においては、シーケンステーブル2202のビ
ットはコンフィギュレーションビットストリームによっ
て供給され、一方その他の実施例においては、これらの
ビットはユーザ論理1101によって供給される。
【0115】本発明によれば、単一クロックシーケンサ
2201の動作はモードに依存するものである。例え
ば、 (i)タイムシェアリングのみのモード又はタイムシェ
アリング+スタティックモードにおいては、nanoc
lock(nCLK)はマイクロクロック(uCLK)
へ等しく(タイムシェアリングモード信号TSmode
によって設定される)、且つコンフィギュレーションス
イッチのみがユーザ論理ジャンプによるものである。こ
の場合には、NextAddrは循環される。換言する
と、次のアドレスは現在のアドレスである。
【0116】(ii)いくらかのタイムシェアリングとい
くらかの論理エンジンCLBが存在する混合モードをサ
ポートする実施例においては、第二単一クロックシーケ
ンサが必要となる。即ち、1つのシーケンサは論理エン
ジンモード用であり且つ別のシーケンサはタイムシェア
リングモード用のシーケンステーブルのないものであ
る。その実施例においては、各シーケンサ2201は別
個のJumpComm及びJumpAddr入力ビット
及び別個のCurrentAddr出力ビットを有して
いる。
【0117】(iii )論理エンジンモードのみ又は論理
エンジン+スタティックモードにおいては、単一クロッ
クシーケンサ2201が使用される。
【0118】注意すべきことであるが、図22Aに示し
た単一クロックシーケンサ2201は、例えば当該技術
分野において公知な例えばリセット等の特徴を有してい
るが、その詳細な説明は割愛する。
【0119】単一クロックシーケンサ2201の定常状
態動作は以下のとおりである。
【0120】(i)スライス0の活性化期間中に、フリ
ップフロップ2204は「0」を有しており且つアドレ
スデコーダ2203はシーケンステーブル2202から
スライス0の値を選択する(即ち、NextAddr
0,JumpEn0,Duration0)。
【0121】(ii)NextAddr0は、ジャンプが
とられない場合に、次のuCycleに対するメモリス
ライスの番号を与える。JumpEn0はジャンプが可
能であるか否かを決定する。従って、JumpEn=0
である場合には、JumpCommは無視される。
【0122】(iii )JumpEn0=1である場合に
は、ユーザ論理1101(図11)は3ビットアドレス
JumpAddrを供給し且つJumpComm上でジ
ャンプコマンドを発生することによって、次のコンフィ
ギュレーションに対するメモリスライスアドレスを決定
する。ユーザ論理1101はCurrentAddrに
関する現在のコンフィギュレーションアドレスを使用し
てJumpAddrを計算する(換言すると、ユーザ論
理1101はアクティブ即ち活性状態にあるスライスに
依存してジャンプを表示する)。
【0123】(iv)カウンタ2205は現在のuCyc
leに対するナノサイクル即ちnanocyleをカウ
ントする。例えば、カウンタ2205がDuratio
n0でロードされたと仮定すると、0へカウントダウン
し(カウンタ2205上での「=0」信号)、且つ新た
なuCLKパルスを発生し、それはフリップフロップ2
204をロードし且つ次のuCycleでプロセスを再
開始する。
【0124】本発明によれば、ユーザは、あるスライス
に対するシーケンサテーブル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つのモードにおいて排他的
に動作するが、他の実施例は逐次的か又は同時的かのい
ずれかにおいて複数個のモードで動作する。これらのモ
ードの各々については以下に詳細に説明する。
【0125】8.1 タイムシェアリングモード 図25を参照すると、タイムシェアリングモードにおい
ては、FPGAは、同時的に動作状態となることが必要
ではない異なる機能をサポートするために、複数個のコ
ンフィギュレーション2500、即ちメモリスライス0
−7でプログラムされる。図示した形状2501の各々
は任意の寸法(例えば、CLBの数)及び形態(例え
ば、経路付け構成体)の論理関数を表わしている。論理
関数2501A−2501Hが図25に示されている。
1つのシーケンス動作において、FPGAは初期的にあ
る論理関数(例えば、2501A)を実行すべくプログ
ラムされており、次いでフラッシュリコンフィギュレー
ションによって再形態特定されて異なる論理関数(例え
ば、2501H)を実行する。FPGAはユーザ論理に
おいて発生されるか又は外部ピンによって与えられる信
号に応答していずれかの論理関数からいずれかのその他
の論理関数へスイッチする。
【0126】この実施例においては、FPGAはオンチ
ップ即ちチップ上に同時的に最大で8個の別個のコンフ
ィギュレーションを格納する(各々は異なるメモリスラ
イスに格納される)。フラッシュリコンフィギュレーシ
ョンが発生すると、CLBの出力の状態が自動的に前述
したマイクロレジスタ内へ格納され、その際にコンフィ
ギュレーション間においてパラメータをパスさせること
を可能としている。前に使用したコンフィギュレーショ
ンを再度呼ぶ場合には、コンフィギュレーション動作が
それが中断した箇所から再開することが可能であるよう
に全ての以前の状態を回復することが可能である。
【0127】図25に示したように、各論理関数250
1は所定数のゲートを必要とする。従来技術において
は、例えば400個のCLBからなるアレイが10,0
00個のゲートの論理を実現していた。然しながら、本
発明の時間多重能力によれば、最大で80,000個の
ゲートの論理を実現可能である(8×10,000)。
図25は、400個のCLBからなるアレイにおいて6
2,000個のゲートの論理が実現されている実施例を
示している。
【0128】図4を参照すると、ラッチされた信号QO
LDは、マイクロレジスタ324へ供給することに加え
て、フリップフロップ322へも供給される。上述した
タイムシェアリングモードにおいては、新たなコンフィ
ギュレーションの最初のサイクル上で(それはアクティ
ブグローバル信号FirstCycによって表わされ
る)、信号QOLDはフリップフロップ322のQ出力
端子へ回復される。これと対比して、スタティックモー
ドにおいては(セクション8.3参照)、信号Firs
tCycはコンフィギュレーションビットを具備するス
タティックモードCLBにおいて局所的に禁止され、そ
の際に信号QOLDがフリップフロップ322内へロー
ドされることを防止する。特に、その他の周辺論理(不
図示)は信号FirstCycを発生する。この信号
は、コンフィギュレーションビットと共にゲート動作さ
れ、その際に信号FirstCycを禁止させるか又は
アクティブ即ち活性な信号FirstCycを供給す
る。
【0129】1つのコンフィギュレーションから別のコ
ンフィギュレーションへ変化するビットによって制御さ
れるライン上でグリッチが発生する場合がある。これら
の可能性のあるグリッチはスタティックモードフリップ
フロップ接続を制限する。特に、組合わせ論理と対比し
て、殆どのフリップフロップ入力信号はグリッチがフリ
ップフロップ状態を変化させることを防止するために常
にグリッチがない状態に維持されねばならない。従っ
て、例えばC及びSR等の信号は、それらの供給源へ至
るまでずっとグリッチのないものでなければならず、こ
れらの経路上全てにおいてコンフィギュレーションビッ
ト制限を暗示している。更に、信号D及びECはクロッ
ク信号Cと相対的なあるセットアップ及びホールド時間
に関し有効なものである必要がある。非同期的クロック
の場合には、信号Cはコンフィギュレーションスイッチ
ング時間に対し何等関係を有するものではないので、信
号D及びECはコンフィギュレーションスイッチに基づ
く任意の時間においてグリッチを有することができず、
その際に信号C及びSRと同一の制限を暗示している。
【0130】8.2 論理エンジンモード 論理エンジンモードにおいては、FPGAは、幾つかの
ステージに分かれた単一の大きな設計を実現すべくプロ
グラムされており、各ステージは1つのコンフィギュレ
ーションである。FPGAは、典型的に、各論理部分を
介しての信号伝搬速度と同等の速度で所定の順番で全て
のコンフィギュレーションを介してシーケンス動作す
る。1つのコンフィギュレーションにおいて実行された
論理の結果は後のコンフィギュレーションで使用するた
めにマイクロレジスタ内に格納される。この設計におけ
るフリップフロップ内に格納すべき結果はマイクロレジ
スタ内に格納され且つマイクロサイクルを介して後のパ
スにおいて使用される。このプロセスはCLBの再使用
のために従来のFPGAよりも遅いが、チップ容量は著
しく増加される。
【0131】このモードにおいて、各フラッシュリコン
フィギュレーションは「マイクロサイクル」と呼ばれ
る。全てのマイクロサイクルを介しての1つの繰返しは
「主要なサイクル」と呼ばれる。「ユーザサイクル」は
ユーザの最も速いクロックサイクルにおける時間であ
る。典型的に、出力信号はユーザサイクル当たり一度ア
ップデートされねばならない。簡単な場合においては、
ユーザサイクルは主要なサイクルと同一である。全ての
ユーザ論理が同期的であり且つ一つのクロックのみが存
在するか(「ユーザ」クロック)、又はその他の全ての
クロックがユーザクロックから派生される場合には、そ
のユーザクロックは主要なサイクルと同一であるユーザ
サイクルを画定する。ユーザクロックは全てのコンフィ
ギュレーションを介してシーケンス動作するマイクロサ
イクルをトリガするか、又はシーケンサは全てのマイク
ロサイクルを介して断続的にサイクル動作することが可
能である。注意すべきことであるが、主要なサイクルは
ユーザクロックと同期させることが可能である(例え
ば、コンフィギュレーション0はユーザクロックの上方
向遷移と同期させることが可能である)。
【0132】典型的に、論理エンジンモードにおいて
は、ユーザの設計における組合わせ論理がLUT又はF
PGA上で使用可能な論理原始要素に分割される。ある
デザイン(設計)におけるLUT「レベル」は以下の如
くに定義される。フリップフロップ出力端子及びチップ
入力ピンへの接続のみを有するLUTのレベルは「1」
であり、一方その他全てのLUTのレベルはその入力信
号を発生するLUTの最も大きなレベルよりも1つ大き
なものである。組合わせ論理サイクルはLUT出力信号
に依存するLUT入力信号を無視することによって分解
される。このデザイン(設計)における任意のLUTの
最も大きなレベルはこの設計の深さと呼ばれる。
【0133】論理をマイクロサイクルへ分割する場合
に、1つのLUTから次のものへの直列接続は、その信
号の供給を発生するLUTは、その信号の全てのディス
ティネーション(宛先)よりも1つのマイクロサイクル
先に(又は同一のマイクロサイクル)評価されねばなら
ない。従って、各LUTはそのレベルに対応するマイク
ロサイクルにおいて評価され、その場合にLUT出力信
号はマイクロレジスタ内に保持される。その設計のレベ
ル及び深さは、その論理を評価するのに必要とされるマ
イクロサイクルの数を表わす。これらの制限については
図26及び30を参照して後に説明する。
【0134】前述したようにLUT及び相互接続体は、
論理エンジンモードにおいては各マイクロサイクルに対
して再形態特定が行なわれ、中間状態は後のマイクロサ
イクルにおいてアクセスするためにマイクロレジスタ内
に保持される。図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が構成される。
【0135】説明の便宜上、図26は3つのマイクロサ
イクルを示しているに過ぎない。然しながら、8個のメ
モリスライスの全てがコンフィギュレーションデ−タの
ために使用されるものと仮定すると、本発明に基づくF
PGAは最大で従来技術の回路と等価な論理の量の8倍
の量を保持するものである。然しながら、実現される論
理はクリティカルパス(臨界的経路)における論理レベ
ルの数及びユーザクロック条件に依存して、より遅いも
のである。例えば、クリティカルパスが2つのレベルの
深さに過ぎないが、回路設計は8個のマイクロサイクル
を使用して実現される場合には、その回路設計は従来の
FPGAで実現されたもの(又は、本明細書に詳細に説
明したようにタイムシェアリング又はスタティックモー
ドで)実現した設計よりも少なくとも4倍遅いものとな
る。一方、回路設計がそのクリティカルパスにおいて8
個又はそれ以上の論理レベルを有するものである場合に
は、本発明において実現したような設計は従来のFPG
Aよりもわずかに遅いものに過ぎない場合がある。従っ
て、論理エンジンモードはある程度速度を犠牲にして著
しい密度を得るものである。
【0136】該設計の論理深さはFPGA内に構築され
たコンフィギュレーションの数と同一でない場合があ
る。例えば、該設計が単に3つのコンフィギュレーショ
ンを必要とするに過ぎない場合(即ち、計算が3つのコ
ンフィギュレーションで完了)、シーケンサはその他の
コンフィギュレーション(例えば、8個のコンフィギュ
レーションを有するFPGAにおけるコンフィギュレー
ション4乃至8)をスキップし且つ最初のコンフィギュ
レーションへ復帰する場合がある。このように、該論理
の完了後(即ち、3番目のマイクロサイクル(μcyc
le2)の後)次のものの開始への待ち時間はより少な
い(即ち、潜在的に、5サイクル後の代わりに次のマイ
クロサイクルにおいて)。従ってこの例においては、主
要なサイクルは該設計に適合するように短縮化されてい
る。一実施例においては、この各ユーザ設計に対して設
定されるシーケンサ内のこの終了カウントはプログラム
可能なレジスタ内に格納される。
【0137】基本的なチップアーキテクチュアの場合、
即ち「n」マイクロサイクルアーキテクチュアの場合に
は、最大でn個のレベルの深さまでのユーザ設計のみが
評価することが可能であるように見える。回路設計にお
ける平均経路深さは典型的に3個のレベルと4個のレベ
ルとの間であるが、典型的な回路設計においては2,3
の長い経路を有することは異常ではない。性能を改善す
るか又はユーザの設計が使用可能なマイクロサイクルの
数よりも多くのレベルの論理を有する場合に設計に適合
させるために、該設計の深さよりもより少ないマイクロ
サイクルに適合させるように設計を修正させることが可
能である。本発明は、以下の代替的な解決方法を提供し
ている。
【0138】1.「バイパス」接続を使用してマイクロ
レジスタ周りに信号を指向させる(例えば、マルチプレ
クサ313−314(図3)へ供給される信号G参
照)。これらの信号は、現在のマイクロサイクルにおい
てその他の論理によって使用されるが、それらがマイク
ロレジスタ内に格納されていない限りその他のマイクロ
サイクルにおいて論理によって使用されることはない。
【0139】2.マイクロレジスタはFPGAにおける
マイクロサイクルコンフィギュレーションの総数よりも
多くの値を保持しており、その際に1つを超えた主要な
サイクル前に発生された結果へアクセスすることを可能
としている。該コンフィギュレーション(主要なサイク
ル)を介しての複数個のパスが該計算を完了するのに必
要とされる。
【0140】3.自走マイクロサイクルシーケンスを与
え且つより長い計算の結果に関するイネーブルとしてユ
ーザクロックを供給する。従って、この解決方法におい
ては、ユーザサイクルは1つを超えた主要サイクルを有
している。オプションとして、この解決方法はマイクロ
サイクルの数より長いマイクロサイクルシーケンスカウ
ントを有しており、従って回路設計におけるマイクロサ
イクルの数はチップ内に組込んだ実際のマイクロサイク
ルの数の倍数である必要はない。
【0141】解決方法3において、各LUTは各ユーザ
サイクルにおける複数個の主要なサイクルのうちの単に
1つのみに関して使用される。その他の主要なサイクル
に関しては、LUTは無視される値を計算する。従っ
て、ユーザクロックは無視された値が格納されることが
ないことを確保するためのイネーブル信号として必要と
され、コンフィギュレーションビットはどの主要サイク
ルに関して結果を保存するかを表わすために必要とさ
れ、且つグローバル信号はどの主要なサイクルがアクテ
ィブ即ち活性状態であるかを表わすために必要とされ
る。オプションとして、いつ結果及びグローバル活性信
号を保存するかの表示は、FPGAに関する論理で構成
することが可能である。
【0142】8.2a 複数個のクロック/非同期クロ
ック動作 論理エンジンモードの上述した説明は単一のクロックを
暗示しているが、多くのユーザ回路設計はこの制限を有
するものではない。クロック動作される回路の2つの異
なるカテゴリが存在しており、即ち複数個の関連したク
ロック及び関連していない(非同期)クロックである。
【0143】回路設計が1つを超えた数のクロックを有
しており且つ全てのクロックが最も速いクロックの倍数
である場合には、最も速いクロックはユーザクロックと
して実現され、且つその他の全てのクロックはマイクロ
サイクルレジスタイネーブル信号で実現される。例え
ば、図39及び39Aを参照すると、遅いクロック信号
SC(状態3901において決定される)の上昇エッジ
の後可及的速やかに、遅いクロックイネーブル信号SC
Eがアクティブ即ち活性状態(状態3902)へ移行し
且つ1つの主要サイクルの間アクティブ即ち活性状態に
溜まる。1つの主要サイクルの後(主要なクロック信号
MCによって決定される)、遅いクロックが低状態へ移
行し(ステップ3903)且つシステムは遅いクロック
SCが0へ復帰する場合の遅いクロックの上昇エッジ
(状態3901)を待機する状態に復帰する。イネーブ
ル信号状態マシンは、オンチップの特別目的論理として
与えられるか又はCLBにおいてFPGA論理から構築
される。この技術は、最も速いクロックの倍数ではない
より遅いクロックを実現するために使用することも可能
である。
【0144】例えば、図27はユーザの設計の一部を示
しており、その場合に、フリップフロップ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を除去している。
【0145】別の実施例においては、ライブラリ要素
(ゲート、フリップフロップ又はその他の論理関数)が
クロックの分割即ち分周を特定する(換言すると、エン
ドユーザによって選択されるマイクロクロックを識別す
る)。図28は例示的なライブラリ要素2802A,2
802B,2802C及びそれらのマイクロサイクルク
ロック2801に対する関係を示している。特に、ライ
ブラリ要素2802Bは、クロック信号CLKが8によ
って分周されることを特定し、その際に出力信号CLK
8を与える。最後に、一般的ライブラリ要素2802N
が、クロック信号CLKがNによって分周されることを
特定し、その場合にNはユーザによって与えられる数で
ある。然しながら、この実施例においてはユーザの設計
がクロック分周器を使用しているが、本発明は、典型的
に、図27に示した態様でクロック分周器を実現する。
換言すると、クロック2801はマイクロサイクルクロ
ック信号を供給し、且つライブラリ要素2802A−2
802Nと関連する分周器はイネーブル信号を供給す
る。
【0146】出力信号CLK10,CLK8,CLKN
は、概略的捕獲期間中にユーザによって決定されるフリ
ップフロップ(不図示)のクロック入力端子へ供給され
る信号である。図29に示した一実施例においては、こ
れらの信号は、分周信号、例えば出力線2808上の分
周信号を図39に示した状態マシンに従って動作する回
路2911へ供給することによって実現される。回路2
911はマイクロレジスタ2910のイネーブルENピ
ンへ遅いクロックイネーブル信号を供給する。高速論理
の一部は、例えば、システム全体としての速度の2倍乃
至4倍で走る場合がある。本発明においては、この論理
は例えば、マイクロサイクル1−4、次いで、再度、マ
イクロサイクル5−8において複製され且つ実現され
る。この実現、即ち高速クロックの2つのサイクルを単
一の主要なサイクルへ適合させることは、論理の残部に
関して高速論理の速度を2倍とさせる。
【0147】8.2b 論理エンジンモード/マイクロ
サイクルシーケンス動作用シーケンサ シーケンサは、元のコンフィギュレーションからの入力
及びユーザが発生した信号を取りながらマイクロサイク
ルを介してシーケンス動作する。回路設計の最良の性能
のためには、マイクロサイクルは可及的に短い期間から
構成する。マイクロサイクルの期間は、 1.コンフィギュレーションメモリからのマイクロサイ
クルコンフィギュレーションの読取、 2.LUTへの信号の伝搬、 3.LUTの評価、 4.次のマイクロサイクルに対するマイクロレジスタの
セットアップ、 を行なうために必要とされる時間の量によって設定され
る。
【0148】複数個のレベルの論理が1つのマイクロサ
イクルで評価される場合にはステップ2及び3が繰返し
行なわれる(注意すべきであるが、ステップ1の待ち時
間は、パイプラインラッチによって隠すことが可能であ
り、従ってそれはμcycle期間に貢献することはな
い)。
【0149】FPGA内に設けられる論理は、高速論
理、即ちその動作を迅速に実行する論理、及びより遅い
論理、即ちその動作を完了するために著しくより多くの
時間(高速論理によって必要とされる時間と比較して)
を必要とする論理へ分割することが可能である。本発明
の一実施例によれば、高速論理はそれがいずれかの主要
なサイクルにおいて少なくとも2回評価されるように所
定のマイクロサイクルにおいて複数回評価される。この
評価は、繰返し技術(図33を参照して説明する)又は
サブルーチン技術(図34を参照して説明する)を使用
して行なわれる。換言すると、高速論理が低速論理のク
ロック速度の2倍の速度を有するものと仮定する。この
例においては、主要なサイクルは低速論理のクロック速
度に設定され、その場合に、高速論理は主要サイクル毎
に2度実行する。
【0150】図33は時間に関して、特にマイクロサイ
クル3301−3305を介してのCLB1−5の表示
を示している。前述したように、各CLB1−5は、典
型的に、各マイクロサイクル3301−3305に対し
て異なるコンフィギュレーション(形態)を有してい
る。陰線の付けた区域3306は、矢印3310によっ
て示したように、各主要なサイクルにおいて複数回評価
されるべき論理を表わしている。
【0151】特に、この実施例においては、マイクロサ
イクル3302がマイクロサイクル3301に追従して
いる。マイクロサイクル3302と関連するコンフィギ
ュレーションを完了した後に、高速論理はマイクロサイ
クル3301(矢印3310で示してある)と関連する
コンフィギュレーションへ復帰することを表わす次のマ
イクロサイクルアドレスを発生する。マイクロサイクル
3301及び3302と関連するCLB1−5に対する
コンフィギュレーションが繰返される。一実施例におい
ては、繰返しカウントは例えば2等の固定数である。そ
の実施例においては、CLB1−5はマイクロサイクル
3301及び3302期間中に4回リコンフィギュア即
ち再形態特定が行なわれる(即ち、3301,330
2,3301,3302,3303...)。
【0152】別の実施例においては、マイクロサイクル
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回発生する。
【0153】一方、別の実施例においては、高速論理は
サブルーチンコールに類似したものである。換言する
と、サブルーチンはマイクロサイクルシーケンスにおけ
る任意の場所において選択的にコールされ、且つ元のマ
イクロサイクルシーケンスへリターンする。図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と関連する論理コンフィギュレーションシーケンスに
従う。
【0154】8.2c スケジューラ ユーザの設計における論理の論理エンジンモードにおけ
るコンフィギュレーションスライスへの割当はスケジュ
ーリングと呼ばれる。スケジューリングは手動的に行な
うことが可能であるが、より便宜的にはスケジューラと
呼ばれるプログラムによって自動的に行なわれる。
【0155】スケジューリングは任意的なものではな
い。例えば回路26における回路等の回路が1つの主要
なサイクルにおいて正しい結果を発生するためには、各
LUTは、それに対して入力信号を発生する全てのLU
Tよりも速くないようにマイクロサイクルにおいてスケ
ジューリングがなされねばならない。更に、フリップフ
ロップに対して2つの条件が存在している。第一に、各
フリップフロップはそのLUTに対する入力信号を発生
する全てのLUTよりも速くないようにマイクロサイク
ルにおいてスケジューリングされねばならない。第二
に、各フリップフロップは、それを駆動する全てのLU
T又はフリップフロップよりも速くないようにマイクロ
サイクルにおいてスケジューリングされねばならない。
【0156】図26Bを参照すると、フリップフロップ
2611は第二の条件を満足する、即ちLUT2610
(この場合には、LUT2610と同一のマイクロサイ
クルn内にある)よりも速くないようにスケジューリン
グされている。従って、LUT2610は前のユーザサ
イクルからフリップフロップから2611の値をとる。
このように、フリップフロップ2611の出力信号はマ
イクロサイクルn+1まで変化することはない。従っ
て、フリップフロップ2611はマイクロサイクルnの
終了時にLUT2610の入力信号に対してサンプルさ
れる。注意すべきことであるが、フリップフロップ26
11は後のマイクロサイクルにおいてスケジューリング
することが可能であったものであり且つLUT2610
はより速いマイクロサイクルにおいてスケジューリング
することが可能であったものである。更に、フリップフ
ロップ2612は第一の条件を満足する。即ち、LUT
2610よりも速くないようにマイクロサイクルにおい
てスケジューリングされている(この場合には、後のマ
イクロサイクルにおいてスケジューリングされてい
る)。フリップフロップ2612もマイクロサイクルn
内にスケジューリングすることが可能であったものであ
り又はマイクロサイクルn+1の後のマイクロサイクル
においてスケジューリングすることが可能であったもの
である。
【0157】論理エンジンモードにおける本発明によれ
ば、ソフトウエアプログラム(以後、「スケジューラ」
と呼ぶ)が設計中のクリティカルパスを識別するための
レベライゼーション(levelization)即ち
レベル化と呼ばれる技術を使用する。最も簡単な場合に
おいては、該設計は全てのフリップフロップが同一のク
ロック信号によって同期される同期型設計であると仮定
される(注意すべきことであるが、マルチクロック設計
のクロックイネーブル信号を有する単一クロック設計へ
の変換についてはセクション8.2fにおいて後に詳細
に説明する)。最初の(最も低い番号)マイクロサイク
ルはユーザクロックの上昇エッジと同期される。全ての
組合わせ論理が評価され且つ全てのフリップフロップ値
が該コンフィギュレーションを介しての1つのパスにお
いてアップデートされる。各ユーザクロックサイクルは
全てのマイクロサイクルの評価を行なう。
【0158】単に1つのLUT又はCLBの組合わせ論
理が各マイクロサイクルにおいて評価されるものと仮定
すると(換言すると、マイクロサイクル当たり1つを超
えたLUTを介して伝搬が発生することがない)、1つ
のマイクロサイクル期間は、1つのLUT遅延+入力信
号をLUT入力端子へ転送するための相互接続遅延から
構成されている。マイクロレジスタは後のマイクロサイ
クルにおいて使用するために組合わせ論理中間値を保持
する。マイクロレジスタは、更に、マイクロサイクルを
介しての次のパス上で評価される次のユーザサイクルに
おいて使用するためのフリップフロップ値を保持する。
【0159】これらの拘束条件が与えられると、該設計
はレベライゼーションアルゴリズムを使用してスケジュ
ーリングすることが可能である。特にチップ入力ピン又
はフリップフロップからのみ入力信号をとる各LUTは
レベル1が与えられる。その他のLUTはいずれかの入
力の最も大きいレベルよりも1つ大きなレベル番号が与
えられる。この技術は可及的速やかなスケジュールを発
生する。
【0160】図26に示した可及的速やかスケジューリ
ングは、全ての入力信号がレディ即ち準備されるや否や
各LUTをスケジューリングする。図30に示した可及
的に遅いスケジューリングは、その出力信号が要求され
る前にマイクロサイクルにおいて各LUTをスケージュ
ーリングする。その他のスケジューリングも可能であ
り、例えば、各マイクロサイクルにおいて必要とされる
LUTの数を減少させるためにマイクロサイクルの数を
増加させるもの等がある。例えば、図26において、ス
ケジューラが5個のマイクロサイクルを使用することが
許容される場合には、スケジューラはそれ自身のマイク
ロサイクルにおいて各LUTをスケジューリングするこ
とが可能であり、全ての結果をマイクロレジスタ内に保
存し、且つ前のマイクロサイクル期間中にマイクレジス
タ内の格納した結果を入力信号として使用することが可
能である。このように、該設計を構築するのに単に1つ
の実際のLUTが必要とされるに過ぎない。
【0161】レベライゼーションは部分的な評価を与え
るものであるが、クリティカル即ち臨界的な遅延経路上
にないLUTに対する部分的な評価には著しい余裕が存
在している。このために、スケジューラはクリティカル
パス内にないLUTを識別し且つマイクロサイクル当た
り必要とされるLUTの数を最小とさせるためにそれら
の評価をその他のマイクロサイクル内へ再スケジュール
することが可能である。例えば、図26と図30とを比
較すると、LUT2601はマイクロサイクル1期間中
に評価されるべく再スケジュールされている(スケジュ
ーラによって)。このようにすることによって、回路設
計を実現するために必要とされる物理的なLUTの数は
3個から2個へ減少される。LUT2601はクリティ
カルパス即ち臨界的経路内にはないので、そのLUTを
マイクロサイクル1内へ再度スケジューリングすること
は回路性能に影響を与えるものではない。
【0162】最適化方法がスケジューリングを改善する
ことが可能であり、即ち(i)いずれかのマイクロサイ
クルにおいて必要とされる実際のLUTの数を最小とさ
せ、(ii)各ネットが表われる毎にマイクロサイクルの
数を最小とさせ、且つ(iii)同一のマイクロサイクル
内に経路付けされた各ネットのピン数を最大とすること
によって改善することが可能である。
【0163】スケジューリングを最適化するための方
法、即ちリストスケジューリングとして知られる技術の
変形例について図40を参照して説明する。
【0164】1.最初のマイクロサイクルでスタートす
る(ステップ4001)。
【0165】2.このマイクロサイクルにおいてスケジ
ュールすることの可能な全てのLUTを識別する(ステ
ップ4002)。即ち、その入力信号がチップ入力ピ
ン、フリップフロップ出力端子、又はより先のマイクロ
サイクルにおいて既にスケジューリングされている入力
信号を発生する全てのLUTを持ったLUTから来る入
力信号を受取るLUTを識別する。
【0166】3.以下の点に基づいてLUTを優先度で
順番付けする(ステップ4003)。
【0167】a.タイミング:LUTの可及的に遅いス
ケジューリングによって決定されて、最も速い又は最も
遅いスケジュールを有するLUTが最初である。 b.ネット:その他の全てのデスティネーションLUT
が既にスケジューリングされている入力ネットを有する
LUT。
【0168】c.ピン:そのディスティネーションイン
スタンスのうちの少なくとも1つがスケジューリングさ
れているネット上の1個のピンを有するLUT。 d.可能なネット:リスト内の先のLUTを付加するこ
とによってこのマイクロサイクルにおいて導入させるこ
との可能なネットを完成するLUT。
【0169】e.可能なピン:リスト内の先のLUTを
付加することによってこのマイクロサイクル内に導入す
ることの可能なネット上に1個のピンを有するLUT。
【0170】4.最も高い優先度を有するm個のLUT
を選択し、尚mはFPGAにおける実際のLUTの数で
ある。これらm個のLUTを現在のマイクロサイクル番
号の符号を付ける。それらを識別したLUTのリストか
ら取除く(ステップ4004)。
【0171】5.次のマイクロサイクルへ移行する(ス
テップ4005)。
【0172】6.いまだにスケジューリングしていない
LUTが存在する場合には(ステップ4006)、ステ
ップ4002へ移行し、そうでない場合には終了する
(ステップ4007)。
【0173】別の実施例においては、m個のLUTは一
度に1個選択され、その場合には、ステップ4003は
各選択の後に再度実行される。この実施例は低速である
が、各選択の後にLUTの順番付けをすることは、より
少ない数のマイクロサイクルを使用する結果となるか又
は配置させ且つ経路付けすることがより簡単となる。 8.2d スケジューリング圧縮 クリティカルパスにおける論理のレベル数がFPGA設
計が実現されるコンフィギュレーションの数よりも大き
い場合には、スケジューラはクリティカルパスを圧縮さ
せる。図26Aを参照すると、2つのLUT、即ちLU
T2604及び2605を同一のマイクロサイクル、即
ちマイクロサイクル1において直列的に接続させるため
にマイクロレジスタバイパスを使用してクリティカルパ
ス上のレベルの対を単一レベルへ合体させる。一実施例
においては、圧縮はクリティカルパス上のLUTの数の
最小の拡張に基づいて、合体すべき対を選択する。
【0174】8.2e 同時的スケジューリング及び配
1つのコンフィギュレーションにおける論理は、その他
のコンフィギュレーションにおける同一のLUTにおい
て発生される固定数の信号を超えてアクセスすることは
できない。この制限はスケジューリング(コンフィギュ
レーション)と配置(実際のLUT)との間の拘束条件
であり、そのことはこれらのプロセスを分離することを
困難又は非現実的なものとしている。
【0175】上述した説明においてはLUTをスケジュ
ーリングするためにLUTをレベル化することについて
説明したが、スケジューリングによって課される拘束条
件はプレースメント即ち配置及び経路付け可能性に悪影
響を与える場合がある。従って、一実施例においては、
スケジューリング及びプレースメント(配置)は同時的
に行なわれる。
【0176】以下の表Aは、標準的なFPGA、「簡単
な」時間多重型FPGA設計プロセス、及び「より良
い」時間多重型FPGA設計プロセスに対するスタンダ
ードなFPGA回路設計プロセスを比較している。
【0177】 表 A 標準FPGA 簡単な時間多重型 より良い時間多重型 設計エントリ 設計エントリ 設計エントリ 最適化 最適化 最適化 テクノロジィマップ テクノロジィマップ テクノロジィマップ スケジュール 配置 配置 スケジュール及び配置 経路付け 経路付け 経路付け 標準FPGAプロセスにおいては、回路設計エントリの
後、回路設計が最適化され且つFPGA上で使用可能な
物理的資源に対してマッピングが行なわれる(例えば、
組合わせ論理に対するLUT)。最適化は当業者にとっ
て公知であるが、それは設計におけるLUTを最小とす
るための組合わせ論理の作り直し、及び長い組合わせ論
理経路を短くするための再計時を行なうことを包含す
る。次いで、FPGA資源は、ユーザの論理における各
関数を実現するために使用される実際の資源を選択する
ために配置され且つこれらの資源を接続するための経路
付けが行なわれる。
【0178】プロセス設計流れをタイムシェアリングF
PGAで実現するための簡単な方法は、テクノロジマッ
ピングの後であるがプレースメント(配置)の前にスケ
ジュールステップを付加することである。このスケジュ
ールステップは、設計内の各LUTのマイクロサイクル
を決定し、その際に該設計をN個の配置及び経路付け問
題へ分割することを可能とする(尚、Nは該設計によっ
て使用されるマイクロサイクルの数である)。
【0179】スケジュール及び配置ステップは互いに依
存している。特に、スケジュールステップは、各マイク
ロサイクル期間中にどのネットが必要とされるかを決定
する。明らかに、接続されるべきネットの数又はピンの
数が減少されると、プレースメント即ち配置はそれに対
応してより簡単なものとなる。
【0180】特定のマイクロサイクルnにおいて与えら
れるLUTの出力信号はその他のマイクロサイクル(例
えば、n+1)における入力信号として使用される。従
って、これらn個の配置のうちの1つにおける全てのネ
ットの供給源の位置はその他のマイクロサイクルにおけ
るLUTの配置によって決定される。各LUT出力マイ
クロレジスタがN個のマルチプレクサを有する場合に
は、同一の実際のLUTが同一のマイクロサイクルにお
いてスケジュールされるべきN個を超える異なる信号を
供給すべきではない。設計におけるLUTのFPGAに
おける実際のLUTへの割当はプレースメント(配置)
ステップ期間中に行なわれる。従って、よりよいタイム
シェアリングFPGAプロセスにおいて、スケジューリ
ング及び配置動作は同時的に行なわれる。
【0181】図31を参照すると、各ボックスは空間
(LUT配置9)及び時間(マイクロサイクル)におけ
る配置である。スケジューリング拘束条件はマイクロサ
イクル(時間)次元におけるLUTの相対的配置に関す
る拘束条件である。
【0182】FPGAは二次元であるので、結合させた
スケジューリングと配置とは図32に示したように三次
元配置問題として解くことが可能である。配置コスト関
数は、PLDのx及びy次元における物理的な拘束条件
コスト及びマイクロサイクル次元におけるスケジューリ
ング拘束条件コストを反映している。従来の配置発見的
手法、例えばシミュレーション型アニーリング、最小切
断ニ分割(min−cut bi−partition
ing)、クラスタ成長、シミュレーション型展開(s
imulated evolution)及び力指向型
緩和(force−directed relaxat
ion)が適用可能である。配置アルゴリズムはスケジ
ューリングによって課される相対的な配置拘束条件に従
わねばならない。
【0183】8.2f 論理エンジン入力及び出力信号 入力/出力信号はユーザサイクルの終了によってアップ
デートせねばならない。然しながら、好適には、最後の
マイクロサイクルを待つのではなく、値が計算されると
それを出力へパスさせる。
【0184】論理エンジンモードの最も簡単な動作モデ
ルにおいては、全ての入力信号が最初のマイクロサイク
ルにおいて使用可能であり且つ全ての出力信号はユーザ
サイクルの終りにおいて必要とされる(最後のマイクロ
サイクルの終了時)。実際に、幾つかの入力信号はあと
に到着し、且つ幾つかの出力信号はより速く必要とされ
る。これらの拘束条件を受付けるために、スケジューラ
コンピュータプログラムは幾つかのマイクロサイクルの
後になるまで後に到着する入力信号を使用するスケジュ
ーリングを回避し、且つ最後のマイクロサイクルの前の
早期に必要とされる出力信号を発生する。これらの早期
の出力信号は早期のマイクロサイクルにおいて夫々の出
力パッドへ経路付けされ且つチップ出力ピン上に供給さ
れねばならない。
【0185】全てのマイクロサイクル期間中にチップ出
力端に値を供給するために、信号を保持するレジスタか
ら出力パッドへ経路付けされた経路はスタティック即ち
静的な経路でなければならない(即ち、セクション8.
3において説明したスタティック論理技術を使用し、そ
の場合に、その経路に対するプログラミングは全てのマ
イクロサイクルコンフィギュレーション内に含まれてい
る)。一実施例においては、単一のスタティックレジス
タが出力すべき値を保持する全ての出力パッドを具備し
ている。
【0186】本発明の一実施例によれば、非同期入力信
号が論理エンジン同期動作と同期される。この同期はそ
の他のシステムにおいて遭遇する同期問題と類似してい
る。ユーザの回路設計がユーザクロックがサイクル動作
する場合に信号が使用可能であることを考慮に入れる。
後に到着する信号は主要なサイクルにおいてこれらの信
号を後に使用するようにスケジューリングすることによ
って受入れることが可能である。
【0187】非同期信号の到着時間を予測することは不
可能である。入力信号から出力信号をアップデートする
ために完全なユーザサイクルが必要とされる。更に、主
要なサイクルのスタート直後に入力信号が変化すると、
その信号は結果の中に含まれない場合がある。従って、
非同期入力の結果が可視的なものであることが保証され
る前に、2つの完全な主要なサイクルが必要とされる。
同期を簡単化させるために、入力信号を直接チップへ供
給するか又はI/Oブロック内のマイクロレジスタを介
して供給する。
【0188】ユーザサイクルにおける幾つかのマイクロ
サイクルが実行された後に入力信号が変化するとスキュ
ー問題が発生する。特に、信号の異なる値が計算の異な
る部分に含まれる場合があり、その際に不正確な結果と
なる場合がある。例えば、図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はこれらのゲートの評価の値で変化す
る)。
【0189】入力/出力ブロックにおけるマイクロレジ
スタを使用する本発明の入力同期はこの問題を回避して
いる。例えば、入力/出力ブロック4100の一部を示
している図41を参照すると、マイクロレジスタ410
1はパッド4105からの入力信号を捕獲し、一方マイ
クロレジスタ4102はフリップフロップ4103から
の出力信号を捕獲する。ビット組200(図2)によっ
て制御されるマルチプレクサ4106は、マイクロレジ
スタ4101、マイクロレジスタ4102、又はライン
4107からの信号を選択的に出力する。パッド410
5への出力信号を捕獲するマイクロレジスタ4104
は、タイムシェアリングモードにおいて値を出力するた
めにリコンフィギュレーション即ち再形態特定からの遅
延に対し一定の(即ち、設計と独立的な)時間仕様を可
能としている。
【0190】8.3 スタティックモード 非同期経路及び特に高速論理は、CLB及び相互接続体
の幾つかをこれらの信号及び計算に対するスタティック
ロジック即ち静的論理として専用化することによって実
現することが可能である。
【0191】第三モード、即ちスタティックモードにお
いては、FPGAの一部が、FPGAのその他の部分が
再形態特定される場合に、単一のコンフィギュレーショ
ン即ち形態特定を維持する。スタティックモードで形態
特定されているFPGAの部分は、機能的には、従来の
PFGAの対応する部分と同一である。付加的なシリコ
ン面積がメモリビットによって消費されるので、スタテ
ィックモードにおけるCLBの論理密度は従来のCLB
の論理密度よりも低い。
【0192】スタティックモードは、典型的に、全ての
メモリスライスを同一のコンフィギュレーション(形態
特定)値へプログラミングすることによって実現され、
その際にコンフィギュレーションに拘らずに機能が同一
状態を維持することを確保する。スタティックモードに
おいては、フリップフロップクロック及びマイクロレジ
スタクロックは互いに何等関係を有するものではない。
従って、マイクロレジスタからスタティックフリップフ
ロップへ値を回復されることは何等意味がなく、且つ禁
止されねばならない。例えば、スタティックフリップフ
ロップはマイクロレジスタクロックを定義する全てのユ
ーザサイクルに対し複数個のクロックサイクルを有する
ことが可能である。従って、マイクロレジスタ値は古す
ぎるかも知れず且つ回復動作はセクション8.1タイム
シェアリングモードにおいて詳細に説明した信号Fir
stCyc(図4)をディスエーブルさせることによっ
て禁止されねばならない。
【0193】8.4 混合モード システム設計が、幾つかが高性能条件で幾つかが中程度
性能の必要性を有する論理タイプの混合を必要とする場
合がある。更に、同期システムは、実時間インタラプト
を取扱うために何らかの非同期能力を有する必要性があ
る。このことをサポートするために、本発明アーキテク
チュアは混合動作モードを提供している。例えば、幾つ
かのコンフィギュレーションではタイムシェアリングサ
イクルで動作し、一方その他のコンフィギュレーション
は論理エンジンシーケンスに結合される。例えば、マイ
クロプロセサバスぺリフェラルは、バス動作を検知する
ための静的論理を有する場合があり且つペリフェラルが
プリンタ制御器、ネットワークインターフェース又はデ
ィスクドライブ制御器等と異なる時間に動作することを
可能とするタイムシェアリグを行なう。この適用例の一
実施例においては、プリンタ制御器が論理エンジンの幾
つかのマイクロサイクルを有する場合がある。更に、C
LB及び相互接続体のサブセットがスタティックモード
でプログラムされ、その場合にそれらがタイムシェアリ
ング又は論理エンジンモード使用可能ではない。
【0194】9.0 その他 9.1 可変深さCLB 論理の所要の深さ(従って、各プログラミング点を超え
るコンフィギュレーションメモリセルの数)は回路設計
依存性であり且つ設計内において変化する。従って、特
定のユーザ設計が各CLBの全てのコンフィギュレーシ
ョンの利点を得ることができない場合には、コンフィギ
ュレーションメモリの幾つかは浪費され、その際に必要
以上のFPGAとなる。従って、本発明に基づく典型的
なCLBはN個のメモリサイクルに対しN個ビットを有
するものであるが、幾つかの実施例における幾つかのC
LBはより少ない数を有している。図35はタイムシェ
アリング型PLDを示しており、y軸上のCLBA−F
及びx軸上のコンフィギュレーション1−6を有してい
る。図35において、各CLBは6個の異なるコンフィ
ギュレーションを有している。従って、アーキテクチュ
ア3500はメモリの36個のCLBマップを必要とす
る(即ち、6個のCLB×6個のマイクロサイクル)。
【0195】修正したアーキテクチュアを図36に示し
てあり、その場合には、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と比較して著しい量のメモリを節約
する。
【0196】典型的な良好に設計されたPLDはその上
で実現されるべき回路設計に適合すべく選択された深さ
の分布を有している。例えば、図37A及び37Bは2
つの2入力LUTを示しており、即ちLUT3700A
(マルチプレクサ3701及びメモリセル3702によ
って供給される8個のコンフィギュレーションを包含し
ている)、且つLUT3700B(マルチプレクサ37
03及びメモリセル3704によって与えられる4つの
コンフィギュレーションを含んでいる)。1列のメモリ
セルが各コンフィギュレーションに対して必要とされ
る。従って、メモリセル3702は8個の列に配列され
ており、一方メモリセル3704は4つの列に配列され
ている。動作期間中に、1列のメモリセルがLUTの内
容として逐次的に選択される。
【0197】コンフィギュレーション即ち形態特定用の
メモリセルを有することのないCLBは尚且つそのコン
フィギュレーションに対してプログラムされねばならな
い。例えば、図36を参照すると、CLB E及びFは
コンフィギュレーション2−8期間中にプログラムされ
ねばならず、且つCLB C,D,E,Fはコンフィギ
ュレーション6−8期間中にプログラムされねばならな
い。幾つかの実施例においては、特定のコンフィギュレ
ーションに対してCLBを実際的にプログラミングする
代わりに、本発明は以下の代替方法を提供している。
【0198】1.最後の値を保持する。CLBプログラ
ミングは最後に実現されたメモリセル上に存在していた
ものを残存させる。
【0199】2.リサイクル。最大数のコンフィギュレ
ーションより少ない数を有するCLBはより高いコンフ
ィギュレーション数に対してそのコンフィギュレーショ
ンを介して再度サイクル動作する(最大で8個のコンフ
ィギュレーションがあり且つCLBでの格納が4ビット
である場合には、CLBは12341234の順番で進
行する)。
【0200】3.アイドリング状態を維持。CLBは何
をすることもなく、即ち所定のハードワイヤードアイド
リング形態を使用する。
【0201】4.CLB毎の選択。どのオプションを使
用するかの選択はCLB毎に基づいて行なわれる。
【0202】図38は異なるマルチプレクサ入力端子に
対して異なる数の形態を有する2入力LUT3801を
示している。同様に、マルチプレクサ3803は5個の
コンフィギュレーションを受取るための2つの入力端子
を有すると共に、4つのコンフィギュレーションを受取
るための2つの入力端子を有している。アイドリング形
態の選択は0,1又はユーザ信号3805とすることが
可能でありその場合は、これらのコンフィギュレーショ
ンに対して、LUTはより少ない数の完全に制御される
入力信号を有するか、全ての入力信号の幾つかの制限さ
れた関数がいまだに使用可能である。全ての入力信号が
存在するものではないコンフィギュレーションにおいて
は、LUT3801はあるメモリセルが入力信号を供給
し且つある定数が入力信号を供給するマルチプレクサと
して記述することが可能である。 9.2 マイクロサイクルインタラプトシミュレーショ
論理エンジンモードは単一クロックシステムで両方に動
作する。然しながら、ネットワークはしばしばマルチク
ロックシステムとして動作する。特に、多くのエンドユ
ーザ設計におけるフリップフロップは、関係のないクロ
ックによってトリガされ、又クロック間のタイミング関
係は決定することは不可能である。換言すると、これら
のクロックは非同期的に動作するものと考えられる。
【0203】本発明によれば、非同期クロックを有する
論理回路網がシミュレーションされる。特に、論理回路
網は、最初に、サブネットワーク即ち副回路網へ分割さ
れ、各サブネットワークは共通のクロック及び中間論理
を共用するフリップフロップを含んでいる。一実施例に
おいては、論理ネットワークはクロックの数を減少させ
るために変換され、その際にサブネットワークの数を減
少させる。従って、各サブネットワークは前述した方法
を使用して独立的に編集され(スケジューリングされ)
且つその他のサブネットワークとは排他的にそれが占有
する8個のコンフィギュレーションスライスからなるサ
ブセットが割当られる。最後に、各サブネットワークと
関連するクロックネットに関する遷移が検知され、ダイ
ナミックスケジューリングとして夫々のサブネットワー
クの評価をトリガする。
【0204】図42は、フリップフロップ4201,4
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は、定
義上、フリップフロップ又はフィードバックループを包
含するものではない。
【0205】図42Aはユーザネットワーク4200の
サブネットワーク4200−1,4200−2,420
0−3への区画化即ち分割を示している。これらのサブ
ネットワークはオーバーラップしており、そのことは幾
つかのブロックの評価は1つを超えた数のクロック遷移
によってトリガすることを可能であることを意味してい
る。極端な一例として、ブロック4214は信号Caの
正のエッジ、信号Cbの正のエッジ、又は信号I1にお
ける何等かの変化によってトリガすることが可能であ
る。
【0206】本発明に対する向上として、同一のクロッ
クのフリップフロップから派生するものではない全ての
ブロック入力信号は、可能である場合には、それらの入
力を供給するフリップフロップを介して前方向へ「再同
期」される。例えば、図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
を形成する。
【0207】図45はネットワーク4200Bを示して
おり、それは機能的にネットワーク4200(図42)
と等価であり、それは本発明に基づいてサブネットワー
ク4200B1及び4200B2に分割され、その各サ
ブネットワークは1つのクロックを有するに過ぎない。
ブロック4213A及び4213Bはブロック4213
を有するに過ぎないネットワーク4200と比較して、
1個のブロックだけネットワーク4200Bのダイ面積
を増加させる。フリップフロップ4204B1,420
4B2,4205A1,4205A2,4205Bは、
ユーザの設計においては「新しい」フリップフロップと
して表わされているが、それらは、通常、付加的なハー
ドウエア資源を必要とするものではない。何故ならば、
マイクロレジスタがブロック出力端において充分な格納
を与え、且つその格納はユーザの設計におけるブロック
出力端においてのフリップフロップの配置とは無関係に
必要とされるからである(セクション2.1参照)。付
加的な資源はフリップフロップ又は主要な入力が中間論
理なしでフリップフロップへ供給する稀な場合において
のみ必要とされるに過ぎない。従って、フリップフロッ
プの数の増加がユーザのネットワークを実現するのに必
要とされるダイ面積を著しく増加させるという蓋然性は
ない。
【0208】ネットワーク4200の例においては、ブ
ロック4213が、1つを超えたクロックエッジで評価
されねばならないので、変換されたネットワーク420
0B内において複製されている。然しながら、典型的な
設計プラクティスにおいては、単一のブロックは複数個
のクロックエッジにおいて動作することが必要とされる
ものではない。従って、再同期はユーザの設計において
ブロック数を殆ど増加させることはない。従って、再同
期変換はダイ面積の増加をさせることはないか殆どさせ
ることはない。
【0209】図46及び47は、スケジューリングを行
なった論理ネットワーク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の遷移によって
トリガされる。
【0210】クロック信号Caの正のエッジを検知した
後に、プロセス1(5)は最初にフリップフロップ42
01及び4202の入力信号をサンプルする(即ち、フ
リップフロップ4201及び4202のQ出力端子へ転
送された入力信号i2及びi3であって、信号i3及び
i2として示してある)。第二に、プロセス1(5)は
図48に示したスケジューリング拘束条件4600Aに
基づいて論理ネットワーク4200−1を評価する。
尚、「<」は「前」を表わしている。従って、例えば、
ブロック4211はブロック4212の前に評価され
る。同様に、「≧」は「後又は同時」を表わしている。
従って、例えば、ブロック4212はブロック4211
の後か又は同時に評価される。
【0211】図46及び48の両方を参照すると、クロ
ック信号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は使用されないままである。
【0212】図51は図50に示したマイクロサイクル
割当に対する状態線図を示している。ステップ5105
において状態マシンが開始した後に、例えばプロセス1
(5)の等のプロセスが開始する(図46においても示
してある)。プロセス1(5)が完了した後に、状態マ
シンはアイドル状態5100へ復帰し、そこで別のプロ
セス、例えばプロセス3(5)が開始するまでシステム
はループ状態となる(ループ5104で示してある)。
同様に、プロセス3(5)が完了した後に、状態マシン
は、更に別のプロセスが開始するまで、アイドル状態5
100へ復帰する。然しながら、図51に示したよう
に、この状態マシンは論理資源に対する「プロセス」競
合の可能性を考慮に入れるものではない。
【0213】本発明によれば、論理ネットワーク420
0B(図45)は、論理ネットワーク4200B(図4
5)は、論理ネットワーク4200(図42)よりも複
雑であるが、実際にはより簡単な擬似的コード変換を有
している。スケジュール4600において、ブロック4
212,4213,4214は1つを超えた位置が割当
てられる。この割当は、マイクロレジスタ書込セレクト
信号が本明細書に開示した実現例によってはサポートさ
れていないCLB毎に独立的に制御されることを必要と
する。この問題に対する解決方法は、アレイ内に専用の
サイト(箇所)を与えることであり、各箇所は任意の組
合わせのマイクロサイクルでクロック動作すべく形態が
特定されたフリップフロップから構成されている。この
ような箇所は、1個のブロックが1つを超えたマイクロ
サイクルでスケジューリングされている場合にマイクロ
レジスタの代りに使用することが可能である。付加的な
利点として、このような箇所は使用していない相互接続
体に対して定数1又は0のいずれかを適用するハードウ
エア資源(業界においては「タイダウン(tie−do
wn)」として知られている)として使用することが可
能であり、その際に相互接続体におけるバッファがフロ
ーティング条件の結果としてスタティックな電流を流す
ことを防止する。
【0214】再同期が行なわれると、フリップフロップ
によって破られることのない主要な入力端から主要な出
力端への経路に沿って発生する場合にのみマイクロレジ
スタに1つを超えた位置が割当てられ、且つそれは異な
るクロックからなる信号によって供給される。論理を複
製することによって、このようなマイクロレジスタは主
要な出力端においてのみ必要とされる。
【0215】ランタイムの環境においては、サブネット
ワーク(マイクロプロセッサにおいて「プロセス」とし
て言及される)はデフォルトによってトリガイベントを
待機している(即ち、プロセスは「ブロック」されてい
る)。本発明においては、トリガイベントはプロセスに
よって特定される入力ピン遷移である。クロックエッジ
が発生すると、対応するサブネットワークが評価され
る。その評価が完了すると、サブネットワークは待機状
態へ復帰し、その場合にシステムは次のクロックエッジ
によってトリガされる。
【0216】シミュレーション資源は制限されているの
で、システムが既に別のサブネットワークを評価するプ
ロセスにある間にクロックエッジが到着する可能性があ
り、その際に多数の異なる動作のうちの1つをトリガす
る。一実施例においては、インタラプトしているサブネ
ットワークが待機状態とされる。資源が使用可能となる
と、例えばインタラプト中のサブネットワーク等の所定
のプロセスが選択され且つ稼動される。このプロセスス
ケジューリングを実現する1つの回路実施例を図52に
示してある。
【0217】図52はマルチクロックシーケンサ520
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信号を供給
する(即ち、「無視」条件)。
【0218】一方、BLOCK信号が高状態である場合
には、システムがアイドルであることを意味する(即
ち、どのサブネットワークも稼動中ではない)。この条
件においては、ANDゲート5204の出力信号(即
ち、信号RUN)が高状態へ移行すると、その特定の高
信号は、その他のANDゲート5204によって供給さ
れるその他の全ての低信号と共に、デマルチプレクサ
(DEMUX)5206へ供給され、その際に、1ホッ
ト又は0ホットパターンを与え、該パターンは、それも
1ホット又は0ホットであるDEMUX5206の出力
信号を決定する。DEMUX5206は、該プロセスの
スタートのマイクロサイクルを反映すべく形態特定され
ている。DEMUX5206の出力信号は、どのマイク
ロサイクルクロックuCが活性されるべきかを決定し、
そのことは、どのマイクロサイクルが活性化されるかを
決定する。DEMUX5206はメモリセル5207に
よってプログラムされ、そのプログラミングはどのマイ
クロサイクルが各トリガ信号uCと関連するかを決定す
る。
【0219】フリップフロップ5205A−5205K
は、夫々、RUN(A)−RUN(K)を受取る。マル
チクロックシーケンサクロック(FPGAチップ上の最
高速のクロック)によってトリガされると、フリップフ
ロップ5205A−5205Nは、夫々、エッジ検知器
5201A−5201Nへフィードバック信号を供給す
る。このコンフィギュレーションにおいては、高信号が
フリップフロップ5205によって出力されると、その
高信号は夫々のエッジ検知器5201をリセットし、従
って1つのエッジの受取りをアクノレッジ即ち認証す
る。
【0220】ORゲート5208A−5208N、AN
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)、従ってその詳細については割愛する。
【0221】メモリセル5211A−5211Nの各々
は、対応するマイクロサイクルがスケジューリングされ
たネットワークにおけるプロセスの最後のマイクロサイ
クルである場合にのみ、それに対応する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のその
他の全ての状態は無効である。
【0222】該回路の動作は以下の如くである。アイド
ル状態において、フリップフロップ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が次のシーケンサクロックにおいてアイ
ドル状態に溜まることを確保する。
【0223】然しながら、未定のエッジが存在する場合
には、単一のDEMUX出力信号が高状態であり、対応
するORゲート5208の出力信号を強制的に高状態と
させる。この高信号は、マルチクロックシーケンサ52
00をして次のシーケンサクロックで適宜のマイクロサ
イクルへエンターさせる。
【0224】マルチクロックシーケンサ5200がシー
ケンスの最後のマイクロサイクルではないマイクロサイ
クルにある場合には、現在のマイクロサイクルに対応す
るメモリセル5211が高信号を格納する。従って、対
応するANDゲート5210の出力信号は高状態であ
り、BLOCK信号が低状態であることを保証する。低
BLOCK信号は、DEMUX5206の出力信号が全
て低状態であることを保証する。対応するフリップフロ
ップ5209における論理1信号が対応するANDゲー
ト5210を介して次のORゲート5208へ流れ、次
いで次のフリップフロップ5209内へ流れる。このよ
うに、マルチクロックシーケンサ5200は次のシーケ
ンサクロックにおいてシーケンス内の次のマイクロサイ
クルへエンターする。
【0225】マルチクロックシーケンサ5200がシー
ケンスの最後のマイクロサイクルであるマイクロサイク
ル内にある場合には、BLOCK信号は高状態であり、
あたかもマルチクロックシーケンサ5200が現在アイ
ドル状態にあるかのように次の状態を決定させる。これ
は、IDLE(アイドル)状態5100を適宜バイパス
することが可能であるという点において、図51によっ
て例示される形態の状態線図よりも改良されたものであ
る。
【0226】上述したシーケンサクロックは自走であ
り、且つ各マイクロサイクルは1つのシーケンササイク
ルの間持続する。フェーズロックループ(PLL)52
14は通常必要とされる。何故ならば、適切なシステム
性能を達成するために、シーケンサクロックはオフチッ
プから実際的に分配されるのには高過ぎる周波数のもの
でなければならないからである。従って、より低い周波
数のクロック信号CINがピン5212を介して供給さ
れ且つPLL5214によって周波数が増加されてシー
ケンサクロックを達成する。PLL5214は又、クロ
ックのオフチップのものとオンチップのものとの間のス
キュー即ち歪を効果的に最小なものとさせる。ある場合
には、トリガ信号はシーケンサクロックに対して同期し
ていることが既知であり(例えば、シーケンサクロック
から分周された信号、別の信号によって特性付けられた
シーケンサクロック、又は何等かのそれらの組合わ
せ)、従ってシンクロナイザ5202A−Kと関連する
本質的な遅延を解消している。同期クロック発生器52
13はこのようなクロックを発生するために設けられて
おり、その際に不必要な同期ステップをバイパスしてい
る。マイクロサイクル期間はシーケンサクロックの期間
を操作することによって変化する。
【0227】別の実施例においては、稼動中のサブネッ
トワークは、インラプトしているサブネットワークが評
価されている間に、先買され且つ待機状態とされる。イ
ンタラプト中のサブネットワークの稼動が完了すると、
先買されたサブネットワークの中間状態が回復され且つ
評価が継続して行なわれる。更に別の実施例において
は、稼動中のサブネットワークが先買され、その中間状
態が廃棄され、且つ稼動中のサブネットワークが待機状
態とされる。資源が使用可能となると、先買されたサブ
ネットワークの評価が回復される。このアプローチは通
常計算環境において代替的なものではないが、この実施
例は、状態節約の使用可能なレベルの数がサブネットワ
ークの数よりも少ない場合に利点を与える。
【0228】サブネットワーク間で転送される信号は
「プロセス間通信」メカニズムを必要とする。特に、サ
ブネットワークAからの信号がサブネットワークBにお
けるフリップフロップへ供給される場合に、サブネット
ワークBは、単に、サブネットワークBに対するクロッ
クエッジが発生する場合にサブネットワークAのデータ
空間からの値を読取る。換言すると、サブネットワーク
A及びBは共用メモリを有している。然しながら、複数
個のサブネットワークからの信号が同一の組合わせ論理
へ供給される場合には、各「プロセス」がその組合わせ
論理の出力信号をアップデートすることを可能とするメ
カニズムが必要である。冗長な論理ブロックを形成する
ことによりこのような条件を迂回することが可能である
が(図45を参照して詳細に説明する)、このようなメ
カニズムは、基本的に、複数個のクロックエッジで変化
する出力信号を実現することを必要とする。
【0229】例えば図53に示した論理ネットワーク5
300のようなある論理ネットワークは、それらの入力
信号の関数として非同期的に遷移する信号を有してい
る。特に、ピン5311A、ピン5311B、クロック
ピン5314上の信号が互いに非同期的であると仮定す
ると、ANDゲート5312Aの出力信号、即ちノード
5313における信号Iは、入力ピン5311A及び5
311B上に供給される信号が遷移する場合にはいつで
も遷移する。ノードIにおける信号遷移が観察される
と、入力ピン5311A及び5311Bへ供給される信
号は評価をトリガするクロックとして考えねばならな
い。然しながら、フリップフロップ5301が入力ピン
5311A及び5311Bにおける全ての信号遷移をサ
ンプルするのに充分な頻度でクロック動作されない限
り、信号Iは出力ピン5311Cへ到達することはな
い。このコンフィギュレーションにおいて、ANDゲー
ト入力信号のうちの1つが変化する度にANDゲート5
312Aは不必要にシミュレーションされ、その際に不
所望にシミュレーションの複雑性を増加させる。
【0230】図54は本発明に基づく論理ネットワーク
5400を例示しており、その場合に、ANDゲート5
312Aはフリップフロップ5301を介して再同期さ
れ、且つそれは論理ネットワーク5300と機能的に等
価である(図53)。論理ネットワーク5400におい
て、重要である場合には(即ち、出力信号に影響を与え
ることが可能)、入力信号をサンプルするために冗長な
論理が形成され、その際にシミュレーションを簡単化さ
せる。特にフリップフロップ5410B及び5410C
はフリップフロップ5301を置換する(図53)。従
って、このコンフィギュレーションにおいては、入力ピ
ン5411D及び5411Eは、夫々、フリップフロッ
プ5410B及び5410Cへ信号を供給する。このよ
うに、クロック信号Cを受取ると(クロック5314に
よって供給される)、フリップフロップ5410B及び
5410CはANDゲート5412Bへ信号を供給し、
それは出力ピン5411Fへ信号を供給する。
【0231】再同期が行なわれない場合には、例えば、
フリップフロップにおいて破られることのない入力から
出力の経路の場合には、各入力端に対して別個のサブネ
ットワークが必要とされる。サブネットワークの数が法
外もなく大きくなることを防止するために、信号のうち
のいずれか1つの遷移が入力信号によって組合わせによ
り共用される単一のサブネットワークをトリガするよう
に入力信号をグループ化させる。このステップは、典型
的に、該経路がフリップフロップで破られることがない
場合にのみ行なわれる。再度、再同期が行なわれない場
合には、典型的に、各入力端に対して別個のサブネット
ワークが必要とされる。
【0232】本発明の一実施例においては、ローカル
(即ち、オンチップ)メモリ内に存在するアイドルのサ
ブネットワークが現在ローカルメモリ内に存在すること
のないサブネットワークに対するコンフィギュレーショ
ンメモリとして又はユーザメモリとして使用するために
ローカルメモリを解放するために格納(即ち、オフチッ
プ)メモリへ転送させることが可能である。従って、サ
ブネットワークは要求によりロードさせることが可能で
あり、且つ同時的にオンチップに存在することは必要で
はない。外部メモリからコンフィギュレーションをロー
ディングするためにある応答の時間の犠牲が必要である
が、このコンフィギュレーションにおけるチップの論理
密度は理論的に無制限である。
【0233】9.3 マイクロレジスタ代替物 特に論理エンジンモードに対して状態格納を提供する別
の方法は、「バイパス」と呼ばれる固定した遅延を持っ
た格納装置によるものである。図10Aを参照すると、
バイパス350及び351が、夫々、上述したマイクロ
レジスタ324及び325を置換している(図3)。バ
イパスは単一ビット装置であって、それは次のコンフィ
ギュレーションまで現在の結果を保存するラッチを有し
ている。単に次のコンフィギュレーションへパスされる
これらの信号はバイパス350及び351内に格納され
る。典型的に、バイパス350及び351は完全なマイ
クロレジスタ324及び325よりもより小型で且つよ
り簡単である。
【0234】図10Bに示した別の実施例においては、
各バイパス350及び351がシフトレジスタ352を
有している。このように、信号が、例えば、バイパス3
50内に格納される場合には、その信号は1マイクロサ
イクル遅延されるものではなく、その代わりに、多数の
マイクロサイクル遅延される。この遅延は該信号をマイ
クロサイクル毎に経路再決定することを節約し、そのサ
イクルに相互接続資源を節約している。
【0235】バイパスは共用することが可能であり、マ
イクロサイクル毎に異なる信号をシフトレジスタ内へ入
れ、且つレジスタ遅延の後に結果的に得られる値を取出
すことが可能である。スケジューラは同一の遅延を有す
る信号を同一のバイパスへ割当てるに過ぎない。
【0236】スケジューラは、シフトレジスタバイパス
の利用を最大とするために論理遅延を同一の長さのもの
とさせる。
【0237】シフトレジスタにおける遅延は以下のうち
の択一的なものである。
【0238】1.アーキテクチュアにおいて固定されて
いるもの。この実施例においては、FPGAは多様なバ
イパス遅延で予め構築されており、その場合に各バイパ
スは固定した遅延を有している。全ての遅延が同じであ
る必要はないので、シフトレジスタ352の長いもの及
び短いものが存在する場合がある。シフトレジスタ長さ
の適切な分布は回路設計における必要とされる最小レジ
スタ格納時間の解析から決定される。
【0239】2.コンフィギュレーション時間において
固定されているもの。この実施例においては、バイパス
はどのビットが出力信号であるかを選択する長さレジス
タを有している。スケジューラプログラムは手元にある
設計に対するバイパス長さを選択する。
【0240】3.各マイクロサイクルにおいて選択可能
なもの。この実施例においては、各マイクロサイクルに
おいて、どのビットが出てくるかを選択することが可能
である。スケジューラは、それらのビットが同一のマイ
クロサイクルにおいて必要とされる場合には、同一のバ
イパス内に2つのビットをスケジュールしてはならな
い。
【0241】4.実施例1−3の組合わせによって決定
されるもの。
【0242】シフトレジスタバイパスの長さはチップ内
のマイクロサイクルの数よりも長い場合がある。一実施
例においては、2つのバイパスをカスケードさせてより
長い遅延を構築することが可能である。
【0243】別の実施例においては、マイクロレジスタ
の幾つかのビットをアーキテクチュアから省略すること
が可能である。減少させたマイクロレジスタは、CLB
がマイクロレジスタビットを有するものではないマイク
ロサイクルに対するバイパスと結合させることが可能で
ある。換言すると、殆どのCLBが全てのマイクロサイ
クルからの出力信号を格納するマイクロレジスタを有し
ており、幾つかのCLBは最初の2,3個のマイクロサ
イクルからの出力信号を保存するためにのみ構築するこ
とが可能である。これらのCLBは他のマイクロサイク
ルにおけるバイパスで次のマイクロサイクルへ信号をパ
スせねばならない。
【0244】9.4 より深い論理に対する代替物 一方、SLBアレイはm個のブロックへ区画化即ち分割
されており、各ブロック内のCLBは論理エンジンモー
ドにおけるm個のシーケンスのマイクロサイクルのうち
の1つにおいてアクティブ即ち活性状態である。部分的
な結果が1つのブロックから次のブロックへパス即ち通
過される。この場合には、最大論理深さはm×nであ
る。スケジューリング及び区画化によって、論理を非常
に効率的に詰込むことが可能である。何故ならば、nよ
りも深いレベルを有する論理部分のみが別個に区画化さ
せることが必要であるに過ぎず、論理の残部は、尚且
つ、全てのシーケンスのマイクロサイクルにおいて稼動
しているからである。例えば、活性なCLBのアレイ5
500を示す図55を参照すると、CLB5501は特
定のシーケンスのマイクロサイクル期間中に活性である
に過ぎず、一方CLB5502は、全てのシーケンスの
マイクロサイクル期間中において活性状態だからである
(8.2a 同期/非同期クロック動作参照)。
【0245】この技術の拡張は、FPGA内におけるコ
ンフィギュレーションスライスの数よりもより多くのマ
イクロサイクルを可能とするマイクロサイクルシーケン
サを調節することである。この実施例においては、シー
ケンサは、コンフィギュレーションを選択するためにマ
イクロサイクル番号の低次ビットを使用して、論理のレ
ベル当たり1つのマイクロサイクルを介してサイクル動
作すべく設定される。この実施例は論理の深さがFPG
Aにおけるコンフィギュレーション数よりも大きい場合
の経路に対するCLBアレイの部分的区画化に関連して
いる。より長いアドレスカウンタは、チップ内のコンフ
ィギュレーション数の単純な倍数ではなくコンフィギュ
レーションの任意の数FPGAがシーケンス動作するこ
とを可能とする。
【0246】9.5 CLB毎のメモリアクセスコンフ
ィギュレーションビット 本発明の一実施例によれば、付加的なレジスタがメモリ
アクセスサイクル期間中にメモリへのアクセスを制限す
る。このレジスタは、メモリサイクルによって影響され
ることのないCLBに対するメモリアクセスを選択的に
ターンオフし、その際に各メモリサイクルに対する電力
消費を減少させている。更に、電力の節約に加えて、こ
のレジスタはメモリへのアクセスを選択的にディスエー
ブルさせることによってメモリのサブセットへのアクセ
スを可能とさせる。例えば、図61を参照すると、信号
MCikはレジスタ720に類似した態様でメモリへの
アクセスを制御するメモリセル(不図示)からのもので
ある(図7B)。従って、この信号は、指定されたメモ
リセルが読取のために選択されているか否かを決定す
る。従って、信号MCikがこの実施例において論理
「0」である場合には、CLKb内のメモリセルは読取
られるか書込まれることはなく、その際に電力を節約し
ている。
【0247】9.6 マイクロレジスタセレクタオプシ
ョン 本発明によれば、マイクロレジスタ上のセレクタの数
(以前に簡単化のためにマルチプレクサとして言及し
た)がチップ面積を節約するために最小化されている。
一実施例によれば、セレクタに対する2つの要素が存在
しており、即ちマルチプレクサとバッファとである。隣
接するレジスタに関してマルチプレクサを共用すること
によりセレクトのピークの利用を低下させる。図56A
及び56Bはマイクロレジスタ(この例においては8ビ
ットレジスタ)5601及び5602及び関連するセレ
クタ(即ち、3出力マルチプレクサ)5601A及び5
602Aを夫々示している。
【0248】図57において、マイクロレジスタ560
1(それはCLB Aから信号を受取る)からマルチプ
レクサセレクタ5602A(それはCLB Bから信号
を受取る)へ付加的な接続5700が設けられている。
このように、CLB Bがコンフィギュレーションにお
けるマルチプレクサの全てを必要とするものではなく且
つCLB Aがエキストラな1つを必要とする場合に
は、CLB Aは共用マルチプレクサを使用することが
可能である。レジスタ5601における全てのビットが
全てのコンフィギュレーションに関して共用されること
は必要ではない。実際に、異なるビットが異なるセレク
タに関して共用されうる。
【0249】図58の回路は、通常マルチプレクサ56
01A及び5602Aと関連しているバッファ(図4の
出力線上)の幾つかを取除いている。例えば、幾つかの
信号がCLB Aによって次のコンフィギュレーション
において使用される場合には、マルチプレクサ5601
Aは経路5801を使用することによって完全にバイパ
スされる。マルチプレクサ5601Aからの信号がCL
B A内に位置されるべき場合には、該信号はフィード
バック経路5802上に供給される。更に、マルチプレ
クサ5601Aからの信号が隣接するCLB B内に位
置されるべき場合には、該信号は直接接続経路5803
上に供給される。
【0250】9.7 低パワー相互接続回路 本発明によれば、信号電圧の振れが制限されており、そ
れにより速度を増加させ且つPLDの相互接続回路にお
ける電力を著しく減少させている。図59はPLD59
00の一部を示しており、それは、ソース(発信元)形
態特定可能論理ブロック(CLB)出力回路5901、
ディスティネーション(宛先)CLB入力回路590
3、相互接続構成体5902を有している。ソースCL
B出力回路5901の出力線5901Aは相互接続構成
体5902を介してディスティネーションCLB入力回
路5903の入力線5903Aへ結合している。
【0251】相互接続構成体5902は、実効的には、
Nチャンネルトランジスタ5908A−5908Nによ
って実現されるRCネットワークである。特に、各トラ
ンジスタ5908A−5908Nは関連する抵抗Qを提
供し、一方各トランジスタ5908A−5908N及び
関連するラインセグメント5910A−5910Nは、
夫々、容量5909A−5909N(コンデンサとして
示してある)を提供する。
【0252】当業者にとって公知の如く、いずれかのト
ランジスタ5908の容量は、そのチャンネル領域の面
積を増加することによって増加される。従って、いずれ
かのトランジスタ5908の幅を増加させることによっ
て抵抗Qを低下させることは、減少効果を有している。
何故ならば、関連する容量5909も増加するからであ
る。
【0253】本発明によれば、トランジスタ5908A
−5908Nのゲート上の電圧を高く維持しながらこれ
らのトランジスタのソース/ドレイン電圧を制限するこ
とによって、容量5909を増加させることなしに実効
的に抵抗Qを低下させ、その際に相互接続構成体590
2を介しての信号転送速度を改善し且つCLA5900
における電力消費を著しく減少させる。従って、本発明
によれば、ソースCLB出力回路5901は低い電圧ト
リガ点及び2つのNチャンネルトランジスタを有する従
来のインバータ5904を有している。
【0254】ソースCLB出力回路5901へ供給され
る論理0信号は、トランジスタ5906のゲートへ供給
され、その際に該トランジスタをターンオフさせる。該
論理0信号はインバータ5904によって反転され、そ
の際にトランジスタ5905へ高信号を供給し、そのト
ランジスタを完全にターンオンさせる。トランジスタ5
905は、そのオン状態において、約2.0Vを相互接
続線5901Aへ転送する。
【0255】一方、ソースCLB出力回路5901へ供
給された論理1信号はトランジスタ5905をターンオ
フし且つトランジスタ5906をターンオンし、その際
に相互接続線5901A上の電圧を接地へプルする。こ
のように、ソースCLB出力回路5901は、高ゲート
電圧駆動(インバータ5904を介し)を供給し、一方
相互接続構成体5902へ最大2Vを確保する(トラン
ジスタ5905及び5906を介して)。出力線590
1A上の電圧の振れを約3.6Vではなく2Vへ制限す
ることによって、相互接続構成体5902の電力条件を
著しく減少させる(式1を参照して以下に説明する)。
【0256】インバータ5907A−5907Nはパス
トランジスタ5908A−5908Nのゲートへ夫々供
給される制御信号を反転させる。インバータ5907A
−5907Nが論理低信号を受取るものと仮定すると、
トランジスタ5908A−5908Nがターンオンし、
その際に出力線5901A上の信号を入力線5903A
へ転送させる。
【0257】ディスティネーションCLB入力回路59
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個
のダイオードで得ることが可能であり、従ってその詳細
な説明は割愛する。
【0258】当該技術分野において公知の如く、CMO
S回路における電力消費は次式と等価である。
【0259】 P=(CL×V1×V2×f)/2 (1) 尚、CLは出力上の容量負荷であり、V1は供給電圧で
あり、V2は相互接続構成体5902の電圧の振れであ
り、且つfは動作周波数である。容量負荷CL、毎秒当
たりの遷移数f、供給電圧V1が適用場面毎に一定であ
ると仮定すると、本発明はPLD5900における電力
消費を著しく減少させる。特に、3.6V信号レベルの
代わりに2Vの信号レベルを与えることによって、本発
明は44%電力消費を減少させる。何故ならば、電圧V
1は変化せず電圧V2が変化するに過ぎないからであ
る。
【0260】9.8 コンフィギュレーションに対する
マルチアクセス メモリアクセスは相互接続体及びLUTアクセスよりも
かなり速いので、メモリをパイプライン動作させること
が可能であり、即ち各メモリサイクル期間中に複数個の
コンフィギュレーションワードを読取ることが可能であ
る。
【0261】マイクロレジスタがCLB出力線へ結合さ
れていると仮定すると(例えば、図3参照)、論理エン
ジンモードにおけるマイクロサイクルは以下のステップ
を包含している(典型的な関連する時間は各ステップに
続くカッコ内に示されている)。
【0262】1.コンフィギュレーションワードを読取
り且つパイプラインラッチ値をアップデートする(5n
s)。
【0263】2.相互接続体を介して論理入力線へ信号
を伝搬させる(15ns)。
【0264】3.ラッチ入力をパイプライン動作させる
ためにLUTを介して信号を伝搬させる(5ns)。
【0265】信号がそれらの夫々LUT入力線へ到達す
るまでLUTコンフィギュレーションは必要とされない
(上述した実施例においては、相互接続が有効となった
後15ns)。従って、LUTコンフィギュレーション
は、相互接続コンフィギュレーションの後メモリから読
取ることが可能である。実際に、LUTコンフィギュレ
ーションに対してメモリを2度目にサイクル動作する時
間がある。
【0266】従って、図62に示した1つの実施例にお
いて、全ての従来のコンフィギュレーションメモリセル
の「後ろ側」に8個のビットを置く代わりに、各対の従
来のコンフィギュレーションメモリセル(即ち、1つが
相互接続用及び別のものが論理用)に対して16ビット
(即ち、メモリセルMC1−MC15内に格納されてい
るビット)を供給する。この実施例においては、コンフ
ィギュレーションデータは2つのメモリアクセスで読取
られ、その際により大きな深さに基づいてメモリ効率の
利点を得ている。この実施例においてはビット線203
が共用されているが、各メモリアクセスに対し付加的な
ラッチ204が設けられており、各ラッチ204は別個
のクロック線を有している。従って、ラッチ2041
(それは相互接続体に対して信号を供給する)及びラッ
チ2042 (それはCLB論理に対して信号を供給す
る)は、夫々、コンフィギュレーションクロック1及び
2によって駆動される。爾後のマイクロサイクルがオー
バーラップされる上述したプロセスと異なり、この実施
例においては、FPGAをコンフィギュア即ち形態特定
するために複数回のメモリアクセスが必要とされる。
【0267】9.9 パイプライン特徴 論理エンジンモードにおけるFPGAのフラッシュリコ
ンフィギュレーションの後に、FPGA計算が従来の対
応で実行される。典型的に、これらの計算はメモリアク
セスよりも長い時間を必要とする。従って、初期的なコ
ンフィギュレーションデータを読取った後に、コンフィ
ギュレーションメモリはある時間期間の間アイドル状態
となる。
【0268】コンフィギュレーションデータが上述した
ようにラッチされると、図2を参照すると、論理及び相
互接続が評価されている間にそのコンフィギュレーショ
ンと同一のマイクロサイクルにおけるメモリアイドル時
間内にメモリ動作を「挿入」することが可能であり、そ
の際に効果的にメモリアクセスをパイプライン動作させ
る。ユーザメモリアクセス、コンフィギュレーション、
ユーザ論理及び相互接続のタイミングは以下の表Bに示
してある。
【0269】 表 B 時間 T0 T1 T2 T3 T4 (メモリ) C0 C1 M0/C2 M1/C3 M2/C4 (論理及び LIP0 LIP1 LIP2 LIP3 相互接続) 尚、Cはコンフィギュレーションアクセスであり、LI
Pは論理相互接続伝搬であり、且つMはメモリアクセス
である。
【0270】コンフィギュレーションC0は時間T0に
おいてコンフィギュレーションメモリから読取られる。
時間T1において、コンフィギュレーションはFPGA
における論理及び相互接続を制御するためにラッチされ
(LIP0)、それはREAD(読取)メモリ動作を発
生させることを包含している。メモリアクセス(M0)
は時間T2において行なわれ、データが時間T3におい
てCLB入力信号として与えられる。メモリアクセスの
後に、メモリは再度サイクル動作されて次のマイクロサ
イクルに対するコンフィギュレーション情報を維持す
る。コンフィギュレーションC1はコンフィギュレーシ
ョンC0によるメモリアクセスの結果を使用することは
できないが、コンフィギュレーションC1は次のメモリ
アドレスを発生する。従って、1サイクルの待ち時間期
間の後(コンフィギュレーションC1に対して)、メモ
リはサイクル当たり1個の転送割合でフローを転送す
る。
【0271】単一のコンフィギュレーションに対するメ
モリアクセス(M)及びコンフィギュレーションアクセ
ス(C)は同一の時間Tにおいて発生することは不可能
であるが、時間(T)の期間は、通常、論理相互接続伝
搬(LIP)ステップによって決定される。従って、メ
モリ(M)は、コンフィギュレーションの論理が評価さ
れている間に多数回サイクル動作することが可能であ
る。実際に、FPGA計算の期間に依存して、マイクロ
サイクルの期間を増加させることなしに、幾つかのメモ
リサイクル(例えば書込に続く読取)を挿入させること
が可能である。本発明のその他の実施例においては、よ
り短い待ち時間を有するパイプラインスケジュールが提
供される。
【0272】 表 C 時間 T0 T1 T2 T3 T4 (メモリ) C0 M0/C1 M1/C2 M2/C3 M3/C4 (論理及び LIP0 LIP1 LIP2 LIP3 相互接続) 表CにおいてM0に対するアドレスはLIP0に関連し
て計算される。そのメモリアクセスは、そのアドレスの
計算が完了するまで遅延され、その計算はLIP遅延全
体よりも小さい場合がある。M0が充分に短いか又はT
1が充分に長い場合には、メモリ動作M0の結果が時間
T1内に得られる場合がある。
【0273】メモリアクセスはFPGAコンフィギュレ
ーションの後に発生するので、アドレス計算が充分に速
いものと仮定すると、メモリはアドレスが計算されるの
と同一のサイクルにおいてアクセス可能である。このよ
うな高速計算は次のものを含んでいる。
【0274】1.コンフィギュレーションデータにおい
て与えられるアドレス計算(即ち、即値)。
【0275】2.そのアドレス値が、最も最後に到着す
る信号よりも充分前にアドレスレジスタに到着する場合
(即ち、迅速な経路)。後者の計算においては、メモリ
は、アドレスが発生されるFPGAサイクルの後の部分
においてアクセス可能である。一実施例においては、リ
コンフィギュレーション即ち再形態特定は、メモリ動作
から結果が戻されるまで遅延される。遅延の量は、最悪
の場合のアドレス発生遅延+メモリアクセス遅延から決
定することが可能である。
【0276】9.10 ROMセルの組込 上述した実施例においては、全てのメモリスライスがR
AMセルを有している。その他の実施例においては、付
加的なメモリスライスはROMセルを有しており、それ
はローカルバス203上のサイト即ち箇所を占有し(図
2)、RAMセルと同一のラッチ204を使用し、且つ
それ自身の制御線205を有している。ROMセルはR
AMセルよりも著しく小さいが柔軟性はより低い。従っ
て、RAMセルと比較してROMセルを使用することの
柔軟性の減少は、ROMセルに関連する低コストとバラ
ンスされる。これらの実施例においては、ROMセル
は、製品をエンドユーザがテストすることを助けるため
の自己テスト等の機能のため、又は例えば直接メモリア
クセス又は特定バスインターフェース(例えば、PC
I)等のある固定した機能を提供するために使用され
る。
【0277】エンドユーザは、その機能を含むスライス
へジャンプすることによってこれらの機能を喚起させ
る。自己テスト機能能力は、固定機能能力よりも容易に
提供される。何故ならば、自己テストは、典型的に、ユ
ーザのコンフィギュレーションとは独立的だからであ
る。対照的に、固定機能能力は、より制限的なものであ
る。何故ならば、コールを行なうエンドユーザスライス
とROMスライスとの間でパラメータをパスするための
構成を設けねばならないからである。パラメータのパス
はユーザメモリとして設定されたRAMスライスの固定
したサブセットを介して行なうことが可能である。パス
されたパラメータ及びメモリ内のパラメータ区域でさえ
も、例えばスタートアドレス、リターンプレーンアドレ
ス等の機能特定性である。
【0278】固定機能は、典型的に、異なる製品に対し
て異なっている。本発明によれば、新たな製品はROM
技術を定義するマスク層を単に変更するだけで開発され
る。一方、ROMは例えばアンチヒューズ等の一度だけ
プログラム可能な装置で実現することが可能である。一
実施例においては、混合ROM及びRAM装置が2つの
既存の業界標準部品、即ちRAMをベースとしたFPG
Aとそのハードワイヤード型等価物の間のハイブリッド
部品として使用される(例えば、ザイリンクスのHar
dWire(商標)装置)。このように顧客はROM密
度の単価の利点を得るために顧客に特定的なROMマス
クの固定コストを支払うが、尚且つ、可変のコンフィギ
ュレーション及びユーザメモリのために使用可能な幾つ
かのスライスを有している。
【0279】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。
【図面の簡単な説明】
【図1】 従来のFPGAコンフィギュレーションビッ
トを示した概略図。
【図2】 本発明に基づくコンフィギュレーションビッ
トスライスを示した概略図。
【図3】 時間多重型CLBを示した概略ブロック図。
【図3A】 複数個のメモリセルブロック、出力マルチ
プレクサ、マイクロレジスタの夫々供給される本発明の
コンフィギュレーション選択信号、読取選択信号、書込
選択信号を示した概略図。
【図4】 図3に示した時間多重型CLBの一部をより
詳細に示した概略ブロック図。
【図5】 図4のCLBの一部をより詳細に示した概略
図。
【図6】 図5の回路に対する真理値表を示した概略
図。
【図7】 2レベルメモリヒエラルキを示した概略図。
【図7A】 2つのローカルバス及び2つのグローバル
バスが真及び相補信号をビット組へ担持する実施例を示
した概略図。
【図7B】 CLB毎にメモリセルへのアクセスを与え
るレジスタコンフィギュレーションを示した概略図。
【図8】 公知の4トランジスタメモリセルを示した概
略図。
【図9】 PLDにおける4トランジスタセルメモリコ
ンフィギュレーションを示した概略図。
【図10A】 本発明の一実施例に基づいて固定遅延を
有する格納装置を具備するCLBを示した概略図。
【図10B】 本発明の一実施例に基づく固定遅延を持
った格納装置を具備する別のCLBを示した概略図。
【図11】 共用メモリを示した概略ブロック図。
【図12】 図11の共用メモリの詳細を示した概略
図。
【図13】 共用メモリに対するワード読取タイミング
を示した概略図。
【図14】 共用メモリに対するワード書込タイミング
を示した概略図。
【図15】 共用メモリに対するバースト読取タイミン
グを示した概略図。
【図16】 共用メモリに対するバースト書込タイミン
グを示した概略図。
【図17】 共用メモリに対する複数個のコンフィギュ
レーションビットを示した概略図。
【図18】 共用メモリに対するコンフィギュレーショ
ンアクセスタイミングを示した概略図。
【図19】 従来の自己同期型回路を示した概略図。
【図20】 図19の回路に対するタイミングを示した
概略図。
【図21】 各外部クロックサイクルに対する複数個の
内部サイクルを発生するタイミング回路を示した概略
図。
【図22A】 本発明の一実施例に基づく単一クロック
シーケンサを示した概略図。
【図22B】 3つのコンフィギュレーションに対する
例示的なタイミングシーケンスを示した概略図。
【図23】 本発明に基づく分割メモリを示した概略
図。
【図24】 CLBに対するレイアウトの一実施例を示
した概略図。
【図25】 PLDの多機能タイムシェアリング動作モ
ードを示した概略図。
【図26】 PLDにおける論理エンジンモードの実現
例を示した概略図。
【図26A】 クリティカルパス上のレベルの対が同一
のマイクロサイクル内に2つのLUTを直列的に適合さ
せるためにマイクロレジスタバイパスを使用して単一レ
ベルへ合体させる本発明の一実施例に基づく圧縮方法を
示した概略図。
【図26B】 装置内のフリップフロップとその他の要
素との間の2つの必要なスケジューリング関係を示した
概略図。
【図27】 ゲート型クロックフリップフロップを示し
た概略図。
【図28】 マイクロサイクルクロックに対する種々の
ライブラリィ要素及びそれらの関係を示した概略図。
【図29】 クロックイネーブル型フリップフロップを
示した概略図。
【図30】 図26の再スケジュールされた論理を示し
た概略図。
【図31】 二次元空間におけるスケジューリング及び
配置ルックアップテーブルを示した概略図。
【図32】 三次元空間におけるスケジューリング及び
配置ルックアップテーブルを示した概略図。
【図33】 時間多重型PLDにおけるマイクロサイク
ルシーケンス動作を示した概略図。
【図34】 時間多重型PLDにおけるマイクロサイク
ルシーケンス動作を示した概略図。
【図35】 各メモリサイクルに対し異なるコンフィギ
ュレーションを持った全てのCLBを示した概略図。
【図36】 あるマイクロサイクルに対してコンフィギ
ュレーションを有することのない幾つかのCLBを示し
た概略図。
【図37A】 1つの可変深さ時間多重型CLBを示し
た概略図。
【図37B】 別の可変深さ時間多重型CLBを示した
概略図。
【図38】 異なる入力に対し異なる数のマイクロサイ
クルを有するCLBを示した概略図。
【図39】 最高速クロックがユーザクロックとして実
現され且つその他の全てのクロックがマイクロサイクル
レジスタイネーブル信号で実現されている場合の適宜の
波形を与える状態マシンを示した概略図。
【図39A】 図39の遅いクロック信号、イネーブル
信号及びマスタクロック信号を示したタイミング線図。
【図40】 本発明に基づくスケジューリングを最適化
する流れを示したフローチャート図。
【図41】 本発明に基づく例示的な入力/出力ブロッ
クを示した概略図。
【図42】 マイクロサイクルインタラプトシミュレー
ションに露呈される回路を示した概略図。
【図42A】 図42のユーザネットワークを複数個の
サブネットワークへ区画化する状態を示した概略図。
【図43】 図42の回路の変形例を示した概略図。
【図44】 図42の回路の変形例を示した概略図。
【図45】 図42の回路の変形例を示した概略図。
【図46】 図42の回路の擬似コード変換を示した概
略図。
【図47】 図45の回路の擬似コード変換を示した概
略図。
【図48】 図46の擬似コード変換に関連して使用さ
れるスケジューリング拘束条件を示した概略図。
【図49】 図47の擬似コード変換に関連して使用さ
れるスケジュ−リング拘束条件を示した概略図。
【図50】 1つのマイクロサイクル割当を示した概略
図。
【図51】 図50に対する状態線図を示した概略図。
【図52】 適宜のマイクロサイクルを決定する回路を
示した概略図。
【図53】 同期した出力信号を有する等価回路を示し
た概略図。
【図54】 同期した出力信号を有する別の等価回路を
示した概略図。
【図55】 拡張可能な論理深さを有する時間多重型P
LDを示した概略図。
【図56A】 自分自身の出力マイクロレジスタ及びマ
ルチプレクサを具備するCLBを示した概略図。
【図56B】 それ自身の出力マイクロレジスタ及びマ
ルチプレクサを具備する別のCLBを示した概略図。
【図57】 マルチプレクサを共用する2つのCLBを
示した概略図。
【図58】 マルチプレクサを共用し且つフィードバッ
ク経路を具備する2つのCLBを示した概略図。
【図59】 相互接続体を有するPLDの一部を示した
概略図。
【図60】 図59のPLDにおいて使用するインバー
タを示した概略図。
【図61】 付加的なレジスタがメモリアクセスサイク
ル期間中にメモリへのアクセスを制限する本発明の一実
施例を示した概略図。
【図62】 コンフィギュレーションデータが2つのメ
モリアクセスで読取られる本発明の一実施例を示した概
略図。
【図63A】 1つの出力マルチプレクサを制御するコ
ンフィギュレーションメモリへ供給されるコンフィギュ
レーション選択信号及びマイクロレジスタへ供給される
書込選択信号を示した概略図。
【図63B】 出力マルチプレクサの別の実施例を示し
た概略図。
【図63C】 図63Bの出力マルチプレクサと比較し
てラッチ数を減少させる出力マルチプレクサの更に別の
実施例を示した概略図。
【図63D】 本発明の出力マルチプレクサに対する入
力信号を示した表の説明図。
【図63E】 図63Aに示した出力マルチプレクサ内
に設けられる回路に対する真理値表を示した説明図。
【図63F】 図63Bに示した出力マルチプレクサに
対するタイミング線図。
【図63G】 図63Aにおいて識別した回路の詳細な
実現例を示した概略図。
【図64A】 本発明によって解消されるスキュー問題
を例示するタイミング線図。
【図64B】 本発明によって解消されるスキュー問題
を例示する回路を示した概略図。
【符号の説明】
200 ランダムアクセスメモリビット組 201 ラッチ 202 セレクトトランジスタ 203 共通ビット線 204 クロック型ラッチ
フロントページの続き (72)発明者 リチャード エイ. カーベリー アメリカ合衆国, カリフォルニア 95030, ロス ガトス, グレンウッド ドライブ 23965 (72)発明者 ロバート アンダース ジョンソン アメリカ合衆国, カリフォルニア 95124, サン ノゼ, テュポロ ドラ イブ 1667 (72)発明者 ジェニファー ウォン アメリカ合衆国, カリフォルニア 94539, フリモント, エンカント ウ エイ 40565

Claims (26)

    【特許請求の範囲】
  1. 【請求項1】 プログラム可能論理装置において、 少なくとも1個の形態特定可能論理ブロックが設けられ
    ており、各形態特定可能論理ブロックは組合わせ要素と
    順序論理要素とを有しており、 前記少なくとも1個の形態特定可能論理ブロックを形態
    特定させるための複数個のプログラム可能論理要素が設
    けられており、少なくとも1個のプログラム可能論理要
    素は、前記組合わせ要素の形態を特定させるための複数
    個のメモリセルを有しており、且つ少なくとも1個のプ
    ログラム可能論理要素は前記順序論理要素の形態を特定
    させるための複数個のメモリセルを有している、ことを
    特徴とするプログラム可能論理装置。
  2. 【請求項2】 請求項1において、更に、1個の形態特
    定可能論理ブロックの複数個の中間状態を格納するため
    の格納装置が設けられていることを特徴とするプログラ
    ム可能論理装置。
  3. 【請求項3】 請求項2において、各形態特定可能論理
    ブロックが、更に、前記中間状態へアクセスするための
    複数個のセレクタを有していることを特徴とするプログ
    ラム可能論理装置。
  4. 【請求項4】 請求項2において、各形態特定可能論理
    ブロックが、更に、少なくとも1個の形態特定可能論理
    ブロックにおける値へアクセスするための複数個のセレ
    クタを有していることを特徴とするプログラム可能論理
    装置。
  5. 【請求項5】 請求項4において、前記値が順序論理要
    素の出力信号であることを特徴とするプログラム可能論
    理装置。
  6. 【請求項6】 請求項4において、前記値が組合わせ要
    素の出力信号であることを特徴とするプログラム可能論
    理装置。
  7. 【請求項7】 請求項2において、各形態特定可能論理
    ブロックが、更に、前記中間状態へアクセスするため又
    は少なくとも1個の形態特定可能論理ブロックにおける
    値へアクセスするための複数個のセレクタを有している
    ことを特徴とするプログラム可能論理装置。
  8. 【請求項8】 請求項7において、前記複数個のセレク
    タが、更に、少なくとも1個の形態特定可能論理ブロッ
    ク内の値へアクセスすることを特徴とするプログラム可
    能論理装置。
  9. 【請求項9】 請求項2において、前記格納装置が第一
    トリガ信号によって制御されることを特徴とするプログ
    ラム可能論理装置。
  10. 【請求項10】 請求項3において、前記セレクタが複
    数個のトリガ信号によって制御されることを特徴とする
    プログラム可能論理装置。
  11. 【請求項11】 請求項2において、更に、複数個のラ
    ッチが設けられており、前記格納装置の各ビットが関連
    するラッチへ供給され、前記複数個のラッチの出力端子
    がマルチプレクサの入力端子へ結合されており、前記マ
    ルチプレクサは前記複数個のプログラム可能論理要素に
    よって制御されることを特徴とするプログラム可能論理
    装置。
  12. 【請求項12】 請求項11において、前記複数個のラ
    ッチが第一トリガ信号によってクロック動作されること
    を特徴とするプログラム可能論理装置。
  13. 【請求項13】 請求項12において、前記格納装置が
    前記第一トリガ信号よりも精度の低い複数個のトリガ信
    号によって制御されることを特徴とするプログラム可能
    論理装置。
  14. 【請求項14】 請求項12において、更に、バイパス
    ラッチが前記形態特定可能論理ブロックと前記マルチプ
    レクサとの間に結合されており、前記バイパスラッチが
    前記複数個のラッチと同一のトリガによって制御される
    ことを特徴とするプログラム可能論理装置。
  15. 【請求項15】 請求項4において、各セレクタが前記
    形態特定可能論理ブロック及び前記格納装置から信号を
    受取るための第一マルチプレクサを有していることを特
    徴とするプログラム可能論理装置。
  16. 【請求項16】 請求項2において、更に、前記順序論
    理要素又は前記組合わせ要素から前記格納装置へ信号を
    選択的に供給するために少なくとも1個の形態特定可能
    論理ブロック内にマルチプレクサが設けられていること
    を特徴とするプログラム可能論理装置。
  17. 【請求項17】 請求項1において、更に、前記プログ
    ラム可能論理要素のうちの1つの出力信号として前記複
    数個のメモリセルのうちの1つの値を供給するラッチが
    設けられていることを特徴とするプログラム可能論理装
    置。
  18. 【請求項18】 請求項2において、各形態特定可能論
    理ブロックが、更に、前記格納装置からの信号を受取る
    ための出力マルチプレクサを有していることを特徴とす
    るプログラム可能論理装置。
  19. 【請求項19】 請求項2において、前記格納装置が前
    記形態特定可能論理ブロックのうちの少なくとも1つの
    入力端子へ結合されていることを特徴とするプログラム
    可能論理装置。
  20. 【請求項20】 請求項1において、更に、前記複数個
    のメモリセルへアクセスするための複数個のラインが設
    けられていることを特徴とするプログラム可能論理装
    置。
  21. 【請求項21】 請求項20において、更に、1つの形
    態と関連した前記複数個のプログラム可能論理要素のう
    ちの所定の組を選択するための手段が設けられているこ
    とを特徴とするプログラム可能論理装置。
  22. 【請求項22】 請求項20において、更に、1個の形
    態特定可能論理ブロック内の1つの形態と関連した前記
    複数個のプログラム可能論理要素のうちの所定の組を選
    択するレジスタが設けられていることを特徴とするプロ
    グラム可能論理装置。
  23. 【請求項23】 プログラム可能論理装置において、 組合わせ要素及び順序論理要素を含む形態特定可能論理
    ブロックが設けられており、 入力/出力ブロックが設けられており、 前記形態特定可能論理ブロック及び前記入力/出力ブロ
    ックを相互接続する相互接続構成体が設けられており、 前記形態特定可能論理ブロック及び前記相互接続構成体
    の形態を特定するための複数個のプログラム可能論理要
    素が設けられており、少なくとも1個のプログラム可能
    論理要素が複数個のメモリセルを有しており、 前記入力/出力ブロックの複数個の中間状態を格納する
    ための格納装置が設けられている、ことを特徴とするプ
    ログラム可能論理装置。
  24. 【請求項24】 プログラム可能論理装置において、 少なくとも1個の形態特定可能要素が設けられており、 前記少なくとも1個の形態特定可能要素を相互接続させ
    るための相互接続構成体が設けられており、 前記少なくとも1個の形態特定可能要素の形態を特定す
    るための複数個のプログラム可能論理要素が設けられて
    おり、少なくとも1個のプログラム可能論理要素は、前
    記少なくとも1個の形態特定可能要素の形態を特定する
    ための少なくとも1個のROMセルを有している、こと
    を特徴とするプログラム可能論理装置。
  25. 【請求項25】 プログラム可能論理装置において、 少なくとも1個の形態特定可能要素が設けられており、 前記少なくとも1個の形態特定可能要素を相互接続する
    ための相互接続構成体が設けられており、 前記少なくとも1個の形態特定可能要素の形態を特定す
    るための複数個のプログラム可能論理要素が設けられて
    おり、少なくとも1個のプログラム可能論理要素は前記
    少なくとも1個の形態特定可能要素の形態を特定するた
    めの複数個のメモリセルを有しており、 前記プログラム可能論理要素のうちの1つの出力信号と
    して前記複数個のメモリセルのうちの1つの値を供給す
    るラッチが設けられている、ことを特徴とするプログラ
    ム可能論理装置。
  26. 【請求項26】 プログラム可能論理装置において、 少なくとも1個の形態特定可能要素が設けられており、 前記少なくとも1個の形態特定可能要素を相互接続する
    ための相互接続構成体が設けられており、 前記少なくとも1個の形態特定可能要素の形態を特定す
    るための複数個のプログラム可能論理要素が設けられて
    おり、少なくとも1個のプログラム可能論理要素は前記
    少なくとも1個の形態特定可能要素の形態を特定するた
    めの複数個のメモリセルを有しており、第一プログラム
    可能論理要素内の前記複数個のメモリセルの数は第二プ
    ログラム可能論理要素内の前記複数個のメモリセルの数
    と異なっている、ことを特徴とするプログラム可能論理
    装置。
JP21752796A 1995-08-18 1996-08-19 時間多重書込可能論理装置 Expired - Lifetime JP3729943B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (6)

* Cited by examiner, † Cited by third party
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