Test: Add unpacked array of 1 bit wire to DPI tests (#2694)

This commit is contained in:
Yutetsu TAKATSUKASA 2020-12-13 07:28:37 +09:00 committed by GitHub
parent 81ce2cbc05
commit 28d139149a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 1236 additions and 793 deletions

View File

@ -99,6 +99,17 @@ template <typename T> bool compare(const T& act, const T& exp) {
}
}
bool compare_scalar(const svScalar v0, sv_longint_unsigned_t val) {
const bool act_bit = v0 == sv_1;
const bool exp_bit = val & 1;
if (act_bit != exp_bit) {
std::cout << "Mismatch at bit:" << 0 << " exp:" << exp_bit << " act:" << act_bit;
return false;
}
if (VERBOSE_MESSAGE) { std::cout << "OK " << val << " as expected " << std::endl; }
return true;
}
bool compare(const svLogicVecVal* v0, sv_longint_unsigned_t val, int bitwidth) {
for (int i = 0; i < bitwidth; ++i) {
const bool act_bit = svGetBitselLogic(v0, i);
@ -165,6 +176,39 @@ template <typename T> bool update_3d(T* v) {
return true;
}
bool update_0d_scalar(svScalar* v) {
if (!compare_scalar(v[0], sv_0)) return false;
v[0] = sv_1;
return true;
}
bool update_1d_scalar(svScalar* v) {
if (!compare_scalar(v[0], sv_1)) return false;
v[0] = sv_0;
if (!compare_scalar(v[1], sv_0)) return false;
v[1] = sv_1;
return true;
}
bool update_2d_scalar(svScalar* v) {
if (!compare_scalar(v[(0 * 2) + 1], sv_1)) return false;
v[(0 * 2) + 1] = sv_0;
if (!compare_scalar(v[(1 * 2) + 1], sv_0)) return false;
v[(1 * 2) + 1] = sv_1;
if (!compare_scalar(v[(2 * 2) + 1], sv_1)) return false;
v[(2 * 2) + 1] = sv_0;
return true;
}
bool update_3d_scalar(svScalar* v) {
if (!compare_scalar(v[((0 * 3) + 0) * 2 + 0], sv_0)) return false;
v[(0 * 3 + 0) * 2 + 0] = sv_1;
if (!compare_scalar(v[((1 * 3) + 0) * 2 + 0], sv_1)) return false;
v[(1 * 3 + 0) * 2 + 0] = sv_0;
if (!compare_scalar(v[((2 * 3) + 0) * 2 + 0], sv_0)) return false;
v[(2 * 3 + 0) * 2 + 0] = sv_1;
if (!compare_scalar(v[((3 * 3) + 0) * 2 + 0], sv_1)) return false;
v[(3 * 3 + 0) * 2 + 0] = sv_0;
return true;
}
template <typename T> bool update_0d(T* v, int bitwidth) {
if (!compare(v, 42, bitwidth)) return false;
set_uint(v, 43, bitwidth);
@ -481,6 +525,11 @@ void i_string_3d(const char** v) {
v[(3 * 3 + 0) * 2 + 0] = s3;
}
void i_bit1_0d(svBit* v) { update_0d_scalar(v); }
void i_bit1_1d(svBit* v) { update_1d_scalar(v); }
void i_bit1_2d(svBit* v) { update_2d_scalar(v); }
void i_bit1_3d(svBit* v) { update_3d_scalar(v); }
void i_bit7_0d(svBitVecVal* v) { update_0d(v, 7); }
void i_bit7_1d(svBitVecVal* v) { update_1d(v, 7); }
void i_bit7_2d(svBitVecVal* v) { update_2d(v, 7); }
@ -491,6 +540,11 @@ void i_bit121_1d(svBitVecVal* v) { update_1d(v, 121); }
void i_bit121_2d(svBitVecVal* v) { update_2d(v, 121); }
void i_bit121_3d(svBitVecVal* v) { update_3d(v, 121); }
void i_logic1_0d(svLogic* v) { update_0d_scalar(v); }
void i_logic1_1d(svLogic* v) { update_1d_scalar(v); }
void i_logic1_2d(svLogic* v) { update_2d_scalar(v); }
void i_logic1_3d(svLogic* v) { update_3d_scalar(v); }
void i_logic7_0d(svLogicVecVal* v) { update_0d(v, 7); }
void i_logic7_1d(svLogicVecVal* v) { update_1d(v, 7); }
void i_logic7_2d(svLogicVecVal* v) { update_2d(v, 7); }

View File

@ -17,6 +17,7 @@
`endif
`ifdef MS
`define NO_BITS_TO_SCALAR
`endif
`ifdef VERILATOR
@ -24,10 +25,15 @@
`define NO_UNPACK_STRUCT
//%Error-TASKNSVAR: Unsupported: Function/task input argument is not simple variable
`define NO_INOUT_COMPLEX_TYPE
`else
`endif
`define CHECK_VAL(act, exp) if ((act) == (exp)) begin \
`ifdef NO_BITS_TO_SCALAR
`define ARE_SAME(act, exp) ($bits((act)) == 1 ? (act) == ((exp) & 1) : (act) == (exp))
`else
`define ARE_SAME(act, exp) ((act) == (($bits(act))'(exp)))
`endif
`define CHECK_VAL(act, exp) if (`ARE_SAME(act, exp)) begin \
if (ENABLE_VERBOSE_MESSAGE)$display(`"act`", ":", (act), " as expected"); \
end else begin \
$display("Mismatch %s expected:%d actual:%d at %d", `"act`", int'(exp), int'(act), `__LINE__); \
@ -90,14 +96,25 @@
`CHECK_DOUBLE_VAL(val[2][0][0], 51.0); \
`CHECK_DOUBLE_VAL(val[3][0][0], 52.0)
`define SET_VALUE_0D(val) val = 42
`define SET_VALUE_1D(val) val[0] = 43; val[1] = 44
`define SET_VALUE_2D(val) val[0][1] = 45; val[1][1] = 46; val[2][1] = 47
`define SET_VALUE_0D(val) \
/*verilator lint_off WIDTH */ \
val = 42
/*verilator lint_on WIDTH */
`define SET_VALUE_1D(val) \
/*verilator lint_off WIDTH */ \
val[0] = 43; val[1] = 44 \
/*verilator lint_on WIDTH */
`define SET_VALUE_2D(val) \
/*verilator lint_off WIDTH */ \
val[0][1] = 45; val[1][1] = 46; val[2][1] = 47 \
/*verilator lint_on WIDTH */
`define SET_VALUES(val) \
/*verilator lint_off WIDTH */ \
val[3][2][1] = 42; \
val[2][1][0] = 43; val[2][1][1] = 44; \
val[1][0][1] = 45; val[1][1][1] = 46; val[1][2][1] = 47; \
val[0][0][0] = 48; val[1][0][0] = 49; val[2][0][0] = 50; val[3][0][0] = 51
val[0][0][0] = 48; val[1][0][0] = 49; val[2][0][0] = 50; val[3][0][0] = 51 \
/*verilator lint_on WIDTH */
module t;
@ -143,10 +160,14 @@ module t;
typedef chandle_t chandle_array_t[4][3][2];
typedef string string_t;
typedef string_t string_array_t[4][3][2];
typedef bit bit1_t;
typedef bit1_t bit1_array_t[4][3][2];
typedef bit [6:0] bit7_t;
typedef bit7_t bit7_array_t[4][3][2];
typedef bit [120:0] bit121_t;
typedef bit121_t bit121_array_t[4][3][2];
typedef logic logic1_t;
typedef logic1_t logic1_array_t[4][3][2];
typedef logic [6:0] logic7_t;
typedef logic7_t logic7_array_t[4][3][2];
typedef logic [120:0] logic121_t;
@ -246,6 +267,11 @@ module t;
import "DPI-C" function void i_string_2d(inout string val[3][2]);
import "DPI-C" function void i_string_3d(inout string_array_t val);
import "DPI-C" function void i_bit1_0d(inout bit val);
import "DPI-C" function void i_bit1_1d(inout bit val[2]);
import "DPI-C" function void i_bit1_2d(inout bit val[3][2]);
import "DPI-C" function void i_bit1_3d(inout bit1_array_t val);
import "DPI-C" function void i_bit7_0d(inout bit[6:0] val);
import "DPI-C" function void i_bit7_1d(inout bit[6:0] val[2]);
import "DPI-C" function void i_bit7_2d(inout bit[6:0] val[3][2]);
@ -256,6 +282,11 @@ module t;
import "DPI-C" function void i_bit121_2d(inout bit[120:0] val[3][2]);
import "DPI-C" function void i_bit121_3d(inout bit121_array_t val);
import "DPI-C" function void i_logic1_0d(inout logic val);
import "DPI-C" function void i_logic1_1d(inout logic val[2]);
import "DPI-C" function void i_logic1_2d(inout logic val[3][2]);
import "DPI-C" function void i_logic1_3d(inout logic1_array_t val);
import "DPI-C" function void i_logic7_0d(inout logic[6:0] val);
import "DPI-C" function void i_logic7_1d(inout logic[6:0] val[2]);
import "DPI-C" function void i_logic7_2d(inout logic[6:0] val[3][2]);
@ -357,6 +388,11 @@ module t;
export "DPI-C" function e_string_2d;
export "DPI-C" function e_string_3d;
export "DPI-C" function e_bit1_0d;
export "DPI-C" function e_bit1_1d;
export "DPI-C" function e_bit1_2d;
export "DPI-C" function e_bit1_3d;
export "DPI-C" function e_bit7_0d;
export "DPI-C" function e_bit7_1d;
export "DPI-C" function e_bit7_2d;
@ -367,6 +403,11 @@ module t;
export "DPI-C" function e_bit121_2d;
export "DPI-C" function e_bit121_3d;
export "DPI-C" function e_logic1_0d;
export "DPI-C" function e_logic1_1d;
export "DPI-C" function e_logic1_2d;
export "DPI-C" function e_logic1_3d;
export "DPI-C" function e_logic7_0d;
export "DPI-C" function e_logic7_1d;
export "DPI-C" function e_logic7_2d;
@ -521,6 +562,11 @@ module t;
val[3][0][0] = "52";
endfunction
function void e_bit1_0d(inout bit val); `UPDATE_0D(val); endfunction
function void e_bit1_1d(inout bit val[2]); `UPDATE_1D(val); endfunction
function void e_bit1_2d(inout bit val[3][2]); `UPDATE_2D(val); endfunction
function void e_bit1_3d(inout bit1_array_t val); `UPDATE_3D(val); endfunction
function void e_bit7_0d(inout bit[6:0] val); `UPDATE_0D(val); endfunction
function void e_bit7_1d(inout bit[6:0] val[2]); `UPDATE_1D(val); endfunction
function void e_bit7_2d(inout bit[6:0] val[3][2]); `UPDATE_2D(val); endfunction
@ -531,6 +577,11 @@ module t;
function void e_bit121_2d(inout bit[120:0] val[3][2]); `UPDATE_2D(val); endfunction
function void e_bit121_3d(inout bit121_array_t val); `UPDATE_3D(val); endfunction
function void e_logic1_0d(inout logic val); `UPDATE_0D(val); endfunction
function void e_logic1_1d(inout logic val[2]); `UPDATE_1D(val); endfunction
function void e_logic1_2d(inout logic val[3][2]); `UPDATE_2D(val); endfunction
function void e_logic1_3d(inout logic1_array_t val); `UPDATE_3D(val); endfunction
function void e_logic7_0d(inout logic[6:0] val); `UPDATE_0D(val); endfunction
function void e_logic7_1d(inout logic[6:0] val[2]); `UPDATE_1D(val); endfunction
function void e_logic7_2d(inout logic[6:0] val[3][2]); `UPDATE_2D(val); endfunction
@ -647,6 +698,11 @@ module t;
string_t string_array_2d[3][2];
string_array_t string_array;
bit1_t bit1_array_0d;
bit1_t bit1_array_1d[2];
bit1_t bit1_array_2d[3][2];
bit1_array_t bit1_array;
bit7_t bit7_array_0d;
bit7_t bit7_array_1d[2];
bit7_t bit7_array_2d[3][2];
@ -657,6 +713,11 @@ module t;
bit121_t bit121_array_2d[3][2];
bit121_array_t bit121_array;
logic1_t logic1_array_0d;
logic1_t logic1_array_1d[2];
logic1_t logic1_array_2d[3][2];
logic1_array_t logic1_array;
logic7_t logic7_array_0d;
logic7_t logic7_array_1d[2];
logic7_t logic7_array_2d[3][2];
@ -1019,6 +1080,27 @@ module t;
`CHECK_STRING_VAL(string_array[2][0][0], "51");
`CHECK_STRING_VAL(string_array[3][0][0], "52");
`SET_VALUES(bit1_array);
`SET_VALUE_0D(bit1_array_0d);
`SET_VALUE_1D(bit1_array_1d);
`SET_VALUE_2D(bit1_array_2d);
`ifndef NO_INOUT_COMPLEX_TYPE
i_bit1_0d(bit1_array[3][2][1]);
`CHECK_0D(bit1_array[3][2][1]);
i_bit1_1d(bit1_array[2][1]);
`CHECK_1D(bit1_array[2][1]);
i_bit1_2d(bit1_array[1]);
`CHECK_2D(bit1_array[1]);
`endif
i_bit1_0d(bit1_array_0d);
`CHECK_0D(bit1_array_0d);
i_bit1_1d(bit1_array_1d);
`CHECK_1D(bit1_array_1d);
i_bit1_2d(bit1_array_2d);
`CHECK_2D(bit1_array_2d);
i_bit1_3d(bit1_array);
`CHECK_3D(bit1_array);
`SET_VALUES(bit7_array);
`SET_VALUE_0D(bit7_array_0d);
`SET_VALUE_1D(bit7_array_1d);
@ -1061,6 +1143,27 @@ module t;
i_bit121_3d(bit121_array);
`CHECK_3D(bit121_array);
`SET_VALUES(logic1_array);
`SET_VALUE_0D(logic1_array_0d);
`SET_VALUE_1D(logic1_array_1d);
`SET_VALUE_2D(logic1_array_2d);
`ifndef NO_INOUT_COMPLEX_TYPE
i_logic1_0d(logic1_array[3][2][1]);
`CHECK_0D(logic1_array[3][2][1]);
i_logic1_1d(logic1_array[2][1]);
`CHECK_1D(logic1_array[2][1]);
i_logic1_2d(logic1_array[1]);
`CHECK_2D(logic1_array[1]);
`endif
i_logic1_0d(logic1_array_0d);
`CHECK_0D(logic1_array_0d);
i_logic1_1d(logic1_array_1d);
`CHECK_1D(logic1_array_1d);
i_logic1_2d(logic1_array_2d);
`CHECK_2D(logic1_array_2d);
i_logic1_3d(logic1_array);
`CHECK_3D(logic1_array);
`SET_VALUES(logic7_array);
`SET_VALUE_0D(logic7_array_0d);
`SET_VALUE_1D(logic7_array_1d);

View File

@ -13,299 +13,331 @@ extern "C" {
// DPI EXPORTS
// DPI export at t/t_dpi_arg_inout_unpack.v:529:18
// DPI export at t/t_dpi_arg_inout_unpack.v:575:18
extern void e_bit121_0d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:530:18
// DPI export at t/t_dpi_arg_inout_unpack.v:576:18
extern void e_bit121_1d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:531:18
// DPI export at t/t_dpi_arg_inout_unpack.v:577:18
extern void e_bit121_2d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:532:18
// DPI export at t/t_dpi_arg_inout_unpack.v:578:18
extern void e_bit121_3d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:524:18
// DPI export at t/t_dpi_arg_inout_unpack.v:565:18
extern void e_bit1_0d(svBit* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:566:18
extern void e_bit1_1d(svBit* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:567:18
extern void e_bit1_2d(svBit* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:568:18
extern void e_bit1_3d(svBit* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:570:18
extern void e_bit7_0d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:525:18
// DPI export at t/t_dpi_arg_inout_unpack.v:571:18
extern void e_bit7_1d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:526:18
// DPI export at t/t_dpi_arg_inout_unpack.v:572:18
extern void e_bit7_2d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:527:18
// DPI export at t/t_dpi_arg_inout_unpack.v:573:18
extern void e_bit7_3d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:395:18
extern void e_byte_0d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:396:18
extern void e_byte_1d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:397:18
extern void e_byte_2d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:398:18
extern void e_byte_3d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:400:18
extern void e_byte_unsigned_0d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:401:18
extern void e_byte_unsigned_1d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:402:18
extern void e_byte_unsigned_2d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:403:18
extern void e_byte_unsigned_3d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:465:18
extern void e_chandle_0d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:469:18
extern void e_chandle_1d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:475:18
extern void e_chandle_2d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:483:18
extern void e_chandle_3d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:416:18
extern void e_int_0d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:417:18
extern void e_int_1d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:418:18
extern void e_int_2d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:419:18
extern void e_int_3d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:421:18
extern void e_int_unsigned_0d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:422:18
extern void e_int_unsigned_1d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:423:18
extern void e_int_unsigned_2d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:424:18
extern void e_int_unsigned_3d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:446:18
extern void e_integer_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:447:18
extern void e_integer_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:448:18
extern void e_integer_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:449:18
extern void e_integer_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:539:18
extern void e_logic121_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:540:18
extern void e_logic121_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:541:18
extern void e_logic121_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:542:18
extern void e_logic121_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:534:18
extern void e_logic7_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:535:18
extern void e_logic7_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:536:18
extern void e_logic7_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:537:18
extern void e_logic7_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:428:18
extern void e_longint_0d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:429:18
extern void e_longint_1d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:430:18
extern void e_longint_2d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:431:18
extern void e_longint_3d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:433:18
extern void e_longint_unsigned_0d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:434:18
extern void e_longint_unsigned_1d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:435:18
extern void e_longint_unsigned_2d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:436:18
extern void e_longint_unsigned_3d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:544:18
extern void e_pack_struct_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:545:18
extern void e_pack_struct_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:546:18
extern void e_pack_struct_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:547:18
extern void e_pack_struct_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:452:18
extern void e_real_0d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:453:18
extern void e_real_1d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:454:18
extern void e_real_2d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:455:18
extern void e_real_3d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:405:18
extern void e_shortint_0d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:406:18
extern void e_shortint_1d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:407:18
extern void e_shortint_2d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:408:18
extern void e_shortint_3d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:410:18
extern void e_shortint_unsigned_0d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:411:18
extern void e_shortint_unsigned_1d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:412:18
extern void e_shortint_unsigned_2d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:413:18
extern void e_shortint_unsigned_3d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:495:18
extern void e_string_0d(const char** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:499:18
extern void e_string_1d(const char** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:505:18
extern void e_string_2d(const char** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:513:18
extern void e_string_3d(const char** val);
extern void e_byte_0d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:437:18
extern void e_byte_1d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:438:18
extern void e_byte_2d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:439:18
extern void e_time_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:440:18
extern void e_time_1d(svLogicVecVal* val);
extern void e_byte_3d(char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:441:18
extern void e_time_2d(svLogicVecVal* val);
extern void e_byte_unsigned_0d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:442:18
extern void e_byte_unsigned_1d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:443:18
extern void e_byte_unsigned_2d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:444:18
extern void e_byte_unsigned_3d(unsigned char* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:506:18
extern void e_chandle_0d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:510:18
extern void e_chandle_1d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:516:18
extern void e_chandle_2d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:524:18
extern void e_chandle_3d(void** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:457:18
extern void e_int_0d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:458:18
extern void e_int_1d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:459:18
extern void e_int_2d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:460:18
extern void e_int_3d(int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:462:18
extern void e_int_unsigned_0d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:463:18
extern void e_int_unsigned_1d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:464:18
extern void e_int_unsigned_2d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:465:18
extern void e_int_unsigned_3d(unsigned int* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:487:18
extern void e_integer_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:488:18
extern void e_integer_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:489:18
extern void e_integer_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:490:18
extern void e_integer_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:590:18
extern void e_logic121_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:591:18
extern void e_logic121_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:592:18
extern void e_logic121_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:593:18
extern void e_logic121_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:580:18
extern void e_logic1_0d(svLogic* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:581:18
extern void e_logic1_1d(svLogic* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:582:18
extern void e_logic1_2d(svLogic* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:583:18
extern void e_logic1_3d(svLogic* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:585:18
extern void e_logic7_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:586:18
extern void e_logic7_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:587:18
extern void e_logic7_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:588:18
extern void e_logic7_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:469:18
extern void e_longint_0d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:470:18
extern void e_longint_1d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:471:18
extern void e_longint_2d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:472:18
extern void e_longint_3d(long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:474:18
extern void e_longint_unsigned_0d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:475:18
extern void e_longint_unsigned_1d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:476:18
extern void e_longint_unsigned_2d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:477:18
extern void e_longint_unsigned_3d(unsigned long long* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:595:18
extern void e_pack_struct_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:596:18
extern void e_pack_struct_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:597:18
extern void e_pack_struct_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:598:18
extern void e_pack_struct_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:493:18
extern void e_real_0d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:494:18
extern void e_real_1d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:495:18
extern void e_real_2d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:496:18
extern void e_real_3d(double* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:446:18
extern void e_shortint_0d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:447:18
extern void e_shortint_1d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:448:18
extern void e_shortint_2d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:449:18
extern void e_shortint_3d(short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:451:18
extern void e_shortint_unsigned_0d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:452:18
extern void e_shortint_unsigned_1d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:453:18
extern void e_shortint_unsigned_2d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:454:18
extern void e_shortint_unsigned_3d(unsigned short* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:536:18
extern void e_string_0d(const char** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:540:18
extern void e_string_1d(const char** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:546:18
extern void e_string_2d(const char** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:554:18
extern void e_string_3d(const char** val);
// DPI export at t/t_dpi_arg_inout_unpack.v:480:18
extern void e_time_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:481:18
extern void e_time_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:482:18
extern void e_time_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_inout_unpack.v:483:18
extern void e_time_3d(svLogicVecVal* val);
// DPI IMPORTS
// DPI import at t/t_dpi_arg_inout_unpack.v:584:41
// DPI import at t/t_dpi_arg_inout_unpack.v:635:41
extern void check_exports();
// DPI import at t/t_dpi_arg_inout_unpack.v:171:36
// DPI import at t/t_dpi_arg_inout_unpack.v:192:36
extern void* get_non_null();
// DPI import at t/t_dpi_arg_inout_unpack.v:254:33
// DPI import at t/t_dpi_arg_inout_unpack.v:280:33
extern void i_bit121_0d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:255:33
// DPI import at t/t_dpi_arg_inout_unpack.v:281:33
extern void i_bit121_1d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:256:33
// DPI import at t/t_dpi_arg_inout_unpack.v:282:33
extern void i_bit121_2d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:257:33
// DPI import at t/t_dpi_arg_inout_unpack.v:283:33
extern void i_bit121_3d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:249:33
extern void i_bit7_0d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:250:33
extern void i_bit7_1d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:251:33
extern void i_bit7_2d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:252:33
extern void i_bit7_3d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:173:33
extern void i_byte_0d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:174:33
extern void i_byte_1d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:175:33
extern void i_byte_2d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:176:33
extern void i_byte_3d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:178:33
extern void i_byte_unsigned_0d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:179:33
extern void i_byte_unsigned_1d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:180:33
extern void i_byte_unsigned_2d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:181:33
extern void i_byte_unsigned_3d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:239:33
extern void i_chandle_0d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:240:33
extern void i_chandle_1d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:241:33
extern void i_chandle_2d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:242:33
extern void i_chandle_3d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:193:33
extern void i_int_0d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:194:33
extern void i_int_1d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:195:33
extern void i_int_2d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:196:33
extern void i_int_3d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:198:33
extern void i_int_unsigned_0d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:199:33
extern void i_int_unsigned_1d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:200:33
extern void i_int_unsigned_2d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:201:33
extern void i_int_unsigned_3d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:221:33
extern void i_integer_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:222:33
extern void i_integer_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:223:33
extern void i_integer_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:224:33
extern void i_integer_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:264:33
extern void i_logic121_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:265:33
extern void i_logic121_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:266:33
extern void i_logic121_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:267:33
extern void i_logic121_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:259:33
extern void i_logic7_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:260:33
extern void i_logic7_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:261:33
extern void i_logic7_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:262:33
extern void i_logic7_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:203:33
extern void i_longint_0d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:204:33
extern void i_longint_1d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:205:33
extern void i_longint_2d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:206:33
extern void i_longint_3d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:208:33
extern void i_longint_unsigned_0d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:209:33
extern void i_longint_unsigned_1d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:210:33
extern void i_longint_unsigned_2d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:211:33
extern void i_longint_unsigned_3d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:269:33
extern void i_pack_struct_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:270:33
extern void i_pack_struct_1d(svLogicVecVal* val);
extern void i_bit1_0d(svBit* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:271:33
extern void i_pack_struct_2d(svLogicVecVal* val);
extern void i_bit1_1d(svBit* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:272:33
extern void i_pack_struct_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:227:33
extern void i_real_0d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:228:33
extern void i_real_1d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:229:33
extern void i_real_2d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:230:33
extern void i_real_3d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:183:33
extern void i_shortint_0d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:184:33
extern void i_shortint_1d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:185:33
extern void i_shortint_2d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:186:33
extern void i_shortint_3d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:188:33
extern void i_shortint_unsigned_0d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:189:33
extern void i_shortint_unsigned_1d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:190:33
extern void i_shortint_unsigned_2d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:191:33
extern void i_shortint_unsigned_3d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:244:33
extern void i_string_0d(const char** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:245:33
extern void i_string_1d(const char** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:246:33
extern void i_string_2d(const char** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:247:33
extern void i_string_3d(const char** val);
extern void i_bit1_2d(svBit* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:273:33
extern void i_bit1_3d(svBit* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:275:33
extern void i_bit7_0d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:276:33
extern void i_bit7_1d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:277:33
extern void i_bit7_2d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:278:33
extern void i_bit7_3d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:194:33
extern void i_byte_0d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:195:33
extern void i_byte_1d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:196:33
extern void i_byte_2d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:197:33
extern void i_byte_3d(char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:199:33
extern void i_byte_unsigned_0d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:200:33
extern void i_byte_unsigned_1d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:201:33
extern void i_byte_unsigned_2d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:202:33
extern void i_byte_unsigned_3d(unsigned char* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:260:33
extern void i_chandle_0d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:261:33
extern void i_chandle_1d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:262:33
extern void i_chandle_2d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:263:33
extern void i_chandle_3d(void** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:214:33
extern void i_time_0d(svLogicVecVal* val);
extern void i_int_0d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:215:33
extern void i_time_1d(svLogicVecVal* val);
extern void i_int_1d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:216:33
extern void i_time_2d(svLogicVecVal* val);
extern void i_int_2d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:217:33
extern void i_int_3d(int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:219:33
extern void i_int_unsigned_0d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:220:33
extern void i_int_unsigned_1d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:221:33
extern void i_int_unsigned_2d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:222:33
extern void i_int_unsigned_3d(unsigned int* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:242:33
extern void i_integer_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:243:33
extern void i_integer_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:244:33
extern void i_integer_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:245:33
extern void i_integer_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:295:33
extern void i_logic121_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:296:33
extern void i_logic121_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:297:33
extern void i_logic121_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:298:33
extern void i_logic121_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:285:33
extern void i_logic1_0d(svLogic* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:286:33
extern void i_logic1_1d(svLogic* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:287:33
extern void i_logic1_2d(svLogic* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:288:33
extern void i_logic1_3d(svLogic* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:290:33
extern void i_logic7_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:291:33
extern void i_logic7_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:292:33
extern void i_logic7_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:293:33
extern void i_logic7_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:224:33
extern void i_longint_0d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:225:33
extern void i_longint_1d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:226:33
extern void i_longint_2d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:227:33
extern void i_longint_3d(long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:229:33
extern void i_longint_unsigned_0d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:230:33
extern void i_longint_unsigned_1d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:231:33
extern void i_longint_unsigned_2d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:232:33
extern void i_longint_unsigned_3d(unsigned long long* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:300:33
extern void i_pack_struct_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:301:33
extern void i_pack_struct_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:302:33
extern void i_pack_struct_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:303:33
extern void i_pack_struct_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:248:33
extern void i_real_0d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:249:33
extern void i_real_1d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:250:33
extern void i_real_2d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:251:33
extern void i_real_3d(double* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:204:33
extern void i_shortint_0d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:205:33
extern void i_shortint_1d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:206:33
extern void i_shortint_2d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:207:33
extern void i_shortint_3d(short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:209:33
extern void i_shortint_unsigned_0d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:210:33
extern void i_shortint_unsigned_1d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:211:33
extern void i_shortint_unsigned_2d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:212:33
extern void i_shortint_unsigned_3d(unsigned short* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:265:33
extern void i_string_0d(const char** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:266:33
extern void i_string_1d(const char** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:267:33
extern void i_string_2d(const char** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:268:33
extern void i_string_3d(const char** val);
// DPI import at t/t_dpi_arg_inout_unpack.v:235:33
extern void i_time_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:236:33
extern void i_time_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:237:33
extern void i_time_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_inout_unpack.v:238:33
extern void i_time_3d(svLogicVecVal* val);
#ifdef __cplusplus

View File

@ -458,6 +458,25 @@ void i_string_3d(CONSTARG char** v) {
if (!check_3d(v)) stop();
}
void i_bit1_0d(CONSTARG svBit v) {
if (!compare<svScalar>(v, sv_0)) stop();
}
void i_bit1_1d(CONSTARG svBit* v) {
if (!compare<svScalar>(v[0], sv_1)) stop();
if (!compare<svScalar>(v[1], sv_0)) stop();
}
void i_bit1_2d(CONSTARG svBit* v) {
if (!compare<svScalar>(v[0 * 2 + 1], sv_1)) stop();
if (!compare<svScalar>(v[1 * 2 + 1], sv_0)) stop();
if (!compare<svScalar>(v[2 * 2 + 1], sv_1)) stop();
}
void i_bit1_3d(CONSTARG svBit* v) {
if (!compare<svScalar>(v[(0 * 3 + 0) * 2 + 0], sv_0)) stop();
if (!compare<svScalar>(v[(1 * 3 + 0) * 2 + 0], sv_1)) stop();
if (!compare<svScalar>(v[(2 * 3 + 0) * 2 + 0], sv_0)) stop();
if (!compare<svScalar>(v[(3 * 3 + 0) * 2 + 0], sv_1)) stop();
}
void i_bit7_0d(CONSTARG svBitVecVal* v) {
if (!check_0d(v, 7)) stop();
}
@ -484,6 +503,25 @@ void i_bit121_3d(CONSTARG svBitVecVal* v) {
if (!check_3d(v, 121)) stop();
}
void i_logic1_0d(CONSTARG svLogic v) {
if (!compare<svScalar>(v, sv_0)) stop();
}
void i_logic1_1d(CONSTARG svLogic* v) {
if (!compare<svScalar>(v[0], sv_1)) stop();
if (!compare<svScalar>(v[1], sv_0)) stop();
}
void i_logic1_2d(CONSTARG svLogic* v) {
if (!compare<svScalar>(v[0 * 2 + 1], sv_1)) stop();
if (!compare<svScalar>(v[1 * 2 + 1], sv_0)) stop();
if (!compare<svScalar>(v[2 * 2 + 1], sv_1)) stop();
}
void i_logic1_3d(CONSTARG svLogic* v) {
if (!compare<svScalar>(v[(0 * 3 + 0) * 2 + 0], sv_0)) stop();
if (!compare<svScalar>(v[(1 * 3 + 0) * 2 + 0], sv_1)) stop();
if (!compare<svScalar>(v[(2 * 3 + 0) * 2 + 0], sv_0)) stop();
if (!compare<svScalar>(v[(3 * 3 + 0) * 2 + 0], sv_1)) stop();
}
void i_logic7_0d(CONSTARG svLogicVecVal* v) {
if (!check_0d(v, 7)) stop();
}

View File

@ -17,17 +17,22 @@
`endif
`ifdef MS
`define NO_BITS_TO_SCALAR
`endif
`ifdef VERILATOR
`define NO_SHORTREAL
`define NO_UNPACK_STRUCT
`define NULL 64'd0
`else
`define NULL null
`endif
`define CHECK_VAL(act, exp) if ((act) == (exp)) begin \
`ifdef NO_BITS_TO_SCALAR
`define ARE_SAME(act, exp) ((act) == (exp))
`else
`define ARE_SAME(act, exp) ((act) == (($bits(act))'(exp)))
`endif
`define CHECK_VAL(act, exp) if (`ARE_SAME(act, exp)) begin \
if (ENABLE_VERBOSE_MESSAGE)$display(`"act`", ":", (act), " as expected"); \
end else begin \
$display("Mismatch %s expected:%d actual:%d at %d", `"act`", \
@ -47,10 +52,12 @@
`CHECK_VAL(val[3][0][0], 51)
`define SET_VALUES(val) \
/* verilator lint_off WIDTH */ \
val[3][2][1] = 42; \
val[2][1][0] = 43; val[2][1][1] = 44; \
val[1][0][1] = 45; val[1][1][1] = 46; val[1][2][1] = 47; \
val[0][0][0] = 48; val[1][0][0] = 49; val[2][0][0] = 50; val[3][0][0] = 51
val[0][0][0] = 48; val[1][0][0] = 49; val[2][0][0] = 50; val[3][0][0] = 51 \
/* verilator lint_on WIDTH */
module t;
@ -82,8 +89,10 @@ module t;
`endif
typedef chandle chandle_array_t[4][3][2];
typedef string string_array_t[4][3][2];
typedef bit bit1_array_t[4][3][2];
typedef bit [6:0] bit7_array_t[4][3][2];
typedef bit [120:0] bit121_array_t[4][3][2];
typedef logic logic1_array_t[4][3][2];
typedef logic [6:0] logic7_array_t[4][3][2];
typedef logic [120:0] logic121_array_t[4][3][2];
@ -181,6 +190,11 @@ module t;
import "DPI-C" function void i_string_2d(input string val[3][2]);
import "DPI-C" function void i_string_3d(input string_array_t val);
import "DPI-C" function void i_bit1_0d(input bit val);
import "DPI-C" function void i_bit1_1d(input bit val[2]);
import "DPI-C" function void i_bit1_2d(input bit val[3][2]);
import "DPI-C" function void i_bit1_3d(input bit1_array_t val);
import "DPI-C" function void i_bit7_0d(input bit[6:0] val);
import "DPI-C" function void i_bit7_1d(input bit[6:0] val[2]);
import "DPI-C" function void i_bit7_2d(input bit[6:0] val[3][2]);
@ -191,6 +205,11 @@ module t;
import "DPI-C" function void i_bit121_2d(input bit[120:0] val[3][2]);
import "DPI-C" function void i_bit121_3d(input bit121_array_t val);
import "DPI-C" function void i_logic1_0d(input logic val);
import "DPI-C" function void i_logic1_1d(input logic val[2]);
import "DPI-C" function void i_logic1_2d(input logic val[3][2]);
import "DPI-C" function void i_logic1_3d(input logic1_array_t val);
import "DPI-C" function void i_logic7_0d(input logic[6:0] val);
import "DPI-C" function void i_logic7_1d(input logic[6:0] val[2]);
import "DPI-C" function void i_logic7_2d(input logic[6:0] val[3][2]);
@ -294,6 +313,11 @@ module t;
export "DPI-C" function e_string_2d;
export "DPI-C" function e_string_3d;
export "DPI-C" function e_bit1_0d;
export "DPI-C" function e_bit1_1d;
export "DPI-C" function e_bit1_2d;
export "DPI-C" function e_bit1_3d;
export "DPI-C" function e_bit7_0d;
export "DPI-C" function e_bit7_1d;
export "DPI-C" function e_bit7_2d;
@ -304,6 +328,11 @@ module t;
export "DPI-C" function e_bit121_2d;
export "DPI-C" function e_bit121_3d;
export "DPI-C" function e_logic1_0d;
export "DPI-C" function e_logic1_1d;
export "DPI-C" function e_logic1_2d;
export "DPI-C" function e_logic1_3d;
export "DPI-C" function e_logic7_0d;
export "DPI-C" function e_logic7_1d;
export "DPI-C" function e_logic7_2d;
@ -493,6 +522,11 @@ module t;
end
endfunction
function void e_bit1_0d(input bit val); `CHECK_0D(val); endfunction
function void e_bit1_1d(input bit val[2]); `CHECK_1D(val); endfunction
function void e_bit1_2d(input bit val[3][2]); `CHECK_2D(val); endfunction
function void e_bit1_3d(input bit1_array_t val); `CHECK_3D(val); endfunction
function void e_bit7_0d(input bit[6:0] val); `CHECK_0D(val); endfunction
function void e_bit7_1d(input bit[6:0] val[2]); `CHECK_1D(val); endfunction
function void e_bit7_2d(input bit[6:0] val[3][2]); `CHECK_2D(val); endfunction
@ -503,6 +537,11 @@ module t;
function void e_bit121_2d(input bit[120:0] val[3][2]); `CHECK_2D(val); endfunction
function void e_bit121_3d(input bit121_array_t val); `CHECK_3D(val); endfunction
function void e_logic1_0d(input logic val); `CHECK_0D(val); endfunction
function void e_logic1_1d(input logic val[2]); `CHECK_1D(val); endfunction
function void e_logic1_2d(input logic val[3][2]); `CHECK_2D(val); endfunction
function void e_logic1_3d(input logic1_array_t val); `CHECK_3D(val); endfunction
function void e_logic7_0d(input logic[6:0] val); `CHECK_0D(val); endfunction
function void e_logic7_1d(input logic[6:0] val[2]); `CHECK_1D(val); endfunction
function void e_logic7_2d(input logic[6:0] val[3][2]); `CHECK_2D(val); endfunction
@ -596,8 +635,10 @@ module t;
`endif
chandle_array_t chandle_array;
string_array_t string_array;
bit1_array_t bit1_array;
bit7_array_t bit7_array;
bit121_array_t bit121_array;
logic1_array_t logic1_array;
logic7_array_t logic7_array;
logic121_array_t logic121_array;
pack_struct_array_t pack_struct_array;
@ -712,6 +753,13 @@ module t;
i_string_2d(string_array[1]);
i_string_3d(string_array);
`SET_VALUES(bit1_array);
i_bit1_0d(bit1_array[3][2][1]);
i_bit1_1d(bit1_array[2][1]);
i_bit1_2d(bit1_array[1]);
i_bit1_3d(bit1_array);
`SET_VALUES(bit7_array);
i_bit7_0d(bit7_array[3][2][1]);
i_bit7_1d(bit7_array[2][1]);
@ -724,6 +772,12 @@ module t;
i_bit121_2d(bit121_array[1]);
i_bit121_3d(bit121_array);
`SET_VALUES(logic1_array);
i_logic1_0d(logic1_array[3][2][1]);
i_logic1_1d(logic1_array[2][1]);
i_logic1_2d(logic1_array[1]);
i_logic1_3d(logic1_array);
`SET_VALUES(logic7_array);
i_logic7_0d(logic7_array[3][2][1]);
i_logic7_1d(logic7_array[2][1]);

View File

@ -13,299 +13,331 @@ extern "C" {
// DPI EXPORTS
// DPI export at t/t_dpi_arg_input_unpack.v:501:18
// DPI export at t/t_dpi_arg_input_unpack.v:535:18
extern void e_bit121_0d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:502:18
// DPI export at t/t_dpi_arg_input_unpack.v:536:18
extern void e_bit121_1d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:503:18
// DPI export at t/t_dpi_arg_input_unpack.v:537:18
extern void e_bit121_2d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:504:18
// DPI export at t/t_dpi_arg_input_unpack.v:538:18
extern void e_bit121_3d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:496:18
// DPI export at t/t_dpi_arg_input_unpack.v:525:18
extern void e_bit1_0d(svBit val);
// DPI export at t/t_dpi_arg_input_unpack.v:526:18
extern void e_bit1_1d(const svBit* val);
// DPI export at t/t_dpi_arg_input_unpack.v:527:18
extern void e_bit1_2d(const svBit* val);
// DPI export at t/t_dpi_arg_input_unpack.v:528:18
extern void e_bit1_3d(const svBit* val);
// DPI export at t/t_dpi_arg_input_unpack.v:530:18
extern void e_bit7_0d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:497:18
// DPI export at t/t_dpi_arg_input_unpack.v:531:18
extern void e_bit7_1d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:498:18
// DPI export at t/t_dpi_arg_input_unpack.v:532:18
extern void e_bit7_2d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:499:18
// DPI export at t/t_dpi_arg_input_unpack.v:533:18
extern void e_bit7_3d(const svBitVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:332:18
// DPI export at t/t_dpi_arg_input_unpack.v:361:18
extern void e_byte_0d(char val);
// DPI export at t/t_dpi_arg_input_unpack.v:333:18
extern void e_byte_1d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:334:18
extern void e_byte_2d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:335:18
extern void e_byte_3d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:337:18
extern void e_byte_unsigned_0d(unsigned char val);
// DPI export at t/t_dpi_arg_input_unpack.v:338:18
extern void e_byte_unsigned_1d(const unsigned char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:339:18
extern void e_byte_unsigned_2d(const unsigned char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:340:18
extern void e_byte_unsigned_3d(const unsigned char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:398:18
extern void e_chandle_0d(void* val);
// DPI export at t/t_dpi_arg_input_unpack.v:404:18
extern void e_chandle_1d(const void** val);
// DPI export at t/t_dpi_arg_input_unpack.v:414:18
extern void e_chandle_2d(const void** val);
// DPI export at t/t_dpi_arg_input_unpack.v:428:18
extern void e_chandle_3d(const void** val);
// DPI export at t/t_dpi_arg_input_unpack.v:352:18
extern void e_int_0d(int val);
// DPI export at t/t_dpi_arg_input_unpack.v:353:18
extern void e_int_1d(const int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:354:18
extern void e_int_2d(const int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:355:18
extern void e_int_3d(const int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:357:18
extern void e_int_unsigned_0d(unsigned int val);
// DPI export at t/t_dpi_arg_input_unpack.v:358:18
extern void e_int_unsigned_1d(const unsigned int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:359:18
extern void e_int_unsigned_2d(const unsigned int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:360:18
extern void e_int_unsigned_3d(const unsigned int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:380:18
extern void e_integer_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:381:18
extern void e_integer_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:382:18
extern void e_integer_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:383:18
extern void e_integer_3d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:511:18
extern void e_logic121_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:512:18
extern void e_logic121_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:513:18
extern void e_logic121_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:514:18
extern void e_logic121_3d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:506:18
extern void e_logic7_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:507:18
extern void e_logic7_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:508:18
extern void e_logic7_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:509:18
extern void e_logic7_3d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:362:18
extern void e_longint_0d(long long val);
extern void e_byte_1d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:363:18
extern void e_longint_1d(const long long* val);
extern void e_byte_2d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:364:18
extern void e_longint_2d(const long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:365:18
extern void e_longint_3d(const long long* val);
extern void e_byte_3d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:366:18
extern void e_byte_unsigned_0d(unsigned char val);
// DPI export at t/t_dpi_arg_input_unpack.v:367:18
extern void e_longint_unsigned_0d(unsigned long long val);
extern void e_byte_unsigned_1d(const unsigned char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:368:18
extern void e_longint_unsigned_1d(const unsigned long long* val);
extern void e_byte_unsigned_2d(const unsigned char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:369:18
extern void e_longint_unsigned_2d(const unsigned long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:370:18
extern void e_longint_unsigned_3d(const unsigned long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:516:18
extern void e_pack_struct_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:517:18
extern void e_pack_struct_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:518:18
extern void e_pack_struct_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:519:18
extern void e_pack_struct_3d(const svLogicVecVal* val);
extern void e_byte_unsigned_3d(const unsigned char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:427:18
extern void e_chandle_0d(void* val);
// DPI export at t/t_dpi_arg_input_unpack.v:433:18
extern void e_chandle_1d(const void** val);
// DPI export at t/t_dpi_arg_input_unpack.v:443:18
extern void e_chandle_2d(const void** val);
// DPI export at t/t_dpi_arg_input_unpack.v:457:18
extern void e_chandle_3d(const void** val);
// DPI export at t/t_dpi_arg_input_unpack.v:381:18
extern void e_int_0d(int val);
// DPI export at t/t_dpi_arg_input_unpack.v:382:18
extern void e_int_1d(const int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:383:18
extern void e_int_2d(const int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:384:18
extern void e_int_3d(const int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:386:18
extern void e_real_0d(double val);
extern void e_int_unsigned_0d(unsigned int val);
// DPI export at t/t_dpi_arg_input_unpack.v:387:18
extern void e_real_1d(const double* val);
extern void e_int_unsigned_1d(const unsigned int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:388:18
extern void e_real_2d(const double* val);
extern void e_int_unsigned_2d(const unsigned int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:389:18
extern void e_int_unsigned_3d(const unsigned int* val);
// DPI export at t/t_dpi_arg_input_unpack.v:409:18
extern void e_integer_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:410:18
extern void e_integer_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:411:18
extern void e_integer_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:412:18
extern void e_integer_3d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:550:18
extern void e_logic121_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:551:18
extern void e_logic121_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:552:18
extern void e_logic121_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:553:18
extern void e_logic121_3d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:540:18
extern void e_logic1_0d(svLogic val);
// DPI export at t/t_dpi_arg_input_unpack.v:541:18
extern void e_logic1_1d(const svLogic* val);
// DPI export at t/t_dpi_arg_input_unpack.v:542:18
extern void e_logic1_2d(const svLogic* val);
// DPI export at t/t_dpi_arg_input_unpack.v:543:18
extern void e_logic1_3d(const svLogic* val);
// DPI export at t/t_dpi_arg_input_unpack.v:545:18
extern void e_logic7_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:546:18
extern void e_logic7_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:547:18
extern void e_logic7_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:548:18
extern void e_logic7_3d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:391:18
extern void e_longint_0d(long long val);
// DPI export at t/t_dpi_arg_input_unpack.v:392:18
extern void e_longint_1d(const long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:393:18
extern void e_longint_2d(const long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:394:18
extern void e_longint_3d(const long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:396:18
extern void e_longint_unsigned_0d(unsigned long long val);
// DPI export at t/t_dpi_arg_input_unpack.v:397:18
extern void e_longint_unsigned_1d(const unsigned long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:398:18
extern void e_longint_unsigned_2d(const unsigned long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:399:18
extern void e_longint_unsigned_3d(const unsigned long long* val);
// DPI export at t/t_dpi_arg_input_unpack.v:555:18
extern void e_pack_struct_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:556:18
extern void e_pack_struct_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:557:18
extern void e_pack_struct_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:558:18
extern void e_pack_struct_3d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:415:18
extern void e_real_0d(double val);
// DPI export at t/t_dpi_arg_input_unpack.v:416:18
extern void e_real_1d(const double* val);
// DPI export at t/t_dpi_arg_input_unpack.v:417:18
extern void e_real_2d(const double* val);
// DPI export at t/t_dpi_arg_input_unpack.v:418:18
extern void e_real_3d(const double* val);
// DPI export at t/t_dpi_arg_input_unpack.v:342:18
// DPI export at t/t_dpi_arg_input_unpack.v:371:18
extern void e_shortint_0d(short val);
// DPI export at t/t_dpi_arg_input_unpack.v:343:18
// DPI export at t/t_dpi_arg_input_unpack.v:372:18
extern void e_shortint_1d(const short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:344:18
extern void e_shortint_2d(const short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:345:18
extern void e_shortint_3d(const short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:347:18
extern void e_shortint_unsigned_0d(unsigned short val);
// DPI export at t/t_dpi_arg_input_unpack.v:348:18
extern void e_shortint_unsigned_1d(const unsigned short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:349:18
extern void e_shortint_unsigned_2d(const unsigned short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:350:18
extern void e_shortint_unsigned_3d(const unsigned short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:447:18
extern void e_string_0d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:453:18
extern void e_string_1d(const char** val);
// DPI export at t/t_dpi_arg_input_unpack.v:463:18
extern void e_string_2d(const char** val);
// DPI export at t/t_dpi_arg_input_unpack.v:477:18
extern void e_string_3d(const char** val);
// DPI export at t/t_dpi_arg_input_unpack.v:373:18
extern void e_time_0d(const svLogicVecVal* val);
extern void e_shortint_2d(const short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:374:18
extern void e_time_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:375:18
extern void e_time_2d(const svLogicVecVal* val);
extern void e_shortint_3d(const short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:376:18
extern void e_shortint_unsigned_0d(unsigned short val);
// DPI export at t/t_dpi_arg_input_unpack.v:377:18
extern void e_shortint_unsigned_1d(const unsigned short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:378:18
extern void e_shortint_unsigned_2d(const unsigned short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:379:18
extern void e_shortint_unsigned_3d(const unsigned short* val);
// DPI export at t/t_dpi_arg_input_unpack.v:476:18
extern void e_string_0d(const char* val);
// DPI export at t/t_dpi_arg_input_unpack.v:482:18
extern void e_string_1d(const char** val);
// DPI export at t/t_dpi_arg_input_unpack.v:492:18
extern void e_string_2d(const char** val);
// DPI export at t/t_dpi_arg_input_unpack.v:506:18
extern void e_string_3d(const char** val);
// DPI export at t/t_dpi_arg_input_unpack.v:402:18
extern void e_time_0d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:403:18
extern void e_time_1d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:404:18
extern void e_time_2d(const svLogicVecVal* val);
// DPI export at t/t_dpi_arg_input_unpack.v:405:18
extern void e_time_3d(const svLogicVecVal* val);
// DPI IMPORTS
// DPI import at t/t_dpi_arg_input_unpack.v:576:41
// DPI import at t/t_dpi_arg_input_unpack.v:615:41
extern void check_exports();
// DPI import at t/t_dpi_arg_input_unpack.v:106:36
// DPI import at t/t_dpi_arg_input_unpack.v:115:36
extern void* get_non_null();
// DPI import at t/t_dpi_arg_input_unpack.v:189:33
// DPI import at t/t_dpi_arg_input_unpack.v:203:33
extern void i_bit121_0d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:190:33
extern void i_bit121_1d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:191:33
extern void i_bit121_2d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:192:33
extern void i_bit121_3d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:184:33
extern void i_bit7_0d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:185:33
extern void i_bit7_1d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:186:33
extern void i_bit7_2d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:187:33
extern void i_bit7_3d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:108:33
extern void i_byte_0d(char val);
// DPI import at t/t_dpi_arg_input_unpack.v:109:33
extern void i_byte_1d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:110:33
extern void i_byte_2d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:111:33
extern void i_byte_3d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:113:33
extern void i_byte_unsigned_0d(unsigned char val);
// DPI import at t/t_dpi_arg_input_unpack.v:114:33
extern void i_byte_unsigned_1d(const unsigned char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:115:33
extern void i_byte_unsigned_2d(const unsigned char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:116:33
extern void i_byte_unsigned_3d(const unsigned char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:174:33
extern void i_chandle_0d(void* val);
// DPI import at t/t_dpi_arg_input_unpack.v:175:33
extern void i_chandle_1d(const void** val);
// DPI import at t/t_dpi_arg_input_unpack.v:176:33
extern void i_chandle_2d(const void** val);
// DPI import at t/t_dpi_arg_input_unpack.v:177:33
extern void i_chandle_3d(const void** val);
// DPI import at t/t_dpi_arg_input_unpack.v:128:33
extern void i_int_0d(int val);
// DPI import at t/t_dpi_arg_input_unpack.v:129:33
extern void i_int_1d(const int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:130:33
extern void i_int_2d(const int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:131:33
extern void i_int_3d(const int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:133:33
extern void i_int_unsigned_0d(unsigned int val);
// DPI import at t/t_dpi_arg_input_unpack.v:134:33
extern void i_int_unsigned_1d(const unsigned int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:135:33
extern void i_int_unsigned_2d(const unsigned int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:136:33
extern void i_int_unsigned_3d(const unsigned int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:156:33
extern void i_integer_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:157:33
extern void i_integer_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:158:33
extern void i_integer_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:159:33
extern void i_integer_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:199:33
extern void i_logic121_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:200:33
extern void i_logic121_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:201:33
extern void i_logic121_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:202:33
extern void i_logic121_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:194:33
extern void i_logic7_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:195:33
extern void i_logic7_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:196:33
extern void i_logic7_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:197:33
extern void i_logic7_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:138:33
extern void i_longint_0d(long long val);
// DPI import at t/t_dpi_arg_input_unpack.v:139:33
extern void i_longint_1d(const long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:140:33
extern void i_longint_2d(const long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:141:33
extern void i_longint_3d(const long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:143:33
extern void i_longint_unsigned_0d(unsigned long long val);
// DPI import at t/t_dpi_arg_input_unpack.v:144:33
extern void i_longint_unsigned_1d(const unsigned long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:145:33
extern void i_longint_unsigned_2d(const unsigned long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:146:33
extern void i_longint_unsigned_3d(const unsigned long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:204:33
extern void i_pack_struct_0d(const svLogicVecVal* val);
extern void i_bit121_1d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:205:33
extern void i_pack_struct_1d(const svLogicVecVal* val);
extern void i_bit121_2d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:206:33
extern void i_pack_struct_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:207:33
extern void i_pack_struct_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:162:33
extern void i_real_0d(double val);
// DPI import at t/t_dpi_arg_input_unpack.v:163:33
extern void i_real_1d(const double* val);
// DPI import at t/t_dpi_arg_input_unpack.v:164:33
extern void i_real_2d(const double* val);
// DPI import at t/t_dpi_arg_input_unpack.v:165:33
extern void i_real_3d(const double* val);
extern void i_bit121_3d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:193:33
extern void i_bit1_0d(svBit val);
// DPI import at t/t_dpi_arg_input_unpack.v:194:33
extern void i_bit1_1d(const svBit* val);
// DPI import at t/t_dpi_arg_input_unpack.v:195:33
extern void i_bit1_2d(const svBit* val);
// DPI import at t/t_dpi_arg_input_unpack.v:196:33
extern void i_bit1_3d(const svBit* val);
// DPI import at t/t_dpi_arg_input_unpack.v:198:33
extern void i_bit7_0d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:199:33
extern void i_bit7_1d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:200:33
extern void i_bit7_2d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:201:33
extern void i_bit7_3d(const svBitVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:117:33
extern void i_byte_0d(char val);
// DPI import at t/t_dpi_arg_input_unpack.v:118:33
extern void i_shortint_0d(short val);
extern void i_byte_1d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:119:33
extern void i_shortint_1d(const short* val);
extern void i_byte_2d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:120:33
extern void i_shortint_2d(const short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:121:33
extern void i_shortint_3d(const short* val);
extern void i_byte_3d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:122:33
extern void i_byte_unsigned_0d(unsigned char val);
// DPI import at t/t_dpi_arg_input_unpack.v:123:33
extern void i_shortint_unsigned_0d(unsigned short val);
extern void i_byte_unsigned_1d(const unsigned char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:124:33
extern void i_shortint_unsigned_1d(const unsigned short* val);
extern void i_byte_unsigned_2d(const unsigned char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:125:33
extern void i_shortint_unsigned_2d(const unsigned short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:126:33
extern void i_shortint_unsigned_3d(const unsigned short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:179:33
extern void i_string_0d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:180:33
extern void i_string_1d(const char** val);
// DPI import at t/t_dpi_arg_input_unpack.v:181:33
extern void i_string_2d(const char** val);
// DPI import at t/t_dpi_arg_input_unpack.v:182:33
extern void i_string_3d(const char** val);
extern void i_byte_unsigned_3d(const unsigned char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:183:33
extern void i_chandle_0d(void* val);
// DPI import at t/t_dpi_arg_input_unpack.v:184:33
extern void i_chandle_1d(const void** val);
// DPI import at t/t_dpi_arg_input_unpack.v:185:33
extern void i_chandle_2d(const void** val);
// DPI import at t/t_dpi_arg_input_unpack.v:186:33
extern void i_chandle_3d(const void** val);
// DPI import at t/t_dpi_arg_input_unpack.v:137:33
extern void i_int_0d(int val);
// DPI import at t/t_dpi_arg_input_unpack.v:138:33
extern void i_int_1d(const int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:139:33
extern void i_int_2d(const int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:140:33
extern void i_int_3d(const int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:142:33
extern void i_int_unsigned_0d(unsigned int val);
// DPI import at t/t_dpi_arg_input_unpack.v:143:33
extern void i_int_unsigned_1d(const unsigned int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:144:33
extern void i_int_unsigned_2d(const unsigned int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:145:33
extern void i_int_unsigned_3d(const unsigned int* val);
// DPI import at t/t_dpi_arg_input_unpack.v:165:33
extern void i_integer_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:166:33
extern void i_integer_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:167:33
extern void i_integer_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:168:33
extern void i_integer_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:218:33
extern void i_logic121_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:219:33
extern void i_logic121_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:220:33
extern void i_logic121_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:221:33
extern void i_logic121_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:208:33
extern void i_logic1_0d(svLogic val);
// DPI import at t/t_dpi_arg_input_unpack.v:209:33
extern void i_logic1_1d(const svLogic* val);
// DPI import at t/t_dpi_arg_input_unpack.v:210:33
extern void i_logic1_2d(const svLogic* val);
// DPI import at t/t_dpi_arg_input_unpack.v:211:33
extern void i_logic1_3d(const svLogic* val);
// DPI import at t/t_dpi_arg_input_unpack.v:213:33
extern void i_logic7_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:214:33
extern void i_logic7_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:215:33
extern void i_logic7_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:216:33
extern void i_logic7_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:147:33
extern void i_longint_0d(long long val);
// DPI import at t/t_dpi_arg_input_unpack.v:148:33
extern void i_longint_1d(const long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:149:33
extern void i_time_0d(const svLogicVecVal* val);
extern void i_longint_2d(const long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:150:33
extern void i_time_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:151:33
extern void i_time_2d(const svLogicVecVal* val);
extern void i_longint_3d(const long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:152:33
extern void i_longint_unsigned_0d(unsigned long long val);
// DPI import at t/t_dpi_arg_input_unpack.v:153:33
extern void i_longint_unsigned_1d(const unsigned long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:154:33
extern void i_longint_unsigned_2d(const unsigned long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:155:33
extern void i_longint_unsigned_3d(const unsigned long long* val);
// DPI import at t/t_dpi_arg_input_unpack.v:223:33
extern void i_pack_struct_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:224:33
extern void i_pack_struct_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:225:33
extern void i_pack_struct_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:226:33
extern void i_pack_struct_3d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:171:33
extern void i_real_0d(double val);
// DPI import at t/t_dpi_arg_input_unpack.v:172:33
extern void i_real_1d(const double* val);
// DPI import at t/t_dpi_arg_input_unpack.v:173:33
extern void i_real_2d(const double* val);
// DPI import at t/t_dpi_arg_input_unpack.v:174:33
extern void i_real_3d(const double* val);
// DPI import at t/t_dpi_arg_input_unpack.v:127:33
extern void i_shortint_0d(short val);
// DPI import at t/t_dpi_arg_input_unpack.v:128:33
extern void i_shortint_1d(const short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:129:33
extern void i_shortint_2d(const short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:130:33
extern void i_shortint_3d(const short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:132:33
extern void i_shortint_unsigned_0d(unsigned short val);
// DPI import at t/t_dpi_arg_input_unpack.v:133:33
extern void i_shortint_unsigned_1d(const unsigned short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:134:33
extern void i_shortint_unsigned_2d(const unsigned short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:135:33
extern void i_shortint_unsigned_3d(const unsigned short* val);
// DPI import at t/t_dpi_arg_input_unpack.v:188:33
extern void i_string_0d(const char* val);
// DPI import at t/t_dpi_arg_input_unpack.v:189:33
extern void i_string_1d(const char** val);
// DPI import at t/t_dpi_arg_input_unpack.v:190:33
extern void i_string_2d(const char** val);
// DPI import at t/t_dpi_arg_input_unpack.v:191:33
extern void i_string_3d(const char** val);
// DPI import at t/t_dpi_arg_input_unpack.v:158:33
extern void i_time_0d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:159:33
extern void i_time_1d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:160:33
extern void i_time_2d(const svLogicVecVal* val);
// DPI import at t/t_dpi_arg_input_unpack.v:161:33
extern void i_time_3d(const svLogicVecVal* val);
#ifdef __cplusplus

View File

@ -130,6 +130,26 @@ void set_3d(svLogicVecVal* v, int bitwidth) {
set_uint(v + ((3 * 3 + 0) * 2 + 0) * unit, 51, bitwidth);
}
void set_0d_scalar(svScalar* v) { *v = sv_0; }
void set_1d_scalar(svScalar* v) {
v[0] = sv_1;
v[1] = sv_0;
}
void set_2d_scalar(svScalar* v) {
v[0 * 2 + 1] = sv_1;
v[1 * 2 + 1] = sv_0;
v[2 * 2 + 1] = sv_1;
}
void set_3d_scalar(svScalar* v) {
v[(0 * 3 + 0) * 2 + 0] = sv_0;
v[(1 * 3 + 0) * 2 + 0] = sv_1;
v[(2 * 3 + 0) * 2 + 0] = sv_0;
v[(3 * 3 + 0) * 2 + 0] = sv_1;
}
void set_0d(svBitVecVal* v, int bitwidth) { set_uint(v, 42, bitwidth); }
void set_1d(svBitVecVal* v, int bitwidth) {
@ -343,6 +363,11 @@ void i_string_3d(const char** v) {
v[(3 * 3 + 0) * 2 + 0] = s3;
}
void i_bit1_0d(svBit* v) { set_0d_scalar(v); }
void i_bit1_1d(svBit* v) { set_1d_scalar(v); }
void i_bit1_2d(svBit* v) { set_2d_scalar(v); }
void i_bit1_3d(svBit* v) { set_3d_scalar(v); }
void i_bit7_0d(svBitVecVal* v) { set_0d(v, 7); }
void i_bit7_1d(svBitVecVal* v) { set_1d(v, 7); }
void i_bit7_2d(svBitVecVal* v) { set_2d(v, 7); }
@ -353,6 +378,11 @@ void i_bit121_1d(svBitVecVal* v) { set_1d(v, 121); }
void i_bit121_2d(svBitVecVal* v) { set_2d(v, 121); }
void i_bit121_3d(svBitVecVal* v) { set_3d(v, 121); }
void i_logic1_0d(svLogic* v) { set_0d_scalar(v); }
void i_logic1_1d(svLogic* v) { set_1d_scalar(v); }
void i_logic1_2d(svLogic* v) { set_2d_scalar(v); }
void i_logic1_3d(svLogic* v) { set_3d_scalar(v); }
void i_logic7_0d(svLogicVecVal* v) { set_0d(v, 7); }
void i_logic7_1d(svLogicVecVal* v) { set_1d(v, 7); }
void i_logic7_2d(svLogicVecVal* v) { set_2d(v, 7); }

View File

@ -17,17 +17,21 @@
`endif
`ifdef MS
`define NO_BITS_TO_SCALAR
`endif
`ifdef VERILATOR
`define NO_SHORTREAL
`define NO_UNPACK_STRUCT
`define NULL 64'd0
`else
`define NULL null
`endif
`define CHECK_VAL(act, exp) if ((act) == (exp)) begin \
`ifdef NO_BITS_TO_SCALAR
`define ARE_SAME(act, exp) ($bits((act)) == 1 ? (act) == ((exp) & 1) : (act) == (exp))
`else
`define ARE_SAME(act, exp) ((act) == (($bits(act))'(exp)))
`endif
`define CHECK_VAL(act, exp) if (`ARE_SAME(act, exp)) begin \
if (ENABLE_VERBOSE_MESSAGE)$display(`"act`", ":", (act), " as expected"); \
end else begin \
$display("Mismatch %s expected:%d actual:%d at %d", `"act`", \
@ -99,8 +103,10 @@ module t;
`endif
typedef chandle chandle_array_t[4][3][2];
typedef string string_array_t[4][3][2];
typedef bit bit1_array_t[4][3][2];
typedef bit [6:0] bit7_array_t[4][3][2];
typedef bit [120:0] bit121_array_t[4][3][2];
typedef logic logic1_array_t[4][3][2];
typedef logic [6:0] logic7_array_t[4][3][2];
typedef logic [120:0] logic121_array_t[4][3][2];
@ -198,6 +204,11 @@ module t;
import "DPI-C" function void i_string_2d(output string val[3][2]);
import "DPI-C" function void i_string_3d(output string_array_t val);
import "DPI-C" function void i_bit1_0d(output bit val);
import "DPI-C" function void i_bit1_1d(output bit val[2]);
import "DPI-C" function void i_bit1_2d(output bit val[3][2]);
import "DPI-C" function void i_bit1_3d(output bit1_array_t val);
import "DPI-C" function void i_bit7_0d(output bit[6:0] val);
import "DPI-C" function void i_bit7_1d(output bit[6:0] val[2]);
import "DPI-C" function void i_bit7_2d(output bit[6:0] val[3][2]);
@ -208,6 +219,11 @@ module t;
import "DPI-C" function void i_bit121_2d(output bit[120:0] val[3][2]);
import "DPI-C" function void i_bit121_3d(output bit121_array_t val);
import "DPI-C" function void i_logic1_0d(output logic val);
import "DPI-C" function void i_logic1_1d(output logic val[2]);
import "DPI-C" function void i_logic1_2d(output logic val[3][2]);
import "DPI-C" function void i_logic1_3d(output logic1_array_t val);
import "DPI-C" function void i_logic7_0d(output logic[6:0] val);
import "DPI-C" function void i_logic7_1d(output logic[6:0] val[2]);
import "DPI-C" function void i_logic7_2d(output logic[6:0] val[3][2]);
@ -309,6 +325,11 @@ module t;
export "DPI-C" function e_string_2d;
export "DPI-C" function e_string_3d;
export "DPI-C" function e_bit1_0d;
export "DPI-C" function e_bit1_1d;
export "DPI-C" function e_bit1_2d;
export "DPI-C" function e_bit1_3d;
export "DPI-C" function e_bit7_0d;
export "DPI-C" function e_bit7_1d;
export "DPI-C" function e_bit7_2d;
@ -319,6 +340,11 @@ module t;
export "DPI-C" function e_bit121_2d;
export "DPI-C" function e_bit121_3d;
export "DPI-C" function e_logic1_0d;
export "DPI-C" function e_logic1_1d;
export "DPI-C" function e_logic1_2d;
export "DPI-C" function e_logic1_3d;
export "DPI-C" function e_logic7_0d;
export "DPI-C" function e_logic7_1d;
export "DPI-C" function e_logic7_2d;
@ -343,10 +369,22 @@ module t;
//======================================================================
// Definitions of exported functions
//======================================================================
`define SET_0D(val) val = 42
`define SET_1D(val) val[0] = 43; val[1] = 44
`define SET_2D(val) val[0][1] = 45; val[1][1] = 46; val[2][1] = 47
`define SET_3D(val) val[0][0][0] = 48; val[1][0][0] = 49; val[2][0][0] = 50; val[3][0][0] = 51
`define SET_0D(val) \
/* verilator lint_off WIDTH */ \
val = 42 \
/* verilator lint_on WIDTH */
`define SET_1D(val) \
/* verilator lint_off WIDTH */ \
val[0] = 43; val[1] = 44 \
/* verilator lint_on WIDTH */
`define SET_2D(val) \
/* verilator lint_off WIDTH */ \
val[0][1] = 45; val[1][1] = 46; val[2][1] = 47 \
/* verilator lint_on WIDTH */
`define SET_3D(val) \
/* verilator lint_off WIDTH */ \
val[0][0][0] = 48; val[1][0][0] = 49; val[2][0][0] = 50; val[3][0][0] = 51 \
/* verilator lint_on WIDTH */
function void e_byte_0d(output byte val); `SET_0D(val); endfunction
function void e_byte_1d(output byte val[2]); `SET_1D(val); endfunction
@ -452,6 +490,11 @@ module t;
val[3][0][0] = "51";
endfunction
function void e_bit1_0d(output bit val); `SET_0D(val); endfunction
function void e_bit1_1d(output bit val[2]); `SET_1D(val); endfunction
function void e_bit1_2d(output bit val[3][2]); `SET_2D(val); endfunction
function void e_bit1_3d(output bit7_array_t val); `SET_3D(val); endfunction
function void e_bit7_0d(output bit[6:0] val); `SET_0D(val); endfunction
function void e_bit7_1d(output bit[6:0] val[2]); `SET_1D(val); endfunction
function void e_bit7_2d(output bit[6:0] val[3][2]); `SET_2D(val); endfunction
@ -462,6 +505,11 @@ module t;
function void e_bit121_2d(output bit[120:0] val[3][2]); `SET_2D(val); endfunction
function void e_bit121_3d(output bit121_array_t val); `SET_3D(val); endfunction
function void e_logic1_0d(output logic val); `SET_0D(val); endfunction
function void e_logic1_1d(output logic val[2]); `SET_1D(val); endfunction
function void e_logic1_2d(output logic val[3][2]); `SET_2D(val); endfunction
function void e_logic1_3d(output logic7_array_t val); `SET_3D(val); endfunction
function void e_logic7_0d(output logic[6:0] val); `SET_0D(val); endfunction
function void e_logic7_1d(output logic[6:0] val[2]); `SET_1D(val); endfunction
function void e_logic7_2d(output logic[6:0] val[3][2]); `SET_2D(val); endfunction
@ -525,8 +573,10 @@ module t;
`endif
chandle_array_t chandle_array;
string_array_t string_array;
bit1_array_t bit1_array;
bit7_array_t bit7_array;
bit121_array_t bit121_array;
logic1_array_t logic1_array;
logic7_array_t logic7_array;
logic121_array_t logic121_array;
pack_struct_array_t pack_struct_array;
@ -682,6 +732,15 @@ module t;
`CHECK_STRING_VAL(string_array[2][0][0], "50");
`CHECK_STRING_VAL(string_array[3][0][0], "51");
i_bit1_0d(bit1_array[3][2][1]);
`CHECK_0D(bit1_array[3][2][1]);
i_bit1_1d(bit1_array[2][1]);
`CHECK_1D(bit1_array[2][1]);
i_bit1_2d(bit1_array[1]);
`CHECK_2D(bit1_array[1]);
i_bit1_3d(bit1_array);
`CHECK_3D(bit1_array);
i_bit7_0d(bit7_array[3][2][1]);
`CHECK_0D(bit7_array[3][2][1]);
i_bit7_1d(bit7_array[2][1]);
@ -700,6 +759,15 @@ module t;
i_bit121_3d(bit121_array);
`CHECK_3D(bit121_array);
i_logic1_0d(logic1_array[3][2][1]);
`CHECK_0D(logic1_array[3][2][1]);
i_logic1_1d(logic1_array[2][1]);
`CHECK_1D(logic1_array[2][1]);
i_logic1_2d(logic1_array[1]);
`CHECK_2D(logic1_array[1]);
i_logic1_3d(logic1_array);
`CHECK_3D(logic1_array);
i_logic7_0d(logic7_array[3][2][1]);
`CHECK_0D(logic7_array[3][2][1]);
i_logic7_1d(logic7_array[2][1]);

View File

@ -13,299 +13,331 @@ extern "C" {
// DPI EXPORTS
// DPI export at t/t_dpi_arg_output_unpack.v:460:18
// DPI export at t/t_dpi_arg_output_unpack.v:503:18
extern void e_bit121_0d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:461:18
// DPI export at t/t_dpi_arg_output_unpack.v:504:18
extern void e_bit121_1d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:462:18
// DPI export at t/t_dpi_arg_output_unpack.v:505:18
extern void e_bit121_2d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:463:18
// DPI export at t/t_dpi_arg_output_unpack.v:506:18
extern void e_bit121_3d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:455:18
// DPI export at t/t_dpi_arg_output_unpack.v:493:18
extern void e_bit1_0d(svBit* val);
// DPI export at t/t_dpi_arg_output_unpack.v:494:18
extern void e_bit1_1d(svBit* val);
// DPI export at t/t_dpi_arg_output_unpack.v:495:18
extern void e_bit1_2d(svBit* val);
// DPI export at t/t_dpi_arg_output_unpack.v:496:18
extern void e_bit1_3d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:498:18
extern void e_bit7_0d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:456:18
// DPI export at t/t_dpi_arg_output_unpack.v:499:18
extern void e_bit7_1d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:457:18
// DPI export at t/t_dpi_arg_output_unpack.v:500:18
extern void e_bit7_2d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:458:18
// DPI export at t/t_dpi_arg_output_unpack.v:501:18
extern void e_bit7_3d(svBitVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:351:18
extern void e_byte_0d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:352:18
extern void e_byte_1d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:353:18
extern void e_byte_2d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:354:18
extern void e_byte_3d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:356:18
extern void e_byte_unsigned_0d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:357:18
extern void e_byte_unsigned_1d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:358:18
extern void e_byte_unsigned_2d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:359:18
extern void e_byte_unsigned_3d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:417:18
extern void e_chandle_0d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:420:18
extern void e_chandle_1d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:424:18
extern void e_chandle_2d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:429:18
extern void e_chandle_3d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:371:18
extern void e_int_0d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:372:18
extern void e_int_1d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:373:18
extern void e_int_2d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:374:18
extern void e_int_3d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:376:18
extern void e_int_unsigned_0d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:377:18
extern void e_int_unsigned_1d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:378:18
extern void e_int_unsigned_2d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:379:18
extern void e_int_unsigned_3d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:399:18
extern void e_integer_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:400:18
extern void e_integer_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:401:18
extern void e_integer_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:402:18
extern void e_integer_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:470:18
extern void e_logic121_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:471:18
extern void e_logic121_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:472:18
extern void e_logic121_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:473:18
extern void e_logic121_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:465:18
extern void e_logic7_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:466:18
extern void e_logic7_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:467:18
extern void e_logic7_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:468:18
extern void e_logic7_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:381:18
extern void e_longint_0d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:382:18
extern void e_longint_1d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:383:18
extern void e_longint_2d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:384:18
extern void e_longint_3d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:386:18
extern void e_longint_unsigned_0d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:387:18
extern void e_longint_unsigned_1d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:388:18
extern void e_longint_unsigned_2d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:389:18
extern void e_longint_unsigned_3d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:475:18
extern void e_pack_struct_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:476:18
extern void e_pack_struct_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:477:18
extern void e_pack_struct_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:478:18
extern void e_pack_struct_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:405:18
extern void e_real_0d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:406:18
extern void e_real_1d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:407:18
extern void e_real_2d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:408:18
extern void e_real_3d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:361:18
extern void e_shortint_0d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:362:18
extern void e_shortint_1d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:363:18
extern void e_shortint_2d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:364:18
extern void e_shortint_3d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:366:18
extern void e_shortint_unsigned_0d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:367:18
extern void e_shortint_unsigned_1d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:368:18
extern void e_shortint_unsigned_2d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:369:18
extern void e_shortint_unsigned_3d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:436:18
extern void e_string_0d(const char** val);
// DPI export at t/t_dpi_arg_output_unpack.v:439:18
extern void e_string_1d(const char** val);
// DPI export at t/t_dpi_arg_output_unpack.v:443:18
extern void e_string_2d(const char** val);
// DPI export at t/t_dpi_arg_output_unpack.v:448:18
extern void e_string_3d(const char** val);
extern void e_byte_0d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:390:18
extern void e_byte_1d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:391:18
extern void e_byte_2d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:392:18
extern void e_time_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:393:18
extern void e_time_1d(svLogicVecVal* val);
extern void e_byte_3d(char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:394:18
extern void e_time_2d(svLogicVecVal* val);
extern void e_byte_unsigned_0d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:395:18
extern void e_byte_unsigned_1d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:396:18
extern void e_byte_unsigned_2d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:397:18
extern void e_byte_unsigned_3d(unsigned char* val);
// DPI export at t/t_dpi_arg_output_unpack.v:455:18
extern void e_chandle_0d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:458:18
extern void e_chandle_1d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:462:18
extern void e_chandle_2d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:467:18
extern void e_chandle_3d(void** val);
// DPI export at t/t_dpi_arg_output_unpack.v:409:18
extern void e_int_0d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:410:18
extern void e_int_1d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:411:18
extern void e_int_2d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:412:18
extern void e_int_3d(int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:414:18
extern void e_int_unsigned_0d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:415:18
extern void e_int_unsigned_1d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:416:18
extern void e_int_unsigned_2d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:417:18
extern void e_int_unsigned_3d(unsigned int* val);
// DPI export at t/t_dpi_arg_output_unpack.v:437:18
extern void e_integer_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:438:18
extern void e_integer_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:439:18
extern void e_integer_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:440:18
extern void e_integer_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:518:18
extern void e_logic121_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:519:18
extern void e_logic121_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:520:18
extern void e_logic121_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:521:18
extern void e_logic121_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:508:18
extern void e_logic1_0d(svLogic* val);
// DPI export at t/t_dpi_arg_output_unpack.v:509:18
extern void e_logic1_1d(svLogic* val);
// DPI export at t/t_dpi_arg_output_unpack.v:510:18
extern void e_logic1_2d(svLogic* val);
// DPI export at t/t_dpi_arg_output_unpack.v:511:18
extern void e_logic1_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:513:18
extern void e_logic7_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:514:18
extern void e_logic7_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:515:18
extern void e_logic7_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:516:18
extern void e_logic7_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:419:18
extern void e_longint_0d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:420:18
extern void e_longint_1d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:421:18
extern void e_longint_2d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:422:18
extern void e_longint_3d(long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:424:18
extern void e_longint_unsigned_0d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:425:18
extern void e_longint_unsigned_1d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:426:18
extern void e_longint_unsigned_2d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:427:18
extern void e_longint_unsigned_3d(unsigned long long* val);
// DPI export at t/t_dpi_arg_output_unpack.v:523:18
extern void e_pack_struct_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:524:18
extern void e_pack_struct_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:525:18
extern void e_pack_struct_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:526:18
extern void e_pack_struct_3d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:443:18
extern void e_real_0d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:444:18
extern void e_real_1d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:445:18
extern void e_real_2d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:446:18
extern void e_real_3d(double* val);
// DPI export at t/t_dpi_arg_output_unpack.v:399:18
extern void e_shortint_0d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:400:18
extern void e_shortint_1d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:401:18
extern void e_shortint_2d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:402:18
extern void e_shortint_3d(short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:404:18
extern void e_shortint_unsigned_0d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:405:18
extern void e_shortint_unsigned_1d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:406:18
extern void e_shortint_unsigned_2d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:407:18
extern void e_shortint_unsigned_3d(unsigned short* val);
// DPI export at t/t_dpi_arg_output_unpack.v:474:18
extern void e_string_0d(const char** val);
// DPI export at t/t_dpi_arg_output_unpack.v:477:18
extern void e_string_1d(const char** val);
// DPI export at t/t_dpi_arg_output_unpack.v:481:18
extern void e_string_2d(const char** val);
// DPI export at t/t_dpi_arg_output_unpack.v:486:18
extern void e_string_3d(const char** val);
// DPI export at t/t_dpi_arg_output_unpack.v:430:18
extern void e_time_0d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:431:18
extern void e_time_1d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:432:18
extern void e_time_2d(svLogicVecVal* val);
// DPI export at t/t_dpi_arg_output_unpack.v:433:18
extern void e_time_3d(svLogicVecVal* val);
// DPI IMPORTS
// DPI import at t/t_dpi_arg_output_unpack.v:505:41
// DPI import at t/t_dpi_arg_output_unpack.v:553:41
extern void check_exports();
// DPI import at t/t_dpi_arg_output_unpack.v:123:36
// DPI import at t/t_dpi_arg_output_unpack.v:129:36
extern void* get_non_null();
// DPI import at t/t_dpi_arg_output_unpack.v:206:33
extern void i_bit121_0d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:207:33
extern void i_bit121_1d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:208:33
extern void i_bit121_2d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:209:33
extern void i_bit121_3d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:201:33
extern void i_bit7_0d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:202:33
extern void i_bit7_1d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:203:33
extern void i_bit7_2d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:204:33
extern void i_bit7_3d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:125:33
extern void i_byte_0d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:126:33
extern void i_byte_1d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:127:33
extern void i_byte_2d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:128:33
extern void i_byte_3d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:130:33
extern void i_byte_unsigned_0d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:131:33
extern void i_byte_unsigned_1d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:132:33
extern void i_byte_unsigned_2d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:133:33
extern void i_byte_unsigned_3d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:191:33
extern void i_chandle_0d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:192:33
extern void i_chandle_1d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:193:33
extern void i_chandle_2d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:194:33
extern void i_chandle_3d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:145:33
extern void i_int_0d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:146:33
extern void i_int_1d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:147:33
extern void i_int_2d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:148:33
extern void i_int_3d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:150:33
extern void i_int_unsigned_0d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:151:33
extern void i_int_unsigned_1d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:152:33
extern void i_int_unsigned_2d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:153:33
extern void i_int_unsigned_3d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:173:33
extern void i_integer_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:174:33
extern void i_integer_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:175:33
extern void i_integer_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:176:33
extern void i_integer_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:216:33
extern void i_logic121_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:217:33
extern void i_logic121_1d(svLogicVecVal* val);
extern void i_bit121_0d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:218:33
extern void i_logic121_2d(svLogicVecVal* val);
extern void i_bit121_1d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:219:33
extern void i_logic121_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:211:33
extern void i_logic7_0d(svLogicVecVal* val);
extern void i_bit121_2d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:220:33
extern void i_bit121_3d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:207:33
extern void i_bit1_0d(svBit* val);
// DPI import at t/t_dpi_arg_output_unpack.v:208:33
extern void i_bit1_1d(svBit* val);
// DPI import at t/t_dpi_arg_output_unpack.v:209:33
extern void i_bit1_2d(svBit* val);
// DPI import at t/t_dpi_arg_output_unpack.v:210:33
extern void i_bit1_3d(svBit* val);
// DPI import at t/t_dpi_arg_output_unpack.v:212:33
extern void i_logic7_1d(svLogicVecVal* val);
extern void i_bit7_0d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:213:33
extern void i_logic7_2d(svLogicVecVal* val);
extern void i_bit7_1d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:214:33
extern void i_logic7_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:155:33
extern void i_longint_0d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:156:33
extern void i_longint_1d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:157:33
extern void i_longint_2d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:158:33
extern void i_longint_3d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:160:33
extern void i_longint_unsigned_0d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:161:33
extern void i_longint_unsigned_1d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:162:33
extern void i_longint_unsigned_2d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:163:33
extern void i_longint_unsigned_3d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:221:33
extern void i_pack_struct_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:222:33
extern void i_pack_struct_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:223:33
extern void i_pack_struct_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:224:33
extern void i_pack_struct_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:179:33
extern void i_real_0d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:180:33
extern void i_real_1d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:181:33
extern void i_real_2d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:182:33
extern void i_real_3d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:135:33
extern void i_shortint_0d(short* val);
extern void i_bit7_2d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:215:33
extern void i_bit7_3d(svBitVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:131:33
extern void i_byte_0d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:132:33
extern void i_byte_1d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:133:33
extern void i_byte_2d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:134:33
extern void i_byte_3d(char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:136:33
extern void i_shortint_1d(short* val);
extern void i_byte_unsigned_0d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:137:33
extern void i_shortint_2d(short* val);
extern void i_byte_unsigned_1d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:138:33
extern void i_shortint_3d(short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:140:33
extern void i_shortint_unsigned_0d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:141:33
extern void i_shortint_unsigned_1d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:142:33
extern void i_shortint_unsigned_2d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:143:33
extern void i_shortint_unsigned_3d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:196:33
extern void i_string_0d(const char** val);
extern void i_byte_unsigned_2d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:139:33
extern void i_byte_unsigned_3d(unsigned char* val);
// DPI import at t/t_dpi_arg_output_unpack.v:197:33
extern void i_string_1d(const char** val);
extern void i_chandle_0d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:198:33
extern void i_string_2d(const char** val);
extern void i_chandle_1d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:199:33
extern void i_string_3d(const char** val);
extern void i_chandle_2d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:200:33
extern void i_chandle_3d(void** val);
// DPI import at t/t_dpi_arg_output_unpack.v:151:33
extern void i_int_0d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:152:33
extern void i_int_1d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:153:33
extern void i_int_2d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:154:33
extern void i_int_3d(int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:156:33
extern void i_int_unsigned_0d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:157:33
extern void i_int_unsigned_1d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:158:33
extern void i_int_unsigned_2d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:159:33
extern void i_int_unsigned_3d(unsigned int* val);
// DPI import at t/t_dpi_arg_output_unpack.v:179:33
extern void i_integer_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:180:33
extern void i_integer_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:181:33
extern void i_integer_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:182:33
extern void i_integer_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:232:33
extern void i_logic121_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:233:33
extern void i_logic121_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:234:33
extern void i_logic121_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:235:33
extern void i_logic121_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:222:33
extern void i_logic1_0d(svLogic* val);
// DPI import at t/t_dpi_arg_output_unpack.v:223:33
extern void i_logic1_1d(svLogic* val);
// DPI import at t/t_dpi_arg_output_unpack.v:224:33
extern void i_logic1_2d(svLogic* val);
// DPI import at t/t_dpi_arg_output_unpack.v:225:33
extern void i_logic1_3d(svLogic* val);
// DPI import at t/t_dpi_arg_output_unpack.v:227:33
extern void i_logic7_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:228:33
extern void i_logic7_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:229:33
extern void i_logic7_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:230:33
extern void i_logic7_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:161:33
extern void i_longint_0d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:162:33
extern void i_longint_1d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:163:33
extern void i_longint_2d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:164:33
extern void i_longint_3d(long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:166:33
extern void i_time_0d(svLogicVecVal* val);
extern void i_longint_unsigned_0d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:167:33
extern void i_time_1d(svLogicVecVal* val);
extern void i_longint_unsigned_1d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:168:33
extern void i_time_2d(svLogicVecVal* val);
extern void i_longint_unsigned_2d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:169:33
extern void i_longint_unsigned_3d(unsigned long long* val);
// DPI import at t/t_dpi_arg_output_unpack.v:237:33
extern void i_pack_struct_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:238:33
extern void i_pack_struct_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:239:33
extern void i_pack_struct_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:240:33
extern void i_pack_struct_3d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:185:33
extern void i_real_0d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:186:33
extern void i_real_1d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:187:33
extern void i_real_2d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:188:33
extern void i_real_3d(double* val);
// DPI import at t/t_dpi_arg_output_unpack.v:141:33
extern void i_shortint_0d(short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:142:33
extern void i_shortint_1d(short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:143:33
extern void i_shortint_2d(short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:144:33
extern void i_shortint_3d(short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:146:33
extern void i_shortint_unsigned_0d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:147:33
extern void i_shortint_unsigned_1d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:148:33
extern void i_shortint_unsigned_2d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:149:33
extern void i_shortint_unsigned_3d(unsigned short* val);
// DPI import at t/t_dpi_arg_output_unpack.v:202:33
extern void i_string_0d(const char** val);
// DPI import at t/t_dpi_arg_output_unpack.v:203:33
extern void i_string_1d(const char** val);
// DPI import at t/t_dpi_arg_output_unpack.v:204:33
extern void i_string_2d(const char** val);
// DPI import at t/t_dpi_arg_output_unpack.v:205:33
extern void i_string_3d(const char** val);
// DPI import at t/t_dpi_arg_output_unpack.v:172:33
extern void i_time_0d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:173:33
extern void i_time_1d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:174:33
extern void i_time_2d(svLogicVecVal* val);
// DPI import at t/t_dpi_arg_output_unpack.v:175:33
extern void i_time_3d(svLogicVecVal* val);
#ifdef __cplusplus