6 circuitos de chaveamentos e circuitos l...

23
Notas de aula de MAC0329 (2004) 39 6 Circuitos de chaveamentos e Circuitos L´ ogicos Esta se¸ ao cont´ em uma breve introdu¸ ao a circuitos digitais (l´ ogicos), sua rela¸ ao com a ´ algebra booleana, e alguns problemas relacionados ao projeto de circuitos l´ ogicos. Mais detalhes podem ser encontrados em quaisquer livros sobre projeto de circuitos l´ ogicos (exemplo: [Mendelson, 1977, Hill and Peterson, 1981, Katz, 1994, Micheli, 1994]). 6.1 Circuitos de chaveamentos Na vida di´ aria deparamos com dispositivos f´ ısicos de dois estados tais como interruptores, con- tatos, diodos, transistores, etc. Dependendo do dispositivo em quest˜ ao, eles podem tomar os esta- dos ligado/desligado, conduzindo/n˜ ao conduzindo, fechado/aberto, carregado/descarregado, magneti- zado/n˜ ao magnetizado, alto-potencial/baixo-potencial, etc. V´ arios circuitos podem ser formados com esses dispositivos tais como circuitos de computadores eletrˆ onicos, sistemas de chaveamento telefˆ onico, dispositivos ou sistemas de controle em geral (elevador, display digital, etc), etc. Em um circuito el´ etrico, uma chave ´ e um dispositivo ligado a um ponto do circuito e que pode tomar um dos dois estados, fechado ou aberto. No estado fechado, a chave permite que a corrente passe atrav´ es do ponto, enquanto que no estado aberto nenhuma corrente passa atrav´ es do ponto. O estado fechado (respec., aberto) pode ser referenciado por 1 (respec., 0) e as chaves podem ser representadas por letras como x, y, z , etc. Dois pontos P e Q (inicial e final) est˜ ao ligados por um circuito de chaveamento se estes est˜ ao ligados por um circuito (linhas) no qual est´ a localizado um n´ umero finito de chaves. A disposi¸ ao dos fios e das chaves no circuito determina alguns tipos de circuitos. Os poss´ ıveis tipos est˜ ao ilustrados a seguir: 6.1.1 Circuitos em s´ erie A corrente flui de P a Q se e somente se todas as chaves estiverem fechadas. c a b P Q Figura 1: Exemplo de um circuito em s´ erie. 6.1.2 Circuitos em paralelo A corrente flui de P a Q se pelo menos uma das chaves estiver fechada. P a b c d Q Figura 2: Exemplo de um circuito em paralelo.

Upload: others

Post on 08-Jan-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 39

6 Circuitos de chaveamentos e Circuitos Logicos

Esta secao contem uma breve introducao a circuitos digitais (logicos), sua relacao com a algebrabooleana, e alguns problemas relacionados ao projeto de circuitos logicos. Mais detalhes podemser encontrados em quaisquer livros sobre projeto de circuitos logicos (exemplo: [Mendelson, 1977,Hill and Peterson, 1981, Katz, 1994, Micheli, 1994]).

6.1 Circuitos de chaveamentos

Na vida diaria deparamos com dispositivos fısicos de dois estados tais como interruptores, con-tatos, diodos, transistores, etc. Dependendo do dispositivo em questao, eles podem tomar os esta-dos ligado/desligado, conduzindo/nao conduzindo, fechado/aberto, carregado/descarregado, magneti-zado/nao magnetizado, alto-potencial/baixo-potencial, etc. Varios circuitos podem ser formados comesses dispositivos tais como circuitos de computadores eletronicos, sistemas de chaveamento telefonico,dispositivos ou sistemas de controle em geral (elevador, display digital, etc), etc.

Em um circuito eletrico, uma chave e um dispositivo ligado a um ponto do circuito e que pode tomarum dos dois estados, fechado ou aberto. No estado fechado, a chave permite que a corrente passeatraves do ponto, enquanto que no estado aberto nenhuma corrente passa atraves do ponto. O estadofechado (respec., aberto) pode ser referenciado por 1 (respec., 0) e as chaves podem ser representadaspor letras como x, y, z, etc.

Dois pontos P e Q (inicial e final) estao ligados por um circuito de chaveamento se estes estao ligadospor um circuito (linhas) no qual esta localizado um numero finito de chaves.

A disposicao dos fios e das chaves no circuito determina alguns tipos de circuitos. Os possıveis tiposestao ilustrados a seguir:

6.1.1 Circuitos em serie

A corrente flui de P a Q se e somente se todas as chaves estiverem fechadas.

ca bP Q

Figura 1: Exemplo de um circuito em serie.

6.1.2 Circuitos em paralelo

A corrente flui de P a Q se pelo menos uma das chaves estiver fechada.

P

a

b

c

d

Q

Figura 2: Exemplo de um circuito em paralelo.

Page 2: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 40

6.1.3 Circuitos em serie-paralelo

Envolvem ligacoes em serie e em paralelo. Em geral, pode-se trocar uma chave de um circuito por umcircuito em serie ou em paralelo para se obter novos circuitos serie-paralelos.

P Q

ab c

a

b d c

Figura 3: Exemplo de um circuito em serie-paralelo.

6.1.4 Circuitos ponte

Sao circuitos que nao sao serie-paralelo.

P Q

a

bc

e

d

Figura 4: Exemplo de um circuito-ponte.

Com relacao aos circuitos de chaveamento, podemos observar que:

• Duas chaves com o mesmo nome operam de forma identica (ou seja, se uma esta aberta, a outraesta necessariamente aberta e vice-versa). Chaves com nomes complementados operam de formacomplementar (se a chave x esta aberta entao a chave x esta fechada e vice-versa).

• Denotando os circuitos em serie como o produto das chaves (por exemplo, x y se as chaves saox e y) e os circuitos em paralelo pela soma das chaves (por exemplo, a + b + c se as chavessao a, b e c), podemos ver que qualquer circuito em serie-paralelo corresponde a uma expressaobooleana com n variaveis, onde n e a quantidade de chaves com nomes distintos (a menos decomplementacao) presentes no circuito. No caso do exemplo em serie-paralelo acima, a expressaocorrespondente e:

a(bc + a) + bdc

As chaves (com nomes distintos) correspondem as variaveis booleanas, a posicao das chavesdefine o valor dessas variaveis, e o estado do circuito estar ou nao conduzindo corrente de P aQ corresponde ao valor (1 ou 0, respectivamente) da funcao.

Analogamente, qualquer expressao envolvendo +, · e complementacao de variaveis correspondea um circuito em serie-paralelo.

Podemos dizer que uma funcao representa um circuito e que um circuito realiza uma funcao.

• Dois circuitos envolvendo as mesmas chaves sao equivalentes se para as mesmas posicoes daschaves a corrente flui ou nao flui de P a Q em ambos. Obviamente, as expressoes correspondentesa circuitos equivalentes sao tambem equivalentes (e vice-versa).

Page 3: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 41

• Da mesma forma que podemos simplificar expressoes booleanas, podemos tambem simplificar oscircuitos.

• Considerando-se que as chaves podem tomar apenas dois estados, que o circuito ou esta ou naoesta conduzindo corrente (mas nao ambos), e ignorando-se questoes fısicas como voltagem, re-sistencia, quantidade de corrente eletrica, os circuitos de chaveamento podem ser modelados pelaalgebra booleana. A menos das diferencas de terminologia e de significado, trata-se exatamenteda logica proposicional (ou da algebra booleana 〈B, +, ·, , 0, 1〉).

• Para cada circuito-ponte tambem corresponde uma funcao. A expressao correspondente podeser obtida tomando-se todos os caminhos que conduzem corrente de P a Q. Porem, dada umafuncao qualquer, determinar um circuito-ponte correspondente nao e facil.

No exemplo da figura 4, o circuito em serie-paralelo correspondente e:

QP

a

b

d

c e

e

c d

6.2 Circuitos logicos

Usando a convencao 1 para presenca de sinal e 0 para ausencia de sinal, podemos olhar circuitosde chaveamento do ponto de vista logico (funcional). Por exemplo, no caso de circuitos em serie, acorrente so flui com todas as portas fechadas, isto e, com sinais de entrada presentes em todas aschaves. Entao, um circuito em serie com n chaves pode ser representado por um dispositivo comn entradas (correspondendo cada uma delas a uma chave), e uma saıda que vale 1 se ha sinal emtodas as entradas e 0 se ha pelo menos uma entrada sem sinal. Da mesma forma, podemos terdispositivos representando um circuito em paralelo, ou algum outro circuito simples. Tais dispositivossao chamados portas logicas.

As principais portas logicas estao ilustradas a seguir:

Porta E Porta OU Inversor NAO Porta XOR Porta NAO-E Porta NAO-OU

Figura 5: Representacao grafica de algumas portas logicas.

As ilustracoes acima mostram portas com duas entradas, mas sao usuais tambem as portas E, OU,NAO-E e NAO-OU com mais de duas entradas. As funcoes representadas por estas portas (para duasentradas x1 e x2) estao descritas a seguir:

Page 4: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 42

E OU NAO XOR NAO-E NAO-OUx1 x2 x1 x2 x1 + x2 x1 x1 ⊕ x2 x1 x2 x1 + x2

0 0 0 0 1 0 1 10 1 0 1 1 1 1 01 0 0 1 0 1 1 01 1 1 1 0 0 0 0

Circuitos logicos sao circuitos construıdos a partir da interconexao de portas logicas. Comparadoaos circuitos de chaveamento, as entradas das portas logicas em um circuito logico correspondem aschaves enquanto uma saıda corresponde a indicar se a corrente esta passando de um ponto ao outrono circuito de chaveamento.

Fisicamente, as entradas e a saıda sao quantidades fısicas (por exemplo, nıvel de voltagem). Adota-se uma convencao para distinguir dois estados (0 e 1) dependendo da quantidade fısica corrente. Aimplementacao fısica de portas logicas e altamente dependente de tecnologia e nao sera consideradanesta disciplina.

Uma vez que entradas e saıdas sao sempre 0s ou 1s, podemos pensar em circuitos logicos como formasde se expressar funcoes booleanas de Bn em B. Portanto, a algebra booleana constitui um fundamentoteorico para o projeto de circuitos digitais (ou seja, uma das razoes para se estudar algebra booleanae justamente para podermos entender e projetar circuitos digitais!).

6.3 Completude funcional

Conforme ja vimos anteriormente, qualquer expressao booleana e obtida compondo-se subexpressoescom os operadores + (disjuncao), · (conjuncao) e . Em particular, vimos que qualquer funcao de Bn

em B pode ser expressa por uma expressao booleana. Isto significa que qualquer funcao de Bn em B

pode ser implementada com circuitos que utilizam apenas as portas E, OU e o inversor NAO.

Mais ainda, vimos que o sistema algebrico continua completo mesmo restrito aos operadores + e (ou· e ), pois o outro pode ser expresso em funcao desses dois.

No caso de portas logicas, temos os dois casos a seguir:

6.3.1 Portas E e NAO

a + b = a + b = (a b)

Figura 6: Realizacao do operador OU com E e NAO.

6.3.2 Portas OU e NAO

a b = a b = (a + b)

Page 5: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 43

Figura 7: Realizacao do operador E com OU e NAO.

6.3.3 Portas NAO-E / Portas NAO-OU

Alem dos dois casos acima, portas NAO-E e portas NAO-OU sozinhas tambem constituem sistemascompletos. A figura 8 ilustra a expressao de NAO, E e OU em termos de NAO-E e em termos deNAO-OU.

bab

a

a a

a

b

a+b

aa+b

b

ab

b

a

a a

Figura 8: Realizacao do operador NAO, E e OU com NAO-E e com NAO-OU.

De fato, com respeito a porta NAO-E temos:

a = a + a = a a

a b = a b + a b = a b + a b = ab ab

a + b = aa + bb = a a + b b = (a a)(b b)

e com respeito a porta NAO-OU, temos

a = a a = a + a

ab = (a + a)(b + b) = (a + a)(b + b) = (a + a) + (b + b)

a + b = (a + b)(a + b) = (a + b)(a + b) = (a + b) + (a + b)

Page 6: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 44

Exemplo: Dada a funcao f(a, b, c, d) = a+bc+cd, expresse f de forma que sua realiazacao correspondaa um circuito dois-nıveis utilizando apenas as portas especificadas. Suponha que as entradas da portaslogicas podem ser variaveis com ou sem complementacao.

a) portas NAO-E

b) portas OU e NAO-E

c) portas NAO-OU e OU

No caso (a) basta utilizarmos o fato de que f = f . Assim temos f = f = a + bc + cd = a · b c · cdNo caso (b), basta aplicarmos DeMorgan em cada um dos termos do resultado anterior. Assim temos

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

Finalmente, no caso (c) basta aplicarmos DeMorgan novamente. Assim temos f = a+(b + c)+(c + b).

Exercıcio: Desenho os circuitos correspondentes a cada uma das expressoes do exemplo acima.

6.4 Circuitos combinacionais e sequenciais

Os circuitos combinacionais sao aqueles nos quais as saıdas sao determinadas em funcao apenas dasentradas atuais. Os circuitos sequenciais sao aqueles nos quais as saıdas dependem nao apenas dasentradas atuais mas tambem de dados previos nos instantes anteriores. Pode-se dizer que circuitossequenciais envolvem realimentacao, ou seja, eles possuem “memoria”.

6.5 Projeto de circuitos combinacionais

Projetar um circuito consiste em especificar um circuito que implementa uma certa funcionalidadedesejada. No projeto de circuitos digitais, varias questoes devem ser levadas em consideracao taiscomo tecnologia, custo, quantidade de portas logicas a serem utilizadas, eficiencia computacional, etc.A seguir discorremos brevemente sobre alguns aspectos a serem considerados neste curso.

A velocidade de computacao e afetada por diversos fatores. Dentre eles, o caminho mais longo (emtermos de quantidade de portas logicas) que o sinal deve percorrer ate produzir o resultado define onumero de nıveis do circuito. Assim, podemos ter

• circuitos 2-nıveis

• circuitos multi-nıveis

Encontrar uma representacao compacta 2-nıveis e um problema que ja foi bastante estudado e exis-tem varios algoritmos/tecnicas para este problema (Mapa de Karnaugh, metodo tabular de Quine-McCluskey, Espresso, etc).

Em termos funcionais, os processamentos efetuados pelo computador correspondem a realizacao devarias funcoes (a composicao das saıdas de varias funcoes corresponde ao resultado de um certo proces-samento). Em vez de especificar um circuito para cada uma das funcoes, muitas vezes pode-se reduzira quantidade de portas logicas necessarias para implementar todas as funcoes compartilhando-se sub-circuitos entre as varias funcoes. Portanto, podemos tambem pensar em circuitos com multiplassaıdas.

No caso de simplificacao 2-nıveis de funcoes booleanas alem de algoritmos especıficos para simpli-ficar (ou minimizar) funcoes individualmente, sao tambem importantes os algoritmos para minimizar

Page 7: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 45

uma colecao de funcoes (que nao necessariamente resulta em minimizacao individual, mas resulta emminimizacao coletiva). No caso de projeto multi-nıveis, o problema de simplificacao e mais complexo.

A tecnologia a ser utilizada para a realizacao das funcoes pode influenciar o tipo de otimizacao emquestao. Por exemplo, pode-se desejar utilizar apenas um conjunto de portas logicas (por exemploNAO-E), ou entao, pode-se querer utilizar dispositivos programaveis com uma certa estrutura, ouainda utilizar circuitos comerciais disponıveis no mercado.

Os passos basicos para se projetar um circuito sao:

• Entender o problema: Identificar os dados de entrada, de controle e de saıda, e de que formao controle age sobre os dados de entrada para produzir a saıda desejada; assumir hipotesesrazoaveis; dar nomes aos elementos.

• Formular o problema em alguma representacao padrao: descrever formalmente a relacao entrada-saıda (por exemplo, atraves de tabelas-verdade ou expressoes booleanas).

• Escolher uma implementacao: na implementacao, a descricao formal (abstrata) deve ser ma-peada para algo concreto como portas logicas. Assim, deve-se decidir a implementacao emtermos concretos: logica 2-nıveis, logica multi-nıveis, logica NAO-E, logica NAO-OU, PLA, usarcomponentes disponıveis comercialmente, etc.

• Aplicar um procedimento de projeto: uma vez escolhida a implementacao, deve-se fazer o ma-peamento propriamente dito. No caso de implementacao por portas logicas, um dos objetivospode ser a minimizacao do numero total de portas logicas em uma implementacao dois-nıveis.Neste caso pode-se aplicar tecnicas de minimizacao dois-nıveis.

Exemplo: Deseja-se projetar um sistema de alarme contra roubos em um banco. Este sistema seraalimentado por sinais provenientes de 4 linhas. A linha A esta conectada a uma chave secreta decontrole, a linha B a um sensor sob um cofre de aco no deposito, a linha C a um relogio a bateria, e alinha D a fechadura do deposito que abriga o cofre de aco. As seguintes situacoes produzem voltagemcorrespondente ao valor logico 1 em cada uma das linhas:

A: A chave secreta de controle esta fechada

B: O cofre esta em sua posicao normal

C: O relogio esta entre 10:00 e 15:00 horas (horario de atendimento do banco).

D: A porta do deposito que abriga o cofre esta fechada

O alarme deve soar (saıda igual ao valor logico 1) se a chave secreta de controle esta fechada e o cofrefoi movido, ou quando a sala e aberta apos o expediente bancario, ou quando o deposito e aberto coma chave secreta de controle aberta.

Podemos ver que as entradas consistem dos sinais provenientes das 4 linhas e a saıda sera o soar ouo nao soar do alarme. Assim, podemos expressar a saıda atraves de uma funcao f(A, B, C, D). Afuncao toma valor 1 (isto e, o alarme soa) nos seguintes casos:

A chave secreta de controle esta fechada e o cofre foi movido: AB

O deposito e aberta apos o expediente bancario: C D

O deposito e aberto com a chave secreta de controle aberta: A D

Page 8: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 46

Logo, a funcao pode ser escrita como f(A, B, C, D) = AB + C D + A D. Esta expressao pode sersubstituıda por outra equivalente mais adequada a implementacao escolhida. �

Exercıcio: Desenhe o circuito de chaveamento e o circuito digital correspondente a funcao f(a, b, c, d, e) =(a + b)cd + e.

Exercıcio: Qual e a funcao correspondente ao circuito de chaveamento a seguir ?

a

b

c

d

fe

Exercıcio: Desenhe circuitos de chaveamento correspondentes as seguintes expressoes:x y z + x (y + y)x [y (z + w) + z (u + v)](a + b + c)(a + bc) + c d + d (b + c)

Exercıcio: Qual e a funcao correspondente ao circuito logico a seguir ?

d

c

b

a

c

a

f

Expresse a funcao na forma SOP e desenhe o circuito correspondente.

Exercıcio: Em alguns casos, simplificar a expressao dual e muito mais facil do que simplificar aexpressao original. Simplifique a funcao f = cb + abcd + cd + ac + abc + b c d. Dica: considereg = cb + abcd + cd e h = ac + abc + b c d. Simplifique g∗ e h∗ e use o fato de que g = (g∗)∗ e h = (h∗)∗.

Exercıcio: Suponha que as entradas das portas logicas podem ser variaveis com ou sem comple-mentacao. Dada uma funcao na forma produto de somas, desenhe circuitos dois-nıveis utilizandoapenas:

a) portas OU e E

b) portas NAO-OU

c) portas E e NAO-OU

d) portas NAO-E e E

Page 9: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 47

Exercıcio: Uma sala tem duas portas e ambas podem ser utilizadas tanto como entrada como saıda.Deseja-se instalar interruptores perto das duas salas de forma que ao entrar na sala seja possıvelacendermos a luz da sala e ao saırmos da sala seja possıvel apagarmos as luzes, independentementeda porta utilizada para entrar ou sair da sala. Podemos pensar nos interruptores como sendo asentradas do sistema e a lampada como sendo a saıda do sistema. O funcionamento logico deste sistema(acender/apagar da lampada) pode ser descrito por uma funcao. Derive a funcao e em seguida descrevacomo implementar o circuito logico correspondente.

Exercıcio: No exercıcio anterior, como ficaria a sua funcao se a sala fosse imensa e tivesse tres portas?

Exercıcio: Quais dos seguintes contem circuitos combinacionais e quais contem circuitos sequenciais?Justifique a sua reposta.

a) Uma maquina de lavar automatica com etapas de molho, lavagem, enxague e centrifugacao.

b) Um circuito de tres entradas que produz saıda 1 sempre que ao menos duas das entradas tem valor1.

c) Um circuito que divide dois numeros de dois bits e devolve o quociente e o resto da divisao.

d) Uma maquina que aceita uma cedula de um real e devolve tres moedas de 25 centavos, duas moedasde 10 centavos e uma de 5 centavos.

e) Um relogio digital que toca um alarme quando um determinado horario e atingido.

Exercıcio: Antonio e Bia tem dois filhos, Carlos e Dina. Quando comem fora, eles sempre vao oua um restaurante que serve hamburgueres ou entao a outro que serve frangos. Antes de sair de casa,a famılia vota para decidir em qual dos restaurantes ira. O restaurante que recebe maior numero devotos ganha, exceto quando Antonio e Bia votam pelo mesmo restaurante, e neste caso o restauranteescolhido por eles ganha. Em todas as outras situacoes de empate, a famılia vai ao restaurante defrangos. Projete um circuito logico que automaticamente seleciona um restaurante quando a famıliavota.

Page 10: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 48

7 Logica combinacional dois-nıveis

Objetivo: encontrar expressoes mınimas na forma soma de produtos ou produto de somas, que podemser implementados em circuitos com dois nıveis de portas logicas.

Referencias para esta parte: capıtulo 6 de [Hill and Peterson, 1981], capıtulo 7 de [Micheli, 1994],capıtulo 4 de [Mendelson, 1977], etc.

7.1 Revisao

Os dados nos computadores digitais sao representados em binario e os processamentos nada mais saodo que mapeamentos de dados binarios em dados binarios, ou seja, funcoes que mapeiam n dıgitosbinarios em m dıgitos binarios.

Seja A(n) o conjunto de todas as funcoes booleanas em A com n variaveis e seja ≤ uma relacao definidaem A(n) da seguinte forma:

f ≤ g ⇐⇒ f(a) ≤ g(a), ∀a ∈ An .

Seja (f · g)(a) = f(a) · g(a), (f + g)(a) = f(a) + g(a), e f(a) = f(a), ∀a ∈ An. Fazendo 0(a) = 0 e1(a) = 1 para todo a ∈ An, o conjunto (A(n), +, ·, ,0,1) tambem e uma algebra booleana.

Daqui em diante consideremos a algebra booleana 〈B(n), +, ·, ,0,1〉.

Uma funcao booleana f : {0, 1}n → {0, 1} pode ser caracterizada em termos de seu conjunto-um,f〈1〉 = {b ∈ {0, 1}n : f(b) = 1}, bem como em termos do seu conjunto-zero, f〈0〉 = {b ∈ {0, 1}n :f(b) = 0}.

As funcoes booleanas que tomam valor 1 em exatamente um elemento de {0, 1}n sao denominadosmintermos. Um mintermo em n variaveis e uma conjuncao (produto) de exatamente n literais, osquais envolvem diferentes variaveis. Uma conjuncao em que uma variavel aparece no maximo umavez e usualmente denominada de produto, e expresso como p =

n

i=1σi, σi ∈ {xi, xi,

′ ′}, com ′ ′

denotando o caractere vazio. Por exemplo, para n = 4, x1x3 e x2x3x4 sao exemplos de produtos.Mintermos (aqueles em que todas as variaveis aparecem exatamente uma vez, ou na forma barradaou na forma nao-barrada) sao tambem chamados de produtos canonicos.

Os atomos de 〈B(n), +, ·, ,0,1〉 sao os 2n mintermos. Portanto, toda funcao booleana pode ser escritacomo uma disjuncao (soma) de mintermos distintos. Mais ainda, tal representacao e unica a menosda ordem dos mintermos e sera denominada soma canonica de produtos (SOP canonica).

7.2 Simplificacao de notacao

O conjunto de todas as sequencias de n bits correspondem a representacao binaria dos numeros entre 0e 2n−1. Com base neste fato, podemos caracterizar os produtos canonicos, e as somas canonicas (queserao denominadas maxtermos) atraves da notacao decimal correspondente. A tabela 1 apresentaos mintermos e maxtermos para tres variaveis e a notacao associada a cada um deles.

Observe que x1x2x3 = 1 se e somente se x1 = 1, x2 = 0 e x3 = 1. Portanto, a SOP canonica de umaexpressao booleana pode ser diretamente obtida atraves da soma dos mintermos correspondentes aos1’s da sua tabela-verdade. Analogamente, (x1 + x2 + x3) = 0 se e somente se x1 = 0, x2 = 1 e x3 = 0,

Page 11: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 49

x1x2x3 maxtermos mintermos

0 0 0 x1 + x2 + x3 = M0 x1x2x3 = m0

0 0 1 x1 + x2 + x3 = M1 x1x2x3 = m1

0 1 0 x1 + x2 + x3 = M2 x1x2x3 = m2

0 1 1 x1 + x2 + x3 = M3 x1x2x3 = m3

1 0 0 x1 + x2 + x3 = M4 x1x2x3 = m4

1 0 1 x1 + x2 + x3 = M5 x1x2x3 = m5

1 1 0 x1 + x2 + x3 = M6 x1x2x3 = m6

1 1 1 x1 + x2 + x3 = M7 x1x2x3 = m7

Tabela 1: Tabela de maxtermos e mintermos

e portanto, a POS canonica pode ser obtida pelo produto dos maxtermos correspondentes aos 0’s databela-verdade.

Exemplo: Dada a tabela-verdade

x1x2x3 f1

000 1001 1010 0011 0100 1101 1110 1111 0

a forma SOP canonica da funcao e

f(x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3

e sua notacao simplificada e dada por :

f(x1, x2, x3) =∑

m(0, 1, 4, 5, 6).

A forma POS canonica e f(x1, x2, x3) = (x1 + x2 + x3)(x1 + x2 + x3)(x1 + x2 + x3) =∏

M(2, 3, 7).

7.3 Minimizacao de funcoes booleanas

Quando pensamos em minimizacao, devemos estabelecer um criterio de custo que desejamos minimizar.O seguinte criterio e bastante utilizado.

Definicao: Uma expressao booleana escrita como soma de produtos e minimal se (1) nao existenenhuma outra expressao equivalente com um numero menor de termos e (2) nao existe nenhumaoutra expressao equivalente com igual numero de termos mas com menor numero de literais.

Definicao: Um implicante primo (ou simplesmente primo) de uma funcao booleana f e umproduto p tal que p ≤ f , e nao ha outro produto p′, p ≤ p′, tal que p′ ≤ f .

Page 12: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 50

Dada uma expressao minimal, se um literal de qualquer um dos produtos da expressao e removida, aexpressao resultante nao mais representa a mesma funcao.

Teorema: Qualquer produto em uma expressao minimal do tipo soma de produtos e um implicanteprimo.

7.3.1 Representacao cubica (ou via intervalos)

Um conceito utilizado com bastante frequencia no contexto de manipulacao de funcoes booleanas e ode cubos.

As sequencias de n bits, correspondentes a todas as possıveis combinacoes de valores que as n variaveisde uma funcao Booleana podem tomar, podem ser representadas por pontos no n-espaco. A colecaode todos os 2n pontos possıveis formam os vertices de um n-cubo. A figura 9 mostra um 3-cubo.

000

010

110

111

001

101011

100

Figura 9: Diagrama do 3-cubo.

Os vertices de um n-cubo sao denominados 0-cubos. Dois 0-cubos formam um 1-cubo se eles diferemem apenas uma coordenada. Quatro 0-cubos formam um 2-cubo se eles sao iguais a menos de duascoordenadas. De modo geral, 2k 0-cubos formam um k-cubo se eles sao exatamente iguais a menos dek coordenadas.

Mais formalmente, um cubo e um conjunto de elementos em {0, 1}n para os quais um produto tomavalor 1, i.e., se p e um produto entao o cubo correspondente e o conjunto p〈1〉 = {b ∈ {0, 1}n : p(b) =1}. Portanto, existem tantos cubos contidos em {0, 1}n quanto produtos envolvendo as variaveisx1, x2, . . . , xn.

Cubos nao sao subconjuntos arbitrarios de {0, 1}n. No contexto de reticulados, cubos sao sub-reticulados do reticulado {0, 1}n, denominados intervalos.

Um intervalo e caracterizado por dois extremos: o menor e o mair elementos contidos nele. Assim, ointervalo de extremo inferior 100 e extremo superior 101 e denotado [100, 101] e definido por [100, 101] ={x ∈ {0, 1}3 : 100 ≤ x ≤ 101}.

Denotamos um k-cubo colocando um X nas coordenadas que nao sao iguais. Assim, o 1-cubo{000, 100}, que corresponde ao intervalo [000, 100], e representado por X00. O 2-cubo {000, 001, 100, 101},que corresponde ao intervalo [000, 101], e representado por X0X.

NOTA: Daqui em diante utilizaremos arbitrariamente os termos produto, cubo ou intervaloquando nos referirmos a um produto.

Uma funcao booleana com poucas variaveis (tipicamente 3 ou 4) pode ser graficamante ilustradaatraves do diagrama de Hasse. Usaremos a convensao de desenhar elementos de f〈1〉 como cırculospreenchidos, enquanto os elementos de f〈0〉 serao representados por cırculos nao preenchidos. A

Page 13: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 51

representacao via diagrama de Hasse da funcao f1(x1, x2, x3) = x1 x2 x3 +x1 x2 x3 +x1 x2 x3 +x1 x2 x3

e mostrada na figura 10.

111

000

010 100001

101011 110

Figura 10: Representacao via diagrama de Hasse da funcao f1.

Exemplo: A figura 11 mostra alguns cubos. Dizemos que o 0-cubo 000 esta contido no (ou e cobertopelo) 1-cubo X00, ou ainda, que o 1-cubo X00 cobre o 0-cubo 000. Analogamente, dizemos que o1-cubo X00 esta contido no 2-cubo X0X ou que o 2-cubo X0X cobre o cubo X00.

a b c

000

X00 X0X

Figura 11: Os cubos 000, X00 e X0X.

Dada uma funcao f e um produto p, dizemos que o conjunto p〈1〉 e um cubo de f se p ≤ f (ou,equivalentemente, se p〈1〉 ⊆ f〈1〉). Neste sentido, mintermos sao cubos de tamanho unitario e primossao cubos maximais contidos em f〈1〉 (i.e., um cubo de f que nao e totalmente contido em outro cubode f).

Os dois primeiros cubos da Fig. 12 (em negrito) sao cubos da funcao f1 mas os dois ultimos nao sao.

Figura 12: Exemplos de um 0-cubo (intervalo 011), um 1-cubo (intervalo 0X1), um 2-cubo (intervalo0XX) e um 3-cubo (intervalo XXX), respectivamente (em negrito).

Exemplo: A funcao Booleana f =∑

m(0, 1, 4, 5, 6) e representada pelos vertices 000, 001, 100, 101e 110. Os mintermos (ou intervalos triviais) de f e os implicantes primos (ou cubos ou intervalosmaximais) de f sao mostrados respectivamente nas figura 13a e 13b.

A forma SOP canonica de f pode ser entendida como sendo a colecao de 0-cubos de f ou, equivalen-temente, como a colecao de intervalos triviais (intervalos com apenas um elemento), cada um delescorrespondendo a um elemento em f〈1〉. Em geral, qualquer expressao na forma SOP corresponde auma colecao de cubos (ou intervalos) onde nenhum deles esta propriamente contido em outro.

Page 14: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 52

001

101

X0X

1X0

000

100

110

a b

Figura 13: (a) Mintermos e (b) implicantes primos de f =∑

m(0, 1, 4, 5, 6).

7.4 Mapas de karnaugh

A minimizacao de uma expressao Booleana pode ser realizada algebricamente aplicando-se os axiomase leis da algebra Booleana. Entretanto, a manipulacao algebrica, alem de ser uma tarefa cansativa,pode facilmente induzir uma pessoa a cometer erros, principalmente quando o numero de variaveisenvolvidas e grande. Mapas de Karnaugh sao diagramas que sao utilizados para auxiliar este processo.

Qualquer livro que cobre funcoes booleanas (funcoes de chaveamento), projeto de circuitos logicos ouminimizacao logica apresenta a minimizacao de funcoes booleanas utilizando mapas de Karnaugh (ouK-maps). Mapas de Karnaugh podem ser utilizadas para minimizacao (manual) de funcoes com ate 6variaveis. (Este topico sera coberto em sala de aula, mas nao havera notas de aula sobre este topico1).

7.5 Minimizacao Tabular de Quine-McCluskey

Mapas de Karnaugh representam uma maneira visual e intuitiva de se minimizar funcoes booleanas.No entanto, elas so se aplicam a funcoes com ate 6 variaveis e nao sao sistematicos (adequados paraprogramacao). O algoritmo tabular de Quine-McCluskey para minimizacao de funcoes Booleanas e ummetodo classico que sistematiza este processo de minimizacao para um numero arbitrario de variaveis.

O algoritmo de Quine-McCluskey (QM) requer que a funcao booleana a ser minimizada esteja naforma SOP canonica. A ideia basica deste algoritmo consiste em encarar os mintermos da SOPcanonica como pontos no n-espaco, ou seja, como vertices de um n-cubo. A partir do conjunto destesvertices (ou 0-cubos) procura-se gerar todos os 1-cubos possıveis combinando-se dois deles (equivalea gerar as arestas do cubo que ligam dois 0-cubos considerados). A partir da combinacao de dois1-cubos procura-se gerar todos os possıveis 2-cubos e assim por diante, ate que nenhum cubo dedimensao maior possa ser gerado a partir da combinacao de dois cubos de dimensao menor. Os cubosresultantes (aqueles que nao foram combinados com nenhum outro) ao final de todo o processo sao osimplicantes primos.

Este processo de minimizacao pode ser facilmente associado ao processo algebrico de simplificacao. Osmintermos da expressao na forma canonica inicial correspondem aos 0-cubos. Combinar dois 0-cubospara gerar um 1-cubo corresponde a combinar dois mintermos para eliminar uma variavel e gerar umtermo com menos literais para substituı-los, como mostramos no seguinte exemplo :

x1x2x3 + x1x2x3 = x1x2(x3 + x3) = x1x2 · 1 = x1x2

Quando considerados no 3-espaco, o processo mostrado na expressao algebrica acima corresponde aoprocesso de agruparmos os 0-cubos 111 e 110 para geracao do 1-cubo 11X, como ilustra a figura 14.

1A nao ser que alguem se dispunha a desenhar os mapas ou digitalizar os mapas de algum livro.

Page 15: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 53

110

111

11X

Figura 14: Passo elementar do algoritmo de Quine-McCluskey

7.5.1 Calculo de implicantes primos

A primeira parte do algoritmo QM consiste de um processo para determinacao de todos os implicantesprimos. A seguir descrevemos os processos que constituem esta parte e, ao mesmo tempo, mostramosa sua aplicacao sobre a funcao f(x1, x2, x3) =

m(0, 1, 4, 5, 6).

• Primeiro passo : converter os mintermos para a notacao binaria.000, 001, 100, 101, 110

• Segundo passo : Separar os mintermos em grupos de acordo com o numero de 1’s em suarepresentacao binaria e ordena-los em ordem crescente, em uma coluna, separando os gruposcom uma linha horizontal.

000

001100

101110

• Terceiro passo : combinar todos os elementos de um grupo com todos os elementos do grupoadjacente inferior para geracao de cubos de dimensao maior. Para cada 2 grupos comparadosentre si, gerar um novo grupo na proxima coluna e colocar os novos cubos. Marcar com

√os

cubos que foram usados para gerar novos cubos.

√000√001√100√101√110

=⇒

00X

X00

X0110X

1X0

Observacao : o novo cubo gerado sera inserido no novo conjunto se e somente se ele ainda naoestiver contido nele.

Repetir o processo para cada nova coluna formada, ate que nenhuma combinacao mais sejapossıvel.

√000√001√100√101√110

=⇒

√00X√X00√X01√10X

1X0

=⇒ X0X

Page 16: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 54

• Quarto passo : Listar os implicantes primos. Os implicantes primos sao aqueles que nao foramcombinados com nenhum outro, ou seja, aqueles que nao estao com a marca

√.

1X0 e X0X

A primeira vista, poderıamos afirmar que a soma de todos os implicantes primos corresponde a ex-pressao minimal da funcao Booleana. No entanto, existem casos em que a soma de dois ou maisimplicantes primos cobre um outro. Neste caso, este ultimo termo e redundante, no sentido de queele pode ser eliminado do conjunto de implicantes primos, sem que a expressao resultante deixe de serequivalente a expressao original. Podemos ilustrar esta situacao no seguinte exemplo.

Exemplo: Considere a expressao Booleana f(a, b, c) =∑

m(0, 1, 3, 7). Pelo algoritmo QM obtemosos seguintes implicantes primos:

00X, 0X1 e X11.

Graficamente, estes implicantes primos (ou cubos) correspondem respectivamente aos intervalos [000, 001],[001, 011] e [011, 111] ilustrados na figura 15(a). Note, porem, que o intervalo [001, 011] e redun-

0X1

X11

00X

a b

Figura 15: Os (a) implicantes primos e uma (b) cobertura mınima .

dante, ou seja, a mesma expressao pode ser expressa apenas pelos implicantes primos 00X e X11(figura 15(b)).

Portanto, o ponto central da segunda parte do algoritmo QM e o calculo de um menor subconjuntodo conjunto de implicantes primos suficientes para cobrir2 todos os mintermos da funcao Booleana.Tal conjunto e denominado uma cobertura mınima.

7.5.2 Calculo de uma cobertura mınima

Uma cobertura mınima pode ser calculada com a ajuda de uma tabela denominada Tabela de Impli-cantes Primos, conforme descrito a seguir (com exemplos para para a funcao f(x1, x2, x3, x4, x5) =∑

(1, 2, 3, 5, 9, 10, 11, 18, 19, 20, 21, 23, 25, 26, 27)).

1. Construir a Tabela de Implicantes Primos : no topo das colunas deve-se colocar os mintermosde f e, a esquerda de cada linha, os implicantes primos. Os implicantes primos devem ser listadosem ordem decrescente de acordo com a sua dimensao, isto e, em ordem crescente de acordo como numero de literais. Deve-se acrescentar uma coluna a esquerda e uma linha na parte inferior.

Em cada linha, marcar as colunas com√

quando o implicante primo da linha cobre o mintermoda coluna.

2Um conjunto de implicantes primos (cubos maximais) cobre um mintermo (0-cubo) se este e coberto por pelo menosum dos implicantes primos.

Page 17: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 55

1 2 3 5 9 10 11 18 19 20 21 23 25 26 27

XX01X√ √ √ √ √ √ √ √

X10X1√ √ √ √

0X0X1√ √ √ √

00X01√ √

X0101√ √

1010X√ √

10X11√ √

101X1√ √

2. Selecionar os implicantes primos essenciais : deve-se procurar na tabela as colunas que contemapenas uma marca

√. A linha na qual estas colunas contem a marca

√corresponde a um

implicante primo essencial. Em outras palavras, este implicante primo e o unico que cobreo mintermo da coluna e, portanto, nao pode ser descartado. Entao, deve-se marcar com umasterisco (*) esta linha na coluna mais a esquerda, para indicar que este e um implicante primoessencial. A seguir, deve-se marcar, na ultima linha da tabela, todas as colunas cujo mintermoe coberto pelo implicante primo selecionado.

1 2 3 5 9 10 11 18 19 20 21 23 25 26 27

* XX01X√ √ √ √ √ √ √ √

X10X1√ √ √ √

0X0X1√ √ √ √

00X01√ √

X0101√ √

1010X√ √

10X11√ √

101X1√ √

√ √ √ √ √ √ √ √

Deve-se repetir este processo enquanto existir uma coluna cujo mintermo nao esta coberto peloconjunto de implicantes primos selecionados ate o momento e que satisfaz as condicoes descritas.

1 2 3 5 9 10 11 18 19 20 21 23 25 26 27

* XX01X√ √ √ √ √ √ √ √

* X10X1√ √ √ √

0X0X1√ √ √ √

00X01√ √

X0101√ √

* 1010X√ √

10X11√ √

101X1√ √

√ √ √ √ √ √ √ √ √ √ √ √

3. Reduzir a tabela : manter apenas as colunas correspondentes aos mintermos nao cobertos pelosimplicantes primos essenciais, e as linhas correspondentes aos implicantes primos que nao foramselecionados e que cobrem pelo menos um mintermo ainda nao coberto.

1 5 23

0X0X1√

00X01√ √

X0101√

10X11√

101X1√

Page 18: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 56

4. Selecionar os implicantes primos secundariamente essenciais : eliminar as linhas dominadas e ascolunas dominantes e, em seguida, selecionar os essenciais.

Eliminar colunas dominantes: Diz-se que uma coluna β na Tabela de Implicantes Primosdomina uma coluna α se e somente se β tem um

√em todas as linhas em que α tem

√. Se β

domina α, entao ela pode ser removida da tabela.

Eliminar linhas dominadas: Diz-se que uma linha A na Tabela de Implicantes Primos dominauma outra linha B se e somente se o numero de literais em A e menor que o de B, e A tem√

em pelo menos todas as colunas em que B tem√

. Se A domina B, entao existe uma formaminimal que nao utiliza o termo da linha B, ou seja, a linha B pode ser removida da tabela.

A seguir, deve-se repetir o mesmo processo do passo 2, porem os implicantes primos essenciaisserao chamados secundariamente essenciais e marcados com dois asteriscos (**), e em seguidafazer a reducao da tabela (passo 3).

1 5 23

0X0X1√

** 00X01√ √

** 10X11√

√ √ √

Deve-se repetir o processo descrito neste passo ate que nao seja mais possıvel fazer qualquereliminacao ou ate que a tabela fique vazia. Se a tabela nao ficar vazia, a tabela restante echamada tabela cıclica.

5. Aplicar o metodo de Petrick : este metodo (de busca exaustiva) pode ser utilizado para resolvera tabela cıclica. Ele fornece todas as possıveis combinacoes dos implicantes primos restantesque sao suficientes para cobrir os mintermos restantes. Deve-se escolher dentre elas, aquela queenvolve o menor numero de termos. Caso existam mais de uma nestas condicoes, deve-se escolhera de custo mınimo (aquela que envolve menor numero de literais).

Exemplo: Considere a tabela cıclica a seguir:

0 4 13 15 10 26 16

a 0X10X√ √

b 011XX√ √

c 01X1X√ √

d 1X0X0√ √

e 00X00√ √

f X1010√ √

g X0000√ √

Para que todos os mintermos da tabela cıclica sejam cobertos, a seguinte expressao deve serverdadeira.

(e + g)(a + e)(a + b)(b + c)(c + f)(d + f)(d + g) = 1

Transformando esta expressao em soma de produtos, obtemos todas as possıveis solucoes (cadaproduto e uma solucao viavel). Dentre os produtos, deve-se escolher aquele(s) de menor custo(menor numero de implicantes primos e implicantes com menor numero de literais). (Se eu naoerrei nos calculos, as solucoes sao {a, c, d, e}, {b, c, d, e} e {a, c, d, g} (outros tem custo maior).

Page 19: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 57

7.5.3 Pontos fracos do algoritmo QM

• o algoritmo requer que a funcao esteja na forma SOP canonica

• o numero de implicantes primos de uma funcao booleana com n variaveis pode ser de ordemexponencial. Um dos pontos fracos do algoritmo de QM e que ele calcula todos os implicantesprimos explicitamente.

7.6 Funcoes incompletamente especificadas

Em algumas situacoes, o valor de uma funcao para algumas entradas nao sao relevantes (tipicamenteporque tais entradas nunca ocorrerao na pratica). Em tais situacoes, tanto faz se a funcao toma valor0 ou 1 nessas entradas, que serao denominadas de don’t cares.

Para minimizar pelo algoritmo QM uma funcao incompletamente especificada, e interessante consid-erarmos todos os don’t cares na etapa de calculo dos implicantes primos, pois isto aumenta a chancede eliminarmos a quantidadde de produtos.

De forma mais generica do que a vista anteriormente, podemos entao caracterizar uma funcao booleanaf atraves dos seus conjuntos um, zero e dc (de don’t care), definidos respectivamente por f〈1〉 = {b ∈{0, 1}n : f(b) = 1}, f〈0〉 = {b ∈ {0, 1}n : f(b) = 0} e f〈∗〉 = {0, 1}n \ (f〈1〉 ∪ f〈0〉).

Na parte de calculo dos implicantes primos devem ser utilizados todos os elementos de f〈1〉 ∪ f〈∗〉.Na parte de calculo de uma cobertura mınima devem ser considerados apenas os elementos de f〈1〉.

7.7 O algoritmo ISI

Podemos dizer que o algoritmo QM utiliza uma abordagem bottom-up para gerar todos os implicantesprimos. Outra possıvel abordagem e a top-down, utilizada pelo ISI (Inremental splitting of intervals).O ISI inicia o processo a partir do n-cubo e, sucessivamente, elimina os zeros da funcao, tomandocuidado em representar os elementos que restam apos uma eliminacao atraves do conjunto de seusintervalos maximais. Assim, depois de eliminar todos os zeros, os elementos restantes correspondemaos uns (mintermos) da funcao, os quais estarao representados pelos intervalos maximais, ou seja,pelos implicantes primos da funcao.

Para fazer paralelo com algo mais concreto, podemos pensar que o QM e aquele processo em que ofulano constroi uma parede juntando os tijolos, enquanto o ISI e aquele em que o fulano esculpe umatora de madeira para obter a obra desejada.

7.7.1 Passo basico do ISI

Remover um elemento de um cubo (intervalo) e representar os elementos restantes pelos subintervalosmaximais contidos neles e a chave do algoritmo ISI.

Sejam [A, B] e [C, D] dois intervalos em {0, 1}n. A diferenca de [A, B] e [C, D] e o conjunto

[A, B] \ [C, D] = {x ∈ {0, 1}n : x ∈ [A, B] e x 6∈ [C, D]} (1)

que pode tambem ser expresso por [A, B] \ [C, D] = [A, B] ∩ [C, D]c.

Page 20: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 58

Proposicao: Sejam [A, B] e [C, D] dois intervalos de {0, 1}n cuja intersecao e nao-vazia. Entao,

[A, B] \ [C, D] = (2){

[A, B′] : B′ e elemento maximal daqueles que nao contem nenhum elemento de [C, D]}

∪{

[A′, B] : A′ e elemento minimal daqueles que nao estao contidos em nenhum elemento de [C, D]}

.

A equacao acima mostra como a diferenca de intervalos pode ser expressa em termos da colecao deintervalos maximais contidos na diferenca.

Se dim([A, B]) = k, qualquer intervalo maximal contido na diferenca tem dimensao k − 1. O numerode intervalos maximais contidos na diferenca e dado por dim([A, B]) − dim([A, B] ∩ [C, D]).

Exemplo: Mostramos a seguir algumas diferencas representadas pelos intervalos maximais contidosna diferenca.

Sejam [A, B] = [000, 111] e [C, D] = [001, 111]. O numero de intervalos em [A, B]\[C, D] e dim([A, B])−dim([A, B]∩ [C, D]) = 3−2 = 1 e a dimensao dos intervalos resultantes e dim([A, B])−1 = 3−1 = 2.Veja Fig. 16.

111

001

101011

000

010 100

110

111

000

001

101011 110

010 100

Figura 16: [000, 111] \ [001, 111] = {[000, 110]}.

Sejam [A, B] = [000, 111] e [C, D] = [001, 011]. O numero de intervalos em [A, B]\[C, D] e dim([A, B])−dim([A, B]∩ [C, D]) = 3−1 = 2 e a dimensao dos intervalos resultantes e dim([A, B])−1 = 3−1 = 2.Veja Fig. 17.

111

000

001

101011

001

011

000

010 100

110

110

111

101

100

110

010 100

Figura 17: [000, 111] \ [001, 011] = {[000, 110], [100, 111]}.

Sejam [A, B] = [000, 111] e [C, D] = [011, 011]. Este e o caso em que apenas um ponto do cubo eremovido. O numero de intervalos em [A, B] \ [C, D] e dim([A, B])− dim([A, B]∩ [C, D]) = 3− 0 = 3e a dimensao dos intervalos resultantes e dim([A, B]) − 1 = 3 − 1 = 2. Veja Fig. 18.

Page 21: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 59

011

000

010 100

110

110

111

101

100

000

100001

101

111

000

001

101011 110

010 100

Figura 18: [000, 111] \ [011, 011] = {[000, 110], [100, 111], [000, 101]}.

7.7.2 Um exemplo completo

Consideremos a minimizacao da funcao f(x1, x2, x3) = x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3 + x1x2x3.Temos f〈0〉 = {111, 011, 010}. A figura 19 mostra os elementos que permanecem apos as sucessivasremocoes dos elementos em f〈0〉. Cada seta indica um passo de remocao (note que nao mostramosos intervalos maximais resultantes individualmente, mostramos os elementos restantes em negrito). Afigura 20 mostra o mesmo processo em uma estrutura de arvore. Cada nıvel da arvore corresponde aoresultado apos um passo de remocao. Note que alguns intervalos podem ser descartados por estaremcontidos em outros.

111

000

001

101011

000

001

101011

000

001

101

000

001

101110

010 100

110

010 100

110

010 100

110

100

Figura 19: Calculo de implicantes primos de f (f〈0〉 = {010, 011, 111} e f〈1〉 ={000, 001, 100, 101, 110}). Ordem de remocao: 111, 011 e 010.

7.7.3 ISI: Minimizacao de funcoes incompletamente especificadas

O algoritmo ISI remove sucessivamente os zeros do cubo inicial de forma a obter, ao final do processo,o conjunto de todos os intervalos maximais de f〈1〉 (i.e., implicantes primos). Se a funcao possui don’tcares, entao ao final do processo serao obtidos os intervalos maximais de f〈1〉 ∪ f〈∗〉. No entanto,intervalos que sao formados inteiramente por elementos de f〈∗〉 nao serao necessarios na etapa decalculo de uma cobertura mınima. Portanto, estes podem ser descartados, assim que sao detectadosdurante o processo de remocao dos zeros.

Mostramos a ideia atraves da sua aplicacao na minimizacao de f , com f〈0〉 = {010, 111}, f〈1〉 ={000, 001, 101} e f〈∗〉 = {100, 011, 110}, cujo processo e ilustrado nas figuras 21 and 22.

Page 22: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

Notas de aula de MAC0329 (2004) 60

a

b

c

d

00X

XXX

0X0

X0X XX00XX

X0X

X0X X00

XX0

1X0

Figura 20: Calculo de implicantes primos de f (f〈0〉 = {010, 011, 111} e f〈1〉 ={000, 001, 100, 101, 110}). (a) intervalo inicial; (b) apos remocao de 111 ; (c) apos remocao de 011; (d)resultado final, apos remocao de 010.

Os elementos que sao don’t cares sao representados no diagrama de Hasse como vertices sem os cırculos;cırculos preenchidos representam elementos de f〈1〉 enquanto os nao preenchidos representam os def〈0〉. As arestas em negrito indicam que os elementos adjacentes a ela fazem parte de um intervalo.

No inıcio do processo, todos os elementos fazem parte do intervalo XXX. Apos a remocao de 111,tres intervalos sao gerados: 0XX, X0X and XX0. Nenhum deles pode ser descartado pois todos elescontem pelo menos um elemento de f〈1〉. Em seguida, o elemento 010 e removido dos intervalos 0XX,and XX0, produzindo os intervalos 00X, 0X1 and X00, 1X0, respectivamente. Os intervalos 00X andX00 podem ser descartados pois estao contidos em X0X. O intervalo 1X0 pode ser descartado poisnao cobre nenhum elemento de f〈1〉. Assim, os intervalos que restam sao X0X and 0X1. O segundosera eliminado no processo de calculo de cobertura mınima.

Note que a funcao resutante e consistente com a inicial; dos elementos em f〈∗〉, 011 e 110 sao mapeadospara 0, e somente 100 e mapeado para 1.

111

000

001

101011

000

001

101011

000

001

000

001

101011 011 101

010 010 100100100100

110 110 110

Figura 21: Calculo de implicantes primos de f (f〈0〉 = {010, 111}, f〈1〉 = {000, 001, 101} e f〈∗〉 ={100, 011, 110}).

7.8 Diferenca entre QM e ISI

Ambos calculam todos os implicantes primos e depois uma cobertura mınima. No entanto, quando afuncao possui don’t cares, o ISI tem a vantagem de nao manipular explicitamente os don’t cares.

7.9 Outros algoritmos de minimizacao logica 2-nıveis

Muito esforco ocorreu nas decadas de 1980 e inıcio da decada de 1990 no sentido de se desenvolverprogramas para minimizacao de funcoes com varias variaveis. O algoritmo QM e um processo de-

Page 23: 6 Circuitos de chaveamentos e Circuitos L ogicosvision.ime.usp.br/~nina/cursos/mac0329-04/notas3.pdf · Usando a conven˘c~ao 1 para presen˘ca de sinal e 0 para aus^encia de sinal,

REFERENCIAS 61

1X0

a

b

c00X X0X

XXX

X0X XX00XX

0X1 X00

Figura 22: Calculo de implicantes primos de f (f〈0〉 = {010, 111}, f〈1〉 = {000, 001, 101} e f〈∗〉 ={100, 011, 110}).

morado e alem disso utiliza muita memoria, o que limita sua utilidade na pratica para funcoes comrelativamente poucas variaveis (poucas dezenas).

Os esforcos realizados foram no sentido de achar alternativas nos quais os implicantes primos naoprecisassem ser calculados explicitamente, formas eficientes para se calcular uma cobertura mınima eheurısticas eficientes.

Um dos programas mais utilizados atualmente e o ESPRESSO (desenvolvido por um grupo da Uni-versidade de Berckley) [Brayton et al., 1984, McGreer et al., 1993]. Depois do ESPRESSO, forampropostas outras melhorias (como o uso de BDD — Binary Decision Diagrams) por Coudert e out-ros [Coudert, 1994, Coudert, 1995], e mais recentemente o BOOM [Fiser and Hlavicka, 2003].

Referencias

[Brayton et al., 1984] Brayton, R. K., Hachtel, G. D., McMullen, C. T., and Sangiovanni-Vincentelli,A. L. (1984). Logic Minimization Algorithms for VLSI Synthesis. Kluwer Academic Publishers.

[Coudert, 1994] Coudert, O. (1994). Two-level Logic Minimization: an Overview. Integration, theVLSI Journal, 17(2):97–140.

[Coudert, 1995] Coudert, O. (1995). Doing Two-level Minimization 100 Times Faster. In Proc. ofSymposium on Discrete Algorithms (SODA), San Francisco CA.

[Fiser and Hlavicka, 2003] Fiser, P. and Hlavicka, J. (2003). Boom - a heuristic boolean minimizer.Computers and Informatics, 22(1):19–51.

[Hill and Peterson, 1981] Hill, F. J. and Peterson, G. R. (1981). Introduction to Switching Theory andLogical Design. John Wiley, 3rd edition.

[Katz, 1994] Katz, R. H. (1994). Contemporary Logic Design. Benjamin Cummings.

[McGreer et al., 1993] McGreer, P. C., Sanghavi, J., Brayton, R. K., and Sangiovanni-Vincentelli,A. L. (1993). Espresso-Signature : A New Exact Minimizer for Logic Functions. IEEE trans. onVLSI, 1(4):432–440.

[Mendelson, 1977] Mendelson, E. (1977). Algebra Booleana e Circuitos de Chaveamento. Mcgraw-Hill.

[Micheli, 1994] Micheli, G. D. (1994). Synthesis and Optimization of Digital Circuits. McGraw-Hill.