美梦成真:以智能型混合信号FPGA开发真正符合需求的系统

本文作者:admin       点击: 2010-10-14 00:00
前言:
系统单芯片(SoC)依照它们在系统中运作的方式,对嵌入式系统设计师来说具有许多不同的意义。举例来说,在大量的娱乐或通信消费性产品市场中,SoC意味着一颗具数百万逻辑闸的集成电路(IC),其中包含许多大区块自定义逻辑,并有混合信号功能可和芯片的数字处理性能介接以与外部世界连接。在现实世界中,能支持这样大规模SoC开发计划的数量非常有限。许多要进行“中型”嵌入式系统的设计人员都会很高兴要完成一项SoC方案的开发,但实际上,因为各种不同的原因,这是很不容易做到的。

能够进行一项能将所有重要功能整合在单一组件的设计是很吸引人的,原因很简单,因为这就能将材料成本、零件库存、以及电路板面积降至最低。此外,相较于多芯片方案,此作法的功率比较低,同时亦能助于增加对智能财权(IP)的保护。如果一项设计功能的精髓能够被深植于一单芯片中,将会大幅增加第三方取得这项设计的困难度。

系统单芯片梦想

对大部分的设计团队来说,这样的SoC目标仍然是一个梦想。能够被大量生产以支持一完全自定义化混合信号芯片开发的产品仍然是少数。绝大部分的产品都是采用特定应用标准产品(application-specific standard product, ASSP)或微控制器作为其解决方案的核心。在这样的情况下,想要找到一个能够完全符合计划需求的组件通常是一个挑战。就定义来看,ASSP能够为特定应用领域的设计问题提供一种解决方案,但是这样的典型方案不可能完全符合真实世界中的计划需求。结果通常是采用规格超过需求的组件,或是开发另外的芯片以弥补标准产品与实际需求之间的落差。此外,ASSP的弹性不高,一旦选用了某颗IC,它的功能组合会限制此产品之后的设计进展。

大部分的常用解决方案都不免地会以微控制器(MCU)为基础。虽然其软件可程序性能提供不错的弹性,但是很少MCU能提供与典型嵌入式设计需求完全相符的功能。大部分这类的设计都会在MCU旁加入不同形式的可程序逻辑─FPGA或CPLD─以增加硬件中的逻辑功能。尽管现今市场上有各种具备不同外围功能的MCU可供选用,但是绝大多数的嵌入式系统电路板上都还是需要各种的模拟组件以作为信号调节和I/O连接之用。

混合信号FPGA

爱特为这类设计提供Fusion混合信号FPGA已经有一段时间了。它们在单一组件上结合了高密度可程序逻辑和可配置模拟电路功能,再加上大型的闪存区块、完整的频率产生、管理电路、以及在FPGA逻辑中嵌入微控制器软核心的设计选项。

此一设计概念在新款SmartFusionTM智能型混合信号FPGA中得到了显著的进展与延伸,它能提供嵌入式设计团队开发真正单芯片SoC方案所需的一切要素。SmartFusion结合了高密度、以闪存为基础的FPGA、一个具完整外围组合的ARM CortexTM-M3微控制器核心、以及高效能可程序模拟功能,全部都整合在一颗单芯片上。

ARM Cortex-M3处理器已不需要太多介绍,在从8位到32位的各种架构中,它已证明是一功能强大且具成本效益的ARM平台架构。在SmartFusion芯片中,Cortex-M3处理器是一100 MHz (125 DMIPS)组件,拥有最高容量为512 KB的闪存和128 KB的SRAM。在此新系列组件中,此处理器是一个硬核心。这代表它是以最具面积效益的方式来建置的,可带来多项好处。它的效能足以执行复杂算法,像是精密马达控制、或甚至是数个马达的多轴控制。此外,在诸如系统管理的应用中,它能执行所有的电压监测、排序、风扇控制、以及相关的系统基本运作,同时还具备充裕的能力来执行具备更高用户应用层级的任务。

外围与接口

与在SmartFusion组件中以具面积效益建置处理器硬核心的方式相同,此组件亦提供了常用外围的完整组合。SmartFusion组件包括一个10/100 Ethernet MAC(媒体访问控制器)和其他接口,诸如SPI、I2C、以及UART。大量的数字(FPGA) I/O最快可执行350 MHz,并支持LVDS、PCI和LVPECL等I/O等级的接口标准。习惯采用微控制器进行设计的工程师会肯定此组件所包含的其他特性与功能,像是实时频率、DMA控制器、外部内存控制器、定时器、和看门狗(watchdog)功能。

在硅片上,除了ARM Cortex-M3核心,还有丰富的Actel 以快闪为基础的 ProASIC3 FPGA逻辑。如同处理器核心采全规格建置,此可程序逻辑可提供350 MHz的系统效能;同时,SmartFusion系列组件最高可提供50万闸的可程序逻辑和108 KB的内建SRAM。爱特以快闪为基础的FPGA架构可完全免于由高能量辐射引发的韧体错误(radiation-induced firm errors),此现象有时会影响以SRAM为基础的组件,同时也是许多嵌入式系统设计师的主要考虑。由于FPGA的配置是设定在快闪单元(flash cell)中(同时,ARM核心可从芯片上闪存执行),整个芯片是可通电即用的,无需等待配置文件从ROM或EPROM加载的时间。此外,如果此安全选项未被取消的话,闪存也能允许用来进行现场(in-field)升级。进一步存取配置内存的功能可在程序设计结束前永远将其停用。

在微控制器子系统内,有一个五层的ARM AHB总线矩阵架构,理论上可总共提供芯片上每秒16 GB的带宽。其中共有五个功能可供设定为总线主控(master):两个来自Cortex-M3核心,加上10/100 Ethernet MAC、DMA控制器和FPGA架构主控,而其他的各种接口与内存区块则作为从属(slave)。

可程序模拟

SmartFusion组件的第三个重要元素是高电压双极模拟功能。为了正确撷取来自应用程序的信号,SmartFusion组件最高可具备三个12位连续近似缓存器(successive-approximation register, SAR)模拟至数字转换器(analog-to-digital converter, ADC),其最高执行速度为600 ksps。每个ADC都有相对的一阶、1位sigma-delta DAC,具500 ksps更新与12位有效分辨率。多个仿真功能都集中在信号调节区块(signal conditioning block, SCB)中,其中包含准确高电压和电流监控器、温度监控器、和高速比较器。此高压监控器,亦称为主动双极预分压器(ABPS),可提供从-11.5V~+14V的电压监控能力。

此外,对系统管理或电源调节领域的设计人员来说,这亦可作为绝佳的工具。此电流监控器可放大从外部感测电阻量测到的电压降,而此感测电阻是放置在应用的电流路径上,并具50倍的差分增益。温度监控器能转换横跨一简单PN连接(例如,二极管)的电压降为温度读数。组件上具备数量很多的芯片上比较器 (在一50万闸组件中最多有10个),而且速度非常快,传递时间仅为50奈秒。

自主(Autonomous)仿真信号处理

截至目前提到的仿真功能只是SmartFusion智能型混合信号FPGA中模拟处理性能的一部分。模拟运算引擎(analog compute engine, ACE) 是一个全新的概念,这是一个半自主的功能区块,能够执行完整的模拟前与后处理,包括信号撷取的取样和排序,而无需ARM Cortex-M3处理器的介入。

起初看来,在ACE区块中加入这样的功能好像是多余的,因为ARM Cortex-M3核心就在旁边。然而,此ACE可减少处理器核心的日常任务,因此像是信号撷取、处理、储存、和输出等工作都能完全无需透过Cortex-M3处理器就能完成。设计人员能以这种方式配置组件,以使Cortex-M3处理器不受拘束地执行实时处理任务。

在一系统/电源管理的设计演练中,监测每一电压轨是否偏离正常值的整个功能,以及警告的产生等,都是适合交给ACE执行的功能,但它的功能可应付更复杂的任务,包括过滤和线性转换。它所处理的可程序模拟区块(下图所示)包括ADC、DAC、和SCB。请注意,此模拟区块拥有与微控制器子系统和FPGA架构的丰富连接组合。这些元素中的每一项,不管是单独或作为一组功能方块,其互连和操作参数都是可完全程序设计的。

设计弹性的新境界

虽然SmartFusion组件拥有在单芯片上前所未有的功能组合,但这对某些设计团队来说却意味着与过去设计习惯的背离。它有一个功能强大的处理器核心,因此具软件开发能力的嵌入式设计人员将能轻松上手ARM架构,并能立即运用过去的经验为ARM 32位ISA撰写程序代码。相反地,他们可能较不习惯于FPGA这种透过在RTL中编码将功能直接建置在硬件中的设计方式。他们也可能认为在模拟领域中进行设计,是完全不符合其设计专长的。

同样地,具备RTL设计背景的硬件设计人员可能不习惯于以处理器为基础的C语言程序设计,而且想要将仿真功能设计交给具备此经验的同事来处理。

SmartFusion组件和其相关的设计工具都已准备就绪,因此不管是具备何种背景的工程师都能充满信心地执行一个完整的设计。拥有ARM经验的工程师能将此任务视为一以处理器为主的演练,而设计工具可提升在可程序逻辑数组中建置新增逻辑和自定义功能的信心。反之亦然,一个以FPGA为主的设计能将作业程序交给处理器核心,或是利用它作为背景排程和监督任务(如下图所示)。

当利用SmartFusion组件进行设计时,一种以用户图形接口为基础、拖放式的操作方法可提供对完整预先定义IP功能库的立即存取。对C语言和RTL程序代码开发人员来说,此工具套件可延伸他们的专业领域,因此芯片的资源能充分被使用,或是,此设计工具可提供一协作环境,让传统的设计团队能针对SmartFusion的不同领域共同合作。

若愿意花时间探讨此新架构所带来的设计自由度,设计人员和设计团队将能因此而受益。若以一般的系统管理功能为例,其中会包括排序、缓升(ramp)和监控多重电源轨、产生电压修正(trim)信号(模拟和/或数字)、监控温度探针、将警告和状态信号传送到较高阶的监督器(supervisor)、驱动风扇输出和指示器、以及可能需要执行多项次要但关键的任务等。这样一个子系统的确切规格可能一直要到主系统的开发完成后才能定案,因此,这时候一个完全可程序的解决方案是非常吸引人的。

事实上,SmartFusion组件可提供不止一种方式来执行上述的各种功能。电压临界值(threshold)可直接透过模拟比较器或ADC来监测,这可藉由ACE区块或是在Cortex-M3处理器上执行的程序代码来实现。风扇控制能透过一组由ACE排序的简单步进值;或是可利用在Cortex-M3核心上执行的完整PID控制算法来实现。若欲驱动风扇,系统需要产生一PWM输出波形。PWM产生器可从ARM核心定时器来配置,或是可以透过预定义IP在FPGA架构中实现,而此预定义IP可轻松以几个点击将其输入到FPGA设计流程中。

拥有微控制器背景的工程师以前可能得利用两个或更多的8位MCU来控制这样复杂的电源管理情况。移转到32位ARM核心,首要的工作是发挥它的功能、撰写C语言、并在处理器控制下配置整个系统。但是另一种同样有效的做法是利用SmartFusion 组件中的FPGA架构设计工具流程,以快速在可程序逻辑闸中(并使用相对少量的逻辑闸)产生一个或一系列的复杂状态机,并执行相同的功能组合。

设计安全性

在其现有的以快闪为基础 FPGA系列组件中,爱特已对可程序逻辑提供了增强的设计安全性。从ARM愿意将其处理器核心的软件版本授权给爱特建置于其FPGA中,就可以证明对于此设计安全性的信心。一旦程序设计到数组之中,黑客将难以从硅片中读取此核心的IP。现在,微控制器核心与FPGA架构在相同的硅片上,此保护亦延伸到系统软件以及FPGA配置码。ARM Cortex-M3是一个硬核心,因此现已不在需要这样的保护形式。

在单芯片环境中可提供固有的IP安全性,由于内建闪存,SmartFusion不再需要从外部内存读取配置档案。在执行时,像是FPGA到ARM核心总线的内部接口是看不到的,同时在它们上面的流量亦是无法监控的。

此外,还有多种额外选项可供设计人员用来保护IP。最简单的方法是程序设计存有FPGA配置的闪存,以及将Cortex-M3程序代码放在“干净”的区域中,并设定一个条件─生效时切断保险丝─以免于此闪存区域被读取或重新程序设计。此功能亦称为FlashLock。从Actel Libero整合式设计环境(IDE)输出的数据,包含配置和run-time程序代码,也能用128位AES标准进行加密,以期能安全地传送到安全的制造环境之外。如果以匹配(matching)程序档案做好设定,一内建的128位AES解密引擎可在最后的产品制造期间进行安全的系统内(in-system)程序设计。

由于具备能确实设计出所需系统的能力,再加上无以伦比的IP安全和容易设计,SmartFusion组件可为FPGA、嵌入式和模拟设计人员提供最佳的创新、智能型整合。