From bc9c02322c140966f22e3b83e7700a5af872d0d9 Mon Sep 17 00:00:00 2001 From: Johannes Date: Thu, 11 Apr 2019 18:36:00 -0400 Subject: [PATCH] Added forwarding --- lab2CA.cache/wt/webtalk_pa.xml | 198 +----------------- lab2CA.sim/sim_1/behav/xsim/webtalk.jou | 11 + .../sim_1/behav/xsim/webtalk_20220.backup.jou | 12 ++ ...732.backup.jou => webtalk_6396.backup.jou} | 8 +- lab2CA.sim/sim_1/behav/xsim/xelab.pb | Bin 4915 -> 5030 bytes .../xsim.dir/CPU9bits_tb_behav/obj/xsim_1.c | 169 ++++++++++----- .../webtalk/usage_statistics_ext_xsim.xml | 28 +-- .../webtalk/xsim_webtalk.tcl | 58 ++++- lab2CA.srcs/sources_1/new/CPU9bits.v | 83 +++++++- lab2CA.srcs/sources_1/new/ControlUnit.v | 49 +++++ lab2CA.srcs/sources_1/new/FDModule.v | 11 +- lab2CA.xpr | 17 +- 12 files changed, 367 insertions(+), 277 deletions(-) create mode 100644 lab2CA.sim/sim_1/behav/xsim/webtalk_20220.backup.jou rename lab2CA.sim/sim_1/behav/xsim/{webtalk_8732.backup.jou => webtalk_6396.backup.jou} (73%) diff --git a/lab2CA.cache/wt/webtalk_pa.xml b/lab2CA.cache/wt/webtalk_pa.xml index 7da5dff..93349e3 100644 --- a/lab2CA.cache/wt/webtalk_pa.xml +++ b/lab2CA.cache/wt/webtalk_pa.xml @@ -3,10 +3,10 @@ - +
- - + +
@@ -17,195 +17,19 @@ This means code written to parse this file will need to be revisited each subseq - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + - + - +
diff --git a/lab2CA.sim/sim_1/behav/xsim/webtalk.jou b/lab2CA.sim/sim_1/behav/xsim/webtalk.jou index a2bcd83..37b8257 100644 --- a/lab2CA.sim/sim_1/behav/xsim/webtalk.jou +++ b/lab2CA.sim/sim_1/behav/xsim/webtalk.jou @@ -2,6 +2,7 @@ # Webtalk v2018.3 (64-bit) # SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 # IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 +<<<<<<< Updated upstream # Start of session at: Thu Apr 11 16:19:32 2019 # Process ID: 16612 # Current directory: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/behav/xsim @@ -10,3 +11,13 @@ # Journal file: C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/behav/xsim\webtalk.jou #----------------------------------------------------------- source C:/Users/JoseIgnacio/CA -notrace +======= +# Start of session at: Thu Apr 11 18:30:50 2019 +# Process ID: 12808 +# Current directory: C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim +# Command line: wbtcv.exe -mode batch -source C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl -notrace +# Log file: C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/webtalk.log +# Journal file: C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim\webtalk.jou +#----------------------------------------------------------- +source C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl -notrace +>>>>>>> Stashed changes diff --git a/lab2CA.sim/sim_1/behav/xsim/webtalk_20220.backup.jou b/lab2CA.sim/sim_1/behav/xsim/webtalk_20220.backup.jou new file mode 100644 index 0000000..330f588 --- /dev/null +++ b/lab2CA.sim/sim_1/behav/xsim/webtalk_20220.backup.jou @@ -0,0 +1,12 @@ +#----------------------------------------------------------- +# Webtalk v2018.3 (64-bit) +# SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 +# IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 +# Start of session at: Wed Apr 10 10:36:59 2019 +# Process ID: 20220 +# Current directory: C:/REPOSITORIES/Educational/Western Michigan University/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim +# Command line: wbtcv.exe -mode batch -source C:/REPOSITORIES/Educational/Western Michigan University/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl -notrace +# Log file: C:/REPOSITORIES/Educational/Western Michigan University/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/webtalk.log +# Journal file: C:/REPOSITORIES/Educational/Western Michigan University/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim\webtalk.jou +#----------------------------------------------------------- +source C:/REPOSITORIES/Educational/Western -notrace diff --git a/lab2CA.sim/sim_1/behav/xsim/webtalk_8732.backup.jou b/lab2CA.sim/sim_1/behav/xsim/webtalk_6396.backup.jou similarity index 73% rename from lab2CA.sim/sim_1/behav/xsim/webtalk_8732.backup.jou rename to lab2CA.sim/sim_1/behav/xsim/webtalk_6396.backup.jou index 03954f2..d4f7e88 100644 --- a/lab2CA.sim/sim_1/behav/xsim/webtalk_8732.backup.jou +++ b/lab2CA.sim/sim_1/behav/xsim/webtalk_6396.backup.jou @@ -2,11 +2,11 @@ # Webtalk v2018.3 (64-bit) # SW Build 2405991 on Thu Dec 6 23:38:27 MST 2018 # IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 -# Start of session at: Sat Apr 6 17:28:44 2019 -# Process ID: 8732 +# Start of session at: Thu Apr 11 15:10:37 2019 +# Process ID: 6396 # Current directory: C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim -# Command line: wbtcv.exe -mode batch -source C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_behav/webtalk/xsim_webtalk.tcl -notrace +# Command line: wbtcv.exe -mode batch -source C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl -notrace # Log file: C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/webtalk.log # Journal file: C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim\webtalk.jou #----------------------------------------------------------- -source C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_behav/webtalk/xsim_webtalk.tcl -notrace +source C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl -notrace diff --git a/lab2CA.sim/sim_1/behav/xsim/xelab.pb b/lab2CA.sim/sim_1/behav/xsim/xelab.pb index 53611fffad22fee987b00c7d8e6969f590f13b7a..df572324c344090bd482d672fb7ebd26d0967898 100644 GIT binary patch delta 26 icmdn2woH9Pnc(CQes@Nr$@N@mlVyZBHt!UyVgvwuRS1y) delta 20 ccmZ3czFBQUnc(CP9M+Tjg*Z0r2vsox09Ne>OaK4? diff --git a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/obj/xsim_1.c b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/obj/xsim_1.c index 84a03bd..0be08cf 100644 --- a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/obj/xsim_1.c +++ b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/obj/xsim_1.c @@ -46,6 +46,7 @@ typedef void (*funcp)(char *, char *); extern int main(int, char**); extern void execute_2(char*, char *); extern void execute_3(char*, char *); +<<<<<<< Updated upstream extern void execute_183(char*, char *); extern void execute_456(char*, char *); extern void execute_457(char*, char *); @@ -70,65 +71,103 @@ extern void execute_8(char*, char *); extern void execute_209(char*, char *); extern void execute_211(char*, char *); extern void execute_212(char*, char *); +======= +extern void execute_240(char*, char *); +extern void execute_609(char*, char *); +extern void execute_610(char*, char *); +extern void vlog_simple_process_execute_0_fast_no_reg_no_agg(char*, char*, char*); +extern void execute_246(char*, char *); +extern void execute_601(char*, char *); +extern void execute_602(char*, char *); +extern void execute_603(char*, char *); +extern void execute_604(char*, char *); +extern void execute_605(char*, char *); +extern void execute_606(char*, char *); +extern void execute_607(char*, char *); +extern void execute_608(char*, char *); +extern void execute_247(char*, char *); +extern void execute_248(char*, char *); +extern void execute_249(char*, char *); +extern void execute_280(char*, char *); +extern void execute_281(char*, char *); +extern void execute_282(char*, char *); +extern void execute_283(char*, char *); +extern void execute_284(char*, char *); +extern void execute_285(char*, char *); +extern void execute_286(char*, char *); +extern void execute_287(char*, char *); +extern void execute_288(char*, char *); +extern void execute_289(char*, char *); +extern void execute_290(char*, char *); +extern void execute_291(char*, char *); +extern void execute_292(char*, char *); +extern void execute_7(char*, char *); +extern void execute_8(char*, char *); +extern void vlog_const_rhs_process_execute_0_fast_no_reg_no_agg(char*, char*, char*); +extern void execute_269(char*, char *); +extern void execute_271(char*, char *); +extern void execute_272(char*, char *); +>>>>>>> Stashed changes extern void execute_11(char*, char *); -extern void execute_190(char*, char *); -extern void execute_191(char*, char *); +extern void execute_250(char*, char *); +extern void execute_251(char*, char *); extern void execute_23(char*, char *); -extern void execute_213(char*, char *); -extern void execute_214(char*, char *); -extern void execute_215(char*, char *); -extern void execute_216(char*, char *); -extern void execute_217(char*, char *); -extern void execute_218(char*, char *); -extern void execute_219(char*, char *); +extern void execute_273(char*, char *); +extern void execute_274(char*, char *); +extern void execute_275(char*, char *); +extern void execute_276(char*, char *); +extern void execute_277(char*, char *); +extern void execute_278(char*, char *); +extern void execute_279(char*, char *); extern void execute_26(char*, char *); extern void execute_36(char*, char *); extern void execute_40(char*, char *); extern void execute_42(char*, char *); -extern void execute_231(char*, char *); -extern void execute_232(char*, char *); -extern void execute_233(char*, char *); -extern void execute_234(char*, char *); -extern void execute_235(char*, char *); -extern void execute_236(char*, char *); -extern void execute_237(char*, char *); -extern void execute_238(char*, char *); -extern void execute_239(char*, char *); -extern void execute_240(char*, char *); -extern void execute_241(char*, char *); -extern void execute_242(char*, char *); -extern void execute_243(char*, char *); -extern void execute_244(char*, char *); -extern void execute_425(char*, char *); -extern void execute_427(char*, char *); -extern void execute_428(char*, char *); -extern void execute_430(char*, char *); -extern void execute_431(char*, char *); -extern void execute_432(char*, char *); -extern void execute_433(char*, char *); -extern void execute_434(char*, char *); +extern void execute_293(char*, char *); +extern void execute_294(char*, char *); +extern void execute_295(char*, char *); +extern void execute_296(char*, char *); +extern void execute_297(char*, char *); +extern void execute_298(char*, char *); +extern void execute_299(char*, char *); +extern void execute_300(char*, char *); +extern void execute_301(char*, char *); +extern void execute_302(char*, char *); +extern void execute_303(char*, char *); +extern void execute_304(char*, char *); +extern void execute_305(char*, char *); +extern void execute_306(char*, char *); +extern void execute_487(char*, char *); +extern void execute_489(char*, char *); +extern void execute_490(char*, char *); +extern void execute_492(char*, char *); +extern void execute_493(char*, char *); +extern void execute_494(char*, char *); +extern void execute_495(char*, char *); +extern void execute_496(char*, char *); extern void execute_45(char*, char *); extern void execute_46(char*, char *); -extern void execute_360(char*, char *); -extern void execute_361(char*, char *); -extern void execute_362(char*, char *); -extern void execute_363(char*, char *); -extern void execute_364(char*, char *); -extern void execute_365(char*, char *); -extern void execute_289(char*, char *); -extern void execute_270(char*, char *); -extern void execute_310(char*, char *); -extern void execute_311(char*, char *); -extern void execute_312(char*, char *); -extern void execute_313(char*, char *); -extern void execute_314(char*, char *); -extern void execute_315(char*, char *); -extern void execute_357(char*, char *); -extern void execute_358(char*, char *); +extern void execute_422(char*, char *); +extern void execute_423(char*, char *); +extern void execute_424(char*, char *); +extern void execute_425(char*, char *); +extern void execute_426(char*, char *); +extern void execute_427(char*, char *); +extern void execute_351(char*, char *); +extern void execute_332(char*, char *); +extern void execute_372(char*, char *); +extern void execute_373(char*, char *); +extern void execute_374(char*, char *); +extern void execute_375(char*, char *); +extern void execute_376(char*, char *); +extern void execute_377(char*, char *); +extern void execute_419(char*, char *); +extern void execute_420(char*, char *); extern void execute_129(char*, char *); -extern void execute_405(char*, char *); +extern void execute_467(char*, char *); extern void execute_160(char*, char *); extern void execute_173(char*, char *); +<<<<<<< Updated upstream extern void execute_435(char*, char *); extern void execute_436(char*, char *); extern void execute_437(char*, char *); @@ -158,10 +197,42 @@ extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsig extern void transaction_109(char*, char*, unsigned, unsigned, unsigned); funcp funcTab[112] = {(funcp)execute_2, (funcp)execute_3, (funcp)execute_183, (funcp)execute_456, (funcp)execute_457, (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_454, (funcp)execute_455, (funcp)execute_189, (funcp)execute_220, (funcp)execute_221, (funcp)execute_222, (funcp)execute_223, (funcp)execute_224, (funcp)execute_225, (funcp)execute_226, (funcp)execute_227, (funcp)execute_228, (funcp)execute_229, (funcp)execute_230, (funcp)execute_7, (funcp)execute_8, (funcp)execute_209, (funcp)execute_211, (funcp)execute_212, (funcp)execute_11, (funcp)execute_190, (funcp)execute_191, (funcp)execute_23, (funcp)execute_213, (funcp)execute_214, (funcp)execute_215, (funcp)execute_216, (funcp)execute_217, (funcp)execute_218, (funcp)execute_219, (funcp)execute_26, (funcp)execute_36, (funcp)execute_40, (funcp)execute_42, (funcp)execute_231, (funcp)execute_232, (funcp)execute_233, (funcp)execute_234, (funcp)execute_235, (funcp)execute_236, (funcp)execute_237, (funcp)execute_238, (funcp)execute_239, (funcp)execute_240, (funcp)execute_241, (funcp)execute_242, (funcp)execute_243, (funcp)execute_244, (funcp)execute_425, (funcp)execute_427, (funcp)execute_428, (funcp)execute_430, (funcp)execute_431, (funcp)execute_432, (funcp)execute_433, (funcp)execute_434, (funcp)execute_45, (funcp)execute_46, (funcp)execute_360, (funcp)execute_361, (funcp)execute_362, (funcp)execute_363, (funcp)execute_364, (funcp)execute_365, (funcp)execute_289, (funcp)execute_270, (funcp)execute_310, (funcp)execute_311, (funcp)execute_312, (funcp)execute_313, (funcp)execute_314, (funcp)execute_315, (funcp)execute_357, (funcp)execute_358, (funcp)execute_129, (funcp)execute_405, (funcp)execute_160, (funcp)execute_173, (funcp)execute_435, (funcp)execute_436, (funcp)execute_437, (funcp)execute_438, (funcp)execute_439, (funcp)execute_440, (funcp)execute_441, (funcp)execute_442, (funcp)execute_443, (funcp)execute_444, (funcp)execute_445, (funcp)execute_446, (funcp)execute_447, (funcp)execute_448, (funcp)execute_449, (funcp)execute_450, (funcp)execute_451, (funcp)execute_185, (funcp)execute_186, (funcp)execute_187, (funcp)execute_458, (funcp)execute_459, (funcp)execute_460, (funcp)execute_461, (funcp)execute_462, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_109}; const int NumRelocateId= 112; +======= +extern void execute_497(char*, char *); +extern void execute_498(char*, char *); +extern void execute_499(char*, char *); +extern void execute_500(char*, char *); +extern void execute_501(char*, char *); +extern void execute_502(char*, char *); +extern void execute_503(char*, char *); +extern void execute_504(char*, char *); +extern void execute_505(char*, char *); +extern void execute_506(char*, char *); +extern void execute_507(char*, char *); +extern void execute_508(char*, char *); +extern void execute_509(char*, char *); +extern void execute_510(char*, char *); +extern void execute_511(char*, char *); +extern void execute_512(char*, char *); +extern void execute_513(char*, char *); +extern void execute_514(char*, char *); +extern void execute_242(char*, char *); +extern void execute_243(char*, char *); +extern void execute_244(char*, char *); +extern void execute_611(char*, char *); +extern void execute_612(char*, char *); +extern void execute_613(char*, char *); +extern void execute_614(char*, char *); +extern void execute_615(char*, char *); +extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); +extern void transaction_129(char*, char*, unsigned, unsigned, unsigned); +funcp funcTab[124] = {(funcp)execute_2, (funcp)execute_3, (funcp)execute_240, (funcp)execute_609, (funcp)execute_610, (funcp)vlog_simple_process_execute_0_fast_no_reg_no_agg, (funcp)execute_246, (funcp)execute_601, (funcp)execute_602, (funcp)execute_603, (funcp)execute_604, (funcp)execute_605, (funcp)execute_606, (funcp)execute_607, (funcp)execute_608, (funcp)execute_247, (funcp)execute_248, (funcp)execute_249, (funcp)execute_280, (funcp)execute_281, (funcp)execute_282, (funcp)execute_283, (funcp)execute_284, (funcp)execute_285, (funcp)execute_286, (funcp)execute_287, (funcp)execute_288, (funcp)execute_289, (funcp)execute_290, (funcp)execute_291, (funcp)execute_292, (funcp)execute_7, (funcp)execute_8, (funcp)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (funcp)execute_269, (funcp)execute_271, (funcp)execute_272, (funcp)execute_11, (funcp)execute_250, (funcp)execute_251, (funcp)execute_23, (funcp)execute_273, (funcp)execute_274, (funcp)execute_275, (funcp)execute_276, (funcp)execute_277, (funcp)execute_278, (funcp)execute_279, (funcp)execute_26, (funcp)execute_36, (funcp)execute_40, (funcp)execute_42, (funcp)execute_293, (funcp)execute_294, (funcp)execute_295, (funcp)execute_296, (funcp)execute_297, (funcp)execute_298, (funcp)execute_299, (funcp)execute_300, (funcp)execute_301, (funcp)execute_302, (funcp)execute_303, (funcp)execute_304, (funcp)execute_305, (funcp)execute_306, (funcp)execute_487, (funcp)execute_489, (funcp)execute_490, (funcp)execute_492, (funcp)execute_493, (funcp)execute_494, (funcp)execute_495, (funcp)execute_496, (funcp)execute_45, (funcp)execute_46, (funcp)execute_422, (funcp)execute_423, (funcp)execute_424, (funcp)execute_425, (funcp)execute_426, (funcp)execute_427, (funcp)execute_351, (funcp)execute_332, (funcp)execute_372, (funcp)execute_373, (funcp)execute_374, (funcp)execute_375, (funcp)execute_376, (funcp)execute_377, (funcp)execute_419, (funcp)execute_420, (funcp)execute_129, (funcp)execute_467, (funcp)execute_160, (funcp)execute_173, (funcp)execute_497, (funcp)execute_498, (funcp)execute_499, (funcp)execute_500, (funcp)execute_501, (funcp)execute_502, (funcp)execute_503, (funcp)execute_504, (funcp)execute_505, (funcp)execute_506, (funcp)execute_507, (funcp)execute_508, (funcp)execute_509, (funcp)execute_510, (funcp)execute_511, (funcp)execute_512, (funcp)execute_513, (funcp)execute_514, (funcp)execute_242, (funcp)execute_243, (funcp)execute_244, (funcp)execute_611, (funcp)execute_612, (funcp)execute_613, (funcp)execute_614, (funcp)execute_615, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_129}; +const int NumRelocateId= 124; +>>>>>>> Stashed changes void relocate(char *dp) { - iki_relocate(dp, "xsim.dir/CPU9bits_tb_behav/xsim.reloc", (void **)funcTab, 112); + iki_relocate(dp, "xsim.dir/CPU9bits_tb_behav/xsim.reloc", (void **)funcTab, 124); /*Populate the transaction function pointer field in the whole net structure */ } diff --git a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.xml b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.xml index f12bead..cc00f25 100644 --- a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.xml +++ b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.xml @@ -1,14 +1,14 @@ - +
- + - + @@ -30,24 +30,14 @@
- - - - - - - - +
- - - - - - - - + + + + +
diff --git a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl index 4b06394..d8ceed0 100644 --- a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl +++ b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl @@ -1,10 +1,22 @@ +<<<<<<< Updated upstream +<<<<<<< Updated upstream webtalk_init -webtalk_dir C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/ webtalk_register_client -client project webtalk_add_data -client project -key date_generated -value "Thu Apr 11 17:31:39 2019" -context "software_version_and_target_device" +======= +webtalk_init -webtalk_dir C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/ +webtalk_register_client -client project +webtalk_add_data -client project -key date_generated -value "Thu Apr 11 18:32:16 2019" -context "software_version_and_target_device" +>>>>>>> Stashed changes +======= +webtalk_init -webtalk_dir C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/ +webtalk_register_client -client project +webtalk_add_data -client project -key date_generated -value "Thu Apr 11 18:31:01 2019" -context "software_version_and_target_device" +>>>>>>> Stashed changes webtalk_add_data -client project -key product_version -value "XSIM v2018.3 (64-bit)" -context "software_version_and_target_device" webtalk_add_data -client project -key build_version -value "2405991" -context "software_version_and_target_device" webtalk_add_data -client project -key os_platform -value "WIN64" -context "software_version_and_target_device" -webtalk_add_data -client project -key registration_id -value "" -context "software_version_and_target_device" +webtalk_add_data -client project -key registration_id -value "174150793_174150794_210688225_140" -context "software_version_and_target_device" webtalk_add_data -client project -key tool_flow -value "xsim_vivado" -context "software_version_and_target_device" webtalk_add_data -client project -key beta -value "FALSE" -context "software_version_and_target_device" webtalk_add_data -client project -key route_design -value "FALSE" -context "software_version_and_target_device" @@ -12,6 +24,8 @@ webtalk_add_data -client project -key target_family -value "not_applicable" -con webtalk_add_data -client project -key target_device -value "not_applicable" -context "software_version_and_target_device" webtalk_add_data -client project -key target_package -value "not_applicable" -context "software_version_and_target_device" webtalk_add_data -client project -key target_speed -value "not_applicable" -context "software_version_and_target_device" +<<<<<<< Updated upstream +<<<<<<< Updated upstream webtalk_add_data -client project -key random_id -value "17336daf-0d92-4f07-b4a4-ff1c52043edb" -context "software_version_and_target_device" webtalk_add_data -client project -key project_id -value "0a5803efda44405bb28bbf43ba22e808" -context "software_version_and_target_device" webtalk_add_data -client project -key project_iteration -value "143" -context "software_version_and_target_device" @@ -21,12 +35,54 @@ webtalk_add_data -client project -key cpu_name -value "Intel(R) Core(TM) i5-3230 webtalk_add_data -client project -key cpu_speed -value "2594 MHz" -context "user_environment" webtalk_add_data -client project -key total_processors -value "1" -context "user_environment" webtalk_add_data -client project -key system_ram -value "8.000 GB" -context "user_environment" +======= +webtalk_add_data -client project -key random_id -value "4e917e26-7591-4435-9135-15bd446b0238" -context "software_version_and_target_device" +webtalk_add_data -client project -key project_id -value "0a5803efda44405bb28bbf43ba22e808" -context "software_version_and_target_device" +webtalk_add_data -client project -key project_iteration -value "146" -context "software_version_and_target_device" +======= +webtalk_add_data -client project -key random_id -value "4e917e26-7591-4435-9135-15bd446b0238" -context "software_version_and_target_device" +webtalk_add_data -client project -key project_id -value "0a5803efda44405bb28bbf43ba22e808" -context "software_version_and_target_device" +webtalk_add_data -client project -key project_iteration -value "145" -context "software_version_and_target_device" +>>>>>>> Stashed changes +webtalk_add_data -client project -key os_name -value "Microsoft Windows 8 or later , 64-bit" -context "user_environment" +webtalk_add_data -client project -key os_release -value "major release (build 9200)" -context "user_environment" +webtalk_add_data -client project -key cpu_name -value "Intel(R) Xeon(R) CPU E5-1620 v3 @ 3.50GHz" -context "user_environment" +webtalk_add_data -client project -key cpu_speed -value "3492 MHz" -context "user_environment" +webtalk_add_data -client project -key total_processors -value "1" -context "user_environment" +webtalk_add_data -client project -key system_ram -value "34.000 GB" -context "user_environment" +<<<<<<< Updated upstream +>>>>>>> Stashed changes webtalk_register_client -client xsim webtalk_add_data -client xsim -key Command -value "xsim" -context "xsim\\command_line_options" webtalk_add_data -client xsim -key trace_waveform -value "true" -context "xsim\\usage" webtalk_add_data -client xsim -key runtime -value "50015 ns" -context "xsim\\usage" webtalk_add_data -client xsim -key iteration -value "0" -context "xsim\\usage" webtalk_add_data -client xsim -key Simulation_Time -value "0.14_sec" -context "xsim\\usage" +<<<<<<< Updated upstream webtalk_add_data -client xsim -key Simulation_Memory -value "8272_KB" -context "xsim\\usage" webtalk_transmit -clientid 2296267995 -regid "" -xml C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.xml -html C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.html -wdm C:/Users/JoseIgnacio/CA Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.wdm -intro "

XSIM Usage Report


" +======= +webtalk_add_data -client xsim -key Simulation_Memory -value "8152_KB" -context "xsim\\usage" +webtalk_transmit -clientid 4257293974 -regid "174150793_174150794_210688225_140" -xml C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.xml -html C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.html -wdm C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.wdm -intro "

XSIM Usage Report


" +>>>>>>> Stashed changes +======= +webtalk_register_client -client xsim +webtalk_add_data -client xsim -key File_Counter -value "12" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key Command -value "xelab" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key Vhdl2008 -value "false" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key GenDLL -value "false" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key SDFModeling -value "false" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key HWCosim -value "false" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key DPI_Used -value "false" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key Debug -value "typical" -context "xsim\\command_line_options" +webtalk_add_data -client xsim -key Simulation_Image_Code -value "134 KB" -context "xsim\\usage" +webtalk_add_data -client xsim -key Simulation_Image_Data -value "26 KB" -context "xsim\\usage" +webtalk_add_data -client xsim -key Total_Nets -value "0" -context "xsim\\usage" +webtalk_add_data -client xsim -key Total_Processes -value "418" -context "xsim\\usage" +webtalk_add_data -client xsim -key Total_Instances -value "204" -context "xsim\\usage" +webtalk_add_data -client xsim -key Xilinx_HDL_Libraries_Used -value "secureip unimacro_ver unisims_ver " -context "xsim\\usage" +webtalk_add_data -client xsim -key Compiler_Time -value "0.98_sec" -context "xsim\\usage" +webtalk_add_data -client xsim -key Compiler_Memory -value "50208_KB" -context "xsim\\usage" +webtalk_transmit -clientid 1054187896 -regid "174150793_174150794_210688225_140" -xml C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.xml -html C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.html -wdm C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/usage_statistics_ext_xsim.wdm -intro "

XSIM Usage Report


" +>>>>>>> Stashed changes webtalk_terminate diff --git a/lab2CA.srcs/sources_1/new/CPU9bits.v b/lab2CA.srcs/sources_1/new/CPU9bits.v index 05c6ebb..a3a01b8 100644 --- a/lab2CA.srcs/sources_1/new/CPU9bits.v +++ b/lab2CA.srcs/sources_1/new/CPU9bits.v @@ -6,13 +6,16 @@ module CPU9bits( output wire done ); - wire [8:0] RFIn,FUAddr; - wire [1:0] instr; - wire fetchBranch, RegEn; - wire [50:0] FDOut, FDPipOut; + wire [8:0] RFIn,FUAddr, op0_ext, op1_ext, wr_ext, op0_sub, op1_sub, op0_zero, op1_zero, op0_and, op1_and, newOp0, newOp1; + wire [1:0] instr, op0_idx, op1_idx; + wire fetchBranch, RegEn, compare0, compare1; + wire [50:0] FDOut, FDPipOut, EMIn; wire [61:0] EMOut, EMPipOut; + assign result = RFIn; + assign EMIn = {FDPipOut[50:42], newOp0, newOp1, FDPipOut[23:0]}; + FDModule FD( .reset(reset), @@ -23,7 +26,11 @@ module CPU9bits( .AddrIn(FUAddr), .RFIdx(instr), .result(FDOut), - .done(done) + .done(done), + .compare0(compare0), + .compare1(compare1), + .op0_idx(op0_idx), + .op1_idx(op1_idx) ); fDPipReg pipe1( @@ -37,7 +44,7 @@ module CPU9bits( EMModule EM( .reset(reset), .clk(clk), - .PipIn(FDPipOut), + .PipIn(EMIn), .PipOut(EMOut) ); @@ -57,6 +64,70 @@ module CPU9bits( .fetchBranch(fetchBranch), .RegEn(RegEn) ); + + sign_extend_2bit ext0( + .A(op0_idx), + .B(op0_ext) + ); + + sign_extend_2bit ext1( + .A(op1_idx), + .B(op1_ext) + ); + + sign_extend_2bit ext2( + .A(instr), + .B(wr_ext) + ); + + sub_9bit sub0( + .A(op0_ext), + .B(wr_ext), + .C(op0_sub) + ); + + sub_9bit sub1( + .A(op1_ext), + .B(wr_ext), + .C(op1_sub) + ); + + BEQ beq0( + .A(op0_sub), + .B(op0_zero) + ); + + BEQ beq1( + .A(op1_sub), + .B(op1_zero) + ); + + and_9bit and0( + .A(~op0_zero), + .B({8'b00000000,compare0}), + .C(op0_and) + ); + + and_9bit and1( + .A(~op1_zero), + .B({8'b00000000,compare1}), + .C(op1_and) + ); + + mux_2_1 mux0( + .switch(op0_and[0]), + .A(FDOut[41:33]), + .B(EMPipOut[33:25]), //ALUOut + .out(newOp0) + ); + + mux_2_1 mux1( + .switch(op1_and[0]), + .A(FDOut[32:24]), + .B(EMPipOut[33:25]), //ALUOut + .out(newOp1) + ); + endmodule diff --git a/lab2CA.srcs/sources_1/new/ControlUnit.v b/lab2CA.srcs/sources_1/new/ControlUnit.v index 1a14734..48398f5 100644 --- a/lab2CA.srcs/sources_1/new/ControlUnit.v +++ b/lab2CA.srcs/sources_1/new/ControlUnit.v @@ -6,15 +6,24 @@ module ControlUnit( output reg [3:0] aluOut, output reg [2:0] FU, output reg [1:0] bank, +<<<<<<< Updated upstream output reg addi, mem, dataMemEn, RegEn, halt, link, js ); +======= + output reg addi, mem, dataMemEn, RegEn, halt, link, js, compare0, compare1 + ); +>>>>>>> Stashed changes always @(instIn, functBit) begin case(instIn) 4'b0000: // Halt/NOP begin +<<<<<<< Updated upstream halt <= functBit; +======= + halt <= ~functBit; +>>>>>>> Stashed changes RegEn <= 1'b1; FU <= 3'b001; // Disable Branching addi <= 1'b0; @@ -24,6 +33,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b0; + compare1 <= 1'b0; end 4'b0001: // Load Byte begin @@ -37,6 +48,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end 4'b0010: // Store Byte begin @@ -50,6 +63,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end 4'b0011: // Link begin @@ -63,6 +78,8 @@ module ControlUnit( link <= 1'b1; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b0; + compare1 <= 1'b0; end 4'b0100: // Zero begin @@ -76,6 +93,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b0; + compare1 <= 1'b0; end 4'b0101: // Add/Subtract if(functBit == 1) // Subtract @@ -90,6 +109,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end else // Add begin @@ -103,6 +124,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end 4'b0110: // Add Immediate begin @@ -116,6 +139,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b0; end 4'b0111: // Set if Less Than begin @@ -129,6 +154,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end 4'b1000: // Jump to Register begin @@ -142,6 +169,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b0; end 4'b1001: // Jump Forward begin @@ -155,6 +184,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b0; + compare1 <= 1'b0; end 4'b1010: // Bank Load/Bank Store begin @@ -168,6 +199,8 @@ module ControlUnit( link <= 1'b0; bank <= {functBit,functBit}; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b0; end 4'b1011: // Jump Backward begin @@ -181,6 +214,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b1; + compare0 <= 1'b0; + compare1 <= 1'b0; end 4'b1100: // Branch if Zero begin @@ -194,6 +229,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b0; end 4'b1101: // NOR begin @@ -207,6 +244,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end 4'b1110: // OR/AND if(functBit == 1) // AND @@ -221,6 +260,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end else // OR begin @@ -234,6 +275,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end 4'b1111: // Shift Right Logical/Shift Left Logical if(functBit == 1) // Shift Right Logical @@ -248,6 +291,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end else // Shift Left Logical begin @@ -261,6 +306,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b1; + compare1 <= 1'b1; end default: begin @@ -274,6 +321,8 @@ module ControlUnit( link <= 1'b0; bank <= 2'b10; js <= 1'b0; + compare0 <= 1'b0; + compare1 <= 1'b0; end endcase end diff --git a/lab2CA.srcs/sources_1/new/FDModule.v b/lab2CA.srcs/sources_1/new/FDModule.v index 611672d..c0ee74a 100644 --- a/lab2CA.srcs/sources_1/new/FDModule.v +++ b/lab2CA.srcs/sources_1/new/FDModule.v @@ -4,8 +4,9 @@ module FDModule( input wire reset, clk, FUIdx, En, input wire [8:0] RFIn, AddrIn, input wire[1:0] RFIdx, + output wire [1:0] op0_idx, op1_idx, output wire [50:0] result, - output wire done + output wire done, compare0, compare1 ); @@ -13,9 +14,11 @@ module FDModule( wire [3:0] aluOp; wire [2:0] FU; wire [1:0] bankS; - wire addiS, RegEn, loadS, halt, link, js, dataMemEn; + wire addiS, RegEn, loadS, halt, link, js, dataMemEn ; assign result = {instr,op0,op1,PCout,addiS,RegEn,loadS,link,js,dataMemEn,aluOp,FU,bankS}; // concat all signals into one + assign op0_idx = instr[4:3]; + assign op1_idx = instr[2:1]; instructionMemory iM( @@ -55,6 +58,8 @@ module FDModule( .halt(done), .link(link), .bank(bankS), - .js(js) + .js(js), + .compare0(compare0), + .compare1(compare1) ); endmodule diff --git a/lab2CA.xpr b/lab2CA.xpr index 4685357..0d28766 100644 --- a/lab2CA.xpr +++ b/lab2CA.xpr @@ -3,7 +3,7 @@ - +