下表描述了 C 语言和 SystemVerilog 边界上允许的数据类型,以及 SystemVerilog 与 C 语言之间的双向数据类型映射。
SystemVerilog | C | 受支持 | 注释 |
---|---|---|---|
byte
|
char
|
支持 | 无 |
shortint
|
short int
|
支持 | 无 |
int
|
int
|
支持 | 无 |
longint
|
long long
|
支持 | 无 |
real
|
double
|
支持 | 无 |
shortreal
|
float
|
支持 | 无 |
chandle
|
void *
|
支持 | 无 |
string
|
const char*
|
支持 | 无 |
bit
|
unsigned char
|
支持 |
sv_0 和 sv_1
|
在 C 语言侧,可通过 svdpi.h 来使用 | |||
logic 和 reg
|
unsigned char
|
支持 |
sv_0 、sv_1 、sv_z 和 sv_x:
|
bit 阵列(打包) |
svBitVecVal
|
支持 | 在 svdpi.h 中已定义 |
logic/reg 的阵列(打包) |
svLogicVecVal
|
支持 | 在 svdpi.h 中已定义 |
enum
|
底层 enum 类型 |
支持 | 无 |
已打包的 struct (结构体)和 union (联合体) |
作为阵列来传递 | 支持 | 无 |
已解包的 bit 和 logic 阵列 |
作为阵列来传递 | 支持 | C 语言可以调用 SystemVerilog |
已解包的 struct
|
作为 struct 来传递 |
支持 | 无 |
已解包的 union
|
作为 struct 来传递 |
不支持 | 无 |
打开的阵列 |
svOpenArrayHandle
|
支持 | 无 |
要生成 C 语言头文件以提供有关 SystemVerilog 数据类型如何映射到 C 语言数据类型的详细信息:请将 -dpiheader
<file name>
参数传递给 xelab
。如需了解有关数据类型映射的其他详细信息,请参阅 SystemVerilog 的 IEEE 标准。