可编程逻辑器件原理.ppt

上传人:豆**** 文档编号:88687047 上传时间:2023-04-30 格式:PPT 页数:96 大小:2.64MB
返回 下载 相关 举报
可编程逻辑器件原理.ppt_第1页
第1页 / 共96页
可编程逻辑器件原理.ppt_第2页
第2页 / 共96页
点击查看更多>>
资源描述

《可编程逻辑器件原理.ppt》由会员分享,可在线阅读,更多相关《可编程逻辑器件原理.ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理1.1 FPGA的基本概念的基本概念顾名思义,现场可编程逻辑门阵列(FPGA)是由可编程可编程配置配置的逻辑块组成的数字集成电路,这些逻辑块之间有着丰逻辑块之间有着丰富的可配置的互连资源富的可配置的互连资源,设计者可以通过对这些资源进行不同的配置和编程来达到自己所要实现的目标。我们要从如下几个方面来理解FPGA的特性。可编程逻辑器件原理可编程逻辑器件原理首先,FPGA名称中的“现场可编程现场可编程”是指编程“在现场”进行(与那些内部功能已被制造商固化的器件内部功能已被制造商固化的器件正相反)。这意味着FPGA的编程具有更强

2、的灵活性和创新性更强的灵活性和创新性,我们可以在实验室进行配置,或者可以对已经应用于实际的电子系统中的某些功能进行改进,或者可以根据用户需求,实现新的协议或者标准来对当前应用作进一步的完善和改进。总而言之,FPGA的现场可编程特性满足了用户实现任意数字逻实现任意数字逻辑的愿望辑的愿望,成为用户灵活“武装”自己产品的最有效的武器。可编程逻辑器件原理可编程逻辑器件原理其次,FPGA名称中的“逻辑门阵列”不仅仅指的是传统意义上的逻辑门阵列。FPGA是可编程逻辑器件是可编程逻辑器件(PLD)和专用集成电和专用集成电路路(ASIC)技术发展到一定程度的产物技术发展到一定程度的产物。PLD能够实现灵活的逻

3、辑可编程功能,但是其可编程规模小,无法实现复杂的逻辑功能,而ASIC虽然能够实现复杂的逻辑功能,但是昂贵的工艺过程和巨额的流片费用,在很多时候令大家望而却步。FPGA的诞生恰好弥合了PLD和ASIC之间的这道鸿沟,其逻辑规模可以达到逻辑规模可以达到ASIC的级别的级别,而且不必承担如ASIC开发带来的数额巨大的不可重现工程(NRE)成本。随着FPGA技术的不断发展,FPGA器件逐渐变成一种数字化平台系统数字化平台系统,其“逻辑门”已经不再和PLD或者ASIC一样,而是包含了现代FPGA中的各种资源,如可编程逻辑块、RAM资源、数字信号处理模块、微处理器等。可编程逻辑器件原理可编程逻辑器件原理1

4、.2 可编程逻辑技术发展简介可编程逻辑技术发展简介 1.2.1 可编程技术发展演变过程可编程技术发展演变过程世界上第一款可编程逻辑器件是第一款可编程逻辑器件是1970年以年以PROM的形式进入人们视野的,但当时还非常简单,仅仅到20世纪70年代末,复杂实用的复杂实用的PLD器件便应用在工程当中了。为了在复杂程度上进行区分,后来出现了新的名词即简单可编程逻辑简单可编程逻辑器件器件(SPLD)和复杂可编程逻辑器件和复杂可编程逻辑器件(CPLD)。SPLD至今依然有人沿用,而CPLD成为当今PLD器件的代名词。PLD器件经历了在结构上的不断改进,从一开始的从一开始的PROM器件,器件,到到PLA、P

5、AL,再到后来的,再到后来的GAL,逐渐演变到今天通用的,逐渐演变到今天通用的CPLD结构。结构。可编程逻辑器件原理可编程逻辑器件原理1PROM器件器件PROM(Programmable Read-Only Memory,可编程只读存储器)基本结构其实就是由与由与(AND)阵列函数驱动可编程阵列函数驱动可编程的或的或(OR)阵列函数阵列函数。一个3输入3输出的基于PROM结构的可编程逻辑器件结构如图1-1所示。图中,“&”代表逻辑“与”;“!”代表逻辑“非”。可编程逻辑器件原理可编程逻辑器件原理在OR门阵列中的可编程连线门阵列中的可编程连线可以用熔丝、用熔丝、EPROM晶晶体管或者体管或者E2

6、PROM器件中的器件中的E2PROM晶体管等来实现晶体管等来实现。PROM器件可以用来实现任何组合逻辑块,但是它无法实现无法实现无法实现无法实现太多的输入和输出太多的输入和输出太多的输入和输出太多的输入和输出。PROM器件最初主要作为存储器来存器件最初主要作为存储器来存放计算机程序和常数值,工程师也发现它可以用来实现简单放计算机程序和常数值,工程师也发现它可以用来实现简单的逻辑功能,比如状态机查找表等的逻辑功能,比如状态机查找表等。随着PROM的大量应用,其他在其基础上改进的可编程器件也纷纷面世。可编程逻辑器件原理可编程逻辑器件原理图1-1 3输入3输出的基于PROM结构的可编程逻辑器件结构图

7、 可编程逻辑器件原理可编程逻辑器件原理2PLA器件器件由于PROM器件对地址有限制,可编程器件的下一步演化就是PLA(Programmable Logic Array,可编程逻辑阵列,可编程逻辑阵列)器件。PLA器件是可编程逻辑器件中用户可配置性最好的,因为它的AND和和OR阵列都是可配置的阵列都是可配置的。正是由于AND阵列也可编程,因而AND阵列中的AND函数的数目便可以与器件的输入数目独立,只要引入更多的行,便可在阵列中形成额外的AND函数。类似地,OR阵列也是与AND阵列独立的,引入更多的列就可以形成更多的列函数。如果我们要用PLA器件完成下面三个公式,则可以按图1-2所示的连线方式进

8、行编程:可编程逻辑器件原理可编程逻辑器件原理(1-1)(1-2)(1-3)PLA的优点是它对于大型设计非常有用,因为它可以实现大量公共乘积项,可用于多个输出。而PLA的缺点是信号缺点是信号通过可编程连线所花费的时间相对更长,所以整个器件的速通过可编程连线所花费的时间相对更长,所以整个器件的速度受到很大的影响。度受到很大的影响。可编程逻辑器件原理可编程逻辑器件原理图1-2 PLA编程示意图 可编程逻辑器件原理可编程逻辑器件原理3PAL器件器件PAL(Programmable Array Logic,可编程阵列逻辑,可编程阵列逻辑)器件便是为了解决PLA的速度问题而产生的,其结构示意图如图1-3所

9、示。图1-3 PAL结构示意图 可编程逻辑器件原理可编程逻辑器件原理从图1-3中可以看到,PAL的结构与PROM的正好相反,体现在PAL是由一个可编程可编程AND阵列阵列和一个预定义的预定义的OR阵阵列列组成的,相对于相对于PLA器件速度要快得多,但是它只允许有器件速度要快得多,但是它只允许有限数量的乘积项相或限数量的乘积项相或,对器件的应用灵活性又一次进行制约。要解决这些问题,需要跳出PROM器件的阴影,不再针对PROM器件做结构上简单的改进,而是采用新的方法,也就是下面我们讨论的GAL器件。可编程逻辑器件原理可编程逻辑器件原理4GAL以及以及CPLD器件器件GAL(Generic Arra

10、y Logic,通用逻辑阵列)器件是Lattice公司于1985年推出的新型的可编程逻辑器件,GAL器件的器件的输出端输出端不再是简单采用或阵列实现,而是采用了逻辑宏单元逻辑宏单元(OLMC),通过编程可以将可以将OLMC设置成不同的输出方式设置成不同的输出方式。这样,采用同一型号的GAL器件就可以实现可以实现PAL器件所有的器件所有的输出电路工作模式输出电路工作模式,使GAL器件成为通用可编程逻辑器件。可编程逻辑器件原理可编程逻辑器件原理GAL系列器件诞生之后很长时间受到工程师的青睐,其在数字系统中的粘合逻辑粘合逻辑功能方面,对原来传统意义上的74系列器件提出了挑战。GAL器件器件不仅在性能

11、上有很大的提高,而且还附加了很多独有的功能附加了很多独有的功能。比如,电子标签电子标签,方便了用户的文档管理;加密单元加密单元,防止他人抄袭电路;采用高性能的E2COMS工艺,保证了GAL器件的高速度和低功耗高速度和低功耗等等。但是GAL器件依然属于低密度器件,其规模还是比较低密度器件,其规模还是比较低密度器件,其规模还是比较低密度器件,其规模还是比较小小小小,仅相当于几十个门电路。可编程逻辑器件原理可编程逻辑器件原理真正的可编程时代的到来应该是伴随着真正的可编程时代的到来应该是伴随着CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件,复杂可编程逻

12、辑器件)的诞生的诞生。在20世纪90年代前后,目前世界著名的可编程逻辑器件公司如Xilinx、Altera、Lattice、Actel公司等都争相研究新型的复杂可编程逻辑器件。CPLD一般都是基于乘积项结构的,如Xilinx公司的XC9500、CoolRunner系列器件,Altera的MAX7000、MAX3000以及MAX-系列器件,Lattice的ispMACH4000、ispMACH5000系列器件等,都是基于乘积项的CPLD。CPLD采采用的理念是一个普通的器件中包括一定数量的基本逻辑块,分享用的理念是一个普通的器件中包括一定数量的基本逻辑块,分享一个公共的可编程互连矩阵。一个公共的

13、可编程互连矩阵。总体来说,CPLD的结构由四个部分组成:可编程可编程I/O单元、单元、可编程基本逻辑单元可编程基本逻辑单元(CLB)、可编程布线资源、可编程布线资源(布线池、布线矩阵布线池、布线矩阵)和其他辅助模块和其他辅助模块(时钟资源时钟资源),如图1-4所示。可编程逻辑器件原理可编程逻辑器件原理图1-4 CPLD的结构示意图 可编程逻辑器件原理可编程逻辑器件原理1.2.2 FPGA技术技术约在20世纪80年代早期,ASIC(Application Specific Integrated Circuit,专用集成电路)技术已经在飞速发展。但是在很多应用场合,昂贵的昂贵的ASIC费用费用不是

14、广大客户所想要的,而且ASIC流片的风险太大,周期太长流片的风险太大,周期太长,在不确定芯片在不确定芯片在不确定芯片在不确定芯片需求量很大的情况下,人们是非常谨慎的需求量很大的情况下,人们是非常谨慎的需求量很大的情况下,人们是非常谨慎的需求量很大的情况下,人们是非常谨慎的。而CPLD技术虽然有飞跃,但是依然不能实现复杂的功能,尤其是无法实现无法实现复杂逻辑运算的功能复杂逻辑运算的功能。ASIC与CPLD之间的鸿沟越来越明显。幸运的是,1984年世界上首款FPGA在Xilinx诞生。首款FPGA基于CMOS工艺,并且采用采用SRAM单元单元,最小单元最小单元由一个3输入查找表输入查找表(LUT)

15、与寄存器与寄存器组成。首款FPGA的诞生,已经给人们发出了一个信息,除了ASIC和CPLD之外,另外一种新型结构的可编程逻辑器件一种新型结构的可编程逻辑器件会给逻辑设计带来新的活力。可编程逻辑器件原理可编程逻辑器件原理FPGA刚开始刚开始大部分用来作粘合逻辑、中等复杂程度的来作粘合逻辑、中等复杂程度的状态机和相对有限的数据处理任务状态机和相对有限的数据处理任务。在20世纪90年代,FPGA的规模和复杂度开始增加,市场扩展到通讯和网络领扩展到通讯和网络领域,而且都涉及到大量数据的处理域,而且都涉及到大量数据的处理。21世纪初,FPGA在消费类产品,如汽车和工业领域的应用也经历了爆炸式的增长,发展

16、到现在,FPGA的黄金时代已经到来。ASIC验证、微处验证、微处理器核的嵌入、系统级的解决方案理器核的嵌入、系统级的解决方案,这些FPGA不断创新的理念逐渐适应了目前市场的需求。可编程逻辑器件原理可编程逻辑器件原理对于对于ASIC公司来说,公司来说,FPGA经常用于提供一个硬件验经常用于提供一个硬件验证平台来验证新算法新协议的物理层实现证平台来验证新算法新协议的物理层实现。比如,许多行业的开创性公司使用FPGA制定新的协议标准,并进行产品化,迎来市场的新增值点。同时,FPGA为许多小型公司带来机为许多小型公司带来机遇遇。这些公司利用FPGA开发低成本高智力投入的产品并快速推向市场,迎来新的发展

17、机遇。FPGA技术的发展将创造将创造性的逻辑设计任务从昂贵的性的逻辑设计任务从昂贵的ASIC公司搬到了普通的工作室。公司搬到了普通的工作室。可编程逻辑器件原理可编程逻辑器件原理市场给了FPGA极大的机会,也给FPGA自身的发展带来了挑战。数千万门的数千万门的FPGA器件器件中集成了内嵌微处理器核、内嵌微处理器核、数字信号处理器数字信号处理器(DSP)、高速的输入、高速的输入/输出输出(I/O)接口接口等。FPGA正在蚕食着4个主要的市场个主要的市场:ASIC、DSP、嵌入式微、嵌入式微处理器处理器以及物理层通信芯片物理层通信芯片。另外,FPGA还在创建自己的独立市场,如可重配置计算技术可重配置

18、计算技术(RC)。RC技术即由技术即由FPGA提供的固有的并行性和可重配置性来实现软件算法的提供的固有的并行性和可重配置性来实现软件算法的“硬件硬件加速加速”,许多公司在建立以FPGA为基础的可重配置计算引擎,来完成从硬件仿真到密码分析等任务。可编程逻辑器件原理可编程逻辑器件原理从另外一个角度来说,FPGA技术的不断推进,对于电子系统来说,产生了新的设计思想新的设计思想,即“软软”设计设计。这里的“软”可以理解为“嵌入式软件设计和可编程逻辑设计嵌入式软件设计和可编程逻辑设计”,我们使用可编程逻辑器件用软件的方法搭建硬件平台可编程逻辑器件用软件的方法搭建硬件平台,然后配合嵌入式软件进行系统功能的

19、设计嵌入式软件进行系统功能的设计,FPGA成功成为这种新型设计方法的不可替代的载体。这种新型的设计方法具有非常多的优势非常多的优势,比如更容易保护知识产权更容易保护知识产权不被复制,因为我们知道在这个世界上有另外一类的工程师是在做反向工程的有另外一类的工程师是在做反向工程的有另外一类的工程师是在做反向工程的有另外一类的工程师是在做反向工程的,在知识产权的保护上原创者往往都要花费很大的精力在这方面,而软件的东西看不到摸不着,相对来说破解的概率要小软件的东西看不到摸不着,相对来说破解的概率要小软件的东西看不到摸不着,相对来说破解的概率要小软件的东西看不到摸不着,相对来说破解的概率要小的多的多的多的

20、多;另外,增强了产品的智能化增强了产品的智能化,基于纯“软”设计方法设计的产品,在硬件不变的情况下,更容易对产品进行改进在硬件不变的情况下,更容易对产品进行改进和升级和升级,并为客户新产品赢取及早面市的时间。可编程逻辑器件原理可编程逻辑器件原理1.3 FPGA器件编程技术器件编程技术 1.3.1 熔丝互连编程技术熔丝互连编程技术在FPGA的可编程技术中,最容易理解的可编程技术就是熔丝互连技术,下面我们举例说明熔丝互连技术的原理。可编程逻辑器件原理可编程逻辑器件原理提起“熔丝熔丝”,我们不由地想起家里面的经常可以看到的保险丝保险丝保险丝保险丝之类的东西,比如电视机,在出现某些危险时(比如电视功率

21、突然变大),保险丝就会熔断,结果使得电路开路,避免剩下的电路被继续烧坏;在集成电路里面,道理其实是一样的,只不过没有那么直观,熔丝的尺度小到显微镜熔丝的尺度小到显微镜下才可以看到,其熔断的方式也不是用大功率电压来实现的,下才可以看到,其熔断的方式也不是用大功率电压来实现的,而是靠一定的工艺来确定的。而是靠一定的工艺来确定的。可编程逻辑器件原理可编程逻辑器件原理图1-5 未编程的熔丝连接图 可编程逻辑器件原理可编程逻辑器件原理虽然熔丝连接技术在当今熔丝连接技术在当今熔丝连接技术在当今熔丝连接技术在当今FPGAFPGA中已弃用中已弃用中已弃用中已弃用,但是对理解新型FPGA可编程技术还是非常有用的

22、,在这里我们仅做简单的介绍。当拿到一个基于熔丝互连技术的可编程器件时,所有的熔丝都是完好的,保持着连接的状态,参见图1-5。此时,与门的输出一直保持为0,其原理非常的简单:当a为0时,与门输入端为0,输出必然为0;当a为1时,a的非门输出为0,与门输入端仍为0,输出必然还是0。同样的情况对于b来说也是一样的。那么我们可以通过在输入端加上相当大的电流和电压脉冲,熔断不需要的熔丝相当大的电流和电压脉冲,熔断不需要的熔丝,与门的输出逻辑值才可以变化,比如我们熔断Faf和Fbt,如图1-6所示。可编程逻辑器件原理可编程逻辑器件原理图1-6 编程之后的熔丝连接图 可编程逻辑器件原理可编程逻辑器件原理这样

23、,输入a的非门输出和输入b的原值都和与门输入端断开,那么对应的这两个信号相连的负载就起了作用对应的这两个信号相连的负载就起了作用,将与门的输入值拉高而变成逻辑1,器件表现为新的功能,即 y=a&(!b)以上过程详细描述了熔丝连接实现可编程逻辑器件的原理。需要注意的是,这种通过熔断熔丝的方法实现器件编程,通过熔断熔丝的方法实现器件编程,是不能再恢复原状的,所以这种器件为一次性可编程器件是不能再恢复原状的,所以这种器件为一次性可编程器件,即OTP(One Time Programmable,一次性可编程,一次性可编程)器件器件。熔丝互连技术已经不被当前任何器件作为一种可编程器件技术而使用。现代FP

24、GA编程器件一般基于以下三种技术一般基于以下三种技术:反熔丝、反熔丝、SRAM和和FLASH或或EPROM。可编程逻辑器件原理可编程逻辑器件原理1.3.2 基于反熔丝的编程技术基于反熔丝的编程技术与熔丝连接技术相反,反熔丝技术是在每个可配置的输入端上都有反熔丝的连接;当处于未编程状态时,反熔丝的当处于未编程状态时,反熔丝的电阻非常高,可以认为是开路电阻非常高,可以认为是开路,如图1-7所示,即反熔丝器件未编程之前的状态。图1-7 未编程的反熔丝连接原理图 可编程逻辑器件原理可编程逻辑器件原理我们可以通过对器件编程,而使输入端反熔丝“变长”,例如,可以加在输入a的非门和输入b的原值所对应的反熔丝

25、上让其“变长”,器件将实现函数y=(!a)&b的功能。编程后的反熔丝结构如图1-8所示。图1-8 编程之后的反熔丝连接图 可编程逻辑器件原理可编程逻辑器件原理反熔丝开始时是连接两个金属连线的微型非晶硅反熔丝开始时是连接两个金属连线的微型非晶硅,在处于未编程状态时,非晶硅表现为电阻超过非晶硅表现为电阻超过109 的绝缘体的绝缘体。在发生编程行为之后,绝缘体的非晶硅转化成导电的多晶硅编程行为之后,绝缘体的非晶硅转化成导电的多晶硅而实现了电流的导通,如图1-9所示。图1-9 反熔丝的编程过程 可编程逻辑器件原理可编程逻辑器件原理具有反熔丝结构的器件的特点是速度极快,功耗极低。速度极快,功耗极低。基于

26、反熔丝的FPGA器件使用专门的器件编程器来进行编程,目前来说,Actel公司的主要FPGA产品都是基于反熔丝结构的,因为这种器件有许多优势许多优势:(1)基于反熔丝结构反熔丝结构的FPGA器件是非易失性是非易失性的,因为其配置的数据在系统断电之后仍能保持配置的数据在系统断电之后仍能保持,如果数据已经配置过,那么在系统上电之后立刻就能执行代码在系统上电之后立刻就能执行代码,所以相对我们后面要介绍的SRAM结构器件来说(每次上电都需要配置数据),上电后执行代码速度快,几乎没有延时,而且省去外围的配上电后执行代码速度快,几乎没有延时,而且省去外围的配置存储器,电路设计也相对简单了。置存储器,电路设计

27、也相对简单了。可编程逻辑器件原理可编程逻辑器件原理(2)反熔丝结构器件反熔丝结构器件更为卓越的优势在于其内部互连结其内部互连结构是天生构是天生“防辐射防辐射”的,它相对来说不受电磁辐射的影响,这对军事和宇航应用具有特别的吸引力。因为在外界环境比较恶劣的情况下,基于基于SRAM元件的配置单元被射线击中时元件的配置单元被射线击中时可能会发生翻转,因为在地球外层中有大量的射线可能会发生翻转,因为在地球外层中有大量的射线,相比之下,反熔丝结构的FPGA是不会受这个条件影响的。可编程逻辑器件原理可编程逻辑器件原理(3)基于反熔丝结构的器件配置数据与器件是融合在一基于反熔丝结构的器件配置数据与器件是融合在

28、一起的起的。我们了解一下反熔丝器件的编程过程:在默认情况下编程器编程时,首先测试反熔丝是否被编程,然后持续进行验证,并把其状态与配置文件中定义的状态进行对比。所以编程器是可以读取器件的每个单元状态的,但是一旦编程之一旦编程之后,就会设置一个专门的反熔丝,来防止随后从器件中读取后,就会设置一个专门的反熔丝,来防止随后从器件中读取任何配置数据。任何配置数据。因此,即使器件被破坏,编程和未编程的器件的反熔丝显示也完全一样,实际上所有的反熔丝都嵌入内部的金属层,让让“逆向工程逆向工程”根本不可能实现根本不可能实现。可编程逻辑器件原理可编程逻辑器件原理(4)反熔丝结构反熔丝结构的器件还有其他的优势其他的

29、优势,比如在功耗上功耗上。实际上基于反熔丝结构的器件只消耗等价的基于只消耗等价的基于SRAM结构结构器件功耗的20%,这样的数字确实非常让人兴奋。同时,反熔丝器件的面积也是非常的小面积也是非常的小,它的内部互连延迟非常的小内部互连延迟非常的小,比同等的SRAM单元节省了大量的面积。反熔丝结构的器件也不是近乎完美的也不是近乎完美的也不是近乎完美的也不是近乎完美的。其优势总会给自己带来麻烦,就像能量守恒定律一样,也许自然界的规律都是这样的。反熔丝器件相对SRAM器件来说,制造工艺复杂的多制造工艺复杂的多,由于这个原因,反熔丝器件总是落后于基于SRAM工艺器件至少一代。另外,反熔丝工艺还有一个不足之

30、处在于它是它是OTP器件器件,一旦编程编程完毕完毕,其功能就固定了,不能再进行改变不能再进行改变,这将导致在开发初期的难度非常高。可编程逻辑器件原理可编程逻辑器件原理1.3.3 基于基于SRAM的可编程技术的可编程技术半导体RAM有两种类型,一种为动态动态RAM(DRAM),另外一种为静态静态RAM(SRAM)。对于动态动态动态动态RAMRAM,每个单元是由一个“晶体管晶体管电容电容”组构成的,这也是其称为动态的原因:需要不断给电容充电,才能保持数据需要不断给电容充电,才能保持数据。每个单元必须周期性地补充电荷,这种操作习惯上称为“刷新刷新”。DRAM虽然需要复杂的刷新电路需要复杂的刷新电路才

31、能工作,但是其优点在于可以将优点在于可以将存储容量做得非常大存储容量做得非常大。然而,对于我们所讨论的可编程逻辑器件来说,DRAM没有任何吸引力,而SRAM反而成为可编程技术的重要实现反而成为可编程技术的重要实现方式,也是目前主流方式,也是目前主流FPGA所采用的技术。所采用的技术。可编程逻辑器件原理可编程逻辑器件原理SRAM即静态静态RAM,一旦将值写入SRAM单元,只要不放只要不放电,除非被刻意修改,其值是不会改变的电,除非被刻意修改,其值是不会改变的。以单个基于SRAM技术的可编程单元来举例,如图1-10所示。整个单元包括一个多晶体管SRAM存储元件,此元件的输出驱动着一个额外的控制晶体

32、管,根据存储的内容为逻辑0或者1,晶体管将被置为关(OFF)或者开(ON)状态。大部分的FPGA都采用SRAM结构。我们熟知的两家FPGA公司Xilinx和Altera公司所有的FPGA都基于SRAM结构。图1-10 SRAM基本可编程单元 可编程逻辑器件原理可编程逻辑器件原理基于基于SRAM结构结构的FPGA的最大优势在于可以非常快速最大优势在于可以非常快速地利用可编程技术实施和验证新的想法地利用可编程技术实施和验证新的想法。更有创意的是,系系系系统首次加电时,统首次加电时,统首次加电时,统首次加电时,FPGAFPGA可以被编程进行初始化系统,比如进可以被编程进行初始化系统,比如进可以被编程

33、进行初始化系统,比如进可以被编程进行初始化系统,比如进行自测或者板级测试,然后重新编程实现新的任务行自测或者板级测试,然后重新编程实现新的任务行自测或者板级测试,然后重新编程实现新的任务行自测或者板级测试,然后重新编程实现新的任务。基于SRAM结构的FPGA的另外一个优势在于这些器件能够站在技术的最前沿能够站在技术的最前沿。FPGA生产厂家可以利用许多其他利用许多其他的致力于存储设备公司在工艺领域投入的巨大研发资源,扩的致力于存储设备公司在工艺领域投入的巨大研发资源,扩大大FPGA的规模和提高的规模和提高FPGA的工艺水平的工艺水平,比如目前Xilinx公司最先进的FPGA工艺在40 nm,而

34、Altera公司的FPGA最先进的工艺水平在45 nm。这一点容易理解,因为基于因为基于SRAM结构的结构的FPGA可以与其他存储器件共享相同的工艺技术可以与其他存储器件共享相同的工艺技术。可编程逻辑器件原理可编程逻辑器件原理然而,遗憾的是遗憾的是遗憾的是遗憾的是,基于SRAM结构的FPGA其不足之处也是比较多的:(1)每个存储单元消耗大量的硅片面积每个存储单元消耗大量的硅片面积,因为这些单元是由4个或6个晶体管配置成一个锁存器而形成的。(2)当系统掉电之后,所有配置的数据都会丢失系统掉电之后,所有配置的数据都会丢失,所以在系统重新上电之后需要重新进行配置。可编程逻辑器件原理可编程逻辑器件原理

35、(3)基于基于SRAM的FPGA很难保护知识产权很难保护知识产权,因为配置文件一般都存储在外部存储器当中,所以很难保证别人不会读很难保证别人不会读出存储器当中的数据出存储器当中的数据。虽然目前没有商业工具能够读取配置文件的内容并产生原理图和网表文件,但是直接从存储器当直接从存储器当中拷贝出数据然后再复原你的产品却还不是超出这些中拷贝出数据然后再复原你的产品却还不是超出这些“逆向逆向工程师工程师”的能力范围的的能力范围的,只是看是不是值得花费时间和精力。可编程逻辑器件原理可编程逻辑器件原理幸好目前基于基于SRAM的FPGA支持比特流加密比特流加密,这种情况下,最终配置的数据经过加密之后存入外部存

36、储器件最终配置的数据经过加密之后存入外部存储器件。密密钥本身经过钥本身经过FPGA的的JTAG端口载入一个端口载入一个FPGA内部专用基于内部专用基于SRAM的寄存器的寄存器,与一些相关逻辑配合,密钥在加密配置比特流载入器件时对比特流解密运算。但是这也造成了一定的不便,我们要保持这个存储密钥的寄存器有效,需要在电路要保持这个存储密钥的寄存器有效,需要在电路板上面有一组备用电池板上面有一组备用电池,而且这个电池模块需要长期有效(比如10年),这样也增加了电路板的面积。可编程逻辑器件原理可编程逻辑器件原理1.3.4 基于基于FLASH或或E2PROM的可编程技术的可编程技术基于FLASH或E2PR

37、OM的FPGA器件与基于SRAM的器件一样,所有的配置单元都连接在一条长的寄存器链上,这所有的配置单元都连接在一条长的寄存器链上,这些器件可以离线用编程器进行编程些器件可以离线用编程器进行编程,有些版本也可以使用在在系统编程系统编程(ISP),但是其编程时间是基于编程时间是基于SRAM工艺的工艺的3倍左倍左右右。尽管如此,它也有自己的优势:(1)编程之后数据是非易失性编程之后数据是非易失性的,所以意味着器件上电上电之后可以立即执行,没有延时之后可以立即执行,没有延时。这个特性有助于系统组件的初始化、处理器唤醒紧急任务的执行紧急任务的执行,这也是基于FLASH的FPGA器件被广泛应用于航天和军事

38、领域的原因被广泛应用于航天和军事领域的原因。可编程逻辑器件原理可编程逻辑器件原理(2)为了保护配置数据保护配置数据,这些器件中使用了多位的密钥多位的密钥,范围可以从50位到几百位。当你对器件编程后,可以载入你的用户定义密钥来确保配置数据的安全。载入密钥之后,从从器件中读出数据或写入新数据的唯一途径是通过器件中读出数据或写入新数据的唯一途径是通过JTAG端口端口载入你的密钥的副本载入你的密钥的副本,那么是不是还有破解的可能呢?目前JTAG的速度大约是几十兆赫,这样就意味着将所有的可能的速度大约是几十兆赫,这样就意味着将所有的可能的值穷举一遍来破解密钥需要的值穷举一遍来破解密钥需要10亿年亿年。(

39、3)双晶体管E2PROM和FLASH单元的尺寸尺寸大约是单晶体管的2.5倍,但是它仍然比比SRAM的个头要小的个头要小,所以基于FLASH的器件的内部逻辑更加紧密,而且会减少互连延迟内部逻辑更加紧密,而且会减少互连延迟。可编程逻辑器件原理可编程逻辑器件原理(4)基于FLASH的FPGA器件可以实现真正的单芯片解真正的单芯片解决方案决方案,因为它无需额外的配置芯片,所以可以在很多场合无需额外的配置芯片,所以可以在很多场合替代替代CPLD。基于FLASH器件的缺点缺点缺点缺点是其制作工艺其制作工艺除了标准的CMOS工艺之外,还需要大约5个额外的处理步骤,这样,将落后落后于基于于基于SRAM工艺的器

40、件至少一代;同时静态功耗也很大工艺的器件至少一代;同时静态功耗也很大,因为它需要维持大量的内部负载电阻。可编程逻辑器件原理可编程逻辑器件原理所以,可以这样总结FPGA的各种结构的特点各种结构的特点:(1)基于FLASH结构的FPGA与反熔丝结构的FPGA不同,但是与基于SRAM结构的FPGA一样具有可重复编程性具有可重复编程性;(2)基于FLASH结构的FPGA拥有和基于SRAM结构的FPGA同样的制造过程,同时拥有基于反熔丝技术FPGA的同样低的功耗低的功耗;(3)基于FLASH结构的FPGA相对来说速度更快速度更快。可编程逻辑器件原理可编程逻辑器件原理1.4 通用通用FPGA的构成结构的构

41、成结构谈起FPGA的结构,通常人们是这样认为的:FPGA的的基本结构基本结构是由大量的相对较小大量的相对较小的可编程可编程逻辑块逻辑块“岛岛”嵌入在可编程可编程互连互连的的“海海”里面构成的。那么还有人会和ASIC 器件进行对比,提起FPGA都说是一种中度颗粒的器件或者说都说是一种中度颗粒的器件或者说是粗颗粒器件是粗颗粒器件。其实,FPGA是在ASIC的基础上发展起来的,一开始,FPGA的发明者还是按照ASIC的思维模式来设计新型的可编程逻辑器件的。从人们对FPGA颗粒的研究就可以了解FPGA新型结构演变的过程。可编程逻辑器件原理可编程逻辑器件原理1.4.1 现代现代FPGA的基本逻辑单元的基

42、本逻辑单元Xilinx公司的FPGA的基本逻辑单元称为Slice(切片切片),而Altera公司的FPGA的基本逻辑单元称为LE(Logic Element)。一个Slice包含两个核心逻辑单元LC(Logic Cell)。Slice的结构图如图1-11所示。一个LC是由一个4输入的查找表输入的查找表(LUT)、一个多路、一个多路复用器和一个寄存器复用器和一个寄存器组成的。其结构如图1-12所示。图1-11 Slice的基本结构图(两个LC)图1-12 LC的结构图 可编程逻辑器件原理可编程逻辑器件原理MUX和D触发器的作用都很熟悉,介绍查找表的原理。查找表查找表(Look-Up-Table)

43、简称简称LUT,其本质上为本质上为RAM,如4输入LUT,即包括有4位地址线的161的RAM在数字电路中,n输入的逻辑运算最多只能输出2n个结果,同样的道理,4输入LUT共有16种输出结果。若将这若将这16种结果全部存储下来种结果全部存储下来,就可可以根据不同的地址输入以根据不同的地址输入“查找查找”出相应输出结果出相应输出结果。LUT实现4输入与门的示例如表1-1所示。可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理下面我们举例来理解查找表的概念。如图1-13所示,a、b、c、d由由FPGA芯片的管脚输入后进入可编程连线芯片的管脚输入后进入可编程连线,然后作为地址线连

44、到作为地址线连到LUT,LUT中已经事先写入了所有可能的中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出逻辑结果,通过地址查找到相应的数据然后输出,这样组合组合逻辑就实现了逻辑就实现了。该电路中D触发器是直接利用LUT后面的D触发器来实现的。时钟信号时钟信号CLK由由I/O脚输入后进入芯片内脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端部的时钟专用通道,直接连接到触发器的时钟端。触发器的触发器的输出与输出与I/O脚相连,把结果输出到芯片管脚。脚相连,把结果输出到芯片管脚。这样PLD就完成了图1-13所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为

45、干预。)可编程逻辑器件原理可编程逻辑器件原理图1-13 查找表示例 可编程逻辑器件原理可编程逻辑器件原理这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个一个LUT无法完成的电路,就需要通无法完成的电路,就需要通过进位逻辑将多个单元相连过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻就可以实现复杂的逻辑运算。辑运算。LUT仅仅是FPGA最基本的组成。目前来说,FPGA的复杂程度远远不能用LUT来描述。在Xilinx FPGA中,LUT组成组成LC,进一步形成,进一步形成Slice(切片切片),SliceSlice才是才是才是才是Xilinx FPGAXili

46、nx FPGA的最基本组的最基本组的最基本组的最基本组成成成成。而Slice上一级是上一级是CLB(可配置逻辑块可配置逻辑块)。CLB的实际数量会根据器件的不同而不同,CLB之间的可编程互连是通过可配置之间的可编程互连是通过可配置的的开关矩阵开关矩阵组成的组成的,这样每个每个每个每个CLBCLB模块不仅可以用于实现组合模块不仅可以用于实现组合模块不仅可以用于实现组合模块不仅可以用于实现组合逻辑和时序逻辑,还可以配置为分布式逻辑和时序逻辑,还可以配置为分布式逻辑和时序逻辑,还可以配置为分布式逻辑和时序逻辑,还可以配置为分布式RAMRAM和分布式和分布式和分布式和分布式ROMROM。可编程逻辑器件

47、原理可编程逻辑器件原理Xilinx FPGA中逻辑块等级关系为逻辑块等级关系为逻辑块等级关系为逻辑块等级关系为LC-Slice-CLBLC-Slice-CLB,这样在同一同一Slice的的LC之间有快速互连之间有快速互连。在同一同一CLB中的中的Slice之之间稍慢些间稍慢些。接下来是接下来是CLB之间的互连之间的互连,这样可以比较容易地把它们彼此连在一起,同时也不会增加太多的互连延迟,从而达到优化平衡。可编程逻辑器件原理可编程逻辑器件原理1.4.2 Xilinx Spartan-3 FPGA的基本结构的基本结构查找表和多路复用器是查找表和多路复用器是FPGA的最基本的结构的最基本的结构。但是

48、FPGA的结构不是仅仅这么简单的,由于应用的不同,每款FPGA的内部结构都有所不同。总体来说,现代FPGA由如下7个部分组成个部分组成:可编程输入可编程输入可编程输入可编程输入/输出单元、可配置逻辑块输出单元、可配置逻辑块输出单元、可配置逻辑块输出单元、可配置逻辑块(Configurable Logic Blocks(Configurable Logic Blocks,CLB)CLB)、可编程内部连接、嵌、可编程内部连接、嵌、可编程内部连接、嵌、可编程内部连接、嵌入式入式入式入式RAMRAM块、数字时钟管理单元、底层嵌入式功能单元、块、数字时钟管理单元、底层嵌入式功能单元、块、数字时钟管理单元

49、、底层嵌入式功能单元、块、数字时钟管理单元、底层嵌入式功能单元、内嵌专用硬核内嵌专用硬核内嵌专用硬核内嵌专用硬核,如图1-14所示。下面我们以Spartan-3系列FPGA为例介绍主流基于中度颗粒FPGA的基本结构。可编程逻辑器件原理可编程逻辑器件原理图1-14 FPGA结构图 可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理1可编程输入可编程输入/输出单元输出单元可编程输入/输出单元(I/O单元,IOB)是FPGA与外界电与外界电路的接口路的接口,用于完成不同的电器特性下对输入完成不同的电器特性下对输入/输出信号的输出信号的驱动以及

50、匹配的要求驱动以及匹配的要求。如今FPGA的通用管脚数目达上千个,为了FPGA在电子设备中有更多的兼容性有更多的兼容性,可编程输入/输出单元还设计了许多巧妙且非常实用的功能:可编程逻辑器件原理可编程逻辑器件原理(1)通过软件的编程,可以适配不同的电器标准以及物适配不同的电器标准以及物理特性理特性。不同器件厂商的不同系列FPGA所支持的I/O标准有所不同,常用的常用的I/O标准标准大部分器件都支持单端I/O标准LVCMOS、LVTTL、HSTL、SSTL、GTL、PCI等,差分I/O标准有:LVDS、HT、LVPECL、BLVDS、差分HSTL、SSTL等。另外,通过软件编程可以配置可以配置FP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > pptx模板 > 企业培训

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁