FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
第一章 FPGA/CPLD概述
本章讲述了 FPGA/CPLD的基本概念、结构、发展以及如何进行 FPGA/CPLD
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
等
基本问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
,初学者仔细阅读,但只需要了解,有个概念就行,不需要深入研究。
1.1 FPGA/CPLD的基本概念
CPLD是可编程逻辑器件(Complex Programable Logic Device)的
简称,FPGA是现场可编程门阵列(Field Programable Gate Array)
的简称,两者的功能基本相同,编程等过程也基本相同,只是芯片内
部的实现原理和结构略有不同(见 1.3),所以对初学者,可以忽略
这两者的区别,统称为可编程逻辑器件或 CPLD/FPGA或 PLD。
简单地讲,PLD是这样一种 ASIC(专用集成电路):内部有大量
的门电路,通过软件编程可以实现这些门电路不同的连接关系,从而
整个 PLD对外就完成了不同的功能,并且这些门电路的连接关系可以
不断用软件来改变。
和单片机比较,PLD在时序和延迟的实现上不如单片机,但是 PLD
在芯片容量、组合逻辑、工作速度、编程难度以及可以擦写次数上(特
别是 FPGA)远优于单片机。
PLD是电子设计领域中最具活力和发展前途的一项技术,它的影
响丝毫不亚于 70年代单片机的发明和使用。
PLD能做什么呢?可以毫不夸张的讲,PLD能完成任何数字器件
的功能,上至高性能 CPU,下至简单的 74电路,都可以用 PLD来实现。
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
1
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
PLD如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入
法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我
们可以事先验证设计的正确性。在 PCB完成以后,还可以利用 PLD
的在线修改能力,随时修改设计而不必改动硬件电路。使用 PLD来开
发数字电路,可以大大缩短设计时间,减少 PCB面积,提高系统的可
靠性。 PLD的这些优点使得 PLD技术在 90年代以后得到飞速的发展,
同时也大大推动了 EDA软件和硬件描述语言(HDL)的进步。
1.2 PLD发展历程及概述
发展历程:
当今社会是数字化的社会,是数字集成电路广泛应用的社会。数字集
成电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小
中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以
及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,
设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统
设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望 ASIC
的设计周期尽可能短,最好是在实验室里就能设计出合适的 ASIC芯
片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件
(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编
程逻辑器件(CPLD)。早期的可编程逻辑器件只有可编程只读存贮器
(PROM)、紫外线可按除只读存贮器(EPROM)和电可擦除只读存贮器
(EEPROM)三种。由于结构的限制,它们只能完成简单的数字逻辑功能。
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
2
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
其后,出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件
(PLD),它能够完成各种数字逻辑功能。典型的 PLD由一个“与”门
和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”
表达式来描述,所以, PLD能以乘积和的形式完成大量的组合逻辑
功能。
这一阶段的产品主要有 PAL(可编程阵列逻辑)和 GAL(通用阵
列逻辑)。 PAL由一个可编程的“与”平面和一个固定的“或”平面
构成,或门的输.出可以通过触发器有选择地被置为寄存状态。 PAL
器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和
EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列
(PLA),它也由一个与”平面和一个“或”平面构成,但是这两个平
面的连接关系是可编程的。 PLA器件既有现场可编程的,也有掩膜
可编程的。 在 PAL的基础上,又发展了一种通用阵列逻辑 GAL
(Generic Array Logic),如 GAL16V8,GAL22V10 等。它采用了 EEPROM
工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单
元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些
早期的 PLD器件的一个共同特点是可以实现速度特性较好的逻辑功
能,但其过于简单的结构也使它们只能实现规模较小的电路。
为了弥补这一缺陷,20世纪 80年代中期。 Altera和 Xilinx分
别推出了类似于 PAL结构的扩展型 CPLD(Complex Programmab1e
Logic Dvice)和与
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
门阵列类似的 FPGA(Field Programmable Gate
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
3
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
Array),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范
围宽等特点。 这两种器件兼容了 PLD和通用门阵列的优点,可实现
较大规模的电路,编程也很灵活。与门阵列等其它 ASIC(Application
Specific IC)相比,它们又具有设计开发周期短、设计制造成本低、
开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等
优点,因此被广泛应用于产品的原型设计和产品生产(一般在 10,000
件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成
电路的场合均可应用 FPGA和 CPLD器件。
(注:不同厂家的叫法不尽相同,Xilinx把,基于查找表技术,
SRAM工艺,要外挂配置用的 EEPROM的 PLD叫 FPGA;把基于乘积项技
术,Flash(类似 EEPROM工艺)工艺的 PLD叫 CPLD; Altera 把自己
的 PLD产品:MAX系列(乘积项技术,EEPROM工艺),FLEX系列(查
找表技术,SRAM工艺)都叫作 CPLD,即复杂 PLD(Complex PLD),由于
FLEX系列也是 SRAM工艺,基于查找表技术,要外挂配置用的 EPROM,
用法和 Xilinx的 FPGA一样,所以很多人把 Altera的 FELX系列产品
也叫做 FPGA.)
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
4
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
FPGA/CPLD 概述
FPGA(现场可编程门阵列)与 CPLD(复杂可编程逻辑器件)都是可编程
逻辑器件,它们是在 PAL,GAL等逻辑器件的基础之上发展起来的。同
以往的 PAL,GAL等相比较,FPGA/CPLD的规模比较大,它可以替代
几十甚至几千块通用 IC芯片。这样的 FPGA/CPLD实际上就是一个子
系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和
普遍欢迎。经过了十几年的发展,许多公司都开发出了多种可编程逻
辑器件。比较典型的就是 Xilinx公司的 FPGA器件系列和 Altera公
司的 CPLD器件系列,它们开发较早,占用了较大的 PLD市场。通常
来说,在欧洲用 Xilinx的人多,在日本和亚太地区用 ALTERA的人多,
在美国则是平分秋色。全球 PLD/FPGA产品 60%以上是由 Altera和
Xilinx提供的。可以讲 Altera和 Xilinx共同决定了 PLD技术的发
展方向。当然还有许多其它类型器件,如:Lattice,Vantis,Actel,
Quicklogic,Lucent等。 (99年 Lattice收购了 Vantis,成为第
三大 PLD供应商;同年 Xilinx收购了 Philips的 PLD部门)
表 1.2-1 1998年世界十大 PLD公司
排名 公司 销售额
(亿美金) 市场占有率
1 Altera 5.96 30.1
2 Xilinx 5.74 29.0
3 Vantis 2.20 11.1
4 Lattice 2.18 11.0
5 Actel 1.39 7.0
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
5
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
6 Luccent 0.85 4.3
7 Cypress 0.44 2.2
8 Atmel 0.42 2.1
9 Philips 0.28 1.4
10 Quicklogic 0.24 1.2
资料来源:99年 4月《电子产品世界》
尽管 FPGA,CPLD和其它类型 PLD的结构各有其特点和长处,但
概括起来,它们是由三大部分组成的,
·一个二维的逻辑块阵列,构成了 PLD器件的逻辑组成核心。
·输入/输出块:
·连接逻辑块的互连资源。连线资源:由各种长度的连线线段组成,
其中也有一些可编程的连接开关,它们用于逻辑块之间、逻辑块与输
入/输出块之间的连接。
图:1.2-2典型的 PLD的框图
兰色:逻辑
单元
红色:连线
资源
黄色:输入
输出块
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
6
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
对用户而言,CPLD与 FPGA的内部结构稍有不同,但用法一样,
所以多数情况下,不加以区分。
FPGA/CPLD芯片都是特殊的 ASIC芯片,它们除了具有 ASIC的
特点之外,还具有以下几个优点:
·随着 VlSI(Very Large Scale IC,超大规模集成电路)工艺的
不断提高单一芯片内部可以容纳上百万个晶体管, FPGA/CPLD芯片
的规模也越来越大,其单片逻辑门数已达到上百万门,它所能实现的
功能也越来越强,同时也可以实现系统集成。
·FPGA/CPLD芯片在出厂之前都做过百分之百的测试,不需要
设计人员承担投片风险和费用,设计人员只需在自己的实验室里就可
以通过相关的软硬件环境来完成芯片的最终功能设计。所以, FPGA
/CPLD的资金投入小,节省了许多潜在的花费。
·用户可以反复地编程、擦除、使用或者在外围电路不动的情况
下用不同软件就可实现不同的功能。所以,用 FPGA/PLD 试制样片,
能以最快的速度占领市场。 FPGA/CPLD软件包中有各种输入工具和
仿真工具,及版图设计工具和编程器等全线产品,电路设计人员在很
短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片
的制作。 当电路有少量改动时,更能显示出 FPGA/CPLD的优势。电
路设计人员使用 FPGA/CPLD进行电路设计时,不需要具备专门的
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
7
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
IC(集成电路)深层次的知识, FPGA/CPLD软件易学易用,可以使设
计人员更能集中精力进行电路设计,快速将产品推向市场。
(以上
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
参照 WWW.FPGA.COM.CN)
1.3 PLD的结构和原理
1.3.1基于乘积项(Product-Term)的 PLD结构
采用这种结构的 PLD芯片有:Altera的 MAX7000,MAX3000系列
(EEPROM工艺),Xilinx的 XC9500系列(Flash工艺)和
Lattice,Cypress的大部分产品(EEPROM工艺)我们先看一下这种
PLD的总体结构(以 MAX7000为例,其他型号的结构与此都非常相似):
图 1.3.1-1基于乘积项的 PLD内部结构
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
8
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
这种 PLD可分为三块结构:宏单元(Marocell),可编程连线(PIA)
和 I/O控制块。 宏单元是 PLD的基本结构,由它来实现基本的逻辑
功能。图 1中兰色部分是多个宏单元的集合(因为宏单元较多,没有
一一画出)。可编程连线负责信号传递,连接所有的宏单元。I/O控
制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,
摆率控制,三态输出等。 上图的 INPUT/GCLK1,
INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局时钟,清零和输出使能信
号,这几个信号有专用连线与 PLD中每个宏单元相连,信号到每个宏
单元的延时相同并且延时最短。宏单元的具体结构见下图:
图 1.3.1-2宏单元结构
左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是
一个可编程熔丝,如果导通就是实现“与”逻辑。后面的乘积项选择
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
9
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
矩阵是一个“或”阵列。两者一起完成组合逻辑。图右侧是一个可编
程 D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的
全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时
钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输
给 PIA或输出到 I/O脚。
1.3.2乘积项结构 PLD的逻辑实现原理
下面我们以一个简单的电路为例,具体说明 PLD是如何利用以上
结构实现逻辑的,电路如下图:
图 1.3.2-1
假设组合逻辑的输出(AND3的输出)为 f,则
f=(A+B)*C*(!D)=A*C*!D + B*C*!D ( 我们以!D表示 D的“非”)
PLD将以下面的方式来实现组合逻辑 f:
图 1.3.2-2
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
10
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
A,B,C,D由 PLD芯片的管脚输入后进入可编程连线阵列(PIA),
在内部会产生 A,A反,B,B反,C,C反,D,D反 8个输出。图中每一个叉
表示相连(可编程熔丝导通),所以得到:f= f1 + f2 = (A*C*!D) +
(B*C*!D) 。这样组合逻辑就实现了。 图 3电路中 D触发器的实现比
较简单,直接利用宏单元中的可编程 D触发器来实现。时钟信号 CLK
由 I/O脚输入后进入芯片内部的全局时钟专用通道,直接连接到可编
程触发器的时钟端。可编程触发器的输出与 I/O脚相连,把结果输出
到芯片管脚。这样 PLD就完成了图 3所示电路的功能。(以上这些步
骤都是由软件自动完成的,不需要人为干预)
图 1.3.2-1的电路是一个很简单的例子,只需要一个宏单元就可
以完成。但对于一个复杂的电路,一个宏单元是不能实现的,这时就
需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出
也可以连接到可编程连线阵列,再做为另一个宏单元的输入。这样
PLD就可以实现更复杂逻辑。
这种基于乘积项的 PLD基本都是由 EEPROM和 Flash工艺制造的,
一上电就可以工作,无需其他芯片配合。
1.3.3查找表(Look-Up-Table)的原理与结构
采用这种结构的 PLD芯片我们也可以称之为 FPGA:如 altera的
ACEX,APEX系列,xilinx的 Spartan,Virtex系列等。
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
11
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
查找表(Look-Up-Table)简称为 LUT,LUT本质上就是一个 RAM。
目前 FPGA中多使用 4输入的 LUT,所以每一个 LUT可以看成一个有 4
位地址线的 16x1的 RAM。 当用户通过原理图或 HDL语言描述了一个
逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能
的结果,并把结果事先写入 RAM,这样,每输入一个信号进行逻辑运
算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即
可。
下面是一个 4输入与门的例子:
实际逻辑电路 LUT的实现方式
a,b,c,d 输入
逻辑输
出
地址
RAM中存储的内
容
0000 0 0000 0
0001 0 0001 0
.... 0 ... 0
1111 1 1111 1
图 1.3.3-1基于查找表(LUT)的 FPGA的结构
我们看一看 xilinx Spartan-II的内部结构,如图 1.3.3-2:
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
12
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
Spartan-II主要包括 CLBs,I/O块,RAM块和可编程连线(未表示出)。
在 spartan-II中,一个 CLB包括 2个 Slices,每个 slices包括两个
LUT,两个触发器和相关逻辑。 Slices可以看成是 SpartanII实现
逻辑的最基本结构 (xilinx其他系列,如 SpartanXL,Virtex的结构
与此稍有不同,具体请参阅数据手册)
xilinx Spartan-II 芯片内部结构 Slices结构
图 1.3.3-2
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
13
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
altera的 FLEX/ACEX等芯片的结构如下图:
图 1.3.3-3 altera FLEX/ACEX 芯片的内部结构
图 1.3.3-4逻辑单元(LE)内部结构
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
14
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
FLEX/ACEX的结构主要包括 LAB,I/O块,RAM块(未表示出)和
可编程行/列连线。在 FLEX/ACEX中,一个 LAB包括 8个逻辑单元(LE),
每个 LE 包括一个 LUT,一个触发器和相关的相关逻辑。LE 是
FLEX/ACEX 芯片实现逻辑的最基本结构(altera 其他系列,如 APEX
的结构与此基本相同,具体请参阅数据手册)
1.3.4查找表结构的 FPGA逻辑实现原理
我们还是以这个电路的为例:
图 1.3.4-1
A,B,C,D由 FPGA芯片的管脚输入后进入可编程连线,然后作为
地址线连到到 LUT,LUT中已经事先写入了所有可能的逻辑结果,通
过地址查找到相应的数据然后输出,这样组合逻辑就实现了。 该电
路中 D触发器是直接利用 LUT后面 D触发器来实现。时钟信号 CLK
由 I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的
时钟端。触发器的输出与 I/O脚相连,把结果输出到芯片管脚。这样
PLD就完成了图 1.3.4-1所示电路的功能。(以上这些步骤都是由
软件自动完成的,不需要人为干预)
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
15
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
这个电路是一个很简单的例子,只需要一个 LUT加上一个触发器
就可以完成。对于一个 LUT无法完成的的电路,就需要通过进位逻辑
将多个单元相连,这样 FPGA就可以实现复杂的逻辑。
由于 LUT主要适合 SRAM工艺生产,所以目前大部分 FPGA都是基
于 SRAM工艺的,而 SRAM工艺的芯片在掉电后信息就会丢失,一定需
要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数
据加载到 FPGA中,然后 FPGA就可以正常工作,由于配置时间很短,
不会影响系统正常工作。 也有少数 FPGA采用反熔丝或 Flash工艺,
对这种 FPGA,就不需要外加专用的配置芯片。
1.3.5选择 CPLD还是 FPGA?
根据上一篇 PLD的结构和原理可以知道,CPLD组合逻辑的功能
很强,一个宏单元就可以分解十几个甚至 20-30多个组合逻辑输入。
而 FPGA的一个 LUT只能处理 4输入的组合逻辑,因此,CPLD适合用
于设计译码等复杂组合逻辑。 但 FPGA的制造工艺确定了 FPGA芯片
中包含的 LUT和触发器的数量非常多,往往都是几千上万,CPLD一
般只能做到 512个逻辑单元,而且如果用芯片价格除以逻辑单元数
量,FPGA的平均逻辑单元成本大大低于 CPLD。 所以如果设计中使用
到大量触发器,例如设计一个复杂的时序逻辑,那么使用 FPGA就是
一个很好选择。
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
16
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
对于初学者,一般使用 CPLD,因为 CPLD芯片价格低(象
EPM7064SLC44-10只要 22元就够了);许多 CPLD为 5V,可以直接和
CMOS以及 TTL电路电压兼容,不必考虑电源转换问题;CPLD很多低
价的是 PLCC封装,插拔很方便,而 FPGA一般是 QFP封装,一旦损坏,
很难从系统电路上取下。
1.4 PLD的开发和设计
PLD的开发和设计需要三方面:(1)PLD软件;(2)PLD硬件;
(3)电路设计的基本知识
PLD软件:
由于 PLD软件已经发展的相当完善,用户甚至可以不用详细了解
PLD的内部结构,也可以用自己熟悉的方法:如原理图输入或 HDL语
言来完成相当优秀的 PLD设计。(但了解 PLD的内部结构,将有助于
提高我们设计的效率和可靠性)
如何获得 PLD开发软件软件呢? ALTERA公司提供免费试用版
或演示版(当然商业版大都是收费的),例如:可以免费从
http://www.altera.com/ 上下载 Altera公司的 Maxplus2
(Baseline版或 E+MAX版),或向其代理商索取这套软件。以上免
费软件都需要在网上注册申请 License文件。通常这些免费软件已经
能够满足一般设计的需要,当然,要想软件功能更强大一些,只能购
买商业版软件。
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
17
FPGA/CPLD入门教程(第一章 FPGA/CPLD概述)
如果您打算使用 VHDL或 Verilog HDL硬件描述语言来开发
PLD/FPGA,通常还需要使用一些专业的 HDL开发软件,这是因为 FPGA
厂商提供的软件的 HDL综合能力一般都不是很强,需要其他软件来配
合使用,但作为初学者,ALTERA公司的 MAXPLUS可以完成基本的设
计。
PLD硬件:
开发 ALTERA公司的 PLD需要以下硬件:电脑(带并口)、PLD
芯片(如果是 FPGA还需要 EEPROM)、电源、下载电缆和下载电路。
(对于上面软硬件,如果你购买 www.husoon.com的 HS101型
FPGA/CPLD开发板,你将获得除电脑外的所有资源)
电路设计的基本知识
主要指一些数字模拟电路、HDL语言等知识和实际电路设计经验。
www.husoon.com service@husoon.com
沪生电子 021-53084329 021-28304329
18