最近群里有人问我system Verilog和C怎么交互?在网上搜了一圈,发现相关资料比较少。所以,今天就给大家讲一讲system Verilog和C的交互。PLI全称Program Language Interface,程序员可以通过PLI在verilog中调用C函数,这种访问是双向的。这些用户定义的系统任务和函数的名称必须以美元符号"$" 开头。大家用得比较多的PLI函数有$display,$finish等。用户可以自定义PLI函数,下面是一个简单的PLI应用例子。第二种:System Verilog通过DPI和C进行交互。为了更加简洁的连接C,system verilog 引入了DPI(Direct Programming Interface)。只要使用import声明和使用,导入一个C子程序,就可以像调用System Verilog中的子程序一样来调用它。相反,如果C想用system verilog里面的函数用export 声明即可。下面是一个简单的例子。第三种: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的几种交互模式,小伙伴们学会了吗?
来源:处芯积律
版权归原作者所有,如有侵权,请联系删除。
▍推荐阅读
KEIL MDK v6价格公布......
中国人竟然也能发明靠谱的编程语言!
C/C++大限将至,美国强硬要求2026年前全面剔除!