Você está na página 1de 106

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO

CENTRO MULTIDISCIPLINAR DE PAU DOS FERROS


DEPARTAMENTO DE ENGENHARIAS E TECNOLOGIA

PEX0240 – CIRCUITOS DIGITAIS

Capítulo 06
Circuitos Aritméticos

Prof.: Pedro Thiago Valério de Souza


UFERSA – Campus Pau dos Ferros
pedro.souza@ufersa.edu.br

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 1


Sumário
▪ Aritmética Binária;
▪ Representação de Números com Signos;
▪ Circuitos Somadores;
▪ Circuitos Subtradores;
▪ Circuitos Incrementadores;
▪ Circuitos Decrementadores;
▪ Comparadores de Igualdade;
▪ Comparadores de Magnitude;
▪ Deslocadores;
▪ Unidade Lógico-Aritmética;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 2


Aritmética Binária
▪ Grande parte dos sistemas digitais faz alguma operação aritmética
sobre os números binários de entrada;
▪ O objetivo é estudar as quatro operações fundamentais da
aritmética com números binários sem sinal;
▪ Adição;
▪ Subtração;
▪ Multiplicação;
▪ Divisão;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 3


Aritmética Binária
▪ Adição Binária:
▪ A adição binária segue o mesmo principio da adição decimal
(soma da direita para esquerda com transporte para as casas
seguintes;
▪ Regras da adição binária:
▪ 0 + 0 = 0;
▪ 0 + 1 = 1;
▪ 1 + 0 = 1;
▪ 1 + 1 = 0 + vai (transporta) 1;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 4


Aritmética Binária
▪ Adição Binária:
Exemplo No. 1: Realizar as seguintes somas no sistema binário:
▪ 011 + 110
▪ 1001 + 1111

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 5


Aritmética Binária
▪ Subtração Binária:
▪ Estudaremos, por hora, o caso de o minuendo é maior do que o
subtraendo (o resultado da operação de subtração é positivo);
▪ Regras da subtração binária:
▪ 0 – 0 = 0;
▪ 0 – 1 = 1 e vem (empresta) 1;
▪ 1 – 0 = 1;
▪ 1 – 1 = 0;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 6


Aritmética Binária
▪ Subtração Binária:
Exemplo No. 2: Realizar as seguintes subtrações no sistema binário:
▪ 1010 - 1000
▪ 10010 - 10001

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 7


Aritmética Binária
▪ Multiplicação Binária:
▪ Regras da multiplicação binária:
▪ 0x0 = 0;
▪ 0x1 = 0
▪ 1x0 = 0;
▪ 1x1 = 1;

Exemplo No. 3: Realizar a operação de multiplicação dos números binários


1001x1011

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 8


Aritmética BCD
▪ Alguns sistemas utilizam o código BCD para a representação dos
números;
▪ Exemplos: Calculadoras;
▪ Desta forma é importante saber realizar as operações em números
BCD;
▪ As operações de soma e subtração são similares as existentes no
sistema binário;
▪ Como sistema BCD não possui os códigos acima de 1001(9),
faz necessários algumas mudanças no processo de forma a
garantir que o resultado de cada dígito BCD esteja no escopo
deste código;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 9


Aritmética BCD
▪ Adição de Números BCD:
▪ Realiza-se a soma de cada dígito BCD, da direita para
esquerda;
▪ Cada dígito BCD é somado da mesma forma que soma-se
números binários;
▪ Caso a parcela resultante for maior do que 9(1001) ou for
gerado um vai-um deve-se efetuar uma correção do dígito
atual, fazendo a soma do dígito BCD atual com 6(0110);

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 10


Aritmética BCD
▪ Adição de Números BCD:
Exemplo No. 4: Realize a soma dos seguintes números BCD:
▪ 0100 0101 (45) + 0011 0011 (33)
▪ 0101 1001 (59) + 0011 1000 (38)

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 11


Aritmética BCD
▪ Subtração de Números BCD:
▪ Realiza-se a subtração de cada dígito BCD, da direita para
esquerda. Cada dígito BCD é subtraído da mesma forma que
subtrai-se números binários;
▪ Caso a parcela resultante for maior do que 9(1001) deve-se
efetuar uma correção do dígito atual, fazendo a subtração do
dígito BCD atual com 6(0110);

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 12


Aritmética BCD
▪ Subtração de Números BCD:
Exemplo No. 5: Realize a subtração dos seguintes números BCD:
▪ 0011 1000 (38) - 0001 0101 (15)
▪ 0010 0000 0110 (206) - 0001 0100 0111 (147)

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 13


Representação de números com signos
▪ Representação de números com sinais em sistemas digitais;
▪ Sinal-Magnitude;
▪ Complemento-Dois.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 14


Representação de números com signos
▪ Representação Sinal-Magnitude:
▪ Adiciona-se um bit, mais a esquerda, para indicar o sinal do
número.
▪ Convenção:
▪ 0 = sinal positivo;
▪ 1 = sinal negativo.
▪ Os outros bits indicam o módulo (ou magnitude) do número.
Sinal Magnitude

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 15


Representação de números com signos
▪ Representação Sinal-Magnitude:
Exemplo No. 6: Represente o número +17 e -17 em sinal-magnitude.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 16


Representação de números com signos
▪ Representação Sinal-Magnitude:
▪ Com N bits pode-se escrever números no seguinte intervalo:

-(2N-1 - 1) até (2N-1 - 1)

▪ Existem duas representações possíveis para o zero: +0 e -0;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 17


Representação de números com signos
▪ Representação Sinal-Magnitude:
▪ Vantagens:
▪ Representação simples;
▪ Pode-se inverter um número simplesmente invertendo-se o
bit de sinal;
▪ O hardware para efetuar multiplicações e divisões é simples;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 18


Representação de números com signos
▪ Representação Sinal-Magnitude:
▪ Inconvenientes:
▪ Duas representações possíveis para o número zero;
▪ O hardware para operações de soma e subtração é
complexo;
▪ O somador e subtrator não são compartilhados;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 19


Representação de números com signos
▪ Representação Complemento-2:
▪ Um número negativo pode ser obtido através do seu
equivalente positivo realizando-se o complemento-2:
▪ Inverter todos os bits do número;
▪ Somar +1 ao número;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 20


Representação de números com signos
▪ Representação Complemento-2:
▪ Propriedades da representação complemento-2:
▪ O sinal pode ser determinado analisando o bit mais
significativo;
▪ Bit 0: número positivo;
▪ Bit 1: número negativo;
▪ Apenas uma representação para o zero;
▪ Não exige um hardware dedicado para fazer a subtração;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 21


Representação de números com signos
▪ Representação Complemento-2:
▪ Conversão Complemento-2 para decimal:
▪ Bit de sinal=0, a magnitude é obtida diretamente dos outros
bits;
▪ Bit de sinal=1, a magnitude é obtida realizando-se a
operação de Complemento-2 de todos os bits.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 22


Representação de números com signos
▪ Representação Complemento-2:
▪ Com N bits pode-se escrever números no seguinte intervalo:

-(2N-1) até (2N-1 - 1)

▪ Assimetria devido à única representação para o zero.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 23


Representação de números com signos
▪ Representação Complemento-2:
▪ Vantagens:
▪ Representação simples;
▪ Representação única para o zero;
▪ Simplifica as operações de soma e subtração (utilizam o
mesmo hardware);

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 24


Representação de números com signos
▪ Representação Complemento-2:
▪ Desvantagens:
▪ Operações de multiplicação e divisão ficam mais complexas
de serem feitas;
▪ Dado que boa parte das operações executadas pelo
computador são operações de soma e subtração,
usualmente utiliza-se notação complemento-2.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 25


Representação de números com signos
▪ Representação Complemento-2:
Exemplo No.7: Realize a representação em complemento de dois de +45 e -
45.

Exemplo No. 8: O número 01100 está em complemento de dois. Qual


número decimal ele equivale?

Exemplo No. 9: O número 11010 está em complemento de dois. Qual


número decimal ele equivale?

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 26


Representação de números com signos
▪ Aritmética Digital com Signos:
▪ Operação de Soma:
▪ Realizada de forma direta, aplicando-se a operação em
todos os bits do número (inclusive nos de sinal);
▪ Em todos os casos, a quantidade de bits das duas parcelas
deve ser igual;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 27


Representação de números com signos
▪ Aritmética Digital com Signos:
▪ Operação de Subtração:
▪ Fazer a operação de complemento de dois do subtraendo.
▪ Adicione esse número obtido ao minuendo.
▪ Esse procedimento facilita a implementação de circuitos
somadores/subtratores (utilizam um mesmo núcleo).

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 28


Representação de números com signos
▪ Aritmética Digital com Signos:
Exemplo No. 10: Realizar a operação 9 - 4 no sistema de complemento de
dois com cinco bits.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 29


Representação de números com signos
▪ Aritmética Digital com Signos:
▪ Overflow Aritmético:
▪ Caso em que a magnitude do resultado não pode ser
indicada pela quantidade de bits das parcelas;
▪ Sintomas:
▪ Soma de dois números positivos resultado em um
número menor do que ambas as parcelas;
▪ Operação A-B, com A>B resultar em um número
negativo (com A e B ambos positivos).

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 30


Representação de números com signos
▪ Aritmética Digital com Signos:
▪ Overflow Aritmético:
▪ Neste caso, é de suma importância que o circuito aritmético
informe que o resultado da operação está incorreto;
▪ Formas de realizar a detecção de overflow:
▪ Analise dos bits de sinal das parcelas;
▪ Análise dos bits de transporte.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 31


Somadores
▪ Definição:
▪ Circuitos combinacionais que realizam a soma de dois números
binários de N bits, resultado em um número de N bit e um bit de
transporte.
▪ Somador de N bits:
A B
n n

Somador

n
Co S

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 32


Somadores
▪ Projeto de um somador:
▪ Projeto usando tabela da verdade: contém muitas linhas e
portanto é inviável.
▪ Para um somador de 8 bits, teremos:
2(8+8) = 216 = 65.536 linhas
▪ Tabelas verdade grandes resultam em circuitos enormes.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 33


Somadores
▪ Projeto de um somador:
▪ Projeto a ser realizado: Processo de soma como faríamos uma
soma com lápis e papel;
▪ Projetar um componente para cada coluna;
▪ O componente deve somar os bits daquela coluna e gerar
um bit de transporte para a coluna seguinte e o bit de soma.
▪ Somadores de 1 bit;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 34


Somadores
▪ Projeto de um somador:

transporte
1 1
1 1 1 1
0 1 1 0

0 1 0 1

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 35


Somadores
▪ Projeto de um somador:
▪ Meio-Somador (ou Half-Adder):
▪ Entrada: Dois bits a serem somados;
▪ Saída: O bit resultante da soma e um bit de transporte para
a soma da próxima coluna.
▪ Somador Completo (ou Full-Adder):
▪ Entrada: Dois bits a serem somados e o bit de transporte da
soma anterior.
▪ Saída: O bit resultante da soma e um bit de transporte para
a soma da próxima coluna.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 36


Somadores
▪ Projeto de um somador:

Full-Adder Half-Adder

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 37


Somadores
▪ Projeto de um somador:
▪ Meio-Somador (Half-Adder):
a b
Entradas Saídas
a b s co
0 0 0 0
Half-Adder
0 1 1 0
1 0 1 0
s = a xor b
co s 1 1 0 1
co = ab

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 38


Somadores
▪ Projeto de um somador:
▪ Somador Completo (Full-Adder) – Com portas lógicas.
a b ci
Entradas Saídas
a b ci s co
0 0 0 0 0
Full-Adder
0 0 1 1 0
0 1 0 1 0
co s 0 1 1 0 1
1 0 0 1 0
s = a xor b xor ci
1 0 1 0 1 co = ab + bc + ac
1 1 0 0 1
1 1 1 1 1
UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 39
Somadores
▪ Projeto de um somador:
▪ Somador Completo (Full-Adder) – Forma alternativa.

cin s
Half-Adder

a
Half-Adder
cout
b

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 40


Somadores
▪ Projeto de um somador:
▪ Somador Ripple-Carry:
▪ Exemplo: Somador Ripple-Carry de 4-bits.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 41


Somadores
▪ Projeto de um somador:
▪ Somador Ripple-Carry:
▪ Usando um full-adder para produzir o bit menos significativo
da soma, nos proporcionará incluir mais um sinal de entrada
o bit “carry in”.
▪ Exemplo: Somador Ripple-Carry de 4-bits.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 42


Somadores
▪ Cascateamento de somadores:
▪ Exemplo: Somador de 8-bits a partir de somadores de 4-bits.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 43


Subtradores
▪ Definição:
▪ Circuitos combinacionais que realizam a subtração de dois
números binários de N bits, resultado em um número de N bits
e um bit de empréstimo.
▪ Subtrator de N bits:
A B
n n

Subtrador

n
To S

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 44


Subtradores
▪ Projeto de um Subtrator:
▪ Meio-Subtrator (Half-Subtractor);
▪ Entrada: Dois bits a serem subtraidos;
▪ Saída: O bit resultante da subtração e um bit de
empréstimo.
▪ Subtrator Completo (Full-Subtractor);
▪ Entrada: Dois bits a serem somados e o bit de empréstimo;
▪ Saída: O bit resultante da soma e um bit de empréstimo.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 45


Subtradores
▪ Projeto de um Subtrator:
▪ Meio-Subtrator (Half-Subtractor):
a b a b
Entradas Saídas
a b s to

Half- 0 0 0 0
Subtractor 0 1 1 1
to s
1 0 1 0
s = a xor b
to s 1 1 0 0
to = a'b

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 46


Subtradores
▪ Projeto de um Subtrator:
▪ Subtrator Completo (Full-Subtractor):
a b ti a b ti
Entradas Saídas
a b ti s to

Full- 0 0 0 0 0
Subtractor 0 0 1 1 1
0 1 0 1 1
Subt.
to s 0 1 1 0 1 Completo

1 0 0 1 0 to s

1 0 1 0 0 s = a xor b xor ti
1 1 0 0 0 co = a'b + bti + a’ ti

1 1 1 1 1
UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 47
Subtradores
▪ Projeto de um Subtrator:
▪ Subtrator Completo (Full-Subtractor) – Forma alternativa:

tin s
Half-
Subtractor

a
Half- tout
b Subtractor

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 48


Subtradores
▪ Projeto de um Subtrator:
▪ Subtrator Ripple-Borrow:
▪ Exemplo: Subtrator Ripple-Borrow de 4-bits.

a3 b3 a2 b2 a1 b1 a0 b0

a b wi a b wi a b wi a b a3 a2 a1 a0 b3 b2 b1 b0
FS FS FS HS 4-bit subtractor
wo s wo s wo s wo s wo s3s2s1s0

wo s3 s2 s1 s0

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 49


Subtradores
▪ Projeto de um Subtrator:
▪ Subtrator Ripple-Borrow:
▪ Adicionado uma entrada para empréstimo.

a3 b3 a2 b2 a1 b1 a0 b0

a b wi a b wi a b wi a b wi a3 a2 a1 a0 b3 b2 b1 b0
FS FS FS FS 4-bit subtractor wi
wo s wo s wo s wo s wo s3s2s1s0

wo s3 s2 s1 s0

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 50


Subtradores
Exemplo No.11: Projete um conversor de
Espaço de Cores RGB para CMY. Sabe-se
que a conversão para CMY é feita através de:
C = 255 - R
M = 255 - G
Y = 255 - B

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 51


Subtratores
▪ Utilizando-se o sistema de complemento de dois, é possível realizar
a operação de subtração a partir da soma;
▪ Realizar o complemento de dois do subtraendo;
▪ Somar o resultado com o minuendo;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 52


Subtratores
Exemplo No. 12: Projete um circuito que seja capaz de realizar a subtração
de dois números, em complemento de dois, utilizando como núcleo um
somador.

Exemplo No. 13: Projete um circuito que seja capaz de realizar a soma ou
subtração de dois números, em complemento de dois, utilizando como
núcleo um somador. O controle deverá ser feito a partir de um sinal de
controle denominado de S.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 53


Subtratores
Exemplo No. 14: Projete um circuito que realize a seguinte operação
aritmética:

Y = abs(X)

X e Y são dados de 8-bits representados em complemento de dois.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 54


Subtratores
▪ Detecção de Overflow:
▪ A detecção de overflow em sistemas que operam em
complemento de dois pode ser feita analisando-se os dois
últimos bits de transporte do somador;
▪ Se forem diferentes: Aconteceu o overflow;
▪ Se forem iguais: Não aconteceu overflow;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 55


Subtratores
▪ Detecção de Overflow:
▪ Exemplos:

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 56


Subtratores
▪ Detecção de Overflow:
▪ Circuito Somador/Subtrator Controlado com Detecção de
Overflow:

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 57


Somadores BCD
▪ A soma BCD é semelhante a soma binária. Contudo em alguns
casos é necessário aplicar uma correção ao resultado da soma:
▪ Ocorrer um vai-um na soma;
▪ O resultado for maior do que 9;
▪ Correção: Adicionar +6 (0110).

Exemplo No. 15: Projete um circuito combinacional que determine quando é


necessário aplicar uma correção na soma BCD.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 58


Somadores BCD
▪ Circuito Somador BCD:

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 59


Incrementadores
▪ Definição:
▪ O incrementador é um componente combinacional que
adiciona +1 (00..01) no dado de entrada;
a
N

Incrementador

N
s=a+1

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 60


Incrementadores
▪ Projeto de um Incrementador:
▪ Somador Carry-Ripple com uma das entradas igual a ‘1’;
▪ Somador Carry-Ripple com entrada de cin = 1 e outra entrada
com ‘0’;
▪ Conjunto de Meio-Somadores;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 61


Incrementadores
▪ Projeto de um Incrementador:
▪ Somador Carry-Ripple com uma das entradas igual a ‘1’;

Somador

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 62


Incrementadores
▪ Projeto de um Incrementador:
▪ Somador Carry-Ripple com entrada de cin = 1 e outra entrada
com ‘0’;

Somador

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 63


Incrementadores
▪ Projeto de um Incrementador:
▪ Conjunto de Meio-Somadores;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 64


Decrementadores
▪ Definição:
▪ O decrementador é um componente combinacional que subtrai
1 (00..01) no dado de entrada;
a
N

Decrementador

N
s=a-1

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 65


Decrementadores
▪ Projeto de um Decrementador:
▪ Subtrator Borrow-Ripple com uma das entradas igual a ‘1’;
▪ Subtrator Borrow-Ripple com entrada de cin = 1 e outra entrada
com ‘0’;
▪ Conjunto de Meio-Subtratores;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 66


Multiplicadores
▪ Definição:
▪ São circuitos combinacionais que executam a multiplicação
entre dois números binários de N bits, resultando em um
número de 2N bits.
a b
N N

Multiplicador

2N
a*b

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 67


Multiplicadores
▪ Projeto de um multiplicador:
▪ Forma de projeto: Imitar o processo de multiplicação que
usamos com lápis e papel;
▪ Multiplicador de 1-bit:
▪ 0x0 = 0 (0 and 0);
▪ 0x1 = 0 (0 and 1);
▪ 1x0 = 0 (1 and 0);
▪ 1x1 = 1 (1 and 1);
▪ Equivale a uma porta lógica AND de duas entradas;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 68


Multiplicadores
▪ Projeto de um multiplicador:

p0 = b0a0
p1 = b0a1 + b1a0 (gera c1)
p2 = b0a2 + b1a1+b2a0+c1 (gera c2)
p3 = b0a3+b1a2+b2a1+b3a0+c2 (gera c3)

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 69


Multiplicadores
▪ Projeto de um multiplicador
(a3 = 0):
▪ Neste caso, podemos
usar um array de portas
AND em conjunto com
vários somadores de 4
bits;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 70


Multiplicadores
Exemplo No. 16: Projete um circuito que realize a seguinte operação
aritmética. X é um dado de entrada com 8 bits.

Y = 5*abs(X) - 7

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 71


Comparadores de Igualdade
▪ Definição:
▪ Produz em sua única saída, o nível lógico ALTO se dois
números de N-bits forem idênticos.
▪ Por exemplo, dois números de 4 bits serão iguais se: a3=b3 e
a2=b2 e a1=b1 e a0=b0;

a b
N N

Comparador

eq

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 72


Comparadores de Igualdade
▪ Projeto de um Comparador de Igualdade:
▪ Lembrando que as saídas de uma XNOR de 2 entradas é igual a
1 se suas entradas forem iguais;
▪ Logo a expressão de saída será:

eq = (a3 xnor b3) * (a2 xnor b2) * (a1 xnor b1) * (a0 xnor b0)

a3 b3 a2 b2 a1 b1 a0 b0

a3 a2 a1 a0 b3 b2 b1 b0
4-bit equality comparator
eq

(b)
eq
(a)

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 73


Comparadores de Magnitude
▪ Definição:
▪ São componentes que indicam se a>b, a=b, ou a<b, para as
suas entradas a e b de N bits.
a b
N N

Comparador
de Magnitude

a=b a>b a<b

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 74


Comparadores de Magnitude
▪ Projeto do Comparador de Magnitude:
▪ Projeto equivalente a comparar com lápis e papel;
▪ Primeiros comparamos a3 e b3;
▪ Se a3>b3, então a>b;
▪ Se a3<b3, então a<b;
▪ Se a3=b3, então comparamos a2 e b2, seguindo o
mesmo procedimento.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 75


Comparadores de Magnitude
▪ Projeto do Comparador de Magnitude:
▪ O projeto segue o mesmo princípio no lápis e papel;
▪ Compare cada par de bits, passe o resultado para a direita;
▪ Cada estágio tem 5 entradas e 3 saídas, indicando resultados
dos estados de maior ordem, passando-os para os de mais
baixa ordem.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 76


Comparadores de Magnitude
▪ Projeto do Comparador de Magnitude:
▪ Expressões Lógicas:
▪ out_gt = in_gt + (in_eq * a * b')
▪ A>B se:
▪ Já foi determinado em um estágio de maior ordem
ou;
▪ Estágio de maior ordem for igual e nesse estágio a=1
e b=0;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 77


Comparadores de Magnitude
▪ Projeto do Comparador de Magnitude:
▪ Expressões Lógicas:
▪ out_lt = in_lt + (in_eq * a' * b)
▪ A<B se:
▪ Já foi determinado em um estágio de maior ordem
ou;
▪ Estágio de maior ordem for igual e nesse estágio a=0
e b=1.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 78


Comparadores de Magnitude
▪ Projeto do Comparador de Magnitude:
▪ Expressões Lógicas:
▪ out_eq = in_eq * (a XNOR b)
▪ A=B se:
▪ Já foi determinado em um estágio de maior ordem e
nesse estágio a=b também.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 79


Comparadores de Magnitude
▪ Projeto de um Comparador de Magnitude:

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 80


Comparadores de Magnitude
▪ Exemplo de Operação: Comparação entre 1011 = 1001.

1 1 0 0 1 0 1 1

0
1
0

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 81


Comparadores de Magnitude
▪ Exemplo de Operação: Comparação entre 1011 = 1001.

1 1 0 0 1 0 1 1

0 0
1 1
0 0

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 82


Comparadores de Magnitude
▪ Exemplo de Operação: Comparação entre 1011 = 1001.

1 1 0 0 1 0 1 1

0 0 0
1 1 1
0 0 0

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 83


Comparadores de Magnitude
▪ Exemplo de Operação: Comparação entre 1011 = 1001.

1 1 0 0 1 0 1 1

0 0 0 1
1 1 1 0
0 0 0 0

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 84


Comparadores de Magnitude
▪ Exemplo de Operação: Comparação entre 1011 = 1001.

1 1 0 0 1 0 1 1

0 0 0 1 1
1 1 1 0 0
0 0 0 0 0

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 85


Comparadores de Magnitude
Exemplo No. 17: Projete um circuito que seja capaz de detectar o mínimo
entre dois números de oito bits.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 86


Comparadores de Magnitude
Exemplo No. 18: Projete um circuito que seja capaz de converter dos espaço
de cores RGB para CMKY. As equações de conversões são:

C2 = 255 - R
M2 = 255 - G
Y2 = 255 – B
K = min(C2, M2, Y2)
C = C2 – K
M = M2 – K
Y = Y2 - K

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 87


Deslocadores (Shifter)
▪ Definição:
▪ São componentes que realizam a operação de deslocamento (a
direita ou esquerda) sobre um número de N bits, gerando uma
saída de N bits;
▪ Sinal de controle: sh;
a
N

sh Deslocador

N
y

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 88


Deslocadores (Shifter)
▪ Operações de Deslocamento:
▪ Deslocamento para a direita (Shift right):
▪ Move cada bit uma posição para a direita;
▪ Introduz um novo bit 0 na posição mais à esquerda – (MSB);
▪ O bit mais a direita (LSB) é perdido;
▪ Deslocamento para a esquerda (Left right):
▪ Move cada bit uma posição para a esquerda;
▪ Introduz um novo bit 0 na posição mais à direita – (LSB).
▪ O bit mais a esquerda (MSB) é perdido;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 89


Deslocadores (Shifter)
Exemplo No. 19: Realize a operação de deslocamento a esquerda e
deslocamento a direita do número 0110.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 90


Deslocadores (Shifter)
▪ Aplicações:
▪ Deslocar um bit para esquerda é o mesmo que multiplicar por 2
de forma rápida.
▪ Deslocar um bit para direita mesmo que dividir por 2.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 91


Deslocadores (Shifter)
▪ Projeto de um Deslocador à Esquerda (1 unidade):
▪ Exemplo para um deslocador à esquerda de 4 bits;

Entrada a3 a2 a1 a0
Deslocamento
a2 a1 a0 0
à Esquerda
Saída b3 b2 b1 b0

▪ Utilização de multiplexadores;
▪ Caso sh=0 ➔ bk = ak;
▪ Caso sh = 1 ➔ bk = ak-1;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 92


Deslocadores (Shifter)
▪ Projeto de um Deslocador à Esquerda (1
unidade):
▪ Exemplo para um deslocador à
esquerda de 4 bits;
▪ Diagrama de Bloco:
a
N

sh <<1

N
b

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 93


Deslocadores (Shifter)
Exercício No. 20 – Projete um Deslocador de 4 bits à esquerda que faça o
deslocamento em duas unidades.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 94


Deslocadores (Shifter)
▪ Projeto de um Deslocador à Direita (1 unidade):
▪ Exemplo para um deslocador à direita de 4 bits;

Entrada a3 a2 a1 a0
Deslocamento
0 a3 a2 a1
à Direita
Saída b3 b2 b1 b0

▪ Utilização de multiplexadores;
▪ Caso sh=0 ➔ bk = ak;
▪ Caso sh = 1 ➔ bk = ak+1;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 95


Deslocadores (Shifter)
▪ Projeto de um Deslocador à Direita (1
unidade):
▪ Exemplo para um deslocador à direita
de 4 bits;
▪ Diagrama de Bloco:
a
N

sh >>1

N
b

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 96


Deslocadores (Shifter)
▪ Projeto de um Deslocador à Esquerda/Direita:
▪ Exemplo para um deslocador à esquerda/direita de 4 bits;

Entrada a3 a2 a1 a0
Deslocamento
a2 a1 a0 0
à Esquerda
Deslocamento
0 a3 a2 a1
à Direita
Saída b3 b2 b1 b0

▪ Sinais de Controle: shr e shl;


▪ shr = 1 → deslocamento à direita;
▪ shl = 1 → deslocamento à esquerda;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 97


Deslocadores (Shifter)
▪ Projeto de um Deslocador à Esquerda/Direita:
▪ Exemplo para um deslocador à esquerda/direita de 4 bits;
▪ Saída para bk:

shl shr bk Comentário


0 0 ak Sem deslocamento
0 1 bk+1 Deslocamento a direita
Deslocamento a
1 0 bk
esquerda
Deslocamento à
1 1 bk
esquerda (prioridade)

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 98


Deslocadores (Shifter)
▪ Projeto de um Deslocador à Esquerda/Direita:
▪ Exemplo para um deslocador à esquerda/direita de 4 bits;

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 99


Deslocadores (Shifter)
▪ Projeto de um Deslocador Barrel:
▪ Deslocador no qual pode realizar um número qualquer de
deslocamentos em um dado de N bits;
▪ Entrada de controle sh que indica quantos deslocamentos
deve-se dar;
▪ Exemplo: sh = 011 (3 deslocamentos);
N

Deslocador
sh
M Barrel

N
y

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 100


Deslocadores (Shifter)
▪ Projeto de um Deslocador Barrel:
▪ Utilização de uma cascata de
deslocadores; sh0 <<1
▪ Os deslocamentos se somam;
▪ Exemplo de um deslocador Barrel à
esquerda, com deslocamento sh1 <<2
máximo de 7 unidades;

sh2 <<4

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 101


Unidade Lógico-Aritmética (ALU)
▪ Definição:
▪ Componente que pode executar qualquer uma das várias
operaçoes aritméticas (somar, subtrair, incremento, etc) e
lógicas (AND, OR, etc);
▪ As operações são realizadas com base nas entradas de
controle do componente.
a b
N N

sel ALU
M

N
out

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 102


Unidade Lógico-Aritmética (ALU)
▪ Definição:
▪ A operação a ser realizada é selecionada por bits externos.

quantidade de operações = 2M

a b
N N

sel ALU
M

N
out

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 103


Unidade Lógico-Aritmética (ALU)
▪ Projeto de uma ALU:
▪ Usar componentes em separado para cada operação, e mux
(para selecionar o resultado da operação para a saída);

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 104


Unidade Lógico-Aritmética (ALU)
Exemplo No. 21 - Projete uma ALU com a seguinte tabela de operação:

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 105


Referências
Livros-texto da disciplina:
▪ VAHID, FRANK - Sistemas Digitais - Projeto, Otimização e HDLs. Bookman, 2008.
▪ MANO, MORRIS; CILETTI, MICHAEL - Digital Design whit an Introduction to the Verilog
HDL. 5º Edição, Pearson, 2012.
▪ KUMAR, A. ANAND - Fundamentals of Digital Circuits. 3º Edição, Prentice Hall India,
2012.

Referência complementar:
▪ SZAJNBERG, MORDKA - Eletrônica Digital: Teoria, Componentes e Aplicações. LTC,
2015.
▪ WAKERLY, JOHN - Digital Design: Principles and Practices. 4º Edição, Pearson, 2004.
▪ PEDRONI, VOLNEI A. - Eletrônica Digital Moderna e VHDL: Princípios Digitais,
ELetrônica Digital, Projeto Digital, Microeletrônica e VHDL. Editora Campus, 2012.

UFERSA/CMPF – Souza, 2019 PEX0240 – Circuitos Digitais 106

Você também pode gostar