可编程逻辑器件和VHDL设计技术(二)北京理工大学雷达技术研究所陈禾ASIC的分类ASIC的分类I/O焊盘布线通道块单元行单元VDDVSSVDDVSSASIC的分类•可编程逻辑器件是ASIC的一个重要分支。•与其他几类ASIC不同,它是一种已完成了全部工艺制造、可直接从市场上购得的产品,用户只要对它编程就可实现所需要的电路功能.所以称它为可编程ASIC。–前面三种方法设计的ASIC芯片都必须到IC厂家去加工制造才能完成,设计制造周期长,且一旦有了错误,需重新修改设计和制造,成本和时间大大增加。–采用可编程逻辑器件,设计人员在实验室即可设计和制造出芯片,而且可反复编程,修改错误,这就大大地方便了设计者。ASIC的分类电子系统的设计方法可编程逻辑器件的发展历程及概述•随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,昀好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用昀广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。PLD的发展历程及概述•可编程ASIC包括一个未配置的逻辑单元阵列,此阵列可以编程事先所需的逻辑功能,并通过可编程互连接到所要求的输入、输出。这些逻辑单元可以是门、反相器、触发器或较大的宏单元,并且有它自身的可编程局部互连系统。可编程ASIC有许多不同的分类方法,主要有四种。PLD的发展历程及概述•互连特性:确定型和统计型•可编程特性–反溶丝–EPROM结构–EEPROMFLASH–SRAM•器件容量–高容量可编程逻辑器件HCPLD•结构的复杂程度–PLDCPLDFPGAPLD的发展历程及概述•早期的可编程逻辑器件:PROM、EPROM和EEPROM三种。•可编程逻辑器件(PLD)–可编程逻辑器件(PLD)–PAL(可编程阵列逻辑)–可编程逻辑阵列(PLA)–GAL(通用阵列逻辑)–共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路PLD的发展历程及概述•20世纪80年代中期。Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD(ComplexProgrammab1eLogicDvice)和与标准门阵列类似的FPGA(FieldProgra-mmableGateArray),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。PLD的发展历程及概述•注:不同厂家的叫法不尽相同,Xilinx把基于查找表技术,SRAM工艺,要外挂配置用的PROM的PLD叫FPGA;把基于乘积项技术,Flash工艺的PLD叫CPLD;Altera把自己的PLD产品:MAX系列(乘积项技术,EEPROM工艺),FLEX系列(查找表技术,SRAM工艺)都叫作CPLD,即复杂PLD(ComplexPLD),由于FLEX系列也是SRAM工艺,基于查找表技术,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX系列产品也叫做FPGA.•部分公司网址•ALTERA:•XILINX:•ATMEL:•CYPRESS:•LATTICE:•ACTEL:•QUICKLOGIC:•部分学习网址•••2005年1月25日,Altera公司发布了下一代结构化ASIC方案——HardCopyII系列。HardCopyII器件采用了独特的FPGA前端设计方法,每百万ASIC逻辑门价格低至15美金。HardCopyII结构化ASIC构建在新的精细粒度体系结构上,面向低成本设计,使逻辑门密度、性能和低功耗达到了更高的水平。•HardcopyII器件和StratixIIFPGA器件是管脚完全兼容,在芯片正式投产之前,设备制造商可以使用FPGA进行设备小规模生产。同时,设计人员可以把QuartusII软件自动产生的文件交给AlteraHardCopy设计中心,在8至10个星期内,设计中心可以将FPGA设计移植到HardCopyII结构化ASIC上。在大批量生产时,设备制造商可以采用HardCopyII结构化ASIC直接替换StartixIIFPGA以降低生产成本。结构化ASICPLD典型结构及优势可编程逻辑器件的编程元件•熔丝型开关•反熔丝开关•浮栅编程技术•静态存储器PLD器件•PLD(ProgrammableLogicalDevice)是昀早的可编程逻辑器件,它包含两个基本部分:–逻辑阵列是用户可编程的部分,它由“与”矩阵、“或”矩阵及反相器组成。–输出单元的作用是使设计者能改变PLD的输出结构。•输入信号通过“与”矩阵组合成为乘积项,这些乘积项在“或”矩阵中相加,经输出单元或宏单元输出。•以“与”“或”阵列结构为基础的PLD器件包括4种基本类型:–可编程只读存储器PROM–可编程逻辑阵列PLA–可编程阵列逻辑PAL–通用可编程阵列逻辑GALPLD器件•昀早出现的PLD就是可编程只读存储器PROM。它是由固定连接的“与”阵列和可编程的“或”阵列组成。I2I1I0或门阵列(可编程)与门阵列(固定)Q2Q1Q0PLD器件•PROM缺点:–由于与阵列是固定的,不需编程,灵活性较差。而大多数逻辑函数不需要使用输入的全部可能组合,这就使得PROM的与阵列不能充分利用,造成浪费。–为了增大芯片的容量,与门阵列可以做的很大,但阵列愈大,开关延迟时间愈长,速度较慢。PLD器件•PLA结构•PLA中包含一个可编程连接的“与”矩阵和一个可编程连接的“或”矩阵,为了减小阵列规模,提高器件速度,与门阵列不采用全译码式,与门个数小于2n(为输入项数)。PLD器件•例如:–O0=I0*I1*I2+NOT(I1)*I2–O1=I0*I1*I2+NOT(I0)*NOT(I1)*NOT(I2)+I0*NOT(I1)*I2–O2=NOT(I0)*NOT(I1)*NOT(I2)+I1*I2•实现如下图PLD器件PLD器件•PLA器件除了实现组合逻辑外,还可实现时序逻辑。•PLA器件对于逻辑功能的处理比较灵活,但处理逻辑功能较简单的电路时比较浪费资源,相应的编程工具花费也较大。•因此在PLA器件的基础上,发展了PAL器件和GAL等新型PLD器件。与矩阵或矩阵寄存器时钟2时钟1输入输出寄存器PLD器件•PAL:可编程阵列逻辑PAL对PLA的可编程结构进行了进一步的简化,其与阵列可编程,或阵列固定。PLD器件•PAL器件具有灵活的设计功能,与PLA器件相比,体积小,功耗低,速度快,有防止复制该逻辑的保密熔丝,可实现产品的加密功能。缺点是PAL器件采用的熔丝工艺,一旦编程,无法改写,而且不同的输出结构需要选用不同型号的PAL器件。PLD器件•GAL是基本PAL结构的新一代增强型器件,具有与PAL器件相同的基本结构形式,既采用可编“与”矩阵及固定的“或”矩阵结构,但是编程方式不同。GAL有如下优点:–采用CMOS的浮栅工艺•可以重复编程•由于采用CMOS工艺而使器件速度提高,功耗下降•具有不挥发性,在器件掉电后不必对GAL器件重新编程•有一种“安全保护单元”,允许对GAL器件实现安全保护–采用了一种可编程输出逻辑宏单元OLMC(OutputLogicMacroCell)PLD器件CPLD器件•PAL的问题–太多的输入和输出–延时受到与阵列的影响–直接扩展PAL结构的效率不高•CPLD是由多个类似PAL的功能快组成,具有很长的固定于芯片上的布线资源,通过位于中心的互连矩阵连接在一起.CPLD器件•CPLD采用的是多路开关的互连方式即集总总线方式,因而具有较大的时间可预测性。总线上任意一对输入端与输出端之间的延时相等。I/OFBI/O互连矩阵FBFBFBFBFBFBFB开关互连矩阵·ABCCPLD器件•CPLD的编程工艺有三种:–EPROM工艺–E2ROM工艺–FLASH工艺CPLD器件(Altra-MAX7000)CPLD器件CPLD器件•优点–不采用分段互连方式–有较大的时间可预测性–具有很宽的输入结构•缺点–功耗大FPGA器件•由逻辑功能块排列成阵列组成,并由可编程的内部连线连接这些逻辑功能块来实现不同的设计•更高密度,更复杂的布线结构和逻辑实现.FPGA器件FPGA器件•与PLD的主要区别:编程原理–PLD:修改具有固定内联电路的逻辑功能来进行编程–FPGA:修改一或多根内连线的布线–更适合实现多级的逻辑功能FPGA器件•按编程的方式和逻辑功能的类型主要有两种–SRAM-查找表类型–反熔丝的多路开关类型FPGA器件FPGA器件•查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。FPGA器件FPGA器件(Xilinx-Spartan-II)xilinxSpartan-II芯片内部结构Slices结构FPGA器件(Altra-FLEX/ACEX)可编程的内部连线资源•在FPGA中,大量的连线资源是通过可编程开关矩阵实现互连的。连线按相对长度分为单长度线、双长度线和长线。这里的长度是指连线跨越CLB的个数。可编程的内部连线资源F4C4G4YQYG3C3F3G1KF1XC1XQF2C2G2CLB开关矩阵CLBCLBCLBCLB开关点主全局网副全局网F4C4G4YQYG3C3F3G1KF1XC1XQF2C2G2CLB全局长线垂直长线CPLD与FPGA比较CPLDFPGA(Xilinx)集成规模几万门几百万门逻辑单元块大(其变量为20——28个)小(输入变量只有几个)单元数少多单元速度慢快单元逻辑能功能强弱触发器个数少多互连方式集总式分布式芯片速度快慢延时确定可预测不确定不可预测编程工艺EPROM、E2ROM、FLASHSRAM(可与ROM联用)编程类型ROM型RAM型信息固定实时重构加密功能可加密不可加密功耗大小芯片面积大小设计简单复杂(除逻辑设计外还要进行时延设计)应用场合逻辑密集型数据密集型