在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6603|回复: 12

[原创] 请问UVM的DPI是否可以调用动态链接库.so文件?

[复制链接]
发表于 2017-7-17 15:07:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请问UVM的DPI是否可以调用动态链接库.so文件?
目前我的平台可以调用c code或者生成的可执行文件,但是不能调用.so的动态链接库,请问有什么不同?能否给个例子?
发表于 2017-7-17 23:51:33 | 显示全部楼层
回复 1# atlandis

VCS User Guide, 搜索 Dynamic Loading of DPI Libraries at Runtime
发表于 2017-7-17 23:54:57 | 显示全部楼层
回复 1# atlandis


   此外,什么叫做UVM的DPI?uvm_dpi.cc里定义的那些函数?“调用可执行文件”又是什么意思?UVM testbench读取elf文件,然后DUT中处理器rtl/netlist执行该elf文件?
 楼主| 发表于 2017-7-18 12:21:54 | 显示全部楼层
回复 3# nativeda


我的表达不清楚额,我的意思是在UVM的验证平台,调用c 函数,采用DPI的方式。vcs编译的时候把对应的cpp文件加到list里面,仿真没有问题。
而调用可执行文件,就是说,将该cpp先通过gcc编译成可执行文件,然后在UVM里面调用,仿真也没有问题。

我是想问,如果将该cpp编译成.so的动态链接库,在UVM面调用,是否可以?
 楼主| 发表于 2017-7-18 17:24:17 | 显示全部楼层
回复 3# nativeda


   我用vcs 2014 就可以了,之前用vcs2013就识别不了,说是unknow format
发表于 2017-7-22 00:21:27 | 显示全部楼层
回复 4# atlandis



,将该cpp先通过gcc编译成可执行文件,然后在UVM里面调用,仿真也没有问题


    你是说把cpp 编译成elf,UVM里直接调用这个elf? 用 $system()调用的还是别的方式?能给个例子么?
发表于 2017-7-22 00:23:04 | 显示全部楼层
回复 5# atlandis

你调用so的那段uvm代码和完整error信息贴一下吧。此外vcs 文档关于动态链接库的说明没有帮助么?
发表于 2017-10-25 10:22:04 | 显示全部楼层
用gcc将c/c++文件编译成动态库xxx.so,testbench中import DPI,在run脚本里irun选项中加上xxx.so即可。
发表于 2022-2-17 08:54:07 | 显示全部楼层
遇到类似的问题,求楼主分享经验
发表于 2022-4-9 17:39:16 | 显示全部楼层
cpp文件要用extern C语法包一个C的接口才行,DPI-C 接口只识别C,你用C++的语法包接口肯定不识别
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 17:57 , Processed in 0.022401 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表