FPGA的硬件结构及运算功能课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《FPGA的硬件结构及运算功能课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FPGA 硬件 结构 运算 功能 课件
- 资源描述:
-
1、 本书所有的信号处理的实现都是在Xilinx公司的FPGA芯片上实现。本章主要介绍Xilinx的三个最重要的FPGA产品Virtex-II,Virtex-4和Virtex-5的内部结构及主要的功能,在此基础上介绍了基于FPGA算数运算的一些基本理论。了解这些FPGA的内部结构及功能,为读者深入掌握使用FPGA实现数字信号处理算法打下良好基础。如图所示,Xilinx的Virtex-II系列的FPGA内的一个CLB包含四片slice单元,而Virtex和Spartan系列的FPGA每个CLB 包含两片slice单元。下面给出CLB实现的功能:图2.1 CLB的内部结构 1.CLB中的slice逻辑
2、可实现任何的数字逻辑设计;2.Slice在CLB中被互连到一起并且通过开关矩阵将CLB连接起来;3Cin和Cout信号对实现算术功能非常重要。每个CLB列中存在两个相互独立的Cin/Cout列;4一片slice可实现一个2位全加器,所以一个CLB可实现两个独立的4位全加器,作为与其它CLB 协同工作的高位宽度加法运算的一部分。一旦设计人使用VHDL或Verilog语言完成设计输入,设计将被综合,并得出一个在指定FPGA上实现的方案。设计者指定目标器件的类型(比如厂商,系列,规格,封装类型,速率等级)。综合处理是一个复杂的过程,它将任何可综合的VHDL/Verilog通过软件工具转转换为FPGA
3、可以识别的比特流文件。对于Xilinx的产品,综合工具将决定如何使用可用的slice逻辑来执行设计的数字逻辑操作。由FPGA制造商提供的工具通过一系列的复杂操作来接收设计文件,其目的是将设计转化成一种比特流,该比特流可被下载并对FPGA 进行配置。Slice是CLB内的功能单元。衡量Xilinx FPGA资源规模的主要标准是slice的数量。图2.2给出了Slice的内部结构。在Slice内实现用户设计的逻辑行为操作。图图2.2 Slice的内部结构的内部结构 Slice可以完成的功能主要有:1)用户设计功能的绝大部分可通过CLB中的slice来实现;2)不同slice之间存在着多种互连的可行
4、性;3)LUT可实现任何4输入布尔函数。绝大部分的数字逻辑设计均可使用4输入LUT执行逻辑操作来实现;4)LUT可用做移位寄存器SRL或者RAM;寄存器提供了实现同步逻辑的方法;1)当FPGA工作频率较高时,正确的使用寄存器显得十分重要,不正确的使用寄存器将降低系统的工作性能;2)多路复用器和CY单元提供了slice中信号布线的可能性;3)底部还包括了算术逻辑与门单元,使得乘法的实现更为有效。Virtex-II的FPGA内部使用的是四输入的LUT。LUT的功能主要有:1)一个4输入布尔函数映射到FPGA内的LUT中;加载到LUT中的比特位包含了用于配置器件的比特流。综合工具将决定用于实现用户设
5、计的LUT的内容,多数情况下设计人员不需要关注这一点。偶尔情况下,需要设计人员人工指定设计的某些部分,并确定LUT的内容(例如,该如何将它们连接在一起)。在对时间和芯片面积要求极为苛刻的应用时,为保证LUT能够满足性能要求,就需要设计人员进行手工优化。这些手工优化类似于用汇编机器代码人工编写部分的软件代码,在人工优化时,不需要编译器做这个工作。如图2.3所示,Xilinx的LUT可实现一个16位移位寄存器(称为SRL16),并且当它与LUT的寄存器连接在一起时,可以在半个slice中实现17个可能的延迟操作。移位寄存器的功能主要有:图图2.3 移位寄存器的结构移位寄存器的结构 移位寄存器可被级
6、联以构成更长的延时;可以使用地址线在任何一点对延迟线进行选择,这样就可以产生长度小于最大延迟的任何延迟。在FPGA内,一方面,由于信号必须通过LUT或数据线进行传输,因此FPGA的时钟工作频率通常由寄存器间的最长路径所限制;另一方面,使用slice寄存器使最长路径尽可能最短,这样可以最大限度地提高时钟工作频率。这是需要掌握的一个 FPGA 设计的基本设计原理。如图2.4所示,在每个时钟沿上,信号在到达下一个触发器之前,必须通过布线、LUT和MUX等传输数据。在每个时钟沿上,对器件上的所有信号来说,这是一定会发生的。有些信号会比其他信号传输的更远。寄存器之间最长的信号路径被称之为关键路径。应当注
7、意的是,寄存器基本上不会影响数据延迟,因为每个LUT都与一个寄存器组成对,而这些寄存器可以按照要求存储LUT的输出。图图2.4 寄存器传输性能比较寄存器传输性能比较 正是这些关键路径决定了FPGA可以达到的最高时钟速率。注意设计人员可根据需要任意选择时钟率。如果关键路径过长,设计的时钟频率将很可能无法满足指定应用的要求。在这种情况下,设计人员必须再回到软件工具或重新设计,并尝试使硬件运行得更快的设计方法,比如:流水线操作,重设计,增加软件工具的努力等级,增加/去除设计约束或者手工编辑设计以优化硬件并缩短关键路径。如图2.5所示,Virtex-II系列的FPGA提供了18Kb的专用块RAM(Bl
8、ock RAM,BRAM)资源。最大的容量的XC2VP125 FPGA芯片具有556个BRAM,即总共556*18=10,008Kb的BRAM资源。BRAM可在器件配置时被写入,或是在实际操作中进行读/写操作。设计人员通过VHDL/Verilog代码来指定如何使用RAM底层原语。图2.5 BRAM的布局结构 如图2.2所示,LUT可存储16比特数据并可被用做16x1的RAM。两个LUT可形成一个32x1单端口RAM,或一个16x1双端口RAM(即使用同一个地址从两个RAM中得到数据)。对于DSP的应用。在器件上任意位置建立小型1,738Kb的分布式RAM。因为RAM的功能对DSP的实现极其重要
9、。使用一个小型分布式RAM的范例可作为通信系统中使用的碎片序列。该序列将被保存到系统中需要它“碎裂”数据的位置。使用小型RAM配置形成更大的单/双端口配置是对FPGA灵活性的进一步的要求。Virtex-II的FPGA芯片内提供了嵌入的硬核乘法器资源,嵌入式乘法器特征主要表现在以下几个方面:1)乘法器按列排列在CLB之间;2)乘法器为18x18位,并且与BRAM相关联以便于存取数据;3)这些硬核乘法器可以是组合型或者流水线型,其工作频率可以高于300MHz。4)将嵌入式乘法器与LUT结合实现的累加器可以创建MAC引擎;5)可以级联以构成更多位数的乘法器。每个嵌入式乘法器与其临近的BRAM结合在一
10、起,因此这些单元共享互连资源。当乘法器不与 BRAM结合而单独使用时,BRAM仍可被使用,但这时只有18位。乘法器可以根据性能要求只用slice逻辑在FPGA的主逻辑中实现,或者用BRAM与slice组合来实现乘法器模块。在没有嵌入式乘法器可用,或者设计的定时要求过于严格时,则必须用这种方法产生乘法器。如图2.6,Virtex-II系列的FPGA内包括了大量可将器件的不同部分连接起来的布线资源,CLB之间的可配置布线逻辑(通过转换开关)是对时钟信号,进位链等专有布线资源的补充。图图2.6 FPGA内的布线资源内的布线资源 器件中信号的布线通常使用工具来实现。在FPGA上实现一种设计有很多可能方
11、案,软件工具可能需要花费许多时间来为一个合理设计产生一个比特流。因为不同的布线选择取决于一个信号必须传输多远,因此布线的各种可能性按层次结构进行描述。很明显,为了保证高的时钟速率,应该使信号传输尽可能短的距离。专用的时钟分布线特别地重要,因为当它们与数字时钟管理模块(Digital Clock Management,DCM)结合时,它们允许高速时钟在未发生扭曲的情况下驱动器件。Virtex-II系列的FPGA可与板级/系统级上的背板、总线和其它系统接口。其I/O端口的主要性能有:1)支持大多数现有的串行/并行I/O标准;2)Virtex-II系列的FPGA中,包含多达24个RocketIO串行
12、收发器模块,每个收发器可在大于3.125Gb/s的速率下全双工运行;3)Virtex-II系列的FPGA中,用户I/O引脚支持许多高达840Mbps LVDS(低电压差分信号)的单端或差分信号标准;4)Virtex-II Pro X系列支持高达20个速率为10.3125Gbp/s的信道。为了将信号输入到FPGA以及从FPGA输出信号,要求信号能够被高速地送进系统板或者FPGA板上的器件中。在板级系统中,遇到的困难常常是信号串扰、反射、以及振铃等,但是如果所支持的I/O标准的数目被给定,设计FPGA与板级信号的接口还是比较容易的。Virtex-II器件有专用的RocketIO模块处理高速I/O需
13、求,它们也有许多通用I/O引脚选择以满足其它的接口需求。Virtex-4系列的FPGA采用了高级硅模组(Advanced Silicon Modular Block,ASMBL)架构。如图2.7所示,ASMBL通过使用独特的基于列的结构,实现了支持多专门领域应用平台的概念。每列代表一个具有专门功能的硅子系统,如逻辑资源、存储器、I/O、DSP、处理、硬IP和混合信号等。Xilinx公司通过组合不同功能列,组装成面向特定应用类别的专门领域FPGA(与专用不同,专用是指一项单一应用)。图图2.7 ASMBL架构架构 ASMBL架构从两个级别对设计进行了提升,一是解决基于应用领域的设计问题;二是解决
14、在传统ASIC和FPGA设计中都存在的一些技术约束问题。特别指出,ASMBL成功的缓解了与I/O和阵列相关性、电源和地分布、以及硬IP缩放相关的约束问题。下面对这几个问题进行简单的介绍:ASMBL的基于列的结构消除了同时困扰内核约束型和焊盘约束型设计的面积-周长相关性问题。使用ASMBL架构的芯片,只需要分配更多的列给I/O功能就可以容纳额外的I/O焊盘,而不需要增加芯片面积总体尺寸。为了使基于列结构的I/O块能放置在芯片周边以内,基于ASMBL的芯片采用了倒装芯片封装,这样就允许在芯片的任何位置放置焊盘,而不仅仅局限在芯片的周边。倒装芯片技术就是将芯片在封装内“上下颠倒”再进行装配,微小焊球
15、将各个焊盘(I/O、电源等)连接到内部封装互联。然后使用焊球技术将封装引脚连接到一块印刷电路板或其它基片上。除了允许在芯片内部放置焊盘外,倒装封装还提供了比压线封装更强的散热能力。ASMBL架构还提供了FPGA中电源和地的分布能力。与把I/O焊盘放置在FPGA内部类似,设计者可以将电源和地焊盘布局在芯片内部的任何位置。ASMBL对内部电源和地焊盘的支持极大地简化了均衡整个FPGA器件电源分布的任务。同时这还减少了电源下降、接地反弹和时钟畸变(因为时钟缓冲器分布在整个芯片上,故而可以得到更稳定的VDD电源电压和更均衡的接地),从而减少了片上信号完整性和信号延迟问题。采用ASMBEL架构支持对硬硅
16、IP放缩的支持。对于在传统FPGA架构中使用直线排列扩展IP核,向上扩展该核以容纳额外的特性可能会需要更大的FPGA。在基于ASMBL的FPGA中缩放IP则只是意味着以列的方式增加更多的IP,因此可以适合于已有的FPGA面积。这就有效地将IP缩放问题从两维(直线内核)降到一维(按列安排IP,缩放就可以通过增加IP列来完成)。从而,设计人员不必再为将硅IP核装入芯片而去寻找更大更贵的芯片。ASMBL架构的另一个重要特点就是有效地利用了11层金属层,从而增强了在条带状模块上的芯片布线能力。Virtex-4系列具有三个平台:1)用于高性能和高密度逻辑综合应用的LX平台,2)用于高性能和高密度综合应用
17、的LX平台,3)用于高性能信号处理的SX平台,用于全功能处理和SoC嵌入式设计连接应用的FX平台。下面对这几个平台进行简单的介绍 最通用的系列是Virtex-4 LX,即逻辑优化的FPGA平台系列。LX系列功能上与早期的Virtex-II器件类似,没有较新的Virtex-II Pro器件中所嵌入的PowerPC处理器或高速串行I/O。所有类型的软IP内核都可在这一平台的器件中实现,包括各种各样的DSP模块和软核处理器内核。该平台的最主要优点是使用了高密度集成的通用逻辑单元,从而使其成为成本效率最高的逻辑平台。Virtex-4 LX平台将包括多款从小规模至大规模的成员器件,从而使其可适用于多种应
18、用。该系列的逻辑密度将比前代FPGA器件提高一倍。在300mm晶圆上应用先进的90nm制造技术所带来的成本优势,再加上采用成本效率高的器件封装,将使这一平台将被广泛地接受。与前一代平台FPGA相比更高的时钟频率和更低的功耗将使LX平台更适合用于做为替代ASIC的解决方案。Virtex-4 SX信号处理/DSP平台系列中提高了DSP以及RAM单元与逻辑单元的比例。功能模块比例的改变使得这一FPGA平台器件用于高速信号处理时比其它Virtex-4平台占用的螺片面积更小。在此基础上再结合新的DSP逻辑单元,使得可以在Virtex-4SX平台器件中实现最高性能DSP的同时,成本效率最高。具备了显著提高
19、的DSP带宽,与先前Virtex-II Pro器件相比又大大降低了功耗,使得Virtex-4 SX平台提供了比其它任何器件都高的单位成本DSP性能。Virtex-4 DSP专用增强特性包括增加新的工作模式和功能,再与SX平台架构的其它优化相结合,可支持功能更强大的高级DSP IP。Virtex-4 FX全功能平台系列中提供了PowerPC和高速系列收发器。先进的架构、功能特性和制造工艺的结合使得处理器时钟可以达到450MHz。再配合支持从600Mbps到11.1Gbps之间任何速度的高速串行收发器,FX系列成为功能极为强大的高性能平台FPGA系列,可满足嵌入式计算处理以及高速互联应用领域的要求
20、。FX平台集成的高级系统特性对于电信、存储和网络领域以及其它需要高性能处理和大带宽I/O的多种应用来说非常有用。嵌入式计算处理领域主要以涉及复杂数据类型的控制流操作为特征。连接应用领域则涉及基于消息的计算处理,并且主要以异步数据流操作为主。Virtex-4全功能平台器件最适合实现这两个领域中的应用。可配置的逻辑块(Configurable Logic Blocks,CLB)是实现顺序和组合电路的最主要的逻辑资源。每个CLB连接到开关矩阵(Switch Matrix)来访问一般的布线矩阵(routing matrix)。每个CLB单元包含4个互联的slice。这些slice成对地组合在一起。每一
21、对组成一列。SLICEM是指左列的slice对,而SLICEL则是右列的slice对。一列中的每一个slice对都有一个独立进位链;然而,只有在SLICEM中的slice才有一个公共的移位链。一个CLB包括的可用逻辑资源有:1)4个Slice;2)8个LUT;3)8个触发器;4)8个MULT_ANDS,5)2个算术和进位链;6)64比特的分布式RAM;7)64比特的移位寄存器。图2.8 Virtex-4内的CLB排列 两种slice对(SLICEM和SLICEL)共同有的单元是两个函数发生器(查表单元),两个存储单元,函数选择器,进位逻辑和算术运算逻辑。SLICEM和SLICEL使用这些单元来
22、提供逻辑功能、算术运算功能和ROM功能。SLICEM还包括两个附加功能:使用分布式RAM存贮数据以及16位寄存器移位数据。SLICEM拥有slice中最多的单元模块和模块之间的连接关系,因此可以说 SLICEM是一个“超集”。Virtex-4的FPGA函数发生器作为4输入的LUT来实现。对于一个Slice内两个函数发生器(F和G),每个函数发生器都有4个独立的输入。函数发生器能实现任意定义的4输入布尔函数。贯穿LUT的传播延迟与所实现的函数无关。来自函数发生器的信号能离开slice(通过X或Y输出),进入XOR专用门,进入进位逻辑复用器选择线,输入到存储元件的D输入端,或者到MUXF5。v 除
23、了基本的LUTs,Virtex-4 FPGA的Slice也包含复用器(MUXF5和MUXFX)。这些复用器用来连接最多8个函数发生器,用来提供在CLB内的5,6,7,8输入的任意功能。MUXFX是MUXF6,MUXF7,MUXF8中的一个,这是根据CLB内的Slice的位置确定。MUXFX也能被用来映射6,7,8输入的任意功能,并且可以选择宽的逻辑功能。功能和最多9个输入(MUXF5复用器)能在一个Slice内实现。宽功能复用器在同一个CLB内有效的连接LUTs,或者穿过不同的CLB来产生更多输入变量的逻辑。Virtex-4的每个BRAM可存储18Kb的数据,数据读出的时钟频率为500MHz。
24、Virtex-4系列最小规模的FPGA器件包含48个BRAM;Virtex-4系列最大规模的FPGA器件具有552个BRAM。临近的BRAM可以通过级联布线而不需要外部布线来合并成32kx1的存储器。最大规模的器件上可获得高达10MB的存储器。该存储器模块具有许多高级特性,包括高性能的流水线和多速率先入先出(FIFO)支持。该存储器模块的架构也可作为双端口RAM,而且双端口RAM读写字宽可独立选择。该18Kb模块也可以按用户的字长要求以不同的方式配置,从16kx1到512x36不等。当然,以特定的实现方式满足BRAM的需求是器件自身的一种功能。设计人员可以根据DSP模块需求,或是存储器需求选择
25、Virtex-4系列中的器件。表2.3给出了Virtex-4LX系列器件中最小规模和最大规模器件的逻辑资源比较:特性特性 XC4VLX15 XC4VLX200 阵列大小(行阵列大小(行x列)列)64x24 192x116 Slice 6144 89088 LUT数量数量 12288 178176 触发器数量触发器数量 12288 178176 最大分布式最大分布式RAM 96Kb 1392Kb XtremeDSP Slice 32 96 18Kb BRAM数量数量 48 288 DCM的数量的数量 4 12 1LX15的阵列规模为64x24=1536,而LX200的规模为192x116=222
展开阅读全文