168
Universidade Federal do Rio Grande do Sul Escola de Engenharia – Departamento de Engenharia Elétrica Circuitos Digitais Alberto Bastos do Canto Filho Agosto/2009

apostila técnicas digitais

Embed Size (px)

Citation preview

Universidade Federal do Rio Grande do Sul Escola de Engenharia – Departamento de Engenharia Elétrica

Circuitos Digitais

Alberto Bastos do Canto Filho Agosto/2009

1 Prefácio...........................................................................................................................4 2 Circuitos Combinacionais ..............................................................................................5

2.1 Introdução...............................................................................................................5 2.2 Análise de Circuitos Combinacionais.....................................................................6

2.2.1 Asserções ........................................................................................................6 2.2.2 Variável Booleana ..........................................................................................7 2.2.3 Expressões booleanas; Operadores Lógicos...................................................7 2.2.4 Tabelas verdade ............................................................................................10 2.2.5 Identidades e Teoremas ................................................................................12

2.3 Suficiência de Portas Lógicas...............................................................................15 2.3.1 Suficiência de NAND...................................................................................15 2.3.2 Suficiência de NOR......................................................................................17

2.4 Projeto de Circuitos Combinacionais ...................................................................18 2.4.1 Produtos........................................................................................................18 2.4.2 Soma de produtos .........................................................................................19 2.4.3 Somas ...........................................................................................................20 2.4.4 Produto de Somas.........................................................................................21

2.5 Simplificação de Circuitos Combinacionais.........................................................22 2.5.1 Simplificação Algébrica de Soma de Produtos ............................................22 2.5.2 Mapas de Karnaugh aplicado a soma de produtos........................................25 2.5.3 Simplificação Algébrica de Produto de Somas ............................................33 2.5.4 Mapas de Karnaugh aplicados a produto de somas......................................35

2.6 Seleção..................................................................................................................39 2.6.1 Multiplexador ...............................................................................................39 2.6.2 Habilitação....................................................................................................42 2.6.3 Seleção do Valor Habilitado.........................................................................43 2.6.4 Alta Impedância............................................................................................44 2.6.5 Seletor...........................................................................................................45

3 Matemática Binária.......................................................................................................47 3.1 Introdução.............................................................................................................47 3.2 Bases Numéricas...................................................................................................47

3.2.1 Conversão de Outras Bases para a Base 10 ..................................................48 3.2.2 Conversão da base 10 para outras bases .......................................................49 3.2.3 Multiplicação de um número por sua base ...................................................50 3.2.4 Divisão de um número por sua Base ............................................................51

3.3 Conversões entre a base 2 e a base Hexadecimal (16) .........................................51 3.4 Adição...................................................................................................................52 3.5 Subtração ..............................................................................................................59 3.6 Números Negativos ..............................................................................................61

3.6.1 Sinal Magnitude............................................................................................61 3.6.2 Representação “por excesso”........................................................................62 3.6.3 Sinal e Complemento de 2............................................................................63 3.6.4 Multiplicação de números em sinal e complemento de 2.............................65 3.6.5 Divisão de números em sinal e complemento de 2 ......................................66

3.7 Números Reais......................................................................................................67

3.7.1 Representação em Ponto Fixo ......................................................................67 3.7.2 Ponto Flutuante.............................................................................................69

3.8 Padrão IEE754 – Ponto flutuante .........................................................................73 3.8.1 Disposição dos bits .......................................................................................73 3.8.2 Condições de exceção...................................................................................74

3.9 Sistema de representação BCD.............................................................................75 3.9.1 Soma BCD....................................................................................................76

4 Circuitos Sequenciais ...................................................................................................79 4.1 Introdução.............................................................................................................79 4.2 Diagramas de Estados..........................................................................................80

4.2.1 Costruindo um Diagrama de Estados ...........................................................81 4.2.2 Próximos passos ...........................................................................................89

4.3 Máquinas Sequenciais Implementadas com Flip Flop D .....................................90 4.3.1 Flip Flop D....................................................................................................90 4.3.2 Realimentação de flip flops ..........................................................................92 4.3.3 Modelo Geral de Máquina Sequencial .........................................................94 4.3.4 Análise de circuitos sequenciais ...................................................................96 4.4.1 Simplificação do Diagrama de Estados ........................................................98 4.4.2 Projeto de máquinas sequenciais ................................................................100

4.5 Técnicas de Projeto de Máquinas Sequenciais ...................................................104 4.5.1 Máquinas de Mealy.....................................................................................104 4.6.1 Redução de estados.....................................................................................111 4.7.1 Uso de Flip Flop JK....................................................................................117

5 Laboratórios................................................................................................................122 5.1 Análise de Circuitos Combinacionais.................................................................123

5.1.1 Tutor – Uso do o Simulador .......................................................................123 5.2 Conversor para 7 segmentos...............................................................................131 5.3 Montagem – Conversor BCD para 7 segmentos ................................................133

5.3.1 Tutor – Montagens de protótipos................................................................133 5.4 Laboratório 1 – Uso de multiplexador................................................................143

5.4.1 Tutor – Vinculando descrições spice a componentes.................................143 5.5 Laboratório 2 –Circuitos encadeados .................................................................148

5.5.1 Tutor - Utilização de macros no simulador ...............................................148 5.6 Utilização de somadores integrados ...................................................................156

5.6.1 Tutor – Somador BCD................................................................................156 5.7 Circuito Sequencial.............................................................................................158 5.8 Relógio digital ....................................................................................................159 5.9 Sistema Sequencial Síncrono..............................................................................160

5.9.1 Tutor - Projeto de Sistemas Digitais...........................................................160 5.10 PWM...................................................................................................................166

6 Bibliografia.................................................................................................................168

Matemática Binária 4

1 Prefácio A simplicidade é o grande mérito dos circuitos digitais. Sem pré-requisitos sofisticados, em uma disciplina de 60h é possível sair de um patamar de desconhecimento e chegar a uma capacitação técnica que permita projetar e implementar somadores, contadores ou relógios, por exemplo. Paradoxalmente, esta simplicidade é a responsável pela sofisticação alcançada por profissionais que buscam um limite de complexidade que parece inexistir. Uma das fortes razões para esta facilidade é precisão dos modelos baseados em lógica booleana que, dentro de uma ampla área de aplicação, permitem confiar que os dispositivos repetirão o comportamento definido nas equações lógicas. A idéia de iniciar nos primeiros semestres o estudo dos circuitos digitais tira partido desta simplicidade e possibilita um período mais longo de aprendizado e crescimento profissional ao longo do curso de engenharia. O início precoce destas disciplinas, no entanto, deve ponderar alguns aspectos inerentes ao fato de se trabalhar com calouros. Primeiramente, deve-se adequar a metodologia de forma o possibilitar o ensino e as práticas sem que sejam exigidos pré-requisitos elaborados na área de eletrônica. Em segundo lugar, a metodologia adotada deverá considerar a falta de experiência acadêmica dos calouros, acostumados com métodos do ensino básico frequentemente baseados em listas de exercícios e aprendizado por repetição. Finalmente, a qualidade das aulas expositivas deve possuir uma bibliografia consistente com linha pedagógica adotada e com o perfil dos alunos alvo, disponibilizando uma referência robusta ao longo do semestre. Ao escrever um livro texto que contemplasse os conteúdos da disciplina “Eng04427 – Técnicas Digitais”, foram contemplados a sequência e metodologia desenvolvidos especialmente para o contexto do curso de engenharia Elétrica da UFRGS. Trata-se de uma obra cujo mérito está na forma, desenvolvida a partir da observação cuidadosa de um público alvo específico, visando atingir eficientemente o estilo de aprendizado vigente na ocasião em que a cadeira é ministrada. Este livro está estruturado em quatro capítulos, nos quais são apresentados os conceitos básicos de circuitos digitais:

• Circuitos Combinacionais: apresentação técnicas de análise e projetos de circuitos combinacionais;

• Matemática Binária: apresentação de sistemas de numeração, operações matemáticas e circuitos digitais relacionados ao tratamento de números binários;

• Circuitos Sequenciais: apresentação técnicas de análise e projetos de circuitos sequenciais síncronos;

• Laboratórios: conjunto de laboratórios projetados para realização sincronizada com o avanço ao longo dos três primeiros capítulos. São apresentados também tutores destinados ao aprendizado do uso do simulador e das práticas de montagem.

Matemática Binária 5

2 Circuitos Combinacionais

2.1 Introdução Dentro do universo de problemas que podem ser atacados com circuitos digitais, existe uma macro classificação da qual derivam dois tipos de circuitos:

• circuitos combinacionais • circuitos sequenciais

Os circuitos combinacionais caracterizam-se por suas saídas dependerem exclusivamente dos valores de suas entradas em um determinado momento. Um exemplo típico de circuito combinacional é o acionamento da fechadura de portas em condomínio com porteiro eletrônico: sempre que um dos apartamentos acionar o comando, a fechadura se abrirá. Nos circuitos sequenciais, as saídas não dependem somente dos valores de entradas, mas também da sequência de acionamento. Um exemplo típico de circuito sequencial são os cadeados eletrônicos, cujo acionamento não depende apenas do acionamento de uma ou mais teclas, mas da sequência correta. A seguir serão abordadas técnicas de análise e projeto de circuitos combinacionais. O projeto de circuitos sequenciais será apresentado posteriormente, uma vez que a sua realização pressupõe o conhecimento dos circuitos combinacionais

Matemática Binária 6

2.2 Análise de Circuitos Combinacionais Circuitos Combinacionais são uma classe de circuitos digitais cuja saída é definida exclusivamente em função da combinação de valores de entrada. A análise e projeto destes circuitos deve ser precedida pela apresentação de uma série de conceitos de álgebra booleana, que serão apresentados a seguir.

2.2.1 Asserções Asserções são afirmações para as quais há dois valores possíveis: Verdadeiro ou Falso São exemplos de asserções:

• A luz está acesa • A porta está aberta • O homem está sentado

No ambiente digital, os valores Verdadeiro e Falso poderão ser representados segundo diferentes simbologias equivalentes, conforme apresenta a figura 2-1, a seguir.

Escopo Verda-

deiro Falso Observações

Língua Portuguesa V F Verdadeiro; Falso Língua Inglesa T F True; False; Matemática Binária 1 0 Chaves e relés ON OFF Ligado; desligado Dispositivos eletrônicos

H L Nível de tensão alto (High) ou baixo (Low)

Figura 2-1 Equivalências dos valores lógicos

Considerações práticas:

• Uma das grandes vantagens dos dispositivos eletrônicos digitais é a possibilidade de tratamento como funções lógicas; neste caso, a eletrônica se iguala a matemática, razão pela qual os símbolos 1 e 0 são amplamente utilizados na análise e projeto de circuitos digitais.

• A definição de tensão alta ou baixa depende de fatores tecnológicos.

Matemática Binária 7

2.2.2 Variável Booleana Símbolo alfanumérico associado a uma asserção (Vide exemplo na Figura 2-2).

Símbolo Asserção Associada L A luz está acesa E A porta esquerda está aberta D A porta direita está aberta

Figura 2-2 Exemplos de Variáveis Booleanas

2.2.3 Expressões booleanas; Operadores Lógicos Expressões lógicas são asserções cuja veracidade (variável dependente) está condicionada à veracidade de outras asserções combinadas entre si por operadores lógicos.

Símbolo Asserção Associada

L A luz está acesa E A porta esquerda está aberta D A porta direita está aberta

L= D + E A luz está acesa se a porta da esquerda está aberta ou a porta da direita está aberta

Figura 2-3 Exemplo de Expressão Booleana

O exemplo apresentado na Figura 2-3 expressa a relação lógica existente entre a luz interna de um automóvel e as suas portas. Foi utilizado ali o operador lógico ou.

Os operadores possuem associados a si um conjunto de aspectos de funcionalidade e documentação:

• Tabela verdade: expressa a lógica funcional dos operadores lógicos • Simbologia matemática: utilizada para representação de expressões lógicas na

forma de equações • Portas Lógicas (Gates): utilizadas para representação de expressões lógicas na

forma de diagramas esquemáticos; A documentação de circuitos lógicos faz uso desta representação.

• Nomenclatura / Abreviaturas: nomes que expressam as funções lógicas.

Matemática Binária 8

Exemplo 2-1

Considere a função ou, apresentada acima. A ela correspondem:

Nomenclatura / Abreviaturas: OU OR

Simbologia matemática:

símbolo: + exemplo: L = E + D

Tabela Verdade

D E L = D+E 0 0 0 0 1 1 1 0 1 1 1 1

Porta Lógica D

EL

A Figura 2-4 a seguir apresenta o resumo dos operadores lógicos Observações:

• Observe a diferença entre as funções OU e OU exclusivo. A asserções do tipo "Ou resolve o problema econômico ou sai do governo" caracterizam-se como OU exclusivo

• Há uma tendência de interpretar expressões interconectadas pelo operador OU como se fossem interconectadas pelo operador OU exclusivo. Isto se nota em asserções do tipo: O funcionário será promovido se incrementar sua produtividade e/ou implantar soluções de redução de custos. Nestes casos o conector e/ou exerce a função do conector ou. No entanto, esta redundância é conveniente a fim de tornar claro o processo de comunicação.

• As funções lógicas NÃO E e NÃO OU são o resultado da fusão de duas funções. Existem portas lógicas que implantam estas funções, conforme apresenta a Figura 2-5.

Matemática Binária 9

Nome equação Tabela verdade porta lógica OU A B S OR 0 0 0

0 1 1 1 0 1

S = A + B

1 1 1

A

BS

E A B S AND 0 0 0 0 1 0 1 0 0

S = A . B

1 1 1

A

BS

NÃO NOT

A S

inver-sor

0

1

INV

S = A_

1

0

A S

A B S 0 0 0

OU Exclu-sivo 0 1 1 EXOR 1 0 1 XOR

S = A ⊕ B

1 1 0

A

BS

Figura 2-4 Operadores Lógicos

A figura 2-5 a seguir apresenta as funções NAND (Não E) e NOR (Não OU). Tratam-se de funções geradas a partir da da porta E com sua saída negada (NAND) e da porta OU com sua saída negada (NOR).

Nome equações Tabela verdade

porta lógica

Não ou A B S NOR 0 0 1

0 1 0 1 0 0

S = A + B_____

1 1 0

A

BS

Não e A B S NAND 0 0 1 0 1 1 1 0 1

S = A . B_____

1 1 0

A

BS

Figura 2-5 Portas NAND e NOR

Matemática Binária 10

2.2.4 Tabelas verdade A tabela verdade é uma tabela é organizada com o objetivo de apresentar o funcionamento de circuitos combinacionais. São mostrados:

• todas as combinações de entradas possíveis • o valor de saída para cada uma das combinação de entradas

Assim, a construção da tabela verdade correspondente a um determinado circuito combinacional caracteriza-se como uma atividade de análise.

Exemplo 2-2

A figura 2-6 a seguir apresenta um exemplo de circuito combinacional

A

B S

Figura 2-6 Exemplo de Circuito combinacional

A montagem de um tabela verdade pode ser realizada em duas etapas: a. Definição das equações correspondentes:

BAS +=

b. Elaboração da tabela verdade, gerando tantas colunas auxiliares quantas forem necessárias:

variáveis dependentes

Variáveis independentes coluna

auxiliar

A B B S 0 0 1 0 0 1 0 1 1 0 1 1 1 1 0 1

Figura 2-7 Tabela verdade do circuito apresentado na figura 2-6

Matemática Binária 11

Exemplo 2-3

Considerando-se o circuito da figura 2-8, apresente a tabela verdade correspondente

A

B

C

S1

S2

Figura 2-8 Exemplo de circuito combinacional com mais de uma saída

Este circuito possui duas saídas, representadas pelas equações:

S1 A B= • S A B C2 = • +( )

Observe na Figura 2-9 abaixo:

a. a existência de 8 linhas, como consequência de haver 3 variáveis independentes

b. a coluna correspondente à variável independente C possui 0's e 1's se alternando numa sequência 010101...; a coluna correspondente à variável B possui 0's e 1's se alternando numa sequência 00110011 ... (dois a dois); o coluna correspondente à variável A possui 0's e 1's se alternando numa sequência 00001111;

c. Para cada variável de saída é feita uma análise independente das demais

A B C S1 S2 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1

Figura 2-9 Tabela verdade do circuito apresentado na figura 2-8

Matemática Binária 12

Exercício 2.1 - Dê a tabela verdade do circuito apresentado na Figura 2-10

A

BC

S

D

Figura 2-10 - Análise de circuito combinacional

2.2.5 Identidades e Teoremas

Será apresentado a seguir um conjunto de propriedades ( Figura 2-11), identidades (Figura 2-12) e teoremas ( Figura 2-13) da álgebra booleana. Tratam-se de equações de fácil entendimento e memorização, cuja aplicação direta permite a agilização da análise de circuitos combinacionais, bem como o claro entendimento das metodologias de projeto.

C)+(AB)+(A=C)(B+A

CA+BA=C)+(BA

vasdistributi leis

AB=BA

A+B=B+A

scomutativa leis

)()()(

)()()(

:asassociativ leis

•••••

••

••=••=••++=++=++CBACBACBA

CBACBACBA

Figura 2-11 Propriedades da álgebra booleana

0 0• =A 1 1+ =A

1• =A A 0+ =A A

A A A• = A A A+ =

A A• = 0 A A+ = 1

A A=

Figura 2-12 Identidades

Matemática Binária 13

Figura 2-13 Teoremas da álgebra booleana

Exercício 2-1 - Verifique se a propriedade associativa se aplica para as portas

• OU exclusivo • NAND

Exercício 2-2 Definir o valor de X nos circuitos abaixo

A

B

X

C

D

1

A

BC1

X

Exercício 2-3

Conforme será apresentado posteriormente, as técnicas de simplificação de circuitos combinacionais baseiam-se nas propriedades e teoremas da álgebra booleana. Comprove as seguintes simplificações:

BBABA

BABBA

=+⋅+

=+

)()(

Morgan De ......

Morgan De ......

logica) a(adjacenci

•••=+++

+++=•••

+=++

+=+

=+

+=+

CBACBA

CBACBA

CBABCBACAB

BCACBCAAC

ABAAB

BABAA

A

0 X

B

C

Matemática Binária 14

Exercício 2.2 - Simplifique f(A,B,C,D,E,F)

A

D

C

B

F

E

f

Matemática Binária 15

2.3 Suficiência de Portas Lógicas

2.3.1 Suficiência de NAND Suficiência de NAND é a característica da álgebra booleana que permite que qualquer circuito lógico possa ser implementado com o uso exclusivo de portas NAND. A Figura 2-14 apresenta um resumo das propriedades que serão utilizadas nos exercícios sobre suficiência de NAND.

AA =

BABA .=+

BABA +=⋅

AAA =⋅

AAA =+

AA =+ 0

AA =⋅1

Figura 2-14 Propriedades utilzadas na análise da suficiência de NAND

0

1

Matemática Binária 16

Exercício 2-4

Implante um inversor utilizando uma porta NAND

Exercício 2-5

Implante uma porta AND utilizando duas portas NAND

Exercício 2-6

Implante uma porta OR utilizando três pontas NAND

Exercício 2-7

Dado o circuito abaixo, forneça o seu equivalente, utilizando apenas portas NAND

Exercício 2-8

Implante uma porta OU EXCLUSIVO utilizando apenas portas NAND. Lembre-se:

ABBABA ⋅+⋅=⊕

Exercício 2-9

Dado o circuito abaixo, forneça o seu equivalente, utilizando apenas portas NAND

A

B

C

D

A

B

C

D

Matemática Binária 17

2.3.2 Suficiência de NOR Analogamente à suficiência de NAND, a suficiência de NOR é a característica da álgebra booleana que permite que qualquer circuito lógico possa ser implementado com o uso exclusivo de portas NOR. Consulte a Figura 2-14 acima para a realização dos exercícios a seguir, sobre suficiência de portas NOR.

Exercício 2-10 Implante um inversor utilizando uma porta NOR

Exercício 2-11 Implante uma porte OR utilizando duas portas NOR

Exercício 2-12 Implante uma porta AND utilizando três pontas NOR

Exercício 2-13

Dado o circuito abaixo, forneça o seu equivalente, utilizando apenas portas NOR

Exercício 2-14

Implante uma porta OU EXCLUSIVO utilizando apenas portas NOR. Lembre-se:

)()( BABABA +⋅+=⊕

Exercício 2-15

Dado o circuito abaixo, forneça o seu equivalente, utilizando apenas portas NOR

A

B

C

D

A

B

C

D

Matemática Binária 18

2.4 Projeto de Circuitos Combinacionais A técnica de soma de produtos (minterms) permite a implantação de um circuito combinacional qualquer, a partir de sua descrição fornecida através de uma tabela verdade. A seguir, será descrita esta técnica através de exemplos e exercícios.

2.4.1 Produtos Considere a necessidade de definir um circuito combinacional que implante a função f1

),...,(1 21 nIIIff =

Considere também que esta função f1 está descrita numa tabela verdade com 2

n linhas

correspondentes a todas as combinações de entradas possíveis. Destas combinações: • 2

n -1 combinações correspondem a f1=0

• apenas uma combinação gera f1=1 Funções que atendam a descrição apresentada acima podem ser implementadas com o uso de uma porta AND (produto) de n entradas e inversores. Exemplo 2-4

A tabela verdade apresentada na Figura 2-15 pode ter sua lógica implementada através do produto apresentado ao seu lado

A B C S1 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0

CBAS ⋅⋅=1

Figura 2-15 Exemplo de implementação através de um produto

A

B S1

C

Matemática Binária 19

Exercício 2-16 - Forneça o circuito combinacional que implanta a lógica definida pela tabela abaixo

A B C S2 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0

Figura 2-16 Exercício: circuito implementável com produto

2.4.2 Soma de produtos Considere a necessidade de definir um circuito combinacional que implante a função f2

),...,(2 21 nIIIff =

Considere também que esta função f2 está descrita numa tabela verdade com 2n linhas

correspondentes a todas as combinações de entradas possíveis. Destas combinações:

• m combinações correspondem a f2=1

• 2n -m combinações correspondem a f2=0

Funções que atendam a descrição apresentada acima podem ser implementadas com o uso de uma porta OR (soma) , m portas AND de n entradas (produtos) e inversores.

Observe que qualquer circuito combinacional se enquadra nesta situação.

Exercício 2-17

Dada a tabela verdade abaixo, apresente o circuito correspondente às saídas S1,S2 e S3. Observe que S3=S1+S2

A B C S1 S2 S3 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 0

Figura 2-17 Exercício: implantação com soma de produtos

Matemática Binária 20

Exercício 2-18

Dada a tabela verdade abaixo, apresente o circuito correspondente à saída S4.

A B C S4 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1

Figura 2-18 Exercício: implantação com soma de produtos

A seguir será paresentada uma técnica de síntese que obedece uma grande analogia acom a implementação através de soma de produtos. Trata-se da técnica de implementação através de produto de somas (maxterms).

2.4.3 Somas Considere a necessidade de definir um circuito combinacional que implante a função f1

),...,(1 21 nIIIff =

Considere também que esta função f1 está descrita numa tabela verdade com 2

n linhas

correspondentes a todas as combinações de entradas possíveis. Destas combinações: • 2

n -1 combinações correspondem a f1=1

• apenas uma combinação gera f1=0 Funções que atendam a descrição apresentada acima podem ser implementadas com o uso de uma porta OR (produto) de n entradas e inversores.

Exemplo 2-5– Circuito implementado com uma soma

A B C S1 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1

1 0 1 1 1 1 0 1 CBAS ++=1 1 1 1 1

Figura 2-19 Exemplo: Circuito implementado através de uma soma

S1

A

B

C

Matemática Binária 21

Exercício 2-19

Forneça o circuito combinacional que implanta a lógica definida pela tabela abaixo

A B C S2 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1

Figura 2-20 Exercício: Circuito implementado através de uma soma

2.4.4 Produto de Somas Considere a necessidade de definir um circuito combinacional que implante a função f2

),...,(2 21 nIIIff =

Considere também que esta função f2 está descrita numa tabela verdade com 2

n linhas

correspondentes a todas as combinações de entradas possíveis. Destas combinações: • m combinações correspondem a f2=0 • 2

n -m combinações correspondem a f2=1

Funções que atendam a descrição apresentada acima podem ser implementadas com o uso de uma porta AND (produto) , m portas OR de n entradas (somas) e inversores. Observe que qualquer circuito combinacional se enquadra nesta situação.

Exercício 2-20

Dada a tabela verdade abaixo, apresente o circuito correspondente às saídas S1,S2 e S3. Observe que S3=S1.S2

A B C S1 S2 S3 0 0 0 1 1 1 0 0 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1

Figura 2-21 Exercício: circuito implantado com produto de somas

Matemática Binária 22

Exercício 2-21

Dada a tabela verdade abaixo, apresente o circuito correspondente à saída S4.

A B C S4 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1

Figura 2-22 Exercício: circuito implantado com produto de somas

2.5 Simplificação de Circuitos Combinacionais Considerando-se que mais de um circuito pode implantar uma determinada tabela verdade, é conveniente a utilização de técnicas que permitam encontrar o circuito mais simples, com vistas à obtenção de um menor custo, mais fácil depuração e manutenção. A seguir serão apresentadas técnicas de simplificação de circuitos combinacionais.

2.5.1 Simplificação Algébrica de Soma de Produtos Vizinhança lógica: Dois produtos P1 e P2 possuem vizinhança lógica se puderem ser colocados na forma

PxP

PxP

⋅=

⋅=

2

1

Isto é, dois produtos possuem vizinhança lógica se a sua soma puder sofrer uma simplificação do tipo

PPxxPPP

PxPxPP

=⋅=+⋅=+

⋅+⋅=+

1)(21

21

Matemática Binária 23

Exemplo 2-6 simplificação algébrica Dada a tabela verdade abaixo,

A B C S 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0

Figura 2-23 Exemplo para simplificação algébrica

tem-se os seguintes circuitos correspondentes:

Circuito não simplificado:

CBACBAS ⋅⋅+⋅⋅=

Figura 2-24 Circuito não simplificado Simplificação:

CBS

AACBS

CBACBAS

⋅=

+⋅=

⋅⋅+⋅⋅=

)(

Figura 2-25 Circuito Simplificado

B

C

S

A

B S

C

Matemática Binária 24

Exemplo 2-7 - simplificação algébrica de produto com duas vizinhanças Dada a tabela verdade abaixo,

A B C S 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0

Figura 2-26 Produto com duas vizinhanças

tem-se a seguinte equação correspondente ao circuito não simplificado:

CBACBACBAS ⋅⋅+⋅⋅+⋅⋅=

considerando-se que

CBACBACBA ⋅⋅+⋅⋅=⋅⋅ tem-se

⋅⋅+⋅=

+⋅⋅++⋅⋅=

⋅⋅+⋅⋅+⋅⋅+⋅⋅=

BACBS

CCBAAACBS

CBACBACBACBAS

)()(

Observe neste exemplo, que um mesmo produto foi utilizado duas vezes para simplificação de seus vizinhos.

Exercício 2-22

Forneça o circuito combinacional que implementa a lógica descrita pela tabela apresenta na Figura 2-27

A B C S 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1

Figura 2-27 - Tabela verdade

A B C

S

Matemática Binária 25

2.5.2 Mapas de Karnaugh aplicado a soma de produtos Mapa de Karnaugh é uma forma de apresentar tabelas verdade, utilizada para simplificação de circuitos combinacionais.

2.5.2.1 Mapas de karnaugh de duas variáveis Dada uma tabela verdade de duas variáveis

A B S produto 0 0 S

0 BAs ⋅⋅0

0 1 S1 BAs ⋅⋅1

1 0 S2 BAs ⋅⋅2

1 1 S3 BAs ⋅⋅3

Figura 2-28 Tabela Verdade para duas variáveis de entrada

O mapa de Karnaugh correspondente é uma montagem desta tabela que coloca lado a lado (vizinhança física) os produtos simplificáveis (vizinhança lógica). Para tanto, pode ser utilizada uma das seguintes estruturas abaixo:

A B produto

0 0 BAs ⋅⋅0

0 1 BAs ⋅⋅1

1 1 BAs ⋅⋅3

1 0 BAs ⋅⋅2

A 0 1 B 0 BAs ⋅⋅0 BAs ⋅⋅2

1 BAs ⋅⋅1 BAs ⋅⋅3

Figura 2-29 Mapas de Karnaugh para duas variáveis de Entrada

A simplificação será possível sempre que o mapa de karnaugh apresentar 1’s fisicamente adjacentes.

Matemática Binária 26

Exemplo 2-8 - Uso de mapa de Karnaugh para simplificação

A B S produto

0 0 0 0

0 1 1 BA ⋅ 1 0 0 0

1 1 1 BA ⋅

Figura 2-30 Exemplo: Circuito a Simplificar Simplificação algébrica:

BS

AABS

BABAS

=+⋅=

⋅+⋅=

)(

Simplificação com mapa de Karnaugh:

A B S produto 0 0 0 0 0 1 1 BA ⋅ 1 1 1 BA ⋅ 1 0 0 0

A 0 1 B 0 0 0 1 1 1

A B S produto

0 0 0 0 0 1 1 BA ⋅ 1 1 1 BA ⋅ 1 0 0 0

BS = Figura 2-31 Exemplo: Simplificação com mapa de Karnaugh

1. Identificada vizinhança física

2. Vizinhança física identifica vizinhança lógica

B permanece (pode ser posto em evidência)

A deverá ser simplificado

Matemática Binária 27

Exemplo 2-9 - identificação circular de vizinhança

Utilizando mapa de Karnaugh, simplifique a tabela abaixo:

A B S 0 0 1 0 1 0 1 0 1

1 1 0

Figura 2-32 Exemplo: Vizinhança Circular

A B S

0 0 1

0 1 0

1 1 0

1 0 1

BS = A 0 1 B 0 1 1 1 0 0

Figura 2-33 Simplificação de Vizinhança circular

Exemplo 2-10 - simplificação de um produto com duas vizinhanças

Utilizando mapa de Karnaugh, simplifique a tabela abaixo:

A B S 0 0 1 0 1 1

1 0 0 1 1 1

1. Identificada vizinhança

Matemática Binária 28

A B S

0 0 1

0 1 1

1 1 1

1 0 0

BAS += A 0 1

B 0 1 0 1 1 1

Figura 2-34 Mapa de Karnaugh: Simplificação de um produto com duas vizinhanças

Exercício 2-23

Utilizando mapa de Karnaugh, simplifique a tabela abaixo:

A B S

0 0 1 0 1 1 1 0 1

1 1 0

Figura 2-35 Exercício de Simplificação

Exercício 2-24 Utilizando mapa de Karnaugh, simplifique a tabela abaixo:

A B S 0 0 0

0 1 1 1 0 1 1 1 0

Figura 2-36 Exercício de Simplificação

1. Identificada vizinhança que correspondente à

simplificação AB AB A+ =

2. Identificada vizinhança que correspondente à

simplificação AB AB B+ =

Matemática Binária 29

2.5.2.2 Mapas de karnaugh de três ou quatro variáveis De forma análoga ao de duas variáveis, o mapa de karnaugh de três ou quatro variáveis apresenta uma tabela verdade numa estrutura que possibilita visualizar a vizinhança lógica através através de uma vizinhança física.

I0 I0

I2 I1 0 1 I2 I1 0 1

0 0 s0 s

4 0 0

0120 IIIs ⋅⋅⋅ 0121 IIIs ⋅⋅⋅

0 1 s1 s

5 0 1

0122 IIIs ⋅⋅⋅ 0123 IIIs ⋅⋅⋅

1 1 s3 s

7 1 1

0126 IIIs ⋅⋅⋅ 0127 IIIs ⋅⋅⋅

1 0 s2 s

6 1 0

0124 IIIs ⋅⋅⋅ 0125 IIIs ⋅⋅⋅

Figura 2-37 Mapa de Karnaugh para 3 variáveis

I1 I0

0 0 1 1

I3 I2 0 1 1 0

0 0 s0 s

1 s

3 s

2

0 1 s4 s

5 s

7 s

6

1 1 s12 s

13 s

15 s

14

1 0 s8 s

9 s

11 s

10

I1

I0

0 0 1 1

I3 I2 0 1 1 0

0 0 01230 IIIIs 01231 IIIIs 01233 IIIIs 01232 IIIIs

0 1 01234 IIIIs 01235 IIIIs 01237 IIIIs 01236 IIIIs

1 1 012312 IIIIs 012313 IIIIs 012315 IIIIs

012314 IIIIs

1 0 01238 IIIIs 01239 IIIIs 012311 IIIIs 012310 IIIIs

Figura 2-38 Mapa de Karnaugh para 4 variáveis

Matemática Binária 30

Exercício 2-25

Dado o produto

DCBA ⋅⋅⋅ • Liste todos os produtos que possuam vizinhança lógica • Identifique este produto no mapa de Karnaugh de 4 variáveis apresentado acima • Certifique-se que todos os produtos que você listou são apresentados com

adjacência física no mapa • Verifique se você listou todos os produtos que possuem adjacência física no

mapa

Exercício 2-26

Simplifique o mapa de Karnaugh abaixo

I1 I0 0 0 1 1

I3 I2 0 1 1 0

0 0 1 1 0 0

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

Figura 2-39 Exercício: Simplificação de Mapa de Karnaugh (4 variáveis)

Exemplo 2-11 - simplificação de quadras

Uma das características que devem ser observadas na simplificação por mapas de Karnaugh é a possibilidade de simplificar quadras. As quadras são representadas no mapa de Karnaugh como um conjunto de 4 produtos vizinhos (que podem ser englobados por um retângulo). O mapa abaixo apresenta um exemplo de quadra

I1 I0 0 0 1 1

I3 I2 0 1 1 0

0 0 1 1 0 0

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

Figura 2-40 Simplificação de Quadras

S I I= +1 3

Matemática Binária 31

Exercício 2-27

Considerando o mapa de Karnaugh apresentado acima: • Realize a simplificação algébrica correspondente • Realize a simplificação do mapa tomando duas duplas ao invés de uma

quadra. Em qual das duas opções é gerado um circuito mais simples?

Exercício 2-28 Octeto

Os octetos são conjuntos de 8 1’s que podem-se simplificar no mapa de Karnaugh. Simplifique o mapa de Karnaugh a seguir:

• utilizando um octeto • utilizando duas quadras • utilizando quatro duplas

I1 I0 0 0 1 1

I3 I2 0 1 1 0

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

1 0 0 0 0 0

Figura 2-41 Simplificação de Octetos

Exercício 2-29- Simplificação com mapa de Karnaugh

Simplifique o mapa de Karnaugh abaixo, considerando as seguintes regras • todos os 1’s devem ser considerados • cada 1 considerado deve simplificado com a maior número de vizinhos possível

I1 I0 0 0 1 1

I3 I2 0 1 1 0

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

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

Figura 2-42 Exercício: simplificação de mapa de Karnaugh

Matemática Binária 32

2.5.2.3 Condições Irrelevantes Determinados problemas apresentam combinações de entrada (variáveis independentes) para as quais para as quais é irrelevante se a saída irá gerar o valor 1 ou o valor 0. Nestas condições, pode-se utilizar o mapa de Karnaugh para definir o valor de saída que gera o circuito mais simples.

Exemplo 2-12 - condição irrelevante

Um veículo possui os seguintes sensores: Sensor S1: indica veículo andando para a frente Sensor S2: indica veículo andando para trás Sensor S3: indica freio acionado

Deve-se criar um circuito lógico que acione luzes de freio: L1: deve ser acionado quando se freia e o está andando para a frente L2: deve ser acionada quando se freia e o veículo está andando para trás

A montagem do mapa de Karnaugh deverá considerar a impossibilidade física dos sensores S1 e S2 estarem acionados simultaneamente. No entanto, o mapa de Karnaugh contempla todas as combinações de entradas, inclusive estas. Assumindo-se que sejam irrelevantes os valores das saídas atribuídos nestas condições, pode-se utilizar o mapa de Karnaugh para gerar o circuito mais simples possível:

L1 S3 L2 S3

S1 S2 0 1 S1 S2 0 1

0 0 0 0 0 0 0 0

0 1 0 0 0 1 1 0

1 1 X X 1 1 X X

1 0 0 1 1 0 0 0

311 SSL ⋅=

322 SSL ⋅=

Figura 2-43 Simplificação de condições irrelevantes Observe nos mapas como as condições irrelevantes são utilizadas de forma a gerar o circuito mais simples possível.

Circuito

Combinacional

S1

S2 L1

S3 L2

Condição Irrelevante

Matemática Binária 33

2.5.3 Simplificação Algébrica de Produto de Somas A simplificação de produto de somas é realizada de uma forma análoga à soma de produtos. Vizinhança lógica: Duas somas S1 e S2 possuem vizinhança lógica se puderem ser colocados na forma

SxS

SxS

+=

+=

2

1

Isto é, duas somas possuem vizinhança lógica se o seu produto puder sofrer uma simplificação do tipo

SSS

SxSxSS

=++⋅+=+

22

)()(21

Exemplo 2-13 - simplificação algébrica Dada a tabela verdade apresentada na Figura 2-44,

A B C S 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1

Figura 2-44 Exemplo para simplificação algébrica

tem-se:

Circuito não simplificado:

)()( CBACBAS ++•++= Circuito simplificado:

)( CAS +=

Matemática Binária 34

Exemplo 2-14- simplificação algébrica de soma com duas vizinhanças Dada a tabela verdade da Figura 2-45,

A B C S 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1

Figura 2-45 Soma com duas vizinhanças

tem-se a seguinte equação correspondente ao circuito não simplificado:

)()()( CBACBACBAS ++⋅++⋅++=

considerando-se que

)()()( CBACBACBA ++⋅++=++ tem-se

)()(

)()()()(

)()()(

CABAS

CBACBACBACBAS

CBACBACBAS

+⋅+=

++⋅++⋅++⋅++=

++⋅++⋅++=

Observe neste exemplo, que uma mesma soma foi utilizada duas vezes para simplificação de seus vizinhos.

Matemática Binária 35

2.5.4 Mapas de Karnaugh aplicados a produto de somas

2.5.4.1 Mapas de karnaugh de duas variáveis Dada uma tabela verdade de duas variáveis

I1 I

0 S produto

0 0 S0 010 IIs ++

0 1 S1 011 IIs ++

1 0 S2 012 IIs ++

1 1 S3 013 IIs ++

Figura 5-24 Tabela Verdade para duas variáveis de entrada

A Figura 5- 25 a seguir mostra os mapas de Karnaugh para 2 variáveis.

I1 I

0 S produto

0 0 S0 010 IIs ++

0 1 S1 011 IIs ++

1 1 S3 013 IIs ++

1 0 S2 012 IIs ++

I1

0 1

I0 0 010 IIs ++

012 IIs ++

1 011 IIs ++ 013 IIs ++

Figura 5-25 Mapas de Karnaugh para duas variáveis de Entrada

A simplificação será possível sempre que o mapa de karnaugh apresentar 0’s fisicamente adjacentes.

Matemática Binária 36

Exemplo 2-15 - Uso de mapa de Karnaugh para simplif icação

A Figura 2-46 mostra os produtos de uma tabela verdade que descreve o funcionamento de um circuito S = f(A,B).

A B S produto

0 0 0 BA+ 0 1 1 1

1 0 0 BA+ 1 1 1 1

Figura 2-46 Simplificação de produto de soma com mapas de Kanaugh

Simplificação algébrica:

BS

BABAS

=++= ))((

Simplificação com mapa de Karnaugh:

A 0 1 B 0 0 0 1 1 1

BS =

Figura 2-47 Exemplo: Simplificação com mapa de Karnaugh

2.5.4.2 Mapas de karnaugh de três ou quatro variáveis

I1

I0

0 0 1 1

I2 0 1 1 0

0 s0 s

1 s

3 s

2

1 s4 s

5 s

7 s

6

I1

I0

0 0 1 1

I2 0 1 1 0

0 0120 IIIs +++

0121 IIIs +++ 0123 IIIs +++

0122 IIIs +++

1 0124 IIIs +++

0125 IIIs +++ 0121 IIIs +++

0126 IIIs +++

Figura 2-48 Mapa de Karnaugh para 3 variáveis

Matemática Binária 37

I1 I0 0 0 1 1

I3 I2 0 1 1 0

0 0 s0 s

1 s

3 s

2

0 1 s4 s

5 s

7 s

6

1 1 s12 s

13 s

15 s

14

1 0 s8 s

9 s

11 s

10

I1

I0

0 0 1 1

I3 I2 0 1 1 0

0 0 01230 IIIIs ++++

01231 IIIIs ++++ 01233 IIIIs ++++

01232 IIIIs ++++

0 1 01234 IIIIs ++++

01235 IIIIs ++++ 01231 IIIIs ++++

01236 IIIIs ++++

1 1 012312 IIIIs ++++ 012313 IIIIs ++++

012315 IIIIs ++++ 012314 IIIIs ++++

1 0 01238 IIIIs ++++

01239 IIIIs ++++ 012311 IIIIs ++++

012310 IIIIs ++++

Figura 2-49 Mapa de Karnaugh para 4 variáveis Os mapas de Karnaugh de 3 e 4 variáveis são mostrados respectivamente na Figura 2-48 e Figura 2-49 Exercício 2-30

Simplifique o mapa de Karnaugh mostrado na Figura 2-50 utilizando a técnica de produto de somas

I1 I0 0 0 1 1

I3 I2 0 1 1 0

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

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

Figura 2-50 Simplificação de Mapa de Karnaugh (4 variáveis)

Matemática Binária 38

Exercício 2-31 - simplificação de quadras

Simplifique o mapa de Karnaugh apresentado na Figura 2-51 abaixo tomando os maxterms

I1 I0

I3 I2 00 01 11 10

0 0 1 1 0 0

0 1 1 1 0 0

1 1 0 0 1 0

1 0 0 0 1 0

Figura 2-51 Simplificação de Quadras

Exercício 2-32 - Octeto

Os octetos são conjuntos de 8 0’s que podem-se simplificar no mapa de Karnaugh. Simplifique o mapa de Karnaugh da Figura 2-52 a seguir, utilizando a técnica de produtos de somas:

• utilizando um octeto • utilizando duas quadras • utilizando quatro duplas

I1I0

I3 I2 00 01 11 10

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

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

Figura 2-52 Simplificação de Octetos

Exercício 2-33 - condição irrelevante

Simplifique os mapas de Karnaugh da Figura 2-53 abaixo, segundo a técnica de produto de somas. Utilize as condições irrelevantes com o objetivo de obter a máxima simplificação.

L1 S3 L2 S3

S1 S2 0 1 S1 S2 0 1

0 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 1 1 X X 1 1 X X

1 0 0 1 1 0 0 0

Figura 2-53 Simplificação de condições irrelevantes

Matemática Binária 39

2.6 Seleção Um problema típico que exemplifica a necessidade de seleção é apresentado no Exemplo 2-16 a seguir.

Exemplo 2-16 Seleção entre câmeras de vigilância:

Um condomínio possui diversas 4 câmeras de monitoramento: C0: calçada C1: área de lazer C2: salão de festas C3: elevador

A central de segurança possui um único monitor. Através de uma chave, o responsável pela segurança pode selecionar a Câmera, cuja imagem deve ser apresentada no monitor.

Mecanismos de seleção são necessários quando vários sinais-origem devem ser mapeados para um único sinal-destino. 2.6.1 Multiplexador O multiplexador é uma forma de implementar a funcionalidade de seleção. O Exercício 2-34 a seguir apresenta o caso mais simples de multiplexação, no qual dois bits origem (I0 e I1) devem ser selecionados para um único destino (S). Observe a necessidade de um endereçamento das origens. No Exercício 2-34 , basta um bit de endereço (A0) para a especificação da origem selecionada.

Exercício 2-34 Projeto de um Multiplexador

Projete um multiplexador de 2 para 1, apresentado na Figura 2-54 a seguir:

A0

I0

I1

S

A0 Saída

0 S= I0

1 S= I1

Figura 2-54 Multiplexador de 2 para 1

A Figura 2-55 abaixo apresenta um multiplexador capaz de selecionar 1 entre 2

n entradas

selecionáveis. Observe a existência de n entradas de endereço.

Matemática Binária 40

Multiplexador

A0 A

1 ... A

n

I0

I1

I2

.

.

.

I2n-1

S

An ... A

1 A

0 Saída

0 0 0 0 S= I0

0 0 0 1 S= I1

0 0 1 0 S=I2

... ... ... ... ...

1 1 1 1 S=I2

n-1

Figura 2-55 Multiplexador de 2n para 1

Exercício 2-35: Análise de Circuito com Multiplexador

Forneça a tabela verdade do circuito combinacional apresentado na Figura 2-56.

Figura 2-56 Circuito Combinacional O circuito combinacional foi implementado conforme especificado na Figura 2-57

Figura 2-57 Implementação com multiplexador

Exercício 2-36

Implante um multiplexador de quatro para 1, utilizando multiplexadores de 2 para 1.

Matemática Binária 41

Exercício 2-37 Análise de Circuito com Multiplexador Forneça a tabela verdade do circuito combinacional apresentado na Figura 2-58.

Figura 2-58 Circuito Combinacional Implantado

com multiplexador

Uma das aplicações dos multiplexadores é a implementação de circuitos combinacionais. Esta técnica apresenta vantagens referentes à simplicidade de projeto e prototipação, realizados em prazos menores, quando comparados com o uso de portas lógicas. A sistemática de projeto será apresentada a seguir, através de um exemplo.

Exemplo 2-17 Uso de multiplexadores para o projeto de circuitos combinacionais

Figura 2-59 Circuito Combinacional

A Figura 2-59 apresenta um circuito combinacional cujo funcionamento é descrito através da tabela verdade ao lado. Neste exemplo, será utilizado um multiplexador de 4 para 1, razão pela qual a tabela foi subdividida em 4 regiões. O endereço definido por E

3 E

2, identifica cada

uma destas regiões (00,01,10 e 11). Para cada região, deve-se definir um circuito combinacional, que calcula uma saída

Figura 2-60

E3 E

2 E

1 E

0 Saída

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

00

0 0 1 1 0

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

01

0 1 1 1 0

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

10

1 0 1 1 0

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

11

1 1 1 1 1

Neste exemplo, os quatro circuitos auxiliares possuem as equações:

Matemática Binária 42

A Tabela 2-1 apresenta a lógica de seleção na qual a saída assume o valor do circuito auxiliar conforme o endereçamento definido por E

3 E

2.

Tabela 2-1

E3 E

2 Saída

00 Saída=S00 01 Saída=S01 10 Saída=S10 11 Saída=S11

A Figura 2-61 mostra a implementação do circuito com multiplexador.

Figura 2-61 Implementação com Multiplexador

2.6.2 Habilitação O conceito de habilitação aplica-se a um sinal ou dispositivo. Seu objetivo é a implementação de um mecanismo de seleção.

Exemplo 2-18 Habilitação com portas AND

Neste exemplo, assume-se que o ‘valor neutro’ seja zero.

Valor neutro: num determinado circuito digital, adota-se um determinado valor neutro, assumido pelos sinais não habilitados. O valor neutro deve ser escolhido entre as seguintes alternativas:

o Zero (0); o Um (1); o Alta Impedância1

1 Na secção ‘2.6.4 Alta Impedância’ serão apresentadas técnicas referentes a este conceito.

A Figura 2-62 ao lado exemplifica o uso de porta AND para habilitação de um sinal X. Sempre que Hab for ‘1’, a saída X’ assumirá o valor de X. Quando o sinal não estiver habilitado, a saída será ‘0’.

Figura 2-62 Habilitação com portas AND

Matemática Binária 43

Exemplo 2-19 Endereçamento A Figura 2-63 ao lado mostra um circuito que deve ser habilitado pelo endereço A3 A2 A1 A0 = 1010. Isto é, assumindo-se a utilização do valor neutro ‘0’, o circuito deve atender a seguinte especificação:

A3 A2 A1 A0 Saída X’ 1010 X’=X Diferente de 1010 X’=0

Figura 2-63 Habilitação com endereço

A Figura 2-64 mostra a solução, utilizando uma lógica de decodificação de endereço para gerar um sinal de habilitação similar ao apresentado no Exemplo 2-18.

Figura 2-64 Decodificação de endereço

2.6.3 Seleção do Valor Habilitado A seleção do valor habilitado em um determinado circuito é feita conforme apresenta a Tabela 2-2 a seguir:

Tabela 2-2 Técnica de seleção conforme valor neutro

Valor Neutro Seleção Zero Portas OR Um Portas AND Alta impedância Interconexão física

Exemplo 2-20 Seleção utilizando valor neutro zero

A Figura 2-65 ao lado mostra um sistema digital que possui 4 bits de endereçamento A3 A2 A1 A0 utilizados para habilitar dois circuitos. • O endereço da caixa à esquerda é

A3 A2 A1 A0 = 1010 (vide Exemplo 2-19) • O endereço da caixa à direita é

A3 A2 A1 A0 = 0011 Figura 2-65 Seleção com valor neutro 0 Observe que S assumirá o valor da saída da caixa endereçada. Caso o endereço não corresponda a uma das duas caixas, S assumirá o valor neutro.

Matemática Binária 44

Exercício 2-38 Valor Neutro 1

Refaça o exemplos: � Exemplo 2-19 Endereçamento � Exemplo 2-20 Seleção utilizando valor neutro zero

utilizando o valor ‘1’ como elemento neutro.

2.6.4 Alta Impedância Alguns dispositivos são projetados prevendo a possibilidade de seleção através da interconexão física de saídas. Estes dispositivos possuem a alternativa de saída em “alta impedância” ou “desconectada”. A Figura 2-66 mostra um exemplo de ‘buffer’ com saída de três estados. O sinal de habilitação NEn opera com lógica invertida, isto é, a saída está habilitada quando NEn for 0, conforme a tabela a seguir:

NEn Out 0 Out=In 1 Out desconectado (alta

impedância)

Figura 2-66 Dispositivo com saída de três estados

A interconexão de ‘n’ saídas de dispositivos deste tipo é possível, desde que se garanta que todas as saídas estejam desconectadas, exceto a saída selecionada.

Exemplo 2-21 Seleção com dispositivos de 3 estados

A Figura 2-67 mostra a implementação do Exemplo 2-20. Observe: • O ‘elemento neutro’ é o estado de alta

impedância; • Se nenhum bloco for habilitado, S estará em

alta impedância (elemento neutro); • Existe uma conexão física entre as saídas; • No máximo uma das saídas conectadas (X’ ou

Y’) estará habilitada.

Figura 2-67 Implementação com dispositivos 3 estados

Matemática Binária 45

2.6.5 Seletor Seletor é um componente concebido para operar integrado com dispositivos projetados dentro de uma lógica de seleção por habilitação.

Exemplo 2-22 Seletor 1 entre 8

A Figura 2-68 ao lado apresenta um exemplo de seletor ‘1 entre 8’, cujo funcionamento é descrito na tabela a seguir:

Observe que, neste exemplo, o valor 1 indica o valor selecionado.

A0 A1 A2 S0 S1 S2 S3 S4 S5 S6 S7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1

Figura 2-68

Exercício 2-39

Implemente um multiplexador 8 para 1 utilizando os componentes apresentados na Figura 2-54 e uma porta lógica.

Multiplexador 2 para 1

En A0 I1 I0 S 0 x x x 0 1 0 x 1 1 1 0 x 0 0 1 1 1 x 1 1 1 0 x 0

Seletor 1 de 4

A1 A0 S0 S1 S2 S3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1

Figura 2-69 Componentes disponíveis

Matemática Binária 46

Exemplo 2-23

A Figura 2-70 é o circuito combinacional apresentado no Exemplo 2-17. A Figura 2-71 mostra como a lógica de multiplexação pode ser obtida com um circuito seletor e buffers de 3 estados.

Figura 2-70 Implementação com Multiplexador

Figura 2-71 Implementação com Seletor e buffers de 3 estados

Exemplo 2-24 Uso de seletores no projeto de circuitos combinacionais

A Figura 2-72 ao lado mostra como utilizar um seletor para implementar a tabela verdade abaixo.

E2 E

1 E

0 Saída

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

Observe que o circuito poderia utilizar uma porta OR de 3 entradas. O uso de uma porta OR de 8 entradas garante que se possa implementar qualquer circuito combinacional de 3 entradas.

Figura 2-72

Matemática Binária 47

3 Matemática Binária

3.1 Introdução A possibilidade de representar números utilizando os dígitos 0 e 1, viabiliza a construção de circuitos eletrônicos que realizem operações matemáticas. A associação dos circuitos digitais com a matemática permite o desenvolvimento de máquinas que trabalhem com os modelos matemáticos que servem de base para qualquer ciência exata, suportando portanto a automação de uma ampla área do conhecimento humano. Nos capítulos que se seguem, serão abordados conceitos da matemática binária, utilizados nos circuitos Digitais.

3.2 Bases Numéricas A base 10 (decimal) caracteriza-se pela utilização de 10 dígitos (0 a 9). Sua utilização tem por fundamento histórico o exercício de contagem, associado ao número de dedos. Observe o hábito de contar nos dedos para fazer contas de adição, como uma possibilidade decorrente desta origem histórica do sistema decimal, onde as unidades correspondem ao número de dedos, e as dezenas a conjuntos de 10 dedos, como mostra o exemplo abaixo:

53: 5 conjuntos de 10 dedos + 3 dedos 53 = 5 *10 + 3 * 101 0 Convenção: Nesta secção, será convencionada a representação em subscrito da base numérica utilizada. Por exemplo, para expressar que o número 43 é uma representação na base 5, será adotada a notação 435 Definições:

Número Binário: número representado na base 2

Bit: dígito de um número binário (BInary digiT, do inglês)

Palavra: número binário

Tamanho de uma palavra: número de bits existentes na palavra

Byte: palavra de tamanho 8

Número Hexadecimal: número representado na base 16

Matemática Binária 48

3.2.1 Conversão de Outras Bases para a Base 10 Dado um número de n+1 dígitos, representado na base B:

Dn D B... 1 0 D

sua conversão para base 10 é realizada segundo a fórmula:

< >=

+ +

numero convertido_

... Dn.B D1.B D0.Bn 1 0

Exemplo 3-1 Conversão para a Base 10 do numero 1234

123 14 2 4 3 4

123 274

2 1 0

4 10

= + +=

. . .

Exercício 3-1: Converter os seguintes números para a base 10 a. 1354 6 ( base 6) b. 6 742 ( base 7) c. Converter da base 2 para a base 10

00001101

10101011

00110101

11100101

2

2

2

2

Exercício 3-2 Considerando-se que:

• a base 10 trabalha com os dígitos 0 a 9 • a eletrônica digital permite a operação com os dígitos

0 a 1 Qual a base numérica mais adequada para operar com circuitos eletrônicos digitais?

Exercício 3-3 Para o trabalho com a base 16 (hexadecimal), convencionou-se a utilização de letras para completar o conjunto de dígitos hexadecimais (0 a 15). A tabela 3-1 apresenta as letras utilizadas para representar os dígitos de 10 a 15.

Valor hexadecimal

Valor decimal

A 10 B 11 C 12 D 13 E 14 F 15

Tabela 3-1 Dígitos utilizados na base 16

Matemática Binária 49

Realize a conversão dos seguintes números, da base hexadecimal para a base 10: 0010

16

002A16

10B316

011116

102C16

3.2.2 Conversão da base 10 para outras bases

Considere um número N10 expresso na base 10, que deve ser convertido para a base B.

Sabe-se que o resultado expresso na base b deverá ser um conjunto de n dígitos e que

N10 = + +Dn.B D1.B D0.Bn 1 0...

Considere o resultado da divisão do número N pelo número B:

N

B B

quociente

resto

10 = + +

= +=

Dn.B D1.B D0.B

Dn.B D1.B

D0

n 1 0

n-1 0

...

...

Isto é, o dígito D0 é o resto da divisão de N por B.

Dividindo-se o quociente da operação anterior por B, tem-se:

quociente

B B

quociente

resto

= +

= +=

Dn.B D2.B + D1.B

Dn.B D2.B

D1

n-1 1 0

n-2 0

...

_ ...

_

1

1

Através desta nova divisão, obtem-se o dígito D1.

Desta forma, através de divisões sucessivas, pode-se definir todos os dígitos que expressarão o número na nova base.

Exemplo 3-2 Conversão do número 37510 (base 10) para a base 7:

375 = d 7 + d 7 +d 7 2

21

10

0* * * Observe o resultado da divisão inteira por 7:

o resto da divisão identifica o dígito d0

375

7 7

40

=

→→ =

d 7 + d 7 + d 7 + d 7

= d 7 + d 7 + d 7 ) = 53

resto = d

3 3

2 2

1 1

0 0

3 2

2 1

1 0

0 0

* * * *

( * * *quociente

Matemática Binária 50

O quociente da operação anterior dividido por 7 irá permitir identificar o dígito d1:

quociente

quociente

0

1

7

53

7 7

4

= =

→→ =

d 7 + d 7 + d 7

= d 7 + d 7 =7

resto = d

3 2

21

10

3 1

20

1 1

* * *

* *

E assim sucessivamente se definem os demais dígitos: quociente

quociente

1

2

7

7

7 7

0

= =

→→ =

d 7 + d 7

= 1 = d

resto = d

3 1

20

3

2 2

* *

Conclusão: 37510=10447

Exercício 3-4

Converter o número 375: • para a base 2. • para a base 16

3.2.3 Multiplicação de um número por sua base Conhecida a sistemática de formação de um número em determinada base numérica B,

<

< + +

numero na baseB > = DnD1...D0

numero na baseB > = Dn.B D1.B D0.Bn 1 0...

torna-se claro o resultado da multiplicação deste número pela sua base B:

< + + +<

numero na baseB > * B = Dn.B D1.B D0.B B

numero na baseB > * B = DnD1...D0

n+1 2 1 0... ( . )0

0

Isto é, a multiplicação de um número por sua base é realizada acrescentando-se um 0 no final do número.

Exemplo 3-3

Observe as seguintes operações de multiplicação pela base: 5310 * 1010 = 53010 1485 * 510 = 14805 A32B16 * 1610 = A32B016

Matemática Binária 51

3.2.4 Divisão de um número por sua Base Dado um número representado na base B,

<

< + +

numero na baseB > = DnD1...D0

numero na baseB > = Dn.B D1.B D0.Bn 1 0...

o resultado da divisão deste número por sua base, pode ser obtido através de: <

< + +

= + +=

numero na baseB >

B =

DnD1... D0

Bnumero na baseB >

B =

Dn. B D1.B D0.B

B

Dn. B D2.B + D1. B

D0

n 1 0

n-1 1 0

...

...quociente

resto

Isto é, na divisão de um número pela sua base tem-se:

• quociente: é obtido eliminando-se o dígito menos significativo • resto: é o dígito menos significativo

Exemplo 3-4

A tabela Tabela 2.2 a seguir apresenta exemplos de divisão de um número por sua base:

operação quociente resto

13210 710

1456 26

A1216 C16

Tabela 3-2 Exemplos de divisão pela base

3.3 Conversões entre a base 2 e a base Hexadecimal (16)

A conversão entre a base 2 e a base 16 é um caso particular amplamente utilizado nas aplicações digitais. Dois aspectos levam a esta ampla utilização:

• necessidade de trabalho na base 2 • facilidade de conversão entre as duas base • um mesmo número é expresso com menor número de dígitos quando na base 16,

o que facilita a digitação e leitura

Considere um mesmo número expresso nas bases e e base 16:

Bn Bn-1 ... B2 B1 B02= Hm Hm-1 ... H2 H1 H016

Bn B n B B Bn n. ( ). ... . . .

...

2 1 2 2 2 12 0 21 2 1 0+ − + + + =

+ + + +

Hm.16 H(m -1).16 H2.16 H1.16 H0.16m m-1 2 1 0

1327

10 10

10 1452

6 6

10 A C 12

16 16

10

Matemática Binária 52

Considere também a definição do dígito hexadecimal menos sighificativo (H0) através de um procedimento análogo ao descrito no ítem 3.2.2 acima: o dígito H0 é o resto da divisão por 16:

Hm.16 H(m - 1).16 H2.16 H1.16 H0.16

quociente: Hm.16 H(m - 1).16 H2.16 H1.16

resto: H0

quociente: Bn

resto: B

m m-1 2 1 0

m-1 m-2 1 0

+ + + +

+ + +

+ − + + +

+ − + + +

+ + +

− −

...:

...

. ( ). ... . . .:

. ( ). ... . . .

. . . .

16

2 1 2 2 2 12 0 2

16

2 1 2 6 2 5 2 42

32 22 12 02

1 2 1 0

4 5 2 1 0

3 2 1 0

Bn B n B B B

B n B B B

B B B

n n

n n

Isto é,

H016=B3 B2 B1 B02

De forma análoga, tem-se:

H116 = B7 B6 B5 B42

H216 = B11 B10 B9 B82

...

Hi16 = B(i*4+3) B(i*4+2) B(i*4+1) B(i*4) 2

Exemplo 3-5 - Conversão entre a Base 2 e a Base 16

101000112 = A316

010111012 =5D16

000101102 =1616

3.4 Adição Considere a adição

A+B = R

onde

A = an an-1 ... ai... a3 a2 a1 a0

B = bn bn-1 ... bi... b3 b2 b1 b0

R = rn rn-1 ... ri... r3 r2 r1 r0

Matemática Binária 53

Esta operação pode ser realizada observando-se que:

R = an 2n + ... ai+1 2

i+1 + ai 2

i +... a1 2

1 + a0 2

0

+ bn 2n + ... bi+1 2

i+1 + bi 2

i + ... b1 2

1 + b0 2

0

rearranjando:

fórmula 3-1: R = (an + bn)2n + ... (ai+1 + bi+1)2

i+1 + (ai + bi)2

i +... + (a0 + b0)2

0

Observe que o resultado da soma dos dígitos menos significativos apresenta-se como

fórmula 3-2: (a0 + b0).20=r0.2

0+ co0.2

1

Isto é, há 4 possibilidades de soma dos dígitos menos significativos:

• (0 + 0).20=0.2

0+ 0.2

1

• (0 + 1).20=1.2

0+ 0.2

1

• (1 + 0).20=1.2

0+ 0.2

1

• (1 + 1).20=0.2

0+1.2

1

O valor co0 é chamado de carry out (ou vai 1) da soma dos bits

multiplicados por 20

Inserindo-se a fórmula 3-2 na fórmula 3-1:

fórmula 3-3: R = (an + bn)2n + ... (ai + bi)2

i +... + (a1 + b1)2

1 + co0.2

1 + r0.2

0

para o cálculo de r1, consideram-se os bits multiplicados por 21:

(a1 + b1)21 + co0.2

1 = (a1 + b1 + ci1).2

1

onde ci1 é chamado de carry in ou vem 1 e obedece a seguinte identidade:

cii=coi-1

fórmula 3-4: (a1 + b1 + ci1).21 = r1.2

1+ co1.2

2

Repetindo seqüencialmente este raciocínio, para cada potência i de 2 calcula-se o valor do bit de saída r i e do carry out coi através da fórmula 3-5, calculam-se todos os bits do resultado.

fórmula 3-5: (ai + bi + cii).2i = (ai + bi + coi-1) . 2

i =ri .2

i +coi.2

i+1

O algoritmo de cálculo aqui descrito é idêntico àquele utilizado para a realização de somas na base 10, e pode ser esquematizado da mesma forma, conforme apresenta o Exemplo 3-6.

Matemática Binária 54

Exemplo 3-6

Realizar a soma 0 1 0 1 0 1 + 0 0 1 1 1 1

0 1 0 1 0 1 + 0 0 1 1 1 1 =

0.25+1. 2

4+0. 2

3+1. 2

2+0. 2

1+1. 2

0+

0.25+0. 2

4+1. 2

3+1. 2

2+1. 2

1+1. 2

0=

(0+0).25+(1+0). 2

4+(0+1). 2

3+(1+1). 2

2+(1+0). 2

1+(1+1). 2

0

A tabela 3-3 a seguir apresenta os valores obtidos nesta operação. Observe que o cálculo é realizado primeiramente no bit 0, para se obter o valor co0

que é utilizado no cálculo do bit 1, e assim sucessivamente.

bit: i 5 4 3 2 1 0 carry in: cii 1 1 1 1 1 0 parcela A: ai 0 1 0 1 0 1 parcela B: bi 0 0 1 1 1 1 resultado: ri 1 0 0 1 0 1 carry out: coi 0 1 1 1 1 1

Tabela 3-3 Diagrama para a realização da soma

Exemplo 3-7 Projeto de Somador

Será apresentado a seguir o exemplo de projeto de um circuito combinacional capaz de somar dois números binários de 4 bits. A figura 3-1 apresenta este somador.

a3 a0 a1 a2 b3 b0 b1 b2

r3 r0 r1 r2

ci0 co3

Matemática Binária 55

Figura 3-1 Somador binário de 4 bits

A realização deste projeto pode-se realizar considerando-se a fórmula 3-5. ai + bi + ci i = r i + coi-1

A partir dela, é possível projetar um circuito que calcula 2 saídas: • resultado: ri • carry out: coi (que será utilizado como carry in cii+i )

a partir de 3 entradas:

• parcela ai • parcela bi • carry in cii

Este circuito é chamado de célula de soma ou somador completo e é apresentado na figura 3-2

Figura 3-2 Célula de Soma

O somador de 4 bits será um conjunto de 4 células de somas interligadas, conforme apresenta a Figura 3-3

Figura 3-3 Somador composto por células

ai coi bi

cii

a1

co1

b1

ci1

a0

co0

b0

ci0

a3

co3

b3

ci3

a2

co2

b2

ci2

a3 a0 a1 a2 b3 b0 b1 b2

ci0 co3

ri

r3 r0 r1 r2

Matemática Binária 56

Com a utilização das células de soma, simplifica-se o projeto: é suficiente o projeto de uma célula, um circuito combinacional com 3 entradas e duas saídas, cujas tabelas verdade estão apresentadas na tabela 3-4 e o circuito correspondente apresentado na figura 3-4

ai bi ci r i coi 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Tabela 3-4 Tabela verdade da Célula de Soma

Figura 3-4 Circuito da célula de soma

Exercício 3-5 Considerando-se o somador apresentado na figura 3-1. Que valor deve ser conectado na entrada ci0?

Exercício 3-6 Como você utilizaria o circuito apresentado na figura 3-1 para realizar a operação

ai

bi

cii

coi

ri

Matemática Binária 57

S = A + B + 1

Exercício 3-7 Considere um número binário de 5 bits. Qual o maior número natural representável? Qual o maior número natural representável com um número de n bits?

Exemplo 3-8 Considere o somador de 4 bits apresentado na figura 3-1. Sabendo-se que, com 4 bits, é possível representar números naturais na faixa de 0 a 1510 , explique como deverá funcionar o somador se realizarmos a operação R= A + B, com

A= 1001 (910)

B= 1011 (1110) O resultado (2010) não pode ser expresso nos 4 bits de saída disponíveis, fato denominado como overflow. O somador apresentará as saídas mostradas na figura 3-5 a

Figura 3-5 Exemplo de somador operando com overflow

Overflow: denominação do fenômeno no qual o resultado de uma operação matemática necessita de um número de bits maior que o disponível nos circuitos. Exercício 3-8

Considere o somador de 4 bits apresentado na figura 3-1. Projete um circuito que acione uma luz sempre que ocorrer um overflow numa soma de números naturais.

Exercício 3-9

1 1 0 0 1 1 1 0

0 0 0 1

0 1

Matemática Binária 58

Utilizando o somador de 4 bits apresentado na figura 3-1, Projete um circuito que some dois números naturais de 4 bits e gere o resultado em 5 bits. Há possibilidade ocorrência de overflow neste circuito?

Matemática Binária 59

3.5 Subtração Considere a realização de uma subtração de dois bytes

A-B = R

onde

A = a7 a6 a5 a4 a3 a2 a1 a0

B = b7 b6 b5 b4 b3 b2 b1 b0

R = r7 r6 r5 r4 r3 r2 r1 r0

Esta operação pode ser realizada considerando-se o seguite artifício:

A-B = A - B + (11111111+00000001) - (11111111+00000001) ou

fórmula 3-6 A-B = A + 11111111- B + 00000001 - (11111111 + 00000001)

note que: 11111111- B = (1-b7). 2

7 + ... (1-bi). 2

i +...(1-b1) 2

1 +(1- b0) 2

0

considerando-se que

1- b = b i i tem-se

11111111- B = b7 b6 b5 b4 b3 b2 b1 b0

fórmula 3-7 11111111- B = B

fórmula 3-8 - (11111111+00000001) = - (1)00000000

considerando-se a utilização de 8 bits, a fórmula 3-8 corresponde à geração de dois valores:

o resultado em 8 bits (fórmula 3-9) o bit de carry out

fórmula 3-9 - (11111111+00000001) = 00000000

inserindo-se a fórmula 3-7 e a fórmula 3-9 na fórmula 3-6 tem-se:

fórmula 3-10 A- B = A + B + 00000001

Exemplo 3-9 Subtração

Realize a operação A - B

onde A = 1010 0110 B = 0011 0100

Aplicando-se a fórmula 3-10 tem-se:

A- B = A + B + 00000001

Matemática Binária 60

A - B = 1010 0110 + 1100 1011 + 0000 0001 ou, na forma esquemática de adição:

1 0 0 0 1 1 1 1

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

Observe a ocorrência de carry out nesta operação. Este valor deve ser desprezado em função das observações apresentadas ( fórmula 3-8 e fórmula 3-9) nas quais se desprezou a subtração do bit de carry out.

Exercício 3-10 Subtrator

Utilizando um somador de 4 bits, projete um subtrator. Para a realização deste exercício, considere:

• a fórmula 3-10 • o Exercício 3-6

Exercício 3-11- Erro na subtração

Considerando o circuito projetado no Exemplo 3-9, como se pode detectar uma condição de erro na subtração de números naturais (subtraendo maior que o minuendo) ?

Exemplo 3-10 Somador - Subtrator

A figura 3-6 abaixo apresenta um somador/ subtrator para números naturais.

Figura 3-6 Somador / Subtrator

carry out

a3 a0 a1 a2 b3 b0 b1 b2

r3 r0 r1 r2

C: controle E: erro

Matemática Binária 61

Seu funcionamento é definido por uma entrada de controle C, conforme apresenta a tabela 3-5 a seguir:

C operação 0 R = A + B 1 R = A - B

Tabela 3-5 Controle do Somador - Subtrator

A saída E: erro deve expressar a condição de erro: deve ser 1 sempre que o resultado não for válido. Para a realização deste exercício, considere:

• Exercício 3-10 Subtrator • Exercício 3-11- Erro na subtração

3.6 Números Negativos

Esta secção tem por objetivo abordar algumas formas de representar e operar números negativos.

3.6.1 Sinal Magnitude A representação em sinal magnitude é intuitiva e de fácil entendimento. Considere um número de nbits:

A = an-1 ... a1 a0

Na representação em sinal magnitude, reserva-se um bit (o mais a esquerda) para representar o sinal, e os demais para representação da magnitude (figura 3-7):

A = an an-1 ... a1 a0

magnitude sinal

Figura 3-7 Representação em sinal magnitude

Exemplo 3-11 Números de 4 bits em sinal magnitude

+4 = 0100 -4 = 1100 +3 = 0011 -3 = 1011

A grande desvantagem deste tipo de notação refere-se à complexidade para a realização de operações aritméticas (vide Exercício 3-12).

Matemática Binária 62

Exercício 3-12 Somador em sinal magnitude

Elabore um fluxograma que mostre a lógica necessária para a realização de uma soma de números representados em sinal e magnitude.

Exercício 3-13 Considere um número de 4 bits representado em sinal e magnitude. Qual o maior valor que pode ser representado? Qual o menor valor que pode ser representado?

3.6.2 Representação “por excesso”

A representação por excesso (biased), permite representar números no intervalo apresentado na Tabela 3-6

Número de bits Valor mínimo Valor máximo 8 -127 (0000 0000) 128 (1111 1111) 4 -7 (0000) 8 (1111) N )12( 1 −− −n 12 −n

Tabela 3-6– Intervalos de numeração na representação por excesso

Para a conversão de um valor na base 10 para esta representação, deve-se seguir o seguinte algoritmo:

1. some o valor 12 1 −−n (n – número de bits) ao número representado na base 10 2. converter o resultado para a base 2, segundo o algoritmo de conversão de

números inteiros para binário.

Exemplo 3-12 – conversão para representação por excesso; número positivo de 4 bits

Conversão do número 5 para um número binário de 4 bits, representado “por excesso”

1. somar 7 ( 12 14 −− ) ao número na base 10: 5+1 = 12 2. converter o resultado da base 10 para a base 2:

1210 = 11002

Exemplo 3-13 - conversão para representação por excesso; número negativo de 8 bits

Conversão do número -67 para um número binário de 8 bits, representado “por excesso”

3. somar 127 ( 12 18 −− ) ao número na base 10: -67+127 = 60 4. converter o resultado da base 10 para a base 2:

6010 = 001111002

Exercício 3-14 – algoritmo de conversão de binário por excesso para decimal

Descrever os passos para conversão da representação binária “por excesso” para a representação na base 10.

Matemática Binária 63

Exercício 3-15 – conversão de binário por excesso para base 10

Converter os números a seguir da representação binária “por excesso” para a representação na base 10.

• 0000 0101 • 0111 0011 • 1001 0000 • 1111 0101

3.6.3 Sinal e Complemento de 2 A representação em sinal e complemento de 2 de um número inteiro de n bits

A = an-1 ... a1 a0

Obedece a seguinte lei de formação:

fórmula 3-11: A = - 2n-1

an-1 + 2n-2

an-2 +... 21a1+2

0a0

Observe que o bit mais significativo possui peso negativo.

Exemplo 3-14 Números de 4 bits em sinal e complemento de 2 +4 = 0100 -4 = 1100 +3 = 0011 -3 = 1101

A vantagem da utilização da representação em sinal em complemento de 2 é a possibilidade de utilização de somadores comuns para a realização de somas. O Exemplo 3-15 a seguir mostra o funcionamento neste caso.

Exemplo 3-15 Soma de números em sinal e complemento de dois Considere a necessidade de criar um circuito para a soma de dois números de 4 bits, representados em sinal e complemento de 2:

A = a3 a2 a1 a0 B = b3 b2 b1 b0

A+ B = - 23a3 + 2

2a2 + 2

1a1 + 2

0a0 - 2

3b3 + 2

2b2 + 2

1b1+2

0b0

Considere a utilização de (figura 3-8) • um somador de 3 bits para somar a parcela positiva utilizada • um circuito auxiliar que determinará o resultado da parcela negativa a

partir dos bits a3 , b3 e carry out da parcela positiva:

A+ B = (-23a3 -2

3b3 ) + (2

2a2 + 2

1a1 + 2

0a0 + 2

2b2 + 2

1b1+2

0b0)

parcela positiva da operação parcela negativa da operação

Matemática Binária 64

Figura 3-8 Circuito para o cálculo em sinal e complemento de 2

A operação que deve ser feita pelo circuito auxiliar é: r3 = (-a3 - b3 + co2)

A tabela 3-7 a seguir apresenta: • condições de erro

• erro1: a soma de dois números positivos (a3=0 e b3=0) gerou um overflow (co2=1)

• erro2: a soma de dois números negativos (a3=1 e b3=1) gerando um overflow

• a tabela verdade da célula de soma. Observe que a célula de soma pode ser utilizada em lugar do circuito auxiliar, isto é, é possível a utilização direta de um somador de quatro bits)

a3 b3 co2 r3 a3+b3+co2

0 0 0 0 0 0 0 1 erro1 1 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 erro2 0 1 1 1 1 1

Tabela 3-7 uso de célula de soma como circuito auxiliar

Exercício 3-16

Considere um número de 4 bits, representado em sinal e complemento de 2. Qual o maior número representável? Qual o menor número representável?

somador

circuito auxiliar

a3 a0 a1 a2 b3 b0 b1 b2

r3 r0 r1 r2

0 co2

Matemática Binária 65

Exercício 3-17

Realize as operações a seguir, considerando que os números estão representados e sinal e complemento de 2. Identifique as situações em que houver overflow.

0101 + 0010 0101 + 1111 0101 + 0011 1111 + 1111 1100 + 1111 1100 + 1011

Exercício 3-18

Utilizando um somador, projete um circuito que, para uma entrada A, gere uma saída -A (figura 3-9)

Figura 3-9 Circuito para calcular o Complemento

3.6.4 Multiplicação de números em sinal e complemento de 2

A multiplicação por 2 de números representados em sinal e complemento de 2 é realizada de forma idêntica aos números naturais na base 2: deslocando-se os bits para a esquerda e colocando-se 0 no dígito menos significativo conforme apresenta a figura 3-10.

-2n-1

2n-2

22 2

1 2

0

A = an-1 an-2 ... a2 a1 a0

2 A = an-2 an-3 ... a1 a0 0

Figura 3-10 Multiplicação por 2

Exemplo 3-16 Multiplicação por 2

Multiplique por 2 os seguintes números de 6 bits, representados em sinal e complemento de 2:

001010 110110

001010 * 2 = 010100:(-25.0 + 2

4.0+ 2

3.1 + 2

2.0+ 2

1.1 + 2

0.0) * 2 =

(-25.0 + 2

4.1 + 2

3.0+ 2

2.1 + 2

1.0+ 2

0.0)

110110 * 2 = 101100:

A -A

Matemática Binária 66

(-25.1 + 2

4.1+ 2

3.0 + 2

2.1+ 2

1.1 + 2

0.0) * 2 =

(-26.1 + 2

5.1) + (2

4.0 + 2

3.1+ 2

2.1 + 2

1.0+ 2

0.0) =

(-25.1 + 2

4.0 + 2

3.1+ 2

2.1 + 2

1.0+ 2

0.0)

3.6.5 Divisão de números em sinal e complemento de 2

A divisão por 2 de números representados em sinal e complemento de 2 é realizada de forma semelhande aos números naturais na base 2:

• deslocando-se os bits para a direita • o bit mais significativo do número (mais a esquerda) não deve-se alterar após o

deslocamento (rotação com o sinal; figura 3-11 ).

-2n-1

2n-2

22 2

1 2

0

A = an-1 an-2 ... a2 a1 a0

2 A = an-1 an-1 an-2 ... a2 a1

Figura 3-11 Divisão por 2 (rotação com o sinal)

Exemplo 3-17 - Divisão por 2

Realize a divisão por 2 dos seguintes números de 6 bits, representados em sinal e complemento de 2:

001010

110110

001010

2 = 000101:

(-2 .0 + 2 .0 + 2 .1 + 2 .0 + 2 .1 + 2 .0)

2 =

(-2 .0 + 2 .0 + 2 .0 + 2 .1 + 2 .0 + 2 .1)

5 4 3 2 1 0

5 4 3 2 1 0

110110

2 = 111011:

Matemática Binária 67

Exemplo 3-18 Operação com números em sinal de complemento

Considere que você está limitado a trabalhar com números de 4 bits. Realize as seguintes operações, utilizando as técnicas de complementação e divisão pela base (números inteiros representados em sinal e complemento de 2):

S

S

10011

2

20011

2

3

3

= −

= −( )

Compare os resultados de S1 e S2. Eles são iguais? Por que? Descreva através de um fluxograma uma alternativa de algoritmo de divisão pela base que elimine este problema

3.7 Números Reais

3.7.1 Representação em Ponto Fixo

Nesta representação, assume-se uma determinada posição para o ponto. • bits à esquerda do ponto representam a parte inteira do número • bits à direita do ponto representam a parte fracionária do número

O Exemplo 3-19 mostra a representação em ponto fixo Exemplo 3-19 Representação em Ponto Fixo

Considere a utilização de uma palavra de 16 bits na qual assume-se a utilização de 8 bits para a parte inteira e de oito bits para a parte fracionária, conforme apresenta a figura 3-12 b7 b6 b5 b4 b3 b2 b1 b0 b-1 b-2 b-3 b-4 b-5 b-6 b-7 b-8

parte fracionária ponto parte inteira

Figura 3-12 Representação em Ponto fixo

O valor do número apresentado na figura 3-12 é definido pela fórmula 3-12

(-2 .1 + 2 .1 + 2 .0 + 2 .1 + 2 .1 + 2 .0)

2 =

(-2 .1 ) + 2 .1 + 2 .0 + 2 .1 + 2 .1

(-2 .1 + 2 .1) + 2 .1 + 2 .0 + 2 .1 + 2 .1

5 4 3 2 1 0

4 3 2 1 0

5 4 3 2 1 0

=

Matemática Binária 68

fórmula 3-12

B = b .2 + b 2 + ... b .2 + b .2 + b .2 +...b .27

76

60

0-1

-1-2

-2-8

-8

Exemplo 3-20 Conversão para a Base 10

Converter para a base 10 os número 00111011

Considere que os bits apresentados possuem: • 5 bits mais significativos na parte inteira • 3 bits menos significativos na parte fracionária

00111011

00111011

= - 0.2 + 0.2 + 1.2 + 1.2 + 1.2 + 0.2 + 1.2 + 1.2

= 7.375

4 3 2 1 0 -1 -2 -8

10

Exemplo 3-21 Conversão da base 10 para a base 2

Converter o número

0.7510

para a base 2.

0.7510 = b-1.2-1

+ b-2.2-2

+ ...

multiplicando-se por 2:

R1 = (0.7510 )* 2 = b-1.20 + b-2.2

-1 + + b -3.2

-2...

obtem-se um resultado no qual b-1 faz pertence a parte inteira:

b-1 = parte inteira de (0.75*2 = 1.5)

b-1 = 1

multiplicando-se a parte fracionária de R1 por 2:

R2 =fracionária (0.5 )* 2 = ( b-2.2-1

+ b-3.2-2

...)*2

R2 = 1,0 = b-2.2-0

+ b-3.2-1

+ b-4.2-2

...

obtem-se um resultado no qual b-2 faz pertence a parte inteira:

b-2 = parte inteira de (1.00 )

b-2 = 1

0.7510 = 0.112

Matemática Binária 69

3.7.1.1 Operações Aritméticas com ponto Fixo A representação com ponto fixo permite que se utilize exatamente os mesmos conceitos utilizados para a realização de operações aritméticas com números inteiros, representados em sinal e complemento de 2.

Exemplo 3-22 Operações aritméticas em sinal e complemento de 2

Converter para a base 10 o número A = 11111011

Considere que os bits apresentados possuem: • 5 bits mais significativos na parte inteira • 3 bits menos significativos na parte fracionária

Neste exemplo será realizada a conversão para a base 10, a partir do seguinte conjunto de operações aritméticas:

A

A

= - (-A)* 8

8

= - ( A

8

+ 1 8) *

onde

A

A

A

+ =

+ =

+ =

1 00000101

1 8 00101000

1 8 510

( ) *

( ) *

A

A

= −

= −

5

80625.

3.7.2 Ponto Flutuante A notação em ponto flutuante utiliza dois conjuntos de bits para representar dois números inteiros:

• B: número base • E: potência de dois

Isto é, um número N2 expresso em ponto flutuante é apresentado na forma

N = B * 2E

Matemática Binária 70

Exemplo 3-23 - Notação em ponto flutuante: conversão para a base 10

Converter o número

01011011 considerando-se que os 3 bits à direita correspondem à potência de dois e os 5 bits à esquerda correspondem ao número base.

número base: 010112 = 1110

potência de 2: 0112 = 310

01011011 = 11 * 23

01011011 = 88

Exercício 3-19- conversão da base 10 para ponto flutuante

Utilizando um byte com representação em ponto flutuante idêntica à descrita no Exemplo 3-23 acima, apresente o número binário correspondente a

0.7510

Uma das vantagens da notação em ponto flutuante em relação à notação componto fixo é a possibilidade de, com um determinado número de bits expressar

• números maiores • números com módulo próximo de zero

Exercício 3-20- Comparação entre ponto flutuante e ponto Fixo

Considere a utilização de um byte segundo dois critérios: Critério a:

Utilização de ponto fixo: 4 bits para a parte inteira e 4 bits para a parte fracionária

Critério b: 4 bits à direita correspondem à potência de dois e os 4 bits à esquerda correspondem ao número base.

Complete a tabela 3-8 abaixo:

critério a critério b maior número representável

menor número representável

menor número positivo representável

Tabela 3-8 Comparação entre ponto fixo e ponto flutuante

Matemática Binária 71

Uma das desvantagens da notação em ponto flutuante é a impossibilidade de uso direto de somadores comuns para a realização de soma e subtração. A Figura 3-13 apresenta um fluxograma que deve ser seguido para a realização de operações de soma de dois números N1 e N2 representados com ponto fixo.

N1 = B1 * 2E1

N2 = B2 * 2E2

Ns = N1 + N2 = BS + 2 Es

Figura 3-13 Fluxograma: soma de números em ponto flututante

Exemplo 3-24 Ponto Flutuante: soma

Considerando a representação em ponto flutuante na seguinte forma: • os quatro bits a esquerda representam o número base • os quatro bits a direita representam o expoente de 2

realize a soma:

01010100 + 01000010 Para melhor acompanhamento do exemplo, será colocado o valor numérico na base 10 ao lado das operações em base dois.

E1>E2? S

ES = E1

Bs BBE E

= + −12

2 1 2

fim

ES = E2

Bs BB

E E= + −2

1

2 2 1

N

Matemática Binária 72

01010100 + 01000010 (5.24 + 4.2

2)

B1 = 0101 (5) E1 = 0100 (4)

B2 = 0100 (4) E2 = 0010 (2)

como E1>E2,

Es = E1

Es = 0100 (4)

Bs BBE E

= + −12

2 1 2

Bs

Bs

= +

= + =

−01010100

20101 0001 0110

4 2

01010100 + 01000010 = 01100100 (5.24 + 4.22 = 6.2

4)

Exemplo 3-25 Underflow

Considerando o mesmo padrão utilizado no exemplo 2-34, realizar a soma

S = 01101111 + 01110011

Este exemplo apresenta uma condição na qual o número de bits não possui precisão suficiente para expressar o resultado correto da operação, fato denominado underflow.

01101111 + 01110011 (6.2-1

+ 7.23)

B1 = 0110 (6) E1 = 1111 (-1)

B2 = 0111 (7) E2 = 0011 (3)

como E2>E1,

Es = E2

Es = 0011 (3)

Bs BB

E E= + −2

1

2 2 1

Bs

Bs

= +

= + =

− −01110110

20101 0000 0111

3 1( )

01101111 + 01110011 = 01110011 (6.2-1 + 7.23 = 7.23)

Matemática Binária 73

3.8 Padrão IEE754 – Ponto flutuante A norma IEE754 especifica um padrão para a representação de números em ponto flutuante. Será apresentado a seguir um resumo das especificações deste padrão, aplicado a números binários de 32 bits. O número binário é representada na forma

><>=< expoente2*mantissaN A norma IEE754 especifica:

• os bits utilizados para representação da mantissa e do expoente • o tipo de representação binária utilizada • tratamento de condições de exceção

3.8.1 Disposição dos bits

Figura 3-14 – Disposição dos bits na representação IEE754 A Figura 3-14 apresenta a disposição dos bits na representação de números de 32 bits em ponto flutuante segundo a norma IEE754:

• a mantissa é representada segundo a notação sinal magnitude: o o bit 31 é utilizado para representação do sinal o os bits 0 a 22 são utilizados para representação da magnitude o assume-se que os 23 bits da mantissa estejam posicionados imediatamente a

direita do ponto. Portanto os bits representam um número fracionário menor que 1;

o assume-se que exista implicitamente um número 1 imediatamente a esquerda do ponto (representação normalizada)

• o expoente é representado “por excesso” (biased, veja a secção 3.6.2 - Representação “por excesso” )

o são utilizados os bits 23 a 30 (8 bits) para representação do expoente.

Exemplo 3-26 – Representação “por Excesso”

O número binário 00111111 10000000 00000000 00000000

possui as partes apresentadas na Figura 3-15

sinal

0 31 30 23 22

23 8

expoente mantissa

Matemática Binária 74

Figura 3-15 – Conversão do número binário segundo padrão IEE754

• mantissa:

• sinal: 0 • parte inteira: 1 (implícito) • parte fracionária: 0 • expoente: 0

o na representação biased de 8 bits, deve-se subtrair 127 do valor binário inteiro representado, portanto:

0111 1111 = 127 expoente = 127 – 127 =0

portanto 00111111 10000000 00000000 00000000 = 1 * 20

3.8.2 Condições de exceção A representação normalizada da mantissa assume a existência implícita de um “1” imediatamente a esquerda do ponto. Esta representação impede que se represente o número zero, o que seria um problema relevante para este padrão de representação de números em ponto flutuante. A IEE754 prevê condições de exceção para a representação do zero e números não normalizados:

• sempre que o expoente for 0000 0000, assume-se um número não normalizado; isto é, assume-se o valor 0 a esquerda do ponto;

• o valor de expoente 0000 0000, corresponde ao valor -126 (e não -127, como seria no cálculo da representação por excesso, para 8 bits);

• o valor de expoente 1111 1111 é utilizado para sinalizar uma condição de erro.

+ 1. 0000000 00000000 00000000

implícito

Mantissa = 1:

Exponente = 0:

0 01111111 0000000000000000000000

Matemática Binária 75

Exemplo 3-27 – Conversões de números não normalizados

• 0 = 00000000 00000000 00000000 00000000 • 10000000 01000000 00000000 00000000:

o expoente: 0000 0000 (expoente 0 sinaliza número não normalizado, com expoente igual a -126)

o mantissa = -0.5 � sinal: - � número não normalizado; parte inteira igual a zero � parte fracionária 1000000 00000000 00000000 = 0.5

o portanto, 10000000 01000000 00000000 00000000 = -0,5 * 2-126

Exercício 3-21- Conversão de números no padrão IEE754

Qual o valor decimal dos números binários: • 00000000 00000111 00000000 00000000 • 00000000 10000011 10000000 00000000

3.9 Sistema de representação BCD O sistema BCD (decimal codificado em binário) é um sistema onde:

• trabalha-se na base 10 • cada dígito decimal (0 a 9) é representado por um número binário de 4 bits

Exemplo 3-28 Codificação BCD

A figura 3-16 apresenta um exemplo de codificação BCD utilizando 16 bits para codificar um número decimal de 4 dígitos.

9 3 7 5

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

Figura 3-16 Codificação BCD

Este sistema de numeração é bastante utilizado em função de:

• facilidade de comunicação homem-máquina (equipamentos trabalham com a mesma base numérica de seres humanos)

• números fracionários na base 10 frequentemente convertem-se em valores periódicos na base 2

Matemática Binária 76

Exercício 3-1 - Facilidade de comunicação homem máquina

Considere a necessidade de projetar um relógio digital. Considere também que o painel de leitura das horas já está definido como um conjunto de 16 leds:

8 leds expressam as horas 8 leds expressam os minutos

Deve-se definir como os circuitos internos devem operar ( sistema binário ou BCD). Para facilitar a decisão, decidiu-se fazer uma análise do tempo que uma pessoa (que conheça os dois sistemas de numeração) levaria para ler as horas. Verifique na figura 3-17 que horas estão representadas, considerando duas situações:

• o painel apresenta o horário utilizando o sistema binário • o painel apresenta o horário utilizando o sistema BCD

Observe a facilidade de leitura no formato BCD, como uma expressiva vantagem na utilização deste sistema.

Figura 3-17 Painel do relógio Digital

3.9.1 Soma BCD A soma de números BCD deve não pode ser realizada diretamente com somadores binários. No entanto, dada a ampla utilização deste sistema de numeração, facilmente são encontrados circuitos específicos para este sistema (somadores, contadores).

Exercício 3-22 Somador BCD

Projete um somador de dígitos BCD, que gere os valores de saída e carry out BCD. Utilize dois somadores binários de quatro bits mais a lógica necessária.

Horas

Minutos

Matemática Binária 77

Exemplo 3-29

Considere uma calculadora, que esteja sendo utilizada para fins contábeis, na qual se deseja realizar a conta

$ 0.47 + $ 0.47. Considere também

• que a operação é realizada com números de 8 bits

• a utilização de um sistema de ponto fixo, com os 8 bits compondo a parte

fracionária

Para realizar esta operação, deve-se definir a utilização do sistema binário ou sistema BCD. Para tanto tem-se:

Soma BCD:

.01000111 + .01000111 = 10010100

0.47 + 0.47 = 0.94

Representação em binário: Utilização do algoritmo descrito no exemplo 2.10:

0.47 * 2 = 0.94 B7 = 0

0.94 * 2 = 1.88 B6 = 1

0.88 * 2 = 1.76 B5 = 1

0.76 * 2 = 1,52 B4 = 1

0.52 * 2 = 1.04 B3 = 1

0.04 * 2 = 0.08 B2 = 0

0.08 * 2 = 0.16 B1 = 0

0.16 * 2 = 0.32 B0 = 0

0.4710 = .011110002 = 0.46875

.01111000 + .01111000 = .11110000

0.47 + 0.47 = 0.9375

Conclusão: Uma conta que na base 10 (BCD) seria possível expressar como um resultado exato, assumiu um resultado distinto quando transposto para a base 2, o que não seria aceitável em termos contábeis.

Matemática Binária 78

Circuitos Sequenciais Síncronos 79

4 Circuitos Sequenciais

4.1 Introdução Apesar de sua importância dentro da eletrônica digital, os circuitos combinacionais representam apenas uma parte deste universo. Existem problemas cuja solução depende de um outro tipo de abordagem: o uso de circuitos sequenciais. Nestes problemas, num determinado instante ti , a saída deve ser gerada não apenas em função das entradas neste instante, mas também do histórico de entradas nos instantes anteriores: ti -1 , ti-2 , ti-3 , etc... Um dos exemplos mais imediatos de circuitos sequenciais são os contadores (Figura 4-1).

contador evento

... bits de

saída

Figura 4-1 Contador

A saída de um contador é um conjunto de bits que representa um número. Este número é incrementado cada vez que ocorre um evento. Observe que o valor de saída altera-se em função da entrada, mas não pode ser determinado apenas a partir do valor 0 ou 1 da entrada evento. Os contadores são um excelente exemplo para a reflexão sobre os circuitos sequenciais:

• o que é um evento? • além da entrada evento, de que mais depende a saída? • é possível descrever o funcionameto de um circuito sequencial através de uma

tabela verdade? • qual a melhor forma de descrever um circuito sequencial?

Nas secções a seguir serão apresentadas técnicas e conceitos que responderão a estas perguntas.

Circuitos Sequenciais Síncronos 80

4.2 Diagramas de Estados A capacidade de memorizar o passado identifica os circuitos sequenciais no seu funcionamento e forma de implementação, lhe conferindo duas características peculiares: • memória:

A principal característica dos circuitos sequenciais é a existência de memória. Isto é, o circuito possui alguns dispositivos que permitem armazenar informações sobre o seu passado. No exemplo do contador, não é possível gerar o valor de saída exclusivamente a partir dos valores de entrada, como nos circuitos combinacionais: o número de eventos já ocorridos deve ser memorizado pelo circuito. Conforme será apresentado na secção 3, trabalharemos com um componente chamado flip flop, que será utilizado como forma padrão de elemento de memória.

• realimentação:

Realimentação é a característica física de implementação dos circuitos sequenciais. Trata-se da forma através da qual a característica de memorização é implementada. A Figura 4-2 apresenta o contador como exemplo. Através da realimentação do valor de contagem, o circuito:

• implementa a memorização do valor de contagem • obtém todos os valores de entrada necessários para incrementar o

contador

contador evento

bits de saída

Figura 4-2 Realimentação do valor de contagem

Estas duas características principais definem as técnicas de análise e projeto de circuitos sequenciais. Nesta secção serão apresentadas técnicas e conceitos referentes a circuitos sequenciais síncronos, uma categoria de circuitos sequenciais cujas entradas são amostradas ciclicamente, em períodos fixos determinados por um oscilador. Os conceitos serão exemplificados com base num contador de dois bits, que realiza a contagem de 0 a 3.

Circuitos Sequenciais Síncronos 81

Exemplo 4-1 Contador de 2 bits

A Figura 4-3 apresenta um contador de dois bits, que será utilizado ao longo deste capítulo para exemplificar os conceitos apresentados.

Contador Evento bit 1

bit 0

Figura 4-3 Contador de 2 bits

A Figura 4-4 apresenta o diagrama de tempos do contador. Observe que o contador é incrementado a cada evento, e funciona ciclicamente (reinicia do valor 0, após o valor 3).

evento

bit 1

bit 0

00 (0)

01 (1)

11 (3)

10 (2)

00 (0)

...

Figura 4-4 Diagrama de tempos do contador

4.2.1 Costruindo um Diagrama de Estados Com base no Exemplo 4-1, será apresentado a seguir um conjunto de conceitos e procedimentos para construção de diagrama de estados. Os diagramas de estados estão para os circuitos sequenciais assim como as tabelas verdade estão para os circuitos combinacionais: tratam-se da ferramente que descreve completamente o funcionamento do circuito.

Circuitos Sequenciais Síncronos 82

Os diagramas de estado são utilizados no modelamento de circuitos sequenciais, tanto em sua análise, como no seu projeto. Definição:

• Transição ou borda: mudança de valor de uma determinada variável. A transição ocorre num determinado instante e tem duração zero (idealmente; na prática existe um período de tempo infinitesimal). Existem dois tipos de transições:

• ascendentes ou positivas: transições nas quais a variável passa do valor 0 para o valor 1

• descendentes ou negativas: transições nas quais a variável passa do valor 1 para o valor zero.

Observe na Figura 4-4 que o contador exemplo é incrementado nas transições positivas.

• variável de estado: cada um dos bits realimentados de um circuito sequencial. No exemplo apresentado na Figura 4-3 existem duas variáveis de estado: bit 0 e bit 1.

• estado: cada valor gerado pelo conjunto de variáveis de estado. No exemplo da

Figura 4-3 existem quatro estados, correspondentes às quatro combinações de valores das variáveis de estado (bit 1 e bit 0):

• estado 00 • estado 01 • estado 10 • estado 11

• tabela de atribuição de estados: tabela na qual se associa um valor para cada

estado. A Tabela 4-1 apresenta os valores atribuidos a cada estado do contador.

Estado Valor CONT0 00 CONT1 01 CONT1 10 CONT3 11

Tabela 4-1 - Tabela de atribuição de estados

• diagrama de estados: diagrama que descreve o funcionamento de circuitos sequenciais. O diagrama de estados apresenta:

• os estados como círculos dentro dos quais se apresentam: • o nome de cada estado • os valores de saída correspondentes associados àquele estado

(neste momento será assumido que as saídas dependem exclusivamente do estado)

Circuitos Sequenciais Síncronos 83

• as mudanças de estado, representadas por setas que ligam um determinado estado a outro.

• Nas máquinas síncronas, as mudanças de estado estão sincronizadas com um determinado evento; no exemplo do contador de dois bits, a variável chamada evento comanda as mudanças de estado.

• O evento que comanda as mudanças de estado das máquinas síncronas é representado por um risco sobre as setas que identificam as mudanças de estados

• Quando existem outras variáveis externas, o mesmo estado origem pode ter mais de uma seta, apontando para diferentes estados destino, conforme o valor da variável externa (vide Exemplo 4-2)

CONT0

bit1 bit0

CONT1

bit1 bit0

CONT3

bit1 bit0

CONT2

bit1 bit0

considerando-se o estado CONT0

tem-se a seguinte saída:

bit0 = 0 bit1 = 0

quando ocorrer o evento de comando de transição de estado

o novo estado será o estado CONT1

Figura 4-5 Diagrama de estados do contador de dois bits

Circuitos Sequenciais Síncronos 84

A Figura 4-5 apresenta o diagrama de estados do contador de dois bits. Observe: • os nomes dos estados • a convenção utilizada para especificar os valores de saída em cada estado:

• bit: significa bit = 0 • bit : significa bit = 1

• a forma como o evento que comanda a transição de estado é representado • a seta indicando que, a partir do estado CONT0, o próximo estado será o estado

CONT1

4.2.1.1 Controlando o próximo estado O Exemplo 4-1 apresenta um caso particular, no qual, a partir de um determinado estado, a variável evento sempre comanda a mudança de estado para um único próximo estado. Normalmente, a partir de um determinado estado, o evento de mudança de estado pode comandar a transição para diferentes estados, dependendo do valor das variáveis de entrada. Esta situação é apresentada no Exemplo 4-2 a seguir.

Exemplo 4-2 - Contador Up-Down

No Exemplo 4-1 acima, foi apresentado um contador de dois bits que é incrementado a cada transição da variável evento. Neste exemplo, será acrescentada uma variável Up, que controla o contador:

Up = 1: o contador deve ser incrementado a cada evento Up = 0: o contador deve ser decrementado a cada evento

Este contador, apresentado na Figura 4-6, será chamado Contador Up Down.

b0

b1

evento

I Contador

Up - Down

Figura 4-6 Contador Up Down

O objetivo deste exemplo é apresentar a forma como os diagramas de estado representam as condições de mudança de estado, determinadas por variáveis externas.

Circuitos Sequenciais Síncronos 85

A Figura 4-7 apresenta o diagrama de estados do contador up down. Observe:

• cada estado possui duas possibilidades de próximo estado, dependendo do valor da entrada I no instante em que ocorrer a transição na variável evento

• a notação utilizada para a variável de entrada I: • I : significa “quando I = 1”

• I : significa “quando I = 0” • a forma como o diagrama de estados descreve completamente o

comportamento do circuito, especificando as condições de incremento e decremento do contador.

I

I

I CONT0

bit1 bit0

CONT1

bit1 bit0

CONT3

bit1 bit0

CONT2

bit1 bit0

considerando-se o estado CONT1

Quando I = 0, a transição de estado levará ao estado CONT0

I

I

I

I

I

Quando I = 1, a transição de estado levará ao estado CONT2

Figura 4-7 Diagrama de estados do contador up-down

Circuitos Sequenciais Síncronos 86

Exercício 4-1 Contador habilitável

A Figura 4-8 apresenta um contador habilitável de dois bits. Este tipo de contador possui uma entrada Hab de habilitação:

• Hab = 1: o contador é incrementado a cada transição na entrada evento • Hab = 0: o contador não é incrementado, mesmo ocorrendo transições na

entrada evento

b0

b1

evento

Hab Contador habilitá-

vel

Figura 4-8 Contador Habilitável

Forneça o diagrama de estados do contador habilitável.

Exercício 4-2 Contador zerável

A Figura 4-9 apresenta um contador zerável. Este tipo de contador possui uma entrada Zerar, de zeramento:

• Zerar = 1: o contador é zerado na cada transição da entrada evento • Zerar = 0: o contador é incrementado, a cada transição na entrada evento

Este tipo de contador é também chamado contador com clear síncrono.

b0

b1

evento

Zerar Contador zerável

Figura 4-9 Contador Zerável

Forneça o diagrama de estados do contador zerável.

Circuitos Sequenciais Síncronos 87

4.2.1.2 Lógica de Saída Os exemplos de contadores acima apresentam em comum a característica de que as variáveis de estado (variáveis realimentadas) são também as variáveis de saída. Como regra geral, as variáveis de saída são função das variáveis de estado2. Portanto, a igualdade entre as variáveis de estado e a saída dos contadores trata-se de um caso particular da regra geral. O Exemplo 4-3 a seguir mostra um caso no qual inexiste uma identidade direta entre variáveis de estado e valores de saída.

Exemplo 4-3 Divisor de frequência

Um divisor de frequência é um circuito que tem em sua entrada um circuito oscilador com uma determinada frequência f, e gera em sua saída uma outra forma de onda, com frequência f/n. Diz-se que este circuito divide a frequência por n. A Figura 4-10 apresenta um divisor de frequência por 4.

clock

clock

out

Divisor por 4 oscilador

out

Figura 4-10 Divisor de frequência por 4

2 Regra geral válida para as máquinas de Moore, cujo modelo de diagrama de estados está-se apresentando nesta secção.

Circuitos Sequenciais Síncronos 88

A Figura 4-11 apresenta o diagrama de estados do divisor de frequência. Observe: • a definição de quatro estados, cada um identificado por um nome distinto • considerando-se que:

• cada nome deve se associado a uma combinação distinta de variáveis de estado

• existem quatro estados conclui-se que este circuito possui pelo menos 2 variáveis de estado, com as

quais seria possível gerar quatro combinações distintas: 00, 01, 10 e 11. • embora cada estado seja identificado por valores diferentes de variáveis de

estado, o valor de saída se repete em mais de um estado

EST0

out

EST1

EST3 EST2

out out

out

Figura 4-11 Diagrama de estados do divisor de frequência por 4

Exercício 4-3 Divisor de frequência

Forneça o diagrama de estados correspondente ao diagrama de tempos apresentado na Figura 4-12. Observe que, embora este circuito realize uma divisão por quatro, assim como o apresentado no Exemplo 4-3, a forma de onda gerada não é a mesma.

clock Divisor por 4 oscilador

out

clock

out

Figura 4-12 Divisor por 4

Circuitos Sequenciais Síncronos 89

Exercício 4-4 Divisor de frequência programável

A Figura 4-13 apresenta um divisor de frequência programável.

clock

Divisor programável

oscilador

out

Prg

Figura 4-13 Divisor de frequência programável

Este circuito possui duas entradas:

• clock - um sinal oriundo de um oscilador • Prg - um comando de programação, que define a divisão de frequência

desejada, da seguinte forma: • Prg = 0: o sinal out de saída deve possuir uma frequência de 1/3 do

clock • Prg = 1: o sinal out de saída deve possuir uma frequência de 1/4 do

clock Forneça o diagrama de estados que descreve o funcionamento deste circuito.

4.2.2 Próximos passos Nesta secção foram apresentados os conceitos referentes a diagrama de estados, a ferramenta base para o modelamento de circuitos sequenciais. A seguir será apresentado o flip flop, componente para a construção de máquinas sequenciais, e o uso de diagramas de estados para a análise de circuitos.

Circuitos Sequenciais Síncronos 90

4.3 Máquinas Sequenciais Implementadas com Flip Flo p D

4.3.1 Flip Flop D Um vez conhecidos os diagramas de estado e a forma de modelamento dos circuitos sequenciais, será abordada a forma de implementação física dos mesmos. A Figura 4-14 apresenta um flip flop tipo D, o componente básico para a implementação de máquinas sequenciais.

D Q

CL CK

D

clock

clear

Q

clock

clear

D

Q

a entrada clear força a saída Q para 0

as bordas ascendentes da entrada clock realizam uma amostragem na entrada D. O valor amostrado é transferido para a saída Q

Figura 4-14 Flip Flop tipo D

Circuitos Sequenciais Síncronos 91

Observe o funcionamento lógico3 do flip flop tipo D nos diagramas de tempo da Figura 4-14:

• a entrada clear (clear assíncrono) quando ativa4 zera a saída Q, independentemente dos valores das demais entradas

• as entradas clock e D operam em conjunto: sempre que existe uma borda ascendente na entrada clock, é feita uma amostragem na entrada D. Este valor amostrado é transferido para a saída Q, que fica inalterada até que ocorra uma nova amostragem (ou a entrada clear seja ativada).

Note também que o flip flop é uma máquina sequencial, onde existem realimentações internas:

• a saída Q memoriza a entrada D • a entrada clock corresponde ao evento que comanda as mudanças de estado • Estado do flip flop: é o valor de sua saída Q5 • a entrada clear impõe uma mudança de estado, independentemente do clock,

razão pela qual ela é chamada de assíncrona

Exemplo 4-4

O diagrama de estados do flip flop tipo D é apresentado na Figura 4-15.

E0 E1

Q D

D D D

Q

Figura 4-15 - Diagrama de estados do flop flop tipo D.

Observe na Figura 4-15 que o estado E0 possui uma seta externa que significa Estado Inicial.

Definições: • Comando Assíncrono: é um comando que altera o estado de uma máquina

sequencial, independentemente do evento de mudança de estado. No flip flop tipo D o comando clear é um comando assíncrono

• Estado Inicial é o estado para o qual a máquina é levada quando inicializada através de sinais assíncronos. Esta inicialização é chamada Reset da máquina sequencial

3 nesta secção, o flip flop será tratado como um componente ideal, sem quaisquer restrições de tempo, que serão apresentadas posteriormente. 4 usualmente a entrada clear dos flip flops opera com lógica invertida, isto é, a entrada esta ativa quando o seu valor é 0 5 observe que o conceito de que as variáveis de estado caracterizam-se pela realimentação permanece válido mesmo que a saída do flip flop não seja realimentada: o flip flop possui realimentações na forma como é implementado internamente

Circuitos Sequenciais Síncronos 92

4.3.2 Realimentação de flip flops Para o bom entendimento das características de funcionamento de um flip flop realimentado, é conveniente ter presente a existência de um retardo entre a subida do clock e a atualização do valor de saída Q, chamado de tempo de retardo de propagação do flip flop. A Figura 4-16 mostra o tempo de retardo de propagação de um flip flop tipo D, com saída

complementar ( Q )6.

Q

clock

D

Q

D Q

CL CK

D

clock

clear

Q

Q Q

tempo de retardo de propagação

Figura 4-16 Tempo de retardo de propagação do flip flop

6 embora a figura apresente como idênticos, os tempos de retardo de propagação podem ser diferentes, conforme a transição de saída seja de 0 para 1 ou de 1 para 0

Circuitos Sequenciais Síncronos 93

Exemplo 4-5 Flip Flop realimentado

A Figura 4-17 apresenta um circuito com um flip flop realimentado. Observe: • clock implícito: normalmente todos os flip flops de um circuito sequencial

síncrono tem sua entrada de clock conectada a um único oscilador. Para maior clareza dos diagramas, será adotada uma convenção na qual a conexão do clock não será representada, nestas condições de conexão a um oscilador.

• clear inativo: o valor lógico 1, conectado à entrada clear, tornando-a inativa

D Q

CL CK

D

1

out

Figura 4-17 Flip flop realimentado

A Figura 4-18 apresenta o diagrama de tempos que descreve o funcionamento deste circuito.

ti

D = Q

clock

out = Q

ti+1

Figura 4-18 Diagrama de tempos

Circuitos Sequenciais Síncronos 94

Considere o período e tempo marcado como ti, na Figura 4-18: • a saída Q é chamada estado atual durante este período e seu valor é 1 • a entrada D é chamada próximo estado, durante este período, e seu valor

é 0. Ao final do período ti ocorre uma transição no relógio, que marca o início do período ti+1 . Neste instante, o valor da variável D é amostrado, e se inicia um novo ciclo com novos valores de estado atual e próximo estado.

4.3.3 Modelo Geral de Máquina Sequencial As máquinas sequenciais implementadas com flip flops obedecem um modelo geral, apresentado Figura 4-197.

circuito

combinacional

de

próximo

estado

CK

Q D

.

.

.

circuito

combinacional

de

saída

clock

CK

Q D

CK

Q D

.

.

.

...

E1

En

E2 D1

Dm

D2

Q1

Qm

Q2

S1

St

S2

Registrador de

Estado

Figura 4-19 Modelo geral da máquinas sequenciais síncronas (Modelo de Moore)

7 a Figura 4-19 apresenta o modelo das máquinas de Moore. Posteriormente será apresentado um modelo mais geral, correspondente às máquinas de Mealy.

Circuitos Sequenciais Síncronos 95

A Figura 4-19 apresenta o modelo geral das máquinas sequenciais síncronas contendo os seguintes blocos:

• um registrador de estado contendo m flip flops tipo D que armazena o estado atual (Q1, Q2 ... Qm)

• um oscilador chamado clock que alimenta todos os flip flops • um circuito combinacional de próximo estado, que calcula o próximo estado

(D1, D2... Dm) dos flip flops a partir do estado atual e das entradas externas (E1, E2 ... En)

• um circuito combinacional de saída que calcula sa saídas (S1, S2 ... Sn) a partir do estado atual

O Exemplo 4-6 a seguir apresenta uma máquina sequencial e identifica cada um destes componentes.

Exemplo 4-6 Blocos de uma máquina sequencial

A máquina sequencial apresentada na Figura 4-20 obedece o modelo geral das máquinas sequenciais síncronas, apresentado na Figura 4-19.

D Q

CK

Q0

Q1 D Q

CK

circuito combinacional de próximo estado circuito

combina-cional de

saída

registra-dor de estado

clock

In

Out

Figura 4-20 Exemplo de blocos de um circuito sequencial

Circuitos Sequenciais Síncronos 96

4.3.4 Análise de circuitos sequenciais Análise de um circuito sequencial é a descrição completa de seu funcionamento. Conforme apresentado na secção 4.2, os diagramas de estado realizam esta descrição. Assim, a análise de um circuito sequencial resume-se à geração do seu diagrama de estados, o que é feito através de um conjunto de 4 passos:

1. listar os estados da máquina 2. levantar a tabela verdade do circuito combinacional de próximo estado 3. levantar a tabela verdade do circuito combinacional de saída 4. desenhar o diagrama de estados

Estes passos serão mostrados no Exemplo 4-7 a seguir.

Exemplo 4-7 Análise de circuito sequencial

Considere o circuito sequencial apresentado no Exemplo 4-6 acima. A geração do diagrama de estados correspondente é feita a partir dos seguintes passos:

1. identificação dos estados do circuito O estado do circuito é definido pelos valores das saídas Q dos flip flops. A

sua identificação pode ser feita através de uma tabela de atribuição de estados. Neste exemplo, existem dois flip flops, consequentemente o circuito possui 4 estados, cujos nomes atribuídos são mostrados na tabela a seguir:

Q1 Q0 Nome do

estado 0 0 00 0 1 01 1 0 10 1 1 11

Observe que o nome do estado é um conjunto qualquer de caracteres, definido conforme as conveniências de cada projetista. A única restrição na escolha dos nomes de estados é de que não existam dois estados diferentes com o mesmo nome. Neste exemplo, adotou-se como nome do estado um número binário correspondente à combinação de bits de estados.

2. Tabela verdade do circuito combinacional de próximo estado. O circuito combinacional de próximo estado calcula as entradas D dos flip

flops a partir • das entradas externas (E0, E1,...En) • do estado atual (Q0, Q1,...Qm)

Neste exemplo, as equações de próximo estado extraídas do circuito são:

• Q0In + Q0Q1 = D1 ⋅⋅

• Q1 = D0

Circuitos Sequenciais Síncronos 97

A partir das equações gera-se a tabela de próximos estados:

Estado atual

Entrada externa

Próximo estado

Q1 Q0 In D1 D0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 0

3. Tabela verdade do circuito combinacional saída. O circuito combinacional de saída calcula os valores de saída a partir do estado atual (Q0, Q1,...Qm) Neste exemplo, a equação de saída é:

• Q0Q1 =Out ⋅ A partir das equações gera-se a tabela saídas:

Estado atual Saída Q1 Q0 Out 0 0 0 0 1 0 1 0 0 1 1 1

4. Desenhar o diagrama de estados. Neste exemplo:

• desenham-se os quatro estados, com os nomes escolhidos no passo 1, e as saídas extraídas na tabela de saídas (passo 3), gerando a Figura 4-21 a seguir:

Out 00

Out 01

Out 10

Out

11

Figura 4-21 Desenho dos estados

Circuitos Sequenciais Síncronos 98

• a partir da tabela de próximos estados (passo 2) são desenhadas as setas, observando:

• se existirem n entradas externas, de cada estado devem sair 2n

setas: uma seta para cada combinação de entradas • neste exemplo existe 1 entrada externa, razão pela qual deve-se

desenhar duas setas partindo de cada estado • estado atual é o estado de onde parte a seta • próximo estado é o estado onde chega a seta • sobre cada seta deve-se colocar o valor das variáveis externas que

comanda aquela mudança de estado • a Figura 4-22 apresenta o diagrama de estados gerado a partir da

tabela de próximos estados e Figura 4-21. Observe a forma como as setas que saem do estado 11 foram geradas a partir da tabela de próximo estado

__ P

__ P

__ P

Out 00

Out 01

Out 10

Out

11

__ P P

P

P

P

considerando-se 11 o estado atual

o valor P=0 fará com que o próximo estado seja 00

o valor P=1 fará com que o próximo estado seja 10

Figura 4-22 Diagrama de estados completo

4.4.1 Simplificação do Diagrama de Estados O diagrama de estados apresentado na figura 3.4.2 pode ter sua apresentação visual simplificada se forem aplicadas algumas regras que visam reduzir o número de setas. Estas regras de simplificação serão apresentadas a seguir no Exemplo 4-8

Exemplo 4-8 - Simplificação de diagrama de estados

Um tipo de flip flop que será estudado posteriormente é o flip flop JK. Trata-se de um circuito sequencial cujas entradas e saídas estão apresentados na Figura 4-23.

J Q

K

Figura 4-23 Flip Flop JK

Circuitos Sequenciais Síncronos 99

A tabela a seguir descreve o funcionamento deste componente:

J K atualização de Q na transição do clock 0 0 mantem-se inalterado 0 1 zero 1 0 um 1 1 sofre uma inversão

A descrição feita na tabela acima pode ser apresentada na forma do diagrama de estados da Figura 4-24

J K⋅

J K⋅

J K⋅

J K⋅

J K⋅ J K⋅

J K⋅ Q 1

Q

0

J K⋅

Figura 4-24 Diagrama de estados do flip flop JK

A representação visual do diagrama de estados da Figura 4-24 pode ser simplificada mediante a aplicação de duas regras:

1. duas ou mais setas que tenham o mesmo estado origem e o mesmo estado destino podem ser substituída por

• uma única seta ligando os dois estados • uma equação com o conector lógico OU ligando todas as condições de

mudança de estado A aplicação da regra número 1 leva ao diagrama de estados apresentado na

Figura 4-25:

J K J K⋅ + ⋅

Q 1

Q

0

J K J K⋅ + ⋅

J K J K⋅ + ⋅

J K J K⋅ + ⋅

Figura 4-25 Redução do número de setas

Circuitos Sequenciais Síncronos 100

2. Simplificar as equações que podem ser simplificadas. Por exemplo: KKJKJ =⋅+⋅

A simplificação de equações leva ao diagrama de estados apresentado na Figura 4-26:

J

Q 1

Q

0

K

J

K

Figura 4-26 Simplifição das equações

4.4.2 Projeto de máquinas sequenciais O projeto de máquinas sequenciais obedece as etapas mostradas na Figura 4-27 a seguir:

Modelar a solução (diagrama de estados)

Identificar o problema

Atribuir valores dos estados (tabela de atribuição de estados)

Projetar o circuito combinacional de próximo estado (tabela de próximo

estado)

Projetar o circuito combinacional de saída (tabela de saídas)

Desenhar o circuito

Figura 4-27 Etapas de projeto de máquinas sequenciais

Circuitos Sequenciais Síncronos 101

Observe que as etapas de projeto de uma máquina sequencial são as mesmas etapas de análise, realizadas porém em ordem inversa. O Exemplo 4-9 mostra a realização destes passos de projeto.

Exemplo 4-9 Projeto de máquina sequencial

Será utilizado como exemplo de projeto, um divisor de frequência programável, mostrado na Figura 4-28.

Prg

clock

out

Figura 4-28 Divisor de frequência programável

1. especificação do problema: O objetivo deste circuito é gerar uma saída out com as seguintes especificações:

• Prg = 1: um pulso em out para cada 4 pulsos de clock • Prg = 0: um pulso em out para cada 2 pulsos de clock

2. Desenho do diagrama de estados A Figura 4-29 apresenta o diagrama de estados da máquina sequencial que

atende às especificações do problema

B

out

A

out

D

out

C

out

Prg Prg

Figura 4-29 Diagrama de estados do divisor de frequência

3. Atribuir valores aos estados A existência de quatro estados define a utilização de um registrador de estado

com dois flip flops. A tabela de atribuição de estados associa os valores de saídas dos flip flops aos estados. Esta atribuição é feita a critério do projetista, com a única restrição que dois estados distintos não podem ser associados a um

Circuitos Sequenciais Síncronos 102

mesmo valor de registrador de estado. A seguir um exemplo de tabela de atribuição de estados

Estado Q1 Q0 A 0 0 B 0 1 C 1 1 D 1 0

4. Projetar circuito combinacional de Próximo Estado A partir do diagrama de estados, extrai-se a tabela de próximo estado a seguir:

Estado Atual

Entrada Externa

Próximo Estado

A Prg B A Prg B B Prg A B Prg C C Prg D C Prg D D Prg A D Prg A

Ou, substituindo os nomes de estado pelos valores da tabela de atribuição de estados:

Estado Atual

Entrada Externa

Próximo Estado

Q1 Q0 Prg D1 D0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0

A partir da tabela de próximos estados, é possível extrair as equações de próximo estado:

Q1P + Q0Q1 = D0

Q0P + Q0Q1 = D1

⋅⋅

⋅⋅

Observe que as equações serão diferentes se a atribuição de estados (passo 3)

for feita de outra forma.

Circuitos Sequenciais Síncronos 103

5. Tabela de Saídas A tabela de saídas a seguir foi extraída do diagrama de estado:

Estado Saída A Out B Out C Out D Out

ou, seu correspondente com valores numéricos extraídos da tabela de atribuição

de estados:

Estado Saída Q1 Q0 Out 0 0 0 0 1 1 1 0 0 1 1 0

A equação de saída correspondente é:

Q0Q1 =Out ⋅

6. Desenho do Circuito Finalmente, a partir das equações de próximo estado e de saída, é possível

desenhar o circuito sequencial correpondente Figura 4-30

D Q

CK

D Q

CK

Clock

Prg

Out

Figura 4-30 Circuito final do divisor de frequência

Circuitos Sequenciais Síncronos 104

Exercício 4-5 Contador programável

A Figura 4-31 apresenta um contador programável com dois bits.

Contador

Programável

Q1

Q0

Pulso

P0

P1

Figura 4-31 Contador programável

A tabela a seguir apresenta as operações que devem-se realizar na transição da entrada Pulso:

P1 P0 efeito do pulso sobre a saída (Q1 Q0) 0 0 mantem valor de saída 0 1 incrementa valor de saída 1 0 decrementa valor de saída 1 1 zera a saída

Projete este contador programável.

4.5 Técnicas de Projeto de Máquinas Sequenciais No capítulo anterior foram apresentadas as técnicas básicas de projeto de máquinas sequenciais síncronas com flip flop tipo D. Existe ainda um conjunto de técnicas de projeto, que vão desde um outro modelo de diagrama de estados até a utilização de outros tipos de flip flops, que podem ser utilizadas para a otimização dos projetos de máquinas sequenciais. O objetivo deste capítulo é a apresentação de algumas destas técnicas.

4.5.1 Máquinas de Mealy A Figura 4-32 apresenta o modelo geral das máquinas de Mealy.

Circuito

Combina- cional

de Próximo Estado

Registrador de

Estado

Circuito

Combina- cional

de Saída

Próximo Estado

Estado Atual

Entradas

Saídas

Figura 4-32 Modelo das máquinas de Mealy

Circuitos Sequenciais Síncronos 105

A diferença entre as máquinas de Mealy e o modelo estudado até aqui (Máquinas de Moore) diz respeito ao circuito combinacional de saída:

• Máquinas de Moore: Saída = função ( Estado Atual)

• Máquinas de Mealy: Saída = função ( Estado Atual, Entradas Externas )

Esta diferença implica a necessidade de uma nova notação nos diagramas de estado que, para máquinas de Moore, associam a saída ao estado. Nas máquinas de Mealy, um mesmo estado pode apresentar saídas diferentes, conforme o valor das entradas. O Exemplo 4-10 apresenta a forma de notação a utilizar.

Exemplo 4-10 Diagramas de estado para Máquinas de Mealy

A Figura 4-33 apresenta um circuito sequenciador de luzes, para ser conectado ao sinal Stop, ativo quando se pisa no freio do automóvel:

• Stop = 0: L1,L2 permanecem apagadas (zero) • Stop = 1: L1 e L2 são acesas alternadamente, somente L1, depois

somente L2, e assim sucessivamente

Sequência

de Luzes

Clock

Stop L1

L2

Figura 4-33 Circuito Sequenciador de Luzes

A Figura 4-34 apresenta o diagrama de estados do sequenciador de luzes, visando a sua implementação numa máquina de Mealy. Observe a notação utilizada: sobre as setas que saem do estado são colocados os valores das variáveis externas e, separados por uma barra, os valores de saída para aquele estado e aqueles valores de variáveis externas.

Stop / L1⋅ L2

Stop / L1⋅ L2

Stop / L1⋅ L2

Stop / L1⋅ L2

Considerando-se o Estado A como estado Atual

A B

A entrada Stop = 0 irá gerar as saídas L1=0 e L2=0

A entrada Stop = 1 irá gerar as saídas L1=1 e L2=0

Figura 4-34 Diagrama de estados do Sequenciador de Luzes

Circuitos Sequenciais Síncronos 106

Os demais passos para o projeto de máquinas de Mealy são análogos ao passos apresentados na secção anterior: • tabela de atribuição de estados

Estado Q A 0 B 1

• tabela de próximo estado

Estado Q

Stop Próximo Estado(D)

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

• equação de próximo estado

Q = D

• tabela de saídas A tabela de saídas é a principal diferença entre as máquinas de Mealy e de

Moore: as máquinas de Mealy contemplam as entradas externas como variáveis independentes, alem dos valores dos estados

Estado

Q Stop L1 L2

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

• equações de saída QStop = L1 ⋅ QStop = L2 ⋅ • circuito final A Figura 4-35 apresenta o circuito final do sequenciador de luzes

Figura 4-35 Sequenciador de luzes

Stop

D Q

CK

L2

L1 Clock

Circuitos Sequenciais Síncronos 107

Observe que o sequenciador de luzes apresentado no Exemplo 4-10 poderia também ser implementado através de uma máquina de Moore, conforme apresenta o Exemplo 4-11.

Exemplo 4-11 Sequenciador de luzes num máquina de Moore

A Figura 4-36 apresenta uma outra solução para o Exemplo 4-10, na qual se adotou o modelo de Moore

L1 L2⋅

A

L1 L2⋅

C

L1 L2⋅

B

Stop Stop

Stop

Stop

Stop

Stop

Figura 4-36 Sequenciador implantado numa Máquina de Moore

Observe que o circuito implantado numa máquina de Moore apresentou 3 estados, enquanto a modelo de Mealy necessitou apenas 2 estados..

O Exemplo 4-11 mostrou uma situação bastante frequente, na qual a utilização de máquinas de Mealy resulta num circuito mais simples. Eventualmente existem problemas cuja solução deve utilizar um determinado modelo, por razões de funcionamento. O Exemplo 4-12 a seguir apresenta um destes casos.

Exemplo 4-12 Cadeia de contadores

Uma prática bastante comum é o encadeamento de contadores, através da qual se contrói um contador de 8 bits a partir de dois contadores de quatro bits encadeados, por exemplo. Neste exemplo, deve-se construir um contador de dois bits que possa ser encadeado. A Figura 4-37 mostra este contador, que deve ser um contador habilitável:

Hab = 0: não incrementa Hab = 1: incrementa

Este circuito possui, além dos dois bits de contagem, uma saída HOut, cujo objetivo é conectar o sinal de habilitação a um outro contador encadeado.

Circuitos Sequenciais Síncronos 108

Contador

Habilitável

Hab

HOut

Q1 Q0

Clock

Figura 4-37 Contador Habilitável

A Figura 4-38 mostra um conjunto de três destes contadores encadeados, de forma a constituir um contador de 6 bits:

• O sinal que habilita o contador como um todo (o contador de 6 bits) é o sinal de habilitação da célula (contador de 2 bits) que contem os bits menos significativos

• O sinal HOut de uma célula é conectado ao sinal Hab da célula seguinte • O clock é comun a todas as células

HOut0 Hab0 Hab1 HOut1 HOut2 Hab2

Contador

0

Q0 Q1

Contador

1

Q2 Q3

Contador

2

Q4 Q5

HabExt

Clock

Figura 4-38 Encadeamento de contadores

Para a realização deste projeto, é necessário ter em mente as condições nas quais o sinal HOut deve ser gerado. Em cada uma das células, o sinal HOut deve estar ativo (HOut = 1) quando atender simultaneamente as seguintes condições:

• o seu sinal Hab estiver ativo (recebeu o comando de incrementar) e • o seu valor de saída for 11

Este tipo de especificação de funcionamento traz implícito a utilização de uma máquina de Mealy: para um mesmo estado (11) pode-se ter uma saída (HOut) com valores diferentes (0 ou 1), dependendo das condições de entradas externas (Hab). A Figura 4-39 apresenta o diagrama de estados deste circuito:

Circuitos Sequenciais Síncronos 109

Q1 Q0⋅

00

Q1 Q0⋅

11

Q1 Q0⋅

01

Q1 Q0⋅

10

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab HOut/

Figura 4-39 Diagrama de estados do contador encadeável

A Figura 4-39 mostra um diagrama de estados híbrido: • as saídas Q1 e Q0 dependem exclusivamente das variáveis de estado, e para

elas foi adotado um modelo de Moore • a saída HOut depende das variáveis de estado e da entrada externa: para

ela foi adotado um modelo de Mealy.

• Tabela de próximos estados

Estado Atual

Entrada extena

Próximo Estado

Q1 Q0 Hab D1 D0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0

• Equações de próximos estados

• HabQ0Q1 Q0Q1+Q1Hab ⋅⋅+⋅⋅

• Q0HabQ0Hab ⋅+⋅

Circuitos Sequenciais Síncronos 110

• Tabela de saída

Estado Atual

Entrada extena

Saída

Q1 Q0 Hab HOut 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1

• Equação de saída

• Q0Q1Hab HOut ⋅⋅=

• Circuito Final A Figura 4-40 apresenta o circuito somador encadeável. Observe:

• a utilização da saída complementar do flip flop, com objetivo de reduzir o número de portas

• o clock com conexão implícita

HOut

D Q

Q __

CK

D Q

Q __

CK

Q1

Q0

Hab

Figura 4-40 Somador encadeável de dois bits

Circuitos Sequenciais Síncronos 111

4.6.1 Redução de estados Eventualmente a geração de um diagrama de estados pode ser feita de uma forma tal, que haja estados redundantes. Dois estados são redundantes se, para as mesmas condições de entrada:

• possuirem as mesmas saídas • possuirem os mesmos próximos estados

Quando as duas condições acima ocorrerem simultaneamente, podem ser substituídos por um único estado. O Exemplo 4-13 a seguir mostra as técnicas de redução de estados redundantes.

Exemplo 4-13 - Redução de estados redundantes

Com o objetivo de contar o número de pessoas que entra num ônibus, deve-se desenvolver um circuito digital que gera um pulso para cada pessoa que entra (Figura 4-41). sentido de

entrada

sentido de saída

foto emissor

detector de passagem

foto sensor S1

foto sensor S2

entrou

Figura 4-41 Sensor de Entrada

O circuito deve garantir que o pulso será gerado somente quando alguem entra no ônibus: o sinal entrada deve permanecer em zero quando os sensores forem acionados durante a saída do veículo. O diagrama de estados apresentado na Figura 4-42 considera: • um estado inicial A, marcado pela seta maior • que existe uma sequência de acionamento dos sensores durante a entrada:

• primeiramente é acionado apenas o sensor S1 • a seguir são acionados simultaneamente S1 e S2. Suponha que os dois

sensores estão bastante próximos • a seguir o sensor S1 deixa de ser acionado • finalmente os dois sensores são liberados

• que, se o sensor S2 for acionado a partir do estado inicial, trata-se de uma pessoa saindo, portanto o circuito somente retorna ao estado inicial quando ambos os sensores estiverem inativos

• é utilizado um estado de passagem (estado E) para geração de um pulso da largura do clock

Circuitos Sequenciais Síncronos 112

E

X A B

C D

entrou

entrou

entrou

entrou entrou

entrou

S1 + S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

S1.S2

Figura 4-42 Diagrama de estados do sensor

A Tabela 4-2 a seguir apresenta os próximos estados e saídas do diagrama de estados da Figura 4-42. Nesta tabela considerou-se que a velocidade do clock é alta o bastante, de forma que seja impossível passar na frente do sensor no intervalo de tempo correspondente ao periodo do clock. Como consequência, existirão sequências impossíveis de ocorrer no acionamento dos sensores. Isto leva à existência de condições irrelevantes de próximo estado, apresentadas na tabela verdade da Figura 4-42.

Circuitos Sequenciais Síncronos 113

estado entradas próximo Saída

S1 S2 estado (Entrou) A 0 0 A 0 A 0 1 X 0 A 1 0 B 0 A 1 1 irrelev. 0. X 0 0 A 0 X 0 1 X 0 X 1 0 X 0 X 1 1 X 0 B 0 0 A 0 B 0 1 irrelev. 0 B 1 0 B 0 B 1 1 C 0 C 0 0 irrelev.. 0 C 0 1 D 0 C 1 0 B 0 C 1 1 C 0 D 0 0 E 0 D 0 1 D 0 D 1 0 irrelev. 0 D 1 1 C 0 E 0 0 A 1 E 0 1 A 1 E 1 0 A 1 E 1 1 A 1

Tabela 4-2 Tabela de saídas e próximos estados

Normalmente a análise de estados redundantes é feita em dois passos: 1. agrupar os estados que, para as mesmas entradas apresentam as mesmas

saídas Neste exemplo existem dois grupos de estados que, para as mesmas entradas

possuem as mesmas saídas: • grupo 1: estados A, B, C, D, X, para quaisquer valores de entradas

apresentam a saída 0 • grupo 2: estado E, para qualquer valor de entrada apresenta saída 1.

Se houver redundância, ela deve ocorrer dentro de um mesmo grupo. Consequentemente, pode-se concluir que o estado E não possui redundância

Circuitos Sequenciais Síncronos 114

2. Procurar as redundâncias dentro de cada grupo. A identificação de redundâncias dentro de um mesmo grupo é feita pesquisando

os estados que, para os mesmos valores de entrada levam ao mesmo próximo estado. Observe por exemplo os estados A e B na Tabela 4-3 a seguir:

estado entradas próximo S1 S2 estado

A 0 0 A A 0 1 X A 1 0 B A 1 1 irrelev. (C)

B 0 0 A B 0 1 irrelev.(X)

B 1 0 B B 1 1 C

Tabela 4-3 Equivalência entre os estados A e B

Mediante uma substituição adequado dos próximos estados irrelevantes, é possível identificar uma redundância entre os estados A e B, agrupando-os como um único estado que será chamado AB na Tabela 4-4 a seguir.

estado entradas próximo S1 S2 estado

AB 0 0 AB AB 0 1 X AB 1 0 AB AB 1 1 C

Tabela 4-4 Fusão dos estados A e B

De forma semelhante, pode-se identificar a redundância entre os estados C e D. Observe que a Tabela 4-5 a seguir já contempla a redundância encontrada entre os estados A e B: a referência original ao estado B foi substituida pelo novo estado AB equivalente.

estado entradas próximo S1 S2 estado

C 0 0 irrelev.(E)

C 0 1 D C 1 0 AB C 1 1 C D 0 0 E D 0 1 D D 1 0 irrelev.(AB)

D 1 1 C

Tabela 4-5 Equivalência entre os estados C e D

para S1 = 0 e S2 = 0, o próximo estado é A

para S1 = 0 e S2 = 1, o próximo estado é X

para S1 = 1 e S2 = 0, o próximo estado é B

para S1 = 1 e S2 = 1, o próximo estado é C

Circuitos Sequenciais Síncronos 115

Os estado C e D serão fundidos num único estado CD na tabela a seguir:

estado entradas próximo S1 S2 estado

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

Tabela 4-6 Fusão dos estados C e D

A incorporação das fusões de estados à tabela de próximos estados e saídas irá gerar a Tabela 4-7 a seguir.

estado entradas próximo saída S1 S2 estado (Entrou)

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

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

Tabela 4-7 Tabela de saídas e próximos estados após simplificação

A Figura 4-43 a seguir mostra o diagrama de estados após a simplificação. Através da eliminação de estados redundantes foi possível reduzir o número de estados de seis para quatro, o que corresponde a uma redução de 1/3 no tamanho do circuito, que poderá ser implementado com 2 flip flops ao invés de 3.

Circuitos Sequenciais Síncronos 116

S2

S1.S2

C

entrou

S1.S2

E

X AB

entrou

entrou entrou

S1 + S2

S1.S2

S2

S1.S2

S1.S2

Figura 4-43 Diagrama de estados do Circuito simplificado

Exercício 4-6 Eliminação de Estados redundantes

Dada a Tabela 4-8 de próximos estados e saídas: • forneça o diagrama de estados correspondente • forneça o diagrama de estados após a eliminação dos estados redundantes

Saídas Estado Atual

Entrada externa

Próximo Estado S1 S2

A 0 A 0 0 A 1 D 0 1 B 0 A 0 0 B 1 E 0 1 C 0 B 0 0 C 1 D 0 1 D 0 D 1 1 D 1 F 1 0 E 0 D 1 1 E 1 F 1 0 F 0 F 0 1 F 1 E 0 1

Tabela 4-8 Tabela de saídas e próximos estados

Circuitos Sequenciais Síncronos 117

4.7.1 Uso de Flip Flop JK Os flip flops JK (Figura 4-44) são uma categoria de flip flops cuja implementação interna lhes confere um funcionamento característico.

J Q

K

Figura 4-44 Flip Flop JK

O seu funcionamento pode ser descrito pela Tabela 4-9, correspondente ao diagrama de estados apresentado na Figura 4-24. (vide Exemplo 4-8)

J K atualização de Q na transição do clock 0 0 mantem-se inalterado 0 1 zero 1 0 um 1 1 sofre uma inversão

Tabela 4-9 Funcionamento do flip flop JK

J

Q 1

Q

0

K

J

K

Figura 4-45 Diagrama de Estados do flip flop JK

A utilização de flip flops JK frequentemente gera circuitos mais simples que os projetados com flip flop D. O projeto com este tipo de componente possui algumas técnicas específicas, que serão apresentadas no Exemplo 4-14 a seguir.

Circuitos Sequenciais Síncronos 118

Exemplo 4-14 Projeto com flip flop JK

A Figura 4-46 a seguir é o diagrama de estados do contador encadeável, cujo projeto com flip flop tipo D foi realizado no Exemplo 4-12.

Q1 Q0⋅

00

Q1 Q0⋅

11

Q1 Q0⋅

01

Q1 Q0⋅

10

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab/ HOut

Hab HOut/

Figura 4-46 Diagrama de estados do contador encadeável

• Tabela de próximos estados

A primeira etapa da implantação de um circuito com flip flop JK, consiste na geração da tabela de próximos estados, idêntica à gerada para os flip flop tipo D.

Estado Atual

Entrada extena

Próximo Estado

Q1 Q0 Hab D1 D0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0

Tabela 4-10 – Tabela de próximo estado – contador encadeável

A tabela de próximos estado deve sofrer uma complementação, considerando a

tabela de próximos estados do flip flop JK.

Circuitos Sequenciais Síncronos 119

A tabela de próximos estados do flip flop JK (Tabela 4-11) é extraída do diagrama apresentado na Figura 4-45 acima.

Estado Atual

Próximo Estado

J K

0 0 0 X 0 1 1 X 1 0 X 1 1 1 X 0

Tabela 4-11 Tabela de próximos estados do flip flop JK

Observe na Tabela 4-11 a existência de condições irrelevantes (X) para todas as mudanças de estados no flip flop JK. A inserção da Tabela 4-11 na Tabela 4-10 gera a Tabela 4-12 Estado Atual

Entrada extena

Próximo Estado D

Próximo Estado JK

Q1 Q0 Hab D1 D0 J1 K1 J0 K0 0 0 0 0 0 0 X 0 X 0 0 1 0 1 0 X 1 X 0 1 0 0 1 0 X X 0 0 1 1 1 0 1 X X 1 1 0 0 1 0 X 0 0 X 1 0 1 1 1 X 0 1 X 1 1 0 1 1 X 0 X 0 1 1 1 0 0 X 1 X 1

Tabela 4-12 Valores de JK na tabela de próximos estados

Note que o uso de flip flop tipo D necessitaria duas equações, para D1 e D0. Utilizando-se flip flop JK são necessárias 4 equações: J1, K1, J0 e K0. Entretanto, o número de condições irrelevantes frequentemente gera circuitos mais simples com flip flop JK, em função das simplificações. Veja os mapas de Karnaugh a seguir.

Considerando-se que o estado atual seja 1 e o próximo estado seja 0 A Tabela 4-11informa

que estado atual = 1 e próximo estado = 0

corresponde a J=X e K=1

Circuitos Sequenciais Síncronos 120

• Equações de próximos estados

J1 Hab Hab K1 Hab Hab

0Q1 Q⋅ 0 0 0Q1 Q⋅ X X

Q0Q1⋅ 0 1 Q0Q1⋅ X X Q0Q1⋅ X X Q0Q1⋅ 0 1 Q0Q1⋅ X X Q0Q1⋅ 0 0

Q0Hab=J1 ⋅ Q0Hab=K1 ⋅

J0 Hab Hab K0 Hab Hab

0Q1 Q⋅ 0 1 0Q1 Q⋅ X X

Q0Q1⋅ X X Q0Q1⋅ 0 1 Q0Q1⋅ X X Q0Q1⋅ 0 1 Q0Q1⋅ 0 1 Q0Q1⋅ X X

Hab=J0 Hab=K0 • Tabela de saída

O projeto do circuito combinacional de saída independe do tipo de flip flop, isto é, os circuito combinacional de saída será o mesmo se o flip flop for D ou JK.

Estado Atual

Entrada extena

Saída

Q1 Q0 Hab HOut 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1

• Equação de saída

• Q0Q1Hab HOut ⋅⋅=

Circuitos Sequenciais Síncronos 121

• Circuito final A Figura 4-47 apresenta o circuito final do contador encadeável, implementado

com flip flop JK. Compare este circuito com o circuito gerado no Exemplo 4.5.3 e note que o circuito projetado com flip flip JK ficou mais simples que o circuito projetado com flip flop D.

Figura 4-47 – Circuito final

Laboratórios 122

5 Laboratórios Diferentemente da engenharia civil, em que os desenhos são uma representação visual do projeto final que será implementado, engenharia eletrônica caracteriza-se por trabalhar com uma representação icônica. O desenho de uma porta and nada tem a ver com a realidade física do componente; trabalha-se com ícones, que representam um comportamento cujo modelo deve-se conhecer. Acrescente-se a isto a impossibilidade de enxergar níveis lógicos, tensões ou correntes sem o auxílio de instrumentação. Esta característica da engenharia eletrônica é, de certa forma, compensada com a possibilidade de realização de experimentos de baixo custo: através de simulações ou montagens tem-se a possibilidade de vivenciar de forma concreta o comportamento de circuitos cujo aprendizado exige um elevado nível de abstração. Neste capítulo será apresentado um conjunto laboratórios concebidos para realização sincronizada com o desenvolvimento de conteúdos teóricos. A sua realização permite, mais do que a fixação de conteúdos teóricos, um outro tipo de aprendizado baseado na realidade prática dos circuitos eletrônicos digitais.

Laboratórios 123

5.1 Análise de Circuitos Combinacionais Objetivo:

• Utilização do simulador de circuitos digitais • Análise de circuito combinacional

Especificação: 1. Realize o Tutor – Uso do o Simulador apresentado a seguir. 2. Simule o circuito apresentado na Figura 5-1 3. Compare e comente os resultados encontrados

Figura 5-1 Circuito combinacional a simular

5.1.1 Tutor – Uso do o Simulador

Neste tutorial será utilizado o simulador Microcap para simulação de um circuito combinacional. Passo1 - Adição dos Componentes

O circuito especificado faz uso de componentes digitais elementares elementares, que podem ser acessados através do menu Component...Digital Primitive Para adicionar a porta inversora, utilizar o menu (Figura 5-2 - Inserção do Inversor) Component...Digital Primitive ..Standard Gates..Inverters..Inverter

Figura 5-2 - Inserção do Inversor

Laboratórios 124

Após o comando de inserção do inversor aparecerá a Caixa de Diálogo de Parametrização do Componente. Através de caixa de diálogo é possível ajustar alguns parâmetros referentes ao componente que será inserido. Veja na Figura 5-3: • Alterar o nome do inversor de U1 para INV01 • marcar a opção Show, para que o nome seja apresentado no diagrama

Figura 5-3 - Alterar no nome do componente

Selecionar o modelo de temporização (timing model) como DLY_TTL: Retardo típico da tecnologia TTL (Figura 5-4).

Figura 5-4 – Definir o modelo de retardo

Figura 5-5 – Orientação inadequada do componente

Caso o inversor não fique posicionado adequadamente, como na Figura 5-5 a seguir, é possível reposicioná-lo da seguinte forma:

1. clicar sobre a ferramenta de seleção

Laboratórios 125

2. Selecionar o componente que se deseja girar

3. Clicar no botão “Girar” (Figura 5-6), até que a porta esteja adequadamente orientada

Figura 5-6 – Botão “Girar”

4. clicar sobre o identificador do componente

5. Arrastar o identificador para a posição desejada

6. Repita a operação de inserção para as demais portas, de forma a obter o circuito apresentado na Figura 5-7

Figura 5-7 – Componentes Posicionados

Laboratórios 126

Passo2 - Adição de Linhas Adicione as linhas, de forma a que o circuito assuma a configuração mostrada na Figura 5-8 - Adição de linhas

Figura 5-8 - Adição de linhas

Passo 3 - Adição de Textos

Os textos possuem três aplicações principais: • documentação • identificar nós para os quais se deseja traçar curvas • identificar os nós “conectados por texto”

Utilizando o botão texto (Figura 5-9), adicione os textos identificadores dos nós de entrada e de saída.

Figura 5-9 Adição de Textos

Laboratórios 127

Passo 4 - Projeto do Gerador de Estímulos Gerador de estímulos é o componente utilizado para excitar circuitos digitais. A Figura 5-10 apresenta a tabela verdade de excitação que será utilizada. Observe que, para fins de simulação, é necessário acrescentar o modelo de temporização do estímulo: instante inicial (Tini) e instante final (Tfin) de cada estímulo. Neste exemplo, está-se definindo uma duração de 200ns para cada linha da tabela verdade.

E1 E2 E3 Tini Tfin

0 0 0 0ns 200ns 0 0 1 200ns 400ns 0 1 0 400ns 600ns 0 1 1 600ns 800ns 1 0 0 800ns 1us 1 0 1 1us 1.2us 1 1 0 1.2us 1.4us 1 1 1 1.4us 1.6us

Figura 5-10 Tabela verdade de excitação

Passo 5 - Adição do Gerador de Estímulos

Neste exemplo será utilizado um gerador de estímulos de quatro saídas, das quais 3 serão utilizadas. Adicione o componente Stim4 (Figura 5-11)

Figura 5-11 - Inserir gerador de estímulos

Laboratórios 128

A Figura 5-12 - Propriedades do Gerador de Estímulos mostra a caixa de diálogo utilizada para configurar o gerador de estímulos. A configuração dos sinais é feita através da propriedade COMMAND

Figura 5-12 - Propriedades do Gerador de Estímulos

Compare a propriedade COMMAND mostrada na Figura 5-12 com a tabela verdade especificada na Figura 5-10

0ns 0000 200ns 0001 400ns 0010

a partir de 0ns, gerar o sinal 0000

a partir de 0ns, gerar o sinal 0001

Figura 5-13 - Propriedade COMMAND

Observe na Figura 5-13 que a especificação do sinal gerado é composta por dois textos:

• texto de especificação do instante inicial (por exemplo instante 200ns)

• texto de especificação do sinal (por exemplo 0001) Atenção ao conectar o gerador de estímulos ao circuito! O “bit mais significativo” é identificado por um ponto no componente (Figura 5-14).

Laboratórios 129

Bit mais significativo é o bit mais a esquerda na declaração COMMAND. Ao declararmos 200ns 0001 teremos:

• bit mais significativo (mais a esquerda) = 0 • bit menos significativo (mais a direita) = 1

Figura 5-14 – Circuito final

Passo 6 - Simulação

Selecione a opção Transient... (Figura 5-15)

Figura 5-15 - Selecionar Transient Analysis

Irá aparecer o Diálogo “Transient Analisys Limits”. (Figura 5-16).

Figura 5-16 - Diálogo “Transient Analisys Limits”

Laboratórios 130

Altere o intervalo de exibição e acrescente as demais variáveis que se deseja monitorar, conforme mostrado na Figura 5-16 e Figura 5-17: • configuração da escala de tempo: neste exemplo, será realizado um

monitoramento de 1.6 us • configuração dos nós a serem monitorados: neste exemplo, serão

monitorados os nós E1, E2, E3 e O1

Figura 5-17 - Configuração da Análise

Após completar as configurações, executar a simulação (botão RUN) Observe o resultado da simulação na Figura 5-18 - Resultado da Simulação

Figura 5-18 - Resultado da Simulação

Fim do tutor

Laboratórios 131

5.2 Conversor para 7 segmentos

Objetivo: • Projeto de circuito combinacional • Uso de mapa de Karnaugh • Uso do simulador de circuitos digitais

Especificação:

A Figura 5-19 a seguir apresenta um circuito conversor Binário BCD para 7 segmentos.

b3 b2 b1 b0 representação 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1

Figura 5-19– conversão BCD para 7 segmentos

Conversor binário BCD para 7 segmentos b

0

b1

b2

b3

b

a

d

c

f

e

g

b

a

d c

f

e

g

Laboratórios 132

Este circuito recebe em sua entrada 4 bits, que representam um número binário de 0 a 9 (BCD) e formece em sua saída 7 bits cujo objetivo é acionar um conjunto de luzes (Led) de forma a compor o número correspondente. A Figura 5-19 apresenta apresenta tambem uma tabela mostrando as representações 7 segmentos para cada combinação válida na entrada do circuito. Conforme as características de fabricação do display de 7 segmentos especificado, as luzes poderão ser acionadas com nível lógico 1 ou nível lógico 0. Para este projeto, considere a seguinte estratégia de definição das saídas a,b,c,d,e,f, g do circuito combinacional (lógica invertida):

• saída em 1: apaga a luz correspondente • saída em 0: acende a luz correspondente

As tarefas deste laboratório são as seguintes:

1. Especificar o funcionamento do circuito através de uma tabela verdade;

considere irrelevante as saídas correspondentes a combinações inválidas de entrada

2. Simplificar o circuito com mapa de Karnaugh; as condições irrelevantes devem ser utilizadas com o bojetivo de simplificação máxima;

3. Simular o circuito projetado 4. Elaborar um relatório sobre o trabalho realizado

Laboratórios 133

5.3 Montagem – Conversor BCD para 7 segmentos Objetivo:

• Projeto de circuito combinacional, incluindo projeto de protótipo • Estudo das características elétricas de portas lógicas • Montagem e depuração de circuito combinacional

Especificação: 1. Realize o Tutor – Montagens de protótipos apresentado a seguir. 2. Monte o conversor BCD para 7 segmentos, obedecendo aos passos apresentados no

Tutor. O protoboard deve ser marcado conforme mostrado na 3. Figura 5-23 de forma a possibilitar a localização dos componentes 4. O protótipo deve ser apresentado acompanhado de relatório contendo a

documentação de montagem: • Memorial de cálculo dos resistores; • Lista de componentes (Figura 5-24). Incluir chaves, leds e resistores. • Diagrama de montagem (Figura 5-27). Incluir chaves, leds e resistores.

5.3.1 Tutor – Montagens de protótipos

A montagem de um circuito possui alguns aspectos relevantes para seu sucesso:

• Os passos de uma montagem • O padrão de documentação sugerido

O processo completo de prototipação será apresentado passo a através de um exemplo.

Circuito exemplo

A Figura 5-20 mostra o circuito lógico utilizado como exemplo neste tutor sobre montagens.

Figura 5-20 – Circuito lógico a ser montado

Laboratórios 134

Montagem passo a passo

Passo 1: Rever o projeto A opção de rever o projeto tem por objetivo a economia na compra de componentes. Observe que o circuito mostrado na Figura 5-21 implementa a mesma lógica, porém utilizará um integrado a menos:

• Na opção anterior seriam necessários 3 CIs (INV, AND, OR) • Nesta alternativa serão necessários apenas 2 CIs (Inv, NAND)

Figura 5-21 – Circuito equivalente com portas NAND

Nota: o circuito acima apresenta a lógica de uma ou-exclusivo, portanto poderia ser montado com apenas 1 CI)

Passo 2: Simular Embora não faça parte da montagem propriamente dita, a realização de uma simulação possibilita verificar se existem erros de projeto. Isto pode representar uma grande economia de energia: caso existam erros de projeto, evita-se o retrabalho de montagem.

Passo 3: Selecionar os Componentes A seleção de componentes é feita a partir de manuais ou da Internet. Neste tutor, será considerado:

• Utilização da tecnologia TTL – LS • Pesquisa no sítio da Texas http://www.ti.com

Os passos para selecionar os componentes no sítio da texas são os seguintes:

1. selecionar o site de pesquisa (Figura 5-22). Na página inicial, selecionar o menu Logic..Technology Families

Figura 5-22 – Sítio da Texas

Laboratórios 135

2. selecionar a família TTL – LS

3. localizar as opções de portas NAND. Selecionar o SN74LS00: um CI que possui quatros portas NAND de 2Entradas (Quad 2-Input Positive-NAND gates)

4. Fazer o download da documentação do CI

5. Repetir o procedimento acima para localizar o CI SN74LS04 (portas inversoras)

Passo 4: Posicionar os CIs no Protoboard

1. Marque as posições do protoboard conforme mostrado na 2. Figura 5-23 e coloque os componentes tomando o cuidado de que todos

os CIs sejam posicionados segundo a mesma orientação

3. Elabore a lista de componentes (Figura 5-24)

Figura 5-23 – posicionar os componentes no protoboard

Laboratórios 136

Endereço Integrado Descrição Uso A1 74LS00 4 portas NAND 3 B1 74LS04 6 portas invers. 2

Figura 5-24 - Lista de componentes

Passo 4: Criar o diagrama de montagem O diagrama de montagem é realizado a partir do diagrama lógico do circuito, acrescentando-se as informações de localização e pinagem. Para identificar a pinagem, consulte os manuais. A Figura 5-25 a seguir mostra a pinagem do 74LS00:

Figura 5-25 – identificação dos pinos no 74LS00

Observe as convenções utilizadas: • Pino 7 - GND: Ground (terra) • Pino 14 - Vcc: +5 V • Pino 1 – 1A: entrada A da porta NAND 1 • Pino 2 – 1B: entrada B da porta NAND 1 • Pino 3 – 1Y: Saida da porta NAND 1 • Pino 4 – 2A: entrada A da porta NAND 2 • Pino 5 – 2B: entrada B da porta NAND 2 • Pino 6 – 2Y: Saida da porta NAND 2 • Etc...

Figura 5-26 – Forma alternativa de descrição dos pinos

Laboratórios 137

A Figura 5-26 mostra o 74LS04 segundo uma outra convenção, mais clara para identificação de pinos. Observe na Figura 5-27 a seguir o diagrama de montagem, ao qual foram acrescentadas as informações de localização e pinagem. A partir do diagrama de montagem é possível localizar rapidamente o tipo de conexão a realizar. Observe na Figura 5-27: deve haver uma conexão entre o pino 2 do integrado posicionado em B1 e o pino 1 do integrado posicionado em A1, por exemplo.

Figura 5-27 – Diagrama com localização e pinagem

Nota –Neste exemplo utilizou-se o simulador Microcap para criação do diagrama de montagem. A inserção dos números de pinos tornará o circuito inválido para simulação, devido a característica de “conexão por texto”. Recomenda-se que o diagrama de montagem seja salvo com um outro nome, diferente daquele utilizado para fins de simulação.

Passo 5: Projetar gerador de estímulos

Sugere-se que se utilizem chaves de dois ou três polos para simular estímulos num circuito combinacional. O circuito mostrado na Figura 5-28 utiliza uma chave de 3 polos para gerar sinais 1 ou 0 para o circuito combinacional do exemplo:

Figura 5-28 – Uso de chave de 3 polos

O circuito a mostrado na Figura 5-29 utiliza uma chave de 2 polos e um resistor para gerar sinais 1 ou 0 para o circuito combinacional:

Figura 5-29 – Uso de chave de 2 polos

Laboratórios 138

A Figura 5-30 abaixo mostra alguns dispositivos comerciais que podem ser utilizados para este fim. Chaves (Toggle

switches) Botões (Pushbutton) circuito

2 polos

3 polos

Figura 5-30 – chaves utilizadas para gerar entradas digitais

Nota: o circuito mostrado na Figura 5-31 não é recomendado para a tecnologia TTL:

Figura 5-31 – Uso inadequado de chave de 2 polos

A Figura 5-32 a seguir dados extraídos do manual, a partir dos quais pode-se calcular o valor máximo do resistor, a partir do qual corre-se um risco de funcionamento inadequado da configuração mostrada na Figura 5-31 • VIL: a tensão máxima considerada 0 na entrada (0.8V)

• IIL: corrente máxima de uma entrada acionada por 0 (0.4 mA)

Figura 5-32 – Limites de tensão e corrente em entradas TTL Ls

Laboratórios 139

Figura 5-33 – Cálculo do resitor máximo

Exercício: Considerando: • a Figura 5-33 • que a corrente IIL seja de 0.4 mA

calcule o maior valor de R que garantirá que a tensão de entrada não ultrapasse 0.8V.

Repetir os cálculos considerando o circuito e os limites de tensão apresentados na Figura 5-34:

Figura 5-34 – Cálculo do resistor máximo, ligado para Vcc

Passo 6: Projetar o monitoramento da saídas O estado de uma saída pode ser monitorado com o uso de LEDs - Light Emitting Diode (Figura 5-35). A utilização destes dispositivos deve respeitar as especificações elétricas das portas lógicas que os acionarão. O acionamento dos LEDS deve observar especialmente se as correntes máximas suportadas são suficientes para gerar a luminosidade desejada.

Figura 5-35 – LED - Light Emitting Diode.

Laboratórios 140

Figura 5-36 mostra um circuito adequado para o acionamento de LEDs com portas TTL. Sempre que a entrada IN assumir o valor lógico “1”, o LED acenderá.

Figura 5-36 – Acionamento de LED com porta TTL

Exercício: O circuito mostrado na Figura 5-36 acendo o LED sempre que a entrada IN for “1”. Neste caso a saída do inversor assumirá o valor lógico “0”, que acenderá o LED. Calcule o valor do resistor considerando: • a tensão de saída para o nível lógico 0 VOL fica entre 0V e 0.5V (Figura 5-38) • o LED deve trabalhar com a corrente máxima que a porta suporta com sua

saída em “0” (IOL). o Consulte os dados de manual (Figura 5-39) para verificar a corrente

máxima que pode ser utilizada com nível “0” (IOL).. o Compare com o valor de corrente máxima suportada para o nível “1” (IOH) o Calcule o valor do resistor que fornece a corrente máxima iluminação,

obtida para IOL. Para realização deste cálculo, obtenha a queda de tensão no diodo a partir da Figura 5-40

Figura 5-37 – Tensão de saída para o nível lógico “0”

Figura 5-38 – Limites de corente de saída na tecnologia TTL - LS

Figura 5-39 – Curva I X V do LED

Laboratórios 141

Display de 7 segmentos O display de 7 segmento é um conjunto de 7 leds encapsulados num único componente. A Figura 5-40 mostra alguns exemplos de displays de 7 segmentos comerciais.

Figura 5-40 Displays de 7 segmentos

Cada um dos Leds é identificado por uma letra, conforme mostra a Figura 5-41:

Figura 5-41 Letras identificadoras dos segmentos

Uma característica relevante dos displays de 7 segmentos é o fato de possuirem a conexão interna dos cátodos de todos os diodos, disponibilizados por um único pino (catodo comum).

Figura 5-42 – Conexão catodo comum e anodo comum

Laboratórios 142

A Figura 5-42 mostra os tipos de conexão catodo comum e anodo comum. Repare a existência de um oitavo led RDP (Right Decimal Point). Exercício:

Considerando a necessidade de projetar um decodificador binário-7 segmentos com tecnologia TTL LS. Considerando a necessidade de acender o led com nível lógico “0”:

• Que tipo de display utilizaria (Catodo comum ou anodo comum) • Que arranjo de resistores faria?

Fim do tutor

Laboratórios 143

5.4 Laboratório 1 – Uso de multiplexador Objetivo:

• Projeto de circuito combinacional, utilizando multiplexador • Vinculação de descrições spice a componentes do simulador

Especificação:

1. Realizar o Tutor – Vinculando descrições spice a componentes

2. Projetar o decodificador BCD – 7 segmentos utilizando o 74LS151 3. Simular 4. Elaborar relatório de projeto

5.4.1 Tutor – Vinculando descrições spice a componentes

O microcap faz uso de bibliotecas Spice para descrever os seus componentes. • Biblioteca spice é um conjunto de componentes descritos num mesmo

arquivo texto. • Spice é uma linguagem utilizada para descrição de componentes e

circuitos utilizando arquivos texto. Eventualmente necessitam-se componentes que não se encontram disponíveis na biblioteca padrão do simulador. A medida que se disponha da descrição spice de um determinado circuito, é possível inseri-lo na biblioteca do simulador, e disponibilizá-lo na forma de um componente, o que será demonstrado neste tutorial. Para habilitar o componente 74151A no microcap, deve-se realizar os passos a seguir. Passo 1 – Atualizar a biblioteca spice

Para criar atualizar a biblioteca do simulador, de forma a descrição spice do componente 74F151A: 1. Tenha em mãos um arquivo texto contendo a descrição spice deste componente

(Figura 5-43)

.SUBCKT 74F151A GBAR E0 E1 E2 D0 D1 D2 D3 D4 D5 D6 D7 + OUT O_INV + OPTIONAL: DPWR=$G_DPWR DGND=$G_DGND + PARAMS: MNTYMXDLY=0 IO_LEVEL=0 U151ALOG LOGICEXP(12,2) DPWR DGND + GBAR E0 E1 E2 D0 D1 D2 D3 D4 D5 D6 D7 + O_INV OUT + D0_GATE IO_STD IO_LEVEL={IO_LEVEL} + LOGIC: + ID0 = { D0 & ( ~E0 ) & ( ~E1 ) & ( ~E2 ) & (~GB AR ) } + ID1 = { D1 & E0 & ( ~E1 ) & ( ~E2 ) & (~GBAR ) } + ID2 = { D2 & ( ~E0 ) & E1 & ( ~E2 ) & (~GBAR ) } + ID3 = { D3 & E0 & E1 & ( ~E2 ) & (~GBAR ) } + ID4 = { D4 & ( ~E0 ) & ( ~E1 ) & E2 & (~GBAR ) } + ID5 = { D5 & E0 & ( ~E1 ) & E2 & (~GBAR ) } + ID6 = { D6 & ( ~E0 ) & E1 & E2 & (~GBAR ) } + ID7 = { D7 & E0 & E1 & E2 & (~GBAR ) } + O_INV = { ~(ID0 | ID1 | ID2 | ID3 | ID4 | ID5 | ID6 | ID7) } + OUT = { ~ O_INV } .ENDS

Figura 5-43 – Descrição Spice do 74151A

Laboratórios 144

2. iniciar o editor de textos notepad

3. Inserir no arquivo texto as descrições spice dos componentes que se deseja habilitar.

4. Anote as informações constantes na declaração do subcircuito 74F151A (Figura 5-44) pois elas serão utilizadas porteriormente para identificação dos pinos do componentes.

.SUBCKT 74F151A GBAR E0 E1 E2 D0 D1 D2 D3 D4 D5 D6 D7 + OUT O_INV

Figura 5-44 – Anote as informações de nomes de pinos

5. Identificar o local onde foi instalado o microcap7 (subdiretório mc7demo). Salvar o arquivo texto com o nome mc7demo\library\F151A.lib

Laboratórios 145

6. ainda no Notepad, abrir o arquivo NOM.LIB. ...\mc7demo\LIBRARY\NOM.LIB

7. Acrescentar uma linha contendo o nome da biblioteca de componentes:

O arquivo NOM.LIB contem uma lista de nomes de arquivos contendo descrições spice utilizadas pelo simulador

8. Salvar

Passo 2 – Incluir o 74F151A no simulador Para incluir o 74F151A no simulador deve-se seguir os seguintes passos: 1. Entrar no Microcap e selecionar o menu

Windows .. Component Editor

2. na janela “Component Editor”

Laboratórios 146

• selecionar o componente 74F151A na árvore de componetes situada à direita da janela:

• n caixa de seleção definition, selecionar a opção Subckt

3. Identificar os nomes dos pinos (Figura 5-44), anotados na etapa anterior

4. Mapear o pino GBAR conforme demonstrado na Figura 5-45 a seguir

Figura 5-45 – Mapear o pino GBAR

Laboratórios 147

5. Mapear os demais pinos. Após o mapeamento, o diálogo “Component Editor” parecerá com a Figura 5-46 a seguir:

Figura 5-46 – Mapeamento dos demais pinos

6. Fechar o dialogo “Component Editor”, salvando as alterações realizadas.

7. No microcap, acessar o menu Component..Digital Library..74xx120..148 e

confirmar a habilitação do 74F151A

8. Realizar uma simulação e certificar-se do correto funcionamento do compoente

Fim do tutor

Laboratórios 148

5.5 Laboratório 2 –Circuitos encadeados • Projeto de circuito combinacional encadeado • Circuitos combinacionais matemático • Criação de componentes através de macros

Especificação:

1. Realizar o Tutor - Utilização de macros no simulador

2. projetar a célula encadeável, destinada a tratar números de 1 bit. A célula será especificada pelo professor e poderá ser subtrator, comparador ou complementador

3. Implementar a célula como uma macro

4. Simular o uso de 4 células para tratar um número de 4 bits 5. Elaborar relatório de projeto

5.5.1 Tutor - Utilização de macros no simulador

Dentro do microcap o termo Macro refere-se a um circuito que é tratado como um bloco de circuito integrado:

• o circuito é associado a um desenho • este desenho pode ser utilizado dentro de outros circuitos, como se fosse um

componente A criação de uma macro é feita em cinco passos:

1. Projetar o circuito 2. Criar a macro 3. Desenhar o componente 4. Adicionar a macro à biblioteca de componentes 5. Criar um somador utilizando as células

Os cinco passos de desenvolvimento de uma macro serão apresentados, utilizando como exemplo uma célula de soma

Passo 1 – projetar o circuito A criação da macro que implementa a célula de soma inicia-se pelo projeto. A Figura 5-47 apresenta a lógica de uma célula de soma, que soma três bits (a, b e ci) e calcula duas saídas (s e co).

Entradas Saídas

a b ci o co

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

Figura 5-47 – Tabela verdade da célula de soma

Laboratórios 149

As equações correspondentes são:

cobcoabaco

cibao

... ++=⊕⊕=

Passo 2- Criar a macro

Para criar a macro, deve-se seguir os passos: 1. entre no microcap e desenhe o circuito com a lógica desejada. A Figura 5-48

demonstra o circuito da célula de soma. Observe a diferença de com relação aos circuitos normalmente utilizados para simulação: • os nós de entrada ou de saída devem ser identificados por texto. Anote

os identificadores utilizados, pois os mesmos serão utilizados no Passo 4 - Adicionar a macro à biblioteca de componentes

• a macro não deve possuir geradores de estímulos

Figura 5-48 – Diagrama da macro

2. Salvar o circuito no diretório mc7demo\Library (Figura 5-49)

Figura 5-49 – salvar a macro

Laboratórios 150

Passo 3- Desenhar o componente

Neste passo será criado um desenho do componente através dos passos a seguir: 1. Acessar o editor de formas (Figura 5-50), através do menu

Windows.. Shape Editor

Figura 5-50 – acessar o menu “Windows..Shape Editor”

2. Clicar o botão Add , para criar o desenho da célula de soma. Aparecerá o

diálogo “New Shape Name”. Siga os passos apresentados na Figura 5-51.

Figura 5-51 – Adicionar a forma da célula de soma

3. Criar o desenho da célula de soma, conforme demonstrado na Figura 5-52. Após

a conclusão, clicar sobre o botão Close e salvar o desenho.

Laboratórios 151

Figura 5-52 – Desenho da célula de soma

Passo 4 - Adicionar a macro à biblioteca de componentes

Para tornar a célula de soma disponível para uso no microcap deve-se seguir os seguintes passos:

1. Acessar o editor de componentes (Figura 5-53 Windows .. Component Editor)

Figura 5-53 – Menu “Component Editor”

2. Siga os passos apresentados na Figura 5-54 para criar um novo grupo de componentes, chamado “Meus Projetos”. Os grupos de componentes definem a estrutura do menu “Component” do simulador.

Figura 5-54 – Adição de um novo grupo de componentes

Laboratórios 152

3. Siga os passos mostrados na Figura 5-55, para iniciar o assistente para a

adição de componentes

Figura 5-55 – assistente para adição de componentes

4. No segundo passo do assistente, selecione a opção “Macro” (Figura 5-56)

Figura 5-56 – seleção da opção “Macro”

5. No terceiro passo do assistente (Figura 5-57), informe o nome do circuito que contém a descrição lógica da macro (circuito desenvolvido no passo 2).

Figura 5-57 – Informar o nome do circuito que contem a macro

Laboratórios 153

6. Nesta etapa do assistente (Figura 5-58), deve-se identificar a forma “CelSoma”, correspondente ao desenho do componente.

Figura 5-58 – Identificação da forma do componente

7. Acrescentar as informações de documentação, solicitadas pelo assistente (Figura 5-59)

Figura 5-59 – Informações de documentação

8. Nos demais passos do assistente aceitar os valores (Figura 5-60) default até encerrar o assistente

Figura 5-60 – Aceitar os valores default do assistente

Laboratórios 154

9. Mapear os pinos do componente. Nesta etapa é realizado o vínculo dos textos utilizados na macro para o desenho que será utilizado como componente. O mapeamento de um pino é realizado seguindo-se os passos apresentados na Figura 5-61.

Figura 5-61 – Mapeamento do pino “a”

10. Repetir o procedimento acima para cada um dos pinos da macro. Ao final o desenho parecerá com a Figura 5-62

Figura 5-62 – Mapeamento dos demais pinos

11. Fechar o diálogo de edição de componentes e salvar. 12. Acessar o menu “Component” e certificar-se da existência do novo grupo

“Meus Projetos” e do componente “CelSoma”.

Figura 5-63 – Verificar a criação do grupo e do componente

Laboratórios 155

Passo 5 - Utilizar a macro

Após a realização dos passos descritos acima, a macro estará disponível para uso, como se fosse um componente da biblioteca. Criar o circuito mostrado na Figura 5-64

Figura 5-64 – Circuito de teste da célula de soma

Exercício:

Utilizando o componente CelSoma, fazer uma macro que implemente o componente Somador4 (somador de 4 bits)

Fim do tutor

Laboratórios 156

5.6 Utilização de somadores integrados Objetivos:

• Uso de somadores integrados • Soma base N • Circuitos integrados matemáticos

Especificação: 1. Realize o Tutor – Somador BCD apresentado em 5.6.1. 2. Estude o funcionameno do integrado 74LS283 3. Utilizando dois somadores 74LS283, projetar um somador para números na

base N. � N poderá ser escolhido entre os números 7, 9, 11, 12, 13 codificados

em binário � O somador deverá apresentar uma saída de carry out compatível com

a base. 4. Elaborar relatório de projeto e montagem 5. Montar o somador no protoboard

5.6.1 Tutor – Somador BCD

A Figura 5-65 apresenta um somador de dois números BCD. Seu objetivo é realizar a soma de números decimais codificados em binário.

Figura 5-65 – Somador base N

A utilização de somadores binários para números BCD somente funciona adequadamente quando o resultado da soma é um número menor ou igual a 9. A Figura 5-66 apresenta um fluxograma que descreve o algoritmo para a realização da soma na base 10. É possível implementar esta lógica, através do circuito apresentado na Figura 5-67.

Somador base N

A B

S

Carry in Carry out

Laboratórios 157

Figura 5-66 – Soma BCD

Figura 5-67 – Somador BCD

Exercício: � Analise cuidadosamente a Figura 5-67 � entenda a forma como o fluxograma da Figura 5-66 é implementado

neste circuito � projete o circuito combinacional existente na caixa de nome “overflow”?

Fim do tutor

A+B>9? não S = A+B Cy = 0

sim

S = A+B-10 Cy = 1

Laboratórios 158

5.7 Circuito Sequencial Objetivos:

• Projeto e montagem de circuito sequencial • Debouncing • Power-on reset

Especificação:

1. Projete um contador cujo valor inicial é 7 e o valor final é N+11. N é o dígito final de sua matrícula. Este circuito deve ser projetados com flip-flops do tipo D. Todos os flip-plops devem ter o mesmo clock;

2. O circuito projetado deverá possuir um botão de Reset, que o coloca no valor 9;

3. Simule o circuito projetado;

4. Para a montagem, deve-se utilizar um clock manual. Realize uma pesquisa sobre circuitos de debouncing, utilizados para implementação de clock manual;

5. Realize uma pesquisa sobre circuitos de “Power-on Reset”. A montagem deve contemplar a inicialização ao ligar;

6. Montar o circuito;

7. Elaborar um relatório contendo o projeto, os resultados da simulação e a documentação de montagem.

Laboratórios 159

5.8 Relógio digital Objetivos:

• Utilização de circuitos integrados comerciais

• Circuitos de clock Especificação:

1. Projete um relógio digital que possua as seguintes funções

� Mostrar horas e minutos

� Acertar horário

� Despertador, com ajuste de hora para despertar

2. O projeto deve utilizar circuitos integrados contadores e para acionamento dos displays de 7 segmentos

3. Projetar o circuito oscilador

4. Relatório de projeto e documentação de montagem

Laboratórios 160

5.9 Sistema Sequencial Síncrono Objetivo:

• Introdução ao projeto de sistemas digitais Especificação:

1. Realize Tutor - Projeto de Sistemas Digitais apresentado em 5.9.1 2. Escolha um dos seguintes cicuitos para projetar:

� Somador � Subtrator � Complementador de 2 � Comparador

O circuito deve operar considerando as seguintes restrições: � Entrada deve ser recebida de um dip-switch de 8 bits � Saída mostrada em leds � As operações devem ser realizadas serialmente, compartilhando um

único módulo funcional 3. Elaborar relatório de projeto e documentação de montagem

O projeto e documentação correspondentes devem obedecer os passos demonstrados no Tutor - Projeto de Sistemas Digitais

5.9.1 Tutor - Projeto de Sistemas Digitais O desenvolvimento de um sistema digital possui uma abordagem na qual se realiza uma subdivisão em blocos interconectados, projetados separadamente. A técnica de dividir para conquistar possui como principais atrativos:

• Blocos menores são mais fáceis de projetar e testar; • A divisão do circuito em módulos permite uma divisão de tarefas

adequada para o trabalho em grupo Neste tutor será apresentado o desenvolvimento de um circuito comparador sequencial, desenvolvido a partir de uma única célula de comparação.

Passo 1: Especificação do sistema O projeto desenvolvido tem por objetivo realizar a comparação de dois números binários A e B de 4 bits (0 a 15), conforme mostra a Figura 5-68.

Sa S

b Significad

o 0 0 A = B 1 0 A>B 0 1 B>A

Figura 5-68 - Comparador

a3 a2 a1 a0 b3 b2 b1 b0

Sa Sb

A B

Reset

Laboratórios 161

O sistema deve ser desenvolvido de forma a que se otenha o resultado a partir de uma comparação sequencial dos bits.

Passo 2: Elaboração do fluxograma inicial

Nesta etaba é desenhado um fluxograma com o objetivo de descrever a sequência de ações do sistema. A Figura 5-69 mostra um fluxograma inicial, em que o resultado final é obtido a partir da comparação sequencial dos bits, a partir do bit 0 até o bit 3.

Figura 5-69 – Fluxograma inicial

Passo 3: Identificação da unidade operacional

O fluxograma apresentado na Figura 5-69 permite identificar as seguintes necessidades operacionais:

• Um Contador I, que sofre as seguintes operações: o Zerar o Incrementar o Comparar com 4

• Um Multiplexador, que selecione o valor Ai, a partir da entrada A e da variável I. Analogamente para o valor Bi.

• Um Registrador R sofre as seguintes operações: o Zerar o Manter o Carregar AiBi

Início

I:= 0; R:= 00

AiBi

00 11 10 01

R:= R R:= AiBi

I:= I + 1;

I = 4? não

sim

Fim

Laboratórios 162

Passo 4: Diagrama inicial de blocos O diagrama inicial de blocos define a primeira versão de arquitetura do sistema, considerando as necessidades operacionais definidas no fluxograma inicial. Observe na Figura 5-70 a arquitetura em que os blocos operacionais interagem com uma unidade de controle, responsável por sequenciar as operações através de sinais.

Figura 5-70 – Diagrama inicial de blocos

As convenções utilizadas para os nomes de sinais de comunicação com a unidade de controle são os seguintes: Contador I: contador incrementável e zerável. O diagrama inicial de blocos

assume o funcionamento descrito na Figura 5-71

Entr. Contador I incI zI

Operação

0 0 I:=I (mantem) 1 0 I:=I+1 (incrementa) O 1 I:= 0 (zera)

Saídas do contador I: i3 i2 i1 i0

• i2 i1 i0 – valor de contagem

• i2 – utilizado para detectar quando a contagem

atingiu o valor 4

Figura 5-71 – Funcionamento do contador I

Multiplexador M

a3 a2 a1 a0 b3 b2 b1 b0

Ai Bi

Contador I

I1 I0

UNIDADE DE CONTROLE

zI IncI

I2

Ig4

Registrador R

Sb

Sa

LdR zR

E0 E1

Db Da

Laboratórios 163

Multiplexador M: dois multiplexadores de 4 para 1, com endereço comum

Entradas do multiplexador: E1, E0: endereço, comum aos dois multiplexadores a3 a2 a1 a0: entradas do multiplexador A b3 b2 b1 b0: entradas do multiplexador B

Saídas do multiplexador: Ai: saída do multiplexador A Bi: saída do multiplexador B

Registrador R: registrador carregável e zerável, cujo funcionamento é

descrito na Figura 5-72

Entradas do registrador:

• Comandos: LdR e zR

LdR zR Operação 0 0 R:=R 1 0 R:= dados (Da, Db) O 1 R:= 0

• Da, Db: dados de carga do registrador

Saídas do registrador:

• Sa, Sb: dados armazenados no registrador

Figura 5-72 – Funcionamento do Registrador R

Passo 5: Seleção de componentes comerciais

Após especificação do diagrama inicial de blocos, tem-se uma clara especificação dos componentes e funcionalidades desejados. Nesta etapa deve-se identificar componentes comerciais cujo funcionamento seja compatível com estas especificações. Caso não seja identificado um componente comercial que atenda às necessidades, deve-se projetar um circuito que atenda às especificaçõs desejadas. Neste exemplo, serão utilzados os seguintes componentes:

Contador I: 74LS163 Registrador R: 74LS163 Multiplexador M: 74LS153

Passo 6: Adequação do diagrama de blocos

O diagrama em blocos deve ser alterado de forma a contemplar os sinais dos componentes comerciais, conforme apresenta a Figura 5-73

Laboratórios 164

Figura 5-73 – Diagrama de blocos com componentes comerciais

Nesta etapa deve-se adequar a especificação dos sinais que interagem com a unidade de controle:

• Contador I: contador incrementável e zerável. Novas especificações, adequadas ao 74LS163, conforme apresenta a Figura 5-74.

incI N_zI Operação 0 1 I:=I (mantem) 1 1 I:=I+1 (incrementa) O 0 I:= 0 (zera)

Figura 5-74 – Novas especificações do contador I

• Registrador R: registrador carregável e zerável. Novas especificações

adequadas ao 74LS163, conforme apresenta a Figura 5-75.

LdR N_zR Operação 0 1 R:=R 1 1 R:= dados (Da, Db) O 0 R:= 0

Figura 5-75 – Novas Especificações registrador R

Passo 7 - Projeto da unidade de controle

A partir do fluxograma inicial, é possível definir o diagrama de estados mostrado na Figura 5-76, que define o funcionamento da unidade de controle.

Laboratórios 165

Figura 5-76 – Diagrama de estados da unidade de controle

A Figura 5-77 mostra o circuito que implementa a unidade de controle.

Figura 5-77 – Unidade de controle

Passo 8 – Refinar o projeto Neste passo deve-se realizar uma avaliação cuidadosa do projeto a fim de verificar a possibilidade de realização de otimizações. Exercício:

Refaça o projeto da unidade de controle, de forma a transformá-la num circuito combinacional.

Exercício:

Refaça o projeto, invertendo a ordem de comparação dos bits, isto é, deve-se comparar inicialmente b3 e a3, posteriormente b2 e a2, e assim sucessivamente. O projeto da unidade de controle deve ser feito de forma a obter o resultado mais rapidamente.

Fim do tutor

Laboratórios 166

5.10 PWM Objetivo:

Projeto de sistema digital Especificação:

O cálculo do valor médio Vm de uma função f(t) no intervalo de tempo compreendido entre os instantes t1 e t2 é dado pela fórmula:

A Figura 5-78 a mostra uma forma de onda gerada por um oscilador. Observe as seguintes características:

• valor máximo de tensão Vmax

• período de oscilação T

• Ton - tempo de ligado: período durante o qual a tensão é Vmax

• Toff - tempo de desligado: período durante o qual a tensão é 0V

T

t1

Vmax

Ton

Toff

t2

Figura 5-78 – Oscilador – onda quadrada

Para este caso particular, calcula-se o valor médio da tensão através da fórmula

Figura 5-79 Circuito modulador digital

∫−=

2

1

)(12

1t

t

dttfVmtt

VmTon

TV= max

Modulador Digital

SP

TR

CK

V(t)

8

Laboratórios 167

A Figura 5-79 apresenta o modulador PWM digital a ser projetado com os seguintes sinais:

• v(t) – saída; forma de onda de tensão modulada em largura de pulso

• SP - set point: objetivo de largura de pulso; número natual binário de oito bits (0 a 255) que especifica o tempo de ligado Ton

• TR - trigger: comando que informa a validade do set point; quando TR=0, o valor de SP deve ser ignorado, mantendo-se a última largura de pulso especificada; Durante o ajuste dos bits do Set Point SP deve-se manter o trigger TR em 0;

• Considerando que este sinal de clock possua um período de oscilação igual a Tc, a forma de onda v(t) deverá possuir

T= 255 Tc

Ton= SP * Tc

Figura 5-80 Especificações temporais

A Figura 5-80 apresenta as especificações temporais referentes aos sinais de interface. O projeto deve obedecer ainda as seguintes especificações:

• o set point SP deve estar estável sempre que o trigger TR estiver em 1 • uma mudança no set point SP somente deve se refletir na saída V(t) após a

conclusão do ciclo já iniciado • Sinais: todos os sinais (SP,TR, CK) tem padrão TTL • Potência: a onda V(t) tem as seguintes características:

Vmax: 5 V Imax: 10mA

• Clock: deve ser especificado pelo projetista • Documentação: documentação de projeto e de montagem • Testes: deve-se conceber uma forma de demonstrar que a montagem está

funcionando corretamente

SP

TR

v(t)

Bibliografia 168

6 Bibliografia Brown, Stephen D. Fundamentals of digital logic with VHDL design. Boston: McGraw-Hill Carter, Nicholas. Teoria e problemas de arquitetura de computadores. Porto Alegre: Bookman, 2003 Fletcher, William I. Engineering approach to digital design. Englewood Cliffs : Prentice-Hall, 1980. Karris, Steven T. Digital Circuit Analysis and Design. Fremont, CA, USA: Orchard Publications, 2005 Idoeta, Ivan Valeije. Elementos de eletronica digital. 18. ed. Sao Paulo: Erica, 1992 M. M. Mano and C. R. Kime. Logic and Computer Design Fundamentals. Prentice Hall, Upper Saddle River, New, 2nd edition, 2001. Melo, Mairton de Oliveira. Eletrônica digital: teoria e laboratório. Florianópolis: UDESC, 2002. Shibata, Wilson Mitiharu. Eletrônica digital : teoria e experiência. São Paulo: Érica, 1989 Spectrum Software. Micro-Cap 7 Evaluation Version Help Tocci, Ronald J, Widmer, Neal S. Sistemas Digitais: princípios e aplicações, 8. ed. São Paulo : Pearson Prentice Hall , 2003. TTL Logic, Standard TTL, Schottky, Low Power Schottky, Texas Instruments Inc., 1988 Uyemura, John Paul. Sistemas Digitais: uma abordagem integrada, São Paulo: Thomson/Pioneira , 2002. Weber, Raul Fernando. Fundamentos de arquitetura de computadores. 3. ed. Porto Alegre: Instituto de Informática da UFRGS – Sagra Luzatto, 2004 William Kleitz. Digital Electronics : A Practical Approach. 7 ed, Prentice Hall, 2004