pedroni { cap tulo 5 prof. odilson tadeu...

44
´ Algebra Booleana Pedroni – Cap´ ıtulo 5 Prof. Odilson Tadeu Valle Instituto Federal de Santa Catarina – IFSC Campus S˜ ao Jos´ e [email protected] 1/42

Upload: vokien

Post on 09-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Algebra BooleanaPedroni – Capıtulo 5

Prof. Odilson Tadeu Valle

Instituto Federal de Santa Catarina – IFSCCampus Sao Jose

[email protected]

1/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

2/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

3/42

Algebra Booleana

A analise formal de circuitos digitais e baseada na algebra booleana(George Boole - 1850).

Uma funcao booleana e uma funcao matematica que envolve variaveisbinarias, a adicao logica (+ ≡ OR), multiplicacao logica (· ≡ AND) einversao logica.

Portanto, funcoes logicas podem ser implementadas usando somente astres portas logicas fundamentais:

4/42

Algebra Booleana

Ha equivalencia entre portas NOR e NAND, isto e

(a + b)′ = a′ · b′ e (a · b)′ = a′ + b′

Assim sendo, qualquer funcao booleana pode ser implementada usandosomente um tipo de porta logica:

Por que isso e importante?

Pesquisem sobre a universalidade da porta NOR.

5/42

Algebra Booleana

A seguir, exemplos de funcoes booleanas, y representa a funcao e a, b, ce d sao variaveis binarias:

y = a · b

y = a′ · b + a · c · d

A segunda expressao tem dois termos de produtos (a · b e a · c · d), comdois e tres literais.

Um literal e uma variavel ou seu complemento.

A segunda funcao e do tipo SOP (sum-of-products).

As regras fundamentais estao resumidas nos slides a seguir, onde a, b e csao variaveis binarias e f () e uma funcao binaria.

6/42

Propriedades da funcao OR

a + 0 = a

a + 1 = 1

a + a = a

a + a′ = 1

a + b = b + a comutativa

(a + b) + c = a + (b + c) = a + b + c associativa

7/42

Propriedades da funcao AND

a · 1 = a

a · 0 = 0

a · a = a

a · a′ = 0

a · b = b · a comutativa

(a · b) · c = a · (b · c) associativa

a · (b + c) = a · b + a · c distributiva

8/42

Teorema da absorcao

a + a · b = a

a + a′ · b = b + b′ · a = a + b

a · b + a · b′ = a

Prova a + a · b = a:

a + a · b = a · 1 + a · b

= a · (b + b′) + a · b

= a · b + a · b′ + a · b

= a · b + a · b′

= a · (b + b′)

= a · 1

= a

9/42

Teorema da absorcao

a + a · b = a

a + a′ · b = b + b′ · a = a + b

a · b + a · b′ = a

Prova a + a · b = a:a + a · b = a · 1 + a · b

= a · (b + b′) + a · b

= a · b + a · b′ + a · b

= a · b + a · b′

= a · (b + b′)

= a · 1

= a

9/42

Teorema do consenso

a · b + b · c + a′ · c = a · b + a′ · c

(a + b) · (b + c) · (a′ + c) = (a + b) · (a′ + c)

Prova:a · b + b · c + a′ · c =

= a · b · 1 + 1 · b · c + a′ · 1 · c = a · b · (c + c ′) + (a+ a′) · b · c + a′ · (b + b′) · c

= (a · b · c + a · b · c ′) + (a · b · c + a′ · b · c) + (a′ · b · c + a′ · b′ · c)

= a · b · c + a · b · c ′ + a · b · c + a′ · b · c + a′ · b · c + a′ · b′ · c

= a · b · c + a · b · c + a · b · c ′ + a′ · b · c + a′ · b · c + a′ · b′ · c

= a · b · c + a · b · c ′ + a′ · b · c + a′ · b′ · c

= a · b + a′ · c

10/42

Teorema do consenso

a · b + b · c + a′ · c = a · b + a′ · c

(a + b) · (b + c) · (a′ + c) = (a + b) · (a′ + c)

Prova:a · b + b · c + a′ · c =

= a · b · 1 + 1 · b · c + a′ · 1 · c = a · b · (c + c ′) + (a+ a′) · b · c + a′ · (b + b′) · c

= (a · b · c + a · b · c ′) + (a · b · c + a′ · b · c) + (a′ · b · c + a′ · b′ · c)

= a · b · c + a · b · c ′ + a · b · c + a′ · b · c + a′ · b · c + a′ · b′ · c

= a · b · c + a · b · c + a · b · c ′ + a′ · b · c + a′ · b · c + a′ · b′ · c

= a · b · c + a · b · c ′ + a′ · b · c + a′ · b′ · c

= a · b + a′ · c

10/42

Teorema de Shannon

f (a, b, c, . . . ) = a′ · f (0, b, c, . . . ) + a · f (1, b, c, . . . )

f (a, b, c, . . . ) = [a + f (0, b, c, . . . )] · [a′ + f (1, b, c, . . . )]

Exemplo:

Aplique ambas as partes do teorema de Shannon a funcao y = a′ + b · ce verifique as respectivas validades.Observe que: f (0, b, c) = 1 + b · c = 1 (y = a′ + b · c, se a=0, a’=1) ef (1, b, c) = 0 + b · c = b · c

a) y = f (a, b, c) = a′ · f (0, b, c) + a · f (1, b, c)

= a′ · 1 + a · b · c= a′ + a · b · c

= a′ + b · c (teorema da absorcao)

b) y = f (a, b, c) = [a + f (0, b, c)] · [a′ + f (1, b, c)]

= (a + 1) · (a′ + b · c) = a′ + b · c

11/42

Teorema de Shannon

A funcao y = a′ + b · c pode ser representada por:

Ou entao, apos o emprego do teorema de Shannon com a variavel a. Para

12/42

Algebra Booleana

Lei de DeMorgan

(a + b + c + . . . )′ = a′ · b′ · c ′ · . . .

(a · b · c · . . . )′ = a′ + b′ + c ′ + . . .

Princıpio da dualidade (generalizacao da lei de DeMorgan):

f (a, b, c,+, ·) = f ′(a′, b′, c ′, ·,+)

Teorema do termo comum:

y = a · b1 + a · b2 + · · · + a · bN = a · (b1 + b2 + · · · + bN)

y = (a + b1) · (a + b2) · . . . (a + bN) = a + b1 · b2 · . . . bN

13/42

Exercıcios

verifique as equacoes:

1 (a + b′ + a · b) · (a + b′) · a′ · b = 02 a′ · b · (d ′ + d · c ′) + (a + d · a′ · c) · b = b3 ((b′ + c)′ · a) + (c · d)′ = (c · d)′ ou c ′ + d ′

4 (a′ · b + a · b′)′ = a · b + a′ · b′

Prove que os circuitos abaixo sao equivalentes:

14/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

15/42

Tabelas-VerdadeUma T.V. e simplesmente uma representacao numerica de uma funcaobooleana. Para uma funcao de N variaveis, sao necessarias 2N linhas.

(a) y = a′ + b · c(b) Os X’s indicam valores indiferentes (don’t care), ou seja, valores que nao

importam ao projeto e, portanto, podem ser escolhidos a vontade pelo projetistado circuito (isso minimiza o hardware, como veremos em Mapas de Karnaugh).

(c) Tabela incompleta. Deve ser evitado com uso de ferramentas automatizadas.

(d) T.V. degenerada ou simplificada.

16/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

17/42

Minterms e equacoes SOP

Para uma funcao booleana de N variaveis, um minterm e qualquertermo de produtos que contenha N literais.

Por exemplo, a′ · b · c, a · b′ · c ′ e a′ · b′ · c sao exemplos de minterms

para f (a, b, c).

Examinando tabelas-verdade, concluımos que cada entrada e umminterm.

Dada a funcao:

y = a′ · b · c ′ + a · b · c ′ + a · b · c

Essa funcao e denominada expansao de minterms

Tambem e uma soma de produtos (sum-of-products - SOP)

18/42

Minterms e equacoes SOPDada a funcao:

y = a′ · b · c ′ + a · b · c ′ + a · b · cA tabela, a seguir, inclui os minterms correspondentes

Observe que y = 1 aparecem somente para os minterms presentes naequacao anterior, portanto, uma outra representacao para essa equacaoe:

y = m2 + m6 + m7 ou y =∑

m(2, 6, 7)

19/42

Minterms e equacoes SOP

Cada termo de uma SOP e denominado um implicante porque, quandotal termo e 1, a funcao tambem e 1.

Nem todos os minterms sao implicantes primos.

Um implicante primo e aquele do qual nao se pode remover nenhumliteral.

Por exemplo, podemos provar (prove!) que a funcaoy = a′ · b · c ′ + a · b · c ′ + a · b · c e igual a y = a · b + b · c ′

Portanto a · b e b · c ′ sao implicantes primos de y. Por outro lado,a′ · b · c ′, a · b · c ′ e a · b · c sao minterms de y.

Observe que no exemplo anterior nenhum implicante primo e umminterm.

20/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

21/42

Maxterms e equacoes POS

Para uma funcao booleana de N variaveis, um maxterm e qualquertermo de soma que contenha N literais.

Por exemplo, a′ + b′ + c ′, a + b′ + c ′ e a + b + c sao exemplos demaxterms para f (a, b, c).

22/42

Maxterms e equacoes POSDada a funcao:

y = a′ · b · c ′ + a · b · c ′ + a · b · c

A tabela, a seguir, inclui os maxterms correspondentes

Deve-se tomar os termos em que y = 0 e complementa-los:

y = (m0 + m1 + m3 + m4 + m5)′

= (a′ · b′ · c ′ + a′ · b′ · c + a′ · b · c + a · b′ · c ′ + a · b′ · c)′

= (a + b + c) · (a + b + c ′) · (a + b′ + c ′) · (a′ + b + c) · (a′ + b + c ′)

23/42

Maxterms e equacoes POS

A expressao (slide anterior) contem somente maxterms.

y = (a + b + c) · (a + b + c ′) · (a + b′ + c ′) · (a′ + b + c) · (a′ + b + c ′)

E cohecida com uma expressao de maxterms.

Tambem conhecida com um produto de somas (product-of-sum - POS).

Representacoes:y = M0 ·M1 ·M3 ·M4 ·M5

y =∏

M(0, 1, 3, 4, 5)

24/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

25/42

Circuitos padroes para equacoes SOP

Qualquer SOP pode ser implementada usando portas AND na primeiracamada (produto) e uma porta OR na segunda camada (soma).

Portas NAND/NOR de duas entradas exigem somente quatrotransistores, ao passo que as AND/OR de duas entradas exigem seis.Portanto o circuito (c) requer menos hardware.

26/42

Circuitos padroes para equacoes POS

Qualquer POS pode ser implementada usando portas OR na primeiracamada (soma) e uma porta AND na segunda camada (produto).

Pelo mesmo motivo do caso anterior, o circuito (c) requer menoshardware.

27/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

28/42

Mapas de Karnaugh

Vimos que muitas vezes uma funcao booleana permite simplificacoesque sao desejaveis para poupar recursos de hardware, normalmenteresultando em circuitos mais rapidos e com menor consumo energetico.

A simplificacao de uma funcao binaria pode ser feita por quatro modosprincipais:

1 analiticamente2 usando mapas de Karnaugh3 usando o algoritmo de Quine-McCluskey e suas derivacoes4 usando metodos heurısticos quase mınimos

Os dois primeiros sao procedimentos manuais, os outros dois tem porbase sistemas computacionais.

Tecnicas analıticas (algebra booleana) trazem a dificuldade de saberquando a expressao irredutıvel foi alcancada.

29/42

Mapas de Karnaugh

A abordagem de Karnaugh e a preferida para desenvolvimento deotimizacao manual.

Um mapa de Karnaugh e um outro modo de apresentar a T.V. de umafuncao booleana, objetivando sua simplificacao.

30/42

Implicantes primos

Para simplificar uma funcao, todos os 1’s devem ser agrupados emconjuntos tao grande quanto possıvel, cujos tamanhos sao potencias dedois (1, 2, 4, 8, . . . ).

(a) y = a · b(b) Tres 1’s, dois agrupamentos: y = a′ · b + a · b′ · c ′

(c) Seis 1’s, dois agrupamentos: y = b · d + b′ · c ′ · d ′

31/42

Implicantes Essenciais

Cada grupo maximizado de 1’s em um mapa de Karnaugh e umimplicante primo.

Nem todos os implicantes primos podem ser necessarios:

Observe que somente um dos implicantes primos do centro e necessario.

Um implicante essencial e um implicante primo que contem no mınimoum elemento (minterm) nao coberto por qualquer outro implicanteprimo.

32/42

Procedimento para minimizacao via uso de mapas deKarnaugh

1 Forme agrupamentos com todos os implicantes (1s) presentes no mapa.

2 Os agrupamentos sempre devem ter o maior tamanho possıvel,respeitando potencias de dois (1, 2, 4, 8, . . . ), mesmo que utilizemimplicantes ja agrupados.

3 Cada agrupamento deve ter pelo menos um implicante exclusivo, ouseja, nao faca agrupamentos denecessarios contendo somenteimplicantes ja agrupados.

Exercıcios . . .

33/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

34/42

Tempos de propagacao e Glitches

Circuitos sequenciais podem facilmente gerar glitches: picos indesejadosde tensao ou corrente eletrica na saıda do mesmo.

Os circuitos combinacionais tambem podem gerar glitches, dados osdiferentes tempos de propagacao de alta para baixa, ou vice-versa, emdiferentes partes do circuito.

Os mapas de Karnaugh podem ser utilizados, alem de simplificarfuncoes, para evitar glitches.

35/42

Tempos de propagacao e Glitches

Considere o circuito abaixo onde a SOP irredutıvel e y = b · c ′ + a · c eum possıvel circuito, figura (c).

A figura (c) apresenta um diagrama de tempo ampliado para: a=b=1 ec vai de 0 para 1.

Perceba que na transicao (figura (d)) de 111 para 110, mesmo y sendoigual a 1 para ambos, ha uma mudanca indesejada na saıda: glitche.

36/42

Evitando o Glitche

Observe que ha dois implicantes essenciais vizinhos que provoca o glitchna transicao de um para outro.

Entretanto ha um outro implicante primo, nao mostrado no mapa: a · b,que nao e implicante essencial.

Perceba que esse implicante redundante cobre exatamente a transicaoonde ocorre o glitch, de modo que sua inclusao impediria tal glitch:y = b · c ′ + a · c + a · bNa pratica o que se faz e amostrar os resultados apos um temposuficientemente longo que assegure o tempo de propagacao eacomodacao dos resultados.

37/42

Conteudo programatico

1 Algebra Booleana

2 Tabelas-Verdade

3 Minterms e equacoes SOP

4 Maxterms e equacoes POS

5 Circuitos padroes para equacoes SOP e POS

6 Mapas de Karnaugh

7 Tempos de propagacao e Glitches

8 Exemplo de Projeto de Circuito

38/42

Projeto de conversor BCD para SSD

Projete um circuito logico simplificado que converta o codigo BCD parao SSD apresentado na figura. Ou seja, deve-se fornecer ao circuito(entradas) um codigo BCD, atraves de chaves, e obter na saıda aapresentacao do valor decimal correspondente.

BCD - Binary-Coded DecimalSSD - Seven-Segment Display

39/42

BCD para SSD: Tabela Verdade

40/42

BCD para SSD: Mapa de Karnaugh do Segmento g

41/42

BCD para SSD: Circuito do Segmento g

42/42