应用选择最佳可编程SoC时进行的六个设计考虑

  SoC FPGA器件在一个器件中同时集成了处理器和FPGA体系结构。将两种技术合并起来具有很多优点,包括更高的集成度、更低的功耗、更小的电路板面积,以及处理器和FPGA之间带宽更大的通信等等。这一同类最佳的器件发挥了处理器与FPGA系统融合的优势,同时还保留了独立处理器和FPGA方法的优点。

  目前,市场上主要有三种SoC FPGA,它们的处理器都是完全专用的“硬核”处理器子系统,而不是FPGA架构中的软核知识产权(IP)。所有这三种器件都采用了全功能ARM处理器,具有完整的存储器层次结构,以及专用外设,启动、运行和工作都与“普通”的ARM处理器一样。

  Microsemi SmartFusion2 SoC FPGA基于ARM Cortex-M3嵌入式处理器,主要面向微控制器应用。Altera SoC和Xilinx Zynq-7000器件使用了双核ARM Cortex-A9应用处理器。除了处理器,SoC FPGA还有丰富的外设、片内存储器、FPGA类型的逻辑阵列,以及大量的I/O。

  这几种可编程SoC产品表面上看来来都一样。它们都在一个器件中集成了ARM处理器、各种外设和FPGA。而实际上,仔细的评估这些器件,更深入的了解数据资料是非常关键的。应针对具体应用来评估底层体系结构及其内涵。SoC FPGA体系结构非常重要。仔细的检查和思考会发现在体系结构上有很多明显的不同。

  设计人员应如何选择?本文介绍了在为应用选择最佳可编程SoC时应进行的设计考虑,综合考虑后作出工程决定。选择标准主要集中在六个方面:系统性能、系统可靠性和灵活性、系统成本、功耗、未来发展路线图、开发工具。

  1.系统性能

  SoC FPGA体系结构的两方面最终决定在不同的单元之间能否高效的传送数据:互联,以及片内和片外存储器带宽。

  SoC体系结构要考虑的第一项是Level-3 (L3)互联。顾名思义,L3是L1和L2 Cache之下的一级数据传输层。L3互联的重要性体现在,它是提高性能的交换中心。

  不同SoC FPGA供应商在L3系统互联上的特性有所不同。Altera SoC FPGA提供由三种交换架构构成的L3系统互联——L3主交换、L3主机外设交换、L3从机外设交换,使用ARM的AMBA NIC-301网络互联基础结构来实现,如图1所示。

应用选择最佳可编程SoC时进行的六个设计考虑

  图1.Altera SoC FPGA互联体系结构

  Altera SoC使用精简分层总线,无阻塞交换体系结构减小了延时。互联设计支持来自多个主机的同时多路会话,提供足够的带宽,因此,每一主机能够连续运行(“无阻塞”)。对于仲裁,能够为每一主机分配优先级,指导总线仲裁。使用最近使用(LRU)算法对优先级相同的主机进行仲裁。其他厂家的SoC FPGA体系结构可能使用多级层次,这需要分布式仲裁,但这会带来延时。分布式仲裁类似于有多个数据流仲裁。这种方法要求使用中心服务质量(QoS)模块以确保主机不会拥塞。分布式仲裁也有调整问题,会与DDR存储器控制器端口仲裁冲突。

  SoC FPGA体系结构最显著的优势是处理器与FPGA的片内紧密耦合。为实现这种性能优势,处理器至FPGA互联应有足够的带宽(宽度和速度),选择类型合适的互联也非常重要,这不能成为系统数据传输的瓶颈。

  在结构方面,在其他厂家SoC FPGA器件中,数据通路和控制通路会竞争并占用带宽。处理器需要访问FPGA逻辑中硬件加速器并对其进行设置。如果这些控制会话过程与数据流出现竞争,那将会阻塞大吞吐量数据流,输入数据连续处理的过程会出现中断。相似的,宽带数据流会延时控制信号,增加了控制延时。

  为防止出现这种情况,Altera SoC FPGA采用了第二个低延时、无阻塞“轻量”互联桥接。处理器通过这一简单的32位ARM Advanced eXtensible Interface (AXI)接口来访问FPGA中的控制寄存器,不会阻塞或者影响大吞吐量数据流,如图2中的蓝色部分所示。同时,处理器和FPGA之间的宽带数据连接支持32位、64位以及128位宽度会话,如图2中的红色部分所示。

应用选择最佳可编程SoC时进行的六个设计考虑

  图2.Altera SoC FPGA含有大吞吐量数据通路和无阻塞低延时控制通路

  2.系统可靠性和灵活性

  高度集成的SoC FPGA还有助于建立更可靠的系统。两个重要的方面体现了SoC FPGA器件的不同之处:系统中有多少存储器保护? SoC FPGA怎样应对软件缺陷?

  对错误探测、纠正和监视的需求已经成为当今设计的发展趋势。随着存储器容量和密度的不断增长,对错误检查和纠正的需求也在增长,也越来越重要。大部分现代系统包括专用硬件来帮助实现数据完整性。

  从SoC FPGA角度看,这包括纠错码,即ECC保护——它不仅仅是存储器控制器保护的一部分,而且还集成在处理器的片内存储器、高速缓存,以及外设缓冲中。ECC电路使系统更可靠,系统不受意外数据错误或者数据损坏的影响。

  表1总结了Altera SoC的硬件ECC与其它厂家的对比

应用选择最佳可编程SoC时进行的六个设计考虑

  表1.SoC FPGA中的ECC

  值得重点介绍的另一方面是NAND闪存。NAND闪存适用于文件系统存储,但有时候可靠性不如NOR闪存。因此,NAND闪存的ECC被用于消除错误。早期版本的NAND闪存控制器包括单比特ECC保护。这虽然有一些优点,但是CPU必须参与其中,CPU必须通过软件管理ECC,导致对性能有明显的影响。大部分现代NAND闪存控制器都包括多比特ECC保护。特别是,在Altera SoC FPGA中实现的NAND闪存控制器包括对512字节段的4比特、8比特和16比特硬件纠错,以及对1,024字节段的24比特硬件纠错。这实现了功能更强更需要的保护功能,而且不会降低性能。

  存储器保护通常是先进的处理器具有的一种特性。不论是被称为存储器管理单元(MMU)还是存储器保护单元(MPU),处理器的存储器保护单元都能够防止错误或者非法的处理器会话读取或者损害其他的存储器区域。在Cortex-A9处理器中,ARM的TrustZone技术扩展了这一保护概念,为安全敏感的系统提供了系统级方法。

  某些SoC FPGA将存储器保护扩展到了FPGA。为什么这一存储器保护来自FPGA,又用于FPGA呢?处理器和FPGA可以共享一个外部DDR存储器接口,以便降低成本,减小电路板空间,节省功耗。假设定制FPGA逻辑恰好覆写了一段属于处理器数据、应用程序代码,或者操作系统(OS)内核的存储器,那么会怎样呢?这会导致系统故障或者将处理器指向错误的方向。

  为防止出现这种情况,为操作系统和嵌入式应用软件指定了特定的存储器区域,而其他存储器区域可以专门用于基于FPGA的功能,如图3所示。通过存储器保护,基于FPGA的功能不会损坏操作系统或者嵌入式软件区域。

应用选择最佳可编程SoC时进行的六个设计考虑

  图3.DDR存储器保护,处理器和FPGA共享公共的存储器。

  看门狗定时器可以防止出错的软件将系统阻塞。在以前的双芯片分立方案,即处理器加FPGA的解决方案中,如果处理器运行出错导致看门狗复位,FPGA仍然能够运行。体系结构设计良好的SoC FPGA必须支持同样的“独立”行为,而且还提供选择给系统设计人员来决定是否重新配置FPGA。在很多情况下,很关键的是当处理器自己复位时,FPGA逻辑需要继续监视并响应外部激励。因此,在这种条件下,检查FPGA怎样重新配置非常重要。

  如表2所示,Altera SoC支持处理器和FPGA的复位电路单独工作。由系统设计人员决定是否在CPU复位时重新配置FPGA。而其他SoC FPGA则在处理器复位时必须重新配置。

应用选择最佳可编程SoC时进行的六个设计考虑

  表2.SoC FPGA中的CPU复位

  灵活性是很多设计人员选择使用FPGA的主要原因之一。可全面编程的SoC将设计灵活性扩展到了系统级。选择SoC FPGA时要考虑的三种体系结构:处理器启动和FPGA配置优先级可选、片内FPGA接口、封装引脚兼容。

  处理器启动和FPGA配置的多种选择——对灵活性的需求首先从启动开始。SoC FPGA中有三种:“CPU最先启动”方式;或者先配置FPGA,再通过FPGA逻辑启动CPU方式;以及完全独立的处理器启动和FPGA配置机制的方式。目前,Altera SoC FPGA是唯一设计支持所有这三种选择的ARM Cortex-A9处理器SoC FPGA。

  灵活性也扩展到片内FPGA接口上。有时候应用程序需要特性丰富的标准接口;有时候则要求简单或者可定制接口。对于需要高级功能的应用,SoC FPGA使用了ARM的AXI接口来连接处理器、硬核外设和FPGA逻辑。AXI标准使用成熟的业界标准,提供高速宽带接口。但是,对于不需要AXI所有特性的IP内核应该怎样呢?可扩展特性更重要,又会怎样呢?需求的一个极端可能是用户定制的1000线接口;而另一个极端则只需要一条线来点亮LED或者读取一个开关。

  为满足这种变化的需求,除了AXI接口,Altera SoC FPGA还支持Avalon存储器映射(Avalon-MM)接口,以及Avalon流(Avalon-ST)接口。这些可扩展的Altera接口标准非常适合要求较低或者其他的特殊功能需求。这样,IP设计人员可以为每一功能选择最优接口。这也支持现有Altera FPGA客户继续使用现有的IP,不一定要移植到AXI。

  封装引脚兼容布局进一步提高了设计、开发和实施阶段的灵活性。开发人员很容易在具有不同逻辑密度的器件之间移植设计,这些Altera SoC器件有相同的封装引脚布局。此外,开发人员可以在封装引脚兼容布局范围内,在具有收发器和不具有收发器的器件之间进行移植。为进一步降低成本,提供无收发器版本,它支持双核或者单核处理器。这些选择使得一个印刷电路板平台满足了不同的成本和特性应用。

  3. 系统成本

  目前发售的每一系统几乎都面临越来越高的成本压力。而SoC FPGA是具有先进特性的创新产品,Altera设计其SoC FPGA时同时考虑了组件和系统成本。一片SoC FPGA的成本要比其替代的组件低50%,同时也能够降低系统成本。

  当考虑SoC FPGA成本时,应重视三个关键方面:SoC中已经集成了多少等效功能? 应用需要高速收发器吗?如果需要,需要多少? 相关的电源供电成本有多大?

  SoC FPGA解决方案的集成度有多高? 取决于应用,一片SoC FPGA会含有系统等效的处理器、所有外设、多个DSP、大量的片内存储器、高速收发器、时钟管理以及丰富的定制逻辑。不管怎样,都会有很多问题,如是否同时提供单核和双核处理器版本;除了ARM处理器内核,是否还集成了其他外设;硬核存储器控制器的数量;是否有集成锁相环(PLL);是否可以通过配置选项来降低成本;是否需要为控制器分配其他的FPGA逻辑;是否有公共封装引脚布局来优化平台成本等。

  高速收发器是对设计成本有显著影响的另一关键特性。Altera SoC FPGA在全系列产品线上提供高速收发器选择。特别是,低端入门级器件以及容量最大的全功能器件都有高速收发器。高速收发器是PCIe等应用的关键因素。否则,会需要外部接口元器件,这增加了系统材料成本(BOM)。另一方面,某些嵌入式设计不一定需要高速收发器,Altera提供不含有高速收发器的SoC FPGA型号,从而降低了SoC FPGA元器件成本。

  电源电压轨数量和容量对设计的成本和复杂度有非常明显的影响。所有SoC FPGA都需要多个电压轨,但是有的要比其他少很多。而且,某些SoC FPGA有严格的上电和关电顺序控制,要采用更复杂——而且昂贵的电源供电。特别是,由于可能会出现各种掉电条件,导致很难进行关电顺序。理想情况是,最好能够避免上电或者关电要求,特别是这些要求影响器件长期可靠性的时候。Altera SoC FPGA没有任何上电或者关电顺序要求。

  4.电源

  即使不是推动因素,低功耗也成为很多设计中越来越重要的因素。在SoC FPGA器件之间进行选择时,与功耗相关的重要因素有三个:集成、低功耗模式、上电/关电顺序要求。

  通过集成降低功耗。如图4所示,在一片SoC FPGA中集成处理器和FPGA元器件能够把系统功耗降低10%到30%。I/O在器件之间传送信号,通常需要较高的电压,是应用中最耗能的组件。

应用选择最佳可编程SoC时进行的六个设计考虑

  图4.在一片SoC FPGA中集成处理器和FPGA减少了高功耗的芯片间I/O连接

  低功耗模式。SoC FPGA具有各种低功耗和低成本特性。由于功耗的主要是器件的FPGA部分,因此,处理器系统和FPGA有分开独立的电源平面非常重要。为降低功耗,处理器可以通过软件控制将FPGA置于低功耗模式。

  上电/关电顺序要求。为保证器件的可靠性,或者确保某种上电状态,硅片供应商会提出特殊的上电和关电顺序要求。上电顺序要求是很常见的,而通过关电规范来保护器件却很少见。这意味着,必须在电源上增加额外的电路,否则系统生产商会面临长期可靠性问题。

  对于有关电顺序要求的器件,必须要非常小心,以避免每一电源轨失效,导致违反规范。这就要求采用比较模拟电路来监视电压轨,必须增加相应的保护电路。为保证正确的关电顺序,还需要有足够的功率存储。

  Altera SoC FPGA内置了内部器件保护功能,因此,可以接受任意顺序的上电或者关电。Altera的确推荐了上电顺序,但只是作为系统电源供电设计人员的指南,帮助他们降低成本,并没有任何可靠性含义。其他SoC FPGA供应商的确有上电和关电顺序要求,如果经常违反,会导致器件的长期可靠性问题。

  Altera SoC FPGA保证使I/O进入三态,避免了电路板级驱动竞争问题。如果违反了上电顺序要求,其他SoC FPGA供应商器件不能保证这些。

  而且,Altera SoC FPGA支持“热插拔”,器件可以插入到已经上电的电路板中。其他SoC FPGA供应商并不提供这一功能。

  5.未来发展路线图

  选择新处理器体系结构是关键的决定。供应商的产品路线图能否满足未来应用需求,突出系统优势,长期看系统是否具有竞争优势,对此进行评估非常重要。考虑到较大的软件投入,基本软件能够轻松移植到未来产品上也非常重要。因此,不仅要知道SoC供应商在下一代产品上有哪些承诺,而且还要提出以下问题:

  ●在这一产品线上打算有多大规模的投入?

  ●今后对提高系统设计的竞争力会有多大帮助?

  ●工具有没有发展路线图?

  为满足SoC FPGA的目标应用需求(通信基础设施、工业、汽车、高性能计算、军事、航空航天、医疗、多功能打印机,等等),Altera制定了三代处理器发展路线图,如图5所示。

应用选择最佳可编程SoC时进行的六个设计考虑

  图5.Altera SoC FPGA系列产品发展路线图

  发展路线图从28 nm Cyclone V和Arria V SoC FPGA开始。在20 nm第二代,Arria 10 SoC FPGA处理器子系统仍然一样,含有双核ARM Cortex-A9 MPCore处理器。双核ARM A9保持了软件的兼容性,很容易进行软件移植,由于采用了20 nm工艺技术,处理器性能比第一代提高了87%。第二代还增强了安全特性和存储器支持。StraTIx 10 SoC FPGA中集成了四核ARM Cortex-A53处理器,第三代SoC FPGA处理器子系统进一步提高了高端器件的性能。64位A53有效的提高了性能,同时仍然是低功耗器件。如果需要,四个内核中的两个可以运行在32位模式下,以维持与第二代软件的兼容性,而其他两个内核可以运行在64位模式下,以支持新应用。

  所有硅片元器件发展路线图的基础都是硅片工艺技术。今天,大部分SoC FPGA都采用了28 nm硅片工艺进行制造。工艺技术的下一主要发展方向是FinFET技术。

  FinFET晶体管将沟道翻转至侧面,二维设计转变为三维设计,推动了半导体行业的革命。这种新结构的优点在于密度更高、泄漏更小,有源功耗更低。Intel真正的引领了FinFET技术。Intel的第一代采用了22 nm,他们现在的第二代“三栅极”技术则在14 nm上实现。Altera SoC FPGA将在14 nm工艺节点上采用三栅极技术。

  对于调试和开发工具,Altera与ARM达成了长期战略合作关系。2012年12月,两家公司宣布了独家协议,共同开发ARM DS-5嵌入式软件开发工具包,为Altera SoC FPGA提供FPGA自适应调试功能。

  与此同时,Altera在FPGA上采用了OpenCL标准,与目前的其他硬件体系结构(CPU、GPU,等)相比,能够大幅度提高性能,同时降低了功耗。OpenCL采用了扩展ANSI C,与使用Verilog或者VHDL等底层硬件描述语言(HDL)的传统FPGA开发方法相比,使用OpenCL标准、基于FPGA的异构系统(CPU + FPGA)具有明显的产品及时面市优势。

  6.开发工具

  SoC FPGA为实现更快、更便宜、能效更高的电子产品开辟了新途径。但是,伴随着硬件创新,开发和调试工具也应该不断创新。软件最终决定了设计人员能否成功的使用这些器件。为实现更广泛的应用,软件开发人员必须找到合适的SoC FPGA,掌握其特性,就像独立处理器那样轻松高效的使用它们。Altera SoC嵌入式设计套装(EDS)开发环境,使用了ARM DS-5 Altera版工具,与市场上其他调试工具不同。其特点包括FPGA自适应调试、ARM处理器与FPGA工具采用同一条USB电缆、外设寄存器自动显示、VFP和Neon寄存器显等方面均拥有突出优势。

  软件开发一直是工程规划的主要部分。同一器件上处理器组合FPGA的这种混合特性增加了新的开发方向。必须仔细考虑这种新方向会怎样影响工程规划、工程团队的学习曲线,以及过去在软件工具上的投入。

  首先也是最重要的,这些新器件的工具应兼容ARM,利用了ARM辅助支持系统,这一点非常关键。目前市场上的所有SoC FPGA都采用了ARM处理器IP,通常包括了来自ARM处理器软件开发工具广大的辅助支持系统的支持。但是,每一家供应商针对器件增加的FPGA部分有不同的处理方法。这些不同对以下方面的影响较大:

  全芯片调试:在独立处理器上调试应用程序是很好理解的问题,有成熟的软件辅助支持系统提供成熟的解决方案。采用SoC FPGA,SoC不再是预定义的,相应的,调试工具必须支持很多新结构,如在FPGA中实现的其他的用户定义外设,在FPGA中实现的含有硬件加速模块的软件功能,FPGA中实现专用算法的定制逻辑模块。

  分析CPU和FPGA。系统分析是任何好调试器都具备的功能,能够帮助开发人员解决常见问题,如系统中的热点在哪里?CPU内核的时间都花在了哪里?所使用的高速缓存效率有多高?为能够让分析功能在具有集成FPGA的处理器系统中真正发挥作用,FPGA事件也必须是分析的一部分。否则,没有FPGA自适应调试功能,开发人员只能看到并控制部分芯片

  多核调试。在多核调试中,能够同时独立控制并监视处理器内核是非常有必要的。在某些情况下,需要在一个断点上停止所有内核。但是,在其他情况下,只需要在断点处停止一个处理器,而另一个内核继续执行代码。最好还能查看每一内核上运行的软件。调试器和分析工具应能够设计支持多核应用。作为对比,GNU基于GDB的调试工具最初只是设计满足单核需求。基于GDB的调试器工作起来非常好,但是一次只能处理一个内核。在多核系统中使用基于GDB的调试器时,可以在多个内核上设置断点。但是,当应用软件最终遇到一个断点时,只能观察触发断点的内核。实际上,每次只能调试一个内核。在调试阶段无法看到其他内核,这对于多核调试而言是很大的局限。ARM及其辅助支持系统合作伙伴积极应对这一多核难题,开发了功能强大的高质量多核调试工具。当选择一款SoC FPGA时,重要的一点是所选择的SoC FPGA系列比较容易使用真正的多核调试器。

  标准工具和流程。软件工程师使用熟悉而又成熟的工具效率会更高。在熟悉的工具中可以使用新的硬件特性。大部分工程师希望使用有很多支持的“标准”工具来编辑、编译、下载、调试他们的应用程序,而不是采用新的专用流程。Altera与ARM合作开发了特殊版本的业界标准ARM DS-5工具包,以支持实现Altera SoC FPGA的特性,发挥其优势。通过这一业界领先的协议,ARM DS-5 Altera版工具包使用熟悉的业界标准接口,提供了FPGA自适应调试和其他关键多核特性。这一工具包还支持在硬件和软件调试中只使用一条Altera USB-Blaster II电缆。

  结论

  SoC FPGA是功能强大的新一类可编程器件,适用于多种电子设计。商用器件集成了标准ARM处理器——Cortex-M3或者功能更强大的双核Cortex-A9,以及丰富的外设、片内存储器、高速内部互联体系结构、分层片内存储器,还有前沿的FPGA架构。这些器件表面上看起来非常相似,但是底层体系结构却不尽相同。

  为不同应用选择最佳SoC FPGA需要充分考虑六大标准,即系统性能、设计可靠性和灵活性、系统成本、功耗、未来产品发展路线图,以及开发工具在帮助这些SoC FPGA取得成功方面扮演的重要角色。

  • 应用选择最佳可编程SoC时进行的六个设计考虑已关闭评论
    A+
发布日期:2019年07月15日  所属分类:参考设计