第 2章 大规模可编程逻辑器件第 2章 大规模可编程逻辑器件
2.1 可编程逻辑器件概述
2.2 复杂可编程逻辑器件 (CPLD)
2.3 现场可编程门阵列 (FPGA)
2.4 在系统可编程 (ISP)逻辑器件
2.5 FPGA和 CPLD的开发应用选择第 2章 大规模可编程逻辑器件
2.1 可编程逻辑器件概述
2.1.1 PLD的发展进程最早的可编程逻辑器件出现在 20世纪 70年代初,主要是可编程只读存储器 (PROM)和可编程逻辑阵列 (PLA)。 20世纪 70年代末出现了可编程阵列逻辑 (PAL— Programmable Array Logic)器件。 20世纪 80年代初期,美国 Lattice公司推出了一种新型的
PLD器件,称为通用阵列逻辑 (GAL-Generic Array Logic),一般认为它是第二代 PLD器件。随着技术的进步,生产工艺的不断改进,器件规模不断扩大,逻辑功能不断增强,各种可编程逻辑器件如雨后春笋般地涌现,如 PROM,EPROM,E2PROM等。
第 2章 大规模可编程逻辑器件在 EPROM基础上出现的高密度可编程逻辑器件称为 EPLD
或 CPLD。现在一般把超过某一集成度的 PLD器件都称为 CPLD。
在 20世纪 80年代中期,美国 Xilinx公司首先推出了现场可编程门阵列 (FPGA)器件。 FPGA器件采用逻辑单元阵列结构和静态随机存取存储器工艺,设计灵活,集成度高,可无限次反复编程,
并可现场模拟调试验证。在 20世纪 90年代初,Lattice公司又推出了在系统可编程大规模集成电路 (ispLSI)。
第 2章 大规模可编程逻辑器件表 2.1 Altera系列产品主要性能系 列 代表产品 配置单元逻辑单元
(F F )
最大用户
I/ O
速度等级 / n s R A M / 位
A P E X 2 0 K E P 2 0 K 1 0 0 0 E S R A M 4 2 2 4 0 780 4 540 k
F L E X 1 0 K E P F 1 0 K 1 0 S R A M 4 9 9 2 (5 3 9 2 ) 406 4 2 4 5 7 6
F L E X 8 0 0 0 E P F 8 0 5 0 S R A M 4 0 3 2 (4 6 5 6 ) 360 3
M A X 9 0 0 0 E P M 9 5 6 0 E E P R O M 5 6 0 (7 7 2 ) 212 12
M A X 7 0 0 0 E P M 7 2 5 6 E E P R O M 256 160 10
F L A S H l o g i c E P X 8 1 6 0 S R A M / F L A S H 160 172 10 2 0 4 8 0
M A X 5 0 0 0 E P M 5 1 9 2 E P R O M 192 64 1
C l a s s i c E P 1 8 1 0 E P R O M 48 48 20
第 2章 大规模可编程逻辑器件美国 Xilinx公司在 1985年推出了世界上第一块现场可编程门阵列 (FPGA)器件,最初 3个完整的系列产品分别命名为 XC2000、
XC3000和 XC4000,共有 19个品种,后又增加了低电压 (3.3 V)
的,L”系列、多 I/O引脚的,H”系列及更高速的,A”系列,并推出了与 XC3000兼容的 XC3100/A系列,在 XC4000的基础上又增加了,E”和,EX”系列。在 1995年,Xilinx又增加了 XC5000、
XC6200和 XC8100 FPGA系列,并取得了突破性进展。而后又推出了 Spartan和 Virture系列。 Xilinx还有 3个 EPLD系列产品:
XC7200,XC7300和 XC9500,如表 2.2所示。
第 2章 大规模可编程逻辑器件表 2.2 Xilinx系列产品主要性能系 列代 表产 品可用门宏单元逻辑单元
(F F )
速度等级
/ ns
驱动能力
/ mA
最大用户
I/ O
R A M
/ 位
X C 2 0 0 0 X C 2 0 1 8 L 1,0 k ~ 1,5 k 100 172 10 4 74
X C 3 0 0 0 X C 3 0 9 0 5,0 k ~ 6,0 k 320 928 6 4 144
X C 3 1 0 0 X C 3 1 9 5 / A 6,5 k ~ 7,5 k 484 1320 0,9 8 176
X C 4 0 0 0 X C 4 0 6 3 E X 6 2 k ~ 1 3 0 k 2304 5376 2 12 384 73 728
X C 5 2 0 0 X C 5 2 1 5 1 4 k ~ 1 8 k 484 1936 4 8 244
X C 6 2 0 0 X C 6 2 6 4 6 4 k ~ 1 0 0 k 1 6 3 8 4 16 384 8 512 262 k
X C 8 1 0 0 X C 8 1 0 9 8,1 k ~ 9,4 k 2688 1344 1 24 208
X C 7 2 0 0 X C 7 2 7 2 A 2,0 k 72 126 15 8 72
X C 7 3 0 0 X C 7 3 1 44 3,8 k 144 234 7 24 156
X C 9 5 0 0 X C 9 5 2 8 8 6,4 k 288 288 10 24 180
第 2章 大规模可编程逻辑器件
Lattice公司成立于 1983年,是 E2CMOS技术的开拓者,发明了 GAL器件,是低密度 PLD的最大供应商。该公司于 20世纪
90年代开始进入 HDPLD领域,并推出了 pLSI/ispLSI器件,实现了在系统可编程技术 (ISP)。 ISP使用户能够在无须从系统板上拔下芯片或从系统中取出电路板的情况下,改变芯片的逻辑内容乃至改变整个电子系统的功能。这种技术能大大缩短设计周期,
简化生产流程,降低设计成本。
Lattice公司目前的 pLSI/ispLSI器件主要有 6个系列:
pLSI/ispLSI1000,2000,3000,5000,6000和 8000系列,如表
2.3所示。
第 2章 大规模可编程逻辑器件表 2.3 Lattice系列产品主要性能系 列 代表产品 可用门 宏单元逻辑单元
( FF )
速度等级 / ns
最大用户
I / O
i s P L S I 1 0 0 0 / E i s p 1 4 8 8 k 192 288 5 108
i s p L S I 2 0 0 0 / E / V/ E i s p 2 1 9 2 8 k 192 192 6 1 1 0
i s p L S I 3 0 0 0 i s p 3 4 4 8 2 0 k 320 672 12 224
i s p L S I 5 0 0 0 V i s p 5 5 1 2 V 2 4 k 512 384 10 384
i s p L S I 6 0 0 0 i s p 6 1 9 2 * 2 5 k 192 416 15 159
i s p L S I 8 0 0 0 i s p 8 8 4 0 4 5 k 840 1 1 5 2 8,5 312
第 2章 大规模可编程逻辑器件
2.1.2 PLD的种类及分类方法目前生产 PLD的厂家有 Xilinx,Altera,Actel,Atemel、
AMD,AT&T,Cypress,Intel,Motorola,Quicklogic、
TI(Texas Instrument)等。常见的 PLD产品有,PROM,EPROM、
EEPROM,PLA,FPLA,PAL,GAL,CPLD,EPLD、
EEPLD,HDPLD,FPGA,pLSI,ispLSI,ispGAL和 ispGDS等。
PLD的分类方法较多,也不统一,下面简单介绍 4种。
第 2章 大规模可编程逻辑器件
1.从结构的复杂程度分类从结构的复杂程度上一般可将 PLD分为简单 PLD和复杂
PLD(CPLD),或分为低密度 PLD和高密度 PLD(HDPLD)。通常,
当 PLD中的等效门数超过 500门时,则认为它是高密度 PLD。传统的 PAL和 GAL是典型的低密度 PLD,其余如 EPLD,FPGA和
pLSI/ispLSI则称为 HDPLD或 CPLD。
第 2章 大规模可编程逻辑器件
2.从互连结构上分类从互连结构上可将 PLD分为确定型和统计型两类。
确定型 PLD提供的互连结构每次用相同的互连线实现布线,
所以,这类 PLD的定时特性常常可以从数据手册上查阅而事先确定。这类 PLD是由 PROM 结构演变而来的,目前除了 FPGA
器件外,基本上都属于这一类结构。
统计型结构是指设计系统每次执行相同的功能,却能给出不同的布线模式,一般无法确切地预知线路的延时。所以,设计系统必须允许设计者提出约束条件,如关键路径的延时和关联信号的延时差等。这类器件的典型代表是 FPGA系列。
第 2章 大规模可编程逻辑器件
3.从可编程特性上分类从可编程特性上可将 PLD分为一次可编程和重复可编程两类。一次可编程的典型产品是 PROM,PAL和熔丝型 FPGA,其他大多是重复可编程的。其中,用紫外线擦除的产品的编程次数一般在几十次的量级,采用电擦除方式的产品的编程的次数稍多些,采用 E2CMOS工艺的产品,擦写次数可达上千次,而采用 SRAM(静态随机存取存储器 )结构,则被认为可实现无限次的编程。
第 2章 大规模可编程逻辑器件
4.从可编程器件的编程元件上分类最早的 PLD器件 (如 PAL)大多是 TTL工艺,但后来的 PLD器件 (如 GAL,EPLD,FPGA及 pLSI/ISP器件 )都采用 MOS工艺 (如
NMOS,CMOS,E2CMOS等 )。目前,一般有下列 5种编程元件:
① 熔丝型开关 (一次可编程,要求大电流 );② 可编程低阻电路元件 (多次可编程,要求中电压 );③ EPROM的编程元件 (需要有石英窗口,紫外线擦除 );④ EEPROM的编程元件;⑤ 基于
SRAM的编程元件。
第 2章 大规模可编程逻辑器件
2.2 复杂可编程逻辑器件 (CPLD)
2.2.1 CPLD的基本结构早期的 CPLD主要用来替代 PAL器件,所以其结构与 PAL、
GAL基本相同,采用了可编程的与阵列和固定的或阵列结构。
再加上一个全局共享的可编程与阵列,把多个宏单元连接起来,
并增加了 I/O控制模块的数量和功能。可以把 CPLD的基本结构看成由逻辑阵列宏单元和 I/O控制模块两部分组成。
第 2章 大规模可编程逻辑器件
1.逻辑阵列宏单元在较早的 CPLD中,由结构相同的逻辑阵列组成宏单元模块。
一个逻辑阵列单元的基本结构如图 2.1所示。输入项由专用输入端和 I/O端组成,而来自 I/O端口的输入项,可通过 I/O结构控制模块的反馈选择,可以是 I/O端信号的直接输入,也可以是本单元输出的内部反馈。所有输入项都经过缓冲器驱动,并输出其输入的原码及补码。图 2.1中所有竖线为逻辑单元阵列的输入线,每个单元各有 9条横向线,称为积项线 (或称为乘积项 )。在每条输入线和积项线的交叉处设有一个 EPROM单元进行编程,以实现输入项与乘积项的连接关系,这样使得逻辑阵列中的与阵列是可编程的。其中,8条积项线用作或门的输入,构成一个具有8个积项和的组合逻辑输出;另一条积项线 (OE线 ) 连到本单元的三态输出缓冲器的控制端,以 I/O端作输出、输入或双向输出等工作方式。
第 2章 大规模可编程逻辑器件图 2.1 逻辑阵列单元结构图
1
时钟
3028262420 22 34
3533
32
3129272523211953
2 4 6
9
8
11
10
13
12
15
14 18
17
16
7
0
反馈输出控制积项和输出
I / O 端专用输入端线项积
OE
第 2章 大规模可编程逻辑器件可以看出,早期 CPLD中的逻辑阵列结构与 PAL,GAL中的结构极为类似,只是用 EPROM单元取代了 PAL中的熔丝和 GAL中的
E2PROM单元。和 GAL器件一样,可实现擦除和再编程功能。
在基本结构中,每个或门有固定乘积项 (8个 ),也就是说,逻辑阵列单元中的或阵列是固定的、不可编程的,因而这种结构的灵活性差。据统计,实际工作中常用到的组合逻辑,约有 70% 是只含 3个乘积项及 3个以下的积项和。另一方面,对遇到复杂的组合逻辑所需的乘积项可能超过 8个,这又要用两个或多个逻辑单元来实现。器件的资源利用率不高。为此,目前的 CPLD在逻辑阵列单元结构方面作了很大改进,下面讨论几种改进的结构形式。
第 2章 大规模可编程逻辑器件
1) 乘积项数目不同的逻辑阵列单元图 2.2所示是一个具有 12个专用输入端和 10个 I/O端的 CPLD,
共有 10个逻辑阵列单元,分成 5个逻辑单元对,各对分别由不同数量的乘积项组成。由图 2.2可见,中间的逻辑单元对可实现 16
个积项和的组合逻辑输出,最外侧的逻辑单元对由 8个乘积项组成,其余 3对分别由 10,12,14个乘积项组成,从而可实现更为复杂的逻辑功能。各逻辑单元中另有一条积项线作输出三态缓冲器的控制。具有这种结构的代表产品为 Atmel公司的
AT220V10A器件。
第 2章 大规模可编程逻辑器件图 2.2 积项线数不同的逻辑阵列单元输入线输出逻辑
A
S
Y
N
C
H
R
O
N
O
U
S
R
E
S
E
T
( D IP,S M T )
( 23,2 7) ( 22,2 6) ( 2 1,2 5 )
( 20,2 4)
I / O
( 19,2 3) ( 18,2 1) ( 17,2 0) ( 16,1 9) ( 15,1 6) ( 14,1 7) ( 13,1 6)
( D IP,S M T ) ( 1,2 ) ( 2,3 ) ( 3,4 ) ( 4,5 ) ( 5,6 )
( 6,7 ) ( 7,9 ) ( 8,1 0)
( 9,1 1) ( 10,1 2)
( 11,1 3)
8 10 12 14 16 16 14 12 10 8
SP
79
1113151513
11
000000000
OEOEOEOEOEOEOEOEOEAR OE
0 97
40
36
32
28
20
16
12
8
4
0
24
第 2章 大规模可编程逻辑器件
2) 具有两个或项输出的逻辑阵列单元图 2.3是具有两个固定积项和输出的 CPLD的结构图。由图可见,每个单元中含有两个或项输出,而每个或项均有固定的 4个乘积项输入。为提高内部各或项的利用率,每个或项的输出均先送到一个由 EPROM单元可编程控制的 1分 2选择电路,即阵列单元中上面的或项输出由选择电路控制,既可输送到本单元中第 2级或门的输入端,也可馈送到相邻的下一个阵列单元第 2级或门的输入端;
第 2章 大规模可编程逻辑器件同样,阵列单元中下面的或项输出由选择电路控制,可直接送到本单元第 2级或门的输入端,也可馈送到相邻的前一个阵列单元中的第 2级或门输入端,使本单元不用的或项放到另一单元中发挥其作用。因而每个逻辑阵列单元又可共享相邻单元中的乘积项,使每个阵列可具有 4,8,12和 16四种组合的积项和输出,甚至本单元中的两个或项都可用于相邻的两个单元中。这样,既提高了器件内部各单元的利用率,又可实现更为复杂的逻辑功能。以这种逻辑单元结构实现的 EPLD有 Actel公司的 EP512器件等。
第 2章 大规模可编程逻辑器件图 2.3 具有两个固定积项和输出的结构图
VO
Q
P
4
4
宏单元反馈I / O 端输入端前一宏单元来去前一宏单元选择输出双反馈时钟选择异步时钟路电选 择项积极性选择同步时钟下一宏单元来去下一个宏单元输出允许
··
·
··
·
··
·
··
·
··
·
第 2章 大规模可编程逻辑器件在 Atmel公司的 ATV750等器件结构调整中,每个逻辑单元中也含有两个或项,但不同单元中构成或项的积项数却不同,
它是分别由 4,5,6,7和 8个乘积项输入到两个或门所组成的
5对阵列单元构成的组合阵列。每个单元中的两个或项输出通过输出逻辑模块中的选择电路控制,可实现各自独立的输出,
也可将两个或项再“线或”起来实现功能更为复杂的组合逻辑输出,但各个阵列单元中的或项不能为相邻的阵列单元所共享。
第 2章 大规模可编程逻辑器件
3) 功能更多、结构更复杂的逻辑阵列单元随着集成规模和工艺水平的提高,出现了大批结构复杂、
功能更多的逻辑阵列单元形式。如 Altera公司的 EP1810器件采用了全局总线和局部总线相结合的可编程逻辑宏单元结构:采用多阵列矩阵 (MAX— Multiple Array Matrix)结构的大规模
CPLD器件,如 Altera公司的 EPM系列和 Atmel公司的 ATV5000
系列器件;采用通用互连矩阵 (UIM— Universal Interconnect
Matrix)及双重逻辑功能块结构的逻辑阵列单元,如 Xilinx公司的 XC7000和 XC9500系列产品。
第 2章 大规模可编程逻辑器件
2,I/O控制模块
CPLD中的 I/O控制模块,根据器件的类型和功能不同,可有各种不同的结构形式,但基本上每个模块都由输出极性转换电路、触发器和输出三态缓冲器三部分及与它们相关的选择电路所组成。下面介绍在 CPLD中广泛采用的几种 I/O控制模块。
1) 与 PAL器件相兼容的 I/O模块如图 2.4所示,可编程逻辑阵列中每个逻辑阵列逻辑单元的输出都通过一个独立的 I/O控制模块接到 I/O端,通过 I/O控制模块的选择实现不同的输出方式。根据编程选择,各模块可实现组合逻辑输出和寄存器输出方式。
第 2章 大规模可编程逻辑器件图 2.4 与 PAL兼容的 CPLD的 I/O控制模块结构输出极性选择
8
D Q
输出选择由可编程逻辑阵列来反馈选择
I / O 端第 2章 大规模可编程逻辑器件
2) 与 GAL器件相兼容的 I/O模块 —— 输出宏单元如图 2.5所示,从逻辑阵列单元输出的积项和首先送到输出宏单元 (OMC— Output Macro Cell)的输出极性选择电路,由
EPROM单元构成的可编程控制位来选择该输出极性 (原码或它的补码 )。每个 OMC中还有由 EPROM单元构成的两个结构控制位,根据构形单元表,OMC可实现如图 2.6所示的 4种不同的工作方式。
第 2章 大规模可编程逻辑器件图 2.5 OMC结构图反馈清零
CK
D Q
C
预置位输出选择
I / O 控制 模块
O1
O2
O3
O4
I / O
12
F1 F2 F3
时钟第 2章 大规模可编程逻辑器件图 2.6 OMC的 4种不同的工作方式寄存器输出双向 I / O ( 组合方式)
SP
AR
C L K
Q
1
固定输入
C L R
S
F ( I )
F ( B ) F ( B )
F ( D ) F ( D )
OE
S
S
固定输出
F ( O ) F ( O )
第 2章 大规模可编程逻辑器件
3) 触发器可编程的 I/O模块为了进一步改善 I/O控制模块的功能,对 I/O模块中的触发器电路进行改进并由 EPROM单元进行编程,可实现不同类型的触发器结构,即 D,T,JK,RS等类型的触发器,如图 2.7所示。这种改进的 I/O控制模块,可组合成高达 50种的电路结构。
第 2章 大规模可编程逻辑器件图 2.7 触发器可编程的 I/O控制模块结构
RD
K
J
S - N
N
V CC
钟时步同编程阵列来结构选择触发器极性选择时钟输出允许控制
I / O
反馈选择输出选择第 2章 大规模可编程逻辑器件
4) 具有两路积项和输入与两个触发器结构的 I/O控制模块如图 2.8所示,模块中两个触发器可独立地反馈回逻辑阵列。
由于这种结构的灵活性,可使触发器成为“内藏 (Burried)”工作方式,而且,它具有更多的触发器,很容易实现更为复杂的状态机功能。
第 2章 大规模可编程逻辑器件图 2.8 具有两路积项和输入与两个触发器的 I/O控制模块结构去逻辑阵列
E N A B L E
逻辑阵列来
S1
C L K 1
A R 1
S2
C L K 2
A R 2
D
SP
C
D
SP
C
输出选择
I / O
第 2章 大规模可编程逻辑器件
5) 具有三路积项和输入与两个触发器的 I/O控制模块如图 2.9所示,每个 I/O模块可接受三路积项和输入,每路各有 4个乘积项。利用 EPROM控制单元的编程,可实现下列功能:
(1) 一路积项和的输出直接馈送到 I/O端,而另两路积项和的输出则分别馈送到两个触发器的输入端 D1和 D2,它们的输出均可为“内藏”工作方式,通过编程控制可反馈到逻辑阵列总线中去。
第 2章 大规模可编程逻辑器件图 2.9 具有三路积项和输入与两个触发器的 I/O控制模块结构
4
4
4
EN
Q2
Q1
I / O
Q2
Q1
S3
S0
S2
S1
A R 2
C L K 2
A R 1
C L K 1
辑列阵逻去项和个
3
极性选择
QD
QD
第 2章 大规模可编程逻辑器件
(2) 在实现组合逻辑输出或寄存器方式输出之前,三路和项还可以通过编程组合在一起,以实现高达 12个积项和的组合逻辑输出或寄存器输出。
(3) 在组合逻辑输出方式中,通过编程控制可实现 4,8或 12
个积项和的组合逻辑输出,而模块中的中、下两路和项仍可分别馈送到两个触发器的 D1和 D2端,它们的输出 Q1和 Q2为“内藏”
工作方式,可通过编程反馈到逻辑阵列总线中去。
(4) 在寄存器输出方式中,上、中两路组合成 8个积项和自动馈送到触发器 D1输入端,而下路的和项除馈送到触发器 D2输入端为“内藏”工作方式外,还可与 D1共享。
第 2章 大规模可编程逻辑器件
(5) 两个触发器均可有各自的异步复位和时钟信号,AR1、
CLK1和 AR2,CLK2,它们由编程逻辑阵列中的 4条积项线提供。
(6) 输出三态缓冲器的控制信号由来自编程逻辑阵列的一条积项线提供。
(7) 当 I/O端作输入端使用,或 I/O模块的输出反馈到逻辑阵列总线中去时,均通过同一个反馈缓冲器输出它们的同相和反相两路信号,馈送到逻辑阵列总线中去,而两个触发器的输出
Q1和 Q2则通过各自的反馈缓冲器,将它们的信号 (同相及反相信号 )馈送到逻辑阵列总线中去。
第 2章 大规模可编程逻辑器件
2.2.2 Altera 公司的器件产品
Altera公司的产品在我国有较多的用户,如 EP220,EP224、
EP6010,EP1810等经典产品应用颇广。后来推出的 EPM系列和
EPF系列的集成度更是大大提高,品种多样,性能优越。
Altera公司提供了 7种通用 PLD系列产品,FLEX10K、
FLEX8000,MAX9000,MAX7000,FLASHlogic,MAX5000
和 Classic。 FLEX(Flexible Logic Element MatriX)结构使用查找表 (LUT— Look Up Table)来实现逻辑功能,而多阵列矩阵
(MAX— Mutiple Array MatriX),FLASHlogic和经典系列,采用可编程“与” /固定“或”乘积项结构。所有 Altera器件系列都使用 CMOS处理工艺,它比双极性工艺具有更低的功耗和更高的可靠性。
第 2章 大规模可编程逻辑器件
1,FLEX10K系列器件
FLEX10K系列器件是高密度阵列嵌入式可编程逻辑器件系列。这类器件最大可达 10万个典型门,5392个寄存器;采用 0.5
μm CMOS SRAM工艺制造;具有在系统可配置特性;在所有 I/O
端口中有输入 /输出寄存器; 3.3 V或 5.0 V工作模式;由 Altera公司的 MAX+plusⅡ 开发系统提供软件支持,可在 PC机或工作站上运行。
为了增加逻辑系统要求的集成度,可编程逻辑不仅要增加密度,而且要有效地实现大量的逻辑电路。 FLEX10K系列以工业上最大的 PLD为特征 (达到 10万门 ),包括嵌入式阵列、多组低时延时钟和内部三态总线等结构特性,提供了复杂逻辑设计所需的性能和利用主系统级集成的要求。 FLEX10K器件可理想地用于复杂门阵列的各种场合,其特性如表 2.4所示。
第 2章 大规模可编程逻辑器件表 2.4 FLEX10K (EPF10K10~10K100)器件特性特性 1 0 K 1 0 1 0 K 2 0 1 0 K 3 0 1 0 K 4 0 1 0 K 5 0 1 0 K 7 0 1 0 K 1 0 0
典型门 10 k 20 k 30 k 40 k 50 k 70 k 100 k
可用门
( 千个 )
7 ~ 31 15 ~ 63 22 ~ 69 29 ~ 93 36 ~ 1 1 6 46 ~ 1 1 8 62 ~ 158
逻辑单元 576 1 1 5 2 1728 2304 2880 3744 4992
R A M ( 位 ) 6144 12 288 12 288 16 384 20 480 18 432 24 576
触发器 720 1344 1968 2576 3184 4096 5392
最大用户
I / O
150 198 246 278 310 358 406
第 2章 大规模可编程逻辑器件
FLEX10K器件的结构类似于嵌入式门阵列。由于有标准的门阵列,嵌入式门阵列在通用的门海结构中实现一般逻辑。除此之外,嵌入式门阵列有专门的芯片面积以实现大的专用功能。
嵌入式门阵列在减少芯片面积的同时具有比标准门阵列更快的速度,这是通过嵌入在硅里的函数完成的。然而嵌入的宏函数不能被用户化,限制了设计者的选项。相比之下,FLEX10K器件是可编程的,在调试时,给设计者提供了实现重复设计改变过程中对嵌入宏函数和一般逻辑的完全控制。
第 2章 大规模可编程逻辑器件每个 FLEX10K器件包含一个实现存储和专用逻辑功能的嵌入阵列和一个实现一般逻辑的逻辑阵列。嵌入阵列和逻辑阵列的结合提供了嵌入式门阵列的高性能和高密度,可以使设计者在某个器件上实现一个完整的系统。
嵌入阵列由一系列嵌入阵列块 (EAB)构成。实现存储功能时,每个 EAB提供 2048比特,可以用来完成 RAM,ROM、双口
RAM或者 FIFO功能。实现逻辑功能时,每个 EAB可以提供
100~600门以实现复杂的逻辑功能,如实现乘法器、微控制器、
状态机和 DSP(数字信号处理 )功能。 EAB可以单独使用或多个
EAB联合使用以实现更强的功能。
第 2章 大规模可编程逻辑器件逻辑阵列由逻辑块 LAB构成。每个 LAB包含 8个逻辑单元和一个局部连接。一个逻辑单元有一个 4输入查找表、一个可编程触发器和一个实现进位和级联功能的专用信号路径。 LAB
中的 8个逻辑单元可用来产生中规模逻辑块,比如 8比特计数器、
地址译码器或状态机,或者通过逻辑阵列块结合产生更大的逻辑块。每个逻辑阵列块代表大约 96个可用逻辑门。
第 2章 大规模可编程逻辑器件
FLEX10K内部的信号连接以及与器件管脚的信号连接由快速互连通道完成。快速互连通道是快速的且连续的运行于整个器件行和列的通道。
每个 I/O管脚由位于快速通道互连的每个行、列两端的 I/O
单元 (IOE)输入。每个 IOE包含一个双向 I/O缓冲器和一个触发器。
这个触发器可用作数据输入、输出或双向信号的输出或输入寄存器。和专用时钟引脚连用时,这些寄存器提供附加的性能。
输入时,提供 4.2 ns的建立时间和 0 ns的保持时间;输出时,这些寄存器提供 6.7 ns的保持时间。 IOE提供各种功能,比如
JTAG BST支持、电压摆率控制、三态缓冲器及开漏输出等。
第 2章 大规模可编程逻辑器件
FLEX10K器件在上电时通过保存在 Altera串行配置
EPROM中的数据或系统控制器提供的数据进行配置。 Altera提供 EPC1和 ECP1441配置 EPROM,它们通过串行数据流对
FLEX10K器件进行配置。配置数据也可以从系统 RAM或 Altera
的 BitBlaster串行下载电缆以及 ByteBlaster并行端口下载电缆获得。 FLEX10K器件经过配置后,可以装入新的配置数据实现在线重新配置。由于重新配置的时间小于 320 ms,在系统运行时可以完成重新配置的实时操作。
第 2章 大规模可编程逻辑器件
FLEX10K器件包含一个优化接口,允许微处理器对
FLEX10K器件进行串行或并行、同步或异步配置。该优化接口使微处理器把 FLEX10K器件当作存储器来处理,并且通过写入虚拟存储地址进行配置,这样设计者就很容易重新配置器件。
图 2.10给出了 FLEX10K的结构框图。每组 LE连接到 LAB,
LAB被分成行和列,每行包含一个 EAB。 LAB和 EAB由快速通道互相连接。 IOE位于行通道和列通道的两端。
第 2章 大规模可编程逻辑器件图 2.10 FLEX10K的结构框图
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
I O EI O EI O EI O E
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
I O E
I O E
I O EI O EI O EI O EI O EI O E
E A B
I O E
I O E
I O E
I O E
I O EI O E I O EI O EI O EI O E
I O E
I O E
I O EI O EI O EI O E
E A B
I / O 单元
( I O E)
… … … … …
… …

… … … …

列连 线带逻辑 阵列逻辑 阵列块逻辑 单元 ( LE )
局部 连线
……


……
行连 线带逻辑 单元嵌入 阵列嵌入阵列块 ( E A B )
第 2章 大规模可编程逻辑器件
FLEX10K器件提供 6个专用输入引脚,驱动触发器的控制输入,以保证高速、低摆率控制信号的有效分配。这些信号使用专用布线通道。这些专用布线通道比快速通道延时小、摆率低。 4个全局信号可由 4个专用输入引脚驱动,也可由内部逻辑驱动,后者可以提供分频信号或内部异步清零信号。
第 2章 大规模可编程逻辑器件
1) 嵌入阵列块 (EAB)
嵌入阵列块是一种在输入、输出端口上带有寄存器的灵活
RAM电路,用来实现一般门阵列的宏功能,适合实现乘法器、
矢量标量、纠错电路等功能。因为它很大也很灵活,还可应用于数字滤波和微控制器等领域。
逻辑功能通过配置过程中对 EAB的编程来实现,并产生一个 LUT(查找表 )。有了 LUT,组合功能就可以根据查找表结果来实现,而不是通过计算,比用一般逻辑实现的算法快。这一特点使 EAB的快速存取时间得到进一步增强。 EAB的大容量允许设计者在一个逻辑级上实现复杂的功能,减少了增加逻辑单元或 FPGA的 RAM块连接带来的路径延时。例如,一个 EAB可以通过 8个输入引脚和 8个输出引脚来实现 4× 4乘法器。参数化的函数,比如 LPM函数,可自然而然地利用 EAB实现。
第 2章 大规模可编程逻辑器件
EAB比后面将要讲到的 FPGA更有优势。 FPGA是通过小的、
分布式的小 RAM块阵列实现片上 RAM。当 RAM的尺寸增大时,
这些 FPGA RAM块包含不可预测的延时。除此之外,FPGA
RAM存在布线问题,因为小的 RAM块要被连接在一起组成大的部件。相比之下,EAB可用来实现大的专用 RAM部件,免去了不可预测的延时和布线问题。
EAB可用来实现同步 RAM,它比异步 RAM更容易使用。使用异步 RAM的电路必须产生 RAM的写使能 (WE)信号,并确保数据和地址信号符合与写使能信号相关的建立和保持时间要求。
与此相反,EAB的同步 RAM产生自己的独立写使能信号,并且根据全局时钟的关系进行自定时。使用 EAB自定时的 RAM只需要符合全局时钟建立和保持时间要求。
第 2章 大规模可编程逻辑器件每个 EAB被用作 RAM时可以按下列规格进行配置,256× 8,
512× 4,1024× 2或 2048× 1。较大的 RAM块可以由多个 EAB连接产生。例如,两个 256× 8连接可组成 256× 16的 RAM;两个
512× 4的 RAM块连接可组成 512× 8的 RAM。如果必要,一个器件里的所有 EAB可级联形成一个 RAM块。 EAB可级联成
2048× 8的 RAM块而不影响定时。 Altera的 MAX+plusⅡ 软件自动连接 EAB以满足设计者的 RAM规格要求。
第 2章 大规模可编程逻辑器件
EAB为驱动和控制时钟信号提供灵活的选择,如图 2.11所示。 EAB的输入和输出可以用不同的时钟。寄存器可以独立地运用在数据输入,EAB输出或地址写使能信号上。全局信号和
EAB的局部互连都可以驱动写使能信号。全局信号、专用时钟引脚和 EAB的局部互连能够驱动 EAB时钟信号。由于逻辑单元可驱动 EAB局部互连,所以可以用来控制写信号或 EAB时钟信号。
每个 EAB由行互连馈入信号,其输出可以驱动行和列互连。
每个 EAB输出最多驱动两个行通道和两个列通道。没有用到的行通道可以由其他逻辑单元驱动。这一特性为 EAB输出增加了可用的布线资源。
第 2章 大规模可编程逻辑器件
24
2,4,8,1 6
2 0 4 8 × 1
1 0 2 4 × 2
行连线带列连线带
2,4,8,1 6
E A B 的局部连线
8,9,1 0,1 1
8,4,2,1
QD
QD
QD
QD
WE
5 1 2 × 4
2 5 6 × 8
R A M / R O M
A d d r e s s
O u t
D a t a
In
D a t a
清除
6
专用输入与全局信号


2.
11F
LE
X
10K
的EA
B
第 2章 大规模可编程逻辑器件
2) 逻辑阵列块 (LAB)
FLEX10K的逻辑阵列块包括 8个逻辑单元、相关的进位链和级联链,LAB控制信号以及 LAB局部互连线,如图 2.12所示。
LAB构成了 FLEX10K结构的“粗粒度”构造,可以有效的布线,
并使器件的利用率和性能提高。
第 2章 大规模可编程逻辑器件每个 LAB提供 4个可供所有 8个 LE使用的可编程反相控制信号,其中 2个可用作时钟信号,另外 2个用作清除 /置位控制。
LAB的时钟可由专用时钟输入引脚、全局信号,I/O引脚或借助
LAB局部互连的任何内部信号直接驱动。 LAB的置位 /清除控制信号由全局信号,I/O信号或借助 LAB局部互连的内部信号驱动。
全局控制信号一般用作公共时钟、清除或置位信号,因为它们通过该器件时引起的偏移很小,所以可以提供同步控制。如果控制信号需要某种逻辑,则可用任何 LAB中的一个或多个 LE形成,并经驱动后送到目的 LAB的局部互连线上。另外,全局控制信号可由 LE输出产生。
第 2章 大规模可编程逻辑器件
3) 逻辑单元 (LE)
LE是 FLEX10K结构里的最小逻辑单位,它很紧凑,能有效地实现逻辑功能。每个 LE含有一个 4输入的 LUT、一个可编程的具有同步使能的触发器、进位链和级联链,如图 2.13所示。 LUT
是一种函数发生器,它能快速计算 4个变量的任意函数。每个 LE
可驱动局部的以及快速通道的互连。
LE中的可编程触发器可设置成 D,T,JK或 RS触发器。触发器的时钟、清除和置位控制信号可由专用的输入引脚、通用
I/O引脚或任何内部逻辑驱动。对于纯组合逻辑,可将触发器旁路,LUT的输出直接驱动 LE的输出。
第 2章 大规模可编程逻辑器件行连线带
16
6
L A B 局部连线专用输入与全局信号与级联输入进位输入进位输出与级联输出
4
24
8
16
列连线带列到行连线带
L E 7
L E 8
2
2
8
8
4
4
4
4
4
4
4
4
4
L A B 控制信号
L E 6
L E 5
L E 4
L E 3
L E 2
L E 1


2.
12F
LE
X
10K
的LA
B
第 2章 大规模可编程逻辑器件图 2.13 FLEX10K的 LE
L A B C T R L 4
L A B C T R L 3
清除局部互连到 L A B 的互连通道到快速可编程寄存器寄存器旁路时钟选择级联输出进位输出
L A B C T R L 2
L A B C T R L 1
复位逻辑清除/
C L R N
E N A
QD
P R N
D A T A 4
D A T A 1
D A T A 2
D A T A 3 链级联链级联输入进位输入进位
( L U T )
查找表第 2章 大规模可编程逻辑器件
LE有两个驱动互连通道的输出引脚:一个驱动局部互连通道,另外一个驱动行或列快速互连通道。这两个输出可被独立控制。例如,LUT可以驱动一个输出,寄存器驱动另一输出。
这一特征被称为寄存器填充,因为寄存器和 LUT可被用于不同的逻辑功能,所以能提高 LE的利用率。
第 2章 大规模可编程逻辑器件
FLEX10K的结构提供两条专用高速通路,即进位链和级联链,它们连接相邻的 LE但不占用通用互连通路。进位链支持高速计数器和加法器,级联链可在最小延时的情况下实现多输入逻辑函数。级联链和进位链可以连接同一 LAB中的所有 LE和同一行中的所有 LAB 。因为大量使用进位链和级联链会限制其他逻辑的布局与布线,所以建议只在对速度有较高要求的情况时使用。
第 2章 大规模可编程逻辑器件进位链提供 LE之间非常快 (0.2 ns)的进位功能。来自低位的进位信号经进位链送到高位,同时送到 LUT和进位链的下一级。
这一特点使 FLEX10K能够实现高速计数器和任意位数的加法器和比较器。
利用级联链,FLEX10K可以实现扇入很多的逻辑函数。相邻的 LUT用来并行地计算函数的各个部分,级联链把中间结果串联起来。级联链可以使用逻辑“与”或者逻辑“或” (借助狄摩根的反演定律 )来连接相邻 LE的输出。每增加一个 LE,函数的有效输入个数增加 4个,其延时大约增加 0.7 ns。 MAX+plusⅡ 编译器在设计处理期间会自动建立级联链,设计者在设计输入过程中也可以手工插入级联链。
第 2章 大规模可编程逻辑器件
4) 快速通道互连在 FLEX10K的结构中,快速通道互连提供 LE和 I/O引脚的连接,它是一系列贯穿整个器件的水平或垂直布线通道。这个全局布线结构即使在复杂的设计中也可预知性能。而在 FPGA中的分段布线却需要开关矩阵连接一系列变化的布线路径,这就增加了逻辑资源之间的延时并降低了性能。
快速互连通道由跨越整个器件的行、列互连通道构成。
LAB的每一行由一个专用行连线带传递。行互连能够驱动 I/O引脚,馈给器件中的其他 LAB。列连线带连接行与行之间的信号,
并驱动 I/O引脚。
第 2章 大规模可编程逻辑器件一个行通道可由一个 LE或三个列通道之一来驱动。这 4个信号馈入到连接两个专用行通道的双口 4选 1多路选择器。这些多路选择器连接到每个 LE,即使 LAB里的 8个 LE全都驱动行连接带,仍然允许列通道驱动行通道。
LAB的每列由专用列连接带服务。行连接带可驱动 I/O引脚或其他行的互连,向器件中其他的 LAB传递信号。一个来自列互连的信号可以是 LE的输出信号或者 I/O引脚的输入,它必须在进入 EAB或 LAB之前传递给行连接带。每个由 IOE或 EAB驱动的行通道可以驱动一个专用列通道。
第 2章 大规模可编程逻辑器件行、列通道的进入可以由相邻的 LAB对其中的 LE来转换。
例如,一个 LAB中,一个 LE可以驱动由行中的相邻的 LAB的某个特别的 LE正常驱动的行、列通道。这种灵活的布线使得布线资源得到更有效的利用,如图 2.14所示。
为了提高布通率,行互连有全长通道和半长通道。全长通道连接一行中的所有 LAB,半长通道连接半行中的 LAB。 EAB
可由左半行中的半长通道驱动,也可由全长通道驱动。 EAB驱动全长通道的输出。除了提供可预知的行范围互连,这种结构还增加了布线资源。两个相邻的 LAB可通过行通道来连接,因此为另一个半行保留了另一半的通道。
第 2章 大规模可编程逻辑器件在每种互连中,
列通道到其他去相邻 L A B
自相邻 L A B
去其他行局部互连去 L A B
L E 8
L E 2
L E 1
▲ ▲ ▲▲
驱动列通道 a n n e l s
4 个行通道能 c a n
▲ ▲ ▲▲
行通道列通道




2.
14L
AB
到行或列互连第 2章 大规模可编程逻辑器件除了通用功能的 I/O引脚外,FLEX10K器件有 6个专用输入引脚,提供器件中的低摆率信号。这 6个输入可用于全局时钟信号、清除信号、置位信号和周边输出使能信号以及时钟使能控制信号。这些信号与器件中所有 LAB和 IOE的控制信号一样可被利用。
专用输入信号可被用于通用数据输入,因为它们可以输入到器件的每个 LAB的局部互连。然而,把专用输入信号作为输入则为控制信号网络引入了额外的延时。
图 2.15表示了 FLEX10K的互连资源。其中每个 LAB根据其位置标号表示其所在位置,位置标号由表示行的字母和表示列的数字组成。例如,LAB B3位于 B行 3列。
第 2章 大规模可编程逻辑器件图 2.15 FLEX10K的互连资源细节详见图 2,1 6
细节详见图 2,1 7
级联链与
I O E
I O E
I O E
I O E
I O EI O EI O EI O EI O EI O E
I O EI O EI O EI O E
t o L A B B 4
t o L A B B 5
进位链
t o L A B A 4
t o L A B A 5
B2 B3B1
A3A2
( I O E )
列连线带行连线带
L A BL A BL A B
L A BL A B
A1
L A B


I O EI O E
I O E
I O E
I O E
I O E
… ……



… …

… … …
… … …
第 2章 大规模可编程逻辑器件
5) I/O单元 (IOE)
一个 I/O单元 (IOE)包含一个双向的 I/O缓冲器和一个寄存器。
寄存器可作输入寄存器使用,这是一种需要快速建立时间的外部数据的输入寄存器。 IOE的寄存器也可当作需要快速“时钟到输出”性能的数据输出寄存器使用。在有些场合,用 LE寄存器作为输入寄存器会比用 IOE寄存器产生更快的建立时间。 IOE
可用作输入、输出或双向引脚。 MAX+plusⅡ 编译器利用可编程的反相选项,在需要时可以自动将来自行、列连线带的信号反相。图 2.16表示了 FLEX10K的 I/O单元 (IOE)。
第 2章 大规模可编程逻辑器件图 2.16 FLEX10K的 I/O单元 (IOE)
C LK [ 1,,0 ]
2 个专用时钟输入
C LR n [ 1,,0 ]
EN A [ 5,,0 ]
C LK [ 3,,2 ]
O E[ 7,,0 ]
12
2
清除
V C C
通道来自行或列连线带来自行或列连线带到行或列通道来自行或列控制总线外围
V C C
EN A
C LR N
QD
V C C
V C C
输出使能芯片控制电压摆率输出集电极开路第 2章 大规模可编程逻辑器件
I/O控制信号网络,也称外围控制总线,从每个 IOE中选择时钟、清除、输出使能控制信号。外围控制总线利用高速驱动器使器件中电压摆率达到最小。它可以提供多达 12个外围控制信号,
划分如下,8个输出使能信号; 6个时钟使能信号; 2个时钟信号;
2个清除信号。
如果需要大于 6个的时钟信号或大于 8个的输出使能信号,每个 IOE可由专用 LE驱动的时钟使能和输出使能信号控制。除了外围控制总线上的两个时钟信号外,每个 IOE可使用两个专用时钟引脚之一。每个外围信号可由任意专用输入引脚或特定行中每个
LAB的第一个 LE驱动。另外,不同的行里的 LE可驱动一个列连线带,可产生一个行连线带以驱动周边控制信号。芯片级的置位信号可以置位所有 IOE寄存器,且优先于其他控制信号。
第 2章 大规模可编程逻辑器件控制总线的信号也可以驱动 4个全局信号,内部生成的信号可以驱动全局信号,提供与输入信号驱动相同的低摆率、低延时特性。这个特性对内部生成清除信号或多扇入的时钟信号是理想的。芯片级输出使能引脚低电平有效,可用于器件的所有三态引脚。这个选项可由设计文件设定。另外,IOE的寄存器也可被置位为引脚置位。
● 行到 IOE的连接。当 IOE用作输入信号时,它可以驱动两个独立的行通道。该行中的所有 LE都可访问这个信号。 IOE作为输出信号时,其输出信号由一个从行通道实现信号选择的多路选择器驱动。连接每一行通道的每个边 IOE可达 8个,如图
2.17所示。
第 2章 大规模可编程逻辑器件图 2.17 FLEX10K行到 IOE的连接多路选择器驱动行快速通道连接
I O E8
行通道每个 I O E 最多驱动 2 个每个 I O E 由一个 m 选 1
n
m
n
n
m
I O E1

第 2章 大规模可编程逻辑器件
● 列到 IOE的连接。当 IOE作为输入时,可驱动两个独立的列通道。 IOE作为输出时,其输出信号由一个对列通道进行选择的多路选择器驱动。两个 IOE连接列通道的每个边。每个 IOE
可由通过多路选择器的列通道驱动,每个 IOE可访问的列通道的设置是不同的,如图 2.18所示。
FLEX10K器件为每个 I/O引脚提供一个可选的开漏输出 (等效于集电极开路 )。开漏输出使得器件能够提供系统级的控制信号 (例如,中断和写信号 )。
第 2章 大规模可编程逻辑器件图 2.18 FLEX10K列到 IOE的连接
2 个列通道多路选择器驱动每个 I O E 最多可驱动每个 I O E 由一个 16 选 1


列连线带
n
m
n
n
m
I O E1
I O E1
第 2章 大规模可编程逻辑器件
2,FLEX8000系列器件
FLEX8000系列器件是高密度阵列嵌入式可编程逻辑器件系列,采用 0.5 μm CMOS SRAM工艺制造;具有在系统可配置特性;在所有 I/O端口中有输入 /输出寄存器; 3.3 V或 5.0 V工作模式;由 Altera公司的 MAX+plusⅡ 开发系统提供软件支持,可在
PC机或工作站上运行。
第 2章 大规模可编程逻辑器件
FLEX8000系列的结构包含一个大规模的紧凑型逻辑单元积木块矩阵。每个逻辑单元 (LE— Logic Element)含有一个 4输入查找表 (LUT— Look Up Table)和一个可编程寄存器。前者提供实现组合逻辑功能,后者具有时序逻辑能力。 LE的这种细区组结构可高效地实现逻辑功能。 8个 LE组合成一个逻辑阵列块 (LAB—
Logic Array Block)。每个 LAB是一种独立结构,带有公用输入、
互连和控制信号。 LAB的这种大区组结构为器件提供高性能和易布线等特征。 FLEX8000器件特性如表 2.5所示。
第 2章 大规模可编程逻辑器件表 2.5 FLEX8000器件特性特 征 E P F 8 2 8 2 / V/ A/ A V 8 4 5 2 / A 8636A 8 8 2 0 / A 8 1 1 8 8 / A 8 1 5 0 0 / A
有效门 5000 8000 1 2 0 0 0 1 6 0 0 0 2 4 0 0 0 3 2 0 0 0
可用门 2500 4000 6000 8000 1 2 0 0 0 1 6 0 0 0
逻辑单元 208 336 504 672 1008 1296
触发器 282 452 636 820 1 1 8 8 1500
最大用户 I / O 78 120 136 152 184 208
第 2章 大规模可编程逻辑器件
FLEX8000系列器件的结构如图 2.19所示。 LAB按行、列排序,构成逻辑阵列。每个 LAB由 8个 LE组成,为行、列两端的输入 /输出单元 (IOE— I/O Elements)提供 I/O端口。每个 IOE包含一个双向 I/O缓冲器和一个可用作输入 /输出寄存的触发器。在
FLEX8000器件内以及送到和来自器件引脚的信号互连,由快速通道互连 (Fast Track Interconnect)来实现。快速通道互连是一系列连续的通路,它们贯穿整个器件的长和宽。 IOE位于每行 (水平 )和每列 (垂直 )快速通道互连路径的两端。下面对 FLEX8000器件的逻辑单元、逻辑阵列块、快速通道互连和输入 /输出单元作进一步的说明。
第 2章 大规模可编程逻辑器件图 2.19 FLEX8000系列器件的结构
I O E I O E
输入输出单元
( I O E )
逻辑阵列块
( L A B )
I O E
I O E
逻辑单元
( L E )
快速通道互 连
I O E I O EI O E I O E
I O E
I O E
I O E
I O E
I O E
I O E



I O E I O E?
第 2章 大规模可编程逻辑器件
1) 逻辑单元 (LE)
逻辑单元是 FLEX8000器件结构中最小的逻辑单位,它们有紧凑的排列并提供高效的逻辑利用。每个 LE含有一个 4输入查找表 (LUT)、一个可编程触发器、一个进位链路和一个级联链路,如图 2.20所示。
第 2章 大规模可编程逻辑器件图 2.20 FLEX8000的 LE
D A T A 1
D A T A 2
D A T A 3
D A T A 4
清零预置逻辑
L A B C T R L 1
L A B C T R L 2
查找表
( L U T )
进位链路时钟选择
L A B C T R L 3
L A B C T R L 4
( 级联)
链路进位输入 级联输入
P R N
D Q
C L R N
D F F
LE 输出进位输出 级联输出第 2章 大规模可编程逻辑器件
LUT是一个函数发生器,它能快速计算 4变量的任意函数。
LE内的可编程触发器可配置为 D,T,JK或 SR工作模式。触发器上的时钟、清零和预置控制信号,可由专用输入引脚、通用 I/O端口或任何内部逻辑来驱动。对于纯组合逻辑功能,触发器被旁路,
LUT的输出直接送到 LE输出。
FLEX8000器件结构提供两个专用高速数据通路:进位链路和级联链路。它们连接相邻的 LE,而不占用局部互连资源。进位链路支持高速计数器和加法器,级联链路实现最小时延的宽输入函数。进位和级联链路连接一个 LAB中的所有 LE以及在同一行中的
LAB。进位和级联链路的大量使用会减少实现其他逻辑的有效布线资源,因此,应把它们限制在设计的速度关键部分。
第 2章 大规模可编程逻辑器件
2) 逻辑阵列块 (LAB)
每个逻辑阵列块 (LAB)含有 8个 LE及相应的进位和级联链路、
LAB控制信号和 LAB局部互连。 LAB为大区组结构,这种结构的 FLEX8000器件能提供器件有效布线、高资源利用率和高性能,如图 2.21所示。
第 2章 大规模可编程逻辑器件每个 LAB提供 4个控制信号,作用于 8个 LE,其中 2个信号用作时钟,另外 2个作为清零 /预置控制。 LAB控制信号由下列信号直接驱动:专用输入引脚,I/O端口或通过该 LAB局部互连的任何内部信号。专用输入典型地作为全局时钟、清零和预置信号,因为它们可提供低时延同步控制,且作用于整个器件。
FLEX8000器件支持多达 4个独立的全局时钟、清零或预置控制信号。如果某个控制信号需要逻辑组合,那么它可由任一 LAB
内的一个或多个 LE产生,并能送到目标 LAB的局部互连上。 4
个控制信号都可编程为反相信号。
第 2章 大规模可编程逻辑器件
L E 7
L E 6
L E 5
L E 4
L E 3
L E 2
L E 1
L E 8
行列互连行互连专用输入输出的进位和级联去 L A B 右端的进位和级联输入来自 L A B 左端列互连
2
2
8
168
8
4
4
4
4
4
4
4
4
4
424
L A B 控制信号
( 32 通道)
L A B 局部互连
4
… … …





2.
21F
LE
X
80
00
器件的LA
B
第 2章 大规模可编程逻辑器件
3) 快速通道互连在 FLEX8000器件结构中,LE和器件 I/O引脚的连接,由快速通道互连实现。快速通道互连是一系列连续的水平和垂直布线通路,贯穿整个器件。这种结构提供了可预测的性能。相反,
在 FPGA器件中的分段布线,需要转接矩阵来连接多段布线通路,
这样将增加逻辑资源间的延时,因而降低了器件性能。
每行 LAB有一组专用行互连,对 LAB的出、入信号进行布线。另外,每个互连可驱动 I/O端口或馈送到器件的其他 LAB。
图 2.22表示一个 LE驱动行和列互连的情况。
第 2章 大规模可编程逻辑器件
行通道每个 LE 驱动一个行通道
L E 1
L E 2
到局域反馈到局域反馈每个 LE 驱动两个列通道
16 个列通道
图 2.22 一个 LE驱动行和列互连第 2章 大规模可编程逻辑器件
4) 输入 /输出单元 (IOE)
图 2.23表示输入 /输出单元 (IOE)的框图。 I/O端口可作为输入、输出或双向端口。每个 I/O端口有一个寄存器,它可用作外部数据的输入寄存器,也可用作输出寄存器。 MAX+plus Ⅱ 编译软件能根据需要自动地反相行、列互连的信号。每个 IOE有一个输出缓冲器,它具有可调整的输出转移速率,可配置为低噪声或高速度性能。专用行互连之间的最大相差为 4 ns延时,这可由用户根据实际需要选择。
第 2章 大规模可编程逻辑器件图 2.23 IOE结构图
I / O 控制到行互连或列互连来自行互连或列互连
C
L
R
0
C
L
R
I
/
O
E
0
O
E4
-
9
O
E3
C
L
K
I
/
O
E
1
C
L
K
0
O
E2
6
6
可编程反向器
V CC
V CC
C LR N
D Q
转换率控制第 2章 大规模可编程逻辑器件
FLEX8000系列特别适合于需要大量寄存器和 I/O引脚的应用。该系列器件的密度为 2500~ 50 000个可用门,带有 282~
4752个寄存器和 78~ 360个用户 I/O引脚。这些特性以及高性能可预测互连结构,使 FLEX8000器件能像基于乘积项的器件一样方便地利用。另外,基于 SRAM的 FLEX8000器件提供低的静态功耗,具有在电路可编程性,这使它们特别适用于 PC机插卡、电池供电的设备和多用途电信卡。
第 2章 大规模可编程逻辑器件
3,MAX9000系列
MAX9000系列器件的特性可参见 FLEX10K系列及表 2.6的说明,器件结构可参见 FLEX8000系列及图 2.24~图 2.27。
基于 EEPROM的 MAX9000系列将 MAX7000结构的有效宏单元与 FLEX8000结构的高性能、可预测快速通道互连相结合,使该系列器件特别适合于集成多个系统及功能。 MAX9000系列具有 6000~ 12 000个可用门,320~560个宏单元,最多达到 216个用户 I/O引脚。这一密度等级,以及 JTAG边界扫描测试支持和在系统可编程性,使 MAX9000器件成为利用 PLD好处的门阵列设计以及利用 ISP灵活性设计的最佳选择。
第 2章 大规模可编程逻辑器件表 2.6 MAX9000器件特性特 性 E P M 9 3 2 0 E P M 9 4 0 0 E P M 9 4 8 0 E P M 9 5 6 0
有效门 / 可用门 12 0 0 0 / 6 0 0 0 16 0 0 0 / 8 0 0 0 20 0 0 0 / 1 0 000 24 0 0 0 / 1 2 000
触发器 484 580 676 772
宏单元 320 400 480 560
最大用户 I / O 168 184 200 216
t
PD
( n s ) 12 12 15 15
f
C N T
( M Hz ) 125 125 1 1 8 1 1 8
第 2章 大规模可编程逻辑器件图 2.24 MAX9000器件结构图
I O E I O E
输入输出单元
( I O E )
逻辑阵列块
( L A B )
I O E
I O E
宏单元快速通道互 连
I O E I O EI O E I O E
I O E
I O E
I O E
I O E
I O E
I O E



I O E I O E?
L A B 逻辑阵列第 2章 大规模可编程逻辑器件图 2.25 MAX9000器件的逻辑阵列单元
( 1 1 4 个通道)
L A B 局部阵列互连行快速通道其他 L A B
和器件内的去外部总线去外部总线局部反馈互连列快速通道
1 ~ 16
宏单元全局控制选择
16
16
48
16
4816
161633
G O E
G C L R
G C L K 2
G C L K 1
D I N 4
D I N 3
D I N 2
D I N 1


第 2章 大规模可编程逻辑器件图 2.26 MAX9000器件的宏单元和局部阵列
16 个可共享扩展器乘积项阵列选择乘积项并行扩展器
V CC
2
道互连列快速通到行或使能时钟/
选择清零部反馈
16 个内寄存器可编程旁路寄存器输入选择宏单元全局时钟全局清零
L A B 局域阵列输入口互连快速通道
33 个列
… …



局域阵列反馈第 2章 大规模可编程逻辑器件图 2.27 MAX9000器件的输入 /输出单元外设控制总线
[ 1 2,,0 ]
到行或列快速通道互连
8
O E [ 7,,0 ]
13
来自行或列快速通道互连
V C C
转换速率控制
4
C L K [ 3,,0 ]
E N A [ 5,,0 ]
V C C
V C C
C L K [ 1,,0 ]
D Q
E N A
C L R K
6
2
第 2章 大规模可编程逻辑器件
2.3 现场可编程门阵列 (FPGA)
FPGA是现场可编程门阵列 (Field Programmable Gate Array)
的简称。 FPGA器件及其开发系统是开发大规模数字集成电路的新技术。它利用计算机辅助设计,绘制出实现用户逻辑的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;然后经一系列转换程序、自动布局布线、模拟仿真的过程;最后生成配置 FPGA器件的数据文件,对 FPGA器件初始化。这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的。
第 2章 大规模可编程逻辑器件概括地说,FPGA器件具有下列优点:高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证。使用 FPGA
器件,一般可在几天到几周内完成一个电子系统的设计和制作,
缩短研制周期,达到快速上市和进一步降低成本的要求。据统计,1993年 FPGA的产量已占整个可编程逻辑器件产量的 30%,
并在逐年提高。 FPGA在我国也得到了较广泛的应用。
目前提供 FPGA器件的主要厂家有 Xilinx,AT&T,Actel和
Signetics等,它们采用的结构体系、处理工艺和编程方法都有所不同。本节以 Xilinx公司的产品为例,介绍 PFGA器件的结构特点、配置模式以及性能特点。
第 2章 大规模可编程逻辑器件
2.3.1 FPGA器件的结构目前,Xilinx公司的 FPGA芯片分为 XC2000、
XC3000/XC3100,XC4000,XC5000,XC6200,XC8100、
Spartan,Virture等系列。前 3个系列是三代渐进而兼容的 FPGA
产品,它们包含多种规格,如密度大小、速度高低、温度范围、
封装形式等,形成了系列产品。而接下来的 3个系列是 1995年推出的产品。其中,XC5000系列的结构是对 0.6 μm三层金属丝
(TLM)处理工艺优化的第一个 FPGA系列,其结果是在硅片的利用效率上有惊人的突破,使 XC5000系列能承受大于 5 000门的各种设计,提供了高密度、低成本的最佳方案。
第 2章 大规模可编程逻辑器件
XC6200系列主要是针对计算机中可反复配置的协处理器而设计的。 XC8100系列是一次可编程的 (OTP),它利用 MicroVia
处理工艺 (一种 CMOS、金属到金属的反熔丝和 3层金属的组合,
编程是由 Xilinx或第三方的编程器来完成,类似于一次编程的
PLD器件 ),提供了低成本和高保密性能的最佳结合,可用于空间通信、工业控制等高保密和高速初始化应用的场合及批量或定型产品中。最后两个系列是 1998年新推出的大容量、高密度产品,最大门数已达 100万门量级。每种 FPGA器件都有专用
LSIC的功能特征,都是用户可编程和反复可编程的 (XC8100系列除外 )。
第 2章 大规模可编程逻辑器件
FPGA器件的内部结构为逻辑单元阵列 (LCA)。 LCA由 3类可编程单元组成:周边的输入 /输出模块 (IOB)、核心阵列是可配置逻辑块 (CLB)以及各模块间的互连资源。 XC3000系列的
LCA结构如图 2.28所示。
周边可配置的 IOB为内部逻辑与器件封装引脚之间提供可编程接口; CLB阵列实现用户指定的逻辑功能;互连资源类似于印制电路板上的引线,可编程为在模块间传递信号的网络。
FPGA器件从 1985年出现以来得到迅速发展,其密度、速度、
功能、结构等都有了很大改进,但其基本结构大体相同。下面重点介绍 XC3000系列器件的 LCA结构,然后简要描述其他系列器件的一些特点。
第 2章 大规模可编程逻辑器件图 2.28 XC3000系列的 LCA结构配置存储器可配置逻辑块 (C L B )三态缓冲器互连区域
I/ O 块第 2章 大规模可编程逻辑器件
1,XC3000/XC3100系列的 LCA结构这类 LCA结构包含 5个完全兼容的 FPGA产品系列:
XC3000,XC3000A,XC3000L,XC3100,XC3100A。它们提供一组高性能、高密度数字集成电路,排列规则,组合灵活,
可扩展和用户可编程的阵列结构包含一组配置程序存储器和 3
类可配置单元:周边的 I/O模块,CLB核心阵列和互连资源,如图 2.28所示。我们可利用已编程的查找表来实现模块逻辑;程序控制的多路复用器实现其功能选择;程序控制的开关晶体管
(Pass Transistors)连接金属段片,实现模块间的互连网络。
第 2章 大规模可编程逻辑器件
1) 可配置逻辑块 (CLB— Configurable Logic Block)
XC3000和 XC3100的 CLB结构是相同的,如图 2.29所示。每个 CLB由一个组合逻辑功能发生器、两个 D触发器和内部控制部分组成。它包含 5个逻辑输入端 (A,B,C,D,E)、一个公共时钟输入 (K)、一个异步直接复位输入 (RD)、一个时钟使能 (EC)
及一个直接数据输入端 (DI)。每个 CLB有两个输出端 (X和 Y),
它们可驱动互连网络。
第 2章 大规模可编程逻辑器件
CLB的组合逻辑部分使用 32× 1(或 16× 2)查找表 (Look up
Table)存储器来实现布尔函数。从 5个逻辑输入和两个内部触发器输入中选择的变量作为查找表的输入。该组合逻辑单元的延时是固定的,与实现的逻辑函数的复杂程度无关,也就是说,
该组合函数发生器对逻辑的复杂程度没有限制,只与输入变量的数目有关。每个组合逻辑单元可实现一个 5个变量的任意逻辑函数 (F模式 ),或两个独立的 4变量任意逻辑函数 (FG模式 ),或两个独立函数的分时工作模式 (FGM模式 ),分别如图 2.30(a),(b)、
(c)所示。在 F模式下,函数发生器实现由 7变量中选出的单个 5变量函数,5个变量为 A,D,E以及 B,C,QX和 QY中任选两个,
QX和 QY输出是相同的。
第 2章 大规模可编程逻辑器件
FG模式生成两个 4变量的独立函数,A输入共同,在 B,C、
QX和 QY中任选两个变量,另一个在 D和 E中选择。在 FGM模式下,使用输入变量 (E)动态选择两个独立的 4变量函数,A,D为共用输入,其余变量在 B,C,QX,QY中选择。此模式可利用所有 7个输入变量,E=1为 F输出,E=0为 G输出,QX和 QY输出可以在两个查找表中分别选择。 F和 G以及其两端触发器的对称性允许 CLB输出的互换,可提高网络的布线效率。
第 2章 大规模可编程逻辑器件图 2.29 XC3000/XC3100系列的 CLB结构
Y
X
1 (使 能)
0 (输 入)
RD
K
EC
E
C
D
A
B
QY
(整 体复位)
DI
G
QX
F
Q
RD
D
M U X
1
0
F
G
D I N
F
G
D I N
Q
RD
DM U X
1
0
G
F
QY
QX
发生器辑功能组合逻输入数据变量逻辑时钟使能直接复位时钟第 2章 大规模可编程逻辑器件图 2.30 XC3000系列 CLB的组合逻辑功能
(c ) F G M 模式
F
G
G
F
F
G
函数
6 变量函数
5 变量函数
4 变量函数
QD
QD
QD
X
U
M
E
D
C
B
A
E
D
C
B
A
E
D
C
B
E
D
C
B
A
A
4 变量
E
D
C
B
A
函数函数函数函数
4 变量
4 变量
4 变量
4 变量
FG
模式
F 模式
F G M
模式
Q2
Q1
Q0
终端计数
(b ) F 模式
(a ) F G 模式
D2
D1
D0
时钟并行使能计数使能
QX
QX
QX
QX
QX
QY
QY
QY
QY
QY
(d ) 三个模式的综合第 2章 大规模可编程逻辑器件每个 CLB中有两个 D触发器,共享一个触发时钟,时钟的极性可由用户规定 (上升沿或下降沿触发 ),D触发器的复位信号可由芯片内的全局限性复位 (Global Reset)或 RD输入信号驱动。
每个触发器的数据输入端 (D)可从直接数据输入端 (DIN)及组合逻辑输出 (F和 G)3个信号中选择;输出端 (Q)既可以直接驱动
CLB输出 (X和 Y),也可以反馈给组合逻辑输入变量。
第 2章 大规模可编程逻辑器件
2) 输入 /输出模块 (IOB— Input/Output Block)
每个 IOB为器件的外部封装引脚与内部用户逻辑之间提供一个可编程接口。如图 2.31所示,每个 IOB单元具有两个触发器、两根时钟输入线、输入门限检测缓冲器、三态控制的输出缓冲器、上拉电阻及一组程序控制存储单元。每个 IOB包含寄存器输入和直接输入通路,提供一个可编程三态输出缓冲器 (可由寄存器或直接输出信号驱动 ),配置选项允许每个 IOB输出具有反相、可控转换速率和高阻上拉选择。在输入电路中带有输入箝位二极管 (避免静电损伤 )及一些防止由输入电流引起自锁的保护电路。
第 2章 大规模可编程逻辑器件图 2.31 XC3000系列的 IOB
V CC
编程控制的存储单元
DQ
输出缓存输入阈值
T T L 或 C M O SFF 或锁存器
C K 2
C K 1
IKOK
T
O
I
Q
寄存器输入直接输入输出输出使能三态复用器可编程控制可编程互连节点
( 整体复位)
端口
I / O
R
R
Q
FF
D
选择输出反相三态反相输出电阻上拉转换速率第 2章 大规模可编程逻辑器件每个 IOB的输入缓冲器 (IBUF)部分带有阈值检测功能,可将施加到封装引脚上的外部信号转换成内部逻辑电平。 IOB的输入
BUF阈值可编程为 TTL电平或 CMOS电平。缓冲后的输入信号驱动存储单元的数据输入,该存储单元可配置成一个触发器或一个锁存器。在芯片四周每边上的两面三根时钟线,其时钟信号的极性 (上升 /下降沿触发触发器,高 /低电平透明锁存器 )是可编程的。注意,若一根时钟线驱动上升沿触发的触发器,则该时钟线将使同一边上的任何锁存器为低电平透明,反之亦然 (下降沿触发,则高电平透明 )。可是,所有 Xilinx元件库的基本单元中,
都是上升沿触发的触发器或高电平透明的锁存器,因此,当一根时钟线必须驱动触发器及锁存器时,要在触发器时钟输入或锁存器使能输入端附加一个反相器,在配置期间或通过低
RESET信号对 IOB中的存储单元复位。
第 2章 大规模可编程逻辑器件
3) 配置存储单元 (Configuration Memory)
如图 2.32所示,基本的存储单元由两个 CMOS反相器和一个用于读写数据的开关晶体管组成。在配置期间,只写入数据;
在读回期间,只读出数据。在正常工作模式,开关晶体管处于
OFF状态,不影响单元的稳定性。这与不断读写的常规存储器件的工作方式有很大不同。
第 2章 大规模可编程逻辑器件图 2.32配置存储单元配置控制读/ 写数据
Q
Q
第 2章 大规模可编程逻辑器件存储单元的输出 Q和,使用地和 VCC电平,并提供连续的直接控制。附带的电容负载及无需地址译码和读出放大器,使该单元具有极高的稳定性。由于这种结构,即使在很大的电源波动和极高的 α粒子辐射环境下,程序 (保存的数据 )也不会出错。
在 LCA中,用于配置存储的静态存储单元是经专门设计的,
它具有高可靠性和高抗干扰能力。基于这种设计的 LCA器件因其配置存储单元的完整性,可保证适用于各种工作环境。与其他编程存储器相比,该静态存储单元具有高密度、高性能、高可靠性和综合可测试性的最佳组合。
第 2章 大规模可编程逻辑器件装入的配置数据有两种串行位流和 3种并行字宽数据可供选择。内部配置逻辑利用 XACT开发系统在程序数据中嵌入的帧信息,引导存储单元的装入。串行数据帧结构及长度计数器的始标,提供 LCA器件的编程兼容性。
第 2章 大规模可编程逻辑器件
4) 可编程互连 (Programmable Interconnect)
LCA内部的可编程互连线是连接各模块的通道,形成由多个 CLB,IOB组成的功能电路。布线资源主要由两层金属线段网和可编程单元 (即转接矩阵 — Switch Matrix和可编程互连点 —
Programmable Interconnection Polins(PIPs))所组成。转接矩阵也称为开关矩阵。每个由一位配置数据控制的开关晶体管,是经专门设计来形成 PIP和转接矩阵的,以实现所选金属段片之间及模块引脚之间必要的连接。 XACT开发系统提供这些互连的自动布线。互连线分下列 3种类型:通用互连、直接互连和长线。
第 2章 大规模可编程逻辑器件
(1) 通用互连 (General Purpose Interconnect)。通用互连由夹在两列 CLB之间的 5根垂直金属线段和夹在两行 CLB之间的 5根
(XC2000为 4根 )水平金属线段网组成,如图 2.33所示。在垂直线段和水平线段交叉处有转接矩阵。转换矩阵连接这些段片的端点,实现相邻行、列的金属线网段之间的可编程互连。未编程器件的矩阵引脚都是没连接的。用自动布线程序或 XACT系统中的 Edit Net命令选择希望的矩阵引脚对,可建立经过转接矩阵的连接或不连接。转接矩阵每组允许的互连引脚如图 2.34所示,可用 XACT开发系统中的 Show Matrix命令高亮度地加以显示。
第 2章 大规模可编程逻辑器件在通用互连区内有专用的双向缓冲器 (Bidibuffers),它为改善较长网络及多扇出网络的性能而自动提供信号隔离及恢复放大。利用 XACT的 Show BIDI命令可观察到双向缓冲器,并可对其进行编辑利用。
第 2章 大规模可编程逻辑器件图 2.33 通用互连
BA
CA
DA
BB
CB
DB
BC
CC
DC
开关矩阵通用互连的金属网格线第 2章 大规模可编程逻辑器件图 2.34 转接矩形阵的互连选项
5
16 17 18 19 20
1514131211
6 7 8 9 10
4321
16
1 2 3 4 5
109876
11 12 13
17 18
14 15
2019
第 2章 大规模可编程逻辑器件
(2) 直接互连 (Direct Interconnect)。如图 2.35所示,直接互连提供供相邻 CLB及 CLB与 IOB之间最有效的网络连接。使用直接互连,从模块到模块布线的信号具有最小的延时,且不占用通用互连资源。对于每个 CLB,X输出可直接连到右边 CLB
的 B 输入及左边 CLB的 C输入; Y输出利用直接互连可驱动上面
CLB的 D输入及 CLB的 A输入。当逻辑块与 IOB相邻时,则 CLB
与 IOB之间也有直接互连提供最小延时的通路。
第 2章 大规模可编程逻辑器件
(3) 长线 (Longlines)。长线不通过转接矩阵而直接贯通整个芯片,适宜于距离长、延时要求小的多信宿 (高扇出 )网络 (如时钟网络等 )。如图 2.36所示,夹在两列 CLB之间有 3根 (XC2000为两根 )垂直长线,夹在两行 CLB之间有两根 (XC2000为一根 )水平长线,与每边 IOB相邻处还有附加的两根 (XC2000为一根 )长线。
与水平长线相邻的有一系列三态门,它们可实现三态总线和
“线与”、“线或”功能,水平长线两端带有上拉电阻。
第 2章 大规模可编程逻辑器件图 2.35 直接互连
HE
GE
FE
HF
GF
FF
HG
GG
FG
第 2章 大规模可编程逻辑器件图 2.36 XC3000系列的长线四周的长线可配置成半长线
I O B 时钟线
( 每边 2 根)
垂直长线缓冲器三态水平长线第 2章 大规模可编程逻辑器件长线可由逻辑块或 IOB 输出逐列驱动,它为每列逻辑块提供低延时控制或时钟线驱动。图 2.36也表明了这些长线的互连情况。在每根长线输入端有隔离缓冲器,在需要连接时由开发系统自动使能之。
芯片左上角有一全局缓冲器 (Global Buffer),可用来驱动所有逻辑块的 K输入。与全局缓冲器相连的专用长线,可用于任意
CLB及 IOB的时钟信号输入,即提供无延时、高扇出同步时钟驱动。在芯片右下角还有一个辅助缓冲器 (Alternate Buffer),它可驱动一水平长线,经转接后可驱动垂直长线,其特点也是偏移小,扇出高,适合驱动时钟或高扇出信号,也能到达每个逻辑块,驱动所有的 CLB。
第 2章 大规模可编程逻辑器件
5) 晶体振荡器 (Crystal Oscillator)
LCA内部有一个高速反相放大器,它位于芯片的右下角,
与芯片外部的晶体振荡电路相组合,可构成一个晶体振荡器。
利用配置选项,可使其振荡进行二分频,实现产生对称方波的功能。
第 2章 大规模可编程逻辑器件
2,XC2000和 XC4000系列的 LCA结构
XC2000系列是第一代 FPGA产品,结构较简单。其中一个
CLB最多只有 4个输入端,比 XC3000系列少一个,CLB中的触发器也只有一个。在 IOB中只有一个输出触发器和一个输入三态门,没有输入触发器。布线资源在上面已叙述过。可以说,
XC2000是 XC3000的简化或“试验产品”,现在已较少生产。
第 2章 大规模可编程逻辑器件
1990年,Xilinx推出了第三代 FPGA器件 —— XC4000系列,
它增加了片内存储器、专用进位逻辑、宽输入固定连线译码器等功能。它有 16个品种,等效门数为 2000~ 25 000门。 XC4000
系列具有丰富的布线资源。考虑到较小的器件只需要少量的布线,为降低成本,Xilinx推出了 XC4000A系列,它有 4个品种:
XC4002A,XC4003A,XC4004A和 XC4005A。考虑到有些应用需要更多的 I/O端口,Xilinx又提供了 XC4003H和 XC4005H器件,
它们带有比 XC4003和 XC4005几乎多一倍的 IOB。
第 2章 大规模可编程逻辑器件
XC4000系列提供 CMOS VLSI特性,同时避免常规掩膜型门阵列的最初投资、时间延时和固有风险。 XC4000系列提供规则、
灵活的可编程 CLB结构,有多功能分层布线资源连接,周边有可编程 IOB环绕。丰富的布线资源允许最复杂的互连形式,大量的 I/O端口更适合多输入 /输出的设计。
基于 LCA的设计中,延时与布局有关,为了在最差的条件下仍能保证设计性能,系统时钟速率一般不要超过标准速率的一半。对于移位寄存器及简单的计数器,大约可工作到标称频率的 2/3。由于结构的改进及更丰富的布线资源,XC4000系列可在 60 MHz的同步时钟速率下工作。
第 2章 大规模可编程逻辑器件
XC4000的结构改进主要有下列几个方面:① 每个 CLB有更多的输入和输出;② 快速进位逻辑;③ 更快、更有效的计数器;④ 通道传输速度达到系统速度;⑤ 宽输入译码器;⑥
更高的输出驱动能力。
下面仅对 XC4000系列的 CLB结构作一些介绍,其他方面的改进请参见后面的列表及参考文献。
第 2章 大规模可编程逻辑器件结构的大量改进提高了 XC4000系列的逻辑密度和器件性能。
其中最大的改进在于 CLB的结构,使其功能更为灵活,每个 CLB
有更多的“等效门”。如图 2.37所示,每个 XC4000系列的 CLB包括 3个函数发生器,2个触发器和若干编程控制的多路开关。每个
CLB有 13个输入和 4个输出。一个有 N个输入项的函数发生器可以由一个容量为 2N位的 SRAM实现。 SRAM的地址线起输入线的作用,SRAM的输出为逻辑函数值。可配置逻辑块包含 3个函数发生器 (分别以 F′,G′和 H′标志 ),因此,它们的传输延时与函数的复杂程序无关。
第 2章 大规模可编程逻辑器件两个第一级的输入函数发生器 F′和 G′,每个实现 4个独立变量
(F1~ F4和 G1~ G4)的任何函数,这两个结果可分别输出。由于大多数组合函数需要的输入不多于 4个,所以,两个独立的函数发生器为设计者提供了很大的灵活性。 H′函数发生器有 3个输入端 (F′,G′以及来自模块外部的第三个输入 H1),这样,一个
CLB也可以合成 5输入的任何函数,或者高达 9个输入的一些函数,这样可实现某些高扇入函数,如 9输入与、或及异或功能,
在一个逻辑块中进行译码。
第 2章 大规模可编程逻辑器件图 2.37 XC4000系列 CLB
4
H1
D I N / H 2 SR H0
控制
S / R
RD
BC
D
Q
SD
H
G'
K
G'
能发生器逻辑功
X
Y
XQ
YQ
( 时钟)
F '
H
控制旁路旁路旁路控制 的多路 器受配置程序
BC
RD
D Q
SD
控制
S / R
发生器逻辑功能
EC
/
F'
能发生器逻辑功
F 1 F 4
F 4
F 3
F 2
F 1
H
G'
F '
D I N
H
G'
F '
D I N

G 1 ~ G4
G 4
G 3
G 2
G 1
G 1 ~ G4
H'
第 2章 大规模可编程逻辑器件
1) 快速进位逻辑 (Fast Carry)
XC4000包含专用硬件来加速加法器和计数器的进位通道。
图 2.38表示算术模式中 CLB的配置。利用这个特性,加法器和计数器变得十分快速和有效,且占用最少数量的 CLB。 CLB的
F和 G函数发生器计算和,而专门的逻辑计算进位,专门的互连把进位信号布线到相邻的逻辑块。专门的进位逻辑实际上加速了运算并加倍了算术计算的密度。这个进位逻辑可以配置来建立任意长度的高速序列发生器、计数器、相加器、相减器和加减器。
第 2章 大规模可编程逻辑器件图 2.38 快速进位逻辑
G1 ~ G4
逻辑
G'函数
B1
A1
C O U T
S U M 1
S U M 0
F1
F2
F3
F4
M L O G I C
C A R R Y
A0
B0
G1
G2
G3
G4
C I N 2
C I N 1
L O G I C
C A R R Y
F1 ~ F4
F'函数逻辑第 2章 大规模可编程逻辑器件当专用逻辑和互连被用来优化进位通道,函数发生器用来形成由操作数和进位形成的和时,算术的两位 (或当要求一位时 )
可以在每个 CLB中实现。因为专门的进位逻辑可以按接近 40种不同的方式来配置。 CLB可以连成各种算术功能,进位从 CLB
的一列向上或向下传递。
专门的进位逻辑是通过硬宏单元来做到的。进位逻辑硬宏单元在 Xilinx的库中是有效的,或者可以由用户用 HMGEN程序来定义。 HMGEN程序包包括描述如何利用 HMEGN程序和专门的进位逻辑的文档。
第 2章 大规模可编程逻辑器件
2) 片内 RAM
XC4000系列是带有 RAM的第一种可编程逻辑器件。每个
CLB的一个可选模式,可使 F′和 G′函数发生器内的查找表存储器作为 16× 2或 32× 1位阵列的读写存储单元 (如图 2.39),F1~
F4和 G1~ G4输入作为地址线,在每个查找表中选择一个特定的存储单元。在这种情况下,CLB控制信号的功能发生变化。
对于 16× 2位存储器,H1,DIN和 S/R线变为两个数据输入和一个写使能 (WE)输入。当选择 32× 1配置时,D1作为第 5个地址位,D0作为数据输入。存储单元的编址内容在 F′和 G′函数发生器输出端是有效的,可通过 CLB的 X和 Y输出,或使用 CLB的触发器作为通道。
第 2章 大规模可编程逻辑器件图 2.39 CLB用作读/写存储器
M
配置存储比特
M FG
1 6 × 2
M
G'
M
D1WE
N
D A T AWE
发生器函数
D A T AWE
F2
F1
F3
F4
G4
G3
G2
G1
F '
发生器函数
Q1OCOCQ1
U
F'W R I TE
W R I TE G '
U
第 2章 大规模可编程逻辑器件把 CLB函数发生器配置成读/写存储器,除控制信号的重新定义外,不影响 CLB的其他部分功能。 H′函数发生器可用来实现 F′,G′和 D1的布尔函数,D触发器可锁存 F′,G′,H′或 D0信号。
该 RAM的速度是很快的,读取时间与逻辑延时相同,大约为 5.5 ns,写时间大约为 6 ns,这都比片外存储方案快数倍。该分布式 RAM是一个新概念,因而产生新的系统设计应用:多个累加器的寄存阵列、状态寄存器、变址寄存器,DMA(Direct
Memory Access,存储器直接存取 )计数器、分布式移位寄存器、
LIFO堆栈和 FIFO缓冲器。
第 2章 大规模可编程逻辑器件片内 RAM显著地减少了数据存储的成本,利用这个特性,
高达 64位的数据可以存储在单个 CLB中,否则,在它的触发器中仅仅存储两位。在 XC4000的 CLB中,在芯片上 Write Enable
和 Data In信号的控制下,写入 F′和 G′函数发生器的 RAM中是可能的。如图 2.37所示,一个 CLB可以实现 32位存储器 (32× 1或
16× 2的配置 )。这样的存储能力对于寄存器,Cache(高速缓存 )
和缓冲器是有用的。
当 CLB的组合逻辑发生器被配置成读/写存储器 (RAM)来使用时,任一 CLB的组合逻辑发生器均可通过下列 3种方式之一来配置:
第 2章 大规模可编程逻辑器件
(1) 两个 16× 1 RAM,有两个数据输入,两个数据输出,并且是完全相同的,如有需要,可对每个 RAM进行不同的定址。
(2) 一个 32× 1 RAM,有一个数据输入和一个数据输出。
(3) 一个 16× 1 RAM,加上一个 5输入组合逻辑发生器。
第 2章 大规模可编程逻辑器件
3,XC5000系列的 LCA结构
XC5000系列以全新的结构,将 FPGA标准的可编程能力和低成本、大容量特性相结合,对三层金属网和 0.6 μm CMOS
SRAM工艺进行优化,使硅片的效能达到惊人的改进,使它们能承受大于 5000门的任何设计。类似于前 3个系列,XC5000系列由可编程 I/O模块、可编程逻辑块和可编程互连组成,它的逻辑和局部布线资源组合成灵活的多功能块 (Versa Block),通用布线经过通用布线矩阵 (GRM)接到多功能块上。 XC5000系列结构的一个概念性简化模型如图 2.40(a)所示。
第 2章 大规模可编程逻辑器件
XC5000系列产品的主要特点是:高密度可再编程系列;新型结构和先进工艺的技术提供最低成本 /门;多功能块有丰富的局部布线加多用逻辑;多用环 (VersaRing)有高利用率和引脚输入 /输出的灵活性;具有进位逻辑、级联链、内部三态总线,4
条全局时钟网线和边界扫描逻辑 (JTAG);且由 XACT开发系统支持。
第 2章 大规模可编程逻辑器件
1) 多功能块 (VersaBlock)
在每个多功能块结构中的基本逻辑单元 (LC— Logic Cell)如图 2.40(c)所示,每个逻辑单元由一个 4输入的函数发生器 (F)、
一个存储器件 (FD)和控制逻辑组成。每个逻辑单元有 5个独立的输入和 3个输出。输入和输出的独立性允许软件使每个逻辑单元内的资源利用率达到最大。每个逻辑单元也包含一个直接的反馈通道,它无损于函数发生器或寄存器利用,这个特性对
FPGA是基本的。存储器件可配置为 D触发器或锁存器。控制逻辑由为快速实现算术函数的进位逻辑组成,它也可配置为一个级联链,允许译码很宽的输入函数。
第 2章 大规模可编程逻辑器件图 2.40(c)实际上表示由 4个逻辑单元组成的 XC5000系列的可配置逻辑块 (CLB),所以,每个 CLB有 20个独立的输入和 12个独立的输出,上、下逻辑单元可配置成实现 5输入函数。一般总是要求 FPGA的实现软件能使资源的利用率最大。 XC5000系列做到这一点,是靠围绕每个 CLB的局部互连,即局部互连矩阵
(LIM)和直接连接。这两种互连资源和 CLB组合在一起形成多功能块,如图 2.40(b)所示。
第 2章 大规模可编程逻辑器件
(c ) 可配置逻辑块 (C L B )
直接连接
(b ) 通用模块 (V e rs a Bl o c k )
L I M
TS
L C 0
L C 1
G R M
(a ) X C 5 2 0 0 系列结构框图
B l o c k
L C 0
C L RCKCE
C0
C1
输入/ 输出模块 (I O B)
V e r s a R i n g
V
e
r
s
a
R
i
n
g
V
e
r
s
a
R
i
n
g
V e r s a R i n g
DO
QD
FD
X
X
X
X
L C 1
L C 2
D1
DO
QD
F
FD
D1
DO
QD
F
FD
D1
F
D1
DO
QD
L C 3
F
FD
V e r s aV e r s a
B l o c kB l o c k
V e r s a
V e r s aV e r s a
B l o c k
V e r s a
B l o c kB l o c k
G R M
B l o c k
V e r s aV e r s a
B l o c kB l o c k
V e r s a
G R M
G R MG R MG R M
G R M G R M
G R MG R M
L C 2
L C 3
C L B
F1
F2
F3
F4
F1
F2
F3
F4
F1
F2
F3
F4
F1
F2
F3
F4

2.
40XC
52
00
系列结构第 2章 大规模可编程逻辑器件局部互连矩阵 (LIM)提供在一个给定的 CLB中每个逻辑单元的输入和输出的完全连通性。 LIM的好处是不要求通用布线资源来连接 CLB中的反馈通道,LIM经过 24个双向节点连到通用布线矩阵 (GRM)。
第 2章 大规模可编程逻辑器件直接连接允许立即接到相邻的 CLB,也不用任何通用的互连,这两层局部布线资源改善了这种结构的区组,有效地使
XC5000系列为“门海”结构 (Sea of Logic Cell)。每个多功能块有 4个共享一根公共使能线的三态缓冲器,并直接驱动水平长线,产生稳定的片内总线能力。多功能块允许快速和局部地实现逻辑函数,有效地按层次形式实现用户的设计。这些资源也使局部布线的拥挤最小化,改善了用于连接更大的逻辑组的通用互连的效率。细区组和大区组结构的这种组合使 XC5000系列的逻辑利用率最大化,这种对称的结构得到第三金属层的所有优点,免去布局软件用最小的布线限制最优的打包用户逻辑。
第 2章 大规模可编程逻辑器件
2) 多用环 I/O接口 (VerasRing I/O Interface)
在 XC5000系列中,I/O块和核心逻辑之间的接口已被重新设计,I/O块与核心逻辑完全去耦。 XC5000的 I/O包括专用边界扫描逻辑以增加板级的可测性,但不包括输入或输出寄存器。这个方法允许最大数目的 I/O块围绕器件放置,改善 I/O与门的比率,
并减少每个 I/O的成本。围绕器件的互连单元以“自由方式”形成多用环,提供由 I/O块到内部逻辑的连接,这些增强布线资源提供由每个 I/O块到最近的多功能块的连接 (除长线围绕的器件之外 )。多用环消除了高逻辑利用率与引脚布局灵活性之间的历史性矛盾。这些增加的边沿资源提高了用户在完成其逻辑设计前预处理 (即锁定 )I/O引脚的能力。因此,PCB和其他系统元件可以与逻辑设计并行进行,加速产品的上市时间。
第 2章 大规模可编程逻辑器件
3) 通用布线矩阵 (GRM)
GRM在功能上类似于其他结构中见到的转接矩形阵,但是,
它与包含在多功能块中逻辑资源的紧耦合是新型的。先进的仿真工具在 XC5000结构开发期间被用来决定要求的布线资源的最优程度。 XC5000系列包括 6级互连层次,一系列单长线、双长线和长线都通过 GRM布线,直接连接,LIM和逻辑单元反馈包含在每个多功能块中。 XC5000的互连、一个有效的多路开关方案和三层金属组合被用来改善整个硅片利用的效率。
第 2章 大规模可编程逻辑器件由于许多门阵列不再支持多于 5000门密度范围内的门阵列,
因而 XC5000系列成为理想的替代产品,它提供高达 40 MHz的系统性能,用户现在可将 FPGA的可再编程能力、短的研制周期和快的上市时间等优点用于以前利用门阵列的应用,这些应用包括网络适配器、打印机、复印机、扫描仪和大多数通信及计算机应用中遇到的数据通道的功能。
第 2章 大规模可编程逻辑器件
4,XC6200,XC8100系列 FPGA简介
1) Xilinx XC6200系列
Xilinx XC6200系列是为计算机专用协处理器而设计的,有 4
个品种,门数最高达到 10万门;存储器容量最高达 256 k位。它不像其他 FPGA通过串行口或 8位并行口加载其配置模式,而有一个类似于主处理器存储器的接口,可以设置成 8,16或 32位操作。
这个快速映射 (Fast Map)接口直接与大多数嵌入式处理器接口而不耗费任何 FPGA的资源,它允许配置数据以数据总线的速度转移,整个配置文件的转移少于 200 μs。协处理的真正特性意味着对不同的算法要求数量不等的存储器,XC6200系列按此需要提供了高容量分布式存储器,使其有比其他 FPGA多 8~ 10倍的存储器,
用户可将其作为逻辑或存储器的分配,以适合每个算法。
第 2章 大规模可编程逻辑器件作为可再配置协处理器,算法可改变的速度是决定性的,
XC6200系列包括的片内存储器可以比普通基于 RAM的 FPGA快
1000倍地转换应用的内容,也可以实现复杂的数据通道功能,
在主机总线上的数据转移要求每次写入配置存储器的时间为 80
ns,如果仅仅部分芯片的功能需要在系统运行期间的任何时候作修改,部分再配置同样是可能的。为加速规则功能 (多位数据通道和其他重复的功能 )的配置,XC6200包括把配置数据按规定路线发送到多处的通配符 (Wid Card)寄存器。由于以典型的数据总线速率转移数据,XC6200器件可以用比主机一般中断服务更少的时间再配置其自身。高速的配置或再配置允许可编程器件适用于需要对条件变化快速响应的系统,除类似于存储器的主机接口之外,FPGA内部是专门的高速总线,它允许对寄存器和大量的内部 RAM高速存取。
第 2章 大规模可编程逻辑器件
2) XC8100系列
XC8100系列瞄准 3个主要应用:① 高级设计语言 (HDL)和逻辑综合的设计;② 通用的逻辑应用,特别是远程通信和工业控制;③ 要求单片 FPGA的应用。
作为细区组结构 FPGA的 XC8100系列,引入了最新的
MicroVia工艺,提供了所有与其他 Xilinx器件相同的优点:功耗低,上市快,设计风险小,以及标准的产品有效性和使用已有的设计方法。它将掩膜门阵列的密度和可编程逻辑的灵活性结合在一起。
第 2章 大规模可编程逻辑器件由于在使用自顶向下与工艺无关的设计方法时,设计非常有效并节省成本,XC8100系列采用新门海 (Sea of Gates)FPGA
结构,基本单元是由小的和与工艺无关的设计专门构成的。由于布线完全被堆积在逻辑之上,因此其占有比其他可编程逻辑技术更小的面积。 XC8100 FPGA在小的管芯上有大量的布线导线和互连资源,在 100%单元利用率达到高的布通率。 MicroVia
的反熔丝有小于 50 Ω的典型的接通电阻,可在高速下运行。
第 2章 大规模可编程逻辑器件与 Xilinx的 SRAM的 FPGA可无限次再编程不同,XC8100系列是一次可编程的 (OPT)。编程是用 Xilinx或第三方的编程器来实现的,类似于一次编程的 PLD器件,在实际应用中不需要配置存储器,设计的保密性极高。因为被编程的通孔几乎不能观察到,对阵列配置做反向工程的可能性极小。在一个芯片上有许多 MicroVia,如等效 5616可用门的 XC8106上有 75万个
MicroVia,但仅 2%被编程,要找被编程的 MicroVia如同大海捞针。此外,XACT8000软件以压缩和加密的格式存储设计信息,
并提供一个可选密码的能力,它只允许设计文件用于编程而不能观察、写入和操纵。数据从与 JTAG兼容的测试口送入。
第 2章 大规模可编程逻辑器件与所有真正的 FPGA一样,XC8100系列由逻辑单元阵列和可编程布线资源组成,由环形的 I/O连线围绕。与大多数 FPGA
企图提供“最好”的固定单元不同,XC8100的基本逻辑单元本身是可编程的,称为“可配置逻辑单元” (CLC),它们可以实现同步、组合或三态功能。这意味着 XC8100的软件有选择最好单元结构的灵活性,这取决于要实现的逻辑。
第 2章 大规模可编程逻辑器件与 Xilinx的其他 FPGA相比,XC8100的结构有更多的单元,
每个单元有较少的门,同时也有较少的预配置资源。例如,在逻辑单元或 I/O单元中无触发器。 XC8100的布线资源是丰富的,
到逻辑单元的输入和输出的互连有很大的比例。此结构的目标是对多种多样的应用达到最高的门利用率和布通率。
第 2章 大规模可编程逻辑器件用 XC8100系列的设计类似于 ASIC和其他 Xilinx的 FPGA,
设计用第三方的 CAE 工具输入和仿真,然后用 Xilinx的工具布局和布线。 XC8100的结构使设计自动完成的可能性达到最大,
人工控制是可能的。因为此结构和为它编写的新软件,当利用与工艺无关的设计输入时,器件的利用率不降低。设计可以利用不涉及 IC结构的高级设计语言 (HDL)来输入,在布局和布线之前可精确地估算不同的逻辑实现方案。
第 2章 大规模可编程逻辑器件
2.3.2 FPGA的配置模式
FPGA 的配置模式是指 FPGA用来完成设计时的逻辑配置和外部连接方式。逻辑配置是指,经过用户设计输入并经过开发系统编译后产生的配置数据文件,将其装入 FPGA芯片内部的可配置存储器的过程,简称 FPGA的下载。只有经过逻辑配置后,
FPGA才能实现用户需要的逻辑功能。
FPGA的配置模式由芯片引脚 M0,M1和 M2的状态决定。
XC2000/XC3000/XC3100及 XC4000系列的配置模式如表 2.7所示。
其他系列的配置模式稍有差别,在制作 PCB时,请一定查阅相关手册。下面以 XC2000和 XC3000为例,介绍 5种配置模式。
第 2章 大规模可编程逻辑器件表 2.7 XC2000/XC3000/XC3100及 XC4000系列的配置模式模 式 M0 M1 M2 C C L K X C 2 0 0 0 / 3 0 0 0 / 3 1 0 0 X C 4 0 0 0
主动串行配置模式 0 0 0 输出 位串 位串主动并行配置模式 ( 高 ) 0 0 1 输出 数据地址从 0000 ↑ 数据地址从 0000 ↑
主动并行配置模式 ( 低 ) 0 1 1 输出 数据地址从 FFFF ↓ 数据地址从 FFFF ↓
从动串行配置模式 1 1 1 输入 位串 / 并行 位串同步外设配置模式 1 1 0 输入 并行异步外设配置模式 1 0 1 输出 位串 并行第 2章 大规模可编程逻辑器件
1,主动串行配置模式选择主动串行模式时,需要附加一个外部串行存储器
EPROM或 PROM,事先将配置数据写入外部存储器。每当电源接通后,FPGA将自动地从外部串行 PROM或 EPROM中读取串行配置数据。主动串行配置模式如图 2.41所示。
在主动串行配置模式中,配置数据的主器件是 FPGA。该器件的输出时钟信号 CCLK驱动串行 PROM(如 Xilinx的 XC17XX)时钟信号 CLK,在 CCLK上升沿的控制下,串行 PROM内部地址指针加 1。 PROM的输出 DATA连接到配置数据主器件的输入端 DIN,
该数据为串行配置数据,实现对 FPGA主器件的配置。
第 2章 大规模可编程逻辑器件图 2.41 主动串行配置模式存储器串行级联的
S C P
( L o w R e s e t s t h e A d d r e s s P o i n t e r )
可选的菊链 F P G A 器件
I / O 引脚通用用户
V C C
可选的从模式 F P G A 器件级联的串行存储器
O E/ R ES ET
CE
C LK
D A T A
V C C
V ppV C C
C EO
O E/ R ES ET
CE
C LK
D A T A
R ES E T
I N I T
D / P
C C L K
D I N
R ES E T
F P G A
引脚I / O 其他
I N I T
LD C
H D C
M2
D O U T
M0 M1 P W R D W N
第 2章 大规模可编程逻辑器件
2.主动并行配置模式在主动并行配置模式的情况下,一般用 EPROM做外部存储器,事先将配置数据写入 EPROM芯片内,每当电源接通后
FPGA将自动地从外部串行 EPROM中读取配置数据。主动并行配置模式电路如图 2.42所示。主动配置模式使用 FPGA内部的一个振荡器产生 CCLK来驱动从属器件,并为包含配置数据的外部 EPROM生成地址及定时信号。
第 2章 大规模可编程逻辑器件图 2.42 主动并行配置模式
N /C
S L A V E
X C 4 0 00 E E X
X C 5 2 00
I N I T
D O U T
D O N E
P R O G R A M
C C L K
D I N
M2M1M0
( 8K × 8)
E P R O M
( O R L A R G E R )
C C L K
D O N E
P R O G R A M
V C C
8
4,7k?
4,7k?
N /CL O W
OR
H I G H
D A T A B U S
D O U T
D0
D1
D2
D3
D4
D5
D6
D7
M2M0 M1
A0
A9
A8
A7
A6
A5
A4
A3
A2
A1
A 17
A 14
A 15
A 16
A 13
A 12
A 11
A 10
I N I T
D7
D6
D5
D4
D3
D2
D1
D0
P R O G R A M
CE
OE
A3
A2
A 12
A 11
A 10
A9
A8
A7
A6
A5
A4
A0
A1
第 2章 大规模可编程逻辑器件主动并行配置模式生成 CCLK信号及 EPROM地址,并读入并行数据 (字节宽 ),然后在内部变成串行的 LCA数据帧格式。
主动并行模式又分为主高及主低模式。主低模式从 0000地址到高地址读入存储数据,主高模式从高 (XC4000为 3FFFF,
XC2000和 XC3000为 FFFF)到低读入存储数据。此功能使主
FPGA能与其他器件分享外部存储器。如一个微处理器从存储器低位开始执行,FPGA就可以从高位加载,一旦配置完毕就允许处理器工作。
第 2章 大规模可编程逻辑器件
3.外设配置模式在外设配置模式下,FGPA器件将作为一个微处理器的外设,
配置数据由微处理器提供,在微处理器的写脉冲和片选信号的控制下对 FPGA进行数据配置。在 CS0,CS1,CS2和 WRT信号的控制下得到写周期,在每个写周期经数据总线通过 FPGA芯片引脚 D0~ D7并行读入一个字节的配置数据 (也可采用串行方式 ),
配置数据存入芯片内部的输入缓冲寄存器,在 FPGA内部将并行配置数据变为串行数据。若 FPGA信号 RDY/BUSY输出高电平,
表示一个字节的配置数据读完,输入缓冲器准备好,准备读入下一字节的配置数据。外设配置模式的电路如图 2.43所示。
第 2章 大规模可编程逻辑器件
4.从动串行配置模式从动串行配置模式如图 2.44所示。该模式为 PC机或单片机系统加载 FPGA配置数据提供了最简单的接口。串行数据 DIN和同步配置时钟 CCLK可以同时由一个 PC机的 I/O口提供,在时钟
CCLK的控制下进行配置操作。在该模式中,FPGA在 CCLK的上升沿从 DIN输入脚接收串行配置数据,装入它的配置后,在
CCLK的下降沿由 DOUT输出该数据。这种配置模式可以把多个器件的 DIN管脚和 DOUT管脚串接起来,同时配置多个器件。如果将多个 FPGA器件的 DIN接在一起,把其中任何一个 FPGA的
DOUT反馈回 PC机的 I/O口,就可实现相同配置数据的加载操作。
第 2章 大规模可编程逻辑器件图 2.43 外设配置模式
D
0 ~ 7
OC
R E S E T
R D Y / B U S Y
I N I T
D / P
R E P R O G R A M
C S 0
+ 5V
控制信号地址总线数据总线
8
与 M1 串联要求 5k? 电阻
* 当读回有效时
L C A的菊花链选择不同配置
5k?
+ 5V
码逻辑地址译
F P G A
I / O 脚通用用户引脚
I / O
其他
WS
C S 2
C S 1
L D C
H D C
M2
D O U T
C C L K
D W N
PWRM1M0
D
0 ~ 7

第 2章 大规模可编程逻辑器件图 2.44 从动串行配置模式
I / O 端口 F P G A 微机
D / P
可选的菊链
F P G A 器件
I / O 引脚通用用户
+ 5V
5K?
+ 5V
引脚
I / O其他
M2C C L K
LD C
H D C
D O U TD I N
R ES E T
I N I T
P W R D W NM1M0
R ES E T
D6
D5
D4
D0
D7
D3
D2
D1
S T R B
第 2章 大规模可编程逻辑器件
5.菊花链配置模式在数字系统的应用设计中,单片 FPGA不足以实现完整的系统功能时,可采用多个 FPGA芯片。多个 FPGA芯片可以用菊花链模式配置。菊花链模式是一种多芯片的配置信号连接方式,
任何模式配置的 LCA都支持菊花链。以主动模式配置的 LCA可作为数据源,并可控制从属器件。图 2.45所示,为一个主模式配置器件与两个从属配置器件。主模式器件读取外部存储器并开启其他器件的配置加载过程。在配置开始时,以一段起始码和一个长度码作为文件头的数据提供给所有的器件。长度码表示加载菊花链中各个器件所需的总周期数。
第 2章 大规模可编程逻辑器件在加载长度码后,前面的器件加载它的配置数据时会提供一个高电平 DOUT给后面的器件。当前面的器件加载完毕,而长度计数未达到预置数时,继续读存储器过程,数据经过前面的器件以串行方式从 DOUT脚输出。同时,前面的器件也同时产生 CCLK以同步串行输出数据。若处于主动模式,前面的器件则以 EPROM取地址速率的 8倍产生内部 CCLK,如果是处于外设配置模式,则由片选和写选通信号来产生 CCLK。
第 2章 大规模可编程逻辑器件图 2.45 主并菊花链配置模式
+ 5V + 5V
D O U TD O U T
5k?
I / O 引脚通用用户
O th e r
I N I T
I / O P i ns
L D C
H D C
M2
P W R D W NM1M0
S l a v e #n
D /P
F P G A
D I N
C C L K
R E S E
T
5k?
I / O 引脚通用用户
O th e r
I N I T
I / O P i ns
L D C
H D C
M2
P W R D W NM1M0
S l a v e #n
D /P
F P G A
D I N
C C L K
R E S E
T
O pe n
C ol l e c t or
+ 5V
5k? E a c h
5k?
N,C,
+ 5V
引脚I / O
通用用户
+ 5V
8
CE
E P R O M
D O U T
C C L K
R E S E
T
M a s t e r
F P G A
i/o
P i ns
O th e r
R C L K
H D C
M2
P W R D W NM1M0
S ys t e m R e s e t
R e p r o gr a m
A 15
D /P
A0
A1
A2
A3
A4
A5
A6
A7
A 11
A9
A 10
A8
I N I T
A 13
A 12
A 14
OE
A 15
A0
A1
A2
A3
A4
A5
A6
A7
A9
A8
A 11
A 10
A 13
A 12
A 14
D7
D0
D1
D2
D3
D4
D5
D6
D0
D1
D2
D3
D4
D5
D6
D7
第 2章 大规模可编程逻辑器件
6,FPGA的配置流程在 FPGA的配置之前,首先要借助于 FPGA开发系统,按某种文件格式要求描述设计系统,编译仿真通过后,将描述文件转换成 FPGA芯片的配置数据文件。选择一种 FPGA的配置模式,
将配置数据装载到 FPGA芯片内部的可配置存储器,FPGA芯片才会成为满足要求的芯片系统。
FPGA的配置流程如图 2.46所示,包括芯片初始化、芯片配置和启动等几个过程。
第 2章 大规模可编程逻辑器件当系统加电时,FPGA自动触发芯片的加电 /复位电路,芯片开始进行初始化操作。初始化操作包括:清除芯片内部的可配置存储器;检测芯片引脚 M0,M1和 M2的状态,判断芯片的配置模式;将输出引脚设置成高阻状态。 FPGA芯片内部设有延时电路,使芯片有足够的时间完成初始化操作。在芯片的配置过程中,如果检测到 RESET的低有效信号,配置过程就会中断,
芯片初始化操作重新开始。
第 2章 大规模可编程逻辑器件图 2.46 FPGA的配置流程在用户逻辑
R ES E T 无效工作无效有效
P W R D W N
P W R D W N
LD C 或上拉 )
掉电 ( 无 H D C,LD C =低
H D C =高用户 I / O 引脚带有高阻值上拉电阻数据存储器清除编程通电、延时
Y ES
R ES E T 有效有效?
R ES E T
初始化
D O N E 及 R ES E T 为低电平编程模式设定模式脚检测
NO 正常工作模式启动第 2章 大规模可编程逻辑器件当芯片的配置确定无误后,开始对芯片进行配置。在配置过程中,配置数据以固定格式传送,它以一个 4位起始码、一个
24位长度计数码和一个 4位隔离码为引导,接着开始进行配置数据的传递。配置开始后,芯片内的一个 24位二进制计数器从零开始对配置时钟做加法计数,当计数器的值与长度计数码的值相同时,配置过程结束。配置数据在芯片内部以串行方式进入芯片内的移位寄存器,进行串并转换后再以并行方式写入配置存储器。在配置过程中,FPGA自动对配置数据进行检查,发现错误,立即中断配置过程,同时在 INIT引脚输出低电平,给出错误信息。
第 2章 大规模可编程逻辑器件
FPGA从芯片配置过程转换到执行用户指定逻辑功能的过程称为启动。在配置过程的最后一个时钟周期,芯片的 DONE
信号从低电平变为高电平,该信号标志着配置过程的结束。配置过程结束后,与配置过程相关的引脚将执行用户指定的功能,
FPGA开始按设计要求工作。
第 2章 大规模可编程逻辑器件
2.3.3 FPGA器件性能比较
1,Xilinx FPGA器件的性能比较表 2.8 Xilinx FPGA器件性能比较表器 件 2 0 6 4 / L 2 0 1 8 / L
3 0 2 0 / A / L
3 1 2 0 / A
3 0 3 0 / A / L
3 1 3 0 / A
3 0 4 2 / A / L
3 1 4 2 / A / L
3 0 6 4 / A / L
3 1 6 4 / A
3 0 9 0 / A / L
3 1 9 0 / A
3 1 9 5 / A
可用门 1,0 k 1,5 k 1,5 k 2,0 k 3,0 k 4,5 k 6,0 k 7,5 k
CL B 64 100 64 100 144 224 320 484
组合逻辑 128 200 128 200 288 448 640 968
FFs 122 174 256 360 4 80 688 928 1320
最大用户 I/ O 58 74 64 80 96 120 144 176
水平长线 — — 16 20 24 32 40 44
T BU F / 线 — — 9 11 13 15 17 23
P RO M 大小 12 038 17 878 14 779 22 176 30 784 46 064 46 160 94 984
第 2章 大规模可编程逻辑器件表 2.8(2)
器 件 4002A
4 0 0 3 / A / H
/E
4004A
4 0 0 5 / A / H
/L
4 0 0 6 / E 4 0 0 8 / E 4 0 1 0 / D / E 1 3 / D / E
可用门 2,0 k 3 k /4 k 4,0 k 5 k / 1 0 k 6 k / 1 2 k 8 k / 1 5 k 10 k / 1 9 k 13 k / 2 7 k
CL B 64 100 144 196 256 324 400 576
FFs 256 3 6 0 / 2 0 0 480 6 1 6 / 3 9 2 768 936 1 1 2 0 1536
译码器输入 24 30 36 42 48 54 60 72
RA M / 位 2048 3200 4608 6272 8192 1 0 3 6 8 1 2 8 0 0 1 8 4 3 2
最大用户 I/ O 64 8 0 / 1 6 0 96 1 2 2 / 1 9 2 128 144 160 192
水平长线 16 20 24 28 32 36 40 48
T BU F s / 线 10 12 14 16 18 20 22 26
P RO M 大小 3 1 6 6 8 5 3 9 7 6 6 2 2 4 4 8 1 3 7 0 1 1 9 8 3 2 1 4 7 5 4 4 1 7 8 1 3 6 2 4 7 9 6 0
第 2章 大规模可编程逻辑器件表 2.8(3) 器 件 4 0 2 0 / E 2 0 2 5 / E 4 0 2 8 E X 4 0 3 6 E X 4 0 4 4 E X 4 0 5 2 E X 4 0 6 2 E X
可用门 20 k / 3 7 k 25 k / 4 8 k 56 k 72 k 90 k 1 1 0 k 130 k
功能单元 784 1 0 24 1024 1296 1600 1936 2304
RA M / 位 25 088 32 768 32 768 41 472 51 200 61 952 73 728
FFs 2016 2560 2560 3168 3840 4576 5376
最大用户 I/ O 224 2 56 256 288 320 352 384
第 2章 大规模可编程逻辑器件表 2.8(4) 器 件 5202 5204 5206 5210 5215 6209 6216 6236 6264
可用门 2,7 k 4,8 k 7,5 k 12 k 18 k 13 k 24 k 55 k 100 k
功能单元 64 120 196 324 484 2304 4096 9216 16 384
RA M / 位 — — — - - 36 k 65 k 147 k 262 k
FFs 256 480 784 1296 1936 2304 4096 9216 16384
最大用户 I/ O 84 124 14 8 196 224 180 242 384 512
第 2章 大规模可编程逻辑器件表 2.8(5)
器 件 8100 8101 8103 8106 8109
可用门 0,7 k 1,4 k 3,6 k 6,1 k 9,4 k
功能单元 192 384 1024 1728 2688
FFs 96 192 512 864 1344
最大用户 I/ O 32 80 128 168 208
第 2章 大规模可编程逻辑器件
2,有关性能指标说明
1) 器件标识的含义
Xilinx器件的标识方法是:器件型号 +封装形式 +封装引脚数 +速度等级 +环境温度。如 XC3164 PC 84-4 C 的含义是:
第一项,XC3164表示器件型号。 Xilinx器件型号的表示方法是,以,XC”开头 (表示“公司名” ),后接器件的“有效门”
数。第一个 FPGA器件 (XC2064)是以 64个 CLB为基础命名的,以后的所有器件是以“有效门”数量命名的。 XC2000和 XC3000系列以尾数乘以 100表示,XC4000和 XC5000系列以尾数乘以 1000
表示。例如 XC3064和 XC4025,大体上分别表示 6400门和 2500门。
第 2章 大规模可编程逻辑器件
A系列是相应产品的增强型。 XC3100A系列具有最高的速度等级,一个 CLB的最小延时仅为 1 ns左右。 L系列为低功耗产品,可在 3.3 V电压下工作。 H系列为高引脚数器件。 E和 EX系列为性能、密度、工艺、实际流程的增强型产品 (其中一个主要指标是 I/O的电流驱动能力 )。 D系列为 XC4000系列的低成本型
(无 RAM)。
第 2章 大规模可编程逻辑器件第二项,PC表示器件的封装形式,主要有 PLCC(Plastic
Leaded Chip Carrier,塑料方形扁平封装 ),PQFP(Plastic Quad
Flat Pack,塑料四方扁平封装 ),TQFP(Thin Quad Flat Pack,四方薄扁形封装 ),RQFP(Power Quad Flat Pack,大功率四方扁平封装 ),BGA(Ball Grid Array(Package),球形网状阵列 (封装 ))、
PGA(Ceramic Pin Grid Array(Package),陶瓷网状直插式封装 )等形式。
第 2章 大规模可编程逻辑器件第三项,84表示封装引脚数。一般有 44,68,84,100、
160,208,240等数种,常用的器件封装引脚数有 44,68,84、
100,144,160等,最大的达 596个引脚。而最大用户 I/O是指相应器件中用户可利用的最大输入 /输出引脚数目,这与器件的封装引脚不一定相同。
第 2章 大规模可编程逻辑器件第四项,-4表示速度等级。速度等级有两种表示方法。在较早的产品中,用触发器的反转速率来表示,单位为 MHz,一般分为 -50,-70,-100,-125和 -150;在较后的产品中用一个
CLB的延时来表示,单位为 ns,一般可分为 -10,-8,-6,-5,-
4,-3,-2,-09。
第 2章 大规模可编程逻辑器件第五项,C表示环境温度范围。其中有 C—— 商用级 (0℃ ~
85℃ ),I—— 工业级 (-40℃ ~ 100℃ ); M—— 军用级 (-55℃ ~
125℃ )。
第 2章 大规模可编程逻辑器件
2) 有关指标的说明
PROM大小是指配置数据所需的 PROM大小 (单位为 bit)。
输出驱动电流,XC2000和 XC3000系列为 4 mA; XC3100/A
为 8 mA,XC3100L为 4 mA; XC4000/A/D/E/EX为 12 mA;
XC4000H为 24 mA,XC4000L为 4 mA; XC5200和 XC6200为 8
mA; XC8100为 24 mA。
第 2章 大规模可编程逻辑器件
2.4 在系统可编程 (ISP)逻辑器件所谓“在系统可编程特性” (In System Programmability,缩写为 ISP),是指在用户自己设计的目标系统中或线路板上,为重新构造设计逻辑而对器件进行编程或反复编程的能力。在系统编程器件的基本特征是利用器件的工作电压 (一般为 5 V),在器件安装到系统板上后,不需要将器件从电路板上卸下,可对器件进行直接配置,并可改变器件内的设计逻辑,满足原有的 PCB布局要求。
采用 ISP技术之后,硬件设计可以变得像软件设计那样灵活而易于修改,硬件的功能也可以实时地加以更新或按预定的程序改变配置。这不仅扩展了器件的用途,缩短了系统的设计和调试周期,
而且还省去了对器件单独编程的环节,因而也省去了器件编程设备,简化了目标系统的现场升级和维护工作。
第 2章 大规模可编程逻辑器件在系统可编程的概念,首先由美国的 Lattice公司提出,而且,
该公司已将其独特的 ISP技术应用到高密度可编程逻辑器件中,
形成了 ispLSI(in system programmable Large Scale Integration,在系统可编程大规模集成 )和 pLSI(可编程大规模集成 )逻辑器件系列。 ispLSI在功能和参数方面都与相对应的 pLSI器件相兼容,只是增加了 5 V在系统可编程与反复可编程能力。 ispLSI和 pLSI产品,既有低密度 PLD使用方便、性能可靠等特点,又有 FPGA器件的高密度和灵活性,具有确定可预知的延时、优化的通用逻辑单元、高效的全局布线区、灵活的时钟机制、标准的边界扫描功能、先进的制造工艺等优势,其系统速度可达 154 MHz,逻辑集成度可达 1000~ 14 000门,是目前较先进的可编程专用集成电路。
第 2章 大规模可编程逻辑器件目前,Lattice公司的 pLSI和 ispLSI系列产品,可用于 200
MHz系统速度,5.5 ns的延时 (从时钟输入到数据输出的时间 )。
它们具有较宽的密度范围 (从 1 k~ 45 k PLD门 ),基于阵列的新结构与极大的灵活性和可预知性能。采用优选的 E2CMOS PLD
技术,在系统可编程技术实现了可重新组态的硬件功能,并配有完全集成、易于使用的先进软件系统,ISP技术有可能成为可编程逻辑器件领域新的工业标准。
第 2章 大规模可编程逻辑器件
2.4.1 ispLSI/pLSI逻辑器件
1.系列概述为满足不同的要求,ispLSI/pLSI芯片分为 5个系列。最初的
ispLSI/pLSI系列是基本型,可实现像高速控制器,LAN和编码器这样的集成功能。新推出的 ispLSI/PLSI1000E系列是
ispLSI/pLSI1000系列的增强型。 ispLSI/pLSI2000系列多 I/O端口器件,适合于定时器、记数器以及高速 RISC/CISC微处理机的定时关键接口等场合。 ispLSI/pLSI3000系列是几个系列中密度最高的,在单片封装中可集成完整的系统逻辑,DSP功能及整个编码压缩逻辑,并提供卓越的性能。 ispLSI/pLSI6000系列在基于单元的结构中,将专用 FIFO或 RAM存储模块与可编程逻辑相结合,
在单片中可实现复杂系统设计方案。
第 2章 大规模可编程逻辑器件表 2.9 Lattice的 ispLSI/pLSI器件特性器 件 1016 1024 1023 1 0 4 8 / C 2032 2064 2096 2128 3192 3256 3320 6192
P L D 门 2 k 4 k 6 k 8 k 1 k 2 k 4 k 6 k 8 k 1 1 k 1 4 k 2 5 k
F m a x / M H z 1 1 0 90 90 8 0 / 7 0 125 125 125 100 100 77 77 70
T p d / ns 10 12 12 1 5 / 1 6 5,5 7,5 7,5 10 10 15 15 15
宏单元 64 96 128 192 32 64 96 128 192 256 320 192
寄存器 96 144 192 288 32 64 96 128 288 384 480 416
I/ O 36 54 72 1 0 6 / 1 0 8 34 68 102 136 192 128 160 159
第 2章 大规模可编程逻辑器件续表器 件 5256V 5384V 5512V 6 1 9 2 F F / S M / D M 8840
P L D 门 12 k 18 k 24 k 25 k 45 k
F m a x / M H z 125 125 100 77 1 1 0
T p d / n s 7,5 7,5 10 15 8,5
宏单元 256 384 512 192 840
寄存器 256 384 384 416 1 1 5 2
I/ O 192 2 8 8 / 1 9 2 3 8 4 / 2 8 8 208 432
第 2章 大规模可编程逻辑器件
2,ispLSI/pLSI的结构
ispLSI/pLSI结构考虑了实际系统的应用要求。 ispLSI3256
的结构如图 2.47所示。这种结构给设计者提供下列好处:① 高速度;② 可预测性能;③ 低功耗;④ 结构灵活;⑤ 使用方便;
⑥ 所有系列间的设计可移植;⑦ 非易失在系统可编程 (ispLSI);
⑧ 全局时钟网络;⑨ 边界扫描功能;⑩ 内建存储器 (6000系列 )。
第 2章 大规模可编程逻辑器件
H
3
H
2
H
1
H
0
G
3
G
2
G
1
G
0
F3
F2
F1
F0
E
3
E
2
E
1
E
0
边界扫描
I S P 和输入总线输入总线输出布线区 ( O R P )
输出布线区 ( O R P )
逻辑块通用
R E S E T
B
3
B
2
B
1
B
0
A
3
A
2
A
1
A
0
( G R P )
全局布线区
D
3
D
2
D
1
D
0
C3C2C1C0

2.
47is
pL
SI
/pL
SI
32
56
结构框图第 2章 大规模可编程逻辑器件
1) 通用逻辑块 (Generic Logic Block)
ispLSI/pLSI结构的关键部分是通用逻辑块 (GLB),这种多功能逻辑块为最佳逻辑利用提供高的输入 /输出比。用于
ispLSI/PLSI1000/E及其 2000系列的 GLB,有 18个输入,这些输入驱动 20个乘积项 (PT)的一个阵列。这些乘积项提供 4个输出,它们有效地实现宽窄不同的门函数。 ispLSI/pLSI3000系列使用孪生 GLB(Twin GLB)结构,也称为双 GLB结构,可提供更宽的逻辑功能,如图 2.48所示。这种双 GLB接收 24个输入,并送到 20个乘积项的两组阵列,最后驱动两组 4输出函数。
第 2章 大规模可编程逻辑器件图 2.48 ispLSI/pLSI3000及 6000系列的 GLB结构直接输入逻辑阵列来自 G R P
的输入乘积项共享阵列乘积项共享阵列
O L M E
组合逻辑与/ 或/ 异或功能时序逻辑
D / T / J K 触发器
O L M E
组合逻辑与/ 或/ 异或功能时序逻辑
D / T / J K 触发器输出至 G R P
O R P 或 I / O
输出至 G R P
O R P 或 I / O
20 个乘积项 四输出逻辑宏单元第 2章 大规模可编程逻辑器件
ispLSI/pLSI的 GLB的结构灵活性与它优化的输入 /输出比,
允许 GLB实现所有的 MSI功能。
GLB结构灵活性的另一个单元是乘积项共享阵列 (PTSA),
该 PTSA允许来自 AND阵列的 20个 PT被任一或全部 4个 GLB输出共享。在所有 4个 GLB输出之间共享 PT的能力,可消除相同乘积项组,以提供一种实现复杂状态机的高效方法。来自 PTSA的 4
个输出,每个都送到一个灵活的输出逻辑宏单元 (OLMC),
OLMC包含一个带有异或门输入的 D触发器。 OLMC允许每个配置成组合型或寄存器型。组合模式可实现“与或”或“异或”
函数,寄存器模式可作为 D,T,JK触发器应用。
灵活的时钟分配网络进一步增强了 GLB的能力。该网络对每一个 GLB提供可选择的时钟信号 —— 全局同步时钟信号或内部产生的异步乘积项时钟信号。
第 2章 大规模可编程逻辑器件
2) 全局布线区 (Global Routing Pool)
ispLSI/pLSI结构的中央是全局布线区 (GRP),它连接所有的内部逻辑。 GRP具有固定的和可预测的延时,提供完全的互连特性。这种独特的互连方式提供高性能及复杂设计的方便实现。
第 2章 大规模可编程逻辑器件
3) 输出布线区 (Output Routing Pool)
输出布线区 (ORP)是一种独特的 ispLSI/pLSI结构特性,它提供 GLB输出与器件引脚之间的灵活连接。这种灵活性为“至关重要的”逻辑设计改变提供保证,在不改变外部引脚的情况下,
实现设计的变化。
4) 加密单元在 ispLSI/pLSI 器件中,提供了一个加密单元,以防止阵列的非法拷贝。该单元一旦被编程,就禁止读取器件内的功能数据。只有重新编程才能擦除该单元。因此,一旦编程该单元,
就不能观察原有的配置。
第 2章 大规模可编程逻辑器件
3,死锁保护
ispLSI/pLSI器件带有片内电荷驱动能力来反偏基底,该反向偏置具有足够的大小来防止输入负脉冲引起内部电路堵塞。另外,输出设计成 N 沟道上拉,而不是 P 沟道上拉,消除了可控硅整流器 (SCR)引起锁定的任何可能性。
第 2章 大规模可编程逻辑器件
4,器件编程和在系统可编程性使用 Lattice公司认可的器件编程器,可对 ispLSI/pLSI 器件编程。有许多第三方制造商提供的编程器是可用的。器件的整个编程只需几秒钟。器件的擦除是自动的,并且对用户是完全透明的。对于 ispLSI器件,可实现在系统可编程,即利用 Lattice
公司的编程算法及标准的 5 V 系统电源,在电路板上对器件编程。
LSC的 ispLSI/pLSI器件是在系统可编程的,是具有非易失、
在系统可重新配置性的高密度可编程逻辑器件系列。
第 2章 大规模可编程逻辑器件在所有 6个系列中 —— 1000/E,2000E/V/EV,3000A/E、
5000V,6000FF/SM/DM和 8000,都有相应的 ispLSI器件。
ispLSI器件与相应的 pLSI器件在功能和参数方面是 100%兼容的,
但增加了 5 V在系统可编程和反复可编程性的能力。
复杂的逻辑功能可以由多片 ispLSI器件来实现,并具有完美的板级可配置性。通过专有的在系统擦除 /编程 /验证技术,可简便地实现多块 ispLSI芯片方案的在系统可编程。
第 2章 大规模可编程逻辑器件在系统可编程性将彻底地改变设计、制造和服务系统的方法。 ispLSI系列最诱人的优点,也许是精简的生产过程使效率更高,取消了通常 PLD所需的单独编程和标记步骤。处理步骤的减少将提高产品的质量,而在这些步骤中包括了编程、标记和重新入库多种器件类型。同时由于取消了安装插座,进一步提高了质量,并减少了系统费用。
通过 5个 TTL电平逻辑接口信号可实现所有必要的编程,如图 2.49所示。这 5个信号图 2.49 在系统编程接口 (多芯片方案 )
控制片内编程电路,可防止通过片内状态机的无意编程。 spLSI
系列也可用流行的第三方逻辑编程器来编程。
第 2章 大规模可编程逻辑器件
i s pE N
S D OS D I
i s pL S I
M O D E
i s pE N
S C L K
S C L K
S D I
5 线 I S P 编程接口
.
M O D E
S D O
S C L K S C L K
S D OS D I
i s pG A L
M O D E
S D OS D I
i s pG A L
M O D E
i s pE N
S D OS D I
i s pL S I
M O D E
S C L K
图 2.49 在系统编程接口 (多芯片方案 )
第 2章 大规模可编程逻辑器件
2.4.2 ispLSI/pLSI1000/E,2000和 3000系列逻辑器件
ispLSI/pLSI1000/E,2000和 3000系列逻辑器件具有类似的结构 (如图 2.47所示 ),都由通用逻辑块 (GLB)、全局布线区
(GRP)、输出布线区 (ORP)、输入 /输出单元 (IOC)和时钟分配等部分组成,主要区别在于它们的 GLB及 I/O数量不同 (参见表 2.9)。
前两个系列的 GLB结构相同,后一个系列具有双 GLB结构,如图 2.50所示。
第 2章 大规模可编程逻辑器件
1,通用逻辑块 (Generic Logic Block)
ispLSI/pLSI系列的基本逻辑单元是通用逻辑块 (GLB)。双
GLB是 Lattice公司 ispLSI/pLSI3000系列的标准逻辑块。如图 2.50
所示,该双 GLB包含了 1000和 2000系列的 GLB,相当于两个
GLB,这正是“双 GLB”名称的来历。双 GLB具有 24个输入,8
个输出,以及实现大多数标准逻辑功能所必需的逻辑。 (双 )GLB
的内部逻辑被分为 4个部分:与阵列、乘积项共享阵列、可配置寄存器和控制部分。
第 2章 大规模可编程逻辑器件
PT
输出使能双 G L B
的输入多路选择器
G L B
去 G R P 和 O R P
来自
G
R
P
共享阵列乘积项
D

J
K

T
寄存器时序配置的去输出使能控制功能
C L K 2
PT 时钟C L K 1
全局复位
C L K 0
PT 复位
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
191817161514131211109876543210
7544
D
MU X MU XMU XMU X
Q
D
Q
D
Q
D
Q
与阵列
G L B
去 G R P 和
O R P
控制功能多路选择器去输出使能
PT
输出使能
PT 时钟
C L K 2
全局复位
C L K 1
PT 时钟
C L K 0
MU X
MU X
MU X
O
7
O
6
O
5
O
4
19
18171615
14131211109876543210
7544
MU X MU X MU X
D
Q Q
D
Q
D
Q
D
O
1
O
0
O
2
O
3

2.
50
双GL
B
结构第 2章 大规模可编程逻辑器件与阵列由两个 20乘积项共享阵列组成,它可产生 24个双
GLB输入的任意逻辑和。这些输入来自于 GRP(它们可以是来自
32个双 GLB的任意反馈信号 ),也可以是来自外部 I/O单元的输入。所有这些双 GLB输入信号可以是逻辑“真”及它们的补码形式进入乘积项,更有效地使布尔逻辑简化。两个乘积项共享阵列 (PTSA)各自接收 20个乘积项,并把它们分配到 4个双 GLB输出。有 4个或门,分别带有 4,4,5、和 7个输入。任一或门的输出可连到 4个双 GLB输出中的任一个,如果要求更多的乘积项,
PTSA能根据需要组合它们。如果用户主要关心的是速度,
PTSA能使用带有 4个乘积项的旁通电路,来改善该单元的性能。
双 GLB的 8个输出中,任一个或全部输出都可实现这种功能。
第 2章 大规模可编程逻辑器件
2.巨块结构 (Megablock Structure)
4个双 GLB构成一巨块。每个 GLB的最大输入为 24个,任一巨块设有专用输入,一个 GLB有 8个相应的输出,总共 32个 GLB
输出馈送到单 I/O3000系列器件的 ORP(也就是每个 GLB输出有一个 I/O引脚,例如 3256)。这样,32个输出中只有 16个馈送到 16个
I/O单元。对于双 I/O3000系列器件,如 3192,每个 GLB输出有一个 I/O引脚,16个 GLB输出馈送到每个输出布线区 (ORP),驱动
16个 I/O单元。因此,双 I/O器件中每个巨块设有两 个 ORP。单
I/O和双 I/O器件的巨块结构如图 2.51和图 2.52所示。
第 2章 大规模可编程逻辑器件图 2.51 ispLSI/pLSI3000系列 I/O巨块框图双 G L B 双 G L B 双 G L B
A3
A2A1
A0
双 G L B
输出布线区
24 242424
14
C e l l
I / O
↑↓
13
C e l l
I / O
12
C e l l
I / O
11
C e l l
I / O
10
C e l l
I / O
9
C e l l
I / O
8
C e l l
I / O
7
C e l l
I / O
6
C e l l
I / O
5
C e l l
I / O
4
C e l l
I / O
3
C e l l
I / O
2
C e l l
I / O
1
C e l l
I / O
0
C e l l
I / O
↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↓ ↑↑↓
15
C e l l
I / O
↑↓
16
第 2章 大规模可编程逻辑器件图 2.52 ispLSI/pLSI3000系列双 I/O巨块框图
16
24
双 G L B A 0 双 G L B A 3双 G L B A 2双 G L B A 1
7
C e l
l
C e l
l
C e l
l
3130292827262524232221201918171615141312111098654321
I/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ O
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
C e l
l
I/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ OI/ O
0
输出布线区输出布线区
242424
↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓ ↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓↑↓
第 2章 大规模可编程逻辑器件
3.全局时钟结构 (Global Clock Structure)
全局时钟结构包含 5个全局时钟输入引脚,Y0,Y1,Y2、
Y3和 Y4。前 3个引脚专用于 GLB时钟,后两个引脚专用于 I/O寄存器时钟。在 1000/E全局系列中设计的时钟 GLB生成网络被取消了。因此,所有输入时钟信号通过时钟复工器直接馈送到
GLB时钟输入端。 GLB全局时钟没有反相能力,但是,乘积项时钟在它送到时钟复工器之前,具有反相能力。
第 2章 大规模可编程逻辑器件
4,I/O单元 (I/O Cell)
I/O单元结构同 1000/E系列相近,如图 2.53所示,但每个
I/O单元含有边界扫描寄存器,一个输入引脚只有一个扫描寄存器。一个全局测试 OE信号“硬线连接”到所有 I/O单元,这对实现器件内所有三态输出缓冲器的静态测试是有用的。除了测试 OE信号外,两个全局 OE信号连到所有 I/O引脚。乘积项
OE信号和全局信号被送到 OE复工器。除测试 OE(TOE)信号外,
其他 OE信号在经过 OE复用后具有反相能力。
第 2章 大规模可编程逻辑器件图 2.53 ispLSI/pLSI3000系列的 I/O单元结构来自全局复位输出使能
M U X
M U X
可编程上拉测试输出使能全局输出使能 0
全局输出使能 1
PT 输出使能
O P R 旁路去 G R P
O P R M U X
M U X
I O C L K 0
I O C L K 1
M U X
I / O
Q D
H / L M U X
第 2章 大规模可编程逻辑器件
2.4.3 ispLSI5000V,6000和 8000系列逻辑器件这 3个系列的器件各有特色,是 Lattice 公司 1996年以后推出的新产品。其中,6000系列的 GLB与 3000系列器件相同,但整体结构中包了 FIFO或 RAM功能; 5000系列的整体结构与 3000系列相似,但 GLB和宏单元等内部结构有了很大的差异; 8000系列的 GLB与 5000系列相似,但整体结构是新推出的。下面以器件推出的先后顺序 (6000→5000→8000),简单介绍这 3种系列器件的主要结构特点。
第 2章 大规模可编程逻辑器件
1,ispLSI/pLSI6000系列逻辑器件
ispLSI/pLSI6192器件是基于单元的可编程高密度逻辑器件,
它含有一个专用的存储器模块、一个专用的寄存器 /计数器模块和一个 8000门的通用可编程逻辑块。输出布线区 (ORP)和全局布线区 (GRP)提供单元间的完全互连,增加这些模块可改善器件的功能、性能和利用率。图 2.54示出了 ispLSI/pLSI6192的功能框图。
ispLSI/pLSI6192有 3种形式,ispLSI/pLSI6192FF,6192SM
和 6192DM。这些器件都使用相同的通用可编程逻辑模块和寄存器 /计数器模块,只是存储器模块的功能有所变化。 3种器件的输出端只是存储器模块的控制接口引脚有些不同。
第 2章 大规模可编程逻辑器件输出布线区
( O R P )
输出布线区 ( O R P )
输出布线区
(
O
R
P
)
输出布线区
(
O
R
P
)
输出布线区 ( O R P )输出布线区 ( O R P )
双通用逻辑块
S
T O E
T
O
C
L
K
1
T
O
C
L
K
0
C
L
K
2
C
L
K
1
C
L
K
0
G
O
E
1
G
O
E
0
65 64
I
/
O
6
2
I
/
O
3
3
I
/
O
3
2
I / O 3 1
I / O 3 0
T D O / SD O
T R S T
T D I / S D I
T
M
S
/
M
O
D
E
T
C
L
K
/
S
C
L
K
B
SC
A
N
/
I
SP
E
N
R E S E T
( C L B )
T A P
界扫描
I SP 和边巨块寄存器模块
/计 数器存储器块模输入总线
( G R P )
全局布线区
95 94
■ ■■■■■■■■■■■■■■■■■■■■ ■■ ■
I
/
O
6
3
■■■ ■■■■■■■■■■■■■■■■■■■■■
I / O 0
I / O 1
I / O
E2F3 F2 F1 F0 E3 E1 E0
D3D2
D1D0C3C2
C1C0
B3
B2
B1
B0
输入总线输入总线输入总线输入总线输入总线






















I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
Y4Y3Y2Y1Y0
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
I
/
O
A3
A2
A1
A0
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O
I / O

2.
54i
spL
SI
/pL
SI
61
92
的功能框图第 2章 大规模可编程逻辑器件
1) 存储器模块 (Memory Module)
在 ispLSI/pLSI6192 FF器件中,Lattice公司提供一个专用的双端口 FIFO模块。该 FIFO由用户可配置为 256× 18或 512× 9的模块,
并由专用的 FIFO I/O引脚与外界相连。 FIFO的其他数据端口送到
GPR。 ispLSI/pLSI6192SM具有单端口存储器模块。该模块可作为单个 256× 18或 512× 9的单端口存储器,也可作为两个较小的
128× 18或 512× 9的单端口存储器。其外部端口有存储器地址输入引脚 (A0~ A8),读 /写 (RWL/RWH)、芯片选择 (CS)、输出使能 (OE)
控制线,以及 18条双向数据线。根据用户的设计,该存储器可由它的外部接口或内部 GRP访问 ispLSI/pLSI6192DM,其功能类似于
6192SM,但它支持由 GRP或外部引脚的同时存取。专用的决断逻辑和 Busy标记,帮助解决由相同存储位置的两个端口同时存取引起的问题。来自外部端口的“忙”信号 (BusyA),可从器件的专用引脚获得。
第 2章 大规模可编程逻辑器件
2) 寄存器 /计数器模块 (Register/Counter Module)
ispLSI/pLSI6192器件的另一特征是专用的寄存器 /计数器模块,有 8个 16位单元可实现寄存器或移位寄存器的功能。另外,
这些单元中的 4个能被编程为可带负载的向上 /向下计数器方式。
这 4个单元包含进位入和进位出连接,并允许级联到 64位的计数器。该寄存器 /计数器模块也有 16个端口连到 GRP,并有许多控制输入和状态标记输出。
第 2章 大规模可编程逻辑器件
3) 可编程逻辑模块 (Programmable Logic Module)
ispLSI/pLSI6192器件上的通用可编程逻辑基本单元是双通用逻辑块 (双 BLB),在框图上标号为 A0,A1,…,F3。在
ispLSI/pLSI6192器件中,共有 24个双 GLB。每个双 GLB有 24个输入、一个可编程与阵列和两个或 /异或阵列,以及 8个可独立配置为组合型或触发器型的输出。所有双 GLB的逻辑输入来自 GRP。
4个双 GLB,16个 I/O单元和 1个 ORP构成一个逻辑巨块。在一个巨块内的 16个 I/O单元共享一个乘积项输出使能和两个全局输出使能信号。 4个双 GLB的输出由 ORP连到 16个一组的 I/O单元。每个 ispLSI/pLSI 6192器件含有 6个这样的巨块。
第 2章 大规模可编程逻辑器件作为 GRP输入的信号有:所有双 GLB的输出,来自双向
I/O单元的所有输入,以及来自 FIFO和寄存器 /计数器模块的双向总线端口。这些模块的标志输入以及控制输出也连到 GRP。
所有这些信号都可作为 GLB的输入。通过 GRP的延时已被均衡,
使延时及逻辑误操作为最小。
第 2章 大规模可编程逻辑器件
GLB的输出返回到 GRP,以便使它们能连到器件上其他任何逻辑块的输入。该器件有 96个 I/O单元,它们可直接连到 I/O引脚。每个 I/O单元可分别编程为组合型输入、锁存器输入 /输出或带有三态控制的双向 I/O引脚。输出信号电平与 TTL兼容,输出源电流为 4 mA,吸入电流为 8 mA。每个输出可独立编程为快的或慢的输出转换速率,使总的输出开头噪声最小。该器件为紧凑的扁平四方形金属封装 (MQFP)。
ispLSI/pLSI 6192器件中的时钟,由 5个专用时钟引脚提供。
其中,3个时钟供给双 GLB,两个时钟供给 I/O单元。
第 2章 大规模可编程逻辑器件
4) 在系统可编程性 (In-System Programmability)
ispLSI/pLSI6192器件的特色也是 5 V在系统可编程性和在系统诊断能力。因此,该器件具有逻辑和存储器的非易失“飞速”可重复编程特性,真正地支持可重配置系统。
第 2章 大规模可编程逻辑器件
5) 边界扫描
ispLSI/pLSI 6192系列也具有边界扫描功能,它们含有在片内系统逻辑和器件输入 /输出引脚间连接的专用单元。所有
I/O引脚带有边界扫描寄存器。三态 I/O使用 3个边界扫描寄存器,输入使用 1个寄存器。该器件支持 IEEE1149.1 所有必须执行的指令,包括 BYPASS,EXTEST和 SAMPLE。
第 2章 大规模可编程逻辑器件
2,ispLSI 5000V系列逻辑器件
ispLSI 5000V系列超宽 (SuperWIDETM)输入高密度在系统可编程逻辑器件,其基本结构与 3000系列相似 (参见 3000系列的说明 )。 ispLSI5000V系列器件也具有边界扫描功能。
1) 通用逻辑块 (GLB)
ispLSI 5000V系列的 GLB结构如图 2.55所示。每个 GLB包含
32个宏单元,具有 160个逻辑乘积项和 5个控制乘积项的可编程与阵列。该 GLB具有来自 GRP的 68个输入端且可以以原码、补码逻辑输入。 160个乘积项可分成 32组,每组 5项送入乘积项共享阵列 (PTSA),单组函数最多可达 35个乘积项。另外,PTSA带有旁通功能。 5个乘积项用来控制共享的 GLB—— GLB内部的置位、复位、时钟、时钟使能及 I/O的输出使能。
第 2章 大规模可编程逻辑器件图
2.
55i
spL
SI
50
00V
的GL
B
结构
P T 16 4
P T 16 2
P T 15 5
P T 16 1
P T 15 9
P T 15 8
P T 15 7
P T 15 6
P T 16 0
P T 16 3
P T 79
P T 78
P T 77
P T 76
P T 75
P T 9
P T 8
P T 7
P T 6
P T 4
P T 3
P T 2
P T 1
P T 0
P T 5
布线区 (G RP )
来自全局去 G R P
去 I/ O 端口去 G R P
去 I/ O 端口去 G R P
去 I/ O 端口去 G R P
去 I/ O 端口宏单元 1
宏单元 15
宏单元 31
6
6
6
6
全局 P T O E 总线可编程与阵列
G l o ba l P T O E 0,.5
S ha r e d P T C l o c k1
S ha r e d P T C l o c k0
S ha r e d P T ( P ) R e s e t 0
P T P r e s e t
P T R e s e t
P T C l oc k
P T O E
P T S A by pa s s
F r o m P T S A
S ha r e d P T ( P ) R e s e t 1
G l o ba l P T O E 0,.5
S ha r e d P T C l o c k1
S ha r e d P T C l o c k0
S ha r e d P T ( P ) R e s e t 0
P T P r e s e t
P T R e s e t
P T C l oc k
P T O E
P T S A by pa s s
F r o m P T S A
S ha r e d P T ( P ) R e s e t 1
G l o ba l P T O E 0,.5
S ha r e d P T C l o c k1
S ha r e d P T C l o c k0
S ha r e d P T ( P ) R e s e t 0
P T P r e s e t
P T R e s e t
P T C l oc k
P T O E
P T S A by pa s s
F r o m P T S A
S ha r e d P T ( P ) R e s e t 1
宏单元 0
G l o ba l P T O E 0,.5
S ha r e d P T C l o c k1
S ha r e d P T C l o c k0
S ha r e d P T ( P ) R e s e t 0
P T P r e s e t
P T R e s e t
F r o m P T S A
S ha r e d P T ( P ) R e s e t 1
P T C l oc k
P T O E
P T S A by pa s s
F r o m P T S A
P T S A
6766210
第 2章 大规模可编程逻辑器件
2) 宏单元 (Macrocell)
ispLSI5000V系列的宏单元结构如图 2.56所示。在一个 GLB
中含有 32个带寄存器的宏单元,它们可由 PTSA输出或旁路。每个宏单元包含一个可编程 XOR门、一个可编程的寄存器 /锁存器 /
触发器,以及允许组合或时序操作所必需的时钟和控制逻辑。
每个宏单元有两个输出,并且,它们可通过全局布线区 (GRP)反馈。宏单元的这种双重可并行输出能力有利于充分利用硬件资源。例如,一个宏单元的输出,既可以是带有寄存器功能的输出,也可以是实现独立的组合逻辑功能的输出。从 I/O端口直接的寄存器输入,有利于实现快速输入。为便于功耗管理,每个宏单元带有可编程的高速 /低耗 (HS/LP)位。编程该位使其处于低功耗模式,可使每个单元的直流功耗降低 50%,但增加约 2 ns延时。对每种速度等级的器件,内部定时模型给出了增加的延时。
第 2章 大规模可编程逻辑器件图 2.56 ispLSI 5000V的宏单元结构控制
I / O
去 G R P
寄存器/
锁存器
( R / L)
C l k E n
C l k E n
P
P
R
R
R / L
C l k
R / L
C l k
D
D
Q
Q
D Q
D / T
置位/ 复位
PT 复位共享的 PT 时钟
PT 时钟
PT 复位共享的 P T ( P ) 复位
C LK 0 ~ 3
P T S A
P T S A 旁路
TO E
5
0
全局 P T O E
V CC V C C I / OV C C I / O
全局 OE
第 2章 大规模可编程逻辑器件宏单元的寄存器可由全局时钟或乘积项时钟来定时。另有一个全局或乘积项时钟使能信号。来自全局和乘积项信号都可作为宏单元寄存器的置位和复位信号。宏单元寄存器可编程为
D型寄存器,D型锁存器或 T型触发器。
第 2章 大规模可编程逻辑器件
3) I/O单元来自 GLB的 32个输出可驱动 GRP和器件 I/O单元。每个宏单元包含一根连接 GRP和一根连接 I/O的信号线。 输入缓冲器的门限可编程为 TTL/3.3/2.5 V兼容的电平。在 3.3 V(VCC)电压下,输出驱动电流为 4 mA,吸入电流为 8 mA。输出驱动器有一个与器件主电源 (VCC)分开的参考输入 (VCCI/O)。这一特性允许输出可驱动 3.3 V或 2.5 V电平,同时,器件逻辑和输出电流驱动总是由 3.3 V电源驱动。由于该 VCCI/O只作参考输入,
其最大 ICC 限制在 45 mA(8354 V)内。
第 2章 大规模可编程逻辑器件
4) 全局时钟分配
ispLSI 5000V系列器件有 4个专用时钟输入引脚,CLK0~
CLK3。 CLK0作为专用主时钟,它具有最小的内部时钟传递延时,它不支持反相功能,但支持最快的内部时钟速率。其余的
CLK1~ CLK3具有反相驱动选项。 CLK2 和 CLK3不仅可以反相
(作为时钟信号 ),而且通过 GRP布线可作为逻辑信号。
第 2章 大规模可编程逻辑器件
3,ispLSI8000系列逻辑器件
ispLSI8000系列逻辑器件是 Lattice公司最新推出的多寄存器超大 (SuperBIGTM )结构在系统可编程逻辑器件。每个超大的快速巨块 (BFM— Big Fast Megablock)含有 120个宏单元,排成
20× 6阵列。一组 20个宏单元被定义为一个通用逻辑块 (GLB),
一个布线区 (BRP— Big Fast Megablock Routing Pool)互连 6个
GLB,并连到 24个 BFM的 I/O单元。互连 BFM的全局布线区
(GRP)另有 144个全局 I/O单元,这些 I/O单元都带有可选用的 I/O
寄存器。图 2.57示出了 ispLSI8840功能框图。
第 2章 大规模可编程逻辑器件图 2.57 ispLSI 8840的功能框图全局 I O C
快速巨大布线区 ( B R P )
快速巨大布线区 ( B R P )
快速巨大布线区 ( B R P )
快速巨大布线区 ( B R P )
带三态总线的全局布线板 ( G R P )
I
O
C
I
O
C
I
O
C
I
O
C
I
O
C
I
O
C
I
O
C
I
O
C
G L BG L BG L B
G L BG L BG L B
G L BG L BG L B
G L BG L BG L B
G L BG L BG L B
G L BG L BG L B
G L BG L BG L B
G L B G L B G L B
第 2章 大规模可编程逻辑器件来自一个 BFM内 GLB的输出可驱动该 BFM内的布线区,也可驱动 BFM间的全局布线区。 ispLSI8840提供的开关 (转接 )资源允许 GRP内的信号驱动器件内任一或所有 BFM。这一机理有助于 BFM内及 BFM间的快速有效互连。
第 2章 大规模可编程逻辑器件
1) 通用逻辑块 (GLB)
每个 GLB包含 20个宏单元,具有 80个逻辑乘积项的可编程与阵列。该 GLB具有来自 BRP或 GRP的 44个输入端,且可以以原码、补码逻辑输入。 44个输入端中最多达 22 个可由该 GLB局部反馈 /驱动,这有利于实现快速反馈逻辑功能。 80个乘积项可分成 32组,每组 4项送入乘积项共享阵列 (PTSA),单组函数最多可达 28个乘积项。另外,该 PTSA带有旁通功能。 GLB结构参见 ispLSI 5000V系列的 GLB结构框图 (如图 2.56所示 )。
第 2章 大规模可编程逻辑器件
2) 宏单元 (Macrocell)
ispLSI 8000V系列的宏单元结构如图 2.58所示。在一个 GLB
中含有 20个带寄存器的宏单元,它们可由 PTSA输出或旁路。每个宏观单元包含一个可编程 XOR门、一个可编程的寄存器 /锁存器 /触发器,以及允许组合或时序操作所必需的时钟和控制逻辑。
每个宏单元有两个输出,其中,1个可通过 GLB内部反馈到与阵列,另一个可同时驱动 BFM布线区 (BRP)和全局布线区 (GRP)。
宏单元的这种双重可并行输出能力有利于充分利用硬件资源。
其余说明参见图 2.58及 ispLSI 8000V系列的宏单元结构的描述。
第 2章 大规模可编程逻辑器件图 2.58 ispLSI 8000V系列的宏单元结构三态总线全局互连
PR
R / L
D
C L K E N
Q
全局时钟 0 ~ 3
G R S T
PT 置位
G R S T
P T S A 旁路去宏单元和 I / O 单元来自 P T 8 0
来自巨块 9 或 10
去专用全局去巨块或去列阵列来自总线输入全局时钟使能
PT 时钟单个 PT
PT 复位复位端
P T S
A
第 2章 大规模可编程逻辑器件
3) 嵌入式三态总线作为全局布线区 (GRP)的一部分,该系列器件带有 108条嵌入式内部三态总线。该总线的宽度可分成多组,例如 12输入 9条总线,6输入 18条或 3输入 36条总线。各 GLB能动态地共享 GRP
总线资源。这一特性取消了原来将三态总线转换到器件内多路复用器的要求。每个 GLB中最多可达 18个宏单元参与驱动该嵌入式三态总线,每个 GLB中余下的两个宏单元可用来生成内部三态驱动的控制信号。该嵌入式三态总线利用 I/O单元的双向能力,也可配置为外部三态总线的扩展。
第 2章 大规模可编程逻辑器件嵌入式三态总线有内部的总线保持和仲裁特性,使这一功能更具有“用户友好性”。保持特性消除了总线悬浮状态的可能性。总线仲裁实行“先来先服务”的优先权,这避免了内部总线竞争。仲裁特性与 CPLD的可预测性相结合,能完美地实现
“真正的”总线功能。
第 2章 大规模可编程逻辑器件
4) I/O单元和 I/O控制用 GLB内部的额外乘积项或专用输入引脚可生成 I/O单元寄存器的控制信号。每个 GLB除 80个可用于宏单元逻辑外,有两个额外的乘积项。其中,第一个额外乘积项可作为该 GLB内所有宏单元的共享乘积项时钟,第二个额外乘积项使用 GRP和 BRP
的独立布线结构,使它连到 I/O控制总线。使用这种独立的控制总线布线结构,允许 I/O寄存器可有多个高速控制信号,而不影响 GLB和 BFM的互连。 I/O控制总线被分成 4个象限,满足了器件每边 I/O单元控制的要求。任一或所有 I/O单元可独立地选择控制总线中的信号作为时钟、时钟使能、输出使能、复位或置位。
第 2章 大规模可编程逻辑器件每个 BFM有 24个 I/O单元,GRP有 144个 I/O单元。每个 I/O
可配置为组合输入或输出、寄存器输入或输出,或双向 I/O。
I/O单元的寄存器定时可由某一个全局、局部或乘积项时钟来驱动。时钟使能、复位和置位的驱动参见图 2.58说明。所有这些控制信号的极性可由各自的 I/O单元偏置来选择。 I/O单元寄存器可编程为 D型寄存器或 D型锁存器。
第 2章 大规模可编程逻辑器件
2.5 FPGA和 CPLD的开发应用选择
1.器件的逻辑资源量的选择开发一个项目,首先要考虑的是所选的器件的逻辑资源量是否满足本系统的要求。由于大规模的 PLD器件的应用,大都是先将其安装在电路板上后再设计其逻辑功能,而且在实现调试前很难准确确定芯片可能耗费的资源,考虑到系统设计完成后,有可能要增加某些新功能,以及后期的硬件升级可能性,
因此,适当估测一下功能资源以确定使用什么样的器件,对于提高产品的性能价格比是有好处的。
第 2章 大规模可编程逻辑器件
Lattice,Altera,Xinlinx三家 PLD主流公司的产品都有 HDPLD
的特性,且有多种系列产品供选用。相对而言,Lattice的高密度产品少些,密度也较小。由于不同的 PLD公司在其产品的数据手册中描述芯片逻辑资源的依据和基准不一致,所以有很大出入。例如对于 ispLSI1032E,Lattice 给出的资源是 6000门,而对 EPM7128S,Altera给出的资源是 2500门,但实际上这两种器件的逻辑资源是基本一样的。在逻辑资源中,我们不妨设定一个基准。这里以比较常用的 ispLSI1032E为基准,来了解其他公司的器件的规模。大家都知道,GAL16V8有 8个逻辑宏单元,
每个宏单元中有一个 D触发器,它们对应数个逻辑门,可以设计一个 7位二进制计数器或一个四位加法器等;
第 2章 大规模可编程逻辑器件而 1032E有 32个通用逻辑块 (GLB),每个 GLB中含 4个宏单元,
总共 128个宏单元,若以 Lattice数据手册上给出的逻辑门数为
6000计算,Altera的 EPM7128S中也有 128个宏单元,也应有 6000
个左右的等效逻辑门; XiLLinx的 XC95108和 XC9536的宏单元数分别为 108和 36,对应的逻辑门数应该约为 5000和 6000。但应注意,相同的宏单元数并不对应完全相同的逻辑门数。例如
GAL20V8和 GAL16V8的宏单元数都是 8,其逻辑门数显然不同。
此外,随着宏单元数的增加,芯片中的宏单元数量与对应的等效逻辑门的数量并不是成比例增加的。这是因为宏单元越多,
各单元间的逻辑门能综合利用的可能性就越大,所对应的等效逻辑门自然就越大。例如,isp1016有 16个 GLB,64个宏单元,
2000个逻辑门,而 1032E的宏单元数为 128,逻辑门数却是其 3倍。
第 2章 大规模可编程逻辑器件以上的逻辑门估测仅对 CPLD,对于 FPGA的估测应考虑到其结构特点。由于 FPGA的逻辑颗粒比较小,即其可布线区域是散布在所有的宏单元之间的,因此,FPGA对于相同的宏单元数将比 CPLD对应更多的逻辑门数。以 Altera的 EPF10PC84为例,
它有 576个宏单元,若以 7128S为 2500个逻辑门计算,则它应约有 1万个逻辑门,但若以 1032E为基准则应有 2.7万门;再考虑其逻辑结构的特点,则应约有 3.5 万门。当然,这只是一般意义上的估测,器件的逻辑门数只有与具体的设计内容相结合才有意义。
第 2章 大规模可编程逻辑器件实际开发中,逻辑资源的占用情况涉及的因素是很多的,
大致有:① 硬件描述语言的选择、描述风格的选择,以及 HDL
综合器的选择。这些内容涉及的问题较多,在此不宜展开。②
综合和适配开关的选择。如选择速度优化,则将耗用更多的资源,而若选择资源优化,则反之。在 EDA工具上还有许多其他的优化选择开关,都将直接影响逻辑资源的利用率。③ 逻辑功能单元的性质和实现方法。一般情况,许多组合电路比时序电路占用的逻辑资源要大,如并行进位的加法器、比较器,以及多路选择器。
第 2章 大规模可编程逻辑器件
2.芯片速度的选择随着可编程逻辑器件集成技术的不断提高,FPGA和 CPLD的工作速度也不断提高,pin to pin延时已达 ns级,在一般使用中,
器件的工作频率已足够了。目前,Altera和 Xilinx公司的器件标称工作频率最高都可超过 300 MHz。具体设计中应对芯片速度的选择有一综合考虑,并不是速度越高越好。芯片速度的选择应与所设计的系统的最高工作速度相一致。使用了速度过高的器件将加大电路板设计的难度。这是因为器件的高速性能越好,则对外界微小毛刺信号的反映灵敏性越好,若电路处理不当,或编程前的配置选择不当,极易使系统处于不稳定的工作状态,其中包括输入引脚端的所谓,glitch"干扰。在单片机系统中,电路板的布线要求并不严格,一般的毛刺信号干扰不会导致系统的不稳定,但对于即使最一般速度的 FPGA/CPLD,这种干扰也会引起不良后果。
第 2章 大规模可编程逻辑器件
3.器件功耗的选择由于在线编程的需要,CPLD的工作电压多为 5 V,而 FPGA
的工作电压的流行趋势是越来越低,3.3 V和 2.5 V的低工作电压的 FPGA的使用已十分普遍。因此,就低功耗、高集成度方面,
FPGA具有绝对的优势。相对而言,Xilinx公司的器件的性能较稳定,功耗较小,用户 I/O利用率高。例如,XC3000系列器件一般只用两个电源、两个地,而密度大体相当的 Altera器件可能有
8个电源,8个地。
第 2章 大规模可编程逻辑器件
4,FPGA/CPLD的选择
FPGA/GPLD的选择主要看开发项目本身的需要,对于普通规模且产量不是很大的产品项目,通常使用 CPLD比较好。这是因为:
(1) 在中小规模范围,CPLD价格较便宜,能直接用于系统。
各系列的 CPLD器件的逻辑规模覆盖面属中小规模 (1000~ 50 000
门 ),有很宽的可选范围,上市速度快,市场风险小。
(2) 开发 CPLD的 EDA软件比较容易得到,其中不少 PLD公司将有条件地提供免费软件。如 Lattice的 ispExpert,Synaio,
Vantis的 Design Director,Altera的 Baseline,Xilinx的 Webpack等。
第 2章 大规模可编程逻辑器件
(3) CPLD的结构大多为 E2PROM或 Flash ROM形式,编程后即可固定下载的逻辑功能,使用方便,电路简单。
(4) 目前最常用的 CPLD多为在系统可编程的硬件器件,编程方式极为便捷。这一优势能保证所设计的电路系统随时可通过各种方式进行硬件修改和硬件升级,且有良好的器件加密功能。 Lattice公司所有的 ispLSI系列,Altera公司的 7000S和 9000系列,Xilinx公司的 XC9500系列的 CPLD都拥有这些优势。
第 2章 大规模可编程逻辑器件
(5) CPLD中有专门的布线区和许多块,无论实现什么样的逻辑功能,或采用怎样的布线方式,引脚至引脚间的信号延时几乎是固定的,与逻辑设计无关。这种特性使得设计调试比较简单,
逻辑设计中的毛刺现象比较容易处理,廉价的 CPLD就能获得比较高速的性能。
对于大规模的逻辑设计,ASIC设计或单片系统设计,则多采用 FPGA。从逻辑规模上讲,FPGA覆盖了大中规模范围,逻辑门数从 5000~ 2 000 000门。目前国际上 FPGA的最大供应商是美国的 Xilinx公司和 Altera公司。 FPGA保存逻辑功能的物理结构多为 SRAM型,即掉电后将丢失原有的逻辑信息。所以在实用中需要为 FPGA芯片配置一个专用 ROM,需将设计好的逻辑信息烧录于此 ROM中。电路一旦上电,FPGA就能自动从 ROM中读取逻辑信息。 FPGA的使用途径主要有 4个方面:
第 2章 大规模可编程逻辑器件
(1) 直接使用。即如 CPLD那样直接用于产品的电路系统板上。
由于在大规模和超大规模逻辑资源、低功耗与价格比值方面,
FPGA比 CPLD有更大的优势。但由于 FPGA通常必须附带 ROM
以保存软信息,且 Altera 和 Xilinx的原供应商只能提供一次性
ROM,所以在规模不是很大的情况下,其电路的复杂性和价格方面略逊于 CPLD,而且对于 ROM的编程,要求有一台能对
FPGA的配置 ROM进行烧录的编程器。有必要时,也可以使用能进行多次编程配置的 ROM。 Atmel生产的为 Xilinx和 Altera的
FPGA配置的兼容 ROM,就有一万次的烧录周期。此外,用户也能用单片机系统照配置 ROM的时序来完成配置 ROM的功能。当然,也能使用诸如 ACTEL的不需要配置 ROM的一次性 FPGA。
第 2章 大规模可编程逻辑器件
(2) 间接使用。其方法是首先利用 FPGA完成系统整机的设计,
包括最后的电路板的定型,然后将充分检证的成功的设计软件,
如 VHDL程序,交付原供产商进行相同封装形式的掩模设计。这个过程类似于 8051的掩模生产。这样获得的 FPGA无须配置 ROM,
单片成本要低许多。
第 2章 大规模可编程逻辑器件
(3) 硬件仿真。由于 FPGA是 SRAM结构,且能提供庞大的逻辑资源,因而适用于作各种逻辑设计的仿真器件。从这个意义上讲,FPGA本身即为开发系统的一部分。 FPGA器件能用作各种电路系统中不同规模逻辑芯片功能的实用性仿真,一旦仿真通过,就能为系统配以相适应的逻辑器件。在仿真过程中,
可以通过下载线直接将逻辑设计的输出文件通过计算机和下载适配电路配置进 FPGA器件中,而不必使用配置 ROM和专用编程器。
第 2章 大规模可编程逻辑器件
(4) 专用集成电路 ASIC设计仿真。对产品产量特别大,需要专用的集成电路,或是单片系统的设计,如 CPU及各种单片机的设计,除了使用功能强大的 EDA软件进行设计和仿真外,
有时还有必要使用 FPGA对设计进行硬件仿真测试,以便最后确认整个设计的可行性。最后的器件将是严格遵循原设计,适用于特定功能的专用集成电路。这个转换过程需利用 VHDL或
Verilag语言来完成。
第 2章 大规模可编程逻辑器件如果需要,在一个系统中,可根据不同的电路采用不同的器件,充分利用各种器件的优势。例如,利用 Altera和 Lattice的器件实现要求等延时和多输入的场合及加密功能,用 Altera和
Xilinx器件实现大规模电路,用 Xilinx器件实现时序较多或相位差要求数值较小 (小于一个逻辑单元延时时间 )的设计等。这样可提高器件的利用率,降低设计成本,提高系统综合性能。
第 2章 大规模可编程逻辑器件
5,FPGA和 CPLD封装的选择
FPGA和 CPLD器件的封装形式很多,其中主要有 PLCC、
PQFP,TQFP,RQFP,VQFP,MQFP,PGA和 BGA等。每一芯片的引脚数从 28至 484不等,同一型号类别的器件可以有多种不同的封装。常用的 PLCC封装的引脚数有 28,44,52,68至 84等几种规格。由于可以买到现成的 PLCC插座,插拔方便,一般开发中,比较容易使用,适用于小规模的开发。缺点是需添加插座的额外成本,I/O口线有限以及易被人非法解密。 PQFP,RQFP或
VQFP属贴片封装形式,无须插座,管脚间距有零点几个毫米,
直接或在放大镜下就能焊接,适合于一般规模的产品开发或生产,
但引脚间距比 PQFP要小许多,徒手难以焊接,批量生产需贴装机。
多数大规模、多 I/O的器件都采用这种封装。
第 2章 大规模可编程逻辑器件
PGA封装的成本比较高,价格昂贵,形似 586CPU,一般不直接采用作系统器件。如 Altera的 10K50有 403脚的 PGA封装,
可用作硬件仿真。 BGA封装的引脚属于球状引脚,是大规模
PLD器件常用的封装形式。由于这种封装形式采用球状引脚,
以特定的阵形有规律地排在芯片的背面上,使得芯片引出尽可能多的引脚,同时由于引脚排列的规律性,因而适合某一系统的同一设计程序能在同一电路板位置上焊上不同大小的含有同一设计程序的 BGA器件,这是它的重要优势。此外,BGA封装的引脚结构具有更强的抗干扰和机械抗振性能。
第 2章 大规模可编程逻辑器件对于不同的设计项目,应使用不同的封装。对于逻辑含量不大,而外接引脚的数量比较大的系统,需要大量的 I/O口线才能以单片形式将这些外围器件的工作系统协调起来,因此选贴片形式的器件比较好。如可选用 Lattice的 ispLSI1048E-PQFP或
XilinxXC95108-PQFP,它们的引脚数分别是 128和 160,I/O口数一般都能满足系统的要求。
第 2章 大规模可编程逻辑器件
6.其他因素的选择相对而言,在三家 PLD主流公司的产品中,Altera和 Xilinx
的设计较为灵活,器件利用率较高,器件价格较便宜,品种和封装形式较丰富。但 Xilinx的 FPGA产品需要外加编程器件和初始化时间,保密性较差,延时较难事先确定,信号等延时较难实现。
器件中的三态门和触发器数量,三家 PLD主流公司的产品都太少,尤其是 Lattice产品。