Distribuição Lidel – edições técnicas, lda SEDE: R. D. Estefânia, 183, R/C Dto., 1049-057 LISBOA Internet: 21 354 14 18 – livrarialx@lidel.pt / Revenda: 21 351 14 43 – revenda@lidel.pt Formação/Marketing: 21 351 14 48 – formacao@lidel.pt / marketing@lidel.pt Ens. Línguas/Exportação: 21 351 14 42 – depinternacional@lidel.pt Fax: 21 352 26 84 LIVRARIA: Av. Praia da Vitória, 14 – 1000-247 LISBOA – Tel.: 21 354 14 18, e-mail: livrarialx@lidel.pt As imagens do Capítulo 13 são retiradas do software ISE, versão 14.3, propriedade da Xilinx, Inc., por cortesia da Xilinx, Inc. © Copyright Xilinx, Inc. 1995-2012. Todos os direitos reservados. Copyright © dezembro 2012 (3.ª Edição Revista); fevereiro 2010 (1.ª Edição) FCA – Editora de Informática, Lda. ISBN: 978-972-722-700-6 Capa: José Manuel Reis Ilustração da Capa: Miguel Montenegro Impressão e acabamento: Cafilesa – Soluções Gráficas, Lda. – Venda do Pinheiro Depósito Legal N.º 353133/12 Livro segundo o Novo Acordo Ortográfico Os nomes comerciais referenciados neste livro têm patente registada. Marcas Registadas de FCA – Editora de Informática, Lda. ® ® ® Este pictograma merece uma explicação. O seu propósito é alertar o leitor para a ameaça que representa para o futuro da escrita, nomeadamente na área da edição técnica e universitária, o desenvolvimento massivo da fotocópia. O Código do Direito de Autor estabelece que é crime punido por lei, a fotocópia sem autorização dos proprietários do copyright. No entanto, esta prática generalizou-se sobretudo no ensino superior, provocando uma queda substancial na compra de livros técnicos. Assim, num país em que a literatura técnica é tão escassa, os autores não sentem motivação para criar obras inéditas e fazê-las publicar, ficando os leitores impossibilitados de ter bibliografia em português. Lembramos portanto, que é expressamente proibida a reprodução, no todo ou em parte, da presente obra sem autorização da editora. Índice Prefácio .......................................................................................................... XIII Sobre o livro ................................................................................................. XVII Lista de Acrónimos/abreviaturas ............................................................. XXI 1 - Introdução aos Sistemas Digitais .............................................................1 1.1 Algumas definições ..................................................................................................................... 1 1.2 Grandezas analógicas e grandezas digitais .................................................................................. 2 1.3 Circuitos integrados..................................................................................................................... 3 1.3.1 Evolução dos circuitos integrados........................................................................................ 5 1.3.2 Encapsulamentos.................................................................................................................. 7 1.4 Design ......................................................................................................................................... 8 1.5 Conclusão .................................................................................................................................... 9 2 - Funções Lógicas ........................................................................................ 11 2.1 Variáveis e funções ................................................................................................................... 11 2.1.1 Funções de uma única variável .......................................................................................... 13 2.1.2 Funções de duas ou mais variáveis .................................................................................... 13 2.1.2.1 Função E ............................................................................................................... 14 2.1.2.2 Função OU ............................................................................................................ 15 2.1.2.3 Função OU exclusivo ............................................................................................ 16 2.1.3 Implementação prática das funções lógicas ....................................................................... 18 2.2 Propriedades das funções .......................................................................................................... 19 2.2.1 Função OU ......................................................................................................................... 19 2.2.2 Função E ............................................................................................................................ 19 2.2.3 Função OU exclusivo ......................................................................................................... 20 2.2.4 Funções E negado e OU negado ........................................................................................ 20 2.3 Teoremas da Álgebra de Boole ................................................................................................. 20 2.4 Formas de expressar funções lógicas ........................................................................................ 23 2.5 Suficiência das funções Não E e Não OU ................................................................................. 23 2.6 Formas canónicas para funções lógicas ..................................................................................... 24 2.7 Tabelas de verdade, minitermos e maxitermos.......................................................................... 25 2.7.1 Minitermos ......................................................................................................................... 26 2.7.2 Maxitermos ........................................................................................................................ 27 2.7.3 Preenchimento de tabelas de verdade ................................................................................ 28 2.8 Estruturas de portas lógicas ....................................................................................................... 30 2.8.1 Soma de produtos ............................................................................................................... 31 2.8.2 Produto de somas ............................................................................................................... 31 2.8.3 Soluções com apenas um tipo de porta lógica.................................................................... 33 2.9 Conclusão .................................................................................................................................. 38 © FCA - Editora de Informática V SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA Exercícios Resolvidos ..................................................................................................................... 38 Exercícios Propostos ....................................................................................................................... 43 3 - Simplificação de Funções ........................................................................ 45 3.1 Mapas de Karnaugh ................................................................................................................... 45 3.1.1 Mapas de Karnaugh de uma variável ................................................................................. 45 3.1.2 Mapas de Karnaugh de duas variáveis ............................................................................... 46 3.1.3 Mapas de Karnaugh de três variáveis................................................................................. 48 3.1.4 Mapas de Karnaugh de quatro variáveis ............................................................................ 51 3.1.4.1 Representação sob a forma de soma de produtos .................................................. 51 3.1.4.2 Representação sob a forma de produto de somas .................................................. 58 3.1.5 Funções não totalmente especificadas ............................................................................... 60 3.1.6 Mapas de Karnaugh de cinco variáveis .............................................................................. 62 3.1.7 Mapas de Karnaugh de seis variáveis ................................................................................ 63 3.1.8 Identificação de funções OU exclusivo em mapas de Karnaugh ....................................... 65 3.2 Método de Quine-McCluskey ................................................................................................... 67 3.2.1 1.º passo: tabela inicial ....................................................................................................... 68 3.2.2 2.º passo: associação de minitermos .................................................................................. 68 3.2.3 3.º passo: tabela de implicantes primos .............................................................................. 70 3.3 Conclusão .................................................................................................................................. 72 Exercícios Resolvidos ..................................................................................................................... 73 Exercícios Propostos ....................................................................................................................... 85 4 - Sistemas de Numeração e Códigos ......................................................... 91 4.1 O sistema de numeração binário................................................................................................ 91 4.1.1 Conversão entre os sistemas decimal e binário .................................................................. 92 4.2 Os sistemas de numeração octal e hexadecimal ........................................................................ 95 4.2.1 Conversão de e para os sistemas octal e hexadecimal........................................................ 96 4.2.1.1 Conversão envolvendo o binário ........................................................................... 96 4.2.1.2 Conversões diretas ................................................................................................ 97 4.3 Operações aritméticas................................................................................................................ 99 4.3.1 Adição e subtração em decimal.......................................................................................... 99 4.3.2 Adição e subtração de números não decimais .................................................................. 101 4.3.2.1 Adição e subtração em binário ............................................................................ 101 4.3.2.2 Adição e subtração em octal e hexadecimal ........................................................ 103 4.4 Representação de números negativos ...................................................................................... 106 4.4.1 Representação em sinal e magnitude ............................................................................... 107 4.4.2 Representação em complemento para 1 ........................................................................... 109 4.4.3 Representação em complemento para 2 ........................................................................... 113 4.4.3.1 Soma e subtração em complemento para 2 ......................................................... 114 4.5 Overflow .................................................................................................................................. 116 4.6 Multiplicação binária ............................................................................................................... 117 4.7 Divisão binária ........................................................................................................................ 122 4.8 Notação de vírgula flutuante ................................................................................................... 123 4.8.1 Formato de vírgula flutuante ............................................................................................ 124 4.8.2 Comparação das notações ................................................................................................ 125 4.8.3 Desvantagem .................................................................................................................... 126 VI © FCA - Editora de Informática ÍNDICE 4.9 Códigos ................................................................................................................................... 126 4.9.1 Código Binary Coded Decimal ........................................................................................ 127 4.9.2 Códigos não ponderados .................................................................................................. 128 4.9.3 Código de Gray ................................................................................................................ 128 4.9.4 Código para displays de 7 segmentos .............................................................................. 129 4.9.5 Códigos alfanuméricos ..................................................................................................... 130 4.10 Conclusão .............................................................................................................................. 133 Exercícios Resolvidos ................................................................................................................... 134 Exercícios Propostos ..................................................................................................................... 138 5 - Circuitos Combinatórios ....................................................................... 141 5.1 Análise de circuitos combinatórios ......................................................................................... 141 5.2 Síntese de circuitos combinatórios .......................................................................................... 143 5.3 Descodificador ........................................................................................................................ 145 5.4 Codificador .............................................................................................................................. 149 5.4.1 Codificadores com prioridade .......................................................................................... 152 5.5 Multiplexer .............................................................................................................................. 154 5.5.1 Utilização de multiplexers para a implementação de funções combinatórias .................. 157 5.5.1.1 Implementação direta .......................................................................................... 159 5.5.1.2 Implementação com tabelas ................................................................................ 160 5.5.1.3 Implementação a partir da expressão de saída do multiplexer ............................ 162 5.6 Desmultiplexer ........................................................................................................................ 164 5.6.1 Utilização conjunta de multiplexers e desmultiplexers .................................................... 165 5.7 Comparadores.......................................................................................................................... 166 5.8 Somadores ............................................................................................................................... 169 5.8.1 Semissomador .................................................................................................................. 169 5.8.2 Somador completo ........................................................................................................... 170 5.8.3 Somador de n bits............................................................................................................. 172 5.8.3.1 Somadores ripple carry ....................................................................................... 172 5.8.3.2 Somadores carry lookahead ................................................................................ 173 5.9 Subtratores............................................................................................................................... 176 5.10 Conclusão .............................................................................................................................. 177 Exercícios Resolvidos ................................................................................................................... 177 Exercícios Propostos ..................................................................................................................... 184 6 - Introdução ao Verilog ........................................................................... 189 6.1 Introdução às LDH .................................................................................................................. 189 6.1.1 Verilog e outras LDH....................................................................................................... 190 6.1.2 Perspetiva histórica do Verilog ........................................................................................ 192 6.2 Introdução à LDH Verilog ...................................................................................................... 193 6.2.1 Introdução ........................................................................................................................ 193 6.2.2 Níveis de abstração .......................................................................................................... 193 6.2.3 Estrutura básica ................................................................................................................ 195 6.2.4 Instanciação ..................................................................................................................... 195 6.2.5 Tipos de dados ................................................................................................................. 195 6.2.5.1 Wires e registers.................................................................................................. 195 6.2.5.2 Integer e real ....................................................................................................... 196 6.2.5.3 Vetores ................................................................................................................ 196 © FCA - Editora de Informática VII SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA 6.2.5.4 Arrays.................................................................................................................. 197 6.2.5.5 Representação de números .................................................................................. 198 6.2.6 Funcionalidades de nível de abstração mais elevado ....................................................... 198 6.2.6.1 Assign .................................................................................................................. 198 6.2.6.2 Always ................................................................................................................. 199 6.2.6.3 For ...................................................................................................................... 199 6.2.6.4 If .......................................................................................................................... 200 6.2.6.5 Case .................................................................................................................... 200 6.2.7 Operadores ....................................................................................................................... 201 6.2.7.1 Operadores lógicos .............................................................................................. 201 6.2.7.2 Operadores bitwise .............................................................................................. 201 6.2.7.3 Operadores de redução ........................................................................................ 201 6.2.7.4 Operadores de deslocamento............................................................................... 202 6.2.7.5 Operadores de concatenação ............................................................................... 203 6.2.7.6 Operador condicional .......................................................................................... 203 6.2.7.7 Operadores relacionais ........................................................................................ 204 6.2.7.8 Operadores aritméticos ....................................................................................... 204 6.2.7.9 Precedência ......................................................................................................... 204 6.2.8 Execução dos blocos ........................................................................................................ 205 6.2.9 Palavras reservadas do Verilog ........................................................................................ 206 6.2.10 Exemplos ....................................................................................................................... 206 6.2.11 Hierarquia ...................................................................................................................... 211 6.2.12 Descrições mistas ........................................................................................................... 213 6.2.13 Instruções não sintetizáveis ............................................................................................ 213 6.2.13.1 Initial ................................................................................................................. 213 6.2.13.2 Parâmetros de atraso ......................................................................................... 213 6.3 Conclusão ................................................................................................................................ 214 Exercícios Resolvidos ................................................................................................................... 215 Exercícios Propostos ..................................................................................................................... 220 7 - Características Elétricas .................................................................... 223 7.1 Famílias lógicas ....................................................................................................................... 223 7.2 Circuito interno ....................................................................................................................... 224 7.2.1 Lógica TTL ...................................................................................................................... 224 7.2.1.1 Saída totem-pole .................................................................................................. 224 7.2.1.2 Porta inversora .................................................................................................... 225 7.2.1.3 Porta E................................................................................................................. 226 7.2.1.4 Porta OU ............................................................................................................. 227 7.2.1.5 Saída em coletor aberto ....................................................................................... 227 7.2.1.6 Tristate ou three-state ......................................................................................... 229 7.2.2 Lógica CMOS .................................................................................................................. 229 7.2.2.1 Porta inversora .................................................................................................... 229 7.2.2.2 Porta E negado .................................................................................................... 230 7.2.2.3 Porta OU negado ................................................................................................. 231 7.2.2.4 Saída em dreno aberto ......................................................................................... 232 7.2.2.5 Tristate ou three-state ......................................................................................... 232 7.3 Definição elétrica dos valores lógicos ..................................................................................... 233 7.3.1 Margem de ruído .............................................................................................................. 235 VIII © FCA - Editora de Informática ÍNDICE 7.4 Fan-out e fan-in ....................................................................................................................... 236 7.5 Comparação das tecnologias ................................................................................................... 237 7.5.1 Consumo .......................................................................................................................... 237 7.5.2 Velocidade ....................................................................................................................... 237 7.5.3 Produto consumo x velocidade ........................................................................................ 237 7.6 Ligação CMOS – TTL e TTL – CMOS .................................................................................. 238 7.6.1 Ligação TTL – CMOS ..................................................................................................... 238 7.6.1.1 Dispositivos com alimentação idêntica ............................................................... 238 7.6.1.2 Dispositivos com alimentação distinta ................................................................ 239 7.6.2 Ligação CMOS – TTL .................................................................................................... 239 7.6.2.1 Dispositivos com alimentação idêntica ............................................................... 239 7.6.2.2 Dispositivos com alimentação distinta ................................................................ 240 7.7 Conclusão ................................................................................................................................ 240 Exercícios Resolvidos ................................................................................................................... 241 Exercícios Propostos ..................................................................................................................... 243 8 - Elementos de Memória ........................................................................... 245 8.1 Latch........................................................................................................................................ 245 8.1.1 Latch com portas de habilitação....................................................................................... 250 8.2 Sinais de relógio ...................................................................................................................... 252 8.2.1 Limitações dos elementos de memória ............................................................................ 254 8.3 Flip-flops master-slave ............................................................................................................ 255 8.4 Flip-flops edge-triggered ........................................................................................................ 259 8.4.1 Tipo SR ............................................................................................................................ 259 8.4.2 Parâmetros temporais associados aos flip-flops edge-triggered ....................................... 262 8.5 Outros tipos de flip-flop ........................................................................................................... 264 8.5.1 Flip-flops do tipo JK ........................................................................................................ 264 8.5.2 Flip-flops do tipo T .......................................................................................................... 265 8.6 Conversão entre tipos de flip-flop............................................................................................ 266 8.6.1 Flip-flop do tipo D baseado em SR .................................................................................. 266 8.6.2 Flip-flop do tipo JK baseado em D .................................................................................. 266 8.6.3 Flip-flop do tipo T baseado em D .................................................................................... 267 8.6.4 Método de conversão genérico......................................................................................... 268 8.7 Registos ................................................................................................................................... 269 8.7.1 Registos de deslocamento ................................................................................................ 270 8.7.2 Operações entre registos .................................................................................................. 272 8.7.3 Registos universais........................................................................................................... 273 8.8 Elementos de memória em Verilog ......................................................................................... 274 8.8.1 Latches e flip-flops ........................................................................................................... 274 8.8.2 Registos............................................................................................................................ 275 8.9 Conclusão ................................................................................................................................ 276 Exercícios Resolvidos ................................................................................................................... 277 Exercícios Propostos ..................................................................................................................... 283 9 - Contadores .............................................................................................. 287 9.1 Definições ............................................................................................................................... 287 9.2 Contador em anel .................................................................................................................... 287 9.3 Contador em anel torcido ........................................................................................................ 289 © FCA - Editora de Informática IX SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA 9.4 Contadores de módulo 2n ........................................................................................................ 290 9.5 Comparação das topologias de contadores .............................................................................. 292 9.6 Contadores de módulo arbitrário ............................................................................................. 293 9.7 Contadores assíncronos ........................................................................................................... 294 9.8 Outras funcionalidades ............................................................................................................ 297 9.9 Contadores de projeto estruturado e módulo arbitrário ........................................................... 299 9.10 Lockout .................................................................................................................................. 302 9.11 Contadores em Verilog .......................................................................................................... 302 9.12 Conclusão .............................................................................................................................. 304 Exercícios Resolvidos ................................................................................................................... 305 Exercícios Propostos ..................................................................................................................... 313 10 - Circuitos Sequenciais .......................................................................... 317 10.1 Estrutura das máquinas de estados ........................................................................................ 317 10.2 Contadores como circuitos sequenciais ................................................................................. 318 10.3 Utilização de diferentes tipos de FF ...................................................................................... 327 10.4 Máquinas de Moore e de Mealy ............................................................................................ 327 10.4.1 Máquinas de Moore ....................................................................................................... 328 10.4.2 Máquinas de Mealy ........................................................................................................ 334 10.4.3 Eliminação de estados redundantes ................................................................................ 340 10.4.3.1 Inspeção visual .................................................................................................. 340 10.4.3.2 Técnica das partições ........................................................................................ 342 10.5 Máquinas de estados de hardware não mínimo .................................................................... 352 10.6 Circuitos sequenciais em Verilog .......................................................................................... 354 10.7 Conclusão .............................................................................................................................. 357 Exercícios Resolvidos ................................................................................................................... 358 Exercícios Propostos ..................................................................................................................... 373 11 - Memórias ................................................................................................. 377 11.1 Algumas características e tipos de memórias ........................................................................ 377 11.2 Memória RAM ...................................................................................................................... 379 11.2.1 Estrutura interna de uma RAM ...................................................................................... 382 11.3 Associações de memórias ...................................................................................................... 383 11.3.1 Expansão da palavra....................................................................................................... 383 11.3.2 Expansão do número de palavras ................................................................................... 384 11.4 Memória ROM ...................................................................................................................... 385 11.4.1 PROM ............................................................................................................................ 388 11.4.2 EPROM .......................................................................................................................... 388 11.4.3 EEPROM ....................................................................................................................... 390 11.5 Memória NV-RAM ............................................................................................................... 391 11.6 Memória Flash...................................................................................................................... .392 11.7 Tempos de comutação das memórias .................................................................................... 394 11.7.1 Ciclos de leitura ............................................................................................................. 394 11.7.2 Ciclos de escrita ............................................................................................................. 397 11.8 Memória série ........................................................................................................................ 400 11.9 Memória do tipo pilha ........................................................................................................... 401 11.10 Memória em Verilog ........................................................................................................... 402 11.11 Conclusão ............................................................................................................................ 404 X © FCA - Editora de Informática ÍNDICE Exercícios Resolvidos ................................................................................................................... 405 Exercícios Propostos ..................................................................................................................... 415 12 - Lógica Configurável ............................................................................ 417 12.1 Programmable Logic Devices ............................................................................................... 417 12.1.1 Programmable Read Only Memory ............................................................................... 418 12.1.2 Programmable Array Logic ........................................................................................... 419 12.1.3 Programmable Logic Array ........................................................................................... 421 12.1.4 Blocos de Entrada/Saída ................................................................................................ 423 12.2 Complex Programmable Logic Devices ................................................................................ 425 12.3 Field-Programmable Gate Array .......................................................................................... 425 12.4 Ferramentas de configuração ................................................................................................. 428 12.4.1 Configuração dos dispositivos ....................................................................................... 430 12.5 Conclusão .............................................................................................................................. 432 Exercícios Resolvidos .................................................................................................................. .433 Exercícios Propostos ..................................................................................................................... 438 13 - Introdução ao ISE ................................................................................. 443 13.1 Vantagens do ISE .................................................................................................................. 443 13.2 Instalação do ISE ................................................................................................................... 444 13.3 Criação de um circuito exemplo ............................................................................................ 444 13.4 Simulação do circuito exemplo ............................................................................................. 451 13.4.1 Simulação com o ISim ................................................................................................... 451 13.5 Programação do dispositivo configurável ............................................................................. 458 13.6 Agradecimentos .................................................................................................................... .463 13.7 Conclusão .............................................................................................................................. 463 14 - Conversores .......................................................................................... 465 14.1 Sistemas de processamento digital ........................................................................................ 465 14.2 Conversores de digital para analógico ................................................................................... 467 14.2.1 DAC baseado na soma de corrente ................................................................................ 467 14.2.2 DAC em escada R-2R .................................................................................................... 469 14.2.3 Características principais dos DAC ............................................................................... 470 14.2.3.1 Resolução .......................................................................................................... 470 14.2.3.2 Linearidade ....................................................................................................... 471 14.2.3.3 Monotonia ......................................................................................................... 471 14.2.3.4 Precisão ............................................................................................................. 472 14.2.3.5 Tempo de conversão ......................................................................................... 472 14.2.3.6 Sensibilidade à temperatura .............................................................................. 472 14.3 Conversores de analógico para digital ................................................................................... 472 14.3.1 ADC em rampa .............................................................................................................. 472 14.3.2 ADC por aproximações sucessivas ................................................................................ 474 14.3.3 ADC em topologia paralela............................................................................................ 475 14.3.4 ADC de dupla rampa...................................................................................................... 478 14.3.5 Características principais dos ADC ............................................................................... 480 14.3.5.1 Linearidade ....................................................................................................... 480 14.3.5.2 Monotonia ......................................................................................................... 480 14.3.5.3 Resolução .......................................................................................................... 480 © FCA - Editora de Informática XI SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA 14.3.5.4 Precisão ............................................................................................................. 481 14.3.5.5 Sensibilidade à temperatura .............................................................................. 481 14.3.5.6 Formato ............................................................................................................. 482 14.3.5.7 Tempo de conversão ......................................................................................... 482 14.3.5.8 Tensão analógica de entrada ............................................................................. 482 14.3.6 Comparação das topologias dos ADC............................................................................ 482 14.4 Exemplo de processamento digital de sinal ........................................................................... 483 14.5 Conclusão .............................................................................................................................. 484 Exercícios Resolvidos .................................................................................................................. .485 Exercícios Propostos ..................................................................................................................... 487 Anexo – Soluções dos Exercícios Propostos ........................................ 489 Glossário de termos – Português Europeu/Português do Brasil ......495 Bibliografia................................................................................................... 497 Índice Remissivo ............................................................................................ 499 XII © FCA - Editora de Informática Prefácio O presente livro Sistemas Digitais – Princípios e Prática, de autoria do Prof. Morgado Dias, representa uma das principais obras disponíveis sobre o assunto escrita em língua portuguesa. Embora existam algumas diferenças interessantes entre as diferentes variantes da língua portuguesa – Portugal e Brasil, não apenas na sua ortografia mas no seu vocabulário usual –, isso não impede a completa compreensão do rico conteúdo apresentado neste livro. Uma tabela de conversão de vocabulário [N.E. ver Glossário de Termos, no final do livro] foi preparada para auxiliar o leitor na definição de termos técnicos importantes, tais como registos (Portugal) e registradores (Brasil), ou circuitos combinatórios (Portugal) e circuitos combinacionais (Brasil). Percebam, porém, que alguns termos técnicos originalmente definidos em inglês não são traduzidos para a língua portuguesa a fim de facilitar a comunicação técnica na área como, por exemplo, latches e flip-flops. De todo modo, estudantes brasileiros, por favor, não esqueçam de desligar seus telemóveis quando estiverem na sala de aula... O Prof. Morgado Dias foi muito feliz e competente na organização e redação desta obra didática. A área de Sistemas Digitais carece de bons livros-texto, que sejam abrangentes no seu escopo e ao mesmo tempo detalhistas na exposição dos conteúdos específicos. No Brasil costuma-se dividir esta área em duas disciplinas. Uma normalmente denominada Técnicas ou Circuitos Digitais, que trata dos fundamentos da área (codificação de sinais binários, síntese de funções lógicas, blocos combinacionais básicos, entre outros), e outra que recebe usualmente a denominação de Sistemas Digitais, com foco principal em uma visão mais sistêmica desta classe de circuitos eletrônicos, incluindo conversores digital-analógico (DA) e analógico-digital (AD) bem como as linguagens de descrição de hardware (VHDL e Verilog). Este livro é perfeitamente adequado para ambas as disciplinas, demonstrando dessa forma a correlação entre as mesmas e permitindo que o estudante tenha uma visão geral e consistente da Eletrônica Digital, ou seja, dos circuitos e dos sistemas digitais. Dito isso, o professor pode adequar facilmente o uso deste livrotexto na estrutura curricular da sua instituição, escolhendo os capítulos e a sequência dos mesmos da forma mais conveniente. A Introdução aos Sistemas Digitais, no Capítulo 1, destaca não apenas as diferenças entre sinais digitais e analógicos, mas também fornece uma clara visão da estrutura e evolução dos circuitos integrados, que representam a tecnologia amplamente dominante na área dos circuitos eletrônicos. Após a apresentação tradicional das Funções Lógicas, no Capítulo 2, a Simplificação de Funções é descrita com propriedade e didática no Capítulo 3, com destaque para a apresentação do Método de Quine-McCluskey. O Capítulo 4, Sistemas de © FCA - Editora de Informática XIII SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA Numeração e Códigos, traz a descrição dos principais sistemas utilizados nesta área, uma vez que é muito difícil (e mesmo inadequado para o presente objetivo) ser exaustivo na abordagem de todos os sistemas de numeração digitais existentes. Para tal, o leitor deve procurar por literatura específica. A apresentação da notação de vírgula flutuante é um diferencial desta obra com relação às demais que abordam os Circuitos e Sistemas Digitais. No Brasil tem-se o costume de apresentar o conteúdo deste capítulo como inicial nos cursos. Mas a sequência proposta pelo Prof. Morgado Dias, até esta altura do livro e mesmo nos capítulos subsequentes, é bastante interessante e nos faz repensar se as sequências que aplicamos tradicionalmente sejam as mais adequadas do ponto de vista didático para o aprendizado dos estudantes. O Capítulo 5, Circuitos Combinatórios (Combinacionais), apresenta os blocos principais utilizados em sistemas digitais, incluindo os somadores que são essenciais nas mais diversas aplicações e produtos do nosso cotidiano. No Capítulo 6, Introdução ao Verilog, temos mais um diferencial desta obra em relação às disponíveis na área e escritas em língua portuguesa, que optam pela apresentação da linguagem de descrição de hardware VHDL ao invés de Verilog. Não existe preferência ou predominância entre uma ou outra. E dispor de uma obra que introduz a linguagem Verilog é certamente um material complementar de grande interesse para o nosso acervo bibliográfico. As Características Elétricas dos circuitos digitais, apresentadas no Capítulo 7, são novamente abordadas de forma abrangente e completa no sentido de trazer ao leitor ambas as tecnologias TTL e CMOS, além de mostrar o seu interfaceamento (ligação). Os Elementos de Memória, no Capítulo 8, apresentam o conteúdo tradicional de latches, flipflops e registradores, com destaque para a sua implementação na linguagem Verilog. Este capítulo é completado pelos capítulos subsequentes, que tratam das estruturas de Contadores (Capítulo 9) e das máquinas de estados finitos no Capítulo 10 (Circuitos Sequenciais). Os últimos quatro capítulos representam novamente um diferencial importante desta obra. O conteúdo do Capítulo 11, sobre Memórias, é normalmente omitido ou apresentado de forma sucinta nos demais livros relacionados. E, novamente, o Prof. Morgado Dias o descreve de forma competente e detalhada, apresentando os diferentes tipos de estruturas e tecnologias, e com a inclusão importante da descrição de memórias em Verilog. O Capítulo 12, sobre Lógica Configurável, traz as arquiteturas desses componentes programáveis, com o cuidado de resgatar as estruturas originais (PROM, PAL e PLA) que resultaram nos atuais CPLD e FPGA. A Introdução ao ISE, no Capítulo 13, tem a sua importância no caráter prático da aplicação deste conteúdo em sala de aula ou mesmo por parte do leitor em seu autoestudo. O Capítulo 14, sobre Conversores, fecha com chave de ouro este magnífico livro sobre Sistemas Digitais. Conversores AD e DA são essenciais no projeto e aplicação de circuitos e sistemas digitais, uma vez que as informações do nosso meio (grandezas físicas e químicas) são naturalmente analógicas (contínuas) e procuramos tratá-las de forma digital (discreta). XIV © FCA - Editora de Informática PREFÁCIO Sem sombra de dúvida, a presente obra didática para o aprendizado sobre o projeto de Sistemas Digitais, escrita na língua portuguesa, deve ter espaço obrigatório nas bibliotecas dos cursos de Engenharia e Computação do Brasil, bem como estar presente na bibliografia básica indicada nos planos de ensino das disciplinas afins. Façam bom proveito. Prof. Dr. Renato Perez Ribas Universidade Federal do Rio Grande do Sul – Brasil © FCA - Editora de Informática XV Sobre o livro Organização do livro O livro Sistemas Digitais – Princípios e Prática contém informação sobre esta área, organizada como um pequeno curso e não apenas como uma disciplina, a de Sistemas Digitais. Escolhendo os capítulos, o leitor terá acesso a uma disciplina de Sistemas Digitais mais clássica ou mais atual, ou a um pequeno curso. O livro está organizado de forma que o leitor necessite apenas de conhecimentos prévios básicos de eletricidade e eletrónica para poder acompanhar a totalidade dos capítulos. Se o leitor não dispuser destes conhecimentos, poderá utilizar um subconjunto dos capítulos que exclui os detalhes eletrónicos dos dispositivos. Tratando-se de uma unidade de formação quase fechada, este livro parte da representação de informação para chegar à informação binária, explicando desde as operações básicas até aos circuitos que as implementam. Na parte final do livro são estudadas as formas mais atuais de implementação dos circuitos digitais e a ligação dos sistemas digitais ao mundo real. O livro inclui também o estudo de uma linguagem de descrição de hardware, como é referido na secção seguinte. A linguagem de descrição de hardware Verilog A linguagem Verilog é introduzida no livro como uma ferramenta para sintetizar circuitos digitais. Por esse motivo, houve uma preocupação com as construções sintetizáveis da linguagem. Esta linguagem é abordada num primeiro capítulo, onde são ensinados os seus fundamentos e apresentados exemplos ao nível do que o leitor conhece até esse ponto do livro. Ao longo dos capítulos seguintes são apresentados outros exemplos de Verilog na penúltima secção dos capítulos convenientes. Com estes exemplos, o leitor fica dotado de ferramentas que lhe permitem construir código sintetizável ao nível dos conhecimentos de sistemas digitais que adquire ao longo do livro. Destinatários Este livro é dirigido principalmente aos alunos das licenciaturas nas áreas de Eletrónica, Eletrotecnia e Informática, sendo igualmente útil para alunos de outras licenciaturas cuja © FCA - Editora de Informática XVII SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA formação contemple uma unidade de Sistemas Digitais. Pelo seu caráter prático, o livro pode igualmente ser utilizado por profissionais que procurem alargar os seus conhecimentos ou resolver problemas concretos. Utilização do livro O livro Sistemas Digitais – Princípios e Prática contém material que ultrapassa o funcionamento de uma disciplina clássica de 3 horas teóricas lecionadas durante 15 semanas. Dependendo do tipo de curso em questão e das escolhas do docente, o curso poderá ser organizado excluindo alguns capítulos e secções: Para uma disciplina que não pretenda introduzir uma linguagem de descrição de hardware pode ser excluído o Capítulo 6 sobre Verilog e as secções a este dedicadas no final dos capítulos subsequentes; Para uma disciplina lecionada a alunos sem conhecimentos prévios de eletricidade e eletrónica pode ser excluído o Capítulo 7 sobre características elétricas e o Capítulo 14 sobre conversores, sendo sugerido que se forneça informação aos alunos sobre os níveis de tensão, caso a disciplina tenha componente prática. Neste caso, poderão ser igualmente excluídos os Capítulos 12 e 13 sobre lógica configurável e introdução ao ISE, respetivamente, dependendo dos objetivos da disciplina; Para uma abordagem mais clássica da disciplina de Sistemas Digitais poderão ser excluídos os Capítulos 6, 12, 13 e 14 sobre Verilog, lógica configurável, introdução ao ISE e conversores, respetivamente. Exercícios resolvidos e propostos No final de cada capítulo (à exceção do Capítulo 1, de introdução aos sistemas digitais, e do Capítulo 13, de introdução à ferramenta ISE) é proposto um conjunto de exercícios resolvidos e um conjunto de exercícios propostos. Para estes últimos recomenda-se vivamente que o leitor antes de ver as soluções propostas (ver parágrafo seguinte) tente encontrar as suas próprias soluções para as perguntas e os problemas apresentados e só depois as compare com as soluções fornecidas. O livro contém, no final, uma secção “Anexo – Soluções dos Exercícios Propostos”. Neste anexo é apresentado, nos casos em que o exercício o permite, um resultado. Tal não acontece quando se trata de uma pergunta de âmbito teórico, cuja resposta pode ser encontrada no texto do capítulo, ou no caso de a solução obrigar a uma explicação mais extensa ou necessitar de figuras para ser compreendida. XVIII © FCA - Editora de Informática SOBRE O LIVRO Glossário de termos – Português Europeu/Português do Brasil Este livro inclui, no final, um glossário com a correspondência dos principais termos técnicos em Português Europeu e Português do Brasil e que poderá ser muito útil aos nossos leitores brasileiros. Agradecimentos Este livro é fruto de um percurso de vários anos de aprendizagem e quase outros tantos de ensino. Por isso, genericamente, quero agradecer aos meus professores, colegas e alunos, pelo que me ensinaram, pelo que partilhámos e pelo que me obrigaram a preparar, estudar e corrigir. Em particular, quero agradecer à Ana Antunes e ao Luís Gomes por terem lido partes deste livro; ao Ivo Nascimento e ao Gonçalo Luís pelas verificações e correções. Por último, mas não menos importante, à equipa da FCA, principalmente ao Engenheiro Frederico Annes e à Doutora Laura Faia pelo apoio e empenho que dedicaram a este trabalho. © FCA - Editora de Informática XIX 1 - Introdução aos Sistemas Digitais Este livro é sobre sistemas digitais. Os sistemas digitais são todos aqueles que utilizam informação com base em dígitos com um número finito de valores possíveis. Este tipo de sistema pode ser encontrado em muitos produtos de uso comum, como sejam os relógios digitais, as balanças digitais, as consolas eletrónicas de jogos, os leitores de DVD, os telemóveis ou os computadores pessoais, pelo que uma correta compreensão desta área é fundamental para quem pretende trabalhar nas áreas de eletrónica e/ou informática. O primeiro capítulo deste livro aborda, de uma forma genérica, o que são os sistemas digitais, de modo a motivar o leitor e fornecer-lhe uma primeira perspetiva da área que vai começar a estudar. 1.1 Algumas definições Ao começar a abordar uma nova área é conveniente apresentar algumas definições, de forma que as explicações que se seguem sejam claras (Padilla, 1993). UM SISTEMA É UM CONJUNTO DE DISPOSITIVOS E/OU COMPONENTES INTERLIGADOS QUE DESEMPENHA UMA FUNÇÃO COMPLEXA. Um sistema digital pode ser constituído por vários blocos, com diferentes finalidades, que no seu conjunto executam uma determinada função. Por exemplo, um processador é um sistema digital composto por diferentes dispositivos como memória, somadores, multiplicadores, controladores e registos. UM DISPOSITIVO É UM CIRCUITO COMPOSTO POR VÁRIOS COMPONENTES QUE DESEMPENHA UMA FUNÇÃO SIMPLES. Como exemplos de dispositivos, podemos encontrar os elementos anteriormente indicados para o processador: memórias, somadores, multiplicadores e registos. UM COMPONENTE É CADA UMA DAS PARTES QUE COMPÕE UM DISPOSITIVO. Como componentes podemos indicar os componentes eletrónicos mais simples: resistências, díodos, transístores e condensadores. Os componentes podem estar disponíveis isoladamente e os dispositivos e alguns sistemas estão disponíveis de forma integrada, ou seja, dentro do mesmo circuito integrado (CI). © FCA - Editora de Informática 1 SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA UM CIRCUITO INTEGRADO (CI) É UM CIRCUITO EM QUE OS DIFERENTES COMPONENTES ESTÃO INTEGRADOS SOBRE UM MESMO SUBSTRATO OU PLATAFORMA. Os CI são uma das principais razões da grande evolução da área dos sistemas digitais e são abordados na secção 1.3. 1.2 Grandezas analógicas e grandezas digitais Na Natureza existem sinais e grandezas analógicas. O Homem inventou as grandezas e os sinais digitais. UM SINAL ANALÓGICO É AQUELE QUE PODE TOMAR UM CONJUNTO DE VALORES INFINITOS, OU SEJA, VARIA DE FORMA CONTÍNUA. Por outro lado, UM SINAL DIGITAL É AQUELE QUE TEM UM NÚMERO DE VALORES POSSÍVEIS FINITO, OU SEJA, VARIA DE FORMA DESCONTÍNUA, SALTANDO DE UM VALOR PARA OUTRO. A Figura 1.1 representa dois sinais, sendo o da esquerda analógico e variando de valor continuamente e sendo o da direita digital e como tal, tendo apenas um conjunto reduzido de valores possíveis. X X t t Figura 1.1 - Sinais analógicos e sinais digitais Os sinais digitais apresentam algumas vantagens devido à facilidade com que podem ser processados, pelo que é comum converter-se um sinal analógico num digital. Para fazer esta transformação ou a inversa, é necessário um circuito conversor de analógico para digital ou de digital para analógico, que será estudado no capítulo dedicado aos conversores. Frequentemente, utilizam-se sinais digitais que apenas permitem dois valores diferentes. Nesse caso, esses valores designam-se por valores lógicos e são associados a 0 e 1, falso e verdadeiro ou baixo e alto. 2 © FCA - Editora de Informática INTRODUÇÃO AOS SISTEMAS DIGITAIS 1.3 Circuitos integrados Um CI é uma pequena área de um material semicondutor, normalmente silício, onde são construídos os componentes necessários para implementar a função a que se destina. A Figura 1.2 mostra uma “bolacha” (do inglês wafer) que não é mais do que um substrato de silício onde são desenhadas diversas cópias do CI. Figura 1.2 - Fotografia de uma “bolacha” A bolacha é depois cortada de forma que cada parte fique com uma cópia completa do circuito, a que se chama pastilha (do inglês chip). Cada uma destas pastilhas é, posteriormente, colocada num invólucro exterior, o encapsulamento, ficando os CI mais comuns com o aspeto da Figura 1.3. Na figura pode ver-se o detalhe da ligação da pastilha aos pinos exteriores. fio de ouro caixilho em que a pastilha é montada condutor metálico pastilha pinos Figura 1.3 - Circuito integrado © FCA - Editora de Informática 3 SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA Os CI são utilizados para implementar os dispositivos e os sistemas utilizados em sistemas digitais. A construção dos CI tem por base um processo tecnológico que, no caso do hardware digital, evoluiu dramaticamente nas últimas quatro décadas. O desenvolvimento dos CI permitiu colocar numa única pastilha um elevado número de transístores, enquanto antes dos anos 1960, a única alternativa era montar o circuito com componentes discretos de grandes dimensões. Os componentes eram soldados em placas de circuito impresso PCB (do inglês printed circuit board). UM TRANSÍSTOR É UM COMPONENTE ELETRÓNICO, CONSTRUÍDO COM BASE EM MATERIAL SEMICONDUTOR QUE É A BASE DOS SISTEMAS DIGITAIS. O TRANSÍSTOR FUNCIONA, DE UMA FORMA SIMPLIFICADA, COMO UM INTERRUPTOR. As placas PCB continuam a ser utilizadas, mas hoje em dia os dispositivos que aí são colocados são muito mais complexos e incluem muitas vezes vários CI. A fotografia da Figura 1.4 mostra uma destas PCB, da empresa Xilinx, com um dispositivo de lógica programável ou configurável que será estudado no capítulo dedicado à lógica configurável. Figura 1.4 - Fotografia de uma PCB com um dispositivo de lógica programável 4 © FCA - Editora de Informática INTRODUÇÃO AOS SISTEMAS DIGITAIS 1.3.1 Evolução dos circuitos integrados Como foi referido, os CI sofreram uma enorme evolução nas últimas décadas. Sem descrever o processo tecnológico de construção e sem entrar em demasiado detalhe, é possível fornecer ao leitor alguns exemplos elucidativos dessa evolução. Um deles diz respeito à dimensão física dos transístores. Esta dimensão resulta, de forma quase direta, da dimensão da porta do transístor que é uma das partes que o constitui. Nos anos 1980, os transístores eram desenhados com dimensões de porta muito pequenas, da ordem dos micrómetros (10-6), mas que têm vindo a baixar de forma vertiginosa, sendo atualmente perto de mil vezes menores, existindo já circuitos comerciais a trabalhar com dimensões inferiores a 30 nanómetros (10-9). A Figura 1.5 mostra a evolução das dimensões de porta que se verificou nos últimos anos (Chau, 2009). Figura 1.5 - Evolução do tamanho da porta dos transístores ao longo do tempo Note-se que os dados apresentados a partir de 2002 são projeções. Figura 1.6 - Evolução anual do preço pago por cada transístor num CI (em dólares) © FCA - Editora de Informática 5 SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA Outro exemplo interessante é a evolução do preço pago por transístor, segundo dados disponíveis no sítio da empresa Intel. Os valores apresentados na Figura 1.6 mostram o preço médio por transístor, obtido dividindo o preço do CI pelo número de transístores que contém. Os gráficos das duas figuras anteriores mostram que os transístores têm diminuído drasticamente de tamanho e de preço. Conjugando estes dois fatores percebe-se que, por exemplo, os computadores são cada vez mais baratos e têm simultaneamente mais capacidade. O exemplo mais divulgado da evolução tecnológica nos sistemas digitais é conhecido como “Lei de Moore”. Há cerca de trinta anos, Gordon Moore, que mais tarde viria a fundar a Intel, observou que a tecnologia dos CI estava a evoluir de uma forma impressionante, duplicando o número de transístores que são colocados em cada pastilha a cada ano e meio a dois anos. Esta evolução tem-se mantido até à atualidade, como se pode verificar graficamente pela Figura 1.7. Figura 1.7 - Evolução do número de transístores por processador Esta evolução é, em muito, baseada na redução do tamanho da porta, mas não poderá manter-se da mesma forma que se verificou nas décadas anteriores. Já existem protótipos 6 © FCA - Editora de Informática INTRODUÇÃO AOS SISTEMAS DIGITAIS a trabalhar com dimensões de 13 nanómetros, mas é interessante verificar que, com esta dimensão, uma porta terá apenas 48 átomos de silício. Sobre esse conjunto de átomos é necessário realizar um processo de dopagem, ou seja, misturar átomos com um número de eletrões diferente, para estabelecer uma capacidade de fornecer ou receber eletrões. Tendo em conta o baixo número de átomos envolvido, é fácil compreender que estamos já muito próximos dos limites físicos. Por este motivo, a evolução futura da integração terá de ter por base outros princípios como sejam, por exemplo, a integração de mais elementos por aumento da área do CI. De resto, isto já tem vindo a acontecer com a utilização de CI com vários processadores na mesma pastilha, como os processadores dualcore ou quadcore. 1.3.2 Encapsulamentos Os CI, como foi explicado e está ilustrado na Figura 1.3, são constituídos por uma base em silício que é depois envolvida por um encapsulamento. A Figura 1.3 mostrou um tipo de encapsulamento, mas existem diversos outros encapsulamentos consoante o destino pretendido para o CI. A Figura 1.8 mostra alguns tipos de encapsulamentos de CI colocados lado a lado. Esta figura inclui também uma moeda de dez cêntimos, utilizada como termo de referência para o tamanho destes CI. Figura 1.8 - Fotografia de componentes com diferentes tipos de encapsulamento O encapsulamento DIP (Dual in-Line Package), representado no lado direito da figura, é o mais indicado para colocar em placas de testes (também designadas por placas brancas ou breadboards) para circuitos em teste. Por este motivo, os seus pinos têm a distância prevista para este tipo de placas. O encapsulamento SMD (surface-mounted device), colocado na posição central da figura, que inclui o QFP (Quad Flat Package), é destinado a componentes que são soldados em placas de PCB. Os seus pinos são mais curtos e colocados a uma distância menor, sendo normalmente necessária uma máquina especializada para a soldadura destes componentes. © FCA - Editora de Informática 7 SISTEMAS DIGITAIS – PRINCÍPIOS E PRÁTICA Os encapsulamentos PLCC (Plastic Leaded Chip Carrier), colocados à esquerda na figura, são utilizados em dispositivos que necessitam de um número elevado de pinos, mas que não se pretende que sejam soldados a uma placa PCB. Os CI deste tipo são utilizados com encaixes apropriados, designados em inglês por sockets, que podem ser soldados ou encaixados em placas de teste através de adaptadores. 1.4 Design O objetivo principal associado à aprendizagem de sistemas digitais é obter as competências necessárias para projetar sistemas deste tipo. No final do estudo proposto neste livro, o leitor deverá ser capaz de projetar circuitos de média capacidade e de os colocar em funcionamento com componentes discretos ou através da utilização de dispositivos programáveis. O processo de projeto ou de design de um sistema digital passa por diversos passos e está representado, de uma forma simplificada, na Figura 1.9. Figura 1.9 - Diagrama de fluxo de um processo de design O design de um sistema digital parte de um conceito ou de uma ideia que é depois convertida numa proposta inicial. Essa proposta inicial pode, em seguida, ser simulada para verificar se cumpre o pretendido. Se não cumprir, é necessário refazer a proposta inicial e fazer novamente a simulação; se cumprir, ter-se-á atingido um design bem sucedido. 8 © FCA - Editora de Informática INTRODUÇÃO AOS SISTEMAS DIGITAIS O processo de design de um sistema digital está atualmente facilitado pela evolução das ferramentas disponíveis. Presentemente, existem ferramentas que permitem fazer a simulação dos circuitos, programar dispositivos de lógica programável e até utilizar linguagens específicas para descrever o circuito ou a funcionalidade pretendida. A simulação do circuito em desenvolvimento pode ser feita em diversas fases de desenvolvimento, evitando os custos e reduzindo o tempo associado ao desenvolvimento e teste de protótipos e minimizando a propagação de erros ao longo do projeto. Por outro lado, hoje em dia estão disponíveis dispositivos de lógica programável que substituem, com vantagem, os protótipos porque podem ser reutilizados e tornam economicamente viável o desenvolvimento de certos projetos, já que os CI dedicados poderiam tornar-se demasiado caros. As linguagens específicas são as linguagens de descrição de hardware que podemos classificar como fazendo a ponte entre o hardware e as linguagens de programação. O seu objetivo, neste âmbito, é permitirem projetar o circuito pretendido de forma mais simples. Estas ferramentas são utilizadas ao longo deste livro e permitirão ao leitor atingir os seus objetivos mais rapidamente e projetar sistemas com maior fiabilidade. 1.5 Conclusão Pretende-se que este primeiro capítulo sirva de motivação para os sistemas digitais. Por esta razão, procurou dar-se uma perspetiva alargada, mas com pouca profundidade da nova área que o leitor começa agora a explorar. Foram também apresentados ao leitor alguns dados sobre a evolução do hardware digital verificada nas últimas décadas. Estes dados permitem ter uma ideia da evolução contínua desta área e da sua crescente importância económica. Os sistemas digitais são o âmbito de estudo deste livro, mas para se chegar ao nível de integração de um sistema é necessário conhecer os dispositivos e os componentes que os constituem. Os próximos capítulos servem justamente essa função. © FCA - Editora de Informática 9