新闻中心

EEPW首页 > EDA/PCB > 设计应用 > SOC设计过程的质量保证

SOC设计过程的质量保证

作者:时间:2002-02-01来源:收藏

进入二十一世纪,标志着设计时代结束,崭新的系统芯片(SOC)时代到来。为了适应科技发展和市场竞争的需要,系统设计者不断寻求更短的上市时间,更高的性能和更低的成本,所有这些都是推动SOC需求的主要因素。世界SOC市场1998年只有57亿美元,而到2003年预期能达到265亿美元,市场将保持36%的年增长率。作为IC设计技术和未来市场的走向,SOC也逐渐受到了国内IC行业的重视。

本文引用地址:http://www.eepw.com.cn/article/3020.htm

SOC的出现导致了IC业的分工,并且向虚拟再集成的商业模式发展,本文对这种趋势作概括的描述。同时,在这种虚拟再集成的商业模式中,设计质量是最后SOC产品成败的关键因素。功能验证决定了SOC的质量,本文主要讨论虚拟再集成的商业模式导致的功能验证方法的发展。

 

IC业的虚拟再集成

今天的IC业和许多构成IC业价值链的焦点专业分层,将继续沿着已经走了十几年的分工之路走下去,即从垂直结构逐步向水平结构过渡。这种分工促进了SOC技术的成长,缩短了上市周期,降低了芯片造价,提高了经营效率。

分工的发展经历了两个阶段:

二十世纪八十年代后期的设计与加工分离是第一个阶段。在这个阶段,从事设计的无生产线(Fabless)公司销售产品,但不拥有加工条件;而加工公司专门提供加工服务。负担着芯片加工设施大量开支的加工公司,基本上可以不用面对产品公司跨入IC业时所面临的风险。

第二个阶段是二十世纪九十年代末独立IP供应商的出现。SOC技术的复杂度很高,大大加重了设计负担,于是,产生了对验证好的第三方IP核的需求,以简化多功能芯片的设计。在这个阶段,加工公司在提供IP硬核,以及加速经过验证的IP核向更小几何尺寸移植等方面扮演着重要的角色。因此,加工公司处于未来开放式IP时代的焦点,将促进系统设计、IC设计、第三方IP和电子设计自动化等这些商业增值活动的虚拟再集成。

SOC趋势将进一步加速分工的进化。分析家预测:设计服务和IP将成为分工的主旨,然后是纯粹的加工。第三方IP供应商将为无生产线公司、集成器件制造商(IDM)和系统设计公司进一步减少进入市场和缩短上市周期方面的种种障碍。

分工进化有几个主要的推动力量。第一,使用委托加工是进入IC业的一个低风险、很有竞争力的途径。使用加工服务,无生产线公司进入市场时,没有加工工厂的沉重经济负担。而且,IC业也经历反复的商业周期。在衰退期时,使用加工的IC公司有低得多的固定成本,会更有竞争力。第二,SOC趋势大大增加了设计复杂度,促使无加工线公司和集成器件制造商专注于它们的核心竞争产品:高层次设计和IP

分析家预测新的IP时代要经历一个根本的改变。这个改变是系统开发和IC芯片开发将按职能划分为两部分,如图1所示:一个将专门进行IP核设计,另外一个进行系统级集成。

IC业的分工继续发展,它将从一个垂直结构变成由各个专业分层构成的水平结构。这种转变又产生了再集成为另外一个商业模型的要求。如图2所示,由EDA工具、库、IP核、加工等公司构成的一个紧密的相互联系的网络,要比分层关系有更高的生产率。尤其是在深亚微米设计中,这种强有力的网络保证了设计平台高性能、产品周期更短、一次流片设计的无缺陷。各供应商的紧密伙伴关系为用户提供了一个完整的解决方案。在这种关系中,委托加工是核心,也是SOC发展关注的焦点,是这种虚拟再集成的组织者。无论是IP的开发、授权、SOC的加工和验证,都是围绕委托加工来进行的。

 

SOC功能验证

现在,还没有验证SOC的标准方法。各种SOCHDL语言使用上的不一致造成了大量的验证技术和手段。由于大约70%的设计工作都在验证上,验证途径的标准化已经变得非常必要。

现在,为缓解复杂系统功能验证问题,提高功能验证质量的新工具不断涌现。不管过去还是现在,电子部件的质量主要依赖于它们的验证过程怎么样。不好验证,不论由于什么原因,极有可能造成电子部件质量差或失败。

现在,一般有一个专门的队伍负责验证设计。只有验证工作的起点好,他们的工作才能好,也就是说好的验证必须有一个好的规格书,规格书也是验证过程的起点。验证从规格指定阶段开始,在设计、实现和加工各阶段一直持续进行。

 

模块为基础SOC的验证

SOC一般是由统一的总线结构连接起来的IP核的聚集。现在,有许多商用或非商用的总线结构在使用。基于总线结构的验证模型是目前SOC中比较成熟的技术。

总线结构一般通过总线功能模型(BFM)来模拟,该模型的复杂度由总线协议来决定,分为预捆包(prepackaged)PLI(编程语言接口)为基础的BFM和用户定制的Verilog BFM

一个完整testbench的建立需要5要素:验证计划、测试实例、完整的BFM、待测部件DUTtestbench

在所有的验证方法中,验证计划决定了最终验证的好坏,所以,验证计划是非常关键的,而不是可有可无的。为了一次成功,设计者必须识别在什么条件下必须检测什么特征,以及期望的反馈该是什么。整个设计团队都要参与计划制订,以保证它的完整性和正确性。验证计划应该采用黑盒功能验证方式,这是由整个验证通过的一个BFM来执行,而BFM只能访问接口信号来决定的。

黑盒验证方式有不依赖于实现的优点,也就是设计不管是行为级、可综合的RTL、门级网表、FPGA或者甚至是软件都与它无关。黑盒法形成了真正的一致性验证,表明了某个设计是否达到了规格书要求的目标。另外,这种方式对于保证测试激励便携性(portability)也是非常关键的。

编制验证计划的时候,每个测试实例应当区分每个单一的设计特征,防止复合特征出现,这可以简化调试的过程。

但是,在验证过程中经常会出现规范要求的改变,这时必须修改验证计划,验证计划必须与设计规范保持同步。

验证环境另外一个关键部分是BFM。可以使用现有的封装好的BFM,也可以基于总线结构的时序图,构造自己的BFM。无论如何,都要确保BFM模型能准确地反应总线协议。BFM主要包括测试实例执行所引发的总线任务,另外,它还必须包括象watchdog定时器和wait-acknowledge等的支撑型任务。如果协议要求的话,BFM还必须执行密集型(back to back)事件,比如burst-readburst-write。监控器monitor可以内建在BFM里,也可以是独立的设计文件。

既然BFM只访问顶层的接口信号,于是testbench也只需要看到顶层DUT的信号。推荐使用testbench的自动生成器,透明生成没有错误困扰的testbench

有些验证方式要求多个testbench,但是由于很难跟踪各testbench执行中引起了哪些文件执行,所以这种方法非常繁琐,很容易出错。故只使用一个统一的testbench的方法受到了普遍的欢迎。在这个方法中,不用为RTL和门级分别产生testbench。完整的测试环境包括一个或多个验证语言文件(VL, Verification Language file),即测试实例,一个DUT,一个BFM和一个testbenchTestbench的输入是验证语言文件VL,仿真结果由监控器载入日志文件。

所有部件级的测试实例很容易移植到系统级,往往可以直接把它们应用到系统级的全功能模型(FFM)或软件模拟环境,即在SOC设计中部件级设计操作验证应与系统级验证的无缝对接,如图3所示。

 

平台为基础的SOC验证

平台为基础SOC验证强调软硬件的协同设计和仿真,验证方式上有基于数学推导的形式验证方法和基于仿真的动态功能验证。形式验证的代码覆盖率好,但涉及较复杂的数学推导,推导本身的正确性难以把握。而且,系统较复杂时,形式验证会成为整个项目进展的瓶颈,甚至由于成本太高而不能实施。动态功能验证关注整个系统或其中某些部分的仿真运行,对仿真结果做出判断和调试,是本文讨论的重中之重。

验证主要是建立整个设计和内部子模块的验证环境。为了不让验证处于项目的关键路径上,主要开展软硬件验证工作的并行,减少验证的设计开销。同时,基于商业工具的验证环境,最好能够复用主流项目中的一些工作,进一步提高验证的效率。在下面比较的两类方式中,可验证性设计比传统方式有更多的优越性。

 

传统的验证方式

整个结构从系统指定阶段开始构造,这时忽略软硬划分。功能指定先由C或C++编程实现,以后再精炼。硬件模块由C/C++和某个或某些testbench来描述和实现,且从C/C++实现可以重新设计出RTL级的HDL实现。为了验证,单个子模块(C或HDL)可以随时换入换出系统。在HDL仿真过程中,一般是施加波形来执行硬件测试。在某个时间点,通常需要建立一个原型系统。最后,时间到的时候,PG将会交付加工。

这个流程很普遍(实际肯定比这里概括的要复杂得多),虽然很适合手边的工作,但也不是尽善尽美的。

 

最新的验证方式(推荐)

-可验证性设计

(DFV-Design For Verification)

缺乏一致性和复用性差是传统验证流程的主要问题。既然一个复杂系统的验证占用整个项目70%的时间,定义一个能够使用现有任何一种验证工具、简单明了的验证方法是非常关键的。于是,提出了基于“可验证性设计”这个概念的验证流程。

可验证性设计方法解决的问题,对于改善设计过程的动态功能验证阶段的质量举足轻重:

* C/C++和HDL的分别硬件描述是必需的,但是至少testbench可以在不同设计阶段广泛复用。要求建立的每个测试必须有应用于它调用的子模块的所有映象(view,即C/C++、VHDL、Verilog等描述形式)的可能,并且能使用市面上所有的仿真模拟工具;

* 在HDL验证过程使用的映象必须是可综合的;

* 必须是IP复用。这不仅仅是现有硬件模块的复用,还表明了访问非常合适的测试环境时的复用可能性。该测试环境作为验证工作的一部分必须复用;

* 一些映象经常需要调整。为保证一致性,当映象手工修改后,要使用形式验证技术;

* 完全验证,尤其是在“任务模式”(包括实际的软件),实现时必需很长的仿真过程。在该过程中建议使用模拟手段,提高执行效率;

* 覆盖率标准在验证过程中影响着一些选择,所以非常重要;

* 仿真过程太长而不是合理验证手段时候,模拟往往是较好的选择。

市场提供了几种可能的模拟手段,如:不仅仅是模拟器,经常用作快速原型平台的FPGA系统;还有其它一些更像仿真器,在某些方面,比基于FPGA的系统更容易使用的模拟系统。从模块正确性检查一直到系统级检查,它们都有比较广泛的应用。所以,这是系统集成和软件开发的较好选择(除非有频率限制)。

可验证性设计的验证方式,很好地解决了上面提到的动态功能验证问题。

结语

随着IP的出现,IC业的各专业分层,通过非常紧密的联系,虚拟的重新结合起来,构成了高效运作、增值能力很强的新型商业模型。这也是我国IC业的发展方向。同时,在这种商业模式下,SOC设计质量,即IP功能验证,是倍受关注的问题。本文给出了两大类功能验证策略和方法,它们是由SOC不同设计方式决定的,提供给国内的设计人员参考。■

参考文献

1.Shang-yi Chiang, "Foundries and the dawn of an open IP era", Computer , Volume: 34 Issue: 4 , April 2001,

2.Iniguez, A, "Vector language: a proposed verification methodology for intellectual property cores", /SOC Conference, 2001. Proceedings,

3.Sforza, F., Battu, L., Brunelli, etc, "A "design for verification" methodology", Quality Electronic Design, 2001 International Symposium on, 2001.

c++相关文章:c++教程




关键词: SoC ASIC

评论


相关推荐

技术专区

关闭