《为应用选择最佳可编程SoC时应进行的六个设计考虑.docx》由会员分享,可在线阅读,更多相关《为应用选择最佳可编程SoC时应进行的六个设计考虑.docx(11页珍藏版)》请在第一文库网上搜索。
1、为应用选择最佳可编程SoC时应进行的六个设计考虑SoCFPGA器件在一个器件中同时集成了处理器和FPGA体系结构。将两种技术合并起来具有很多优点,包括更高的集成度、更低的功耗、更小的电路板面积,以及处理器和FPGA之间带宽更大的通信等等。这一同类最佳的器件发挥了处理器与FPGA系统融合的优势,同时还保留了独立处理器和FPGA方法的优点。目前,市场上主要有三种SOCFPG,它们的处理器都是完全专用的“硬核”处理器子系统,而不是FPGA架构中的软核知识产权(IP)。所有这三种器件都采用了全功能幽1处理器,具有完整的存储器层次结构,以及专用外设,启动、运行和工作都与“普通”的ARM处理器一样。MiC
2、rOSemiSmartFusion2SoCFPGA基于ARMCOrteX-M3嵌入式处理器,主要面向微控制器应用。AIteraSoC和Xi1inXZynq-7000器件使用了双核ARMCOrteX-A9应用处理器。除了处理器,SoCFPGA还有丰富的外设、片内存储器、FPGA类型的逻辑阵列,以及大量的I/O。这几种可编建SOC巨是表面上看来来都一样。它们都在一个器件中集成了ARM处理器、各种外设和FPGA。而实际上,仔细的评估这些器件,更深入的了解数据资料是非常关键的。应针对具体应用来评估底层体系结构及其内涵。SoCFPGA体系结构非常重要。仔细的检查和思考会发现在体系结构上有很多明显的不同。
3、设计人员应如何选择?本文介绍了在为应用选择最佳可编程SoC时应进行的设计考虑,综合考虑后作出工程决定。选择标准主要集中在六个方面:系统性能、系统可靠性和灵活性、系统成本、功耗、未来发展路线图、开发工具。1 .系统性能SoCFPGA体系结构的两方面最终决定在不同的单元之间能否高效的传送数据:互联,以及片内和片外存储器带宽。SoC体系结构要考虑的第一项是1eVe1-3(13)互联。顾名思义,13是1I和12CaChe之下的一级数据传输层。13互联的重要性体现在,它是提高性能的交换中心。不同SoCFPGA供应商在13系统互联上的特性有所不同。A1teraSoCFPGA提供由三种交换架构构成的13系统
4、互联一一13主交换、13主机外设交换、13从机外设交换,使用ARM的AMBANIC-301网络互联基础结构来实现,如图1所示。图1A1teraSoCFPGA互联体系结构A1teraSoC使用精简分层总线,无阻塞交换体系结构减小了延时。互联设计支持来自多个主机的同时多路会话,提供足够的带宽,因此,每一主机能够连续运行(“无阻塞”)。对于仲裁,能够为每一主机分配优先级,指导总线仲裁。使用最近使用(1RU)篁法对优先级相同的主机进行仲裁。其他厂家的SoCFPGA体系结构可能使用多级层次,这需要分布式仲裁,但这会带来延时。分布式仲裁类似于有多个数据流仲裁。这种方法要求使用中心服务质量(QoS)模块以确
5、保主机不会拥塞。分布式仲裁也有调整问题,会与DDR存储器控制器端口仲裁冲突。SoCFPGA体系结构最显著的优势是处理器与FPGA的片内紧密耨金。为实现这种性能优势,处理器至FPGA互联应有足够的带宽(宽度和速度),选择类型合适的互联也非常重要,这不能成为系统数据传输的瓶颈。在结构方面,在其他厂家SOCFPGA器件中,数据通路和控制通路会竞争并占用带宽。处理器需要访问FPGA逻辑中硬件加速器并对其进行设置。如果这些控制会话过程与数据流出现竞争,那将会阻塞大吞吐量数据流,输入数据连续处理的过程会出现中断。相似的,宽带数据流会延时控制信号,增加了控制延时。为防止出现这种情况,A1teraSoCFPG
6、A采用了第二个低延时、无阻塞“轻量”互联桥接。处理器通过这一简单的32位ARMAdvancedextensib1eInterface(AXD接旦来访问FPGA中的控制寄存器,不会阻塞或者影响大吞吐量数据流,如图2中的蓝色部分所示。同时,处理器和FPGA之间的宽带数据连接支持32位、64位以及128位宽度会话,如图2中的红色部分所示。图2.A1teraSoCFPGA含有大吞吐量数据通路和无阻塞低延时控制通路2 .系统可靠性和灵活性高度集成的SOCFPGA还有助于建立更可靠的系统。两个重要的方面体现了SoCFPGA器件的不同之处:系统中有多少存储器保护?SoCFPGA怎样应对软件缺陷?对错误探测、
7、纠正和监视的需求己经成为当今设计的发展趋势。随着存储器容量和密度的不断增长,对错误检查和纠正的需求也在增长,也越来越重要。大部分现代系统包括专用硬件来帮助实现数据完整性。从SOCFPGA角度看,这包括纠错码,即ECC保护一一它不仅仅是存储器控制器保护的一部分,而且还集成在处理器的片内存储器、高速缓存,以及外设缓冲中。ECC电路使系统更可靠,系统不受意外数据错误或者数据损坏的影响。表1总结了A1teraSoC的硬件ECC与其它厂家的对比AI1emSoCFPGA供应商B11高速缓存奇偶枝蛉(CorteX-A9实现的一部分)奇儡校将(CE5-A9实现的一部分)12高速缓存是没有ECC外部DDR存储器
8、控制器(单个错误纠正,两个错误探测)x16x32仅Xie片内RAX是奇偶秘,没有ECCQUadSPI控制器是没有ECCNAND控制器512字节ECC段大位、8位或者16位纠错)1.024字节ECC段大小(24位纠错)1比特触支持,有软件帮助SDMMCSD1o控制器是没有ECCDMA控制器是14上IOIoO1G以太网拴制器是一USB2.0OTGS是是,g-2第&表1SOCFPGA中的ECC值得重点介绍的另一方面是NAND闪存。NAND闪存适用于文件系统存储,但有时候可靠性不如NOR闪存。因此,NAND闪存的ECC被用于消除错误。早期版本的NAND闪存控制器包括单比特ECC保护。这虽然有一些优点,
9、但是CPu必须参与其中,CPU必须通过软件管理EeC,导致对性能有明显的影响。大部分现代NAND闪存控制器都包括多比特ECC保护。特别是,在AIteraSoCFPGA中实现的NAND闪存控制器包括对512字节段的4比特、8比特和16比特硬件纠错,以及对1,024字节段的24比特硬件纠错。这实现了功能更强更需要的保护功能,而且不会降低性能。存储器保护通常是先进的处理器具有的一种特性。不论是被称为存储器管理单元(MMU)还是存储器保护单元(MPu),处理器的存储器保护单元都能够防止错误或者非法的处理器会话读取或者损害其他的存储器区域。在Corte-A9处理器中,ARM的TrUStZone技术扩展了
10、这一保护概念,为安全敏感的系统提供了系统级方法。某些SoCFPGA将存储器保护扩展到了FPGA。为什么这一存储器保护来自FPGA,又用于FPGA呢?处理器和FPGA可以共享一个外部DDR存储器接口,以便降低成本,减小电路板空间,节省功耗。假设定制FPGA逻辑恰好覆写了一段属于处理器数据、应用程序代码,或者操作系统(OS)内核的存储器,那么会怎样呢?这会导致系统故障或者将处理器指向错误的方向。为防止出现这种情况,为操作系统和嵌入式应用软件指定了特定的存储器区域,而其他存储器区域可以专门用于基于FPGA的功能,如图3所示。通过存储器保护,基于FPGA的功能不会损坏操作系统或者嵌入式软件区域。FPG
11、A图3.DDR存储器保护,处理器和FPGA共享公共的存储器。看门狗定时器可以防止出错的软件将系统阻塞。在以前的双芯片分立方案,即处理器加FPGA的解决方案中,如果处理器运行出错导致看门狗复位,FPGA仍然能够运行。体系结构设计良好的SoCFPGA必须支持同样的“独立”行为,而且还提供选择给系统设计人员来决定是否重新配置FPGA。在很多情况下,很关键的是当处理器自己复位时,FPGA逻辑需要继续监视并响应外部激励。因此,在这种条件下,检查FPGA怎样重新配置非常重要。如表2所示,A1teraSOC支持处理器和FPGA的复位电路单独工作。由系统设计人员决定是否在CPU复位时重新配置FPGA。而其他S
12、oCFPGA则在处理器复位时必须重新配置。功能特性A1teraSoCFPGA供应商BFPGA对CPU复位的响应用户定义:按照用户设计的设定1FPGA遗辑中的触发器,或者重提雇FPGA逻辑,或者不响应。b4mbw#表2.SoCFPGA中的CPU复位灵活性是很多设计人员选择使用FPGA的主要原因之一。可全面编程的SoC将设计灵活性扩展到了系统级。选择SOCFPGA时要考虑的三种体系结构:处理器启动和FPGA配置优先级可选、片内FPGA接口、封装引脚兼容。处理器启动和FPGA配置的多种选择一一对灵活性的需求首先从启动开始。SoCFPGA中有三种:CPU最先启动”方式;或者先配置FPGA,再通过FPG
13、A逻辑启动CPU方式;以及完全独立的处理器启动和FPGA配置机制的方式。目前,A1teraSoCFPGA是唯一设计支持所有这三种选择的ARMCorteX-A9处理器SOCFPGA0灵活性也扩展到片内FPGA接口上。有时候应用程序需要特性丰富的标准接口;有时候则要求简单或者可定制接口。对于需要高级功能的应用,SoCFPGA使用了ARM的AX1接口来连接处理器、硬核外设和FPGA逻辑。AX1标准使用成熟的业界标准,提供高速宽带接口。但是,对于不需要AX1所有特性的IP内核应该怎样呢?可扩展特性更重要,又会怎样呢?需求的一个极端可能是用户定制的IoOo线接口;而另一个极端则只需要一条线来点亮皿或者读
14、取一个开关。为满足这种变化的需求,除了AX1接口,A1teraSoCFPGA还支持AVaIOn存储器映射(AVa1on-MM)接口,以及AVaIorI流(AVaIOn-ST)接口。这些可扩展的AItera接口标准非常适合要求较低或者其他的特殊功能需求。这样,IP设计人员可以为每一功能选择最优接口。这也支持现有A1teraFPGA客户继续使用现有的IP,不一定要移植到AXI。封装引脚兼容布局进一步提高了设计、开发和实施阶段的灵活性。开发人员很容易在具有不同逻辑密度的器件之间移植设计,这些AIteraSoC器件有相同的封装引脚布局。此外,开发人员可以在封装引脚兼容布局范围内,在具有型端和不具有收发
15、器的器件之间进行移植。为进一步降低成本,提供无收发器版本,它支持双核或者单核处理器。这些选择使得一个印刷电路板平台满足了不同的成本和特性应用。3 .系统成本目前发售的每一系统几乎都面临越来越高的成本压力。而SoCFPGA是具有先进特性的创新产品,AItera设计其SOCFPGA时同时考虑了组件和系统成本。一片SoCFPGA的成本要比其替代的组件低50%,同时也能够降低系统成本。当考虑SoCFPGA成本时,应重视三个关键方面:SOC中己经集成了多少等效功能?应用需要高速收发器吗?如果需要,需要多少?相关的电源供电成本有多大?SoCFPGA解决方案的集成度有多高?取决于应用,一片SoCFPGA会含
16、有系统等效的处理器、所有外设、多个区、大量的片内存储器、高速收发器、W针管理以及丰富的定制逻辑。不管怎样,都会有很多问题,如是否同时提供单核和双核处理器版本;除了ARM处理器内核,是否还集成了其他外设;硬核存储器控制器的数量;是否有集成锁相环(P11);是否可以通过配置选项来降低成本;是否需要为控制器分配其他的FPGA逻辑;是否有公共封装引脚布局来优化平台成本等。高速收发器是对设计成本有显著影响的另一关键特性。A1teraSoCFPGA在全系列产品线上提供高速收发器选择。特别是,低端入门级器件以及容量最大的全功能器件都有高速收发器。高速收发器是PCIe等应用的关键因素。否则,会需要外部接口元器件,这增加了系统