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

新闻资讯   2023-06-07 12:05   61   0  
最近群里有人问我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

来源:处芯积律

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

推荐阅读
CAN总线比UART串口难吗?
分享一个开源串口神器,太强了!
国产芯片替代方案公司名单,一网打尽!

→点关注,不迷路←

文章引用微信公众号"嵌入式微处理器",如有侵权,请联系管理员删除!

博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。