JPH08503111A - 改良型コンフィギャラブルセルアレイ - Google Patents

改良型コンフィギャラブルセルアレイ

Info

Publication number
JPH08503111A
JPH08503111A JP6511347A JP51134794A JPH08503111A JP H08503111 A JPH08503111 A JP H08503111A JP 6511347 A JP6511347 A JP 6511347A JP 51134794 A JP51134794 A JP 51134794A JP H08503111 A JPH08503111 A JP H08503111A
Authority
JP
Japan
Prior art keywords
switch
cell
input
cells
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP6511347A
Other languages
English (en)
Inventor
キーン,トーマス,エイ.
Original Assignee
ザイリンクス, インコーポレイテッド
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=10724616&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH08503111(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ザイリンクス, インコーポレイテッド filed Critical ザイリンクス, インコーポレイテッド
Publication of JPH08503111A publication Critical patent/JPH08503111A/ja
Pending 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/17758Structural details of configuration resources for speeding up configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1733Controllable logic circuits
    • H03K19/1737Controllable logic circuits using multiplexers
    • 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
    • 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/17752Structural details of configuration resources for hot reconfiguration
    • 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/17756Structural details of configuration resources for partial configuration or partial reconfiguration

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

(57)【要約】 行及び列の形態で配列された複数個のセル(12)からなるフィールドプログラマブルゲートアレイ(FPGA)が階層的経路付け構成体によって相互接続される。スイッチ(18,20)がセル(12)をブロック及び階層を形成するためにスイッチ(18,20)を相互接続する経路付けライン(26,28,30,32,34,36,38,40)を有するブロックのブロックへ分割させる。

Description

【発明の詳細な説明】 改良型コンフィギャラブルセルアレイ発明の分野 本発明は、ダイナミックにコンフィギャラブル即ち形態を特定可能な論理要素 からなるコンフィギャラブル即ち形態特定可能なセルアレイに関するものであっ て、そのようなアレイは、通常、フィールドプログラマブルゲートアレイ(FP GA)として知られている。発明の背景 リプログラマブル即ち再書込可能なFPGAは何年もの間市販されている。最 もよく知られている市販されているFPGAのファミリはザイリンクスインコー ポレイテッドから市販されているものである。1つのクラスのこれらの装置は、 それらのコンフィギュレーション即ち形態を制御する制御ビットを保持するため にスタティックランダムアクセスメモリ(SRAM)を使用している。多くのF PGA装置は、固定されたコンフィギュレーション即ち形態を有する従来のマス クプログラム型の応用特定集積回路(ASIC)パーツを置換させている。この FPGAのコンフィギュレーション即ち形態はスタティ ック即ち静的であり、且つパワーがシステムへ印加された場合に非揮発性メモリ からロードされる。殆ど全ての市販されているFPGAは制御格納部に対してス トリームをベースとしたインターフェースを有している。(該制御格納部はFP GAが実現する機能乃至は関数を決定するビットの組を有している。)制御格納 部に対するストリームをベースとしたインターフェースにおいては、データのシ ーケンスがFPGAにおける1つのポートヘ印加され、装置全体に対する完全な コンフィギュレーション即ち形態を与えるか、又はFPGAの固定された(通常 大きな)サブセクションに対して完全なコンフィギュレーションを与える。この ストリームをベースとしたインターフェースは、FPGA自身の上に実現される アドレスカウンタと結合された場合には、隣接するEPROM又はその他の非揮 発性メモリから完全なる装置のコンフィギュレーション(形態)をローディング し且つ何等付加的なオーバーヘッド回路なしでパワーアップ即ち始動する効率的 な方法を提供する。アドレスカウンタを具備するストリームをベースとしたイン ターフェースは、スタンダードのASICを置換するものとして使用されるFP GA用の適切なプログラミングインターフェースである。あるFPGAは、EP ROM内の異なるアドレスにお いて格納されている1組のスタティック即ち静的なコンフィギュレーション(形 態)のうちの1つを使用して部分的に又は全体的にリコンフィギュア即ち形態の 再特定を行なうことが可能であり、且つFPGA上で実現されるデザイン内から リコンフィギュレーション即ち形態の再特定をトリガすることが可能である。 米国特許第5,243,238号に対応する公表された国際出願WO90/1 1648は、以後CAL Iと呼称するアーキテクチュアを開示しており、それ はCAL1024として指定されるアルゴトロニックス(Algotronix )製品内において実現されている。CAL Iは、その制御格納部がシステム設 計者に対してスタンダードのSRAMとして見え、且つアドレスバス、データバ ス、チップイネーブル、チップセレクト及び読取/書込信号を使用してアクセス することが可能であるという点において、その他の市販されているFPGAとは 異なっている。制御格納部をSRAMとしてアドレスするということは、FPG Aの制御格納部(コンフィギュレーションメモリ)をメモリ又はホストプロセサ のアドレス空間内へマッピングするホストプロセサ上で稼動するユーザプログラ ムをサポートし、従って該プロセサはユーザが定義した回路を実現する ためにFPGAのコンフィギュア即ち形態特定を行なうことが可能である。この 構成はCAL 1024 FPGA内において実現されており、各装置により適 宜のセクションを実現することによって、ユーザがアプリケーションをプロセサ とFPGAとの間で区別することを可能としている。該制御格納部インターフェ ースは、例えば共用型データメモリ区域を介してより一般的な技術を使用してI /O即ち入力/出力を行なうことが可能であるが、FPGAとプロセサとの間に 重要な入力/出力(I/O)チャンネルを与えている。この後者のタイプのFP GAは、受動的な制御格納部インターフェースを与えている。何故ならば、必要 に応じて装置のコンフィギュレーション(形態特定)又はリコンフィギュレーシ ョン(形態再特定)を開始するために外部の動因を必要とするからである。 CAL Iアーキテクチュアでの経験及び電子業界における傾向によって、こ の第二の受動的な形態の制御格納部インターフェースは多くの適用場面において 益々魅力的なものとなっている。マイクロプロセサ又はマイクロコントローラは 、現在、コンピュータシステムの広く普及したコンポーネントであり、且つ殆ど のボードレベルのシステムは1個包含している。ストリームをベースとした「能 動的」F PGAプログラミングアプローチの主要な利点は、リコンフィギュレーション即 ち形態再特定を開始させるためにオーバーヘッド回路が必要とされないことであ る。マイクロプロセサ又はマイクロコントローラが存在するシステムにおいては 、幾つかの理由によりFPGAインターフェースをエミュレートする「受動的」 RAMが好適である。それらの理由としては、 (1)FPGAコンフィギュレーション(形態)はマイクロプロセサのプログ ラム及びデータメモリ内に格納させることが可能である(別のメモリチップに対 する必要性を取除くことにより部品数が減少される)、 (2)ボード上の既存のデータバス及びアドレスバスをFPGAを制御するた めに使用することが可能である(コンフィギュレーションEPROMとFPGA との間の専用の配線を取除くことによりプリント回路基板の面積を節約する)、 (3)FPGA制御格納部はマイクロプロセサにより読み書きすることが可能 であり、その際にFPGAとマイクロプロセサとの間のI/Oチャンネルとして 使用することが可能であり、その際にFPGAとプロセサバスとの間の付加的な 配線を節約し且つ外部装置と通信を行なうためにFPGAプログラマブ ルI/Oピンを自由な状態とさせることの可能性を与える、 (4)コンフィギュレーションデータ及びその他の技術に対する圧縮技術をサ ポートするためにマイクロプロセサのインテリジェンスを使用することが可能で あり、そのことはFPGAを再度プログラムする場合により多くの柔軟性を与え ることを可能とする。 更に、関連するEPROMがそのコンフィギュレーション即ち形態を保持する 「能動的」FPGAと、能動的なマイクロプロセサチップがEPROMと簡単な プロセサとを包含する受動的FPGAとの間のコストにおける差はわずかなもの である。マイクロコントローラがFPGAを再度プログラミングを行なうことと は別の機能を有するものではないものであっても、容易に再プログラム可能であ るという能力は受動的なFPGAを魅力的なものとしている。 電子業界における別の傾向は、I/O装置と特定のマイクロプロセサとの間に インターフェースを与えるマイクロプロセサ用の「サポートチップ」を設けるこ とであった。これらの装置の例としては、低帯域幅直列I/O用のユニバーサル 非同期受信器送信器(UART)、低帯域幅並列I/O用のプログラマブルペリ フェラルインターフェース(PPI) 及びネットワーク及びディスクドライブへの一層高い帯域幅接続用の種々の特別 のチップ等がある。これらのサポートチップは、プロセサに対して、データがそ れに対して又はそれから転送されるI/O又はメモリアドレス空間における位置 として見える。あるサポートチップはインタラプトラインを介してプロセサをイ ンタラプト即ち中断させるか、又は直接メモリアクセス(DMA)動作のために バスを支配することが可能である。多くの場合に、受動的(FPGA)チップは サポートチップに対する後継者として見ることが可能であり、一方においてはそ の制御格納部を介してプロセサに対してインターフェースを与え、且つ他方にお いては、例えばアルゴトロニクス(Algotronix)CAL1024装置 の場合にプログラマブル即ち書込可能なI/Oライン等の多数の柔軟性のあるI /Oラインを介して外部世界へのインターフェースを与える。 受動的FPGAチップは多数の利点を有している。例えば、多数のサポートチ ップを設ける代わりに複数個のコンフィギュレーション即ち形態のライブラリィ を具備する単一のFPGAを設けることの方が費用効果的である。更に、複数個 の機能に対して単一のFPGAを設けることによりプロセサ製造業者のカタログ における装置数が減少される。更に、リ コンフィギャラブル即ち形態再特定可能なFPGAは変更可能なI/O機能をサ ポートすることが可能であり、例えば、単一の外部コネクタがシリアルポート又 はパラレルポートのいずれかとして使用することが可能である場合等がある。受 動的RAM制御インターフェースの場合には、FPGAはその他の機能をサポー トすることも可能である。 異なる組の機能を実現するためにFPGAがリコンフィギュア即ち形態が再指 定されると、マイクロプロセサはコンフィギュレーション(形態)メモリヘアク セスせねばならない。1つのリコンフィギュレーション即ち形態再特定は、典型 的に、多数の制御格納部へのアクセスを必要とし、変更されるべきコンフィギュ レーションメモリの各ワードに対して1つのアクセスが必要である。以下に示す ように幾つかの重要なクラスのリコンフィギュレーション(形態再特定)が分か っている。 (1)1つのアプリケーションが終了し且つ完全に異なるアプリケーションが FPGAを使用することを所望する場合に、アプリケーションスワッピングが発 生する。この場合には、FPGAチップは完全にリコンフィギュア即ち形態が再 特定され、通常、スタティックコンフィギュレーション(静的形態)から行なわ れる。 (2)計算における新たな局面を実現するためにFPGAの比較的大きなセク ションをアプリケーションがコンフィギュア即ち形態特定せねばならない場合に 、タスクスワッピングが発生する。例えば、ソート用アプリケーションがコンフ ィギュレーション(形態)Aを使用して小さなバッチのデータを最初に完全にソ ート即ち種類分けを行ない次いで、コンフィギュレーション(形態)Bを使用し て、これらのソート即ち種類分けしたものを完全にソートしたデータのストリー ムへマージ即ち合体させる場合がある。この場合に、そのアプリケーションは両 方のコンフィギュレーション(形態)に付いての知識を有しており且つコンフィ ギュレーションBにおいて異なるリソース即ち資源を変化させることが必要であ るに過ぎない。後の時点において、コンフィギュレーションA自身を回復させる ことが可能である。 (3)スタティックコンフィギュレーションファイルからロードされる代わり に、アプリケーションプログラムによって入力データに基づいて幾つかのセルの コンフィギュレーションがダイナミック即ち動的に計算される場合には、データ 依存性リコンフィギュレーション(形態再特定)が発生する。しばしば、スタテ ィックコンフィギュレーションが最初にロードされ、次いで比較的小さなサブセ ットのセ ルがダイナミックにリコンフィギュア即ち形態再特定が行なわれる(即ち、チッ プが動作中に形態再特定が行なわれる)。このクラスのリコンフィギュレーショ ン(形態再特定)の重要な例は、オペランド即ち(例えば、定数乗数又はサーチ ストリング等)が、レジスタ内に格納されるのではなく、乗算又はソート(種類 分け)ユニットを実現するために使用されるロジック内へ直接的にフォールドさ れる場合である。この技術はしばしば小型で且つ高速の動作ユニットとなるので 有益的である。 (4)デバッグのためにゲート出力へのアクセスが発生する。CAL I F PGA上の全てのロジックセルの出力は制御格納部のビットへマップされる。デ パッグ用プログラムが使用可能であり、それはディスプレイ又は設計レイアウト に関する情報を読み戻して内部配線に関する論理レベルを示す。 (5)I/O用のゲート出力へのアクセスは、前述したデバッグ用ゲート出力 へのアクセスと類似している。然しながら、この特定の場合には、小さな割合の ロジックノードのみ、即ち入力及び出力レジスタに対応するもののみが繰返しア クセスされる。制御格納部における異なる位置における幾つかのビットからの計 算の結果又はそれに対する入力を表わす1個のワードを迅速に組立てることの能 力は、こ の技術の効果性にとって重要である。 装置を全体的に又は部分にリコンフィギュア即ち形態再特定を行なうために必 要なアクセスの回数従って時間を減少させることが望ましい。FPGA又はFP GA型の装置において内部信号への直接的アクセスを可能とするCAL I以外 の幾つかのシステムが提案されており、例えば、それらは以下の文献に記載され ているものがある。即ち、「セル型のメモリアレイ内の論理(Cellular Logic−in−Memory Arrays)」、William H. Kautz著、IEEE・トランズアクションズ・オン・コンピューターズ、 Vol.C18、No.8、1969年8月、「メモリコンピュータにおけるロ ジック(A Logic in Memory Computer)」、Har old S. Stone著、IEEE・トランズアクションズ・オン・コンピ ューターズ、Vol.C19、No.1、1970年1月、及びザイリンクス社 の米国特許第4,758,985号「マイクロプロセサ指向型形態特定可能論理 要素(Microprocessor Oriented Configura ble Logic Element)」、等の文献があるが、これらの提案の 全ては主要な欠点を有しており市販されたものはない。 制御格納部への単一アクセスでユーザの設計のレジスタに関してワード幅の読 取り又は書込み動作を外部プロセサが実施することが可能であるように、FPG A上に実現された設計において状態情報をアクセスする手段を改良することが望 ましい。従って、制御格納部インターフェースはプロセサとFPGAとの間で高 帯域幅コミュニケーションを可能とする。また、FPGAとプロセサとの間の計 算を同期させるメカニズムを与えると共に、FPGAコンフィギュレーション即 ち形態を形成するための静的設計用の従来のツールを使用することを許容すると 共にダイナミックリコンフィギュレーション(動的形態再特定)をサポートする ために設計コンフィギュレーション(形態)ファイルを拡張するためのメカニズ ムを与えることが望ましい。 CAL 1024のアーキテクチュアは1989年に使用可能であった1.5 マイクロメータ技術に基づくものであった。セルがそれらの最も近い隣りのもの のみ接続されているCAL Iアーキテクチュアにおける1つの問題は、アレイ 寸法が増大すると共にチップのエッジへの距離、従って遅延が増加するので、ア レイの中間におけるセルの有用性が低下するということであった。この問題は、 処理技術における改良によってチップ当たり実現可能なセル 数が1,024から約16,384へ増加することを意味する場合に一層深刻な ものとなった。このことは遅延の増加によりスケーリング即ち拡縮性の問題を発 生し、且つ性能を所望の基準以下のものへ低下させることとなった。従って、C AL Iアーキテクチュアを使用してチップのスケーリングを行なうことが可能 であるが、それは性能を犠牲にするものである。1.5μm技術で単一チップ上 で得られるセル数が制限されるので、多数の計算アプリケーションの場合に典型 的な大きな設計が複数個のチップを使用して実現することが可能であるようにチ ップの境界を超えてのスケーリング能力を確保することが望ましいものであるこ とを意味していた。当時の処理技術の制限のために、シリコン面積に対するアー キテクチュアを最適化させることが必要であり、且つこの最適化を行なうために 速度が犠牲にされることがあった。オリジナルのアルゴトロニクス(Algot ronix)CAL 1024チップは、周辺アレイ信号をセル型アレイのエッ ジ即ち端部上のパッドへもってくるように設計されており、従って該チップはプ リント回路基板上においてより大きなセル型アレイにカスケード接続させること が可能であった。パッケージング技術はチップ技術程迅速に開発されておらず、 且つパッケージI/Oピン数 に関する制限がより高いセル密度チップの完全にカスケード可能なものを製造す ることを非経済的なものとしている。 CAL Iアーキテクチュアは多数のその他の欠点を有していた。例えば、既 存のCAL I FPGA内の1個のセルへアクセスするために、そのセルのア ドレスを計算するために5乃至6個のプロセサ命令が必要であり、このことは時 間を必要とし且つ動作を遅滞化させている。既存のCAL Iセルアレイの場合 には、使用されるルーチング(経路付け)アーキテクチュアは、チップあたりの セル数が増加すると、中間のセルを介してのルーチング即ち経路付けがかなり遅 延を増加させることを意味していた。更に、CAL 1024装置においては、 グローバル信号はアレイ内の全てのセルへ結合即ち送給され、従ってそれらのセ ルは同時的に信号が送られる。そのことの論理的帰結として、高クロック周波数 においては、グローバル信号が高パワー即ち電力を消費する場合がある。発明の要約 本発明の目的とするところは、上述した従来技術の欠点のうちの少なくとも1 つを解消するか又は緩和する改良したフィールドプログラマブルゲートア レイを提供することである。 本発明の別の目的とするところは、装置を1つのコンフィギュレーション(形 態)から別のコンフィギュレーションへ全体的に又は部分的にリコンフィギュア 即ち形態再特定を行なうために必要な制御格納部アクセス回数及び時間を減少さ せることである。 本発明の更に別の目的とするところは、制御格納部への単一アクセスでユーザ の設計のレジスタ上でワード幅の読取り又は書込み動作を外部プロセサが行なう ことを可能とすることである。 本発明の更に別の目的とするところは、FPGAコンフィギュレーション(形 態)を形成するために静的設計用の従来のツールを使用することを可能とする一 方ダイナミックリコンフィギュレーション(動的形態再特定)をサポートするた めにデザインコンフィギュレーション(設計形態)ファイルを拡張するメカニズ ムを提供することである。 本発明の更に別の目的とするところは、FPGAと外部プロセサとの間の計算 の同期メカニズムを提供することである。 本発明の更に別の目的とするところは、大型のセルアレイにおけるセル間のル ーチング即ち経路付けにおいて発生する遅延を減少させるために異なる数のセル を有するアレイに関して動作すべくスケーリ ングすることの可能な新規なルーチング(経路付け)アーキテクチュアを提供す ることである。階層的経路付け構造を有するセルアレイ 本発明によれば、行及び列の形態で配列した複数個のセルからなる二次元フィ ールドプログラマブルゲートアレイ(FPGA)が提供される。該アレイ内の各 セルは、その隣りのセルの各々に対して、少なくとも1ビット幅で少なくとも1 個の入力及び1個の出力接続部を有している。各セルは、更に、セル間接続を行 なうことを可能とするために、プログラマブル即ち書込可能なルーチング(経路 付け)ユニットと、プログラマブル即ち書込可能のファンクション(関数乃至は 機能)ユニットを有している。該プログラマブルファンクションユニットはファ ンクションユニット出力信号を発生するために幾つかの入力信号の複数個のファ ンクション即ち関数乃至は機能のうちの1つを選択することが可能である。1個 のセルのルーチングユニットはそのセルの入力をファンクションユニット入力ヘ 指向させ、且つ、更に、そのセルの入力及びファンクションユニット出力を隣り のセルへ指向させる。該アレイ内の複数個のグループのセルが、所定数のセルに 等しい長さの付加的な導体へ接続されるように配列されている。該アレイ内のセ ルはスイッチを介して該付加的な導 体へ結合されている。典型的に、各セルに対しこのような4個の導体が設けられ ており、2つの導体は該アレイ内において1つの方向に配列されており、且つ該 アレイ内においてそれと直交する方向に2つの導体が配列されている。各対の導 体は、その対における一方の導体が1つの方向における信号を担持し且つ他方の 導体がそれと反対の方向における信号を担持するように配列されている。この新 規なアーキテクチュアは、以後、CAL IIアーキクチュア、又は単にCAL IIとして呼称する。 所定ブロックのセル、例えば4×4ブロックのセルは、少なくともセル長さ4 (4個のセル長さ)の付加的な導体を有している。これらのブロックは繰返しユ ニットの形態で配列されてこれらのセルからなる1個のアレイを形成し、その際 に16個のこのような4×4ブロックのセルは16個のセル×16個のセルのユ ニットで、その各4×4ブロックが付加的な導体を有するものであり、4個のセ ルの各行又は列と関連する一層長い導体は、以後、フライオーバーと呼称する。 16×16ブロックのセル自身が付加なフライオーバー導体を有している場合が ある。 より大型のセル型アレイにおいては、階層的ルーチングの構造は任意の数のレ ベルへ拡張することが可能であり、例えば、第三レベルが長さ64の導体 を使用し、且つ第四レベルが長さ256の導体を使用する等の拡張が可能である 。 この配列は、スケーリングが距離に関して対数的であるという利点を有するア レイのスケーリングを行なうことを可能としており、その際にセル間の遅延を著 しく減少させている。特に、信号が発生源セルからセルブロック境界に位置した それと最も近い関連したスイッチへ伝播し、次いで適宜のフライオーバーに沿っ て宛先セルへ伝播する。従って、この構造は、隣りのセルとの接続を行なうのみ の簡単なアレイの上に構築されており、一実施形態においては各場合に4倍スケ ーリングが行なわれる長さがスケーリングされる多様なルーチング即ち経路付け 資源を有する階層的セル型アレイを構成している。 異なるレベルのルーチング(経路付け)資源を提供することの主要な利点は、 該アレイ上でセルからセルへ経路付け即ちルーチングを行なうのに必要な導体セ グメントの数を最小とすることが可能であるということである。例えば、近隣相 互接続のみを使用してアレイ内の2つの点の間に経路を設ける場合に、ルーチン グセグメントの数はそれら2つの点の間のセル数に等しくなるが、一方、本階層 的相互接続の場合には、セグメント数はセル間の距離の対数で増加する。単一ソース指向型配線 階層的経路付けを有するプレプログラマブルセル型アレイの一実施例において は、該アレイ内の全てのワイヤ即ち配線は指向付けされており且つ単一ソース( 源)を有している。従って、3状態ドライバは使用されていない。一実施例にお いては、該アレイ内の全ての接続は完全に対称的であり、従って該アレイが回転 された場合に、その構成は不変のままである。単一ソース(源)配線はマルチソ ース配線よりも実現が一層簡単であるという利点を有している。マルチソース配 線は、付加的な柔軟性を与えることを可能とするが、かなりの面積のオーバーヘ ッドを必要とし、且つ異なるドライバが同一のワイヤ即ち配線上で反対の値を与 えようとする場合に、競合を発生させる。競合はかなりのパワー即ち電力を散逸 させ、それは装置を破壊させる場合がある。競合は本発明によって解消されてお り、本発明においては、1本ワイヤ即ち配線は単一のマルチプレクサ出力によっ て駆動される。対称性の特徴は、ユーザの設計をアレイ上にマップためのCAD ソフトウエアを簡単化させ、且つアレイ面積のより良好な利用を与えるためにこ れらの設計の階層的ブロックを回転又は反映させることを可能としている。 好適には、フライオーバーとセルとの間の接続を 与えるスイッチはスタティックRAM制御型マルチプレクサである。4セル及び 16セル境界におけるスイッチは直接的な近隣接続を可能とすると共に一層長い フライオーバー導体を介しての付加的な接続をも可能としている。自動経路付け最適化、移植可能性 この改良したFPGAにおける階層的経路付け資源は2つの主要な態様で使用 することが可能である。第一に、より長い接続が使用可能であることを無視して 、ユーザはより簡単な近隣プログラミングモデルを使用して設計することが可能 である。このような場合には、ソフトウエアが新たな経路付け資源から利益を享 受することの可能なレイアウト内のネットを自動的に検知し、且つこれらの資源 を利用して設計の性能を高速化させる。第二に、ユーザは改良したプログラミン グモデルを使用して設計を行ない且つエキストラな経路付け資源に対して明確な 割り当てを行なうことが可能である。この場合には、セル型アレイ内の同一の点 においての種々のレベルの相互接続に対し異なるネットを割り当てることにより エキストラな密度が得られる。例えば、長さ16のワイヤ即ち配線は、そのサブ ユニット内のローカルな相互接続と干渉することなしに、サブユニットに亘って (例えば、幾つかの4×4ブロック)信号 を担持することが可能である。1個のブロックのセルをバイパスするためにフラ イオーバーが使用される場合には、ユーザ設計のブロックはこれら4セル又は1 6セル境界上のFPGA内に配置させることが必要な場合がある。フライオーバ ー経路付けの自動的付加は使用することがより簡単であり、且つ与えられたFP GAチップにより与えられるルーチング即ち経路付けのレベルの数とは独立的で ある。フライオーバーを付加するためにソフトウエアを使用することは異なるチ ップ間での設計移植可能性を与えており、且つブロックをバイパスするためにフ ライオーバーを使用する改良型プログラミングモデルを使用すること、又は適宜 手動的にフライオーバー資源を割り当てることにより、与えられた資源をより効 率的に使用することが可能である。 上述した如く低レベルCADソフトウエアを使用するか、又は可能である場合 にはより長いワイヤ即ち配線への信号に対して自動的に経路付けを行なうために チップ自身の中のハードウエアを使用して、より長い経路付け資源を使用するこ とが可能である。このことは、更なるデバイス(装置)の移植可能性乃至は可搬 性を与え、且つ既存の設計に対して何等変更を必要とすることなしに、付加的に 一層長いワイヤ即ち配線で既存チップの特別に「高速」のバー ジョンを形成することを可能とする。この一層長い経路付け配線の「ダイナミッ ク(動的)」選択は、CADソフトウエアを簡単化させ、それをより高速で稼動 することを可能とする。一層長い配線の動的選択は、FPGAチップの動的再書 込が関与する適用に対して特に魅力のあるものである。 本発明の別の側面によれば、FPGAを介しての信号の伝播速度が、FPGA 上に製造された回路を使用して、高速化させることの可能な信号を自動的にフラ イオーバー上にマッピングすることにより改善される。 この方法は、信号がセルを真直に通り抜ける経路付けに対応する制御格納部ビ ットパターンを検知し、フライオーバー下側の1つのグループのセルが、全て、 そのフライオーバー方向に対して与えられた4入力ゲートを使用することにより そのフライオーバーの方向にその信号の経路付けを行なう場合を検知し、且つ適 宜の隣りのマルチプレクサの4入力ゲートの出力を入力として取り、該4入力ゲ ートのうちの1つからの出力を該フライオーバーの両端におけるスイッチへ供給 し、その際に該信号が該フライオーバーにより自動的に且つ近隣経路付けにより 担持され、且つ該フライオーバー上の一層高速の信号が該フライオーバーの端部 におけるスイッチにより選択され ることを特徴としている。 この方法はスケーリング可能であり、且つこのグループ全てが長さ16フライ オーバーの方向に信号の経路付けを行なう場合には、長さ16フライオーバーの 下で4つの長さ4フライオーバーからなる1つのグループへ適用することが可能 である。このことは、隣りのセルからの信号を受取るために使用される4入力ゲ ートの出力を入力として取る4入力ゲートを使用して行なわれる。 使用されるゲートのタイプは、検知される制御ビットに依存する。例えば、N ORゲートは西経路付け用マルチプレクサにおける東から西への方向においてビ ット0,0を検知するために使用される。一方、1,1のビットパターンを検知 するためには、NANDゲート及びそれと関連する論理回路が使用される。ブロックの一致が容易な形態再特定を可能とする 本発明の重要な特徴は、ユーザ設計の階層的ブロックとして特定されたセルか らなる矩形区域(例えば、4×4ブロック又は16×16ブロックのセル)は、 直接的に、即ち簡潔的な物理的関係によって、そのブロックのインスタンスを表 わすCAL II FPGA装置のコンフィギュレーションメモリ(制御格納部 )における1つ又はそれ以上の矩形区域と 対応即ち一致している。このことは、ユーザの設計の1個のブロックを同一の寸 法の別のブロックでダイナミックに即ち動的に置換させることが可能であること を意味しており、例えば、レジスタを同じ寸法のカウンタと置換させることが可 能であることを意味している。従って、本発明によれば、ホストプロセサは、制 御格納部RAMの対応するエリアのみをリコンフィギュア即ち形態を再特定する ことが必要であるに過ぎない。両方のブロックに対する二進データはユーザの設 計から予め計算することが可能であり、且つ実際の置換は、当該技術分野におい て公知の如く、ブロック転送動作を使用して非常に迅速に行なうことが可能であ る。ダイナミックリコンフィギュレーション即ち動的形態再特定期間中に、ブロ ック定義と関連したデフォルトへ初期化させるか、又はそのコンフィギュレーシ ョン即ち形態が回復されているユニットの前の状態を回復するために初期化され るか、又はリコンフィギュレーション即ち形態再特定を実施するアプリケーショ ンプログラムによって決定される適宜の値へ初期化させることが可能である。ワイルドカード特徴 本発明の別の側面によれば、単一の書込アクセスの結果として1個を超えた数 のワードの制御メモリ が同時的に書込まれるランダムにアクセス可能な書込可能制御格納部を有するF PGAが提供される。行及び列デコーダは、夫々の行及び列デコーダへのアドレ スバスと関連するワイルドカードレジスタへ結合されているスタンダードなNO Rゲートにより実現することが可能である。マッチ特徴 一方、本FPGAは、マッチレジスタによって実現される固定したものではな くプログラマブル即ち書込可能な複数個の行デコーダを有している。更に、本F PGAは、マッチレジスタにより実現される複数個の列デコーダを有している。シフト・マスク特徴 本発明の更に別の側面によれば、ビットラインドライバへの内部データバスと 外部データバスとの間にシフト・マスクレジスタが設けられている。このことは 、アドレスされたワードのどのビットが現在の転送のために優位性があるかの選 択において付加的な柔軟性を与えることを可能とし且つ情報を例えば外部プロセ サに対して左側に整合される等の一層便利な形態で提供するという利点を有して いる。 好適には、FPGA書込可能制御格納部は、1つのワードのうちの幾つかのビ ットが選択的にプログラム即ち書込まれることを可能とするためのマスク ユニットを有している。このマスクユニットは、マスクされていないビットに対 して左側に整合した(揃えられた)データを拡張するか又は幾つかのビットがマ スクされた1つのワードから左側に整合した即ち揃えられたデータを発生させる ことが可能なシフトコンポーネントを有している。 本FPGAにおいては、ユーザ設計のレジスタに対する制御格納部インターフ ェースを介してワード幅読取及び書込アクセスを行なうことが可能である。内部 状態情報へアクセスするために付加的なRAM状インターフェースを設けること によって、レジスタアクセスはアンチヒューズ、EPROM、EEROM又はマ スクプログラマブル論理装置へ拡張することが可能である。コンフィギュレーション及び状態情報分離 好適には、CAL II FPGAにおいては、内部ノード上に存在する値は 、アドレス空間内のいずれかのワードが内部ノード上の値を表わすビットを有す るか又はコンフィギュレーション(形態)情報を有するビットを有するが、それ ら両方を有するものではないように、制御格納部アドレス空間において表われる 。内部ノードにおける値は、アドレスバスからの1つ又は小さなサブセットのモ ードビットを検査することにより、状態情報に対応するアド レスがコンフィギュレーション情報に対応するアドレスと区別することが可能で あるように、制御格納部アドレス空間において表われる。 本FPGAは、第一組のビット及びワードラインドライバに対して直交して配 列されている別の組のビット及びワードラインドライバを有しており、本装置に おけるデュアルポート型メモリにおける論理状態情報は水平方向(ビット)又は 垂直方向(ワード)のいずれかにおいてワード幅でアクセスすることが可能であ る。マルチプルアドレスデコーダ 本発明の別の側面によれば、RAM内のビットライン及びワードラインは複数 個のアドレスデコーダと関連しており、且つ付加的なアドレスビットがこれらの 二次的なデコーダへ供給される。1個を超えた数のアドレスデコーダを使用する ことにより、内部メモリビットと外部アドレスとの間により複雑なマッピングを 行なうことが可能であり、メモリの複数個のビットが単一のアドレスを有する可 能性を包含する。この技術は、外部アドレスにおける異なる装置機能に対応する 論理フィールドを保存する一方、メモリアレイの高密度化を可能とする。FPGAで集積化されたマイクロコントローラ 本発明の更に別の側面はマイクロプロセサ又はマ イクロコントローラと同一のチップ上に集積化したFPGAアーキテクチュアに 関するものであり、その場合に、FPGA制御格納部メモリはプロセサアドレス 空間内にマッピングされる。オンチップタイマ このFPGAアーキテクチュアはグローバルクロック信号をドライブするため にチップ上に集積化したプログラマブルカウンタ・タイマを有することが可能で ある。外部・内部プログラム可能性 プログラミングのために使用されるCAL II FPGAにおけるアドレス バス及びデータバスは、外部信号のみならず、セル入力及び出力へ接続させるこ とも可能である。 外部システムに対して、CAL IIアレイは2つの別々の装置のように見え る。即ち、スタティックランダムアクセスメモリ制御格納部と、実効的にはユー ザの設計であるプログラマブル論理ユニットである。メモリ制御格納部は、通常 、ホストコンピュータのアドレス空間内にマッピングされ、迅速なコンフィギュ レーション即ち形態の変化を行なうことを可能とする。CAL II FPGA においてランダムアクセス制御メモリを使用することは、その関数乃至は機能が 変化されたセル又はセルの一部 のみを再度プログラムすることが必要であるに過ぎないことを意味している。プ ログラマブル論理ユニットは、プログラマブル入力/出力ブロックによって取囲 まれている複数個の機能セルからなるアレイから構成されていることを理解すべ きである。高速経路 本発明の別の側面によれば、1個のセルの機能ユニットは複数個の入力変数を 受取るための複数個の入力信号を有しており、該入力変数は並列経路において処 理され、その際に並列経路のうちの1つが速度が最適化され、従ってユーザは臨 界的な信号を最適化した経路へ指向させてその信号の処理における遅延を最小と することを確保することが可能である。計算と同期された形態再特定 本発明の更に別の側面によれば、CAL IIアレイのレジスタ内に直接的に データを書込む方法が提供される。この方法は、CAL IIアレイにおいて実 現される回路における計算を同期させるための信号又はクロックとして制御格納 部へのビットライン又はワードラインを使用するステップを有している。このよ うに、本FPGA上で実現されるユーザの論理はマイクロプロセサに対して同期 される。 本発明の更に別の側面によれば、FPGA上に実現される回路により外部信号 がモニタされる。この モニタ方法は、モニタされるべき外部信号を、関連するI/Oパッドを有するこ とのないセルアレイの周辺部における位置へ接続させるステップを有している。 使用可能な外部信号は、データバス、アドレスバス、モード、読取/書込、チッ プイネーブル、チップセレクト、リセット、及び強制高インピーダンス(FHZ )を包含している。 好適には、本FPGA上で実現される回路が制御メモリに対する外部読取及び 書込を検知し、且つ自動的にそれ自身をクロック動作させて入力値を処理するか 又は次の出力値を発生する。 本発明の更に別の側面によれば、1つ又はそれ以上の置換可能なブロックとし て回路を実現することが可能であり、各置換可能なブロックの各潜在的なコンフ ィギュレーション(形態)に対するコンフィギュレーションデータはメモリ内に 格納することが可能であり、該置換可能なブロックは関連する境界付けボックス 寸法を具備する複数個のブロックの階層的選択から選択され、該ブロックは同一 の境界付けボックスを有する別のコンフィギュレーションによって置換可能であ り、且つI/O信号がブロック周囲上の同一の点に表われるFPGAが提供され る。 これらの側面及びその他の側面は、添付の図面と共に以下の説明から明らかな ものとなる。図面の簡単な説明 図1は本発明の好適実施例に基づくFPGAの代表的なエリア即ち区域を示し た拡大平面図であり、個々のセル及びスイッチの間の空間的な二次元的関係を示 しており、その代表的な関連する区域は16個のセル×16個のセルを有してい る。 図2は図1における点線で示した区域のより詳細な拡大図であって、代表的な 区域におけるセルとスイッチとの間のルーチングパス即ち経路付け用の経路を示 している。 図3は基本的経路付けレベルにおける即ち近隣相互接続のみを有する場合の図 1に示した代表的区域の概略ブロック図である。 図4は図1に示したアレイ構造を示しており、明確性のために近隣相互接続を 省略し、且つ4個のセル×4個のセルのブロックに対する付加的な第一レベルの 経路付けフライオーバーを有する状態を示している。 図5は図4と類似した図であるが、長さ4のフライオーバーを省略してあり、 且つ図1の16個のセル×16個のセルのブロック全体に対する経路付けフライ オーバー配列を示しており且つ長さ16のフライオーバーのみが示されている。 図6は一行のセルを示すと共に図3及び4に示した近隣接続及び長さ4フライ オーバー配列を使用してどのようにして信号をセルのラインに沿って通過させる ことが可能であるかを示した概略図。 図7はチップの周囲に沿ってI/Oユニットが設けられておりCAL IIア ーキテクチュアを実現した64×64セルアレイを示した概略図。 図8はCAL IIアーキテクチュア装置のこの実施例の行及び列デコードユ ニット、制御及びグローバルI/Oユニット及びグローバルバッファを示した上 述した装置のブロック図。 図9はCAL IIアーキテクチュアの上述した実施例を含むシステムの概略 図において使用されている図8に示したCAL IIアレイに対する論理記号を 示した説明図。 図10は図2の代表的区域において示されるセルのうちの1つの拡大概略図。 図11は図10に示したセルの機能ユニット48により実現可能な機能を示し た説明図。 図12は図10に示した出力要素50,52,54,56の別の表示を示した 説明図。 図13はスイッチへの相互接続を示した4セル境界におけるスイッチの概略図 。 図14はスイッチへの相互接続を示した16セル 境界におけるスイッチの概略図。 図15は4セル境界において使用するスイッチング機能の概略レイアウト図。 図16は図15と類似しており且つプログラム用ビット信号への接続及びグロ ーバル信号を有する4セル境界において使用する拡張されたスイッチング機能を 示した説明図。 図17は同様の概略図であるが16セル境界において使用する好適なスイッチ ング機能に対する場合の説明図。 図18は自動的にローカル信号をフライオーバーへ移動させるためのNORゲ ート回路を示した概略図。 図19は図18のNORゲートの一実現例を示した説明図。 図20は本発明の好適実施例に基づく機能ユニットの第一バージョンを示した 説明図。 図21は本発明の好適実施例に使用する機能ユニットの別のバージョンを示し た説明図。 図22は本発明の好適実施例に使用する機能ユニットの更に別のバージョンを 示した説明図であって、このバージョンは入力選択乗算器の対称性を減少させた ものである。 図23は図20に示したものと類似した機能ユニ ットの別の実施例を示した概略図。 図24は本発明に使用する2入力機能ユニットを示した概略図。 図25は本発明に使用する3入力機能ユニットの概略図。 図26aは本発明のFPGAと共に使用される各パッドに対する好適な入力/ 出力アーキテクチュア構成を示した説明図。 図26bは図26aに示したアーキテクチュア用の種々のI/Oブロックモー ドの表を示した説明図。 図26cはユーザがプログラム可能なマルチプレクサによって幾つかの供給源 からグローバル信号をとることが可能な回路例を示した説明図。 図26dは図26aの入力/出力アーキテクチュアにおいて使用されるスイッ チを示した概略図。 図27aはCAL IIアレイにおける各セルのレジスタ又はノード出力へア クセスするための行及び列アドレス構成及びメモリマップを示した説明図。 図27bは活性論理構造が埋め込まれているRAMセルのアレイから構成され ているRAMプログラム型FPGAを示した概略図。 図27cは制御格納部におけるワード境界を図示した図27bに示したRAM プログラム型FPGAの拡大説明図。 図28は行デコーダ及び列デコーダがマッチレジスタによって置換されている RAMプログラム型アレイを示した説明図。 図29は4,096個のセルを有するCAL IIアーキテクチュアの一実施 例によって実現されるFPGAと共に使用するアドレスバスフォーマットの表を 示した説明図。 図30は特定のモード値を使用することによって選択される制御格納部のエリ アを示した表を示した説明図。 図31aは制御格納部から読取られ且つそれへ書込まれるバイトがこの表に示 されるフォーマットを有する場合のセル経路付けモードを示した表を示した説明 図。 図31bは特定のフォーマットで制御格納部から読取られ且つそれへ書込まれ るバイトを示したセル機能モードを図示した表を示した説明図。 図32a,32b,32cは、行アドレス及びワイルドカードレジスタ値の3 つの異なる組合わせによりアドレスされる行を示した各説明図。 図33a,33b,33cはスタンダードのアドレスデコーダで実現されるワ イルドカードマスク及びシフトレジスタアドレス用回路を示した各説明図。 図34aは読取サイクルで使用するワイルドカー ドレジスタと共に使用するマスクレジスタ及びアライメント(整合)ユニットを 示した概略ブロック図。 図34bは図34aに示したマスクレジスタのスイッチのうちの1つの内部レ イアウトを示した概略図。 図34cはシフト/マスク動作に続いて外部インターフェース上で右揃え形態 で提供されたビットを示した状態情報の表を示した説明図。 図35は分離レジスタ技術を使用して例示的なアクセスにおいて検索される状 態アクセスビットを示した表を示した説明図。 図36aは図34aのものの別の構成を示した概略図。 図36bは入力レジスタ及びマスクレジスタの幅が出力バスの幅よりも大きい 場合に図34aの回路がどのようにしてシステムをサポートするために拡張させ ることが可能であるかを示した説明図。 図37は状態アクセスをサポートするために修正されている図20に示したも のに類似した機能ユニットを示した概略図。 図38は、制御格納部の複製したビットが制御格納部の通常のビットと同一の ビットライン上に存在することが可能な構成を示した概略図。 図39は典型的な適用場面においてのFPGAと、 マイクロプロセサと、メモリ装置との関係を示した概略図。 図40は本発明の一実施例に基づいてFPGA上に実現した4ビット幅AND ゲートを示したFPGAアーキクチュアの概略図。 図41は図40に類似した概略図であるが、アレイの一列内に配列した16個 のセルを有する4個の4セル×4セルブロック上に実現した16ビット幅のAN Dゲートの概略図。 図42は汎用論理ブロックを形成するためにどのようにしてANDプレーンが 構成され且つORプレーンと合体されるかを示したPAL型構造を示した概略図 。 図43は2個の4セル×4セルブロックにおける5個のセルからなる1つの行 からの1ビットアキュムレータ構成を示した概略図。 図44はルックアヘッドキャリィを有する3ビットアキュムレータを示した概 略図。 図45は図44に示したものと類似しているがより複雑な配列であるキャリィ ルックアヘッドを有する16ビットアキュムレータを示した概略図。 図46は単一の4セル×4セルブロックにおいて実現された4ビット同期カウ ンタの概略図。 図47はフライオーバー経路付け資源を有する4 個の4セル×4セルブロック上に実現した16ビット同期カウンタの概略図。 図48は2個の4セル×4セルブロックにおいて実現された16:1マルチプ レクサであって3段の2:1マルチプレクサとして実現されている構成を示した 概略図。幾つかの好適実施例の詳細な説明 図1は本発明の好適実施例に基づくFPGAIOの一部を示した拡大概略平面 図である。複数個のセル12がチップ上に直交する行及び列の形態の二次元アレ イの形態で配列されている。セル12は4セル×4セルブロック14に配列され ており、且つその4セル×4セルブロックは16セル×16セルブロック16内 に配列されている。セルブロック14は、そのセル境界におけるルーチング即ち 経路付け用スイッチ18及び20により定義されている。別のブロック14は、 全ての境界におけるルーチング(経路付け)スイッチ18により定義することが 可能である。図1から理解される如く、このようなルーチング即ち経路付けをス イッチするには2つのタイプがあり、即ち4セル×4セルブロックの間の境界を 形成するルーチングスイッチ18と、16セル×16セルブロックの間の境界を 形成するルーチング スイッチ20とである。ルーチングスイッチ18及び20は、種々のワイヤ即ち 配線及びセル12の間の説明を与える。これらの異なるタイプのルーチングスイ ッチの構造及び機能については後に詳細に説明する。 図2は図1において点線の輪郭で示したエリア即ち区域21の拡大部分を示し ており、その全てのルーチング即ち経路付け資源が示されている。図2,3,4 ,5を参照して説明するように、セルを互いに接続することが可能な3つの主要 な方法が存在している。図3において最もよく示される如く、第一レベルにおい ては、近隣の(近接する)セルは近隣相互接続22及び24によって互いに相互 接続される。これは上述したCAL Iアレイの構造である。図2及び4におい て示される如く、各4×4ブロック14においては、付加的なワイヤ即ち配線乃 至は導体26,28,30,32(以後、長さ4フライオーバーと呼称する)が 近隣相互接続間のルーチング即ち経路付けを行なう。4個のセルを有する各行又 は列に対して、2つの長さ4フライオーバーが存在している。図4においては、 セルの各行又は列に対する各対のフライオーバーは該セルの片側に示してあり、 一方図2においては、それらのフライオーバーはセルの1つの行又は列の両側に 位置されている。 セルブロック14における図2及び4に示したセルの最も上側の行においては、 長さ4フライオーバー26及び28が設けられている。長さ4フライオーバー2 6は東の方向において信号を導通させ、且つ長さ4フライオーバー28は西の方 向において信号を導通させる。垂直方向のフライオーバー30(北)及び32( 南)は、4セル×4セルの各列に対して設けられており、従って4×4アレイ内 の各セル12は、近隣相互接続22,24を有するのみならず、長さ4フライオ ーバー26,28,30,32のいずれかに対して相互接続することも可能であ る。図2から理解される如く、水平方向に配設されたフライオーバー26(E) 及び28(W)は、垂直方向のフライオーバー30(N)及び32(S)と同じ く、スイッチ18と20との間において相互接続される。 図2及び4に示した長さ4フライオーバーを有するセル14の各4×4ブロッ クは、それ自身が、繰返し可能なセルとして考えることが可能である。各セルが 図4に示した如くその近くの近隣乃至は隣接するセルと通信する複数個のセルか らなるアレイを形成することが可能である。このアレイにおける各位置において 、2本の長さ4ワイヤ(配線)と1本の長さ1ワイヤ(配線)とが設けられてお り、それ らの対は反対方向における近隣の即ち隣接するセルへパスしている。従って、こ の4セル×4セルブロックからなるアレイは、その最も近くの隣りのものへ出力 を供給するために4つの指向付けされたワイヤと、その4つの隣りのものから信 号を受取るための4本のワイヤと、4つの方向に指向付けされた長さ4ワイヤか らの入力を受取るための4本のワイヤとを有している。 同一の態様で、16×16アレイの場合には、長さ16ワイヤ34,36,3 8,40を図2及び5に示した如くに、長さ4ワイヤと同一の態様で付加するこ とが可能である。図2は図1に示した16×16アレイの一部のみを表わすもの であるが、それは長さ16フライオーバー34,36,38,40を包含してい る。これらの長さ16フライオーバーは水平方向及び垂直方向の両方である。こ の例示は図5に最もよく示されており、それは4セル×4セルブロックを図示し ており且つ図4に示した構成よりも一層高いレベルにおけるものである。各ブロ ックは4つの行のセルと4つの列のセルとを有しており、各行のブロックに対し て4つの東長さ16フライオーバー34が存在しており、そのブロックにおける 各行のセルを接続するための1つの長さ16フライオーバーが存在している。そ のことは西、北、 南長さ16フライオーバーに対しても同じことが言える。図2から理解される如 く、水平及び垂直方向長さ16フライオーバー34,36,38,40は、一層 大きな境界スイッチ20の入力及び出力であり且つより小型の4セル×4セル境 界スイッチ18への入力である。長さ16フライオーバーのいずれかから個別的 なセル12への直接的な接続は存在していない。 明らかに、このプロセスを16セル×16セルブロックの一層大きなスイッチ 20で繰返すことが可能である。16セル×16セルブロックの場合には、スイ ッチ20において、各方向において3本のワイヤが設けられており、例えば、3 本が東の方向に出ており、3本が西の方向に出ており、3本が東の方向へ入って おり、且つ3本が西の方向に入っている。次のステップは、64×64セルブロ ックであり、その場合に、図示していないスイッチは、隣り同士のブロックの間 の各方向において4つの接続を有している。上述した配列は、図3に示した簡単 なアレイの上に構築した階層的セル型アレイを定義しており、長さが階層の各レ ベルにおいて4の係数でスケール即ち拡縮する多様なルーチング即ち経路付け資 源を有している。階層的アレイのレベルがLとして表わされる場合には、図3( 近隣相互接続のみ)に示 したセル型アレイの場合にはL=Oであり、且つ階層の各段階においてアレイへ 適用されるスケール係数はSとして表わされ、それは、本実施例においては、4 であり、与えられた階層レベルに対する基本的なセルにおけるフライオーバーワ イヤ長さ及びアレイブロック寸法(ブロックの側部長さ)はSLによって与えら れる。例えば、近隣相互接続アレイの場合には、40=1である。最も高いレベ ルのスイッチを除いて、レベルL境界スイッチ上のブロック間で全部で2(2L +1)本のワイヤに対する各方向において2L+1本のワイヤが存在している。 最も高いレベルにおいては、該スイッチはより高いレベルへ接続するワイヤ即ち 配線を有しておらず、従ってその境界スイッチへ入るか又は出るワイヤは2(2 L)本である。通常、セルユニットにおけるFPGAチップの幅及び高さはSL 数倍であり、尚Lは相互接続の最も高いレベルである。注意すべきことであるが 、S=4の場合には、最大レベル数=log4チップ幅であり、この場合にチッ プ幅はチップ高さと等しいものと仮定しており、より少ない数のレベルを設ける ことが便利である場合がある。又、明らかなことであるが、S=4がスケール係 数として特に魅力のあるもののように見えるが、例えばS=2、S=3、S=5 、S=8等のその他の値を使用する ことも可能である。理解される如く、階層的スケーリングのプロセスは、異なる 接続を有する基本セルへ適用することが可能であるか、又はレベル0において基 本的繰返しユニットを表わす複数個のセルからなるクラスタ、即ち図3に示した 構成のもので開始することが可能である。 ルーチング即ち経路付け用資源の異なるレベルを設けることにより、FPGA アレイ上の1つの点から別の点(セルからセル)への経路付けのために必要なセ グメント数を最小とすることを可能とする。近隣接続のみを有するアレイ上で2 つの点即ちセルの間で直線経路が考慮される場合には、ルーチング即ち経路付け 用のセグメント数はそれら2つの点の間のセル数と等しい。それと対比して、図 6に最もよく示される如く、階層的相互接続においては、セグメント数は、発生 源乃至は供給源セルと宛先セルとの間の距離の対数に比例する(及び数個のロー カルセグメント)。例えば、発生源がセル2にありそれからセル3を介してセル 12へ経路付けされる場合には、階層的ルーチング(経路付け構成に基づいてフ ライオーバーを介しての実効的距離は5であるが、近隣セルルーチング(経路付 け)距離は10である。図7はCAL IIアーキテクチュアを実現するチップ の64セル×64セル構成を示している。 注意すべきことであるが、長さ64フライオーバー(レベル3)は設けられてい ない。何故ならば、単一の64セル×64セルブロックのみの場合には、それら はルーチング遅延において著しい減少を与えるものではないからである。 CAL II構成の場合には、アレイ内の全てのワイヤ即ち配線は指向付けが されており、且つ単一の発生源を有している。従って、3状態ドライバは使用し ていない。更に、アレイ内において、接続は完全に対称的であり、即ちアレイが 回転又は反射された場合に、その構成は不変のままである。これら2つの特性は 著しい利点を与えている。第一に、マルチソース即ち発生源が複数個のワイヤは 、付加的な柔軟性を可能とするものであるが、かなりの面積のオーバーヘッドが 必要となり、且つ異なるドライバが反対の値を同一のワイヤ即ち配線上に与えよ うとする場合に競合が発生する。競合は著しい電力散逸を発生し且つ装置を故障 させる場合がある。このことは、CAL IIの単一ソース即ち発生源の構成に よって解消される。第二に、アレイの対称性は、ユーザの設計をアレイ上へマッ ピングさせるCADソフトウエアを簡単化させ、且つアレイのより良好なる利用 を与えるために、これらの設計の階層的ブロックを回転又は反射させることを可 能とする。然 しながら、理解されるように、階層的スケーリングの原理は、対称的でないアレ イに対して有効に適用することが可能である。更に理解すべきことであるが、前 述した説明では単一ワイヤの場合についてのみ説明しているが、階層的スケーリ ング技術は、ワイヤをブロック間に走行するマルチビットバスで置換した場合に も同様に適用可能である。 図8は64×64CAL IIアレイのブロック図を示している。図8は、基 本的に、アレイのフロアプラン即ち間取図であり、且つRAM制御格納部をアド レスするための行デコーダ40と列デコーダ42と全部で128本のI/Oライ ンとが設けられていることを示している。更に、グローバル信号用のバッファ4 4と、該グローバルバッファと関連したグローバルI/046とが設けられてい る。128本のI/Oラインのみならず15本のアドレスラインと32本のデー タラインとが設けられている。更に、4個のグローバル入力G1乃至G4と、リ セット入力及びユーザ入力の全てを強制的に高インピーダンス状態とさせるFH Z入力とが設けられている。 図9は図8に示したCAL IIアレイ用の論理 用するスタティックRAM用のプログラミングイン ングモードを開始させ、且つ通常、それは大きなア 例えば本CAL IIアーキテクチュアの4096セル実施例等のチップのアレ イにおける単一のチップへアドレスし、且つアドレスされたチップに対してデー タを読取るか又は書込むために使用することが可能である。これらの信号に関す るタイミングは、50nsサイクル時間を有する例えばHM628128(日立 )等の一般的なSRAMパーツと互換性がある。SRAMプログラミングインタ ーフェースは、リコンフィギュレーション即ち形態再特定のために必要とされる プロセササイクル数を最小とするために設計された付加的なハードウエア資源に よって補充されている。これらの資源は、初期的には非活性状態であり、従って 本装置はパワーアップ時には、正にSRAMのように見える。 図10は図1及び2に示したFPGAのセル12のうちの1つの拡大概略図で ある。第一に、このセル12は8個の近隣相互接続を有するものとして示されて おり、それらのうちの2つは各々北、南、東及び西方向のセルに対して指定され ている。更に、セル12は、更に、東及び西フライオーバー26及び28及び北 及び南フライオーバー30及び32へ も接続されている。セル12内には機能ユニット48が設けられており、且つセ ル12内には夫々の近隣相互接続からの信号を受取るための種々のスイッチ50 ,52,54,56が設けられている。機能ユニット48のSELF出力は、マ ルチプレクサ50,52,54,56を介して、夫々ラインNout、Sout 、Eout、Woutへ接続させることが可能である。又、セル12においては 、機能ユニット48は、近隣即ち隣接するセル及びフライオーバーから入力を受 取り且つ3つの出力X1,X2,X3を夫々発生する3つのマルチプレクサスイ ッチ58,60,62からの入力を受取る。 機能ユニット48はその1つが各セル12内に存在しており、2つのブール変 数A及びBの任意の組合わせ関数を実現することが可能である。更に、機能ユニ ット48は幾つかの3入力関数のうちの1つ、即ち真又は反転入力を有する2対 1マルチプレクサか、又は真又は反転したクロック、データ及びリセット入力を 有するD型エッジトリガ型フリップフロップ等の関数(機能)を実現することが 可能である。これらの機能は図11に図示してある。 上述した如く、各セル12は4つの近隣入力と且つ4つのフライオーバーから の入力とを有している。図10から理解されるように、いずれかの近隣入力 はマルチプレクサ58,60,62を介して機能ユニット入力X1,X2,X3 のうちのいずれかへ接続させ、次いでプログラマブルマルチプレクサ50,52 ,54,56を介してセル近隣出力Nout,Sout、Eout,Woutへ 接続させることが可能である。セル機能ユニット出力は制御格納部内の1個のビ ットを読取ることにより外部装置へ与えることが可能である。このことは、アプ リケーションがCAL II計算からの結果を読取ることを可能とする。更に、 該アレイ上で実現した回路内のレジスタ値は制御格納部へ書込みを行なうことに よりセットすることが可能である。垂直方向に隣接したセルは、RAM内の隣接 したビットラインへ接続した状態アクセスビットを有しており、このことは、C AL IIアレイ内に実現されたユーザの設計のレジスタを8ビット、16ビッ ト又はデータバスの選択した幅にしたがって一度により多くのビットを読取り且 つ書込むことを可能とする。従って、理解させる如く、CAL IIアレイアー キテクチュアは、オペランドをメモリ位置へ書込むことが可能であり且つ結果を メモリ位置から読取ることが可能な「活性メモリ」モデルの計算を実効的にサポ ートしている。 1個のセルと関連したルーチング即ち経路付けは、 添付の図面の図12,13,14を参照して最もよく説明することが可能である 。図12は、図10に示した如く、セル12内に設けられた基本的なルーチング 即ち経路付け用の資源を示している。「SELF」という記号は、設計によって 要求される論理演算を実施する機能ユニット48の出力を示している。従って、 理解されるように、セル内においては、ルーチング即ち経路付けはNout、S out、Eout,Woutの夫々への信号のルーチング即ち経路付けを行なう ために4個の4:1マルチプレクサ50,52,54,56を必要としている。 これらのマルチプレクサの各々は、機能ユニット48からSELF信号を受取り 、従って各マルチプレクサは他の3つの方向のうちの1つからの信号の経路付け を行なうことが可能であり、即ち、マルチプレクサ56(Wout)の場合には 、出力は北、南、東又はSELFのいずれからくることが可能である。同様に、 他のマルチプレクサは夫々の出力を与えるために種々の他の入力から選択するこ とが可能である。これらのマルチプレクサをCMOS技術で実現する場合は米国 特許第5,243,238号(CAL I特許)に開示されており、アレイ内の その他の全てのマルチプレクサはこの技術を使用して実現することが可能である 。 階層における次のレベルにおいて、即ち4セル×4セルブロックの接続部にお いては、別のスイッチング機能が設けられねばならない。このことはスイッチ1 8を図示する図13において最もよく理解される。図13はスイッチ18の潜在 的な入力及び出力を示している。スイッチ18は水平方向の東/西へ向かう信号 のみを取扱うが、垂直方向の信号に対するスイッチは同一である。スイッチ18 は6個の入力を有しており、即ちセル12からの2個の入力と、長さ4東及び西 フライオーバーからの2個の入力と、東及び西長さ16フライオーバーからの2 個の入力である。4×4境界は近隣境界とアレイ内の同一の位置において発生す るので、スイッチ18が直接的な近隣接続と一層長いワイヤ即ち配線に対する付 加的な接続を有することが効果的である。近隣ワイヤと一層長いワイヤの両方を 包含することにより、近隣接続のみを使用する設計を付加的なスイッチングユニ ットを使用することなしに階層的アレイ上へマッピングさせることが可能である 。一般的に、アレイ内のレベル「L」における1個のスイッチの出力はレベル「 L−1」における1個のスイッチの出力の「数%」(即ち包含している)である 。図13に示される如く、一層長い長さ16ワイヤをより低い階層レベルに役立 つスイッチ18と接続させるこ とが便利である。一層高いレベルの階層を使用するより大きなアレイにおいては 、長さ64又はそれより長いワイヤを該スイッチへの入力として設けることも可 能である。然しながら、スイッチに対する階層を4セル境界において保存するた めに、唯一の出力は長さ1(近隣即ち隣接)及び長さ4信号である。 図14は16セル×16セルブロック(図1及び2参照)の境界に位置された スイッチ20上のスイッチング機能の入力及び出力を図示している。16×16 境界も4×4セル境界において発生するので、アレイの階層及び規則性を保存す るために、16セル境界スイッチは、4セル境界スイッチのルーチング即ち経路 付け順列の全てを提供するが、長さ16ワイヤ(配線)に関する付加的なオプシ ョンも提供するように配列されている。このことは、図14に示した配列(構成 )によって図示されている。図14において、階層は16×16ブロックで停止 し、且つ長さ64ワイヤは存在しない。然しながら、より大型の実施例において は、より長いワイヤを使用するスイッチを設けることが可能である。 図15は4セル境界において使用する好適なスイッチング機能を図示している 。該スイッチは対称的であるので東、西、北及び南は同一であり、従って東及び 西スイッチング機能についてのみ図示してあ る。スイッチ18は2個の3:1マルチプレクサ(即ち、東及び西セル用)及び 東フライオーバー(4)及び西フライオーバー(4)用の2つの5:1マルチプ レクサを有している。図1及び2を参照すると、スイッチ18がブロック間の東 /西境界において物理的に存在していることが明らかである。後に図26aを参 照して説明するように、I/Oパッドへの接続を取扱うために、アレイのエッジ 即ち端部において同様のスイッチが存在している。 図16は図15に示したものと同様のスイッチング機能を図示しているが、そ れはグローバル信号を取扱う。図16のスイッチ18aは、図12に示したもの と同一の東及び西セルを駆動するためのマルチプレクサを有している。然しなが ら、8:1マルチプレクサ72,74は、隣りの東及び西セル、長さ4東及び西 フライオーバー、長さ16東及び西フライオーバー信号からの入力、及び、付加 的に、水平方向のグローバルG1及びG2及び定数O信号からの3つの入力を受 取る。簡単化のために図示していないが、垂直方向の信号に対して使用される対 応するスイッチは2つの垂直なグローバル信号G3,G4を有していることが理 解される。そうでない場合には、垂直方向の信号に対するスイッチ18aは水平 方向のスイッチ18aと同一である。3個のR AM制御型パストランジスタを使用して簡単に実現することが可能であるので、 8:1マルチプレクサが好適である。然しながら、付加的なマルチプレクサ入力 を受付けることの可能な実施例においては、4つのグローバル信号G1,G2, G3,G4は、全て、フライオーバーマルチプレクサへのマルチプレクサ入力と して与えられる。 4セル及び16セル境界スイッチを横断しての1つのセルから隣りのセルへの ルーチング(経路付け)遅延が無視可能なものであることが望ましく、従って、 これを達成するためには、隣り同士のセルを接続させるマルチプレクサへのソー ス即ち発生源(入力)の数は最小とせねばならない。 図17は16×16セル境界において位置されたスイッチ20を図示している 。前と同じように、東/西方向用のスイッチ20のみが示されているが、対称性 のために北/南方向における信号の導通のためには同様のスイッチ20が必要で あることを理解すべきである。スイッチ20は6個のマルチプレクサを有してお り、即ち近隣配線を駆動するための2個の4:1マルチプレクサ76及び78と 、長さ4フライオーバーを駆動するための2個の8:1マルチプレクサ80及び 82と、長さ16フライオーバーを駆動するための2個の7:1マルチプレクサ 84 及び86である。該8:1マルチプレクサ及び7:1マルチプレクサは、更に、 長さ4フライオーバー及び長さ16フライオーバーからの入力を受取る。図16 の形態の長さのスイッチに加えて、スイッチ20は、長さ16フライオーバーを 駆動するための対応するマルチプレクサに対して付加的な接続を有している。図 17においては、マルチプレクサ84及び86におけるBIT信号はRAMビッ ト線からのものである。対応する北/南スイッチは、マルチプレクサ84及び8 6におけるBITラインの代わりに、RAMからのワード(WORD)ラインを 有している。 図15乃至17に示してあり且つ4セル×4セル及び16セル×16セル境界 について上述したスイッチは、必要な場合には、より大型のアレイにおいて使用 するために拡張させることが可能である。スイッチにおける各マルチプレクサへ 何が接続されているかを決定するための適宜の規則は、階層におけるレベルLに おいての信号を出力するマルチプレクサは以下のものからの入力を有するべきで ある。即ち、 (1)レベルL+1が存在する場合には、レベルL+1におけるマルチプレク サ出力と同一及び反対方向に移動する信号、 (2)レベルLにおけるマルチプレクサ出力と同一の方向に移動する信号、 (3)レベルL−1,L−2,等からレベル0までのレベルにおいて同一及び 反対方向へ移動する信号。 更に理解すべきことであるが、これが唯一可能な規則ではなく、且つ階層アレ イにおいて使用することの可能な多数の可能なスイッチング機能が存在している 。この場合に存在するスイッチに対する多くの可能な修正は当該技術者にとって 自明なものである。1つの変形例は、垂直方向のエッジ即ち端部からの入力を与 えることにより該スイッチ内に90゜の回転を与えることである(スイッチ自身 におけるエキストラな経路付け資源に関連して付加的なセレクタ及び該マルチプ レクサへの入力信号の異なる選択を介して)。別の変形例は180゜ラップアラ ウンドオプションを取除くことである(例えば、東長さ4フライオーバー出力へ の西隣り入力の除去)。 階層的FPGAによって与えられる付加的な経路付け資源は4つの別々の態様 で使用することが可能である。 (1)ユーザが最も低いレベルで設計し、FPGAハードウエアがより長いワ イヤを選択する。 より長い接続が使用可能であることを無視し簡単な近隣 即ち隣り経路付けモデルを使用してユーザが設計を行なうことが可能である。F PGAにおけるハードウエアは、1本のフライオーバーの全長にわたり延在する 1行又は1列のセルにわたる真直ぐな一連の接続の上に信号が配置された時を検 知し、且つ該信号をそのフライオーバー上に配置させる。 (2)ユーザが最も低いレベルで設計をし、CADソフトウエアがより長いワ イヤを選択する。 この場合には、低レベルCADソフトウエアが、新たな経路付 け用資源から利益を得ることの可能なレイアウト内のネットを自動的に検知し、 且つ設計を高速化させるためにそれらを利用する。この方法では、フライオーバ ーワイヤは、しばしば、セル型アレイ内の同一の位置における隣りの接続と同一 の信号を担持する。より長い長さの冗長配線を付加することはそのソフトウエア にとって容易であり、且つ与えられたFPGAチップによって与えられる経路付 けのレベル数とは独立的であり、従って異なるチップ間の設計移植性を与える。 (3)ユーザが全てのレベルで設計し、FPGAハードウエアが、使用可能で あり且つ制御格納部がそれらが使用されていないことを表わす場合には、一層長 いワイヤを選択する。 この場合には、FPGAハードウエアは適切である場合に は一層長いワイ ヤを使用するが、幾つかの長いワイヤはユーザによって既に取られている場合が ある。この場合には、ハードウエア(エキストラなNORゲート入力、上述した 図18参照)は、制御格納部ビットが一層長いワイヤが未使用であるとマークを 付けたか否かを検知せねばならない。一実施例においては、ユーザが自動的な長 尺ライン選択をディスエーブル即ち動作不能状態とさせるためのエキストラなビ ットが設けられている。 (4)ユーザが長尺ラインの選択を制御する。ユーザは、一層長いワイヤを包 含するプログラミングモデルを使用して設計を行なうことが可能であり、且つエ キストラな経路付け資源に対して明示的な割り当てを行なう事が可能である。こ のような実施例においては、ハードウエアによる長尺ラインの自動的選択は与え られない。この実施例の場合には、装置内の種々のライン上へ信号の配置を最適 化させるCADソフトウエアを選択することが可能である。 ワイヤを効果的に一層長い経路付け資源へ転送させることが可能である完成さ れた設計における場所を検知するためにCADソフトウエアを使用することが効 果的である。このような場合はユーザの設計の8つのサブユニットであってそれ ら自身がより短い接続を使用せねばならない2つのサブユニットが 並列して配置される場合に発生する場合がある。冗長な配線を設けること、例え ば長さ4及び長さ16の両方のフライオーバー上に設けられることにより速度が 増加される。又、4本のより短いワイヤに対して1本の長いワイヤを置換させる ことにより速度が増加され、且つそれらのより短いワイヤをその他の使用のため に自由な状態とさせる。ハードウエアがより長いワイヤを選択 本チップは、いつより長い経路付け資源を使用するかを決定する特別の回路を 包含することが可能である。例えば、論理ゲートは、4個の隣りの相互接続を貫 通する経路がいつ使用されるかを検知し、次いで、自動的に長さ4フライオーバ ーを介しての信号の経路付けを行なうことが可能である。このハードウエアオプ ションは更なる移植性を与える。ある会社が一層長いワイヤを自動的に選択する ために一層長いワイヤと関連する論理ゲートとを付加することにより既存のチッ プの新たな「高速」バージョンを製造する場合には、既存のユーザ設計は、ユー ザにより何等の変更又は努力を必要とすることなしに、これらの高速チップ上で 実現させる事が可能である。更に、一層長い経路付けワイヤの直接的なハードウ エア選択はCADソフトウエアを簡単化させ、それをより高速で稼動することを 可能とする。より高速 の経路を自動的に選択するチップハードウエアは、長い経路付けラインの先天的 な決定が困難である動的にFPGAチップを再プログラムする適用場面に対して 特に魅力があるものである。長尺ラインの自動選択は、2個のRAMセルの状態 を検知し且つマルチプレクサを「真直に貫通する」(例えば、北から南」経路付 けに対応して0を出力するために4:1マルチプレクサにおいてNORゲートを 使用していた米国特許第5,243,238号に開示した技術の拡張である。 図18は4×4ブロックにおける4つの隣接した近隣相互接続を介しての経路 を特定するユーザの設計に応答して自動的に長さ4フライオーバーを使用するN ORゲート回路を示している。RAMセルM1及びM2の両方が論理0を担持し ており、西からの信号が東経路付けされるべきであることを表わしていることを 検知するセル12−1の部分が示されている。セル12−2乃至12−4内にお いて対応する部分が存在しているが、簡単化のために省略してある。ORゲート OR1は、RAMセルM1及びM2の両方が論理0を担持する場合にのみ論理0 を出力する。論理セル12−2乃至12−4を制御するための対応するRAMセ ルの全てが論理0を担持する場合には、4つの論理0信号がNORゲートN OR1へ入力され、NORゲートNOR1をして論理1を出力させる。スイッチ 18−1及び18−2は長さ4フライオーバーを自動的に選択する回路のみを示 している。スイッチ18−1内に位置されたマルチプレクサMX1は、NORゲ ートNOR1の論理1出力によって制御され、その入力信号をフライオーバーラ イン134上に配置させる。スイッチ18−2内のマルチプレクサMX2は、N ORゲートNOR1からのこの論理1に応答して、ライン134上の信号をパス 即ち通過させるべく制御される。従って、スイッチ18−2は、入力信号INが セル12−1乃至12−4を介して経路付けがされた場合よりも、一層速く出力 信号OUTを与える。 図19はマルチプレクサMX1及びMX2内へセル12−1乃至12−4を介 して延在する単一のメタルワイヤ191として使用可能な図18のNORゲート NOR1の実現例を示している。4つのORゲートOR1はそれらの夫々のセル 内に物理的に位置させることが可能であり、従って図18のNORゲートのレイ アウトは非常にコンパクトである。4つの位置のうちのいずれか1つにおいてプ ルダウンさせることが可能なトランジスタを具備するエキストラなワイヤ及びプ ルダウン信号が存在しない場合に該ワイヤを高状態へプルすべく作用する該ワイ ヤ の端部におけるP型装置を使用するスタンダードなプル技術を使用して付加的な NORゲートを実現させることが可能である。幾つかのプルダウン及び1つのP 型プルアップを使用することは、主要なオーバーヘッドがフライオーバーと並列 して経路付けされた単一のメタルワイヤである分散型レイアウトを可能とする利 点を有している。 4入力ゲートNOR1からの信号は、セル12−1乃至12−4へ供給するこ とが可能であり、従って機能ユニット48入力(図10参照)は、近隣相互接続 ではなくフライオーバー入力を使用する(例えば、マルチプレクサ58はライン Wの代わりにラインW4からのX1信号を選択するようにプログラムすることが 可能である)。同様の態様で、この技術をスケールアップさせて、同一の方向に 走行する長さ16フライオーバーの下での4個の長さ4フライオーバーからなる グループ上で伝播する信号を検知することが可能である。このことは、別の4入 力ゲート、例えばNORゲートであって、4つの4入力のNORゲートNOR1 の出力を入力としてとるゲートを使用して達成される。この別のNORゲートの 出力は、長さ16フライオーバーの両側におけるスイッチへ供給させることが可 能であり、信号経路付けに対してより高速の長さ16フライオーバー 経路が使用されることを確保することが可能である。このNORゲート出力は、 更に、中間の長さ4フライオーバーへ供給し、そのより高速の経路から直接的に 信号をとることを可能とすることが可能である。 フライオーバーのハードウエア選択は、ユーザにとって透明即ちユーザが関知 するものではなく、ユーザは自動的に高速のチップの利点を得、且つそれはより 簡単なプログラミングモードとなる。この技術は階層のより高いレベルにおける ブロックに対しての一層長いワイヤ、即ち長さ64又は長さ256フライオーバ ーに対して直接的に拡張させることが可能である。この技術は、フライオーバー が4以外の係数でスケールされる場合にも適用することが可能である。同様の技 術は、経路付け資源を補充するために「ショートカット」経路が設けられる他の 区域において使用することが可能である。ワイヤ長さのユーザ制御 ユーザは、更に、一層長いワイヤを包含するプログラミングモデルを使用して 設計し、且つエキストラな経路付け資源に対して明示的な割り当てを行なうこと が可能である。この場合には、セル型アレイ内の同一の点における種々のレベル の相互接続に対して異なるネットを割り当てることによって、エキストラな密度 及びエキストラな速度が得られる。例 えば、CADソフトウエアは、サブユニット内のローカルな相互接続を乱すこと なしに、そのサブユニットにわたって信号を担持するための長さ16ワイヤを選 択することが可能である。一層長いワイヤを包含し且つエキストラな経路付け資 源へ明示的な割り当てを行なうプログラミングモデルを使用する設計スタイルの 場合には、ユーザ設計のブロックは、そのアレイ内の4セル又は16セル境界上 に整合される必要がある場合がある。近隣(隣接)ワイヤを一層長いワイヤで置 換する場合には、タイミング及び電力消費を変化させる場合があり、これらの変 化はユーザにとって不所望である場合がある。長尺ライン置換のユーザ制御を可 能とするために、制御格納部へ付加的なビットが付加されており、且つ一層長い ワイヤの自動的な付加を可能とするためにはそのビットがセットされねばならな い。セル12の機能ユニット48、幾つかの実施例 図20は、対応する公開されたPCT出願WO90/11648(米国特許第 5,243,238号と均等)において開示されているが付加的な機能を有する 機能ユニットの機能を実現することの可能なマルチプレクサをベースとした機能 ユニットの概略ブロック図を示している。CAL Iアーキテクチュアを実現し たCAL 1024チップでの経験に よれば、2つの新たなセル機能、即ち2:1マルチプレクサ及びクリアを具備す るDレジスタを包含することが望ましい。これらは両方とも3入力関数である。 セル型論理構成体におけるキャリィ伝播を高速化させるためにマルチプレクサを 使用することは文献において公知であり、例えば、高速キャリィ伝播繰り返しネ ットワーク(Fast Carry−Propagation Iterati ve Networks)」、ドメニコ・フェラリ、IEEE・トランズアクシ ョンズ・オン・コンピューターズ、Vol.C17、No.2、1968年8月 、及び欧州特許出願第91304129.9、ザイリンクス インコーポレイテ ッド、「高速キャリィ用論理構成体及び回路(Logic Structure and Circuit for Fast Carry)」、1991年1 1月13日公開、公開番号第0456475A2等に記載されている。マルチプ レクサ機能は、加算器及びカウンタ回路を構築するのに有用であり、且つDレジ スタはラッチの代わりにTTL型のDレジスタに対して多くのユーザの表示した 選択を遂行する。両方の機能ともオリジナルのCAL 1024部分に対して検 討された。CAL 1024アーキテクチュアの中に3入力関数を包含させるこ との1つの問題は、関数(機能) 入力として4つの近隣入力を選択することが可能であるに過ぎないということで あった。このことは、3入力関数(機能)の場合には、入力が4つの近隣方向の うちの3つからくることが必要であり、そのことは経路付けを行なうことにのみ 隣接するセルを必要とすることなしに達成することは困難である。経路付けを行 なうことにのみ1個のセルを使用することは密度を減少させる。CAL IIの 新たな経路付けアーキテクチュアの場合には、長さ4フライオーバーを機能ユニ ット入力として使用することが可能であり、全部で8個の可能な入力を提供する ということが魅力的である。付加的なフライオーバー経路付け資源があるという ことは、3入力関数を使用することが可能であり且つ密度を維持することが可能 であることを意味している。 図20は2入力マルチプレクサ及びクリアを具備したDレジスタを容易にサポ ートすることの可能な図10に示した機能ユニット48の一実施例を示している 。機能ユニット48は3個の8:1マルチプレクサ58,60,62を有してお り、その各マルチプレクサは8個の入力を受取る。これら8個の入力は、4つの すぐ隣りに隣接するセル及び北(N4)、南(S4)、東(E4)、西(W4) 長さフライオーバーからのものであり、且つマルチプレクサ 58,60,62は夫々出力X1,X3,X2を与える。これら3つの出力X1 ,X2,X3は夫々2:1マルチプレクサ94,96,98へ供給され、これら のマルチプレクサ94,96,98はX1,X2,X3の条件付き反転信号を供 給する。更に3つの出力Y1,Y2,Y3が形成され、それらはY1マルチプレ クサの出力によって制御される別の2:1マルチプレクサFへ供給される。従っ て、理解されるように、機能ユニット48は制御格納部によるのではなくデータ 信号(Y1の出力)によって制御されるセル内の唯一のマルチプレクサである2 :1マルチプレクサFに基づいている。2つの変数の全てのブール関数を実現す るばかりか、この2:1マルチプレクサFは、真又は反転された入力変数で直接 的に使用することが可能である。後に説明するように、この2:1マルチプレク サ機能(関数)は、加算器キャリィ遅延を包含する多様な回路において有用なも のである。図11は、図20によって実現される2入力ブール関数及び3入力( 2個のデータと1個の制御)マルチプレクサ及び3入力Dレジスタ機能を示して いる。2:1マルチプレクサをベースとした機能ユニットを使用して組合わせ論 理関数を発生することは公知であり且つ前述したCAL I出願に開示されてい る。機能ユニット48はD型 エッジトリガ型フリップフロップ100を有しており、それはある論理関数を達 成することを可能としている。Dレジスタ100は、マルチプレクサ94からの 出力Y1をクロック入力として受取り、マルチプレクサ96からの出力Y3をク リア入力として受取り、且つマルチプレクサ96からの出力42をデータ入力と して受取る。別の実施例においては、フリップフロップ100はY3へ接続され たイネーブル入力を有しており且つクリア入力を有していない場合がある。一方 、クリア入力を設け且つ全てのセルへ供給される特別のグローバルクリア信号へ 接続させることが可能である。Fマルチプレクサは、図20に示した如く、これ らの同一の3つの信号を受取る。Fマルチプレクサの出力及びDフリップフロッ プ100の出力(Q)は別の2:1マルチプレクサ100に供給され、その出力 は「SELF」出力として命名されている。マルチプレクサ98を介して機能ユ ニット出力への経路は、速度に関して最適化されており、且つ、可能な場合には 、ユーザの論理におけるクリティカルパス上の信号はX1又はX3に優先してこ の入力を使用する。 図20に示した機能ユニットの場合には、既存のCAL 1024チップ機能 ユニットを上回る3入力機能能力が得られる。このことは、部分的には、 機能ユニット48への入力の対称性に起因している。何故ならば、マルチプレク サ88,90,92を検査することにより理解される如く、近隣及び長さ4フラ イオーバーのうちのいずれかを機能ユニット入力の各々に対する資源として選択 することが可能だからである。この機能ユニット48の2つの欠点は、8:1マ ルチプレクサによって発生される比較的大きな遅延と、クリア不可能なフリップ フロップを発生させるために定数0を強制的にレジスタのクリア入力へ与えるこ とができないという事実である。その代わりに、クリア入力に対する発生源は、 例えば、4×4セルブロック境界上のスイッチユニットのうちの1つを介しての グローバル信号からのものとすることが可能であるか、又は定数0を形成するた めに隣接するセルを使用することによって見つけだされねばならない。このこと は、長さ4フライオーバーワイヤに対する発生源として定数0を有することの更 なる利点である。 図21は図10及び図2に示したセル12の全てにおける機能ユニット48と して機能することの可能な別の機能ユニット114を図示している。機能ユニッ ト114は、レジスタクリア入力に対する定数発生源を与え且つ図20の実施例 と同数の制御格納部RAMのビットを必要とする。更にもう1つの ビットがマルチプレクサ122を制御し且つ1つ少ないビットがマルチプレクサ 118を制御する。然しながら、マルチプレクサ116,118,120を検査 することによって理解される如く、機能ユニット114は図20の機能ユニット よりもその入力選択における対称性が少なくなっている。機能ユニット114に おける対称性の欠如は、設計を実現するソフトウエアを複雑化させ、その際に効 果的なCADツールを構成することを困難としている。前述した如く、マルチプ レクサ116,118,120は夫々3つの出力X1,X3,X2を与える。そ の他の構成は、マルチプレクサ118と2:1マルチプレクサFとの間に4:1 マルチプレクサ122を設けた点を除いて、同一である。出力マルチプレクサ1 24はいまだにY1により制御されるFマルチプレクサからの出力及びD型フリ ップフロップ121からの出力を受取る。 セル12において機能ユニット48として使用すべき機能ユニット126の更 なる別のバージョンを図22に示してある。この設計においては、入力4:1マ ルチプレクサ128,130,132の対称性が更に減少されている。図22の 魅力のある点としては、セル当たり3個のマルチプレクサではなくセル当たり1 個のマルチプレクサへ接続されている 長さ4ワイヤ上のファンインが低いということ、及び機能ユニット自身を貫通し てのX2経路が高速であり、それが図20の機能ユニットを上まって性能を改善 しているという点である。 図23は同一の動作を実現する図20の機能ユニットに関する別の変形例を示 している。付加的な2:1マルチプレクサ95及び97は、組合わせ関数マルチ プレクサFを介してSELF出力へレジスタの経路付けを与えるRAMの同一の ビットによって制御され、且つ2:1マルチプレクサ102が削除されている。 このユニットの利点は、組合わせ関数用の入力及び出力とX3入力との間のマル チプレクサの数が4から3へ減少されており、一方その他の全ての経路はいまだ に4個のマルチプレクサを必要としているということであり、従ってX3は図2 0の機能ユニットよりもより多くの制御格納部RAMを必要とすることなしに、 機能ユニットを介して高速の経路を与えている。 図18,21,22,23に示したようなマルチプレクサをベースとしたスイ ッチング構成の性能は、それを実現するのに必要な面積を増加するという犠牲に おいてスタンダードの技術を使用して改良することが可能である。然しながら、 面積のコストが高いために、小さなサブセットのマルチプレクサを超 えて面積を増加させることは望ましいことではない。ユーザ設計における論理ゲ ートのネットワークにおいて入力と出力との間の最も長い信号遅延に対応するク リティカルパス(臨界的経路)は通常識別することが可能である。論理ゲートの ネットワークの性能を改善するためには、クリティカルパスに沿っての遅延を減 少させることが必要であり、その他の場所での遅延の減少は何等影響がない。組 合わせ論理のブロックを介してのクリティカルパスを自動的に決定し且つ遅延を 減少させるために高速の経路ハードウエアを使用してクリティカルパス即ち臨界 的経路を実現させることが可能なCADソフトウエアツールを使用することが可 能である。 図24は参照番号133によって示したゲートをベースとした機能ユニットの 具体例を図示している。この場合においては、2個の8:1マルチプレクサ13 4及び136が設けられており、それらは出力X1及びX2を夫々与える。X1 及びX2は、オプションによって、反転され、次いで4:1マルチプレクサ13 8がその結果得られる変数の4つの関数、即ちAND、OR、XOR、DREG のうちの1つを選択する。機能ユニット133は、WO90/11648(米国 特許第5,243,238号)に記載されているようなCAL I FPGAに おいて 使用されている機能ユニットのものと同様の2つの入力変数のみを有しており、 従って、セル機能(関数)として2:1マルチプレクサを実現することは不可能 である。この設計は、セル型アレイにおいて機能即ち関数を実現する場合にマル チプレクサをベースとした機能ユニットが唯一可能なものではないということを 示している。別の可能性としては、米国特許第4,870,302号で米国再発 行特許第34,363号として再発行された発明者Ross Freemanの 米国特許、「形態特定可能論理要素及び形態特定可能相互接続を具備する形態特 定可能電気回路(Configurable Electrical Circ uit Having Configurable Logic Elemen ts and Configurable Interconnects)」に 記載されているように、X1及びX2によってアドレスされる4ビットRAMル ックアップテーブルを使用する場合がある。 図25は機能ユニット48を実現するために機能ユニット140の別のゲート をベースとしたバージョンを図示している。機能ユニット140は、4:1マル チブレクサ138が近隣経路付けマルチプレクサと結合されて8:1マルチプレ クサ142,144,146,148となる点を除いて、図23に 示したものと類似している。更に、8:1マルチプレクサ145はX3出力を与 え、それはインバータ150を介して通過される。更に、Dレジスタへ供給され るY3出力を発生するために2:1マルチプレクサ152が設けられており、且 つ制御格納部ではなくデータ信号Y3によって制御される2:1マルチプレクサ 156が設けられている。従って、5個の機能(関数)出力Z1,Z2,Z3,Z4 ,Z5が発生される。従って、この構成においては、セル12はその入力変数( X1乃至X3)の幾つかの異なる関数を同時的に計算することが可能であり、且 つそれらを隣りの出力(Nout,Sout,Eout,Wout)へ経路付け させることが可能である。幾つかの出力を提供するということは、加算器のよう な重要な機能即ち関数にとって効果的であるが、エキストラな制御メモリ及びよ り多くのチップ面積を必要とし、従って機能ユニット140は設計するのがより 困難である。1つの高速経路 図20に示した機能ユニット48のバージョンは、入力変数X1,X2又はX 3のうちの1つと機能ユニット出力SELFとの間の経路が、スタンダードな技 術を使用して速度に関して最適化されるか他の経路は最適化されない態様で構成 することが可能で ある。このような機能ユニット48は、全ての入力経路が最適化される機能ユニ ット48よりも必要とする面積は著しく少ない。ユーザ設計におけるクリティカ ルパス上の信号を、可能である場合に、機能ブロックに対して最適化されたX2 入力を使用するために指向付けさせ、クリティカルパス信号が発生する遅延が最 小のものであることを確保することが可能であるようにソフトウエアをかくこと が可能である。このことは、組合わせ関数の入力を交換させることを可能とする 機能ユニットの対称的性質を利用してソフトウエアがユーザ設計に対して選択的 変化を行なわせるようにすることにより行なうことが可能である。図11は図2 0に示した機能ユニット48の実施例から得られるA及びBの論理関数を示して いる。例えば、ローカルセル内の機能ユニットマルチプレクサ58,60,62 を駆動するX1,X2の発生源に対して変化を発生させることにより、X1=A 及びX2=BであってAがクリティカルパ 2であってX1=B及びX2=Aへ変換させることが可能である。このような技 術は、X1及びX2を介しての遅延が両方とも等しく高速である場合の関数ユニ ットから得ることが可能な性能と同様の性能を殆どの回路が得ることを可能とし 、その場合の面 積に関するオーバーヘッドは著しく少ない。入力/出力構成 図26aは図8に示したCAL IIアレイの実施例の入力/出力アーキテク チュアの概略ブロック図を示している。図26aの回路はチップの東側上に発生 する。セル12のアレイのエッジ即ち端部において、プログラマブル即ち書込可 能な入力/出力(I/O)ブロック110が設けられている。各I/Oブロック 110は、外部パッドへ接続されている。制御格納部RAMの3つのビットが各 I/Oブロックへ与えられて、入力スレッシュホールド電圧LEVELを選択し 、パッドスリューレート(SLEW)を選択し、且つ入力プルアップ抵抗を与え る。この場合にはスリューレートとスレッシュホールド電圧レベルであるパッド パラメータに関して付加的な制御を獲得するか、又はスイッチ可能なプルアップ を与えるために付加的な制御格納部ビットを使用することにより柔軟性が増加さ れている。 チップの西及び東エッジに沿っての2つのセル12−A及び12−B毎に1個 のI/Oブロック110が設けられており且つチップの北及び南エッジに沿って の2つのセル毎に1個の外部パッドが設けられている。この配列は、必要とされ るパッケージピンの数を減少させることによりコストを減少させると いう利点を有している。通常、図8に示した如く、幅広(16乃至32ビット) のバスが西及び東エッジへ接続されており、従ってこれらのバスをラッチするチ ップレジスタは垂直方向に配列され(後に詳細に説明する如く)、従ってホスト プロセサによって制御格納部インターフェースを介して効率的にアクセスするこ とが可能である。このパッドの割り当てに関する多くの変形例が可能であり、例 えば、全てのエッジ上の外部セル位置毎に1個のI/Oブロック及びパッドを設 け且つ2つの隣接したエッジ上においてセル毎に1個のパッドを設け且つ他の2 つのエッジ上の2つ又は4つのセル毎に1個のパッドを設ける場合等がある。 図26aに示したアーキテクチュアに関して、各I/Oブロック110はデー タ入力(OUT)とイネーブル入力(IN)とを有しており、その各々はCAL IIアレイの周辺部上のセル12へ直接接続されている。同様に、I/Oブロ ック110は、セル12−A又はセル12−BへのそのINライン上、又は西長 さ4フライオーバーW4B又はW4A又は西長さ16フライオーバーW16B又 はW16A上へ信号を供給することが可能である。同様に、I/Oブロック11 0はセル12−A又は12−Bからのみならず東フライオーバーE4B,E4A , E16B,又はE16AからそのOUTライン上において信号を受取ることが可 能である。従って、パッド出力(I/OブロックにおいてOUTとして示してあ る)であるI/Oブロック110へのデータ入力はスイッチ112からのデータ を受取り、且つスイッチ112のEN出力によってイネーブル即ち動作可能状態 とされる。この設計は、別個のI/O制御論理信号を取除くことによって、内部 アレイとオフチップとの間の遅延を最小としている。データ及びイネーブル入力 信号上に適宜の値を与えることにより(定数セル機能0及び1を使用することに より得ることが可能である)、I/Oブロック110は、図26bのI/Oブロ ックモードテーブルに示した如く、入力、出力、双方向、又はオープンドレイン モードにおいて動作すべくプログラムすることが可能である。 図26dは図26aのスイッチ112の一実施例を示している。図示した如く 、8個のマルチプレクサが設けられており、信号ライン及びフライオーバー長さ が図15−17に示したように符号が付けられている。従って、同一の信号に対 して同一の符号が使用されている図26dの詳細な説明は割愛する。2つのセル からの6個の入力信号全てをサポートすることにより、データ及びイネーブル信 号をいずれ かのセルから発生させることを可能としており、ルーチング即ち経路付け上の拘 束条件によってパッドが使用されないことの蓋然性を少なくしている。付加的な 入力が設けられており、特に、イネーブルマルチプレクサへの入力としての定数 1及び0及びビットラインが設けられている。パッドが双方向パッドではなく入 力(ENABLE=0)又は出力(ENABLE=1)として機能すべき場合に 、定数値はイネーブル信号に対して特に有用である。データ信号上の定数値及び イネーブル信号上の計算された値は、オープンドレインプルアップ(IN=1) 又はプルダウン(IN=0)パッドを発生させる。然しながら、CAL IIア レイのI/Oアーキテクチュアは、エキストラなパッド制御論理を取除くことに より入力及び出力遅延を最小とすべく設計されており、従って、CAL Iパッ ド制御アーキテクチュアと比較して著しく簡単化されている。 チップの北、南及び西側に対するI/O経路付けスイッチは、図26a及び2 6dに示した東経路付け用スイッチと同一の態様で派生される。 I/O信号に加えて、関連する外部I/Oパッドを有することのない位置にお ける入力及び出力信号は、FPGA上のプログラミング信号へ接続させることが 可能である(データバス、アドレスバス、モー はこれらの重要な外部信号をモニタするためにFPGA上に回路を実現すること を可能としている。従って、FPGA上に実現された回路は、ステータス又は制 御メモリへの外部的読取及び書込を検知し且つ自動的にそれ自身クロック動作し て入力値を処理するか又は次の出力値を発生させることが可能である。 グローバル信号が与えられると、それらは、CAL I配列の場合に従来行な われている如く、専用の入力パッドからのみならず、同一の態様でアレイのエッ ジにおける論理信号から駆動させることが可能である。従って、アレイのエッジ からの論理接続を使用することにより装置の柔軟性が増加され且つ付加的なチッ プ論理を取除くことを可能とし、そのことは部品数を更に減少させる。 図26cはユーザがプログラム可能なマルチプレクサによってライン205上 のグローバル信号を4つの可能な発生源からとることが可能な例示的な回路を示 している。グローバル信号用の潜在的な種々の発生源の間での選択のためにプロ グラマブルマルチプレクサを使用することが可能であり、従って潜在的な発生源 の数はアレイ内のグローバルクロックラインの数より大きいものとさせることが 可能であ る。第一に、マルチプレクサ207は例えば、パッド206へ印加され、入力バ ッファ203によってバッファされ且つマルチプレクサ207へ供給されるクロ ック信号等の外部信号をとることが可能である。第二に、マルチプレクサ207 は、ライン204上の内部的に発生されるパワーオンリセット(POR)信号を 選択することが可能であり、その信号は電圧変動又はその他の理由によって与え ることが可能である。ユーザ論理を開始させることを可能とするためにパワーラ インにおける遷移を検知することにより自動的に発生されるリセット信号は、例 えばフラッシュEPROM等の非揮発性制御メモリを使用するか又はRAM制御 格納部に対して低電圧データ維持モードをサポートするチップに対して特に有用 である。第三に、マルチプレクサ207は、内部又は外部オシレータを包含する ことの可能なカウンタ/タイマ209からの信号を選択することが可能である。 外部クリスタル又はその他のクロック発生源によって駆動されるプログラマブル 即ち書込可能なカウンタ/タイマは、ユーザ論理に対し柔軟性のあるクロックを 提供することが可能である。第四に、マルチプレクサ207は、ユーザの内部論 理によって発生され且つセル208の出力と、東長さ16フライオーバーと、東 長さ4フライオーバーとからの I/Oブロック110−6によって選択された信号を選択することが可能である 。このようなグローバル信号はセル出力から駆動されるクロックとすることが可 能である。レジスタアクセス:制御格納部動作及びFPGA形態再特定 CAL IIは、プロセサからユーザの回路内のノードへの直接アクセスをサ ポートしている。任意のセルの機能ユニット48の出力(図10参照)を読取る ことが可能であり、且つレジスタを実現すべくコンフィギュア即ち形態が特定さ れたセルの状態はプロセサにより書込むことが可能である。これらのアクセスは 、制御格納部インターフェースを介して行なわれ、且つユーザの設計に対して付 加されるべき何等付加的な配線ラインを必要とするものではない。これらのレジ スタのアドレスを行なう行及び列信号は、長さ4スイッチユニット内の発生源と して選択することが可能であり、従ってユーザ回路は、アクセスが行なわれたこ とを検知し且つ適宜の動作、例えば出力レジスタに対し新たな値を計算すること 又は入力レジスタ内へ配置させるべき値を処理することを行なうことが可能であ る。多くの適用例において、この内部ノードへのアクセスはそれを介してプロセ サへデータが転送されたりプロセサからデー タが転送される主要経路である。あるプロセサ適用においては、FPGA内のノ ードへアクセスするためにプロセサによって使用される唯一の方法である場合が ある。ユーザプログラマブルI/Oパッドは全く使われない場合がある。 プロセサとFPGAの内部ノードとの間での高帯域幅転送を可能とするために は、1メモリサイクルで最大32ビットまでの完全なるプロセサデータワードを 転送することが必要である。この理由のために、CAL IIにおけるレジスタ 又はゲートアクセスビットはコンフィギュレーションビットとは別のデバイスア ドレス空間領域内へマップされる。図27aはこのアドレス空間のエリアのマッ ピングを示している。4,096個のセルを有するCAL IIアーキテクチュ アの実施例においては、64個の行と64列のセルが設けられている。セル当た り1個の機能ユニットが存在するに過ぎないので、制御格納部における1個のメ モリセルは、1つのセル機能ユニット出力を表わすのに充分である。図27aは セル機能ユニット出力へアクセスするためにプロセサがアドレスすることを可能 とするメモリ空間を表わしている。1つのセル即ちセル12−6−23(6は行 を指定しており且つ23は列を指定している)が拡大したセルとして示されてお り、それは前の図面 に示したセル12と均等である。6ビット列アドレスCA[0:5]はアクセス するためにセルの特定の列を選択する。1メモリサイクルでアクセスされるべき 全てのビットは同一の列のセル内に存在せねばならない。セレクトユニット27 5がこれらの行のサブセットを選択し外部データバスへ接続する。セレクトユニ ット275の幾つかの可能な具体例について図28,34a,34e,35,3 6a,36b及びラン長さレジスタの説明に関連して後に説明する。セレクトユ ニット275の利点は、従来技術の構成におけるメモリアレイ内の行又はワード とデータバス上のラインとの間の固定した関係がプログラマブル即ち書込可能な 関係で置換されているということである。行セレクトデコーダが行0乃至63の うちの1つ又はそれ以上を選択し、且つプログラムされることによって選択され た値を読取り、それらをデータバスD[0:8,16又は32]へ印加し、又は データバス値を選択したメモリ位置へ書込む。 アレイ内の格納部操作及びデータのリコンフィギュレーション即ち形態再特定 の機能的動作について説明する。 図27bはRAMによってプログラムされたFPGAの模式的概略図であり、 それは、隣りのRAM セルによって制御される活性論理構成が設けられているRAMセル160からな るアレイを有している。その論理構成は、FPGA上へマップされたアプリケー ションによって必要とされる場合に、信号スイッチング・関数発生器を実現する 。RAMセルの機能及びそれらのFPGA制御格納部における使用についての詳 細はアルゴトロニクスリミテッドのWO90/11648及び「CMOS VL SI設計の原理、システム見地(Principles of CMOS VL SI Design, A System Perspective)」、N. WESTE及びK. Eshraghian,アジソンウエズリィ出版社、19 85年の文献に開示されている。 図27bに示した構成においては、データバス162とアドレスバス164と が設けられていることが分かる。RAMセル160の各行l66a,166b等 は、行デコーダ168a,168b等を介してデータバス162へ接続されてい る。アドレスバス164は、同様に、列デコーダ172a,172b,172c 等を介してRAMセルの各列170a,170b,170c等へ接続されている 。RAMセル160の列を相互接続するラインはワードラインと命名され、同様 にRAMセルの水平方向の行を行 デコーダと接続するラインはビットラインと命名されている。アドレスが図27 bに示したRAMアレイへ印加されると、データバスの各ビットに対する単一の ワードラインと単一のビットラインとが活性化される。1つのワードのビットは 垂直のライン内に存在するので、1個のRAMセルをアドレスすることによりR AMセルの垂直方向のベクトル(列)が書込まれる。 ダイナミックにプログラムされたFPGAに対するリコンフィギュレーション 即ち形態再特定の時間は、従来のコンピュータと比較して計算時間における潜在 的な利点を減少させるオーバーヘッドである。従って、ユーザアプリケーション にとってダイナミックリコンフィギュレーション即ち動的形態再特定が実際的な ものとなるべき場合には、形態再特定時間を最小とさせることが基本である。多 数のコンフィギュレーション即ち形態特定が必要である場合に、装置のテストの コストを減少させるために形態再特定時間を最小とさせることが基本である。 単一のワードラインが活性であると、アレイの形態特定を行なうために必要な 書込サイクル数に関し幅狭のデータバスは制限的要因である。従って、幅狭のデ ータバス幅はコンフィギュレーション即ち形態特定時間を制限する。データバス 幅を行デコーダ の数と等しくさせることにより、RAMセルの列全体を同時的に書込むことが可 能である。この場合には、行アドレスは冗長である。CAL Iアレイの場合に は、このことは、データバスが128ビット幅であることを必要とし、従って最 大処理能力のためには128個の外部パッドを必要とする。理解される如く、F PGAはアレイからの多数の論理I/Oピン(CAL 1024の場合には、1 28個のピン)を有しており、従って、データバスピンが論理I/Oと共用され る場合には、幅広のデータバスをサポートすることが可能である。行デコーダ当 たり1つのデータバスビットとすることは実現可能なものではないが、2つ又は 4つの行デコーダ毎に1つのデータバスビットをサポートするシステムは実現可 能である。行デコーダとしてチップの同一のエッジ上のI/Oピンを使用すると いうことは、パッドと行デコーダとの間に長尺のワイヤが必要とされることがな いことを意味している。1個のI/Oピンで2つ乃至4つのデコーダを駆動する ことは、必要とされるベクトル数を最小とさせるために装置のテストにとって特 に有用である。然しながら、基板配線のオーバーヘッド及び従来のプロセサのデ ータバス幅に対する不整合のために、非常に幅広のデータバスは実際の適用にお いて有用性が低い。I/O 及びプログラミングデータの両方に対して同一のパッドを使用することは、更に 、FPGAを包含するボード(基板)の設計者にとって著しく不便である。市販 のDRAMチップにおいて一般的なものとなりつつあるようなブロック転送モー ドを与えることによりビットライン並列書込を利用するシステム(「高速ダイナ ミックRAMの新しい時代(A New Era of Fast Dynam ic RAMs)」、Fred Jones、IEEEスペクトラム、1992 年10月)は、比較的低いピン出力に対し高い帯域幅を可能とし、且つ将来のF PGAにおいて使用するのに魅力的なものである場合がある。 FPGAコンフィギュレーション(形態)は、通常、通常のデータメモリにお いて見られるデータと比較して、高度に規則性がある。この規則性は、特に、回 路自身が通常ビットスライスユニットを繰返すベクトルから構成されている計算 的な適用を実現するユーザ設計に対するコンフィギュレーションデータにおいて 明らかである。規則性は、更に、装置をテストするコンフィギュレーション即ち 形態においても明らかである。RAMアドレス回路をより詳細に示した図27c に図示した如く、FPGA装置の列が各ワードが独特の行アドレスを有しており デー タバスと同一の幅の複数個のワードのシーケンスから構成されているものと考え る場合には、これらのワードにおける多くの値が同一である可能性がある。CA L 1024 FPGA(CAL Iアレイ)装置においては、このような16 個のワードが存在しており、且つ典型的なコンフィギュレーション即ち形態にお いては、該16ワードにおいて平均で3.4個の別個の値が存在している。この ことは、同一のコンフィギュレーション即ち形態を有するワードの全てが同時的 に書込むことが可能なアーキテクチュアは、平均で、列当たり16から列当たり 3.4へ必要とされる書込数を減少させることが可能であることを意味している 。同様に、144個のワードからなる1つの行においては、35個の個別的な値 が存在するに過ぎない場合がある。従って、幾つかのワードラインを同時的に活 性化させるFPGAアーキテクチュアは、必要とされる書込サイクル数を減少さ せることが可能である。然しながら、1書込サイクル期間中に幾つかのワードラ インを同時的に活性化させることは、ファンアウト問題が存在するために一層複 雑であり、行デコーダにおけるバッファは、そのビットライン上の幾つかのRA Mセル内に格納されている反対の値に打ち勝たねばならない場合がある。このこ とは、同時的に活性状態とさせる ことの可能なワードラインの数を制限し、その正確な数は多様な要因に依存する が、活性なワードラインの数は全ワードライン数よりも著しく少なく且つ4の値 が妥当である。マッチレジスタの動作 マルチ(多重)書込みを効果的に与えるか又は容易とする1つの方法は、行又 は列のいずれか又は両方のアドレスデコーダを、印加されたアドレスの値をロー カルレジスタ内に格納されている値と比較するマッチレジスタで置換することで ある。そうでなければ各デコーダが存在する箇所に1個のマッチレジスタ(プロ グラマブルデコーダ)が設けられる。マッチレジスタが、そのアドレスがその格 納されている値とマッチ即ち一致することを検知すると、該レジスタは、図28 に示した如く、対応するビット又はワードラインを活性化させる。マッチレジス タは、異なるアドレスに応答すべくプログラム即ち書込むことが可能である。従 って、選択したグループのマッチレジスタ内へ同一のアドレスを書込むことによ って、異なるパターンのレジスタを同時的に書込むことが可能である。図28に おいては、行及び列デコーダの両方が、行に対してはマッチアドレスレジスタ1 80a,180b等及び列に対しては182a,182b等によって置換されて いる。各レ ジスタ180,182内に格納されている値が対応するビット又はワードライン のインデックスである場合には、この構成は通常のRAMとして機能する。通常 のRAMとして機能することは、マッチレジスタを初期化するのに所望の状態で ある。複数個のレジスタ内に同一の値を格納することにより、本システムは与え られたアドレスが提供された場合に、複数個のワードを書込むようにセットアッ プすることが可能である。 行アドレスデコーダが図28に示した構成によって置換される場合には、付加 的なレベルの柔軟性が与えられ、その場合に、マッチレジスタはマッチ即ち一致 が発生する場合にビットラインを駆動するために使用されるべきデータバス16 2のビット(そのビットはその行内にある)の数を保持する付加的なレジスタ1 84a,184bによって補充される。従来のメモリにおいては、ワード当たり 1個の行アドレスデコーダが存在しており、且つ各データビットは固定されたデ ータバスラインへ接続される。然しながら、図28においては、ビットライン当 たり1個のアドレスデコーダが存在しており、且つデータバスラインへのマッピ ングはプログラマブル即ち書込可能である。従って、固定されたワード境界は存 在しない。これは、複数個のサブフィールドを同 時的に書込むことを可能とする著しい利点を有している。図28の構成は、複数 個のビットスライスに対して変化をさせることが所望されるダイナミック再プロ グラミング適用例において著しく効率的である。 4,096個のセルを有するCAL IIアーキテクチュアの実施例において は、アドレスバスのフォーマットは図29の表に示したようなものである。最初 の6個のビットはセル列を定義し、次の6個のビットはセル行を定義し、ビット 12はサイド(側部)を定義し、且つビット13及び14はモードを定義する。 より小型のCAL II装置は、行及び列アドレスへ割り当てられる比例的によ り少ない数のビットを有している。モードビットは、制御格納部のどのエリアが 図30に示した表にしたがってアクセスされるべきかを決定する。 アドレスバスがセルルーチング(経路付け)モードにある場合には、制御格納 部から読取られ且つそれへ書込まれるバイトは、図31aの表に示したフォーマ ットを有しており、それはルーチング即ち経路付け用マルチプレクサのプログラ ミングを行なうための制御格納部バイトを示している。サイド(側部)=0であ る場合には、外部のルーチング(経路付け用)マルチプレクサがアクセスされる 、即ち南、 西、東又は北である。本実施例においては、サイド=1及びモード=セルルーチ ング(経路付け)の場合にはデータは与えられない。 この制御格納部レイアウトは、図22の機能ユニット126に対応している。 アドレスバスがセル機能モードにある場合には、制御格納部から読取られ且つそ れへ書込まれるバイトは図31bの表に示したフォーマットを有している。その アドレスバスがチャンネル内、即ちI/Oモードにある場合には、制御格納部か ら読取られ且つそれへ書込まれるバイトは、該スイッチにおけるマルチプレクサ を制御する(図15−17及び26dにおけるスイッチ参照)。アドレスバスが 状態アクセス又はデバイスコンフィギュレーション(装置形態特定)モードにあ る場合には、該装置の機能ユニットの状態が読取られるか又は書込まれる(機能 ユニットがフリップフロップである場合には書込まれる)。シフト・マスクユニ ット、ワイルドカードユニット、及び状態アクセスマスクレジスタを制御する制 御格納部レジスタは、「サイド」ビットが0にセットされる場合に、装置アドレ ス空間の状態アクセス領域内にマップされる。状態アクセス転送(機能ユニット の読取り及び書込み)は、「サイド」ビットが1にセットされる場合に行なわれ る。1つの付加的な装置制御レジスタは、 一実施例においては8,16,32ビット幅の間である外部データバス幅の選択 を許容する2つのビットを有している。3番目のビットは、個々のピンに対する I/O制御格納部値のコンフィギュレーション即ち形態に拘らず、全てのユーザ I/Oピンを高インピーダンスへ強制させることが可能である。この3番目のビ ットは、1つの個別的なピン上に高インピーダンスを強制するFHZ信号をオー バーライドする(図26d参照)。本装置がリセットされると、データバス幅は 8ビットへ移行し且つこの3番目のビットが高インピーダンスを選択する。動作 期間中に、有効なコンフィギュレーション即ち形態がロードされた後に、外部の マイクロプロセサがこのビットをセットして(非高インピーダンスを選択)ユー ザI/O信号が該ピンを駆動することを可能とする。これらの表は、概念をより 具体的なものとさせるために例示的なものとしてのみ包含してある。その他の多 くのエンコーディングが可能である。 マッチレジスタ手法はアレイへの書込数を最大限減少することを可能とするが 、マッチレジスタ及びビット選択レジスタ内に値をセットアップするためにかな りのオーバーヘッドが発生する。例えば、2つのデータラインD0及びD1を有 するシステムについて考えると、D0を選択するためにそれらのR AMが0とされるべきビットライン上の全てのマッチレジスタ及びD1を選択す るためにそれらのRAMが1とされるべきビットライン上の全てのマッチレジス タをセットし、次いで二進10を書込むことによって、単一書込サイクルで1列 のRAMをセットアップすることが可能である。選択レジスタをセットアップす るために、ビットライン当たり1つの書込サイクルが必要とされ、従ってこの技 術はアレイ全体をコンフィギュア即ち形態特定するためのスタンダードなRAM インターフェースよりも効率が悪い。然しながら、制御格納部に対して非常に迅 速により小さな数の変化のうちの1つを行なわせることが必要である場合のある 計算上の適用場面においては(例えば、制御格納部インターフェースを介してス イッチのベクトルを再プログラミングすることにより計算ユニットに対するソー スオペランドを選択すること)、マッチレジスタ手法は従来のプログラミングと 比較して改良されている。 制御格納部(コンフィギュレーションメモリ)プログラミングデータの規則性 を利用するが必要とされるオーバーヘッド動作を最小とさせるために、複数個の 同時的な書込みをサポートすることが望ましい。このことは、以下のようにして 行なうことが可能である。 (1)ラン長さレジスタの使用。 ラン長さレジスタは、単一のアドレスに応答して幾つのシーケンシャル即ち逐 次的なワードが書込まれるべきであるかを知らせる。この技術においては、行及 び列アドレスデコーダは付加的なラン長さレジスタで補充される。アドレスが対 応するデコーダとマッチ即ち一致する場合にはNがラン長さレジスタ内に格納さ れている値として、次のN個のデコーダがイネーブル即ち動作可能状態とされ、 且つデータバス上のワードをビットライン上へ書込む。0の値がラン長さレジス タ内に格納されている場合には、アドレスデコーダのみがイネーブルされ、且つ 本装置は通常のランダムアクセスメモリとして機能する。 この手法の主要な利点は、チップの小さな矩形区域をコンフィギュア即ち形態 特定する能力があるという点である。然しながら、その欠点は、標準的なデコー ダとほぼ同一の面積を必要とするのに充分に小さく且つスタンダードのRAMと 同一の期間の書込サイクルを可能とする具体例は見出されていない。然しながら 、この技術は数値的に相次ぐ位置に対して一連の単一ワード書込みを行なうこと により容易に実現することが可能である。これは真に並列の書込み程高速はでな いが、外部プロセサの制御下での一連の書込みよりも著しく高速であり、そのプ ロセ サが該書込と同時的に別のタスクを処理すべく該プロセサを自由な状態とさせる 。 (2)ワイルドカードアドレス動作。 この技術においては、行及びアドレスデコーダは、RAMインターフェースを 介して書込むことの可能な付加的なワイルドカードレジスタで補充されている。 ワイルドカードレジスタは、行アドレスにおける各ビットに対して1個のビット を有している。ワイルドカードレジスタにおける論理1ビットは、そのアドレス における対応するビットが「Don’t−Care(無関心)」として取られる べきであることを表わす。即ち、該アドレスデコーダはこのビットとは独立的に アドレスをマッチさせる。パワー即ち電力が印加されると、ワイルドカードレジ スタは論理0へ初期化され、従って全てのアドレスビットは有意性があるものと して取扱われる。更に、ワイルドカードレジスタは読取動作期間中及びアドレス バスが状態アクセスモードにある場合にディスエーブル即ち動作不能状態とされ る。ワイルドカードレジスタは、同一の列のセル内の多数のセルコンフィギュレ ーションメモリが同一のデータで同時的に書込まれることを可能とする。このこ とは、制御メモリへ効率的に規則的なパターンがロードされることを可能とする ために装置のテスト期間中に使用され るが、より一般的には、特に、規則的なビットスライス型設計の場合に有用であ る。何故ならば、それは、多数のセルを同時的に変化させることを可能とするか らである。例えば、16ビット2:1マルチプレクサはセルルーチング(経路付 け用)マルチプレクサを使用して構築することが可能であり、且つ単一制御格納 部アクセスを使用して2つのソース即ち発生源の間でスイッチさせることが可能 である。例えば、東ルーチングマルチプレクサを使用する場合には、これらの2 つの発生源はセルの機能ユニット出力、例えばレジスタ出力、及びセルの西入力 とすることが可能である。ワイルドカードレジスタの1ビットが活性状態である 場合には、そのアドレスの対応するビットは無視され、例えば、最も低い次数の ビットに対するワイルドカードレジスタが01を保持しており且つ供給されたア ドレスが10である場合には、デコーダ10及び11は両方ともイネーブル即ち 動作可能状態とされる。最も低い次数のビットに対するワイルドカードレジスタ が00を保持している場合には、本装置は通常のRAMとして機能する。 図32a,32b,32cはワイルドカードアドレス動作の3つの例を示して いる。図32aにおいては、ユーザはワイルドカードにおいていずれのビ ットもいまだにセットしておらず且つ行アドレス010101(10進数21) を印加している。従って、図示した如く、行21のみがアドレスされている。図 32bにおいては、ユーザはワイルドカードアドレス100001をセットして おり且つ行アドレス010101を印加している。この場合は、最小桁ビット及 び最大桁ビットにおいて値1が以下のアドレスを有する行をアドレスさせている 。 010100(10進数20) 010101(10進数21) 110100(10進数52) 110101(10進数53) 図32cにおいては、ユーザがワイルドカードアドレス000111をセット しており且つ同一の行アドレス010101を印加している。この組合わせは、 行16乃至23をアドレスさせる。従って、複数個の行の多くの組合わせ及び密 度が、ワイルドカードレジスタ内の適宜のエントリ及び適宜の行アドレスを選択 することによりアドレスすることが可能である。 ワイルドカードアドレス手法の主要な利点は、空間及び時間を犠牲することな しにスタンダードのアドレスデコーダで実現することが可能であるという点であ る。この配列は図33a,33b,33cに 詳細に図示してある。前述した出願W090/11648号(米国特許第5,2 43,238号)において及び前述したWeste及びEshraghianの 参考書において示される如く、RAM用のスタンダードなアドレスデコーダはC MOS NORゲートから構成されている。各アドレスビットの真 供給される。各個別的なゲートは、適宜のメタルライン上へコンタクトを配置さ せることにより、それがデコードするアドレスにしたがってアドレスビットの真 又は相補的な値のいずれかを選択する。例えば、図33aに示した如く、0をデ コードするアドレスデコーダ138は全て真の形式を使用する(従って、アドレ ス入力のうちのいずれかが高状態である場合には、対応するデコーダ出力は低状 態である)。このことはN個の行デコーダの各々に対して繰り返される。図33 bに示した如く、アレイへ供給される真及び相補的な信号の両方に関しワイルド カードレジスタにより制御されるANDゲートを挿入することにより、与えられ たアドレスビットに対する真及び相補的な信号の両方は強制的に低状態とさせる ことが可能である。このことは、他のアドレスビットがマッチするいずれかのN ORゲートがこのビッ トとは独立的にその出力を活性状態とさせる(高状態)ことを意味している。図 33bは、ワイルドカードユニット回路におけるこのようなANDゲートの一部 を示している。理解される如く、この回路は、各アドレスビットに対して複製さ れる。図33bのANDゲート入力へ印加されるEn信号は、ワイルドカードレ ジスタの対応するビットからくる。通常、 号はインバータを使用してAから派生される。図33cは、図33bのワイルド カードユニットが外部アドレスバスと行及び列デコーダへのバスとの間のRAM 内に位置されることを示している。 容易に実現されることに加えて、ワイルドカードアドレスレジスタは付加的な 重要な利点を有している。計算的な適用例において見出される多くのビットスラ イス型構成においては、各ビットスライスユニットにおける同一のセルを同時的 に変化させることが望ましい。更に、ファイングレイン即ち微粒型FPGAにお ける場合には、同時的に変化させるべきセルは1つの行又は列に沿って2つ毎、 4つ毎又は8つ毎のセルである場合がしばしばである。ワイルドカードアドレス デコーダは、アドレスバスの第2、第3又は第4ビットをマスクすることによっ て、この種類の動作を効率的に実施することを可能とす る。テスト動作 ワイルドカードアドレスレジスタの別の利点は、FPGAの機能性テストに必 要な時間が減少されているということである。製造した後に、正確に機能するこ とのないFPGAのセル又はエリアが処理上のエラー又は欠陥によって導入され ていないことを確認するために装置のテストを行なうことが望ましい。リプログ ラマブル即ち再書込可能なFPGAはこのようなテスト動作によく適している。 テスト動作のコストは全製造コストのかなりの部分を占め、且つテスト動作のコ ストはテストベクトルの数にほぼ直接的に比例する。その最も基本的な形態にお いて、このようなテスト動作では制御格納部に対して特定のビットパターンを書 込み次いでそれから読取りを行なう場合がある。書込んだ値を読み戻した値と比 較することにより、制御格納部メモリは正しく機能することを確認することが可 能である。わずかの数のテストベクトルのみで制御格納部の正しい機能性を検証 するために注意深く選択したビットパターンを使用することが可能であることは 公知である。 FPGA動作の別のより徹底的なテストでは、全てのマルチプレクサを入力の 各可能な組合わせで励起することを包含している。マルチプレクサ動作を テストするための手順は、各マルチプレクサをテストするために多数の規則的な コンフィギュレーション即ち形態を書込むことが必要である。このようなテスト は機能(関数)マルチプレクサ及びルーチング(経路付け用)マルチプレクサを 動作させることを包含する。 制御格納部テスト動作及びマルチプレクサテスト動作の両方共繰返しの数規則 的なビットパターンをコンフィギュレーションメモリへ書込むことを包含してい る。各々はワイルドカードアドレスレジスタから利点を有している。ワイルドカ ードレジスタを使用することにより、従来のメモリインターフェースを使用する 場合に必要とされる場合よりもより少ない数の書込サイクルを使用して多数のセ ルへ共通のテストコンフィギュレーションパターンを付与することが可能である 。同様に、該マルチプレクサを動作させる場合に、複数個のセルからなる1つの グループから機能ユニット出力を読み戻すことの能力は、必要とされる読取サイ クルの数を著しく減少させる。従って、ワイルドカードレジスタを使用するFP GAテスト動作は、徹底的なテストを行なう場合の時間は著しく少ないか、又は 、与えられた時間においてFPGAをテストする場合により広範なテストを行な うことが可能である。シフト・マスクレジスタ コンフィギュレーションワードのサブフィールドへアクセスを与えることも望 ましい。然しながら、このことは、通常のRAMアドレス動作を使用するか、又 はワイルドカード又はラン長さレジスタを使用する場合であっても達成すること は不可能である。サブフィールドへのアクセスは共通の条件である。何故ならば 、単一ワードのコンフィギュレーションメモリは、通常、しばしば独立的に変化 させることが望ましい幾つかの別々のスイッチングユニットに対するコンフィギ ュレーションデータを有しているからである。ワード幅インターフェースの場合 には、他のものの状態に影響を与えることなしに、1つの論理ユニットを変化さ せるために、ホストプロセサ上でシフト・マスク動作の複雑なシーケンスが必要 である。これらのシフト・マスク動作は、幾つかのワードに関する同一の書込動 作を同時的に実施する能力を利用することをしばしば不可能とする。何故ならば 、変化されるべきでないワードのビットは各ワードにおいて異なるものである場 合があるからである。この問題は別個のマスクレジスタを与え且つ図33cに示 したように、外部データバスとビットラインドライバへのデータバスとの間にシ フト・マスクユニットを配置させることによって解決される。 読取サイクル用のシフト・マスクレジスタの詳細な構成を図34aに示してあ る。書込サイクルの場合、図34aに示したものと同一のユニットが反対方向に 面した状態で使用され(即ち、その入力がチップの外部からやってきて且つその 出力がビットラインドライバデータバスへ移動する)且つ各データバスビットに 対する付加的イネーブルラインがマスクレジスタから発生するビットラインドラ イバへ供給される。図34aから理解されるように、大略参照番号200で示し たシフト・マスクレジスタは、外部データバスとRAM160(図27b)への 内部データ接続162との間に配置されたスイッチ201を有している。パワー アップの後に、レジスタ200は従来のRAMインターフェースに対応して全て 論理0を有している。データは、制御格納部コンフィギュレーション(形態)の 一部として、又はリコンフィギュレーション即ち形態再特定期間中にマイクロプ ロセサにより周期的に、シフト・マスクレジスタ内にロードされる。マスクレジ スタの特定のビットにおける論理1は、内部データバス162の対応するビット が関連性のないものであることを表わす。読取動作において、「有効」ビットの み、即ちシフト・マスクレジスタにおいて論理0を有するビットのみが右揃えの 形態で外部インターフェー ス、即ちデータ出力に供給される。このことは、図35における表に示されてい る。図34a,34b,35は各スイッチ201がマスクレジスタ200からの 入力を有していることを示している。スイッチ201は以下のように動作する。 スイッチ行7上で、スイッチ201−77はデータ入力InBとしてビットb7 を受取る(図34b)。スイッチ201−77のデータ入力InAは接地へ接続 されている。マスクレジスタビットM7が高状態であると、トランジスタ203 aはオンであり、且つ出力においてInA入力(接地)が表われ、即ちInB上 のビットb7はマスクされる。接地されているスイッチ201−77の出力は行 6内のスイッチ201−66及び201−67へ供給される。更に、スイッチ2 01−67へ接地信号が供給され、且つスイッチ201−66へビットb6が供 給される。図34cは、行6において、イネーブル信号が存在しないことを示し ており、従ってスイッチ201−66及び201−67におけるトランジスタ2 03aはオフ状態のままであり、且つトランジスタ203bはオンであり、従っ てInB上の入力b7及びb6は出力へパス即ち通過する。行5においては、こ の場合もシフト・マスクレジスタはイネーブルされておらず、従って信号b7, b6,B5は真直ぐ下側へパスす る。行4においては、マスクレジスタビットM4がイネーブルされ、従ってビッ トb4は下側へシフトダウンされることはなく、且つビットb7,b6,b5は 右側及び下側へシフトされる。このことは、マスクレジスタ内のビットの値に依 存して、他のスイッチの場合にも繰り返される。図34cはDATA IN(デ ータ入力)からDATA OUT(データ出力)へパスするビットに関してマス クレジスタ内のビットが有する効果を示している。理解される如く、シフト・マ スクレジスタは、制御格納部における離隔したマルチプレクサを変化させること を簡単化させている。例えば、シフト・マスクレジスタなしで1個のセルの北マ ルチプレクサに対するソース即ち発生源を変化させるには以下のような動作が必 要となる。 (1)適宜のアドレスにおいて制御格納部の読取りを行なう。 (2)二進00111111で北レジスタに対応するビットをマスクする。 (3)北レジスタに対する新たな値を獲得し且つビット6及び7と整合させる 。他のビットが0であることを確かめる。 (4)新たな値を動作(2)からの値とOR処理する。 (5)書き戻しを行なう。 シフト・マスクユニットを使用した場合には以下のステップで充分である。 (1)二進00111111でマスクレジスタの書込みを行なう。 (2)適宜のアドレスにおいて制御格納部へ新たな値を書込む。 書込サイクルにおいて、本ユニットは、マスクレジスタ内の1のビットに対応 するビットラインドライバに対してのデータバスのビットをディスエーブル即ち 動作不能状態とさせ、従ってこれらのビットラインにおけるRAMセルに関して 書込みが行なわれることはない。他のビットラインにおける値は最小桁ビットか ら始まって順番に入力データバスビットから供給される。このことは、右揃えさ れたデータを使用して単一マルチプレクサの書込みを行なうことを可能とする利 点を有しており、従ってプロセサは付加的なシフト動作を行なうことは必要では ない。シフト・マスク機能を具備したワイルドカードレジスタを使用して、幾つ かの制御格納部ワードの同一のサブユニットに対して複数個の書込みを行なわせ ることが可能である。書込サイクルの場合には、図34aに示したのと同一のユ ニットが使用されるが、入力はチップ外部からやってくるものであり、 且つ出力はビットラインドライバデータバスへ移動する。各外部ビットに対する イネーブルラインはマスクレジスタを発生源とするビットラインドライバへ供給 される。明らかなことであるが、シフト・マスク機能は独立的なものであり、且 つシフトのみ及びマスクのみのユニットを容易に派生させることが可能である。状態アクセス 現在のFPGA設計は装置制御格納部内のビットへマッピングすることによっ て、ユーザ設計の個々のゲート及びフリップフロップの出力への読取アクセスを 行なうことを可能とする。図37は読取及び書込状態アクセスをサポートするた めの機能ユニット48における付加的な論理を示している。フリップフロップ2 07に対する読取及び書込動作は、別々のアドレスに対するものであり、ここで は、書込みはビット0、ワード0を使用し、且つ読取りはビット1、ワード0を 使用する。伝達ゲート205はワード0によって制御される。読取りの場合には 、ワード0がアドレスされると、伝達ゲート205が2:1マルチプレクサ30 1の出力をビット1ライン上に配置させる。ビットライン1がアドレスされると 、この値が読取られる。2:1マルチプレクサ301がDフリップフロップ20 7のQ出力をパス即ち通 過させるためにその制御格納部ビットによってプログラムされている場合には、 この値が読取られる。レジスタ207へ書込む場合には、ビット0及びワード0 がアドレスされる。レジスタ207は非同期的なセット及びリセット(R,S) を有している。ANDゲート302及び303は夫々セット及びリセットへ接続 されている。ワード0が0である場合には、ANDゲート302及び303の両 方が論理0を担持し、且つDフリップフロップ207内の値は不変である。ワー ド0における信号が1である場合には、ビット0上の論理0がANDゲート30 3から高リセット出力を発生し、Dフリップフロップ207をして論理1を格納 させる。同様に、ビット0が論理0である場合には、Dフリップフロップ207 が論理0を格納する。ANDゲート301及び303及び伝達ゲート205によ って与えられるものと同様な論理を、例えば図18乃至23に示したようなその 他の機能ユニット設計へ適用することが可能である。ANDゲート302及び3 03はビットラインビット0へ接続されているそれらの入力上においてスタンダ ードでないスレッシュホールド電圧を有することが必要である。このことは、こ の場合には、ビット0電圧が論理1でも論理0でもない中間の値にあり、レジス タの状態が不変のまま維持されるこ とを確保される。このような状態は、そのワードラインが列アドレスによって選 択されているがそのビットラインが選択されていないレジスタに対して発生し、 即ちそのアクセスは同一のワードライン上の別のレジスタに対してのものである 。一方、6トランジスタSRAMセルにおいて使用されるように相 てスタンダードでないゲートに対する必要性を回避することが可能である。レジスタアクセス:コンフィギュレーションメモリから分離されたユーザレジス ゲート出力及びレジスタ状態へのアクセスは、FPGAとホストプロセサとの 間のデータ通信のためのI/Oメカニズムとしてそれ自身使用が制限されている 。(然しながら、ゲート出力及びレジスタ状態へのアクセスは、システムをデバ ッグするのに非常に有用である。)I/Oの使用は制限されている。何故ならば 、プロセサアドレス空間内の異なるワードからの場合もある、FPGAにおける 複数個のRAMセルからとられるビットから単一ワードのデータを組み立てるた めには多数のオーバーヘッドシフト・マスク動作が必要とされるからである。ゲ ート出力及びレジスタ状態アクセスを有用なコミュニケーションインターフェー スとさせるためには、ユーザ 設計の一部であるレジスタへのプロセサからのワード幅読取及び書込アクセスを 可能とするハードウエアを設けることが必要である。 本明細書において内部状態へのアクセスを与えるために記載する技術は、多分 、RAM制御格納部を具備するFPGAに対して最も便利的に適用される。何故 ならば、その回路は制御格納部へアクセスするものと容易に共用させることが可 能だからである。然しながら、内部状態アクセスを与えることは、それに制限す る訳ではないがアンチヒューズ及びEPROMをベースとした構成を包含するそ の他のタイプのFPGAに対して使用することも可能である。 特に、ゲート出力及びレジスタ状態への読取アクセスを可能とし且つレジスタ 状態への書込アクセスを可能とさせるためにFPGA内の全ての計算ユニットに 対して装置制御メモリ内の単一ビットが割り当てられるものと仮定する場合には 、該インターフェースの帯域幅を改善する第一ステップは、レジスタ状態又はゲ ート出力を表わすRAMのビットを、他のコンフィギュレーションメモリビット と混合させるのではなく、該アドレス空間の論理的に別個のセグメント内へマッ プさせることである。一実施例においては、レジスタ状態ビットは該アレイのコ ンフィギュレーションビットといまだに物理的に混合 されている。レジスタ状態ビットをコンフィギュレーションビットから分離する ことは、最も簡単な方法では、図29に関連して説明したようにアドレスバス内 に付加的な「モード」ビットを設け、且つ装置コンフィギュレーションビットに 対応するデコーダが真形態のモード信号を使用し且つ状態アクセスビットに対応 するデコーダが相補的な形態を使用するようにデコーダを設計することによって 達成される。この分離によって、アドレス空間は密度がより低いものとされるが 、コンフィギュレーションビットを動的に変化させるか又は状態ビットへアクセ スすることを一層簡単なものとさせる。アドレスビットのフォーマットは図29 及び30に示してある。この分離方法は、状態アクセスビットが行及び列デコー ダにおいて付加的な複雑性が発生する犠牲においてコンフィギュレーションビッ トと同一のビット及びワードラインに応答する場合に使用することが可能であり 、その際に、各デコーダは、2つのアドレス空間内のアドレスに対応する2つの NORゲートを有しており、且つモードビットがビット又はワードライン回路を イネーブルさせるためにどのNORゲート出力が使用されるかを選択する。ビッ トラインがコンフィギュレーションアクセスモードにおいて活性状態である場合 よりも状態アクセスモードにおい て活性状態にある場合に該ビットラインを異なるデータバスラインへ接続させる ことも便利である。データバスを選択することは、ビットラインドライバ内のエ キストラな回路を使用して行なわれる。行及び列分離レジスタを具備するワード幅インターフェース 状態ビットが論理的に別個のアドレス空間のセクション内にマップされる場合 には、内部レジスタへのワード幅アクセスを可能とする最良のインターフェース が考慮されねばならない。ワード幅アクセス技術はザイリンクスXC4000シ ステム内におけるようなFPGAにおける小さなRAMへアクセスするために適 用することも可能である。1つの妥当な拘束条件は、単一の行又は列のセルに沿 って均等間隔で最小桁ビットから最大桁ビットへ順番に発生すべきであるという ことである。この拘束条件は、既存のファイングレイン型即ち微粒型FPGA上 の殆どユーザ設計によって充足されている。この拘束条件が存在する場合には、 行及び列分離情報を有する2つの付加的なレジスタを使用してインターフェース を特定することが可能である。これらの付加的なレジスタのうちの1つの中に書 込むことは、自動的にその他の付加的なレジスタをクリアし且つ該アレイの1つ の行又は列に沿って1個のレジスタがアク セスされるべきであったか否かを決定する。1つのレジスタ値がレジスタビット 間のセル数を特定する。例えば、データバス幅が8ビットであり且つ2の値を保 持する分離レジスタでアドレス8をアクセスした場合には、アドレス8,10, 12,14,16等が得られる。ビットの状態アクセスを制御するこの分離レジ スタの例は図35に図示してある。状態情報へアクセスするためのワイルドカード及びシフト/マスクレジスタの使 上述したインターフェースは色々な意味で理想的なものであるが、それは、コ ンフィギュレーションメモリをプログラミングするために必要とされる論理と容 易に共用することの不可能なレジスタ内の付加的な論理を包含している。魅力的 なオプションは、状態情報に対するアクセスの場合にも既存のワイルドカード及 びビットシフト・マスクユニットを使用することである。それらは分離レジスタ を使用するインターフェースほど柔軟性のあるものではなく且つレジスタが該ア レイ内のセルアドレスと良好に整合しない場合にはプロセサにおける幾つかのオ ーバーヘッド動作を必要とするが、それらは、スタンダードのRAMアクセスモ ードよりも著しく増加した柔軟性を与える。この文脈において、ビットラインド ライバに対する内部データバスが外部データバスよ りも一層幅広であることが便利な場合がある。 上述した手法に関する変形例は、セル行当たり1個のビットを具備する一層大 型のシフト・マスクレジスタを使用することである。この場合には、行ワイルド カードユニットは状態情報へアクセスするために必要ではない。シフト・マスク レジスタは外部データバス及びビットラインドライバへのデータバスよりも著し く幅広である蓋然性があるので、シフト・マスクレジスタの内容をセットするた めに1つを越えた数の外部書込動作が必要とされる。図34cは、入力及びマス クレジスタの幅が出力バスの幅よりも一層幅広である場合のシステムをサポート するために図34aの回路をどのようにして拡張することが可能であるかを示し ている。 各々がユーザの設計の異なるレジスタに対応するパターンを保持し、且つ各々 がシフト・マスク論理に対して条件付きで接続させることの可能な幾つかのマス クレジスタを設けることも可能である。レジスタアクセス動作期間中に、アドレ スバス上のビットを使用してこれらのマスクレジスタのどれを使用するかを選択 することが可能である。幾つかのマスクレジスタを有することは、レジスタをユ ーザの設計内に配置させることの可能な柔軟性を著しく増加させる。 図34aのシフト・マスク回路の1つの欠点は、入力と出力との間の経路上の 著しい数のスイッチ201を介して信号がパス即ち通過せねばならないというこ とである。このことはレジスタアクセス動作の速度を減少させる。図36aは、 入力と出力との間の各経路上に単一のスイッチを有するに過ぎない別のシフト・ マスクユニットを示しており、特定のスイッチをイネーブルさせるために付加的 なデコード動作が行なわれる。このデコード回路は遅延を発生するが、この遅延 はユーザのレジスタへのアクセス期間中ではなく、マスクレジスタへの書込期間 中である。図36aの特定の実施例は64ビットラインへアクセスするために6 4個のマスクビットを有しており、その中で、32個を超えて一度にアクセスさ れることはない。 図36aに示した如く、マクスレジスタMは64個のマスクビットM0乃至M 63を保持する。そのうちの数個しか図示していないが、63個のインクリメン タH1乃至H63からなる一列は、マスクレジスタM内に格納された論理1の数 のカウントを維持する。各論理1は対応するデータビットをデータとして供給さ せる。マスクビットM0に対する回路が最も簡単である。M0が論理1である場 合には、トランジスタT0がターンオンし、従ってビットラ インB0を出力データラインD0へ接続させる。この論理1はインクリメンタH 1へ印加され、それはインクリメンタH1をしてインクリンタH2へ通じる5ビ ットバス上へ値1を出力させる(この値1は、デコーダDEC0−1乃至DEC 0−63のうちのいずれかが対応するトランジスタT0−1乃至T0−63をタ ーンオンさせてビットB1乃至B63からの競合する値を出力データラインD0 上へ配置させることを防止する)。 マスクレジスタビットM1が論理0である場合には、インクリメンタH1へ入 力される値1に対しインクリメンタH1により値が加算されることはない。従っ て、値1がインクリメンタH1によって出力される。デコーダDEC1−1がこ の値1をデコードするが、M1の論理0値がデコーダDEC1−1をディスエー ブル即ち動作不能状態とさせる。従って、この値B1はデータラインD0又はD 1のいずれにも配置されることはない。マスクレジスタビットM2が論理1であ る場合には、この1がインクリメンタH2によって入力値1へ加算され且つイン クリメンタH3(簡単化のために図示していない)へ出力される。M2は論理1 であるから、その行内のデコーダがイネーブル即ち動作可能状態とされる。従っ て、インクリメンタH2へ入力される値1はデコーダD EC1−2によってデコードされ、それはトランジスタT1−2をターンオンさ せてビットライン信号B2をデータラインD1上へ配置させる。上述した説明か ら理解される如く、マスクレジスタM内のその他の値は1本のビットラインから 1本の出力データラインへその他の接続を発生させる。 マスクビットM0乃至M31に対するデコード回路は上述したようなものであ る。マスクレジスタビットM32乃至M63に対しては、本実施例においてはそ れ以上デコーダは付加されない。何故ならば、そのデータバスは32個のデータ ラインD0乃至D31を有するに過ぎないからである。本回路のこの部分におい ては、エラー検知回路が設けられており、それはマスクレジスタM内の論理1の 数が32よりも大きい場合にオーバーフローを検知するORゲートを有している 。マスクレジスタビットMn用のこのエラー検知回路を図示してある。ORゲー トORnは、インクリメンタHnが33番目の論理1がマスクレジスタM内へエ ンターされたことを検知する場合に、論理1を受取る。その他方の入力において 、ORゲートORnは、いずれかのより低い次数のインクリメンタがオーバーフ ローを検知した場合に論理1を受取る。この論理1値はORn上の全てのORゲ ートを介して伝播し且つANDゲートANDn及 びANDn上の全てのANDゲートをして論理0を出力させ、従って行n上の全 てのデコーダをディスエーブルさせる。 従って、理解されるように、図36aの回路は64個のビットライン入力B0 乃至B63からの64ビットマスクレジスタMによって特定されるような1組の データバス出力を形成し、且つそれらの選択されたビットを右揃えとさせる。更 に、各選択されたビットライン値は単に単一のトランジスタを介して通過しその データラインへ到達する。 図36aにおけるデコーダは、好適には、NORゲートとして実現されるが、 勿論、その他の構成とすることも可能である。図36aのインクリメンタ回路は インクリメンタH63に取付けた挿入図に示したように構成することが可能であ る。 図36bは図34aのものに類似しているが、16個のデータビットと1つの 8ビットデータレジスタとを有する別のシフト・マスクレジスタを図示している 。マスク200は、DATA OUT(データ出力)バス上に配置させるために 16個のDATA IN(データ入力)ビットb0乃至b15のうちで最大8個ま でを図36bのシフト・マスク回路が選択することを可能とする。値M0乃至M1 5 がマスクレジスタ200内へロードされる。図34aの場合にお ける如く、マスクレジスタ内の値1は、ビット値b0乃至b15をして下側及び右 側へシフトさせ、一方マスクレジスタ内の値0は該ビット値をして真直ぐ下側へ シフトさせる。マスクレジスタ200が8個を超える1を有している場合には最 も高い次数のビット値が失われる。 マスクレジスタへの書込みは、コンフィギュレーションメモリへのアクセスよ りも本質的に一層高速の動作である。何故ならば、それは行及び列デコーダを介 してコンフィギュレーションメモリ内における長尺のビット及びワードラインを セットアップすることがないからである。従って、デコード回路を安定化させる ことを可能とするための適切な時間が通常の書込サイクル中に存在する可能性が ある。アドレスビットによって選択される複数個のマスクレジスタが存在してお り且つ単一組のデコード回路が存在するに過ぎない場合には、ユーザレジスタへ のアクセス期間中にデコード遅延が発生する。従って、図36aのシフト・マス クユニットは、単一のマスクレジスタが存在するに過ぎない場合に主に有益的で ある。水平方向に実現されたレジスタへのアクセス レジスタ及びゲート出力へのインターフェースは、垂直方向に走行する装置内 のレジスタへのワード幅 アクセスを与え、従って該レジスタのビットは全て異なるビットライン上で発生 する。該レジスタが水平方向に走行する場合には、全てのビットは同一のビット ラインにおいて発生し且つ並列ワード幅アクセスは可能ではない。状態アクセス に対応する制御格納部のビット数は制御格納部の全ビット数よりも約20倍少な いものである可能性があるので、第1組に対して直交する方向に走行する第2組 のビット及びワードラインドライバと共にフィードバックビットに対して「デュ アルポート」型メモリを使用することの実現性は高い。エキストラなポートは、 水平方向及び垂直方向のレジスタをワード幅態様でアクセスすることを可能とす る。デュアルポート型メモリは公知であり且つ上述したWeste及びEshr aghianの参考書に開示されている。この第2組のドライバは、それら自身 の専用のシフト・マスクユニット及びワイルドカードレジスタを有することが可 能であり、又は詳細なレイアウトの考察にしたがって第1組と共用することが可 能である。制御格納部複製 制御格納部複製について説明する。ある場合においては、常に同一の値を有す ることが保証されているFPGAの制御格納部の複数個のビットを有することが 便利である。この制御格納部ビットの複製は、 そうでない場合には、単一の制御格納部のビットの出力をアレイ内の離れた位置 への経路付けを行なうことが必要とされるような配線作業を取除くことを可能と している。この技術の1つの重要な適用例は、3状態ドライバを使用して1つを 超えた数のソース即ち発生源によって駆動することの可能な単一のルーチング( 経路付け)ワイヤ(配線)が設けられており、且つ制御格納部がどのドライバが 活性状態であるかを選択するビットを有している場合である。ワイヤ自身と並列 して制御格納部のビットを全てのドライバに対してルーチング即ち経路付けを行 なうことにより1つの解決を得ることが可能であるが、このことは長尺ワイヤに 対してかなりの面積に関するオーバーヘッドを包含する。別の解決方法は、同一 でなければならないそれらの制御格納部位置に対して複製ビットを同時的に書込 むことにより得られる。これらの複製ビットが制御格納部アドレスの同一のビッ トライン上にある場合には、複製ビットの同時的書込動作は、複製ビットを有す るRAMの種々の列に対する同一の列アドレスを使用することにより容易に達成 される。行及び列デコーダの複雑性を増加させることにより、例えば、与えられ たデコーダにおいて1つを超えた数のNORゲートを設け且つ列デコーダに対し て行アドレスビットをルーチング 即ち経路付けし且つその逆を行なうことにより、複製ビットの読取り及び書込み を行なう柔軟性のある構成を構築することが可能である。 この構成は図38において最もよく示されている。文字Aはビットが同一の値 を有するべきメモリセル(セル351及び352が示されている)を表わしてい る。付加的なメモリセルAを設けることが可能であるが、図38には示していな い。同一の値を有するべき全てのメモリセルAは同一のビットライン99上に配 置されている。RAMの記号を付けた例えば331−334等のその他のセルは 、各々、別個にアドレス可能であり、且つメモリセルAと同一の列(ワードライ ン)内にある。ワードライン361及び362は、2つの異なる列アドレスによ り選択することが可能である。ワードライン361は、デコーダ321又は32 2のいずれかにより選択され、且つワードライン352はデコーダ323又は3 24のいずれかにより選択される。デコーダ321及び323は同一のアドレス をデコードし、且つそのようなデコーダはメモリセルAが位置されている全ての 列に対して設けられている。換言すると、メモリセルAを有する全ての列は、単 一の行及び列アドレスをドコードする1個のデコーダを有している。デコーダ3 22はRAMセル331及び333に対す る列アドレスをデコードし、一方デコーダ324はRAMセル332及び334 に対する列アドレスをデコードする。メモリセルAに対するデコーダ321及び 323は、ビットライン99を選択するための行アドレスビットを有しており、 従ってデコーダ321及び323の出力は、メモリセルAを有する列が選択され 且つビットライン99を選択される場合にのみ高状態へ移行する。RAMセル用 のデコーダ322及び324は、ビットライン99が不活性状態にある場合にの み高状態へ移行する。従って、複数個のメモリセルAは同時的に読取り又は書込 みを行なうことが可能であり、しかも、メモリの残部における高密度は維持され る。メモリの残部が高密度に維持されるのは、複製ビットAへアクセスするため にエキストラなワードラインが付加されていないからである。制御格納部複製を 適用する別の有用な方法は、読取/書込信号をアドレスデコーダへ供給し、且つ 読取/書込ライン上でデコーダ321が論理0をデコードし且つデコーダ323 が論理1をデコードするように設定することである。読取/書込信号を例えば3 22及び324等の他のデコーダへ供給することは、2つの行及び列アドレス、 即ちその1つはセルの機能ユニットレジスタに対しての読取りのため及び別の1 つは書込みのためのこれらの アドレスをデバイスアドレス空間内の単一アドレス上にマップさせることを可能 とする。 行及び列デコーダの正確な構成は多様な要因に依存しており、例えば、複製さ れたビットが制御格納部を介して散在されている態様及び読取及び書込動作のた めに必要とされる性能等に依存している。デコーダ用の適宜の回路設計は、前述 したWeste及びEshraghianの参考書に開示されているような従来 の設計技術を使用して容易に行なうことが可能である。FPGAへのプロセサインターフェース 次に、プロセサインターフェースについて説明する。現在のFPGA設計は、 FPGA上のユーザ論理とホストマイクロプロセサとの間での情報伝達をハンド シェイク動作させる手段を与えるものではない。従って、多様な臨機応変なメカ ニズムが使用されている。現在使用されている最も柔軟性のある既存のメカニズ ムは、プロセサから直接的にFPGAをクロック動作させることであり、それは 2つの計算を完全に同期状態に維持する。然しながら、プロセサからFPGAを クロック動作させることは、高性能適用例においてはFPGAを著しくスローダ ウンさせることとなる。従って、FPGA上で実現されるレジスタへ及びそれか らの転送すべきデータの 量が比較的小さい場合には、クロック型転送が最も有用であり、且つ有用なデバ ッグ方法を提供する。 又、バッファメモリ内にデータを書込み次いでFPGA自身の上に実現されて いるか又は隣接する論理の上に実現されておりデータに関する演算を完了するの に充分なサイクルの間稼動し次いで停止する自走型クロックを開始させることが 可能である。この技術は、大きなデータストリームに対しては効率的に作動する が、別の動作においてクロックを開始させるオーバーヘッドは、FPGA上のレ ジスタへ書込み且つそれから読取られる単一オペランドに対して著しいものであ る。プロセサはハードウエアフラッグを継続的にポールし、FPGAにより発生 されたインタラプトを使用するか、又はFPGAが計算動作を完了し次いでその 結果を読み戻すまで既知の遅延の間待機することが可能である。FPGAにより 発生されたインタラプトがプロセサにより使用されるべき場合には、任意のセル 機能ユニット出力によって選択的に駆動することの可能な小さな数のグローバル 出力信号を与えることが便利である場合がある。これらのグローバル信号はイン タラプト要求信号として使用することが可能である(グローバル信号はワイヤー ドORとして実現することが可能であり、従って幾つかのセルが外部インタラプ トを 活性化させることが可能である)。インタラプトステータスレジスタに対して書 込みを行なっているプロセサによりラッチがクリアされるまで、FPGA装置は 外部インタラプトラインをラッチするためにプログラムさせることが可能である 。 多くの適用場面において、アレイ上のレジスタ内へのデータの書込動作によっ て直接的にFPGA上の処理を開始させることが望ましい。内部装置状態レジス タからの入力/出力転送用のアドレッシング手法について上に説明したが、その 場合に、このアドレッシング方法において使用されている行及び列(ビット及び ワード)ワイヤは、アレイを貫通してパスし且つFPGA上の計算を同期させる ために必要な信号を正確に有している。例えば、ビットラインに沿っての垂直な レジスタに対しての書込みの場合には、RAMのこれらのビットに対するワード ラインが、転送期間中に高状態へ移行し且つ転送が完了すると低状態へ移行する 。これらのビットライン及びワードライン信号は、通常、プログラミング及び状 態アクセスに関してのみ関連するものであるが、それらは、アレイ内の論理ルー チング(経路付け用)マルチプレクサのうちの1つに対するソース即ち発生源と して容易に与えることが可能である(便宜的に、長さ4スイッチブロックにおい て、ビットライ ンは東/西スイッチへ接続され且つワードラインは北/南スイッチへ接続される )。従って、FPGAにおけるユーザが定義した論理は、ワードライン信号上の 低状態へ移行するエッジによってトリガされ、次の計算を開始させて新たな値を レジスタ内へクロック入力させることが可能である。 比較的短い動作(即ち、少数の処理命令の実行時間よりも短い時間であって、 例えば今日の技術では500ナノ秒)がFPGAにおいて実現される場合には、 遅い装置でダイアリングを行なう場合に「待機状態」を挿入することにより読取 及び書込サイクルを長くするための殆どのプロセサの能力を使用することにより 上述した状態アクサセスメカニズムを拡張させることが便利である場合がある。 FPGAは、その新しい値が計算される前にレジスタがアクセスされる場合に「 待機」信号を発生し、それが有効な結果を読むことが可能となるまでプロセサを 強制的に待機状態とさせる。同様に、書込サイクルにおいて、レジスタ内の前の データが処理されるまでプロセサは停止される。この構成は、プロセサをFPG Aと同期させる非常に簡単で且つオーバーヘッドの低い方法を提供している。CADソフトウエアツール 次に、FPGA用のCADソフトウエアツールに ついて説明し、その後に、幾つかの一般的な論理構成を実現するためのCAL IIの適用例について説明する。 FPGA用の現在のCADツールは、設計を、接続したコンポーネントの静的 階層として表わしており、この階層は、次いで1組の基本的なコンポーネントへ 平坦化され且つ装置全体のコンフィギュレーション即ち形態を表わすビットパタ ーンへ変換される。ファイングレイン型即ち微粒型のFPGAにおいては、この 設計の階層的ブロックが、通常、ファイングレイン型エリアの矩形状区域を特定 し且つデバイスコンフィギュレーション(装置形態)メモリ内の矩形状の区域上 へマップする。メモリの与えられた矩形状のアレイに対するビットパターンがそ の設計の対応する区域における資源のコンフィギュレーション即ち形態にのみ依 存するようにFPGAが設計されている場合には、FPGAをブロック毎に迅速 にプログラムすることが可能であり、同一のブロックの全てのインスタンスは同 一のビットパターンを有している。異なる外部接続を有する同一のブロックの2 つのインスタンスは、異なるプログラミングビットパターンを有することが可能 である。現在のFPGAの場合には、コンフィギュレーション(形態)発生プロ グラムがユーザの設計に関しての変換 を実施する。この変換は、その設計の1つのブロックに対するコンフィギュレー ション(形態)情報を決定するために、コンフィギュレーションプログラムが設 計全体を解析することが可能であることを必要とする。 使用すべきダイナミックリコンフィギュレーション即ち動的形態再特定のため の1つの方法は、ホストプロセサが内部データ構造で動的にCAL II設計を 構成し且つその設計に対応するビットパターンを計算し次いでそれらを直接チッ プ内へダウンロードすることである。このような場合には、特別の翻訳プログラ ム又はコンフィギュレーションビットパターンを有する静的ファイルは存在しな い。この手法は、設計表示とビットパターンとの間であまり高度に高度化されて いない翻訳を有することにより実際的なものとされている(例えば、ビットパタ ーンにおけるあるビットは単一のパラメータを表わすために予約される)。翻訳 は階層的に又はブロック毎に適用することが可能である。更に、同一のブロック の全てのインスタンスは同一のコンフィギュレーション即ち形態を有するという 事実は、プログラミング時間を減少させるために、CAL IIチップ(ワイル ドカードレジスタにより実現されている)のマルチ書込能力と関連して使用する ことが可能で ある。シフト・マスクレジスタ特徴は、各々が同一のセル内の幾つかの資源及び 制御メモリの同一のワードを特定するオーバーラップするブロックが、1バイト におけるサブセットのビットが変化することを可能とすることによって、独立的 にプログラムさせることを可能としている。ブロック設計を介しての容易な形態再特定 幾つかのCAL II設計を構成するためにアルゴリズムを使用することが可 能であるが、殆どの場合においては、ユーザは、動的再プログラミングの利点を 失うことなしに、CAL II設計を発生させるためにより伝統的なCADツー ルを使用することを願望する。動的再プログラミング可能性は、置換可能なブロ ックを使用することにより得ることが可能である。設計の各ブロックに対して、 ユーザは多数の可能なコンフィギュレーション即ち形態を特定し、その場合にこ れらのコンフィギュレーションの各々は従来のツールを使用して発生させ且つ解 析することの可能な静的設計である。全設計に対する単一の初期的コンフィギュ レーション及び各置換可能なブロックの各潜在的なコンフィギュレーションに対 するコンフィギュレーションデータを計算し且つディスクファイル又は例えばE PROM等の非揮発性メモリ内に格納することが可能である。CAL IIチップを制御するホストプロセサ用のランタイムライブラリィルーチーン (即ち、FPGA製造業者によってかかれたライブラリィルーチーンであってF PGAと相互作用を行なうためにユーザのアプリケーションプログラムによって コールされるもの)がその別のコンフィギュレーションのうちの1つで任意の置 換可能なブロックコンフィギュレーションを置換させることが可能である。置換 は非常に簡単で且つ高速とすることが可能である。何故ならば、それはコンフィ ギュレーションメモリの規則的なエリアへのブロック転送を必要とするに過ぎな いからである。 該ソフトウエアは、更に、その設計の置換可能なブロック内の状態レジスタの 初期化を与えることが可能である。状態レジスタは、そのブロック定義に関連し たデフォルト値又はそのブロックの現在のインスタンスの前の状態へ初期化させ ることが可能であり、従ってそのステータスを回復させる。このことは、CAL IIアーキテクチュアのレジスタをランダムに読取り及び書込む能力を使用し て達成することが可能である。 迅速な形態再特定を確保するために置換可能なブロックに何らかの制限を課す ことが望ましい。例えば、置換可能なブロックの各バージョンは、同一の 取囲みボックスを有するものでなければならず、I/O信号は置換可能なブロッ クの全てのバージョンに関しブロック周辺部上の同一の点に表われねばならず、 且つどの交換可能なブロックのバージョンもそれらの取囲みボックスの外側に延 在するいずれかのチップ資源を使用するものであってはならない。例えば、置換 可能なブロックにおいて、その置換可能なブロックの取囲みボックスの外側に延 在したフライオーバーを使用することは認められない。ソフトウエアを著しく簡 単化させるより制限的な規則は、置換可能なブロックのインスタンスの境界内に 存在するどのチップ資源もその設計内のいずれかの他のブロックへ割り当てられ るものでないというものである。CADソフトウエアは、これらの制限が充足さ れたか否かを容易にチェックすることが可能である。それらの制限が充足されて いない場合には、そのブロックは不当なものであると判断することが可能である 。一方、取囲みボックスをチェックするのではなく個々の資源が競合することを チェックするより汎用性があり且つより遅い形態再特定アルゴリズムを使用する ことが可能である。 ある場合においては、装置の潜在的なコンフィギュレーション(形態)は比較 的少なく、且つこれらのコンフィギュレーションの間での極めて迅速なス イッチングが所望される。このような場合には、装置アクセスの数を最小とする ために、装置コンフィギュレーション(形態)特定ファイル及び潜在的なリコン フィギュレーション(形態再特定)のリストを解析するために最適化ソフトウエ ア(これは長い稼動時間を有する場合がある)を使用することが可能である。こ の最適化ソフトウエアは、装置の複数個の書込能力を利用し且つ制御格納部の異 なるビットのみを変化させる1組のコンフィギュレーション動作を発生させる。 この最適化ソフトウエアの出力はハイレベル言語コード又はホストプロセサ用の マシン言語プログラムセグメント内に格納することが可能である。これらの予め 計算した命令は、実行されると、形態再特定を制御するデータファイルではなく 形態再特定を実施する。 図39はマイクロプロセサ及びメモリ(EPROM及び/又はRAM)を具備 するアドレスバスとデータバスとの上に位置させて示したFPGAの概略図であ る。これはマイクロプロセサをベースとした回路適用においてFPGAを使用す ることが簡単であることを示している。CAL IIアーキテクチュアは双方向 及びトライステートワイヤ(配線)をサポートするものではない。これの主要な 理由は、CAL IIはユーザソフトウエアによる動的形態再 特定をサポートすることを意図しているからである。動的形態再特定期間中に、 アレイの形態特定を行なう中間でプログラムが終了される結果として又はユーザ のソフトウエアにエラーがあるために制御格納部が不正確に形態特定されること がある。各々がRAMの独立的なビットによって制御される複数個のトランシー バによって1本のワイヤを駆動することが可能であるアーキテクチュアにおいて は、本質的にコンフリクト即ち競合が発生する可能性があり、その結果高い電力 散逸が発生し且つ制御格納部が誤って形態特定される場合には装置を損傷する場 合がある。このような状態はコンフィギュレーション即ち形態特定が静的であり 且つ保証されたソフトウエアによって発生される場合には許容可能なものである が、頻繁な形態再特定をサポートすることが意図された装置においては許容可能 なものではない。トライステートバスの機能は、CAL IIアレイによって与 えられる一層長い論理ワイヤ及びセル論理ゲートを使用して実現されるワイヤO R又はワイヤANDバスを使用してエミュレートさせることが可能である。CAL IIを使用した適用例 図40−48はCAL IIアーキテクチュアの適用例を示している。図40 −48において使用し た図面の表記法は、設計により使用される1個のセルの機能ユニットを、選択し た機能を表わすボックス上に名称を有する中央ボックスとして表わしている。こ の図面表記法は、周辺部からセルの中心へ向かって長さが減少するにしたがう順 番で信号を配置させ、従って、例えば、長さ4フライオーバーはセルの周辺部近 くであり、且つ近隣相互接続は機能ブロックに一層近い。点線において屈曲し且 つセル内の中央ボックスへ通過するラインは図10のマルチプレクサ58,60 又は62のうちの1つにより取扱われる信号を表わしている。1つのボックスの エッジにおいて終端するラインは機能ユニットへの入力を表わしている。コンタ クトされた機能ユニットのサイド即ち側部は表Iにおいて示した如く図11上の 入力端子に対応している。 1個のセル機能ユニットの中心から出るラインは 図10の機能ユニット48によりSELFライン上へ配置され且つ更にマルチプ レクサ50,52,54又は56のうちの1つにより隣りのセルへ接続された信 号を表わしている。機能ユニット及び次のセルに近接し1つのセルを貫通するラ インは、図10のマルチプレクサ50,52,54又は56のうちの1つによっ てN,S,E又はW入力上で受取られ且つそのマルチプレクサによってNOUT ,SOUT,EOUT又はWOUTへ通過された信号を表わしている。図面を簡 単化するために、図41に示してあり且つ符号が付けられているスイッチ18又 は20(図15,16及び17においてスイッチが図示されている)は図42− 48においては符号を付けていない。これらのスイッチは、図41に示した如く 、セルブロックを分離する二重線の間に位置されている。 図40は4入力ANDゲートを使用するCAL IIアーキテクチュアを使用 したアプリケーションの第一具体例を示している。この4入力ANDゲートは典 型的に付加的な機能を実現する4×4ブロックのセル内に設けられているが、簡 単化のために、ANDゲートを実現するセルのみが示されている。幅広ゲートは 、ROM/PLA/PAL型構造のANDプレーン及びORプレーン及びアドレ スデコー ダを包含する多数の重要な論理構造において見出される。速度及び面積の両方の 点においてこのような幅広ゲートを効率的に実現することが可能であることが基 本的である。CAL IIアーキテクチュアは、2入力1出力論理セル12のツ リーを使用することによりこれらの幅広ゲートの高速実現をサポートしている。 図40に示したツリー構造においては、遅延は入力数と共に直線的にではなく対 数的に成長する。図40乃至48における図面表記法は、論理セル内の機能ユニ ットをそれらの選択した機能の符号を付けた矩形として表わす。機能ユニットが 使用されないセルは矩形を有するものではない。論理セルへの入力信号はそれら のエッジにおいて論理セル矩形と接触して示してあり、且つ出力はそれらの中心 から論理セル矩形から出る状態が示されている。隣りのセルを接続させるスイッ チは点線上に位置されているが、簡単化のために図示していない。図1,2,1 5,16に示したスイッチ18も示していないが二重点線の間に位置されている 。 図40において、ANDゲート12aは2つの入力、即ちIN0及びIN1を 受取り、且つAND12cは2つの入力即ちIN2及びIN3を受取る。AND ゲート12a及び12cの出力は、ANDゲート12bへの入力を形成し、そこ から出力OUTが とられる。図18乃至25に示した機能ユニットは、各入力変数の真の値又は相 補的な値を使用することを可能とし、それはデコーダにとって基本的なことであ る。ROMのORプレーン内の機能ユニットの柔軟性が、積項数を半分とするこ とを可能とし、且つCAL IIアーキテクチュアにより与えられる経路付け資 源は最大で32個の入力を有するツリー構造のゲートを単一列のセルにおいて実 現することを可能としている。 図41はアレイの1列内に配設した16個のセルを具備する16セルANDゲ ートを図示している。垂直方向に配列した4セル×4セルブロックが設けられて いる。この配列は、隣りのセルの間の接続を図示するのみならず、長さ4及び長 さ16のフライオーバーを使用するセルのブロック間の接続をも図示している。 これらのセルは底部におけるセル0から頂部におけるセル15へ番号が付けられ ている。図41において、スイッチ18はセルブロック間の空間内に位置させて 示してある。更に、ライン210,211,212が長さ4フライオーバールー チング即ち経路付けを示していることが理解される。信号はセル3と4との間の スイッチ18におけるフライオーバー210においてのみエンターすることが可 能であるが、信号はセル4,5,6,7内へ及びセ ル7と8との間のスイッチ18内へ直接フライオーバー210から出ることが可 能である。セル0乃至セル3から構成される底部ブロックにおいては、セル0乃 至2内に3個のANDゲートが設けられている。不使用のセル3を介して通過さ れたセル1の出力は底部ブロックへの境界におけるスイッチ18へエンター即ち 入力する。セル1の出力はセル4内のANDゲートの入力を形成する。セル4内 のANDゲートの出力は、セル3と4との間のスイッチ18を介して長さ4フラ イオーバー210へ送給される。セル8は長さ4フライオーバー210からの1 つの入力と、フライオーバー211を介してのセル12からの別の入力(セル7 と8との間のスイッチ18を介して移動することなしに)を有している。16入 力ANDゲートの出力はセル8の出力からとられ且つセル7と8との間のスイッ チ18を介してフライオーバー212を経てセル11と12との間のスイッチ1 8へ経路付けされ、且つ図41の頂部における出力として与えられる。 図42は汎用ロジックブロックを形成するために、どのようにしてANDプレ ーンを構築し且つORプレーンと合体されるかを示したPAL型構成を図示して いる。入力IN0乃至IN15がANDゲートの16個の行の8個の列へ供給さ れる。各列は、図 41に示した如く、ツリー構造を形成するように接続されている。ANDゲート の8個の列が存在するので、入力信号IN0乃至IN15からの接続は長さ4フ ライオーバーへ適用される。入力信号は図面の左側において印加され且つ東フラ イオーバーが使用される。2つの入力信号がこのツリーの最も低いレベルにおけ るANDゲートへ印加され且つ1本の東長さ4フライオーバーのみが各セル(偶 数行において)へ与えられるに過ぎないので、隣接するセルの東長さ4フライオ ーバーが使用され且つ信号は近隣相互接続を介して転送される。例えば、行5の 符号を付けたセルからなる行は行5の東長さ4フライオーバーからのそのIN5 入力を受取り、且つ行4の東長さ4フライオーバーからのそのIN4入力を受取 る。然しながら、図10に示した実施例においては、1個の隣りのセルから長さ 4フライオーバーからの別のセルへルーチング即ち経路付けを行なう構成は設け られていない。従って、二重点線によってスイッチにおいて、東長さ4フライオ ーバ一上の信号は東近隣経路付けへ転送される。このようなスイッチ転送の1つ を図42において424として示してある。簡単化のために、その他の転送に対 しては符号を付けていない。次いで、IN4信号が近隣経路付けを介して東方向 へ次の3つの隣接するセル へ転送される。この信号は、更に、行4内のセルによって隣接相互接続に沿って 上方向へ行5の直上のセルへ転送される。本発明によれば、IN4信号は近隣相 互接続を介してのみならず東長さ4フライオーバー上を走行し、従ってそれは8 個の近隣セルを介して通過した場合よりもより少ない遅延でこの図面の右側にお ける4個のANDゲートヘ到達する。424と均等な別のスイッチがIN4信号 を右4列の近隣相互接続へ転送させる。この適用においては、図面の右側におけ る東長さ4フライオーバー上にその信号を配置させることは必要ではない。何故 ならば、この図面の右側へのIN4信号の更なる接続は行なわれないからである 。行6,8,10,12,14は、高速を得るために長さ4フライオーバーと近 隣経路付けの同一の組合わせを包含している。行1及び3もこの組合わせを包含 しているが、これらの場合には、その信号は上方向ではなく下方向へ夫々行0及 び2へパスされる。 7個のORゲートの1つの行が図42の頂部に位置されている。ORゲートO R0は、入力として、ANDゲートの最初の2つの列の出力を受取る。ORゲー トOR2は、入力として、ANDゲートの3番目及び4番目の列の出力を受取る 。ORゲートOR1は、入力として、ORゲートOR0及びOR2の出 力を受取る。同様のツリー構造がORゲートOR5乃至OR7によって形成され ており、出力信号OUTは長さ4フライオーバーを介してORゲートOR3から とられる。 図43は2個の(4×4)セルブロックにおける5個のセルからなる1つの行 から構成される1ビットアーキュムレータを図示している。これらのセルは、図 示した如く、SUM出力及びCARRY(キャリィ)出力を形成するために、X OR、AND、MUX及びDCに対して形態が特定されている。 図44はルックアヘッドキャリィを有する3ビットアキュムレータを図示して いる(SUM0,SUM1,SUM2,CARRYOUTを発生する3つの入力 In0,In1,In2の場合)。 図45はキャリィ遅延に沿っての遅延を最小とするために、ルックアヘッドキ ャリィを具備する16ビットアキュムレータである加算器を図示している。CA L IIアーキテクチュアは、図43,44,45から理解される如く、セル機 能として2:1マルチプレクサをサポートしており、且つそのことはキャリィ経 路遅延をCAL Iアーキテクチュアにおける2ゲート遅延からこのアーキテク チュアにおける1ゲート遅延へ減少させている。フライオーバーによって与えら れるエキストラな経路付け資源は、 図43に示した1ビット加算器が複数個のセルからなる単一の行において実現す ることを可能としており、そのことは2セル高(CAL I)構成と比較してキ ャリィ経路上の経路付け遅延を減少させている。このように、CAL IIアー キテクチュアを使用して種々の複雑性のアキュムレータ及び加算器を構成するこ とが可能であり、勿論、ルックアヘッド構造において複数個の加算器からなる1 個のブロックを介して前のステージからのキャリィの経路付けを行なうために図 45に示した如く経路付け資源を使用することが可能である。 CAL IIアーキテクチュアは、更に、同期カウンタを実現することが可能 である。上述した如く、CAL IIアーキテクチュアは、セルのプリミティブ としてエッジトリガ型フリップフロップを与え、そのことはこのような同期カウ ンタを一層効率的に構成することを可能としている。図46は例えばクロックイ ネーブル入力、クロックイネーブル出力、クロック、及び出力信号Q0,Q1, Q2,Q3等の通常の信号を有する4ビット同期カウンタステージを図示してい る。理解されるように、クロックイネーブル出力信号は長さ4フライオーバーか らやってくるものであり、且つそのクロック信号は長さ4フライオーバーを介し てフリップフロップのために 使用されている行内の全てのセルへ送給することが可能である。CAL IIア ーキテクチュアは、セル内へ直接的にクロックラインの経路付けを行なうための フライオーバー経路付け資源を与えているので、特に効果的である。又、高速の 同期カウンタによって必要とされるルックアヘッド機能は、幅広のゲートを使用 して与えられている。図46に示した4ビットカウンタステージはカスケード構 造とさせ且つ拡張させて、4セル×4セルの4個のブロックを使用して図47に 示した如く16ビット同期カウンタを形成することが可能である。 更に理解されるように、例えば16:1マルチプレクサ等の幅広マルチプレク サは、2:1マルチプレクサのツリーとして効率的に実現することが可能である 。このような構成を図48に示しており、その場合に、複数個のセルからなる2 個の4×4ブロックを使用してツリーが形成されている。セルの最初の行は2: 1マルチプレクサを実現する8個のセルを有している。これらのマルチプレクサ の出力は2番目の行内のマルチプレクサセルの入力へ送給され、一方、16:1 マルチプレクサの出力を供給する3番目の行内に示された2:1マルチプレクサ から2つの出力がとられる。要約 容易に理解されるように、全ての共通の論理構造はこの技術を使用して実現す ることが可能である。CAL IIアーキテクチュアによってサポートされる主 要な付加的な特徴は、1個のセル内の資源の密接に関連したグループは制御格納 部の同一のバイトを介してアクセスされるように制御格納部レイアウトが構成さ れており、制御格納部インターフェース上の付加的な論理回路がユーザ設計にお ける内部状態レジスタへのワード幅読取及び書込アクセスを可能とし、ユーザ設 計におけるセル及びビットスライスのベクトルを同時的に変化させることを可能 とするために制御格納部アドレスデコーダ内にワイルドカードレジスタが設けら れており、且つ長さ4,16,64ワイヤからなる階層的経路付け構造が基本的 セル格子上に積層されており一層長いワイヤに関する遅延を減少させていること 等である。上述した如く、長さ4ワイヤは基本セルへの機能ユニット入力として 使用されている。この構成は階層的な態様で上方向へ長さ64及び長さ256等 将来の製品ファミリィにおけるワイヤに対して拡張させることが可能である。 CAL IIアーキテクチュアは、その制御格納部をホストプロセサのアドレ ス空間内にマッピングすることにより、CAL II FPGAへの動的 アクセスを行なう能力を与えている。このことは、その他のFPGAから得るこ との不可能な設計可能性を提供している。伝統的なCADフレームワークを放棄 することなしにこのアーキテクチュアから著しい利点を得ることが可能である。 CAL IIアーキテクチュアは多様なモードで使用することが可能であり、4 つの実際的なモードが判明している。 (1)従来のASIC: このモードにおいては、従来のASIC/FPGA 設計ツールを使用してスタティックコンフィギュレーション(静的形態特定)フ ァイルを生成し、該フィイルをパワーアップ時にEPROM又はその他の非揮発 性格納部から装置内へロードさせる。ホストプロセサは必要ではない。然しなが ら、このようなホストプロセサが使用可能である場合には、ホストプロセサのメ モリ内にCAL II設計コンフィギュレーション即ち形態特定を格納すること によってボードエリアを節約することが可能である。ホストプロセサを使用する 場合には、更に、CAL IIアドレスデコーダ内のワイルドカードユニットを 利用することにより、コンフィギュレーション時間及びコンフィギュレーション データ寸法を著しく減少させることが可能である。 (2)内部状態へのプロセサアクセス: この構成においては、従来のASI C処理の流れを使用し て、スタティックコンフィギュレーション即ち静的形態特定を発生し、次いでそ れをパワーアップ時にダウンロードさせる。装置が活性状態にある間に、プロセ サがユーザ設計の内部レジスタへアクセスし値を格納し且つ検索する。制御格納 部インターフェースはユーザの設計の全ての内部レジスタへの自由な配線を与え るものと考えることが可能である。既存の制御格納部配線を使用する場合には、 そうでない場合にはチップエッジへ信号の経路付けを行なうために必要とされる 場合のある配線を除去することによって密度を増加させることが可能であり、且 つ設計複雑性を減少させることも可能である。この設計スタイルは、FPGAが マイクロプロセサと外部ハードウエアとの間のインターフェースを与える適用場 面において特に魅力的である。ホストにおいて稼動するソフトウエアが、CAD システムから出力される配置情報に基づいて些細な計算を使用して内部レジスタ のアドレスを計算する。 (3)複数個の関係のないFPGAコンフィギュレーション: この設計スタ イルにおいては、従来のCADシステムを使用して並列的に幾つかの完全なるF PGA設計が行なわれ、次いで独立的に検証される。ホストプロセサ上のランタ イムソフトウエアが、FPGA装置の種々のコンフィギュレーショ ンの間でスワップを行なうことが可能である。FPGAコンフィギュレーション はホストプロセサ上で稼動するプロセスと関連させ、且つ処理文脈がスイッチす る期間中にスワップさせることが可能であり、内部レジスタの状態を保存する。 このように、各プロセスはそれ自身の「仮想的」FPGAへのアクセスを有する ように見えることが可能である。然しながら、これらの複数個のコンフィギュレ ーションは、いずれかのユーザI/Oピンが複数個のコンフィギュレーションに よって共用されている場合には、互いに共同するように設計されねばならない。 CAL II制御格納部インターフェース上の付加的な回路は、種々の装置コン フィギュレーションの間でスイッチするために書込動作数を著しく減少させる。 この技術に対して適した適用例の1つはレーザプリンタコントローラであり、そ の場合には、FPGAが初期的にRS232インターフェースとして動作してプ リンタ画像ファイルをダウンロードし、次いで形態再特定が行なわれてプリント エンジンを制御し且つ低レベルグラフィック動作を実施する。 (4)動的形態再特定のアルゴリズム的使用: この設計スタイルにおいては 、FPGA上に実現された回路の部分が計算の一部が実施されるたびに動的に形 態再特定が行なわれる。例えば、FPGA内 の経路付け回路網を直接的に使用してFPGA入力ピン上で置換機能を実施する ことが可能である。設計作業の最大の部分及び検証の殆どは従来のASIC設計 ツールを使用して行なうことが可能である。 現在使用されている高いパーセントのシステム設計はプロセサと、メモリと、 回路ボード上のI/O装置へのインターフェースのためのチップとから構成され ている。このようなシステムの設計は、任意のASIC又はFPGA及びボード 自身のハードウエア設計と、所望の機能性の殆どを実施するプロセサに対するプ ログラムのソフトウエア設計の両方から構成されている。FPGAの制御格納部 のプロセサのアドレス空間内へのマッピングは、ハードウエアエンジニアからソ フトウエアエンジニアへの設計の要素を移動させる可能性を与え、そのことは全 体的な設計プロセサスを簡単化させる。ソフトウエアがユーザの設計をCAL II装置のハードウエア上へレイアウトさせることがいまだに必要であるが、こ のタスクのためのソフトウエアは、CAL IIアーキテクチュアの規則性のた めに、複雑性はより少なくなる場合がある。 CAL II構成の主要な利点は、簡単であること、対称性があること、規則 性があることであり、それらは、新規のユーザがファイングレイン型セル のアレイを迅速に利用することを可能とし、且つCADツールが使用可能な資源 を効率的に利用することを可能とする。CAL IIアレイの更なる利点は、全 体的な寸法上の拘束条件を充足するためにアレイ上に設計の機能的ブロックを配 置する上で柔軟性を与えるということである。制御格納部の構成及びワイルドカ ードレジスタ及びシフト・マスクレジスタを使用することは、装置資源及びステ ータスへアクセスするために必要なマイクロプロセサ命令の数を最小とさせる。 制御格納部の特定の構成は、RAM内のデータの構造的組のために、一度に1つ の代わりに多数の制御ビットを同時的に書込むことが可能である。このことはテ スト動作では規則的なコンフィギュレーションを使用するのでテストのオーバー ヘッドを減少するという利点を有している。階層的スケーリングの利点は、遅延 がセルユニットにおける距離の対数であり、且つ従来の設計と比較して遅延が著 しく減少されているということである。フライオーバーワイヤは1個の要素によ って駆動することが可能であるに過ぎないので、制御格納部への動的アクセスは 、不正確なコンフィギュレーションが競合を発生する可能性がないので、一層安 全である。このような付加的な安全性は、FPGAコンフィギュレーションがユ ーザによってしばしば変更 されることが意図されている場合において有用である。

Claims (1)

  1. 【特許請求の範囲】 1.階層的にスケール可能なセル型アレイにおいて、 複数個のセルが設けられており、 各セルをそれの隣接した隣りのセルへ相互接続させる第一経路付け資源が設け られており、前記第一経路付け資源は長さnを有する第一複数個のラインを包含 しており、尚、nは所定の距離であり、 N>1として、長さN×nを有する第二複数個のラインを包含する第二経路付 け資源が設けられており、 m≧2及びNm×n≦T(前記セル型アレイの全長)として、長さNm×nを有 する第三複数個のラインを包含する第三経路付け資源が設けられている、 ことを特徴とするセル型アレイ。 2.請求項1において、nが約1個のセル幅であることを特徴とするセル型ア レイ。 3.請求項1において、Nが4であることを特徴とするセル型アレイ。 4.請求項3において、mが2であることを特徴とするセル型アレイ。 5.請求項3において、mが3であることを特徴とするセル型アレイ。 6.請求項1において、更に、r≧3及びr=m +1として長さNr×nを有する第四複数個のラインを包含する第四経路付け資 源が設けられていることを特徴とするセル型アレイ。 7.プログラマブル論理構成体において、 行及び列の形態で配列された複数個のセルからなるアレイが設けられており、 複数個のスイッチが設けられており、前記複数個のスイッチは前記アレイを第 一複数個のセルブロックへ区画化しており、 各セルは、前記セルへ4個の入力信号を供給するために各々が隣接するセル又 はスイッチへ結合されている4本の入力ラインを有すると共に、前記セルからの 4つの出力信号を供給するために各々が隣接するセル又はスイッチへ結合されて いる4本の出力ラインを有しており、 前記アレイは、更に前記セルへ付加的な4つの入力信号を供給するために4本 の中間の指向付けされた入力ラインを有しており、各中間の入力ラインが前記ブ ロックの1つの行又は列のいずれかにおけるセルへ信号を供給することを特徴と する論理構成体。 8.請求項7において、前記アレイが、更に、複数個のフライオーバーライン を有しており、各フライオーバーラインは前記複数個のスイッチのうちの2つの スイッチの間に結合されており、前記複数個 のフライオーバーラインは第二複数個のセルブロックを決定することを特徴とす る論理構成体。 9.複数個の論理セルからなる二次元アレイを有する集積回路におけるスイッ チにおいて、 各々が複数個の入力信号を受取り且つ1個の出力信号を供給する1組のマルチ プレクサが設けられており、 各マルチプレクサに対して、前記マルチプレクサをして前記入力信号のうちの 1つを選択させて前記出力信号を供給させるマルチプレクサ制御手段が設けられ ており、前記入力信号は以下のワイヤ、即ち前記スイッチから西側へ延在し且つ 前記セルのうちの1つの前記長さの第一倍数にほぼ等しい長さを有するワイヤ、 前記スイッチから東側へ延在しており且つ前記セルのうちの1つの前記長さの 前記第一倍数にほぼ等しい長さを有するワイヤ、 前記スイッチから西側へ延在しており且つ前記セルのうちの1つの前記長さの 第二倍数にほぼ等しい長さを有するワイヤ、 前記スイッチから東側へ延在しており且つ前記セルのうちの1つの前記長さの 前記第二倍数にほぼ等しい長さを有するワイヤ、 から取られるものであり、前記出力信号は以下のワ イヤ、即ち 前記スイッチから西側へ延在しており且つ前記セルのうちの1つの前記長さの 第一倍数にほぼ等しい長さを有するワイヤ、 前記スイッチから東側へ延在しており且つ前記セルのうちの1つの前記長さの 前記第一倍数にほぼ等しい長さを有するワイヤ、 前記スイッチから西側へ延在しており且つ前記セルのうちの1つの前記長さの 第二倍数にほぼ等しい長さを有するワイヤ、 前記スイッチから東側へ延在しており且つ前記セルのうちの1つの前記長さの 前記第二倍数にほぼ等しい長さを有するワイヤ、 上へ配置させることを特徴とするスイッチ。 10.請求項9において、前記第一倍数が1あり且つ第二倍数が4であることを 特徴とするスイッチ。 11.請求項9において、前記第一倍数が4であり且つ第二倍数が16であるこ とを特徴とするスイッチ。 12.請求項9において、前記第一倍数が16であり且つ第二倍数が64である ことを特徴とするスイッチ。 13.請求項9において、前記マルチプレクサが更に以下のワイヤ、即ち、 前記スイッチから西側へ延在しており且つ前記セ ルのうちの1つの前記長さの第三倍数にほぼ等しい長さを有するワイヤ、 前記スイッチから東側へ延在しており且つ前記セルのうちの1つの前記長さの 前記第三倍数にほぼ等しい長さを有するワイヤ、 からとられる入力信号を受取ることを特徴とするスイッチ。 14.請求項13において、前記第一倍数が1であり、前記第二倍数が4であり 、前記第三倍数が16であることを特徴とするスイッチ。 15.請求項13において、前記第一倍数が4であり、前記第二倍数が16であ り、前記第三倍数が64であることを特徴とするスイッチ。 16.プログラマブル集積回路において、 複数個の論理セルからなる二次元アレイが設けられており、各セルは複数個の 論理セル入力信号のうちの選択した論理機能を出力信号として発生する手段を有 しており、 複数個のスイッチが設けられており、前記スイッチは前記複数個のセルを複数 個のセルブロックへグループ化するように位置決めされており、 各セルにおいて、 前記入力信号のうちの4つの入力信号を供給するために4つの短い入力ワイ ヤが設けられており、 前記4つの短い入力ワイヤは前記セルの4つの側部上で最も近い隣りのものを有 するスイッチ又はセルからの出力信号を担持しており、 前記入力信号のうちの4つの入力信号を供給するための4つの中間の入力ワ イヤが設けられており、前記4つの中間入力ワイヤは、前記セルが位置決めされ ているセルブロックを定義するスイッチ間で4つのコンパス方向に延在しており 、複数個の前記中間入力ワイヤは前記セルにより同時的にアクセス可能であり、 前記出力信号を与えるために4つの短い出力ワイヤが設けられており、前記 4つの短い出力ワイヤは、前記セルの4つの側部上に最も近い隣りのものを有す るスイッチ又はセルへの出力信号を担持する、ことを特徴とするプログラマブル 集積回路。 17.請求項16において、前記中間の入力ワイヤの各々は、前記セルへ及び前 記セルブロックを構成する前記スイッチのうちの2つの間に位置した他のセルへ 4つのコンパス方向のうちの1つにおいてスイッチからの信号を担持することを 特徴とするプログラマブル集積回路。 18.請求項17において、前記中間のワイヤは前記短いワイヤの約4倍の長さ であることを特徴とするプログラマブル集積回路。 19.プログラマブル論理構成体において、 複数個のセルからなるアレイが設けられており、 各セルブロックに対して少なくとも1個の西側スイッチがそのブロックの西側 に位置されており且つ少なくとも1個の東側スイッチがそのブロックの東側に位 置されているように前記複数個のセルを複数個のセルブロックへグループ化させ るべく配列した複数個のスイッチが設けられており、 前記西側スイッチの出力から前記西側スイッチの東側の最も近いセルの入力ヘ 接続する近隣ワイヤが設けられており、 前記西側スイッチの出力から前記東側スイッチの入力ヘ接続するフライオーバ ーワイヤが設けられており、 前記東側のスイッチの出力から前記東側スイッチの西側の最も近いセルの入力 ヘ接続する近隣ワイヤが設けられており、 前記東側スイッチの出力から前記西側スイッチの入力ヘ接続するフライオーバ ーワイヤが設けられている、 ことを特徴とするプログラマブル論理構成体。 20.請求項19において、前記複数個のスイッチが更に、各セルブロックに対 して、少なくとも1つの北側スイッチがそのブロックの北側に位置決めされ ており、且つ少なくとも1個の南側スイッチがそのブロックの南側に位置されて いるように配列されており、更に、 前記北側スイッチの出力から前記北側スイッチの南側の最も近いセルの入力へ 接続する近隣ワイヤが設けられており、 前記北側スイッチの出力から前記南側スイッチの入力へ接続する南フライオー バーワイヤが設けられており、 前記南側スイッチの出力から前記南側スイッチの北側の最も近いセルの入力へ 接続する短いワイヤが設けられており、 前記南側スイッチの出力から前記北側スイッチの入力へ接続する北側フライオ ーバーワイヤが設けられている、 ことを特徴とするプログラマブル論理構成体。 21.請求項20において、前記セルの各々が複数個のより小型のセルを有して おり、前記より小型のセルの各々が、複数個のスイッチによって定義されており 、前記スイッチは、各より小型のセルブロックに対して、少なくとも1個の西側 スイッチがそのブロックの西側に位置されており、少なくとも1個の東側スイッ チがそのブロックの東側に位置されており、少なくとも1個の北側スイッチがそ のブロック の北側に位置されており、且つ少なくとも1個の南側スイッチがそのブロックの 南側に位置されているような態様で前記より小型のセルをより小型のセルブロッ クへグループ化させるべく配列されており、 前記より小型のセルは、以下のワイヤ、即ち 前記西側スイッチの出力を前記西側スイッチの東側の最も近いより小型のセル の入力へ接続する近隣ワイヤ、 前記西側スイッチの東側の最も近いより小型のセルの出力を前記西側スイッチ の入力へ接続する近隣ワイヤ、 前記西側スイッチの出力から前記東側スイッチの入力へ接続する東側フライオ ーバーワイヤ、 前記東側スイッチの出力から前記東側スイッチの西側の最も近いより小型のセ ルの入力へ接続する近隣ワイヤ、 前記東側スイッチの西側の最も近いより小型のセルの出力から前記東側スイッ チの入力へ接続する近隣ワイヤ、 前記東側スイッチの出力から前記西側スイッチの入力へ接続する西側フライオ ーバーワイヤ、 前記北側スイッチの出力から前記北側スイッチの南側の最も近いより小型のセ ルの入力へ接続する近隣ワイヤ、 前記北側スイッチの南側の最も近いより小型のセルの出力から前記北側スイッ チの入力へ接続する近隣ワイヤ、 前記北側スイッチの出力から前記南側スイッチの入力へ接続する南側フライオ ーバーワイヤ、 前記南側スイッチの出力から前記南側スイッチの北側の最も近いより小型のセ ルの入力へ接続する近隣ワイヤ、 前記南側スイッチの北側の最も近いより小型のセルの出力から前記南側スイッ チの入力へ接続する近隣ワイヤ、 前記南側スイッチの出力から前記北側スイッチの入力へ接続する北側フライオ ーバーワイヤ、 によって前記スイッチへ接続されることを特徴とするプログラマブル論理構成体 。 22.複数個の論理セルを有するプログラマブル論理装置用の入力/出力構成体 において、 複数個のパッドが設けられており、各パッドは前記プログラマブル論理装置の 外部ピンへ接続しており、 複数個のI/Oバッファが設けられており、各I/Oバッファは前記複数個の パッドのうちの1つへ接続しており、各I/Oバッファは前記I/Oバッファを 前記複数個の論理セルのうちの少なくとも1 つへ接続させるスイッチを有しており、前記スイッチが階層的相互接続構成の一 部を形成しており、 前記スイッチを制御する手段が設けられている、ことを特徴とする入力/出力 構成体。 23.プログラマブル論理構成体において信号に対し経路付けを行なう方法にお いて、 行及び列の形態で複数個のセルをアレイ状に配列させ、 前記アレイを複数個のスイッチを具備する複数個のセルブロックへ区画化し、 各セルと関連する各入力ラインを隣接するセル又はスイッチへ結合させ、 各セルと関連する各出力ラインを前記隣接するセル又はスイッチへ結合させ、 各セルに対し付加的な4つの指向付けされた中間の入力ラインを設け、各指向 付けされた中間の入力ラインが前記複数個のセルブロックのうちの1つの行又は 列のいずれかにおけるセルへ信号を供給することを特徴とする方法。 24.請求項23において、更に、複数のフライオーバーラインを設け、各フラ イオーバーラインが前記複数個のスイッチのうちの2つのスイッチを結合させる ことを特徴とする方法。 25.請求項24において、更に、第1セルからの信 号を第2セルへ供給し、その場合に前記信号を少なくとも1個の中間入力ライン を介して転送することを特徴とする方法。 26.請求項25において、前記供給を行なう場合に、更に、前記信号を少なく とも1個のフライオーバーラインを介して転送することを特徴とする方法。 27.請求項23において、更に、 複数個のスイッチングユニットを有する第一経路を介して信号を送給し、前記 第一経路は直接的な第二経路と平行しており、 前記信号が前記第一経路の全長を伝播するか否かを検知するために論理ゲート を使用し、 前記信号が前記全長を伝播する場合には、前記信号を前記経路上に配置させる 、 ことを特徴とする方法。 28.論理構成体において、 行及び列の形態に配列して複数個のメモリセルからなるをアレイが設けられて おり、 複数個のデコーダが設けられており、各行又は各列に対して1個のデコーダが 設けられており、各デコーダは各アドレスビットに対する真値及び相補的値の両 方を受取り、 各アドレスビットと関連して一対の論理ゲートが設けられており、前記一対の 論理ゲートは各アドレ スビットに対し前記真値及び相補的値を提供し、 各アドレスビットに対し1個のイネーブルビットを供給するワイルドカードレ ジスタが設けられており、前記論理ゲートの両方は前記ワイルドカードレジスタ から前記イネーブルビットを受取り、前記論理ゲートのうちの一方は前記アドレ スビットを受取り、且つ前記論理ゲートのうちの他方は前記アドレスビットの補 元を受け取る、 ことを特徴とする論理構成体。 29.複数個のセルを同時的に書込む方法において、 複数個のメモリセルを行及び列の形態に配列させ、 各行又は各列に対し1個のデコーダを設け、各デコーダは各アドレスビットに 対する真値及び相補的値の両方を受取り、 各アドレスビットに対し一対の論理ゲートを設け、前記一対の論理ゲートは各 アドレスビットに対し前記真値及び相補的値を供給し、 前記一対の論理ゲートと動作関係でワイルドカードレジスタを配置し、前記ワ イルドカードレジスタは各アドレスビットに対し1個のイネーブルビットを供給 し、前記論理ゲートの両方は前記ワイルドカードレジスタから前記イネーブルビ ットを受取り、前記論理ゲートのうちの一方は前記アドレスビットを受取り、且 つ前記論理ゲートのうちの他方は前記ア ドレスビットの補元を受取る、 ことを特徴とする方法。 30.プログラマブル論理装置において、 行及び列の形態に配列した複数個のセルからなるアレイが設けられており、 複数個のマッチレジスタが設けられており、各マッチレジスタは行又は列と動 作関係に配置されており、アドレスがマッチレジスタ内の格納されている値と一 致する場合には、前記マッチレジスタが前記行又は列を活性化させる、 ことを特徴とするプログラマブル論理装置。 31.請求項30において、更に、前記行又は列から少なくとも1個の所定のビ ットを選択するビットセレクトレジスタが設けられていることを特徴とするプロ グラマブル論理装置。 32.複数個の書込みを容易化する方法において、 行及び列の形態に複数個のセルを配列し、 各行又は列と動作関係でマッチレジスタを配置し、 アドレスを各マッチレジスタ内の格納されている値と比較し、 前記アドレスが前記格納されている値と一致する場合には前記行又は列を活性 化させる、 ことを特徴とする方法。 33.レジスタ構成体において、 複数個の入力ラインが設けられており、 複数個の出力ラインが設けられており、 複数個のビットを与えるレジスタが設けられており、前記ビット数は前記複数 個の入力ラインの数と等しく、 前記入力ライン及び前記レジスタと動作関係に配置した複数個の層構成のスイ ッチが設けられており、前記複数個の出力ラインは前記レジスタ内の値によって 決定されるパターンで前記複数個の入力ラインへ結合される、 ことを特徴とするレジスタ構成体。 34.請求項33において、各スイッチが、 各トランジスタがイネーブル端子と、第一端子と、第二端子とを具備する第一 トランジスタ及び第二トランジスタ、 前記第一トランジスタの前記イネーブル端子へ結合されると共に前記第二トラ ンジスタの前記イネーブル端子へ結合されているインバータヘ結合されているイ ネーブルライン、 前記第一トランジスタの前記第一端子へ結合されている第一入力ライン及び前 記第二トランジスタの前記第一端子へ結合されている第二入力ライン、 前記第一及び第二トランジスタの前記第二端子へ結合されている出力ライン、 を有することを特徴とするレジスタ構成体。 35.請求項34において、 前記第一入力ライン上の前記スイッチの前記第一端子が電圧源へ結合されてお り、 前記レジスタの各ビットが前記複数個の層構成のスイッチの1つの層と関連し たイネーブル端子へ供給され、 1つの層が最後の層ではない場合には、前記1つの層における1個のスイッチ の前記出力ラインが、存在する場合に、前記1つのスイッチと同一の入力ライン 内の次の層内のスイッチの第二端子へ結合され、且つ 前記1つの層内の前記1つのスイッチの前記出力ラインは、更に、前記1つの スイッチの前記データラインに隣接したデータラインにおける次の層内のスイッ チの第一端子へ結合される、 ことを特徴とするレジスタ構成体。 36.コンフィギュレーションメモリの複数個のビットのサブセットへのアクセ スを与える方法において、 レジスタを複数個の入力ラインと動作関係に配置させ、前記レジスタは全ての 入力ラインに対し1個のビットを供給し、 前記入力ラインと動作関係で層構成で複数個のスイッチを位置決めし、 前記レジスタ内の値によって決定されるパターンで前記複数個の出力ラインを 前記複数個の入力ラインへ相互接続させる、 ことを特徴とする方法。 37.請求項36において、各スイッチが第一トランジスタと第二トランジスタ とを有しており、各トランジスタがイネーブル端子と、第一端子と、第二端子と を具備することを特徴とする方法。 38.請求項37において、前記相互接続を行なう場合に、 イネーブルラインを前記第一トランジスタの前記ゲートへ結合させると共に前 記第二トランジスタの前記ゲートへ結合されているインバータへ結合し、 第一入力ラインを前記第一トランジスタの前記第一端子へ結合すると共に第二 入力ラインを前記第二トランジスタの前記第一端子へ結合し、 前記第一及び第二トランジスタの第二端子へ出力ラインを結合し、 前記第一データライン上の前記スイッチの前記第一端子を電圧源へ結合し、 前記レジスタの各ビットを前記複数個の層構成スイッチの1つの層と関連した 前記イネーブル端子へ供給し、 1つの層が最後の層でない場合には、前記1つの 層における1つのスイッチの前記出力ラインを、存在する場合に、前記1つのス イッチと同一の入力ライン内の次の層内のスイッチの第二端子へ結合し、且つ前 記1つの層内の前記1つのスイッチの前記出力ラインを前記1つのスイッチの前 記入力ラインに隣接した入力ライン内の次の層内のスイッチの第一端子へ結合す る、 ことを特徴とする方法。 39.複数個のセルからなるアレイにおけるデコードシステムにおいて、 前記アレイと動作関係に配置された複数個のビットラインが設けられており、 前記アレイと動作関係に配置された複数個のワードラインが設けられており、 複数個のアドレスデコーダが設けられており、各アドレスデコーダは1本のワ ードラインと結合されており、 複数個の複製デコーダが設けられており、各複製デコーダは所定のワード又は ビットラインと関連しており、前記複製デコーダ及び対応するアドレスデコーダ は論理ゲートを介して前記所定のワードラインへ結合されている、 ことを特徴とするデコードシステム。 40.第2組のビットを発生させるために、第1組の ビットを操作する方法において、 前記第1組のビットを前記第2組のビットへ関係付ける所定のパターンを選択 し、 前記パターンを供給するためにレジスタ装置の形態を特定する、 ことを特徴とする方法。 41.プログラマブル論理装置における経路付け装置において、 第一経路を与える複数個のセルが設けられており、各セルは、 複数個の入力信号を受取り且つ1個の出力信号を供給する手段と、前記受取る 手段と関連している複数個のメモリビットと、前記複数個のメモリビットの状態 によって決定されるトリガ信号を供給する第一論理ゲートと、 を有しており、 セルを有することのない第二経路が設けられており、前記第二経路は前記第一 経路と平行であり、 前記信号が前記第一経路の全長にわたり伝播するか否かを検知するために該第 一論理ゲートの出力端子へ結合して第二論理ゲートが設けられており、 信号が前記第一経路上に与えられたか又は前記第二経路上に与えられたかを決 定する手段が設けられており、前記決定する手段が前記第二論理ゲートに より制御される、 ことを特徴とする経路付け装置。 42.機能ユニットにおいて、 複数個のマルチプレクサが設けられており、 少なくとも1個のフリップフロップが設けられており、 前記複数個のマルチプレクサのうちの第1組が階層的相互接続システムから入 力信号を受取り、且つ前記複数個のマルチプレクサのうちの第2組が前記第1組 のマルチプレクサからの出力信号及びそれらの補元を受取り、 前記複数個のマルチプレクサのうちの1つは前記第2組におけるマルチプレク サのうちの1つからの出力信号によって制御される機能マルチプレクサであり、 前記機能マルチプレクサは前記第2組におけるその他のマルチプレクサからの出 力信号を受取り、 前記第2組のマルチプレクサは前記少なくとも1つのフリップフロップへ入力 信号を供給し、 前記複数個のマルチプレクサのうちの1つが前記機能マルチプレクサ及び前記 少なくとも1個のフリップフロップから出力信号を受取り且つ前記機能ユニット に対して出力信号を供給する、 ことを特徴とする機能ユニット。
JP6511347A 1992-11-05 1993-11-05 改良型コンフィギャラブルセルアレイ Pending JPH08503111A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9223226.3 1992-11-05
GB929223226A GB9223226D0 (en) 1992-11-05 1992-11-05 Improved configurable cellular array (cal ii)
PCT/US1993/010404 WO1994010754A1 (en) 1992-11-05 1993-11-05 Improved configurable cellular array

Publications (1)

Publication Number Publication Date
JPH08503111A true JPH08503111A (ja) 1996-04-02

Family

ID=10724616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6511347A Pending JPH08503111A (ja) 1992-11-05 1993-11-05 改良型コンフィギャラブルセルアレイ

Country Status (6)

Country Link
US (9) US5469003A (ja)
EP (1) EP0669056A4 (ja)
JP (1) JPH08503111A (ja)
CA (1) CA2147363A1 (ja)
GB (1) GB9223226D0 (ja)
WO (1) WO1994010754A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004525439A (ja) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド プロセッサアーキテクチャ
JP2008015772A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp 半導体集積回路
US7906819B2 (en) 2008-01-08 2011-03-15 Fujitsu Semiconductor Limited Semiconductor device and method for producing the same
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
JP2016100870A (ja) * 2014-11-26 2016-05-30 Necスペーステクノロジー株式会社 動的回路装置
JP2016519446A (ja) * 2013-03-01 2016-06-30 クゥアルコム・インコーポレイテッドQualcomm Incorporated 埋込み再構成可能コンピューティングのためのスイッチングファブリック

Families Citing this family (414)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367208A (en) 1986-09-19 1994-11-22 Actel Corporation Reconfigurable programmable interconnect architecture
US5477165A (en) * 1986-09-19 1995-12-19 Actel Corporation Programmable logic module and architecture for field programmable gate array device
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US20020130681A1 (en) 1991-09-03 2002-09-19 Cliff Richard G. Programmable logic array integrated circuits
US6759870B2 (en) 1991-09-03 2004-07-06 Altera Corporation Programmable logic array integrated circuits
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
GB9312674D0 (en) * 1993-06-18 1993-08-04 Pilkington Micro Electronics Configurabel logic array
US6462578B2 (en) 1993-08-03 2002-10-08 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US6051991A (en) * 1993-08-03 2000-04-18 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US5457410A (en) * 1993-08-03 1995-10-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US5805834A (en) * 1994-03-30 1998-09-08 Zilog, Inc. Hot reconfigurable parallel bus bridging circuit
JPH07271662A (ja) * 1994-03-31 1995-10-20 Sony Corp メモリ回路およびそのアクセス方法、並びにメモリのデータ作成方法
US5682107A (en) * 1994-04-01 1997-10-28 Xilinx, Inc. FPGA architecture with repeatable tiles including routing matrices and logic matrices
AU2291495A (en) * 1994-04-14 1995-11-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US5802540A (en) * 1995-11-08 1998-09-01 Altera Corporation Programming and verification address generation for random access memory blocks in programmable logic array integrated circuit devices
US5689195A (en) * 1995-05-17 1997-11-18 Altera Corporation Programmable logic array integrated circuit devices
US5600845A (en) * 1994-07-27 1997-02-04 Metalithic Systems Incorporated Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5581199A (en) * 1995-01-04 1996-12-03 Xilinx, Inc. Interconnect architecture for field programmable gate array using variable length conductors
GB2297409B (en) * 1995-01-27 1998-08-19 Altera Corp Programmable logic devices
US5537057A (en) * 1995-02-14 1996-07-16 Altera Corporation Programmable logic array device with grouped logic regions and three types of conductors
US6049223A (en) 1995-03-22 2000-04-11 Altera Corporation Programmable logic array integrated circuit with general-purpose memory configurable as a random access or FIFO memory
US5838585A (en) * 1995-03-24 1998-11-17 Lsi Logic Corporation Physical design automation system and method using monotonically improving linear clusterization
US5530378A (en) * 1995-04-26 1996-06-25 Xilinx, Inc. Cross point interconnect structure with reduced area
WO1996034346A1 (en) * 1995-04-28 1996-10-31 Xilinx, Inc. Microprocessor with distributed registers accessible by programmable logic device
US5701091A (en) * 1995-05-02 1997-12-23 Xilinx, Inc. Routing resources for hierarchical FPGA
GB9508931D0 (en) 1995-05-02 1995-06-21 Xilinx Inc Programmable switch for FPGA input/output signals
US5600597A (en) * 1995-05-02 1997-02-04 Xilinx, Inc. Register protection structure for FPGA
GB9508932D0 (en) * 1995-05-02 1995-06-21 Xilinx Inc FPGA with parallel and serial user interfaces
EP0769223B1 (en) * 1995-05-02 2003-10-15 Xilinx, Inc. Programmable switch for fpga input/output signals
US5850564A (en) * 1995-05-03 1998-12-15 Btr, Inc, Scalable multiple level tab oriented interconnect architecture
WO1996035261A1 (en) * 1995-05-03 1996-11-07 Btr, Inc. Scalable multiple level interconnect architecture
US5541530A (en) * 1995-05-17 1996-07-30 Altera Corporation Programmable logic array integrated circuits with blocks of logic regions grouped into super-blocks
US5543730A (en) * 1995-05-17 1996-08-06 Altera Corporation Techniques for programming programmable logic array devices
US5963049A (en) 1995-05-17 1999-10-05 Altera Corporation Programmable logic array integrated circuit architectures
US5909126A (en) 1995-05-17 1999-06-01 Altera Corporation Programmable logic array integrated circuit devices with interleaved logic array blocks
US5631578A (en) * 1995-06-02 1997-05-20 International Business Machines Corporation Programmable array interconnect network
US5521529A (en) * 1995-06-02 1996-05-28 Advanced Micro Devices, Inc. Very high-density complex programmable logic devices with a multi-tiered hierarchical switch matrix and optimized flexible logic allocation
US5818254A (en) * 1995-06-02 1998-10-06 Advanced Micro Devices, Inc. Multi-tiered hierarchical high speed switch matrix structure for very high-density complex programmable logic devices
US5692147A (en) * 1995-06-07 1997-11-25 International Business Machines Corporation Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof
US5787086A (en) 1995-07-19 1998-07-28 Fujitsu Network Communications, Inc. Method and apparatus for emulating a circuit connection in a cell based communications network
US6113260A (en) * 1995-08-16 2000-09-05 Raytheon Company Configurable interface module
AU6970896A (en) 1995-09-14 1997-04-01 Ascom Nexion Inc. Transmitter controlled flow control for buffer allocation in wide area atm networks
GB2305759A (en) * 1995-09-30 1997-04-16 Pilkington Micro Electronics Semi-conductor integrated circuit
US5815004A (en) * 1995-10-16 1998-09-29 Xilinx, Inc. Multi-buffered configurable logic block output lines in a field programmable gate array
US5794033A (en) * 1995-10-24 1998-08-11 International Business Machines Corporation Method and system for in-site and on-line reprogramming of hardware logics with remote loading in a network device
US5781007A (en) * 1995-10-24 1998-07-14 General Electric Company Portable three axis scanner to inspect a gas turbine engine spool by eddy current or ultrasonic inspection
US5914906A (en) * 1995-12-20 1999-06-22 International Business Machines Corporation Field programmable memory array
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
IL116792A (en) * 1996-01-16 2000-01-31 Chip Express Israel Ltd Customizable integrated circuit device
AU1697697A (en) 1996-01-16 1997-08-11 Fujitsu Limited A reliable and flexible multicast mechanism for atm networks
US5752006A (en) * 1996-01-31 1998-05-12 Xilinx, Inc. Configuration emulation of a programmable logic device
US5737766A (en) * 1996-02-14 1998-04-07 Hewlett Packard Company Programmable gate array configuration memory which allows sharing with user memory
GB9604496D0 (en) * 1996-03-01 1996-05-01 Xilinx Inc Embedded memory for field programmable gate array
US5726584A (en) * 1996-03-18 1998-03-10 Xilinx, Inc. Virtual high density programmable integrated circuit having addressable shared memory cells
US5694056A (en) * 1996-04-01 1997-12-02 Xilinx, Inc. Fast pipeline frame full detector
US5835998A (en) * 1996-04-04 1998-11-10 Altera Corporation Logic cell for programmable logic devices
US5977791A (en) 1996-04-15 1999-11-02 Altera Corporation Embedded memory block with FIFO mode for programmable logic device
US6212668B1 (en) 1996-05-28 2001-04-03 Altera Corporation Gain matrix for hierarchical circuit partitioning
US5742181A (en) * 1996-06-04 1998-04-21 Hewlett-Packard Co. FPGA with hierarchical interconnect structure and hyperlinks
US6384630B2 (en) 1996-06-05 2002-05-07 Altera Corporation Techniques for programming programmable logic array devices
US5764076A (en) * 1996-06-26 1998-06-09 Xilinx, Inc. Circuit for partially reprogramming an operational programmable logic device
US6094066A (en) * 1996-08-03 2000-07-25 Mission Research Corporation Tiered routing architecture for field programmable gate arrays
US5821772A (en) * 1996-08-07 1998-10-13 Xilinx, Inc. Programmable address decoder for programmable logic device
US5838165A (en) * 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
US6624658B2 (en) 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
US6034547A (en) 1996-09-04 2000-03-07 Advantage Logic, Inc. Method and apparatus for universal program controlled bus
JPH1084092A (ja) * 1996-09-09 1998-03-31 Toshiba Corp 半導体集積回路
US5950052A (en) * 1996-09-17 1999-09-07 Seiko Epson Corporation Image forming apparatus
US5880597A (en) * 1996-09-18 1999-03-09 Altera Corporation Interleaved interconnect for programmable logic array devices
US6301694B1 (en) 1996-09-25 2001-10-09 Altera Corporation Hierarchical circuit partitioning using sliding windows
US5999016A (en) * 1996-10-10 1999-12-07 Altera Corporation Architectures for programmable logic devices
US6300794B1 (en) * 1996-10-10 2001-10-09 Altera Corporation Programmable logic device with hierarchical interconnection resources
US5977793A (en) * 1996-10-10 1999-11-02 Altera Corporation Programmable logic device with hierarchical interconnection resources
US5946219A (en) * 1996-10-30 1999-08-31 Atmel Corporation Method and system for configuring an array of logic devices
US6112020A (en) * 1996-10-31 2000-08-29 Altera Corporation Apparatus and method for generating configuration and test files for programmable logic devices
US6005410A (en) * 1996-12-05 1999-12-21 International Business Machines Corporation Interconnect structure between heterogeneous core regions in a programmable array
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
ATE243390T1 (de) * 1996-12-27 2003-07-15 Pact Inf Tech Gmbh 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
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US5982195A (en) * 1997-02-20 1999-11-09 Altera Corporation Programmable logic device architectures
US5999015A (en) * 1997-02-20 1999-12-07 Altera Corporation Logic region resources for programmable logic devices
US6127844A (en) 1997-02-20 2000-10-03 Altera Corporation PCI-compatible programmable logic devices
US7148722B1 (en) 1997-02-20 2006-12-12 Altera Corporation PCI-compatible programmable logic devices
US6396303B1 (en) 1997-02-26 2002-05-28 Xilinx, Inc. Expandable interconnect structure for FPGAS
US5889411A (en) * 1997-02-26 1999-03-30 Xilinx, Inc. FPGA having logic element carry chains capable of generating wide XOR functions
US5914616A (en) * 1997-02-26 1999-06-22 Xilinx, Inc. FPGA repeatable interconnect structure with hierarchical interconnect lines
US6204689B1 (en) 1997-02-26 2001-03-20 Xilinx, Inc. Input/output interconnect circuit for FPGAs
US6201410B1 (en) 1997-02-26 2001-03-13 Xilinx, Inc. Wide logic gate implemented in an FPGA configurable logic element
US5963050A (en) * 1997-02-26 1999-10-05 Xilinx, Inc. Configurable logic element with fast feedback paths
US5920202A (en) * 1997-02-26 1999-07-06 Xilinx, Inc. Configurable logic element with ability to evaluate five and six input functions
US5942913A (en) * 1997-03-20 1999-08-24 Xilinx, Inc. FPGA repeatable interconnect structure with bidirectional and unidirectional interconnect lines
US6150837A (en) * 1997-02-28 2000-11-21 Actel Corporation Enhanced field programmable gate array
US6184710B1 (en) 1997-03-20 2001-02-06 Altera Corporation Programmable logic array devices with enhanced interconnectivity between adjacent logic regions
US6085317A (en) * 1997-08-15 2000-07-04 Altera Corporation Reconfigurable computer architecture using programmable logic devices
US6551857B2 (en) 1997-04-04 2003-04-22 Elm Technology Corporation Three dimensional structure integrated circuits
US5971595A (en) * 1997-04-28 1999-10-26 Xilinx, Inc. Method for linking a hardware description to an IC layout
US6314550B1 (en) * 1997-06-10 2001-11-06 Altera Corporation Cascaded programming with multiple-purpose pins
US6011407A (en) * 1997-06-13 2000-01-04 Xilinx, Inc. Field programmable gate array with dedicated computer bus interface and method for configuring both
JP3403614B2 (ja) * 1997-06-13 2003-05-06 富士通株式会社 動的な資源利用機能を備えたデータ処理システム
US6006321A (en) * 1997-06-13 1999-12-21 Malleable Technologies, Inc. Programmable logic datapath that may be used in a field programmable device
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US6286062B1 (en) 1997-07-01 2001-09-04 Micron Technology, Inc. Pipelined packet-oriented memory system having a unidirectional command and address bus and a bidirectional data bus
US6011744A (en) * 1997-07-16 2000-01-04 Altera Corporation Programmable logic device with multi-port memory
US6034857A (en) 1997-07-16 2000-03-07 Altera Corporation Input/output buffer with overcurrent protection circuit
US6020760A (en) 1997-07-16 2000-02-01 Altera Corporation I/O buffer circuit with pin multiplexing
US6078736A (en) 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US5995971A (en) * 1997-09-18 1999-11-30 Micdrosoft Corporation Apparatus and accompanying methods, using a trie-indexed hierarchy forest, for storing wildcard-based patterns and, given an input key, retrieving, from the forest, a stored pattern that is identical to or more general than the key
US9092595B2 (en) 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6107825A (en) 1997-10-16 2000-08-22 Altera Corporation Input/output circuitry for programmable logic devices
US6084427A (en) 1998-05-19 2000-07-04 Altera Corporation Programmable logic devices with enhanced multiplexing capabilities
US6107824A (en) * 1997-10-16 2000-08-22 Altera Corporation Circuitry and methods for internal interconnection of programmable logic devices
US6121790A (en) * 1997-10-16 2000-09-19 Altera Corporation Programmable logic device with enhanced multiplexing capabilities in interconnect resources
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US5915123A (en) 1997-10-31 1999-06-22 Silicon Spice Method and apparatus for controlling configuration memory contexts of processing elements in a network of multiple context processing elements
US6108760A (en) * 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US5995744A (en) * 1997-11-24 1999-11-30 Xilinx, Inc. Network configuration of programmable circuits
US6212650B1 (en) 1997-11-24 2001-04-03 Xilinx, Inc. Interactive dubug tool for programmable circuits
US6069490A (en) * 1997-12-02 2000-05-30 Xilinx, Inc. Routing architecture using a direct connect routing mesh
US6185724B1 (en) 1997-12-02 2001-02-06 Xilinx, Inc. Template-based simulated annealing move-set that improves FPGA architectural feature utilization
US6898101B1 (en) 1997-12-16 2005-05-24 Cypress Semiconductor Corp. Microcontroller with programmable logic on a single chip
DE19756591B4 (de) * 1997-12-18 2004-03-04 Sp3D Chip Design Gmbh Vorrichtung zum hierarchischen Verbinden einer Mehrzahl von Funktionseinheiten in einem Prozessor
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6134703A (en) * 1997-12-23 2000-10-17 Lattice Semiconductor Corporation Process for programming PLDs and embedded non-volatile memories
US6028445A (en) * 1997-12-30 2000-02-22 Xilinx, Inc. Decoder structure and method for FPGA configuration
US6172520B1 (en) 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
US5883852A (en) * 1998-02-23 1999-03-16 Dynachip Corporation Configurable SRAM for field programmable gate array
US6038627A (en) * 1998-03-16 2000-03-14 Actel Corporation SRAM bus architecture and interconnect to an FPGA
US6049487A (en) * 1998-03-16 2000-04-11 Actel Corporation Embedded static random access memory for field programmable gate array
US7146441B1 (en) * 1998-03-16 2006-12-05 Actel Corporation SRAM bus architecture and interconnect to an FPGA
US6772387B1 (en) * 1998-03-16 2004-08-03 Actel Corporation Cyclic redundancy checking of a field programmable gate array having an SRAM memory architecture
US7389487B1 (en) * 1998-04-28 2008-06-17 Actel Corporation Dedicated interface architecture for a hybrid integrated circuit
US6226735B1 (en) 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US6173419B1 (en) 1998-05-14 2001-01-09 Advanced Technology Materials, Inc. Field programmable gate array (FPGA) emulator for debugging software
US6020776A (en) * 1998-06-22 2000-02-01 Xilinx, Inc. Efficient multiplexer structure for use in FPGA logic blocks
US6467017B1 (en) 1998-06-23 2002-10-15 Altera Corporation Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US6282627B1 (en) 1998-06-29 2001-08-28 Chameleon Systems, Inc. Integrated processor and programmable data path chip for reconfigurable computing
US6201404B1 (en) * 1998-07-14 2001-03-13 Altera Corporation Programmable logic device with redundant circuitry
US6094064A (en) * 1998-07-23 2000-07-25 Altera Corporation Programmable logic device incorporating and input/output overflow bus
US6137307A (en) * 1998-08-04 2000-10-24 Xilinx, Inc. Structure and method for loading wide frames of data from a narrow input bus
US6097210A (en) * 1998-08-04 2000-08-01 Xilinx, Inc. Multiplexer array with shifted input traces
US6069489A (en) * 1998-08-04 2000-05-30 Xilinx, Inc. FPGA having fast configuration memory data readback
US5955751A (en) * 1998-08-13 1999-09-21 Quicklogic Corporation Programmable device having antifuses without programmable material edges and/or corners underneath metal
JP2000068488A (ja) * 1998-08-20 2000-03-03 Oki Electric Ind Co Ltd 半導体集積回路のレイアウト方法
US6549035B1 (en) 1998-09-15 2003-04-15 Actel Corporation High density antifuse based partitioned FPGA architecture
US6353920B1 (en) * 1998-11-17 2002-03-05 Xilinx, Inc. Method for implementing wide gates and tristate buffers using FPGA carry logic
US6507216B1 (en) 1998-11-18 2003-01-14 Altera Corporation Efficient arrangement of interconnection resources on programmable logic devices
US6225822B1 (en) 1998-11-18 2001-05-01 Altera Corporation Fast signal conductor networks for programmable logic devices
US6215326B1 (en) 1998-11-18 2001-04-10 Altera Corporation Programmable logic device architecture with super-regions having logic regions and a memory region
EP1351154A2 (en) 1998-11-20 2003-10-08 Altera Corporation Reconfigurable programmable logic device computer system
US6324676B1 (en) 1999-01-14 2001-11-27 Xilinx, Inc. FPGA customizable to accept selected macros
US6301695B1 (en) 1999-01-14 2001-10-09 Xilinx, Inc. Methods to securely configure an FPGA using macro markers
US6160418A (en) * 1999-01-14 2000-12-12 Xilinx, Inc. Integrated circuit with selectively disabled logic blocks
US6357037B1 (en) 1999-01-14 2002-03-12 Xilinx, Inc. Methods to securely configure an FPGA to accept selected macros
US6305005B1 (en) 1999-01-14 2001-10-16 Xilinx, Inc. Methods to securely configure an FPGA using encrypted macros
US6427199B1 (en) * 1999-01-19 2002-07-30 Motorola, Inc. Method and apparatus for efficiently transferring data between peripherals in a selective call radio
US6262933B1 (en) 1999-01-29 2001-07-17 Altera Corporation High speed programmable address decoder
US6654889B1 (en) 1999-02-19 2003-11-25 Xilinx, Inc. Method and apparatus for protecting proprietary configuration data for programmable logic devices
WO2000051183A1 (en) * 1999-02-22 2000-08-31 Actel Corporation A semi-hierarchical reprogrammable fpga architecture
US7003660B2 (en) 2000-06-13 2006-02-21 Pact Xpp Technologies Ag Pipeline configuration unit protocols and communication
US6407576B1 (en) * 1999-03-04 2002-06-18 Altera Corporation Interconnection and input/output resources for programmable logic integrated circuit devices
JP3425100B2 (ja) 1999-03-08 2003-07-07 松下電器産業株式会社 フィールドプログラマブルゲートアレイおよびその製造方法
US6256767B1 (en) * 1999-03-29 2001-07-03 Hewlett-Packard Company Demultiplexer for a molecular wire crossbar network (MWCN DEMUX)
US6191614B1 (en) 1999-04-05 2001-02-20 Xilinx, Inc. FPGA configuration circuit including bus-based CRC register
US6255848B1 (en) 1999-04-05 2001-07-03 Xilinx, Inc. Method and structure for reading, modifying and writing selected configuration memory cells of an FPGA
US6262596B1 (en) 1999-04-05 2001-07-17 Xilinx, Inc. Configuration bus interface circuit for FPGAS
US6351808B1 (en) 1999-05-11 2002-02-26 Sun Microsystems, Inc. Vertically and horizontally threaded processor with multidimensional storage for storing thread data
US6507862B1 (en) * 1999-05-11 2003-01-14 Sun Microsystems, Inc. Switching method in a multi-threaded processor
US6938147B1 (en) 1999-05-11 2005-08-30 Sun Microsystems, Inc. Processor with multiple-thread, vertically-threaded pipeline
US6542991B1 (en) 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6341347B1 (en) 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
DE10081643D2 (de) 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
US6405352B1 (en) * 1999-06-30 2002-06-11 International Business Machines Corporation Method and system for analyzing wire-only changes to a microprocessor design using delta model
US6188242B1 (en) * 1999-06-30 2001-02-13 Quicklogic Corporation Virtual programmable device and method of programming
US6486702B1 (en) 1999-07-02 2002-11-26 Altera Corporation Embedded memory blocks for programmable logic
US6424567B1 (en) 1999-07-07 2002-07-23 Philips Electronics North America Corporation Fast reconfigurable programmable device
US6294926B1 (en) * 1999-07-16 2001-09-25 Philips Electronics North America Corporation Very fine-grain field programmable gate array architecture and circuitry
US6745317B1 (en) 1999-07-30 2004-06-01 Broadcom Corporation Three level direct communication connections between neighboring multiple context processing elements
US6308309B1 (en) * 1999-08-13 2001-10-23 Xilinx, Inc. Place-holding library elements for defining routing paths
US6204687B1 (en) 1999-08-13 2001-03-20 Xilinx, Inc. Method and structure for configuring FPGAS
US6625787B1 (en) * 1999-08-13 2003-09-23 Xilinx, Inc. Method and apparatus for timing management in a converted design
US6851047B1 (en) 1999-10-15 2005-02-01 Xilinx, Inc. Configuration in a configurable system on a chip
US7356541B1 (en) * 1999-10-29 2008-04-08 Computer Sciences Corporation Processing business data using user-configured keys
US6629311B1 (en) * 1999-11-17 2003-09-30 Altera Corporation Apparatus and method for configuring a programmable logic device with a configuration controller operating as an interface to a configuration memory
US6320412B1 (en) 1999-12-20 2001-11-20 Btr, Inc. C/O Corporate Trust Co. Architecture and interconnect for programmable logic circuits
US20070288765A1 (en) * 1999-12-22 2007-12-13 Kean Thomas A Method and Apparatus for Secure Configuration of a Field Programmable Gate Array
GB9930145D0 (en) 1999-12-22 2000-02-09 Kean Thomas A Method and apparatus for secure configuration of a field programmable gate array
US7240218B2 (en) * 2000-02-08 2007-07-03 Algotronix, Ltd. Method of using a mask programmed key to securely configure a field programmable gate array
US6438737B1 (en) 2000-02-15 2002-08-20 Intel Corporation Reconfigurable logic for a computer
US6256253B1 (en) * 2000-02-18 2001-07-03 Infineon Technologies North America Corp. Memory device with support for unaligned access
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
US6268743B1 (en) 2000-03-06 2001-07-31 Acatel Corporation Block symmetrization in a field programmable gate array
US6861869B1 (en) 2000-03-06 2005-03-01 Actel Corporation Block symmetrization in a field programmable gate array
US7233167B1 (en) * 2000-03-06 2007-06-19 Actel Corporation Block symmetrization in a field programmable gate array
US6567968B1 (en) * 2000-03-06 2003-05-20 Actel Corporation Block level routing architecture in a field programmable gate array
US6285212B1 (en) 2000-03-06 2001-09-04 Actel Corporation Block connector splitting in logic block of a field programmable gate array
US7249105B1 (en) * 2000-03-14 2007-07-24 Microsoft Corporation BORE-resistant digital goods configuration and distribution methods and arrangements
US6469540B2 (en) 2000-06-15 2002-10-22 Nec Corporation Reconfigurable device having programmable interconnect network suitable for implementing data paths
US6912601B1 (en) 2000-06-28 2005-06-28 Cypress Semiconductor Corp. Method of programming PLDs using a wireless link
JP2002026132A (ja) * 2000-07-07 2002-01-25 Mitsubishi Electric Corp 半導体集積回路の配置配線方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6526557B1 (en) * 2000-07-25 2003-02-25 Xilinx, Inc. Architecture and method for partially reconfiguring an FPGA
AU2001281164A1 (en) * 2000-08-07 2002-02-18 Altera Corporation Inter-device communication interface
US7343594B1 (en) 2000-08-07 2008-03-11 Altera Corporation Software-to-hardware compiler with symbol set inference analysis
US6433603B1 (en) 2000-08-14 2002-08-13 Sun Microsystems, Inc. Pulse-based high speed flop circuit
US7426665B1 (en) 2000-09-02 2008-09-16 Actel Corporation Tileable field-programmable gate array architecture
US6937063B1 (en) 2000-09-02 2005-08-30 Actel Corporation Method and apparatus of memory clearing with monitoring RAM memory cells in a field programmable gated array
US6870396B2 (en) * 2000-09-02 2005-03-22 Actel Corporation Tileable field-programmable gate array architecture
US7015719B1 (en) 2000-09-02 2006-03-21 Actel Corporation Tileable field-programmable gate array architecture
US6476636B1 (en) * 2000-09-02 2002-11-05 Actel Corporation Tileable field-programmable gate array architecture
US7055125B2 (en) * 2000-09-08 2006-05-30 Lightspeed Semiconductor Corp. Depopulated programmable logic array
US6904436B1 (en) * 2000-10-04 2005-06-07 Cypress Semiconductor Corporation Method and system for generating a bit order data structure of configuration bits from a schematic hierarchy
US6490712B1 (en) * 2000-10-04 2002-12-03 Cypress Semiconductor Corporation Method and system for identifying configuration circuit addresses in a schematic hierarchy
JP4022040B2 (ja) * 2000-10-05 2007-12-12 松下電器産業株式会社 半導体デバイス
AU2002220600A1 (en) 2000-10-06 2002-04-15 Pact Informationstechnologie Gmbh Cell system with segmented intermediate cell structure
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6625794B1 (en) * 2000-11-06 2003-09-23 Xilinx, Inc. Method and system for safe device reconfiguration
ITRM20010298A1 (it) * 2001-05-31 2002-12-02 Micron Technology Inc Interfaccia di comando di utilizzatore con decodificatore programmabile.
US9411532B2 (en) 2001-09-07 2016-08-09 Pact Xpp Technologies Ag Methods and systems for transferring data between a processing device and external devices
US9552047B2 (en) 2001-03-05 2017-01-24 Pact Xpp Technologies Ag Multiprocessor having runtime adjustable clock and clock dependent power supply
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9436631B2 (en) 2001-03-05 2016-09-06 Pact Xpp Technologies Ag Chip including memory element storing higher level memory data on a page by page basis
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9141390B2 (en) 2001-03-05 2015-09-22 Pact Xpp Technologies Ag Method of processing data with an array of data processors according to application ID
US7581076B2 (en) * 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US9250908B2 (en) 2001-03-05 2016-02-02 Pact Xpp Technologies Ag Multi-processor bus and cache interconnection system
US7624204B2 (en) * 2001-03-22 2009-11-24 Nvidia Corporation Input/output controller node in an adaptable computing environment
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
US6462579B1 (en) * 2001-04-26 2002-10-08 Xilinx, Inc. Partial reconfiguration of a programmable gate array using a bus macro
US6720796B1 (en) 2001-05-06 2004-04-13 Altera Corporation Multiple size memories in a programmable logic device
US6895570B2 (en) 2001-05-06 2005-05-17 Altera Corporation System and method for optimizing routing lines in a programmable logic device
US6653862B2 (en) 2001-05-06 2003-11-25 Altera Corporation Use of dangling partial lines for interfacing in a PLD
US6605962B2 (en) 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
US6970014B1 (en) 2001-05-06 2005-11-29 Altera Corporation Routing architecture for a programmable logic device
US6630842B1 (en) 2001-05-06 2003-10-07 Altera Corporation Routing architecture for a programmable logic device
US7076595B1 (en) * 2001-05-18 2006-07-11 Xilinx, Inc. Programmable logic device including programmable interface core and central processing unit
GB0114317D0 (en) * 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
US10031733B2 (en) 2001-06-20 2018-07-24 Scientia Sol Mentis Ag Method for processing data
WO2002103532A2 (de) 2001-06-20 2002-12-27 Pact Xpp Technologies Ag Verfahren zur bearbeitung von daten
US20030020082A1 (en) * 2001-07-25 2003-01-30 Motorola, Inc. Structure and method for fabricating semiconductor structures and devices for optical switching
US6664808B2 (en) * 2001-08-07 2003-12-16 Xilinx, Inc. Method of using partially defective programmable logic devices
DE60202152T2 (de) * 2001-08-07 2005-12-01 Xilinx, Inc., San Jose Anwendungsspezifische Testmethoden für programmierbare Logikbauelemente
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
US20030068038A1 (en) * 2001-09-28 2003-04-10 Bedros Hanounik Method and apparatus for encrypting data
US6798239B2 (en) * 2001-09-28 2004-09-28 Xilinx, Inc. Programmable gate array having interconnecting logic to support embedded fixed logic circuitry
US6781407B2 (en) 2002-01-09 2004-08-24 Xilinx, Inc. FPGA and embedded circuitry initialization and processing
US7420392B2 (en) * 2001-09-28 2008-09-02 Xilinx, Inc. Programmable gate array and embedded circuitry initialization and processing
CN100489797C (zh) * 2001-10-11 2009-05-20 阿尔特拉公司 可编程逻辑设备上的错误检测
US6983405B1 (en) 2001-11-16 2006-01-03 Xilinx, Inc., Method and apparatus for testing circuitry embedded within a field programmable gate array
US6996758B1 (en) 2001-11-16 2006-02-07 Xilinx, Inc. Apparatus for testing an interconnecting logic fabric
US6886092B1 (en) * 2001-11-19 2005-04-26 Xilinx, Inc. Custom code processing in PGA by providing instructions from fixed logic processor portion to programmable dedicated processor portion
US6668361B2 (en) * 2001-12-10 2003-12-23 International Business Machines Corporation Method and system for use of a field programmable function within a chip to enable configurable I/O signal timing characteristics
US7577822B2 (en) 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
US7154298B1 (en) * 2001-12-14 2006-12-26 Lattice Semiconductor Corporation Block-oriented architecture for a programmable interconnect circuit
US7035595B1 (en) * 2002-01-10 2006-04-25 Berkana Wireless, Inc. Configurable wireless interface
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
US6820248B1 (en) 2002-02-14 2004-11-16 Xilinx, Inc. Method and apparatus for routing interconnects to devices with dissimilar pitches
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US6976160B1 (en) 2002-02-22 2005-12-13 Xilinx, Inc. Method and system for controlling default values of flip-flops in PGA/ASIC-based designs
US6754882B1 (en) 2002-02-22 2004-06-22 Xilinx, Inc. Method and system for creating a customized support package for an FPGA-based system-on-chip (SoC)
US7007121B1 (en) 2002-02-27 2006-02-28 Xilinx, Inc. Method and apparatus for synchronized buses
US6934922B1 (en) 2002-02-27 2005-08-23 Xilinx, Inc. Timing performance analysis
US7111217B1 (en) 2002-02-28 2006-09-19 Xilinx, Inc. Method and system for flexibly nesting JTAG TAP controllers for FPGA-based system-on-chip (SoC)
US7088767B1 (en) 2002-03-01 2006-08-08 Xilinx, Inc. Method and apparatus for operating a transceiver in different data rates
US7111220B1 (en) 2002-03-01 2006-09-19 Xilinx, Inc. Network physical layer with embedded multi-standard CRC generator
US7187709B1 (en) 2002-03-01 2007-03-06 Xilinx, Inc. High speed configurable transceiver architecture
US6961919B1 (en) 2002-03-04 2005-11-01 Xilinx, Inc. Method of designing integrated circuit having both configurable and fixed logic circuitry
US20030174702A1 (en) * 2002-03-14 2003-09-18 Michael Meier Modifying overhead data of a transport layer frame
US9170812B2 (en) 2002-03-21 2015-10-27 Pact Xpp Technologies Ag Data processing system having integrated pipelined array data processor
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US6996713B1 (en) 2002-03-29 2006-02-07 Xilinx, Inc. Method and apparatus for protecting proprietary decryption keys for programmable logic devices
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US6774667B1 (en) 2002-05-09 2004-08-10 Actel Corporation Method and apparatus for a flexible chargepump scheme for field-programmable gate arrays
US6973405B1 (en) 2002-05-22 2005-12-06 Xilinx, Inc. Programmable interactive verification agent
US7378867B1 (en) 2002-06-04 2008-05-27 Actel Corporation Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers
US6891394B1 (en) 2002-06-04 2005-05-10 Actel Corporation Field-programmable gate array low voltage differential signaling driver utilizing two complimentary output buffers
US6772405B1 (en) 2002-06-13 2004-08-03 Xilinx, Inc. Insertable block tile for interconnecting to a device embedded in an integrated circuit
US7129744B2 (en) * 2003-10-23 2006-10-31 Viciciv Technology Programmable interconnect structures
US7085973B1 (en) 2002-07-09 2006-08-01 Xilinx, Inc. Testing address lines of a memory controller
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US6765427B1 (en) 2002-08-08 2004-07-20 Actel Corporation Method and apparatus for bootstrapping a programmable antifuse circuit
WO2004015764A2 (en) * 2002-08-08 2004-02-19 Leedy Glenn J Vertical system integration
US7099426B1 (en) 2002-09-03 2006-08-29 Xilinx, Inc. Flexible channel bonding and clock correction operations on a multi-block data path
US7434080B1 (en) 2002-09-03 2008-10-07 Actel Corporation Apparatus for interfacing and testing a phase locked loop in a field programmable gate array
WO2004038599A1 (de) 2002-09-06 2004-05-06 Pact Xpp Technologies Ag Rekonfigurierbare sequenzerstruktur
US7092865B1 (en) 2002-09-10 2006-08-15 Xilinx, Inc. Method and apparatus for timing modeling
US6750674B1 (en) 2002-10-02 2004-06-15 Actel Corporation Carry chain for use between logic modules in a field programmable gate array
US6885218B1 (en) 2002-10-08 2005-04-26 Actel Corporation Parallel programmable antifuse field programmable gate array device (FPGA) and a method for programming and testing an antifuse FPGA
US7269814B1 (en) 2002-10-08 2007-09-11 Actel Corporation Parallel programmable antifuse field programmable gate array device (FPGA) and a method for programming and testing an antifuse FPGA
US6937064B1 (en) * 2002-10-24 2005-08-30 Altera Corporation Versatile logic element and logic array block
US7116840B2 (en) 2002-10-31 2006-10-03 Microsoft Corporation Decoding and error correction in 2-D arrays
US7133563B2 (en) 2002-10-31 2006-11-07 Microsoft Corporation Passive embedded interaction code
US7146598B2 (en) * 2002-11-07 2006-12-05 Computer Network Technoloy Corp. Method and apparatus for configuring a programmable logic device
US6727726B1 (en) 2002-11-12 2004-04-27 Actel Corporation Field programmable gate array architecture including a buffer module and a method of distributing buffer modules in a field programmable gate array
US7111110B1 (en) 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device
US6946871B1 (en) * 2002-12-18 2005-09-20 Actel Corporation Multi-level routing architecture in a field programmable gate array having transmitters and receivers
TWI220738B (en) * 2002-12-20 2004-09-01 Benq Corp Method for effectively re-downloading data to a field programmable gate array
US7385420B1 (en) 2002-12-27 2008-06-10 Actel Corporation Repeatable block producing a non-uniform routing architecture in a field programmable gate array having segmented tracks
US6891396B1 (en) 2002-12-27 2005-05-10 Actel Corporation Repeatable block producing a non-uniform routing architecture in a field programmable gate array having segmented tracks
US7673118B2 (en) 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US7873811B1 (en) * 2003-03-10 2011-01-18 The United States Of America As Represented By The United States Department Of Energy Polymorphous computing fabric
US7571973B2 (en) * 2003-03-22 2009-08-11 Hewlett-Packard Development Company, L.P. Monitoring fluid short conditions for fluid-ejection devices
US6943581B1 (en) 2003-03-27 2005-09-13 Xilinx, Inc. Test methodology for direct interconnect with multiple fan-outs
GB2400195B (en) * 2003-03-31 2005-06-29 Micron Technology Inc Active memory processing array topography and method
US7255437B2 (en) * 2003-10-09 2007-08-14 Howell Thomas A Eyeglasses with activity monitoring
US6838902B1 (en) * 2003-05-28 2005-01-04 Actel Corporation Synchronous first-in/first-out block memory for a field programmable gate array
US6825690B1 (en) 2003-05-28 2004-11-30 Actel Corporation Clock tree network in a field programmable gate array
US7375553B1 (en) 2003-05-28 2008-05-20 Actel Corporation Clock tree network in a field programmable gate array
US7757197B1 (en) * 2003-05-29 2010-07-13 Altera Corporation Method and apparatus for utilizing constraints for the routing of a design on a programmable logic device
US6867615B1 (en) 2003-05-30 2005-03-15 Actel Corporation Dedicated input/output first in/first out module for a field programmable gate array
US7385419B1 (en) * 2003-05-30 2008-06-10 Actel Corporation Dedicated input/output first in/first out module for a field programmable gate array
US6897676B1 (en) 2003-06-04 2005-05-24 Xilinx, Inc. Configuration enable bits for PLD configurable blocks
US7386826B1 (en) * 2003-06-24 2008-06-10 Xilinx, Inc. Using redundant routing to reduce susceptibility to single event upsets in PLD designs
JP4423953B2 (ja) 2003-07-09 2010-03-03 株式会社日立製作所 半導体集積回路
US6990010B1 (en) * 2003-08-06 2006-01-24 Actel Corporation Deglitching circuits for a radiation-hardened static random access memory based programmable architecture
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7421014B2 (en) * 2003-09-11 2008-09-02 Xilinx, Inc. Channel bonding of a plurality of multi-gigabit transceivers
US7622947B1 (en) * 2003-12-18 2009-11-24 Nvidia Corporation Redundant circuit presents connections on specified I/O ports
US7583842B2 (en) 2004-01-06 2009-09-01 Microsoft Corporation Enhanced approach of m-array decoding and error correction
DE102004001669B4 (de) * 2004-01-12 2008-06-05 Infineon Technologies Ag Konfigurierbares Logikbauelement ohne lokalen Konfigurationsspeicher mit parallelem Konfigurationsbus
US7263224B2 (en) 2004-01-16 2007-08-28 Microsoft Corporation Strokes localization by m-array decoding and fast image matching
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
US7109746B1 (en) * 2004-03-22 2006-09-19 Xilinx, Inc. Data monitoring for single event upset in a programmable logic device
US6975139B2 (en) * 2004-03-30 2005-12-13 Advantage Logic, Inc. Scalable non-blocking switching network for programmable logic
US7698118B2 (en) * 2004-04-15 2010-04-13 Mentor Graphics Corporation Logic design modeling and interconnection
US7030652B1 (en) 2004-04-23 2006-04-18 Altera Corporation LUT-based logic element with support for Shannon decomposition and associated method
US7081772B1 (en) * 2004-06-04 2006-07-25 Altera Corporation Optimizing logic in non-reprogrammable logic devices
US7426678B1 (en) * 2004-07-20 2008-09-16 Xilinx, Inc. Error checking parity and syndrome of a block of data with relocated parity bits
US7460529B2 (en) * 2004-07-29 2008-12-02 Advantage Logic, Inc. Interconnection fabric using switching networks in hierarchy
US20060080632A1 (en) * 2004-09-30 2006-04-13 Mathstar, Inc. Integrated circuit layout having rectilinear structure of objects
FR2879337A1 (fr) * 2004-12-15 2006-06-16 St Microelectronics Sa Circuit memoire, tel que dram, comportant un mecanisme correcteur d'erreur
US7218138B2 (en) * 2004-12-23 2007-05-15 Lsi Corporation Efficient implementations of the threshold-2 function
US7627291B1 (en) * 2005-01-21 2009-12-01 Xilinx, Inc. Integrated circuit having a routing element selectively operable to function as an antenna
US20070247189A1 (en) * 2005-01-25 2007-10-25 Mathstar Field programmable semiconductor object array integrated circuit
US7607076B2 (en) 2005-02-18 2009-10-20 Microsoft Corporation Embedded interaction code document
US7826074B1 (en) 2005-02-25 2010-11-02 Microsoft Corporation Fast embedded interaction code printing with custom postscript commands
US7394708B1 (en) 2005-03-18 2008-07-01 Xilinx, Inc. Adjustable global tap voltage to improve memory cell yield
CA2604157A1 (en) * 2005-04-06 2006-10-12 Omnilink Systems, Inc. System and method for tracking, monitoring, collecting, reporting and communicating with the movement of individuals
US7421439B2 (en) 2005-04-22 2008-09-02 Microsoft Corporation Global metadata embedding and decoding
US7542976B2 (en) * 2005-04-22 2009-06-02 Microsoft Corporation Local metadata embedding and decoding
US7599560B2 (en) 2005-04-22 2009-10-06 Microsoft Corporation Embedded interaction code recognition
US7400777B2 (en) 2005-05-25 2008-07-15 Microsoft Corporation Preprocessing for information pattern analysis
US7729539B2 (en) 2005-05-31 2010-06-01 Microsoft Corporation Fast error-correcting of embedded interaction codes
US7580576B2 (en) 2005-06-02 2009-08-25 Microsoft Corporation Stroke localization and binding to electronic document
US7619607B2 (en) 2005-06-30 2009-11-17 Microsoft Corporation Embedding a pattern design onto a liquid crystal display
US7622182B2 (en) 2005-08-17 2009-11-24 Microsoft Corporation Embedded interaction code enabled display
US7817816B2 (en) 2005-08-17 2010-10-19 Microsoft Corporation Embedded interaction code enabled surface type identification
US7439763B1 (en) 2005-10-25 2008-10-21 Xilinx, Inc. Scalable shared network memory switch for an FPGA
US7996604B1 (en) 2005-10-25 2011-08-09 Xilinx, Inc. Class queue for network data switch to identify data memory locations by arrival time
US7568074B1 (en) * 2005-10-25 2009-07-28 Xilinx, Inc. Time based data storage for shared network memory switch
US7730276B1 (en) 2005-10-25 2010-06-01 Xilinx, Inc. Striping of data into memory of a network data switch to prevent read and write collisions
US20070139074A1 (en) * 2005-12-19 2007-06-21 M2000 Configurable circuits with microcontrollers
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7423453B1 (en) 2006-01-20 2008-09-09 Advantage Logic, Inc. Efficient integrated circuit layout scheme to implement a scalable switching network used in interconnection fabric
US7478357B1 (en) 2006-08-14 2009-01-13 Xilinx, Inc. Versatile bus interface macro for dynamically reconfigurable designs
US10402366B2 (en) * 2006-08-21 2019-09-03 Benjamin J. Cooper Efficient and scalable multi-value processor and supporting circuits
US8261138B2 (en) * 2006-10-24 2012-09-04 International Business Machines Corporation Test structure for characterizing multi-port static random access memory and register file arrays
US7884672B1 (en) 2006-11-01 2011-02-08 Cypress Semiconductor Corporation Operational amplifier and method for amplifying a signal with shared compensation components
US7508231B2 (en) 2007-03-09 2009-03-24 Altera Corporation Programmable logic device having redundancy with logic element granularity
US7456653B2 (en) * 2007-03-09 2008-11-25 Altera Corporation Programmable logic device having logic array block interconnect lines that can interconnect logic elements in different logic blocks
US8803672B2 (en) * 2007-05-15 2014-08-12 Sirius Xm Radio Inc. Vehicle message addressing
US20090094306A1 (en) * 2007-10-09 2009-04-09 Krishnakalin Gahn W Cordic rotation angle calculation
US8239430B2 (en) * 2007-10-09 2012-08-07 International Business Machines Corporation Accuracy improvement in CORDIC through precomputation of the error bias
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US20090144595A1 (en) * 2007-11-30 2009-06-04 Mathstar, Inc. Built-in self-testing (bist) of field programmable object arrays
JP2009159567A (ja) * 2007-12-28 2009-07-16 Panasonic Corp リコンフィギュアラブル回路、コンフィギュレーション方法およびプログラム
GB2457310B (en) * 2008-02-11 2012-03-21 Picochip Designs Ltd Signal routing in processor arrays
CN101393658B (zh) * 2008-02-27 2011-04-20 重庆长安汽车股份有限公司 汽车中控防盗方法及系统
JP5158195B2 (ja) * 2008-06-06 2013-03-06 日本電気株式会社 回路設計システムおよび回路設計方法
US7956639B2 (en) * 2008-07-23 2011-06-07 Ndsu Research Foundation Intelligent cellular electronic structures
US7705629B1 (en) 2008-12-03 2010-04-27 Advantage Logic, Inc. Permutable switching network with enhanced interconnectivity for multicasting signals
US7714611B1 (en) 2008-12-03 2010-05-11 Advantage Logic, Inc. Permutable switching network with enhanced multicasting signals routing for interconnection fabric
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
GB2466821A (en) 2009-01-08 2010-07-14 Advanced Risc Mach Ltd An FPGA with an embedded bus and dedicated bus interface circuits
US8587337B1 (en) * 2009-01-31 2013-11-19 Xilinx, Inc. Method and apparatus for capturing and synchronizing data
KR20100108697A (ko) * 2009-03-30 2010-10-08 삼성전자주식회사 데이터 출력 패드들의 스왑 기능을 갖는 반도체 메모리 장치
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
US7999570B2 (en) 2009-06-24 2011-08-16 Advantage Logic, Inc. Enhanced permutable switching network with multicasting signals for interconnection fabric
US8085603B2 (en) * 2009-09-04 2011-12-27 Integrated Device Technology, Inc. Method and apparatus for compression of configuration bitstream of field programmable logic
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
FR2951868B1 (fr) * 2009-10-28 2012-04-06 Kalray Briques de construction d'un reseau sur puce
FR2954023B1 (fr) * 2009-12-14 2012-02-10 Lyon Ecole Centrale Matrice interconnectee de cellules logiques reconfigurables avec une topologie d'interconnexion croisee
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
US8890567B1 (en) 2010-09-30 2014-11-18 Altera Corporation High speed testing of integrated circuits including resistive elements
US8972821B2 (en) * 2010-12-23 2015-03-03 Texas Instruments Incorporated Encode and multiplex, register, and decode and error correction circuitry
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US8874837B2 (en) * 2011-11-08 2014-10-28 Xilinx, Inc. Embedded memory and dedicated processor structure within an integrated circuit
US8959469B2 (en) 2012-02-09 2015-02-17 Altera Corporation Configuring a programmable device using high-level language
US9111151B2 (en) * 2012-02-17 2015-08-18 National Taiwan University Network on chip processor with multiple cores and routing method thereof
US9166598B1 (en) 2012-05-08 2015-10-20 Altera Corporation Routing and programming for resistive switch arrays
US9490811B2 (en) * 2012-10-04 2016-11-08 Efinix, Inc. Fine grain programmable gate architecture with hybrid logic/routing element and direct-drive routing
US9525419B2 (en) * 2012-10-08 2016-12-20 Efinix, Inc. Heterogeneous segmented and direct routing architecture for field programmable gate array
US8645892B1 (en) * 2013-01-07 2014-02-04 Freescale Semiconductor, Inc. Configurable circuit and mesh structure for integrated circuit
US8860457B2 (en) * 2013-03-05 2014-10-14 Qualcomm Incorporated Parallel configuration of a reconfigurable instruction cell array
FR3015068B1 (fr) * 2013-12-18 2016-01-01 Commissariat Energie Atomique Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal
CN103793190A (zh) * 2014-02-07 2014-05-14 北京京东方视讯科技有限公司 一种信息显示方法、信息显示装置及显示设备
US9378326B2 (en) * 2014-09-09 2016-06-28 International Business Machines Corporation Critical region identification
CN104571949B (zh) * 2014-12-22 2017-07-07 华中科技大学 基于忆阻器实现计算与存储融合的处理器及其操作方法
US10879904B1 (en) * 2017-07-21 2020-12-29 X Development Llc Application specific integrated circuit accelerators
US10790828B1 (en) 2017-07-21 2020-09-29 X Development Llc Application specific integrated circuit accelerators
US10685161B2 (en) * 2018-08-20 2020-06-16 Taiwan Semiconductor Manufacturing Company Ltd. Region based shrinking methodology for integrated circuit layout migration
CN111913794B (zh) * 2020-08-04 2024-08-09 北京百度网讯科技有限公司 用于共用gpu的方法、装置、电子设备及可读存储介质
US12052160B2 (en) * 2021-02-22 2024-07-30 Efinix, Inc. FPGA neighbor output mux direct connections to minimize routing hops
US20250124977A1 (en) * 2023-10-13 2025-04-17 Synopsys, Inc. Compiled multi-port memory

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4020469A (en) 1975-04-09 1977-04-26 Frank Manning Programmable arrays
US4296475A (en) * 1978-12-19 1981-10-20 U.S. Philips Corporation Word-organized, content-addressable memory
US4268908A (en) 1979-02-26 1981-05-19 International Business Machines Corporation Modular macroprocessing system comprising a microprocessor and an extendable number of programmed logic arrays
US4538247A (en) * 1983-01-14 1985-08-27 Fairchild Research Center Redundant rows in integrated circuit memories
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4670749A (en) * 1984-04-13 1987-06-02 Zilog, Inc. Integrated circuit programmable cross-point connection technique
JPS6177946A (ja) * 1984-09-26 1986-04-21 Hitachi Ltd 半導体記憶装置
US4642487A (en) 1984-09-26 1987-02-10 Xilinx, Inc. Special interconnect for configurable logic array
US4706216A (en) * 1985-02-27 1987-11-10 Xilinx, Inc. Configurable logic element
DE3630835C2 (de) 1985-09-11 1995-03-16 Pilkington Micro Electronics Integrierte Halbleiterkreisanordnungen und Systeme
JPH0789674B2 (ja) * 1985-10-22 1995-09-27 シ−メンス、アクチエンゲゼルシヤフト 広帯域信号−結合装置
US5179540A (en) * 1985-11-08 1993-01-12 Harris Corporation Programmable chip enable logic function
US4700187A (en) 1985-12-02 1987-10-13 Concurrent Logic, Inc. Programmable, asynchronous logic cell and array
US5451887A (en) * 1986-09-19 1995-09-19 Actel Corporation Programmable logic module and architecture for field programmable gate array device
US5187393A (en) * 1986-09-19 1993-02-16 Actel Corporation Reconfigurable programmable interconnect architecture
US5477165A (en) * 1986-09-19 1995-12-19 Actel Corporation Programmable logic module and architecture for field programmable gate array device
US4758745B1 (en) * 1986-09-19 1994-11-15 Actel Corp User programmable integrated circuit interconnect architecture and test method
US4866508A (en) 1986-09-26 1989-09-12 General Electric Company Integrated circuit packaging configuration for rapid customized design and unique test capability
US5175865A (en) * 1986-10-28 1992-12-29 Thinking Machines Corporation Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers
US4918440A (en) 1986-11-07 1990-04-17 Furtek Frederick C Programmable logic cell and array
US4847612A (en) * 1988-01-13 1989-07-11 Plug Logic, Inc. Programmable logic device
KR910003594B1 (ko) * 1988-05-13 1991-06-07 삼성전자 주식회사 스페어컬럼(column)선택방법 및 회로
DE68905240T2 (de) * 1988-06-01 1993-07-15 Nippon Electric Co Halbleiterspeichereinrichtung mit hochgeschwindigkeits-lesevorrichtung.
US5221922A (en) * 1988-08-08 1993-06-22 Siemens Aktiengesellschaft Broadband signal switching matrix network
US4930107A (en) * 1988-08-08 1990-05-29 Altera Corporation Method and apparatus for programming and verifying programmable elements in programmable devices
JP2723926B2 (ja) * 1988-09-20 1998-03-09 川崎製鉄株式会社 プログラマブル・ロジツク・デバイス
US4973956A (en) * 1988-12-22 1990-11-27 General Electric Company Crossbar switch with distributed memory
IT1225638B (it) 1988-12-28 1990-11-22 Sgs Thomson Microelectronics Dispositivo logico integrato come una rete di maglie di memorie distribuite
US4942319A (en) 1989-01-19 1990-07-17 National Semiconductor Corp. Multiple page programmable logic architecture
GB8906145D0 (en) * 1989-03-17 1989-05-04 Algotronix Ltd Configurable cellular 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
KR910006849A (ko) * 1989-09-29 1991-04-30 미다 가쓰시게 반도체 집적회로 장치
US5015883A (en) * 1989-10-10 1991-05-14 Micron Technology, Inc. Compact multifunction logic circuit
US5073729A (en) * 1990-06-22 1991-12-17 Actel Corporation Segmented routing architecture
US5130947A (en) * 1990-10-22 1992-07-14 Motorola, Inc. Memory system for reliably writing addresses with reduced power consumption
US5144166A (en) * 1990-11-02 1992-09-01 Concurrent Logic, Inc. Programmable logic cell and array
US5122685A (en) * 1991-03-06 1992-06-16 Quicklogic Corporation Programmable application specific integrated circuit and logic cell therefor
US5338984A (en) * 1991-08-29 1994-08-16 National Semiconductor Corp. Local and express diagonal busses in a configurable logic array
US5260610A (en) * 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5260611A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
US5559971A (en) * 1991-10-30 1996-09-24 I-Cube, Inc. Folded hierarchical crosspoint array
JP2790746B2 (ja) * 1992-01-10 1998-08-27 シャープ株式会社 半導体記憶装置
JPH05324452A (ja) * 1992-05-27 1993-12-07 Nec Ic Microcomput Syst Ltd 外部メモリインタフェース回路
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5457410A (en) 1993-08-03 1995-10-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US5486775A (en) * 1993-11-22 1996-01-23 Altera Corporation Multiplexer structures for use in making controllable interconnections in integrated circuits.
JP2600597B2 (ja) * 1993-12-06 1997-04-16 日本電気株式会社 情報伝播用ダイナミック回路
US5455525A (en) 1993-12-06 1995-10-03 Intelligent Logic Systems, Inc. Hierarchically-structured programmable logic array and system for interconnecting logic elements in the logic array

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004525439A (ja) * 2000-12-19 2004-08-19 ピコチップ デザインズ リミテッド プロセッサアーキテクチャ
JP2008226275A (ja) * 2000-12-19 2008-09-25 Picochip Designs Ltd プロセッサアーキテクチャ
JP2008015772A (ja) * 2006-07-05 2008-01-24 Nec Electronics Corp 半導体集積回路
US7906819B2 (en) 2008-01-08 2011-03-15 Fujitsu Semiconductor Limited Semiconductor device and method for producing the same
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
JP2016519446A (ja) * 2013-03-01 2016-06-30 クゥアルコム・インコーポレイテッドQualcomm Incorporated 埋込み再構成可能コンピューティングのためのスイッチングファブリック
JP2016100870A (ja) * 2014-11-26 2016-05-30 Necスペーステクノロジー株式会社 動的回路装置
WO2016084355A1 (ja) * 2014-11-26 2016-06-02 Necスペーステクノロジー株式会社 動的回路装置

Also Published As

Publication number Publication date
US5831448A (en) 1998-11-03
EP0669056A4 (en) 1996-04-24
US5552722A (en) 1996-09-03
US5528176A (en) 1996-06-18
WO1994010754A1 (en) 1994-05-11
EP0669056A1 (en) 1995-08-30
US5670897A (en) 1997-09-23
GB9223226D0 (en) 1992-12-16
US5798656A (en) 1998-08-25
US5861761A (en) 1999-01-19
US6292018B1 (en) 2001-09-18
US5500609A (en) 1996-03-19
CA2147363A1 (en) 1994-05-11
US5469003A (en) 1995-11-21

Similar Documents

Publication Publication Date Title
JPH08503111A (ja) 改良型コンフィギャラブルセルアレイ
US5742180A (en) Dynamically programmable gate array with multiple contexts
US7138827B1 (en) Programmable logic device with time-multiplexed interconnect
US6047115A (en) Method for configuring FPGA memory planes for virtual hardware computation
US6421817B1 (en) System and method of computation in a programmable logic device using virtual instructions
US6553479B2 (en) Local control of multiple context processing elements with major contexts and minor contexts
US7266672B2 (en) Method and apparatus for retiming in a network of multiple context processing elements
US6591357B2 (en) Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements
US8554972B2 (en) Logic chip, method and computer program for providing a configuration information for a configurable logic chip
US6650142B1 (en) Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use
US6184713B1 (en) Scalable architecture for high density CPLDS having two-level hierarchy of routing resources
JPH0256114A (ja) プログラマブル配線を介して結合されるアレイブロックを有するプログラマブル論理デバイス
WO1998043353A1 (en) Function block architecture for gate array
US20050021749A1 (en) Method and apparatus for communication within a programmable logic device using serial transceivers
US6100714A (en) High density PLD structure with flexible logic built-in blocks
Zamacola et al. An integrated approach and tool support for the design of fpga-based multi-grain reconfigurable systems
US11901896B2 (en) Soft network-on-chip overlay through a partial reconfiguration region
Abdali et al. Exploring the performance of partially reconfigurable point-to-point interconnects
WO2001025976A2 (en) Function block architecture for gate array