BEQ and LD fix

This commit is contained in:
Johannes
2019-03-24 16:05:16 -04:00
parent 27f6d24b88
commit e8ada91e08
12 changed files with 193 additions and 131 deletions

View File

@@ -12,14 +12,14 @@
</db_ref_list> </db_ref_list>
<zoom_setting> <zoom_setting>
<ZoomStartTime time="0fs"></ZoomStartTime> <ZoomStartTime time="0fs"></ZoomStartTime>
<ZoomEndTime time="217363695fs"></ZoomEndTime> <ZoomEndTime time="520000001fs"></ZoomEndTime>
<Cursor1Time time="188569000fs"></Cursor1Time> <Cursor1Time time="65000000fs"></Cursor1Time>
</zoom_setting> </zoom_setting>
<column_width_setting> <column_width_setting>
<NameColumnWidth column_width="175"></NameColumnWidth> <NameColumnWidth column_width="286"></NameColumnWidth>
<ValueColumnWidth column_width="142"></ValueColumnWidth> <ValueColumnWidth column_width="209"></ValueColumnWidth>
</column_width_setting> </column_width_setting>
<WVObjectSize size="23" /> <WVObjectSize size="31" />
<wvobject fp_name="/CPU9bits_tb/clk" type="logic"> <wvobject fp_name="/CPU9bits_tb/clk" type="logic">
<obj_property name="ElementShortName">clk</obj_property> <obj_property name="ElementShortName">clk</obj_property>
<obj_property name="ObjectShortName">clk</obj_property> <obj_property name="ObjectShortName">clk</obj_property>
@@ -35,39 +35,10 @@
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/instr" type="array"> <wvobject fp_name="/CPU9bits_tb/CPU9bits0/instr" type="array">
<obj_property name="ElementShortName">instr[8:0]</obj_property> <obj_property name="ElementShortName">instr[8:0]</obj_property>
<obj_property name="ObjectShortName">instr[8:0]</obj_property> <obj_property name="ObjectShortName">instr[8:0]</obj_property>
<obj_property name="isExpanded"></obj_property>
</wvobject> </wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/enable" type="logic"> <wvobject fp_name="/CPU9bits_tb/CPU9bits0/FetchU/AddrOut" type="array">
<obj_property name="ElementShortName">enable</obj_property> <obj_property name="ElementShortName">AddrOut[8:0]</obj_property>
<obj_property name="ObjectShortName">enable</obj_property> <obj_property name="ObjectShortName">AddrOut[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/write_index" type="array">
<obj_property name="ElementShortName">write_index[1:0]</obj_property>
<obj_property name="ObjectShortName">write_index[1:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/op0_idx" type="array">
<obj_property name="ElementShortName">op0_idx[1:0]</obj_property>
<obj_property name="ObjectShortName">op0_idx[1:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/op1_idx" type="array">
<obj_property name="ElementShortName">op1_idx[1:0]</obj_property>
<obj_property name="ObjectShortName">op1_idx[1:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/write_data" type="array">
<obj_property name="ElementShortName">write_data[8:0]</obj_property>
<obj_property name="ObjectShortName">write_data[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/op0" type="array">
<obj_property name="ElementShortName">op0[8:0]</obj_property>
<obj_property name="ObjectShortName">op0[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/op1" type="array">
<obj_property name="ElementShortName">op1[8:0]</obj_property>
<obj_property name="ObjectShortName">op1[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/decOut" type="array">
<obj_property name="ElementShortName">decOut[3:0]</obj_property>
<obj_property name="ObjectShortName">decOut[3:0]</obj_property>
</wvobject> </wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/r0_out" type="array"> <wvobject fp_name="/CPU9bits_tb/CPU9bits0/RF/r0_out" type="array">
<obj_property name="ElementShortName">r0_out[8:0]</obj_property> <obj_property name="ElementShortName">r0_out[8:0]</obj_property>
@@ -85,6 +56,54 @@
<obj_property name="ElementShortName">r3_out[8:0]</obj_property> <obj_property name="ElementShortName">r3_out[8:0]</obj_property>
<obj_property name="ObjectShortName">r3_out[8:0]</obj_property> <obj_property name="ObjectShortName">r3_out[8:0]</obj_property>
</wvobject> </wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/Bank/r0_out" type="array">
<obj_property name="ElementShortName">r0_out[8:0]</obj_property>
<obj_property name="ObjectShortName">r0_out[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/Bank/r1_out" type="array">
<obj_property name="ElementShortName">r1_out[8:0]</obj_property>
<obj_property name="ObjectShortName">r1_out[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/Bank/r2_out" type="array">
<obj_property name="ElementShortName">r2_out[8:0]</obj_property>
<obj_property name="ObjectShortName">r2_out[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/Bank/r3_out" type="array">
<obj_property name="ElementShortName">r3_out[8:0]</obj_property>
<obj_property name="ObjectShortName">r3_out[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/mux4/switch" type="logic">
<obj_property name="ElementShortName">switch</obj_property>
<obj_property name="ObjectShortName">switch</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/dM/writeEnable" type="logic">
<obj_property name="ElementShortName">writeEnable</obj_property>
<obj_property name="ObjectShortName">writeEnable</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/dM/address" type="array">
<obj_property name="ElementShortName">address[8:0]</obj_property>
<obj_property name="ObjectShortName">address[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/dM/writeData" type="array">
<obj_property name="ElementShortName">writeData[8:0]</obj_property>
<obj_property name="ObjectShortName">writeData[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/dM/memory" type="array">
<obj_property name="ElementShortName">memory[15:0][8:0]</obj_property>
<obj_property name="ObjectShortName">memory[15:0][8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/dM/readData" type="array">
<obj_property name="ElementShortName">readData[8:0]</obj_property>
<obj_property name="ObjectShortName">readData[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/alu/operand0" type="array">
<obj_property name="ElementShortName">operand0[8:0]</obj_property>
<obj_property name="ObjectShortName">operand0[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/alu/result_K" type="array">
<obj_property name="ElementShortName">result_K[8:0]</obj_property>
<obj_property name="ObjectShortName">result_K[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/FetchU/op_idx" type="logic"> <wvobject fp_name="/CPU9bits_tb/CPU9bits0/FetchU/op_idx" type="logic">
<obj_property name="ElementShortName">op_idx</obj_property> <obj_property name="ElementShortName">op_idx</obj_property>
<obj_property name="ObjectShortName">op_idx</obj_property> <obj_property name="ObjectShortName">op_idx</obj_property>
@@ -93,10 +112,6 @@
<obj_property name="ElementShortName">AddrIn[8:0]</obj_property> <obj_property name="ElementShortName">AddrIn[8:0]</obj_property>
<obj_property name="ObjectShortName">AddrIn[8:0]</obj_property> <obj_property name="ObjectShortName">AddrIn[8:0]</obj_property>
</wvobject> </wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/FetchU/AddrOut" type="array">
<obj_property name="ElementShortName">AddrOut[8:0]</obj_property>
<obj_property name="ObjectShortName">AddrOut[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/FetchU/progC_out" type="array"> <wvobject fp_name="/CPU9bits_tb/CPU9bits0/FetchU/progC_out" type="array">
<obj_property name="ElementShortName">progC_out[8:0]</obj_property> <obj_property name="ElementShortName">progC_out[8:0]</obj_property>
<obj_property name="ObjectShortName">progC_out[8:0]</obj_property> <obj_property name="ObjectShortName">progC_out[8:0]</obj_property>
@@ -109,6 +124,22 @@
<obj_property name="ElementShortName">cout</obj_property> <obj_property name="ElementShortName">cout</obj_property>
<obj_property name="ObjectShortName">cout</obj_property> <obj_property name="ObjectShortName">cout</obj_property>
</wvobject> </wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/alu/result" type="array">
<obj_property name="ElementShortName">result[8:0]</obj_property>
<obj_property name="ObjectShortName">result[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/alu/mux0/switch" type="array">
<obj_property name="ElementShortName">switch[3:0]</obj_property>
<obj_property name="ObjectShortName">switch[3:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/alu/mux0/K" type="array">
<obj_property name="ElementShortName">K[8:0]</obj_property>
<obj_property name="ObjectShortName">K[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/alu/mux0/out" type="array">
<obj_property name="ElementShortName">out[8:0]</obj_property>
<obj_property name="ObjectShortName">out[8:0]</obj_property>
</wvobject>
<wvobject fp_name="/CPU9bits_tb/CPU9bits0/CU/FU" type="array"> <wvobject fp_name="/CPU9bits_tb/CPU9bits0/CU/FU" type="array">
<obj_property name="ElementShortName">FU[2:0]</obj_property> <obj_property name="ElementShortName">FU[2:0]</obj_property>
<obj_property name="ObjectShortName">FU[2:0]</obj_property> <obj_property name="ObjectShortName">FU[2:0]</obj_property>

View File

@@ -1,14 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<GenRun Id="impl_1" LaunchPart="xc7k160tifbg484-2L" LaunchTime="1553093609"> <GenRun Id="impl_1" LaunchPart="xc7k160tifbg484-2L" LaunchTime="1553093609">
<File Type="BITSTR-BMM" Name="CPU9bits_bd.bmm"/>
<File Type="ROUTE-PWR" Name="CPU9bits_power_routed.rpt"/> <File Type="ROUTE-PWR" Name="CPU9bits_power_routed.rpt"/>
<File Type="PA-TCL" Name="CPU9bits.tcl"/> <File Type="PA-TCL" Name="CPU9bits.tcl"/>
<File Type="OPT-DCP" Name="CPU9bits_opt.dcp"/> <File Type="BITSTR-BMM" Name="CPU9bits_bd.bmm"/>
<File Type="ROUTE-PWR-SUM" Name="CPU9bits_power_summary_routed.pb"/> <File Type="ROUTE-PWR-SUM" Name="CPU9bits_power_summary_routed.pb"/>
<File Type="REPORTS-TCL" Name="CPU9bits_reports.tcl"/> <File Type="REPORTS-TCL" Name="CPU9bits_reports.tcl"/>
<File Type="OPT-DCP" Name="CPU9bits_opt.dcp"/>
<File Type="OPT-HWDEF" Name="CPU9bits.hwdef"/> <File Type="OPT-HWDEF" Name="CPU9bits.hwdef"/>
<File Type="BG-BGN" Name="CPU9bits.bgn"/>
<File Type="PWROPT-DCP" Name="CPU9bits_pwropt.dcp"/> <File Type="PWROPT-DCP" Name="CPU9bits_pwropt.dcp"/>
<File Type="BG-BGN" Name="CPU9bits.bgn"/>
<File Type="PLACE-DCP" Name="CPU9bits_placed.dcp"/> <File Type="PLACE-DCP" Name="CPU9bits_placed.dcp"/>
<File Type="PLACE-PRE-SIMILARITY" Name="CPU9bits_incremental_reuse_pre_placed.rpt"/> <File Type="PLACE-PRE-SIMILARITY" Name="CPU9bits_incremental_reuse_pre_placed.rpt"/>
<File Type="POSTPLACE-PWROPT-DCP" Name="CPU9bits_postplace_pwropt.dcp"/> <File Type="POSTPLACE-PWROPT-DCP" Name="CPU9bits_postplace_pwropt.dcp"/>
@@ -18,12 +18,12 @@
<File Type="ROUTE-ERROR-DCP" Name="CPU9bits_routed_error.dcp"/> <File Type="ROUTE-ERROR-DCP" Name="CPU9bits_routed_error.dcp"/>
<File Type="ROUTE-DCP" Name="CPU9bits_routed.dcp"/> <File Type="ROUTE-DCP" Name="CPU9bits_routed.dcp"/>
<File Type="ROUTE-BLACKBOX-DCP" Name="CPU9bits_routed_bb.dcp"/> <File Type="ROUTE-BLACKBOX-DCP" Name="CPU9bits_routed_bb.dcp"/>
<File Type="ROUTE-DRC-RPX" Name="CPU9bits_drc_routed.rpx"/>
<File Type="BITSTR-LTX" Name="CPU9bits.ltx"/> <File Type="BITSTR-LTX" Name="CPU9bits.ltx"/>
<File Type="ROUTE-METHODOLOGY-DRC" Name="CPU9bits_methodology_drc_routed.rpt"/> <File Type="ROUTE-DRC-RPX" Name="CPU9bits_drc_routed.rpx"/>
<File Type="BITSTR-MMI" Name="CPU9bits.mmi"/> <File Type="BITSTR-MMI" Name="CPU9bits.mmi"/>
<File Type="ROUTE-METHODOLOGY-DRC-PB" Name="CPU9bits_methodology_drc_routed.pb"/> <File Type="ROUTE-METHODOLOGY-DRC" Name="CPU9bits_methodology_drc_routed.rpt"/>
<File Type="BITSTR-SYSDEF" Name="CPU9bits.sysdef"/> <File Type="BITSTR-SYSDEF" Name="CPU9bits.sysdef"/>
<File Type="ROUTE-METHODOLOGY-DRC-PB" Name="CPU9bits_methodology_drc_routed.pb"/>
<File Type="ROUTE-TIMING-PB" Name="CPU9bits_timing_summary_routed.pb"/> <File Type="ROUTE-TIMING-PB" Name="CPU9bits_timing_summary_routed.pb"/>
<File Type="POSTROUTE-PHYSOPT-DCP" Name="CPU9bits_postroute_physopt.dcp"/> <File Type="POSTROUTE-PHYSOPT-DCP" Name="CPU9bits_postroute_physopt.dcp"/>
<File Type="POSTROUTE-PHYSOPT-BLACKBOX-DCP" Name="CPU9bits_postroute_physopt_bb.dcp"/> <File Type="POSTROUTE-PHYSOPT-BLACKBOX-DCP" Name="CPU9bits_postroute_physopt_bb.dcp"/>
@@ -31,8 +31,8 @@
<File Type="BITSTR-RBT" Name="CPU9bits.rbt"/> <File Type="BITSTR-RBT" Name="CPU9bits.rbt"/>
<File Type="BITSTR-NKY" Name="CPU9bits.nky"/> <File Type="BITSTR-NKY" Name="CPU9bits.nky"/>
<File Type="BG-DRC" Name="CPU9bits.drc"/> <File Type="BG-DRC" Name="CPU9bits.drc"/>
<File Type="ROUTE-CLK" Name="CPU9bits_clock_utilization_routed.rpt"/>
<File Type="RDI-RDI" Name="CPU9bits.vdi"/> <File Type="RDI-RDI" Name="CPU9bits.vdi"/>
<File Type="ROUTE-CLK" Name="CPU9bits_clock_utilization_routed.rpt"/>
<File Type="WBT-USG" Name="usage_statistics_webtalk.html"/> <File Type="WBT-USG" Name="usage_statistics_webtalk.html"/>
<File Type="OPT-DRC" Name="CPU9bits_drc_opted.rpt"/> <File Type="OPT-DRC" Name="CPU9bits_drc_opted.rpt"/>
<File Type="PLACE-UTIL" Name="CPU9bits_utilization_placed.rpt"/> <File Type="PLACE-UTIL" Name="CPU9bits_utilization_placed.rpt"/>

Binary file not shown.

View File

@@ -46,83 +46,85 @@ typedef void (*funcp)(char *, char *);
extern int main(int, char**); extern int main(int, char**);
extern void execute_2(char*, char *); extern void execute_2(char*, char *);
extern void execute_3(char*, char *); extern void execute_3(char*, char *);
extern void execute_163(char*, char *); extern void execute_176(char*, char *);
extern void execute_375(char*, char *); extern void execute_412(char*, char *);
extern void execute_376(char*, char *); extern void execute_413(char*, char *);
extern void execute_354(char*, char *); extern void execute_387(char*, char *);
extern void vlog_const_rhs_process_execute_0_fast_no_reg_no_agg(char*, char*, char*); extern void vlog_const_rhs_process_execute_0_fast_no_reg_no_agg(char*, char*, char*);
extern void execute_356(char*, char *); extern void execute_389(char*, char *);
extern void execute_358(char*, char *); extern void execute_390(char*, char *);
extern void execute_359(char*, char *); extern void execute_392(char*, char *);
extern void execute_360(char*, char *); extern void execute_393(char*, char *);
extern void execute_361(char*, char *); extern void execute_394(char*, char *);
extern void execute_362(char*, char *); extern void execute_395(char*, char *);
extern void execute_363(char*, char *); extern void execute_396(char*, char *);
extern void execute_364(char*, char *); extern void execute_397(char*, char *);
extern void execute_365(char*, char *); extern void execute_398(char*, char *);
extern void execute_366(char*, char *); extern void execute_399(char*, char *);
extern void execute_367(char*, char *); extern void execute_400(char*, char *);
extern void execute_368(char*, char *); extern void execute_401(char*, char *);
extern void execute_369(char*, char *); extern void execute_402(char*, char *);
extern void execute_370(char*, char *); extern void execute_403(char*, char *);
extern void execute_371(char*, char *); extern void execute_404(char*, char *);
extern void execute_372(char*, char *); extern void execute_405(char*, char *);
extern void execute_373(char*, char *); extern void execute_406(char*, char *);
extern void execute_374(char*, char *); extern void execute_407(char*, char *);
extern void execute_408(char*, char *);
extern void execute_409(char*, char *);
extern void execute_410(char*, char *);
extern void execute_411(char*, char *);
extern void execute_6(char*, char *); extern void execute_6(char*, char *);
extern void execute_7(char*, char *); extern void execute_7(char*, char *);
extern void execute_9(char*, char *); extern void execute_9(char*, char *);
extern void execute_10(char*, char *); extern void execute_10(char*, char *);
extern void execute_168(char*, char *); extern void execute_181(char*, char *);
extern void execute_169(char*, char *); extern void execute_182(char*, char *);
extern void execute_170(char*, char *); extern void execute_183(char*, char *);
extern void execute_171(char*, char *); extern void execute_184(char*, char *);
extern void execute_172(char*, char *); extern void execute_185(char*, char *);
extern void execute_173(char*, char *); extern void execute_186(char*, char *);
extern void execute_174(char*, char *); extern void execute_187(char*, char *);
extern void execute_13(char*, char *); extern void execute_13(char*, char *);
extern void execute_15(char*, char *); extern void execute_15(char*, char *);
extern void execute_23(char*, char *); extern void execute_23(char*, char *);
extern void execute_201(char*, char *); extern void execute_214(char*, char *);
extern void execute_203(char*, char *); extern void execute_216(char*, char *);
extern void execute_204(char*, char *); extern void execute_217(char*, char *);
extern void execute_182(char*, char *); extern void execute_195(char*, char *);
extern void execute_183(char*, char *); extern void execute_196(char*, char *);
extern void execute_55(char*, char *); extern void execute_55(char*, char *);
extern void execute_313(char*, char *); extern void execute_326(char*, char *);
extern void execute_314(char*, char *); extern void execute_327(char*, char *);
extern void execute_242(char*, char *); extern void execute_255(char*, char *);
extern void execute_223(char*, char *); extern void execute_236(char*, char *);
extern void execute_263(char*, char *); extern void execute_276(char*, char *);
extern void execute_264(char*, char *); extern void execute_277(char*, char *);
extern void execute_265(char*, char *); extern void execute_278(char*, char *);
extern void execute_266(char*, char *); extern void execute_279(char*, char *);
extern void execute_267(char*, char *); extern void execute_280(char*, char *);
extern void execute_268(char*, char *); extern void execute_281(char*, char *);
extern void execute_310(char*, char *); extern void execute_323(char*, char *);
extern void execute_311(char*, char *); extern void execute_324(char*, char *);
extern void execute_123(char*, char *); extern void execute_123(char*, char *);
extern void execute_125(char*, char *); extern void execute_125(char*, char *);
extern void execute_333(char*, char *); extern void execute_367(char*, char *);
extern void execute_334(char*, char *); extern void execute_156(char*, char *);
extern void execute_143(char*, char *); extern void execute_178(char*, char *);
extern void execute_353(char*, char *); extern void execute_179(char*, char *);
extern void execute_165(char*, char *); extern void execute_180(char*, char *);
extern void execute_166(char*, char *); extern void execute_414(char*, char *);
extern void execute_167(char*, char *); extern void execute_415(char*, char *);
extern void execute_377(char*, char *); extern void execute_416(char*, char *);
extern void execute_378(char*, char *); extern void execute_417(char*, char *);
extern void execute_379(char*, char *); extern void execute_418(char*, char *);
extern void execute_380(char*, char *);
extern void execute_381(char*, char *);
extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); extern void vlog_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *);
extern void transaction_56(char*, char*, unsigned, unsigned, unsigned); extern void transaction_60(char*, char*, unsigned, unsigned, unsigned);
funcp funcTab[73] = {(funcp)execute_2, (funcp)execute_3, (funcp)execute_163, (funcp)execute_375, (funcp)execute_376, (funcp)execute_354, (funcp)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (funcp)execute_356, (funcp)execute_358, (funcp)execute_359, (funcp)execute_360, (funcp)execute_361, (funcp)execute_362, (funcp)execute_363, (funcp)execute_364, (funcp)execute_365, (funcp)execute_366, (funcp)execute_367, (funcp)execute_368, (funcp)execute_369, (funcp)execute_370, (funcp)execute_371, (funcp)execute_372, (funcp)execute_373, (funcp)execute_374, (funcp)execute_6, (funcp)execute_7, (funcp)execute_9, (funcp)execute_10, (funcp)execute_168, (funcp)execute_169, (funcp)execute_170, (funcp)execute_171, (funcp)execute_172, (funcp)execute_173, (funcp)execute_174, (funcp)execute_13, (funcp)execute_15, (funcp)execute_23, (funcp)execute_201, (funcp)execute_203, (funcp)execute_204, (funcp)execute_182, (funcp)execute_183, (funcp)execute_55, (funcp)execute_313, (funcp)execute_314, (funcp)execute_242, (funcp)execute_223, (funcp)execute_263, (funcp)execute_264, (funcp)execute_265, (funcp)execute_266, (funcp)execute_267, (funcp)execute_268, (funcp)execute_310, (funcp)execute_311, (funcp)execute_123, (funcp)execute_125, (funcp)execute_333, (funcp)execute_334, (funcp)execute_143, (funcp)execute_353, (funcp)execute_165, (funcp)execute_166, (funcp)execute_167, (funcp)execute_377, (funcp)execute_378, (funcp)execute_379, (funcp)execute_380, (funcp)execute_381, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_56}; funcp funcTab[75] = {(funcp)execute_2, (funcp)execute_3, (funcp)execute_176, (funcp)execute_412, (funcp)execute_413, (funcp)execute_387, (funcp)vlog_const_rhs_process_execute_0_fast_no_reg_no_agg, (funcp)execute_389, (funcp)execute_390, (funcp)execute_392, (funcp)execute_393, (funcp)execute_394, (funcp)execute_395, (funcp)execute_396, (funcp)execute_397, (funcp)execute_398, (funcp)execute_399, (funcp)execute_400, (funcp)execute_401, (funcp)execute_402, (funcp)execute_403, (funcp)execute_404, (funcp)execute_405, (funcp)execute_406, (funcp)execute_407, (funcp)execute_408, (funcp)execute_409, (funcp)execute_410, (funcp)execute_411, (funcp)execute_6, (funcp)execute_7, (funcp)execute_9, (funcp)execute_10, (funcp)execute_181, (funcp)execute_182, (funcp)execute_183, (funcp)execute_184, (funcp)execute_185, (funcp)execute_186, (funcp)execute_187, (funcp)execute_13, (funcp)execute_15, (funcp)execute_23, (funcp)execute_214, (funcp)execute_216, (funcp)execute_217, (funcp)execute_195, (funcp)execute_196, (funcp)execute_55, (funcp)execute_326, (funcp)execute_327, (funcp)execute_255, (funcp)execute_236, (funcp)execute_276, (funcp)execute_277, (funcp)execute_278, (funcp)execute_279, (funcp)execute_280, (funcp)execute_281, (funcp)execute_323, (funcp)execute_324, (funcp)execute_123, (funcp)execute_125, (funcp)execute_367, (funcp)execute_156, (funcp)execute_178, (funcp)execute_179, (funcp)execute_180, (funcp)execute_414, (funcp)execute_415, (funcp)execute_416, (funcp)execute_417, (funcp)execute_418, (funcp)vlog_transfunc_eventcallback, (funcp)transaction_60};
const int NumRelocateId= 73; const int NumRelocateId= 75;
void relocate(char *dp) void relocate(char *dp)
{ {
iki_relocate(dp, "xsim.dir/CPU9bits_tb_behav/xsim.reloc", (void **)funcTab, 73); iki_relocate(dp, "xsim.dir/CPU9bits_tb_behav/xsim.reloc", (void **)funcTab, 75);
/*Populate the transaction function pointer field in the whole net structure */ /*Populate the transaction function pointer field in the whole net structure */
} }

View File

@@ -1,6 +1,6 @@
webtalk_init -webtalk_dir C:/Users/ecelab/ECE3570-Lab/lab2CA.sim/sim_1/behav/xsim/xsim.dir/CPU9bits_tb_behav/webtalk/ 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_register_client -client project
webtalk_add_data -client project -key date_generated -value "Sun Mar 24 14:11:52 2019" -context "software_version_and_target_device" webtalk_add_data -client project -key date_generated -value "Sun Mar 24 16:01:00 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 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 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 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 target_speed -value "not_applicable" -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 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_id -value "0a5803efda44405bb28bbf43ba22e808" -context "software_version_and_target_device"
webtalk_add_data -client project -key project_iteration -value "60" -context "software_version_and_target_device" webtalk_add_data -client project -key project_iteration -value "96" -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_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 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_name -value "Intel(R) Xeon(R) CPU E5-1620 v3 @ 3.50GHz" -context "user_environment"
@@ -22,11 +22,21 @@ webtalk_add_data -client project -key cpu_speed -value "3492 MHz" -context "user
webtalk_add_data -client project -key total_processors -value "1" -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" webtalk_add_data -client project -key system_ram -value "34.000 GB" -context "user_environment"
webtalk_register_client -client xsim 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 File_Counter -value "9" -context "xsim\\command_line_options"
webtalk_add_data -client xsim -key trace_waveform -value "true" -context "xsim\\usage" webtalk_add_data -client xsim -key Command -value "xelab" -context "xsim\\command_line_options"
webtalk_add_data -client xsim -key runtime -value "515 ns" -context "xsim\\usage" webtalk_add_data -client xsim -key Vhdl2008 -value "false" -context "xsim\\command_line_options"
webtalk_add_data -client xsim -key iteration -value "0" -context "xsim\\usage" webtalk_add_data -client xsim -key GenDLL -value "false" -context "xsim\\command_line_options"
webtalk_add_data -client xsim -key Simulation_Time -value "0.08_sec" -context "xsim\\usage" webtalk_add_data -client xsim -key SDFModeling -value "false" -context "xsim\\command_line_options"
webtalk_add_data -client xsim -key Simulation_Memory -value "6364_KB" -context "xsim\\usage" webtalk_add_data -client xsim -key HWCosim -value "false" -context "xsim\\command_line_options"
webtalk_transmit -clientid 346626644 -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 "<H3>XSIM Usage Report</H3><BR>" 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 "106 KB" -context "xsim\\usage"
webtalk_add_data -client xsim -key Simulation_Image_Data -value "19 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 "281" -context "xsim\\usage"
webtalk_add_data -client xsim -key Total_Instances -value "144" -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.90_sec" -context "xsim\\usage"
webtalk_add_data -client xsim -key Compiler_Memory -value "47248_KB" -context "xsim\\usage"
webtalk_transmit -clientid 2879076635 -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 "<H3>XSIM Usage Report</H3><BR>"
webtalk_terminate webtalk_terminate

Binary file not shown.

View File

@@ -9,7 +9,7 @@ module CPU9bits(
wire [2:0] FU; wire [2:0] FU;
wire [3:0] aluOp; wire [3:0] aluOp;
wire [1:0] bankS; wire [1:0] bankS;
wire addiS, RegEn, loadS, fetchBranch, halt, cout0, cout1, link, js; wire addiS, RegEn, loadS, fetchBranch, halt, cout0, cout1, link, js, dataMemEn;
instructionMemory iM( instructionMemory iM(
.clk(clk), .clk(clk),
@@ -19,7 +19,7 @@ module CPU9bits(
dataMemory dM( dataMemory dM(
.clk(clk), .clk(clk),
.writeEnable(loadS), .writeEnable(dataMemEn),
.writeData(op0), .writeData(op0),
.address(op1), .address(op1),
.readData(dataMemOut) .readData(dataMemOut)
@@ -71,6 +71,7 @@ module CPU9bits(
.FU(FU), .FU(FU),
.addi(addiS), .addi(addiS),
.mem(loadS), .mem(loadS),
.dataMemEn(dataMemEn),
.RegEn(RegEn), .RegEn(RegEn),
.halt(done), .halt(done),
.link(link), .link(link),
@@ -117,7 +118,7 @@ module CPU9bits(
bit1_mux_2_1 BranMux( // BEQ MUX bit1_mux_2_1 BranMux( // BEQ MUX
.A(FU[0]), .A(FU[0]),
.B(op0[0]), .B(AluOut[0]),
.out(fetchBranch), .out(fetchBranch),
.switch(FU[2])); // FU[2] only goes high when BEQ .switch(FU[2])); // FU[2] only goes high when BEQ
@@ -185,8 +186,9 @@ module CPU9bits_tb();
.done(done)); .done(done));
initial begin initial begin
#10
reset = 1'b1; reset = 1'b1;
#15 #10
reset = 1'b0; reset = 1'b0;
#500 #500

View File

@@ -6,7 +6,7 @@ module ControlUnit(
output reg [3:0] aluOut, output reg [3:0] aluOut,
output reg [2:0] FU, output reg [2:0] FU,
output reg addi, output reg addi,
output reg mem, output reg mem, dataMemEn,
output reg RegEn, output reg RegEn,
output reg halt, output reg halt,
output reg link, output reg link,
@@ -23,6 +23,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -34,6 +35,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -45,6 +47,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -56,6 +59,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -68,6 +72,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -79,6 +84,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -91,6 +97,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -102,6 +109,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -113,6 +121,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -124,6 +133,7 @@ module ControlUnit(
FU <= 3'b001; // Disable Branching FU <= 3'b001; // Disable Branching
halt <= 1'b0; halt <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -135,6 +145,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -146,6 +157,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b1; js <= 1'b1;
@@ -157,17 +169,19 @@ module ControlUnit(
addi <= 1'b0; addi <= 1'b0;
aluOut <= 4'b0000; aluOut <= 4'b0000;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b1; link <= 1'b1;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
end end
4'b1100: begin 4'b1100: begin
aluOut <= 4'b0000; aluOut <= 4'b1010;
FU <= 3'b110; // branch FU <= 3'b110; // branch
RegEn <= 1'b1; RegEn <= 1'b1;
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -179,6 +193,7 @@ module ControlUnit(
halt <= 1'b0; halt <= 1'b0;
addi <= 1'b0; addi <= 1'b0;
mem <= 1'b0; mem <= 1'b0;
dataMemEn <= 1'b0;
link <= 1'b0; link <= 1'b0;
bank <= 2'b10; bank <= 2'b10;
js <= 1'b0; js <= 1'b0;
@@ -186,6 +201,7 @@ module ControlUnit(
4'b0001: begin 4'b0001: begin
aluOut <= 4'b0000; aluOut <= 4'b0000;
mem <= 1'b1; // load mem <= 1'b1; // load
dataMemEn <= 1'b0;
RegEn <= 1'b0; RegEn <= 1'b0;
FU <= 3'b001; // Disable Branching FU <= 3'b001; // Disable Branching
addi <= 1'b0; addi <= 1'b0;
@@ -197,6 +213,7 @@ module ControlUnit(
4'b0010: begin 4'b0010: begin
aluOut <= 4'b0000; aluOut <= 4'b0000;
mem <= 1'b0; // store mem <= 1'b0; // store
dataMemEn <= 1'b1;
RegEn <= 1'b1; RegEn <= 1'b1;
FU <= 3'b001; // Disable Branching FU <= 3'b001; // Disable Branching
halt <= 1'b0; halt <= 1'b0;

View File

@@ -31,7 +31,7 @@ module dataMemory(
always@(address, clk, memory)begin always@(address, clk, memory)begin
if(clk == 1'b1)begin if(clk == 1'b1)begin
readData <= memory[address]; readData <= memory[address];
if(writeEnable == 1'b0)begin if(writeEnable == 1'b1)begin
memory[address] <= writeData; memory[address] <= writeData;
end end
else begin else begin

View File

@@ -28,7 +28,7 @@ module instructionMemory(
// memory[13] <= 9'b111111001; //srl // memory[13] <= 9'b111111001; //srl
// // memory[14] <= 9'b100100010; //j // // memory[14] <= 9'b100100010; //j
// memory[14] <= 9'b010001000; //zero // memory[14] <= 9'b010001000; //zero
// memory[15] <= 9'b110001101; //beq // memory[15] <= 9'b110001001; //beq
// memory[16] <= 9'b100001000; //jr // memory[16] <= 9'b100001000; //jr
// memory[17] <= 9'b100111100; //j // memory[17] <= 9'b100111100; //j
@@ -48,7 +48,7 @@ module instructionMemory(
memory[11] <= 9'b000111110; memory[11] <= 9'b000111110;
memory[12] <= 9'b101010000; memory[12] <= 9'b101010000;
memory[13] <= 9'b101000010; memory[13] <= 9'b101000010;
memory[14] <= 9'b101010100; memory[14] <= 9'b101001100;
memory[15] <= 9'b101011110; //ends initialization memory[15] <= 9'b101011110; //ends initialization
memory[16] <= 9'b101000011; memory[16] <= 9'b101000011;
memory[17] <= 9'b101001101; memory[17] <= 9'b101001101;

View File

@@ -3,7 +3,7 @@
<!-- --> <!-- -->
<!-- Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. --> <!-- Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. -->
<Project Version="7" Minor="39" Path="C:/Users/JoseIgnacio/CA Lab/lab2CA.xpr"> <Project Version="7" Minor="39" Path="C:/Users/ecelab/ECE3570-Lab/lab2CA.xpr">
<DefaultLaunch Dir="$PRUNDIR"/> <DefaultLaunch Dir="$PRUNDIR"/>
<Configuration> <Configuration>
<Option Name="Id" Val="0a5803efda44405bb28bbf43ba22e808"/> <Option Name="Id" Val="0a5803efda44405bb28bbf43ba22e808"/>
@@ -31,7 +31,7 @@
<Option Name="EnableBDX" Val="FALSE"/> <Option Name="EnableBDX" Val="FALSE"/>
<Option Name="DSAVendor" Val="xilinx"/> <Option Name="DSAVendor" Val="xilinx"/>
<Option Name="DSANumComputeUnits" Val="60"/> <Option Name="DSANumComputeUnits" Val="60"/>
<Option Name="WTXSimLaunchSim" Val="250"/> <Option Name="WTXSimLaunchSim" Val="295"/>
<Option Name="WTModelSimLaunchSim" Val="0"/> <Option Name="WTModelSimLaunchSim" Val="0"/>
<Option Name="WTQuestaLaunchSim" Val="0"/> <Option Name="WTQuestaLaunchSim" Val="0"/>
<Option Name="WTIesLaunchSim" Val="0"/> <Option Name="WTIesLaunchSim" Val="0"/>
@@ -136,7 +136,7 @@
</FileSet> </FileSet>
<FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1"> <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1">
<Filter Type="Srcs"/> <Filter Type="Srcs"/>
<File Path="$PPRDIR/CPU9bits_tb_behav1.wcfg"> <File Path="$PPRDIR/CPU9bits_tb_behav.wcfg">
<FileInfo> <FileInfo>
<Attr Name="UsedIn" Val="simulation"/> <Attr Name="UsedIn" Val="simulation"/>
</FileInfo> </FileInfo>