次の表に、C と SystemVerilog の境界で使用可能なデータ型と、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
|
svdpi.h を使用した場合 C でのみ使用可能 | |||
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
|
あり | なし |
SystemVerilog データ型の C データ型へのマップ方法を示す C ヘッダー ファイルを生成するには、-dpiheader
<file name>
パラメーターを xelab
に渡します。データ型マップに関するその他の詳細は、SystemVerilog の IEEE 規格を参照してください。