可编程片上系统设计资料讲解.ppt
《可编程片上系统设计资料讲解.ppt》由会员分享,可在线阅读,更多相关《可编程片上系统设计资料讲解.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、可编程片上系统(xtng)设计第一页,共75页。内容(nirng)概述 本章主要对片上可编程系统设计技术进行了简要的介绍:在片上可编程系统概述部分介绍了软核和硬核处理器,以及片上可编程系统的发展背景和片上可编程系统技术的特点(tdin);在片上可编程系统设计方法部分介绍了片上可编程系统设计流程、通用片上可编程系统优化技术和专用片上可编程系统优化技术;在片上可编程系统芯片部分介绍了Xilinx公司支持片上可编程系统设计的主要芯片的种类和性能。第二页,共75页。可编程片上系统(xtng)设计 基于现场可编程门阵列(Field Programmable Gate Array,FPGA)的SOPC(S
2、ystem-on-a-chip),包含嵌入(qin r)式的软核或硬核处理器、存储器和硬件加速器。SOPC的出现为设计者提供了设计高性能嵌入(qin r)式系统和优化系统的条件。第三页,共75页。可编程片上系统(xtng)设计-软核及硬核处理器 SOPC嵌入式处理器分为(fn wi)软核和硬核处理器两类。Xilinx提供了将物理的处理其核集成到FPGA硅片上的硬核处理器产品。一个处理器使用专门的硅片实现称为硬核处理器,比如:1)Xilinx将PowerPC硬核集成到Virtex-II Pro到Virtex-5系列的FPGA芯片中。2)ARM Cortex-A9硬核集成到Zynq系列的FPGA芯
3、片中。软核处理器是通过使用FPGA的通用逻辑实现的。软核处理器通过HDL语言或网表进行描述的。软核处理器必须进行综合才能使用。第四页,共75页。可编程片上系统(xtng)设计-软核及硬核处理器 在基于软核和硬核处理器的SOPC系统中,本地存储器、处理器总线、内部外设、外设控制器和存储器控制器必须使用(shyng)FPGA的通用逻辑实现。下面给出Xilinx公司的软核和硬核处理器的性能。第五页,共75页。可编程片上系统设计(shj)-可编程片上系统技术的发展 由于持续的要求嵌入式系统具有更多的功能、更好的性能和灵活性,因此传统上的设计方法已经不适应(shyng)这种要求。当设计人员试图通过高性能
4、的嵌入式处理器得到更高的性能时,遇到了吞吐量和性能方面的限制,而这种限制源于系统和结构的瓶颈,以及存储器带宽的限制。现在解决问题的方法是“专用”,即对某个嵌入式系统的应用使用专门的解决方法。比如,数字信号处理器DSP用于解决某一类专门的数字信号处理。对于一些高容量的应用,设计人员可能还需要专门开发ASIC芯片。第六页,共75页。可编程片上系统设计(shj)-可编程片上系统技术的发展 现在FPGA广泛地应用在各个领域(ln y)中。因此,很多FPGA厂商将专用的嵌入式处理器Power、ARM等嵌入到了FPGA芯片中。这种集成了嵌入式处理器的FPGA芯片被定义成FPGA的平台。这种基于FPGA的嵌
5、入式平台提供了一个灵活的解决方案。在这个解决方案中,一个单FPGA芯片上提供了大量不同的IP软核和硬核资源。这些固件和硬件可以在任何时间进行升级。这种可编程的结构特点,大大缩短了系统的开发时间,而同一平台能应用在很多领域(ln y),提高了平台的资源复用率。第七页,共75页。可编程片上系统(xtng)设计-可编程片上系统(xtng)技术的发展 这种结构同时还使设计人员可以优化系统吞吐量和开发周期,提供前所未有的软件(run jin)和硬件协同设计的灵活性,这种灵活性主要体现在设计人员能够权衡软件(run jin)和硬件设计的实现方法。这种协同性不同于传统的嵌入式系统的协同设计,虽然以前也使用软
6、件(run jin)和硬件的协同设计,但是在实现级别上基本上还是使用大量的分离的设计流程。比如,硬件设计人员制定硬件设计规范,软件(run jin)设计人员制定软件(run jin)设计规范。这样就导致对问题截然不同的理解,而且对设计团队提出了很高的要求。第八页,共75页。可编程片上系统(xtng)设计-可编程片上系统(xtng)技术的发展 更进一步的说,FPGA平台,即SOPC集成了传统(chuntng)的软核和硬核处理器、片上总线、大量不同的I/O设备和借口标准、定制的硬件加速处理器,以及混合的定制的总线或点对点的拓扑结构,以提高系统的性能。第九页,共75页。可编程片上系统(xtng)设计
7、-可编程片上系统(xtng)技术的发展 在SOPC的层次上,FPGA的应用领域已经大大扩宽了,它不再是传统意义上用于连接不同接口设备的“连接逻辑”。由于FPGA的容量和性能不断提高,因此它就逐步地变成嵌入式系统(xtng)的中心。FPGA容量不断提高,已经将嵌入式处理器和大量I/O集成在FPGA芯片内。当FPGA发展到SOPC的阶段后,设计的复杂度也不断的提高,硬件和软件设计在FPGA平台上都显得十分重要。而且由于FPGA集成了片上总线和存储器,因此也需要系统(xtng)设计和系统(xtng)结构方面的经验。第十页,共75页。可编程片上系统(xtng)设计-可编程片上系统(xtng)技术的发展
8、 在SOPC阶段,设计已经从以硬件描述语言HDL为中心的硬件设计,转换到了以C语言进行功能描述为中心。所以就形成了以C语言描述SOPC的功能,而用HDL语言描述硬件的具体实现方法(fngf)。这也是和传统的FPGA设计和嵌入式系统设计最大的区别,即软件和硬件的真正的协同设计。第十一页,共75页。可编程片上系统设计(shj)-可编程片上系统技术特点 作为新的嵌入式系统的设计平台,使用SOPC进行嵌入式系统设计具有以下几个方面的优点:1、定制 基于(jy)FPGA的嵌入式系统的设计人员可以很灵活地选择所要连接的外设和控制器。因此,设计人员可以设计出一个独一无二的外设,这个外设可以直接和总线连接。对
9、于一些非标准的外设,设计人员很容易的使用FPGA嵌入式平台实现。比如,设计人员很容易的在FPGA平台上设计出具有10个UART接口的嵌入式系统。因此,在FPGA系统中,向这样类似的配置是很容易实现的。第十二页,共75页。可编程片上系统设计(shj)-可编程片上系统技术特点 2、延缓过时 一些公司,特别是为军方提供产品的那些公司,它们产品的供货周期常常比标准电子产品的周期要长。电子元器件的过时(停产)是一个非常严重的问题,会导致(dozh)这些公司无法继续提供其产品。由于软核处理器的HDL源代码可以通过购买得到,因此基于FPGA的软核处理器是一个非常好的解决方案,它可以充分的满足产品长期供货的要
10、求。第十三页,共75页。可编程片上系统设计-可编程片上系统技术(jsh)特点 3、降低元件成本 由于基于FPGA平台的嵌入式系统的功能多样性,以前需要(xyo)用很多元件才能实现的系统,现在可以使用一个FPGA芯片实现。比如,辅助I/O芯片或协处理器与现有的处理器之间的连接。减少在设计中所使用的元件的数量,不但可以降低元件的成本,而且可以大大缩小电路板的尺寸。第十四页,共75页。可编程片上系统(xtng)设计-可编程片上系统(xtng)技术特点 4、硬件加速 选择基于FPGA的SOPC的一个重要的原因就是,SOPC能在硬件和软件之间进行权衡,使嵌入式系统达到最大的效率和性能。比如,当算法是嵌入
11、式系统软件性能的瓶颈时,一个使用FPGA定制的协处理器引擎能用来实现算法,这个协处理器通过专用的,低延迟的通道与嵌入式处理器连接。使用现代的硬件设计工具(gngj),很容易的将软件瓶颈转向硬件处理。第十五页,共75页。可编程片上系统(xtng)设计-可编程片上系统(xtng)技术特点 SOPC的出现给嵌入式系统设计带来了非常(fichng)多的优点,但是由于采用基于FPGA的嵌入式平台,这个平台集成了软件和硬件的平台设计工具,因此设计比较复杂。FPGA的嵌入式的软件设计工具比标准的传统的嵌入式系统的软件设计要新,软件设计工具相对来说还不成熟。但是随着SOPC技术的进一步发展,这个问题将会解决。
12、芯片的成本也是一个问题,采用专用的嵌入式平台比采用基于FPGA的嵌入式平台成本要低,但是随着制造工艺的不断更新和SOPC芯片的成本的降低,相信在不久的将来,SOPC成本甚至还会低于采用专用的嵌入式平台。第十六页,共75页。可编程片上系统设计(shj)-可编程片上系统设计(shj)与优化技术 SOPC设计技术不同于传统的嵌入式系统设计流程和设计方法,其设计是软件和硬件的协同设计,同时又是基于软件为中心的设计技术。下面(xi mian)首先介绍Xilinx的SOPC设计流程,然后介绍以软件为中心的SOPC设计技术。第十七页,共75页。可编程片上系统设计(shj)与优化技术-可编程片上系统设计(sh
13、j)技术 正如前面所说,基于SOPC的嵌入式系统的设计需要软件和硬件的协同设计。下面给出Xilinx公司使用(shyng)嵌入式开发套件(Embedded Design Kit,EDK)进行嵌入式系统设计的流程。Xilinx公司的EDK工具包用于开发基于FPGA平台的嵌入式系统,从图可以看出该工具支持传统的硬件和嵌入式软件的设计流程。第十八页,共75页。-可编程片上系统设计(shj)技术-可编程片上系统设计(shj)流程第十九页,共75页。-可编程片上系统设计(shj)技术-可编程片上系统设计(shj)流程 EDK支持硬核PowerPC和软核Microblaze处理器(未来增加对ARM处理器的
14、支持)。并将设计(shj)的导入、创建和IP核定制进行了流水化的处理。由于EDK知道平台FPGA的硅片属性和选项,能自动的为其外设生成软件驱动、测试代码和创建板级支持包BSP(Board Support Package)。这些BSP是常用的实时操作系统RTOS(Real-Time Operating System),比如VxWorks和嵌入式Linux提供的设备驱动。第二十页,共75页。-可编程片上系统设计(shj)技术-可编程片上系统设计(shj)流程 EDK的设计流程就是一个软件和硬件协同处理和设计的过程。软件流程完成C语言代码的编写、编译和链接的过程。硬件流程完成HDL设计输入、综合、仿
15、真和实现的过程。XPS提供了一个Data2MEM工具,该工具能将C语言生成的ELF(Executable and Linkable Format)文件代码插入到生成后的FPGA的比特流文件中,将其生成能够下载到FPGA中,并能启动的映像文件。通过这个过程设计人员能够使软件开发和调试(dio sh)进行实时处理,而不需要额外的时间开销。第二十一页,共75页。-可编程片上系统设计技术(jsh)-可编程片上系统设计流程 Xilinx的JTAG连接技术,完成FPGA的下载、FPGA的调试、C代码的下载和软件的调试。XPS集成了软件和硬件调试工具,使它们之间可以相互触发,这使得嵌入式系统内部变成“可见”
16、,使嵌入式设计者能很快地找到和发现问题(wnt),而无需知道这个问题(wnt)是软件还是硬件产生的。第二十二页,共75页。-可编程片上系统(xtng)设计技术-基于软件的设计方法 SOPC设计中,一个好的开发工具提供对目标平台合理的抽象,而这个抽象对设计人员来说是比较容易理解的。硬件抽象使得软件开发人员不需要从应用程序的开发转向真实的硬件实现,事实上对于软件人员来说这也是不可能的事情。但是软件开发人员在设计程序的时候开始将并发性和基于消息驱动(q dn)的硬件概念融入到程序设计中。第二十三页,共75页。-可编程片上系统(xtng)设计技术-基于软件的设计方法 这个抽象允许软件设计人员创建、测试
17、(csh)和调试应用程序,同时促进开发人员使用程序设计方法使得目标系统达到最大的性能。同时,好的开发工具还提供了将原始的高级描述转换成优化过的低级的目标系统可加载和执行的代码。第二十四页,共75页。-可编程片上系统(xtng)设计技术-基于软件的设计方法 为了(wi le)达到这两个要求,为自动的基于FPGA平台的硬件生成工具主要目的是自动编译和优化问题,提出编程的抽象模型、编程的方法。这些工具目的就是建立面向软件的设计经验。第二十五页,共75页。-可编程片上系统设计技术-基于软件(run jin)的设计方法 面向软件的编程、仿真和调试工具提供了对FPGA平台的合理的抽象,允许系统设计人员在原
18、型设计阶段,开始应用的开发、实验,而不需要专门的硬件知识,这一点对于原型设计阶段是非常重要的。如图1.2所示,通过使用软件到硬件的设计方法和工具,传统的软件和硬件设计流程能极大的得到改善。但是并不是说不需要硬件的技巧(jqio)。事实上,一个完整的和优化过的系统中只使用软件知识是不可能实现的。通过软件和硬件设计技巧(jqio)和使用现代设计工具就能很快地建立工作原型。第二十六页,共75页。-可编程片上系统(xtng)设计技术-基于软件的设计方法第二十七页,共75页。-可编程片上系统设计技术(jsh)-基于软件的设计方法 面向软件的设计流程一个非常重要的特点就是(jish)在最合理的平台资源中使
19、用软件来描述设计规范。如果最合适的平台资源是微处理器,那么事情就比较简单,只需要针对这个处理器进行交叉编译(交叉编译就是(jish)在一个平台上生成另一个平台上的可执行代码),但是如果是FPGA的话,传统的设计流程要求用HDL语言重新书写RTL级的描述,那是一件既耗时,又容易出现设计错误的事情。但是使用面向软件的设计流程,只需要对最初的设计语言进行简单的一些修改,而不需要关心目标系统的资源。第二十八页,共75页。-可编程片上系统(xtng)设计与优化技术-通用的可编程片上系统(xtng)优化技术 基于SOPC的嵌入式系统设计中,一个非常重要的问题是优化问题。虽然表1.1给出的SOPC的性能指标
20、很高,但是设计者往往发现很难达到表中的指标。这是由于设计人员没有很好的使用基于FPGA嵌入式处理器的性能扩展技术。FPGA的生产厂商会采用一切方法和手段使芯片的性能达到预期的性能和指标,而对于(duy)熟悉标准微处理器性能优化技术的设计人员来说必须熟悉针对FPGA嵌入式处理器的优化技术,这样才能使他们设计出来的FPGA嵌入式系统的性能指标达到FPGA厂商的设计指标。第二十九页,共75页。-可编程片上系统设计(shj)与优化技术-通用的可编程片上系统优化技术 FPGA嵌入式处理器设计比较复杂,复杂程度甚至使那些有经验的设计人员在某些情况下都无能为力,因此为了获得FPGA平台的优势必须进行权衡(q
21、unhng)。下面给出一些在设计FPGA的SOPC嵌入式系统时,会使用到的一些优化技术。这些优化技术并不是SOPC设计中特有的技术,而这些技术在传统的嵌入式系统的设计中已经使用了这些技术。第三十页,共75页。-可编程片上系统(xtng)设计与优化技术-通用的可编程片上系统(xtng)优化技术 1.代码控制(kngzh)一些可以使用的优化技术影响应用程序代码。一些技术影响代码如何编写,而一些技术影响编译器如何处理代码。第三十一页,共75页。-可编程片上系统设计(shj)与优化技术-通用的可编程片上系统优化技术 1、优化级别 在Xilinx的XPS中的GCC编译器中可以选择编译的优化级别。编译器的
22、优化级别有0、1、2、3和代码长度优化共五级优化。下面给出这四种优化级别的说明。0级优化:不进行任何优化操作。1级优化:执行跳转(JUMP)和出栈(POP)优化。2级优化:这一级优化执行几乎所有的优化操作,但是不包括速度和空间的权衡,所以(suy)可执行代码的长度不会增加。编译器不执行循环的解开操作,函数嵌入和严格的别名优化操作。这是对程序配置的标准优化操作。第三十二页,共75页。-可编程片上系统设计与优化技术(jsh)-通用的可编程片上系统优化技术(jsh)3级优化:最高级优化。这级优化增加了更多的可选项,其中包括增加代码尺寸。在一些情况(qngkung)下,3级优化后的代码效率比第2级优化
23、后的代码效率要低,所以要谨慎使用第3级优化。长度:长度优化。优化目标是产生较小的代码长度。第三十三页,共75页。-可编程片上系统(xtng)设计与优化技术-通用的可编程片上系统(xtng)优化技术 2、使用FPGA厂商的优化指令 Xilinx提供了一些为Xilinx的嵌入式处理器定制的指令。比如:xil_printf。这个函数功能和printf基本是一样(yyng)的,但是存在下面的一些不同之处:不支持实数类型,不支持64位。由于这些改动使xil_printf函数只有2953个字节,比printf的函数的代码长度(51788字节)要小得多。第三十四页,共75页。-可编程片上系统(xtng)设计
24、与优化技术-通用的可编程片上系统(xtng)优化技术 3、汇编 在GCC编译器中支持嵌入的汇编。对于任何处理器来说,在一些对时间要求比较苛刻的应用场合,汇编语言(hu bin y yn)是非常有用的。在一些编译器中,如果在文件中使用了汇编语言,编译器是不会优化剩余的C代码的。第三十五页,共75页。-可编程片上系统(xtng)设计与优化技术-通用的可编程片上系统(xtng)优化技术 4、混杂 当优化FPGA嵌入式处理器时,一些与代码相关的优化也被考虑在其中,主要包括:参考位置、代码分析、变量的定义(dngy)、小数据区的使用策略、明智的使用函数调用减少入栈和出栈帧、循环长度等。第三十六页,共75
25、页。-可编程片上系统设计与优化技术(jsh)-通用的可编程片上系统优化技术(jsh)2.存储器的使用 处理器提供访问快速的本地存储器的能力,以及与慢速的二级存储器的接口。FPGA的嵌入式处理器也提供了这样的功能。使用存储器的方法对系统性能会产生重要的影响。其它处理器那样,在FPGA内的嵌入式处理器对存储器的使用可以通过一个链接(lin ji)脚本进行操作。第三十七页,共75页。-可编程片上系统(xtng)设计与优化技术-通用的可编程片上系统(xtng)优化技术 1、只用本地存储器 最快的存储器的选择是将所有的代码放在本地存储器中。Xilinx的本地存储器由大容量的块RAM(BRAM)组成。嵌入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 系统 设计 资料 讲解
限制150内