void sys_plusargs_register(void) { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$test$plusargs"; tf_data.calltf = sys_test_plusargs_calltf; tf_data.compiletf = sys_one_string_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$test$plusargs"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$value$plusargs"; tf_data.calltf = sys_value_plusargs_calltf; tf_data.compiletf = sys_value_plusargs_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$value$plusargs"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_scanf_register() { s_vpi_systf_data tf_data; vpiHandle res; /*============================== fscanf */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fscanf"; tf_data.calltf = sys_fscanf_calltf; tf_data.compiletf = sys_fscanf_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fscanf"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== sscanf */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$sscanf"; tf_data.calltf = sys_sscanf_calltf; tf_data.compiletf = sys_sscanf_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$sscanf"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_readmem_register() { s_vpi_systf_data tf_data; vpiHandle res; s_cb_data cb_data; tf_data.type = vpiSysTask; tf_data.tfname = "$readmemh"; tf_data.calltf = sys_readmem_calltf; tf_data.compiletf = sys_mem_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$readmemh"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$readmemb"; tf_data.calltf = sys_readmem_calltf; tf_data.compiletf = sys_mem_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$readmemb"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$readmempath"; tf_data.calltf = sys_readmempath_calltf; tf_data.compiletf = sys_one_string_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$readmempath"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$writememh"; tf_data.calltf = sys_writemem_calltf; tf_data.compiletf = sys_mem_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$writememh"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$writememb"; tf_data.calltf = sys_writemem_calltf; tf_data.compiletf = sys_mem_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$writememb"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); cb_data.reason = cbEndOfSimulation; cb_data.time = 0; cb_data.cb_rtn = free_readmempath; cb_data.user_data = "system"; vpi_register_cb(&cb_data); }
void sys_time_register() { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.tfname = "$time"; tf_data.sysfunctype = vpiTimeFunc; tf_data.calltf = sys_time_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$time"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.tfname = "$realtime"; tf_data.sysfunctype = vpiRealFunc; tf_data.calltf = sys_realtime_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$realtime"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.tfname = "$stime"; tf_data.sysfunctype = vpiIntFunc; tf_data.calltf = sys_time_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$stime"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.tfname = "$simtime"; tf_data.sysfunctype = vpiTimeFunc; tf_data.calltf = sys_time_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$simtime"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.tfname = "$abstime"; tf_data.sysfunctype = vpiRealFunc; tf_data.calltf = sys_realtime_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$abstime"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
/* * Routine to register the system function provided in this file. */ void table_model_register() { s_vpi_systf_data tf_data; s_cb_data cb; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiSysFuncReal; tf_data.tfname = "$table_model"; tf_data.calltf = sys_table_model_calltf; tf_data.compiletf = sys_table_model_compiletf; tf_data.sizetf = 0; /* Not needed for a vpiSysFuncReal. */ tf_data.user_data = "$table_model"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /* Create a callback to clear all the table model memory when the * simulator finishes. */ cb.time = NULL; cb.reason = cbEndOfSimulation; cb.cb_rtn = cleanup_table_mod; cb.user_data = 0x0; cb.obj = 0x0; vpi_register_cb(&cb); }
static void vhdl_register(void) { s_vpi_systf_data tf_data; s_cb_data cb; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiSizedFunc; tf_data.calltf = ivlh_attribute_event_calltf; tf_data.compiletf = ivlh_attribute_event_compiletf; tf_data.sizetf = ivlh_attribute_event_sizetf; tf_data.tfname = func_names[EVENT]; tf_data.user_data = (PLI_BYTE8*) EVENT; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiSizedFunc; tf_data.calltf = ivlh_attribute_event_calltf; tf_data.compiletf = ivlh_attribute_event_compiletf; tf_data.sizetf = ivlh_attribute_event_sizetf; tf_data.tfname = func_names[RISING_EDGE]; tf_data.user_data = (PLI_BYTE8*) RISING_EDGE; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiSizedFunc; tf_data.calltf = ivlh_attribute_event_calltf; tf_data.compiletf = ivlh_attribute_event_compiletf; tf_data.sizetf = ivlh_attribute_event_sizetf; tf_data.tfname = func_names[FALLING_EDGE]; tf_data.user_data = (PLI_BYTE8*) FALLING_EDGE; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /* Create a callback to clear the monitor data memory when the * simulator finishes. */ cb.time = NULL; cb.reason = cbEndOfSimulation; cb.cb_rtn = cleanup_mdata; cb.user_data = NULL; cb.obj = NULL; vpi_register_cb(&cb); }
/* * Register all the functions with Verilog. */ static void va_math_register(void) { s_cb_data cb_data; s_vpi_systf_data tf_data; vpiHandle res; unsigned idx; /* Register the single argument functions. */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiRealFunc; tf_data.calltf = va_single_argument_calltf; tf_data.compiletf = va_single_argument_compiletf; tf_data.sizetf = 0; for (idx=0; va_single_data[idx].name != 0; idx++) { tf_data.tfname = va_single_data[idx].name; tf_data.user_data = (PLI_BYTE8 *) &va_single_data[idx]; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); } /* Register the double argument functions. */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiRealFunc; tf_data.calltf = va_double_argument_calltf; tf_data.compiletf = va_double_argument_compiletf; tf_data.sizetf = 0; for (idx=0; va_double_data[idx].name != 0; idx++) { tf_data.tfname = va_double_data[idx].name; tf_data.user_data = (PLI_BYTE8 *) &va_double_data[idx]; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); } /* We need to clean up the userdata. */ cb_data.reason = cbEndOfSimulation; cb_data.time = 0; cb_data.cb_rtn = sys_end_of_simulation; cb_data.user_data = "system"; vpi_register_cb(&cb_data); }
void sys_convert_register(void) { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.user_data = "$bitstoreal"; tf_data.tfname = tf_data.user_data; tf_data.sizetf = sizetf_64; tf_data.compiletf = sys_convert_compiletf; tf_data.calltf = sys_bitstoreal_calltf; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.user_data = "$itor"; tf_data.tfname = tf_data.user_data; tf_data.sizetf = sizetf_64; tf_data.compiletf = sys_convert_compiletf; tf_data.calltf = sys_itor_calltf; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.user_data = "$realtobits"; tf_data.tfname = tf_data.user_data; tf_data.sizetf = sizetf_64; tf_data.compiletf = sys_convert_compiletf; tf_data.calltf = sys_realtobits_calltf; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.user_data = "$rtoi"; tf_data.tfname = tf_data.user_data; tf_data.sizetf = sizetf_32; tf_data.compiletf = sys_convert_compiletf; tf_data.calltf = sys_rtoi_calltf; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_deposit_register(void) { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysTask; tf_data.tfname = "$deposit"; tf_data.calltf = sys_deposit_calltf; tf_data.compiletf = sys_deposit_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$deposit"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_random_mti_register() { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiSysFuncInt; tf_data.tfname = "$mti_random"; tf_data.calltf = sys_mti_random_calltf; tf_data.compiletf = sys_random_compiletf; tf_data.user_data = "$mti_random"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiSysFuncInt; tf_data.tfname = "$mti_dist_uniform"; tf_data.calltf = sys_mti_dist_uniform_calltf; tf_data.compiletf = sys_rand_three_args_compiletf; tf_data.user_data = "$mti_dist_uniform"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_sdf_register() { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysTask; tf_data.tfname = "$sdf_annotate"; tf_data.calltf = sys_sdf_annotate_calltf; tf_data.compiletf = sys_sdf_annotate_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$sdf_annotate"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_finish_register(void) { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysTask; tf_data.tfname = "$finish"; tf_data.calltf = sys_finish_calltf; tf_data.compiletf = sys_one_opt_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$finish"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$stop"; tf_data.calltf = sys_finish_calltf; tf_data.compiletf = sys_one_opt_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$stop"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
/* * Routine to register the system tasks/functions provided in this file. */ void sys_countdrivers_register() { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.tfname = "$countdrivers"; tf_data.calltf = sys_countdrivers_calltf; tf_data.compiletf = sys_countdrivers_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$countdrivers"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_darray_register(void) { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$size"; tf_data.calltf = size_calltf; tf_data.compiletf = one_darray_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$size"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
/* * Register the function with Verilog. */ void sys_clog2_register(void) { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.calltf = sys_clog2_calltf; tf_data.compiletf = sys_clog2_compiletf; tf_data.sizetf = 0; tf_data.tfname = "$clog2"; tf_data.user_data = 0; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
/* * Register the function with Verilog. */ void sys_special_register(void) { s_vpi_systf_data tf_data; vpiHandle res; tf_data.type = vpiSysTask; tf_data.calltf = finish_and_return_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.tfname = "$finish_and_return"; tf_data.user_data = "$finish_and_return"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /* These tasks are not currently implemented. */ tf_data.type = vpiSysTask; tf_data.calltf = 0; tf_data.sizetf = 0; tf_data.compiletf = task_not_implemented_compiletf; tf_data.tfname = "$fmonitor"; tf_data.user_data = "$fmonitor"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$fmonitorb"; tf_data.user_data = "$fmonitorb"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$fmonitoro"; tf_data.user_data = "$fmonitoro"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$fmonitorh"; tf_data.user_data = "$fmonitorh"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$and$array"; tf_data.user_data = "$async$and$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$nand$array"; tf_data.user_data = "$async$nand$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$or$array"; tf_data.user_data = "$async$or$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$nor$array"; tf_data.user_data = "$async$nor$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$and$plane"; tf_data.user_data = "$async$and$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$nand$plane"; tf_data.user_data = "$async$nand$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$or$plane"; tf_data.user_data = "$async$or$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$async$nor$plane"; tf_data.user_data = "$async$nor$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$and$array"; tf_data.user_data = "$sync$and$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$nand$array"; tf_data.user_data = "$sync$nand$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$or$array"; tf_data.user_data = "$sync$or$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$nor$array"; tf_data.user_data = "$sync$nor$array"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$and$plane"; tf_data.user_data = "$sync$and$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$nand$plane"; tf_data.user_data = "$sync$nand$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$or$plane"; tf_data.user_data = "$sync$or$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sync$nor$plane"; tf_data.user_data = "$sync$nor$plane"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$q_initialize"; tf_data.user_data = "$q_initialize"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$q_add"; tf_data.user_data = "$q_add"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$q_remove"; tf_data.user_data = "$q_remove"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$q_full"; tf_data.user_data = "$q_full"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$q_exam"; tf_data.user_data = "$q_exam"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$dumpports"; tf_data.user_data = "$dumpports"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$dumpportsoff"; tf_data.user_data = "$dumpportsoff"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$dumpportson"; tf_data.user_data = "$dumpportson"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$dumpportsall"; tf_data.user_data = "$dumpportsall"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$dumpportslimit"; tf_data.user_data = "$dumpportslimit"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$dumpportsflush"; tf_data.user_data = "$dumpportsflush"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /* The following optional system tasks/functions are not implemented * in Icarus Verilog (from Annex C 1364-2005). */ tf_data.type = vpiSysTask; tf_data.calltf = 0; tf_data.sizetf = 0; tf_data.compiletf = missing_optional_compiletf; tf_data.tfname = "$input"; tf_data.user_data = "$input"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$key"; tf_data.user_data = "$key"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$nokey"; tf_data.user_data = "$nokey"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$list"; tf_data.user_data = "$list"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$log"; tf_data.user_data = "$log"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$nolog"; tf_data.user_data = "$nolog"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$save"; tf_data.user_data = "$save"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$restart"; tf_data.user_data = "$restart"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$incsave"; tf_data.user_data = "$incsave"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$scope"; tf_data.user_data = "$scope"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$showscopes"; tf_data.user_data = "$showscopes"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$showvars"; tf_data.user_data = "$showvars"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sreadmemb"; tf_data.user_data = "$sreadmemb"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$sreadmemh"; tf_data.user_data = "$sreadmemh"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /* Optional functions. */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$countdrivers"; tf_data.user_data = "$countdrivers"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$getpattern"; tf_data.user_data = "$getpattern"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.tfname = "$scale"; tf_data.user_data = "$scale"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_vcd_register(void) { s_vpi_systf_data tf_data; vpiHandle res; /* All the compiletf routines are located in vcd_priv.c. */ tf_data.type = vpiSysTask; tf_data.tfname = "$dumpall"; tf_data.calltf = sys_dumpall_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpall"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpfile"; tf_data.calltf = sys_dumpfile_calltf; tf_data.compiletf = sys_one_string_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpfile"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpflush"; tf_data.calltf = sys_dumpflush_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpflush"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumplimit"; tf_data.calltf = sys_dumplimit_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumplimit"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpoff"; tf_data.calltf = sys_dumpoff_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpoff"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpon"; tf_data.calltf = sys_dumpon_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpon"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpvars"; tf_data.calltf = sys_dumpvars_calltf; tf_data.compiletf = sys_dumpvars_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpvars"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_fileio_register() { s_vpi_systf_data tf_data; vpiHandle res; /*============================== fopen */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fopen"; tf_data.calltf = sys_fopen_calltf; tf_data.compiletf = sys_fopen_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fopen"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fopenr */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fopenr"; tf_data.calltf = sys_fopenrwa_calltf; tf_data.compiletf = sys_one_string_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fopenr"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fopenw */ tf_data.tfname = "$fopenw"; tf_data.user_data = "$fopenw"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fopena */ tf_data.tfname = "$fopena"; tf_data.user_data = "$fopena"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fclose */ tf_data.type = vpiSysTask; tf_data.tfname = "$fclose"; tf_data.calltf = sys_fclose_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fclose"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fflush */ tf_data.type = vpiSysTask; tf_data.tfname = "$fflush"; tf_data.calltf = sys_fflush_calltf; tf_data.compiletf = sys_one_opt_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fflush"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fgetc */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fgetc"; tf_data.calltf = sys_common_fd_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fgetc"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fgets */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fgets"; tf_data.calltf = sys_fgets_calltf; tf_data.compiletf = sys_fgets_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fgets"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fread */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fread"; tf_data.calltf = sys_fread_calltf; tf_data.compiletf = sys_fread_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fread"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== ungetc */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$ungetc"; tf_data.calltf = sys_ungetc_calltf; tf_data.compiletf = sys_two_numeric_args_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$ungetc"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== ftell */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$ftell"; tf_data.calltf = sys_common_fd_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$ftell"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== fseek */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fseek"; tf_data.calltf = sys_fseek_calltf; tf_data.compiletf = sys_fseek_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fseek"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); vpip_make_systf_system_defined(res); /*============================== rewind */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$rewind"; tf_data.calltf = sys_common_fd_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$rewind"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /*============================== ferror */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$ferror"; tf_data.calltf = sys_ferror_calltf; tf_data.compiletf = sys_ferror_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$ferror"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /* $feof() is from 1364-2005. */ /*============================== feof */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$feof"; tf_data.calltf = sys_common_fd_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$feof"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); /* Icarus specific. */ /*============================== fputc */ tf_data.type = vpiSysFunc; tf_data.sysfunctype = vpiIntFunc; tf_data.tfname = "$fputc"; tf_data.calltf = sys_fputc_calltf; tf_data.compiletf = sys_two_numeric_args_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$fputc"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }
void sys_fst_register(void) { int idx; struct t_vpi_vlog_info vlog_info; s_vpi_systf_data tf_data; vpiHandle res; /* Scan the extended arguments, looking for fst optimization flags. */ vpi_get_vlog_info(&vlog_info); /* The "speed" option is not used in this dumper. */ for (idx = 0 ; idx < vlog_info.argc ; idx += 1) { if (strcmp(vlog_info.argv[idx],"-fst-space") == 0) { lxm_optimum_mode = LXM_SPACE; } else if (strcmp(vlog_info.argv[idx],"-fst-speed") == 0) { lxm_optimum_mode = LXM_SPEED; } else if (strcmp(vlog_info.argv[idx],"-fst-space-speed") == 0) { lxm_optimum_mode = LXM_BOTH; } else if (strcmp(vlog_info.argv[idx],"-fst-speed-space") == 0) { lxm_optimum_mode = LXM_BOTH; } } /* All the compiletf routines are located in vcd_priv.c. */ tf_data.type = vpiSysTask; tf_data.tfname = "$dumpall"; tf_data.calltf = sys_dumpall_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpall"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpfile"; tf_data.calltf = sys_dumpfile_calltf; tf_data.compiletf = sys_one_string_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpfile"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpflush"; tf_data.calltf = sys_dumpflush_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpflush"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumplimit"; tf_data.calltf = sys_dumplimit_calltf; tf_data.compiletf = sys_one_numeric_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumplimit"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpoff"; tf_data.calltf = sys_dumpoff_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpoff"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpon"; tf_data.calltf = sys_dumpon_calltf; tf_data.compiletf = sys_no_arg_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpon"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); tf_data.type = vpiSysTask; tf_data.tfname = "$dumpvars"; tf_data.calltf = sys_dumpvars_calltf; tf_data.compiletf = sys_dumpvars_compiletf; tf_data.sizetf = 0; tf_data.user_data = "$dumpvars"; res = vpi_register_systf(&tf_data); vpip_make_systf_system_defined(res); }