APP下载

基于SV语言的DBA芯片的验证

2010-08-04董宝贵张长明欧家成

通信技术 2010年9期
关键词:参考模型方法学时序

董宝贵,张长明,欧家成

(电子科技大学 光电信息学院,四川 成都 610054)

0 引言

在当今百万门级 ASIC项目的开发过程中,验证占用了大部分的时间。在人员构成上,验证人员与设计人员之间的最佳比例应该在2:1以上;而目前国内各大IC设计公司的验证人员和设计人员的比例只有1:1。而按照摩尔定律,芯片上集成的电路的数目每 18个月翻一番。因此,无论是从人员构成上还是从验证工作量上,验证工程师都面临着前所未有的挑战。为此,各大ASIC公司试图通过改进验证方法、改善验证手段提高验证效率、缩短验证周期,他们试图通过将验证环境标准化,以便能够快速创建可移植的验证环境[3]和验证组件。比较常用的验证方法主要有基于E语言验证方法、RVM验证方法以及基于SV的VMM验证方法。与传统的验证方法相比,这些方法都可以提高验证的效率和验证的完备性,从而缩短芯片的开发周期。

1 验证方法学

ASIC验证的方法主要包括模拟验证和形式验证。模拟验证是从电路的描述中提取模型,通过观察该模型在外部激励下的反应来判断电路是否实现了预期的功能。形式验证是将系统的规格说明使用一种形式语言描述出来,然后通过构造算法或理论证明验证设计的正确性。

模拟验证主要包括软件模拟、硬件仿真以及后期测试三个阶段。软件模拟是建立系统的模型,并通过软件不断的模拟验证设计的正确性,这种方法是目前应用最广泛的验证方法;但是这种验证方法很难发现隐藏在设计深处的错误,比如异步电路(BUG)。硬件仿真是通过相应的硬件实现系统的逻辑结构和系统功能来进行仿真,这种仿真相对于软件仿真效率低下,只能作为软件仿真的补充。形式验证作为模拟验证方法学的补充,日益引起人们的关注。它将系统设计规范以及系统的性质使用数学方式表达出来,并通过数学理论证明设计的系统满足设计规范及性能的要求,但是这种验证方法算法复杂、不易实现。

SV验证方法学[4]是在模拟验证的基础上增加了形式验证的方法,是模拟验证和形式验证的结合体。它采用以覆盖率为导向的技术、受约束的随机技术和基于断言的技术来构建全面的验证环境。这种验证方法充分利用了SV语言中提供的表示时域的语法结构,通过这些时域结构能精确地表达设计指标的需求和意图。这种方法学通过插入断言代替形式验证语言完成模型检验算法中功能属性的描述工作。此外,受约束的随机技术也是该验证方法学的亮点之一,通过随机约束产生需要的激励,而不是毫无目的的随机测试,从而使穷举成为可能。

2 VMM验证架构

基于SV验证方法学[5],Synopsys公司推出了VMM验证平台。它是基于类库、面向对象的验证平台;它采用了断言、抽象、自动化和重用四种机制提高验证生产率。这种架构能够最大程度地利用 SV语言的面向对象的编程模式实现验证组件,并将他们组合成为一个强大的验证环境,而且这个验证环境能够满足某一DUT的所有必要的测试案例。VMM定义的分层次的验证结构如图1所示。

图1 VMM验证架构

测试层主要完成几个功能:数据发生器的附加约束、随机场景的定义、事务处理器之间的同步、错误插入的使能配置、被测设计的状态监控和定向激励等。生成器主要是根据环境本身的约束和测试层增加的附加约束生成需要的数据包(如以太网报文)并将数据包传送到驱动器。驱动器是对来自生成器的数据包进一步处理并将处理后的报文(如 IP报文[6])分复制成两份进行传送,一份发送到驱动器,另一份通过CALLBACK机制发送到自检器。自检器是一个参考模型,其内部完成的功能[7]与DUT完成的功能是相同的,只是没有时序的概念,通过将DUT输出的结果与自检器内部计算的结果相比较从而确定设计的正确性。指令层的驱动器是将数据报文发送到DUT,区别于功能层的驱动器,该驱动器通过接口直接与DUT的信号线相连,具有时序的概念,而功能层的驱动器与其它组件相连都是通道的形式直接传送整个包。两个检查器主要完成接口信号时序的检查,一般采用断言来完成。检测器主要是接收DUT输出的结果并将结果打包发送的自检器进行比较。

3 DBA验证环境架构

DBA模块的IT验证环境采用上述介绍的VMM架构,是一个层次化的验证环境。验证环境架构图如图2所示。

图2 DBA验证环境

整个环境主要由测试向量(Test Case)、数据包产生模块(GEN)、总线功能模型(BFM)、参考模型(RM)和比较(自校验)模块组成。其中测试向量是验证环境的最高层,每条测试用例对应一个或多个功能测试点。测试用例下面对应的直接是功能层,主要包括 RM和自校验两个组件。该层主要用于产生各种数据包激励,完成包级的模型处理和自动化比较。RM组件作为DBA的参考模型,主要是用软件实现DBA模块的功能,并将计算结果发送到自校验。自校验组件主要是将DUT的输出结果与RM计算的结果进行比较,判断两者的计算结果是否一致。验证环境的命令层主要包括各种总线功能模型,驱动型总线功能模型[8](RPT_BFM和MPI_BFM)主要功能是为数据包激励加上时序信息,依次驱动DUT的接口信号;检测型功能组件(GATE_BFM)主要是采样DUT接口信号的数据并将采样到的数据封装成数据包的形式发送到自校验。

4 DBA验证环境实现

4.1 配置激励设计

配置激励主要是指DBA正常工作需要配置的寄存器和配置表。配置信息是由CPU按照英特尔时序或者摩托罗拉时序通过总线的方式写入到DBA内部,然后由DBA内部的DIO模块送到寄存器内部。除寄存器以外,CPU还需要完成表项的配置。DBA内部包含的配置表项主要是带宽配置表、LLID索引表和时间表等。其中带宽配置表中的包含了固定带宽、保证带宽和尽力而为带宽的配置值,时间表中包含了每个LLID的激光器开关时间,LLID索引表主要用于描述ONU与LLID的对应关系,其相当于256个链表,每个链表对应ONU,链表中的成员表示对应于该ONU的8个LLID。MPI激励和表项定义如图3所示。

图3 配置激励和表项信息

4.2 数据激励设计

数据激励主要是指ONU的上报信息,产生该激励可以采用两种方法,一种是直接上报,另一种是带反馈的上报。直接上报是指每次上报的值都是随机的,即当前周期的请求带宽和下个周期的请求带宽之间没有任何联系;这种上报机制将面临着严重的考验,请求带宽值的浮动非常大,同时由于没有反馈,所以这时的验证环境实际上是开环的。带反馈的上报是指当前上报的请求带宽值会把上次上报的请求带宽和实际授权的带宽作为参考值,并依次计算出当前实际应该上报的请求带宽值,如图4所示。

实际应用中,从ONU上报请求带宽到DBA授权时隙给ONU就是一个反馈环。比如队列中缓存200个字节的数据,但是DBA授权给该ONU的时隙只有50个字节,ONU发送完50个字节后仍剩余150个字节,这150个字节会成为下周期请求带宽的一部分再进行上报。此外,ONU侧是否需要上报是根据授权帧中的FLAG标志位决定的,如果ONU收到的授权中该标识为 1,则此周期必须上报请求带宽值,反之,则不上报;所以从这方面来说验证环境也必须设计成反馈环的形式,上报机制以激励实现如图4所示。

图4 上报机制及激励实现

4.3 BFM设计

RPT_BFM连接着包产生模块RPT_GEN和设计模块DBA,它的主要功能包括两个方面:①对 RPT_GEN产生的原始包进行再处理,如插入报告信息,插入错误包,丢包、反馈环的实现等;②将所有报告信息转换为驱动 DUT的接口信号。其中RPT_GEN产生ONU的请求带宽值,RPT_BFM在授权时隙到来且上报标志位有效时将请求带宽值赋值到DBA的接口模块。

作为10GEPON的一部分,DBA根据ONU的上报信息计算出每个 LLID的授权,并将授权的信息发送给 OLT_MAC模块,OLT_MAC再将授权信息封装成授权帧的形式下发到ONU。所以GATE_BFM模块就相当于OLT_MAC的成帧模块,它将每个周期所有LLID的授权信息接收下来,将他们封装成包的形式发送到checker。带宽下发过程中,GATE_BFM首先发送请求信号和地址(LLID),DBA收到请求信号后将相应地址(LLID)的数据授权送出,同时拉高VLD信号。GATE_BFM模块检测到VLD信号有效后接收授权数据;等一个周期的授权收集完毕后将所有发送到自校验进行比较。

CPU_BFM完成的主要功能包括两个方面:①在DBA的初始化过程中依次写入DBA的表项和寄存器配置信息;②在DBA的工作过程中动态配置表项和寄存器,同时响应DBA模块产生的中断。CPU的接口时序主要包括摩托罗拉时序和英特尔时序,这里采用英特尔时序。

4.4 RM设计

参考模型是指将 DBA的整个功能使用软件编程语言实现,是整个验证环境中最复杂的一个组件。相比于设计模块,参考模型的抽象层次更高,实现起来更容易。为了使参考模型和设计模块的功能达成一致,参考模型在整体架构上和设计模块相似。主要不同点在于几个方面:①参考模型中模块之间划分相对比较模糊。参考模型中的每个子模块可能就是一个供主函数调用的子函数,模型中模块与模块之间的接口信号就是函数的参数。而在设计模块中,每个子模块被定义成一个模块,然后将子模块通过接口信号连接起来;②参考模型中代码的执行没有时序的概念,即代码从收集带宽上报到计算出结果不需要任何时间。而在设计模块中,代码随着时钟的跳变分步执行,从收集上报到计算出结果需要一段时间。在验证环境中,必须将无时序的参考模型与有时序的设计模块同步起来。

4.5 自校验设计

仿真校对按仿真前后不同主要分为两种:仿真前校对和仿真后校对。仿真前校对方式中缓存的是预测的结果以及驱动DUT的激励,而仿真后校对方式中缓存的是DUT的响应以及驱动预测响应模块的激励。在仿真前校对方式中,每当从驱动DUT的缓存中取出一个激励信号就会在响应模块产生一组响应结果;比较模块通过读取响应模块的计算结果和预测响应的结果实现结果的动态校对。在仿真后校对方式中,驱动响应预测模块的激励和DUT计算的结果在仿真结束后才加到相应的模块。

这里验证环境中采用的是仿真前的校对方式。校对模块主要包括两路输入,一路来自 RM,另一路来自 GATE_BFM,当GATE_BFM从DUT接收完一个周期的所有授权后,校对模块立即从参考模型中获取RM的计算结果,并将它和GATE_BFM模块过来的授权信息作比较;如果两者的结果不同,则认为比较出错,并打印出错的相关信息。

5 仿真结果

环境搭建完毕并调试通过后,开始运行DBA的测试用例,并根据输出的log文件和波形文件定位设计中出现的问题。相比于传统的验证方法,此方法极大的利用了验证组件的重用性、提高了验证的效率,使验证的周期大大缩短,图5分别为验证过程打印的log文件。

图5 输出的log信息

6 结语

基于SV语言的VMM架构是目前业界比较主流的验证方法学,它充分利用了SV语言中提供的随机约束机制和断言机制,改变了传统的以直接测试激励为主的验证方法,是以覆盖率为导向的验证方法学。验证结果表明,这种层次化的验证平台使整个验证环境更具有灵活性和重用性,从而极大的提高验证的效率和验证的完备性、大大缩短芯片的开发周期。

[1] 叶鹏,赵庆敏.三网融合及其相关宽带接入技术的研究[J].通信技术,2009,42(10):100-101,104

[2] 张晓敏,李维民.EPON和GPON的几种动态带宽分配算法比较[J].通信技术,2009,42(11):127-129

[3] 王鑫. 测试向量的自动生成及其功能验证环境[D].上海:上海交通大学,2007.

[4] JANICK B. SystemVerilog验证方法学[M].北京:北京航空航天大学出版社,2007.

[5] 闫沫,张媛.基于SystemVerilog语言的设计验证技术[J].现代电子技术,2008,31(06):8-11.

[6] GLER K. 基于以太网的无源光网络[M].北京:北京邮电大学出版社,2007.

[7] 张蓓莉.微处理器基于功能覆盖率的伪随机验证方法[J].计算机与信息技术,2006(04):22-24.

[8] 杜旭,夏晓菲,赵宇. 总线功能模型在集成电路功能验证中的设计和应用[J].微电子学与计算机,2004(05): 130-133

猜你喜欢

参考模型方法学时序
清明
大型学术著作《药理研究方法学》出版发行
基于不同建设时序的地铁互联互通方案分析
基于FPGA 的时序信号光纤传输系统
药品微生物限度检查方法学验证的研究进展
适应性学习支持系统参考模型研究现状及发展趋势
基于环境的军事信息系统需求参考模型
适应性学习系统的参考模型对比研究
语义网络P2P参考模型的查询过程构建
基于模体演化的时序链路预测方法