/**********************************************************************/ /* ____ ____ */ /* / /\/ / */ /* /___/ \ / */ /* \ \ \/ */ /* \ \ Copyright (c) 2003-2020 Xilinx, Inc. */ /* / / All Right Reserved. */ /* /---/ /\ */ /* \ \ / \ */ /* \___\/\___\ */ /**********************************************************************/ #if defined(_WIN32) #include "stdio.h" #define IKI_DLLESPEC __declspec(dllimport) #else #define IKI_DLLESPEC #endif #include "iki.h" #include #include #ifdef __GNUC__ #include #else #include #define alloca _alloca #endif /**********************************************************************/ /* ____ ____ */ /* / /\/ / */ /* /___/ \ / */ /* \ \ \/ */ /* \ \ Copyright (c) 2003-2020 Xilinx, Inc. */ /* / / All Right Reserved. */ /* /---/ /\ */ /* \ \ / \ */ /* \___\/\___\ */ /**********************************************************************/ #if defined(_WIN32) #include "stdio.h" #define IKI_DLLESPEC __declspec(dllimport) #else #define IKI_DLLESPEC #endif #include "iki.h" #include #include #ifdef __GNUC__ #include #else #include #define alloca _alloca #endif typedef void (*funcp)(char *, char *); extern int main(int, char**); IKI_DLLESPEC extern void execute_40(char*, char *); IKI_DLLESPEC extern void execute_41(char*, char *); IKI_DLLESPEC extern void execute_37(char*, char *); IKI_DLLESPEC extern void execute_39(char*, char *); IKI_DLLESPEC extern void transaction_0(char*, char*, unsigned, unsigned, unsigned); IKI_DLLESPEC extern void transaction_1(char*, char*, unsigned, unsigned, unsigned); IKI_DLLESPEC extern void vhdl_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); funcp funcTab[7] = {(funcp)execute_40, (funcp)execute_41, (funcp)execute_37, (funcp)execute_39, (funcp)transaction_0, (funcp)transaction_1, (funcp)vhdl_transfunc_eventcallback}; const int NumRelocateId= 7; void relocate(char *dp) { iki_relocate(dp, "xsim.dir/pwm_test_db_behav/xsim.reloc", (void **)funcTab, 7); iki_vhdl_file_variable_register(dp + 6264); iki_vhdl_file_variable_register(dp + 6320); /*Populate the transaction function pointer field in the whole net structure */ } void sensitize(char *dp) { iki_sensitize(dp, "xsim.dir/pwm_test_db_behav/xsim.reloc"); } void simulate(char *dp) { iki_schedule_processes_at_time_zero(dp, "xsim.dir/pwm_test_db_behav/xsim.reloc"); // Initialize Verilog nets in mixed simulation, for the cases when the value at time 0 should be propagated from the mixed language Vhdl net iki_execute_processes(); // Schedule resolution functions for the multiply driven Verilog nets that have strength // Schedule transaction functions for the singly driven Verilog nets that have strength } #include "iki_bridge.h" void relocate(char *); void sensitize(char *); void simulate(char *); extern SYSTEMCLIB_IMP_DLLSPEC void local_register_implicit_channel(int, char*); extern SYSTEMCLIB_IMP_DLLSPEC int xsim_argc_copy ; extern SYSTEMCLIB_IMP_DLLSPEC char** xsim_argv_copy ; int main(int argc, char **argv) { iki_heap_initialize("ms", "isimmm", 0, 2147483648) ; iki_set_sv_type_file_path_name("xsim.dir/pwm_test_db_behav/xsim.svtype"); iki_set_crvs_dump_file_path_name("xsim.dir/pwm_test_db_behav/xsim.crvsdump"); void* design_handle = iki_create_design("xsim.dir/pwm_test_db_behav/xsim.mem", (void *)relocate, (void *)sensitize, (void *)simulate, (void*)0, 0, isimBridge_getWdbWriter(), 0, argc, argv); iki_set_rc_trial_count(100); (void) design_handle; return iki_simulate_design(); }