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