• Nenhum resultado encontrado

Circuitos Digitais

N/A
N/A
Protected

Academic year: 2021

Share "Circuitos Digitais"

Copied!
34
0
0

Texto

(1)

TALES CLEBER PIMENTA

TALES CLEBER PIMENTA

CIRCUITOS

CIRCUITOS

DIGITAIS

DIGITAIS

ANÁLISE E SÍNTESE LÓGICA

ANÁLISE E SÍNTESE LÓGICA

APLICAÇÕES EM FPGA

(2)
(3)

Tales Cleber Pimenta

Tales Cleber Pimenta

Circuitos Digitais

Circuitos Digitais

Análise e Síntese Lógica:

Análise e Síntese Lógica:

Aplicações em FPGA

(4)

O Autor

O Autor

O autor possui graduação em Engenharia Elétrica com ênfase em Eletrônica em 1985 pela

O autor possui graduação em Engenharia Elétrica com ênfase em Eletrônica em 1985 pela

Universidade Federal de Itajubá, mestrado em Engenharia Elétrica pela Universidade

Universidade Federal de Itajubá, mestrado em Engenharia Elétrica pela Universidade

Federal de Itajubá em 1988 e doutorado em Engenharia Elétrica pela Ohio University em

Federal de Itajubá em 1988 e doutorado em Engenharia Elétrica pela Ohio University em

1992. Fez o primeiro pós-doutorado na

1992. Fez o primeiro pós-doutorado na

The Ohio State University

The Ohio State University

 em 1997 em circuitos

 em 1997 em circuitos

integrados analógicos de baixa tensão, o

integrados analógicos de baixa tensão, o

segundo pós-doutorado na

segundo pós-doutorado na

Virginia Politechnic

Virginia Politechnic

 Institute and State University

 Institute and State University

 em 2005 na área de circuitos integrados de frequências ul-

 em 2005 na área de circuitos integrados de frequências

ul-traelevadas e o terceiro pós-doutorado em 2014 pela

traelevadas e o terceiro pós-doutorado em 2014 pela

The University of North Florida

The University of North Florida

 na

 na

área de aplicações biomédicas. Atualmente é professor

área de aplicações biomédicas. Atualmente é professor

titular da Universidade Federal de

titular da Universidade Federal de

Itajubá ministrando disciplinas de Eletrônica Digital e de Circuitos Integrados Digitais

Itajubá ministrando disciplinas de Eletrônica Digital e de Circuitos Integrados Digitais

na graduação. Já na pós-graduação ministra disciplinas de Microeletrônica e Projetos de

na graduação. Já na pós-graduação ministra disciplinas de Microeletrônica e Projetos de

Circuitos Integrados, e conduz projetos na área

(5)

Sumário

Agradecimentos

 . . . . . . . . . . . . vii

O Autor

. . . . . . . . . . . . . . . . ix

Prefácio

. . . . . . . . . . . . . . . . xi

CAPÍTULO

1

Introdução

. . . . . . . . . . . . . 1

1.1

Digital

versus 

 analógico

. . . . . . . . . 1

1.2

Um pouco de história

 . . . . . . . . . 3

1.2.1

Tendências

. . . . . . . . . 6

1.3

Ponto de vista

. . . . . . . . . . 6

1.4

Blocos

 . . . . . . . . . . . . 7

CAPÍTULO

2

Códigos Numéricos

. . . . . . . . . . . . 9

2.1

Representação numérica

 . . . . . . 9

2.1.1

Sistema Binário

 . . . . . . . . . 9

2.1.2

Sistema Octal

. . . . . . . . . 10

2.1.3

Sistema Hexadecimal

 . . . . . . . . . 10

2.1.4

Sistemas Básicos

. . . . . . . . . 10

2.2

Conversões de base

 . . . . . . . . . 11

2.2.1

Conversão de Decimal para outras Bases – Números Inteiros

. . . . 11

2.2.2

Conversão de Decimal para outras Bases – Números Fracionários

12

2.2.3

Conversão de Decimal para outras Bases – Números Mistos

  . . . . 12

(6)

xiv

CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA

2.3

Codigo GRAY

 . . . . . . . . . 13

2.3.1

Obtenção do Código Gray

. . . . . . 15

2.3.2

Conversão entre Código Gray e Binário

 . . . 16

2.4

Códigos BCD

. . . . . . . . . 17

2.5

Códigos alfanuméricos

 . . . . . . . . . 18

2.6

Exercícios

. . . . . . . . . . . 19

CAPÍTULO

3

Álgebra de Boole

. . . . . . . . . . . . 21

3.1

Operações básicas

 . . . . . . . . . 21

3.1.1

Inversão

. . . . . . . . . 21

3.1.2

Operação E

 . . . . . . . . . 22

3.1.3

Operação OU

 . . . . . . . . . 23

3.2

Expressões duais e complementares

 . . . 23

3.3

Teoremas

 . . . . . . . . . . . . 24

3.3.1

Elemento Unitário (Aniquilador)

 . . . 24

3.3.2

Elemento Nulo (Identidade)

. . . 25

3.3.3

Idempotência

. . . . . . . . . 25

3.3.4

Complementaridade

 . . . . . . . . . 25

3.3.5

Comutativa

. . . . . . . . . 26

3.3.6

De Morgan

. . . . . . . . . 26

3.3.7

Associativa

. . . . . . . . . 27

3.3.8

Distributiva

 . . . . . . . . . 27

3.3.9

Combinação

. . . . . . . . . 27

3.3.10

Absorção ou Cobertura

. . . . . . . . 28

3.3.11

Eliminação

. . . . . . . . . 28

3.3.12

Consenso ou Fantasma

. . . . . . . . 29

3.3.13

Conversão

 . . . . . . . . . 29

3.3.14

Teoremas – Sumário

. . . . . . . . . 30

3.3.15

Problemas de Aplicação de Teoremas

 . . . 30

3.4

Exercícios

. . . . . . . . . . . 32

CAPÍTULO

4

Circuitos Lógicos Básicos

. . . . . . . . . . . 35

(7)

Sumário

xv

4.2

Blocos lógicos

. . . . . . . . . 37

4.2.1

Operação Não-E (NAND)

. . . . . . 37

4.2.2

Operação Não-Ou (NOR)

. . . . . . 37

4.2.3

Operação Ou-Exclusivo (XOR)

. . . . . . 38

4.2.4

Operação Não-Ou-Exclusivo (XNOR) ou Coincidência

 . . . 38

4.3

Implementação de funções usando uma operação lógica

 . . . 39

4.3.1

Inversão

. . . . . . . . . 39

4.3.2

Ou

. . . . . . . . . 40

4.3.3

E

 . . . . . . . . . . . 40

4.3.4

Não-Ou

 . . . . . . . . . 41

4.3.5

Não-E

 . . . . . . . . . 41

4.3.6

Expressões Lógicas

 . . . . . . . . . 42

4.4

Obtenção de expressões lógicas por tabelas

. . . . . . 44

4.5

Maxtermos e mintermos – forma canônica

. . . . . . 46

4.5.1

Número de Variáveis

. . . . . . . . . 49

4.5.2

Aplicações

 . . . . . . . . . 49

4.6

Circuitos a contatos

. . . . . . . . . 50

4.6.1

Função E

 . . . . . . . . . 50

4.6.2

Função OU

. . . . . . . . . 51

4.6.3

Função OU-Exclusivo

 . . . . . . . . . 51

4.6.4

Relés

. . . . . . . . . 51

4.6.5

Função Inversão

. . . . . . . . . 52

4.6.6

Outras Funções

 . . . . . . . . . 52

4.7

Simbologias IEEE/ANSI

 . . . . . . . . . 53

4.8

Circuitos básicos em Verilog

 . . . . . . . . . 53

4.8.1

Descrição Estrutural

. . . . . . . . . 54

4.8.2

Descrição Comportamental

. . . . . . 55

4.8.3

Validação

. . . . . . . . . 55

4.9

Exercícios

. . . . . . . . . . . 57

CAPÍTULO

5

Mapas de Karnaugh

 . . . . . . . . . . . . 63

5.1

Simplificação de Lagrange

. . . . . . . . . 63

5.2

Leituras de Karnaugh

. . . . . . . . . 64

5.2.1

Metodologia de Leitura

. . . . . . . . 65

5.2.2

Exemplos de Leitura

. . . . . . . . . 65

(8)

xvi

CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA

5.2.3

Leitura pelos 0

 . . . . . . 68

5.2.4

Mapas de 5 Variáveis

 . . . . . . . . . 68

5.2.5

Mapas de 6 Variáveis

 . . . . . . . . . 70

5.2.6

Termos Opcionais

. . . . . . . . . 71

5.3

Aplicações de Karnaugh

. . . . . . . . . 73

5.3.1

Simplificação de Expressões

. . . . . . 73

5.3.2

Conversão entre Soma de Produtos e Produto de Somas

. . . 73

5.3.3

Mintermos e Maxtermos

. . . . . . 74

5.3.4

Conversão Soma de Produtos/Produto de Somas Operações

– Mintermos/Maxtermos

 . . . 75

5.3.5

Operações E e OU entre Funções

. . . . . . 75

5.4

Aplicações de Karnaugh em Verilog

 . . . 76

5.4.1

Primitivas Definidas pelo Usuário

 . . . 76

5.4.2

Descrição por Fluxo de Dados

. . . . . . 77

5.5

Exercícios

. . . . . . . . . . . 78

CAPÍTULO

6

Circuitos de Manuseio de Dados

. . . . . . . . . 83

6.1

Conversores de código

 . . . . . . . . . 83

6.2

Codificadores

 . . . . . . . . . 86

6.2.1

Codificador de Prioridade

 . . . 88

6.2.2

Codificador de Prioridade Tipo Termômetro

. . . . . 90

6.2.3

Codificador de Teclado

 . . . . . . . . 91

6.3

Decodificadores

 . . . . . . . . . 92

6.3.1

Decodificadores BCD e Binário para Sete Segmentos

. . . 93

6.3.2

Implementação de Funções

. . . . . . 96

6.4

Multiplexador

 . . . . . . . . . 97

6.4.1

Multiplexagem

 . . . . . . . . . 97

6.4.2

Multiplexador

. . . . . . . . . 98

6.4.3

Composição de Multiplexadores

 . . . 99

6.5

Demultiplexador

 . . . . . . . . . .102

6.6

Utilização de multiplexadores

. . . . . . . . . . . . . . . . . . . . . . . . . . . .103

6.6.1

Arranjo Paralelo de Multiplexadores

 . . . . . . .103

6.6.2

Arranjo Serial de Multiplexadores

 . . . . . . .103

6.6.3

Sistema de Comunicação

 . . . . . . . .104

(9)

Sumário

xvii

6.7

Circuitos de manuseio de dados utilizando Verilog

 . . . . . . . .108

6.7.1

Estruturas Hierárquicas

 . . . . . . . .114

6.8

Exercícios

. . . . . . . . . . .115

CAPÍTULO

7

Circuitos Aritméticos

 . . . . . . . . . . . . .119

7.1

Soma

 . . . . . . . . . . . . .119

7.1.1

Meio Somador

 . . . . . . . .120

7.1.2

Somador Pleno

 . . . . . . . . . .121

7.1.3

Somadores de Múltiplos Bits

 . . . . . . .122

7.2

Subtração

. . . . . . . . . . .123

7.2.1

Meio Subtrator

. . . . . . . . . . . . . . . . . . . . . . . .124

7.2.2

Subtrator Pleno

 . . . . . . . . . .125

7.2.3

Subtratores de Múltiplos Bits

 . . . . . . .127

7.3

Subtração pelo complemento

. . . . . . . . . . .129

7.3.1

Representação de Números Binários Negativos

 . . . . . . . .129

7.3.2

Aritmética em Complemento de 2

 . . . . . . .131

7.3.3

Circuito Somador-Subtrator

 . . . . . . .132

7.3.4

Transbordo ou Estouro de Campo

. . . . . . . . . . . . . . . . . .133

7.4

Aritmética em BCD

 . . . . . . . . . .134

7.4.1

Subtração BCD

. . . . . . . . . . . . . . . . . . . . . . . .137

7.5

Soma rápida

 . . . . . . . . . .138

7.6

Unidade lógica e aritmética

 . . . . . . . . . .140

7.7

Circuitos aritméticos utilizando Verilog

. . . . . . . . . . . . . . . . . . . . .142

7.8

Exercícios

. . . . . . . . . . .143

CAPÍTULO

8

Latches e Flip-Flops

. . . . . . . . . . . . .147

8.1

Latch Assíncrono

 . . . . . . . . . .147

8.1.1

Aplicações de Latches

. . . . . . . .151

8.2

Latch Síncrono

 . . . . . . . . . .152

8.3

Entradas diretas (Assíncronas)

 . . . . . . . .153

8.4

Latch D

. . . . . . . . . . . . . .155

8.5

Flip-Flop D

 . . . . . . . . . . .157

(10)

xviii

CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA

8.7

Flip-Flop JK Mestre-Escravo

 . . . . . . . . . . .164

8.7.1

Análise Simplificada

 . . . . . . .165

8.8

Flip-Flop T

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166

8.9

Temporização

 . . . . . . . . . .168

8.10

Conversão de flip-flops

 . . . . . . . . . .170

8.11

Registradores de deslocamento

. . . . . . . .171

8.11.1

Aplicações de Registradores de Deslocamento

 . . . . .175

8.12

Latches e flip-flops utilizando Verilog

. . . . . . .176

8.12.1

Latches e Flip-Flops por UDP

 . . . . . . .176

8.12.2

Latches e Flip-Flops por Descrição Comportamental

 . . . .177

8.12.3

Deslocamentos

 . . . . . . . . . .179

8.12.4

Controle de Atrasos

 . . . . . . . . . . .181

8.13

Exercícios

. . . . . . . . . . .184

CAPÍTULO

9

Contadores

 . . . . . . . . . . . . . . .189

9.1

Contadores assíncronos

 . . . . . . . . . .189

9.1.1

Contagem Decrescente

. . . . . . . . . . . . . . . . . . . . . . . .190

9.1.2

Contagem Crescente/Decrescente

. . . . . . . . . . . . . . . . . .192

9.1.3

Valor Inicial de Contagem

. . . . . . .193

9.1.4

Valor Final de Contagem Cíclica

. . . . . . .194

9.1.5

Valor Final de Contagem com Parada do Contador

. . . . . . . .195

9.1.6

Valor de Contagem Transitório

 . . . . . . .196

9.2

Contadores síncronos

 . . . . . . . . . .197

9.2.1

Sequência de Contagem

 . . . . . . .198

9.2.2

Mapas de Estado Seguinte

 . . . . . . .198

9.2.3

Mapas de Excitação – Flip-Flop SR

 . . . . . . .201

9.2.4

Montagem do Circuito

 . . . . . . . .204

9.2.5

Mapas de Excitação – Flip-Flop JK

. . . . . . . . . . . . . . . . . .206

9.2.6

Leitura Simplificada – Flip-Flop JK

 . . . . . . .207

9.2.7

Mapas de Excitação – Flip-Flop T

 . . . . . . .209

9.2.8

Mapas de Excitação – Flip-Flop D

 . . . . . . .211

9.3

Acoplamento de contadores

. . . . . . . . . . . . . . . . . . . . . . . . . . .211

9.3.1

Acoplamento Assíncrono

 . . . . . . . .211

9.3.2

Acoplamento Pseudossíncrono

. . . . . . . . . . . . . . . . . . . . . .214

9.4

Contadores utilizando Verilog

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215

(11)

Sumário

xix

CAPÍTULO

10

Máquinas de Estado

. . . . . . . . . . . . .221

10.1

Conceitos de máquinas de estados

. . . . . . .221

10.2

Projeto de máquinas de estados

. . . . . . . .223

10.2.1

Passo 1 – Obtenção do Diagrama de Estados

 . . . . .223

10.2.2

Passo 2 – Obtenção da Tabela de Estados

 . . . . . .236

10.2.3

Passo 3 – Eliminação de Estados Equivalentes

. . . . . . . . . . . . . . .238

10.2.4

Passo 4 – Designação de Estados Auxiliares

 . . . . .241

10.2.5

Passo 5 – Mapas de Transição

 . . . . . . .244

10.2.6

Passo 6 – Mapas de Excitação dos Flip-Flops

 . . . . .248

10.2.7

Passo 7 – Mapas de Saída

 . . . . . . .251

10.2.8

Exemplo Completo

 . . . . . . .254

10.2.9

Múltiplas Saídas

. . . . . . . . . . . . . . . . . . . . . . . . .259

10.3

Máquinas de estado utilizando Verilog

 . . . . . . .260

10.4

Exercícios

. . . . . . . . . . .264

CAPÍTULO

11

Projeto de Máquinas de Estado por Fluxogramas

. . . . . . . . . . . . . . . . . . . . .267

11.1

Elementos

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267

11.2

Blocos

 . . . . . . . . . . . . . .268

11.3

Fluxogramas a partir de Diagrama de Estados

. . . . . . .271

11.4

Projeto de máquinas de estado a partir de fluxogramas

. . . . . . . . . . . . . . .273

11.4.1

Designação de Estados

. . . . . . . . . . . . . . . . . . . . . . . .274

11.4.2

Expressões de Estado Seguinte

. . . . . . . . . . . . . . . . . . . . . .275

11.4.3

Mapas de Excitação dos Flip-Flops

 . . . . . . .276

11.4.4

Expressões de Saída

. . . . . . . . . . . . . . . . . . . . . . . . . . . .278

11.4.5

Exemplo de Mealy

 . . . . . . . . . .279

11.5

Máquinas Mealy-Moore

. . . . . . . . . .281

11.5.1

Exemplo de Máquina Mealy

 . . . . . . .282

11.6

Máquinas de estado por fluxograma utilizando Verilog

 . . . . .284

11.7

Exercícios

. . . . . . . . . . .286

CAPÍTULO

12

Memórias

 . . . . . . . . . . . . . . .289

(12)

xx

CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA

12.2

Memórias voláteis

. . . . . . . . . .290

12.2.1

Memória RAM Dinâmica

. . . . . . . . . . . . . . . . . . . . . . . . .294

12.3

Memórias não voláteis

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294

12.3.1

Memória ROM

 . . . . . . . . . .295

12.3.2

Memória PROM

 . . . . . . . . . .297

12.3.3

Memória EPROM

 . . . . . . . . . .300

12.3.4

Memória EEPROM ou E

2

PROM

. . . . . . .302

12.3.5

Memória Flash

 . . . . . . . .302

12.4

Arranjos de memórias

. . . . . . . . . .302

12.4.1

Associação Paralela ou Horizontal de Memórias

. . . . . . . . . . . . . .303

12.4.2

Associação Serial ou Vertical de Memórias

 . . . . . . . .304

12.4.3

Decodificação de Endereços

 . . . . . . .304

12.4.4

Decodificação de Memórias de Tamanhos Diferentes

 . . . . .313

12.4.5

Decodificação de Memórias com Endereço Fracionado

 . . . .315

12.5

Temporização de memórias

 . . . . . . .316

12.6

Memórias utilizando Verilog

. . . . . . . . . . . . . . . . . . . . . . . . . . .317

12.7

Exercícios

. . . . . . . . . . .318

CAPÍTULO

13

Dispositivos Lógicos Programáveis

 . . . . . . .321

13.1

Arranjos lógicos programáveis

. . . . . . . . . . . . . . . . . . . . .321

13.1.1

Arranjo Lógico Programável – PLA

 . . . . . . .322

13.1.2

Arranjo Programável Lógico – PAL

 . . . . . . .324

13.2

Dispositivos programáveis sequenciais

 . . . . . . .326

13.2.1

Arranjo Lógico Genérico – GAL

. . . . . . . . . . . . . . . . . . . . . .326

13.2.2

Dispositivos Lógicos Programáveis Complexos – CPLD

. . . . . . . .329

13.2.3

Arranjo de Portas Programável em Campo – FPGA

 . . . .331

13.3

Exercícios

. . . . . . . . . . .335

CAPÍTULO

14

Famílias Lógicas

. . . . . . . . . . . . .337

14.1

Lógica resistor-transistor

. . . . . . . . . . . . . . . . . . . . . . . . .337

14.1.1

Margens de Ruído

 . . . . . . . . . .338

14.1.2

Fan Out

 . . . . . . . . . .339

14.1.3

Fan Out e Margem de Ruído

 . . . . . . .340

(13)

Sumário

xxi

14.2

Lógica diodo-transistor

 . . . . . . . . . . .342

14.2.1

DTL Modificado

 . . . . . . . . . .343

14.2.2

HTL

 . . . . . . . .344

14.2.3

Fan Out em DTL

 . . . . . . .345

14.2.4

Operação E Virtual

 . . . . . . . . . .347

14.3

Lógica transistor-transistor

 . . . . . . . . . .348

14.3.1

Entradas em Nível Alto

 . . . . . . . .348

14.3.2

Pelo Menos uma Entrada em Nível Baixo

. . . . . . . . . . . . . . .350

14.3.3

Carga TTL

 . . . . . . . . . .350

14.3.4

Velocidade de Operação

 . . . . . . . .352

14.3.5

Saída em Alta Impedância

. . . . . . . . . . . . . . . . . . . . . . . . . .353

14.3.6

Saída com Coletor Aberto

. . . . . . .354

14.3.7

Entradas Não-Usadas

 . . . . . . . .357

14.3.8

TTL de Baixa Potência

 . . . . . . . .358

14.3.9

TTL de Alta Velocidade

 . . . . . . .358

14.3.10

TTL Schottky

 . . . . . . . . . .359

14.3.11

TTL Schottky de Baixa Potência

 . . . . . . .360

14.3.12

TTL Schottky Avançado de Baixa Potência

. . . . . . . . . . . .360

14.3.13

Comparativo Famílias TTL

. . . . . . . . . . . . . . . . . . . . . . . . . .361

14.4

Lógica emissor acoplado

. . . . . . . . . .363

14.5

Lógica CMOS

 . . . . . . . . . .365

14.5.1

Inversor CMOS

. . . . . . . . . . . . . . . . . . . . . . . .365

14.5.2

Margens de Ruído

 . . . . . . . . . .366

14.5.3

Funções Lógicas

 . . . . . . . . . .367

14.5.4

Fan In e Fan Out

. . . . . . . . . .369

14.5.5

Inversor NMOS com Carga Resistiva

. . . . . . . . . . . . . . . .369

14.5.6

Inversor NMOS com Carga Ativa

. . . . . . . . . . . . . . . . .370

14.5.7

Dreno Aberto

 . . . . . . . . . .371

14.5.8

Saída Alta Impedância

 . . . . . . . .371

14.5.9

Porta de Transmissão

. . . . . . . . . . . . . . . . . . . . . . .372

14.5.10

Dissipação de Potência

. . . . . . . . . . . . . . . . . . . . . . . .374

14.6

Interfaceamento

 . . . . . . . . . .376

14.6.1

TTL-CMOS 5V

 . . . . . . . . . .376

14.6.2

TTL-CMOS Geral

 . . . . . . . . . .377

14.6.3

CMOS 5V – TTL

 . . . . . . . . . .378

14.6.4

CMOS Genérico – TTL

 . . . . . . . .380

14.6.5

Outras Interfaces

 . . . . . . . . . .380

(14)

xxii

CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA

14.7

Verilog

 . . . . . . . . . . . . . .381

14.8

Exercícios

. . . . . . . . . . .382

CAPÍTULO

15

Circuitos CMOS

 . . . . . . . . . . . . .385

15.1

Circuito CMOS estático e dinâmico

. . . . . . . . . . . . . . . . . . . . . . . . . .385

15.1.1

Tempo de Propagação e Margem de Ruído

 . . . . . . . .387

15.1.2

Cascateamento em Lógica Dinâmica

 . . . . . .388

15.1.3

Funções Lógicas em Lógica Dinâmica

. . . . . . . . . . . . . . . . .391

15.2

Latches e flip-flops

 . . . . . . . . . .392

15.3

Chaves analógicas

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .395

15.3.1

Multiplexador e Demultiplexador Analógico

 . . . . . . . . . . .395

15.4

Schmitt-Trigger

. . . . . . . . . .396

15.5

Circuitos astáveis

 . . . . . . . . . .399

15.6

Monoestáveis

 . . . . . . . . . .401

15.6.1

Exemplos de Uso de Monoestáveis

 . . . . .404

15.6.2

Monoestáveis e Astáveis Integrados

 . . . . . . .405

15.7

BiCMOS

 . . . . . . . . . . . . . .408

15.8

Exercícios

. . . . . . . . . . .411

CAPÍTULO

16

Conversão AD & DA

 . . . . . . . . . . . . .413

16.1

Conversão digital-analógico

. . . . . . . . . . . . . . . . . . . . . . . . . . .414

16.1.1

Conversor Resistivo de Peso Ponderado

 . . . .414

16.1.2

Conversor Resistivo Rede R-2R

 . . . . . . .415

16.2

Circuitos de amostragem e retenção

 . . . . . . .416

16.3

Conversão analógico-digital

. . . . . . . . . . . . . . . . . . . . . . . . . . .417

16.3.1

Conversor Flash

 . . . . . . .417

16.3.2

Conversor Contador

 . . . . . . .419

16.3.3

Rampa Dupla

 . . . . . . .420

16.3.4

Redistribuição de Carga

 . . . . . . . .422

16.3.5

Outros Conversores e Métricas

. . . . . . .424

(15)

Sumário

xxiii

APÊNDICE

A

Transistor MOS

 . . . . . . . . . . . . .427

A.1

Estrutura e Operação

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .427

A.1.1

Análise Gráfica

. . . . . . . . . .431

A.1.2

Modulação de Canal

 . . . . . . .432

A.1.3

Impedância de Saída

 . . . . . . . . . . .433

A.1.4

Efeito de Corpo

 . . . . . . . . . .434

A.1.5

Parâmetro de Condução

 . . . . . . .435

A.1.6

Condução Sublimiar

. . . . . . . . . . .435

A.1.7

Transistor PMOS

 . . . . . . . . . .436

A.1.8

Representação Gráfica

 . . . . . . . .437

A.1.9

Capacitâncias Parasitas

 . . . . . . . .438

A.2

CMOS

. . . . . . . . . . . . . .440

A.3

Circuito DC MOS

. . . . . . . . . .441

A.4

Modelo AC MOS

 . . . . . . . . . .442

A.5

Porta de Transmissão

 . . . . . . . . . .443

A.6

Inversor CMOS

 . . . . . . . . . .446

A.6.1

Dimensionamento de Transistores

. . . . . . .447

A.7

Sumário

 . . . . . . . . . . . . . .448

APÊNDICE

B

Transistor Bipolar

 . . . . . . . . . . . . .451

B.1

Estrutura e Operação

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451

B.1.1

Análise Gráfica

. . . . . . . . . .456

B.1.2

Modulação da Base

 . . . . . . . . . . .457

B.1.3

Impedância de Entrada e Saída

 . . . . . . .458

B.1.4

Transistor PNP

. . . . . . . . . .458

B.1.5

Aspecto Construtivo e Capacitâncias Parasitas

. . . . . . . . . . . . . . .459

B.2

Circuito DC NPN

 . . . . . . . . . .459

B.3

Modelo AC MOS

 . . . . . . . . . .460

B.4

Bandas de Energia

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .461

(16)

xxiv

CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA

APÊNDICE

C

Amplificador Operacional

. . . . . . . . . . .465

C.1

Estrutura e Operação

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .465

C.1.1

Amplificador Não-Inversor

 . . . . . . .466

C.1.2

Amplificador Inversor

. . . . . . . .467

C.1.3

Amplificador Somador

 . . . . . . . .468

C.1.4

Conversor Corrente-Tensão

. . . . . . .468

C.1.5

Conversor Tensão-Corrente

. . . . . . .469

C.1.6

Amplificador de Diferença

. . . . . . . . . . . . . . . . . . . . . . . . . .469

C.1.7

Amplificador de Instrumentação

 . . . . . . .471

C.1.8

Integrador

 . . . . . . . . . .473

C.1.9

Derivador

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .473

C.1.10

Amplificador Logarítmico

 . . . . . . . .474

C.1.11

Amplificador Exponencial

 . . . . . . . .475

C.1.12

Comparador

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475

C.1.13

Comparador com Histerese ou Schmitt Trigger

 . . . . .476

APÊNDICE

D

Verilog

. . . . . . . . . . . . . . .479

D.1

Estrutura

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .479

D.2

Sinais

. . . . . . . . . . . . . .480

D.2.1

Sinais Internos

. . . . . . . . . . . . . . . . . . . . . . . .481

D.2.2

Sinais Externos

 . . . . . . . . . .482

D.3

Descrição Estrutural

 . . . . . . . . . .483

D.3.1

Estruturas Primitivas

 . . . . . . . . . . .483

D.3.1.1

UDP Combinacional

 . . . . . . .485

D.3.1.2

UDP Sequencial Ativa por Nível

. . . . . . . . . . . .486

D.3.1.3

UDP Sequencial Ativa por Rampa

 . . . . .487

D.3.1.4

Uso de UDP

. . . . . . . .488

D.4

Estrutura Hierárquica

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .489

D.5

Descrição por Fluxo de Dados

 . . . . . . . . . . .491

D.5.1

Constantes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .491

D.5.2

Segmento de Vetor

. . . . . . . . . . . . . . . . . . . . . . . . . . .492

D.5.3

Operadores Aritméticos

 . . . . . . . .493

(17)

Sumário

xxv

D.5.5

Operadores Lógicos

 . . . . . . .494

D.5.6

Deslocamento

 . . . . . . . . . .495

D.5.7

Concatenação

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .495

D.5.8

Atribuição Contínua de Saída

 . . . . . . .495

D.5.9

Atribuição Condicional

 . . . . . . . .496

D.5.10

Atrasos

 . . . . . . . . . .497

D.6

Descrição Comportamental

 . . . . . . . . . .498

D.6.1

Variáveis

 . . . . . . . . . .498

D.6.2

Vetores

 . . . . . . . . . .499

D.6.3

Constantes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .500

D.6.4

Bloco Comportamental

. . . . . . . .500

D.6.5

Temporização

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .502

D.6.6

Operações Condicionais

 . . . . . . . .503

D.6.7

Múltiplas Escolhas

 . . . . . . . . . .504

D.6.8

Loops

 . . . . . . . . . .505

D.6.9

Controle de Temporização

. . . . . . . . . . . . . . . . . . . . . . . . . .507

D.6.10

Eventos

 . . . . . . . . . .507

D.6.11

Múltiplos Eventos

. . . . . . . . . . . . . . . . . . . . . . . . . .508

D.6.12

Atraso Bloqueável e Não-Bloqueável

 . . . . . . .508

D.7

Implementação

 . . . . . . . . . . .510

D.7.1

Uso de Tarefa

. . . . . . . . . .510

D.7.2

Uso de Função

 . . . . . . .511

D.7.3

Tarefas e Funções do Sistema

. . . . . . . . . . . . . . . . . . . . .512

D.7.4

Circuitos Combinacionais Básicos

. . . . . . . . . . . . . . . . . .512

D.7.5

Registros

. . . . . . . . . .514

D.7.6

Estilos de Codificação

. . . . . . . . . . . . . . . . . . . . .517

D.7.7

Latches Indesejáveis

. . . . . . . . . . . . . . . . . . . . . . . . . . . .517

D.7.8

Máquinas de Estado

 . . . . . . .519

D.8

Verificação

 . . . . . . . . . . .519

D.8.1

Test Benches

 . . . . . . . . . .519

D.8.2

Sinais de Estímulo

 . . . . . . . . . .520

D.9

Erros e Sugestões

. . . . . . . . . .521

D.10

Exercícios

. . . . . . . . . . .522

(18)

xxvi

CIRCUITOS DIGITAIS • ANÁLISE E SÍNTESE LÓGICA: APLICAÇÕES EM FPGA

APÊNDICE

E

Simulação e Síntese

 . . . . . . . . . . . . .525

E.1

Quartus – Altera

 . . . . . . . . . .525

E.1.1

Download e Instalação

 . . . . . . . .525

E.1.2

Configuração Inicial

 . . . . . . . . . . .525

E.1.3

Captura Esquemática

 . . . . . . . . . . .526

E.1.4

Simulação de Esquemáticos usando ModelSim

 . . . . .530

E.1.5

Tempos de Atrasos em Simulações ModelSim

. . . . . . . . . . .539

E.1.6

Descrição Verilog

 . . . . . . .539

E.1.7

Simulação utilizando

Test Bench  . . . . .540

E.1.8

Programação em FPGA

. . . . . . . . . . . . . . . . . . . . . .544

E.2

Vivado – Xilinx

 . . . . . . . . . .548

E.2.1

Download e Instalação

 . . . . . . . .548

E.2.2

Configuração Inicial

 . . . . . . . . . . .548

E.2.3

Descrição Verilog

 . . . . . . .550

E.2.4

Simulação

 . . . . . . . . . .553

E.2.5

Análise RTL

 . . . . . . . . . .554

E.2.6

Síntese Pré-Programação

. . . . . . .556

E.2.7

Programação

 . . . . . . . .557

(19)

C A P Í T U L O

1

Introdução

Os circuitos digitais estão tão intensamente presentes em nossas vidas, que é difícil

imaginar viver sem eles. Eles estão claramente presentes em telefones móveis, tablets,

computadores, televisores, jogos eletrônicos, equipamentos de acesso à Internet,

má-quinas fotográficas, reprodutores de áudio e vídeo, entre outros. Os circuitos digitais

também estão presentes em nossa infraestrutura de energia, telecomunicações e

ra-diodifusão, saneamento, transportes e outros. Esses circuitos permitem a operação de

equipamentos de alta tecnologia, como satélites e sondas espaciais, equipamentos

mi-litares e equipamentos médicos, assim como em eletrodomésticos (geladeiras,

lava--roupas, lava-louças, máquinas de café, etc.), automóveis, caminhões, tratores,

bar-cos e aviões. Muitas vezes nem mesmo percebemos ou sabemos de seu emprego,

como em rodovias e ferrovias, produção agrícola, portos e aeroportos. Ainda há a

área de automação industrial e recentemente a automação residencial. Enfim, é difícil

 pensar em algum produto que não empregue circuitos digitais em sua operação, ou

em sua produção. De fato a quase totalidade de produtos eletrônicos os emprega de

alguma forma.

1.1

Digital

versus 

 analógico

Os eventos naturais, como enxergamos e sentimos, são contínuos, isto é, não há

mudan-ças instantâneas. Como exemplo, se um carro está em uma estrada a 50 km/h e pisamos

levemente no acelerador, a velocidade aumenta para 55 km/h. Essa variação é contínua,

isto é, o carro não passa instantaneamente de 50 km/h para 55 km/h.

A Figura 1.1 ilustra velocímetros analógico e digital. Nos velocímetros tradicionais,

isso é, analógicos, o ponteiro se desloca continuamente de 50 km/h para 55 km/h. Essa

variação contínua representa o conceito analógico.

Por outro lado, em um velocímetro digital, a indicação de velocidade se dá por

de-graus. Assim, com a aceleração do carro, o velocímetro mostra progressivamente as

velo-cidades intermediárias 51 km/h, 52 km/h, 53 km/h e 54 km/h. Apesar do carro mudar sua

velocidade continuamente, o velocímetro digital mostra as velocidades de forma

discreti-zada, isto é, em degraus. Esse é o conceito de representação digital .

(20)

C A P Í T U L O

2

Códigos Numéricos

 Números fazem parte das atividades humanas e sua importância é indiscutível. Números

estão presentes em toda a história, até em vários objetos pré-históricos. E apesar de suas

diferentes formas de representação ao longo da história, estão na forma decimal pelo

sim- ples fato de o ser humano ter dez dedos nas mãos.

Entretanto podem haver outros códigos numéricos, de acordo com a necessidade ou

conveniência. No caso de circuitos digitais necessita-se do código binário.

2.1

Representação numérica

 Na representação decimal, o número 1.327 representa uma quantidade igual a um milhar,

três centenas, duas dezenas e sete unidades, ou seja,

 

(2-1)

 Nessa representação, a posição de cada dígito representa o seu peso, sendo, portanto,

uma representação posicional. O padrão dessa representação é dado por 

 

(2-2)

Assim, de forma genérica, tem-se

 

(2-3)

onde

 é a base, e

a

 é um coeficiente inteiro, positivo e menor que

.

Observe que essa representação é válida também para números negativos. Vale

lem- brar que no sistema decimal usam-se os símbolos

0, 1, 2, 3, 4, 5, 6, 7, 8

e

 9

.

2.1.1

Sistema Binário

O princípio anterior, dado pelas expressões (2-2) e (2-3), é válido também para o sistema

 binário. No sistema binário existem somente dois valores, ou símbolos;

0

e

1

. O dígito

(21)

C A P Í T U L O

3

Álgebra de Boole

A álgebra lógica foi apresentada pelo matemático Britânico George Boole em 1847 (The

Mathematical Analysis of Logic) em resposta a uma controvérsia entre Augustus De

Morgan e William Hamilton, e mais detalhadamente em 1854 (An Investigation of the

Laws of Thought) onde se discute a análise lógica. Em 1937 Claude Shannon provou que

a álgebra de Boole e a aritmética binária poderiam ser usadas em circuitos com relês,

usa-dos em telefonia, e estabeleceu-se a álgebra digital ou álgebra binária.

A álgebra de Boole descreve as operações lógicas dos circuitos lógicos, e

conse-quentemente as iterações dos sinais digitais. Tais iterações permitem a

implementa-ção de blocos e circuitos maiores, que encontram infinitas aplicações, desde relógios

digitais até complexos sistemas computacionais.

A álgebra de Boole é baseada em dois valores lógicos; 0 e 1. Esses valores podem

representar condições associadas com verdadeiro e falso, ligado e desligado, aberto e

fechado, energizado e desenergizado, etc. Assim, pode-se estabelecer a relação 0 para

falso e 1 para verdadeiro (ou vice-versa), 0 para aberto e 1 para fechado (ou vice versa),

e assim sucessivamente. Como a álgebra de Boole contempla apenas dois valores, 0 e

1, pode-se inferir que o contrário de 0 é 1, e vice-versa.

3.1

Operações básicas

As três operações básicas da álgebra de Boole são os blocos elementares na construção de

todos os circuitos digitais.

3.1.1

Inversão

A operação de inversão, também chamada de Não (NOT em Inglês), Negação ou

Complemento, executa a inversão lógica do sinal de entrada. A operação de inversão de

uma variável

 A

 tem tipicamente as representações mostradas em (3-1). A Tabela 3.1

apre-senta a sua operação e a Figura 3.1 mostra a sua repreapre-sentação grá

ca. Se a entrada é 0, a

saída será 1, e vice-versa.

(22)

C A P Í T U L O

4

Circuitos Lógicos

Básicos

A construção de circuitos lógicos, de qualquer complexidade, é feita a partir de blocos

lógicos básicos. Assim, torna-se essencial o entendimento e a interligação desses blocos

na implementação de funções lógicas mais complexas. A álgebra de Boole é a ferramenta

 básica usada nestas atividades de análise e implementação de circuitos lógicos.

Circuitos podem ser implementados a partir de expressões lógicas ou de suas tabelas

de operação. Neste capítulo são apresentados a análise de circuitos lógicos, as formas de

implementação a partir de tabelas e expressões e alguns blocos de uso frequente.

4.1

Expressões Booleanas e tabela verdade

Operações lógicas básicas podem ser combinadas para se montar expressões lógicas

maiores e mais complexas. A partir das expressões lógicas podem-se montar os circuitos

lógicos que as implementam, usando-se os blocos básicos. A partir das expressões

tam- bém se pode montar a tabela de operação, que reflete a operação lógica do circuito.

A montagem do circuito lógico é feita respeitando-se as prioridades da expressão

ló-gica, a saber, inversão, operação

E

 e operação

Ou

. Quando necessário podem-se usar

pa-rêntesis para estabelecer outras prioridades.

 Na tabela de operação, também chamada de Tabela Verdade, devem-se incluir todas

as combinações possíveis das variáveis de entrada. Para facilitar a obtenção da lógica

final, podem ser feitas colunas com resultados intermediários.

Exemplos:

1.

 =

 AB

 +

A montagem do circuito lógico é iniciada pela inversão de

 A

, a seguir a operação E

com

 B

 e finalmente a operação Ou com

, como mostrado na Figura 4.1.

A

B

C

Y

A

A.B

(23)

C A P Í T U L O

5

Mapas de Karnaugh

Os mapas de Karnaugh foram introduzidos em 1953 por Maurice Karnaugh como uma

melhoria dos diagramas apresentados por Edward Veitch no ano anterior e representam

um avanço nas leituras feitas pela tabela lógica.

O mapa de Karnaugh proporciona uma leitura rápida e otimizada de funções lógicas,

com base em sua tabela lógica. Ao invés de se ter uma tabela lógica da forma linear, os

valores são colocados na forma matricial e a leitura é feita com base nas proximidades

dos dados. Não há simplificação possível em uma leitura por Karnaugh!

5.1

Simplificação de Lagrange

A partir de uma tabela lógica, pode-se obter a sua função pelo método de Lagrange.

Entretanto, esse método exige que sejam feitas simplificações na expressão obtida, para

se atingir a forma simplificada. Como exemplo, considere a Tabela 5.1, cuja leitura é

dada por:

(24)

C A P Í T U L O

6

Circuitos de Manuseio

de Dados

Circuitos de manuseio de dados são circuitos combinacionais que fazem translações

ló-gicas paralelas, tais como conversão de códigos, codificação, decodificação e formatação

de dados digitais. Esses circuitos são empregados em seleção de endereços de

dispositi-vos e memórias, conversões de códigos, decodificadores de mostradores e codificação de

teclados, entre outros.

6.1

Conversores de código

Conversores de código são empregados na conversão de códigos ou formatos de dados

 binários. Como exemplo de aplicação, considere dois circuitos previamente projetados

usando códigos diferentes que devem ser conectados, ou ainda, por questões econômicas/

segurança, dados devem ser convertidos para um formato (código) específico antes de ser

enviado. Nesses casos, usam-se os conversores de códigos.

De forma prática, o número de linhas do código de entrada corresponde ao número de

variáveis em cada mapa de Karnaugh, e o número de linhas de saída corresponde ao

nú-mero de mapas de Karnaugh. As capacidades dos códigos de entrada e saída devem ser

iguais. Como exemplo, considere a conversão do código

 BCD

5311

 para o código

 BCD8421

,

como ilustrado na Tabela 6.1. Neste exemplo são necessários quatro mapas;

 A

,

 B

,

 e

 D

,

cada um com as variáveis

 H 

,

G

,

 F 

 e

 E 

.

Tabela 6.1

Conversão de códigos BCD

5311

 para BCD

8421

.

Código BCD 5311  BCD 8421  Pesos 5 3 1 1 8 4 2 1 Variáveis   H G F E D C B A

0

0

0

0

0

0

0

0

0

1

0

0

0

1

0

0

0

1

2

0

0

1

1

0

0

1

0

3

0

1

0

0

0

0

1

1

4

0

1

0

1

0

1

0

0

5

0

1

1

1

0

1

0

1

6

1

0

0

1

0

1

1

0

7

1

0

1

1

0

1

1

1

8

1

1

0

0

1

0

0

0

9

1

1

0

1

1

0

0

1

(25)

C A P Í T U L O

7

Circuitos Aritméticos

Circuitos aritméticos são amplamente usados em computadores, controladores,

processado-res digitais e em uma grande variedade de circuitos de aplicações específicas. Basicamente,

todos os cálculos matemáticos são feitos por circuitos aritméticos. O gerenciamento

avan-çado de endereços e as tomadas de decisões em computadores são dependentes de circuitos

aritméticos. Adicionalmente, grande parte do processamento de sinais é feita por circuitos

aritméticos, demonstrando assim a importância e a dependência desses circuitos.

7.1 Soma

 Na matemática convencional, quando se faz uma soma, na verdade faz-se um

desloca-mento na sequência de contagem. Considere o valor 2 na sequência da Figura 7.1.a. Ao se

somar 5, há um deslocamento de 5 unidades após o 2, atingindo o valor 7.

0

1

2

3

4

5

+5

+5

6

7

8

9

0

1

2

3

4

5

(a)

(b)

6

7

8

9

0

1

1

1

1

1

1

1

1

1

1

1

2

3

4

5

6

7

8

9

(26)

C A P Í T U L O

8

Latches e Flip-Flops

Latches e flip-flops são dispositivos básicos de memorização, permitem a implementação

de memórias e registros e são usados na grande maioria dos circuitos digitais, desde

sim- ples contadores até grandes sistemas com processadores.

Dispositivos de memorização e circuitos que os utilizam são circuitos sequenciais, ou

seja, são circuitos em que somente a combinação de valores aplicados às suas entradas

não são mais suficientes para determinar o valor das saídas. A sequência de sua aplicação

 passa a ser um fator determinante.

8.1

Latch Assíncrono

Considere os dois inversores em malha fechada apresentado na Figura 8.1. Se

Q

 = 1 então

Q

 = 0, o que por sua vez garante

Q

 = 1. Por outro lado, se

Q

 = 0 então

Q

 = 1, o que por

sua vez garante

Q

 = 0. Enquanto estiver energizado, o circuito mantém-se estável em uma

das duas condições.

Q Q

FIGURA 8.1

Dois inversores em malha fechada.

Considere agora a retroalimentação utilizando de portas lógicas Não-OU, como

apre-sentado em duas formas na Figura 8.2, que formam um latch.

(27)

C A P Í T U L O

9

Contadores

Contadores estão presentes na maioria dos sistemas digitais, desde simples controladores

até complexos sistemas computacionais, e são usados para contar eventos. Os contadores

 podem ser classificados em síncronos e assíncronos.

Os contadores assíncronos são mais simples, pois não dispõem de sinal único de

sin-cronismo, porém apresentam limitações de forma e velocidade de contagem. Por outro

lado os contadores síncronos são mais rápidos e flexíveis devido à presença de um sinal

de sincronismo, que os tornam mais complexos.

9.1

Contadores assíncronos

Em contadores assíncronos, a saída de um flip-flop funciona como entrada de clock para

o flip-flop seguinte. A Figura 9.1 apresenta a estrutura básica de um contador binário

as-síncrono crescente de quatro bits.

Clk 1 1 Clk 1 1 Clk 1 1 Clk 1 1 A B C D Contar J1 Q1 Q1 J2 Q2 Q2 J4 Q4 Q4 J3 Q3 Q3 K1 K2 K3 K4

FIGURA 9.1

Contador binário assíncrono crescente de quatro bits.

Como as entradas JK de cada flip-flop estão ligadas em 1, ao ocorrer uma rampa de

descida na entrada de clock de um flip-flop, sua saída muda de estado. Como a saída

Q

 de

um flip-flop está ligada à entrada de clock do flip-flop seguinte, ao ocorrer uma transição

de 1 para 0 nessa saída, o flip-flop seguinte é estimulado.

Assim, admitindo-se inicialmente que todas as saídas estejam em 0, ao ocorrer o

 pulso

Contar 

, a saída

Q

1

 passa de 0 para 1. Essa transição de 0 para 1 não causa nada no

(28)

C A P Í T U L O

10

Máquinas de Estado

Máquinas de estado são circuitos digitais utilizados no controle de operações e processos

digitais, podendo ir desde simples contadores a execução de operações de

microprocessa-dores, e são muito usadas em circuitos de comunicação. As máquinas de estado podem ter

qualquer número de entradas e pelo menos uma saída. As saídas podem ser dependentes

ou independentes das entradas e cada uma apresenta suas aplicações.

10.1

Conceitos de máquinas de estados

Máquina de estado é um circuito digital síncrono, com entradas e saídas, como indicado

na Figura 10.1. Como todo circuito digital síncrono, a máquina de estado apresenta uma

linha de sincronismo, ou linha de clock.

(29)

C A P Í T U L O

11

Projeto de Máquinas de

Estado por Fluxogramas

Apesar de ser amplamente utilizado, o projeto de máquinas de estado utilizando o método

convencional é inconveniente para muitas situações e aplicações. Em situações onde já se

tem a operação desejada da máquina de estado na forma de algoritmo, ou em casos onde

o número de variáveis de entrada é elevado, ou ainda em casos onde nem todas as

com- binações de entradas ocorrem, o projeto de máquinas de estado por fluxograma se torna

mais adequado. O uso de fluxograma é uma forma simplificada de projeto de máquina de

estados.

11.1

Elementos

Os elementos que compõem os fluxogramas de máquinas de estado são: elemento de

es-tado, elemento de decisão e elemento condicional.

O elemento de estado corresponde à condição ou estado da máquina e tem o mesmo

 papel do estado no diagrama de estados. Como indicado na Figura 11.1, o elemento de

estado apresenta um nome, uma lista de saída se for Máquina de Moore e pode apresentar

o código atribuído ao estado. Lembre-se que a saída de Moore depende apenas do estado.

Cada elemento de estado, como o próprio nome já revela, reflete o estado do circuito,

isto é, revela a condição estável e de repouso do circuito. Em outras palavras, enquanto

não há pulsos de clock, o circuito se mantém estável nesses estados.

Código do

Estado

Nome do

Estado

Lista de Saída

(Máquina de

Moore)

(30)

C A P Í T U L O

12

Memórias

Memórias são circuitos de armazenamento de dados usados em computadores,

contro-ladores, processadores digitais e em uma grande variedade de outros circuitos digitais.

As memórias são empregadas para registrar programas e dados empregados pelos

pro-gramas, tais como valores, textos, imagens e outros. Todo poder computacional fica

de- pendente da capacidade e velocidade das memórias.

As memórias podem armazenar dados temporariamente durante operações ou podem

registrar dados por prazo indeterminado. Os dados podem ser mantidos de forma estática

ou dinâmica e as memórias podem ser implementadas por diferentes mecanismos de

re-gistro tais como capacitivo, eletrônico, magnético, óptico e outros, entretanto esse

mate-rial concentra-se somente em memórias semicondutoras.

12.1

Tipos de memórias

As memórias semicondutoras podem ser classificadas em voláteis e não voláteis. Nas

memórias voláteis a informação é mantida somente enquanto estiverem energizadas, ao

 passo que nas memórias não voláteis a informação é mantida independente da

alimenta-ção. Em geral as memórias voláteis são mais rápidas que as não voláteis.

As memórias ROM, PROM, EPROM, E

2

PROM e Flash correspondem às não voláteis

enquanto que a memória RAM corresponde à volátil.

 Nas memórias de acesso aleatório ( Random Access Memory – RAM) o tempo para

acessar qualquer posição de memória é basicamente o mesmo, isto é, não depende da

po-sição onde se deseja gravar ou ler o dado. No caso das memórias de acesso sequencial

(Sequential Access Memory – SAM) o tempo de acesso do dado depende de sua posição

na memória, como ocorre em CD, DVD, HD e memórias de fita magnética, isto é,

de- pende do atraso mecânico em se acessar a posição do dado desejado.

(31)

C A P Í T U L O

13

Dispositivos Lógicos

Programáveis

Dispositivos Lógicos Programáveis – PLD ( Programmable Logic Devices) são circuitos

integrados que podem ser configurados para implementar circuitos digitais, capazes de

abranger desde funções lógicas básicas até sistemas complexos com processadores e

con-troladores e recentemente até processadores de múltiplos núcleos.

O uso de DLP permite a implementação de sistemas digitais em um único circuito

in-tegrado. Ao se implementar sistemas em um chip asseguram-se várias vantagens:

Elevação de confiabilidade: menor número de soldas e roteamento em placas de

cir-cuito impresso, portanto menos susceptibilidade a falhas.

Redução de área: menor número de componentes implica menor área, o que por sua

vez permite a obtenção de produtos finais menores.

Proteção de propriedade intelectual: dificuldade maior em engenharia reversa.

Menor consumo de energia: menor número de componentes e utilização de

compo-nente mais avançado propicia menor consumo de energia.

Redução de custo: combinação dos fatores acima implica menor custo final.

Além dos Dispositivos Lógicos Programáveis poderem ser utilizados no produto final,

também podem ser utilizados durante o desenvolvimento. Havendo detecção de erro em

alguma fase do projeto, basta uma nova programação.

A desvantagem dos Dispositivos Lógicos Programáveis reside no seu custo, ainda não

otimizado para utilização de produtos para produção em larga escala. Nesse caso, o uso

de circuitos integrados dedicados se torna a melhor solução econômica. Ainda assim, o

DLP pode ser usado durante o desenvolvimento do produto.

13.1

Arranjos lógicos programáveis

Funções lógicas podem ser implementadas com portas lógicas básicas, com multiplexadores

e também com memórias ROM. Considere a memória ROM da Figura 14.9, reapresentada

agora como Figura 13.1.

(32)

C A P Í T U L O

14

Famílias Lógicas

Os circuitos lógicos são projetados para desempenhar determinadas funções lógicas ou

rotinas. Esses circuitos lógicos podem ser implementados através de diversas formas, tais

como circuitos elétricos, ópticos, magnéticos, eletrônicos e outros.

O uso de material semicondutor é o mais difundido pelo custo de fabricação,

densi-dade de componentes, dissipação de potência, velocidensi-dade de operação, facilidensi-dade de uso

e interfaceamento com inúmeros meios. Os componentes eletrônicos amplamente usados

na fabricação de circuitos digitais são os transistores bipolares – BJT e os transistores de

efeito de campo – MOS.

Componentes que apresentam características elétricas, tais como níveis de tensão e

cor-rente, compatíveis entre si, determinam uma família lógica. Em outras palavras,

componen-tes de uma mesma família lógica são compatíveis entre si em termos de corrente e tensão.

14.1

Lógica resistor-transistor

A lógica resistor-transistor – RTL (

 Resistor-Transistor Logic

) é implementada usando

resistores e transistores bipolares e foi usada nos primeiros computadores, que ainda

usa-vam componentes discretos. RTL foi a primeira família lógica integrada que começou a

ser produzida em 1961 e já em 1962 os circuitos integrados foram usados no programa

espacial Apolo.

A Figura 14.1.a apresenta a implementação do inversor, a Figura 14.1.b mostra sua

representação lógica e a Figura 14.1.c apresenta a curva de transferência, que pode ser

obtida por simulação ou experimento prático. Para tensões de entrada

I

 menores que

0,7V o transistor encontra-se em corte e consequentemente a tensão de saída

O

 vale

5V. Por outro lado, para tensões de entrada

I

 acima de 1,66V, o transistor encontra-se

saturado e, portanto, a tensão de saída

O

 vale 0,2V.

Em outras palavras, para sinal de entrada em

0

 (tensões menores que 0,7V) a saída

está em

1

 (5V) e para sinal de entrada em

1

 (tensões acima de 1,66V) a saída em

0

 (0,2V),

caracterizando assim um inversor.

Para tensões de entrada

I

 entre 0,7V e 1,66 V, o transistor encontra-se na região

li-near de operação, onde

 I 

=

β 

.

 I 

 B

 é válido. Essa condição de operação é evitada, pois

(33)

C A P Í T U L O

15

Circuitos CMOS

A tecnologia CMOS sobrepujou a tecnologia bipolar na maioria das aplicações,

princi- palmente por oferecer maior densidade de integração, menor custo de produção e menor

dissipação de potência. Alguns circuitos tornam-se mais simples de serem

implementa-dos em CMOS e há também circuitos que seriam extremamente complexos se fossem

im- plementados em outras tecnologias.

O desenvolvimento de circuitos complexos muitas vezes utiliza a interligação de

blo-cos simples, ou circuitos simples que são frequentemente empregados. Este capítulo

apre-senta a estrutura e operação de alguns blocos focados em aplicações digitais, assim como

algumas formas de implementação, incluindo a associação de CMOS com bipolar.

15.1

Circuito CMOS estático e dinâmico

A Figura 15.1 mostra as três formas de se implementar um inversor estático. Enquanto

a tensão de alimentação e o sinal de entrada forem mantidos, o valor lógico da saída se

mantém. As vantagens do inversor CMOS (Figura 15.1.a) são sua baixa corrente

quies-cente, margem de ruído baixa e alta velocidade. O inversor NMOS com carga resistiva

(Figura 15.1.b) apresenta baixo fan in porém ocupa muita área de silício. O inversor

 NMOS com carga ativa (Figura 15.1.c) também oferece baixo fan in, porém ocupando

 pouca área de silício. Entretanto, apesar do baixo fan in, esses dois últimos

inverso-res apinverso-resentam corrente quiescente se a entrada estiver em nível alto, além de oferecer

 baixa velocidade.

A Figura 15.2 apresenta um inversor implementado em lógica dinâmica. Essa lógica

apresenta baixo fan in (similar aos inversores NMOS), área reduzida (similar aos CMOS

e NMOS com carga ativa) e baixa corrente quiescente (como o inversor CMOS). Nesse

circuito,

CL

 representa todas as capacitâncias parasitas associadas ao nó

, tais como

(34)

C A P Í T U L O

16

Conversão AD & DA

Há um intenso e contínuo desenvolvimento de circuitos digitais, processadores e

algorit-mos de implementação lógica, assim como um desenvolvimento impressionante em

ter-mos de software e técnicas de inteligência artificial. Entretanto, o mundo natural é

basica-mente analógico: sons, imagens, movimentos, temperatura, vibrações, etc.

Assim, existe a necessidade de compatibilizar esses dois mundos. Informações do

mundo analógico precisam ser convertidas em valores digitais para serem processadas

digitalmente. Essa conversão é feita pelos conversores Analógico-Digital – AD, como

re- presentado pela Figura 16.1.a.

 Neste conversor, um sinal analógico

vi

 é convertido em uma palavra digital de

 N 

 bits.

Uma palavra digital, ou valor digital, é representado por:

 

(16-1)

Observe que nessa notação,

bo

 é o bit mais significativo e

 N 

 é o número de bits da

pa-lavra digital.

Da mesma forma, resultados de processamentos digitais devem ser convertidos em

grandezas analógicas para serem úteis no mundo analógico. Essa conversão é feita

pe-los conversores Digital-Analógico – DA, como representado pela Figura 16.1.b. Em

função da aplicação, esse sinal poderá ser utilizado diretamente ou sofrer filtragens

analógicas.

CONVERSOR

DA

b

0

b

1

b

N-1

 .

 .

 .

v

o

CONVERSOR

AD

b

0

b

1

b

N-1

..

.

v

i

(a)

(b)

Referências

Documentos relacionados

Proposta de indicadores de sustentabilidade para formação do Subíndice Ambiental (SA) preenchida com dados referentes ao parque aquícola de Breu Branco III no reservatório

20-A a 20-D institui-se Gratificação de Desempenho de Atividade Técnico-Administrativa em Regulação – GDATR, devida aos ocupantes de cargos de Analista Administrativo e Técnico

tendo - se dissolvido esta por meio de um tubo na solu çã o de potassa , deixando - se caliir sobre a camada gelatinoidc, que ent ã o produz - se , algumas gottas d agua

Também foram citados como inexistentes e necessários na forma injetável, protamina e lorazepam, que são medicamentos não licenciados para uso em crianças no Brasil, nem nos

· 4.3 Indicações sobre cuidados médicos urgentes e tratamentos especiais necessários Não existe mais nenhuma informação relevante disponível.. SECÇÃO 5: Medidas de combate

defeitos causados ao sistema pela adição de softwares não instalados ou não autorizados pela Kodak. - Danos ou defeitos causados pela instalação de quaisquer acessórios

Este trabalho identificou os fatores de risco para o seu desenvolvimento, que incluem: história de exposição a bisfosfonatos, sua via de administração e tempo de

PROGRAMA MRS 2008  ANTES  ò Iniciado no final de 2003 para adequar a via