利用混合信号FPGA和先进的软件工具实现简易系统设计

2010-09-07 02:51爱特公司设计解决方案高级经理WendyLockhart
电子技术应用 2010年9期
关键词:外设硬核嵌入式

爱特公司设计解决方案高级经理 Wendy Lockhart

基本设计流程概念

标准现货微处理器基本上只是一块功能性硅片,需要设计人员进行指令编码,例如在初始设置中配置外设、运行主要功能、与外界连接等。微处理器要在设计人员给予“身份”之后才能开始工作,它既可被编程和现场重编程,也能够进行多次重新定义。

另一方面,FPGA也是一块功能性硅片,它可能包含一些特殊的功能性模块(如存储器),但同样必须在定义“身份”后才能工作。尽管FPGA在I/O的选择使用上灵活性稍大,而且可并行操作,但它和微处理器一样,都需要设计人员赋予它们“生命”。

虽然嵌入式设计人员很少同时从事FPGA设计,FPGA设计人员一般也不会踏进嵌入式领域,但他们的设计流程其实极为相似。如图1所示,两者在设计器件时都是从零开始,采用某种语言编写、编译或构建代码,然后对器件进行编程和调试。他们都能够设计出出色又独特的实现方案,可能简单如控制一盏灯,也可能复杂似一件艺术品。这些形容简化了编写的内容,同时也意味着设计流程偏向于并行化,而且更具兼容性。

图1 FPGA和嵌入式处理器设计流程的相似之处

集成嵌入式处理器的FPGA

过去十多年间出现了两类集成处理器的FPGA:带有处理器软核的FPGA和带有处理器硬核的FPGA。它们各有其优缺点,但其中有些FPGA得以幸存,有的却惨遭淘汰。问题在于嵌入式与FPGA设计人员的设计流程和相反特性究竟在多大程度上阻碍了这些器件的快速采纳。

带处理器软核的FPGA

带处理器软核的FPGA主要是由FPGA供应商提供的产品或解决方案。它为FPGA设计人员提供了尝试嵌入式设计的机会,不过由于FPGA设计人员在AVR、8051、PIC或ARM等标准处理器上往往拥有自己的个人偏好、经验和代码库,因而往往无法超过真正的嵌入式设计人员。多年来,爱特公司一直致力于为航天产品提供处理器软核(如8051和Leon),最近更推出了集成了ARM7、8051和ARM®CortexTMM1处理器的快闪FPGA。

处理器软核的优势一般包括:(1)可以根据需要增加外设;(2)在某些无需使用所有功能的情况下,可以简化指令集以减小占用空间;(3)在需要时可以把设计移植到更大的FPGA中。

但是这种方案中仅仅是处理器本身就要使用相当大的硅面积,因而成本高于独立式处理器。外设数量的增加可能导致时序问题,而这超出了嵌入式设计人员的经验范围。此外,SRAM FPGA没有闪存来存储代码和数据,所以必须配置额外的闪存器件,而这也会影响到I/O要求、电路板版图和设计复杂性。

从设计角度来看,进行嵌入式设计的FPGA设计人员首先必须解决FPGA中处理器的硬件版图问题,然后再进行FPGA内部嵌入式应用的调试。如果只有一个设计人员进行产品开发工作,则开发流程基本上是串行化的。如果在设计中存在缺陷或问题,便需要深入剖析许多层面才能找出原因所在(是代码问题、RTL问题,还是硬件时序问题)。所有这些都影响着产品的上市时间和可靠性,最终关系到该项技术的全面采纳。

带嵌入式处理器硬核的FPGA

带处理器硬核的FPGA有多种形式,均为行业标准产品,这一点十分有利于加速产品的推广应用。例如,Triscend公司拥有8051/ARM FPGA,爱特梅尔(Atmel)则推出了基于AVR的FPSLICTM器件。由于Triscend在FPGA和现有FPGA设计流程方面缺乏深厚背景,所以根据器件需要开发出了一个对自己有利的工具流程。这个工具流程能够更加直观地整合各种组件,但缺少一般FPGA用户期望的FPGA详细设计功能。爱特梅尔拥有FPGA技术背景,其设计流基于FPGA/嵌入式并行流程,并可通过配置对话来定义两者间的接口。

这些FPGA都具有一个优点,即采用业界标准处理器。其他优点还包括:由于采用业界标准处理器,能够使用业界领先的编译器(如KeilTM和IAR Systems®),从而再次进入主流嵌入式领域。处理器硬核的设计流程已被证明对双方都很有利,不过FPGA和微处理器之间接口的调试可能是一大挑战。

一直以来,较高的硅成本都是带有处理器硬核的FPGA的缺点。硬核处理器的成本曾非常接近独立式处理器的成本,而当时FPGA仍然十分昂贵,因此说服那些使用1美元或2美元器件的嵌入式设计人员在成本只有15美元的设备中使用FPGA,还要增加一个额外的外设,对销售人员或工程师来说都不是一个好主意。对于FPGA设计人员而言,这些器件中的FPGA实在太小,无法激起很大兴趣。FPSLIC曾是一个不错的点子,工程师都希望找到这方面的项目,不过一旦进入定价和物流阶段,许多机会都无法满足应用的实际需求。

嵌入式处理器的下一步

由于CMOS工艺的局限性,也因为早期带硬核处理器的FPGA属SRAM FPGA,因而并没有集成大量的模拟功能。而利用基于快闪技术的FPGA则有可能增加广泛的模拟电路。此外,只要再增加一个用于代码存储的集成式快闪模块,这类器件看起来就像一个集成了模拟和FPGA的单芯片嵌入式处理器。如果从器件设计流程角度考虑,这就相当于增加了一个新的设计组件。此时,不仅要进行FPGA和嵌入式设计,还需处理模拟设计。于是,这种器件的设计流程需要进行三类设计:FPGA设计、嵌入式设计和模拟设计。这些任务可以由3个、2个甚至1个设计人员来完成,使所有设计人员都必须能够并行进行自己的设计部分,以避免设计周期延长与FPGA中软核处理器的协作问题。

此外,由于FPGA和嵌入式设计人员都是成熟的用户团队,设计流程必须对双方都具有吸引力,并且没有陡峭的学习曲线,而FPGA和嵌入式设计人员都必须能够确信自己的专业技术,因此每一方都必须依赖所做的设计选择,能够根据需要访问模拟数据,图2所示为Actel SmartFusionTM混合信号FPGA,是目前唯一一款集成了FPGA、ARM Cortex-M3处理器硬核和可编程模拟的FPGA。该器件的架构具有清晰的功能性边界和明确定义的接口,有助于简化这类器件的设计边界。

下面从三类设计工作划分的角度来进行分析:

(1)嵌入式设计人员可以像使用常规微控制器一样,使用带有一套固定硬外设(蓝色部分)的标准ARM Cortex-M3处理器硬核。这称为微控制器子系统(MSS)。这里并无时序不确定性。与模拟或FPGA的任何连接都通过先进外设总线(APB)或先进高性能总线(AHB)接口完成。尽管FPGA的内容可能有很大改变,但由于存储器映射具有简单、自动扩展的特性,它的各个组件可被视为处理器的外设扩展部分。

(2)FPGA设计人员可以选择使用FPGA中完全独立于处理器的部分。由于FPGA带有功能齐全的阵列、SRAM和FIFO模块,以及包括LVDS的I/O,所以设计人员不受折衷FPGA架构的限制。但是现在FPGA设计人员也能够通过增加先进微控制器总线架构(AMBA®)外设来支持嵌入式设计,或利用AMBA接口开发新的功能,以创建设计专用的新的定制外设。

(3)由于模拟设计没有标准的现成设计流程,因此“模拟设计”这个术语对不同人的含义可能也不一样。许多模拟组件是专用标准器件(ASSP),需要定制与处理器的接口。在SmartFusion中,模拟组件与处理器和FPGA集成在一起;在模拟设计中,预定义接口可以实现更高级别的提取。由于它们易于使用并具有直观的图形格式,最终可获得适合于所有设计人员的全新一代的模拟配置对话。

下一代嵌入式处理器设计

假设目前的设计至少有两名设计人员一起工作,设计中需要两个并行设计流程,并采用一种便于两名设计人员相互交流沟通的方法。图3为基本的模块结构。

对于嵌入式设计人员,第一步是查看MSS配置器并选择外设,然后安排配置设置以及改变I/O属性。最重要的是,可以根据用户的选择自动生成存储器映射和所选配置需要的全部固件。从这一点出发,嵌入式设计人员便可选择工作在GNU、Keil或IAR等工具的标准处理器设计流程内。实际上,无论使用上述任何哪一种业界标准软件IDE中,都可以提供MSS配置器。

配置外设的驱动器库、系统初始化和启动代码都是自动产生的,这就为设计人员节省了大量的时间,不必花费太多精力用于这部分设计,从而将更多时间用于应用开发。

MSS配置器GUI看起来就像器件架构模块示意图。由于这类工具对嵌入式和FPGA两方设计人员来说都比较新颖,它的图形直观性界面有助于所有设计人员顺利地学习,同时满足每个人的要求。

FPGA设计人员可以自行配置微控制器子系统,也可以引入一个由嵌入式设计人员创建的微控制器子系统。这时,只需采用一种简单的文件格式在设计人员之间传递MSS配置,不必传递整个设计项目。实际上,FPGA设计人员需要了解MSS配置的唯一理由是外设与FPGA架构的连接。FPGA设计人员因此能够增加像SmartDesign IP模块这样的额外设计组件,或者是获得用于与处理器的设计相独立的RTL,并继续进行包含了全面广泛的时序和功率分析的传统FPGA设计流程。

对于模拟设计,不论用户是真正的模拟设计人员,还是尝试模拟设计的其他类型设计人员,直观的图形化配置方案似乎效果最好。这些已获验证的设计技术支持现有混合信号Fusion FPGA,并包含电压、温度和电流监控功能,以及采样排序和后处理标记生成的控制等功能。

温度监控器配置对话允许用户设置采集时间,运用过滤技术及输入标记要求以生成输出,可用于处理器的中断或FPGA架构的输出。

分布式设计环境的版本控制

若有两个或更多设计人员从事一项设计,那么建立清晰的设计修改协议就显得十分重要,而且其中一个设计人员应该成为MSS配置的主要管理者。在密切合作的工作关系中,任何一个设计人员都可能修改或更新另一个人的工作,这时跟踪修改是非常重要的。

如果嵌入式设计人员创建MSS配置,则该配置被输出并传送给FPGA设计人员。FGPA设计人员可以输入且采用这个新版本,就如同一个输入到设计图中的标准IP模块一样。如果有带MSS的现成设计,则设计人员可以简单使用内核替代功能,然后使用SmartDesign Canvas检测是否有连接改变。

如果嵌入式设计人员是主要管理者,虽然FPGA设计人员在测试时可以对配置做较少的改变(例如,为了评测任何时序问题,FPGA设计人员可能需要改变MSS馈入FPGA架构的时钟频率),但嵌入式设计人员必须对这些变化进行编译以保持双方同步。

由FPGA设计人员启动设计流程并定义MSS所需的外设之后,下一步就是输出配置并传送给嵌入式设计人员,再由后者输入这个配置,并生成用于MSS以及FPGA设计人员增加的任何软外设的固件。若在设计流程初期创建有大量软外设,就极可能是这种情况。

至于决定由哪一方作为配置的主要管理者,则因具体设计而异。处理模拟设计的人最有可能成为主要管理者。模拟计算引擎ACE(Analog Compute Engine)配置也包括在MSS模块中。由于大多数设计人员都不太熟悉模拟设计,最初也许会经历多次设计反复,因此让模拟设计人员成为MSS配置的主要管理者是很有说服力的。

嵌入式混合信号FPGA设计流程总结

嵌入式混合信号FPGA设计流程软件开发团队的目标是建立一个具有以下特性的设计环境:

(1)使现有FPGA及嵌入式设计人员的学习曲线最小化;

(2)能够帮助嵌入式设计人员单独评测器件的处理器方面的性能;

(3)能够帮助FPGA设计人员单独评测器件的FPGA方面的性能;

(4)能够让嵌入式和FPGA设计人员并行进行同一个器件的工作,而不存在进度安排的风险;

(5)引入简单的模拟接口,向所有用户开放模拟设计。

在经济困难时期,产品需要快速上市,而工作稳定性十分有限,市场竞争日益激烈。因此,任何一家硅器件供应商或软件开发商的任务都应该是建立一个有助于提高生产力,而不是挑战设计人员能力的设计环境,同时为设计人员的产品提供显著的市场竞争优势。

猜你喜欢
外设硬核嵌入式
硬核爷爷炼成记
“硬核”举措下的暖心举动
用“三个最严”彰显“硬核”担当
陕西制造需要“硬核”
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
外设天地行情