dpi-c的一个例子

dpi-c的一个例子,第1张

c程序文件名float_function.c

sv程序文件名dpi_test.sv

vcs执行命令

vcs -full64 -sverilog -R float_function.c dpi_test.sv

说明一下这个例子。

sv的rm中有时需要调用C的程序,但是sv和c的数据类型不是完全一一对应的。

sv中用到最多的数据类型是bit[31:0],bit[15:0]等bit向量型数据,但C中没有对应的数据类型。

现在在sv要实现一个功能,是2^x,其中x是浮点数,返回值也是浮点数,但是在sv里的浮点数是IEEE754里的数据格式,不是0.5,而是32‘h3f00_0000(以单精度为例),即验证环境里的数据是bit[31:0]类型数据根据IEEE754来表示浮点数猛历。

现在打算用c中的库函数pow,但是这个函数的输入输出类型是double,比如输入0.5,输出1.414214,如果直接将sv中的32‘h3f00_0000入C的pow程序,显然pow会把这个数当成很大的一个数。

如何实现转换呢?这里我通过采用C中的联合类型的数据结构,因为sv中德数据已经是32bit的数据形式了,在C中,int型数据是32bit的,所以我在C程序中实现一个intpowtwo的函数,输链世入输出都是int型,即32bit的数据,在测试程序中,在这个函数里的声明两个UFLOAT型变量,分别处理输枝唤搜入和输出数据的格式转换。从而得到了我想要的结果。

电脑sv独立客户端连不伍咐上是连接错误造成的,解决方法为:1、首先我们先下载好腔手纯SV客户端。2、然薯陆后解压缩到桌面,或者自己用来存放临时文件的文件夹下。右键以管理员方式运行。3、运行安装过程中正常不会有任何的错误,如果有提示直接点击确定即可。4、安装完成后我们的 控制面板-网络和internet-网络连接 里会多一张 SVN Adapter V1.0的网卡。是用于做虚拟隧道传输数据使用的。5、在最近添加的地方找到SV客户端的应用程序。6、SV客户端安装完成,我们可以直接运行连接了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12280536.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存