基于DPI-C接口的UVM验证平台设计与实现介绍
时间:2020-01-28  浏览次数:663

  事业发展迅速,设计与工艺技术不断发展,更多和更复杂的功能被集成到一块芯片上。SoC的集成度和复杂度大大提高,在IC设计中就容易引入错误,所以验证工作将变得艰巨。随着IC设计规模的增大以及设计周期的压缩,传统验证技术已经不能再满足日益增长的验证需求,验证方法学应运而生,目前,

  本文目的在于为数字基带处理单元中标签发送链路的编码模块搭建一个适当的、完善的验证平台,用来验证RTL代码的正确与否。运用面向对象思想的UVM验证方法学和C语言进行平台的设计与实现,它能有效地缩短验证周期,提高验证效率,加大芯片的面试可能性。

  目前,主流的验证方法学有VMM、OVM和UVM。UVM基于SysteVerilog语言,具有VMM、OVM等诸多验证方法学的优点,是一套高效、开源的验证方法学。UVM由Accellera标准组织推出,并得到了三大主流EDA供应商支持。

  通用验证方法学(Universal Verification Methodology,UVM)是一个以SystemVerilog类库为主体的验证平台开发框架,可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。

  (1)uvm_driver类:是从uvm_sequencer中获取事务(transacTIon),经过转化在接口中对DUT进行时序激励。diver类与sequencer类之间的通信就是为了获取新的事务对象,这一操作通过pull方式实现:

  (3)uvm_sequencer类:就像一个管道,从中传送连续的激励事务,并最终通过TLM端口送至driver一侧。

  (8)uvm_test:是验证环境的唯一入口,只有通过它才能正常运转uvm的phase机制。

  图2中的DUT实现了FM0和Miller副载波调制编码。在ISO/IEC18000-6C协议标准中,标签发送链路主要采用是FM0编码和Miller编码。编码方式的选择由m[1:0]来决定,只有当m值为2′b00时才会选择FM0编码,m为2′b01、2′b10、2′b11时选择Miller编码。

  FM0编码是通过电平翻转的方式来实现编码,数据码元-0和-1翻转的次数不同。码元-0在码元周期中间会发生一次电平翻转,而码元-1只在每个码元起始处发生电平翻转。从图3所示FM0编码的状态跳转图可以看出FM0编码的码元-0和-1的波形,而且在FM0编码结束后需要在码元数据的尾端添加结束标志,结束标志会以固定码流来结束。码元波形和结束符如图4所示。

  Miller编码又称为副载波调制编码,也是通过电平翻转的方式来实现编码。编码方式和状态跳转如图5所示。

  根据Miller编码规则,按照m[1:0]值不同,每个数据可能被编码成4位、8位16位码元。如果m值为01,对应M值为2,每个数据编码为4位码元;m值为10,对应M值为4,每个数据编码为8位码元;m值为11,对应M值为8,每个数据编码为16位码元。Miller编码序列如图6所示,每个编码序列分别对应M值为2、4、8。由图可知数据编码时,只有在数据-0和-0边界电平不发生翻转跳变以外其他数据边界处都会发生电平的翻转跳变。

  与FM0编码类似,Miller除了采用电平翻转实现编码外,编码结束后在数据的尾部同样需要添加结束标志。FM0采用固定码流作为结束标志,即保持持续码元电平。但是Miller编码的结束标志相对会复杂一些,如图7所示。

  设计FM0编码的C_Model。模型输入包括了m参数、data,输出编码后数据及编码后的数据长度。首先需要将数据读入模型,根据数据电平编码。编码算法主要设置一个变量data_tmp,在编码开始时设置为1,如果是编码-0,则输出码元~data_tmp和data_tmp,data_tmp值保持不变。如果是编码-1,则输出码元~data_tmp和~data_tmp,data_tmp值取反。通过不断更新data_tmp值来实现数据的编码输出,编码完成后添加结束标识符。

  设计Miller副载波调制编码的C_Model,模型输入包括了m参数、data,结合副载波调制类型和数据类型,将编码后的数据及长度输出,另外,由于Miller前同步码最后一位码元电平为低,因此其初始data_tmp应为0,结合m的值进行编码,编码完成后添加结束标识符。

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

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

  由图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编码原则结果是正确的。

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

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

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

  [4] 克里斯·斯皮尔.SystemVerilog验证[M]。张春,译。北京:科学出版社,2009.

  [5] 徐伟俊,杨鑫,陈先勇,等。针对功能覆盖率的验证过程[J]。中国集成电路,2007(7):58-62.

  [6] 克里斯·斯皮尔.SystemVerilog验证:测试平台编写指南[M]。张春,麦宋平,赵益新,译。北京:科学出版社,2009.

  [7] 李璐,周春良,冯曦,等。基于DPI-C接口的可扩展SOC验证平台[J]。电子设计工程,2018,26(4):136-140.

  1.本课程共包括18个视频内容,全由潘老师主讲2.本课程基于至简设计法思想,明德扬的特色是做到通俗易懂3.由于本商品是虚

  OBG在单片机中的解释STM32单片机的内核(Cortex-M3)含有硬件调试模块,支持多种复杂的调....

  随着科学技术的迅猛发展,越来越大的数据传输量和越来越高的数据传输速率成为信号处理系统亟待解决的问题。....

  随着USB接口的越来越普及,现在几乎所有的接口都可以转换成USB接口,本文主要介绍一下Xilinx ....

  USB接口线,一般红黑是电源线,红是正(+),黑是负(-),其余两根(绿、白)是信号线,一般绿色为正....

  使用none模式,Docker容器拥有自己的Network Namespace,但是,并不为Dock....

  节能灯寿命检测环境中,主要干扰来自开关和寿命检测的强电干扰、开关产生的电磁干扰、空气循环设备的干扰等....

  I2C总线接口器件在视频处理、移动通信等领域的应用已经非常普遍。另外,通用的I2C总线接口器件,如带....

  USB总线是一种高效、快速、价格低、体积小、支持热插拔的串行通信接口,目前USB这一接口形式在电子产....

  DDS(Direct Digital Synthesizer,直接数字合成技术)近年来得到了飞速发展....

  随着计算机技术的飞速发展和普及,数据采集系统迅速得到了广泛的应用。数据采集系统性能的好坏主要取决于它....

  PCI Express是由Intel,Dell,Compaq,IBM,Microsoft等PCI S....

  经过市场调研,现在LED 显示屏二次开发接口良莠不齐,没有统一的标准,有的太简单,很难满足工程应用,....

  1 月 17 日讯,据悉,巴克莱银行(Barclays)半导体分析师今日在一份投资研究报告中称,苹果....

  据巴克莱分析师布莱恩·柯蒂斯(Blayne Curtis)、托马斯·奥马利(Thomas OMal....

  提到购买激光电视,很多人担心价格太贵。价格固然重要,但是购买激光电视需要全方位考虑,这样才能最终决....

  处理器和主板换接口、换插座是绝大多数用户非常厌烦的事情,这意味着整个平台都要跟着换,也失去了升级性和....

  去年,AMD X570主板和锐龙3代处理器同步发售,总的来看X570主板价格还是有些高,最便宜的在1....

  歌尔的该项方案不仅实现了TWS耳机的充电接口与通信接口复用、软硬件实现简单,而且美化了耳机外观、降低....

  类似于NVIDIA去年对G-Sync的变更,在CES 2020上,AMD也重新调整了Freesync....

  香橙派最新的两款开发板,Orange Pi 4和Orange Pi 4B,都带有24pin PCIE接口,目前开发板的 Android8.1系统适...

  HDMI(高清晰度多媒体接口)是首个也是业界唯一支持的不压缩全数字的音频/ 视频接口。HDMI 通过....

  从图中可以看出8080接口的协议大概流程是:先发出片选信号,然后发出命令使能或者数据使能信号,待数据....

  相比成品主机,自己组装电脑不但便宜不少,而且各部分硬件能根据自己的需求专门定制,可以极大的节省资金。

  上次按照手册里面的运行流程烧录XDS110文件,结果现在连接开发板到电脑是没有任何反应。设备管理器也没有任何接口信...

  Intel将在明年上半年发布代号Comet Lake-S的第十代桌面酷睿处理器,还是14nm工艺,最....

  方法1:香橙派开发板+硬盘(直接连接)此方法适用于有SATA接口的开发板。 Orange Pi现有的开发板,目前只有RK...

  根据Toms Hardware的报道,Portkeys推出了新款HDMI监视器,屏幕尺寸为5.5英....

  当今电子产品一个很重要的区分元素是其所用的存储器。服务器、计算机、智能手机、游戏机、GPS 以及几乎....

  DisplayPort是一种高清数字显示接口标准,可以连接电脑和显示器,也可以连接电脑和家庭影院。

  相信很多人都注意到,手机厂商推出的新机基本上都已经告别了MicroUSB梯形接口,而是采用Type-....

  除Han®B和Han-Eco®B标准解决方案之外,从2020年第一季度起还将推出可实现无故障数据传输....

  众所周知,iPhone“5V 1A”的充电器一直被消费者诟病,毕竟在国内厂商快充已经达到65W的情况....

  相信很多人听说“保时捷设计”(Porsche Design),是从其与华为Mate系列手机的合作开始....

  昨晚苹果发布了16寸的Macbook Pro笔记本*简称,号称是有史以来最好的MBP,主打生产力工具....

  Rambus 开发了一套基于 7nm 工艺的全面型 PCIe 5.0 与 CXL 接口解决方案,现已....

  新一代英特尔Movidius Myriad代号Keem Bay,可用于边缘媒体、计算机视觉和推理应用....

  如果问你笔记本最轻薄能到多少?也许没人能有个准确的答案。但是可以肯定的是,这种轻薄的趋势会继续延续。

  上周,AMD正式公布了第三代锐龙Threadripper(线程撕裂者)处理器,包括32核的AMD锐龙....

  智能手机等新型消费电子产品使得触摸屏开始风靡,触摸传感器提供方便的控制方式,几乎可用于控制任何类型的设备。&nbs...

  随着嵌入式Linux的迅速发展,由于其没有昂贵的版权费,完全开放源代码,可裁减性与可移植性,因此是开发嵌入式产品的...

  嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本...

  随着手机的更新换代,手机接口的演变史就随之上演,大家最熟悉的手机接口是哪些呢,小编印象深刻的就是那种....

  接口与外设在一个视频监控系统中,选择什么样的存储解决方案直接决定了整个系统的系统架构以及系统的性能和稳定程度,...

  高速ADC的进步,直接促使3G基站(如WCDMA ,TD-SCDMA,UMTS)接收(RX)和发送(....




上一篇:《挂机吧小精灵》新服“班吉拉C“01月28日开启   下一篇:硬核冒险射击游戏《Cecconoid》躲避陷阱消灭敌人 18183手机游戏