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
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 ...
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
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
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
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
= = = =
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
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
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
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
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
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
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
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
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
0
1
0
0
1
0
1
1
0
1
Y = !S.I0 + S.I1
S = 0, Y I0
S = 1, Y I1
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
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
Circuitos combinacionais
Multiplexadores (seletores)
H 0 0 P 0 0
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
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
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
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
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
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
Circuitos combinacionais
Somador paralelo
X1 0 0
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
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)
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
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
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
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
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++
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
R=A+ B
An-1
ltimo carry
Overflow
Penltimo carry
Bn-1
Overflow
Circuitos combinacionais
ULA (Unidade Lgica/Aritmtica)
Adicionando flag de overflow
Circuitos combinacionais
Circuitos sequenciais