微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > System Verilog通过DPI使用C memory块

System Verilog通过DPI使用C memory块

时间:10-02 整理:3721RD 点击:

通过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型,这里虽然可以打印数据,但打印出的数据完全不对

在C端的memory是值这个memory需要在SV 与C都可读可写吗?
应该在SV端做一个memory1数组,输入到golden中,golden输出一个memory2复制到memory1就好了
SV数组与C端交换是需要转换的
SystemVerilogC(输入)C(输出)
open arry[]const svOpenArrayHandlesvOpenArrayHandle

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

网站地图

Top