基于OpenVera构建以太网MAC芯片验证平台
引言
当芯片的设计规模越来越大,朝向SoC发展时,RTL级功能仿真时间还可以忍受,但门级仿真己经成为不可能继续广泛使用的技术了。对设计进行完备性验证要求有足够的测试向量,随着设计规模的增大,需要的仿真向量也急剧增加。近十年来,芯片的设计规模增大了100倍,仿真向量增加了近10000倍。二者的共同作用使门级仿真所需的时间飞速增长。要找到如此庞大的能够保证验证完备性的仿真向量集也变得不太可能。
另一方面,芯片设计又面临着上市时间的巨大压力,验证的不足直接导致芯片不能通过测试,由此可能造成更大的损失。验证,尤其是功能验证必将影响集成电路的设计和开发进程。因此,缩短验证时间、建立高效的验证平台已成为现代集成电路设计的关键。
基于OpenVera验证平台的结构
实时以太网RTE MAC芯片是符合IEEE802.3(CSMA/CD)协议和IEEE1588精确时间同步协议的网络通信控制器。它不仅兼容商用以太网的功能,还增加了特殊工业网络中所必须的实时特性,将应用于高速工业以太网,以满足工业以太网的实时要求。
????&nbs;

????????????????????????????????????????????????? 图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++中类的概念,是一种面向对象的编程,并有强大的函数功能支持,不仅使得验证与设计并行成为可能,还能加快验证平台的建立。
???
&nb;