(12)Top模块:声明接口,实现DUT和平台互连,设置时钟信号。

4 仿真结果

环境搭建完毕后用QuestaSim进行仿真验证,根据输出的波形和验证信息比较DUT功能的正确与否,并查看输出的功能覆盖率来检测各功能点的实现状况。

由图9所示可以发现,UVM计分板中显示验证通过,DUT的输出和模型的输出是一致的,DUT的设计满足功能实现。

基于DPI-C接口的UVM验证平台设计与实现介绍

由图10可知,m=0时,执行FM0编码,m=1时,即执行miller编码,每个数据分别编码为2和4个码元,由图可知:m=0,data=3′b000,得到编码后的数据为01010100,数据长度为8位,最后2位是结束标识符00,根据FM0编码原则结果是正确的;而m=1,data=3′111,得到的编码后数据为1001_0110_1001_0110,数据长度为16位,最后4位0110是结束标识符,根据miller编码原则结果是正确的。

基于DPI-C接口的UVM验证平台设计与实现介绍

由图11可知,m=2和3时,即执行miller编码,每个数据分别编码为8和16个码元,由图可知:m=2,data=3′b110,得到编码后的数据为1010_0101_0101_1010_1010_1010_1010_0101,数据长度为32位,最后8位是结束标识符1010_0101,根据miller编码原则结果是正确的;而m=3,data=3′011,得到的编码后数据为0101_0101_0101_0101_0101_0101_1010_1010_1010_1010_0101_0101_0101_0101_1010_1010,数据长度为64位,最后16位0101_0101_1010_1010是结束标识符,根据miller编码原则结果也是正确的。

基于DPI-C接口的UVM验证平台设计与实现介绍

图12是一个由覆盖率驱动并且受约束的随机分层测试平台所产生的整个FM0、Miller编码仿真波形图,由图可见,平台跑了很多个testcase。

基于DPI-C接口的UVM验证平台设计与实现介绍

图13描述此DUT的功能覆盖率,FM0编码以及Miller编码的3种模式都覆盖到了,各功能点的覆盖率达到了100%。

基于DPI-C接口的UVM验证平台设计与实现介绍

5 结论

UVM验证方法学作为目前主流的IC验证方法学,尽管在前期搭建验证平台的的时间较长,但是执行效率很高,可以缩短整个研发的验证时间。本文介绍了基于DPI-C接口和UVM相结合的验证环境,实现了C程序与基于UVM环境的接口对接,使用受约束的随机激励以及覆盖率驱动,使验证平台中程序开发方便且调试方便,缩短了验证周期,保证了验证的完备性,有效地缩短了验证周期,提高了验证效率,加大了芯片的面试可能性。