为了削减成本,提升性能和保持灵活性,在工业、医疗、汽车、航天和军用产品等广泛的应用领域,包括处理器和外设在内的完整的嵌入式系统被整合到了FPGA 上。
虽然FPGA的传统用户是硬件设计者,但是赛灵思的新型嵌入式设计平台,使得软件开发人员也能够在熟悉的环境中轻松编程,包括Eclipse IDE、编译器、调试器、操作系统和库。编程可以利用uC/OS-II之类的RTOS 甚至全嵌入式Linux在裸金属级完成。
图1 嵌入式目标参考设计
嵌入式设计趋势及挑战
FPGA的应用到现在已经有二十多年的时间了,我们在各个领域都能看到各种FPGA的应用,例如医疗、工业控制、汽车电子、连接IP、高端显示、无线、监控、军事通信等等。然而,FPGA内使用嵌入式处理器的时间只不过是近十年的事情,从1999年到现在,FPGA内使用嵌入式处理器在逐年正向增加中。
图2EDK软件、硬件和集成流程
图3 简单的SDK软件开发流程步骤
随着FPGA内使用嵌入式处理器设计越来越多,我们面临的挑战也越来越多,主要挑战分为三个方向:
• 满足不断提高的技术要求
–要求有一个适用于该应用的处理器系统
–要求能够选择正确的功能(外设)组合
• 即便只有很少的FPGA设计经验,也能开发软件
–需要易于定制的预配置系统
• 降低进度风险
–希望花更少的时间创建和调试定制IP模块
–快速并行开发和验证软硬件
很多人都使用过嵌入式处理器,但当一开始在选择一个嵌入式处理器作为系统核心时,考虑要点是什么呢?一个适用于该系统应用的处理器以及能够正确满足外设功能需求的组合将会是最后的选择。这些选择处理器的条件都是FPGA嵌入式处理的挑战。
除此之外,FPGA硬件设计的难度必须要有效降低,能让对FPGA经验设计较少的人员也能够开发软件,这点是因为传统的FPGA设计工程师,他们虽然没有硬件的设计经验也要能够开发软件,这就必须要有一个易于制定的预配置系统。
在进度风险的管理上,FPGA嵌入式设计显得额外重要,由于FPGA嵌入式设计包含软件和硬件同时在一个芯片上,所以当问题发生时,硬件人员和软件人员并不能很快理清问题的症结点,所以常常延迟进度,因此在选择FPGA嵌入式系统时,使用人员往往希望花更少的时间来调试硬件IP模块,并同时开发验证软件,软硬件的整合和效能提升是一个很大挑战。
赛灵思嵌入式平台
赛灵思基于FPGA的嵌入式平台的基本价值在于为了满足不断提高的客户要求。而嵌入式目标参考设计可以让对FPGA设计经验很少的人也能够快速开发软件。而内含目标参考设计Spartan-6和Virtex-6的嵌入式套件可以有效地管理降低客户开发进度风险。
Spartan-6 FPGA嵌入式套件
• 描述:
–该套件支持使用MicroBlaze软处理器的软件开发工作以及使用Spartan-6 LX45T FPGA的硬件处理器系统定制工作。
• 组件:
–采用Spartan-6 LX45T FPGA的SP605基础板
• 下载/调试电缆、电源
–ISE设计套件:嵌入式版本
• ISE和 ChipScope Pro:S6LX45T专用的器件
• Platform Studio、软件开发套件(SDK) (Eclipse IDE)
–嵌入式目标参考设计
• MicroBlaze™处理器子系统设计
–技术文档
• 硬件设置指南和入门指南
• 深入的硬件和软件分步辅导资料
–生态系统合作伙伴提供OS/RTOS支持
• Linux、uC/OS-II、TreckVirtex-6 FPGA嵌入式套件
• 描述:
–该套件支持使用MicroBlaze软处理器的软件开发工作以及使用Virtex™-6 LX240T FPGA的硬件处理器系统定制工作
• 组件:
–采用Virtex-6 LX240T FPGA的 ML605基础板
• 下载/调试电缆、电源
–ISE设计套件:嵌入式版本
• ISE和ChipScope Pro:V6LX240T专用的器件
• Platform Studio、软件开发套件(SDK) (Eclipse IDE)
–嵌入式目标参考设计
• MicroBlaze处理器子系统设计
–技术文档
• 硬件设置指南和入门指南
• 深入的硬件和软件分步辅导资料
–生态系统合作伙伴提供OS/RTOS 支持
• Linux、uC/OS-II、Treck
图4 简单硬件设计流程步骤
图5 集成并优化软件/硬件
嵌入式目标参考设计
Spartan-6和Virtex-6嵌入式目标参考设计其实是非常相象的,它们都包含一个32位的MicroBlaze™RISC处理器,性能优化,支持Linux RTOS,100MHz时钟频率。另外还包含集成式存储控制器,包含DDR、DDR2、DDR3、LPDDR,数据速率达800Mbps。
全套优化的软IP外设和总线结构包含UART、Flash、GPIO、I2C/SPI、Timer/Intr Controller、Debug。具体如图1所示,参考设计中集成以太网MAC IP,资源百兆、千兆网,子IP也可与外部码作整合。处理器和处理器子系统全面可操作且简便易用,有助于立即着手系统开发工作。
MicroBlaze处理器子系统
Spartan-6和Virtex-6嵌入式参考设计中,提供MicroBlaze处理器子系统,称为PSS(processer sub system),通过这样一个PSS子系统,用户可以很快地将自己的定义逻辑加入这样一个子系统中,由于这个目标参考设计MicroBlaze子系统已经整合了许多外设功能,用户制定的这个逻辑便可以很快地通过网络来控制或者让DDR内存作存储,这将有效降低客户在开发过程中的时间。
操作步骤
提高效率只需简单几步,第一步,数分钟内启动设计,包括连接电缆,接通开发板电源,载入嵌入式平台演示;第二步,评估,包括评估嵌入式平台演示,用互动界面评估性能参数;第三步,定制,包括启动嵌入式目标参考设计项目,根据软件开发辅导资料对软件应用进行编程、调试和描述,根据硬件开发辅导资料进行设计修改。
在经过第一步和第二步之后,用户已经充分了解嵌入式目标参考设计的内容,并可利用嵌入式目标参考设计来加入用户自己的逻辑和自己的软件,使用XPS进行硬件制定的开发,使用SDK进行软件的开发,这样就可以按时完成设计要求。
EDK是Xilinx嵌入式开发套件,其主要工具XPS是集成标准硬件流程ISE以及标准软件流程SDK。XPS本身并不实现硬件流程,是通过呼叫ISE来达成硬件流程的实现。硬件流程包含了标准的FPGA硬件发展流程。XPS也不实现标准软件流程,也是通过呼叫SDK来实现标准软件流程。用户可以通过XPS对系统作描述,如图2所示。可以称XPS为一个脚本产生器,是用来联络硬件和软件流程的工具。
简单的SDK软件开发流程步骤如图3所示,这些都将在SDK上完成。
• 采用SDK Eclipse IDE开始设计
• 打开专门针对MicroBlaze PSS 目标参考设计配置的工作区(Workspace)
• 编程
• 创建独立的软件平台或OS BSP
• 创建、编译并构建软件应用
• 用图形调试器调试软件应用
简单硬件设计流程步骤如图4所示。
• 用XPS开始设计
• 启动MicroBlaze PSS目标参考设计项目
• 修改
• 从EDK套件中选择其他标准外设添加到PSS
• 根据“创建IP向导”创建定制IP
• 根据“调试配置向导”添加ChipScope调试IP
集成并优化软件/硬件的步骤如图5所示。
• 用 ChipScope™Pro 分析工具调试软件/硬件集成问题
• 用SDK描述应用并确定热点
• 下载性能关键代码(performance critical code)到硬件加速器
第三方提供嵌入式软件支持主流的有Linux (PetaLinux)、uC/OS-II和Treck 网络中间件,主要特性如表1所示。
表1 生态系统合作伙伴主要特性
总结
最后总结一下,新型嵌入式开发套件可最大限度地缩短开发时间也就是加速产品上市进程,采用预集成组件降低风险,也就是新型目标参考设计可帮助设计人员提高工作效率。可以使设计人员致力于实现产品差异化和增值。