Anda di halaman 1dari 86

Circuitos combinacionais

Circuitos combinacionais
Circuitos digitais
Combinacionais
Conjuntos de portas lgicas Circuitos onde em qualquer instante de tempo o valor da sada depende unicamente do valor das entradas Exemplo: todos circuitos vistos at agora

Sequenciais
Conjuntos de portas lgicas Circuito onde o valor das sadas determinado no somente a partir do valor das entradas mas tambm a partir do estado do circuito Exemplo: contador

Circuitos combinacionais
Modelo
Sadas dependem apenas das entradas

Podem conter diversas sadas, cada uma regida por uma equao lgica distinta

Circuitos combinacionais
Fluxo de projeto
Especificao Tabela verdade

Mapas de Karnaugh

Equao booleana

Simplificao algbrica

Circuito lgico

Circuitos combinacionais
Circuitos tpicos (mais usados)
Circuitos utilizados constantemente em projetos Classificados segundo sua aplicao
Circuitos de interconexo
Decodificadores Codificadores Multiplexadores

Circuitos lgico-aritmticos
Somadores/subtratores Multiplicadores Comparadores ULAs (Unidades Lgica/Aritmticas)
Circuitos que combinam operaes vrias operaes lgicas e aritmticas

Circuitos combinacionais
Decodificadores
Circuito combinacional que decodifica (converte) o cdigo binrio presente na entrada em um outro cdigo com mais bits Exemplo: Decodificador BCD-7 segmentos
Cdigo de entrada tem 4 bits (BCD) Cdigo de sada tem 7 bits (segmentos de a at g)

Smbolo

O nmero de entradas e sadas depende do decodificador 4 bits de sada

2 bits de entrada

Circuitos combinacionais
Decodificadores n:m
L-se decodificador de n para m n bits de entrada e m bits de sada O nmero de bits de m dado por 2n
Decodificadores 2:4 Decodificadores 3:8 Decodificadores 4:16 ...

Ativam apenas um bit de sada de acordo com o valor binrio da entrada

Circuitos combinacionais
Decodificadores n:m
Decodificador 2:4
Entrada A de 2 bits Sada S de 4 bits
A1
0 0

A0
0 1

S3
0 0

S2
0 0

S1
0 1

S0
1 0

1
1

0
1

0
1

1
0

0
0

0
0 2

A S
4

Circuitos combinacionais
Decodificadores n:m
Decodificador 2:4
Entrada A de 2 bits Sada S de 4 bits
A1
0 0

A0
0 1

S3
0 0

S2
0 0

S1
0 1

S0
1 0

1
1

0
1

0
1

1
0

0
0

0
0

S0 = !A1.!A0 S1 = !A1.A0 S2 = A1.!A0 S3 = A1.A0

Circuitos combinacionais
Decodificadores n:m
Logisim

Circuitos combinacionais
Decodificadores n:m
Decodificador 3:8
Entrada A de 3 bits Sada S de 8 bits
A2
0 0

A1
0 0

A0
0 1

S7
0 0

S6
0 0

S5
0 0

S4
0 0

S3
0 0

S2
0 0

S1
0 1

S0
1 0 3

A S
8

0
0 1 1 1 1

1
1 0 0 1 1

0
1 0 1 0 1

0
0 0 0 0 1

0
0 0 0 1 0

0
0 0 1 0 0

0
0 1 0 0 0

0
1 0 0 0 0

1
0 0 0 0 0

0
0 0 0 0 0

0
0 0 0 0 0

Quantas portas lgicas AND so necessrias para implementar este decodificador ?

Circuitos combinacionais
Decodificadores n:m
Logisim

Circuitos combinacionais
Decodificadores n:m
Decodificador 2:4 com enable (habilitao)
Entrada en de habilitao
Quando en = 0, todos bits de sada esto inativos Quando en = 1, o bit de sada ativo depente do valor de A

en 0 0 0 0

A1 0 0 1 1

A0 0 1 0 1

S3 0 0 0 0

S2 0 0 0 0

S1 0 0 0 0

S0 0 0 0 0

Sadas desabilitadas

A S
2 4

en

1
1 1 1

0
0 1 1

0
1 0 1

0
0 0 1

0
0 1 0

0
1 0 0

1
0 0 0

Sadas habilitadas

Circuitos combinacionais
Decodificadores n:m
Decodificador 2:4 com enable (habilitao)
Entrada en de habilitao
Quando en = 0, todos bits de sada esto inativos Quando en = 1, o bit de sada ativo depente do valor de A

Quando en = 0, as sadas so 0 independente do valor das entradas A1 e A0


A S
en
0 1 1 1 1

A1
X 0 0 1 1

A0
X 0 1 0 1

S3
0 0 0 0 1

S2
0 0 0 1 0

S1
0 0 1 0 0

S0
0 1 0 0 0

en

Sadas habilitadas

Circuitos combinacionais
Decodificadores n:m
Decodificador 2:4 com enable (habilitao)
Entrada en de habilitao
Quando en = 0, todos bits de sada esto inativos Quando en = 1, o bit de sada ativo depente do valor de A

en

A1 A0

S0
en
0 1 1 1 1

A1
X 0 0 1 1

A0
X 0 1 0 1

S3
0 0 0 0 1

S2
0 0 0 1 0

S1
0 0 1 0 0

S0
0 1 0 0 0

S0 S1 S2 S3

= = = =

en.!A1.!A0 en.!A1.A0 en.A1.!A0 en.A1.A0

S1

S2

S3

Circuitos combinacionais
Decodificadores n:m
Logisim

Circuitos combinacionais
Decodificadores n:m
Decodificador 4:16
Decodificadores 2:4

Circuitos combinacionais
Codificadores
A grosso modo, codificadores realizam a funcao oposta dos decodificadores Codificadores servem para reduzir o numero de bits necessarios para a representaao de alguma informao Os principais tipos de codificadores sao
Binarios Prioridade

No tm smbolo que os caracteriza

Circuitos combinacionais
Codificadores
Codificador binrio
Apenas combinaes de entradas contendo somente um bit ativo so consideradas As combinaes restantes so tratadas como dont care 2n bits de entrada e n bits de sada
4 (22) entradas
D0 D1 D2 D3 C0

2 sadas

8 (23) entradas
D0

3 sadas

C0

Codificador 2 bits

C1 D7

Codificador 3 bits

C2 C1

Circuitos combinacionais
Codificadores
Codificador de 2 bits
D3 0 0 0 D2 0 0 0 D1 0 0 1 D0 0 1 0 C1 X 0 0 C0 X 0 1

Apenas combinaes de entradas contendo somente um bit ativo so consideradas


D0 D1 C0

0
0 0 0 0 1 1 1 1 1 1

0
1 1 1 1 0 0 0 0 1 1

1
0 0 1 1 0 0 1 1 0 0

1
0 1 0 1 0 1 0 1 0 1

X
1 X X X 1 X X X X X

X
0 X X X 1 X X X X X

D2
D3

Codificador 2 bits

C1

1
1

1
1

1
1

0
1

X
X

X
X

Circuitos combinacionais
Codificadores
Codificador de 2 bits
D3 0 0 0 D2 0 0 0 D1 0 0 1 D0 0 1 0 C1 X 0 0 C0 X 0 1

C1 00

D1 D0 01 11 10

00
D3 D2 01 11 10

0
0 0 0 0 1 1 1 1 1 1

0
1 1 1 1 0 0 0 0 1 1

1
0 0 1 1 0 0 1 1 0 0

1
0 1 0 1 0 1 0 1 0 1

X
1 X X X 1 X X X X X

X
0 X X X 1 X X X X X

C0
00 00 D3 D2 01 11

D1 D0
01 11 10

1
1

1
1

1
1

0
1

X
X

X
X

10

Circuitos combinacionais
Codificadores
Codificador de 2 bits
D3 0 0 0 D2 0 0 0 D1 0 0 1 D0 0 1 0 C1 X 0 0 C0 X 0 1

C1 00

D1 D0 01 11 10

00
D3 D2 01 11 10

X
1 X 1

0
X X X

X
X X X

0
X X X

0
0 0 0 0 1 1 1 1 1 1

0
1 1 1 1 0 0 0 0 1 1

1
0 0 1 1 0 0 1 1 0 0

1
0 1 0 1 0 1 0 1 0 1

X
1 X X X 1 X X X X X

X
0 X X X 1 X X X X X

C1 = D2 + D3

C0
00 00 D3 D2 01 11 X 0 X

D1 D0
01 0 X X 11 X X X 10 1 X X

C0 = D3 + D1

1
1

1
1

1
1

0
1

X
X

X
X

10

Circuitos combinacionais
Codificadores
Codificador de 2 bits
D3 0 0 0 D2 0 0 0 D1 0 0 1 D0 0 1 0 C1 X 0 0 C0 X 0 1

0
0 0 0 0 1 1 1 1 1 1

0
1 1 1 1 0 0 0 0 1 1

1
0 0 1 1 0 0 1 1 0 0

1
0 1 0 1 0 1 0 1 0 1

X
1 X X X 1 X X X X X

X
0 X X X 1 X X X X X

C0 = D3 + D1 C1 = D2 + D3

1
1

1
1

1
1

0
1

X
X

X
X

Circuitos combinacionais
Codificadores
Codificador de 2 bits
Tabela verdade compacta
D3 0 0 0 1 D2 0 0 1 0 D1 0 1 0 0 D0 1 0 0 0 C1 0 0 1 1 C0 0 1 0 1

C0 = D3 + D1 Sadas dont care removidas C1 = D2 + D3

Circuitos combinacionais
Codificadores
Codificador de 3 bits
Tabela verdade compacta
D7 D6 D5 D4 D3 D2 D1 D0 C2 C1 C0

0
0 0 0 0 0 0

0
0 0 0 0 0 1

0
0 0 0 0 1 0

0
0 0 0 1 0 0

0
0 0 1 0 0 0

0
0 1 0 0 0 0

0
1 0 0 0 0 0

1
0 0 0 0 0 0

0
0 0 0 1 1 1

0
0 1 1 0 0 1

0
1 0 1 0 1 0

D0 C0

Codificador 3 bits
D7

C2 C1

Circuitos combinacionais
Codificadores
Codificador + Decodificador

D C
4 2

A S
4

Codificador 2 bits

Decodificador 2:4

Circuitos combinacionais
Codificadores
Codificador de prioridades
Codificador que implementa, adicionalmente funo codificadora, uma funo de prioridade Exemplo, se duas ou mais entradas esto ativas ao mesmo tempo, o cdigo gerado ser aquele associado a entrada de maior prioridade ativa (a ser definida pelo projetista)

Circuitos combinacionais
Codificadores
Codificador de prioridades
A sada S indica a entrada de maior prioridade ativa A prioridade das entradas relativa aos seus nmeros
R3 > R2 > R1

Quando nenhuma entrada estiver ativa S 0


R1 R2 R3 Codificador de prioridades S
2

Circuitos combinacionais
Codificadores
Codificador de prioridades

R3 R2

A sada S indica a entrada de maior prioridade ativa A prioridade das entradas relativa aos seus nmeros
R3 > R2 > R1

Quando nenhuma entrada estiver ativa S 0


R1 S1 S0

0
0 0 0

0
0 1 1

0
1 0 1

R1

R2
R3

1
1 1

0
0 1

0
1 0

Codificador de prioridades

S
2

Circuitos combinacionais
Codificadores
Codificador de prioridades

R3 R2

A sada S indica a entrada de maior prioridade ativa A prioridade das entradas relativa aos seus nmeros
R3 > R2 > R1

Quando nenhuma entrada estiver ativa S 0


R1 S1 S0

0
0 0 0

0
0 1 1

0
1 0 1

0
0 1 1

0
1 0 0

R1

R2
R3

1
1 1

0
0 1

0
1 0

1
1 1

1
1 1

Codificador de prioridades

S
2

Circuitos combinacionais
Codificadores
Codificador de prioridades

R3 R2

A sada S indica a entrada de maior prioridade ativa A prioridade das entradas relativa aos seus nmeros
R3 > R2 > R1

Quando nenhuma entrada estiver ativa S 0


R1 S1 S0

Mapas de Karnaugh

0
0 0 0

0
0 1 1

0
1 0 1

0
0 1 1

0
1 0 0

S1 = R3 + R2 S0 = !R2.R1 + R3

1
1 1

0
0 1

0
1 0

1
1 1

1
1 1

Circuitos combinacionais
Multiplexadores (seletores)
Circuitos utilizados para ligar uma de suas entradas de dados sada A entrada de dados a ser ligada sada selecionada atravs de entradas de seleo Smbolos

Entradas/Sada podem ter vrios bits de largura

Circuitos combinacionais
Multiplexadores (seletores)
Funcionamento
Uma das entradas de dados ligada sada dependendo do valor das entradas de seleo Logisim

Circuitos combinacionais
Multiplexadores (seletores)
Multiplexador 2:1 de 1 bit

S 0 0 0

I1 0 0 1

I0 0 1 0

Y 0 1 0

S = 0, Y I0

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

1
0 0 1 1

S = 1, Y I1

Circuitos combinacionais
Multiplexadores (seletores)
Multiplexador 2:1 de 1 bit
Y 00 S
S 0 0 0 I1 0 0 1 I0 0 1 0 Y 0 1 0

I1 I0 01 11 10

0
1

0
0

1
0

1
1

0
1

S = 0, Y I0

Y = !S.I0 + S.I1

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

1
0 0 1 1

S = 1, Y I1

Circuitos combinacionais
Multiplexadores (seletores)
Multiplexador 2:1 de 1 bit
Y 00 S
S 0 0 1 I1 X X 0 I0 0 1 X Y 0 1 0

I1 I0 01 11 10

0
1

0
0

1
0

1
1

0
1

S = 0, Y I0

S = 1, Y I1

Y = !S.I0 + S.I1

Circuitos combinacionais
Multiplexadores (seletores)
Multiplexador 2:1 de 1 bit
Y I1 I0 00 S 01 11 10

Viso genrica da tabela verdade (independente da largura das entradas de dados)


S 0 1 Y I0 I1

0
1

0
0

1
0

1
1

0
1

Y = !S.I0 + S.I1
S = 0, Y I0
S = 1, Y I1

O circuito cresce conforme aumenta o nmero de entradas e a largura das entradas/sada

Circuitos combinacionais
Multiplexadores (seletores)
Multiplexador 4:1 Tabela genrica independente da largura dos dados Logisim
S1 S0 Y

0
0 1 1

0
1 0 1

A
B C D

S = 00, Y A S = 01, Y B S = 10, Y C S = 11, Y D

A B C D

n n n n

MUX 4:1
3 2

Circuitos combinacionais
Multiplexadores (seletores)
Multiplexador 8:1 Tabela genrica independente da largura dos dados
S2 0 0 S1 0 0 S0 0 1 Y A B S = 000, Y A
A B C D E F G H
0

S = 001, Y B
S = 010, Y C S = 011, Y D S = 100, Y E S = 101, Y F S = 110, Y G S = 111, Y H

0
0 1 1 1

1
1 0 0 1

0
1 0 1 0

C
D E F G

MUX 8:1

7
3

Circuitos combinacionais
Multiplexadores (seletores)
Pode-se implementar multiplexadores maiores a partir da interconexo de multiplexadores menores Exemplo: Multiplexador 4:1 implementado a partir de multiplexadores 2:1

Circuitos combinacionais
Multiplexadores (seletores)
Multiplexador 8:1
Multiplexadores 2:1

1 bit de controle por estgio

Circuitos combinacionais
Multiplexadores (seletores)

H 0 0 P 0 0

Preencher o valor da sada X dependendo das entradas de seleo dos multiplexadores


V1 0 0 V0 0 1 X

0
0 0 0 0 0 1 1 1 1 1

0
0 1 1 1 1 0 0 0 0 1

1
1 0 0 1 1 0 0 1 1 0

0
1 0 1 0 1 0 1 0 1 0

1
1 1

1
1 1

0
1 1

1
0 1

Circuitos combinacionais
Multiplexadores (seletores)

H 0 0 P 0 0

Preencher o valor da sada X dependendo das entradas de seleo dos multiplexadores


V1 0 0 V0 0 1 X 12 25

0
0 0 0 0 0 1 1 1 1 1

0
0 1 1 1 1 0 0 0 0 1

1
1 0 0 1 1 0 0 1 1 0

0
1 0 1 0 1 0 1 0 1 0

89
55 44 25 64 55 12 09 89 55 44

1
1 1

1
1 1

0
1 1

1
0 1

09
64 55

Circuitos combinacionais
Multiplexadores (seletores)

C1 0 0 C0 0 0

Preencher o valor da sada X


V1 0 0 V0 0 1 X

0
0 0 0 0 0 1 1 1 1 1

0
0 1 1 1 1 0 0 0 0 1

1
1 0 0 1 1 0 0 1 1 0

0
1 0 1 0 1 0 1 0 1 0

1
1 1

1
1 1

0
1 1

1
0 1

Circuitos combinacionais
Multiplexadores (seletores)

C1 0 0 C0 0 0

Preencher o valor da sada X


V1 0 0 V0 0 1 X 12 25

0
0 0 0 0 0 1 1 1 1 1

0
0 1 1 1 1 0 0 0 0 1

1
1 0 0 1 1 0 0 1 1 0

0
1 0 1 0 1 0 1 0 1 0

64
55 12 9 89 55 44 25 89 55 44

1
1 1

1
1 1

0
1 1

1
0 1

25
89 55

Circuitos combinacionais
Somador completo (full adder)
Soma trs nmeros de 1 bit
A
0 0 0 0

B
0 0 1 1

Ci
0 1 0 1

Co

Co

FA

Ci

1
1 1 1

0
0 1 1

0
1 0 1 S

Circuitos combinacionais
Somador completo (full adder)
Soma trs nmeros de 1 bit
A
0 0 0 0

B
0 0 1 1

Ci
0 1 0 1

Co
0 0 0 1

S
0 1 1 0
AB Co 00 01 Ci 0 0 0 1 0 1

11
10

1
0

1
1

Co

FA

Ci

1
1 1 1

0
0 1 1

0
1 0 1

0
1 1 1

1
0 0 1

Co = A.B + A.Ci + B.Ci

Porta XOR de 3 entradas

S=A

Ci

Circuitos combinacionais
Somador completo (full adder)
Soma trs nmeros de 1 bit
A
0 0 0 0

B
0 0 1 1

Ci
0 1 0 1

Co
0 0 0 1

S
0 1 1 0
AB Co 00 01 Ci 0 0 0 1 0 1

11
10

1
0

1
1

1
1 1 1

0
0 1 1

0
1 0 1

0
1 1 1

1
0 0 1

Co = A.B + A.Ci + B.Ci

Porta XOR de 3 entradas

S=A

Ci

Circuitos combinacionais
Somador paralelo
Somador de n bits construdo a partir de n somadores de 1 bit Estrutura criada a partir da interconexo dos carries (carry out e carry in) Exemplo: somador de 4 bits
S=A+B
A: A3 A2 A1 A0 B: B3 B2 B1 B0 S: S3 S2 S1 S0
4 4

A
4

B
4

Somador
4 4

Soma aritmtica!

S=A+ B

Circuitos combinacionais
Somador paralelo
Somador de 4 bits
3 somadores completos (full adder) 1 meio somador (half adder)
Exemplo: 9 + 5 10012 + 01012
4 4

A3 B3

A2 B2

A1 B1

A0 B0

FA

FA

FA

HA

S3

S2

S1

S0

14

Circuitos combinacionais
Somador paralelo
Somador de 4 bits
Logisim

Circuitos combinacionais
Somador paralelo
Somador de 4 bits usando apenas somadores completos (full adders)
4

A3 B3

A2 B2

A1 B1

A0 B0

Carry out
4

Carry in

Carry out

Carry in

FA

FA

FA

FA

S3

S2

S1

S0

Circuitos combinacionais
Somador paralelo
Quais os valores de X e Y para obter as seguintes somas ?
S S S S S = = = = = B A A B A + + + + + D D C C B
0

A e B compartilham a mesma entrada do somador

Circuitos combinacionais
Somador paralelo

X1 0 0

Preencher os valores de S de acordo com as entradas X e Y


X0 Y1 0 Y0 0 S 46

0
0 0

0
0 0

0
1 1

1
0 1

35
57 79

0
0 0

1
1 1

0
0 1

0
1 0

35
24 46

0
1 1

1
0 0

1
0 0

1
0 1

68
57 46

1
1 1 1 1 1

0
0 1 1 1 1

1
1 0 0 1 1

0
1 0 1 0 1

68
90 79 68 90 112

Circuitos combinacionais
Somador paralelo

X1 0 0

Preencher os valores de S de acordo com as entradas X e Y


X0 Y1 0 Y0 0 S 46

0
0 0

0
0 0

0
1 1

1
0 1

35
57 79

0
0 0

1
1 1

0
0 1

0
1 0

35
24 46

0
1 1

1
0 0

1
0 0

1
0 1

68
57 46

1
1 1 1 1 1

0
0 1 1 1 1

1
1 0 0 1 1

0
1 0 1 0 1

68
90 79 68 90 112

Circuitos combinacionais
Subtrator paralelo
Subtrao binria realizada a partir de uma soma
A B = A + (-B)

O sinal de um nmero pode ser trocado utilizando a representao em complemento de 2


Inverter todos bits (complemento) e somar 1
-B = !B + 1

Circuitos combinacionais
Subtrator paralelo
A B = A + (-B) = A + !B + 1
Intervalo de representao utilizando 4 bits em complemento de 2: -8 a 7
A3 B3 A2 B2

!B

A1 B1

A0 B0

+1

S3

S2

S1

S0

Circuitos combinacionais
Subtrator paralelo
A B = A + (-B) = A + !B + 1
Exemplo: 7 - 5 01112 - 01012
1 0 A1 B1

0 0 A3 B3

1 1 A2 B2

1 1 A0 B0

1 1

0 1

0 1

S3
0

S2
0

S1
1

S0
0

Circuitos combinacionais
Utilizando um somador, um subtrator e um multiplexador, implementar um circuito que faz
R A + B quando controle = 0 R A B quando controle = 1

A B
n

A+B A-B

Controle

Circuitos combinacionais
Somador/Subtrator paralelo
Substituir inversores por portas XOR Adicionar entrada de controle para indicar a operao

A3 B3

A2 B2

A1 B1

A0 B0

S3

S2

S1

S0

Circuitos combinacionais
Somador/Subtrator paralelo
Substituir inversores por portas XOR Adicionar entrada de controle para indicar a operao
Controle 0 S A+B

Invertem o valor de B quando Controle = 1

A3 B3

A2 B2

A1 B1

A0 B0

A-B

+ 1 quando Controle = 1

S3

S2

S1

S0

Circuitos combinacionais
Somador/Subtrator paralelo
Substituir inversores por portas XOR Adicionar entrada de controle para indicar a operao
Exemplo: 3 + 4 00112 + 01002
0 0 A3 B3
0 0 1 A2 B2 1 0 A1 B1 0 0 1 0 A0 B 0

0 0 0

1 0

0 0 0

S3
0

S2
1

S1
1

S0
1

Circuitos combinacionais
Somador/Subtrator paralelo
Substituir inversores por portas XOR Adicionar entrada de controle para indicar a operao
Exemplo: 3 - 4 00112 - 01002
0 0 A3 B3 0 1 A2 B2

1 0 A1 B1 1 1

1 0 A0 B 0

1 0 0

0 1

1 1 1

S3
1

S2
1

S1
1

S0
1

-1

Circuitos combinacionais
Somador/Subtrator paralelo
Deteco de overflow

0 0 A3 B3
1 0 A2 B2 1 1 A1 B1

Complemento de 2 questo de interpretao. Circuito sempre o mesmo.

Se os dois ltimos carries so diferentes overflow


1 0 A0 B0

Exemplo: 7 + 2 01112 + 00102


Resultado errado: 7 + 2 = 9. Intervalo representvel utilizando 4 bits em complemento de 2: -8 a 7
0

0 1

0 0 0

-7

Circuitos combinacionais
OR bit a bit
Operao OR entre todos bits de 2 nmeros de n bits
1 0 B3 0 1 B2 1 1 B1

Exemplo: 10 OR 6 10102 OR 01102

A3

A2

A1

A0

0 B0

S3
1

S2
1

S1
1

S0
0

Circuitos combinacionais
AND bit a bit
Operao AND entre todos bits de 2 nmeros de n bits
1 0 B3 0 1 B2 1 1 B1

Exemplo: 10 AND 6 10102 AND 01102

A3

A2

A1

A0

0 B0

S3
0

S2
0

S1
1

S0
0

Circuitos combinacionais
NOT (complemento)
Complemento de todos os bits de um nmeros de n bits
0 1 1 0

Exemplo: !6 !(01102)

A3

A2

A1

A0

S3
1

S2
0

S1
0

S0
1

Circuitos combinacionais
Outras operaes bit a bit podem ser implementadas de maneira semelhante
XOR XNOR NOR NAND

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Realiza operaes lgicas e aritmticas com as entradas dependendo da operao especificada Pode conter flags com indicativos em relao ao resultado
Resultado negativo (N) Resultado zero (Z) Overflow (V) A
n

B
n

N V

N V Z
n

A
x

Operao
B

n R n

ULA
x

Operao

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Exemplo: ULA de 8 bits com 8 operaes e dois flags (N e Z)

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

Operao2 = 0: Lgica

A B
8

8 R

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++

ULA
3

Operao2 = 1: Aritmtica

Operao

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Utilizando multiplexadores, circuitos lgicos e aritmticos, construir a ULA abaixo
n n

Operao

OR
n 8

0
0 0

0
0 1

0
1 0

!A
A AND B A

A
n n

8 R 8

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++
n n

ULA
3

NOT
n

Operao

AND
n

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Realiza operaes lgicas e aritmticas com as entradas dependendo da operao especificada

A B
8

8 R

ULA
3

Operao

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Otimizao: todas operaes aritmticas podem ser feitas com um nico somador paralelo

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++

Otimizao

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Otimizao: todas operaes aritmticas podem ser feitas com um nico somador paralelo

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++

Resultado das operaes aritmticas so produzidos por um nico somador

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Otimizao: todas operaes aritmticas podem ser feitas com um nico somador paralelo

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++ A entrada A est presente em todas operaes aritmticas

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Otimizao: todas operaes aritmticas podem ser feitas com um nico somador paralelo

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++ O segundo operando das operaes aritmticas varia (-1, B, -B e +1)

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Otimizao: todas operaes aritmticas podem ser feitas com um nico somador paralelo

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++ O segundo operando das operaes aritmticas ligados no multiplexador de acordo com cdigo da operao

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Otimizao: todas operaes aritmticas podem ser feitas com um nico somador paralelo

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++ Para obter B necessrio somar 1 ao complemento de B (!B)

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Otimizao: todas operaes aritmticas podem ser feitas com um nico somador paralelo

Operao

0
0 0

0
0 1

0
1 0

!A
A AND B A

0
1 1 1 1

1
0 0 1 1

1
0 1 0 1

A OR B
A-A+B AB A++ Quando os bits 0 e 1 da operao so iguais a 10 deve-se ativar o carry in do somador a fim de obter A-B
1 0 1

10

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Adicionando flag de overflow
Verificar os 2 ltimo carries (XOR) Verificar os sinais dos operandos e do resultado
Operandos tem o mesmo sinal e ele diferente do sinal do resultado overflow

Entradas diferentes, sada = 1

R=A+ B
An-1

Entradas iguais, sada = 1

ltimo carry

Overflow
Penltimo carry

Bn-1

Overflow

Rn-1 Bit n-1 o MSb (sinal)


Entradas diferentes, sada = 1

Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Adicionando flag de overflow

Circuito que detecta overflow

Circuitos combinacionais
Circuitos sequenciais

Anda mungkin juga menyukai