022天津同城交友网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 交友 人才 房产
查看: 1844|回复: 1
打印 上一主题 下一主题

System Verilog通过DPI使用C memory塊

[复制链接]
跳转到指定楼层
楼主
发表于 2020-4-7 18:46:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    文章简介:通过DPI接口,SV中能够获得Cside分配的一个内存块(由malloc



通过DPI接口,SV中能够获得C side分配的一个内存块(由malloc分配)的handle,但是如何在SV side访问这个内存块的内容呢?我尝试了两种方法,都不行,请了解的人指导下~多谢
方式一:
chandle memory;
import "DPI" function chandle golden();
memory = golden();
$display(memory[0]);  //编译报错,说不能这么操作chandle变量  

方式二:
int memory;
import "DPI" function int golden();
memory = golden();
$display(memory[0]);   //C side指针类型也是int型,这里虽然可以打印數据,但打印出的数据完全不对

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
回复

使用道具 举报

沙发
 楼主| 发表于 2020-4-7 18:46:11 | 只看该作者
在C端的memory是值这个memory需要在SV 与C都可读可写吗?
应该在SV端做一个memory1数组,输入到golden中,golden输出一个memory2  复制到memory1就好了
SV数组与C端交换是需要转换的
SystemVerilog        C(输入)                                        C(输出)
open arry[]        const svOpenArrayHandle        svOpenArrayHandle
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|联系我们|022天津同城交友网

GMT+8, 2024-5-6 22:15 , Processed in 1.312500 second(s), 16 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表