circuitos lÓgicos circuitos combinacionais bÁsicos … · 2017. 4. 11. · síntese de circuitos...
TRANSCRIPT
![Page 1: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/1.jpg)
CIRCUITOS LÓGICOSCIRCUITOS COMBINACIONAIS BÁSICOS
(SOMADORES & SUBTRATORES)Marco A. Zanata Alves
CIRCUITOS LÓGICOS 1Slides baseados nos slides de Rodrigo Hausen - CMCC – UFABC (2013)
http://compscinet.org/hausen/courses/circuitos/
![Page 2: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/2.jpg)
BLOCOS DIGITAIS BÁSICOS
Os blocos mais elementares da eletrônica digital são as portas lógicas.
Daqui em diante, vamos aplicar o nosso conhecimento de análise e síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores
codificadores e decodificadores
multiplexadores e demultiplexadores
unidades lógico-aritméticas
latches e flip-flops
registradores e memórias
É extremamente útil saber a função de cada um desses blocos e as suas interfaces (ou seja, como conectar cada um deles em nossos circuitos).
CIRCUITOS LÓGICOS 2
![Page 3: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/3.jpg)
HALF ADDERMEIO SOMADOR
CIRCUITOS LÓGICOS 3
![Page 4: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/4.jpg)
BLOCOS SOMADORES BINÁRIOS
Exemplo 1: Elabore um circuito digital com 2 entradas, 𝑎0 e 𝑏0, e 2 saídas, 𝑠1 e 𝑠0 de tal forma que 𝑠1𝑠0 2 represente a soma aritmética 𝑎0 + 𝑏0.
+𝑎0𝑏0
𝑠1𝑠0
CIRCUITOS LÓGICOS 4
![Page 5: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/5.jpg)
BLOCOS SOMADORES BINÁRIOS
Exemplo 1: Elabore um circuito digital com 2 entradas, 𝑎0 e 𝑏0, e 2 saídas, 𝑠1 e 𝑠0 de tal forma que 𝑠1𝑠0 2 represente a soma aritmética 𝑎0 + 𝑏0.
Primeiro passo: obtenha e simplifique a expressão lógica para cada saída.
+𝑎0𝑏0
𝑠1𝑠0
CIRCUITOS LÓGICOS 5
![Page 6: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/6.jpg)
BLOCOS SOMADORES BINÁRIOS
Exemplo 1: Elabore um circuito digital com 2 entradas, 𝑎0 e 𝑏0, e 2 saídas, 𝑠1 e 𝑠0 de tal forma que 𝑠1𝑠0 2 represente a soma aritmética 𝑎0 + 𝑏0.
Primeiro passo: obtenha e simplifique a expressão lógica para cada saída.
Neste caso, é elementar obter expressões simples para as saídas:
𝑠0 = 𝑎0 ⊕𝑏0
𝑠1 = 𝑎0𝑏0
+𝑎0𝑏0
𝑠1𝑠0
a0 b0 s0 a0 b0 s1
0 0 0 0 0 00 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 1
CIRCUITOS LÓGICOS 6
![Page 7: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/7.jpg)
BLOCOS SOMADORES BINÁRIOS
Exemplo 1: Elabore um circuito digital com 2 entradas, 𝑎0 e 𝑏0, e 2 saídas, 𝑠1 e 𝑠0 de tal forma que 𝑠1𝑠0 2 represente a soma aritmética 𝑎0 + 𝑏0.
Segundo passo: desenhar o diagrama do circuito.
𝑠0 = 𝑎0 ⊕𝑏0
𝑠1 = 𝑎0𝑏0
+𝑎0𝑏0
𝑠1𝑠0
𝑆1
𝑠0
𝑎0𝑏0
CIRCUITOS LÓGICOS 7
![Page 8: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/8.jpg)
BLOCOS SOMADORES BINÁRIOS
Exemplo 1: Elabore um circuito digital com 2 entradas, 𝑎0 e 𝑏0, e 2 saídas, 𝑠1 e 𝑠0 de tal forma que 𝑠1𝑠0 2 represente a soma aritmética 𝑎0 + 𝑏0.
Segundo passo: desenhar o diagrama do circuito.
𝑠0 = 𝑎0 ⊕𝑏0
𝑠1 = 𝑎0𝑏0
+𝑎0𝑏0
𝑠1𝑠0
𝑠1
𝑠0
𝑎0𝑏0
Bloco meio
somador
(half adder)
CIRCUITOS LÓGICOS 8
![Page 9: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/9.jpg)
BLOCOS SOMADORES BINÁRIOS
Exemplo 1: Elabore um circuito digital com 2 entradas, 𝑎0 e 𝑏0, e 2 saídas, 𝑠1 e 𝑠0 de tal forma que 𝑠1𝑠0 2 represente a soma aritmética 𝑎0 + 𝑏0.
Terceiro passo: analisar o circuito e verificar as saídas.
Quarto passo: monte o circuito e faça sua tabela verdade.
(para este circuito, os dois últimos passos não tem a menor graça)
+𝑎0𝑏0
𝑠1𝑠0
𝑠1
𝑠0
𝑎0𝑏0
Bloco meio
somador
(half adder)
CIRCUITOS LÓGICOS 9
![Page 10: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/10.jpg)
FULL ADDERSOMADOR COMPLETO
CIRCUITOS LÓGICOS 10
![Page 11: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/11.jpg)
BLOCOS SOMADORES BINÁRIOS
Exemplo 2: Elabore um circuito digital com 3 entradas, 𝑎𝑖 , 𝑏𝑖 , 𝑐𝑖−1 e 2 saídas, 𝑠𝑖 e 𝑐𝑖 de tal forma que si represente a soma aritmética 𝑎𝑖 + 𝑏𝑖 + 𝑐𝑖−1 e 𝑐𝑖 represente o vai-um (carry) da operação.
Quais as entradas?
Quais as saídas?
…𝑐𝑖 𝑐𝑖−1…𝑐0…𝑎𝑖+1 𝑎𝑖 …𝑎1 𝑎0…𝑏𝑖+1 𝑏𝑖 …𝑏1 𝑏0…𝑠𝑖+1 𝑠𝑖 …𝑠1 𝑠0
CIRCUITOS LÓGICOS 11
![Page 12: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/12.jpg)
BLOCOS SOMADORES BINÁRIOS
Primeiro passo: obter as expressões para as saídas 𝑠𝑖 e 𝑐𝑖 .
…𝑐𝑖 𝑐𝑖−1…𝑐0…𝑎𝑖+1 𝑎𝑖 …𝑎1 𝑎0…𝑏𝑖+1 𝑏𝑖 …𝑏1 𝑏0…𝑠𝑖+1 𝑠𝑖 …𝑠1 𝑠0
CIRCUITOS LÓGICOS 12
![Page 13: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/13.jpg)
BLOCOS SOMADORES BINÁRIOS
Primeiro passo: obter as expressões para as saídas 𝑠𝑖 e 𝑐𝑖 .
…𝑐𝑖 𝑐𝑖−1…𝑐0…𝑎𝑖+1 𝑎𝑖 …𝑎1 𝑎0…𝑏𝑖+1 𝑏𝑖 …𝑏1 𝑏0…𝑠𝑖+1 𝑠𝑖 …𝑠1 𝑠0
CIRCUITOS LÓGICOS 13
aibi𝑐i−1
00 01 11 10
0 0 1 0 1
1 1 0 1 0
aibici−1
00 01 11 10
0 0 0 1 0
1 0 1 1 1
𝑐𝑖
𝑠𝑖
![Page 14: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/14.jpg)
BLOCOS SOMADORES BINÁRIOS
Primeiro passo: obter as expressões para as saídas 𝑠𝑖 e 𝑐𝑖 .
aibi𝑐i−1
00 01 11 10
0 0 1 0 1
1 1 0 1 0
aibici−1
00 01 11 10
0 0 0 1 0
1 0 1 1 1
Note que 𝑠𝑖 só é 1 se apenas um dos
bits 𝑎𝑖 , 𝑏𝑖 , 𝑐𝑖−1 é 1, ou se os três
forem 1. Isto corresponde à expressão:
𝑠𝑖 = 𝑎𝑖 ⊕𝑏𝑖 ⊕ 𝑐𝑖−1
𝑐𝑖 = 𝑎𝑖𝑏𝑖 + 𝑎𝑖𝑐𝑖−1 + 𝑏𝑖𝑐𝑖−1= 𝑎𝑖𝑏𝑖 + 𝑎𝑖 + 𝑏𝑖 · 𝑐𝑖−1𝑐𝑖
𝑠𝑖
CIRCUITOS LÓGICOS 14
![Page 15: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/15.jpg)
BLOCOS SOMADORES BINÁRIOS
Segundo passo: diagrama do circuito digital.
𝑠𝑖 = 𝑎𝑖 ⊕𝑏𝑖 ⊕ 𝑐𝑖−1
𝑐𝑖 = 𝑎𝑖𝑏𝑖 + (𝑎𝑖 + 𝑏𝑖) · 𝑐𝑖−1
ci
si
ci− 1
Bloco somador
completo
(full adder)
ai bi
CIRCUITOS LÓGICOS 15
![Page 16: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/16.jpg)
BLOCOS SOMADORES BINÁRIOS
Note que, juntando blocos Half Adder e Full Adder, podemos montar um somador para números de n bits.
cn− 1c0
an− 1 a0 b0bn− 1
sn− 1 s0
a1 b1
s1
c1cn−2
FA FA HA
CIRCUITOS LÓGICOS 16
![Page 17: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/17.jpg)
BLOCOS SOMADORES BINÁRIOS
Somador ripple carry de n bits: leva este nome pois os vai-uns (carry) são propagados como uma ondulação (ripple) da direita para a esquerda.
cn− 1c0
an− 1 a0 b0bn− 1
sn− 1 s0
a1 b1
s1
c1cn−2
FA FA HA
Quantas e quais são as portas lógicas usadas (separe as portas
lógicas com 2 entradas das de 3 entradas) em um somador ripple
carry (propagador de vai-um) de n bits?
CIRCUITOS LÓGICOS 17
![Page 18: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/18.jpg)
BLOCOS SOMADORES BINÁRIOS
Podemos enxergar os blocos somadores (half adder e full adder) como caixas-pretas.
cout
a0 b0
cout cin
ai bi
si s0
CIRCUITOS LÓGICOS 18
![Page 19: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/19.jpg)
BLOCOS SOMADORES BINÁRIOS
Também podemos enxergar um somador de n bits como uma caixa-preta:
cin
b3 a3 b2 a2 b1 a1 b0 a0
FA FA FA FA
s3 s2 s1 s0
cout = Somador completo cin4 bitscout
b3...b0 a3...a0
s3 ...s0
CIRCUITOS LÓGICOS 19
![Page 20: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/20.jpg)
BLOCOS SOMADORES BINÁRIOS
Podemos comprar blocos somadores integrados: 7483 (TTL); CD4008 (CMOS); e outros.
Podemos unir blocos somadores completos para obter somadores com quantidade maior de bits (p. ex. juntar 8 integrados CD4008 para fazer um somador de 32 bits)
input A3
input B2
input A2
input B1
input A1
input B0
input A0
1 16 VDD +3 -- +15V
2 15 input B3
3 14 CARRY OUT
4 13 output S3
5 12 output S2
6 11 output S1
7 10 output S0
8 9 CARRY IN
CD4008
VSS 0V CIRCUITOS LÓGICOS 20
![Page 21: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/21.jpg)
SUBTRATOR
CIRCUITOS LÓGICOS 21
![Page 22: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/22.jpg)
BLOCO SUBTRATOR BINÁRIO
Para subtração iremos usar o complemento de 2 e um somador.
𝐴 − 𝐵 = 𝐴 + (𝐵 + 1), desprezando o último “vai-um”
Faça o diagrama de um circuito digital para um subtrator de n bits. Você só precisará de:
Somador completo de n bits
Portas NOT
CIRCUITOS LÓGICOS 22
![Page 23: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/23.jpg)
SOMA E SUBTRAÇÃO DE NÚMEROS COM SINAL
Este é um somador para palavras de n bits que representam números inteiros sem sinal.
Como é um somador para palavras de n bits que representam números inteiros com sinal no formato complemento de 2?
CIRCUITOS LÓGICOS 23
Somador completo
4 bits
𝑏3…𝑏0 𝑎3…𝑎0
𝑐𝑖𝑛𝑐𝑜𝑢𝑡
𝑟3…𝑟0
![Page 24: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/24.jpg)
SOMA E SUBTRAÇÃO DE NÚMEROS COM SINAL
Este é um somador para palavras de n bits que representam números inteiros sem sinal.
Como é um somador para palavras de n bits que representam números inteiros com sinal no formato complemento de 2?
Não há nenhuma diferença no circuito!
CIRCUITOS LÓGICOS 24
Somador completo
4 bits
𝑏3…𝑏0 𝑎3…𝑎0
𝑐𝑖𝑛𝑐𝑜𝑢𝑡
𝑟3…𝑟0
Somador completo
4 bits
𝑏3…𝑏0 𝑎3…𝑎0
𝑐𝑖𝑛𝑐𝑜𝑢𝑡
𝑟3…𝑟0
![Page 25: CIRCUITOS LÓGICOS CIRCUITOS COMBINACIONAIS BÁSICOS … · 2017. 4. 11. · síntese de circuitos digitais para construir alguns blocos um pouco menos elementares: somadores e subtratores](https://reader035.vdocuments.net/reader035/viewer/2022081515/611a3b486ea0ee20330d1f12/html5/thumbnails/25.jpg)
SOMA E SUBTRAÇÃO DE NÚMEROS COM SINAL
Podemos utilizar um somador completo de n bits.
Porém, precisamos garantir que o número a ser subtraído esteja em complemento de 2!
Ou seja, para fazer (a)-(b), devemos converter b para complemento de 2.
− 𝑏 = 𝑏 + 1
− 𝑏𝑛𝑏𝑛−1…𝑏2𝑏1𝑏0 = 𝑏𝑛𝑏𝑛−1…𝑏2𝑏1𝑏0 + 1
Logo, podemos fazer isso facilmente utilizando b invertido, e ativando a entrada 𝑐𝑖𝑛 para somar 1.
CIRCUITOS LÓGICOS 25
Somador completo
4 bits
𝑏3…𝑏0 𝑎3…𝑎0
𝑐𝑖𝑛 = 1𝑐𝑜𝑢𝑡
𝑟3…𝑟0