版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2讲可编程逻辑器件1、可编程逻辑器件概述2、基于乘积项技术的PLD3、基于查找表技术的PLD4、CPLD和FPGA的比较
5、Altera公司产品简介6、
FPGA和CPLD的开发应用选择可编程逻辑器件概述PLD(ProgrammableLogicDevice)是实现数字系统的理想器件。在采用PLD器件设计逻辑电路时,设计者需要利用PLD器件开发软、硬件平台。PLD器件开发软件是根据设计要求,可自动进行逻辑电路设计输入、编译、逻辑划分、优化和模拟,得到一个满足设计要求的PLD编程数据。所设计的PLD器件逻辑功能可以进行模拟运行,确定无误后一般要将PLD编程数据下载到编程器,由编程器可将该编程数据写入PLD中。可编程逻辑器件的演变过程如下:1)20世纪70年代,熔丝编程的PROM和可编程逻辑阵列PLA(ProgrammableLogicArray)器件是最早的可编程逻辑器件。2)20世纪70年代末,AMD公司开始推出可编程逻辑阵列PAL(ProgrammableArrayLogic)器件。3)20世纪80年代初,Lattice公司发明可擦写的,比PAL使用更灵活的通用阵列逻辑GAL(GenericArrayLogic)器件,一般认为它是第二代PLD器件。可编程逻辑器件概述4)20世纪80年代中期,Xilinx公司提出现场可编程概念,同时生产了世界上第一片现场可编程门阵列FPGA(FieldProgrammableGareArray)器件,同一时期,Altera公司推出EPLD(ErasableProgrammableLogicDevice)器件,较GAL器件有更高的集成度,可以用紫外线或电擦除。5)20世纪90年代末,Lattice公司又提出了在系统可编程技术ISP(InSystemProgrammable),并且推出了一系列具备在系统可编程能力的器件CPLD(ComplicatedProgrammableLogicDevice)。可编程逻辑器件的演变过程如下:可编程逻辑器件概述 目前生产PLD的厂家有Altera、Xilinx、Actel、Atemel、AMD、AT&T、Cypress、Intel、Motorola、Quicklogic、TI(TexasInstrument)等。常见的PLD产品有:PROM、EPROM、EEPROM、PLA、FPLA、PAL、GAL、CPLD、EPLD、EEPLD、HDPLD、FPGA、pLSI、ispLSI、ispGAL和ispGDS等。PLD的分类方法较多,也不统一,下面简单介绍4种。可编程逻辑器件概述从结构的复杂程度上一般可将PLD分为简单PLD和复杂PLD(CPLD),或分为低密度PLD和高密度PLD(HDPLD)。通常,当PLD中的等效门数超过500门时,则认为它是高密度PLD。传统的PAL和GAL是典型的低密度PLD,其余如EPLD、FPGA和pLSI/ispLSI则称为HDPLD或CPLD。
可编程逻辑器件概述
1.从结构的复杂程度分类从互连结构上可将PLD分为确定型和统计型两类。确定型PLD提供的互连结构每次用相同的互连线实现布线,所以,这类PLD的定时特性常常可以从数据手册上查阅而事先确定。这类PLD是由PROM结构演变而来的,目前除了FPGA器件外,基本上都属于这一类结构。统计型结构是指设计系统每次执行相同的功能,却能给出不同的布线模式,一般无法确切地预知线路的延时。所以,设计系统必须允许设计者提出约束条件,如关键路径的延时和关联信号的延时差等。这类器件的典型代表是FPGA系列。可编程逻辑器件概述
2.从互连结构上分类从可编程特性上可将PLD分为一次可编程和重复可编程两类。一次可编程的典型产品是PROM、PAL和熔丝型FPGA,其他大多是重复可编程的。其中,用紫外线擦除的产品的编程次数一般在几十次的量级,采用电擦除方式的产品的编程的次数稍多些,采用E2CMOS工艺的产品,擦写次数可达上千次,而采用SRAM(静态随机存取存储器)结构,则被认为可实现无限次的编程。可编程逻辑器件概述
3.从可编程特性上分类最早的PLD器件(如PAL)大多是TTL工艺,但后来的PLD器件(如GAL、EPLD、FPGA及pLSI/ISP器件)都采用MOS工艺(如NMOS、CMOS、E2CMOS等)。目前,一般有下列5种编程元件:①熔丝型开关(一次可编程,要求大电流);②可编程低阻电路元件(多次可编程,要求中电压);③EPROM的编程元件(需要有石英窗口,紫外线擦除);④EEPROM的编程元件;⑤基于SRAM的编程元件。可编程逻辑器件概述
4.从可编程器件的编程元件上分类基于乘积项技术的PLD有着大致相同的基本结构,而根据与阵列和或阵列是否可编程,分为三种基本类型:①
与阵列固定,或阵列可编程②
与阵列、或阵列均可编程③
与阵列可编程,或阵列固定基于乘积项技术的PLD①与阵列固定,或阵列可编程ABCO1O2O3
这一类型的代表器件是可编程只读存储器PROM(ProgrammableReadOnlyMemory)。如右图是一个8×3阵列结构。因为与阵列固定,输入信号的每个组合都固定连接,所以与门阵列为全译码阵列。若利用PROM来实现逻辑函数,则会随着输入信号的增加,使得芯片面积变大,利用率和工作速度降低等情况发生。基于乘积项技术的PLDABCO1O2O3②与阵列、或阵列均可编程
这一类型的代表器件是可编程逻辑阵列(ProgrammableLogicArray,PLA),在可编程逻辑器件中,其灵活性最高。由于它具有与或阵列均能编程的特点,在实现函数时,只需要形成所需的乘积项,使阵列规模比输入数相同的与阵列固定、或阵列可编程的PROM小得多。它是将ROM地址译码器的全译码改为部分译码,使得译码器矩阵大大压缩。这有利于提高器件的利用率,节省硅片的面积。基于乘积项技术的PLDABCO1O2O3③与阵列可编程,或阵列固定
这一类型的代表器件是可编程逻辑(ProgrammableArrayLogic,PAL)和通用阵列逻辑(GenericArrayLogic,GAL)。这种结构中,或阵列固定若干个乘积项输出,如右图,每个输出对应的乘积想有两个。在典型的器件中,乘积项可达8个,在高密度PLD中乘积项可高达几十个。基于乘积项技术的PLD基于乘积项技术的PLD
这种PLD由三种基本单元组成:宏单元(MacroCell)、可编程连线(PIA)和I/O控制块。宏单元是PLD的基本结构,由它来实现基本的逻辑功能。可编程连线负责信号传递,连接所有的宏单元。I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出、三态输出等。基于乘积项技术的PLD基于乘积项的PLD内部结构I/O单元逻辑阵列模块可编程连线基于乘积项技术的PLD宏单元内部结构乘积项逻辑阵列乘积项选择矩阵可编程触发器MAX7000系列的单个宏单元结构
CPLD的结构与工作原理
MAX7128S的结构
逻辑阵列块(LAB)CPLD的结构与工作原理
宏单元全局时钟信号全局时钟信号由高电平有效的时钟信号使能
用乘积项实现一个阵列时钟逻辑阵列MAX7000系列中的宏单元乘积项选择矩阵可编程寄存器
CPLD的结构与工作原理
扩展乘积项
共享扩展乘积项结构
CPLD的结构与工作原理
扩展乘积项并联扩展项馈送方式
共享扩展项
并联扩展项
可编程连线阵列(PIA)图2-22PIA信号布线到LAB的方式
CPLD的结构与工作原理
I/O控制块EPM7128S器件的I/O控制块
基于查找表技术(Look-Uptable)的PLD芯片,我们也可以称之FPGA,查找表简称为LUT,本质上就是一个RAM。目前FPGA中多用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16×1的RAM。当用户通过原理图或HDL语言描述一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把结果事先写入RAM,这样每输入一个信号进行逻辑运算就相当于输入一个地址进行查表,找出地址对应的内容,然后输出即可。基于查找表技术的PLD基于查找表技术的PLD下图是一个4输入与门的例子:查找表逻辑结构FPGA查找表单元
FPGA的结构与工作原理
FPGA查找表单元内部结构
FPGA的结构与工作原理
Cyclone系列器件的结构与原理CycloneLE结构图
Cyclone系列器件的结构与原理CycloneLE普通模式
Cyclone系列器件的结构与原理CycloneLE动态算术模式
Cyclone系列器件的结构与原理CycloneLAB结构
Cyclone系列器件的结构与原理LAB阵列
Cyclone系列器件的结构与原理LAB控制信号生成的逻辑图
Cyclone系列器件的结构与原理
快速进位选择链
LUT链和寄存器链的使用
Cyclone系列器件的结构与原理FPGA的结构与工作原理
LVDS连接
Cyclone系列器件的结构与原理FPGA的结构与工作原理
FPGA是一种高密度的可编程逻辑器件。CPLD是由GAL发展起来的,其主体结构仍是与或阵列。两种可编程芯片的比较:1.结构
FPGA器件在结构上,由逻辑功能块排列为阵列,并有可编程的内部连线连接这些功能块来实现一定的逻辑功能,CPLD是将多个可编程阵列逻辑(PAL)器件集成到一个芯片,具有类似PAL的结构。2.集成度
FPGA可以达到比CPLD更高的集成度,同时也具有更复杂的布线结构和逻辑实现。3.适合结构
FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。4.编程
CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程,在编程上FPGA比CPLD具有更大的灵活性。CPLD与FPGA的比较CPLD与FPGA的比较5.功率消耗
一般情况下,CPLD功耗要比FPGA大,且集成度越高越明显。6.速度
CPLD优于FPGA。由于FPGA是门级编程,且CLB之间是采用分布式互连;而CPLD是逻辑块级编程,且其逻辑块互连是集总式的。因此,CPLD比FPGA有较高的速度和较大的时间可预测性,产品可以给出管脚到管脚的最大延迟时间。7.编程方式
目前的CPLD主要是基于EEPROM或FLASH存储器编程,编程次数达1万次。优点是在系统断电后,编程信息不丢失。CPLD又可分为在编程器上的编程和在系统编程(ISP)两种。ISP器件的优点是不需要编程器,可先将器件焊于印制板,再经过编程电缆进行编程,编程、调试和维护都很方便。FPGA大部分是基于SRAM编程,其缺点是编程数据信息在系统断电时易丢失。其优点是可进行任意次数的编程,并可在工作中快速编程,实现板级和系统级的动态配置,因此可称为在线重配置的PLD或可重配置硬件。8.使用方便性
CPLD比FPGA使用方便。CPLD的编程,无需外部存储芯片,使用简单、保密性好。而FPGA的编程信息需存放在外部的存储器上,使用方法复杂、保密性差。CPLD与FPGA的比较Altera低成本/低功耗FPGAsAltera中端FPGAsAltera高端FPGAsAltera低成本CPLDsFPGA和CPLD的开发应用选择
1.器件的逻辑资源量的选择
开发一个项目,首先要考虑的是所选的器件的逻辑资源量是否满足本系统的要求。由于大规模的PLD器件的应用,大都是先将其安装在电路板上后再设计其逻辑功能,而且在实现调试前很难准确确定芯片可能耗费的资源,考虑到系统设计完成后,有可能要增加某些新功能,以及后期的硬件升级可能性,因此,适当估测一下功能资源以确定使用什么样的器件,对于提高产品的性能价格比是有好处的。Lattice、Altera、Xinlinx三家PLD主流公司的产品都有HDPLD的特性,且有多种系列产品供选用。相对而言,Lattice的高密度产品少些,密度也较小。由于不同的PLD公司在其产品的数据手册中描述芯片逻辑资源的依据和基准不一致,所以有很大出入。例如对于ispLSI1032E,Lattice给出的资源是6000门,而对EPM7128S,Altera给出的资源是2500门,但实际上这两种器件的逻辑资源是基本一样的。在逻辑资源中,我们不妨设定一个基准。这里以比较常用的ispLSI1032E为基准,来了解其他公司的器件的规模。大家都知道,GAL16V8有8个逻辑宏单元,每个宏单元中有一个D触发器,它们对应数个逻辑门,可以设计一个7位二进制计数器或一个四位加法器等;FPGA和CPLD的开发应用选择而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倍。FPGA和CPLD的开发应用选择
以上的逻辑门估测仅对CPLD,对于FPGA的估测应考虑到其结构特点。由于FPGA的逻辑颗粒比较小,即其可布线区域是散布在所有的宏单元之间的,因此,FPGA对于相同的宏单元数将比CPLD对应更多的逻辑门数。以Altera的EPF10PC84为例,它有576个宏单元,若以7128S为2500个逻辑门计算,则它应约有1万个逻辑门,但若以1032E为基准则应有2.7万门;再考虑其逻辑结构的特点,则应约有3.5万门。当然,这只是一般意义上的估测,器件的逻辑门数只有与具体的设计内容相结合才有意义。FPGA和CPLD的开发应用选择
实际开发中,逻辑资源的占用情况涉及的因素是很多的,大致有:①硬件描述语言的选择、描述风格的选择,以及HDL综合器的选择。这些内容涉及的问题较多,在此不宜展开。②综合和适配开关的选择。如选择速度优化,则将耗用更多的资源,而若选择资源优化,则反之。在EDA工具上还有许多其他的优化选择开关,都将直接影响逻辑资源的利用率。③逻辑功能单元的性质和实现方法。一般情况,许多组合电路比时序电路占用的逻辑资源要大,如并行进位的加法器、比较器,以及多路选择器。FPGA和CPLD的开发应用选择
2.芯片速度的选择随着可编程逻辑器件集成技术的不断提高,FPGA和CPLD的工作速度也不断提高,pintopin延时已达ns级,在一般使用中,器件的工作频率已足够了。目前,Altera和Xilinx公司的器件标称工作频率最高都可超过300MHz。具体设计中应对芯片速度的选择有一综合考虑,并不是速度越高越好。芯片速度的选择应与所设计的系统的最高工作速度相一致。使用了速度过高的器件将加大电路板设计的难度。这是因为器件的高速性能越好,则对外界微小毛刺信号的反映灵敏性越好,若电路处理不当,或编程前的配置选择不当,极易使系统处于不稳定的工作状态,其中包括输入引脚端的所谓“glitch"干扰。在单片机系统中,电路板的布线要求并不严格,一般的毛刺信号干扰不会导致系统的不稳定,但对于即使最一般速度的FPGA/CPLD,这种干扰也会引起不良后果。FPGA和CPLD的开发应用选择
3.器件功耗的选择由于在线编程的需要,CPLD的工作电压多为5V,而FPGA的工作电压的流行趋势是越来越低,3.3V和2.5V的低工作电压的FPGA的使用已十分普遍。因此,就低功耗、高集成度方面,FPGA具有绝对的优势。相对而言,Xilinx公司的器件的性能较稳定,功耗较小,用户I/O利用率高。例如,XC3000系列器件一般只用两个电源、两个地,而密度大体相当的Altera器件可能有8个电源、8个地。FPGA和CPLD的开发应用选择
4.FPGA/CPLD的选择
FPGA/GPLD的选择主要看开发项目本身的需要,对于普通规模且产量不是很大的产品项目,通常使用CPLD比较好。这是因为:
(1)在中小规模范围,CPLD价格较便宜,能直接用于系统。各系列的CPLD器件的逻辑规模覆盖面属中小规模(1000~50000门),有很宽的可选范围,上市速度快,市场风险小。
(2)开发CPLD的EDA软件比较容易得到,其中不少PLD公司将有条件地提供免费软件。如Lattice的ispExpert、Synaio,Vantis的DesignDirector,Altera的Baseline,Xilinx的Webpack等。FPGA和CPLD的开发应用选择
(3)CPLD的结构大多为E2PROM或FlashROM形式,编程后即可固定下载的逻辑功能,使用方便,电路简单。
(4)目前最常用的CPLD多为在系统可编程的硬件器件,编程方式极为便捷。这一优势能保证所设计的电路系统随时可通过各种方式进行硬件修改和硬件升级,且有良好的器件加密功能。Lattice公司所有的ispLSI系列、Altera公司的7000S和9000系列、Xilinx公司的XC9500系列的CPLD都拥有这些优势。FPGA和CPLD的开发应用选择
(5)CPLD中有专门的布线区和许多块,无论实现什么样的逻辑功能,或采用怎样的布线方式,引脚至引脚间的信号延时几乎是固定的,与逻辑设计无关。这种特性使得设计调试比较简单,逻辑设计中的毛刺现象比较容易处理,廉价的CPLD就能获得比较高速的性能。对于大规模的逻辑设计、ASIC设计或单片系统设计,则多采用FPGA。从逻辑规模上讲,FPGA覆盖了大中规模范围,逻辑门数从5000~2000000门。目前国际上FPGA的最大供应商是美国的Xilinx公司和Altera公司。FPGA保存逻辑功能的物理结构多为SRAM型,即掉电后将丢失原有的逻辑信息。所以在实用中需要为FPGA芯片配置一个专用ROM,需将设计好的逻辑信息烧录于此ROM中。电路一旦上电,FPGA就能自动从ROM中读取逻辑信息。FPGA的使用途径主要有4个方面:FPGA和CPLD的开发应用选择
(1)直接使用。即如CPLD那样直接用于产品的电路系统板上。由于在大规模和超大规模逻辑资源、低功耗与价格比值方面,FPGA比CPLD有更大的优势。但由于FPGA通常必须附带ROM以保存软信息,且Altera
和Xilinx的原供应商只能提供一次性ROM,所以在规模不是很大的情况下,其电路的复杂性和价格方面略逊于CPLD,而且对于ROM的编程,要求有一台能对FPGA的配置ROM进行烧录的编程器。有必要时,也可以使用能进行多次编程配置的ROM。Atmel生产的为Xilinx和Altera的FPGA配置的兼容ROM,就有一万次的烧录周期。此外,用户也能用单片机系统照配置ROM的时序来完成配置ROM的功能。当然,也能使用诸如ACTEL的不需要配置ROM的一次性FPGA。FPGA和CPLD的开发应用选择
(2)间接使用。其方法是首先利用FPGA完成系统整机的设计,包括最后的电路板的定型,然后将充分检证的成功的设计软件,如VHDL程序,交付原供产商进行相同封装形式的掩模设计。这个过程类似于8051的掩模生产。这样获得的FPGA无须配置ROM,单片成本要低许多。FPGA和CPLD的开发应用选择
(3)硬件仿真。由于FPGA是SRAM结构,且能提供庞大的逻辑资源,因而适用于作各种逻辑设计的仿真器件。从这个意义上讲,FPGA本身即为开发系统的一部分。FPGA器件能用作各种电路系统中不同规模逻辑芯片功能的实用性仿真,一旦仿真通过,就能为系统配以相适应的逻辑器件。在仿真过程中,可以通过下载线直接将逻辑设计的输出文件通过计算机和下载适配电路配置进FPGA器件中,而不必使用配置ROM和专用编程器。FPGA和CPLD的开发应用选择
(4)专用集成电路ASIC设计仿真。对产品产量特别大,需要专用的集成电路,或是单片系统的设计,如CPU及各种单片机的设计,除了使用功能强大的EDA软件进行设计和仿真外,有时还有必要使用FPGA对设计进行硬件仿真测试,以便最后确认整个设计的可行性。最后的器件将是严格遵循原设计,适用于特定功能的专用集成电路。这个转换过程需利用VHDL或Verilag语言来完成。FPGA和CPLD的开发应用选择
如果需要,在一个系统中,可根据不同的电路采用不同的器件,充分利用各种器件的优势。例如,利用Altera和Lattice的器件实现要求等延时和多输入的场合及加密功能,用Altera和Xilinx器件实现大规模电路,用Xilinx器件实现时序较多或相位差要求数值较小(小于一个逻辑单元延时时间)的设计等。这样可提高器件的利用率,降低设计成本,提高系统综合性能。FPGA和CPLD的开发应用选择
5.FPGA和CPLD封装的选择
FPGA和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论