作者:苗长云,曹晓东,李鸿强,石博雅
片上系统SoC(system on chip)是ASIC(application specific integrated circuits)设计方法学中的新技术,是指以嵌入式系统为核心,以IP核复用技术为基础,集软、硬件于一体,并追求产品系统较大包容的集成芯片。
SoC开始出现在20世纪90年代中期,1994年MOTOROLA公司发布了Flex Core系统,用来制作基于68000和PowerPC的定制微处理器。1995年,LSILogic公司为SONY公司设计的SoC是基于IP(IntellectuaLProperty)核进行SoC设计的较早报道。由于SoC可以利用已有的电路和IP核进行设计,从而能够显著地提高设计效率,得到了迅速发展。从技术层面上看,以下几个方面推动了SoC技术的发展:
②计算机性能的大幅度提高,使很多复杂算法得以实现,为计算机辅助设计提供了物理基础。
③EDA(ElectroniCdesign automation,采用CAD技术进行电子系统和专用集成电路设计)综合开发工具的自动化和智能化程度不断提高,为集成电路设计提供了不同用途和不同级别的一体化开发集成环境。
④硬件描述语言(HDL)的发展为集成电路设计提供了建立各种硬件模型的工作媒介。目前,比较流行的HDL语言包括已成为IEEE STD1076标准的VHDL、已成为IEEE STD 1364标准的VerilogHDL和作为Altera公司企业标准的AHDL等。
为了加快SoC芯片设计的速度,人们将已有的IC电路以模块的形式,在SoC芯片设计中调用,从而简化芯片的设计,缩短设计时间,提高设计效率。IP核是一种预先设计好、已经过验证,并具有某种确定功能的集成电路、器件或部件。本文阐述了现代集成电路技术中的SoC及其IP核的设计方法,在分析了SoC的特点及其IP核的基本特征后,给出了SoC及其IP核设计中的系统级设计软件、IP核开发流程和关键技术,并提出了将其应用于综合业务接入系统的集成电路设计中。
SoC的特点及其IP核的基本特征
SoC的特点
SoC将数字电路、模拟电路、信号采集和转换电路、存储器、MPU、MCU、DSP等集成在一块芯片上实现一个系统。以超深亚微米(VDSM)工艺和IP核复用(IPReuse)技术为支撑的系统级芯片技术将是超大规模集成电路(VLSI)发展的必然趋势和主流。其特点在于:①功能强,规模大。SoC芯片中不仅包括了MPU、SRAM、DRAM、EPROM、闪速存贮器、ADC、DAC等数字电路设计中的基本模块,还具有一些其它模拟和射频电路,因此其功能是非常强大的。②结构复杂。VDSM使系统级芯片更大更复杂。数百万门的SoC中不仅包括了复杂的数字电路部分,更包括了一些模拟电路和射频电路,这就使得SoC的结构复杂,相应的设计工作也复杂化。③速度高,时序关系复杂。随着工艺向0.13μm或更小尺寸90nm发展,需要精确处理的不是门延迟而是互连线延迟。数百兆的时钟频率以及模块内和模块外错综复杂的信号间时序关系给设计带来了许多的问题,如时序验证、低功耗设计、信号的完整性以及电磁干扰和信号串扰等。
IP核的基本特征
IP核的基本特征包括:①通用性。通用性好是指具有某一功能的IP核,可以在不同应用方面使用。IP核具有满足子功能可配置甚至可编程的特点,如常见的嵌入式CPU模块就具有非常好的通用性。②正确性。正确性有百分之百的保证,是指IP核的实现严格遵守一系列的可重用设计开发规范,IP核的验证用例必须具有完备性,功能覆盖率、测试覆盖率都能够达到百分之百,并能够完全覆盖IP核工作的临界条件,提供相应的大流量测试、随机性测试,甚至能够提供软硬件协同仿真的测试环境等。③可移植性。可移植性好是指IP核的实现,如行为描述、网表、GDSII文件,具有可移植性,其设计输入可以在不同的开发平台上重现;综合用批处理文件具有可移植性,IP核的综合结果可以用不同的综合工具,在不同的综合库条件下正确重现;IP核的验证可以用不同的仿真器,在不同的仿真库条件下重现。
SoC的系统级设计软件及其IP核开发流程
SoC的系统级设计软件
(1)VirtuaL ComponentCodesign和SignaL ProcessingWorkSystem软件。
这两个软件是Cadence公司的系统级设计工具,具有对系统级设计的定义、分析和优化能力。Virtual ComponentCodesign(VCC)是一个可以提供IP核重用的、基于平台的软硬件协同设计开发环境。它提供了系统集成和验证的必要技术和工具,可利用其环境进行系统的关键体系结构的决策,如软硬件的划分。VCC能提高IC设计的效率和结果的可预测性。SignaL ProcessingWorksystem(SPW)是一个系统级的DSP设计工具,它实现从C描述到RTL的转换。SPW可集成C、MATLAB、HDL等模块以及3G无线通信、蓝牙等模块库,输出Verilog/VHDL描述。
(2)Cocentric系统软件
Synopsys公司的C++ocentric系列提供了复杂系统的关键元件模块的并发设计、验证、细化和实现的设计工具和设计方法,这些模块可以包含硬件模块和软件模块。Cocentric系列包括System Studio、FixedpointDesigner、System CHDL Cosimulation和SystemCCompiler。System Studio提供一个系统级软硬件协同设计工具环境,提供多层次的、图形化的及HDL的抽象描述方法,使设计者在一个基于C、C++和SystemC的统一环境中,快速生成所设计系统的可执行的系统级功能说明,该说明可用于验证,也可用于硬件或软件实现。Fixed-pointDesigner能进行浮点类型到定点类型的转换。System CHDLCosimulation提供了一个模拟器接口,使模拟器与一些硬件描述语言模拟器同步。System CCompiler能实现SystemC描述到门级描述或RTL级VHDL/Verilog描述的转换。
IP核开发流程
SoC中IP核开发流程主要包括IP核设计和IP核验证两条主线。IP核设计流程一般可划分为确定规格和模块划分、子模块的定义和设计、顶层模块的设计和产品化等4个阶段。IP核验证流程包括了建立参照模型、建立测试平台和准备验证用例、回归测试、形式验证。IP核开发流程如图1所示.
IP核设计分4个阶段:
①确定规格和划分模块。IP核的规格主要包括概述、功能需求、性能需求、物理需求、详细的结构模块框图、对外系统接口的详细定义、可配置功能详细描述、需要支持的制造测试方法和需要支持的验证策略等。确定规格的过程一般又包括行为建模功能论证和可行性分析等活动。划分模块是指在给出IP核结构模块框图的同时,对于每个子模块给出一个详细的功能描述,同时必须明确子模块之间的接口的时序要求。确定规格和划分模块是IP核开发是否成功较为关键的一步。
图1IP核开发流程
②子模块定义和设计。在对所有子模块的规格进行讨论和审查后,需要重点检查时序接口和功能接口的一致性,并随后整理出子模块的详细设计方案,再按照实现方案开始编写RTL代码、编写时间约束文件、综合批处理文件、子模块验证用测试平台(testbench)和测试套件(testsuite)等。当完成并通过代码规范性检查、测试覆盖率检查、功能覆盖率检查、性能分析,包括DFT、STA检查,功耗分析检查等验收以后,子模块就可用来与其他模块一起集成。
③顶层模块设计。顶层模块的设计就是把子模块集成起来,产生顶层模块,并对它做综合处理和功能验证。综合过程包括编写综合的批处理文件,在不同的参考库上综合,针对在制造上的可测试性插入扫描链、ATPG,并进行最终的性能分析和功耗分析等。验证过程包括根据由行为模型发展来的测试向量对顶层模块进行仿真测试、针对IP核的可配置选项进行多种配置条件下的回归测试和利用仿真工具检验测试向量的覆盖率等。
④IP核的产品化。IP核产品化的过程包括提供
IP核设计和验证用testbench,用商用转换器进行打包提交,但转换后需要重新验证,比如做回归测试以确保转换有效,并强调在几个主流仿真器上做仿真,在几种主要工艺库上做综合和门级仿真,并做形式验证以保证网表和RTL级的一致性,产生或更新用户文档等。
IP核验证的主要过程有:
①建立参照模型。这里的参照模型主要用于对系统功能进行验证以及和RTL模型的对照验证,该模型可用SystemC/Verilog/VHDL等语言来构造。
②建立测试平台。测试平台的建立是指与子模块设计并行,搭建验证环境和开发测试用例,并针对IP核的行为级模型对测试环境和测试用例进行调试,从而同步准备好用来仿真测试RTL级IP核的验证环境和测试用例。
③回归测试。回归测试保证在修改一个错误或加入一个新功能时,用来保证已经验证过的基本功能仍然正确。在验证过程中找到一个错误或加入一个新的功能时,要把它们对应的测试用例及时加入到回归测试集中。
④形式验证。形式验证是一种系统级的验证手段,不需要测试向量,而是通过判断两个设计是否等价来确认它们的功能是否一致。因此形式验证必须事先有一个参照设计。在IP核验证过程中,前面建立的参照模型就是参照设计。形式验证常用来判断设计更改后和更改前实现的功能是否一致。同时,形式验证也被用来确认综合后、插入扫描链后、版图提取后网表实现的功能前后是否一致。
SoC及其IP核的关键技术
IP核的关键技术
IP核开发的技术模型如图2所示,它集中体现了IP核开发的几个技术需求:①IP核规格的定义;②IP核模块的编码、综合、验证、文档开发等;③IP核开发过程中EDA工具的支撑;④IP核开发过程中的质量控制;⑤IP核打包提交技术;⑥IP核评测技术。其中IP核的规格定义、IP核的验证、IP核的打包提交被认为是IP核开发过程中的三大关键技术。
IP核的规格定义必须能够解决以下问题:①明确IP核需要提供什么样的功能,性能需要达到什么样的技术指标;②定义好IP核与外部系统的接口;③定义好IP核在可移植性方面所做的努力;④定义好IP核的面积和功耗等物理特性。
IP核的验证必须是完备的、具有可重用性的。IP核验证的完备性首先要求在设计IP核仿真测试方案时必须体现出以下几个方面:①从IP核的规格出发,对每一个模块测试功能点(testfeature)进行分析,定义每个子模块的仿真测试目标,并确定哪一个测试向量可以验证该测试功能点;②整理一个明确的测试列表,包括对目标的估计和测试覆盖情况;③对测试用例详细设计,并定义验证通过的标准。IP核验证的可重用性首先要求搭建的IP核仿真环境是由一系列可重用的测试组件构成的,如定义总线功能模型、通用的数据处理任务集等。
IP核打包技术是指在IP核开发基本结束后将分布的设计信息进行集成的技术。其主要目的是使得设计者提供完整、清晰、明了的设计信息。软IP核开发者提交给用户的信息应包括:①可综合的HDL代码和它的子模块;②综合脚本文件及时间约束文件;③插入扫描链和做ATPG的脚本文件;④综合和仿真用参照库模型;⑤验证中使用的总线功能模型和其他的系统组件模型;⑥测试激励文件及相应测试向量;⑦用户文档包括用户手册/功能描述、数据手册等;⑧应用要点包括该IP核使用的具体的例子、可配置特性等。对需要软件支持的IP核,还应该提供相应的嵌入式软件信息。
SoC中IP核集成中的关键技术
SoC中IP核集成中需要考虑的问题有:
①在对系统结构模块划分过程中,必须考虑目标SoC采用什么样的片上总线结构,确定哪些IP核需要购买,IP核模块的对接需要增加哪些连接性设计,哪些IP核需要从头开始设计。建立正确、高效、灵活的片上总线结构已成为IP核集成的关键。在IP核集成的过程中,既可以选用国际上公开通用的总线结构也可以选用根据特定应用而自主开发的片上总线。国际上比较成熟的总线结构有ARM公司的AMBA总线等。在确定片上总线结构时,并不排斥在IP核内部做一些接口转换的设计,但是这种设计的内容要尽可能简单。
②模块之间的接口协议应尽可能简单,模块间的接口定义尽可能与国际上通用的接口协议一致。其中一个常用的设计技巧就是在数据传送的接口中建立申请和应答机制。这虽然会造成芯片在时序、面积、功耗等方面的损耗,但可以有效缩短SoC的开发周期。
③要注意积累IP核集成的经验。一旦成功地将一个IP核集成到了一个系统,就应该进一步完善该IP核,使之具有更好的可重用性,并逐步建立一系列的衍生IP核。同时,把集成该IP核的经验教训及时记录下来形成技术文档,以便于后面的IP核集成。
④对于IP核的集成,还应该使时钟分布、关键路径的走线、电源、地线的走线及IP核支持的测试结构与系统芯片保持一致。
SoC中IP核集成中的另一个关键技术是IP核的评估与选择。IP核的评估是指通过一个完整的Checklist来系统地检查IP核设计。评测分为系统设计、编码、综合和验证等部分,并根据评测规则的重要程度为不同的规则检查分配不同的权值。这样在评测之后,就可以直观地看出整个设计的可重用性和在每一部分上的得失。它有助于我们了解一个设计的可重用性,以帮助从性能、规模、成本和功耗等不同方面来评估IP核。
目前业界比较具有影响力的评测标准是由Synopsys和Mentor联合开发推行的基于RMM的OpenMORE评测标准。选择IP核模块时首要考虑的因素是IP核与目标系统的配合程度。一般说来,选择那些无需修改的IP核模块较好。但是如今的大多数设计人员在获得了IP核后必须进行修改,修改的范围包括各个设计层次上的IP核模型。这种修改会耗费大量的时间和资源,不仅会耽误产品的研发进度,还会给整个设计流程引入风险,并让IP核厂商的支持变得困难重重。虽然某种程度的修改是不可避免的,但是如果设计人员能够牺牲一点芯片面积或功能来换取尽可能少地修改IP核模块,那么情况就会有所改善。即使某些模块的功能可能超过了系统的需求,但是为了尽量少地进行IP核的修改,也应该在某些不太重要的功能上做出妥协,以便直接使用一些我们需要的功能模块。选择IP核模块时还要考虑到诸如评估IP核的品质、集成的方便程度和可重用性以及IP核提供者所能提供的技术支持程度等因素。如使用手册的内容是否详尽完备、是否提供完整的设计和验证环境、是否有成功集成的先例以及接口定义标准的遵从程度、未来发展升级的可能性、获取IP核授权的效率和合作厂商的可信赖程度等。
综合业务接入系统集成电路设计中的应用
随着计算机网络向更高的传输速率发展,从100Mbit/s到1000Mbit/s,从1000Mbit/s到1Gbit/s,目前已经达到10Gbit/s或40Gbit/s,不久可达到80Gbit/s或100Gbit/s,因此计算机网络具有巨大的潜力。目前计算机网络主要用于计算机间的数据传输,其巨大的潜力没有很好的得到充分挖掘。利用计算机网络,以软交换设备为核心,能够提供话音、图像和数据等多媒体综合业务的下一代网络(nextgenaration network,以下简称NGN)正深刻地改变着传统的电信观念和体系框架,是电信网络发展与演进的目标。NGN中的关键接入设备为综合业务接入设备。
利用本文介绍的SoC及其IP核的设计方法,对综合业务接入设备中的综合业务接入集成电路及IP核进行了设计。根据SoC的系统需求,利用系统级设计软件SPW进行音视频编解码算法、通信协议的设计和验证,根据信号流程图生成正确的模拟效果并自动生成Verilog源程序。设计中部分IP核从第三方购买,自主开发研究了语音接口,进行了音频编解码G.711、G.723。1、G.728算法和协议的IP核设计;研制了具有自主知识产权的语音压缩算法和IP核,提高了网络语音通信的安全性;开发了视频接口,进行了视频编解码MPEG-24算法和协议的IP核设计;设计了RS232、RS485异步通信接口,制定了通信协议,并开发其IP核;开发了以太网接口,进行了信令协议SIP、H.323、MGCP和H.248的IP核设计。项目中音视频编解码IP核、数据采集接口电路IP核和以太网通信接口传输协议IP核的总线标准采用AMBA,并完成RTL代码和TestBench的开发,进行RTL级的仿真,完成综合、生成网表、生成时序和面积报表,生成功耗报表,并完善开发文档,其中包括IP核性能的描述、RTL代码文件的说明、综合结果的说明、内部寄存器列表及说明、详细的功能描述和操作流程描述、测试激励文件说明和测试方案与测试方法说明等。
SoC设计原型的验证采用Altera公司内嵌ARM922T硬核的Excalibur器件,实时操作系统采用μC/OS-II,并在以太网上进行了语音、图像和数据的传输实验。
该集成电路可以广泛应用于国内外通信企业生产的IAD、语音网关、数据采集器和视频编解i码器中,从而填补我国基于软交换的NGN中关键集成电路芯片的空白。
结束语
利用本文介绍的设计方法可以使IP核的设计过程条理化,从而可以避免设计过程中做重复的工作。其结果是缩短了IP核的设计周期而且所开发的IP核具有更高的正确性和更好的可移植性,重要的是开发过程中所形成的文档将更加有利于IP核的集成和后续的IP核开发。由于IP核的开发周期是SoC开发周期的一个重要的组成部分,所以通过该IP核的设计方法可以有效地缩短SoC的开发周期,提高产品的市场竞争力。采用该SoC及其IP核设计方法,设计了NGN中综合业务接入系统集成电路,取得了良好的效果。
精彩评论