位置:51电子网 » 技术资料 » 通信网络

基于OpenVera构建以太网MAC芯片验证平台

发布时间:2007/4/23 0:00:00 访问次数:558

引言
当芯片的设计规模越来越大,朝向SoC发展时,RTL级功能仿真时间还可以忍受,但门级仿真己经成为不可能继续广泛使用的技术了。对设计进行完备性验证要求有足够的测试向量,随着设计规模的增大,需要的仿真向量也急剧增加。近十年来,芯片的设计规模增大了100倍,仿真向量增加了近10000倍。二者的共同作用使门级仿真所需的时间飞速增长。要找到如此庞大的能够保证验证完备性的仿真向量集也变得不太可能。

另一方面,芯片设计又面临着上市时间的巨大压力,验证的不足直接导致芯片不能通过测试,由此可能造成更大的损失。验证,尤其是功能验证必将影响集成电路的设计和开发进程。因此,缩短验证时间、建立高效的验证平台已成为现代集成电路设计的关键。

基于OpenVera验证平台的结构
实时以太网RTE MAC芯片是符合IEEE802.3(CSMA/CD)协议和IEEE1588精确时间同步协议的网络通信控制器。它不仅兼容商用以太网的功能,还增加了特殊工业网络中所必须的实时特性,将应用于高速工业以太网,以满足工业以太网的实时要求。


图1 验证平台的发送部分架构

本平台就是为验证RTE MAC芯片而搭建的。平台采用OpenVera语言,基于事务级建立。验证平台发送部分的架构如图1所示,接收部分结构与此类似。它包括下面几个部分:
1) 调度:调度是整个平台的顶层,用于协调各个模块的工作。
2) DUV(design under verification):待验证的芯片,除此以外都是用OpenVera语言编写的测试软件模块。
3) 测试事例:验证中针对具体功能而采用不同的测试事例,这里采用带约束的随机验证方式,通过对它的约束产生各种测试事例。
4) Frame_gen:将测试事例按照CPU总线侧的帧格式组成数据帧通过BFM输出到芯片。
5) Monitor:监视器,包括Bus_ Monitor和Ethernet_ Monitor。其中Bus_ Monitor监测总线的行为,可以监视存储器读写,芯片的数据处理等事务;Ethernet_ Monitor可以监视输出有效、冲突、载波等网路信息。
6) Check_table:根据BFM侧监视器检测的数据以及相应的配置,将理想DUV的输出存储在数组中,check模块可以把Check_table内的数据与DUV输出进行对照,实现自动检测。
7) BFM:总线功能模型,用于模拟总线功能,驱动DUV。

OpenVera验证平台的建立方法及特点
该平台基于事务级验证,采用专门的验证语言编写,具有高度的可重用性、灵活性,体现着现代电路设计中验证的发展潮流,下面将结合此平台介绍现代验证的特点和趋势。

验证与设计并行
传统的设计首先进行设计的开发,完成RTL代码的编写后再进行验证,整个产品开发时间接近于设计加上验证的时间。而对于现在的项目开发,在根据具体的设计要求定义功能,并给出初步的设计文档之后,就可以根据这些功能定义同时进行设计开发和验证平台的搭建。这一阶段中验证平台的搭建主要是建模,因此需要引入高级验证语言。高级验证语言是芯片设计复杂度达到一定程度后的必然产物,如OpenVera ,SystemC ,System Verilog,都具有强大的建模功能。就OpenVera而言,它引入C++中类的概念,是一种面向对象的编程,并有强大的函数功能支持,不仅使得验证与设计并行成为可能,还能加快验证平台的建立。


图2 总线的驱动时序

基于事务级的验证方法
以往的验证基于信号级,一个复杂芯片的信号数目非常多,包括大量的外部信号和内部信号,想要对它进行完整详细的验证,需要耗费很多的精力和时间,严重影响设计周期。基于事务的验证方法可以在一个更高的层次上进行验证,显著地减轻了测试工作,并有助于统计测试覆盖率。事务是一次性完成的一组操作或信号变化,在一个抽象概念上包括信号的传送,数据的处理、变化,系统的状态等。事务的概念很宽,可以简单到存储器的读写,复杂到很多数据的处理与传输。事务也可以由多个操作、多个时钟周期组成。

当一个设计在信号层经常要关注那些1或0时,设计者可以借助基于事务的方法很方便快捷地创建测试方法。系统结构设计人员可以不用费心去思考那些使能信号、地址总线等细节, 而是更多的关注数据的流向、处理、存储,以及电路的状态和动作等这类事务。基于事务的验证方法可以说是自然验证方法在设计更高抽象层的一种扩展,它也有利于平台的可重用性。

引言
当芯片的设计规模越来越大,朝向SoC发展时,RTL级功能仿真时间还可以忍受,但门级仿真己经成为不可能继续广泛使用的技术了。对设计进行完备性验证要求有足够的测试向量,随着设计规模的增大,需要的仿真向量也急剧增加。近十年来,芯片的设计规模增大了100倍,仿真向量增加了近10000倍。二者的共同作用使门级仿真所需的时间飞速增长。要找到如此庞大的能够保证验证完备性的仿真向量集也变得不太可能。

另一方面,芯片设计又面临着上市时间的巨大压力,验证的不足直接导致芯片不能通过测试,由此可能造成更大的损失。验证,尤其是功能验证必将影响集成电路的设计和开发进程。因此,缩短验证时间、建立高效的验证平台已成为现代集成电路设计的关键。

基于OpenVera验证平台的结构
实时以太网RTE MAC芯片是符合IEEE802.3(CSMA/CD)协议和IEEE1588精确时间同步协议的网络通信控制器。它不仅兼容商用以太网的功能,还增加了特殊工业网络中所必须的实时特性,将应用于高速工业以太网,以满足工业以太网的实时要求。


图1 验证平台的发送部分架构

本平台就是为验证RTE MAC芯片而搭建的。平台采用OpenVera语言,基于事务级建立。验证平台发送部分的架构如图1所示,接收部分结构与此类似。它包括下面几个部分:
1) 调度:调度是整个平台的顶层,用于协调各个模块的工作。
2) DUV(design under verification):待验证的芯片,除此以外都是用OpenVera语言编写的测试软件模块。
3) 测试事例:验证中针对具体功能而采用不同的测试事例,这里采用带约束的随机验证方式,通过对它的约束产生各种测试事例。
4) Frame_gen:将测试事例按照CPU总线侧的帧格式组成数据帧通过BFM输出到芯片。
5) Monitor:监视器,包括Bus_ Monitor和Ethernet_ Monitor。其中Bus_ Monitor监测总线的行为,可以监视存储器读写,芯片的数据处理等事务;Ethernet_ Monitor可以监视输出有效、冲突、载波等网路信息。
6) Check_table:根据BFM侧监视器检测的数据以及相应的配置,将理想DUV的输出存储在数组中,check模块可以把Check_table内的数据与DUV输出进行对照,实现自动检测。
7) BFM:总线功能模型,用于模拟总线功能,驱动DUV。

OpenVera验证平台的建立方法及特点
该平台基于事务级验证,采用专门的验证语言编写,具有高度的可重用性、灵活性,体现着现代电路设计中验证的发展潮流,下面将结合此平台介绍现代验证的特点和趋势。

验证与设计并行
传统的设计首先进行设计的开发,完成RTL代码的编写后再进行验证,整个产品开发时间接近于设计加上验证的时间。而对于现在的项目开发,在根据具体的设计要求定义功能,并给出初步的设计文档之后,就可以根据这些功能定义同时进行设计开发和验证平台的搭建。这一阶段中验证平台的搭建主要是建模,因此需要引入高级验证语言。高级验证语言是芯片设计复杂度达到一定程度后的必然产物,如OpenVera ,SystemC ,System Verilog,都具有强大的建模功能。就OpenVera而言,它引入C++中类的概念,是一种面向对象的编程,并有强大的函数功能支持,不仅使得验证与设计并行成为可能,还能加快验证平台的建立。


图2 总线的驱动时序

基于事务级的验证方法
以往的验证基于信号级,一个复杂芯片的信号数目非常多,包括大量的外部信号和内部信号,想要对它进行完整详细的验证,需要耗费很多的精力和时间,严重影响设计周期。基于事务的验证方法可以在一个更高的层次上进行验证,显著地减轻了测试工作,并有助于统计测试覆盖率。事务是一次性完成的一组操作或信号变化,在一个抽象概念上包括信号的传送,数据的处理、变化,系统的状态等。事务的概念很宽,可以简单到存储器的读写,复杂到很多数据的处理与传输。事务也可以由多个操作、多个时钟周期组成。

当一个设计在信号层经常要关注那些1或0时,设计者可以借助基于事务的方法很方便快捷地创建测试方法。系统结构设计人员可以不用费心去思考那些使能信号、地址总线等细节, 而是更多的关注数据的流向、处理、存储,以及电路的状态和动作等这类事务。基于事务的验证方法可以说是自然验证方法在设计更高抽象层的一种扩展,它也有利于平台的可重用性。

相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式