卢骏 · 2020年06月15日

uvm中直接操作RTL信号

UVM提供了一种机制,可以直接对RTL中的信号进行操作,比如赋值,force,release。

在uvm_hdl.svh文件中。提供了相关的操作RTL信号函数。
1.png

文件中,定义了使用typedef定义了uvm_hdl_data_t类型,其实就是大小为1024bit的数据。

然后根据宏UVM_HDL_NO_DPI,是否定义,从而决定操作RTL信号函数的实现。一般情况下,我们是不会定义UVM_HDL_NO_DPI,这个宏。因此,UVM实现的各个操作RTL信号的函数,其实是通过DPI的方式,调用EDA工具提供的操作RTL信号的函数。

函数有以下:在各个函数之前,均省略了

import  "DPI-C"  context  function

image.png
image.png
另外,还有一个task,uvm_hdl_force_time,将指定的信号,force一段指定的时间,force完成后,读取信号的值,保存在value中。

内部调用了,上述提到的函数。
3.png

通过uvm提供的这些DPI,我们就可以在环境中,使用这些dpi,对RTL中信号的值,进行操作。

更多相关阅读

irun工具检测TB环境零延时无限循环
irun工具检测zero-delay组合逻辑
irun增量编译bind操作遇到的问题


原文首发于骏的世界博客
作者:卢骏
更多IC设计相关的文章请关注IC设计极术专栏,每日更新。

推荐阅读
关注数
10944
内容数
1211
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息