JPH09238069A - プログラム可能論理装置 - Google Patents

プログラム可能論理装置

Info

Publication number
JPH09238069A
JPH09238069A JP8315801A JP31580196A JPH09238069A JP H09238069 A JPH09238069 A JP H09238069A JP 8315801 A JP8315801 A JP 8315801A JP 31580196 A JP31580196 A JP 31580196A JP H09238069 A JPH09238069 A JP H09238069A
Authority
JP
Japan
Prior art keywords
data
block
programmable
logic
blocks
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
JP8315801A
Other languages
English (en)
Inventor
David W Gissel
デビッド・ダブリュー・ジッセル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH09238069A publication Critical patent/JPH09238069A/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/1733Controllable logic circuits
    • H03K19/1735Controllable logic circuits by wiring, e.g. uncommitted logic arrays
    • H03K19/1736Controllable logic circuits by wiring, e.g. uncommitted logic arrays in which the wiring can be modified
    • 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/17758Structural details of configuration resources for speeding up configuration or 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/17764Structural details of configuration resources for reliability

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Logic Circuits (AREA)

Abstract

(57)【要約】 【課題】フィールド・プログラム可能なゲート・アレイ
を構成する時間を短縮させる方法および該方法を実施す
るために必要とされる物理空間を最小限にとどめる装置
を提供する。 【解決手段】複数のブロックの形態に構成される複数の
プログラム可能論理素子を含むプログラム可能論理装置
が提供される。各ブロックは、プログラム可能論理素子
の複数のユニークなサブセットを含む。データ・バスが
ブロックの各々に延びる。各ブロックに対して独立した
アドレス回路が備えられる。各ブロックのブロック・イ
ネーブル線に接続されたセレクタ回路を使用して、ブロ
ック・イネーブル線がオンの時、選択されたブロックの
アドレス回路が多重チャネル直列データ・バスのチャネ
ルの1つから複数のプログラム可能論理素子へデータを
転送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、一般的にはフィー
ルド・プログラム可能なゲート・アレイ(すなわちFP
GA)を含むプログラム可能論理装置に関するもので、
特に、FPGAをプログラムまたは構成するために使用
するデータストリームをロードする機能を持つFPGA
制御回路を実施するために必要とされる空間量を減少さ
せる装置および方法に関するものである。
【0002】
【従来の技術】プログラム可能論理装置(Programmable
Logic Deviceの頭文字をとって以下PLDと略称する場
合がある)は、プログラム可能論理アレイ(Programmable
LogicArrayの頭文字をとって以下PLAと略称する場
合がある)、フィールド・プログラム可能な(すなわち設
置場所でプログラム可能な)ゲート・アレイ(Field Prog
rammable Gate Arrayの頭文字をとって以下FPGAと
略称する場合がある)およびそれらと同等な機構を含
む。PLDにおいては、それ自身プログラム可能な複数
の論理素子が、構成可能な接続機構を使用して、相互に
接続され、あるいはまた入出力ポートに接続される。所
望の回路を実現するため、PLDは、どのような接続が
行われるべきか、また、どのような論理が論理素子の各
々によって実施されるべきかということに関する情報を
与えられなければならない。これは、各ビットが2進値
によって表現され、順序づけて配列されたデータストリ
ームである「構成データストリーム」を、PLD上に形
成される「構成信号線」に適応することによって達成さ
れる。
【0003】構成データストリームを使用して、PLD
内部の個々のスイッチが所望の状態(すなわちオンまた
はオフ)にプログラムされる。これらのスイッチは、パ
ス・トランジスタ、反ヒューズ(antifuse)接続点、ヒュ
ーズ接続点またはその他の同等のスイッチ実施形態を制
御するSRAMセルを使用して実施されることができ
る。プログラム可能スイッチを使用して、PLDの構成
可能な経路指定および論理機能が制御される。加えて、
スイッチは、FPGA内にRAM参照テーブルを形成し
て組合せ回路を実施することもある。
【0004】典型的なPLDは、構成可能なデータスト
リームを受け取り保持する数百のプログラム可能なスイ
ッチを含む。PLD論理能力が増大し、プログラム可能
なスイッチの数が増加する傾向が続いている。一部の装
置は、PLD当たり数千から数万のスイッチを用いる。
これらのスイッチは、各スイッチが列および行のアドレ
スによってユニークに識別される大規模なアドレス可能
メモリ・システムに論理的には類似している。
【0005】従来技術のPLDにおいては、スイッチの
すべては、単一のアレイとして配列されている。スイッ
チの各列に関する1ビットを含む長いシフト・レジスタ
が、特定の行に関する構成データを保持するために使用
される。第2の長いシフト・レジスタが、第1のシフト
・レジスタのデータがアレイのどの行にロードされるべ
きかを示す情報をロードするために使用される。一旦両
方のレジスタがロードされると、選択された行のプログ
ラム可能なスイッチに第1のシフト・レジスタのデータ
を転送することを可能にすることによって、ある1つの
選択された行におけるすべてのスイッチを同時にプログ
ラムすることができる。
【0006】従来技術のシステムにおいて、アドレス信
号線(複数)が、スイッチのアレイ全体にわたって第1お
よび第2のシフト・レジスタから延伸されなければなら
ない。また、両方の長いシフト・レジスタの各ビットが
機能しなければならず、さもなければ構成データをPL
Dにロードすることは可能でない。いかなる長いアドレ
ス信号線における故障も後方または前方の他の装置へ伝
播し、チップ全体を機能不全にさせる可能性がある。
【0007】高密度PLD設計において、PLDを構成
するために使用される制御回路に必要な物理的空間を最
小にすることが望まれる。制御回路に必要な空間を最小
限にとどめることによって、一層多数のプログラム可能
素子を装置に付加してその機能性を増加させることがで
きる。それと共に、データ・スループットを最大にする
ことも望まれる。特に、装置が検査され特性づけが行わ
れる時、可能な限り多くの回路の機能性を検査するため
広範囲のデータストリームを適用することが必要とされ
る。
【0008】従来技術の第1の解決策は、構成データを
PLDにおけるスイッチ・アレイに適用する単一の直列
インターフェースを備えることである。これは、ただ1
つの直列データ線だけを装置にはりめぐらせればよいの
で、必要な空間を最小にするという利点を持つ。しかし
ながら、直列インターフェースは大規模なPLDについ
てはあまりにも遅い。
【0009】第2の従来技術の解決策は、構成データを
持つ多くの信号線を受け取る並列外部インタフェースを
使用することである。並列構成データが、並列直列変換
器によってPLD内で直列形式に変換される。この解決
策は、スループットを向上させたが、回路およびインタ
ーフェースの複雑性を増加させた。また、並列直列変換
器回路がPLD内部に構成されるため、なにがしかの空
間が犠牲にされた。
【0010】1995年2月28日付でBritton氏等に
付与された米国特許第5,394,031号には、データを並列
的にシフト・レジスタにロードすることを可能にするこ
とによってFPGAを構成するために要求される時間量
を減少させる方法が記載されている。シフト・レジスタ
は、クロック・サイクル当たり複数のビットをシフトす
るように構成される。この解決策は、上述の第2番目の
解決策に類似しているが、並列直列変換を実行するため
にチップ搭載シフト・レジスタを使用する。
【0011】
【発明が解決しようとする課題】このように、FPGA
を構成するための所要時間を短縮させる方法および該方
法を実施するために必要とされる物理的空間を最小限に
とどめる装置が求められている。
【0012】
【課題を解決するための手段】上記発明の課題を解決す
るため、本発明は、複数の直列構成データストリームを
同時に受け取る複数の直列チャネルを含む外部インタフ
ェースを有するプログラム可能な論理装置(すなわちP
LD)を提供する。該PLDは、論理ブロックの形態に
構成される複数のプログラム可能な論理素子あるいはタ
イルを含む。各論理ブロックは、プログラム可能な論理
素子あるいはタイルの複数のユニークなサブセットを含
む。多重チャネル直列データ・バスがブロックの各々へ
延びる。オプションとして、PLDのプログラム可能ブ
ロックが複数セットのブロックに構成され、セレクタ回
路が、多重チャンネル直列データ・バスの経路をブロッ
クの複数セットのうちの選択されたセットへ指定する。
本発明に従って、複数の論理ブロックが、多重チャネル
直列データ・バスに同時に接続され、ユニークな構成デ
ータストリームが同時に受け取られる。
【0013】本発明は、また、複数の記憶装置を持つプ
ログラム可能論理装置(すなわちPLD)にロードする方
法を提供する。複数の記憶装置は論理ブロックに構成さ
れる。PLDの複数の論理ブロックは、同時に実行可能
とされる(すなわちイネーブルされる)。イネーブルされ
た論理ブロックの各々は、直列構成データストリームを
それぞれが提供するユニークなデータ・チャネルに同時
に接続される。イネーブルされた複数ブロックの範囲内
で選択された記憶装置がアドレス指定される。直列構成
データストリームの一部が、アドレス指定された記憶装
置にロードされる。
【0014】本発明は、その1つの局面において、発明
の課題を解決する手段として、外部ソースから複数の直
列構成データ・チャネルを受け取る少くとも1つの制御
データ・ポート、制御データ・ポートから転送される複
数の構成データ・チャネルの経路を指定する制御バス、
複数のプログラム可能ブロック、各プログラム可能ブロ
ックの範囲内に位置し構成データを受け取り記憶する複
数の記憶装置、および、各プログラム可能ブロックの範
囲内に位置し制御バスの1つのチャネルに接続しかつア
ドレス線を介して記憶装置の各々に接続するアドレス回
路を備えるプログラム可能論理装置を含む。
【0015】
【発明の実施の形態】1. 概要 図1は、本発明に従うPLD100の1つの実施形態を
示す。PLD100は、制御論理回路101および複数
の本質的に全く同一の論理ブロック102を含む。制御
論理回路101は、クロック生成のような一般的制御機
能およびI/Oポート105を通してPLD100と外
部装置の間の通信を実行する機能を果たす。本発明に従
う制御論理回路101は、論理ブロック102に対して
少くとも3種類の出力を提供する。データ・バス103
a、データ・バス103bおよびデータ・バス103c
は、各々論理ブロック102を構成するために使用され
るデータを搬送する複数の配線を含む。クロック・バス
104は、クロック情報を搬送し、論理ブロック102
に対しクロック信号を提供する1つまたは複数の配線を
含む。イネーブル・バス106は、論理ブロック102
が個々にアドレス指定されることを可能にするイネーブ
ル・データを論理ブロック102の各々に与える。
【0016】論理ブロック102が本質的に同一である
が、電気的には本質的に独立しているということは本発
明の重要な特徴である。電気的に本質的に独立している
ということは、複数ブロック102の1つのブロックが
故障したとしても、残りの論理ブロックは依然として構
成可能で正常に機能するということを意味する。この点
を実現するため、故障した論理ブロック102は、デー
タ・バス103aないし103c、クロック・バス10
4またはイネーブル・バス106を電気的にロードしな
い。
【0017】論理ブロック102の各々は、複数のプロ
グラム可能な論理素子(図示されていない)および素子を
相互接続させるプログラム可能な相互接続機構(図示さ
れてない)を備える。プログラム可能な論理素子および
プログラム可能な相互接続機構は、例えば(図7に示さ
れているSRAMセル701のような)SRAMセルの
複数の記憶装置を含む。プログラム可能な素子従って記
憶装置は、記憶装置の各々がユニークな行および列アド
レスによって識別され得るようなアレイ形態で配列され
る。この意味において、スイッチのアレイは記憶アレイ
に類似している。
【0018】従来技術においては、論理ブロック102
は、単一のアレイのスイッチとして構成された。対照的
に、本発明の論理ブロック102の各々はチップ全体に
比較して極めて小さく、互いに同一であるが独立してい
る。従って、本発明に従えば、プログラム可能な論理ブ
ロック102の各々は、複線データ・バス103a−1
03cから単一の線を受け取ることによって同時に構成
することができる。
【0019】図2は、本発明に従うPLD100の代替
実施形態を示す。図2において、論理ブロック102
は、便宜的にブロック0からブロックnまで符号が付け
られている。多重チャネル・データ・バス103a−1
03cのデータ経路の詳細を示すため、ブロック0から
ブロックnまでの各論理ブロックに接続される(図1に
示されるような)クロック・バス104およびイネーブ
ル・バス106は図2には示されていない。図2に示さ
れているように、論理ブロック102は、点線で囲ま
れ、セット0、セット1およびセット2と符号付けされ
た3つのセットに配列されている。各セットは、ブロッ
ク0からブロックnまでの(n+1)個の論理ブロック1
02を含む。いかなる数の論理ブロック・セットを備え
ることができるし、各セット内にいかなる数の論理ブロ
ック102を備えることもできる。各セットが同一数
(n+1)の論理ブロック102を持つという意味におい
て、各セットは、好ましくは、内容的には本質的に同一
である。
【0020】セット0のブロック0からブロックnは、
多重チャネル・データ・バス103aに接続される。セ
ット1のブロック0からブロックnは、多重チャネル・
データ・バス103bに接続される。セット2のブロッ
ク0からブロックnは、多重チャネル・データ・バス1
03cに接続される。各多重チャネル・データ・バス1
03a、103bおよび103cは、多重チャネル・デ
ータ・バス201を経由して制御論理回路101へ接続
される。セレクタ回路204が、データ・バス103
a、データ・バス103bまたはデータ・バス103c
のどれをデータ・バス201に接続するかを選択する機
能を果たす。
【0021】図1に例示されているように、セット0の
ブロック102の各々は、現在、複線データ・バス10
3aに単線で接続されている。このような形態で、ブロ
ック0からブロックnまでの各ブロックは、多重チャネ
ル・データバス103aの個別に独立したチャネルに接
続される。従って、各ブロック102に、それぞれ独立
してかつ並列的に高いスループットで構成データをロー
ドすることができる。
【0022】セレクタ204が必要でないような単一セ
ットの論理ブロック102でPLD100を構成するこ
とが可能である点は理解されるべきであろう。また、セ
レクタ204と同等のセレクタを使用して、選択された
論理ブロック・セットへクロック・バス104およびイ
ネーブル・データ106を送信することは可能である。
これらは、特定の応用分野の必要性に対応する設計選択
にかかわる事柄である。
【0023】2. ブロック・セレクタ回路 図3は、本発明に従うブロック・セレクタ回路を示す。
データ線201は、双方向nビット・バッファ202を
経由して直接あるいは間接的に(図2に示されている)I
/Oポート105に接続される。双方向バッファ202
は、データ・ビットを記憶し、条件を整え、同期させ
る。受け取る並列ビット数(n)は、少なくとも2であ
り、I/Oポート105におけるデータ線の数と同じに
することができる。データ・バス201は双方向性であ
って、双方向バッファ202からデータを受け取るかま
たは双方向バッファ202へデータを入力することがで
きる。
【0024】セレクタ204は、上述のようにデータ・
バス201へ接続している。セレクタ204は、多重チ
ャネル・データ・バス103a、103bまたは103
cをそれぞれ使用して、セット0、セット1またはセッ
ト2のプログラム可能ブロックのn+1本の線へn+1
本のデータ・バス201を向かわせる。各セットは、図
2に示されるように、n+1個のブロックを含む。内部
データ・バス103のデータ線の数が例えば8であると
仮定すれば、セレクタ204は、ブロック・セット0に
おけるブロック0からブロック7までの8本のデータ線
を制御する。1本のデータ線がブロック0へ接続し別の
1本がブロック1へ接続する。残りの6本のデータ線が
同様にそれぞれのブロックへ接続する。従って、ブロッ
ク102は各データ線を独立したチャネルとして使用し
て並列的にロードされる。このように、各ブロックは独
立して構成することができるが、複数ブロックを同時に
構成することができるので、プログラムに要する時間は
減少する。このことによって、セグメント化されたブロ
ック・アーキテクチャを含む本発明の特徴を達成しなが
ら、本発明に従うPLD100以外には備えることがで
きない広い幅のデータ・バスの長所を全面的に活用する
ことができる。
【0025】本発明の別の局面において、論理ブロック
のセット0、セット1およびセット2の各々が、図3に
示されるように、マルチプレクサ205に接続される。
マルチプレクサ205は、論理ブロック102の1つか
ら到来するデータを選択して、そのデータをデータ・バ
ス201へ戻すことができる。このようにして、論理ブ
ロック102にロードされたデータを、評価または確認
のため、マルチプレクサ205を介して、双方向バッフ
ァ202を通して外部回路へ送ることができる。内部デ
ータ・バス201のこのような双方向性の使用によっ
て、必要な配線数を減少させ、図1の制御回路の機能性
を高めることができる。
【0026】本発明に従って実施できるもう1つの機構
は、論理ブロックのセット0、セット1およびセット1
を図3のマルチプレクサ206へ接続させることであ
る。マルチプレクサ206は、論理ブロック102の1
つのセットを選択して、選択されたセットをエラー検出
論理回路207へ接続する。エラー検出論理回路207
は、また、多重チャネル・データ・バス201に接続さ
れる。このようにして、データ・バス201を通してデ
ータが1つまたは複数の論理ブロックにロードされる
時、該データは論理ブロックから取り出され、エラー検
出論理回路207へ送られる。エラー検出論理回路20
7は、ブロック102へ実際にロードされたデータを、
データ・バス201からロードされる基準データと比較
する機能を持つ。プログラム可能論理ブロックへロード
されたデータに相違がある場合は、エラー信号が生成さ
れる。エラー信号の生成と共に、不具合を起こした論理
ブロックはマルチプレクサ205を通して出力されるデ
ータを使用して更に分析されるか、または、不具合を起
こした論理ブロックがこれ以上使用されないようにブロ
ック・セレクタによって永久に選択排除される。
【0027】3. 論理ブロックのアーキテクチャ 図4は、本発明に従った論理ブロック構造の1つの例を
示すブロックである。例示の目的から、ただ1つの論理
ブロック102のみが示されているが、図1および図2
に示されている論理ブロック102の各々は本質的に同
一である点は理解されるべきである。重要な点である
が、論理ブロック102は4種類の入力のみを受け取
る。本発明の好ましい実施形態において、「データ入
力」と標記されている線は、図2に示された内部データ
・バス103に接続されている1つまたは複数のデータ
線を含む。具体的には、データ入力線における線の数
は、少なくとも1本で、多重チャネル・データ・バス1
03における線の数に等しい本数とすることができる。
【0028】論理ブロック102に対するイネーブル入
力は、図2で示されたブロック・セレクタ204によっ
て生成される。ビット・クロック(またはデータ・クロ
ック)304および行クロック305が、制御論理回路
101によって生成され、図1に示されたクロック・バ
スを経由して供給される。データ・レジスタ302がデ
ータ入力およびビット・クロック304に接続される。
データ・クロック304から信号を受け取り次第、デー
タ・レジスタ302はデータ入力線からデータをロード
する。特定のアーキテクチャに従って、ビット・クロッ
ク304の各サイクル毎に1または複数のデータ・ビッ
トがロードされる。
【0029】同様に、行セレクト・レジスタ303がデ
ータ入力線および行クロック305に接続する。データ
は、行クロック305上のパルスまたは信号に応答して
データ入力線からロードされる。行セレクト・レジスタ
303は、使用されるアーキテクチャに従って、一度に
1ビットまたは複数ビットのデータをロードする。
【0030】プログラム可能ブロック102は、複数の
プログラム可能な論理素子またはタイル301を含む。
論理素子またはタイル301の各々は、プログラム可能
な組合せ論理および連動するプログラム可能相互接続回
路を含む。好ましい実施形態においては、プログラム可
能素子301は、行および列のアレイの形態で配列され
る。各プログラム可能素子またはタイル301は、組合
せ論理および相互接続をプログラムするために使用され
る多数の記憶装置を含む。1つの特定例の場合、プログ
ラム可能素子301の各々は約100個の記憶装置を含
む。
【0031】プログラム可能素子アレイ301における
記憶装置の各々は、(行セレクト・レジスタ303によ
って選択される)その行アドレスおよび(データ・レジス
タ302によって選択される)列位置によってプログラ
ム可能論理ブロック102の範囲内で個別にアドレス可
能またはユニークに識別可能である。図4に示されてい
るように、データ・アドレス線は、ブロック102の範
囲内でデータ・レジスタ302から論理素子301のす
べてにわたって延伸している。同様に、行セレクト・ア
ドレス線は、ブロック102の範囲内で行セレクト・レ
ジスタ303から論理素子301のすべてにわたって延
伸している。
【0032】本発明に従う重要な特長は、データ・レジ
スタ302および行セレクト・レジスタから延伸するア
ドレス線が、プログラム可能ブロック102の物理的な
境界を越えてまたはその外部へ延びる必要がないという
点である。これは、(図1の)PLD100の幅全体にわ
たって延伸しなければならない配線の数を減少させる。
好ましい実施形態において、データ入力線は単線であ
る。このように、(ビット・クロック304、行クロッ
ク305、データ入力およびイネーブルという)4本の
線だけがプログラム可能ブロック102の各々に情報を
送る。従って、これらの4本の線だけを(図1の)PLD
100の幅全体にわたって延伸させればよい。チップ1
00全体に延伸する線の数のこのような減少によって、
信頼性および故障許容度が大幅に向上する。更に、ビッ
ト・クロック304および行クロック305が多くのプ
ログラム可能論理ブロック102の間で共有されている
ことを考慮すれば、本発明がチップ全体に延伸しなけれ
ばならない線の数を大幅に減少させていることが認めら
れる。
【0033】図5には、図4の論理ブロック102aの
一部が更に詳細に示されている。プログラム可能アレイ
301は、行セレクトおよびデータ線によって個別にあ
るいはユニークに識別されるプログラム可能記憶装置ア
レイを含む。データ・レジスタ302は、複数の直列に
接続したフリップフロップ回路402a、402bおよ
び402c等々を含むシフト・レジスタとして構成され
る。データ・レジスタ302の長さはどのようなものと
もすることができる。好ましい実施形態において、単一
のデータ線が第1のフリップフロップ回路402aのデ
ータ入力(D)に接続される。データ・クロック線はフリ
ップフロップ回路402aないし402cの各々のクロ
ック入力に接続されるが、図では簡略化のためただ1つ
の接続が示されている。イネーブル信号は、フリップフ
ロップ回路402aないし402cの各々のイネーブル
入力(EN)に接続している。動作としては、データがデ
ータ・レジスタ302にロードされる前に、イネーブル
線がオンにされることによってブロック102aがデー
タ入力可能にされる。従って、ビット・クロック線の各
パルス毎に1ビットの情報がデータ・バッファー302
を通してシフトされる。
【0034】行セレクト・レジスタ303は、直列に接
続されたフリップフロップ回路403aないし403c
を使用して実施される。行セレクト・レジスタ303を
作成するためいかなる数のフリップフロップ回路をも使
用することができる。各フリップフロップ回路は行クロ
ック線に接続したクロック入力を持ち、1つの行セレク
ト・アドレス線を生成する。すべてのフリップフロップ
403aないし403cはイネーブル線に並列的に接続
する。従って、イネーブル線がオンにされると、データ
・バッファ302および行セレクト・レジスタ303が
使用可能となる。このイネーブルされたサイクルの間
に、データ・クロック304のサイクル毎にデータがデ
ータ線からデータ・レジスタ302にロードされる。行
クロック305のサイクル毎に、データがデータ線から
順次行セレクト・レジスタ303にロードされる。
【0035】データ・バッファ302および行セレクト
・レジスタ303がロードされる順序は任意である。デ
ータ・バッファ302および行セレクト・レジスタ30
3のロードの完了とともに、図4のデータ・アドレス線
データ0ないしデータ2上のデータが、行アドレス線行
セレクト0ないし2によってユニークに識別される記憶
素子に記憶される。このように、プログラム可能アレイ
301は特定の動作を実行するように構成される。プロ
グラム可能アレイ301からのデータ読み取りは、読み
取り書き込み記憶アレイの設計者にとって周知の方法
で、データ・レジスタ302および行セレクト・レジス
タを使用して実行される。
【0036】4. 動作方法 図6は、図4および図5で示されたブロック102に入
る4つの信号に関するタイミングを示す。記述の簡略化
のためデータ信号が論理1および論理Oが交互に出現す
るように表されてるが、実際のデータストリームは、プ
ログラム可能アレイ301において実施されるべき回路
に特別に適合する情報を含むであろうことは理解される
べきである。図4に示されたデータ・クロック304
は、データ・レジスタ302の幅の各ビット毎に1パル
スを、すなわちデータ・レジスタ302を形成するシフ
ト・レジスタ402aないし402cの各々毎に1パル
スを発する。図6においては、5ビットを持つシフト・
レジスタに関して5パルスが発せられている。実際の回
路では、シフト・レジスタ302の幅は数十から数百ビ
ットである。
【0037】同様に、行クロック305は、行セレクト
・レジスタ303の長さにおける各ビット毎に1パルス
を出す。8パルスだけが示されているけれども、実際の
回路は数十から数百ビットを持つ行セレクト・レジスタ
を使う。図6に示されているように、データが到着する
前およびデータ・クロック304と行クロック305が
起動される前に、イネーブル線がオンにされる。図6で
は行クロックがデータ・クロックの前に起動されている
が、データ線上のデータが特定のクロック・サイクルの
間有効である限り、データ・クロック・パルスと行クロ
ック・パルスの順序はどのようでもかまわないことは理
解されるべきである。
【0038】次に、図7、図8および図9を参照して、
本発明の好ましい動作方法を記述する。図7は、SRA
Mセル701のようなSRAMセルをプログラムする本
発明の好ましい実施形態において使用される制御線の詳
細を示す。1つのSRAMセル701が図示されている
けれども、図7の制御回路が上述の多数のSRAMセル
の間で共有される点は理解されなければならない。理解
を容易にするため、上述したクロック線およびブロック
・イネーブル線のような制御回路は図7に含められてい
ないが、そのようなエレメントが実際の回路では上述の
ように使用される点は理解されるべきである。
【0039】SRAMセル701は、非反転ビット線7
03および反転ビット線702に接続する1ビット・デ
ータを記憶する。データは、詳細は後述するが、ビット
線702および703を適切にドライブし、プログラム
可能スイッチを起動させることによってSRAMセル7
01に書き込まれる。記憶されたデータ・ビットは、非
反転ビット線702に読み取り回路を接続することによ
っSRAMセル701から読み取られる。
【0040】図7には、データ・レジスタ302の(図
5に示された)フリップフロップ回路の1つ402aが
示されている。フリップフロップ回路402には、図5
および図6を参照して上述した形態で、1ビットのデー
タがロードされる。図7には、また、行レジスタ303
のフリップフロップ回路の1つ403aが示されてい
る。例示の目的のため、SRAMセル701のどの行が
現在アドレスされている部分であるかを示す論理HIG
H信号をフリップフロップ403aが含むと仮定する。
フリップフロップ403aのQ出力は、ANDゲート7
09の1つの入力に接続される。
【0041】フリップフロップ402aの非反転Q出力
は、反転回路704および書込みトランジスタ708を
経由して反転ビット線702へ接続される。反転回路7
04の出力は、また、第2の反転回路706および書込
みトランジスタ707を経由して非反転ビット線703
へ接続される。書込み処理の間、書込み制御線がオンに
され、書込みトランジスタ707および708が動作可
能にされる。書込み制御線がオンにされた後、有効デー
タがビット線702および703上に存在する。
【0042】ワード711上の信号をオンにすることに
よって、ビット線702および703からSRAMセル
701へデータが転送される。ワード線イネーブル制御
信号がANDゲート709の第2のデータ入力に対し発
せられると、フリップフロップ403aによってアドレ
スされる時ワード線711は論理HIGHになる。この
ようにして、SRAMセルの1つの行におけるSRAM
セル701のすべては同時にそれらのそれぞれのビット
線702および703に接続される。書込み制御信号お
よびワード線イネーブル信号の相対的タイミングが図8
に示されている。
【0043】データは、また、好ましくは、SRAMセ
ル701からフリップフロップ402aへ読み取られる
ことができる。この機能性は、フリップフロップ402
aのD入力を読取りトランジスタ716を経由してビッ
ト線703へ接続することによって提供される。代替実
施形態として、信号極性に関して適切な調整が行われる
限り反転ビット線702を使用することも可能である。
読取り動作の間、ワード線711上のHIGH信号およ
び読取りトランジスタ716上の論理HIGH信号をオ
ンにすることによって、SRAMセル710からフリッ
プフロップ402aへのデータ転送が実行される。
【0044】オプションとして、該回路は処理性能を向
上させるため事前荷電機能を備える。事前荷電トランジ
スタ711は、論理HIGH電源に接続した1つの電流
搬送電極を持つ。事前荷電トランジスタ711は各々、
ビット線702および703の1つに接続されたもう一
方の電流搬送電極を持つ。動作の間、事前荷電信号をオ
ンにすることによって、両方の事前荷電トランジスタ7
11が通電状態にされビット線702および703をあ
らかじめ定められた電圧にする。図7に示される例にお
いて、あらかじめ定められた電圧はVddである。図9
には、また、事前荷電信号と同時にトランジスタ716
に適用されることができる読取り信号が示されている。
あらかじめ定められた時間が経過した後、ビット線70
2および703上の電圧は安定し、事前荷電信号がオフ
にされる。その後、ワード線711がオンにされ、ビッ
ト線702および703がSRAMセル701に記憶さ
れたビットによって決定される論理状態にされる。一旦
データがフリップフロップ402aによって捕捉される
と、読取り信号がオフにされ、読取りサイクルが完了す
る。
【0045】本発明の好ましい実施形態に従った書き込
みおよび読取り動作の上記詳細は完全性のみを考慮して
記述されていて、本発明の教示に対する制約を課するよ
うに意図されていない。SRAMセル701のようなメ
モリに対するデータの読み書きに関する多くの機能設計
技術は既知である。それらは、本明細書に記述された特
定の方法と同等である。
【0046】以上、複数の直列構成データストリームを
同時に受け取る複数の直列チャネルを含む外部インタフ
ェースを有するプログラム可能論理装置(PLD)が提供
されることを記述した。プログラム可能論理素子または
タイルの複数のユニークなサブセットを各々が含む複数
の論理ブロックの形態で、複数のプログラム可能論理素
子またはタイルが構成される。多重チャネル直列データ
・バスがブロックの各々に延びる。ブロック・イネーブ
ル線がオンの時選択されたブロックのアドレス回路が多
重チャネル直列データ・バスのチャネルの1つから複数
のプログラム可能論理素子またはタイルへデータを転送
することできるような形態で、セレクタ回路が各ブロッ
クのブロック・イネーブル線に接続される。
【0047】本発明には、例として次のような実施様態
が含まれる。 (1)外部ソースから複数の直列構成データ・チャネル
を受け取る少くとも1つの制御データ・ポートと、制御
データ・ポートから転送される複数の構成データ・チャ
ネルの経路を指定する制御バスと、複数のプログラム可
能ブロックと、各プログラム可能ブロックの範囲内に位
置し構成データを受け取り記憶する複数の記憶装置と、
各プログラム可能ブロックの範囲内に位置し制御バスの
1つのチャネルに接続しかつアドレス線を介して記憶装
置の各々に接続するアドレス回路と、を備えるプログラ
ム可能論理装置。 (2)プログラム可能ブロックの中の1つの故障が、そ
の他のプログラム可能ブロック、制御バスおよび少くと
も1つの制御データ・ポートのどれにも影響を及ぼさな
い、上記(1)に記載のプログラム可能論理装置。 (3)プログラム可能ブロックの各々に関するアドレス
回路および少なくとも1つのデータ線が、その他のプロ
グラム可能ブロック各々に関するアドレス回路および少
なくとも1つのデータ線と電気的に独立している、上記
(1)に記載のプログラム可能論理装置。 (4)記憶装置がN行およびM列のアレイとして構成さ
れ、アドレス回路が更に、少くとも1つのデータ線に接
続され、行レジスタからM列にわたってのみ延伸する行
線を有するNビット行レジスタと、少くとも1つのデー
タ線に接続され、列レジスタからN行にわたってのみ延
伸する列線を有するNビット列レジスタと、を備える上
記(1)に記載のプログラム可能論理装置。 (5)行レジスタおよび列レジスタが各々少くとも2つ
のデータ線に接続され、並列的にロードされる、上記
(4)に記載のプログラム可能論理装置。 (6)行レジスタおよび列レジスタが各々ただ1つのデ
ータ線に接続され、直列的にロードされる、上記(5)
に記載のプログラム可能論理装置。
【0048】(7)複数のプログラム可能な論理ブロッ
クを備え、プログラム可能論理ロジックの各々が、構成
データを受け取り記憶する複数の記憶装置と、プログラ
ム可能論理ブロックを使用可能にする信号を受け取るセ
レクト線と、複数の記憶装置に接続し、構成データを供
給する少なくとも1つのデータ線と、論理ブロックの中
の選択した数の記憶装置を使用可能にして、少くとも1
つのデータ線から構成データを記憶するアドレス回路
と、を含む、プログラム可能論理装置。 (8)アドレス回路が、第1のクロック線と、第2のク
ロック線と、データ線に接続したデータ入力、第1のク
ロック入力、およびセレクト線に接続したイネーブル入
力を有する第1のシフト・レジスタと、第1のシフト・
レジスタの各ビットから延伸してプログラム可能論理ブ
ロックの幅で終わる複数のアドレス線と、データ線に接
続したデータ入力、第2のクロック入力、およびセレク
ト線に接続したイネーブル入力を有する第2のシフト・
レジスタと、第2のシフト・レジスタの各ビットから延
伸してプログラム可能論理ブロックの幅で終わる複数の
データ線と、を備える上記(7)に記載のプログラム可
能論理装置。
【0049】(9)複数の記憶装置を有するプログラム
可能論理装置に構成データをロードする方法であって、
上記プログラム可能論理装置内の複数の記憶装置が少な
くとも2つのブロックに分散して配置されている記憶装
置の少なくとも1つのブロックをイネーブルさせるステ
ップと、選択された少くとも1つのブロックの範囲内の
選択された記憶装置をアドレス指定するステップと、選
択された記憶装置に構成データストリームの一部をロー
ドするステップと、構成データストリームが使用しつく
されるまで上記イネーブル、アドレス指定およびロード
のステップを反復するステップと、を含む方法。 (10)アドレス指定のステップが、選択された記憶装
置グループをイネーブルするため構成データストリーム
に行アドレスを与え、構成データストリームに列アドレ
スを与えることを含み、構成データストリームの一部を
ロードするステップが選択された機構装置グループに列
データを転送することを含む、上記(9)に記載の方
法。
【0050】
【発明の効果】本発明のプログラム可能論理装置によっ
て、設置場所でプログラム可能なゲート・アレイを構成
するために要する時間が短縮し、装置の物理的空間が最
小限にとどめられる。
【図面の簡単な説明】
【図1】本発明に従うプログラム可能論理装置を示すブ
ロック図である。
【図2】本発明に従う別のプログラム可能論理装置を示
すブロック図である。
【図3】本発明に従うブロック・セレクタ回路を示すブ
ロック図である。
【図4】図1のプログラム可能論理装置の論理ブロック
の好ましい実施形態を示すブロック図である。
【図5】図3の論理ブロックの詳細図である。
【図6】本発明の好ましい実施形態のプログラム可能論
理装置を動作させる際のタイミングを示すブロック図で
ある。
【図7】図5の好ましい実施形態の論理ブロックの部分
図である。
【図8】図7の論理ブロックに与えられる制御信号のタ
イミングを示すブロック図である。
【図9】図7の論理ブロックに与えられる制御信号の別
のタイミングを示すブロック図である。
【符号の説明】
100 プログラム可能論理装置(PLD) 101 制御論理回路 102 論理ブロック 103 多重チャネル・データ・バス 104 クロック・バス 105 I/Oポート 106 イネーブル・データ 201 データ・バス 202 双方向n+1ビット・バッファ 204 ブロック・セレクタ 205、206 マルチプレクサ 207 エラー検出回路 301 プログラム可能アレイ 302 データ・レジスタ 303 行セレクト・レジスタ 304 データ・クロック 305 行クロック 402、403 フリップフロップ回路 701 SRAMセル 702 反転ビット線 703 非反転ビット線 704、706 反転回路 707、708 書込みトランジスタ 709 ANDゲート 711 ワード線 716 読取りトランジスタ716

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】外部ソースから複数の直列構成データ・チ
    ャネルを受け取る少くとも1つの制御データ・ポート
    と、 制御データ・ポートから転送される複数の構成データ・
    チャネルの経路を指定する制御バスと、 複数のプログラム可能ブロックと、 各プログラム可能ブロックの範囲内に位置し、構成デー
    タを受け取り記憶する複数の記憶装置と、 各プログラム可能ブロックの範囲内に位置し、制御バス
    の1つのチャネルに接続し、かつアドレス線を介して記
    憶装置の各々に接続するアドレス回路と、 を備えるプログラム可能論理装置。
JP8315801A 1995-12-11 1996-11-27 プログラム可能論理装置 Pending JPH09238069A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/570,040 US5654650A (en) 1995-12-11 1995-12-11 High throughput FPGA control interface
US570,040 1995-12-11

Publications (1)

Publication Number Publication Date
JPH09238069A true JPH09238069A (ja) 1997-09-09

Family

ID=24277948

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8315801A Pending JPH09238069A (ja) 1995-12-11 1996-11-27 プログラム可能論理装置

Country Status (2)

Country Link
US (1) US5654650A (ja)
JP (1) JPH09238069A (ja)

Families Citing this family (39)

* 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
US5721498A (en) * 1995-12-11 1998-02-24 Hewlett Packard Company Block segmentation of configuration lines for fault tolerant programmable logic device
US5778199A (en) * 1996-04-26 1998-07-07 Compaq Computer Corporation Blocking address enable signal from a device on a bus
US5742531A (en) * 1996-05-03 1998-04-21 Xilinx Inc Configurable parallel and bit serial load apparatus
US5961576A (en) * 1996-05-03 1999-10-05 Xilinx, Inc. Configurable parallel and bit serial load apparatus
US5764076A (en) * 1996-06-26 1998-06-09 Xilinx, Inc. Circuit for partially reprogramming an operational programmable logic device
US5773993A (en) * 1996-09-26 1998-06-30 Xilinx, Inc. Configurable electronic device which is compatible with a configuration bitstream of a prior generation configurable electronic device
US5995988A (en) * 1997-12-04 1999-11-30 Xilinx, Inc. Configurable parallel and bit serial load apparatus
US6034538A (en) * 1998-01-21 2000-03-07 Lucent Technologies Inc. Virtual logic system for reconfigurable hardware
US6262596B1 (en) * 1999-04-05 2001-07-17 Xilinx, Inc. Configuration bus interface circuit for FPGAS
AU3229001A (en) * 2000-02-16 2001-08-27 Logic Research Co., Ltd. State machine, semiconductor device using state machine, and method of design thereof
US6542844B1 (en) 2000-08-02 2003-04-01 International Business Machines Corporation Method and apparatus for tracing hardware states using dynamically reconfigurable test circuits
US6605962B2 (en) 2001-05-06 2003-08-12 Altera Corporation PLD architecture for flexible placement of IP function blocks
US7020728B1 (en) * 2001-07-13 2006-03-28 Cypress Semiconductor Corp. Programmable serial interface
GB0122479D0 (en) * 2001-09-18 2001-11-07 Anadigm Ltd Method and apparatus for loading data into a plurality of programmable devices
US6996795B2 (en) * 2003-12-04 2006-02-07 International Business Machines Corporation Data processing in digital systems
US7193439B1 (en) * 2005-02-01 2007-03-20 Ilinx, Inc. Segmented configuration of programmable logic devices
US7550991B2 (en) * 2005-07-15 2009-06-23 Tabula, Inc. Configurable IC with trace buffer and/or logic analyzer functionality
US7375550B1 (en) * 2005-07-15 2008-05-20 Tabula, Inc. Configurable IC with packet switch configuration network
US7536668B1 (en) 2006-08-11 2009-05-19 Xilinx, Inc. Determining networks of a tile module of a programmable logic device
US7451424B1 (en) 2006-08-11 2008-11-11 Xilinx, Inc. Determining programmable connections through a switchbox of a programmable logic device
US7451425B1 (en) 2006-08-11 2008-11-11 Xilinx, Inc. Determining controlling pins for a tile module of a programmable logic device
US7472370B1 (en) 2006-08-11 2008-12-30 Xilinx, Inc. Comparing graphical and netlist connections of a programmable logic device
US7451420B1 (en) 2006-08-11 2008-11-11 Xilinx, Inc. Determining reachable pins of a network of a programmable logic device
US7451423B1 (en) * 2006-08-11 2008-11-11 Xilinx, Inc. Determining indices of configuration memory cell modules of a programmable logic device
US7584448B1 (en) 2006-08-11 2009-09-01 Xilinx, Inc. Constructing a model of a programmable logic device
US7839162B2 (en) 2007-06-27 2010-11-23 Tabula, Inc. Configurable IC with deskewing circuits
US7595655B2 (en) * 2007-06-27 2009-09-29 Tabula, Inc. Retrieving data from a configurable IC
US7501855B2 (en) 2007-06-27 2009-03-10 Tabula, Inc Transport network for a configurable IC
US7652498B2 (en) 2007-06-27 2010-01-26 Tabula, Inc. Integrated circuit with delay selecting input selection circuitry
US8412990B2 (en) * 2007-06-27 2013-04-02 Tabula, Inc. Dynamically tracking data values in a configurable IC
US7579867B2 (en) * 2007-06-27 2009-08-25 Tabula Inc. Restructuring data from a trace buffer of a configurable IC
US8069425B2 (en) 2007-06-27 2011-11-29 Tabula, Inc. Translating a user design in a configurable IC for debugging the user design
US8990651B2 (en) * 2007-09-19 2015-03-24 Tabula, Inc. Integrated circuit (IC) with primary and secondary networks and device containing such an IC
WO2009131569A1 (en) 2008-04-21 2009-10-29 Tabula, Inc. Configurable ic with packet switch configuration network
US8525548B2 (en) 2008-08-04 2013-09-03 Tabula, Inc. Trigger circuits and event counters for an IC
US8072234B2 (en) 2009-09-21 2011-12-06 Tabula, Inc. Micro-granular delay testing of configurable ICs
US20150012903A1 (en) 2013-07-04 2015-01-08 Tabula, Inc. Non-intrusive monitoring and control of integrated circuits
US11675947B2 (en) * 2021-04-26 2023-06-13 Nokia Solutions And Networks Oy Multidimensional FPGA virtualization

Family Cites Families (6)

* 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
US4870302A (en) * 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
US4855954A (en) * 1985-03-04 1989-08-08 Lattice Semiconductor Corporation In-system programmable logic device with four dedicated terminals
US5237218A (en) * 1991-05-03 1993-08-17 Lattice Semiconductor Corporation Structure and method for multiplexing pins for in-system programming
US5394031A (en) * 1993-12-08 1995-02-28 At&T Corp. Apparatus and method to improve programming speed of field programmable gate arrays
US5493239A (en) * 1995-01-31 1996-02-20 Motorola, Inc. Circuit and method of configuring a field programmable gate array

Also Published As

Publication number Publication date
US5654650A (en) 1997-08-05

Similar Documents

Publication Publication Date Title
JPH09238069A (ja) プログラム可能論理装置
US6501677B1 (en) Configuration memory architecture for FPGA
US5721498A (en) Block segmentation of configuration lines for fault tolerant programmable logic device
US5430687A (en) Programmable logic device including a parallel input device for loading memory cells
US5764079A (en) Sample and load scheme for observability of internal nodes in a PLD
JP2740063B2 (ja) 半導体記憶装置
US6876228B2 (en) Field programmable gate array
EP0437081B1 (en) Redundancy for serial memory
JPH06216757A (ja) 故障の代替のための予備回路を備えるプログラマブル・ロジック・デバイス
KR20090086616A (ko) 멀티―디바이스 시스템을 테스트하는 회로 및 방법
KR100197554B1 (ko) 반도체 메모리장치의 고속테스트 방법
KR101034967B1 (ko) 반도체 메모리 소자의 데이터 입출력 제어 회로 및 이를 이용한 데이터 입출력 방법
EP0366588A2 (en) Memory organization with arrays having an alternate data port facility
JPH09198874A (ja) ランダム・アクセス・メモリ・アレイ
US6907385B2 (en) Memory defect redress analysis treating method, and memory testing apparatus performing the method
US6801144B2 (en) Semiconductor memory device inputting/outputting data synchronously with clock signal
US6642743B2 (en) System for rapid configuration of a programmable logic device
US7064571B2 (en) Multiple-select multiplexer circuit, semiconductor memory device including a multiplexer circuit and method of testing the semiconductor memory device
US4970690A (en) Memory cell arrangement supporting bit-serial arithmetic
EP0776481B1 (en) Addressable serial test system
US5557618A (en) Signal sampling circuit with redundancy
JPH04270979A (ja) プログラマブル論理素子及びその試験方法
JP4151241B2 (ja) 半導体試験装置のピンレジスタ回路
JPH023197A (ja) デュアルポートメモリ
KR0172369B1 (ko) 반도체 메모리장치