estudante
Uma
unidade lógico-aritmética (ULA) é responsável pelas operações lógicas e aritméticas básicas num processador. As operações aritméticas tipicamente realizadas por uma ULA são adição, subtração, incremento e decremento. Dentre as operações lógicas citam-se o E, o OU, identidade e complemento. Note que as primeiras duas operações lógicas são definidas entre os pares de bits, cada um pertencendo a um dos operandos. Já as duas últimas operações lógicas são definidas para os bits de
(somente) um dos operandos.
Como todas as operações aritméticas se baseiam na adição, podese projetar uma ULA acrescentando-se alguns circuitos lógicos especiais às entradas de um somador (ripple-carry ou carry lookahead). Os circuitos lógicos usados na realização das operações lógicas às vezes recebem o nome de extensores lógicos
(EL) enquanto que aqueles usados na realização das operações aritméticas às vezes são chamados extensores aritméticos (EA). A figura 1 mostra um somador para dois números de 4 bits (A e B) com os extensores lógicos e aritméticos acoplados às suas entradas. Note que cada extensor recebe como entrada somente um dos bits de cada número (A e B).
Figura 1 - Somador para dois números de 4 bits com extensores lógicos (EL) e
Aritméticos(EA).
Suponha que se deseje projetar uma ULA capaz de realizar 4 operações lógicas e 4 operações aritméticas. Assim, estaremos usando os seguintes sinais de controle: M, S0 e S1. Se M=0, as variáveis S1 e S0 selecionam uma dentre as 4 operações lógicas disponíveis. Se M=1, S1 e S0 selecionam uma dentre as 4 operações aritméticas. A tabela 1 mostra as operações desejadas bem como os assinalamentos das variáveis M, S1 e S0 que selecionam cada uma das 8 operações disponíveis.
Tabela 1 - Operações desejadas para a ULA a ser projetada.
O ponto de partida para o projeto da ULA em questão será o somador de 4 bits, cujas entradas estaremos denominando X