FPGA嵌入式处理器的选择策略
在逻辑水平设计板级产品很罕见。如果无法用一两个微控制器实现,那么设计师该怎么做呢?多年以来,都是用FPGA完成,但FPGA工具学习起来很艰难。同样,FPGA要增加费用,功率要求也高,并且要求的外部支持证明通常也很困难。
不过,所有这些都变了。廉价FPGA目前变得普通了。高性能产品依然昂贵,不过,更加划算。低功耗一直是对微控制器的信条,对FPGA也一样。此外,现在设计支持FPGA相对简单。
剩下学习过程了,FPGA开发工具取得的重要成就已使这一过程大为改观。FPGA工具设计师一直受到给FPGA专家提供所需功能的压力,要求接口也不会把新手吓跑。
因此,下一个难点涉及到工具与硬件的连接,这可通过把工具与开发板在套件中结合起来解决。FPGA一出现,这些套件就有了,但最新的产品是不再使设计师只有开发工具和带外设用的数个LED及开关的裸FPGA。
目前,具有针对性的套件与外设匹配,如数码相机以及相配的固件和软件。有些针对软核方案,软件开发者可以加入到其中,因FPGA已经用软或硬核外加相关硬件甚至操作系统编程了。ARM公司自己的Cortex-M1开发套件针对Altera公司的Cyclone III FPGA。Cortex-M1软核对Altera的产品线是免许可费的。
尽管如此,设计师仍要考虑其需求和选项。50美元以下的FPGA套件实际上对所有设计师都开放了FPGA开发,但要注意细节,特别是涉及软件时。某些工具的30天截止期甚至对学习取得进展时间都不够,更不用说设计新产品了。
同样,免费工具与收费的同类产品相比常缺少更高级的功能。实际进行时,软件模块、中间件以及其它知识产权(IP)也可能隐藏有成本费用。
从源头开始的FPGA
开发套件是促使各个公司购买更多FPGA的工具。因此,主要的FPGA销售商, 如Actel、Altera、Lattice半导体以及Xilinx公司都提供突出其各种产品的大量套件也就不足为奇了。许多第三方公司也提供套件。网站www.electronicdesign.com的Lab Bench Online栏目中有关于这些套件的大量实践评论。
Xilinx XtremeDSP视频入门套件的Spartan-3A DSP版就是一个很好的针对性套件的例子(见图1)。美光的VGA CMOS三角架视频相机带一个RJ-45视频信号连接器,同时Spartan-3A DSP 3400A板上的另一个RJ-45连接器提供以太网接入。
这种板是带扩展功能的高端方案的代表。其中,有两个FPGA通信子卡(FMC)插槽。一个装有Xilinx的Xtreme DSP FMC卡,带一对相机RJ-45连接器外加视频输出连接器,包括S-video、复合视频以及数字视频接口(DVI)。
与大多数FPGA开发套件一样,XtremeDSP套件包括许多软件,包括Xilinx的集成综合环境(ISE)、嵌入式开发套件(EDK)以及DSP系统发生器。特征丰富的ISE只有60天可用期,而功能稍少的WebPack版本则不会过期。
128 M字节标准闪存卡编程有系统ACE启动图像,可现成在盒外使用。系统ACE应对系统级配置,可以处理多种配置。同时也支持软件存储加密。
视频入门套件文档和参考设计CD中有更具趣味的部件。提供了围绕32位MicroBlaze软核以及样本参考设计的基础设计细节。相机输入和视频输出需要的诸如帧缓冲控制器及类似支持成分使提供的IP很完美。
像Xilinx套件针对的独立设计十分常见。在其他例子中,FPGA与高速串行口相连的模块化系统的组成部分。Lattice半导体公司的PCI Express开发套件就是这种情况(见图2)。
一般来说,FPGA能够支持高速串行口(PCI Express、Serial RapidIO及InfiniBand),为应用固件留有丰富余量。实际上,在如军用和航天应用的VPX (VITA 46)结构的板上常使用FPGA。这样可以实现单个板编程为支持构建在FPGA内的采用高速串行器/并行器(SERDES)上的不同协议。
Lattice的4x PCI Express板可以插入到标准PC中。其中的FPGA为一个LatticeECP2M。其PCI Express接口专用4组SERDES,其他的则连接到10个表面贴装(SMA)连接器上。卡边缘的4个2元网络连接器(BNC)为FPGA提供了电影及电视工程师协会(SMPTE)视频接口。另外,此卡有可以被FPGA操作的一小列开关和状态LED。
此套件是为测试PCI Express支持与开发FPGA接口应用的关系而设计的,如果不被板的其他连接支持。套件带的软件包括Lattice半导体的ispLever。不过,免费的ispLever入门版不支持板上的LatticeECP2M。因此,根据设计要求不同,大多数开发者很可能购买全许可证书,并且可能转向其他平台。此套件同时包括有演示和PCI Express配置软件。
另一个“入门点”套件是Altera的449美元的NIOS II嵌入式评估套件,Cyclone III版(图3)。该系统突出了32位NIOS II软核处理器和Cyclone III EP2C25F324 FPGA。包括两个板:一个安装FPGA和一些外设,另一个包含800×480 LCD和包括与以太网的其他连接。
此LCD触摸屏提供了一个用户接口,单元背面有辅助按键。虽然没有提供电池组,但系统可以采用电池工作。对便携设备来说尺寸有些大,但对样机和演示工具来说足够了。
系统集成了16 M字节闪存和32 M字节双数据率(DDR)SDRAM 以及1 M字节 SRAM。其存储设备(SD)卡插槽可以支持NIOS II应用。加载到FPGA的缺省应用提供了与基于SD的应用的接口。
系统带免费的网络版Quartus II及ModelSim仿真器,一直有效。不过,开发者切实开发时一般都转向了完整版。产品包也包括InterNiche的IPv4 Niche- Stack TCP/IP网络栈。也可从InterNiche获得IPv6和附加服务。
此外,系统出自为NIOS II软件应用准备的装置,虽然平台同样能处理FPGA设计。这对想专心软件设计,同时也需要FPGA的灵活性和功能的FPGA新手非常有利。附加IP可能仅仅是NIOS II设备组的一个附加外设,或者可能是一个处理器倾向于作为一控制器件而不是关注中心的更加雄心勃勃的设计。
套件提供大量指南,包括在基于Eclipse的NIOS II集成开发环境(IDE)工作的面向软件的例子。同时也提供能进行硬件IP 实践的“一小时内设计出FPGA”。
Actel公司的99美元Icicle是一款更加紧凑的设计(见图4)。硬件由两个板组成——FlashPro 3编程/调试器和FPGA板。设计紧凑到可以构建便携应用。实际上,FPGA板可以在其自身可充电锂离子电池下完成测试。系统设计为测量动态、静态和Flash×Freeze功率要求。
Libero IDE工具套件内的功率驱动布局(PDL)支持有助于将功耗降低达30%。FPGA板上有一个12.5万门、8×8mm 的AGL125 Igloo FPGA。此芯片消耗功率只有5uW,含一个兰色或绿色96×16像素有机LED(OLED)显示屏,同时还有一个基于USB的串行口。
一个40引脚边缘连接器提供大量来自FPGA的接口引脚。这使此平台从原形机角度来看非常有趣,因为附加外设可以方便地连接到系统上。一个可选的子卡控制无刷直流和步进电机。
Actel的Libero IDE黄金版与硬件同时提供。也可提供Linux和Windows版。想构建模块型的设计师可以尝试免费版的Core-Console IP开发平台(IDP)。有了CoreConsole,可以采用与Libero集成起来的图形用户接口(GUI)将IP块接合起来。SoftConsole提供了对ARM Cortex-M1、CoreMP7和Core8051软核的读取。它是一种基于Eclipse的针对软核的软件开发IDE。
Icicle的FPGA对大多数软核来说有些小,并且缺少在这一方面完成更多工作的片上或片外存储。尽管如此,像Actel的CoreABC控制器这样的更小型的核会匹配很好,对控制器应用也很理想。
大范围FPGA支持
FPGA销售商显然在推出开发套件时头脑中有其自己的芯片。实际上,这些公司常针对特定芯片家族有许多套件来应对不同的应用领域。
例如,Xilinx Virtex-5有大量组合提供。其高端支持如对Lattice半导体公司的板PCI Express应用的高速SERDES,而带硬核PowerPC处理器的其他版本可以处理复杂运算工作。单个套件或芯片无法满足所有这些需求,因此销售商必须提供剩余选项。
寻求其他替代工具的设计师可以求助于像Altium的公司。Altium Designer FPGA开发工具支持大量出自Altera、Lattice半导体和Xilinx的部件。Altium的Desktop NanoBoard-NB1针对职业设计师,是非常出色的学习工具,不过价格昂贵。NB1接受带FPGA的模块,使设计师可以在销售商和芯片之间切换。
Altium Designer反映了这一灵活性,在更低层次上隐藏了实际芯片。高级应用设计在芯片间可以移植,结果源自特定FPGA的特性产生某些有趣的开发方案。譬如,某些芯片比别的芯片编程更快。这样开发工作可以在快速编程平台进行,而终测和配置则在另外一个芯片上,其中假设应用没有采用特殊接口或目标芯片的特性。
Altium的Innovation Station采用与NB1相同的模块和开发工具(见图5)。主要差别是Innovation Stations比开放NB1更接近于终端产品。实际上,某些公司已经部署了采用Innovation Stations的产品。的确,数量大的情况下,与定制设计相比并不经济。但如果量小并且为样机,则很难超越。
遗憾的是,Altium从事软件业,其产品可以评估,但与FPGA销售商提供的类似的免费版则不大可能。实际上,Altium利用了FPGA销售商工具,将其前端构建于这些系统上。从开发者的角度来看,所得到的结果与花费的成本相比是值得的。但对新手而言,这一选项太过昂贵。
Avnet不做软件也不做硬件,但确实也是业内企业,它是提供大量服务外加如FPGA的硬件分销。公司也为许多销售商,包括FPGA领域的销售商构建其自己的评估线和开发套件。
此外,Avnet将其某些板和套件与培训会联系了起来。前不久,我参加了一个针对设计与调试工具外加Xilinx的高端部件SERDES配置的高速串行应用会议。
39美元的Xilinx Spartan-3A套件是Avnet提供的最便宜的套件之一(见图6),包括一个能够支持软核的Xilinx XC3S400A Spartan-3A FPGA。此板具有128M字节串行闪存和32M字节NOR闪存。一款Cypress半导体的可编程片上系统(PSoC)位于大量接口和FPGA之间,包括1个USB串行口和4个CapSense电容开关。还有1个I2C口和温度传感器。
也包含一个PSoC编程器,使其成为一PSoC开发平台,同时也为一Xilinx FPGA开发平台。组合包带Cypress半导体的免费开发软件和Xilinx ISE WebPack。总体来说,套件提供了基本功能。样品应用有限,但39美元能做什么呢?总之,对制作样机来说,这是一种廉价平台。
DLP Design的189美元DLP-FPGA属于低成本开发范围(见图7)。我在测试这种模块时,对其功能印象深刻。它是基于Xilinx Spartan 3E之上,包含Xilinx的免费工具链。单独模块费用约110美元。
DLP-FPGA附有其自身的适用硬件的手册。同时还有对ISE WebPack的介绍。因此,开发者可以快速上手,不过,与Avnet套件一样,不提供详细的学习或培训资料。FPGA开发新手需要花费一些力气来加快速度。另一方面,更多的经验丰富的FPGA开发者会发现此平台非常适合实验以及部署,即使数量小。
模型的提高
这些套件中的大多数也很鲁棒的免费工具分为两类。第一类是FPGA布局和设计。第二类,适合场合下,包括有用于软核处理器的软件开发工具。读者也会找到有限数量的设计以提供体验硬件和FPGA功能的学习指南。
寻求更高级工具的开发者可以借助于像美国国家仪器(NI)公司的LabVIEW和Math- Works的Matlab和Simulink。这些选择提供了高级的针对软件和FPGA的基于模型的设计接口。LabVIEW和Simulink也面向图形化。Matlab更多是一个基于文本的编程环境,虽然常为图形化输出。这些设计向FPGA IP的转换是自动的。
最难的部分是将其植入FPGA。一般来说,这些工具设计为在有限数量的评估或演示板上工作。有可能将其连接到几乎任何平台上,包括正在开发的产品,但这常要求另一精尖水平。这一工作通常已经在套件软件里完成了。
不过,这与从此开发环境转向作为产品构成部分的目标板所需要付出的努力是相同的。因此,达到目标之前,在已知特性套件上作这一练习常常是有用的。
套件能实现对方案及坚固的样机平台的快速入门,有些套件提供了部署功能。套件选择恰当可以节省时间和财力。