def write_back(read_data: Bin, alu_result: Bin, write_reg: Register, control_signal: dict, instruction_eng): temp = namedtuple('Write_back', ['instruction_eng']) if (read_data is None and alu_result is None) or write_reg is None or control_signal is None: return temp(False) if control_signal.pop('reg_write'): write_data = mux([alu_result, read_data], control_signal.pop('mem_to_reg')) write_reg.write_data(write_data) return temp(instruction_eng)