浅谈Verilog/System Verilog和C的几种交互方式

科技   2024-11-07 12:04   北京  
最近群里有人问我system Verilog和C怎么交互?在网上搜了一圈,发现相关资料比较少。所以,今天就给大家讲一讲system Verilog和C的交互。
第一种:Verilog通过PLI调用C函数。
PLI全称Program Language Interface,程序员可以通过PLI在verilog中调用C函数,这种访问是双向的。这些用户定义的系统任务和函数的名称必须以美元符号"$" 开头。大家用得比较多的PLI函数有$display,$finish等。
用户可以自定义PLI函数,下面是一个简单的PLI应用例子。
以下是一段C代码:
下面是一段调用C的verilog的代码:
第二种:System Verilog通过DPI和C进行交互。
为了更加简洁的连接C,system verilog 引入了DPI(Direct Programming Interface)。只要使用import声明和使用,导入一个C子程序,就可以像调用System Verilog中的子程序一样来调用它。相反,如果C想用system verilog里面的函数用export 声明即可。下面是一个简单的例子。
在System Verilog 里面调用C函数。
C代码和上面一样:
System Verilog的代码如下:
在C中调用System Verilog 函数。
System Verilog 的代码如下:
C代码如下:
第三种:System Verilog和C的交互方式是通过TLM1.0或者TLM2.0进行交互。
这种交互方式主要应用在System Verilog 和systemc 上。对于systemc一般人用得比较少,所以这类交互也比较少用。下面是一个简单的例子。
Systemc的编码,其中cnn_inst的接口in是tlm1/tlm2类型port。
System verilog的编码,cpu_inst.out 为tlm1/tlm2类型的port。
第四种:通过CPU执行C代码,从而实现verilog 和C的交互。
C代码通过工具链编译成CPU可以执行的汇编指令,再将汇编指令转成对应的指令代码,然后通过CPU读取指令代码产生激励,实现C代码所描述的功能。

以上是Verilog/System Verilog 和C的几种交互模式,小伙伴们学会了吗?

END

来源:处芯积律


版权归原作者所有,如有侵权,请联系删除


推荐阅读

KEIL MDK v6价格公布......

中国人竟然也能发明靠谱的编程语言!

C/C++大限将至,美国强硬要求2026年前全面剔除!


→点关注,不迷路←

嵌入式微处理器
关注嵌入式相关技术和资讯,你想知道的都在这里。
 最新文章