Preencha a ficha de cadastro no final deste livro e receba gratuitamente informações sobre os lançamentos e as promoções da Elsevier. Consulte também nosso catálogo completo, últimos lançamentos e serviços exclusivos no site www.elsevier.com.br
© 2010, Elsevier Editora Ltda. Todos os direitos reservados e protegidos pela Lei n o 9.610, de 19/02/1998. Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônicos, mecânicos, fotográficos, gravação ou quaisquer outros. Copidesque: Ivone Teixeira Revisão: Marco Antônio Corrêa Editoração Eletrônica: SBNigri Artes e Textos Ltda.
Elsevier Editora Ltda. Conhecimento sem Fronteiras Rua Sete de Setembro, 111 – 16 o andar 20050-006 – Centro – Rio de Janeiro – RJ – Brasil Rua Quintana, 753 – 8 o andar 04569-011 – Brooklin – São Paulo – SP – Brasil Serviço de Atendimento ao Cliente 0800-0265340
[email protected] ISBN 978-85-352-3465-7 Muito zelo e técnica foram empregados na edição desta obra. No entanto, podem ocorrer erros de digitação, impressão ou dúvida conceitual. Em qualquer das hipóteses, solicitamos a comunicação ao nosso Serviço de Atendimento ao Cliente, para que possamos esclarecer ou encaminhar a questão. Nem a editora nem o autor assumem qualquer responsabilidade por eventuais danos ou perdas a pessoas ou bens, originados do uso desta publicação. Nota:
Embora os autores tenham colocado seu melhor esforço na escrita deste livro, eles não assumem qualquer responsabilidade por erros ou omissões, ou qualquer dano que possa resultar das informações aqui apresentadas.
CIP-Brasil. Catalogação na fonte. Sindicato Nacional dos Editores de Livros, RJ _________________________________________________________________________ P413e Pedroni, Volnei Eletrônica digital moderna com VHDL / Volnei A. Pedroni; [tradução Arlete Simille Marques]. – Rio de Janeiro: Elsevier, 2010. Tradução de: Digital eletronics and design with VHDL Apêndice Inclui bibliografia ISBN 978-85-352-3465-7 1. VHDL (Linguagem descritiva de hardware). 2. Circuitos integrados digitais. I. Título. 10-0447.
CDD: 621.392 CDU: 621.3 _________________________________________________________________________
Dedicatória
Dedicado a Cláudia, Patrícia, Bruno e Ricardo. “Como dizem os construtores, as pedras maiores não ficariam bem assentadas sem as menores.” Platão (428-348 a.C.)
O autor
Volnei A. Pedroni é doutor (Ph.D.) em Engenharia Elétrica pelo California Institute of Technology (CALTE-
CH). Atualmente é professor de Engenharia Elétrica na Universidade Tecnológica Federal do Paraná (UTFPR), no Brasil. Atuou como professor visitante no Harvey Mudd College (EUA), California Institute of Technology (EUA) e Università degli Studi di Trento (Itália). É também autor de outros dois livros: Circuit Design with VHDL (MIT Press, EUA) e Circuitos Eletrônicos (LTC, Rio de Janeiro).
Prefácio
O livro abrange com cuidado e diligência os três aspectos fundamentais relacionados ao ensino de circuitos digitais: princípios digitais, eletrônica digital e projeto digital. O ponto de partida foi a adoção de certas premissas, as quais levaram a uma sequência ampla e coerente de conteúdos. Tais premissas estão resumidas a seguir. Premissas do Livro
•
•
•
•
• •
•
O livro está dividido em duas partes, com teoria nos Capítulos 1–18 e prática nos Capítulos 19–25. A parte teórica inclui conceitos digitais, o estudo de eletrônica digital e a análise de circuitos digitais. A parte prática inclui o estudo de VHDL para síntese e para simulação, a elaboração de projetos com VHDL e, finalmente, o estudo de simulações com SPICE. Apresenta uma clara e rigorosa distinção entre circuitos combinacionais e sequenciais. No caso dos circuitos combinacionais, distinção adicional é feita entre circuitos lógicos e circuitos aritméticos. No caso dos circuitos sequenciais, distinção adicional é feita entre projetos regulares e projetos baseados em máquinas de estados. Inclui novas e modernas técnicas digitais relacionadas, por exemplo, com códigos de linha, códigos corretores de erros, aplicações baseadas na Internet, circuitos de I/O modernos, implementação detalhada de registradores, construção de memórias semicondutoras, memórias de próxima geração, transistores avançados e dispositivos lógicos programáveis (CPLDs/FPGAs) de última geração, além de uma seleção ampla de projetos standard da indústria. A análise dos circuitos inclui também descrições no nível de transistor (em vez de apenas no nível de portas lógicas), propiciando uma visão mais realista sobre os circuitos integrados digitais e também uma introdução à microeletrônica (VLSI), ambos indispensáveis em cursos digitais modernos. Exemplos e exercícios são nomeados a fim de facilitar a identificação do circuito ou aspecto sob análise. A parte experimental inicia com um capítulo que resume a linguagem VHDL. Embora este capítulo tenha sido mantido tão sucinto quanto possível, seu conteúdo é amplo e foi cuidadosamente selecionado, contendo inclusive aspectos da recém-lançada versão 2008 de VHDL. Tudo nesse capítulo é sintetizável. A propósito, manter o código VHDL que é para síntese separado daquele que é para simulação é outra das premissas fundamentais do livro. Em seguida, o livro apresenta uma seleção ampla de exemplos completos de projetos, incluindo aplicações reais, códigos completos (e não apenas esboços parciais), síntese dos circuitos em FPGAs, resultados de simulação e comentários explicativos.
•
Finalmente, o uso de VHDL para simulação foi também incluído no livro e consta em capítulo separado. Nele, os quatro tipos de simulações são descritos (é o primeiro livro com tal cobertura). Exemplos completos de simulações, da mais básica até a totalmente automatizada, são apresentados. O livro termina com um outro capítulo sobre simulação, desta vez utilizando SPICE. Conteúdo do Livro
O livro pode ser dividido em duas partes, com teoria nos Capítulos 1–18 e os experimentos (laboratório) nos Capítulos 19–25 (além dos apêndices). Cada uma dessas partes pode ser subdividida conforme descrito abaixo. • Parte I – Teoria (Aulas explanatórias) Fundamentos: Capítulos 1–5 Fundamentos avançados: Capítulos 6–7 Tecnologia: Capítulos 8–10 Análise de circuitos: Capítulos 11–15 Tecnologia adicional: Capítulos 16–18 •
Parte II – Experimentos (Laboratório) Estudo da linguagem VHDL: Capítulo 19 Projetos (síntese) com VHDL: Capítulos 20–23 Simulação com VHDL: Capítulo 24 e Apêndice A Simulação com SPICE: Capítulo 25 e Apêndice B O livro contém 163 exemplos enumerados, 622 figuras e 545 exercícios. Público-alvo
Este livro aborda as necessidades específicas de estudantes de graduação e de pós-graduação em engenharia elétrica/eletrônica, engenharia de computação e ciência da computação. Sugestões sobre a Utilização do Livro
Para as aulas teóricas, três sugestões são apresentadas na primeira tabela, dependendo do nível projetado para o curso. Para as aulas de laboratório, sugestões equivalentes constam na segunda tabela. Esses conteúdos podem ser utilizados em paralelo para cursos com teoria e prática, ou separadamente, para cursos só teóricos ou só de l aboratório. Nas tabelas, um “X” significa o conteúdo completo, uma barra inclinada “/” indica conteúdo parcial (somente as seções introdutórias) e um espaço em branco significa que o capítulo deve ser saltado. Todavia, essas são apenas sugestões baseadas na experiência do autor, devendo, portanto, servir apenas como referência geral. Capítulos
Teoria
Nível do curso
1
2
3
4
5
6
Fundamental
x
x
x
x
x
/
Intermediário
x
x
x
x
x
x
Avançado
x
x
x
x
x
x
x
8
9
10
11
12
13
14
15
16
17
18
/
/
x
x
x
x
x
/
/
x
/
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
A
B
Capítulos e Apêndices
Laboratório
Nível do curso
7
19
20
21
22
23
24
Fundamental
x
x
x
x
x
Intermediário
x
x
x
x
x
x
Avançado
x
x
x
x
x
x
25
x x
x
x
Website do Livro
Site do livro (com material complementar): www.elsevier.com.br/pedroni Agradecimentos
Gostaria de expressar minha gratidão aos revisores da edição original ( Digital Electronics and Design with VHDL), Don Bouldin, da University of Tennessee, Robert J. Mikel, da Cleveland State University, Mark Faust, da Portland State University, Joanne E. DeGroat, da Ohio State University, assim como aos vários revisores anônimos por seus comentários e sugestões, os quais foram instrumentais para dar ao livro sua forma final. Quero agradecer também a Gert Cauwenberghs, da University of California San Die go, e David M. Harris, do Harvey Mudd College, pelos conselhos nos estágios iniciais deste projeto. Sou também grato a Bruno U. Pedroni e Ricardo U. Pedroni pela ajuda com parte dos exercícios. Gostaria de estender meu apreço ao pessoal da Elsevier (EUA) por seu trabalho extraordinário. Em particular, gostaria de citar Charles B. Glaser, editor de aquisições, pela confiança e orientação amigável, Dawnmarie E. Simpson, editora de produção, pela paciência e competência no processo de produção, e Jeanne Hansen, revisora, pela análise cuidadosa do manuscrito. Edição em Português
Gostaria de estender meus agradecimentos aos professores Fernando G. Moraes, da PUC-RS, e Cesar A. Zeferino, da Univali, pelos valiosos comentários relativos à edição em língua portuguesa do livro. Sou também grato à equipe da Elsevier no Brasil, em particular André G. Wolff, Silvia B. Lima, Vanessa V. B. Huguenin e Regiane M. P. Barboza, pelo trabalho e dedicação na tradução e produção desta edição.
Sumário
Capítulo 1 – Introdução .........................................................................................................................................1 1.1 Notas Históricas ................................................................................................................................1 1.2 Analógico versus Digital .....................................................................................................................3 1.3 Bits, Bytes e Palavras ..........................................................................................................................5 1.4 Circuitos Digitais ...............................................................................................................................6 1.5 Circuitos Combinacionais versus Circuitos Sequenciais .....................................................................8 1.6 Circuitos Integrados ..........................................................................................................................9 1.7 Placas de Circuitos Impressos ..........................................................................................................11 1.8 Valores Lógicos versus Valores Físicos ..............................................................................................12 1.9 Não Programável, Programável e com Hardware Programável ........................................................13 1.10 Formas de Onda Binárias................................................................................................................. 13 1.11 Respostas DC, AC e Transiente ........................................................................................................14 1.12 Dispositivos Lógicos Programáveis................................................................................................... 16 1.13 Síntese e Simulação de Circuitos com VHDL ...................................................................................16 1.14 Simulação de Circuitos com SPICE.................................................................................................. 17 1.15 Análise no Nível de Portas Lógicas versus Análise no Nível de Transistor ........................................ 17 Capítulo 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7
– Representações Binárias....................................................................................................................19 Código Binário ................................................................................................................................19 Códigos Octal e Hexadecimal .........................................................................................................21 Código Gray ....................................................................................................................................22 Código One-Hot..............................................................................................................................22 Código Johnson...............................................................................................................................23 Código BCD ....................................................................................................................................23 Códigos para Números Negativos ....................................................................................................24 2.7.1 Código Sinal-Magnitude ....................................................................................................24 2.7.2 Código Complemento de Um ............................................................................................ 24 2.7.3 Adição Binária .................................................................................................................... 25 2.7.4 Código Complemento de Dois ........................................................................................... 26 2.8 Representação por Ponto Flutuante ................................................................................................. 28 2.8.1 Padrão IEEE 754 ................................................................................................................28 2.8.2 Ponto Flutuante versus Inteiro ............................................................................................31 2.9 Código ASCII ..................................................................................................................................32
2.9.1 Código ASCII Básico ..........................................................................................................33 2.9.2 Código ASCII Estendido ....................................................................................................33 2.10 Unicode...........................................................................................................................................33 2.10.1 Caracteres Unicode ............................................................................................................33 2.10.2 Codificação UTF-8 .............................................................................................................34 2.10.3 Codificação UTF-16 ...........................................................................................................35 2.10.4 Codificação UTF-32 ..........................................................................................................36 2.11 Exercícios ........................................................................................................................................37 Capítulo 3 – Aritmética Binária ............................................................................................................................43 3.1 Adição sem Sinal .............................................................................................................................43 3.2 Adição e Subtração com Sinal .........................................................................................................45 3.3 Operações de Deslocamento (Shift) ................................................................................................. 47 3.4 Multiplicação sem Sinal ................................................................................................................... 49 3.5 Multiplicação com Sinal...................................................................................................................50 3.6 Divisão sem Sinal.............................................................................................................................52 3.7 Divisão com Sinal ............................................................................................................................53 3.8 Adição e Subtração com Ponto Flutuante .......................................................................................53 3.9 Multiplicação com Ponto Flutuante ................................................................................................. 55 3.10 Divisão com Ponto Flutuante...........................................................................................................56 3.11 Exercícios ........................................................................................................................................57 Capítulo 4 – Introdução aos Circuitos Digitais......................................................................................................61 4.1 Introdução aos Transistores MOS.....................................................................................................61 4.2 Inversor e Lógica CMOS ..................................................................................................................63 4.2.1 Inversor .............................................................................................................................63 4.2.2 Lógica CMOS ..................................................................................................................... 64 4.2.3 Consumo de Energia ..........................................................................................................64 4.2.4 Produto Potência-Atraso ....................................................................................................66 4.2.5 Voltagens Lógicas ...............................................................................................................66 4.2.6 Diagramas de Tempo para Circuitos Combinacionais .........................................................67 4.3 Portas AND e NAND ....................................................................................................................... 68 4.4 Portas OR e NOR.............................................................................................................................70 4.5 Portas XOR e XNOR ........................................................................................................................ 72 4.6 Somador de Módulo 2 ..................................................................................................................... 73 4.7 Buffer .............................................................................................................................................. 74 4.8 Buffer de Três Estados...................................................................................................................... 75 4.9 Buffer de Dreno Aberto.................................................................................................................... 76 4.10 Flip-Flop Tipo D .............................................................................................................................77 4.11 Registrador de Deslocamento...........................................................................................................79 4.12 Contadores ......................................................................................................................................80 4.13 Gerador de Sequência Pseudorrandômica........................................................................................82 4.14 Exercícios ........................................................................................................................................83 Capítulo 5 5.1 5.2 5.3 5.4 5.5
– Álgebra Booleana .............................................................................................................................91 Álgebra Booleana .............................................................................................................................91 Tabelas-Verdade...............................................................................................................................95 Minterms e Equações SOP ...............................................................................................................96 Maxterms e Equações POS...............................................................................................................98 Circuitos Padrões para Equações SOP e POS ...................................................................................99
5.6 5.7 5.8 5.9 5.10
Mapas de Karnaugh ....................................................................................................................... 103 Mapas de Karnaugh Extensos ........................................................................................................106 Outras Técnicas de Simplificação de Funções ................................................................................107 Tempos de Propagação e Glitches ..................................................................................................109 Exercícios ......................................................................................................................................110
Capítulo 6 – Códigos de Linha ...........................................................................................................................117 6.1 Utilização de Códigos de Linha...................................................................................................... 117 6.2 Parâmetros e Tipos de Códigos de Linha .......................................................................................119 6.3 Códigos Unipolares ....................................................................................................................... 121 6.4 Códigos Polares .............................................................................................................................122 6.5 Códigos Bipolares ..........................................................................................................................123 6.6 Códigos Bifase/Manchester ...........................................................................................................123 6.7 Códigos MLT ................................................................................................................................123 6.8 Códigos mB/nB .............................................................................................................................124 6.9 Códigos PAM ................................................................................................................................126 6.10 Exercícios ......................................................................................................................................131 Capítulo 7 – Códigos de Detecção e Correção de Erros ......................................................................................135 7.1 Códigos Detectores/Corretores de Erros......................................................................................... 135 7.2 Códigos de Paridade Simples (SPC) ............................................................................................... 137 7.3 Códigos de Redundância Cíclica (CRC) ......................................................................................... 138 7.4 Códigos de Hamming .................................................................................................................... 139 7.5 Códigos Reed-Solomon (RS)..........................................................................................................142 7.6 Intercalação ...................................................................................................................................144 7.7 Códigos Convolucionais ................................................................................................................146 7.8 Decodificador de Viterbi ................................................................................................................148 7.9 Códigos Turbo ...............................................................................................................................150 7.10 Códigos com Paridade de Baixa Densidade (LDPC) ....................................................................... 150 7.11 Exercícios ......................................................................................................................................154 Capítulo 8 – Transistor Bipolar ...........................................................................................................................159 8.1 Semicondutores.............................................................................................................................159 8.2 O Transistor Bipolar (BJT) .............................................................................................................160 8.3 Características I-V..........................................................................................................................162 8.4 Resposta DC ..................................................................................................................................163 8.5 Resposta Transiente ....................................................................................................................... 167 8.6 Resposta AC ..................................................................................................................................168 8.7 Transistores Bipolares Modernos....................................................................................................170 8.7.1 BJT com Emissor de Polissilício........................................................................................170 8.7.2 Transistor Bipolar de Junção Heterogênea ........................................................................170 8.8 Exercícios ......................................................................................................................................172 Capítulo 9 – Transistor de Efeito de Campo .......................................................................................................175 9.1 Semicondutores.............................................................................................................................175 9.2 O Transistor de Efeito de Campo (MOSFET) .................................................................................176 9.3 Características I-V..........................................................................................................................179 9.4 Resposta DC ..................................................................................................................................180 9.5 Inversor CMOS.............................................................................................................................. 183 9.6 Resposta Transiente ....................................................................................................................... 185
9.7 9.8
9.9
Resposta AC ..................................................................................................................................187 MOSFETs Modernos...................................................................................................................... 188 9.8.1 MOSFETs Si-SiGe Deformados......................................................................................... 188 9.8.2 MOSFETs SOI .................................................................................................................. 189 9.8.3 Tecnologias BiCMOS .......................................................................................................189 Exercícios ......................................................................................................................................189
Capítulo 10 – Famílias Lógicas e I/Os .................................................................................................................195 10.1 Famílias Lógicas Baseadas em BJT..................................................................................................195 10.2 Lógica Diodo-Transistor (DTL) ......................................................................................................196 10.3 Lógica Transistor-Transistor (TTL) .................................................................................................197 10.3.1 Circuito TTL .................................................................................................................... 197 10.3.2 Faixas de Temperatura .....................................................................................................198 10.3.3 Versões TTL ..................................................................................................................... 198 10.3.4 Fan-In e Fan-Out .............................................................................................................199 10.3.5 Tensão de Alimentação, Tensões de Sinal e Margem de Ruído .......................................... 200 10.4 Lógica Acoplada pelo Emissor .......................................................................................................201 10.5 Famílias Lógicas Baseadas em MOSFET ......................................................................................... 201 10.6 Lógica CMOS ................................................................................................................................202 10.6.1 Circuitos CMOS ...............................................................................................................202 10.6.2 Famílias CMOS HC e HCT .............................................................................................. 202 10.6.3 Interface CMOS-TTL........................................................................................................204 10.6.4 Fan-In e Fan-Out .............................................................................................................204 10.6.5 Tensão de Alimentação, Tensões de Sinal e Margem de Ruído .......................................... 204 10.6.6 CMOS de Baixa Tensão ....................................................................................................205 10.6.7 Consumo de Potência ......................................................................................................205 10.6.8 Produto Potência-Atraso ..................................................................................................205 10.7 Outras Arquiteturas MOS Estáticas ................................................................................................ 205 10.7.1 Lógica Pseudo-nMOS.......................................................................................................205 10.7.2 Lógica com Portas de Transmissão ...................................................................................206 10.7.3 Lógica BiCMOS................................................................................................................ 207 10.8 Arquiteturas MOS Dinâmicas ........................................................................................................208 10.8.1 Lógica Dinâmica ..............................................................................................................208 10.8.2 Lógica Dominó ................................................................................................................ 209 10.8.3 Lógica CMOS com Clock (C2MOS) .................................................................................209 10.9 Circuitos de I/O Modernos ............................................................................................................210 10.9.1 Padrões TTL e LVTTL ......................................................................................................211 10.9.2 Padrões CMOS e LVCMOS............................................................................................... 212 10.9.3 Padrões SSTL .................................................................................................................. 214 10.9.4 Padrões HSTL ................................................................................................................. 217 10.9.5 Padrão LVDS ................................................................................................................... 218 10.9.6 Exemplo de uso do LVDS: Barramento PCI Express .........................................................219 10.10 Exercícios ......................................................................................................................................220 Capítulo 11 – Circuitos Combinacionais Lógicos................................................................................................ 227 11.1 Circuitos Combinacionais versus Circuitos Sequenciais .................................................................227 11.2 Circuitos Lógicos versus Circuitos Aritméticos ..............................................................................228 11.3 Portas Lógicas Básicas .................................................................................................................... 228 11.4 Portas Lógicas Compostas..............................................................................................................229 11.4.1 Circuito CMOS Baseado em SOP .....................................................................................229 11.4.2 Circuito CMOS Baseado em POS .....................................................................................230
11.5 Codificadores e Decodificadores ....................................................................................................231 11.5.1 Decodificador de Endereço .............................................................................................. 231 11.5.2 Decodificador de Endereço com Enable ...........................................................................233 11.5.3 Decodificadores de Endereço Grandes .............................................................................233 11.5.4 Diagramas de Tempo........................................................................................................234 11.5.5 Codificador de Endereço..................................................................................................235 11.6 Multiplexadores.............................................................................................................................237 11.6.1 Multiplexadores Básicos ...................................................................................................237 11.6.2 Multiplexadores Grandes .................................................................................................238 11.6.3 Diagramas de Tempo........................................................................................................239 11.7 Detector de Paridade ..................................................................................................................... 240 11.8 Codificador de Prioridade..............................................................................................................240 11.9 Ordenador Binário ......................................................................................................................... 241 11.10 Deslocadores (Shifters) ..................................................................................................................242 11.11 Geradores de Clock sem Sobreposição........................................................................................... 244 11.12 Estreitadores de Pulsos ..................................................................................................................245 11.13 Portas com Histerese (Schmitt Triggers) ......................................................................................... 245 11.14 Memórias ......................................................................................................................................247 11.15 Exercícios ......................................................................................................................................247 11.16 Exercícios com VHDL ....................................................................................................................252 11.17 Exercícios com SPICE ....................................................................................................................252 Capítulo 12 – Circuitos Combinacionais Aritméticos..........................................................................................253 12.1 Somadores de Um Bit (Full Adder e Half Adder) ...........................................................................253 12.2 Somador Carry-Ripple ................................................................................................................... 255 12.3 Sinais Generate e Propagate ...........................................................................................................255 12.4 Somador Manchester Carry-Chain ................................................................................................ 257 12.5 Somador Carry-Lookahead ...........................................................................................................258 12.6 Somadores Grandes ....................................................................................................................... 260 12.7 Somador Carry-Skip ...................................................................................................................... 261 12.8 Somador Carry-Select ................................................................................................................... 262 12.9 Somadores Lookahead com Arquitetura em Árvore ....................................................................... 262 12.10 Somador Serial .............................................................................................................................263 12.11 Somadores/Subtratores com Sinal .................................................................................................263 12.12 Incrementador, Decrementador e Complementador de Dois ..........................................................265 12.13 Comparadores ...............................................................................................................................266 12.14 Unidade Lógica e Aritmética (ALU) ...............................................................................................267 12.15 Multiplicadores..............................................................................................................................269 12.16 Divisores........................................................................................................................................273 12.17 Exercícios ......................................................................................................................................273 12.18 Exercícios com VHDL ....................................................................................................................276 12.19 Exercícios com SPICE ....................................................................................................................276 Capítulo 13 – Registradores ................................................................................................................................277 13.1 Lógica Sequencial versus Lógica Combinacional.............................................................................277 13.2 Latch SR (SRL) ..............................................................................................................................278 13.3 Latch D (DL) .................................................................................................................................279 13.3.1 Funcionamento do DL ....................................................................................................279 13.3.2 Parâmetros Relacionados ao Tempo..................................................................................280 13.3.3 Circuitos DL .................................................................................................................... 281
13.3.4 DLs Estáticos Baseados em Multiplexador ........................................................................ 281 13.3.5 DLs Estáticos Tipo RAM ...................................................................................................283 13.3.6 DLs Estáticos de Modo Corrente ......................................................................................284 13.3.7 DLs Dinâmicos.................................................................................................................284 13.4 Flip-flop D (DFF) ..........................................................................................................................285 13.4.1 Funcionamento do DFF ..................................................................................................286 13.4.2 Parâmetros Relacionados ao Tempo..................................................................................287 13.4.3 Técnicas de Construção de DFFs .....................................................................................288 13.4.4 Circuitos de DFFs ............................................................................................................289 13.5 Flip-flops D Mestre-Escravo...........................................................................................................289 13.5.1 DFFs Mestre-Escravo Clássicos ........................................................................................289 13.5.2 Defasagem de Clock e Transições de Clock Lentas ...........................................................291 13.5.3 DFFs Mestre-Escravo Especiais ........................................................................................291 13.6 Flip-flops D Baseados em Pulso ....................................................................................................294 13.6.1 Geradores de Pulsos Estreitos........................................................................................... 295 13.6.2 DFFs Baseados em Pulsos ................................................................................................ 295 13.7 Flip-Flops D de Borda Dupla .........................................................................................................298 13.8 Flip-Flops D Estatisticamente de Baixo Consumo .........................................................................299 13.9 Portas de Controle para Flip-Flops D............................................................................................. 300 13.9.1 DFF com Reset e Preset ....................................................................................................300 13.9.2 DFF com Enable ..............................................................................................................300 13.9.3 DFF com Clear.................................................................................................................300 13.10 Flip-Flop T (TFF) ..........................................................................................................................301 13.11 Exercícios ......................................................................................................................................302 13.12 Exercícios com SPICE ....................................................................................................................307 Capítulo 14 – Circuitos Sequenciais ...................................................................................................................309 14.1 Registradores de Deslocamento......................................................................................................309 14.2 Contadores Síncronos.................................................................................................................... 311 14.2.1 Contadores Síncronos de Módulo 2N Baseados em TFF ....................................................311 14.2.2 Contadores Síncronos de Módulo 2N Baseados em DFF ...................................................313 14.2.3 Contadores Síncronos de Módulo M Baseados em TFF ....................................................314 14.2.4 Contadores Síncronos de Módulo M Baseados em DFF ....................................................317 14.2.5 Contadores com Estado Inicial Não Zero ........................................................................ 319 14.2.6 Contadores Síncronos Grandes ........................................................................................322 14.3 Contadores Assíncronos ................................................................................................................322 14.3.1 Contadores Assíncronos de Módulo 2N ............................................................................323 14.3.2 Contadores Assíncronos de Módulo M .............................................................................324 14.4 Geradores de Sinais ....................................................................................................................... 325 14.5 Divisores de Frequência.................................................................................................................328 14.5.1 Divisão por 2N ..................................................................................................................328 14.5.2 Divisão por M com Fase Assimétrica ................................................................................328 14.5.3 Divisão por M com Fase Simétrica ....................................................................................328 14.5.4 Circuitos com Vários Divisores.........................................................................................330 14.5.5 Divisores de Frequência de Alta Velocidade (prescalers) ...................................................331 14.6 PLLs e Prescalers ...........................................................................................................................331 14.6.1 PLL Básico ....................................................................................................................... 331 14.6.2 Escalonador (Prescaler) ....................................................................................................332 14.6.3 PLL Programável ..............................................................................................................334 14.7 Geradores de Sequências Pseudorrandômicas ................................................................................335 14.8 Scramblers e Descramblers ............................................................................................................336
14.8.1 Scramblers e Descramblers Aditivos ................................................................................336 14.8.2 Scramblers e Descramblers Multiplicativos ...................................................................... 338 14.9 Exercícios ......................................................................................................................................339 14.10 Exercícios com VHDL ....................................................................................................................347 14.11 Exercícios com SPICE ....................................................................................................................347 Capítulo 15 – Máquinas de Estados Finitos ........................................................................................................349 15.1 Modelo para Máquinas de Estados Finitos .....................................................................................349 15.2 Projeto de Máquinas de Estados.....................................................................................................351 15.3 Resolução de Sistemas Digitais e Glitches ......................................................................................360 15.4 Projeto de Máquinas com Grande Número de Estados................................................................... 361 15.5 Projeto de Máquinas com Lógica Combinacional Complexa ..........................................................363 15.6 Projeto de Sistemas com Múltiplas Máquinas ................................................................................365 15.7 Técnica Genérica para Projeto de Geradores de Sinais .................................................................. 367 15.8 Projeto de Divisores de Frequência com Fase Simétrica ................................................................370 15.9 Estilos de Codificação de Máquinas de Estados..............................................................................371 15.10 Exercícios ......................................................................................................................................374 15.11 Exercícios com VHDL ....................................................................................................................379 Capítulo 16 – Memórias Voláteis ........................................................................................................................381 16.1 Tipos de Memórias ........................................................................................................................ 381 16.2 SRAM (Static Random Access Memory) ........................................................................................ 382 16.3 SRAMs Tipo DDR e QDR ..............................................................................................................385 16.4 DRAM (Dynamic Random Access Memory) ..................................................................................387 16.5 SDRAM (Synchronous DRAM) .....................................................................................................389 16.6 SDRAMs Tipo DDR, DDR2 e DDR3 ............................................................................................... 391 16.7 CAM (Content-Addressable Memory) ........................................................................................... 392 16.8 Exercícios ......................................................................................................................................394 Capítulo 17 – Memórias Não Voláteis .................................................................................................................397 17.1 Tipos de Memórias ........................................................................................................................ 397 17.2 MP-ROM (Mask-Programmed ROM) ............................................................................................ 398 17.3 OTP-ROM (One-Time-Programmable ROM) ................................................................................399 17.4 EPROM (Electrically Programmable ROM) ....................................................................................399 17.5 EEPROM (Electrically Erasable Programmable ROM) ...................................................................400 17.6 Memória Flash ...............................................................................................................................402 17.7 Memórias Não Voláteis de Próxima Geração (FRAM, MRAM, PRAM) ............................................ 407 17.8 Exercícios ......................................................................................................................................410 Capítulo 18 – Dispositivos Lógicos Programáveis ...............................................................................................413 18.1 O Conceito de PLDs ...................................................................................................................... 413 18.2 SPLDs (Simple PLDs) .................................................................................................................... 414 18.2.1 PAL (Programmable Array Logic) .....................................................................................414 18.2.2 PLA (Programmable Logic Array) ....................................................................................416 18.2.3 GAL (Generic Array Logic) .............................................................................................. 416 18.3 CPLDs (Complex PLDs) ................................................................................................................418 18.3.1 Arquitetura ...................................................................................................................... 418 18.3.2 CPLDs Xilinx .................................................................................................................. 421 18.3.3 CPLDs Altera .................................................................................................................. 422 18.4 FPGAs (Field Programmable Gate Arrays) .....................................................................................422 18.4.1 Tecnologia de FPGAs .......................................................................................................423
18.4.2 Arquitetura de FPGAs .....................................................................................................424 18.4.3 CLB e Slice da Virtex 5 .....................................................................................................424 18.4.4 LAB e ALM da Stratix III ..................................................................................................425 18.4.5 Blocos RAM ..................................................................................................................... 425 18.4.6 Blocos DSP....................................................................................................................... 426 18.4.7 Gerenciamento de Clock ..................................................................................................426 18.4.8 Tipos de I/O..................................................................................................................... 429 18.4.9 Características Adicionais .................................................................................................429 18.4.10 Resumo e Comparação.....................................................................................................429 18.5 Exercícios ......................................................................................................................................430 Capítulo 19 – Resumo de VHDL ........................................................................................................................433 19.1 Sobre VHDL ..................................................................................................................................433 19.2 Estrutura do Código VHDL ...........................................................................................................434 19.3 Bibliotecas e Pacotes Fundamentais ............................................................................................... 438 19.4 Tipos de Dados Predefinidos .........................................................................................................438 19.5 Objetos (CONSTANT, SIGNAL, VARIABLE, FILE) ...........................................................................442 19.6 Tipos de Dados Definidos pelo Usuário ......................................................................................... 444 19.7 Operadores....................................................................................................................................446 19.8 Atributos .......................................................................................................................................448 19.9 Código Concorrente versus Código Sequencial .............................................................................450 19.10 Código Concorrente (WHEN, SELECT, GENERATE)........................................................................451 19.11 Código Sequencial (PROCESS, IF, CASE, LOOP, WAIT) ..............................................................453 19.12 Instruções auxiliares (ASSERT, ALIAS) ........................................................................................457 19.13 Pacotes (PACKAGE) .......................................................................................................................458 19.14 Componentes (COMPONENT) .........................................................................................................459 19.15 Funções (FUNCTION) ....................................................................................................................461 19.16 Procedimentos (PROCEDURE) ........................................................................................................463 19.17 VHDL para Máquinas de Estados ..................................................................................................465 19.18 VHDL 2008 ...................................................................................................................................468 19.19 Exercícios ......................................................................................................................................470 Capítulo 20 – Projetos de Circuitos Combinacionais Lógicos com VHDL ...........................................................473 20.1 Decodificador de Endereço Genérico ............................................................................................. 473 20.2 Função Conversora de BCD para SSD............................................................................................ 475 20.3 Multiplexador Genérico ................................................................................................................. 477 20.4 Codificador de Prioridade Genérico ............................................................................................... 478 20.5 Memória ROM...............................................................................................................................479 20.6 Memórias RAM Síncronas..............................................................................................................481 20.7 Exercícios ......................................................................................................................................484 Capítulo 21 – Projetos de Circuitos Combinacionais Aritméticos com VHDL .....................................................487 21.1 Somador Carry-Ripple ................................................................................................................... 487 21.2 Somador Carry-Lookahead ............................................................................................................488 21.3 Somadores/Subtratores Sem e Com Sinal ...................................................................................... 490 21.4 Multiplicadores/Divisores Sem e Com Sinal ..................................................................................492 21.5 ALU............................................................................................................................................... 494 21.6 Exercícios ......................................................................................................................................496 Capítulo 22 – Projetos de Circuitos Sequenciais com VHDL ...............................................................................499 22.1 Registrador de Deslocamento com Data-Load ................................................................................499
22.2 22.3 22.4 22.5 22.6 22.7
Debouncer para Chave .................................................................................................................. 501 Temporizador ................................................................................................................................503 Gerador da Série de Fibonacci .......................................................................................................505 Medidores de Frequência...............................................................................................................507 Redes Neurais ................................................................................................................................510 Exercícios ......................................................................................................................................515
Capítulo 23 – Projetos de Máquinas de Estados..................................................................................................517 23.1 Detector de Palavra ........................................................................................................................ 517 23.2 Gerador Universal de Sinais ...........................................................................................................519 23.3 Alarme para Carro ........................................................................................................................ 521 23.4 Driver para LCD ............................................................................................................................529 23.5 Exercícios ......................................................................................................................................537 Capítulo 24 – Simulação de Circuitos Digitais com VHDL..................................................................................539 24.1 Síntese versus Simulação ................................................................................................................539 24.2 Tipos de Testbenches ..................................................................................................................... 540 24.3 Geração de Estímulos .................................................................................................................... 541 24.4 Teste de Estímulos ......................................................................................................................... 543 24.5 Código Padrão para Testbenches ..................................................................................................544 24.6 Desenvolvendo Testbenches Tipo I ................................................................................................ 546 24.7 Desenvolvendo Testbenches Tipo II ............................................................................................... 549 24.8 Desenvolvendo Testbenches Tipo III.............................................................................................. 550 24.9 Desenvolvendo Testbenches Tipo IV .............................................................................................. 550 24.10 Exercícios ......................................................................................................................................552 Capítulo 25 – Simulação de Circuitos Digitais com SPICE..................................................................................557 25.1 Sobre SPICE ..................................................................................................................................557 25.2 Tipos de Análises ...........................................................................................................................558 25.3 Estrutura Básica de um Código SPICE ........................................................................................... 559 25.4 Declarações de Componentes Eletrônicos .....................................................................................561 25.5 Declarações de Fontes DC Independentes .................................................................................... 565 25.6 Declarações de Fontes AC Independentes......................................................................................566 25.7 Declarações de Fontes Dependentes .............................................................................................. 569 25.8 Entradas e Saídas em SPICE ..........................................................................................................570 25.9 Exemplos de Resposta DC .............................................................................................................572 25.10 Exemplos de Resposta Transiente ..................................................................................................575 25.11 Exemplo de Resposta AC ...............................................................................................................577 25.12 Análise Monte Carlo ......................................................................................................................578 25.13 Subcircuitos...................................................................................................................................580 25.14 Exercícios Envolvendo Circuitos Combinacionais Lógicos ............................................................583 25.15 Exercícios Envolvendo Circuitos Combinacionais Aritméticos ......................................................584 25.16 Exercícios Envolvendo Registradores .............................................................................................585 25.17 Exercícios Envolvendo Circuitos Sequenciais.................................................................................586 Apêndice A – Tutorial do Simulador ModelSim ..................................................................................................589 Apêndice B – Tutorial do Simulador PSpice ........................................................................................................599 Referências .........................................................................................................................................................605 Índice .................................................................................................................................................................620