2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh...

92
MC542 Organização de Computadores Teoria e Prática MC542 3.1 2007 - 2011 Prof. Paulo Cesar Centoducatte [email protected] www.ic.unicamp.br/~ducatte

Transcript of 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh...

Page 1: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

MC542

Organização de ComputadoresTeoria e Prática

MC5423.1

2007 - 2011

Prof. Paulo Cesar [email protected]

www.ic.unicamp.br/~ducatte

Page 2: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

MC542

Circuitos Lógicos

Projeto de Circuitos Combinacionais

MC5423.2

Projeto de Circuitos Combinacionais

“DDCA” - (Capítulo 2)“FDL” - (Capítulos 2 e 4)

Page 3: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Título do Capítulo AbordadoSumário

• Introdução• Equações Booleanas• Álgebra Booleana• Síntese Lógica

– Usando SOP– Usando POS

• Lógica Combinacional Multi-Níveis

MC5423.3

• Lógica Combinacional Multi-Níveis • X’s e Z’s• Mapas de Karnaugh• Blocos básicos Combinacionais• Timing

Page 4: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Introdução

Um circuito lógico é composto de:

• Entradas (inputs)

• Saídas (outputs)

• Especificação Funcional

MC5423.4

• Especificação Funcional

• Especificação da temporização (timing)

inputs outputsfunctional spec

timing spec

Page 5: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Circuito

• Nodes– Inputs: A, B, C– Outputs: Y, Z– Interno: n1

• Elementos do Circuito– E1, E2, E3

MC5423.5

A E1

E2

E3B

C

n1

Y

Z

Page 6: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Tipos de Circuitos Lógicos

• Combinacional– Sem efeito memória– As saídas são determinadas pelos valores correntes das entradas

• Seqüencial

MC5423.6

• Seqüencial– Tem efeito memória– As saídas são determinadas pelos valores correntes e anteriores das entradas

inputs outputsfunctional spec

timing spec

Page 7: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Composição de Circuitos Combinacionais

• Todos os elementos do circuito são combinacionais• Cada node do circuito ou é uma entrada do circuito ou está conectado a uma saída de um elemento do circuito

• O circuito não contem ciclos: todo caminho no circuito visita cada node no máximo uma vez

• Exemplo:

MC5423.7

• Exemplo:

Page 8: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Equação Booleana

• Especificação funcional das saídas em termos das entradas usando-se operadores booleanos

• Exemplo: S = F(A, B, Cin)Cout = F(A, B, Cin)

MC5423.8

AS

S = A ⊕ B ⊕ Cin

Cout

= AB + ACin + BC

in

B

Cin

CLC

out

Page 9: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Forma Soma-de-Produtos (SOP)• Tada equação booleana pode ser descrita na forma SOP • Cada linha da tabela verdade é associada a um mintermo • Um mintermo é um produto (AND) de literais• Cada mintermo é TRUE (1) para uma dada linha (e somente para essa linha)

• A função é formada pelo OR dos mintermos para os quais a saída é TRUE (1)

• Assim, a função é a soma (OR) de produtos (termos AND)

MC5423.9

A B Y

0 0

0 1

1 0

1 1

0

1

0

1

minterm

A B

A B

A B

A B

• Assim, a função é a soma (OR) de produtos (termos AND)

Y = F(A, B, C) = AB + AB

Page 10: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Terminologia– Literal - Uma variável complementada ou não em um termo produto (ou termo soma)

– Implicante – Um termo produto que implementa um ou mais 1´s da função. Exemplo: um míntermo é um implicante; um produto gerado pela simplificação de uma váriável de dois míntermos é um implicante.

– Implicante Principal – Um implicante que não pode ser simplificado em outro implicante com menos literais.

MC5423.10

– Implicante Essencial – Implicante Principal que é imprescindível na realização da função (existe pelo menos um “1” que só é coberto por ele).

– Cobertura – Uma coleção de implicantes que implementam a função (implementam todos os 1´s da função).

- Custo – número de portas + número de entradas de todas as portas (assumiremos que as entrads primárias estão disponíveis tanto na forma verdadeira quanto complementada).

Page 11: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Forma Produto-de-Somas (POS)• Tada equação booleana pode ser descrita na forma POS• Cada linha da tabela verdade é associada a um maxtermo• Um maxtermo é uma soma (OR) de literais• cada maxtermo é FALSE (0) para uma dada linha (e somente para essa linha)

• A função é formada pelo AND dos maxtermos para os quais a saída é False (0)

• Assim, a função é um produto (AND) de soma (termos OR)

MC5423.11

Y = F(A, B, C) = (A + B)(A + B)

• Assim, a função é um produto (AND) de soma (termos OR)

A + B

A B Y

0 0

0 1

1 0

1 1

0

1

0

1

maxterm

A + B

A + B

A + B

Page 12: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Síntese Usando Portas And, OR e Not

MC5423.12

A. Implemente cada 1 da tabela verdade com um AND e NotsB. Faça um OR dos circuitos criados em A.C. Opcional: simplifique a função

Soma de Produtos

Page 13: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

f

x 1

x 2

Síntese Usando Portas And, OR e Not

MC5423.13

f

Minimal-cost realization

x 2

x 1

Canonical sum-of-products

Page 14: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Síntese Usando Portas And, OR e Not

MC5423.14

A. Implemente cada 0 da tabela verdade com um OR e NotsB. Faça um AND dos circuitos criados em A.C. Opcional: simplifique a função

Produto de Somas

Page 15: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Soma-de-Produtos e Produtos-de-Soma(SoP e PoS)

• Mintermos e Maxtermos– Mintermo: Implementa um “1” da tabela verdade– Maxtermo: Implementa um “0” da tabela verdade

• Forma canônica:

MC5423.15

• Forma canônica:– de Mintermos: a expressão que representa a função possui todos os mintermos (não simplificados)

– de Maxtermos: a expressão que representa a função possui todos os maxtermos (não simplificad)

Page 16: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Numeração de Mintermos e Maxtermos

MC5423.16

Page 17: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo

Assuma que temos um salão com três portas e próximo

a cada uma delas temos uma chave para acender/apagar

a luz. Projete o circuito de controle que acende/apaga a

luz do salão.

Solução:

MC5423.17

Solução:• x1; x2 e x3 váriaveis que indicam o estado das chaves 1, 2 e 3 (1 ->

fechada; 0 -> aberta)

• Monte a tabela verdade que representa a função desejada, ié: ao acionarmos uma chave (mudar seu estado) se a luz está apagada ela acende e vice-versa

• Sintetize o circuito de controle

Page 18: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo: Tabela Verdade

MC5423.18

Page 19: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

f

Exemplo

MC5423.19

Implementação SOP do controlador three-way

x 1

x 2

x 3

Page 20: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

f

x 1

x 2

x 3

Exemplo

MC5423.20

Implementação POS do controlador three-way

Page 21: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Álgebra Booleana

• Conjunto de Axiomas e Teoremas: usados para simplificar equações Booleanas

• Similar à algebra regular, porém mais simples em muitos casos já que as variáveis só podem ter dois valores (1 ou 0)

MC5423.21

valores (1 ou 0)

• Axiomas e Teoremas obedecem aos principios da dualidade:– Trocando-se ANDs por ORs (e vice-versa) e 0’s por 1’s (e vice-versa)

Page 22: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Axiomas e Teoremas

MC5423.22

Page 23: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Teoremas

MC5423.23

Page 24: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Axiomas e Teoremas

• As Demonstrações podem ser feitas usando-se:

– Indução Perfeita

– Gráfica (Diagrama de Venn)

MC5423.24

– Manipulação Algébrica

Precedência dos Operadores

1. Not2. AND3. OR

Page 25: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Prova do Teorema de De Morgan

Indução Perfeita

x.y = x + y

MC5423.25

Page 26: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Diagrama de Venn

Prova do Teorema da Distribuição

x.(y+z) = x.y + x.z

MC5423.26

Page 27: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Manipulação Algébrica

• Y = AB + AB

= (A + A)B T8

= (1)B T5’

= B T1

MC5423.27

= B T1

Page 28: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Manipulação Algébrica

• Y = B(AB + ABC)

= B(AB(1 + C)) T8

= B(AB(1)) T2’

= B(AB) T1

MC5423.28

= B(AB) T1

= A(BB) T7

= AB T3

Page 29: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Teorema De Morgan

• Y = AB = A + B

A

BY

A

BY

MC5423.29

• Y = A + B = A B

A

BY

A

BY

Page 30: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo de Síntese Só comNANDs

x 1 x 2

x 3 x 4

x 5

x 1 x 2

x 3 x 4

x 5

MC5423.30

x 1 x 2

x 3 x 4

x 5

Page 31: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo de Síntese Só comNORs

x 1

x 2

x 3

x 4

x 5

x 1

x 2

x 3

x 4

x 5

MC5423.31

x 1

x 2

x 3

x 4

x 5

Page 32: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo

x 2

1

x 3

x 4

x 5 x 6

x 7

f

Circuit with AND and OR gates

MC5423.32

Circuit with AND and OR gates

x 2

x 1

x 3

x 4

x 5 x 6

x 7

f

Convertendo para NANDs

Page 33: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo (cont.)

x 2

x 1

x 3

x f

MC5423.33

x 4

x 5

x 6 x 7

f

Page 34: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo (cont.)

x 2

1

x 3

x 4

x 5 x 6

x 7

f

Circuit with AND and OR gates

MC5423.34

x 2

x 1

x 3

x 4

x 5

x 6

x 7

f

Convertendo para NORs

Page 35: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo (cont.)

x 2

x 1

x 3

MC5423.35

3

x 4

x 5

x 6 x

7

f

Page 36: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exercício:

• Qual é a expressão booleana para o circuito abaixo?

A

B

Y

C

MC5423.36

C

D

A

B

Y

C

D Y = AB + CD

Page 37: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Técnica Bubble Pushing

A

B

C

D

Y

A

B

C Y

D

no output

bubble

MC5423.37

bubble on

input and outputA

B

C

D

Y

A

B

C

D

Y

no bubble on

input and output

Y = A B C + D

Page 38: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Síntese Lógica

• Lógica em dois níveis: ANDs seguidos de OR

• Exemplo: Y = ABC + ABC + ABC

BA C

MC5423.38

Y

minterm: ABC

minterm: ABC

minterm: ABC

A B C

Page 39: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Circuitos Multi-Saídas

0000

A1

A0

0 0

0 1

1 0

1 1

0000

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

0000

0000

0000

1111

1111

0000

1111

0000

0000

A3

A2

0 0

0 0

0 0

0 0

0 0 0000 1111 0000 00000 1

0 1

1 0

0 1

0 1

0000

0000

1111

1111

0000

0000

0000

0000

A2

A3

Y2

Y3

MC5423.39

1 0

1 1

0 0

0 1

0 1

1 0

0 11 0

1 0

1 1

0 0

0 1

1 0

1 0

1 1

1 1

1 01 1

1 11 1

0000

0000

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111 0000 0000 0000

A0

A1

PRIORITY

CiIRCUIT

Y0

Y1

Page 40: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Circuitos Multi-Saídas

A1

A0

0 0

0 1

1 0

1 1

0000

0000

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

0000

0000

0000

1111

1111

0000

1111

0000

0000

A3

A2

0 0

0 0

0 0

0 0

0 0 0000 1111 0000 00000 1

0 1

1 0

0 1

0 1

0000

0000

1111

1111

0000

0000

0000

0000

A3A

2A

1A

0Y

3

Y2

MC5423.40

1 0

1 1

0 0

0 1

0 1

1 0

0 11 0

1 0

1 1

0 0

0 1

1 0

1 0

1 1

1 1

1 01 1

1 11 1

0000

0000

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111 0000 0000 0000

Y1

Y0

Page 41: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Don’t Cares

A1

A0

0 0

0 1

1 0

1 1

0000

0000

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

0000

0000

0000

1111

1111

0000

1111

0000

0000

A3

A2

0 0

0 0

0 0

0 0

0 0 0000 1111 0000 00000 1

0 1

1 0

0 1

0 1

0000

0000

1111

1111

0000

0000

0000

0000

A1

A0

0 0

0 1

0000

0000

Y3

Y2

Y1

Y0

0000

0000

0000

0000

0000

1111

A3

A2

0 0

0 0

MC5423.41

1 0

1 1

0 0

0 1

0 1

1 0

0 11 0

1 0

1 1

0 0

0 1

1 0

1 0

1 1

1 1

1 01 1

1 11 1

0000

0000

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111

1111

1111

1111

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

0000

1111 0000 0000 0000

1111 0000 0000 0000

0 1

1 X

X X

0000

0000

0000

0000

0000

1111

0000

1111

0000

1111

0000

0000

0 0

0 0

0 1

X X 1111 0000 0000 00001 X

Page 42: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Contenção: X

A = 1

• Contenção (conflito): o circuito tenta colocar a saída em 1 e 0

MC5423.42

A = 1

Y = X

B = 0

Page 43: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Alta Impedância: Z

• A saída fica isolada das entradas

Tristate Buffer

E

MC5423.43

E A Y

0 0 Z

0 1 Z

1 0 0

1 1 1

A Y

Page 44: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Simplificação de Funções Lógicas

f = Σ m(0, 2, 4, 5, 6)

Função Mínima?

MC5423.44

f = x1 x2

Como determinar f mínima?

Page 45: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Karnaugh Maps (K-Maps)• Funções Booleanas podem ser minimizadas combinando-se termos

• K-maps minimiza as expressões graficamente

• PA + PA = P

MC5423.45

C00 01

0

1

Y

11 10AB

1

1

0

0

0

0

0

0

C 00 01

0

1

Y

11 10AB

ABC

ABC

ABC

ABC

ABC

ABC

ABC

ABC

B C0 0

0 1

1 0

1 1

A0

0

0

0

0 0

0 1

1 0

1 1

1

1

1

1

1

1

0

0

0

0

0

0

Y

Page 46: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Simplificação de Funções Lógicas

• mo e m2 ?

m0 = x1 x2 x3 m2 = x1 x2 x3

MC5423.46

x1 x3

Page 47: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Simplificação de Funções Lógicas

f = x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3 + x1 x2 x3

MC5423.47

O Mapa de Karnaugh agrupa os míntermos“simplificáveis” de forma gráfica facilitandoo processo de duplicação de termos.

(x = x + x)

Page 48: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Mapa de Karnaugh2 variáveis

x 1

x 2

0 0

0 1

1 0

m 0

m 1

m 2

x 2

0

1

0 1

m 0

m 2

m m

x 1

MC5423.48

Truth table

1 0

1 1 m 3

m 2

Karnaugh map

1 m 3

m 1

Page 49: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo de uso do Mapa K

f = ∑(m0,m1,m3)x

2

0

1

0 1

m 0

m 2

m 3

m 1

x 1

MC5423.49

x 1

x 2

1 0

1 1

f x 2

x 1

+ =

0

1

0 1

1 m 3

m 1

Page 50: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Mapa de Karnaugh3 variáveis

x 2

x 3

0 0

0 1

1 0

1 1

m 0

m 1

m

m 2

0

0

0

0

x 1

x 1 x 2 x 3 00 01 11 10

0 m m m m

MC5423.50

1 1 m 3 0

0 0

0 1

1 0

1 1

1

1

1

1

m 4

m 5

m 7

m 6

Truth table

0

1

Karnaugh map

m 0

m 1 m 3

m 2 m 6

m 7

m 4

m 5

Page 51: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplos de Uso do Mapa Kpara 3 variáveis

f x1x3 x2x3+=

x1x

2x

3

0 0

1 0

1 1

0 1

00 01 11 10

0

1

MC5423.51

x1

x2

x3

1 1

0 0

1 1

0 1f x

3x1

x2+=

00 01 11 10

0

1

Page 52: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Mapa de Karnaugh4 variáveis

x 1 x 2

x 3 x 4 00 01 11 10

00

01

x 1

m 0

m 1 m 5

m 4 m 12

m 13

m 8

m 9

MC5423.52

01

11

10

x 2

x 4

x 3

m 1 m 5 m 13 m 9

m 3

m 2 m 6

m 7 m 15

m 14

m 11

m 10

Page 53: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplos de Uso do Mapa Kpara 4 variáveis

x 1

x 2

x 3

x 4

0

00 01 11 10

0 0 0

0 0 1 1

00

01

x 1

x 2

x 3

x 4

0

00 01 11 10

0 0 0

0 0 1 1

00

01

MC5423.53

0 0 1 1

1 0 0 1

1 0 0 1

01

11

10

f 1

x 2 x 3

x 1

x 3 x 4

+ =

0 0 1 1

1 1 1 1

1 1 1 1

01

11

10

f 2

x 3

x 1

x 4

+ =

Page 54: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplos de Uso do Mapa Kpara 4 variáveis

x 1

x 2

x 3

x 4

1

00 01 11 10

0 0 1

0 0 0 0

00

01

x 1

x 2

x 3

x 4

1

00 01 11 10

1 1 0

1 1 1 0

00

01

MC5423.54

1 1 1 0

1 1 0 1

11

10

f 3

x 2 x 4 x 1 x 3

x 2

x 3

x 4

+ + =

0 0 1 1

0 0 1 1

11

10

f 4

x 1 x 3 x 1

x 3

+ + =

x 1

x 2

x 2

x 3

or

Page 55: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Mapa de Karnaugh5 variáveis

x 1 x

2 x

3 x

4 00 01 11 10

1 1

1 1

00

01

11

x 1 x

2 x

3 x

4 00 01 11 10

1

1 1

1 1

00

01

11

MC5423.55

1 1

1 1

11

10

1 1

1 1

11

10

f 1 x 1 x 3 x 1 x 3 x 4 x 1 x 2 x 3 x 5 + + =

x 5 1 = x 5 0 =

Page 56: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Minimização• Terminologia:

– Literal - Uma variável complementada ou não em um termo produto

– Implicante – Um termo produto que implementa um ou mais 1´s da função. Exemplo: um míntermo é um implicante; um produto gerado pela simplificação de uma váriável de dois míntermos é um implicante.

– Implicante Principal – Um implicante que não pode ser simplificado em outro implicante com menos literais.

MC5423.56

outro implicante com menos literais.

– Implicante Essencial – Implicante Principal que é imprecindivel na realização da função (existe pelo menos um “1” que só é coberto por ele).

– Cobertura – Uma coleção de implicantes que implementam a função (implementam todos os 1´s da função).

- Custo – número de portas + número de entradas de todas as portas (assumiremos que as entrads primárias estão disponíveis tanto na forma verdadeira quanto complementada).

Page 57: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Uso do Mapa K

1. Represente todos mintermos da função no mapa K

2. Determine todos os implicantes principais

3. Determine o conjunto dos Implicantes Essenciais

MC5423.57

4. Se o conjunto dos implicantes essenciais cobre todos os valores 1´s da função, então tem-se a função de custo mínimo. Caso contrário, determine o conjunto de custo mínimo, usando os implicantes principais, que cobre os 1´s não cobertos pelo conjunto de implicantes essenciais.

Page 58: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplos

x 1 x 2 x 3

1 1

1 1

0 0

1 0

00 01 11 10

0

1

MC5423.58

1 1

x 1

1 0 1

x 2 x 3

Page 59: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplos

x 1 x 2 x 3 x 4 00 01 11 10

1 1

00

01

x 1 x 2 x 4

x 2 x 3 x 4

MC5423.59

1 1

1 1

11

10

x 1 x 3

1 1

1

x 3 x 4

x 2 x 3

Page 60: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplos

x 1

x 2

x 3

x 4 00 01 11 10

1

1 1 1 1 00

01x x x

x 3

x 4

x 1

x 2

x 3

MC5423.60

1

1

01

11

10

x 1

x 2

x 4

1

1

x 1

x 2

x 4

x 1

x 2

x 3

x 1

x 3

x 4

Page 61: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplos

x1

x 2

x 3

x 4 00 01 11 10

1

1

1

1 00

01

x 1 x 3 x 4

x 2 x 3 x 4

x x x

MC5423.61

1

1 11

10 1

1

x 2 x 3 x 4

x 1 x 3 x 4

x 1 x 2 x 4 x 1 x 2 x 4

x 1 x 2 x 3 x 1 x 2 x 3

Page 62: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Minimização de Produto-de-Somas

x 1 x 2 x 3

1

00 01 11 10

0

1

1 0 0

1 1 1 0

x 1 x 3 + ( ( ( ( ) ) ) )

MC5423.62

1 1 1 1 0

x 1 x 2 + ( ( ( ( ) ) ) )

Page 63: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo

x 1 x 2

x 3 x 4

0

00 01 11 10

0 0 0

0 1 1 0

1 1 0 1

00

01

11

x 2 x 3 + ( ( ( ( ) ) ) )

x 3 x 4 + ( ( ( ( ) ) ) )

MC5423.63

1 1 0 1

1 1 1 1

11

10

x 1 x 2 x 3 x 4 + + + ( ( ( ( ) ) ) )

Page 64: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Funções Incompletamente Especificadas

• Sabe-se, pela natureza do problema, que determinadas combinações dos possíveis valores para as entradas não ocorrem durante a operação do sistema que se deseja projetar.

f = ΣΣΣΣ m(2, 4, 5, 6, 10) + D(12, 13, 14, 15)

x 1

x 2

x 3

x 4 00 01 11 10

MC5423.64

3 4

0

00 01 11 10

1 d 0

0 1 d 0

0 0 d 0

1 1 d 1

00

01

11

10

x 2 x 3

x 3 x 4

Page 65: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Funções Incompletamente Especificadas

x1

x 2

x 3

x 4

0

00 01 11 10

1 d 0 00

x 2

x 3

+ ( ( ( ( ) ) ) )

Implementada como Produto-de-Somas

MC5423.65

0 1 d 0

0 1 d 0

0 0 d 0

1 1 d 1

00

01

11

10

x 3

x 4

+ ( ( ( ( ) ) ) )

Page 66: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exercício• Um decodificador de sete-segmentos tem 4 bits de entrada, D3:0, e produz sete saídas que controlam diodos emisores de luz que mostram valores de 0 a 9. As setes saídas, normalmente, são denominadas de segmento a ag, ou Sa-Sg como mostrado na figura abaixo.a) Escreva a tabela verdade para as saídase use K-map para minimizar as equações

MC5423.66

booleanas que as implemente.b) refaça a) usando don’t cares

Page 67: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Blocos Básicos

• Multiplexadores (MUX)

• Decodificadores

MC5423.67

Page 68: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Multiplexadores (MUX)• Seleciona uma de N entrada como saída.• log2N-bit de entrada de controle• Exemplo:

2:1 Mux f

x 1

x 2

s

s x1 x2 f (s, x1, x2)s

MC5423.68

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 0

1 1 1 1

1 x2 f (s, x1, x2)

f x 1

x 2

0

1

0

1

f (s, x1, x2)s

x1

x2

transmission gates

f

s

x1

x2

Page 69: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Multiplexador: 4 para 1 (4:1)

f

s 1

w 0

w 1

00

01

s 0

w 2

w 3

10

11

w 0

w 1

0

0

1

1

1

0

1

f s 1

0

s 0

w 2

w s 1

w 0

s 0

MC5423.69

1 1 w 3

f

s 1

w 1

w 2

w 3

Page 70: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Mux 4:1 a partir de Mux 2:1

0

w 0

w 1

0

1

s 1

s

MC5423.70

1 1

w 2

w 3

0

1

f 0

1

Page 71: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Mux 16:1 s 1

w 0

s 0

w 3

w 4

w 7

s 3

s 2

MC5423.71

w 8

w 11

w 12

w 15

f

Page 72: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo de Uso de Mux2x2 crossbar switch

x 1

x 2

y 1

y 2

s

MC5423.72

x 1 0

1

x 2 0

1

s

y 1

y 2

Page 73: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Lógica Usando Mux

• Usand o mux como uma lookup table

A B Y A B

MC5423.73

0 0 0

0 1 0

1 0 0

1 1 1

Y = AB

00

Y01

10

11

Page 74: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Implementando Funções com Mux

• Reduzindo o tamanho do Mux

A B Y A YA

MC5423.74

A B Y

0 0 0

0 1 0

1 0 0

1 1 1

Y = AB

A Y

0 0 0

1B

Y

1 B

Page 75: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Síntese de Funções Lógicas Usando MUX

0

1

0

0

1

1

1

0

1

f w 1

0

w 2

1

0

f

w 1

0

1

w 2

1

0

MC5423.75

0

1

0

0

1

1

1

0

1

f w 1

0

w 2

1

0

0

1

f w 1

w 2

w 2

f

w 2

w 1

Page 76: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo

w3

w3

00

0

1

1

1

0

1

fw1

0

w2

1

0 0

0 1

1 0

1 1

0

0

0

1

0 0

0 1

0

1

w1

w2

w3

f

0

0

0

0

1

1

MC5423.76

0 1

1 0

1 1

1

1

1

1

1

1

f

w1

0

w2

1

w3

Page 77: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo

0 0

0 1

1 0

1 1

0

1

1

0

0 0 1

w1

w2

w3

f

0

0

0

0

1

w2

w3

⊕⊕⊕⊕

f

w3

w1

w2

MC5423.77

0 1

1 0

1 1

0

0

1

1

1

1

w2

w3

⊕⊕⊕⊕

f

Page 78: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo

w 1

w 2

w 3

0 0

0 1

1 0

1 1

0

1

1

0

w 1

w 2

w 3

f

0

0

0

0

w 3

w 3

MC5423.78

f

w 3 1 1 0

0 0

0 1

1 0

1 1

1

0

0

1

0

1

1

1

1

w 3

w 3

Page 79: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

ExemploMaioria de uns

0 0

0 1

1 0

1 1

0

0

0

1

w 1

w 2

w 3

f

0

0

0

0

0

1

f w 1

w 2 w

3

w 2

w 3

+

MC5423.79

0 0

0 1

1 0

1 1

0

1

1

1

1

1

1

1

f

w 3

w 1 w

2

Page 80: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Decodificadores• N inputs, 2N outputs• One-hot outputs: somente uma saída HIGH por vez

0 y

0 w

MC5423.80

0

w n 1 –

n

inputs

EnEnable

2 n

outputs

0

y 2 n 1 –

Page 81: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Decodicifador 2:4

0

0

1

1

1

0

1

y 0

w 1

0

w 0

x x

1

1

0

1

1

En

0

0

0

1

0

y 1

1

0

0

0

0

y 2

0

1

0

0

0

y 3

0

0

1

0

0

w 1

w 0

y 0

y 1

MC5423.81

x x 0 0 0 0 0

w 0

En

y 0 w 1 y 1

y 2 y 3

y 2

y 3

En

Page 82: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Decodicifador 3:8 Usando 2:4

w 2

w 0

y 0

y 1

y 2

y 3

w 0

En

y 0

w 1

y 1

y 2

y 3

w 1

MC5423.82

w 0

En

y 0

w 1

y 1

y 2

y 3

y 4

y 5

y 6

y 7

En

Page 83: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Decodicifador 4:16 Usando 2:4

w 2

w 0 y 0 y 1 y 2 y 3

w 0

En

y 0 w 1 y 1

y 2 y 3

w 0

En

y 0 w 1 y 1

y 2 y

y 4 y 5 y 6 y

w 1

w y

MC5423.83

w 0

En

y 0 w 1 y 1

y 2 y 3

y 8 y 9 y 10y 11

w 2 En y 3 y 7

w 0

En

y 0 w 1 y 1

y 2 y 3

y 12y 13y 14y 15

w 0

En

y 0 w 1 y 1

y 2 y 3

w 3

En

Page 84: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Lógica Usando Decodificadores

• OR de mintermos

2:4Decoder

11 AB

Mintermos

MC5423.84

A

B

00011011

Y = A ⊕ B

Y

AB

AB

AB

AB

Page 85: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Timing

• Delay: atraso entre a mudança na entrada e na saída• Um dos maiores desafios em projeto de circuitos: tornar o circuito mais rápido

A Y

MC5423.85

A

Y

Time

delay

Page 86: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Delay: Propagação e Contaminação

• Propagation delay: tpd = max delay da entrada à saída

• Contamination delay: tcd = min delay da entrada à saída

A Y

MC5423.86

A

Y

Time

tpd

tcd

Page 87: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Delay: Propagação e Contaminação

• Os atrasos são causados por

– Capacitância e – Resistências no circuito

• Rasões porque t and t podem ser diferentes:

MC5423.87

• Rasões porque tpd and tcd podem ser diferentes:

– Diferentes tempos de subida (rising) e de decida (falling)– Múltiplas entradas e saídas, algumas podem ser mais rápidas do que as outras

– Circuito mais lento quando quente e mais rápido quando frio

Page 88: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Caminhos: Críticos e Curtos

A

B

C

DY

Critical Path

n1

n2

MC5423.88

Critical (Long) Path: tpd = 2tpd_AND + tpd_OR

Short Path: tcd = tcd_AND

Short Path

Page 89: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Glitches

• Um glitch ocorre quando uma mudança em uma entrada causa múltiplas mudanças na saída

• Glitches não causam problemas se seguirmos as convenções de projetos síncronos

MC5423.89

• É importante reconhecer um glitch quando se vê um em uma simulação ou em um osciloscópio

Page 90: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo de Glitch

A

B

C

Y

YAB

MC5423.90

00 01

1

Y

11 10AB

1

1

0

1

0

1

0

0

C

0

Y = AB + BC

Page 91: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo de Glitch (cont.)

A = 0B = 1 0

C = 1

Y = 1 0 1

Short Path

Critical Path

1 0

0 1n1

n2

MC5423.91

B

Y

Time

glitch

n2

n1

Page 92: 2007 - INSTITUTO DE COMPUTAÇÃOducatte/mc542/Slides/mc542_C_03_2s07.pdf · • Mapas de Karnaugh • Blocos básicos Combinacionais • Timing. Introdução ... usando-se operadores

Exemplo de Glitch (cont.)

00 01

1

Y

11 10AB

1

1

0

1

0

1

0

0

C

0

Y = AB + BC + ACAC

MC5423.92

Y = AB + BC + AC

B = 1 0Y = 1

A = 0

C = 1