Você está na página 1de 844

RONALD J.

TOCCI
RONALD J. TOCCI

GREGORY L. MOSS
NEAL S. WIDMER
RONALD J. TOCCI
Engenharia/Computao
NEAL S. WIDMER | GREGORY L. MOSS
NEAL S. WIDMER | GREGORY L. MOSS
11a EDIO

SISTEMAS DIGITAIS
princpios e aplicaes
a
11 EDIO

princpios e aplicaes
SISTEMAS DIGITAIS
SISTEMAS DIGITAIS
Considerado um clssico da rea, Sistemas digitais sempre se destacou por abordar
tanto os temas clssicos como as novidades da rea de maneira objetiva e didtica,
primando pelo aprendizado. E, nesta 11a edio, isso no diferente.

Por meio de uma linguagem clara, repleta de exemplos resolvidos, questes para
reviso e problemas/exerccios, o livro aborda temas atuais como a programao de princpios e aplicaes
PLDs e a introduo s linguagens de descrio de hardware, inclusive VHDL , sem
deixar de lado tpicos tradicionais, abordando o uso de megafunes e blocos de cons-
truo fundamentais.

Por tudo isso, Sistemas digitais ideal para cursos de engenharia, bem como para
cursos de automao, cincia da computao e eletrnica.

www.pearson.com.br/tocci
O site de apoio do livro oferece: para professores, apresentaes em PowerPoint e manual do
professor (em ingls); para estudantes: exerccios de mltipla escolha e links teis.
11a EDIO

ISBN 978-85-7605-922-6

w w w. p e a r s o n . c o m . b r

CVR_TOCC9226_11_CVR.indd 1 10/02/2014 10:02:44


Tocci.indb 1 10/05/2011 18:14:42
Tocci.indb 2 10/05/2011 18:14:43
Ronald J. Tocci
Monroe Community College

Neal S. Widmer
Purdue University

Gregory L. Moss
Purdue University

Traduo:
Jorge Ritter

Reviso tcnica:
Renato Camargo Giacomini
Professor titular do Centro Universitrio da FEI (Faculdade de Engenharia Industrial)
Departamento de Engenharia Eltrica da FEI

Tocci_III_IV.indd 1 29/01/2014 09:32:15


2011 by Pearson Education do Brasil.
2011, 2007, 2004, 2001, 1998 Pearson Education, Inc., publishing as Prentice Hall.

Todos os direitos reservados. Nenhuma parte desta publicao poder ser reproduzida ou
transmitida de qualquer modo ou por qualquer outro meio, eletrnico ou mecnico, incluindo
fotocopia, gravao ou qualquer outro tipo de sistema de armazenamento e transmisso
de informao, sem previa autorizao, por escrito, da Pearson Education do Brasil.

Diretor editorial: Roger Trimer


Gerente editorial: Sabrina Cairo
Editor de aquisio: Brunno Barreto
Coordenadora de produo editorial: Thelma Babaoka
Editora de texto: Sabrina Levensteinas
Preparao: Thais Devus Rimkus
Reviso: Christiane Colas e Geisa Oliveira
Capa: Celso Blanes
Diagramao: Figurativa Editorial

Dados Internacionais de Catalogao na Publicao (CIP)


(Cmara Brasileira do Livro, SP, Brasil)

Tocci, Ronald J.
Sistemas digitais : princpios e aplicaes / Ronald J. Tocci, Neal
S. Widmer, Gregory L. Moss ; reviso tcnica Renato Giacomini ; traduo
Jorge Ritter. 11. ed. So Paulo : Pearson Prentice Hall, 2011.

Ttulo original: Digital systems : principles and applications

ISBN 978-85-7605-922-6

1. Eletrnica digital I. Widmer, Neal S.. II. Moss, Gregory L.. III. Ttulo.

11-03295CDD-621.381

ndices para catlogo sistemtico:

1. Sistemas digitais : Engenharia eletrnica : Tecnologia 621.381

3a reimpresso fevereiro 2014


Direitos exclusivos para a lngua portuguesa cedidos a
Pearson Education do Brasil,
uma empresa do grupo Pearson Education
Rua Nelson Francisco, 26, Limo
CEP: 02712-100 So Paulo SP
Tel: (11) 2178-8686 Fax: (11) 2178-8688
e-mail: vendas@pearson.com

Tocci_III_IV.indd 2 29/01/2014 09:32:15


A voc, Cap, por me amar h tanto tempo e pelos milhes de modos pelos quais
voc torna mais brilhante a vida de todos com quem entra em contato.
RJT

Ao meu pai, Ed, que inspirou a minha carreira em eletrnica; minha me, Gladys,
que me ensinou as coisas mais importantes na vida, minha esposa, Kris, que me d
suporte e encorajamento; e a todos os grandes professores que eu considero exemplos
a serem seguidos.
NSW

minha crescente famlia, Marita, David, Ryan, Christy e Jeannie.


GLM

Tocci.indb 5 10/05/2011 18:14:43


Tocci.indb 6 10/05/2011 18:14:43
P R E FC I O

Este livro um estudo abrangente de princpios e tcnicas de sistemas digitais modernos.


Ele ensina os princpios fundamentais dos sistemas digitais e trata de modo abrangente tanto
dos mtodos tradicionais de aplicao de projetos digitais e tcnicas de desenvolvimento
quanto dos modernos, abordando inclusive como gerenciar um projeto de sistema. Foi feito
para programas de dois e quatro anos de estudo de tecnologia, engenharia e cincia da com-
putao. Embora alguma noo de eletrnica bsica seja til, a maior parte do material no
requer esse tipo de conhecimento prvio. E possvel pular trechos que tratam de conceitos
de eletrnica sem que isso afete a compreenso dos princpios lgicos.

O que novidade nesta edio?


A lista a seguir resume as melhorias na dcima primeira edio de Sistemas digitais.
Detalhes podem ser encontrados na seo intitulada Alteraes especficas, na pgina xi.

Captulo 1 introdutrio revisado. Ao focar exemplos familiares de telecomunicaes,


este captulo demonstra conceitos fundamentais em sistemas desde o telgrafo at o
telefone celular.
Mais exemplos trabalhados e figuras foram acrescentados aos captulos.
Problemas mais simples incrementam os problemas no final dos captulos iniciais.
Alguns problemas mais complexos foram acrescentados ao longo do texto.
Uma nova nfase sobre o uso de megafunes, blocos de construo fundamentais
e de fcil definio para sistemas digitais (usando um software wizard). Isto um
acrscimo cobertura dos princpios fundamentais das linguagens de descrio de
hardwares.
O Captulo 10 tem uma seo de destaque. Um controlador de forno de micro-ondas
apresentado como projeto de sistema completo mostrando todos os passos do ge-
renciamento de projetos.
O interfaceamento analgico (Captulo 11) foi expandido para cobrir ADC pipelined
e vrios exemplos de aplicaes de sistemas.
O material de sistemas de memria (Captulo 12) foi atualizado para descrever os
dispositivos disponveis e o que projetado para o futuro.
A cobertura FPGA foi atualizada no Captulo 13.

Tocci.indb 7 10/05/2011 18:14:43


viii Sistemas digitais princpios e aplicaes

Aperfeioamentos gerais
Na indstria hoje em dia, colocar um produto no mercado rapidamente essencial. O uso de ferramentas
de projeto modernas, CLPDs e FPGAs permite que os engenheiros progridam do conceito ao silcio funcional
muito rapidamente. Microcontroladores assumiram aplicaes que antes eram implementadas por circuitos
digitais, e DSP foi usado para substituir circuitos analgicos. incrvel que microcontroladores, DSP e toda
a lgica necessria para junt-los sejam consolidados em um nico FGPA usando linguagem de descrio de
hardware com ferramentas de desenvolvimento avanadas. Os estudantes de hoje tm de ser expostos a estas
ferramentas modernas, mesmo em um curso introdutrio. responsabilidade de todo educador encontrar a
melhor maneira de preparar os estudantes para o que eles encontraro na vida profissional.
Os componentes padro SSI e MSI que serviram como tijolos e cimento na construo de sistemas
digitais durante quase 40 anos esto perto da obsolescncia. Muitas das tcnicas ensinadas ao longo desse
tempo se concentraram no aperfeioamento de circuitos construdos a partir desses dispositivos ultrapas-
sados. Os tpicos adequados apenas aplicao da velha tecnologia, mas que no contribuem para uma
compreenso da nova, esto perdendo espao. Do ponto de vista educacional, todavia, esses pequenos CIs
oferecem um modo de estudar circuitos digitais simples, e as conexes de circuitos usando placas de monta-
gem de circuitos (breadboards) so um valioso exerccio pedaggico. Solidificam conceitos como entradas
e sadas binrias, funcionamento de dispositivos e limitaes prticas, usando uma plataforma bastante
simples. Em consequncia, resolvemos apresentar as descries conceituais de circuitos digitais e fornecer
exemplos com componentes da lgica padro convencional. Para professores que continuam ensinando os
fundamentos usando circuitos SSI e MSI, esta edio conserva qualidades que renderam a este livro uma
aceitao ampla no passado. Muitas ferramentas de projeto de hardware chegam a fornecer uma tcnica
de entrada de projetos amigvel, que emprega a funcionalidade dos componentes convencionais com a
flexibilidade dos dispositivos lgicos programveis. Um projeto digital pode ser descrito em um diagrama
esquemtico com blocos de construo pr-fabricados e so equivalentes aos componentes convencionais,
que podem ser compilados e depois programados em um PLD com a capacidade adicional de simular o
projeto na mesma ferramenta de desenvolvimento.
Acreditamos que os estudantes aplicaro os conceitos apresentados neste livro com mtodos de des-
crio de nvel mais alto e dispositivos programveis mais complexos. A principal mudana nesta rea a
necessidade de entender os mtodos de descrio em vez de se concentrar na arquitetura de um dispositivo
real. As ferramentas de software evoluram a um ponto em que no h necessidade de se preocupar com o
mecanismo interno do hardware, mas de se atentar ao que acontece, aos resultados e em como o projetista
descreve o que se espera que o dispositivo faa. Acreditamos tambm que os alunos desenvolvero projetos
com ferramentas de ltima gerao e solues de hardware.
Este livro oferece uma vantagem estratgica no ensino dos novos e importantes tpicos das linguagens
de descrio de hardware aos iniciantes no campo digital. O VHDL , sem dvida, uma linguagem padro
nesse campo, mas tambm bastante complexo e apresenta uma curva de aprendizado ngreme. Alunos
iniciantes muitas vezes se sentem desencorajados pelas rigorosas exigncias de vrios tipos de dados e tm
dificuldade em entender os eventos disparados por borda em VHDL. Felizmente, a Altera oferece o AHDL,
linguagem menos exigente e que usa os mesmos conceitos do VHDL, mas muito mais fcil. Assim, os
professores podem optar por AHDL para ensinar aos iniciantes ou VHDL para as classes mais avanadas.
Esta edio apresenta mais de 40 exemplos em AHDL, mais de 40 exemplos em VHDL.
O mais novo software de sistema de desenvolvimento da Altera o Quartus II. Este livro no ensina
como usar uma plataforma especfica de hardware nem os detalhes de um software de sistema de desen-
volvimento. Procuramos mostrar o que essa ferramenta faz em vez de treinar o leitor para utiliz-la. De
qualquer modo, inclumos tutoriais (em ingls) no site do livro, que tornam mais fcil o aprendizado das
ferramentas de software.
Muitas opes de hardware de laboratrio esto disponveis para os leitores. A srie MAX7000 de CL-
PDs pode ser programada por uma simples interface paralela de porta printer ou usando o cabo de interface
usb-blaster da Altera/Terasic. Placas de desenvolvimento completas esto disponveis oferecendo os tipos
normais de chaves lgicas tipo entradas e sadas, botes, sinais de clock, LEDs e displays de sete segmentos.
Muitas placas tambm oferecem conectores padro para hardwares de computador prontamente disponveis,
como teclado numrico, mouse, monitor de vdeo VGA, porta COM, jaque in/out de udio, dois conectores
de faixa I/O para fins gerais de 40 pinos que permitem conexo com qualquer hardware perifrico digital.
A placa de desenvolvimento UP3 da Altera mostrada na Figura P.1. As placas Terasic DE0, DE1 e DE2

Tocci.indb 8 10/05/2011 18:14:43


Prefcio ix

(mostrada na Figura P.2) so recomendveis para instruo em laboratrios e encontram-se disponveis por
um preo razovel.
Nosso mtodo de HDL e PLDs d aos professores vrias opes:
1. possvel pular as partes sobre HDL sem prejuzo sequencial do texto.
2. O HDL pode ser ensinado como tpico separado, inicialmente pulando essas sees e depois vol-
tando s ltimas sees dos captulos 3, 4, 5, 6, 7 e 9 e, por fim, ao Captulo 10.
3. HDL e o uso de PLDs podem ser tratados medida que o curso se desenvolve captulo a captulo
e intercalados com aulas expositivas e prtica de laboratrio.

Entre todas as linguagens especficas de descrio de hardware, o VHDL o padro na rea e a lin-
guagem que mais ser usada pelos estudantes em sua vida profissional, embora achemos que uma ideia
ousada ensinar VHDL em um curso introdutrio. A natureza da sintaxe, as distines sutis entre os tipos de
objetos e os nveis mais altos de abstrao podem constituir obstculos para um iniciante. Por essa razo,
inclumos o AHDL da Altera como a linguagem introdutria recomendada. Inclumos tambm o VHDL
como linguagem recomendada para cursos introdutrios oferecidos a estudantes de nvel mais avanado.
No recomendamos o aprendizado de ambas as linguagens no mesmo curso. Sees do texto que cobrem
questes especficas de uma linguagem so designadas com uma barra na margem. O leitor pode se con-
centrar em apenas uma linguagem. Obviamente, tentamos atender aos diversos interesses do mercado, mas
acreditamos que escrevemos um livro passvel de ser usado em diversos cursos e que servir como excelente
referncia aps a graduao.

FIGURA P.1 Placa de desenvolvimento UP3 da Altera.

FIGURA P.2 Placa de desenvolvimento DE2 da Altera.

Tocci.indb 9 10/05/2011 18:14:44


x Sistemas digitais princpios e aplicaes

Organizao dos captulos


Poucos professores usam os captulos de um livro didtico na sequncia em que so apresentados. Este
livro foi escrito de modo que cada captulo fosse construdo a partir do material anterior; apesar disso, pos-
svel alterar a sequncia dos captulos, at certo ponto. A primeira parte do Captulo 6 (operaes aritmticas)
pode ser vista logo aps o Captulo 2 (sistemas de numerao), embora isso provoque um intervalo antes
dos circuitos aritmticos do Captulo 6. Grande parte do contedo do Captulo 8 (caractersticas dos CIs)
pode ser abordada anteriormente (por exemplo, depois do Captulo 4 ou 5) sem criar grandes problemas.
Este livro pode ser usado em curso de um ou dois perodos letivos. Em um perodo letivo, limites sobre
horas/aula disponveis podem exigir que alguns tpicos sejam omitidos. Obviamente, a escolha dos tpicos
a serem suprimidos depende de fatores como objetivo do curso ou programa e conhecimento prvio dos
estudantes. Sees em cada captulo que lidam com a anlise de defeitos, PLDs, HDLs ou aplicaes de
microcomputador podem ser deixadas para um curso avanado.

TIPOS DE PROBLEMAS Esta edio inclui seis categorias de problemas: bsicos (B), complicados (C),
anlise de defeitos (T, de troubleshooting), novos (N), projeto (D, de design) e HDL (H). Problemas aos quais
no foi atribuda letra so considerados de dificuldade intermediria, entre bsicos e complicados. Problemas
cujas respostas ou solues esto impressas no final do livro ou disponveis no Companion Website foram
marcados com um asterisco (Figura P.3).

FIGURA P.3As letras denotam categorias de problemas e os asteriscos indicam as solues correspondentes fornecidas no
final do livro.

GERENCIAMENTO DE PROJETOS E PROJETO DE SISTEMA Vrios exemplos reais foram includos


no Captulo 10 para descrever as tcnicas usadas para gerenciar projetos. Essas aplicaes so, em geral,
conhecidas da maioria dos alunos que estudam eletrnica, e o exemplo do relgio digital familiar a todos.
Muitos livros falam em projeto top-down, mas este livro explica os principais recursos e como usar as fer-
ramentas modernas para realiz-lo.

ARQUIVOS DE SIMULAO Esta edio inclui arquivos de simulao que podem ser carregados no
Electronics Workbench Multisim ( necessrio adquiri-lo antes). Os esquemas dos circuitos de muitas
das figuras ao longo do texto foram includos como arquivos de entrada para essa conhecida ferramenta de
simulao. Todos os arquivos demonstram, de alguma maneira, o funcionamento do circuito ou reforam
um conceito. Em muitos casos, instrumentos so anexados ao circuito e sequncias de entrada so aplicadas
para demonstrar os conceitos em uma das figuras do texto. Esses circuitos podem, ento, ser modificados
para expandir tpicos ou criar tarefas e tutoriais para os alunos. Todas as figuras no texto que possuem um
arquivo de simulao correspondente no site so identificadas pelo cone mostrado na Figura P.4.

Tocci.indb 10 10/05/2011 18:14:44


Prefcio xi

FIGURA P.4 O cone denota um arquivo de simulao correspondente no site.

Alteraes especficas
As principais alteraes no modo de abordar os assuntos esto relacionadas a seguir.
Captulo 1. Criar uma imagem na mente do leitor mais importante do que nunca hoje em dia.
Sistemas digitais modernos so complexos, mas podem ser usados para demonstrar conceitos funda-
mentais. Para mostrar ao leitor que os princpios no so novos e que os mtodos para implement-los
evoluram, o Captulo 1 explica os princpios digitais pela evoluo dos sistemas de telecomunica-
es. O simples telgrafo demonstra o uso de 1s e 0s para codificar informaes. O telefone usado
para demonstrar a representao analgica de uma voz. Representaes analgicas e digitais so
comparadas e contrastadas no contexto de um sistema. Por fim, mostrado que a nova terminologia
e os princpios fundamentais dos sistemas digitais esto combinados nos telefones celulares.
Captulo 2. Muitos problemas novos foram acrescentados como sub-partes de problemas a fim
de reforar conceitos e proporcionar aos professores uma flexibilidade na designao de tarefas.
Captulo 4. Introduziu programao PLD e o software de desenvolvimento foi atualizado e
incrementado.
Captulo 5. Mudanas incluem a entrada esquemtica Quartus II usando dispositivos de flip-flop de
biblioteca e de latch padro, assim como componentes de LPM de megafuno versteis. Exemplos
de simulao funcional foram acrescentados.
Captulo 6. Mais exemplos de entrada esquemtica Quartus II. A nfase sobre megafunes
fceis de usar. Discusses de somadores HDL foram simplificadas. Vrios problemas novos sobre
processos aritmticos foram acrescentados.
Captulo 7. Este captulo foi revisado para proporcionar um mtodo de captura esquemtica al-
ternativo para estudar contadores e registradores com megafunes Quartus II em vez de apenas
usar chips lgicos MSI padro. Mais figuras e exemplos foram acrescentados. Problemas foram
revisados para permitir uma seleo de curso do mtodo de entrada de projeto para esquematizao.
Captulo 8. Uma nova seo que revisa as caractersticas eltricas de um FPGA representativo foi
acrescentada.
Captulo 9. O uso de megafunes em Quartus para substituir o padro de funes de partes TTL
anterior introduzido para cada bloco funcional importante.
Captulo 10. Um exemplo novo importante de projeto de um controlador de forno de micro-ondas
apresentado. Ele decomposto em blocos de construo fundamentais apresentados nos captulos
anteriores, mostrando o papel de cada bloco e os sinais que os conectam. Isto refora a necessidade
de vrios nveis de hierarquia e demonstra as decises estratgicas ao longo do caminho. Os blocos
fundamentais so deixados para serem descritos/implementados pelo leitor como exerccios similares
aos exemplos oferecidos ao longo dos captulos anteriores.
Captulo 11. Mais exemplos de problemas e figuras foram acrescentados. A tcnica de ADC pipeli-
ned resumida. Exemplos de aplicaes de sistema para interfaceamento analgico so discutidos.
Captulo 12. As descries genricas de circuitos de memria so atualizadas para mostrar os si-
nais de controle mais comuns encontrados em CIs hoje em dia: habilitao de sada de tristate e de
escrita. Descries de ciclo de barramento de Leitura/Escrita foram atualizadas tambm. A memria
de flash foi atualizada e colocada para cobrir de maneira mais genrica os CIs de flash de hoje. Um
novo tpico apresentado distinguindo a tecnologia de flash NAND e a NOR: circuitos, aperfei-

Tocci.indb 11 10/05/2011 18:14:44


xii Sistemas digitais princpios e aplicaes

oamentos, vantagens e desvantagens. A RAM dinmica tambm est atualizada com descries
mais gerais de CIs tpicos usados. A memria magnetorresistente definida e explicada como uma
tecnologia de memria potencialmente importante para o futuro. A seo sobre memria tica est
incrementada, e uma nova seo sobre tecnologia de disco magntico foi acrescentada.
Captulo 13. Exemplos de dispositivos PLD foram atualizados para tecnologias mais novas. O
material introdutrio sobre chips GAL mais antigos foi reduzido.

Recursos conservados
Esta edio conserva todos os recursos que tornaram as edies anteriores to aceitas. Utilizamos
diagramas em bloco como mtodo para ensinar as operaes lgicas bsicas sem confundir o leitor com
os detalhes do funcionamento interno. Apenas as caractersticas eltricas mais bsicas dos CIs lgicos
so evitadas at que ele compreenda os princpios lgicos. No Captulo 8, o leitor entra em contato com o
funcionamento interno de um CI. A essa altura, ele interpreta as caractersticas de entrada e sada de blocos
lgicos e as encaixa de modo adequado no sistema como um todo.
O tratamento de cada novo tpico ou dispositivo segue, em geral, os seguintes passos: o princpio do
funcionamento apresentado; exemplos e aplicaes explicados detalhadamente tambm, muitas vezes
usando CIs de verdade; breves questes para reviso so formuladas ao final da seo e, por fim, h uma
lista de problemas no final do captulo. Esses problemas, que vo dos mais simples aos mais complexos,
do aos professores tarefas a atribuir aos estudantes. Esses problemas visam, frequentemente, a reforar o
contedo sem meramente repetir os princpios. Exigem que os estudantes demonstrem compreenso dos
princpios aplicando-os a diferentes situaes. Esse mtodo tambm ajuda os alunos a desenvolver confiana
e ampliar o conhecimento do material.
Os textos sobre PLDs e HDLs esto distribudos ao longo do livro, com exemplos que enfatizam
recursos-chave em cada aplicao. Esses tpicos so apresentados no final de cada captulo, o que torna fcil
relacionar cada um deles discusso geral anterior no captulo ou tratar da discusso geral separadamente
dos tpicos sobre PLD/HDL.
Uma extensa cobertura sobre a anlise de defeitos est distribuda entre os captulos 4 e 12 e inclui
a apresentao de princpios e tcnicas de anlise de defeitos, estudos de caso, 17 exemplos de anlise de
defeitos e 46 problemas reais de anlise de defeito. Quando complementado por exerccios prticos em
laboratrio, esse material promove o desenvolvimento das habilidades de anlise de defeitos.
Esta edio oferece mais de 220 exemplos resolvidos, mais de 660 perguntas de reviso e mais de 640
problemas/exerccios. Alguns so aplicaes que mostram como os dispositivos lgicos so usados em um
tpico sistema de microcomputador. As respostas para a maioria dos problemas so dadas aps o Glossrio,
que fornece definies concisas de todos os termos no texto destacados em negrito.
Um ndice de CIs tambm apresentado no final para ajudar os leitores a localizar facilmente textos
sobre CIs mencionados. Os esquemas das pginas finais do livro fornecem tabelas dos teoremas de lgebra
booleana mais utilizados, resumos de portas lgicas e tabelas-verdade de flip-flops para consulta rpida
quando se est resolvendo problemas ou trabalhando no laboratrio.

Agradecimentos
Agradecemos a todos aqueles que avaliaram a dcima edio e responderam a um extenso questionrio:

Kyung Bae, Universidade Liberty


Dr. Scott Grenquist, Instituto de Tecnologia Wentworth
Andy Huertaz, CNM Community College
Elias Kougianos, Universidade de North Texas
Vern Sproat, Stark State College of Technology
Tristan Tayag, Universidade Texas Christian
Emil Vazquez, Valencia Community College
Dr. Ece Yaprak, Universidade Wayne State

Tocci.indb 12 10/05/2011 18:14:44


prefcio xiii

Seus comentrios, crticas e sugestes foram levados atentamente em considerao e foram valiosos
para a determinao da forma final da dcima primeira edio.
Somos tambm muito gratos ao professor Frank Ambrosio, do Monroe Community College, por seu
costumeiro trabalho de alta qualidade nos ndices e no Manual de Recursos para o Professor (Instructors
Resource Manual); e aos professores Russ Aubrey e Gene Harding, da Universidade Purdue, pela reviso
tcnica de tpicos e muitas sugestes de melhorias. Apreciamos a cooperao da Altera Corporation por seu
apoio ao permitir o uso de seu pacote de software e dados de publicaes tcnicas.
Um projeto de escrita desta magnitude requer um apoio editorial consciencioso e profissional, e a
Prentice Hall se mostrou, mais uma vez, altura. Agradecemos ao pessoal da Prentice Hall e Sudip Sinha na
Aptara Corp. pela ajuda para tornar esta publicao um sucesso. Gostaramos de agradecer e reconhecer em
especial Lois Porter pelo timo trabalho realizado como nossa editora e revisora, muitas vezes nos ajudando
a identificar erros tcnicos alm de melhorar nossa escrita.
Finalmente, queremos que nossas esposas e filhos saibam o quanto apreciamos o seu apoio e sua com-
preenso. Esperamos eventualmente compens-los por todas as horas que passamos longe deles trabalhando
nesta reviso.

RONALD J. TOCCI
NEAL S.WIDMER
GREGORY L. MOSS

Site de apoio do livro

No CompanionWebsite deste livro (www.pearson.com.br/tocci), professores e estudantes


podem acessar materiais adicionais 24 horas por dia.

Para professores
Manual de recursos para o professor (Instructors Resource Manual). Este manual, em ingls,
contm solues para todos os problemas apresentados no final dos captulos deste livro.
Apresentaes em PowerPoint.
Arquivos de PowerPoint com as figuras do livro.
Esse material de uso exclusivo para professores e est protegido por senha. Para ter acesso a ele, os
professores que adotam o livro devem entrar em contato com seu representante Pearson ou enviar e-mail
para universitarios@pearson.com.
Para estudantes
Exerccios de mltipla escolha.
Quartus II Web Version. Software da Altera, verso para internet. Este o software mais novo de
sistema de desenvolvimento da Altera, que oferece recursos avanados e compatvel com novos
PLDs, como a famlia Cyclone de FPGAs, encontrada em muitas das mais recentes placas educativas.
Tutoriais (em ingls). Gregory Moss desenvolve tutoriais usados com sucesso h vrios anos para
ensinar alunos iniciantes a usar o software Quartus II da Altera. Esses tutoriais esto disponveis
em PDF. Com a ajuda deles, qualquer um aprende a modificar e testar os exemplos apresentados
neste livro, assim como desenvolver seus prprios projetos.
Circuitos mostrados no livro apresentados em Multisim. Os alunos podem optar por trabalhar
de forma interativa com aproximadamente cem circuitos para ampliar a compreenso dos conceitos
e preparar-se para as atividades de laboratrio. Os arquivos de circuito do Multisim so fornecidos
para o uso de qualquer um que possua esse software.
Material extra apresentando microprocessadores e microcontroladores (em ingls). Para
manter a flexibilidade de servir s necessidades de diversas escolas, uma introduo a esse t-
pico apresentada como ponte entre um curso de sistemas digitais e uma introduo ao curso de
microprocessadores/microcontroladores.

Tocci.indb 13 10/05/2011 18:14:45


Tocci.indb 14 10/05/2011 18:14:45
SUMRIO

Captulo 1 Conceitos Introdutrios 1


1.1 Introduo a 1s e 0s Digitais, 2
1.2 Representaes Numricas, 4
1.3 Sistemas Analgicos e Digitais, 6
1.4 Sistemas de Numerao Digital, 9
1.5 Representao de Quantidades Binrias, 12
1.6 Circuitos Digitais/Circuitos Lgicos, 14
1.7 Transmisses Paralela e Serial, 15
1.8 Memria, 17
1.9 Computadores Digitais, 17

Captulo 2 Sistemas de Numerao e Cdigos 23


2.1 Converses de Binrio para Decimal, 24
2.2 Converses de Decimal para Binrio, 25
2.3 Sistema de Numerao Hexadecimal, 27
2.4 Cdigo BCD, 31
2.5 Cdigo Gray, 33
2.6 Relaes entre as Representaes Numricas, 34
2.7 Bytes, Nibbles e Palavras, 35
2.8 Cdigos Alfanumricos, 36
2.9 Deteco de Erros pelo Mtodo de Paridade, 38
2.10 Aplicaes, 40

Captulo 3 Descrevendo Circuitos Lgicos 48


3.1 Constantes e Variveis Booleanas, 49

Tocci.indb 15 10/05/2011 18:14:45


xvi Sistemas digitais princpios e aplicaes

3.2 Tabelas-Verdade, 50
3.3 Operaes OR (OU) com Porta OR, 51
3.4 Operao AND (E) com Porta AND, 54
3.5 Operao NOT (No) ou Inverso, 57
3.6 Descrevendo Circuitos Lgicos Algebricamente, 58
3.7 Avaliando as Sadas dos Circuitos Lgicos, 60
3.8 Implementando Circuitos a Partir de Expresses Booleanas, 62
3.9 Portas NOR e Portas NAND, 64
3.10 Teoremas Booleanos, 67
3.11 Teoremas de DeMorgan, 70
3.12 Universalidade das Portas NAND e NOR, 72
3.13 Simbologia Alternativa para Portas Lgicas, 75
3.14 Que Simbologia de Porta Lgica Usar, 78
3.15 Atraso de Propagao, 82
3.16 Resumo dos Mtodos para Descrever Circuitos Lgicos, 83
3.17 Linguagens de Descrio versus Linguagens de Programao, 85
3.18 Implementando Circuitos Lgicos em PLDs, 87
3.19 Formato e Sintaxe do HDL, 88
3.20 Sinais Intermedirios, 90

Captulo 4 Circuitos Lgicos Combinacionais 100


4.1 Forma de Soma-de-Produtos, 101
4.2 Simplificao de Circuitos Lgicos, 102
4.3 Simplificao Algbrica, 102
4.4 Projetando Circuitos Lgicos Combinacionais, 106
4.5 Mtodo do Mapa de Karnaugh, 112
4.6 Circuitos Exclusive-OR e Exclusive-NOR, 121
4.7 Circuitos Gerador e Verificador de Paridade, 126
4.8 Circuitos para Habilitar/Desabilitar, 127
4.9 Caractersticas Bsicas de CIs Digitais, 129
4.10 Anlise de Defeitos em Sistemas Digitais, 135
4.11 Falhas Internas dos CIs Digitais, 136
4.12 Falhas Externas, 139
4.13 Estudo de um Caso de Anlise de Defeito, 141
4.14 Dispositivos Lgicos Programveis, 143
4.15 Representando Dados em HDL, 148
4.16 Tabelas-Verdade Usando HDL, 152
4.17 Estruturas de Controle de Deciso em HDL, 154

Captulo 5 Flip-Flops e Dispositivos Correlatos 174


5.1 Latch com Portas NAND, 176
5.2 Latch com Portas NOR, 181
5.3 Estudos de Caso na Anlise de Defeitos, 183
5.4 Pulsos Digitais, 184
5.5 Sinais de Clock e Flip-Flops com Clock, 185

Tocci.indb 16 10/05/2011 18:14:45


Sumrio xvii

5.6 Flip-Flop S-R com Clock, 187


5.7 Flip-Flop J-K com Clock, 190
5.8 Flip-Flop D com Clock, 192
5.9 Latch D (Latch Transparente), 194
5.10 Entradas Assncronas, 196
5.11 Consideraes sobre Temporizao em Flip-Flops, 198
5.12 Problemas Potenciais de Temporizao em Circuitos com FFs, 201
5.13 Aplicaes com Flip-Flops, 202
5.14 Sincronizao de Flip-Flops, 202
5.15 Detectando uma Sequncia de Entrada, 204
5.16 Armazenamento e Transferncia de Dados, 204
5.17 Transferncia Serial de Dados: Registradores de Deslocamento, 206
5.18 Diviso de Frequncia e Contagem, 209
5.19 Aplicao em Microcomputador, 212
5.20 Dispositivos Schmitt-trigger, 213
5.21 Multivibrador Monoestvel, 215
5.22 Circuitos Geradores de Clock, 217
5.23 Anlise de Defeitos em Circuitos com Flip-Flop, 220
5.24 Circuitos Sequenciais em PLDs Usando Entrada Esquemtica, 224
5.25 Circuitos Sequenciais Usando HDL, 227
5.26 Dispositivos Disparados por Borda, 231
5.27 Circuitos com Componentes Mltiplos em HDL, 235

Captulo 6 Aritmtica Digital: Operaes e Circuitos 252


6.1 Adio e Subtrao Binrias, 253
6.2 Representao de Nmeros com Sinal, 254
6.3 Adio no Sistema de Complemento de 2, 260
6.4 Subtrao no Sistema de Complemento de 2, 261
6.5 Multiplicao de Nmeros Binrios, 263
6.6 Diviso Binria, 264
6.7 Adio BCD, 264
6.8 Aritmtica Hexadecimal, 266
6.9 Circuitos Aritmticos, 269
6.10 Somador Binrio Paralelo, 270
6.11 Projeto de um Somador Completo, 271
6.12 Somador Paralelo Completo com Registradores, 273
6.13 Propagao do Carry, 275
6.14 Somador Paralelo em Circuito Integrado, 276
6.15 Sistema de Complemento de 2, 277
6.16 Circuito Integrado ALU, 280
6.17 Estudo de Caso na Anlise de Defeitos, 284
6.18 Usando Funes da Biblioteca Altera, 285
6.19 Operaes Lgicas em Vetores de Bits com HDLs, 292
6.20 Somadores em HDL, 293
6.21 Expandindo a Capacidade em Bits de um Circuito, 295

Tocci.indb 17 10/05/2011 18:14:45


xviii Sistemas digitais princpios e aplicaes

Captulo 7 Contadores e Registradores 305


7.1 Contadores Assncronos, 306
7.2 Atraso de Propagao em Contadores Assncronos, 309
7.3 Contadores Sncronos (Paralelos), 311
7.4 Contadores de Mdulo < 2N, 313
7.5 Contadores Sncronos Decrescentes e Crescentes/Decrescentes, 319
7.6 Contadores com Carga Paralela, 321
7.7 Circuitos Integrados de Contadores Sncronos, 322
7.8 Decodificando um Contador, 331
7.9 Analisando Contadores Sncronos, 335
7.10 Projeto de Contadores Sncronos, 338
7.11 Funes de Biblioteca Altera para Contadores, 345
7.12 Contadores Bsicos Usando HDL, 349
7.13 Conectando Mdulos em HDL, 359
7.14 Mquinas de Estado, 367
7.15 Circuitos Integrados de Registradores, 377
7.16 CIs de Registradores, 379
7.17 Contadores com Registradores de Deslocamento, 385
7.18 Anlise de Defeitos, 389
7.19 Registradores de Megafuno, 392
7.20 Registradores em HDL, 395
7.21 Contadores em Anel em HDL, 401
7.22 Monoestveis em HDL, 403

Captulo 8 Famlias Lgicas e Circuitos Integrados 426


8.1 Terminologia de CIs Digitais, 427
8.2 A Famlia Lgica TTL, 435
8.3 Especificaes tcnicas (data sheets) TTL, 439
8.4 Caractersticas da Srie TTL, 442
8.5 Fan-Out e Acionamento de Carga para TTL, 445
8.6 Outras Caractersticas TTL, 449
8.7 Tecnologia MOS, 452
8.8 Lgica MOS Complementar, 455
8.9 Caractersticas da Srie CMOS, 457
8.10 Tecnologia de Baixa Tenso, 462
8.11 Sadas de Coletor Aberto e de Dreno Aberto, 464
8.12 Sadas Lgicas Tristate (Trs Estados), 469
8.13 Interface Lgica de Barramento de Alta Velocidade, 472
8.14 Famlia de CIs Digitais ECL, 473
8.15 Porta de Transmisso CMOS (Chave Bilateral), 476
8.16 Interfaceamento de CIs, 478
8.17 Interfaceamento com Tenso Mista, 482
8.18 Comparadores de Tenso, 483
8.19 Anlise de Defeitos, 485
8.20 Caractersticas de um FPGA, 486

Tocci.indb 18 10/05/2011 18:14:45


Sumrio xix

Captulo 9 Circuitos Lgicos MSI 501


9.1 Decodificadores, 502
9.2 Decodificadores/Drivers BCD para 7 Segmentos, 508
9.3 Displays de Cristal Lquido, 510
9.4 Codificadores, 513
9.5 Anlise de Defeitos, 518
9.6 Multiplexadores (Seletores de Dados), 520
9.7 Aplicaes de Multiplexadores, 525
9.8 Demultiplexadores (Distribuidores de Dados), 530
9.9 Mais Anlise de Defeitos, 536
9.10 Comparador de Magnitude, 538
9.11 Conversores de Cdigo, 541
9.12 Barramento de Dados, 545
9.13 O Registrador Tristate 74ALS173/HC173, 546
9.14 Operao de Barramento de Dados, 548
9.15 Decodificadores Usando HDL, 555
9.16 Decodificador/Driver HDL para 7 Segmentos, 557
9.17 Codificadores Usando HDL, 560
9.18 Multiplexadores e Demultiplexadores em HDL, 563
9.19 Comparadores de Magnitude em HDL, 566
9.20 Conversores de Cdigo em HDL, 568

Captulo 10 Projetos de Sistema Digital Usando HDL 585


10.1 Gerenciamento de Pequenos Projetos, 586
10.2 Projeto de Acionador de Motor de Passo, 587
10.3 Projeto de Codificador para Teclado Numrico, 594
10.4 Projeto de Relgio Digital, 600
10.5 Projeto de Forno de Micro-ondas, 615
10.6 Projeto de Frequencmetro, 621

Captulo 11 Interface com o Mundo Analgico 628


11.1 Quantidade Digital versus Quantidade Analgica: Reviso, 629
11.2 Converso Digital-Analgica, 630
11.3 Circuitos Conversores D/A, 636
11.4 Especificaes de DACs, 640
11.5 Um Circuito Integrado DAC, 642
11.6 Aplicaes de DACs, 642
11.7 Anlise de Defeitos em DACs, 644
11.8 Converso Analgico-Digital, 645
11.9 ADC de Rampa Digital, 646
11.10 Aquisio de Dados, 649
11.11 ADC de Aproximaes Sucessivas, 652
11.12 ADCs Flash, 659
11.13 Outros Mtodos de Converso A/D, 661
11.14 Arquiteturas Tpicas para Aplicaes de ADCs, 665

Tocci.indb 19 10/05/2011 18:14:45


xx Sistemas digitais princpios e aplicaes

11.15 Circuitos S/H, 665


11.16 Multiplexao, 666
11.17 Processamento Digital de Sinais (DSP), 667
11.18 Aplicaes de Interfaceamento Analgico, 670

Captulo 12 Dispositivos de Memria 683


12.1 Terminologia de Memrias, 685
12.2 Princpios de Operao da Memria, 687
12.3 Conexes CPUMemria, 690
12.4 Memria Apenas de Leitura, 691
12.5 Arquitetura da ROM, 693
12.6 Temporizao da ROM, 695
12.7 Tipos de ROMs, 695
12.8 Memria Flash, 702
12.9 Aplicaes das ROMs, 706
12.10 RAM Semicondutora, 708
12.11 Arquitetura da RAM, 708
12.12 RAM Esttica (SRAM), 710
12.13 RAM Dinmica (DRAM), 714
12.14 Estrutura e Operao da RAM Dinmica, 715
12.15 Ciclos de Leitura/Escrita da RAM Dinmica, 719
12.16 Refresh da DRAM, 720
12.17 Tecnologia da DRAM, 722
12.18 Outras Tecnologias de Memria, 723
12.19 Expanso do Tamanho da Palavra e da Capacidade, 725
12.20 Funes Especiais da Memria, 732
12.21 Anlise de Defeitos em Sistemas com RAM, 734
12.22 Teste de ROM, 738

Captulo 13 Arquiteturas de Dispositivos Lgicos Programveis 750


13.1 rvore das Famlias de Sistemas Digitais, 751
13.2 Fundamentos dos Circuitos de PLDs, 755
13.3 Arquiteturas de PLDs, 757
13.4 A Famlia MAX7000S da Altera, 761
13.5 A Famlia MAX II da Altera, 764
13.6 A Famlia Cyclone da Altera, 768

Glossrio772

Respostas para os Problemas Selecionados 786

ndice de CIs 794

ndice Remissivo 798

Tocci.indb 20 10/05/2011 18:14:45


C A P T U L O 1

C O N C E I TO S I N T R O D U T R I O S

CONTEDO
1.1 Introduo a 1s e 0s digitais 1.6 Circuitos digitais/circuitos lgicos
1.2 Representaes numricas 1.7 Transmisses paralela e serial
1.3 Sistemas analgicos e digitais 1.8 Memria
1.4 Sistemas de numerao digital 1.9 Computadores digitais
1.5 Representao de quantidades binrias

OBJETIVOS
Aps estudar este captulo, voc ser capaz de:
Fazer distino entre representaes digitais e anal- Converter um nmero binrio em seu equivalente
gicas. decimal.
Descrever como a informao pode ser representada Contar pelo sistema de numerao binrio.
usando apenas dois estados (1s e 0s). Identificar sinais digitais tpicos.
Citar as vantagens e as desvantagens na comparao Identificar um diagrama de tempo.
entre tcnicas digitais e analgicas. Determinar as diferenas entre as transmisses paralela
Compreender a necessidade do uso de conversores e serial.
analgico-digital (analog-to-digital converters Descrever a propriedade de memria.
ADCs) e digital-analgico (digital-to-analog conver- Descrever as principais partes de um computador di-
ters DACs). gital e entender suas funes.
Reconhecer as caractersticas bsicas do sistema de Fazer distino entre microcomputadores, micropro-
numerao binrio. cessadores e microcontroladores.

INTRODUO
Hoje em dia, o termo digital tornou-se parte do nosso vocabulrio dirio devido ao modo intenso pelo qual os cir-
cuitos digitais e as tcnicas digitais passaram a ser utilizados em quase todas as reas: computadores, automao, robs,
tecnologia e cincia mdica, transportes, telecomunicaes, entretenimento, explorao espacial, e assim por diante. Voc
est a ponto de iniciar uma fascinante viagem educacional, na qual descobrir os princpios, os conceitos e as operaes
fundamentais comuns aos sistemas digitais, desde uma simples chave liga/desliga (on/off) at o mais complexo computador.

Tocci.indb 1 10/05/2011 18:14:45


2 Sistemas digitais princpios e aplicaes

Introduzimos os conceitos subjacentes por meio de um aparelho que se tornou familiar a quase todas as pessoas: o
telefone celular aparelho feito de muitos dos blocos constitutivos fundamentais comuns a todos os sistemas digitais. A fim
de analisar a complexidade de um telefone celular, vamos primeiramente discutir a evoluo da tecnologia de telecomuni-
caes. Sua familiaridade com os sistemas de comunicao passados e presentes vai lhe ajudar a compreender o papel de
cada bloco constitutivo, a aprender os termos que definem cada um deles, a natureza dos sinais que os conectam, e vai lhe
preparar para expandir seus horizontes ao ver como tais blocos podem ser usados em outros sistemas. Termos importantes
para estudar os sistemas digitais so listados no fim de cada captulo, com definies completas contidas no glossrio.

1.1 INTRODUO A 1s E 0s DIGITAIS


Parece apropriado comear um texto chamado Sistemas digitais considerando um dos maiores sistemas eletrnicos no
mundo: o sistema de telecomunicaes mundial. Hoje em dia, uma parte muito importante deste sistema cai na categoria
de sistemas digitais. Incrivelmente, tudo comeou como um sistema digital simples, que usava apenas dois estados para
representar informao. Este conceito fundamental e torna-se mais fcil de ser compreendido ao se estudar primeiro a
tecnologia inicial.
O sistema do telgrafo, mostrado na Figura 1.1, foi um sistema eletromecnico simples que revolucionou a comunica-
o. Consistia de uma bateria, uma chave (uma chave de contato momentneo, normalmente aberta), um cabo de telgrafo
longo e, na outra extremidade, uma matraca eletromagntica. Quando o telegrafista pressionava a chave, ela completava
o circuito ao conectar o terminal de bateria positivo ao cabo. O terminal de bateria negativo era conectado a uma haste
enterrada no cho. A corrente flua pelo cabo do telgrafo at a bobina eletromagntica na estao receptora e, ento, de
volta a uma haste enterrada no cho. A corrente eltrica fluindo pela bobina fazia que um campo magntico atrasse uma
placa de metal que produzia um estalido. A placa ficava em tal posio at que a chave fosse solta (interrompendo o
circuito) e uma mola retornasse a placa posio original, produzindo um estalido diferente. Observe os dois estados do
sistema: chave e matraca para baixo; chave e matraca para cima.
O sistema de telgrafo usava dois smbolos distintos para transmitir qualquer palavra ou nmero: pulsos eltricos
curtos e longos, que representam os pontos e traos do cdigo Morse. Como veremos, isto descreve uma representao
digital da informao. Como se parecia a informao? A Figura 1.2 mostra um grfico dos pulsos de tenso no cabo do
telgrafo, enquanto o telegrafista pressiona e solta a chave (o fluxo da corrente poderia ser representado em grfico e teria
a mesma forma de onda que a tenso). Observe a natureza dos pulsos. O sinal eltrico est ligado ou desligado em todos
os momentos. Isso est relacionado com os sistemas digitais modernos que usam sinais eltricos para representar 1s e 0s.
A informao codificada na amplitude (durao de tempo) de cada pulso e na sequncia de pulsos. Formas de onda de
pulso como essa so amplamente usadas para descrever a atividade em sistemas digitais. J que o eixo x o tempo, estes
grficos so chamados diagramas de tempos. Um diagrama de tempos mostra em qual estado (1 ou 0) o sistema est em
qualquer momento e tambm mostra o tempo exato em que uma mudana de estado ocorre.

Chave
Cabo do telgrafo
Bobina
da matraca
Bateria

FIGURA 1.1 Sistema do telgrafo.

Tocci.indb 2 10/05/2011 18:14:46


Captulo 1 Conceitos introdutrios 3

Trao Ponto

Tenso da bateria
(chave pressionada)

Cho
(chave solta) Tempo

FIGURA 1.2 Diagrama de tempos de uma linha de telgrafo.

Diagramas de tempos so usados para descrever a operao detalhada de um sistema digital. As transies entre o
nvel de baixa tenso (quando a chave solta) e o de alta tenso (quando a chave pressionada) neste diagrama de tempos
so traadas como linhas verticais bem definidas. Certamente, em um sistema telegrfico primitivo, as formas de onda
no eram to perfeitas por causa de fatores como centelhamento de contato, cabos longos e efeitos naturais das bobinas
eletromagnticas. Na realidade, mesmo em sistemas digitais modernos, as transies no so verdadeiramente instantneas
(linhas verticais). Em muitas situaes, entretanto, os tempos de transio so to curtos comparados aos tempos entre
transies que possvel mostr-los no diagrama como linhas verticais. Encontraremos, mais tarde, situaes em que ser
necessrio mostrar as transies com mais preciso em uma escala de tempo ampliada.
Diagramas de tempos so bastante usados para mostrar como sistemas digitais mudam e, especialmente, para mos-
trar a relao entre dois ou mais sinais digitais no mesmo circuito ou sistema. Ao exibirmos um ou mais sinais digitais
usando instrumentos de teste, como o osciloscpio mostrado na Figura 1.3, comparamos os sinais reais com a operao
esperada do sistema. Um analisador lgico outro instrumento capaz de exibir e analisar sinais digitais simultneos sob a
formade um diagrama de tempos. O domnio desses instrumentos parte importante dos procedimentos de teste e anlise
de defeitos usados em sistemas digitais.

FIGURA 1.3 Osciloscpio exibindo um diagrama de tempos de 4 traos.

Questes para reviso

1. Quantos estados fundamentais existem em um sistema digital?


2. Como chamamos um grfico que mostra mudanas entre dois estados (1s e 0s) em relao ao tempo?

1 Respostas s questes para reviso so encontradas no fim do captulo no qual elas ocorrem.

Tocci.indb 3 10/05/2011 18:14:47


4 Sistemas digitais princpios e aplicaes

1.2 REPRESENTAES NUMRICAS


Na cincia, na tecnologia, nos negcios e em muitos outros campos de trabalho, estamos constantemente tratando
com quantidades, que na maioria dos sistemas fsicos so medidas, monitoradas, guardadas, manipuladas aritmeticamente,
observadas ou utilizadas de alguma outra maneira. Quando manipulamos quantidades diversas, importante representar
seus valores de modo eficiente e preciso. Existem basicamente dois modos de representao dos valores das quantidades:
o analgico e o digital.

Representaes analgicas
Na representao analgica, uma quantidade representada por um indicador proporcional continuamente varivel.
Um exemplo disso o velocmetro de um automvel dos modelos clssicos dos anos 1960 e 1970, nos quais a deflexodo
ponteiro proporcional velocidade. A posio angular do ponteiro representa o valor da velocidade, e o movimento
do ponteiro segue as alteraes, aumento ou diminuio da velocidade do automvel. Nos carros mais antigos, um cabo
flexvel mecnico conectava a transmisso ao velocmetro no painel. interessante notar que, nos carros mais modernos,
h preferncia pela representao analgica, ainda que a velocidade agora seja medida digitalmente.
Antes da revoluo digital, os termmetros utilizavam representao analgica para medir a temperatura, e ainda h
muitos desse tipo hoje em dia. O termmetro de mercrio utiliza uma coluna cuja altura varia conforme a temperatura
do ambiente. Esses instrumentos esto sendo retirados do mercado devido a preocupaes ambientais, mas, apesar disso,
so um excelente exemplo de representao analgica. Outro exemplo o termmetro externo, no qual o ponteiro gira ao
redor de um mostrador medida que uma mola de metal se expande e contrai com as variaes de temperatura. A posio
do ponteiro proporcional temperatura. Independentemente de quo pequena a mudana, h variao proporcional
na indicao.
Nesses dois exemplos, as quantidades fsicas (velocidade e temperatura) esto sendo associadas a um indicador por
meios puramente mecnicos. Nos sistemas analgicos eltricos, a quantidade fsica medida ou processada convertida
em uma tenso ou corrente proporcional (sinal eltrico). Essa tenso ou corrente ento usada pelo sistema para exibio,
processamento ou controle.
O som um exemplo de quantidade fsica que pode ser representada por um sinal analgico eltrico. Em 1875, Ale-
xander Graham Bell descobriu um meio para transformar sua voz em um sinal eltrico continuamente varivel, envi-la por
um cabo e transform-la outra vez em energia sonora na outra extremidade. Hoje em dia, o aparelho que converte a energia
do som em um sinal de tenso analgico conhecido como microfone. A Figura 1.4 mostra a aparncia do sinal de voz
analgico. A informao est contida nos tons e inflexes deste sinal de voz que muda permanentemente, e est codificada
pela linguagem falada do interlocutor. Tons so medidos pela frequncia ( f ), que mostra quantos ciclos de onda acontecem
em uma determinada quantidade de tempo (ciclos por segundo). O eixo horizontal (tempo) d uma indicao do tempo
de cada ciclo, conhecido como o perodo (T) da onda (segundos por ciclo). A altura do som medida pela amplitude da
onda em unidades especificadas no eixo vertical (por exemplo, volts). Mudanas na amplitude representam inflexo ou
nfase de determinados sons. Em outras palavras, amplitudes mais altas resultam em sons mais altos e amplitudes mais
baixas resultam em sons mais baixos.
No importa como sejam representadas, quantidades analgicas tm uma importante caracterstica: podem variar
ao longo de uma faixa contnua de valores. A velocidade de um automvel pode ser representada por um valor qualquer
entre zero e, digamos, 160 km/h. De modo similar, a temperatura indicada por um termmetro analgico pode ter qualquer
valor de 29C a 49C, e o sinal de tenso analgico produzido por um microfone pode ter qualquer valor entre zero e
sua sada positiva ou negativa mxima.

Representaes digitais
Na representao digital, as quantidades so representadas no por indicadores continuamente variveis, mas por
smbolos chamados dgitos. Como exemplo, considere um termmetro digital interno/externo. Ele tem quatro dgitos e pode
medir mudanas de 0,1C. A temperatura real aumenta gradualmente de, digamos, 22C para 22,1C, mas a representao
digital muda subitamente de 22C para 22,1C. Em outras palavras, esta representao digital de temperatura exterior
varia em incrementos discretos, se comparada representao analgica da temperatura fornecida por um termmetro de
coluna lquida ou um bimetlico, nos quais a leitura varia continuamente.
Assim, pode-se dizer que a maior diferena entre quantidades analgicas e digitais que:
analgica contnua
digital discreta (passo a passo)

Tocci.indb 4 10/05/2011 18:14:47


Captulo 1 Conceitos introdutrios 5

Amplitude em volts

Frequncia
mais alta
(mais ciclos
por segundo)

Frequncia
mais baixa
(menos ciclos
por segundo)

Tempo

FIGURA 1.4 Onda de udio.

Devido a essa natureza discreta das representaes digitais, no h ambiguidade quando se faz a leitura de uma
quantidade digital, ao passo que o valor de uma quantidade analgica apresenta, muitas vezes, uma interpretao livre. Na
prtica, quando medimos uma quantidade analgica, sempre arredondamos para um nvel conveniente de preciso. Em
outras palavras, digitalizamos a quantidade. A representao digital o resultado da atribuio de um nmero de preciso
limitada a uma quantidade continuamente varivel.
O mundo repleto de variveis fsicas que esto constantemente mudando. Se pudermos medi-las e represent-las
como quantidade digital, podemos ento registrar, manipular aritmeticamente ou, de alguma outra maneira, usar estas
quantidades para controlar coisas.

Exemplo 1.1

Dentre as quantidades a seguir, quais esto relacionadas a quantidades analgicas e quais esto relacionadas a quantidades
digitais?
(a) Subida usando uma escada.
(b) Subida usando uma rampa.
(c) Corrente que flui de uma tomada eltrica por meio um motor.
(d) Altura de uma criana medida por uma fita mtrica em diviso de 1 cm.
(e) Altura de uma criana colocando uma marca na parede.
(f) Volume de areia em um balde.
(g) Volume de gua em um balde.
Soluo
(a) Digital.
(b) Analgica.
(c) Analgica.
(d) Digital: medido at o meio centmetro mais prximo.
(e) Analgica.
(f) Digital: s pode aumentar/diminuir por gros discretos de areia.
(g) Analgica: (a no ser que voc queira chegar ao nvel da nanotecnologia!).

Tocci.indb 5 10/05/2011 18:14:47


6 Sistemas digitais princpios e aplicaes

Questes para reviso

1. Quais so os dois estados binrios de um sistema de telgrafo?


2. Como era codificada a informao de telgrafo usando esses dois estados?
3. Qual propriedade de uma forma de onda de udio afeta a intensidade do som?
4. Qual propriedade de uma forma de onda de udio afeta a altura de um tom?
5. Qual mtodo de representar quantidades envolve passos discretos?
6. Qual mtodo de representar quantidades continuamente varivel?

1.3 SISTEMAS ANALGICOS E DIGITAIS


Um sistema digital uma combinao de dispositivos projetados para manipular informao lgica ou quantidades
fsicas representadas no formato digital; ou seja, as quantidades podem assumir apenas valores discretos. Esses dispositivos
so, na maioria das vezes, eletrnicos, mas podem ser mecnicos, magnticos ou pneumticos. Alguns dos sistemas digitais
mais conhecidos so os computadores, as calculadoras, os equipamentos de udio e vdeo e o sistema de telecomunicaes.
Um sistema analgico contm dispositivos que manipulam quantidades fsicas representadas na forma analgica.
Em um sistema analgico, as quantidades fsicas podem variar ao longo de uma faixa contnua de valores. Por exemplo,
a amplitude do sinal de sada de um alto-falante em um receptor de rdio pode apresentar qualquer valor entre zero e o
seu limite mximo.

Sistemas mistos: digital e analgico


comum ver ambas as tcnicas, digital e analgica, empregadas dentro de um mesmo sistema. Desta maneira, o
sistema capaz de aproveitar as vantagens de cada uma. Nestes sistemas de sinal hbrido ou misto, um dos passos impor-
tantes da fase de projeto envolve determinar quais partes devem ser analgicas e quais devem ser digitais. A tendncia de
hoje em dia digitalizar os sinais o mais cedo possvel e convert-los de volta para analgicos o mais tarde possvel no
percurso de fluxo do sinal.
Para analisar sistemas que usam ambas as tcnicas, digital e analgica, vamos recapitular a evoluo do telefone.
Enquanto fazemos isto, descobriremos que h muitas maneiras de representar informaes em sistemas. Bell percebeu
que, para serem teis, os telefones precisavam funcionar em rede, como mostra a Figura 1.5. A soluo dele foi colocar
em cada telefone um gerador eltrico manivela. Quando algum virava a manivela, ela produzia uma tenso que fazia
que uma campainha tocasse em cada telefone conectado rede. Parar a manivela fazia com que as campainhas parassem
de tocar. Cada pessoa na rede recebia um cdigo nico de toques longos e curtos (como pulsos digitais). A parte que rea-
lizava a ligao codificava a identificao de uma pessoa pela maneira como ela movia a manivela do telefone. A parte
que recebia a ligao decodificava mentalmente os padres dos toques da campainha, para saber quando completar a
conexo tirando o fone/receptor do gancho. A sinalizao (toques) usava a representao digital, mas a comunicao de
voz era puramente analgica.
O telefone de disco veio logo depois e usava uma srie de pulsos mais sofisticada, que representava os dez dgitos
do sistema de numerao decimal. Para discar um nmero, a pessoa colocava o dedo em um buraco numerado, girava o
disco at o brao fixo, e soltava. Uma mola fazia o disco retornar posio original enquanto girava um eixo de came que
abria e fechava contatos de chave, produzindo pulsos. Uma sequncia de pulsos representava cada nmero no disco. Por
exemplo, nove pulsos representavam o nmero 9, dois pulsos representavam o nmero 2, e dez pulsos representavam o
nmero 0. Mecanismos de chave eletromecnicos interpretavam (decodificavam) os pulsos e faziam a conexo aos cabos
que iam at o telefone correto na rede e faziam com que ele tocasse at que algum o respondesse. Observe que nestes

FIGURA 1.5 Rede telefnica de linhas compartilhadas.

Tocci.indb 6 10/05/2011 18:14:48


Captulo 1 Conceitos introdutrios 7

sistemas um tipo diferente de cdigo digital foi usado. A codificao e decodificao eram feitas por mquinas eletrome-
cnicas para realizar automaticamente uma conexo de comunicao analgica.
Telefones de teclas foram os seguintes. Um sinal audvel complexo diferente, produzido pela combinao de duas
frequncias sinusoidais diversas, representava cada dgito de um nmero de telefone. Estes tons familiares de toque so
chamados de Frequncia mltipla de tom dual (DTMF dual tone, multiple frequency). Circuitos eletrnicos eram capazes
de reconhecer cada tom de toque, traduzi-los em uma sequncia de dgitos e realizar as conexes certas para fazer com
que um nico telefone tocasse. Observe que, neste exemplo, a informao de chave digital enviada usando sinais de tom
analgicos, mas cada tom formado por duas frequncias distintas. Representaes analgicas e digitais de informao
sempre funcionaram juntas na comunicao eletrnica.

O TELEFONE CELULAR Considere o telefone celular na Figura 1.6 ou, se tiver, pegue o seu aparelho e assombre-se
com o que ele faz. Talvez neste instante parea impossvel que voc possa compreender como opera um sistema to com-
plexo. Dentro de um telefone celular existem alguns circuitos eletrnicos sofisticados, a maioria dos quais so cobertos
pela proteo de metal do painel de circuito. Todos os sistemas complexos (por exemplo, laptops, HDTV e controles
automotivos) so feitos dos mesmos blocos constitutivos bsicos. Ao aprender os blocos constitutivos bsicos e usar a
tecnologia disponvel hoje, voc pode projetar e minituarizar sistemas digitais como o mostrado no exemplo.
Um telefone celular um sistema misto de sinais, o que significa que tem componentes analgicos e digitais e usa
ambos os tipos de sinais. O Captulo 11 vai explicar como isso feito. A voz captada por um microfone analgico e logo
convertida para sinal digital. O sinal de udio digital e muitas outras informaes digitais, como nmeros de telefones,
coordenadas de posio global, mensagens de texto etc., so combinados com uma onda de rdio de frequncia muito alta e
enviados para uma torre de telefonia celular. Seu telefone tambm recebe um sinal de rdio analgico, separa a informao
digital, converte o sinal de udio digital de volta para o analgico e o aplica ao alto-falante.
O teclado a entrada mais bvia para um telefone celular. Cada tecla pode estar em dois estados: pressionada ou no
pressionada. Um sistema com apenas dois estados um sistema binrio. Obviamente, cada tecla tem de ser representada de
uma maneira nica para o sistema digital a fim de que os valores (nmeros nas teclas) possam ser facilmente distinguidos
uns dos outros. O sistema de numerao binrio usa grupos de dgitos binrios ou bits (1s e 0s) para representar nmeros
decimais em um sistema digital. Comearemos nosso estudo de nmeros binrios mais adiante neste captulo. Como um
telefone celular traduz a presso de um boto especfico para um cdigo binrio nico? Voc vai aprender o processo de
codificao para teclados no Captulo 9.
O telefone na Figura 1.6 tambm tem uma chave que reconhece se o aparelho est aberto (1) ou fechado (0). Tal sensor
aberto/fechado tambm usado para determinar quando ligar a luz de fundo e quando terminar uma chamada. Sistemas

Microfone Teclado

Circuitos Cmera Botes Tela LCD Alto-falante


digitais CCD de volume
UP/DOWN

FIGURA 1.6 Telefone celular desmontado.

Tocci.indb 7 10/05/2011 18:14:49


8 Sistemas digitais princpios e aplicaes

digitais so cheios de sensores e chaves como essa, que fornecem informaes a respeito do que est acontecendo. Decises
lgicas so tomadas com base nessas informaes desses dados de entrada. Por exemplo, os botes de volume aumentam
ou reduzem o nvel do som se o telefone est aberto, mas a configurao do volume no afetada se voc pression-los
quando o telefone est fechado. A condio de um sensor afeta o papel de outros dados de entrada para o sistema. O ponto
que as aes resultantes do sistema digital dependem de combinaes dos dados de entrada, com cada dispositivo de
entrada estando em um de dois estados possveis. Voc vai aprender tudo a respeito da representao destas combinaes
lgicas e da utilizao de circuitos lgicos para tomar decises baseadas nos dados de entrada nos captulos 3 e 4.

Vantagens das tcnicas digitais


Um nmero cada vez maior de aplicaes em eletrnica, assim como em muitas outras tecnologias, utiliza tcnicas
digitais para implementar funes que eram realizadas por mtodos analgicos. Os principais motivos da migrao para
a tecnologia digital so:
1. Os sistemas digitais so geralmente mais fceis de ser projetados. Isso porque os circuitos utilizados so circuitos
de chaveamento, nos quais no importam os valores exatos de tenso ou corrente, mas apenas a faixa ALTA
(HIGH) ou BAIXA (LOW) na qual eles se encontram.
2. O armazenamento de informao mais fcil. Esta uma habilidade de dispositivos e circuitos especiais, que
podem guardar (latch) informao digital e mant-la pelo tempo necessrio, e de tcnicas de armazenamento de
massa (grande quantidade de informao), que podem armazenar bilhes de bits de informao em um espao
fsico relativamente pequeno. A capacidade de armazenamento de sistemas analgicos , ao contrrio da dos
digitais, extremamente limitada.
3. mais fcil manter a preciso e exatido em todo o sistema. Uma vez que um sinal digitalizado, a informao
que ele contm no se deteriora ao ser processada. Nos sistemas analgicos, os valores de tenso e corrente ten-
dem a ser distorcidos pelos efeitos da variao na temperatura, na umidade e na tolerncia dos componentes nos
circuitos que processam o sinal.
4. As operaes podem ser programadas. bastante fcil projetar um sistema digital cuja operao controlada
por um conjunto de instrues armazenadas denominado programa. Os sistemas analgicos tambm podem ser
programados, porm, a variedade e a complexidade das operaes disponibilizadas so bastante limitadas.
5. Os circuitos digitais so menos afetados por rudo. Flutuaes esprias na tenso (rudo) no so to crticas em
sistemas digitais porque o valor exato da tenso no importante, desde que o rudo no tenha amplitude suficiente
que dificulte a distino entre um nvel ALTO (H) e um nvel BAIXO (L).
6. CIs (chips) digitais podem ser fabricados com mais dispositivos internos. verdade que os circuitos analgicos
tambm foram beneficiados com o grande desenvolvimento da tecnologia de CIs, mas so relativamente comple-
xos e utilizam dispositivos que no podem ser economicamente integrados (capacitores de alto valor, resistores
de preciso, indutores e transformadores), evitando, assim, que os sistemas analgicos alcancem igualmente um
alto grau de integrao.

Limitaes das tcnicas digitais


H poucas desvantagens quando se usam tcnicas digitais. Os dois principais problemas so:
O mundo real analgico.
Processar sinais digitais leva tempo.
A maioria das grandezas fsicas de natureza analgica e muitas vezes so entradas e sadas monitoradas, operadas
(alteradas) e controladas por um sistema. Como exemplos, temos a temperatura, a presso, a posio, a velocidade, o
nvel de um lquido e a vazo, entre outros. Estamos habituados a expressar essas grandezas digitalmente, como quando
dizemos que a temperatura 18C (17,8C quando desejarmos mais preciso), mas o que estamos realmente fazendo
uma aproximao digital para uma grandeza analgica.
Para obter vantagens das tcnicas digitais quando lidamos com entradas e sadas analgicas, quatro passos devem
ser seguidos:
1. Converter a varivel fsica em um sinal eltrico (analgico).
2. Converter as entradas eltricas (analgicas) do mundo real no formato digital.
3. Realizar o processamento (operao) da informao digital.
4. Converter as sadas digitais de volta ao formato analgico (o formato do mundo real).
Poderia ser escrito um livro inteiro s sobre o primeiro passo. H muitos tipos de dispositivos que convertem variveis
fsicas em sinais eltricos analgicos (sensores), usados para medir elementos do mundo real, analgico. Em um carro,

Tocci.indb 8 10/05/2011 18:14:49


Captulo 1 Conceitos introdutrios 9

por exemplo, h sensores para o nvel do combustvel (tanque da gasolina), temperatura (do ar e do motor), velocidade
(velocmetro), acelerao (sensor de desacelerao do airbag), presso (leo, coletor de ar) e consumo de combustvel.
Para ilustrar um tpico sistema que utiliza esse mtodo, a Figura 1.7 mostra um sistema de controle de temperatura. Um
usurio move botes para cima ou para baixo para fixar a temperatura desejada em incrementos de 0,1C (representao
digital). Um sensor de temperatura no ambiente aquecido converte a temperatura medida em uma tenso proporcional.
Essa tenso analgica convertida em uma quantidade digital por um conversor analgico-digital (ADC). Esse valor
ento comparado ao valor desejado e usado para determinar o valor digital do calor necessrio. O valor digital con-
vertido em uma quantidade analgica (tenso) por um conversor digital-analgico (DAC). Essa tenso aplicada a um
dispositivo de aquecimento, que produzir uma quantidade de calor proporcional tenso aplicada e afetar a temperatura
do ambiente controlado.

Entrada digital:
Sinal digital representando a energia
fixa a temperatura desejada
(tenso) fornecida ao aquecedor

+ Ambiente de temperatura
Converso controlada
Processador digital
digital/analgica

Sensor

Calor

Converso
analgico/digital
Sinal digital representando Sinal analgico representando
a temperatura real a temperatura real

FIGURA 1.7 Diagrama de um sistema de controle de temperatura de preciso que utiliza processamento digital.

Questes para reviso

1. Cite trs maneiras de uma informao ser codificada usando um sistema digital binrio.
2. O que era digital e o que era analgico nos primeiros sistemas telefnicos?
3. O que digital e o que analgico nos sistemas de telefones celulares modernos?
4. Quais so as vantagens das tcnicas digitais sobre as analgicas?
5. Qual a principal limitao ao uso de tcnicas digitais?

1.4 SISTEMAS DE NUMERAO DIGITAL


H muitos sistemas de numerao em uso na tecnologia digital. Os mais comuns so os sistemas decimal, binrio
e hexadecimal. Humanos operam usando nmeros decimais, sistemas digitais operam usando nmeros binrios, e o he-
xadecimal um sistema de numerao que torna mais fcil para humanos lidar com nmeros binrios. Os trs sistemas
de numerao so definidos e funcionam da mesmssima maneira. Vamos comear examinando o decimal. Por ser to
conhecido, raramente paramos para pensar sobre como este sistema de numerao realmente funciona. Examinar suas
caractersticas nos ajudar a entender melhor os outros sistemas.

Sistema decimal
O sistema decimal composto de 10 numerais ou smbolos. So eles: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9; usando esses smbolos
como dgitos de um nmero, podemos expressar qualquer quantidade. O sistema decimal, tambm chamado de sistema de
base 10 por ter dez dgitos, desenvolveu-se naturalmente; afinal, as pessoas possuem dez dedos. De fato, a palavra dgito
derivada da palavra dedo em latim.
O sistema decimal um sistema de valor posicional, no qual o valor de cada dgito depende de sua posio no nmero.
Por exemplo, considere o nmero decimal 453. Sabemos que o dgito 4 representa, na verdade, 4 centenas, o 5 representa 5
dezenas e o 3 representa 3 unidades. Em essncia, o dgito 4 o de maior peso entre os trs; ele denominado dgito mais

Tocci.indb 9 10/05/2011 18:14:49


10 Sistemas digitais princpios e aplicaes

significativo (most significant digit MSD). O dgito 3 o de menor peso, sendo denominado dgito menos significativo
(least significant digit LSD).
Considere outro exemplo: 27,35. Este nmero , na realidade, igual a 2 dezenas mais 7 unidades mais 3 dcimos
mais 5 centsimos, ou 2 10 + 7 1 + 3 0,1 + 5 0,01. A vrgula decimal usada para separar a parte inteira da parte
fracionria do nmero.
Sendo mais detalhista, as diversas posies relativas vrgula decimal tm pesos que podem ser expressos em potncias
de 10. Isso ilustrado na Figura 1.8, em que o nmero 2745,214 representado. A vrgula decimal separa as potncias de
10 com expoente positivo das potncias de 10 com expoente negativo. O nmero 2 745,214 , portanto, igual a
(2 10+3) + (7 10+2) + (4 101) + (5 100) + (2 101) + (1 102) + (4 103)
Em geral, qualquer nmero uma soma de produtos do valor de cada dgito pelo seu valor posicional (peso).

Valores posicionais 103 102 101 100 101 102 103


(pesos)

2 7 4 5 2 1 4

MSD Vrgula decimal LSD

FIGURA 1.8 Valores posicionais de um nmero decimal expresso como potncias de 10.

Contagem decimal
Quando contamos no sistema decimal, comeamos com 0 na posio das unidades e passamos, progressivamente,
pelos smbolos (dgitos) at chegarmos a 9. Ento, somamos 1 prxima posio de maior peso e recomeamos com 0 na
primeira posio (veja a Figura 1.9). Esse processo continua at atingir a contagem 99. Ento, somamos 1 terceira posio
e recomeamos com 0s (zeros) nas duas primeiras. O mesmo procedimento seguido at atingir a contagem que desejarmos.
importante notar que, na contagem decimal, a posio das unidades (LSD) varia de modo crescente a cada passo na
contagem, a posio das dezenas varia de modo crescente a cada 10 passos, a posio das centenas varia de modo crescente
a cada 100 passos e assim por diante.
Uma outra caracterstica do sistema decimal que, usando apenas duas posies decimais, 10 = 100, podemos contar
cem nmeros diferentes (0 a 99).2 Com trs posies decimais, podemos contar mil nmeros (0 a 999) e assim por diante.
Em geral, com N posies ou dgitos decimais, podemos contar 10N nmeros diferentes, comeando pelo zero e incluindo-o
na contagem. O maior nmero sempre ser 10N 1.

0 20 103
1 21
2 22
3 23
4 24
5 25
6 26
7 27
8 28
9 29
10 30
11
12 199
13 200
14
15
16 99
17 100
18 101 999
19 102 1000

FIGURA 1.9 Contagem decimal.

2 O zero contado como um nmero.

Tocci.indb 10 10/05/2011 18:14:49


Captulo 1 Conceitos introdutrios 11

Sistema binrio
Infelizmente, o sistema de numerao decimal no conveniente para ser implementado em sistemas digitais. Por
exemplo, muito difcil projetar um equipamento eletrnico para que ele opere com dez nveis diferentes de tenso (cada
um representando um caractere decimal, 0 a 9). Por outro lado, muito fcil projetar um circuito eletrnico simples e
preciso que opere com apenas dois nveis de tenso. Por esse motivo, quase todos os sistemas digitais usam o sistema de
numerao binrio (base 2) como sistema bsico de numerao para suas operaes. Outros sistemas de numerao so
seguidamente utilizados para interpretar ou representar quantidades binrias para a convenincia das pessoas que trabalham
com e usam sistemas digitais.
No sistema binrio, h apenas dois smbolos ou valores possveis para os dgitos: 0 e 1. Mesmo assim, tambm pode
ser usado para representar qualquer quantidade que possa ser representada em decimal ou em outro sistema de numerao.
Entretanto, comum que o sistema binrio use um nmero maior de dgitos para expressar determinado valor.
Tudo o que foi mencionado anteriormente sobre o sistema decimal igualmente aplicvel ao sistema binrio, que
tambm de valor posicional, em que cada dgito binrio tem um valor prprio, ou peso, expresso como uma potncia
de 2 (veja a Figura 1.10). Conforme mostrado na figura, as posies esquerda da vrgula binria (semelhante vrgula
decimal) so potncias de 2 com expoente positivo, e as posies direita so potncias de 2 com expoente negativo.
O nmero 1011,101 aparece representado na figura. Para encontrar seu equivalente no sistema decimal, basta somar os
produtos do valor de cada dgito (0 ou 1) pelo seu respectivo valor posicional (peso):
1011,1012 = (1 23) + (0 22) + (1 21) + (1 20) + (1 21) + (0 22) + (1 23)
= 8 + 0 + 2 + 1 + 0,5 + 0 + 0,125
= 11,62510
Na operao anterior, observe que foram usados subscritos (2 e 10) para indicar a base na qual o nmero em questo
expresso. Essa conveno usada para evitar confuso quando mais de um sistema de numerao est sendo utilizado.
No sistema binrio, o termo dgito binrio (binary digit) quase sempre abreviado com o uso do termo bit, que usaremos
deste ponto em diante. Assim, o nmero expresso na Figura 1.10 tem 4 bits esquerda da vrgula binria, representando
a parte inteira do nmero, e 3 bits direita da vrgula binria, representando a parte fracionria. O bit mais significativo
(most significant bit MSB) o da esquerda (o de maior peso), e o menos significativo (least significant bit LSB) o
da direita (o de menor peso). Esses bits esto indicados na Figura 1.10. Nesse caso, o MSB tem peso de 2, e o LSB, peso
de 2. Os pesos de cada dgito aumentam por um fator de 2 medida que a posio se desloca da direita para a esquerda.

1 1 1
Valores posicionais 8 4 2 1 2 4 8

23 22 21 20 21 22 23

1 0 1 1 1 0 1

MSB Vrgula binria LSB

FIGURA 1.10 Valores posicionais de um nmero binrio expresso como potncias de 2.

Contagem binria
Quando operamos com nmeros binrios, normalmente estamos restritos a um nmero especfico de bits. Essa res-
trio determinada pelo circuito usado para representar esses nmeros binrios. Vamos usar nmeros binrios de 4 bits
para ilustrar o mtodo de contagem binria.
A sequncia (mostrada na Figura 1.11) comea com todos os bits em 0; essa contagem denominada contagem zero.
Para cada contagem sucessiva, a posio de peso unitrio (20) alterna, ou seja, muda de um valor binrio para o outro.
Cada vez que o bit de peso unitrio muda de 1 para 0, a posio de peso 2 (2) alterna (muda de estado). Cada vez que
o bit de peso 2 muda de 1 para 0, o bit de peso 4 (2) alterna (muda de estado). Do mesmo modo, cada vez que o bit de
peso 4 passa de 1 para 0, o bit de peso 8 (2) alterna. Esse mesmo processo se repetir para os bits de ordem maior, caso
o nmero binrio tenha mais de 4 bits.
A sequncia de contagem binria tem uma caracterstica importante, mostrada na Figura 1.11. O bit de peso 1 (LSB)
muda de 0 para 1 ou de 1 para 0 a cada contagem. O segundo bit (posio de peso 2) permanece em 0 durante duas

Tocci.indb 11 10/05/2011 18:14:49


12 Sistemas digitais princpios e aplicaes

Pesos 23 = 8 2 2 = 4 2 1 = 2 2 0 = 1 Nmero decimal equivalente


0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 0 1 0 10
1 0 1 1 11
1 1 0 0 12
1 1 0 1 13
1 1 1 0 14
1 1 1 1 15

LSB

FIGURA 1.11 Sequncia de contagem binria.

contagens e, em seguida, permanece em 1 durante duas contagens, voltando para 0 durante duas contagens, e assim por
diante. O terceiro bit (posio de peso 4) se mantm em 0 durante quatro contagens, permanecendo em 1 durante quatro
contagens, e assim por diante. O quarto bit (posio de peso 8) permanece em 0 durante oito contagens e em 1 durante oito
contagens. Se desejssemos contar alm disso, acrescentaramos bits, e esse procedimento continuaria com a alternncia
de 0s (zeros) e 1s (uns) em grupos de 2N1. Por exemplo, usando a quinta posio binria, o quinto bit alternaria de 0 para 1
aps 16 contagens, permanecendo em 1 nas prximas 16 contagens, e assim por diante.
Como vimos no sistema decimal, tambm verdade para o sistema binrio que, usando N bits ou posies, podemos
contar 2N nmeros. Por exemplo, com 2 bits podemos contar 2 = 4 contagens (002 at 112); com 4 bits podemos contar
24= 16 contagens (00002 at 11112), e assim por diante. A ltima contagem ser sempre com os bits em 1, que igual a
2N1 no sistema decimal. Por exemplo, usando 4 bits, a ltima contagem 11112 = 24 1 = 1510.

Exemplo 1.2

Qual o maior nmero que pode ser representado usando 8 bits?


Soluo
2N 1 = 28 1 = 25510 = 111111112.

Essa foi uma breve introduo ao sistema de numerao binrio e sua relao com o sistema decimal. Dedicaremos
muito mais tempo a esses dois sistemas e a alguns outros sistemas no prximo captulo.

Questes para reviso

1. Qual o nmero decimal equivalente a 11010112?


2. Qual o nmero binrio seguinte a 101112 em uma sequncia de contagem?
3. Qual o valor do maior nmero decimal que pode ser representado usando 12 bits?

1.5 REPRESENTAO DE QUANTIDADES BINRIAS


Lembre-se de que um telefone celular digitalizava o sinal de voz analgico e na realidade transmitia a informao
como vrios 1s e 0s. Detalhes de como isto feito sero reservados para o Captulo 11, e examinaremos agora o conceito
de representar um sinal analgico como uma sequncia de nmeros digitais. Da seo anterior, sabemos que qualquer
quantidade pode ser representada por um nmero binrio, de maneira to fcil quanto pode ser por um nmero decimal.
Suponha que voc esteja realizando um experimento cientfico que exige registro das mudanas de temperatura em um

Tocci.indb 12 10/05/2011 18:14:50


Captulo 1 Conceitos introdutrios 13

Temperatura C
32
26
21
15
10
4
0
6
12
17 Hora do dia
6 7 8 9 10 11 12 13 14 15 16 17 18

FIGURA 1.12 Amostras de temperatura tomadas a cada hora. A linha indica sinal analgico.

longo perodo de tempo. Voc sabe que a temperatura do ar uma quantidade analgica: continuamente varivel. Entre-
tanto, tambm sabe que a temperatura se altera lentamente, de maneira que, em vez de tentar inserir constantemente a
temperatura, voc mede no fim de cada hora. O experimento est ocorrendo do incio da primavera at o fim do outono,
ento voc determina que a temperatura nunca ser abaixo de 0C nem acima de 52C. Em certo dia, voc registra os
dados como mostrado na Figura 1.12.
O sinal de temperatura analgico real mostrado na linha. Os dados que voc registrou so digitais porque voc
designou um nmero inteiro discreto para a quantidade a cada hora. A lista de nmeros agora o sinal digital. Os dados
podem ser armazenados, transmitidos e representados graficamente para mostrar uma aproximao do sinal analgico real.
Para armazen-los em um sistema digital, cada leitura de temperatura seria convertida para o valor equivalente binrio.
Agora, imagine o grfico de todo o experimento. A linha de tempo (eixo x) compreenderia vrios meses, e os pon-
tos de hora em hora estariam bem prximos. E, no incio da primavera, por exemplo, pode haver amplas variaes na
temperatura dentro de um nico dia. No grfico isso parece como mudanas de alta amplitude, alta frequncia. Durante o
vero, a temperatura pode no variar mais que dez graus por mais de uma semana. Isso parece como mudanas de baixa
amplitude, baixa frequncia. O grfico de temperatura pode ser incrivelmente parecido com a forma de onda analgica da
voz de uma pessoa em um cabo telefnico, que vimos anteriormente. A principal diferena a escala de tempo, porque
as mudanas de temperatura ocorrem a uma frequncia muito mais baixa que as ondas de som que suas cordas vocais
produzem. Os conceitos fundamentais so:
Sinais analgicos podem ser convertidos em digitais tomando medidas ou amostras do sinal variando continua-
mente em intervalos regulares.
O tempo apropriado entre amostras depende da razo de mudana mxima do sinal analgico.
As quantidades medidas so armazenadas como nmeros binrios.

Representaes eltricas de 1s e 0s
Anteriormente, identificamos uma vantagem dos sistemas digitais sobre os sistemas analgicos, o fato de que o valor
exato da tenso ou corrente no importante; a importncia a faixa em que estes valores caem. Em outras palavras,
sistemas digitais tm de simplesmente representar esses dois estados de maneira que circuitos possam reconhecer um 1
de um 0. Lembre-se do exemplo do telgrafo. Os 1s eram representados por uma tenso no cabo do telgrafo. Quanta
tenso era necessria para representar um 1? A resposta est contida na tecnologia da poca. A tenso da bateria tinha de
ser suficiente para assegurar que a corrente flusse por quilmetros de cabo e pela bobina eletromagntica da matraca para
faz-la estalar. A tenso no cabo diminua medida que as baterias descarregavam e variava dependendo da extremidade
do cabo em que fosse medida; representava um 1 enquanto ativasse a matraca.
Circuitos digitais eletrnicos passaram por muitas mudanas medida que a tecnologia avanou, mas os princpios
de representar 1s e 0s permanecem os mesmos. A Figura 1.13(a) exibe a representao tpica dos dois estados de um sinal
digital. Observe que uma faixa mais alta de tenses representa um 1 vlido e uma faixa mais baixa de tenses representa
um 0 vlido. Os termos ALTO e BAIXO sero seguidamente usados para descrever os dois estados de um sistema digital
em vez de 1 e 0, respectivamente. Entre essas duas faixas vlidas h uma faixa de tenses consideradas invlidas. Elas
no so nem 1s nem 0s. As faixas de tenso especficas so definidas para uma determinada tecnologia. Por exemplo,
para o telgrafo eram drasticamente diferentes daquelas usadas nos nossos telefones celulares. Na evoluo de sistemas
digitais, vrias tecnologias como chaves eletromecnicas (rels), tubos de vcuo, transistores bipolares e transistores

Tocci.indb 13 10/05/2011 18:14:50


14 Sistemas digitais princpios e aplicaes

Volts
5V

Binrio 1
1 1
4V

2V
No
Tenses invlidas usadas
0,8 V
Binrio 0 0 0
0V 0V t
t0 t1 t2 t3 t4 t5
(a) (b)

FIGURA 1.13 (a) Designaes de tenso tpicas em um sistema digital; (b) diagrama de tempos de sinal digital tpico.

MOSFET foram usados para implementar circuitos lgicos digitais: cada uma com a prpria definio caracterstica de
como representar um 1 e um 0.
Lembre-se da ideia de usar um grfico de tenso versus tempo para descrever informaes viajando pelo cabo do
telgrafo na Seo 1.1, o que chamamos diagrama de tempos. A Figura 1.13(b) representa um diagrama de tempos tpico
para as faixas de tenso definidas na parte (a). O eixo do tempo colocado em pontos especficos no tempo, t1, t2, ... t5.
Observe que o nvel de tenso ALTO entre t1 e t2 est em 4 V. Em sistemas digitais, o valor exato de uma tenso no im-
portante. Uma ALTA tenso de 3,7 V ou 4,3 V representaria precisamente a mesma informao. Da mesma maneira, uma
BAIXA tenso de 0,3 V representa a mesma informao que 0 V. Isto indica uma diferena significativa entre sistemas
analgicos e digitais. Em um sistema analgico, a tenso exata importante. Por exemplo, se a tenso analgica vinda de
um sensor proporcional temperatura, ento 3,7 V representaria um valor diferente de temperatura que 4,3 V. Em outras
palavras, a tenso traz informaes significativas no sistema analgico. Circuitos que podem preservar tenses exatas so
muito mais complicados que circuitos digitais que simplesmente precisam reconhecer uma tenso em uma de duas faixas.

Questes para reviso

1. Como um sinal analgico representado em um sistema digital?


2. Como os 1s e 0s so representados eletricamente?

1.6 CIRCUITOS DIGITAIS/CIRCUITOS LGICOS


Os circuitos digitais so projetados para produzir tenses de sada que se encontrem dentro das faixas de tenses
determinadas para os nveis 0 e 1, conforme definido na Figura 1.13, e para responder a tenses de entrada previsveis que
estejam dentro de faixas definidas para os nveis 0 e 1. Isso significa que um circuito digital responde da mesma maneira
para tenses de entrada que se encontrem dentro da faixa permitida para o nvel 0 e que no distingue tenses de entrada
que estejam dentro da faixa permitida para o nvel 1.
Para ilustrar, a Figura 1.14 representa um circuito digital tpico com uma entrada vi e uma sada vo. A resposta da sada
mostrada para duas formas de onda de entrada. Observe que a sada vo a mesma para os dois casos, porque as duas
formas de onda de entrada, embora diferentes nos valores exatos de tenso, so do mesmo nvel binrio.

Circuitos lgicos
O modo como um circuito digital responde a uma entrada denominado lgica do circuito. Cada tipo de circuito
digital obedece a um determinado conjunto de regras lgicas. Por essa razo, os circuitos digitais so tambm chamados
de circuitos lgicos. Usaremos os dois termos indistintamente ao longo do livro. No Captulo 3, veremos mais claramente
o que quer dizer lgica de circuito.
Estudaremos todos os tipos de circuitos lgicos normalmente usados em sistemas digitais. Nossa ateno, inicial-
mente, estar voltada apenas s funes lgicas implementadas por esses circuitos, ou seja, a relao entre as entradas e
sadas dos circuitos. Adiaremos qualquer discusso relacionada operao interna at que tenhamos desenvolvido um
entendimento de suas operaes lgicas.

Tocci.indb 14 10/05/2011 18:14:50


Captulo 1 Conceitos introdutrios 15

Caso I

5V
vi
0V
t
4V
vo
0V

vi Circuito vo
digital Caso II

3,7 V
vi
0,5 V
t
4V
vo
0V

FIGURA 1.14 Um circuito digital responde aos nveis binrios das entradas (0 ou 1), no ao valor exato da tenso.

Circuitos integrados digitais


Circuitos digitais da tecnologia atual so fundamentalmente implementados usando circuitos integrados (CIs) sofisti-
cados e configurados eletronicamente ou feitos sob medida para a aplicao. Muitas tecnologias do passado so obsoletas.
Por exemplo, os circuitos lgicos de tubos de vcuo no seriam usados hoje em dia por uma srie de razes, como: tamanho,
potncia e porque tubos de vcuo so muito difceis de encontrar. Ocasionalmente, faz sentido usar uma tecnologia mais
antiga onde for econmica e os componentes estejam disponveis durante a vida de um produto. Por exemplo, a maioria
dos CIs que formavam os sistemas digitais nos anos 1970 no mais produzida, mas ainda est disponvel no mercado por
causa das grandes sobras de estoque. Esses dispositivos sero, em raras ocasies, usados em um novo produto e ainda so
usados para instruo de laboratrio para cursos digitais em escolas de ensino mdio e faculdades. Neste texto, tentaremos
fornecer informaes sobre uma gama de tecnologias que permitam que voc aprenda usando dispositivos do passado e,
no obstante isso, apresentaremos os fundamentos necessrios para usar as ferramentas do futuro.
Atualmente, a tecnologia mais comum para implementar circuitos digitais (incluindo a vasta maioria do hardware
de computadores) o CMOS (Complementary Metal-Oxide Semiconductor). Outras tecnologias foram relegadas a
nichos menores. Antes do avano do CMOS, a tecnologia de transistor bipolar reinava e tinha influncia profunda sobre
os sistemas digitais. A principal famlia lgica que resultou da tecnologia bipolar referida como TTL (Transistor/Tran-
sistor Logic). No Captulo 8, voc aprender a respeito das vrias tecnologias de CIs, suas caractersticas e as vantagens
e desvantagens relativas.

Questes para reviso

1. Determine se a seguinte afirmao verdadeira ou falsa: o valor exato da tenso de entrada decisivo para um circuito
digital.
2. Um circuito digital pode produzir a mesma tenso de sada para diferentes valores de tenso de entrada?
3. Um circuito digital tambm conhecido por circuito ________________.
4. Um grfico que mostra como um ou mais sinais digitais variam no tempo chamado __________________.

1.7 TRANSMISSES PARALELA E SERIAL


Uma das operaes mais comuns que ocorrem em qualquer sistema digital a transmisso da informao de um lugar
para outro. A informao pode ser transmitida a uma distncia to pequena quanto a de alguns centmetros em uma mesma
placa de circuito ou a uma distncia de vrios quilmetros quando um operador em um terminal de computador se comu-
nica com um computador em outra cidade. A informao transmitida em formato binrio e, geralmente, representada
por tenses na sada de um circuito transmissor conectado entrada de um circuito receptor. A Figura 1.15 ilustra os dois
mtodos bsicos para a transmisso de uma informao digital: paralelo e serial.

Tocci.indb 15 10/05/2011 18:14:50


16 Sistemas digitais princpios e aplicaes

H i
0 0 MSB
1 1
0 1
0 0
1 1
0 0
0 0
0 1
LSB
(a)

H i
00010010 10010110

LSB MSB LSB MSB


(b)

FIGURA 1.15(a) A transmisso paralela usa uma linha de conexo por bit, e todos os bits so transmitidos simultaneamente; (b) a transmisso
serial usa apenas uma linha de sinal, na qual os bits so transmitidos serialmente (um de cada vez).

A Figura 1.15(a) mostra a transmisso paralela de dados de um computador para uma impressora. As interfaces de
impressora paralela eram padro em computadores pessoais antes do USB (universal serial bus). Neste cenrio, presuma
que estejamos tentando imprimir a palavra Hi (ol, em ingls) na impressora. O cdigo binrio para H 01001000 e o
cdigo binrio para i 01101001. Cada um dos caracteres (o H e o i) composto de oito bits. Utilizando a transmisso
paralela, os oito bits so transmitidos simultaneamente por oito fios. O H transmitido primeiro, depois o i.
A Figura 1.15(b) demonstra uma transmisso serial como empregada no computador ao se usar uma porta USB
para enviar dados a uma impressora. Embora os detalhes da formatao dos dados sejam muito mais complicados para
uma porta do que mostramos aqui, os dados so transmitidos, um bit de cada vez, por um nico fio. Os bits so mostrados
no diagrama como se estivessem realmente se movendo pelo fio na ordem mostrada. O bit menos significativo de H
enviado primeiro, e o mais significativo de i enviado depois. claro que, na realidade, apenas um bit pode estar no fio
em qualquer ponto do tempo, o qual geralmente desenhado no grfico a partir da esquerda e se movendo para a direita.
Isso resulta em um grfico de bits lgicos pelo tempo da transmisso serial, chamado diagrama de tempo. Note que, nessa
figura, o bit menos significativo est esquerda, porque foi enviado primeiro.
A principal relao entre as representaes paralela e serial diz respeito velocidade versus a simplicidade do circuito.
A transmisso de um dado binrio de um ponto para outro de um sistema digital pode ser feita mais rapidamente por meio
do formato paralelo, pois todos os bits so transmitidos simultaneamente, enquanto no formato serial transmitido um bit
de cada vez. Por outro lado, o formato paralelo requer mais linhas de sinais, interligando o transmissor e o receptor de dados
binrios que o formato serial. Em outras palavras, a comunicao paralela mais rpida; a serial precisa de menos linhas
de sinais. Essa comparao entre os mtodos de comunicao paralela e serial para a representao de uma informao
binria ser objeto de discusso em muitos trechos deste livro.

Questo para reviso

1. Descreva as vantagens relativas das transmisses paralela e serial de um dado binrio.

Tocci.indb 16 10/05/2011 18:14:51


Captulo 1 Conceitos introdutrios 17

1.8 MEMRIA
Quando um sinal de entrada aplicado maioria dos dispositivos ou circuitos, a sada muda em resposta entrada;
quando o sinal de entrada removido, a sada volta ao estado original. Esses circuitos no apresentam a propriedade de
memria, visto que suas sadas voltam ao estado normal. Em circuitos digitais, certos tipos de dispositivos e circuitos pos-
suem memria. Quando uma entrada aplicada em um circuito desse tipo, a sada muda de estado, porm, ela se mantm
no novo estado ainda que o sinal de entrada seja removido em seguida. Essa propriedade de reteno da resposta a uma
entrada momentnea denominada memria. A Figura 1.16 ilustra as operaes com e sem memria.
Os dispositivos e circuitos de memria desempenham papel importante nos sistemas digitais porque proveem um
meio de armazenamento, temporrio ou permanente, de nmeros binrios, com a capacidade de alterar, a qualquer mo-
mento, a informao contida. Veremos que os diversos elementos de memria incluem tipos magntico, ptico e aqueles
que utilizam circuitos de reteno (denominados latches e flip-flops).

Circuito sem
memria

Circuito com
memria

FIGURA 1.16 Comparao entre as operaes com e sem memria.

1.9 COMPUTADORES DIGITAIS


As tcnicas digitais tm sido aplicadas em inmeras reas da tecnologia. Porm, a rea de computao digital ,
sem dvida, a mais notvel e a mais ampla. Embora os computadores digitais afetem de alguma maneira nossas vidas,
provavelmente poucos sabemos o que um computador faz. Em termos simples, um computador um sistema de hardware
que realiza operaes aritmticas, manipula dados (normalmente na forma binria) e toma decises.
Em geral, os humanos so capazes de fazer o que os computadores fazem, mas os computadores o fazem com velo-
cidade e preciso muito maiores. Isso acontece apesar de os computadores realizarem os clculos fazendo uma operao
de cada vez. Por exemplo, uma pessoa pode tomar uma lista de dez nmeros e calcular a soma total, colocando-os em
sequncia, um aps o outro, e somando-os coluna por coluna. Um computador, por outro lado, capaz de somar apenas
dois nmeros de cada vez, de modo que, somando essa mesma lista de nmeros, gastar nove passos. claro que o fato
de o computador necessitar de alguns nanossegundos por passo compensa essa aparente ineficincia.
Um computador mais rpido e mais preciso que uma pessoa; porm, diferentemente de ns, precisa receber um
conjunto completo de instrues que determine exatamente o que fazer em cada passo de suas operaes. Esse conjunto
de instrues, denominado programa, elaborado por uma ou mais pessoas para cada tarefa da mquina. Os programas
so colocados na unidade de memria do computador, codificados na forma binria, sendo que cada instruo tem um
cdigo nico. O computador busca, na memria, os cdigos de instruo, um de cada vez, e realiza a operao determinada
pelo cdigo.

Principais partes de um computador


Existem vrios tipos de sistemas de computador, porm, cada um pode ser representado pelas mesmas unidades
funcionais. Cada unidade desempenha uma funo especfica, e todas operam em conjunto para realizar as instrues
contidas no programa. A Figura 1.17 mostra as cinco partes principais de um computador digital e as interaes entre elas.
As linhas contnuas com setas representam o fluxo de dados e informaes. As linhas tracejadas com setas representam o
fluxo dos sinais de controle e de temporizao.
As principais funes de cada unidade so:
1. Unidade de entrada. Por meio dessa unidade, um conjunto completo de instrues e dados introduzido na uni-
dade de memria do sistema computacional para ser armazenado at o momento de utilizao. Uma informao
tipicamente introduzida pela unidade de entrada por um teclado, um disco ou vrios sensores (no caso de um
computador de controle de processos).

Tocci.indb 17 10/05/2011 18:14:51


18 Sistemas digitais princpios e aplicaes

Unidade central de
processamento (CPU)

Unidade
lgica/aritmtica

Dados, Dados,
Entrada Controle Sada
informao informao

Sinais de controle
Memria Dados ou informao

FIGURA 1.17 Diagrama funcional de um computador digital.

2. Unidade de memria. A memria armazena as instrues e os dados recebidos da unidade de entrada. Ela arma-
zena o resultado de operaes aritmticas, recebidas da unidade aritmtica e tambm fornece informaes para a
unidade de sada.
3. Unidade de controle. Essa unidade busca, uma de cada vez, as instrues na unidade de memria e as interpreta.
Ento, envia sinais apropriados para outras unidades de acordo com uma instruo especfica a ser executada.
4. Unidade lgica/aritmtica. Todos os clculos aritmticos e as decises lgicas so realizados nessa unidade, que
pode enviar resultados para serem armazenados na unidade de memria.
5. Unidade de sada. Essa unidade recebe os dados da unidade de memria e imprime, exibe ou apresenta de qualquer
outra maneira as informaes ao operador (ou processa, no caso de um computador de controle de processos).
Como mostra a Figura 1.17, as unidades lgica/aritmtica e de controle so quase sempre consideradas uma unidade
central de processamento (central processing unit CPU). A CPU contm o circuito para a busca e a decodificao
(interpretao) de instrues e tambm para o controle e a realizao de vrias operaes determinadas pelas instrues.

Tipos de computadores
Todos os computadores so construdos com as mesmas unidades bsicas descritas anteriormente, mas podem diferir
no tamanho, na velocidade de operao, na capacidade de memria e poder computacional, entre outras caractersticas. Os
sistemas dos computadores so configurados de diversas maneiras hoje em dia, tendo muitas caractersticas em comum
e muitas diferenas. Os grandes sistemas instalados permanentemente em diversos escritrios so usados por empresas e
universidades como base de informaes tecnolgicas. Os computadores pessoais so usados para rodar programas que
facilitam nossas vidas e permitem a comunicao com outros computadores. Os computadores portteis so encontrados
em PDAs (personal digital assistant, ou pequenos computadores portteis), e computadores especializados so encontra-
dosem sistemas de jogos para computador (videogame). A forma mais disseminada de computadores executa tarefas de
rotina em aparelhos e sistemas por toda parte ao nosso redor.
Atualmente, quase todos esses sistemas utilizam tecnologia que evoluiu a partir da inveno do microprocessador,
que , essencialmente, uma unidade central de processamento (CPU) em um circuito integrado que pode ser conectado a
outros blocos de um sistema. Os computadores que usam um microprocessador como CPU costumam ser chamados de
microcomputadores. Os microcomputadores de uso mltiplo (ou seja, PCs, PDAs etc.) executam diversas tarefas em
uma grande variedade de aplicaes conforme os softwares (programas) que estiverem utilizando. Compare seu uso com
o dos computadores dedicados, que executam tarefas como a de operar o motor ou controlar o sistema antibloqueio de
rodas do seu carro ou operar o seu forno de micro-ondas. Esses computadores no podem ser programados pelo usurio,

Tocci.indb 18 10/05/2011 18:14:51


Captulo 1 Conceitos introdutrios 19

apenas executam a tarefa de controle para a qual foram programados e so, por isso, chamados de microcontroladores.
Como so parte integrante de um sistema maior e que serve a determinada funo, so tambm chamados de controla-
dores embutidos ou embarcados. Os microcontroladores, geralmente, possuem todos os componentes de um computador
completo (CPU, memria e portas de entrada/sada), tudo dentro de um nico circuito integrado. Eles esto embutidos nos
aparelhos eletrodomsticos de cozinha, nos equipamentos de vdeo e udio, nas fotocopiadoras, nas mquinas de atendi-
mento automtico, nos equipamentos automticos das fbricas, nos instrumentos mdicos e em muitos outros aparelhos.

Computadores embutidos em telefones celulares


As funes bsicas dos subsistemas digitais de um telefone celular e as outras aplicaes nele inseridas so controladas
por um sistema de microcomputador completo que est embutido em cada telefone. Dentro da CPU do microcomputa-
dor est a ALU, um circuito digital que pode desempenhar operaes de aritmtica bsica somando nmeros binrios.
Voc aprender no Captulo 6 como nmeros binrios negativos so representados, o que permite que a calculadora ou o
computador realize subtraes. A multiplicao baseada na soma, e a diviso baseada na subtrao; o resultado uma
mquina aritmtica completa. Muita memria tambm est embutida no computador do celular, assim como circuitos de
interface que permitem que informaes fluam para dentro e para fora do computador.

Exemplo 1.3

O papel desempenhado pelo computador embutido no seu telefone celular faz mais sentido agora? Tente responder as
seguintes questes:
(a) Cite 2 entradas para o computador de seu telefone celular.
(b) Cite 2 tipos de informaes que so armazenadas na memria.
(c) Cite 2 sadas do computador de seu telefone celular.
Soluo
H muitas respostas corretas para estas questes. Vamos listar algumas possveis.
(a) Entradas: cmera/botes do alto-falante, botes do volume para cima/para baixo, botes do teclado, microfone
(informao de voz digitalizada), cmera (informao de vdeo digitalizada), receptor de rdio, status da carga de
bateria.
(b) Memria: nmeros de telefone, nomes, configuraes do relgio despertador, fotos, tons e sons de chamada, progra-
mas de aplicao que fazem seu telefone funcionar.
(c) Sadas: a tela principal (interface de vdeo), a sada do amplificador de udio (alto-falante), o transmissor de rdio,
circuitos de gerenciamento de energia (bateria).

MEMRIA medida que voc pressiona nmeros no teclado, o telefone precisa memorizar. Circuitos que so ca-
pazes de armazenar (lembrar) dgitos so chamados de circuitos de memria e so detalhados no Captulo 12. A memria
tambm usada para armazenar msicas, fotos e mesmo imagens em vdeo em formato digital.
Vamos considerar agora como a memria funciona para armazenar uma foto. A cmera inserida em um telefone
celular feita de um sensor especial chamado de CCD (charge-coupled device) que montado atrs de uma lente tica.
O CCD tem muitas linhas e colunas pequenas de sensores que medem luz e produzem um nmero binrio que representa
a luminosidade de cada ponto no CCD. Cada imagem uma composio formada por estes pontos, chamados elementos
de imagem ou pixels. Cada linha e cada coluna tem um nmero associado, de maneira que cada pixel identificado por
uma combinao de linha/coluna nica. Quando voc tira uma foto, o telefone tem de comear no canto superior esquerdo
do CCD e converter a luminosidade daquele ponto em um nmero binrio que precisa ser armazenado na clula superior
esquerda da memria (linha 0, coluna 0). O prximo ponto para a direita (linha 0, coluna 1) ento convertido para bin-
rio e armazenado na clula correspondente na memria e por a em diante, at que ela tenha armazenado o ltimo pixel
daquela linha. O prximo pixel deve estar na segunda linha na coluna da esquerda (linha 1, coluna 0). As setas na Figura
1.18 mostram a ordem do processo de escaneamento. Voc vai aprender mais sobre tecnologias de memria e como elas
funcionam no Captulo 12. Mtodos de converso desses sinais de luminosidade de pixel analgicos em nmeros digitais
(conversores analgicos para digitais) so apresentados no Captulo 11.
Para realizar este processo de escaneamento preciso haver circuitos que possam contar atravs dos nmeros de linhas
e colunas usando o sistema de numerao binrio. Esta classe geral de circuitos referida como contadores, e eles so
primeiro abordados no Captulo 5. preciso haver tambm circuitos que reconheam um nmero binrio e ento ativar
uma sada de linha/coluna correspondente. Estes circuitos lgicos so chamados de detectores de nmeros ou decodifica-
dores, apresentados no Captulo 9. Esta aplicao exige que o contador de linhas avance ou acresa to logo o contador de

Tocci.indb 19 10/05/2011 18:14:51


20 Sistemas digitais princpios e aplicaes

Cmera CCD Memria LCD


Medida de luminosidade do pixel Armazena dados de Exibe luminosidade do pixel
Colunas luminosidade do pixel Colunas
0 1 2 3 4..... 0 1 2 3 4.....

Linha 0 Linha 0
Linha 1 Linha 1
Linha 2 Linha 2
Linha 3 Linha 3
Linha 4 Linha 4

(a) (b) (c)

FIGURA 1.18Informao digital grfica/vdeo mostrando (a) a ordem em que os dados so adquiridos do sensor (CCD), (b) o dado armazenado em
uma sequncia/estrutura similar, e (c) a ordem em que o dado exibido na tela de vdeo.

colunas complete seu ciclo. Conectar contadores desta maneira chamado conexo em cascata. Os conceitos avanados
de contadores so apresentados no Captulo 7.

VDEO Exibir a imagem em uma tela LCD o processo reverso de se armazenar uma imagem na memria. O nmero
binrio representando a luminosidade de um pixel tem de ser acessado na memria, convertido para uma tenso analgica e
usado para controlar o montante de luz que pode brilhar atravs da tela na localizao do pixel correspondente. Contadores
e decodificadores no sistema de memria so sincronizados com os que controlam a tela LCD. Agora que voc tem alguma
ideia de como uma imagem armazenada e exibida na tela do telefone, imagine quo rpido isso tem de ser feito a fim de
exibir uma imagem de vdeo em movimento. Todo pixel de uma tela inteira tem de ser atualizado a cada um trigsimo de
segundo. Esses contadores tm de contar muito rpido!

UDIO Uma mudana fundamental dos sistemas do passado na indstria de entretenimento e telecomunicaes
moderna o fato de que mesmo os sons audveis so transmitidos digitalmente em vez de por sinais analgicos. Quando
voc fala ao telefone, o sinal de voz do microfone convertido para uma srie de nmeros digitais (binrios). Estes n-
meros binrios so transmitidos usando uma frequncia de rdio analgica maior que 2 GHz (mais de 2 bilhes de ciclos
por segundo!). Uma torre de telefonia celular capta o sinal juntamente com o de todas as pessoas na sua rea e envia a
conversa para uma grande rede de telefonia celular. Os sinais so separados e encaminhados para o local apropriado por
multiplexadores e demultiplexadores, detalhados no Captulo 9.

Progresso digital hoje e amanh


Vamos dar um passo para trs e analisar por que estivemos discutindo telefones celulares. Este pequeno telefone celular
feito de circuitos analgicos e digitais fundamentais igualmente teis em outros sistemas eletrnicos modernos como o
vdeo Blu-Ray, computadores de todos os tamanhos, hardware de servio de internet de banda larga, utenslios, sistemas
automotivos e videogames, apenas para citar alguns. Existem muitas necessidades no mundo a que a tecnologia digital
pode atender. O telefone celular est constantemente gerenciando o uso de energia da bateria de maneira que possa durar
dias entre as recargas. Muito em breve, nossas casas e negcios estaro gerenciando o uso de energia automaticamente para
conservar energia como o telefone. Uma nova indstria digital surgir para controlar utenslios e tomadas para este fim.
O FCC est descontinuando a transmisso analgica do sinal de televiso no formato NTSC e est dando suporte somente
transmisso do novo formato digital. A revoluo HDTV est bem encaminhada. Redes wireless WIFI nos permitem
usar computadores e internet em restaurantes, aeroportos etc. O sistema GPS capta sinais em micro-ondas do espao para
dizer exatamente onde voc est no mapa do mundo e ajudar a navegar para o destino. Fazendeiros j deixam que seus
tratores dirijam sozinhos pelos campos. Quo breve o carro estar dirigindo sozinho? Voc ser capaz de se tornar um dos
pioneiros nas novas fronteiras da tecnologia.

Questes para reviso

1. Explique como um circuito digital que possui memria difere de um que no a possui.
2. Cite as cinco principais unidades de um microcomputador.
3. Quais so as duas unidades que compem uma CPU?
4. Um CI que contm uma CPU denominado _____________.
5. Cite trs circuitos digitais fundamentais que podem ser encontrados no sistema de telefonia celular.

Tocci.indb 20 10/05/2011 18:14:51


Captulo 1 Conceitos introdutrios 21

RESUMO
1. As duas formas bsicas de representao de valores numricos de quantidades (grandezas) fsicas so: analgica (con-
tnua) e digital (discreta).
2. A maioria das grandezas no mundo real analgica; as tcnicas digitais so, no entanto, geralmente, superiores s
analgicas, e a maioria dos avanos previstos estar no domnio digital.
3. O sistema de numerao binrio (0 e 1) o sistema bsico usado na tecnologia digital.
4. Os circuitos lgicos ou digitais operam com tenses que se encontram em faixas predeterminadas que representam o
binrio 0 e o binrio 1.
5. As duas formas bsicas de transferncia de informao digital so: paralela (todos os bits so transferidos simultanea-
mente) e serial (um bit transferido de cada vez).
6. As principais partes de um computador so: as unidades de entrada, de controle, de memria, lgica/aritmtica e de
sada.
7. A combinao das unidades lgica/aritmtica e de controle constitui a CPU (unidade central de processamento).
8. Um microcomputador tem, normalmente, uma CPU que um nico CI denominado microprocessador.
9. Um microcontrolador um microcomputador especialmente projetado para aplicaes de controle dedicado (no de
propsito geral).

TERMOS IMPORTANTES3
amplitude em cascata sistema decimal
bit frequncia (f) sistema de numerao binrio
circuitos digitais/lgicos hexadecimal sistema digital
CMOS memria transmisso paralela
codificar microcomputador transmisso serial
computao digital microcontrolador TTL
contador microprocessador unidade central de processamento
conversor analgico-digital (ADC) multiplexador (CPU)
conversor digital-analgico (DAC) perodo (T) unidade de controle
decodificador programa unidade de entrada
demultiplexador representao analgica unidade de memria
diagrama de tempo representao digital unidade de sada
diagrama de tempos sistema analgico unidade lgica/aritmtica
dgito binrio sistema binrio

PROBLEMAS
SEO 1.3
1.1*4 Quais das grandezas a seguir so analgicas e quais 1.2 Quais das grandezas a seguir so analgicas e quais
so digitais? so digitais?
(a) Nmero de tomos em uma amostra de material. (a) Largura de um pedao de madeira.
(b) Altitude de um avio. (b) Intervalo de tempo at o alarme do forno disparar.
(c) Presso em um pneu de bicicleta. (c) Hora mostrada em um relgio de quartzo.
(d) Corrente em um alto-falante. (d) Altitude acima do mar medida sobre uma escada.
(e) Ajuste do temporizador de um forno de micro-ondas. (e) Altitude acima do mar medida sobre um declive.

SEO 1.4
1.3* Converta os seguintes nmeros binrios em seus va- 1.4 Converta os seguintes nmeros binrios em seus va-
lores equivalentes decimais. lores equivalentes decimais.
(a) 110012 (a) 100112
(b) 1001,10012 (b) 1100,0101
(c) 10011011001,101102 (c) 10011100100,10010

3 Esses termos esto destacados em negrito no captulo e definidos no Glossrio ao final do livro. Isso se aplica a todos os captulos.
4 As respostas aos problemas assinalados com um asterisco esto no final do livro.

Tocci.indb 21 10/05/2011 18:14:51


22 Sistemas digitais princpios e aplicaes

1.5* Usando 3 bits, mostre a sequncia de contagem binria 1.7* Qual o maior nmero que podemos contar usando
de 000 a 111. 10 bits?
1.6 Usando 6 bits, mostre a sequncia de contagem binria 1.8 E usando 14 bits?
de 000000 a 111111. 1.9* Quantos bits so necessrios para contar at 511?
1.10 E para contar at 63?

SEO 1.5
1.11* Desenhe o diagrama de tempo para um sinal digital 1.12 Desenhe o diagrama de tempo para um sinal que al-
que alterna continuamente entre 0,2 V (binrio 0) por terna entre 0,3 V (binrio 0) por 5 ms e 3,9 V (binrio
2 ms e 4,4 V (binrio 1) por 4 ms. 1) por 2 ms.

SEO 1.7
1.13* Suponha que os valores inteiros decimais de 0 a 15 (a) Se for usado o formato paralelo?
sejam transmitidos em binrio. Quantas linhas sero (b) E se for usado o formato serial?
necessrias:

SEES 1.8 e 1.9


1.14 Qual a diferena entre um microprocessador e um 1.15 E entre um microcontrolador e um microcomputador?
microcomputador?

RESPOSTAS DAS QUESTES PARA REVISO


SEO 1.1 SEO 1.4
1. Dois. 1. 10710
2. Um diagrama de tempos. 2. 110002
3. 409510
SEO 1.2
1. Chave/matraca para baixo (ativada) e chave/matraca SEO 1.5
para cima (no ativada). 1. Uma sequncia de nmeros binrios, representando o
2. Intervalos longos e curtos da chave para baixo repre- valor do sinal medido a intervalos regulares.
sentam pontos e traos. 2. Como uma tenso que est dentro de uma faixa acei-
3. Amplitude. tvel de valores ALTOS ou BAIXOS.
4. Frequncia.
5. Digital. SEO 1.6
6. Analgico. 1. Falso.
2. Sim, desde que as duas tenses de entrada estejam
SEO 1.3 dentro da mesma faixa de nvel lgico.
1. Cdigo Morse (amplitude e padro dos pulsos), cdigo 3. Lgico.
de disco de pulso, nmeros binrios. 4. Diagrama de tempos.
2. Uso de sinais e chaves era digital; transmisso de voz
era analgica. SEO 1.7
3. Uso de sinais, chaves e udio digitalmente codifi- 1. Paralela mais rpida; serial exige apenas uma linha
cado; frequncias de rdio que carregam a informao de sinal.
digital so analgicas. O microfone muda o som para
um sinal analgico e o alto-falante muda um sinal SEO 1.9
analgico para o som. 1. Um que tenha memria ter sua sada modificada e
4. Mais fcil de projetar; mais fcil de armazenar infor- permanecer modificada em resposta a uma mudana
maes; maior exatido e preciso; programvel; momentnea no sinal de entrada.
menos afetado pelo rudo; grau de integrao mais alto. 2. Entrada, sada, memria, lgica/aritmtica, controle.
5. Quantidades fsicas do mundo real so analgicas. 3. Controle e lgica/aritmtica.
Processamento digital leva tempo. 4. Microprocessador.
5. Contador, decodificador, demultiplexador, multiple-
xador.

Tocci.indb 22 10/05/2011 18:14:51


C A P T U L O 2

S I S T E M A S D E N U M E R A O
E CDIGOS

CONTEDO
2.1 Converses de binrio para decimal 2.6 Relaes entre as representaes numricas
2.2 Converses de decimal para binrio 2.7 Bytes, nibbles e palavras
2.3 Sistema de numerao hexadecimal 2.8 Cdigos alfanumricos
2.4 Cdigo BCD 2.9 Deteco de erros pelo mtodo de paridade
2.5 Cdigo Gray 2.10 Aplicaes

OBJETIVOS
Aps estudar este captulo, voc ser capaz de:
Converter um nmero de um sistema de numerao Explicar a diferena entre BCD e binrio puro.
(decimal, binrio ou hexadecimal) para o equivalente Explicar o propsito dos cdigos alfanumricos, como
em qualquer outro sistema de numerao. o cdigo ASCII.
Citar vantagens do sistema de numerao hexadecimal. Explicar o mtodo de paridade para deteco de erro.
Contar em hexadecimal. Determinar o bit de paridade a ser acrescentado a uma
Representar nmeros decimais usando o cdigo BCD; sequncia de dados.
citar os prs e os contras no uso do cdigo BCD.

INTRODUO
O sistema de numerao binrio o mais importante em sistemas digitais, mas h outros tambm importantes. O sis-
tema decimal importante por ser universalmente usado para representar quantidades fora do sistema digital. Isso significa
que h situaes em que os valores decimais tm de ser convertidos em binrios antes de entrar em um sistema digital. Por
exemplo, quando voc digita um nmero decimal em sua calculadora (ou computador), o circuito interno dessas mquinas
converte o nmero decimal em um valor binrio.
Da mesma maneira, h casos em que os valores binrios das sadas de um sistema digital tm de ser convertidos em
decimais para serem apresentados ao mundo externo. Por exemplo, sua calculadora (ou computador) usa nmeros binrios
para calcular as respostas de um problema e, ento, converte-as para valores decimais antes de apresent-las.
Como veremos, no fcil apenas olhar para um longo nmero binrio e convert-lo em seu valor decimal equi-
valente. muito cansativo digitar uma longa sequncia de 1s e 0s em um teclado numrico ou escrever longos nmeros

Tocci.indb 23 10/05/2011 18:14:52


24 Sistemas digitais princpios e aplicaes

binrios no papel. especialmente difcil tentar transmitir uma quantidade binria quando se est falando com algum.
O sistema de numerao de base hexadecimal (base 16) se tornou a maneira padro de comunicar valores numricos em
sistemas digitais. A grande vantagem que os nmeros hexadecimais podem ser facilmente convertidos para o sistema
binrio e vice-versa. Veremos que muitas ferramentas de computador avanadas, que so projetadas para ajudar criadores
de softwares a lidar com problemas ou vrus em seus programas, usam o sistema de numerao hexadecimal para inserir
nmeros armazenados no computador como binrios e exibi-los novamente como hexadecimais.
Outras maneiras de representar quantidades decimais com dgitos codificados em binrio foram inventadas. Apesar
de no serem realmente sistemas de numerao, facilitam a converso entre o cdigo binrio e o sistema de numerao
decimal. Esses cdigos costumam ser chamados de decimal codificado em binrio (BCD). Quantidades e padres de bits
podem ser representados por quaisquer desses mtodos em qualquer sistema dado e em todo o material escrito referente
ao sistema digital. Por isso, muito importante que voc seja capaz de interpretar valores em qualquer sistema e efetuar
converses entre quaisquer dessas representaes numricas. Outros cdigos que usam 1s e 0s para representar elementos
como caracteres alfanumricos sero estudados, por serem bastante comuns em sistemas digitais.

2.1 CONVERSES DE BINRIO PARA DECIMAL


Conforme explicado no Captulo 1, o sistema de numerao binrio um sistema posicional em que cada dgito bi-
nrio (bit) possui um certo peso, de acordo com a posio relativa ao LSB. Qualquer nmero binrio pode ser convertido
em seu decimal equivalente, simplesmente somando os pesos das posies em que o nmero binrio tiver um bit 1. Para
ilustrar, vamos converter 110112 em seu equivalente decimal.

1 1 0 1 12
24 + 23 + 0 + 21 + 20 = 16 + 8 + 2 + 1
= 2710

Vejamos outro exemplo com um nmero maior de bits:

1 0 1 1 0 1 0 12 =
27 + 0 + 25 + 24 + 0 + 22 + 0 + 20 = 18110

Observe que o procedimento determinar os pesos (isto , as potncias de 2) para cada posio que contenha um bit
1 e, ento, som-los. Observe tambm que o MSB tem peso de 27 ainda que seja o oitavo bit; isto ocorre porque o LSB
o primeiro bit e tem peso de 20.
Outro mtodo de converso de binrio para decimal que evita a soma de nmeros grandes e o acompanhamento dos
pesos das colunas chamado de mtodo double-dabble. O procedimento o seguinte:
1. Escreva, de modo inverso, o 1 mais esquerda no nmero binrio.
2. Dobre-o e some o bit a seguir direita.
3. Escreva, de modo inverso, o resultado sob o prximo bit.
4. Continue com os passos 2 e 3 at terminar com o nmero binrio.
Vamos usar os mesmos nmeros binrios para verificar este mtodo.

Dado: 1 1 0 1 12
Resultados: 1 2 = 2
+1
32=6
+0
6 2 = 12
+ 1
13 2 = 26
+ 1
2710

Dado: 1 0 1 1 0 1 0 12
Resultados: 1 2 5 11 22 45 90 18110

Tocci.indb 24 10/05/2011 18:14:52


Captulo 2 Sistemas de numerao e cdigos 25

Questes para reviso

1. Converta o binrio 1000110110112 em seu equivalente decimal somando os produtos dos dgitos e pesos.
2. Qual o peso do MSB de um nmero de 16 bits?
3. Repita a converso na Questo 1 usando o mtodo double-dabble.

2.2 CONVERSES DE DECIMAL PARA BINRIO


No sistema binrio, h duas maneiras de converter um nmero decimal inteiro em seu equivalente. O primeiro mtodo
o processo inverso descrito na Seo 2.1. O nmero decimal simplesmente expresso como uma soma de potncias de
2, e, ento, 1s e 0s so colocados nas posies corretas dos bits. Para ilustrar:

4510 = 32 + 8 + 4 + 1 = 25 + 0 + 23 + 22 + 0 + 20
= 1 0 1 1 0 12

Observe que um 0 colocado nas posies 21 e 24, visto que todas as posies tm de ser consideradas. Outro exemplo
o seguinte:

7610 = 64 + 8 + 4 = 26 + 0 + 0 + 23 + 22 + 0 + 0
= 1 0 0 1 1 0 02

Outro mtodo para converter um nmero decimal inteiro utiliza divises sucessivas por 2. A converso, ilustrada a
seguir para o nmero 2510, requer divises sucessivas pelo nmero decimal 2 e a escrita, de modo inverso, dos restos de
cada diviso, at que um quociente 0 seja obtido. Observe que o resultado binrio alcanado escrevendo-se o primeiro
resto na posio do LSB e o ltimo na posio do MSB. Esse processo, representado pelo fluxograma da Figura 2.1, tam-
bm pode ser usado para converter um nmero decimal em qualquer outro sistema de numerao, como possvel ver.

25 LSB
= 12 + o resto 1
2

12
= 6 + o resto 0
2

6
= 3 + o resto 0
2

3
= 1 + o resto 1
2

1
= 0 + o resto 1
2
MSB
2510 = 1 1 0 0 12

Dica para a calculadora

Ao usar uma calculadora para realizar as divises por 2, possvel saber se o resto 0 ou 1 caso o resultado tenha ou
no parte fracionria. Por exemplo, 25/2 produziria 12,5. J que h parte fracionria (0,5), o resto 1. Se no h parte
fracionria, como 12/2 = 6, ento o resto seria 0. O Exemplo 2.1 ilustra esta situao.

Tocci.indb 25 10/05/2011 18:14:52


26 Sistemas digitais princpios e aplicaes

INCIO

Divida por 2

Guarde o quociente (Q)


e o resto (R)

NO
Q = 0?

SIM

Os Rs produzidos
fornecem o nmero
binrio desejado,
com o primeiro R
como LSB e o ltimo R
como MSB

FIM

FIGURA 2.1Fluxograma do mtodo de divises sucessivas na converso de decimal (nmeros inteiros) em binrio. O mesmo processo pode
ser usado para converter um inteiro decimal em qualquer outro sistema de numerao.

Exemplo 2.1

Converta 3710 em binrio. Tente faz-lo antes de olhar a soluo.


Soluo
37
= 18,5 o resto 1 (LSB)
2

18
= 9,0 0
2
9
= 4,5 1
2
4
= 2,0 0
2
2
= 1,0 0
2
1
= 0,5 1 (MSB)
2
Assim, 3710 = 1001012.

Tocci.indb 26 10/05/2011 18:14:52


Captulo 2 Sistemas de numerao e cdigos 27

Faixa de contagem
Lembre-se de que usando N bits, podemos contar 2N diferentes nmeros em decimal (de 0 a 2N 1). Por exemplo,
para N = 4, podemos contar de 00002 a 11112, que corresponde a 010 a 1510, em um total de 16 nmeros diferentes. Nesse
caso, o valor do maior nmero decimal 24 1 = 15, e h 24 nmeros diferentes.
Portanto, geralmente, podemos dizer:
Usando N bits, podemos representar nmeros decimais
na faixa de 0 a 2N 1, em um total de 2N nmeros diferentes.

Exemplo 2.2

(a) Qual a faixa total de valores decimais que podemos representar com 8 bits?
(b) Quantos bits so necessrios para representar valores decimais na faixa de 0 a 12.500?
Soluo
(a) Nesse caso, temos N = 8. Assim, podemos representar os nmeros decimais na faixa de 0 a 28 1 = 255. Podemos
comprovar isso verificando que 111111112, convertido em decimal, vale 25510.
(b) Usando 13 bits, podemos contar, em decimal, de 0 a 213 1 = 8191. Usando 14 bits, podemos contar de 0 a 214 1 =
16.383. Evidentemente, 13 bits no so suficientes, porm com 14 bits podemos ir alm de 12.500. Assim, o nmero
necessrio de bits 14.

Questes para reviso

1. Converta 8310 em binrio usando os dois mtodos apresentados.


2. Converta 72910 em binrio usando os dois mtodos apresentados. Verifique sua resposta, fazendo a converso de volta
para decimal.
3. Quantos bits so necessrios para contar at 1 milho em decimal?

2.3 SISTEMA DE NUMERAO HEXADECIMAL


O sistema de numerao hexadecimal usa a base 16. Assim, ele tem 16 smbolos possveis para os dgitos. Utiliza
os dgitos de 0 a 9 mais as letras A, B, C, D, E e F como smbolos. As posies dos dgitos recebem pesos como potncias
de 16, como mostrado a seguir, em vez de usar as potncias de 10 como no sistema decimal.

164 163 162 161 160 , 161 162 163 164


Vrgula hexadecimal

A Tabela 2.1 mostra as relaes entre hexadecimal, decimal e binrio. Observe que cada dgito hexadecimal repre-
sentado por um grupo de quatro dgitos binrios. importante lembrar que os dgitos hexa (abreviao para hexadecimal),
de A at F, so equivalentes aos valores decimais de 10 at 15.

TABELA 2.1
Hexadecimal Decimal Binrio Hexadecimal Decimal Binrio
0 0 0000 8 8 1000
1 1 0001 9 9 1001
2 2 0010 A 10 1010
3 3 0011 B 11 1011
4 4 0100 C 12 1100
5 5 0101 D 13 1101
6 6 0110 E 14 1110
7 7 0111 F 15 1111

Tocci.indb 27 10/05/2011 18:14:52


28 Sistemas digitais princpios e aplicaes

Converso de hexa em decimal


Um nmero hexa pode ser convertido em seu equivalente decimal pelo fato da posio de cada dgito hexa ter um peso
que uma potncia de 16. O LSD tem um peso de 160 = 1; o dgito da prxima posio superior tem um peso de 16 = 16;
o prximo tem um peso de 16 = 256, e assim por diante. O processo de converso demonstrado nos exemplos a seguir.

Dica para a calculadora

Voc pode usar a funo yx da calculadora para calcular as potncias de 16.


35616 = 3 162 + 5 161 + 6 160
= 768 + 80 + 6
= 85410

2AF16 = 2 162 + 10 161 + 15 160


= 512 + 160 + 15
= 68710
Observe que no segundo exemplo o valor 10 foi substitudo por A e o valor 15 por F na converso para decimal. Para
praticar, comprove que 1BC216 igual a 710610.

Converso de decimal em hexa


Lembre-se de que fizemos a converso de decimal em binrio usando divises sucessivas por 2. Da mesma maneira, a
converso de decimal em hexa pode ser feita usando divises sucessivas por 16 (Figura 2.1). O exemplo a seguir apresenta
duas ilustraes desta converso.

Exemplo 2.3

(a) Converta 42310 em hexa.


Soluo
423
= 26 + o resto 7
16

26
= 1 + o resto 10
16

1
= 0 + o resto 1
16
42310 = 1 A 716

(b) Converta 21410 em hexa.


Soluo
214
= 13 + o resto 6
16

13
= 0 + o resto 13
16
21410 = D 616

Observe novamente que os restos do processo de divises sucessivas formam os dgitos do nmero hexa. Note, tam-
bm, que quaisquer restos maiores que 9 so representados pelas letras de A at F.

Tocci.indb 28 10/05/2011 18:14:53


Captulo 2 Sistemas de numerao e cdigos 29

Dica para a calculadora

Se uma calculadora for usada para calcular as divises no processo de converso, o resultado incluir uma frao decimal
em vez de um resto. Este pode ser obtido multiplicando-se a frao por 16. Para ilustrar, no Exemplo 2.3(b), a calculadora
teria efetuado
214
= 13,375
16
O resto (0,375) 16 = 6.

Converso de hexa em binrio


O sistema de numerao hexadecimal usado principalmente como mtodo taquigrfico (compacto) para representar
um nmero binrio. A converso de hexa em binrio relativamente simples. Cada dgito hexa convertido no equivalente
binrio de 4 bits (Tabela 2.1). Isto est ilustrado a seguir para 9F216.

9F216 = 9 F 2

= 1001 1111 0010
= 1001111100102

Para praticar, comprove que BA616 = 1011101001102.

Converso de binrio em hexa


A converso de binrio em hexa consiste, simplesmente, em fazer o inverso do processo anterior. O nmero binrio
disposto em grupos de quatro bits, e cada grupo convertido no dgito hexa equivalente. Os zeros (sombreados a seguir)
so acrescentados, quando necessrio, para completar um grupo de 4 bits.

1 1 1 0 1 0 0 1 1 02 = 0 0 1 1 1 0 1 0 0 1 1 0
3 A 6
= 3A616

Para realizar as converses entre hexa e binrio, necessrio conhecer os nmeros binrios de 4 bits (0000 a 1111) e
seus dgitos hexa equivalentes. Uma vez que essa habilidade adquirida, as converses podem ser realizadas rapidamente,
sem necessidade de qualquer clculo. por isso que o sistema hexa til na representao de nmeros binrios grandes.
Para praticar, comprove que 1010111112 = 15F16.

Contagem em hexadecimal
Quando contamos em hexa, cada dgito pode ser incrementado (acrescido de 1) de 0 a F. Quando o dgito de uma
posio chega no valor F, este volta para 0, e o dgito da prxima posio incrementado. Isto est ilustrado nas seguintes
sequncias de contagem hexa:
(a) 38, 39, 3A, 3B, 3C, 3D, 3E, 3F, 40, 41, 42
(b) 6F8, 6F9, 6FA, 6FB, 6FC, 6FD, 6FE, 6FF, 700
Observe que, quando o dgito de uma posio 9, ele torna-se A quando incrementado.
Com N dgitos hexa podemos contar de 0 at o decimal 16N 1, em um total de 16N valores diferentes. Por exemplo,
com trs dgitos hexa podemos contar de 00016 a FFF16, que corresponde faixa de 010 a 409510, em um total de 4096 =
16 valores diferentes.

Vantagens do sistema hexa


O sistema hexa costuma ser usado em sistemas digitais como uma espcie de forma compacta de representar se-
quncias de bits. No trabalho com computadores, sequncias binrias de at 64 bits no so incomuns. Elas nem sempre
representam valores numricos, mas, como voc descobrir, podem ser algum tipo de cdigo que representa uma infor-
mao no numrica. Quando manipulamos nmeros com uma extensa quantidade de bits, mais conveniente e menos
sujeito a erros escrev-los em hexa; assim, como j vimos, relativamente fcil realizar converses mtuas entre binrio

Tocci.indb 29 10/05/2011 18:14:53


30 Sistemas digitais princpios e aplicaes

e hexa. Para ilustrar a vantagem da representao em hexa de uma sequncia binria, suponha que voc tenha uma lista
impressa com o contedo de 50 posies de memria, tendo cada uma nmeros de 16 bits, e que precise conferi-los de
acordo com outra lista. Voc preferir conferir 50 nmeros do tipo 0110111001100111 ou 50 nmeros do tipo 6E67? Em
qual dos dois casos voc faria, mais provavelmente, uma leitura incorreta? De qualquer modo, importante ter em mente
que os circuitos digitais trabalham com binrios. O sistema hexa usado simplesmente por uma questo de convenincia.
Voc deve memorizar o padro binrio de 4 bits para cada dgito hexadecimal. S ento voc perceber a utilidade desse
recurso para os sistemas digitais.

Exemplo 2.4

Converta o decimal 378 em um nmero binrio de 16 bits, mudando primeiro para hexadecimal.
Soluo
378
= 23 + o resto de 1010 = A16
16

23
= 1 + o resto de 7
16

1
= 0 + o resto de 1
16

Assim, 37810 = 17A16. Esse valor hexa pode facilmente ser convertido no binrio 000101111010. Finalmente, podemos
expressar 37810 como um nmero de 16 bits, acrescentando 4 bits zero esquerda:
37810 = 00000001011110102

Exemplo 2.5

Converta B2F16 em decimal.


Soluo
B2F16 = B 162 + 2 161 + F 160
= 11 256 + 2 16 + 15
= 286310

Resumo sobre as converses


Neste momento, voc j deve estar pensando em como guardar corretamente as diferentes converses de um sistema
de numerao para outro. Provavelmente, far com que muitas dessas converses sejam automaticamente efetuadas em
sua calculadora apenas pressionando uma tecla, mas importante dominar essas converses para compreender o processo.
Alm disso, o que voc far se a bateria da calculadora estiver descarregada em um momento crucial e voc no tiver
outra mo para substitu-la? O resumo a seguir pode ajud-lo, porm, no substituir a habilidade obtida com a prtica.
1. Quando converter o binrio ou hexa em decimal, use o mtodo da soma dos pesos de cada dgito ou siga o pro-
cedimento double-dabble.
2. Quando converter o decimal em binrio ou hexa, use o mtodo de divises sucessivas por 2 (binrio) ou 16 (hexa),
reunindo os restos da diviso (Figura 2.1).
3. Quando converter o binrio em hexa, agrupe os bits em grupos de quatro e converta cada grupo no dgito hexa
equivalente.
4. Quando converter o hexa em binrio, converta cada dgito em 4 bits equivalentes.

Questes para reviso

1. Converta 24CE16 em decimal.


2. Converta 311710 em hexa e, em seguida, em binrio.

Tocci.indb 30 10/05/2011 18:14:53


Captulo 2 Sistemas de numerao e cdigos 31

3. Converta 10010111101101012 em hexa.


4. Escreva os prximos quatro nmeros da seguinte contagem hexa: E9A, E9B, E9C, E9D, ___, ___, ___, ___.
5. Converta 3527 em binrio16.
6. Que faixa de valores decimais pode ser representada por nmeros hexa de quatro dgitos?

2.4 CDIGO BCD


Quando nmeros, letras ou palavras so representados por um grupo especial de smbolos, dizemos que esto codifi-
cados, sendo denominado cdigo. Provavelmente o cdigo mais familiar o Morse, em que uma srie de pontos e traos
representa letras do alfabeto.
Vimos que qualquer nmero decimal pode ser representado por um binrio equivalente. Os grupos de 0s e 1s em um
nmero binrio podem ser usados como representao codificada de um nmero decimal. Quando um nmero decimal
representado por seu nmero binrio equivalente, dizemos que uma codificao em binrio puro.
Todos os sistemas digitais usam algum modo de numerao binria em suas operaes internas; porm, o mundo
externo naturalmente decimal. Isto significa que converses entre os sistemas decimal e binrio so realizadas frequen-
temente. Vimos que converses entre decimal e binrio podem se tornar longas e complicadas para nmeros grandes. Por
isso, uma maneira de codificar nmeros decimais que combine algumas caractersticas dos dois sistemas, binrio e decimal,
usada em determinadas situaes.

Decimal codificado em binrio


Se cada dgito de um nmero decimal for representado por seu equivalente em binrio, o resultado ser um cdigo
denominado decimal codificado em binrio (daqui em diante abreviado por BCD binary-coded-decimal). Como um
dgito decimal pode ter no mximo o valor 9, so necessrios 4 bits para codificar cada dgito (o cdigo binrio do 9 1001).
Para ilustrar o uso do cdigo BCD, pegue um nmero decimal, por exemplo, 874. Cada dgito convertido no equi-
valente binrio, como mostrado a seguir:

8 7 4 (decimal)

1000 0111 0100 (BCD)

Exemplificando novamente, vamos converter 943 em cdigo BCD:

9 4 3 (decimal)

1001 0100 0011 (BCD)

Novamente, cada dgito decimal convertido no equivalente binrio puro. Observe que sempre so utilizados 4 bits
para cada dgito.
O cdigo BCD representa, ento, cada dgito de um nmero decimal por um nmero binrio de 4 bits. Evidentemente,
so usados apenas os nmeros binrios de 4 bits, entre 0000 e 1001. O cdigo BCD no usa os nmeros 1010, 1011, 1100,
1101, 1110 e 1111. Em outras palavras, so usados apenas 10 dos 16 possveis grupos de 4 bits. Se qualquer um desses
nmeros de 4 bits proibidos aparecer alguma vez em uma mquina que use o cdigo BCD, , geralmente, uma indicao
de que ocorreu algum erro.

Exemplo 2.6

Converta 0110100000111001 (BCD) em seu equivalente decimal.


Soluo
Separe o nmero BCD em grupos de 4 bits e converta cada grupo em decimal.

0110 1000 0011 1001


6 8 3 9

Tocci.indb 31 10/05/2011 18:14:53


32 Sistemas digitais princpios e aplicaes

Exemplo 2.7

Converta o nmero BCD 011111000001 em seu equivalente decimal.


Soluo
0111 1100 0001
7 1
O grupo referente a um cdigo proibido
indica um erro no nmero BCD.

Comparao entre BCD e binrio


importante perceber que o BCD no outro sistema de numerao, como os sistemas binrio, decimal e hexadeci-
mal. Na realidade, o BCD um sistema decimal no qual cada dgito codificado em seu equivalente binrio. Alm disso,
importante entender que um nmero BCD no o mesmo que um nmero binrio puro. O cdigo binrio puro obtido
a partir do nmero decimal completo que representado em binrio; no cdigo BCD, cada dgito decimal convertido,
individualmente, em binrio. Para ilustrar, veja como exemplo o nmero 137, comparando os cdigos BCD e binrio puro:
13710 = 100010012 (binrio)
13710 = 0001 0011 0111 (BCD)
O cdigo BCD requer 12 bits; o cdigo binrio puro, apenas 8 bits para representar o decimal 137. O cdigo BCD
requer mais bits que o binrio puro para representar os nmeros decimais maiores que um dgito. Isto acontece porque o
cdigo BCD no usa todos os grupos de 4 bits possveis, conforme demonstrado antes; por isso, um pouco ineficiente.
A principal vantagem do cdigo BCD a relativa facilidade de converso em decimal e vice-versa. Apenas os grupos
de 4 bits dos dgitos de 0 a 9 precisam ser memorizados. Essa caracterstica de fcil converso especialmente importante
do ponto de vista do hardware, porque nos sistemas digitais so os circuitos lgicos que realizam as converses mtuas
entre BCD e decimal.

Exemplo 2.8

Um caixa automtico de banco permite que voc indique o montante de dinheiro que quer retirar em decimal ao pressionar
teclas de dgitos decimais. O computador converte esse nmero em binrio puro ou BCD? Explique.
Soluo
O nmero que representa o saldo (o dinheiro que voc tem no banco) est armazenado como um nmero binrio puro.
Quando o montante retirado indicado, ele tem de ser subtrado do saldo. Tendo em vista que a aritmtica precisa ser
feita nos nmeros, ambos os valores (o saldo e o dinheiro retirado) tm de ser binrios puros. Ela converte a entrada
decimal em binrio puro.

Exemplo 2.9

O telefone celular permite que voc tecle/armazene um nmero de telefone de dgito decimal 10. Ele armazena o nmero
do telefone em binrio puro ou BCD? Explique.
Soluo
Um nmero de telefone uma combinao de muitos dgitos decimais. No necessrio combinar matematicamente os
dgitos (isto , voc nunca soma dois nmeros de telefone juntos). O aparelho s precisa armazen-los na sequncia em
que foram inseridos e busc-los quando se pressiona enviar. Portanto, sero armazenados como dgitos BCD na memria
do computador do celular.

Questes para reviso

1. Represente o valor decimal 178 no equivalente binrio puro. Em seguida, codifique o mesmo nmero decimal usando
BCD.
2. Quantos bits so necessrios para representar, em BCD, um nmero decimal de oito dgitos?
3. Qual a vantagem da codificao em BCD de um nmero decimal quando comparada com o binrio puro? E qual
a desvantagem?

Tocci.indb 32 10/05/2011 18:14:53


Captulo 2 Sistemas de numerao e cdigos 33

2.5 CDIGO GRAY


Os sistemas digitais operam em altas velocidades e reagem a variaes que ocorrem nas entradas digitais. Assim
como na vida, quando vrias condies de entrada variam ao mesmo tempo, a situao pode ser mal interpretada e pro-
vocar reao errnea. Quando se olha para os bits na sequncia de contagem binria, fica claro que muitas vezes vrios
precisam mudar de estado ao mesmo tempo. Por exemplo, quando o nmero binrio de trs bits muda de 3 para 4, os trs
bits precisam mudar.
A fim de reduzir a probabilidade de um circuito digital interpretar mal uma entrada que est mudando, desenvolveu-se
o cdigo Gray para representar uma sequncia de nmeros. A nica caracterstica distintiva do cdigo Gray que apenas
um bit muda entre dois nmeros sucessivos na sequncia. A Tabela 2.2 mostra a transio entre valores binrios de trs bits
e do cdigo. Para converter binrios em Gray, comece com o bit mais significativo e use-o como o Gray MSB conforme
mostrado na Figura 2.2(a). Em seguida, compare o binrio MSB com o prximo bit binrio (B1). Se forem iguais, ento
G1 = 0. Se forem diferentes, nesse caso G1 = 1. G0 pode ser encontrado comparando-se B1 com B0.
A converso do cdigo Gray em binrio mostrada na Figura 2.2(b). Observe que o MSB em Gray sempre o mesmo
que o MSB em binrio. O prximo bit binrio encontrado, comparando-se o bit binrio da esquerda com o correspondente
bit em cdigo Gray. Bits similares produzem um 0 e bits diferentes produzem um 1. A aplicao mais comum do cdigo
Gray nos codificadores de posio de eixo (encoders), como mostra a Figura 2.3. Esses dispositivos produzem um valor
binrio que representa a posio de um eixo mecnico em rotao. Um codificador de posio prtico usaria mais de trs
bits e dividiria a rotao em mais de oito segmentos, de modo a poder detectar incrementos de rotao muito menores.

TABELA 2.2 Equivalentes entre binrios de trs bits e cdigo Gray.

B2 B1 B0 G2 G1 G0

0 0 0 0 0 0

0 0 1 0 0 1

0 1 0 0 1 1

0 1 1 0 1 0

1 0 0 1 1 0

1 0 1 1 1 1

1 1 0 1 0 1

1 1 1 1 0 0

Binrio Gray
MSB LSB MSB LSB
B2 B1 B0 G2 G1 G0

Diferente? Diferente? Diferente? Diferente?

G2 G1 G0 B2 B1 B0
Gray Binrio
(a) (b)

FIGURA 2.2 Convertendo (a) binrio (encode) em Gray e (b) Gray em binrio.

Tocci.indb 33 10/05/2011 18:14:53


34 Sistemas digitais princpios e aplicaes

G2
G1
G0

FIGURA 2.3 Codificador de posio (encoder) de eixo de trs bits e oito posies.

Questes para reviso

1. Converta o nmero 0101 (binrio) ao cdigo Gray equivalente.


2. Converta 0101 (cdigo Gray) ao nmero binrio equivalente.

2.6 RELAES ENTRE AS REPRESENTAES NUMRICAS


A Tabela 2.3 mostra a representao dos nmeros decimais de 1 a 15 nos sistemas binrio, hexa e nos cdigos BCD e
Gray. Analise-a cuidadosamente e veja se voc entendeu como ela foi obtida. Observe, especialmente, que a representao
BCD sempre usa 4 bits para cada dgito decimal.

TABELA 2.3 Representao dos nmeros decimais.

Decimal Binrio Hexadecimal BCD GRAY

0 0 0 0000 0000

1 1 1 0001 0001

2 10 2 0010 0011

3 11 3 0011 0010

4 100 4 0100 0110

5 101 5 0101 0111

6 110 6 0110 0101

7 111 7 0111 0100

8 1000 8 1000 1100

9 1001 9 1001 1101

10 1010 A 0001 0000 1111

11 1011 B 0001 0001 1110

12 1100 C 0001 0010 1010

13 1101 D 0001 0011 1011

14 1110 E 0001 0100 1001

15 1111 F 0001 0101 1000

Tocci.indb 34 10/05/2011 18:14:53


Captulo 2 Sistemas de numerao e cdigos 35

2.7 BYTES, NIBBLES E PALAVRAS

Bytes
A maioria dos microcomputadores manipula e armazena informaes e dados binrios em grupos de 8 bits. Por isso,
a sequncia de 8 bits recebe um nome especial: ela denominada byte. Um byte constitudo sempre de 8 bits e pode
representar quaisquer tipos de dados ou informaes. Os exemplos a seguir ilustram isso.

Exemplo 2.10

Quantos bytes h em uma sequncia de 32 bits (cadeia de caracteres de 32 bits)?


Soluo
32/8 = 4. Assim, uma cadeia de caracteres de 32 bits constituda por 4 bytes.

Exemplo 2.11

Qual o maior nmero decimal que pode ser representado em binrio usando 2 bytes?
Soluo
Como 2 bytes correspondem a 16 bits, ento o valor do maior nmero decimal equivalente 216 1 = 65.535.

Exemplo 2.12

Quantos bytes so necessrios para representar, em BCD, o valor decimal 846.569?


Soluo
Cada dgito decimal convertido no cdigo BCD de 4 bits. Assim, um nmero decimal de seis dgitos requer 24 bits.
Esses 24 bits correspondem a trs bytes. Isso est representado no diagrama a seguir.

846569 (decimal)

1000 0100 0110 0101 0110 1001 (BCD)

byte 1 byte 2 byte 3

Nibbles
Nmeros binrios muitas vezes so divididos em grupos de 4 bits, como vimos nas converses de cdigos BCD e de
nmeros hexadecimais. Nos primrdios dos sistemas digitais, surgiu um termo para descrever um grupo de 4 bits. Como a
palavra byte tem o mesmo som da palavra mordida em ingls (bite), e como nibble significa mordiscar em ingls e
esses grupos de 4 bits possuem a metade do tamanho de um byte, eles foram denominados nibbles. Os exemplos a seguir
ilustram o uso desse termo.

Exemplo 2.13

Quantos nibbles existem em um byte?


Soluo
2.

Tocci.indb 35 10/05/2011 18:14:53


36 Sistemas digitais princpios e aplicaes

Exemplo 2.14

Qual o valor hexa do nibble menos significativo do nmero binrio 1001 0101?
Soluo
1001 0101
O nibble menos significativo 01012 = 510.

Palavras (Words)
Bits, nibbles e bytes so termos que representam um nmero fixo de dgitos binrios. Com o desenvolvimento dos
sistemas ao longo dos anos, sua capacidade de lidar com dados binrios (e seu apetite?) tambm cresceu. Uma palavra
(word) um grupo de bits que representa uma unidade de informao. O tamanho de palavra depende do tamanho do
caminho (pathway) de dados que usa a informao. O tamanho de palavra pode ser definido como o nmero de bits da
palavra binria sobre o qual um sistema digital opera. Por exemplo, o computador no forno de micro-ondas provavelmente
lida com um byte de cada vez. Ele tem um tamanho de palavra de 8 bits. Por outro lado, o computador pessoal na escri-
vaninha pode lidar com 8 bytes de cada vez, ento, possui um tamanho de palavra de 64 bits.

Questes para reviso

1. Quantos bytes so necessrios para representar 23510 em binrio?


2. Qual o maior valor decimal que pode ser representado em BCD, usando dois bytes?
3. Quantos dgitos hexadecimais um nibble pode representar?
4. Quantos nibbles existem em um dgito BCD?

2.8 CDIGOS ALFANUMRICOS


Alm de dados numricos, um computador precisa ser capaz de manipular informaes no numricas. Em outras
palavras, um computador deve reconhecer cdigos que representem letras do alfabeto, sinais de pontuao e outros
caracteres especiais, assim como nmeros. Esses cdigos so denominados alfanumricos. Um cdigo alfanumrico
completo inclui 26 letras minsculas, 26 maisculas, 10 dgitos numricos, 7 sinais de pontuao e algo em torno de 20 a
40 caracteres, tais como +, /, #, %, *, e assim por diante. Podemos dizer que um cdigo alfanumrico simboliza todos os
caracteres encontrados em um teclado de computador.

Cdigo ASCII
O cdigo alfanumrico mais utilizado o Cdigo Padro Americano para Troca de Informaes (American Stan-
dard Code for Information Interchange ASCII). O cdigo ASCII (pronuncia-se askii) um cdigo de 7 bits, portanto
tem 27 = 128 representaes codificadas. Isso mais que o necessrio para representar todos os caracteres de um teclado
padro, assim como funes do tipo (RETURN) e (LINEFEED). A Tabela 2.4 mostra uma listagem parcial do cdigo
ASCII. A tabela fornece os equivalentes hexadecimal e decimal. O cdigo binrio de 7 bits para cada caractere obtido
convertendo-se o valor hexadecimal em binrio.

Exemplo 2.15

Use a Tabela 2.4 para encontrar o cdigo ASCII de 7 bits para o caractere de barra invertida (\).
Soluo
O valor hexa fornecido na Tabela 2.4 5C. Traduzindo cada dgito hexa em binrio de 4 bits, obtemos 0101 1100. Os 7
bits menores representam o cdigo ASCII para \, ou 1011100.

Tocci.indb 36 10/05/2011 18:14:54


Captulo 2 Sistemas de numerao e cdigos 37

TABELA 2.4 Cdigos ASCII padro.


Caractere HEX Decimal Caractere HEX Decimal Caractere HEX Decimal Caractere HEX Decimal
NUL (null) 0 0 Space 20 32 @ 40 64 . 60 96
Start Heading 1 1 ! 21 33 A 41 65 a 61 97
Start Text 2 2 22 34 B 42 66 b 62 98
End Text 3 3 # 23 35 C 43 67 c 63 99
End Transmit 4 4 $ 24 36 D 44 68 d 64 100
Enquiry 5 5 % 25 37 E 45 69 e 65 101
Acknowlege 6 6 & 26 38 F 46 70 f 66 102
Bell 7 7 ` 27 39 G 47 71 g 67 103
Backspace 8 8 ( 28 40 H 48 72 h 68 104
Horiz.Tab 9 9 ) 29 41 I 49 73 i 69 105
Line Feed A 10 * 2A 42 J 4A 74 j 6A 106
Vert.Tab B 11 + 2B 43 K 4B 75 k 6B 107
Form Feed C 12 , 2C 44 L 4C 76 l 6C 108
Carriage Return D 13 - 2D 45 M 4D 77 m 6D 109
Shift Out E 14 . 2E 46 N 4E 78 n 6E 110
Shift In F 15 / 2F 47 O 4F 79 o 6F 111
Data Link Esc 10 16 0 30 48 P 50 80 p 70 112
Direct Control 1 11 17 1 31 49 Q 51 81 q 71 113
Direct Control 2 12 18 2 32 50 R 52 82 r 72 114
Direct Control 3 13 19 3 33 51 S 53 83 s 73 115
Direct Control 4 14 20 4 34 52 T 54 84 t 74 116
Negative ACK 15 21 5 35 53 U 55 85 u 75 117
Synch Idle 16 22 6 36 54 V 56 86 v 76 118
End Trans Block 17 23 7 37 55 W 57 87 w 77 119
Cancel 18 24 8 38 56 X 58 88 x 78 120
End of Medium 19 25 9 39 57 Y 59 89 y 79 121
Substitue 1A 26 : 3A 58 Z 5A 90 z 7A 122
Escape 1B 27 ; 3B 59 [ 5B 91 { 7B 123
Form separator 1C 28 < 3C 60 \ 5C 92 | 7C 124
Group separator 1D 29 = 3D 61 ] 5D 93 } 7D 125
Record Separator 1E 30 > 3E 62 ^ 5E 94 ~ 7E 126
Unit Separator 1F 31 ? 3F 63 _ 5F 95 Delete 7F 127

O cdigo ASCII usado para a transferncia de informao alfanumrica entre um computador e dispositivos externos,
como uma impressora ou outro computador. Um computador tambm usa internamente o cdigo ASCII para armazenar
informaes digitadas por um operador. O exemplo a seguir ilustra isso.

Exemplo 2.16

Um operador est digitando um programa em BASIC em determinado computador. O computador converte cada tecla
no cdigo ASCII equivalente e armazena o cdigo como um byte na memria. Determine a cadeia de caracteres binria
que deve ser armazenada na memria quando o operador digita a seguinte instruo em BASIC:
if (x>3)

Soluo
Localize cada caractere (inclusive o espao em branco blank) na Tabela 2.4 e transcreva o cdigo ASCII de cada um.

Tocci.indb 37 10/05/2011 18:14:54


38 Sistemas digitais princpios e aplicaes

i 69 0110 1001
f 66 0110 0110
espao 20 0010 0000
( 28 0010 1000
x 78 0111 1000
> 3E 0011 1110
3 33 0011 0011
) 29 0010 1001

Observe que foi acrescentado um 0 esquerda do bit mais significativo de cada sequncia do cdigo ASCII, porque o
cdigo tem de ser armazenado como um byte (8 bits). Esse acrscimo de um bit extra denominado preenchimento com 0s.

Questes para reviso

1. Codifique, em ASCII, a seguinte mensagem, usando a representao hexa: COST = $72.


2. A seguinte mensagem, codificada em ASCII, j preenchida com um 0 esquerda, armazenada em posies sucessivas
na memria de um computador:
01010011010101000100111101010000
Qual a mensagem?

2.9 DETECO DE ERROS PELO MTODO DE PARIDADE


A movimentao de dados e cdigos binrios de um local para outro a operao mais frequentemente realizada em
sistemas digitais. Eis alguns exemplos:
A transmisso de voz digitalizada por um enlace (link) de micro-ondas.
O armazenamento e a recuperao de dados armazenados em dispositivos de memorizao externa, como discos
ticos e magnticos.
A transmisso de dados digitais de um computador para outro, que esteja distante, por meio da linha telefnica
(usando um modem). Essa a principal maneira de enviar e receber informaes pela Internet.
Quando uma informao transmitida de um dispositivo (transmissor) para outro (receptor), h a possibilidade de
ocorrncia de erro quando o receptor no recebe uma informao idntica quela enviada pelo transmissor. A principal
causa de erro de transmisso o rudo eltrico, que consiste em flutuaes esprias (aleatrias) na tenso ou corrente
presentes em todos os sistemas eletrnicos em intensidades diversas. A Figura 2.4 mostra um tipo de erro de transmisso.
O transmissor envia um sinal digital, no formato serial, relativamente livre de rudo, por meio de uma linha de sinal
para o receptor. Entretanto, no momento em que o sinal chega ao receptor, apresenta certo nvel de rudo sobreposto ao
sinal original. s vezes o rudo tem amplitude grande o suficiente para alterar o nvel lgico do sinal, como ocorre no
ponto x. Quando isso ocorre, o receptor pode interpretar incorretamente que o bit em questo tenha nvel lgico 1, o que
no corresponde informao enviada pelo transmissor.
A maioria dos equipamentos digitais modernos projetada para ser relativamente livre de rudo, e a probabilidade de
erros, como mostrado na Figura 2.4, dever ser muito baixa. Entretanto, temos de entender que, muitas vezes, os sistemas
digitais transmitem centenas ou at milhes de bits por segundo, de modo que mesmo uma pequena taxa de ocorrncia
de erros pode produzir erros aleatrios capazes de gerar incmodos, se no desastres. Por isso, muitos sistemas digitais
utilizam algum mtodo de deteco (e algumas vezes de correo) de erros. Uma das tcnicas mais simples e mais usadas
para deteco de erros o mtodo de paridade.

x
Transmissor Receptor

FIGURA 2.4 Exemplo de um erro causado por um rudo em uma transmisso digital.

Tocci.indb 38 10/05/2011 18:14:54


Captulo 2 Sistemas de numerao e cdigos 39

Bit de paridade
Um bit de paridade consiste em um bit extra anexado ao conjunto de bits do cdigo a ser transferido de uma loca-
lidade para outra. O bit de paridade pode ser 0 ou 1, dependendo do nmero de 1s contido no conjunto de bits do cdigo.
Dois mtodos diferentes so usados.
No mtodo que usa paridade par, o valor do bit de paridade determinado para que o nmero total de 1s no conjunto
de bits do cdigo (incluindo o bit de paridade) seja par. Por exemplo, suponha que o conjunto de bits seja 1000011. Esse
o cdigo ASCII do caractere C. Esse conjunto de bits tem trs 1s; portanto, anexamos um bit de paridade par igual a 1
para tornar par o nmero total de 1s. O novo conjunto de bits, incluindo o bit de paridade, passa a ser:
1 1 0 0 0 0 1 1
bit de paridade anexado1
Se o grupo de bits do cdigo contiver um nmero par de 1s, o bit de paridade ter o valor 0. Por exemplo, se o con-
junto de bits do cdigo fosse 1000001 (o cdigo ASCII para A), o bit de paridade designado seria o 0, de modo que o
novo cdigo, incluindo o bit de paridade, seria 01000001.
O mtodo de paridade mpar usado exatamente da mesma maneira, exceto que o bit de paridade determinado para
que o nmero total de 1s, incluindo o bit de paridade, seja mpar. Por exemplo, para o grupo de bits 1000001, deve ser 1,
e para o grupo de bits 1000011, deve ser 0. Quer a paridade utilizada seja par, quer seja mpar, o bit de paridade passa a
ser parte do cdigo atual da informao. Por exemplo, anexando um bit de paridade ao cdigo ASCII de 7 bits, geramos
um cdigo de 8 bits. Assim, o bit de paridade tratado exatamente como qualquer outro bit do cdigo.
O bit de paridade gerado para detectar erros de um s bit que ocorram durante a transmisso de um cdigo de um
local para outro. Por exemplo, suponha que o caractere A seja transmitido e que seja usada a paridade mpar. O cdigo
transmitido seria:
1 1 0 0 0 0 0 1
Quando ele chega ao circuito receptor, este verifica se o cdigo contm um nmero mpar de 1s (incluindo o bit de
paridade). Em caso afirmativo, o receptor considera que o cdigo foi recebido corretamente. No entanto, suponha que,
devido a algum rudo ou mau funcionamento do circuito receptor, seja recebido o seguinte cdigo:
1 1 0 0 0 0 0 0
O receptor identificar que o cdigo tem um nmero par de 1s. Isso significa, para o receptor, que h um erro no c-
digo, presumindo que transmissor e receptor tenham usado paridade mpar. Entretanto, no h como o receptor identificar
qual bit est errado, visto que ele no sabe qual o cdigo correto.
evidente que o mtodo de paridade no funcionar se ocorrer erro em dois bits, porque dois bits errados no geram
alterao na paridade do cdigo. Na prtica, o mtodo de paridade usado apenas nas situaes em que a probabilidade
de erro de um nico bit baixa e, em dois bits, essencialmente zero.
Quando se usa o mtodo de paridade, tem de haver uma concordncia entre transmissor e receptor em relao ao tipo
de paridade (par ou mpar) a ser usada. Embora no exista vantagem de um mtodo sobre o outro, a paridade par mais
usada. O transmissor anexa um bit de paridade a cada unidade de informao transmitida. Por exemplo, se o transmissor
est enviando um dado codificado em ASCII, ele anexar um bit de paridade a cada conjunto ASCII de 7 bits. Quando o
receptor analisar o dado recebido, ele verificar se a quantidade de 1s de cada conjunto de bits (incluindo o bit de paridade)
est de acordo com o mtodo de paridade escolhido previamente. Essa operao frequentemente denominada verificao
de paridade dos dados. Quando um erro for detectado, o receptor poder enviar uma mensagem de volta ao transmissor,
solicitando a retransmisso do ltimo conjunto de dados. O procedimento a seguir, quando um erro detectado, depende
do tipo de sistema.

Exemplo 2.17

A comunicao entre computadores remotos acontece, muitas vezes, por rede telefnica. Por exemplo, a comunicao
pela internet ocorre via rede telefnica. Quando um computador transmite uma mensagem para outro, a informao ,
normalmente, codificada em ASCII. Quais seriam as cadeias de caracteres de bits transmitidas por um computador para
enviar a mensagem HELLO usando ASCII com paridade par?

1 O bit de paridade pode ser colocado tanto no incio quanto no final de um grupo de cdigo; em geral colocado esquerda do MSB.

Tocci.indb 39 10/05/2011 18:14:54


40 Sistemas digitais princpios e aplicaes

Soluo
Primeiro, determine o cdigo ASCII de cada caractere da mensagem. Em seguida, conte o nmero de 1s de cada cdigo.
Se o nmero de 1s for par, anexe um 0 como o MSB. Caso o nmero de 1s seja mpar, anexe um 1. Dessa maneira, os
cdigos de 8 bits (byte) resultantes tero uma quantidade par de 1s (incluindo o bit de paridade).

bits de paridade par anexados



H = 0 1 0 0 1 0 0 0
E = 1 1 0 0 0 1 0 1
L = 1 1 0 0 1 1 0 0
L = 1 1 0 0 1 1 0 0
O = 1 1 0 0 1 1 1 1

Correo de erros
A deteco de erros benfica, porque o sistema que recebe um dado contendo um erro sabe que recebeu um produto
danificado. No seria timo se o receptor pudesse tambm saber qual bit estava errado? Se um bit binrio est errado,
ento o valor correto seu complemento. Vrios mtodos foram desenvolvidos para conseguir isto. Em cada caso, ele exige
que vrios bits de deteco de erro/cdigos de correo sejam aplicados para cada pacote de informao transmitido.
medida que o pacote recebido, um circuito digital pode detectar se os erros ocorreram (mesmo mltiplos erros) e corrigi-
-los. Esta tecnologia usada para transferncia macia de dados em alta velocidade em aplicaes como drives de discos
magnticos, flash drives, CD, DVD, Blu-Ray Disc, televiso digital e redes de Internet de banda larga.

Questes para reviso

1. Anexe um bit de paridade mpar ao cdigo ASCII do smbolo $ e expresse o resultado em hexadecimal.
2. Anexe um bit de paridade par ao cdigo BCD relativo ao decimal 69.
3. Por que o mtodo de paridade no consegue detectar um erro duplo de bit em um dado transmitido?

2.10 APLICAES
Vejamos algumas aplicaes que tambm servem como reviso de alguns conceitos abordados neste captulo. Es-
sasaplicaes faro voc entender como os diversos sistemas de numerao e cdigos so usados no mundo digital. Outras
aplicaes esto presentes nos problemas no final do captulo.

Aplicao 2.1

Um CD-ROM tpico pode armazenar 650 megabytes de dados digitais. Sendo 1 mega = 220, quantos bits de dados um
CD-ROM pode guardar?
Soluo
Lembre-se de que um byte corresponde a 8 bits. Portanto, 650 megabytes equivalem a 650 220 8 = 5.452.595.200 bits.

Aplicao 2.2

Para programar vrios microcontroladores, as instrues binrias so armazenadas em um arquivo de um computador


pessoal de um modo especial conhecido como formato Intel-Hex. A informao hexadecimal codificada em caracteres
ASCII para ser exibida facilmente na tela do PC, impressa e transmitida (um caractere de cada vez) por uma porta serial
COM de um PC padro. A seguir, voc pode ver uma linha de um arquivo em formato Intel-Hex:
:10002000F7CFFFCF1FEF2FEF2A95F1F71A95D9F7EA

Tocci.indb 40 10/05/2011 18:14:54


Captulo 2 Sistemas de numerao e cdigos 41

Formato Intel-Hex:
Nmero de bytes de dados nesta linha
Tipo de linha
Endereo inicial
Bytes de dados
Check Sum
:10 00 2000 F7 CF FF CF 1F EF 2F EF 2A 95 F1 F7 1A 95 D9 F7 EA

O primeiro caractere enviado o cdigo ASCII para dois pontos, seguido por um 1. Cada um deles possui um bit de
paridade par anexado como o bit mais significativo. Um instrumento de teste verifica o padro binrio ao passar pelo
cabo at o microcontrolador.
(a) Qual deve ser a aparncia do padro binrio (inclusive a paridade)? (MSB LSB)
(b) O valor 10, seguindo os dois pontos, representa o nmero de bytes hexadecimal total, que deve ser carregado na
memria do micro. Qual o nmero decimal de bytes que est sendo carregado?
(c) O nmero 0020 um valor hexa de 4 dgitos, que representa o endereo em que o primeiro byte ser armazenado.
Qual o maior endereo possvel? Quantos bits seriam necessrios para representar esse endereo?
(d) O valor do primeiro byte de dados F7. Qual o valor (em binrio) do nibble menos significativo desse byte?
FFFF 1111 1111 1111 1111 16 bits

Soluo
(a) Os cdigos ASCII so 3A (para :) e 31 (para 1) 00111010 10110001
bit de paridade par
(b) 10 hexa = 1 16 + 0 1 = 16 bytes decimais.
(c) FFFF o maior valor possvel. Cada dgito hexa tem 4 bits; portanto, precisamos de 16 bits.
(d) O nibble menos significativo (4 bits) representado pelo hexa 7. Em binrio, seria 0111.

Aplicao 2.3

Um pequeno computador de controle de processos usa cdigo hexadecimal para representar seus endereos de memria
de 16 bits.
(a) Quantos dgitos hexadecimais so necessrios?
(b) Qual a faixa de endereos em hexadecimal?
(c) Quantas posies de memria existem?
Soluo
(a) Visto que 4 bits so convertidos em um nico dgito hexadecimal, 16/4 = 4. Ento, quatro dgitos hexadecimais so
necessrios.
(b) A faixa binria vai de 00000000000000002 a 11111111111111112. Em hexadecimal, isso se transforma em 000016 a
FFFF16.
(c) Com quatro dgitos hexadecimais, o nmero total de endereos 164 = 65.536.

Aplicao 2.4

Nmeros so fornecidos em BCD para um sistema baseado em microcontrolador e armazenados em binrio puro. Como
programador, voc precisa decidir se precisa de 1 ou 2 bytes de posies de armazenamento.
(a) Quantos bytes sero necessrios, se o sistema requerer uma entrada decimal de 2 dgitos?
(b) E se forem necessrios 3 dgitos?
Soluo
(a) Com 2 dgitos possvel fornecer valores at 99 (1001 1001BCD). Em binrio, esse valor 01100011, que caber em
uma posio de memria de 8 bits. Dessa forma, voc pode usar um nico byte.
(b) Trs dgitos podem representar valores at 999 (1001 1001 1001). Em binrio, esse valor 1111100111 (10 bits). Ou
seja, voc no pode usar apenas um byte; precisa de dois.

Tocci.indb 41 10/05/2011 18:14:54


42 Sistemas digitais princpios e aplicaes

Aplicao 2.5

Quando necessrio transmitir caracteres ASCII entre dois sistemas independentes (como entre um computador e um
modem), preciso encontrar um modo de avisar o receptor quando um novo caractere est entrando. Alm disso, muitas
vezes preciso detectar erros na transmisso. O mtodo de transferncia chamado de comunicao de dados assncrona.
O estado normal de repouso da linha de transmisso o lgico 1. Quando o transmissor envia um caractere ASCII,
preciso ser detectado, para que o receptor saiba onde os dados comeam e terminam. O primeiro bit deve ser sempre um
bit inicial (start bit o nvel lgico 0). A seguir, o cdigo ASCII enviado: primeiramente o LSB e por ltimo o MSB.
Depois do MSB, um bit de paridade anexado para verificar possveis erros de transmisso. Finalmente, a transmisso
encerrada pelo envio de um bit de parada (stop bit nvel lgico 1). Na Figura 2.5 voc pode ver uma transmisso
assncrona tpica de um cdigo ASCII de sete bits para o smbolo # (Hexa 23) com paridade par.

sem informao sem informao

I D D D D D D D P P
N 0 1 2 3 4 5 6 a A
r R
C L M i A
I S S d D
O B B a A
d
e

FIGURA 2.5 Dados seriais assncronos com paridade par.

Aplicao 2.6

Um PC encontra um erro ao rodar uma aplicao. A caixa de dilogo informa sobre os endereos que ele no conseguiu
ler ou escrever. Qual sistema de numerao usado para transmitir a rea de endereo?
Soluo
Esses nmeros sero normalmente transmitidos em hexadecimal. Em vez de usar o subscrito 16 como fizemos neste
texto, outros mtodos podem ser usados para indicar hexadecimal (por exemplo, anexando um prefixo 0x ao nmero).

RESUMO
1. O sistema de numerao hexadecimal usado em sistemas digitais e computadores como alternativa para a represen-
tao de quantidades binrias.
2. Nas converses entre hexa e binrio, cada dgito hexa corresponde a quatro bits.
3. O mtodo de divises sucessivas usado para converter nmeros decimais em binrios ou hexadecimais.
4. Usando um nmero binrio de N bits, podemos representar valores decimais de 0 a 2N 1.
5. O cdigo BCD para um nmero decimal formado convertendo-se cada dgito do nmero decimal no equivalente
binrio de quatro bits.
6. O cdigo Gray define uma sequncia de padres de bits em que apenas um bit varia entre sucessivos padres de
sequncia.
7. Um byte uma sequncia de bits (cadeia de caracteres) de 8 bits. Um nibble uma sequncia de 4 bits. O tamanho de
uma palavra depende do sistema.
8. O alfanumrico um cdigo que usa grupos de bits para representar todos os caracteres e funes que fazem parte de
um tpico teclado de computador. O cdigo ASCII o mais usado dos cdigos alfanumricos.
9. O mtodo de paridade para deteco de erros anexa um bit especial (bit de paridade) a cada grupo de bits transmitidos.

Tocci.indb 42 10/05/2011 18:14:55


Captulo 2 Sistemas de numerao e cdigos 43

TERMOS IMPORTANTES
bit de paridade Cdigo Padro Americano para mtodo de paridade
byte Troca de Informaes (ASCII) nibble
codificao em binrio puro cdigos alfanumricos palavra
cdigo Gray decimal codificado em binrio sistema de numerao hexadecimal
(BCD) tamanho de palavra

PROBLEMAS2

SEES 2.1 E 2.2


2.1 Converta os seguintes nmeros binrios em decimais. (b) 13
(a)* 10110 (c)* 189
(b) 10010101 (d) 1000
(c)* 100100001001 (e)* 77
(d) 01101011 (f) 390
(e)* 11111111 (g)* 205
(f) 01101111 (h) 2133
(g)* 1111010111 (i)* 511
(h) 11011111 (j) 25
(i)* 100110 (k) 52
(j) 1101 (l) 47
(k)* 111011 2.3 Qual o maior valor decimal que pode ser represen-
(l) 1010101 tado por
2.2 Converta os seguintes valores decimais em binrios. (a)* um nmero binrio de 8 bits?
(a)* 37 (b) um nmero de 16 bits?

SEO 2.4
2.4 Converta cada nmero hexadecimal em seu equiva- (j) 33
lente decimal. (k) 100
(a)* 743 (l) 200
(b) 36 2.6* Converta os valores hexadecimais do Problema 2.4
(c)* 37FD em binrios.
(d) 2000 2.7* Converta os nmeros binrios do Problema 2.1 em
(e)* 165 hexadecimais.
(f) ABCD 2.8 Relacione os nmeros hexadecimais, em sequncia,
(g)* 7FF de 19516 a 18016.
(h) 1204 2.9* Quando um nmero decimal grande convertido
(i) E71 em binrio, algumas vezes mais fcil convert-lo
(j) 89 primeiro em hexadecimal e, ento, em binrio. Ex-
(k) 58 perimente esse procedimento para o nmero 213310 e
(l) 72 compare-o com o procedimento usado no Problema
2.5 Converta os nmeros decimais em seu equivalente 2.2(h).
hexadecimal. 2.10 Quantos dgitos hexadecimais so necessrios para re-
(a)* 59 presentar nmeros decimais at 20.000? E at 40.000?
(b) 372 2.11 Converta os valores hexadecimais a seguir em
(c)* 919 decimais.
(d) 1024 (a)* 92
(e)* 771 (b) 1A6
(f) 2313 (c)* 37FD
(g)* 65.536 (d) ABCD
(h) 255 (e)* 000F
(i) 29 (f) 55

2 As respostas dos problemas assinalados com um asterisco podem ser encontradas ao final do livro.

Tocci.indb 43 10/05/2011 18:14:55


44 Sistemas digitais princpios e aplicaes

(g)* 2C0 (k) 0011


(h) 7FF (l) 0100
(i) 19 (m) 0001
(j) 42 (n) 0101
(k) CA (o) 0111
(l) F1 (p) 0110
2.12 Converta os valores decimais a seguir em hexadeci- 2.14 Escreva o nmero binrio de 4 bits para o equivalente
mais. dgito hexa, sem fazer clculos por escrito nem com
(a)* 75 a calculadora.
(b) 314 (a) 6
(c)* 2048 (b) 7
(d) 24 (c) 5
(e)* 7245 (d) 1
(f) 498 (e) 4
(g)* 25.619 (f) 3
(h) 4.095 (g) C
(i) 95 (h) B
(j) 89 (i) 9
(k) 128 (j) A
(l) 256 (k) 2
2.13 Escreva o dgito hexa equivalente para os seguintes (l) F
nmeros binrios de 4 bits na ordem em que foram (m) 0
escritos, sem fazer clculos por escrito nem com a (n) 8
calculadora. (o) D
(a) 1001 (p) 9
(b) 1101 2.15* Qual o maior valor que pode ser representado por
(c) 1000 trs dgitos hexa?
(d) 0000 2.16* Converta os valores em hexa do Problema 2.11 em
(e) 1111 binrios.
(f) 0010 2.17* Relacione os nmeros hexa, em sequncia, de 280 a
(g) 1010 2A0.
(h) 1001 2.18 Quantos dgitos hexadecimais so necessrios para
(i) 1011 representar os nmeros decimais at 1 milho? E at
(j) 1100 4 milhes?

SEO 2.4
2.19 Codifique os nmeros decimais a seguir em BCD. 2.20 Quantos bits so necessrios para representar os
(a)* 47 nmeros decimais na faixa de 0 a 999 usando (a) o
(b) 962 cdigo binrio puro? (b) E o cdigo BCD?
(c)* 187 2.21 Os nmeros a seguir esto em BCD. Converta-os em
(d) 6.727 decimal.
(e)* 13 (a)* 1001011101010010
(f) 529 (b) 000110000100
(g)* 89.627 (c)* 011010010101
(h) 1024 (d) 0111011101110101
(i)* 72 (e)* 010010010010
(j) 38 (f) 010101010101
(k)* 61 (g) 10111
(l) 90 (h) 010110
(i) 1110101

Tocci.indb 44 10/05/2011 18:14:55


Captulo 2 Sistemas de numerao e cdigos 45

SEO 2.7
2.22* (a) Quantos bits esto contidos em 8 bytes? 2.23 (a) Consulte a Tabela 2.4. Qual o nibble mais
(b) Qual o maior nmero hexa que pode ser repre- significativo do cdigo ASCII para a letra X?
sentado com quatro bytes? (b) Quantos nibbles podem ser armazenados em uma
(c) Qual o maior valor decimal codificado em palavra de 16 bits?
BCD que pode ser representado com 3 bytes? (c) Quantos bytes so necessrios para formar uma
palavra de 24 bits?

SEES 2.8 E 2.9


2.24 Represente a expresso X = 3 x Y em cdigo ASCII bit de paridade mpar foi anexado ao final de cada se-
(excluindo as aspas). Anexe um bit de paridade mpar. quncia de bits. Analise cada cdigo a seguir e admita
2.25* Anexe um bit de paridade par a cada um dos cdigos que cada sequncia de bits tenha sido transmitida de
ASCII do Problema 2.24 e apresente o resultado em um local para outro. Algumas das sequncias de bits
hexa. contm erros. Suponha que no tenham ocorrido mais
2.26 Os bytes a seguir (mostrados em hexa) representam que dois bits errados para cada sequncia. Determine
o nome de uma pessoa do modo como foi armaze- qual(is) contm(m) um nico bit errado e qual(is),
nado na memria de um computador. Cada byte definitivamente, contm(m) dois. (Dica: lembre-se
um cdigo em ASCII com um bit (MSB) anexado. de que se trata de um cdigo BCD.)
Determine o nome da pessoa. (a) 1001010110000
(a)* 42 45 4E 20 53 4D 49 54 48
msb lsb bit de paridade
(b) 4A 6F 65 20 47 72 65 65 6E
2.27 Converta os seguintes nmeros decimais para o c- (b) 0100011101100
digo BCD e, em seguida, anexe um bit de paridade (c) 0111110000011
mpar. (d) 1000011000101
(a)* 74 2.29 Considere que um receptor tenha recebido os seguin-
(b) 38 tes dados referentes ao transmissor do Exemplo 2.17:
(c)* 8884 01001000
(d) 275 11000101
(e)* 165 11001100
(f) 9201 11001000
(g) 11 11001100
(h) 51 Quais erros o receptor pode detectar a partir desses
2.28* Em determinado sistema digital, os nmeros decimais dados recebidos?
de 000 a 999 so representados em cdigo BCD. Um

EXERCCIOS DE FIXAO
2.30* Faa as converses a seguir. Em algumas, voc pode (m) 86510 = _____ (BCD)
querer experimentar diversos mtodos para ver qual (n) 100101000111 (BCD) = _____ 10
mais prtico. Por exemplo, a converso de binrio (o) 46516 = _____ 2
em decimal pode ser feita diretamente ou pode-se (p) B3416 = _____ 2
fazer uma converso de binrio em hexadecimal e, (q) 01110100 (BCD) = _____ 2
em seguida, de hexadecimal em decimal. (r) 1110102 = _____ (BCD)
(a) 141710 = _____ 2 2.31* Represente o valor decimal 37 em cada uma das
(b) 25510 = _____ 2 seguintes formas:
(c) 110100012 = _____ 10 (a) binrio puro
(d) 11101010001001112 = _____ 10 (b) BCD
(e) 249710 = _____ 16 (c) hexa
(f) 51110 = _____ (BCD) (d) ASCII (isto , considere cada dgito um carac-
(g) 23516 = _____ 10 tere)
(h) 431610 = _____ 16 2.32* Preencha os espaos em branco com a(s) palavra(s)
(i) 7A916 = _____ 10 correta(s).
(j) 3E1C16 = _____ 10 (a) A converso de decimal em _____________
(k) 160010 = _____ 16 requer divises sucessivas por 16.
(l) 3818710 = _____ 16

Tocci.indb 45 10/05/2011 18:14:55


46 Sistemas digitais princpios e aplicaes

(b) A converso de decimal em binrio requer divi- (b) 010011


ses sucessivas por ____________. (c) 1011
(c) No cdigo BCD, cada _______________ con- (d) 1111
vertido no equivalente binrio de 4 bits. 2.34 Aplique uma operao de decremento a cada nmero
(d) O cdigo __________ altera apenas um bit binrio.
quando passamos de uma representao, no (a)* 1100
cdigo, para a seguinte. (b) 101000
(e) Um transmissor anexa um ____________ aos (c) 1110
bits do cdigo para permitir ao receptor detectar (d) 1001 0000
__________. 2.35 Escreva os nmeros resultantes quando cada um dos
(f) O cdigo __________ o alfanumrico mais seguintes nmeros incrementado.
usado em sistemas de computadores. (a)* 777916
(g) __________ usado muitas vezes como alter- (b) 999916
nativa conveniente para representar nmeros (c)* 0FFF16
binrios grandes. (d) 200016
(h) Uma cadeia de caracteres de 8 bits denominada (e)* 9FF16
_________. (f) 100A16
2.33 Escreva os nmeros binrios resultantes quando cada (g) F16
um dos seguintes nmeros incrementado em uma (h) FE16
unidade. 2.36* Repita o Problema 2.35 para a operao de decre-
(a)* 0111 mento.

DESAFIOS
2.37* Os endereos das posies de memria de um micro- (c) Se um CD tem capacidade de armazenar 5 bi-
computador so nmeros binrios que identificam lhes de bits, quantos segundos de udio podem
cada posio da memria em que um byte arma- ser gravados quando forem utilizados nmeros
zenado. O nmero de bits que constitui um endereo de 10 bits?
depende da quantidade de posies de memria. 2.39* Uma cmera digital, que grava em preto e branco,
Visto que o nmero de bits pode ser muito grande, o forma um reticulado sobre uma imagem e, ento,
endereo especificado em hexa em vez de binrio. mede e grava um nmero binrio, que representa o
(a) Se um microcomputador tem 20 bits de ende- nvel (intensidade) de cinza em cada clula do reticu-
reo, quantas posies diferentes de memria lado. Por exemplo, ao usar nmeros de 4 bits, o valor
ele possui? correspondente ao preto ajustado em 0000 e o valor
(b) Quantos dgitos hexa so necessrios para repre- correspondente ao branco em 1111, e qualquer nvel
sentar um endereo de uma posio de memria? de cinza fica entre 0000 e 1111. Ao usar 6 bits, o preto
(c) Qual o endereo, em hexa, da 256a posio da corresponder a 000000 e o branco a 111111, e todos
memria? (Observao: o primeiro endereo os tons de cinza estaro entre esses dois valores. Su-
sempre zero.) ponha que desejemos distinguir entre 254 diferentes
(d) O programa de computador est armazenado tons de cinza em cada clula do reticulado. Quantos
no bloco 2 kbyte mais baixo da memria. D o bits seriam necessrios para representar esses nveis
endereo de partida e final desse bloco. (tons)?
2.38 Em um CD de udio, o sinal de tenso de udio 2.40 Uma cmera digital de 3 megapixels armazena um
amostrado cerca de 44.000 vezes por segundo, e o nmero de 8 bits para o brilho de cada uma das cores
valor de cada amostra gravado na superfcie do CD primrias (vermelho, verde, azul) encontradas em
como um nmero binrio. Em outras palavras, cada cada elemento componente da imagem (pixel). Se
nmero binrio gravado representa um nico ponto cada bit armazenado (sem compresso de dados),
da forma de onda do sinal de udio. quantas imagens podem ser armazenadas em um
(a) Se os nmeros binrios tm uma extenso de 6 carto de memria de 128 megabytes? (Observao:
bits, quantos valores diferentes de tenso podem nos sistemas digitais, mega significa 220.)
ser representados por um nico nmero binrio? 2.41 Construa uma tabela mostrando as representaes de
Repita o clculo para 8 e 10 bits. todos os nmeros decimais de 0 a 15 em binrio, hexa
(b) Se forem usados 10 bits, quantos bits sero e BCD. Compare sua tabela com a Tabela 2.3.
gravados no CD em 1 segundo?

Tocci.indb 46 10/05/2011 18:14:55


Captulo 2 Sistemas de numerao e cdigos 47

RESPOSTAS DAS QUESTES PARA REVISO


SEO 2.1 SEO 2.5
1. 2267 1. 0111
2. 32768 2. 0110
3. 2267
SEO 2.7
SEO 2.2 1. Um
1. 1010011 2. 9999
2. 1011011001 3. Um
3. 20 bits 4. Um

SEO 2.3 SEO 2.8


1. 9422 1. 43, 4F, 53, 54, 20, 3D, 20, 24, 37, 32
2. C2D; 110000101101 2. STOP
3. 97B5
4. E9E, E9F, EA0, EA1 SEO 2.9
5. 11010100100111 1. A4
6. 0 a 65.535 2. 001101001
3. Porque dois bits errados em um dado no alteram a
SEO 2.4 paridade da quantidade de 1s.
1. 101100102; 000101111000 (BCD)
2. 32
3. Vantagem: a converso mais fcil. Desvantagem: o
cdigo BCD requer mais bits.

Tocci.indb 47 10/05/2011 18:14:55


C A P T U L O 3

DESCREVENDO
C I R C U I TO S L G I C O S

CONTEDO
3.1 Constantes e variveis booleanas 3.11 Teoremas de DeMorgan
3.2 Tabelas-verdade 3.12 Universalidade das portas NAND e NOR
3.3 Operao OR (OU) com porta OR 3.13 Simbologia alternativa para portas lgicas
3.4 Operao AND (E) com porta AND 3.14 Que simbologia de porta lgica usar
3.5 Operao NOT (NO) ou INVERSO 3.15 Atraso de propagao
3.6 Descrevendo circuitos lgicos algebricamente 3.16 Resumo dos mtodos para descrever circuitos lgicos
3.7 Avaliando as sadas dos circuitos lgicos 3.17 Linguagens de descrio versus linguagens de
3.8 Implementando circuitos a partir de expresses programao
booleanas 3.18 Implementando circuitos lgicos em PLDs
3.9 Portas NOR e portas NAND 3.19 Formato e sintaxe do HDL
3.10 Teoremas booleanos 3.20 Sinais intermedirios

OBJETIVOS
Aps estudar este captulo, voc ser capaz de:
Realizar as trs operaes lgicas bsicas. Explicar as vantagens de se construir um diagrama de
Descrever a operao e construir tabelas-verdade para circuito lgico usando a simbologia alternativa versus
as portas AND, NAND, OR e NOR e o circuito NOT a simbologia-padro para portas lgicas.
(INVERSOR). Descrever o significado dos sinais lgicos ativos em
Desenhar os diagramas de tempo para os diversos nvel BAIXO e ativos em nvel ALTO.
circuitos lgicos das portas. Descrever e medir o tempo de atraso de propagao.
Escrever as expresses booleanas para as portas lgicas Usar vrios mtodos para descrever a operao de
e suas combinaes. circuitos lgicos.
Implementar circuitos lgicos usando as portas bsicas Interpretar circuitos simples definidos por linguagem
AND, OR e NOT. de descrio de hardware (HDL).
Usar a lgebra booleana para simplificar circuitos Explicar a diferena entre HDL e linguagem de
lgicos complexos. programao.
Usar os teoremas de DeMorgan na simplificao de Criar um arquivo HDL para uma porta lgica simples.
expresses lgicas. Criar um arquivo HDL para circuitos combinacionais
Usar uma das portas lgicas universais (NAND ou com variveis intermedirias.
NOR) na implementao de circuitos representados
por expresses booleanas.

Tocci.indb 48 10/05/2011 18:14:55


Captulo 3 Descrevendo circuitos lgicos 49

INTRODUO
Os captulos 1 e 2 apresentaram os conceitos de nveis lgicos e circuitos lgicos. Em lgica, existem apenas duas
condies possveis para qualquer entrada ou sada: verdadeira e falsa. O sistema binrio de numerao utiliza apenas dois
dgitos, 1 e 0, por isso perfeito para representar relaes lgicas. Os circuitos lgicos digitais usam faixas de tenses
predeterminadas para representar esses estados binrios. Por meio desses conceitos, possvel criar circuitos feitos com
pouco mais que areia e fios combinados que tomam decises coerentes, inteligentes e lgicas. de vital importncia ter
um mtodo para descrever as decises lgicas tomadas por esses circuitos. Em outras palavras, precisamos descrever
como eles operam. Neste captulo, aprenderemos muitas formas de descrever a operao dos circuitos. Todos os mtodos
de descrio so importantes, pois aparecem nos livros tcnicos e na documentao dos sistemas e so usados junto com
as modernas ferramentas de projeto e desenvolvimento.
A vida est repleta de exemplos de circunstncias em que se pode dizer que se est em um estado ou em outro. Por
exemplo, uma pessoa est viva ou morta, uma luz est acesa ou apagada, uma porta est fechada ou aberta, agora est
chovendo ou no. Em 1854, um matemtico chamado George Boole escreveu Uma investigao das leis do pensamento,
em que descrevia o modo como se toma decises lgicas com base em circunstncias verdadeiras ou falsas. O mtodo
que ele descreveu hoje conhecido como lgica booleana, e o sistema que emprega smbolos e operadores para descrever
essas decises chamado de lgebra booleana. Do mesmo modo que usamos smbolos como x e y para representar valo-
res numricos desconhecidos na lgebra comum, a lgebra booleana usa smbolos para representar uma expresso lgica
que possui um de dois valores possveis: verdadeiro ou falso. A expresso lgica pode ser a porta est fechada, o boto
est pressionado ou o nvel do combustvel est baixo. Escrever essas expresses muito cansativo e, assim, tendemos a
substitu-las por smbolos como A, B e C.
A principal utilidade dessas expresses lgicas descrever o relacionamento entre as sadas do circuito lgico (as
decises) e as entradas (as circunstncias). Neste captulo, estudaremos os circuitos lgicos mais bsicos, as portas lgicas,
que so os blocos fundamentais a partir dos quais todos os outros circuitos lgicos e sistemas digitais so construdos.
Veremos como a operao de diferentes portas lgicas e circuitos mais complexos construdos a partir da combinao delas
podem ser descritos e analisados por meio da lgebra booleana. Aprenderemos, tambm, como a lgebra booleana pode
ser usada para simplificar a expresso booleana de um circuito, de modo que ele possa ser construdo novamente, usando
menos portas lgicas e/ou menos conexes. No Captulo 4, faremos uma abordagem mais detalhada sobre simplificaes
de circuitos.
A lgebra booleana no usada apenas como instrumento de anlise e simplificao de sistemas lgicos; tambm
uma valiosa ferramenta de projeto usada para que um circuito lgico produza uma relao entrada/sada. Esse processo
muitas vezes chamado de sntese de circuitos lgicos, em contraposio anlise. Outras tcnicas so usadas na anlise,
sntese e documentao de sistemas e circuitos lgicos, entre elas, tabelas-verdade, smbolos esquemticos, diagramas de
tempo e por ltimo, mas no menos importante linguagens. Para classificar esses mtodos, podemos dizer que a
lgebra booleana uma ferramenta matemtica, assim como as tabelas-verdade so de organizao de dados, os smbolos
esquemticos, de desenho, os diagramas de tempo so grficas e as linguagens so descritivas universais.
Atualmente, todas essas ferramentas podem ser usadas para fornecer entradas aos computadores, que podem simpli-
ficar e efetuar tradues entre essas vrias maneiras de descrio e, em ltima anlise, fornecer sadas na forma necessria
para implementar um sistema digital. Para extrair o mximo benefcio dos programas de computador, precisamos primeiro
entender os modos aceitveis de descrever esses sistemas em termos que o computador entenda. Este captulo fornecer a
base para um estudo mais aprofundado dessas ferramentas para a sntese e a anlise dos sistemas digitais.
As ferramentas aqui descritas so inestimveis para a descrio, anlise, projeto e implementao de circuitos digitais.
O estudante que pretende trabalhar com sistemas digitais deve estudar muito para entender e dominar a lgebra booleana
(acredite, bem mais fcil que a lgebra convencional) e todas as outras ferramentas. Faa todos os exemplos, exerccios
e problemas, mesmo aqueles que seu professor no determinar. E quando esses exerccios acabarem, faa outros por conta
prpria. Voc ver que o tempo investido valer a pena medida que sentir sua habilidade melhorar e sua confiana crescer.

3.1 CONSTANTES E VARIVEIS BOOLEANAS


A principal diferena entre a lgebra booleana e a convencional que, na booleana, as constantes e variveis podem
ter apenas dois valores possveis, 0 ou 1. As variveis booleanas so muitas vezes usadas para representar o nvel de tenso
presente em uma conexo ou em terminais de entrada/sada de um circuito. Por exemplo, em um determinado sistema
digital, o valor booleano 0 pode representar qualquer tenso dentro da faixa de 0 a 0,8 V, enquanto o valor booleano1
pode representar qualquer tenso dentro da faixa de 2 a 5 V.1

1 Tenses entre 0,8 V e 2 V so indefinidas (nem 0 nem 1) e no deveriam ocorrer em circunstncias normais.

Tocci.indb 49 10/05/2011 18:14:55


50 Sistemas digitais princpios e aplicaes

Desse modo, as variveis booleanas 0 e 1 no representam efetivamente nmeros, mas o estado do nvel de tenso de
uma varivel, o qual denominado nvel lgico. Referimo-nos a uma tenso em um circuito digital como sendo de nvel
lgico 0 ou 1, dependendo do valor numrico efetivo. Em lgica digital, vrios outros termos so usados como sinnimos
para esses nveis lgicos. Alguns dos mais comuns so mostrados na Tabela 3.1. Usamos as designaes 0/1 ou BAIXO/
ALTO (LOW/HIGH) na maioria das vezes.

TABELA 3.1
Lgico 0 Lgico 1
Falso Verdadeiro
Desligado Ligado
BAIXO ALTO
No Sim
Aberto Fechado

Conforme vimos na introduo, a lgebra booleana um modo de expressar a relao entre as entradas e as sadas de
um circuito lgico. As entradas so consideradas variveis lgicas cujos nveis lgicos determinam, a qualquer momento,
os nveis da(s) sada(s). Ao longo deste estudo, usaremos letras como smbolos para representar as variveis lgicas. Por
exemplo, a letra A pode ser usada para representar a entrada ou a sada de um determinado circuito digital e, em um instante
qualquer, teremos A = 0 ou A = 1; se A no for um valor, ser o outro.
Como os valores possveis de uma varivel so apenas dois, a lgebra booleana mais fcil de ser manipulada que a
lgebra convencional. Nela no existem fraes, decimais, nmeros negativos, razes quadradas, razes cbicas, logarit-
mos, nmeros imaginrios, e assim por diante. A lgebra booleana tem, de fato, apenas trs operaes bsicas: OR (OU),
AND (E) e NOT (NO).
Essas operaes bsicas so denominadas operaes lgicas. Os circuitos digitais, denominados portas lgicas,
podem ser construdos a partir de diodos, transistores e resistores interconectados de modo que a sada do circuito seja o
resultado de uma operao lgica bsica (OR, AND ou NOT) realizada sobre as entradas. Usaremos a lgebra booleana,
primeiramente, para descrever e analisar essas portas lgicas bsicas, depois, para analisar e projetar circuitos combina-
cionais de portas lgicas.

3.2 TABELAS-VERDADE
Uma tabela-verdade uma tcnica para descrever como a sada de um circuito lgico depende dos nveis lgicos
presentes nas entradas do circuito. A Figura 3.1(a) ilustra uma tabela-verdade para um tipo de circuito lgico de duas
entradas e relaciona todas as combinaes possveis para os nveis lgicos presentes nas entradas A e B com o correspon-

Sada A B C x A B C D x
Entradas 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 0
0 1 0 1 0 0 1 0 0
A B x 0 1 1 0 0 0 1 1 1
0 0 1 1 0 0 0 0 1 0 0 1
0 1 0 1 0 1 0 0 1 0 1 0
1 0 1 1 1 0 0 0 1 1 0 0
1 1 0 1 1 1 1 0 1 1 1 1
1 0 0 0 0
(b) 1 0 0 1 0
1 0 1 0 0
A 1 0 1 1 1
? x
B 1 1 0 0 0
1 1 0 1 0
(a) 1 1 1 0 0
1 1 1 1 1

(c)

FIGURA 3.1 Exemplos de tabelas-verdade para circuitos de (a) duas, (b) trs e (c) quatro entradas.

Tocci.indb 50 10/05/2011 18:14:55


Captulo 3 Descrevendo circuitos lgicos 51

dente nvel lgico na sada x. A primeira linha da tabela mostra que, quando A e B forem nvel 0, a sada x ser nvel 1, o
que equivale a dizer estado 1. A segunda linha mostra que, quando a entrada B passa para o estado 1, de modo que A = 0 e
B= 1, a sada x torna-se 0. Da mesma maneira, a tabela mostra o que acontece com o estado lgico da sada para qualquer
conjunto de condies de entrada.
As figuras 3.1(b) e (c) mostram exemplos de tabelas-verdade para circuitos lgicos de trs e quatro entradas. Veja
novamente que cada tabela relaciona, no lado esquerdo, todas as combinaes para os nveis lgicos de entrada e, no lado
direito, os nveis lgicos resultantes para a sada x. evidente que o valor atual da sada x depende do tipo de circuito lgico.
Observe que h quatro linhas para uma tabela-verdade de duas entradas, oito linhas para uma tabela-verdade de trs
entradas e 16 linhas para uma tabela-verdade de quatro entradas. O nmero de combinaes de entrada igual a 2N para
uma tabela-verdade de N entradas. Observe tambm que a lista das combinaes possveis uma sequncia de contagem
binria, por isso muito fcil preencher uma tabela sem esquecer nenhuma combinao.

Questes para reviso

1. Qual ser o estado lgico da sada para o circuito de quatro entradas representado na Figura 3.1(c) quando todas as
entradas, exceto a B, forem nvel 1?
2. Repita a Questo 1 para as seguintes condies de entrada: A = 1, B = 0, C = 1 e D = 0.
3. Quantas linhas deve ter uma tabela que representa um circuito de cinco entradas?

3.3 OPERAO OR (OU) COM PORTA OR


A operao OR a primeira das trs operaes booleanas bsicas a ser estudada. Um exemplo dessa operao o que
acontece no forno de cozinha. A lmpada dentro do forno deve se acender se o interruptor for acionado OU (OR) se a porta
do forno for aberta. A letra A pode ser usada para representar interruptor acionado (verdadeiro ou falso) e a letra B, porta
do forno aberta (verdadeiro ou falso). A letra x pode representar lmpada acesa (verdadeiro ou falso). A tabela-verdade na
Figura 3.2(a) mostra o que acontece quando duas entradas lgicas, A e B, so combinadas usando uma operao OR para
produzir a sada x. A tabela mostra que x ser um nvel lgico 1 para cada combinao de nveis de entradas em que uma
ou mais entradas forem 1. O nico caso em que x um nvel 0 acontece quando ambas as entradas so 0.
A expresso booleana para a operao OR
x=A+B
Nessa expresso, o sinal + no representa a adio convencional; ele representa a operao OR. Essa operao
semelhante operao convencional de adio, exceto para o caso em que A e B forem 1; a operao lgica OR produz
1+1 = 1, no 1 + 1 = 2. Na lgebra booleana, 1 significa nvel alto, conforme j vimos, de modo que nunca podemos ter
um resultado maior que 1. O mesmo vlido para uma combinao de trs entradas que usa a operao OR. Ento, teremos
x = A + B + C. Se considerarmos as trs entradas em nvel 1, teremos
x=1+1+1=1
A expresso x = A + B lida como x igual a A ou B, o que significa que x ser 1 quando A ou B for 1. Da mesma
maneira, a expresso x = A + B + C lida como x igual a A ou B ou C, o que significa que x ser 1 quando A ou B
ou C ou qualquer combinao delas for 1. Para descrever esse circuito em linguagem normal, poderamos dizer que x
verdadeiro (1) QUANDO A verdadeiro (1) OU B verdadeiro (1) OU C verdadeiro (1).

OR
A B x=A+B
0 0 0 A x=A+B
0 1 1
1 0 1 B
1 1 1
Porta OR
(a)
(b)

FIGURA 3.2 (a) Tabela-verdade que define a operao OR; (b) smbolo de uma porta OR de duas entradas.

Tocci.indb 51 10/05/2011 18:14:56


52 Sistemas digitais princpios e aplicaes

Porta OR
Em circuitos digitais, uma porta OR2 um circuito que tem duas ou mais entradas e cuja sada igual combinao
das entradas por meio da operao OR. A Figura 3.2(b) mostra o smbolo lgico para uma porta OR de duas entradas. As
entradas A e B so nveis lgicos de tenso, e a sada x um nvel lgico de tenso cujo valor o resultado da operao
OR entre A e B; ou seja, x = A + B. Em outras palavras, a porta OR opera de modo que sua sada ser ALTA (nvel lgico
1) se a entrada A ou B ou ambas forem nvel lgico 1. A sada de uma porta OR ser nvel BAIXO (nvel lgico 0) apenas
se todas as entradas forem nvel 0.
Essa mesma ideia pode ser estendida para quando houver mais de duas entradas. A Figura 3.3 mostra uma porta OR
de trs entradas e sua tabela-verdade. Uma anlise dessa tabela mostra, novamente, que a sada ser 1 para todos os casos
em que uma ou mais entradas forem 1. Esse princpio geral o mesmo para portas OR com qualquer nmero de entradas.
Usando a linguagem da lgebra booleana, a sada x pode ser expressa como x = A + B + C (enfatizando, novamente,
que o sinal + representa a operao OR). A sada de qualquer porta OR pode ser expressa como uma combinao OR das
vrias entradas. Colocaremos isso em prtica quando analisarmos circuitos lgicos.

A B C x=A+B+C
0 0 0 0
0 0 1 1
A x=A+B+C 0 1 0 1
B 0 1 1 1
C 1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 1

FIGURA 3.3 Smbolo e tabela-verdade para uma porta OR de trs entradas.

Resumo da operao OR
Os pontos importantes a serem lembrados em relao operao OR e s portas OR so:
1. A operao OR gera um resultado (sada) 1 sempre que quaisquer das entradas for 1. Caso contrrio, a sada 0.
2. Uma porta OR um circuito lgico que realiza uma operao OR sobre as entradas do circuito.
3. A expresso x = A + B lida x igual a A ou B .

Exemplo 3.1

Muitos sistemas de controle industrial requerem a ativao de uma funo de sada sempre que qualquer de suas vrias
entradas for ativada. Por exemplo, em um processo qumico, pode ser necessrio que um alarme seja ativado sempre
que a temperatura do processo exceder um valor mximo ou sempre que a presso ultrapassar certo limite. A Figura 3.4

Transdutor de VT
TH
temperatura Comparador

VTR Alarme

VP
Transdutor PH
de presso Comparador

Processo qumico

VPR

FIGURA 3.4 Exemplo do uso de uma porta OR em um sistema de alarme.

2 O termo porta vem da operao habilitar/desabilitar, a ser discutida no Captulo 4.

Tocci.indb 52 10/05/2011 18:14:56


Captulo 3 Descrevendo circuitos lgicos 53

um diagrama em bloco desse sistema. O circuito transdutor de temperatura produz uma tenso de sada proporcional
temperatura do processo. Essa tenso, VT, comparada com uma tenso de referncia para temperatura, VTR, em um
circuito comparador de tenso. A sada do comparador de tenso, TH, normalmente uma tenso baixa (nvel lgico 0),
mas essa sada muda para uma tenso alta (nvel lgico 1) quando VT excede VTR, indicando que a temperatura do pro-
cesso muito alta. Uma configurao similar usada para a medio de presso, de modo que a sada do comparador,
PH, muda de BAIXA para ALTA quando a presso for muito alta. Qual a finalidade da porta OR?
Soluo
Como queremos que o alarme seja ativado quando a temperatura ou a presso for muito alta, evidente que as sadas
dos comparadores podem ser as entradas de uma porta OR de duas entradas. Assim, a sada da porta OR muda para nvel
ALTO (1) para cada condio de alarme, ativando-o. Obviamente, essa mesma ideia pode ser estendida para situaes
com mais de duas variveis de processo.

Exemplo 3.2

Determine a sada da porta OR na Figura 3.5. As entradas A e B da porta OR variam de acordo com o diagrama de tempo
mostrado. Por exemplo, a entrada A comea no nvel BAIXO no instante t0, muda para ALTO em t1, volta para BAIXO
em t3, e assim por diante.

A 1
A Sada = A + B
0
B
B 1

1
Sada

t0 t1 t2 t3 t4 t5 t6 t7

Tempo

FIGURA 3.5 Exemplo 3.2.

Soluo
A sada da porta OR ser ALTA sempre que qualquer entrada for ALTA. Entre os instantes t0 e t1, as duas entradas so
BAIXAS, portanto SADA = BAIXO. Em t1, a entrada A muda para ALTO, enquanto a entrada B permanece BAIXO.
Isso faz com que a SADA seja ALTA em t1 e permanea ALTA at t4, visto que durante esse intervalo uma ou ambas as
entradas so ALTAS. Em t4, a entrada B muda de 1 para 0, de modo que as duas entradas so BAIXAS, levando a SADA
de volta para BAIXO. Em t5, a entrada A vai para ALTO, mandando a SADA de volta para ALTO, onde permanece pelo
restante de tempo mostrado.

Exemplo 3.3A

Para a situao representada na Figura 3.6, determine a forma de onda na sada da porta OR.
Soluo
As entradas A, B e C da porta OR de trs entradas variam, conforme mostrado pela forma de onda. A sada da porta
OR determinada, sabendo que ser nvel ALTO sempre que qualquer uma das entradas for nvel ALTO. Usando esse
raciocnio, a forma de onda da sada da porta OR a mostrada na figura. Uma ateno particular deve ser dada ao que
ocorre no instante t1. O diagrama mostra que nesse instante a entrada A muda de ALTO para BAIXO, enquanto a entrada
B est mudando de BAIXO para ALTO. Visto que essas entradas fazem suas transies quase simultaneamente e que
essas transies tm um certo tempo de durao, h um curto intervalo em que ambas as entradas da porta OR esto na
faixa indefinida entre 0 e 1. Quando isso ocorre, a sada da porta OR tambm apresenta um valor nessa faixa, como

Tocci.indb 53 10/05/2011 18:14:56


54 Sistemas digitais princpios e aplicaes

1
A
0
A
1
B A+B+C
0 B

1 C
C
0

1
SADA
0 SADA
t1
Tempo

FIGURA 3.6 Exemplos 3.3A e B.

evidenciado pelo pulso esprio (glitch ou spike) na forma de onda de sada em t1. A ocorrncia do spike e seu tamanho
(amplitude e largura) dependem da velocidade em que ocorrem as transies nas entradas.

Exemplo 3.3B

O que aconteceria com o glitch na sada do circuito da Figura 3.6 se a entrada C fosse colocada no estado ALTO enquanto
ocorresse a transio de A e B no instante t1?
Soluo
Com a entrada C em nvel ALTO no instante t1, a sada da porta OR permanece no estado ALTO, independentemente
do que ocorrer nas outras entradas, porque qualquer entrada em nvel ALTO mantm a sada de uma porta OR em nvel
ALTO. Portanto, no aparecer o glitch na sada.

Questes para reviso

1. Qual o nico conjunto de condies de entrada que produz uma sada BAIXA para qualquer porta OR?
2. Escreva a expresso booleana para uma porta OR de seis entradas.
3. Se a entrada A na Figura 3.6 for mantida em nvel 1, qual ser a forma de onda de sada?

3.4 OPERAO AND (E) COM PORTA AND


A operao AND a segunda operao booleana bsica. Como exemplo do uso do lgico AND, considere uma
secadora de roupas que s opera se o temporizador estiver acima de zero AND (E) a porta estiver fechada. Digamos
que a letra A representa temporizador acima de zero, que B representa porta fechada, e x, aquecedor e motor ligados. A
tabela-verdade na Figura 3.7(a) mostra o que acontece quando duas entradas lgicas, A e B, so combinadas usando uma
operao AND para gerar a sada x. A tabela mostra que x ser nvel lgico 1 apenas quando A e B forem 1. Para qualquer
outro caso em que uma das entradas for 0, a sada ser 0.
A expresso booleana para a operao AND
x=AB

AND
A B x=AB
0 0 0
A
0 1 0
x = AB
1 0 0
1 1 1 B
Porta AND
(a) (b)

FIGURA 3.7 (a) Tabela-verdade para a operao AND; (b) smbolo da porta AND.

Tocci.indb 54 10/05/2011 18:14:57


Captulo 3 Descrevendo circuitos lgicos 55

Nessa expresso, o sinal () representa a operao booleana AND; no multiplicao. Entretanto, a operao AND
sobre variveis booleanas equivale multiplicao convencional, conforme anlise da tabela-verdade mostrada; por isso,
considera-se que sejam a mesma coisa. Essa caracterstica pode ser til na anlise de expresses lgicas que contenham
operaes AND.
A expresso x = A B lida como x igual a A e B, o que significa que x ser 1 somente quando A e B forem, ambas,
nvel 1. O sinal normalmente omitido, e a expresso torna-se simplesmente x = AB. No caso de se efetuar a operao
AND de trs entradas, teremos x = A B C = ABC. Essa expresso lida como x igual a A e B e C, o que significa
que x ser 1 apenas quando as variveis A, B e C forem 1.

Porta AND
O smbolo lgico para uma porta AND de duas entradas mostrado na Figura 3.7(b). A sada da porta AND igual
ao produto lgico AND das entradas, que x = AB. Em outras palavras, a porta AND um circuito que opera de modo
que sua sada seja nvel ALTO somente quando todas as entradas tambm o forem. Para todos os outros casos, a sada da
porta AND nvel BAIXO.
Essa mesma operao caracterstica de portas AND com mais de duas entradas. Por exemplo, uma porta AND de
trs entradas e sua tabela-verdade correspondente so mostradas na Figura 3.8. Observe, novamente, que a sada da porta
1 apenas no caso em que A = B = C = 1. A expresso para a sada x = ABC. Para uma porta AND de quatro entradas, a
sada x = ABCD, e assim por diante.
Observe a diferena entre os smbolos das portas AND e OR. Sempre que houver o smbolo de uma porta AND em
um diagrama de circuito lgico, a sada ser nvel ALTO somente quando todas as entradas forem nvel ALTO. Em relao
ao smbolo de uma porta OR, a sada ser nvel ALTO quando qualquer entrada for nvel ALTO.

A B C x = ABC
0 0 0 0
0 0 1 0
0 1 0 0 A
0 1 1 0 B x = ABC
1 0 0 0 C
1 0 1 0
1 1 0 0
1 1 1 1

FIGURA 3.8 Tabela-verdade e smbolo para uma porta AND de trs entradas.

Resumo da operao AND


1. A operao AND realizada da mesma maneira que a multiplicao convencional de 1s e 0s.
2. Uma porta AND um circuito lgico que realiza uma operao AND sobre as entradas do circuito.
3. A sada de uma porta AND ser 1 somente quando todas as entradas forem 1; para todos os outros casos, a sada
ser 0.
4. A expresso x = AB lida como x igual a A e B.

Exemplo 3.4

Determine a sada x da porta AND na Figura 3.9 para as formas de onda de entrada dadas.
Soluo
A sada de uma porta AND determinada nvel ALTO, desde que todas as entradas sejam nvel ALTO ao mesmo tempo.
Para as formas de onda de entrada dadas, essa condio satisfeita apenas durante os intervalos t2 t3 e t6 t7. Em todos
os outros momentos, uma ou mais entradas so 0, produzindo, portanto, uma sada em nvel BAIXO. Observe que a
mudana de nvel em uma entrada ocorre quando a outra est em nvel BAIXO, sem efeito na sada.

Tocci.indb 55 10/05/2011 18:14:57


56 Sistemas digitais princpios e aplicaes

1
A
0 A x = AB
1 B
B
0

1
x
0
t0 t1 t2 t3 t4 t5 t6 t7

FIGURA 3.9 Exemplo 3.4

Exemplo 3.5A

Determine a forma de onda de sada para a porta AND mostrada na Figura 3.10.

A A
x
B B
x

FIGURA 3.10 Exemplos 3.5A e 3.5B.

Soluo
A sada x ser 1 apenas quando A e B forem nvel ALTO ao mesmo tempo. Usando essa regra, podemos determinar a
forma de onda de x, conforme mostrado na figura.

Observe que a forma de onda de x ser 0 sempre que B for 0, independentemente do sinal em A. Observe tambm que
sempre que B for 1, a forma de onda de x ser a mesma de A. Assim, podemos pensar em B como uma entrada de controle
cujo nvel lgico determina se a forma de onda em A passa ou no para a sada x. Nessa situao, a porta AND usada
como circuito inibidor. Podemos dizer que B = 0 a condio de inibio que produz 0 na sada. Por outro lado, quando
B = 1, temos a condio de habilitao, que permite ao sinal em A alcanar a sada. Essa operao de controle de inibio
uma aplicao importante das portas AND, que encontraremos mais adiante.

Exemplo 3.5B

O que acontecer com a forma de onda da sada x, na Figura 3.10, se a entrada B for mantida em nvel 0?
Soluo
Com B mantida em nvel BAIXO, a sada x tambm permanecer em nvel BAIXO. Isso pode ser interpretado de duas
maneiras diferentes. Primeiro, com B = 0 temos x = A B = A 0 = 0, visto que qualquer multiplicao (operao AND)
por 0 tem como resultado 0. Outro modo de perceber isso que uma porta AND requer que todas as entradas sejam nvel
ALTO para que a sada seja nvel ALTO, e isso no acontece se B for mantida em nvel BAIXO.

Questes para reviso

1. Qual a nica combinao de entrada que produz uma sada em nvel ALTO em uma porta AND de cinco entradas?
2. Qual nvel lgico deve ser aplicado segunda entrada de uma porta AND de duas entradas se o sinal lgico na
primeira entrada for desabilitado (impossibilitado) para alcanar a sada?
3. Verdadeiro ou falso: a sada de uma porta AND sempre ser diferente da sada de uma porta OR para as mesmas
condies de entrada.

Tocci.indb 56 10/05/2011 18:14:57


Captulo 3 Descrevendo circuitos lgicos 57

3.5 OPERAO NOT (NO) OU INVERSO


A operao NOT, tambm denominada INVERSO, diferente das operaes OR e AND pelo fato de poder ser
realizada sobre uma nica varivel de entrada. Por exemplo, se a varivel A for submetida operao de inverso, o re-
sultado x pode ser expresso como
x=A
onde a barra sobre o nome da varivel representa a operao de inverso. Essa expresso lida como x igual a A ne-
gado, o x igual ao inverso de A ou x igual ao complemento de A. Cada uma dessas expresses usada comumente,
e todas indicam que o valor lgico de x = A o oposto do valor lgico de A. A tabela-verdade da Figura 3.11(a) esclarece
isso para os dois casos: A = 0 e A = 1. Isto ,
0 = 1 porque 0 1 NEGADO
e
1 = 0 porque 1 0 NEGADO
A operao NOT tambm conhecida como inverso ou complemento, termos que sero usados indistintamente ao
longo deste livro. Embora usemos a barra sobre a varivel para indicar a inverso, importante mencionar que um outro
indicador de inverso o apstrofo (). Isto ,
A = A
Ambos podem ser interpretados como indicadores de inverso.

Circuito NOT (INVERSOR)


A Figura 3.11(b) mostra o smbolo para o circuito NOT, mais comumente denominado INVERSOR. Esse circuito
tem sempre apenas uma entrada, e seu nvel lgico de sada o oposto ao nvel lgico de entrada. A Figura 3.11(c) mostra
como um INVERSOR afeta um sinal de entrada. Ele inverte (complementa) o sinal de entrada em todos os pontos da forma
de onda, de maneira que se a entrada = 0, a sada = 1, e vice-versa.

NOT 1
NOT A
A x=A 0
0 1 A x=A
1 0 1
x
(a) A presena de um 0
pequeno crculo
sempre denota inverso (c)

(b)

FIGURA 3.11 (a) Tabela-verdade; (b) smbolo para o INVERSOR (circuito NOT); (c) exemplos de formas de ondas.

Aplicao 3.1

A Figura 3.12 mostra uma tpica aplicao da porta NOT. O boto conectado a um fio metlico para produzir um lgico
1 (verdadeiro) quando pressionado. s vezes queremos saber se o boto no est sendo pressionado; por isso, esse circuito
fornece uma expresso que verdadeira quando isso ocorre.

Tocci.indb 57 10/05/2011 18:14:58


58 Sistemas digitais princpios e aplicaes

+5 V

Boto de Nvel lgico 1 (verdadeiro) quando pressionado


pressionar (falso quando o boto no est sendo pressionado)

Pressionado
NO pressionado

Nvel lgico 1 (verdadeiro) quando no pressionado


(falso quando o boto est sendo pressionado)

FIGURA 3.12 Uma porta NOT indicando que um boto no est pressionado quando a sada verdadeira.

Resumo das operaes booleanas


As regras para as operaes OR, AND e NOT podem ser resumidas como a seguir:
OR AND NOT
0+0=0 00=0 0=1
0+1=1 01=0 1=0
1+0=1 10=0
1+1=1 11=1

Questes para reviso

1. A sada do INVERSOR na Figura 3.11 conectada entrada de um segundo INVERSOR. Determine o nvel lgico
da sada para cada nvel lgico da entrada A.
2. A sada da porta AND na Figura 3.7 conectada entrada de um INVERSOR.
Determine a tabela-verdade mostrando a sada y do INVERSOR para cada combinao das entradas A e B.

3.6 DESCREVENDO CIRCUITOS LGICOS ALGEBRICAMENTE


Qualquer circuito lgico, independente de sua complexidade, pode ser descrito usando-se as trs operaes booleanas
bsicas, porque as portas OR, AND e INVERSOR so os blocos fundamentais dos sistemas digitais. Por exemplo, considere
o circuito da Figura 3.13(a), o qual tem trs entradas (A, B e C) e uma nica sada (x). Usando as expresses booleanas de
cada porta, podemos determinar facilmente a expresso lgica da sada.

A
AB
B x=AB+C
C

(a)

A A+B
B x = ( A + B) C
C

(b)

FIGURA 3.13 (a) Circuito lgico e suas expresses booleanas; (b) circuito lgico com expresso que requer parnteses.

Tocci.indb 58 10/05/2011 18:14:58


Captulo 3 Descrevendo circuitos lgicos 59

A expresso para a sada de uma porta AND escrita assim: A B. Essa sada da porta AND est conectada em uma
entrada da porta OR cuja entrada a C. A porta OR opera sobre as entradas de modo que a sada uma soma lgica delas.
Assim, podemos expressar a sada da porta OR como x = A B + C (essa expresso final poderia ser escrita como x = C +
A B, visto que no importa qual termo da soma lgica escrito primeiro).

Precedncia de operador
Ocasionalmente, pode haver alguma confuso em determinar qual operao deve ser realizada primeiro em uma
expresso. A expresso A B + C pode ser interpretada de duas maneiras diferentes: (1) operao OR de A B com C ou
(2) operao AND de A com a soma lgica B + C. Para evitar essa confuso, deve ficar entendido que se uma expresso
tiver operaes AND e OR, a operao AND realizada primeiro, a menos que existam parnteses na expresso. Nesse
caso, a operao dentro dos parnteses realizada primeiro. Essa regra para determinar a ordem das operaes a mesma
usada na lgebra convencional.
Para ilustrar o fato, considere o circuito da Figura 3.13(b). A expresso para a sada da porta OR simplesmente A+B.
Essa sada usada como uma entrada da porta AND cuja outra entrada C. Assim, expressamos a sada da porta AND como
x = (A + B) C. Observe que, nesse caso, o uso dos parnteses indica que a operao OR entre A e B realizada antes e,
a seguir, a operao AND com C. Sem os parnteses, a expresso seria interpretada incorretamente, visto que A+BC
significa a operao OR de A com o produto lgico B C.

Circuitos com INVERSORES lgicos


Sempre que um INVERSOR estiver presente em um circuito lgico, a expresso para a sada do INVERSOR ser
igual expresso de entrada com uma barra sobre ela. A Figura 3.14 mostra dois exemplos usando INVERSORES. Na
Figura 3.14(a), a entrada A alimentada por meio de um INVERSOR, cuja sada , portanto, A. A sada do INVERSOR
alimenta uma porta OR juntamente com B, de modo que a sada da OR igual a A + B. Observe que a barra est apenas
sobre a varivel A, significando que primeiro inverte-se A e, em seguida, faz-se a operao OR com B.
Na Figura 3.14(b), a sada da porta OR igual a A + B, entrada de um INVERSOR. Portanto, a sada do INVERSOR
igual a (A + B), visto que ele inverte a expresso completa de entrada. Observe que a barra cobre a expresso de entrada
(A + B). Isso importante porque, conforme veremos depois, as expresses (A + B) e (A + B) no so equivalentes. A
expresso (A + B) significa que realizada a operao OR entre A e B e, em seguida, a soma lgica invertida, ao passo
que a expresso (A + B) indica que A invertida, B invertida e o resultado a operao OR dessas variveis invertidas.
A Figura 3.15 mostra mais dois exemplos que devem ser analisados cuidadosamente. Observe o uso de dois conjuntos
separados de parnteses na Figura 3.15(b). Note tambm que na Figura 3.15(a) a varivel de entrada A est conectada a
duas portas diferentes.

A
A x=A+B A A+B
B B x=A+B

(a) (b)

FIGURA 3.14 Circuitos com INVERSORES.

A
A ABC
B
C
x = ABC ( A + D)
A A+D
A+D

(a)

FIGURA 3.15 Mais exemplos (continua).


A A+B
( A + B) C ( A + B) C
B

C
D + ( A + B)C
D
Tocci.indb 59 10/05/2011 18:14:58
B
C
x = ABC ( A + D)
A A+D
A+D

60 Sistemas digitais princpios e aplicaes (a)

A A+B
( A + B) C ( A + B) C
B

C
D + ( A + B)C
D

x = [D + ( A + B) C] E
(b)

FIGURA 3.15 Mais exemplos (continuao).

Questes para reviso

1. Na Figura 3.15(a), troque cada porta AND por uma OR e cada porta OR por uma AND. Em seguida, escreva a ex-
presso para a sada x.
2. Na Figura 3.15(b), troque cada porta AND por uma OR e cada porta OR por uma AND. Em seguida, escreva a ex-
presso para a sada x.

3.7 AVALIANDO AS SADAS DOS CIRCUITOS LGICOS


De posse da expresso booleana para a sada de um circuito, podemos obter o nvel lgico da sada para qualquer
conjunto de nveis lgicos de entrada. Por exemplo, suponha que desejemos saber o nvel lgico da sada x parao circuito
da Figura 3.15(a) para o caso em que A = 0, B = 1, C = 1 e D = 1. Assim como na lgebra convencional, o valor de x pode
ser encontrado com a substituio dos valores das variveis na expresso e realizando a operao indicada, conforme
mostrado a seguir:
x = ABC(A + D)
= 0 1 1 (0 + 1)
= 1 1 1 (0 + 1)
= 1 1 1 (1)
=1110
=0
Com mais uma ilustrao, vamos determinar a sada do circuito na Figura 3.15(b) para A = 0, B = 0, C = 1, D = 1 e E = 1.
x = [D + (A + B)C] E
= [1 + (0 + 0) 1] 1
= [1 + 0 1] 1
= [1 + 0] 1
= [1 + 1] 1
=11
=1
Em geral, as regras a seguir tm de ser obedecidas quando avaliamos uma expresso booleana:
1. Primeiro, realize as inverses de termos simples; ou seja, 0 = 1 ou 1 = 0.
2. Em seguida, realize as operaes dentro de parnteses.
3. Realize as operaes AND antes das operaes OR, a menos que os parnteses indiquem o contrrio.
4. Se uma expresso tiver uma barra sobre, realize a operao indicada pela expresso e, em seguida, inverta o
resultado.
Para praticar, determine as sadas dos dois circuitos na Figura 3.15 no caso em que todas as entradas forem 1. As
respostas so x = 0 e x = 1, respectivamente.

Tocci.indb 60 10/05/2011 18:14:58


Captulo 3 Descrevendo circuitos lgicos 61

Anlise utilizando uma tabela


Quando se tem um circuito lgico combinacional e se deseja saber como ele funciona, a melhor maneira de analis-lo
utilizar uma tabela-verdade. Esse mtodo:

Permite que se analise uma porta ou combinao lgica de cada vez.


Permite que se confira facilmente o trabalho.
Quando o trabalho se encerra, h uma tabela que ajuda a verificao de erros do circuito lgico.

Lembre-se de que uma tabela-verdade lista as possveis combinaes de entrada em ordem numrica. Para cada pos-
svel combinao de entrada, podemos determinar o estado lgico em cada ponto (n) do circuito lgico, inclusive a sada.
Veja, por exemplo, a Figura 3.16(a). H vrios ns intermedirios que no so entradas nem sadas do circuito, so apenas
conexes entre a sada de uma porta e a entrada de outra. Nesse diagrama, elas foram chamadas de u, v e w. O primeiro
passo, aps listar todas as combinaes de entrada, criar uma coluna na tabela-verdade para cada sinal intermedirio
(n), como mostrado na Figura 3.16(b). O n u foi acrescentado como o complemento de A.
O prximo passo preencher a coluna v como mostrado na Figura 3.16(c). No diagrama, podemos ver que v =AB.
O n v deve ser ALTO quando A (n u) for ALTO AND B for ALTO. Isso ocorre sempre que A for BAIXO AND B
forALTO. O terceiro passo prever os valores do n w que o produto lgico de BC. Essa coluna ser ALTA quando B for
ALTOAND C for ALTO, como mostra a Figura 3.16(d). O passo final combinar logicamente colunas v e w para prever
a sada x. Como x = v + w, a sada x deve ser ALTA quando v for ALTO OR w for ALTO, como mostra a Figura 3.16(e).

u=A

B
v = AB
x
w = BC

(a)

A B C u= v= w= x= A B C u= v= w= x=
A AB BC v+w A AB BC v+w
0 0 0 1 0 0 0 1 0
0 0 1 1 0 0 1 1 0
0 1 0 1 0 1 0 1 1
0 1 1 1 0 1 1 1 1
1 0 0 0 1 0 0 0 0
1 0 1 0 1 0 1 0 0
1 1 0 0 1 1 0 0 0
1 1 1 0 1 1 1 0 0

(b) (c)

A B C u= v= w= x= A B C u= v= w= x=
A AB BC v+w A AB BC v+w
0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 1 1 0 0 0 0 1 1 0 0 0
0 1 0 1 1 0 0 1 0 1 1 0 1
0 1 1 1 1 1 0 1 1 1 1 1 1
1 0 0 0 0 0 1 0 0 0 0 0 0
1 0 1 0 0 0 1 0 1 0 0 0 0
1 1 0 0 0 0 1 1 0 0 0 0 0
1 1 1 0 0 1 1 1 1 0 0 1 1

(d) (e)

FIGURA 3.16 Anlise de um circuito lgico usando tabelas-verdade.

Tocci.indb 61 10/05/2011 18:14:59


62 Sistemas digitais princpios e aplicaes

Se voc construiu o circuito e ele no estava produzindo a sada correta para x em todas as condies, essa tabela
pode ser usada para encontrar o problema. O procedimento geral testar o circuito em todas as combinaes de entradas.
Se qualquer combinao de entrada produz uma sada incorreta (ou seja, um erro), compare o estado lgico real de cada
n intermedirio no circuito com o valor terico correto na tabela ao aplicar a condio de entrada. Se o estado lgico para
um n intermedirio est correto, o problema deve estar direita desse n. Se o estado lgico para um n intermedirio
est incorreto, o problema deve estar esquerda desse n (ou esse n est com algum curto-circuito). Procedimentos
detalhados de verificao de erros e possveis falhas no circuito sero abordados de modo mais detalhado no Captulo 4.

Exemplo 3.6

Analise a operao da Figura 3.15(a) criando uma tabela que mostre o estado lgico em cada n do circuito.
Soluo
Preencha a coluna t com 1s sempre que A = 0 e B = 1 e C = 1.
Preencha a coluna u com 1s sempre que A = 1 ou D = 1.
Preencha a coluna v com o complemento de todas as linhas da coluna u.
Preencha a coluna x com 1s sempre que t = 1 e v = 1.

A B C D t = ABC u=A+D v=A+D x = tv


0 0 0 0 0 0 1 0
0 0 0 1 0 1 0 0
0 0 1 0 0 0 1 0
0 0 1 1 0 1 0 0
0 1 0 0 0 0 1 0
0 1 0 1 0 1 0 0
0 1 1 0 1 0 1 1
0 1 1 1 1 1 0 0
1 0 0 0 0 1 0 0
1 0 0 1 0 1 0 0
1 0 1 0 0 1 0 0
1 0 1 1 0 1 0 0
1 1 0 0 0 1 0 0
1 1 0 1 0 1 0 0
1 1 1 0 0 1 0 0
1 1 1 1 0 1 0 0

Questes para reviso

1. Use a expresso para a sada x para determinar a sada do circuito na Figura 3.15(a) para as condies: A = 0, B = 1,
C = 1 e D = 0.
2. Use a expresso para a sada x para determinar a sada do circuito na Figura 3.15(b) para as condies: A = B = E =1,
C = D = 0.
3. Determine as respostas das questes 1 e 2, encontrando os nveis lgicos presentes em cada sada das portas, usando
uma tabela como a da Figura 3.16.

3.8 IMPLEMENTANDO CIRCUITOS A PARTIR DE EXPRESSES BOOLEANAS


Quando a operao de um circuito definida por uma expresso booleana, podemos desenhar o diagrama do circuito
lgico diretamente a partir da expresso. Por exemplo, se precisarmos de um circuito definido por x = A B C, saberemos
imediatamente que precisamos de uma porta AND de trs entradas. Se precisarmos de um circuito definido por x = A +B,
poderemos usar uma porta OR de duas entradas com um INVERSOR em uma das entradas. O mesmo raciocnio pode ser
estendido para circuitos mais complexos.

Tocci.indb 62 10/05/2011 18:14:59


Captulo 3 Descrevendo circuitos lgicos 63

Suponha que desejemos construir um circuito cuja sada seja y = AC + BC + ABC. Essa expresso booleana contm
trs termos (AC, BC, ABC), sobre os quais aplicada a operao OR. Essa expresso nos diz que necessria uma porta
OR de trs entradas iguais a AC, BC e ABC. Isso est ilustrado na Figura 3.17(a), que traz desenhada uma porta OR de
trs entradas nomeadas AC, BC e ABC.
Cada entrada da porta OR tem um termo que um produto lgico AND, o que significa que uma porta AND, com
as entradas apropriadas, pode ser usada para gerar esses termos. Isso indicado na Figura 3.17(b), que mostra o diagrama
final do circuito. Observe que o uso de INVERSORES produz os termos A e C presentes na expresso.
Esse mesmo procedimento geral pode ser seguido sempre, embora mais adiante veremos outras tcnicas mais efi-
cientes. Neste momento, entretanto, esse mtodo simples ser usado para reduzir a quantidade de conhecimentos novos
a serem estudados.

AC
BC y = AC + BC + ABC
ABC

(a)

A AC
C

B
B BC
C y = AC + BC + ABC
C

A
B ABC

C
(b)

FIGURA 3.17 Construindo um circuito lgico a partir de uma expresso booleana.

Exemplo 3.7

Desenhe o diagrama do circuito que implemente a expresso x = (A + B) (B + C).


Soluo
Essa expresso mostra que os termos A + B e B + C so entradas de uma porta AND, e cada um deles gerado por portas
OR independentes. O resultado demonstrado na Figura 3.18.

A A+B

B x = (A + B)(B + C)

B
B+C

FIGURA 3.18 Exemplo 3.7.

Tocci.indb 63 10/05/2011 18:14:59


64 Sistemas digitais princpios e aplicaes

Questes para reviso

1. Desenhe o diagrama do circuito que implementa a expresso x = ABC(A + D) usando portas de, no mximo, trs
entradas.
2. Desenhe o diagrama do circuito para a expresso y = AC + BC + ABC.
3. Desenhe o diagrama do circuito para x = [D + (A + B)C] E.

3.9 PORTAS NOR E PORTAS NAND


Dois outros tipos de portas lgicas, NAND e NOR, so muito usados em circuitos digitais. Na realidade, essas portas
combinam as operaes bsicas AND, OR e NOT e, assim, relativamente simples escrever suas expresses booleanas.

Porta NOR (NO-OU)


O smbolo de uma porta NOR de duas entradas mostrado na Figura 3.19(a). o mesmo que o da porta OR, exceto
pelo pequeno crculo na sada que representa a operao de inverso. Portanto, a operao da porta NOR semelhante
da porta OR seguida de um INVERSOR; ento, os circuitos na Figura 3.19(a) e (b) so equivalentes, e a expresso de
sada para a porta NOR x = A + B.
A tabela-verdade da Figura 3.19(c) mostra que a sada da porta NOR exatamente o inverso da sada da porta OR
para todas as condies possveis de entrada. A sada de uma porta OR ser nvel ALTO quando qualquer entrada for nvel
ALTO; a sada de uma porta NOR ser nvel BAIXO quando qualquer entrada for nvel ALTO. Essa mesma operao pode
ser estendida para portas NOR com mais de duas entradas.

x=A+B
A

B
Denota inverso

(a)

A A+B x=A+B

(b)

OR NOR

A B A+B A+B
0 0 0 1
0 1 1 0
1 0 1 0
1 1 1 0
(c)

FIGURA 3.19 (a) Smbolo da porta NOR; (b) circuito equivalente; (c) tabela-verdade.

Exemplo 3.8

Determine a forma de onda na sada de uma porta NOR para as formas de onda de entrada mostradas na Figura 3.20.
Soluo
Uma maneira de determinar a forma de onda de sada de uma porta NOR encontrar primeiro a forma de onda de sada
da OR e, em seguida, invert-la (trocar todos os 1s por 0s e vice-versa). Outra alternativa usar o fato de que a sada de
uma porta NOR ser nvel ALTO somente quando todas as entradas forem nvel BAIXO. Assim, voc pode analisar as
formas de onda de entrada, encontrar os intervalos de tempo em que todas esto em nvel BAIXO e traar, para esses

Tocci.indb 64 10/05/2011 18:14:59


Captulo 3 Descrevendo circuitos lgicos 65

intervalos, o nvel ALTO da sada da porta NOR. A sada da porta NOR ser nvel BAIXO para todos os outros intervalos.
A forma de onda resultante da sada mostrada na figura.

1
A
0 A x=A+B

1 B
B
0

1
x
0

FIGURA 3.20 Exemplo 3.8.

Exemplo 3.9

Determine a expresso booleana para uma porta NOR de trs entradas seguida de um INVERSOR.
Soluo
Veja a Figura 3.21, em que mostrado o diagrama do circuito. A expresso na sada da NOR (A + B + C), que ao passar
por um INVERSOR, produz
x = (A + B + C)
A presena de dois sinais de inverso indica que a expresso (A + B + C) foi invertida e, em seguida, invertida novamente.
Deve ficar claro que isso faz com que o resultado da expresso (A + B + C) no se altere. Ou seja,
x = (A + B + C) = (A + B + C)
Sempre que duas barras estiverem sobre a mesma varivel ou expresso, uma cancela a outra, como no exemplo ante-
rior. Entretanto, em casos como A + B, as barras de inverso no se cancelam. Isso porque as barras pequenas invertem,
separadamente, as variveis A e B, enquanto a maior inverte a expresso (A + B). Assim, A + B A + B. Do mesmo
modo, A B AB.

A A+B+C x=A+B+C=A+B+C
B
C

FIGURA 3.21 Exemplo 3.9.

Porta NAND (NO-E)


O smbolo para uma porta NAND de duas entradas mostrado na Figura 3.22(a) e o mesmo que o da porta AND,
exceto pelo pequeno crculo na sada que indica a operao de inverso. Portanto, a operao da porta NAND semelhante
da porta AND seguida de um INVERSOR; assim, os circuitos na Figura 3.22(a) e (b) so equivalentes, e a expresso
de sada para a porta NAND x = AB.
A tabela-verdade da Figura 3.22(c) mostra que a sada da porta NAND exatamente o inverso da porta AND para
todas as condies possveis de entrada. A sada de uma porta AND ser nvel ALTO somente quando todas as entradas
forem nvel ALTO, enquanto a sada de uma porta NAND ser nvel BAIXO somente quando todas as entradas forem
nvel ALTO. Essa mesma caracterstica vlida para portas NAND com mais de duas entradas.

Tocci.indb 65 10/05/2011 18:15:00


66 Sistemas digitais princpios e aplicaes

A x = AB
AND NAND
B
Denota inverso A B AB AB
0 0 0 1
(a) 0 1 0 1
1 0 0 1
1 1 1 0
A AB AB
(c)
B

(b)

FIGURA 3.22 (a) Smbolo da porta NAND; (b) circuito equivalente; (c) tabela-verdade.

Exemplo 3.10

Determine a forma de onda de sada de uma porta NAND que tem as entradas mostradas na Figura 3.23.
Soluo
Uma maneira de fazer isso desenhar primeiramente a forma de onda de sada de uma porta AND e, em seguida, invert-
-la. Uma outra alternativa usar o fato de que a sada de uma porta NAND ser nvel BAIXO somente quando todas as
entradas forem nvel ALTO. Assim, voc pode encontrar esses intervalos de tempo durante os quais todas as entradas
so nvel ALTO e traar, para tais intervalos, o nvel BAIXO da sada da porta NAND. A sada ser nvel ALTO para
todos os outros intervalos.

A A x = AB
B B

FIGURA 3.23 Exemplo 3.10.

Exemplo 3.11

Implemente o circuito lgico que tem como expresso x = AB (C + D) usando apenas portas NOR e NAND.
Soluo
O termo (C + D) a expresso para a sada de uma porta NOR. Deve-se fazer uma operao AND desse termo com A e
B e inverter o resultado; isso, claro, a operao NAND. Assim, o circuito implementado, conforme a Figura 3.24.
Observe que a porta NAND faz a operao AND entre os termos A, B e (C + D) e, em seguida, inverte o resultado completo.

1
C C+D 0
0 1
D 1 x = AB(C + D)
B
1
A

FIGURA 3.24 Exemplos 3.11 e 3.12.

Tocci.indb 66 10/05/2011 18:15:00


Captulo 3 Descrevendo circuitos lgicos 67

Exemplo 3.12

Determine o nvel lgico de sada do circuito na Figura 3.24 para A = B = C = 1 e D = 0.


Soluo
No primeiro mtodo, usamos a expresso para x.
x = AB(C + D)
= 1 1 (1 + 0)
= 1 1 (1)
= 1 1 0
= 0 = 1
No segundo mtodo, escrevemos no diagrama os nveis lgicos nas entradas (aparecem em negrito na Figura 3.24) e
percorremos o circuito passando por cada porta at a sada final. A porta NOR, que tem entradas 1 e 0, produz uma sada
0 (uma porta OR produziria uma sada 1). A porta NAND tem, portanto, nas entradas, os nveis 0, 1 e 1, o que produz
uma sada 1 (uma AND produziria uma sada 0).

Questes para reviso

1. Qual o nico conjunto de condies de entrada que produz uma sada nvel ALTO em uma porta NOR de trs entradas?
2. Determine o nvel lgico da sada do circuito na Figura 3.24 para A = B = 1 e C = D = 0.
3. Troque a porta NOR da Figura 3.24 por uma NAND e troque a NAND por uma NOR. Qual a nova expresso parax?

3.10 TEOREMAS BOOLEANOS


Vimos como a lgebra booleana pode ser usada para ajudar na anlise de um circuito lgico e como expressar ma-
tematicamente a operao do circuito. Continuaremos nosso estudo da lgebra booleana investigando as vrias regras
denominadas teoremas booleanos, que podero nos ajudar a simplificar expresses e circuitos lgicos. O primeiro grupo
de teoremas apresentado na Figura 3.25. Em cada um, x uma varivel lgica que pode ser 0 ou 1. Cada teorema est
acompanhado de um circuito lgico que demonstra sua validade.
O teorema (1) diz que, se for realizada uma operao AND de qualquer varivel com 0, o resultado tem de ser 0.
Isso fcil de lembrar porque a operao AND como a multiplicao convencional, em que qualquer coisa multiplicada
por 0 0. Sabemos tambm que a sada de uma porta AND 0 sempre que qualquer entrada for 0, independentemente do
nvel lgico nas outras entradas.
O teorema (2) tambm bvio se fizermos a comparao com a multiplicao convencional.
O teorema (3) pode ser provado testando cada caso. Se x = 0, ento 0 0 = 0; se x = 1, ento 1 1 = 1. Portanto, x x = x.

x x
0 x
0 0
(1) x0=0 (5) x+0=x
x x
x 1
1 1

(2) x1=x (6) x+1=1


x x
x x

(3) xx=x (7) x+x=x


x x
0 1

(4) xx=0 (8) x+x=1

FIGURA 3.25 Teoremas para uma nica varivel.

Tocci.indb 67 10/05/2011 18:15:00


68 Sistemas digitais princpios e aplicaes

O teorema (4) pode ser provado da mesma maneira. Entretanto, pode-se argumentar que em qualquer momento a
varivel x ou seu inverso x deve ser nvel 0; ento, o produto lgico AND tem de ser 0.
O teorema (5) simples, visto que 0 somado a qualquer valor no afeta este valor, tanto na adio convencional como
na operao lgica OR.
O teorema (6) diz que, se for realizada uma operao OR de qualquer varivel com 1, o resultado sempre ser 1.
Verificamos isso para os dois valores de x: 0 + 1 = 1 e 1 + 1 = 1. De modo equivalente, podemos lembrar que a sada de
uma porta OR ser 1 se quaisquer das entradas for 1, independentemente do valor das outras entradas.
O teorema (7) pode ser provado pelo teste dos dois valores de x: 0 + 0 = 0 e 1 + 1 = 1.
O teorema (8) pode ser provado de maneira parecida ou podemos argumentar que em qualquer instante x ou x tem de
ser nvel 1, de modo que estaremos fazendo uma operao OR entre 0 e 1 que sempre resultar em 1.
Antes de apresentar qualquer outro teorema, vamos ressaltar que, quando os teoremas de (1) a (8) so aplicados, x pode
realmente representar uma expresso que contm mais de uma varivel. Por exemplo, se tivssemos a expresso AB(AB),
poderamos aplicar o teorema (4), x = AB. Assim, podemos dizer que AB(AB) = 0. A mesma ideia pode ser aplicada no
uso de qualquer um desses teoremas.

Teoremas com mais de uma varivel


Os teoremas apresentados a seguir envolvem mais de uma varivel:
(9) x + y = y + x
(10) x y = y x
(11) x + (y + z) = (x + y) + z = x + y + z
(12) x(yz) = (xy)z = xyz
(13a) x(y + z) = xy + xz
(13b) (w + x)(y + z) = wy + xy + wz + xz
(14) x + xy = x
(15a) x + xy = x + y
(15b) x + xy = x + y
Os teoremas (9) e (10) so chamados leis comutativas, as quais mostram que a ordem em que as variveis aparecem
nas operaes OR e AND no importa; o resultado o mesmo.
Os teoremas (11) e (12) so as leis associativas, que dizem que podemos agrupar as variveis em expresses AND
ou OR como desejarmos.
O teorema (13) a lei distributiva, que diz que uma expresso pode ser expandida multiplicando-se termo a termo,
assim como na lgebra convencional. Esse teorema tambm indica que podemos fatorar (colocar em evidncia termos
comuns) uma expresso, ou seja, se tivermos uma soma de dois (ou mais) termos e cada um tiver uma varivel em comum,
ela poder ser colocada em evidncia, como na lgebra convencional. Por exemplo, na expresso ABC + A B C, podemos
colocar em evidncia a varivel B:
ABC + A B C = B(AC + A C)
Considere, como outro exemplo, a expresso ABC + ABD, na qual os dois termos tm as variveis A e B em comum;
assim, A B pode ser colocado em evidncia. Ou seja,
ABC + ABD = AB(C + D)
Os teoremas de (9) a (13) so fceis de lembrar e usar, pois so idnticos aos da lgebra convencional. Os teoremas
(14) e (15), por outro lado, no possuem equivalentes na lgebra convencional e podem ser demonstrados testando todas as
possibilidades para x e y. Isso est ilustrado a seguir para o teorema (14), a partir de uma tabela de anlise para a equao
x + xy:

x y xy x + xy
0 0 0 0
0 1 0 0
1 0 0 1
1 1 1 1

Observe que o valor da expresso toda (x + xy) sempre igual a x.

Tocci.indb 68 10/05/2011 18:15:00


Captulo 3 Descrevendo circuitos lgicos 69

O teorema (14) tambm pode ser provado, evidenciando-se variveis e usando-se os teoremas (6) e (2) da seguinte
maneira:
x + xy = x(1 + y)
= x 1 [usando o teorema (6)]
= x [usando o teorema (2)]
Todos esses teoremas booleanos podem ser teis na simplificao de expresses lgicas, ou seja, na reduo do n-
mero de termos em uma expresso. Quando isso acontece, a expresso reduzida produz um circuito menos complexo que
o produzido pela expresso original. Boa parte do prximo captulo dedicada ao processo de simplificao de circuitos.
Por enquanto, os exemplos a seguir serviro para ilustrar como os teoremas booleanos podem ser aplicados. (Voc encontra
todos eles no final deste livro.)

Exemplo 3.13

Simplifique a expresso y = ABD + AB D.


Soluo
Colocando-se em evidncia as variveis comuns, AB, usando o teorema (13), temos:
y = AB(D + D)
Usando-se o teorema (8), o termo entre parnteses equivalente a 1. Assim,
y = AB 1
= AB [usando o teorema (2)]

Exemplo 3.14

Simplifique z = (A + B)(A + B).


Soluo
A expresso pode ser expandida, multiplicando-se os termos [teorema (13)]:
z=AA+AB+BA+BB
Aplicando-se o teorema (4), o termo A A = 0. Alm disso, B B = B [teorema (3)]:
z = 0 + A B + B A + B = AB + AB + B
Colocando-se em evidncia a varivel B [teorema (13)], temos:
z = B(A + A + 1)
Finalmente, usando-se os teoremas (2) e (6), temos:
z=B

Exemplo 3.15

Simplifique x = ACD + ABCD.


Soluo
Colocando-se em evidncia os termos comuns CD, temos:
x = CD(A + AB)
Usando-se o teorema (15a), podemos substituir A + AB por A + B. Assim,
x = CD(A + B)
= ACD + BCD

Tocci.indb 69 10/05/2011 18:15:00


70 Sistemas digitais princpios e aplicaes

Questes para reviso

1. Use os teoremas (13) e (14) para simplificar a expresso y = AC + ABC.


2. Use os teoremas (13) e (8) para simplificar a expresso y = A B C D + A B C D.
3. Use os teoremas (13) e (15b) para simplificar a expresso y = AD + ABD.

3.11 TEOREMAS DE DeMORGAN


Dois dos mais importantes teoremas da lgebra booleana foram contribuio de um grande matemtico chamado
DeMorgan. Os teoremas de DeMorgan so muito teis na simplificao de expresses nas quais um produto ou uma
soma de variveis aparecem negados (barrados). So eles:
(16)(x + y) = x y
(17)(x y) = x + y
O teorema (16) aponta que, quando a soma lgica (OR) de duas variveis invertida, equivale a inverter cada varivel
individualmente e, em seguida, fazer a operao AND entre elas. O teorema (17) diz que, quando o produto lgico (AND)
de duas variveis invertido, o mesmo que inverter cada varivel individualmente e, em seguida, fazer a operao OR
entre elas. Cada um dos teoremas de DeMorgan pode ser prontamente demonstrado por meio da verificao de todas as
possibilidades de combinaes entre x e y. Deixemos isso para os exerccios do final do captulo.
Embora esses teoremas tenham sido apresentados em termos das variveis nicas x e y, so igualmente vlidos para
situaes em que x e/ou y so expresses com mais de uma varivel. Por exemplo, vamos aplic-los na expresso (AB+C),
conforme mostrado a seguir:
(AB + C) = (AB) C
Observe que usamos o teorema (16) e consideramos AB como x, e C como y. O resultado ainda pode ser simplificado,
visto que temos um produto AB que invertido. Usando o teorema (17), a expresso passa a ser:
AB C = (A + B) C
Observe que podemos substituir B por B, de modo que teremos finalmente:
(A + B) C = A C + BC
Esse resultado final contm apenas sinais de inverso em variveis simples.

Exemplo 3.16

Simplifique a expresso z = (A + C) (B + D) para que tenha apenas variveis simples invertidas.


Soluo
Usando o teorema (17) e considerando (A + C) como x e (B + D) como y, temos:
z = (A + C) + (B + D)
Podemos pensar sobre essa operao como a quebra de uma barra grande ao meio e a troca do sinal AND () pelo sinal
OR (+). Agora, o termo (A + C) pode ser simplificado aplicando o teorema (16). Do mesmo modo, (B + D) tambm
pode ser simplificado:
z = (A + C) + (B + D)
= (A C) + B D
Nesse caso, partimos a barra grande ao meio e substitumos o sinal (+) por (). Cancelando as duplas inverses, temos:
z = AC + BD

O Exemplo 3.16 mostra que, quando usamos os teoremas de DeMorgan para simplificar uma expresso, podemos
partir uma barra em qualquer ponto sobre uma expresso e trocar o sinal do operador nesse ponto pelo operador oposto (+
trocado por e vice-versa). Esse procedimento feito continuamente at que a expresso seja simplificada e apaream
apenas variveis simples invertidas. Mais dois exemplos so mostrados.

Tocci.indb 70 10/05/2011 18:15:01


Captulo 3 Descrevendo circuitos lgicos 71

Exemplo 1 Exemplo 2
z=A+BC = (A + BC) (D + EF)
= A (B C) = (A + BC) + (D + EF)
= A (B + C) = (A BC) + (D EF)
= A (B + C) = [A (B + C)] + [D (E + F)]
=AB+AC+DE+DF
Os teoremas de DeMorgan so facilmente estendidos para mais de duas variveis. Por exemplo, pode-se provar que
x+y+z=xyz
xyz=x+y+z
Nesse caso, a barra foi partida em dois pontos na expresso, e os sinais do operador foram trocados pelos sinais opos-
tos. Isso pode ser estendido a qualquer nmero de variveis. Chamando a ateno novamente, perceba que as variveis
podem representar expresses, como tambm variveis simples. Vejamos outro exemplo:
x = AB CD EF
= AB + CD + EF
= AB + CD + EF

Implicaes dos teoremas de DeMorgan


Vamos analisar os teoremas (16) e (17) do ponto de vista dos circuitos lgicos. Primeiro, considere o teorema (16),
x+y=xy
O lado esquerdo da equao pode ser visto como a sada de uma porta NOR cujas entradas so x e y. O lado direito
da equao, por outro lado, o resultado da inverso das variveis x e y colocadas nas entradas de uma porta AND. Essas
duas representaes so equivalentes e esto ilustradas na Figura 3.26(a). Isso quer dizer que uma porta AND com IN-
VERSORES em cada uma das entradas equivalente a uma porta NOR. Na realidade, as duas representaes so usadas
para a funo NOR. Quando uma porta AND com entradas invertidas usada para representar a funo NOR, comum
ser representada conforme a Figura 3.26(b), em que os pequenos crculos nas entradas representam a inverso.
Agora considere o teorema (17),
xy=x+y
O lado esquerdo da equao pode ser implementado por uma porta NAND com entradas x e y. O lado direito pode ser
implementado invertendo-se as entradas x e y, primeiramente, e colocando-as nas entradas de uma porta OR. Essas duas
representaes so mostradas na Figura 3.27(a). A porta OR com INVERSORES em cada uma das entradas equivalente
porta NAND. Na realidade, ambas so usadas para a funo NAND. Quando a porta OR com entradas invertidas
usada para representar a funo NAND, ela normalmente desenhada conforme mostrado na Figura 3.27(b), em que os
pequenos crculos representam a inverso.

x
x x
x+y y xy=x+y
y y

(a)

x
xy=x+y
y

(b)

FIGURA 3.26 (a) Circuitos equivalentes relativos ao teorema (16); (b) smbolo alternativo para a funo NOR.

Tocci.indb 71 10/05/2011 18:15:01


72 Sistemas digitais princpios e aplicaes

x
x x
xy x + y = xy
y
y y

(a)

x
x + y = xy
y

(b)

FIGURA 3.27 (a) Circuitos equivalentes relativos ao teorema (17); (b) smbolo alternativo para a funo NAND.

Exemplo 3.17

Determine a expresso de sada para o circuito da Figura 3.28 e simplifique-a usando os teoremas de DeMorgan.

A
B z=ABC=A+B+C=A+B+C

C
C

FIGURA 3.28 Exemplo 3.17.

Soluo
A expresso para z z = ABC. Usando-se o teorema de DeMorgan para partir a barra maior, temos:
z=A+B+C
Cancelando-se a dupla inverso sobre a varivel C, obtemos:
z=A+B+C

Questes para reviso

1. Use os teoremas de DeMorgan para converter a expresso z = (A + B) C de modo que apresente inverses apenas
em variveis simples.
2. Repita a Questo 1 para a expresso y = RST + Q.
3. Implemente um circuito que tem como expresso de sada z = A BC usando apenas uma porta NOR e um INVERSOR.
4. Use os teoremas de DeMorgan para converter y = A + B + CD em uma expresso que contenha inverses apenas em
variveis simples.

3.12 UNIVERSALIDADE DAS PORTAS NAND E NOR


Todas as expresses booleanas consistem em vrias combinaes das operaes bsicas OR, AND e INVERSOR.
Portanto, qualquer expresso pode ser implementada usando combinaes de portas OR, portas AND e INVERSORES.En-
tretanto, possvel implementar qualquer expresso usando-se apenas portas NAND, pois, em combinaes apropriadas,
podem ser usadas para implementar cada uma das operaes booleanas OR, AND e INVERSOR. Isso demonstrado na
Figura 3.29.
Na Figura 3.29(a), temos, primeiramente, uma porta NAND de duas entradas que foram conectadas juntas, de modo
que a varivel A aplicada em ambas. Nessa configurao, a porta NAND funciona como um INVERSOR, visto que sua
sada x = A A = A.

Tocci.indb 72 10/05/2011 18:15:01


Captulo 3 Descrevendo circuitos lgicos 73

A x=AA=A
A A

(a) INVERSOR

A AB x = AB A
1 2 AB
B B
(b) AND

A A
1
x=AB=A+B A
3 A+B
B B B
2
(c) OR

FIGURA 3.29 As portas NAND podem ser usadas para implementar qualquer funo booleana.

Na Figura 3.29(b), temos duas portas NAND conectadas para realizar a operao AND. A porta NAND 2 usada
como INVERSOR para transformar AB em AB = AB, que a funo AND desejada.
A operao OR pode ser implementada usando portas NAND conectadas, conforme a Figura 3.29(c). Nesse caso,
as portas NAND no 1 e no 2 so usadas como INVERSORES para inverter as entradas, de modo que a sada final seja
x=AB, que pode ser simplificada para x = A + B usando o teorema de DeMorgan.
De modo similar, notamos que as portas NOR podem ser associadas para implementar qualquer operao booleana.
Isso est ilustrado na Figura 3.30. A parte (a) da figura mostra que uma porta NOR com as entradas conectadas juntas
funciona como INVERSOR, visto que sua sada x = A + A = A.
Na Figura 3.30(b), duas portas NOR foram associadas para realizar a operao OR. A porta NOR no 2 usada como
INVERSOR para transformar A + B em A + B = A + B, que a funo OR desejada.
A operao AND pode ser implementada com portas NOR, conforme a Figura 3.30(c). Nesse caso, as portas NOR
no 1 e no 2 so usadas como INVERSORES para as entradas, de modo que a sada final seja x = A + B, que pode ser sim-
plificada para x = A B pelo uso do teorema de DeMorgan.
Como qualquer operao booleana pode ser implementada usando apenas portas NAND, qualquer circuito lgico
pode ser construdo usando apenas portas NAND. A mesma afirmao vale para portas NOR. Essa caracterstica das portas
NAND e NOR pode ser muito til no projeto de circuitos lgicos, conforme o Exemplo 3.18.

A x=A+A=A

A A

(a)
INVERSOR

A A+B A+B
1 2 A
B A+B
B

(b) OR
A A
1

x = A + B = AB
3 A
AB
B B B
2
(c) AND

FIGURA 3.30 As portas NOR podem ser usadas para implementar qualquer operao booleana.

Tocci.indb 73 10/05/2011 18:15:02


74 Sistemas digitais princpios e aplicaes

Exemplo 3.18

Em um processo de fabricao, uma esteira de transporte deve ser desligada sempre que determinadas condies ocor-
rerem. Essas condies so monitoradas e tm seus estados sinalizados por quatro sinais lgicos: o A ser ALTO sempre
que a velocidade da esteira de transporte for muito alta; o B ser ALTO sempre que o recipiente localizado no final da
esteira estiver cheio; o C ser ALTO quando a tenso na esteira for muito alta, e o D ser ALTO quando o comando
manual estiver desabilitado.
Um circuito lgico necessrio para gerar um sinal x que ser ALTO sempre que as condies A e B ou C e D existirem
simultaneamente. evidente que, a expresso lgica para x ser x = AB + CD. O circuito implementado com um nmero
mnimo de CIs. Os circuitos integrados TTL, mostrados na Figura 3.31, esto disponveis. Cada CI qudruplo, o que
significa que contm quatro portas lgicas idnticas em um chip.

14 13 12 11 10 9 8
VCC

74LS00

GND
1 2 3 4 5 6 7

14 13 12 11 10 9 8 14 13 12 11 10 9 8
VCC VCC

74LS32 74LS08

GND GND
1 2 3 4 5 6 7 1 2 3 4 5 6 7

FIGURA 3.31 CIs disponveis para o Exemplo 3.18.

Soluo
Uma maneira simples de implementar a expresso dada usar duas portas AND e uma OR, conforme a Figura 3.32(a).
Essa implementao usa duas portas do CI 74LS08 e uma do CI 74LS32. A numerao ao redor do smbolo do CI
corresponde aos nmeros dos pinos. Eles sempre so inseridos em qualquer diagrama de circuito lgico. Para nossos
propsitos, a maioria dos diagramas lgicos no conter a numerao dos pinos, a menos que seja necessrio para a
descrio do funcionamento do circuito.
Outra implementao pode ser realizada a partir do circuito da Figura 3.32(a), substituindo-se cada porta AND e OR pela
implementao de porta NAND equivalente da Figura 3.29. O resultado mostrado na Figura 3.32(b).
primeira vista, esse novo circuito parece requerer sete portas NAND. Entretanto, as portas NAND no 3 e no 5 esto
conectadas como INVERSORES em srie, podendo ser eliminadas do circuito, visto que realizam uma dupla inverso
no sinal de sada da porta NAND 1. De maneira similar, as portas NAND no 4 e no 6 podem ser eliminadas. O circuito
final, aps eliminar os duplos INVERSORES, est representado na Figura 3.32(c).
Esse circuito final mais eficiente que o da Figura 3.32(a) porque usa trs portas NAND de duas entradas e pode ser
implementado a partir de um CI, o 74LS00.

(1) 74LS08
A (3)
(2)
B 74LS32
(1)
(3)
(a) x = AB + CD
(2)
(4) 74LS08
C (6)
(5)
D

FIGURA 3.32 Implementaes possveis para o Exemplo 3.18 (continua).


AND

A
1 3 5
Tocci.indb 74 10/05/2011 18:15:02
B
74LS32
(1)
(3)
(a) x = AB + CD
(2)
(4) 74LS08
C (6)
(5)
D
Captulo 3 Descrevendo circuitos lgicos 75

AND

A
1 3 5
B
(b) 7 x

C
2 4 6
D

AND OR

Aps eliminar as
duplas inverses

(1) 74LS00
A (3)
(2)
B 74LS00
(9)
(8)
(10) x
(c)
(4) 74LS00
C (6)
(5)
D

FIGURA 3.32 Implementaes possveis para o Exemplo 3.18 (continuao).

Questes para reviso

1. Quantas formas diferentes temos agora para implementar a operao de inverso em um circuito lgico?
2. Implemente a expresso x = (A + B)(C + D) usando portas OR e AND. Em seguida, utilize a expresso usando apenas
portas NOR, convertendo cada uma das portas OR e AND em suas implementaes equivalentes com portas NOR
(Figura 3.30). Qual dos circuitos mais eficiente?
3. Escreva a expresso de sada para o circuito da Figura 3.32(c) e use os teoremas de DeMorgan para mostrar que ele
equivalente expresso para o circuito da Figura 3.32(a).

3.13 SIMBOLOGIA ALTERNATIVA PARA PORTAS LGICAS


J apresentamos as cinco portas lgicas bsicas (AND, OR, INVERSOR, NAND e NOR) e os smbolos-padro usados
para represent-las em um diagrama de circuito lgico. Embora ainda encontrem-se alguns diagramas de circuitos usando
exclusivamente esses smbolos-padro, cada vez mais comum diagramas que utilizam os smbolos lgicos alternativos
juntamente com os smbolos-padro.
Antes de discutir as razes para o uso de um smbolo alternativo para uma porta lgica, apresentaremos os smbolos
alternativos para cada porta e mostraremos que so equivalentes aos smbolos-padro (Figura 3.33). O lado esquerdo da
figura mostra o smbolo-padro para cada porta lgica; o lado direito mostra o smbolo alternativo que obtido a partir
do smbolo-padro para cada porta, fazendo o seguinte:
1. Inverta cada entrada e cada sada do smbolo-padro. Isso feito acrescentando pequenos crculos nas entradas e
sadas, que no tm os crculos, e removendo os j existentes.
2. Mude o smbolo da operao de AND para OR ou de OR para AND. (No caso especial do INVERSOR, o smbolo
da operao no alterado.)
Por exemplo, o smbolo-padro da NAND o smbolo de uma AND com um pequeno crculo na sada. Seguindo os
passos anteriores, remova o pequeno crculo da sada e acrescente um em cada entrada. Em seguida, troque o smbolo da
AND pelo da OR. O resultado o smbolo de uma OR com pequenos crculos nas entradas.

Tocci.indb 75 10/05/2011 18:15:02


76 Sistemas digitais princpios e aplicaes

A AB A
AND A + B = AB
B B

A A+B A
OR AB=A+B
B B

A AB A
NAND A + B = AB
B B

A A+B A
NOR AB=A+B
B B

A
INV A A A

FIGURA 3.33 Smbolos-padro e alternativos para vrias portas lgicas e para o inversor.

Podemos provar que o smbolo alternativo equivalente ao smbolo-padro usando os teoremas de DeMorgan e
lembrando que o pequeno crculo representa uma inverso. A expresso de sada para o smbolo-padro da NAND
AB=A + B, igual expresso de sada do smbolo alternativo. Esse mesmo procedimento pode ser seguido para cada par
de smbolos na Figura 3.33.
Alguns pontos devem ser enfatizados em relao s equivalncias dos smbolos lgicos:
1. As equivalncias podem ser estendidas para portas com qualquer nmero de entradas.
2. Nenhum dos smbolos-padro tem pequenos crculos em suas entradas, mas todos os alternativos os tm.
3. Os smbolos-padro e os smbolos alternativos para cada porta representam o mesmo circuito fsico; no h di-
ferenas nos circuitos representados pelos dois smbolos.
4. As portas NAND e NOR so inversoras; portanto, os smbolos-padro e os smbolos alternativos tm pequenos
crculos na entrada ou na sada. As portas AND e OR so no inversoras, e os smbolos alternativos para cada
uma tm pequenos crculos tanto nas entradas quanto nas sadas.

Interpretao de smbolos lgicos


Cada um dos smbolos das portas lgicas na Figura 3.33 gera uma nica interpretao de como a porta opera. Antes
de demonstrar essas interpretaes, temos de estabelecer o conceito de nvel lgico ativo.
Quando uma linha de entrada ou sada em um smbolo de um circuito lgico no tem um pequeno crculo, diz-se que
ela ativa em nvel lgico alto ou simplesmente ativa-em-alto. Quando uma linha de entrada ou sada tem um pequeno
crculo, diz-se que ela ativa-em-baixo. A presena ou ausncia de um pequeno crculo determina, portanto, o estado de
ativao (ativa-em-alto/ativa-em-baixo) de entradas e sadas de um circuito, e isso usado para interpretar a operao do
circuito.
Para ilustrar, a Figura 3.34(a) mostra o smbolo-padro para uma porta NAND que tem um pequeno crculo na sada
e nenhum crculo nas entradas. Assim, ele tem sada ativa-em-baixo e entradas do tipo ativa-em-alto. A operao lgica
representada por esse smbolo pode, portanto, ser interpretada do seguinte modo:
A sada vai para o nvel BAIXO somente quando todas as entradas forem para o nvel ALTO.
Observe que essa afirmao diz que a sada vai para o estado ativo somente quando todas as entradas tambm esti-
verem no estado ativo. A palavra todas usada por causa do smbolo AND.
O smbolo alternativo para uma porta NAND, mostrado na Figura 3.34(b), tem uma sada ativa-em-alto e entradas
do tipo ativa-em-baixo, e sua operao pode ser definida do seguinte modo:
A sada vai para o nvel ALTO quando qualquer entrada for para o nvel BAIXO.

Tocci.indb 76 10/05/2011 18:15:02


Captulo 3 Descrevendo circuitos lgicos 77

A AB Sada vai para o nvel BAIXO


somente quando todas
B as entradas forem ALTAS
O estado BAIXO
ativa-em-alto o estado ativo

(a)

A A + B = AB Sada ALTA
somente quando qualquer
B entrada BAIXA
O estado ALTO
o estado ativo
ativa-em-baixo
(b)

FIGURA 3.34 Interpretao dos dois smbolos da porta NAND.

Essa afirmao diz que a sada estar em seu estado ativo sempre que qualquer uma das entradas estiver em seu estado
ativo. A palavra qualquer usada por causa do smbolo OR.
Refletindo rapidamente, podemos ver que as duas interpretaes para os smbolos da NAND, na Figura 3.34, so
maneiras diferentes de dizer a mesma coisa.

Resumo
Neste momento, voc deve estar imaginando por que h necessidade de dois smbolos e de interpretaes diferentes
para cada porta lgica. Esperamos que as razes sejam esclarecidas aps a leitura da prxima seo. Por enquanto, vamos
resumir os pontos mais importantes referentes s representaes de portas lgicas.
1. Para obter o smbolo alternativo para uma porta lgica, deve-se tomar o smbolo-padro e mudar o smbolo de sua
operao (OR para AND ou AND para OR) e, em seguida, alterar os pequenos crculos nas entradas e nas sadas
(isto , deve-se retirar os crculos presentes e acrescent-los onde no existiam).
2. Para interpretar a operao de uma porta lgica, primeiramente observe qual estado lgico, 0 ou 1, o ativo para
as entradas e qual o ativo para a sada. Em seguida, identifique qual estado de sada gerado, tendo todas as
entradas em seus estados ativos (se o smbolo usado for de uma AND) ou tendo quaisquer das entradas em seu
estado ativo (se o smbolo usado for de uma OR).

Exemplo 3.19

Descreva a interpretao dos dois smbolos para a porta OR.


Soluo
O resultado mostrado na Figura 3.35. Observe que a palavra qualquer ser usada quando o smbolo da operao for de
uma OR; a palavra todas ser usada quando o smbolo for uma AND.

A A+B A sada vai para o nvel ALTO quando


B qualquer entrada for para o nvel ALTO.
O estado ALTO
Ativa-em-alto o ativo.

(a)

A AB=A+B A sada vai para o nvel BAIXO somente quando


todas as entradas forem para o nvel BAIXO.
B
O estado BAIXO
Ativa-em-baixo o ativo.
(b)

FIGURA 3.35 Interpretao dos dois smbolos da porta OR.

Tocci.indb 77 10/05/2011 18:15:03


78 Sistemas digitais princpios e aplicaes

Questes para reviso

1. Descreva a operao realizada pelo smbolo-padro da porta NOR na Figura 3.33.


2. Repita a Questo 1 para o smbolo alternativo da porta NOR.
3. Repita a Questo 1 para o smbolo alternativo da porta AND.
4. Repita a Questo 1 para o smbolo-padro da porta AND.

3.14 QUE SIMBOLOGIA DE PORTA LGICA USAR


Alguns projetistas de circuitos lgicos e alguns livros usam apenas os smbolos-padro para portas lgicas nos dia-
gramas de circuitos. Embora essa prtica seja logicamente correta, ela no facilita a interpretao do circuito. O uso dos
smbolos alternativos em um diagrama pode tornar a interpretao do circuito muito mais clara. Isso pode ser ilustrado
no exemplo mostrado na Figura 3.36.
O circuito da Figura 3.36(a) contm trs portas NAND conectadas para gerar uma sada Z que depende das entradas
A, B, C e D. Esse diagrama de circuito usa o smbolo-padro para cada uma das portas NAND. Embora esteja logicamente
correto, ele no facilita o entendimento do funcionamento do circuito. Entretanto, as representaes do circuito das figuras
3.36(b) e (c) podem ser analisadas mais facilmente para determinar seu funcionamento.
A representao da Figura 3.36(b) obtida a partir do diagrama do circuito original, substituindo a porta NAND no3
por seu smbolo alternativo. Nesse diagrama, a sada Z obtida a partir do smbolo de uma porta NAND que tem uma
sada ativa-em-alto. Assim, podemos dizer que a sada Z ser nvel ALTO quando X ou Y for nvel BAIXO. Agora, como
X e Y aparecem, cada um, como a sada de uma NAND que tem sadas em nvel ativa-em-baixo, podemos dizer que X ser
nvel BAIXO apenas quando A = B = 1, e Y ser nvel BAIXO apenas se C = D = 1. Resumidamente, podemos descrever
o funcionamento do circuito do seguinte modo:
A sada Z vai para o nvel ALTO sempre que A = B = 1 ou C = D = 1 (ou ambas as condies).

A
1
B

(a) 3 Z

C
2
D A B C D Z
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 1
A X
1 0 1 0 0 0
B 0 1 0 1 0
0 1 1 0 0
(b) 3 Z 0 1 1 1 1
1 0 0 0 0
C 1 0 0 1 0
2 ativa-em-alto
1 0 1 0 0
D Y
1 0 1 1 1
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
A X 1 1 1 1 1
1
B (d )

(c) 3 Z

C
2 ativa-em-baixo
D Y

FIGURA 3.36(a) Circuito original usando smbolos-padro NAND; (b) representao equivalente em que a sada Z ativa-em-alto;
(c)representao equivalente em que a sada Z ativa-em-baixo; (d) tabela-verdade.

Tocci.indb 78 10/05/2011 18:15:03


Captulo 3 Descrevendo circuitos lgicos 79

Essa descrio pode ser traduzida para uma tabela-verdade fazendo Z = 1 para os casos em que A = B = 1 e para
os casos em que C = D = 1. Para todos os outros casos, Z = 0. A tabela-verdade resultante mostrada na Figura 3.36(d).
A representao da Figura 3.36(c) obtida a partir do diagrama do circuito original, substituindo-se as portas NAND
no1 e no 2 por seus smbolos alternativos. Nessa representao equivalente, a sada Z obtida a partir de uma porta NANDque
tem uma sada ativa-em-baixo. Assim, podemos dizer que a sada Z ser BAIXA apenas quando X = Y = 1. Como X e Y so
sadas ativas em nvel ALTO, podemos dizer que X ser nvel ALTO quando A ou B for nvel BAIXO, e Y ser nvel ALTO
quando C ou D for nvel BAIXO. Resumidamente, podemos descrever o funcionamento do circuito do seguinte modo:
A sada Z vai para o nvel BAIXO apenas quando A ou B for nvel BAIXO e C ou D for nvel BAIXO.
Essa descrio pode ser traduzida para uma tabela-verdade fazendo Z = 0 para todos os casos em que pelo menos uma
das entradas A ou B seja nvel BAIXO, ao mesmo tempo em que pelo menos uma das entradas C ou D seja nvel BAIXO.
Para todos os outros casos, Z = 1. A tabela-verdade resultante a mesma obtida para o diagrama da Figura 3.36(b).

Qual diagrama de circuito deve ser usado?


Depende da funo especfica atribuda sada do circuito. Se ela estiver sendo usada para ativar algo (por exemplo,
ligar um LED ou ativar outro circuito lgico) quando a sada Z for para o estado 1, podemos dizer que a sada Z ativa-
-em-alto e o diagrama da Figura 3.36(b) deve ser usado. Por outro lado, se o circuito estiver sendo usado para atuar quando
a sada Z estiver no estado 0, ento Z ser ativa-em-baixo e o diagrama da Figura 3.36(c) dever ser usado.
claro que podem existir situaes em que ambos os estados sero usados para gerar aes diferentes e qualquer um
pode ser o estado ativo. Para esses casos, qualquer representao pode ser usada.

Insero dos pequenos crculos


Veja a representao do circuito da Figura 3.36(b) e observe que os smbolos para as portas NAND no 1 e no 2 foram
escolhidos para ter as sadas ativas em nvel BAIXO e condizer com as entradas ativas em nvel BAIXO da porta NAND no 3.
Veja a representao do circuito da Figura 3.36(c) e note que os smbolos para as portas NAND no 1 e no 2 foram escolhidos
para terem as sadas ativas em nvel ALTO e condizerem com as entradas ativas em nvel ALTO da porta NAND no 3. Isso
conduz seguinte regra geral para a elaborao de diagramas de circuitos lgicos:
Sempre que possvel, escolha smbolos de portas para que os pequenos crculos nas sadas sejam
conectados a pequenos crculos nas entradas, e as sadas sem esses crculos sejam conectadas a entradas
igualmente sem crculos.
Os exemplos a seguir mostram como essa regra pode ser aplicada.

Exemplo 3.20

O circuito lgico da Figura 3.37(a) est sendo usado para ativar um alarme quando a sada Z for para nvel ALTO. Mo-
difique o diagrama do circuito de modo que ele represente mais efetivamente sua operao.

A A
Z Z
B 2 ALARME B 2 ALARME

C C
1 1
D D
(a) (b)

FIGURA 3.37 Exemplo 3.20.

Soluo
Como Z = 1 ativar o alarme, Z tem de ser ativa-em-alto. Assim, o smbolo da porta AND no 2 no deve ser alterado. O
smbolo da porta NOR deve ser trocado pelo smbolo alternativo sem o pequeno crculo na sada (ativa-em-alto) para
condizer com a entrada sem o crculo da porta AND no 2, conforme a Figura 3.37(b). Observe agora que o circuito tem
sadas sem crculos conectadas s entradas tambm sem crculos da porta AND no 2.

Tocci.indb 79 10/05/2011 18:15:03


80 Sistemas digitais princpios e aplicaes

Exemplo 3.21

Quando a sada do circuito lgico da Figura 3.38(a) estiver em nvel BAIXO, ativar outro circuito lgico. Modifique o
diagrama do circuito para representar mais efetivamente sua operao.
Soluo
Como a sada Z deve ser ativa-em-baixo, o smbolo para a porta OR no 2 tem de ser trocado por seu smbolo alternativo,
conforme a Figura 3.38(b). O novo smbolo da porta OR no 2 tem os crculos na entrada, de modo que os smbolos da
porta AND e da porta OR no 1 devem ser alterados para ter os crculos nas sadas, como mostrado na Figura 3.38(b).
O INVERSOR j tem um pequeno crculo na sada. Agora o circuito tem todas as sadas com crculos conectadas s
entradas com crculos da porta no 2.

A A
1 1
B B

C Z C Z
2 2
D D

E E

(a) (b)

FIGURA 3.38 Exemplo 3.21.

Analisando circuitos
Quando o esquema de um circuito lgico desenhado usando as regras seguidas nesses exemplos, mais fcil para
o engenheiro ou o tcnico (ou o estudante) seguir o sinal pelo circuito e determinar as condies de entrada necessrias
para ativar a sada. Isso est ilustrado nos exemplos a seguir que, por sinal, usam diagramas de circuito de um esquema
lgico de um computador real.

Exemplo 3.22

O circuito lgico da Figura 3.39 gera uma sada MEM, usada para ativar CIs de memria em determinado microcompu-
tador. Determine as condies de entrada necessrias para ativar MEM.

X
RD
MEM

ROM-A W

ROM-B
Y

RAM
V

FIGURA 3.39 Exemplo 3.22.

Soluo
Uma maneira de fazer isso escrever a expresso para MEM em termos das entradas RD, ROM-A, ROM-B e RAM e
avali-la para as 16 combinaes possveis dessas entradas. Embora esse mtodo funcione, ele requer mais trabalho que
o necessrio.

Tocci.indb 80 10/05/2011 18:15:04


Captulo 3 Descrevendo circuitos lgicos 81

Um mtodo mais eficiente interpretar o diagrama do circuito, usando as ideias que desenvolvemos nas duas ltimas
sees. Os passos so:
1. MEM ativa-em-baixo e esse sinal ser nvel BAIXO apenas quando X e Y forem nvel ALTO.
2. X ser nvel ALTO apenas quando RD = 0.
3. Y ser nvel ALTO quando W ou V forem nvel ALTO.
4. V ser nvel ALTO quando RAM = 0.
5. W ser nvel ALTO quando ROM-A ou ROM-B = 0.
6. Sintetizando, MEM ser nvel BAIXO apenas quando RD = 0 e pelo menos uma das trs entradas ROM-A, ROM-B
ou RAM for nvel BAIXO.

Exemplo 3.23

O circuito lgico da Figura 3.40 usado para ligar o display de cristal lquido (LCD) de um dispositivo eletrnico de mo
quando o microcontrolador est enviando para ou recebendo dados do controlador do LCD. O circuito ligar o display
quando LCD = 1. Determine as condies de entrada necessrias para ligar o LCD.

A1
Observao: todas as portas so CMOS.
A2

A3

A4 W
74HC30 Y
A5 74HC32
74HC02 LCD
A6
A7

A0

IN X
74HC02
OUT

FIGURA 3.40 Exemplo 3.23.

Soluo
Mais uma vez, interpretaremos o diagrama passo a passo:
1. A sada LCD ativa-em-alto e vai para nvel ALTO apenas quando X = Y = 0.
2. A sada X ser nvel BAIXO quando a entrada IN ou a entrada OUT forem nvel ALTO.
3. A sada Y ser nvel BAIXO apenas quando W = 0 e A0 = 0.
4. A sada W ser nvel BAIXO apenas quando as entradas de A1 at A7 forem todas nvel ALTO.
5. Sintetizando, a sada LCD ser nvel ALTO quando A1 = A2 = A3 = A4 = A5 = A6 = A7 = 1 e A0 = 0 e a entrada IN ou a
OUT (ou ambas) forem nvel 1.
Observe o smbolo diferente para a porta NAND CMOS de oito entradas (74HC30); note tambm que o sinal A7 est
conectado em duas entradas da NAND.

Nveis de acionamento
Descrevemos os sinais lgicos como ativos em nvel BAIXO ou em nvel ALTO. Por exemplo, a sada MEM da Figura
3.39 ativa-em-baixo, e a sada LCD da Figura 3.40 ativa-em-alto, visto que so os estados que fazem algo acontecer.
De maneira similar, a Figura 3.40 tem entradas de A1 at A7 ativas em nvel ALTO, e a entrada A0 ativa em nvel BAIXO.
Quando um sinal lgico est em seu estado ativo, pode-se dizer que est acionado. Por exemplo, quando dizemos
que a entrada A0 est acionada, significa que ela est em seu estado ativa-em-baixo. Quando um sinal lgico no est em
seu estado ativo, dizemos que est no acionado. Portanto, quando dizemos que LCD est no acionado, ele est em seu
estado inativo (BAIXO).
Obviamente, os termos acionado e no acionado so sinnimos de ativo e inativo, respectivamente:

Tocci.indb 81 10/05/2011 18:15:04


82 Sistemas digitais princpios e aplicaes

acionado = ativo
no acionado = inativo
Os dois termos so normalmente usados na rea digital. Portanto, voc deve saber reconhecer as duas maneiras de
descrever o estado ativo de um sinal lgico.

Identificando sinais lgicos ativos em nvel BAIXO


Tornou-se comum usar uma barra sobre o nome dos sinais ativos em nvel BAIXO. A barra serve como outro modo
de indicar que um sinal ativo em nvel BAIXO; claro que a ausncia de uma barra significa que o sinal ativo em
nvel ALTO.
Para ilustrar, todos os sinais da Figura 3.39 so ativos nvel BAIXO, e assim eles podem ser nomeados como segue:
RD, ROM-A, ROM-B, RAM, MEM
Lembre-se de que a barra sobre o nome simplesmente um modo de frisar que esses sinais so ativos em nvel BAIXO.
Empregaremos sempre essa conveno para nomear os sinais lgicos adequadamente.

Identificando sinais de dois estados


Muitas vezes, um sinal de sada tem dois estados ativos, ou seja, tem uma funo importante no estado ALTO e outra
no BAIXO. usual nomear tais sinais para que os dois estados ativos sejam evidentes. Um exemplo comum o sinal de
leitura/escrita (read/write, RD/ WR), que interpretado da seguinte maneira: quando esse sinal for nvel ALTO, a operao
de leitura (RD) ser realizada; quando for nvel BAIXO, a operao de escrita (WR) ser realizada.

Questes para reviso

1. Use o mtodo dos exemplos 3.22 e 3.23 para determinar as condies de entrada necessrias para ativar a sada do
circuito na Figura 3.37(b).
2. Repita a Questo 1 para o circuito da Figura 3.38(b).
3. Quantas portas NAND h na Figura 3.39?
4. Quantas portas NOR h na Figura 3.40?
5. Qual ser o nvel da sada na Figura 3.38(b) quando todas as entradas forem acionadas?
6. Quantas entradas so necessrias para acionar a sada de alarme na Figura 3.37(b)?
7. Quais dos seguintes sinais so ativos em nvel BAIXO: RD, W, R/W?

3.15 ATRASO DE PROPAGAO


O atraso de propagao pode ser definido, de maneira simples, como o tempo que leva para um sistema produzir
uma sada apropriada aps receber uma entrada. Pense a respeito da mquina automtica de venda tpica. Voc coloca o
dinheiro nela e pressiona o boto para fazer uma seleo. Voc no recebe o produto imediatamente; leva um pouco de
tempo para ele ser retirado da prateleira e largado na porta de sada. Este o atraso de propagao. Um exemplo biolgico
pode ser encontrado em nossos reflexos. No trnsito, do momento que voc v luzes de freios no carro frente at voc
colocar o p no freio, h um atraso mensurvel ou um tempo de reao.
Circuitos digitais reais tambm tm um tempo de atraso de propagao mensurvel. As razes tornar-se-o mais claras
quando estudarmos as caractersticas reais de circuitos e semicondutores (transistores) ao invs de apenas sua operao
idealizada. O Captulo 8 vai fornecer mais informaes sobre o funcionamento de CIs lgicos. Uma porta AND, como a
da Figura 3.41(a), mostra que o atraso de propagao existe e pode ser mensurado.
Quando o sinal IN assume um nvel ALTO, ele faz com que o sinal OUT assuma um nvel ALTO pouco depois. Da
mesma maneira, quando o sinal IN assume um nvel BAIXO, ele faz com que o sinal OUT assuma um nvel BAIXO pouco
tempo depois. Duas coisas devem ser observadas no diagrama de tempo na Figura 3.41(b):
1. Transies no so verdadeiramente verticais (instantneas), ento medimos do ponto de 50 por cento na entrada
para o ponto de 50 por cento na sada.
2. O tempo que leva para fazer a sada assumir um nvel ALTO no necessariamente o mesmo que faz a sada
assumir um nvel BAIXO. Estes tempos de atraso so chamados tPLH (tempo de propagao BAIXO para ALTO)
e tPHL (tempo de propagao ALTO para BAIXO).

Tocci.indb 82 10/05/2011 18:15:04


Captulo 3 Descrevendo circuitos lgicos 83

1
IN
0

VCC 1
OUT
0

OUT t PLH t PHL


IN Tempo
(a) (b)

FIGURA 3.41 Medindo o atraso de propagao em uma porta lgica.

A velocidade de um circuito lgico est relacionada caracterstica de atraso de propagao. Qualquer componente
escolhido para implementar o circuito lgico ter uma planilha de dados que expe o valor do atraso de propagao. Essa
informao usada para assegurar que o circuito possa operar rpido o suficiente para a aplicao.

Questes para reviso

1. Por que as transies no so verticais quando se mede o atraso de propagao?


2. Onde as medidas de tempo so tomadas quando as transies no so verticais?
3. Qual o parmetro que mede o tempo aps as mudanas de entrada at que a sada possa trocar do nvel ALTO para
o BAIXO?
4. Qual o parmetro que mede o tempo aps as mudanas de entrada at que a sada possa trocar do nvel BAIXO para
o ALTO?

3.16 RESUMO DOS MTODOS PARA DESCREVER CIRCUITOS LGICOS


Os tpicos que abordamos neste captulo, at agora, privilegiaram apenas trs funes lgicas simples, as quais nos
referimos como AND, OR e NOT. Esses conceitos no so novos, porque usamos essas funes lgicas todos os dias ao
tomarmos decises. Aqui esto alguns exemplos. Se est chovendo OU (OR) se o jornal diz que ir chover, pegamos o
guarda-chuva. Se eu receber meu pagamento hoje E (AND) for ao banco, terei dinheiro para gastar noite. Se eu obtiver
uma nota satisfatria na prova escrita E (AND) NO (NOT) for mal na de laboratrio, vou passar em sistemas digitais.
A essa altura, voc deve estar se perguntando por que nos esforamos tanto para descrever conceitos to familiares. A
resposta pode ser resumida em dois pontos-chave:
1. Precisamos saber representar essas decises lgicas.
2. Precisamos saber combinar essas funes lgicas e implementar um sistema de tomada de decises.
Aprendemos a representar cada uma das funes lgicas bsicas usando:
Sentenas lgicas em nossa prpria lngua.
Tabelas-verdade.
Smbolos lgicos tradicionais.
Expresses de lgebra booleana.
Diagramas de tempo.

Exemplo 3.24

As seguintes expresses descrevem o modo como um circuito lgico precisa operar a fim de acionar um indicador de
alerta de cinto de segurana em um carro.
Se o motorista estiver presente E NO estiver usando cinto E a ignio estiver acionada, ENTO,
acenda a luz de advertncia.
Descreva o circuito usando lgebra booleana, diagramas de smbolos lgicos, tabelas-verdade e diagramas de tempo.
Soluo
Veja a Figura 3.42.

Tocci.indb 83 10/05/2011 18:15:04


84 Sistemas digitais princpios e aplicaes

Expresso booleana

luz_de_advertncia = motorista_presente cinto_em_uso ignio_ligada


(a)
Diagrama esquemtico

INPUT
motorista_presente
AND3
NOT
INPUT OUTPUT luz_de_advertncia
cinto_em_uso

inst
inst3
ignio_ligada INPUT

(b)

Tabela-verdade

motorista_presente cinto_em_uso ignio_ligada luz_de_advertncia


0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0

(c)
Diagrama de tempo
Name Value 1.0 ms 2.0 ms 3.0 ms 4.0 ms 5.0 ms 6.0 ms 7.0 ms 8.0 ms 9.0 ms 10 ms
0 ignio_ligada 0
1 cinto_em_uso 0
2 motorista_presente 1
3 luz_de_advertncia 0

(d)

FIGURA 3.42Mtodos de descrever circuitos lgicos: (a) expresso booleana; (b) diagrama esquemtico; (c) tabela-verdade;
(d) diagrama de tempo.

A Figura 3.42 mostra quatro formas diferentes de representar o circuito lgico descrito em linguagem normal no
Exemplo 3.24. H muitas outras maneiras de representar a lgica dessa deciso. Como exemplo, poderamos imaginar um
conjunto inteiramente novo de smbolos grficos ou utilizar o francs ou o japons para declarar a relao lgica. bvio
que no h como cobrirmos todas as formas possveis, mas preciso entender os mtodos mais comuns para podermos nos
comunicar com os outros em nossa profisso. Alm disso, certas situaes so mais fceis de descrever por meio de um
mtodo do que por outro. Em alguns casos, uma figura vale mil palavras e, em outros, as palavras so concisas o bastante e
mais facilmente comunicveis. O importante que precisamos saber descrever e comunicar a operao de sistemas digitais.
Muitas ferramentas foram desenvolvidas para permitir que um projetista faa uma descrio de circuito em um compu-
tador para document-lo, simul-lo e, em ltima anlise, criar um circuito funcional. A ferramenta que recomendamos da
Altera Corporation, uma das principais fornecedoras de circuitos digitais no mundo. O software Quartus II est disponvel
gratuitamente e pode ser baixado do site. fcil aprender como us-lo, especialmente com os tutoriais disponibilizados
no site de apoio deste livro. O Quartus II oferece uma maneira de descrever um circuito traando um diagrama lgico. O
diagrama lgico na Figura 3.42(b) um arquivo de descrio de bloco (.bdf) gerado usando-se o Quartus II. Observe que
o diagrama formado por smbolos de entrada grficos, smbolos de sada grficos e smbolos de portas lgicas. Todos
estes smbolos so fornecidos em uma biblioteca de componentes includos no Quartus II. Os componentes so facilmente
conectados usando uma ferramenta de desenho condutora.

Tocci.indb 84 10/05/2011 18:15:04


Captulo 3 Descrevendo circuitos lgicos 85

Aps o projetista editar um arquivo de descrio de bloco (.bdf), ele pode abrir um arquivo de simulao na forma de
um diagrama de tempo. Ele cria as formas de onda de entrada, e o simulador desenha a forma de onda de sada. O diagrama
de tempo mostrado na Figura 3.42(d) uma simulao de diagrama de tempo do Quartus II.

Questes para reviso

1. Liste cinco formas de descrever a operao de circuitos lgicos.


2. Cite duas ferramentas disponveis no software Quartus II.

3.17 LINGUAGENS DE DESCRIO VERSUS LINGUAGENS DE PROGRAMAO3


A tendncia mais recente no campo dos sistemas digitais empregar linguagens baseadas em texto para a descri-
o de circuitos digitais. provvel que voc tenha notado que nenhum dos mtodos descritos na Figura 3.42 fcil de
transmitir ao computador, devido a diversos problemas, como barras superiores, smbolos, formato ou desenho de linha.
Nesta seo, iniciaremos o aprendizado de algumas das ferramentas mais avanadas que os profissionais do campo digi-
tal utilizam para descrever os circuitos que implementam suas ideias. Essas ferramentas so chamadas de linguagens de
descrio de hardware (hardware description languages HDLs). Mesmo com os potentes computadores que temos
hoje, no possvel descrever um circuito lgico em linguagem comum e esperar que o computador entenda. Os compu-
tadores precisam de uma linguagem definida de modo mais rgido. Neste livro, concentraremo-nos em duas linguagens:
a linguagem de descrio de hardware Altera (Altera hardware description language AHDL) e a linguagem de
descrio de hardware de circuito integrado de velocidade muito alta [very high speed integrated circuit (VHSIC)
hardware description language (VHDL)].

VHDL e AHDL
O VHDL no uma linguagem nova. Foi desenvolvido pelo Departamento de Defesa dos Estados Unidos, no incio
da dcada de 1980, como uma maneira concisa de documentar os projetos no programa de circuito integrado de velocidade
muito alta (VHSIC). Anexar HDL a essa sigla torn-la-ia muito longa, mesmo para os militares, por isso o nome da lin-
guagem foi abreviado para VHDL. Foram desenvolvidos programas de computador para receber os arquivos em linguagem
VHDL e simular a operao dos circuitos. Com o desenvolvimento de complexos dispositivos lgicos programveis em
sistemas digitais, o VHDL transformou-se em uma das principais linguagens de descrio de hardware de alto nvel para
projetar e implementar circuitos digitais (sntese). A linguagem foi padronizada pelo IEEE, tornando-a universalmente
atraente para engenheiros e para criadores de ferramentas de software, que traduzem projetos em padres de bits, usados
para programar dispositivos reais.
O AHDL uma linguagem desenvolvida pela Altera Corporation para configurar, de modo conveniente, os dispositi-
vos lgicos criados pela empresa. A Altera foi uma das primeiras empresas a produzir dispositivos lgicos que podem ser
reconfigurados eletronicamente. Esses dispositivos chamam-se dispositivos lgicos programveis (programmable logic
devices PLDs). Diferentemente do VHDL, essa linguagem no pretende ser universal para descrever qualquer circuito
lgico. Foi criada para a programao de sistemas digitais complexos em PLDs da Altera de modo simples, embora muito
semelhante ao VHDL. O AHDL possui caractersticas plenamente adaptadas arquitetura dos dispositivos da Altera.Todos
os exemplos deste captulo utilizaro os softwares Quartus II da Altera para desenvolver arquivos de projeto, tanto em
AHDL quanto em VHDL. Voc perceber as vantagens da utilizao do sistema de desenvolvimento da Altera em ambas as
linguagens quando se programa um dispositivo real. O sistema Altera torna o desenvolvimento do circuito fcil e pronto a
ser carregado em um PLD da Altera. Ele tambm permite o desenvolvimento de blocos de construo utilizando-se entrada
esquemtica, AHDL, VHDL e outros mtodos e depois interligando-os para formar um sistema completo.
H outros HDLs mais adequados para programar dispositivos lgicos programveis simples.Voc descobrir que todas
essas linguagens so fceis de usar aps aprender os princpios bsicos de AHDL ou VHDL explicados neste captulo.

Linguagens de programao
importante distinguir entre linguagens de descrio de hardware que visam a descrever a configurao de hardware
de um circuito e linguagens de programao que representam uma sequncia de instrues a serem executadas por um
computador a fim de realizar alguma tarefa. Em ambos os casos, utilizamos uma linguagem para programar um disposi-
tivo. Entretanto, os computadores so sistemas digitais complexos feitos de circuitos lgicos, que operam seguindo uma

3 Todas as sees que tratam da descrio de linguagens de hardware podem ser saltadas sem prejuzo da sequncia ao longo dos captulos 3 a 13.

Tocci.indb 85 10/05/2011 18:15:05


86 Sistemas digitais princpios e aplicaes

lista de tarefas (ou seja, instrues, ou o programa), e cada uma das quais precisa ser executada em ordem sequencial. A
velocidade de operao determinada pela rapidez com que o computador consegue executar cada instruo. Por exemplo,
se um computador precisa responder a quatro entradas diferentes, ele necessita de pelo menos quatro instrues separadas
(tarefas sequenciais) para detectar e identificar qual entrada alterou o estado. Um circuito lgico digital, por outro lado,
limitado em sua velocidade apenas pela rapidez com que o circuito pode variar as sadas em resposta a variaes nas
entradas. Ele monitora todas as entradas ao mesmo tempo e responde a todas as variaes.
A seguinte analogia o ajudar a entender a diferena entre operao de computador e operao de circuito lgico
digital, alm do papel dos elementos de linguagem na descrio do que os sistemas fazem. Pense em como seria descre-
ver o que se faz em um carro de frmula Indy durante uma parada para reabastecimento (pit stop). Se uma nica pessoa
executasse todas as tarefas necessrias de uma s vez, ela teria de ser muito rpida. assim que um computador funciona:
uma tarefa de cada vez, mas com muita rapidez. claro que, na Indy, h uma equipe de mecnicos que cerca o carro, e
cada um cumpre uma tarefa especfica. Todos os membros atuam ao mesmo tempo, como elementos de um circuito digital.
Agora pense em como voc descreveria para outra pessoa o que est sendo feito em um carro da Indy durante a parada
usando (1) a abordagem mecnica individual ou (2) a abordagem de equipe. As duas descries no seriam similares?
Como veremos, as linguagens usadas para descrever hardware digital (HDL) so bastante semelhantes s linguagens para
descrever programas de computador (por exemplo, BASIC, C, JAVA), ainda que a implementao resultante funcione
de maneira bem diferente. No necessrio conhecer as linguagens de programao para entender HDL. O importante
que, quando houver aprendido tanto HDL quanto uma linguagem de computador, voc entenda seus diferentes papis
nos sistemas digitais.

Exemplo 3.25

Compare o funcionamento de um computador e de um circuito lgico na execuo da operao lgica simples y = AB.
Soluo
O circuito lgico uma porta AND simples. A sada y ser ALTA dentro de aproximadamente 10 nanossegundos do
ponto em que A e B so ALTAS simultaneamente. Aproximadamente 10 nanossegundos depois que ambas as entradas
se tornem BAIXAS, a sada y ser BAIXA.
O computador deve rodar um programa de instrues que toma decises. Suponha que cada instruo leve 20 ns (isso
bastante rpido!). Cada figura no fluxograma mostrado na Figura 3.43 representa uma instruo. Fica claro que sero
necessrias pelo menos duas ou trs instrues (entre 40 e 60 ns) para responder a variaes nas entradas.

No Sim
A ALTA?

No Sim
B ALTA?

Torne y BAIXA Torne y BAIXA Torne y ALTA

Volte e repita

FIGURA 3.43 Processo de deciso de um programa de computador.

Tocci.indb 86 10/05/2011 18:15:05


Captulo 3 Descrevendo circuitos lgicos 87

Questes para reviso

1. O que quer dizer a sigla HDL?


2. Qual a funo do HDL?
3. Qual a funo de uma linguagem de programao de computador?
4. Qual a principal diferena entre o HDL e as linguagens de programao de computador?

3.18 IMPLEMENTANDO CIRCUITOS LGICOS EM PLDs


Atualmente, muitos circuitos digitais so implementados com o uso de dispositivos de lgica programveis (PLDs).
Esses dispositivos no so como microcomputadores ou microcontroladores que rodam o programa de instrues. Na
verdade, so configurados eletronicamente, e seus circuitos internos so conectados tambm eletronicamente para formar
um circuito lgico. Pode-se imaginar essa instalao programvel como milhares de conexes conectadas (1) ou no
conectadas (0). A Figura 3.44 mostra uma pequena rea de conexes programveis. Cada interseco entre uma linha (fio
horizontal) e uma coluna (fio vertical) uma conexo programvel. Voc pode imaginar como seria difcil tentar configurar
esses dispositivos acrescentando 1s e 0s em uma grade manualmente (mas era assim que isso era feito na dcada de 1970).
O papel da linguagem de descrio de hardware fornecer um modo conciso e conveniente para o projetista des-
crever a operao do circuito em um formato que um computador pessoal possa manejar e armazenar adequadamente. O
computador roda um software especial chamado compilador para traduzir a linguagem de descrio de hardware para a
grade de 1s e 0s que pode ser carregada no PLD. Se voc puder dominar a linguagem de descrio de hardware de alto
nvel, isso tornar a programao de PLDs muito mais fcil que tentar usar lgebra booleana, desenhos esquemticos ou
tabelas-verdade. De maneira semelhante quela com que voc aprendeu a falar, comearemos nos referindo a coisas sim-
ples e gradualmente aprenderemos aspectos mais complicados dessas linguagens. O objetivo aprender o suficiente de
HDL para podermos nos comunicar e executar tarefas simples. Uma plena compreenso dos detalhes dessas linguagens
est alm dos objetivos deste livro e s pode ser alcanada com a prtica.
Nas sees deste livro que tratam das linguagens HDL, apresentaremos tanto AHDL como VHDL em um formato
que permitir que voc ignore uma linguagem e se concentre em outra sem perder informaes importantes. claro que,
assim, haver muita informao redundante se voc decidir ler as explicaes de ambas as linguagens. Achamos que essa
redundncia compensada pelo fato de dar a voc a opo de se concentrar em apenas uma das duas linguagens ou apren-
der ambas comparando e contrastando exemplos similares. A maneira recomendada de ler o livro concentrar-se em uma
linguagem. verdade que o modo mais prtico de se tornar bilngue ser criado em um ambiente em que as duas lnguas
so faladas habitualmente. Tambm muito fcil, contudo, confundir detalhes, por isso damos exemplos especficos se-
parados e independentes. Esperamos que esse formato possibilite que voc aprenda uma linguagem e, mais tarde, utilize
este livro como referncia, caso precise aprender uma segunda linguagem.

Entradas A
digitais B
C
D
E
F
G
H

Circuitos
lgicos

Matriz de conexo programvel

FIGURA 3.44 Configurando conexes de hardware com dispositivos de lgica programvel.

Tocci.indb 87 10/05/2011 18:15:05


88 Sistemas digitais princpios e aplicaes

Questes para reviso

1. O que significa a sigla PLD?


2. Como os circuitos so reconfigurados eletronicamente em um PLD?
3. O que faz um compilador?

3.19 FORMATO E SINTAXE DO HDL


Qualquer linguagem possui propriedades nicas, similaridades com outras linguagens e sintaxe prpria. Quando
estudamos gramtica na escola, aprendemos convenes como a ordem das palavras como elementos de uma frase e a
pontuao adequada. Isso se chama sintaxe da lngua. Uma linguagem projetada para ser interpretada por um computador
precisa seguir regras rgidas de sintaxe. Um computador apenas uma combinao de areia processada (Silcio) e fios de
metal que no tem a menor ideia do que voc quer dizer, ento voc precisa apresentar as instrues usando a sintaxe
exata que a linguagem do computador espera e entende. O formato bsico de qualquer descrio de circuito de hardware
(em qualquer linguagem) envolve dois elementos fundamentais:
1. A definio do que entra e do que sai (ou seja, especificaes de entrada/sada).
2. A definio de como as sadas respondem s entradas (ou seja, a operao).
Um diagrama esquemtico do circuito, como a Figura 3.45, pode ser lido e compreendido por um engenheiro ou
tcnico competentes porque ambos entenderiam o significado de cada smbolo no desenho. Se voc entende como cada
elemento funciona e como os elementos esto conectados um ao outro, compreende como o circuito funciona. Do lado
esquerdo do diagrama est o conjunto de entradas, e do lado direito, o conjunto de sadas. Os smbolos ao centro definem
a operao. A linguagem baseada em texto deve transmitir a mesma informao. Todos os HDLs usam o formato mostrado
na Figura 3.46.
Em uma linguagem baseada em texto, o circuito que est sendo descrito precisa receber um nome. As entradas e
sadas (ports) precisam ser nomeadas e definidas de acordo com sua natureza. um nico bit de um boto alternador
(boto de ativar/desativar)? Ou um nmero de 4 bits fornecido por um teclado numrico? A linguagem baseada em texto
precisa, de algum modo, transmitir a natureza dessas entradas e sadas. O modo de um port define se entrada, sada ou
ambos. O tipo se refere ao nmero de bits e a como esses bits so agrupados e interpretados. Se o tipo de entrada um
nico bit (single), ento ele pode ter apenas dois valores possveis: 0 e 1. Se o tipo de entrada for um nmero binrio de 4
bits transmitido por um teclado numrico, ele pode ter 16 valores diferentes (0000211112). O tipo determina o intervalo de
valores possveis. A definio da operao do circuito em uma linguagem baseada em texto est contida em um conjunto
de declaraes que segue a definio de entrada/sada (I/O) do circuito. As duas sees seguintes descrevem o circuito
bastante simples da Figura 3.45 e ilustram os elementos principais das linguagens AHDL e VHDL.

AND2
INPUT
a
OUTPUT y
INPUT
b

FIGURA 3.45 Descrio por diagrama esquemtico.

Documentao

Definies de I/O

Descrio funcional

FIGURA 3.46 Formato de arquivos HDL.

Tocci.indb 88 10/05/2011 18:15:05


Captulo 3 Descrevendo circuitos lgicos 89

AHDL DESCRIO BOOLEANA USANDO AHDL


Consulte a Figura 3.47. A palavra-chave SUBDESIGN nomeia o bloco do circuito, que, nesse caso,
and_gate. O nome do arquivo deve ser tambm and_gate.tdf. Observe que a palavra-chave SUBDESIGN
deve ser escrita inteiramente com letras maisculas. Isso no exigncia do software, mas o uso de um estilo
consistente na escrita torna o cdigo muito mais fcil de ler. O guia de estilo que vem junto com o compila-
dor da Altera para AHDL sugere o uso de maisculas nas palavras-chave. Variveis que so nomeadas pelo
projetista devem ficar em minsculas.

SUBDESIGN and_gate
(
a, b :INPUT;
y :OUTPUT;
)
BEGIN
y a & b;
END;

FIGURA 3.47 Elementos essenciais em AHDL.

A seo SUBDESIGN define as entradas e sadas do bloco do circuito lgico. O circuito que estamos
tentando descrever deve estar contido dentro de algo, da mesma maneira que um diagrama de bloco contm
tudo que constitui essa parte do projeto. Em AHDL, essa definio de entrada/sada est entre parnteses.
A lista de variveis usadas para entradas nesse bloco emprega separao por vrgulas e seguida pela ex-
presso :INPUT;. Em AHDL, pressupe-se que o tipo de bit seja single (nico), a no ser que a varivel
seja designada como de mltiplos bits. O bit de sada single (nico) declarado com o modo :OUTPUT;.
Aprenderemos a forma adequada de descrever outros tipos de entradas, sadas e variveis medida que
precisarmos utiliz-los.
O conjunto de declaraes que descreve a operao do circuito AHDL est contido na seo lgica
entre as palavras-chave BEGIN e END. END deve terminar com ponto e vrgula, semelhante a um pargrafo
que termina com um ponto. Nesse exemplo, a operao do hardware descrita por uma equao de lgebra
booleana muito simples, que declara que a sada (y) recebe como atribuio (=) o nvel lgico produzido por
a AND b. Essa equao de lgebra booleana chamada de declarao de atribuio concorrente. Todas as
declaraes (h apenas uma nesse exemplo) entre BEGIN e END so avaliadas constante e simultaneamente.
A ordem em que so listadas no faz diferena. Os operadores booleanos bsicos so:
& AND
# OR
! NOT
$ XOR

Questes para reviso

1. O que aparece dentro dos parnteses ( ) aps SUBDESIGN?


2. O que aparece entre BEGIN e END?

DESCRIO BOOLEANA USANDO VHDL


VHDL

Consulte a Figura 3.48. A palavra-chave ENTITY nomeia o bloco do circuito, que, nesse caso, and_
gate. Observe que a palavra-chave ENTITY deve ser escrita em letras maisculas, mas and_gate no. Isso
no exigncia do software, mas o uso de um estilo consistente na escrita torna o cdigo muito mais fcil

Tocci.indb 89 10/05/2011 18:15:06


90 Sistemas digitais princpios e aplicaes

de ler. O guia de estilo que vem junto com o compilador da Altera para VHDL sugere o uso de maisculas
nas palavras-chave. Variveis que so nomeadas pelo projetista devem ficar em minsculas.

ENTITY and_gate IS
PORT ( a, b :IN BIT;
y :OUT BIT);
END and_gate;
ARCHITECTURE ckt OF and_gate IS
BEGIN
y <= a AND b;
END ckt;

FIGURA 3.48 Elementos essenciais em VHDL.

A declarao ENTITY pode ser encarada como uma descrio do bloco. O circuito que estamos tentando
descrever deve estar contido dentro de algo, da mesma maneira que um diagrama de bloco contm tudo que
constitui essa parte do projeto. Em VHDL, a palavra-chave PORT diz ao compilador que estamos definindo
entradas e sadas para esse bloco de circuito. Os nomes usados para entradas (separadas por vrgulas) so
listados, terminando com dois-pontos (:) e uma descrio do modo e do tipo da entrada (:IN BIT;). Em VHDL,
a descrio BIT diz ao compilador que cada varivel da lista um bit nico (single). Aprenderemos a forma
adequada de descrever outros tipos de entradas, sadas e variveis medida que precisarmos utiliz-los. A
linha contendo END and_gate; encerra a declarao ENTITY.
A declarao ARCHITECTURE usada para descrever a operao de tudo que est dentro do
bloco. O projetista inventa um nome para essa descrio da arquitetura do funcionamento interno do bloco
ENTITY (ckt nesse exemplo). Todo ENTITY deve ter pelo menos uma ARCHITECTURE associada a ele.
As palavras OF e IS so palavras-chave nessa declarao. O corpo da descrio da arquitetura est contido
entre as palavras-chave BEGIN e END. END seguido por um nome que foi atribudo a essa arquitetura.
A linha deve ser pontuada com ponto e vrgula, semelhante maneira como se termina um pargrafo com
um ponto. Dentro do corpo (entre BEGIN e END), est a descrio da operao do bloco. Nesse exemplo,
a operao do hardware descrita por uma equao de lgebra booleana muito simples, que declara que
a sada (y) recebe como atribuio (<=) o nvel lgico produzido por a AND b. Essa equao de lgebra
booleana chamada de declarao de atribuio concorrente, que significa que todas as declaraes (h
apenas uma nesse exemplo) entre BEGIN e END so avaliadas constante e concorrentemente. A ordem em
que so listadas no faz diferena.

Questes para reviso

1. Qual o papel da declarao ENTITY?


2. Que seo-chave define a operao do circuito?
3. Qual o operador de atribuio usado para dar valor a um sinal lgico?

3.20 SINAIS INTERMEDIRIOS


Em muitos projetos, preciso definir pontos de sinal dentro do bloco de circuito. Esses pontos do circuito no so
entradas nem sadas do bloco, mas podem ser teis como ponto de referncia. Pode ser um sinal que precise ser conec-
tado a muitos outros lugares dentro do bloco. Em um diagrama esquemtico analgico ou digital, eles seriam chamados
de pontos de teste ou ns. Em HDL, so chamados de ns internos ou sinais locais. A Figura 3.49 mostra um circuito
simples que usa um sinal intermedirio chamado m. Em HDL, esses ns (sinais) no so definidos com entradas e sadas,
mas na seo que descreve a operao do bloco. As entradas e as sadas esto disponveis para outros blocos de circuito
no sistema, mas esses sinais locais so reconhecidos apenas dentro desse bloco.
No exemplo de cdigo que se segue, observe a informao no topo. O objetivo dessa informao estritamente do-
cumental. fundamental que o projeto seja documentado em todos os detalhes. preciso, no mnimo, descrever o projeto
que est sendo usado, quem o escreveu e a data. Essa informao muitas vezes chamada de cabealho (header). Estamos
utilizando cabealhos resumidos para tornar este livro um pouco mais leve, para que voc possa lev-lo para as aulas, mas

Tocci.indb 90 10/05/2011 18:15:06


Captulo 3 Descrevendo circuitos lgicos 91

lembre-se: o espao de memria barato e a informao valiosa. No tenha medo de documentar detalhadamente! H
tambm comentrios junto a muitas das declaraes do cdigo. Esses comentrios ajudam o projetista a lembrar-se do que
estava tentando fazer e as outras pessoas a entender os objetivos do cdigo.

Sinal intermedirio m

INPUT
a
m
INPUT
b

OUTPUT y
INPUT
c

FIGURA 3.49 Um diagrama de circuito lgico com uma varivel intermediria.

NS INTERNOS EM AHDL
AHDL

O cdigo AHDL que descreve o circuito na Figura 3.49 mostrado na Figura 3.50. Os comentrios em
AHDL podem ficar entre os caracteres %, como voc pode ver na figura entre as linhas 1 e 4. Essa seo
do cdigo permite ao projetista escrever muitas linhas de informao que sero ignoradas pelos programas
de computador que usam esse arquivo, mas podem ser lidas por qualquer pessoa que esteja tentando decifrar
o cdigo. Observe que os comentrios ao final das linhas 7, 8, 11, 13 e 14 so precedidos de dois traos (--).
O texto aps os traos apenas para documentao. Ambos os tipos de smbolo podem ser usados, mas o
smbolo de porcentagem deve ser usado em pares para abrir e fechar o comentrio. Os traos duplos indicam
um comentrio que se estende at o fim da linha.
Em AHDL, os sinais locais so declarados na seo VARIABLE, que fica entre a seo SUBDESIGN
e a seo lgica. O sinal intermedirio m est definido na linha 11, aps a palavra-chave VARIABLE. A
palavra-chave NODE designa a natureza da varivel. Observe que um sinal de dois-pontos separa o nome
da varivel da designao do n. Na descrio de hardware na linha 13, a varivel intermediria recebe (
ligada a) um valor (m = a & b;), e ento m usado na segunda declarao na linha 14 para atribuir (ligar)
um valor a y (y = m # c;). Lembre-se de que as declaraes de atribuio so concorrentes e, assim, a ordem
em que so fornecidas no importa. Para ficar mais legvel, pode parecer lgico atribuir valores a variveis
intermedirias antes que sejam usadas em outras declaraes de atribuio, como mostrado aqui.

1 % Variveis intermedirias em AHDL (Figura 3.49)


2 Sistemas digitais 11a. ed
3 NS Widmer
4 MAY 24, 2010 %
5 SUBDESIGN fig3_50
6 (
7 a,b,c :INPUT; -- define entradas no bloco
8 y :OUTPUT; -- define a sada do bloco
9 )
10 VARIABLE
11 m :NODE; -- nomeia um sinal intermedirio
12 BEGIN
13 m = a & b; -- gera um termo de produto interno
14 y = m # c; -- gera soma na sada
15 END;

FIGURA 3.50 Variveis intermedirias em AHDL descritas na Figura 3.49.

Tocci.indb 91 10/05/2011 18:15:06


92 Sistemas digitais princpios e aplicaes

Questes para reviso

1. Qual a designao usada para variveis intermedirias?


2. Onde essas variveis so declaradas?
3. Importa quem vem antes na equao, se o m ou o y?
4. Que caractere usado para delimitar um bloco de comentrios?
5. Que caracteres so usados para comentar uma nica linha?

SINAIS LOCAIS EM VHDL


VHDL

O cdigo VHDL que descreve o circuito na Figura 3.49 mostrado na Figura 3.51. Os comentrios
em VHDL so precedidos de dois traos (--). O texto aps os traos e at o final da linha inclui informaes
inseridas pelo projetista. A informao ser ignorada pelos programas que usam esse arquivo, mas podem
ser lidas por qualquer pessoa que esteja tentando decifrar o cdigo.
O sinal intermedirio m definido na linha 13, aps a palavra-chave SIGNAL. A palavra-chave BIT
designa o tipo do sinal. Observe que um sinal de dois-pontos separa o nome do sinal da designao do tipo.
Na descrio de hardware na linha 16, o sinal intermedirio recebe ( ligado a) um valor (m <= a AND b;),
e ento m usado na declarao na linha 17 para atribuir (ligar) um valor a y (y <=m OR c;). Lembre-se
de que as declaraes de atribuio so concorrentes e, assim, a ordem em que so fornecidas no importa.
Para ficar mais legvel, pode parecer lgico atribuir valores a sinais intermedirios antes que sejam usados
em outras declaraes de atribuio, como mostrado aqui.

1 -- Variveis intermedirias em VHDL (Figura 3.49)


2 -- Sistemas digitais 11a. ed
3 -- NS Widmer
4 -- MAY 24, 2010
5
6 ENTITY fig3_51 IS
7 PORT( a, b, c :IN BIT; -- define entradas no bloco
8 y :OUT BIT); -- define a sada do bloco
9 END fig3_51;
10
11 ARCHITECTURE ckt OF fig3_51 IS
12
13 SIGNAL m :BIT; -- nomeia um sinal intermedirio
14
15 BEGIN
16 m <= a AND b; -- gera um termo de produto interno
17 y <= m OR c; -- gera soma na sada
18 END ckt;

FIGURA 3.51 Sinais intermedirios em VHDL descritos na Figura 3.49.

Questes para reviso

1. Qual a designao usada para sinais intermedirios?


2. Onde esses sinais so declarados?
3. Importa quem vem antes na equao, se o m ou o y?
4. Que caracteres so usados para comentar uma nica linha?

Tocci.indb 92 10/05/2011 18:15:06


Captulo 3 Descrevendo circuitos lgicos 93

RESUMO
1. A lgebra booleana uma ferramenta matemtica usada na anlise e no projeto de circuitos digitais.
2. As operaes booleanas bsicas so OR, AND e NOT (INVERSOR).
3. Uma porta OR gerar uma sada em nvel ALTO quando quaisquer entradas forem nvel ALTO. Uma porta AND gerar
uma sada em nvel ALTO quando todas as entradas forem nvel ALTO. Um circuito NOT (INVERSOR) gerar uma
sada que o nvel lgico oposto ao da entrada.
4. Uma porta NOR o mesmo que uma porta OR com a sada conectada a um INVERSOR. Uma porta NAND o mesmo
que uma porta AND com a sada conectada a um INVERSOR.
5. As regras e teoremas booleanos podem ser usados para simplificar a expresso de um circuito lgico e sua implementao.
6. As portas NAND podem ser usadas para implementar qualquer operao booleana bsica. As portas NOR podem ser
igualmente usadas.
7. Os smbolos alternativos ou padro podem ser usados para cada porta lgica, dependendo se a sada ativa-em-alto
ou ativa-em-baixo.
8. O atraso de propagao o tempo entre uma transio de entrada e a resposta resultante do circuito.
9. As linguagens de descrio de hardware tornaram-se um mtodo importante de descrever circuitos digitais.
10. O cdigo HDL deve sempre conter comentrios que documentem suas caractersticas fundamentais, para que uma
pessoa que o leia mais tarde possa entender o propsito.
11. Todas as descries de circuitos HDL contm uma definio de entradas e sadas, seguida por uma seo que descreve
a operao do circuito.
12. Alm de entradas e sadas, conexes intermedirias internas ao circuito podem ser definidas. So chamadas de ns ou
sinais internos.

TERMOS IMPORTANTES
acionado linguagem de descrio de operao NOT
lgebra booleana hardware da Altera (AHDL) operao OR
ARCHITECTURE linguagem de descrio de porta AND
ativa-em-alto hardware de circuitos porta NAND
ativa-em-baixo integrados de velocidade muito porta NOR
atraso de propagao alta (VHSIC e VHDL) porta OR
BIT linguagens de descrio de smbolos lgicos alternativos
circuito NOT (INVERSOR) hardware (HDLs) sintaxe
compilador modo SUBDESIGN
declarao de atribuio no acionado tabela-verdade
concorrente nveis lgicos ativos teoremas booleanos
dispositivos lgicos programveis nvel lgico teoremas de DeMorgan
(PLDs) NODE tipo
ENTITY ns internos (sinais locais) VARIABLE
inverso (complemento) operao AND

PROBLEMAS4
As letras que aparecem antes dos problemas indicam a natureza ou o tipo de problema, conforme descrito a seguir:
B problema bsico N novo conceito ou nova tcnica no abordado no texto
T problema de anlise de defeito C problema considerado um desafio
D problema de projeto ou modificao de circuito H problema em HDL

SEO 3.3
B 3.1* Desenhe a forma de onda de sada para a porta OR B 3.3* Suponha que a entrada A na Figura 3.52 seja, no
da Figura 3.52. intencionalmente, curto-circuitada para a linha de
B 3.2 Suponha que a entrada A na Figura 3.52 seja, no in- alimentao +5 V (isto , A = 1). Desenhe a forma
tencionalmente, curto-circuitada para o terra (isto , de onda de sada resultante.
A = 0). Desenhe a forma de onda de sada resultante.

4 As respostas para os problemas assinalados com um asterisco podem ser encontradas no final do livro.

Tocci.indb 93 10/05/2011 18:15:06


94 Sistemas digitais princpios e aplicaes

C 3.4 Leia as afirmaes a seguir referentes porta OR. (b) Se a forma de onda de sada de uma porta OR
primeira vista, parecem ser verdadeiras, mas for sempre nvel ALTO, uma de suas entradas
depois de uma anlise, voc ver que nenhuma est sendo mantida sempre em nvel ALTO.
totalmente verdadeira. Prove isso com um exemplo B 3.5 Quantos conjuntos diferentes de condies de en-
especfico que refute cada afirmativa. trada produzem uma sada em nvel ALTO em uma
(a) Se a forma de onda de sada de uma porta OR porta OR de cinco entradas?
for a mesma que a de uma das entradas, a outra
entrada est sendo mantida permanentemente
em nvel BAIXO.

A
B B
x
C
C

FIGURA 3.52

SEO 3.4
B 3.6 Troque a porta OR na Figura 3.52 por uma porta B 3.8* Troque a porta OR na Figura 3.6 por uma porta
AND. AND e desenhe a forma de onda de sada.
(a)* Desenhe a forma de onda de sada. B 3.9 Suponha que voc tenha uma porta de duas entradas
(b) Desenhe a forma de onda de sada se a entrada de funo desconhecida que pode ser uma porta OR
A for permanentemente curto-circuitada para ou uma porta AND. Qual combinao de nveis de
o terra. entrada voc colocaria nas entradas da porta para
(c) Desenhe a forma de onda de sada se a entrada determinar seu tipo?
A for permanentemente curto-circuitada para B 3.10 Verdadeiro ou falso: uma porta AND, no importa
+5 V. quantas entradas tenha, produzir uma sada em
D 3.7* Tomando como referncia a Figura 3.4, modifique o nvel ALTO para apenas uma combinao de nveis
circuito de modo que o alarme seja ativado apenas de entrada.
quando a presso e a temperatura excederem, ao
mesmo tempo, seus valores-limite.

SEES 3.5 A 3.7


B 3.11 Aplique a forma de onda A mostrada na Figura 3.23 presentes na sada de cada porta para as 32 combi-
entrada de um INVERSOR. Desenhe a forma de naes possveis de entrada.
onda de sada. Repita para a forma de onda B. B 3.14 (a)* Troque cada OR por AND e cada AND por
B 3.12 (a)* Escreva a expresso booleana para a sada x OR na Figura 3.15(b). Em seguida, escreva a
na Figura 3.53(a). Determine o valor de x para expresso para a sada.
todas as condies possveis de entrada e re- (b) Determine a tabela-verdade completa.
lacione os resultados em uma tabela-verdade. B 3.15 Determine a tabela-verdade completa para o circuito
(b) Repita para o circuito da Figura 3.53(b). da Figura 3.15(a) encontrando os nveis lgicos
B 3.13* Determine a tabela-verdade completa para o circuito presentes na sada de cada porta para as 16 combi-
da Figura 3.15(b) encontrando os nveis lgicos naes possveis de entrada.

x
C
(a)

FIGURA 3.53(continua)
A

B
Tocci.indb 94 10/05/2011 18:15:07
A

x
C Captulo 3 Descrevendo circuitos lgicos 95
(a)

(b)

FIGURA 3.53(continuao)

SEO 3.8
B 3.16 Para cada uma das expresses a seguir, desenhe o (c) y = (M + N + PQ)
circuito lgico correspondente usando portas AND, (d) x = W + PQ
OR e INVERSORES. (e) z = MN(P + N)
(a)* x = AB(C + D) (f) x = (A + B)(A + B)
(b)* z = A + B + CDE) + BCD

SEO 3.9
B 3.17* (a) Aplique as formas de onda de entrada da C 3.19* Escreva a expresso para a sada do circuito da Fi-
Figura 3.54 em uma porta NOR e desenhe a gura 3.55 e use-a para determinar a tabela-verdade
forma de onda de sada. completa. Em seguida, aplique as formas de onda
(b) Repita para a entrada C mantida permanente- mostradas na Figura 3.54 s entradas do circuito e
mente em nvel BAIXO. desenhe a forma de onda de sada resultante.
(c) Repita para a entrada C mantida em nvel B 3.20 Determine a tabela-verdade para o circuito da Fi-
ALTO. gura 3.24.
B 3.18 Repita o Problema 3.17 para uma porta NAND. B 3.21 Modifique os circuitos construdos no Problema
3.16 para usar as portas NAND e NOR onde for
apropriado.

A
X
B
A
B

C
C

FIGURA 3.54 FIGURA 3.55

Tocci.indb 95 10/05/2011 18:15:07


96 Sistemas digitais princpios e aplicaes

SEO 3.10
C 3.22 Prove os teoremas (15a) e (15b) testando todos os (g) D + 0 = __________
casos possveis. (h) C + C = __________
B 3.23* EXERCCIOS DE FIXAO (i) G + GF = __________
Complete cada expresso. (j) y + wy = __________
(a) A + 1 = __________ C 3.24 (a)* Simplifique a seguinte expresso usando os
(b) A A = __________ teoremas (13b), (3) e (4):
(c) B B = __________ x = (M + N)(M + P)(N + P)
(d) C + C = __________ (b) Simplifique a seguinte expresso usando os
(e) x 0 = __________ teoremas (13a), (8) e (6):
(f) D 1 = __________ z = ABC + ABC + BCD

SEES 3.11 E 3.12


C 3.25 Prove os teoremas de DeMorgan testando todos os B 3.31 Mostre como uma porta NOR de duas entradas
casos possveis. pode ser construda a partir de portas NAND de
B 3.26 Simplifique cada uma das seguintes expresses duas entradas.
usando os teoremas de DeMorgan. C 3.32 Um avio a jato emprega um sistema de monito-
(a)* ABC (f) A+C+D rao dos valores de rpm, presso e temperatura
(b) A + BC (g)* A(B + C)D dos seus motores usando sensores que operam,
(c)* ABCD (h) (M + N)(M + N) conforme descrito a seguir:
(d) A + B (i) ABCD sada do sensor RPM = 0 apenas quando a veloci-
(e)* AB dade for < 4.800rpm
B 3.27* Use os teoremas de DeMorgan para simplificar a sada do sensor P = 0 apenas quando a pres-
expresso de sada do circuito da Figura 3.55. so for < 1,33 N/m2
C 3.28 Converta o circuito da Figura 3.53(b) para um cir- sada do sensor T = 0 apenas quando a tempe-
cuito que use apenas portas NAND. Em seguida, ratura for < 93,3C
escreva a expresso de sada para o novo circuito,
A Figura 3.56 mostra o circuito lgico que controla
simplifique-a usando os teoremas de DeMorgan e
uma lmpada de advertncia dentro da cabine para
compare-a com a expresso do circuito original.
certas combinaes de condies da mquina. Ad-
C 3.29 Converta o circuito da Figura 3.53(a) para um que
mita que um nvel ALTO na sada W ative a luz de
use apenas portas NOR. Em seguida, escreva a ex-
advertncia.
presso de sada para o novo circuito, simplifique-a
(a)* Determine quais condies do motor indicam
usando os teoremas de DeMorgan e compare-a com
sinal de advertncia ao piloto.
a expresso do circuito original.
(b) Troque esse circuito por outro que contenha
B 3.30 Mostre como uma porta NAND de duas entradas
apenas portas NAND.
pode ser construda a partir de portas NOR de duas
entradas.

T
Sensor de
W
temperatura

Sensor de Luz de
presso P advertncia

Sensor R
RPM

FIGURA 3.56

SEES 3.13 E 3.14


B 3.33* Para cada afirmativa a seguir, desenhe o smbolo (a) Uma sada em nvel ALTO ocorre apenas
apropriado da porta lgica (padro ou alternativo) quando todas as entradas esto em nvel
para as operaes dadas. BAIXO.

Tocci.indb 96 10/05/2011 18:15:07


Captulo 3 Descrevendo circuitos lgicos 97

(b) Uma sada em nvel BAIXO ocorre apenas do circuito para refletir essa condio e, em
quando todas as entradas esto em nvel seguida, use o diagrama alterado para determi-
BAIXO. nar as condies de entrada necessrias para
(c) Uma sada em nvel BAIXO ocorre apenas ativar o alarme.
quando todas as entradas esto em nvel D 3.37 Modifique o circuito da Figura 3.40 de modo que
ALTO. seja necessrio fazer A1 = 0 para produzir LCD = 1
B 3.34 Desenhe as representaes-padro para cada uma em vez de A1 = 1.
das portas lgicas bsicas. Em seguida, desenhe as B 3.38* Determine as condies de entrada necessrias para
representaes alternativas. levar a sada para o estado ativo na Figura 3.57.
C 3.35 Suponha que o circuito da Figura 3.55 seja um sim- B 3.39* (a) Qual o estado acionado (ativo) para a sada
ples circuito combinacional de uma chave digital da Figura 3.57?
de cdigo cuja sada gera um sinal ativo em nvel (b) E para a sada da Figura 3.36(c)?
BAIXO para apenas uma combinao das entradas. B 3.40 Use o resultado do Problema 3.38 para obter a
(a)* Modifique o diagrama do circuito para que ele tabela-verdade completa para o circuito da Figura
represente mais eficientemente a operao do 3.57.
circuito. N 3.41* A Figura 3.58 mostra uma aplicao de portas lgi-
(b) Use o novo diagrama do circuito para determi- cas que simula um circuito two-way como o usado
nar a combinao de entrada que ativa a sada. em nossas casas para ligar ou desligar uma lmpada
Faa isso da sada para a entrada do circuito, a partir de interruptores diferentes. Nesse caso,
usando as informaes dadas pelos smbolos usado um LED que estar LIGADO (conduzindo)
das portas utilizadas nos exemplos 3.22 e 3.23. quando a sada da porta NOR for nvel BAIXO.
Compare os resultados com a tabela obtida no Observe que essa sada foi nomeada LIGHT para
Problema 3.19. indicar que ativa-em-baixo. Determine as condi-
C 3.36 (a) Determine as condies de entrada necessrias es de entrada necessrias para ligar o LED. Em
para ativar a sada Z na Figura 3.37(b). Faa seguida, verifique se o circuito funciona como um
isso da sada para a entrada do circuito, de interruptor two-way (interruptores A e B). No Ca-
acordo com os exemplos 3.22 e 3.23. ptulo 4, voc aprender a projetar circuitos como
(b) Admita que o estado BAIXO na sada Z seja esse para produzir uma relao entre entradas e
o estado ativo do alarme. Altere o diagrama sadas.

+5 V

A +5 V

B x A

LIGHT
+5 V
C
B
D

FIGURA 3.57 FIGURA 3.58

SEO 3.15
B 3.42 Um inversor 7406 TTL tem um tPLH mximo de 15 (b) Coloque tPLH e tPHL no grfico.
ns e um tPHL de 23 ns. Um pulso positivo que dura (c) Qual a amplitude do pulso na sada, se
100 ns aplicado entrada. ocorrerem as piores hipteses de atraso de
(a) Desenhe as formas de onda de entrada e de propagao?
sada. Faa uma escala do eixo X de maneira
que o tempo final seja 200 ns.

Tocci.indb 97 10/05/2011 18:15:08


98 Sistemas digitais princpios e aplicaes

SEO 3.17
EXERCCIOS DE FIXAO SOBRE HDL
H 3.43* Verdadeiro ou falso: (f) O tipo de um objeto indica se ele entrada ou
(a) O VHDL uma lgica de programao de sada.
computadores. (g) O modo de um objeto determina se ele en-
(b) O VHDL pode fazer o mesmo que o AHDL. trada ou sada.
(c) O AHDL uma linguagem do padro IEEE. (h) Ns internos so os que foram eliminados e
(d) Cada interseco de uma matriz de comutao jamais sero usados novamente.
pode ser programada como circuito aberto (i) Sinais locais outro nome para variveis
ou em curto-circuito entre uma linha e uma intermedirias.
coluna. (j) O cabealho um bloco de comentrios que
(e) O primeiro item que aparece no topo de uma documentam informaes importantes sobre
lista em HDL a descrio funcional. o projeto.

SEO 3.18
B 3.44 Redesenhe a matriz de conexo programvel da X=A+B
Figura 3.44. Nomeie os sinais de sada (linhas ho- Y = AB
rizontais) da matriz de conexo (da linha de cima Z=A+B+C
at a de baixo) da seguinte forma: AAABADHE. H 3.46 Escreva o cdigo HDL na linguagem de sua escolha
Desenhe um X nas interseces apropriadas para que implementar o circuito lgico da Figura 3.39.
fazer uma linha e uma coluna entrarem em curto- (a) Utilize uma nica equao booleana.
-circuito e criar essas conexes ao circuito lgico. (b) Use as variveis intermedirias V, W, X e Y.
H 3.45* Escreva o cdigo HDL na linguagem de sua escolha
que produzir as seguintes funes de sada:

APLICAO EM MICROCOMPUTADOR
C 3.47* Consulte a Figura 3.40 no Exemplo 3.23. As en- endereo necessrio para ativar a unidade de disco
tradas de A7 a A0 so de endereo provenientes das foi de A7 a A0 = 111111102 = FE16.
sadas de um chip de microprocessador em um Modifique o circuito de modo que o microproces-
microcomputador. O cdigo de endereo de 8 bits, sador tenha de gerar o cdigo 4A16 para ativar a
A7 a A0, seleciona qual dispositivo o microproces- unidade de disco.
sador deseja ativar. No Exemplo 3.23, o cdigo do

DESAFIOS
C 3.48 Mostre como x = ABC pode ser implementado C 3.49* Implemente a expresso y = ABCD usando apenas
com uma porta NOR de duas entradas e uma porta portas NAND de duas entradas.
NAND de duas entradas.

RESPOSTAS DAS QUESTES PARA REVISO


SEO 3.2 SEO 3.4
1. x = 1 1. Todas as cinco entradas = 1.
2. x = 0 2. Uma entrada em nvel BAIXO mantm a sada em
3. 32 nvel BAIXO.
3. Falso; veja a tabela-verdade de cada porta.
SEO 3.3
1. Todas as entradas em nvel BAIXO. SEO 3.5
2. x = A + B + C + D + E + F 1. A sada do segundo INVERSOR ser a mesma que a
3. Constantemente em nvel ALTO. entrada A.
2. y ser nvel BAIXO apenas para A = B = 1.

Tocci.indb 98 10/05/2011 18:15:08


Captulo 3 Descrevendo circuitos lgicos 99

SEO 3.6 SEO 3.15


1. x = A + B + C + AD 1. A escala em nanossegundos e leva um montante finito
2. x = D(AB + C) + E de tempo para mudar os estados.
2. Do ponto 50 por cento na entrada ao ponto 50 por cento
SEO 3.7 na sada.
1. x = 1 3. tPHL
2. x = 1 4. tPLH
3. x = 1 para ambos.
SEO 3.16
SEO 3.8 1. Equao booleana, tabela-verdade, diagrama lgico,
1. Veja a Figura 3.15(a). diagrama de tempo, linguagem.
2. Veja a Figura 3.17(b). 2. Entrada esquemtica de arquivos .bdf e simulao
3. Veja a Figura 3.15(b). usando diagramas de tempo.
SEO 3.9 SEO 3.17
1. Todas as entradas em nvel BAIXO. 1. Linguagem de descrio de hardware.
2. x = 0 2. Descrever um circuito digital e sua operao.
3. x = A + B + CD 3. Dar a um computador uma lista sequencial de tarefas.
4. O HDL descreve circuitos de hardware concorrentes;
SEO 3.10 as instrues de computador executam instrues uma
1. y = AC a uma.
2. y = A B D
3. y = AD + BD SEO 3.18
1. Dispositivo lgico programvel.
SEO 3.11 2. Estabelecer e romper conexes em uma matriz de
1. z = A B + C comutao.
2. y = (R + S + T)Q 3. O compilador traduz cdigo HDL em um padro de
3. O mesmo que na Figura 3.28, exceto que NAND bits para configurar a matriz de comutao.
substituda por NOR.
4. y = AB(C + D) SEO 3.19

SEO 3.12 AHDL


1. Trs. 1. As definies de entrada e sada.
2. O circuito com NOR mais eficiente porque pode ser 2. A descrio de como o hardware opera.
implementado com somente trs portas NOR.
3. x = (AB)(CD) = AB + (CD) = AB + CD VHDL
1. Nomear o circuito e definir suas entradas e sadas.
SEO 3.13 2. A descrio de ARCHITECTURE.
1. A sada ser nvel BAIXO quando qualquer entrada 3. <=
for nvel ALTO.
2. A sada ser nvel ALTO somente quando todas as SEO 3.20
entradas forem nvel BAIXO.
3. A sada ser nvel BAIXO quando qualquer entrada AHDL
for nvel BAIXO. 1. NODE.
4. A sada ser nvel ALTO somente quando todas as 2. Depois da definio de I/O e antes de BEGIN.
entradas forem nvel ALTO. 3. No.
4. %
SEO 3.14 5. --
1. Z ser nvel ALTO quando A = B = 0 e C = D = 1.
2. Z ser nvel BAIXO quando A = B = 0, E = 1 e C ou VHDL
D (ou ambas) for 0. 1. SIGNAL.
3. Duas. 2. Dentro de ARCHITECTURE e antes de BEGIN.
4. Duas. 3. No.
5. BAIXO. 4. --
6. A = B = 0, C = D = 1
7. W

Tocci.indb 99 10/05/2011 18:15:08


C A P T U L O 4

C I R C U I TO S L G I C O S
C O M B I N AC I O N A I S

CONTEDO
4.1 Forma de soma-de-produtos 4.10 Anlise de defeitos em sistemas digitais
4.2 Simplificao de circuitos lgicos 4.11 Falhas internas dos CIs digitais
4.3 Simplificao algbrica 4.12 Falhas externas
4.4 Projetando circuitos lgicos combinacionais 4.13 Estudo de um caso de anlise de defeito
4.5 Mtodo do mapa de Karnaugh 4.14 Dispositivos lgicos programveis
4.6 Circuitos exclusive-OR e exclusive-NOR 4.15 Representando dados em HDL
4.7 Circuitos gerador e verificador de paridade 4.16 Tabelas-verdade usando HDL
4.8 Circuitos para habilitar/desabilitar 4.17 Estruturas de controle de deciso em HDL
4.9 Caractersticas bsicas de CIs digitais

OBJETIVOS
Aps estudar este captulo, voc ser capaz de:
Converter uma expresso lgica em uma expresso de Deduzir, a partir de resultados observados, os defeitos
soma-de-produtos. de funcionamento em circuitos lgicos combinacionais.
Executar os passos necessrios para obter a forma mais Descrever o princpio fundamental dos dispositivos
simplificada de uma expresso de soma-de-produtos. lgicos programveis (PLDs).
Usar a lgebra booleana e o mapa de Karnaugh como Delinear os passos envolvidos na programao de um
ferramentas para simplificao e projeto de circuitos PLD para que ele desempenhe a funo de um circuito
lgicos. lgico combinacional simples.
Explicar o funcionamento dos circuitos exclusive-OR Descrever mtodos de projetos hierrquicos.
e exclusive-NOR. Identificar tipos de dados adequados para variveis de
Projetar circuitos lgicos simples sem o auxlio da bit nico, vetores de bits e valores numricos.
tabela-verdade. Descrever circuitos lgicos usando estruturas de con-
Descrever como implementar circuitos de habilitao. trole IF/ELSE, IF/ELSIF e CASE.
Citar as caractersticas bsicas de CIs digitais TTL e Escolher a estrutura de controle adequada a um dado
CMOS. problema.
Usar as regras bsicas para anlise de defeitos em
sistemas digitais.

Tocci.indb 100 10/05/2011 18:15:08


Captulo 4 Circuitos lgicos combinacionais 101

INTRODUO
No Captulo 3, estudamos o funcionamento de todas as portas lgicas bsicas e usamos a lgebra booleana para des-
crever e analisar circuitos feitos a partir da combinao de portas lgicas. Esses circuitos podem ser classificados como
combinacionais porque, em qualquer instante de tempo, o nvel lgico da sada do circuito depende da combinao dos
nveis lgicos presente nas entradas. Um circuito combinacional no possui a caracterstica de memria, portanto sua sada
depende apenas dos valores atuais das entradas.
Neste captulo, continuaremos o estudo de circuitos combinacionais. Para comear, faremos uma anlise mais detalhada
da simplificao de circuitos lgicos. Dois mtodos sero utilizados: o primeiro com os teoremas da lgebra booleana e
o segundo, com uma tcnica de mapeamento. Alm disso, estudaremos tcnicas simples para projetar circuitos lgicos
combinacionais que satisfaro determinado conjunto de requisitos. Um estudo completo sobre o projeto de circuitos lgicos
no um dos objetivos, mas os mtodos que estudaremos proporcionaro uma boa introduo para esse assunto.
Grande parte deste captulo dedicada ao tpico da anlise de defeitos (troubleshooting), termo que tem sido ado-
tado como descrio geral do processo de isolamento de um problema, ou falha, em qualquer sistema e a identificao de
uma maneira para resolv-lo. As habilidades analticas e os mtodos eficientes para a anlise de defeitos so igualmente
aplicveis a qualquer sistema, no importa se um problema de encanamento, um problema com carro, uma questo de
sade ou um circuito digital. Sistemas digitais, implementados usando circuitos integrados TTL, tm sido, por dcadas,
excepcionais para o estudo eficiente e sistemtico de mtodos de anlise de defeitos. Como ocorre com qualquer sistema,
as caractersticas prticas das peas que formam o sistema tm de ser compreendidas, a fim de que se possa fazer uma
anlise efetiva de sua operao normal, localizando o problema e propondo uma soluo. Apresentaremos algumas carac-
tersticas bsicas e falhas tpicas de CIs de portas lgicas das famlias TTL e CMOS, que ainda so comumente usados para
instruo de laboratrio em cursos digitais introdutrios, e tirar vantagem desta tecnologia para ensinar alguns princpios
fundamentais de anlise de defeitos.
Nas ltimas sees, apresentaremos conceitos bsicos que envolvem os dispositivos lgicos programveis e as lin-
guagens de descrio de hardware. O conceito de conexes programveis de hardware ser reforado, e forneceremos
mais detalhes sobre o papel do sistema de desenvolvimento. Voc aprender os passos a serem seguidos no projeto e o
atual desenvolvimento de sistemas digitais. Sero fornecidas informaes para que voc possa escolher os tipos corretos
de objetos de dados, usados em projetos simples, apresentados posteriormente neste livro. Por fim, vrias estruturas de
controle sero explicadas, e sero dadas instrues sobre o seu uso apropriado.

4.1 FORMA DE SOMA-DE-PRODUTOS


Os mtodos de simplificao e projetos de circuitos lgicos que estudaremos requerem que a expresso esteja na
forma de soma-de-produtos. Alguns exemplos de expresses desse tipo so:
1. ABC + ABC
2. AB + ABC + C D + D
3. AB + CD + EF + GK + HL
Cada expresso consiste em dois ou mais termos AND (produtos) conectados por uma operao OR. Cada termo
AND consiste em uma ou mais variveis que aparecem individualmente na forma complementada ou no complementada.
Por exemplo, na expresso que uma soma-de-produtos ABC + ABC, o primeiro produto AND contm as variveis A,
B e C na forma no complementada (no invertida). O segundo termo AND contm A e C em sua forma complementada
(invertida). Observe que em uma expresso na forma de soma-de-produtos, um sinal de inverso (barra) no pode cobrir
mais que uma varivel em um termo (por exemplo, no poderamos ter ABC ou RST).

Produto-de-somas
Outra forma geral para expresses lgicas usada, s vezes, no projeto de circuitos lgicos. Ela chamada de
produto-de-somas e consiste em dois ou mais termos OR (somas) conectados por operaes AND. Cada termo OR con-
tm uma ou mais variveis na forma complementada ou no complementada. Vejamos algumas expresses na forma de
produto-de-somas:
1. (A + B + C)(A + C)
2. (A + B)(C + D)F
3. (A + C)(B + D)(B + C)(A + D + E)
Os mtodos de simplificao e projeto de circuitos que usaremos so baseados na forma de soma-de-produtos, portanto
no usaremos muito produto-de-somas. Entretanto, a forma de produto-de-somas aparecer em alguns circuitos lgicos
que apresentam uma estrutura particular.

Tocci.indb 101 10/05/2011 18:15:08


102 Sistemas digitais princpios e aplicaes

Questes para reviso

1. Quais das seguintes expresses esto na forma de soma-de-produtos?


(a) AB + CD + E
(b) AB(C + D)
(c) (A + B)(C + D + F)
(d) MN + PQ
2. Repita a Questo 1 para a forma de produto-de-somas.

4.2 SIMPLIFICAO DE CIRCUITOS LGICOS


Uma vez obtida a expresso de um circuito lgico, podemos reduzi-la a uma forma mais simples, que contenha um
menor nmero de termos ou variveis em um ou mais termos da expresso. Essa nova expresso pode, ento, ser usada na
implementao de um circuito equivalente ao original, mas que contm menos portas lgicas e conexes.
Para ilustrar, o circuito da Figura 4.1(a) pode ser simplificado para produzir o circuito mostrado na Figura 4.1(b).
Visto que os dois circuitos tm a mesma lgica, um circuito mais simples mais desejvel por conter menos portas lgicas
e, portanto, ser menor e mais barato que o original. Alm disso, a confiabilidade ser maior por ter um nmero menor de
conexes, que so causas potenciais de defeitos em circuitos.
Outra vantagem estratgica de se simplificar circuitos lgicos envolve a velocidade operacional de circuitos. Lembre
das discusses anteriores, em que portas lgicas so sujeitas ao atraso de propagao. Se circuitos lgicos prticos so
configurados de tal maneira que mudanas lgicas nas entradas tm de ser propagadas atravs de muitas camadas de por-
tas a fim de determinar a sada, eles no tm como operar to rpido quanto circuitos com menos camadas de portas. Por
exemplo, compare os circuitos da Figura 4.1(a) e (b). Em (a) o percurso mais longo que um sinal tem de viajar envolve
trs portas. Na Figura 4.1(b), o percurso de sinal mais longo (C) envolve apenas duas portas. Trabalha no sentido de uma
forma comum como soma-de-produtos ou produto-de-somas assegura um atraso de propagao similar para todos os sinais
no sistema e ajuda a determinar a velocidade operacional mxima do sistema.
Nas sees subsequentes, estudaremos dois mtodos para simplificao de circuitos lgicos. O primeiro usa os te-
oremas da lgebra booleana e depende muito da inspirao e experincia do usurio. O segundo (o mapa de Karnaugh)
consiste de um mtodo sistemtico de aproximao passo a passo. Alguns professores podem pular este ltimo, por ser,
at certo ponto, mecnico e provavelmente no contribuir para um melhor aprendizado da lgebra booleana. Isso pode ser
feito sem afetar a continuidade ou a clareza do restante do texto.

A A + BC
B BC x = A B(A + BC)

(a)

A
B x=ABC
C
C
(b)

FIGURA 4.1Geralmente possvel simplificar um circuito lgico como o mostrado em (a) para gerar
uma implementao mais eficiente, conforme mostrado em (b).

4.3 SIMPLIFICAO ALGBRICA


Podemos usar os teoremas da lgebra booleana, estudados no Captulo 3, para simplificar expresses de circuitos
lgicos. Infelizmente, nem sempre bvio qual teorema deve ser aplicado para se obter o resultado mais simplificado.
Alm disso, no fcil dizer se uma expresso est na forma mais simples ou se ainda pode ser simplificada. Assim, as
simplificaes algbricas so, muitas vezes, um processo de tentativa e erro. Entretanto, com a experincia, podem-se
obter resultados razoavelmente bons.

Tocci.indb 102 10/05/2011 18:15:09


Captulo 4 Circuitos lgicos combinacionais 103

Os exemplos a seguir ilustram vrias formas em que os teoremas booleanos podem ser aplicados na tentativa de
simplificao de expresses. Voc deve observar que esses exemplos contm dois passos essenciais:
1. A expresso original colocada na forma de soma-de-produtos, aplicando-se repetidamente os teoremas de De-
Morgan e a multiplicao de termos.
2. Uma vez que a expresso original esteja na forma de soma-de-produtos, verifica-se se os termos produto tm
fatores comuns, realizando a fatorao, sempre que possvel. Com sorte, a fatorao resulta na eliminao de um
ou mais termos.

Exemplo 4.1

Simplifique o circuito lgico mostrado na Figura 4.2(a).


Soluo
O primeiro passo determinar a expresso para a sada, usando o mtodo apresentado na Seo 3.6. O resultado
z = ABC + AB (A C)
Uma vez determinada a expresso, uma boa ideia quebrar todas as barras de inverso, usando os teoremas de DeMorgan,
para, em seguida, multiplicar todos os termos.
z = ABC + AB(A + C) [teorema (17)]
= ABC + AB(A + C) [cancela inverses duplas]
= ABC + ABA + ABC [multiplica]
= ABC + AB + ABC [A A = A]
Agora, com a expresso na forma de soma-de-produtos, devemos procurar por variveis comuns entre os termos, com a
inteno de fatorar. O primeiro e o terceiro termos tm AC em comum, que pode ser fatorado obtendo:
z = AC(B + B) + AB
Visto que B + B = 1, ento,
z = AC(1) + AB
= AC + AB
Agora podemos fatorar A, resultando em
z = A(C + B)
Esse resultado no tem como ser simplificado. A implementao do circuito mostrada na Figura 4.2(b). O circuito
mostrado em (b) bem mais simples que o circuito original, mostrado em (a).

AC
A A B(A C)
A

z = ABC + AB(AC)
C
B
A
ABC
B
(a)

B B+C

C z = A(B + C)
A

(b)

FIGURA 4.2 Exemplo 4.1.

Tocci.indb 103 10/05/2011 18:15:09


104 Sistemas digitais princpios e aplicaes

Exemplo 4.2

Simplifique a expresso z = AB C + ABC + ABC.


Soluo
Essa expresso j est na forma de soma-de-produtos.
Mtodo 1: os primeiros dois termos da expresso tm em comum o produto AB. Portanto,
z = AB(C + C) + ABC
= AB(1) + ABC
= AB + ABC
Podemos fatorar a varivel A dos dois termos:
z = A(B + BC)
Aplicando-se o teorema (15b),
z = A(B + C)
Mtodo 2: a expresso original z = AB C + ABC + ABC. Os dois primeiros termos tm AB em comum. Os dois ltimos
tm AC. Como saber se devemos fatorar AB, dos dois primeiros termos, ou AC, dos dois ltimos termos? Na realidade,
podemos fazer ambas as coisas, usando o termo ABC duas vezes. Em outras palavras, podemos reescrever a expresso
como:
z = AB C + ABC + ABC + ABC
na qual acrescentamos um termo extra ABC. Isso vlido e no altera o valor da expresso, visto que ABC + ABC = ABC
[teorema (7)]. Agora, podemos fatorar AB dos dois primeiros termos e AC dos dois ltimos termos, obtendo:
z = AB(C + C) + AC(B + B)
= AB 1 + AC 1
= AB + AC = A(B + C)
Esse resultado , naturalmente, o mesmo obtido com o mtodo 1. Esse artifcio de usar o mesmo termo duas vezes pode
ser aplicado sempre. Na realidade, o mesmo termo pode ser usado mais de duas vezes, caso seja necessrio.

Exemplo 4.3

Simplifique a expresso z = AC(ABD) + ABC D + ABC.


Soluo
Inicialmente, use o teorema de DeMorgan no primeiro termo:
z = AC(A + B + D) + ABC D + ABC (passo 1)
Multiplicando, obtemos
z = ACA + ACB + ACD + ABC D + ABC (2)
Visto que A A = 0, o primeiro termo eliminado:
z = A BC + ACD + ABC D + ABC (3)
Essa a forma de soma-de-produtos. Agora, devemos procurar por fatores comuns entre os termos-produto. A ideia
identificar o maior fator comum entre dois ou mais termos-produto. Por exemplo, o primeiro e o ltimo termos tm em
comum o fator BC, e o segundo e o terceiro compartilham o fator comum A D. Podemos fator-los da seguinte maneira:
z = BC(A + A) + A D (C + BC) (4)
Agora, visto que A + A = 1 e C + BC = C + B [teorema (15a)], temos
z = BC + A D (B + C) (5)
Esse mesmo resultado poderia ser obtido com outras escolhas para fatorao. Por exemplo, poderamos ter fatorado C
do primeiro, do segundo e do quarto termos produto, no passo 3, para obter

Tocci.indb 104 10/05/2011 18:15:09


Captulo 4 Circuitos lgicos combinacionais 105

z = C(A B + A D + AB) + ABC D


A expresso dentro dos parnteses ainda pode ser fatorada obtendo:
z = C(B[A + A] + A D) + ABC D
Visto que A + A = 1, a expresso se torna
z = C(B + A D) + ABC D
Multiplicando, obtemos
z = BC + ACD + ABC D
Agora podemos fatorar A D do segundo e do terceiro termos e obtermos
z = BC + A D(C + BC)
Usando-se o teorema (15a), a expresso entre parnteses se torna B + C. Assim, temos finalmente
z = BC + A D(B + C)
o mesmo resultado que obtivemos anteriormente, mas exigiu muito mais passos. O exemplo ilustra por que voc deve
procurar pelos maiores fatores comuns: eles nos conduziro expresso final em menos passos.

O Exemplo 4.3 ilustra bem a frustrao que muitas vezes sentimos com a simplificao booleana. Como chegamos
mesma equao (que parece no poder ser simplificada) por dois mtodos diferentes, pareceria razovel concluir que essa
equao final a forma mais simples. Na verdade, a forma mais simples dessa equao
z = ABD + BC
Mas parece que no h como simplificar o passo (5) para chegar a essa verso mais simples. Nesse caso, deixamos
de notar uma operao anterior no processo que poderia ter conduzido forma mais simples. A pergunta Como pode-
ramos saber que pulamos um passo?. Mais adiante, neste mesmo captulo, examinaremos uma tcnica de mapeamento
que sempre leva forma mais simples de soma-de-produtos.

Exemplo 4.4

Simplifique a expresso x = (A + B)(A + B + D)D.


Soluo
A expresso pode ser colocada sob a forma de soma-de-produtos multiplicando todos os termos. O resultado
x = AAD + ABD + ADD + BAD + BBD + BDD
O primeiro termo pode ser eliminado, visto que AA = 0. Da mesma maneira, o terceiro e o sexto termos podem ser eli-
minados, visto que DD = 0. O quinto termo pode ser simplificado para BD, visto que BB = B. Isso resulta em
x = ABD + ABD + BD
Podemos fatorar BD a partir de cada termo obtendo
x = BD (A + A + 1)
Obviamente, o termo dentro dos parnteses sempre 1, de modo que finalmente temos
x = BD

Exemplo 4.5

Simplifique o circuito mostrado na Figura 4.3(a).


Soluo
A expresso para a sada z
z = (A + B)(A + B)
Multiplicando para obter a forma de soma-de-produtos, temos

Tocci.indb 105 10/05/2011 18:15:09


106 Sistemas digitais princpios e aplicaes

A A
z z
B B

(a) (b)

FIGURA 4.3 Exemplo 4.5.

z = AA + A B + BA + BB
Podemos eliminar AA = 0 e BB = 0 para finalizarmos com
z = A B + AB
Essa expresso est implementada na Figura 4.3(b) e, se a compararmos com o circuito original, veremos que os dois
circuitos contm o mesmo nmero de portas e conexes. Nesse caso, o processo de simplificao produziu um circuito
equivalente, porm no o mais simples.

Exemplo 4.6

Simplifique a expresso x = ABC + ABD + C D.


Soluo
Voc pode tentar, mas no h como simplificar ainda mais essa expresso.

Questes para reviso

1. Determine quais das seguintes expresses no esto na forma de soma-de-produtos:


(a) RST + RST + T
(b) ACD + ACD
(c) MNP + (M + N)P
(d) AB + ABC + AB CD
2. Simplifique o circuito mostrado na Figura 4.1(a) para obter o circuito mostrado na Figura 4.1(b).
3. Troque cada porta AND na Figura 4.1(a) por uma porta NAND. Determine a nova expresso para x e simplifique-a.

4.4 PROJETANDO CIRCUITOS LGICOS COMBINACIONAIS


Quando o nvel de sada desejado de um circuito lgico dado para todas as condies de entrada possveis, os resul-
tados podem ser convenientemente apresentados em uma tabela-verdade. A expresso booleana para o circuito requerido
pode, ento, ser obtida a partir dessa tabela. Por exemplo, considere a Figura 4.4(a), em que uma tabela-verdade mostrada
para um circuito que tem duas entradas, A e B, e sada x. A tabela mostra que a sada x ser nvel 1 apenas para o caso em
que A = 0 e B = 1. Agora resta determinar que circuito lgico produz a operao desejada. Deve ficar evidente que uma
soluo possvel aquela mostrada na Figura 4.4(b). Nesse caso, usa-se uma porta AND com entradas A e B, de forma
que x = A B. Obviamente x ser 1 apenas quando as duas entradas da porta AND forem 1, ou seja, A = 1 (o que significa
A = 0) e B = 1. Para todos os outros valores de A e B, a sada x ser 0.

A B x
0 0 0 A
0 1 1 A
x = AB
1 0 0
B
1 1 0

(a) (b)

FIGURA 4.4 Circuito que produz uma sada em nvel 1, apenas para a condio A = 0, B = 1.

Tocci.indb 106 10/05/2011 18:15:09


Captulo 4 Circuitos lgicos combinacionais 107

Uma abordagem semelhante pode ser usada para outras condies de entrada. Por exemplo, se x fosse nvel ALTO
apenas para a condio A = 1 e B = 0, o circuito resultante seria uma porta AND com entradas A e B. Em outras palavras,
para qualquer uma das quatro condies possveis de entrada, possvel gerar uma sada x em nvel ALTO usando uma
porta AND com entradas apropriadas, para gerar o produto AND requerido. Esses quatro casos diferentes so mostrados
na Figura 4.5. Cada porta AND mostrada gera uma sada nvel 1 apenas para a condio de entrada dada e gera uma sada
nvel 0 para todas as outras condies. Deve-se notar que as entradas da porta AND so ou no invertidas dependendo dos
valores que as variveis tm para dada condio. Se a varivel for 0 para a condio dada, ela invertida antes de entrar
na porta AND.
Vamos considerar o caso mostrado na Figura 4.6(a), na qual temos uma tabela-verdade que indica que a sada x
ser1 para dois casos distintos: A = 0, B = 1 e A = 1, B = 0. Como isso pode ser implementado? Sabemos que o termo
AND AB gera um nvel 1 somente para a condio A = 0 e B = 1, e o termo AND A B gera um nvel 1 para a condio
A=1 e B=0. Visto que x pode ser nvel ALTO para uma ou outra condio, deve ficar claro que sobre esses dois termos
realizada uma operao OR para produzir a sada desejada, x. Essa implementao mostrada na Figura 4.6(b), na qual
a expresso resultante para a sada x = AB + AB.
Nesse exemplo, o termo AND gerado para cada caso da tabela em que a sada x nvel 1. As sadas das portas AND
so entradas de uma OR, que produz a sada final x, que ser nvel 1 quando um ou outro termo da AND tambm for. Esse
mesmo procedimento pode ser estendido para exemplos com mais de duas entradas. Considere a tabela-verdade para um
circuito de trs entradas (Tabela 4.1). Nessa tabela, h trs casos em que a sada x nvel 1. O termo AND requerido para
cada um dos casos mostrado. Observe, novamente, que para cada caso em que uma varivel 0, ela aparece invertida no
termo AND. A expresso na forma de soma-de-produtos para a sada x obtida fazendo a operao OR dos trs termos AND.
x = ABC + ABC + ABC

TABELA 4.1
A B C x
0 0 0 0
0 0 1 0
0 1 0 1 ABC
0 1 1 1 ABC
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1 ABC

A
AB {ALTO s quando A = 0, B = 0}
B

A
AB {ALTO s quando A = 0, B = 1}
B

A
AB {ALTO s quando A = 1, B = 0}
B

A
AB {ALTO s quando A = 1, B = 1}
B

FIGURA 4.5Uma porta AND, com entradas apropriadas, pode ser usada para gerar uma sada em
nvel 1 para um conjunto especfico de nveis de entrada.

Tocci.indb 107 10/05/2011 18:15:10


108 Sistemas digitais princpios e aplicaes

A AB

A B x B x = AB + AB
0 0 0
0 1 1 A
1 0 1
1 1 0 B AB

(a) (b)

FIGURA 4.6Cada conjunto de condies de entrada, que gera uma sada em nvel ALTO, implementado por portas AND independentes.
As sadas das portas AND so as entradas de uma OR que produz a sada final.

Procedimento completo de projeto


Qualquer problema lgico pode ser resolvido, usando o seguinte procedimento passo a passo:
1. Interprete o problema e construa uma tabela-verdade para descrever seu funcionamento.
2. Escreva o termo AND (produto) para cada caso em que a sada seja 1.
3. Escreva a expresso da soma-de-produtos para a sada.
4. Simplifique a expresso de sada, se possvel.
5. Implemente o circuito para a expresso final, simplificada.
Os exemplos a seguir ilustram o procedimento completo de projeto.

Exemplo 4.7

Projete um circuito lgico com trs entradas, A, B e C, cuja sada ser nvel ALTO apenas quando a maioria das entradas
for nvel ALTO.
Soluo
Passo 1. Construa a tabela-verdade.
Com base no enunciado do problema, a sada x deve ser nvel 1 sempre que duas ou mais entradas forem nvel 1; para
todos os outros casos, a sada deve ser nvel 0 (Tabela 4.2).

TABELA 4.2
A B C x
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1 ABC
1 0 0 0
1 0 1 1 ABC
1 1 0 1 ABC
1 1 1 1 ABC

Passo 2. Escreva o termo AND (produto) para cada caso em que a sada seja 1.
Existem quatro desses casos. Os termos AND so mostrados junto tabela-verdade (Tabela 4.2). Observe, novamente,
que cada termo AND contm as variveis de entrada em sua forma invertida ou no invertida.
Passo 3. Escreva a expresso da soma-de-produtos para a sada.
x = ABC + ABC + ABC + ABC
Passo 4. Simplifique a expresso de sada.
Essa expresso pode ser simplificada de vrias maneiras. Talvez a mais rpida seja perceber que o ltimo termo ABC tem
duas variveis em comum com cada um dos outros termos. Assim, podemos usar o termo ABC para fatorar cada um dos
outros termos. A expresso reescrita com o termo ABC aparecendo trs vezes (lembre-se do Exemplo 4.2, que atestou
que essa operao permitida na lgebra booleana):

Tocci.indb 108 10/05/2011 18:15:10


Captulo 4 Circuitos lgicos combinacionais 109

x = ABC + ABC + ABC + ABC + ABC + ABC


Fatorando apropriadamente os pares de termos, obtemos
x = BC(A + A) + AC(B + B) + AB(C + C)
Visto que cada termo entre parnteses igual a 1, temos
x = BC + AC + AB
Passo 5. Implemente o circuito para a expresso final.
Essa expresso est implementada na Figura 4.7. Visto que a expresso est na forma de soma-de-produtos, o circuito
consiste em um grupo de portas AND ligadas em uma nica porta OR.

B
BC
C

A
AC
x = BC + AC + AB

AB

FIGURA 4.7 Exemplo 4.7.

Exemplo 4.8

Veja a Figura 4.8(a), na qual um conversor analgico-digital est monitorando a tenso CC (VB) de uma bateria de 12 V
de uma espaonave em rbita. A sada do conversor um nmero binrio de quatro bits, ABCD, que corresponde tenso
da bateria em degraus de 1 V, sendo a varivel A o MSB. As sadas binrias do conversor so as entradas de um circuito
que gera uma sada em nvel ALTO, sempre que o valor binrio for maior que 01102 = 610, ou seja, quando a tenso da
bateria for maior que 6 V. Projete esse circuito lgico.
Soluo
A tabela-verdade mostrada na Figura 4.8(b). Para cada caso temos o nmero decimal equivalente ao nmero binrio
representado pela combinao ABCD.

A B C D z
MSB
(0) 0 0 0 0 0
Conversor A A
z (1) 0 0 0 1 0
B B Circuito
analgico- C C lgico (2) 0 0 1 0 0
VB -digital D D (3) 0 0 1 1 0
LSB (4) 0 1 0 0 0
(a) (5) 0 1 0 1 0
(6) 0 1 1 0 0
(7) 0 1 1 1 1 ABCD
(8) 1 0 0 0 1 ABCD
(9) 1 0 0 1 1 ABCD
A z = A + BCD (10) 1 0 1 0 1 ABCD
(11) 1 0 1 1 1 ABCD
(12) 1 1 0 0 1 ABCD
B
(13) 1 1 0 1 1 ABCD
C
D (14) 1 1 1 0 1 ABCD
(15) 1 1 1 1 1 ABCD
(c) (b)

FIGURA 4.8 Exemplo 4.8.

Tocci.indb 109 10/05/2011 18:15:10


110 Sistemas digitais princpios e aplicaes

A sada z igual a 1 para todos os casos em que o nmero binrio for maior que 0110. Para todos os outros, z igual a
0. Essa tabela-verdade fornece a seguinte expresso na forma de soma-de-produtos:
z = ABCD + AB C D + AB CD + ABCD + ABCD + ABC D + ABCD + ABCD + ABCD
Simplificar essa expresso uma tarefa difcil, mas com um pouco de cuidado ela pode ser realizada. O processo passo
a passo envolve fatorao e eliminao de termos na forma A + A:
z = ABCD + AB C(D + D) + ABC(D + D) + ABC(D + D) + ABC(D + D)
= ABCD + AB C + ABC +ABC + ABC
= ABCD + AB (C + C) + AB(C + C)
= ABCD + AB + AB
= ABCD + A(B + B)
= ABCD + A
Essa expresso pode ser reduzida ainda mais, aplicando o teorema (15a), que diz que x + xy = x + y. Nesse caso, x = A
e y = BCD. Assim,
z = ABCD + A = BCD + A
Essa expresso final est implementada na Figura 4.8(c).

Como esse exemplo demonstra, o mtodo da simplificao algbrica pode ser um pouco extenso quando a expresso
original contm muitos termos limitao que no ocorre com o mtodo do mapa de Karnaugh, como veremos adiante.

Exemplo 4.9

Veja a Figura 4.9(a). Em uma simples mquina copiadora, um sinal de parada, S, gerado para interromper a operao da
mquina e ativar um indicador luminoso, sempre que uma das condies a seguir ocorrer: (1) a bandeja de alimentao
de papel estiver vazia ou (2) as duas microchaves sensoras de papel estiverem acionadas, indicando um atolamento de
papel. A presena de papel na bandeja de alimentao indicada por um nvel ALTO no sinal lgico P. Cada uma das
microchaves produz sinais lgicos (Q e R) que vo para o nvel ALTO, sempre que um papel estiver passando sobre a

Sensor de P
alimentao P S = P + QR
da bandeja Circuito S
+5 V lgico
Q
Q

Chaves 1 k R
sensoras
de papel (b)
R

1 k

(a)

OR
P P S = P + QR
S

AND
Q Q

R R

(c) (d)

FIGURA 4.9 Exemplo 4.9.

Tocci.indb 110 10/05/2011 18:15:11


Captulo 4 Circuitos lgicos combinacionais 111

chave, que ativada. Projete um circuito lgico que gere uma sada S em nvel ALTO para as condies estabelecidas e
implemente-o, usando o CI CMOS 74HC00 que contm quatro portas NAND de duas entradas.
Soluo
Usaremos o processo dos cinco passos mostrado no Exemplo 4.7. A tabela-verdade mostrada na Tabela 4.3. A sada S
ser nvel lgico 1 sempre que P = 0, visto que indica que falta papel na bandeja de alimentao. A sada S tambm ser
nvel 1 para os dois casos em que Q e R forem nvel 1, indicando atolamento de papel. Conforme mostrado na tabela,
existem cinco condies diferentes de entrada que geram sada em nvel ALTO. (Passo 1)

TABELA 4.3
P Q R x
0 0 0 1 PQR
0 0 1 1 P QR
0 1 0 1 PQR
0 1 1 1 PQR
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 1 PQR

Os termos AND para cada um desses casos so mostrados. (Passo 2)


A expresso na forma de soma-de-produtos se torna
S = P Q R + P QR + PQR + PQR + PQR (Passo 3)
Podemos comear a simplificao fatorando P Q a partir dos termos 1 e 2 e PQ a partir dos termos 3 e 4:
S = P Q(R + R) + PQ(R + R) + PQR
Agora podemos eliminar os termos R + R, visto que so iguais a 1:
S = P Q + PQ + PQR
Fatorar P a partir dos termos 1 e 2 nos permite eliminar Q a partir desses termos:
S = P + PQR
Neste ponto, podemos aplicar o teorema (15b) (x + xy = x + y) para obter
S = P + QR (Passo 4)
Para verificar essa equao booleana simplificada, vejamos se ela confere com a tabela-verdade com a qual comeamos.
A equao diz que a sada S ser de nvel ALTO sempre que P for BAIXO OR (ou) Q AND R (tanto Q quanto R) forem
de nvel ALTO. Observe na Tabela 4.3 que a sada ALTO para todos os quatro casos em que P BAIXO. S tambm
ALTO quando Q AND (e) R so ambos de nvel ALTO, independentemente do estado de P. Portanto, a tabela est de
acordo com a equao.
A implementao AND/OR para esse circuito mostrada na Figura 4.9(b). (Passo 5)
Para implementar esse circuito usando o 74HC00, que um CI qudruplo com portas NAND de duas entradas, temos
de converter cada porta lgica e INVERSOR nos respectivos circuitos equivalentes que usam apenas portas NAND
(conforme a Seo 3.12). Esse circuito mostrado na Figura 4.9(c). Obviamente, podemos eliminar os dois pares de
inversores duplos para obter a implementao com portas NAND, mostrada na Figura 4.9(d).
O circuito final obtido conectando duas das portas lgicas NAND do CI 74HC00. Esse CI CMOS tem a mesma confi-
gurao de portas e numerao de pinos que o CI TTL 74LS00 mostrado na Figura 3.31. A Figura 4.10 mostra o diagrama
de conexo do circuito com a numerao de pinos, incluindo os pinos de + 5 V e TERRA (GND). O circuito tambm
inclui um transistor que aciona um LED para indicar o estado da sada S.

Tocci.indb 111 10/05/2011 18:15:11


112 Sistemas digitais princpios e aplicaes

+5 V

Circuito de 100
driver LED
74HC00 14
P 4
6 S 33 k
5

Q 1 7
3
R 2
Observao:
74HC00 As outras duas portas do
(e) chip no esto conectadas.

FIGURA 4.10 Circuito da Figura 4.9(d) implementado usando um CI NAND 74HC00.

Questes para reviso

1. Escreva a expresso, na forma de soma-de-produtos, para um circuito com quatro entradas e uma sada, que ser nvel
ALTO apenas quando a entrada A for nvel BAIXO exatamente ao mesmo tempo que as outras duas entradas forem
nvel BAIXO.
2. Implemente a expresso da Questo 1 usando apenas portas NAND de quatro entradas. Quantas so necessrias?

4.5 MTODO DO MAPA DE KARNAUGH


O mapa de Karnaugh (mapa K) um mtodo grfico usado para simplificar uma equao lgica ou para converter
uma tabela-verdade no circuito lgico correspondente, de maneira simples e metdica. Embora um mapa de Karnaugh
possa ser usado em problemas que envolvem qualquer nmero de variveis de entrada, sua utilidade prtica est limitada a
cinco ou seis variveis. A apresentao a seguir est restrita a problemas com at quatro entradas, pois resolver problemas
com cinco ou seis entradas complicado demais, sendo melhor solucion-los com um programa de computador.

Formato do mapa de Karnaugh


O mapa K, assim como uma tabela-verdade, um meio de mostrar a relao entre as entradas lgicas e a sada desejada.
A Figura 4.11 mostra trs exemplos de mapas K, para duas, trs e quatro variveis, em conjunto com as tabelas-verdade
correspondentes. Esses exemplos ilustram os seguintes pontos importantes:
1. A tabela-verdade fornece o valor da sada X para cada combinao de valores de entrada. O mapa K fornece a
mesma informao em um formato diferente. Cada linha na tabela-verdade corresponde a um quadrado no mapa
K. Por exemplo, na Figura 4.11(a), a condio A = 0, B = 0 na tabela-verdade corresponde ao quadrado AB no
mapa K. Visto que a tabela-verdade mostra X = 1 para esse caso, colocado um 1 no quadrado AB no mapa K.
Da mesma maneira, a condio A = 1, B = 1 na tabela-verdade corresponde ao quadrado AB no mapa K. Visto
que X = 1 nesse caso, um 1 colocado no quadrado AB. Todos os outros quadrados so preenchidos com 0s. Essa
mesma ideia usada nos mapas de trs ou quatro variveis mostrados na figura.
2. Os quadrados do mapa K so nomeados de modo que quadrados adjacentes horizontalmente difiram apenas em uma
varivel. Por exemplo, o quadrado do canto superior esquerdo no mapa de quatro variveis A B C D, enquanto
o imediatamente direita A B CD (apenas a varivel D diferente). Da mesma forma, quadrados adjacentes
verticalmente diferem apenas em uma varivel. Por exemplo, o do canto superior esquerdo do mapa de quatro
variveis A B C D, enquanto o diretamente abaixo dele ABC D (apenas a varivel B diferente).
Observe que cada quadrado da linha superior considerado adjacente ao correspondente na linha inferior. Por
exemplo, o quadrado A BCD na linha superior adjacente ao quadrado ABCD na linha inferior, visto que um difere
do outro apenas na varivel A. Voc pode imaginar que a parte superior do mapa foi dobrada de forma a tocar a

Tocci.indb 112 10/05/2011 18:15:11


Captulo 4 Circuitos lgicos combinacionais 113

B B
A B X
0 0 1 AB A 1 0
0 1 0 x = AB + AB
1 0 0 A 0 1
1 1 1 AB
(a)
C C
A B C X
0 0 0 1 ABC AB 1 1
0 0 1 1 ABC
0 1 0 1 ABC AB 1 0
0 1 1 0 X = ABC + ABC
1 0 0 0 + ABC + ABC
AB 1 0
1 0 1 0
1 1 0 1 ABC
1 1 1 0 AB 0 0
(b)

A B C D X
0 0 0 0 0 CD CD CD CD
0 0 0 1 1 ABCD
0 0 1 0 0 AB 0 1 0 0
0 0 1 1 0
0 1 0 0 0 AB 0 1 0 0
0 1 0 1 1 ABCD X = ABCD + ABCD
0 1 1 0 0 + ABCD + ABCD
0 1 1 1 0 AB 0 1 1 0
1 0 0 0 0
1 0 0 1 0 AB 0 0 0 0
1 0 1 0 0
1 0 1 1 0
1 1 0 0 0
1 1 0 1 1 ABCD
1 1 1 0 0
1 1 1 1 1 ABCD
(c)

FIGURA 4.11 Mapas de Karnaugh e tabelas-verdade para (a) duas, (b) trs e (c) quatro variveis.

parte inferior, assim como os quadrados da coluna mais esquerda so adjacentes aos quadrados da coluna mais
direita.
3. Para que os quadrados adjacentes, tanto na vertical quanto na horizontal, difiram apenas de uma varivel, as
denominaes, de cima para baixo, tm de ser feitas na ordem mostrada: A B, AB, AB, AB. O mesmo se aplica s
denominaes de variveis da esquerda para a direita: C D, CD, CD, CD.
4. Uma vez que um mapa K seja preenchido com 0s e 1s, a expresso na forma de soma-de-produtos para a sadaX
pode ser obtida fazendo-se a operao OR dos quadrados que contm 1. No mapa de trs variveis na Figura
4.11(b), os quadrados A B C, A BC, ABC e ABC contm 1, de forma que X = A B C + A BC + ABC + ABC.

Agrupamento de quadros
A expresso para a sada X pode ser simplificada combinando adequadamente os quadros do mapa K que contm 1.
O processo de combinao desses 1s denominado agrupamento.

Agrupamento de dois quadros (pares)


A Figura 4.12(a) o mapa K para uma determinada tabela-verdade de trs variveis. Esse mapa contm um par de1s
adjacentes verticalmente; o primeiro representa ABC e o segundo, ABC. Observe que nesses dois termos a varivel A
aparece na forma normal e complementada (invertida), enquanto B e C permanecem inalteradas. Esses dois termos podem
ser agrupados (combinados) resultando na eliminao da varivel A, visto que ela aparece nos dois termos nas formas
complementada e no complementada. Isso facilmente provado, conforme mostrado a seguir:

Tocci.indb 113 10/05/2011 18:15:11


114 Sistemas digitais princpios e aplicaes

C C C C

AB 0 0 AB 0 0

AB 1 0 AB 1 1
X = ABC + ABC X = ABC + ABC
= BC = AB
AB 1 0 AB 0 0

AB 0 0 AB 0 0

(a) (b)

C C CD CD CD CD
ABC
AB 1 0 AB 0 0 1 1

AB 0 0 AB 0 0 0 0 X = ABCD + ABCD
X = ABC + ABC = BC + ABCD + ABCD
AB 0 0 AB 0 0 0 0 = ABC + ABD

AB 1 0 AB 1 0 0 1

(d) ABD
(c)

FIGURA 4.12 Exemplos de agrupamentos de pares de 1s adjacentes.

X = ABC + ABC
= BC(A + A)
= BC(1) = BC
O mesmo princpio vlido para qualquer par de 1s adjacentes vertical ou horizontalmente. A Figura 4.12(b) mostra
um exemplo de dois 1s adjacentes horizontalmente. Esses dois 1s podem ser agrupados eliminando a varivel C, visto que
ela aparece nas formas complementada e no complementada, resultando em X = AB.
Outro exemplo mostrado na Figura 4.12(c). Nesse mapa K, as linhas superior e inferior de quadros so consideradas
adjacentes. Assim, os dois 1s nesse mapa podem ser agrupados, gerando como resultado A B C + AB C = B C.
A Figura 4.12(d) mostra um mapa K que tem dois pares de 1s que podem ser agrupados. Os dois 1s na linha supe-
rior so horizontalmente adjacentes, assim como os dois 1s na linha inferior, visto que, em um mapa K, a coluna mais
esquerda e a mais direita so consideradas adjacentes. Quando o par de 1s superior agrupado, a varivel D eliminada
(j que ela aparece tanto como D quanto como D) resultando no termo A BC. Agrupando o par de 1s inferior, eliminamos
a varivel C, obtendo o termo AB D. Esses dois termos so unidos por uma operao OR, resultando no valor final para X.
Resumindo:
Agrupando um par de 1s adjacentes em um mapa K, elimina-se a varivel
que aparece nas formas complementada e no complementada.

Agrupamento de quatro quadros (quartetos)


Um mapa K pode conter um grupo de quatro 1s adjacentes entre si. Esse grupo denominado quarteto. A Figura
4.13 mostra vrios exemplos de quartetos. Na parte (a) da figura, os quatro 1s so adjacentes verticalmente, e na parte (b),
horizontalmente. O mapa K na Figura 4.13(c) contm quatro 1s formando um quadrado, sendo considerados adjacentes
entre si. Os quatro 1s na Figura 4.13(d) tambm so, assim como os quatro 1s do mapa na Figura 4.13(e) porque, conforme
mencionado anteriormente, as linhas superior e inferior so adjacentes entre si, assim como as colunas mais esquerda
e mais direita.
Quando um quarteto agrupado, o termo resultante conter apenas as variveis que no alteram a forma considerando
todos os quadros 1s do quarteto. Por exemplo, na Figura 4.13(a), os quatro quadros que contm 1 so A BC, ABC, ABC e
ABC. Uma anlise desses termos revela que apenas a varivel C permanece inalterada (as variveis A e B aparecem nas

Tocci.indb 114 10/05/2011 18:15:12


Captulo 4 Circuitos lgicos combinacionais 115

C C CD CD CD CD CD CD CD CD

AB 0 1 AB 0 0 0 0 AB 0 0 0 0

AB 0 1 AB 0 0 0 0 AB 0 1 1 0

AB 0 1 AB 1 1 1 1 AB 0 1 1 0

AB 0 1 AB 0 0 0 0 AB 0 0 0 0

X=C X = AB X = BD
(a) (b) (c)

CD CD CD CD CD CD CD CD

AB 0 0 0 0 AB 1 0 0 1

AB 0 0 0 0 AB 0 0 0 0
X = BD
AB 1 0 0 1 AB 0 0 0 0

AB 1 0 0 1 AB 1 0 0 1

X = AD
(d) (e)

FIGURA 4.13 Exemplos de agrupamentos de quatro 1s (quartetos).

formas complementada e no complementada). Assim, a expresso resultante para X simplesmente X = C. Isso pode ser
provado como mostrado a seguir:
X = A BC + ABC + ABC + ABC
= AC(B + B) + AC(B + B)
= AC + AC
= C(A + A) = C
Como outro exemplo, considere a Figura 4.13(d), na qual os quatro quadros que contm 1s so ABC D, AB C D,
ABCD e ABCD. Uma anlise desses termos indica que apenas as variveis A e D permanecem inalteradas, de modo que
a expresso simplificada para X
X = AD
Isso pode ser provado da mesma maneira que anteriormente. O leitor deve analisar cada um dos outros casos mostrados
na Figura 4.13 para verificar as expresses indicadas para X.
Resumindo:
Agrupando um quarteto de 1s adjacentes, eliminam-se duas variveis
que aparecem nas formas complementada e no complementada.

Agrupamento de oito quadros (octetos)


Um grupo de oito 1s adjacentes entre si denominado octeto. Vrios exemplos de octetos so mostrados na Figura
4.14. Quando um octeto agrupado em um mapa de quatro variveis, trs so eliminadas, porque apenas uma varivel
permanece inalterada. Por exemplo, a anlise do agrupamento dos oito quadros 1s na Figura 4.14(a) mostra que apenas
a varivel B se mantm na mesma forma para os oito quadros: as outras variveis aparecem nas formas complementada
e no complementada. Assim, para esse mapa, X = B. O leitor pode verificar os resultados para os outros exemplos mos-
trados na Figura 4.14.
Resumindo:

Tocci.indb 115 10/05/2011 18:15:12


116 Sistemas digitais princpios e aplicaes

CD CD CD CD CD CD CD CD

AB 0 0 0 0 AB 1 1 0 0

AB 1 1 1 1 AB 1 1 0 0

AB 1 1 1 1 AB 1 1 0 0

AB 0 0 0 0 AB 1 1 0 0

X=B X=C
(a) (b)

CD CD CD CD CD CD CD CD

AB 1 1 1 1 AB 1 0 0 1

AB 0 0 0 0 AB 1 0 0 1

AB 0 0 0 0 AB 1 0 0 1

AB 1 1 1 1 AB 1 0 0 1

X=B X=D
(c) (d)

FIGURA 4.14 Exemplos de agrupamentos de oito 1s (octetos).

Agrupando um octeto de 1s adjacentes, eliminam-se trs variveis


que aparecem nas formas complementada e no complementada.

Processo completo de simplificao


Vimos como o agrupamento de pares, quartetos e octetos em um mapa K pode ser usado para obter uma expresso
simplificada. Podemos resumir as regras de agrupamentos para grupos de qualquer tamanho:
Quando uma varivel aparece nas formas complementada e no complementada
em um agrupamento, tal varivel eliminada da expresso. As variveis que no se
alteram para todos os quadros do agrupamento tm de permanecer na expresso final.
Deve ficar claro que um grupo maior de 1s elimina mais variveis. Para ser exato, um grupo de dois 1s elimina uma
varivel, um de quatro 1s elimina duas e um de oito 1s elimina trs. Esse princpio ser usado para se obter a expresso
lgica simplificada a partir do mapa K que contm qualquer combinao de 1s e 0s.
O procedimento ser inicialmente resumido e, em seguida, aplicado em vrios exemplos. Estes so os passos seguidos
no uso do mtodo do mapa K para a simplificao de uma expresso booleana:
Passo 1 Construa o mapa K e coloque os 1s nos quadros que correspondem aos 1s na tabela-verdade. Coloque 0s
nos outros quadros.
Passo 2 Analise o mapa quanto aos 1s adjacentes e agrupe os 1s que no sejam adjacentes a quaisquer outros 1s.
Esses so denominados 1s isolados.
Passo 3 Em seguida, procure os 1s que so adjacentes a somente um outro 1. Agrupe todo par que contm tal 1.
Passo 4 Agrupe qualquer octeto, mesmo que contenha alguns 1s que j tenham sido agrupados.
Passo 5 Agrupe qualquer quarteto que contenha um ou mais 1s que ainda no tenham sido agrupados, certificando-se
de usar o menor nmero de agrupamentos.
Passo 6 Agrupe quaisquer pares necessrios para incluir 1s que ainda no tenham sido agrupados, certificando-se
de usar o menor nmero de agrupamentos.
Passo 7 Forme a soma OR de todos os termos gerados por cada grupo.

Tocci.indb 116 10/05/2011 18:15:12


Captulo 4 Circuitos lgicos combinacionais 117

Esses passos so seguidos exatamente como mostrado e mencionado nos exemplos a seguir. Em cada caso, a expresso
lgica resultante estar em sua forma mais simples da soma-de-produtos.

Exemplo 4.10

A Figura 4.15(a) mostra um mapa K para um problema de quatro variveis. Vamos supor que o mapa tenha sido obtido
a partir da tabela-verdade do problema (passo 1). Os quadrados esto numerados por convenincia para identificar cada
grupo. Use os passos 2-7 do processo de simplificao para reduzir o mapa K a uma expresso soma-de-produtos.

CD CD CD CD

AB 0 0 0 1
1 2 3 4

AB 0 1 1 0
5 6 7 8 X= ABCD + ACD + BD

AB 0 1 1 0 grupo 4 grupo grupo 6,


9 10 11 12
11, 15 7, 10, 11
AB 0 0 1 0
13 14 15 16
(a)

CD CD CD CD

AB 0 0 1 0
1 2 3 4

AB 1 1 1 1
5 6 7 8 X= AB + BC + ACD

AB 1 1 0 0 grupo 5 grupo 5 grupo


9 10 11 12
6, 7, 8 6, 9, 10 3,7
AB 0 0 0 0
13 14 15 16
(b)

CD CD CD CD

AB 0 1 0 0
1 2 3 4

AB 0 1 1 1
5 6 7 8 X= ABC + ACD + ABC + ACD

AB 1 1 1 0 9, 10 2, 6 7, 8 11, 15
9 10 11 12

AB 0 0 1 0
13 14 15 16
(c)

FIGURA 4.15 Exemplos 4.10 a 4.12.

Soluo
Passo 2 O quadrado 4 o nico que contm um 1 que no adjacente a qualquer outro 1. Ele agrupado e denominado
grupo 4.
Passo 3 O quadrado 15 adjacente apenas ao quadrado 11. Esse par agrupado e denominado grupo 11, 15.
Passo 4 No h octetos.
Passo 5 Os quadrados 6, 7, 10 e 11 formam um quarteto agrupado (grupo 6, 7, 10, 11). Observe que o quadrado 11 foi
usado novamente, mesmo fazendo parte do grupo 11, 15.
Passo 6 Todos os 1s j esto agrupados.
Passo 7 Cada grupo gera um termo na expresso para X. O grupo 4 simplesmente A BCD. O grupo 11, 15 ACD (a
varivel B foi eliminada). O grupo 6, 7, 10, 11 BD (A e C foram eliminadas).

Tocci.indb 117 10/05/2011 18:15:12


118 Sistemas digitais princpios e aplicaes

Exemplo 4.11

Considere o mapa K na Figura 4.15(b). Mais uma vez, vamos supor que o passo 1 j tenha sido realizado. Simplifique.
Soluo
Passo 2 No h 1s isolados.
Passo 3 O 1 no quadro 3 adjacente apenas ao 1 no quadro 7. O agrupamento desse par (grupo 3, 7) gera o termo ACD.
Passo 4 No h octetos.
Passo 5 Existem dois quartetos. Os quadrados 5, 6, 7 e 8 formam um quarteto. O agrupamento desse quarteto gera o
termo AB. O segundo quarteto formado pelos quadrados 5, 6, 9 e 10, o qual agrupado porque contm dois
quadrados que no foram agrupados anteriormente. O agrupamento desse quarteto gera o termo BC.
Passo 6 Todos os 1s j foram agrupados.
Passo 7 Os termos gerados pelos trs grupos so unidos pela operao OR, resultando na expresso para X.

Exemplo 4.12

Considere o mapa K na Figura 4.15(c). Simplifique.


Soluo
Passo 2 No existem 1s isolados.
Passo 3 O 1 no quadrado 2 adjacente apenas ao 1 no quadrado 6. Esse par agrupado para gerar A CD. De maneira
similar, o quadrado 9 adjacente apenas ao 10. Agrupando esse par, gera-se ABC. Do mesmo modo, o grupo 7,
8 e o grupo 11, 15 geram os termos ABC e ACD, respectivamente.
Passo 4 No existem octetos.
Passo 5 Existe um quarteto formado pelos quadrados 6, 7, 10 e 11. Esse quarteto, entretanto, no agrupado porque
todos os 1s do quarteto j foram includos em outros grupos.
Passo 6 Todos os 1s j foram agrupados.
Passo 7 A expresso para X mostrada na figura.

Exemplo 4.13

Considere os dois agrupamentos de mapas K na Figura 4.16. Qual deles melhor?


Soluo
Passo 2 No existem 1s isolados.
Passo 3 No existem 1s que sejam adjacentes a apenas um outro 1.
Passo 4 No existem octetos.
Passo 5 No existem quartetos.
Passos 6 e 7 Existem muitos pares possveis. O processo de agrupamento tem de usar o menor nmero de grupos para
envolver todos os 1s. Para esse mapa, h dois agrupamentos possveis, que requerem apenas quatro agru-
pamentos de pares. A Figura 4.16(a) mostra uma soluo e a expresso resultante. A Figura 4.16(b) mostra
outra soluo. Observe que as duas expresses tm a mesma complexidade; portanto, nenhuma melhor
que a outra.

CD CD CD CD
CD CD CD CD
AB 0 1 0 0
AB 0 1 0 0

AB 0 1 1 1
AB 0 1 1 1
X = ACD + ABC + ABC + ACD X = ABD + BCD + BCD + ABD
AB 0 0 0 1
AB 0 0 0 1

AB 1 1 0 1
AB 1 1 0 1

(a) (b)

FIGURA 4.16 O mesmo mapa K com duas solues igualmente boas.

Tocci.indb 118 10/05/2011 18:15:12


Captulo 4 Circuitos lgicos combinacionais 119

Preenchendo o mapa K a partir da expresso de sada


Quando a sada desejada apresentada como uma expresso booleana em vez de uma tabela-verdade, o mapa K pode
ser preenchido usando os seguintes passos:
1. Passe a expresso para a forma de soma-de-produtos caso ela no esteja nesse formato.
2. Para cada termo produto da expresso na forma de soma-de-produtos, coloque um 1 em cada quadrado do mapa
K cuja denominao seja a mesma da combinao das variveis de entrada. Coloque um 0 em todos os outros
quadrados.
O exemplo a seguir ilustra esse procedimento.

Exemplo 4.14

Use um mapa K para simplificar y = C(A B D + D) + ABC + D.


Soluo
1. Multiplique o primeiro termo para obter y = A B C D + CD + ABC + D, que est agora na forma de soma-de-produtos.
2. Para o termo A B C D coloque simplesmente um 1 no quadrado A B C D do mapa K (Figura 4.17). Para o termo CD,
coloque um 1 em todos os quadrados que tm CD nas denominaes, ou seja, A B CD, ABCD, ABCD, AB CD. Para
o termo ABC, coloque um 1 em todos os quadrados que tm ABC nas denominaes, ou seja, ABCD, ABCD. Para o
termo D coloque um 1 em todos os quadrados que tm D nas denominaes, ou seja, todos os quadrados das colunas
mais esquerda e mais direita.
O mapa K agora est preenchido e pode ser agrupado para as simplificaes. Verifique que os agrupamentos adequados
geram y = AB + C + D.

CD CD CD CD

AB 1 1 0 1

AB 1 1 0 1

AB 1 1 0 1

AB 1 1 1 1

y = AB + C + D

FIGURA 4.17 Exemplo 4.14

Condies de irrelevncia (dont-care)


Alguns circuitos lgicos podem ser projetados de modo que existam certas condies de entrada para as quais no
existem nveis de sada especificados, em geral, porque essas condies de entrada nunca ocorrero. Em outras palavras,
existem certas combinaes para os nveis de entrada em que irrelevante (dont-care) se a sada nvel ALTO ou BAIXO.
Isso est ilustrado na tabela-verdade da Figura 4.18(a).
Nesse caso, a sada z no especificada nem como 0 nem como 1 para as condies A, B, C = 1, 0, 0 e A, B, C = 0,
1, 1. Em vez de nveis, um x mostrado para essas condies. O x representa a condio de irrelevncia (dont-care).
Uma condio de irrelevncia pode acontecer por vrias razes, mais comumente em algumas situaes das combinaes
de entrada que nunca ocorrero; assim, no h sada especificada para essas condies.
Um projetista de circuito est livre para fazer a sada ser 0 ou 1 para qualquer condio de irrelevncia, podendo com
isso gerar uma expresso de sada mais simples. Por exemplo, o mapa K para essa tabela-verdade mostrado na Figura
4.18(b) com um x colocado nos quadrados AB C e ABC. Nesse caso, o projetista deve alterar o x no quadrado AB C para
1 e o x no quadrado ABC para 0, visto que isso produz um quarteto que pode ser agrupado para gerar z = A, conforme
mostrado na Figura 4.18(c).
Sempre que ocorrerem condies de irrelevncia, temos de decidir qual x ser alterado para 0 e qual para 1, de modo a
gerar o melhor agrupamento no mapa K (isto , a expresso mais simplificada). Essa deciso nem sempre fcil. Diversos
problemas no final do captulo proporcionaro a prtica para lidar com os casos de irrelevncia. Vejamos outro exemplo.

Tocci.indb 119 10/05/2011 18:15:13


120 Sistemas digitais princpios e aplicaes

C C C C
A B C z
AB 0 0 AB 0 0
0 0 0 0
0 0 1 0
0 1 0 0 AB 0 x AB 0 0
0 1 1 x
irrelevante
1 0 0 x AB 1 1 AB 1 1 z=A
1 0 1 1
1 1 0 1
1 1 1 1 AB x 1 AB 1 1

(a) (b) (c)

FIGURA 4.18Condies de irrelevncia devem ser alteradas para 0 ou 1, de modo a gerar agrupamentos no mapa K que
produzam a expresso mais simples.

Exemplo 4.15

Vamos projetar um circuito lgico que controla uma porta de elevador em um prdio de trs andares. O circuito na Fi-
gura 4.19(a) tem quatro entradas. M um sinal lgico que indica quando o elevador est se movendo (M = 1) ou parado
(M=0). F1, F2 e F3 so os sinais indicadores dos andares que so normalmente nvel BAIXO, passando para nvel
ALTO apenas quando o elevador estiver posicionado em determinado andar. Por exemplo, quando estiver no segundo
andar, F2 = 1 e F1 = F3 = 0. A sada do circuito o sinal ABRIR que normalmente nvel BAIXO e vai para o ALTO
quando a porta do elevador precisar ser aberta.
Podemos preencher a tabela-verdade para a sada ABRIR [Figura 4.19(b)], conforme se segue:

M F1 F2 F3 ABRIR
0 0 0 0 0
0 0 0 1 1
0 0 1 0 1
0 0 1 1 X
M F1 F2 F3
0 1 0 0 1
0 1 0 1 X
0 1 1 0 X
0 1 1 1 X
Circuito do 1 0 0 0 0
elevador 1 0 0 1 0
1 0 1 0 0
1 0 1 1 X
1 1 0 0 0
ABRIR 1 1 0 1 X
1 1 1 0 X
1 1 1 1 X

(a) (b)

F2 F3 F2 F3 F2 F3 F2 F3 F2 F3 F2 F3 F2 F3 F2 F3

M F1 0 1 X 1 M F1 0 1 1 1

M F1 1 X X X M F1 1 1 1 1

M F1 0 X X X M F1 0 0 0 0

M F1 0 0 X 0 M F1 0 0 0 0

ABRIR = M (F1 + F2 + F3)


(c) (d)

FIGURA 4.19 Exemplo 4.15.

Tocci.indb 120 10/05/2011 18:15:13


Captulo 4 Circuitos lgicos combinacionais 121

1. Visto que o elevador no est em mais de um andar ao mesmo tempo, apenas uma das entradas relativas aos andares
pode ser nvel ALTO em um dado momento. Isso significa que todos os casos da tabela-verdade em que mais de
uma entrada relativa aos andares for nvel 1 so condies de irrelevncia. Podemos colocar um x na coluna da sada
ABRIR para aqueles oito casos em que mais de uma entrada F for nvel 1.
2. Observando os outros oito casos, quando M = 1 o elevador se move, ento a sada ABRIR tem de ser 0, pois no
queremos que a porta do elevador abra. Quando M = 0 (elevador parado), queremos ABRIR = 1 proporcionada por
uma das entradas, relativas aos andares, em nvel 1. Quando M = 0 e todas as entradas relativas aos andares forem 0,
o elevador est parado, mas no est adequadamente alinhado com qualquer andar, de forma que desejamos ABRIR
= 0 para manter a porta fechada.
A tabela-verdade agora est completa e podemos transferir as informaes para o mapa K, conforme mostra a Figura
4.19(c). Esse mapa tem apenas trs 1s, porm possui oito condies de irrelevncia. Alterando quatro desses quadrados
de irrelevncia para 1s, podemos gerar quartetos que contenham os 1s originais [Figura 4.19(d)]. o melhor que pode-
mos fazer quanto minimizao da expresso de sada. Verifique que os agrupamentos feitos geram a expresso para a
sada ABRIR mostrada.

Resumo
O processo do mapa K tem vrias vantagens sobre o mtodo algbrico. O mapa K um processo mais ordenado,
com passos bem definidos quando comparado com o processo de tentativa e erro, algumas vezes usado na simplificao
algbrica. Normalmente, o mapa K requer menos passos, em especial para expresses que contm muitos termos, e sempre
gera uma expresso mnima.
No entanto, alguns professores preferem o mtodo algbrico, porque requer conhecimento amplo de lgebra booleana
e no um procedimento mecnico. Cada mtodo tem suas vantagens e, embora a maioria dos projetistas de circuitos
lgicos seja adepta de ambos, ser habilidoso em um deles o suficiente para produzir resultados aceitveis.
Existem outras tcnicas mais complexas para minimizar circuitos lgicos com mais de quatro entradas. Elas so
adequadas para circuitos com grande nmero de entradas, nos quais tanto o mtodo algbrico quanto o mapa K so impra-
ticveis. A maioria dessas tcnicas pode ser implementada por um programa de computador, que realizar a minimizao
a partir dos dados provenientes de uma tabela-verdade ou de uma expresso no simplificada.

Questes para reviso

1. Use o mapa K para obter a expresso do Exemplo 4.7.


2. Use o mapa K para obter a expresso do Exemplo 4.8. Esse exemplo enfatiza a vantagem do mapa K para expresses
contendo muitos termos.
3. Obtenha a expresso do Exemplo 4.9 usando um mapa K.
4. O que uma condio de irrelevncia?

4.6 CIRCUITOS EXCLUSIVE-OR E EXCLUSIVE-NOR


Dois circuitos lgicos especiais, que aparecem muitas vezes em sistemas digitais, so os circuitos exclusive-OR e
exclusive-NOR.

Exclusive-OR (OU-EXCLUSIVO)
Considere o circuito lgico mostrado na Figura 4.20(a). A expresso de sada para esse circuito
x = AB + AB
A tabela-verdade que acompanha o circuito mostra que x = 1 em dois casos: A = 0, B = 1 (o termo AB) e A = 1, B=0
(o termo AB). Em outras palavras:
Esse circuito produz uma sada em nvel ALTO sempre que
as duas entradas estiverem em nveis opostos.
Esse o circuito exclusive-OR, que daqui em diante ser abreviado como XOR.
Essa combinao particular de portas lgicas ocorre com frequncia e muito til em determinadas aplicaes. Na
verdade, o circuito XOR tem um smbolo prprio, mostrado na Figura 4.20(b). Admite-se que esse smbolo contm todo o

Tocci.indb 121 10/05/2011 18:15:13


122 Sistemas digitais princpios e aplicaes

A A B x
A
0 0 0
B
B 0 1 1
1 0 1
AB 1 1 0
x = AB + AB

A AB

B
(a)

x = A 5B
A = AB + AB

(b)

FIGURA 4.20 (a) Circuito XOR e tabela-verdade; (b) smbolo tradicional para a porta XOR.

circuito lgico XOR e, portanto, tem a mesma expresso lgica e a mesma tabela-verdade. Esse circuito XOR normalmente
denominado porta XOR e o consideraremos outro tipo de porta lgica.
Uma porta XOR tem apenas duas entradas; no existem portas XOR de trs ou quatro entradas. As duas entradas so
combinadas de modo que x = AB + AB. Uma forma abreviada algumas vezes usada para indicar uma expresso de sada
XOR
x=A5B
em que o smbolo (5) representa a operao da porta XOR.
As caractersticas de uma porta XOR so resumidas a seguir:
1. Tem apenas duas entradas, e a expresso para sua sada
x = AB + AB = A 5 B
2. Sua sada ser nvel ALTO apenas quando as duas entradas estiverem em nveis diferentes.
Existem disponveis alguns CIs contendo portas XOR. Os CIs listados a seguir so chips qudruplos de portas XOR
(que contm quatro portas XOR).
74LS86 CI qudruplo XOR (famlia TTL)
74C86 CI qudruplo XOR (famlia CMOS)
74HC86 CI qudruplo XOR (CMOS de alta velocidade)

Exclusive-NOR (NOU-EXCLUSIVO ou COINCIDNCIA)


O circuito exclusive-NOR (abreviado como XNOR) opera de maneira completamente oposta ao circuito XOR. A
Figura 4.21(a) mostra um circuito XNOR acompanhado de sua tabela-verdade. A expresso de sada
x = AB + A B
que indica, juntamente com a tabela-verdade, que x 1 para dois casos: A = B = 1 (o termo AB) e A = B = 0 (o termo AB).
Em outras palavras:
O XNOR gerar uma sada em nvel ALTO se as duas
entradas coincidirem (estiverem no mesmo nvel lgico).
Deve ficar evidente que a sada de um circuito XNOR exatamente o inverso da sada de um XOR. O smbolo tra-
dicional para uma porta XNOR obtido simplesmente acrescentando um pequeno crculo na sada do smbolo da porta
XOR [Figura 4.21(b)].
A porta XNOR tambm tem apenas duas entradas e as combina de modo que a sada seja
x = AB + A B

Tocci.indb 122 10/05/2011 18:15:14


Captulo 4 Circuitos lgicos combinacionais 123

A A B x
AB
0 0 1
B
B 0 1 0
1 0 0
1 1 1

x = AB +AB
B
AB
A

(a)

A x = A B = AB + AB

(b)

FIGURA 4.21 (a) Circuito exclusive-NOR; (b) smbolo tradicional para a porta XNOR.

Uma forma abreviada de indicar a expresso de sada de uma porta XNOR


x=A5B
que simplesmente o inverso da operao XOR. A operao da porta XNOR est resumida a seguir:
1. Tem apenas duas entradas, e a expresso para sua sada
x = AB + A B = A 5 B
2. Sua sada ser nvel ALTO apenas quando as duas entradas estiverem no mesmo nvel lgico.
Existem disponveis alguns CIs contendo portas XNOR. Os CIs listados a seguir so chips qudruplos de portas
XNOR (contendo quatro portas XNOR).
74LS266 CI qudruplo XNOR (famlia TTL)
74C266 CI qudruplo XNOR (famlia CMOS)
74HC266 CI qudruplo XNOR (CMOS de alta velocidade)
Cada um desses chips XNOR tem, entretanto, um circuito especial de sada, que limita seu uso a aplicaes espe-
cficas. Muitas vezes, um projetista de circuitos lgicos obtm a funo XNOR conectando um INVERSOR sada de
uma porta XOR.

Exemplo 4.16

Determine a forma de onda de sada para as formas de onda de entrada mostradas na Figura 4.22.
Soluo
A forma de onda de sada obtida usando o fato de que a sada da porta XOR ser nvel ALTO apenas quando suas en-
tradas estiverem em nveis diferentes. A forma de onda de sada resultante revela alguns pontos interessantes:
1. A forma de onda de sada x segue a forma de onda na entrada A durante os intervalos em que B = 0. Isso ocorre durante
os intervalos t0 a t1 e t2 a t3.
2. A forma de onda de x o inverso da forma de onda na entrada A durante os intervalos de tempo em que B = 1. Isso
acontece de t1 a t2.
3. Essas observaes mostram que uma porta XOR pode ser usada como INVERSOR controlado, ou seja, uma de suas
entradas pode ser usada para controlar se o sinal na outra entrada ser invertido ou no. Essa propriedade til em
determinadas aplicaes.

Tocci.indb 123 10/05/2011 18:15:14


124 Sistemas digitais princpios e aplicaes

A
A
x
B B

t0 t1 t2 t3

FIGURA 4.22 Exemplo 4.16.

Exemplo 4.17

A notao x1x0 representa um nmero binrio que pode ter qualquer valor (00, 01, 10 ou 11); por exemplo, quando x1 = 1
e x0 = 0, o nmero binrio 10, e assim por diante. De forma similar, a notao y1y0 representa um outro nmero binrio
de dois bits. Projete um circuito lgico usando as entradas x1, x0, y1 e y0, cuja sada ser nvel ALTO apenas quando os
dois nmeros binrios, x1x0 e y1y0, forem iguais.
Soluo
O primeiro passo construir a tabela-verdade para 16 condies de entrada (Tabela 4.4). A sada z tem de ser nvel ALTO
sempre que os valores de x1x0 e y1y0 coincidirem, ou seja, x1 = y1 e x0 = y0. A tabela mostra que existem quatro casos
desse tipo. Poderamos continuar agora o procedimento normal, obter a expresso para z na forma de soma-de-produtos,
tentar simplific-la e ento implementar o resultado. Entretanto, a natureza desse problema o torna adequado para ser
implementado usando portas XNOR, e um pouco de reflexo produz uma soluo simples com um mnimo de esforo.
Veja a Figura 4.23; nesse diagrama lgico, x1 e y1 so as entradas de uma porta XNOR, e x0 e y0 so as entradas de outra
porta XNOR. A sada de cada porta XNOR ser nvel ALTO apenas quando suas entradas forem iguais. Assim, para x0
= y0 e x1 = y1, as sadas das duas portas XNOR sero nvel ALTO. Essa a condio que estamos procurando, porque
significa que os dois nmeros de dois bits so iguais. A sada da porta AND ser nvel ALTO apenas nesse caso, gerando,
portanto, a sada desejada.

TABELA 4.4
x1 x0 y1 y0 z (Sada) x1 x0 y1 y0 z (Sada)
0 0 0 0 1 1 0 0 0 0
0 0 0 1 0 1 0 0 1 0
0 0 1 0 0 1 0 1 0 1
0 0 1 1 0 1 0 1 1 0
0 1 0 0 0 1 1 0 0 0
0 1 0 1 1 1 1 0 1 0
0 1 1 0 0 1 1 1 0 0
0 1 1 1 0 1 1 1 1 1

x1
Nmero binrio
x0

y1 z
Nmero binrio
y0

FIGURA 4.23 Circuito para detectar a igualdade de dois nmeros binrios de dois bits.

Tocci.indb 124 10/05/2011 18:15:14


Captulo 4 Circuitos lgicos combinacionais 125

Exemplo 4.18

Ao simplificar a expresso para a sada de um circuito lgico combinacional, voc pode encontrar operaes XOR ou
XNOR durante a fatorao. Isso permite, muitas vezes, o uso de portas XOR ou XNOR na implementao do circuito
final. Para ilustrar, simplifique o circuito da Figura 4.24(a).

B ABCD z = ABCD + ABCD +AD

ABCD

AD

(a)

AD(B C)
B BC

C z = AD (B C) + AD

A A + D = AD

D
(b)

FIGURA 4.24 O Exemplo 4.18 mostra como uma porta XNOR pode ser usada para simplificar a implementao de um circuito.

Soluo
A expresso no simplificada obtida do circuito
z = ABCD + AB CD + A D
Podemos fatorar AD a partir dos dois primeiros termos:
z = AD(BC + B C) + A D
primeira vista, possvel pensar que a expresso entre parnteses pode ser substituda por 1. Porm, isso somente
aconteceria se tivssemos BC + BC. Voc deve reconhecer a expresso entre parnteses como uma combinao XNOR de
B e C. Esse fato pode ser usado para implementar novamente o circuito mostrado na Figura 4.24(b). Esse circuito muito
mais simples que o original, visto que usa portas lgicas com menos entradas e dois INVERSORES foram eliminados.

Questes para reviso

1. Use a lgebra booleana para demonstrar que a expresso de sada da porta XNOR exatamente o inverso da expresso
de sada da XOR.
2. Qual a sada de uma porta XNOR quando um sinal lgico e seu inverso so conectados em suas entradas?
3. Um projetista de circuitos lgicos precisa de um INVERSOR e tudo o que ele tem disponvel uma porta XOR de
um CI 74HC86. Ele precisa de outro CI?

Tocci.indb 125 10/05/2011 18:15:14


126 Sistemas digitais princpios e aplicaes

4.7 CIRCUITOS GERADOR E VERIFICADOR DE PARIDADE


No Captulo 2, vimos que um transmissor pode anexar um bit de paridade em um conjunto de bits de dados antes
de transmiti-lo ao receptor. Vimos, tambm, como esse bit de paridade permite ao receptor detectar qualquer erro em um
nico bit que tenha ocorrido na transmisso. A Figura 4.25 mostra um exemplo de um tipo de circuito lgico usado para
gerao de paridade e verificao de paridade. Esse exemplo usa um grupo de quatro bits como os dados a serem trans-
mitidos, fazendo uso da paridade par. Esse circuito pode ser facilmente adaptado para usar paridade mpar e um nmero
qualquer de bits.
Na Figura 4.25(a), o conjunto dos dados a serem transmitidos aplicado ao circuito gerador de paridade, que produz
um bit de paridade par, P, em sua sada. Esse bit de paridade transmitido para o receptor juntamente com os bits do dado
original, totalizando cinco bits. Na Figura 4.25(b), esses cinco bits (dado + paridade) entram no circuito verificador de
paridade do receptor, o qual gera uma sada de erro, E, que indica se ocorreu ou no um erro em um nico bit.
No deve surpreender que esses dois circuitos empreguem portas XOR, quando consideramos que uma nica porta
XOR opera de tal modo que gera uma sada em nvel 1, se o nmero de 1s nas entradas for mpar, e uma sada em nvel
0, se o nmero de 1s nas entradas for par.

Exemplo 4.19

Determine a sada do gerador de paridade para cada um dos seguintes conjuntos de dados de entrada, D3D2D1D0: (a) 0111;
(b) 1001; (c) 0000; (d) 0100. Veja a Figura 4.25(a).
Soluo
Para cada caso, aplique os nveis s entradas do gerador de paridade e percorra o circuito passando por cada porta lgica
at chegar sada P. Os resultados so: (a) 1; (b) 0; (c) 0; (d) 1. Observe que P gera nvel 1 apenas quando o dado original
contm um nmero mpar de 1s. Assim, o nmero total de 1s enviado ao receptor (dado + paridade) ser par.

Gerador de paridade par


D3

D2
Dados originais
D1 Paridade (P)

D0
Dados transmitidos
com bit de paridade

(a)

Verificador de paridade par


P

D3
Erro (E)
D2 {1 = erro
Do transmissor
0 = no erro}
D1

D0

(b)

FIGURA 4.25Portas XOR utilizadas para implementar (a) um gerador de paridade e (b) um verificador de paridade para um sistema que
usa paridade par.

Tocci.indb 126 10/05/2011 18:15:15


Captulo 4 Circuitos lgicos combinacionais 127

Exemplo 4.20

Determine a sada do verificador de paridade [veja a Figura 4.25(b)] para cada um dos conjuntos de dados enviados pelo
transmissor:
P D3 D2 D1 D0
(a) 0 1 0 1 0
(b) 1 1 1 1 0
(c) 1 1 1 1 1
(d) 1 0 0 0 0

Soluo
Para cada caso, aplique os nveis s entradas do verificador de paridade e percorra o circuito passando por cada porta
lgica at chegar sada E. Os resultados so: (a) 0; (b) 0; (c) 1; (d) 1. Observe que a sada E gera nvel 1 apenas quando
um nmero mpar de 1s aparece nas entradas do verificador de paridade. Isso indica que um erro ocorreu, visto que est
sendo usada a paridade par.

4.8 CIRCUITOS PARA HABILITAR/DESABILITAR


Cada uma das portas lgicas bsicas pode ser usada para controlar a passagem de um sinal lgico da entrada para a
sada. Isso est ilustrado com formas de onda na Figura 4.26, na qual um sinal lgico A aplicado em uma das entradas de
cada porta lgica. A outra entrada de cada porta lgica a de controle, B. O nvel lgico na entrada de controle determina
se o sinal de entrada est habilitado a alcanar a sada ou impedido (desabilitado) de alcan-la. Essa ao de controle
a razo para esses circuitos serem denominados portas.

HABILITAR DESABILITAR

A x =A A x=0

B=1 B=0

A x =A A x=1

B=1 B=0

A x =A A x=1

B=0 B=1

A x =A A x=0

B=0 B=1

FIGURA 4.26As quatro portas bsicas podem habilitar ou desabilitar a passagem de um sinal de entrada A sob o controle de um nvel lgico na
entrada de controle B.

Tocci.indb 127 10/05/2011 18:15:15


128 Sistemas digitais princpios e aplicaes

Analise a Figura 4.26 e observe que, quando portas no inversoras (AND e OR) so habilitadas, a sada segue exa-
tamente o sinal A. Ao contrrio, quando portas inversoras (NAND e NOR) so habilitadas, a sada o inverso do sinal A.
Observe tambm que as portas AND e NOR geram uma sada constante em nvel BAIXO quando esto desabilitadas.
Ao contrrio, as portas NAND e OR geram sada constante em nvel ALTO quando esto desabilitadas.
Existem diversas situaes no projeto de circuitos digitais em que a passagem de um sinal lgico habilitada ou
desabilitada, dependendo das condies presentes em uma ou mais entradas. Algumas situaes so apresentadas nos
exemplos a seguir.

Exemplo 4.21

Projete um circuito lgico que permita a passagem de um sinal para a sada apenas quando as entradas de controle B e
C forem ambas nvel ALTO; caso contrrio, a sada permanecer em nvel BAIXO.
Soluo
Uma porta AND usada porque o sinal deve passar sem inverso e, na condio desabilitada, a sada deve ser nvel
BAIXO. Visto que a condio de habilitao tem de ocorrer apenas quando B = C = 1, uma porta AND de trs entradas
usada, conforme mostrado na Figura 4.27(a).

A x

A x B
B
C C
(a) (b)

FIGURA 4.27 Exemplos 4.21 e 4.22.

Exemplo 4.22

Projete um circuito lgico que permita a passagem de um sinal para a sada apenas quando uma entrada, mas no ambas,
for nvel ALTO; caso contrrio, a sada permanecer em nvel ALTO.
Soluo
O resultado mostrado na Figura 4.27(b). Uma porta OR usada porque queremos que a sada, na condio desabilitada,
seja nvel ALTO e que o sinal no seja invertido. As entradas de controle B e C so combinadas em uma porta XNOR.
Quando B e C forem diferentes, a sada da XNOR enviar um nvel BAIXO para habilitar a porta OR. Quando estiverem
no mesmo nvel lgico, a XNOR enviar um nvel ALTO para desabilitar a porta OR.

Exemplo 4.23

Projete um circuito lgico com sinal de entrada A, entrada de controle B e sadas X e Y, que operam da seguinte forma:
1. Quando B = 1, a sada X segue a entrada A, e a sada Y 0.
2. Quando B = 0, a sada X 0, e a sada Y segue a entrada A.
Soluo
As duas sadas sero 0 quando estiverem desabilitadas e seguiro o sinal de entrada quando estiverem habilitadas. Assim,
uma porta AND deve ser usada para cada sada. Visto que a sada X habilitada quando B = 1, a porta AND referente a
essa sada tem de ser controlada por B, conforme mostrado na Figura 4.28. Visto que a sada Y habilitada quando B=0, a
porta AND correspondente a essa sada controlada por B. O circuito na Figura 4.28 denominado circuito direcionador
de pulsos, porque direciona o pulso de entrada para uma das sadas, dependendo de B.

Tocci.indb 128 10/05/2011 18:15:15


Captulo 4 Circuitos lgicos combinacionais 129

B
0 SE B = 1
X
0 SE B = 0
A
0 SE B = 1
Y
B
0 SE B = 0

FIGURA 4.28 Exemplo 4.23.

Questes para reviso

1. Projete um circuito lgico com trs entradas, A, B e C, e uma sada que ir para nvel BAIXO apenas quando A for
nvel ALTO e B e C forem diferentes.
2. Qual porta lgica gera uma sada em nvel 1 no estado desabilitado?
3. Quais portas lgicas permitem a passagem invertida do pulso de entrada quando esto habilitadas?

4.9 CARACTERSTICAS BSICAS DE CIs DIGITAIS


CIs digitais so uma coleo de resistores, diodos e transistores fabricados em um nico pedao de material semicon-
dutor (geralmente silcio), denominado substrato, comumente conhecido como chip. O chip confinado em um encapsula-
mento protetor plstico ou cermico, a partir do qual saem pinos para conexo do CI com outros dispositivos. Um dos tipos
de encapsulamento mais comuns o dual-in-line package (DIP), mostrado na Figura 4.29(a), assim denominado porque
contm duas linhas de pinos em paralelo. Os pinos so numerados no sentido anti-horrio, quando o encapsulamento
visto de cima, a partir da marca de identificao (entalhe ou ponto) situada em uma das extremidades do encapsulamento
[veja a Figura 4.29(b)]. Nesse caso, o DIP mostrado de 14 pinos e mede 19,05 mm por 6,35 mm; encapsulamentos de
16, 20, 24, 28, 40 e 64 pinos tambm so usados.

14 13 12 11 10 9 8

Entalhe

7 O CI pode ter um
6
5 pontinho junto ao pino 1
14 4
3
2 1 2 3 4 5 6 7
1
(a)
(b)

Chip de silcio Canto chanfrado


propriamente dito

Pino 8

Pino 1

Pino 14 Pino 1

(c) (d)

FIGURA 4.29(a) Encapsulamento dual-in-line (DIP); (b) vista superior; (c) o chip de silcio muito menor que o encapsulamento de proteo;
(d) encapsulamento PLCC.

Tocci.indb 129 10/05/2011 18:15:16


130 Sistemas digitais princpios e aplicaes

A Figura 4.29(c) mostra que o chip de silcio , na verdade, muito menor que seu DIP; tipicamente, pode ser to
pequeno quanto um quadrado de 1,27 mm de lado. O chip de silcio conectado aos pinos do DIP por meio de fios muito
finos (0,025 mm de dimetro).
O DIP , provavelmente, o encapsulamento para CIs digitais mais fcil de ser encontrado em equipamentos digitais
antigos, embora outros tipos estejam se tornando cada vez mais populares. O CI mostrado na Figura 4.29(d) apenas um
entre muitos encapsulamentos comuns nos modernos circuitos digitais. Esse encapsulamento, em especial, utiliza terminais
em forma de J que se curvam sob o CI. Veremos alguns dos outros tipos no Captulo 8.
CIs digitais so muitas vezes classificados de acordo com a complexidade de seus circuitos, medida pelo nmero de
portas lgicas equivalentes em seu substrato. Existem atualmente seis nveis de complexidade, normalmente definidos
conforme a Tabela 4.5.

TABELA 4.5
Complexidade Portas por CI
Integrao em pequena escala (SSI) Menos de 12
Integrao em mdia escala (MSI) Entre 12 e 99
Integrao em grande escala (LSI) Entre 100 e 9999
Integrao em escala muito grande (VLSI) Entre 10.000 e 99.999
Integrao em escala ultragrande (ULSI) Entre 100.000 e 999.999
Integrao em escala giga (GSI) 1.000.000 ou mais

Todos os CIs especificados no Captulo 3, e tambm neste captulo, so chips SSI, que contm um pequeno nmero
de portas. Nos sistemas digitais modernos, dispositivos com grau mdio de integrao (MSI) e com alto grau de integrao
(LSI, VLSI, ULSI e GSI) realizam a maior parte das funes que antes eram implementadas por vrias placas de circuito
impresso, cheias de dispositivos SSI. Entretanto, chips SSI ainda so usados como interface ou ponte entre oschips
mais complexos. Os CIs de pequena escala tambm proporcionam um excelente modo de aprender a lidar comos blocos
de construo bsicos dos sistemas digitais. Assim, muitos cursos prticos usam esses CIs para construir e testar pequenos
projetos.
O mundo industrial da eletrnica digital est agora se voltando para os dispositivos lgicos programveis (PLDs)
para implementar sistemas digitais maiores. Alguns PLDs simples esto disponveis em encapsulamentos DIP, mas os
dispositivos lgicos programveis mais complexos exigem mais pinos que os disponveis em DIPs. Circuitos integrados
maiores, que possam precisar ser removidos de um circuito e substitudos, costumam ser fabricados em um encapsulamento
plstico com contatos (PLCC). A Figura 4.29(d) mostra o EPM 7128SLC84 da Altera em um encapsulamento PLCC, um
PLD bastante popular usado em muitos laboratrios de escolas. As principais caractersticas desse CI so: mais pinos, um
espaamento menor entre eles e pinos ao redor de toda a periferia. Observe que o pino 1 no fica no canto como no DIP,
mas no meio da parte de cima do encapsulamento.

CIs digitais bipolares e unipolares


CIs digitais tambm podem ser classificados de acordo com o principal tipo de componente eletrnico usado nos
circuitos. CIs bipolares so aqueles fabricados utilizando transistores bipolares de juno (NPN e PNP) como principal
elemento de circuito. CIs unipolares so aqueles que usam transistores unipolares de efeito-de-campo (MOSFETs canal
P e canal N) como elemento principal.
A famlia TTL (lgica transistor-transistor) tem sido a principal famlia de CIs digitais bipolares nos ltimos 40
anos. A srie 74 padro foi a primeira de CIs TTL. Ela no mais usada em novos projetos, tendo sido substituda por
vrias sries TTL de alto desempenho, mas a configurao bsica de seu circuito a base de todas as sries de CIs TTL.
Essa configurao de circuito mostrada na Figura 4.30(a) para um INVERSOR TTL padro. Observe que esse circuito
contm vrios transistores bipolares como elemento principal do circuito.
A famlia TTL foi a principal famlia de CIs nas categorias SSI e MSI at a dcada de 1990. Desde ento, sua posio
de liderana est sendo ameaada pela famlia CMOS, que tem gradualmente substitudo a TTL. A famlia CMOS (com-
plementar metal-xido-semicondutor) faz parte de uma classe de CIs digitais unipolares, porque usa MOSFETs canal P
e canal N como elemento principal do circuito. A Figura 4.30(b) mostra o circuito de um INVERSOR CMOS padro. Se
compararmos os circuitos TTL e CMOS na Figura 4.30, fica evidente que a verso CMOS usa poucos componentes. Essa
uma das principais vantagens da famlia CMOS sobre a TTL.
Graas simplicidade e forma compacta, alm de outras qualidades superiores dos CMOS, os CIs modernos de grande
escala so fabricados predominantemente com tecnologia CMOS. Laboratrios de escola que usam dispositivos SSI e

Tocci.indb 130 10/05/2011 18:15:16


Captulo 4 Circuitos lgicos combinacionais 131

+VDD
+VCC (14)
(14)
3,6 kX 1,6 kX 115 X
R1 R2 R4
Q1

Q4
Entrada A Sada
(1) (2)
D2
Q2
Q1 Q2 Sada Y
(2)
Entrada A GND
(1) Q3
(7)
(b)
D1 1 kX
Nmero R3
do pino

GND(7)

(a)

FIGURA 4.30 Circuito INVERSOR TTL; (b) circuito INVERSOR CMOS. A numerao dos pinos est entre parnteses.

MSI costumam usar TTL por causa da durabilidade, embora alguns tambm utilizem CMOS. O Captulo 8 apresentar um
estudo englobando os circuitos e as caractersticas de CIs TTL e CMOS. Por enquanto, precisamos abordar apenas algumas
de suas caractersticas bsicas, para que possamos falar sobre anlise de defeitos em circuitos combinacionais simples.

Famlia TTL
A famlia lgica TTL consiste, na verdade, de vrias subfamlias ou sries. A Tabela 4.6 relaciona o nome de cada uma
das sries com o prefixo usado para identificar os diferentes CIs que fazem parte dessas sries. Por exemplo, CIs que fazem
parte da TTL padro tm um nmero de identificao iniciado por 74. O 7402, o 7438 e o 74123 so CIs pertencentes a essa
srie. Da mesma maneira, CIs que pertencem srie TTL Schottky de baixa potncia (low-power Schottky) tm seu nmero
de identificao comeando por 74LS. O 74LS02, o 74LS38 e o 74LS123 so exemplos de dispositivos da srie 74LS.
As principais diferenas entre as sries TTL tm a ver com suas caractersticas eltricas, como dissipao de potncia
e velocidade de chaveamento (comutao). Elas no diferem na disposio dos pinos ou na operao lgica realizada pelos
circuitos internos. Por exemplo, o 7404, o 74S04, o 74LS04, o 74AS04 e o 74ALS04 so todos CIs com seis INVERSORES.

TABELA 4.6 Diversas sries da famlia lgica TTL.


Srie TTL Prefixo Exemplo de CI
TTL Padro 74 7404 (INVERSOR sxtuplo)
TTL Schottky 74S 74S04 (INVERSOR sxtuplo)
TTL Schottky de baixa potncia 74LS 74LS04 (INVERSOR sxtuplo)
TTL Schottky avanada 74AS 74AS04 (INVERSOR sxtuplo)
TTL Schottky avanada de baixa potncia 74ALS 74ALS04 (INVERSOR sxtuplo)

Famlia CMOS
Vrias sries CMOS disponveis esto relacionadas na Tabela 4.7. A srie 4000 a mais antiga. Ela possui muitas
das funes lgicas da famlia TTL, mas no foi projetada para ser compatvel pino a pino com os dispositivos TTL. Por
exemplo, o CI qudruplo NOR 4001 contm quatro portas NOR de duas entradas, assim como o CI TTL 7402, mas as
entradas e as sadas das portas do chip CMOS no tm a mesma pinagem que os sinais correspondentes no chip TTL.
As sries 74C, 74HC, 74HCT, 74AC e 74ACT so as mais recentes das famlias CMOS. As trs primeiras so com-
patveis pino a pino com os dispositivos TTL de mesma numerao. Por exemplo, o 74C02, o 74HC02 e o 74HCT02

Tocci.indb 131 10/05/2011 18:15:16


132 Sistemas digitais princpios e aplicaes

possuem a mesma pinagem que o 7402, o 74LS02, e assim por diante. As sries 74HC e 74HCT operam a uma velocidade
mais alta que os dispositivos da 74C. A srie 74HCT foi projetada para ser eletricamente compatvel com dispositivos
TTL, ou seja, um circuito integrado 74HCT pode ser diretamente conectado a dispositivos TTL, sem que seja necessrio
circuito de interface. As sries 74AC e 74ACT so CIs de altssimo desempenho. Nenhum deles compatvel pino a pino
com TTL. Os dispositivos 74ACT so eletricamente compatveis com TTL. Exploraremos as vrias sries TTL e CMOS
em detalhes no Captulo 8, assim como as ltimas tecnologias de baixa tenso usadas em CIs modernos.

TABELA 4.7 Vrias sries da famlia lgica CMOS.


Sries CMOS Prefixo Exemplo de CI
CMOS com porta de metal 40 4001 (porta NOR qudrupla)
Porta de metal, compatvel pino a pino com TTL 74C 74C02 (porta NOR qudrupla)
Porta de silcio, compatvel pino a pino com TTL, alta velocidade 74HC 74HC02 (porta NOR qudrupla)
Porta de silcio, alta velocidade, compatvel pino a pino e eletricamente com TTL 74HCT 74HCT02 (porta NOR qudrupla)
CMOS de altssimo desempenho, no compatvel pino a pino nem eletricamente
74AC 74AC02 (porta NOR qudrupla)
com TTL
CMOS de altssimo desempenho, no compatvel pino a pino, mas eletricamente
74ACT 74ACT02 (porta NOR qudrupla)
compatvel com TTL

Alimentao e terra
Para usar CIs digitais, necessrio que se faam as conexes apropriadas aos pinos do CI. As conexes mais impor-
tantes so as de alimentao CC (corrente contnua) e terra. Essas conexes so necessrias para que o circuito no chip
opere corretamente. Observando a Figura 4.30, voc pode ver que tanto os circuitos TTL quanto os CMOS tm a fonte de
tenso CC ligada a um pino e o GND (terra) conectado a outro. O pino de alimentao denominado VCC para o circuito
TTL e VDD para o circuito CMOS. Muitos dos circuitos integrados CMOS recentes, projetados para serem compatveis
com circuitos integrados TTL, tambm usam a designao VCC para o pino de alimentao.
Caso a conexo de alimentao ou GND no seja feita, as portas lgicas no chip no vo responder adequadamente
s entradas lgicas e ele no fornecer os nveis lgicos de sada esperados.

Faixas de tenso para os nveis lgicos


Para dispositivos TTL, VCC +5 V (nominal). Para dispositivos CMOS, VDD pode estar situado na faixa que vai de +3
a +18 V, embora +5 V seja a tenso mais usada, principalmente quando dispositivos CMOS esto em um mesmo circuito,
em conjunto com dispositivos TTL.
Para os dispositivos TTL padro, as faixas de tenso de entrada aceitveis para os nveis lgicos 0 e 1 so definidas
na Figura 4.31(a). Um nvel lgico 0 corresponde a qualquer tenso na faixa de 0 a 0,8 V; um nvel lgico 1 corresponde
a qualquer tenso na faixa de 2 a 5 V. As tenses fora dessas faixas so denominadas indeterminadas e no devem ser

TTL CMOS*
5,0 V . . . 5,0 V . . .

LGICO 1
LGICO 1
3,5 V . . .

2,0 V . . . Indeterminado

Indeterminado
1,5 V . . .
0,8 V . . .
LGICO 0 LGICO 0
0V... 0V...
*VDD = + 5 V

(a) (b)

FIGURA 4.31 Nveis lgicos de entrada e as correspondentes faixas de tenso para CIs digitais (a) TTL e (b) CMOS.

Tocci.indb 132 10/05/2011 18:15:16


Captulo 4 Circuitos lgicos combinacionais 133

usadas como entrada de qualquer dispositivo TTL. Os fabricantes de CIs no garantem como um circuito TTL responder
a nveis de tenso de entrada que estejam na faixa indeterminada (entre 0,8 e 2,0 V).
As faixas de tenso de entrada para que os circuitos integrados CMOS operem com VDD = +5 V so mostradas na
Figura 4.31(b). Tenses entre 0 e 1,5 V so definidas como nvel lgico 0 e tenses na faixa de 3,5 a 5 V, como nvel lgico
1. A faixa indeterminada inclui as tenses entre 1,5 e 3,5 V.

Entradas no conectadas (flutuantes)


O que acontece quando uma entrada de um CI digital desconectada? frequentemente denominada entrada flu-
tuante. As respostas para essa pergunta so diferentes para circuitos TTL e CMOS.
Uma entrada flutuante em um circuito TTL funciona exatamente como se estivesse em nvel lgico 1. Em outras pala-
vras, o CI responde como se na entrada tivesse sido aplicado um nvel lgico ALTO. Essa caracterstica frequentemente
usada quando se testa um circuito TTL. Um tcnico preguioso poderia deixar determinadas entradas desconectadas, em
vez de conect-las ao nvel lgico ALTO. Embora isso seja correto do ponto de vista de nveis lgicos, no recomendado,
principalmente no projeto final de circuitos, visto que uma entrada flutuante em um circuito TTL muito suscetvel a sinais
de rudos, que provavelmente afetaro de forma adversa o funcionamento.
Um voltmetro ou um osciloscpio que esteja medindo uma entrada flutuante em um circuito TTL indicar uma tenso
CC entre 1,4 e 1,8 V. Embora esse valor esteja na faixa de nvel indeterminado para TTL, ele produzir a mesma resposta
que para um nvel lgico 1. Lembre-se de que essa caracterstica de entrada TTL flutuante pode ser valiosa quando estiver
fazendo anlise de defeito em um circuito TTL.
Se uma entrada de um circuito CMOS for deixada flutuante, pode ter resultados desastrosos. O CI pode superaquecer
e, possivelmente, se danificar. Por essa razo, todas as entradas de um circuito CMOS devem ser conectadas a um nvel
lgico (BAIXO ou ALTO) ou sada de um outro CI. A tenso CC medida em uma entrada CMOS flutuante no apresenta
valor especfico e varia aleatoriamente em funo do rudo captado. Assim, uma entrada CMOS flutuante no funciona
como um nvel lgico 1 ou 0, portanto seu efeito na sada imprevisvel. Algumas vezes, a sada oscila como resultado
do rudo captado pela entrada flutuante.
Muitos dos CIs CMOS mais complexos possuem circuitos embutidos nas entradas, o que reduz a probabilidade de
qualquer reao destrutiva a uma entrada aberta. Com esse tipo de circuito, no necessrio aterrar todos os pinos no
usados em um grande CI ao fazer experincias. prudente, contudo, ligar as entradas no usadas a ALTO ou BAIXO (o
que for apropriado no caso) na implementao final do circuito.

Diagramas de conexo de circuitos lgicos


Um diagrama de conexo mostra todas as conexes eltricas, numerao de pinos, numerao de CIs, valores de
componentes, nomes de sinais e tenses de alimentao. A Figura 4.32 mostra um diagrama de conexo tpico para um
circuito lgico simples. Analise-o cuidadosamente e observe os seguintes pontos importantes:
1. O circuito usa portas lgicas de dois CIs diferentes. Os dois INVERSORES fazem parte do 74HC04 denominado
Z1. O 74HC04 contm seis INVERSORES; dois deles esto sendo usados nesse circuito e cada um foi denomi-
nado como parte do Z1. De modo similar, as duas portas NAND fazem parte de um 74HC00 que contm quatro

+5 V +5 V

14 CI Tipo
CLOCK 14
1 2 1 Z1 74HC04 inversor sxtuplo
Z1 3
Z2 Z2 74HC00 inversor qudruplo
7 CLKOUT
2
7

LOAD 3 4
Z1

SHIFT 10
SHIFTOUT
Z2
8
9

FIGURA 4.32 Diagrama de conexo tpico de um circuito lgico.

Tocci.indb 133 10/05/2011 18:15:17


134 Sistemas digitais princpios e aplicaes

portas NAND. Todas foram denominadas Z2. Fazendo a numerao de cada porta como Z1, Z2, Z3 etc., podemos
determinar a qual CI pertence cada porta. Isso til em circuitos complexos que contm muitos CIs com vrias
portas em cada.
2. A numerao de pinos de cada entrada e sada est indicada no diagrama. A numerao de pinos e os nomes dos
CIs so usados para que se possa identificar facilmente qualquer ponto do circuito. Por exemplo, o pino 2 de Z1
se refere sada do INVERSOR que est na parte superior do diagrama. De modo similar, podemos dizer que o
pino 4 de Z1 est conectado ao pino 9 de Z2.
3. As conexes de alimentao e GND de cada CI (no de cada porta) so mostradas no diagrama. Por exemplo, o
pino 14 de Z1 est conectado em +5 V, e o pino 7 de Z1 est conectado em GND. Essas duas conexes proveem
a alimentao de todos os seis INVERSORES que fazem parte de Z1.
4. No circuito contido na Figura 4.32, os sinais que so entradas esto esquerda e os que so sadas, direita. A
barra sobre o nome do sinal indica que est ativo quando BAIXO. Os pequenos crculos que esto posicionados
nos smbolos do diagrama tambm indicam o estado ativo-BAIXO. Todos os sinais nesse caso so de um nicobit.
5. Os sinais so definidos graficamente na Figura 4.32 como entradas e sadas, e a relao entre eles (o funcionamento
do circuito) descrita graficamente por meio de smbolos lgicos interconectados.
Os fabricantes de equipamentos eletrnicos geralmente fornecem esquemas detalhados que usam um formato similar
ao mostrado na Figura 4.32. Esses diagramas de conexes so de grande importncia quando fazemos anlise de defeitos
em um circuito. Escolhemos a identificao de cada CI como Z1, Z2, Z3 etc. Outras designaes usadas normalmente so
CI1, CI2, CI3 etc. e U1, U2, U3 etc.
No Captulo 3, introduzimos as ferramentas de entrada grfica do software Quartus II da Altera. Um exemplo de um
diagrama lgico desenhado usando esse software mostrado na Figura 4.33. Um circuito como este no projetado para
ser implementado usando CIs lgicos SSI ou MSI. Por esta razo, no h nmeros de pinos ou designaes de chips nos
smbolos lgicos, apenas nmeros-instncia. O software da Altera vai traduzir uma descrio grfica da funo lgica em
um arquivo binrio, usado para configurar circuitos lgicos dentro de um dos muitos CIs digitais da Altera. Estes circui-
tos lgicos configurveis, ou programveis, sero descritos ainda neste captulo. Observe, tambm, que uma conveno
comum em nomear sinais de entrada e sada usar o sufixo N, em vez da barra sobre o nome, para indicar que o sinal
ativo-em-baixo. Por exemplo, a entrada LOADN um sinal que ser BAIXO a fim de realizar a funo LOAD. O software
Quartus II disponibilizado gratuitamente pela Altera (<www.altera.com>), e um tutorial passo a passo disponibilizado
no site de apoio deste livro.

NOT NAND2
ENTRADA
6 CLOCKN VCC SADA
1 CLKOUTN
9
3

NOT
ENTRADA
LOADN
7 VCC
5
NAND2
ENTRADA
8 SHIFT
VCC SADA
SHIFTOUTN
10
4

FIGURA 4.33 Diagrama lgico usando captura esquemtica Quartus II.

Questes para reviso

1. Qual o tipo mais comum de transistor usado em (a) TTL e (b) CMOS?
2. Relacione as seis classificaes existentes para os CIs digitais de acordo com a complexidade dos circuitos dos CIs.
3. Verdadeiro ou falso: um 74S74 contm a mesma lgica e a mesma configurao de um 74LS74.
4. Verdadeiro ou falso: um 74HC74 contm a mesma lgica e a mesma configurao de um 74AS74.
5. Quais so as sries de CIs CMOS que no so compatveis pino a pino com TTL?
6. Qual a faixa de tenso de entrada aceitvel para um nvel lgico 0 na famlia TTL? E para um nvel lgico 1?
7. Repita a Questo 6 para a famlia CMOS operando com VDD = 5 V.

Tocci.indb 134 10/05/2011 18:15:17


Captulo 4 Circuitos lgicos combinacionais 135

8. Como um circuito integrado TTL responde a uma entrada flutuante?


9. Como um circuito integrado CMOS responde a uma entrada flutuante?
10. Quais sries CMOS podem ser conectadas diretamente famlia TTL sem um circuito de interface?
11. Para que servem os nmeros nos pinos em um diagrama de conexo de circuitos lgicos?
12. Quais so as principais similaridades entre arquivos de projeto grfico, usados em lgica programvel, e diagramas
de conexo de circuitos lgicos tradicionais?

4.10 ANLISE DE DEFEITOS EM SISTEMAS DIGITAIS


Existem trs passos bsicos a serem seguidos na anlise de defeitos em um circuito ou sistema digital:
1. Deteco do defeito. Observe o funcionamento do circuito/sistema e compare com o esperado.
2. Identificao do defeito. Faa testes e medies para identificar o defeito.
3. Correo do defeito. Substitua o componente defeituoso, conserte a conexo defeituosa, remova o curto-circuito,
e assim por diante.
Embora esses passos paream relativamente simples, o procedimento real a ser seguido em uma anlise de defeito
depende muito do tipo e da complexidade do circuito, das ferramentas usadas na anlise de defeitos e da documentao
disponvel.
Boas tcnicas de anlise de defeitos s podem ser aprendidas em um ambiente de laboratrio por meio da experimen-
tao e da anlise de defeitos em sistemas ou circuitos defeituosos. No h maneira melhor de se tornar hbil na manuten-
o de circuitos que praticar. No a quantidade de livros lidos que proporciona essa experincia. Entretanto, podemos
ajud-lo a desenvolver habilidades de anlise, que constituem a parte mais importante da anlise de defeitos. Primeiro,
descreveremos os tipos de defeitos mais comuns em sistemas constitudos de CIs digitais e diremos como identific-los.
Em seguida, apresentaremos casos tpicos para ilustrar o processo analtico envolvido na anlise de defeitos. Alm disso,
existem problemas de anlise de defeitos, no final deste captulo, que proporcionam uma oportunidade de usar esse processo
analtico para tirar concluses a respeito de defeitos em circuitos digitais.
Para as discusses e os exerccios de anlise de defeitos que faremos neste livro, consideraremos que os tcnicos de
manuteno tenham disponveis as ferramentas bsicas: ponta de prova lgica, osciloscpio e gerador de pulsos. claro
que a ferramenta mais importante e eficiente a inteligncia, e isso que procuraremos desenvolver, apresentando, neste
captulo e nos seguintes, tcnicas, princpios, exemplos e problemas de anlise de defeitos.
Nas prximas trs sees de anlise de defeitos, usaremos apenas a inteligncia e uma ponta de prova lgica como a
ilustrada na Figura 4.34. Uma ponta de prova lgica tem uma ponta de metal que deve tocar no circuito o ponto especfico
que desejamos testar. Na figura, est sendo testado o pino 3 do CI. A ponta de prova lgica tambm pode tocar a placa
de circuito impresso, um fio sem isolao, um pino de conector, um terminal de componente discreto, como transistor ou
qualquer outro ponto que seja condutor no circuito. O nvel lgico mostrado pela ponta de prova lgica indicado pelo
estado do indicador luminoso ou LED existente na ponta de prova. Os quatro estados possveis so mostrados na tabela
da Figura 4.34. Observe que um nvel lgico indeterminado no gera sinal luminoso. Isso inclui as condies em que o

Para VCC
Ponta de
prova lgica
Para GND

Indicadores
ou LEDs

LEDs
CI
+5 V Vermelho Verde Amarelo Condio lgica
OFF ON OFF BAIXA
Placa PC ON OFF OFF ALTA
OFF OFF OFF INDETERMINADA*
GND X X PISCANDO PULSANTE
* Inclui condio aberta ou flutuante

FIGURA 4.34Uma ponta de prova lgica usada para monitorar o nvel lgico ativo no pino do CI ou
em qualquer outro ponto acessvel do circuito lgico.

Tocci.indb 135 10/05/2011 18:15:17


136 Sistemas digitais princpios e aplicaes

ponto do circuito em teste est aberto ou flutuando, ou seja, sem conexo com a fonte de tenso. Esse tipo de ponta de
prova tambm possui um LED amarelo para indicar a presena de um trem de pulsos. Quaisquer transies (BAIXO para
ALTO ou ALTO para BAIXO) faro com que o LED amarelo pisque por uma frao de segundo e depois se apague. Se as
transies estiverem ocorrendo com frequncia, o LED continuar a piscar em torno de 3 Hz. Observando os LEDs verde e
vermelho junto com o amarelo que est piscando, possvel perceber se o sinal est preponderantemente ALTO ou BAIXO.

4.11 FALHAS INTERNAS DOS CIs DIGITAIS


As falhas internas mais comuns dos CIs digitais so:
1. Mau funcionamento do circuito interno do CI.
2. Entradas ou sadas curto-circuitadas para GND ou VCC.
3. Entradas ou sadas abertas.
4. Curto-circuito entre dois pinos (exceto GND ou VCC).
Descreveremos agora cada um desses tipos de falhas.

Mau funcionamento do circuito interno do CI


Esse problema causado, em geral, quando um dos componentes internos est danificado ou operando fora das es-
pecificaes. Quando isso acontece, as sadas do CI no respondem adequadamente s entradas. No h como prever qual
o comportamento da sada, porque depende de qual componente interno foi danificado. Um exemplo poderia ser um
curto-circuito entre a base e o emissor do transistor Q4 ou um valor de resistncia extremamente alto para R2 no INVERSOR
TTL na Figura 4.30(a). Esse tipo de falha interna ao CI no to comum quanto os outros trs tipos.

Entradas curto-circuitadas internamente com GND ou com a fonte de alimentao


Esse tipo de falha interna faz com que a entrada do CI fique permanentemente no estado BAIXO ou ALTO. A Figura
4.35(a) mostra o pino 2 de uma porta NAND em curto com o GND internamente ao CI. Isso faz com que o pino 2 esteja
sempre no estado BAIXO. Se nesse pino for conectado o sinal lgico B, esse sinal estar em curto com GND. Assim, esse
tipo de defeito afetar o dispositivo que estiver gerando o sinal B.

Curto-circuito
+5 V +5 V
interno
14 14
1
A 3 X A 3 X
1
2
B B
2
7
Curto-circuito
interno
(a) (b)

+5 V +5 V Curto-circuito
interno
14 14
1 1
A 3 X A 3 X
2 2
B B
7 7
Curto-circuito
interno
(c) (d)

FIGURA 4.35(a) Entrada do CI curto-circuitada internamente com GND; (b) entrada do CI curto-circuitada internamente com a fonte de
alimentao. Esses dois tipos de falhas foram a entrada de sinal no pino em curto a permanecer no mesmo estado; (c) sada do CI
curto-circuitada internamente com GND; (d) sada do CI curto-circuitada internamente com a fonte de alimentao. Esses dois tipos
de falhas no afetam as entradas do CI.

Tocci.indb 136 10/05/2011 18:15:18


Captulo 4 Circuitos lgicos combinacionais 137

De maneira similar, um pino de entrada de um CI pode estar em curto internamente com +5 V, conforme mostrado
na Figura 4.35(b). Isso far com que o pino permanea no estado ALTO. Se nesse pino de entrada for colocado um sinal
A, esse sinal estar em curto com +5 V.

Sadas curto-circuitadas internamente com GND ou com a fonte de alimentao


Esse tipo de falha interna ao CI faz com que o pino de sada permanea no estado BAIXO ou ALTO. A Figura 4.35(c)
mostra o pino 3 da porta NAND em curto internamente com o GND do CI. Essa sada permanece em nvel BAIXO e
no responder s condies aplicadas aos pinos de entrada 1 e 2; em outras palavras, as entradas lgicas A e B no tero
efeito sobre a sada X.
O pino de sada de um CI tambm pode estar em curto com +5 V internamente, conforme mostrado na Figura 4.35(d).
Isso fora o pino 3 de sada a permanecer em nvel ALTO, sem levar em considerao o estado dos sinais nos pinos de
entrada. Observe que esse tipo de falha no afeta os sinais lgicos nas entradas do CI.

Exemplo 4.24

Veja o circuito da Figura 4.36. Um tcnico usa uma ponta de prova lgica para determinar as condies em vrios pinos
do CI. Os resultados so registrados na tabela que est na figura. Analise-os e determine se o circuito est funcionando
adequadamente. Caso no esteja, indique alguns dos provveis defeitos.

+5 V +5 V
Pino Condio
14 14 Z1-3 Pulsante
3 4 1
A Z1 Z1-4 BAIXO
3 X
Z2 Z2-1 BAIXO
7 2
B Z2-2 ALTO
Z2-3 ALTO
7

FIGURA 4.36 Exemplo 4.24.

Soluo
O pino 4 de sada do INVERSOR deveria se mostrar pulsante, visto que a entrada desse INVERSOR, pulsante. Entretanto,
o resultado registrado mostra que o pino 4 est permanentemente em nvel BAIXO. Como esse pino est conectado ao
pino 1 de Z2, a sada da NAND nvel ALTO. A partir da discusso anterior, podemos relacionar trs possveis defeitos
que poderiam produzir esse tipo de operao.
Primeiro, pode existir um componente defeituoso internamente ao INVERSOR, que impede que ele responda adequa-
damente ao sinal de entrada. Segundo, o pino 4 do INVERSOR pode estar em curto com GND internamente ao CI Z1,
por isso mantm esse pino em nvel BAIXO. Terceiro, o pino 1 de Z2 pode estar em curto com GND internamente ao CI
Z2. Isso evitaria a mudana na sada do INVERSOR.
Alm desses possveis defeitos, pode haver curtos externos com GND em qualquer ponto da conexo entre o pino 4 de
Z1 e o pino 1 de Z2. Veremos como isolar a falha real na Seo 4.13.

Circuito aberto nas entradas ou sadas


Algumas vezes, o fio condutor que conecta o pino do CI ao circuito interno se rompe, gerando o que chamamos de
circuito aberto. A Figura 4.37 mostra essa situao em uma entrada (pino 13) e em uma sada (pino 6). Se um sinal for
aplicado no pino 13, ele no alcanar a entrada da porta NAND no 1. Assim, esse sinal no ter efeito sobre a sada da
porta NAND no 1. A entrada da porta estar no estado flutuante. Conforme mencionado antes, os dispositivos TTL res-
pondem s entradas flutuantes como nvel lgico 1, e os dispositivos CMOS respondem de modo instvel, podendo ainda
ser danificados devido ao superaquecimento.
Na sada da porta NAND 4, existe um circuito aberto que impede que o sinal citado anteriormente chegue ao pino 6;
assim sendo, no h tenso estvel presente nesse pino. Se ele for conectado a uma entrada de outro CI, causar flutuao
nessa entrada.

Tocci.indb 137 10/05/2011 18:15:18


138 Sistemas digitais princpios e aplicaes

14 13 12 11 10 9 8
VCC

Aberto 1 2

74LS00

3 4
Aberto

GND
1 2 3 4 5 6 7

FIGURA 4.37Um CI com uma entrada aberta internamente no responder aos sinais aplicados nos pinos de entrada. Uma sada aberta
internamente produzir uma tenso imprevisvel no pino de sada.

Exemplo 4.25

O que uma ponta de prova lgica indicaria nos pinos 13 e 6 do CI mostrado na Figura 4.37?
Soluo
No pino 13, a ponta de prova lgica indicar o nvel lgico do sinal externo conectado ao pino 13 (que no mostrado no
diagrama). No pino 6, a ponta de prova lgica no mostrar indicao luminosa, tpica de um nvel lgico indeterminado,
visto que o nvel lgico na sada da NAND no chega ao pino 6.

Exemplo 4.26

Observe o circuito da Figura 4.38 e a tabela que registra as indicaes da ponta de prova lgica. Quais so os possveis
defeitos que poderiam gerar os resultados registrados na tabela? Considere que os CIs sejam da famlia TTL.

3 4 1 Pino Condio
A Z1
3 Z1-3 ALTO
Z2 X
2 Z1-4 BAIXO
Z2-1 BAIXO
B Z2-2 Pulsante
Z2-3 Pulsante
Observao:
VCC e conexes GND
no so mostrados.

FIGURA 4.38 Exemplo 4.26.

Soluo
Uma anlise dos resultados registrados na tabela indica que o INVERSOR parece funcionar adequadamente, mas a sada
da porta NAND no est de acordo com as entradas. A sada da NAND deveria ser nvel ALTO, uma vez que o pino 1
de entrada est em nvel BAIXO. Esse nvel BAIXO evitaria que a porta NAND respondesse aos pulsos no pino 2.
provvel que esse nvel BAIXO no esteja chegando ao circuito interno da porta NAND, devido a uma ruptura interna.
Como o CI TTL, esse circuito aberto produz o mesmo efeito que um nvel ALTO no pino 1. Se o CI fosse CMOS, o
circuito aberto internamente no pino 1 poderia produzir um nvel indeterminado na sada, e um possvel superaquecimento
e destruio do chip.
A partir do que foi mencionado anteriormente a respeito de entradas TTL em aberto, voc poderia esperar que a tenso
no pino 1 de Z2 estivesse entre 1,4 e 1,8 V e fosse indicada como nvel indeterminado pela ponta de prova lgica. Isso
aconteceria se o circuito aberto fosse externo ao chip NAND. No h circuito aberto entre o pino 4 de Z1 e o pino 1 de
Z2, portanto a tenso no pino 4 de Z1 alcana o pino 1 de Z2; logo, o circuito est aberto dentro do chip NAND.

Tocci.indb 138 10/05/2011 18:15:18


Captulo 4 Circuitos lgicos combinacionais 139

Curto-circuito entre dois pinos


Um curto-circuito interno entre dois pinos de um CI far com que os sinais lgicos dos dois pinos sejam sempre
idnticos. Sempre que dois sinais, supostamente diferentes, mostram as mesmas variaes nos nveis lgicos, existe grande
possibilidade de que estejam em curto.
Considere o circuito mostrado na Figura 4.39, no qual os pinos 5 e 6 da porta NOR esto em curto internamente. O
curto faz com que os pinos de sada dos dois INVERSORES sejam conectados juntos, de modo que os sinais no pino 2 de
Z1 e no pino 4 de Z1 sejam idnticos, ainda que os dois sinais de entrada dos INVERSORES tentem gerar sadas diferen-
tes. Para ilustrar, considere a forma de onda de entrada mostrada no diagrama. Embora as de entrada sejam diferentes, as
formas de onda nas sadas Z1-2 e Z1-4 so as mesmas.
Durante o intervalo de t1 a t2, os dois INVERSORES tm entrada em nvel ALTO e tentam gerar sada em nvel
BAIXO, de maneira que, por estarem em curto, isso no faz diferena. Durante o intervalo de t4 a t5, os dois INVERSO-
RES tm nvel BAIXO nas entradas e tentam gerar sadas em nvel ALTO, de maneira que, por estarem em curto, isso
no afeta o resultado. Entretanto, durante os intervalos de t2 a t3 e de t3 a t4, um INVERSOR tenta gerar sada em nvel
ALTO, enquanto outro tenta gerar sada em nvel BAIXO. Isso denominado conteno de sinal, porque os dois sinais
disputam. Quando isso acontece, o nvel de tenso efetivo que aparece nas sadas em curto depende do circuito interno do
CI. Para dispositivos TTL, seria normalmente uma tenso na faixa do nvel lgico 0 (ou seja, prxima de 0,8 V), embora
essa tenso ainda possa estar na faixa de nvel indeterminado. Para a maioria dos dispositivos CMOS, essa tenso estaria
na faixa de nvel indeterminado.
Sempre que voc vir uma forma de onda como os sinais Z1-2 e Z1-4 mostrados na Figura 4.39, com trs diferentes
nveis de tenso, deve suspeitar que duas sadas podem estar em curto.

1 2 4V...
A Z1
5 Z1-1
4 0V...
6 Z2 X

3 4 4V...
B Z1 Z1-3
Curto-circuito 0V...
interno
...4V
Z1-2 ?
e
Z1-4 0V...

t1 t2 t3 t4 t5

FIGURA 4.39Quando dois pinos de entrada so colocados em curto internamente, os sinais desses dois pinos so forados a serem idnticos,
resultando normalmente em um sinal com trs nveis de tenso distintos.

Questes para reviso

1. Relacione os diferentes tipos de defeitos internos de um CI digital.


2. Que defeito interno de um CI pode gerar um sinal que apresenta trs diferentes nveis de tenso?
3. Qual seria a indicao de uma ponta de prova lgica em Z1-2 e Z1-4 na Figura 4.39 se A = 0 e B = 1?
4. O que conteno de sinal?

4.12 FALHAS EXTERNAS


Vimos como reconhecer defeitos de diversas falhas internas em CIs digitais. Um maior nmero de defeitos pode
acontecer externamente aos CIs; descreveremos os mais comuns nesta seo.

Linhas de sinal abertas


Essa categoria inclui qualquer tipo de falha que produz ruptura ou descontinuidade eltrica, tal que um nvel de tenso
ou sinal seja impedido de passar de um ponto para outro. Algumas das causas de linhas de sinal abertas so:

Tocci.indb 139 10/05/2011 18:15:18


140 Sistemas digitais princpios e aplicaes

1. Fio interrompido.
2. Conexo com solda fria; conexo de wire-wrap folgada.
3. Fissuras ou cortes na placa de circuito impresso (alguns so to pequenos que so difceis de ver sem o auxlio de
uma lente de aumento).
4. Pino do CI dobrado ou quebrado.
5. Defeito no soquete do CI, de modo que o pino do CI no faz bom contato eltrico com o soquete.
Esses tipos de falhas em circuitos podem frequentemente ser detectadas com uma inspeo visual cuidadosa e, pos-
teriormente, desconectando o circuito da fonte de alimentao, para verificar continuidade (ou seja, verificar os caminhos
de baixa resistncia eltrica) com um ohmmetro entre os dois pontos do circuito.

Exemplo 4.27

Considere o circuito CMOS mostrado na Figura 4.40 e a tabela com as indicaes de uma ponta de prova lgica. Qual
o defeito mais provvel do circuito?
Soluo
O nvel indeterminado na sada da porta NOR provavelmente devido ao nvel indeterminado no pino 2 de entrada.
Como h um nvel BAIXO em Z1-6, tambm deveria estar em Z2-2. Obviamente, o nvel BAIXO de Z1-6 no chegou
em Z2-2, devendo existir um circuito aberto no caminho do sinal entre esses dois pontos. O ponto em que o circuito
est aberto pode ser determinado com a ponta de prova lgica comeando por Z1-6 e percorrendo o caminho do sinal,
nvel BAIXO, na direo de Z2-2, at o ponto em que o nvel, indicado pela ponta de prova, mude para indeterminado.

1
A Pino Condio
3 3
2 Z1 1 Z1-1 Pulsante
B 2 Z2 X
Z1-2 ALTO
Z1-3 Pulsante
4 Z1-4 BAIXO
C 6 Z1-5 Pulsante
Z1
5 Z1-6 BAIXO
D Z2-3 Pulsante
Todos os CIs
Z2-2 Indeterminado
so CMOS
Z2-1 Indeterminado
Z1: 74HC08
Z2: 74HC02

FIGURA 4.40 Exemplo 4.27.

Linhas de sinal em curto


Esse tipo de falha apresenta o mesmo efeito que um curto entre pinos do CI. Essa falha faz com que dois sinais sejam
exatamente iguais (conteno de sinal). Uma linha de sinal pode estar em curto com GND ou VCC, em vez de outra linha
de sinal. Nesse caso, o sinal ser forado para o estado BAIXO ou ALTO. As principais causas para curtos inesperados
entre dois pontos de um circuito so:
1. Conexes malfeitas. Um exemplo disso a retirada de uma parte demasiadamente grande da isolao de fios muito
prximos entre si.
2. Pontes de solda. Respingos de solda que colocam em curto dois ou mais pontos. Normalmente ocorre entre pontos
que estejam muito prximos entre si, tais como os pinos de um CI.
3. Corroso incompleta. Um par de trilhas adjacentes em uma placa de circuito impresso no totalmente separado
no processo de corroso.
Assim, uma inspeo visual cuidadosa pode possibilitar a descoberta desses tipos de falhas e uma verificao com
ohmmetro pode indicar se dois pontos de um circuito esto em curto.

Falha na fonte de alimentao


Todos os sistemas digitais tm uma ou mais fontes de alimentao CC que geram as tenses VCC e VDD de que os chips
precisam. Uma fonte de alimentao danificada ou em sobrecarga (com solicitao de corrente maior do que ela pode
fornecer) provocar tenso de alimentao com regulao inadequada para os CIs, fazendo com que eles no funcionem
ou funcionem de forma instvel.

Tocci.indb 140 10/05/2011 18:15:19


Captulo 4 Circuitos lgicos combinacionais 141

Uma fonte de alimentao pode perder a regulao devido a uma falha em seu circuito interno, ou por estar sendo
solicitada a fornecer mais corrente que aquele valor para a qual foi projetada. Isso pode acontecer se um chip ou um com-
ponente tiver um defeito que faz com que absorva muito mais corrente que o normal.
Uma boa prtica verificar os nveis de tenso de cada fonte de alimentao do sistema, para saber se esto dentro
das faixas especificadas. Tambm uma boa ideia medir as tenses das fontes de alimentao com osciloscpio, para
verificar se no h quantidade significativa de ripple (ondulao) sobre a tenso CC e se os nveis de tenso permanecem
regulados durante o funcionamento do sistema.
Um dos sinais mais comuns de defeito na fonte de alimentao um ou mais CIs operando de modo instvel ou
simplesmente no funcionando. Alguns CIs so mais tolerantes s variaes de tenso da fonte de alimentao, enquanto
outros no so. Voc deve sempre testar os nveis de tenso de alimentao e GND para cada CI que apresenta funciona-
mento incorreto.

Carregamento da sada
Quando um CI digital tem a sada conectada a diversas entradas de CIs, sua capacidade de fornecimento de corrente
de sada pode ser excedida e a tenso de sada pode passar para a faixa de nvel indeterminado. Esse efeito denominado
carregamento do sinal de sada (o que acontece, na realidade, uma sobrecarga do sinal de sada), ocorrendo, em geral,
devido a um projeto malfeito ou por conexes incorretas.

Questes para reviso

1. Quais so os tipos mais comuns de falhas externas?


2. Relacione algumas das causas de circuitos abertos pelos quais trafegam sinais.
3. Quais so os sintomas provocados por uma falha na fonte de alimentao?
4. Como o carregamento afeta o nvel de tenso na sada de um CI?

4.13 ESTUDO DE UM CASO DE ANLISE DE DEFEITO


O exemplo a seguir ilustra o processo envolvido na anlise de defeito de circuitos digitais. Embora o exemplo apresente
falha em um circuito lgico combinacional simples, o raciocnio e os procedimentos de anlise de defeito usados podem
ser aplicados nos circuitos digitais mais complexos, que encontraremos nos captulos subsequentes.

Exemplo 4.28

Considere o circuito da Figura 4.41. Espera-se que a sada Y seja nvel ALTO para as seguintes condies:
1. A = 1, B = 0, independentemente do nvel lgico em C
2. A = 0, B = 1, C = 1
Voc deve verificar isso por conta prpria.
Quando o circuito testado, o tcnico observa que a sada Y vai para nvel ALTO sempre que A for nvel ALTO ou C
for nvel ALTO, independentemente do nvel em B. O tcnico faz as medies com uma ponta de prova lgica para a
condio em que A = B = 0, C = 1 e as registra, conforme mostrado na Figura 4.41.
Analise a tabela da figura e relacione as causas possveis para o mau funcionamento. Ento, siga o procedimento passo
a passo para determinar a falha.
Soluo
Todas as sadas das portas NAND esto corretas, em funo dos nveis presentes em suas entradas. A porta XOR, en-
tretanto, deveria gerar nvel BAIXO no pino de sada 3, visto que suas duas entradas esto em nvel BAIXO. A tabela
mostra que Z1-3 est permanentemente em nvel ALTO, mesmo que suas entradas indiquem que devesse estar em nvel
BAIXO. Existem algumas possveis causas para isso:
1. Uma falha em um componente interno de Z1, que evita que sua sada passe para o nvel BAIXO.
2. Um curto externo com VCC em qualquer ponto ao longo dos condutores conectados ao ponto X (linha destacada no
diagrama).
3. Curto interno do pino 3 de Z1 com VCC.
4. Curto interno do pino 5 de Z2 com VCC.
5. Curto interno do pino 13 de Z2 com VCC.

Tocci.indb 141 10/05/2011 18:15:19


142 Sistemas digitais princpios e aplicaes

+5 V
4
14
1 6 10
A X Z2
3 5 8
Z1 9 Z2 Y
B
2 +5 V
7
14
13
11 Pino Condio
12 Z2
C Z1-1 BAIXA
7 Z1-2 BAIXA
Z1-3 ALTA
Z2-4 BAIXA
Z2-5 ALTA
Z2-6,10 ALTA
CIs so TTL Z2-13 ALTA
Z1: 74LS86 Z2-12 ALTA
Z2: 74LS00 Z2-9,11 BAIXA
Z2-8 ALTA

FIGURA 4.41 Exemplo 4.28.

Todas essas possibilidades, exceto a primeira, descrevem um curto do ponto X (e de qualquer pino do CI conectado a
ele) com VCC.
O procedimento a seguir pode ser usado para identificar o defeito. Esse no o nico possvel e, conforme mencionado
anteriormente, o procedimento de anlise de defeito usado por um tcnico depende muito dos equipamentos de teste
disponveis.
1. Verifique os nveis de tenso em VCC e GND nos pinos apropriados de Z1. Embora seja improvvel que a ausncia de
um desses nveis faa com que Z1-3 permanea em nvel ALTO, uma boa ideia verificar em qualquer CI que esteja
gerando uma sada incorreta.
2. Desligue a fonte de alimentao do circuito e use um ohmmetro para verificar a existncia de um curto (resistncia
menor que 1 ) entre o ponto X e qualquer ponto conectado a VCC (tal como Z1-14 ou Z2-14). Se o ohmmetro no
indicar existncia de curto, as ltimas quatro possibilidades da nossa lista podem ser eliminadas. Isso significa que
bem provvel que Z1 tenha um defeito interno e deva ser substitudo.
3. Se no passo 2 for identificado curto entre o ponto X e VCC, faa uma inspeo visual na placa de circuito procurando
por pontes de solda, resduos de cobre no corrodo, fios desencapados em contato e qualquer outra causa possvel de
um curto externo com VCC. Um lugar provvel para se encontrar uma ponte de solda seria entre os pinos adjacentes
13 e 14 de Z2. O pino 14 est conectado em VCC e o pino 13, ao ponto X. Se for encontrado curto externo, remova-o
e mea com um ohmmetro, para verificar se o ponto X no est mais em curto com VCC.
4. Se o passo 3 no revelar curto externo, as trs possibilidades que restam so curtos internos com VCC em Z1-3, Z2-13
ou Z2-5. Um desses est colocando o ponto X em curto com VCC.
Para determinar qual dos pinos desses CIs o problema, devemos desconectar cada um deles do ponto X, um de cada
vez, e verificar novamente a existncia de curto com VCC aps cada desconexo. Quando o pino que estiver em curto com
VCC for desconectado, o ponto X no estar mais em curto com VCC.
O processo de desconexo de cada pino suspeito do ponto X pode ser fcil, dependendo de como o circuito foi montado.
Se os CIs estiverem em soquetes, tudo o que voc precisa fazer retirar o CI da, dobrar para fora o pino suspeito e reco-
locar o CI no soquete. Se o CI estiver soldado na placa de circuito impresso, voc deve cortar a trilha que est conectada
ao pino e consert-la, quando tiver terminado o teste.

A falha mostrada no Exemplo 4.28, embora simples, indica o tipo de raciocnio que um tcnico de manuteno tem
de empregar para identificar um defeito. Voc ter a oportunidade de desenvolver sua habilidade em anlise de defeito
resolvendo os problemas identificados pela letra T no final deste captulo.

Tocci.indb 142 10/05/2011 18:15:19


Captulo 4 Circuitos lgicos combinacionais 143

4.14 DISPOSITIVOS LGICOS PROGRAMVEIS1


Nas sees anteriores, apresentamos brevemente a classe de CIs conhecida como dispositivos lgicos programveis. No
Captulo 3, apresentamos a descrio do funcionamento de um circuito por meio de linguagem de descrio de hardware.
Nesta seo, trataremos desses assuntos com mais profundidade e prepararemos o uso das ferramentas disponveis para
desenvolver e implementar sistemas digitais usando PLDs. claro que impossvel entender todos os detalhes de como
um PLD funciona antes de absorver os fundamentos dos circuitos digitais. Enquanto examinamos os novos conceitos,
ampliaremos o conhecimento sobre PLDs e mtodos de programao. O material aqui apresentado permite que todos os
que no estejam interessados em PLDs pulem essas sees, sem prejuzo da continuidade do estudo.
Vamos rever o processo j estudado de projetar circuitos lgicos combinacionais. As entradas dos dispositivos so
identificadas e designadas por um nome algbrico como A, B, C ou LOAD, SHIFT, CLOCK. Da mesma maneira, as
sadas dos dispositivos recebem nomes como X, Z ou CLOCK_OUT, SHIFT_ OUT. Ento, uma tabela-verdade cons-
truda de modo a conter todas as possveis combinaes de entrada, e os estados requeridos para as sadas em funo de
cada condio de entrada. A tabela-verdade uma maneira de descrever como o circuito opera. Outras so as expresses
booleanas. A partir desse ponto, o projetista deve encontrar a relao algbrica simplificada e selecionar os CIs digitais a
serem interligados, de forma a implementar o circuito. Voc j deve ter verificado, experimentalmente, que esses ltimos
passos so entediantes, consomem tempo e so propensos a erros.
Os dispositivos de lgica programvel permitem que a maioria dessas etapas seja realizada por um computador com
software de desenvolvimento para PLD. O uso de lgica programvel melhora a eficincia do projeto e o processo de
desenvolvimento. Assim, a maioria dos sistemas digitais modernos implementada desse modo. A tarefa do projetista de
circuitos identificar entradas e sadas, especificar a relao lgica da maneira mais conveniente e selecionar o dispositivo
programvel capaz de implementar o circuito com o menor custo. O conceito que est por trs dos dispositivos lgicos
programveis simples: coloque muitas portas lgicas em um nico CI e controle eletronicamente as conexes entre elas.

Hardware de um PLD
No Captulo 3, dissemos que muitos circuitos digitais hoje em dia so implementados por dispositivos lgicos pro-
gramveis (PLDs). Tais dispositivos so configurados eletronicamente, e seus circuitos internos tambm so conectados
eletronicamente para formarem um circuito lgico. Esses circuitos programveis podem ser pensados como milhares de
conexes que esto conectadas (1) ou no (0). cansativo configurar esses dispositivos manualmente colocando 1s e 0s em
uma rede, ento, a prxima pergunta lgica : Como controlar as portas de interconexo em um PLD eletronicamente?.
Um mtodo comum para isso usar uma matriz de comutao ou chaveamento. Consulte a Figura 3.44, na qual esse
conceito foi apresentado. Uma matriz apenas uma rede de condutores (fios) dispostos em linhas e colunas. Sinais de
entrada so conectados s colunas da matriz, e as sadas, s linhas da matriz. Em cada interseco de linha e coluna, h
uma chave que pode conectar eletricamente aquela linha quela coluna. As chaves podem ser mecnicas, fusveis, eletro-
magnticas (rels) ou transistores. Essa a estrutura geral usada em muitas aplicaes e ser explorada com mais detalhes,
quando estudarmos dispositivos de memria, no Captulo 12.
Os PLDs tambm usam uma matriz de comutao que costuma ser chamada de matriz programvel. Decidindo quais
interseces so conectadas e quais no so, podemos programar o modo como as entradas so conectadas s sadas da
matriz. Na Figura 4.42, uma matriz programvel usada para selecionar as entradas para cada porta AND. Observe que,
nessa matriz simples, podemos produzir qualquer combinao de produto lgico entre as variveis A, B em qualquer das
sadas de porta AND. Uma matriz, ou matriz programvel, como a mostrada na figura, tambm pode ser usada para conectar
as sadas AND s portas OR. Os detalhes das vrias arquiteturas de PLD sero estudados no Captulo 13.

Programando um PLD
H duas maneiras de programar um CI PLD. Programar significa estabelecer as reais conexes na matriz, determi-
nar quais dessas conexes estaro abertas (0), e quais estaro fechadas (1). O primeiro mtodo envolve a remoo do CI
PLD de sua placa de circuito. Esse CI ento colocado em um equipamento especial, chamado programador, mostrado
na Figura 4.43. A maioria dos programadores modernos conectada a um computador pessoal, que executa um software
contendo bibliotecas de informaes sobre os diversos tipos de dispositivos programveis disponveis.
O software de programao chamado, por meio de um comando, e executado no PC para estabelecer uma comuni-
cao com o programador. Esse software permite ao usurio configurar o programador com os dados referentes ao tipo de
dispositivo a ser programado, verificar se o dispositivo est apagado, ler o estado de cada fusvel no dispositivo e prover
instrues para program-lo. Por fim, o dispositivo colocado em um soquete especial denominado soquete ZIF (zero

1 Todas as sees que tratam de PLDs podem ser saltadas sem prejudicar a continuidade.

Tocci.indb 143 10/05/2011 18:15:19


144 Sistemas digitais princpios e aplicaes

B
Fios de colunas

2 Produto 1

4 Produto 2

Fios de linhas
5

6 Produto 3

8 Produto 4

1 2 3 4

B B A A

FIGURA 4.42 Uma matriz programvel para selecionar entradas como termos produto.

FIGURA 4.43Um programador CI universal (direita) e um CI lgico (ISP) programado em sistema em uma placa de desenvolvimento (esquerda)
com interface por uma porta USB.

insertion force). Programadores universais, que podem programar qualquer tipo de dispositivo programvel, so dispo-
nibilizados por diversos fabricantes.
Felizmente, medida que os dispositivos programveis comearam a ser mais usados, os fabricantes perceberam
a necessidade de padronizar as pinagens e os mtodos de programao. Um dos resultados foi a criao do Conselho
Unificado de Engenharia de Dispositivos Eletrnicos (Joint Electronic Device Engineering Council JEDEC). Uma de
suas realizaes foi o JEDEC 3, formato padro para transferncia de dados de programao para PLDs, independente
do fabricante e do software de programao para PLD. As pinagens para vrios encapsulamentos de CI tambm foram
padronizadas, tornando os programadores universais menos complexos. Desse modo, so capazes de programar muitos
tipos de PLDs. O software, que permite ao projetista especificar uma configurao para um PLD, precisa apenas gerar um
arquivo de sada segundo o padro JEDEC, que pode ser carregado em qualquer programador de PLD compatvel e que
seja capaz de programar o tipo de PLD desejado.

Tocci.indb 144 10/05/2011 18:15:20


Captulo 4 Circuitos lgicos combinacionais 145

O mtodo mais comum, usado hoje em dia, conhecido como programao em sistema (ISP). Como o nome sugere,
o CI no precisa ser removido de seu circuito para o armazenamento da informao de programao. Uma interface padro
foi desenvolvida pelo Joint Test Action Group (JTAG), para permitir que os CIs fossem testados sem realmente conectar o
equipamento de teste a todos os pinos do CI, permitindo a programao interna. Quatro pinos sobre o CI so usados como
portal para armazenar dados e extrair informaes sobre a condio interna do CI. Muitos CIs, entre os quais PLDs e mi-
crocontroladores, so hoje fabricados, incluindo a interface JTAG. Um cabo de interface conecta os quatro pinos JTAG do
CI a uma porta de sada (tipicamente USB) de um computador pessoal. Um software executado no PC estabelece contato
com o CI e carrega a informao no formato adequado.

Software de desenvolvimento
Estudamos vrios mtodos de descrio de circuitos lgicos, inclusive captura esquemtica, equaes lgicas, tabelas-
-verdade e HDL. Descrevemos, tambm, os principais mtodos de armazenar 1s e 0s em um CI PLD, para conectar os
circuitos lgicos da forma desejada. O maior desafio para obter um PLD programado converter qualquer forma de descrio
em uma matriz de 1s e 0s. Felizmente, essa tarefa efetuada com facilidade por um computador rodando o software de
desenvolvimento, ao qual iremos nos referir e que utilizaremos nos exemplos, produzido pela Altera. Esse software permite
que o projetista fornea uma descrio de circuito em quaisquer das formas que discutimos: arquivos de projeto grfico
(esquemas), AHDL e VHDL. Permite, tambm, o uso de outro HDL, chamado Verilog, e a opo de descrever o circuito
com diagramas de tempo. Blocos de circuito descritos por quaisquer desses mtodos tambm podem ser conectados para
implementar um sistema digital muito maior, como mostra a Figura 4.44. Qualquer diagrama lgico encontrado neste
livro pode ser redesenhado com o uso de ferramentas de entrada esquemtica do software da Altera para criar um arquivo
de projeto grfico. No vamos nos concentrar em criao de projetos grficos neste livro, porque isso bastante fcil de
aprender em laboratrio. Vamos nos concentrar em exemplos de mtodos que nos permitiro usar HDL como um meio
alternativo de descrever um circuito. Para mais informaes sobre o software da Altera, veja <http://www.altera.com>.
A ideia de usar blocos de construo de circuitos chamada projeto hierrquico. Circuitos lgicos pequenos e teis
podem ser definidos da maneira que for mais conveniente (grfico, HDL, diagramas de tempo etc.) e, ento, combinados
com outros para formar uma grande seo de um projeto. Sees podem ser combinadas e conectadas a outras para formar
todo o sistema. A Figura 4.45 mostra a estrutura hierrquica de um aparelho de DVD em um diagrama de bloco. A caixa
externa engloba o sistema todo. As linhas tracejadas identificam cada subseo principal, e cada uma contm circuitos
individuais. Embora isso no seja mostrado nesse diagrama, cada circuito pode ser composto de blocos de construo
menores de circuitos digitais comuns. O software de desenvolvimento da Altera torna esse tipo de projeto, modular e
hierrquico, fcil de criar.

Sinais
intermedirios
Bloco esquemtico Bloco VHDL

ENTITY.........
Entradas
no sistema

ARCHITECTURE...

Sadas
do sistema
Bloco de sincronismo
Bloco AHDL

SUBDESIGN

BEGIN

END

FIGURA 4.44 Combinando blocos desenvolvidos usando mtodos de descrio diferentes.

Tocci.indb 145 10/05/2011 18:15:20


146 Sistemas digitais princpios e aplicaes

Mostrador

Controles Seo de controle


do usurio do sistema Seo de udio/vdeo
Sadas de
Filtro/amp
udio/vdeo

Seo de drive Seo de controle do laser


do spindle D/A

Ciclo de controle
de posio
Filtro digital

Detector
Decodificador de saltos Memria
de faixa de saltos

Ciclo de controle Decodificador Correo


Drive
da velocidade do trem de erros
do motor
do disco de pulsos de paridade

Motor

Pickup do laser

Drive do motor spindle


M

FIGURA 4.45 Diagrama de bloco de um aparelho de DVD.

Projeto e processo de desenvolvimento


Outra forma como a hierarquia de um sistema, como a de um aparelho de DVD, pode ser descrita mostrada na Figura
4.46. O nvel superior representa todo o sistema. feito de trs subsees, cada uma constituda dos circuitos menores.
Observe que esse diagrama no mostra como os sinais fluem pelo sistema, mas identifica claramente os vrios nveis da
estrutura hierrquica do projeto.
Esse tipo de diagrama recebeu o nome de um dos mtodos de projeto mais comuns: top-down (de cima para baixo).
Nesse mtodo, comea-se com a descrio geral de todo o sistema, como o box superior na Figura 4.46. Depois, so defi-
nidas as vrias subsees que constituem o sistema. Elas so, por sua vez, divididas em circuitos individuais conectados.
Cada um desses nveis hierrquicos possui entradas, sadas e comportamento definidos e pode ser testado individualmente,
antes de ser conectado aos outros.
Depois de definir os blocos de cima para baixo, o sistema construdo de baixo para cima. Nesse projeto de sistema,
cada bloco possui um arquivo de projeto que o descreve. Os blocos do nvel mais baixo devem ser projetados, abrindo-
-se um arquivo de projeto e escrevendo uma descrio de seu funcionamento. O bloco projetado , ento, compilado por
meio das ferramentas de desenvolvimento. O processo de compilao verifica se foram cometidos erros de sintaxe. Se a
sintaxe no estiver correta, o computador no conseguir traduzir sua descrio adequadamente. Depois que o projeto tiver

Tocci.indb 146 10/05/2011 18:15:21


Captulo 4 Circuitos lgicos combinacionais 147

Sistema do aparelho de DVD

Seo de drive do spindle Seo de controle do laser Seo de udio/vdeo

Ciclo
Ciclo Decodificador
Decodificador de controle Drive Detector
de controle do trem
de faixa da velocidade do motor de saltos
de posio de pulsos
do disco

Correo
Memria Filtro
de erros D/A Filtro/Amp
de saltos digital
de paridade

FIGURA 4.46 Quadro de hierarquia organizacional.

sido compilado sem erros, deve ser testado para verificar se est operando corretamente. Os sistemas de desenvolvimento
oferecem programas simuladores, que podem ser executados no PC, e simulam o modo como o circuito responde a entra-
das. O simulador um programa que calcula os estados lgicos de sada corretos, com base em uma descrio do circuito
lgico e das entradas atuais. Um conjunto de entradas hipotticas e suas correspondentes sadas corretas provam que o
bloco funciona como esperado. Essas entradas hipotticas costumam ser chamadas de vetores de teste. Testes rigorosos
durante a simulao aumentam bastante a probabilidade de confiabilidade de funcionamento final do sistema. A Figura
4.47 mostra o arquivo de simulao para o circuito descrito na Figura 3.13(a) do Captulo 3. As entradas a, b e c foram
fornecidas como vetores de teste, e a simulao produziu a sada y.
Quando o projetista estiver satisfeito com o funcionamento do projeto, este pode ser verificado programando-se
realmente um CI e testando. Em um PLD complexo, ele pode deixar o sistema de desenvolvimento atribuir pinos e depois
dispor a placa final do circuito de acordo com essa atribuio ou especificar os pinos para cada sinal usando os recursos
do software. Se o compilador atribuir os pinos, as atribuies podem ser encontradas no arquivo de relatrio ou no de
pin-out, que fornece detalhes sobre a implementao do projeto. Se o projetista especificar os pinos, importante saber
as restries e limitaes da arquitetura dos CIs. Esses detalhes sero vistos no Captulo 13. O fluxograma da Figura 4.48
resume o processo de projeto para o projeto de cada bloco.
Depois que todos os circuitos em uma subseo forem testados, podem ser combinados, e a subseo pode ser testada
seguindo o mesmo processo usado nos circuitos menores. Ento, as subsees so combinadas e o sistema testado. Essa
abordagem se presta muito bem a um tpico ambiente de projeto, em que uma equipe de pessoas trabalha em conjunto,
todos responsveis por seus prprios circuitos e sees que acabam compondo o sistema.

0.0 ns 1.0 ms 2.0 ms 3.0 ms 4.0 ms 5.0 ms 6.0 ms 7.0 ms 8.0 ms 9.0 ms 10 ms
Name Value

0 c 0
1 b 0
2 a 0
3 y 0

FIGURA 4.47 Uma simulao de tempo de um circuito descrito em HDL.

Tocci.indb 147 10/05/2011 18:15:21


148 Sistemas digitais princpios e aplicaes

INCIO

Projeto

Criar arquivo de projeto

Compilar

Editar o arquivo do projeto

S
Erros?

N
Simular
Identificar falha
no projeto

S
Problemas?

N
Criar arquivo de sada

Programar PLD

Defeitos? Teste em circuito

N S
Funciona? FIM

FIGURA 4.48 Fluxograma do ciclo de desenvolvimento de PLDs.

Questes para reviso

1. O que realmente programado em um PLD?


2. Que bits (colunas, linhas) na Figura 4.42 precisam ser conectados para fazer Produto 1 = AB?
3. Que bits (colunas, linhas) na Figura 4.42 precisam ser conectados para fazer Produto 3 = AB?

4.15 REPRESENTANDO DADOS EM HDL


Dados numricos podem ser representados de diversas maneiras. J estudamos o sistema de numerao hexadeci-
mal, como um modo conveniente de comunicar padres de bits. Naturalmente, preferimos usar o sistema de numerao
decimal,mas os computadores e sistemas digitais operam apenas com informao binria, como vimos em captulos
anteriores. Quando escrevemos em HDL, muitas vezes precisamos usar esses vrios formatos numricos, e o computador
precisa ser capaz de entender qual sistema de numerao estamos usando. At agora, usamos um nmero subscrito para
indicar o sistema de numerao. Por exemplo, 1012 era binrio, 10116, hexadecimal e 10110, decimal. Toda linguagem de
programao e o HDL possuem uma forma nica de identificar os diversos sistemas de numerao, geralmente com prefixo.
Na maioria das linguagens, um nmero sem prefixo indica um decimal. Quando lemos uma dessas designaes, devemos
encar-la como um smbolo, que representa um padro de bits. Esses valores numricos so chamados de escalares ou
literais. A Tabela 4.8 resume os mtodos de especificao de valores em binrio, hexa e decimal, para AHDL e VHDL.

Tocci.indb 148 10/05/2011 18:15:21


Captulo 4 Circuitos lgicos combinacionais 149

TABELA 4.8 Designando sistemas de numerao em HDL.


Sistema de numerao AHDL VHDL Padro do bit Equivalente decimal
Binrio B101 B101 101 5
Hexadecimal H101 X101 100000001 257
Decimal 101 101 1100101 101

Exemplo 4.29

Expresse os valores numricos do seguinte padro de bits em binrio, hexa e decimal, usando notao em AHDL e VHDL:
11001

Soluo
O binrio designado da mesma forma em AHDL e VHDL: B 11001.
Convertendo o binrio em hexa, temos 1916.
Em AHDL: H 19.
Em VHDL: X 19.
Convertendo o binrio em decimal, temos 2510.
O decimal designado da mesma forma em AHDL e VHDL: 25.

Matrizes de bits/vetores de bits


No Captulo 3, declaramos nomes para entradas e sadas de um circuito lgico bastante simples, definindo-os como
bits ou dgitos binrios nicos. E se quisssemos representar uma entrada, sada ou sinal composto de vrios bits? Em
HDL, devemos definir o tipo do sinal e seu intervalo de valores aceitveis.
Para entender os conceitos usados em HDL, vamos, primeiramente, conhecer algumas convenes para descrever
bits de palavras binrias em sistemas digitais comuns. Suponha que tenhamos um nmero de oito bits representando a
temperatura atual e que o nmero esteja entrando em nosso sistema digital, por meio de um port de entrada que denomi-
namos P1, como mostrado na Figura 4.49. Vamos nos referir aos bits individuais desse port, como P1 bit 0 para o menos
significativo at P1 bit 7 para o mais significativo.
Podemos tambm descrever esse port dizendo que se chama P1 e possui bits numerados de 7 a 0, em ordem descen-
dente. Os termos matriz de bits e vetor de bits costumam ser usados para descrever esse tipo de estrutura de dados. Isso
significa apenas que a estrutura geral de dados (port de oito bits) possui um nome (P1), e que cada elemento individual (bit)
possui um nico nmero ndice (0-7) para descrever a posio do bit (e, possivelmente, seu peso numrico) na estrutura
geral. As linguagens HDL e de programao de computador se beneficiam dessa notao. Por exemplo, o terceiro bit a
partir da direita designado como P1[2] e pode ser conectado a outro bit de sinal, por meio de um operador de atribuio.

(MSB) Conversor A/D (LSB)

Port de entrada P1[7] P1[6] P1[5] P1[4] P1[3] P1[2] P1[1] P1[0]
P1

FIGURA 4.49 Notao de matriz de bits.

Exemplo 4.30

Suponha que haja uma matriz de 8 bits chamada P1, como mostra a Figura 4.49, e outra de 4 bits chamada P5.
(a) Qual a designao de bit para o bit mais significativo de P1?
(b) Qual a designao de bit para o bit menos significativo de P5?
(c) Mencione uma expresso que faa com que o bit menos significativo de P5 se propague at o bit mais significativo
de P1.

Tocci.indb 149 10/05/2011 18:15:22


150 Sistemas digitais princpios e aplicaes

Soluo
(a) O nome do port P1, e o bit mais significativo o 7. A designao adequada para o bit 7 da P1 P1[7].
(b) O nome do port P5, e o bit menos significativo o 0. A designao adequada para o bit 0 da P5 P5[0].
(c) O bit menos significativo colocado do lado direito do operador de atribuio, e o mais significativo colocado do
lado esquerdo: P1[7] = P5[0];.

DECLARAES DE MATRIZ DE BITS EM AHDL


AHDL

Em AHDL, o port p1 da Figura 4.49 definido como um port de entrada de 8 bits; podemos nos referir
ao valor desse port usando qualquer sistema de numerao, como hexa, binrio, decimal etc. A sintaxe em
AHDL usa um nome para o vetor de bits seguido pelo intervalo dos ndices entre colchetes. Essa declarao
includa na seo SUBDESIGN. Por exemplo, para declarar um port de entrada de 8 bits chamado p1,
voc escreveria
p1 [7..0] :INPUT; define um port de entrada de 8 bits

Exemplo 4.31

Declare uma entrada de 4 bits chamada keypad em AHDL.


Soluo
keypad [3..0] :INPUT;
Variveis intermedirias tambm podem ser declaradas como vetores de bits. Como os bits nicos, so
declaradas logo aps I/O, em SUBDESIGN. Como exemplo, a temperatura de 8 bits no port p1 pode ser
atribuda (conectada) a um n chamado temp, da seguinte forma:
VARIABLE temp [7..0] :NODE;
BEGIN
temp[ ] = p1[ ];
END;
Observe que o port de entrada p1 tem os dados aplicados a ele e est orientando os fios de sinal cha-
mados temp. Pense no termo direita do sinal de igual, como a fonte dos dados, e o termo esquerda, como
o destino. Os colchetes vazios [ ] significam que cada um dos bits correspondentes nas duas matrizes esto
conectados. Bits individuais tambm podem ser conectados, especificando-se os bits dentro dos colchetes.
Por exemplo, para conectar apenas o bit menos significativo de p1 com o LSB de temp, a declarao seria
temp[0] = p1[0];.

DECLARAES DE VETORES DE BITS EM VHDL


VHDL

Em VHDL, o port p1 da Figura 4.49 definido como um port de entrada de 8 bits, e podemos nos
referir a seu valor apenas por meio de literais binrios. A sintaxe em VHDL usa um nome para o vetor de
bits seguido pelo modo (:IN), o tipo (BIT_VECTOR) e o intervalo dos ndices entre parnteses. Essa de-
clarao est includa na seo ENTITY. Por exemplo, para declarar um port de entrada de 8 bits chamada
p1, voc escreveria
PORT (p1 :IN BIT_VECTOR (7 DOWNTO 0);

Exemplo 4.32

Declare uma entrada de 4 bits chamada keypad em VHDL.


Soluo
PORT(keypad :IN BIT_VECTOR (3 DOWNTO 0);

Tocci.indb 150 10/05/2011 18:15:22


Captulo 4 Circuitos lgicos combinacionais 151

Sinais intermedirios tambm podem ser declarados como vetores de bits. Como os bits nicos, so
declarados dentro da definio de ARCHITECTURE. Como exemplo, a temperatura de 8 bits no port p1
pode ser atribuda (conectada) a um sinal chamado temp, da seguinte maneira:
SIGNAL temp :BIT_VECTOR (7 DOWNTO 0);
BEGIN
temp <= p1;
END;
Observe que o port de entrada p1 tem os dados aplicados a ela e est orientando os fios de sinal, denomi-
nados temp. Nenhum elemento do vetor de bits especificado, o que significa que todos os bits esto sendo
conectados. Bits individuais tambm podem ser conectados por atribuies de sinal e especificando-se os
nmeros de bits dentro dos parnteses. Por exemplo, para conectar apenas o bit menos significativo de p1
ao LSB de temp, a declarao seria temp(0) <= p1(0);.
O VHDL bastante especfico quanto a definies de cada tipo de dados. O tipo bit_vector descreve
uma matriz de bits individuais. Isso interpretado de modo diferente do que acontece com um nmero binrio
de 8 bits (chamado quantidade escalar), de tipo integer. Infelizmente, o VHDL no permite atribuir um valor
integer ao sinal BIT_VECTOR de forma direta. Os dados podem ser representados por quaisquer dos tipos
mostrados na Tabela 4.9, mas as atribuies de dados e outras operaes devem ser feitas entre objetos de
mesmo tipo. Por exemplo, o compilador no permitir que voc tome um nmero de um teclado, declarado
como integer, e conecte-o a quatro LEDs, declarados como sadas BIT_VECTOR. Observe na Tabela 4.9,
em Valores possveis, que objetos de dados individuais BIT e STD_LOGIC (isto , sinais, variveis, entra-
das e sadas) so designados por aspas simples, enquanto os valores atribudos aos tipos BIT_VECTOR e
STD_LOGIC_VECTOR so strings de valores de bits vlidos entre aspas duplas.

TABELA 4.9 Tipos de dados comuns em VHDL.


Tipos de dados Declarao (amostra) Valores possveis Uso
BIT y :OUT BIT; 0 1 y <= 0;
STD_LOGIC driver :STD_LOGIC 0 1 z x - driver <= z;
BIT_VECTOR bcd_data :BIT_VECTOR 0101 1001 0000 digit <= bcd_data;
(3DOWNTO 0);
STD_LOGIC_VECTOR dbus :STD_LOGIC_VECTOR 0Z1X IF rd = 0 THEN dbus <= zzzz;
(3 DOWNTO 0);
INTEGER SIGNAL z:INTEGER RANGE 32..2, 1,0,1,2 ...31 IF z 5 THEN ...
32 TO 31;

O VHDL tambm oferece alguns tipos de dados padronizados necessrios quando usamos funes lgi-
cas contidas nas bibliotecas. Como voc deve ter adivinhado, bibliotecas so apenas colees de pequenos
pedaos de cdigo VHDL que podem ser usados em suas descries de hardware para que no seja preciso
reinventar a roda. Essas bibliotecas oferecem funes convenientes, chamadas macrofunes ou maxplus2,
como muitos dos dispositivos do padro TTL descritos ao longo deste livro. Em vez de escrever uma nova
descrio de um conhecido dispositivo TTL, podemos simplesmente pegar sua macrofuno na biblioteca
e us-la em nosso sistema. bvio que preciso incluir e retirar sinais dessas macrofunes, e os tipos de
sinais em seu cdigo devem combinar com os tipos nas funes (que outra pessoa escreveu). Isso significa
que todos precisam usar os mesmos tipos de dados padro.
Quando o VHDL foi padronizado pelo IEEE, muitos tipos de dados foram criados ao mesmo tempo.
Os dois que usaremos neste livro so STD_LOGIC, que equivale ao tipo BIT, e STD_LOGIC_VECTOR,
que equivale a BIT_VECTOR. Como voc deve se lembrar, um tipo BIT pode ter apenas os valores 0 e 1.
Os tipos lgicos STD esto definidos na biblioteca IEEE e apresentam um espectro mais amplo de valores
possveis que seus equivalentes internos. Os valores possveis para um tipo STD_LOGIC ou para qualquer
elemento em um STD_LOGIC_VECTOR so fornecidos na Tabela 4.10. Os nomes dessas categorias faro
mais sentido depois que estudarmos as caractersticas dos circuitos lgicos no Captulo 8. Por enquanto,
mostraremos exemplos usando valores de apenas 1 e 0.

Tocci.indb 151 10/05/2011 18:15:22


152 Sistemas digitais princpios e aplicaes

TABELA 4.10 Valores STD_LOGIC.


1 Lgico 1 (exatamente como o tipo BIT)
0 Lgico 0 (exatamente como o tipo BIT)
Z Alta impedncia*
- Irrelevante (exatamente como voc usou nos mapas K)
U No inicializado
X Desconhecido
W Fraco, desconhecido
L Fraco 0
H Fraco 1
*Estudaremos lgica tristate (de trs estados) no Captulo 8.

Questes para reviso

1. Como voc declararia uma matriz de entrada de 6 bits chamada push_buttons em (a) AHDL ou (b) VHDL?
2. Que declarao voc usaria para retirar o MSB da matriz na Questo 1 e coloc-lo em um port de sada de bit nico
chamado z? Use (a) AHDL ou (b) VHDL.
3. Em VHDL, qual o tipo padro IEEE equivalente ao tipo BIT?
4. Em VHDL, qual o tipo padro IEEE equivalente ao tipo BIT_VECTOR?

4.16 TABELAS-VERDADE USANDO HDL


Aprendemos que a tabela-verdade outra forma de expressar o funcionamento de um bloco de circuito. Ela relaciona
a sada do circuito com qualquer combinao possvel de suas entradas. Como vimos na Seo 4.4, a tabela-verdade
o ponto de partida para um projetista definir como o circuito deve operar. Ento, uma expresso booleana derivada a
partir dessa tabela e simplificada por meio de mapas K ou lgebra booleana. Por fim, o circuito implementado a partir da
equao booleana final. No seria timo se pudssemos ir da tabela-verdade diretamente para o circuito final? Podemos
fazer exatamente isso se usarmos HDL na tabela-verdade.

TABELAS-VERDADE USANDO AHDL


AHDL

O cdigo na Figura 4.50 emprega AHDL para implementar um circuito e usa uma tabela-verdade para
descrever seu funcionamento. A tabela-verdade para esse projeto foi apresentada no Exemplo 4.7. O ponto
principal nesse exemplo o uso da palavra-chave TABLE em AHDL, que permite que o projetista especifi-
que o funcionamento do circuito, do mesmo modo que se preenche uma tabela-verdade. Na primeira linha
depois de TABLE, as variveis de entrada (a, b, c) so listadas exatamente como se cria um cabealho de
coluna em uma tabela-verdade. Incluindo as trs variveis binrias entre parnteses, dizemos ao compila-
dor que queremos usar esses bits como um grupo e nos referir a eles como um nmero binrio de 3 bits ou
padro de bits. Os valores especficos para esse padro esto listados abaixo do grupo e so chamados de
literais binrios. O operador especial (=>) usado em tabelas-verdade para separar as entradas da sada (y).
Na Figura 4.50, TABLE mostra a relao entre o cdigo HDL e uma tabela-verdade. Uma forma mais
comum de representar cabealhos de dados de entrada usar uma matriz de bits variveis para representar o
valor em a, b, c. Esse mtodo envolve uma declarao do vetor de bits na linha anterior a BEGIN, como em:
VARIABLE in_bits[2..0] :NODE;
Logo antes da palavra-chave TABLE, os bits de entrada podem ser atribudos matriz inbits[ ]:
in_bits[ ] = (a, b, c);
O agrupamento de trs bits independentes em ordem, como nesse exemplo, chamado de concatenao
e costuma ser feito para conectar bits individuais a um vetor de bits. O cabealho da tabela dos conjuntos
de bits de entrada pode ser representado por in_bits[ ], nesse caso. Observe que, ao listar as possveis
combinaes de entradas, temos vrias opes. Podemos criar um grupo de 1s e 0s entre parnteses, como

Tocci.indb 152 10/05/2011 18:15:22


Captulo 4 Circuitos lgicos combinacionais 153

mostrado na Figura 4.50, ou podemos representar o mesmo padro de bit, usando o nmero binrio, hexa
ou decimal equivalente. Cabe ao projetista decidir que formato mais adequado, dependendo do que as
variveis de entrada representam.

SUBDESIGN fig4_50
(
a,b,c :INPUT; --a mais significativo
y :OUTPUT; --define a sada do bloco
)
BEGIN
TABLE
(a,b,c) => y; --cabealhos das colunas
(0,0,0) => 0;
(0,0,1) => 0;
(0,1,0) => 0;
(0,1,1) => 1;
(1,0,0) => 0;
(1,0,1) => 1;
(1,1,0) => 1;
(1,1,1) => 1;
END TABLE;
END;

FIGURA 4.50 Arquivo de projeto em AHDL para a Figura 4.7.

TABELAS-VERDADE USANDO VHDL: ATRIBUIO DE SINAL SELECIONADA


VHDL

O cdigo na Figura 4.51 usa VHDL para implementar um circuito usando uma atribuio de sinal
selecionada para descrever seu funcionamento. Isso possibilita que o projetista especifique o funcionamento
do circuito, exatamente como quando se preenche uma tabela-verdade. A tabela-verdade para esse projeto
foi apresentada no Exemplo 4.7. O ponto mais importante desse exemplo o uso da declarao WITH sig-
nal_name SELECT em VHDL. Um ponto secundrio como colocar os dados em um formato que possa
ser usado de modo conveniente com a atribuio de sinal selecionada. Observe que as entradas so definidas
na declarao ENTITY como trs bits independentes a, b e c. Nada nessa declarao torna quaisquer desses
bits mais significativos do que outros. A ordem em que so listados no importa. Queremos comparar o
valor atual desses bits com cada uma das combinaes que poderiam estar presentes. Se desenharmos uma
tabela-verdade, decidiramos qual bit colocar esquerda (MSB) e qual colocar direita (LSB). Isso feito
em VHDL pela concatenao (conectando em ordem) das variveis de bits para formar um vetor de bits.
O operador de concatenao &. Um sinal declarado como um BIT_VECTOR para receber o conjunto
ordenado de bits de entrada, usado para comparar o valor de uma entrada com a sequncia literal entre aspas.
A sada (y) atribuda (<=) a um valor de bit (0 ou 1) WHEN (quando) in_bits contm o valor listado
entre aspas duplas.
O VHDL bastante rigoroso em relao a como atribuir e comparar objetos, como sinais, variveis,
constantes e literais. Uma sada y um BIT e, assim, a atribuio precisa ser de um valor de 0 ou 1. O
SINAL in_bits um BIT_VECTOR de 3 bits, portanto, precisa ser comparado com o valor de uma sequncia
literal de 3 bits. O VHDL no permite que in_bits seja comparado a um nmero hexa, como X 5, ou um
nmero decimal, como 3. Essas quantidades escalares s seriam vlidas em atribuies ou comparaes
com integers.

Tocci.indb 153 10/05/2011 18:15:22


154 Sistemas digitais princpios e aplicaes

ENTITY fig4_51 IS
PORT(
a,b,c :IN BIT; --a mais significativo
y :OUT BIT);
END fig4_51;

ARCHITECTURE truth OF fig4_51 IS


SIGNAL in_bits :BIT_VECTOR(2 DOWNTO 0);
BEGIN
in_bits <= a & b & c; --concatena bits de entrada em bit_vector
WITH in_bits SELECT
y <= '0' WHEN "000", --tabela-verdade
'0' WHEN "001",
'0' WHEN "010",
'1' WHEN "011",
'0' WHEN "100",
'1' WHEN "101",
'1' WHEN "110",
'1' WHEN "111";
END truth;

FIGURA 4.51 Arquivo de projeto em VHDL para o Exemplo 4.7.

Exemplo 4.33

Declare trs sinais em VHDL que sejam bits nicos chamados quente_demais, frio_demais e ideal. Combine
(concatene) esses trs bits em um sinal de 3 bits chamado temperatura, com quente esquerda e frio direita.
Soluo
1. Declare os sinais primeiro em Architecture.
SIGNAL quente_demais, frio_demais, ideal :BIT;
SIGNAL temperatura :BIT_VECTOR (2 DOWNTO 0);
2. Escreva declaraes de atribuio concorrentes entre BEGIN e END.
temperatura <= quente_demais & ideal & frio_demais;

Questes para reviso

1. Como voc concatenaria trs bits x, y e z em uma matriz de trs bits, chamada omega? Use AHDL ou VHDL.
2. Como as tabelas-verdade so implementadas em AHDL?
3. Como as tabelas-verdade so implementadas em VHDL?

4.17 ESTRUTURAS DE CONTROLE DE DECISO EM HDL


Nesta seo, estudaremos mtodos que permitiro dizer ao sistema digital como tomar decises lgicas, de maneira
semelhante a que tomamos em nosso dia a dia. No Captulo 3, aprendemos que declaraes de atribuio concorrentes
so avaliadas de modo que a ordem em que so escritas no tem efeito sobre o circuito que est sendo descrito. Quando
usamos estruturas de controle de deciso, a ordem em que fazemos as perguntas importa. Para resumir esse conceito,
nos termos usados na documentao do HDL, declaraes que podem ser escritas em qualquer sequncia so chamadas
concorrentes, e as que so avaliadas na sequncia em que so escritas, sequenciais. A sequncia de declaraes sequen-
ciais afeta o funcionamento do circuito.
Os exemplos que vimos at agora envolvem bits individuais. Muitos sistemas digitais requerem entradas que repre-
sentem um valor numrico. Consulte o Exemplo 4.8, em que o propsito do circuito lgico monitorar a tenso da bateria
com um conversor A/D. O valor digital representado por um nmero de 4 bits vindo do conversor A/D para o circuito

Tocci.indb 154 10/05/2011 18:15:22


Captulo 4 Circuitos lgicos combinacionais 155

lgico. Essas entradas no so variveis binrias independentes, mas quatro dgitos binrios de um nmero que representa
a tenso na bateria. Precisamos fornecer os dados do tipo correto para que sua utilizao como nmero seja possvel.

IF/ELSE
Tabelas-verdade so timas para listar todas as possveis combinaes de variveis independentes, mas h modos
melhores de lidar com dados numricos. Por exemplo, quando uma pessoa sai para ir escola ou para trabalhar de manh,
ela precisa tomar uma deciso lgica a respeito de usar ou no um casaco. Vamos supor que decida com base apenas na
temperatura do momento. Quantos de ns raciocinaramos da seguinte forma?
Vou por o casaco se a temperatura for 0.
Vou por o casaco se a temperatura for 1.
Vou por o casaco se a temperatura for 2.
Vou por o casaco se a temperatura for 15.
No vou por o casaco se a temperatura for 16.
No vou por o casaco se a temperatura for 17.
No vou por o casaco se a temperatura for 18.
No vou por o casaco se a temperatura for 39.
Esse mtodo similar ao modo como a tabela-verdade descreve a deciso. Para cada possvel entrada, ela decide qual
ser a sada. claro que, na verdade, decide assim:
Vou por o casaco se a temperatura for menos de 15 graus.
Caso contrrio, no vou por o casaco.
Uma linguagem HDL nos d a capacidade de descrever circuitos lgicos usando esse tipo de raciocnio. Primeiro,
precisamos descrever as entradas como um nmero dentro de determinado intervalo, e ento podemos escrever declaraes
que decidam o que fazer com as sadas, com base no valor do prximo nmero. Na maioria das linguagens de programao,
assim como nas HDLs, essas decises so tomadas por meio de uma estrutura de controle IF/THEN/ELSE. Sempre que
a deciso for entre fazer algo e no fazer nada, uma construo IF/THEN usada. A palavra-chave IF seguida por uma
declarao que verdadeira ou falsa. IF (se) isso for verdadeiro, THEN (ento) faa o que houver sido especificado. Na
eventualidade de a declarao ser falsa, no h ao. A Figura 4.52(a) mostra, graficamente, como essa deciso funciona.
O losango representa a deciso sendo tomada por meio da avaliao da declarao contida dentro dele. Todas as decises
tm dois resultados possveis: verdadeiro ou falso. Nesse exemplo, se a declarao for falsa, no h ao.
Em alguns casos, no o bastante apenas decidir agir ou no agir; precisamos escolher entre duas aes diferentes.
Por exemplo, em nossa analogia, se a pessoa j estiver de casaco ao decidir, ela no o tira. O uso da lgica IF/THEN
pressupe que ela no est usando casaco inicialmente.
Quando as decises implicam duas aes possveis, a estrutura de controle IF/THEN/ELSE usada, como mostra a
Figura 4.52(b). Mais uma vez, a declarao avaliada como verdadeira ou falsa. A diferena que, quando falsa, uma
ao diferente executada. Uma de duas aes precisa ocorrer com essa construo. Podemos express-la verbalmente
como: IF (se) a declarao for verdadeira, THEN (ento) faa isso. ELSE (seno), faa aquilo. Na analogia do casaco,
essa estrutura de controle funcionaria, esteja a pessoa usando casaco inicialmente ou no.
O Exemplo 4.8 mostra um circuito lgico que tem como entrada um valor numrico representando a tenso da bateria
monitorada por um conversor A/D. As entradas A, B, C, D so, na verdade, dgitos binrios em um nmero de 4 bits, sendo
A o MSB e D o LSB. A Figura 4.53 mostra o mesmo circuito com entradas rotuladas como um nmero de 4 bits chamado
valor_digital. A relao entre os bits a seguinte:

Est VERDADEIRO FALSO Est VERDADEIRO


muito frio muito frio
l fora l fora
THEN (ento) ELSE (seno) THEN (ento)
vista um casaco tire o casaco vista um casaco
FALSO

(a) (b)

FIGURA 4.52 Fluxo lgico das construes (a) IF/THEN e (b) IF/THEN/ELSE.

Tocci.indb 155 10/05/2011 18:15:23


156 Sistemas digitais princpios e aplicaes

Circuito lgico
Conversor A/D
(MSB) A Valor_digital3
B Valor_digital2 z
C Valor_digital1
(LSB) D Valor_digital0

FIGURA 4.53 Circuito lgico similar ao Exemplo 4.8.

A valor_digital[3] valor digital do bit 3 (MSB)


B valor_digital[2] valor digital do bit 2
C valor_digital[1] valor digital do bit 1
D valor_digital[0] valor digital do bit 0 (LSB)
A entrada pode ser tratada como um nmero decimal entre 0 e 15 se especificarmos o tipo correto da varivel de entrada.

IF/THEN/ELSE USANDO AHDL


AHDL

Em AHDL, as entradas podem ser especificadas como um nmero binrio composto de bits mltiplos
atribuindo-se um nome de varivel seguido por uma lista das posies de bits, como mostrado na Figura
4.54. O nome valor_digital, e as posies de bits vo de 3 at 0. Observe quo simples se torna o cdigo
usando esse mtodo junto com uma construo IF/ELSE. IF seguido por uma declarao que se refere ao
valor de toda a varivel de entrada de 4 bits e a compara com o nmero 6. claro que 6 uma forma decimal
de uma quantidade escalar e valor_digital[ ], na verdade, representa um nmero binrio. O compilador pode
interpretar nmeros em qualquer sistema, ento, ele cria um circuito lgico que compara o valor binrio
de valor_digital com o nmero binrio para 6 e decide se a declarao verdadeira ou falsa. Se for verda-
deira, THEN a prxima declarao (z =VCC) usada para atribuir um valor a z. Observe que, em AHDL,
precisamos usar VCC para um lgico 1 e GND para um lgico 0 quando atribumos um nvel lgico a um
nico bit. Quando valor_digital for 6 ou menos, ele vem aps a declarao de ELSE (z = GND). END IF;
encerra a estrutura de controle.

SUBDESIGN fig4_54
(
valor_digital[3..0] :INPUT; -- define entradas no bloco
z :OUTPUT; -- define a sada do bloco
)
BEGIN
IF valor_digital[] > 6 THEN
z = VCC; -- produz 1 na sada
ELSE z = GND; -- produz 0 na sada
END IF;
END;

FIGURA 4.54 Verso em AHDL.

IF/THEN/ELSE USANDO VHDL


VHDL

Em VHDL, o ponto crucial a declarao do tipo das entradas. Consulte a Figura 4.55. A entrada
tratada como varivel nica, chamada valor_digital. Como seu tipo declarado como INTEGER, o com-
pilador sabe que deve trat-la como nmero. Especificando-se um intervalo entre 0 e 15, o compilador a
reconhece como um nmero de 4 bits. Observe que RANGE (intervalo) no especifica o nmero ndice de

Tocci.indb 156 10/05/2011 18:15:23


Captulo 4 Circuitos lgicos combinacionais 157

um vetor de bits, mas sim os limites do valor numrico do integer. Integers so tratados diferentemente de
vetores de bits (BIT_VECTOR), em VHDL. Um integer pode ser comparado com outros nmeros, por meio
de operadores de desigualdade. Um BIT_VECTOR no pode ser usado com operadores de desigualdade.
Para usar a estrutura de controle IF/THEN/ELSE, o VHDL exige que o cdigo seja colocado dentro de
um PROCESS (processo). As declaraes que ocorrem dentro de um processo so sequenciais, ou seja, a
ordem em que so escritas afeta o funcionamento do circuito. A palavra-chave PROCESS seguida por uma
lista de variveis chamada lista de sensibilidade, variveis s quais o cdigo do processo deve responder.
Sempre que valor_digital muda, o cdigo do processo ser reavaliado. Embora saibamos que valor_digital ,
na verdade, um nmero binrio de 4 bits, o compilador o avalia como um nmero entre os valores decimais
equivalentes de 0 a 15. IF (se) a declarao entre parnteses for verdadeira, THEN (ento) a declarao se-
guinte aplicada (z associado a um valor de lgico 1). Se no for, a lgica segue a clusula ELSE (seno)
e atribui um valor 0 a z. A declarao END IF; encerra a estrutura de controle, e END PROCESS; encerra
a avaliao das declaraes sequenciais.

ENTITY fig4_55 IS
PORT( valor_digital :IN INTEGER RANGE 0 TO 15; -- entrada de 4 bits
z :OUT BIT);
END fig4_55;

ARCHITECTURE decision OF fig4_55 IS


BEGIN
PROCESS (valor_digital)
BEGIN
IF (valor_digital > 6) THEN
z <= '1';
ELSE
z <= '0';
END IF;
END PROCESS;
END decision;

FIGURA 4.55 Verso em VHDL.

ELSIF
Frequentemente precisamos escolher entre vrias aes possveis, dependendo da situao. A construo IF escolhe
entre executar um conjunto de aes ou no. A construo IF/ELSE seleciona uma de duas aes possveis. Combinando
as decises de IF e ELSE, podemos criar uma estrutura de controle chamada de ELSIF, que escolhe um entre vrios
possveis resultados. A estrutura de deciso mostrada graficamente na Figura 4.56.
Observe que, medida que cada condio avaliada, uma ao executada se a condio for verdadeira, ou a prxima
condio ser avaliada. Toda ao associada a uma condio, e no h possibilidade de mais de uma ao ser selecionada.
Observe, tambm, que as condies usadas para decidir a ao apropriada podem ser qualquer expresso avaliada como
verdadeira ou falsa. Isso permite que o projetista use os operadores de desigualdade para escolher uma ao com base em
um intervalo de valores de entrada. Como exemplo dessa aplicao, vamos examinar o sistema de medio de temperatura
que usa um conversor A/D, como descrito na Figura 4.57. Suponha que desejemos indicar quando a temperatura est em
determinados intervalos, aos quais nos referiremos como Frio demais, Ideal e Quente demais.
A relao entre os valores digitais para temperatura e as categorias

Valores Digitais Categoria


00001000 Frio demais
10011010 Ideal
10111111 Quente demais
Podemos expressar o processo de tomada de deciso para esse circuito lgico da seguinte maneira:
IF (se) o valor digital menor ou igual a 8, THEN (ento) acenda apenas o indicador Frio demais.

Tocci.indb 157 10/05/2011 18:15:23


158 Sistemas digitais princpios e aplicaes

F V
IF

F V Ao 1
ELSIF

F V Ao 2
ELSIF

F V Ao 3
ELSIF

Ao 5 Ao 4

FIGURA 4.56 Fluxograma para decises mltiplas usando IF/ELSIF.

Conversor A/D Circuito Frio demais


lgico

Temp
Ideal
Valor
digital
de 4 bits
Quente demais

FIGURA 4.57 Circuito indicador de variao de temperatura.

ELSE IF (seno, se) o valor digital for maior do que 8 AND (e) menor do que 11, THEN (ento) acenda apenas o
indicador Ideal.
ELSE (seno) acenda apenas o indicador Quente demais.

ELSIF USANDO AHDL


AHDL

O cdigo AHDL na Figura 4.58 define as entradas como um nmero binrio de 4 bits. As sadas so
trs bits individuais que acionam os trs indicadores de intervalo. Esse exemplo usa uma varivel inter-
mediria (status) que nos permite atribuir um padro de bit que representa as trs condies frio_demais,
ideal e quente_demais. A seo sequencial do cdigo usa IF, ELSIF, ELSE para identificar o intervalo em
que a temperatura est e atribui o padro de bit correto a status. Na ltima declarao, os bits de status
so conectados aos bits da porta de sada, que foram ordenados em um grupo que se refere aos padres de
bit atribudos a status[ ]. Tambm teria sido possvel utilizar trs declaraes concorrentes: frio_demais =
status[2]; ideal = status[1]; quente_demais = status[0];.

Tocci.indb 158 10/05/2011 18:15:23


Captulo 4 Circuitos lgicos combinacionais 159

SUBDESIGN fig4_58
(
valor_digital[3..0] :INPUT; --define entradas no bloco
frio_demais, ideal, quente_demais :OUTPUT; --define sadas
)
VARIABLE
status[2..0] :NODE; --guarda estado de frio_demais, ideal, quente_demais
BEGIN
IF valor_digital[] <= 8 THEN status[] = b"100";
ELSIF valor_digital[] > 8 AND valor_digital[] < 11 THEN
status[] = b"010";
ELSE status[] = b"001";
END IF;
(frio_demais, ideal, quente_demais) = status[];-- atualiza bits de sada
END;

FIGURA 4.58 Exemplo das variaes de temperatura em AHDL usando ELSIF.

ELSIF USANDO VHDL


VHDL

O cdigo VHDL na Figura 4.59 define as entradas como um integer de 4 bits. As sadas so trs bits
individuais que acionam trs indicadores de intervalo. Esse exemplo usa um sinal intermedirio (status) que
nos permite atribuir um padro de bit que representa as trs condies frio_demais, ideal e quente_demais. A
seo de processo do cdigo usa IF, ELSIF e ELSE para identificar o intervalo em que a temperatura est e
atribuir o padro de bit correto a status. Nas trs ltimas declaraes, todos os bits de status so conectados
ao bit do port de sada correto.

ENTITY fig4_59 IS
PORT(valor_digital:IN INTEGER RANGE 0 TO 15; -- declara entrada de 4 bits
frio_demais, ideal, quente_demais :OUT BIT);
END fig4_59 ;

ARCHITECTURE howhot OF fig4_59 IS


SIGNAL status :BIT_VECTOR (2 downto 0);
BEGIN
PROCESS (valor_digital)
BEGIN
IF (valor_digital <= 8) THEN status <= "100";
ELSIF (valor_digital > 8 AND valor_digital < 11) THEN
status <= "010";
ELSE status <= "001";
END IF;
END PROCESS ;
frio_demais <= status(2); -- atribui a status bits para a sada
ideal <= status(1);
quente_demais <= status(0);
END howhot;

FIGURA 4.59 Exemplo das variaes de temperatura em VHDL usando ELSIF.

CASE
Outra importante estrutura de controle til para escolher aes com base nas condies atuais. Ela recebe diversos
nomes, dependendo da linguagem de programao, mas quase sempre a palavra CASE est includa. Essa construo

Tocci.indb 159 10/05/2011 18:15:24


160 Sistemas digitais princpios e aplicaes

determina o valor de uma expresso ou um objeto e depois percorre uma lista de possveis valores (casos) para a expresso
ou objeto em avaliao. Cada caso possui uma lista de aes que deveriam ocorrer. Uma construo CASE diferente
deuma IF/ELSIF, porque um caso correlaciona um nico valor de um objeto com um conjunto de aes. Lembre-se de que
uma IF/ELSIF correlaciona um conjunto de aes a uma declarao verdadeira. Pode haver uma nica correspondncia
para uma declarao CASE. Uma IF/ELSIF pode ter mais de uma declarao verdadeira, mas THEN executar a ao
associada com a primeira declarao verdadeira que avaliar.
Outro ponto importante nos exemplos das figuras 4.60 a 4.64 a necessidade de combinar diversas variveis inde-
pendentes em um conjunto de bits, chamado vetor de bits. Lembre-se de que esse ato de ligar vrios bits em uma ordem
particular chamado de concatenao. Ele nos permite considerar o padro de bits como um grupo ordenado.

CASE USANDO AHDL


AHDL

O exemplo em AHDL na Figura 4.60 demonstra uma construo CASE implementando o circuito
da Figura 4.9 (veja tambm a Tabela 4.3). Esse exemplo usa bits individuais como entradas. Na primeira
declarao aps BEGIN, esses bits so concatenados e atribudos varivel intermediria chamada status.
A declarao CASE avalia a varivel status e encontra o padro de bit (aps a palavra-chave WHEN), que
corresponde ao valor de status. Executa-se ento a ao que se segue a =>. Nesse exemplo, apenas se atri-
bui o lgico 0 sada dos trs casos especificados. Todos os outros casos produzem um lgico 1 na sada.

SUBDESIGN fig4_60
(
p, q, r :INPUT; -- define entradas no bloco
s :OUTPUT; -- define sadas
)
VARIABLE
status[2..0] :NODE;
BEGIN
status[]= (p, q, r); -- concatena bits de entrada
CASE status[] IS
WHEN b"100" => s = GND;
WHEN b"101" => s = GND;
WHEN b"110" => s = GND;
WHEN OTHERS => s = VCC;
END CASE;
END;

FIGURA 4.60 Figura 4.9 representada em AHDL.

CASE USANDO VHDL


VHDL

O exemplo em VHDL na Figura 4.61 demonstra a construo CASE implementando o circuito da Fi-
gura 4.9 (veja tambm Tabela 4.3). O exemplo usa bits individuais como entradas. Na primeira declarao
aps BEGIN, esses bits so concatenados e atribudos varivel intermediria chamada status por meio do
operador &. A declarao CASE avalia a varivel status e encontra o padro de bit (aps a palavra-chave
WHEN), que corresponde ao valor de status. Executa-se, ento, a ao descrita aps =>. Nesse exemplo
simples, a sada produz um lgico 0 em todos os trs casos especificados.Todos os outros casos produzem
um lgico 1 na sada.

Tocci.indb 160 10/05/2011 18:15:24


Captulo 4 Circuitos lgicos combinacionais 161

ENTITY fig4_61 IS
PORT( p, q, r :IN bit; --declara entrada de 3 bits
s :OUT BIT);
END fig4_61;

ARCHITECTURE copy OF fig4_61 IS


SIGNAL status :BIT_VECTOR (2 downto 0);
BEGIN
status <= p & q & r; --concatena bits
PROCESS (status)
BEGIN
CASE status IS
WHEN "100" => s <= '0';
WHEN "101" => s <= '0';
WHEN "110" => s <= '0';
WHEN OTHERS => s <= '1';
END CASE;
END PROCESS;
END copy;

FIGURA 4.61 Figura 4.9 representada em VHDL.

Exemplo 4.34

Um detector de moedas em uma mquina de venda aceita quarters, dimes e nickels e ativa o sinal correspondente (Q,D,
N) apenas com a moeda correta. fisicamente impossvel mltiplas moedas estarem presentes ao mesmo tempo. Um
circuito digital precisa usar os sinais Q, D e N como entradas e produzir um nmero binrio representando o valor da
moeda, como mostrado na Figura 4.62. Escreva o cdigo AHDL e VHDL.

Insere moedas
Circuito lgico
Quarter Q
5 bits representando
Dime D cents[4..0] o valor da moeda

Nickel N

FIGURA 4.62 Um circuito detector de moedas para uma mquina de venda.

Soluo
Esta uma aplicao ideal da construo CASE para descrever a operao correta. As sadas devem ser declaradas
como nmeros de 5 bits em ordem para representar os valores at 25 cents. A Figura 4.63 mostra a soluo em AHDL e
a Figura 4.64, em VHDL.

Tocci.indb 161 10/05/2011 18:15:24


162 Sistemas digitais princpios e aplicaes

SUBDESIGN fig4_63
(
q, d, n :INPUT; -- define quarter, dime, nickel
cents[4..0] :OUTPUT -- define valor binrio das moedas
)
BEGIN
CASE (q, d, n) IS -- grupo de moedas em posio ordenada
WHEN b"001" => cents[] = 5;
WHEN b"010" => cents[] = 10;
WHEN b"100" => cents[] = 25;
WHEN others => cents[] = 0;
END CASE;
END;

FIGURA 4.63 Um detector de moeda em AHDL.

ENTITY fig4_64 IS
PORT( q, d, n:IN BIT; -- quarter, dime, nickel
cents :OUT INTEGER RANGE 0 TO 25);-- valor binrio das moedas
END fig4_64;
ARCHITECTURE detector of fig4_64 IS
SIGNAL coins:BIT_VECTOR(2 DOWNTO 0);-- grupo de sensores de moedas
BEGIN
coins <= (q & d & n); -- atribui sensores para o grupo
PROCESS (coins)
BEGIN
CASE (coins) IS
WHEN "001" => cents <= 5;
WHEN "010" => cents <= 10;
WHEN "100" => cents <= 25;
WHEN others => cents <= 0;
END CASE;
END PROCESS;
END detector;

FIGURA 4.64 Um detector de moeda em VHDL.

Questes para reviso

1. Que estrutura de controle decide fazer ou no fazer?


2. Que estrutura de controle decide fazer isso ou fazer aquilo?
3. Que estrutura(s) de controle decide(m) qual de vrias aes diferentes executar?
4. Declare uma entrada chamada contagem que possa representar uma quantidade numrica to grande quanto 205. Use
AHDL ou VHDL.

RESUMO
1. As duas formas gerais para expresses lgicas so a forma de soma-de-produtos e a forma de produto-de-somas.
2. Um dos mtodos de projeto de circuitos lgicos combinacionais (1) construir a tabela-verdade, (2) converter a tabela-
-verdade em uma expresso na forma de soma-de-produtos, (3) simplificar a expresso usando lgebra booleana ou
mapa K, (4) implementar a expresso final.
3. O mapa K um mtodo grfico para representar a tabela-verdade de um circuito e gerar a expresso simplificada para
a sada do circuito.

Tocci.indb 162 10/05/2011 18:15:25


Captulo 4 Circuitos lgicos combinacionais 163

4. Um circuito XOR tem a expresso x = AB + AB. Sua sada x ser nvel ALTO apenas quando as entradas A e B estiverem
em nveis opostos.
5. Um circuito XNOR tem a expresso x = A B + AB. Sua sada x ser nvel ALTO apenas quando as entradas A e B es-
tiverem no mesmo nvel lgico.
6. Todas as portas bsicas (AND, OR, NAND e NOR) podem ser usadas para habilitar ou desabilitar a passagem de um
sinal lgico da entrada para a sada.
7. As principais famlias de CIs digitais so as famlias TTL e CMOS. Os CIs digitais esto disponveis em uma ampla
gama de complexidade (portas por CI), desde as funes lgicas bsicas at as de alta complexidade.
8. Para realizar uma manuteno bsica necessrio, pelo menos, saber como o circuito funciona, ter conhecimento sobre
os tipos de falhas possveis, um diagrama completo de conexo do circuito lgico e uma ponta de prova lgica.
9. Um dispositivo de lgica programvel (PLD) um CI que contm um grande nmero de portas lgicas, cujas interco-
nexes podem ser programadas pelo usurio para gerar as relaes lgicas desejadas entre entradas e sadas.
10. Para programar um PLD, necessrio um sistema de desenvolvimento, que consiste em um computador, um software
de desenvolvimento para PLD e um programador, que realiza a programao do PLD.
11. O sistema da Altera permite tcnicas de projeto hierrquico adequadas, usando qualquer forma de descrio de hardware.
12. Os tipos dos objetos de dados precisam ser especificados para que o compilador HDL saiba o intervalo de nmeros a
serem representados.
13. Tabelas-verdade podem ser fornecidas diretamente no arquivo fonte, usando os recursos de HDL.
14. As estruturas de controle lgico como IF, ELSE e CASE podem ser usadas para descrever o funcionamento de um
circuito lgico, o que torna o cdigo e a anlise de defeitos muito mais simples.

TERMOS IMPORTANTES
agrupamento de quadros exclusive-OR (XOR) ponta de prova lgica
atribuio de sinal selecionada gerao de paridade PROCESS
bibliotecas habilitar/desabilitar produto-de-somas
BIT_VECTOR IF/THEN programador
CASE ndice projeto hierrquico
complementar metal-xido- integer sequencial
semicondutor (CMOS) ISP soma-de-produtos
concatenao JEDEC soquete ZIF
concorrente JTAG SSI, MSI, LSI,VLSI, ULSI, GSI
condio de irrelevncia lista de sensibilidade STD_LOGIC
conteno literais STD_LOGIC_VECTOR
dual-in-line package (DIP) lgica transistor-transistor (TTL) tenso indeterminada
ELSE macrofuno top-down
ELSIF mapa de Karnaugh (mapa K) verificao de paridade
entrada flutuante matriz de bits vetor de bits
estrutura de controle de deciso maxplus2 vetores de teste
exclusive-NOR (XNOR) objetos

PROBLEMAS2
SEES 4.2 E 4.3
B 4.1* Simplifique as seguintes expresses usando a (g) y = (C + D) + ACD + AB C + A BCD +
lgebra booleana. ACD
(a) x = ABC + AC (h) x = AB(CD) + ABD + B C D
(b) y = (Q + R)(Q + R) B 4.2 Simplifique o circuito mostrado na Figura 4.65
(c) w = ABC + ABC + A usando a lgebra booleana.
(d) q = RST(R + S + T) B 4.3* Troque cada porta no circuito do Problema 4.2
(e) x = A B C + ABC + ABC + AB C + ABC por uma porta NOR e simplifique o circuito,
(f) z = (B + C)(B + C) + A + B + C usando a lgebra booleana.

2 As respostas s questes assinaladas com um asterisco encontram-se no final do livro.

Tocci.indb 163 10/05/2011 18:15:25


164 Sistemas digitais princpios e aplicaes

M
N
Q

FIGURA 4.65 Problemas 4.2 e 4.3.

SEO 4.4
B, D 4.4* Projete o circuito lgico correspondente ta- que gere um nvel ALTO na sada sempre que
bela-verdade mostrada na Tabela 4.11. o nmero binrio for maior que 0010 e menor
B, D 4.5 Projete um circuito lgico cuja sada seja nvel que 1000.
ALTO apenas quando a maioria das entradas A, D 4.8 A Figura 4.66 mostra um diagrama para um
B e C for nvel BAIXO. circuito de alarme de automvel usado para
D 4.6 Uma fbrica precisa de uma sirene para indicar detectar determinada condio indesejada. As
o fim do expediente. A sirene deve ser ativada trs chaves so usadas para indicar, respecti-
quando ocorrer uma das seguintes condies: vamente, o estado da porta do motorista, da
1. J passou das cinco horas e todas as m- ignio e dos faris. Projete um circuito lgico
quinas esto desligadas. com essas trs chaves como entrada, de modo
2. sexta-feira, a produo do dia foi atin- que o alarme seja ativado sempre que ocorrer
gida e todas as mquinas esto paradas. uma das seguintes condies:
Projete um circuito lgico para controle da Os faris esto acesos e a ignio est
sirene. (Sugesto: use quatro variveis lgicas desligada.
de entrada para representar as diversas condi- A porta est aberta e a ignio est ligada.
es; por exemplo, a entrada A ser nvel ALTO 4.9* Implemente o circuito do Problema 4.4 usando
apenas quando for 5 horas ou mais.) apenas portas NAND.
D 4.7* Um nmero de quatro bits representado como 4.10 Implemente o circuito do Problema 4.5 usando
A3A2A1A0, em que A3, A2, A1 e A0 so os bits indi- apenas portas NAND.
viduais e A0 o LSB. Projete um circuito lgico

TABELA 4.11
A B C x
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

Tocci.indb 164 10/05/2011 18:15:25


Captulo 4 Circuitos lgicos combinacionais 165

+5 V
+5 V

Porta
Aberta
Fechada

LED
+5 V

Ignio Circuito Alarme


Ligada
lgico
Desligada

+5 V

Faris
Acesos
Apagados

FIGURA 4.66 Problema 4.8.

SEO 4.5
B 4.11* Determine a expresso mnima para o mapa 4.1(g) usando um mapa K; (c)* do Problema
K mostrado na Figura 4.67. Dedique ateno 4.1(h) usando um mapa K.
especial ao passo 5 para o mapa em (a). B