Buscar

Apostila_SisD1

Prévia do material em texto

Elementos Básicos de 
Circuitos Digitais
Universidade de Caxias do Sul
Outubro de 2009
2 Elementos Básicos de Circuitos Digitais
CONTEÚDO
1. SISTEMAS NUMÉRICOS E REPRESENTAÇÃO DA INFORMAÇÃO...................................................................................4 
1.1 Sistemas Numéricos .................................................................................................................................................. 4 
1.2 Conversão de Base .................................................................................................................................................... 6 
1.2.1 Decimal-Binário ............................................................................................................................................. 7 
1.2.2 Decimal-Hexadecimal .................................................................................................................................... 7 
1.2.3 Decimal-Octal ................................................................................................................................................ 7 
1.2.4 Hexadecimal-Binário e Binário-Hexadecimal ................................................................................................ 8 
1.2.5 Octal-Binário e Binário-Octal ......................................................................................................................... 8 
1.2.6 Base M-Base N ............................................................................................................................................... 8 
1.3 Dados Numéricos ...................................................................................................................................................... 8 
1.3.1 Inteiros com Sinal .......................................................................................................................................... 8 
1.3.2 Números Reais ............................................................................................................................................... 9 
1.3.3 Padrão de Ponto Flutante IEEE 754 ............................................................................................................. 10 
1.4 Operações ............................................................................................................................................................... 13 
1.4.1 Adição Binária em Complemento de 1 ........................................................................................................ 13 
1.4.2 Adição Binária em Complemento de 2 ........................................................................................................ 14 
1.4.3 Multiplicação Binária ................................................................................................................................... 14 
1.4.4 Divisão Binária ............................................................................................................................................. 16 
1.4.5 Adição, Multiplicação e Divisão em Ponto Flutuante ................................................................................. 16 
1.4.6 Adição Hexadecimal .................................................................................................................................... 18 
1.5 Códigos .................................................................................................................................................................... 19 
1.5.1 Códigos com Detecção de Erros .................................................................................................................. 20 
1.5.2 Códigos Alfanuméricos ................................................................................................................................ 20 
2. CIRCUITOS DIGITAIS COMBINACIONAIS......................................................................................................................23
2.1 Operação digital (binária) de um sistema ............................................................................................................... 23 
2.2 Operações lógicas ou booleanas ............................................................................................................................ 24 
2.2.1 Operação "NÃO".......................................................................................................................................... 24 
2.2.2 Operação "E" ............................................................................................................................................... 25 
2.2.3 Operação "OU" ............................................................................................................................................ 26 
2.3 Propriedades das operações lógicas ....................................................................................................................... 26 
2.4 Porta "NÃO-E" como bloco lógico universal ........................................................................................................... 27 
2.5 Porta "NÃO-OU" como bloco lógico universal ........................................................................................................ 29 
2.6 Função "OU exclusivo" ............................................................................................................................................ 30 
2.7 Análise de circuitos combinacionais ...................................................................................................................... 31 
2.8 Obtenção de expressões lógicas a partir da tabela verdade .................................................................................. 33 
2.9 Simplificação e minimização das expressões lógicas .............................................................................................. 34 
2.10 Mapas de Karnaugh .............................................................................................................................................. 35 
3. CIRCUITOS SEQUÊNCIAIS.............................................................................................................................................39
3.1 Circuitos multivibradores biestáveis ....................................................................................................................... 39 
3 Elementos Básicos de Circuitos Digitais
3.1.1 Flip-flop RS assíncrono com portas lógicas "NÃO-OU" ............................................................................... 39 
3.1.2 Temporizações dos Flip-Flops ..................................................................................................................... 40 
3.1.3 Flip-flop RS assíncrono com portas lógicas "NÃO-E" .................................................................................. 41 
3.1.4 Flip-flop RS síncrono com portas lógicas "NÃO-E" ...................................................................................... 42 
3.1.5 Flip-flops "Master-Slave" (Mestre-Escravo) ................................................................................................ 43 
3.1.6 Flip-flop D gatilhando pela borda positiva .................................................................................................. 45 
3.2 Registrador de dados paralelo ................................................................................................................................ 46 
3.2.1 Registrador de dado paralelo ...................................................................................................................... 46 
3.2.2 Registradores de deslocamento (de dados seriais) .................................................................................... 46 
3.2.3 Contador em anel ........................................................................................................................................ 47 
3.3 Contadores digitais ................................................................................................................................................. 49 
3.3.1 Contadores assíncronos .............................................................................................................................. 49 
3.3.2 Contador assíncrono decrescente ............................................................................................................... 51 
3.3.3 Contador com qualquer ciclo de contagem ................................................................................................ 51 
3.3.4 Contador síncrono com transporte paralelo ............................................................................................... 52 
4. SISTEMAS DIGITAIS COMBINACIONAIS.......................................................................................................................54
4.1 Decodificadores...................................................................................................................................................... 54 
4.2 Decodificadores e demultiplexadores de CI ........................................................................................................... 55 
4.3 Decodificadores BCD para decimal ......................................................................................................................... 56 
4.4 Decodificador BCD para o mostrador de 7 segmentos. ......................................................................................... 57 
4.5 Seletor de dados ou multiplexador ......................................................................................................................... 58 
4.6 Somadores binários ................................................................................................................................................ 59 
4.6.1 Semi-somador (“half adder”) ...................................................................................................................... 59 
4.6.2 Somador completo ...................................................................................................................................... 60 
4.7 Subtração de números binários .............................................................................................................................. 61 
4.8 Unidade lógica e aritmética .................................................................................................................................... 62 
5. SISTEMA DE MEMÓRIA DE COMPUTADORES.............................................................................................................64
5.1 Hierarquia de Memórias ......................................................................................................................................... 64 
5.2 Memórias Semi-Condutoras ................................................................................................................................... 65 
5.2.1 Memórias ROM ........................................................................................................................................... 65 
5.2.2 Memórias RAM ............................................................................................................................................ 66 
5.3 Terminologia das memórias ................................................................................................................................... 72 
5.4 Símbolos lógicos das memórias RAM e ROM ........................................................................................................ 73 
5.5 Operação geral das memórias ................................................................................................................................ 74 
5.6 Expansão de Memória com base nos circuitos lógicos ........................................................................................... 75 
4 Elementos Básicos de Circuitos Digitais
1 SISTEMAS NUMÉRICOS E REPRESENTAÇÃO DA INFORMAÇÃO
Desde a antiguidade o homem identificou a necessidade de contar seus pertences. Acredita-se que isto tenha 
ocorrido quando o ser humano abandonou a prática extrativista e nômade para fixar-se em alguma região, plantar 
seus alimentos e criar seus animais. Como o homem se auxiliava dos dedos das mãos, e talvez dos pés, para contar, é 
bastante natural que tenhamos nos habituado a usar o sistema decimal, ou seja, representar quantidades utilizando 
somente dez dígitos diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8 e 9). 
O Teorema Fundamental da Numeração relaciona uma quantidade expressa em qualquer sistema de 
numeração com a mesma quantidade expressa no sistema decimal. Tal teorema é dado pela seguinte soma algébrica:
...+ X3 x B3 + X2 x B2 + X1 x B1 + X0 x B0 + X-1 x B-1 + X-2 x B-2 + X-3 x B-3 + ...,
onde B é a base do sistema de numeração, X i é cada um dos dígitos da quantidade e o índice i indica a posição relativa 
a vírgula.
1.1 SISTEMAS NUMÉRICOS
O sistema de numeração posicional decimal tem a base igual a 10 (dez) e dez algarismos: 0, 1, 2,... , 9 que 
são necessários para exprimir um número qualquer. Para escrever números maiores que nove, associamos um valor à 
posição de um número em um conjunto de algarismos. Um número qualquer no sistema de numeração posicional 
decimal pode ser representado como a seguinte soma algébrica:
N(10) = an x 10n + an-1 x 10n-1 +...+ a1 x 101 + a0 x 100 + a-1 x 10-1 + ...
onde: 
• n = 0, 1, 2, ..., ∞ é a quantidade dos algarismos (posições) da parte inteira do número N(10), 
• m = 0, 1, 2, ..., ∞ é a quantidade dos algarismos (posições) da parte fracionária do número N(10), e 
• {ai} ∈ {0, 1, 2,..., 9} é o conjunto de algarismos decimais básicos em qualquer número N(10). 
Assim, os dígitos individuais de um número representam os coeficientes do desenvolvimento (do conjunto 
{ai}) do número em potência de 10. Isto é, o "peso" do coeficiente ai depende da posição no número N(10) (sistema de 
numeração posicional). A Figura 1.1 mostra um número decimal 58,6601 de 6 dígitos, com o peso de cada um.
5 x 101+8 x 100+6 x 10-1+6 x 10-2+0 x 10-3+1 x 10-4 = 58,6601.
1010 10 10 1010
0 185
DÍGITO MAIS SIGNIFICATIVO
DÍGITO MENOS SIGNIFICATIVO
VÍRGULA DECIMAL
6 6
+1 0 -1 -2 -3 -4
Figura 1.1: Exemplo de número na representação decimal
5 Elementos Básicos de Circuitos Digitais
Em sistemasde numeração posicionais como descrito aqui, chama-se ao dígito da esquerda o dígito mais 
significativo (ou MSD do Inglês Most Significant Digit), e chama-se o dígito mais à direita o dígito menos significativo 
(LSD do Inglês Least Significant Digit). 
No sistema de numeração posicional binário a base é 2, e somente os dois números 0 e 1 ({ai} ∈ {0, 1}) são 
necessários para representar um número binário. Os algarismos 0 e 1 têm o mesmo significativo que no sistema 
decimal, mas se dá uma interpretação diferente para a posição ocupada pelo dígito. No sistema binário os algarismos 
representam individualmente os coeficientes (do conjunto {ai} ∈ {0, 1}) das potências de dois e não das potências de 
dez, como no sistema decimal. Por exemplo, a Figura 1.2 mostra a representação binária de 16 "bits" do número 
decimal 58,6601 .
22 2 2 22 2 2 2 22 22 22 2
11 11 1 10 0 0 0 00 00
VÍRGULA BINÁRIA
DÍGITO MAIS SIGNIFICATIVO
DÍGITO MENOS SIGNIFICATIVO
1 1
 -8 -7 -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6 +7 
Figura 1.2: Exemplo de número na representação binária
No sistema de numeração posicional hexadecimal (ou simplesmente, hexa ou de base 16), os dígitos podem 
ter dezesseis valores diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ou F. Assim, para a representação de um valor 
qualquer, necessita-se de menos dígitos do que nos sistemas decimal e binário. Os pesos dos dígitos são expressos em 
potência de dezesseis. Cada dígito pode ser incrementado de 0 a F. Uma vez alcançado F, o próximo incremento causa 
a volta do dígito ao valor 0 e o incremento do próximo dígito imediatamente à esquerda. A Figura 1.3 mostra um 
exemplo de um número hexadecimal (3A,A9) de quatro dígitos.
VÍRGULA HEXADECIMAL
DÍGITO MAIS SIGNIFICATIVO
DÍGITO MENOS SIGNIFICATIVO
A A3 9
0+1 -1 -216 16 16 16
Figura 1.3: Exemplo de número na representação hexadecimal
No sistema de numeração posicional octal (base 8), os dígitos podem ter 8 valores ou estados: 0, 1, 2, 3, 4, 5, 
6 e 7. Os pesos dos dígitos são expressos em potência de oito. Cada dígito pode ser incrementado de 0 a 7. Uma vez 
alcançado 7, o próximo incremento causa a volta do dígito ao valor 0 e o incremento do próximo dígito 
imediatamente à esquerda. A Figura 1.4 mostra um exemplo de um número octal (72,522) de cinco dígitos.
6 Elementos Básicos de Circuitos Digitais
VÍRGULA OCTAL
DÍGITO MAIS SIGNIFICATIVO
DÍGITO MENOS SIGNIFICATIVO
2 57 2
0+1 -1 -2
8 88 8 8
-3
2
Figura 1.4: Exemplo de número na representação octal
Em um sistema numérico qualquer, o maior valor (quantidade) representável é dado por 
bn-1, onde b é a base do sistema e n o número de dígitos.
Assim, para o sistema decimal, considerando-se três dígitos (b= 10, n= 3), o maior valor representável será 
103 - 1 = 999.
Abaixo são relacionados alguns valores de n com o maior valor representável (N) para a base binária:
n = 1; N= 21-1 = 1 (12);
n = 2; N= 22-1 = 3 (112);
n = 3; N= 23-1 = 7 (1112);
...
n = 8; N= 28-1 = 255 (111111112);
n = 9; N= 29-1 = 511 (1111111112);
n = 10; N= 210-1 = 1.023 (11111111112; 1 "kilo" -1 ou 1 K-1);
...
n = 16; N= 216-1 = 65.535 (11111111111111112; 64 K-1);
...
n = 20; N= 220-1 = 1.048.575 (111111111111111111112; 1 "mega"-1);
...
n = 30; N= 230-1 = 1.073.741.823 (1111111111111111111111111111112; 1 "giga"-1);
...
n = 60; N= 260-1 = (1111111111111111111111111111111111111111111111111111111111112; 1 "tera"-1).
1.2 CONVERSÃO DE BASE
Usando o Teorema Fundamental da Numeração, poderemos transformar para a base decimal, um valor 
qualquer expresso em outra base. Vejamos os exemplos:
Binário para decimal (Figura 1.2)
7 Elementos Básicos de Circuitos Digitais2+7×0 + 2+6×0 + 2+5×1 + 2+4×1 + 2+3×1 + 2+2×0 + 2+1×1 + 20×0 + 2-1×1 + 2-2×0 + 2-3×1 +2-4×0 + 2-5×1 + 2-6×0 + 2-7×0 +2-8×1 = 0 + 0 + 32 + 16 + 8 + 0 + 2 + 0 + 1/2 + 0 + 1/8 + 0 + 1/32 + 0 + 0 + 1/256 = 15016/256
Hexadecimal1 para decimal (Figura 1.3)
16+1×3 + 160×10 +16-1×10 + 16-2×9 = 15027/25610 ≅ 58,710
Octal para decimal (Figura 1.4)
8+1×7 + 80×2 +8-1×5 + 8-2×2 + 8-3×2 ≅ 58,710
1.2.1 DECIMAL-BINÁRIO
A partir de um número decimal, sua representação binária é obtida realizando-se a divisão inteira da parte 
inteira do número por dois e anotando-se os restos da divisão, até obter-se o quociente zero. A parte fracionária é 
convertida para binário multiplicando-se a mesma por dois e anotando-se o "vai-um" (ou "carry"), até que o resultado 
à direita da vírgula seja zero (o processo pode repetir-se ad infinitum, isto é, nunca convergir para zero; o número de 
repetições dependerá da precisão desejada). Na Figura 1.5, é mostrada a conversão do número 25,375 (10) para binário 
(b-s é a abreviatura de "bit" menos significativo e b+s é a abreviatura de "bit" mais significativo; o subscrito no lado 
direito do número indica a base usada). Na primeira multiplicação do processo de conversão da parte fracionária, o 
"carry" é zero já que 0,3752 não resulta em um número com parte inteira; na segunda multiplicação, o "carry" é um já 
que 0,7502 resulta em um número com parte inteira (1,5); na terceira multiplicação, o "carry" é um uma vez que já 
que 0,5 (a parte fracionária de 1,5)2 também resulta em um número com parte inteira (1).
2
12
25
24
1 2
6120 2
360 2
121 20
1 0
b+s
b-s 0,375X 2
0,750
X 2
1,500
X 2
3,000
carry 0
carry 1
carry 1
b+s
b-s
25,37510 11001,0112=
Figura 1.5: Conversão de decimal para binário
1.2.2 DECIMAL-HEXADECIMAL
A partir de um número decimal, sua representação em hexadecimal é também obtida de maneira análoga à 
decimal-binário: divide-se o número por dezesseis e anotam-se os restos da divisão, até obter-se o quociente zero. 
43110  431/16 = 26 (resto 15; b-s )  26/16 = 1 (resto 10)  1/16 = 0 ( resto 1; b+s)  ∴ 43110 ⇔ 1AF16 
1 Convém lembrar que o símbolo A corresponde ao valor 10 em decimal, B corresponde ao 11, C corresponde ao 12, D 
corresponde ao 13, E corresponde ao 14 e o símbolo F corresponde ao valor 15
8 Elementos Básicos de Circuitos Digitais
1.2.3 DECIMAL-OCTAL
A partir de um número decimal, sua representação em octal é obtida dividindo-se o número por oito e 
anotando-se os restos da divisão, até obter-se o quociente zero. 10010  100/8 = 12 (resto 4 - b-s da parte inteira)  12/8 = 1 (resto 4)  1/8 = 0 (resto 1 - b+s) ∴ 10010 ⇔ 1448 
1.2.4 HEXADECIMAL-BINÁRIO E BINÁRIO-HEXADECIMAL
Cada dígito hexadecimal representa quatro dígitos binários. Na conversão de binário para hexadecimal, à 
direita da vírgula binária, os agrupamentos são da esquerda para direita; à esquerda da vírgula binária, os 
agrupamentos são da direita para a esquerda. 11001,0112  0001 1001, 0110 ∴ 11001,0112 ⇔ 19,616 
1.2.5 OCTAL-BINÁRIO E BINÁRIO-OCTAL
Cada dígito octal representa três dígitos binários. Na conversão de binário para octal, à direita da vírgula 
binária, os agrupamentos são da esquerda para direita; à esquerda da vírgula binária, os agrupamentos são da direita 
para a esquerda. 11001,0112  011 001, 0112 ∴ 11001,0112 ⇔ 31,38 
1.2.6 BASE M-BASE N
Um modo de converter-se um número representado na base M para a representação na base N consiste em 
convertê-lo primeiro para decimal e, depois, converter a representação decimal para a base N. Se M = j k e N = 10, a 
conversão pode ser feita de maneira análoga às conversões de decimal para binário, decimal para octal e decimal para 
hexadecimal.
1.3 DADOS NUMÉRICOS
Nesta seção serão apresentadas as representações de informações numéricas.
1.3.1 INTEIROS COM SINAL
Existem três formas para a representação de números inteiros com sinal na forma binária: 
a) sinal-magnitude: o "bit" mais significativo representa o sinal, 0 para positivoe 1 para negativo. Por 
exemplo, supondo cinco dígitos onde o mais à esquerda representa o sinal, +13 10 ⇔ 011012 e -1310 ⇔ 
111012. O intervalo de números representáveis vai de -15 a + 15 (11111, 11110, 11101, 11100, 11011, 
11010, 11001, 11000, 10111, 10110, 10101, 10100, 10011, 10010, 10001, 00000 ou 10000, 00001, 00010, 
00011, 00100, 00101, 00110, 00111, 01000, 01001, 01010, 01011, 01100, 01101, 01110, 01111).
9 Elementos Básicos de Circuitos Digitais
b) complemento de 1: o "bit" mais significativo representa o sinal, 0 para positivo e 1 para negativo. Quando 
o número é negativo, todos os "bits" são complementados (invertidos - 0 para 1 e 1 para 0). Por exemplo, 
supondo cinco dígitos onde o mais à esquerda representa o sinal, +1310 ⇔ 011012 e -1310 ⇔ 100102. O 
intervalo de números representáveis vai de -15 a + 15 (10000, 10001, 10010, 10011, 10100, 10101, 10110, 
10111, 11000, 11001, 11010, 11011, 11100, 11101, 11110, 00000 ou 11111, 00001, 00010, 00011, 00100, 
00101, 00110, 00111, 01000, 01001, 01010, 01011, 01100, 01101, 01110, 01111).
c) complemento de 2: o "bit" mais significativo também representa o sinal, 0 para positivo e 1 para 
negativo. Quando o número é negativo, todos os "bits" são complementados e é somado 1 ao resultado 
(podem ocorrer 4 casos na adição binária: 0+0 = 0, 1+0 = 1, 1+1 = 0 com "carry" de 1 para o dígito 
imediatamente à esquerda e 1+1+1 = 1, também com "carry" de 1 para o dígito imediatamente à 
esquerda). Por exemplo, supondo cinco dígitos onde o mais à esquerda representa o sinal, +1310 011012 
e -1310 100112. O intervalo de números representáveis vai de -16 a + 15 (10000, 10001, 10010, 10011, 
10100, 10101, 10110, 10111, 11000, 11001, 11010, 11011, 11100, 11101, 11110, 11111, 00000, 00001, 
00010, 00011, 00100, 00101, 00110, 00111, 01000, 01001, 01010, 01011, 01100, 01101, 01110, 01111).
Em complemento de 2, há apenas uma representação para o número zero: 00000.
1.3.2 NÚMEROS REAIS
A notação mais usada para representação de números fracionários é através do ponto flutuante. Na 
representação em ponto flutuante, o número é dividido em duas partes: mantissa e expoente (a base do expoente 
será a mesma da representação do número).
4900000 ≡ 0,49×107 onde 0,49 é a mantissa, 10 é a base e 7 é o expoente.
0,00023 ≡ 0,23×10-3
Generalizando, na notação em ponto flutuante,
y = M×bE, 
onde y é o número, M a mantissa, b a base de representação e E o expoente.
Tanto a mantissa quanto o expoente podem ter sinal negativo (a representação usual para a mantissa e o 
expoente, quando a base é a binária, é através de sinal-magnitude). Na base binária, os "bits" destinados à mantissa 
representam a parte inteira (I) do número e os "bits" destinados ao expoente representam a característica (C). Por 
exemplo, supondo números binários de 12 "bits" onde os sete "bits" menos significativos representam a parte inteira 
do número e os cinco "bits" mais significativos representam a característica:
0001100001112 (C=3, I=7) ≡ 23×7 = 5610
0001110001112 (C=3, I=-7) ≡ 23×-7 = -5610
10 Elementos Básicos de Circuitos Digitais1001100001112 (C=-3, I=7) ≡ 2-3×7 = 7/810
1001110001112 (C=-3, I=-7) ≡ 2-3×-7 = -7/810
Para o exemplo anterior, o maior valor representável é 0111101111112 ≡ 2
15×63, o menor inteiro é 
0111111111112 ≡ 2
15×-63 e o menor valor absoluto (descartando 0) é 1111100000012 ≡ 1×2
-15.
Muitas vezes, a mantissa está na forma de uma fração (por exemplo: o número 9300 é representado como 
0,93×104 e não 93×102). Nesse caso, é dito que a mantissa está em sua forma normal e a parte inteira passa a ser 
chamada de parte fracionária (F). Na representação binária, a vírgula é vista como estando à esquerda do sinal da 
mantissa e não mais à direita do "bit" menos significativo. Por exemplo, supondo números binários de 12 "bits", onde 
os sete "bits" menos significativos representam a parte fracionária do número e os cinco "bits" mais significativos 
representam a característica:
0001100001112 (C=3, F=1/16+1/32+1/64=7/64) ≡ 23×7/64 = 7/8100001110001112 (C=3, F=-7/64) 23×-7/64 = -7/8101001100001112 (C=-3, F=7/64) 2-3×7/64 = 7/512101001110001112 (C=-3, F=-7/64) 2-3×-7/64 = -7/512)10
Para o exemplo anterior, o maior valor representável é 0111101111112 ≡ 215×63/64 = 29×63, o menor 
inteiro é 0111111111112 ≡ 215×-63 e o menor valor absoluto (descartando 0) é 1111100000012 ≡ 2-15×1/64 = 1/221.
1.3.3 PADRÃO DE PONTO FLUTANTE IEEE 754
Na década de 70, o IEEE (Institute of Electrical and Electronic Engineers) instituiu um comitê para padronizar a 
aritmética de ponto flutuante. O resultado do trabalho deste comitê foi a definição do padrão IEEE 754 (IEEE, 1985). 
Este padrão define quatro formatos para representar valores em ponto flutuante:
1. Precisão simples (32 bits): 1 bit de sinal, 8 bits de expoente e 23 bits para a parte fracionária do 
significando. 
2. Precisão simples estendida (≥ 43 bits): utilizada raramente;
3. Precisão dupla (64 bits): 1 bit de sinal, 11 bits de expoente e 52 para a parte fracionária do 
significando. 
11 Elementos Básicos de Circuitos Digitais
4. Precisão dupla estendida (80 bits): 1 bit de sinal, 15 bits de expoente e 64 bits para a parte 
fracionária do significando. 
O formato de precisão dupla estendida é utilizado primariamente dentro de unidades de ponto flutuante. 
Ambos os formatos de simples e dupla precisão usam base 2 para mantissa (fração normalizada) e notação de excesso 
para expoentes. A notação de excesso (o expoente original é deslocado por um determinado valor) é utilizada para 
eliminar o uso do sinal no caso de expoentes negativos. O excesso é calculado através da seguinte fórmula: 2 bits do expoente 
– 1 (por exemplo, se o expoente tiver 8 bits, então o expoente original deverá ser somado com 2 8-1=127). Os formatos 
são mostrados na Figura 1.6.
Figura 1.6: Formatos de ponto flutuante padrão IEEE
Para codificar -118.625 em IEEE 754 Precisão simples são necessários os seguintes passos:
1. Primeiro, temos que obter o sinal, o expoente e a fração. Como o número é negativo, o sinal é “1”;
2. Agora, escrevemos o número (sem o sinal) usando a notação binária
1110110.101
3. O ponto é movido para a esquerda até que somente sobre um número “1” à esquerda do ponto: 
1110110.101 = 1.110110101 x 26. Isto é um número normalizado. A mantissa é a parte à direita do ponto, 
preenchidos com “0” para preencher os 23 bits (no caso de precisão simples)
12 Elementos Básicos de Circuitos Digitais
11011010100000000000000
4. O expoente é 6, mas precisa ser convertido para binário e ajustado (assim o expoente mais negativo é 0, 
e todos os expoentes são números não negativos). Para o formato 32 bits do IEEE 754, o ajuste é 127 e 
assim 6 + 127 = 133, o qual em binário é 10000101
5. Resumindo, o número -118.625 é decomposto em (Figura 1.7):
• Sinal: 1
• Mantissa: 11011010100000000000000
• Expoente: 10000101 
Figura 1.7: Codificação do Número decimal no padrão IEEE de simples precisão
Algumas codificações de valores são apresentadas na Tabela 1.1.
Tabela 1.1: Exemplo de Representações em ponto flutuante
Tipo Sinal Exp Exp+Bias Mantissa Valor
0 0 -127 0 000 0000 0000 0000 0000 0000 0.0
1 0 0 127 000 0000 0000 0000 0000 0000 1.0
-1 1 0 127 000 0000 0000 0000 0000 0000 −1.0
Menor número 
não-normalizado * -127 0
000 0000 0000 0000 0000 0001 ±2−23 × 2−126 = ±2−149 (≈ ±1.4×10-45 )
Número do meio 
não-normalizado * -127 0
100 0000 0000 0000 0000 0000 ±2−1 × 2−126 = ±2−127 (≈ ±5.88×10-39)
Maior número 
não-normalizado * -127 0
111 1111 1111 1111 1111 1111 ±(1−2−23) × 2−126 (≈ ±1.18×10-38)
Menor número 
normalizado * -126 1
000 0000 0000 0000 0000 0000±2−126 (≈ ±1.18×10-38 )
Maior número 
normalizado * 127 254
111 1111 1111 1111 1111 1111 ±(2−2−23) × 2127 (≈ ±3.4×1038 )
+∞ 0 128 255 000 0000 0000 0000 0000 0000 +∞
-∞ 1 128 255 000 0000 0000 0000 0000 0000 −∞
NaN * 128 255 não zero NaN
Apesar da grande quantidade de bits utilizados, a representação em ponto flutuante não pode representar 
com precisão os números reais e nem reproduzir fielmente as operações aritméticas de números reais. Esta limitação 
pode levar a problemas de precisão. Por exemplo, o número 0.1 não é precisamente representável em ponto 
flutuante, pois a exata representação binária de 0.1 teria uma seqüência contínua infinita de 1100 
(1100110011001100110011001100110011... x 2-4). Ao tentar recuperar este número da representação em ponto 
flutuante, o seguinte valor seria produzido exatamente:
13 Elementos Básicos de Circuitos Digitais
0.100000001490116119384765625.
Se este número fosse elevado ao quadrado, o resultado seria exatamente:
0.010000000298023226097399174250313080847263336181640625.
E se utilizando um hardware com representação em ponto flutuante de simples precisão (com arredondamento) para 
calcular o quadrado, o resultado seria 
0.010000000707805156707763671875.
Entretanto, o número representável mais próximo de 0.01 (que sofre o mesmo problema que 0.1) é exatamente:
0.009999999776482582092285156250.
1.4 OPERAÇÕES
Existem basicamente duas operações aritméticas binárias: a adição "bit" a "bit" e a multiplicação "bit" a "bit". 
A adição binária "bit" a "bit" é regida por quatro regras:
1º) 1 + 0 = 1 ("carry" 0);
2º) 1 + 1 = 0 ("carry" 1);
3º) 1 + 1 + 1 = 1 ("carry" 1);
4º) 0 + 0 = 0 ("carry" 0).
A multiplicação binária "bit" a "bit" é regida por três regras:
1º) 10 = 0;
2º) 11 = 1;
3º) 00 = 0.
1.4.1 ADIÇÃO BINÁRIA EM COMPLEMENTO DE 1
Podem ocorrer 4 situações:
a) Os dois números são positivos: soma direta.
Supondo cinco dígitos onde o mais à esquerda representa o sinal, (+710) + (+310) = +1010 ⇔ 001112 + 000112 = 010102.
b) número positivo com negativo e o negativo é maior: a soma é direta com o complemento.
Supondo cinco dígitos onde o mais à esquerda representa o sinal, (-710) + (+310) = -410 ⇔ 110002 + 000112 = 110112.
14 Elementos Básicos de Circuitos Digitais
c) número positivo com negativo e o negativo é menor: a soma é feita com o complemento; o "carry" é 
somado ao resultado.
Supondo cinco dígitos onde o mais à esquerda representa o sinal, (+710) + (-310) = +410 ⇔ 001112 + 111002 è 000112 + 1 ("carry") = 001002 
d) número negativo com negativo: soma direta entre os complementos; "carry" é somado ao resultado.
Supondo cinco dígitos onde o mais à esquerda representa o sinal, (-710) + (-310) = -1010 ⇔ 110002 + 111002 è 101002 + 1 ("carry") = 101012 
1.4.2 ADIÇÃO BINÁRIA EM COMPLEMENTO DE 2
Na adição binária em complemento de 2 também podem ocorrer 4 situações:
a) Os dois números são positivos: soma direta.
b) número positivo com negativo e o negativo é maior: a soma é direta com o complemento.
Supondo cinco dígitos onde o mais à esquerda representa o sinal, (-710) + (+310) = -410 ⇔ 110012 + 
000112 = 111002.
c) número positivo com negativo e o negativo é menor: a soma é feita com o complemento; o "carry" é 
descartado. 
Supondo cinco dígitos onde o mais à esquerda representa o sinal, (+710) + (-310) = +410 ⇔ 001112 + 
111012 è 001002 
d) número negativo com negativo: soma direta entre os complementos; "carry" é descartado.
Supondo cinco dígitos onde o mais à esquerda representa o sinal, (-710) + (-310) = -1010 ⇔ 110012 
+ 111012 è 101102 
1.4.3 MULTIPLICAÇÃO BINÁRIA
A operação de multiplicação é considerada complexa quando comparada com as operações de adição e 
subtração. 
Quando os números binários forem sem sinal, a operação é realizada que nem no sistema decimal. Cada 
dígito do multiplicador multiplica o multiplicando obtendo-se, assim, produtos parciais. Os produtos parciais são 
somados (um produto parcial é somado ao produto parcial seguinte, deslocado uma posição à esquerda).
1001 (9)
×1011 (11)
 1001
1001
 0000
 1001 
 1100011 (99)
15 Elementos Básicos de Circuitos Digitais
A multiplicação de números inteiros binários de n bits resulta em um produto com até 
2n bits de comprimento
As multiplicações podem ser feitas de maneira mais eficiente do que foi mostrado. Os produtos parciais 
podem ser imediatamente somados, em vez de esperar todos os produtos (poupando espaço de armazenamento). 
Como estamos lidando com números binários, os produtos parciais resumem-se a copiar o multiplicando deslocado 
quando o bit do multiplicador for 1, e simplesmente deslocar o produto quando o bit do multiplicador for 0. Baseado 
nestas idéias, a Figura 1.8 mostra um fluxograma da multiplicação de números inteiros de 32 bits sem sinal. Assuma 
que o registrador Produto (o qual deve possuir 64 bits) é inicializado com o valor do multiplicador, e que Produto 0 
refere-se ao bit 0 do registrador Produto. Este método necessita somente um registrador de 64 bits e uma ULA de 32 
bits. A Figura 1.10 mostra um exemplo de multiplicação de dois números de 4 bits.
Figura 1.8: Fluxograma da multiplicação de números inteiros de 32 bits sem sinal
Figura 1.9: Exemplo de multiplicação de 2 números de 4 bits: Multiplicando = 00102 e Multiplicador = 00112
Um número negativo deve ser estendido de acordo com o número de bits do resultado para dar certo. A 
Figura 1.10 mostra o resultado das multiplicações que envolvem um número negativo da maneira tradicional e 
estendendo o número negativo. Após a extensão do número negativo, o algoritmo da Figura 1.8 pode ser utilizado 
para realizar a multiplicação. 
16 Elementos Básicos de Circuitos Digitais
Figura 1.10: Exemplo de multiplicação binária para números negatives
1.4.4 DIVISÃO BINÁRIA
A divisão é mais complexa que a multiplicação. Para efetuar a divisão, verifica-se se o divisor cabe no 
dividendo: em caso positivo, o resultado parcial é 1 e a divisão continua com o resto; em caso negativo, o resultado 
parcial é 0 e a divisão continua com o resto.
2910 ÷ 1210 ≅ 2,4110 
111011100
1100 10,011...
0010100
 1100
 1000
 ...
1.4.5 ADIÇÃO, MULTIPLICAÇÃO E DIVISÃO EM PONTO FLUTUANTE
O processo de adição ou subtração em ponto flutuante é mais complexo do que o de multiplicação ou divisão 
devido à necessidade de igualar ou escalonar os expoentes. Pode-se dividir o processo de adição e subtração em 
quatro fases, como mostra o algoritmo na Figura 1.11: 
1. Escalonamento dos expoentes (ou alinhamento das mantissas): o escalonamento pode ser obtido tanto 
deslocando o número menor para a direita (aumentando o expoente) quanto deslocando o número 
maior para a esquerda. Como ambas as operações podem resultar em perda de dígitos, utiliza-se o 
primeiro, pois como o número é menor qualquer perda de dígitos tem menor efeito no resultado da 
adição. Em computadores, o escalonamento dos expoentes pode ser feito através de "software" (rotinas 
de ponto flutuante) ou "hardware" (operações de ponto flutuante). Assuma que a mantissa possui 
somente 4 dígitos e o expoente 2. A soma dos números 9,99910x101 e 1,61010 x 10-1 requer o 
escalonamento dos expoentes:
1,61010 x 10-1 = 0,161010 x 100 = 0,0161010 x 101
Como a mantissa pode ter somente 4 dígitos, o número utilizado será 0,01610 x 101
2. Soma das mantissas: como os expoentes estão escalonados, M1×bm+M2×bm, a soma é realizada da 
seguinte maneira: (M1+M2)×bm.
9,99910 + 0,01610 = 10,01510
17 Elementos Básicos de Circuitos Digitais
Pode ocorrer um overflow na mantissa por um dígito. Assim, a mantissa do resultado deve ser deslocada 
para a direita e o expoente incrementado. Caso esta operaçãoresulte em overflow do expoente, a 
operação é terminada e um erro é reportado.
3. Normalização do resultado: consiste em deslocar os dígitos da mantissa até a obtenção da forma 
normalizada. Sempre que o expoente é aumentado ou diminuído, deve-se verificar se houve overflow ou 
underflow, ou seja, verificar se o expoente ainda cabe em seu campo.
10,01510 x 101 = 1,001510 x 102
4. Arredondamento da mantissa: o resultado de qualquer operação sobre as mantissas geralmente é 
armazenado em um registrador de tamanho maior. Quando o resultado é colocado novamente no 
formato de ponto flutuante, os bits extras devem ser descartados. O padrão IEEE relaciona 4 métodos de 
arredondamento: arredondar para o mais próximo (padrão), arredondar para cima, arredondar para 
baixo, e arredondar na direção de 0. 
1,001510 x 102 ≅ 1,00210 x 102
Figura 1.11: Adição de números de ponto flutuante
Devido ao alinhamento das mantissas e normalização do resultado, a adição em ponto 
flutuante não é associativa; ou seja, x+(y+z)≠(x+y)+z. 
18 Elementos Básicos de Circuitos Digitais
Algumas heurísticas podem ser utilizadas durante o processo de soma ou subtração. Por exemplo, se um dos 
números for zero, o resultado será o outro (no caso de subtração pode ocorrer a troca de sinal, inversão do bit de 
sinal); se ambos os operandos forem zero, o resultado será zero; checar se o escalonamento dos expoentes é 
necessário. 
As operações de multiplicação e divisão em ponto flutuante são relativamente simples. Para efetuar-se M1
×bm × M2×bn, faz-se (M1×M2)×bm+n e para efetuar-se M1xbm ÷ M2×bn, faz-se (M1 ÷ M2)bm-n. Assuma que os valores a 
serem multiplicados são 1,11010 x 1010 e 9,20010 x 10-5, e que a mantissa possui 4 dígitos e o expoente 2. O processo de 
multiplicação é realizado da seguinte maneira:
1. Cálculo do expoente: o novo expoente é a soma dos expoentes dos operandos. 
novo expoente = 10 + (-5) = 5
com números em excesso de 2m-1 deve-se subtrair o excesso do resultado da soma:
(1010) + (-510) = 5
((10 +127) +(-5 +127) - 127)2m-1= 132 = (5 +127) 2m-1
2. Multiplicação das mantissas: a multiplicação é realizada da mesma maneira que para números inteiros. 
O produto terá o dobro do comprimento do multiplicando e do multiplicador. 
1,110 x 9,20010 = 10,21210
3. Normalização do produto: mesmo procedimento que na adição.
10,21210 x 105 = 1,021210 x 106
4. Arredondamento do produto: mesmo procedimento que na adição.
1,021210 x 106 » 1,02110 x 106
5. Correção do sinal: o sinal do produto dependerá dos sinais originais dos operandos. Se forem iguais, o 
sinal será positivo, caso contrário, negativo. Assim, o produto final é
+1,02110 x 106
1.4.6 ADIÇÃO HEXADECIMAL
A soma deve ser efetuada observando-se os valores fornecidos pelas relações da Tabela 1.2.
Para a realização da soma AB + 7D faz-se a soma B + D (coordenadas BD na tabela contêm 18 ou 8 com 
"carry") e depois a soma A + 7 + "carry" da soma anterior (coordenadas A7 na Tabela 1.2 contêm 11 ou 1 com "carry") 
Logo, AB + 7D = 128.
 1
 AB
+7D
128
19 Elementos Básicos de Circuitos Digitais
Tabela 1.2: Adição hexadecimal
+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 A B C D E F
1 1 2 3 4 5 6 7 8 9 A B C D E F 10
2 2 3 4 5 6 7 8 9 A B C D E F 10 11
3 3 4 5 6 7 8 9 A B C D E F 1O 11 12
4 4 5 6 7 8 9 A B C D E F 10 11 12 13
5 5 6 7 8 9 A B C D E F 10 11 12 13 14
6 6 7 8 9 A B C D E F 10 11 12 13 14 15
7 7 8 9 A B C D E F 10 11 12 13 14 15 16
8 8 9 A B C D E F 10 11 12 13 14 15 16 17
9 9 A B C D E F 10 11 12 13 14 15 16 17 18
A A B C D E F 10 11 12 13 14 15 16 17 18 19
B B C D E F 10 11 12 13 14 15 16 17 18 19 1A
C C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B
D D E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C
E E F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D
F F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
Os números negativos em hexadecimal são representados a partir da conversão do número em binário em 
complemento de dois para hexadecimal. Por exemplo, supondo 8 dígitos onde o mais à esquerda ("bit" mais 
significativo) representa o sinal, -7910 Û 101100012 Û B116 .
Um método para realizar-se a subtração em hexa consiste em converter o subtraendo para binário, tomar 
seu complemento de 2, convertê-lo para hexa e somá-lo ao minuendo. As regras em relação ao "carry" são as mesmas 
para adição em complemento de 2.
47A16 (minuendo) - 29216 (subtraendo) è 0100011110102 - 0010100100102 è 0100011110102 + 
1101011011102 = 0001111010002
1.5 CÓDIGOS
Utilizando-se dígitos binários, pode-se representar qualquer grupo de elementos (um alfabeto, um conjunto 
de símbolos, etc.). Para a representação de 2n elementos são necessários n dígitos binários.
Exemplo 1
Para a representação de 4 cores são necessários 2 "bits" (22 = 4). Por exemplo: vermelho = 002 azul = 012, 
verde = 102 e amarelo = 112. 
Os dígitos decimais são outro exemplo. Para representar um dígito decimal são necessários quatro "bits". 
Existem diversos códigos de 4 "bits" usados para a representação de dígitos decimais. Os mais usados são mostrados 
na tabela da Tabela 1.3. O código BCD (de "Binary Coded Decimal") da Tabela 1.3 é o 8421. Nos três primeiros códigos 
da tabela da Tabela 1.3, a posição do "bit" fornece seu valor. Por exemplo: no BCD8421 (o mais utilizado, por ser uma 
atribuição direta do binário equivalente), o primeiro dígito vale 8, o segundo 4, o terceiro 2 e o último vale 1. Para 
formar-se um número decimal de mais de um dígito, simplesmente agrupam-se os "bits" de cada dígito decimal. 
20 Elementos Básicos de Circuitos Digitais
Tabela 1.3: Códigos para representação de números decimais
No BCD8421 84-2-1 2421 EXCESSO-3
0 0000 0000 0000 0011
1 0001 0111 0001 0100
2 0010 0110 0010 0101
3 0011 0101 0011 0110
4 0100 0100 0100 0111
5 0101 1011 1011 1000
6 0110 1010 1100 1001
7 0111 1001 1101 1010
8 1000 1000 1110 1011
9 1001 1111 1111 1100
Exemplo 2
837 em BCD8421: 1000 0011 0111
Os códigos Excesso3, 84-2-1 e 2421 têm uma propriedade que o BCD não tem: os três são auto-
complementares, isto é, para obter-se o complemento de 9 de um número codificado, basta inverter-se todos os 
"bits". Isto é útil para operações aritméticas (apesar de que o procedimento normal, quando da execução de 
operações aritméticas, é a conversão para binário).
Exemplo 3
345 no código 2421 é 0011 0100 1011. O complemento de 9 é 999; 999 - 345 = 654 ou 1100 1011 0100.
1.5.1 CÓDIGOS COM DETECÇÃO DE ERROS
Uma informação binária pode ser transmitida através de um meio, como cabos ou ondas de rádio. Ruído 
nesses meios pode alterar a informação transmitida. Para a detecção de alterações na informação, podem ser usados 
"bits" de paridade. Um "bit" de paridade é um "bit" incluído na mensagem, que informa se o número total de 1's é par 
ou ímpar. O emissor insere o "bit" de paridade e o receptor conta o número de 1's para verificar a paridade.
Exemplo 4
Uma mensagem de 4 "bits" com mais um de paridade ímpar (tem valor 1 quando o número de 1's da 
mensagem é ímpar).
Mensagem P
 0000 0
 0100 1
 1110 1
 1010 0
 ...
1.5.2 CÓDIGOS ALFANUMÉRICOS
Os códigos alfanuméricos são usados para a representação de caracteres em geral. Os mais utilizados são: 
ASCII ("American Standard Code for Information Interchange" ou Código Americano Padrão para Troca de 
21 Elementos Básicos de Circuitos Digitais
Informações), EBCDIC ("Extended BCD Interchange Code" ou Código BCD Extendido para Troca) e, "Extended ASCII", e 
UNICODE.
Lançado na década de 60, o ASCII utiliza sete bits e os caracteres estão divididos assim: 0 a 2F16 para 
caracteres de controle e símbolos, 3016 a 3916 para os dígitos de 0 a 9 e 4116a 5916 para as letras maiúsculas. O 
"Extended ASCII" (utilizado pelos equipamentos da linha IBM/PC) contém, além dos caracteres padrão do ASCII, 
caracteres gráficos. A Tabela 1.4 mostra a tabela ASCII com os valores dos códigos dos caracteres em decimal e 
hexadecimal.
Tabela 1.4: Caracteres e Códigos ASCII
Cód Car Cód Car Cód Car Cód Car Cód Car Cód Car Cód Car Cód Car
0 32 64 @ 96 ‘ 128 Ç 160 á 192 └ 224 Ó
1 ☺ 33 ! 65 A 97 a 129 ű 161 í 193 ┴ 225 ß
2 ☻ 34 ” 66 B 98 b 130 é 162 ó 194 ┬ 226 Ô
3 ♥ 35 # 67 C 99 c 131 â 163 ú 195 ├ 227 Ò
4 ♦ 36 $ 68 D 100 d 132 ä 164 ñ 196 ─ 228 õ
5 ♣ 37 % 69 E 101 e 133 à 165 Ñ 197 ┼ 229 Õ
6 ♠ 38 & 70 F 102 f 134 å 166 ª 198 ã 230 µ
7 • 39 ’ 71 G 103 g 135 ç 167 º 199 Ã 231 þ
8 40 ( 72 H 104 h 136 ê 168 ¿ 200 ╚ 232 Þ
9 41 ) 73 I 105 i 137 ë 169 ® 201 ╔ 233 Ú
10 42 * 74 J 106 j 138 è 170 ¬ 202 ╩ 234 Û
11 ♂ 43 + 75 K 107 k 139 ï 171 ½ 203 ╦ 235 Ù
12 ♀ 44 , 76 L 108 l 140 î 172 ¼ 204 ╠ 236 ý
13 45 - 77 M 109 m 141 ì 173 ¡ 205 ═ 237 Ý
14 ♫ 46 . 78 N 110 n 142 Ä 174 « 206 ╬ 238 ¯
15 ☼ 47 / 79 O 111 o 143 Å 175 » 207 ¤ 239 ´
16  48 0 80 P 112 p 144 É 176 ░ 208 ð 240
17  49 1 81 Q 113 q 145 æ 177 ▒ 209 Ð 241 ±
18 ↕ 50 2 82 R 114 r 146 Æ 178 ▓ 210 Ê 242 _
19 !! 51 3 83 S 115 s 147 ô 179 │ 211 Ë 243 ¾
20 ¶ 52 4 84 T 116 t 148 ö 180 ┤ 212 È 244 ¶
21 § 53 5 85 U 117 u 149 ò 181 Á 213 245 §
22 ▬ 54 6 86 V 118 v 150 û 182 Â 214 Í 246 ÷
23 ↕ 55 7 87 W 119 w 151 ù 183 À 215 Î 247 ¸
24 ↑ 56 8 88 X 120 x 152 ÿ 184 © 216 Ï 248 °
25 ↓ 57 9 89 Y 121 y 153 ö 185 ╣ 217 ┘ 249 ¨
26 → 58 : 90 Z 122 z 154 Ü 186 ║ 218 ┌ 250 ·
27 ← 59 ; 91 [ 123 { 155 ø 187 ╗ 219 █ 251 ¹
28 ¬ 60 < 92 \ 124 | 156 £ 188 ╝ 220 ▄ 252 ³
29 ↔ 61 = 93 ] 125 } 157 Ø 189 ¢ 221 ¦ 253 ²
30  62 > 94 ^ 126 ~ 158 × 190 ¥ 222 Ì 254
31  63 ? 95 _ 127 ∆ 159 ƒ 191 ┐ 223 ▀ 255
Assim, a constante 'ABC' seria armazenada na memória conforme a Figura 1.12.
0 1 0 0 0 0 0 1
0 0 0 0 0 1 0
0 1 0 0 0 0 1 1
1
Figura 1.12: Armazenamento da cadeia de caracteres “ABC”.
22 Elementos Básicos de Circuitos Digitais
O EBCDIC é um código de 8 bits (portanto representa 256 símbolos) desenvolvido pela IBM (na década de 60) 
para seus computadores mainframes. Ele descende do código BCD que utiliza 6 bits para representar caracteres 
alfanuméricos. 
Apesar do extenso uso do sistema de codificação ASCII, atualmente existem diversos sistemas que são 
utilizados – por razões de plataforma, língua, entre outros – que faz com que os computadores devam ser capazes de 
traduzir qualquer sistema para que não haja comprometimento da informação. Para resolver isto, um trabalho de 
catalogação dos símbolos existentes foi iniciado por várias empresas (Xerox e Apple) pelos meados da década de 80. 
Com a criação de um consórcio de empresas de tecnologia – chamado Unicode Consortium - o projeto de 
padronização lançou em 1991 a primeira versão de um sistema de codificação de símbolos para computador chamado 
de UNICODE (Universal Code). Esta versão apresentou um sistema com 7161 códigos (21 sistemas de escritas). O 
padrão Unicode tem sido adotado por líderes do setor de informática tais como a Apple, HP, IBM, JustSystem, 
Microsoft, Oracle, SAP, Sun, Sybase, Unisys e muitos outros.
O UNICODE cobre quase todos os sistemas de escrita em uso atualmente, tais como, alfabeto hebraico, 
árabe, tailandês e muitos outros. Além disso, o UNICODE inclui pontuação, acentos, símbolos matemáticos, símbolos 
técnicos, flechas, entre outros. A versão 5.1, lançada em abril de 2008, totaliza 100713 códigos (inclui 75 sistemas de 
escrita). 
23 Elementos Básicos de Circuitos Digitais
2 CIRCUITOS DIGITAIS COMBINACIONAIS
Mesmo em um sistema digital de larga escala, tal como um computador, ou um sistema de processamento 
de dados, de controle ou digital de comunicação, existem somente algumas operações básicas que devem ser 
executadas. Estas operações são naturalmente repetidas muitas vezes e são realizadas por circuitos digitais. De 
maneira bastante ampla, podemos classificar os circuitos digitais (como mostra a Figura 2.13) em: 
• Circuitos combinacionais são aqueles nos quais a saída depende apenas do estado presente das 
entradas; são constituídos de circuitos ou portas lógicas. Portas lógicas são utilizadas para implementar 
equações algébricas booleanas (será mostrado mais tarde).
• Circuitos seqüenciais são aqueles nos quais a saída depende não só do estado presente das entradas, 
mas também de seus estados anteriores; são constituídos de portas lógicas e flip-flops (biestáveis).
Figura 2.13: Circuitos Combinacional e Seqüencial
Neste capítulo, abordaremos os problemas de análise e síntese de circuitos combinacionais à base das 
equações da álgebra de Boole, utilizando circuitos integrados básicos.
2.1. OPERAÇÃO DIGITAL (BINÁRIA) DE UM SISTEMA
As funções de um sistema digital são de forma binária. Esse sistema emprega dispositivos que apresentam 
somente dois estados. Por exemplo, um transistor da chave eletrônica é polarizado para operar no corte ou na 
saturação. Então, somente as tensões de saída de nível alto VOH e de nível baixo VOL são permitidas. Várias 
denominações são usadas para estes dois níveis discretos de tensão. e os mais comum são apresentados na Tabela
2.5.
Tabela 2.5: Terminologia do estado binário
1 2 3 4 5 6 7 8
Um dos estados Verdadeiro Nível alto 1 Com pulso Excitado Desligado Fechado Sim
O outro estado Falso Nível baixo 0 Sem pulso Não excitado Ligado Aberto Não
Em lógica, uma afirmação é verdadeira ou falsa; esta é a primeira classificação binária apresentada na tabela. 
Uma chave pode estar fechada ou aberta que é a notação da coluna 7 da Tabela 2.5. A manipulação da aritmética e 
24 Elementos Básicos de Circuitos Digitais
da matemática binária de chaveamento ou das funções lógicas utiliza somente os símbolos matemáticos 0 (zero) e 1 
(um), encontrados na coluna 3 da Tabela 2.5.
2.2. OPERAÇÕES LÓGICAS OU BOOLEANAS
Uma função lógica ou de Boole (booleana) tem a forma:
y = f(x1, x2,..., xi,..., xn)
Onde y, x1, x2,... , xi,... , xn são variáveis lógicas, possuindo em conseqüência somente dois estados possíveis. 
Isto é,
{xi} ∈ {0, 1} para i = 1, 2, ... , n e y ∈ {0, 1}.
y é variável dependente e {xi} são as variáveis independentes. As variáveis independentes estão relacionadas através 
de operações lógicas, que foram desenvolvidas pelo matemático inglês G. Boole na metade do século passado. A 
ferramenta matemática utilizada pelas variáveis lógicas chama-se Álgebra de Boole (ou booleana). 
O número máximo das funções lógicas diferentes y = f (x , x , . . . , x , . . . , x )j j 1 2 i n para j = 0, 1, 2, ... , 
M-1, depende do número n dos variáveis independentes e é igual a 22
n . Isto é: 
• para duas variáveis independentes x1, x2, isto é n = 2, temos M = 16 (como mostra o exemplo da Tabela
2.6),
• para três variáveis independentes x1, x2, x3, isto é n = 3, temos M = 256.
Tabela 2.6: Exemplo de funções para 2 variáveis
A B f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16
0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Nós consideramos só três funções lógicas básicas. Todas as funções lógicas restantes podem ser obtidas 
utilizando a composição destas funções básicas.
2.2.1. OPERAÇÃO "NÃO"
A operação "NÃO" (em inglês "NOT") é mais simples das operações lógicas. Se x é uma variável lógica, seu 
inverso é representando por x (leia-se "não-x" ou "x-barra"). A Figura 2.14 mostra a tabela verdade da operação 
"NÃO" ou "Negação". 
25 Elementos Básicos de Circuitos Digitais
x y
0
1
1
0 xy =
‘ (a) (b)Figura 2.14 (a) Tabela verdade, (b) Expressão da operação NÃO.
A tabela mostrada na Figura 2.14a chama-se tabela verdade (em inglês "truth table") e é uma forma útil de 
representar funções lógicas. A coluna da esquerda mostra os valores que x pode assumir e a coluna da direita os 
valores resultantes para a variável y. Como neste caso temos uma única variável independente, é claro que a tabela 
verdade possui duas linhas, uma vez que x somente pode ser "0" ou "1".
A Figura 2.15 mostra um circuito elétrico que representa a operação "NÃO". Neste circuito, se a chave S está 
aberta (S=0) a lâmpada L está acesa (L=1) e se a chave S está fechada (S=1) a lâmpada L está apagada (L=0). O circuito 
que realiza a operação "NÃO" é denominado inversor e representado pelos símbolos mostrados na Figura 2.15c.
V
+
-
R
S
L
(a)
x
x y = x
_
y = x
padrão IEC117-13
1
americano
ou
(c)
S
10
1 0
L
(b)
Figura 2.15 (a) Circuito representativo da operação "NÃO", (b) Tabela verdade, e (c) Símbolos do circuito inversor.
2.2.2. OPERAÇÃO "E"
A operação "E" (em inglês "AND") é definida como aquela em que a variável de saída y é igual a "1" se, e 
somente se, todas as variáveis de entrada forem iguais a "1". A operação lógica "E" se chama multiplicação lógica ou 
a conjunção das variáveis independentes. Para duas variáveis independentes. Para duas variáveis independentes, 
usando os símbolos de multiplicação e de conjunção, a expressão da operação lógica "E" pode ser escrita como 
21212121 xx=x.x=x&x=xx=y ∧
e é lida como y igual a x1 E x2.
A Figura 2.16 ilustra um circuito elétrico que representa a operação lógica "E" para duas variáveis e sua tabela 
verdade. O circuito que realiza a operação "E" denomina-se porta "E".
26 Elementos Básicos de Circuitos Digitais
V
+
-
L
S 1 2S S 1 2S L
0 0 0
0 0
0 0
11
1
1
1
x 1
2x americano
x 1
2x
ou
IEC 117-13
&
(a) (b) (c)
y=x 1 2x
y=x 1 2x
Figura 2.16: (a) Circuito representativo da operação "E", (b) Tabela verdade, e (c) Símbolos de uma porta "E" para duas entradas x1 e x2.
As convenções utilizadas são as mesmas que para o circuito da Figura 2.16 e você pode ver claramente que 
para que a lâmpada L esteja acesa (estado lógico "1") é necessário que as chaves S1 e S2 estejam fechadas (ambas no 
estado lógico "1").
2.2.3. OPERAÇÃO "OU"
A operação "OU" (em inglês "OR") é definida como aquela em que a variável de saída é igual a "1" se uma ou 
mais variáveis de entrada forem iguais a "1". Isto é, equivalente a dizer que a saída será igual a "0" se , e somente se, 
todas as variáveis de entrada forem iguais a "0". A operação lógica "OU" se chama a adição lógica ou a disjunção das 
variáveis independentes. Para duas variáveis independentes, usando os símbolos de adição e de disjunção, podemos 
escrever a operação lógica "OU" como 
y = x x = x + x1 2 1 2∨ e é lida como y igual a x1 OU x2.
A Figura 2.17 mostra um circuito elétrico que representa a operação "OU" para duas variáveis, sua tabela 
verdade e os símbolos usados para representar a porta "OU".
LV
+
-
S 1
2S
S 1 2S L
0 0 0
0
0
11
1 1
1
1 1
x 1
2x americano
x 1
2x
y= x 1 2x+
y= x 1 2x+
padrão IEC
1
(a) (b) (c)
Figura 2.17: (a) Circuito representativo da operação "OU", (b) Tabela verdade, e (c) Símbolos de uma porta "OU" para duas entradas x1 e x2.
2.3. PROPRIEDADES DAS OPERAÇÕES LÓGICAS
Vamos agora examinar uma série de propriedades das operações lógicas. Estas propriedades podem ser 
verificadas de maneira simples através das tabelas verdade.
1. As operações "E' e "OU" são comutativas como as operações aritméticas multiplicação e adição:
x x = x x1 2 2 1. .
x + x = x + x1 2 2 1
27 Elementos Básicos de Circuitos Digitais
2. As operações "E" e "OU" são associativas como as operações aritméticas respectivas:
x x .x ) = (x x ).x1 2 3 1 2 3.( .
x + x + x ) = (x + x ) + x1 2 3 1 2 3(
3. Teorema da involução
x = x
onde a dupla negação conduz à variável original (não-não x é igual a x).
4. A operação "E" é distributiva em relação à operação "OU" (como a multiplicação aritmética é distributiva 
em relação à adição aritmética).
x . x + x ) = x .x + x .x1 2 3 1 2 1 3(
5. Outras propriedades:
x.x = x; x + x = x;
x.0 = 0; x.1 = x;
x + 0 = x; x + 1 = 1;
x.x 0= ; x + x 1= ;
x + x .x = x1 1 2 1 x + x .x = x + x1 1 2 1 2;
0 1= o complemento de "0" é igual a "1";
1 0= o complemento de "1" é igual a "0".
6. Teoremas de De Morgan
a. A operação "NÃO" aplicada a uma operação "E" é igual à operação "OU" aplicada aos complementos das 
variáveis de entrada, ou seja
x .x x + x1 2 1 2= (2.1)
b. A operação "NÃO" aplicada a uma operação "OU" é igual à operação "E" aplicada aos complementos das 
variáveis de entrada, ou seja
x + x x .x1 2 1 2= (2.2)
2.4. PORTA "NÃO-E" COMO BLOCO LÓGICO UNIVERSAL
As operações "NÃO", "E" e "OU" podem ser realizadas utilizando-se portas "NÃO-E" e, por este motivo, a 
porta "NÃO-E" é conhecida como bloco lógico universal (em inglês "NAND").
28 Elementos Básicos de Circuitos Digitais
Se as três operações básicas podem ser realizadas com portas "NÃO-E", isto significa que qualquer circuito 
lógico pode ser sintetizado apenas com este tipo de porta.
Uma porta "NÃO-E" com duas entradas fornece a saída:
y = x x1 2.
Aplicando o mesmo sinal às duas entradas, temos y = x x. , mas como x.x=x, segue-se y = x . Em outras 
palavras, para obter a função "NÃO" a partir da porta "NÃO-E", basta ligar todas as entradas juntas. A Figura 2.18a 
mostra um inversor construído a partir de uma porta "NÃO-E" de duas entradas.
Figura 2.18: Porta "NÃO-E" como bloco lógico universal
Como a operação "NÃO-E" é o inverso da operação "E" basta inverter a saída da porta "NÃO-E" para obter a 
função "E". A Figura 2.18 mostra como é obtida a função "E" para duas variáveis a partir de portas "NÃO-E”.
Para conseguir a função "OU" a partir de portas "NÃO-E”, devemos considerar o primeiro teorema de De 
Morgan (Equação 2.1), lembrando também que a dupla negação retorna à variável original. Veja as expressões abaixo:
212121 x+x=xx=x.x=y +
ou seja, para obter a função "OU", realizamos a operação "NÃO-E" com os complementos das variáveis de entrada. A 
Figura 2.18 mostra como a função "OU" é obtida para duas variáveis a partir de portas "NÃO-E”.
29 Elementos Básicos de Circuitos Digitais
2.5. PORTA "NÃO-OU" COMO BLOCO LÓGICO UNIVERSAL
A porta "NÃO-OU" (em inglês "NOR") pode ser utilizada para realizar as três operações lógicas fundamentais 
"NÃO", "E" e "OU". Assim, a porta "NÃO-OU" é também um bloco lógico universal e qualquer circuito lógico pode ser 
construído apenas com este tipo de porta:
y = x + x1 2
Se aplicarmos o mesmo sinal às entradas de uma porta "NÃO-OU" de, por exemplo, duas entradas, teremos 
na saída y = x + x , mas, como x + x = x, segue-se que y x= . Assim para conseguir a função "NÃO" a partir da porta 
"NÃO-OU", basta conectar juntas todas as entradas da porta. A Figura 2.19 mostra um inversor construindo 
com uma porta "NÃO-OU" de duas entradas.
Figura 2.19: Porta "NÃO-OU" como bloco lógico universal
Para conseguir a função "E" a partir de portas "NÃO-OU”, devemos considerar o segundo teorema de De 
Morgan (Equação 2.2) e o fato que a dupla negação retorna à variável original. Veja as expressões abaixo:
212121 xx=xx=x+x=y ∧∧
ou seja, para obter a função "E", realizamos a operação "NÃO-OU" com os complementos das duas variáveis de 
entrada. A Figura 2.19 mostra como a função "E" é obtida para duas variáveis com portas "NÃO-OU”.
30 Elementos Básicos de Circuitos Digitais
2.6. FUNÇÃO "OU EXCLUSIVO"
Uma importante função lógica de duas variáveis é a função "OU exclusivo" (em inglês:"EXCLUSIVE-OR" ou 
"XOR"), que encontra grande aplicação prática em circuitos digitais, como, por exemplo, somadores. A operação "OU 
exclusivo" é representada por uma cruz dentro de um círculo e tem a segunda denominação "adição em módulo 2":
y = x x1 2⊕
A Figura 2.20 mostra a tabela verdade para a função "XOR" e os dois símbolos (americano e europeu).
x2 x1 y
0 0 0
0 1 1
1 0 1
1 1 0
(a) (b) (c)
Figura 2.20: Função lógica "OU exclusivo": y = x x1 2⊕ : (a) Tabela verdade, (b) Símbolo americano, (c) Símbolo europeu (IEC).
A função "OU exclusivo" também há função lógica universal, mas pode ser representada em termos das 
operações fundamentais "E", "OU", "NÃO", pela equação:
212121 xx=x.x+x.x=y ⊕ (2.3)
Fica como exercício para você a construção do circuito "OU exclusivo" de portas "E", "OU", "NÃO" conforme a 
Equação 2.3.
A função lógica fi(A,B) apresentada na Tabela 2.6 pode ser representada por uma caixa preta cujo conteúdo 
implementa um tipo de porta ou uma combinação das mesmas. Por exemplo, para a Tabela 2.6, algumas funções são 
mostradas na Tabela 2.7.
Tabela 2.7: Exemplo de funções que implementam fi(A,B)
Função f1 f2 f4 f6 f7 f8 f9 f10 f11 f13 f15 f16
Porta 0 AND A B XOR OR NOR XNOR B A NAND 1
A importância dessas portas lógicas está no fato de representarem os elementos básicos de construção da 
maioria dos circuitos digitais práticos. Quando se deseja construir um circuito lógico (ou digital) relativamente simples, 
usa-se uma placa de circuito impresso com soquetes sobre os quais insere-se um circuito integrado (CI) digital. A 
maioria dos CI's já são padronizados, e os mais comuns pertencem à série denominada 7400. Os mais simples utilizam 
a tecnologia de Integração em Pequena Escala (SSI - Small Scale Integration). Como um exemplo, veja o CI 7408, que 
contém quatro portas AND, cuja relação de suas entradas e saídas com os pinos de seu encapsulamento pode ser vista 
no diagrama da Figura 2.21.
= 1 y = x
1
 ⊕ x
2
x
1
x
2
y = x
1
 ⊕ x
2
31 Elementos Básicos de Circuitos Digitais
Figura 2.21: Circuito Integrado 74F08
Além de seu diagrama, são mostradas também as três formas de encapsulamento desse chip, sendo que duas 
delas exibem tipos diferentes de material e a outra é diferente na forma com a qual deve ser fixada na placa de 
circuito impresso. Como indica seu diagrama, esse CI possui 14 pinos (olhando-o de cima, a numeração de tais pinos é 
importante, pois o pino 1 sempre começa do mesmo lado; isso é suficiente para você efetuar as ligações elétricas 
necessárias para a montagem de seu circuito lógico), sendo que o pino 7 é o terra (Ground = 0 V; V indica volts) e o 
pino 14 é a tensão da fonte de energia (Vcc = 14 V). 
2.7. ANÁLISE DE CIRCUITOS COMBINACIONAIS
A análise de um circuito consiste em determinar a relação entre sua(s) saída(s) e suas entradas. De forma 
objetiva, analisar um circuito consiste em determinar o que ele faz. Ao analisarmos um circuito combinacional, 
procuramos obter a expressão lógica ou (e) a tabela verdade para sua saída ou saídas.
Exemplo 1: Determinar a equação lógica da saída y e a tabela verdade para o circuito da Figura 2.22.
Figura 2.22: Circuito lógico das portas "E", "OU", "NÃO".
Solução:
A saída da porta G2 será: . A saída da porta G3 será: . Como para a porta G4 ("OU") y = 
S1 + S2, substituindo S1 e S2, obtemos: . A tabela verdade para este circuito é mostrada na Tabela
2.8.
32 Elementos Básicos de Circuitos Digitais
Tabela 2.8: Tabela verdade para o circuito da Figura 2.22.
x3 x2 x1 S1 S2 y
0 0 0 0 0 0
0 0 1 1 0 1
0 1 0 0 0 0
0 1 1 1 0 1
1 0 0 0 0 0
1 0 1 0 0 0
1 1 0 0 1 1
1 1 1 0 1 1
Observando a tabela, verificamos que a saída y é igual à entrada x1, para x3 = 0 e igual à entrada x2, para x3 = 
1. Em outras palavras, de acordo com o estado da entrada x3, podemos selecionar uma das duas entradas, x1 ou x2, e 
colocá-la na saída. Um circuito deste tipo encontra grande aplicação na prática e recebe o nome de "multiplexor" ou 
"data selector".
Exemplo 2: Determinar a equação da saída y para o circuito da Figura 2.23.
G2
G3
G4
x1
x2
S2
S3
y = ?
G1
S1
Figura 2.23: Circuito das portas "NÃO-E".
Solução: Examinando o circuito, temos:
1 1 2 1 2S x x x + x= =
2 1 1S x S=
3 2 1S x S=
e para a saída:
( ) ( ) ( )y = S S = S +S = x S + x S x S + x S = x + x S x + x x + x =
 = x x + x x + x x + x x = x x + x x = x x
2 3 2 3 1 1 2 1 1 1 2 1 1 2 1 1 2 1 2
1 1 1 2 2 1 2 2 1 2 1 2 1 2
= =
⊕ .
O circuito realiza a função "OU exclusivo" entre x1 e x2. Este circuito (Figura 2.23) é a maneira mais simples de 
implementar a função "EXOR" quando se dispõe somente de portas "NAND".
Exemplo 3: Determinar a equação lógica da saída y e a tabela verdade para o circuito da Figura 2.24 (por conta).
33 Elementos Básicos de Circuitos Digitais
S1
G1
G 2
G 3
G4
G 5
G6
y= ?
S 2 S 3
S 4
x 1
x 2
x 3
x 4
Figura 2.24: Circuito lógico.
2.8. OBTENÇÃO DE EXPRESSÕES LÓGICAS A PARTIR DA TABELA VERDADE
Obtenção de expressões lógicas é um problema de síntese, em oposição ao de análise estudado no item 
anterior. O problema de síntese consiste em determinar um circuito que realize uma função desejada. Consideramos 
só uma parte deste problema de síntese: obtenção da expressão lógica de uma função lógica que é dada pela sua 
tabela verdade.
Qualquer expressão lógica sempre pode ser obtida pela sua tabela verdade na forma normal de disjunção 
(DNF) ou na forma normal de conjunção (CNF). Examinamos só uma forma DNF: expressar a função lógica como uma 
operação "OU" de diversos termos, cada um dos quais é uma expressão "E" das variáveis de entrada ( forma da soma 
de produtos). Vamos ilustrar este método através de exemplo.
Exemplo 1: Dada a tabela verdade da Tabela 2.9. Determinar a função (expressão) lógica correspondente à 
saída y expressando-a na forma de uma soma de produtos.
Tabela 2.9: Tabela verdade exemplo.
x3 x2 x1 y
linha 0 0 0 0 0
∗linha 1 0 0 1 1
∗linha 2 0 1 0 1
linha 3 0 1 1 0
∗linha 4 1 0 0 1
linha 5 1 0 1 0
linha 6 1 1 0 0
∗linha 7 1 1 1 1
Os passos de um método prático para obter uma função lógica expressa como soma de produtos ( DNF) são 
os seguintes:
1. Verificamos as combinações das entradas para as quais a função é igual a 1. A saída y será igual a 1 
para as combinações das entradas indicadas nas linhas 1,2,4 e 7 da Tabela 2.9.
2. Expressamos cada uma das combinações acima como uma operação "E" das variáveis de entrada, 
onde aquelas iguais a "0" aparecem barradas (invertidas).
34 Elementos Básicos de Circuitos Digitais
1 3 2 1S x x x= corresponde à combinação na linha 1: x3 = 0, x2 = 0, x1 = 1
2 3 2 1S x x x= corresponde à combinação na linha 2: x3 = 0, x2 = 1, x1 = 0
3 3 2 1S x x x= corresponde à combinação na linha 4: x3 = 1, x2 = 0, x1 = 0
4 3 2 1S x x x= corresponde à combinação na linha 7: x3 = 1, x2 = 1, x1 = 1
3. Expressamos a função lógica como uma operação "OU" dos termos obtidos no passo 2.
y S +S +S +S x x + x x x + x x x + x x x1 2 3 4 2 1 3 2 1 3 1 3 2 1= = x3 2 (2.4)
A Equação 2.4 representa a função lógica na forma FDNF (forma normal de disjunção completa) pelas 
funções básicas "E", "OU", "NÃO", e o diagrama funcional do circuito combinacional, utilizando os símbolos 
correspondentes a estas funções é mostrado na Figura 2.25.
Figura 2.25: Implementação direta da Equação 1.4.
Freqüentemente, a tabela verdade pode ser dada pela uma série das combinações das variáveis de entrada 
para as quais a função lógica y é igual a 1. Em regra, esta série é dada pelos números decimais que são equivalentes 
aos números binários formados pelas combinações das variáveis de

Continue navegando