许多公司面临着更加复杂的产品所带来的竞争压力,而IC设计人员利用基于SoC开发平台的设计方法可以很好地消除产品快速上市所带来的这些压力,本文向(中国)集成电路设计工程师介绍SoC设计面临的挑战及其三种解决方案,其中可编程系统级芯片技术能够极大地提高产品上市时间,远远胜过传统的ASIC设计方法。 Kathy DeVito Computer I/O公司 Martin Mason Atmel公司 Robin Bhagat SoC技术部副总裁 Palmchip公司 系统集成已成为开发系统级芯片(SoC)技术的主要瓶颈。随着芯片尺寸的缩小及器件密度的提高,单个芯片上集成的功能也越来越多。然而,单靠遵循摩尔定律发展的SoC技术尚不能在芯片上实现所有器件的集成,还有无数复杂的实现细节,有宏观的也有微观的,有硬件也有软件,而这些都是实现功能完整的SoC所必须的。 实际上,“系统集成”说起来容易做起来难。下面从三个不同的角度讨论各自遇到的挑战:面向未来集成的硬件设计、无ASIC的可编程SoC和基于平台的设计。第一部分:面向未来集成的硬件设计 以前,硬件供应商将更多的注意力放在硬件设计本身,而很少在意这些硬件如何使用。一旦寄存器级接口或特定操作系统的器件驱动器创建完毕,ASIC、FPGA及其它器件供应商通常都会认为他们的工作已经结束。这就意味着器件集成的重担要落到其它开发人员和集成者身上,这些人必须在专用的、不统一的低层环境中进行管理。而且他们必须解决由此导致的一系列问题,即便这不是他们的专长或主要的应用目标。 开发人员与集成者通常都会被迫去解决许多基本问题:利用工程资源从头开发器件驱动器;集成来自不同供应商的专用应用程序接口(API); 处理写得不好的软件驱动器;根据单元硬件和API包进行系统设计;应付总体开发成本增加及产品上市时间延长等问题。 显然,连接硬件与应用软件的专用集成工作是件很痛苦的事。谁会愿意再去理一遍头绪进行系统硬件的修改与升级?通常这些系统被认为是“不可触摸的”。一旦器件被集成以后,它们就变成永久性的固定元件,将始终占用设备和系统集成者的宝贵资源。 除了这些刺手的集成问题外,还有一个更现实的问题需要解决,那就是快速增长的远程接入市场。许多传统的本地总线结构正逐步被基于TCP/IP的以太网结构和基于因特网的接入方式所替代。因此,硬件供应商需要很好地考虑一下这些新技术。 那么硬件供应商如何才能更好地解决这些问题呢?鉴于目前的设计竞争越来越激烈,硬件供应商必需通过器件集成才能突显自己。也就是说,从设计一开始就要考虑应用软件环境及使用问题,也可能需要网络接入方面的支持。 应用开发人员并不愿意为了处理数据和控制流而去费力地了解器件数据表所提供的寄存器级描述。他们为什么要为寄存器中的位操作或保留位映射的只写寄存器的虚拟挎贝而担忧?为什么从一个器件中读取的数据与从另一个读取的不同?需要不同的包含文件、不同的功能调用和不同的返回代码?而软件开发人员需要的是更高编程级别上的有效操作,总的来说他们需要最简单的方法去访问数据、控制和状态。 应用开发人员的观点 通过Wintel(微软视窗与因特尔处理器)环境,PC市场或多或少能够满足应用开发人员的高级编程接口需要。应用开发人员利用标准API能够为相同的硬件设备找到通用的编程接口。例如,DirectX就可为语音、视频、网络连接以及键盘与游戏设备提供标准的API。 电脑电话集成(CTI)市场也采用了一些标准来提供较高级的应用编程接口(S.100和TAPI)。这些标准可使不同供应商的电话线路板在单个框架内一起工作。例如,Dialogic公司的中间件产品CT-MEDA??ia,它能提供应用开发框架,并可支持来自多个硬件供应商的产品。 制造与工业自动控制(IA)市场也开发出了用于接口控制的工艺控制OLE(OPC)标准,该标准基于微软的组件对象模型(COM)结构。利用已经发布的DCOM版本,这些应用软件能够通过局域网从远端接入硬件设备。 有三种开发环境可支持特定的器件和/或应用,其它类型的硬件卡和集成电路也需要类似的宽平台支持,如FPGA、ASIC、SoC等嵌入式器件,以及一些外围器件。应用软件开发人员需要更高级的标准接口来推进开发工作,并更快地将产品推向市场。 应用开发人员在努力进行接口开发的同时,系统集成人员也遇到了类似的问题。为了提供必要的用户级功能,系统集成人员必须集中于小型构建模块(包括软件和硬件)的汇编工作。 系统集成人员的观点尽管那些谨慎的软件开发人员从模块化、可复用的角度着手系统设计(硬件开发人员同样如此),但硬件与软件之间的连接常常是定制的,通常没有可复用性,这就使得系统集成人员的工作变得愈加复杂。 让我们考虑一下基本的模数转换器(ADC)硬件电路板(或集成电路),该系统需要一定精度和取样率的ADC器件,而市场上符合要求的产品有很多。系统集成人员可能采用其中的一种进行设计,但随即该方案就变成了一个紧密耦合且不易替换的模块。如果想采用一个新的ADC器件,就需要再编写一个新的接口,几乎相当于再做一遍系统集成工作。 除了基本的硬件/软件接口外,计算平台和操作系统也会限制系统集成人员的灵活性。要想把一个专门针对VxWorks环境下PowerPC系统而开发的驱动器移植到其它平台或操作系统是很困难的,因此需要开发和维护多个软件版本。 在企业级应用中,用Java开发的应用软件可运行于多种平台和操作系统。在嵌入式系统中,集成人员也需要同样的灵活性。 在硬件/软件接口以及平台和操作系统的集成中,硬件设备与其相应的应用软件之间需要更宽松的耦合,这样才能使系统集成人员在解决用户问题时有更大的灵活性(如图1所示)。 如果能够确保应用开发人员和系统集成人员从接入和通信等相关实现细节中分离开来,硬件供应商就能使他们的产品变得更加实用,而且更富吸引力。实际上,硬件供应商需要支持某些类型的设备软件集成框架,以便于对设备的访问,并可展示出如下所示的功能类型(如图2所示)。 硬件供应商要提供高质量、全功能的软件接口。在提供硬件的同时,花些时间在软件接口上将给应用开发人员和系统集成人员带来极大的便利。应该确保所提供的驱动器能良好工作,并尽量提高硬件产品的性能。毕竟,许多情况下这些硬件产品是卖给软件和系统集成商的,而非硬件开发商。 随着硬件设备复杂性的不断提高,保持软件接口的模块化能使开发人员专注于感兴趣的功能模块。提供对设备等级的支持也很有用,多线程、多用户的访问能力将起到锦上添花的作用。 对于不同类型的设备来说,硬件应用访问所需的许多功能是类似的,即使这些功能的具体实现方法对每个设备来说有所不同也是如此。配置、管理和数据流等功能对不同的设备应呈现相同的方式,即开发统一的访问方式,这样才可以使开发人员独立于具体实现方案。 如果用过像Java这样的技术,你就会有软件编写一次即可运行于任何地方的想法。但对于设备驱动程序来说,编写一次即可运行于任何地方这样的想法有点过于理想化。虽然如此,编写一次设备驱动程序而使之运行于多种平台的观点仍是开发人员极力追求的目标,也就是说,要做到设备与操作系统分离。 争取内置网络的支持,可使应用软件运行于分布式环境中。提供对标准软件的支持能使设备即刻具备网络访问功能,而无需软件开发人员建立套接口层(socket interface)或做类似的工作。 在具备条件的地方,要尽量采用设备访问标准。现在还没有太多的标准设备API,工业设备制造商们是首批创建并采用标准(对于特定级别的工业设备来说是指OPC)的群体之一。 当技术发展得比较成熟时,设备实现与通信细节应该变得更加透明。应用软件开发人员能够利用标准的接口方法在任何时间、任何地点访问任何设备,而无需了解设备环境的低层细节或所使用的网络连接。这并不是一个不切实际的幻想,当你已全面了解目前已经实现的某些技术后,你就会发现所构想的环境并不是那么遥远。 第二部分:可编程SoC实现不带ASIC的系统级集成 系统级芯片一般都包含三大基本要素:处理器、存储器和逻辑。集成了这三类电路也就相当于在单个芯片上实现了大多数系统的所有功能。 通常,系统级集成仅局限在掩膜ASIC,因为集成处理器、存储器和逻辑电路需要专门的实现方法。不幸的是,只有少数设计者有机会接触掩膜ASIC。对于不能保证年用量在几十万片以上的设计,ASIC供应商是不会轻易接受的。 对单个设计来说,IP和掩膜改变等非经常性工程(NRE)成本动辄就是几十万美元。这意味着,只有极大批量的设计才能承受在单个芯片上创建ASIC系统实现所需的费用。另外,对于那些生存周期较短、更新换代较快的产品来说,除了产量因素外,ASIC设计和制造周期也显得太长。 最后还要说明的是,ASIC产品很不灵活。设计中的任何一点错误或修改都将导致额外的掩膜费用,以及再加工所需的较长制造周期。 充分满足市场需求 虽然大多数设计人员希望采用SoC实现他们的设计以节省功耗、空间和成本,但他们中的绝大多数还未接触过系统级集成。他们仍需依赖于离散标准产品的某种组合,如微处理器、存储器、数字信号处理器和可编程逻辑。实际上,市场上仍存在半导体供应商尚未涉及的真空地带。 FPGA供应商正尝试提供数量超过百万系统门的更大型FPGA来满足中等批量、周转快的SoC需求。处理器的IP软内核及其它小型IP功能模块可让设计者在FPGA上实现处理器、存储器和逻辑功能,而无需从头建立所有的功能模块。然而,由于相对较大的裸片尺寸,这些高密度FPGA仍有不少局限性,如较大的占用面积、较大的功耗和较高的成本。另外,FPGA逻辑电路的粗放型结构也不是实现处理器内核的最有效途径。 一个微控制器作为离散器件来购买只需6美元,而在高密度FPGA中作为IP软模块来实现可能要花60美元。这些器件对于目前竞争激烈的市场来说太过昂贵。因此,高密度FPGA主要用于ASIC原型设计(然后再转换成ASIC实现),或成本与功耗是次要因素的应用场合(如蜂窝站点和高端网络基础设施)。 在功耗、面积和成本是主导因素的应用中,事实已经证明FPGA供应商通过大型FPGA器件向所有设计师推荐SoC技术的努力是不成功的。 半导体行业怎样才能向设计人员推广系统级集成方案呢?解决方案是创建混合产品,即可编程系统级芯片,它可以在一块现成的可编程芯片上提供系统级集成。许多IC供应商已经在可编程系统级集成的实现方面迈出了可喜的步伐。这些新器件所提供的系统级功能包括处理器、存储器和可编程逻辑,而没有与ASIC相关的NRE费用或长制造周期问题。 可编程系统级芯片还提供了掩膜ASIC的高集成度(低功率、小尺寸、低成本)及FPGA的低风险、灵活性和快速上市特性。目前已有几家IC供应商能够提供这种类型的可编程SoC。Atmel公司于1999年开发出首个基于RISC的现场可编程系统级集成电路(FPSLIC),FPSLIC器件现已量产。Xilinx和Altera公司也于2000年宣布开发出各自的可编程系统级产品,预计在2001年投产。 这三家供应商都在单片可编程IC上集成了一个微控制器,并带有不同密度的可编程逻辑、存储器和外围器件。因此设计人员可以充分利用系统级集成的优势,而不用担心与掩膜ASIC有关的复杂性和风险问题。事实上,在设计人员的桌面上就可直接完成SoC设计。 不同产品的区别 不同产品之间有许多重要的区别。Xilinx和Altera公司的器件主要面向需要大量数字信号处理的高端宽带和电信应用。Altera已经在其可编程SoC中集成ARM和MIPS的200MHz 32位处理器,而Xilinx则计划利用IBM的PowerPC内核提供300MHz的性能。 这些器件可望包含10万门以上的大型可编程逻辑阵列,根据前面的描述可以明显看出这些产品将主要用于需要大量处理的设计,因此价格和功耗等因素相对来说不太重要。 Atmel的可编程SoC的目标市场是商业和工业应用,如便携式、无线和因特网设备,功耗低、性能和成本适中是这些设备的根本要求。它们包括个人数字助理(PDA)及其附件、数码相机、MP3播放机和GPS模块,以及通过因特网将家用电器(保安系统、温度控制和大型家电)连接至最终用户和/或制造商服务中心的无线家庭网络。 Atmel的FPSLIC可编程SoC具备高性能和低功耗的8位AVR微控制器,还带有36KB的SRAM、多达4万个FPGA逻辑门、2个UART、1个双线串行接口、3个定时器/计数器以及1个实时时钟。由于AVR内核可在SRAM中执行,因此它在25MHz时可提供20MIPS的性能。这样的吞吐量对图像预处理和视频压缩/解压已经足够。FPSLIC的高吞吐量可使它工作于突发模式,在这种模式下,AVR在大部分时间里都处于低功耗待机状态,并能在相当短的突发时间内进行高性能处理。 微控制器在突发运行模式下的平均功耗要比长时间低频率运行时的功耗低得多,而且当需要时也能使系统保持较高的吞吐量。FPSLIC的待机电流小于100μA,典型工作电流为2至3mA/MHz,与ASIC方案相差不多,但比离散方案或大型FPGA要小得多,后者的待机电流为几十毫安,而工作电流则高达数百毫安。 FPSLIC的板上FPGA采用Atmel的可重配置AT40K FPGA技术,每个FPGA单元都能在系统运行期间独立地重配置,而且不会影响其它单元。因此,单个PDA附件就能实现多个不同的应用,甚至不必与PDA连接。 通过按钮激活FPSLIC上FPGA的重配置功能可以使单个PDA组件实现多种功能,可作为MP3播放机、数码相机或GPS模块。 尽管设计师们仍然与ASIC供应商保持着联系,但可编程SoC的出现给所有设计师带来了全新的系统级集成技术。这一新技术将给未来各种各样的产品提供高度集成的高性能开发手段。要决定最合适的可编程SoC方案,需要全面考虑每个设计的成本、功耗和性能限制因素,同时采用设计人员最熟悉的设计方法也是很重要的一个考虑因素。 第三部分:通过系统级芯片开发平台增强设计流程 系统级芯片设计流程一直面临着超长延时的难题,因为SoC设计人员需要对系统设计中的知识产权(IP)内核进行识别、获取、集成和验证。相反,SoC开发平台所提供的强大功能可极大地加快设计速度,并简化系统级验证工作。通过提供特定应用所需的一整套集成且验证过的IP内核,SoC开发平台极易集成进现有设计流程,并可提供特殊的功能来加速SoC硬件和软件的开发。 在当今竞争愈加激烈的电子市场上,成败与否往往取决于产品能否及时交付,SoC设计人员发现他们正处于不断缩短的项目周期与不断提高的设计要求的两难境地。在这样的环境下,IP复用概念就显得很有吸引力,但许多时候IP复用仍只是一种妄想。 这是一个真正的买方市场。通过购买像IP内核这样的完整功能模块,SoC开发人员可以更快地设计出满足所需要求的产品,比从头开始创建每个功能模块要快得多。更为重要的是,开发人员希望能将有限的时间与宝贵的资源集中于开发能使其产品有别于市场上其它同类产品的独特功能。然而,事实上设计人员不得不考虑现实世界中影响IP复用的一些限制性因素。 对SoC设计人员来说,在系统设计中采用特殊的方式进行IP集成和验证是一个沉重的负担。当前典型的IP内核(不是处理器内核)只能提供少量的资料文档将模块集成进系统设计及进行系统级功能验证,因此设计人员必须花相当多的时间来深入研究内核电路并进行足够深的功能分析才能建立接口逻辑并创建测试程序。 对基于总线的典型内核来说,这种做法将导致欠佳的设计,因为这些内核不能提供创建系统级接口所需的判断逻辑和缓冲器。事实上,SoC设计人员引入的一些必要的捆绑逻辑(wrap logic)和三态缓冲器会增加相当大的电路开销,并将导致设计性能下降和面积增大,以及由于需解决与三态逻辑有关的多逻辑状态而把由此延长的验证过程搞得更加复杂。 与此相反,SoC开发平台通过提供针对特殊应用的预集成和预验证内核,大大减轻了与IP集成和系统级验证有关的工作负担。而且,这种平台将内核嵌入一种带有简单互连机制的结构中,这样就可非常容易地增强基础平台的性能,从而满足设计人员的特殊应用要求。另外,开发平台进一步推动了硬件/软件协同开发的策略,有助于正确且快速地完成硬件和软件设计任务。 采用基于平台的SoC设计方法,设计人员可以在任何复杂的IC设计中采用现有的EDA工具,如他们常用的集成和分析工具。事实上,设计平台能提供许多关键要素,包括主要集成和验证阶段所需的高层模型和验证测试套件。另外,平台开发环境所提供的脚本与生成文件也有助于将硬件和软件开发环境合并为单一的协作流程。 SoC开发平台进一步完善了现有设计流程,并增强了以团队为主的SoC设计方法。基于平台的方法不仅可加速初始阶段的设计,而且可通过简化系统级验证要求而加快后续设计。 开发平台可以加速新设计的起动,为进一步开发打下坚实的基础。设计人员无需再将宝贵的时间花费在标准接口内核的识别、认证和获取上,依靠SoC开发平台就可马上进入更深层次的实现阶段。就像评估板常作为板级设计的核心一样,SoC开发平台也提供了易于用户修改和增强功能的完整参考设计。 目前有两种类型的平台可供设计人员选择:一种是通用平台,另一种是专用平台。通用平台可以满足单芯片嵌入式系统的设计需要,这些系统通常由作为特殊内核的处理器、存储器和外围功能模块组成,所有内核都是经过预集成和预验证的,例如Palmchip公司的通用SoC开发平台就提供了比较完整的系统设计,其中包括ARM、MIPS、ARC或其它类型的处理器内核,以及一些关键外设功能,包括系统定时器、看门狗定时器、中断控制器、可编程I/O、存储控制器、DMA控制器、GPIO、字母数字LCD控制器和UART(图3)。 同样地,专用平台也为某些特定应用提供完善的设计,必要时也可配置和修改以满足最终目标要求,例如微驱动控制器。这些专用开发平台能够进一步增强通用平台的功能,利用其配置的特殊内核和功能可以满足许多特殊要求,比如特殊的系统带宽、总线带宽、DMA通道和存储器结构要求。 互连机制 不管开始时采用哪种类型的平台,SoC设计人员都需要利用其它内核来补充基于平台的设计,它代表了设计人员与众不同的专业技能,并最终为公司设计出有自己特色的SoC产品。 在这一阶段,平台的互连结构决定了设计人员所面临的集成任务的复杂性。Palmchip平台采用CoreFrame集成结构,因此有助于简化新增内核的集成。这种集成结构没有采用会导致额外开销的总线方式,而是提供了更加适合SoC设计和现有半导体工艺的互连机制。 为了满足印刷电路板的封装和制造限制条件,总线需要减少每个PCB元件之间的信号走线数。而利用三态电路和判断逻辑,多个逻辑信号可以共享更少的物理布线,因此就可相应减少PCB元件和连接器所需的封装尺寸和连接器数量。 然而,当今先进的半导体工艺可提供多金属层互连,几乎不影响最终的制造成本和裸片尺寸。将许多元件集成在单个芯片上后,前面把信号复合到总线上去所带来的好处就没有了。事实上,目前的EDA集成和时序分析工具在处理三态逻辑和复合信号时还存在很多问题,因此进一步降低了SoC设计中基于总线的结构的吸引力。 另一方面,集成结构采用了点到点和基于信道的机制。与总线为主导的方法相比,它能充分利用工艺技术的先进特性,简化内核集成,减少电路开销,并且方便验证工作。 例如,点到点机制能够提供简单的专用通路,这是访问用于控制和维护外设的寄存器所必需的。Palmchannel在该结构中提供了这种互连机制,控制器能透明地处理特殊接口问题,如字长的差异。采用这种方式,设计人员可通过建立这些单独的专用连接将处理器内核与外设链接起来,而不用再去建立总线接口和判断逻辑。 基于信道的集成提供了连接处理器和存储器内核所需的高速数据传送机制。在Palmchip平台上,专用信道硬件利用基于信道的Mchannel连接,能够处理不同内核间的协议、时钟域、冲突和带宽转换。对于SoC设计人员来说,点到点和基于信道的机制相结合则提供了内核集成的“插件”方法。 有效的互连机制使设计人员认识到IP复用的潜力。实际上,一个结合了功能强大的互连结构、预集成与预验证内核、模型和脚本的开发平台可为设计人员提供更有效地创建复杂SoC所需的综合环境。 作者简介: Kathy DeVito是Computer I/O公司产品市场负责人,已有15年的嵌入式技术行业经验。 Martin Mason于1993年加盟Atmel公司,主要负责Atmel可编程SLi部门的新产品开发工作。 Robin Bhagat是Palmchip公司SoC技术部副总裁,也是VSIA验证开发工作组的负责人之一。 | ||
文章评论(0条评论)
登录后参与讨论