Sistemas Digitais
Capítulo 1: Introdução
Material traduzido e adaptado para o
Português pelo Prof. Ricardo O. Duarte e
revisado pelos Profs. Luciano Pimenta,
Hermes Magalhães, Vitor Ângelo e
Luciano de Errico
DELT – EEUFMG
(240829)
Slides to accompany the textbook Digital Design, First Edition,
by Frank Vahid, John Wiley and Sons Publishers, 2007.
http://www.ddvahid.com
Copyright © 2007 Frank Vahid
Instructors of courses requiring Vahid's Digital Design textbook (published by John Wiley and Sons) have permission to modify and use these slides for customary course-related activities,
subject to keeping this copyright
Digital Design notice in place and unmodified. These slides may be posted as unanimated pdf versions on publicly-accessible course websites.. PowerPoint source (or pdf
with animations) may not be posted to publicly-accessible websites, but may be posted for students on internal protected sites or distributed directly to students by other electronic means.
Copyright © 2007 1
Instructors may make printouts of the slides available to students for a reasonable photocopying charge, without incurring royalties. Any other use requires explicit permission. Instructors
Franksource
may obtain PowerPoint Vahidor obtain special use permissions from Wiley – see http://www.ddvahid.com for information.
1.1
Porque estudar Sistemas Digitais?
• Entender como computadores funcionam.
• Projetar dispositivos eletrônicos
– Raciocínio lógico
– Raciocínio sequencial
• Dispositivos digitais
– Dispositivos melhores, mais confiáveis
– Grande capacidade de armazenamento
– Grande capacidade de processamento
– Dispositivos portáteis, vestíveis
– Miniaturização e preços baixos
Satellites DVD Video Musical
players recorders instruments
Portable
music players Cell phones Cameras TVs ???
1995 1997 1999 2001 2003 2005 2007
Digital Design Os anos indicados na linha do tempo acima, mostram quando a
Copyright © 2007 versão DIGITAL de cada uma das aplicações mostradas passaram
a dominar o mercado mundial.
2
Frank Vahid
1.1
Porque estudar Sistemas Digitais?
Apple 1 (1976)
Digital Design
Copyright © 2007 3
Frank Vahid
1.1
Porque estudar Sistemas Digitais?
ARM1 (1985) Apple M1 Max (2021)
Digital Design
Copyright © 2007 4
Frank Vahid
1.1
Porque estudar Sistemas Digitais?
GPUs NVIDIA
Apple A14 / Iphone 12
11.8 Bilhões de Transist.
Neural Engine
Digital Design
Copyright © 2007 5
Frank Vahid
Tendências na miniaturização da integração
Digital Design
Copyright © 2007 6
Frank Vahid
1.2
O que o termo “Digital” significa?
• Sinal Analógico:
– Infinitos valores Sound waves
move the
– Contínuo no tempo membrane,
– p. ex. tensão em um fio which moves
the magnet,
gerada por um microfone
microphone
Sinal
which creates analógico
current in the nearby wire
valor
Valores possíveis:
1.00, 1.01, 2.0000009,
... infinitos valores
tempo
Digital Design
Copyright © 2007 7
Frank Vahid
Sinais digitais somente com 2 valores: Binário
• Um sinal digital binário – apresenta
somente dois valores possíveis.
– Representados como 0 e 1
valor
– Um dígito binário (binary digit) ou bit
– Consideraremos somente sinais digitais 1
0
binários no curso. tempo
– A representação binária se tornou popular:
• Transistores, dispositivo eletrônico básico
dos sistemas digitais, produzem os dois
níveis de sinais (0 e 1) (mais no Cap. 2)
• Armazenamento/Transmissão de um dos
dois valores é mais fácil do que três ou mais
valores (Ex.: um bip longo ou sem bip,
emissão/reflexão ou não de um feixe de luz,
campo magnético em duas direções, etc.)
Digital Design
Copyright © 2007 8
Frank Vahid
Exemplo dos benefícios da digitalização
Volts
3 3
• Sinais analógicos estão sujeitos 2 2
à perda da qualidade. 1 Sinal original 1 Sinal recebido
– Níveis de tensão não são 0 0
armazenados, copiados ou tempo tempo
transmitidos perfeitamente.
Volts
• A versão digital permite maior
perfeição armaz./cópia/transm. 1 Sinal digitalizado
– Amostra a tensão a uma taxa 0
fixa, guarda o valor “discreto” da tempo
amostra (veremos a codificação 1
binária em seguida).
– Níveis de tensão ainda não 0
podem ser considerados tempo
perfeitos. Correção possível. Fácil
– Entretanto podemos distinguir distinguir 0s de 1s (recuperar)
melhor os 0s de 1s.
Digital Design
Copyright © 2007 tempo 9
Frank Vahid
Digitalização de fenômenos analógicos
• A digitalização de fenômenos
analógicos requer:
– Um sensor que mede o
fenômeno físico analógico e
converte o valor medido em
um sinal elétrico.
– Um conversor analógico-digital
que converte o sinal elétrico
Conversor analógico-digital
em códigos digitais binários. O
conversor deve amostrar
(medir) o sinal elétrico a uma
taxa regular e converter cada
amostra em um valor
representado por bits.
Digital Design
Copyright © 2007 10
Frank Vahid
Mídia digitalizada: Benefícios da compressão
• Áudio digitalizado pode Exemplo de compressão de dados:
ser comprimido 00 --> 0000000000
01 --> 1111111111
– Stream (audio/vídeo).
1X --> X
• Fotos e figuras (jpeg),
e vídeos (mpeg*), 0000000000 0000000000 1000001111 1111111111
ambas com perdas 00 00 10000001111 01
• Compressão sem
perdas (zip, rar, png)
Inúmeras vantagens: armazenamento de
longo prazo, cópias perfeitas, processamento
digital, transmissão mais rápida, eletrônica
mais simples e barata, encriptação etc.
Digital Design
Copyright © 2007 12
Frank Vahid
Como codificar números: Números binários
• Cada amostra recebe um
valor digital
• Como representar cada
valor digital em binário?
Digital Design
Copyright © 2007
Frank Vahid
Como codificar números: Números binários
Essa forma de gerar
• Cada posição (ordem) números obedece as
regras da
representa uma quantidade. Notação Posicional
• Um símbolo em uma posição
(ordem) significa “quantas 5 2 3
vezes daquela quantidade”. 104 103 102 101 100
– Base dez (decimal)
• Dez símbolos: 0, 1, 2, ... 8, e 9
• Maior que 9 – próxima posição
– Cada posição é uma potência
de 10.
– Base dois (binário)
1 0 1 Q: Quanto?
• Dois símbolos: 0 e 1
• Maior que 1 -- próxima posição 24 23 22 21 20 + =
– Cada posição é uma potência
de 2.
4+ 1= 5
Digital Design
Copyright © 2007 15
Frank Vahid
Como codificar números: Números binários
• Sistemas digitais trabalham
com números binários.
– Na base 10 existem termos 29 28 27 26 25 24 23 22 21 20
específicos para as ordens:
• unidade, dezena, centena, 512 256 128 64 32 16 8 4 2 1
milhar etc...
– Na base 2 não:
• um, dois, quatro, oito,
dezesseis, etc…
• Notação (ex.) n0, n1, n2, n3: o
número representa o expoente
• Cada ordem representa uma
potência exata da base 2. 512 256 128 64 32 16 8 4 2 1
Digital Design
Copyright © 2007 16
Frank Vahid
Primeiro Método de Conversão de Números
Decimais para Binários (Método da Subtração)
• Objetivo
Número decimal a converter: 12
– Coloque 1 nas ordens necessárias
para se atingir a quantidade do
32 16 8 4 2 1
número decimal desejado.
• Comece da esquerda para a direita. 1 =32
32 16 8 4 2 1 muito
• Coloque 1 na ordem se o peso
correspondente do número for igual ou =16
menor .
0 1
32 16 8 4 2 1 muito
• Caso contrário coloque 0.
• Continue nesse processo até que a =8
0 0 1
quantidade do número decimal 32 16 8 4 2 1 ok, continue…
desejado seja atingida.
0 0 1 1 =8+4=12
32 16 8 4 2 1 PRONTO!
0 0 1 1 0 0 resposta
32 16 8 4 2 1
Digital Design
Copyright © 2007 17
Frank Vahid
Primeiro Método de Conversão de Números
Decimais para Binários (Método da Subtração)
• Método da subtração Quantidade restante: 12
– Fácil para seres humanos, menos
eficientes para implementar em 32 16 8 4 2 1
sistemas digitais. 1 32 é muito
– Devemos subtrair uma ordem 32 16 8 4 2 1
binária da quantidade restante a 0 1 16 é muito
ser convertida. 32 16 8 4 2 1
• Então, teremos um novo resto
(quantidade restante) e 0 0 1 12 – 8 = 4
continuamos com o mesmo 32 16 8 4 2 1
processo.
0 0 1 1 4-4=0
• Paramos quando o resto é igual a Pronto!
32 16 8 4 2 1
0 (zero).
0 0 1 1 0 0 resposta
32 16 8 4 2 1
Digital Design
Copyright © 2007 18
Frank Vahid
Conversão de Números Decimais em Binário:
Exemplo do Método de Subtração
• Converter o número “23” de decimal para binário
Resto ou Quantidade restante Número binário
23 0 0 0 0 0 0
32 16 8 4 2 1
23 0 1 0 0 0 0
-16 32 16 8 4 2 1
7
7 0 1 0 1 0 0
-4 32 16 8 4 2 1
3 8 é maior que 7
3 0 1 0 1 1 0
-2 32 16 8 4 2 1
1
1 0 1 0 1 1 1
-1 32 16 8 4 2 1
Digital Design 0
Copyright © 2007 Pronto! 23 em decimal é 10111 em binário. 19
Frank Vahid
Segundo Método de Conversão de Números
Decimais para Binários (Método da Divisão)
• Divida o número decimal por 2. O resto da divisão vai ser o símbolo
da ordem do número binário (da menor ordem para a maior).
– Continue dividindo o quociente por 2 até o quociente ser igual a 0.
• Exemplo: Converta o número decimal 12 para binário
Número decimal Número binário
6
Método mais 2 12 Divida por 2 0
apropriado para -12 1
se implementar 0
em Resto → Símbolo
sistemas
digitais Continue dividindo, pois o quociente (6) é maior que 0
3
2 6 Divida por 2 0 0
-6 2 1
0
Resto → Símbolo
Digital Design Continue dividindo, pois o quociente (3) é maior que 0
Copyright © 2007 20
Frank Vahid
Conversão de Números Decimais em Binário:
Exemplo do Método da Divisão
• Exemplo: Converta o número decimal 12 para binário
Número decimal Número binário
1 1 0 0
2 3 Divida por 2 4 2 1
-2
1
Resto → Símbolo
Continue dividindo, pois o quociente (1) é maior que 0
0 1 1 0 0
2 1 Divida por 2 8 4 2 1
-0
1
Resto → Símbolo
Como o quociente é 0, podemos concluir que 12 é 1100 em binário.
Digital Design
Copyright © 2007 21
Frank Vahid
Conversão de Números Decimais em Binário:
Exemplo do Método da Divisão
• Exemplo: Converta o número decimal 45 para binário: 101101
Digital Design
Copyright © 2007 22
Frank Vahid
Conversão de Números Decimais em Binário:
Exemplo do Método da Divisão
• Exemplo: Converta o número decimal 48 para binário: 110000
Digital Design
Copyright © 2007 23
Frank Vahid
Base Decimal
• Base10 = {0,1,2,3,4,5,6,7,8,9}
• Tamanho da Base = 10 símbolos
• Símbolos = de 0 a 9
• Exemplo:
123010 = 0*100 + 3*101 + 2*102 + 1*103
Digital Design
Copyright © 2007 24
Frank Vahid
Base Binária
• Base2 = {0, 1}
• Tamanho da Base = 2
• Símbolos = 0 e 1
• Exemplo:
11012 = 1*20 + 0*21 + 1*22 + 1*23
= 1 + 0 + 4 + 8 = 1310
Digital Design
Copyright © 2007 25
Frank Vahid
Representação de Números Positivos e Negativos
Existem três tipos de notações para representar números
inteiros (+ e - ) em Sistemas Digitais:
Sinal e magnitude
Complemento a um
Complemento a dois
A representação de números positivos é a mesma em
qualquer notação!
A diferença de uma notação a outra está na representação
dos números negativos!
Digital Design
Copyright © 2007 26
Frank Vahid
Representação de Números Positivos e Negativos
Vamos tomar como exemplo uma CPU ou um sistema
digital que representa dados numéricos de tamanho
máximo igual a 4 bits.
16 valores (números) diferentes podem ser
representados com 4 bits (24) nesse sistema digital ou
CPU.
Aproximadamente, metade dos números será positiva e
metade negativa.
Digital Design
Copyright © 2007 27
Frank Vahid
Notação Sinal e Magnitude
O bit mais significativo (bit mas à esquerda)
representará o sinal do número:
Convenção: 0 = positivo; 1 = negativo
Os três outros bits de menor significância (bits à direita
do bit mais significativo) formarão a magnitude (módulo
do número a ser representado):
0 (000) até 7 (111)
Intervalo de números para n bits = +/- 2n
–1
-1
Desperdício: 2 representações distintas para o 0 (zero)
Digital Design
Copyright © 2007 28
Frank Vahid
Notação Sinal e Magnitude +
-7 +0
-6 1111 0000 +1
1110 0001 0 100 = + 4
-5 +2
1101 0010
-4 1100 0011 +3 - 421
1 100 = - 4
-3 1011 0100 +4
1010 0101
-2 +5
1001 0110 -
-1 1000 0111 +6
-0 +7
Digital Design Desperdício: 2 representações para o número 0.
Copyright © 2007 29
Frank Vahid
Notação Complemento de 1
Seja N um número positivo e N o número negativo
correspondente na representação complemento de um.
n
N = (2 - 1) - N
Exemplo: complemento a um do número +7
0111 = (+7)
Método direto:
Para obter -7, fazer o complemento bit a bit do número a ser convertido.
Isso significa substituir todos “0” por “1” e vice-versa
0111 → 1000
Digital Design
Copyright © 2007 30
Frank Vahid
Notação Complemento de 1
-0 +0
-1 1111 0000 +1 Curiosidade: interprete o
1110 0001
bit de sinal com valor
-2 +2 +
1101 0010
-3 1100 0011 +3 0 100 = + 4
-8 421 +1
-4 1011 0100 +4 1 011 = - 4
1010 0101
-5 +5 -
1001 0110
+6 A conversão acima, se
-6 1000 0111
torna o método usado para
-7 +7 representação (comp. 2)
Digital Design Desperdício: 2 representações
Copyright © 2007 31
Frank Vahid para o número 0.
Notação Complemento de 2
Possui uma única representação para o 0 (zero).
Possui um número negativo a mais que a representação
em complemento de 1 (metade negativa, metade não
negativa).
É a representação utilizada pelos cálculos da unidade de
aritmética inteira de processadores.
Digital Design
Copyright © 2007 32
Frank Vahid
Notação Complemento de 2
-1 +0 Intuição: o bit mais
-2 1111 0000 +1 significativo tem
peso/valor negativo
1110 0001
-3 +2 +
1101 0010
-4 1100 0011 +3 0 100 = + 4
-8 421
-5 1011 0100 +4 1 100 = - 4
1010 0101
-6 +5 -
1001 0110
-7 1000 0111 +6
Digital Design -8 +7
Copyright © 2007 33
Frank Vahid
Notação Complemento de 2
Método direto:
Número em complemento de 2 = complemento bit a bit + 1
(soma-se 1 ao bit menos significativo, mais à direita)
0111 = 1000 + 1 → 1001 (-7)
1001 = 0110 + 1 → 0111 (7)
O método funciona nos dois sentidos,
exceto para o número mais negativo
pois não há a respectiva representação
positiva (-8, no exemplo de 4 bits).
Digital Design
Copyright © 2007 34
Frank Vahid
Operações de soma e subtração
Todas as somas possíveis de 2 bits (com e sem “vai um”):
0 + 0 + 0 = 00 (0) Exemplo: 6 + 7
0 + 0 + 1 = 01 (1)
0 + 1 + 0 = 01 (1) 1100
0 + 1 + 1 = 10 (2) 6: 0110
1 + 0 + 0 = 01 (1) 7: 0111
1 + 0 + 1 = 10 (2) ----
1 + 1 + 0 = 10 (2) 13: 1101
1 + 1 + 1 = 11 (3)
É importante fazer as operações de soma bit a bit, como é feito
em base dez, pois isso facilita o entendimento dos circuitos
aritméticos (Cap. 4) e permite a verificação das respostas.
Digital Design
Copyright © 2007 35
Frank Vahid
Operações de soma e subtração
A mesma operação pode ser interpretada nas duas representações:
1: 0001 1: 0001
+12: 1100 -4: 1100
= 13: 1101 = -3: 1101
Para a subtração, calcular o complemento de 2 e somar bit a bit:
7: 0111 5: 0101
+4: 0100 -4: 1100
= 11: 1011 = 1: 0001
Digital Design
Copyright © 2007 36
Frank Vahid
Números “Reais”: Representação em Ponto Fixo
• A representação em ponto fixo tem este nome porque
as quantidades de bits que representam as partes
inteiras e fracionárias são fixas, ou seja, a posição da
vírgula é predeterminada.
• Obs. Usa-se ponto fixo em português para manter a
similaridade com o jargão em inglês (fixed point).
Digital Design
Copyright © 2007 37
Frank Vahid
Limitações da representação em ponto fixo
• Na aritmética com números representados em ponto fixo, os
resultados também precisam estar ‘dentro’ da faixa fixa. Ou seja, é
necessário que o resultado da operação aritmética feita não
extrapole o limite de representação dos bits que reservamos tanto
para a parte inteira como para a parte fracionária.
• Altera-se a faixa de representação de acordo com a aplicação, com
a maior quantidade possível de bits na parte fracionária.
• Caso não se alcance a precisão desejada, busca-se uma solução
com representação em Ponto Flutuante (Arquitetura de Comp.).
Digital Design
Copyright © 2007 38
Frank Vahid
Exemplos de números inteiros em ponto fixo
Representação do número +10,5 sem sinal:
(4 bits para parte inteira sem sinal e 4 para a fracionária.)
“unsigned”
Digital Design
Copyright © 2007 39
Frank Vahid
Exercícios (ponto fixo sem sinal)
Suponha que sua CPU faça cálculos com 8 bits.
a) Determine quantos bits que você usaria para a parte inteira
e para a parte fracionária para atender corretamente a
representação de cada parcela e do resultado das
operações
b) Represente os números em ponto fixo sem sinal
c) Reservaremos um bit a mais se quisermos considerar que
operações podem envolver ou resultar em números
negativos (exemplos mais adiante)
1. (+7,75) + (6,25)
2. (+12,125) + (4,0125)
Digital Design
Copyright © 2007 40
Frank Vahid
Exercício 1: Resposta
• +7,75 e +6,25 poderiam ser representados com 4
bits (incluindo o sinal) para a parte inteira e 4 bits
para a parte fracionária.
• Entretanto o resultado da soma dos dois operandos
vai dar +14,0 que extrapolaria o limite de
representação dos 4 bits que reservamos para a
parte inteira.
• De forma a produzir o resultado correto, nesse
exemplo, deveremos representar a parte inteira com
5 bits e os 3 bits restantes reservaremos para a parte
fracionária.
Digital Design
Copyright © 2007 41
Frank Vahid
Exercício 1 - Resposta
+7,75: 00111110
+6,25: 00110010
+14,0: 01110000
Note que a soma bit a bit continua
funcionando em ponto fixo.
Digital Design
Copyright © 2007 42
Frank Vahid
Exercício 2: Resposta
• +12,125 e +4,0125 poderiam ser representados
respectivamente com 5 e 4 bits para a parte inteira
(incluindo o sinal). A escolha inicial que satisfaça
ambos os casos é 5 bits para a parte inteira, deixando
3 bits para a parte fracionária, às custas de perda de
precisão para o segundo operando.
• Entretanto o resultado da soma dos dois operandos
vai dar +16,1375 que extrapolaria o limite de
representação de 5 bits para a parte inteira que
reservamos na etapa anterior.
• De forma a produzir o resultado correto, deveremos
representar a parte inteira com 6 bits e os 2 bits
restantes a parte fracionária. Prejudicando ainda mais
a precisão do resultado.
Digital Design
Copyright © 2007 43
Frank Vahid
Exercício 2 - Resposta
+12,125: 00110000 (+12,0)
+4,0125: 00010000 (+4,0)
+16,1375: 01000000 (+16,0)
Note que a precisão foi perdida pela
quantidade reduzida de bits fracionários.
Digital Design
Copyright © 2007 44
Frank Vahid
Exemplos de números inteiros em ponto fixo
• A notação usada em computadores para a representação
em ponto fixo com sinal, é o complemento de 2.
Representação do número -29,9375 com sinal:
(6 bits para parte inteira com sinal e 6 para a fracionária.)
“signed, integer”
Dica: faça a conversão do número positivo (29,9375)
Digital Design
Copyright © 2007 45
Frank Vahid
Exemplo de número negativo em ponto fixo
Representação do número -23,75 (conversão):
(reservado 1 bit para sinal, 5 bits para parte inteira e 5 para a fracionária.)
• 23,75 = 01011111000
(complemento de 1) 10100000111
• -23,75 (Usando complemento de 2) = 10100001000
• Verificando: -32 + 8 = -24 -24 + 0,25 = -23,75
Digital Design
Copyright © 2007 46
Frank Vahid
Exercícios (ponto fixo com sinal)
Suponha que sua CPU faça cálculos com 8 bits.
a) Determine quantos bits que você usaria para a parte inteira
e para a parte fracionária para atender corretamente a
representação de cada parcela e do resultado das
operações
b) Represente os números em ponto fixo considerando o “bit
de sinal”
1. (+5,99) – (4,625)
2. (-8,1212) + (0,65)
Digital Design
Copyright © 2007 47
Frank Vahid
Exercício 1: Resposta
• A parte inteira de +5,99 e –4,625 pode ser
representada no mínimo com 4 bits (incluindo o
sinal), restando 4 bits para a parte fracionária.
• O resultado da soma dos dois operandos ainda
estaria dentro do limite de representação dos 4 bits
para a parte inteira que reservamos para o
exercício.
• Entretanto os 4 bits que reservamos para a parte
fracionária não serão suficientes para suprir a
demanda de precisão desejada.
Digital Design
Copyright © 2007 48
Frank Vahid
Exercício 1 - Resposta
+5,990: 01011111 (+5,9375)
–4,625: 10110110 (-4,6250)
+1,365: 00010101 (+1,3125)
Note que realizamos uma soma normal bit a bit
em complemento de 2 e em ponto fixo.
O “vai um” da coluna mais significativa não é
considerado (mais detalhes no Cap. 4)
Digital Design
Copyright © 2007 49
Frank Vahid
Exercício 2: Resposta
• A parte inteira de -8,1212 e de +0,65 pode ser
representada no mínimo respectivamente com 5
bits e 1 bit (incluindo o sinal).
• O resultado da soma dos dois operandos ainda
estaria dentro do limite de representação dos 5 bits
para a parte inteira que reservamos para o
exercício.
• Entretanto os 3 bits que reservamos para a parte
fracionária não serão suficientes para suprir a
demanda de precisão desejada.
Digital Design
Copyright © 2007 50
Frank Vahid
Exercício 2 - Resposta
–8,1212: 11000000 (-8,0)
+0,65: 00000101 (+0,625)
–7,4712: 11000101 (-7,375)
• Note que realizamos uma soma normal em complemento a 2.
• Observe que o resultado não é preciso devido à quantidade de
bits que reservamos para a parte fracionária.
Digital Design
Copyright © 2007 51
Frank Vahid