0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

我的第二个UVM代码—连接interface

冬至子 来源:ExASIC 作者:陈锋 2023-06-15 10:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

testbench最最核心的部分就是发激励,今天用一个简单的示例来介绍如何在uvm里给RTL发激励。

第一步,先来定义interface,如下。

图片

interface是sv的一个关键字,级别等同于module,所以与module是并列的,一般单独写一个文件。

第二步,在testbench里实例化interface,并连接interface与RTL。

图片

既然interface与module同级,实例化时就不能忘记括号。由于大部分信息不需要引到interface端口上,所以看上起来有点不太像模块例化。

第三步,把interface实例化对象传递到uvm。

图片

在run_test()之前,通过uvm里的函数uvm_config_db::set()函数把interface存储到指定的存储路径。

第四步,在uvm里读取interface,并存储到virtual interface里。

图片

从名字上看,config_db是一种存储配置信息的数据库(类似全局变量,可以想象成一个关联数组),要正确存储和读取数据,需要类型和存储路径同时正确。v_intf有点像是一个指针,把读取的数据存到这个指针对应的存储空间里。

第五步,驱动v_intf的信号

图片

先初始化所有的信号。由于virtual interface指向了前面实例化的interface,给virtual interface赋值,等同于给真实的interface的信号赋值。

图片

随机发一些激励,这部分与纯sv的写法没有差别。

仿真结果

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    39

    文章

    7714

    浏览量

    170797
  • 仿真器
    +关注

    关注

    14

    文章

    1048

    浏览量

    86746
  • RTL
    RTL
    +关注

    关注

    1

    文章

    393

    浏览量

    62379
  • UVM
    UVM
    +关注

    关注

    0

    文章

    183

    浏览量

    19938
  • Module
    +关注

    关注

    0

    文章

    74

    浏览量

    13478
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    华为深耕海外版图 将在日本设立第二个研发中心

    据日经新闻周五报道,中国电信(微博)设备制造商华为公司将会在日本东京设立研发中心,这也是华为在海外设立的第二个研发中心。
    发表于 11-26 11:54 1040次阅读

    邵贝贝书中第二个例子的问题

    买了邵贝贝的uc/OSII书,第二版。在borland c++里跑第二个例子,生成exe文件后,发现显示不对。搞不懂,为什么发生这种情
    发表于 08-08 09:03

    如何使用ESP32并添加第二个无线电模块?

    需要能够同时连接到 Wi-Fi 和蓝牙。想使用 ESP32 并添加第二个无线电模块。的想法是 ESP 32 将处理 Wi-Fi
    发表于 04-12 07:37

    如何为SPIFFS使用第二个SPI闪存芯片?

    正在寻找帮助设置第二个 spi 闪存芯片的链接。 这第二个芯片将在其他 spi 端口之一上。 第二个芯片不会与引导存储器芯片并联。
    发表于 05-30 07:50

    电脑第二个硬盘怎么装

    硬盘里面的东西越来越多,快装不下了,加装硬盘不是更好,今天小编就来介绍如何给电脑加装第二个硬盘的方法。
    的头像 发表于 03-12 15:08 4w次阅读

    谷歌发布AndroidQ的第二个测试版 继续对折叠屏适应

    今天,谷歌悄无声息的发布了Android Q(也就是安卓10.0)的第二个测试版,主要来说是修正上一测试版的Bug,同时还继续对折叠屏适应。
    的头像 发表于 04-04 09:48 2597次阅读

    苹果macOS Catalina 10.15.1第二个Beta今天发布

    苹果今日发布了macOS Catalina 10.15.1第二个开发者测试版,有开发者资格的用户现已可下载安装。
    的头像 发表于 10-18 15:12 3525次阅读

    鸿蒙没有走别人的路 鸿蒙也不是第二个安卓

    有不少人认为:鸿蒙是第二个安卓。如果它不是第二个安卓,那么就是山寨的安卓。
    的头像 发表于 09-19 10:58 2662次阅读
    鸿蒙没有走别人的路 鸿蒙也不是<b class='flag-5'>第二个</b>安卓

    Zoom营收增幅可能连续第二个季度超过300%

     据报道,Zoom 周一有望再次公布优异业绩,营收增幅可能连续第二个季度超过 300%。
    的头像 发表于 11-30 09:11 1816次阅读

    ASM宣布在新加坡开设第二个车间

    3月30日,据国外媒体报道,ASM国际表示,由于在新加坡的扩张正值近期全球芯片短缺之际,因此ASM国际在新加坡开设了第二个制造车间加大对芯片的量产。
    的头像 发表于 03-30 15:49 2467次阅读

    开发ATtiny微处理器编程器的第二个版本

    电子发烧友网站提供《开发ATtiny微处理器编程器的第二个版本.zip》资料免费下载
    发表于 07-25 11:15 0次下载
    开发ATtiny微处理器编程器的<b class='flag-5'>第二个</b>版本

    电阻串联是否影响第二个的电压电流

    电阻串联是否影响第二个的电压电流  电阻串联是指将两或多个电阻器连接在一起,其中每个电阻器的末端与相邻电阻器的起始端相连。在电路中,串联电阻的总电阻等于每个电阻的总和。接下来,让
    的头像 发表于 09-01 16:49 4180次阅读

    vlookup怎么把第二个重复值显示

    如何使用VLOOKUP来显示第二个重复值。 要了解如何显示第二个重复值,首先需要了解VLOOKUP函数的基本用法。VLOOKUP函数包含四参数,分别是查找值、查找范围、返回列号和匹配类型。查找值是要在数据表中查找的值,查找范围
    的头像 发表于 12-03 10:24 5349次阅读

    如何加装第二个路由器

    加装第二个路由器可以扩展你的无线网络覆盖范围,提高网络速度,或者为特定区域提供更稳定的连接。以下是加装第二个路由器的步骤,以及一些注意事项: 1. 选择合适的路由器 在选择第二个路由器
    的头像 发表于 10-18 09:19 3635次阅读

    DIY 流体模拟吊坠():第二个、第三、更多的吊坠......

    第二个吊坠之前,想先修改一下PCB,把复位电路、唤醒极管和硬件监控芯片都集成进去。 与 TPS7A02 同系列的 TPS3839 电源电压监控芯片,同样有着一些令人惊艳的特性,并且采用了同样微小的封装。它 150nA 的供
    的头像 发表于 09-17 23:17 1878次阅读
    DIY 流体模拟吊坠(<b class='flag-5'>二</b>):<b class='flag-5'>第二个</b>、第三<b class='flag-5'>个</b>、更多的吊坠......