diff --git a/control_unit.v b/control_unit.v index c7ed4fe..3e66826 100644 --- a/control_unit.v +++ b/control_unit.v @@ -115,32 +115,33 @@ buf (CTRL[2], pc_sel_2); buf (CTRL[3], pc_sel_3); buf (CTRL[4], ir_load); -buf (CTRL[5], reg_r); -buf (CTRL[6], reg_w); -buf (CTRL[7], r1_sel_1); -buf (CTRL[8], wa_sel_1); -buf (CTRL[9], wa_sel_2); -buf (CTRL[10], wa_sel_3); +buf (CTRL[5], r1_sel_1); +buf (CTRL[6], reg_r); +buf (CTRL[7], reg_w); -buf (CTRL[11], sp_load); -buf (CTRL[12], op1_sel_1); +buf (CTRL[8], sp_load); -buf (CTRL[13], op2_sel_1); -buf (CTRL[14], op2_sel_2); -buf (CTRL[15], op2_sel_3); -buf (CTRL[16], op2_sel_4); +buf (CTRL[9], op1_sel_1); +buf (CTRL[10], op2_sel_1); +buf (CTRL[11], op2_sel_2); +buf (CTRL[12], op2_sel_3); +buf (CTRL[13], op2_sel_4); -buf (CTRL[17], wd_sel_1); -buf (CTRL[18], wd_sel_2); -buf (CTRL[19], wd_sel_3); +buf alu_oprn_buf [5:0] (CTRL[19:14], alu_oprn); buf (CTRL[20], ma_sel_1); buf (CTRL[21], ma_sel_2); buf (CTRL[22], md_sel_1); -buf alu_oprn_buf [5:0] (CTRL[28:23], alu_oprn); +buf (CTRL[23], wd_sel_1); +buf (CTRL[24], wd_sel_2); +buf (CTRL[25], wd_sel_3); + +buf (CTRL[26], wa_sel_1); +buf (CTRL[27], wa_sel_2); +buf (CTRL[28], wa_sel_3); // Parse the instruction data, same as in data_path.v wire [5:0] opcode; diff --git a/data_path.v b/data_path.v index 5e6ac98..ba9b54b 100644 --- a/data_path.v +++ b/data_path.v @@ -48,32 +48,33 @@ buf (pc_sel_2, CTRL[2]); buf (pc_sel_3, CTRL[3]); buf (ir_load, CTRL[4]); -buf (reg_r, CTRL[5]); -buf (reg_w, CTRL[6]); -buf (r1_sel_1, CTRL[7]); -buf (wa_sel_1, CTRL[8]); -buf (wa_sel_2, CTRL[9]); -buf (wa_sel_3, CTRL[10]); +buf (r1_sel_1, CTRL[5]); +buf (reg_r, CTRL[6]); +buf (reg_w, CTRL[7]); -buf (sp_load, CTRL[11]); -buf (op1_sel_1, CTRL[12]); +buf (sp_load, CTRL[8]); -buf (op2_sel_1, CTRL[13]); -buf (op2_sel_2, CTRL[14]); -buf (op2_sel_3, CTRL[15]); -buf (op2_sel_4, CTRL[16]); +buf (op1_sel_1, CTRL[9]); +buf (op2_sel_1, CTRL[10]); +buf (op2_sel_2, CTRL[11]); +buf (op2_sel_3, CTRL[12]); +buf (op2_sel_4, CTRL[13]); -buf (wd_sel_1, CTRL[17]); -buf (wd_sel_2, CTRL[18]); -buf (wd_sel_3, CTRL[19]); +buf alu_oprn_buf [5:0] (alu_oprn, CTRL[19:14]); buf (ma_sel_1, CTRL[20]); buf (ma_sel_2, CTRL[21]); buf (md_sel_1, CTRL[22]); -buf alu_oprn_buf [5:0] (alu_oprn, CTRL[28:23]); +buf (wd_sel_1, CTRL[23]); +buf (wd_sel_2, CTRL[24]); +buf (wd_sel_3, CTRL[25]); + +buf (wa_sel_1, CTRL[26]); +buf (wa_sel_2, CTRL[27]); +buf (wa_sel_3, CTRL[28]); // variables wire [31:0] ir; // Instruction Register