+ All Categories
Home > Documents > Laboratório de Sistemas Digitais - cld.pt · PDF filelógica standard e escrita...

Laboratório de Sistemas Digitais - cld.pt · PDF filelógica standard e escrita...

Date post: 15-Feb-2018
Category:
Upload: duongnga
View: 217 times
Download: 1 times
Share this document with a friend
16
1 © Jorge Lobo 2013 adapted from ‘Digital Design’, © 2007 Frank Vahid 1 2 http://www.youtube.com/watch?v=vXVFHFIVVgQ © Jorge Lobo 2013 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 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 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.
Transcript

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...?


Recommended