《【精品】eda技术与vhdl设计(西电版第2章 可编程逻辑器件(可编辑.ppt》由会员分享,可在线阅读,更多相关《【精品】eda技术与vhdl设计(西电版第2章 可编程逻辑器件(可编辑.ppt(168页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDA技术与VHDL设计(西电版)第2章 可编程逻辑器件2 2第2章 可编程逻辑器件 2.1 可编程逻辑器件概述可编程逻辑器件概述2.1.1 从从TTL到可编程逻辑到可编程逻辑按照数字电路逻辑设计的流程,要完成一个逻辑设计,需要以下几个步骤。(1)根据逻辑功能建立真值表。真值表列出了逻辑的所有可能输入以及所有输入组合产生的相关输出。(2)根据真值表建立逻辑函数表达式,并按照设计要求进行化简或者变化。当然,也可以采用卡诺图的形式来进行逻辑表达式的化简或者变化。3 3第2章 可编程逻辑器件(3)根据逻辑函数表达式,画出电路图,确定所需元件,如著名德州仪器的74系列。(4)在面包板或者印制电路板上,
2、用铜线连接分立元件,实现逻辑功能。下面以设计一个四人表决器的简单例子来进一步说明数字电路逻辑设计的流程。第1步:确定输入、输出的逻辑变量,建立真值表。表决器的工作原理是半数同意即代表提案通过。假设输入变量A、B、C、D分别代表4个表决者,输出变量F代表表决结果,建立真值表如表2-1所示。4 4第2章 可编程逻辑器件 表表2-1 四人表决器真值表四人表决器真值表5 5第2章 可编程逻辑器件 图2-1四人表决器卡诺图6 6第2章 可编程逻辑器件 7 7第2章 可编程逻辑器件 8 8第2章 可编程逻辑器件 通过四人表决器的例子,可以来思考逻辑功能实现的共性。从设计流程中可以看出,任何一个组合逻辑函数
3、都可以转换为“与-或”表达式的形式,即任何一个组合逻辑函数都可以由与门和或门组成的二级电路实现(虽然此电路不一定是最佳的,在该例中最后是采用与非-与非的表达式形式,采用与非门实现逻辑功能)。而任意一个时序逻辑电路可由组合逻辑电路加上存储元件构成,也就是任意一个数字电路系统都可以由与门-或门的二级电路结构加上存储元件来实现。那么,把这些与门、或门、存储器组合到一个器件中会怎样呢?假设从与门到或门、或门到存储器有固定的连接会怎样呢?这一系列的思考导致了可编程逻辑器件的产生。9 9第2章 可编程逻辑器件 简单说来,早期的可编程逻辑器件(PLD,ProgrammableLogicDevices)就是一
4、个由与-或阵列构成的可编程结构,又称之为“乘积项”结构,其功能类似于利用ROM(ReadOnlyMemory)来实现组合逻辑函数。10 10第2章 可编程逻辑器件 ROM从组成结构来看,由地址译码器、存储矩阵、输出缓冲器三个部分组成,如图2-3所示。其中,地址译码器能够将n条地址输入线翻译为2n条译码输出线,即字线,每一条字线对应一个n变量的最小项,所以,地址译码器可看做与阵列。存储矩阵用于存放信息,由存储单元排列而成。存储单元可以由二极管构成,也可以由双极性三极管或MOS管构成,每个存储单元存放1位二值信息。存储矩阵可以看做或阵列。这样,一片ROM就是一个与-或阵列的结构,能够实现任意组合逻
5、辑函数。图2-4同样以四人表决器为例来说明如何采用ROM实现组合逻辑功能。11 11第2章 可编程逻辑器件 图2-3ROM组成结构12 12第2章 可编程逻辑器件 图2-4四人表决器ROM阵列图13 13第2章 可编程逻辑器件 同样地,PROM(ProgrammableROM)、EPROM(ultraviolet-ErasablePROM)、EEPROM(ElectricallyErasablePROM)等也都可以用此种方式进行逻辑设计。但采用ROM器件作为可编程逻辑器件,具有较多的缺点,如速度过慢;仅有小部分存储空间被利用;由于不含有触发器,不易于时序逻辑电路的设计等。14 14第2章 可编
6、程逻辑器件 随着半导体工艺的不断完善,集成电路技术的迅猛发展,可编程逻辑器件也在不断地发展中,其组成结构除了最初的乘积项结构外,还衍生出查找表的结构,具体的发展情况及结构将在后面进一步介绍。总之,可编程逻辑器件是指可通过软件手段更改、配置器件内部连接结构和逻辑单元,完成既定设计功能的数字集成电路。可编程逻辑器件如同一张白纸或是一堆积木,可以自由地设计任意一个数字系统。15 15第2章 可编程逻辑器件 2.1.2 逻辑元件和逻辑元件和PLD内部结构电路的符号表示内部结构电路的符号表示在讲解可编程逻辑器件的发展和基本结构前,有必要先了解逻辑元件的表示方式和PLD阵列内部电路的表示方式。在目前流行的
7、EDA软件中,基本是采用ANSI/IEEE-1991标准的逻辑符号。此标准相比ANSI/IEEE-1984标准(目前流行于国内数字电路方面书籍中的所谓我国标准的逻辑符号基本是按照该标准设定的)更加简单形象,采用不同形状的图形来表示逻辑模块的功能。表2-2给出了两种标准所表示的逻辑符号的对照。16 16第2章 可编程逻辑器件 表2-2ANSI/IEEE1991和1984两个版本标准逻辑符号对照表17 17第2章 可编程逻辑器件 采用1991标准更加便于描述PLD的复杂逻辑结构,PLD的内部结构电路符号如图2-5所示。其中图2-5(a)表示接入PLD的输入缓冲电路,代表互补的输入;图2-5(b)显
8、示了PLD中与阵列的表示方式;图2-5(c)显示了PLD中或阵列的表示方式;图2-5(d)是几种不同的阵列连接方式,其中固定连接表示在器件出厂时已有的连接,不能更改,可编程连接方式在器件出厂后可以通过编程随时更改。18 18第2章 可编程逻辑器件 图2-5PLD内部结构电路符号19 19第2章 可编程逻辑器件 2.1.3 PLD的发展历程的发展历程1PLD的诞生及简单的诞生及简单PLD发展阶段发展阶段20世纪70年代初,熔丝编程的PROM和可编程逻辑阵列(PLA,ProgrammableLogicArray)的出现,标志着可编程逻辑器件的诞生。PROM是采用固定与阵列和可编程的或阵列组成的结构
9、形式,如图2-6所示。由于输入变量的增加会引起存储容量的急剧上升,由地址译码器组成的与阵列形式可知,这种增加是按2的幂次增加的。但在实际中需要使用的存储空间却很少,利用率过低,所以PROM不适合用于多输入变量的函数。另一方面,由于PROM不含有触发器,所以只能用于组合逻辑电路。2020第2章 可编程逻辑器件 PLA是由可编程的与阵列和可编程的或阵列组成的,如图2-7所示。从图2-6和图2-7的比较中可以看出,PLA相比于PROM节省了两条乘积项线和两个与门。当PLA的规模增大时,这一优势更加明显,所以说PLA克服了PROM随着输入变量的增加规模迅速增加的问题,利用率较高。但是由于与阵列和或阵列
10、都可编程,对于多输出函数,需要提取公共的与项才能获得最简的与或表达式,这一过程涉及的软件算法比较复杂,处理上比较困难,并且由于两个阵列都可编程,不可避免地使器件运行速度变慢。因此,PLA只能在小规模的逻辑电路上应用。21 21第2章 可编程逻辑器件 图2-6PROM阵列示意图2222第2章 可编程逻辑器件 图2-7PLA阵列示意图2323第2章 可编程逻辑器件 现在这两种器件已不在EDA上继续采用,但PROM作为存储器,PLA作为全定制的ASIC技术还在应用。20世纪70年代末,AMD(超微)公司对PLA进行了改进,推出了可编程阵列逻辑(PAL,ProgrammableArrayLogic)。
11、PAL由可编程的与阵列和固定的或阵列组成。PAL相对于与阵列和或阵列均可编程的PLA而言,简化了软件算法,同时也提高了器件的运行速度。但PAL为适应不同应用的需要,输出I/O结构有不同的形式,一种输出I/O结构就有一种PAL器件,给生产、使用带来极大的不便。2424第2章 可编程逻辑器件 此外,PROM、PLA、PAL都采用熔丝工艺,使其编程具有一次性的特点,不能重复编程。上述可编程逻辑器件,都是乘积项可编程结构,都只能用于组合逻辑电路的设计。对于时序逻辑电路,需要额外加上锁存器、触发器来构成,如PAL加上输出寄存器,就可以实现时序电路的可编程。2.乘积项乘积项PLD发展与成熟阶段发展与成熟阶
12、段20世纪80年代初,美国Lattice(莱迪思)公司在PAL的基础上进行改进,推出了通用阵列逻辑(GAL,GenericArrayLogic)。GAL器件首次采用EEPROM工艺,能够电擦除重复编程,彻底解决了熔丝型可编程器件的一次编程问题,使得修改电路不需要更换硬件。2525第2章 可编程逻辑器件 在编程结构上,GAL沿用PAL的与阵列可编程、或阵列固定的结构,但对PAL的输出I/O结构进行了改进,增加了输出逻辑宏单元(OLMC,OutputLogicMacroCell)。OLMC设有多种组态,可通过配置使得每个I/O引脚成为专用的组合输出、或组合输出双向口、或寄存器输出、或寄存器输出双向
13、口、或专用输入等多种功能。GAL解决了PAL器件一种输出I/O结构就有一种器件的问题,具有通用性,为电路提供了极大的灵活性。另一方面,GAL器件是在PAL的基础上设计的,与许多PAL器件兼容,因此可以替换PAL。2626第2章 可编程逻辑器件 图2-8所示是GAL22V10的功能框图,含有10个OLMC。从图中还可以看到GAL器件的每个或门所包含的与门数量不同,分别是8、10、12、14、16、16、14、12、10、8个。这是GAL器件区别于PAL器件的另一个进步可变乘积项。通过改变每个或门的与门数量,可以更有效地使用逻辑,而尽量减少逻辑门的浪费。2727第2章 可编程逻辑器件 图2-8GA
14、L22V10功能框图2828第2章 可编程逻辑器件 图2-9所示是GAL两种封装形式的引脚结构图。其中,PLCC(PlasticLeadedChipCarrier)是带引线的塑料芯片载体,表面贴装型封装,呈正方形;DIP(DoubleIn-linePackage)是双列直插式封装形式,尺寸较PLCC大。图2-10是单个OLMC结构框图,每一个OLMC都可以被单独编程设置为组合模式或者寄存器模式,可以单独输出组合逻辑的真值或者置反值,也可以输出宏单元寄存器的真值或者置反值,或反馈至阵列作为输入引脚使用。2929第2章 可编程逻辑器件 图2-9GAL两种封装形式的引脚结构图3030第2章 可编程逻
15、辑器件 图2-10GAL22V10的OLMC结构框图31 31第2章 可编程逻辑器件 目前,GAL器件主要应用在对成本十分敏感的中小规模可编程逻辑电路中,越来越多的74系列逻辑电路被GAL取代。新一代的GAL器件以功能灵活、小封装、低成本、重复可编程、应用灵活等优点在数字电路领域仍有重要的地位;且GAL器件也加上了在系统可编程(ISP,InSystemProgrammability)功能,称为ispGAL。所谓ISP功能,是指在用户自己设计的目标系统中或者线路板上,为重新构造设计逻辑而对器件进行编程或反复编程的功能。该特性是由Lattice公司于20世纪80年代末推出的,能够利用器件的工作电压
16、(一般是5V),在器件安装到系统板后,不需要将器件从电路板上卸下,就可对器件直接进行重新编程,改变设计3232第2章 可编程逻辑器件 逻辑。采用ISP技术后,硬件设计变得更加灵活并易于修改,缩短了系统的设计和调试周期,省去了对器件单独编程的环节,也省去了器件编程的设备,简化了目标系统的现场升级和维护工作。20世纪80年代中期,美国Altera公司推出了可擦除可编程逻辑器件(EPLD,ErasablePLD),其基本结构与GAL相似,但集成度要高得多。它采用EPROM(紫外线擦除)或者EEPROM(电擦除)工艺,也获得了广泛应用。3333第2章 可编程逻辑器件 3复杂可编程逻辑器件发展与成熟阶段
17、复杂可编程逻辑器件发展与成熟阶段随着器件集成度的进一步扩大,EPLD进一步发展,许多公司把高密度的EPLD产品称为复杂可编程逻辑(CPLD,ComplexProgrammableLogicDevices)。为提高芯片的利用率和工作频率,CPLD也从内部结构上作了很多改进,功能更加齐全,应用也不断扩展。CPLD能实现的逻辑功能比PAL、GAL有了大幅度的提升,一般可完成设计中较复杂、较高速度的逻辑功能,如接口转换、总线控制等。3434第2章 可编程逻辑器件 20世纪80年代中期,美国Xilinx公司提出现场可编程的概念,并生产出世界第一片现场可编程逻辑门阵列(FPGA,FieldProgramm
18、ableGateArray)。FPGA一般采用静态随机存储器(SRAM,StaticRandomAccessMemory)工艺,编程结构不再使用乘积项的形式,而是采用一种新的结构可编程的查找表(LUT,Look-UpTable)。但由于SRAM掉电后存储内容将会丢失,需要对FPGA器件额外配置存储器件,或者开机后重新编程。FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。3535第2章 可编程逻辑器件 20世纪80年代末,Lattice公司推出了一系列具备在系统可编程能力的CPLD。采用EEP
19、ROM工艺,乘积项结构,使得可编程逻辑器件更加灵活,使用更加广泛。具体CPLD和FPGA器件原理及结构将在下一节中讲述。进入20世纪90年代后,FPGA和CPLD两种结构都得到了飞速的发展,且FPGA已超过了CPLD。目前,可编程逻辑器件的集成逻辑门数量已超过了百万门甚至达到上千万门,并出现了内嵌功能模块,如加法器、乘法器、CPU核、数字信号处理(DSP,DigitalSignalProcessing)核、锁相环(PLL,Phase-LockedLoop)等。同时还出现了可编程片上系统(SOPC,SystemOnaProgrammableChip)。当然,除了数字可编程器件外,模拟可编程器件也
20、进一步发展,受到了重视,Lattice公司就提供有ispPAC系列模拟可编程器件产品。3636第2章 可编程逻辑器件 2.1.4 PLD的分类的分类目前生产PLD的厂商主要有:Lattice、Altera、Xilinx、Actel、Atmel、AMD、Cypress、Intel、Motorola、TI等,其中Lattice、Altera、Xilinx三大生产厂商占据了全球90%左右的份额。各大供应商都能提供具有自身特点的PLD器件。可编程逻辑器件的分类方法较多,下面介绍几种常见的分类方法。3737第2章 可编程逻辑器件 1按集成度分类按集成度分类按照器件集成的逻辑门数量来分,PLD一般可分为简
21、单PLD(或称为低密度PLD)和复杂PLD(或称为高密度PLD)两类。其中,PLA、PAL、GAL属于典型的低密度PLD;而CPLD、FPGA属于高密度PLD。在可编程逻辑器件发展早期,把器件集成逻辑门数量超过500门的称为复杂PLD,或是以GAL22V10作为参照,将集成度大于GAL22V10的认定为复杂PLD。但随着PLD规模的不断扩大,500门早已不是划分界限的标准了。3838第2章 可编程逻辑器件 2按编程结构分类按编程结构分类按照编程的结构,PLD可分为乘积项和查找表两类。其中,PLA、PAL、GAL、CPLD属于乘积项结构,而FPGA属于查找表结构。但随着PLD的发展,一些新的器件
22、,例如Altera公司的MAX和MAX器件,其基本结构采用查找表形式,但由于其存储数据的非易失性,使其编程不需要外部存储器件,这一在用户看来更容易识别的特性使得MAX和MAX被归入CPLD。这种新型器件,既具有FPGA的体系结构和性能,又同时具有CPLD易于编程和瞬时接通的功能,使PLD的应用更加灵活。3939第2章 可编程逻辑器件 3按编程工艺分类按编程工艺分类按照编程工艺,PLD可分为以下五类:(1)熔丝型或者反熔丝型PLD。熔丝型PLD的编程过程就是根据设计的熔丝图文件来烧断对应的熔丝,获得所需的电路。反熔丝型PLD在编程处击穿漏层使两点之间导通,而不是断开,与熔丝型烧断断开正好相反。无
23、论是熔丝型还是反熔丝型PLD,都只能编程一次,因此,采用此种工艺的器件又被称为一次可编程器件(OTP,OneTimeProgramming)。4040第2章 可编程逻辑器件(2)EPROM型PLD。EPROM型PLD采用紫外线对编程数据进行擦除,时间长达数十分钟才能全部抹除,有专门的紫外线EPROM抹除盒(EPROMEraser)。器件上方必须设有石英材质的透光窗,以便让紫外线射入。用紫外线擦除的器件的编程次数可以达到上万次。(3)EEPROM型PLD。EEPROM型PLD采用电擦除,时间快,使用方便,编程次数可达到一百万次左右。GAL器件和大部分CPLD是EEPROM型PLD。(4)SRAM
24、型PLD。SRAM型PLD采用静态随机存储器的编程工艺,可方便快速编程。但掉电后,内容即丢失,再次上电需要重新编程配置。大部分FPGA器件是SRAM型PLD。41 41第2章 可编程逻辑器件(5)Flash型PLD。Flash型PLD由Actel公司推出,目的是为解决反熔丝型器件的一次编程问题。Flash型PLD可多次反复编程,掉电后数据仍然保存。4按编程特性分类按编程特性分类按照编程特性,PLD可分为一次可编程和重复可编程两类。一次可编程的典型产品即采用熔丝和反熔丝工艺的器件,其他基本都是重复可编程的。4242第2章 可编程逻辑器件 2.2 典型典型CPLD和和FPGA器件结构器件结构2.2
25、.1 Altera CPLD 基本结构基本结构虽然各大公司生产的CPLD器件的结构、功能以及称谓有所不同,但其实质均是以乘积项结构为基础的。下面以Altera公司的MAXCPLD系列器件为例,简单讲解CPLD的基本结构。4343第2章 可编程逻辑器件 Altera公司的MAXCPLD系列被称为低成本、低功耗CPLD。1995年,Altera公司推出MAX7000S系列,采用0.5mCMOS工艺和EEPROM编程工艺,支持在系统编程(ISP),其5.0VI/O对工业、军事、通信应用非常重要。2002年,Altera公司又推出MAX3000A系列,针对大批量应用优化了成本,采用0.3mCMOS工艺
26、,同样基于EEPROM编程,支持ISP。2004年,推出MAX系列,其工艺线宽下降至0.18m,突破了传统CPLD乘积项的体系结构,开始采用查找表的结构形式,但由于其数据的非易失性,仍将其归属为CPLD器件。MAX系列的功耗仅有前一代器件的1/10。2007年,又相继推出MAXZ系列和MAXG系列,进一步降低功耗。2010年,Altera公司推出的MAX系列,是目前CPLD的最新系列,具有业界最高密度,并且进一步降低了总功耗和成本。4444第2章 可编程逻辑器件 由于MAX以后的系列采用查找表结构,而MAX7000和3000A系列采用乘积项结构,具有一定的典型性,所以这里以MAX7000和30
27、00A系列为例,介绍CPLD的结构。CPLD器件由逻辑阵列块(LAB,LogicArrayBlock)、可编程互联阵列(PIA,ProgrammableInterconnectArray)以及I/O控制模块三部分组成,如图2-11所示。每个逻辑阵列块(LAB)通常由420个宏单元组成,非常类似于PAL阵列。宏单元结构如图2-12所示,包含三个功能模块:逻辑阵列(LogicArray)、乘积项选择矩阵(Product-TermSelectMatrix)以及可编程寄存器(ProgrammableRegister)。4545第2章 可编程逻辑器件 图2-11MAX7000和3000A系列CPLD结构
28、示意图4646第2章 可编程逻辑器件 图2-12宏单元结构4747第2章 可编程逻辑器件 逻辑阵列完成组合逻辑功能,为每个宏单元提供5个乘积项。乘积项选择矩阵决定了这些乘积项是输出至或门(或者异或门)用于组合逻辑功能;还是作为寄存器的控制输入,如置数、时钟、时钟使能等。宏单元通常还包含两类扩展乘积项:共享逻辑扩展和并行逻辑扩展,用于实现5个乘积项所不能满足的更复杂的逻辑函数。共享逻辑扩展乘积项是由每个宏单元提供一个单独的乘积项,通过一个非门反馈回逻辑阵列中,可以被LAB内任一个宏单元使用或是共享,以便实现复杂的逻辑函数。并行逻辑扩展乘积项是指一些没有被使用的乘积项可以分配到相邻的宏单元去实现快
29、速、复杂的逻辑函数。4848第2章 可编程逻辑器件 PIA能够提供LAB之间以及LAB和I/O之间的数据传输所需要的所有走线。通过PIA,任何LAB的输入和输出都可以连接至其他LAB或者I/O。PIA是一种全局总线形式的可编程通道,其传输延时可预测。CPLD相对于简单PLD的另一改进是加入了单独的I/O控制模块。I/O控制模块允许每个I/O引脚单独被配置为输入、输出或者双向工作方式。所有I/O引脚都有一个三态缓冲器,它的控制信号可以选择全局输出的使能信号或是直接连接到地或电源上。若三态缓冲器的控制端接地,则I/O引脚可作为专用输入引脚使用;若三态缓冲器控制端接电源,则作为输出引脚使用。4949
30、第2章 可编程逻辑器件 2.2.2 从从CPLD到到FPGACPLD相对于简单PLD器件的最大进步在于它能够在单个器件中容纳大量的逻辑。理论上,可以不断在CPLD中增加逻辑阵列块(LAB)的数量。但随着LAB数量的增加,需要额外的PIA布线来实现这些LAB之间以及LAB和I/O之间的互联。这种连线规模的增长是呈指数级的。限于CPLD器件的面积约束,全局布线结构的CPLD内部密度也有限。但是如果LAB以更好的组织方式进行排列,而不是围绕在布线互联周围,情况会如何呢?5050第2章 可编程逻辑器件 解决上面问题的方法是采用行列布线结构(Row&ColoumnRouting),把LAB排列在网格中,
31、正如现场可编程逻辑门阵列(FPGA)的名称一样,将其排列在阵列中。图2-13显示了CPLD和FPGA中LAB的排列架构。51 51第2章 可编程逻辑器件 图2-13CPLD与FPGA架构对比示意图5252第2章 可编程逻辑器件 FPGA没有采用中心全局互联的形式,而是把布线放置于LAB的空格上。布线可以跨过器件的整个长度和宽度,或者只覆盖几个LAB,如图2-14所示。FPGA的布线可以分为两类:本地互联和行列互联。本地互联可以直接连接邻近的LAB;行列互联可以跨过一定数量的LAB或者是整个器件。LAB和I/O可以连接到本地互联,实现高速本地操作;也可以连接到行列互联,向器件的其他部分发送数据。
32、这种连接方式相当灵活简单,随着LAB的增长,布线通道数量仅呈线性增长就可以连接所有的器件资源。5353第2章 可编程逻辑器件 图2-14FPGA中的LAB互联示意图5454第2章 可编程逻辑器件 2.2.3 Altera FPGA器件结构器件结构各大公司的FPGA器件型号多种多样,这里仅以Altera公司的器件为例对FPGA器件进行介绍,了解其基本结构和功能。Altera公司的FPGA器件系列按推出的先后顺序有FLEX系列、APEX系列、ACEX系列、Stratix系列、Cyclone系列和Arria系列。现在的主流产品是Stratix系列、Cyclone系列以及Arria系列。Cyclone
33、系列是低成本FPGA,主要满足低功耗、低成本设计的需求;Arria系列是中端FPGA;Stratix系列是高端FPGA,性能最好,逻辑密度最高,带宽最高。5555第2章 可编程逻辑器件 下面以常用的低成本、低功耗Cyclone系列为例讲述。Cyclone系列从2002年推出第一代以来,到2011年,已经推出了5代,其各代推出时间、工艺技术如表2-3所示。Cyclone系列是第一款低成本FPGA,工作电压为1.5V,具有多达20060个逻辑单元(LE,LogicElement)和288KbRAM。Cyclone系列扩展了密度,使之最多达到68416个LE和1.1Mb的嵌入式存储器。Cyclone
34、系列具有最多200k个LE、8Mb的存储器,采用台积电(TSMC,TaiwanSemiconductorManufacturingCompany)的低功耗工艺技术,静态功耗不到0.25W。Cyclone可提供150000个LE,与前一代相比,总功耗降低了25%,具有8个集成3.125Gb/s收发器。Cyclone最大可提供301k个LE,实现了目前业界最低的系统成本和功耗,总功耗比前一代降低了40%,具有集成的5Gb/s收发器,具有基于ARM的硬核处理器系统(HPS,HardProcessorSystem)的SoCFPGA型号。5656第2章 可编程逻辑器件 表表2-3 Cyclone各代系列
35、特性各代系列特性5757第2章 可编程逻辑器件 EDA综合实验箱(相关介绍及使用说明请参见EDA技术与VHDL设计实验指导)采用的FPGA器件型号是EP3C10E144C8,从命名中可以看出,属于Cyclone系列。Cyclone系列器件的具体命名规则见图2-15。器件型号还有可选后缀N或ES,其中N代表无铅组装,ES代表工程样片。Cyclone系列器件主要参数见表2-4,支持I/O的电压电平包括1.2V、1.5V、1.8V、2.5V和3.3V。图2-15和表2-4只代表Cyclone系列的命名规则和主要参数,其他系列产品、其他公司产品请读者参考相应器件的数据手册。5858第2章 可编程逻辑器
36、件 图2-15Cyclone系列器件命名规则5959第2章 可编程逻辑器件 表表2-4 Cyclone系列器件主要参数系列器件主要参数6060第2章 可编程逻辑器件 Cyclone系列FPGA主要由LAB、嵌入式存储器、硬件乘法器、锁相环(PLL)、时钟网络和I/O单元构成,如图2-16所示。FPGA也是由LAB构成的,但和CPLD由宏单元构成LAB不同,FPGA是由逻辑单元(LE)构成LAB的。1逻辑单元逻辑单元(LE)每一个LAB包含16个LE,每个LE主要由4输入查找表(LUT,Look-UpTable)、进位逻辑、寄存器三部分组成,如图2-17所示。图2-18详细地显示了LE的结构,包
37、括:LUT、可编程寄存器(ProgrammableRegister)、进位链连接(CarryChainConnection)、寄存器链连接(RegisterChainConnection)等。61 61第2章 可编程逻辑器件 图2-16Cyclone器件平面结构6262第2章 可编程逻辑器件 图2-17LE主要结构示意图6363第2章 可编程逻辑器件 图2-18Cyclone系列LE详细结构图6464第2章 可编程逻辑器件 LUT替代了CPLD中的乘积项阵列,采用静态随机存储器(SRAM)工艺来实现组合逻辑的乘积和。大多数器件使用4输入LUT,能够实现4变量的任意函数。当然,新的器件可以提供输
38、入数量更大的LUT,以便实现复杂的逻辑功能。LUT由一系列级联复用器构成,其输入被用做选择线,结构如图2-19所示。假设需要完成的组合逻辑函数式是,即最小项中有5项是“1”,剩下均为“0”,所以在编程级的RAM中存储的数据如图2-19所示,即可实现该逻辑函数。6565第2章 可编程逻辑器件 图2-19LUT结构6666第2章 可编程逻辑器件 LE模块可以通过旁路掉可编程寄存器,产生严格的组合逻辑功能;也可以从可编程寄存器反馈回LUT;还可以完全旁路LUT,只使用可编程寄存器用于存储或者同步。LE与宏单元的另一个不同之处是使用了进位逻辑和寄存器链布线。LE含有专门的进位逻辑,LAB中含有寄存器链
39、布线。进位比特可以来自LAB中的其他LE,也可以来自器件中的其他LAB;产生的进位比特可以输出到其他LE或者器件互连中。Cyclone的LE可以在两种操作模式下工作:普通模式和算术模式。在不同的工作模式下,LE的内部结构和互连之间有些差异,图2-20和图2-21分别是普通模式和算术模式下的结构和连接图。6767第2章 可编程逻辑器件 图2-20CycloneLE普通模式6868第2章 可编程逻辑器件 图2-21CycloneLE算术模式6969第2章 可编程逻辑器件 普通模式LE适合于通用的逻辑应用和组合逻辑的实现。在该模式下,来自LAB局部互连的4个输入将作为一个4输入、1输出的LUT的输入
40、端口。可以选择进位信号cin(carry-in)或者data3信号作为LUT中的一个输入信号。普通模式下的LE支持寄存器打包与寄存器反馈。算术模式LE可以更好地实现加法器、计数器、累加器和比较器。在算术模式下,单个LE有两个3输入的LUT,可以被配置成一位全加器和基本的进位链结构。算术模式下的LE同样支持寄存器打包与寄存器反馈。7070第2章 可编程逻辑器件 虽然LE要比CPLD的宏单元在设计上更加灵活,但由于LUT一般是4输入,所以对于较多输入的函数,还需要进行LE的级联或者反馈才能实现。在某些更高级的FPGA器件(如:CycloneSE、CycloneST)中使用了更高级的模块来替代LE,
41、这就是自适应逻辑模块(ALM,AdaptiveLogicModule),结构示意图见图2-22。71 71第2章 可编程逻辑器件 图2-22ALM模块结构示意图7272第2章 可编程逻辑器件 ALM中的LUT是自适应LUT(ALUT),可以按照不同的方式来对输入进行划分。例如,划分为一个3输入和一个5输入;或者划分为一个7输入和一个1输入,以支持7变量的复杂逻辑;或者划分为两个4输入,使ALUT向后兼容标准LE。其次,ALM还具有内置硬件加法器模块,可以完成标准算术操作,不需要在LUT中生成这些数学函数,简化了LUT的逻辑,提高了性能。最后,ALM一般包括两个输出寄存器,以提供更多的连接选择。
42、7373第2章 可编程逻辑器件 2存储器模块存储器模块Cyclone器件中的嵌入式存储器模块由M9K模块构成,每个M9K模块(类似的模块还有M4K、M10K、M20K、M144K等,读者可自行查阅相关数据手册)含有8192bit。存储器模块可以被配置为单端口或双端口RAM、可编程ROM、移位寄存器、FIFO缓冲。可以将存储器初始化为任意模式,并进行测试,这对设计周期非常有用。7474第2章 可编程逻辑器件 3嵌入式乘法器嵌入式乘法器嵌入式乘法器是高性能逻辑模块,能够完成乘法、加法和累加操作,可以替代LUT逻辑来提高设计中的算术性能,对于DSP设计非常有用。Cyclone系列的嵌入式乘法器具有以
43、下几个特点:(1)可以实现99或者1818乘法器。(2)乘法器的输入可以选择是寄存的还是非寄存的(即组合输入/输出)。(3)可以与FPGA中的其他资源灵活地构成适合DSP算法的MAC(乘积单元)。7575第2章 可编程逻辑器件 4时钟网络和锁相环时钟网络和锁相环Cyclone能够提供高达20个全局时钟(GCLKs,GlobalCLKs),器件中的所有资源,包括I/O单元、LAB、嵌入式乘积项、M9K存储模块都可以使用GCLKs作为时钟源。使用GCLKs有助于减少最低时钟偏差和延时。GCLKs在没有使用时,还可以关断,以节省功耗。在Cyclone中嵌入了24个独立的锁相环(PLL)。每一个锁相环
44、能够产生5个输出时钟(C0C4),其中两个输出时钟能够通过时钟控制模块驱动GCLKs,如图2-23所示。PLL可以用来调整时钟信号的波形、频率和相位。7676第2章 可编程逻辑器件 图2-23时钟控制7777第2章 可编程逻辑器件 5I/O模块模块FPGA中的I/O模块通常被称为I/O单元。除基本的输入、输出以及双向信号外,I/O引脚还支持多种I/O标准,如差分的I/O标准、低电压高速标准等。某些器件的I/O单元还含有钳位二极管,使能后可以用做PCI总线的I/O。根据设计需要,器件中未使用的I/O引脚可以被设置成为开漏或者三态。7878第2章 可编程逻辑器件 典型I/O单元基本逻辑结构见图2-
45、24,主要由输入通道、输出通道和输出使能控制三部分组成。输入通道采集输入寄存器输入引脚上的到达数据,或者通过布线通道把输入直接连接至器件中的逻辑阵列(LogicArray)。输出通道含有用于同步逻辑或者存储功能的输出寄存器。当然,如果需要,也可以旁路此寄存器。输出使能控制用于控制I/O引脚是否被配置为双向或者其他功能。7979第2章 可编程逻辑器件 图2-24典型I/O单元基本结构8080第2章 可编程逻辑器件 2.2.4 CPLD与与FPGA对比对比CPLD和FPGA都是目前PLD的主流产品,都是“可反复编程的逻辑器件”,但二者在结构、技术上存在一些差别,具体差异见表2-5。当然,对于部分新
46、器件也有例外,如上面提到的MAX和MAX系列,其实现逻辑的方式采用查找表,但划归于CPLD。正因为表2-5列出的差异,导致了CPLD和FPGA在应用中也具有各自的特性:(1)CPLD的连续式布线结构决定了它的时序延时是可预测的;而FPGA的分段式布线结构决定了其延时的不可预测性。81 81第2章 可编程逻辑器件(2)CPLD采用EPROM、EEPROM或者Flash结构存储编程信息或数据,优点是即使断电后,数据也不会丢失,称为非易失性;FPGA基于SRAM编程,断电数据即丢失,需要再次上电时,将数据从外部重新写入SRAM中,称为易失性。(3)CPLD的非易失性决定了它是单机器件,在编程和正常工
47、作时,不需要额外的硬件;FPGA的易失性决定了它需要额外的外部存储器件,会占用电路板面积,增加电路板走线和功耗等,使用上较CPLD复杂。(4)CPLD性能适中,功耗较低;FPGA速率较高,通过优化措施其功耗几乎与CPLD相当,且内建高性能的硬宏功能,如存储器模块、DSP模块、收发器模块等。8282第2章 可编程逻辑器件(5)CPLD偏向于简单的控制应用及组合逻辑;FPGA偏向于较复杂且高速的控制应用以及数据处理。在进行项目开发时,应选择合适的可编程逻辑器件,需要考虑的因素较多,但对器件的特性进行对比是良好的开始。通过经常查看器件手册,可以了解器件的特性和不足。另一方面,尽管FPGA和CPLD在
48、硬件结构和应用上有一定的差异,但其设计流程是相似的,使用EDA工具的设计方法也没有太大的差别。8383第2章 可编程逻辑器件 表表2-5 CPLD与与FPGA的对比的对比8484第2章 可编程逻辑器件 2.3 CPLD和和FPGA的编程与配置的编程与配置2.3.1 CPLD和和FPGA的编程与配置概述的编程与配置概述1.编程和配置的概念编程和配置的概念大规模可编程逻辑器件在利用EDA开发工具设计好应用电路后,需要将电路写入(或称为下载)到器件中。根据器件的结构不同,把基于EPROM、EEPROM或者Flash技术的CPLD在系统下载称为编程(Programmable),而把基于SRAM查找表结
49、构的FPGA在系统下载称为配置(Configure)。另一方面,由于FPGA器件断电后数据即丢失,需要有专门的存储器来存储数据,以便下次上电时能够直接从存储器获得8585第2章 可编程逻辑器件 数据写入,该存储器被称为配置存储器(或称为专用配置器件),把电路写入专用配置器件的过程仍然称为配置。CPLD的编程主要考虑编程下载接口及连接方式,而FPGA的配置除了要考虑下载接口和连接外,还要考虑配置器件的问题。8686第2章 可编程逻辑器件 2下载电缆下载电缆利用下载电缆可以完成对CPLD、FPGA或者存储器件的编程和配置。在原型设计阶段,能够快速地将设计或修改后的设计直接下载到器件中,完成设计的快
50、速替代和验证。按照使用计算机的通信接口来划分,下载电缆有串口下载、并口下载、USB接口下载等方式。不同公司的下载电缆有所不同,但都可基于计算机的通信接口来划分,如lattice公司的USBPC-Flywire、并行PC连接-Flywire,Altera公司的ByteBlaster(并口下载)、USB-Blaster、BitBlaster(串口下载)等,Xilinx公司的PlatformCableUSB、ParallelCable等。下面以Altera公司的下载电缆为例详细讲述下载电缆的编程与配置。8787第2章 可编程逻辑器件 Altera公司下载电缆主要包括:ByteBlaster(并口下载