Sistemas Digitais

Aula 4: Otimização e Relações de Compromisso em Lógica Combinacional

Professor: Alair Dias Júnior

alair@cpdee.ufmg.br

http://www.cpdee.ufmg.br/~alair

Sumário
  1. Otimização x Relações de Compromisso
  2. Minimização para rede de portas lógicas de dois níveis
    • Minimização por Álgebra Booleana
    • Minimização por Mapa de Karnaugh

Otimização x Relações de Compromisso

Otimização

Nesse curso, considera-se otimização a transformação onde todos os critérios de interesse são melhorados ou mantidos iguais.

Otimização
  • Exemplos:
    • Melhora-se o conforto, a potência e o consumo em um carro, sem alterar seu preço.
    • Reduz-se o tempo de propagação de um circuito, diminuindo-se o número de transistores.
Relação de Compromisso

Uma relação de compromisso (tradeoff) é uma transformação onde devido a requisitos do projeto melhora-se alguns critérios de interesse e outros pioram.

Tradeoff
  • Exemplos:
    • Melhora-se o conforto, a potência e o consumo em um carro, mas o preço de venda aumenta.
    • Reduz-se o tempo de propagação de um circuito, aumentando-se o número de transistores.
Otimização x Relações de Compromisso

O melhor seria sempre otimizar mas, na maioria dos casos, é necessário trabalhar com relações de compromisso.

  • There's no free lunch

Minimização para rede de portas lógicas de dois níveis

Circuitos Mais Eficientes

Quais os critérios vamos usar?

  • Tempo de Propagação (Atrasos)
  • Número de Transistores (Tamanho)
  • Consumo de Energia
    • Fora do escopo desta disciplina.
Medida de Eficiência

Será utilizada uma estimativa para os critérios de projeto

  • Tempo de propagação: Cada porta lógica tem um atraso de 1 unidade
  • Tamanho: Cada entrada de uma porta lógica demanda 2 transistores

Observação: As portas inversoras (NOT) não são incluídas nessa contagem.

Medida de Eficiência

Por que essa simplificação da medida de eficiência?

  • Tradeoff: Sacrificou-se a exatidão em favor de um cálculo mais rápido e simples.
Exemplos
Exemplo de Otimização
Exemplo de Tradeoff
Minimização para 2 Níveis

O objetivo das transformações que faremos é obter um circuito somente com dois níveis de portas lógicas (OR de portas AND) com o mínimo de transistores.

  1. Escreva a equação Booleana na forma de soma de produtos
  2. Manipule a equação Booleana para ter menos termos e menos literais
Exemplo
Exemplo de Minimização para rede de portas lógicas de dois níveis
Minimização por Álgebra Booleana

Procedimentos

  • Coloque a equação na forma de soma de produtos
    • Elimine parênteses usando precedência de operadores
    • Manipule a equação usando as propriedades e teoremas vistos anteriormente
  • Simplifique a equação
    • Combinando termos para eliminar literais, variáveis ou termos
    • Algumas vezes pode ser necessário duplicar termos
Exemplo 1

$F = xy\mathbf{z} + xy\mathbf{z'} + x'y'\mathbf{z'} + x'y'\mathbf{z}$

$F = xy(\mathbf{z+z'}) + x'y'(\mathbf{z'+z})$

$F = xy(\mathbf{1}) + x'y'(\mathbf{1})$

$F = xy + x'y'$

Exemplo 2

$F = x'y'z' + \mathbf{x'y'z} + x'yz$

$F = x'y'z' + \mathbf{x'y'z} + \mathbf{x'y'z} + x'yz$

$F = x'y'(\mathbf{z + z'}) + x'z(\mathbf{y' + y})$

$F = x'y'(\mathbf{1}) + x'z(\mathbf{1})$

$F = x'y' + x'z$

Exemplo 3

$F = xy'\mathbf{z'} + xy'\mathbf{z} + xy\mathbf{z} + xy\mathbf{z'}$

$F = xy'(\mathbf{z' + z}) + xy(\mathbf{z + z'})$

$F = x\mathbf{y'} + x\mathbf{y}$

$F = x(\mathbf{y' + y})$

$F = x$

Minimização por Mapa K
  • Representação visual das funções Booleanas
  • É possível construir Mapas K de até 6 variáveis
    • Na prática, utilizado somente para 4 variáveis
  • A minimização é facilitada pela visualização
Mapa K
Mapas de Karnaugh
Algoritmo
  1. Construa o Mapa K
  2. Identifique os 1s isolados
  3. Identifique os 1s que sejam adjacentes somente a outro 1
  4. Agrupe os octetos que tenham ao menos um 1 não agrupado
  5. Agrupe os quartetos que tenham ao menos um 1 não agrupado
  6. Agrupe os pares que restarem
  7. Faça o OR de todos os termos gerados pelos conjuntos
Exemplo

Comparador de 2 bits.

Entradas: Duas palavras de dois bits ($A$ e $B$)

Saídas: Três bits indicando se os números são iguais ($E$), se $A$ é maior que $B$ ($G$) e se $A$ é menor que $B$ ($L$)

Exemplo

Simplificar a função:

$F = C'(A'B'D' + D') + AB'C + D'