




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理1.1 FPGA的基本概念的基本概念 1.2 可编程逻辑技术发展简介可编程逻辑技术发展简介 1.3 FPGA器件编程技术器件编程技术 1.4 通用通用FPGA的构成结构的构成结构 1.5 Xilinx FPGA的开发流程的开发流程 可编程逻辑器件原理可编程逻辑器件原理1.1 FPGA的基本概念的基本概念顾名思义,现场可编程逻辑门阵列(FPGA)是由可编程可编程配置配置的逻辑块组成的数字集成电路,这些逻辑块之间有着逻辑块之间有着丰富的可配置的互连资源丰富的可配置的互连资源,设计者可以通过对这些资源进行不同的配置和编程来达到自
2、己所要实现的目标。我们要从如下几个方面来理解FPGA的特性。 可编程逻辑器件原理可编程逻辑器件原理首先,FPGA名称中的“现场可编程现场可编程”是指编程“在现场”进行(与那些内部功能已被制造商固化的器件内部功能已被制造商固化的器件正相反)。这意味着FPGA的编程具有更强的灵活性和创新性更强的灵活性和创新性,我们可以在实验室进行配置,或者可以对已经应用于实际的电子系统中的某些功能进行改进,或者可以根据用户需求,实现新的协议或者标准来对当前应用作进一步的完善和改进。总而言之,FPGA的现场可编程特性满足了用户实现任意数字逻实现任意数字逻辑的愿望辑的愿望,成为用户灵活“武装”自己产品的最有效的武器。
3、 可编程逻辑器件原理可编程逻辑器件原理其次,FPGA名称中的“逻辑门阵列”不仅仅指的是传统意义上的逻辑门阵列。FPGA是可编程逻辑器件是可编程逻辑器件(PLD)和专用集成和专用集成电路电路(ASIC)技术发展到一定程度的产物技术发展到一定程度的产物。PLD能够实现灵活的逻辑可编程功能,但是其可编程规模小,无法实现复杂的逻辑功能,而ASIC虽然能够实现复杂的逻辑功能,但是昂贵的工艺过程和巨额的流片费用,在很多时候令大家望而却步。FPGA的诞生恰好弥合了PLD和ASIC之间的这道鸿沟,其逻辑规模可以达到逻辑规模可以达到ASIC的级别的级别,而且不必承担如ASIC开发带来的数额巨大的不可重现工程(N
4、RE)成本。随着FPGA技术的不断发展,FPGA器件逐渐变成一种数字化平台系统数字化平台系统,其 “逻辑门”已经不再和PLD或者ASIC一样,而是包含了现代FPGA中的各种资源,如可编程逻辑块、RAM资源、数字信号处理模块、微处理器等。 可编程逻辑器件原理可编程逻辑器件原理1.2 可编程逻辑技术发展简介可编程逻辑技术发展简介 1.2.1 可编程技术发展演变过程可编程技术发展演变过程世界上第一款可编程逻辑器件是第一款可编程逻辑器件是1970年以年以PROM的形式进入人们视野的,但当时还非常简单,仅仅到20世纪70年代末,复杂实用的复杂实用的PLD器件便应用在工程当中了。为了在复杂程度上进行区分,
5、后来出现了新的名词即简单可编程逻简单可编程逻辑器件辑器件(SPLD)和复杂可编程逻辑器件和复杂可编程逻辑器件(CPLD)。SPLD至今依然有人沿用,而CPLD成为当今PLD器件的代名词。PLD器件经历了在结构上的不断改进,从一开始的从一开始的PROM器件,器件,到到PLA、PAL,再到后来的,再到后来的GAL,逐渐演变到今天通用的,逐渐演变到今天通用的CPLD结构。结构。 可编程逻辑器件原理可编程逻辑器件原理1PROM器件器件PROM(Programmable Read-Only Memory,可编程只读存储器)基本结构其实就是由与由与(AND)阵列函数驱动可编程阵列函数驱动可编程的或的或(O
6、R)阵列函数阵列函数。一个3输入3输出的基于PROM结构的可编程逻辑器件结构如图1-1所示。图中,“&”代表逻辑“与”;“!”代表逻辑“非”。 可编程逻辑器件原理可编程逻辑器件原理在OR门阵列中的可编程连线门阵列中的可编程连线可以用熔丝、用熔丝、EPROM晶晶体管或者体管或者E2PROM器件中的器件中的E2PROM晶体管等来实现晶体管等来实现。PROM器件可以用来实现任何组合逻辑块,但是它。PROM器件最初主要作为存储器来存器件最初主要作为存储器来存放计算机程序和常数值,工程师也发现它可以用来实现简放计算机程序和常数值,工程师也发现它可以用来实现简单的逻辑功能,比如状态机查找表等单的逻
7、辑功能,比如状态机查找表等。随着PROM的大量应用,其他在其基础上改进的可编程器件也纷纷面世。 可编程逻辑器件原理可编程逻辑器件原理图1-1 3输入3输出的基于PROM结构的可编程逻辑器件结构图 可编程逻辑器件原理可编程逻辑器件原理2PLA器件器件由于PROM器件对地址有限制,可编程器件的下一步演化就是PLA(Programmable Logic Array,可编程逻辑阵列,可编程逻辑阵列)器件。PLA器件是可编程逻辑器件中用户可配置性最好的,因为它的AND和和OR阵列都是可配置的阵列都是可配置的。正是由于AND阵列也可编程,因而AND阵列中的AND函数的数目便可以与器件的输入数目独立,只要引
8、入更多的行,便可在阵列中形成额外的AND函数。类似地,OR阵列也是与AND阵列独立的,引入更多的列就可以形成更多的列函数。如果我们要用PLA器件完成下面三个公式,则可以按图1-2所示的连线方式进行编程: 可编程逻辑器件原理可编程逻辑器件原理w(a &c)|(!b&!c) (1-1) x(!a &!b&!c)|(!b&!c) (1-2) y!a &!b&!c (1-3) PLA的优点是它对于大型设计非常有用,因为它可以实现大量公共乘积项,可用于多个输出。而PLA的缺点是信号缺点是信号通过可编程连线所花费的时间相对更长,所以整个器件的速通过可
9、编程连线所花费的时间相对更长,所以整个器件的速度受到很大的影响。度受到很大的影响。 可编程逻辑器件原理可编程逻辑器件原理图1-2 PLA编程示意图 可编程逻辑器件原理可编程逻辑器件原理3PAL器件器件PAL(Programmable Array Logic,可编程阵列逻辑,可编程阵列逻辑)器件便是为了解决PLA的速度问题而产生的,其结构示意图如图1-3所示。 图1-3 PAL结构示意图 可编程逻辑器件原理可编程逻辑器件原理从图1-3中可以看到,PAL的结构与PROM的正好相反,体现在PAL是由一个可编程可编程AND阵列阵列和一个预定义的预定义的OR阵阵列列组成的,相对于相对于PLA器件速度要快
10、得多,但是它只允许器件速度要快得多,但是它只允许有限数量的乘积项相或有限数量的乘积项相或,对器件的应用灵活性又一次进行制约。要解决这些问题,需要跳出PROM器件的阴影,不再针对PROM器件做结构上简单的改进,而是采用新的方法,也就是下面我们讨论的GAL器件。 可编程逻辑器件原理可编程逻辑器件原理4GAL以及以及CPLD器件器件GAL(Generic Array Logic,通用逻辑阵列)器件是Lattice公司于1985年推出的新型的可编程逻辑器件,GAL器件的器件的输出端输出端不再是简单采用或阵列实现,而是采用了逻辑宏单逻辑宏单元元(OLMC),通过编程可以将可以将OLMC设置成不同的输出方
11、式设置成不同的输出方式。这样,采用同一型号的GAL器件就可以实现可以实现PAL器件所有的器件所有的输出电路工作模式输出电路工作模式,使GAL器件成为通用可编程逻辑器件。 可编程逻辑器件原理可编程逻辑器件原理GAL系列器件诞生之后很长时间受到工程师的青睐,其在数字系统中的粘合逻辑粘合逻辑功能方面,对原来传统意义上的74系列器件提出了挑战。GAL器件器件不仅在性能上有很大的提高,而且还附加了很多独有的功能附加了很多独有的功能。比如,电子标签电子标签,方便了用户的文档管理;加密单元加密单元,防止他人抄袭电路;采用高性能的E2COMS工艺,保证了GAL器件的高速度和低高速度和低功耗等功耗等。但是GAL
12、器件依然属于,仅相当于几十个门电路。 可编程逻辑器件原理可编程逻辑器件原理真正的可编程时代的到来应该是伴随着真正的可编程时代的到来应该是伴随着CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件,复杂可编程逻辑器件)的诞生的诞生。在20世纪90年代前后,目前世界著名的可编程逻辑器件公司如Xilinx、Altera、Lattice、Actel公司等都争相研究新型的复杂可编程逻辑器件。CPLD一般都是基于乘积项结构的,如Xilinx公司的XC9500、CoolRunner系列器件,Altera的MAX7000、MAX3000以及MAX-系列器件,Latt
13、ice的ispMACH4000、ispMACH5000系列器件等,都是基于乘积项的CPLD。CPLD采采用的理念是一个普通的器件中包括一定数量的基本逻辑块,分享用的理念是一个普通的器件中包括一定数量的基本逻辑块,分享一个公共的可编程互连矩阵。一个公共的可编程互连矩阵。总体来说,CPLD的结构由四个部分组成:可编程可编程I/O单元、单元、可编程基本逻辑单元可编程基本逻辑单元(CLB)、可编程布线资源、可编程布线资源(布线池、布线矩阵布线池、布线矩阵)和其他辅助模块和其他辅助模块(时钟资源时钟资源),如图1-4所示。 可编程逻辑器件原理可编程逻辑器件原理图1-4 CPLD的结构示意图 可编程逻辑器
14、件原理可编程逻辑器件原理1.2.2 FPGA技术技术约在20世纪80年代早期,ASIC(Application Specific Integrated Circuit,专用集成电路)技术已经在飞速发展。但是在很多应用场合,昂贵的昂贵的ASIC费用费用不是广大客户所想要的,而且ASIC流片的风险太大,周期太长流片的风险太大,周期太长,。而CPLD技术虽然有飞跃,但是依然不能实现复杂的功能,尤其是无法实现无法实现复杂逻辑运算的功能复杂逻辑运算的功能。ASIC与CPLD之间的鸿沟越来越明显。幸运的是,1984年世界上首款FPGA在Xilinx诞生。首款FPGA基于CMOS工艺,并且采用采用SRAM单
15、元单元,最小单元最小单元由一个3输入查找表输入查找表(LUT)与寄存器与寄存器组成。首款FPGA的诞生,已经给人们发出了一个信息,除了ASIC和CPLD之外,另外一种新型结构的可编程逻辑器件一种新型结构的可编程逻辑器件会给逻辑设计带来新的活力。可编程逻辑器件原理可编程逻辑器件原理FPGA刚开始刚开始大部分用来作粘合逻辑、中等复杂程度的来作粘合逻辑、中等复杂程度的状态机和相对有限的数据处理任务状态机和相对有限的数据处理任务。在20世纪90年代,FPGA的规模和复杂度开始增加,市场扩展到通讯和网络领扩展到通讯和网络领域,而且都涉及到大量数据的处理域,而且都涉及到大量数据的处理。21世纪初,FPGA
16、在消费类产品,如汽车和工业领域的应用也经历了爆炸式的增长,发展到现在,FPGA的黄金时代已经到来。ASIC验证、微处验证、微处理器核的嵌入、系统级的解决方案理器核的嵌入、系统级的解决方案,这些FPGA不断创新的理念逐渐适应了目前市场的需求。 可编程逻辑器件原理可编程逻辑器件原理对于对于ASIC公司来说,公司来说,FPGA经常用于提供一个硬件验经常用于提供一个硬件验证平台来验证新算法新协议的物理层实现证平台来验证新算法新协议的物理层实现。比如,许多行业的开创性公司使用FPGA制定新的协议标准,并进行产品化,迎来市场的新增值点。同时,FPGA为许多小型公司带为许多小型公司带来机遇来机遇。这些公司利
17、用FPGA开发低成本高智力投入的产品并快速推向市场,迎来新的发展机遇。FPGA技术的发展将将创造性的逻辑设计任务从昂贵的创造性的逻辑设计任务从昂贵的ASIC公司搬到了普通的工公司搬到了普通的工作室。作室。 可编程逻辑器件原理可编程逻辑器件原理市场给了FPGA极大的机会,也给FPGA自身的发展带来了挑战。数千万门的数千万门的FPGA器件器件中集成了内嵌微处理器核、内嵌微处理器核、数字信号处理器数字信号处理器(DSP)、高速的输入、高速的输入/输出输出(I/O)接口接口等。FPGA正在蚕食着4个主要的市场个主要的市场:ASIC、DSP、嵌入式微、嵌入式微处理器处理器以及物理层通信芯片物理层通信芯片
18、。另外,FPGA还在创建自己的独立市场,如可重配置计算技术可重配置计算技术(RC)。RC技术即由技术即由FPGA提供的固有的并行性和可重配置性来实现软件算法的提供的固有的并行性和可重配置性来实现软件算法的“硬硬件加速件加速”,许多公司在建立以FPGA为基础的可重配置计算引擎,来完成从硬件仿真到密码分析等任务。 可编程逻辑器件原理可编程逻辑器件原理从另外一个角度来说,FPGA技术的不断推进,对于电子系统来说,产生了新的设计思想新的设计思想,即“软软”设计设计。这里的“软”可以理解为“嵌入式软件设计和可编程逻辑设嵌入式软件设计和可编程逻辑设计计”,我们使用可编程逻辑器件用软件的方法搭建硬件平可编程
19、逻辑器件用软件的方法搭建硬件平台台,然后配合嵌入式软件进行系统功能的设计嵌入式软件进行系统功能的设计,FPGA成功成为这种新型设计方法的不可替代的载体。这种新型的设计方法具有非常多的优势非常多的优势,比如更容易保护知识产权更容易保护知识产权不被复制,因为我们知道在这个世界上,在知识产权的保护上原创者往往都要花费很大的精力在这方面,而;另外,增强了产品的智能化增强了产品的智能化,基于纯“软”设计方法设计的产品,在硬件不变的情况下,在硬件不变的情况下,更容易对产品进行改进和升级更容易对产品进行改进和升级,并为客户新产品赢取及早面市的时间。 可编程逻辑器件原理可编程逻辑器件原理1.3 FPGA器件编
20、程技术器件编程技术 1.3.1 熔丝互连编程技术熔丝互连编程技术在FPGA的可编程技术中,最容易理解的可编程技术就是熔丝互连技术,下面我们举例说明熔丝互连技术的原理。可编程逻辑器件原理可编程逻辑器件原理提起“熔丝熔丝”,我们不由地想起家里面的经常可以看到的之类的东西,比如电视机,在出现某些危险时(比如电视功率突然变大),保险丝就会熔断,结果使得电路开路,避免剩下的电路被继续烧坏;在集成电路里面,道理其实是一样的,只不过没有那么直观,熔丝的尺度小到显微熔丝的尺度小到显微镜下才可以看到,其熔断的方式也不是用大功率电压来实镜下才可以看到,其熔断的方式也不是用大功率电压来实现的,而是靠一定的工艺来确定
21、的。现的,而是靠一定的工艺来确定的。 可编程逻辑器件原理可编程逻辑器件原理图1-5 未编程的熔丝连接图 可编程逻辑器件原理可编程逻辑器件原理虽然,但是对理解新型FPGA可编程技术还是非常有用的,在这里我们仅做简单的介绍。当拿到一个基于熔丝互连技术的可编程器件时,所有的熔丝都是完好的,保持着连接的状态,参见图1-5。此时,与门的输出一直保持为0,其原理非常的简单:当a为0时,与门输入端为0,输出必然为0;当a为1时,a的非门输出为0,与门输入端仍为0,输出必然还是0。同样的情况对于b来说也是一样的。那么我们可以通过在输入端加上相当大的电流和电压脉冲,熔断不需要的熔丝相当大的电流和电压脉冲,熔断不
22、需要的熔丝,与门的输出逻辑值才可以变化,比如我们熔断Faf和Fbt,如图1-6所示。 可编程逻辑器件原理可编程逻辑器件原理图1-6 编程之后的熔丝连接图 可编程逻辑器件原理可编程逻辑器件原理这样,输入a的非门输出和输入b的原值都和与门输入端断开,那么对应的这两个信号相连的负载就起了作用对应的这两个信号相连的负载就起了作用,将与门的输入值拉高而变成逻辑1,器件表现为新的功能,即 y=a&(!b) 以上过程详细描述了熔丝连接实现可编程逻辑器件的原理。需要注意的是,这种通过熔断熔丝的方法实现器件编程,通过熔断熔丝的方法实现器件编程,是不能再恢复原状的,所以这种器件为一次性可编程器件是不能再恢
23、复原状的,所以这种器件为一次性可编程器件,即OTP(One Time Programmable,一次性可编程,一次性可编程)器件器件。熔丝互连技术已经不被当前任何器件作为一种可编程器件技术而使用。现代FPGA编程器件一般基于以下三种技术一般基于以下三种技术:反熔丝、反熔丝、SRAM和和FLASH或或EPROM。 可编程逻辑器件原理可编程逻辑器件原理1.3.2 基于反熔丝的编程技术基于反熔丝的编程技术与熔丝连接技术相反,反熔丝技术是在每个可配置的输入端上都有反熔丝的连接;当处于未编程状态时,反熔丝当处于未编程状态时,反熔丝的电阻非常高,可以认为是开路的电阻非常高,可以认为是开路,如图1-7所示,
24、即反熔丝器件未编程之前的状态。 图1-7 未编程的反熔丝连接原理图 可编程逻辑器件原理可编程逻辑器件原理我们可以通过对器件编程,而使输入端反熔丝“变长”,例如,可以加在输入a的非门和输入b的原值所对应的反熔丝上让其“变长”,器件将实现函数y=(!a)&b的功能。编程后的反熔丝结构如图1-8所示。 图1-8 编程之后的反熔丝连接图 可编程逻辑器件原理可编程逻辑器件原理反熔丝开始时是连接两个金属连线的微型非晶硅反熔丝开始时是连接两个金属连线的微型非晶硅,在处于未编程状态时,非晶硅表现为电阻超过非晶硅表现为电阻超过109 的绝缘体的绝缘体。在发生编程行为之后,绝缘体的非晶硅转化成导电的多晶编
25、程行为之后,绝缘体的非晶硅转化成导电的多晶硅硅而实现了电流的导通,如图1-9所示。图1-9 反熔丝的编程过程 可编程逻辑器件原理可编程逻辑器件原理具有反熔丝结构的器件的特点是速度极快,功耗极低。速度极快,功耗极低。基于反熔丝的FPGA器件使用专门的器件编程器来进行编程,目前来说,Actel公司的主要FPGA产品都是基于反熔丝结构的,因为这种器件有许多优势许多优势:(1) 基于反熔丝结构反熔丝结构的FPGA器件是非易失性是非易失性的,因为其配置的数据在系统断电之后仍能保持配置的数据在系统断电之后仍能保持,如果数据已经配置过,那么在系统上电之后立刻就能执行代码在系统上电之后立刻就能执行代码,所以相
26、对我们后面要介绍的SRAM结构器件来说(每次上电都需要配置数据),上电后执行代码速度快,几乎没有延时,而且省去上电后执行代码速度快,几乎没有延时,而且省去外围的配置存储器,电路设计也相对简单了。外围的配置存储器,电路设计也相对简单了。 可编程逻辑器件原理可编程逻辑器件原理(2) 反熔丝结构器件反熔丝结构器件更为卓越的优势在于其内部互连结其内部互连结构是天生构是天生“防辐射防辐射”的,它相对来说不受电磁辐射的影响,这对军事和宇航应用具有特别的吸引力。因为在外界环境比较恶劣的情况下,基于基于SRAM元件的配置单元被射线击中时元件的配置单元被射线击中时可能会发生翻转,因为在地球外层中有大量的射线可能
27、会发生翻转,因为在地球外层中有大量的射线,相比之下,反熔丝结构的FPGA是不会受这个条件影响的。 可编程逻辑器件原理可编程逻辑器件原理(3) 基于反熔丝结构的器件配置数据与器件是融合在一基于反熔丝结构的器件配置数据与器件是融合在一起的起的。我们了解一下反熔丝器件的编程过程:在默认情况下编程器编程时,首先测试反熔丝是否被编程,然后持续进行验证,并把其状态与配置文件中定义的状态进行对比。所以编程器是可以读取器件的每个单元状态的,但是一旦编程之一旦编程之后,就会设置一个专门的反熔丝,来防止随后从器件中读后,就会设置一个专门的反熔丝,来防止随后从器件中读取任何配置数据。取任何配置数据。因此,即使器件被
28、破坏,编程和未编程的器件的反熔丝显示也完全一样,实际上所有的反熔丝都嵌入内部的金属层,让让“逆向工程逆向工程”根本不可能实现根本不可能实现。 可编程逻辑器件原理可编程逻辑器件原理(4) 反熔丝结构反熔丝结构的器件还有其他的优势其他的优势,比如在功耗上功耗上。实际上基于反熔丝结构的器件只消耗等价的基于只消耗等价的基于SRAM结构结构器件功耗的20%,这样的数字确实非常让人兴奋。同时,反熔丝器件的面积也是非常的小面积也是非常的小,它的内部互连延迟非常的小内部互连延迟非常的小,比同等的SRAM单元节省了大量的面积。反熔丝结构的器件。其优势总会给自己带来麻烦,就像能量守恒定律一样,也许自然界的规律都是
29、这样的。反熔丝器件相对SRAM器件来说,制造工艺复杂的多制造工艺复杂的多,由于这个原因,反熔丝器件总是落后于基于SRAM工艺器件至少一代。另外,反熔丝工艺还有一个不足之处在于它是它是OTP器件器件,一旦编程编程完毕完毕,其功能就固定了,不能再进行改变不能再进行改变,这将导致在开发初期的难度非常高。 可编程逻辑器件原理可编程逻辑器件原理1.3.3 基于基于SRAM的可编程技术的可编程技术半导体RAM有两种类型,一种为动态动态RAM (DRAM),另外一种为静态静态RAM(SRAM)。对于,每个单元是由一个“晶体管晶体管电容电容”组构成的,这也是其称为动态的原因:需要不断给电容充电,才能保持数据需
30、要不断给电容充电,才能保持数据。每个单元必须周期性地补充电荷,这种操作习惯上称为“刷新刷新”。DRAM虽然需要复杂的刷新电路需要复杂的刷新电路才能工作,但是其优点在优点在于可以将存储容量做得非常大于可以将存储容量做得非常大。然而,对于我们所讨论的可编程逻辑器件来说,DRAM没有任何吸引力,而SRAM反而成为可编程技术的重要实现反而成为可编程技术的重要实现方式,也是目前主流方式,也是目前主流FPGA所采用的技术。所采用的技术。可编程逻辑器件原理可编程逻辑器件原理SRAM即静态静态RAM,一旦将值写入SRAM单元,只要不放只要不放电,除非被刻意修改,其值是不会改变的电,除非被刻意修改,其值是不会改
31、变的。以单个基于SRAM技术的可编程单元来举例,如图1-10所示。整个单元包括一个多晶体管SRAM存储元件,此元件的输出驱动着一个额外的控制晶体管,根据存储的内容为逻辑0或者1,晶体管将被置为关(OFF)或者开(ON)状态。大部分的FPGA都采用SRAM结构。我们熟知的两家FPGA公司Xilinx和Altera公司所有的FPGA都基于SRAM结构。 图1-10 SRAM基本可编程单元 可编程逻辑器件原理可编程逻辑器件原理基于基于SRAM结构结构的FPGA的最大优势在于可以非常快速最大优势在于可以非常快速地利用可编程技术实施和验证新的想法地利用可编程技术实施和验证新的想法。更有创意的是,。基于S
32、RAM结构的FPGA的另外一个优势在于这些器件能够站在技术的最前沿能够站在技术的最前沿。FPGA生产厂家可以利用许多其他利用许多其他的致力于存储设备公司在工艺领域投入的巨大研发资源,的致力于存储设备公司在工艺领域投入的巨大研发资源,扩大扩大FPGA的规模和提高的规模和提高FPGA的工艺水平的工艺水平,比如目前Xilinx公司最先进的FPGA工艺在40 nm,而Altera公司的FPGA最先进的工艺水平在45 nm。这一点容易理解,因为因为基于基于SRAM结构的结构的FPGA可以与其他存储器件共享相同的工可以与其他存储器件共享相同的工艺技术艺技术。 可编程逻辑器件原理可编程逻辑器件原理然而,基于
33、SRAM结构的FPGA其不足之处也是比较多的:(1) 每个存储单元消耗大量的硅片面积每个存储单元消耗大量的硅片面积,因为这些单元是由4个或6个晶体管配置成一个锁存器而形成的。(2) 当系统掉电之后,所有配置的数据都会丢失系统掉电之后,所有配置的数据都会丢失,所以在系统重新上电之后需要重新进行配置。 可编程逻辑器件原理可编程逻辑器件原理(3) 基于基于SRAM的FPGA很难保护知识产权很难保护知识产权,因为配置文件一般都存储在外部存储器当中,所以很难保证别人不会很难保证别人不会读出存储器当中的数据读出存储器当中的数据。虽然目前没有商业工具能够读取配置文件的内容并产生原理图和网表文件,但是直接从存
34、储直接从存储器当中拷贝出数据然后再复原你的产品却还不是超出这些器当中拷贝出数据然后再复原你的产品却还不是超出这些“逆向工程师逆向工程师”的能力范围的的能力范围的,只是看是不是值得花费时间和精力。 可编程逻辑器件原理可编程逻辑器件原理幸好目前基于基于SRAM的FPGA支持比特流加密比特流加密,这种情况下,最终配置的数据经过加密之后存入外部存储器件最终配置的数据经过加密之后存入外部存储器件。密钥本身经过密钥本身经过FPGA的的JTAG端口载入一个端口载入一个FPGA内部专用内部专用基于基于SRAM的寄存器的寄存器,与一些相关逻辑配合,密钥在加密配置比特流载入器件时对比特流解密运算。但是这也造成了一
35、定的不便,我们要保持这个存储密钥的寄存器有效,需要要保持这个存储密钥的寄存器有效,需要在电路板上面有一组备用电池在电路板上面有一组备用电池,而且这个电池模块需要长期有效(比如10年),这样也增加了电路板的面积。 可编程逻辑器件原理可编程逻辑器件原理1.3.4 基于基于FLASH或或E2PROM的可编程技术的可编程技术基于FLASH或E2PROM的FPGA器件与基于SRAM的器件一样,所有的配置单元都连接在一条长的寄存器链上,所有的配置单元都连接在一条长的寄存器链上,这些器件可以离线用编程器进行编程这些器件可以离线用编程器进行编程,有些版本也可以使用在系统编程在系统编程(ISP),但是其编程时间
36、是基于编程时间是基于SRAM工艺的工艺的3倍左右倍左右。尽管如此,它也有自己的优势:(1) 编程之后数据是非易失性编程之后数据是非易失性的,所以意味着器件上电上电之后可以立即执行,没有延时之后可以立即执行,没有延时。这个特性有助于系统组件的初始化、处理器唤醒紧急任务的执行紧急任务的执行,这也是基于FLASH的FPGA器件被广泛应用于航天和军事领域的原因被广泛应用于航天和军事领域的原因。 可编程逻辑器件原理可编程逻辑器件原理(2) 为了保护配置数据保护配置数据,这些器件中使用了多位的密钥多位的密钥,范围可以从50位到几百位。当你对器件编程后,可以载入你的用户定义密钥来确保配置数据的安全。载入密钥
37、之后,从从器件中读出数据或写入新数据的唯一途径是通过器件中读出数据或写入新数据的唯一途径是通过JTAG端口端口载入你的密钥的副本载入你的密钥的副本,那么是不是还有破解的可能呢?目前JTAG的速度大约是几十兆赫,这样就意味着将所有的可的速度大约是几十兆赫,这样就意味着将所有的可能的值穷举一遍来破解密钥需要能的值穷举一遍来破解密钥需要10亿年亿年。(3) 双晶体管E2PROM和FLASH单元的尺寸尺寸大约是单晶体管的2.5倍,但是它仍然比比SRAM的个头要小的个头要小,所以基于FLASH的器件的内部逻辑更加紧密,而且会减少互连延迟内部逻辑更加紧密,而且会减少互连延迟。 可编程逻辑器件原理可编程逻辑
38、器件原理(4) 基于FLASH的FPGA器件可以实现真正的单芯片解真正的单芯片解决方案决方案,因为它无需额外的配置芯片,所以可以在很多场无需额外的配置芯片,所以可以在很多场合替代合替代CPLD。基于FLASH器件的是其制作工艺其制作工艺除了标准的CMOS工艺之外,还需要大约5个额外的处理步骤,这样,将落后于基于落后于基于SRAM工艺的器件至少一代;同时静态功耗工艺的器件至少一代;同时静态功耗也很大也很大,因为它需要维持大量的内部负载电阻。 可编程逻辑器件原理可编程逻辑器件原理所以,可以这样总结FPGA的各种结构的特点各种结构的特点:(1) 基于FLASH结构的FPGA与反熔丝结构的FPGA不同
39、,但是与基于SRAM结构的FPGA一样具有可重复编程性具有可重复编程性;(2) 基于FLASH结构的FPGA拥有和基于SRAM结构的FPGA同样的制造过程,同时拥有基于反熔丝技术FPGA的同样低的功耗低的功耗;(3) 基于FLASH结构的FPGA相对来说速度更快速度更快。 可编程逻辑器件原理可编程逻辑器件原理1.4 通用通用FPGA的构成结构的构成结构谈起FPGA的结构,通常人们是这样认为的:FPGA的的基本结构基本结构是由大量的相对较小大量的相对较小的可编程可编程逻辑块逻辑块“岛岛”嵌入在可编程可编程互连互连的的“海海”里面构成的。那么还有人会和ASIC 器件进行对比,提起FPGA都说是一种
40、中度颗粒的器件或者都说是一种中度颗粒的器件或者说是粗颗粒器件说是粗颗粒器件。其实,FPGA是在ASIC的基础上发展起来的,一开始,FPGA的发明者还是按照ASIC的思维模式来设计新型的可编程逻辑器件的。从人们对FPGA颗粒的研究就可以了解FPGA新型结构演变的过程。 可编程逻辑器件原理可编程逻辑器件原理1.4.1 现代现代FPGA的基本逻辑单元的基本逻辑单元Xilinx公司的FPGA的基本逻辑单元称为Slice(切片切片),而Altera公司的FPGA的基本逻辑单元称为LE(Logic Element)。一个Slice包含两个核心逻辑单元LC(Logic Cell)。Slice的结构图如图1-
41、11所示。一个LC是由一个4输入的查找表输入的查找表(LUT)、一个多路、一个多路复用器和一个寄存器复用器和一个寄存器组成的。其结构如图1-12所示。图1-11 Slice的基本结构图(两个LC) 图1-12 LC的结构图 可编程逻辑器件原理可编程逻辑器件原理MUX和D触发器的作用都很熟悉,介绍查找表的原理。 查找表查找表(Look-Up-Table)简称简称LUT,其本质上为本质上为RAM,如4输入LUT,即包括有4位地址线的161的RAM在数字电路中,n输入的逻辑运算最多只能输出2n个结果,同样的道理,4输入LUT共有16种输出结果。若将这若将这16种结果全部存储下来种结果全部存储下来,就
42、可可以根据不同的地址输入以根据不同的地址输入“查找查找”出相应输出结果出相应输出结果。LUT实现4输入与门的示例如表1-1所示。 可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理下面我们举例来理解查找表的概念。如图1-13所示,a、b、c、d由由FPGA芯片的管脚输入后进入可编程连线芯片的管脚输入后进入可编程连线,然后作为地址线连到作为地址线连到LUT,LUT中已经事先写入了所有可能的中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出逻辑结果,通过地址查找到相应的数据然后输出,这样组组合逻辑就实现了合逻辑就实现了。该电路中D触发器是直接利用LUT后面的
43、D触发器来实现的。时钟信号时钟信号CLK由由I/O脚输入后进入芯片脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端内部的时钟专用通道,直接连接到触发器的时钟端。触发触发器的输出与器的输出与I/O脚相连,把结果输出到芯片管脚。脚相连,把结果输出到芯片管脚。这样PLD就完成了图1-13所示电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预。) 可编程逻辑器件原理可编程逻辑器件原理图1-13 查找表示例 可编程逻辑器件原理可编程逻辑器件原理这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个一个LUT无法完成的电路,就需要通无法完成的电路,就需要通过
44、进位逻辑将多个单元相连过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻就可以实现复杂的逻辑运算。辑运算。LUT仅仅是FPGA最基本的组成。目前来说,FPGA的复杂程度远远不能用LUT来描述。在Xilinx FPGA中,LUT组成组成LC,进一步形成进一步形成Slice(切片切片),。而Slice上一级是上一级是CLB(可配置逻辑块可配置逻辑块)。CLB的实际数量会根据器件的不同而不同,CLB之间的可编程互连是通过可配置的之间的可编程互连是通过可配置的开开关矩阵关矩阵组成的组成的,这样可编程逻辑器件原理可编程逻辑器件原理Xilinx FPGA中,这样在同一同一Slice的的LC之间有快速
45、互连之间有快速互连。在同一同一CLB中的中的Slice之之间稍慢些间稍慢些。接下来是接下来是CLB之间的互连之间的互连,这样可以比较容易地把它们彼此连在一起,同时也不会增加太多的互连延迟,从而达到优化平衡。 可编程逻辑器件原理可编程逻辑器件原理1.4.2 Xilinx Spartan-3 FPGA的基本结构的基本结构查找表和多路复用器是查找表和多路复用器是FPGA的最基本的结构的最基本的结构。但是FPGA的结构不是仅仅这么简单的,由于应用的不同,每款FPGA的内部结构都有所不同。总体来说,现代FPGA由如下7个部分组成个部分组成:,如图1-14所示。下面我们以Spartan-3系列FPGA为例
46、介绍主流基于中度颗粒FPGA的基本结构。可编程逻辑器件原理可编程逻辑器件原理图1-14 FPGA结构图 可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理可编程逻辑器件原理1可编程输入可编程输入/输出单元输出单元可编程输入/输出单元(I/O单元,IOB)是FPGA与外界电与外界电路的接口路的接口,用于完成不同的电器特性下对输入完成不同的电器特性下对输入/输出信号的输出信号的驱动以及匹配的要求驱动以及匹配的要求。如今FPGA的通用管脚数目达上千个,为了FPGA在电子设备中有更多的兼容性有更多的兼容性,可编程输入/输出单元还设计了许多巧妙且非常实用的功能:
47、可编程逻辑器件原理可编程逻辑器件原理(1) 通过软件的编程,可以适配不同的电器标准以及物适配不同的电器标准以及物理特性理特性。不同器件厂商的不同系列FPGA所支持的I/O标准有所不同,常用的常用的I/O标准标准大部分器件都支持单端I/O标准LVCMOS、LVTTL、HSTL、SSTL、GTL、PCI等,差分I/O标准有:LVDS、HT、LVPECL、BLVDS、差分HSTL、SSTL等。另外,通过软件编程可以配置可以配置FPGA每个接口块每个接口块的不同电压标准的不同电压标准,可支持1.8 V、2.5 V、3.3 V等。 可编程逻辑器件原理可编程逻辑器件原理(2) FPGA的I/O口单元支持一
48、些特殊的功能支持一些特殊的功能,包括可编程配置配置I/O口的驱动能力和上下拉电阻口的驱动能力和上下拉电阻等。在差分信号传输差分信号传输中中,为了使得输入或输出端能够将接收器或者驱动器的阻抗阻抗匹配匹配,在I/O口单元增加了数控阻抗增加了数控阻抗(DCI)技术技术,DCI还具备补偿温度变化和供电电压波动的功能。高性能的高性能的FPGA支持支持高级高级Select/IO资源,接收器的最高频率可达到资源,接收器的最高频率可达到11.2 Gb/s。I/O口的新的功能给FPGA的应用增添了很多亮点,使得FPGA在与ASIC的对抗中显得更为灵活多变。可编程逻辑器件原理可编程逻辑器件原理(3) Sparta
49、n-3系列FPGA的I/O口管脚都有可编程控制的可编程控制的上下拉电阻上下拉电阻,可以在ISE实现过程中,通过约束管脚使其有效。另外,还可以约束管脚的驱动电流大小约束管脚的驱动电流大小,根据电平标准不同,可以支持的驱动电流值有所不同,还可以编程控制管脚的回转快慢,每个编程控制管脚的回转快慢,每个I/O管脚都有保持电路,在所有驱动都撤销时,管脚还会保管脚都有保持电路,在所有驱动都撤销时,管脚还会保持原来的值持原来的值。I/O管脚支持支持DCI,有效地降低了信号的反射,提高了信号,有效地降低了信号的反射,提高了信号的质量的质量。 可编程逻辑器件原理可编程逻辑器件原理2可配置逻辑块可配置逻辑块(CL
50、B)可配置逻辑块是Xlinx FPGA内部的基本逻辑单元,也是实现时序电路和组合逻辑的主要资源实现时序电路和组合逻辑的主要资源。在Altera器件中,用逻辑阵列块(LAB)代替CLB,实际上两者之间没有什么区别。CLB的实际数量和特性会根据器件的不同而不同,我们也可以理解CLB是反映是反映FPGA规模和能力的一个重要标志。规模和能力的一个重要标志。CLB以阵列形式排列在以阵列形式排列在FPGA中中,如图1-15所示。 可编程逻辑器件原理可编程逻辑器件原理图1-15 FPGA CLB 结构图 可编程逻辑器件原理可编程逻辑器件原理在,每个每个CLB包括包括4个个Slice,同时包含一个可配置开关矩
51、阵可配置开关矩阵和一些其他资源,包括多路复用器、触多路复用器、触发器发器等。其中,开关矩阵不仅可以非常灵活地对其进行配开关矩阵不仅可以非常灵活地对其进行配置,而且提供了本置,而且提供了本CLB和别的和别的CLB之间的灵活互连之间的灵活互连。4个Slice分成两组,每组Slice按列排布,如图1-16所示,并且带有独立的进位链独立的进位链。左边的一组左边的一组Slice主要完成逻辑和存主要完成逻辑和存储功能,称为储功能,称为SLICEM;右边的一组右边的一组Slice主要完成逻辑功能,主要完成逻辑功能,称为称为SLICEL。这样一来,SLICEL降低了CLB的功耗和减少了CLB的空间,同时更有利
52、于SLICEM更好地发挥。所以每每个个CLB模块不仅可以用于实现组合逻辑、时序逻辑,还可模块不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式以配置为分布式RAM和分布式和分布式ROM,如图1-16所示。可编程逻辑器件原理可编程逻辑器件原理图1-16 Spartan-3E CLB结构图 可编程逻辑器件原理可编程逻辑器件原理Slice是Xilinx公司定义的基本逻辑单位基本逻辑单位。一个Slice由两个4输入或者6输入查找表函数、进位逻辑和存储单元组成。不管是SLICEM还是SLICEL,都包括如下几个部分:。SLICEM还包还包括两个括两个161的分布式的分布式RAM块块(RAM16)和两
53、个和两个16位的移位位的移位寄存器寄存器SRL16。 可编程逻辑器件原理可编程逻辑器件原理算术逻辑单元算术逻辑单元包括一个异或门和一个专用与门。一个一个异或门可以是一个异或门可以是一个Slice,实现,实现2位全加操作;专用与门可以位全加操作;专用与门可以用于提高乘法器的效率。用于提高乘法器的效率。进位逻辑单元由专用进位信号和函数复用器组成,用于实现快速算术加减法操作和提高用于实现快速算术加减法操作和提高CLB的处理速度的处理速度。4输入函数发生器用于实现4输入LUT、分布式RAM和16位移位寄存器。 可编程逻辑器件原理可编程逻辑器件原理3数字时钟管理单元数字时钟管理单元(DCM)FPGA内部
54、所有的同步数字逻辑都需要由时钟信号来驱动。时钟源需要从外部引入时钟源需要从外部引入,通过专用的专用的FPGA时钟输入管时钟输入管脚脚进入FPGA,接着传送到整个器件并连接到适当的寄存器当中。业界知名的FPGA都提供数字时钟管理模块。可编程逻辑器件原理可编程逻辑器件原理随着FPGA能够处理的数字系统的能力越来越强,所需要的时钟也越来越复杂,于是就有了时钟树时钟树的概念。时钟树就是在在FPGA中有主时钟,同时存在由主时钟产生的子时钟,中有主时钟,同时存在由主时钟产生的子时钟,这样就形成一种这样就形成一种“树树”一样的结构一样的结构,时钟树结构能保证所时钟树结构能保证所有触发器接收到的信号尽可能地一
55、致有触发器接收到的信号尽可能地一致。不过我们可以想象,为了解决这个问题,时钟树都采用专时钟树都采用专门的走线,与通用的可编程模块分离,以避免抖动的产生门的走线,与通用的可编程模块分离,以避免抖动的产生。这也是在FPGA设计原则中强调的原则之一,时钟一定要走时钟一定要走全局管脚。全局管脚。 可编程逻辑器件原理可编程逻辑器件原理关于时钟还有一个重要的概念就是时钟管理器时钟管理器。在通常情况下,都是将外部时钟接到时钟专用管脚,然后通过专外部时钟接到时钟专用管脚,然后通过专用管脚连接的时钟管理器模块产生一定数量的子时钟用管脚连接的时钟管理器模块产生一定数量的子时钟。这些子时钟可以用来驱动内部时钟树,或
56、者可以输出作为系统别的器件的时钟。不同系列的FPGA的时钟管理器的能力有所不同,但是都有下面共有的特性: 可编程逻辑器件原理可编程逻辑器件原理1) 来自外部世界的理想时钟信号在通过系统通道时理想时钟信号在通过系统通道时,时时钟沿将会有大小不一的抖动钟沿将会有大小不一的抖动(即来的早一些或晚些即来的早一些或晚些),这样在,这样在某一个时钟点上将是多个时钟沿的重叠而产生一个某一个时钟点上将是多个时钟沿的重叠而产生一个“模糊模糊”时钟时钟,如图1-17所示。FPGA的的时钟管理器可以检测并纠正时钟管理器可以检测并纠正抖动,提供一个抖动,提供一个“干净干净”的子时钟信号的子时钟信号。所以在设计FPGA
57、系统时,CLK要从专用时钟管脚引入。如果要产生子时钟,要从专用时钟管脚引入。如果要产生子时钟,则最好采用则最好采用DCM来产生来产生。例如有一个100 MHz的时钟,在FPGA器件内部传输时是有延时的,虽然说电信号传输的速率很高,但是此的。例如,100 MHz信号的周期是信号的周期是10 ns,所以只要延时几个纳秒,所以只要延时几个纳秒,信号就会严重失真信号就会严重失真,而经过DCM之后就可以避免这种抖动的产生。可编程逻辑器件原理可编程逻辑器件原理图1-17 抖动示意图 可编程逻辑器件原理可编程逻辑器件原理2) 在许多情况下,外部时钟往往在频率上满足不了系统外部时钟往往在频率上满足不了系统要求
58、。要求。这表现在两个方面,一方面是时钟的数量在两个方面,一方面是时钟的数量,比如系统需要若干个不同频率的时钟,如果都从外部管脚引入,则增加了很多成本;另一方面是时钟频率另一方面是时钟频率,如高频率的时钟高频率的时钟信号,在信号,在PCB板上传输极易受外界环境的影响,所以电路板上传输极易受外界环境的影响,所以电路板上的时钟频率尽量低一些板上的时钟频率尽量低一些,才能保障系统稳定工作。我们通过DCM就可以解决这两个问题,FPGA管脚输入的低管脚输入的低频率的时钟信号可以通过频率的时钟信号可以通过DCM转化成高频率时钟信号转化成高频率时钟信号,比如说系统输入时钟为50 MHz,需要产生三个输出时钟:
59、40 MHz、25 MHz、200 MHz。那么用DCM对输入时钟进行五分之四、两分频、四之后,可分别产生所需时钟,非常方便。 可编程逻辑器件原理可编程逻辑器件原理3) 相位调整在数字系统中应用得也很多,比如PCIE或者DDR控制器接口都需要内部时钟与外部时钟之间有相位偏控制器接口都需要内部时钟与外部时钟之间有相位偏移移。时钟管理器允许在某些固定的相位进行调整某些固定的相位进行调整,比如120或者240等,在时钟树中也允许对每个子时钟进行在时钟树中也允许对每个子时钟进行相位调整相位调整,如图1-18所示。 可编程逻辑器件原理可编程逻辑器件原理图1-18 相位调整示意图 可编程逻辑器件原理可编程
60、逻辑器件原理4) 设想在时钟树的子时钟,经过DCM之后其相位和频率都与输入时钟有关系,但是,经过时钟管理器之后的时钟经过时钟管理器之后的时钟一定有延时一定有延时,这时如果如果DCM没有对此延时进行处理,子时没有对此延时进行处理,子时钟输出稍晚于输入时钟钟输出稍晚于输入时钟,就会带来很多问题,也就是。因而时钟管理器就将子时钟同时作为输入,来比较两个信号,并给子时钟一个专门的延迟,使得子时钟和主时使得子时钟和主时钟重新对齐钟重新对齐,如图1-19所示。 可编程逻辑器件原理可编程逻辑器件原理图1-19 时钟自动校正示意图 可编程逻辑器件原理可编程逻辑器件原理Spartan-3采用DCM为数字设计提供了灵活、全面的时钟资源,除了XC3S50仅有两个DCM之外,其他Spar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度工伤事故赔偿及赔偿金计算标准协议
- 二零二五年度全国旅游合同集合:旅游大数据分析及应用合作协议
- 二零二五年度智能交通项目经理服务契约
- 二零二五年度割双眼皮手术术前术后医疗纠纷处理协议
- 2025年度耕地租赁与农业绿色防控技术合作合同
- 2025年度鱼塘承包及渔业人才培养合作协议
- 2025年度自驾游车辆安全责任免除协议书
- 2025年度服饰店铺委托经营合作协议
- 二零二五年度农产品销售中介服务协议
- 2025年度虚拟现实与增强现实股东合作协议书
- Moldflow模流分析基础教程 课件 第7章
- 四川省高等教育自学考试毕业生登记表【模板】
- 食品营养学(暨南大学)智慧树知到答案章节测试2023年
- 核和辐射事故现场卫生救援
- 学生心理危机识别与干预(家长教师版)
- 广西建设工程质量检测和建筑材料试验收费项目及标准指导性意见(新)2023.10.11
- 象征手法 (2)课件
- 八项规定学习课件
- 《过零丁洋》公开课件
- 黄精栽培技术PPT
- 08S305-小型潜水泵选用及安装图集
评论
0/150
提交评论