When using a packed struct or union type, an equivalent SystemVerilog
type, svLogicVecVal
or svBitVecVal
, is created on the DPI C side.
Examples
- SystemVerilog type
-
typedef struct packed { int i; bit b; reg [3:0]r; logic [2:0] [4:8][9:1] l; } sType; sType c_obj; sType [3:2] c_obj1[5];
- C type
-
svLogicVecVal c_obj[SV_PACKED_DATA_NELEMS(172)]; svLogicVecVal c_obj1[5][SV_PACKED_DATA_NELEMS(344)];
Arrays, both packed and unpacked, are represented as arrays of
svLogicVecVal
or svBitVecVal
.