2010-07-04 SD1 Sebenta - bdigital.ipg.ptbdigital.ipg.pt/dspace/bitstream/10314/3514/1/Sebenta...

62

Transcript of 2010-07-04 SD1 Sebenta - bdigital.ipg.ptbdigital.ipg.pt/dspace/bitstream/10314/3514/1/Sebenta...

Instituto Politécnico da Guarda

Escola Superior de Tecnologia e Gestão

SSeebbeennttaa ddee

SSiisstteemmaass DDiiggiittaaiiss II

________________________________________________

ENGENHARIA INFORMÁTICA, 2004-2005

José C. Fonseca Celestino A. Gonçalves

JUNHO DE 2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – i –

Índice

Sistemas de Numeração ......................................................................................... 1�Conversão de um número inteiro para a base 10 ................................................. 2�Conversão de um número inteiro da base 10 para outra base .............................. 3�Conversão de uma base r qualquer para outra base s qualquer ........................... 4�Conversão directa da base binária para as bases octal e hexadecimal ................. 5�Conversão de um número fraccionário para a base 10 ........................................ 7�Conversão de um número fraccionário da base 10 para outra base ..................... 8�Erro de Representação ......................................................................................... 9�Complementos do Sistema de Numeração ........................................................ 10�Cálculo de Complementos ................................................................................. 11�Aritmética – Operações fundamentais na base binária ...................................... 12�

Representações Bipolares .................................................................................... 15�Sinal e valor absoluto ......................................................................................... 15�Complemento falso ou complemento de 1 ........................................................ 16�Complemento verdadeiro ou complemento de 2 ............................................... 16�Binário deslocado .............................................................................................. 18�Adições algébricas ............................................................................................. 19�Adições algébricas por complemento verdadeiro .............................................. 19�Adições algébricas por complemento falso ....................................................... 20�Adições algébricas por sinal e valor absoluto .................................................... 21�Regras para adição, subtracção e detecção de transbordo ................................. 23�

Códigos Binários .................................................................................................. 25�Códigos BCD - Decimal codificado em binário ................................................ 25�Adição e Subtracção binárias nos códigos BCD e BCD XS3 ........................... 28�O Código de Gray .............................................................................................. 31�Códigos BCD Gray e BCD XS3 Gray ............................................................... 33�Códigos Binários Alfanuméricos ....................................................................... 34�Código de 7 Segmentos ..................................................................................... 35�Códigos para detecção e correcção de erros ...................................................... 36�Outros códigos BCD .......................................................................................... 40�

Fundamentos do Projecto Digital ........................................................................ 41�Tabelas de Verdade ............................................................................................ 44�Funções Lógicas ................................................................................................ 45�Formas mínimas ................................................................................................. 47�Forma mínima soma de produtos ...................................................................... 47�Forma mínima produto de somas ...................................................................... 48�Ordem de mintermos e de maxtermos ............................................................... 49�

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– ii – Engenharia Informática 2004-2005

Relação entre mintermos, maxtermos e a tabela de verdade ............................. 50�Estruturas de dois níveis de portas lógicas ........................................................ 51�Estruturas usando um só tipo de portas lógicas ................................................. 52�Mapas de Karnaugh ........................................................................................... 53�Simplificação com mapas de Karnaugh............................................................. 56�Projecto de Circuito Somador ............................................................................ 63�

Circuitos Combinatórios ...................................................................................... 67�Níveis de Integração .......................................................................................... 67�Família TTL (Transistor Transistor Logic) ....................................................... 70�Circuitos multiplexadores (multiplexers) .......................................................... 71�Multiplexers como Geradores de Funções Lógicas ........................................... 73�Expansão de circuitos multiplexer ..................................................................... 75�Circuitos descodificadores (decoders) ............................................................... 76�Descodificadores como Geradores de Funções Lógicas ................................... 78�Expansão de circuitos descodificadores ............................................................ 79�Circuitos desmultiplexadores (demultiplexers) ................................................. 80�Outros circuitos combinacionais ........................................................................ 81�Portas Tri-State .................................................................................................. 85�

Fundamentos dos Circuitos Sequenciais ............................................................ 87�A Função de Memória ....................................................................................... 88�Realização da Função de Memória .................................................................... 88�Células de Memória Elementares ...................................................................... 89�Báscula estática com portas NOR ...................................................................... 90�Báscula estática com portas NAND .................................................................. 91�Interruptor sem trepidação ................................................................................. 93�Báscula dinâmica ............................................................................................... 94�Funcionamento Transparente de uma Báscula .................................................. 96�O Flip-Flop Mestre-Escravo .............................................................................. 97�Funcionamento Não Transparente de um Flop-Flop ....................................... 100�O Flip-Flop Mestre-Escravo com entradas assíncronas .................................. 101�Outras configurações do Flip-Flop Mestre-Escravo ........................................ 102�O Problema do Flip-Flop Mestre-Escravo ....................................................... 106�O Flip-Flop edge-triggered .............................................................................. 107�Requisitos de tempo num flip-flop .................................................................. 109�

Bibliografia ......................................................................................................... 111�

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 0 – Engenharia Informática 2004-2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 1 –

SISTEMAS DE NUMERAÇÃO

Os sistemas de numeração permitem representar grandezas quantitativas,

existindo sob variadíssimos formatos.

O sistema de numeração mais usado no dia-a-dia é o sistema decimal, em que são

utilizados dez símbolos diferentes na representação de todas as grandezas. Por ter dez

símbolos diferentes o sistema diz-se decimal ou que utiliza a base 10. Imaginemos que

sobre uma mesa, à nossa esquerda, se encontram um conjunto de fósforos de que

pretendemos conhecer o número exacto. Vamos, pois, contá-los, ou seja, representar a

sua quantidade no sistema decimal. Inicialmente não há fósforos à direita, ou melhor, há

“0” fósforos. Se deslocarmos um da esquerda para a direita teremos “1” fósforo.

Efectuando a operação repetidamente haverá à direita “2”, “3”, “4”, ... fósforos. Ao

atingirmos o número “9” e havendo mais fósforos a transferir diremos que, após a

operação seguinte, teremos “10” fósforos à direita, depois “11”, “12”, “13”,..., “19”,

“20”, “21”,... O que na realidade fizemos foi supor que, no princípio, o número de

fósforos à direita (nenhum) seria representado por um conjunto de símbolos “0” que por

simplicidade de notação reduzimos a um único. À medida que transferimos os fósforos,

fomos substituindo o símbolo mais à direita pelo seguinte até não termos mais símbolos

– atingimos o “9”. Neste ponto substituímo-lo pelo símbolo utilizado – “0” novamente.

Ao símbolo colocado na posição imediatamente mais à esquerda efectuámos a sua

substituição igualmente pelo seguinte, segundo as regras já expostas.

A base é o número de símbolos distintos usados para representar as quantidades.

Para além deste sistema de numeração existem outros que também são muito utilizados.

É necessário saber trabalhar com sistemas de numeração diferentes do decimal. Os

sistemas de numeração mais importantes, para além do decimal (base 10), são o binário

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 2 – Engenharia Informática 2004-2005

(base 2), o octal (base 8) e o hexadecimal (base 16). Estes três últimos são

especialmente importantes em sistemas digitais.

Conversão de um número inteiro para a base 10

O valor de um número na base 10 depende dos símbolos utilizados e da posição

que estes símbolos ocupam na representação do número. Associamos a uma dada

posição um certo peso. Neste sistema um número pode decompor-se em potências de

10. O número 10 designa-se por base do sistema.

345 (representação abreviada) 210 103104105300405 ����� �� (representação explícita)

A posição mais à direita tem peso 100=1, as seguintes têm respectivamente pesos

101=10, 102=100, etc.

Num outro sistema de numeração (base b) teremos b símbolos diferentes.

Seja b=4. Vamos utilizar quatro símbolos: 0,1,2 e 3.

Desta forma, na base 4:

� � � �103210

4 210434140423102 �������

Se utilizarmos uma base de numeração superior à decimal, teremos de utilizar

outros símbolos, para além dos dez algarismos. Normalmente utilizam-se as primeiras

letras do alfabeto. Um exemplo é o sistema hexadecimal (base 16) onde são utilizados

16 símbolos diferentes, que são os dez algarismos e as seis primeiras letras do alfabeto:

Base 16 Base 10 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 A 10 B 11 C 12 D 13 E 14 F 15

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 3 –

Por exemplo:

� � � �103210

16 418071610163164161534 ������� FA

Para converter para decimal um número inteiro N na base b basta indicar a sua

representação explícita e efectuar o respectivo cálculo:

¦

k

i

iibk baaaaN

0)(01 .....

o que corresponde ao seguinte algoritmo: multiplicar o algarismo mais significativo por

b; ao produto soma-se o dígito seguinte, e o resultado torna-se a multiplicar por b e

soma-se ao dígito seguinte; e assim sucessivamente até que o algarismo menos

significativo seja somado. O resultado obtido é a representação de N na base 10.

Conversão de um número inteiro da base 10 para outra

base

Para converter um número inteiro da base decimal para uma base b utiliza-se o

seguinte algoritmo (algoritmo das divisões sucessivas): Dado um número na base 10,

fazem-se sucessivas divisões por b e em cada uma aproveita-se o resto da divisão

inteira. Fazem-se tantas divisões quantas as necessárias até se obter um quociente menor

que b. O resto da primeira divisão corresponde ao símbolo de menor peso (peso 1) e o

último quociente ao símbolo de maior peso na nova representação na base b.

Exemplo:

Converter 375(10) para octal,

Ou seja,

375(10) = 567(8)

375 8

55 46 8

7 6 5

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 4 – Engenharia Informática 2004-2005

Demonstração:

Dado um número inteiro do sistema decimal, escrevê-lo no sistema de base b.

Seja A o número na base 10.

Suponhamos que A(10) = a...fgh(b)

Temos que:

1- � � hbgbfbaA n ������� 1210 L

2- � � � � hgbfbabA n ������� � 1110 L Ù

Como numa base b os símbolos usados são valores inteiros menores que essa

base, tem-se que h < b.

De 1 e 2 vem que o símbolo h é o resto da divisão de A por b, cujo quociente é

dado por:

gbfbaQ n ����� � 11 L .

Os restantes símbolos da representação do número na base b calculam-se de forma

análoga.

Conversão de uma base r qualquer para outra base s

qualquer

Podemos efectuar a conversão de um número de uma base r qualquer para uma

base s qualquer da mesma forma que convertemos um número de uma base r qualquer

para a base 10. Só que para isso necessitaríamos de saber as tabuadas da adição e da

multiplicação nessa base s.

Uma forma que se encontra ao nosso alcance é utilizar os conhecimentos já

adquiridos. Sabendo converter um número de uma base qualquer para a base 10 e

sabendo converter um número da base 10 para uma base qualquer, facilmente se chega à

conclusão que se desejamos converter um número representado numa base r para a base

s, genéricas, basta converter o número da base r para a base 10 e posteriormente da base

10 para a base s.

A b

h gbfba n ����� � 11 L

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 5 –

Exemplo:

Para converter 321(4) para a base 3, vamos converter 321(4) para a base 10 e o

resultado para a base 3.

� � � �10210

4 57434241321 �����

Ou seja,

321(4) = 57(10) = 2010(3)

Conversão directa da base binária para as bases octal e

hexadecimal

A grande vantagem dos sistemas de numeração octal e hexadecimal é a

possibilidade de se efectuar a conversão directa dessas bases com a base binária.

Conversão binário-octal

Seja N = 11001101(2)

Comecemos por agrupar N em grupos de três dígitos binários (bits) a começar no

de menor peso e depois considere-se o seguinte:

� � � � � �� � � � � � � � � � � �� � � � � �

� �8

012

001210122012

030121301223012

012345678

315858183

821202182120208212120

221202122120202212120

212021212020212120

101001011

�����

��������������������

��������������������

�����������������

N

Basta-nos pois agrupar os bits três a três a partir do de menor peso e a soma

ponderada de cada um desses grupos de três dá o símbolo octal correspondente.

57 3

27 19 3

0 1 6 3

0 2

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 6 – Engenharia Informática 2004-2005

Para realizar a conversão de forma directa pode-se utilizar a seguinte tabela:

Base 2 Base 8

000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7

A conversão octal-binário é imediata, bastando substituir cada dígito octal no seu

correspondente binário (conjunto de três dígitos binários).

Exemplo:

7602(8) = 111 110 000 010(2)

O método de conversão binário-hexadecimal é análogo ao anterior, diferindo

apenas nos agrupamentos que agora são de quatro dígitos.

Assim:

N = 1011001101 = 0010 1100 1101 = 2CD(16)

A conversão inversa também é imediata, bastando substituir cada símbolo

hexadecimal no seu correspondente binário de quatro dígitos.

Assim:

N = C5A(16) = 1100 0101 1010(2)

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 7 –

Para realizar estas conversões directas pode-se utilizar a seguinte tabela:

Base 2 Base 16

0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F

Conversão de um número fraccionário para a base 10

Seja o número fraccionário e a respectiva notação explícita, ou polinómio

equivalente: 321

10 105109107795,0 ��� ����� F

Para converter para decimal um número fraccionário F na base b basta indicar a

sua representação explícita e efectuar o respectivo cálculo:

¦

������

k

i

iibkk baaaaF

1)()1(1 .....,0

Por exemplo:

� �10321

4 90625,0424243322,0 ����� ���F

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 8 – Engenharia Informática 2004-2005

Conversão de um número fraccionário da base 10 para

outra base

A parte fraccionária de um número decimal converte-se para outra base b

utilizando o seguinte algoritmo (algoritmo das multiplicações sucessivas): Considera-se

a parte fraccionária da base 10 e vão-se fazendo sucessivas multiplicações por b e em

cada uma aproveita-se a parte inteira do resultado. Fazem-se tantas multiplicações

quantas as necessárias até se obter uma parte fraccionária nula ou até cumprir outro

critério de paragem do algoritmo. A parte inteira da primeira multiplicação corresponde

ao símbolo da primeira posição da parte fraccionária e a última parte inteira ao símbolo

da última posição na nova representação na base b.

Por exemplo:

Converter para a base 2 o número 0,468(10)

0.468 x 2

0.936 x 2

1.872 x 2

1.744 x 2

1.488 x 2

0.976 x 2

1.952 ...

Ou seja 0,468(10) = 0,011101...(2)

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 9 –

Erro de Representação

Como se pode constatar, a representação de 0,468(10) na base 2 é infinita, pelo que

se torna difícil arranjar um critério de paragem do algoritmo. Por outro lado, na

conversão de uma quantidade fraccionária de um sistema de base r para um sistema de

base s há um aspecto que não pode ser esquecido. Normalmente um número

fraccionário num sistema de base r não pode ser representado exactamente num sistema

de base s utilizando um número finito de dígitos. Além disso, nalguns casos onde é

possível fazer a conversão com um número finito de dígitos, este procedimento não é

muito correcto. Teremos de estabelecer um critério para saber onde parar a conversão.

A parte fraccionária permite identificar a precisão com que a quantidade é

representada num determinado sistema de numeração.

Por exemplo, a grandeza da base decimal 0.327 tem um erro de representação

igual ou inferior a 4105 �� , o que significa que todos os valores na gama

3275.03265.0 �d x são representados por 327.0 x se se utilizarem apenas 3 casas

decimais, sendo o erro cometido nessa representação igual ou inferior a 0005.0 .

Para o caso geral temos que o erro de representação na base s é dado por

� �1m-

2��d sses , se forem utilizados m dígitos na parte fraccionária.

Quando se converte de uma base r para outra base s o erro na base s vai ser igual

ou superior ao erro na base r, pois não pode haver aumento de precisão com a conversão

entre bases numéricas. Assim,

� O erro na base inicial é � �1n-

2��d rr , onde são utilizadas n casas decimais;

� O erro na base final é � �1m-

2��d ss , onde são utilizadas m casas decimais.

Então tem-se

� � � �

� � � �m-

n-

1m-1n-

loglog

22

sr

sr

ssrr

n

m

d�

d�

�d�

��

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 10 – Engenharia Informática 2004-2005

uma vez que as bases de numeração têm de ser superiores à unidade. Deste modo,

� � � �� � � �smrn

smrnloglogloglog

t����d��

e então,

� �� �srnm

loglog

d

que nos fornece um valor máximo para o número de casas decimais a considerar na

representação na base final.

A título de exemplo, suponha que se pretende converter para a base binária a

grandeza 0.543(10).

O número de dígitos da parte fraccionária na nova base é dado por

� �� � 99.972log

10log3 � dm

pelo que

� � � �210 100010110.00.543 o

Como vamos usar 9 dígitos vai-se perder precisão com a nova representação. Se

utilizássemos 10 dígitos estaríamos a introduzir ruído.

Complementos do Sistema de Numeração

Os complementos de um sistema de numeração são utilizados pelos computadores

digitais para simplificação das operações de subtracção.

Existem dois tipos de complementos para cada sistema de numeração de base r:

� Complemento de r (ou complemento verdadeiro)

� Complemento de r-1 (ou complemento falso)

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 11 –

Exemplos:

Base 10

- complemento de 10

- complemento de 9

Base 2

- complemento de 2

- complemento de 1

Cálculo de Complementos

Complemento de r-1: � � Nr n ��1

r: base de numeração

n: número de dígitos utilizados para representar uma determinada grandeza

N: grandeza considerada

Exemplos:

10100100101101

01001111011000

987601012398

453299546700

12

12

910

910

�� o�

�� o�

�� o�

�� o�

compl

compl

compl

compl

Regra (base 10): Subtrair todos os algarismos, um a um, a 9.

Regra (base 2): Trocar 0’s por 1’s e 1’s por 0’s.

Complemento de r: ¯®­

z�

)0(0)0(

NNNr n

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 12 – Engenharia Informática 2004-2005

Exemplos:

10010010110111

00101001101100

753300246700

987602012398

22

22

1010

1010

�� o�

�� o�

�� o�

�� o�

compl

compl

compl

compl

Regra (base 10): Começando pelo algarismo menos significativo, manter todos os

eventuais zeros até encontrar primeiro algarismo diferente de zero, que deverá ser

subtraído a 10; A partir daí, subtrair os restantes algarismos, um a um, a 9.

Regra (base 2): Começando pelo algarismo menos significativo, manter todos os

eventuais zeros e o primeiro um; A partir daí, trocar 0’s por 1’s e 1’s por 0’s.

Alternativamente,

Regra (todas as bases): adicionar 1 ao complemento de r-1.

Aritmética – Operações fundamentais na base binária

As operações aritméticas fundamentais na base binária obedecem a um

procedimento que é semelhante ao verificado em qualquer outra base numérica, como

por exemplo a base decimal.

A adição binária é efectuada de acordo com a seguinte tabela de verdade Adição binária Transporte Soma

0 + 0 0 00 + 1 0 11 + 0 0 11 + 1 1 0

Exemplo:

5510 + 2110=7610

1 1 1 1 mTransporte 1 1 0 1 1 1 m5510

+ 1 0 1 0 1 m2110 1 0 0 1 1 0 0 m7610

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 13 –

A subtracção binária é efectuada de acordo com a seguinte tabela de verdade Subtracção binária Empréstimo Diferença

0 - 0 0 0 0 - 1 1 1 1 - 0 0 1 1 - 1 0 0

Exemplo:

5510 - 2510=3010

1 1 mEmpréstimo 1 1 0 1 1 1 m5510

- 1 1 0 0 1 m2110 0 1 1 1 1 0 m3010

A multiplicação binária é efectuada com recurso a adições sucessivas

Exemplo:

5510 x 1110=60510

1 1 0 1 1 1 m5510 x 1 0 1 1 m1110

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

+ 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 m60510

A divisão binária é efectuada com recurso a subtracções sucessivas

Exemplo:

3010 : 510=610

11110 101 0101 110 00 0

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 14 – Engenharia Informática 2004-2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 15 –

REPRESENTAÇÕES BIPOLARES

As representações binárias que permitem representar tanto quantidades positivas

como quantidades negativas denominam-se representações (ou códigos) bipolares.

Analisam-se de seguida as mais utilizadas: Representação por sinal e valor absoluto,

representação por complemento falso (ou complemento de 1), representação por

complemento verdadeiro (ou complemento de 2) e representação por código binário

deslocado.

Sinal e valor absoluto

Nesta representação bipolar, a codificação de uma determinada quantidade numa

palavra de n bits reserva o bit mais significativo (mais à esquerda) para exprimir o sinal

e os restantes n-1 bits para representar o respectivo valor absoluto em binário natural. O

bit de sinal terá o valor ‘0’ se se pretender representar uma grandeza positiva, e o valor

‘1’ caso se pretenda a representação de grandeza negativa.

Como exemplo, considere as representações das quantidades +25(10) e –25(10),

numa palavra de 6 bits

01100125 )10( o� e

11100125 )10( o� .

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 16 – Engenharia Informática 2004-2005

Com este tipo de representação uma palavra de n bits consegue exprimir todos os

inteiros compreendidos entre � �12 1 �� �n e � �12 1 �� �n , incluindo o zero, que tem duas

representações diferentes (Porquê ?), num total de 12 �n quantidades distintas.

Complemento falso ou complemento de 1

Na representação por complemento falso, ou complemento de 1, as quantidades

positivas representam-se tal como na representação por sinal e valor absoluto. A

representação de quantidades negativas obtém-se complementando a representação da

quantidade positiva que lhe corresponde – complemento falso do número na base

binária original. Regra da complementação falsa: considerando a representação do

número positivo, substituem-se todos os zeros por uns e todos os uns por zeros.

Seja a representação binária, em complemento falso, das grandezas +25(10) e

–25(10):

01100125 )10( o� e

10011025 )10( o� .

É de salientar que a complementação da representação neste código de um

número negativo resulta na representação do número positivo que lhe corresponde.

Esta representação bipolar, tal como a anterior, permite representar numa palavra

de n bits 12 �n quantidades distintas, incluindo o zero, que também tem duas

representações diferentes.

Complemento verdadeiro ou complemento de 2

Na representação binária por complemento verdadeiro, ou complemento de 2,

representam-se os números positivos tal como nas duas representações anteriores. A

representação de quantidades negativas obtém-se adicionando o valor 1 ao

complemento falso da representação do número positivo que lhe corresponde –

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 17 –

complementação verdadeira do número binário original. Alternativamente, também se

pode definir a seguinte regra da complementação verdadeira: considerando a

representação do número positivo, copiam-se todos os dígitos, começando pelo menos

significativo, até se encontrar um ‘1’, que também se copia; a partir daí, substituem-se

os zeros por uns e os uns por zeros.

As grandezas +25(10) e –25(10) têm as seguintes representações em complemento

verdadeiro

01100125 )10( o� e

10011125 )10( o� .

Nesta representação também se verifica que a complementação de 2 de um

número negativo resulta no número positivo que lhe corresponde, enquanto que o zero

tem agora uma representação única (Porquê ?). De facto, numa palavra de n bits

representam-se n2 números algébricos distintos, com a particularidade de representar

um número negativo a mais do que os números positivos:

O maior positivo representável com 4 bits: )10(70111 �o ;

O mais negativo representável com 4 bits: )10(81000 �o ,

que não tem correspondente positivo representável em 4 bits (com 5 bits seria:

)10(801000 �o ), constituindo uma excepção à regra da complementação verdadeira.

A tabela seguinte reúne todas as codificações de 4 bits para as três representações

bipolares descritas anteriormente.

Grandeza a representar

Sinal e valor absoluto

Complemento falso

Complemento verdadeiro

+7 0111 0111 0111 +6 0110 0110 0110 +5 0101 0101 0101 +4 0100 0100 0100 +3 0011 0011 0011 +2 0010 0010 0010 +1 0001 0001 0001 +0 0000 0000 0000 -0 1000 1111 -1 1001 1110 1111 -2 1010 1101 1110 -3 1011 1100 1101 -4 1100 1011 1100 -5 1101 1010 1011 -6 1110 1001 1010 -7 1111 1000 1001 -8 ---- ---- 1000

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 18 – Engenharia Informática 2004-2005

Nota: As representações bipolares por complemento falso e por complemento

verdadeiro também nos dão indicação de sinal por intermédio do respectivo bit mais

significativo.

Binário deslocado

Para representar em n bits uma grandeza positiva ou negativa por intermédio do

código binário deslocado, torna-se necessário adicionar 12 �n a essa grandeza e exprimir

o resultado em código binário natural.

As grandezas +25(10) e –25(10) têm neste código as seguintes representações de 6

bits

11100157225 )10(16

)10( o �� � e

0001117225 )10(16

)10( o �� � .

Tal como para a representação por complemento verdadeiro, a representação por

código binário deslocado tem uma representação única para o zero e permite que uma

palavra de n bits represente n2 quantidades algébricas distintas compreendidas entre

� �12 �� n e � �12 1 �� �n (também aqui existirá para as grandezas negativas uma

representação a mais do que para as positivas).

A tabela seguinte apresenta as representações de 3 bits para este código, em

conjunto com as representações por complemento verdadeiro.

Grandeza a representar

Complemento verdadeiro Binário deslocado

+3 011 111 +2 010 110 +1 001 101 0 000 100 -1 111 011 -2 110 010 -3 101 001 -4 100 000

As representações são iguais nos dois casos, com a excepção do bit mais

significativo, que é complementado de um para o outro.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 19 –

Adições algébricas

A representação por complemento verdadeiro é a mais vantajosa por fornecer uma

representação única para o zero e por permitir efectuar subtracções à custa de circuitos

adicionadores. A representação por complemento falso só tem a segunda daquelas

vantagens e a representação por sinal e valor absoluto não tem nenhuma das vantagens

referidas.

Adições algébricas por complemento verdadeiro

Exemplos:

2510 - 710 = +1810

1 1 1 mTransporte 0 1 1 0 0 1 m+2510

+ 1 1 1 0 0 1 m -710 1 0 1 0 0 1 0 m+1810

Adicionou-se a parcela aditiva ao complementar (complemento verdadeiro) da

parcela subtractiva e desprezou-se o transporte final. Como os dois últimos transportes

são iguais não ocorreu transbordo (overflow), isto é, ultrapassagem da capacidade de

representação, pelo que o resultado da operação é válido.

1210 - 2110 = -910

1 mTransporte 0 0 1 1 0 0 m+1210

+ 1 0 1 0 1 1 m -2110 1 1 0 1 1 1 m -910

Adicionou-se a parcela aditiva ao complementar (complemento verdadeiro) da

parcela subtractiva. Como os dois últimos transportes são iguais não ocorreu transbordo,

pelo que o resultado da operação é válido. O resultado é negativo e encontra-se

representado em complemento verdadeiro.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 20 – Engenharia Informática 2004-2005

- 2610 - 1510 = -4110

mTransporte 1 0 0 1 1 0 m -2610

+ 1 1 0 0 0 1 m -1510 1 0 1 0 1 1 1 m+2310 Inválido

Adicionou-se o complementar de cada parcela e desprezou-se o transporte final.

Como os dois últimos transportes são diferentes, ocorreu transbordo, pelo que o

resultado da operação é inválido: não é possível representar o resultado (-4110) em 6

bits. O bit desprezado era importante para o resultado.

Adições algébricas por complemento falso

Exemplos:

2510 - 710 = +1810

1 1 mTransporte 0 1 1 0 0 1 m+2510

+ 1 1 1 0 0 0 m -710 1 0 1 0 0 0 1 + 1 0 1 0 0 1 0 m+1810

Adicionou-se a parcela aditiva ao complementar (complemento falso) da parcela

subtractiva e desprezou-se o transporte final, depois de o adicionar ao resultado final.

Como os dois últimos transportes são iguais não ocorreu transbordo, isto é,

ultrapassagem da capacidade de representação, pelo que o resultado da operação é

válido.

1210 - 2110 = -910

1 mTransporte 0 0 1 1 0 0 m+1210

+ 1 0 1 0 1 0 m -2110 1 1 0 1 1 0 m -910

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 21 –

Adicionou-se a parcela aditiva ao complementar (complemento falso) da parcela

subtractiva. Como os dois últimos transportes são iguais não ocorreu transbordo, pelo

que o resultado da operação é válido. O resultado é negativo e encontra-se representado

em complemento falso.

- 2610 - 1510 = -4110

1 0 0 1 0 1 m -2610

+ 1 1 0 0 0 0 m -1510 1 0 1 0 1 0 1 + 1 0 1 0 1 1 0 m+2210 Inválido

Adicionou-se o complementar de cada parcela e desprezou-se o transporte final,

depois de o adicionar ao resultado final. Como os dois últimos transportes são

diferentes, ocorreu transbordo, pelo que o resultado da operação é inválido: não é

possível representar o resultado (-4110) em 6 bits. O bit desprezado era importante para

o resultado.

Adições algébricas por sinal e valor absoluto

Exemplos:

2510 - 710 = +1810

1 1 mEmpréstimo 1 1 0 0 1 m2510

- 1 1 1 m710 1 0 0 1 0 m1810

Resultado: 010010

Subtraiu-se o menor valor absoluto ao maior e deu-se ao resultado o sinal deste.

Nesta operação nunca ocorre transbordo, uma vez que o resultado é sempre inferior, em

módulo, ao aditivo.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 22 – Engenharia Informática 2004-2005

1210 - 2110 = -910

1 mEmpréstimo 1 0 1 0 1 m2110

- 1 1 0 0 m1210 0 1 0 0 1 m910

Resultado: 101001

Subtraiu-se o menor valor absoluto ao maior e deu-se ao resultado o sinal deste.

Nesta operação nunca ocorre transbordo, uma vez que o resultado é sempre inferior, em

módulo, ao aditivo.

- 2610 - 1510 = -4110

1 1 1 mTransporte 1 1 0 1 0 m2610

+ 1 1 1 1 m1510 1 0 1 0 0 1 m910 Inválido

Resultado: 101001

Adicionaram-se os valores absolutos das duas grandezas e deu-se ao resultado o

sinal comum. Como ocorreu transporte final, ocorreu transbordo, pelo que o resultado

da operação é inválido: não é possível representar o resultado (-4110) em 6 bits.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 23 –

Regras para adição, subtracção e detecção de transbordo

Representação numérica

Regras para adição Regras para complementação

Regras para subtracção

Sem sinal

� Adicionar números

� Ocorre transbordo se houver transporte final (transporte no MSB – bit mais significativo)

� Não aplicável

� Subtrair números

� Ocorre transbordo se houver empréstimo final (empréstimo no MSB)

Sinal e valor absoluto

� Números com o mesmo sinal: adicionar módulos; Ocorre transbordo se houver transporte final (no MSB); Resultado tem o mesmo sinal.

� Números com sinal oposto: subtrair menor módulo ao maior; não é possível ocorrer transbordo; Resultado tem o sinal do maior módulo.

� Complementar bit de sinal

� Ver regras para adição

Complemento verdadeiro ou complemento de 2

� Adicionar números, ignorando qualquer transporte final (no MSB); Ocorre transbordo se os dois últimos transportes forem diferentes.

� Complementar todos os bits e adicionar 1 ao resultado (ver regra alternativa para a complementação verdadeira).

� Adicionar o aditivo ao complemento verdadeiro do subtractivo (ver regras para adição).

Complemento falso ou complemento de 1

� Adicionar números; Se houver transporte final (no MSB), adicioná-lo ao resultado; Ocorre transbordo se os dois últimos transportes forem diferentes.

� Complementar todos os bits.

� Adicionar o aditivo ao complemento falso do subtractivo (ver regras para adição).

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 24 – Engenharia Informática 2004-2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 25 –

CÓDIGOS BINÁRIOS

Vimos já em parágrafos anteriores como representar um determinado número no

sistema binário. Mas nem sempre se torna fácil o tratamento da informação no sistema

binário puro, uma vez que não é possível uma conversão directa para o sistema decimal.

Além disso, nos dispositivos digitais também é necessário representar outro tipo de

informação não numérica, como por exemplo letras, símbolos, sinais, etc.

Nos parágrafos seguintes serão analisados alguns códigos binários que permitem

representar informação não numérica e outros que, representando informação numérica,

permitem uma conversão directa para o sistema decimal.

Códigos BCD - Decimal codificado em binário

Para representar os dez dígitos do sistema de numeração decimal são necessários

pelo menos 4 bits, uma vez que

2 10 23 4� � .

Mas como um conjunto de 4 bits permite a representação de 16 grandezas

distintas, podemos considerar diversos códigos para as diferentes combinações

possíveis com 4 bits para a representação dos dez dígitos decimais. Mais, se forem

utilizados mais de 4 bits para representar cada dígito decimal, o número de códigos que

é possível definir será ainda maior.

Na tabela da página seguinte apresentam-se algumas possibilidades para esta

codificação binária da informação decimal, recorrendo a 4 bits.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 26 – Engenharia Informática 2004-2005

Códigos BCD

Dígito Decimal BCD (8421) BCD 2421 BCD Aiken (2421) BCD 84-2-1 BCD XS3

0 0000 0000 0000 0000 0011 1 0001 0001 0001 0111 0100 2 0010 0010 0010 0110 0101 3 0011 0011 0011 0101 0110 4 0100 0100 0100 0100 0111 5 0101 0101 1011 1011 1000 6 0110 0110 1100 1010 1001 7 0111 0111 1101 1001 1010 8 1000 1110 1110 1000 1011 9 1001 1111 1111 1111 1100

As combinações de 4 bits que para cada código não correspondem a nenhum dos

10 dígitos decimais não são utilizadas e designam-se combinações inválidas.

De todos os códigos BCD, iniciais de "Binary Coded Decimal" que significa

"decimal codificado em binário", o mais popular é o código BCD 8421 (ou

simplesmente código BCD, ou código BCD natural). Neste código os dígitos decimais

representam-se à custa dos seus equivalentes binários naturais de 4 bits, sendo por isso

um código ponderado, já que todas as codificações são definidas a partir dos pesos

associados aos diferentes bits, e denominado natural, uma vez que os pesos utilizados

têm a sequência decrescente das potências da base 2: 8, 4, 2 e 1. Nos restantes códigos

BCD ponderados, não naturais, os pesos dos diferentes bits já não têm a mesma

sequência.

Por exemplo:

Para representar neste código o número 45910, são necessários 12 bits, agrupados

4 a 4:

45910 = 0100 0101 1001BCD

No código BCD 2421 o bit mais significativo de cada grupo de 4 bits tem peso 2

em vez do 8 habitual. A representação do número 45910 é

45910 = 0100 0101 1111BCD 2421

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 27 –

Neste código, porém, não existem combinações binárias de 4 bits únicas para a

representação dos dígitos decimais, em virtude da sua definição como código

ponderado. Os dígitos decimais 2, 3, 4, 5, 6 e 7 admitem, para além das combinações

binárias indicadas na tabela, as combinações 1000, 1001, 1010, 1011, 1100 e 1101,

respectivamente. Para essas combinações, a representação do número 45910 seria

45910 = 1010 1011 1111outro BCD 2421

O código BCD Aiken resulta da situação anterior, uma vez que se trata de um

BCD 2421. A representação do número 45910 seria

45910 = 0100 1011 1111BCD Aiken

O código BCD Aiken tem a particularidade de permitir determinar facilmente o

complemento falso (ou complemento para 9) de cada dígito decimal, bastando para tal

complementar os bits da respectiva codificação. De facto, se invertermos os bits da

representação neste código do número 45910, obtemos

1011 0100 0000 = 54010

o número 54010 que é precisamente o complemento falso do número 45910.

Um código com esta característica de permitir determinar o complemento falso de

um número do sistema decimal por simples complementação de todos os seus bits

designa-se por código autocomplementar.

Também é possível definir códigos com pesos negativos, como por exemplo o

código BCD 84-2-1. A combinação de 4 bits 1011 representa o dígito decimal 5, uma

vez que 1x8 + 0x4 + 1x(-2) + 1x(-1) = 5. Este também é um código autocomplementar e

o número 45910 tem a seguinte representação

45910 = 0100 1011 1111BCD 84-2-1

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 28 – Engenharia Informática 2004-2005

Um código muito utilizado por alguns computadores antigos e que,

contrariamente aos anteriores, não é um código ponderado, é o código BCD de Excesso

3, ou BCD XS3. As codificações de 4 bits para cada dígito decimal obtêm-se

adicionando 3 à correspondente codificação BCD. A título exemplificativo, apresenta-se

a representação do número 45910 neste código, que também é autocomplementar

45910 = 0111 1000 1100BCD XS3

Adição e Subtracção binárias nos códigos BCD e BCD XS3

� Adição no código BCD natural

A adição de 2 dígitos BCD não é mais do que a adição de 2 números binários de 4

bits, em que se torna necessária uma correcção se o resultado for superior a 9 (1001), ou

se tiver ocorrido transporte: adicionar 6 (0110) ao resultado, por forma a obter um valor

válido no código BCD natural. De salientar que poderá haver transporte para o dígito

BCD da posição seguinte devido à adição inicial ou à adição correctiva.

Exemplos:

73110+18310=91410

1 1 1 1 1 1 mTransporte 0 1 1 1 0 0 1 1 0 0 0 1 m73110

+ 0 0 0 1 1 0 0 0 0 0 1 1 m18310 1 0 0 1 1 0 1 1 0 1 0 0 0 1 1 0 mCorrecção 0 0 0 1 9 1 4

86810+31910=118710

1 1 1 1 mTransporte 1 0 0 0 0 1 1 0 1 0 0 0 m86810

+ 0 0 1 1 0 0 0 1 1 0 0 1 m31910 1 0 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 1 0 mCorrecção

1 0 0 0 1 0 1 1 1

1 1 8 7

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 29 –

� Subtracção no código BCD natural

Na subtracção toma-se o complemento verdadeiro ou falso do subtractivo,

representa-se em BCD natural e procede-se como se de uma adição normal se tratasse.

Torna-se ainda necessário acrescentar um bit de sinal a cada representação BCD. Se

entretanto o resultado for negativo, o valor BCD obtido representará o resultado na sua

forma de complemento.

Exemplos:

32510-14710=17810 compl.9 (147) = 852

1 mTransporte 0 0 0 1 1 0 0 1 0 0 1 0 1 m32510

+ 1 1 0 0 0 0 1 0 1 0 0 1 0 m85210 1 0 1 0 1 1 0 1 1 1 0 1 1 1

0 1 1 0 mCorrecção 0 0 0 1 + 1 mTransporte final 0 0 0 0 1 0 1 1 1 1 0 0 0 + 1 7 8

12010-20010=-8010 compl.9 (200) = 799

1 1 1 1 mTransporte 0 0 0 0 1 0 0 1 0 0 0 0 0 m12010

+ 1 0 1 1 1 1 0 0 1 1 0 0 1 m79910 1 1 0 0 1 1 0 1 1 1 0 0 1 0 1 1 0 mCorrecção 0 0 0 1 1 1 0 0 1 0 0 0 1 1 0 0 1 - 0 8 0 �Compl. 9

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 30 – Engenharia Informática 2004-2005

� Adição no código BCD XS3

Quando se adicionam dois números no código BCD XS3 é sempre necessário

efectuar uma correcção, de cada vez que se adicionam 4 bits:

� 1.º Caso: Se da adição não resultar transporte torna-se necessário subtrair 3 ao

resultado (subtrair 0011, ou adicionar o seu complemento de 2: 1101), uma

vez que fica representado em excesso 6; se desta correcção resultar transporte,

deverá ser desprezado;

� 2.º Caso: Se da adição resultar transporte torna-se necessário adicionar 3

(0011) ao resultado, uma vez que fica representado em BCD natural.

Exemplo:

76710+14310=91010

1 1 1 1 1 1 1 mTransporte 1 0 1 0 1 0 0 1 1 0 1 0 m76710

+ 0 1 0 0 0 1 1 1 0 1 1 0 m14310 1 1 1 1 0 0 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 mCorrecção

1 1 1 0 0 0 1 0 0 0 0 1 1 9 1 0

� Subtracção no código BCD XS3

Para esta operação toma-se o complemento verdadeiro ou falso do subtractivo,

que se representará em BCD XS3. Acrescenta-se um bit de sinal a cada representação e

procede-se como se de uma adição em BCD XS3 se tratasse. Se entretanto o resultado

for negativo, o respectivo valor BCD XS3 representará o resultado na sua forma de

complemento.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 31 –

Exemplo:

12010-20010=-8010 compl.9 (200) = 799

1 1 mTransporte 0 0 1 0 0 0 1 0 1 0 0 1 1 m12010

+ 1 1 0 1 0 1 1 0 0 1 1 0 0 m79910 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 mCorrecção 1 1 1 0 0 0 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0 - 0 8 0 �Compl. 9

O Código de Gray

O código de Gray é um código não ponderado com a particularidade de cada uma

das suas codificações diferir das que lhe são adjacentes num único bit (inclusivamente

entre a primeira codificação e a última, para um determinado número de bits): diz-se

que é um código contínuo e cíclico, respectivamente.

Na tabela seguinte apresentam-se as 16 codificações de 4 bits deste código, bem

como do código binário natural, para efeitos de comparação.

Número no sistema decimal

Código binário natural de 4 bits

Código de Gray de 4 bits

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

10 1 0 1 0 1 1 1 1 11 1 0 1 1 1 1 1 0 12 1 1 0 0 1 0 1 0 13 1 1 0 1 1 0 1 1 14 1 1 1 0 1 0 0 1 15 1 1 1 1 1 0 0 0

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 32 – Engenharia Informática 2004-2005

Na coluna reservada ao código de Gray assinalou-se em cada codificação o único

bit a sofrer alteração para a codificação da grandeza seguinte, incluindo a passagem da

última codificação para a primeira.

O código de Gray é um código reflectido, conforme se pode verificar por análise

da tabela anterior, uma vez que se pode obter a 2.ª metade da tabela por reflexão da 1.ª

metade, com a excepção do bit mais significativo, que se complementa de uma para a

outra.

Conversão Binário – Gray

A conversão de um determinado valor do sistema binário na sua representação no

código de Gray é relativamente simples: o bit mais significativo é igual; a partir daí, e

continuando a ler do bit mais significativo para o menos significativo, cada mudança

0 1o ou 1 0o vai corresponder a um '1' na representação Gray, enquanto que cada

ausência de mudança ( 0 0o ou 1 1o ) vai corresponder a um '0'.

Exemplo:

O número de 12 bits do sistema binário 1011101010012 tem a seguinte

representação no código de Gray

1011101010012 o 111001111101Gray

Conversão Gray – Binário

A conversão de uma representação Gray para o sistema binário processa-se de

forma inversa: o bit mais significativo é igual; a partir daí, e continuando a ler a

representação no código de Gray do bit mais significativo para o menos significativo,

cada bit a '1' que se encontre vai corresponder a uma complementação na representação

binária natural, relativamente ao bit da posição imediatamente anterior, enquanto que

cada bit a '0' vai corresponder a uma manutenção do bit na representação binária,

relativamente ao bit da posição imediatamente anterior.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 33 –

Exemplo:

A representação 111001111101 do código de Gray de 12 bits tem como

correspondente binária natural a seguinte representação

111001111101Gray o 1011101010012

Códigos BCD Gray e BCD XS3 Gray

O código de Gray também pode ser utilizado como um código BCD. Continua a

ter, relativamente aos outros códigos BCD, a vantagem de ser um código contínuo -

para passar da representação de um dígito para a seguinte, basta mudar o valor de um

único bit. Todavia, não é um código autocomplementar. Para usufruir desta

característica, é necessário recorrer ao código XS3 Gray, que se obtém do Gray tal

como o BCD XS3 se obtinha do BCD natural: deslocando 3 posições o código de Gray.

A tabela seguinte ilustra as codificações destes dois códigos BCD

Códigos BCD

Dígito Decimal BCD Gray BCD XS3 Gray

0 0000 0010 1 0001 0110 2 0011 0111 3 0010 0101 4 0110 0100 5 0111 1100 6 0101 1101 7 0100 1111 8 1100 1110 9 1101 1010

O código BCD XS3 Gray é, assim, um código autocomplementar, mas com a

seguinte particularidade: só é necessário complementar o bit mais significativo.

Exemplo: o complemento falso (complemento para 9) do dígito 3 é 6 (9-3=6),

bastando complementar o bit mais significativo da codificação do dígito 3 (0101) para

obter a codificação do dígito 6: 1101.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 34 – Engenharia Informática 2004-2005

Códigos Binários Alfanuméricos

Os códigos que se destinam a representar informação não só numérica, mas

também os caracteres do alfabeto, sinais, símbolos, entre outros, denominam-se códigos

alfanuméricos. Na tabela seguinte apresentam-se algumas codificações de um destes

códigos: o código ASCII de 7 bits (American Standard Code for Information

Interchange)

Caracter Código ASCII Caracter Código ASCII Caracter Código ASCII

NUL 000 0000 + 010 1011 V 101 0110 SOH 000 0001 , 010 1100 W 101 0111 STX 000 0010 - 010 1101 X 101 1000 ETX 000 0011 . 010 1110 Y 101 1001 EOT 000 0100 / 010 1111 Z 101 1010 ENQ 000 0101 0 011 0000 [ 101 1011 ACK 000 0110 1 011 0001 \ 101 1100 BEL 000 0111 2 011 0010 ] 101 1101 BS 000 1000 3 011 0011 ^ 101 1110 HT 000 1001 4 011 0100 _ 101 1111 LF 000 1010 5 011 0101 ` 110 0000 VT 000 1011 6 011 0110 a 110 0001 FF 000 1100 7 011 0111 b 110 0010 CR 000 1101 8 011 1000 c 110 0011 SO 000 1110 9 011 1001 d 110 0100 SI 000 1111 : 011 1010 e 110 0101

DLE 001 0000 ; 011 1011 f 110 0110 DC1 001 0001 < 011 1100 g 110 0111 DC2 001 0010 = 011 1101 h 110 1000 DC3 001 0011 > 011 1110 i 110 1001 DC4 001 0100 ? 011 1111 j 110 1010 NAK 001 0101 @ 100 0000 k 110 1011 SYN 001 0110 A 100 0001 l 110 1100 ETB 001 0111 B 100 0010 m 110 1101 CAN 001 1000 C 100 0011 n 110 1110 EM 001 1001 D 100 0100 o 110 1111 SUB 001 1010 E 100 0101 p 111 0000 ESC 001 1011 F 100 0110 q 111 0001 FS 001 1100 G 100 0111 r 111 0010 GS 001 1101 H 100 1000 s 111 0011 RS 001 1110 I 100 1001 t 111 0100 US 001 1111 J 100 1010 u 111 0101 SP 010 0000 K 100 1011 v 111 0110 ! 010 0001 L 100 1100 w 111 0111 “ 010 0010 M 100 1101 x 111 1000 # 010 0011 N 100 1110 y 111 1001 $ 010 0100 O 100 1111 z 111 1010 % 010 0101 P 101 0000 { 111 1011 & 010 0110 Q 101 0001 | 111 1100 ‘ 010 0111 R 101 0010 } 111 1101 ( 010 1000 S 101 0011 ~ 111 1110 ) 010 1001 T 101 0100 DEL 111 1111 * 010 1010 U 101 0101

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 35 –

Muitos computadores utilizam caracteres ASCII de 8 bits. As 128 representações

adicionais (em que o bit mais significativo está a '1') representam caracteres adicionais,

como por exemplo caracteres gregos, itálicos, etc. Quando em comunicação de dados, o

8.º bit costuma ser usado como bit de paridade (ver mais à frente "Detecção e correcção

de erros").

Outro exemplo deste tipo de códigos é o EBCDIC (Extended BCD Interchange

Code), de 8 bits, que foi vulgarizado pela IBM.

Código de 7 Segmentos

Este código tem utilização em dispositivos com indicadores numéricos luminosos

de 7 Segmentos, como instrumentos de medida digitais, calculadoras, relógios, etc.

Nestes dispositivos a informação numérica é normalmente tratada em BCD que, antes

de ser apresentada nos indicadores numéricos luminosos, é convertida no código de 7

Segmentos.

Com os sete segmentos dispostos como indicado na figura, é de facto possível

representar todos os dígitos do sistema decimal.

a

f b

g

e c

d

A forma mais vulgar do código de 7 Segmentos é a apresentada na tabela

seguinte, que corresponde a associar um ‘1’ a cada segmento que é iluminado. Outra

forma corresponde à associação de um ‘0’ a cada segmento que é iluminado.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 36 – Engenharia Informática 2004-2005

Segmentos

Dígito decimal a b c d e f g

0 1 1 1 1 1 1 0

1 0 1 1 0 0 0 0

2 1 1 0 1 1 0 1

3 1 1 1 1 0 0 1

4 0 1 1 0 0 1 1

5 1 0 1 1 0 1 1

6 1 0 1 1 1 1 1

7 1 1 1 0 0 0 0

8 1 1 1 1 1 1 1

9 1 1 1 1 0 1 1

Códigos para detecção e correcção de erros

Bit de paridade

Quando de um dispositivo para outro se transmite informação, existe sempre a

possibilidade de, por motivo de ruído eléctrico ou outros, ocorrerem erros.

O método mais simples e mais utilizado para a detecção de erros é o método da

paridade. Este método consiste em acrescentar um bit extra à informação que se vai

transmitir: o bit de paridade, que vai levar a que a palavra a transmitir tenha um número

par ou um número ímpar de 1's, consoante se convencione trabalhar com paridade par

ou paridade ímpar, respectivamente. Este bit é geralmente acrescentado à esquerda do

bit mais significativo, passando a fazer parte do código da palavra a ser transmitida.

Quando a mensagem é recebida, a respectiva consistência é verificada: o número

de 1's tem de ser o apropriado - par ou ímpar, consoante se esteja a lidar com paridade

par ou ímpar. Se a paridade da informação recebida não estiver de acordo com a

paridade convencionada, isso significa que durante a transmissão ocorreu algum erro.

Este método permite a detecção de um, três ou qualquer número ímpar de erros,

não detectando a ocorrência de um número par de bits errados.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 37 –

Exemplo:

Na tabela seguinte apresentam-se os valores de um oitavo bit, o bit de paridade,

para algumas codificações ASCII, para sistemas de paridade par e paridade ímpar

Paridade ímpar Paridade par

P Mensagem P Mensagem

1 0110101 0 0110101

0 0110111 1 0110111

1 1000001 0 1000001

0 1010100 1 1010100

Código de Hamming

O código de Hamming é um código detector e corrector de erros únicos. Consiste

num conjunto de k bits de paridade que se juntam aos n bits de dados, formando uma

palavra de n+k bits: a palavra de Hamming.

Serão necessários tantos mais bits de paridade, k, quantos mais bits de dados, n,

houver. Esta relação é regida pela expressão

2 1k n k� t �

da qual resultam os seguintes valores

Bits de teste

K

Gama de bits de dados

n

3 2 – 4

4 5 – 11

5 12 – 26

6 27 – 57

7 58 – 120

8 121 – 247

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 38 – Engenharia Informática 2004-2005

Para construir a palavra de Hamming, começa-se por numerar os respectivos bits

de 1 a n+k, da esquerda para a direita. As posições correspondentes a potências de 2 (1,

2, 4, 8, 16, ...) reservam-se para os bits de paridade, enquanto que as restantes serão

ocupadas pelos n bits de dados. Os valores dos bits de paridade são calculados de modo

a estabelecer a paridade par dos bits localizados num determinado conjunto de posições

pré-estabelecidas. Por exemplo, para o primeiro bit de paridade, P1, cuja posição em

binário se expressa por 0001, vamos considerar todas as posições que em binário

também se expressem com um ‘1’ na posição menos significativa (xxx1). Para o

segundo bit de paridade, P2, 0010 em binário, consideram-se todas as restantes posições

que também se expressem em binário com um ‘1’ no 2.º bit menos significativo (xx1x),

e assim sucessivamente para os restantes bits de paridade.

Exemplo:

Construir a palavra de Hamming para a seguinte palavra de dados de 8 bits:

11011001.

Para 8 bits de dados serão necessários 4 bits de paridade, num total de 8+4=12

bits. Os bits de paridade vão ocupar as posições 1, 2, 4 e 8, enquanto que as restantes

posições serão ocupadas pelos bits de dados.

Posição 1 2 3 4 5 6 7 8 9 10 11 12

bit P1 P2 1 P4 1 0 1 P8 1 0 0 1

O primeiro bit de paridade, P1 (0001),deverá estabelecer a paridade par

juntamente com os valores dos bits das posições 3 (0011), 5 (0101), 7 (0111), 9 (1001) e

11 (1011) – todos têm um ‘1’ na 1.ª posição.

O segundo bit de paridade, P2 (0010), deverá estabelecer a paridade par

juntamente com os bits das posições 3 (0011), 6 (0110), 7 (0111), 10 (1010) e 11 (1011)

– todos têm um ‘1’ na 2.ª posição.

O terceiro bit de paridade, P4 (0100), deverá estabelecer a paridade par das

posições 5 (0101), 6 (0110), 7 (0111) e 12 (1100) – todos têm um ‘1’ na 3.ª posição.

O quarto bit de paridade, P8 (1000), deverá estabelecer a paridade par das

posições 9 (1001), 10 (1010), 11 (1011) e 12 (1100) – todos têm um ‘1’ na 4.ª posição.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 39 –

Assim,

P1: bits 3, 5, 7, 9 e 11 � P1=P(1,1,1,1,0)=0

P2: bits 3, 6, 7, 10 e 11 � P2=P(1,0,1,0,0)=0

P4: bits 5, 6, 7 e 12 � P4=P(1,0,1,1)=1

P8: bits 9, 10, 11 e 12 � P8=P(1,0,0,1)=0

sendo 001110101001 a palavra de Hamming final, a transmitir.

Após a transmissão, os 12 bits recebidos são testados para verificar se houve

erros. Para o caso anterior, haveria que verificar 4 bits de teste, por determinação da

paridade das seguintes posições

T1: bits 1, 3, 5, 7, 9 e 11

T2: bits 2, 3, 6, 7, 10 e 11

T4: bits 4, 5, 6, 7 e 12

T8: bits 8, 9, 10, 11 e 12

Se não houver erros, o resultado deste teste será T=T8T4T2T1=0000. Se Tz 0,

então é porque ocorreu algum erro. O valor de T indicará, nesse caso, a posição

correspondente ao bit onde ocorreu o erro, que poderá ser automaticamente corrigido.

Alguns exemplos:

Posição 1 2 3 4 5 6 7 8 9 10 11 12 T8 T4 T2 T1 teste

Bit 0 0 1 1 1 0 1 0 1 0 0 1 0 0 0 0 sem erro

Bit 0 1 1 1 1 0 1 0 1 0 0 1 0 0 1 0 erro no bit 2

Bit 0 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 erro no bit 7

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 40 – Engenharia Informática 2004-2005

Outros códigos BCD

Alguns códigos BCD têm propriedades de detecção de erros, sendo utilizados

quando se pretende reduzir ao mínimo a ocorrência desses eventuais erros.

A tabela seguinte ilustra dois exemplos de códigos BCD de 7 bits com estas

características: os códigos two-out-of-seven (dois em sete) bi-quinário e qui-binário,

códigos ponderados em que todas as codificações são constituídas por 2 bits a 1 e por 5

bits a zero, num total de 7 bits.

Códigos BCD 2-out-of-7 (2 em 7)

Dígito Decimal BCD bi-quinário (50 43210)

BCD qui-binário (86420 10)

0 01 00001 00001 01 1 01 00010 00001 10 2 01 00100 00010 01 3 01 01000 00010 10 4 01 10000 00100 01 5 10 00001 00100 10 6 10 00010 01000 01 7 10 00100 01000 10 8 10 01000 10000 01 9 10 10000 10000 10

A tabela seguinte ilustra outros exemplos de códigos BCD com estas

propriedades: dois códigos two-out-of-five (dois em cinco), códigos em que todas as

codificações são constituídas por 2 bits a 1 e por 3 bits a zero, num total de 5 bits, e o

código BCD ‘Contador em Anel’, código ponderado em que todas as codificações são

constituídas por apenas 1 bit a 1 e por 9 bits a zero, num total de 10 bits.

Dígito Decimal BCD 2-out-of-5 BCD 2-out-of-5 (63210)

BCD Contador em Anel

(9876543210) 0 00011 00110 0000000001 1 00101 00011 0000000010 2 00110 00101 0000000100 3 01001 01001 0000001000 4 01010 01010 0000010000 5 01100 01100 0000100000 6 10001 10001 0001000000 7 10010 10010 0010000000 8 10100 10100 0100000000 9 11000 11000 1000000000

O formato destes códigos é preferível à existência de um só bit de paridade em

cada palavra binária.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 41 –

FUNDAMENTOS DO PROJECTO DIGITAL

Variáveis e funções lógicas

Uma variável lógica, ou variável binária, é uma variável que tem por domínio 2

valores lógicos distintos, normalmente representados por ‘0’ e ‘1’ ou por ‘F’ e ‘V’. O

conceito de variável lógica foi apresentado pela primeira vez em 1850 pelo matemático

George Boole, pelo que é também comum designar-se por variável de Boole ou variável

Booleana.

Função lógica, ou função de Boole, é uma função de variáveis lógicas que tem por

contradomínio o conjunto lógico ^ 1̀;0 .

Funções lógicas elementares

1. Negação (ou complementação)

AAF )( ou AAF ~)(

A A

0 1 1 0

2. Produto lógico (ou intersecção)

BABAF � ),( ou ABBAF ),(

A B BA �

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

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 42 – Engenharia Informática 2004-2005

3. Soma lógica (ou reunião) BABAF � ),(

A B BA�

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

Expressões lógicas

Expressão lógica, ou expressão de Boole, é um conjunto de variáveis e constantes

lógicas ligadas entre si pelos sinais das funções lógicas elementares.

Exemplo:

01),( ����� BABABAF

Expressões lógicas equivalentes

Duas expressões lógicas são equivalentes quando uma delas só for igual a 1

quando a outra também for igual a 1, e igual a 0 quando a outra também for igual a 0.

Expressões lógicas complementares

Duas expressões lógicas são complementares se uma delas for 1 quando a outra

for 0, e vice-versa.

Expressões lógicas duais

Duas expressões lógicas são duais quando de uma se pode obter a outra:

- transformando todos os . em +,

- transformando todos os + em .,

- transformando todos os 0 em 1,

- transformando todos os 1 em 0,

- e mantendo as ocorrências das variáveis.

Exemplo:

01 ����� BABA é dual de

1)0()( ����� BABA

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 43 –

Duas identidades lógicas duais têm a propriedade de que quando uma é

verdadeira, a outra também o é.

Exemplo:

101 � , identidade verdadeira, é dual de

010 � , identidade igualmente verdadeira.

Postulados da Álgebra de Variáveis Lógicas

ou 1. 0 X 1 X 2. 000 � 111 � 3. 00110 � � 10110 � � 4. 111 � 000 � 5. 10 01

Teoremas da Álgebra de Variáveis Lógicas

1. 00 �A 11 �A 2. AA �1 AA � 0 3. AAA � AAA � 4. 0 � AA 1 � AA 5. Dupla negação

AA

6. Lei comutativa ABBA � �

ABBA � �

7. Lei associativa � � � � CBACBACBA �� �� ��

� � � � CBACBACBA �� �� ���

8. Lei distributiva � �CBACABA �� ���

� � � � CBACABA �� ���

9. Lei de DeMorgan BABA � �

BABA � �

10. ABAA �� � � ABAA �� 11. BABAA � �� � � BABAA � �� 12. ABABA ��� � � � � ABABA ��� 13. CABACBCABA ��� ����� � � � � � � � � � �CABACBCABA ��� �����

Nota: para cada teorema apresenta-se a identidade lógica dual.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 44 – Engenharia Informática 2004-2005

Tabelas de Verdade

As tabelas de verdade, tal como as expressões lógicas, constituem outro processo

de representar funções lógicas. Consiste numa tabela onde se indica de forma exaustiva

o valor assumido pela função lógica para cada combinação das suas variáveis. Seja a

tabela de verdade da função lógica F das 3 variáveis lógicas A, B e C:

A B C F

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

Esta função lógica assume o valor lógico 0 para as combinações

CBAeCBACBA ,

e assume o valor lógico 1 para as restantes combinações

CBAeCBACBACBACBA ,,,

Assim, podemos escrever

� � � � � �CBACBACBACBAF �������� ),,( , ou

CBACBACBACBACBACBAF ���� ),,(

que constituem duas expressões algébricas especiais de uma função lógica: a Forma

Canónica Produto de Somas (FCPS) e a Forma Canónica Soma de Produtos (FCSP),

respectivamente.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 45 –

Funções Lógicas

Interessa-nos saber como passar de uma representação algébrica de uma dada

função booleana para a sua tabela de verdade. Essa passagem é imediata, bastando para

isso substituir na expressão algébrica, os valores das variáveis para as diversas

combinações de entrada. Seja a função lógica Z das variáveis A e B:

BABABAZ ��� ),(

A B BA � A B BA � BABA ���

0 0 0 1 1 1 1

0 1 0 1 0 0 0

1 0 0 0 1 0 0

1 1 1 0 0 0 1

Calculou-se o número designativo (conjunto de zeros e uns que representam o

valor de uma dada função para todas as diferentes combinações das entradas) de cada

uma das parcelas e depois somam-se esses números designativos para obter o número

designativo da função.

Quantas funções possíveis existem de duas variáveis?

Resposta: 16.

Logigramas ou diagramas lógicos

� �NOTAAZ )(

� �ORBABAZ � ),(

� �ANDBABAZ � ),(

� �NORBABAZ � ),(

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 46 – Engenharia Informática 2004-2005

� �NANDBABAZ � ),(

� �XORBABABABAZ ��� � ),(

� �XNORBABABABAZ ��� � ),(

Relativamente a este último caso,

� �

� �� � � � � �

� �� �� �neutroElementoBABA

açãoComplementABBA

vidadeDistributiBBABBAAA

DeMorganBABA

DeMorganBABABABA

BABABA

���

�����

�o��������

���

��� ���

��� �

00

:

?

Um exemplo:

� � � �CBABBACBAZ ����� ),,(

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 47 –

Vamos ver como construir a expressão algébrica de uma dada função através do

seu número designativo. Esta passagem não é imediata e normalmente não é única.

Termo mínimo Æ para uma dada combinação das variáveis de entrada é uma

função booleana cujo número designativo é só constituído por zeros excepto para essa

combinação de variáveis de entrada.

Os procedimentos algébricos para simplificar as expressões são:

1. Difíceis de aplicar de uma forma sistemática

2. Difícil de saber quando chegamos a uma solução mínima

Formas mínimas

Tendo em vista o desenvolvimento de um procedimento para simplificar funções

lógicas vão ser introduzidas duas formas standard através das quais as funções podem

ser expressas:

1. Mínima soma de produtos

a. Número mínimo de termos

b. Número mínimo de literais

2. Mínima produto de somas

a. Número mínimo de factores

b. Número mínimo de literais

Forma mínima soma de produtos

Qualquer função lógica pode ser escrita como uma soma de produtos.

Para conseguir isso usam-se as leis da distributividade e as leis de DeMorgan. Se

só as variáveis individuais aparecem complementadas usa-se a lei da distributividade da

multiplicação em relação à adição. Se o sinal de complemento aparece sobre uma

combinação de variáveis usam-se as leis de DeMorgan tantas vezes quantas as

necessárias até que o sinal de complemento apareça somente sobre variáveis

individuais.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 48 – Engenharia Informática 2004-2005

Na simplificação deve-se ter em conta que:

0 �

AAAAAAAA

Uma standardização ainda maior pode ser efectuada, levando a uma expressão em

que todos os termos contenham todas as variáveis. Neste caso cada produto é chamado

mintermo. Apesar das expressões poderem parecer mais complexas, na realidade vão

conduzir à simplificação e minimização das funções lógicas.

Cada termo pode ser multiplicado por � �XX � .

Forma mínima produto de somas

Pelo princípio da dualidade pode-se imaginar que uma expressão lógica também

pode ser descrita como o mínimo produto de somas, utilizando as leis de DeMorgan e a

distributividade da adição em relação à multiplicação.

Na simplificação deve-se ter em conta que:

1 �

AAAAAAAA

Também neste caso se pode obter uma expressão em que todos os termos

contenham todas as variáveis. Situação em que cada termo-soma é chamado maxtermo.

Cada termo pode ser somado a � �XX � .

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 49 –

Ordem de mintermos e de maxtermos

Mintermos

Consideremos uma função de três variáveis (A,B,C). Cada mintermo contém

todas as variáveis, uma vez cada uma. Aplicamos um 0 a cada variável complementada

e um 1 a cada variável não complementada.

Para CAB temos 110. Este número binário é o número de mintermo. O valor

numérico varia com o dígito que se encontra no lugar mais significativo. Se A é o mais

significativo o mintermo é o 110 = 6, ou seja m6.

Maxtermos

Neste caso a regra de aplicação de 0 e de 1 é ao contrário. Aplicamos um 1 a cada

variável complementada e um 0 a cada variável não complementada.

Tendo � �CBA �� , vem 100 = 4, logo M4.

Tendo,

F(A,B,C,D) = ABCCABCBACBABCA ���� =

011 100 101 110 111 Æ 3 4 5 6 7

= m3+m4+m5+m+m7 =

= ¦m)7,6,5,4,3( = ¦ )7,6,5,4,3(

Tendo,

F(A,B,C) = ))()()()(( CBACBACBACBACBA ���������� =

000 001 010 011 110 Æ 0 1 2 3 6

= M0 M1 M2 M3 M6 =

= �M)6,3,2,1,0( = � )6,3,2,1,0(

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 50 – Engenharia Informática 2004-2005

Relação entre mintermos, maxtermos e a tabela de

verdade

Seja a função F das variáveis lógicas A, B e C definida por intermédio da seguinte

tabela de verdade:

N.º linha ABC F(A,B,C)

0 000 1 1 001 0 2 010 1 3 011 1 4 100 0 5 101 0 6 110 1 7 111 1

A correspondente forma canónica soma de produtos é a seguinte

F(A,B,C) = ABCCABBCACBACBA ���� = ¦ )7,6,3,2,0(

E a forma canónica produto de somas

F(A,B,C) = ))()(( CBACBACBA ������ = � )5,4,1(

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 51 –

Estruturas de dois níveis de portas lógicas

Uma função lógica expressa quer em termos de soma de produtos, quer em termos

de produtos de somas pode ser fisicamente implementada com portas lógicas

organizadas em dois níveis.

Seja o exemplo de uma função definida por expressão lógica no formato soma de

produtos e a correspondente estrutura de 2 níveis AND-OR:

F(A,B,C) = BACACBA ��

U?A

7408

1

23

U?A

7408

1

23

U?A

7411

12

1312

U?A

4075

128

9

A~BC

~A~C

~AB

f(A,B,C)

Considere-se agora o exemplo de uma função definida por expressão lógica no

formato produto de somas e a correspondente estrutura de 2 níveis OR-AND:

G(A,B,C) = ))()(( BACACBA ����

U?A

7432

1

23

U?A

7432

1

23

U?A

7411

12

1312

U?A

4075

128

9

g(A,B,C)

~AB~C

AC

A~B

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 52 – Engenharia Informática 2004-2005

Estruturas usando um só tipo de portas lógicas

Há vantagens práticas em utilizar um único tipo de portas lógicas, devido ao modo

como as portas lógicas se encontram disponíveis comercialmente, em que cada circuito

integrado só costuma ter portas do mesmo tipo. Permite optimizar o circuito em termos

do número de circuitos integrados usados. O circuito final fica mais uniforme e com

atrasos constantes, já que os atrasos das portas do mesmo tipo são semelhantes.

Considere-se o exemplo em que se pretende utilizar apenas portas NAND.

Toma-se a expressão lógica da função no formato mínimo soma de produtos,

aplica-se a dupla negação a toda a expressão e finalmente a lei de DeMorgan. A

expressão final pode ser implementada com recurso apenas a portas NAND.

F(A,B,C) = BACACBA �� = BACACBA �� = BACACBA ..

U?A

7400

1

23

U?A

7400

1

23

U?A

7410

12

1312

U?A

7410

12

1312 f(A,B,C)

A~BC

~A~C

~AB

Se se pretendesse utilizar apenas portas NOR, o procedimento seria semelhante:

tomava-se a expressão lógica da função no formato mínimo produto de somas,

aplicava-se a dupla negação a toda a expressão e finalmente a lei de DeMorgan. A

expressão final poderia ser implementada com recurso apenas a portas NOR.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 53 –

Mapas de Karnaugh

O mapa de Karnaugh é um processo extremamente útil na simplificação e

minimização de expressões algébricas booleanas. Neles temos uma célula para cada

linha de uma tabela de verdade.

De seguida mostram-se três formas de representar mapas de Karnaugh:

0 1

A

0 1

A

A relação entre mapas de Karnaugh e tabelas de verdade:

A N.º linha A F(A)

0 1 0 0

1 1

A

B

N.º linha A B F(A,B)

0 2 0 0 0

1 3 1 0 1

2 1 0

3 1 1

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 54 – Engenharia Informática 2004-2005

Por exemplo:

F(A,B) = ABBA � = m0+m1

= ))(( BABA �� = M1.M2

A

B

0

1

Nº Linha A B F(A,B)

0 1 0 0 0 0 1

1 0 1 1 0 1 0

2 1 0 0

3 1 1 1

A

B

0

1

0 1

1 1

A

B

0

1

0 0

1 0

Outra representação de um mapa de Karnaugh:

AB

00

01

11

10

0 1 3 2

De notar a ordem numérica das células. Usa um subconjunto do código de Gray,

só variando um dígito de uma célula para a adjacente. Isto é uma característica essencial

dos mapas de Karnaugh de modo a permitir a simplificação de funções por aplicação do

teorema da adjacência lógica por inspecção visual do mapa.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 55 –

Mapa de Karnaugh de três variáveis:

AB

C

00

01

11

10

0 0 1 6 4

1 1 3 7 5

Mapa de Karnaugh de quatro variáveis:

AB

CD

00

01

11

10

00 0 4 12 8

01 1 5 13 9

11 3 7 15 11

10 2 6 14 10

A ordem da colocação das variáveis A, B, C e D é arbitrária, tendo de ser seguida

coerentemente.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 56 – Engenharia Informática 2004-2005

Simplificação com mapas de Karnaugh

A característica essencial dos mapas de Karnaugh é que as células adjacentes,

tanto horizontalmente, como verticalmente, correspondem a mintermos ou maxtermos

que diferem numa única variável. Esta variável aparece complementada num termo e

não complementada noutro. Foi precisamente por isto que as células foram numeradas

da forma descrita.

Tendo,

m8 = DCBA

m9 = DCAB

Nestes dois termos a variável B aparece complementada num e não

complementada noutro. Por isso estes dois mintermos podem ser combinados:

DCABBDCADCABDCBA � � )(

A variável que aparece complementada num termo e não complementada noutro

foi eliminada.

Em termos de mapa de Karnaugh

AB

CD

00

01

11

10

00 1 1

01

11

10

O grande mérito dos mapas de Karnaugh é que permitem um fácil

reconhecimento através de uma visualização geométrica de combinações de mintermos

que podem ser combinados em expressões mais simples.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 57 –

A combinação dos mintermos m8 e m12 é representada por uma linha englobando

os 1 nas caixas adjacentes.

AB

CD

00

01

11

10

00 1 1

01

11 1

10 1 1

F(A,B,C,D) = DCBCBADCA ��

AB

CD

00

01

11

10

00

01 1 1

11 1 1

10

F(A,B,C,D) = DA

AB

CD

00

01

11

10

00 1 1

01

11

10 1 1

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 58 – Engenharia Informática 2004-2005

F(A,B,C,D) = DB

AB

CD

00

01

11

10

00

01 1 1 1 1

11

10

F(A,B,C,D) = DC

AB

CD

00

01

11

10

00 1 1

01

11

10 1 1

F(A,B,C,D) = DB

AB

CD

00

01

11

10

00 1 1

01 1 1

11 1 1

10 1 1

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 59 –

F(A,B,C,D) = A

AB

CD

00

01

11

10

00 1 1 1 1

01

11

10 1 1 1 1

F(A,B,C,D) = D

Algoritmo

Algoritmo para aplicar a um mapa de Karnaugh de modo a obter as expressões

mínimas:

x Aceitar como implicante primo qualquer célula que não pode ser combinada

com outra;

x Identificar as células que podem ser combinadas unicamente com outra célula de

um só modo. Uma célula que pode ser combinada num grupo de dois, mas pode

sê-lo de mais do que uma maneira é, temporariamente, deixada de lado;

x Identificar as células que só podem ser combinadas com outras três células de

um só modo. Uma célula que pode ser combinada num grupo de quatro, mas

pode sê-lo de mais do que uma maneira é, temporariamente, deixada de lado;

x Repetir o procedimento para grupos de oito, dezasseis, etc.(potências da base 2);

x Depois de executados os procedimentos acima descritos, se ainda existirem

células que não estão seleccionadas, estas podem ser combinadas umas com as

outras ou com células já seleccionadas. Tenta-se incluir estas células de modo a

fazer o mínimo número de grupos possível.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 60 – Engenharia Informática 2004-2005

Exemplo:

AB

CD

00

01

11

10

00 1 1

01 1 1 1 1

11 1 1 1

10 1

AB

CD

00

01

11

10

00 1 1

01 1 1 1 1

11 1 1 1

10 1

AB

CD

00

01

11

10

00 1 1

01 1 1 1 1

11 1 1 1

10 1

AB

CD

00

01

11

10

00 1 1

01 1 1 1 1

11 1 1 1

10 1

F(A,B,C,D) = ¦m)15,13,12,11,9,6,3,1,0( = ADDBDCCABCBADBCA �����

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 61 –

Exemplo:

AB

CD

00

01

11

10

00 1 1 1

01 1 1 1

11 1 1 1

10 1

AB

CD

00

01

11

10

00 1 1 1

01 1 1 1

11 1 1 1

10 1

AB

CD

00

01

11

10

00 1 1 1

01 1 1 1

11 1 1 1

10 1

F(A,B,C,D) = ¦m)15,13,9,8,7,5,4,3,2,0( = BDDCCBACBADCA ����

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 62 – Engenharia Informática 2004-2005

A simplificação no formato produto de somas pode ser obtida agrupando os zeros

no mapa de Karnaugh, tal como se consideraram os uns para o formato soma de

produtos, mas considerando agora a ocorrência das variáveis na sua forma

complementar.

Exemplo:

AB

CD

00

01

11

10

00 0 0

01 0 0

11 0 0 0 0

10 0 0

F(A,B,C,D) = �M)15,14,13,11,7,6,5,4,3,0( = ))()()(( CBDBDCDCA �����

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 63 –

Projecto de Circuito Somador

Suponha que temos dois números binários

A = An-1. An-2…. A0 e B = Bn-1. Bn-2…. B0

e pretende-se calcular a respectiva soma.

A soma terá, possivelmente, mais um dígito que os número que se adicionam.

S = Sn. Sn-1…. S0

Cada dígito Si é determinado unicamente pelos dígitos Ai...A0 e Bi...B0

Esta tabela de verdade poderia ser fisicamente realizada por uma estrutura com dois níveis de portas. Se A e B tiverem 32 dígitos teríamos uma tabela de verdade com 64 colunas e teria 264 § 1019 linhas!

Deve haver uma maneira melhor de resolver o problema!

0 0 1 1

+0 +1 +0 +1 Soma

00 01 01 10 Transporte

Fazendo adições bit a bit, temos

Projecto de circuito elementar meio-somador de palavras de 1 bit

Ai Bi Si Ci+1

0 0 0 0

0 1 1 0

1 0 1 0

1 1 0 1

Si = Ai � Bi

Ci+1 = Ai.Bi

meio

somador Ai

Bi

Si

Ci+1

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 64 – Engenharia Informática 2004-2005

U?A

7486

1

23

U?A

7408

1

23

AiBi

SiCi+1

Fazendo a adição coluna a coluna de dois números de n bits cada um só se pode

usar um meio somador para fazer a soma dos bits menos significativos. Para as outras

somas vão ter de se usar Somadores completos.

Projecto de circuito elementar somador-completo de palavras de 1 bit

Ci Ai Bi Si Ci+1

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

AiBi

Ci

00

01

11

10

0 1 1

1 1 1

Si = iiiiiiiiiiii CBACBACBACBA ���

somador

completo

Ai

BiSi

Ci+1 Ci

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 65 –

U?A

7486

1

23

U?A

7486

1

23

AiBi

SiCi

ou,

U?A?

12

45

6

U?A

7411

12

1312

U?A

7411

12

1312

U?A

7411

12

1312

U?A

7411

12

1312

Si

~AiBi~Ci

Ai~Bi~Ci

~Ai~BiCi

AiBiCi

AiBi

Ci

00

01

11

10

0 1

1 1 1 1

Ci = iiiiii CBCABA ��

U?A

7408

1

23

U?A

7408

1

23

U?A

7408

1

23

U?A

4075

128

9 Ci+1

AiBi

AiCi

BiCi

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 66 – Engenharia Informática 2004-2005

Diagrama lógico alternativo do circuito elementar somador-completo para

palavras 1 bit, contruído com recurso a dois circuitos meio-somador:

meio

somador Ai

Bi

meio

somador Si

Ci+1

Ci

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 67 –

CIRCUITOS COMBINATÓRIOS

Na sua forma primitiva, os circuitos digitais integrados, C.I., que surgem na

década de 60, eram formados por um simples inversor com transístor bipolar,

constituindo uma porta NOR.

Com a microelectrónica e os avanços na tecnologia do silício obtêm-se cada vez

mais componentes num espaço cada vez mais reduzido, chegando-se mesmo à obtenção

de sistemas digitais completos.

Na prática, num único C.I. são fabricadas numerosas portas lógicas.

Podemos considerar a seguinte divisão por níveis de complexidade:

Níveis de Integração SSI Integração em pequena escala

(Small Scale Integration)

Incluem-se num mesmo chip 1 a 10 circuitos lógicos

MSI Integração em média escala

(Medium Scale Integration)

Incluem-se num mesmo chip 10 a 100 circuitos lógicos

LSI Integração em larga escala

(Large Scale Integration)

Os circuitos integrados incluem 100 a 1000 circuitos lógicos

VLSI Integração em muito larga escala

(Very Large Scale Integration)

Os C.I. incluem mais de 10000 circuitos lógicos (surgem em 1980)

ULSI Integração em ultra larga escala

(Ultra Large Scale Integration)

É possível incorporar num único chip 1.000.000 ou mais circuitos lógicos

equivalentes.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 68 – Engenharia Informática 2004-2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 69 –

Existem várias famílias lógicas, nomeadamente:

RTL Resistor-Transistor Logic (Lógica Resistência-Transístor) DTL Diode-Transistor Logic (Lógica Díodo-Transístor) TTL Transistor-Transistor Logic (Lógica Transístor-Transístor) ECL Emitter-Coupled Logic MOS Metal-Oxide Semiconductor CMOS Complementary Metal-Oxide Semiconductor

As duas primeiras, RTL e DTL, têm apenas uma importância histórica, já que já

não são usadas no projecto de sistemas digitais.

A família RTL foi a primeira família comercial a ser utilizada com algum

significado.

Os circuitos DTL foram substituídos por circuitos TTL. De facto, a porta TTL

consiste numa modificação da porta DTL.

As famílias TTL, ECL e CMOS são utilizadas para componentes SSI, MSI, LSI e

VLSI. A família MOS é mais utilizada para componentes LSI e VLSI.

O circuito básico para cada família lógica de circuitos digitais integrados é uma

porta NAND ou uma porta NOR. É a partir desse circuito básico que outros

componentes digitais mais complexos são obtidos em cada família.

As primeiras quatro famílias lógicas, RTL, DTL, TTL e ECL, utilizam

transístores bipolares (BJT - bipolar junction transistor). As duas últimas, MOS e

CMOS, utilizam transístores unipolares (MOSFET, ou simplesmente MOS - metal-

oxide-semiconductor field-effect transistor).

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 70 – Engenharia Informática 2004-2005

Família TTL (Transistor Transistor Logic)

É sem dúvida a família mais popular em aplicações SSI e MSI.

A porta básica consiste numa porta NAND.

Existem no mercado duas versões: a militar, designada por 54, e que funciona na

gama de temperaturas –55 ºC a +125 ºC, e a comercial, designada por 74, que funciona

numa gama de temperaturas de 0 ºC até +70 ºC.

Com o avanço da tecnologia esta família foi-se desdobrando, originando as

seguintes subfamílias:

54/74 TTL standard

54L/74L TTL baixa potência

54H/74H TTL alta velocidade

54S/74S TTL Schottky

54LS/74LS TTL Schottky baixa potência

54AS/74AS TTL Advanced Schottky

54ALS/74ALS TTL Advanced Low-power Schottky

Porta TTL Standard: NAND de duas entradas

Características Principais

Alimentação A tensão nominal para os C.I. TTL é de +5V com uma variação máxima de r5%,

pelo que a alimentação só pode variar entre 4,75V e 5,25V.

Para C.I. CMOS a alimentação, que se aplica entre UDD e GND, pode variar desde

3 a 18V (assumiremos para tensão nominal +5V, tal como sucede em TTL).

Níveis Lógicos Níveis TTL

Níveis Lógicos TTL de entrada e de saída

A gama de valores da tensão de entrada entre 0,8V e 2V, porque produzem saídas

imprevisíveis, uma vez que podem ser interpretados pelas portas lógicas como nível

ALTO ou como nível BAIXO, não é válida para uma correcta operação das portas.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 71 –

Circuitos multiplexadores (multiplexers)

São circuitos selectores de dados, seleccionando o valor de uma das suas entradas

de dados para apresentação na sua única saída. As entradas de selecção têm a tarefa de

efectuar a escolha da entrada de dados a encaminhar para a saída do circuito.

Todos os circuitos selectores de dados têm pelo menos uma entrada habilitadora

do seu funcionamento (entrada de strobe), geralmente activa a zero: quando o seu valor

é zero o circuito funciona, quando o seu valor não é zero, a saída do circuito geralmente

fica a zero.

Comercialmente existem multiplexers de 2, de 4, de 8 e de 16 entradas de dados.

Apresenta-se no diagrama lógico seguinte a constituição interna de um circuito

multiplexador de 4 entradas de dados, MUX 4:1, no qual I0, I1, I2, I3 são as entradas, S0,

S1 são os selectores (entradas de selecção) e Z é a saída.

U?A?

12

45

6

U?A

7411

12

1312

U?A

7411

12

1312

U?A

7411

12

1312

U?A

7404

12

U?A

7404

12

U?A

7411

12

1312

I0

I1

I2

I3

S0 S1

Z

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 72 – Engenharia Informática 2004-2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 73 –

Multiplexers como Geradores de Funções Lógicas

Os circuitos multiplexadores podem ser utilizados para realizar funções lógicas,

evitando recorrer a processos de síntese, como por exemplo os mapas de Karnaugh.

Considere-se a seguinte função lógica,

Z = 011 SSS � = 01001 )( SSSSS �� = 010101 SSSSSS �� = m1+m0+m2

m1 = 01SS seria gerado se I1 = 1

m0 = 01 SS seria gerado se I0 = 1

m2 = 01 SS seria gerado se I2 = 1

Desta forma, para gerar a função Z, teríamos de ter I0 = I1 = I2 = 1, e I3 = 0

A capacidade de gerar funções arbitrárias pode ser estendida a mais uma variável,

para além dos selectores, desde que se possua complementada e não complementada.

Z = VSSVSSS 01101 ��

Expande-se em mintermos

Z = VSSSSVSVVSS 0100101 )()( ���� =

Z = VSSSVSVSSVSSVSS 0101010101 ���� =

Z = VSSVSSSS 010101 )1( �� =

Note-se que,

)(01 VVSS � = )1(01 SS

Assim temos,

I0 = 1, I1 = V, I2 = 0 e I3 = V

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 74 – Engenharia Informática 2004-2005

Considere-se o exemplo seguinte.

Pretende-se implementar a função F das quatro

variáveis lógicas A, B, C e D com recurso a um circuito

multiplexer de 8 entradas: MUX 8:1.

Torna-se necessário reduzir a tabela sobre uma das suas

variáveis, como por exemplo a variável de ordem menos

significativa na tabela anterior: a variável D.

A realização da função poderia ser feita com recurso ao seguinte diagrama lógico:

A0V

B0V

C0V

D0V

+V5V

74LS151

I7I6I5I4I3I2I1I0

ES2S1S0

YYN

MUX 8:1

U1C

FDCBA

R51k

R41k

R31k

R21k

R11k

A B C D F 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0

A B C F 0 0 0 0 0 0 1 D 0 1 0 D 0 1 1 D 1 0 0 D 1 0 1 1 1 1 0 D 1 1 1 D

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 75 –

Expansão de circuitos multiplexer

A multiplexagem de um número maior de entradas pode ser feito mediante a

associação de dois ou mais multiplexers. A entrada de strobe serve precisamente para

isso: permitir a construção de multiplexers de maior número de entradas.

Uma solução alternativa consiste na construção de uma pirâmide de multiplexers,

considerando vários andares de multiplexagem.

No diagrama lógico seguinte apresenta-se a realização da função lógica do

exemplo anterior, recorrendo à expansão do circuito multiplexer de 8 entradas para um

de 16 entradas.

R51k

F

R11k

R21k

R31k

R41k

A B C D

74LS151

I7I6I5I4I3I2I1I0

ES2S1S0

YYN

MUX 8:1

+V5V

D0V

C0V

B0V

A0V74LS151

I7I6I5I4I3I2I1I0

ES2S1S0

YYN

MUX 8:1

U3A

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 76 – Engenharia Informática 2004-2005

Circuitos descodificadores (decoders)

Um circuito descodificador é um circuito cujas saídas são activadas

selectivamente por combinação de valores lógicos aplicados nas suas entradas.

Para cada combinação das entradas só temos uma saída com o valor lógico 1.

A1 A0 O0 O1 O2 O3

0 0 1 0 0 0

0 1 0 1 0 0

1 0 0 0 1 0

1 1 0 0 0 1

Considere-se a constituição interna de um descodificador de 4 saídas, DEC 2:4

U?A

7408

1

23

U?A

7408

1

23

U?A

7408

1

23

U?A

7408

1

23

U?A

7404

12

U?A

7404

12

A1 A0

O0

O1

O2

O3

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 77 –

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 78 – Engenharia Informática 2004-2005

Descodificadores como Geradores de Funções Lógicas

Os circuitos descodificadores também podem ser

utilizados na realização de funções lógicas.

Considere-se o exemplo seguinte.

Pretende-se implementar a função F das quatro

variáveis lógicas A, B, C e D com recurso a um circuito

descodificador de 16 saídas (DEC 4:16).

O diagrama lógico seguinte realiza a função lógica indicada.

U2

74LS154

E1E0

A3A2A1A0

1514131211109876543210

DEC 4:16

A0V

B0V

C0V

D0V

FDCBA

R51k

R41k

R31k

R21k

R11k

A B C D F 0 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 79 –

Expansão de circuitos descodificadores

Quando o número de saídas fornecidas pelo circuito descodificador não é

suficiente para implementar a função lógica (o número de saídas é inferior ao número de

linhas da tabela de verdade da função), pode-se recorrer à associação de dois ou mais

circuitos descodificadores. A entrada de strobe serve precisamente para isso: permitir a

construção de descodificadores com maior número de saídas.

Considere-se o exemplo da função anterior, implementada com recurso a dois

circuitos descodificadores de 8 saídas cada um (DEC 3:8).

+V5V

U4A

74LS138

A2A1A0

E3E2E1

Q7Q6Q5Q4Q3Q2Q1Q0

DEC 3:8

74LS138

A2A1A0

E3E2E1

Q7Q6Q5Q4Q3Q2Q1Q0

DEC 3:8

U2

A0V

B0V

C0V

D0V

FDCBA

R51k

R41k

R31k

R21k

R11k

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 80 – Engenharia Informática 2004-2005

Circuitos desmultiplexadores (demultiplexers)

O circuito desmultiplexador é idêntico ao circuito de um descodificador, pelo que

normalmente se encontram comercialmente disponíveis sob o mesmo circuito integrado.

O circuito desmultiplexador necessita de uma entrada de dados que normalmente é

utilizada numa das diversas entradas habilitadoras (strobe) fornecidas pelo circuito.

Seja a constituição interna de um circuito desmultiplexer de 4 saídas, DEMUX

1:4

U?A

7404

12

U?A

7404

12

U?A

7411

12

1312

U?A

7411

12

1312

U?A

7411

12

1312

U?A

7411

12

1312

A1 A0

O3

O2

O1

O0

Y

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 81 –

Outros circuitos combinacionais

� Circuitos codificadores (encoders)

São circuitos que codificam a informação presente nas suas entradas,

apresentando-a nas saídas no seu equivalente em binário. Têm geralmente 2n entradas e

n saídas.

Existem dois tipos de codificadores: com prioridade e sem prioridade. Nos

codificadores sem prioridade só ocorre a activação de uma entrada de cada vez. Nos

circuitos codificadores com prioridade, quando são activadas simultaneamente várias

entradas, na saída aparece a entrada que tiver a maior prioridade.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 82 – Engenharia Informática 2004-2005

� Circuitos somadores

São circuitos aritméticos que realizam a adição de duas palavras binárias. Têm

geralmente entradas que permitem fazer a expansão do circuito (possibilitam realizar a

soma de palavras binárias com maior número de bits).

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 83 –

� Circuitos comparadores

São circuitos aritméticos que realizam a comparação entre duas palavras binárias.

Têm geralmente entradas que permitem fazer a expansão do circuito (possibilitam

realizar a comparação de palavras binárias com maior número de bits).

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 84 – Engenharia Informática 2004-2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 85 –

Portas Tri-State

As portas lógicas standard operam apenas com dois valores lógicos: 0 e 1.

As portas tri-state podem gerar na saída, além do 0 e do 1, um terceiro estado,

alta-impedância, habitualmente referido como Z.

Quando a saída está no estado de alta-impedância é como se a porta estivesse

desligada do circuito.

É uma entrada de enable (habilitação) que controla o estado de alta-impedância:

quando está activada, a porta funciona normalmente (fica em baixa-impedância).

Quando o enable está desactivado, a saída da porta é desligada do circuito (fica em

alta-impedância).

Eis alguns exemplos de circuitos que têm saída em alta-impedância:

U?A74125

2 3

1

U?A74126

2 3

1

U?

74365

246

101214

115

35791113

A1A2A3A4A5A6

G1G2

Y1Y2Y3Y4Y5Y6

U?

74366

246

101214

115

35791113

A1A2A3A4A5A6

G1G2

Y1Y2Y3Y4Y5Y6

U?

74253

6543

10111213

1421

15

7

9

1C01C11C21C3

2C02C12C22C3

AB1G2G

1Y

2Y

U?

74173

14131211

7129

1015

3456

D1D2D3D4

CLKMNG1G2CLR

Q1Q2Q3Q4

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 86 – Engenharia Informática 2004-2005

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 87 –

FUNDAMENTOS DOS CIRCUITOS SEQUENCIAIS

Os circuitos digitais podem subdividir-se em circuitos digitais combinacionais e

circuitos digitais sequenciais. Os circuitos puramente combinacionais são aqueles

circuitos em que as saídas dependem apenas, em cada instante, do valor das suas

entradas externas, sendo circuitos que “não têm memória”. Os circuitos sequenciais são

circuitos em que as suas saídas dependem não só dos valores das suas entradas externas,

mas também da “história do circuito”, isto é, do estado que o circuito foi assumindo ao

longo do tempo, envolvendo necessariamente a função de memória. Os circuitos

sequenciais podem ainda ser classificados como circuitos síncronos, se todos os seus

elementos de memória têm um funcionamento síncrono, isto é, se são todos controlados

por um mesmo sinal de sincronismo, ou podem ser classificados como circuitos

sequenciais assíncronos, no caso em que tal não se verificar.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 88 – Engenharia Informática 2004-2005

A Função de Memória Um dispositivo de memória digital binário deve possibilitar:

� Operação de escrita

Armazenar o valor “0” ou “1” no dispositivo

� Operação de leitura

Leitura do valor previamente escrito, valor que se mantém inalterado até

nova escrita

Realização da Função de Memória Um dispositivo que realiza a função de memória, constituindo uma célula de

memória elementar, ou seja, um dispositivo elementar capaz de memorizar um bit, pode

ser construído de duas maneiras:

� Por utilização de componentes analógicos, como o exemplo, simplificado,

ilustrado na figura

� Por utilização de componentes combinacionais em que é feita

realimentação de sinais das saídas para as entradas, como os exemplos

ilustrados na figura

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 89 –

O primeiro exemplo não consegue memorizar informação depois de armazenado o

valor “1” pela primeira vez, enquanto que o segundo exemplo consiste numa

modificação para resolver esse problema.

Células de Memória Elementares A figura seguinte ilustra uma célula de memória elementar construída à custa de

duas portas inversoras.

Esta célula de memória costuma designar-se por báscula (ou latch) básica estática.

A variável Q representa o estado da báscula: valor “0” ou estado reset e valor

“1” ou estado set.

Q representa o complementar do estado da báscula.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 90 – Engenharia Informática 2004-2005

O inconveniente desta configuração da báscula estática é o facto de não permitir

manipulação externa do valor do seu estado, facto que as próximas básculas vêm

resolver.

Báscula estática com portas NOR A figura seguinte ilustra uma báscula básica estática construída com recurso a

duas portas NOR. Esta báscula também é conhecida como a báscula estática tipo SR .

A grande diferença é que agora existem duas entradas externas que permitem,

quando activadas, levar a báscula ao estado set (entrada S) ou ao estado reset (entrada

R). O símbolo que representa este circuito é o seguinte:

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 91 –

A tabela funcional da báscula SR dá-nos indicação do estado que a báscula irá

assumir, mediante a combinação de valores presente nas suas entradas S e R:

S R 1�nQ 0 0 nQ 0 1 0 1 0 1 1 1 --

A tabela de excitação, por outro lado, indica-nos o valor a fornecer às entradas S e

R para obter a transição de estado pretendida. Nesta e na tabela anterior n representa o

estado actual da báscula e n+1 o estado seguinte.

1�o nn QQ S R

00o 0 X 10o 1 0 01o 0 1 11o X 0

Báscula estática com portas NAND A figura seguinte ilustra uma báscula básica estática construída com recurso a

duas portas NAND. Esta báscula também é conhecida como a báscula estática tipo RS .

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 92 – Engenharia Informática 2004-2005

As entradas externas que permitem, quando activadas, levar a báscula ao estado

set (entrada S ) ou ao estado reset (entrada R ) são activas a zero. O símbolo que

representa este circuito é o seguinte:

A tabela funcional da báscula RS dá-nos indicação do estado que a báscula irá

assumir, mediante a combinação de valores presente nas suas entradas S e R :

S R 1�nQ 0 0 -- 0 1 1 1 0 0 1 1 nQ

A tabela de excitação, por outro lado, indica-nos o valor a fornecer às entradas S

e R para obter a transição de estado pretendida. Nesta e na tabela anterior n representa o

estado actual da báscula e n+1 o estado seguinte.

1�o nn QQ S R

00o 1 X 10o 0 1 01o 1 0 11o X 1

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 93 –

Interruptor sem trepidação

Um exemplo de aplicação da báscula estática muito importante é a sua utilização

na construção de um interruptor sem ressalto ou trepidação.

O problema: a transição do nível lógico 0 para 1 (ou de 1 para 0) é obtido após

algumas trepidações indesejáveis entre os dois níveis lógicos

A solução: se se utilizar uma báscula estática do tipo SR (ou do tipo RS ) à saída

do interruptor, tal como ilustrado na figura seguinte, o problema é resolvido uma vez

que, tirando partido da combinação de manutenção de estado, o ressalto é “absorvido”

pela báscula.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 94 – Engenharia Informática 2004-2005

Báscula dinâmica Se às entradas de dados, S e R, se juntar uma entrada que permite isolar a báscula

do exterior, quando assim se pretender, obtém-se uma báscula básica dinâmica ou

porteada (ou controlada), como a ilustrada na figura.

A báscula dinâmica da figura foi obtida a partir de uma báscula estática do tipo

RS , à qual de juntou uma porta de entrada ou de controlo da báscula. A entrada de

controlo adicional desta báscula é a entrada que controla esta porta de entrada da

báscula.

A entrada adicional é uma entrada de controlo, ou entrada habilitadora de

funcionamento, uma vez que quando desactivada obriga a que a báscula estática

permaneça no seu estado de manutenção.

O símbolo que representa este circuito é o seguinte:

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 95 –

Uma configuração alternativa desta báscula é a báscula dinâmica tipo D, em que

se ligou uma porta inversora entre as entradas S e R e se passou a chamar D (D de

dados) à entrada S.

A tabela funcional da báscula dinâmica tipo D dá-nos indicação do estado que a

báscula irá assumir, mediante o valor presente na sua entrada:

D 1�nQ 0 0 1 1

A tabela de excitação para esta báscula é a seguinte:

1�o nn QQ D

00o 0 10o 1 01o 0 11o 1

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 96 – Engenharia Informática 2004-2005

Funcionamento Transparente de uma Báscula As básculas analisadas anteriormente têm uma característica em comum: assim

que haja uma variação no valor lógico de uma das suas entradas de dados, o valor lógico

do seu estado é actualizado. Mesmo a báscula dinâmica, que com a entrada de controlo

permite que a báscula não responda, em certos momentos, às entradas de dados, acaba

por ter aquele comportamento quando a entrada de controlo estiver habilitada e permitir

o funcionamento “normal” da báscula.

Este funcionamento de uma célula de memória, que responde de imediato a uma

variação nas suas entradas de dados, é um funcionamento transparente. Transparente,

porque reflecte instantaneamente o valor das suas entradas em cada instante.

O que é desejável numa célula de memória é que ela tenha um funcionamento não

transparente. Pretende-se que ela actualize o seu valor (o seu estado) apenas em

instantes de tempo previamente estabelecidos e conhecidos e não a todo e qualquer

momento.

A báscula dinâmica foi uma primeira tentativa de resolver este problema. Mas

quando o sinal de controlo habilita o seu funcionamento, ela passa a funcionar como

uma báscula estática.

Na figura seguinte é apresentada outra situação: duas básculas dinâmicas são

ligadas em série, de tal modo que as saídas da primeira são ligadas às entradas da

segunda. O objectivo é efectuar um set na primeira báscula durante um primeiro ciclo

do sinal de controlo das básculas e efectuar um set na segunda báscula durante o

segundo ciclo do mesmo sinal.

Ora, o que se passa é que, como o funcionamento das básculas é transparente,

durante o primeiro ciclo do sinal de controlo ficam as duas básculas no estado set, uma

vez que assim que as saídas da primeira báscula são actualizadas, ao fim de um certo

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 97 –

tempo de atraso de propagação, a segunda báscula pode ler esses valores e tem

“permissão” para actualizar imediatamente o seu estado, o que acontece ao fim de outro

tempo de atraso de propagação.

Este problema representa mais um exemplo da limitação das básculas como

elemento armazenador e é habitualmente designado por “Problema da Corrida”: a

corrida entre a rapidez com que se pode desabilitar o funcionamento da báscula e a

velocidade com que os dados de entrada podem mudar. De facto, se conseguíssemos

que a segunda báscula fosse desabilitada antes da primeira actualizar o seu estado, o

problema estaria resolvido. Com este tipo de células não se deve permitir que durante o

mesmo ciclo do sinal de controlo se escreva e leia na mesma célula de memória.

Mas este problema só poderá ser resolvido se forem utilizadas células de memória

que tenham um funcionamento não transparente.

O Flip-Flop Mestre-Escravo Uma célula de memória elementar que tenha um funcionamento não transparente

tem a designação de flip-flop.

Na figura seguinte é apresentada a constituição interna de um flip-flop

mestre-escravo tipo SR, uma célula de memória elementar, síncrona, não transparente e

com duas entradas de dados: entrada de set, S, e entrada de reset, R.

O flip-flop é constituído por duas básculas dinâmicas ligadas em série. A primeira

báscula, a báscula mestre, recebe as entradas externas S e R na sua porta de entrada, que

aqui tem a designação de porta de entrada de dados. As saídas desta báscula estão

ligadas às entradas da segunda báscula, a báscula escravo, que as recebe na sua porta de

entrada, a porta de acoplamento entre as duas básculas. O valor da célula de memória

fica armazenado na segunda báscula, valor que é fornecido pela primeira báscula por

intermédio das entradas de dados externas: a segunda báscula funciona sob a

dependência da primeira.

Mas como é que duas células de memória funcionalmente transparentes, a báscula

mestre e a báscula escravo, permitem que a célula por elas constituída, o flip-flop

mestre-escravo, tenha um funcionamento não transparente ?

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 98 – Engenharia Informática 2004-2005

O sinal de sincronismo (relógio, enable, clock, ...) é fornecido na forma directa à

primeira báscula, mas na forma complementar à segunda, o que significa que as

básculas não vão estar a funcionar em simultâneo. Quando a báscula mestre está em

funcionamento (relógio = 1), as entradas de dados definem o seu estado (de forma

transparente). Quando relógio = 0 a báscula mestre fica isolada do exterior,

permanecendo no estado de manutenção. Nesse período a báscula escravo está em

funcionamento, pelo que as suas entradas (as saídas da báscula mestre) definem o seu

estado (de forma transparente, pois trata-se de uma báscula) mas com uma

particularidade muito importante: as entradas da báscula escravo não podem variar

porque correspondem às saídas da báscula mestre, em manutenção do seu estado.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 99 –

A figura seguinte esclarece esta sequência de eventos durante um ciclo completo

do sinal de sincronismo ou relógio:

Neste circuito o sinal de sincronismo é activo a zero, uma vez que as suas saídas

(saídas da báscula escravo) são actualizadas na sua vertente descendente (transição de 1

para 0). Este é motivo pelo qual o sinal de sincronismo é representado com a barra da

complementação, ou com o pequeno círculo indicativo de activo a zero.

Um dos símbolos que representa o flip-flop mestre-escravo é o seguinte:

A tabela funcional é idêntica à da báscula SR :

S R 1�nQ 0 0 nQ 0 1 0 1 0 1 1 1 --

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 100 – Engenharia Informática 2004-2005

A tabela de excitação apresenta-se de seguida:

1�o nn QQ S R

00o 0 X 10o 1 0 01o 0 1 11o X 0

Funcionamento Não Transparente de um Flop-Flop O flip-flop veio resolver o “problema da corrida” apresentado pela báscula.

Se considerarmos a mesma situação descrita anteriormente, agora com dois

flip-flops mestre-escravo ligados em série e ambos controlados pelo mesmo sinal de

sincronismo, facilmente chegamos à conclusão que o resultado da resposta dos dois

flip-flops é o apresentado no seguinte diagrama temporal, resultado desejado mas

impossível de alcançar com as básculas.

Como o flip-flop é funcionalmente não transparente, não permite que durante o

mesmo ciclo de relógio se proceda simultaneamente à operação de escrita e à operação

de leitura na mesma célula de memória. Como vimos, cada operação é realizada em

momentos distintos e pré-estabelecidos.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 101 –

O Flip-Flop Mestre-Escravo com entradas assíncronas A utilização prática de uma célula como o flip-flop requer que em determinadas

situações o circuito possa ser inicializado num determinado estado de forma assíncrona,

isto é, de forma imediata e portanto não síncrona com o sinal de relógio.

A figura seguinte apresenta uma solução de constituição interna para o flip-flop

mestre-escravo tipo SR com entradas assíncronas, ou directas, de set, dS , e de reset,

dR . Estas entradas assíncronas são geralmente activas a zero, isto é, a sua função é

desencadeada quando a entrada respectiva for 0 e estará inactiva enquanto permanecer

com o valor lógico 1.

O símbolo deste circuito é o seguinte:

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 102 – Engenharia Informática 2004-2005

A tabela seguinte esclarece o efeito de cada uma destas entradas, que não devem

ser usadas em simultâneo:

dS dR 1�nQ 0 0 Não usada

0 1 1 1 0 0 1 1 Funcionamento síncrono

Outras configurações do Flip-Flop Mestre-Escravo Apesar do flip-flop mestre-escravo tipo SR apresentar um funcionamento não

transparente, mantém uma particularidade indesejável da báscula: haver uma

combinação interdita para as suas entradas de dados, conforme indicado nas respectivas

tabelas funcionais.

As três configurações seguintes do flip-flop mestre-escravo não só não apresentam

este inconveniente, como apresentam outras vantagens.

O flip-flop mestre-escravo tipo D é obtido do tipo SR colocando uma porta

inversora entre as entradas S e R e passando a chamar D à antiga entrada S.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 103 –

Apresentam-se de seguida o símbolo do circuito e as tabelas funcional e de

excitação.

D 1�nQ 0 0 1 1

1�o nn QQ D

00o 0 10o 1 01o 0 11o 1

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 104 – Engenharia Informática 2004-2005

O flip-flop mestre-escravo tipo JK permite a utilização da combinação interdita,

fazendo com que essa combinação leve o flip-flop a complementar o seu estado. Esta

funcionalidade é conseguida com a realimentação das saídas da báscula escravo para as

entradas da báscula mestre, em conjunto com as entradas externas de dados, conforme

ilustrado na figura seguinte:

O símbolo deste flip-flop é o seguinte:

A tabela funcional não tem qualquer combinação inválida ou interdita:

J K 1�nQ 0 0 nQ 0 1 0 1 0 1 1 1 nQ

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 105 –

A tabela de excitação apresenta-se de seguida:

1�o nn QQ J K

00o 0 X 10o 1 X 01o X 1 11o X 0

O flip-flop mestre-escravo tipo T (do inglês toggle, que significa comutação) é

uma versão simplificada do flip-flop JK uma vez que só tem uma entrada externa e é um

flip-flop que quando activo (T=1) comuta o seu estado, caso contrário (T=0) mantém o

seu estado. Este circuito obtém-se do anterior ligando as entradas J e K uma à outra:

O símbolo deste flip-flop é o seguinte:

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 106 – Engenharia Informática 2004-2005

A tabela funcional:

T 1�nQ 0 nQ 1 nQ

A tabela de excitação apresenta-se de seguida:

1�o nn QQ T

00o 0 10o 1 01o 1 11o 0

O Problema do Flip-Flop Mestre-Escravo As configurações SR e JK do flip-flop mestre-escravo têm uma característica que

pode ser inconveniente: a propriedade da detecção de 1’s.

Uma vez que o flip-flop fica sujeito à variação das entradas de dados durante meio

ciclo de relógio, isto é, enquanto o relógio está a 1, a báscula mestre responde de forma

transparente aos valores das suas entradas (S e R ou J e K), mesmo que ocorra

momentaneamente um valor espúrio a 1, um ruído, imprevisto e indesejado, esse sinal

ou valor vai ser lido como se assim fosse pretendido e desejado, pois geralmente

segue-se a combinação de manutenção de estado que o memoriza: se ocorrer na entrada

S (ou J) é lido e memorizado um set, se ocorrer na entrada R (ou K) é lido e memorizado

um reset.

Este problema poderia ser resolvido se não fosse permitido que as entradas de

dados pudessem alterar o estado da célula de memória durante um intervalo de tempo

tão grande: meio ciclo de relógio.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 107 –

A configuração tipo D do flip-flop mestre-escravo é a única que não apresenta este

problema uma vez que não permite a combinação de manutenção de estado, pelo que

mesmo que o ruído espúrio ocorra é automaticamente anulado assim que a entrada de

dados (D) regressar ao seu valor inicial.

O problema da detecção de 1’s é um problema dos flip-flops mestre-escravo

construídos com portas NAND. Se considerarmos flip-flops mestre-escravo construídos

com portas NOR, o problema terá a designação de problema da detecção de 0’s.

O Flip-Flop edge-triggered O flip-flop edge-triggered, ou flip-flop disparado pela transição do sinal de

relógio, vem resolver o problema da detecção de 1’s do flip-flop mestre-escravo.

Tal como a designação indica, este flip-flop só vai reagir às entradas de dados

num único e pré-estabelecido instante de tempo: a vertente ascendente ou a vertente

descendente do sinal de relógio, que se designa vertente activadora do relógio. Assim, o

flip-flop vai actualizar o seu estado de cada vez que ocorrer essa vertente activadora e de

acordo com o valor que nesse instante as suas entradas de dados tiverem assumido.

Na figura seguinte apresenta-se a configuração interna de um flip-flop JK

edge-triggered, correspondente à constituição interna dos flip-flops disponíveis

comercialmente em circuitos integrados da família TTL 74112. A vertente activadora

destes flip-flops é a vertente descendente.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 108 – Engenharia Informática 2004-2005

O símbolo deste flip-flop identifica-o como um flip-flop edge-triggered: o

pequeno triângulo invertido no sinal de relógio.

Apesar do flip-flop mestre-escravo tipo D não apresentar o problema de detecção

de 1’s, a versão edge-triggered deste flip-flop é mais utilizada e comercialmente mais

disponível, como por exemplo o da figura seguinte, que corresponde ao flip-flop

disponibilizado em circuitos TTL 7474.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 109 –

Este flip-flop tem como vertente activadora a vertente ascendente do sinal de

relógio, o que aliás é indicado no respectivo símbolo:

Requisitos de tempo num flip-flop A correcta operação com um flip-flop requer que sejam cumpridos alguns

requisitos temporais, como por exemplo saber como preparar as entradas de dados antes

de ocorrer uma vertente activadora do relógio, como actuar depois dessa vertente e qual

o tempo necessário para obter uma actualização do estado do flip-flop. É informação

que os fabricantes de cada circuito costumam especificar, entre outras, para os

respectivos flip-flops.

INSTITUTO POLITÉCNICO DA GUARDA Escola Superior de Tecnologia e Gestão Sebenta de Sistemas Digitais I

– 110 – Engenharia Informática 2004-2005

Para os sinais de entrada definem-se os tempos de preparação (setup) e de

manutenção (hold). Para os sinais de resposta define-se o tempo de atraso de

propagação (tempo de resposta).

O tempo de preparação, ou de setup, corresponde ao tempo mínimo que a entrada

do circuito deve respeitar antes da vertente activadora do relógio, isto é, para que o

flip-flop consiga ler correctamente o valor da entrada, o novo valor da entrada tem de

estar pronto, antes da vertente activadora do relógio, pelo menos esse valor de tempo

que é indicado como tempo de preparação.

O tempo de manutenção, ou hold, corresponde ao tempo mínimo que a entrada do

circuito deve respeitar depois da vertente activadora do relógio, isto é, para que o

flip-flop consiga ler correctamente o valor da entrada, o novo valor da entrada tem de se

manter, após a vertente activadora do relógio, pelo menos esse valor de tempo que é

indicado como tempo de manutenção.

O tempo de atraso de propagação corresponde ao tempo, após a vertente

activadora do relógio, que o flip-flop demora a actualizar o seu estado, ou seja,

representa o tempo que o flip-flop demora a ‘responder’.

INSTITUTO POLITÉCNICO DA GUARDA Sebenta de Sistemas Digitais I Escola Superior de Tecnologia e Gestão

Engenharia Informática 2004-2005 – 111 –

BIBLIOGRAFIA

Taub, H. (1984). Circuitos Digitais e Microprocessadores. McGraw Hill.

Sêrro, C. (2003). Sistemas Digitais – Fundamentos Algébricos. IST Press.

Branco, E., Silva, F.R. (1993). Electrónica Digital, 2.ª edição. Dinalivro.

Branco, E., Silva, F.R. (1995). Electrónica Digital 2. Dinalivro.

Baptista, C.P. (2002). Fundamental dos Sistemas Digitais. FCA.

Mano, M.M. (2002). Digital Design, 3rd edition. Prentice Hall.

Wakerly, J.F. (2003). Digital Design - Principles & Practices, 3rd edition.

Prentice Hall.

Taub, H., Schilling, D. (1977). Digital Integrated Electronics. McGraw Hill.

Millman, J., Grabel, A. (1987). Microelectronics, 2nd edition. McGraw-Hill

International Editions.

Rodrigues, V.P., Araújo, M.S. (1996). Projecto de Sistemas Digitais. Editorial

Presença.

Ercegovac, M., Lang, T. (1999). Introdução aos Sistemas Digitais. Bookman.

Tokheim, R.L. (1996). Princípios Digitais, 3.ª edição. Colecção Schaum. Makron

Books.

Tocci, R., Widmer, N. (2000). Sistemas Digitais - Princípios e Aplicações.

Editora LTC.

Ferreira, J.M.M. (1998). Introdução ao Projecto com Sistemas Digitais e

Microcontroladores. FEUP.

Cuesta, L., Padilla, A., Remiro, F. (1994). Electrónica Digital. McGraw-Hill.