Vous êtes sur la page 1sur 49

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

com

- A página da Web Addison-Wesley para Lógica Contemporânea D assinar

randy@cs.Berkeley.edu
Última atualização: 31 de julho de 1996
Introdução

Qualquer mudança em
qualquer direção para qualquer Não há nada permanente,
razão deve ser exceto a mudança.
fortemente preterida.
- Heráclito
- Anônimo

Introdução

O hardware do computador experimentou a melhoria mais dramática em recursos e custos já conhecida pela
humanidade. Em apenas 40 anos, vimos computadores do tamanho de uma sala, com pouco mais poder de
processamento do que as calculadoras de bolso atuais, evoluírem para dispositivos do tamanho de uma unha com
desempenho próximo ao de um supercomputador. Esse milagre foi possível graças aos avanços no hardware digital,
que permeia todos os aspectos de nossas vidas. Basta pensar como o simples telefone giratório se tornou a secretári
eletrônica automática com fio. Ele pode digitalizar sua saudação, lembrar seus números discados com mais
frequência e permitir que você revise, salve e apague suas mensagens telefônicas.

Este livro ensinará as técnicas fundamentais para projetar e implementar sistemas A complexossistematem
entradas e saídas e exibe comportamento explícito, caracterizado por funções que transformam as
entradas em novas saídasD s.assinaré o processo pelo qual requisitos incompletos e inexatos e
sm entaçãousa
especificações, descrevendo o propósito e a função de um objeto, são feitas pEu estou répceueuee.
esta descrição precisa para criar um produto físico. Você pode ver o design e a implementação em tudo
ao seu redor - prédios, carros, telefones, móveis e assim por diante.

Este livro trata das técnicas fundamentais usadas para projetar e implementar o quesimWneCH ca rollnoz
sistema de hardware digital.sO que significa cada uma dessas palavrash?arUMAsistema de dwareé aquele cujo
componentes físicos são construídos a partir de blocos de construção eletrônicos, em vez de madeira, plástico ou um sistema de
hardware pode ser digital ou analógico. As entradas e saídasdtsigoistofumaumal sistemacaem dentro de um conjunto discreto e
finito de valores. uma pousadaanalógicosistema, as saídas abrangem uma faixa contínua. Neste livro, vamos nos concentrar em
sistemas no domínio digitals.yUMA sistema cronoé aquele cujos elementos mudam
valores apenas em determinados momentos especificados.umaUMAsnsistema síncronohmcomo saídas que podem muda
a qualquer momento É mais seguro e infalível construir nossos sistemas usando métodos síncronos, que é o foco do livro.

Para ver a diferença entre sistemas síncronos e assíncronos, pense em um alarme digital cl
Suponha que o alarme esteja definido para 11:59 e o alarme soe quando a leitura da hora corresponder
exatamente às 11:59. Em um sistema síncrono, todas as saídas mudam ao mesmo tempo. O relógio avança
das 11:00 às 11:01, e assim sucessivamente. Em um sistema assíncrono, as horas e os minutos não são
alterados simultaneamente. Então, olhando para o relógio, você pode vê-lo avançar de 10:59 para 11:59 (
momentaneamente) às 11:00. E, claro, isso faria o alarme soar na hora errada.

Você pode entender melhor os sistemas de hardware complexos em termos de descrições de detalhes de níveis
crescentes. Passando do abstrato para o mais detalhado, esses níveis são chamados de sistema, lógica e cir.nível do
sistemaumaeudescreve resumidamente a entrada, a saída e o comportamento. Uma descrição no nível do sistema
. eueiTcshgeuevelAcordos com o
concentra-se no tempo e no sequenciamento usando fluxogramas ou programa de computador
composição de blocos de construção, calleeidportões mágicos, que formam os componentes físicos usados pelos
nívelNo
projetistas de sistemas. do circuito, os blocos de construção são elementos elétricos, como transistores, resistores
e capacitores, que implementam os componentes do designer lógico. Assim, a descrição abstrata do sistema é construída
sobre descrições lógicas, que por sua vez dependem de circuitos detalhados.

Este livro é principalmente para designers lógicos, mas para aprender design lógico você também deve saber algo
sobre design de sistemas e circuitos. Quais são os melhores blocos de construção lógicos para dar suporte ao
projetista do sistema? eles são construídos a partir dos elementos elétricos disponíveis? Que tipos de blocos são
necessários? Quanto custa construí-los? Abordamos o material da perspectiva da ciência da computação em vez da
engenharia elétrica: o único pré-requisito de conhecimento que assumimos é a compreensão de números binários,
eletrônica básica e alguma familiaridade limitada com uma linguagem de programação, suc ou PASCAL. Você pode
revisar os números binários no Apêndice A e a eletrônica básica no Apêndice B.

A nova tecnologia está tornando este um momento emocionante para os designers de hardware. Tradicionalmente, eles
precisam construir seu hardware antes de poder verificar o comportamento adequado. Esta situação está passando por uma
mudança por causa da nova tecnologiaryumao pfprototipagem de identificação. Os designers usam programas de computador, chamados

ferramentas de desenho assistido por computador (nCAD), para ajudar a criar implementações e verificar seu comportamento antes de
realmente construí-las.

Até mesmo os componentes lógicos básicos usados na implementação de hardware estão passando por
mudanças. No projeto lógico convencional, os blocos de construção executam funções fixas e imutáveis.
Hoje, eles estão sendo substituídos por blocos lógicos flexíveis cuja função pode ser configurada para o
trabalho em questão.p erdlogigrama gramatical,ce você aprenderá como usá-lo em seu
desenhos.

O design de hardware é a "arte do possível", encontrando criativamente o equilíbrio entre os sistemas


requeridos de um lado e as oportunidades oferecidas pelos componentes eletrônicos do outro. Mas precisamos
entender o básico do processo de design, então vamos começar por aí.

1.O Processo de Desi gn


2.Sistema de hardware digital EM
3.Múltiplas Representações de um Des. Digital acender
4.Protótipo de Sistema Eletrônico Rápido ing
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 19/05/96 às


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

1.1 O Processo de Design

O design é um processo complexo, mais uma arte do que uma ciência. Não se trata simplesmente de seguir passos
predeterminados, como em uma receita. A única maneira de aprender design é fazendo design. Vamos introduzir o
conceito t com um exemplo. Seu chefe lhe deu a tarefa de projetar e implementar um dispositivo simples para
controlar um semáforo.

Então, como você começa? A Figura 1.1 retrata as três fases um tanto sobrepostas pelas quais o projeto de design
deve passar.dse:sinal,implementação,nedepuração. Não surpreendentemente, estes são os mesmos se o objeto que
está sendo projetado é um sistema de software complexo, um sistema de engenharia como uma planta de PO ou um
sistema eletrônico como um computador. Vejamos cada uma dessas fases com mais detalhes.

1.1.1 Design como Refinamento de Representações

Sistemas complexos podem ser descritos a partir de três pontos de vista independentes, quefhvocêumaneuceut
ioumanlluma,l estrutural, efísico.euA visão funcional descreve o comportamento do sistema em termos de suas
entradas e saídas. A visão estrutural descreve como o sistema é dividido em componentes cada vez mais
primitivos que formam sua implementação. Finalmente, a visão física descreve a localização detalhada e a
interconexão dos blocos de construção primitivos que compõem a implementação. Você pode refinar o design
como um processo de determinação precisa desses aspectos.

Para ilustrar esses conceitos, considere uma representação simplificada de um carro. Suas entradas são gasolina a
posições do pedal do acelerador, pedal do freio e volante. Sua saída é a potência que move o veículo em uma
determinada direção com uma determinada velocidade. A especificação detalhada de como as entradas determinam
a direção e a velocidade do carro constitui sua descrição funcional.

O sistema do carro pode ser dividido em subsistemas de interação principais, como o motor e a
transmissão. Estes são compostos de seus próprios componentes mais primitivos. Por exemplo, o motor
consiste em subsistemas de carburação e refrigeração. Esta é a descrição estrutural.

No nível mais detalhado, os subsistemas são na verdade componentes físicos primitivos: parafusos, chapas metálicas
tubos e assim por diante. O subsistema de refrigeração do carro pode ser descrito em termos de radiador,
reservatório w, tubulação de borracha e canais através do bloco do motor. Estes formam a representação física
do carro.

Especificação de designVamos voltar ao nosso exemplo de hardware: o controlador de semáforo. Seu


design começa com a compreensão do que você deseja projetar e as restrições de sua implementação. Este
especificação de projeto.nSeu objetivo é obter uma descrição funcional detalhada e precisa da especificação
des.

Você começa determinando as entradas e saídas do sistema. Então você identifica a forma como as saídas são
derivadas das entradas. Você provavelmente começaria perguntando ao seu chefe sobre os recursos funcionais do
semáforo. Aqui está o que seu chefe lhe diz:

- O semáforo aponta em quatro direções (chame-os de N, S, E, W ).


- Ele sempre acende as mesmas luzes em N como S e E como W.
- Ele percorre a sequência verde-amarelo-vermelho.
- NS e EW nunca são verdes ou amarelos ao mesmo tempo.
- As luzes são verdes por 45 segundos, amarelas por 15, vermelhas por 60.

Poderáver que as entradas e saídas não estão descritas explicitamente aqui, mas deve pensar um pouco Uma vez
que cada luz deve ser ligada ou desligada, deve existir uma saída para cada uma(hgcre oe
lonr, amarelo, re)d
e cada direção(nEast, West, North, South)th. São 12 saídas diferentes. Nem todas são únicas Como
Norte e Sul são idênticos, assim como Leste e Oeste, o número de saídas únicas é seis.

Mas quais são as entradas? Algo tem que dizer ao sistema quando iniciar o processamento. Chamamos isso de
"início" ou mais comumente deredefinirsinal. Além disso, o sistema deve estar equipado com alguns sinais perio para
indicar que 15 ou 45 segundos se passaram. Esses sinais são frequentemente clnockumasl.leTdhe entradas

poderia ser representado por dois relógios independentes ou por um único relógio de 15 segundos com ha
adicional para contar um ou três "tiques". Como seu chefe não especificou isso em detalhes, cabe a você decidir
que não é incomum que a especificação inicial do projeto seja ambígua ou incompleta. O projetista deve tomar
decisões críticas para completar a especificação. Isso faz parte da criatividade exigida do designer: preencher os
detalhes dos projetos dentro das restrições especificadas.
Como as entradas e saídas estão relacionadas? Existem muitas maneiras de representar o sistema de comportament
funcional, como o fluxograma mostrado na Figura 1.2. O sinal de partida faz com que as luzes verdes NS e as luzes
vermelhas EW se acendam. Quando o relógio de 45 segundos chega, novas saídas são ativadas, as luzes verdes NS se
apagam, as luzes amarelas acendem e as luzes EW permanecem vermelhas. Após outro tique-taque de 15 segundos,
o amarelo NS se apaga, o vermelho NS acende, o vermelho EW apaga e o verde EW acende. Uma sequência sim de
eventos acontece quando a configuração da luz muda para NS vermelho, EW verde e S vermelho e EW amarelo.
Depois disso, todo o processo se repete.

Restrições de projetoNeste ponto, você tem um bom pressentimento sobre a função do semáforo. O próximo
conjunto de questões trata das características de desempenho do sistema. Você precisa considerar a velocidade
operacional do hardware, a quantidade de espaço que ocupa, a quantidade de energia que consome e assim por
diante. Estes são chamados de desipgenrdemétrica de desempenho.sAs restrições de desempenho influenciam o
projeto, forçando você a rejeitar certas abordagens de projeto que violam as restrições.

Então agora você deve voltar para fazer algumas perguntas ao chefe. Quão rápido deve ser o hardware? Como
pode custar? Quão pequeno tem que ser? Qual a potência máxima que pode consumir? Responder a essas
perguntas o ajudará a identificar a abordagem de implementação apropriada.

O sistema de semáforos muda suas saídas a cada poucos segundos. Seu chefe lhe diz que uma tecnologia
muito lenta e barata pode ser usada.

A ferragem do semáforo deve caber em uma caixa relativamente pequena para ser colocada ao
lado do suporte estrutural dos semáforos. Seu chefe lhe diz que um espaço de 6 polegadas por
6 polegadas por 1 polegada está disponível para o hardware. Para os tipos de tecnologias que
descreveremos neste livro, esse espaço pode conter aproximadamente 20 componentes.

Quanto pode custar? Erigir um conjunto de semáforos provavelmente custa vários milhares de dólares. Assim, seu
chefe lhe diz que o hardware não pode exceder $ 20 no custo total do componente. Esta regra é o microprocessador
mais quente actualmente disponível(bw lehich custa algumas centenas de dólares ) r, mas a restrição
deve ser fácil de encontrar com componentes simples e baratos.

Quanta energia o sistema pode consumir? O chefe limita você a menos de 20 watts, cerca de uma potência
consumida por uma lâmpada típica. Neste nível de potência, você não terá que se preocupar com os fãs

Se um determinado componente consumir menos de 1 watt, as restrições de potência e área juntas restringem o projeto a
não mais que 20 componentes. A um dólar por componente, o projeto também deve ser capaz de atender à restrição de
custo.

Design como representaçãoDesign é um negócio complicado. Isso foi dito paradº euma tsinal é para
representar.tNossa representação inicial do controlador de semáforo era um conjunto bastante impreciso de
restrições expressas em -inglês. Refinamos isso em algo mais detalhado e preciso, implementação adequada.
Começamos identificando as entradas e saídas do sistema. Em seguida, obtemos uma descrição mais
comportamental, como o fluxograma mostrado na Figura 1.2. Por fim, refinamos o design
nível de detalhe que pode ser implementado diretamente pelos blocos de construção primitivos de nossa tecnologia de
implementação escolhida.

Neste livro, desenvolveremos métodos para transformar uma representação de projeto em outra. Algumas
abordagens são muito bem compreendidas, enquanto outras não. Por exemplo, ninguém ainda propôs um método
infalível para transformar uma instrução em inglês em um fluxograma. No entanto, onde tais processos são
razoavelmente bem compreendidos, os programadores também os codificam em projetos assistidos por computado
Essas ferramentas estão sendo usadas, por exemplo, para manipular um projeto lógico em uma forma que é a
implementação simples com portas e fios. Não é exagero imaginar um software que possa traduzir um fluxograma
restrito em hardware primitivo. À medida que aprendemos mais sobre as representações de um projeto,
apresentaremos as ferramentas que podem derivar uma representação de outra.

1.1.2 Implementação como Montagem

Aqui examinamos as diferentes abordagens para implementar um projeto a partir de componentes mais simples.
Principalmente, são decomposição de cima para baixo e montagem de baixo para cima.

Decomposição de cima para baixoÉ mais fácil entender o funcionamento do todo olhando para sua parte
e suas interações. A abordagem "dividir para conquistar" divide o sistema em seus subsistemas compostos
Cada um é mais fácil de entender por conta própria.

Esta é uma boa estratégia para construir qualquer tipo de sistema complexo. O procedimentoparaeps-sddoprópria
decomposiçãocomeça com a descrição de um sistema inteiro e o substitui por uma série de etapas menores, cada etapa é
um subsistema mais primitivo.

Por exemplo, a Figura 1.3 mostra uma das possíveis decomposições do sistema de semáforos. Ele é dividido em
subsistemas de temporizador e sequenciador de luz. O cronômetro conta a passagem do seco alerta os outros
componentes quando determinados intervalos de tempo tiverem passado. O seqüenciador de luz avança nas
combinações exclusivas dos semáforos em resposta a esses alertas do temporizador.

A decomposição não precisa parar aqui. O sequenciador de luz é ainda decomposto em um sequenciador
mais pr e um decodificador. O decodificador gera os sinais detalhados para ligar as lâmpadas apropriadas.
A decomposição do projeto em seus subsistemas é sua representação estrutural. A abordagem continua a
qualquer nível mais fino de detalhe.

Montagem de baixo para cimaA abordagem alternativa para a decomposição de cima para baixobnoteutsmontagem om-up.apenas
Em qualquer tecnologia específica, existem blocos de construção primitivos que podem ser agrupados em mais agrupamentos de
blocos compostos. Estes são apropriadamente caumallsesdembelezar.s

Considere a implementação de um edifício de escritórios. Os componentes mais primitivos são objetos como
paredes, portas e janelas. Estes são compostos para formar conjuntos chamados quartos. Conjuntos de formam
os pisos do edifício. Finalmente, a montagem dos andares individuais forma o próprio edifício Ao determinar
como construir tais conjuntos, você move o processo do projeto para a implementação

Regras de ComposiçãoUma faceta importante do projeto por montagem é a noçãornuloefs de composição.n Eles
descrevem como os itens podem ser combinados para formar montagens. Quando seguidos, eles garantem que o
design t produza uma implementação funcionalmente correta. Isso às vezes tem sidoco ca
rreuelecdtness por
construção.

Quando se trata de projeto de hardware, as regras de composição se dividem em várias classes, das quais as mais
importantes são as regras elétricas e de temporização. Um sinal elétrico pode serdce g adicionado
om re quando ele esticar
fora no tempo e reduzida em amplitude por distribuí-lo muito amplamente dentro de um circuito elétrico. Isso o torna
irreconhecível para o resto da lógica. As regras elétricas determinam o número máximo de entradas compostas às quais
uma determinada saída pode ser conectada para garantir que todos os sinais sejam bem comportados.

As regras de temporização restringem como os sinais de temporização periódicos afetam as mudanças nas
saídas do sistema. No livro, desenvolvemos uma abordagem de design disciplinada que é bem comportada em
relação ao tempo. Isso é camétodo de tempo síncrono.gUMAyrelógio de referência único aciona todos os
eventos no sistema, como transição entre as configurações de luz no controlador de semáforo. Certos eventos
vêm do sistema e são inerentemente independentes do tempo interno do sistema. Por exemplo, um pedestre
pode caminhar até o semáforo e apertar um botão para que a luz mude para verde rapidamente também
aprenderá métodos seguros para lidar com esses tipos de sinais em um sistema síncrono com clock.

Representação FísicaComo designer lógico, você constrói seu design escolhendo componentes e
compondo-os em montagens. Os componentes são objetos elétricos, portas lógicas, que você conecta
conectando-os. Em geral, há mais de uma maneira de realizar um determinado hardware. A otimização de
projeto geralmente envolve selecionar entre componentes e montagens alternativos, escolher o melhor
para a tarefa em questão dentro das restrições de velocidade, potência, área e custo do projeto. É onde a
verdadeira criatividade do design de engenharia entra em jogo.

1.1.3 Depurando o Sistema

Os elementos-chave para fazer um sistema de hardware funcionar são, primeiro, entender o que pode dar errado,
segundo, usar a simulação para encontrar problemas antes mesmo de construir o sistema.
O que pode dar erradoComo diz a lei de Murphy, se as coisas podem dar errado no projeto de um sistema de hardware,
elas darão. Para que um sistema funcione corretamente, o design deve ser impecável, a implementação deve estar correta
todos os componentes devem estar operacionais.

Mesmo um projeto perfeito no nível do sistema pode ser sabotado por uma implementação imperfeita no nível
físico. Você pode ter escolhido os componentes errados ou conectado incorretamente, ou os próprios
componentes podem estar com defeito.

Simulação antes da construçãoOs designers de hoje tiram proveito de uma nova abordagem que permite usar
programas de computador para simular o comportamento do hardware. Quandosyeuomvocêvocêdlaoção antes da
construção, os únicos problemas que devem permanecer são uma tradução falha do design em implementação física
no nível do componente ou componentes ruins. A simulação está se tornando cada vez mais importante à medida
que componentes discretos conectados são substituídos por lógica programável, onde não é mais visível para fácil
fixação.

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

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


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

1.2 Sistemas de Hardware Digital

Nesta seção examinaremos o que torna os sistemas digitais diferentes de outros tipos de sistemas complexos
Faremos a distinção entre eletrônica digital e analógica, descreveremos brevemente a tecnologia de circuito u na
qual os sistemas de hardware digital são construídos e examinaremos os dois principais tipos de subsistemas digitais
Estes são circuitos sem memória, ligueceodlógica m-binacional, e circuitos com memória, conhecidos como log
seqüencial.c

1.2.1 Sistemas Digitais

Os sistemas digitais são a maneira preferida de implementar o hardware. Nesta seção, veremos o que torna a
abordagem digital tão importante.

Digital versus analógicoSistemas digitaistêm entradas e saídas que são representadas por valores discretos A
Figura 1.4 mostra a forma de onda de saída típica de um sistema digital.XTahxeis é tempo e thS o eixo é o
tensão medida. Este sistema tem exatamente dois valores de saída possíveis, represe oltbsyand- 5
+ n5tevd
volts, respectivamente. Tais sistemas são cablleuendáriosistemas digitais. Se você não estiver familiarizado com
o sistema de numeração binário, leia o Apêndice A antes de continuar. Observe que não há nada intrínseco à
abordagem digital que a limite a apenas dois valores. A chave é que o número de saída possível v é finito.

Dentrosistema analógicotsAs entradas e saídas assumem uma faixa contínua de valores, conforme mostrado na Figura As
formas de onda analógicas representam de forma mais realista as quantidades do mundo real, como som e temperatura.
As formas de onda digitais apenas as aproximam com muitos valores discretos.

Vantagens dos Sistemas DigitaisA vantagem crítica dos sistemas digitais é sua capacidade inerente de
lidar com sinais elétricos que foram degradados pela transmissão através de circuitos. Por causa do d
natureza das saídas, uma pequena variação em uma entrada é traduzida em um dos circuitos analógicos de
valor de saída correto, um pequeno erro na entrada gera um erro na saída. Se os circuitos analógicos são
ligados em série, a saída de um alimentando a entrada do próximo, cada estágio adiciona seu próprio pequeno
e A soma dos erros em vários estágios torna-se esmagadora. Os componentes digitais são considerados mais
precisos e confiáveis. Eles facilitam a construção de assemblies enquanto garantem um comportamento
previsível.

Dispositivos analógicos ainda desempenham um papel importante na interface de sistemas digitais com o mundo real.
Afinal, o mundo real opera de forma analógica, ou seja, continuamente. Circuitos de interface, como sensores e atuadores
são analógicos. Muitas vezes você encontrará os dois tipos de circuitos misturados em sistemas reais. A lógica digita é
usada para controle algorítmico e manipulação de dados, enquanto os circuitos analógicos são usados para ver e
manipular o ambiente circundante.

Sistemas digitais bináriosA forma mais simples de sistema digital é o binário, com exatamente dois valores
distintos para entradas e saídas. Sistemas digitais binários formam a base de quase todos os sistemas de hardware
existentes hoje.

A principal vantagem dos sistemas binários é que os dois valores alternativos são particularmente fáceis de encontra
com quantidades físicas. Usamos os símbolos 1 e 0 para representar os dois valores, que podem ser interpretados
como "sim" e "não" ou "ligado" e "desligado". 1 e 0 podem ser fisicamente realizados por diferentes valores de volt (5
volts vs. 0 volt)s, polarização magnética (sNorte vs. Sul)h, ou o fluxo ou a falta dele de corrente elétrica.

Lógica MatemáticaTalvez a maior força dos sistemas digitais seja sua formulação rigorosa baseada na
lógica matemática e na álgebra booleana. Iremos cobrir estes tópicos em detalhe no Capítulo mas é úti
introduzir aqui alguns conceitos básicosM abetoumastth.lógica ematicanos permite raciocinar sobre
a verdade de um conjunto de afirmações, cada uma das quais pode ser verdadeira ouBfaoeuoseue.uma álgebraé um
sistema algébrico para manipular declarações lógicas.

Como exemplo, vejamos a seguinte instrução lógica:

SE a porta da garagem estiver aberta

E o carro está funcionando

ENTÃO o carro pode ser retirado da garagem

Ele afirma que as condições - a garagem está aberta e o carro funcionando - devem ser verdadeiras antes que o
carro dê ré. Se um ou ambos forem falsos, o carro não poderá ser retirado. Se determinarmos que as condições
são válidas, então a lógica matemática nos permite inferir que a conclusão é válida.

Este exemplo pode parecer distante do projeto de hardware, mas as instruções lógicas são exatamente como fizemo
o controle de um sistema de hardware. O sequenciamento através das várias configurações do exemplo de tráfego
da Figura 1.2 pode ser formulado da seguinte forma:
SE NS estiver verde

E EW é vermelho

E 45 segundos expiraram desde a última mudança de luz

ENTÃO as luzes NS podem ser alteradas de verde para amarelo

As três condições devem ser verdadeiras antes que a conclusão possa ser( "vcahliadnge as luzes de verde para
amarelo") .

Não deve surpreendê-lo que declarações como esta estejam realmente no coração do programa de computador desi do
controlador digital, contendo declarações de controle como IF-THEN-ELSE, é uma representação de comportamento
perfeitamente válida de um sistema de hardware.

Álgebra Booleana e Operadores LógicosA álgebra booleana, desenvolvida no século 19 pelo matemático
George Boole, fornece uma formulação algébrica simples de como combinar valores lógicos Consistindo de
variáveis, comoX ComoS, eZ, e valores (ou símbolos) 0 e 1, álgebra booleana
define rigorosamente uma coleção de operações lógicas primitivas, como AND, para combinar as variáveis
booleanas de valor.

A Figura 1.6(a) mostra a definição da função AND em termos de uma tabela verdade ª mesaé um
tr.vocêUMA

listagem de todas as combinações de entrada possíveis correlacionadas com as saídas que você veria se aplicasse um conjunto
específico de valores de entrada à função. Pense em 0 como representando (f"anlos"e) e 1 como verdadeiro
( "sim") . Se a variávelXrepresenta a condição do do(o0r= fechado, 1= aberto) eSo status de execução do
ca(r0 = not running, 1= running) , então a tabela verdade indica sucintamente a condição (s) sob a qual
o carro pode ser retirado da garagem. Estas são exatamente a combinação de entrada que produz o
valor 1 foX r ES.
OR e NOT são outras operações booleanas. Se o booleano vaXriaisblterue ou a variávelS eé
verdade, entãoXOUSé verdadeiro (veja a Figura 1.(6b)) . SeXé verdade, então NÃOXé falso; E seXé falso, então NÃO Xé
verdade. A tabela verdade para esta operação é mostrada na Figura (ec1) ..6

1.2.2 O mundo real: comportamento ideal versus comportamento observado

Até agora, consideramos o mundo ideal das abstrações matemáticas. Aqui nós olhamos para as realidades reais
dos sistemas de hardware.

Apesar de acharmos conveniente pensar em sistemas digitais como tendo apenas valores discretos de saída, onde
tais sistemas são realizados por componentes eletrônicos reais, eles exibem aspectos de comportamento e contínuo.
Eles fazem isso porque as transições de saída não são instantâneas e porque é muito difícil projetar a eletrônica que
reconhece um único valor de tensão como 1 ou 0 lógico. A lógica digital deve ser capaz de lidar com sinais
degradados. Ele pode reconhecer uma entrada degradada como uma lógica válida 1 ou 0 e, assim, gerar saídas nos
níveis de tensão corretos.

Como exemplo, vamos supor que "on" ou lógica 1 seja represent+e5d vboylts. "Off" ou 0 lógico é representado por 0
volts. A Figura 1.7 mostra uma forma de onda de sinal de uma saída comutando de on/logic 1 logic 0. Você pode
observar uma forma de onda como esta em um traçado do osciloscópio. A transição na figu certamente não é
instantânea. Outros valores bes+id5evsolts e 0 volts são visíveis, pelo menos por um instante.

Todas as implementações eletrônicas de operações booleanas incorrem em algum atraso. Por que eles não são instantâneos
Uma torneira de água fornece uma analogia útil* gy.

Teoricamente, uma torneira de água está ligada, com água fluindo, ou desligada, sem fluxo. No entanto, se você
observasse a ação de uma torneira sendo fechada, você veria o fluxo de água mudar de fluxo para um fluxo
fraco pingando, para alguns pingos e, finalmente, para nenhum fluxo.

A mesma coisa acontece em dispositivos elétricos. Eles começam drenando a saída de sua carga ra rapidamente
de modo que sua voltagem cai para 0. Mas, eventualmente, a descarga diminui para um fio e finalmente para.

Faixas de tensão para lógica 1 e 0Os sistemas digitais parecem exigir uma única tensão de referência w para
representar a lógica 1 e a lógica 0. No entanto, isso não é possível nem desejável. Algumas variações
o comportamento dos componentes elétricos é inevitável, simplesmente por causa da variação man-u-facturing cada
dispositivo produzirá um perfe+ ct5 volts ou 0 volts. Além disso, um subproduto de qualquer interconexão
de componentes elétricosnéoise, o que causa a degradação dos sinais elétricos à medida que passam pelos fios. Mesmo
um sinal de saída perfeito + t5 volts pode aparecer como uma tensão substancialmente reduzida mais distante do fio.

A tolerância de dispositivos digitais para entradas degradadas é callendoteuhsemargem. As tensões próximas às tensões
de referência são tratadas pelos dispositivos como se fossem uma lógica perfeita 1 ou 0. Uma entrada degradada, desde
que esteja dentro da margem de ruído, será mapeada em uma tensão de saída muito próxima de t tensões de referência.
Circuitos digitais em cascata podem corrigir a degradação do sinal.

1.2.3 Tecnologias de Circuito Digital

As duas tecnologias de circuitos integrados mais populares para os blocos de construção fundamentais de (daig local
assim como os sistemas analógicos são MOS(metal-óxido-silício)nebipolareletrônicos. Sem entrar no
detalhes, uma tecnologia de circuito integrado é uma escolha particular de materiais que conduzem, ou às
vezes conduzem. Os últimos são cascheio microcondutor,se a tecnologia geralmente atende pelo nome de o
eletroeletrônicos semicondutores.csOs três tipos de materiais interagem entre si para permitir que os elétrons fluam
seletivamente. Desta forma, podemos construir interruptores controlados eletricamente.

Transistores: interruptores controlados eletricamenteO interruptor elétrico básico é chamadotrumansistor. Para ter
uma ideia de como ele se comporta, vamos examinar o transistor MOS, que talvez seja o mais fácil de explorar.
Descreveremos as chaves MOS com mais detalhes no Capítulo 4.

Um transistor MOS é um dispositivo com três terminaisgeuumast:e,fonte, eralo. A Figura 1.8 mostra o
símbolo padrão para o que é conhecido como nM(OnS- canal MOS ) transistor. Quando a tensão
entre a porta e a fonte excede um certo limite, os terminais da fonte e do dreno são conectados e os
elétrons podem fluir através do transistor. Dizemos que a chave está conduzindo ou "c Se esta tensão
for removida da porta, a chave não conduz mais elétrons e agora está "aberta Com base nesta análise
simplificada, um transistor MOS é uma chave controlada por tensão.

Embora os transistores bipolares sejam bastante diferentes dos transistores MOS em comportamento detalhado, seu uso
conceitual como elementos de comutação para implementar funções digitais é muito semelhante. Discutimos a operação
bi transistor no Apêndice B.

Portões: blocos de construção lógicosCom base em interruptores de transistor, podemos construir portas lógicas
que implementam várias operações lógicas, como AND, OR e N(O LoTg. portões ic não são os mesmos que
porta de transistor). Portas lógicas são dispositivos físicos que operam sobre voltagens elétricas em vez de
símbolos como 1 e 0. Uma porta lógica típica, implementada nas tecnologias que você estudará neste bo
interpreta tensões próximas de 5 V como 1 lógico e aquelas próximas de 0 V como 0 lógico.

Por exemplo, uma porta AND é um circuito com duas entradas e uma saída. Ele emite uma tensão lógica 1 sempre que
determina que ambas as suas entradas estão em uma tensão lógica 1. Em todos os outros casos, ele produz tensão 0.

Alguns aspectos do comportamento do portão não são estritamente digitais. Considerareuenrvtehreter, implementando
uma função que traduz 1 para 0 e 0 para 1. A Figura 1.9 ilustra a tensão de saída do inversor em função da tensão. Essa
figura é chamadatuma características de resgate.c

Imagine que a entrada da porta comece em 0 v(oV lts), com tensão aumentando lentamente t+o5 V. A saída de
o inversor retém a+t5 V para algum intervalo de valores de entrada e então começa a mudar abruptamente em direção à
medida que a tensão de entrada continua a aumentar, a saída se aproxima lentamente de 0 V sem nunca chegar lá.

A "aderência" em uma determinada tensão de saída é o que contribui para uma boa margem de ruído. A entrada vo perto
dos valores ideais tem o mesmo efeito que as tensões lógicas 1 e 0 lógicas perfeitas. Qualquer tensão de entrada dentro d
região cinza perto de 0 V resultará em uma tensão de saída muito próxima se5 tVo. O mesmo vale para
as tensões de entrada nea+r5 V: estas produzem valores muito próximos de 0 V na saída.

Portões como o inversor estão prontamente disponíveis como módulos preexistentes, projetados por projetistas de CI em
nível de transistor. Designers que trabalham com portões são caeillgeeudc designer.sAo usar portas lógicas, em vez de
transistores, como os módulos mais primitivos do projeto, podemos ocultar as diferenças entre os transistores bipolares
MO.

1.2.4 Redes de Comutação Combinacional versus Sequencial

Muitas vezes, é útil para os projetistas digitais ver os sistemas digitais como redes de portas interconectadas e
comutadores. Estesseredes de bruxaspegue uma ou mais entradas e gere uma ou mais saídas em função
dessas entradas. As redes de comutação vêm em duas primitivas paraCmosm.binacionalredes de comutação
não têm realimentação - isto é, não há fio que seja tanto uma saída quanto uma Sedentroqpvocêvocêetn.tiaseubruxaria

as redes têm algumas saídas que são realimentadas como entradas.


A Figura 1.10 mostra uma rede de comutação "caixa preta", com suas entradas e saídas. Se algumas saídas também forem
realimentadas como entrada(td linha reta, a rede é sequencial.

Lógica combinacional: circuitos sem memóriaRedes de comutação combinacionais são aquelas cujas saídas
dependem apenas das entradas de corrente. São circuitos sem memória. Simplesmente as saídas estatísticas
mudam pouco tempo depois que as entradas mudam. Cobrimos circuitos lógicos combinacionais nos Capítulos
2, 3, 4 e 5.

Uma lâmpada de casa controlada por interruptor é um exemplo simples de um circuito combinatório. O interruptor
tem duas configurações, ligado e desligado. Quando o interruptor está ligado, a luz acende, e quando está desligado
o lig se apaga. O efeito de configurar o switch não depende de sua configuração anterior.

Compare isso com uma lâmpada de "três posições" que pode estar apagada, acesa, mas fraca e acesa, mas brilhante. Gire o
interruptor uma vez e a lâmpada acenderá fracamente. Gire-o novamente e a lâmpada ficará brilhante. Gire-o uma terceira t e a
lâmpada se apagará. O comportamento desta lâmpada depende claramente de sua configuração anterior: é um circuito
sequencial.

Outra rede combinacional é um somador binário de duas entradas de dados, às vezes cfumavocêlle laddumader. este
circuito adiciona duas escavações binárias (também chamado debits)para formar uma saída de bit único: +0 0 = 0, 0+ 1
= 1, 1 + 0 = 1 e 1+ 1 = 0 (com um carry de 1) .

O somador completo tem uma terceira entrada que representa o transporte de uma coluna de adição adjacente. Também
geramos um transporte para a próxima coluna de adição. Os bits a serem adicionadosUMAedanadreB, a soma éSoma, a
entrada éCin, e a execução iC sFora.

Os valores oSfhumeCoutsão completamente determinados pelas entradas. Por exemploUMA le=


, se1,B=1, e
Cin=1, entãoSoma=1 eCout=1 (ou seja, um mais um mais um é três em números binários, o ) r. 112
Um diagrama de blocos do somador completo é mostrado na Figura 1.11.

Lógica Sequencial: Circuitos com MemóriaDiscutimos circuitos lógicos sequenciais nos Capítulos 6, 7, 8, 9 e 10.
Nesse tipo de rede, as saídas dependem das entradas atuais e do histórico de todas as entradas anteriores. Este é um
requisito potencialmente assustador se o sistema precisar se lembrar de todo o histórico de padrões. Na prática,
porém, entradas arbitrárias conduzem a rede sequencial por meio de um pequeno número de configurações únicas,
callesdtates.
Uma rede sequencial é uma função que pega o atual configur(astitoante) do circuito e as entradas, e os
mapeia para um novo estado com novas saídas. Após um atraso, o novo estado se torna o estado atua
e o processo de cálculo de um novo estado e saídas se repete.

Para nossos propósitos, a configuração da rede muda em resposta a um sinal de referência especial
relógio. Isso é o que torna o sistemasmsincronizado.sExistem formas de circuitos sequenciais sem -sing
indicação de quando mudar de estado. Nós chamamos deumaessyesistema crono. s

O controlador de semáforos seria implementado por uma rede de comutação sequencial. Mesmo que esteja
funcionando há anos, pode estar em apenas um dos quatro estados únicos a qualquer momento, um para cada uma
das configurações exclusivas das luzes.

A Figura 1.12(a) mostra um diagrama de blocos genérico da rede de comutação do controlador de semáforo. As
entradas são os alarmes temporizadores e a configuração do semáforo, e as saídas são a nova configuração da
rede. A Figura 1.1(2b) mostra o controlador com mais detalhes. Consiste em dois blocos de lógica combinaciona
separados por lógica com clock que mantém o estado. Vejamos esses blocos em detalhes:

- O primeiro bloco lógico combinacional, a lógica do próximo estado, transforma o estado atual e o estado dos
alarmes do temporizador no novo estado. A próxima rede de estado contém lógica para implementar
instruções como estaE SE
: o controlador está no estado NS verde/EW vermelho

Eo alarme do temporizador de 45 segundos soa

ENTÃOo próximo estado torna-se NS amarelo/EW vermelho quando o sinal do relógio for o próximo verdadeiro
- Como você pode imaginar, nem todas as entradas são relevantes em todos os estados. Se o controlador estiver no
estado NS amarelo/EW vermelho, por exemplo, a próxima função de estado examina apenas o tempo de 15 segundos
O temporizador de 45 segundos é ignorado.

- O bloco de estado contémsselemento de armazenamento,tsredes seqüenciais primitivas que podem manter os valores
atuais ou permitir que eles sejam substituídos (eS Os elementos dt.orage são descritos com mais detalhes em
Capítulos 6 e )7. Estes são carregados com uma nova configuração quando o sinal do relógio externo pulsa.
Você pode ver que o estado atual é realimentado como entrada para a primeira lógica combinacional

- O último bloco lógico, oorlógica de saída, traduz o estado atual em sinais de controle para os temporizadores
de luz e contagem regressiva. Por exemplo, ao entrar no novo estado NS amarelo/EW vermelho, a lógica de
saída ativa os sinais de controle para alterar as luzes NS de verde para amarelo e iniciar a contagem
regressiva dos temporizadores de 15 segundos.

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

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


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

1.3 Múltiplas Representações de um Design Digital

Um designer digital deve confrontar as muitas formas alternativas de pensar sobre a lógica digital. Nesta seção,
examinamos algumas das representações comumente encontradas de um projeto digital. Nós as fazemos de baixo
para cima, começando com a representação do switch e prosseguindo pela tabela de álgebra booleana, porta, forma
de onda, blocos e comportamento (Figura 1.1)3.

Os comportamentos são a melhor representação para entender um projeto em seu nível mais alto de abstração
talvez durante os estágios iniciais do projeto. Por outro lado, os switches podem ser a representação mais
adequada se você estiver implementando o projeto diretamente como um circuito integrado. Abordaremos
essas representações com muito mais detalhes nos capítulos subsequentes.

1.3.1 Interruptores

Os switches são a representação mais simples de um sistema de hardware que examinaremos. Embora forneçam uma maneira
conveniente de pensar sobre declarações lógicas, as chaves também correspondem diretamente aos transistores, os dispositivos
eletrônicos simples a partir dos quais todos os sistemas de hardware são construídos.

Conceito básicoUm interruptor consiste em dois terminais de conexão e um ponto de controle. Os terminais de conexão
são indicados por pequenos círculos; o ponto de controle é representado por uma seta com uma linha thro

Os switches fornecem uma abstração bastante idealizada de como os transistores realmente se


comportam. Se você ap(paly tru logic 1 voltage) ao ponto de controle, o switch é fechado,
amarrando os dois terminais de conexão. terminais. Chamamos tal interruptornhoersmal
aberto:a chave fica aberta até que o ponto de controle se torne verdadeiro.

Na verdade, existem dois tipos diferentes de transistores. Assim como existem chaves normalmente abertas, t
também são chaves normalmente fechadas. A notação é mostrada na Figura 1n . 1o4r.mUMAaliado fechadointerruptor é

fechado até que seu ponto de controle se torne verdadeiro.


Os comutadores podem representar cláusulas lógicas associando a cláusula lógica ao ponto de controle do s Um
comutador normalmente aberto é fechado quando a cláusula associada ao ponto de controle é verdadeira. Dizemos que a
cláusula éafirmado . O switch está aberto e o caminho de conexão está quebrado, quando a cláusula é fals
neste caso, dizemos que a cláusulavocêenéafirmar.dChaves normalmente fechadas funcionam de forma complementar
moda.

Comutar Representação da Instrução LógicaSscircuitos de bruxas sugerem uma possível implementação do


redes de comutação apresentadas na seção anterior. A rede calcula uma função lógica roteando "true"
através dos switches, controlados por cláusulas lógicas.

Vamos ilustrar o conceito com o exemplo do carro na garagem. A Figura 1.15 fornece uma rede de comutação para
determinar se é seguro retirar o carro. As três condições, carro na garagem, porta aberta ecarro correndo, controle
os elementos de comutação. A entrada para a rede é "verdadeira"; a saída é verdadeira somente quando todas as
três condições são verdadeiras. Nesse caso, existe um caminho de chave fechado da entrada verdadeira até a saída.

Mas o que acontece se o carro não estiver na garagem (aogrer a porta da garagem não estiver aberta ou o carro não
estiver funcionando) n?ing Então o caminho entre true e a saída está quebrado. Qual é o valor de saída neste caso? Actua
não tem valor - diz-se que bfleflutuar.

Saídas flutuantes não são desejáveis em redes lógicas. Nós realmente deveríamos ter uma maneira de forçar a saída falsa
quando o carro não pode ser recuado. Cada saída de switch deve ter um caminho para true e um caminho complementar
para false.
Isso é mostrado na Figura 1.16 para as implementações das operações AND e OR. Observe como colocar chaves
normalmente abertas em série produz um AND. CUMA heanndBsão verdadeiras, as chaves fecham e um caminho
estabelecido de verdadeiro para a saída. Se eithUMAerroBfor false, o caminho para true será interrompido e uma
das chaves paralelas normalmente fechadas estabelecerá uma conexão de false para a saída.

Na implementação OR, as conexões paralelas e em série das chaves são invertidasUMA . Io


f reith
Bfor true, uma ou ambas as chaves normalmente abertas serão fechadas, fazendo uma conexão entre true e a
saída. Se ambosUMAeBsão falsos, esse caminho é quebrado e um novo caminho é feito entre falso e a saída.

As capacidades das redes de comutação vão muito além da modelagem de tais conectivos lógicos simples. Th pode ser
usado para implementar muitas funções digitais incomuns, como veremos no Capítulo 4. Em particular, há uma classe de
funções que podem ser melhor visualizadas em termos de direcionamento de entradas para saídas através de um labirinto
de interruptores. Estes são excelentes candidatos para implementação direta por comutadores de transistor alguns
exemplos, veja o Exercício 1.8.

1.3.2 Tabelas-verdade

A representação da chave está próxima de como as funções lógicas são realmente implementadas como
transistores. essa nem sempre é a maneira mais simples de descrever uma função booleana. Uma representação
alternativa, mais abstrata, tabula todas as combinações de entrada possíveis com seus valores de saída associados.
Já vimos o conceito de tabela-verdade na Figura 1.6.

Vamos considerar um circuito simples com duas entradas binárias que gera soma e transporte (otuhte pruetsis não
entrada de transporte)t . Este circuito é chamado demeio somador. Sua tabela verdade é mostrada na Figura 1.17. A rede tem
duas entradasUMA, eB, e duas saídasS,humeCarregar. Assim, a tabela tem quatro colunas, uma para cada
entrada e saída, e quatro linhas, para cada uma das 22 combinações binárias exclusivas das entradas.
A Figura 1.18 mostra a tabela verdade para o somador completo, um circuito com dois dados iUMA npauntdsB, uma entrada
entradaCin, e asSomaeCoutsaídas do meio somador. As três entradas têm 23 combinações binárias
únicas, levando a uma tabela verdade com oito linhas.

As tabelas verdade são boas para descrever funções com um número modesto de entradas. Mas para entradas de grande
número, a tabela verdade fica muito grande. Uma representação alternativa escreve a função como uma expr sobre
operações lógicas e entradas. Nós olhamos para isso a seguir.

1.3.3 Álgebra Booleana

A álgebra booleana é a base matemática dos sistemas digitais. Veremos que uma expressão algébrica
fornece uma notação abreviada conveniente para a tabela verdade de uma função.

Conceito básicoAs operações de uma álgebra booleana devem obedecer a certas propriedadeseu,umacW
umasloerd axiomas. Um desses axiomas é que as operações booleanas são comutativas: você pode
inverter a forma em que as variáveis são escritas sem alterar o significado da expressão booleana. Por
exemplo, OR é comutativoX e:OUSé idêntico aSOUX, OndeXeSsão variáveis booleanas.

Os axiomas podem ser usados para provar leis mais gerais sobre expressões booleanas. Você pode usar as
D t (SOU NÃOS)é o
expressões simplificadas na álgebra. Por exemplo, pode ser mostradoX n / thNaD
igual aX, desdeSOU NÃOSé sempre verdade. Os procedimentos que você aprenderá para otimizar redes combinacionais e
sequenciais são baseados nos princípios da álgebra booleana e, portanto, as expressões B são frequentemente usadas como
entrada para ferramentas de projeto auxiliadas por computador.

Operações BooleanasA maioria dos designers acha um pouco complicado continuar escrevendo expressões
booleanas com operações AND, OR e NOT, então eles desenvolveram uma abreviação para os operadores. EUXnós
eScomo as variáveis booleanas, então escrevemos o complem evnet rsion, negação)n deXcomo um oX f',
(dentro

!X,/X, ou\X. A operação OR é escrita comoXs+S,X#S, ouX|S.XESé escrito comoX&S, XY, ou mais
simplesmenteXY. Embora existam certas analogias entre OR e PLUS e entre AND e MULTIPLY, a
operações lógicas não são as mesmas que as operações aritméticas.

O complemento é sempre aplicado primeiro, seguido de AND, seguido de OR. Dizemos que o complemento h
tem a prioridade mais alta, seguido por AND e depois OR. Parênteses podem ser usados para alterar o padrão
de avaliação. O agrupamento padrão de operações é ilustrado pelos seguintes exemplos:
Equivalência de expressões booleanas e tabela verdadeUMAsA expressão booleana pode ser facilmente derivada de
uma tabela-verdade e vice-versa. Na verdade, expressões booleanas e tabelas verdade transmitem exatamente a
informação.

Vamos considerar a estrutura de uma tabela verdade, com uma coluna para cada variável de entrada e a saída
de uma expressão de coluna. Cada linha na qual a coluna de saída é 1 contribui com uma única variável de
entrada de termo AND para a expressão booleana. Isso é chamadaperdodumatermo uct, por causa da analogia
entre AND e MULTIPLICAR. Olhando para a linha, vemos que se a coluna associada a vaX sa 0
riahbale
nele, a expressão faz parte do termo ANDed. Caso contrário, o expressoXio é parte do termo.
Variáveis em seu assert(d)X)ou complementado ( )formas são chamadasliterais.

Há um termo de produto para cada linha com 1 na coluna de saída. Todos esses termos de produto são O junto
para completar a expressão. Uma expressão booleana escrita nesta forma é csumavocêeum conduziuf
ouma

produtos.

Exemplo Derivando Expressões de Tabelas Verdade Vamos voltar à Figura 1.17 e Figura 1.18, as tabelas para o
meio somador e o somador completo, respectivamente. Cada coluna de saída leva a uma nova expressão Boole
mas definida sobre as mesmas variáveis associadas às colunas de entrada. As expressões booleanas para o
meio addeSr'você smeCarregarsaídas podem ser escritas como:

A meia adiçãoSrhumé 1 em duas linhas:UMA=1,B=0 eUMA=0,B=1. A metade adicionadaC rarryé 1 em apenas


uma linha:UMA=1,B=1.

A tabela verdade para o somador completo é consideravelmente mais complexa.S do queCouttem quatro linhas com
Bvocêom

1 nas colunas de saída. As duas funções são escritas como

Como veremos no Capítulo 2, podemos explorar a álgebra booleana para simplificar expressões booleanas.
Aplicando alguns dos teoremas de simplificação da álgebra booleana, podemos reduzir a expressão para o somador
completoCoutsaída para o seguinte :

Essas formas simplificadas reduzem a quantidade de portas, transistores, fios e assim por diante, necessários para implementar a
expressão. A simplificação é uma ferramenta extremamente valiosa.

Você pode usar uma tabela-verdade para verificar se a expressão simplificada que acabamos de obter é equivalente à original. Comece
com uma tabela verdade com colunas de entrada preenchidas, mas colunas de saída vazias. Então encontre todos
linhas da tabela verdade para as quais os termos do produto são verdadeiros e insira 1 na coluna de saída
associada. Por exemplo, o terUMA mCiné verdade ondeUMAr = 1 eCin=1, independente do valorBo.f
A Cinabrange duas linhas da tabela verdadeUMAs:= 1,B=0,Cin=1 eUMA=1,B=1,Cin=1.

A Figura 1.19 mostra a tabela-verdade preenchida e indica as linhas geradas por cada um dos termos. Si a
tabela verdade resultante é a mesma da expre(sseioenFigura 1.1)8 original, as duas expressões devem ter o
mesmo comportamento.

1.3.4 Portões

Para designers lógicos, o bloco de construção primitivo mais amplamente utilizado é a porta lógica. Veremos
que toda expressão booleana tem uma descrição de porta equivalente e vice-versa.

Correspondência entre operações booleanas e Logic GatE euma sch dos operadores lógicos tem um
porta lógica correspondente. Já conhecemos o inv(eN rtO
erT) , AND e OR, cujas
representações de nível de porta correspondentes são dadas na Figura 1.20. As portas lógicas são formadas internamente a
partir de chaves de transistor (ver Exercício 1.1)2.

Correspondência entre expressões booleanas e Gate NetwoE kvsery expressão booleana tem um
implementação correspondente em termos de portas interconectadas. Isso é csumacllheedmumaati.c
Esquemas são uma das maneiras que capturamos stthre de um projeto, ou seja, como o projeto é construído
visão estrutural
da composição de componentes primitivos. Nesse caso, a composição é realizada
conectando fisicamente as portas.

Isso nos leva a uma nova terminologia. Uma coleção de fios que sempre carregam o mesmo sinal
elétrico, porque estão fisicamente conectados, é can cheiot.ahe T tabulação de entradas e saídas do portão
e as redes às quais eles estão conectados é callen detthlierua.
Esquemas de Exemplo para o Somador Meio e Somador Um esquema para o somador meio é mostrado na Figura As
entradas estão identificadas à esquerda da figuraUMAasndB. As saídas estão à direita, labeS levocêdme
Carregar.Somaé o OR de dois termos com AND, e isso é mapeado diretamente nas três portas, conforme mostrado no esquema
De forma similarC , arryé descrito em termos de uma única operação AND e, portanto, mapeia em um si
E portão. A figura também mostra duas redes diferentes, rotuladas como Net 1 e Net 2. A primeira corresponde ao conjunto de
fios que transportam o sinal de entradaUMAuma; Estes últimos são os fios que carregam o sinal Buma. eu

O esquema do somador completo é dado na Figura 1(.a2)2. Cada uma das saídas é o OR de quatro termos de produt
de 3 variáveis. O operador OR é mapeado em uma porta OR de quatro entradas, enquanto cada termo do produto é
uma porta AND de três entradas. Cada conexão no esquema representa um fio físico entre os componentes.
Portanto, pode haver uma vantagem real na implementação, em termos de tempo de recursos necessários para
implementar a rede, reduzindo o número de portas e utilizando portas com menos entradas.
A Figura 1.22(b) mostra uma implementação alternativa deC ºoeutfunção usando menos portão e fios.
Os procedimentos de projeto no próximo capítulo o ajudarão a encontrar a representação de nível ga mais simples e fácil
de implementar de uma função booleana.

Regras Esquemáticas de Composiçãoofan-inde uma porta lógica é o seu número de entradas. Os exemplos de
esquemas nas Figuras 1.21 e 1.22 mostram portas com fan-ins de 1, 2, 3 efa4n.-Tohvocêetde uma porta é o número
de entradas às quais a saída da porta está conectada. Os exemplos de esquemas possuem muitos g com fan-outs de
1, ou seja, portas cuja saída se conecta exatamente a uma entrada de outra porta. No entanto, alguns sinais têm um
fan-out muito maior. Por exemploUMAO esquema de somador completo se conecta a seis entradas de porta
diferentes (uma NOT e cinco portas AND) s.

A representação esquemática não impõe limites aos fan-ins e fan-outs. No entanto, fan-in e out são restringidos
pela tecnologia subjacente a partir da qual as portas lógicas são construídas. É difícil encontrar portas OR com
mais de 8 entradas, ou tecnologias que permitem que as portas se espalhem para mais de 20 outras portas.
Uma determinada tecnologia irá impor umaruteuoefs de composiçãoem fan-ins e fan-outs para garantir o
comportamento elétrico adequado dos portões. No Capítulo 3 você aprenderá como calcular o fan-out máximo
permitido de uma porta.
1.3.5 Formas de onda

As formas de onda descrevem o comportamento variável no tempo de sistemas de hardware, enquanto switches, expressões
booleanas e portas nos informam apenas sobre o comportamento estático ou de "estado estacionário" do sistema. Nós examinando
formas de onda podemos nos dizer nesta subseção.

Comportamento Estático versus DinâmicoAs representações que examinamos até agora são de natureza estática. Eles
não nos dão nenhuma intuição sobre como um circuito se comporta ao longo do tempo. Para o designer digital iniciante,
como você, entender o comportamento dinâmico dos sistemas digitais é um dos mais difíceis de desenvolver. A maioria
dos problemas em implementações digitais está relacionada ao tempo.

Os portões requerem um certo tempo de propagação para reconhecer uma mudança em suas entradas e produzir uma
nova saída. Ao se estabelecer nesse estado de longo prazo, as saídas de um sistema digital podem parecer bastante
diferentes de seus chamados valores finais de estado estacionário. Por exemplo, usando a representação da tabela verdad
na Figura, se soubéssemos que as entradas para o circuito meio somador eram 1 e 0, esperaríamos que a saída w fosse 1
para oSomae 0 para oCarregar.

Representação de forma de onda do comportamento dinâmicoA representação da forma de onda fornece uma maneira de
capturar o comportamento dinâmico de um circuito. É semelhante a um traçado de osciloscópio X.aTxhisedexibe a hora,
e o valor (s0 ou 1) de vários traços de sinal são representados porSthéxis.

A Figura 1.23 mostra uma forma de onda produzida para o circuito meio somador. Há um traço para cada um dos
UMAeB, e as saídasS,humeCarregar, dispostos ao longo do eixo do tempo. Cada divisão de tempo representa
- unidades de tempo abstratas, e assumimos que todas as portas sofrem um atraso de 10 unidades de tempo.

Na figura, você pode ver que as entradas percorrem quatro combinações de entrada possíveis:
Tempo

0-50 A é 0, B é 0

51-100 A é 0, B é 1

101-150 A é 1, B é 0

151-200 A é 1, B é 1

Vamos olhar de perto para thSehumeCarregarformas de onda. Você pode ver que, em geral, eles seguem o padrão
esperados da tabela verdade, mas são compensados no tempo.STvocêhm esaída muda de 0 a 1 a 1 a 0.
Observe que algo estranho acontece durante a segunda transição - examinaremos isso mais tarde, quando
discutir falhas. ºC earrypermanece 0 até o último conjunto de alterações nas entradas, momento em que muda
1. Vejamos um exemplo de rastreamento de sinal através do meio somador com mais detalhes.

51, o
Exemplo de atrasos de propagação de rastreamento no meio somador Observando em particular a etapa de tempoB
entrada muda de 0 para 1. Vinte unidades de tempo depois,Sºvocêm
e a saída muda de 0 para 1. Por que isso

acontecer?

A Figura 1.24 mostra um circuito lógico instrumentado com pontas de prova em cada uma das redes do circuito. O p
exibe o valor lógico atual em uma rede particular. As redes com valores variáveis estão destacadas na figura.

Vamos examinar a sequência de eventos e a propagação detalhada de sinais mais de perto, usando 1.24. A Figura
1.2(4a) mostra a(s) condição(ões) de entrada inicial(is)UMAeBambos são 0 ) e os valores de todos
redes internas.

A situação imediatamente apósBAs mudanças de 0 para 1 são mostradas na Figura 1( .b2)4. O conjunto de fios
conectados à chave de entrada agora carrega um 1. Neste ponto, a porta AND mais alta tem sua entrada para 1. Um
atraso de porta (y10 unidades de tempo) depois, a saída desta porta mudará de 0 para 1. Isso é mostrado na Figura
1.24(c).

Agora uma das entradas para a porta OR é 1. Após outro atraso de 10 unidades de tempo na porta Syvocê,mmudanças de saída
de 0 a 1 (veja a Figura 1.2(4d)) . Como o sinal propagado passa por duas portas, a lógica incorre em dois atrasos de
porta, ou um atraso de 20 unidades de tempo, conforme mostrado na forma de onda da Figura 1.23. O caminho de
propagação que determina o atraso através do circuito é chamadocerdititchumael caminho.

FalhasOs atrasos de propagação são altamente sensíveis ao padrão. Sua duração depende das combinações
específicas e como elas fazem com que diferentes caminhos de propagação se tornem críticos dentro da rede leva 30
unidades de tempo (atraso de três portas) paraSomamudar depoisSr muda na etapa de tempo 151. Você notou o
comportamento estranho em tS emforma de onda entre os passos de tempo 120 e 130? A entrada
hvocê

combinação é 1 e 0, mas por um curto período de tempo Suemrealmente gera uma saída zero! Esse comportamento é chamado
umafalha, um curto período de tempo durante o qual a saída passa por um valor lógico que não é seu estado estável. Isso
pode levar a um comportamento anômalo se você não for cuidadoso. Você aprenderá como projetar circuitos para evitar
falhas no Capítulo 3.

1.3.6 Blocos

A representação do diagrama de blocos nos ajuda a entender como as principais peças do hardware são
conectadas entre si. Nós o examinamos nesta subseção.

Conceito básicoUMAquadrarepresenta um componente de design que executa alguma função de alto nível razoável
e bem definida. Por exemplo, não faria muito sentido associar um bloco a uma única porta, mas várias portas lógicas
interconectadas poderiam ser associadas a um bloco. O somador completo é um exemplo de uma função do
tamanho de um bloco.

Cada bloco identifica claramente suas entradas e saídas. Um bloco pode ser realizado diretamente por algumas portas
dormentes, como na Figura 1.22, ou pode ser construído a partir de uma composição de portas e b mais primitivos

Exemplo de Diagrama de Blocos de Somador Completo A Figura 1.25 mostra como duas instâncias da mesma construção, o meio
somador, podem ser usadas para implementar um somador completo. Como você pode ver nas formas de onda de saída
Figura 1.26, o circuito composto se comporta como o somador completo construído diretamente a partir de portas lógicas.

Compare as formas de onda com a tabela verdade da Figura 1.18. Na maioria das vezes, a tabela verdade é um espelho das
formas de onda, com pequenas variações de tempo. TS ele
humforma de onda também inclui algumas falhas,
destacado na figura.

A representação do diagrama de blocos reduz a complexidade de um projeto para unidades mais gerenciáveis. R do que
lidar com toda a complexidade do esquema do somador completo e suas 13 portas, você só precisa entender o meio
ad(djeurst seis portas)s muito mais simples e sua composição simples para implementar o somador completo.

As formas de onda capturam as relações de tempo entre os sinais de entrada e saída. Mas nem sempre são a melhor
maneira de entender a função abstrata que está sendo implementada. É aqui que as representações comportamentais
desempenham um papel importante. Nós os examinamos a seguir.

1.3.7 Comportamentos

A descrição comportamental foca em como o bloco se comporta. As formas de onda são uma forma primitiva de descrição
comportamental. Outras representações comportamentais mais sofisticadas dependem de especificações escritas em
linguagens de descrição de hardware.

Conceito básicoodescrição comportamentalconcentra-se no comportamento do bloco. De certa forma, a


representação da forma de onda fornece uma descrição comportamental primitiva, mas as relações de causa e efeito
entre entradas e saídas não são óbvias nas formas de onda. As formas de onda às vezes são aumentadas com
relações de tempo para colocar restrições de desempenho específicas em um bloco. Por exemplo, uma restrição de
timin pode ser "thS ehumsaída deve mudar o mais tardar 30 unidades de tempo após uma mudança de entrada",
isso pode ter uma influência significativa na escolha da implementação do bloco.

Idiomas de descrição de hardwareO método mais comum de especificar descrições comportamentais por meio de
uma linguagem de descrição de hardware. Essas linguagens se parecem muito com linguagens convencionais de
programação de computador de alto nível. No entanto, as linguagens de programação convencionais forçam você a
não executar uma única instrução do programa por vez. Isso não é adequado para hardware, que é inerentemente
paralelo: todas as portas estão constantemente amostrando suas entradas e computando novas saídas. O grau de
paralelismo é uma das coisas que dificulta o projeto de hardware.

A título de exemplos, apresentaremos duas linguagens de descrição de hardware diferentes, ABEL e VHDL. ABEL é
comumente usado como uma linguagem de especificação para componentes lógicos programáveis.
linguagem simples, adequada para sistemas digitais de complexidade moderada. O VHDL é mais completo e
capaz de descrever sistemas de considerável complexidade.

ABELABEL pode especificar a relação entre entradas e saídas do circuito em várias alternativas, incluindo
tabelas de verdade e equações. A unidade básica da linguagem é o módulo, que corresponde ao bloco em
nossa terminologia. Pinos em pacotes de circuitos integrados são conexões com o mundo exterior. da
especificação ABEL associa variáveis de entrada e saída com pinos específicos no componente lógico do
programa escolhido para implementar a função.

A forma da tabela verdade do meio somador se parece com isso:

MÓDULO half_adder;

A, B, Soma, Carregar PIN 1, 2, 3, 4;

TRUTH_TABLE ([A, B] -> [Soma, Carregar])

[0, 0] -> [0, 0];

[0, 1] -> [1, 0];

[1, 0] -> [1, 0];

[1, 1] -> [0, 1];

END half_adder;

A especificação nada mais é do que uma tabulação de condições sobre iUMA npauntsdBe a
valores de saída correspondentes que devem ser associadosSWhumà mãoCarregar.

Outra maneira de descrever a relação entre entradas e saídas é através da definição do módulo de
equação booleana que seria escrito como -segue:

MÓDULO half_adder;

A, B, Soma, Carregar PIN 1, 2, 3, 4;

EQUAÇÕES

Soma = (A & !B) # (!A & B);

Carregar = A & B;
END half_adder;

Aqui, & é o operador AND, ! é negação e # é OR.

VHDLVHDL é uma linguagem amplamente utilizada para descrição de hardware, baseada na linguagem de programação
ADA. Ele é usado como a descrição de entrada para vários sistemas de computador auxiliados por computador disponíveis
comercialmente. Embora não estejamos preocupados com os detalhes da sintaxe do VHDL, vale a pena ver um exemplo de
descrição do meio somador, apenas para ver os tipos de recursos que o VHDL oferece. Segue um "modelo" VHD para o
meio somador:

- - * * * * * modelo de portão inversor *****

- - portas externas

ENTITY inverter_gate;

PORTA (A: BIT DE ENTRADA; Z: BIT DE SAÍDA);

END inversor_gate;

- - comportamento interno

ARQUITETURA comportamental de inverter_gate IS

COMEÇAR

Z <= NÃO A APÓS 10 ns;

FIM comportamental;

- - * * * * * e modelo de portão *****

- - portas externas

ENTITY e_gate;

PORTA (A, B: BIT DE ENTRADA; Z: BIT DE

SAÍDA); END e_gate;

- - comportamento interno
ARQUITETURA comportamental OF and_gate IS

BEGIN

Z <= A E B APÓS 10 ns; FIM

comportamental;

- - * * * * * ou modelo de portão *****

- - portas externas

ENTITY or_gate;

PORTA (A, B: BIT DE ENTRADA; Z: BIT DE SAÍDA);

END or_gate;

- - comportamento interno

ARQUITETURA comportamental OF or_gate IS

COMEÇAR

Z <= A OU B APÓS 10 ns;

FIM comportamental;

- - * * * * * modelo meio somador *****

- - portas externas

ENTITY half_adder;

PORTA (A, B: ENTRADA; Soma, Carry: SAÍDA);

END half_adder;

- - estrutura interna

ARQUITETURA estrutural de half_adder IS

- - tipos de componentes a serem usados


COMPONENTE inverter_gate

PORTA (A: BIT DE ENTRADA; Z: BIT DE

SAÍDA); COMPONENTE FINAL;

COMPONENT and_gate

PORTA (A, B: BIT DE ENTRADA; Z: BIT DE

SAÍDA); COMPONENTE FINAL;

COMPONENT or_gate

PORTA (A, B: BIT DE ENTRADA; Z: BIT DE SAÍDA);

COMPONENTE FINAL;

- - fios de sinal interno

SINAL s1, s2, s3, s4: BIT;

COMEÇAR

- - uma linha para cada portão, descrevendo sua

- - tipo e suas conexões

i1: inverter_gate PORT MAP (A, s1);

i2: inverter_gate PORT MAP (B, s2);

a1: and_gate PORT MAP (B, s1, s3);

a2: and_gate PORT MAP (A, s2, s4);

a3: and_gate PORT MAP (A, B, Carry);

o1: or_gate PORT MAP (s3, s4, Soma);

FIM estrutural;
odeclarações de entidadedeclarar as características do diagrama de blocos de um componente - isto é, a maneira como ele
é para o mundo exterior. ºumaedeclarações de arquiteturadefinir a operação interna. Normalmente, eles são escritos em
uma forma que se parece muito com instruções de programação. O comportamento do inversor, AND e OR são tão
simples que não fazem justiça à capacidade do VHDL de expressar o comportamento do hardware. A definição do meio
somador é inteiramente estrutural: é meramente uma forma textual de especificar o esquema mostrado na Figura 1.27.

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

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


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

1.4 Prototipagem Rápida de Sistema Eletrônico

Prototipagem rápidaé a capacidade de verificar o comportamento de sistemas digitais e construir sistemas de


trabalho rapidamente. Suponha que você tenha projetado um relógio digital de 12 horas e agora deseja redesenhar
um relógio de 24 horas no estilo militar. No velho estilo de implementação de sistema digital, você precisaria
redesenhar seu relógio substancialmente, rasgando um monte de fios, mudando as portas e refazendo o design. No
novo estilo, você poderia simplesmente revisar sua descrição do ABEL, executar a descrição do computador para
verificar se ele se comporta da maneira que você deseja, recompilar a descrição de um componente de lógica de
programa e simplesmente substituir aquela parte de seu projeto por um único novo componente.

A prototipagem rápida depende criticamente de um conjunto de tecnologias de hardware e software. Revisamos a seguir.

1.4.1 A Razão para Prototipagem Rápida

A prototipagem rápida permite que a construção do sistema prossiga muito mais rapidamente do que no passado, talvez
sacrificando algum retorno de desempenho (velocidade, potência ou área) para uma implementação mais rápida. A
vantagem é que você pode testar a validade de um conceito com mais facilidade se puder implementá-lo rapidamente. têm
o luxo de examinar várias alternativas, escolhendo a que melhor se adapta às restrições do projeto.

É bastante simples esboçar o fluxo de estados através do controlador de semáforo da Figura 1.2. No entanto, será
necessário a maior parte deste livro para você aprender o processo detalhado pelo qual esse fluxograma é mapeado
em uma implementação física realizada por portas lógicas interconectadas. E mesmo quando você cria seu esquema
você ainda deve conectar o projeto corretamente antes que ele possa "acender as luzes!"

Para que a prototipagem rápida seja eficaz, é mais importante capturar a intenção do projeto por meio de altas
especificações. É por isso que as linguagens de descrição de hardware estão se tornando tão importantes. As
ferramentas de projeto de computador podem pegar essas descrições e mapeá-las rapidamente em representações
cada vez mais detalhadas do projeto, eventualmente produzindo uma descrição, como portas interconectadas,
implementação de terno. A ênfase do designer está mudando do foco nas táticas do design para sua estratégia: a
especificação da intenção e das restrições do design, a seleção das ferramentas apropriadas a serem usadas e a
avaliação subjetiva das alternativas de design.

1.4.2 Ferramentas de projeto auxiliadas por computador

As ferramentas de design assistido por computador desempenham um papel importante na prototipagem rápida. Eles aceleram o
processo de mapeamento de uma especificação de projeto de alto nível nas unidades físicas que implementam o projeto, geralmente
portas ou transistores. Você pode modificar a descrição de entrada para tentar uma nova alternativa e, em seguida, exa
sua realização detalhada e compará-lo com o original.

Além do suporte para explorar alternativas de projeto, as ferramentas de projeto podem melhorar a qualidade do projeto
simulando a implementação antes de sua construção física. Uma simulação pode verificar se um des funcionará como
esperado antes de ser construído. Em geral, as ferramentas de projeto se dividem em duas grandes classes, sintetizador e
simulação (ou verificação e análise), que descreveremos a seguir.

SínteseAs ferramentas de síntese criam automaticamente uma representação de projeto a partir de outra.
Normalmente o mapeamento é de descrições mais abstratas para descrições mais detalhadas, mais próximas da
implementação da forma final. Por exemplo, uma descrição VHDL pode ser mapeada em uma coleção de equações
booleanas que preservam o comportamento da especificação original, enquanto descrevem o sistema em um nível
maior de detalhes. Uma segunda ferramenta pode pegar essas equações booleanas e uma biblioteca de portas av em
uma determinada tecnologia e gerar uma descrição de nível de porta do sistema.

Nem todas as ferramentas de síntese necessariamente mapeiam de uma representação para outra. Alguns podem melhorar a
representação agrícola mapeando uma descrição aproximada em um formulário otimizado. As ferramentas de minimização
lógica, u formas sofisticadas dos algoritmos do Capítulo 2, podem reduzir as equações booleanas originais a m formas mais
simples.

SimulaçãoSimuladores são programas que podem executar dinamicamente uma descrição abstrata de projeto. uma
descrição do circuito e um modelo de como os elementos da descrição se comportam, o simula mapeia um estímulo
de entrada em uma resposta de saída, geralmente em função do tempo. Se o comportamento não for o esperado,
quase sempre é mais fácil identificar e reparar o problema nesta descrição do que solucionar o seu produto final.
Existem simuladores para todos os níveis de descrição de projeto, desde o nível comportamental mais abstrato até o
nível detalhado do transistor. Para nossos propósitos, duas formas de simu são as mais relevantes: lógica e
temporização.

Simulação lógicamodela o projeto como portas lógicas interconectadas que produzem os valores (0 e 1 outros que
serão introduzidos no próximo capítulo). Use o simulador para determinar se o comportamento da tabela de truts do
circuito atende às suas expectativas de entrada/saída. Para os circuitos simples que examinamos até agora, podemos
enumerar todas as entradas possíveis e verificar se o comportamento da saída corresponde à tabela verdade. Para
circuitos mais complexos, não é viável gerar todas as entradas possíveis, pois apenas um pequeno conjunto de casos
de teste criteriosamente selecionados pode ser usado.

Simulação de tempoé como simulação lógica, exceto que introduz um atraso mais realista. Em outras palavras, os
elementos da descrição não apenas computam as saídas das entradas, mas também levam tempo. Na simulação de
temporização genética verifica se as formas das formas de onda correspondem às suas expectativas para a
temporização do sistema. Por exemplo, se modelássemos todas as portas neste capítulo como tendo 0 unidades de
tempo de de, não teríamos observado as falhas da Figura 1.23.

A simulação tem suas limitações, e é importante que você as aprecie. Primeiro, os simuladores são descrições e
modelos abstratos, de modo que fornecem uma visão simplificada do mundo. Uma demonstração do simulador de
que um projeto está "correto" não garante que a implementação "conectada" funcionará. Os simuladores lógicos não
contêm modelos elétricos. Você pode exceder o fan-out para um determinado
tecnologia, o que poderia prejudicar o circuito físico, e muitos simuladores lógicos não detectariam esse problema.
Segundo, o simulador é tão bom quanto sua escolha de casos de teste. O circuito pode não funcionar corretamente
na combinação de entrada que você não testou!

1.4.3 Tecnologia de Implementação Rápida

O processo de projeto, com ou sem ferramentas CAD, produz uma seleção de blocos de construção específicos que
precisam ser conectados para implementar o projeto. Pare por um momento e pense na tarefa de conectar o
somador completo, com suas 13 portas e 37 fios. Se isso parece tedioso para você, considere que este é um circuito
muito simples. E imagine a solução de problemas do circuito para encontrar um portão queimado, rasgando os fios,
substituindo o portão e reconectando todos os fios novamente. Esta é uma das etapas mais demoradas e propensas
a erros em todo o processo de projeto.

Novas tecnologias de implementação aceleram a implementação física do projeto. Fazer o passo rápido tem
outras vantagens. Se um bug for descoberto, ele pode ser corrigido e a implementação rege rapidamente
("rapid reworking"). Além disso, o design pode ser alterado mais facilmente em resposta ao feedback real do
desempenho, colocando o sistema em operação mais rapidamente.

Programação com 1's e 0'sAté agora, você pode ter a sensação de que construímos hardware exclusivamente a
partir de portas com fio, mas não é assim que todo hardware é implementado. Uma técnica popular é a tabela-
thoisry é discutido em mais
verdade de uma função lógica em um dispositivo eletrônico especial chamado me(m
detalhe no Capítulo )6.

As entradas formam um endereço que é usado como índice em uma matriz de elementos de armazenamento. Os 0's
armazenados ali representam os valores das saídas da função. Ao armazenar palavras multibit nas localizações me,
você pode usar essa técnica para implementar ne(tw) combinacional de saída múltipla figura
SeoerkF
1.28). Alterar uma função é tão fácil quanto alterar diretamente os valores na memória.
A desvantagem é que o tamanho da memória dobra para cada entrada adicional: uma memória de uma entrada dois
endereços (s0 e 1), uma memória de duas entradas tem quatro ( r00, 01, 10, 1)1, uma memória de três memória de entrad
oito, e assim por diante. Portanto, esta técnica tem utilidade limitada para funções com um grande número de entradas. A
pode haver vantagens de velocidade no uso de portas discretas em vez de memórias.

Dispositivos programáveis pelo usuárioNormalmente, você pode implementar uma função selecionando os
componentes desejados de um catálogo e simplesmente conectando-os. Uma nova abordagem, bapsreodgrouman
dispositivos lógicos mmables(PLDs),está se tornando popular. Em vez de usar peças pré-fabricadas, você constrói o projeto
de componentes configuráveis. Você pode imaginar uma espécie de porta universal que pode ser configurada com uma
tabela para gerar um inversor, uma porta AND ou uma porta OR, dependendo do que for necessário. Embora isso
simplifique demais como esses dispositivos funcionam, a ideia básica é que sua função pode ser personalizada para o que
está à mão.

Além da configuração funcional, os dispositivos contêm fios de interconexão que podem ser configurados pelo designer.
Com base em elementos de memória contendo tabelas de verdade que você fornece, até mesmo o componente pode ser
conectado ao seu comando.

Ferramentas de desenho assistido por computador e dispositivos programáveis pelo usuário estão mudando radicalmente a forma
como o desenho de dígitos está sendo feito. Quando apropriado, neste texto, daremos mais detalhes sobre essa nova e empolgante
tecnologia.

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

Este arquivo foi atualizado pela última vez em 19/05/96 às 09:31:39.


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

Revisão do Capítulo

Este capítulo apresentou a você o processo básico de projeto, que você pode realmente aprender apenas e os tipos
de sistemas que estamos interessados em projetar, ou seja, sistemas de escavação combinacional e sequencial.
Tentamos desenvolver uma apreciação das muitas maneiras diferentes de representar o design, desde simples
switches interconectados até descrições comportamentais semelhantes a linguagens de programação. Finalmente,
revisamos o cenário tecnológico em mudança, focando nas novas abordagens para construir sistemas digitais mais
rapidamente: ferramentas de projeto auxiliadas por computador e dispositivos programáveis pelo usuário. Agora
estamos prontos para iniciar um estudo mais sério das técnicas de projeto e implementação de sistemas digitais.

Leitura adicional
Uma descrição muito boa do processo de design pode ser encontrada no Capítulo 3 do livro de S. Dasgupta
Arquitetura de Computadores: Uma Síntese Moderna, John Wiley, New York, 1989. Uma excelente discussão de
uma variedade de tecnologias de lógica programável pode ser encontrada no livro de RC AlfordPbrooogkr,Guia do
Designer de Lógica amável, publicado por Howard W. Sams & Co., Indianapolis, IN, em 1989. Para aqueles
familiarizados com os conceitos básicos de eletrônica, uma introdução suave pode ser encontrada no trabalho de T
FrederiksenEU,Noções básicas de computação digital intuitiva, publicado pela McGraw-Hill, Nova York, em 1988 (
toda a série "Intuitive" é muito boa.d O texto clássico sobre design digital para circuitos integrados de grande escala
de Carver Mead e Lynn ConwDentroumatyro,dução para Sistemas VLSI, Addison-Wesley, Reading, MA, 1980. O
espectro completo de ferramentas de projeto auxiliado por computador é descrito pelo texto de Steven RubinCt
Auxílios de computador para projeto VLSI, Addison-Wesley, Reading, MA, 1987. Carlo Séquin aborda as questões
envolvidas no gerenciamento da complexidade de grandes projetos digitais complexos no artigo "Managing VLSI
Complexity: An Outlook", que apareceP dreuoncedimentos do IEEE, 71:1,
149-166 (janeiro de 198)3.

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

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


09:31:39. randy@cs.Berkeley.edu ;
[Topo] [Próximo][Anterior ]

Exercícios

1.(Descrição do comportamento do sistema digital Desenvolva diagramas semelhantes a fluxogramas semelhantes à Figur
1.2 para as seguintes variações do controlador básico de semáforo descrito na Seção 1.1.1. Faça suposições razoáveis
sobre a duração das luzes, se não for especificado de outra forma. Considere cada variação independentemente (cada uma
é independente da especificação original representada pela Figu ) r.eS1u.p2pose um
seta para virar à esquerda é adicionada, mas apenas na direção dos motoristas voltados para o norte a partir do S (othuethvocê deseja
fazer curvas à esquerda do Sul para Nós) s. tA seta verde deve ficar acesa por 15 segundos, e durante
desta vez as luzes são vermelhas para o tráfego leste-oeste e vermelho para o tráfego voltado para o sul. Os pilotos de
frente para No vêem a sequência: verde arr(o1w5 segundos)s, verde(30 segundos)s, amarelo (15 segundos)s, vermelho(60
segundos)s e repita. A partir desta especificação, você deve ser capaz de determinar os tempos de luz para outras três
direções.

Considere adicionar sinais Walk-Don't Walk em todas as direções. Eles passam pelo verde Walk,
vermelho piscante Don't Walk e vermelho sólido Don't Walk. As luzes ficam verdes por 30 segundos,
piscando em vermelho por 15 segundos e em vermelho sólido por 75 segundos.

Em todas as direções, adicione botões de pressão que tenham o seguinte efeito: se a luz estiver
vermelha na direção em que o pedestre deseja atravessar, a duração do tempo verde na outra
direção é reduzida de 45 para 30 segundos. Apertar o botão -mais de uma vez ou de mais de um
canto não tem mais efeito.

Considere o projeto de um semáforo para um cruzamento de cinco vias. As direções são NS, EW e
SE (veja a Figura Ex1.)1. Nenhuma direção deve ficar verde por mais de 45 segundos e amarela
por mais de 15. Todas as direções devem eventualmente ver uma luz verde. Aviso:Certifique-se de
nunca ter mais de uma direção verde ao mesmo tempo!

2. (Projetar como montagem)apenasPense em um sistema complexo que você conhece bem, como o automóve
que dirige ou a estrutura em que vive.

Descreva a decomposição desse "objeto complexo" em componentes cada vez


mais primitivos, parando em um nível razoável de comp(oen.egn.,ta brick,
um prego, um pedaço de -lumb)er

Considere algumas representações alternativas de seu sistema complexo. Explique resumidamente


quais são.(Dica: O eletricista e o engenheiro de saneamento se referem à mesma representação de
sua casa quando precisam consertar alguma coisa?

3. (Declarações Lógicas Escreva declarações lógicas para as variantes de semáforo do Exercício 1.1, usando
declarações IF THEN e conectivos AND, OR e NOT, conforme descrito na Seção 1.2.1.

4. (Declarações Lógicas Faça as seguintes suposições sobre um sistema de alarme contra roubo em sua casa (1) você não
pode definir o alarme a menos que todas as janelas e portas sejam c(lo2s)etdh;e o sistema está "predefinido" (if1) é
verdadeiro e o código secreto foi ent(e3) re)dt;o sistema está "definido" (if2) é verdadeiro e 45 segundos
decorrido desde a predefinição do ala(rm4); se o alarme estiver acionado, abrir qualquer janela ou porta que não seja a
a porta da frente fará com que o alarme soe imediatamente (el5y); se a porta da frente estiver aberta e o alarme
estiver definido, soará se o sistema não for desarmado em 30 segundos(n6d)s; o sistema é desarmado digitando o
código secreto. Escreva instruções lógicas para:

Configurando o alarme
Desarmar o alarme
Soando o alarme

5. (Analógico vs. Digital Considere a característica de transferência do inversor descrita na Seção 1.2.3. Suponha que
dois circuitos inversores sejam colocados em série de modo que a saída do primeiro inversor seja a entrada do
segundo inversor. Suponha inicialmente que a entrada para o primeiro estágio seja uma lógica 1 representada por 5
volts. Naturalmente, a saída do segundo estágio será idêntica, pelo menos inicialmente. Descreva o que acontece com
as saídas do primeiro e segundo estágios quando a entrada do primeiro estágio muda lentamente de 5 volts para 0
volts, desenhando um gráficoXeaxis é o tempo e quemSeaxis é a tensão, mostrando duas curvas, uma para (a) a saíd
do primeiro estágio e (db) a saída do segundo estágio.

6. (Circunstâncias Combinacionais vs. Sequenciais Quais dos seguintes contêm circuitos que provavelmente são
combinacionais e quais contêm circuitos sequenciais? Explique seu raciocínio. Uma máquina de lavar segue os ciclos
de imersão, lavagem e centrifugação por períodos de tempo predefinidos.

Um circuito majoritário de três entradas que emite um lógico 1 se quaisquer duas de suas entradas
forem 1. Um circuito que divide dois números de 2 bits para produzir um quociente e um resto.
Uma máquina que pega uma nota de dólar e dá três quartos, duas moedas de dez centavos e um níquel em
troco, uma de cada vez através de um único slot de troca de moeda.
Um despertador digital que gera um alarme quando um tempo predefinido é atingido.

7. (Redes de Comutação Desenhe as redes de comutação conforme descrito na Seção 1.3.1 para as três
condições do Exercício 1.4.

8. (Switching Network)s Embora nos concentremos principalmente em projetos de nível de porta nos seguintes
capítulos, a lógica de comutação descrita na Seção 1.3.1 é bastante útil para funções que "orientam" saídas de
entrada, como shifters e multiplexadores/desmultiplexadores. As funções destes dispositivos são descritas pela
seguintes especificações. Projete redes de switches para as seguintes funções:

Um shifter de 2 bits recebe dois sinais de entradaeu10areiaeu1, e os desloca para duas saídaso ts0,
eo1, sob o controle de um sinal de deslocamento. Se este sinal SHIFT for falso, as entradas são
conectadas diretamente às saídas. Se SHIFT for verdadeiro,eut0he é encaminhado parao1 eo0
deve ser definido como 0.

Um demultiplexador de 1 bit recebe um sinal de entrada IN e o desloca para uma das duas saídaso
p0utasn,d o1, sob o controle de um único sinal SELECT. Se SELECT for 0, então IN é conectado através
deo0 eo1 está conectado a um 0. Se SELECT for 1, então IN está conectadood 1 hora
o0 deve ser conectado a um 0.

Um multiplexador de 2 bits recebe dois sinais de entradaeuls0, eeu1, e muda um deles para a saída
única OUT sob o controle de um sinal de seleção de 1 bit. Se o sinal SELECT for falso, então eu0 é
passado para OUT. Se SELECT for verdadeiro, theue1nis passado para OUT.

9. ( Tabelas-verdade) Escreva tabelas-verdade para as três funções do Exercício 1.8.

10. ( Boolean Algebr)a Escreva a soma das expressões de produtos para as tabelas-verdade do Exercício 1.9.

11. (Portas) Dadas as expressões booleanas do Exercício 1.10, desenhe esquemas lógicos usando portas
AND e INVERT que implementam essas funções.

12. (Representações do projeto Examine as três redes de comutação na Figura Ex1.12. Escreva uma tabela trut
para cada uma das redes.

Para cada combinação de entrada, descreva brevemente como a rede opera.

13. (Formas de onda) Trace a propagação de 1's e 0's através do meio somador da Seção 1.3.4 para explicar por
que a falha ocorre quando as entradas mudam de frUMAom =0,B=1 aUMA=1,B=0. Assuma tudo
portas têm o mesmo atraso de 10 unidades de tempo.

14. (Diagramas de Blocos) Dada a tabela verdade para o meio somador, mostre que a composição de dois h
somadores e uma porta OR como na Seção 1.3.6 produz a mesma tabela verdade do somador completo.
15. (Verificação de forma de onda) Este capítulo descreveu duas implementações diferentes em nível de porta de um
circuito somador completo: implementação direta, como na Figura 1.22, e implementação hierárquica via - meio
somadores em cascata, como na Figura (1a . 2)5. Você esperaria que os comportamentos de forma de onda desses
implementações sejam idênticas? Justifique sua resposta.

16. (Comportamentos) Escreva um programa em sua linguagem de programação favorita que imite o
) descrito
comportamento (a) o controlador básico de semáforo da Seção 1.1.1 e as quatro variantes (iobntthrough e em
Exercício 1.1.

17. (Synthesi)s Simplifique as seguintes expressões booleanas examinando suas tabelas verdade para
termos mais simples que cobrem várias linhas 1 da tabela verdade:

18. (Programação com 1 e 0 ) 'sDescreva o conteúdo de uma memória que você usaria para
implementar as três funções do Exercício 1.8. Identifique as entradas de endereço e as saídas de sinal.

19. (Tabelas-verdade) Considere uma função que recebe como entrada dois números de 2 bits e produz como uma soma
de 3 bits. Escreva a tabela verdade para esta função.

20. (Tabelas verdade)Uma função de incremento por 1 recebe uma entrada de bit único e gênerosStevocêsme
Carregardo seguinte modo. Se a entrada for 0S,humé 1 eCarregaré 0. Se a entrada for ,1Shumé 0 eCarregaré 1.
Usando a tabela verdade para o somador completo, demonstre que você pode implementar a função incremento por 1
configurandoCindo somador completo para 1 enquanto thB A entrada está definida como 0. Você consegue pensar em alguma razão

por que pode ser vantajoso usar um bloco de construção padrão como o somador completo em vez de um circuito de
especificação?

[Topo] [Próximo][Anterior ]

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


09:31:39. randy@cs.Berkeley.edu ;
Lógica Combinacional de Dois Níveis

Ó raça cega de homens miseráveis, Quantos


entre nós, nesta mesma hora, forjam um
problema para toda a vida, Tomando o
verdadeiro por falso, e o falso por verdadeiro!

- Alfred, Lorde Tennyson

Introdução

Este capítulo inicia nosso exame detalhado da implementação de sistemas digitais. Começamos com o projeto de
lógica combinacional, o projeto e implementação de funções lógicas cujas saídas dependem exclusivamente de suas
entradas. O somador completo apresentado no Capítulo 1 é exatamente esse circuito.

Começamos com a representação de uma função como uma equação booleana ou uma tabela-verdade.
Introduziremos a representação "canônica", ou padrão, de equações booleanas, chamada soma de produtos de duas
camadas. Podemos pensar nisso como uma maneira única de representar uma função booleana, como uma
impressão digital. O expressa a função como ANDed ter(mfisrst level of gate)s que são então ORed juntos(esrecond
level of gates) . Uma forma canônica alternativa, o produto de suparamrsm, tem ORs no primeiro nível e ANDs
no segundo nível.

Você pode implementar uma função booleana como portas lógicas de mais de uma maneira. É altamente desejável a
implementação mais simples, ou seja, aquela com o menor número de portas ou fios. O processo de redução de uma
função booleana à sua forma mais simples de dois níveis é chamado de minimização ou redução booleana.
Apresentaremos o algoritmo detalhado para minimização, bem como um método simples adequado para p e papel.
Enfatizamos métodos que ajudarão você a visualizar o que está acontecendo durante a redução

Este capítulo se baseia nos temas apresentados no Capítulo 1, dentro da estrutura do projeto
combinacional. Ou seja, destacamos:

- Múltiplas representações, incluindo equações booleanas, tabelas verdade, formas de onda e descrições
de portas interconectadas de uma função booleana. Em particular, apresentamos as representações
canônicas de stand que formam a base dos vários métodos de simplificação e implementação.

- Tecnologia de prototipagem rápida envolvendo o uso de software baseado em computador para reduzir
Equações booleanas e tabelas-verdade em sua forma mais simples de dois níveis.

Índice

2.1.Funções lógicas e interruptor es


2.2.Logi do Portão c
2.3.Simplificação em dois níveis n
2.4.Ferramentas CAD para Simplificação n
2.5.Fosco prático rs
Exercício s

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

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


19:47:39. randy@cs.Berkeley.edu ;

Vous aimerez peut-être aussi