diff --git a/CPU9bits_tb_behav.wcfg b/CPU9bits_tb_behav.wcfg index 56a2585..ec4321f 100644 --- a/CPU9bits_tb_behav.wcfg +++ b/CPU9bits_tb_behav.wcfg @@ -11,41 +11,15 @@ - - - + + + - + - - - Program Counter - label - - clk - clk - - - reset - reset - - - En - En - - - Din[8:0] - Din[8:0] - UNSIGNEDDECRADIX - - - Dout[8:0] - Dout[8:0] - UNSIGNEDDECRADIX - - + Fetch Unit label @@ -57,24 +31,17 @@ AddrIn[8:0] AddrIn[8:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX AddrOut[8:0] AddrOut[8:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX progC_out[8:0] progC_out[8:0] - - - result_m[8:0] - result_m[8:0] - - - cout - cout + SIGNEDDECRADIX @@ -83,6 +50,7 @@ instIn[3:0] instIn[3:0] + SIGNEDDECRADIX functBit @@ -91,14 +59,17 @@ aluOut[3:0] aluOut[3:0] + SIGNEDDECRADIX FU[2:0] FU[2:0] + SIGNEDDECRADIX bank[1:0] bank[1:0] + SIGNEDDECRADIX addi @@ -132,6 +103,7 @@ Registers label + En En @@ -139,37 +111,32 @@ write_index[1:0] write_index[1:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX op0_idx[1:0] op0_idx[1:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX op1_idx[1:0] op1_idx[1:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX write_data[8:0] write_data[8:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX op0[8:0] op0[8:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX op1[8:0] op1[8:0] - UNSIGNEDDECRADIX - - - decOut[3:0] - decOut[3:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX r0_out[8:0] @@ -258,16 +225,17 @@ address[8:0] address[8:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX readData[8:0] readData[8:0] - BINARYRADIX + SIGNEDDECRADIX - memory[100:0][8:0] - memory[100:0][8:0] + memory[18:0][8:0] + memory[18:0][8:0] + SIGNEDDECRADIX switch @@ -276,14 +244,17 @@ A[8:0] A[8:0] + SIGNEDDECRADIX B[8:0] B[8:0] + SIGNEDDECRADIX out[8:0] out[8:0] + SIGNEDDECRADIX switch @@ -314,12 +285,14 @@ En - Din[50:0] - Din[50:0] + Din[52:0] + Din[52:0] + SIGNEDDECRADIX - Dout[50:0] - Dout[50:0] + Dout[52:0] + Dout[52:0] + SIGNEDDECRADIX @@ -336,19 +309,33 @@ address[8:0] address[8:0] - UNSIGNEDDECRADIX + SIGNEDDECRADIX writeData[8:0] writeData[8:0] + SIGNEDDECRADIX readData[8:0] readData[8:0] + SIGNEDDECRADIX - memory[100:0][8:0] - memory[100:0][8:0] + memory[1:0][8:0] + memory[1:0][8:0] + SIGNEDDECRADIX + + + [1][8:0] + [1][8:0] + SIGNEDDECRADIX + + + [0][8:0] + [0][8:0] + SIGNEDDECRADIX + @@ -356,7 +343,7 @@ label - Mux 3 + Mux 3 - Addi label switch @@ -378,8 +365,31 @@ SIGNEDDECRADIX + + Mux 6 - Link + label + + switch + switch + + + A[8:0] + A[8:0] + SIGNEDDECRADIX + + + B[8:0] + B[8:0] + SIGNEDDECRADIX + + + out[8:0] + out[8:0] + SIGNEDDECRADIX + + - Mux 4 + Mux 4 - Mem label switch @@ -402,7 +412,7 @@ - Mux 5 + Mux 5 - Bank label switch @@ -424,27 +434,97 @@ SIGNEDDECRADIX - - Mux 6 + + Divider label - + + + op0 - Mux + label + + switch switch - + A[8:0] A[8:0] SIGNEDDECRADIX - + B[8:0] B[8:0] SIGNEDDECRADIX - + out[8:0] out[8:0] SIGNEDDECRADIX + + A[1:0] + A[1:0] + + + B[8:0] + B[8:0] + + + + op1 - Mux + label + + + switch + switch + + + A[8:0] + A[8:0] + SIGNEDDECRADIX + + + B[8:0] + B[8:0] + SIGNEDDECRADIX + + + out[8:0] + out[8:0] + SIGNEDDECRADIX + + + A[1:0] + A[1:0] + + + B[8:0] + B[8:0] + + + + ALU + label + + + opcode[3:0] + opcode[3:0] + SIGNEDDECRADIX + + + operand0[8:0] + operand0[8:0] + SIGNEDDECRADIX + + + operand1[8:0] + operand1[8:0] + SIGNEDDECRADIX + + + result[8:0] + result[8:0] + SIGNEDDECRADIX + diff --git a/lab2CA.runs/impl_1/gen_run.xml b/lab2CA.runs/impl_1/gen_run.xml index dd35d50..8982876 100644 --- a/lab2CA.runs/impl_1/gen_run.xml +++ b/lab2CA.runs/impl_1/gen_run.xml @@ -1,11 +1,11 @@ + - + - @@ -25,19 +25,20 @@ - - + + - + + @@ -48,7 +49,6 @@ - diff --git a/lab2CA.sim/sim_1/behav/xsim/xelab.pb b/lab2CA.sim/sim_1/behav/xsim/xelab.pb index a1ea57e..df57232 100644 Binary files a/lab2CA.sim/sim_1/behav/xsim/xelab.pb and b/lab2CA.sim/sim_1/behav/xsim/xelab.pb differ 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 a1ea386..091e7b6 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 @@ -47,22 +47,22 @@ extern int main(int, char**); extern void execute_2(char*, char *); extern void execute_3(char*, char *); extern void execute_240(char*, char *); -extern void execute_611(char*, char *); -extern void execute_612(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 vlog_const_rhs_process_execute_0_fast_no_reg_no_agg(char*, 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_609(char*, char *); -extern void execute_610(char*, char *); extern void execute_247(char*, char *); -extern void execute_248(char*, char *); -extern void execute_249(char*, char *); +extern void execute_278(char*, char *); +extern void execute_279(char*, char *); extern void execute_280(char*, char *); extern void execute_281(char*, char *); extern void execute_282(char*, char *); @@ -74,28 +74,28 @@ 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 execute_267(char*, char *); extern void execute_269(char*, char *); +extern void execute_270(char*, char *); +extern void execute_11(char*, char *); +extern void execute_248(char*, char *); +extern void execute_249(char*, char *); +extern void execute_23(char*, char *); extern void execute_271(char*, char *); extern void execute_272(char*, char *); -extern void execute_11(char*, char *); -extern void execute_250(char*, char *); -extern void execute_251(char*, char *); -extern void execute_23(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_291(char*, char *); +extern void execute_292(char*, char *); extern void execute_293(char*, char *); extern void execute_294(char*, char *); extern void execute_295(char*, char *); @@ -108,38 +108,38 @@ 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_485(char*, char *); extern void execute_487(char*, char *); -extern void execute_489(char*, char *); +extern void execute_488(char*, char *); extern void execute_490(char*, char *); +extern void execute_491(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_420(char*, char *); +extern void execute_421(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_349(char*, char *); +extern void execute_330(char*, char *); +extern void execute_370(char*, char *); +extern void execute_371(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_417(char*, char *); +extern void execute_418(char*, char *); extern void execute_129(char*, char *); -extern void execute_467(char*, char *); +extern void execute_465(char*, char *); extern void execute_160(char*, char *); extern void execute_173(char*, char *); +extern void execute_495(char*, char *); +extern void execute_496(char*, char *); extern void execute_497(char*, char *); extern void execute_498(char*, char *); extern void execute_499(char*, char *); @@ -156,24 +156,22 @@ 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 execute_616(char*, char *); -extern void execute_617(char*, char *); extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); -extern void transaction_131(char*, char*, unsigned, unsigned, unsigned); -funcp funcTab[124] = {(funcp)execute_2, (funcp)execute_3, (funcp)execute_240, (funcp)execute_611, (funcp)execute_612, (funcp)vlog_simple_process_execute_0_fast_no_reg_no_agg, (funcp)execute_246, (funcp)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (funcp)execute_603, (funcp)execute_604, (funcp)execute_605, (funcp)execute_606, (funcp)execute_607, (funcp)execute_608, (funcp)execute_609, (funcp)execute_610, (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)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_613, (funcp)execute_614, (funcp)execute_615, (funcp)execute_616, (funcp)execute_617, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_131}; -const int NumRelocateId= 124; +extern void transaction_133(char*, char*, unsigned, unsigned, unsigned); +funcp funcTab[122] = {(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)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (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_278, (funcp)execute_279, (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_7, (funcp)execute_8, (funcp)execute_267, (funcp)execute_269, (funcp)execute_270, (funcp)execute_11, (funcp)execute_248, (funcp)execute_249, (funcp)execute_23, (funcp)execute_271, (funcp)execute_272, (funcp)execute_273, (funcp)execute_274, (funcp)execute_275, (funcp)execute_276, (funcp)execute_277, (funcp)execute_26, (funcp)execute_36, (funcp)execute_40, (funcp)execute_42, (funcp)execute_291, (funcp)execute_292, (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_485, (funcp)execute_487, (funcp)execute_488, (funcp)execute_490, (funcp)execute_491, (funcp)execute_492, (funcp)execute_493, (funcp)execute_494, (funcp)execute_45, (funcp)execute_46, (funcp)execute_420, (funcp)execute_421, (funcp)execute_422, (funcp)execute_423, (funcp)execute_424, (funcp)execute_425, (funcp)execute_349, (funcp)execute_330, (funcp)execute_370, (funcp)execute_371, (funcp)execute_372, (funcp)execute_373, (funcp)execute_374, (funcp)execute_375, (funcp)execute_417, (funcp)execute_418, (funcp)execute_129, (funcp)execute_465, (funcp)execute_160, (funcp)execute_173, (funcp)execute_495, (funcp)execute_496, (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_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_133}; +const int NumRelocateId= 122; void relocate(char *dp) { - iki_relocate(dp, "xsim.dir/CPU9bits_tb_behav/xsim.reloc", (void **)funcTab, 124); + iki_relocate(dp, "xsim.dir/CPU9bits_tb_behav/xsim.reloc", (void **)funcTab, 122); /*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/xsim_webtalk.tcl b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/xsim_webtalk.tcl index 66eb116..de6b4d8 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,6 +1,6 @@ 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 21:13:26 2019" -context "software_version_and_target_device" +webtalk_add_data -client project -key date_generated -value "Thu Apr 11 23:44:27 2019" -context "software_version_and_target_device" 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" @@ -14,7 +14,7 @@ webtalk_add_data -client project -key target_package -value "not_applicable" -co webtalk_add_data -client project -key target_speed -value "not_applicable" -context "software_version_and_target_device" 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 "153" -context "software_version_and_target_device" +webtalk_add_data -client project -key project_iteration -value "183" -context "software_version_and_target_device" 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) Core(TM) i5-3230M CPU @ 2.60GHz" -context "user_environment" @@ -22,11 +22,21 @@ webtalk_add_data -client project -key cpu_speed -value "2594 MHz" -context "user 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_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 "315 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.06_sec" -context "xsim\\usage" -webtalk_add_data -client xsim -key Simulation_Memory -value "5980_KB" -context "xsim\\usage" -webtalk_transmit -clientid 4273905684 -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 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 "121 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 "1.41_sec" -context "xsim\\usage" +webtalk_add_data -client xsim -key Compiler_Memory -value "48168_KB" -context "xsim\\usage" +webtalk_transmit -clientid 3886063125 -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_terminate diff --git a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/xsim.mem b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/xsim.mem index 25b0fbb..dfe2f8a 100644 Binary files a/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/xsim.mem and b/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/xsim.mem differ diff --git a/lab2CA.sim/sim_1/behav/xsim/xvlog.pb b/lab2CA.sim/sim_1/behav/xsim/xvlog.pb index d512677..836b474 100644 Binary files a/lab2CA.sim/sim_1/behav/xsim/xvlog.pb and b/lab2CA.sim/sim_1/behav/xsim/xvlog.pb differ diff --git a/lab2CA.srcs/sources_1/new/BasicModules.v b/lab2CA.srcs/sources_1/new/BasicModules.v index ed7a182..60e64c6 100644 --- a/lab2CA.srcs/sources_1/new/BasicModules.v +++ b/lab2CA.srcs/sources_1/new/BasicModules.v @@ -850,8 +850,8 @@ module fDPipReg( input wire clk, input wire reset, input wire En, - input wire [50:0] Din, - output reg [50:0] Dout); + input wire [52:0] Din, + output reg [52:0] Dout); always @(posedge clk) begin if (reset == 1'b1) begin diff --git a/lab2CA.srcs/sources_1/new/CPU9bits.v b/lab2CA.srcs/sources_1/new/CPU9bits.v index 5c24257..a70e4bc 100644 --- a/lab2CA.srcs/sources_1/new/CPU9bits.v +++ b/lab2CA.srcs/sources_1/new/CPU9bits.v @@ -9,7 +9,8 @@ module CPU9bits( 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 [50:0] EMIn; + wire [52:0] FDOut,FDPipOut; wire [61:0] EMOut, EMPipOut; @@ -25,26 +26,26 @@ module CPU9bits( .RFIn(RFIn), .AddrIn(FUAddr), .RFIdx(instr), - .result(FDOut), - .done(done), - .compare0(compare0), - .compare1(compare1), - .op0_idx(op0_idx), - .op1_idx(op1_idx) + .result(FDOut), //////////////////// + .done(done) + //.compare0(compare0), + //.compare1(compare1), + //.op0_idx(op0_idx), + //.op1_idx(op1_idx) ); fDPipReg pipe1( .clk(clk), .reset(reset), .En(1'b0), - .Din(FDOut), - .Dout(FDPipOut) + .Din(FDOut), /////////////////// + .Dout(FDPipOut)/////////////////// ); EMModule EM( .reset(reset), .clk(clk), - .PipIn(EMIn), + .PipIn(EMIn),///////////////// .PipOut(EMOut) ); @@ -66,12 +67,12 @@ module CPU9bits( ); sign_extend_2bit ext0( - .A(op0_idx), + .A(FDPipOut[46:45]), .B(op0_ext) ); sign_extend_2bit ext1( - .A(op1_idx), + .A(FDPipOut[44:43]), .B(op1_ext) ); @@ -104,26 +105,28 @@ module CPU9bits( and_9bit and0( .A(~op0_zero), - .B({8'b00000000,compare0}), + .B({8'b00000000,FDPipOut[52]}), .C(op0_and) ); and_9bit and1( .A(~op1_zero), - .B({8'b00000000,compare1}), + .B({8'b00000000,FDPipOut[51]}), .C(op1_and) ); mux_2_1 mux0( .switch(op0_and[0]), - .A(FDOut[41:33]), + //.switch(1'b0), + .A(FDPipOut[41:33]), .B(EMPipOut[33:25]), //ALUOut .out(newOp0) ); mux_2_1 mux1( .switch(op1_and[0]), - .A(FDOut[32:24]), + //.switch(1'b0), + .A(FDPipOut[32:24]), .B(EMPipOut[33:25]), //ALUOut .out(newOp1) ); @@ -154,7 +157,7 @@ module CPU9bits_tb(); reset = 1'b1; #10 reset = 1'b0; - #300 + #200 $finish; end diff --git a/lab2CA.srcs/sources_1/new/FDModule.v b/lab2CA.srcs/sources_1/new/FDModule.v index c0ee74a..3229008 100644 --- a/lab2CA.srcs/sources_1/new/FDModule.v +++ b/lab2CA.srcs/sources_1/new/FDModule.v @@ -4,9 +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, compare0, compare1 + //output wire [1:0] op0_idx, op1_idx, + output wire [52:0] result, + output wire done//, compare0, compare1 ); @@ -16,9 +16,9 @@ module FDModule( wire [1:0] bankS; 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]; + assign result = {compare0,compare1,instr,op0,op1,PCout,addiS,RegEn,loadS,link,js,dataMemEn,aluOp,FU,bankS}; // concat all signals into one + //assign op0_idx = instr[4:3];46-45 + //assign op1_idx = instr[2:1];44-43 instructionMemory iM( diff --git a/lab2CA.srcs/sources_1/new/dataMemory.v b/lab2CA.srcs/sources_1/new/dataMemory.v index c69b4e8..9054504 100644 --- a/lab2CA.srcs/sources_1/new/dataMemory.v +++ b/lab2CA.srcs/sources_1/new/dataMemory.v @@ -97,107 +97,107 @@ module dataMemory( // Program 1 Test Data - memory[0] <= 9'd100; - memory[1] <= 9'd58; - memory[2] <= 9'd6; - memory[3] <= 9'd12; - memory[4] <= 9'b110110000; // -80 - memory[5] <= 9'd17; - memory[6] <= 9'b111011011; // -37 - memory[7] <= 9'd25; - memory[8] <= -9'd83; // -83 - memory[9] <= -9'd98; // -98 - memory[10] <= -9'd98; // -98 - memory[11] <= -9'd74; // -74 - memory[12] <= 9'd70; - memory[13] <= -9'd38; // -38 - memory[14] <= 9'd52; - memory[15] <= -9'd96; // -96 - memory[16] <= -9'd32; // -32 - memory[17] <= -9'd93; // -93 - memory[18] <= -9'd40; // -40 - memory[19] <= 9'd59; - memory[20] <= 9'd10; - memory[21] <= 9'd81; - memory[22] <= -9'd23; // -28 - memory[23] <=- 9'd99; // -99 - memory[24] <= -9'd41; // -41 - memory[25] <= 9'd33; - memory[26] <= 9'd98; - memory[27] <= 9'd73; - memory[28] <= -9'd1; // -1 - memory[29] <= 9'd28; - memory[30] <= 9'd5; - memory[31] <= -9'd74; // -74 - memory[32] <= -9'd41; // -41 - memory[33] <= 9'd41; - memory[34] <= 9'd39; - memory[35] <= 9'd62; - memory[36] <= 9'd19; - memory[37] <= -9'd40; // -40 - memory[38] <= -9'd8; // -8 - memory[39] <= 9'd92; - memory[40] <= 9'd37; - memory[41] <= 9'd50; - memory[42] <= -9'd72; // -72 - memory[43] <= -9'd5; // -5 - memory[44] <= 9'd19; - memory[45] <= 9'd58; - memory[46] <= -9'd13; // -13 - memory[47] <= 9'd0; - memory[48] <= -9'd97; // -97 - memory[49] <= 9'd54; - memory[50] <= -9'd17; // -17 - memory[51] <= -9'd83; // -83 - memory[52] <= 9'd53; - memory[53] <= 9'd82; - memory[54] <= -9'd94; // -94 - memory[55] <= -9'd77; // -77 - memory[56] <= -9'd74; // -74 - memory[57] <= -9'd52; // -52 - memory[58] <= 9'd85; - memory[59] <= -9'd65; // -65 - memory[60] <= -9'd10; // -10 - memory[61] <= -9'd45; // -45 - memory[62] <= -9'd92; // -92 - memory[63] <= -9'd30; // -30 - memory[64] <= 9'd18; - memory[65] <= -9'd95; // -95 - memory[66] <= -9'd27; // -27 - memory[67] <= -9'd74; // -74 - memory[68] <= 9'd62; - memory[69] <= 9'd64; - memory[70] <= -9'd9; // -9 - memory[71] <= 9'd66; - memory[72] <= -9'd71; // -71 - memory[73] <= -9'd31; // -31 - memory[74] <= 9'd34; - memory[75] <= 9'd12; - memory[76] <= 9'd3; - memory[77] <= 9'd82; - memory[78] <= 9'd13; - memory[79] <= -9'd78; // -78 - memory[80] <= -9'd8; // -8 - memory[81] <= 9'd88; - memory[82] <= 9'd42; - memory[83] <= 9'd42; - memory[84] <= 9'd21; - memory[85] <= -9'd44; // -44 - memory[86] <= 9'd30; - memory[87] <= -9'd93; // -93 - memory[88] <= 9'd2; - memory[89] <= -9'd34; // -34 - memory[90] <= 9'd92; - memory[91] <= -9'd45; // -45 - memory[92] <= 9'd26; - memory[93] <= -9'd79; // -79 - memory[94] <= 9'd43; - memory[95] <= -9'd25; // -25 - memory[96] <= -9'd24; // -24 - memory[97] <= -9'd25; // -25 - memory[98] <= -9'd19; // -19 - memory[99] <= -9'd49; // -49 - memory[100] <= -9'd8; // -8 +// memory[0] <= 9'd100; +// memory[1] <= 9'd58; +// memory[2] <= 9'd6; +// memory[3] <= 9'd12; +// memory[4] <= 9'b110110000; // -80 +// memory[5] <= 9'd17; +// memory[6] <= 9'b111011011; // -37 +// memory[7] <= 9'd25; +// memory[8] <= -9'd83; // -83 +// memory[9] <= -9'd98; // -98 +// memory[10] <= -9'd98; // -98 +// memory[11] <= -9'd74; // -74 +// memory[12] <= 9'd70; +// memory[13] <= -9'd38; // -38 +// memory[14] <= 9'd52; +// memory[15] <= -9'd96; // -96 +// memory[16] <= -9'd32; // -32 +// memory[17] <= -9'd93; // -93 +// memory[18] <= -9'd40; // -40 +// memory[19] <= 9'd59; +// memory[20] <= 9'd10; +// memory[21] <= 9'd81; +// memory[22] <= -9'd23; // -28 +// memory[23] <=- 9'd99; // -99 +// memory[24] <= -9'd41; // -41 +// memory[25] <= 9'd33; +// memory[26] <= 9'd98; +// memory[27] <= 9'd73; +// memory[28] <= -9'd1; // -1 +// memory[29] <= 9'd28; +// memory[30] <= 9'd5; +// memory[31] <= -9'd74; // -74 +// memory[32] <= -9'd41; // -41 +// memory[33] <= 9'd41; +// memory[34] <= 9'd39; +// memory[35] <= 9'd62; +// memory[36] <= 9'd19; +// memory[37] <= -9'd40; // -40 +// memory[38] <= -9'd8; // -8 +// memory[39] <= 9'd92; +// memory[40] <= 9'd37; +// memory[41] <= 9'd50; +// memory[42] <= -9'd72; // -72 +// memory[43] <= -9'd5; // -5 +// memory[44] <= 9'd19; +// memory[45] <= 9'd58; +// memory[46] <= -9'd13; // -13 +// memory[47] <= 9'd0; +// memory[48] <= -9'd97; // -97 +// memory[49] <= 9'd54; +// memory[50] <= -9'd17; // -17 +// memory[51] <= -9'd83; // -83 +// memory[52] <= 9'd53; +// memory[53] <= 9'd82; +// memory[54] <= -9'd94; // -94 +// memory[55] <= -9'd77; // -77 +// memory[56] <= -9'd74; // -74 +// memory[57] <= -9'd52; // -52 +// memory[58] <= 9'd85; +// memory[59] <= -9'd65; // -65 +// memory[60] <= -9'd10; // -10 +// memory[61] <= -9'd45; // -45 +// memory[62] <= -9'd92; // -92 +// memory[63] <= -9'd30; // -30 +// memory[64] <= 9'd18; +// memory[65] <= -9'd95; // -95 +// memory[66] <= -9'd27; // -27 +// memory[67] <= -9'd74; // -74 +// memory[68] <= 9'd62; +// memory[69] <= 9'd64; +// memory[70] <= -9'd9; // -9 +// memory[71] <= 9'd66; +// memory[72] <= -9'd71; // -71 +// memory[73] <= -9'd31; // -31 +// memory[74] <= 9'd34; +// memory[75] <= 9'd12; +// memory[76] <= 9'd3; +// memory[77] <= 9'd82; +// memory[78] <= 9'd13; +// memory[79] <= -9'd78; // -78 +// memory[80] <= -9'd8; // -8 +// memory[81] <= 9'd88; +// memory[82] <= 9'd42; +// memory[83] <= 9'd42; +// memory[84] <= 9'd21; +// memory[85] <= -9'd44; // -44 +// memory[86] <= 9'd30; +// memory[87] <= -9'd93; // -93 +// memory[88] <= 9'd2; +// memory[89] <= -9'd34; // -34 +// memory[90] <= 9'd92; +// memory[91] <= -9'd45; // -45 +// memory[92] <= 9'd26; +// memory[93] <= -9'd79; // -79 +// memory[94] <= 9'd43; +// memory[95] <= -9'd25; // -25 +// memory[96] <= -9'd24; // -24 +// memory[97] <= -9'd25; // -25 +// memory[98] <= -9'd19; // -19 +// memory[99] <= -9'd49; // -49 +// memory[100] <= -9'd8; // -8 diff --git a/lab2CA.srcs/sources_1/new/instructionMemory.v b/lab2CA.srcs/sources_1/new/instructionMemory.v index e9f16a1..953d9c3 100644 --- a/lab2CA.srcs/sources_1/new/instructionMemory.v +++ b/lab2CA.srcs/sources_1/new/instructionMemory.v @@ -5,7 +5,7 @@ module instructionMemory( output reg [8:0] readData ); - reg [8:0] memory [8:0]; // Maximum of 512 memory locations + reg [8:0] memory [18:0]; // Maximum of 512 memory locations // Vivado will give warnings of unconnected ports on the "address" bus if they are unused initial begin @@ -13,12 +13,19 @@ module instructionMemory( memory[0] <= 9'b000000000; //Stall memory[1] <= 9'b000000000; //Stall memory[2] <= 9'b011000000; //addi - memory[3] <= 9'b011001001; //addi - memory[4] <= 9'b000100000; //load - memory[5] <= 9'b000101010; //load - memory[6] <= 9'b010100010; //add - memory[7] <= 9'b111100000; //shift left - memory[8] <= 9'b111100000; //shift left + memory[3] <= 9'b000000000; //Stall + memory[4] <= 9'b000000000; //Stall + memory[5] <= 9'b011001001; //addi + memory[6] <= 9'b000000000; //Stall + memory[7] <= 9'b000000000; //Stall + memory[8] <= 9'b000100000; //load + memory[9] <= 9'b000000000; //Stall + memory[10] <= 9'b000101010; //load + memory[11] <= 9'b010100010; //add + memory[12] <= 9'b111100000; //shift left + memory[13] <= 9'b111100000; //shift left + memory[14] <= 9'b000000000; //Stall + memory[15] <= 9'b000000000; //Stall // //Testing all instructions // memory[6] <= 9'b010100011; //sub diff --git a/lab2CA.xpr b/lab2CA.xpr index f36c02f..47f180c 100644 --- a/lab2CA.xpr +++ b/lab2CA.xpr @@ -3,7 +3,7 @@ - +