ScrollView 金融信贷 soap ssis Echojs 河南普通话报名 传智播客python oracle查询所有数据库 虚拟机重启命令 monkey安装 mysql连接 mysql插入 python编程工具 python获取输入 java开发环境 java编程环境 java获取当前月 java终止线程 java怎么编译 linux系统命令大全 刺激战场脚本 隐藏进程 hexworkshop js倒计时 联想小新键盘灯怎么开 maven项目打包 ps怎么画漫画 蜘蛛皮肤 极限防守图 服务器文件共享软件 globalscape jpg格式转换器 unlocker下载 qq空间自动点赞 繁简体 联想7450加粉清零 微信超额20万怎么办 cdr怎么导出图片 hdcp功能是什么 firework软件
当前位置: 首页 > 学习教程  > 编程语言

SystemVerilog学习(5)- DPI 直接编程接口

2020/12/5 10:07:15 文章标签:

DPIDPI简介DPI例程运行结果DPI简介 SystemVerilog引入了直接编程接口(DPI,Direct Programming Interface),它能更加简单地连接C、C或其他非Verilog编程语言。 DPI经常被用来调用C代码读取激励、包含一个参考模型或扩展SV的功能。…

DPI

  • DPI简介
  • DPI例程
  • 运行结果

DPI简介

SystemVerilog引入了直接编程接口(DPI,Direct Programming Interface),它能更加简单地连接C、C++或其他非Verilog编程语言。

DPI经常被用来调用C代码读取激励、包含一个参考模型或扩展SV的功能。

关于DPI的更多内容请参考绿皮书第12章。

DPI例程

exapmle.c

#include "stdio.h"

typedef unsigned char           uint8_t;
typedef unsigned short int      uint16_t;
typedef unsigned int            uint32_t;
typedef unsigned long long      uint64_t;

uint64_t add(uint32_t a, uint32_t b, uint32_t c)
{
    uint64_t p = a + b + c;
    return p;
}

test.sv

//dpi example

//import C library function
import "DPI-C" function real sin(input real r);

//import user-defined function
import "DPI-C" function longint unsigned add(int unsigned a, int unsigned b, int unsigned c);


module test;

const real PI = 3.1415926;

initial
begin
    for (int i=0; i<8; i++)
        $display ("sin(%.3f*PI) = %f", real'(i)/4, sin(i*PI/4));

    for (int i=0; i<8; i++)
        $display ("add(%0d, %0d, %0d) = %0d", i ,2 ,3, add(i, 2, 3));

end

endmodule

运行结果

先使用gcc命令将.c文件编译为.o文件,再使用vcs调用.o文件,可以避免使用UVM时调用报错。

gcc -c -m32 example.c
vcs -R -sverilog test.sv example.o

运行结果:

sin(0.000*PI) = 0.000000
sin(0.250*PI) = 0.707107
sin(0.500*PI) = 1.000000
sin(0.750*PI) = 0.707107
sin(1.000*PI) = 0.000000
sin(1.250*PI) = -0.707107
sin(1.500*PI) = -1.000000
sin(1.750*PI) = -0.707107
add(0, 2, 3) = 5
add(1, 2, 3) = 6
add(2, 2, 3) = 7
add(3, 2, 3) = 8
add(4, 2, 3) = 9
add(5, 2, 3) = 10
add(6, 2, 3) = 11
add(7, 2, 3) = 12


本文链接: http://www.dtmao.cc/news_show_450157.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?