1
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Sistemas Digitais
(EEC1204)
Licenciatura em Engenharia Electrotécnica e de Computadores
http://www.fe.up.pt/~jca/feup/sd 1º ano, 2º semestre
José Carlos Alves (gabinete I228)
email: jca@fe.up.pt
2
FEUP/DEEC - Sistemas Digitais
Sistemas Digitais
• Docentes
– José Carlos Alves (jca@fe.up.pt) - aulas teóricas
– Hélio Sousa Mendonça (hsm@fe.up.pt) - aulas práticas
• WWW
– http://www.fe.up.pt/~jca/feup/sd
• Bibliografia
– J.F.Wakerly, Digital Design – Principles and Practices, Prentice
Hall, 3rd Edition, 2000 (http://www.ddpp.com)
– Apontamentos em produção (cap. 1, 2, 3 e 4 já disponíveis) – Transparências usadas nas aulas teóricas (com notas de apoio)
3
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Aulas práticas
• Exercícios
– Caderno de exercícios
– Exames anteriores de SD e correcções
– Exames anteriores de Electrónica Digital (LEIC)
• Laboratório
– Análise e projecto de sistemas digitais (4 aulas)
• Com o sistema de projecto da XILINX
– http://www.xilinx.com
– Usando o FEUPix (disponível nos laboratórios) » Requer o software de projecto da XILINX » http://www.fe.up.pt/~jca/FEUPix
Avaliação
• Avaliação distribuída sem exame final
– 2 provas intercalares de avaliação (12 valores)
• 1 hora, no horário das aulas teóricas • 6 valores cada
– 3 exercícios retirados de provas anteriores (8 valores)
• 30 min. no final das aulas práticas • cotação
– exercício 1 e 2: 2.5 valores cada; exercício 3: 3 valores
5
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Calendário 2003/2004
Fev Mar Abr Mai Jun
Prova intercalar de avaliação: 28 de Abril e 9 de Junho (na aula teórica) Exercícios: semanas de 22 de Março, 19 de Abril e 24 de Maio Laboratórios: semanas de 24 de Fevereiro, 31 de Março e 2 de Junho Introdução
Representação de informação Álgebra de Boole
Circuitos lógicos combinacionais Circuitos lógicos sequenciais
Introdução à electrónica digital
1 2 3 4 5 6 7/P 7/P 8 9 10 11 12 13 14 15
6
FEUP/DEEC - Sistemas Digitais
Sistemas Digitais – o que são?
• Processamento de informação
– Informação representada em binário (1 e 0)
– Electrónico: pequeno e barato
(e fácil de projectar...)– Função do sistema digital
• define a relação entre entradas e saídas digitais
entradas saídas
10101001 sistema 00111011
7
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Sistemas (electrónicos) digitais
• importantes áreas de aplicação
– computação pessoal (PCs, PDAs, calculadoras) – comunicações móveis
– televisão digital – áudio digital
– automóvel (ABS, air-bags, controlo do motor) – controlo industrial
– simuladores – diversão – ...
Evolução
• “melhoria” exponencial dos circuitos integrados
– maior rapidez, menor tamanho e energia consumida – lei de Moore: cada 18 meses o tamanho reduz para metade
• gerações de computadores
– sistemas electromecânicos (1944) – válvulas electrónicas (1946)
• ENIAC: 5000 adições por segundo, 140KW, 30 tons.
– transístores (1958)
– circuitos integrados (1965) – microprocessador (1972)
– circuitos integrados de alto nível de integração (VLSI)
9
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Um sistema electrónico actual
10
FEUP/DEEC - Sistemas Digitais
Dispositivos electrónicos
Transístor
Circuito integrado SSI (Small Scale Integration)
dezenas de transístores Circuito integrado VLSI
(Very Large Scale Integration) milhões de transístores
0 10 20 mm
11
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Circuitos integrados
35 mm2 9 mm2 área de silício 0 10 20 mmFase final do fabrico de um CI
(backend)
Wafer
Lead frame
circuito encapsulado
13
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Circuitos integrados
densidade de integração: dezenas de milhões de transístores num chip rapidez: uma adição de números inteiros em 0.0000000005 s (0.5 ns)
energia: poucos watts em trabalho, alguns µwatt em repouso
1.5µ área A 0.7µ área 0.22A 0.13µ área 0.0075A 0.35µ área 0.054A
área e “tamanho” do processo de fabrico
1992 2001 2003
0.09µ área 0.0036A
14
FEUP/DEEC - Sistemas Digitais
Controlo digital de um depósito de água
electro-válvula nível máximo nível mínimo sistema digital de controlo entrada de água saída de água CHEIO VAZIO ABRE
Apenas é importante saber se foi atingido ou não o nível máximo ou o nível mínimo Como escrever um programa
que realize a função de controlo digital?
ABRE = 0; enquanto ligado se VAZIO == 0 ABRE = 1; senão se ABRE == 1 se CHEIO == 1 ABRE = 0;
15
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Controlo analógico do depósito de água
bóia entrada
de água
saída de água válvula
O caudal de água varia de forma contínua com o nível de água no tanque Qual é a relação entre o nível de água e o caudal que a válvula deixa entrar?
Digital vs. analógico
t caudal digital
válvula abre válvula fecha caudal máximo caudal mínimo (zero) t caudal analógico descarga caudal máximo caudal mínimo (zero) enchimento
a subida do nivel da água vai fechando a válvula
bóia entrada de água saída de água válvula electro-válvula nível máximo nível mínimo sistema digi tal de controlo entrada de água saída de água CHEIO VAZIO ABRE
17
FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Lâmpada ligada (1) e desligada (0)
t 220V 0V 180V 40V 240V t estado da lâmpada lâmpada ligada (1) lâmpada desligada (0) estado indefinido ligada desligada períodos de transição 0 1 0 1 18 FEUP/DEEC - Sistemas Digitais
Interface com o mundo
• Entradas (naturalmente) digitais:
– Interruptores: ligado (1) ou desligado (0)
– Botões de pressão: premido (1) ou não premido (0)
– Sensores de luz, proximidade, etc...
• Saídas digitais:
– LED: aceso (1) ou apagado (0)
– Motor: em movimento (1) ou parado (0)
– Electro-íman, válvulas, torneiras, etc...
19 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Zeros e uns?
• Informação codificada em 2 estados: 0 e 1
– “0” representado por tensões eléctricas baixas
– “1” representado por tensões eléctricas altas
• Circuitos electrónicos digitais
– construídos com interruptores (transistores)
– Entendem as entradas como “0” ou “1”...
– ... e produzem na saída tensões altas ou baixas
Circuitos digitais
B A A.B B A A+B A A E (AND) OU (OR) NÃO (NOT)função lógica símbolo (porta lógica) tabela de verdade
A A 0 1 1 0 A B A.B 0 0 0 0 1 0 1 0 0 1 1 1 A B A+B 0 0 0 0 1 1 1 0 1 1 1 1 B A C F(A,B,C) = ((C+B).A)+(A.B) A B C F(A,B,C) 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 3.5V 0V 1.5V 5V CMOS 1 0 2.7V 0V 0.8V 5V TT L 1 0 regiões inválidas
21 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Texto
85, 109, 32, 116, 101, 120, 116, 111, 13, 10 101, 109, 32, 65, 83, 67, 73, 73 nova linha códigos ASCII (em decimal)caracteres
ASCII - American Standard Code for Information Interchange
22 FEUP/DEEC - Sistemas Digitais
Áudio
t 127 -127 63 31 95 0 -95 -31 -63 -19 32 87 94 80 14 -43... amplitude do sinal nos instantes de amostragem:período de amostragem (125µs para fs=8KHz)
sinal analógico amostra
23 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Imagens
67 74
86
Um pixel
Maria Eugénia de Oliveira Botelho 1921
Interface analógico-digital
A/ D V(t) 1 0 1 1 0 0 1 0 1 1 0 0 D/ A 1 0 1 1 0 0 1 0 1 1 0 0 V( t) V( t) t 127 63 0 -63 t -127 Asinal analógico original
sinal digital 127 63 0 -63 t -127 A t V( t) sinal digital
sinal analógico reconstruído
V( t)
t
25 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Mostradores com LEDs
a b c d e f g a b c d e f g a=1 b=1 c=0 d=1 e=1 f=0 g=1 a=0 b=1 c=1 d=0 e=0 f=1 g=1 a=0 b=1 c=1 d=0 e=0 f=0 g=0 entradas LEDs 26 FEUP/DEEC - Sistemas Digitais
Representação de informação
em binário
• Sistemas Digitais processam dados
– Codificados apenas com “0” e “1”
Um bit (binary digit): Duas coisas diferentes:
números, cores, estados, etc... N bits: 2Nentidades diferentes
Exemplo: com 3 bits:
000, 001, 010, 011, 100, 101, 110, 111 Como representar números usando “0” e “1”?
27 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Representação de números
• Números inteiros
– Sistema posicional
Em base 10 (10 dígitos: 0,1,2,3,4,5,6,7, 8 e 9) 45210= 4x102+5x101+2x100 Em base 2 (2 dígitos, 1 e 0) 11012= 1x23+1x22 +0x21 +1x20 = 1310 Potências inteiras de 2 20=1, 21=2, 22=4, 23=8, ... 27=128, 28=256, ...Representação de números
• Como representar um número em base 2?
– Dividindo sucessivamente por 2:
37 2 17 18 2 1 0 9 2 1 4 2 0 2 2 0 1
Bit menos significativo
(o da direita, LSB)
Bit mais significativo
(o da esquerda, MSB)
29 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Números fraccionários
• À direita do ponto fraccionário
– Potências negativas da base:
Representar a parte fraccionária em base 2
• Multiplicando sucessivamente por 2:
Em base 10: 35.7210= 3x101+5x100 +7x10-1 +2x10-2 Em base 2: 110.1012= 1x22+1x21 +0x20 +1x2-1 +0x2-2 +1x2-3 = 6.62510 0.7210 : 0.72x2 = 1.44 0.44x2 = 0.88 0.88x2 = 1.76 0.76x2 = 1.52 ... 30 FEUP/DEEC - Sistemas Digitais
Sistema octal (base 8)
• Caso especial porque 8=2
3– cada dígito octal é representado por 3 bits
• 2348= 0100111002 • 67.158= 110111.0011012
– interesse: “compactar” representação binária
– exemplo: comando
chmod(unix/linux)
• chmod 542 filename
31 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Sistema hexadecimal (base 16)
• Caso especial porque 16=2
4– 16 dígitos:
0
a
9
e
A
a
F
(
A
vale 10,
F
vale 15)
– cada dígito hex é representado por 4 bits
• 2B416= 0010101101002
• AA.1C16= 10101010.000111002
– interesse: “compactar” representação binária
– mudanças entre base 8 e 16
• fácil usando base 2!
Adição binária
4 3 4 7 8 9 1 4 1 3 2 6 1 + 1 1 1 0 transporte 1 1 0 1 0 1 0 0 1 0 0 0 1 + 0 1 1 0 transporte um mais um dá dois (102) escreve-se 0 e gera-se o transporte 1 para a soma seguinte1 3 4 1 7 + em decimal
33 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Subtracção binária
1 1 0 1 1 0 1 0 1 1 -adicionar o borrow ao diminuidor + 1 0 1 1 0 1 1 0 1 0 1 1 0 1 -um para dois (102) dá 1 zero para um dá um 1 1 0 1 0 1 1 0 1 1 -borrow 1 0 1 0 0 1 0 1 1 0 1 1 -correcção - 1 subtrair o borrow do diminuendo 1 1 1 1 0 1 1 0 1 0 0 1 1 1 -zero para um dá um um para um dá zero 1 0 0 1 0 1 1 0 1 1 1 -um para dois dá um e vai um... borrow 1 0usou-se um 1 do andar seguinte (gerou-se um borrow) 0 0 0 1 0 1 1 0 0 1 1 1 -- 1 subtrair o borrow do diminuendo 1 correcção
zero para zero dá zero
1 1 0 1 1 1 1 0 0 1 1 1 -+ 1 0 1 1 0 um para um dá zero adicionar o borrow ao diminuidor 34 FEUP/DEEC - Sistemas Digitais
Multiplicação binária
1 0 1 1 0 1 0 1 1 0 1 1 0 0 0 0 0 1 0 1 10 0 + 0 0 0 00 0 0 0 1 1 0 1 1 1 x zero vezes 1011 um vezes 1011 1 1 5 5 5 x em decimal Multiplicar X por 2Nequivale a deslocar os bits de X de N posições para a esquerda 2610= 00110102
35 FEUP/DEEC - Sistemas Digitais
http://www.fe.up.pt/~jca/feup/sd
Divisão binária
1 0 0 1 0 1 1 1 1 0 10 0 0 0
divisor não cabe em 1
divisor não cabe em 1001 ... 1 0 0 1 0 1 1 01 1 0 1 0 01 0 1 1 1 0 1 - 0 0 0 0 1 divisor já cabe em 10010 subtrai divisor ao dividendo 1 0 0 1 0 1 1 01 1 0 1 0 01 0 1 1 1 1 0 1 - 0 0 0 0 1 0
divisor não cabe em 1011 próximo dígito 1 0 0 1 0 1 1 01 1 0 1 0 01 0 1 1 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 - 0 0 0 0 1 0 1 -resto quociente próximo dígito divisor já cabe em 10111 subtrai divisor ao dividendo
Dimensão de dados e overflow
1 0 0 1 0 0 1 1 1 1 0 0 + 1 1 0 0 0 1 1 1 1 0 0 1 1 +
1 transporte = 1: ocorre overflow ( 1 2 ) ( 5 ) ( 3 ) ( 9 ) ( 3 ) ( 1 2 )
resultado com 4 bits incorrecto resultado com 4 bits correcto
0 transporte = 0: não ocorre overflow
1 1 0 1 0 1 1 0 0 1 1 1 -0 1 1 -0 1 1 0 1 1 1 0 0 1
-1 borrow = 1: ocorre overflow
( 6 ) ( 1 3 ) ( 9 ) ( 1 3 ) ( 6 ) ( 7 )
resultado com 4 bits incorrecto resultado com 4 bits correcto
0 borrow = 0: não ocorre overflow
Adição Subtracção