1
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
1 © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
2
http://www.youtube.com/watch?v=vXVFHFIVVgQ
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
3 © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
4 Jorge Lobo 2013
Laboratório de Sistemas Digitais
DEPARTAMENTO DE ENGENHARIA ELECTROTÉCNICA E DE COMPUTADORES FACULDADE DE CIÊNCIAS E TECNOLOGIA UNIVERSIDADE DE COIMBRA
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
5
• Docentes – Doutor Jorge Nuno de Almeida e Sousa Almada Lobo
• gabinete 1.10 • [email protected] • www.deec.uc.pt/~jlobo • TP1, PL1,PL3, PL9
– Doutora Rita Girão Silva • PL5, PL5
– Doutor Paulo Menezes • PL6, PL7
– Doutor Tiago Morgado • PL2, PL8
• Página da cadeira – www.deec.uc.pt/~jlobo/LSD – inforestudante ... Laboratório de Sistemas Digitais 2013/2014
Apresentação
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
6
Objectivos • Aquisição de conhecimentos sobre:
– funcionamento interno de circuitos digitais; – projecto de circuitos digitais síncronos e assíncronos, recorrendo
lógica standard e escrita de módulos VHDL, e sua implementação em dispositivos de lógica programável.
2
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
7
Programa • Tópicos principais:
– Introdução a sistemas digitais, sistemas de numeração e álgebra de Boole.
– Circuitos lógicos combinacionais. – Circuitos lógicos sequenciais, controladores e autómatos finitos. – Linguagens de descrição de hardware (HDL), VHDL. – Elementos de suporte para o fluxo de dados (datapath). – Projecto ao nível de transferências de registos (RTL). – Optimização e compromissos no projecto de sistemas digitais. – Tecnologias de implementação física, SSI ICs, ASICs, FPGAs, PLDs. – Introdução ao processador programável
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
8
• Bibliografia Principal – Frank Vahid, “Digital Design”,
John Wiley and Sons, 2007. – Frank Vahid, Roman Lysecky, “
VHDL for Digital Design”, John Wiley and Sons, 2007.
• Bibliografia Complementar – David Money Harris, Sarah L. Harris, “
Digital Design and Computer Architecture”, Morgan Kaufmann, 2007.
– John Wakerly, “Digital Design Principles and Practices”, Prentice Hall, 3rd edition, 2001.
– Eduardo Sá Marta, “Sistemas Digitais”, CD-ROM na biblioteca do DEEC.
Bibliografia
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
9
Aulas Laboratoriais Aulas de laboratório (3h/semana) • Síntese e realização experimental de circuitos digitais:
– Introdução ao software de projecto para composição gráfica, simulação e ensaio em placas de lógica programável com ferramentas da Altera, 1 trabalho com montagem em breadboards, restantes na placa DE2 com FPGA, projecto com composição gráfica e mais tarde VHDL.
– 9 trabalhos de laboratório todos avaliados (grupos de 2)
• Enunciados no inforestudante.fct.uc.pt • Implica preparação prévia • Avaliação pelo docente durante a realização do trabalho
– 2 testes laboratoriais individuais – 12 valores da nota final
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
10
Avaliação • Parte laboratorial (12 valores = 3 + 9)
– 3 valores: 9 trabalhos de laboratório todos avaliados (checklist) – 9 valores: 2 testes laboratoriais individuais (4+5)
• LabT1: 28Out->2Nov; LabT2: 9Dez->13Dez
• Provas de avaliação de “papel e lápis” (8 valores) – O aluno pode optar por:
• Avaliação distribuída: 2 Frequências ao longo do semestre: – Em Novembro, dia 14 às 14h00 (no horário da aula) – Em Dezembro, dia 11 às 14h30
• Exame final (para 8 valores): – admissão a exame está dependente de obter classificação mínima
de 50% nos trabalhos laboratoriais e nos testes laboratoriais. – Ao entregar o exame final elimina avaliação distribuída.
• Mínimos para aprovação: 50% em todas as componentes – 1,5 em 3; 4,5 em 9; 4,0 em 8.
Nota: A não admissão a exame implica automaticamente a reprovação à disciplina no ano lectivo de 2013/14.
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
11
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 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. 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 may obtain PowerPoint source or obtain special use permissions from Wiley – see http://www.ddvahid.com for information.
Slides adaptados a partir da versão original do autor do livro adoptado: Digital Design, First Edition, by Frank Vahid, John Wiley and Sons Publishers, 2007. http://www.ddvahid.com
Laboratório de Sistemas Digitais
Capítulo 1
Introdução
Note: Slides with animation are denoted with a small red "a" near the animated items
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
12
Porquê Estudar Sistemas Digitais? • Equipamento electrónico a convergir para digital • Circuitos integrados (chips) cada vez mais
pequenos e maior capacidade de processamento. • Permite:
– Melhorar produtos: automóveis, maquinas fotográficas, equipamento de som, telefones, equipamento médico,...
– Novos produtos: PDAs, Ipod, roupa inteligente ... • São os sistemas embutidos (embedded systems)
– Milhares de novos dispositivos todos os anos – Mercado emergente: oportunidade de emprego $$
1995
Portable music players
1997
Satellites
1999 Cell phones
2001
DVD players Video
recorders Musical instruments
2003 Cameras TVs ???
2005 2007 • Years shown above indicate when digital version began to dominate
– (Not the first year that a digital version appeared)
1.1
3
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
13
Porquê Estudar Sistemas Digitais? • “Espreitar” para dentro dos computadores
– Conhecimento profundo leva a maior confiança e competência do programador consciente dos compromissos de recursos de hardware.
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
14
Lei de Moore
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
15
Lei de Moore
Gordon Moore co-fundador
da Intel"
# de
Tra
nsís
tore
s nu
m C
I"
1965: �the number of transistors on a chip will double about every two years�
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
16
Lei de Moore... • O nº de transistores vendidos em 2003 foi 100x a população mundial de formigas! • Se os vôos de passageiros tivessem melhorado como os transistores, hoje seria
possivel viajar de Nova York a Paris por 1 centimo em menos de um segundo!
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
17
...?
http://www.youtube.com/watch?v=bm6ScvNygUU © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
18
4
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
19
From Sand to Silicon_ the Making of a Chip
http://newsroom.intel.com/docs/DOC-2476 © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
20
O que quer dizer “Digital”?
valo
r
tempo
valo
r
tempo
3 4 2 1
2 sinal digital
• Sinal digital – número finito de valores possíveis – gama de valores discretos
• Ex: botão seleccionado
0 1 2 3 4 Valores possíveis:
1.00, 1.01, 2.0000009, ... infinitas possibilidades
Valores possíveis: 0, 1, 2, 3, ou 4. apenas estes!
1.2
• Sinal analógico – infinidade de valores possíveis
• Ex: sinal eléctrico provocado por som capturado num microfone
sinal analógico
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
21
Sinais digitais com apenas dois valores: Binário • Binário gama de valores discretos
reduz-se a apenas dois valores – Tipicamente representados por 0 e 1
• mas à partida não lhes é atribuído nenhum significado numérico.
– Um dígito binário = binary digit = bit – Só iremos considerar sinais digitais binários – É mais comum recorrer a binário porque:
• Transístores funcionam como interruptores, dois valores ligado ou desligado (on/off)
• Armazenar ou transmitir dois valores é mais fácil que três ou mais.
valo
r
tempo
1 0
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
22
Exemplo dos benefícios da digitalização • Sinal analógico (ex, áudio) pode
perder qualidade – Níveis de voltagem degradam-se
• Versão digitalizada permite
armazenar/copiar/transmitir de forma quase perfeita.
– “Amostrar” voltagem a uma determinada taxa
– guardar amostra codificando em bits
– Níveis de voltagem degradam-se na mesma
– Mas conseguimos distinguir entre 0s de 1s
tempo Vo
lts
0 1 2 3
sinal original
trans
mis
são
long
a (e
x. te
lem
óvel
)
tempo 0 1 2 3
sinal recebido
Como corrigir?
trans
mis
são
long
a (e
x. te
lem
óvel
)
01 10 11 10 11
igual
tempo
01 10 11 10 11
Volts
sinal digitalizado
tempo 0 1
A/D
Volts
0 1 2 3
d2a Codificação escolhida: 1 V: “01” 2 V: “10” 3 V: “11”
tempo Fácil distinguir 0s e 1s, podemos reconstruir
0 1
Sinal digitalizado não é perfeito, mas aumentar a taxa de amostragem, número de bits na codificação e filtrar melhora.
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
23
Digitalização de Áudio: Compressão • Áudio digitalizado pode ser
comprimido – ex. MP3 – Um CD pode ter cerca de 20
músicas não comprimidas, mas cerca de 200 comprimidas
• Compressão também se faz para imagem digital (jpeg), filmes (mpeg), e outros dados (zip, etc)
• e mais…
0000000000 0000000000 0000001111 1111111111!
00 00 10000001111 01 !
Exemplo de técnica de compressão: 00 --> 0000000000 01 --> 1111111111 1X --> X
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
24
Analógico versus Digital Vantagens dos sistemas digitais em relação aos
sistemas analógicos?
...por que razão é que “está tudo a tender para o digital” (áudio, e agora vídeo) ?
...e qual a razão de isto não ter acontecido há mais tempo ?
A esmagadora maioria do equipamento electrónico que nos rodeia é constituído por sistemas digitais, e não analógicos … … apesar de que uma mesma função é normalmente realizada de uma forma mais compacta por um circuito analógico do que por um circuito digital
Adaptado dos apontamentos de Sistemas Digitais 2006/07 do Eng.º Eduardo Sá Marta
5
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
25
Analógico versus Digital • Somador analógico:
– Algumas resistências e menos de 10 transístores
R
-
R
R
V1
V2
Vout = Cte . (V1 + V2)
+
• Somador digital: – resolução modesta exige
centenas de transístores.
somador de 4 bits
Adaptado dos apontamentos de Sistemas Digitais 2006/07 do Eng.º Eduardo Sá Marta
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
26
Analógico versus Digital “passagem para o digital” não podia ter acontecido “há mais tempo”
– digital necessita de muito mais transístores – crescente miniaturização é que permite cada vez mais aplicações
• Motivos para optar por digital: – necessidade de exactidão:
• um banco não pode usar somadores analógicos para actualizar as contas dos clientes…
– funções complexas: • número muito elevado de componentes • a acumulação de imprecisões ao longo dos sistemas analógicos
– fiabilidade e repetibilidade: • Imunidade ao ruído • Regeneração do sinal • Códigos de correcção de erros
Adaptado dos apontamentos de Sistemas Digitais 2006/07 do Eng.º Eduardo Sá Marta
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
27
Como codificar dados em binário para trabalhar com sistemas digitais?
• Alguns já são binários – Botão seleccionado (1)
ou não (0) • Outros já são digitais
(valores discretos) – Basta codificar em binário – ex. codificar 4 teclas:
red=001, blue=010, ... • Dados analógicos
– Necessário conversor analógico-para-digital (A/D)
– Tal como no áudio, temos que amostrar e codificar com bits
0 button
1 g r een black blue r ed
0 0 0
r ed
0 1 0
g r een black blue
1 0 0
g r een black blue r ed
temperature sensor
air
0 0 1 1 0 0 0 0
33 degrees
a
sensors and other inputs
Digital System
actuators and other outputs
A2D
D2A
analog phenomena
electric signal
digital data
digital data
electric signal
digital data
digital data
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
28
Como codificar texto: ASCII, Unicode • ASCII:
– 7- (ou 8-) bits para cada letra, algarismo ou símbolo
– ex. ficheiro .txt
• Unicode: – Codificação com 16 bits – Suporte para diversas
línguas – Cada vez mais utilizado
1010010 1010011 1010100 1001100 1001110 1000101 0110000 0101110 0001001
R S T L N E 0 . <tab>
S ymbol En c oding 1110010 1110011 1110100 1101100 1101110 1100101 0111001 0100001 0100000
r s t l n e 9 ! <spa c e>
S ymbol En c oding
Pergunta: O que está escrito nesta sequencia de bits em ASCII (7-bit)?
1010100 1010100 1001100
T T L a
Nota: pequeno “a” a vermelho (a) indica animação
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
29
Como codificar números: Números Binários • Notação posicional, cada posição
representa uma quantidade, o símbolo nessa posição indica quantas vezes temos essa quantidade – Base dez (decimal)
• Dez símbolos: 0, 1, 2, ..., 8, e 9 • Mais de 9 – posição seguinte
– Cada posição é uma potencia de 10 • Porquê dez?
– Temos 10 dedos nas mãos! – Base dois (binário)
• Dois símbolos: 0 e 1 • Mais que 1 – posição seguinte
– Cada posição é uma potencia de 2
2 4 2 3 2 2 1 0 1
2 1 2 0
10 4 10 3 10 2 5 2 3
10 1 10 0
Quanto é? + =
4 1 5 + =
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
30
Como codificar números: Números Binários • Trabalhar com números binários
– Em base dez é bom conhecer as potências de 10 • um, dez, cem, mil, dez mil, ...
– Para trabalhar em base dois, ajuda conhecer as potências de 2
• Um, dois, quatro, oito, dezasseis, trinta e dois, sessenta e quatro, cento e vinte e oito, …
– (mas ao contrário do sistema decimal, não temos nomes para as potencias de dois…)
2 4 2 3 2 2 2 1 2 0 2 9 2 8 2 7 2 6 2 5
16 8 4 2 1 512 256 128 64 32
6
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
31
Converter números decimais para binário: (fácil para humanos)
• Objectivo – Obter os pesos binários cuja soma
dá a quantidade decimal pretendida
• da esquerda para a direita
• (direita para esquerda – podemos colocar 1s que não deviam lá estar).
Número decimal pretendido: 12
1 2 4 8 16 32 1 =32
demais
1 2 4 8 16 32 0 =16
demais 1
a
1 2 4 8 16 32 0 =8
Ok, continuamos 0 1
1 2 4 8 16 32 0 =8+4=12
Já está 0 1 1
1 2 4 8 16 32 0 resposta 0 1 1 0 0
1 2 4 8 16 32
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
32
Converter números decimais para binário: Método da Subtracção (fácil para humanos)
• Método da Subtracção – Para facilitar, podemos subtrair o
primeiro peso binário seleccionado ao número pretendido
• Recomeçamos da posição onde nos encontramos com o que resta do número.
• Paramos quanto só restar 0
Número pretendido: 12
1 2 4 8 16 32 1 32 é
demais
1 2 4 8 16 32 0 16 é
demais 1
a
1 2 4 8 16 32 0 12 – 8 = 4 0 1
1 2 4 8 16 32 0 4-4=0
Já está 0 1 1
1 2 4 8 16 32 0 resposta 0 1 1 0 0
1 2 4 8 16 32
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
33
Converter números decimais para binário: Exemplo do Método da Subtracção
1. P ut 1 in highest pla c e P la c e 32 t oo bi g , but 16 w o r k s .
2. Upd a t e decimal number D ecimal not z e r o , r etu r n t o S t ep 1
1. P ut 1 in highest pla c e N e x t pla c e is 8, t oo big (8>7) 4 w o r ks (4<7) 2. Upd a t e decimal number
D ecimal number not z e r o , r etu r n t o S t ep 1
1. P ut 1 in highest pla c e N e x t pla c e is 2, w o r ks (2<3) 2. Upd a t e decimal number
D ecimal not z e r o , r etu r n t o S t ep 1 1. P ut 1 in highest pla c e N e x t pla c e is 1, w o r ks (1=1) 2. Upd a t e decimal number
D ecimal number is z e r o , done
D ecimal Bina r y (cu r r e n t v alue
is 16) 23 1 16
–16 7
–4 3
0 1 0
8 0 4 0
2 (cu r r e n t v alue
is 20) 16 1 0 1 0
8 1 4 0
2
–2 1
–1 0
(cu r r e n t v alue is 22) 16 1 0
1 0 8 1
4 1 2
(cu r r e n t v alue is 23) 16 1 1
1 0 8 1
4 1 2
• P: Converta o número “23” de decimal para binário, 23(10)=???? (2)
23 -16
7
R: número que resta Número Binário 23
32 16 8 4 2 1 0 0 0 0 0 0
32 0
16 1
8 0
4 0
2 0
1 0
7 -4 3
4 -2 1
32 0
16 1
8 0
4 1
2 1
1 0
32 0
16 1
8 0
4 1
2 1
1 1
a
1 -1 0
Já está! 23 em decimal é 10111 em binário.
32 0
16 1
8 0
4 1
2 0
1 0
8 é maior que 7, não dá
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
34
Converter números binários para decimal? (fácil para humanos)
Método da Adição a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
35
Converter números decimais para binário: Método da Divisão (bom para computadores)
• Dividir sucessivamente por 2, construir o número binário a partir dos restos – Continuar a dividir até ter cociente 0.
• Exemplo: converter o número decimal 26 para binário
?
1 1 0 1 0 16 8 4 2 1
LSB: bit menos significativo (menor peso 20)
MSB: bit mais significativo (peso 24)
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
36
Base Dezasseis: Utilizada em projecto de sistemas digitais
• Conveniente pois cada posição representa quatro posições em base dois, pois 16 é uma potência de 2, 24
– Forma compacta de representar números binários
– Fácil leitura para humanos • Conhecido como hexadecimal
16 4 16 3 16 2 8 A F 8
1000 1010 1111 A F
16 1 16 0
0000 0001 0010 0011 0100 0101 0110 0111
0 1 2 3 4 5 6 7
h e x bina r y 1000 1001 1010 1011 1100 1101 1110 1111
8 9 A B C D E F
h e x bina r y
Escrever 11110000 em hexadecimal
F 0 a
a
7
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
37
Notação Posicional • Números representados em base B ⇒ B símbolos por dígito:
– Base 10 (Decimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – Base 2 (Binário): 0, 1 – Base 8 (Octal): 0, 1, 2, 3, 4, 5, 6, 7 – Base 16 (Hexadecimal): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f
• Representação de números: – d31d30 ... d1d0 é um número de 32 dígitos em base B – valor = d31 × B31 + d30 × B30 + ... + d1 × B1 + d0 × B0
• Quantos valores diferentes podemos representar com N dígitos? – dN dN-1 ... d1 d0 ⇒ B x B ... B x B ⇒ BN valores diferentes – Podemos representar a gama de inteiros positivos entre 0 e BN-1
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
38
Como passar de binário para octal? • Dado um número binário, podemos agrupar 4 a 4 da direita para a
esquerda para identificar os digitos hexadecimais correspondentes e passar o número para hexadecimal (2^4=16).
• Para octal....?
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
39
421(10) = ????(16) = ????(8) = ????(2)
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
40
Implementar Sistemas Digitais: Programar Microprocessadores versus Projectar Circuitos Digitais
• O microprocessador é uma escolha comum para implementar sistemas digitais
– Fácil de programar – Barato
(até por 1€!) – Disponível sem fazer
projecto digital
I 3 I 4 I 5 I 6 I 7
I 2 I 1 I 0
P3 P4 P5 P6 P7
P2 P1 P0 m
icroprocessador
void main() { while (1) { P0 = I0 && !I1; } }
0 F
b
a
1 0 1 0 1
6:00 7:05 7:06 9:00 9:01 time
Detector de movimento nocturno
Microprocessador programado
circuito Digital
“á medida”
1.3
F = a AND (NOT b)
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
41
Projecto Sistemas Digitais: Quando os Microprocessadores Não Satisfazem Requisitos
Se é tão fácil e barato com Microprocessadores (µPs ), porquê projectar circuitos digitais? • µP pode ser:
– Lento demais – Grande demais – Gastar muita energia
• Projectar novos µPs !
( a )
Micro- processor
(Read, Compress, and Store) Memory
Image Sensor
( b )
( c )
Tempos de execução para maquina fotográfica digital (em segundos)
P: quanto demora nas diferentes opções de implementação?
a
5+8+1 =14 sec
.1+.5+.8 =1.4 sec
.1+.5+1 =1.6 sec
Bom compromisso
Read circuit
Compress circuit
Memory Store circuit
Image Sensor
Compress circuit
Microprocessor (Store) Memory
Image Sensor Read circuit
Task Microprocessor Custom Digital Circuit
Read 5 0.1
Compress 8 0.5
Store 1 0.8
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
42
Sumário do Capítulo 1 • Sistemas digitais estão em todo lado
– Dentro de computadores – Numa enorme variedade de produtos e equipamento electrónico
(sistemas embutidos ou embebidos) • Sistemas digitais utilizam 0s e 1s
– Digitalizar sinais analógicos traz diversos benefícios: • Maior qualidade de armazenamento e transmissão. • Exactidão dos resultados • Fiabilidade e Repetibilidade • Imunidade ao ruído mesmo com funções complexas
– Codificar números inteiros com 0s e 1s: números Binários • Microprocessadores (também digitais) podem implementar muitos
sistemas digitais de forma simples e barata – Mas nem sempre são suficientemente bons – necessário circuitos digitais dedicados feitos “à medida”
8
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
43
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 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. 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 may obtain PowerPoint source or obtain special use permissions from Wiley – see http://www.ddvahid.com for information.
Slides adaptados a partir da versão original do autor do livro adoptado: Digital Design, First Edition, by Frank Vahid, John Wiley and Sons Publishers, 2007. http://www.ddvahid.com
Laboratório de Sistemas Digitais
Capítulo 2 Circuitos Lógicos Combinacionais
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
44
Introdução
Circuito digital
combinacional
1 a
b
1 F 0
1 a
b
? F 0
• Vamos aprender a projectar circuitos digitais!• Começamos pelos mais simples:!
– Circuito combinacional!• A saída do circuito digital só depende da combinação
actual das entradas
Circuito Digital
2.1
Circuito digital
sequencial
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
45
Interruptores • Interruptores electrónicos são a base
de circuitos digitais binários. – Terminologia eléctrica:
• V - Voltagem: diferença de potencial eléctrico entre dois pontos
– Analogia: pressão de água • I - Corrente: Fluxo de partículas com
carga eléctrica – Analogia: caudal de água
• R - Resistência: tendência dos fios de se opor á passagem de corrente eléctrica.
– Analogia: calibre dum cano de • V = I × R (Lei de Ohm)
4.5 A 4.5 A
4.5 A
2 ohm
9V
0 V 9 V
+ –
2.2
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
46
Interruptores • Interruptor tem 3 partes
– Fonte de entrada, e saída • Corrente quer fluir da fonte de
entrada para a saída – Controlo
• Voltagem que controla se a corrente pode passar ou não
• Cada vez mais pequeno – 1930s: Relés – 1940s: Válvulas – 1950s: Transístor – 1960s: Circuitos Integrados (CIs)
• Inicialmente só poucos transístores por CI
• Depois dezenas, centenas, milhares, …
“desligado”
“ligado”
saída
saída fonte de entrada
entrada de controlo
( b )
relé válvula
transístor
CI
a
entrada de controlo
fonte de entrada
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
47
O Transístor CMOS • transístor CMOS
– Interruptor básico nos CIs modernos
gate
source drainoxide
A positivevoltage here...
...attracts electrons here,turning the channel
between source and draininto a conductor.
(a)
IC package
IC
não conduz
0
conduz
1 gate
nMOS
não conduz
1 gate
pMOS
conduz
0
Silício – nem condutor nem não condutor: Semicondutor
2.3
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
48
Portas Lógicas Booleanas Blocos de Construção para Circuitos Digitas
(porque é difícil trabalhar directamente com interruptores)
• É melhor trabalhar com ‘Portas Lógicas’ do que com interruptores (transístores)
» Porquê?...
2.4
9
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
49
Álgebra de Boole e Circuitos Digitais • Para perceber os benefícios de “portas lógicas” vs.
interruptores, temos que primeiro perceber álgebra de Boole
• Álgebra “tradicional” – Variáveis representam números reais – Operadores operam nas variáveis, devolvem números reais
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
50
Álgebra de Boole Uma Álgebra de Boole é um sistema algébrico B = {A,+,.} formado por: • conjunto gerador A • duas operações, +, . , designadas por soma e produto • Satisfazendo os seguintes postulados:
– (I) (Propriedade de Fecho)
– (II) verifica-se
1. (Propriedade Comutativa) 2. (Propriedade Associativa) 3. (Propriedade Distributiva) 4. (Elemento neutro) 5. (Complemento)
( ) ( )AyxAyxAyx ∈∧∈+∀ ∈ .,
Azyx ∈∀ ,,
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
51
Álgebra de Boole e Circuitos Digitais • Conjunto gerador A={0,1} • Operação soma (+) corresponde ao OU lógico • Operação produto (.) corresponde ao E lógico • Verifica todos os postulados:
– Propriedade de Fecho √ – Propriedade Comutativa √ – Propriedade Associativa √ – Propriedade Distributiva √ – Existe Elemento neutro √ – Existe Complemento √
∴ Álgebra de Boole Binária Todos os teoremas da álgebra de Boole são válidos !
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
52
Álgebra de Boole e Circuitos Digitais • Álgebra de Boole Binária
– Circuitos digitais distinguem apenas dois níveis lógicos: • Variáveis representam apenas 0 ou 1 • Operadores devolvem apenas 0 ou 1
– Variável lógica (ou de Boole, ou binária ) - tem por domínio os dois valores lógicos, representados pelos símbolos 0 e 1.
– Função lógica (ou de Boole, ou binária ) - tem por contradomínio o conjunto lógico {0, 1}.
• Funções lógicas elementares: – Produto lógico, E (ou intersecção) AND:
• a AND b devolve 1 só quando a=1 e b=1
– Soma lógica, OU (ou reunião) OR: • a OR b devolve 1 se a=1 ou b=1
– Complementação (ou negação, ou inversão) NOT: • NOT a devolve o inverso de a (1 se a=0, 0 se a=1)
a 0 0 1 1
b 0 1 0 1
AND 0 0 0 1
a 0 0 1 1
b 0 1 0 1
OR 0 1 1 1
a 0 1
NOT 1 0 AAF =)(
BABAF ⋅=),(
BABAF +=),(
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
53
Álgebra de Boole e Circuitos Digitais • Desenvolvida em meados do século XIX por George Boole* para
formalizar o pensamento humano – “Vou ao almoço se a Maria ou o João forem, mas não se a Sandra for” – “Vou ao almoço se a Maria for ou o João forem, e se a Sandra não for.”
• Seja F a variável que representa se eu vou ao almoço (1 eu vou, 0 não vou)
• Analogamente m, j e s para a Maria, o João e a Sandra • Temos então F = (m OR j) AND NOT(s)
– Potencialidades interessantes • Cálculo formal
– m=1, j=0, s=1 --> F = (1 OR 0) AND NOT(1) = 1 AND 0 = 0 • Transformação formal
– F = (m and NOT(s)) OR (j and NOT(s)) » Parece diferente, mas é a mesma função » Já vamos ver mais sobre transformações
a 0 0 1 1
b 0 1 0 1
AND 0 0 0 1
a 0 0 1 1
b 0 1 0 1
OR 0 1 1 1
a 0 1
NOT 1 0
[*] George Boole(1815-1864), Matemático britânico. Em 1854, publicou “An Investigation of the Laws of Thought” onde descreveu um sistema algébrico mais tarde designado por álgebra de Boole.
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
54
Calcular funções Booleanas • Determine o valor da função Booleana
F = (a AND b) OR (c AND d) para os seguintes valores das variáveis a, b, c, e d: – P1: a=1, b=1, c=1, d=0.
• resposta: F = (1 AND 1) OR (1 AND 0) = 1 OR 0 = 1. – P2: a=0, b=1, c=0, d=1.
• resposta: F = (0 AND 1) OR (0 AND 1) = 0 OR 0 = 0. – P3: a=1, b=1, c=1, d=1.
• resposta: F = (1 AND 1) OR (1 AND 1) = 1 OR 1 = 1.
a
a 0 0 1 1
b 0 1 0 1
AND 0 0 0 1
a 0 0 1 1
b 0 1 0 1
OR 0 1 1 1
a 0 1
NOT 1 0
10
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
55
Converter para funções Booleanas • Converta as seguintes afirmações para
funções Booleanas – P1. a é 1 e b é 1.
• resposta: F = a AND b – P2. ou a ou b são 1.
• resposta: F = a OR b – P3. a e b não são ambos 0.
• resposta: – (a) opção 1: F = NOT(NOT(a) AND NOT(b)) – (b) opção 2: F = a OR b
– P4. a é 1 e b é 0. • resposta: F = a AND NOT(b)
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
56
Converter para funções Booleanas • P1. Sistema de combate a incêndios deve accionar
extintores se detectar calor excessivo e estiver activado. – resposta: Seja c a variável Booleana que indica “calor excessivo
detectado”, a “sistema activado”, e F “accionar extintores.” A função é dada por: F = c AND a.
• P2. Alarme do automóvel deve disparar se estiver activado, e caso seja abanado ou se abra uma porta. – resposta: Seja a a variável Booleana que indica “alarme
activado”, v “vibração detectada”, p “porta aberta,” e F “disparar alarme.” A função é dada por: F = a AND (v OR p).
– (a) Caso o sensor das postas indique “portas todas fechadas” em vez de “porta aberta” (ou seja p=1 quando estão todas fechadas, e 0 quando alguma está aberta), teríamos a seguinte função: F = a AND (v OR NOT(p)).
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
57
Ligando Álgebra de Boole a Sistemas Digitais
• Implementar operadores Booleanos com transístores – Portas lógicas, (logic gates), ou gates.
• Vamos construir circuitos recorrendo à Matemática! -- um conceito importante:
• demonstrar, provar, deduzir circuitos...
Álgebra de Boole
(1850s)
formalizar pensamento
humano
Relés (1930s)
Shannon (1938)
Sistemas Digitais
Aplicou a álgebra de Boole no projecto de circuitos baseados
em relés
x 0 0 1 1
y 0 1 0 1
F 0 0 0 1
x 0 0 1 1
y 0 1 0 1
F 0 1 1 1
x 0 1
F 1 0
F x x y F
OR N O T F x
y AND
0
1
y
x
x
y F
1
0
F x
Símbolo
Tabela de verdade
Circuito com Transístores
0
1
x y F
y x
Nota: estas implementações de OR/AND não são eficientes, como veremos mais á frente.
Comutação em centrais telefónicas e outras aplicações
electrónicas
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
58
Diagramas temporais para a porta lógicas
0 1
1
0 tempo
F
x 1 0 x
y
F 1
1
0
0
tempo
NOT OR AND
1
0x
y
F1
1
0
0
timetempo
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
59
Construir circuitos com portas lógicas
• Exemplo de detector de movimento nocturno do Cap1 – Ligar luz (F=1) quando detecta movimento (a=1) e não detecta luz
(b=0) – F = a AND NOT(b) – Construído com portas lógicas como indicado na figura – Circuito digital implementa função inicialmente descrita
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
60
Exemplo: Converter uma função Booleana num circuito com portas lógicas
• P: Converta a seguinte função para circuito lógico: F = a AND NOT( b OR NOT(c) )
a F
( a )
a b
c F
( b )
a
F x x y F
OR N O T F x
y AND
11
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
61
Exemplo: Sistema de aviso do cinto de segurança Projectar circuito para luz de aviso • Sensores
– c=1: cinto colocado – i=1: chave na ignição – p=1: pessoa sentada no banco
• Actuador – a=1: pessoa sentada no banco, e cinto
não colocado, e chave na ignição • Captura da função Booleana • Converter função num circuito
– Álgebra de Boole permite a fácil descrição do comportamento pretendido por uma função Booleana e subsequente conversão num circuito
• Como seria projectar o circuito com interruptores?
• As portas lógicas são feitas com interruptores, mas pensamos ao nível de portas lógicas e não de interruptores
a = p AND NOT(c) AND i
i
p
c
a
AvisoCinto
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
62
Desenho de circuitos comportas lógicas
xy
F
no yes
no
not ok
ok
yes
√
√
√
×
×
×
× incorrecto
√ correcto
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
63 © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
64
Álgebra de Boole • Tendo definido as portas lógicas com base na álgebra de Boole, podemos aplicar
métodos algébricos para manipular circuitos – Vamos então ver melhor métodos algébricos Booleanos
• Notação: – a E b, a OU b, e NÃO(a) ou a AND b, a OR b, e NOT(a) é pouco prático – símbolos: a . b (ou a∧b, a * b ou apenas ab), a + b (ou a∨b), e a ou a’
• w = (p AND NOT(s) AND k) OR t → w = p.s.k + t – “w é igual a p e não s e k, ou t” – Embora os símbolos venham da álgebra normal, não se lê “mais” nem “vezes”, mas antes “ou” e “e”, e
para a negação “complemento de” ou “não”.
Precedência de operadores Booleanos
Símbolo !Nome !Precedência !
( ) !parênteses !1º calcular expressões entre parênteses !!
’ !NÃO !2º !!
* !E !3º calcular da esquerda para a direita !!
+ !OU !4º calcular da esquerda para a direita !!
2.5
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
65
Precedência dos operadores Booleanos • Calcule as seguintes funções Booleanas, considerando a=1, b=1, c=0,
d=1. – P1. F = a*b + c
• resposta: * tem precedência sobre +, portanto calculamos F = (1 *1) + 0 = (1) + 0 = 1 + 0 = 1.
– P2. F = ab + c • resposta: o mesmo que o anterior, apenas se utilizou a notação compacta para *.
– P3. F = ab’ • resposta: calculamos b’ primeiro porque o complemento tem precedência sobre E,
ficando F = 1 * (1’) = 1 * (0) = 1 * 0 = 0. – P4. F = (ac)’
• resposta: primeiro o que está dentro de parênteses, só depois negamos o resultado, ficando (1*0)’ = (0)’ = 0’ = 1.
– P5. F = (a + b’)*c + d’ • resposta: primeiro parênteses do lado esquerdo:(1 + (1’)) = (1 + (0)) = (1 + 0) = 1.
A seguir, * tem precedência sobre +, dando (1 * 0) + 1’ = (0) + 1’. O complemento tem precedência sobre o OU, ficando (0) + (1’) = (0) + (0) = 0 + 0 = 0.
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
66
Terminologia da álgebra de Boole • Na expressão da função: F(a,b,c) = a’bc + abc’ + ab + c • Variável
– Representa um valor (0 ou 1) – Três variáveis: a, b, c
• Ocorrência ou literal – Ocorrência de uma variável, na forma directa ou complementada – Nove literais: a’, b, c, a, b, c’, a, b, c
• Termo produto – Produto de literais – Quatro termos produto: a’bc, abc’, ab, c
• Soma de produtos – Expressão escrita apenas como OUs de termos produto – A função F ao topo está na forma soma de produtos, mas por exemplo G
= (a+b)c + d’ não está.
12
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
67
Propriedades da álgebra de Boole • Comutativa
– a + b = b + a – a * b = b * a
• Distributiva – a * (b + c) = a * b + a * c – a + (b * c) = (a + b) * (a + c)
• (esta pode parecer estranha) • Associativa
– (a + b) + c = a + (b + c) – (a * b) * c = a * (b * c)
• Elemento neutro – 0 + a = a + 0 = a – 1 * a = a * 1 = a
• Complemento – a + a’ = 1 – a * a’ = 0
• Para provar basta testar todos os casos!
– Princípio da indução finita
Princípio da Dualidade! • Os axiomas e teoremas da algebra de
Boole seguem o principio da dualidade
• Se uma dada proposição é verdadeira, então, substituindo os E com OU e os 1 com 0 , obtenho também uma proposição verdadeira
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
68
Exemplos de Aplicação das Propriedades da Álgebra de Boole
• Comutativa – a + b = b + a – a * b = b * a
• Distributiva – a * (b + c) = a * b + a * c – a + (b * c) = (a + b) * (a + c)
• (esta pode parecer estranha)
• Associativa – (a + b) + c = a + (b + c) – (a * b) * c = a * (b * c)
• Elemento neutro – 0 + a = a + 0 = a – 1 * a = a * 1 = a
• Complemento – a + a’ = 1 – a * a’ = 0
• demonstrar que abc’ equivale a c’ba – Pela propriedade comutativa:
• a*b*c’ = a*c’*b = c’*a*b = c’*b*a = c’ba.
• abc + abc’ = ab – Propriedade distributiva
• abc + abc’ = ab(c+c’). – Propriedade do complemento
• trocar c+c’ por 1: ab(c+c’) = ab(1). – Elemento neutro
• ab(1) = ab*1 = ab.
• x + x’z = x + z – Segunda propriedade distributiva
• trocar x+x’z por (x+x’)*(x+z). – Propriedade do complemento
• trocar (x+x’) por 1, – Elemento neutro
• trocar 1*(x+z) por x+z.
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
69
Exemplo da Aplicação das Propriedades da Álgebra de Boole
• Queremos um circuito para abrir automaticamente uma porta (ex. loja comercial) – Saída: f=1 abre a porta – Entradas:
• p=1: pessoa detectada • h=1: interruptor para abrir • c=1: chave que tranca
– Queremos porta aberta quando • h=1 e c=0, ou • h=0 e p=1 e c=0
– Equação: f = hc’ + h’pc’
• Encontrámos um circuito integrado barato que calcula:
• f = c’hp + c’hp’ + c’h’p – Podemos usar?
• Será o mesmo que f = c’(p+h)? • Usando álgebra de Boole
f = c’hp + c’hp’ + c’h’p
f = c’h(p + p’) + c’h’p (distributiva) !
f = c’h(1) + c’h’p (complemento) !
f = c’h + c’h’p (elemento neutro) !
f = hc’ + h’pc’ (comutativa)!
É o mesmo! !
f h c p
AbrePorta
√
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
70
• Comportamento • Três WCs, cada um com
sensor (a, b, c), igual a a 1 quando a porta está trancada
• Luz sinal “Livre” (S) só se algum WC estiver disponível
• Equação e circuito • S = a’ + b’ + c’
• Transformação • (abc)’ = a’+b’+c’
(pela Lei de DeMorgan) • Nova equação e circuito
• S = (abc)’
Álgebra de Boole: Propriedades Adicionais • Elemento absorvente
– a + 1 = 1 – a * 0 = 0
• Idempotência – a + a = a – a * a = a
• Involução – (a’)’ = a
• Leis de DeMorgan – (a + b)’ = a’b’ – (ab)’ = a’ + b’ – Muito útil!
• Para provar, basta verificar todas as possibilidades
Circuito a b c
S
Circuito S a
b c
• Alternativa: Luz a indicar “Ocupado” em vez de “Livre”
– É o oposto da função “Livre” S = a’ + b’ + c’
– i.e. S’ = (a’ + b’ + c’)’ • S’ = (a’)’ * (b’)’ *
(c’)’ (Lei de DeMorgan)
• S’ = a * b * c (Involução)
– Faz sentido: • Ocupado se todas
as portas estiverem trancadas
Exemplo: Indicador WC num avião
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
71
Leis de DeMorgan
Augustus De Morgan (1806 –1871)
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
72
Representações de Funções Booleanas
• Uma função pode ser representada de diversas formas – A figura mostra sete representações da mesma função F(a,b), recorrendo a
4 métodos distintos: • Português, Equação, Circuito, e Tabela de Verdade
2.6
a
a
b
F
F
Circuito 1
Circuito 2
( c )
( d )
Português 1: F vai a 1 quando a é 0 e b é 0, ou quando a é 0 e b é 1. Português 2: F vai a 1 quando a é 0, independentemente do valor de b
( a )
( b )
a 0 0 1 1
b 0 1 0 1
F 1 1 0 0
T A função F
Tabela de verdade
Equação 2: F(a,b) = a’ Equação 1: F(a,b) = a’b’ + a’b
13
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
73
Tabela de Verdade para representar Funções Booleanas • Define o valor de F para
cada uma das combinações possíveis dos valores de entrada – 2-entradas: 4 linhas (22) – 3-entradas: 8 linhas (23) – 4-entradas: 16 linhas (24)
• P: Defina com uma tabela de verdade a função F(a,b,c) que fica a 1 quando abc é 5 ou maior que 5 em binário
c 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
d 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
a 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
b 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
F c 0 1 0 1 0 1 0 1
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
F a 0 0 1 1
b 0 1 0 1
F
( a )
( b )
( c )
c 0 1 0 1 0 1 0 1
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
F 0 0 0 0 0
1 1
1
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
74
a 0 0 1 1
b 0 1 0 1
F Entrada Saída
a ' b ' a ' b
Converter entre Representações • Podemos converter entre qualquer
representação para qualquer outra • Conversões mais comuns
– Equação para circuito (directo, como já fizemos)
– Tabela de verdade para equação (para depois converter em circuito)
• Fácil – basta fazer OR de cada termo de entrada que tem a saída a 1
– Equação para tabela de verdade • Fácil – basta calcular a função para cada
combinação das entradas (linha) • Criar colunas intermédias pode ajudar
a 0 0 1 1
b 0 1 0 1
F 1 1 0 0
Entradas Saídas F = soma de a’b’ a’b
Termos
F = a’b’ + a’b
c 0 1 0 1 0 1 0 1
a 0 0 0 0 1 1 1 1
b 0 0 1 1 0 0 1 1
F 0 0 0 0 0
1 1
1
P: Converter em equação
a
F = ab’c + abc’ + abc
ab’c abc’ abc 1
1 0 0
1 0 0 0
0 1 0 0
a
P: Converter para tabela de verdade: F = a’b’ + a’b
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
75
Representação Padrão: Tabela de Verdade • Como podemos determinar se
duas funções são idênticas? – No exemplo ‘porta automática’
• Seria o que se encontrou o mesmo que se pretendia f = hc’ + h’pc’?
• Verificado por métodos de transformação algébricos
• Mas se falhar, isso prova que não são iguais? Não.
• Solução: Converter para tabelas de verdade – Apenas UMA tabela de
verdade para uma dada função • Representação Padrão
(Standard) – para uma dada função existe apenas uma única versão na representação padrão
f = c’hp + c’hp’ + c’h’
f = c’h(p + p’) + c’h’p
f = c’h(1) + c’h’p
f = c’h + c’h’p
(e se tivéssemos parado aqui?)
f = hc’ + h’pc’ !
a 0 0 1 1
b 0 1 0 1
F 1 1 0 1
F = ab + a ' a 0 0 1 1
b 0 1 0 1
F 1 1 0 1
F = a’b’ + a’b + ab
P: Determine se F=ab+a’ é a mesma função que F=a’b’+a’b+ab, convertendo cada uma para uma tabela de verdade
a
o mesmo
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
76
Forma Canónica Soma de Produtos • Tabelas de verdade com muitas entradas são grandes demais • É melhor ter uma forma padrão para equações:
– Conhecida como forma canónica – Álgebra normal: agrupar termos do polinómio por potências
• ax2 + bx + c (3x2 + 4x + 2x2 + 3 + 1 --> 5x2 + 4x + 4) – Álgebra de Boole: criar soma de mintermos
• Mintermo: termo produto com todos os literais da função a aparecerem uma vez, na forma directa ou complementada
• Multiplicar tudo até ter uma soma de produtos • Expandir cada termo até todos serem mintermos
P: Determine se F(a,b)=ab+a’ é a mesma função que F(a,b)=a’b’+a’b+ab, convertendo para a forma canónica soma de produtos
F = ab+a’ (já é uma soma de produtos) F = ab + a’(b+b’) (expandir termo que não é mintermo) F = ab + a’b + a’b’ (é a mesma função, tem os mesmos mintermos)
a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
77
Circuitos com Múltiplas Saídas • Muitos circuitos têm mais do que uma saída • Podemos ter um circuito separado para cada, ou partilhar
portas lógicas • Ex: F = ab + c’, G = ab + bc
a b
c F
G
( a )
a b
c F
G
( b ) Opção 1: Circuitos separados Opção 2: Portas partilhadas
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
78
Exemplo de Múltiplas Saídas: Conversor de BCD para 7-Segmentos
a = w’x’y’z’ + w’x’yz’ + w’x’yz + w’xy’z +
w’xyz’ + w’xyz + wx’y’z’ + wx’y’z
abcde fg = 1111110 0110000 1101101
afb
d
gec
(b)(a)
b = w’x’y’z’ + w’x’y’z + w’x’yz’ + w’x’yz +
w’xy’z’ + w’xyz + wx’y’z’ + wx’y’z
14
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
79
Projecto de Circuitos de Lógica Combinacional Passos Descrição
Passo 1 Capturar a função
Criar tabela de verdade ou equações Booleanas, o que for mais natural para o dado problema, para descrever o comportamento pretendido do circuito.
Passo 2 Converter para equações
Partindo da tabela de verdade, criar uma equação para cada saída fazendo a soma de todos os mintermos da respectiva saída. Simplificar equações se for necessário optimizar.
Passo 3 Implementar com portas lógicas
Para cada saída, criar um circuito correspondente à equação da saída. (para múltiplas saídas podemos tentar partilhar portas lógicas.)
2.7
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
80
Exemplo: Detector de Três 1s • Problema: Detectar três 1s consecutivos numa entrada de 8 bits:
abcdefgh 00011101 " 1 10101011 " 0 11110000 " 1
• Passo 1: Capturar a função – Tabela de verdade ou equação?
• Tabela de verdade é grande demais: 2^8=256 linhas
• Equação: escrever termos para cada caso possível de três 1s consecutivos
– y = abc + bcd + cde + def + efg + fgh
• Passo 2: Converter para equação – Já está feito
• Passo 3: Implementar com portas lógicas
bcd
def
fgh
abc
cde
efg
y
a b c d e f g h
a a
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
81
Exemplo: Contar o Número de 1s • Problema: colocar nas saídas
yz o número binário de 1s que temos em três entradas abc
• 010 " 01 101 " 10 000 " 00 – 1: Capturar a função
• Tabela de verdade ou equação? – Tabela é mais fácil.
– 2: Converter para equação • y = a’bc + ab’c + abc’ + abc • z = a’b’c + a’bc’ + ab’c’ + abc
– 3: Implementar com portas lógicas
a b c a b c a b c a b c
z
a b c a b c a b
y
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
82
Sumário do Capítulo 2 • Circuitos combinacionais
– Circuito cujas saídas são função das entradas presentes • Não tem “estado” ou memória
• Transístores como Interruptores: – componente básico de circuitos digitais
• Álgebra de Boole " Portas lógicas Booleanas: – AND, OR, NOT: blocos base para construir circuitos,
melhor que construir com transístores – Permite projectar circuitos algebricamente (Álgebra de Boole)
• Representações de funções Booleanas: – Textual; Tabela de Verdade; Equações; Circuito lógico;
• Projecto de Circuitos Combinacionais: – Capturar " Converter " Implementar
• Mais portas lógicas: NAND, NOR, XOR, XNOR também úteis • Multiplexers e descodificadores: componentes combinacionais muito
utilizados
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
83
Aulas Laboratoriais
Enunciados no InforEstudante Implica preparação prévia
Avaliação pelo docente durante a realização do trabalho
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
84
LAB1 • LED's, lógica combinacional, contador e com visor de
7 segmentos • Enunciado no InforEstudante • Implica preparação prévia • Avaliação pelo docente durante a
realização do trabalho
Não instalar versões 10.# !
15
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
85
• Altera Quartus II – Quartus II Software—Web Edition
• download de www.altera.com
– Cópia local: • www.deec.uc.pt/~jlobo/altera/
LAB1: Software de projecto para FPGAs
Não instalar versões 10.# !
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
86
LAB2
• LED's, lógica combinacional, contador e com visor de 7 segmentos
• Enunciado no InforEstudante • Notas sobre montagens no InforEstudante • Implica preparação prévia • Avaliação pelo docente durante a realização do trabalho
Especificações do 74LS08: 4 portas AND de duas entradas.
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
87
LAB2: Controlar um LED • LED: Light Emitting Diode: semicondutor que converte
energia electrica directamente em luz
• Circuito simples:
• 74LS04: 6 portas NOT (inversores):
• Inverter funcionamento do interruptor
+5V
GND (0V) a not(a) = a´ = a
Interruptor LED
5V resistência
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
88
LAB2: Controlar a luz do pátio • Projecte um circuito combinacional para controlar a iluminação do pátio de uma
residência. A luz só deve acender quando: a entrada de um sensor de luz D é 0 (indicando que não é de dia), e a entrada de um sensor de movimento M é 1 (indicando movimento). Temos ainda a entrada de um interruptor I que quando é 1 indica que a luz deve ficar ligada, independentemente dos valores de D e M. Para ligar a luz deve-se colocar a saída L a 1.
D M I
L Circuito a implementar
equação Booleana L=M.D’+I em que D’ representa “não D” (não é de dia), ‘.’ E (AND) e ‘+’ OU (OR).
74LS08: ANDs 74LS32: ORs
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
89
LAB2: Contar em binário e visores de 7 segmentos
• 74LS48: converte binário para digitos décimais com 7 segmentos
a b c
d
f e
g
0 1 2 3 4 5 6 7 8 9
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
90
LAB2: Contar em binário e visores de 7 segmentos • Sinal de relógio
• 74LS163: contador sincrono de 4 bits
0V +5V
16
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
91 © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
92
• Bibliografia Principal • Frank Vahid, “Digital Design”,
John Wiley and Sons, 2007. • Frank Vahid, Roman Lysecky, “
VHDL for Digital Design”, John Wiley and Sons, 2007.
Alternativa:
• Versão trial já não está disponivel :-( . • Acesso permanente pago e por pedido, pode vir incluído no livro.
Bibliografia
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
93
Texto integral do livro online, bem como exercícios resolvidos e alguns videos e animações.
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
94
Avisos • Faltas nas aulas laboratoriais:
– Duas ou mais => retirado da turma laboratorial!
• Alunos com segunda matricula: – optar até 30de Setembro por manter a nota laboratorial do ano
anterior, informando o docente por email, – ou abdicar desta e frequentar as turmas laboratoriais. – podem também repetir apenas os testes laboratoriais.
• Info diversa na página da cadeira e no inforestudante: – www.deec.uc.pt/~jlobo/LSD – inforestudante ... Laboratório de Sistemas Digitais 2013/2014
• http://inforestudante.fct.uc.pt/
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
95
Avaliação • Parte laboratorial (12 valores = 3 + 9)
– 3 valores: 9 trabalhos de laboratório todos avaliados (checklist) – 9 valores: 2 testes laboratoriais individuais (4+5)
• LabT1: 28Out->2Nov; LabT2: 9Dez->13Dez
• Provas de avaliação de “papel e lápis” (8 valores) – O aluno pode optar por:
• Avaliação distribuída: 2 Frequências ao longo do semestre: – Em Novembro, dia 14 às 14h00 (no horário da aula) – Em Dezembro, dia 11 às 14h30
• Exame final (para 8 valores): – admissão a exame está dependente de obter classificação mínima
de 50% nos trabalhos laboratoriais e nos testes laboratoriais. – Ao entregar o exame final elimina avaliação distribuída.
• Mínimos para aprovação: 50% em todas as componentes – 1,5 em 3; 4,5 em 9; 4,0 em 8.
Nota: A não admissão a exame implica automaticamente a reprovação à disciplina no ano lectivo de 2013/14.
© Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid
96
Perguntas...?