可编程片上系统设计.ppt
可编程片上系统设计,内容概述,本章主要对片上可编程系统设计技术进行了简要的介绍:在片上可编程系统概述部分介绍了软核和硬核处理器,以及片上可编程系统的发展背景和片上可编程系统技术的特点;在片上可编程系统设计方法部分介绍了片上可编程系统设计流程、通用片上可编程系统优化技术和专用片上可编程系统优化技术;在片上可编程系统芯片部分介绍了Xilinx公司支持片上可编程系统设计的主要芯片的种类和性能。,可编程片上系统设计,基于现场可编程门阵列(Field Programmable Gate Array,FPGA)的SOPC(System-on-a-chip),包含嵌入式的软核或硬核处理器、存储器和硬件加速器。SOPC的出现为设计者提供了设计高性能嵌入式系统和优化系统的条件。,可编程片上系统设计-软核及硬核处理器,SOPC嵌入式处理器分为软核和硬核处理器两类。Xilinx提供了将物理的处理其核集成到FPGA硅片上的硬核处理器产品。一个处理器使用专门的硅片实现称为硬核处理器,比如:1)Xilinx将PowerPC硬核集成到Virtex-II Pro到Virtex-5系列的FPGA芯片中。2)ARM Cortex-A9硬核集成到Zynq系列的FPGA芯片中。软核处理器是通过使用FPGA的通用逻辑实现的。软核处理器通过HDL语言或网表进行描述的。软核处理器必须进行综合才能使用。,可编程片上系统设计-软核及硬核处理器,在基于软核和硬核处理器的SOPC系统中,本地存储器、处理器总线、内部外设、外设控制器和存储器控制器必须使用FPGA的通用逻辑实现。下面给出Xilinx公司的软核和硬核处理器的性能。,可编程片上系统设计-可编程片上系统技术的发展,由于持续的要求嵌入式系统具有更多的功能、更好的性能和灵活性,因此传统上的设计方法已经不适应这种要求。当设计人员试图通过高性能的嵌入式处理器得到更高的性能时,遇到了吞吐量和性能方面的限制,而这种限制源于系统和结构的瓶颈,以及存储器带宽的限制。现在解决问题的方法是“专用”,即对某个嵌入式系统的应用使用专门的解决方法。比如,数字信号处理器DSP用于解决某一类专门的数字信号处理。对于一些高容量的应用,设计人员可能还需要专门开发ASIC芯片。,可编程片上系统设计-可编程片上系统技术的发展,现在FPGA广泛地应用在各个领域中。因此,很多FPGA厂商将专用的嵌入式处理器Power、ARM等嵌入到了FPGA芯片中。这种集成了嵌入式处理器的FPGA芯片被定义成FPGA的平台。这种基于FPGA的嵌入式平台提供了一个灵活的解决方案。在这个解决方案中,一个单FPGA芯片上提供了大量不同的IP软核和硬核资源。这些固件和硬件可以在任何时间进行升级。这种可编程的结构特点,大大缩短了系统的开发时间,而同一平台能应用在很多领域,提高了平台的资源复用率。,可编程片上系统设计-可编程片上系统技术的发展,这种结构同时还使设计人员可以优化系统吞吐量和开发周期,提供前所未有的软件和硬件协同设计的灵活性,这种灵活性主要体现在设计人员能够权衡软件和硬件设计的实现方法。这种协同性不同于传统的嵌入式系统的协同设计,虽然以前也使用软件和硬件的协同设计,但是在实现级别上基本上还是使用大量的分离的设计流程。比如,硬件设计人员制定硬件设计规范,软件设计人员制定软件设计规范。这样就导致对问题截然不同的理解,而且对设计团队提出了很高的要求。,可编程片上系统设计-可编程片上系统技术的发展,更进一步的说,FPGA平台,即SOPC集成了传统的软核和硬核处理器、片上总线、大量不同的I/O设备和借口标准、定制的硬件加速处理器,以及混合的定制的总线或点对点的拓扑结构,以提高系统的性能。,可编程片上系统设计-可编程片上系统技术的发展,在SOPC的层次上,FPGA的应用领域已经大大扩宽了,它不再是传统意义上用于连接不同接口设备的“连接逻辑”。由于FPGA的容量和性能不断提高,因此它就逐步地变成嵌入式系统的中心。FPGA容量不断提高,已经将嵌入式处理器和大量I/O集成在FPGA芯片内。当FPGA发展到SOPC的阶段后,设计的复杂度也不断的提高,硬件和软件设计在FPGA平台上都显得十分重要。而且由于FPGA集成了片上总线和存储器,因此也需要系统设计和系统结构方面的经验。,可编程片上系统设计-可编程片上系统技术的发展,在SOPC阶段,设计已经从以硬件描述语言HDL为中心的硬件设计,转换到了以C语言进行功能描述为中心。所以就形成了以C语言描述SOPC的功能,而用HDL语言描述硬件的具体实现方法。这也是和传统的FPGA设计和嵌入式系统设计最大的区别,即软件和硬件的真正的协同设计。,可编程片上系统设计-可编程片上系统技术特点,作为新的嵌入式系统的设计平台,使用SOPC进行嵌入式系统设计具有以下几个方面的优点:1、定制 基于FPGA的嵌入式系统的设计人员可以很灵活地选择所要连接的外设和控制器。因此,设计人员可以设计出一个独一无二的外设,这个外设可以直接和总线连接。对于一些非标准的外设,设计人员很容易的使用FPGA嵌入式平台实现。比如,设计人员很容易的在FPGA平台上设计出具有10个UART接口的嵌入式系统。因此,在FPGA系统中,向这样类似的配置是很容易实现的。,可编程片上系统设计-可编程片上系统技术特点,2、延缓过时 一些公司,特别是为军方提供产品的那些公司,它们产品的供货周期常常比标准电子产品的周期要长。电子元器件的过时(停产)是一个非常严重的问题,会导致这些公司无法继续提供其产品。由于软核处理器的HDL源代码可以通过购买得到,因此基于FPGA的软核处理器是一个非常好的解决方案,它可以充分的满足产品长期供货的要求。,可编程片上系统设计-可编程片上系统技术特点,3、降低元件成本 由于基于FPGA平台的嵌入式系统的功能多样性,以前需要用很多元件才能实现的系统,现在可以使用一个FPGA芯片实现。比如,辅助I/O芯片或协处理器与现有的处理器之间的连接。减少在设计中所使用的元件的数量,不但可以降低元件的成本,而且可以大大缩小电路板的尺寸。,可编程片上系统设计-可编程片上系统技术特点,4、硬件加速 选择基于FPGA的SOPC的一个重要的原因就是,SOPC能在硬件和软件之间进行权衡,使嵌入式系统达到最大的效率和性能。比如,当算法是嵌入式系统软件性能的瓶颈时,一个使用FPGA定制的协处理器引擎能用来实现算法,这个协处理器通过专用的,低延迟的通道与嵌入式处理器连接。使用现代的硬件设计工具,很容易的将软件瓶颈转向硬件处理。,可编程片上系统设计-可编程片上系统技术特点,SOPC的出现给嵌入式系统设计带来了非常多的优点,但是由于采用基于FPGA的嵌入式平台,这个平台集成了软件和硬件的平台设计工具,因此设计比较复杂。FPGA的嵌入式的软件设计工具比标准的传统的嵌入式系统的软件设计要新,软件设计工具相对来说还不成熟。但是随着SOPC技术的进一步发展,这个问题将会解决。芯片的成本也是一个问题,采用专用的嵌入式平台比采用基于FPGA的嵌入式平台成本要低,但是随着制造工艺的不断更新和SOPC芯片的成本的降低,相信在不久的将来,SOPC成本甚至还会低于采用专用的嵌入式平台。,可编程片上系统设计-可编程片上系统设计与优化技术,SOPC设计技术不同于传统的嵌入式系统设计流程和设计方法,其设计是软件和硬件的协同设计,同时又是基于软件为中心的设计技术。下面首先介绍Xilinx的SOPC设计流程,然后介绍以软件为中心的SOPC设计技术。,可编程片上系统设计与优化技术-可编程片上系统设计技术,正如前面所说,基于SOPC的嵌入式系统的设计需要软件和硬件的协同设计。下面给出Xilinx公司使用嵌入式开发套件(Embedded Design Kit,EDK)进行嵌入式系统设计的流程。Xilinx公司的EDK工具包用于开发基于FPGA平台的嵌入式系统,从图可以看出该工具支持传统的硬件和嵌入式软件的设计流程。,-可编程片上系统设计技术-可编程片上系统设计流程,-可编程片上系统设计技术-可编程片上系统设计流程,EDK支持硬核PowerPC和软核Microblaze处理器(未来增加对ARM处理器的支持)。并将设计的导入、创建和IP核定制进行了流水化的处理。由于EDK知道平台FPGA的硅片属性和选项,能自动的为其外设生成软件驱动、测试代码和创建板级支持包BSP(Board Support Package)。这些BSP是常用的实时操作系统RTOS(Real-Time Operating System),比如VxWorks和嵌入式Linux提供的设备驱动。,-可编程片上系统设计技术-可编程片上系统设计流程,EDK的设计流程就是一个软件和硬件协同处理和设计的过程。软件流程完成C语言代码的编写、编译和链接的过程。硬件流程完成HDL设计输入、综合、仿真和实现的过程。XPS提供了一个Data2MEM工具,该工具能将C语言生成的ELF(Executable and Linkable Format)文件代码插入到生成后的FPGA的比特流文件中,将其生成能够下载到FPGA中,并能启动的映像文件。通过这个过程设计人员能够使软件开发和调试进行实时处理,而不需要额外的时间开销。,-可编程片上系统设计技术-可编程片上系统设计流程,Xilinx的JTAG连接技术,完成FPGA的下载、FPGA的调试、C代码的下载和软件的调试。XPS集成了软件和硬件调试工具,使它们之间可以相互触发,这使得嵌入式系统内部变成“可见”,使嵌入式设计者能很快地找到和发现问题,而无需知道这个问题是软件还是硬件产生的。,-可编程片上系统设计技术-基于软件的设计方法,SOPC设计中,一个好的开发工具提供对目标平台合理的抽象,而这个抽象对设计人员来说是比较容易理解的。硬件抽象使得软件开发人员不需要从应用程序的开发转向真实的硬件实现,事实上对于软件人员来说这也是不可能的事情。但是软件开发人员在设计程序的时候开始将并发性和基于消息驱动的硬件概念融入到程序设计中。,-可编程片上系统设计技术-基于软件的设计方法,这个抽象允许软件设计人员创建、测试和调试应用程序,同时促进开发人员使用程序设计方法使得目标系统达到最大的性能。同时,好的开发工具还提供了将原始的高级描述转换成优化过的低级的目标系统可加载和执行的代码。,-可编程片上系统设计技术-基于软件的设计方法,为了达到这两个要求,为自动的基于FPGA平台的硬件生成工具主要目的是自动编译和优化问题,提出编程的抽象模型、编程的方法。这些工具目的就是建立面向软件的设计经验。,-可编程片上系统设计技术-基于软件的设计方法,面向软件的编程、仿真和调试工具提供了对FPGA平台的合理的抽象,允许系统设计人员在原型设计阶段,开始应用的开发、实验,而不需要专门的硬件知识,这一点对于原型设计阶段是非常重要的。如图1.2所示,通过使用软件到硬件的设计方法和工具,传统的软件和硬件设计流程能极大的得到改善。但是并不是说不需要硬件的技巧。事实上,一个完整的和优化过的系统中只使用软件知识是不可能实现的。通过软件和硬件设计技巧和使用现代设计工具就能很快地建立工作原型。,-可编程片上系统设计技术-基于软件的设计方法,-可编程片上系统设计技术-基于软件的设计方法,面向软件的设计流程一个非常重要的特点就是在最合理的平台资源中使用软件来描述设计规范。如果最合适的平台资源是微处理器,那么事情就比较简单,只需要针对这个处理器进行交叉编译(交叉编译就是在一个平台上生成另一个平台上的可执行代码),但是如果是FPGA的话,传统的设计流程要求用HDL语言重新书写RTL级的描述,那是一件既耗时,又容易出现设计错误的事情。但是使用面向软件的设计流程,只需要对最初的设计语言进行简单的一些修改,而不需要关心目标系统的资源。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,基于SOPC的嵌入式系统设计中,一个非常重要的问题是优化问题。虽然表1.1给出的SOPC的性能指标很高,但是设计者往往发现很难达到表中的指标。这是由于设计人员没有很好的使用基于FPGA嵌入式处理器的性能扩展技术。FPGA的生产厂商会采用一切方法和手段使芯片的性能达到预期的性能和指标,而对于熟悉标准微处理器性能优化技术的设计人员来说必须熟悉针对FPGA嵌入式处理器的优化技术,这样才能使他们设计出来的FPGA嵌入式系统的性能指标达到FPGA厂商的设计指标。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,FPGA嵌入式处理器设计比较复杂,复杂程度甚至使那些有经验的设计人员在某些情况下都无能为力,因此为了获得FPGA平台的优势必须进行权衡。下面给出一些在设计FPGA的SOPC嵌入式系统时,会使用到的一些优化技术。这些优化技术并不是SOPC设计中特有的技术,而这些技术在传统的嵌入式系统的设计中已经使用了这些技术。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,1.代码控制 一些可以使用的优化技术影响应用程序代码。一些技术影响代码如何编写,而一些技术影响编译器如何处理代码。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,1、优化级别 在Xilinx的XPS中的GCC编译器中可以选择编译的优化级别。编译器的优化级别有0、1、2、3和代码长度优化共五级优化。下面给出这四种优化级别的说明。0级优化:不进行任何优化操作。1级优化:执行跳转(JUMP)和出栈(POP)优化。2级优化:这一级优化执行几乎所有的优化操作,但是不包括速度和空间的权衡,所以可执行代码的长度不会增加。编译器不执行循环的解开操作,函数嵌入和严格的别名优化操作。这是对程序配置的标准优化操作。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,3级优化:最高级优化。这级优化增加了更多的可选项,其中包括增加代码尺寸。在一些情况下,3级优化后的代码效率比第2级优化后的代码效率要低,所以要谨慎使用第3级优化。长度:长度优化。优化目标是产生较小的代码长度。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,2、使用FPGA厂商的优化指令 Xilinx提供了一些为Xilinx的嵌入式处理器定制的指令。比如:xil_printf。这个函数功能和printf基本是一样的,但是存在下面的一些不同之处:不支持实数类型,不支持64位。由于这些改动使xil_printf函数只有2953个字节,比printf的函数的代码长度(51788字节)要小得多。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,3、汇编 在GCC编译器中支持嵌入的汇编。对于任何处理器来说,在一些对时间要求比较苛刻的应用场合,汇编语言是非常有用的。在一些编译器中,如果在文件中使用了汇编语言,编译器是不会优化剩余的C代码的。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,4、混杂 当优化FPGA嵌入式处理器时,一些与代码相关的优化也被考虑在其中,主要包括:参考位置、代码分析、变量的定义、小数据区的使用策略、明智的使用函数调用减少入栈和出栈帧、循环长度等。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,2.存储器的使用 处理器提供访问快速的本地存储器的能力,以及与慢速的二级存储器的接口。FPGA的嵌入式处理器也提供了这样的功能。使用存储器的方法对系统性能会产生重要的影响。其它处理器那样,在FPGA内的嵌入式处理器对存储器的使用可以通过一个链接脚本进行操作。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,1、只用本地存储器 最快的存储器的选择是将所有的代码放在本地存储器中。Xilinx的本地存储器由大容量的块RAM(BRAM)组成。嵌入式处理器以单总线周期访问BRAM。由于在MicroBlaze构成的嵌入式系统中,处理器和存储器运行在相同的时钟频率,存放在BRAM中的指令能够以处理器的频率执行。在MicroBlaze系统中,BRAM本质上的性能和L1高速缓存的性能一样。在PowerPC的嵌入时系统中,处理器运行频率比总线要高,并且存在L1高速缓存,因此BRAM的性能与L2高速缓存的性能一致。在Xilinx的FPGA中,BRAM的性能是不一样的。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,2、只用外部存储器 如果将所有程序放在外部存储器中,将使系统的性能降到最低。Xilinx提供了与外部不同存储器的接口。这些存储器接口与处理器的外设总线连接。Xilinx的存储器控制器支持三种易失性存储器SRAM、SDRAM和DDR SDRAM。在FPGA内的SRAM控制器结构是最简单和最小的,但SRAM是三种存储器中最贵的。FPGA内的DDR控制器结构是最复杂和最大的,但是所需要的FPGA引脚是非常少的,每兆字节的DDR存储器成本是最低的。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,此外,对外部存储器的访问存在时间延迟。在MicroBlaze中,存储器控制器与OPB(On-chip Peripheral)总线相连。比如,OPB总线的SDRAM控制器需要4-6个时钟的写操作延迟,8-10个时钟周期的读操作延迟。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,3、高速缓存 在建有PowerPC处理器的FPGA硅片上建立了的指令和数据高速缓存。使其对处理器总保持性能优势。而在MicroBlaze处理器没有专门在硅片上建立指令和数据高速缓存。对于MicroBlaze处理器来说,高速缓存是可配置的选项。当需要高速缓存时,使用BRAM建立高速缓存。与本地存储器相比,由于高速缓存需要在BRAM中保存地址映射机构,因此高速缓存会使用更多的BRAM资源。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,此外,使能高速缓存还会消耗通用逻辑资源用来建立高速缓存控制器。比如在Spartan-3中建立8KB的数据高速缓存和32M的外部存储器被缓存,将需要12位的地址标记,使用124个逻辑单元和6个BRAM资源。而建立8KB的本地存储器只需要4个BRAM资源。多出的2个BRAM用于保存地址标记。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,此外,当使能高速缓存后,系统地最高频率也会降低。比如,一个没有高速缓存的系统工作频率可以达到75MHz,如果使用高速缓存,工作频率只有60MHz。使能高速缓存控制其将增加逻辑和设计复杂度,在布局和布线时,将降低系统频率。所以在软核处理器中使用高速缓存会降低整个系统的性能。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,经过谨慎的考虑,在低系统工作频率下使能指令高速缓存将其高系统性能。比如,60MHz的系统使用指令高速缓存比75MHz不使用高速缓存的系统,带来150%的性能提高。当数据和指令高速缓存全部使用时,将带来308%的性能提高。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,4、分配代码到内部存储器、外部存储器和高速缓存中 正如前面所提到的只有把所有代码放到本地存储器中,才能提供最好的性能。由于程序经常会超出本地存储器可使用的容量,所以实际上是不可能将所有代码存放在本地存储器中的。而另一方面,从外部存储器运行程序会有很大的时间延迟。在PowerPC系统中,使用高速缓存是一个非常好的选择。在MicroBlaze对外部存储器使用高速缓存会改善结果,但是采用其它方法可以提供更优化的结果。,-可编程片上系统设计与优化技术-通用的可编程片上系统优化技术,在MicroBlaze系统中,最好的方法是合理的分配程序代码,使系统的频率和本地存储器容量达到最大。关键指令、数据和堆栈放在本地存储器中。不要使用数据高速缓存。如果本地存储器不能保存所有的指令,那么就要考虑使用指令高速缓存用于在外部存储器中保存指令。,专用的可编程片上系统优化技术-提高FPGA工作频率,1、逻辑优化 如果设计中没有在外部存储器中保存和运行指令,那么就不要连接指令一侧的外设总线。将处理器的指令和数据一侧连接到一个总线上会产生一个多主系统,在这样的系统中要求仲裁器。在总线上只存在一个主设备将优化系统性能。,专用的可编程片上系统优化技术-提高FPGA工作频率,使用FPGA内的资源调试逻辑会产生硬件瓶颈。当设计已经全部调试后,要从系统中去除这些调试逻辑,这样可以提高系统的性能。比如,去除FSL加速通道上的MDM(MicroBlaze Debug Module)模块将节省950个逻辑单元。在MicroBlaze中使能高速缓存,调试逻辑作为关键路径将降低系统地工作频率。,专用的可编程片上系统优化技术-提高FPGA工作频率,用于连接外部SRAM和Flash存储器的OPB外部存储器控制器,产生32位地址线(即使这些地址不会完全使用)。Xilinx提供了总线裁减外设的功能,用于删除不需要的地址位。这样就会减少布线和引脚。Xilinx提供了一些GPIO外设。GPIO提供了双通道、双向功能和中断能力。这些功能需要更多的资源,会影响时序。如果设计中只使用简单的GPIO,那么就使用GPIO最基本的版本,或者关闭那些没有使用的功能。,-专用的可编程片上系统优化技术-面积和时序约束,当设计者给出布局和布线导向时,Xilinx的布局和布线工具将能更好的工作。在Xilinx工具中,设计人员指定期望的工作频率、引脚位置和逻辑元素的位置。通过提供这些详细的信息,设计工具将能自动的、更好的在硬件设计实现上进行权衡。一些外设可能需要其它约束,用来保证其操作的正确性。比如,DDR SDRAM控制器和10/100以太网控制器。设计人员在使用时,必须认真地阅读相关外设的数据手册,并遵循推荐的设计规则。,-专用的可编程片上系统优化技术-硬件加速,1、使用硬件除法器和桶型移位寄存器 MicroBlaze能定制使用硬件除法器和桶型移位寄存器,而不需要使用软件实现这些功能。使能这些处理器的功能会消耗额外的逻辑资源,但是能提高系统性能。比如,使能硬件除法器和桶型移位寄存器会额外使用414个逻辑单元,但是会使性能提高18.1%。,-专用的可编程片上系统优化技术-硬件加速,2、软件瓶颈转换为硬件处理 定制的硬件逻辑可以减轻FPGA嵌入式处理器的负担。当遇到软件瓶颈时,设计人员可以使用定制的硬件实现这些算法。定制的软件指令可以操作硬件协处理器。MicroBlaze和PowerPC存在访问处理器的低延迟访问点,因此可以很好的将定制的处理器硬件和嵌入式处理器连接。Virtex-4中为PowerPC增加了APU(Auxiliary Processing Unit)单元,使得协处理器可以和嵌入式处理器直接连接。在MicroBlaze中提供了低延迟的FSL(Fast Simplex Link)总线。FSL总线包含大量的专用的、单向的32位通道。由于这些通道时专用的,因此不需要进行总线仲裁机构。,-专用的可编程片上系统优化技术-硬件加速,将软件瓶颈转换为硬件处理看上去是一件比较困难的事情。传统上,当软件设计人员发现瓶颈后,让硬件设计人员编写HDL代码建立协处理器。但是,这个过程可以简化,因为可以使用工具将C语言转化为FPGA硬件。这样一个工具就是CoDeveloper。这个工具使熟悉C语言的设计人员,通过使用CoDeveloper的C语言库生成一个定制的FPGA协处理单元。可以使用硬件协处理的算法有:DCT变换、FFT变换、MP3解码器、DES和AES、矩阵等。通过使用硬件协处理,可以使性能提高数十倍或数百倍。,Xilinx可编程片上系统芯片,适合进行SOPC设计的FPGA芯片低端产品有Spartan系列,高端产品有Virtex系列。Spartan系列FPGA可以使用MicroBlaze软核处理器设计SOPC,Virtex系列FPGA可以使用PowerPC硬核处理器设计SOPC。MicroBlaze软核处理器均可在Xilinx的高端和低端FPGA芯片上使用。Spartan系列的FPGA平台用于SOPC设计主要使用Spantan-3系列。Virtex系列的FPGA平台用于SOPC设计主要使用Virtex-II pro,Virtex-V,Virtex-VI系列。下面给出了主要的SOPC设计平台。设计人员可以根据这些FPGA平台的不同性能,在设计SOPC进行选择,以达到所需要的设计要求。,Xilinx可编程片上系统芯片-Spartan-3系列FPGA,Spartan-3基于Virtex-II FPGA架构,采用90 nm技术,8层金属工艺,系统门数超过5百万,内嵌了硬核乘法器和数字时钟管理模块。从结构上看,Spartan-3将逻辑、存储器、数学运算、数字处理器处理器、I/O以及系统管理资源完美地结合在一起,使之有更高层次、更广泛的应用。Spartan-3系列FPGA主要特性如下:,Xilinx可编程片上系统芯片-Spartan-3系列FPGA,1)采用90nm 工艺,密度高达74880逻辑单元;2)最高系统时钟为340MHz;3)具有专用乘法器;4)核电压为1.2V,端口电压为3.3V、2.5、1.2V,支持24种I/O标准;5)高达520k分布式RAM和1872k的块RAM;6)具有片上时钟管理模块(DCM);7)具有嵌入式Xtrema DSP功能,每秒可执行3300 亿次乘加。,Xilinx可编程片上系统芯片-Spartan-6系列FPGA,Spartan-6系列的FPGA是Xilinx公司于2009年推出的最新一代的FPGA芯片,该系列的芯片功耗低,容量大。逻辑单元的容量为3,400-148,000,但功耗只有以前Spartan芯片的一半,并且有更快的,更复杂的连接性能。该系列芯片基于45nm的铜处理技术工艺。该系列的芯片提供了6输入的查找表逻辑。spartan-6芯片的特点主要包括:,Xilinx可编程片上系统芯片-Spartan-6系列FPGA,(1)18KB的RBAM;(2)第二代的DSP48A1 Slice;(3)SDRAM控制器;(4)扩展的混合模式的时钟管理模块;(5)SelectIO技术,功耗优化的高速串行接收发送器 模块;(6)PCI-E端点模块;(7)高级的系统级功耗管理模式;(8)自动检测配置选项;(9)使用ASE和DNA保护的扩展的IP安全性。,Xilinx可编程片上系统芯片-Virtex-4 系列FPGA,Xilinx 的 Virtex-4 系列将高级硅片组合模块(ASMBL)架构与种类繁多的灵活功能相结合,大大提高了可编程逻辑设计能力,从而成为替代 ASIC 技术的强有力产品。Virtex-4系列FPGA主要有三个系列-LX/SX/FX的产品。Virtex-4 LX用于高性能逻辑应用解决方案。Virtex-4 SX用于高性能数字信号处理(DSP)应用解决方案。Virtex-4 FX用于高性能全功能嵌入式平台应用解决方案。Virtex-4系列FPGA采用了下面的技术:1)Xesium 时钟技术,包括:数字时钟管理器(DCM)块;附加的相位匹配时钟分频器(PMCD);差分全局时钟,Xilinx可编程片上系统芯片-Virtex-4 系列FPGA,2)XtremeDSP Slice技术,包括:18 x 18 位带补数功能的有符号乘法器;可选流水线级数;内置累加器(48 位)和加法器/减法器;3)Smart RAM 存储器层级技术,包括:分布式 RAM;双端口 18 Kb RAM 块;可选流水线级数;可选的可编程 FIFO 逻辑将 RAM 信号自动再映射为FIFO 信号;高速存储器接口支持 DDR SDRAM、DDR-2 SDRAM、QDR-II 和 RLDRAM-II;4)SelectIO 技术,包括:1.5V 到 3.3V I/O 工作电压;内置 ChipSync 源同步技术;数控阻抗(DCI)有效终端;细粒度 I/O 组布局(在一个组中配置);,Xilinx可编程片上系统芯片-Virtex-4 系列FPGA,5)灵活的逻辑资源;6)安全芯片 AES 比特流加密;7)90 nm 铜 CMOS 工艺;8)1.2V 核电压;9)倒装片封装,包括无铅封装选择;10)RocketIO 622 Mb/s 到 6.5 Gb/s 千兆位级收发器(MGT)仅 FX。11)IBM PowerPC RISC 处理器核(仅 FX系列),包括:PowerPC 405(PPC405)核;辅助处理器单元接口(用户协处理器);多个三态以太网MAC(仅 FX系列)。,Xilinx可编程片上系统芯片-Virtex-5系列FPGA,Virtex-5 系列可提供 FPGA 市场中最新最强大的功能。Virtex-5 系列采用第二代ASMBL(高级硅片组合模块)列式架构,包含五种截然不同的平台(子系列),比此前任何 FPGA 系列提供的选择范围都大。每种平台都包含不同的功能配比,以满足诸多高级逻辑设计的需求。,Xilinx可编程片上系统芯片-Virtex-5系列FPGA,Virtex-5系列包含LX、LXT、SXT、TXT 和 FXT 五个平台。Virtex-5 LX主要用于高性能通用逻辑应用。Virtex-5 LXT主要用于具有高级串行连接功能的高性能逻辑。Virtex-5 SXT主要用于具有高级串行连接功能的高性能信号处理应用。Virtex-5 TXT主要用于具有双密度高级串行连接功能的高性能系统。Virtex-5 FXT主要用于具有高级串行连接功能的高性能嵌入式系统。,Xilinx可编程片上系统芯片-Virtex-5系列FPGA,Virtex-5系列的FPGA芯片采用了下列技术:1)跨平台兼容性,LXT、SXT 和 FXT 器件使用可调稳压器,同样封装中引脚兼容;2)最先进的最佳利用率高性能 FPGA 架构,其中包括:真 6 输入查找表(LUT)技术;双 5-LUT 选项;改进的布线减少了中间连线;64 位分布式 RAM 选项;SRL32/双 SRL16 选项;,Xilinx可编程片上系统芯片-Virtex-5系列FPGA,3)强大的时钟管理模块(CMT)时钟控制技术,其中包 括:具有零延迟缓冲、频率综合和时钟相移功能的数字时钟管理器模块;具有输入抖动滤波、零延迟缓冲、频率综合和相位匹配时钟分频功能的 PLL 模块;4)36 Kb Block RAM/FIFO,其中包括:真双端口 RAM 模块;增强的可选可编程 FIFO 逻辑;可编程高达 36 倍的真双端口宽度;高达 72 倍的简单双端口宽度;内置可选纠错电路;可选择将每个模块作为两个独立的 18 Kb 模块进行编程;,Xilinx可编程片上系统芯片-Virtex-5系列FPGA,5)高性能并行 SelectIO 技术,其中包括:1.2 到 3.3V I/O 运行;使用 ChipSync 技术的源同步接口连接;数控阻抗(DCI)有效终端;灵活的细粒度 I/O 分组;支持高速存储器接口;6)高级 DSP48E Slice技术,其中包括:25 x 18 补码乘法运算;可选加法器、减法器和累加器;可选流水线功能;可选按位逻辑功能;专用的级联连接;7)灵活的配置选项技术,其中包括:SPI 和并行 FLASH 接口;专用的回读重新配置逻辑,可支持多比特流;自动总线宽度检测功能;8)所有器件都有系统监视功能,其中包括:片上/片外热特性监视;片上/片外电源监视;通过 JTAG 端口访问所有监视量;,Xilinx可编程片上系统芯片-Virtex-5系列FPGA,9)PCI Express 集成端点模块,支持LXT、SXT、TXT 和 FXT 平台;符合 PCI Express 基本规范 1.1;每模块支持 1 倍、4 倍或 8 倍通道宽度;与 RocketIO 收发器配合使用;10)三态 10/100/1000 Mb/s 以太网 MAC,支持LXT、SXT、TXT 和 FXT 平台;可以将 RocketIO 收发器用作 PHY,也可以用多种软 MII(媒体独立接口)方案将其连接到外部 PHY;11)100 Mb/s 到 3.75 Gb/s 的 RocketIO GTP 收发器,支持LXT 和 SXT 平台;,Xilinx可编程片上系统芯片-Virtex-5系列FPGA,12)150 Mb/s 到 6.5 Gb/s 的 RocketIO GTX 收发器,支持TXT 和 FXT 平台;13)PowerPC 440 微处理器,仅支持 FXT 平台,特性包括:RISC 架构;七级流水线;包括 32 KB 的指令和数据缓存;优化的处理器接口结构(纵横机);14)65 nm 铜 CMOS 工艺技术;15)1.0V 内核电压;16)可选择标准或无铅的具有高度信号完整性的倒装芯片封装;,Xilinx可编程片上系统芯片-Virtex-6系列FPGA,Virtex-6芯片为FPGA市场提供了最新最高级的特性。使用第三代高级硅片模组(Advanced Silicon Modular Block,ASMBL)结构。该系列包含LXT和SXT两个子系列。除了高性能的逻辑互联外,还包含了很多内建的系统级模块,其中包括:,Xilinx可编程片上系统芯片-Virtex-6系列FPGA,(1)36kb的块RAM/FIFO;(2)第三代的DSP48E1;(3)内建数字控制阻抗的SelectIO技术;(4)ChipSync源同步接口模块;(5)系统监控功能;(6)扩展的混合模式的时钟管理模块;(7)高级配置选项;(8)功耗优化的高速串行收发器模块;(9)PCI-E兼容的集成化的模块和三模式以太网MAC接口。,Xilinx可编程片上系统芯片-Zynq-7000 系列FPGA,Zynq-7000 系列是 Xilinx 推出的首款可扩展式处理平台(EPP)。这种新型产品将业界标准的 ARM双核 Cortex-A9 MP处理系统与 Xilinx 一体化28nm 架构完美整合在一起。这种以处理器为核心的架构不但能够实现 FPGA 的高度灵活性和可扩展性,同时还能带来类似于 ASIC 的高性能和低功耗,以及 ASSP 的易用性。,Xilinx可编程片上系统芯片-Zynq-7000 系列FPGA,Zynq-7000 EPP 系列的四款器件使设计人员能够用统一平台满足低成本和高性能应用需求,充分发挥业界标准工作的作用。处理系统与可编程逻辑的紧密集成使设计人员能够构建加速器和外设,以将关键功能的速度提升高达10倍。ARM 架构和生态系统能够帮助软硬件开发人员最大限度地提高工作效率,进而简化开发工作。如图1.3所示,Zynq-7000 系列的主要特点有:,Xilinx可编程片上系统芯片-Zynq-7000 系列FPGA,Xilinx可编程片上系统芯片-Zynq-7000 系列FPGA,(1)双核ARM Cortex-A9高达 800MHz;可通过 NEON Extension 及单和双精度浮点单元进行增强;(2)32kB 指令及 32kB 数据 L1 高速缓存和 512kB L2 高速 缓存;(3)256kB 片上存储器;(4)DDR2、DDR3 以及 LPDDR2 动态存储控制器;(5)QSPI、NAND Flash 以及 NOR 闪存控制器;(6)2 个 USB2.0(OTG)、2 个 GbE、2 个 CAN2,0B、2 个 SD/SDIO、2 个 UART、2 个 SPI、2 个 I2C、32b GPIO;,Xilinx可编程片上系统芯片-Zynq-7000 系列FPGA,(7)用于实现安全启动和安全配置的 AES 和 SHA 256b 加 密引擎;(8)双通道 12 位 1Msps 数模转换器;(9)高级可编程逻辑:-30,000 至 235,000 个逻辑单元(约 560,000 至 4,700,000 个同等的 ASIC 门电路);-240kB 至 1.86MB 的可扩展式 Block RAM;-80 至 760 个 18x25 DSP Slice(58 至 912 GMACS 的 DSP 峰值性能);(10)PCI Express Gen2x8(最大型器件中);(11)