FPGA概述以设计流程_第1页
FPGA概述以设计流程_第2页
FPGA概述以设计流程_第3页
FPGA概述以设计流程_第4页
FPGA概述以设计流程_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3. 1 FPGA的出现和发展 可编程逻辑器件(Programmable Logic Device)可以完全由用户通过软件进行配置和编程,从而完成某种特定的逻辑功能。它是20世纪70年代在ASIC设计的基础上发展起来的新型逻辑器件,经过80年代的发展,PLD行业初步形成,而进入90年代,可编程逻辑器件成为半导体领域中发展最快的产品之一。 可编程逻辑器件的发展可以分为3个阶段。 早期的可编程逻辑器件只有可编程只读存储器(PROM),紫外线可擦除只读存储(EPROM)和电可擦除只读存储器(EEPROM)三种,由于结构的限制,它们只能完成简单的数字逻辑功能。 其后,出现了一类结构上稍复杂的可编程芯片

2、,正式被称为可编程逻辑器件(PLD),它能够完成各种逻辑运算功能。典型的PLD由一个“与”门和一个“或”门阵列构成,任意的一个组合逻辑都可以用“与或”表达式来描述,所以,PLD能以乘积和的形式完成大量的组合逻辑运算。这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用逻辑阵列)。 PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择的被置为寄存器状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也是由一个“与”平面和一个“或”平面构成,但是这两个平面的

3、连接关系是可编程的。后来在PAL的基础上,又发展出了一种通用阵列逻辑GAL(Generic Array Logic),如GAL16V8,GAL22V 10等。它采用了EEPROM工艺,实现电可擦除,电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。 这些早期的PLD器件的一个共同特点是提高了逻辑运算的速度,但其过于简单的结构也只能实现规模较小的电路。为了弥补这一遗憾,1985年XILINX公司推出第一片现场可编程逻辑门阵列(Field Programmable Gate ArrayFPGA ),它具有体系结构和逻辑单元灵活,集成度高以及适用范围宽等特点

4、,可实现较大规模的电路,编程也很灵活。至今,FPGA已经经历了20余年的发展历史。在这20余年的发展过程中,以FPGA为代表的数字系统现场集成技术取得了惊人的发展:FPGA从最初的1200个可利用门,发展到90年代的25万门,现在,国际上最著名的两家厂商ALTERA和XILINX公司都陆续推出了千万门级的单片FPGA芯片,将FPGA的集成度提高到了一个新的水平。3. 2 FPGA基本原理 FPGA和CPLD (Complex Programmable Logic Device,复杂可编程逻辑器件)一样都是可编程逻辑器件,它是在PAL, GAL等逻辑器件的基础上发展起来的。同以往的PAL, GA

5、L相比,FPGA规模更大,它可以替代几十甚至几千快通用IC芯片。这样的FPGA实际上就是一个子系统部件,这种芯片受到全世界范围内电子工程设计人员的广泛关注和普遍欢迎。经过20多年的发展,许多公司都开发出了多种可编程逻辑器件,比较典型的是XILINX公司的FPGA器件系列和ALTERA公司的CPLD器件系列,它们开发较早,占据了较大的PLD市场。目前全球范围内的PLD/FPGA产品有60%以上都是由ALTERA和XILINX公司提供的。可以说是ALTERA和XILINX共同决定了PLD技术的发展方向。当然也有许多其它类型的器件,如Lattice, Vantis, Actel, Quicklogi

6、c, Lucent等。 采用查找表(Loop-Up-Table)结构的PLD芯片通常称为FPGA,如ALTERA公司的Cyclon系列,XILINX公司的Spartan和Virtex系列等。 查找表简称为LUT,它本质上就是一个RAM,目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16X 1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。下面是一个4输入与门的例子。(表3-

7、1:实际逻辑电路与LUT实现方式对比表) 表3-1实际逻辑电路与LUT实现比较图3-1为XILINX的Spartan-II的内部结构 Spartan-II主要包括CLBs, I/O块,RAM块和可编程连线(未表示出)。在spartan-II中,一个CLB包括2个Slices,每个Slices包括两个LUT,两个触发器和相关逻辑。Slices可以看成是SpartanII实现逻辑的最基本结构(XILINX其他系列,如SpartanXL, Virtex的结构与此稍有不同,具体请参阅数据手册),下图为Slices的结构图:ALTERA的FLEX/ACEX等芯片的结构如图3-3: FLEX/ACEX的结

8、构主要包括LAB I/O块,R_AM块(未表示出)和可编程行烦连线。在FLEX/ACEX中,一个LAB包括8个逻辑单元(LE),每个LE包括一个LUT,一个触发器和相关的相关逻辑。LE是FLEXIACEX芯片实现逻辑的最基本结构(ALTERA其他系列,如APEX的结构与此基本相同,具体请参阅数据手册)。下图3-4为逻辑单元(LE)内部结构:图3-4逻辑单元(LE)内部结构 下面来看一下查找表结构的FPGA逻辑实现原理,以如下电路图3-5为例:F= C A+B)XCX(!D)图3-5 F= ( A+B ) X C X(!D)实现电路 A, B, C, D由FPGA芯片的管脚输入后进入可编程连线,

9、然后作为地址线连到到LUT, LUT中已经事先写入了所有可能的逻辑结果,通过地址查找到相应的数据然后输出,这样组合逻辑就实现了。该电路中D触发器是直接利用LUT后面D触发器来实现。时钟信号CLK由I/O脚输入后进入芯片内部的时钟专用通道,直接连接到触发器的时钟端。触发器的输出与I/O脚相连,把结果输出到芯片管脚。这样PLD就完成了公式中电路的功能。(以上这些步骤都是由软件自动完成的,不需要人为干预)。 这个电路是一个很简单的例子,只需要一个LUT加上一个触发器就可以完成。对于一个LUT无法完成的的电路,就需要通过进位逻辑将多个单元相连,这样FPGA就可以实现复杂的逻辑。 由于LUT主要适合SR

10、AM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,在上电的时候,由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。3. 3 FPGA的设计流程 FPGA的设计流程打铁分为设计输入,综合,功能仿真(前仿真),实现,时序仿真(后仿真),配置下载等六个步骤,下面分别介绍各个设计步骤。 3. 3. 1设计输入 设计输入包括使用硬件描述语言(HDL,Hardware Descr

11、ibe Language )、状态图与原理图输入三种方式。HDL设计方式是现今设计大规模集成电路的良好形式,除了IEEE规定的VHDL和Verilog HDL两种方式外,有些FPGA厂家还推出了专用语言,如Quartos II下的AHDLo HDL描述语言在状态机、控制逻辑、总线功能方面较强,使其描述的电路能在特定综合工具(如Synapsys公司的FPGA Compiler II,或FPGA Express)作用下以具体硬件单元较好地实现;而原理图输入在顶层设计,数据通路逻辑,手工最优化电路等方面具有图形化强、单元节俭、功能明确等特点。另外,在ALTERA公司的Quartus软件环境下,可以使

12、用Memory Editor对内部Memory进行直接编辑置入数据。常用方式是以HDL语言为主,原理图为辅进行混合设计,以发挥二者各自特色。 通常,FPGA厂商的软件与第三方软件设有接口,可以把第三方设计文件导入进行处理。如Quartus II的Foundation都可以把EDIF网表作为输入网表而直接进行布局布线,布局布线后,可再将生成的相应文件交给第三方进行后续处理。 3.3.2设计综合 综合就是针对给定的电路实现功能和实现此电路的约束条件,比如速度、功耗、成本以及电路类型等,通过计算机进行优化处理,获得一个能满足上述要求的电路设计方案。也就是说,被综合的是HDL文件(或相应的文件等),综

13、合的依据是逻辑设计的描述和各种约束条件,综合的结果是一个硬件电路的实现方案,该方案必须同时满足预期的功能和约束条件。对于综合来说,满足要求的方案可能有多个,综合工具将产生一个最优的或接近最优的结果。因此,综合的过程也就是设计目标的优化过程,最后获得的结构与综合工具的工作性能有关。 FPGA Compiler II是一个完善的FPGA逻辑分析,综合和优化工具,它从HDL形式未优化的网表中产生优化的网表文件,包括分析、综合和优化三个步骤。其中,分析是采用Synopsys标准的HDL语法规则对HDL源文件进行分析并纠正语法错误;综合是以选定的FPGA结构和器件为目标,对HDL和网表文件进行逻辑综合;

14、而优化则是根据用户的设计约束对速度和面积进行逻辑优化,产生一个优化的FPGA网表文件,以供FPGA布局和布线工具使用,即将路优化于特定厂家器件库,独立于硅特性,但可以被约束条件所驱动。 3.3.3仿真验证 从广义上讲,设计验证包括功能与时序仿真和电路验证。仿真是指使用设计软件包对已实现的设计进行完整测试,模拟实际物理环境下的工作情况。前仿真是指仅对逻辑功能进行测试模拟,以了解其实现的功能是否满足原设计的要求,仿真过程没有加入延时信息,不设计具体器件的硬件特性,如延时特性;而在进行布局布线后,提取有关的器件延时、连线延时等时序参数,并在此基础上进行的仿真称为后仿真,它是接近真实器件运行的仿真。

15、3.3.4设计实现 实现可以理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。通常可以分为下面五个步骤:I.转换:将多个设计文件进行转换,并合并到一个设计库文件中。2.映射:将网表中的逻辑门映射成物理元素,即把逻辑设计分割到构成可编 程逻辑阵列的可配置逻辑块与输入输出块及其它资源中的过程。3.布局与布线:布局是指从映射取出定义的逻辑和输入输出块,并把他们分 配到FPGA内部的物理位置上,通常基于某种先进的算法,如最小分割、 模拟退火和一般的受力方向张弛等来完成;布线是指利用自动布线软件使

16、用布线资源选择路径,试着完成所有的逻辑连接。因最新的设计实现工具是由时序驱动的,即在器件的布局布线期间对整个信号通道执行时序分析,因此可以使用约束条件操作布线软件,完成设计规定的性能要求。在布局 布线过程中,可同时提取时序信息形成报告。4.时序提取:产生一个目标文件,供后续的时序仿真使用。5.配置:产生FPGA下载配置时所需的位流文件。 在实现过程中可以进行选项设置。因其支持增量设计,可以对其重复多次布线,且每次布线可以利用上一次布线信息,以使布线更优或达到设计目标。在实现过程中应设置默认配置的下载形式,以使后续位流下载正常。 3.3.5时序分析 在设计实现过程中,在映射后需要对一个设计的实际

17、功能块的延时和估计的布线延时进行时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布局布线延时进行静态时序分析。从某种程度来讲,静态时序分析可以说是整个FPGA设计中最重要的步骤,它允许设计者详尽地分析所有关键路径并得出一个有次序的报告,并且报告中含有其它调试信息,比如每个网络节点的扇出或容性负载等。静态时序分析器可以用来检查设计的逻辑和时序,以便计算各通路性能识别可靠的踪迹,检测建立和保持时间的配合。时序分析器不要求用户产生输入激励或测试矢量。虽然XILINX和ALTERA在FPGA开发套件上均拥有时序分析工具,但在拥有第三方专门的时序分析工具的情况下,仅利用FPGA厂家设计的工

18、具进行布局布线,而使用第三方的专门时序分析工具进行时序分析。一般FPGA厂商在其设计的环境下皆有与第三方时序分析工具的接口。Synopsys公司的PrimeTime是一个很好的时序分析工具,利用它可以达到更好的效果。将综合后的网表文件保存为db的格式,可在PrimeTime环境下打开。利用此软件查看关键路径或设计者感兴趣的通路的时序,并对其进行分析,再对原来的设计进行时序约束,可以提高工作主频或减少关键路径的延时。与综合过程相似,静态时序分析也是一个重复的过程,它与布局布线步骤紧密相连,这个操作通常要进行很多次,直到时序约束得到很好的满足。 在综合与时序仿真过程中交互使用PrimeTime进行

19、时序分析,满足设计要求后即可进行FPGA芯片投片前的最终物理验证。 3. 3. 6下载验证 下载是在功能仿真与时序仿真正确的前提下,将综合后形成的位流下载到具体的FPGA芯片中,也叫芯片配置。FPGA设计有两种配置方式:直接由计算机经过专用下载电缆进行配置;由外围芯片进行上电时的自动配置。因FPGA具有掉电信息丢失的特性,因此可以在验证初期使用电缆直接下载位流文件。使用电缆下载时有多种下载方式,如对XILINX公司的FPGA下载可以使用JTAG Programmer, Hardware Programmer, PROM Programmer三种方式,而对ALTERA公司的FPGA可以选择JTA

20、G方式或者Passive Seriel方式。因FPGA大多支持IEEE的JTAG标准,所以使用芯片上的JTAG接口是常用的下载方式。将位流文件下载到FPGA器件内部后进行实际器件的物理测试即为电路验证,当得到正确的验证结果后就证明了设计的正确性。电路验证对FPGA投片生产具有较大意义。上面的设计流程不是固定不变的,结合不同的设计工具,设计流程或多或少都有一些差异,我们在具体使用时要根据实际的器件和软件平台做相应的改变。3. 4 FPGA厂商及其产品 随着可编程逻辑器件应用的日益广泛,许多IC制造厂家涉足PLD/FPGA领域。目前世界上有十几家生产CPLDIFPGA的公司,最著名的两家是:XIL

21、INX ALTERA,它们占有了60%以上的市场份额,引领着FPGA技术的未来。 3.4.1 XILINX XILINX公司是FPGA的发明者,是最老牌的的PLD/FPGA公司,是最大的可编程逻辑器件供应商之一,1999年XILINX收购了PHILIPS的PLD部门。 开发软件: ISE: XILINX公司集成的开发环境,目前已经出到10.1版本。 ISE Webpack: Webpack是XILINX提供的免费开发软件,功能比ISE少一些,但可以从XILINX官方网站上下载使用。 嵌入式开发套件(EDK ):用于开发集成PowerPC硬核和MicroBlaze软核CPU的工具。 System

22、 Generate for DSP:配合Matlab,在FPGA中完成数字信号处理的工具。 XILINX IP核:XILINX公司提供的非常完善的IP库。 产品线: XC9500系列:XC9500低成本CPLD系列提供了当今前沿系统设计所需的高性能、丰富的特性集以及灵活性。另外,出色的管脚锁定功能使设计者能够修改其CPLD设计,而不会影响板布局。与竞争CPLD产品相比,XC9500系列在每个密度点都多提供了12%以上的逻辑资源,而且不需要支付额外的成本。 Spartan3系列:XILINX的中低端FPGA产品。Spartan-3系列FPGA内的集成式功耗管理(PDF)可以将功耗大大降低;同时提

23、供了终极灵活性,从而能够为大批量、低成本系统定制安全解决方案;CLB架构提供了更广泛的功能和更少的逻辑级数,从而实现了更高的性能;广泛的Flash存储器支持,包括Platform Flash, SPI和并行Flash存储器,可以实现成本最低的配置;支持广泛的电平标准和各种专用的存储器接口可以帮助设计者实现高效的性能 Virtex系列:XILINX的高端FPGA产品,提供先进的逻辑架构和很高的性能,I/O速度快,内含大量的存储空间,有着丰富的外围存储器接口,广泛应用于网络、电信、存储器、服务器、计算、无线和军工产品等。 每种器件的具体资源和详细特性请参考相关的数据手册。 3.4.2 ALTERA

24、 ALTERA公司成立于1983年,九十年代以后发展很快,成为最大的可编程逻辑器件的供应商之一,特别是在亚太地区,拥有大量的客户。 开发软件: MAX+PLUS II:普遍认为Maxplus II曾经是最优秀的PLD开发平台之一,适合开发早期的中小规模PLD/FPGA,目前已经由Quartus II替代。 Quartus II : ALTERA新一代FPGA/PLD开发平台,适合新器件和大规模FPGA开发,已经取代Maxplus II,最近ALTERA刚刚推出了Quartus II 8.0版本,以应对于竞争对手XILINX的ISE10.1。 SOPC Builder:配合Quartus II,

25、可以完成集成CPU CNios II)的FPGA芯片的开发工作。 Nois 11:进行NiosIl处理器设计、Niosll嵌入式开发套件。 产品线: MAX系列(包括MAX 11和MAX子系列):ALTERA的CPLD产品。MAX11子系列在架构上结合了FPGA和CPLD的有点,充分利用四输入查找表(LUT)体系结构的性能和密度优势,并且融合了性价比很高的非易失性特性。可工作在1.8V, 2.5V, 3.3V供电电压下,减小了电源数量,简化了板级设计,支持1.5V, 1.8V, 2.5V, 3.3V I/O电平,广泛应用于1/O扩展、接口桥接、系统配置和上电排序。MAX3000A和MAX700

26、0AE为ALTERA早期的3.3V CPLD,适合于大批量,低成本的应用1o0 Cyclone系列(包括Cyclone, Cyclone 1I和CycloneIII子系列):ALTERA的中低端FPGA产品。其中Cyclone采用130nm工艺,被称为业界成本最低的FPGA, Cyclone II子系列采用1.2V, 90nm I艺,含有专用DSP电路,适合于低成本的DSP方案。CycloneIII子系列采用65nm低功耗工艺技术制造,具有丰富的内部逻辑、存储器和DSP自愿,可广泛应用于视频、图像处理和无线通信等个方面。 STRATIX系列(包括STRATIX, STRATIX 11和STRA

27、TIXIII子系列):ALTERA的高端FPGA产品。其中STRATIX子系列采用130m, 1.5V工艺,含有丰富的时钟资源,支持多种单端和差分I/O电气标准。STRATIX II子系列采用90nm工艺针对最佳性能和最低功耗进行了优化,比前代FPGA性能平均快出50%. STRATIXIII子系列是ALTERA目前性能最高的FPGA芯片,基于65nm和0.9V工艺。大大降低了功耗,近一步提高了应用的集成度,降低了复杂性,它的高效灵活的逻辑结构、经过改进的存储器模块和大容量DSP模块能够满足最苛刻的系统需求。第五章系统软件设计5.1 ALTERA开发平台简介 Quartus II是ALTERA

28、公司的综合开发平台,它集成了ALTERA的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。通过使用此综合开发工具,设计者可以创建、组织和管理自己的设计。5. 1. 1 Quartus II的特点 Quartus II具有如下特点27 .支持多时钟定时分析、LogicLockTm基于块的设计、SOPC(单芯片可 编程系统),内嵌SignalTap II逻辑分析仪、功率估计器等高级工具; .易于管脚分配和时序约束; .强大的HDL综合能力; .包含有Fmax的设计具有很好的效果; .支持的器件种类繁多; .支持Windows, Solaris, Hpux和Linux等多种操作系统;

29、.第三方工具如综合、仿真等的链接。 Quartus II软件支持的器件种类繁多,主要有STRATIX'和STRATIXIII,STRATIX II、STRATIX, Cyclone, HardCopy, APEXTm II系列、Mercury系列、Flex l OK系列、ExcaliburTm系列、FLEX6000系列、MAX II系列、MAX3000A系列、MAX7000系列等。5.1.2 Quartus II功能简介 ALTERA的Quartus II软件提供完整的多平台设计环境,可以轻易的满足特定的设计需求,是SOPC设计的综合性环境Zs此外,Quartus II软件允许用户在设

30、计流程的每个阶段使用Quartus II软件图形用户界面、EDA工具界面或命令行方式。图5-1展示了Quartus II软件图形用户界面为设计流程的每个阶段提供的功能。 图5-1 Quartos II图形用户界面功能 其中设计输入是使用Quartos II软件的模块输入方式、文本输入方式、Core输入方式和EDA设计输入工具等表达用户的电路构思,同时使用分配编辑器C Assignment Editor)设定初始设计的约束条件。 综合是将HDl语言、原理图等设计输入翻译成由与、或、非门,R_AM,触发器等基本逻辑单元组成的逻辑连接(网表),并更加目标与要求(约束条件)优化所生成的逻辑连接,输出 edf或vqm等标准格式的网表文件,供布局布线器进行实现。除了可以用Quartos II软件的Analysis/Synthesis命令综合外,也可以使用第三方综合工具,生成与Quartus II软件配合使用的edf网表文件或vqm文件。 布局布线的输入文件是综合后的网表文件,Quartus II软件中布局布线包含分析布局布线结果,优化布

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论