微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 关于UVM使用DPI,能否从C语言中调用sequencer里面的task

关于UVM使用DPI,能否从C语言中调用sequencer里面的task

时间:10-02 整理:3721RD 点击:
UVM的一个seq中,需要访问读写寄存器,因为有一些数据需要运算,所以我想调用C语言来完成运算。有没有办法在seq中定义两个访问总线的task,比如reg32_write(addr,data),然后在C语言中进行调用这个task达到读写寄存器的目的呢?
我遇到的问题是export不能放在class内部,如果task定义在class外部就不能访问seq里面的内容了。
大家有没有好的解决办法。

用interface做中转站。

为什么不能访问?完全可以把你的数据输入DPI函数,然后再output结果

c要调用的task在uvm的seq中,questa运行时回报告错误,找不到相应的task。

能再具体谈谈思路么,基本上用起来了uvm品台,还不能够灵会贯通

检查一下编译选项,有没有正确include进去,DPI语法对了吗

应该不能调用task,因为task是占用仿真时间的,应该可以调用function..你试试...

c调回sv,访问总线,是需要占用仿真时间的,function真的可以么?

function不占用仿真时间,但是C语言执行过程也不占用仿真时间吧...因此C调用的话应该不能调用占用仿真时间的task

c语言能完成的sv一样可以完成,除非你有现成的c代码,不想重写。
可以在sv中调用c函数进行运算,为什么要c调用sv?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top