JP2003324344A - プログラマブルロジック装置 - Google Patents

プログラマブルロジック装置

Info

Publication number
JP2003324344A
JP2003324344A JP2003032653A JP2003032653A JP2003324344A JP 2003324344 A JP2003324344 A JP 2003324344A JP 2003032653 A JP2003032653 A JP 2003032653A JP 2003032653 A JP2003032653 A JP 2003032653A JP 2003324344 A JP2003324344 A JP 2003324344A
Authority
JP
Japan
Prior art keywords
logic
mode
product term
memory
input
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
JP2003032653A
Other languages
English (en)
Inventor
Jason Cheng
ジェイソン・チョン
Cyrus Tsui
サイラス・ツーイ
Satwant Singh
サトワント・シン
Albert Chan
アルバート・チェン
Ju Shen
ジュ・セン
Clement Lee
クレメント・リー
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.)
Lattice Semiconductor Corp
Original Assignee
Lattice Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lattice Semiconductor Corp filed Critical Lattice Semiconductor Corp
Publication of JP2003324344A publication Critical patent/JP2003324344A/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/1776Structural details of configuration resources for memories
    • 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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables

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)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Static Random-Access Memory (AREA)

Abstract

(57)【要約】 【課題】プログラマブルロジック装置を提供する。 【解決手段】 プログラマブルロジック装置(100)
は、複数のロジックブロック(102)と、ブロック間
で信号を伝送するためのルーティングリソースとを含
む。ロジックブロックは、複数の積項回路とモード選択
回路とを含む。各積項回路は、構成セルとロジックゲー
トとを含む。各ロジックブロックは、RAM、デュアル
ポートRAM、ROM、CAM、FIFOおよびスイッ
チのような、積項ロジック機能およびメモリ機能を行な
うよう構成可能である。

Description

【発明の詳細な説明】
【0001】
【引用による援用】以下の、同一人に譲渡された米国特
許出願および特許は、この明細書中にすべてを引用によ
り援用される:(1)2000年11月2日に出願され
た、「ワイド入力プログラマブルロジックシステムおよ
び方法(Wide Input ProgrammableLogic System And Me
thod)」(代理人整理番号M−9200)と題された米
国特許出願第09/704487号、および(2)19
99年5月26日に出願された、「実質的に電力消散の
ない、電気的に消去可能な不揮発性メモリセル(Electr
ically Erasable Non-Volatile Memory Cell With Virt
ually No Power Dissipation)」(代理人整理番号M−
7435)と題された米国特許第6,067,252
号。
【0002】
【優先権の主張】この特許出願は、この明細書中にすべ
てを引用により援用される、2002年2月11日に出
願された、「汎用ロジックブロックを備えたデバイスお
よび方法(DEVICE AND METHOD WITH GENERIC LOGIC BLO
CKS)」と題された、同一人に所有される米国仮特許出
願第60/356,507号に優先権を主張する。
【0003】
【技術分野】この発明は一般に、プログラマブルなデバ
イスに関する。特定的に、この発明は、汎用ロジックブ
ロックを備えたプログラマブルなデバイスおよび方法に
関する。
【0004】
【背景】データ通信および電気通信システムにおいて、
フィールドプログラマブルゲートアレイ(FPGA)お
よびプログラマブルなロジックデバイス(PLD)が用
いられてきた。
【0005】従来のPLDおよびFPGAは、予め定め
られた数の構成不可能なブロックを有し、各ブロックは
予め定められた機能を実行する。現在利用可能なCPL
D製品の中には、ロジックセルのアレイを含むものがあ
る。高密度のCPLD製品にはメモリモジュールが含ま
れ得る。メモリモジュールは一般にSRAMに限定され
る。従来のPLD装置および方法には、回路板上のフッ
トプリントの要求基準、速度の制限およびデータ処理能
力の制限等のいくつかの欠点がある。
【0006】
【特許文献1】米国特許第6,067,252号
【0007】
【概要】この発明の一局面は、プログラマブルなデバイ
スに関する。このデバイスは、複数の汎用ロジックブロ
ックを含む。各汎用ロジックブロックは、積項回路のア
レイを含む。各積項回路は複数のCMOS回路を含む。
積項回路の各アレイは、積項ロジック機能およびメモリ
機能を実行するよう構成され得る。
【0008】この発明の別の局面は、プログラマブルな
デバイスを構成する方法に関する。この方法は、積項ロ
ジック機能およびメモリ機能を実行するよう、プログラ
マブルなデバイス内に汎用ロジックブロックを構成する
ステップを含み、各汎用ロジックブロックは、実質的に
同じ構造を有する。
【0009】この発明の別の局面は、プログラムなデバ
イス内のロジックブロックに関する。このロジックブロ
ックは、積項回路のアレイを含む。各積項回路は、複数
のCMOS回路を含む。アレイは、積項ロジック機能お
よびメモリ機能を実行するよう構成され得る。
【0010】この発明の別の局面は、プログラマブルな
ロジックデバイス内の構成可能なロジックブロック内の
マクロセルに関する。汎用ロジックブロックは、ロジッ
ク機能およびメモリ機能を実行するよう構成され得る。
汎用ロジックブロックは複数の積項回路を含む。各積項
回路は複数のCMOS回路を含む。マクロセルは、構成
可能な組の積項回路によってデータ出力を記憶するよう
構成されるレジスタを含む。
【0011】異なる図面で同じ参照記号を用いることに
より、同様のまたは同一の項目を示す。
【0012】[詳細な説明]この発明は、従来のPLD
およびFPGAにおけるメモリ対ロジックブロックの予
め定められた比率が、しばしば、特定のユーザアプリケ
ーションには望ましいものではないことを認識してい
る。ユーザが所望する、メモリ対ロジックの比率を決定
することはいつも難しい。所望の比率は、特定のシステ
ムアプリケーションに依存して、たとえば50%より大
きいか、または10%未満のようにさまざまである。
【0013】この発明に従い、構成可能な汎用ロジック
ブロックを備えたプログラマブルなデバイスと、プログ
ラマブルなデバイスを用いる方法とを提供する。一実施
例において、プログラマブルなデバイスは、複数の汎用
ロジックブロック(GLB)を備えたマイクロチップを
含む。プログラマブルなデバイスは、極めて高いゲート
密度の、たとえば100万を超えるシステムゲートを備
えた、汎用不揮発性ワイド入力プログラマブルデバイス
であり得る。
【0014】各汎用ロジックブロックの構造は、実質的
に同じであり得るが、各汎用ロジックブロックは、複雑
なプログラマブルロジックデバイス(CPLD)、演算
ユニット、構成可能なランダムアクセスメモリ(RA
M)、デュアルポートRAM、構成可能な読出専用メモ
リ(ROM)、構成可能な連想記憶装置(CAM)、構
成可能なファーストインファーストアウトメモリ(FI
FO)および/または構成可能なスイッチとして働くよ
う構成され得る。汎用ロジックブロックは、PLDのデ
ータ処理能力、柔軟性、スケーラビリティおよび速度を
改善し、より小さなフットプリント(マイクロチップ上
においてより少ないスペース)を用いる。
【0015】一実施例において、プログラマブルなデバ
イスは、第1の機能を実行するよう構成され得る1つ以
上の汎用ロジックブロックを有し、1つ以上の他の汎用
ロジックブロックは、第2の機能を実行するよう構成さ
れる。たとえば、プログラマブルロジックデバイス内の
1つの汎用ロジックブロックはRAMとして構成され、
他の2つのブロックはFIFOとして構成され、3つの
ブロックのすべてが同じ構造を有する。ユーザアプリケ
ーションは、PLDの汎用ロジックブロックを、どのよ
うな比率のロジック、RAM、ROM、CAM、FIF
O、およびスイッチ機能にも構成することができる。し
たがって、メモリ対ロジックのどのような比率を構成し
ても、システムの機能は実現され得る。構成可能な汎用
ロジックブロックは、さまざまなシステム設計の目標に
適合する、同質の設計環境を提供する。
【0016】この発明に従い、多目的汎用ロジックブロ
ックの各々は、構成可能なANDアレイを用いて、ロジ
ック、SRAM、デュアルポートSRAM、ROM(非
活性化された書込ポートを備えたRAM)、FIFO、
CAM、またはダイナミックな接続性、クロスポイント
スイッチ機能を最小のオンチップロジックで実現する。
一実施例において、ANDアレイはnチャネルMOS
(NMOS)ゲートを備えた低電力相補型金属酸化膜半
導体(CMOS)を含む。別の実施例では、ANDアレ
イは1つ以上のセンスアンプを含む。
【0017】一実施例において、ANDアレイのCMO
S回路は、有利にも直流(DC)電力の消費または消散
が実質的にゼロである。センスアンプを備えたPLDデ
バイスとは対照的に、この発明に従ったプログラマブル
なデバイスのCMOS回路は、メモリセルのサイズを縮
小し、メモリセルのマージンを増大してメモリセルのス
トレスを減少させ、デバイスのゲート密度をより高くす
ることができ、直流および電圧の要件を減じ、半導体プ
ロセスに対応する速度の利点を提供する。
【0018】別の実施例において、プログラマブルなデ
バイスは、直流(DC)電力の消費または消散が実質的
にゼロである入力/出力セルに結合される。
【0019】一実施例では、プログラマブルなデバイス
の各汎用ロジックブロックを、第1のポートおよび第2
のポートを備えたデュアルポートRAMとなるよう構成
することができる。各ポートは、メモリからデータを書
込むか、またはデータを読出すよう構成される。
【0020】一実施例において、各汎用ロジックブロッ
クは、マルチプレクサ、アドレスデコーダ、および/ま
たは極性制御回路等の内部ハードワイヤド制御ロジック
をさらに含む。一実施例において、すべての制御ロジッ
クはハードウェア内で実現され、各汎用ロジックブロッ
ク内に自蔵される。汎用ロジックブロックは有利にも、
CPLD、デュアルポートRAM、ROM、FIFO、
CAM、およびスイッチ動作を実行するために追加のロ
ジックを必要としない。
【0021】一実施例において、プログラマブルなデバ
イスは、1つ以上の汎用ロジックブロックに結合された
ハードワイヤド制御ロジックをさらに含む。ハードワイ
ヤド制御ロジックは、1つ以上の汎用ロジックブロック
を制御するよう構成される。
【0022】一実施例において、プログラマブルなデバ
イスは、積項を1つの汎用ロジックブロックから別の汎
用ロジックブロックへカスケードすることができる。
【0023】一実施例において、プログラマブルなデバ
イスの各汎用ロジックブロックは、複数の構成可能なマ
クロセルを含む。各マクロセルは上述の機能、すなわ
ち、CPLD、演算、RAM、ROM、CAM、スイッ
チ、またはFIFOのうちの1つに従って動作するよう
構成され得る。
【0024】一実施例において、プログラマブルなデバ
イスは、マクロセル間で積項を共有するよう構成された
積項共有アレイをさらに含む。
【0025】一実施例において、プログラマブルなデバ
イスは、積項を2つ以上のマクロセルから積項のチェイ
ンへと拡張するよう構成された積項チェインロジックを
さらに含む。
【0026】一実施例において、各汎用ロジックブロッ
クは、メモリ機能および入力ルーティングを実行するよ
う構成され得る。(汎用ロジックブロック内に構成され
た)メモリモジュールにルーティングされた、グローバ
ルルーティングリソースからの入力信号は、予め定めら
れたシーケンスまたは順序にあるべきであり、すなわ
ち、特定のデータ入力ピンおよびアドレス入力ピンで受
けられるべきである。対照的に、汎用ロジックブロック
がロジックを実行している場合、グローバルルーティン
グリソースからの入力信号は、予め定められたシーケン
スにあるよう求められなくてもよく、したがって、入力
のルーティングの改良は必要とされなくてもよい。この
発明に従った構成可能な入力ルーティングリソースは、
メモリの入力ルーティング要件を満たし、汎用ロジック
ブロックがロジックを実行する際にルーティングのオー
バーヘッドの増大を防ぎ、プログラマブルなデバイスの
ダイのサイズを減じる。なぜなら、グローバルルーティ
ングリソースを減じられるからである。
【0027】一実施例において、各汎用ロジックブロッ
クは、上述の機能、すなわち、CPLD、演算、RA
M、ROM、CAM、スイッチ、またはFIFOのうち
の2つ以上を同時に実行するよう構成され得る。
【0028】一実施例において、各汎用ロジックブロッ
クは、プログラマブルな幅変調により、ファーストイン
ファーストアウトメモリ等のメモリとして機能するよう
構成され得る。メモリの入力および出力のポート幅は、
入力ポートの幅が出力ポートの幅と異なって構成される
よう、構成され得る。加えて、メモリの幅(記憶された
ワードの各々のサイズ)および深さ(記憶されたワード
数)を構成することができる。
【0029】図1は、複数の汎用ロジックブロック10
2A−102Hを備えたプログラマブルなデバイス10
0の一実施例を示す。プログラマブルなデバイス100
は、1つのマイクロチップ上に実現され得る。図1−図
2には8つの汎用ロジックブロック(GLB)102A
−102Hがあるが、プログラマブルなデバイス100
の他の実施例が、16、32、64、1000、または
10,000個のGLB等の、任意の好適な数のGLB
を有してよい。また、汎用ロジックブロック102A−
102Hは、多くの異なる構成で配置されてよい。
【0030】図1において、GLB102A−102H
は、データ信号および制御信号等の信号をグローバルル
ーティングプール(GRP)またはバス110を介して
送受信する。デバイス100はまた、電源が入る(powe
r-up)と制御信号および命令をGLB102A−102
Hに転送する、EEPROM等の絶縁された不揮発性メ
モリブロックを有してよい。
【0031】図2は、第1のGLB102A等の各GL
B102が、他の要素に加えて複数のマクロセル104
A−104Mを含む、図1のプログラマブルなデバイス
100を示す。各GLB102は、任意の好適な数のマ
クロセル104を含んでよい。一実施例において、各G
LB102は、32個のマクロセル104を有し、8個
のGLB102A−102Hは合計256個のマクロセ
ル104を有する。別の実施例では、64個のGLBが
合計2048個のマクロセル104を有する(各GLB
102は32個のマクロセル104を有する)。
【0032】汎用ロジックブロック102A−102H
は、「汎用」または「同質」と称され得る。なぜなら、
各汎用ロジックブロック102の構造が同様だからであ
る。しかしながら、各ブロック102は、1つ以上の機
能、たとえば、複雑なプログラマブルロジック、演算、
ランダムアクセスメモリ(RAM)、読出専用メモリ
(ROM)、連想記憶装置(CAM)、ファーストイン
ファーストアウトメモリ(FIFO)、またはスイッチ
ングを実行するよう別個に構成され得る。同様に、各マ
クロセル104(図2)は、複雑なプログラマブルロジ
ックモード、演算モード、RAMモード、ROMモー
ド、CAMモード、FIFOモード、またはスイッチモ
ードで動作することができる。
【0033】1レベルの一般的なルーティングプール1
10を備えた一実施例では、各マクロセル104および
入力パッド242(図4−図7)からのルーティングワ
イヤがマイクロチップ全体に及び、デバイス100のG
RP110を介してANDアレイ入力にフィードバック
する。
【0034】2レベルのルーティングまたはセグメント
ルーティング 図3は、複数のGLB124を有しかつ2レベルのルー
ティングを行なうデバイス120の一実施例を示す。第
1のレベルのルーティング126A等の、ルーティング
の第1のレベル(「レベル1ルーティング」または「1
レベルルーティング」とも称される)は、第1の4つの
GLB124A−124D等の4つのGLBを結合す
る。4つのGLBの各群、たとえば第1の4つのGLB
124A−124Dは、第1のセグメント122A等の
「セグメント」と称され得る。ルーティングの第1のレ
ベル126Aは、セグメントルーティングプール(SR
P)と称され得る。セグメントルーティングは、全体の
ルーティングリソースを節約する。セグメント122A
−122Fは、ルーティングの第2のレベル126
(「レベル2ルーティング」、「2レベルルーティン
グ」または全体ルーティングとも称される)を介して互
いに結合される。
【0035】高性能「ゼロ電力」積項ロジック センスアンプは、メモリセルを検知するためにDC電流
を必要とする。センスアンプに多くの電流を与えるほ
ど、センスアンプの動作は速くなる。したがって、性能
と消費電力との間にトレードオフがある。たとえば、或
るセンスアンプは1nsの積項遅延を伴なって設計され
てよく、800uAの電流を消費する。別のセンスアン
プは300uAで5nsの積項遅延で設計され得る。
【0036】或るメモリ回路の一例では、164x16
=2,624個のセンスアンプがある。総ICC目標が1
Ampであり、AC電流の目標が400mAであり、D
C電流の目標が600mAであって、実質的にすべての
DC電流がセンスアンプからのものである場合、その回
路はセンスアンプ1つにつき285uAしか用いること
ができない。これは、カスタマアプリケーションにおい
てセンスアンプの80%しか用いられていないことに基
づく。この回路は、センスアンプからのみでも5nsの
伝搬遅延を伴ない得る。この遅延は、いくつかのカスタ
マアプリケーションにとっては長すぎるおそれがある。
【0037】この回路をより高速にするために、800
uAを消費して1つの以上のセンスアンプを1nsでオ
ンにするプログラマブルなオプションを回路に与えるこ
とができる。このような高性能にプログラムされたセン
スアンプの各々は、3つの低電流センスアンプのICC
蓄えから電流を取る。デザインソフトウェアは、各カス
タマアプリケーションに対し、総ICCDC電流を計算す
る必要があり得る。
【0038】センスアンプの用途はカスタマアプリケー
ションごとに異なり得る。PTをあまり用いないアプリ
ケーションもあれば、より多くのPTを用いるアプリケ
ーションもある。PTをあまり用いないカスタマアプリ
ケーションは、より高性能の、オプション装着されたセ
ンスアンプを用いることができる。典型的なカスタマア
プリケーションでは、PTの50%が用いられる。この
ことは、すべてのPTが遅いが、PTの10%のみが重
要な信号用に高速であることを意味する。
【0039】以下に述べるとおり、この発明に従ったG
LB102の一実施例は、DC電流の消費がゼロである
CMOS回路を含む。したがって、電流量を減じるため
に、GLB102は性能を低速にする必要がない。各積
項は、1nsの速度等級である。これらのGLB102
を備えたデバイスは、顧客の設計プロセスを簡素化する
ことができる。なぜなら、顧客はどの信号が重要である
かを決定する必要がないからである。顧客はまた、顧客
のアプリケーションのほとんどに対して、より遅いPT
を容認する必要がない。システム性能の全体が最適化さ
れる。積項を生成するための、ゼロDC電流のCMOS
回路(以下に述べる)を備えたデバイスの利点は、高密
度CPLDにおいてより顕著になる。
【0040】一実施例において、図1−図3におけるプ
ログラマブルなデバイス100および120は、直流
(DC)電力の消費または消散が実質的にゼロであるロ
ジックを含む。たとえば、図1−図3のデバイス100
および120の汎用ロジックブロック102の各々は、
複数の「ゼロ電力」積項回路208を含み得る(図4−
図7および図69等)。積項回路208は不揮発性メモ
リセルとして構成されてよい。「ゼロ電力」メモリセル
のいくつかの例は、本出願の譲受人によって2000年
11月2日に出願された、代理人整理番号M−9200
の「ワイド入力プログラマブルロジックシステムおよび
方法(Wide Input Programmable Logic System And Met
hod)」と題された米国特許出願第09/704487
号、および(2)本出願の譲受人によって1999年5
月26日に出願された、代理人整理番号M−7435の
「実質的に電力消散のない電気的に消去可能な不揮発性
メモリセル(Electrically Erasable Non-Volatile Mem
ory Cell With Virtually NoPower Dissipation)」と
題された米国特許第6,067,252号に記載され
る。両方の出願がこの明細書中にそのすべてを引用によ
って援用される。
【0041】「ゼロ電力」メモリセルは、トランジスタ
およびラッチ(またはハーフラッチ)を備え、さらに、
一定の信号タイミングおよびプリチャージの方法をと
り、通常動作モードおよびプログラミングまたは消去等
の編集モード中に、電流がメモリセルの1つ以上のトラ
ンジスタに流れることを防ぐ構成を有してよい。
【0042】別の実施例において、図1−図3のプログ
ラマブルなデバイス100および120は、直流(D
C)電流の消費または消散が実質的にゼロである入力/
出力セルに結合される。
【0043】ロジック/演算モード 図4−図7は、ロジック/演算モードに構成された、図
1のGLB102の一実施例を示す。図4−図7のGL
B102は、32個のマクロセル104A−104Z
(32個のマクロセル等)、ANDアレイ200、積項
共有アレイ(PTSA)202、セグメントルーティン
グバス204、第1のデマルチプレクサ210A等の複
数のデマルチプレクサ、第1の6入力ORゲート212
A等の複数の6入力ORゲート、第1の5入力ORゲー
ト214A等の複数の5入力ORゲート、およびORゲ
ート216A等の複数の可変入力ORゲートを含む。簡
単にするために、この明細書で文字「Z」が付された参
照番号はいずれも、任意のn番目の要素を指すことがで
き、26番目の要素に限定されない。たとえば「マクロ
セル104A−104Z」は、「マクロセル104Z」
が32番目のマクロセルを指す場合、32個のマクロセ
ルを指すことができる。
【0044】図4−図7のANDアレイ200は、68
個の入力ラインと164個の積項出力ラインとを有す
る。他の実施例において、ANDアレイ200は任意の
好適な数の入力ラインおよび積項ラインを有してよい。
以下に述べるとおり、ANDアレイ200は、積項ロジ
ック、またはSRAM、デュアルポートSRAM、RO
M、FIFO、CAM、およびクロスポイントスイッチ
等のメモリ機能のいずれかを、入力ルーティングによっ
て実行するよう構成され得る。
【0045】図4−図7において、164個の積項ライ
ンは、1マクロセル104当り5つの積項ラインに32
個のマクロセル104A−104Zを乗じたもの(5x
32=160)に加え、4つの余分な積項ライン160
−163を含む。4つの余分な積項ライン160−16
3は、マクロセル104A−104Zによって共有され
得る、CLOCK ENABLE信号ライン160、C
LOCK信号ライン161、RESET信号ライン16
2、およびグローバル積項出力イネーブル(グローバル
PTOE)バス信号ライン163を含む。ANDアレイ
200は、第1のポート206A等の複数の反転/非反
転入力ポートと、複数の積項回路208A−208Zと
を含む。
【0046】各積項回路208は特定の積項(PT)に
従い、ポート206A−206Zからの1つ以上の反転
および/または非反転入力信号を総和する。各積項回路
208は、PTをデマルチプレクサ210に出力し、こ
のデマルチプレクサはそのPTを6入力ORゲート21
2、5入力ORゲート214、および/またはマクロセ
ル104に出力する。
【0047】図4−図7の各マクロセル104は、PT
SA入力ライン218、PTSAバイパスライン22
0、PT出力イネーブル(PTOE)ライン222、P
Tクロックライン224、PTリセットライン226、
PTプリセットライン228、共有PTクロックイネー
ブルライン230、共有PTクロックライン232、共
有PTリセットライン234、グローバルPTOEライ
ン236、第1の出力ライン238、および第2の出力
ライン240を有する。
【0048】RCSFモード 図8は、RAM、ROM、CAM、スイッチおよび/ま
たはFIFOモード(まとめてRCSFモードと称す
る)に構成された、図1のGLB102の一実施例を示
す。図8のGLB102は、32個のマクロセル104
A−104Z(簡単にするために、104A−104Z
は32個のマクロセルを指すものとする)、RCSF
ANDアレイおよび制御ロジックユニット250、PT
SA202、セグメントルーティングバス204、なら
びにORゲート216A等の複数の可変入力ORゲート
を含む。RCSF ANDアレイおよび制御ロジックユ
ニット250は、図4−図7のANDアレイ200とR
CSF制御ロジックとを含み、これは図70−図78を
参照して以下に説明される。PT160−162はシン
グルポートのRAM、ROM、CAM、スイッチ、およ
びFIFOモードのAND PTとして構成され得る。
【0049】デュアルポートRAMモード 図9は、デュアルポートメモリモードで構成された、図
1のGLB102の一実施例を示す。図9のGLB10
2は、32個のマクロセル104A−104Z(簡単に
するために、104A−104Zは32個のマクロセル
を指すものとする)、デュアルポートRAM ANDア
レイおよび制御ロジックユニット260、積項共有アレ
イ202、セグメントルーティングバス204、および
ORゲート216A等の複数の可変入力ORゲートを含
む。デュアルポートRAM ANDアレイおよび制御ロ
ジックユニット260は、図4−図7のANDアレイ2
00とデュアルポートRAM制御ロジックとを含み、こ
れは図70および図73−図76を参照して以下に説明
される。PT160−162はデュアルポートSRAM
(スタティックランダムアクセスメモリ)モードで入力
をルーティングする。デュアルポートSRAMモードに
おいて、CLOCK、CLOCK ENABLEおよび
リセットPTのラインは2つのラインに分割され、ライ
ンの各組は16個のマクロセルを駆動する。
【0050】マクロセル 図10は、図2のマクロセル104および周辺ロジック
の一実施例を示す。「マクロセル」104は、図10に
示される構成要素のいくつかまたはすべてを含み得る。
一構成において、図10のマクロセル104は、CAR
RY INライン302、CARRY OUTライン3
04、XORゲート306、3入力MUX334Aおよ
び334D、XORゲート312、2入力MUX300
Lおよび300K、第2の3入力MUX334E、第1
の8入力MUX318、第2の8入力MUX320、O
Rゲート322、Dレジスタ/ラッチ324、第1の4
入力MUX326、第2の4入力MUX328、ならび
に第2の2入力MUX300Mを含む。これらのMUX
およびXORゲートのうちの1つ以上が「マクロセル」
の外に置かれてよい。マクロセル104は、データ出力
ルーティングプール(ORP)330に結合される。
【0051】一構成において、図10の周辺ロジック
は、他のマクロセル104(図4−図9)からの入力ラ
イン332、積項回路208A−208Eのアレイ、デ
マルチプレクサ210A−210E、2入力マルチプレ
クサ(MUX)300A−300J、3入力MUX33
4B−334C、データ入力ライン336、5入力OR
ゲート214、6入力ORゲート212、拡張された積
項共有アレイ(PTSA)202を含む。一構成におい
て、PTSA202は図4−図7のORゲート216を
含む。
【0052】図4−図7に示され、上に説明された入力
ラインに加え、図10のマクロセル104は、CLK
0、CLK1、CLK2、CLK3の信号をそれぞれ運
ぶ4つのクロックライン332を有する。一実施例で
は、CLK ENABLE信号をCLK1およびCLK
2の信号から生成することができ、CLK0およびCL
K3の信号は位相ロックループ(PLL)クロック信号
であり得る。
【0053】Dレジスタ/ラッチ324を、レジスタま
たはラッチとなるようプログラムすることができる。マ
クロセル104からの出力は、記録されるか(Dレジス
タ324からの出力)、組合せられるか(PTSAバイ
パスライン220またはバイパスライン338からの出
力)のいずれかである。図10のマクロセル104は、
2つの独立した出力MUX326および328を有す
る。第1の出力MUX326は、出力ライン238を介
してI/Oバッファまたはパッド242の出力側を駆動
する。第2の出力MUX328は、出力ライン240を
介してGRP110(図1)を駆動する。したがって、
ライン238および240の出力は異なり得る。
【0054】図10のマクロセル104は、5つの積項
回路208A−208Eからの5つのPTからなるそれ
自身の組を有し、それが5入力ORゲート214を駆動
する。5入力ORゲート214の出力は、ライン220
を介してPTSA202をバイパスして、マクロセル1
04を駆動する。5入力ORゲート214は、信号をマ
ルチプレクサ334Dに出力することができ、このマル
チプレクサは、複雑なロジック機能用に、信号をXOR
ゲート312に出力する。一実施例において、各マクロ
セル104に関連する5つのPTのうちの4つは、積項
ロジック、積項制御(クロック、プリセット、リセッ
ト、出力イネーブル)、またはロジックおよび制御の両
方を同時に行なうために用いられる。ロジックおよび制
御の両方を同時に行なうために、各PTを用いてよい。
5つのPTのうちの残りのPTを、ロジック専用に用い
ることもできる。
【0055】桁上げ生成および桁上げ伝搬 いかなるロジック機能もブール(Boolean)式によって
表わされ得る。ブール式は、ともに論理和をとったいく
つかの積項(PT)として表わされ得る。頻繁に用いら
れる多くの機能は、当然ながら演算である。演算出力の
最上位ビット(MSB)は、より下位のビットの評価に
依存する。従来のCPLDでMSB機能を実現すること
は、ワイドOR機能、またはロジックのマルチレベルロ
ジックユニットへのカスケードを必要とする。ワイドO
R機能はロジックリソースを必要とする。また、従来の
CPLDは、ワイドOR機能と合せると効率的ではな
い。なぜなら、CPLDは、利用できる積項の総数が限
られているからである。カスケードされたロジックは性
能を低下させる(複数レベルのロジックによる長い処理
時間)。
【0056】この発明によると、フレキシブルCPLD
マクロセル104(図10)は、従来のCPLDが実現
するには効率的ではない機能を実現するよう構成され
た、(1)桁上げの生成および伝搬のロジック、ならび
に(2)総和生成ロジックを埋込んだ。フレキシブルC
PLDマクロセルアーキテクチャは、一般的に用いられ
る多くの機能を実現するのに必要とされる積項の数を大
いに減じ、CPLDの機能性および性能を高める。
【0057】図10において、マクロセル104は、C
ARRY INライン302、MUX300K、CAR
RY OUTライン304、ORゲート214、MUX
210B、および積項回路208B等のプログラマブル
な桁上げの生成および伝搬のロジック構成要素を含む。
CARRY INライン302およびCARRY OU
Tライン304は、他のマクロセルに結合される。プロ
グラマブルな桁上げの生成および伝搬のロジック構成要
素208B、210B、214、300K、302、お
よび304は、評価されるべき、より下位のビットに対
して高速経路を設ける。したがって、マクロセル104
は、ワイドOR機能またはカスケードされたロジックを
必要としない。プログラマブルな桁上げの生成および伝
搬のロジック構成要素208B、210B、214、3
00K、302、および304は、加算器、減算器、お
よび比較器(より大きい、より少ない、以上、以下、ま
たは等しい)の機能を実現することができる。
【0058】図10のマクロセル104の、ORゲート
214およびORゲート212に結合されたCarry Inラ
イン/信号302およびXORゲート306は、加算器
または減算器の機能用にSUMビット等の桁上げ入力が
用いる機能を生成するよう構成される。
【0059】積項の共有 図10の拡張されたPTSA202は、図4−図9のP
TSA202およびORゲート216を示す。図10の
拡張されたPTSA202により、各マクロセル104
は、他のマクロセル104A−104ZとPTを共有す
ることができる(図4−図7)。一実施例において、図
10のマクロセル104は、他の6つのマクロセル10
4A−104Zと最大35個のPTを共有することがで
きる(図4−図7)。たとえば、特定のマクロセル10
4によって用いられないPTは、6入力ORゲート21
2によって組合され、PTSA202を介して近隣のマ
クロセル104にルーティングされ得る。別の例では、
他のマクロセル104と関連する、使用されていない積
項は、1つのマクロセル104に再利用されて、そのマ
クロセルのOR機能の幅を拡張することができる。
【0060】たとえば、マクロセル104D(図示せ
ず)は、それ自身の5つのPTを用い、マクロセル10
4Dの一方側では3つのマクロセル104A−104C
から15個のPTを共有し(図4−図7)、マクロセル
104Dの別の側では拡張されたPTSA202を介し
て3つのマクロセル104E−104G(図示せず)か
ら15個のPTを共有することができる。PTSA20
2は、第1のマクロセル104Aがマクロセル104B
−104Dおよびマクロセル104X−104ZとPT
を共有できるよう、GLB102の上部と下部とが重な
り合う。他の実施例において、マクロセル104は、3
5個未満、または35個より多いPTを共有するよう構
成され得る。
【0061】各マクロセル104が各側の3つのマクロ
セル104からPTを共有する必要はない。たとえば、
各マクロセル104は、プログラマブル性を最大にする
ために、他のマクロセル104の各々のパターンまたは
ランダムなパターンで、PTを共有することができる。
【0062】積項チェイニング 図10の6入力ORゲート212は拡張されたPTSA
202を駆動して、PTが「チェイン」に拡張されるよ
うにする。たとえば、6入力ORゲート212の6番目
の入力ライン335は、N−7番目のマクロセル(6つ
のマクロセルを飛ばす)から6番目の入力332を受け
ることによってPTを「チェインする」。チェイニング
は、マクロセル104A(図4−図7)がマクロセル1
04Zから入力を受けるよう、重なり合うことができ
る。
【0063】6入力ORゲート212の6番目の入力ラ
イン335は、N−7番目のマクロセルに接続される必
要がない。6入力ORゲート212の6番目の入力ライ
ン335は、PTSA202を介してマクロセル104
にアクセスし得ない任意のPTに接続されてよい。たと
えば、積項共有アレイ202が他のマクロセル104の
各々間で積項を共有するよう配置される場合、各マクロ
セル104は、1つ以上のN−1個のマクロセルにチェ
イニングされ得る。
【0064】積項のカスケーディング 図2のデバイス100は極めてワイドな入力機能に適応
することができる。図2の各GLB102は、最大68
の入力幅の機能を実現することができる。GLB102
Bおよび102C等の2つの隣接するGLBを「カスケ
ード」することにより、各PTの入力幅を2倍にするこ
とができ、これらの2つのGLBは最大136(68+
68)の入力の機能を実現することができる。図2は、
GLB102A−102D等の、カスケードされ得る少
なくとも4つのGLBを示す。カスケードされ得るGL
Bの数は、デバイス100のGLB102のレイアウ
ト、およびデバイス100が単一レベルルーティング
(図2のデバイス100等)または二重レベルルーティ
ング(図3のデバイス120等)のいずれを行なうかに
依存する。図3の二重レベルルーティング(2レベルル
ーティング)により、より多くのGLBをセグメント1
22A−122F等の群にカスケードすることができ
る。
【0065】図11は、図2のGLB102Aおよび1
02B等の、2つの別個のGLB内の2つのマクロセル
104Bおよび104B’のPTをカスケードする一実
施例を示す。図11において、マクロセル104Aおよ
び104A’の各々は、5つのPTと68の入力からな
るそれ自身の組を有する。第1のGLB102A内の第
2のマクロセル104BのPTは、第2のGLB102
B内の第2のマクロセル104B’のPTとカスケード
される。特に、5つの積項回路208F−208JのP
Tは、第1のGLB102A内で第2のマクロセル10
4Bをバイパスし、ライン401A−401Eを介し
て、第2のGLB102B内の第2のマクロセル104
B’と関連する5つの積項回路208F’−208J’
に入る。5つの積項回路208F’−208J’は、そ
れ自身の68の入力を5つの積項回路208F−208
JからのPTと組合せる。
【0066】第1のGLB102A(図11)を「フィ
ーダ」と称することができ、第2のGLB102Bを
「レシーバ」と称することができる。マクロセル104
Bは、それ自身の5つのPTは受けない。しかしなが
ら、マクロセル104Bは、(1)ロジック機能のため
に、およびPTをPTSA202を介して他のマクロセ
ルから借りるために(図4−図7)、または(2)I/
Oパッド242に結合された入力レジスタとして(図1
0)、用いられ得る。
【0067】図4−図7の4つの制御PT(CLOC
K、CLOCK ENABLE、RESET、GPTO
E)は、各制御PTが68の入力を有する場合、幅を拡
張するために個別にカスケードされてよく、または、別
のGLB102からの同じ制御PTとカスケードされて
よい。
【0068】分割ANDアレイw/分割積項 図12は、RAM、ROM、CAM、スイッチ、または
FIFO(RCSF)モードに構成された、図8のGL
B102内の「分割ANDアレイ」の一実施例を示す。
図4−図7のANDアレイ200は、図12において、
上部(ANDアレイ回路402A−402Z)と、RC
SFアレイ412として機能する下部とに「分割」され
る。以下に述べるとおり、図17および他の図面もまた
「分割ANDアレイ」を示す。
【0069】RCSFモードの一実施例では、図12に
おいてANDアレイ回路402A−402Zによって形
成された第1の36個のPT(0から35)の各々(図
4−図7のANDアレイ積項回路208と同様)は、分
割積項回路408A−408Zおよび410A−410
Zによって「分割」されて、より多くのANDアレイ出
力404A−404Zを設けることができる。たとえ
ば、1PT当り2つに分割された出力に36個のPTを
乗じると、72個の「分割出力」または「分割積項」と
なる。
【0070】図12において、72個の分割された出力
404A−404Zを形成するためにANDアレイ出力
を分割することにより、ANDアレイ200のより小さ
な部分(図4−図7)が図17のスイッチマトリクス6
24A(すなわち、入力ルーティングリソースまたは入
力スワッピングスペース)に分配されて、図12のRC
SFアレイ412または図17のRAMアレイ600A
のRCSF機能に利用することのできるPTの数を増大
させることができる。したがって、RCSFアレイ41
2(図11−図12)およびRAMアレイ600A(図
17)のサイズは2倍になり、より幅の広い、かつ、よ
り深いRCSF機能を実現することができる。この実施
例において、入力ルーティングに用いられる、結果とし
て生じた72個の分割出力404A−404Z(図1
2)は、正規のAND PTとして働くことはできな
い。結果として生じた72個の分割出力は、以下に述べ
るように、任意の68−72個のANDアレイ入力をR
CSF制御ロジック(たとえば、図17または図70の
マルチプレクサ、レジスタ、および他のロジック)にル
ーティングすることができる。
【0071】図12の分割ANDアレイ400を、デュ
アルポートRAMで用いることもでき(以下に述べる図
21、図73、図75、および図76を参照)、この場
合、偶数分割された積項回路408A−408Zはポー
トAに用いられ、奇数分割された積項回路410A−4
10ZはポートBに用いられる。奇数分割された積項回
路410A−410Zの出力を反転して、68個の真の
(非反転の)入力の機能を得ることができる。
【0072】桁上げリプル/演算サポート 図1の各GLB102は、単一レベルの全体的なルーテ
ィングプール遅延(およびハードワイヤドロジックを介
したリプル遅延)を伴って約n個のマクロセルにおいて
nビットの加算器を実現する等の、演算(加算器、減算
器等)および比較器の機能をサポートするよう、特別な
サポートロジックを有することができる。
【0073】たとえば、図10のマクロセル104およ
び周辺ロジックは、A+B+CARRYIN=SUM+
CARRYOUT等の1ビットの加算器を実現すること
ができる。5つの積項回路208A−208E、5つの
DEMUX210A−210E、MUX300B、33
4A、300F、334C、300I、5入力ORゲー
ト214、6入力ORゲート212、拡張されたPTS
A202、XORゲート306、XORゲート312、
MUX334A、およびこれらの構成要素間の経路を、
加算器の機能を実現するよう活性化することができる。
第2の積項回路208Bは、入力AおよびBを受け、A
AND Bの積項を出力する。残りの積項回路208
A、208C−208Eのいずれも、〜ABおよびA
(〜B)の2つの積項を実現することができる。5入力
ORゲート214は、P=A XOR B=〜AB O
R A(〜B)を出力することができる。XORゲート
306は、SUM(SUM=A XOR B XOR
CIN)を出力し、そのSUMをMUX334Aを介し
て6入力ORゲート212の入力に転送することができ
る。6入力ORゲート212の出力は、マクロセルのフ
リップフロップ324またはPTSA202にルーティ
ングされ得る。
【0074】PTSA202は、異なるマクロセル10
2のフリップフロップ324(図4−図7)または他の
出力にSUMをルーティングすることができる。CAR
RYOUT信号304(図10)は、別のマクロセル1
02(図4−図7)に転送される。他のマクロセル10
2は、ライン240を介してCARRYOUT信号をル
ーティングプールおよび外部ロジックに転送することが
できる。CARRYIN信号302(図10)は、別の
マクロセル102(図4−図7)から来る。GLB10
2(図4−図7)内におけるマクロセル間のカスケーデ
ィングは、「GLB内桁上げカスケーディング」と称さ
れる。
【0075】加算器/減算器用の第1のCARRYIN
信号は、0、1、または外部信号であり得る。PTがC
ARRYIN入力信号を駆動する場合、CARRYIN
入力信号は余分のマクロセル102(図4−図7)を介
してルーティングされる。余分のマクロセル102は、
たとえば、0に固定された5入力ORゲート214(図
10)の出力によって、CARRYIN入力PTに相当
する桁上げを常に「生成する」。したがって、16ビッ
トの加算器については、16個のマクロセルが演算を行
なうことができ、1つのマクロセルがCARRYIN入
力信号を送ることができ、1つのマクロセルがCARR
YOUT出力信号をGRP110(図2)にルーティン
グすることができる。
【0076】GLB102(図4−図7)は、32ビッ
トの演算素子を実現することができる。複数のGLB1
02はともにカスケードされて、32ビットよりも大き
い演算素子を構築することができる。これを「GLB間
桁上げカスケーディング」と称する。たとえば、第1の
4つのGLB102A−102D(図2)は、第1の1
28ビットのカスケードチェインをもたらすようカスケ
ードされ得、第2の4つのGLB102E−102H
は、第2の128ビットのカスケードチェインをもたら
すようカスケードされ得る。1つのGLB102(図
2)内の第1のマクロセル104A(図4−図7)は、
そのCARRYIN入力302(図10)を別のGNB
102(図2)の最後のマクロセル104Z(図4−図
7)のCARRYOUT出力304に接続する。GLB
102(図2)は、余分のマクロセル104(図4−図
7)が、指定された第1のステージで桁上げをセットす
るよう用いられる場合、一度に2つ以上の桁上げチェイ
ンを実現することができる。一構成において、GLB桁
上げチェインの入力および出力におけるMUXは、重要
な経路が1つのMUXのみを通過するよう組合せられ
る。
【0077】マクロセル104(図4−図7)がカスケ
ードされない場合、マクロセル104は、そのCARR
YIN入力302(図10)を0または1にセットする
ことができる。マクロセル104(図4−図7)が演算
モードで用いられない場合、CARRYIN入力302
(図10)は、MUX300Kを介してCARRYOU
T出力304に直接与えられ得る。したがって、演算チ
ェインは、GLB102と関連する任意のマクロセル1
04(図4−図7)で始まり得る。
【0078】2レベルルーティングを備えたデバイス1
20(図3)については、桁上げチェインは、4つのG
LB124A−124Dを備えた第1のセグメント12
2A等のGLBのセグメント内で実現され得る。桁上げ
チェインは第1のGLB124Aで始まり、セグメント
ルーティング126Aを介してGLB124B、124
C、および124Dを通って続く。代替的に、桁上げチ
ェインは第1のGLB124Aで始まり、セグメントル
ーティング126Aを介してGLB124D、124
C、および124Bを通って続く。
【0079】RAMモード 図8のGLB102は、ANDアレイ200(図4−図
7)の一部をSRAMアレイとして構成して、SRAM
ビットを記憶することによってSRAM機能を実現す
る。SRAMは、独立した読出および書込のポートを備
えたシングルI/OポートSRAM(擬似デュアルポー
トSRAM)モード、2つの読出および書込のポートを
備えた真のデュアルポートSRAMモード、およびFI
FOモード等のさまざまな動作モードを有する。
【0080】図13−図16は、RAMとして構成され
た、図1のGLB102の実施例を示す。図13におい
て、GLB102は、非同期RAMアレイ500、1組
のGLB読出アドレス入力レジスタ502、1組のGL
B書込アドレス入力レジスタ504、および1組のデー
タ出力レジスタ506を含む。一実施例では、RAMア
レイ500の入力および出力は単方向であり、このこと
は、通信アプリケーションに対し、より好適な帯域幅を
提供する。
【0081】一実施例において、入力レジスタ502お
よび504の組は、一般的なロジックの使用には利用で
きない特別なレジスタを含み、出力レジスタ506の組
は、一般的なロジックの使用に利用することのできる汎
用マクロセルレジスタを含む。第1の組の入力レジスタ
502はアドレスを受取り、それらのアドレスを、読出
アドレスおよび読出クロック信号に従い、読出されるべ
きデータ用にRAMアレイ500に出力する。第2の組
の入力レジスタ504は外部ソースからデータを受取
り、書込アドレス、データ、書込イネーブル、および書
込クロック信号に従い、書込まれるべきデータをRAM
アレイ500内に出力する。出力レジスタ506の組
は、RAMアレイ500からデータを受取り、そのデー
タを読出クロック信号に従って出力する。第1の組の入
力レジスタ502および出力レジスタ506の組を、R
AMアレイ500からデータを同期に読出すよう用いる
ことができる。図13のGLB102は、「パイプライ
ンされた」読出構成を有する。
【0082】図14において、GLB102は、非同期
RAMアレイ500と、GLB書込アドレス入力レジス
タ504の組とを有する。図14において、RAMアレ
イ500は、同期書込および非同期読出を有する。図1
5において、GLB102は、非同期RAMアレイ50
0、GLB書込アドレス入力レジスタ504の組、およ
びデータ出力レジスタ506の組を含む。図16におい
て、GLB102は、非同期RAMアレイ500、GL
B読出アドレス入力レジスタ502の組、およびGLB
書込アドレス入力レジスタ504の組を含む。図15お
よび図16のGLB102は、同期の読出および書込用
に構成される。図15のGLB102は読出クロックに
よるタイミングの出力がより迅速であり、図16のGL
Bは読出アドレスによるクロックセットアップタイミン
グの読出がより迅速である。
【0083】メモリおよび入力ルーティング用の分割A
NDアレイ この明細書で説明されるGLB102がメモリ機能を実
行するよう構成される場合、GLB102は、信号のス
ワッピング(入力ルーティングまたはスイッチングとも
称される)用には図4−図7のANDアレイ200の一
部を用い、メモリ用には別の部分を用いる。対照的に、
GLB102がロジックを実行するよう構成される場
合、積項を生成するためにANDアレイ200の全体を
用いることができる。したがって、構成可能なANDア
レイ200は、メモリの入力ルーティング要件を満た
し、GLB102がロジックを実行するよう構成される
場合、ルーティングのオーバーヘッドの増大を回避し、
プログラマブルなデバイスのダイのサイズを縮小する。
なぜなら、グローバルルーティングリソースを減じるこ
とができるからである。
【0084】図17は、構成可能な512x32 SR
AM600Aを備えた、RAMモードにある、図1のG
LB102の一実施例を示す。図17のGLB102
は、スイッチマトリクス624Aとして構成された分割
ANDアレイの一部、書込アドレスデコーダロジック6
62A、512x32 SRAM600A、読出アドレ
スデコーダロジック664A、ANDゲートおよびOR
ゲート等の複数の任意のMUXおよびロジック648、
ならびに複数のDフリップフロップ/レジスタおよび制
御ロジック674を含む。
【0085】図17においてスイッチマトリクス624
Aとして構成された分割ANDアレイの一部は、図12
を参照して上で論じた分割積項回路408A−408
Z、410A−410Z、および積項回路402A−4
02Zを含む。分割ANDアレイスイッチマトリクス6
24Aはまた、追加のロジックを含むこともできる。分
割ANDアレイスイッチマトリクス624Aは、68ビ
ット入力ライン626を介してGRP110から入力信
号を受取り、信号を図17の他の構成要素にルーティン
グする。分割ANDアレイスイッチマトリクス624A
は、信号がデコーダロジック662A、664A、およ
びメモリアレイ600Aに用いられる前に、信号の順序
を予め定められたシーケンスに変更することができる。
一実施例において、分割ANDアレイスイッチマトリッ
クス624Aは、ソフトウェアの予め定められた構成に
従い、信号をルーティングする。
【0086】図17では、ANDアレイ回路200(図
4−図7)の全体が、スイッチマトリクス624A(入
力ルーティングリソース、入力スワッピングスペース、
またはローカルルーティングプール(LRP)とも称さ
れる)用に用いられるいくつかのAND積項回路208
と、メモリアレイ600A用に用いられる他のAND積
項回路208とに分割される。一実施例では、メモリア
レイ600A用に用いられるAND積項回路208とス
イッチマトリクス624A用に用いられるAND積項回
路208との比率は、ほぼ3対1または4対1である。
一実施例では、メモリアレイ600Aは128個のAN
D積項回路208を含み、スイッチマトリクス624A
は32−36個のAND積項回路208を含む。
【0087】分割ANDアレイスイッチマトリクス62
4Aは、読出アドレス(RA)出力ポート628A、読
出クロック(RCLK)出力ポート630、読出クロッ
クイネーブル(RCLKEN)出力ポート632、リセ
ット出力ポート634、書込クロックイネーブル(WC
LKEN)出力ポート636、書込クロック(WCL
K)出力ポート638、書込アドレス(WA)出力ポー
ト640A、書込データ(WD)出力ポート642A、
書込イネーブル(WE)出力ポート644、および書込
チップ選択(WCS)出力ポート646を有する。一実
施例において、160−163の積項は、分割された積
項ではなく、正規のAND積項を実現するよう用いられ
る。
【0088】別の実施例において、GLB102は、分
割ANDアレイスイッチマトリクス624Aを有さな
い。その代わりに、高度なGRP110が、適切なシー
ケンスおよび順序で入力信号を図17の他の構成要素に
送出する。この実施例では、メモリ600Aがより大き
くなって図4−図7の積項回路208A−208Zのす
べてを含んでよい。
【0089】任意のMUXおよびロジック648は、反
転制御信号と非反転制御信号との選択をもたらすことが
できる。任意のMUXおよびロジック648は、分割A
NDアレイスイッチマトリクス624Aによって生成さ
れたクロック信号と、ライン686上のグローバルクロ
ック信号GCLKとの選択をもたらすことができる。任
意のロジック648は、たとえば、信号のWEとECS
との間で論理AND演算を実行するか、信号のRESE
Tとグローバルリセットとの間で論理OR演算を実行す
るために、ANDゲートおよびORゲートを含み得る。
【0090】Dフリップフロップ/レジスタ674は、
分割ANDアレイスイッチマトリクス624Aの出力信
号のいくつかをバッファすることができる。書込アドレ
スデコーダロジック662Aは、WA、WE、WCS信
号をSRAM600Aにパスする。読出デコーダロジッ
ク664Aは、RA信号をSRAM600Aにパスす
る。SRAM600Aは、分割ANDアレイスイッチマ
トリクス624Aから入力ライン610Aを介して書込
データを受取り、出力ライン622Aを介して、マクロ
セル等の宛先またはローカルルーティングプールまたは
GRP110(図1)等の外部ソースに読出データを出
力する。
【0091】図18は、構成可能な16384x1 S
RAM600Bを備えた、RAMモードにある、図1の
GLB102の一実施例を示す。図18のGLB102
は、スイッチマトリクス624Bとして構成された分割
ANDアレイの一部、書込アドレスデコーダロジック6
62B、16384x1 SRAM600B、読出アド
レスデコーダロジック664B、ANDゲートおよびO
Rゲート等の複数の任意のMUXおよびロジック64
8、ならびに複数のDフリップフロップおよび制御ロジ
ック674を含む。
【0092】分割ANDアレイスイッチマトリクス62
4Bは、図12を参照して上に論じた分割積項回路40
8A−408Z、410A−410Z、および積項回路
402A−402Zを含み、追加のロジックを含み得
る。分割ANDアレイスイッチマトリクス624Bは、
68ビット入力ライン626を介してGRP110から
信号を受取る。分割ANDアレイスイッチマトリクス6
24Bは、読出アドレス(RA)出力ポート628B、
読出クロック(RCLK)出力ポート630、読出クロ
ックイネーブル(RCLKEN)出力ポート632、リ
セット出力ポート634、書込クロックイネーブル(W
CLKEN)出力ポート636、書込クロック(WCL
K)出力ポート638、書込アドレス(WA)出力ポー
ト640B、書込データ(WD)出力ポート642B、
書込イネーブル(WE)出力ポート644、および書込
チップ選択(WCS)出力ポート646を有する。16
0−163の積項は、分割された積項ではなく、正規の
AND積項を実現するよう用いられる。
【0093】任意のMUXおよびロジック648は反転
制御信号と非反転制御信号との間の選択を提供してもよ
い。任意のMUXおよびロジック648は、分割AND
アレイスイッチマトリックス624Bにより生成される
クロック信号と、ライン686上のグローバルクロック
信号GCLKとの間の選択を提供してもよい。D型フリ
ップフロップ/レジスタ674は分割ANDアレイスイ
ッチマトリックス624Bの出力信号のいくつかを緩衝
してもよい。書込アドレスデコーダロジック662B
は、WA、WE、およびWCS信号をSRAM600B
へパスする。読出デコーダロジック664BはRA信号
をSRAM600Bへパスする。SRAM600Bは、
分割ANDアレイスイッチマトリックス624Bから入
力ライン610Bを介して書込データを受け、読出デー
タを出力ライン622Bを介してマクロセルなどの宛先
またはローカルルーティングプールもしくはGRP11
0(図1)などの外部ソースへ出力する。
【0094】図19は、図17および図18のGLB1
02において実現された同期シングルポートRAM60
0の一実施例を示す。RAM600は、書込イネーブル
(WE)入力ポート602、書込クロック(WCLK)
入力ポート604、書込アドレス(WA)入力ポート6
06、書込チップ選択(WCS)入力ポート608、書
込データ(WD)入力ポート610、書込クロックイネ
ーブル(WCLKEN)入力ポート612、読出クロッ
ク(RCLK)入力ポート614、読出アドレス(R
A)入力ポート616、読出クロックイネーブル(RC
LKEN)入力ポート618、リセット入力ポート62
0、および読出データ(RD)出力ポート622を有す
る。図19に示すように、「シングルポート」RAM6
00は独立した読出および書込ポートを有する。
【0095】図20は、図19のシングルポートRAM
600用の6つの例示的なメモリ構成を示す。図20
は、各メモリ構成用の入力および出力ポート602−6
22(図19)の幅を示す。たとえば、512×32メ
モリ構成は、9ビットの書込アドレス入力ポート、9ビ
ットの読出アドレス入力ポート、32ビットの書込デー
タ入力ポート、制御信号入力ポートの全部で58の入力
ビットと、32ビットの読出データ出力ポートとを有す
る。制御信号ポートの各々は、深さカスケーディングを
提供するために幅が2ビットである書込チップ選択以外
は、幅が1ビットである。
【0096】図20の6つのメモリ構成は単なる例であ
る。図19のRAM600は他の深さおよび幅の構成を
有していてもよい。たとえば、512×32メモリ構成
は、アドレス入力ポートの1ビットを定数1または0へ
結合させることによって、8ビットのアドレス入力ポー
トを有する256×32メモリとして構成されてもよ
い。
【0097】デュアルポートRAMモード 図21は、構成可能な512×16SRAM700Aを
有する、デュアルポートRAMモードにおける図1のG
LB102の一実施例を示す。図21のGLB102
は、スイッチマトリックス702Aとして構成される分
割ANDアレイの一部、書込アドレスデコーダロジック
704A、512×16SRAM700A、読出アドレ
スデコーダロジック706A、ANDゲートおよびOR
ゲートなどの複数の任意のMUXおよびロジック74
4、および複数のD型フリップフロップ/レジスタおよ
び制御ロジック776を含む。
【0098】図21の分割ANDアレイスイッチマトリ
ックス702Aは、図12を参照して上述された分割積
項回路408A−408Z、410A−410Z、およ
び積項回路402A−402Zを含んでおり、さらなる
ロジックを含んでいてもよい。分割ANDアレイスイッ
チマトリックス702Aは、GRP110から68ビッ
トの入力ライン626を介して信号を受ける。分割AN
Dアレイスイッチマトリックス702Aは、第1の読出
/書込アドレス(RWA)出力ポート708A、第1の
書込データ(WDA)出力ポート710A、第1の書込
イネーブル(WEA)出力ポート712、第1の書込チ
ップ選択(WCSA)714、第1のクロックCLKA
出力ポート716、第2のクロックCLKB出力ポート
718、第1のイネーブル(ENA)出力ポート72
0、第2のイネーブル(ENB)出力ポート722、第
1の出力レジスタリセットRESETA出力ポート72
4、第2の出力レジスタリセットRESETB出力ポー
ト726、第2の読出/書込アドレス(RWB)出力ポ
ート728A、第2の書込データ(WDA)出力ポート
730A、第2の書込イネーブル(WE)出力ポート7
32、および第2の書込チップ選択(WCS)734を
有する。積項160−162は、イネーブル、クロック
およびリセット信号を実現するために分割される。
【0099】任意のMUXおよびロジック744は反転
制御信号と非反転制御信号との間の選択を提供してもよ
い。任意のMUXおよびロジック744は、分割AND
アレイスイッチマトリックス702Aにより生成される
クロック信号と、ライン686上のグローバルクロック
信号GCLKとの間の選択を提供してもよい。任意のロ
ジック744は、ANDゲートおよびORゲートを含ん
で、たとえば、WEおよびWCS信号間で論理AND演
算を行なったり、またはRESET信号とグローバルリ
セット信号間で論理OR演算を行なってもよい。
【0100】D型フリップフロップ/レジスタ776は
分割ANDアレイスイッチマトリックス702Aの出力
信号のいくつかを緩衝してもよい。D型フリップフロッ
プ/レジスタ776はライン792上のグローバルリセ
ット信号によってリセットされてもよい。書込アドレス
デコーダロジック704Aは、制御信号およびアドレス
信号をSRAM700Aへパスする。読出デコーダロジ
ック706Aは、制御信号およびアドレス信号をSRA
M700Aへパスする。
【0101】SRAM700Aは分割ANDアレイスイ
ッチマトリックス702Aから2つの入力ライン736
A、738Aを介して書込データを受け、読出データを
2つの出力ライン740A、742Aを介してマクロセ
ルなどの宛先、またはマクロセルレジスタ、ローカルル
ーティングプール、もしくはGRP110(図1)など
の外部ソースへ出力する。
【0102】図22は、構成可能な512×16SRA
M700Bを有する、デュアルポートRAMモードにお
ける図1のGLB102の一実施例を示す。図21のG
LB102は、スイッチマトリックス702Bとして構
成される分割ANDアレイの一部、書込アドレスデコー
ダロジック704B、512×16SRAM700B、
読出アドレスデコーダロジック706B、ANDゲート
およびORゲートなどの複数の任意のMUXおよびロジ
ック744、および複数のD型フリップフロップ/レジ
スタおよび制御ロジック776を含む。
【0103】図22の分割ANDアレイスイッチマトリ
ックス702Bは、図12を参照して上述された分割積
項回路408A−408Z、410A−410Z、およ
び積項回路402A−402Zを含んでおり、さらなる
ロジックを含んでいてもよい。分割ANDアレイスイッ
チマトリックス702Bは、GRP110から68ビッ
トの入力ライン626を介して信号を受ける。分割AN
Dアレイスイッチマトリックス702Bは、第1の読出
/書込アドレス(RWA)出力ポート708B、第1の
書込データ(WDA)出力ポート710B、第1の書込
イネーブル(WEA)出力ポート712、第1の書込チ
ップ選択(WCSA)714、第1のクロックCLKA
出力ポート716、第2のクロックCLKB出力ポート
718、第1のイネーブル(ENA)出力ポート72
0、第2のイネーブル(ENB)出力ポート722、第
1の出力レジスタリセットRESETA出力ポート72
4、第2の出力レジスタリセットRESETB出力ポー
ト726、第2の読出/書込アドレス(RWB)出力ポ
ート728B、第2の書込データ(WDB)出力ポート
730B、第2の書込イネーブル(WEB)出力ポート
732、および第2の書込チップ選択(WCSB)73
4を有する。積項160−162は、イネーブル、クロ
ックおよびリセット信号を実現するために分割される。
【0104】任意のMUXおよびロジック744は反転
制御信号と非反転制御信号との間の選択を提供してもよ
い。任意のMUXおよびロジック744は、分割AND
アレイスイッチマトリックス702Bにより生成される
クロック信号と、ライン686上のグローバルクロック
信号GCLKとの間の選択を提供してもよい。D型フリ
ップフロップ/レジスタ776は分割ANDアレイ70
2Bの出力信号のいくつかを緩衝してもよい。D型フリ
ップフロップ/レジスタ776、778、780、78
6、788、790は、ライン792上のグローバルリ
セット信号によってリセットされてもよい。書込アドレ
スデコーダロジック704Bは、制御信号およびアドレ
ス信号をSRAM700Bへパスする。読出デコーダロ
ジック706Bは、制御信号およびアドレス信号をSR
AM700Bへパスする。
【0105】SRAM700Bは分割ANDアレイスイ
ッチマトリックス702Bから2つの入力ライン736
B、738Bを介して書込データを受け、読出データを
2つの出力ライン740B、742Bを介してマクロセ
ルなどの宛先、またはマクロセルレジスタ、ローカルル
ーティングプール、もしくはGRP110(図1)など
の外部ソースへ出力する。
【0106】構成可能な幅を有するデータポートおよび
アドレスポート 図17、図18、図21、および図22のRAMアレイ
600A、600B、700A、700B、または以下
に記載されるようにROM、CAM、FIFO、または
スイッチとして構成されるANDアレイ部分のデータポ
ートおよびアドレスポートの幅は、独立して構成されて
もよい。たとえば、図17のシングルポートRAMアレ
イ600Aのデータ入力ポート(書込ポート)610A
の幅は、データ出力ポート(読出ポート)622Aの幅
とは独立して構成されてもよい。このため、データ入力
ポート610Aは、データ出力ポート622Aより幅が
広くても狭くてもよい。
【0107】別の例として、図21のRAMアレイ70
0Aは、「ポートA」および「ポートB」という2つの
I/Oポートを有する。「ポートA」はWDA信号とR
WA信号とを受け、RDA信号を出力する。ポートB
は、WDB信号とRWB信号とを受け、RDB信号を出
力する。WDA信号とWDB信号の幅は異なっていても
よい(つまり、異なるバス幅)。RWA信号とRWB信
号の幅は異なっていてもよい。RDA信号とRDB信号
の幅は異なっていてもよい。各I/Oポートの読出バス
と書込バスは同じアドレスラインを共有するため、各I
/Oポートの読出バスと書込バスは幅が同じであっても
よい。
【0108】(シングルポートRAM600A(図1
7)またはデュアルポートRAM700A(図21)の
いずれかにおいて)読出ポートと書込ポートのデータバ
ス幅が異なる場合、幅が広い方のポート(たとえば32
ビット)によって書込まれた各ワードは、幅が狭い方の
ポート(たとえば8ビット)によって連続した多数のワ
ードとして読出され得る。このため、アドレッシング
は、RAMアドレス位置がある論理的順序に従っている
ということを確実にすべきである。たとえば、32ビッ
トのポート(ポートA)によって書込まれた32ビット
のワードは、8ビットのポート(ポートB)により4つ
の連続したワードとして読出されてもよい。各ポートの
(最上位のビット(MSB)から最下位のビット(LS
B)へ)アドレッシングされたワードが以下の式に従っ
て物理的RAMビットにマッピングする(物理的RAM
ビットはたとえば0から16,383へ線状に順序付け
られていると仮定する)ならば、適切なアドレッシング
が達成されてもよい。
【0109】 MSB=(現在の_アドレス+1)×ポート_幅−1 LSB=現在の_アドレス×ポート_幅 上の例を用いると、ポートA(総アドレス:0〜51
1)が32ビットのワードを任意のアドレス位置88に
書込む場合、そのワードのMSBは物理的RAMビット
位置(88+1)×32=2847へ行き、一方、その
ワードのLSBは位置88×32=2816へ行く。M
SBとLSBの間のビットは、位置2816と位置28
47の間に行く。ポートB(総アドレス:0〜204
7)は、4つの連続する8ビットのワードを、位置88
×4+0=352、88×4+1=353、88×4+
2=354、88×4+3=355、88×4+4=3
56から読出し、ポートAによって書込まれたものと同
じデータを受ける。ポートAの最下位8ビットは位置8
8×4=352の8ビットのワードにマッピングし、一
方、最上位8ビットは88×4+3=355の8ビット
のワードにマッピングする。上述のロジック対物理変換
式は、これらの4つのワードが適切な物理的RAMビッ
ト位置にあたることを示す。たとえば、ポートBの位置
352のMSBは物理的RAMビット位置(352+
1)×8=2824にあり、一方、LSBは位置281
6にある。これらの位置は、位置88でのポートAの3
2ビットのワードの最下位8ビットを表わす。デュアル
ポートRAMモードについては、SRAMの総能力は半
減され、各データバス幅に対するワードは半数となる。
【0110】図23は、図21および図22のGLB1
02において実現された同期デュアルポートRAM70
0の一実施例を示す。RAM700は、I/Oポート
「A」用の第1の組のポートとI/Oポート「B」用の
第2の組のポートとを有する。第1の組は、書込イネー
ブル(WEA)入力ポート701、書込クロック(WC
LKA)入力ポート703、読出/書込アドレス(RW
A)入力ポート705、書込チップ選択(WCSA)入
力ポート707、書込データ(WDA)入力ポート70
9、イネーブル入力ポート(ENA)711、およびリ
セットA入力ポート713を含む。
【0111】第2の組のポートは、書込イネーブル(W
EB)入力ポート715、書込クロック(WCLKA
B)入力ポート717、読出/書込アドレス(RWB)
入力ポート719、書込チップ選択(WCSB)入力ポ
ート721、書込データ(WDB)入力ポート723、
イネーブル入力ポート(ENB)725、およびリセッ
トB入力ポート727を含む。図23に示すように、
「デュアルポート」RAM700は、第1の組の独立し
た読出および書込ポートと、第2の組の独立した読出お
よび書込ポートとを有する。
【0112】図24は、図23のデュアルポートRAM
700用の5つの例示的なメモリ構成を示す。図24に
おける5つのメモリ構成は単なる例である。図23のR
AM700は他の深さおよび幅の構成を有していてもよ
い。
【0113】図25−図32は、図23のデュアルポー
トRAM700用の例示的な信号タイミング図とタイミ
ングパラメータとを示す。
【0114】ROMモード ここに記載されたGLB102は、書込アクセスを防止
するためにロックインビットを実現することによって、
読出専用メモリ(ROM)として構成されてもよい。R
OMとして作動するGLB102は、起動と同時に、後
で変更できない初期構成データをロードされてもよい。
【0115】CAMモード 上述のように、図1のGLB102はCAMとして構成
されてもよい。一般に連想記憶装置(CAM)は、入力
データを受取り、入力データにマッチングする位置の1
つまたはそれ以上のアドレスを出力する。CAMは、書
込および読出などのさまざまな動作を有する。書込動作
は更新とも呼ばれてもよい。読出動作は比較とも呼ばれ
てもよい。
【0116】図33は、更新モードにおける図1のGL
B102内のCAMアレイ800、2組の入力レジスタ
802、804、および制御ロジック806の一実施例
を示す。2組の入力レジスタ802、804は、外部ソ
ースからアドレス、データ、イネーブルおよびクロック
信号を受取る。第1の組のレジスタ802が書込マスク
レジスタ信号を受取ると、第1の組の入力レジスタ80
2はマスクデータを記憶する。第2の組の入力レジスタ
804はデータおよびアドレスを記憶する。制御ロジッ
ク806は、WRITE DON’T CARE信号と
ENABLEMASK REGISTER信号とを外部
ロジックから受取る。
【0117】図33の制御ロジック806は、第2の組
の入力レジスタ804に記憶されたアドレスによって特
定されるように、各ビットについて1、0、‘DON’
TCARE’(‘X’として表わされる)、または‘D
ON’T WRITE’をCAMアレイ800へ書込
む。各ビットに対し、第2の組のレジスタ804からの
データ入力ビットと第1の組のレジスタ802からのマ
スクレジスタビットとがともに、CAMアレイ800に
書込むべきデータを決定する。
【0118】図34は、更新モードにおける図33のC
AMアレイ800および対応するロジック802、80
4、806用の例示的な信号値を示す。図34では、イ
ネーブルマスクレジスタEN_MASK_REG信号が
0の場合、制御ロジック806(図33)は第2の組の
入力レジスタ804からのデータをCAMアレイ800
へ書込む。EN_MASK_REG信号が1でマスクレ
ジスタが0の場合、制御ロジック806(図33)は第
2の組の入力レジスタ804からのデータをCAMアレ
イ800へ書込む。EN_MASK_REG信号が1
で、書込DON’T CARE(WR_DONT_CA
RE)信号が0で、マスクレジスタが1の場合、制御ロ
ジック806(図33)は書込まないかまたは前に記憶
されたビットを保持する。EN_MASK_REG信号
が1で、書込DON’T CARE(WR_DONT_
CARE)信号が1で、マスクレジスタが1の場合、制
御ロジック806(図33)は‘DON’T CAR
E’を書込む。一実施例では、書込動作はクロック信号
と同期する。
【0119】図35は、比較モードにおける図1のGL
B102内のプライオリティエンコーダ808を有する
CAMアレイ800、2組の入力レジスタ802、80
4、および制御ロジック806の一実施例を示す。2組
の入力レジスタ802、804は、外部ソースからデー
タ、クロックおよびクロックイネーブル信号を受取る。
第1の組のレジスタ802が書込マスクレジスタ信号を
受取ると、第1の組の入力レジスタ802はマスクデー
タを記憶する。第2の組の入力レジスタ804はデータ
およびアドレスを記憶する。制御ロジック806は外部
ロジックからイネーブルマスクレジスタ信号を受取る。
制御ロジック806は各ビットを比較するかどうかを決
定する。読出/比較モードでは、制御ロジック806は
データをCAMアレイ800へ入力し、CAMアレイ8
00は優先符号化アドレスビット、マッチビット、およ
びマルチマッチビットを出力する。
【0120】図36は、読出/比較モードにおける図3
5のCAMアレイ800および対応するロジック80
2、804、806用の例示的な信号値を示す。EN_
MASK_REG信号が0の場合、比較された値はCA
Mアレイ800(図35)からのCAMデータビットで
ある。EN_MASK_REG信号が1でマスクレジス
タが0の場合、比較された値はCAMアレイ800(図
35)からのCAMデータビットである。EN_MAS
K_REG信号が1でマスクレジスタが1の場合、比較
された値はDON’T CAREである。
【0121】図37は図33のプライオリティエンコー
ダ808を有するCAMアレイ800と対応するロジッ
ク802、804、806とによって行なわれる比較動
作の例を示す。図37では、CAM800に記憶された
各ビットは、1、0、またはX(DON’T CAR
E)の3つの値のうちの1つを表わす2つのビットを実
際に有する。図37における各文字は4ビットの16進
法の値を表わす。制御ロジック806(図35)がデー
タ‘EFGH IJKL XXXX’をCAM800へ
入力する場合、プライオリティエンコーダ808(図3
7)は4Hex(100b)のアドレス、1のMATC
Hビット、および0のMUL_MATCHビットを出力
する。制御ロジック806(図35)がデータ‘GHI
J KLMN XXXX’をCAM800へ入力する場
合、そのデータでのエントリは2つ(6と7)ある。よ
り低位のアドレスがより高いプライオリティを有するた
め、プライオリティエンコーダ808(図37)は6H
exのアドレス、1のMATCHビット、および1のM
UL_MATCHビットを出力する。
【0122】図38は、構成可能な128×48CAM
アレイ800を有するCAMモードでの図1のGLB1
02の一実施例を示す。図38のGLB102は、スイ
ッチマトリックス810として構成される分割ANDア
レイの一部、比較データエンコーダおよび書込データエ
ンコーダを含んでいてもよい読出/書込アドレスデコー
ダロジック812、128×48CAMアレイ800、
ANDゲートおよびORゲートなどの複数の任意のMU
Xおよびロジック836、複数のD型フリップフロップ
/レジスタおよび制御ロジック862、マッチフラグロ
ジック874、およびCAM出力エンコーダ876を含
む。
【0123】図38においてスイッチマトリックス81
0として構成される分割ANDアレイの一部は、図12
を参照して上述された積項回路408A−408Z、4
10A−410Z、および積項回路402A−402Z
を含んでおり、さらなるロジックを含んでいてもよい。
分割ANDアレイスイッチマトリックス810は、GR
P110から68ビットの入力ライン626を介して信
号を受取る。分割ANDアレイスイッチマトリックス8
10は、EN_MASK_REG出力ポート814、書
込マスクレジスタ(WR_MASK_REG)出力ポー
ト816、書込データ(WD)出力ポート818、クロ
ックイネーブル(CE)出力ポート820、CLK出力
ポート822、リセット出力ポート824、書込アドレ
ス(WA)出力ポート826、書込イネーブル(WE)
出力ポート828、書込チップ選択(WCS)出力ポー
ト830、および書込DON’T CARE(WR_D
ON’T CARE)出力ポート832を有する。積項
160−162は、イネーブル、クロックおよびリセッ
ト信号を実現するために用いられる。
【0124】任意のMUXおよびロジック836は、反
転制御信号と非反転制御信号との間の選択を提供しても
よい。任意のMUXおよびロジック836は、分割AN
Dアレイスイッチマトリックス810により生成される
信号とライン686上のグローバルクロック信号GCL
Kとの間の選択を提供してもよい。任意のロジック83
6は、ANDゲートおよびORゲートを含んで、たとえ
ば、WEおよびWCS信号間でロジックAND演算を行
なったり、またはRESET信号とグローバルリセット
信号間でロジックOR演算を行なってもよい。
【0125】D型フリップフロップ/レジスタ862
は、分割ANDアレイ810の出力信号のいくつかを緩
衝する。D型フリップフロップ862はライン792上
のグローバルリセット信号によってリセットされてもよ
い。読出/書込アドレスデコーダロジック812は、ク
ロック信号などの制御信号と読出されるべきまたは書込
まれるべきデータ用のアドレスビットとをCAMアレイ
800へパスする。
【0126】ロジック812の比較データエンコーダ
は、レジスタ864からのマスクレジスタビットに依存
して、記録されたCAM比較データを3つの状態(0、
1、またはDON’T CARE)に符号化する。ロジ
ック812の書込データエンコーダは、レジスタ864
からのマスクレジスタビットとWR_DON’T_CA
RE信号とに依存して、記録されたCAM更新データを
3つの状態(0、1、またはDON’T CARE)に
符号化する。
【0127】CAMアレイ800は、ロジック812の
比較データエンコーダおよび書込データエンコーダか
ら、比較データおよび書込データを受取る。CAMアレ
イ800に記憶されたデータは、データおよび任意のユ
ーザ定義有効性ビットまたはデータクラスを含んでいて
もよい。
【0128】CAMアレイ800は、最大128ビット
の符号化されていないデータをマッチフラグロジック8
74とCAM出力エンコーダ876とに出力する。マッ
チフラグロジック874は、CAMアレイ800内のマ
ッチングするエントリの数を判定し、MATCH_OU
T信号とMUL_MATCH_OUT信号とを、マクロ
セルなどの宛先、またはマクロセルレジスタ、ローカル
ルーティングプール、もしくはGRP110(図1)な
どの外部ソースへ出力する。CAM出力エンコーダ87
6は、ロジック812の比較データエンコーダからのデ
ータにマッチングするCAMアレイ800内のあらゆる
エントリのアドレスを優先符号化する。CAM出力エン
コーダ876は、プライオリティが最も高いエントリの
7ビットのアドレスを出力する(エントリ0は最低位ア
ドレスであり、最も高いプライオリティを有する)。
【0129】図39は、図38のGLB102において
実現されるCAMアレイ800の一実施例を示す。図3
9のCAMアレイ800は、EN_MASK_REG入
力ポート801、書込アドレス(WA)入力ポート80
3、書込イネーブル(WE)入力ポート805、書込チ
ップ選択(WCS)入力ポート807、書込データ(W
D)入力ポート809、書込マスクレジスタ(WR_M
ASK_REG)入力ポート811、書込DON’T
CARE(WR_DON’T CARE)入力ポート8
13、リセット入力ポート815、CLK入力ポート8
17、CE入力ポート819、CAM_OUT出力ポー
ト821、MATCH_OUT出力ポート823、MU
L_MATCH_OUT出力ポート825を有する。W
R_DON’T_CARE入力ポート813は、書込ア
ドレスレジスタ868(図38)によって特定されるよ
うに、DON’T CAREをCAM位置へ書込む。
【0130】図40は、図38のCAM800の例示的
なパワーオンリセット状態を示す。パワーオンリセット
信号は、ユーザによって特定された初期化データをCA
Mアレイ800にロードする。図41は、図38のCA
M800の例示的な通常ユーザモード状態を示す。Nは
1から47までの数である。図40に示すように、パワ
ーオンリセット時に初期化データがユーザによって特定
されない場合、CAM800にはハードウェアデフォル
トがロードされる。48ビットのCAMワードの未使用
部分<47:N>は比較動作中は効力がない。なぜな
ら、ビット<47:N>はデータ/比較レジスタ866
において1に設定されるためである。更新動作中、CA
MワードのDON’T CARE部分<47:N>へは
すべて1が書込まれる。
【0131】一構成では、リセット信号は出力レジスタ
をリセットするが、CAMアレイ800には影響を及ぼ
さない。クロックイネーブル(CE)信号は、全レジス
タ862−872へのクロック入力をディスエーブルに
する。書込イネーブル(WEN)信号は、任意の深さカ
スケーディングチップ選択(CS)とともに、CAMア
レイ800への書込をイネーブルにする。
【0132】図42は、図39のCAM800の例示的
な信号タイミング図を示す。図43は、CAMモードで
のカスケードされたGLB102A−102Dの一実施
例を示す。多数のGLBを有するデバイスは、CAMモ
ードでGLBをカスケードするため、図43に示された
出力エンコーダおよびマッチロジック890などの専用
サポートロジックを有していてもよい。1レベルルーテ
ィングまたは2レベルルーティングを有するデバイス内
のCAMモードでの多数のGLB102A−102D
は、より幅の広いCAMワードを提供するためにカスケ
ードされてもよい。たとえば、図43のカスケードされ
たGLB102A−102Dは、145ビットから19
6ビットのCAM(4×48=196)を提供してもよ
い。
【0133】FIFOモード 図44および図45は、構成可能な512×32FIF
O904を有する、FIFOモードにおける図1のGL
B102の一実施例を示す。図44および図45のGL
B102は、分割ANDアレイスイッチマトリックス9
00、書込アドレスデコーダロジック902、512×
32FIFO904、読出アドレスデコーダロジック9
06、複数のMUX922、924、926、928、
929、930、936、940、950、952、2
つのANDゲート932、934、2つのORゲート9
38、942、D型フリップフロップ946、フラグユ
ニットポインタを有する第1のフラグロジック回路(読
出用)944、およびフラグユニットポインタを有する
第2のフラグロジック回路(書込用)948を含む。一
実施例では、図1における各GLB102は、さらなる
内蔵FIFO制御ロジックをさらに含む。
【0134】図44および図45の分割ANDアレイス
イッチマトリックス900は、図12を参照して上述さ
れた分割ANDアレイ400を含んでおり、さらなるロ
ジックを含んでいてもよい。分割ANDアレイスイッチ
マトリックス900は、GRP110から68ビットの
入力ライン626を介して信号を受取る。分割ANDア
レイスイッチマトリックス900は、読出イネーブル
(RE)出力ポート908、読出クロック(RCLK)
出力ポート910、リセット読出ポインタ(reset
_RP)出力ポート912、リセット出力ポート91
4、書込データ(WD)出力ポート916、書込イネー
ブル(WE)出力ポート918、および書込クロック
(WCLK)出力ポート920を有する。積項160−
162は、イネーブル、クロックおよびリセット信号を
実現するために用いられる。
【0135】第1の組のMUX922−928は、反転
制御信号と非反転制御信号との間の選択を提供する。第
2の組のMUX929、930、936、940は、分
割ANDアレイスイッチマトリックス900により生成
される信号と、ライン686上のグローバルクロック信
号GCLKとの間の選択を提供する。第3の組のMUX
950、952は、マクロセル104(図8)からのフ
ラグ値を提供する。D型フリップフロップ946は、分
割ANDアレイスイッチマトリックス900からの書込
データ用のレジスタまたはバッファを提供する。
【0136】第1および第2のフラグロジック回路94
4、948は、別個のユニットとして、または単一のユ
ニットとして実現されてもよい。第1および第2のフラ
グロジック回路944、948は、ライン792上のグ
ローバルリセット信号またはライン914上のブロック
レベルリセットによってリセットされてもよい。第1の
フラグロジック回路944は、ALMOST EMPT
Y(Y)とEMPTYという2つのプログラマブルフラ
グを、マクロセル104(図8)などの外部ロジックへ
出力する。一実施例では、第1のフラグロジック回路9
44(図45)は、ALMOST EMPTY(Y)フ
ラグを20番目および21番目のマクロセル(図8)へ
出力し、EMPTYフラグを28番目および29番目の
マクロセルへ出力する。このため、各フラグは2つのマ
クロセルで利用可能である。第1のフラグロジック回路
944はまた、読出ポインタも読出アドレスデコーダロ
ジック906へ出力する。
【0137】第2のフラグロジック回路948は、プロ
グラマブルなFULL(端子カウントに対してはTCと
も呼ばれる)およびALMOST FULL(X)フラ
グを、マクロセル104(図8)などの外部ロジックへ
出力する。一実施例では、第2のフラグロジック回路9
48(図45)は、FULLフラグを12番目および1
3番目のマクロセル(図8)へ出力し、ALMOST
FULL(X)フラグを4番目および5番目のマクロセ
ルへ出力する。このため、各フラグは2つのマクロセル
で利用可能である。第2のフラグロジック回路948は
また、書込ポインタも書込アドレスデコーダロジック9
02へ出力する。
【0138】FULLフラグはFIFO904において
1から最大数の位置までプログラマブルである。ALM
OST FULLおよびALMOST EMPTYフラ
グは、1からFULL−1までプログラマブルである。
ユーザが、FULLフラグが活性となった後にFIFO
904へ書込もうとする場合、またはEMPTYフラグ
が活性となった後にFIFO904から読出そうとする
場合、FIFO904の内部ポインタはそれらの最後の
活性値でフリーズされ、読出または書込動作は行なわれ
ない。
【0139】読出および書込アドレスデコーダロジック
902、906は、クロック信号などの制御信号と、読
出されるべきまたは書込まれるべきデータ用のアドレス
ビットとをFIFO904へパスする。FIFO904
は、第2のフラグロジック回路948から書込まれるべ
きデータを受取る。FIFO904は最大32ビットの
データをマクロセルレジスタ、ローカルルーティングプ
ール、またはGRP110(図1)などの外部ソースへ
出力する。
【0140】FIFO904は、FIFOの読出および
書込ポートにおいて、異なるように構成されたデータバ
ス幅を有していてもよい。たとえば、一実施例では、F
IFO904は32ビットの書込ポートと8ビットの読
出ポートとを有する。この実施例では、FULLおよび
ALMOST FULLフラグは、書込まれる32ビッ
トのワードを指し、EMPTYおよびALMOST E
MPTYフラグは、読出される8ビットのワードを指
す。たとえば、EMPTYおよびALMOSTEMPT
Yフラグが2にプログラムされていると仮定すると、第
1の32ビットの書込はEMPTYおよびALMOST
EMPTYフラグをクリアする。なぜなら、FIFO
904は読出されるべき4つのワードを有するからであ
る。しかし、FIFO904には書込まれたワードが1
つしかないため、ALMOSTFULLフラグはアサー
トされない。第2の32ビットの書込がALMOSTF
ULLフラグを設定すると仮定すると、FIFO904
はこの場合、読出されるべき8つのワードを有する。6
ワードを読出すことはALMOST EMPTYフラグ
を設定し、8ワードを読出すことはEMPTYフラグを
設定する。
【0141】FIFO904から読出される8ビットの
ワードの順序は、ソフトウェア、ハードウェア、または
双方によって変更されてもよい。たとえば、ソフトウェ
アまたはハードウェアのいずれかが、FIFO904の
入力データピンによって受取られるデータの順序、また
はFIFO904の出力データピンによって送られるデ
ータの順序を変更してもよい。
【0142】図46は、図44および図45のFIFO
904の例示的なFIFO構成を示す。一実施例では、
GLB(図1のGLB102A)はデータを読出すため
の32の出力を有する512×32FIFOとして構成
され、第2のGLB(たとえば図1のGLB102B)
からのフラグロジック回路が、第1のGLB102Aに
関連する4つのフラグ用に用いられる。第2のGLB1
02Bは、第1のGLB102Aにおけるフラグロジッ
クを複製する6つの入力(6つの制御信号)と、フラグ
用の4つの出力とを有する。第2のGLB102Bは、
62の入力と28の出力とを有するCPLDとしても機
能してもよい。他の実施例では、図46に示された構成
よりも幅が広いまたは狭いFIFOが実現されてもよ
い。幅がより狭いFIFOは、ある入力および出力デー
タビットを(たとえばソフトウェアで)無視することに
よって実現されてもよい。
【0143】図47は、図44および図45のGLB1
02内のフラグ制御ロジック960の一実施例を示す。
図47はまた、図10のマクロセル104などの複数の
マクロセル内のレジスタ970−976としてのD型フ
リップフロップも示す。フラグ制御ロジック960は減
算器P1と4つの比較器962−968とを含み、比較
器962−968はフラグ値を4つのD型フリップフロ
ップ970−976へ出力する。
【0144】第1および第2のフラグロジック回路94
4、948(図45)がそれぞれリセット信号(ライン
914を介するブロックレベルリセットか、ライン79
2を介するグローバルリセットのいずれか)を受取る
と、第1および第2のフラグロジック回路944、94
8の読出および書込ポインタ(RPおよびWP)は、F
IFO904における第1の位置である「0」にリセッ
トされる。一実施例では、読出および書込ポインタは幅
が9から14ビットに変化してもよい。出力ポート91
0、920(図44)からの第1の有効RCLK/WC
LKクロックエッジにおいて、読出および/または書込
ポインタは位置「1」へ進められて、FIFO904に
おける次の位置を指し示す。
【0145】図47の減算器P1は、読出ポインタ(R
P)から書込ポインタ(WP)を減じ、FIFO904
に記憶されているワードの数(ワードカウント)を比較
器962−968へ出力する。比較器962−968は
ワードカウントをFull値、Almost Full
値、「0」、およびAlmost Empty値と比較
して、Fullフラグ、Almost Fullフラ
グ、Emptyフラグ、およびAlmost Empt
yフラグをそれぞれ生成する。Full、Almost
Full、およびAlmost Empty値はすべ
てプログラマブルである。4つのフラグはすべてマクロ
セルレジスタ970−976に記憶されてもよい。
【0146】フラグを記憶するマクロセルレジスタ97
0−976にリセット信号が送られると、FULLおよ
びALMOST FULLフラグはデアサートされ(0
に設定され)、EMPTYおよびALMOST EMP
TYフラグはアサートされる(1に設定される)。言い
換えれば、EMPTYおよびALMOST EMPTY
フラグの逆数(!EMPTYおよび!ALMOST_E
MPTY)が0に設定される。第3および第4の比較器
966、968はそれらの出力ポートにインバータを有
する。
【0147】図45の第1のフラグロジック回路944
は、読出ポインタをリセットして、パケット化された通
信用途において「再送」と呼ばれる機能を提供してもよ
い。この用途では、ユーザは、いつパケットがFIFO
904へ書込まれるか、またはFIFO904から読出
されるかの記録を取ってもよい。たとえば、リセット状
態から開始して、ユーザは1パケットの情報をFIFO
904へ書込む。次の読出動作は、EMPTYフラグが
アサートされるまでFIFO904からデータを読出
す。ユーザが同じパケットを再送したい場合、ユーザは
読出ポインタをリセットし、読出動作を再度開始する。
読出ポインタがリセットされると、EMPTYおよびA
LMOST EMPTYフラグは、リセットが終わっ
た、またはデアサートされた後に1読出クロックサイク
ル経つまでデアサートされない。これが境界周期レイテ
ンシーとして知られる状態である。
【0148】マクロセル104(図8)のいくつかは、
読出および書込クロック(RCLKおよびWCLK)の
双方がグローバルクロックGCLK信号ライン686か
らではなくGLB102(または図1のデバイス10
0)内で生成される、FIFOモード(図44および図
45)におけるGLB102を受容するよう修正されて
もよい。一実施例では、FULLおよびALMOST_
FULLフラグを記憶する4番目、5番目、12番目、
および13番目のマクロセルが、WCLK信号を受取る
よう修正される。
【0149】図48は、FIFOモードにおける図44
および図45のGLB102によって用いられてもよ
い、修正されたマクロセル104’および周辺ロジック
の一実施例を示す。一実施例では、図48の修正された
マクロセル104’は、FIFOモードにおける図44
および図45のGLB102に関連する4番目、5番
目、12番目、および13番目のマクロセルを表わす。
図48の修正されたマクロセル104’は、図10のマ
クロセル104の構成要素のすべてに加え、分割アレイ
スイッチマトリックス900の分割積項161からWC
LK信号を受取るさらなるMUX978を含む。さらな
るMUX978により、マクロセル104’はWCLK
信号によってクロックされるようになる。
【0150】図49は、FIFOモードにおいて構成さ
れる図8のGLB102およびマクロセル104A−1
04Zの一実施例を示す。図49は、読出および書込ク
ロックイネーブル信号、読出および書込クロック信号、
およびリセット信号をANDアレイおよびRCSF制御
ロジック250からマクロセル104A−104Zへパ
スする、ANDゲートおよびMUX252、980を示
す。図49では、FIFO制御ロジックはGLB102
用の共有PTクロックイネーブル(CLKEN)信号を
駆動し、それは読出データ出力を生成する1つまたはそ
れ以上のマクロセル出力レジスタ用のクロックイネーブ
ル(RCLKEN)でもある。フラグ出力を運ぶマクロ
セルレジスタは、すべてのクロックイネーブル信号を無
視するようプログラムされてもよい。なぜなら、これら
のレジスタはクロックイネーブル信号を必要としないか
らである。任意のクロックエッジが来るとすぐに、フラ
グは更新され、同期を取らなければならない。
【0151】図50−図53は、FIFOモードにおけ
る図44および図45のGLB120の例示的な信号タ
イミング図とパラメータとを示す。
【0152】プログラマブル幅変調 上述のように、GLB102は、SRAM、デュアルポ
ートSRAM、CAM、スイッチ、またはプログラマブ
ル幅変調を有するFIFOとして構成されてもよい。た
とえば、従来のFIFOは、本質的に同じデータ幅の読
出ポートおよび書込ポートを有する。「FIFO深さ」
は、FULLフラグがアサートされる前にFIFOが記
憶できるワードの数として規定される。FIFOに書込
まれたものより読出されたワードの方が多ければ、EM
PTYフラグがアサートされる。
【0153】この発明の一局面に従ったプログラマブル
幅変調を有するFIFOは、書込ポートデータ幅から独
立した読出ポートデータ幅を有する。たとえば、書込ポ
ートが読出ポートよりも幅が狭い場合、FIFO制御ロ
ジックは書込まれたデータをデータが読出される前にパ
ックする。書込ポートが読出ポートよりも幅が広い場
合、FIFO制御ロジックは書込まれたデータをデータ
が読出される前にアンパックする。FIFOはまた、読
出ワードカウントと書込ワードカウントとを比較してF
ULLおよびEMPTYフラグステータスを判定しても
よい。
【0154】スイッチモード 図54は、シャドウメモリ1004とメインメモリ10
05とを有する、スイッチモードにおける図1のGLB
102の一実施例を示す。図54のGLB102は、分
割ANDアレイスイッチマトリックス1000、書込ア
ドレスデコーダロジック1002、シャドウメモリ10
04、メインメモリ1005、スイッチブロック100
6、複数のMUX1016−1026、1032、OR
ゲート1028、および複数のD型フリップフロップ1
027−1031を含む。
【0155】図54の分割ANDアレイスイッチマトリ
ックス1000は、図12を参照して上述された分割A
NDアレイ400を含んでおり、さらなるロジックを含
んでいてもよい。分割ANDアレイスイッチマトリック
ス1000は、GRP110から68ビットの入力ライ
ン626を介して信号を受取る。分割ANDアレイスイ
ッチマトリックス1000は、DATAIN出力ポート
1007、データクロックイネーブル(DCE)出力ポ
ート1008、データクロック(DCLK)出力ポート
1009、リセット出力ポート1010、UPDATE
/BROADCAST/FLOWTHROUGH出力ポ
ート1011、アドレスクロック(ACLK)出力ポー
ト1012、書込アドレス(A_IN,A_OUT)出
力ポート1013、アドレスクロックイネーブル(AC
E)出力ポート1014、および書込イネーブル(W
E)出力ポート1015を有する。分割ANDアレイス
イッチマトリックス100の積項160−162は、ク
ロックイネーブル、クロックおよびリセット信号を実現
するために用いられる。
【0156】第1の組のMUX1016−1022は、
反転制御信号と非反転制御信号との間の選択を提供す
る。第2の組のMUX1023−1026は、分割AN
Dアレイスイッチマトリックス1000により生成され
る信号とライン686上のグローバルクロック信号GC
LKとの間の選択を提供する。D型フリップフロップ1
027−1031は、分割ANDアレイスイッチマトリ
ックス1000からシャドウメモリ1004およびスイ
ッチ1006への信号用のレジスタまたはバッファを提
供する。データ入力および出力は記録されても記録され
なくてもよい。
【0157】書込アドレスデコーダロジック1002
は、WE、A_INおよびA_OUTをシャドウメモリ
1004およびメインメモリ1005へパスする。A_
IN信号は、スイッチ1006がルーティングするため
のDATAINの1つまたはそれ以上の入力ビットを選
択する。A_OUT信号は、スイッチ1006によって
ルーティングされる出力を決定するルーティング構成を
特定する。シャドウメモリ1004およびメインメモリ
1005は、ルーティング構成(A_OUT)を記憶す
る。DATAINレジスタ1027はDCLKおよびD
CE信号によって制御される。A_INおよびA_OU
T用のアドレスレジスタ1030は、ACLKおよびA
CE信号によって制御される。一実施例では、DCL
K、DCE、WE、UPDATE、およびACE入力は
用いられない。WE、UPDATE、およびACE入力
ポートは、それらが用いられない場合には1に結合され
てもよい。
【0158】スイッチブロック1006は、ルーティン
グ構成に従って、最大32ビットのデータをマクロセル
レジスタ、ローカルルーティングプール、またはGRP
110(図1)などの外部ソースへ出力する。
【0159】図55は、図54のGLB102内のスイ
ッチブロック1006Aの一実施例を示す。スイッチブ
ロック1006Aはビットモードにあり、32×32×
1スイッチ1040を含む。図55のスイッチブロック
1006Aは、全モードについて1サイクルごとに1つ
の接続を有する。スイッチブロック1006Aがアサー
トされたBROADCAST信号を受取ると、スイッチ
ブロック1006Aは(図54のシャドウメモリ100
4およびメインメモリ1005内の)A_IN[0:
4]によって選択された1ビットの入力を、32の1ビ
ットの出力ピン/ラインの各々へルーティングする。
【0160】スイッチブロック1006Aがアサートさ
れたFLOWTHROUGH信号を受取ると、各1ビッ
トの入力ピンはその値(0または1)を対応する1ビッ
トの出力ピンへ出力する。たとえば、入力ピン0はその
値を出力ピン0へ出力し、入力ピン1はその値を出力ピ
ン1に出力する、などである。
【0161】図56は、図54のGLB102内のスイ
ッチブロック1006Bの別の実施例を示す。スイッチ
ブロック1006Bはバスモードにあり、2つの16×
16スイッチ1042A、1042Bと16の2ビット
の出力バス(または2組の16の1ビットの出力ライン
/ピン)とを含む。スイッチ1042A、1042Bは
双方とも、同じ接続で同時に更新されてもよい。1組の
16の1ビットのDATAIN入力ラインと1組の16
の1ビットのBUS_OUT出力ラインとの間には1ビ
ット対1ビットの関連があるため、図56のスイッチブ
ロック1006Bはより小さなアドレス入力を用いても
よい。言い換えれば、図56のスイッチブロック100
6B用のAINおよびAOUT入力は、(図55のスイ
ッチブロック1006Aの場合のような)5ビット幅で
はなく、4ビット幅であってもよい。
【0162】図57は、図54のGLB102内のスイ
ッチブロック1006Cの別の実施例を示す。スイッチ
ブロック1006Cはバスモードにあり、4つの8×8
スイッチ1044A−1044Dと8つの4ビットの出
力バス(または4組の8つの1ビットの出力ライン/ピ
ン)とを含む。4つのスイッチ1044A−1044D
はすべて、同じ接続で同時に更新されてもよい。図57
のスイッチブロック1006C用のAINおよびAOU
T入力は、3ビット幅であってもよい。
【0163】MULTICYCLE MULTICAS
Tモードでは、スイッチブロック1006A−1006
C(図55−図57)は、1ビットの入力を多数の1ビ
ットの出力へルーティングする(マルチキャストす
る)。ルーティング構成(A_OUT)をシャドウメモ
リ1004(図54)へロードするため、多数のクロッ
クサイクルが用いられる。出力アドレスビットA_OU
Tは「符号化された」として言及されてもよい。SIN
GLE CYCLE MULTICASTモードでは、
ルーティング構成をシャドウメモリ1004(図54)
へロードするため、単一のクロックサイクルが用いられ
る。出力アドレスビットA_OUTは「符号化されず」
として言及されてもよい。
【0164】図58は、16ビット幅のA_OUT出力
バス1050’を有する、SINGLE CYCLE
MULTICASTモードにおける16×16×2スイ
ッチブロック1006B’の一実施例を示す。図59
は、8ビット幅のバスA_OUT1052’を有する、
DUAL CYCLE MULTICASTモードにお
ける8×8×4スイッチブロック1006C’の一実施
例を示す。
【0165】一実施例では、シャドウメモリ1004か
らメインメモリ1005へのWE、A_IN、およびA
_OUTの更新は1つのクロックサイクルを用いてお
り、スイッチ1006はメインメモリ1005が接続を
動作している間に構成されてもよい。
【0166】図60は、図54のGLB102における
スイッチ1006およびその他の構成要素の一実施例を
示す。図60は、ローカルルーティングプール(LR
P)1054、データポートレジスタ1027、アドレ
スポートレジスタ1030、MUX1032、スイッチ
1006、シャドウメモリ1004、スイッチメモリ1
005、DATAOUTレジスタ1062、およびDA
TAOUT MUX1060を示す。
【0167】図60のLRP1054は、スイッチ10
06(図60)がDATAINからDATAOUTへデ
ータを転送している間にルーティング構成(A_OU
T)をシャドウメモリ1004へロードすることによっ
て、スイッチ機能性を向上させてもよい。LRP105
4は次にUPDATE信号をアサートし、それはルーテ
ィング構成をシャドウメモリ1004からメインメモリ
1005へ単一サイクルでロードする。
【0168】FLOWTHROUGHモードでは、メモ
リ1004、1005は更新される必要はない。このた
め、FLOWTHROUGH信号がアサートされる限
り、スイッチ1006はFLOWTHROUGHモード
に適合する。FLOWTHROUGH信号がデアサート
されると、スイッチ1006はメインメモリ1005に
記憶されたルーティング構成へ戻る。
【0169】図61は、図54のGLB102の複数の
スイッチタイミングパラメータを示す。図62−図65
は、図54のGLB102の例示的なタイミング図を示
す。
【0170】ANDアレイにおける積項回路 図66−図68は、図4−図7における1つの積項回路
208の一実施例を示す。図66−図68の積項回路2
08は、図66−図68に示すようなさまざまなステー
ジに構成された複数のNANDゲート1100A−11
00Z、1104A−1104F、1108、およびN
ORゲート1102A−1102Q、1106A−11
06Cを含む。各積項回路208は、68ビットの入力
または136ビットの入力などの多数ビットの入力を、
書込ワードライン(WWL)1100および/または行
入力ライン1112を介して受取ってもよい。ライン1
114および1116は、制御信号またはさらなる入力
信号を受取ってもよい。積項回路208は、積項出力信
号をNANDゲート1108からライン1120を介し
て生成するよう構成されている。
【0171】他の実施例では、積項回路208は、図6
6−図68に示されるものよりも少ないまたは多いゲー
トを含んでいてもよい。たとえば、図66−図68では
34のNANDゲート1100A−1100Zが積項回
路208の第1のステージにおいて示されているが、積
項回路208の他の構成は、第1のステージにおいて3
4よりも少ないまたは多いNANDゲートを有していて
もよい。
【0172】一実施例では、図66−図68の積項回路
208の第1のステージにおける各NANDゲート11
00は、複数のCMOS回路を含む。たとえば、図66
−図68の第1のステージにおける各NANDゲート1
100は、図69のCMOS回路1140、図73のC
MOS回路1400、図74のCMOS回路1440、
または図75のCMOS回路1500などの4つのCM
OS回路を含んでいてもよい。
【0173】一実施例では、164の積項回路208の
うち、(入力ルーティングまたは積項ロジック用に構成
された)36の積項回路208は、図74のCMOS回
路1440などのCMOS回路を含み、(メモリまたは
積項ロジック用に構成された)128の積項回路208
は、図73のCMOS回路1400または図75のCM
OS回路1500などのCMOS回路を含む。一構成で
は、メモリまたは積項ロジック用に構成された128の
積項回路208のうち、64の積項回路208は、図7
3のCMOS回路1400などのCMOS回路を含み、
64の積項回路208は、図75のCMOS回路150
0などのCMOS回路を含む。
【0174】一実施例では、NORゲート1102A−
1102Q、1106A−1106CとNANDゲート
1104A−1104F、1108の第2、第3、第
4、および第5のステージは、標準NORおよびNAN
Dゲートである。
【0175】別の実施例では、図4−図7の各積項回路
208は、図66−図68に示された構造の代わりに、
1つまたはそれ以上のセンスアンプを含む。
【0176】CMOS回路 図69は、図66−図68に示された積項回路208に
用いられてもよいCMOS回路1140の一実施例を示
す。図69のCMOS回路1140は、「SRAMセ
ル」、「CMOSセル」、5−トランジスタセル、5−
Tセル、または「構成セル」とも呼ばれてもよい。CM
OS回路1140は、行書込ワードライン(RWWL)
1144、行入力ライン1142、行書込ビットライン
(RWBL)1146、nチャネル金属酸化物半導体
(NMOS)ゲート1148、インバータ1154、イ
ンバータ1156(各インバータは2つのトランジスタ
を含む)、NANDゲート1150、および出力ライン
(セルアウト)1152を含む。
【0177】図69の行書込ワードライン1144と行
書込ビットライン1146とは、行入力ライン1142
上の入力信号が出力ライン1152へパスされたかどう
かを判定する。インバータ1154、1156はラッチ
として作用してもよい。
【0178】図69に示されるCMOS回路1140な
どのCMOS回路を有する図66−図68の積項回路2
08は、1つまたはそれ以上のセンスアンプによって実
現される積項回路208よりも、機能を早く行ない、よ
り低い電圧および/または電流を使用し、よりスケーラ
ブルである。
【0179】図4−図7では、CPLD102のAND
アレイ200は行/列構造を含む。図4−図7のAND
アレイ200を図69および図71と一貫して説明する
ため、図4−図7を時計方向に90度回転させ、積項列
208A−208Zと緩衝された入力行206A−20
6Zを用いて以下に説明する。同様に、図66−図68
の積項回路208を図69および図71と一貫して説明
するため、図66−図68を時計方向に90度回転させ
て以下に説明する。
【0180】(時計方向に90度回転された)図4−図
7では、バッファ206A−206Zの行はロジック入
力によって駆動される。図4−図7および図66−図6
8の積項回路208A−208Zの列は、入力の関数
(積項)を形成する。一構成では、68の入力と68の
反転された/相補された入力とがあり、全部で136の
入力を提供する。各積項列の関数は、136の構成セル
のプログラムされた状態によって決定される。図69の
セル1140などの各構成セルは、行/列クロスポイン
トを制御する。図69では、構成セル1140が行書込
ワードライン(RWWL)1140と行書込ビットライ
ン(RWBL)1146とによってプログラムされる
と、入力行1142でのロジック入力は、NANDゲー
ト1150への入力として対応する列にパスするように
なる。
【0181】(時計方向に90度回転された)図66−
図68は、図4−図7の1つの積項列および入力の行に
関連した1つの積項回路208を示す。図4−図7で
は、積項はORロジックゲート212、214へ接続さ
れ、次にマクロセル入力へルーティングされる。
【0182】分割ANDアレイおよび制御ロジック概要 図4−図9に示すように、GLB102は図4−図7に
おいてANDアレイ200を含み、それは、図1−図6
5を参照して上述されたように、および図70−図78
を参照して以下に説明されるように、図69に示される
SRAMセル1140などの複数のSRAMセルと、さ
まざまなメモリ機能をサポートするさらなる制御ロジッ
クとを含む。
【0183】図70は、図1のGLB102の一実施例
を示す。GLB102は、RCSFANDアレイ部分1
200、1つまたはそれ以上の書込ワードライン(WW
L)/読出行ドライバ1202、入力ルーティングAN
Dアレイ部分1204、1つまたはそれ以上の列ドライ
バ1206、CAM制御ロジック1208、データアウ
トマルチプレクサ(DOUTMUX)1210、RCS
FクロックMUXおよびRCSF入力レジスタ122
2、制御/雑RCSFデコーダ1220、アーキテクチ
ャ構成セル(ARCH)1212、複数のマクロセル1
214、1218、およびFIFO制御ロジック121
6を含む。
【0184】一実施例では、図70に示されたすべての
構造はハードウェアまたはハードワイヤードロジックに
おいて実現され、GLB102(図2)内、たとえばダ
イの内部に自蔵される。言い換えれば、図70のGLB
102は有利なことに、CPLD、デュアルポートRA
M、ROM、FIFO、CAM、およびスイッチ機能を
行なうのにGLB102の外部にロジックを必要としな
い。
【0185】一実施例では、図70のRCSF AND
アレイ部分1200は、図4−図7、図66−図68、
図69、図73、図74、および図75を参照してここ
に記載されたANDアレイ積項回路208を128含
む。また、RCSF ANDアレイ部分1200は他の
回路を含んでいてもよい。
【0186】一実施例では、入力ルーティングANDア
レイ部分1204は、図4−図7、図12、図17、図
66−図68、および図69を参照してここに記載され
たANDアレイ積項回路208を32含む。ANDアレ
イ部分1204は、特別の目的に使用されるANDアレ
イ積項回路208を4つ、さらに含んでいてもよい。入
力ルーティングANDアレイ部分1204は、グローバ
ルルーティングプール110(図1)またはその他のル
ーティング構造へ結合されてもよい。
【0187】図70のWWL/RROWドライバ120
2は、以下に記載される図71のアドレスデコーダ13
10、1314、図76のアドレスデコーダ1608
A、1608B、図71の行ドライバ1304、図76
の行ドライバ1604A、1604B、および/または
図78の行ドライバを表わしてもよい。図70のWWL
/RROWドライバ1202は、図69のWWLライン
1144および行入力ライン1142、図73のWWL
ライン1424A、1424B、および行入力ライン1
415、図74のWWLライン1448、および/また
は図75のWWLライン1510A、1510B、15
12A、1512Bを駆動してもよい。
【0188】図70の列ドライバ1206は、以下に記
載される図71のビットラインドライバ1316、図7
6のビットラインドライバ1610A、1610B、お
よび/または図78のy−デコーダ1810を表わして
もよい。列ドライバ1206は、図73の列選択ライン
1418およびビットライン1422A、1422B、
図74のビットライン1442、1444、および/ま
たは図75の列選択ライン1506およびビットライン
1508A、1508Bを駆動してもよい。
【0189】図70のRCSFクロックMUXおよびR
CSF入力レジスタ1222は、ここに記載されたあら
ゆるクロックMUXおよび入力レジスタ、たとえば図1
3−16の入力レジスタ502、504、図17のクロ
ックMUX648、650、652、654、666、
668、670、672、およびレジスタ674、67
8、680、682などを表わしてもよい。
【0190】図70のCAM制御ロジック208は、図
37、図38、図43、図78の1つまたはそれ以上の
プライオリティエンコーダ、およびカスケードされた入
力を有する積項拡張回路(積項拡張器)(図11)を表
わしてもよい。たとえば、CAM制御ロジック208
は、図11において積項回路208Fの出力を積項回路
208F’とカスケードし、136の入力(68の入力
×2)に基づいた積項を形成してCAMの幅を拡張する
ことができる。
【0191】図70のデータアウトマルチプレクサ(D
OUTMUX)1210は、図71のy−デコーダ13
18およびモード選択回路1322、および/または図
76のy−デコーダ1612A、1612B、およびモ
ード選択1618を表わしてもよい。以下に記載される
ように、図71のy−デコーダ1318と図76のy−
デコーダ1612A、1612Bとは、複数のマルチプ
レクサを含んでいてもよい。
【0192】図70のアーキテクチャ構成メモリセル
(ARCH)1212は、PTSA202(図4−図
7)を制御する構成ビットを記憶するよう構成されてい
る。アーキテクチャ構成セル(ARCH)1212は、
ここに記載された他の回路、たとえば図71および図7
6のモード選択回路1312、1322、1606A、
1606B、1618、マクロセル104A−104Z
(図4−図7)などを制御する構成ビットを記憶しても
よい。一実施例では、アーキテクチャ構成メモリセル
(ARCH)1212は、図69のメモリセル1140
などの複数のメモリセルを含む。
【0193】図70のFIFO制御ロジック1216
は、図44および図45の読出および書込アドレスデコ
ーダロジック902、904、フラグロジックおよびポ
インタ944、948、および/または、図77の読出
および書込カウンタ1706、1708、およびFIF
Oフラグロジック1710を表わしてもよい。
【0194】制御ロジックを有するCPLD/RAM回
図71は、図4−図7、図8、図17、または図18の
GLB102を表わしてもよいCPLD/RAM回路1
300の一実施例を示す。図71の回路1300は、図
4−図7のANDアレイ200の2つの部分1302
A、1302Bと、メモリ(SRAM/RAM)または
CPLDのいずれかとして機能するさらなるロジックと
を含む。
【0195】さらなるロジックは、行ドライバ1304
A、1304B、読出x−アドレスデコーダ(「x−デ
コーダ」)1310、モード選択回路1312A、13
12B、書込アドレスデコーダおよび書込ワードライン
(WWL)ドライバ1314、ビットラインドライバ1
316、選択回路1350、1352、読出列−アドレ
スデコーダ(「y−デコーダ」)1318、ORゲート
のアレイ1320、別のモード選択回路1322、PT
SA202、および1組のマクロセル104A−104
Z(図4−図7)を含む。各行ドライバ1304は、複
数のバッファおよびインバータを含んでいてもよい。一
構成では、たとえば、行ドライバ1304Aは64のバ
ッファと64のインバータとを含み、行ドライバ130
4Bは4つのバッファと4つのインバータとを含む。
【0196】モード選択回路1312Aは、回路131
2BからCPLDモードまたはRAMモード用の構成ビ
ットを受取り、次に行ドライバ1304Aの出力(CP
LDモード)か読出アドレスデコーダ1310の出力
(RAMモード)のいずれかを選択して、ANDアレイ
部分1302Aへライン/バス1324Aを介して送
る。
【0197】一実施例では、CPLD機能を行なうた
め、行ドライバ1304Aおよび1304Bは68の入
力ビットとそれらの68の反転された入力ビット(計1
36)を受取り、モード選択回路1312Aおよび13
12Bへパスする。モード選択回路1312Aおよび1
312Bは、行ドライバ1304Aおよび1304Bの
136ビットの出力を、ANDアレイ部分1302Aお
よび1302Bへライン/バス1324Aおよび132
4Bを介してパスし、積項ロジックを実現する。組合さ
れたANDアレイ部分1302Aおよび1302Bは1
28の出力をORゲートのアレイ1320へ送り、モー
ド選択回路1322はアレイ1320の出力をPTSA
202と32のマクロセル104A−104Z(図4−
図7)へパスする。ORゲートのアレイ1320は、3
2の6入力ORゲート212(図4−図7)のアレイ、
および/または32の5入力のORゲートのアレイを表
わしてもよい。
【0198】第2のANDアレイ部分1332(たとえ
ば入力ルーティングプール(IRP))は、同じ68の
入力をGRPから取り入れ、別の32の積項を生成して
全部で160の積項とし、ORゲートのアレイ1320
へ送る。
【0199】RAMモードでは、図71のANDアレイ
部分1302Aの一構成は、各ワードが128ビットを
含む場合、128ワードを記録する。128ビットは1
28の積項の結果である。ANDアレイ部分1302A
は、図20に列挙されたRAM構成のうちのいずれか1
つとして機能するよう構成されてもよい。
【0200】RAM読出機能を行なうため、読出アドレ
スデコーダ1310は、7ビットのアドレスを受取って
デコードし、ANDアレイ部分1302A内の読出され
るべき128の可能メモリ行エントリ(27=128)
のうちの1つを選択する。読出アドレスデコーダ131
0は、128のラインのうちの1つの上の1つの活性信
号(「1」)をモード選択回路1312Aへ送り、他の
127のライン上の「0」をモード選択回路1312A
へ送る。このため、読出アドレスデコーダ1310は
「1−ホット」デコーダ回路として記載されてもよい。
別の構成では、読出アドレスデコーダ1310は、12
8のラインのうちの1つの上の1つの「0」をモード選
択回路1312Aへ送り、他の127のライン上の
「1」をモード選択回路1312Aへ送るよう構成され
る。
【0201】モード選択回路1312Aは、読出アドレ
スデコーダ1310の出力をライン/バス1324Aを
介してANDアレイ部分1302Aに送る。図69にお
ける行入力ライン1142は、図71におけるライン/
バス1324Aの一部である。読出アドレスデコーダ1
310の出力は、128SRAMセルの行を選択する
(たとえば、図69におけるセル1140または図73
におけるセル1400)。読出アドレスデコーダ131
0の出力は、ANDアレイ部分1302Aの各積項回路
208(図66から図68)から1つのSRAMセルを
選択して、ライン/バス1330を介して出力する。図
66から図68の出力ライン1120は、図71のライ
ン/バス1330の一部である。RAM読出モードにお
いては、ANDアレイ部分1302Aは、ライン/バス
1330を介して、(RAMモードにおいて用いられ
る)yデコーダ1318に128ビット出力を出力す
る。
【0202】yデコーダ1318は、ANDアレイ部分
1302Aの出力をさまざまなデータ幅に構成可能にす
る。一実施例においては、yデコーダ1318は、12
8ビットを32ビットずつ出力する4対1マルチプレク
サ(MUX)としての役割を果たすよう構成可能であ
る。別の構成においては、yデコーダ1318は16ビ
ットずつ出力する8対1MUX、8ビットずつ出力する
16対1MUX、4ビットずつ出力する32対1MU
X、2ビットずつ出力する64対1MUX、または1ビ
ットずつ出力する128対1MUXとして構成可能であ
る。
【0203】モード選択回路1322は、yデコーダ1
318の出力(RAMモード)か、またはORゲートア
レイ1320の出力(CPLDモード)のいずれかを選
択して、PTSA202およびマクロセル104A−1
04Zに送る。
【0204】入力ルーティングプール(IRP)とも呼
ばれる別のANDアレイ1332(図71)は、68G
RP入力から64出力を生成する。64出力はRAMと
して構成される回路1300によってアドレス、入力デ
ータ、制御信号および他のものとして用いられる。
【0205】RAM書込機能を行なうために、書込アド
レス/書込ワードライン(WWL)ドライバ1314
は、7ビットアドレスを受けてデコードし、ANDアレ
イ部分1302Aの128個の可能なメモリ行エントリ
(27=128)のうちの1つを選択して、データを書
込む。書込アドレスデコーダ1314は、128ライン
1326のうちの1つに信号(「1」または「0」)を
ANDアレイ部分1302Aに選択回路1350を介し
て送るが、これはアドレスシフトレジスタ(ASR)か
らWWL信号を受取る。図69の行書込ワードライン
(RWWL)1144は、図71のライン/バス132
6の一部である。
【0206】ビットラインドライバ1316は、32ビ
ットワードおよび2ビットアドレス(00,01,1
0,11)を受け、どの32ビットの群を128SRA
Mセルの行に一度に書込むかを選択するが(図69また
は図74の1140を参照のこと)、これは書込アドレ
スデコーダ1314によって活性化される。ビットライ
ンドライバ1316は、選択回路1352およびライン
/バス1328を介してANDアレイ部分1302Aに
出力を送る。選択回路1352は、データシフトレジス
タ(DSR)からビットライン入力を受ける。図69の
行書込ビットライン(RWBL)1146、または図7
4のビットライン1442、ビットラインバー1444
は、図71のライン/バス1328の一部である。
【0207】図72はCPLD/RAM回路の一実施例
を示すが、ここで図71のANDアレイ1302Aの半
分1360はロジックとして用いられ、ANDアレイ1
302Aの別の半分1362はメモリとして用いられ
る。一般的に、ANDアレイ1302Aは分割され(機
能的に分割されるのであって、物理的である必要はな
い)、各部分は互いから独立してロジックモードまたは
メモリモードで機能し得る。
【0208】デュアル−書込ポートSRAMセル 一実施例においては、図70の入力ルーティングAND
アレイ部分1204(たとえば、図17の入力ルーティ
ングに対する分割ANDアレイスイッチマトリックス6
24A)における積項回路208(図4から図7、図6
6から図68)は、図69の複数のCMOS回路114
0を含む。対照的に、図70のRCSFANDアレイ部
分1200(たとえば、図17のSRAMブロック60
0A)の積項回路208(図4から図7、図66から図
68)は、図73のSRAMセル1400を複数個含
む。
【0209】図73は、SRAMセル1400の一実施
例(「デュアルポートRAMセル」とも呼ばれる)を示
すが、これは図69のSRAMセル1140を改良した
バージョンである。図73のSRAMセル1400は、
2組の独立行入力ビットライン(ABL,/ABLおよ
びBBL,/BBL)1422A、1422B、142
2C、1422D、2つの独立行書込ワードライン(A
WWLおよびBWWL)1424A、1424B、列選
択ライン1418、8個のNMOSゲート1402A、
1404A、1410A、1412A、1402B、1
404B、1410B、および1412B、2つのイン
バータ1410、1412、NANDゲート1414、
行ドライバライン1415、および出力ライン1416
を含む。図73のSRAMセル1400は、1ビットの
データを記憶するよう構成される。
【0210】一実施例においては、図73のセル140
0のようなSRAMセルは、図9のGLB102にデュ
アルポートRAMを提供させる。図73のSRAMセル
1400は、2つの書込ワードラインドライバ(たとえ
ば、図76のドライバ1608A、1608B)に結合
される2つの独立行書込ワードラインAWWL 142
4AおよびBWWL 1424B、および2つのビット
ラインドライバ(図76のビットラインドライバ161
0A、1610B)に結合される2組の独立行書込ビッ
トラインABL 1422A、/ABL 1422C、
およびBBL1422B、/BBL 1422Dを有
し、デュアルポートSRAM(ポートAおよびポート
B)をサポートする。2つのワードラインBWWL 1
424BおよびビットラインBBL 1422B、/B
BL 1422Dは、デュアルポートRAMに対する付
加的な書込ポート(ポートB)をサポートするために含
まれる。
【0211】データは、書込ワードラインAWWL 1
424AまたはBWWL 1424Bのいずれかを選択
し、かつデータを対応のビットラインABL 1422
A、/ABL 1422Cの組またはBBL 1422
B、/BBL 1422Dの組に適用することにより、
行ごとに書込まれる。列選択ライン1418は、列アド
レスデコーダ(Yデコーダ)1612B(図76)によ
って、書込ロジックが行内の選択ワードを書込むように
駆動される。これは、データ幅が行幅よりも狭い用途、
すなわち、各行が1つ以上のワードを含む用途、たとえ
ば各行が32ビットの4ワードを含む用途(行ごとに4
×32=128ビット)に、特に有用である。行選択ラ
イン1418は、ポートAまたはポートBが選択された
場合にアサートされる。データは、行ごとに行ラインド
ライバ1415を選択することにより、たとえば検査期
間の間に読出/出力され得る。
【0212】一実施例においては、デュアルポート読出
は、各ポートの書込ワードラインおよびビットラインを
読出すことにより達成される。この実施例は、ビットラ
インAおよびビットラインBに装着されるセンスアンプ
を有し得る。
【0213】別の実施例においては、ポートごとの読出
経路NAND1414および行ドライバラインが複製さ
れる。図73のSRAMセル1400が読出ポート14
16を1つしか有さないので、デュアルポート読出を達
成するための別の方法は、複製されたコピーをANDア
レイ部分1302A(図71)の2つの半分にコピーす
ることである。すなわち、デュアルポートRAM読出動
作をサポートするためには、ANDアレイ部分1302
A(図71)は2つの半分1602A、1602B(図
76)に分割され得る。2つの半分1602A、160
2Bは同一の内容を有し、2つの読出ポートにより独立
して読出され得る。
【0214】別の実施例においては、図66から図68
における積項回路208は、図74の6トランジスタ
(6T)セルのようなさまざまな構成のSRAMセルを
用い得る。
【0215】図74は、図66から図68における積項
回路208において用い得るSRAMセル1440の別
の実施例を示す。図74におけるSRAMセル1440
は、2つのNMOSゲート1446A、1446B、2
つのインバータ(各インバータは2つのトランジスタを
含む)、NANDゲート1452、ビットライン(B
L)1442、ビットラインバー1444(または「ビ
ットバーライン」)、読出ポート1450、および読出
ワードライン1454を含む。図74の読出ワードライ
ン1454は、図73の行ドライバライン1415に類
似する。
【0216】シャドーメモリを備えたデュアル書込ポー
トセル 図75は、デュアル書込ポートセル1502Aおよびシ
ャドーメモリセル1502Bを含む回路1500の一実
施例を示すが、これは図1のGLB102に用いられて
スイッチを実現することができる(たとえば、図54に
おけるメインメモリアレイ1005およびシャドーメモ
リアレイ1004)。デュアル書込ポートセル1502
Aは、複数のNMOSゲート1504A−1504Dを
介してシャドーメモリセル1502Bとスタックされ
る。「シャドーメモリ」方法においては、データは、ま
ず1つおきにセルに書込まれるか、または1502Bの
ような「偶数」の行のセルに書込まれる。「更新」サイ
クルにおいては、1つのセルに書込まれるデータは近接
するセル、たとえばセル1502Aのような「奇数の」
行にあるセルにロードされ得る(書込まれるまたは更新
される)。NMOSゲート1504A−1504Dは、
最下部のセル1502Bから最上部のセル1502Aへ
の信号をローディングするよう制御する。
【0217】一実施例においては、回路1500はさら
に、2つのNANDゲート1520および1522を含
み得る。
【0218】デュアルポートRAM回路 図76は、デュアルポートRAM回路1600の一実施
例を示すが、これは図9、図7Aまたは図7Bにおける
GLB102を表わし得る。デュアルポートRAM回路
1600は、64インバータのアレイ1604A、ポー
トAxアドレスデコーダ1608A、ポートAモード選
択1606A、バッファのアレイ1604B、ポートB
xアドレスデコーダ1608B、ポートBモード選択1
606B、ポートAビットラインドライバ1610A、
ポートBビットラインドライバ1610B、ANDアレ
イ部分1602A、別のANDアレイ部分1602B、
ポートAyアドレスデコーダ1612A、ポートByア
ドレスデコーダ1612B、ANDゲートのアレイ16
14、ORゲートのアレイ1616、モード選択161
8、選択回路1620−1626、PTSA202およ
び32マクロセル104A−104Z(図4から図7)
を含む。
【0219】図76のデュアルポートRAM回路160
0の動作は、図71のCPLD/RAM回路1300と
同様であるが、ANDアレイ部分1302A(図71)
が2つの半分1602A、1602Bに分割されてデュ
アルポート読出およびデュアルポート書込を提供する点
が異なる。
【0220】一実施例においては、2つのアレイ部分1
602A、1602Bは物理的には分かれておらず、例
示の目的でのみ別々の部分として示される。2つのAN
Dアレイ部分1602A、1602Bは、図73および
図75に示されるCMOS回路1400、1500のよ
うな偶数および奇数の行のCMOS回路をそれぞれ含み
得る。別の実施例においては、2つのANDアレイ部分
1602A、1602Bは、ANDアレイ220の最上
部および最下部部分を含み得る(図4から図7)。
【0221】RAMモード動作においては、ポートAx
デコーダ1608Aは、ポートAアドレスをデコード
し、同じデータをANDアレイ部分1602A、160
2Bの両方に同時に書込む。ポートBxデコーダ160
8Bは、ポートBアドレスをデコードし、ANDアレイ
部分1602A、1602Bの両方に同時にデータを書
込む。同様に、ポートAビットラインドライバ1610
Aは、ANDアレイ部分1602A、1602Bの両方
において「A」ビットラインを同時に活性化させ得る。
ポートBビットラインドライバ1610は、ANDアレ
イ部分1602A、1602Bの両方において「B」ビ
ットラインを同時に活性化させ得る。こうして、AND
アレイ部分1602A、1602Bは両方とも同じデー
タを記憶する。
【0222】もしポートAおよびポートBxデコーダ1
608A、1608Bならびにビットラインドライバ1
610A、1610Bが、ANDアレイ部分1602
A、1602Bの1つにおける同じメモリ場所に書込を
試みると、データ書込は有効ではない。回路1600
は、エラーフラグをアサートし得る。
【0223】別の実施例においては、ポートAxデコー
ダ1608AがANDアレイ部分1602Aにデータを
書込み、ポートBxデコーダ1608BがANDアレイ
部分1602Bにデータを書込む。データがANDアレ
イ部分1602Aに書込まれると、データはANDアレ
イ部分1602Bにコピーされる。同様に、データがA
NDアレイ部分1602Bに書込まれると、データはA
NDアレイ部分1602Aにコピーされる。
【0224】図76における2つの独立ポートyデコー
ダ1612A、1612Bは、ANDアレイ部分160
2Aおよび1602Bに書込まれたデータを読出し、デ
ータをモード選択1618に、次いでPTSA202を
介して32マクロセル104A−104Zに転送する。
【0225】CPLDモードにおいては、モード選択1
606Bは、64のバッファされた入力をANDアレイ
部分1602Bにパスし得る。モード選択1606A
は、64の反転入力をANDアレイ部分1602Aにパ
スし得る。2つのANDアレイ部分1602A、160
2Bは、ANDゲートのアレイ1614の出力を生成し
得るが、ここで各ANDゲートは図66から図68のA
NDゲート1108または図12におけるANDゲート
回路402であり得る。ANDゲートのアレイ1614
は、ORゲートのアレイ1616に出力する。ORゲー
トのアレイ1616は、32 6入力ORゲート212
(図4から図7)および/または32 5入力ORゲー
ト214のアレイを表わし得る。ORゲートのアレイ1
616は、データをPTSA202(図4から図7)お
よび32マクロセル104A−104Zに転送し得る。
【0226】FIFO回路 図77は、FIFO回路1700の一実施例を示し、こ
れは図8、図44および図45または図49のGLB1
02を表わし得る。FIFO回路1700は、図71を
参照して上に記載された他の構成要素の中で、読出カウ
ンタ/ポインタ1706、読出アドレスライン171
8、書込カウンタ/ポインタ1708、書込アドレスラ
イン1720、SRAM部分1302A、読出データ出
力ライン1330、FIFOフラグロジック1710、
モード選択1322、選択回路1730−1736およ
び32マクロセル104A−104Z(図4から図7)
を含む。一実施例においては、読出カウンタ/ポインタ
1706、書込カウンタ/ポインタ1708およびFI
FOフラグロジック1710は、ハードワイヤードロジ
ックを含むが、これはまた「FIFO制御ロジック」と
も呼ばれる。
【0227】一実施例においては、図77の読出カウン
タ1706およびFIFOフラグロジック1710の半
分は、図44および図45のフラグロジックおよびフラ
グポインタ944と等価である。同様に、図77におけ
る読出カウンタ1708およびFIFOフラグロジック
1710の半分は、図44および図45のフラグロジッ
クおよびフラグポインタ948と等価である。
【0228】図77の読出カウンタ/ポインタは、読出
データライン1330を介して読出/出力されるべき次
のFIFOメモリ場所のアドレスを、ANDアレイ部分
1302Aに送る。書込カウンタ/ポインタ1708
は、書込まれるべき次のFIFOメモリ場所のアドレス
をANDアレイ部分1302Aに送る。一実施例におい
ては、FIFO回路1700は、独立しており非同期の
読出クロックラインおよび書込クロックラインをさらに
含む。
【0229】図77のSRAM部分1302Aは、デー
タを記憶するようSRAMとして構成されるANDアレ
イを表わす。
【0230】RCLKライン、WCLKライン、および
書込データラインはすべてIRP1332に接続され
る。図77におけるモード選択1322は、図71にお
けるモード選択1322と等価である。SRAM130
2Aは、FIFOデータ幅にマッチングするよう構成さ
れる。
【0231】FIFOフラグロジック1710は、読出
カウンタ1706の値と書込カウンタ1708の値とを
比較する。たとえば、FIFOフラグロジック1710
は、読出カウンタ1706を書込カウンタ1708から
減算して、メモリ1302Aの実際の深さを判断する。
FIFOフラグロジック1710は次いで、メモリ13
02Aの実際の深さと予め定められた深さ値とを比較し
て、メモリ1302Aがフルであるかどうかを判断す
る。図77のFIFOフラグロジック1710は、メモ
リ1302Aがフルである場合(読出カウンタ1706
=書込カウンタ1708)FULLフラグをアサート
し、メモリ1302Aが空である場合EMPTYフラグ
をアサートし、ALMOST FULLフラグおよびA
LMOSTEMPTYフラグをアサートする。FULL
フラグは、カウンタ1708にメモリ1302Aへのデ
ータ書込を停止させる。
【0232】FIFOフラグロジック1710は、2つ
の時間領域を扱うためのタイミング回路を有し、一方の
時間領域は読出カウンタ1706に対するものであり、
他方の時間領域は書込カウンタ1708に対するもので
あって、フラグの揺れを避ける。こうして、FIFOフ
ラグロジック1710はメモリ1302Aに記憶される
データの完全性を保護し、すなわち、データの上書きま
たは損失を避ける。FIFOフラグロジック1710
は、他の回路にフラグステータスを出力し得る。
【0233】CAM回路 図78は、CAM回路1800の一実施例を示すが、こ
れは図8、図33、図35または図38のGLB102
を表わし得る。CAM回路1800は、図71を参照し
て上に記載の他の構成要素の中で、CAM ANDアレ
イ部分1302A、行ドライバ1304Aおよび183
0、xアドレスデコーダ1808、ビットラインドライ
バ(yデコーダ)1316、プライオリティエンコーダ
1804、選択回路1820、1822、1824、1
826、1828およびモード選択1812を含む。C
AM ANDアレイ部分1302Aは、入力ワードとC
AM ANDアレイ部分1302Aに記憶されるワード
とを比較し、次いでマッチングしたエントリのアドレス
をプライオリティエンコーダ1804に出力するよう構
成される。
【0234】各CAM「ビット」は、CAM ANDア
レイ部分1302Aの2つのSRAMビットによって表
わされる。ワードAを書込む場合、CAM回路1800
は、各ビットAIを真および相補形式AIおよび/AI
(「AIバー」とも呼ばれる)でCAM ANDアレイ
部分1302Aの2つのSRAMセルに書込む。図78
に示すように、CAM回路1800は、48ビットデー
タ入力(他の入力ラインは制御信号または他の機能のた
めに用いられ得る)を受取り、ANDアレイ部分130
2Aは、48ビット幅の128ワード深さのCAMを実
現し得る。別の実施例においては、ANDアレイ部分1
302Aは、68ビット幅の128ワード深さのCAM
を実現する。上述のように、多数のGLB102の積項
入力はカスケードにされる。たとえば、4つのGLB1
02がカスケードされれば、外部ロジックなしに、4×
48=192ビット幅であり128ワード深さのCAM
が(192ビットインターネットアドレスのようなアプ
リケーションに対して)実現され得る。
【0235】CAM比較機能は、CPLD積項として実
現され得る(図4から図7のANDアレイ200内の1
つの列または1つの積項回路208(図66から図6
8)。記憶されたワードA(A0−AN)と入力ワード
B(B0−BN)とを比較する場合、CAM ANDア
レイ部分1302Aは、以下のCPLD積項機能を生成
する:PT=A0*(/B0)+(/A0)*B0+...
+AN*(/BN)+(/AN)*BN。ここで、「*
はANDを表わし、「+」はORを表わす。上の方程式
は、次のようにも書換えることができる:/PT=(A
0 XNOR B0)*... *(AN XNOR B
N)。すなわちビットごとに比較される2つのワードで
ある。PTは、2つのワードのすべてのビットがマッチ
ングした場合にのみアサートされる。CAM ANDア
レイ部分1302AのCPLD積項機能は、もしワード
AおよびBのビットのすべてがマッチングすれば「1」
を生成する。プライオリティエンコーダ1804(図3
7のプライオリティエンコーダ808を参照)は、PT
比較された結果をCAM ANDアレイ部分1302A
の符号化アドレスに変換する。
【0236】CAM書込動作は、上述のデュアルポート
SRAMと同様に実現されるが、以下に説明する点が異
なる。CAMワードがPTごとに比較されるとすると、
PTが列方向に整列しているので、ワードはCAM A
NDアレイ部分1302Aに列方向に(列ごとに)書込
まれる。列を更新/書込する1つの方法は、行ごとに更
新し、図73における1つの列選択ライン1418をイ
ネーブルすることである。このプロセスは、1CAMワ
ード更新につき128サイクルを要する。
【0237】CAM更新プロセスを高速化するために、
CAM回路は、1つのサイクルでCAM ANDアレイ
部分1302Aにおいて「1」を書込まれるべきイネー
ブルされた列におけるすべての行を選択し、書込む。次
いでCAM回路は、次のサイクルでCAM ANDアレ
イ部分1302Aにおいて「0」を書込まれるべきイネ
ーブルされた列におけるすべての行を選択し、書込む。
これにより、CAM書込動作は2つのサイクルに減じら
れる。
【0238】一実施例においては、CAM書込動作は1
サイクルにおいて行なわれ、マルチマッチングが1サイ
クルで行なわれる。1サイクルで1つのイネーブルされ
た列におけるすべての行を更新するために、図78にお
ける行ドライバ1304A、1830およびxアドレス
デコーダ1808は、ポートAを介して「1」を書かれ
るべきすべての行を選択し書込み、ポートBを介して
「0」を書込まれるべきすべての行を選択し書込む。こ
の実施例においては、図78における行ドライバ130
4A、1830およびxアドレスデコーダ1808はい
くらか図71のCPLD行ドライバ1304に類似す
る。ポートAxアドレスデコーダは、ポートBxアドレ
スデコーダの反転されたものである。この実施例におい
ては、ポートAビットライン(ABL)1814Aは
「1」を受け、ポートBライン(BBL)1814Bは
「0」を受ける。
【0239】クロスポイントスイッチ クロスポイントスイッチ(図54−図65)は、入力の
うちの1つのみがプログラムされるという制約で、CP
LD積項によって実現される。これは、1つの入力のみ
が積項を構成する、CPLDにおける特別なケースであ
る。CAM書込を通していつでも構成が更新できること
から、クロスポイントスイッチはいつでも所望のときに
その接続性を変更することが可能である。
【0240】マスクプログラミング 製造コストを減じ性能を向上させるために、製造者はマ
スクプログラミングされた回路を備えた装置を製造し得
るが、これは多数のフィールドプログラマブルGLB1
02(上述のもの、たとえば図4から図7)を備えたフ
ィールドプログラマブル装置100(上述のもの、たと
えば図1から図3)から導出されるものである。たとえ
ば、製造者は多数のフィールドプログラマブルGLB1
02(たとえば図4から図7)を備えたフィールドプロ
グラマブル装置100(たとえば図1から図3)を設計
者に渡す。設計者は、特定用途向け集積回路(ASI
C)製造者、携帯電話製造者、コンピュータ製造者また
は他の電子装置メーカーであり得る。
【0241】設計者は、(多数のGLB102を備え
た)フィールドプログラマブル装置100を試作して、
たとえば携帯電話における機能などの、特定の機能また
は機能の組を実現する。設計者は、特定の機能が、たと
えばPTロジックを実行するために装置100における
GLB102のX%を、RAMを実行するためにGLB
102のY%を、およびFIFOを実行するためにGL
B102のZ%を必要とすると判断し得る。設計者は製
造者に、PTロジック対メモリ機能の所望の比を備えた
装置を所望することを伝える(たとえばPTロジックを
実行するために装置100におけるGLB102のX
%、RAMを実行するためにGLB102のY%、およ
びFIFOを実行するためにGLB102のZ%)。
【0242】設計者は、設計者が所望する装置がどのよ
うにプログラミングされ構成されるべきかについての付
加的な指示を、製造者に与えることができる。たとえ
ば、設計者は装置100内部の各ピンの機能およびルー
ティング情報を指定する特定の構成ヒューズマップを設
計者に提供し得る。このヒューズマップは、装置100
をプログラミングするためにフィールドにおいて用いら
れる。設計者は、製造者にこのヒューズマップを与え
て、製造者にヒューズマップ内の情報に従ったマスクを
製造するよう依頼する。
【0243】設計者の指示に基づいて、製造者は製造者
の工場において予めプログラミングされ、かつフィール
ド内ではプログラム可能ではない「マスクプログラミン
グされた」1つ以上の部分を備えた第2の装置を作る。
特定的には、製造者は装置100内の1つ以上のフィー
ルドプログラマブル回路を、マスクプログラミングされ
た回路で置き換えて、設計者によって指定された機能を
行なわせる。製造者は、マルチステップIC装置製造プ
ロセスにおけるマスクステップ(設計者によって指定さ
れた機能に専用のもの)を用いて、マスクプログラミン
グ回路を製作する。マスクプログラミングされた回路
は、フィールドにおいて変更不可能なために、第2の装
置のマスクプログラミングされた部分は、所与の設計者
に対して本質的にカスタム化される。第1の装置100
と第2の装置との間の関係は、EEPROMとマスクR
OMとの間の関係と同様である。
【0244】第1のプログラマブル装置とマスクプログ
ラムされた部分を備えた第2の装置との組合せは、いず
れか片方の装置だけよりも大きな価値を設計者に提供す
る。第2の装置がマスクプログラムされた部分を含むの
で、第2の装置は第1の装置よりも製造費が低い。マス
クプログラムされた回路は、フィールドプログラマブル
回路よりも小さく高速である。こうして、マスクプログ
ラムされた回路は、より低コストで高性能の部品を設計
者に提供する。
【0245】一実施例においては、第1の装置100内
のすべてのプログラマブル回路が、予めプログラミング
されており、フィールドプログラマブルではなく、かつ
マスクプログラムされた回路に変換されて、第2の装置
を形成する。この実施例に対しては、製造者は金属接続
/切断によってヒューズによって制御されるすべてのス
イッチを置き換えることが可能である。製造者は、すべ
ての不揮発性セルをなくすことが可能である。
【0246】別の実施例においては、完成した第2の装
置は1つ以上の予めプログラミングされた、フィールド
プログラマブルではない、マスクプログラムされた回路
と、たとえば図4から図7,図69,図73,図74,
図75の構成可能積項回路のような1つ以上のフィール
ドプログラマブル回路との組合せ(または比)を有し得
る。たとえば、第2の装置は、(設計者のヒューズマッ
プに従って)70%のマスクプログラミングされた回路
と、上述のGLB102のような、30%のフィールド
プログラマブル回路とを含み得る。第2の装置は、たと
えばローカライズされた機能のために少数のプログラマ
ブルビットを有し得る。この実施例については、製造者
は制御スイッチおよびNVセルとして30%のSRAM
を維持しなければならないが、70%のプログラマブル
回路をなくすことが可能である。
【0247】両方の上述の実施例において、製造者はよ
り減じられた数の回路でより小さなダイを製造すること
ができる。新しいダイは、小さなダイのためにより高い
性能を有し、いくつかの構成スイッチが金属接続に置き
換えられる。両方の実施例が、PLPを試作の間に用
い、製造の間にASICに変更する設計者のために役立
つであろう。
【0248】ASIC I/Oモジュール 上述の装置100は、1つ以上のプログラマブル入力/
出力(I/O)モジュールをさらに含み得るが、該モジ
ュールは装置100が複数の予め定められたインターフ
ェイス規格から、入力/出力インターフェイス規格(た
とえば出力電圧)を選択することを可能にするよう構成
されるが、複数の予め定められたインターフェイス規格
とはたとえば、5.0ボルトおよび3.3ボルト出力電
圧、差動出力電圧(出力信号は2つのピンの間の電圧の
差である)、オープンドレインおよび当業者においては
公知である他の出力圧力規格などである。
【0249】一実施例においては、プログラマブル入力
/出力(I/O)モジュールは、複数のアドバンストI
/Oセル(ASIC I/O)を含むが、ここで各アド
バンストI/Oセルは、1つのI/Oインターフェイス
規格を用いる一方、他のアドバンストI/Oセルは別の
I/Oインターフェイス規格を用いるよう構成されるも
のである。こうして、さまざまなI/Oインターフェイ
ス規格が同時に異なったI/Oセルで用いられる。別の
実施例においては、プログラマブル入力/出力(I/
O)モジュールは、1つ以上の低電圧差動信号(LVD
S)入力/出力モジュールを含み得る。
【0250】他の構成要素:位相ロックループ、ステー
トマシン プログラマブル装置100はさらに、クロック機能を向
上させるためのオンチップ位相ロックループ(PL
L)、外部CPUによる装置のプログラミングを可能に
するためのステートマシン、JTAGプログラム可能性
を可能にするためのステートマシン、および/またはイ
ンシステムプログラム可能性(ISP)を可能にするた
めのステートマシンを含み得る。
【0251】パッケージおよびピンアウトマイグレーシ
ョン この発明の一局面に従うと、製造者は集積回路装置のフ
ァミリーを提供し得るが、ここでは各集積回路装置が異
なった数のGLBを含むことができ、すなわち、異なっ
た数のマクロセルを含むことができ、1つのGLBは一
実施例においては32マクロセルに対応する。たとえ
ば、製造者は256、368、384、512、76
8、1024、1536または2048マクロセルを備
えた装置を提供し得る。装置内のマクロセルの数は、装
置の「密度」または「容量」と呼ばれる。
【0252】集積回路装置は「パッケージ」に組立てら
れる。特定の密度(たとえば512マクロセル)を備え
た装置は、いくつかの異なったパッケージ構成で組立て
られ得る。各パッケージ構成は異なった数の合計ピン、
たとえば160、208、272、388または484
のピンを有し得る。ピンのいくつかはI/Oピンであ
り、ピンのいくつかは制御信号ピン(たとえばVCC、
VSS、CLK、制御)である。たとえば、特定の密度
(たとえば512マクロセル)を備えた装置は、16
0、208、272、388、または484ピンでパッ
ケージされ得る。これらのパッケージごとに、さまざま
な数のピンがI/Oピンとして機能するよう、たとえば
104、156、196、212、256または304
I/Oピンとして割当てられる。
【0253】さらに、設定された数のピンを備えた各パ
ッケージ構成は、一度につき1つずつ、異なる密度の装
置を実装するよう構成され得る。これは「パッケージマ
イグレーション」と呼ばれる。異なる密度の装置を(一
度につき1つずつ)同じパッケージ構成に実装するため
に、すべての装置は好ましくは、パッケージの特定の場
所のピンに割当てられた特定の信号(たとえばVCC、
VSS、CLK、CONTROL、グローバル信号、お
よびマクロセルI/O)に対処するよう、同じピンアウ
ト定義および仕様を有する。たとえば、もし272ピン
パッケージのピン38がVCCに割当てられると、その
パッケージに実装され得るすべての装置はピン38でV
CCに対処するよう構成される。もしパッケージのピン
NがI/Oに割当てられれば、ピンNはI/Oである
か、またはパッケージにおける実装された装置に対して
「非接続である」。一実施例においては、VCC、VS
S、CLK、CONTROLなどのすべての信号は、装
置の上の同一のピンにある。「ピンアウトマイグレーシ
ョン」は、1つのパッケージ構成において実装され得
る、さまざまな密度と同一のピンアウトとを備えた装置
を指す。
【0254】たとえば、388ピンを備えたパッケージ
は、512マクロセルを備えた装置を実装することがで
き、ここで388ピンのうち256はI/Oピンとして
用いられる。これに代えて、同じ388ピンパッケージ
は768マクロセルを備えた装置を実装することもで
き、ここで388ピンのうち304ピンはI/Oピンと
して用いられる。512マクロセルを備えたパッケージ
された装置は、768マクロセルを備えたパッケージさ
れた装置よりも「非接続」ピンを多く備えるが、これは
768マクロセルを備えた装置がより多くのピンをパッ
ケージでI/Oピンとして用いるからである。こうし
て、ユーザは、388ピンパッケージをソケットとして
用い、768マクロセルを備えた装置を512マクロセ
ルを備えた装置とスワップするかまたは置き換えること
ができ、余分な「非接続」ピンを他の入力(出力)のた
めに用いることができる。
【0255】これらのパッケージは、ユーザが回路基板
または他のサポートチップのレイアウトを再設計するこ
となく、より高いまたはより低い容量の集積回路装置に
マイグレーション(すなわち、「ドロップイン」、置き
換えまたは「スワップ」)することを可能にする。たと
えば、512マクロセルを備えた第1の装置は、484
ピンパッケージまたは388ピンパッケージのいずれか
に実装され得る。256マクロセルを備えた第2の装置
は、388ピンパッケージまたは272ピンパッケージ
または100ピンのものに実装され得る。ピン構成の結
果、第1および第2のパッケージされた装置は、システ
ムプリント回路基板上で一度につき1つずつ顧客によっ
てスワップ可能である。
【0256】1つのデザインプロセスにおいて、顧客は
設計入力ソフトウェアでアプリケーション(たとえばイ
ンターネットトラフィックコントローラ)を設計する。
顧客は次いで、配置配線ソフトウェアを用いて、(1)
アプリケーション密度に一致する装置密度および(2)
設計に対して好適であるI/Oの数に基づくパッケージ
構成を選択する。将来、もし顧客がロジックを追加また
は削除することが必要になれば、顧客はより高いまたは
より低い密度の装置にスイッチしながら、同じパッケー
ジ構成を用いることができる。これはプラグイン置換と
呼ばれる。
【0257】この発明に従って、さまざまな種類のメモ
リ、MUX、DEMUX、入力/出力装置、キャッシ
ュ、コントローラ、レジスタおよび/または処理構成要
素を用いることができる。この発明の範囲は、特定の種
類のメモリ、入力/出力装置、キャッシュ、コントロー
ラ、レジスタおよび/または処理構成要素に限定される
ものではない。装置100のさまざまな実施例が、この
発明の範囲から逸脱することなく、図に示される構成要
素に対し付加的に、またはそれらに代えて、用いられ
る。たとえば、図1内の装置100は、付加的なメモ
リ、キャッシュ、コントローラ、レジスタおよび/また
は処理構成要素を含み得る。
【0258】上述のこの発明の実施例は、限定ではなく
例示を意味する。よって当業者においては、この発明か
ら逸脱することなく、その広い局面においてさまざまな
変更および修正を行ない得ることが明らかであろう。前
掲の特許請求の範囲は、すべてのそのような変更および
修正を、この発明の真の精神および範囲に含む。
【図面の簡単な説明】
【図1】 複数の汎用ロジックブロック(GLB)を備
えたプログラマブルなデバイスの一実施例を示す図であ
る。
【図2】 各GLBが他の要素に加え、複数のマクロセ
ルを含む、図1のプログラマブルなデバイスを示す図で
ある。
【図3】 複数のGLBおよび2レベルのルーティング
を備えたデバイスの一実施例を示す図である。
【図4】 ロジック/演算モードで構成された図1のG
LBの一実施例を示す図である。
【図5】 ロジック/演算モードで構成された図1のG
LBの一実施例を示す図である。
【図6】 ロジック/演算モードで構成された図1のG
LBの一実施例を示す図である。
【図7】 ロジック/演算モードで構成された図1のG
LBの一実施例を示す図である。
【図8】 RAM、ROM、CAM、スイッチおよび/
またはFIFOモード(まとめてRCSFモードと称さ
れる)で構成された図1のGLBの一実施例を示す図で
ある。
【図9】 デュアルポートメモリモードで構成された図
1のGLBの一実施例を示す図である。
【図10】 図2のマクロセルおよび周辺ロジックの一
実施例を示す図である。
【図11】 図2の2つの別個のGLBにおいて2つの
マクロセルの積項(PT)をカスケードする一実施例を
示す図である。
【図12】 RCSFモードで用いることのできる、図
1のGLBの分割ANDアレイの一実施例を示す図であ
る。
【図13】 RAMとして構成された図1のGLBの実
施例を示す図である。
【図14】 RAMとして構成された図1のGLBの実
施例を示す図である。
【図15】 RAMとして構成された図1のGLBの実
施例を示す図である。
【図16】 RAMとして構成された図1のGLBの実
施例を示す図である。
【図17】 構成可能な512x32 SRAM(スタ
ティックランダムアクセスメモリ)を備えた、RAMモ
ードにある図1のGLBの一実施例を示す図である。
【図18】 構成可能な16384x1 SRAMを備
えた、RAMモードにある図1のGLBの一実施例を示
す図である。
【図19】 図17および図18のGLBで実現された
同期シングルポートRAMの一実施例を示す図である。
【図20】 図19のシングルポートRAM用のメモリ
構成の6つの例を示す図である。
【図21】 構成可能な517x16 SRAMを備え
た、デュアルポートRAMモードにある図1のGLBの
一実施例を示す図である。
【図22】 構成可能な8192x1 SRAMを備え
た、デュアルポートRAMモードにある図1のGLB1
02の一実施例を示す図である。
【図23】 図21および図22のGLBにおいて実現
された同期デュアルポートRAMの一実施例を示す図で
ある。
【図24】 図23のデュアルポートRAM用のメモリ
構成の5つの例を示す図である。
【図25】 図23のデュアルポートRAM用の信号タ
イミング図およびタイミングパラメータの例を示す図で
ある。
【図26】 図23のデュアルポートRAM用の信号タ
イミング図およびタイミングパラメータの例を示す図で
ある。
【図27】 図23のデュアルポートRAM用のタイミ
ングパラメータの例を示す図である。
【図28】 図23のデュアルポートRAM用の信号タ
イミング図およびタイミングパラメータの例を示す図で
ある。
【図29】 図23のデュアルポートRAM用の信号タ
イミング図およびタイミングパラメータの例を示す図で
ある。
【図30】 図23のデュアルポートRAM用の信号タ
イミング図およびタイミングパラメータの例を示す図で
ある。
【図31】 図23のデュアルポートRAM用の信号タ
イミング図およびタイミングパラメータの例を示す図で
ある。
【図32】 図23のデュアルポートRAM用のタイミ
ングパラメータの例を示す図である。
【図33】 更新モードにある図1のGLB内のCAM
アレイ、2組の入力レジスタおよび制御ロジックの一実
施例を示す図である。
【図34】 更新モードにある図33のCAMアレイお
よび対応するロジックに対する信号値の例を示す図であ
る。
【図35】 比較モードにある、図1のGLB内の、プ
ライオリティエンコーダ、2組の入力レジスタ、および
制御ロジックを備えたCAMアレイの一実施例を示す図
である。
【図36】 読出/比較モードにある、図35のCAM
アレイに対する信号値および対応するロジックの例を示
す図である。
【図37】 図33のプライオリティエンコーダおよび
対応するロジックを備えたCAMアレイによって実行さ
れる比較動作の一例を示す図である。
【図38】 構成可能な128x48 CAMアレイを
備えた、CAMモードにある図1のGLBの一実施例を
示す図である。
【図39】 図38のGLB内に実現されたCAMアレ
イの一実施例を示す図である。
【図40】 図38のCAMのパワーオンリセット状態
の例を示す図である。
【図41】 図38のCAMの通常ユーザモード状態の
例を示す図である。
【図42】 図39のCAM用の信号タイミング図の例
を示す図である。
【図43】 CAMモードにあるカスケードされたGL
Bの一実施例を示す図である。
【図44】 構成可能な512x32 FIFOを備
え、FIFOモードにある、図1のGLBの一実施例を
示す図である。
【図45】 構成可能な512x32 FIFOを備
え、FIFOモードにある、図1のGLBの一実施例を
示す図である。
【図46】 図44−図45のFIFO用のFIFO構
成の例を示す図である。
【図47】 図44−図45のGLB内のフラグ制御ロ
ジックの一実施例を示す図である。
【図48】 FIFOモードにある、図44−図45の
GLBによって用いられ得る修正されたマクロセルおよ
び周辺ロジックの一実施例を示す図である。
【図49】 FIFOモードに構成された図8のGLB
およびマクロセルの一実施例を示す図である。
【図50】 FIFOモードにある、図44−図45の
GLB用の信号タイミング図およびパラメータの例を示
す図である。
【図51】 FIFOモードにある、図44−図45の
GLB用の信号タイミング図およびパラメータの例を示
す図である。
【図52】 FIFOモードにある、図44−図45の
GLB用の信号タイミング図およびパラメータの例を示
す図である。
【図53】 FIFOモードにある、図44−図45の
GLB用のパラメータの例を示す図である。
【図54】 メインメモリおよびシャドウメモリを備え
た、スイッチモードにある、図1のGLBの一実施例を
示す図である。
【図55】 図54のGLB内のスイッチブロックの一
実施例を示す図である。
【図56】 図54のGLB内のスイッチブロックの別
の実施例を示す図である。
【図57】 図54のGLB内のスイッチブロックの別
の実施例を示す図である。
【図58】 16ビット幅のA_OUT出力バスを備
え、SINGLE CYCLE MULTICASTモ
ードにある、16x16x2 スイッチブロックの一実
施例を示す図である。
【図59】 8ビット幅のバスA_OUTを備え、DU
AL CYCLEMULTICASTモードにある、8
x8x4スイッチブロックの一実施例を示す図である。
【図60】 図54のGLB内のスイッチおよび他の構
成要素の一実施例を示す図である。
【図61】 図54のGLB用の複数のスイッチタイミ
ングパラメータを示す図である。
【図62】 図54のGLB用のタイミング図の例を示
す図である。
【図63】 図54のGLB用のタイミング図の例を示
す図である。
【図64】 図54のGLB用のタイミング図の例を示
す図である。
【図65】 図54のGLB用のタイミング図の例を示
す図である。
【図66】 図4−図7の1つの積項回路の一実施例を
示す図である。
【図67】 図4−図7の1つの積項回路の一実施例を
示す図である。
【図68】 図4−図7の1つの積項回路の一実施例を
示す図である。
【図69】 図66−図68に示された積項回路内で用
いられ得るCMOS回路の一実施例を示す図である。
【図70】 図1のGLBの一実施例を示す図である。
【図71】 図4−図7、図8、図17、または図18
におけるGLBを示し得る、CPLD/RAM回路の一
実施例を示す図である。
【図72】 図71のANDアレイの半分がロジックに
用いられ、ANDアレイの別の半分がメモリに用いられ
る、CPLD/RAM回路の一実施例を示す図である。
【図73】 図69のSRAMセルの改良版である、S
RAMセルの一実施例を示す図である。
【図74】 図66−図68の積項回路で用いられ得
る、SRAMセルの別の実施例を示す図である。
【図75】 スイッチを実現するために図1のGLB内
で用いられ得る、シャドウメモリを備えたデュアル書込
ポートセルの一実施例を示す図である。
【図76】 図9、図21、または図22においてGL
Bを示し得る、デュアルポートRAM回路の一実施例を
示す図である。
【図77】 図8、図44−図45、または図49にお
いてGLBを示し得る、FIFO回路の一実施例を示す
図である。
【図78】 図8、図33、図35、または図38にお
いてGLBを示し得る、CAM回路の一実施例を示す図
である。
【符号の説明】
100 フィールドプログラマブル装置、102 フィ
ールドプログラマブルGLB。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェイソン・チョン アメリカ合衆国、95134 カリフォルニア 州、サン・ノゼ、ザンカー・ロード、2680 (72)発明者 サイラス・ツーイ アメリカ合衆国、95134 カリフォルニア 州、サン・ノゼ、ザンカー・ロード、2680 (72)発明者 サトワント・シン アメリカ合衆国、95134 カリフォルニア 州、サン・ノゼ、ザンカー・ロード、2680 (72)発明者 アルバート・チェン アメリカ合衆国、95134 カリフォルニア 州、サン・ノゼ、ザンカー・ロード、2680 (72)発明者 ジュ・セン アメリカ合衆国、95134 カリフォルニア 州、サン・ノゼ、ザンカー・ロード、2680 (72)発明者 クレメント・リー アメリカ合衆国、97124 オレゴン州、ヒ ルズボロ、ノース・イースト・ムーア・コ ート、5555 Fターム(参考) 5F064 AA07 AA08 BB03 BB04 BB12 BB13 BB15 BB16 BB19 BB37 CC12 EE54 FF27 FF28 5J042 BA01 CA07 CA13 CA16 CA20 CA21 DA06

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 複数のロジックブロックと、前記ブロッ
    ク間で信号を伝送するためのルーティングリソースとを
    含むプログラマブルロジック装置であって、 前記ロジックブロックは、 複数の積項回路を含み、前記複数の積項回路の各々は、
    ロジックモードにおいて出力端子で積項を提供し、かつ
    メモリモードにおいて出力端子でデータビットを提供す
    るよう動作可能であり、前記積項回路の各々は、各々が
    ロジックモードにおいて構成ビットを記憶し、かつメモ
    リモードにおいてデータビットを記憶するよう動作可能
    である第1のステージの構成セルと、第1のステージか
    ら送られた信号を合成するよう動作可能である第2のス
    テージのロジックゲートとを含み、前記ロジックブロッ
    クはさらにロジックモードにおいて構成セルに対する入
    力信号のソースを選択しかつメモリモードにおいて構成
    セルに対するアドレス信号のソースを選択するよう動作
    可能であるモード選択回路を含む、プログラマブルロジ
    ック装置。
  2. 【請求項2】 前記モード選択回路は、第1の群の積項
    回路に結合される第1のモード選択回路であり、前記プ
    ログラマブルロジック装置は、第2の群の積項回路と、
    入力信号ソースと、アドレス信号ソースとに結合される
    第2の独立したモード選択回路を含み、 前記第1および第2のモード選択回路は、前記第1およ
    び第2の群の積項回路が、ロジックモードまたはメモリ
    モードにおいて独立して動作可能になるようイネーブル
    する、請求項1に記載のプログラマブルロジック装置。
  3. 【請求項3】 前記複数の積項回路は第1の複数の積項
    回路であり、前記ロジックブロックは第2の複数の積項
    回路を含み、前記第2の複数の積項回路はロジックモー
    ドにおいて前記第1の複数の積項回路と積項を生成し、
    かつメモリモードにおいてアドレス信号のソースを前記
    第1の複数の積項回路に提供するよう動作可能である、
    請求項1に記載のプログラマブルロジック装置。
  4. 【請求項4】 前記積項回路の出力端子に結合され、メ
    モリモードにおいて前記積項回路から出力されるデータ
    ビットからさまざまな幅のデータワードを読出すよう動
    作可能であるデータデコーダを含む、請求項1に記載の
    プログラマブルロジック装置。
  5. 【請求項5】 前記構成セルは、 ロジックゲートと、 ロジックゲートの第1の入力端子に結合され、ビットを
    記憶するよう動作可能である第1のラッチと、 前記ラッチに結合され、第1のゲート制御信号に応答す
    る第1のパスゲートと、 前記パスゲートを介して前記ラッチに結合される第1の
    書込ビットラインと、 前記ロジックゲートの第2の入力端子に結合される入力
    信号ラインとを含み、 前記モード選択回路は、ロジックモードにおいて入力信
    号のソースを前記入力信号ラインに結合し、かつメモリ
    モードにおいてアドレス信号のソースを入力信号ライン
    に結合するよう動作可能である、請求項1に記載のプロ
    グラマブルロジック装置。
  6. 【請求項6】 複数のロジックブロックと、前記ブロッ
    ク間で信号を伝送するためのルーティングリソースとを
    含むプログラマブルロジック装置であって、 前記ロジックブロックは、 ロジックモードにおいて入力信号ラインで受取った入力
    信号から積項を生成し、かつメモリモードにおいてメモ
    リとしての役割を果たすよう動作可能である積項回路の
    アレイを含み、前記アレイはメモリモードにおいて、デ
    ータビットを記憶するよう動作可能である第1のアレイ
    部分と、入力信号ラインでデータビットおよびメモリア
    ドレス信号を受けそのデータビットおよびメモリアドレ
    ス信号を第1のアレイ部分に提供する第2のアレイ部分
    とを有し、前記ロジックブロックはさらにモード選択回
    路を含み、前記モード選択回路は、前記第2のアレイ部
    分の出力端子と前記第1のアレイ部分の入力端子との間
    に結合され、ロジックモードにおいて入力信号ラインを
    前記第1のアレイ部分の入力端子に結合するよう動作可
    能であり、かつメモリモードにおいて前記第2のアレイ
    部分の出力端子を前記第1のアレイ部分の入力端子に結
    合するよう動作可能である、プログラマブルロジック装
    置。
  7. 【請求項7】 複数のロジックブロックと、前記ブロッ
    ク間で信号を伝送するためのルーティングリソースとを
    含むプログラマブルロジック装置であって、前記ロジッ
    クブロックは複数の積項回路を含み、前記複数の積項回
    路は、ロジックモードにおいて多数の入力信号から積項
    を生成し、かつメモリモードにおいてデータビットを記
    憶するよう動作可能であり、前記積項回路の各々は、ロ
    ジックモードにおいて構成ビットを記憶しかつメモリモ
    ードにおいてデータビットを記憶するよう動作可能であ
    る構成セルを含み、前記ロジックブロックはさらにロジ
    ックモードにおいて第1の群の積項回路に対する入力信
    号を選択し、かつメモリモードにおいて前記第1の群の
    積項回路に対する第1のメモリアドレス信号を選択する
    よう動作可能である第1のモード選択回路と、 ロジックモードにおいて第2の群の積項回路に対する入
    力信号を選択し、かつメモリモードにおいて前記第2の
    群の積項回路に対する第2のメモリアドレス信号を選択
    するよう動作可能である第2のモード選択回路とを含
    む、プログラマブルロジック装置。
  8. 【請求項8】 前記第1および第2の群の積項回路の各
    々は出力端子を有し、前記プログラマブルロジック装置
    は、 前記第1の群の積項回路の出力端子に結合され、メモリ
    モードにおいて内部の積項回路によって出力されたデー
    タビットからさまざまな幅のデータワードを読み出すよ
    う動作可能である第1のデータデコーダと、 前記第2の群の積項回路の出力端子に結合され、メモリ
    モードにおいて内部の積項回路によって出力されたデー
    タビットからさまざまな幅のデータワードを読み出すよ
    う動作可能である第2のデータデコーダと、 ロジックモードにおいて前記第1および第2の群の積項
    回路と動作して積項を生成し、メモリモードにおいて前
    記第1および第2のデータデコーダにアドレス信号を提
    供するよう動作可能である第3の群の積項回路とを含
    む、請求項7に記載のプログラマブルロジック装置。
  9. 【請求項9】 複数のロジックブロックと、前記ブロッ
    ク間で信号を伝送するためのルーティングリソースとを
    含むプログラマブルロジック装置であって、 前記ロジックブロックは、 複数の積項回路を含み、前記複数の積項回路は、ロジッ
    クモードにおいて多数の入力信号から積項を生成し、か
    つメモリモードにおいてデータビットを先入れ先出し
    (FIFO)順で記憶し検索する先入れ先出し(FIF
    O)メモリとしての役割を果たし、前記積項回路の各々
    は、ロジックモードにおいて構成ビットを記憶し、かつ
    メモリモードにおいてデータビットを記憶するよう動作
    可能である構成セルを含み、前記ロジックブロックはさ
    らにロジックモードにおいて前記積項回路に対する入力
    信号を選択し、かつメモリモードにおいて前記積項回路
    に対する読出アドレス信号を選択するよう動作可能であ
    るモード選択回路と、 前記モード選択回路に読出アドレス信号を提供するよう
    動作可能である読出カウンタと、 前記積項回路に書込アドレス信号を提供するよう動作可
    能である書込カウンタと、 読出アドレス信号の値と書込アドレス信号の値とを比較
    し、比較結果に応答して1つ以上のフラグを生成するよ
    う動作可能であるFIFOフラグロジックとを含む、プ
    ログラマブルロジック装置。
  10. 【請求項10】 複数のロジックブロックと、前記ブロ
    ック間で信号を伝送するためのルーティングリソースと
    を含むプログラマブルロジック装置であって、 前記ロジックブロックは、 複数の積項回路を含み、前記複数の積項回路は、ロジッ
    クモードにおいて多数の入力信号から積項を生成し、か
    つメモリモードにおいて前記積項回路の各々内のデータ
    ビットと入力ワードとを比較する連想記憶装置(CA
    M)としての役割を果たし、前記積項回路の各々は、ロ
    ジックモードにおいて構成ビットを記憶しかつメモリモ
    ードにおいてデータビットを記憶するよう動作可能であ
    る構成セルを含み、前記ロジックブロックはさらにロジ
    ックモードにおいて構成セルに対する入力信号のソース
    を選択し、かつメモリモードにおいて構成セルに対する
    入力ワードのソースを選択するよう動作可能であるモー
    ド選択回路と、 前記積項回路によって行なわれた入力ワード対データビ
    ット比較の結果を獲得し、かつ結果をアドレスに符号化
    するよう動作可能であるアドレスエンコーダとを含む、
    プログラマブルロジック装置。
JP2003032653A 2002-02-11 2003-02-10 プログラマブルロジック装置 Pending JP2003324344A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US35650702P 2002-02-11 2002-02-11
US60/356507 2002-02-11
US10/133,106 US6765408B2 (en) 2002-02-11 2002-04-26 Device and method with generic logic blocks
US10/133106 2002-04-26

Publications (1)

Publication Number Publication Date
JP2003324344A true JP2003324344A (ja) 2003-11-14

Family

ID=26831051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003032653A Pending JP2003324344A (ja) 2002-02-11 2003-02-10 プログラマブルロジック装置

Country Status (4)

Country Link
US (5) US6765408B2 (ja)
JP (1) JP2003324344A (ja)
DE (1) DE10304912A1 (ja)
GB (1) GB2387003B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007519247A (ja) * 2004-01-21 2007-07-12 シーメンス ヴイディオー オートモーティヴ 集積回路の出力個数の最適化
US7970979B1 (en) * 2007-09-19 2011-06-28 Agate Logic, Inc. System and method of configurable bus-based dedicated connection circuits
US8131909B1 (en) 2007-09-19 2012-03-06 Agate Logic, Inc. System and method of signal processing engines with programmable logic fabric
JPWO2016063667A1 (ja) * 2014-10-22 2017-06-08 太陽誘電株式会社 再構成可能デバイス

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7161992B2 (en) * 2001-10-18 2007-01-09 Intel Corporation Transition encoded dynamic bus circuit
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
US7185141B1 (en) * 2001-12-27 2007-02-27 Netlogic Microsystems, Inc. Apparatus and method for associating information values with portions of a content addressable memory (CAM) device
US20030217306A1 (en) * 2002-05-17 2003-11-20 Harthcock Jerry D. Self-programmable microcomputer and method of remotely programming same
US6917536B1 (en) * 2002-09-13 2005-07-12 Lattice Semiconductor Corporation Memory access circuit and method for reading and writing data with the same clock signal
US7221185B1 (en) * 2005-02-01 2007-05-22 Altera Corporation Method and apparatus for memory block initialization
US7176716B2 (en) * 2003-12-24 2007-02-13 Viciciv Technology Look-up table structure with embedded carry logic
US7019557B2 (en) * 2003-12-24 2006-03-28 Viciciv Technology Look-up table based logic macro-cells
US7154300B2 (en) * 2003-12-24 2006-12-26 Intel Corporation Encoder and decoder circuits for dynamic bus
US7336097B2 (en) * 2003-12-24 2008-02-26 Viciciv, Inc. Look-up table structure with embedded carry logic
US7042792B2 (en) * 2004-01-14 2006-05-09 Integrated Device Technology, Inc. Multi-port memory cells for use in FIFO applications that support data transfers between cache and supplemental memory arrays
US7546400B2 (en) * 2004-02-13 2009-06-09 International Business Machines Corporation Data packet buffering system with automatic threshold optimization
US7242633B1 (en) * 2004-09-10 2007-07-10 Xilinx, Inc. Memory device and method of transferring data in memory device
US7307912B1 (en) * 2004-10-25 2007-12-11 Lattice Semiconductor Corporation Variable data width memory systems and methods
US7218141B2 (en) * 2004-12-07 2007-05-15 Altera Corporation Techniques for implementing hardwired decoders in differential input circuits
US7272029B2 (en) * 2004-12-29 2007-09-18 Intel Corporation Transition-encoder sense amplifier
AU2006221023A1 (en) 2005-03-03 2006-09-14 Washington University Method and apparatus for performing biosequence similarity searching
US7389481B2 (en) * 2005-05-12 2008-06-17 International Business Machines Corporation Integrated circuit design utilizing array of functionally interchangeable dynamic logic cells
US7126858B1 (en) * 2005-06-17 2006-10-24 Altera Corporation Apparatus for emulating asynchronous clear in memory structure and method for implementing the same
US7196922B2 (en) * 2005-07-25 2007-03-27 Stmicroelectronics, Inc. Programmable priority encoder
US7266028B1 (en) 2006-02-16 2007-09-04 Altera Corporation Method and apparatus for bit mapping memories in programmable logic device integrated circuits during at-speed testing
US7355441B1 (en) * 2006-02-22 2008-04-08 Lattice Semiconductor Corporation Programmable logic devices with distributed memory and non-volatile memory
US7921046B2 (en) 2006-06-19 2011-04-05 Exegy Incorporated High speed processing of financial information using FPGA devices
US7660793B2 (en) 2006-11-13 2010-02-09 Exegy Incorporated Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors
US8326819B2 (en) * 2006-11-13 2012-12-04 Exegy Incorporated Method and system for high performance data metatagging and data indexing using coprocessors
US7475315B1 (en) 2007-01-10 2009-01-06 Altera Corporation Configurable built in self test circuitry for testing memory arrays
US20080263319A1 (en) * 2007-04-17 2008-10-23 Cypress Semiconductor Corporation Universal digital block with integrated arithmetic logic unit
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8111577B2 (en) 2007-04-17 2012-02-07 Cypress Semiconductor Corporation System comprising a state-monitoring memory element
US8516025B2 (en) * 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
DE102007028802B4 (de) * 2007-06-22 2010-04-08 Qimonda Ag Integrierte Logikschaltung und Verfahren zum Herstellen einer integrierten Logikschaltung
US20090033359A1 (en) * 2007-07-31 2009-02-05 Broadcom Corporation Programmable logic device with millimeter wave interface and method for use therewith
US8085899B2 (en) * 2007-12-12 2011-12-27 Varian Medical Systems International Ag Treatment planning system and method for radiotherapy
US10229453B2 (en) 2008-01-11 2019-03-12 Ip Reservoir, Llc Method and system for low latency basket calculation
US8681526B2 (en) * 2008-07-02 2014-03-25 Cradle Ip, Llc Size and retry programmable multi-synchronous FIFO
US7707237B2 (en) * 2008-08-01 2010-04-27 Infineon Technologies Ag Macrocell and method for adding
US20120095893A1 (en) 2008-12-15 2012-04-19 Exegy Incorporated Method and apparatus for high-speed processing of financial market depth data
US9735781B2 (en) 2009-02-24 2017-08-15 Syphermedia International, Inc. Physically unclonable camouflage structure and methods for fabricating same
US10691860B2 (en) 2009-02-24 2020-06-23 Rambus Inc. Secure logic locking and configuration with camouflaged programmable micro netlists
US20100228926A1 (en) * 2009-03-09 2010-09-09 Cypress Semiconductor Corporation Multi-port memory devices and methods
US9489326B1 (en) 2009-03-09 2016-11-08 Cypress Semiconductor Corporation Multi-port integrated circuit devices and methods
CA2820898C (en) 2010-12-09 2020-03-10 Exegy Incorporated Method and apparatus for managing orders in financial markets
US9990393B2 (en) 2012-03-27 2018-06-05 Ip Reservoir, Llc Intelligent feed switch
US11436672B2 (en) 2012-03-27 2022-09-06 Exegy Incorporated Intelligent switch for processing financial market data
US10121196B2 (en) 2012-03-27 2018-11-06 Ip Reservoir, Llc Offload processing of data packets containing financial market data
US10650452B2 (en) 2012-03-27 2020-05-12 Ip Reservoir, Llc Offload processing of data packets
US9058860B2 (en) 2012-03-29 2015-06-16 Memoir Systems, Inc. Methods and apparatus for synthesizing multi-port memory circuits
US10234893B2 (en) * 2013-05-13 2019-03-19 Nvidia Corporation Dual-domain dynamic multiplexer and method of transitioning between asynchronous voltage and frequency domains
US9576093B2 (en) 2014-06-30 2017-02-21 Lattice Semiconductor Corporation Mixed-width memory techniques for programmable logic devices
JP6229990B2 (ja) * 2014-08-21 2017-11-15 学校法人明治大学 連想記憶装置、インデックス生成器、及び登録情報更新方法
US9495492B1 (en) * 2015-01-05 2016-11-15 Cadence Design Systems, Inc. Implementing synchronous triggers for waveform capture in an FPGA prototyping system
US10923596B2 (en) 2019-03-08 2021-02-16 Rambus Inc. Camouflaged FinFET and method for producing same
US10802735B1 (en) * 2019-04-23 2020-10-13 Arbor Company, Lllp Systems and methods for reconfiguring dual-function cell arrays
US10782759B1 (en) 2019-04-23 2020-09-22 Arbor Company, Lllp Systems and methods for integrating batteries with stacked integrated circuit die elements
EP3973528A4 (en) * 2019-05-21 2022-08-03 Arbor Company LLLP SYSTEMS AND METHODS FOR INTEGRATING BATTERIES WITH STACKED IC CHIP ELEMENTS
KR102567207B1 (ko) 2020-06-29 2023-08-16 아르보 컴퍼니 엘엘엘피 5g 프로세서 독립형 모뎀과 함께 3d 다이 스태킹 재구성 가능 프로세서 모듈을 사용하는 모바일 iot 에지 디바이스
US11983066B2 (en) 2022-05-05 2024-05-14 Nanya Technology Corporation Data storage device storing associated data in two areas
TWI825803B (zh) * 2022-05-05 2023-12-11 南亞科技股份有限公司 資料儲存裝置及其非暫時性電腦可讀媒介

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4758746A (en) * 1985-08-12 1988-07-19 Monolithic Memories, Inc. Programmable logic array with added array of gates and added output routing flexibility
IT1195119B (it) 1986-08-04 1988-10-12 Cselt Centro Studi Lab Telecom Perfezionamenti alle schiere logi che programmabili dinamiche a struttura nor nor realizzate in tecnolo gia c mos
US4891788A (en) * 1988-05-09 1990-01-02 Kreifels Gerard A FIFO with almost full/almost empty flag
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
US5404055A (en) * 1993-09-01 1995-04-04 Lattice Semiconductor Corporation Input routing pool
US5969539A (en) * 1995-05-26 1999-10-19 Xilinx, Inc. Product term exporting mechanism and method improvement in an EPLD having high speed product term allocation structure
US5811987A (en) * 1995-06-02 1998-09-22 Advanced Micro Devices, Inc. Block clock and initialization circuit for a complex high density PLD
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
US6028446A (en) * 1995-06-06 2000-02-22 Advanced Micro Devices, Inc. Flexible synchronous and asynchronous circuits for a very high density programmable logic device
US5978826A (en) * 1995-12-01 1999-11-02 Lucent Techologies Inc. Adder with even/odd 1-bit adder cells
US5721498A (en) * 1995-12-11 1998-02-24 Hewlett Packard Company Block segmentation of configuration lines for fault tolerant programmable logic device
US5898602A (en) * 1996-01-25 1999-04-27 Xilinx, Inc. Carry chain circuit with flexible carry function for implementing arithmetic and logical functions
US5977791A (en) * 1996-04-15 1999-11-02 Altera Corporation Embedded memory block with FIFO mode for programmable logic device
US5715197A (en) * 1996-07-29 1998-02-03 Xilinx, Inc. Multiport RAM with programmable data port configuration
US6034547A (en) * 1996-09-04 2000-03-07 Advantage Logic, Inc. Method and apparatus for universal program controlled bus
KR100186342B1 (ko) * 1996-09-06 1999-05-15 문정환 병렬 가산기
US6029236A (en) * 1997-01-28 2000-02-22 Altera Corporation Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM
US6020759A (en) 1997-03-21 2000-02-01 Altera Corporation Programmable logic array device with random access memory configurable as product terms
US6104208A (en) 1998-03-04 2000-08-15 Altera Corporation Programmable logic device incorporating function blocks operable as wide-shallow RAM
JP3123977B2 (ja) * 1998-06-04 2001-01-15 日本電気株式会社 プログラマブル機能ブロック
US6144573A (en) 1998-06-26 2000-11-07 Altera Corporation Programmable logic devices with improved content addressable memory capabilities
US6215326B1 (en) 1998-11-18 2001-04-10 Altera Corporation Programmable logic device architecture with super-regions having logic regions and a memory region
US6396302B2 (en) * 1999-02-25 2002-05-28 Xilinx, Inc. Configurable logic element with expander structures
US6150838A (en) 1999-02-25 2000-11-21 Xilinx, Inc. FPGA configurable logic block with multi-purpose logic/memory circuit
US6304497B1 (en) * 2000-06-30 2001-10-16 Micron Technology, Inc. Synchronous memory status register
US6724220B1 (en) * 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007519247A (ja) * 2004-01-21 2007-07-12 シーメンス ヴイディオー オートモーティヴ 集積回路の出力個数の最適化
US7970979B1 (en) * 2007-09-19 2011-06-28 Agate Logic, Inc. System and method of configurable bus-based dedicated connection circuits
US8131909B1 (en) 2007-09-19 2012-03-06 Agate Logic, Inc. System and method of signal processing engines with programmable logic fabric
JPWO2016063667A1 (ja) * 2014-10-22 2017-06-08 太陽誘電株式会社 再構成可能デバイス

Also Published As

Publication number Publication date
GB0302460D0 (en) 2003-03-05
US6986004B1 (en) 2006-01-10
US6903573B1 (en) 2005-06-07
US6765408B2 (en) 2004-07-20
US6915323B1 (en) 2005-07-05
US20040000928A1 (en) 2004-01-01
US6861870B1 (en) 2005-03-01
GB2387003A (en) 2003-10-01
GB2387003B (en) 2004-04-21
DE10304912A1 (de) 2003-10-02

Similar Documents

Publication Publication Date Title
JP2003324344A (ja) プログラマブルロジック装置
US6430088B1 (en) Embedded static random access memory for field programmable gate array
Agrawal et al. An innovative, segmented high performance FPGA family with variable-grain-architecture and wide-gating functions
US5809281A (en) Field programmable gate array with high speed SRAM based configurable function block configurable as high performance logic or block of SRAM
US6864710B1 (en) Programmable logic device
Perissakis et al. Embedded DRAM for a reconfigurable array
US7886130B2 (en) Field programmable gate array and microcontroller system-on-a-chip
EP0701713B1 (en) Field programmable logic device with dynamic interconnections to a dynamic logic core
US6992947B1 (en) Dual-port SRAM in a programmable logic device
US6803785B1 (en) I/O circuitry shared between processor and programmable logic portions of an integrated circuit
JP2001520837A (ja) ゲートアレイのための機能ブロックアーキテクチャ
JP2017502402A (ja) 高スループットのキーバリューストアの実現のためのメモリ構成
US9780792B2 (en) FPGA RAM blocks optimized for use as register files
US7768819B2 (en) Variable sized soft memory macros in structured cell arrays, and related methods
WO2014065424A1 (ja) 再構成可能な半導体装置
US20100271084A1 (en) Souce-synchronous data link for system-on-chip design
Konishi et al. PCA-1: A fully asynchronous, self-reconfigurable LSI
US7800404B2 (en) Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array
JP2011514065A (ja) プログラマブル論理ファブリック
US9811628B1 (en) Metal configurable register file
Heile et al. Hybrid product term and LUT based architectures using embedded memory blocks
US7248491B1 (en) Circuit for and method of implementing a content addressable memory in a programmable logic device
US10916323B2 (en) Memory interface latch with integrated write-through and fence functions
US7242633B1 (en) Memory device and method of transferring data in memory device
US10229748B1 (en) Memory interface latch with integrated write-through function

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050830