Buscar

circuitos-digitais-pdf previw

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

TALES CLEBER PIMENTA
TA
LE
S
 C
LE
B
E
R
 P
IM
E
N
TA
CIRCUITOS
DIGITAIS
C
IR
C
U
ITO
S D
IG
ITA
IS
ANÁLISE E SÍNTESE LÓGICA:
APLICAÇÕES EM FPGA
Os circuitos digitais podem 
atingir uma quantidade muito 
grande de portas lógicas (e 
consequentemente transisto-
res). Como exemplo, o micro-
processador Intel i7 tem mais de 
700 milhões de transistores e o 
Intel Xeon de 18 núcleos supera 
5,5 bilhões de transistores. 
Naturalmente seria impossível 
projetar esses processadores 
pela interligação de portas 
lógicas ou blocos lógicos. De 
fato, o projeto de circuitos com 
algumas centenas de portas 
lógicas já se torna problemático.
Assim, este livro apresenta o 
projeto de circuitos lógicos a 
partir da linguagem de descri-
ção de hardware Verilog. Ao 
final de cada capítulo são apre-
sentadas as descrições em 
Verilog dos circuitos discutidos. 
Isso permite associar de forma 
didática, os circuitos e as suas 
respectivas descrições em 
Verilog. O aprendizado dessa 
linguagem de descrição de 
hardware é facilitado por sua 
similaridade com as linguagens 
de programação.
Ao final de cada capítulo 
também são apresentados 
exercícios e pequenos projetos 
elaborados para sedimentar os 
tópicos apresentados e para dar 
confiança ao leitor.
TALES CLEBER PIMENTA possui 
graduação em Engenharia Elétrica 
pela Universidade Federal de Itajubá 
(UNIFEI), em 1985, e mestrado em 
Engenharia Elétrica também pela 
UNIFEI, em 1988. Obteve seu 
doutorado em 1992 pela Ohio 
University – EUA. Fez o primeiro 
pós-doutorado na The Ohio State 
University, em 1997, em circuitos 
integrados analógicos de baixa 
tensão, o segundo pós-doutorado 
na Virginia Politechnic Institute and 
State University, em 2005, na área 
de circuitos integrados de frequên-
cias ultraelevadas, e o terceiro 
pós-doutorado, em 2014, pela 
University of North Florida, em 
circuitos de aplicações biomédicas. 
É professor titular da Universidade 
Federal de Itajubá, onde trabalha 
desde 1985, e coordenador do 
Grupo de Microeletrônica e da 
equipe Uai!rrior de competição de 
robótica. Ministra as disciplinas de 
circuitos digitais na graduação e 
disciplinas da área de microeletrô-
nica na pós-graduação.
Consulte nosso catálogo completo e últimos 
lançamentos em www.elsevier.com.br 
C
ap
a:
 V
in
ic
iu
s 
D
ia
s 
| F
o
to
: 
e
-c
ro
w
@
is
to
c
k.
c
o
m
Os circuitos digitais estão tão intensamente presentes em 
nossas vidas, que é difícil imaginar viver sem eles. Eles estão 
presentes em telefones móveis, tablets, computadores, jogos 
eletrônicos, máquinas fotográficas, televisores e tudo que 
acessa a Internet, além da própria Internet.
Esses circuitos permitem a operação de automóveis, barcos, 
aviões, eletrodomésticos (tais como geladeiras, lava-roupas, 
lava-louças e máquinas de café), equipamentos médicos, 
equipamentos militares e muitos outros. Muitas vezes nem 
percebemos ou sabemos de sua existência, tais como seu uso 
em rodovias e ferrovias, produção agrícola, portos e aeropor-
tos, produção de energia, e em muitas outras áreas.
Tudo está se tornando “digital”, e isso é entendido como sendo 
melhor, mais rápido, mais econômico, mais funcional, etc. 
Este livro tem por objetivo oferecer os subsídios para entender 
os circuitos e as estruturas lógicas que tornam tudo isso possí-
vel. Mais do que entender, o texto busca oferecer uma visão 
orientada a projetos.
Circuitos digitais é voltado aos alunos de cursos de engenharia 
elétrica, eletrônica, controle e automação, computação, ciên-
cia de computação e similares, assim como cursos técnicos e 
tecnológicos.
O texto apresenta conceitos de forma simples e intuitiva, sem 
se prender ao formalismo científico, isto é, foca no aspecto 
prático e didático, e aborda os conceitos básicos de circuitos 
digitais, desde a álgebra de Boole até máquinas de estado, que 
formam o coração dos processadores e controladores.
Tales Cleber Pimenta
Circuitos Digitais
Análise e Síntese Lógica: 
Aplicações em FPGA
O Autor
O autor possui graduação em Engenharia Elétrica com ênfase em Eletrônica em 1985 pela 
Universidade Federal de Itajubá, mestrado em Engenharia Elétrica pela Universidade 
Federal de Itajubá em 1988 e doutorado em Engenharia Elétrica pela Ohio University em 
1992. Fez o primeiro pós-doutorado na The Ohio State University em 1997 em circuitos 
integrados analógicos de baixa tensão, o segundo pós-doutorado na Virginia Politechnic 
Institute and State University em 2005 na área de circuitos integrados de frequências ul-
traelevadas e o terceiro pós-doutorado em 2014 pela The University of North Florida na 
área de aplicações biomédicas. Atualmente é professor titular da Universidade Federal de 
Itajubá ministrando disciplinas de Eletrônica Digital e de Circuitos Integrados Digitais 
na graduação. Já na pós-graduação ministra disciplinas de Microeletrônica e Projetos de 
Circuitos Integrados, e conduz projetos na área de circuitos integrados.
Sumário
Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
O Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
CAPÍTULO 1
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Digital versus analógico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Um pouco de história . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Tendências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Ponto de vista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
CAPÍTULO 2
Códigos Numéricos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1 Representação numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.1 Sistema Binário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.2 Sistema Octal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3 Sistema Hexadecimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.4 Sistemas Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 Conversões de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Conversão de Decimal para outras Bases – Números Inteiros . . . . 11
2.2.2 Conversão de Decimal para outras Bases – Números Fracionários 12
2.2.3 Conversão de Decimal para outras Bases – Números Mistos . . . . 12
2.2.4 Conversão entre Bases 2n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
xiv CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA 
2.3 Codigo GRAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 Obtenção do Código Gray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Conversão entre Código Gray e Binário . . . . . . . . . . . . . . . . . . . . 16
2.4 Códigos BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Códigos alfanuméricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
CAPÍTULO 3
Álgebra de Boole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1 Operações básicas . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1 Inversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.2 Operação E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.1.3 Operação OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2 Expressões duais e complementares . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Teoremas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.1 Elemento Unitário (Aniquilador) . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Elemento Nulo (Identidade) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.3 Idempotência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.4 Complementaridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.5 Comutativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.6 De Morgan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.7 Associativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.8 Distributiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.9 Combinação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.10 Absorção ou Cobertura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.11 Eliminação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.12 Consenso ou Fantasma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.13 Conversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.14 Teoremas – Sumário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.15 Problemas de Aplicação de Teoremas . . . . . . . . . . . . . . . . . . . . . 30
3.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
CAPÍTULO 4
Circuitos Lógicos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1 Expressões Booleanas e tabela verdade . . . . . . . . . . . . . . . . . . . . . . . . . . 35
 Sumário xv
4.2 Blocos lógicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.1 Operação Não-E (NAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.2 Operação Não-Ou (NOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2.3 Operação Ou-Exclusivo (XOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.4 Operação Não-Ou-Exclusivo (XNOR) ou Coincidência . . . . . . . . . 38
4.3 Implementação de funções usando uma operação lógica . . . . . . . . . . . . . 39
4.3.1 Inversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.2 Ou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.3 E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.4 Não-Ou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.5 Não-E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.6 Expressões Lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.4 Obtenção de expressões lógicas por tabelas . . . . . . . . . . . . . . . . . . . . . . . 44
4.5 Maxtermos e mintermos – forma canônica . . . . . . . . . . . . . . . . . . . . . . . . 46
4.5.1 Número de Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.5.2 Aplicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6 Circuitos a contatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6.1 Função E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.6.2 Função OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.6.3 Função OU-Exclusivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.6.4 Relés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.6.5 Função Inversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6.6 Outras Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.7 Simbologias IEEE/ANSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.8 Circuitos básicos em Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.8.1 Descrição Estrutural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.8.2 Descrição Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.8.3 Validação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.9 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
CAPÍTULO 5
Mapas de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.1 Simplificação de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2 Leituras de Karnaugh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2.1 Metodologia de Leitura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2.2 Exemplos de Leitura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
xvi CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA 
5.2.3 Leitura pelos 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2.4 Mapas de 5 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5.2.5 Mapas de 6 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.2.6 Termos Opcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3 Aplicações de Karnaugh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.1 Simplificação de Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.3.2 Conversão entre Soma de Produtos e Produto de Somas . . . . . . . 73
5.3.3 Mintermos e Maxtermos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.4 Conversão Soma de Produtos/Produto de Somas Operações 
– Mintermos/Maxtermos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3.5 Operações E e OU entre Funções . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.4 Aplicações de Karnaugh em Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4.1 Primitivas Definidas pelo Usuário . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4.2 Descrição por Fluxo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
CAPÍTULO 6
Circuitos de Manuseio de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.1 Conversores de código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2 Codificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2.1 Codificador de Prioridade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.2 Codificador de Prioridade Tipo Termômetro . . . . . . . . . . . . . . . . . 90
6.2.3 Codificador de Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.3 Decodificadores . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 92
6.3.1 Decodificadores BCD e Binário para Sete Segmentos . . . . . . . . . . 93
6.3.2 Implementação de Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.4 Multiplexador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.1 Multiplexagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.4.2 Multiplexador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.4.3 Composição de Multiplexadores . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.5 Demultiplexador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
6.6 Utilização de multiplexadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .103
6.6.1 Arranjo Paralelo de Multiplexadores . . . . . . . . . . . . . . . . . . . . . .103
6.6.2 Arranjo Serial de Multiplexadores . . . . . . . . . . . . . . . . . . . . . . . .103
6.6.3 Sistema de Comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
6.6.4 Implementação de Funções Lógicas . . . . . . . . . . . . . . . . . . . . . .105
 Sumário xvii
6.7 Circuitos de manuseio de dados utilizando Verilog . . . . . . . . . . . . . . . . . .108
6.7.1 Estruturas Hierárquicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
6.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
CAPÍTULO 7
Circuitos Aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
7.1 Soma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
7.1.1 Meio Somador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
7.1.2 Somador Pleno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121
7.1.3 Somadores de Múltiplos Bits . . . . . . . . . . . . . . . . . . . . . . . . . . .122
7.2 Subtração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
7.2.1 Meio Subtrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
7.2.2 Subtrator Pleno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
7.2.3 Subtratores de Múltiplos Bits . . . . . . . . . . . . . . . . . . . . . . . . . . .127
7.3 Subtração pelo complemento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
7.3.1 Representação de Números Binários Negativos . . . . . . . . . . . . . .129
7.3.2 Aritmética em Complemento de 2 . . . . . . . . . . . . . . . . . . . . . . . .131
7.3.3 Circuito Somador-Subtrator . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
7.3.4 Transbordo ou Estouro de Campo . . . . . . . . . . . . . . . . . . . . . . . .133
7.4 Aritmética em BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
7.4.1 Subtração BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
7.5 Soma rápida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
7.6 Unidade lógica e aritmética . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
7.7 Circuitos aritméticos utilizando Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . .142
7.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
CAPÍTULO 8
Latches e Flip-Flops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
8.1 Latch Assíncrono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
8.1.1 Aplicações de Latches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
8.2 Latch Síncrono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
8.3 Entradas diretas (Assíncronas) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .153
8.4 Latch D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155
8.5 Flip-Flop D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
8.6 Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160
xviii CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA 
8.7 Flip-Flop JK Mestre-Escravo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
8.7.1 Análise Simplificada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
8.8 Flip-Flop T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
8.9 Temporização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
8.10 Conversão de flip-flops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
8.11 Registradores de deslocamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
8.11.1 Aplicações de Registradores de Deslocamento . . . . . . . . . . . . . .175
8.12 Latches e flip-flops utilizando Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . .176
8.12.1 Latches e Flip-Flops por UDP . . . . . . . . . . . . . . . . . . . . . . . . . . .176
8.12.2 Latches e Flip-Flops por Descrição Comportamental . . . . . . . . . .177
8.12.3 Deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179
8.12.4 Controle de Atrasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
8.13 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
CAPÍTULO 9
Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
9.1 Contadores assíncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .189
9.1.1 Contagem Decrescente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
9.1.2 Contagem Crescente/Decrescente . . . . . . . . . . . . . . . . . . . . . . . .192
9.1.3 Valor Inicial de Contagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193
9.1.4 Valor Final de Contagem Cíclica. . . . . . . . . . . . . . . . . . . . . . . . . .194
9.1.5 Valor Final de Contagem com Parada do Contador . . . . . . . . . . . .195
9.1.6 Valor de Contagem Transitório . . . . . . . . . . . . . . . . . . . . . . . . . .196
9.2 Contadores síncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
9.2.1 Sequência de Contagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
9.2.2 Mapas de Estado Seguinte . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
9.2.3 Mapas de Excitação – Flip-Flop SR . . . . . . . . . . . . . . . . . . . . . . .201
9.2.4 Montagem do Circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
9.2.5 Mapas de Excitação – Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . . .206
9.2.6 Leitura Simplificada – Flip-Flop JK . . . . . . . . . . . . . . . . . . . . . . .207
9.2.7 Mapas de Excitação – Flip-Flop T . . . . . . . . . . . . . . . . . . . . . . . .209
9.2.8 Mapas de Excitação – Flip-Flop D . . . . . . . . . . . . . . . . . . . . . . . .211
9.3 Acoplamento de contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
9.3.1 Acoplamento Assíncrono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211
9.3.2 Acoplamento Pseudossíncrono . . . . . . . . . . . . . . . . . . . . . . . . . .214
9.4 Contadores utilizando Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
9.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218
 Sumário xix
CAPÍTULO 10
Máquinas deEstado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221
10.1 Conceitos de máquinas de estados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221
10.2 Projeto de máquinas de estados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
10.2.1 Passo 1 – Obtenção do Diagrama de Estados . . . . . . . . . . . . . . .223
10.2.2 Passo 2 – Obtenção da Tabela de Estados . . . . . . . . . . . . . . . . . .236
10.2.3 Passo 3 – Eliminação de Estados Equivalentes . . . . . . . . . . . . . . .238
10.2.4 Passo 4 – Designação de Estados Auxiliares . . . . . . . . . . . . . . . .241
10.2.5 Passo 5 – Mapas de Transição . . . . . . . . . . . . . . . . . . . . . . . . . .244
10.2.6 Passo 6 – Mapas de Excitação dos Flip-Flops . . . . . . . . . . . . . . .248
10.2.7 Passo 7 – Mapas de Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251
10.2.8 Exemplo Completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
10.2.9 Múltiplas Saídas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
10.3 Máquinas de estado utilizando Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . .260
10.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264
CAPÍTULO 11
Projeto de Máquinas de Estado por Fluxogramas . . . . . . . . . . . . . . . . . . . . . . . . . . .267
11.1 Elementos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267
11.2 Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268
11.3 Fluxogramas a partir de Diagrama de Estados. . . . . . . . . . . . . . . . . . . . . .271
11.4 Projeto de máquinas de estado a partir de fluxogramas . . . . . . . . . . . . . . .273
11.4.1 Designação de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
11.4.2 Expressões de Estado Seguinte . . . . . . . . . . . . . . . . . . . . . . . . . .275
11.4.3 Mapas de Excitação dos Flip-Flops . . . . . . . . . . . . . . . . . . . . . . .276
11.4.4 Expressões de Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
11.4.5 Exemplo de Mealy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
11.5 Máquinas Mealy-Moore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281
11.5.1 Exemplo de Máquina Mealy . . . . . . . . . . . . . . . . . . . . . . . . . . . .282
11.6 Máquinas de estado por fluxograma utilizando Verilog . . . . . . . . . . . . . . .284
11.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
CAPÍTULO 12
Memórias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
12.1 Tipos de memórias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .289
xx CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA 
12.2 Memórias voláteis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290
12.2.1 Memória RAM Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
12.3 Memórias não voláteis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
12.3.1 Memória ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
12.3.2 Memória PROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297
12.3.3 Memória EPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
12.3.4 Memória EEPROM ou E2PROM . . . . . . . . . . . . . . . . . . . . . . . . . .302
12.3.5 Memória Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
12.4 Arranjos de memórias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
12.4.1 Associação Paralela ou Horizontal de Memórias . . . . . . . . . . . . . .303
12.4.2 Associação Serial ou Vertical de Memórias . . . . . . . . . . . . . . . . .304
12.4.3 Decodificação de Endereços . . . . . . . . . . . . . . . . . . . . . . . . . . . .304
12.4.4 Decodificação de Memórias de Tamanhos Diferentes . . . . . . . . . .313
12.4.5 Decodificação de Memórias com Endereço Fracionado . . . . . . . .315
12.5 Temporização de memórias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316
12.6 Memórias utilizando Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317
12.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .318
CAPÍTULO 13
Dispositivos Lógicos Programáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321
13.1 Arranjos lógicos programáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321
13.1.1 Arranjo Lógico Programável – PLA . . . . . . . . . . . . . . . . . . . . . . .322
13.1.2 Arranjo Programável Lógico – PAL . . . . . . . . . . . . . . . . . . . . . . .324
13.2 Dispositivos programáveis sequenciais . . . . . . . . . . . . . . . . . . . . . . . . . .326
13.2.1 Arranjo Lógico Genérico – GAL . . . . . . . . . . . . . . . . . . . . . . . . . .326
13.2.2 Dispositivos Lógicos Programáveis Complexos – CPLD . . . . . . . .329
13.2.3 Arranjo de Portas Programável em Campo – FPGA . . . . . . . . . . .331
13.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335
CAPÍTULO 14
Famílias Lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337
14.1 Lógica resistor-transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337
14.1.1 Margens de Ruído . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
14.1.2 Fan Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339
14.1.3 Fan Out e Margem de Ruído . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
14.1.4 Portas Lógicas RTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
 Sumário xxi
14.2 Lógica diodo-transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
14.2.1 DTL Modificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343
14.2.2 HTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .344
14.2.3 Fan Out em DTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .345
14.2.4 Operação E Virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347
14.3 Lógica transistor-transistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
14.3.1 Entradas em Nível Alto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
14.3.2 Pelo Menos uma Entrada em Nível Baixo . . . . . . . . . . . . . . . . . . .350
14.3.3 Carga TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350
14.3.4 Velocidade de Operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .352
14.3.5 Saída em Alta Impedância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353
14.3.6 Saída com Coletor Aberto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354
14.3.7 Entradas Não-Usadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357
14.3.8 TTL de Baixa Potência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
14.3.9 TTL de Alta Velocidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358
14.3.10 TTL Schottky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
14.3.11 TTL Schottky de Baixa Potência . . . . . . . . . . . . . . . . . . . . . . . . .360
14.3.12 TTL Schottky Avançado de Baixa Potência . . . . . . . . . . . . . . . . . .360
14.3.13Comparativo Famílias TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361
14.4 Lógica emissor acoplado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .363
14.5 Lógica CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
14.5.1 Inversor CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365
14.5.2 Margens de Ruído . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366
14.5.3 Funções Lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367
14.5.4 Fan In e Fan Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369
14.5.5 Inversor NMOS com Carga Resistiva . . . . . . . . . . . . . . . . . . . . . .369
14.5.6 Inversor NMOS com Carga Ativa . . . . . . . . . . . . . . . . . . . . . . . . .370
14.5.7 Dreno Aberto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371
14.5.8 Saída Alta Impedância . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371
14.5.9 Porta de Transmissão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372
14.5.10 Dissipação de Potência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374
14.6 Interfaceamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376
14.6.1 TTL-CMOS 5V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376
14.6.2 TTL-CMOS Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .377
14.6.3 CMOS 5V – TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .378
14.6.4 CMOS Genérico – TTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .380
14.6.5 Outras Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .380
xxii CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA 
14.7 Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .381
14.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .382
CAPÍTULO 15
Circuitos CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .385
15.1 Circuito CMOS estático e dinâmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .385
15.1.1 Tempo de Propagação e Margem de Ruído . . . . . . . . . . . . . . . . .387
15.1.2 Cascateamento em Lógica Dinâmica . . . . . . . . . . . . . . . . . . . . . .388
15.1.3 Funções Lógicas em Lógica Dinâmica . . . . . . . . . . . . . . . . . . . . .391
15.2 Latches e flip-flops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .392
15.3 Chaves analógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .395
15.3.1 Multiplexador e Demultiplexador Analógico . . . . . . . . . . . . . . . . .395
15.4 Schmitt-Trigger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .396
15.5 Circuitos astáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399
15.6 Monoestáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401
15.6.1 Exemplos de Uso de Monoestáveis . . . . . . . . . . . . . . . . . . . . . . .404
15.6.2 Monoestáveis e Astáveis Integrados . . . . . . . . . . . . . . . . . . . . . .405
15.7 BiCMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .408
15.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .411
CAPÍTULO 16
Conversão AD & DA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .413
16.1 Conversão digital-analógico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .414
16.1.1 Conversor Resistivo de Peso Ponderado . . . . . . . . . . . . . . . . . . .414
16.1.2 Conversor Resistivo Rede R-2R . . . . . . . . . . . . . . . . . . . . . . . . .415
16.2 Circuitos de amostragem e retenção . . . . . . . . . . . . . . . . . . . . . . . . . . . .416
16.3 Conversão analógico-digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .417
16.3.1 Conversor Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .417
16.3.2 Conversor Contador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .419
16.3.3 Rampa Dupla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .420
16.3.4 Redistribuição de Carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .422
16.3.5 Outros Conversores e Métricas . . . . . . . . . . . . . . . . . . . . . . . . . .424
16.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .424
 Sumário xxiii
APÊNDICE A
Transistor MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427
A.1 Estrutura e Operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427
A.1.1 Análise Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431
A.1.2 Modulação de Canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .432
A.1.3 Impedância de Saída . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .433
A.1.4 Efeito de Corpo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .434
A.1.5 Parâmetro de Condução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435
A.1.6 Condução Sublimiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .435
A.1.7 Transistor PMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .436
A.1.8 Representação Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .437
A.1.9 Capacitâncias Parasitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .438
A.2 CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .440
A.3 Circuito DC MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441
A.4 Modelo AC MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .442
A.5 Porta de Transmissão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .443
A.6 Inversor CMOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .446
A.6.1 Dimensionamento de Transistores . . . . . . . . . . . . . . . . . . . . . . . .447
A.7 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .448
APÊNDICE B
Transistor Bipolar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451
B.1 Estrutura e Operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451
B.1.1 Análise Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .456
B.1.2 Modulação da Base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457
B.1.3 Impedância de Entrada e Saída . . . . . . . . . . . . . . . . . . . . . . . . . .458
B.1.4 Transistor PNP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .458
B.1.5 Aspecto Construtivo e Capacitâncias Parasitas . . . . . . . . . . . . . . .459
B.2 Circuito DC NPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .459
B.3 Modelo AC MOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460
B.4 Bandas de Energia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .461
B.5 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .463
xxivCIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA 
APÊNDICE C
Amplificador Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465
C.1 Estrutura e Operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465
C.1.1 Amplificador Não-Inversor . . . . . . . . . . . . . . . . . . . . . . . . . . . . .466
C.1.2 Amplificador Inversor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .467
C.1.3 Amplificador Somador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468
C.1.4 Conversor Corrente-Tensão . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468
C.1.5 Conversor Tensão-Corrente . . . . . . . . . . . . . . . . . . . . . . . . . . . . .469
C.1.6 Amplificador de Diferença . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .469
C.1.7 Amplificador de Instrumentação . . . . . . . . . . . . . . . . . . . . . . . . .471
C.1.8 Integrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473
C.1.9 Derivador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473
C.1.10 Amplificador Logarítmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474
C.1.11 Amplificador Exponencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475
C.1.12 Comparador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475
C.1.13 Comparador com Histerese ou Schmitt Trigger . . . . . . . . . . . . . .476
APÊNDICE D
Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
D.1 Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479
D.2 Sinais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .480
D.2.1 Sinais Internos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .481
D.2.2 Sinais Externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .482
D.3 Descrição Estrutural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483
D.3.1 Estruturas Primitivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .483
D.3.1.1 UDP Combinacional . . . . . . . . . . . . . . . . . . . . . . . . . .485
D.3.1.2 UDP Sequencial Ativa por Nível . . . . . . . . . . . . . . . . . .486
D.3.1.3 UDP Sequencial Ativa por Rampa . . . . . . . . . . . . . . . .487
D.3.1.4 Uso de UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .488
D.4 Estrutura Hierárquica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .489
D.5 Descrição por Fluxo de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .491
D.5.1 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .491
D.5.2 Segmento de Vetor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .492
D.5.3 Operadores Aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .493
D.5.4 Operadores Relacionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .493
 Sumário xxv
D.5.5 Operadores Lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .494
D.5.6 Deslocamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .495
D.5.7 Concatenação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .495
D.5.8 Atribuição Contínua de Saída . . . . . . . . . . . . . . . . . . . . . . . . . . .495
D.5.9 Atribuição Condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .496
D.5.10 Atrasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .497
D.6 Descrição Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .498
D.6.1 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .498
D.6.2 Vetores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .499
D.6.3 Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
D.6.4 Bloco Comportamental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .500
D.6.5 Temporização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .502
D.6.6 Operações Condicionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .503
D.6.7 Múltiplas Escolhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .504
D.6.8 Loops . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .505
D.6.9 Controle de Temporização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507
D.6.10 Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .507
D.6.11 Múltiplos Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .508
D.6.12 Atraso Bloqueável e Não-Bloqueável . . . . . . . . . . . . . . . . . . . . . .508
D.7 Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .510
D.7.1 Uso de Tarefa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .510
D.7.2 Uso de Função . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .511
D.7.3 Tarefas e Funções do Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . .512
D.7.4 Circuitos Combinacionais Básicos . . . . . . . . . . . . . . . . . . . . . . . .512
D.7.5 Registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .514
D.7.6 Estilos de Codificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .517
D.7.7 Latches Indesejáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .517
D.7.8 Máquinas de Estado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
D.8 Verificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
D.8.1 Test Benches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
D.8.2 Sinais de Estímulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .520
D.9 Erros e Sugestões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .521
D.10 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .522
xxvi CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA 
APÊNDICE E
Simulação e Síntese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525
E.1 Quartus – Altera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525
E.1.1 Download e Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525
E.1.2 Configuração Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .525
E.1.3 Captura Esquemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526
E.1.4 Simulação de Esquemáticos usando ModelSim . . . . . . . . . . . . . .530
E.1.5 Tempos de Atrasos em Simulações ModelSim . . . . . . . . . . . . . . .539
E.1.6 Descrição Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .539
E.1.7 Simulação utilizando Test Bench . . . . . . . . . . . . . . . . . . . . . . . . .540
E.1.8 Programação em FPGA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .544
E.2 Vivado – Xilinx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .548
E.2.1 Download e Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .548
E.2.2 Configuração Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .548
E.2.3 Descrição Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . .550
E.2.4 Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .553
E.2.5 Análise RTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .554
E.2.6 Síntese Pré-Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .556
E.2.7 Programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .557
E.2.8 Simulações Temporais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .559
C A P Í T U L O 
1Introdução
Os circuitos digitais estão tão intensamente presentes em nossas vidas, que é difícil 
imaginar viver sem eles. Eles estão claramente presentes em telefones móveis, tablets, 
computadores, televisores, jogos eletrônicos, equipamentos de acesso à Internet, má-
quinas fotográficas, reprodutores de áudio e vídeo, entre outros. Os circuitos digitais 
também estão presentes em nossa infraestrutura de energia, telecomunicações e ra-
diodifusão, saneamento, transportes e outros. Esses circuitos permitem a operação de 
equipamentos de alta tecnologia, como satélites e sondas espaciais, equipamentos mi-
litares e equipamentos médicos, assim como em eletrodomésticos (geladeiras, lava-
-roupas, lava-louças, máquinas de café, etc.), automóveis, caminhões, tratores, bar-
cos e aviões. Muitas vezes nem mesmo percebemos ou sabemos de seu emprego, 
como em rodovias e ferrovias, produção agrícola, portos e aeroportos. Ainda há a 
área de automação industrial e recentemente a automação residencial. Enfim, é difícil 
pensar em algum produto que não empregue circuitos digitais em sua operação, ou 
em sua produção. De fato a quase totalidade de produtos eletrônicos os emprega de 
alguma forma.
1.1 Digital versus analógico
Os eventos naturais, como enxergamos e sentimos, são contínuos, isto é, não há mudan-
ças instantâneas. Como exemplo, se um carro está em uma estrada a 50 km/h e pisamos 
levemente no acelerador, a velocidade aumenta para 55 km/h. Essa variação é contínua, 
isto é, o carro não passa instantaneamente de 50 km/h para 55 km/h.
A Figura 1.1 ilustra velocímetros analógico e digital. Nos velocímetros tradicionais, 
isso é, analógicos, o ponteiro se desloca continuamente de 50 km/h para 55 km/h. Essa 
variação contínua representa o conceito analógico.
Por outro lado, em um velocímetro digital, a indicação de velocidade se dá por de-
graus. Assim, com a aceleração do carro, o velocímetro mostra progressivamente as velo-
cidades intermediárias 51 km/h, 52 km/h, 53 km/h e 54 km/h. Apesar do carro mudar sua 
velocidade continuamente, o velocímetro digital mostra as velocidades de forma discreti-
zada, isto é, em degraus. Esse é o conceito de representação digital.
C A P Í T U L O
2Códigos Numéricos
Números fazem parte das atividades humanas e sua importância é indiscutível. Números 
estão presentes em toda a história, até em vários objetos pré-históricos. E apesar de suas 
diferentes formas de representação ao longo da história, estão na forma decimal pelo sim-
ples fato de o ser humano ter dez dedos nas mãos.
Entretanto podem haver outros códigos numéricos, de acordo com a necessidade ou 
conveniência. No caso de circuitos digitais necessita-se do código binário.
2.1 Representação numérica
Na representação decimal, o número 1.327 representa uma quantidade igual a um milhar, 
três centenas, duas dezenas e sete unidades, ou seja,
 (2-1)
Nessa representação, a posição de cada dígito representa o seu peso, sendo, portanto, 
uma representação posicional. O padrão dessa representação é dado por
 (2-2)
Assim, de forma genérica, tem-se
 (2-3)
onde r é a base, e a é um coeficiente inteiro, positivo e menor que r.
Observe que essa representação é válida também para números negativos. Vale lem-
brar que no sistema decimal usam-se os símbolos 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9.
2.1.1 Sistema Binário
O princípio anterior, dado pelas expressões (2-2) e (2-3), é válido também para o sistema 
binário. No sistema binário existem somente dois valores, ou símbolos; 0 e 1. O dígito 
C A P Í T U L O
3Álgebra de Boole
A álgebra lógica foi apresentada pelo matemático Britânico George Boole em 1847 (The 
Mathematical Analysis of Logic) em resposta a uma controvérsia entre Augustus De 
Morgan e William Hamilton, e mais detalhadamente em 1854 (An Investigation of the 
Laws of Thought) onde se discute a análise lógica. Em 1937 Claude Shannon provou que 
a álgebra de Boole e a aritmética binária poderiam ser usadas em circuitos com relês, usa-
dos em telefonia, e estabeleceu-se a álgebra digital ou álgebra binária.
A álgebra de Boole descreve as operações lógicas dos circuitos lógicos, e conse-
quentemente as iterações dos sinais digitais. Tais iterações permitem a implementa-
ção de blocos e circuitos maiores, que encontram infinitas aplicações, desde relógios 
digitais até complexos sistemas computacionais.
A álgebra de Boole é baseada em dois valores lógicos; 0 e 1. Esses valores podem 
representar condições associadas com verdadeiro e falso, ligado e desligado, aberto e 
fechado, energizado e desenergizado, etc. Assim, pode-se estabelecer a relação 0 para 
falso e 1 para verdadeiro (ou vice-versa), 0 para aberto e 1 para fechado (ou vice versa), 
e assim sucessivamente. Como a álgebra de Boole contempla apenas dois valores, 0 e 
1, pode-se inferir que o contrário de 0 é 1, e vice-versa.
3.1 Operações básicas
As três operações básicas da álgebra de Boole são os blocos elementares na construção de 
todos os circuitos digitais.
3.1.1 Inversão
A operação de inversão, também chamada de Não (NOT em Inglês), Negação ou 
Complemento, executa a inversão lógica do sinal de entrada. A operação de inversão de 
uma variável A tem tipicamente as representações mostradas em (3-1). A Tabela 3.1 apre-
senta a sua operação e a Figura 3.1 mostra a sua representação gráfi ca. Se a entrada é 0, a 
saída será 1, e vice-versa.
 Y = A = A' (3-1)
C A P Í T U L O
4Circuitos Lógicos Básicos
A construção de circuitos lógicos, de qualquer complexidade, é feita a partir de blocos 
lógicos básicos. Assim, torna-se essencial o entendimento e a interligação desses blocos 
na implementação de funções lógicas mais complexas. A álgebra de Boole é a ferramenta 
básica usada nestas atividades de análise e implementação de circuitos lógicos.
Circuitos podem ser implementados a partir de expressões lógicas ou de suas tabelas 
de operação. Neste capítulo são apresentados a análise de circuitos lógicos, as formas de 
implementação a partir de tabelas e expressões e alguns blocos de uso frequente.
4.1 Expressões Booleanas e tabela verdade
Operações lógicas básicas podem ser combinadas para se montar expressões lógicas 
maiores e mais complexas. A partir das expressões lógicas podem-se montar os circuitos 
lógicos que as implementam, usando-se os blocos básicos. A partir das expressões tam-
bém se pode montar a tabela de operação, que reflete a operação lógica do circuito.
A montagem do circuito lógico é feita respeitando-se as prioridades da expressão ló-
gica, a saber, inversão, operação E e operação Ou. Quando necessário podem-se usar pa-
rêntesis para estabelecer outras prioridades.
Na tabela de operação, também chamada de Tabela Verdade, devem-se incluir todas 
as combinações possíveis das variáveis de entrada. Para facilitar a obtenção da lógica 
final, podem ser feitas colunas com resultados intermediários.
Exemplos:
1. Y = AB + C
A montagem do circuito lógico é iniciada pela inversão de A, a seguir a operação E 
com B e finalmente a operação Ou com C, como mostrado na Figura 4.1.
A
B
C
Y
A
A.B
FIGUR A 4.1 Função lógica Y = AB + C.
C A P Í T U L O
5Mapas de Karnaugh
Os mapas de Karnaugh foram introduzidos em 1953 por Maurice Karnaugh como uma 
melhoria dos diagramas apresentados por Edward Veitch no ano anterior e representam 
um avanço nas leituras feitas pela tabela lógica.
O mapa de Karnaugh proporciona uma leitura rápida e otimizada de funções lógicas, 
com base em sua tabela lógica. Ao invés dese ter uma tabela lógica da forma linear, os 
valores são colocados na forma matricial e a leitura é feita com base nas proximidades 
dos dados. Não há simplificação possível em uma leitura por Karnaugh!
5.1 Simplificação de Lagrange
A partir de uma tabela lógica, pode-se obter a sua função pelo método de Lagrange. 
Entretanto, esse método exige que sejam feitas simplificações na expressão obtida, para 
se atingir a forma simplificada. Como exemplo, considere a Tabela 5.1, cuja leitura é 
dada por:
C A P Í T U L O
6Circuitos de Manuseio de Dados
Circuitos de manuseio de dados são circuitos combinacionais que fazem translações ló-
gicas paralelas, tais como conversão de códigos, codificação, decodificação e formatação 
de dados digitais. Esses circuitos são empregados em seleção de endereços de dispositi-
vos e memórias, conversões de códigos, decodificadores de mostradores e codificação de 
teclados, entre outros.
6.1 Conversores de código
Conversores de código são empregados na conversão de códigos ou formatos de dados 
binários. Como exemplo de aplicação, considere dois circuitos previamente projetados 
usando códigos diferentes que devem ser conectados, ou ainda, por questões econômicas/
segurança, dados devem ser convertidos para um formato (código) específico antes de ser 
enviado. Nesses casos, usam-se os conversores de códigos.
De forma prática, o número de linhas do código de entrada corresponde ao número de 
variáveis em cada mapa de Karnaugh, e o número de linhas de saída corresponde ao nú-
mero de mapas de Karnaugh. As capacidades dos códigos de entrada e saída devem ser 
iguais. Como exemplo, considere a conversão do código BCD5311 para o código BCD8421, 
como ilustrado na Tabela 6.1. Neste exemplo são necessários quatro mapas; A, B, C e D, 
cada um com as variáveis H, G, F e E.
T abela 6.1 Conversão de códigos BCD5311 para BCD8421.
Código BCD5311 BCD8421
Pesos 5 3 1 1 8 4 2 1
Variáveis H G F E D C B A
0 0 0 0 0 0 0 0 0
1 0 0 0 1 0 0 0 1
2 0 0 1 1 0 0 1 0
3 0 1 0 0 0 0 1 1
4 0 1 0 1 0 1 0 0
5 0 1 1 1 0 1 0 1
6 1 0 0 1 0 1 1 0
7 1 0 1 1 0 1 1 1
8 1 1 0 0 1 0 0 0
9 1 1 0 1 1 0 0 1
C A P Í T U L O
7Circuitos Aritméticos
Circuitos aritméticos são amplamente usados em computadores, controladores, processado-
res digitais e em uma grande variedade de circuitos de aplicações específicas. Basicamente, 
todos os cálculos matemáticos são feitos por circuitos aritméticos. O gerenciamento avan-
çado de endereços e as tomadas de decisões em computadores são dependentes de circuitos 
aritméticos. Adicionalmente, grande parte do processamento de sinais é feita por circuitos 
aritméticos, demonstrando assim a importância e a dependência desses circuitos.
7.1 Soma
Na matemática convencional, quando se faz uma soma, na verdade faz-se um desloca-
mento na sequência de contagem. Considere o valor 2 na sequência da Figura 7.1.a. Ao se 
somar 5, há um deslocamento de 5 unidades após o 2, atingindo o valor 7.
0
1
2
3
4
5
+5
+5
6
7
8
9
0
1
2
3
4
5
(a) (b)
6
7
8
9
0
1
1
1
1
1
1
1
1
1
1
1
2
3
4
5
6
7
8
9
FIG URA 7.1 Soma em decimal (a) menor que dezena e (b) maior que dezena.
C A P Í T U L O
8Latches e Flip-Flops
Latches e flip-flops são dispositivos básicos de memorização, permitem a implementação 
de memórias e registros e são usados na grande maioria dos circuitos digitais, desde sim-
ples contadores até grandes sistemas com processadores.
Dispositivos de memorização e circuitos que os utilizam são circuitos sequenciais, ou 
seja, são circuitos em que somente a combinação de valores aplicados às suas entradas 
não são mais suficientes para determinar o valor das saídas. A sequência de sua aplicação 
passa a ser um fator determinante.
8.1 Latch Assíncrono
Considere os dois inversores em malha fechada apresentado na Figura 8.1. Se Q = 1 então 
Q = 0, o que por sua vez garante Q = 1. Por outro lado, se Q = 0 então Q = 1, o que por 
sua vez garante Q = 0. Enquanto estiver energizado, o circuito mantém-se estável em uma 
das duas condições.
Q Q
FIGURA 8.1 Dois inversores em malha fechada.
Considere agora a retroalimentação utilizando de portas lógicas Não-OU, como apre-
sentado em duas formas na Figura 8.2, que formam um latch.
C A P Í T U L O
9Contadores
Contadores estão presentes na maioria dos sistemas digitais, desde simples controladores 
até complexos sistemas computacionais, e são usados para contar eventos. Os contadores 
podem ser classificados em síncronos e assíncronos.
Os contadores assíncronos são mais simples, pois não dispõem de sinal único de sin-
cronismo, porém apresentam limitações de forma e velocidade de contagem. Por outro 
lado os contadores síncronos são mais rápidos e flexíveis devido à presença de um sinal 
de sincronismo, que os tornam mais complexos.
9.1 Contadores assíncronos
Em contadores assíncronos, a saída de um flip-flop funciona como entrada de clock para 
o flip-flop seguinte. A Figura 9.1 apresenta a estrutura básica de um contador binário as-
síncrono crescente de quatro bits.
Clk
1
1
Clk
1
1
Clk
1
1
Clk
1
1
A B C D
Contar
J1
Q1
Q1 J2
Q2
Q2 J4
Q4
Q4J3
Q3
Q3
K1 K2 K4K3
FIG URA 9.1 Contador binário assíncrono crescente de quatro bits.
Como as entradas JK de cada flip-flop estão ligadas em 1, ao ocorrer uma rampa de 
descida na entrada de clock de um flip-flop, sua saída muda de estado. Como a saída Q de 
um flip-flop está ligada à entrada de clock do flip-flop seguinte, ao ocorrer uma transição 
de 1 para 0 nessa saída, o flip-flop seguinte é estimulado.
Assim, admitindo-se inicialmente que todas as saídas estejam em 0, ao ocorrer o 
pulso Contar, a saída Q1 passa de 0 para 1. Essa transição de 0 para 1 não causa nada no 
C A P Í T U L O
10Máquinas de Estado
Máquinas de estado são circuitos digitais utilizados no controle de operações e processos 
digitais, podendo ir desde simples contadores a execução de operações de microprocessa-
dores, e são muito usadas em circuitos de comunicação. As máquinas de estado podem ter 
qualquer número de entradas e pelo menos uma saída. As saídas podem ser dependentes 
ou independentes das entradas e cada uma apresenta suas aplicações.
10.1 Conceitos de máquinas de estados
Máquina de estado é um circuito digital síncrono, com entradas e saídas, como indicado 
na Figura 10.1. Como todo circuito digital síncrono, a máquina de estado apresenta uma 
linha de sincronismo, ou linha de clock.
FIG URA 10.1 Circuito sequencial síncrono.
C A P Í T U L O
11Projeto de Máquinas de Estado por Fluxogramas
Apesar de ser amplamente utilizado, o projeto de máquinas de estado utilizando o método 
convencional é inconveniente para muitas situações e aplicações. Em situações onde já se 
tem a operação desejada da máquina de estado na forma de algoritmo, ou em casos onde 
o número de variáveis de entrada é elevado, ou ainda em casos onde nem todas as com-
binações de entradas ocorrem, o projeto de máquinas de estado por fluxograma se torna 
mais adequado. O uso de fluxograma é uma forma simplificada de projeto de máquina de 
estados.
11.1 Elementos
Os elementos que compõem os fluxogramas de máquinas de estado são: elemento de es-
tado, elemento de decisão e elemento condicional.
O elemento de estado corresponde à condição ou estado da máquina e tem o mesmo 
papel do estado no diagrama de estados. Como indicado na Figura 11.1, o elemento de 
estado apresenta um nome, uma lista de saída se for Máquina de Moore e pode apresentar 
o código atribuído ao estado. Lembre-se que a saída de Moore depende apenas do estado.
Cada elemento de estado, como o próprio nome já revela, reflete o estado do circuito, 
isto é, revela a condição estável e de repouso do circuito. Em outras palavras, enquanto 
não há pulsos de clock, o circuito se mantém estável nesses estados.
Código do
Estado
Nome do
Estado
Lista de Saída
(Máquina de
Moore)
FIG URA 11.1 Elemento de estado.
C A P Í T U L O
12Memórias
Memórias são circuitos de armazenamento de dados usados em computadores, contro-
ladores,processadores digitais e em uma grande variedade de outros circuitos digitais. 
As memórias são empregadas para registrar programas e dados empregados pelos pro-
gramas, tais como valores, textos, imagens e outros. Todo poder computacional fica de-
pendente da capacidade e velocidade das memórias.
As memórias podem armazenar dados temporariamente durante operações ou podem 
registrar dados por prazo indeterminado. Os dados podem ser mantidos de forma estática 
ou dinâmica e as memórias podem ser implementadas por diferentes mecanismos de re-
gistro tais como capacitivo, eletrônico, magnético, óptico e outros, entretanto esse mate-
rial concentra-se somente em memórias semicondutoras.
12.1 Tipos de memórias
As memórias semicondutoras podem ser classificadas em voláteis e não voláteis. Nas 
memórias voláteis a informação é mantida somente enquanto estiverem energizadas, ao 
passo que nas memórias não voláteis a informação é mantida independente da alimenta-
ção. Em geral as memórias voláteis são mais rápidas que as não voláteis.
As memórias ROM, PROM, EPROM, E2PROM e Flash correspondem às não voláteis 
enquanto que a memória RAM corresponde à volátil.
Nas memórias de acesso aleatório (Random Access Memory – RAM) o tempo para 
acessar qualquer posição de memória é basicamente o mesmo, isto é, não depende da po-
sição onde se deseja gravar ou ler o dado. No caso das memórias de acesso sequencial 
(Sequential Access Memory – SAM) o tempo de acesso do dado depende de sua posição 
na memória, como ocorre em CD, DVD, HD e memórias de fita magnética, isto é, de-
pende do atraso mecânico em se acessar a posição do dado desejado.
C A P Í T U L O
13Dispositivos Lógicos Programáveis
Dispositivos Lógicos Programáveis – PLD (Programmable Logic Devices) são circuitos 
integrados que podem ser configurados para implementar circuitos digitais, capazes de 
abranger desde funções lógicas básicas até sistemas complexos com processadores e con-
troladores e recentemente até processadores de múltiplos núcleos.
O uso de DLP permite a implementação de sistemas digitais em um único circuito in-
tegrado. Ao se implementar sistemas em um chip asseguram-se várias vantagens:
 • Elevação de confiabilidade: menor número de soldas e roteamento em placas de cir-
cuito impresso, portanto menos susceptibilidade a falhas.
 • Redução de área: menor número de componentes implica menor área, o que por sua 
vez permite a obtenção de produtos finais menores.
 • Proteção de propriedade intelectual: dificuldade maior em engenharia reversa.
 • Menor consumo de energia: menor número de componentes e utilização de compo-
nente mais avançado propicia menor consumo de energia.
 • Redução de custo: combinação dos fatores acima implica menor custo final.
Além dos Dispositivos Lógicos Programáveis poderem ser utilizados no produto final, 
também podem ser utilizados durante o desenvolvimento. Havendo detecção de erro em 
alguma fase do projeto, basta uma nova programação.
A desvantagem dos Dispositivos Lógicos Programáveis reside no seu custo, ainda não 
otimizado para utilização de produtos para produção em larga escala. Nesse caso, o uso 
de circuitos integrados dedicados se torna a melhor solução econômica. Ainda assim, o 
DLP pode ser usado durante o desenvolvimento do produto.
13.1 Arranjos lógicos programáveis
Funções lógicas podem ser implementadas com portas lógicas básicas, com multiplexadores 
e também com memórias ROM. Considere a memória ROM da Figura 14.9, reapresentada 
agora como Figura 13.1.
C A P Í T U L O
14Famílias Lógicas
Os circuitos lógicos são projetados para desempenhar determinadas funções lógicas ou 
rotinas. Esses circuitos lógicos podem ser implementados através de diversas formas, tais 
como circuitos elétricos, ópticos, magnéticos, eletrônicos e outros.
O uso de material semicondutor é o mais difundido pelo custo de fabricação, densi-
dade de componentes, dissipação de potência, velocidade de operação, facilidade de uso 
e interfaceamento com inúmeros meios. Os componentes eletrônicos amplamente usados 
na fabricação de circuitos digitais são os transistores bipolares – BJT e os transistores de 
efeito de campo – MOS.
Componentes que apresentam características elétricas, tais como níveis de tensão e cor-
rente, compatíveis entre si, determinam uma família lógica. Em outras palavras, componen-
tes de uma mesma família lógica são compatíveis entre si em termos de corrente e tensão.
14.1 Lógica resistor-transistor
A lógica resistor-transistor – RTL (Resistor-Transistor Logic) é implementada usando 
resistores e transistores bipolares e foi usada nos primeiros computadores, que ainda usa-
vam componentes discretos. RTL foi a primeira família lógica integrada que começou a 
ser produzida em 1961 e já em 1962 os circuitos integrados foram usados no programa 
espacial Apolo.
A Figura 14.1.a apresenta a implementação do inversor, a Figura 14.1.b mostra sua 
representação lógica e a Figura 14.1.c apresenta a curva de transferência, que pode ser 
obtida por simulação ou experimento prático. Para tensões de entrada VI menores que 
0,7V o transistor encontra-se em corte e consequentemente a tensão de saída VO vale 
5V. Por outro lado, para tensões de entrada VI acima de 1,66V, o transistor encontra-se 
saturado e, portanto, a tensão de saída VO vale 0,2V. 
Em outras palavras, para sinal de entrada em 0 (tensões menores que 0,7V) a saída 
está em 1 (5V) e para sinal de entrada em 1 (tensões acima de 1,66V) a saída em 0 (0,2V), 
caracterizando assim um inversor.
Para tensões de entrada VI entre 0,7V e 1,66 V, o transistor encontra-se na região li-
near de operação, onde IC = β.IB é válido. Essa condição de operação é evitada, pois 
C A P Í T U L O
15Circuitos CMOS
A tecnologia CMOS sobrepujou a tecnologia bipolar na maioria das aplicações, princi-
palmente por oferecer maior densidade de integração, menor custo de produção e menor 
dissipação de potência. Alguns circuitos tornam-se mais simples de serem implementa-
dos em CMOS e há também circuitos que seriam extremamente complexos se fossem im-
plementados em outras tecnologias.
O desenvolvimento de circuitos complexos muitas vezes utiliza a interligação de blo-
cos simples, ou circuitos simples que são frequentemente empregados. Este capítulo apre-
senta a estrutura e operação de alguns blocos focados em aplicações digitais, assim como 
algumas formas de implementação, incluindo a associação de CMOS com bipolar.
15.1 Circuito CMOS estático e dinâmico
A Figura 15.1 mostra as três formas de se implementar um inversor estático. Enquanto 
a tensão de alimentação e o sinal de entrada forem mantidos, o valor lógico da saída se 
mantém. As vantagens do inversor CMOS (Figura 15.1.a) são sua baixa corrente quies-
cente, margem de ruído baixa e alta velocidade. O inversor NMOS com carga resistiva 
(Figura 15.1.b) apresenta baixo fan in porém ocupa muita área de silício. O inversor 
NMOS com carga ativa (Figura 15.1.c) também oferece baixo fan in, porém ocupando 
pouca área de silício. Entretanto, apesar do baixo fan in, esses dois últimos inverso-
res apresentam corrente quiescente se a entrada estiver em nível alto, além de oferecer 
baixa velocidade.
A Figura 15.2 apresenta um inversor implementado em lógica dinâmica. Essa lógica 
apresenta baixo fan in (similar aos inversores NMOS), área reduzida (similar aos CMOS 
e NMOS com carga ativa) e baixa corrente quiescente (como o inversor CMOS). Nesse 
circuito, CL representa todas as capacitâncias parasitas associadas ao nó Y, tais como ca-
pacitância da carga, fiação e do próprio acionador.
C A P Í T U L O
16Conversão AD & DA
Há um intenso e contínuo desenvolvimento de circuitos digitais, processadores e algorit-
mos de implementação lógica, assim como um desenvolvimento impressionante em ter-
mos de software e técnicas de inteligência artificial. Entretanto, o mundo natural é basica-
mente analógico: sons, imagens, movimentos, temperatura, vibrações, etc.
Assim, existe a necessidade de compatibilizaresses dois mundos. Informações do 
mundo analógico precisam ser convertidas em valores digitais para serem processadas 
digitalmente. Essa conversão é feita pelos conversores Analógico-Digital – AD, como re-
presentado pela Figura 16.1.a.
Neste conversor, um sinal analógico vi é convertido em uma palavra digital de N bits. 
Uma palavra digital, ou valor digital, é representado por:
 (16-1)
Observe que nessa notação, bo é o bit mais significativo e N é o número de bits da pa-
lavra digital.
Da mesma forma, resultados de processamentos digitais devem ser convertidos em 
grandezas analógicas para serem úteis no mundo analógico. Essa conversão é feita pe-
los conversores Digital-Analógico – DA, como representado pela Figura 16.1.b. Em 
função da aplicação, esse sinal poderá ser utilizado diretamente ou sofrer filtragens 
analógicas.
CONVERSOR
DA
b0
b1
bN-1
. .
 . vo
CONVERSOR
AD
b0
b1
bN-1
. . .
vi
(a) (b)
FIGU RA 16.1 Conversores (a) DA e (b) AD.
TALES CLEBER PIMENTA
TA
LE
S
 C
LE
B
E
R
 P
IM
E
N
TA
CIRCUITOS
DIGITAIS
C
IR
C
U
ITO
S D
IG
ITA
IS
ANÁLISE E SÍNTESE LÓGICA:
APLICAÇÕES EM FPGA
Os circuitos digitais podem 
atingir uma quantidade muito 
grande de portas lógicas (e 
consequentemente transisto-
res). Como exemplo, o micro-
processador Intel i7 tem mais de 
700 milhões de transistores e o 
Intel Xeon de 18 núcleos supera 
5,5 bilhões de transistores. 
Naturalmente seria impossível 
projetar esses processadores 
pela interligação de portas 
lógicas ou blocos lógicos. De 
fato, o projeto de circuitos com 
algumas centenas de portas 
lógicas já se torna problemático.
Assim, este livro apresenta o 
projeto de circuitos lógicos a 
partir da linguagem de descri-
ção de hardware Verilog. Ao 
final de cada capítulo são apre-
sentadas as descrições em 
Verilog dos circuitos discutidos. 
Isso permite associar de forma 
didática, os circuitos e as suas 
respectivas descrições em 
Verilog. O aprendizado dessa 
linguagem de descrição de 
hardware é facilitado por sua 
similaridade com as linguagens 
de programação.
Ao final de cada capítulo 
também são apresentados 
exercícios e pequenos projetos 
elaborados para sedimentar os 
tópicos apresentados e para dar 
confiança ao leitor.
TALES CLEBER PIMENTA possui 
graduação em Engenharia Elétrica 
pela Universidade Federal de Itajubá 
(UNIFEI), em 1985, e mestrado em 
Engenharia Elétrica também pela 
UNIFEI, em 1988. Obteve seu 
doutorado em 1992 pela Ohio 
University – EUA. Fez o primeiro 
pós-doutorado na The Ohio State 
University, em 1997, em circuitos 
integrados analógicos de baixa 
tensão, o segundo pós-doutorado 
na Virginia Politechnic Institute and 
State University, em 2005, na área 
de circuitos integrados de frequên-
cias ultraelevadas, e o terceiro 
pós-doutorado, em 2014, pela 
University of North Florida, em 
circuitos de aplicações biomédicas. 
É professor titular da Universidade 
Federal de Itajubá, onde trabalha 
desde 1985, e coordenador do 
Grupo de Microeletrônica e da 
equipe Uai!rrior de competição de 
robótica. Ministra as disciplinas de 
circuitos digitais na graduação e 
disciplinas da área de microeletrô-
nica na pós-graduação.
Consulte nosso catálogo completo e últimos 
lançamentos em www.elsevier.com.br 
C
ap
a:
 V
in
ic
iu
s 
D
ia
s 
| F
o
to
: 
e
-c
ro
w
@
is
to
c
k.
c
o
m
Os circuitos digitais estão tão intensamente presentes em 
nossas vidas, que é difícil imaginar viver sem eles. Eles estão 
presentes em telefones móveis, tablets, computadores, jogos 
eletrônicos, máquinas fotográficas, televisores e tudo que 
acessa a Internet, além da própria Internet.
Esses circuitos permitem a operação de automóveis, barcos, 
aviões, eletrodomésticos (tais como geladeiras, lava-roupas, 
lava-louças e máquinas de café), equipamentos médicos, 
equipamentos militares e muitos outros. Muitas vezes nem 
percebemos ou sabemos de sua existência, tais como seu uso 
em rodovias e ferrovias, produção agrícola, portos e aeropor-
tos, produção de energia, e em muitas outras áreas.
Tudo está se tornando “digital”, e isso é entendido como sendo 
melhor, mais rápido, mais econômico, mais funcional, etc. 
Este livro tem por objetivo oferecer os subsídios para entender 
os circuitos e as estruturas lógicas que tornam tudo isso possí-
vel. Mais do que entender, o texto busca oferecer uma visão 
orientada a projetos.
Circuitos digitais é voltado aos alunos de cursos de engenharia 
elétrica, eletrônica, controle e automação, computação, ciên-
cia de computação e similares, assim como cursos técnicos e 
tecnológicos.
O texto apresenta conceitos de forma simples e intuitiva, sem 
se prender ao formalismo científico, isto é, foca no aspecto 
prático e didático, e aborda os conceitos básicos de circuitos 
digitais, desde a álgebra de Boole até máquinas de estado, que 
formam o coração dos processadores e controladores.

Outros materiais