Você está na página 1de 54

Traduzido do Inglês para o Português - www.onlinedoctranslator.

com

Lógica Combinacional Multinível

É um enigma envolto em um mistério dentro de um enigma.

- Sir Winston Churchill

Introdução

No capítulo anterior, apresentamos os métodos básicos para descrever funções booleanas como redes mínimas
de dois níveis construídas a partir de portas AND, OR e NOT. Neste capítulo, estendemos a discussão em três
direções principais:

A conversão de redes AND/OR e OR/AND para redes NAND-NAND e NOR-NOR. As portas AN e OR


raramente são usadas em sistemas digitais; você deve aprender a convertê-los em portas NAND e
NOR de redes.

Estratégias de design para implementar a lógica em mais de dois níveis. Assim como uma exp algébrica complexa
pode ser simplificada pela fatoração de subexpressões comuns, você pode implementar uma função booleana com
menos portas se a fatorar criteriosamente. Isso leva a uma troca fundamental entre (nmtiomre níveis de lógica para
passar pelo) espaço de mão (menos portas necessárias para implementar a função)

Ferramentas de desenho assistido por computador. A lógica multinível depende de métodos mais sofisticados para encontrar uma
solução de projeto eficiente. Examinamos misII, uma ferramenta baseada em computador para realizar projeto de lógica multinível.

- Tempo de resposta em redes digitais. Veremos mais de perto o comportamento dinâmico das portas lógicas
combinacionais. Perigos, que causam transições indesejáveis nas saídas, podem causar um comportamento
inadequado do circuito. Você aprenderá os procedimentos para obter projetos livres de riscos

Índice

3.1.Lógica multinível
3.2.Ferramentas CAD para Logi Multinível c
3.3.Tempo de resposta na rede combinacional orks
3.4.Perigos/falhas e como evitar Th em
3.5.Fosco prático rs
Revisão do Capítulo W
Exercício s

[Tabela de Conteúdo s[]Próximo] [Anterior]

Este arquivo foi atualizado pela última vez em 07/07/96 às


18:44:30. randy@cs.Berkeley.edu ;
[Início] [Próximo] [Anterior ]

3.1 Lógica Multinível

Dada uma função booleana expressa na forma canônica de termo mínimo ou termo máximo, agora você sabe como
reduzi-la a uma forma mínima de dois níveis com o menor número de termos e literais. Vamos considerar o fu(nUMAc,tio
B,C,D,E,F,G):

=ADF+AEF+BDF+BEF+CDF+CEF+G

Já está em sua forma de soma mínima de produtos. Sua implementação como uma rede de dois níveis de portas
AND OR requer seis portas AND de 3 entradas e uma porta OR de 7 entradas, um total de sete portas e 19 l (ver
Figura 3.(1a)).

Podemos fazer melhor se substituirmos a forma de dois níveis pela chamada forma fatorada.
Expressamos a função com literais comuns fatorados dos termos do produto sempre que possível.

Fatorando recursivamente literais comuns, podemos expressar a função como:

= (DE ANÚNCIOS+EA+BD+SER+CD+CE)F+G

= [(UMA+B+C)D+ (UMA+B+C)E]F+G

= (UMA+B+C)(D+E)F+G

Expressa como uma série de expressões, cada uma na forma de dois níveis, torna-se

= XYF+G

X= UMA+B+C

S= D+E

Quando escrita desta forma, a função requer uma porta OR de 3 entradas, duas portas OR de 2 entradas e uma
porta AND 3-i, um total de quatro portas e nove literais. A função intermediáriaXtia sScontar como literais em
em diante

a expressão final para .


A implementação da forma fatorada é mostrada na Figura (eb3)..1Você pode reduzir significativamente o número de fios e
portas necessários para implementar a função, mas essa implementação provavelmente tem um atraso pior devido aos
níveis aumentados de lógica. Em geral, as implementações multinível são mais eficientes em termos de porta do que as
implementações de dois níveis, mas têm um atraso de propagação pior.

Nesta seção estaremos preocupados com duas questões: como expressar redes lógicas apenas em termos
de portas NAND e NOR, e como tirar vantagem da lógica multinível para reduzir o co total da porta.

3.1.1 Conversão para Redes NAND/NAND e NOR/NOR

As formas canônicas que você estudou até agora são expressas em termos de portas AND e OR, mas você
raramente as encontra em sistemas digitais. As tecnologias subjacentes são mais eficientes na implementação
de portas NAND e NOR. Na verdade, as portas AND e OR são mais comumente realizadas seguindo uma porta
NAND ou NOR com um inversor. Além disso, as funções NAND e NOR são completas, ou seja, uma função
expressa em termos de operações AND, OR e NOT pode ser implementada apenas em termos de operações
NAND ou NOR. Freqüentemente, você será confrontado com a tarefa de mapear uma rede com um número
arbitrário de níveis de portas AND e OR em uma que consiste apenas de portas NA ou NOR. Começaremos a
discussão com redes de dois níveis e estenderemos para redes multiníveis.

Visualização: Teorema de DeMorgan e empurrando bolhasO processo de conversão depende criticamente do


teorema de DeMorgan. Lembre-se que
e essa

Em essência, uma função NAND também pode ser implementada por uma porta OR com suas entradas invertidas Da
mesma forma, uma função NOR pode ser implementada por uma porta AND com suas entradas complementadas. A
conversão de uma forma para outra é frequentemente chamada de "empurrar a bolha". Esta é simplesmente uma
maneira de lembrar o teorema de DeMorgan. À medida que a bolha "empurra" uma forma AND, ela muda para uma
forma com bolhas nas entradas. Da mesma forma, empurrar a bolha através de uma forma OR transforma a
forma AND com bolhas nas entradas.

A Figura 3.2 resume a relação entre portas OR e portas NAND. Uma porta OR é logicamente equivalente a uma porta
NAND com suas entradas invertidas. Da mesma forma, uma porta AND é equivalente a uma NOR com suas entradas
complementadas. Isso é mostrado na Figura 3.3.

Os símbolos esquemáticos em ambos os lados das Figuras 3.2 e 3.3 podem ser trocados livremente sem
alterar a tabela verdade da função.

E/OU Conversão para Redes NAND/NANDConsidere a rede de portas simples na Figura (3a.)4. Vamos
substituir as portas AND de primeiro nível por seus equivalentes NOR e a porta OR por seu equivalente
NAND. O circuito equivalente é mostrado na Figura ( 3 b).4. Observe que a inversão de saída no primeiro
portas de nível corresponde à inversão de entrada no segundo nível. Estes se cancelam, como mostra a
Figura 3.4(c). As portas de primeiro e segundo nível são NAND. Infelizmente, isso não permite conservar as
bolhas nas entradas de primeiro nível e nas saídas de segundo nível. Isso é corrigido na Fig. (d) , onde
substituímos as portas NAND por suas formas equivalentes. Agora as bolhas estão devidamente
combinadas.

Como atalho, você pode simplesmente inserir inversões correspondentes nas saídas de primeiro nível e entradas de
segundo nível para converter uma rede AND/OR em uma rede NAND/NAND.
E/OU Conversão para Redes NOR/NORSuponha que agora você esteja restrito a mapear a rede AND OR em
uma rede somente NOR. Como atalho, você pode simplesmente substituir a porta AND ga de primeiro nível por
portas NOR (AND com entrada invertida)s e a porta OR de segundo nível por uma porta NOR.

Mas isso não é logicamente equivalente. Cada vez que uma nova inversão é introduzida, ela deve ser balanceada com
uma inversão complementar. Para corrigir o problema, introduzimos inversores adicionais nas entradas e saídas
(veja a Figura 3.)5.

Para acompanhar a necessidade de entradas invertidas para as portas de primeiro nível, usamos a notação para entradas
ativas: \UMA, \B, \C, eD \ . Como é comum ter uma variável booleana e seu complemento
disponíveis como entradas de circuito, a conversão pode não levar a inversores adicionais. Da mesma forma, o
inversor extra na saída pode ser eliminado se o circuito puder ser transformado de modo que a função fique com
lógica negativa. Em outras palavras, a saída é conectada a uma entrada esperando um sinal baixo ativo

Conversão OR/AND para Rede NOR/NORAgora vamos considerar uma implementação de portão para uma expressão
simples na forma de produto de somas. Podemos mapear essa expressão em uma rede NOR/NOR simplesmente
substituindo as portas OR por portas NOR e a porta AND por uma porta NOR (portão agnatAeND com invertido
entradas). Você pode ver na Figura 3.6 que as inversões que introduzimos se cancelam.

Conversão OR/AND para redes NAND/NANDImplementar a expressão usando lógica somente


NAND apresenta exatamente os mesmos problemas que já vimos na Figura 3.5. A transformação
correta substitui as portas OR por NAND g(aO teR
s portas com entrada invertida e o AND
porta com uma porta NAND. Para manter a equivalência com a função original, você precisa colocar inve
nas entradas e na saída. Isso é mostrado na Figura 3.7.
Generalização para circuitos multiníveisPodemos estender as técnicas de transformação para redes
multiníveis. Considere a função

Sua implementação na forma AND/OR é mostrada na Figura(3a.)8.

Você pode ver como organizamos a lógica em níveis alternados de portas AND e OR. Assim fica mais
fácil observar os locais onde a conversão para portas NAND/NAND pode ocorrer. Você sim substitui
cada AND por um NAND e cada OR por um NAND em sua "alternativa" (foO rm
R com invertido
entradas).

A aplicação deste procedimento é mostrada na Figura (b3).8. Agrupamos os níveis 1, 2 e 3, 4 em circuitos


AND/OR. Estes podem ser substituídos diretamente por redes NAND/NAND equivalentes.

Observe que a literaBl entrada para a porta G3 deve ser invertida para preservar o sentido original do sinal
Lembre-se sempre de conservar a introdução de inversões. Quaisquer fios de sinal interno que sofram número
ímpar de inversões devem ter um inversor adicional inserido no caminho.
A rede final somente NAND é mostrada na Figura 3( .c8). Eliminamos um inversor substituindo oBentrada
para G3 com uma conexão com seu literal complementado.

Suponha que seu destino seja uma rede somente NOR. Você pode adotar a mesma abordagem quando a rede inicial
for expressa como níveis alternados de OR e AND. Você deve colocar as portas OR nos níveis ímpares e as portas A
nos níveis pares. Você pode substituí-los imediatamente por portas NOR. Quaisquer bolhas de entrada não
correspondidas devem ser corrigidas inserindo inversores ou usando o literal complementado quando necessário

É um pouco mais complicado ao transformar a rede AND/OR alternada(oO redes rkRs/AND)


em circuitos somente NOR (circuitos somente NAND). No entanto, você ainda pode aplicar as mesmas técnicas
básicas.

Por exemplo, suponha que você queira mapear a rede AND/OR/AND/OR do Figu(ra e)3i.n8a NOR
portões. Você deve inverter as entradas para os níveis ímpares enquanto insere uma inversão extra na saída dos
níveis pares. As inversões extras entre os níveis pares e ímpares adjacentes podem ser salvas se elas ocorrerem entre
si. Isso é mostrado na Figura (3a.9 ) entre os níveis 2 e 3, para os portões G3 e G4. O último NÃO
único circuito é mostrado na Figura 3(.9b). Todos, exceto um dos literais, foram invertidos e uma inversão extra
foi inserida na saída. Você pode implementar esta última inversão por uma porta NOR com ambas as entradas
ligadas ao mesmo sinal.
A Figura 3.10 mostra um exemplo em que o circuito não pode ser colocado em uma forma que alterne as portas
de aposta AND e OR. A função multinível é

=MACHADO+ X+D

X= BC

A Figura 3.10(a) mostra a rede AND/OR inicial. Começamos introduzindo inversões duplas em t entradas
para o último estágio OR ga(tFeigure 3.10(b)) . Nós os propagamos de volta para as saídas das duas portas
AND e a entradaDt (Figura 3.10(c)). Observe como a conexãoD foi substituído por um
conexão ao seu complemento para corresponder à bolha na entrada do OR.

Ainda há um problema com este circuito. A porta NAND calcula o complemento do fuXn, nãoX. Para
conservar as bolhas e o sentido dos sinais, a saída NAND deve ser invertida antes de ser inserida na
porta NAND de segundo estágio. O circuito convertido final é mostrado na Figu(rde)3..10

3.1.2 E-OU-Inverter/OU-E-Inverter Blocos de Construção

Até este ponto, estivemos pensando em circuitos lógicos multiníveis construídos a partir de ga discretos. Em algumas
tecnologias de circuitos digitais, como TTL, formas primitivas de lógica multinível estão prontamente disponíveis como
componentes pré-empacotados. Entradas múltiplas AND-OR-In(vAeO rtI) e OR-AND-Inverter
(As funções OAI) estão disponíveis como portas complexas únicas nessas tecnologias. Examinamos esses blocos de
construção a seguir.

Conceito geralConceitualmente, um bloco lógico AOI é um circuito lógico de três níveis que consiste em
portas AND no primeiro nível, uma porta OR no segundo nível e um inversor na saída. Da mesma forma, um
bloco tem portas OR no primeiro nível, uma porta AND no segundo nível e um inversor no terceiro. Em
essência, várias portas discretas são agrupadas por uma única porta complexa, com a fiação interna já feita
para você.

Uma função como uma AOI pode parecer um pouco estranha no início, mas lembre-se de que é muito mais fácil construir lógica de
investimento como portas NAND e NOR do que portas AND e OR na maioria das tecnologias de circuitos digitais.
A Figura 3.11(a) mostra a visão lógica do bloco AOI, e a Figura 3(.b1)1 dá uma possível implementação em termos de
switches.UMASe eBsão verdadeiros ouCeDsão verdadeiros, os interruptores normalmente abertos estabelecem um
caminho fechado de falso para foraZcolocar

Em todos os outros casos, true será roteado para a saída através das chaves normalmente fechadas. Para a prova
UMA=0,B=1,C=1, eD=0, os interruptores normalmente fechados controladosUMABA ndDSerá fechado,
fazendo a conexão entre o verdadeiro e o ouZt.pS implementações utwitch de circuitos OAI parecem muito
semelhante.

A implementação na Figura 3.(1b 1) usa oito interruptores. Se tivéssemos implementado a função usando
portas lógicas simples, precisaríamos de 14 chaves: quatro para cada uma das três portas de 2 entradas e o
inversor.

O circuito particular na Figura 3.1 (1a) é chamado de porta AOI de duas entradas e duas pilhas. Isso significa que consiste
de duas portas AND de 2 entradas (cada porta AND corresponde a as) ta.cAk porta AOI de duas pilhas de três entradas tem duas
portas de 3 entradas no primeiro nível, uma porta AOI de três pilhas de duas entradas tem três portas de 2- portas de entrada no
primeiro nível, e assim por diante. O número de pilhas é exatamente o número de entradas para o OR de segundo nível
Conceitos e terminologia análogas se aplicam aos blocos OAI.

Implementando lógica com blocos AOI e OAIVamos começar com um exemplo simples. Implementaremos a
função XOR usando blocos AOI. Lembre-se que o comportamento do XOR é descrito pela equação

Uma implementação direta usando portas discretas requer duas portas AND de 2 entradas, uma porta de 2
entradas e dois inversores.

Como implementamos isso com a lógica AOI? Basta encontrar o complemento da função na forma da
soma dos produtos. A inversão final na rede AND/OR/Invert retornará a função para o sentido que
desejamos.

O complemento da função XOR, XNOR, é o seguinte :

O circuito é construído fornecendoUMAgandBcomo entradas para a primeira pilha e como entradas para a
segunda pilha. Isso é mostrado na Figura 3.12.
A abordagem para implementação da lógica OAI é análoga. Usando o K-map, implementamos uma função
OR/ formando implicantes primos em torno de zeros e lendo-os na forma de produto de somas.

ExemploVamos considerar as funções de três variáveisFsobreUMA,B,C) =Sm(2, 4, 6, 7).

A Figura 3.13 fornece o K-map para seus complementosm t,(S0, 1, 3, 5). Na forma minimizada, o complemento é
Expresso como

Desta formaFpode ser implementado por portas AOI ou OAI de três pilhas de duas entradas. As entradas são
conectadas aos literais do complemento oFf. Para a implementação de AOI, você conecta à primeira pilha, à
segunda e à terceira.

Exemplo A Comparador de 4 bits Digamos que sua tarefa seja implementar um comparador de 4 bits. Tal
circuito tem oito entradas organizadas como dois conjuntos de quatro bits de entrada, laUMAetb3lehdroughUMA0 eB3 a
B0. A saída única do circuitoZt é afirmado quandoUMAn3 =B3,UMA2 =B2,UMA1 =B1, eUMA0 =B0.
Assumimos que temos apenas inversores, portas NOR e portas AOI.

Considere a lógica para determinar a igualdade de cada par de bits:

F0 = ( UMA0 = B0) =

F1 = ( UMA1 = B1) =

F2 = ( UMA2 = B2) =

F3 = ( UMA3 = B3) =

A função de comparação torna-seFes=F0F1F2F3, que pode ser reescrita equivalentemente como a


seguir se usarmos uma porta NOR:
Agora podemos expressar as funções de igualdade bit a bit na forma AOI. EFai cisjá na forma AND/OR.
Como a porta NOR precisa dos complementos oFquintoae t suas entradas, estas podem ser implementadas diretamente com
Portões AOI.

A Figura 3.14 mostra a implementação em termos de portas AOI no primeiro nível e uma porta NOR no
segundo nível. Cada porta AOI implementa o complemeFnit-roefcall que o complemento da igualdade (
XNOR) é diferença(XOR). A função NOR, quando escrita como uma porta AND com entradas
complementares, nega as funções XOR para restaurar as XNORs.

Sob as restrições deste problema em particular, há uma vantagem real em usar esses complexos Contando
cada bloco AOI como uma única porta, o esquema da Figura 3.14 usa 13 portas: oito inversores quatro portas
AOI e uma porta NOR de 4 entradas. Uma implementação usando AND e OR discretos (ogras
NOR e porta NAND) exigiriam mais 8 portas, pois a função desempenhada pelas 4 portas complexas seria
substituída por 12 portas discretas. Mesmo que o uso dos blocos AOI não represente nenhuma área do circuito
de segurança, a transição da lógica discreta oferece uma vantagem considerável na redução da complexidade
do wi.

Componentes TTL AOIA lógica empacotada TTL tem disponível um número de circuitos AND-OR-Invert(uOitR s-
As portas AND-Invert não estão prontamente disponíveis em T)TL
Veja a Figura 3.15 para uma coleção de amostras de formas esquemáticas. O pacote 7451 contém duas portas
AOI de pilha de 2 pol. Este pacote em particular tem 14 pinos. As duas portas usam 10 (o4f tihnepsuets, 1 saída
vezes 2), mais energia e terra. Isso deixa dois desconectados ( pthines74LS51, não mostrado na figura, aproveita
essas conexões não utilizadas anteriormente fornecendo uma porta A de 3 entradas e 2 pilhas e uma¥2 2
portão). Outros componentes incluem o AOI 7454 de 2 entradas e 4 pilhas (gta versão htee'LS
vem com dois stacks de 2 entradas e dois st)ac de 3 entradas, kthse 74LS55 4-input 2-stack AOI gate e o 74S64 AOI gate,
construído a partir de um stack de 4 entradas, dois stacks de 2 entradas e um 3 -pilha de entrada.

[Início] [Próximo] [Anterior ]

Este arquivo foi atualizado pela última vez em 07/07/96 às


18:44:30. randy@cs.Berkeley.edu ;
[Início] [Anterior ][Próximo]

3.2 Ferramentas CAD para Síntese Lógica Multinível

Podemos obter redes lógicas de dois níveis minimizadas a partir da soma canônica de produtos ou
somas de produtos, aplicando o método de redução apropriado (oKd-smaps, Quine-McCluskey, um
minimizador lógico de dois níveis como espresso, e)tc.. As propagações de sinal podem ser rápidas
porque nenhum sinal precisa passar por mais de dois níveis de porta (sem contar a inversão de
nível zero). some techn Em muitas tecnologias, incluindo TTL, portas com mais de quatro entradas
são raras, se é que existem. Para a realização prática em nível de porta de uma rede, as portas fan-
in grandes devem ser substituídas por uma rede múltipla de portas fan-in menores. Isso motivou
muito interesse recente em sintetizadores de lógica multinível

3.2.1 Conceito Geral

Uma rede ótima de dois níveis é aquela que usa o menor número de termos de produto e literais para
realizar uma determinada tabela-verdade. Não é tão fácil definir a otimalidade para redes multiníveis. A
rede é ótima se tiver o menor número de portas? Ou é mais crítico ter o menor número de literais na
expressão resultante? Assim, o processo com sistemas multiníveis é chamado de síntese em vez de
otimização. O objetivo é criar ou "sintetizar" uma implementação multinível razoável, sem a pretensão de
que o resultado seja o melhor possível.

O processo de síntese envolve duas etapas. O primeiro estágio, independente de tecnologia, leva em consideração a
sublógica de comunicação para reduzir os fan-ins do portão, aumentando o número de níveis de portão como efeito
colateral. Esta etapa é independente dos tipos de portas que eventualmente serão usadas para implementar a rede.
Funciona b explorando propriedades matemáticas básicas de expressões booleanas.

O segundo estágio, dependente de tecnologia, mapeia as equações booleanas fatoradas resultantes em uma implementação pa
usando uma biblioteca de portas disponíveis. Por exemplo, se apenas portas OR de 2 entradas forem encontradas em uma
biblioteca específica, então uma porta OR de 4 entradas teria que ser mapeada em três O(Rsg) de 2 entradas ea
etes
Figura 3.16).

Tais reorganizações da rede lógica podem introduzir níveis adicionais de lógica na implementação da
função, possivelmente afetando o atraso através do circuito.

3.2.2 Formas e Operações Fatoradas


Sistemas de síntese multinível colocam expressões booleanas em uma forma especial "estruturada em árvore" e
operações especiais pe nessas formas. Nós os apresentamos nesta subseção.

Forma fatoradaO sistema de síntese multinível coloca uma expressão em uma forma fatorada.
Simplificando, esta é uma expressão que alterna entre as operações AND e OR, uma espécie de "soma de
pr de somas de produtos". A seguinte função está na forma fatorada :

Examinando a expressão, vemos que nenhuma outra subexpressão pode ser fatorada. Para os literais
de contagem, a forma fatorada fX ou pode ser reescrito como uma sequência de expressões de dois níveis:

A estrutura da expressão é um pouco mais clara se for representada na forma de um gráfico ou árvore
w as "folhas" representam literais e os nós internos representam uma operação AND ou OR. A
representação gráfica é mostrada na Figura 3.17.

Na maior parte, os ANDs e ORs alternam entre os nós adjacentes da árvore.

Critério para Simplificação MultinívelNas modernas tecnologias VLSI, os projetistas observaram que
as portas (nós internos do gráfico da Figura 3). (arcos da área significativa. Mesmo para os níveis
modestos de integração de circuitos disponíveis em TTL, a complexidade de uma realização de circuito
está fortemente relacionada ao número de fios usados em sua construção. Como o número de
conexões internas tende a aumentar com o número de literais, os sistemas de síntese lógica multinível
tentam minimizar o número de literais. A contagem literal é ba na expressão multinível escrita como
uma sequência de expressões de dois níveis. Para a figura de função Figura 3.17, por exemplo, a
contagem literal é 18. Observe que quando eles são referenciados em funções de expressõesF1,F2,F3,F
4, eF5 contam como literais.

Nenhum procedimento para simplificação multinível garante, como o algoritmo de Quine-McCluskey para lógica de
dois níveis, que derivará uma rede multinível ótima. Com um minimizador de dois níveis como o espresso é possível
especificar as equações, executar o programa e simplesmente examinar o resultado. Não é assim com sistemas de
síntese multinível. Em vez de seguir um algoritmo preciso, esses sistemas fornecem uma rica
operações para manipular a rede lógica. Normalmente, você aplicaria as operações à rede interativamente,
embora "scripts" padrão tenham sido desenvolvidos para obter bons resultados. Você não precisa de um
conhecimento profundo das operações subjacentes para usar esses scripts.

As operações básicas para manipular uma rede multinível (um 1)redecomposição(, 2) extração,(3)
fatoração, (4) substituição e (5) colapso. Nas seções a seguir, descreveremos cada uma das operações e
as ilustraremos com um exemplo simples.

DecomposiçãoA decomposição pega uma única expressão booleana e a substitui por uma coleção de
expressões. Considere a função

Esta expressão está na forma de soma reduzida de produtos e possui 12 literais. Requer nove portas, inversores
cou, para implementação (ver Figura 3.1(8a)) .

No entanto, a expressão pode ser decomposta em duas funções muito mais simples:

se Figura
O conjunto de funções resultante tem oito literais e requer sete portas para implementação
taétio
3.18(b)) -nada é grátis, porém, e o número de níveis de portão aumentou de dois para três.

ExtraçãoEnquanto você aplica a decomposição a uma única função, você aplica a extração a um
conjunto de funções. Esta operação identifica subexpressões comuns na coleção de funções a que se
aplica. É talvez a operação multinível mais difícil de implementar, porque deve expressar fu
em termos de seus fatores e, em seguida, encontrar os fatores que eles compartilham em comum.

Vejamos um exemplo de extração. Começamos com as funções

Observe que a operação de extração não requer que as funções comecem em um formulário de dois níveis.

Neste exemplo, a operação de extração descobre que o sub-ex-preXss=io(nUMAs+B)eS=


(CD)são comuns aF,G, eF,H, respectivamente. Essas subexpressões são chamadas de divisores primários
mais tecnicamente, kernels e cubos. Reexpressas nestes termos, as funções podem ser reescritas

A coleção original de funções contém 11 literais e requer oito portas para implementação

(Na Figura 3.19(a), a bolha na entrada da porta queG ute


co
funciona como uma porta inversora.
O conjunto revisado de funções, após a extração, ainda contém 11 literais, mas agora precisa de apenas sete ga para
sua implementação. Você pode ver na Figura 3( .b1)9 que a implementação de nível único fH ou foi
substituído por uma implementação de dois níveis após a extração. O número de portas é reduzido, mas a
funçãoHagora incorre em pior atraso.

FatoraçãoA fatoração toma uma expressão na forma de dois níveis e a reexpressa como uma função multinível sem
introduzir quaisquer subfunções intermediárias. Ele pode ser usado como uma etapa preliminar antes da extração,
para identificar potenciais subexpressões comuns.

Como exemplo, vamos considerar a seguinte função em forma de soma de produtos. Ele tem nove literais e pode ser
implementado com cinco portas(sFigura 3.20(a)):

Após a fatoração, o número de literais é reduzido para sete:


Isso pode ser implementado com quatro ga(teFsigure 3.20(b)) .

SubstituiçãoSubstituindo uma função Gem uma funçãoFreexpressarFs em termos deG. Por exemplo, se
,e , entãoFpode ser reescrito em termos de Gf da seguinte forma:

Uma vez que subexpressões comuns tenham sido identificadas, a substituição pode ser usada para reexpressar formas fatorada
funcionalmente sobre as subexpressões.

RecolherO colapso é o inverso da substituição. Pode ser usado para reduzir o número de lógica de nível para
atender a uma restrição de tempo. Como exemplo, podemos colG lapbsaeck emF:

O número de literais usados para expressarFshsas foi reduzido de cinco para três.

Divisão polinomial e fatoração multinívelTodas as operações multiníveis têm fortes analogias com a
multiplicação e divisão de polinômios. A estratégia é reescrever a expressão para uma funçãoFem
termos de subexpressioPn,sQ, eR, que representam o divisor, o quociente e o resto, respectivamente.
Em termos genéricos Firmã, escrito como

Como um exemplo mais concreto, dadas as duas expressões:

Nós poderíamos escreverX"dividido porSdo seguinte modo:

O divisor éS= (UMA+B),o quociente é (C+D),e o restanteE é. Expandindo a expressão


com a lei distributiva resultaria na equação originalX por

Encontrar divisores é um problema bastante difícil quando as leis da álgebra booleana são consideradas.
A multiplicação de expressões booleanas pode produzir resultados incomuns devido à variedade de teoremas de
simplificação que você pode aplicar. Por exemplo, considere a funçãoFtioansdG:

Sob as regras normais de álgebrGa, não se divide emF. Os chamados divisores algébricosFofareD e(UMA+
BC).Aquilo é,Fpode ser dividido porD, deixando o quocienteUMA+BCcom restoE. Também pode ser
dividido porUMA+BC, deixandoDcomo o quocienteEd como o restante.

No entanto, se aplicarmos as regras da álgebra booleana, tG hednoes se dividem emF. Podemos escrever o quociente
doFdividido porGComo

Isso porqueF e pode ser reescrito como

A existência de divisores booleanos aumenta muito o número de fatorações potenciais de um conjunto de


expressões. Muitos sistemas de otimização restringem-se aos fatores algébricos mais fáceis de encontrar

Deve ficar claro a partir desta discussão que o desafio na síntese lógica multinível é desenvolver algoritmos
que possam encontrar bons divisores. Isso leva a expressões fatoradas com as maiores subexpressões
comuns entorpecidas. Ao fatorar essas subexpressões, podemos minimizar o número necessário para
expressar uma coleção de funções. Heurísticas extensas, além do escopo de nossa discussão aqui, foram
desenvolvidas para identificar bons divisores.

3.2.3 Uma Ferramenta para Síntese Multinível: MisII

MisII é uma ferramenta desenvolvida na Universidade da Califórnia em Berkeley para auxiliar na realização de síntese
multinível. Você deve interagir com misII para realizar a síntese. A gama completa de suportes operat está além do
escopo deste texto, mas examinaremos um subconjunto útil que pode ser usado para reorganizar expressões em
formas multiníveis. Embora os melhores resultados possam ser obtidos trabalhando misII em seu modo interativo,
alguns scripts padrão cuidadosamente elaborados de operações misII, desenvolvidos por especialistas, estão
disponíveis para designers iniciantes.

Exemplo Uma Sessão com MisIIVejamos uma sessão de exemplo com misII. Na sequência
sequência de operações, w(il1l ) lemos um arquivo contendo equações booleanas que descrevem a rede
combinacional a ser manipulada(eidt também é possível descrever a rede como uma tabela verdade, usando o
formulário de entrada expresso)a, t(2) inicialmente uma simplificação de dois níveis (misII na verdade usa espresso
como uma sub-rota) em,e( 3) decompõe as funções resultantes em uma rede multinível,( a4n )d
mapear a rede decomposta nas portas de uma determinada biblioteca de portas.

A sequência de comandos a seguir lê as equações que descrevem as funções de soma e (ccaou) ry-out do
somador completo de um arquivo de texto padrão, imprime a rede em forma de dois níveis e imprime a
rede em seu formato fatorado Formato:

% misII

UC Berkeley, MIS Release #2.1 (compilado em 3 de março de 89 às 17h32)

misII> re full.adder

misII> p
{co} = ab ci + ab ci' + a b' ci + a' b ci
{soma} = ab ci + a b' ci' + a' b ci' + a' b' ci

misII> pf
{co} = a b' ci + b (ci (a' + a) + a ci')
{soma} = ci (a' b' + ab) + ci' (a b' + a' b)

A primeira linha solicita que misII leia um arquivo de equação chamado full.adder. O comando p imprime a
rede em dois níveis. O comando pf imprime a rede em uma forma fatorada.

A próxima sequência executa uma simplificação de dois níveis. Em seguida, imprimimos os resultados em formas fatorada
de dois níveis:

misII> sim1 *

misII> p

{co} = ab + aci + bci


{soma} = ab ci + a b' ci' + a' b ci' + a' b' ci

misII> pf
{co} = ci (b + a) + ab
{soma} = ci (a' b' + ab) + ci' (a b' + a' b)

O comando sim1 solicita misII para simplificar a rede usando espresso como minimizador de dois níveis
* dizmisIIpara aplicar a simplificação a cada nó na rede por sua vez. Você pode ver os resultados por tp
e pf.

Em seguida, pedimos ao misII para realizar uma boa decomposição em todos os nós da rede e, em seguida, exibir o
resultado:
misII> gd *

misII> pf
{co} = a [2] + b ci
{soma} = a' [3]' + a [3]
[2] = ci + b
[3] = b'ci' + bci

O comando gd é como você solicita uma "boa decomposição". MisII - gera fatores potenciais e escolhe
aqueles que mais reduzirão o número de literais. Uma decomposição rápida, especificada por qd mais
rápido, mas a qualidade do resultado geralmente não é tão boa. MisII apresenta uma rede de três níveis
com as subexpressões (ci + b) e (b' ci' + b ci) fatoradas. A rede simplificada de dois níveis tem literais; a rede
multinível tem apenas 14 literais.

Até agora, as manipulações são independentes de tecnologia. Se fôssemos implementar a rede em termos de
entradas arbitrárias de portas AND e OR, pararíamos por aqui. No entanto, misII tem a capacidade de mapear
expressões nas portas de uma biblioteca de portas predefinida. Fazemos uso de uma biblioteca de uso frequente
desenvolvida na Mississippi State Univers(itsyee Figura 3.21 para uma lista de alguns dos disponíveis)ga , teste
que é distribuído com o software misII:

misII> rlib msu.genlib

misII> mapa

misII> pf
[361] = b' ci' + a'
[328] = b'
[329] = ci'
{co} = [328]' [329]' +
[361]' [3] = b ci' + b' ci
{soma} = [3] a' + [3]' a

misII> pág
[361] 1890: físico 32,00
[328] 1310:física 16h00
[329] 1310:físico 16,00
{co} 1890:físico 32,00 [3]
2310:físico 40,00 {soma}
2310:físico 40,00

misII> pat
. . . usando o modelo de atraso da
biblioteca {sum}: chegada=( 2.2 2.2)
{co} : chegada=( 2,2 2,2)
[328] : chegada=( 1,2 1,2)
[361] : chegada=( 1,2 1,2)
[329] : chegada=( 1,2 1,2)
[3] : chegada=( 1,2 1,2)
ci : chegada=( 0,0 0,0) b :
chegada=( 0,0 0,0) a :
chegada=( 0,0 0,0)

misII> sair
%

O comando rlib msu.genlib torna o conteúdo desta biblioteca conhecido por misII, enquanto o
comando map mapeia a rede atual nas portas da biblioteca especificada. Se a rede agora é p com pf, a
estrutura foi alterada para refletir as primitivas de porta disponíveis. Isso fica um pouco óbvio usando o
comando print gates, ou pg. Os nós internos da rede são termos descritos das portas escolhidas para
sua implementação, identificadas pelo número da porta conforme mostrado na Figura 3.21.

Neste caso, misII escolheu invert(e1rs310) , XORs( 2310) e OR-AND-Invert gate(s1890) para implementar as
funções. Os números após a palavra "físico" descrevem o tamanho relativo das portas, então você pode ver que
os XORs exigem uma área consideravelmente maior que os inversores: 40 unidades versus 1
A Figura 3.22 mostra a implementação do somador completo em termos dessas primitivas de porta. A figura mostra
os números das portas e os números dos nós internos. Lembre-se que pelo teorema de DeMorgan,
então a porta OR-AND-Invert e a porta Invert-AND-OR são realmente as mesmas.

O comando pat imprime uma estimativa da chegada de sinais em vários nós da rede. Um modelo de atraso unitário sim é
usado. O modelo carrega cada nó do circuito com 1 unidade de tempo para cada nível de porta 0,2 unidade de tempo para
cada fan-out de porta. Como as saídas de soma e co estão a dois níveis de distância e as portas de primeiro nível se
espalham para apenas uma única entrada, o modelo espera que as saídas mudem com unidades de atraso das mudanças
de entrada.

Exemplos Mais Manipulações Lógicas Multiníveis Requer considerável habilidade e


experiência com as operações de manipulação lógica que descrevemos para obter bons projetos multiníveis. Felizmente,
especialistas em design de lógica multinível desenvolveram scripts genéricos de operação que podem ser usados com
bons resultados até mesmo por designers de lógica novatos. Veremos como misII se sai em nossos estudos de caso de
circuitos lógicos combinacionais: o somador completo, o somador de 2 bits e o incremento BCD por circuito.

MisII é distribuído com vários scripts diferentes. Ao longo desta seção, usaremos um script específico
independente de tecnologia chamado, apropriadamente, "script". Para invocar misII em um modo não-intera,
lendo seus comandos de um arquivo de texto, digite o seguinte:

misII -f script -t pla <arquivo de tabela de verdade expresso>

O parâmetro -f é seguido pelo nome de um arquivo contendo comandos misII. O parâmetro -t pla indica que a
descrição do circuito está em um formato de tabela verdade espresso. O parâmetro é seguido pelo nome do
arquivo que contém a descrição da tabela verdade.

Executando misII contra a tabela verdade do somador completo produz a seguinte saída em B (eu
BIeFrkeley Logic
Interchange Form)at, uma linguagem padrão para descrever funções lógicas multiníveis:

. modelo completo. somador

. entradas ab ci
. soma de saídas co
. nomes ab ci co soma
1--0 1
- 1-0 1
- - 10 1
111- 1
. nomes ab ci co
11-1
1-1 1
- 11 1
. fim

Cada seção .names descreve uma única função de saída. A primeira seção deSsvocêcm termos ribeirinhos deUMA,B,

CI(levar), eCO(levar a cabo . Este último é definido na segunda seção como uma funçãoUMA sobre , Bo, fã
CI. Em termos de álgebra booleana, as equações multiníveisSupararmeCOsão como segue:

A expressão paraCrOé idêntico ao obtido pelo expresso. No entanto, o expressoS isr


iovocênmpara

bem diferente. Vejamos isso com mais detalhes.

Lembre-se de que o adde completoSrhumé . O script misII genérico que estamos usando não pode usar
portas XOR. Expresso em soma de produtos paraSrm,humtorna-se . O misII
expressão paraSrhum, usando , reduz efetivamente o número de literais de 12 para 9. Há uma
penalidade de desempenho óbvia, no entanto. A expressão de dois níveisSnvocêfm a soma padrão de
O formulário de produtos foi substituído por um expres( sieoen Figura 3.2)3 de cinco níveis.

Nosso segundo exemplo é o somador binário de 2 bits. Lembre-se de que as entradas são dois números binários de 2 bits
somados, representados pelo inpUMAu, tsBeC,D, respectivamente. A saída é um número binário de 3 bitsX serr,S
Z. A saída misII é a seguinte:

. modelo 2bit.adder
. entradas abcd
. saídas xyz
. nomes acz [22] x
---11
11-- 1
- 10-1
. nomes abcdxz [22] y
1---0-- 1
- - 1---1 1
- 11-0-- 1
- - 110-- 1
- - - 100- 1
. nomes abcdz
- 0-1 1
- 1-0 1
0-10 1
. nomes adz [22]
110 1
. fim

Você pode ver que existem quatro seções .names, embora a função tenha três saídas. MisI
introduziu um único novo resultado intermediário, denota[d2b2]y. SaídasXeSforam expressas
como funções deZe a nova função intermediária
22] (Stambém é uma função oXf):

Esta solução representa uma economia considerável de literais em comparação com a solução que encontramos em Cha Em
forma de soma de produtosX, necessários 8 literaisS , usado 22, e Zfoi expresso em 4, num total de 34.
implementação multinível descrita acima usa apenas 28 literais! Claro, existem implicações de desempenho
da implementação multinível. O pior caso de atraso na forma de soma de produtos são os níveis de porta,
sem contar os literais invertidos. Na forma multinível, são oito portas (lesveeelsFigura 3.24).

Nosso último exemplo é o incremento BCD por 1 função. A saída misII se parece com isso:
. modelo bcd.increment
. entradas abcd
. saídas wxyz
. nomes abcdzw
1---1 1
0111-1
. nomes abcwzx
01-0-1
0-100 1
. nomes aczy
- 11 1
000 1
. nomes abcdz
0--0 1
- 000 1
. fim

Isso leva à seguinte coleção de equações:

CeSsão funções oZ f.Xé uma função deCeZ. A coleção de funções é implementada com
23 literais. O esquema é mostrado na Figura 3.25.

O atraso no pior caso é de sete níveis de porta, sem contar as inversões de nível zero.

3.2.4 Resumo

Nosso objetivo nesta seção foi dar a você um sabor das abordagens para a síntese de lógica multinível. A
ideia-chave é identificar subexpressões booleanas comuns em uma coleção de equações. Se pudermos
estes e compartilhá-los entre várias funções, podemos reduzir o número total de literais que precisam realizar
as funções. Menos literais significam menos fios, um critério importante para determinar a complexidade de um
circuito.

Introduzimos as operações básicas para manipular redes multiníveis: decomposição, fatoração de extração,
substituição e colapso. Um sistema poderoso para manipulação de lógica multinível, chamado misII, foi
introduzido e mostramos como ele poderia processar essas operações para simplificar toda a rede de anúncios.

Como é preciso um designer sofisticado para usar misII para melhor efeito em seu modo interativo, também
mostramos como ele pode ser usado em modo batch, com scripts pré-especificados, para fazer um trabalho razoáve
de derivar implementações multiníveis independentes de tecnologia. A chave é reduzir as contagens literais, embora
isso geralmente tenha o efeito de aumentar o número de níveis de portas.

Aplicamos misII e seu script genérico ao somador completo, ao somador binário de 2 bits e ao incremento BCD por 1
circuito. Conseguimos reduzir as contagens literais das implementações de dois níveis, embora os atrasos do portão
no pior caso tenham sido substancialmente aumentados. Essas realizações de vários níveis exigirão menos área, mas
não serão tão rápidas quanto as implementações de dois níveis.

[Início] [Anterior ][Próximo]

Este arquivo foi atualizado pela última vez em 07/07/96 às


18:44:30. randy@cs.Berkeley.edu ;
[Início] [Próximo] [Anterior ]

3.3 Tempo de Resposta em Redes Combinadas

Nossa análise de circuitos até agora se concentrou no comportamento estático de redes combinatórias. A anális
T descreve adequadamente um circuito em estado estacionário, mas não é suficiente para nos dizer sobre o
comportamento dinâmico do circuito. Lembre-se que a propagação de sinais através de uma rede não é
instantânea. Esta característica pode ser útil, por exemplo, ao criar circuitos que emitam sinais de pulso. Bu
causa problemas se as mudanças momentâneas de sinais nas saídas levarem a erros lógicos. Essas alterações d
saída tr são chamadas de falhas. Diz-se que um circuito lógico apresenta um risco se tiver potencial para falhas.
Discutiremos falhas e perigos na Seção 3.4.

Como projetista de hardware, é extremamente importante ser capaz de visualizar o comportamento de um circuito em função
do tempo - isto é, ser capaz de olhar para um circuito e ver como os sinais se movem através dele, reconhecer atrasos
assimétricos ao longo de caminhos que podem conduzir a um comportamento transitório nas saídas. Este não é um e para
adquirir, mesmo após extensa experiência em design. Felizmente, as ferramentas de simulação podem oferecer grande ajuda na
visualização do comportamento baseado no tempo dos circuitos.

3.3.1 Atrasos do Portão

As saídas em lógica combinacional são funções das entradas e algum atraso. Como dissemos no Capítulo, o atraso da porta é a
quantidade de tempo que leva para uma mudança na entrada da porta causar uma alteração na sua ou A maioria das famílias de
circuitos definem os atrasos em termos de mínimo( m melhor caso)e, típico(média ), e máximo
(pior caso e vezes. Um corolário da lei de Murphy, bem conhecida por designers digitais experientes, é que um circuito
pode funcionar no pior caso de atraso, ele funcionará. Nunca assuma que seu projeto será capaz de rodar com um atraso
mínimo.

O que aconteceria se você dependesse de uma parte do seu projeto rodando com o mínimo de atraso? Se o
atraso for maior do que o planejado, você poderá examinar sua saída muito cedo, calculando incorretamente a
saída final do sistema geral.

As várias famílias de TTL exibem compensações entre atraso e potência. Quanto mais rápido um componente, mais
energia ele consome. A Tabela 3.1 mostra algumas informações de tempo para portas TTL típicas. Você notou que os
atrasos de propagação geralmente dependem se a saída está indo de baixo para alto, escrita tpLH, ou de alto para
baixo, tpHL?
Para portas NAND de duas entradas, 74X00, a família TTL de baixa potência (ieLs, LS) , é substancialmente mais lenta do que
log(icH, S) de alta velocidade. As portas NOR de duas entradas, 74X02, exibem atrasos comparáveis. Para uma determinada
família TTL, como LS, componentes mais complexos tendem a ser mais lentos. Isso é mostrado na Tabela 3.1 74LS86A porta XOR
de duas entradas.

3.3.2 Formas de onda de tempo

Vamos considerar o circuito mostrado na Figura 3.26.

Um sinal de entradaUMApassa por três inversões, deixando-o em seu estado invertido, que é então AND com a
entrada original. Isso parece implementar uma função bastante inútil: . No entanto, o diagrama de tempo da
Figura 3.27 nos conta uma história diferente. Após a entrada UMApguotes alto, a forma de onda de saída
vai alto por um curto período de tempo antes de ir baixo. Tal circuito é chamado de modelador de pulso porque um canal
de sua entrada causa um pulso de curta duração na saída.

O circuito da Figura 3.26 funciona da seguinte forma. Vamos supor que o st inicialUMA comi B = 1,C=0,
=h0a,s
D=1, eF=0, como mostrado na Figura 3.27 no passo de tempo 0.

Além disso, assumimos que cada porta tem um atraso de propagação de 10 unidades de tempo. WhUMAenchinapnugtes de 0
a 1 no tempo 10, leva 10 unidades de tempo, um atraso de porta, bB efo
Cvaria
H de 1 a (0time step 2)0. Depois
um segundo portão delaCy, muda de 0 para (1time step 3)0.Dmuda de 1 para 0 após um terceiro portão
atraso (passo de tempo 4)0. No entanto, entre o tempo 10 e o tempo 40, bUMAotahndDsão lógicos 1. Se a porta AND também
tiver um atraso de porta de 10 unidades, a saídaFpuwtill ser alto entre as etapas de tempo 20 e 50. Isso é exatamente o que é
mostrado no diagrama de tempo. Com efeito, os três inversores alongam o tempo duranteUMAwahnidcD h
ambos são lógicos 1 depoisUMAr muda de 0 para 1. Eventualmente, a mudançaUMA e pinropagates paraDcomo 0, causando
Fcair após outro atraso de portão. Não é surpresa que o pulso seja exatamente três atrasos do inversor com o
aumento do número de inversores para cinco, a largura do pulso seria de cinco atrasos de porta inste

Um circuito modelador de pulso explora as assimetrias de propagação em caminhos de sinal com o propósito
explícito de criar mudanças de curta duração na saída. Ele gera uma forma de onda periódica que pode ser usada, po
exemplo, como um relógio em um sistema digital. Funciona como um cronômetro. Com seu interruptor em uma
posição, o circuito não faz nada. Na segunda posição, o circuito gera uma sequência periódica de pulsos.

Análise de um circuito modelador de pulso

Nesta seção, analisaremos o funcionamento do circuito modelador de pulso simples da Figura 3.28.

O circuito tem um único inpUMAutque está conectado a uma lógica 1 quando a chave está aberta e a uma lógica 0
quando o interruptor está fechado. Isso ocorre porque o caminho para o terra tem menor resistência do que o caminho t fonte
de alimentação quando o switch está fechado (os esdwitches são discutidos em mais detalhes na Seção) 3..5W . 3e
assumirá que o atraso de propagação de todas as portas é de 10 unidades de tempo.

Vamos supor que no passo 0, a chave acabou de ser fechada. Começamos determinando o valor in para
cada um dos ne do circuitoUMA ts. vai para 0 instantaneamente. Uma vez que uma porta NAND produzirá um 1 sempre que
uma de suas entradas é 0B, vai para 1, mas após um atraso de 10 unidades de tempo. Então nós simBy gthoaets para 1 no passo
de tempo 10.

Dirija-se a
Cé definido para o complementoBo,f mas novamente somente após um atraso de propagação do inversor.C
0 no passo de tempo 20D. torna-se o complementoCapós outro atraso do inversor. Então vai para 1 no
passo 30. Como UMAé 0 eDé 1, a saída da porta NAND permanece em 0. Diz-se que o circuito está em um
curso estável.

O que acontece se a chave abrir no passo 40? oUMAinipmumt imediatamente vai para 1. Agora ambas as entradas
para a porta NAND são 1, então após uma propagação de porta de 10 vezesB unwittisll, vá para baixo. Isso acontece na hora
passo 50.
A mudança emBse propaga paraCapós outro atraso do inversor. Assim no passo de tempoC6g0o, es para 1. Em um
Moda semelhante,Dvai para 0 no passo 70. Agora a porta NAND tem uma de suas entradas em 0, então no
passo 80Bvai para 1.

Observe queBprimeiro vai para baixo no passo de tempo 50 e vai para o alto no passo de tempo 80 - uma diferença de 30
unidades de tempo Isso é exatamente três atrasos de porta: o atraso através da porta NAND e as duas portas do inversor no
caminho t do sinalB eu paraD.

Agora issoBestá em 1,Cirá para 0 no passo de tempo 90D, irá para 1 no passo de tempo 100, umBd retornará a 0
no passo de tempo 110. O circuito não está mais em estado estacionário. agora oscilaB,WCisso, mãoDvariando
entre 1 e 0, permanecendo em cada valor por três portas d(e3l0 unidades aytsime). O comportamento do circuito
está resumido no diagrama de tempo da Figura 3.29.

[Início] [Próximo] [Anterior ]

Este arquivo foi atualizado pela última vez em 07/07/96 às


18:44:30. randy@cs.Berkeley.edu ;
[Início] [Próximo] [Anterior ]

3.4 Perigos/falhas e como evitá-los

Uma falha é um pulso indesejado na saída de uma rede lógica combinacional. Diz-se que um circuito com o pote
para uma falha tem um risco. Em outras palavras, um perigo é algo intrínseco a um circuito; circuito com perigo
pode ou não apresentar falhas, dependendo dos padrões de entrada e das características elétricas do circuito.
Nesta seção, desenvolveremos um procedimento que leva a circuitos livres de perigos.

3.4.1 O Problema com os Perigos

Os perigos são um problema para os sistemas digitais em dois casos. No primeiro caso, a lógica sensível ao tempo
toma decisões com base na saída de uma função sem permitir que a saída se estabeleça em um valor final de sta
permanente. Este problema pode ser resolvido aumentando o intervalo entre o momento em que as entradas são
alteradas pela primeira vez e o momento em que as saídas são examinadas pela lógica de tomada de decisão. Por
exemplo, aumente esse intervalo aumentando o período do relógio do seu sistema. Discutiremos o tópico das
metodologias de clockin com muito mais detalhes na Seção 6.2.

No segundo caso, uma saída perigosa é conectada a um componente com entradas assíncronas. As entradas
assíncronas entram em vigor assim que mudam, em vez de quando amostradas com um relógio de referência
standa. Isso pode ser resolvido evitando peças sincronizadas com entradas assíncronas.

Na maioria dos casos, podemos usar essas técnicas para evitar a necessidade de projetar circuitos livres de riscos. Como
alguns componentes muito úteis inevitavelmente têm entradas assíncronas. Por exemplo, muitos compo que
implementam funções de contagem ou elementos de armazenamento têm entradas assíncronas para redefini-los ou sua
operação. Portanto, se você alguma vez projetar circuitos que fazem interface com tal comp(oannedntysou!), você deve
entender como projetar livre de perigos.

Perigos estáticos e dinâmicosOs métodos para eliminar perigos sempre dependem da suposição de que as
mudanças inesperadas nas saídas são em resposta a mudanças de um único bit nas entradas. Essa suposição é
equivalente a se mover ao longo de uma aresta no cubo booleano que descreve a tabela de funções. As técnicas
simplesmente não se aplicam quando mais de um bit de entrada muda ao mesmo tempo

Os vários tipos de perigos estão resumidos na Figura 3.30.


Um risco estático ocorre quando é possível que uma saída sofra uma transição momentânea quando se espera que
permaneça inalterada. Um risco estático de 1 ocorre quando a saída momentaneamente vai para 0 w deve
permanecer em 1. Da mesma forma, um risco estático de 0 ocorre quando a saída deve permanecer em 0, mas
momentaneamente muda para 1. Desenvolveremos técnicas que podem eliminar os riscos estáticos de circuitos de
dois e multiníveis.

Os perigos dinâmicos ocorrem quando o sinal de saída tem o potencial de mudar mais de uma vez quando se
espera que faça uma única transição de 0 para 1 ou 1 para 0. Os perigos dinâmicos causam falhas em vários
circuitos, onde existem vários caminhos com diferentes atrasos das entradas às saídas. Infelizmente, é muito
difícil eliminar os perigos dinâmicos em geral. A melhor abordagem para resolver este problema é transformar
um circuito multinível com risco dinâmico em um circuito de nível estático livre de risco.

3.4.2 Detecção e Eliminação de Perigos em Redes de Dois Níveis

Considere a função de quatro variáveisFn(UMA,B,C,D) =Sm(1,3,5,7,8,9,12,1)3. Seu K-map é mostrado na


Figura 3.31.

A soma mínima de produtos para a função é .


A implementação no nível do portãoFof é dado na Figura 3.32. Vamos examinar o que acontece quando o inp
mudar deABCD=1100 a 1101. Quando as entradas são 1100, a saída da porta G1 é 1 enquanto a saída G2' é 0.
Assim, a saída de G3 é 1. Quando a entrada muda um único bit para 1101, as saídas das portas permanecem
inalteradas . G1 implementa o implicante principal que cobre ambas as configurações de entrada que
consideramos; ele permanece afirmado apesar das alterações de entrada. Uma falha não pode acontecer neste
caso.

Agora considere uma mudança de entrada de 1101 para 0101, outra mudança de bit único nas entradasUMA. gW oh
esen
baixo, vai alto, mas somente após um atraso de portão. Por pouco tempo,UMABA thd são baixos. Isso permite que o
sobre

saídas de G1 e G2 sejam baixas ao mesmo tempo, eFthguose baixo. Quando finalmente subir, G2
subirá eFretornará para 1. Ocorreu uma falha! O processo passo a passo é mostrado na Figura
3.33.

Um exame minucioso do K-map da Figura 3.31 sugere o que causou o problema. Quando as entradas in e final
são cobertas pelo mesmo implicante principal, nenhuma falha é possível. Mas quando a mudança de entrada
abrange implicantes principais, uma falha pode acontecer. Claro, se o G1 for muito mais lento para mudar, você
pode não ver a falhaFn. O perigo está sempre presente. Se você realmente vê a falha depende dos tempos dos
portões individuais.

Uma estratégia para eliminar o risco é adicionar implicantes primos redundantes para garantir que todas as
mudanças de entrada sin sejam cobertas por um tal implicante. Suponha que adicionamos a implementação
implícita paraF. Essa estratégia não altera a tabela verdade da função. Adicionando o ,teFrm permanece ativo para as
entradas 1101 e 0101, independente da mudançaUMApara introduzir

Este método elimina o risco estático 1, mas e os riscos estáticos 0? Primeiro, reexpresse o f Fna forma
de produto mínimo de somas:

O K-map na Figura 3.34 indica claramente que existe um risco estático de 0 quando a entrada muda de 111
para 0110.

A solução é adicionar o implicante primo redundante à expressão do produto das somasFfo. rA


expressão resultante é equivalente à forma de soma de produtos que elimina o risco estático 1:
Alternativamente, podemos usar um atalho para analisar a função para 0-hazards. Começamos com o expres
que é livre de 1-hazards estáticos e trabalhamos com seu complemento. Podemos então sobrepor a análise ao K
map original, olhando para os zeros da função original. Existe um risco 0 estático se os implicantes do
complemento não cobrirem todos os 0's adjacentes.

A expressão revisada fF oris . Trabalhando com seu complemento, obtemos o seguinte:

Esta coleção de termos de fato cobre todos os 0's adjacentes no K-map para o rFA
expressão e.vTisheisd está livre de riscos estáticos 1 e 0.
Estratégia Geral para Eliminação de Perigo EstáticoO exemplo anterior leva a uma estratégia geral que elimina riscos
estáticos em redes de dois níveis. Vamos considerar os riscos estáticos 1 primeiro. Começando com map, nós o
examinamos para ter certeza de que todos os elementos adjacentes do on-set estão cobertos por um implicante principal.
Se não forem, adicionamos implicantes primos redundantes até que todos os elementos do on-set sejam co

Seguimos um procedimento semelhante para eliminar riscos estáticos de 0. Dada a forma de


soma de produtos para a função que elimina os riscos estáticos de 1, escrevemos na forma de
produto de somas usando alg booleano. formulário de somas. Se necessário, adicionamos mais
implicantes primos para cobrir qualquer adjacência descoberta

3.4.3 Detectando Riscos Estáticos em Redes Multinível

Podemos generalizar as técnicas descritas na seção anterior para circuitos multiníveis. Pedimos o mapeamento
da função multinível em uma forma de dois níveis chamada função de saída transiente. Ao formar a função de
saída transiente, tratamos uma variável e seu complemento como variáveis independentes. Isso significa que
não podemos mais fazer uso das leis booleanas que afirmam que e .o
o primeiro introduz riscos estáticos de 0, enquanto o último leva a riscos estáticos de 1. Além disso, não
podemos usar nenhum dos teoremas de simplificação derivados dessas leis booleanas, como a
simplificação 9 e 11 e o teorema do consenso do Capítulo 2.

Exemplo Uma Função Multinível Vamos considerar a seguinte função booleana multinível:

Uma rápida aplicação da lei distributiva rende

Esta é a função de saída transiente em forma de soma de produtos. SUMAse seu complemento for tratado
como variável independente, o termo é mantido na função de saída transiente.

Uma vez que a função está na forma de dois níveis, seguimos o procedimento descrito na subseção anterio
Primeiro verificamos se há perigos estáticos 1 na função. Observe que o termo nunca pode causar um risco
1 (ele indica que um risco 0 é ex) e pode ser eliminado da consideração ao analisar os riscos 1. O K-map par
os termos restantes é mostrado na Figura 3.35.

A função contém 1-hazards estáticos, como uma transição de entradaAB paraClám


D=1111 a 0111 ou 1111 a
1101.
A solução é adicionar os implicantes primos redundantes necessários. No K-map da Figura 3.35, isso é
obtido adicionando o termo UMAsBeBDà soma dos produtos formamd F o:

PorqueABcobre completamente o terUMAmBC, nós o eliminamos de F2.

e sua expressão revisadaFn2.


A Figura 3.38 compara o comportamento de temporização da função originalFtio
Notar queFfalhas nas transições de entrada 1111 para 0111 e 1111 para 1101,Fw2he ilelimina o
falhas.

Usamos o método de atalho para verificar se a nova expressão está livre de 0-hazards estáticos. Para a
função oF, é

Esta expressão corresponde aos 0's circulados no K-map da Figura 3.37.

A função tem um risco 0 na transição de 1010 para 0010, conforme mostrado na onda de tempo para

Figura 3.38. Esse problema pode ser corrigido adicionando o implicanto . O seguinte é uma expressão de dois
níveis paraF r que está livre de perigos estáticos 0:
ExpandindoF3 para colocá-lo na soma dos produtos do rendimentoFd2s. Ambas as expressões estão simultaneamente
livres de perigos estáticos 0 e 1.

3.4.4 Projetando Circuitos Livres de Risco Estático

O procedimento para projetar uma rede livre de risco estático é uma aplicação direta do co que
acabamos de descrever. A chave é colocar a função de tal forma que a saída transitória fun garanta que
cada conjunto de 1's adjacentes no K-map seja coberto por um termo e que nenhum termo c seja uma
variável e seu complemento. A primeira condição elimina 1-perigos e a última elimina 0-perigos.

Seguir este procedimento eliminará os perigos dinâmicos, pelo menos para implementações de dois níveis. W começ
com a tabela-verdade ou a expressão da função na forma abreviada de termos mínimos. Em seguida, exploramos a
função em termos de implicantes primos que garantem que 1's adjacentes sejam cobertos por um único fator te a
expressão resultante usando as leis e teoremas da álgebra booleana, mas tratando um var e seu complemento como
variáveis independentes. Por exemplo, a lei distributiva nunca pode introduzir perigo, então pode ser usada
livremente para simplificar a função. As leis de complementaridade, por outro lado, não podem ser utilizadas para
simplificar a função. Desde que nenhum termo na expressão resultante contenha uma variável e seu complemento, a
função estará livre de riscos.

Voltando à função de exemplo desta seção, sua forma abreviada de termo mínimo é

F(UMA,B,C,D) = Sm(1,3,5,7,8,9,12,13,14,15)

O K-map com termos circulados é mostrado na Figura 3.39.

Isso produz a expressão

Este resultado é o mesmo que a expressãoF2foir a subseção anterior. A fatoração por meio da lei
distributiva produz a seguinte expressão livre de risco estático multinível:

Esta expressão requer cinco portas, como foi o caso da expressão originalFsio gn
ivefonr no
início desta seção.
3.4.5 Perigos Dinâmicos

Perigos dinâmicos são definidos como transições de saída de 0 para 1 ou 1 para 0, passando por mais de uma
mudança ao longo do caminho. Perigos dinâmicos acontecem por causa de vários caminhos na rede mult
subjacente, cada um com seu próprio atraso assimétrico. Se houver três ou mais caminhos de uma entrada ou
seu complemento para a saída, o circuito tem potencial para um risco dinâmico.

A Figura 3.40 dá um exemplo de circuito com risco dinâmico. Observe que existem três diferentes deB
ou para as saídas. A seguinte sequência de eventos pode levar a um perigo dinâmico no o Suponha que
as entradas iniciais aUMAré BC=000,F=1 e a configuração final é 010 wiFth = 0. No
configuração inicial, G= 1 0, G2= 1, G3= 1, G4= 1 e G5= 1. As entradas e saídas iniciais da porta
são mostrados em texto simples na figura.

Agora suponha queBt muda de 0 para 1. Assumimos que G1 é uma porta lenta, G4 é uma ga muito
lenta e G2, G3 e G5 são rápidas. G2 muda de 1 para 0, seguido por G3 indo para 0 e G5 seguindo 0
pouco tempo depois. Até agora, a entrada mudou de 1 para 0. Essa situação é mostrada pelo negrito
na figura.

Agora o G1 alcança. Sua saída vai para 1, fazendo com que G3 fique alto, seguido por G5 subindo. Neste
ponto, a saída mudou de 1 para 0 para 1. Isso é mostrado em itálico simples na figura.

Finalmente, a saída de G4 muda de 1 para 0. Isso faz com que G5 fique baixo, atingindo sua saída final. O o
mudou de 1 para 0 para 1 para 0. Isso é mostrado em negrito e itálico na figura.

Embora seja possível estender as técnicas de eliminação de perigos estáticos para perigos dinâmicos, o
processo t é bastante complicado e vai além do escopo deste texto. Não é suficiente eliminar riscos
estáticos - uma rede multinível livre de riscos estáticos ainda pode ter riscos dinâmicos. Se você precisar de
uma rede livre de riscos, é melhor projetá-la como uma rede de dois níveis usando as técnicas da Seção 3.

[Início] [Próximo] [Anterior ]

Este arquivo foi atualizado pela última vez em 07/07/96 às 18:44:30.


randy@cs.Berkeley.edu ;
[Início] [Próximo] [Anterior ]

3.5 Questões Práticas

Passamos agora da teoria dos circuitos digitais para alguns aspectos mais práticos da engenharia. Nesta seção, primeiro
aprenderemos como ler uma folha de dados de um componente. Em seguida, veremos como realizar cálculos elétricos
simples sobre os dados que ele apresenta. Usaremos a folha de dados para o componente de porta NAND de duas
entradas quádruplas 74LS0 como um exemplo em execução. Finalmente, veremos como conectar e emitir saídas para
nossos circuitos usando interruptores simples e diodos emissores de luz.

3.5.1 Elementos da Folha de Dados

Uma folha de dados contém toda a documentação relevante de que você precisa para usar o componente. Os
(1) uma
elementos ba incluem descrição em inglês da função executada pelo comp (em 2)ent,
uma tabela de função/verdade(, 3) um esquema lógico com entradas e saídas rotuladas(u4ts), expressões
booleanas que definem as saídas em termos de funções lógicas do inp(u5ts), pacote alternativo pin-out(s6,)
esquema de transistor interno (s7,) especificações de operação para o componente(n8t), condições de operação
recomendadas(,9) características elétricas, e(d10) características de comutação. Nem toda folha de dados terá
todas essas peças, mas a maioria delas estará presente. Vejamos cada um deles para 74LS00.

Descrição do idioma inglês"Esses dispositivos contêm quatro portas NAND independentes de duas entradas."

A descrição informa sucintamente o que o componente faz. No caso de uma porta lógica simples, a
descrição t é bastante breve. Para componentes MSI mais complexos, a descrição pode continuar por vário
parágrafos.

Tabela de função/verdadeA tabela de funções descreve a operação do componente tabulando as


combinações de entrada e saída. Para evitar confusão sobre lógica positiva e negativa, a tabela verdade foi
definida em termos de níveis de sinal, H e L, em vez de níveis lógicos, 0 e 1.

A Figura 3.41 mostra a tabela funcional da porta NAND. Quando ambas as entradas são altas, a saída i Quando
uma entrada é baixa, independente da outra entrada, a saída é alta. Escrever a tabela verdade para a função
NAND dessa maneira é uma boa abreviação. Para funções mais complexas, é mais comum essa abordagem
funcional do que escrever uma tabela-verdade completa.
Esquemas LógicosNosso exemplo é o portão simples mostrado na Figura 3.42.

Mesmo neste caso simples, a rotulagem é importante porque une a mesa funcional e a pinagem da
embalagem.

Expressão BooleanaA expressão booleana para o portão está em lógica positiva. A expressão é escrita
em duas formas alternativas: ou .

Pinagem do pacoteA Figura 3.43 mostra a pinagem do pacote padrão para o 74LS00. Observe que existem vários
tipos de pacotes alternativos, portanto, é sempre importante consultar aquele que corresponde ao seu componente
específico. O 74LS00 vem em um pacote de imersão de 14 pinos. As entradas e saídas são o número da porta do
laboratório (r 1 a 4) e os nomes dos sinais derivados da tabela de funções e do esquema lógico.

Esquemas do transistorA próxima seção da folha de dados descreve as configurações internas do


transistor. Estes não são importantes para os propósitos deste texto.

Classificações máximas absolutasEssas classificações são as condições absolutas de pior caso sob as quais o
componente pode operar ou ser armazenado. Eles nunca devem ser excedidos. A tensão máxima de alimentação de
um componente LS é de 7 V, a tensão máxima de entrada é de 5,5 V, a temperatura de operação ao ar livre é de 0 a
70°C e a temperatura de armazenamento pode variar de -65 a 150°C.

Condições de operação recomendadasEssas especificações descrevem as condições normais de operação para a tensão
de alimentação, tensões de entrada, correntes de saída e temperatura. As tensões de alimentação são termos descritos de
configurações mínimas, nomina(lnorma)l e máximas. Para todos os componentes do 74LS, são 4 5 e 5,25 V,
respectivamente. É por isso que o TTL é frequentemente descrito como uma tecnologia de 5 V.

As tensões de entradaV, HI eVIL, descreva a tensão mínima reconhecida como 1 lógica e a tensão máxima
reconhecida como 0 lógica, respectivamente. Para componentes 74LS, qualquer coisa ab V é um 1 lógico e
qualquer coisa abaixo de 0,8 V é um 0 lógico. As tensões entre esses valores não serão reconhecidas como
ou 0.
, MãoEUOL, descreva as correntes máximas que o portão pode fornecer para manter
As correntes de saídaEUO
saída em uma tensão que será reconhecida como lógica 1 ou 0, respectivamente. Para LS TTL, são -0 (a corrente
flui da saída p)in e 8 mA( a corrente flui para a saída p)in. Famílias lógicas mais rápidas geralmente têm valores
absolutos maiores para suas correntes de saída.

A temperatura de operaçãoTeA, , define a faixa de temperatura recomendada sobre a qual operar o


portão. Para componentes 74LS, a faixa de operação é de 0 a 70°C.

características elétricasEsta seção define diversas tensões e correntes que podem ser observadas nas
entradas e saídas dos componentes. A entradaV aH
assim re, a saída mínima de alta tensãoV eO
, L, o
baixa tensão de saída máximaEUI,H, a corrente máxima em um pino de entrada quando a entrada é hEUiIgLh, , a corrente
máxima em um pino de entrada quando a entrada é lEUoCwC,H, a corrente de alimentação do pacote quando todas as
saídas estão altas, umEUC dCL, a corrente de alimentação do pacote quando todas as saídas estão baixas. T
os dois últimos valores são por pacote e devem ser divididos pelo número de portas no pacote para o
atual por porta.

Para os componentes 74LS, uma alta tensão de saída é de 2,7 V no mínimo, 3,4 V típico. A baixa tensão de saída
é de 0,4 V no máximo, 0,25 V típico. Esses valores determinam a margem de ruído. 74LS TTL en Margem de
ruído de 0,7 V na lógica (12,7-2,0 V) e uma margem de ruído de 0,4 na lógica (0,8-0,4 V).

As correntes de entrada são no máximo 20 µAEUfIoHr e -0,4 mA paraEUIL. As correntes da fonte de alimentação são
típicas de 0,8 mA, pior caso de 1,6 mA para saídas altas. Para saídas baixas, as correntes de alimentação são 2,4 m
típicas e 4,4 mA no pior caso.

Características de comutaçãoEsta seção fornece os atrasos de porta típicos e máximos sob condições
especificadas de resistência e capacitância de saída. Por exemplo, as condições de teste para o 74LS00 e são um
resistência de carga de 20t0P0LH, o atraso de propagação para alternar a saída de baixa para alta tensão, etPHL
o tempo de propagação para mudar de alto para baixo. Os atrasos de baixo para alto e alto para baixo
raramente são simétricos. Para o 74LS00, as respectivas especificações são 9 ns e 10 ns typi 15 ns no pior caso. A
maioria das portas LS tem atrasos típicos de aproximadamente 10 ns por nível de porta.

3.5.2 Cálculos Simples de Desempenho

Nesta subseção descrevemos alguns cálculos simples que você pode usar para determinar o desempenho do seu
circuito.

Atraso de Propagação TípicoPara calcular o atraso de propagação típico através de uma porta, faça a média dos
atrasos de propagação típicos de baixo para alto e de alto para baixo. Para o 74LS00, isso seria 9,5 ns O uso de atraso
típicos é sempre um tanto controverso. Um projeto verdadeiramente conservador sempre reduziria os atrasos
máximos de propagação.

É importante observar que os atrasos citados no livro de dados são para condições de teste específicas
Em condições de resistência ou capacitância aumentada, o atraso será pior do que o descrito no livro.
Consumo de energiaCalcule o consumo de energia em estado estacionário multiplicando a corrente da porta em
manter as saídas altas ou baixas pela tensão da fonte de alimentação. A tensão nominal de alimentação é de 5 V, as
correntes sãoEUCCH eEUCCL. Para o 74LS00, o consumo médio típico de energia do pacote será

Este é o consumo de energia típico por pacote. Deve ser dividido por 4 para obter o consumo de
energia por porta.

Mais uma vez, calculamos o consumo de energia típico. Um projetista conservador usaria as correntes
máximas de alimentação para calcular o consumo de energia no pior caso.

EspalhamUma determinada saída TTL pode acionar apenas um número finito de entradas antes que os níveis do
sinal de saída se degradem e não sejam mais reconhecidos como bons 0's ou 1's lógicos. Determinando o fa bastante
simples. Primeiro, examine o (valor absoluto o) fEUOH do portão de condução. Este valor deve exceder a soma dosEU
e thLe do portão
Valores IH das entradas que o portão está acionando. De forma similar,EUO
deve exceder o (valor absoluto da) soma dosEUValores IL das entradas às quais está conectado.

Como exemplo, vamos calcular o fan-out do portão 74LS00 NAND conduzindo um portão semelhanteEUIsH. Tish2 e0
µA e oEUOH é -0,4 mA. Isso significa que uma porta LS NAND pode conduzir 20 portas semelhantes a uma EUIL é -0,4 mA
enquantoEUOL é 8 mA. Mais uma vez, uma porta LS NAND pode conduzir 20 portas semelhantes a um log

Vamos repetir o cálculo para o padrão TEUTOLH . é -0,4 mA eEUIH é 40 µA. Isso indica que o
fan-out é de apenas 10EU.IL é -1,6 mA eEUOL é 16 mA, indicando também que o fan-out é 10.

Agora suponha que temos um sistema com uma mistura de componentes LS TTL e TTL padrão. Uma parte do nosso
projeto tem uma porta LS TTL NAND acionando algumas entradas TTL padrão. Qual é o fan-out máximo correto para
o portão LS?

Ao conduzir as saídas altas, thEUOeH de LS TTL é -0,4 mA. oEUIH de TTL padrão é 40 µA. este
é um fan-out de 10. Ao acionar as saídas baixas,EUpara heL de LS TTL é 8 mA. oEUIL do TTL padrão
é -1,6 mA. Este é apenas um fan-out de 5! Este exemplo ilustra a importância de determinar a distribuição correta
dos portões, especialmente quando você estiver usando uma combinação de tecnologias TTL.

3.5.3 Entradas e Saídas com Chaves e LEDs

Um circuito lógico combinacional é inútil a menos que você possa fornecer entradas e observar sua saída Nesta
subseção, examinaremos como usar chaves para fornecer entradas a um circuito, enquanto um diodo emissor
de luz (LED) pode ser usado para observar a saída do circuito.

Interruptores de pólo único/lance únicoUma chave unipolar/de um único passo tem duas conexões de ponto
para t externo. O switch pode fazer ou quebrar a conexão entre esses dois pontos.

Para implementar uma fonte útil de 1's e 0's lógicos, o switch pode ser configurado como na Figura 3.44.
Funciona da seguinte forma. O símbolo que se parece com um topo é uma maneira padrão de representar o solo.
Quando a chave está aberta, o terra é desconectado do nó de saída. O resistor é chamado de "pull-up" porque eleva
a tensão no nó de saída até algo que será reconhecido como um número lógico 1. O bo um número dentro dele
representa uma ponta de prova lógica, e nós o usamos para indicar o valor lógico no circuito está conectado.

Quando a chave é fechada, o potencial de terra traz o nó de saída para uma tensão lógica 0. O resistor T deve ser
escolhido para limitar a corrente entre a fonte de alimentação e o terra quando o interruptor estiver fechado. Uma
resistência muito pequena fará com que muita energia seja consumida quando a chave estiver fechada, a resistência
for definida muito grande, a queda no resistor pode produzir uma tensão na entrada do circuito n que é muito
pequena para ser reconhecida como uma lógica 1. Um bom valor de resistor de compromisso para esses tipos de up
é 10.000

Interruptores de pólo único/duploUm polo único/arremesso duplo (SPDT) tem três


ligações para o exterior. A mecânica interna permite conectar seletivamente uma das duas
conexões à terceira conexão.

A Figura 3.45 mostra a configuração do switch SPDT. Um ponto de conexão é conectado à fonte de
alimentação e o outro é conectado ao terra. O interruptor pode ser colocado em uma das duas posições.
Quando na posição t, a chave conecta a fonte de alimentação ao nó de saída. O nó de saída é acionado para
al voltagem. Na outra posição, o terra é conectado à saída. Agora o nó de saída é conduzido para tensão 0.

Botão de pressão de pólo único/duploUma variação do interruptor de pólo único/duplo é o


botão de contato momentâneo. Isso é mostrado na Figura 3.46.

Um polo de entrada distinto é conectado à saída quando o botão está em repouso. Ao


pressionar o botão, o interruptor faz uma conexão entre o segundo pólo de entrada e o ou Ao
soltar o botão, ele retorna imediatamente à sua posição de repouso.

Diodos emissores de luzDiodos emissores de luz, ou LEDs, são elementos eletrônicos que emitem luz sempre
que uma corrente flui através deles. Assim, eles são dispositivos de saída óptica ideais. Um LED tem duas
conexões, chamadas de ânodo e cátodo. O dispositivo é iluminado sempre que o vol do anodo excede a tensão
do catodo por um determinado limite. O LED é um elemento unidirecional, por isso é importante poder
distinguir entre as duas conexões. O cátodo é geralmente o mais longo ou o condutor mais próximo do lado
plano do invólucro de plástico do LED.

A Figura 3.47 mostra uma das muitas maneiras pelas quais uma porta TTL pode acionar um LED. Em um esquema, um LED
é representado como um triângulo preto voltado para uma linha. O ânodo é a borda romba do triângulo e o cátodo é a
linha plana.

O LED acende quando o interruptor é colocado na posição superior. Neste caso, a lógica de entrada do inversor
1 e sua saída estão na lógica 0. Esta posição garante que o potencial do cátodo seja menor que o potencial.

O LED fica escuro quando o interruptor está na posição inferior. Esta posição porta um 0 lógico para a entrada do
inversor, produzindo uma saída de 1 lógico. Uma saída lógica 1 TTL coloca uma tensão muito alta no cátodo para
permitir que o LED acenda.
O resistor entre o LED e a fonte de alimentação é chamado de resistor limitador de corrente. Um LED
unprot conectado diretamente entre o terra e a fonte de alimentação queimaria e poderia destruir o
circuito ou da porta TTL.

Podemos calcular o valor do resistor limitador de corrente da seguinte maneira. Dimensionamos o resistor de modo
que a corrente t nele se aproxime, mas não excedaEUO d Lthvealue para a porta que acionará o LED.
Por exemplo, o EUOL de uma porta do inversor TTL 7404 padrão é de 16 mA. A resistência certa é 330 oh

[Início] [Próximo] [Anterior ]

Este arquivo foi atualizado pela última vez em 07/07/96 às


18:44:30. randy@cs.Berkeley.edu ;
[Início] [Próximo] [Anterior ]

Revisão do Capítulo

Neste capítulo, construímos em cima da lógica de porta simples apresentada no Capítulo 2. Em particular,
examinamos a conversão de redes AND/OR e OR/AND em lógica somente NOR e somente NAND. Sob certas
condições, um inversor adicional deve ser adicionado na saída, para que essas conversões de lógica de dois
níveis para uma forma de três níveis.

Introduzimos nossa primeira forma de lógica complexa: portas AND-OR-Invert e OR-AND-Invert. Usando os blocos de
construção, é possível reduzir significativamente o número de pacotes necessários para implementar funções de
níveis moderados de complexidade.

Examinamos o conceito de lógica multinível e apresentamos suas vantagens em termos de contagens reduzidas
de lite e complexidade de fiação simplificada. Obviamente, a lógica multinível introduz a possibilidade de
aumentar o atraso do circuito ao colocar níveis adicionais de portas entre entradas e saídas. Em geral, a lógica d
nível produz as implementações mais rápidas e a lógica multinível resulta em circuitos com menos fios

Descrevemos uma ferramenta para otimização lógica multinível, misII, e discutimos como ela pode ser usada em
projetos de circuito multinível. Para usar a ferramenta para seu melhor efeito, você realmente deve entender a
estrutura matemática das expressões booleanas fatoradas. No entanto, com o script de comando padrão fornecido
com o misII, mesmo designers iniciantes podem usar as ferramentas para criar bons designs multiníveis.

Analisamos o tempo de resposta em redes lógicas combinatórias e introduzimos o conceito de perigos de


temporização e métodos para construir circuitos lógicos livres de perigos. Deve-se salientar que o risco de um
problema principalmente em circuitos sem relógio global. Teremos mais a dizer sobre circuitos com clock no
Capítulo 6.

A seção final tratou de várias questões práticas importantes. Eles estavam lendo especificações de
componentes de um livro de dados; realizar cálculos simples para determinar atrasos, consumo de
energia e distribuição do circuito; e ligar interruptores e LEDs como entradas e saídas do circuito.

Leitura adicional
Para uma apresentação detalhada das técnicas de otimização de lógica multinível, os seguintes artigos são
altamente recomendados: K. Bartlett, W. Cohen, A. DeGeus, G. Hachtel, "Síntese e Otimização de Lógica de Nível
Múltiplo sob Restrições de Tempo,E "EEUETransações em Desenho Assistido por Computador, CAD-5, 4, 58
596 (outubro de 198)6, e RK Brayton, R. Rudell, A. Sangiovanni-Vincentelli, AR Wang, "MIS: A Multiple-
Level Logic Optimization System",EEUEETransactions on Computer-Aided Design, CAD-6, 6 1062-1081
(novembro de 198)7. Este último é o tratamento teórico definitivo dos algoritmos no centro da
abordagem de misII para otimização lógica multinível.
Baseamos nossa discussão sobre perigos na Unidade 26 do texto clássico de CH Roth Jr.,
Fundamentos do Design Lógico, 3ª Edição, West Publishing Co., St. Paul, MN, 1985. perigos
dinâmicos. Uma discussão mais detalhada deste tópico pode ser encontrada no livro anterior d
EJ McCluskey, Introduction to the Theory of Switching Circuits, McGraw-Hill, N York, 1965.

Todos os fabricantes fornecem livros de dados para seus componentes. A referência padrão para TTL
comp pode ser obtida da Texas Instruments, o fabricante que mais popularizou o 74XX se Os volumes
mais críticos de seu conjunto de cinco volumes são o Volume 2, que descreve o padrão, S e TTL, e o
Volume 3, que descreve os componentes ALS e AS.

[Início] [Próximo] [Anterior ]

Este arquivo foi atualizado pela última vez em 07/07/96 às


18:44:30. randy@cs.Berkeley.edu ;
[Topo] [Próximo][Anterior ]

Exercícios

1.(Conversão entre formulário) sUse a álgebra booleana para verificar o seguinte: O AND-OR
A expressão da Figura 3.4 é equivalente à expressão NAND/NAND dessa figura.

A expressão AND-OR da Figura 3.5 é equivalente à expressão NOR/NOR dessa figura.

A expressão OR/AND da Figura 3.6 é equivalente à expressão NOR/NOR dessa figura.

A expressão OR/AND da Figura 3.7 é equivalente à expressão NAND/NAND dessa


figura.

2.(Mapeamentos AND-OR/NAND-NAND) Desenhe esquemas para as seguintes expressões, mapeadas em redes


somente NAND. Você pode assumir que literais e seus complementos estão disponíveis:

3. (Mapeamento OR-AND/NOR-NOR) Desenhe esquemas para as seguintes expressões, mapeadas em


redes somente NOR. Você pode assumir que literais e seus complementos estão disponíveis:

4. (Multilevel Network Mapping)s Desenhe esquemas para as seguintes expressões, usando apenas
portas NAND e NOR mistas:

5.(Formas canônicas Dada a seguinte função na soma dos produtos para(rm não necessariamente
minimizado):
Reexpresse a função em:

Forma de produto canônico de somas. UsarMPnotação.


Forma de produto minimizado de somas.
na forma de produto minimizado de somas.
na forma de soma minimizada de produtos.
ImplementoFe usando apenas portas NAND. Você pode assumir que literais e seus
complementos estão disponíveis.
ImplementoFe usando apenas portas NOR. Você pode assumir que literais e seus
complementos estão disponíveis.
ImplementoFe usando uma única porta AND-OR-Invert. Você pode assumir que literais e seus
complementos estão disponíveis.
ImplementoFe usando uma única porta OR-AND-Invert. Você pode assumir que literais e seus
complementos estão disponíveis.

6.(Lógica AND-OR-Invert) Implemente as seguintes funções usando portas AND-OR-Invert. Não assuma
limitações nas entradas ou no número de pilhas. Você pode assumir que os literais e seus complementos estão
disponíveis.

(UMA,B,C) =UMAÝBÝC (
UMA,B,C) =AB+BC+CA
(UMA,B,C,D) =Sm(1,3,5,7,9) + Sd(6,12,13) (
UMA,B,C,D) =PM(0,1,6,7) (UMA,B,C,D) =Sm(
0,2,4,6)

7.(Lógica OR-AND-Invert) Implemente as mesmas funções do Exercício 3.4, mas desta vez use portas OR-
AND-Invert. Não assuma limitações nas entradas ou no número de pilhas. Você pode assumir que literais e
seus complementos estão disponíveis.
8.(Lógica multinível) Fatore a seguinte soma de expressões de produtos:

ABCD+ABDE
ACD+BC+ABE+BD AC+
ADE+BC+BDE
DE ANÚNCIOS+EA+BD+SER+CD+CE+AF
ÁS+ACF+ADE+ADF+AEC+BCF+BDE+BDF

9. (Lógica multinível) Escreva a função representada pela rede de circuitos na Figura Ex3.9 uma forma
fatorada multinível usando apenas operações AND, OR e NOT - ou seja, nenhuma operação NAND ou NOR:
Derive o expresso booleano mais simples (iom número mínimo de -literais e menos ga)tefosr o
função representada por este esquema. Você pode usar qualquer tipo de portas lógicas descritas no Capítulo
10. (Lógica multinível) Usando álgebra booleana, K-maps ou tabelas verdade, verifique se os formulários multinível para
a adição completaS rhumeCO(carry-out) obtidos na Seção 3.1 são logicamente equivalentes ao
formulários de dois níveis encontrados no Capítulo 2.

11. (Lógica multinível) Usando álgebra booleana, K-maps ou tabelas verdade, verifique se os formulários multinível para
a saída do somador binário de 2 bitsX ts,,S, eZ, da Seção 3.1 são logicamente equivalentes aos dois
formulários de nível encontrados no Capítulo 2.

12. (Lógica multinível) Usando álgebra booleana, K-maps ou tabelas verdade, verifique se os formulários
multinível para o incremento BCD em 1 saídaCss,X,S, eZ, da Seção 3.1 são logicamente equivalentes ao
formulários de dois níveis encontrados no Capítulo 2.

13.(Time Respons)eConsidere o circuito na Figura Ex3.(1a3) .

Escreva suas funções na forma minimizada. Dado que as portas XOR/XNOR têm o dobro do atraso de t portas NAND, qual
é a resposta de saída do circuito para as formas de onda de entrada na Figura(Ebx)3?.1(3Cada divisão de 5 unidades de
tempo representa um atraso na porta NAND.
14. (Time Respons)eConsidere o circuito com uma única entrada na Figura Ex3( .a1)4. No tempot0 a chave é movida
para a posição close(dconnecte)d, e no momentote1 a chave é retornada à sua posição original aberta
(desconectada) d. Preencha um diagrama de tempo mostrando o comportamento do sig internoBfinais eC, e o sinal
de saída, em resposta a esta forma de onda de entrada. Suponha que todas as portas tenham um dela de
propagação idênticoypd,
T que corresponde a uma única divisão no gráfico da Figura E(xb3).1. 4
15.(Time Respons)eConstrua um diagrama de tempo para o comportamento do esquema do circuito na Figura
Ex3.15.

Comece encontrando uma condição de partida não oscilante para o circuito com a chave S em posit(iounp)1 conforme
mostrado. Preencha a forma de onda de temporização com uma condição inicial de estado estacionário para os nós do
circuito laUMAser guiado B,C, eD.Aviso:É muito fácil escolher uma configuração inicial que oscile. Existe uma configuração
não oscilante exclusiva. Comece seu raciocínio com o loop mais apertado, ou faça uma suposição edu e verifique se o
estado assumido é realmente não oscilante.

No tempoT, a chave é movida da posição 1 para positio(nd2own) . Preencha o resto do diagrama de


s,C
temporização com os valores lógicos dos sinais em poUMAem, tB, eDno -circuito dado.
16.(Hazard-Free Design)nDada a seguinte especificação de funções booleanas, implemente-as de
maneira livre de perigos:

F(UMA,B,C,D) =Sm(0,4,5,6,7,9,11,13,1)4

F(UMA,B,C,D) =PM(0,1,3,5,7,8,9,13,1)5
F(UMA,B,C,D,E) =Sm(0,1,3,4,7,11,12,15,16,17,20,)28

17.(Livro de dados TTL) Para responder a esta pergunta, você precisará acessar um livro de dados TTL, de preferência
um publicado pela Texas Instruments, Inc. Alguém construiu uma porta AND gigante de 32 entradas para uma árvor
em cascata de portas AND de 2 entradas do tipo 74S08 . Este circuito é para acionar uma rede de saída com 50
picofarads(pF) de capacitância. Suponha que a capacitância típica dos nós do circuito interno seja mo
como 15 pF. Veja a Figura Ex3.17.

Qual é o atraso médio típico através deste circuito?


Qual é o consumo médio típico de energia DC deste circuito?
18.(Livro de dados TTL) Para responder a esta pergunta, você precisará de acesso a um livro de dados TTL. Calcule o
atraso de propagação típico e o consumo de energia dos seguintes componentes TTL:

7400 e 74S00
7402, 74S02 e 74LS02
7404, 74S04 e 74LS04

19.(Livro de dados TTL) Para responder a esta pergunta, você precisará de acesso a um livro de dados TTL. Calcule os
seguintes fan-outs:

Uma porta S TTL NAND conduzindo outras portas S TTL NAND


Uma porta LS TTL NAND conduzindo portas S TTL NAND
Um portão TTL NAND padrão acionando portões LS TTL NAND Um
portão TTL NAND padrão acionando portões S TTL NAND

20.(Portas TTL) Nunca é uma boa ideia permitir que as entradas de uma porta TTL "flutuem", ou seja, que sejam deixadas
desconectadas. Dê quatro maneiras de conectar a entrada não utilizada de uma porta TTL NAND para garantir a operação
adequada da porta.

[Topo] [Próximo][Anterior ]

Este arquivo foi atualizado pela última vez em 07/07/96 às


18:44:30. randy@cs.Berkeley.edu ;

Você também pode gostar