circuitos aritméticos - utfpr
TRANSCRIPT
Circuitos AritméticosCircuitos Aritméticos
Nikolas Libert
Aula 8
Eletrônica Digital ET52CTecnologia em Automação Industrial
DAELT ● Nikolas Libert ● 2
Circuitos Aritméticos
Circuitos Aritméticos
Circuitos combinacionais.
Utilizados para construção da ULA (Unidade Lógica Aritmética) de microcontroladores.
Disponíveis em circuitos integrados comerciais.
Principais circuitos:
– Somador
– Subtrator
– Somador/Subtrator
DAELT ● Nikolas Libert ● 3
Meio Somador
Circuito Meio Somador
Realiza a soma de duas variáveis de 1 bit. O resultado é de 1 bit.
Deve indicar quando o resultado não pode ser representado por um único bit.
– Sinal de “vai-1” ou carry.
0+ 0 0
0+ 1 1
1+ 0 1
1 1
+ 1 10
“vai-1”(carry)
DAELT ● Nikolas Libert ● 4
Meio Somador
MeioSomador
A
B
SCo Entrada Saída
A B S Co
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
CA+ BCS
0+ 0 0
0+ 1 1
1+ 0 1
1 1
+ 1 10
“vai-1”(carry)
Meio Somador
A
B
S
Co
A: Operando 1B: Operando 2S: SaídaCo: Carry out (“vai-1”)
DAELT ● Nikolas Libert ● 5
Somador Completo
Somador Completo
Necessário para soma de números de mais de 1 bit.
Circuito modular:
– Uma célula somadora por bit.
Realiza a soma entre três bits:
– Dois de entrada e um de carry (“vai-1”) do estágio anterior.
1 1 1 0 1 1 1 0
+ 0 1 1 0 1 0 1 0 0
Co=0Co=1
Co=1Co=1
DAELT ● Nikolas Libert ● 6
Somador Completo
SomadorCompleto
A
BSCoCi
Entrada Saída
A B Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
… Co Ci ? … ?… ? A ? ... ?
+ … ? B ? ... ?? … ? S ? ... ?
“vai-1”“vai-1”
A: Operando 1B: Operando 2Ci: Carry in (entrada)S: SaídaCo: Carry out (saída)
DAELT ● Nikolas Libert ● 7
Somador Completo
SomadorCompleto
A
BSCoCi
Entrada Saída
A B Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
B B0 1 0 1
1 0 1 0
A
A
Ci Ci Ci
Saída S:
Saída Co:
B B0 0 1 0
0 1 1 1
A
A
Ci Ci Ci
Co=AB+ACi+BCi
S=A + B + Ci
- Não é simplificável por portas lógicas básicas. Pode ser representada por portas XOR.
- Como um circuito de paridade com saída invertida.
DAELT ● Nikolas Libert ● 8
Somador Completo
SomadorCompleto
A
BSCoCi
Entrada Saída
A B Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Co=AB+ACi+BCi
S=A + B + Ci
A
SB
Ci
Somador Completo
Co
DAELT ● Nikolas Libert ● 9
Somador Completo
MeioSomador
A0
B0
S0
Co
Exemplo de circuito para soma de números de 4 bits.
A3 A2 A1 A0
+ B3 B2 B1 B0
S4 S3 S2 S1 S0
SomadorCompleto
A1
Ci
B1
S1
Co
SomadorCompleto
A2
Ci
B2
S2
Co
SomadorCompleto
A3
Ci
B3
S3
S4
SomadorCompleto
A
BSCoCi
DAELT ● Nikolas Libert ● 10
Somador Completo de 4 bits
CI Dedicado
– 74LS83 e 74LS283
– Já possuem interligações internas para soma de 4 bits.
– O “carry in” do primeiro bit é acessível por um pino. Isso possibilita o cascateamento de somadores.
DAELT ● Nikolas Libert ● 11
Somador Completo de 4 bits
Ache a saída do circuito para as entradas abaixo:
– A=13
– B=3
– Ci=1
74LS83
A3
A2
A1
A0
B3
B2
B1
B0
S3
S2
S1
S0
Co
Ci
A=A3A2A1A0
B=B3B2B1B0
R.: CoS3S2S1S0 = 0b10001
DAELT ● Nikolas Libert ● 12
Meio Subtrator
Circuito Meio Subtrator
Realiza a subtração de duas variáveis de 1 bit. O resultado é de 1 bit.
Deve indicar quando a conta só é possível com o “empréstimo” de 1 bit.
– Sinal de “empresta-1” ou borrow.
0- 0 0
1- 0 1
-1 0- 1
1“empresta-1”
(borrow)
1- 1 0
DAELT ● Nikolas Libert ● 13
Meio Subtrator
MeioSubtrator
A
B
SBo Entrada Saída
A B S Bo
0 0 0 0
0 1 1 1
1 0 1 0
1 1 0 0
Meio Subtrator
A
B
S
Bo
A: Operando 1B: Operando 2S: SaídaBo: Borrow out (“empresta-1”)
0- 0 0
1- 0 1
-1 0- 1
1borrow
1- 1 0
-Bo A- B S
DAELT ● Nikolas Libert ● 14
Subtrator Completo
Subtrator Completo
Necessário para subtração de números de maisde 1 bit.
Circuito modular:
– Uma célula subtratora por bit.
Realiza a subtração com três bits:
– Dois de entrada e um de borrow (“empresta-1”) do estágio anterior.
0 -1 -1 1 1 0 0
- 0 0 1 1 1 0 0 1
Bo=1Bo=1
Bo=0Bo=0
DAELT ● Nikolas Libert ● 15
Subtrator Completo
SubtratorCompleto
A
BSBoBi
Entrada Saída
A B Bi S Bo
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
… -Bo -Bi ? … ?… ? A ? ... ?
- … ? B ? ... ?? … ? S ? ... ?
“empresta-1”“empresta-1”
A: Operando 1B: Operando 2Bi: Borrow in (entrada)S: SaídaBo: Borrow out (saída)
DAELT ● Nikolas Libert ● 16
Subtrator Completo
SubtratorCompleto
A
BSBoBi
Entrada Saída
A B Bi S Bo
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
B B0 1 0 1
1 0 1 0
A
A
Bi Bi Bi
Saída S:
Saída Bo:
B B0 1 1 1
0 0 1 0
A
A
Bi Bi Bi
Bo=AB+ABi+BBi
S=A + B + Bi
- Não é simplificável por portas lógicas básicas. Pode ser representada por portas XOR.
- Como um circuito de paridade com saída invertida.
DAELT ● Nikolas Libert ● 17
Subtrator Completo
SubtratorCompleto
A
BSBoBi
Entrada Saída
A B Bi S Bo
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
Bo=AB+ABi+BBi
S=A + B + Bi
A
SB
Bi
Subtrator Completo
Bo
DAELT ● Nikolas Libert ● 18
Subtrator Completo
MeioSubtrator
A0
B0
S0
Bo
Exemplo de circuito para subtração de númerosde 4 bits.
A3 A2 A1 A0
- B3 B2 B1 B0
S3 S2 S1 S0
SubtratorCompleto
A1
Bi
B1
S1
Bo
SubtratorCompleto
A2
Bi
B2
S2
Bo
SubtratorCompleto
A3
Bi
B3
S3
SubtratorCompleto
A
BSBoBi
DAELT ● Nikolas Libert ● 19
Somador/Subtrator Completo
Somador/Subtrator Completo
Efetua operação de soma ou subtração.
Pino adicional de controle:
– Nível Alto: Subtração.
– Nível Baixo: Adição.
Somador/SubtratorCompleto
A
BSC/BoC/Bi
M
DAELT ● Nikolas Libert ● 20
Somador/Subtrator Completo
Entrada Saída
A B Ci S Co
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Entrada Saída
A B Bi S Bo
0 0 0 0 0
0 0 1 1 1
0 1 0 1 1
0 1 1 0 1
1 0 0 1 0
1 0 1 0 0
1 1 0 0 0
1 1 1 1 1
Somador/SubtratorCompleto
A
BSC/BoC/Bi
M
SomadorM=0
SubtratorM=1
A saída S é igual para os dois casos!
Não depende de M.
A função que representa S continua
a mesma.
DAELT ● Nikolas Libert ● 21
Somador/Subtrator Completo
Entrada Saída
M A B C/Bi S C/Bo
0 0 0 0 0 0
0 0 0 1 1 0
0 0 1 0 1 0
0 0 1 1 0 1
0 1 0 0 1 0
0 1 0 1 0 1
0 1 1 0 0 1
0 1 1 1 1 1
... ...
Somador/SubtratorCompleto
A
BSC/BoC/Bi
M
SomaCompleta
M=0
C C0
0
0 1 0
1 1 1A
A
B
B
BD D D
A B C D
Saída C/Bo:
DAELT ● Nikolas Libert ● 22
Somador/Subtrator Completo
Entrada Saída
M A B C/Bi S C/Bo
... ...
1 0 0 0 0 0
1 0 0 1 1 1
1 0 1 0 1 1
1 0 1 1 0 1
1 1 0 0 1 0
1 1 0 1 0 0
1 1 1 0 0 0
1 1 1 1 1 1
Somador/SubtratorCompleto
A
BSC/BoC/Bi
M
SubtraçãoCompleta
M=1C C
0
0
0 1 0
1 1 1
0
0
0 1 0
1 1 1
A
A
B
B
BD D D
A B C D
Saída C/Bo:
C/Bo=ABD+ABC+ABD+ABC+CDC/Bo=CD+C(AB+AB)+D(AB+AB)C/Bo=CD+C(A + B)+D(A + B)C/Bo=CD+(A + B)(C+D)
C/Bo=B[C/Bi]+(M + A)(B+[C/Bi])
DAELT ● Nikolas Libert ● 23
Somador/Subtrator Completo
S=A + B + [C/Bi]
A
SB
C/Bi
Somador/Subtrator Completo
C/Bo
M
C/Bo=B[C/Bi]+(M + A)(B+[C/Bi])Somador/SubtratorCompleto
A
BSC/BoC/Bi
M
DAELT ● Nikolas Libert ● 24
Complemento de dois
Complemento de dois
Na prática, subtrações são feitas utilizando complemento de dois.
Um número positivo é somado a um negativo, representado na notação complemento de 2.
Ex.:
– Notação normal (números positivos)
– Notação em Complementode dois.
6 = 0b0110
-6 = 0b1001 + 0b0001 = 0b1010 (Inverte-se os bits e soma-se 1)
DAELT ● Nikolas Libert ● 25
Complemento de dois
Porta XOR utilizada como uma porta inversora controlada.
X1
......
C
X2
XN
Y1
Y2
YN
Quando o sinal de controle C estiver em nível lógico alto, as saídas serão o inverso das entradas.
DAELT ● Nikolas Libert ● 26
Complemento de dois
O que ocorre quando C está em nível alto?
74LS83
B3
B2
B1
S3S2S1S0Co
Ci
B0
A3
A2
A1
A0
C
B*3 B*
2 B*1 B*
0
Co*
Ache as saídas para:
(a) C=1, A=13 e B*=5
(b) C=1, A=13 e B*=14
R.: C0*S3S2S1S0 = 0b01000
R.: C0*S3S2S1S0 = 0b11111
DAELT ● Nikolas Libert ● 27
Referências
IDOETA, I. V., CAPUANO, F. G. Elementos de Eletrônica Digital, 41ª Edição, Érica, São Paulo, 2013.