From 07e6545d2af718eabf5d0eb486a2b9bca43693d7 Mon Sep 17 00:00:00 2001 From: un-lock-able Date: Wed, 10 Jul 2024 13:32:04 +0800 Subject: [PATCH] Make compiler happy --- .../sim_1/behav/xsim/InstFetch.tcl | 11 + PipelineProcessor.sim/sim_1/behav/xsim/glbl.v | 84 ++++ .../sim_1/behav/xsim/test_cpu.tcl | 11 + .../sim_1/behav/xsim/test_cpu_vlog.prj | 26 ++ .../sim_1/behav/xsim/xelab.pb | Bin 0 -> 5706 bytes .../InstFetch_behav/Compile_Options.txt | 1 + .../InstFetch_behav/TempBreakPointFile.txt | 1 + .../xsim.dir/InstFetch_behav/obj/xsim_1.c | 119 ++++++ .../xsim/xsim.dir/InstFetch_behav/xsim.mem | Bin 0 -> 3063 bytes .../test_cpu_behav/Compile_Options.txt | 1 + .../test_cpu_behav/TempBreakPointFile.txt | 1 + .../xsim/xsim.dir/test_cpu_behav/obj/xsim_2.c | 389 ++++++++++++++++++ .../xsim/xsim.dir/test_cpu_behav/xsim.mem | Bin 0 -> 17511 bytes .../sim_1/behav/xsim/xvlog.pb | Bin 0 -> 5291 bytes PipelineProcessor.srcs/sim_1/new/test_cpu.v | 20 + PipelineProcessor.srcs/sources_1/new/ALU.v | 38 +- PipelineProcessor.srcs/sources_1/new/CPU.v | 10 +- .../sources_1/new/ExecutionForward.v | 16 +- PipelineProcessor.xpr | 28 +- 19 files changed, 714 insertions(+), 42 deletions(-) create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/InstFetch.tcl create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/glbl.v create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/test_cpu.tcl create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/test_cpu_vlog.prj create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xelab.pb create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/Compile_Options.txt create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/TempBreakPointFile.txt create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/obj/xsim_1.c create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/xsim.mem create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/Compile_Options.txt create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/TempBreakPointFile.txt create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/obj/xsim_2.c create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/xsim.mem create mode 100644 PipelineProcessor.sim/sim_1/behav/xsim/xvlog.pb create mode 100644 PipelineProcessor.srcs/sim_1/new/test_cpu.v diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/InstFetch.tcl b/PipelineProcessor.sim/sim_1/behav/xsim/InstFetch.tcl new file mode 100644 index 0000000..1094e45 --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/InstFetch.tcl @@ -0,0 +1,11 @@ +set curr_wave [current_wave_config] +if { [string length $curr_wave] == 0 } { + if { [llength [get_objects]] > 0} { + add_wave / + set_property needs_save false [current_wave_config] + } else { + send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console." + } +} + +run 1000ns diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/glbl.v b/PipelineProcessor.sim/sim_1/behav/xsim/glbl.v new file mode 100644 index 0000000..ed3b249 --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/glbl.v @@ -0,0 +1,84 @@ +// $Header: /devl/xcs/repo/env/Databases/CAEInterfaces/verunilibs/data/glbl.v,v 1.14 2010/10/28 20:44:00 fphillip Exp $ +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + parameter GRES_WIDTH = 10000; + parameter GRES_START = 10000; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + wire GRESTORE; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + wire PROGB_GLBL; + wire CCLKO_GLBL; + wire FCSBO_GLBL; + wire [3:0] DO_GLBL; + wire [3:0] DI_GLBL; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + reg GRESTORE_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (strong1, weak0) GSR = GSR_int; + assign (strong1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + assign (strong1, weak0) GRESTORE = GRESTORE_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + + initial begin + GRESTORE_int = 1'b0; + #(GRES_START); + GRESTORE_int = 1'b1; + #(GRES_WIDTH); + GRESTORE_int = 1'b0; + end + +endmodule +`endif diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/test_cpu.tcl b/PipelineProcessor.sim/sim_1/behav/xsim/test_cpu.tcl new file mode 100644 index 0000000..1094e45 --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/test_cpu.tcl @@ -0,0 +1,11 @@ +set curr_wave [current_wave_config] +if { [string length $curr_wave] == 0 } { + if { [llength [get_objects]] > 0} { + add_wave / + set_property needs_save false [current_wave_config] + } else { + send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console." + } +} + +run 1000ns diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/test_cpu_vlog.prj b/PipelineProcessor.sim/sim_1/behav/xsim/test_cpu_vlog.prj new file mode 100644 index 0000000..c2720cc --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/test_cpu_vlog.prj @@ -0,0 +1,26 @@ +# compile verilog/system verilog design source files +verilog xil_defaultlib --include "../../../../PipelineProcessor.ip_user_files/ipstatic" \ +"../../../../PipelineProcessor.gen/sources_1/ip/phase_locked_loop/phase_locked_loop_clk_wiz.v" \ +"../../../../PipelineProcessor.gen/sources_1/ip/phase_locked_loop/phase_locked_loop.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/ALU.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/ControlUnit.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/DataMemory.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/Execution.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/ExecutionForward.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/HazardUnit.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/ImmediateExtender.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/InstDecode.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/InstFetch.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/InstructionMemory.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/MemoryAccess.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/MemoryForward.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/RegisterFile.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/WriteBack.v" \ +"../../../../PipelineProcessor.srcs/sources_1/new/CPU.v" \ +"../../../../PipelineProcessor.srcs/sim_1/new/test_cpu.v" \ + +# compile glbl module +verilog xil_defaultlib "glbl.v" + +# Do not sort compile order +nosort diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xelab.pb b/PipelineProcessor.sim/sim_1/behav/xsim/xelab.pb new file mode 100644 index 0000000000000000000000000000000000000000..27c36ecc1591f6bca91b7cbe743cb22c0b88cf70 GIT binary patch literal 5706 zcmc&&TW=dh7_FT&p;In~a!nhUf})nTS$i*b>`F)^c2c4ysY&CuRKRMzJGO`J&a7r; zZ6^qcMx=NoVrEUj_4#zAIrWx>*O zH!g4-M7|>^Gu{B12e|Ec6y86by8xEkM$RxbRcubeoldf z9#|abJMe9phQ|yyTLS8(Vqsk(81NDHG3nldyTsMtrtiZ;^#O;6h$GfUo(7(-QVY~7 z6K;BKhq%at``Bd^R!|$eh)+O?oA*l^ynGlDf=ToCkhE!gCEk{x3imJ=wsIr zm=d1to0{!=BirYntz(jnNQXILh`ekElY*tuY!~@XT|-?2*Vi#|nf&okJ!(R697;T2 zj+y+VD}Mt44Y(YX!^p0qmeU@C)`tI%&o}+LG|Z<>sH~^V5lB;`evB=v6nEklc&Emt2c-ic z_nkI^qQ#Ko^>fJF*oeDx0i*_*VwKEMlq>gz!-N9jLi*V~-CMf6myV`o#GnSY7;T#^d7>$}OctFX0e4;S#g#rio1hF1ep_m_svhwCg>i(4i6~`5k3{f2m=p)h; zEydBpjRs;IHW&?HgRRtn{oO1UZ;mm{hq>7&dadqJt z0K9~{0uhgfh70U7IM;XO%~3%v_0aHmFHTDKIh6VTLtN#$ZcZrk@6%^~t@q0O3Rv0S z-nSWQVlEJycflKaVS*EWO@W)I0tI3YiIj>iB}7UKDWxfq5>C!4Iike1k}zgow?-w* zGB_^}FC@;mh^11|^%$3Y&KOZDWw2VNLFgl8`E!(`QH(b-edTDD3UTGQ53W7cpZ)em zsxYWdDcJC72Rg*@k2xNwT1y|-kEWF$(T@kwPeg0a%8(J-#658myA3^9Q#SV>8cJo8GHt_A1aBz<+x9hk!OfsMP5pi>hY^- z88TbGoFqG=Hmx&c z+dt-v;rm-M@aNM4zYX3T16B`s$)Gi`x)otx#AU4xQ%cTARU;elM literal 0 HcmV?d00001 diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/Compile_Options.txt b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/Compile_Options.txt new file mode 100644 index 0000000..fa6accc --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/Compile_Options.txt @@ -0,0 +1 @@ +--incr --debug "typical" --relax --mt "2" -L "xil_defaultlib" -L "unisims_ver" -L "unimacro_ver" -L "secureip" -L "xpm" --snapshot "InstFetch_behav" "xil_defaultlib.InstFetch" "xil_defaultlib.glbl" -log "elaborate.log" diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/TempBreakPointFile.txt b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/TempBreakPointFile.txt new file mode 100644 index 0000000..fdbc612 --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/TempBreakPointFile.txt @@ -0,0 +1 @@ +Breakpoint File Version 1.0 diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/obj/xsim_1.c b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/obj/xsim_1.c new file mode 100644 index 0000000..a7a70aa --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/obj/xsim_1.c @@ -0,0 +1,119 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ 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_4(char*, char *); +IKI_DLLESPEC extern void execute_10(char*, char *); +IKI_DLLESPEC extern void execute_11(char*, char *); +IKI_DLLESPEC extern void execute_12(char*, char *); +IKI_DLLESPEC extern void execute_3(char*, char *); +IKI_DLLESPEC extern void execute_6(char*, char *); +IKI_DLLESPEC extern void execute_7(char*, char *); +IKI_DLLESPEC extern void execute_8(char*, char *); +IKI_DLLESPEC extern void execute_9(char*, char *); +IKI_DLLESPEC extern void execute_13(char*, char *); +IKI_DLLESPEC extern void execute_14(char*, char *); +IKI_DLLESPEC extern void execute_15(char*, char *); +IKI_DLLESPEC extern void execute_16(char*, char *); +IKI_DLLESPEC extern void execute_17(char*, char *); +IKI_DLLESPEC extern void execute_18(char*, char *); +IKI_DLLESPEC extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); +funcp funcTab[16] = {(funcp)execute_4, (funcp)execute_10, (funcp)execute_11, (funcp)execute_12, (funcp)execute_3, (funcp)execute_6, (funcp)execute_7, (funcp)execute_8, (funcp)execute_9, (funcp)execute_13, (funcp)execute_14, (funcp)execute_15, (funcp)execute_16, (funcp)execute_17, (funcp)execute_18, (funcp)vlog_transfunc_eventcallback}; +const int NumRelocateId= 16; + +void relocate(char *dp) +{ + iki_relocate(dp, "xsim.dir/InstFetch_behav/xsim.reloc", (void **)funcTab, 16); + + /*Populate the transaction function pointer field in the whole net structure */ +} + +void sensitize(char *dp) +{ + iki_sensitize(dp, "xsim.dir/InstFetch_behav/xsim.reloc"); +} + +void simulate(char *dp) +{ + iki_schedule_processes_at_time_zero(dp, "xsim.dir/InstFetch_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_xsimdir_location_if_remapped(argc, argv) ; + iki_set_sv_type_file_path_name("xsim.dir/InstFetch_behav/xsim.svtype"); + iki_set_crvs_dump_file_path_name("xsim.dir/InstFetch_behav/xsim.crvsdump"); + void* design_handle = iki_create_design("xsim.dir/InstFetch_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(); +} diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/xsim.mem b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/InstFetch_behav/xsim.mem new file mode 100644 index 0000000000000000000000000000000000000000..d055b5e98d0a70a3a0719a98214129d70b6659d9 GIT binary patch literal 3063 zcmeH^do&XY9LI-5=@>&ak1a&FR+nl^jC7eOy*pT}^zcfyBCj>MQV4~-+E|!Jc~)Mn zF=>*!wi+YPjTADq*k#LOyLGE`Zujqd&i%*loZtEVzQ5n^{C?+regMGFwi)?NL%+vY z4nOyo)iQx)0?P!J3H-MNNHUr1tN+-#;z#m5s+j@+N?-D?{^vjD{x$Z$Nv^}U(?yB^ zK!n@}G%G~cNt297K_k&#``cEz=}mN`>hDOrZmwmfDOZ@Jb}tGI@*|#|M!gMdHm1y9 z9!_e+zF*&NfLISBsbRvsR&jM*^dw3SnT;*cf~89S9(euh4x8YuMwNV;_zXeVK+o$N zdRBF?s7}^;mGi03@Y&jF4K5k9YLX24_zH%NxWiay!_k4_5Q^kVy(EN)ow%ag{jdRI zO)R)Z{^HvzhC<1@3>=eQs=6gDYhgF>?pAy~NCnqpZv?vLY2PJp8la8e3`C+Cy@m!4 zG3`F$L=#u5-+`^eV&fS$XSZWH?sX!!ovRE^^^J|Y|7q_Y2KmaunxGhur41`<-Fyp7 z$66pIkB9Bz9u;{cZdw={jCpwGR1JNamT#}DiyI6n6y+Qo54-Zj0IS+*ZzfYIosDYo zv#?GmWnp^sxJr=Z*q3X6txt%9pQk`za*hg?*oggu3<_09<}l^Rl`o*G(lWcS7lN^; z+Q!Ug_6-%;VBang{9VE7S z79nPvXNxWNZLJ4-BXa!LJ)AU{A ziA%#GyWPC(t1R6tC0K;7EuJ|r$qMpK4ommXm6xe|@U!6OG4m96A|WS)#+4=g~}zSEgI;K^@DRGy$GrPe&wj$$i-#c=&~ znTPa}V8}L}`e^WL^W$1NnAjyO{R2iSY1lLY85$3uXDY*@ctbP-c@#Ccg#n8t+WHt8 zWN&0++?AqZthEd{!SOr1ZLG|RnQsYn6kIRx)@ty16TU{Er+2Zs?KZ#%N-O*nr;Fld zAj+hR%yjT+)}PsGd_lT!?yY2|-|=x+ww6F}Jxr-NLX~uMd!1_r7HLjiIR2D11YlF9 z^6=H5Ii^`B?z-cmHwrtnbU2jpKqV>sy@t(jWXDTam#bQ&rB4PNG;Kv*)hY{a1>>W3Z$Nep_62IPvsO8t`^0vw6*7}<87WYd zeQxJc|0x08Z8qdkuymh6J5CyTFXmdHef<1;8r@GB>0crpFO$M=jf9U3FLp&jfOm2o zoLMiPL!?Mau7#NYG|f5^26`#YI5qSXH}t5KBC(9y^aYCfbd#Hi zTwnxPl6rxKPw(U3Y4>8J6v1^;huCm>DWego(u~=gEZicrtECgTpAG$HF6Bw2yE5{N zjMPR35~o=+K2GS(lCSkNNxpI6;sw!V;p>by#Jn-PxVb(cwVA|xrEW>VLfd^-jdJ)W z5IHpghqj=UqH>j|I&tJwtCWG+CT9XGNSk+VKF{J@Y5hnARo7x59?Iz(2+iyY2)?(m zl2<0InEG72y|k=~nkOEb)#8hLh{c80)m63qkViqM{nk$%AvwKM$3~a;OndDu9ogpf zp-Ih`lY2xk+ii0qT0f*1i3xQ*K%ab3K;Mu1V(bM14AzHQ?hJWZ8g*4}l*sc_nD^ZJ1(Um9U{7 zh?*fh9@AdzIZAX!v^jPSy>}z=-Bk!3m32LXMJ-~mq8FG!qwB54*QLtu@VSjmqiI*D Qn`_isU6KO3WDV@U0ME$*YXATM literal 0 HcmV?d00001 diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/Compile_Options.txt b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/Compile_Options.txt new file mode 100644 index 0000000..28ad594 --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/Compile_Options.txt @@ -0,0 +1 @@ +--incr --debug "typical" --relax --mt "2" -L "xil_defaultlib" -L "unisims_ver" -L "unimacro_ver" -L "secureip" -L "xpm" --snapshot "test_cpu_behav" "xil_defaultlib.test_cpu" "xil_defaultlib.glbl" -log "elaborate.log" diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/TempBreakPointFile.txt b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/TempBreakPointFile.txt new file mode 100644 index 0000000..fdbc612 --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/TempBreakPointFile.txt @@ -0,0 +1 @@ +Breakpoint File Version 1.0 diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/obj/xsim_2.c b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/obj/xsim_2.c new file mode 100644 index 0000000..5f222df --- /dev/null +++ b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/obj/xsim_2.c @@ -0,0 +1,389 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ 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_2(char*, char *); +IKI_DLLESPEC extern void execute_156(char*, char *); +IKI_DLLESPEC extern void execute_313(char*, char *); +IKI_DLLESPEC extern void execute_314(char*, char *); +IKI_DLLESPEC extern void execute_234(char*, char *); +IKI_DLLESPEC extern void execute_305(char*, char *); +IKI_DLLESPEC extern void execute_306(char*, char *); +IKI_DLLESPEC extern void execute_307(char*, char *); +IKI_DLLESPEC extern void execute_308(char*, char *); +IKI_DLLESPEC extern void execute_309(char*, char *); +IKI_DLLESPEC extern void execute_310(char*, char *); +IKI_DLLESPEC extern void execute_311(char*, char *); +IKI_DLLESPEC extern void execute_312(char*, char *); +IKI_DLLESPEC extern void vlog_simple_process_execute_0_fast_no_reg_no_agg(char*, char*, char*); +IKI_DLLESPEC extern void vlog_const_rhs_process_execute_0_fast_no_reg_no_agg(char*, char*, char*); +IKI_DLLESPEC extern void execute_232(char*, char *); +IKI_DLLESPEC extern void execute_233(char*, char *); +IKI_DLLESPEC extern void execute_162(char*, char *); +IKI_DLLESPEC extern void execute_8(char*, char *); +IKI_DLLESPEC extern void execute_9(char*, char *); +IKI_DLLESPEC extern void execute_10(char*, char *); +IKI_DLLESPEC extern void execute_11(char*, char *); +IKI_DLLESPEC extern void execute_12(char*, char *); +IKI_DLLESPEC extern void execute_13(char*, char *); +IKI_DLLESPEC extern void execute_14(char*, char *); +IKI_DLLESPEC extern void execute_15(char*, char *); +IKI_DLLESPEC extern void execute_16(char*, char *); +IKI_DLLESPEC extern void execute_17(char*, char *); +IKI_DLLESPEC extern void execute_18(char*, char *); +IKI_DLLESPEC extern void execute_19(char*, char *); +IKI_DLLESPEC extern void execute_20(char*, char *); +IKI_DLLESPEC extern void execute_21(char*, char *); +IKI_DLLESPEC extern void execute_22(char*, char *); +IKI_DLLESPEC extern void execute_24(char*, char *); +IKI_DLLESPEC extern void execute_25(char*, char *); +IKI_DLLESPEC extern void execute_26(char*, char *); +IKI_DLLESPEC extern void execute_27(char*, char *); +IKI_DLLESPEC extern void execute_28(char*, char *); +IKI_DLLESPEC extern void execute_29(char*, char *); +IKI_DLLESPEC extern void execute_30(char*, char *); +IKI_DLLESPEC extern void execute_31(char*, char *); +IKI_DLLESPEC extern void execute_32(char*, char *); +IKI_DLLESPEC extern void execute_33(char*, char *); +IKI_DLLESPEC extern void execute_34(char*, char *); +IKI_DLLESPEC extern void execute_35(char*, char *); +IKI_DLLESPEC extern void execute_36(char*, char *); +IKI_DLLESPEC extern void execute_37(char*, char *); +IKI_DLLESPEC extern void execute_38(char*, char *); +IKI_DLLESPEC extern void execute_39(char*, char *); +IKI_DLLESPEC extern void execute_40(char*, char *); +IKI_DLLESPEC extern void execute_41(char*, char *); +IKI_DLLESPEC extern void execute_42(char*, char *); +IKI_DLLESPEC extern void execute_43(char*, char *); +IKI_DLLESPEC extern void execute_44(char*, char *); +IKI_DLLESPEC extern void execute_45(char*, char *); +IKI_DLLESPEC extern void execute_46(char*, char *); +IKI_DLLESPEC extern void execute_47(char*, char *); +IKI_DLLESPEC extern void execute_48(char*, char *); +IKI_DLLESPEC extern void execute_49(char*, char *); +IKI_DLLESPEC extern void execute_50(char*, char *); +IKI_DLLESPEC extern void execute_51(char*, char *); +IKI_DLLESPEC extern void execute_52(char*, char *); +IKI_DLLESPEC extern void execute_53(char*, char *); +IKI_DLLESPEC extern void execute_54(char*, char *); +IKI_DLLESPEC extern void execute_55(char*, char *); +IKI_DLLESPEC extern void execute_56(char*, char *); +IKI_DLLESPEC extern void execute_57(char*, char *); +IKI_DLLESPEC extern void execute_58(char*, char *); +IKI_DLLESPEC extern void execute_59(char*, char *); +IKI_DLLESPEC extern void execute_60(char*, char *); +IKI_DLLESPEC extern void execute_61(char*, char *); +IKI_DLLESPEC extern void execute_62(char*, char *); +IKI_DLLESPEC extern void execute_63(char*, char *); +IKI_DLLESPEC extern void execute_64(char*, char *); +IKI_DLLESPEC extern void execute_65(char*, char *); +IKI_DLLESPEC extern void execute_66(char*, char *); +IKI_DLLESPEC extern void execute_67(char*, char *); +IKI_DLLESPEC extern void execute_68(char*, char *); +IKI_DLLESPEC extern void execute_69(char*, char *); +IKI_DLLESPEC extern void execute_70(char*, char *); +IKI_DLLESPEC extern void execute_71(char*, char *); +IKI_DLLESPEC extern void execute_72(char*, char *); +IKI_DLLESPEC extern void execute_73(char*, char *); +IKI_DLLESPEC extern void execute_74(char*, char *); +IKI_DLLESPEC extern void execute_75(char*, char *); +IKI_DLLESPEC extern void execute_76(char*, char *); +IKI_DLLESPEC extern void execute_77(char*, char *); +IKI_DLLESPEC extern void execute_78(char*, char *); +IKI_DLLESPEC extern void execute_79(char*, char *); +IKI_DLLESPEC extern void execute_80(char*, char *); +IKI_DLLESPEC extern void execute_81(char*, char *); +IKI_DLLESPEC extern void execute_82(char*, char *); +IKI_DLLESPEC extern void execute_83(char*, char *); +IKI_DLLESPEC extern void execute_84(char*, char *); +IKI_DLLESPEC extern void execute_85(char*, char *); +IKI_DLLESPEC extern void execute_86(char*, char *); +IKI_DLLESPEC extern void execute_87(char*, char *); +IKI_DLLESPEC extern void execute_88(char*, char *); +IKI_DLLESPEC extern void execute_89(char*, char *); +IKI_DLLESPEC extern void execute_90(char*, char *); +IKI_DLLESPEC extern void execute_91(char*, char *); +IKI_DLLESPEC extern void execute_92(char*, char *); +IKI_DLLESPEC extern void execute_93(char*, char *); +IKI_DLLESPEC extern void execute_94(char*, char *); +IKI_DLLESPEC extern void execute_95(char*, char *); +IKI_DLLESPEC extern void execute_96(char*, char *); +IKI_DLLESPEC extern void execute_97(char*, char *); +IKI_DLLESPEC extern void execute_98(char*, char *); +IKI_DLLESPEC extern void execute_99(char*, char *); +IKI_DLLESPEC extern void execute_100(char*, char *); +IKI_DLLESPEC extern void execute_101(char*, char *); +IKI_DLLESPEC extern void execute_102(char*, char *); +IKI_DLLESPEC extern void execute_103(char*, char *); +IKI_DLLESPEC extern void execute_104(char*, char *); +IKI_DLLESPEC extern void execute_105(char*, char *); +IKI_DLLESPEC extern void execute_106(char*, char *); +IKI_DLLESPEC extern void execute_107(char*, char *); +IKI_DLLESPEC extern void execute_108(char*, char *); +IKI_DLLESPEC extern void execute_109(char*, char *); +IKI_DLLESPEC extern void execute_110(char*, char *); +IKI_DLLESPEC extern void execute_111(char*, char *); +IKI_DLLESPEC extern void execute_112(char*, char *); +IKI_DLLESPEC extern void execute_113(char*, char *); +IKI_DLLESPEC extern void execute_114(char*, char *); +IKI_DLLESPEC extern void execute_115(char*, char *); +IKI_DLLESPEC extern void execute_116(char*, char *); +IKI_DLLESPEC extern void execute_117(char*, char *); +IKI_DLLESPEC extern void execute_118(char*, char *); +IKI_DLLESPEC extern void execute_119(char*, char *); +IKI_DLLESPEC extern void execute_120(char*, char *); +IKI_DLLESPEC extern void execute_129(char*, char *); +IKI_DLLESPEC extern void execute_163(char*, char *); +IKI_DLLESPEC extern void execute_164(char*, char *); +IKI_DLLESPEC extern void execute_168(char*, char *); +IKI_DLLESPEC extern void execute_169(char*, char *); +IKI_DLLESPEC extern void execute_178(char*, char *); +IKI_DLLESPEC extern void execute_179(char*, char *); +IKI_DLLESPEC extern void execute_180(char*, char *); +IKI_DLLESPEC extern void execute_181(char*, char *); +IKI_DLLESPEC extern void execute_182(char*, char *); +IKI_DLLESPEC extern void execute_190(char*, char *); +IKI_DLLESPEC extern void execute_191(char*, char *); +IKI_DLLESPEC extern void execute_192(char*, char *); +IKI_DLLESPEC extern void execute_193(char*, char *); +IKI_DLLESPEC extern void execute_194(char*, char *); +IKI_DLLESPEC extern void execute_195(char*, char *); +IKI_DLLESPEC extern void execute_196(char*, char *); +IKI_DLLESPEC extern void execute_197(char*, char *); +IKI_DLLESPEC extern void execute_198(char*, char *); +IKI_DLLESPEC extern void execute_199(char*, char *); +IKI_DLLESPEC extern void execute_200(char*, char *); +IKI_DLLESPEC extern void execute_201(char*, char *); +IKI_DLLESPEC extern void execute_202(char*, char *); +IKI_DLLESPEC extern void execute_203(char*, char *); +IKI_DLLESPEC extern void execute_204(char*, char *); +IKI_DLLESPEC extern void execute_205(char*, char *); +IKI_DLLESPEC extern void execute_206(char*, char *); +IKI_DLLESPEC extern void execute_207(char*, char *); +IKI_DLLESPEC extern void execute_208(char*, char *); +IKI_DLLESPEC extern void execute_209(char*, char *); +IKI_DLLESPEC extern void execute_210(char*, char *); +IKI_DLLESPEC extern void execute_211(char*, char *); +IKI_DLLESPEC extern void execute_212(char*, char *); +IKI_DLLESPEC extern void execute_213(char*, char *); +IKI_DLLESPEC extern void execute_214(char*, char *); +IKI_DLLESPEC extern void execute_215(char*, char *); +IKI_DLLESPEC extern void execute_216(char*, char *); +IKI_DLLESPEC extern void execute_217(char*, char *); +IKI_DLLESPEC extern void execute_218(char*, char *); +IKI_DLLESPEC extern void execute_219(char*, char *); +IKI_DLLESPEC extern void execute_220(char*, char *); +IKI_DLLESPEC extern void execute_221(char*, char *); +IKI_DLLESPEC extern void execute_222(char*, char *); +IKI_DLLESPEC extern void execute_223(char*, char *); +IKI_DLLESPEC extern void execute_224(char*, char *); +IKI_DLLESPEC extern void execute_225(char*, char *); +IKI_DLLESPEC extern void execute_228(char*, char *); +IKI_DLLESPEC extern void execute_135(char*, char *); +IKI_DLLESPEC extern void execute_235(char*, char *); +IKI_DLLESPEC extern void execute_236(char*, char *); +IKI_DLLESPEC extern void execute_237(char*, char *); +IKI_DLLESPEC extern void execute_134(char*, char *); +IKI_DLLESPEC extern void execute_141(char*, char *); +IKI_DLLESPEC extern void execute_238(char*, char *); +IKI_DLLESPEC extern void execute_239(char*, char *); +IKI_DLLESPEC extern void execute_240(char*, char *); +IKI_DLLESPEC extern void execute_241(char*, char *); +IKI_DLLESPEC extern void execute_242(char*, char *); +IKI_DLLESPEC extern void execute_243(char*, char *); +IKI_DLLESPEC extern void execute_244(char*, char *); +IKI_DLLESPEC extern void execute_245(char*, char *); +IKI_DLLESPEC extern void execute_246(char*, char *); +IKI_DLLESPEC extern void execute_263(char*, char *); +IKI_DLLESPEC extern void execute_269(char*, char *); +IKI_DLLESPEC extern void execute_270(char*, char *); +IKI_DLLESPEC extern void execute_250(char*, char *); +IKI_DLLESPEC extern void execute_251(char*, char *); +IKI_DLLESPEC extern void execute_252(char*, char *); +IKI_DLLESPEC extern void execute_253(char*, char *); +IKI_DLLESPEC extern void execute_254(char*, char *); +IKI_DLLESPEC extern void execute_255(char*, char *); +IKI_DLLESPEC extern void execute_256(char*, char *); +IKI_DLLESPEC extern void execute_257(char*, char *); +IKI_DLLESPEC extern void execute_258(char*, char *); +IKI_DLLESPEC extern void execute_259(char*, char *); +IKI_DLLESPEC extern void execute_260(char*, char *); +IKI_DLLESPEC extern void execute_261(char*, char *); +IKI_DLLESPEC extern void execute_262(char*, char *); +IKI_DLLESPEC extern void execute_139(char*, char *); +IKI_DLLESPEC extern void execute_264(char*, char *); +IKI_DLLESPEC extern void execute_265(char*, char *); +IKI_DLLESPEC extern void execute_268(char*, char *); +IKI_DLLESPEC extern void execute_145(char*, char *); +IKI_DLLESPEC extern void execute_271(char*, char *); +IKI_DLLESPEC extern void execute_272(char*, char *); +IKI_DLLESPEC extern void execute_273(char*, char *); +IKI_DLLESPEC extern void execute_275(char*, char *); +IKI_DLLESPEC extern void execute_276(char*, char *); +IKI_DLLESPEC extern void execute_282(char*, char *); +IKI_DLLESPEC extern void execute_285(char*, char *); +IKI_DLLESPEC extern void execute_286(char*, char *); +IKI_DLLESPEC extern void execute_144(char*, char *); +IKI_DLLESPEC extern void execute_274(char*, char *); +IKI_DLLESPEC extern void execute_147(char*, char *); +IKI_DLLESPEC extern void execute_289(char*, char *); +IKI_DLLESPEC extern void execute_290(char*, char *); +IKI_DLLESPEC extern void execute_149(char*, char *); +IKI_DLLESPEC extern void execute_297(char*, char *); +IKI_DLLESPEC extern void execute_151(char*, char *); +IKI_DLLESPEC extern void execute_299(char*, char *); +IKI_DLLESPEC extern void execute_153(char*, char *); +IKI_DLLESPEC extern void execute_300(char*, char *); +IKI_DLLESPEC extern void execute_301(char*, char *); +IKI_DLLESPEC extern void execute_302(char*, char *); +IKI_DLLESPEC extern void execute_303(char*, char *); +IKI_DLLESPEC extern void execute_304(char*, char *); +IKI_DLLESPEC extern void execute_158(char*, char *); +IKI_DLLESPEC extern void execute_159(char*, char *); +IKI_DLLESPEC extern void execute_160(char*, char *); +IKI_DLLESPEC extern void execute_161(char*, char *); +IKI_DLLESPEC extern void execute_315(char*, char *); +IKI_DLLESPEC extern void execute_316(char*, char *); +IKI_DLLESPEC extern void execute_317(char*, char *); +IKI_DLLESPEC extern void execute_318(char*, char *); +IKI_DLLESPEC extern void execute_319(char*, char *); +IKI_DLLESPEC extern void execute_320(char*, char *); +IKI_DLLESPEC extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); +IKI_DLLESPEC extern void transaction_7(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_8(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_65(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_66(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_68(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_70(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_77(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_78(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_80(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_81(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_84(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_85(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_86(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_87(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_88(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_92(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_96(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_595(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_599(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_114(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_115(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_160(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_195(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_196(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_221(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_268(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_269(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_300(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_329(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void transaction_330(char*, char*, unsigned, unsigned, unsigned); +funcp funcTab[277] = {(funcp)execute_2, (funcp)execute_156, (funcp)execute_313, (funcp)execute_314, (funcp)execute_234, (funcp)execute_305, (funcp)execute_306, (funcp)execute_307, (funcp)execute_308, (funcp)execute_309, (funcp)execute_310, (funcp)execute_311, (funcp)execute_312, (funcp)vlog_simple_process_execute_0_fast_no_reg_no_agg, (funcp)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (funcp)execute_232, (funcp)execute_233, (funcp)execute_162, (funcp)execute_8, (funcp)execute_9, (funcp)execute_10, (funcp)execute_11, (funcp)execute_12, (funcp)execute_13, (funcp)execute_14, (funcp)execute_15, (funcp)execute_16, (funcp)execute_17, (funcp)execute_18, (funcp)execute_19, (funcp)execute_20, (funcp)execute_21, (funcp)execute_22, (funcp)execute_24, (funcp)execute_25, (funcp)execute_26, (funcp)execute_27, (funcp)execute_28, (funcp)execute_29, (funcp)execute_30, (funcp)execute_31, (funcp)execute_32, (funcp)execute_33, (funcp)execute_34, (funcp)execute_35, (funcp)execute_36, (funcp)execute_37, (funcp)execute_38, (funcp)execute_39, (funcp)execute_40, (funcp)execute_41, (funcp)execute_42, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_46, (funcp)execute_47, (funcp)execute_48, (funcp)execute_49, (funcp)execute_50, (funcp)execute_51, (funcp)execute_52, (funcp)execute_53, (funcp)execute_54, (funcp)execute_55, (funcp)execute_56, (funcp)execute_57, (funcp)execute_58, (funcp)execute_59, (funcp)execute_60, (funcp)execute_61, (funcp)execute_62, (funcp)execute_63, (funcp)execute_64, (funcp)execute_65, (funcp)execute_66, (funcp)execute_67, (funcp)execute_68, (funcp)execute_69, (funcp)execute_70, (funcp)execute_71, (funcp)execute_72, (funcp)execute_73, (funcp)execute_74, (funcp)execute_75, (funcp)execute_76, (funcp)execute_77, (funcp)execute_78, (funcp)execute_79, (funcp)execute_80, (funcp)execute_81, (funcp)execute_82, (funcp)execute_83, (funcp)execute_84, (funcp)execute_85, (funcp)execute_86, (funcp)execute_87, (funcp)execute_88, (funcp)execute_89, (funcp)execute_90, (funcp)execute_91, (funcp)execute_92, (funcp)execute_93, (funcp)execute_94, (funcp)execute_95, (funcp)execute_96, (funcp)execute_97, (funcp)execute_98, (funcp)execute_99, (funcp)execute_100, (funcp)execute_101, (funcp)execute_102, (funcp)execute_103, (funcp)execute_104, (funcp)execute_105, (funcp)execute_106, (funcp)execute_107, (funcp)execute_108, (funcp)execute_109, (funcp)execute_110, (funcp)execute_111, (funcp)execute_112, (funcp)execute_113, (funcp)execute_114, (funcp)execute_115, (funcp)execute_116, (funcp)execute_117, (funcp)execute_118, (funcp)execute_119, (funcp)execute_120, (funcp)execute_129, (funcp)execute_163, (funcp)execute_164, (funcp)execute_168, (funcp)execute_169, (funcp)execute_178, (funcp)execute_179, (funcp)execute_180, (funcp)execute_181, (funcp)execute_182, (funcp)execute_190, (funcp)execute_191, (funcp)execute_192, (funcp)execute_193, (funcp)execute_194, (funcp)execute_195, (funcp)execute_196, (funcp)execute_197, (funcp)execute_198, (funcp)execute_199, (funcp)execute_200, (funcp)execute_201, (funcp)execute_202, (funcp)execute_203, (funcp)execute_204, (funcp)execute_205, (funcp)execute_206, (funcp)execute_207, (funcp)execute_208, (funcp)execute_209, (funcp)execute_210, (funcp)execute_211, (funcp)execute_212, (funcp)execute_213, (funcp)execute_214, (funcp)execute_215, (funcp)execute_216, (funcp)execute_217, (funcp)execute_218, (funcp)execute_219, (funcp)execute_220, (funcp)execute_221, (funcp)execute_222, (funcp)execute_223, (funcp)execute_224, (funcp)execute_225, (funcp)execute_228, (funcp)execute_135, (funcp)execute_235, (funcp)execute_236, (funcp)execute_237, (funcp)execute_134, (funcp)execute_141, (funcp)execute_238, (funcp)execute_239, (funcp)execute_240, (funcp)execute_241, (funcp)execute_242, (funcp)execute_243, (funcp)execute_244, (funcp)execute_245, (funcp)execute_246, (funcp)execute_263, (funcp)execute_269, (funcp)execute_270, (funcp)execute_250, (funcp)execute_251, (funcp)execute_252, (funcp)execute_253, (funcp)execute_254, (funcp)execute_255, (funcp)execute_256, (funcp)execute_257, (funcp)execute_258, (funcp)execute_259, (funcp)execute_260, (funcp)execute_261, (funcp)execute_262, (funcp)execute_139, (funcp)execute_264, (funcp)execute_265, (funcp)execute_268, (funcp)execute_145, (funcp)execute_271, (funcp)execute_272, (funcp)execute_273, (funcp)execute_275, (funcp)execute_276, (funcp)execute_282, (funcp)execute_285, (funcp)execute_286, (funcp)execute_144, (funcp)execute_274, (funcp)execute_147, (funcp)execute_289, (funcp)execute_290, (funcp)execute_149, (funcp)execute_297, (funcp)execute_151, (funcp)execute_299, (funcp)execute_153, (funcp)execute_300, (funcp)execute_301, (funcp)execute_302, (funcp)execute_303, (funcp)execute_304, (funcp)execute_158, (funcp)execute_159, (funcp)execute_160, (funcp)execute_161, (funcp)execute_315, (funcp)execute_316, (funcp)execute_317, (funcp)execute_318, (funcp)execute_319, (funcp)execute_320, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_7, (funcp)transaction_8, (funcp)transaction_65, (funcp)transaction_66, (funcp)transaction_68, (funcp)transaction_70, (funcp)transaction_77, (funcp)transaction_78, (funcp)transaction_80, (funcp)transaction_81, (funcp)transaction_84, (funcp)transaction_85, (funcp)transaction_86, (funcp)transaction_87, (funcp)transaction_88, (funcp)transaction_92, (funcp)transaction_96, (funcp)transaction_595, (funcp)transaction_599, (funcp)transaction_114, (funcp)transaction_115, (funcp)transaction_160, (funcp)transaction_195, (funcp)transaction_196, (funcp)transaction_221, (funcp)transaction_268, (funcp)transaction_269, (funcp)transaction_300, (funcp)transaction_329, (funcp)transaction_330}; +const int NumRelocateId= 277; + +void relocate(char *dp) +{ + iki_relocate(dp, "xsim.dir/test_cpu_behav/xsim.reloc", (void **)funcTab, 277); + + /*Populate the transaction function pointer field in the whole net structure */ +} + +void sensitize(char *dp) +{ + iki_sensitize(dp, "xsim.dir/test_cpu_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 + +void wrapper_func_0(char *dp) + +{ + +} + +void simulate(char *dp) +{ + iki_schedule_processes_at_time_zero(dp, "xsim.dir/test_cpu_behav/xsim.reloc"); + wrapper_func_0(dp); + + 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_xsimdir_location_if_remapped(argc, argv) ; + iki_set_sv_type_file_path_name("xsim.dir/test_cpu_behav/xsim.svtype"); + iki_set_crvs_dump_file_path_name("xsim.dir/test_cpu_behav/xsim.crvsdump"); + void* design_handle = iki_create_design("xsim.dir/test_cpu_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(); +} diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/xsim.mem b/PipelineProcessor.sim/sim_1/behav/xsim/xsim.dir/test_cpu_behav/xsim.mem new file mode 100644 index 0000000000000000000000000000000000000000..b561ac368cd7d0c1ba31349be782d755848f0806 GIT binary patch literal 17511 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 literal 0 HcmV?d00001 diff --git a/PipelineProcessor.sim/sim_1/behav/xsim/xvlog.pb b/PipelineProcessor.sim/sim_1/behav/xsim/xvlog.pb new file mode 100644 index 0000000000000000000000000000000000000000..b635ca21e1f9f088ea3cb315c4691f3923db48b2 GIT binary patch literal 5291 zcmd7W&2AGh5CGtY5=y5(1bPB4QKfP~q9G|lf?H@BT7IiaZJ|irI^IcQx@$+aH%)s$ zJOYme7ycx81g^XS4y9=z7V?T+v8NVHYK9GFq90i7oRs5UtAV9K5RCE!6~#LgZSN zwpf?=VqJ=tNX^G}*1>>rGy@cs5^{88v4y;(L?q1*ymEWyGVw zzIVWm7Q2-K%=TE|`Pd{;pv~NOCdxN&R4TWZ+GCx3FaIVtRyYIOFh>SU4uv0?75`k{ z_)@w2`|_^B<&hbjAg)(ZwH?JtDcfn z4HYBDgHrX;rn67g-6s#@CbCWBV{#%5*h@iVS#T{yu*sQrmRWO`nSrUH3^t(;$q5ng zQV^;UO&((?(j_Fy*!pOqfcNHf8mdG5ROOu^(JzD?&#ayl)* zGlE*kVefteeLeDOJ*N3R@**zH@I&rtu!3`_4e|I`<&H zO(*mB_{-~Q-Q%0cHj#J9b)FaSJekhJLi6~o|HMP1(jM(Z&ZSa!Z#V$wPr}<=W&u{X NU)(U)VA3z-egI0`luG~r literal 0 HcmV?d00001 diff --git a/PipelineProcessor.srcs/sim_1/new/test_cpu.v b/PipelineProcessor.srcs/sim_1/new/test_cpu.v new file mode 100644 index 0000000..05e1272 --- /dev/null +++ b/PipelineProcessor.srcs/sim_1/new/test_cpu.v @@ -0,0 +1,20 @@ +`timescale 1ns / 1ps +module test_cpu (); + reg sim_clk = 0; + reg reset = 0; + wire [11:0] bcd_control; + wire clk_locked; + + initial begin + forever begin + #5 sim_clk <= ~sim_clk; + end + end + + CPU cpu( + .hardware_clk(sim_clk), + .reset(reset), + .clock_locked(clk_locked), + .bcd_control(bcd_control) + ); +endmodule diff --git a/PipelineProcessor.srcs/sources_1/new/ALU.v b/PipelineProcessor.srcs/sources_1/new/ALU.v index ec9f487..7813342 100644 --- a/PipelineProcessor.srcs/sources_1/new/ALU.v +++ b/PipelineProcessor.srcs/sources_1/new/ALU.v @@ -4,7 +4,7 @@ module ALU ( input [ 4:0] funct, input [31:0] in_1, input [31:0] in_2, - output [31:0] result + output reg [31:0] result ); wire lt_signed; @@ -14,24 +14,24 @@ module ALU ( always @(*) begin case (funct) - 5'b00000: result = in_1 & in_2; // 0, and - 5'b00001: result = in_1 | in_2; // 1, or - 5'b00010: result = in_1 + in_2; // 2, add - 5'b00110: result = in_1 - in_2; // 6, sub - 5'b00111: result = {31'b0, lt_signed}; // 7, slt signed - 5'b01000: result = {31'b0, in_1 < in_2}; // 8, slt unsigned - 5'b01100: result = ~(in_1 | in_2); // 12, nor - 5'b01101: result = in_1 ^ in_2; // 13, xor - 5'b10000: result = in_2 << in_1[4:0]; // 16, sll - 5'b10001: result = {31'b0, in_1 == in_2}; // 17, eq - 5'b10010: result = {31'b0, ~(in_1 == in_2)}; // 18, neq - 5'b10011: result = {31'b0, (in_1[31] == 1'b0 && in_1 != 32'h00000000)}; // 19, gtz - 5'b10100: result = {31'b0, in_1[31] == 1'b1}; // 20, ltz - 5'b10101: result = {31'b0, (in_1[31] == 1'b1 || in_1 == 32'h00000000)}; // 21, lez - 5'b11000: result = {in2 >> in1[4:0]}; // 24, srl - 5'b11001: result = {{32{in2[31]}}, in2} >> in1[4:0]; // 25, sra - 5'b11010: result = in1 * in2; // 26, mul - default: result = 31'h00000000; + 5'b00000: result <= in_1 & in_2; // 0, and + 5'b00001: result <= in_1 | in_2; // 1, or + 5'b00010: result <= in_1 + in_2; // 2, add + 5'b00110: result <= in_1 - in_2; // 6, sub + 5'b00111: result <= {31'b0, lt_signed}; // 7, slt signed + 5'b01000: result <= {31'b0, in_1 < in_2}; // 8, slt unsigned + 5'b01100: result <= ~(in_1 | in_2); // 12, nor + 5'b01101: result <= in_1 ^ in_2; // 13, xor + 5'b10000: result <= in_2 << in_1[4:0]; // 16, sll + 5'b10001: result <= {31'b0, in_1 == in_2}; // 17, eq + 5'b10010: result <= {31'b0, ~(in_1 == in_2)}; // 18, neq + 5'b10011: result <= {31'b0, (in_1[31] == 1'b0 && in_1 != 32'h00000000)}; // 19, gtz + 5'b10100: result <= {31'b0, in_1[31] == 1'b1}; // 20, ltz + 5'b10101: result <= {31'b0, (in_1[31] == 1'b1 || in_1 == 32'h00000000)}; // 21, lez + 5'b11000: result <= {in_2 >> in_1[4:0]}; // 24, srl + 5'b11001: result <= {{32{in_2[31]}}, in_2} >> in_1[4:0]; // 25, sra + 5'b11010: result <= in_1 * in_2; // 26, mul + default: result <= 31'h00000000; endcase end endmodule diff --git a/PipelineProcessor.srcs/sources_1/new/CPU.v b/PipelineProcessor.srcs/sources_1/new/CPU.v index 0514b48..a7ad8fa 100644 --- a/PipelineProcessor.srcs/sources_1/new/CPU.v +++ b/PipelineProcessor.srcs/sources_1/new/CPU.v @@ -2,6 +2,7 @@ module CPU ( input hardware_clk, input reset, + output clock_locked, output [11:0] bcd_control ); @@ -9,7 +10,8 @@ module CPU ( wire clk; phase_locked_loop pll ( .clk_in1 (hardware_clk), - .clk_out1(clk) + .clk_out1(clk), + .locked(clock_locked) ); // Out of IF @@ -94,7 +96,7 @@ module CPU ( .PC_branch(EX_PC_branch), .need_stall(hazard_IF_need_stall), .fetched_instruction(IF_fetched_instruction), - .PC_plus_4(IF_PC_plus_4), + .PC_plus_4(IF_PC_plus_4) ); InstDecode instruction_decode ( @@ -195,7 +197,7 @@ module CPU ( .prev_register_write_destination(MEM_register_write_destination), .register_write(WB_register_write), .register_write_data(WB_register_write_data), - .register_write_addr(WB_register_write_address), + .register_write_addr(WB_register_write_address) ); DataMemory data_memory ( @@ -222,7 +224,7 @@ module CPU ( .WB_register_write(WB_register_write), .WB_register_write_address(WB_register_write_address), .MEM_rt_address(MEM_rt_address), - .MEM_write_data_source(MEMforward_MEM_write_data_source), + .MEM_write_data_source(MEMforward_MEM_write_data_source) ); HazardUnit hazard_unit ( diff --git a/PipelineProcessor.srcs/sources_1/new/ExecutionForward.v b/PipelineProcessor.srcs/sources_1/new/ExecutionForward.v index 2081a71..10dcf1f 100644 --- a/PipelineProcessor.srcs/sources_1/new/ExecutionForward.v +++ b/PipelineProcessor.srcs/sources_1/new/ExecutionForward.v @@ -6,32 +6,32 @@ module ExecutionForward ( input [4:0] MEM_register_write_address, input WB_register_write, input [4:0] WB_register_write_address, - output [1:0] IDA_source, - output [1:0] IDB_source + output reg [1:0] IDA_source, + output reg [1:0] IDB_source ); always @(*) begin if (MEM_register_write == 1'b1 && MEM_register_write_address == EX_rs_address && EX_rs_address != 5'b00000) begin - IDA_source = 2'b00; + IDA_source <= 2'b00; end else begin if (WB_register_write == 1'b1 && WB_register_write_address == EX_rs_address && EX_rs_address != 5'b00000) begin - IDA_source = 2'b10; + IDA_source <= 2'b10; end else begin - IDA_source = 2'b00; + IDA_source <= 2'b00; end end if (MEM_register_write == 1'b1 && MEM_register_write_address == EX_rt_address && EX_rt_address != 5'b00000) begin - IDB_source = 2'b00; + IDB_source <= 2'b00; end else begin if (WB_register_write == 1'b1 && WB_register_write_address == EX_rt_address && EX_rt_address != 5'b00000) begin - IDB_source = 2'b10; + IDB_source <= 2'b10; end else begin - IDB_source = 2'b00; + IDB_source <= 2'b00; end end end diff --git a/PipelineProcessor.xpr b/PipelineProcessor.xpr index 3f0005a..480e77b 100644 --- a/PipelineProcessor.xpr +++ b/PipelineProcessor.xpr @@ -60,7 +60,7 @@