Пример #1
0
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)