基于ARM的SoC FPGA嵌入式系统的设计实现
引言
当今的嵌入式系统开发人员面临前所未有的挑战,努力向市场推出最具竞争力的产品。
直到最近,实现的大部分系统还局限于需要大量软件而且功耗非常高的多芯片系统或者昂贵的SoCASIC.但是,越来越多的设计团队感到受市场压力以及资源限制的影响,这些方法的吸引力越来越低。而对于基于ARM的嵌入式系统,FPGA技术、知识产权(IP)以及设计工具的发展促进了用户可定制SoC FPGA 的诞生。这些器件不但克服了传统方法的缺点,而且在嵌入式系统实现上非常独特,具有明显的优势。
应用广泛的ARM处理器
仅仅几年前,处理器市场还是四分五裂。PowerPC、RISC、MIPS、SPARC 以及很多其他平台都在竞争市场主导地位。但是,随着市场的成熟,而且越来越专业化,某些平台在一些应用领域中脱颖而出。特别是嵌入式系统应用领域的ARM处理器(图1)尤其如此。
图1. 嵌入式系统应用中流行的平台
在发展迅速的嵌入式系统市场上应用非常广泛的ARM处理器非常适合设计人员使用。
首先,发展非常成熟的软件、开发工具和ARM兼容器件辅助系统实现了能够协同工作的解决方案工具箱。其次,受迅速发展的ARM市场规模经济因素的影响,出现了更好、更先进的系统实现选择。
嵌入式系统设计挑战
与以往相比,嵌入式系统开发人员必须建立高性价比系统。迅速扩张的全球市场对设计人员的要求越来越高。但中国、印度和拉丁美洲等新兴市场领域的机遇也越来越多,这些市场越来越重要,不容忽视。为满足越来越高的用户基本需求,需要支持各种标准和价格、性能以及特性的平台。而且,竞争在全球展开,这对设计团队的压力更大,要求在越来越小的市场窗口内推出特性丰富的产品。
然而,对嵌入式产品的要求如此之高,设计团队却在不断减少。经济压力迫使很多公司缩减规模,设计资源也由此受到影响。结果,开发团队的规模在缩减,而工作强度却在增大。
对成本非常关注的基于ARM的嵌入式系统设计人员越来越明显的感受到这一压力,清楚的认识到传统实现方法的缺点。多芯片解决方案实现起来相对容易一些,但是成本高,缺乏灵活性,性能/ 功耗指标达不到目前应用的需求。采用了软核处理器的单芯片解决方案实现起来也相对容易一些,但是难以达到功耗和性能目标。ASIC SoC 具有板上硬核ARM内核,功耗和性能表现非常出色,但是面市时间长,不灵活,对于大部分应用而言成本过高。为提高竞争力,嵌入式系统开发人员需要一种能够帮助他们开发独具优势产品的解决方案,非常灵活,效率也非常高。
新一类SoC
在过去十年中,FPGA 内置嵌入式处理器的应用在稳步增长(图2)。由于Altera 在FPGA 技术上的进步,出现了新一类SoC 器件,满足了目前嵌入式系统应用的多种功能需求。基于ARM的SOC FPGA 在一个SoC 中结合了硬核ARM处理器、存储器控制器以及外设和可定制FPGA 架构。这些SoC FPGA 解决了设计人员面临的很多难题,突出了产品优势,价格和性能达到最优,产品能够及时面市,延长了产品使用寿命。
图2.FPGA 中处理器的发展
SoC FPGA
基于ARM的SoC FPGA(图3 所示)在单片FPGA 中紧密结合了经过优化的“硬核”处理器系统(HPS)模块。HPS包括双核ARM处理器、多端口存储器控制器以及多个外设单元,处理器性能达到4,000 DMIPS(DhrySTONes 2.1 基准测试),功耗不到1.8 W.这些硬核IP模块提高了性能同时降低了功耗和成本,减少了对逻辑资源的占用,突出了产品优势。用户可以定制片内FPGA 架构,开发专用逻辑。可编程功能支持采用新的或者修改后的通信标准和网络协议,进一步调整性能。
图3. 处理器与FPGA 架构紧密集成
与传统的解决方案相比,SoC FPGA 在性能上有明显的优势。硬核单元相对于软核IP进行了很大的优化,在所采用的工艺节点上,实现了最好的性能、最低的功耗以及最高的密度。FPGA 通常是新工艺节点最先推出的器件,因此,设计人员利用SoC FPGA 能够使用最新最好的半导体技术。而且,与基于电路板的解决方案相比,片内总线紧密连接各个单元,进一步提高了性能和功效。从系统整体角度看,SoC FPGA 明显减小了系统体积,降低了功耗和成本。
产品更迅速面市
通过现场可编程平台,使用现成的器件开发定制基于ARM的SoC FPGA,其开发时间和成本只是其他定制器件的一小部分。可靠的FPGA 设计工具、直观的系统集成工具以及成熟的ARM辅助系统相结合,加速了开发过程,降低了风险。即使是第一次实现FPGA的设计人员,目前常用的工具支持接口格式和标准,因此,他们可以比较轻松的重新使用已有软件、IP和其他设计内容。使用SoC FPGA 平
- Linux嵌入式系统开发平台选型探讨(11-09)
- 嵌入式系统中文输入法的设计(03-02)
- 基于MPC755的嵌入式计算机系统设计(05-10)
- WinCE下光电编码器的驱动程序设计(04-12)
- 为什么嵌入式开发人员要使用FPGA(05-13)
- VxWorks几种常用的延时方法介绍(05-16)