SystemVerilog 引人了直接编程接(DPI.Direct Programning Interface),它能更加简单地连接C、C++或者其他非Verilog编程语言。一旦你声明或者使用import语句“导人”了一个C子程序,你就可以像调用SystemVerilog中的子程序一样来调用它。此外C代码也可以调用SystemVerilog中的子程序。使用DPI可以很方便地连接C代码,这些C代码可以读取激励,包含一个参考模型或仅仅扩展SystemVerilog的功能。
传递简单数值
传递整数和实数类型
SysiemVerilog和C之间可以传递的最基本的数据类型就是int。它是一个双状态,32位的数据类型。
SystemVerilog代码调用C语言子程序factorial,使用SystemVerilog中的int类型将一个32位有符号整数值直接传递给了C的int类型变量。

import语句声明了SystemVerilog子程序factorial使用其他语言(如CC++)实现。修饰符“DPI-C”表明这是一个 DPI子程序,该语句的剩余部分描述了子程序的参数。
C语言factorial函数

导入(import)声明
import声明定义了C任务和函数的

本文介绍了SystemVerilog的DirectProgrammingInterface(DPI),它允许与C/C++代码无缝连接。DPI使得在SystemVerilog中调用C函数变得简单,反之亦然。通过导入声明,可以定义C子程序的原型,并指定参数方向和数据类型映射。文中还强调了数据类型兼容性的重要性,以及如何处理四状态变量和双状态变量的转换。此外,chandle数据类型用于存储C指针,且在使用DPI时需注意值的压缩和四状态数值的处理。
3095

被折叠的 条评论
为什么被折叠?



