2010-07-04 sd1 sebenta - bdigital.ipg.ptbdigital.ipg.pt/dspace/bitstream/10314/3514/1/sebenta...
TRANSCRIPT
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.