Buscar

Unidade I e II

Prévia do material em texto

UNIVERSIDADE FEDERAL DA BAHIA 
ESCOLA POLITÉCNICA 
DEPARTAMENTO DE ENGENHARIA ELÉTRICA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ENGC26 Sistemas Lógicos 
 
 
 
 
 
 
 
 
 
 
 
 
 
LIGIA SOUZA PALMA 
2007 
 1
1. INTRODUÇÃO 
 
Quando Claude Elwood Shannon (1916 - 2001), em 1936, por intermédio de seu trabalho intitulado "A 
Symbolic Analysis of Relay and Switching Circuits", sistematizou e adaptou o trabalho teórico de George 
Boole (1815-1864) intitulado "An Investigation of the Laws of Thought" (1854) aos circuitos chaveados, se 
quer suspeitava estar iniciando uma verdadeira revolução tecnológica aplicada ao projeto de circuitos 
elétricos, introduzindo uma categoria de circuitos até então não existente, os circuitos chaveados ou circuitos 
digitais. 
 
A partir de então, observou-se um crescimento nas aplicações dos conceitos de circuitos digitais para 
solução de problemas que até então só poderiam ser resolvidos utilizando-se circuitos analógicos. 
 
A história dos circuitos digitais é uma história longa, porém passada em um curto espaço de tempo. Senão 
observe-se alguns fatos marcantes que determinaram o desenvolvimento de toda tecnologia baseada na 
informação, que só foi possível devido ao surgimento dessa modalidade de circuito elétrico. 
 
1947 – Descobrimento do transistor bipolar de junção. 
1959 – Descoberta de um processo planar de fabricação de circuito integrado. 
1960 - Desenvolvimento primeiro do transistor MOSFET funcional. 
1962 – Surgimento dos primeiros circuitos integrados comerciais. 
 
Então, o transistor tem 60 anos de idade e o primeiro CI tem 45 anos de idade, entretanto, o 
desenvolvimento da tecnologia digital, iniciada por Shannon, possibilitou à implementação dos mais diversos 
tipos de circuitos lógicos utilizados nas mais diversas áreas do conhecimento e seus reflexos nos dias atuais 
são muito marcantes, senão vejamos: 
 
1. Crescimento incomparável na evolução tecnológica e no mercado: 16% anual 
2. Mercado global de eletrônica é maior que US$ 1 trilhão, maior do mundo! 
3. Revolução econômica e social baseada na tecnologia da informação: 
Internet, Internet sem fio, Bluetooth (internet sem fio e barata para curtas distâncias), 
Telefonia celular, Navegação e Carro inteligentes, Realidade virtual, Jogos eletrônicos, 
Equipamentos para diagnóstico médico de precisão, etc. 
 
Toda esta tecnologia foi possível graças ao progresso em tecnologia de semicondutores e de circuitos 
integrados. Pode-se dizer que hoje se vive a 
 
“IDADE DO SILICIO”. 
 
 
 2
1.2 BREVE HISTÓRIA 
 
Tudo começou com matemático inglês George Boole, que em 1854 publicou seu trabalho intitulado "An 
Investigation of the Laws of Thought". Neste trabalho, Boole desenvolve uma teoria algébrica que tenta 
explicar a lógica dos pensamentos humanos. Seu trabalho foi ignorado pelos matemáticos da época que 
não souberam vislumbrar o que estava por trás de toda aquela teoria. 
 
 Em 1928, o austro-húngaro Julius Edgar Lilienfeld (1881-1963), registra a patente de um dos seus inventos, 
o transistor de efeito de campo FET, porém sua descoberta não foi levada em consideração pelo fato de 
que seu transistor não obteve sucesso experimentalmente. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Em 1936, o engenheiro eletricista americano Claude 
Elwood Shannon sistematizou a teoria de Boole. Ele 
conseguiu mostrar que álgebra de Boole e a aritmética 
binária poderiam ser utilizadas para simplificar arranjos de 
relés eletromecânicos utilizados em circuitos aplicados à 
comunicação telefonônica. Ele também provou que era 
possível utilizar configuração de circuitos com esses relés 
para resolver problemas da álgebra booleana e explorar 
as propriedades das chaves elétricas, para fazer lógica 
booleana, é o conceito básico que rege o funcionamento 
de todos os computadores eletrônicos. 
 
 
 
Claude Shannon 
 
Lilienfeld 
 3
Em 1940, R. Ohi trabalha com um semicondutor 
importante para o desenvolvimentos dos circuitos 
integrados, que é o silício Si, e descobre que realizando 
dopagem com impurezas tipo p e tipo n poderia aumentar 
muito a capacidade de condução desse material. O silício 
dopado é a base para a construção da maioria dos 
transistores que conhecemos hoje em dia. 
 
Em dezembro de 1947, o engenheiro eletricista americano John Bardeen e o físico americano Walter 
Houser Brattain descobrem o efeito transistor bipolar de junção. O transistor bipolar de junção veio substituir 
o triodo, uma válvula eletrônica, descoberta em 1906 por Lee De Forest, que era utilizada nos circuitos 
eletrônicos dessa época para realizar funções de amplificação e chaveamento. Logo depois, entre 1948 e 
1950, o inglês, William B. Schockley, que trabalhava com Bardeen e Bratain nos Laboratórios da Bell, 
desenvolveu a teoria matemática que explicava o funcionamento do transistor bipolar de junção e em 1956, 
os três pesquisadores receberam o prêmio Nobel de Física pela publicação do artigo "Investigations on 
Semiconductors and the Discovery of the Transistor Effect,". 
 
 
 
 
 
 
 
 
 
 
 
Em 1958, o americano J. Kilby que trabalhava na Texas Instruments registra a patente do primeiro circuito 
integrado, utilizando um processo de fabricação ainda rudimentar e com o germânio como elemento 
semicondutor. Ele também foi um dos inventores da calculadora de bolso alguns anos depois. 
 
 
 
 
 
 
 
 
Pastilha de Silício 
Transistor Bipolar de Junção 
 
Bratain, Bardeen e Shockley 
T i Bi l d J ã
 
Primeiro circuito integrado de germânio 
 
J. Kilby 
 4
Entre 1957 e 1958, J. Hoerni, que trabalhava na Fairchild, descobriu que ao aquecer uma lâmina de silício 
na presença de vapor d’agua, crescia sobre a lâmina uma fina camada de óxido de silício que protegia a 
lâmina. Essa camada de óxido poderia ser destruída seletivamente por processo de foto-gravação e nas 
regiões descobertas do silício se implantariam regiões dopadas tipo p e tipo n que permitiriam a fabricação 
de componentes eletrônicos na superfície do silício. Esse foi o primeiro passo para o desenvolvimento de 
circuitos integrados sobre um plano. 
 
 
 
 
 
 
Em 1959, Robert N. Noyce, da Fairchild, inventa o primeiro circuito Integrado em tecnologia planar. O 
princípio de fabricação desenvolvido por ele é utilizado até hoje, com incorporação de forte evolução nas 
técnicas de fabricação. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Em 1960, no Laboratório da Bell, D. Kahng and M. Atalla apresentam o primeiro transistor de efeito de 
campo feito com metal, óxido e silício, o MOSFET (Metal Oxide Semiconductor Field Effect Transistor). No 
ano seguinte, M. Atalla deixa o laboratório da Bell para tornar-se co-fundador da Hewllet & Packard. 
 
 
 
 
 
 
 
 
 
 
Primeiro circuito integrado planar 
 
Robert Noyce 
 
Primeiro MOSFET 
 
Atalla 
 5
 
 
Em 1961, a Fairchild, empresa criada por 
Robert N. Noyce, G. Moore entre outros, lança 
o primeiro circuito integrado. A comercialização 
dos circuitos integrados inicia-se a partir de 
1962. 
Portanto, até os anos de 1960, os circuitos 
lógicos eram construídos com componentes 
discretos como transistores e resistores. Com o 
advento do circuito integrado, foi possível 
implantar certo número de transistores numa 
única pastilha. No início, os circuitos integrados 
possuíam poucos transistores e esses circuitos 
realizavam funções lógicas simples. 
 
Em 1964, a Fairchild lança o primeiro circuito analógicointegrado. O amplificador operacional µA702. Em 
1965 a Fairchild também lança o amplificador operacional µA709, agregando um pouco mais de 
complexidade na tecnologia de fabricação do CI. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Com o desenvolvimento tecnológico, nos anos de 1970 tornou-se possível a implementação de circuitos 
digitais, ainda mais complexos. 
 
Em 1970, a Fairchild, já sem Noyce e Moore, lança a memória estática de 256 bits. Nesse mesmo ano a 
Intel, criada por Noyce, Moore e Grove, em 1968, lança a memória dinâmica de 1024 bits. 
 
 
 
Primeiro circuito integrado 
 
Primeiro CI analógico µA702 Amplificador operacional µA709 
 6
 
 
 
 
 
 
 
 
 
 
 
 
 
Em 1971, a Intel lança o microcomputador 4004. Embora esse primeiro microprocessador tivesse baixa 
capacidade de processamento, foi por meio da utilização dele que se pode desenvolver os primeiros 
microcomputadores pessoais, e por conseqüência, a revolução que se observa hoje no processamento das 
informações. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Nos anos de 1990 já era possível fabricar CIs com até 100 milhões de transistores uma única pastilha de 
silício. Isto foi possível devido à invenção dos transistores com comprimento de canal cada vez mais curtos, 
e, portanto, ocupando menos espaço na pastilha de silício e, por ser menores, propagando o sinal elétrico 
com mais rapidez e confiabilidade. 
 
No início dos anos de 1970 os CIs eram chips padrões, ou seja, continham até 100 transistores e 
executavam funções lógicas simples. Para construir um determinado circuito lógico, o projetista escolhia os 
 
Fairchild- Memória estática 256 bits
 
Intel - Memória dinâmica 1024 bits 
 
Intel – Microprocessador 4004 
 7
chips, definia como eles se conectariam para executar as funções lógicas de seu projeto. Essa técnica 
tornou-se ineficiente à medida que a tecnologia avançou e os motivos são fáceis de deduzir: 
 
a) Chips eram de baixa funcionalidade (poucos transistores) ocupavam muito espaço na placa de 
circuito impresso, o que impedia a miniaturização do produto final, e eram muito lentos devido ao 
tamanho dos transistores integrados da época. 
b) A funcionalidade de cada chip padrão era fixa e não podia ser modificada, o que dificultava a fase de 
projeto pois, qualquer alteração no circuito que se fizesse necessária implicaria na substituição de 
um conjunto de chips por outros. 
 
Atualmente é possível fabricar CIs que contém circuitos internos que podem ser programados pelo projetista 
para implementar uma grande quantidade de diferentes circuitos lógicos. Esses chips têm uma estrutura 
geral e incluem uma coleção de chaves programáveis que permitem a configuração interna de seus circuitos 
de muitas formas diferentes. Tais chips são chamados de PLDs (dispositivos de lógica programável). Muitos 
deles permitem a reprogramação por um número muito grande de vezes. Nesta categoria estão as FPGA’s 
(Field Programmable Gate Array) e as CPLD’s (Complex Programmable Logic Device) que contém mais de 
100 milhões de transistores. 
 
Hoje é possível, em nossa própria casa, desenvolver nosso próprio circuito digital integrado. Basta para isso, 
possuir um computador, software adequado e chips como a FPGA (Field Programmable Gate Array). É 
possível também desenvolver sistemas digitais com chips microprocessados, tais como microcontrolador ou 
DSP(Digital Signal Processor). 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Para assimilar mudanças tão radicais de desenvolvimento tecnológico é fundamental adquirir os 
conhecimentos básicos da eletrônica digital sem os quais nenhuma tecnologia pode ser absorvida. Sendo 
 
Estrutura interna de uma FPGA. 
©Xilinx Inc. 
 
CPLD – circuito interno 
 
 8
assim, nosso curso se propõe a fornecer esses conhecimentos básicos e introduzir o aluno às técnicas de 
projeto de circuito digital. 
 
 
 
 9
UNIDADE I - SISTEMAS NUMÉRICOS E CÓDIGOS 
 
1.1 INTRODUÇÃO 
 
O mundo físico fornece informações que, na sua grande maioria, tem um comportamento contínuo ao longo 
do tempo; (temperatura, pressão, velocidade de fluídos, etc). Os circuitos digitais, por sua vez, possuem a 
característica de operarem por estados discretos, (ligado ou desligado). Para que as informações do mundo 
físico possam ser processadas pelos circuitos digitais, torna-se necessária uma adaptação dessas informações. 
Circuitos especiais conhecidos como conversores analógico/digital e digital/analógico providenciam a 
transformação das informações de características contínuas no tempo, ou seja, analógico, em informações que 
possam ser processadas dentro dos circuitos digitais, transformando-as em uma linguagem de "0’s" e "1’s". 
Neste capítulo introduziremos o conceito de sistemas numéricos dando ênfase ao sistema binário, que é a base 
de representação dos circuitos digitais, suas operações e alguns códigos para processamento dessas 
informações. 
 
 
1.2 SISTEMAS NUMÉRICOS 
 
É uma linguagem de símbolos consistindo de um conjunto ordenado de dígitos com regras definidas para 
adição, multiplicação e outras operações matemáticas. A base ou raiz desse sistema numérico especifica o 
número de dígitos do sistema e seu ordenamento. Os sistemas numéricos permitem que um número possua 
uma parte inteira e uma parte fracionária separada por um "ponto base". 
 
(N)R = (parte inteira , parte fracionária)R 
 
 
1.2.1 REPRESENTAÇÃO DE UM NÚMERO 
 
a) Justaposicional → Dígitos são posicionados lado à lado 
 
Exemplo: (N) R = (an-1, an-2, ..., a1, a0.a-1,a-2,...,a-m) R 
 
(N) R = (1011,1001) 2 
 
R → base numérica 
n → número de dígitos da parte inteira 
m → número de dígitos da parte fracionária 
a → dígitos an-1 mais significativo (MSB) 
 a-m menos significativo (LSB) 
 
 
0 ≤ a ≤ (R - 1) 
 
 
b) Notação Polinomial → Dígitos representados na forma de um polinômio 
 
 n-1 
(N) R = Σ ajRj = an-1R n-1 + an-2 R n-2 + ...+ a1R 1 + a0R 0 + a -1R –1 + a -2R –2 +...+ a--mR -m 
 j = -m 
 
 
(N) R = ( 11,101) 2 = 1 x 2 1 + 1 x 2 0 + 1 x 2 -1 + 0 x 2 -2 + 1 x 2 -3 
 
 
 10
 
1.2.2 OPERAÇÕES ARITMÉTICAS BÁSICAS COM SISTEMA BINÁRIO 
 
a) Soma 1010 + 
 1100 
 10110 
 
b) Subtração 10101 - 
01011 
 01010 
 
c) Multiplicação 1010 x 
 101 
 1010 
 1010 - 
 110010 
 
 
d) Divisão 1010' 1'0' ⏐ 111 
 111 110 
 0011 1 
 11 1 
 00 0 0 
 0 0 0 
 0 
 
 
1.3 CONVERSÃO DE BASES 
 
a) Base binária para base decimal 
 
Aplica-se a regra do polimônio 
 
(1101,101) 2 → ( ? ) 10 
 
(1 x 2 3 + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 + 1 x 2 -1 + 0 x 2 -2 + 1 x 2 -3) 10 
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ 
 ( 8 + 4 + 0 + 1 + 0.5 + 0 + 0,125 ) 10 = (13,625) 10 
 
 
 
b) Base decimal para base binária 
 
• Parte inteira do número em decimal → Divide-se sucessivamente, o número escrito na base 
decimal, pela base 2 até que o quociente seja igual a zero. Tomam-se os restos sucessivos. O bit 
MSB é o último resto obtido da divisão sucessiva e o bit LSB é o primeiro resto. 
 
• Parte fracionária do número decimal → Multiplica-se, a parte fracionária do número escrito na 
base 10, sucessivamente pela base 2. A parte inteira resultante de cada multiplicação é o bit 
procurado da conversão. O MSB fracionário é a primeira parte inteira obtidada multiplicação e 
o LSB fracionário é a última parte inteira. A multiplicação acontece sucessivamente até que o 
resto torne-se zero. Se isso não ocorrer é porque o resultado da conversão fracionária não é 
exata. 
 
 
 11
(35,25) 10 → ( ? ) 2 
 
Parte inteira Parte fracionária 
 
 35 ⏐ 2 0,25 x 
 LSB → 1 17 ⏐ 2 2 
 1 8 ⏐ 2 MSB → 0,50 x 
 0 4 ⏐ 2 2 
 0 2 ⏐ 2 LSB → 1,00 
 0 1 ⏐ 2 
 MSB → 1 0 
 
 (35,25) 10 → ( 100011,01 ) 2 
 
 
 
c) Base A para base binária e vice-versa 
 
• Para tratar esse tipo de conversão utilizaremos a base 10 como base intermediária, convertendo o 
número na base A para a base 10 e posteriormente para a base 2 e vice-versa. Exceção se fará 
para as base múltiplas de 2 
 
 
Digitos base 8 = 23 Correspondência base 2 
0 000 
1 001 
2 010 
3 011 
4 100 
5 101 
6 110 
7 111 
 
 
 
Exemplo 1: Base 2 para base 8: Toma-se, como referência, o ponto base e separa-se o número de 3 em 3 
bits em cada sentido (direita e esquerda). Depois, transforma-se o conjunto de 3 bits em um dos dígitos da 
base 8, conforme tabela acima. 
 
( 10111,1101 ) 2 → ( ? ) 8 = ( 010 111 , 110 100 ) 2 
 ↓ ↓ ↓ ↓ 
 ( 2 7 , 6 4 )8 
 
 
 
Exemplo 2: Base 8 para base 2: É ainda mais simples pois cada dígito da base 8 corresponde a 3 dígitos da 
base 2 conforme a tabela acima. Os pontos base são coincidentes. 
 
 
( 723, 54 )8 → ( ? ) 2 = ( 7 2 3 , 5 4 ) 8 
 ↓ ↓ ↓ ↓ ↓ 
 ( 111 010 011 , 101 100 ) 2 
 
 
 
 12
 
 
 
 
Digitos base 16 = 24 
 
Correspondência base 2 
0 0000 
1 0001 
2 0010 
3 0011 
4 0100 
5 0101 
6 0110 
7 0111 
8 1000 
9 1001 
A 1010 
B 1011 
C 1100 
D 1101 
E 1110 
F 1111 
 
 
Exemplo 3: Base 2 para base 16: Toma-se, como referência, o ponto base e separa-se o número de 4 em 4 
bits em cada sentido (direita e esquerda). Depois, transforma-se o conjunto de 4 bits em um dos dígitos da 
base 16, conforme tabela acima. 
 
 
( 101011101,101101111 ) 2 → ( ? ) 16 = ( 0001 0101 1101 , 1011 0111 1000 ) 2 
 ↓ ↓ ↓ ↓ ↓ ↓ 
 ( 1 5 D , B 7 8 )16 
 
Exemplo 4: Base 16 para base 2: Cada dígito da base 16 corresponde a 4 dígitos da base 2 conforme a 
tabela acima. Os pontos base são coincidentes 
 
( A E F , C 5 )16 → ( ? ) 2 = ( A E F , C 5 ) 16 
 ↓ ↓ ↓ ↓ ↓ 
 ( 1010 1110 1111 , 1100 0101 ) 2 
 
 
1.4 COMPLEMENTO DE NÚMEROS (Complemento da base R) 
 
 
Na matemática, a técnica do complemento de um número permite realizar operações de subtração através de 
operações de adição. Esta é a técnica utilizada pelos computadores digitais. 
 
Por definição 
 
(N)R,C = R n - N se N ≠ 0 e 0 se N = 0 
 
 n → número de dígitos da parte inteira do número N 
 R → base do número 
 
 
 
 13
Exemplos: 
 
a) ( 147 ) 10,c = 103 - 147 = 853 
 
b) ( 0,53 ) 10,c = 1 - 0,53 = 0,47 
 
c) ( 147, 53 ) 10,c = 852,47 
 
d) ( 1010 ) 2,c = 24 - 1010 = 10000 - 1010 = 00110 
 
e) ( 0,101 ) 2,c = 1 - 0,101 = 0,011 
 
f) ( 1010,101 ) 2,c = 101,011 
 
 
 
1.4.1 COMPLEMENTO BINÁRIO 
 
Para encontrar o complemento de 2 de um número binário aplica-se a seguinte técnica: 
 
• Inverta cada dígito do número, ( complemento lógico) 
• Some 1 ao bit menos significativo 
 
 
Exemplo: ( 001011,110 ) 2,c = 110100,001 + 
 1 
 110100,010 
 
 
1.4.2 SUBTRAÇÃO COM COMPLEMENTO DA BASE 2 
 
A subtração entre dois números positivos (A - B), na base 2, segue a seguinte técnica: 
 
• Some A ao complemento de 2 de B 
 
• Verifique, no resultado, se houve o “vai 1” (overflow) 
 
a) Se houver overflow, descarte-o. O restante é o resultado esperado. 
b) Se não houver overflow, o resultado é negativo. Então tome o complemento de 2 do 
resultado e adicione o sinal negativo ao complemento. 
 
Exemplo 1: (1010 - 0111)2 1010 + 
 1001 (complemento de 2 de 0111) 
 overflow → 1 0011 
 ↓ 
 resultado 
 
 
Exemplo 2: (0111 - 1010)2 0111 + 
 0110 (complemento de 2 de 1010) 
 sem overflow → 1101 
 sinal negativo → - 0011 (complemento de 2 de 1101) 
 ↓ 
 resultado 
 
 
 14
 
Exemplo 3: (1010,101000 - 0111,01)2 1010,101000 + 
 1000,110000 (complemento de 2 de B) 
 overflow → 1 0011,011000 
 ↓ 
 resultado 
 
 
 
1.5 COMPLEMENTO DE NÚMEROS (Complemento da base R-1) 
 
Por definição 
 
(N)R-1,C = R n - R -m - N 
 
 n → número de dígitos da parte inteira do número N 
 m → número de dígitos da parte fracionária do número N 
 R → base do número 
Exemplo: 
 
a) ( 147 ) 9,c = 103 - 1 - 147 = 852 
 
b) ( 0,53 ) 9,c = 1 - 0,01 - 0,53 = 0,46 
 
c) ( 147, 53 ) 9,c = 852,46 
 
d) ( 1010 ) 1,c = 10000 - 1 - 1010 = 1111 - 1010 = 0101 
 
e) ( 0,101 ) 1,c = 1 - 0,001 - 0,101 = 0,111 - 0,101 = 0,010 
 
f) ( 1010,101 ) 1,c = 10000,000 - 0,001 - 1010,101 = 1111,111 - 1010,101 = 0101,010 
 
 
1.5.1 COMPLEMENTO DE UM DE UM NÚMERO EM BINÁRIO 
 
Para encontrar o complemento de 1 de um número binário aplica-se a seguinte técnica: 
 
• Inverta cada dígito do número ( complemento lógico) 
 
Exemplo: ( 001011,110 ) 1,c = 110100,001 
 
 
 
1.5.2 SUBTRAÇÃO EM BINÁRIO COM COMPLEMENTO DE 1. 
 
 
A subtração entre dois números positivos (A - B) na base 2, com complemento de um, segue a seguinte 
técnica: 
 
• Some A ao complemento de um de B 
 
• Verifique, no resultado, se houve o “vai 1” (overflow) 
 
a) Se houver overflow, some um ao bit menos significativo. Este então é o resultado esperado. 
 
 15
b) Se não houver overflow, o resultado é negativo. Então tome o complemento de 1 do 
resultado e adicione o sinal negativo. 
 
Exemplo 1: (1010 - 0111)2 1010 + 
 1000 (complemento de 1 de 0111) 
 overflow → 1 0010 
 1 
 0011 
 ↓ 
 resultado 
 
 
Exemplo 2: (0111 - 1010)2 0111 + 
 0101 (complemento de 1 de 1010) 
 sem overflow → 1100 
 sinal negativo → - 0011 (complemento de 1 de 1100) 
 ↓ 
 resultado 
 
 
Exemplo 3: (1010,101000 - 0111,01)2 1010,101000 + 
 1000,101111 (complemento de 1 de B) 
 overflow → 1 0011,010111 
 1 
 0011,011000 
 ↓ 
 resultado 
 
 
1.6 CÓDIGOS PARA REPRESENTAÇÃO DA INFORMAÇÃO 
 
Os códigos são formatos internos de representação da informação no computador.Muitas vezes, deseja-se armazenar no computador informações como: nome, endereço, CPF, etc, mas o 
computador só consegue armazenar "0s" e "1s". Daí a necessidade de criar alguns tipos de códigos para 
armazenamento de símbolos diferentes de números. 
Internamente, o computador armazena esses "0’s" e "1’s" em grupos de bits. Costuma-se dizer em linguagem 
computacional que: 
 
• Bit → um dígito binário 
• Nibble → um grupo de 4 bits ou 1/2 byte 
• Byte → usualmente um grupo de 8 bits 
• Palavra → um grupo de bytes 
• ½ Palavra → metade de bytes de uma palavra 
• Palavra dupla → dobro de bytes de uma palavra 
 
Existem muitos tipos de códigos, cada qual com suas vantagens e características. Eles são utilizados com fins 
de padronização e também por questões de segurança. Alguns tipos de códigos são: 
 
• Código binário 
• Código binário codificado em decimal 
• Código reflexivo 
• Código de unidade de distância 
• Código detector de erros 
 
Vejamos então alguns desses códigos: 
 
 16
1.6.1 CÓDIGO BCD (DECIMAL CODIFICADO EM BINÁRIO) 
 
Este sistema utiliza 4 bits para codificar um dígito decimal. O mais comum deles é o NBCD (Natural BCD) 
ou 8421 BCD. É utilizado para dar saída em displays numéricos, como daqueles encontrados em voltímetros 
digitais, relógios digitais, etc. 
 
Dígito 0 1 2 3 4 5 6 7 8 9 
NBCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 
 
 
1.6.2. CÓDIGO ASCII (American Standard Code for Information Interchange) 
 
O código ASCII é um código de 7 bits, largamente utilizado na representação de caracteres alfanuméricos e 
símbolos. É o código utilizado para representar os caracteres do teclado do computador. Por ser um código de 
7 bits, pode representar até 27 símbolos diferentes. 
 
 
MSB 000 001 010 011 100 101 110 111 
LSB 
0000 NUL DLE SP 0 @ P p 
0001 SOH DC1 ! 1 A Q a q 
0010 STX DC2 " 2 B R b r 
0011 ETX DC3 # 3 C S c s 
0100 EOT DC4 $ 4 D T d t 
0101 ENQ NAK % 5 E U e u 
0110 ACK SYN & 6 F V f v 
0111 BEL ETB ' 7 G W g w 
1000 BS CAN ( 8 H X h x 
1001 HT EM ) 9 I Y i y 
1010 LF SUB * : J Z j z 
1011 VT ESC + ; K [ k { 
1100 FF FS , < L \ l | 
1101 CR GS - = M ] m } 
1110 SO RS . > N ↑ n ~ 
1111 SI US / ? O _ o DEL 
 
ACK Acknowledge FS Form separator 
BEL Bell GS Group separation 
BS Back space HT Horizontal tab 
CAN Cancel NAK Negative acknowledge 
CR Carriage return NUL Null 
DC1 - DC4 Direct control RS Record separator 
DEL Delete idle SI Shift in 
DLE Data link escape SO Shift out 
EM End of medium SOH Start of heading 
ENQ Enquiry SP Space 
EOT End of transmission STX Start text 
ESC Escape SUB Substitute 
ETB End of transmission back SYN Synchronous idle 
ETX End text US Unit separator 
FF Form feed VT Vertical tab 
 
 
 17
1.7 ÁLGEBRA DE BOOLE 
 
A álgebra de Boole reune um conjunto de regras que obedecem a determinados postulados, conhecidos como 
postulados de Huntington, e que são aplicáveis a um conjunto de elementos. 
 
POSTULADOS DE HUNTINGTON 
 
1. Um conjunto de elementos S é fechado com respeito a um operador se, para cada par de 
elementos de S, o operador especifica um único resultado que também pertence a S. 
 
2. Deve existir um elemento 0 em S tal que para cada A em S, A + 0 = A 
 
3. Deve existir um elemento 1 em S tal que para cada A em S, A . 1 = A 
 
4. A + B = B + A 
 
5. A . B = B . A 
 
6. A + ( B . C ) = ( A + B ) . ( A + C ) 
 
7. A . ( B + C ) = ( A . B ) + ( A . C ) 
 
8. Para cada elemento de S, existe um elemento A tal que A .⎯A = 0 e A +⎯A = 1 
 
9. Existem pelo menos dois elementos A e B, em S, tal que A não é equivalente a B 
 
Na álgebra de Boole, o conjunto de elementos definidos é: 
 
S = { 0 , 1 } 
 
E as regras prescritas para os operadores ( . + e inversão) são: 
 
 
AND OR INVERSÃO 
 ' 
. 0 1 A B A.B + 0 1 A B A+B A ⎯A 
0 0 0 0 0 0 0 0 1 0 0 0 0 1 
1 0 1 0 1 0 1 1 1 0 1 1 1 0 
 1 0 0 1 0 1 
 1 1 1 1 1 1 
 
 
Uma vez que a álgebra de Boole atende aos postulados, podemos deduzir então algumas identidades: 
 
1. A . 0 = 0 e A + 1 = 1 Absorção 
2. A . 1 = A e A + 0 = A Neutralidade 
3. A . A = A e A + A = A Dualidade 
4. A . ⎯A = 0 e A + ⎯A = 1 
5. AA = 
 
 
 
 
 
 
 
 18
A partir das identidades acima, desenvolveu-se os seguintes teoremas que podem ser provados: 
 
1. A + AB = A Absorção 
2. A +⎯AB = A + B 
3. AB + A⎯B = A Adjacência lógica 
4. AC + ⎯A B C = AC + BC 
5. AB + AC + ⎯B C = AB +⎯BC 
6. A . B . C . ... = ⎯A +⎯B +⎯C + .... DeMorgan 
7. A + B + C + ... = ⎯A . ⎯B . ⎯C . ... DeMorgan 
 
 
PROVA DOS TEOREMAS: 
 
1. A + AB = A ( 1 + B ) = A . 1 = A 
 
2. A +⎯AB = A . ( B +⎯B ) + ⎯A B = AB + A⎯B +⎯AB = AB + AB + A⎯B +⎯AB = 
 = AB + A⎯B + AB +⎯AB = A (B +⎯B ) + B ( A +⎯A ) = A + B 
 
3. AB + A⎯B = A ( B +⎯B ) = A 
 
4. AC + ⎯A B C = C (A +⎯AB ) = A C + C B 
 
5. AB + AC + ⎯B C = AB ( C +⎯C ) + AC ( B +⎯B ) + ⎯B C ( A +⎯A ) = 
= AB C + AB⎯C + ABC + A⎯BC + A⎯B C +⎯ABC = 
= AB C + AB⎯C + A⎯BC +⎯ABC = AB (C +⎯C ) + ⎯BC ( A +⎯A) 
= AB +⎯BC 
 " " 
6. A . B . C . ... = ⎯A +⎯B +⎯C + ... De Morgan Usando a tabela verdade 
 
 ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
A B C A . B A . B . C A B C A + B A . B . C A + B + C 
0 0 0 0 0 1 1 1 1 1 1 
0 0 1 0 0 1 1 0 1 1 1 
0 1 0 0 0 1 0 1 1 1 1 
0 1 1 0 0 1 0 0 1 1 1 
1 0 0 0 0 0 1 1 1 1 1 
1 0 1 0 0 0 1 0 1 1 1 
1 1 0 1 0 0 0 1 0 1 1 
1 1 1 1 1 0 0 0 0 0 0 
 " " 
7. A + B + C + ... = ⎯A . ⎯B . ⎯C . ... DeMorgan Usando a tabela verdade 
 
 ' ' ' ' ' ' ' ' ' ' '' ' ' ' ' ' 
A B C A + B A + B + C A B C A . B A . B . C A + B + C 
0 0 0 0 0 1 1 1 1 1 1 
0 0 1 0 1 1 1 0 1 0 0 
0 1 0 1 1 1 0 1 0 0 0 
0 1 1 1 1 1 0 0 0 0 0 
1 0 0 1 1 0 1 1 0 0 0 
1 0 1 1 1 0 1 0 0 0 0 
1 1 0 1 1 0 0 1 0 0 0 
1 1 1 1 1 0 0 0 0 0 0 
 
 
 
 19
1.8 GATES LÓGICOS 
 
As operações definidas por Boole, em sua álgebra, foram simbolizadas pela sua adaptação aos circuitos 
eletrônicos chaveados para os seguintes símbolos lógicos e considerando: 
Chave aberta → nível lógico 0 
Chave fechada → nível lógico 1 
 
OPERAÇÃO ( - ) → Gate INVERSOR 
 
 
 ' ' 
A A 
0 1 
1 0 
 
 
 
 
 
 
OPERAÇÃO ( . ) → Gate AND 
 
 
 
 
 
 
 
OPERAÇÃO ( + ) → Gate OR 
 
A B A + B 
0 0 0 
0 1 1 
1 0 1 
1 1 1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A B A . B 
0 0 0 
0 1 0 
1 0 0 
1 1 1 
A L1
Vcc
A L1
Vcc
 
BAVcc
L1
 
L1
A
B
Vcc
 
 20
1.9 OUTROS GATES 
 
A partir desses três operadores, gerou-se mais dois gates resultantes do processo de inversão dos gates AND e 
OR. São eles, então, os gates NAND e NOR. 
 
Gate NAND 
 
 ' ' 
A B A . B 
0 0 1 
0 1 1 
1 0 1 
1 1 0 
 
 
 
Gate NOR 
 
 ' ' 
A B A + B 
0 0 1 
0 1 0 
1 0 0 
1 1 0 
 
 
 
Ainda mais duas expressões booleanas, resultantes da operação entre os gates básicos, também são 
consideradas como gates. São conhecidos como OR-Exclusivo e NOR-Exclusivo. 
 
 
OR-Exclusivo ou (EX-OR) NOR-Exclusivo ou (EX-NOR) 
 ' ' ' ' ' ' ' 
A B A.B + A.B A B A.B + A.B 
0 0 0 0 0 1 
0 1 1 0 1 0 
1 0 1 1 0 0 
1 1 0 1 1 1 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 21
1.10 PORTAS LÓGICAS BÁSICAS COM PORTAS NAND E PORTAS NOR 
 
 
Em circuitos integrados programáveis, como as FPGAs, todas as funções lógicas são realizadas com um único 
tipo de portalógica. Em geral a porta NAND é escolhida para tal função. Observe abaixo que tanto a operação 
inversão quanto a operação AND e a operação OR, da álgebra de Boole, podem ser implementadas 
exclusivamente com portas NAND ou portas NOR. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Portas NAND Portas NOR 
 
 
 
 
1.11 EQUIVALÊNCIA DE FUNÇÕES: Aplicação do teorema de DeMorgan 
 
Observe os dois circuitos abaixo: 
Os circuitos são constituídos apenas de portas NANDs. 
 
 
 
CDABCDABCD.ABX +=+== 
 
 
A substituição de última porta Nand pelo equivalente, obtido da aplicação do teorema de DeMorgan, permite 
a melhor visualização da função que o circuito realiza, visto que se agrupam, portas ANDs, porta inversoras e 
depois porta OR. Em adição, permite implemantar expressões do tipo AND/OR mais facilmente. 
 
 
 
 
 
⎯A 
A+B
B
A
B
A
A
⎯B 
⎯A 
BA + 
AB
 
⎯A A 
B 
A 
B 
A 
AB
⎯B 
⎯A 
AB
A+B
← Inversão → 
 
 
 
 
← AND → 
 
 
 
 
← OR → 
 
 22
 
1.12 SIMPLIFICAÇÕES DE FUNÇÕES BOOLEANAS 
 
Exemplo 1: Dado o circuito abaixo, encontrar uma expressão mais simples e sintetizar o circuito simplificado. 
 
 
 
X = A + ( B C ( A + B ) ) = A + ( ABC + BBC ) → postulado 7 
X = A + ( ABC + BBC ) → identidade 3 
X = A + ABC + BC → teorema 1 
X = A + BC 
 
 
 
Exemplo 2: Dado o circuito abaixo, encontrar uma expressão mais simples e sintetizar o circuito simplificado 
 
 
X = A + ABC + ⎯AC → teorema 1 
X = A +⎯AC → teorema 2 
X = A + C 
 
 
 
 
 
 
 
 
 
23
UNIDADE II - ANÁLISE E SÍNTESE DE CIRCUITOS COMBINACIONAIS 
2.1 INTRODUÇÃO 
Neste capítulo serão apresentadas algumas técnicas de minimização de funções booleanas. A seguir 
utilizaremos essas técnicas nos projetos de circuitos combinacionais dos mais diversos tipos e com larga 
aplicação prática. Essas técnicas de análise e síntese de circuitos também serão estendidas aos circuitos 
seqüenciais. 
2.2 MINIMIZAÇÃO DE FUNÇÕES BOOLEANAS 
O segredo da minimização de funções booleanas está na utilização dos teoremas previamente introduzidos . 
Os de maior interesse são: 
 
Teorema 1: 1a) A + AB = A 1b) A(A + B) = A (absorção) 
 
Teorema 2: 2a) A + ⎯AB = A + B 2b) A(⎯A + B) = A B 
 
Teorema 3: 3a) AB + Α⎯B = A 3b) (A+ B) . (A +⎯B) = A (adjacência lógica) 
 
Os teoremas 1 e 2 têm especial relevância quando aplicados a expressões na forma padrão1 , enquanto o 
teorema 3 é relevante na simplificação de expressões na forma canônica. 
 
Exemplo 1: 
 
X = CD + A⎯BC + AB⎯C + BCD → Teorema 1 → (termos 1 e 4) 
 
X = CD + A⎯BC + AB⎯C = CD + A (B xor C) 
 
Exemplo 2: 
 
Y = AB + BEF + ⎯ACD + ⎯BCD 
 ' ' 
Y = AB + BEF + CD(⎯A +⎯B) por DeMorgan → (⎯A +⎯B) = AB 
 ' ' 
Y = AB + BEF + CDAB → teorema 2 → (termos 1 e 3) 
 
Y = AB + BEF + CD 
 
Exemplo 3: 
 
Z = ⎯A⎯B⎯C + ⎯A⎯BC + AB⎯C + A⎯B⎯C → teorema 3 → (termos 1 com 2; 3 com 4) 
 
Z = ⎯A⎯B + A⎯C 
 
A aplicação do teorema 3 é praticamente automática em expressões na forma canônica, entretanto deve-se 
aplicá-lo com bastante cautela. Imagine que os termos da expressão anterior estivessem arrumados da 
seguinte maneira: 
 
Z = ⎯A⎯B⎯C + A⎯B⎯C + AB⎯C + ⎯A⎯BC 
 
Se, a primeira vista, você reconhecesse que os termos (⎯A⎯B⎯C) e ( A⎯B⎯C ) eram adjacentes e agrupasse-
os logo, a expressão resultante seria: 
 
Z = ⎯B⎯C + AB⎯C + ⎯A⎯BC 
Z = ⎯C( ⎯B + AB) + ⎯A⎯BC → aplicando o teorema 2 
 
1 Quando a expressão booleana possui pelo menos um dos termos que não é mínimo 
 
 
 
24
Z = ⎯B⎯C + A⎯C + ⎯A⎯BC 
Z = ⎯B(⎯C + ⎯AC) + A⎯C → aplicando o teorema 2 
Z = ⎯B⎯C + ⎯A⎯B + A⎯C 
 
Que não é a mais simples como vimos anteriormente! O termo ⎯B⎯C, na expressão, é redundante. 
 
Observe que os termos (⎯A⎯BC ) e ( AB⎯C ) só se agruparão uma vez enquanto os termos (⎯A⎯B⎯C ) e 
( A⎯B⎯C ) possuem duas possibilidades de agrupamento. Para obter uma melhor eficiência do teorema 
precisamos agrupar primeiro os termos que só podem ser agrupados de uma única maneira. 
 
Deduz-se então que: 
1. Termos que não se agruparão com outros termos devem ser extraídos primeiro. 
2. Termos que se agruparão com apenas um outro termo devem ser extraídos em seguida. 
3. Termos que se agruparão com outros termos de mais que uma forma deverão ser analisados com 
mais atenção para prevenir redundâncias. 
2.3 MAPAS DE KARNAUGH 
M. Karnaugh, em seu artigo, "The Map Method for Synthesis of Combinational Logic Circuits", de 1953, 
ordenou e dispôs os termos mínimos de uma função booleana num padrão geométrico tal que a aplicação do 
teorema da adjacência lógica tornou-se imediata. 
 
Considere as figuras e as tabelas de adjacências abaixo: 
 
MAPAS DE KARNAUGH 4 variáveis 
 
2 variáveis 3 variáveis CD \ AB 00 01 11 10
 00 0 4 12 8 
 B \ A 0 1 C \ AB 00 01 11 10 01 1 5 13 9 
0 0 2 0 0 2 6 4 11 3 7 15 11 
1 1 3 1 1 3 7 5 10 2 6 14 10 
A → MSB A → MSB A → MSB 
B → LSB C → LSB D → LSB 
 
2 Variáveis 3 Variáveis 4 Variáveis 
Termo mínimo Adjacência Termo mínimo Adjacência Termo mínimo Adjacência 
0 1,2 0 1,2,4 0 1,2,4,8 
1 0,3 1 0,3,5 1 0,3,5,9 
2 0,3 2 0,3,6 2 0,3,6,10 
3 1,2 3 1,2,7 3 1,2,7,11 
 4 0,5,6 4 0,5,6,12 
 5 1,4,7 5 1,4,7,13 
 6 2,4,7 6 2,4,7,14 
 7 3,5,6 7 3,5,6,15 
 8 0,9,10,12 
 9 1,8,11,13 
 10 2,8,11,14 
 11 3,9,10,15 
 12 4,8,13,14 
 13 5,9,12,15 
 14 6,10,12,15 
 15 7,11,13,14 
 
Para cada um dos mapas acima, Karnaugh estabeleceu uma tabela de adjacência relacionada a cada termo 
mínimo da expressão booleana na forma canônica. As tabelas acima mostram essa correspondência em que, 
cada termo adjacente é calculado a partir do termo mínimo de referência (M) pela seguinte expressão: 
 
 
 
 
 
 
25
 M/(2(i-1) ) 
Si = M + [2 (i-1)][(-1) ] 
 
 
 
2.3.1 PLOTAGEM DO MAPA DE KARNAUGH 
O mapa de Karnaugh pode ser construído a partir da tabela verdade ou a partir da forma canônica de uma 
função booleana, conforme mostrado abaixo: 
 
 
2 Variáveis 3 Variáveis 4 Variáveis 
AB X ABC Y ABCD Z 
00 1 000 0 0000 1 
01 0 001 1 0001 1 
10 1 010 1 0010 0 
11 0 011 1 0011 1 
 100 0 0100 1 
 101 1 0101 0 X = ∑ 0,2 
 110 1 0110 1 
 111 0 0111 1 
 1000 1 
 1001 0 
 
Y = ∑ 1,2,3,5,6 
 1010 1 
 1011 1 
 1100 1 
 1101 1 
 1110 0 
 1111 1 
 
 
 
Z = ∑0,1,3,4,6,7,8,10,11,12,13,15 
 
 
MAPAS DE KARNAUGH 4 variáveis 
 
2 variáveis 3 variáveis CD \ AB 00 01 11 10
 00 1 1 1 1 
 B \ A 0 1 C \ AB 00 01 11 10 01 1 0 1 0 
0 1 1 0 0 1 1 0 11 1 1 1 1 
1 0 0 1 1 1 0 1 10 0 1 0 1 
 
 
2.3.2 IDENTIFICANDO AS REGIÕES NO MAPA DE KARNAUGH 
 
 
 ⎯A em comum ⎯B em comum 
 A em comum B em comum 
 
 
 
 
 
 
 
 
 
 
 
M = termo mínimo de referência 
Si = termos mínimos adjacentes 
i = 1, 2, 3, ..., n onde: n = no de variáveis 
M/2(i-1) é definida como divisão inteira 
B \ A 0 1 
0 ⎯A⎯B A⎯B 
1 ⎯AB AB 
B \ A 0 1 
 
1 
B \ A 0 1 
0 
1 
 C \ AB 00 01 11 10 
 0 
 1 
 
C \ AB 00 01 11 10 
0 
1 
 
C\ AB 00 01 11 10
0 ⎯A⎯B⎯C ⎯AB⎯C AB⎯C A⎯B⎯C 
1 ⎯A⎯BC ⎯ABC ABC A⎯BC 
C \ AB 00 01 11 10 
0 
1 
 
⎯A em comum 
 A em comum 
 ⎯B em comum 
 B em comum 
⎯B em comum 
 B em comum 
 
 
 
26
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2.3.3 LENDO O MAPA DE KARNAUGH 
Para realizar a leitura correta da expressão minimizada, através do mapa de Karnaugh, procede-se da seguinte 
maneira. Inicialmente consideraremos como entradas no mapa apenas os 1’s da função booleana de cada 
célula. Agrupando essas células, segundo as regras abaixo descritas, obteremos a função booleana na forma 
de soma de produtos. 
 
a) Pesquise, circule e extraia do mapa aquelas entradas isoladas (ilhas) 
b) Procure, circule e extraia aquelas entradas que só formarão par com apenas uma outra entrada. 
c) Procure no mapa aquelas entradas, ainda não foram cobertas, e que formam par com mais de 
uma entrada, mas não podem formar um grupo maior. Aquelas entradas que formarão grupos 
com entradas ainda não cobertas deverão ser extraídas em primeiro lugar. Depois extraia aquelas 
entradas que formarão pares com entradas já cobertas. 
d) Procure, circule e extraia aquelas entradas, não cobertas, que formarão quadras de uma única 
maneira com outras 3 entradas ainda não cobertas mas não formam grupos maiores. Depois 
pesquise, circule e extraia entradas, não cobertas, que formarão quadras de uma única maneira 
com entradas já cobertas. 
e) Procure aquelas entradas que formarão quadras, de mais de uma maneira, mas não formarão 
grupos maiores. Estude-as e agrupe de forma idêntica as realizadas no passo c mas, nesse caso, 
procure por quadras. 
f) Continue pesquisando seu mapa de forma similar aos passos de b até e, procurando agora grupos 
de 8, 16, etc até que todas as entradas estejam agrupadas. 
g) Revise sua pesquisa para verificar se não houve algum erro. 
 
 
Exemplos: 
 
C \ AB 00 01 11 10 
0 1 1 0 0 
1 0 0 0 1 
 
 
1 ilha (a) 2 pares isolados (b) 
1 par isolado (b) 2 pares opcionais (c) 
 
f(A,B,C) = A⎯BC + ⎯A⎯C g(A,B,C) = ⎯BC + B⎯C +⎯AC ou 
 g(A,B,C) = ⎯BC + B⎯C +⎯AB 
 
 
 
 
C \ AB 00 01 11 10 
0 0 1 1 0 
1 1 1 0 1 
 
CD \ AB 00 01 11 10 
00 
01 
11 
10 
 
CD \ AB 00 01 11 10 
 
01 
11 
10 
CD \ AB 00 01 11 10 
00 
01 
11 
10 
 
CD \ AB 00 01 11 10 
00 
01 
11 
10 
 
⎯A em comum 
 A em comum 
 
 
 
 
⎯C em comum 
 C em comum 
⎯B em comum 
 B em comum 
 
 
 
 
⎯D em comum 
 D em comum 
 
 
 
27
C \ AB 00 01 11 10 
0 1 1 1 0 
1 0 1 1 1 
 
2 pares isolados (b) 
1 quadra (d) 
 
h(A,B,C) = ⎯A⎯C + AC + B 
 
 
CD \ AB 00 01 11 10 
00 0 1 0 1 
01 1 0 1 0 
11 1 0 1 1 
10 1 0 0 1 
 
1 ilha (a) 
3 pares isolados (b) 
1 quadra isolada (d) 
 
j(A,B,C,D) =⎯AB⎯C⎯D +⎯A⎯BD + ABD + A⎯B⎯D +⎯BC 
 
 
1 par essencial (b) 
2 pares opcionais (c) 
1 quadra essencial (d) 
 
p(A,B,C,D) =⎯A⎯BC + B⎯CD + ABC +⎯A⎯D 
 
 
Nesse exemplo observa-se a diversidade de possibilidades para minimização da mesma função devido 
à quantidade de grupos opcionais. 
 
 
 
 
 
 
 
 
 
f(A,B,C,D) =⎯A⎯B + BD + CD + A⎯D f(A,B,C,D) =⎯B⎯D + AB +⎯AD + CD 
 
 
 
 
 
 
 
 
 
f(A,B,C,D) =⎯BD +⎯AD + AB + ⎯BC f(A,B,C,D) =⎯A⎯B + BD +A⎯D + ⎯BC 
 
 
 
CD \ AB 00 01 11 10 
00 1 1 1 1 
01 1 0 0 1 
11 1 0 0 1 
10 1 0 0 1 
 
 1 quadra (d) 
 1 óctupla (f) 
 
 k(A,B,C,D) = ⎯C⎯D +⎯B 
CD \ AB 00 01 11 10 
00 1 0 1 1 
01 1 1 1 0 
11 1 1 1 1 
10 1 0 1 1 
CD \ AB 00 01 11 10 
00 1 1 0 0 
01 0 1 1 0 
11 1 0 1 0 
10 1 1 1 0 
 
CD \ AB 00 01 11 10 
00 1 0 1 1 
01 1 1 1 0 
11 1 1 1 1 
10 1 0 1 1 
CD \ AB 00 01 11 10 
00 1 0 1 1 
01 1 1 1 0 
11 1 1 1 1 
10 1 0 1 1 
 
CD \ AB 00 01 11 10 
00 1 0 1 1 
01 1 1 1 0 
11 1 1 1 1 
10 1 0 1 1 
 
 
 
 
28
2.3.4 MAPA DE KARNAUGH DE 5 E 6 VARIÁVEIS 
 
Para encontrar adjacências lógicas, no mapa de Karnaugh de 5 variáveis, deve-se imaginar que os dois mapas 
estão um sobre o outro, então exemplificando, a célula 0 é adjacente à célula 16. Observe a figura abaixo: 
 
 A = 0 A = 1 
 
 
 
 
 
 
 
 A = 0 A = 1 
 
 
 
 
 
 
 
 
F(A,B,C,D,E) = =⎯A⎯BC⎯DE +⎯A⎯BCD⎯E + A⎯B⎯D⎯E + ⎯C⎯D⎯E + ABE + B⎯C 
 ↓ ↓ ↓ ↓ ↓ ↓ 
 ilha ilha par quadra quadra óctupla 
 Regras: (a) (a) (b) (d) (d) (f) 
 
O mapa de Karnaugh de seis variáveis possui 4 células construídas a partir do mapa de Karnaugh de 4 
variáveis. A adjacência entre as células de cada mapa pode ser visualizada de forma idêntica aquela utilizada 
para o mapa de 4 variáveis. Entretanto, as adjacências entre as células em mapas diferentes funcionam como 
num agrupamento de um mapa de 2 variáveis. Por exemplo, agrupamento na vertical elimina a variável A e, 
na horizontal, a variável B. 
 
 
 MAPA DE KARNAUGH DE 6 VARIÁVEIS 
 
 B = 0 B = 1 
 
 
 
 A = 0 
 
 
 
 
 A = 1 
 
 
 
 
DE \ BC 00 01 11 10 
00 1 0 0 1 
01 0 1 0 1 
11 0 0 0 1 
10 0 1 0 1 
DE \ BC 00 01 11 10 
00 1 1 0 1 
01 0 0 1 1 
11 0 0 1 1 
10 0 0 0 1 
EF \ 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 
DE \ BC 00 01 11 10 
00 0 4 12 8 
01 1 5 13 9 
11 3 7 15 11 
10 2 6 14 10 
 
DE \ BC 00 01 11 10 
00 16 20 28 24 
01 17 21 29 24 
11 19 23 31 27 
10 18 22 30 26 
 
EF \ CD 00 01 11 10 
00 16 20 28 24 
01 17 21 29 24 
11 19 23 31 27 
10 18 22 30 26 
EF \ CD 00 01 11 10
00 32 36 44 40 
01 33 37 45 41 
11 35 39 47 43 
10 34 38 46 42 
EF \ CD 00 01 11 10 
00 48 52 60 56 
01 49 53 61 57 
11 51 55 63 59 
10 50 54 62 58 
 
 
 
29
Exemplo: 
 
 B = 0 B = 1 
 
 
 
 
A = 0 
 
 
 
 
 
A = 1 
 
 
 
 
 
H(A,B,C,D,E,F) = ⎯A⎯B⎯D⎯E⎯F + B⎯CDEF +⎯A⎯B⎯CDF + ⎯B⎯CD⎯EF + A⎯BC⎯F + BC⎯E + ⎯AC⎯E 
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ 
 par par par par quadra óctuplas 
Regras: (b) (b) (b) (b) (d) (f) 
 
2.3.5 IMPLICANTES PRIMITIVOS 
IMPLICANTES PRIMITIVOS são todas as possibilidades de agrupamento de uma função booleana no mapa 
de Karnaugh sempre levando em consideração a possibilidade de se obter grupos maiores, quando isso for 
possível. Entretanto, observa-se que nem todos os agrupamentos são úteis para obtenção da expressão 
booleana em sua forma mais simples. Assim, no agrupamento abaixo, podemos identificar quatro categorias 
de grupos: 
 A = 0 A = 1 
 
 
 
 
 
 
No agrupamento acima podemos identificar 4 categorias de grupos: 
a) IMPLICANTES ESSENCIAIS → Aqueles grupos obtidos da única possibilidade de agrupamento 
de uma célula. 
Exemplo: células agrupadas em vermelho ( 1, 6, 18 e 29 ) 
b) IMPLICANTES NECESSÁRIOS → Aqueles grupos que representam a única opção para algumas 
células, depois que os essenciais foram retirados. 
Exemplo: grupo das células ( 15 com 11 ) em rosa 
c) IMPLICANTES OPCIONAIS → Oriundos de células que apresentam mais de uma opção de 
agrupamentos e um deles deve ser escolhido como necessário. 
Exemplo: Célula marcadas com azul. {célula 23 grupos (21,23) e (23,25)} 
d) GRUPOS REDUNDANTES→ grupos que não devem ser inclusos na expressão minimizada por 
serem desnecessários. 
Exemplo: Grupos envolvendo as células (14,15), (9,11) e (0,4,8,12) em verde 
EF \ CD 00 01 11 10
00 1 0 1 1 
01 0 1 1 1 
11 0 1 0 0 
10 0 0 0 0 
EF \ CD 00 01 11 10 
00 0 0 1 1 
01 0 0 1 1 
11 0 1 0 0 
10 0 0 0 0 
EF \ CD 00 01 11 10
00 0 0 1 1 
01 0 1 0 0 
11 0 0 0 0 
10 0 0 1 1 
EF \ CD 00 01 11 10 
00 0 0 1 1 
01 0 0 1 1 
11 0 1 0 0 
10 0 0 0 0 
DE \ BC 00 01 11 10 
00 1 1 1 1 
01 1 0 0 1 
11 0 0 1 1 
10 0 1 1 0 
DE \ BC 00 01 11 10 
00 0 0 0 0 
01 0 1 1 0 
11 1 1 0 0 
10 1 0 0 0 
 
 
 
30
Do exemplo acima, pode-se concluir que a busca no mapa de Karnaugh se resume em, agrupar células 
procurando inicialmente pelos implicantes essenciais, depois os implicantes necessários e finalmente os 
implicantes opcionais. 
 
2.3.6 TRATAMENTO PARA ENTRADAS DON'T CARE 
Entradas don't care são combinações de bits que, ao acontecerem num sistema, não causarão efeito algum. Por 
exemplo, um contador BCD de 4 bits possui 16 possíveis combinações de bits porém somente 10 são 
utilizadas como ação na saída do circuito. Nesse caso, as 6 combinações restantes não devem ser geradas pelo 
contador. Essas entradas resultam em saídas don't care da função booleana em questão. 
 
Quando se lê um mapa de Karnaugh, onde existem entradas don't care, utiliza-se a seguinte regra: 
 
Só agrupe 1's, com entradas don't care, se e somente se esse agrupamento resultar numa razoável 
simplificação do circuito. Caso contrário, trate-os como se fossem zeros na tabela verdade. 
 
Exemplo: 
 
F = ∑0,1,4,8,10,11,12, Φ (2,3,6,9,15) 
 
Onde Φ representa a entrada don't care 
 
Lendo sem considerar as saídas don't care 
F =⎯A⎯B⎯C + ⎯C⎯D + A⎯BC 
 
Considerando as saídas don’t care 
F = ⎯B + ⎯C⎯D 
 
 
 
2.3.6 EXPRESSÕES EM POS UTILIZANDO MAPAS DE KARNAUGH 
Uma vez sedimentado o conhecimento de como se obtém a expressão minimizada em forma de soma de 
produtos SOP, utilizando mapa de Karnaugh, encontrar a função equivalente, expressa na forma de produto 
de somas POS, é imediato. 
Se F é uma função booleana de A, B, C,... utiliza-se a seguinte técnica. 
 
1. Plota-se o mapa de Karnaugh da função booleana incluindo as entradas "0". 
2. Agrupam-se as entradas "0", de forma semelhante a aquela utilizada para as entradas "1", 
obtendo-se a expressão SOP correspondente da função ⎯F. 
3. Utilize o teorema de DeMorgan e obtenha a função F em termos de POS 
 
 
Exemplo: Seja a função booleana dada pela tabela verdade abaixo: 
 
Lendo a função utilizando produto de somas, (POS) tem-se: 
 
F = (⎯A+⎯B + D) . (⎯B + C +⎯D ) . (⎯A + B +⎯D) . (⎯C + D) 
 
Opcionalmente pode-se ler o mapa utilizando soma de produtos 
(SOP) 
 
 ⎯F(A,B,C,D) = AB⎯D + B⎯CD + A⎯BD + C⎯D 
 
Para encontrar a expressão de F, deve-se aplicar o teorema de DeMorgan. 
 
 
CD \ AB 00 01 11 10 
00 1 1 1 1 
01 1 0 0 Φ 
11 Φ Φ Φ 1 
10 Φ Φ 0 1 
 
CD \ AB 00 01 11 10 
00 1 1 0 1 
01 1 0 0 0 
11 1 1 1 0 
10 0 0 0 0 
CD \ AB 00 01 11 10 
00 1 1 1 1 
01 1 0 0 Φ 
11 Φ 0 Φ 1 
10 Φ Φ 0 1 
 
 
 
 
31
Por DeMorgan 
 
 
 ⎯F = AB⎯D + B⎯CD + A⎯BD + C⎯D 
 
 ' ' ' ' ' ' ' 
 F = (AB⎯D ). ( B⎯CD) . (A⎯BD) . (C⎯D ) 
 
 F = (⎯A+⎯B + D) . (⎯B + C +⎯D ) . (⎯A + B +⎯D) . (⎯C + D) 
 
 
 32
2.4 VARIABLE - ENTERED MAPPING ( TÉCNICA VEM ) 
 
A técnica VEM é uma extensão da técnica de Karnaugh para leitura de mapas contendo acima 
de 6 variáveis de entrada. Essa técnica, além de aceitar as entradas tradicionais do mapa de 
Karnaugh ( 0 1 e φ ), também aceita variáveis e expressões booleanas como entradas do mapa 
VEM. 
 
Seja a tabela verdade de 3 variáveis para a função F. 
 
F = ⎯A⎯B⎯C + ⎯A⎯BC + ⎯AB⎯C + ⎯ABC + A⎯B⎯C + A⎯BC + AB⎯C + ABC 
 
O processo de gerar uma expressão booleana específica para F, é o de 
selecionar os termos mínimos apropriados da expressão booleana geral. 
Isto pode ser pensado como o processo de associar o valor da função 
para um termo mínimo específico e operá-lo utilizando uma função AND 
com cada o termo mínimo equivalente da função em questão. 
 
Por exemplo: F. F = F 
 
F.F = ⎯A⎯B⎯C. F + ⎯A⎯BC.F + ⎯AB⎯C.F + ⎯ABC.F + A⎯B⎯C.F + A⎯BC.F + AB⎯C.F + ABC.F 
 
Aqui ambos os lados da expressão são logicamente operados pela função AND e portanto, não 
viola nenhuma regra algébrica. 
Para gerar a função específica para F precisamos prescrever o valor de F para cada termo 
mínimo. Fazemos então F ser: 
 
• 1 para os termos mínimos desejados. 
• 0 para os termos mínimos indesejados. 
• φ para os termos que não têm significado no circuito desejado (don’t care). 
 
F.F = ⎯A⎯B⎯C. 0 + ⎯A⎯BC. 0 + ⎯AB⎯C. 1 + ⎯ABC . 1 + A⎯B⎯C. 1 + A⎯BC. 0 + AB⎯C. φ + ABC. φ 
 
Temos então a função definida para F conforme mostra a tabela verdade e o mapa de Karnaugh. 
 
Para determinar a expressão mínima, nesse caso, ou aplica-se o teorema da adjacência lógica 
na expressão F ou aplica-se o mesmo teorema no mapa de Karnaugh. 
 
 
 
 
 
 
 
F = A⎯C + B 
 
 
 
 
 
 
F = ⎯A⎯B⎯C. 0 + ⎯A⎯BC. 0 + ⎯AB⎯C. 1 + ⎯ABC . 1 + A⎯B⎯C. 1 + A⎯BC. 0 + AB⎯C. φ + ABC. φ 
 
 
F = A⎯C + B 
 
ABC F 
000 0 
001 0 
010 1 
011 1 
100 1 
101 0 
110 φ 
111 φ
C \ AB 00 01 11 10 
0 0 1 φ 1 
1 0 1 φ 0 
 
B
A⎯C
 33
 
Para desenvolver a técnica VEM, precisamos apenas estender essa idéia de plotar o valor dado 
da variável associada com cada termo mínimo, para aquela de plotar o valor dado de alguma 
expressão associada com cada termo mínimo. 
 
Para ilustrar a idéia, vamos operar logicamente a variável menos significativa da tabela verdade 
com a variável F conforme abaixo: 
 
F.F = ⎯A⎯B(⎯C.F) +⎯A⎯B(C.F) +⎯AB(⎯C.F) +⎯AB(C.F) + A⎯B(⎯C.F) + A⎯B(C.F) + AB(⎯C.F) + 
 + AB(C.F) 
 
F.F = ⎯A⎯B (⎯C.F + C.F) +⎯AB (⎯C.F + C.F) + A⎯B (⎯C.F + C.F) + AB (⎯C.F + C.F) 
 
Vamos agora definir como subtermos mínimos os termos resultantes de todas as possíveis 
combinações entre as variáveis (A e B) , ou seja ( ⎯A⎯B, ⎯AB, A⎯B, AB ) 
Agora vamos subdividir a tabela verdade de acordo com os subtermos mínimos e observar o 
desenvolvimento algébrico da expressão acima. 
 
 
 F.F = ⎯A⎯B (⎯C F + CF) +⎯AB (⎯CF + CF) + A⎯B (⎯CF + CF) + AB (⎯CF + CF) 
 
 F.F = ⎯A⎯B (⎯C 0+C0) +⎯AB (⎯C1+C1) + A⎯B (⎯C1+C0) + AB (⎯Cφ+Cφ ) 
 
 F.F = ⎯A⎯B ( 0 ) +⎯AB (⎯C + C) + A⎯B (⎯C ) + AB (φ ) 
 
Então podemos plotar o mapa com o valor DADO de 
cada termo, (⎯CF + CF), também chamado de Map-
Entered Variable (MEV), só que agora em um mapa de 
Karnaugh de 2 variáveis. Nota: (⎯C + C ) = 1 
 
Uma vez construído o mapa pela técnica VEM, sua leitura deve ser feita seguindo as seguintes 
regras. 
 
 
2.4 LEITURA DO MAPA VEM 
 
Considere que as variáveis escolhidas, para serem entradas do mapa, serão chamadas de MEV 
(Map-Entered Variable) daqui para frente. 
 
Para fazer a leitura de um mapa VEM deve-se seguir os seguintes passos: 
 
Passo1: Primeiro imagine que todas as entradas 1, no mapa, foram substituídas pelas variáveis 
do mapa VEM somada com seu complemento, ou seja, 1 = D+⎯D. Então circule sobre 
todas as entradas MEV de acordo com as regras: 
 
a) Primeiro circule e extraia todos os MEVs isolados que não se agrupam com outro 
MEV idêntico nas células adjacentes ou com um 1 ou com um φ (don't care). 
Lembre-se que um C e um ⎯C em células adjacentes não podem ser agrupados por 
não serem idênticos. 
 
b) Circule e extraia todos os MEVs que formam pares apenas com outro MEV idêntico 
em células adjacentes 
 
c) Circule e extraia todos os MEVs que formarão pares com apenas um 1 
 
AB C F 
00 0 0 
00 1 0 
01 0 1 
01 1 1 
10 0 1 
10 1 0 
11 0 φ 
11 1 φ 
B \ A 0 1
0 0 ⎯C 
1 1 φ 
 34
d) Circule e extraia todos os MEVs que formarão pares com apenas um φ (don't care) 
 
e) Qualquer MEV que se agrupará de 2 maneiras com outro MEV idêntico, 1 ou φ, mas 
não formarão quadras deve ser deixado para depois 
 
f) Continue agrupando e extraindo, de forma similar, quadras, óctuplas, etc até que 
cada MEV tenha sido coberto pelo menos 1 vez. Isto completa o passo 1. 
 
Passo 2: Uma vez que todos os MEVs foram cobertos, transforme o mapa da seguinte forma; 
 ' ' ' ' 
a) Substitua o MEV e o MEV por 0, ou seja MEV e MEV → 0 
 
b) Substitua 0 → 0 e φ → φ 
 
c) Substitua 1 → 1 se não foi totalmente coberto _____ 
 → φ se totalmente coberto, isto é, circulado com MEV e MEV 
 ' 
d) MEVφ e MEVφ → 0 
 ' ' ' 
e) ( MEV + MEV φ ) e ( MEV + MEVφ) → 1 se não foi coberto de forma alguma 
 ou se apenas φ foi coberto. 
 ↑ ↑ 
 termos necessários → φ se totalmente coberto ou se apenas o 
 termo necessário foi coberto. 
 
 
Então proceda a leitura do mapa como se estivesse lendo um mapa de 
Karnaugh. Isto completa o passo 2. 
 
Exemplo 1: 
 
 
 
 
Passo 1: Passo 2: 
 
 
 CA B 
 
 BCAF += 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
B \ A 0 1 
0 0 ⎯C 
1 1 φ 
B \ A 0 1 
0 0 ⎯C 
1 1 φ 
B \ A 0 1 
0 0 0 
1 1 φ 
 35
Exemplo 2: 
 
 
 
 
 
 
 
 
 
 
 
 
 F = BC + A⎯B 
 
 
Exemplo 3: 
 
 
 
 
 
 
 
 
 
 F = ⎯A⎯D + B⎯CD + A⎯BC 
 
 
Exemplo 4: 
 
 
 
 
 
 
 
 
 
 F = A⎯D + B⎯C +⎯BC 
 
 
Exemplo 5: 
 
 
 
 
 
 
 
 
 
 
 
 
 F = ⎯A⎯BE + B⎯D⎯E + A⎯C⎯D⎯E + AB⎯C⎯E + ⎯AC⎯D + ⎯BCD 
B \ A 0 1
0 0 1 
1 ⎯Cφ+C C 
 
B \ A 0 1
0 0 ⎯C+C
1 ⎯Cφ+C C 
 
Passo 1: BC
B \ A 0 1 
0 0 1 
1 φ 0 
 
Passo 2: A⎯B
C/AB 00 01 11 10
0 Dφ+⎯Dφ D+⎯D D 0 
1 ⎯D ⎯Dφ Dφ D+⎯D
 
 Passo 1: ⎯A⎯D + B⎯CD 
C/AB 00 01 11 10
0 Dφ 1 D+⎯Dφ φ 
1 ⎯D+Dφ 0 ⎯D 1 
 
 Passo 1: A⎯D 
C/AB 00 01 11 10 
0 0 1 1 φ 
1 1 0 0 1 
 
Passo 2: B⎯C + ⎯BC 
CD \ AB 00 01 11 10
00 E φ 1 ⎯E 
01 E+⎯Eφ 0 E 0 
11 1 Eφ Eφ 1 
10 Eφ+⎯E 1 ⎯E 0 
 
Passo 1: ⎯A⎯BE + B⎯D⎯E + A⎯C⎯D⎯E + AB⎯CE 
CD\AB 00 01 11 10
00 0 φ φ 0 
01 φ 0 0 0 
11 1 0 0 1 
10 1 1 0 0 
 
 Passo 2: ⎯AC⎯D + ⎯BCD 
AB C F1 
0 0 0 0 
0 0 1 0 
0 1 0 φ 
0 1 1 1 
1 0 0 1 
1 0 1 1 
1 1 0 0 
1 1 1 1 
C/AB 00 01 11 10 
0 φ φ 0 0 
1 0 0 0 1 
 
 Passo 2: A⎯BC 
 36
2.5 ANÁLISE E SÍNTESE DE CIRCUITOS COMBINACIONAIS 
 
A partir de agora vamos utilizar as técnicas de manipulação de expressões booleanas nos projetos de 
circuitos combinacionais bem como, aos poucos, adquirir alguma experiência na análise desses circuitos. 
Existem muitas categorias de circuitos combinacionais dos quais veremos as seguintes: 
 
• Circuitos Aritméticos 
• Comparadores 
• Geradores de Paridade 
• Multiplexadores e Demultiplexadores 
• Decodificadores e Codificadores 
 
 
 
2.5.1 CIRCUITOS ARITMÉTICOS 
 
Os computadores digitais são projetados para realizar uma gama de instruções aritméticas e lógicas com 
dados codificados em binário. A parte do computador que realiza tais operações chama-se Unidade 
Aritmética e Lógica (ALU). Uma das operações aritméticas básicas é a adição entre dois números. No 
computador, todas as operações aritméticas básicas são realizadas fazendo uso da operação de adição e de 
deslocamento de bits. Um dos circuitos que realiza a adição entre dois bits é conhecido como meio-
somador, o outro é o somador completo. 
 
 
 
2.5.1.1 MEIO SOMADOR 
 
O meio somador realiza a soma algébrica entre dois dígitos binários conforme mostra a tabela verdade 
abaixo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SOMA = A⎯B +⎯AB CARRY = AB 
SOMA = A xor B 
 
 
2.5.1.2 SOMADOR COMPLETO 
 
O somador completo difere do meio somador pelo fato de possuir mais uma entrada chamada de CARRY-
IN, ou seja, a soma entre dois bits binários mais o vai um resultante da soma dos termos anteriores. A 
tabela verdade do circuito é apresentada abaixo: 
 
A B SOMA CARRY 
0 0 0 0 
0 1 1 0 
1 0 1 0 
1 1 0 1 
 
B \ A 0 1 
0 0 1 
1 1 0 
B \ A 0 1
0 0 0 
1 0 1 
 37
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SOMA = ⎯A⎯BCin + ⎯AB⎯Cin + ABCin + A⎯B⎯Cin 
SOMA = ⎯A(⎯BCin +B⎯Cin ) + A( BCin + ⎯B⎯Cin ) 
SOMA = ⎯A ( B xor Cin ) + A ( B xnor Cin ) 
SOMA = ⎯A ( B xor Cin ) + A ( B xor Cin ) 
 
SOMA = A xor B xor Cin 
 
 
 
 
 
 
Cout = AB + BCin + ACin 
 
 
Outra maneira de implementar o somador completo: 
 
 
 
 
 
 
Cout = AB + ⎯ABCin + A⎯BCin 
Cout = AB + Cin (⎯AB + A⎯B ) 
 Cout = AB + Cin (A xor B) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 A B Cin SOMA Cout 
 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 
 A B Cin 
 
 
 Somador 
 Completo 
 
 Cout Soma 
 
Cin \ AB 00 01 11 10
0 0 1 0 1 
1 1 0 1 0 
Cin \ AB 00 01 11 10
0 0 0 1 0 
1 0 1 1 1 
 
 A B 
 
 Meio Somador 
 
 CARRY 
 
 
 Cin 
 
 Meio Somador 
 
 CARRY SOMA 
 
 
 
 
 
 
 
 
 Cout 
 
Cin \ AB 00 01 11 10
0 0 0 1 0 
1 0 1 1 1 
 
 38
 
Para gerar uma soma entre 2 números binários de N bits, tem-se o seguinte esquema de conexão dos dois 
módulos vistos anteriormente. Essa configuração de somador é conhecida com o nome de somador 
paralelo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Apresenta-se aqui os circuitos integrados que realizam a soma binária entre dois números de 4 bits das 
famílias TTL e CMOS que são duas das famílias de dispositivos eletrônicos utilizadas na implementação de 
circuitos digitais. 
 
 
TTL 7483 CMOS 4008 
 
 
 
 
 
 
 
 
 
 
2.5.1.3 COMPARADOR 
 
O circuito comparador é projetado para comparar a magnitude relativa de dois números binários. A 
estrutura geral do comparador e sua tabela verdade são mostradas à seguir. No caso, trata-se de um 
comparador de 2 bits. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 An Bn Cin n A2 B2 Cin 2 A1 B1 Cin 1 A0 B0 
 
 
 
 Somador Somador Somador Meio 
 Completo CompletoCompleto Somador 
 
 
 
 Cout n Sn Cout2 S2 Cout1 S1 Cout0 S0 
 10 11 8 7 3 4 1 16 
 
13 A1 B1 A2 B2 A3 B3 A4 B4 14 
 Cin Cout 
 Vcc ∑1 ∑2 ∑3 ∑4 Gnd 
 
 5 9 6 2 15 12 
 
 
 A4 B4 A3 B3 A2 B2 A1 B1 
 Cin Cout 
 Vcc ∑4 ∑3 ∑2 ∑1 Gnd 
 
A1 A0 B1 B0 A>B A+B A<B 
0 0 0 0 0 1 0 
0 0 0 1 0 0 1 
0 0 1 0 0 0 1 
0 0 1 1 0 0 1 
0 1 0 0 1 0 0 
0 1 0 1 0 1 0 
0 1 1 0 0 0 1 
0 1 1 1 0 0 1 
1 0 0 0 1 0 0 
1 0 0 1 1 0 0 
1 0 1 0 0 1 0 
1 0 1 1 0 0 1 
1 1 0 0 1 0 0 
1 1 0 1 1 0 0 
1 1 1 0 1 0 0 
1 1 1 1 0 1 0 
 
 
 A1 A0 B1 B0 
 
 A>B A=B A<B 
 
 
B1B0 \ A1A0 00 01 11 10 
00 0 1 1 1 
01 0 0 1 1 
11 0 0 0 0 
10 0 0 1 0 
 
A>B = A1⎯B1 + A1A0⎯B0 + A0⎯B1⎯B0 
 39
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Observe que " " " " " " 
 A < B = ( A>B ) + ( A=B ) = ( A>B ) . ( A=B ) 
 
 
Logo, algum hardware pode ser economizado. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2.5.2 GERADORES DE PARIDADE 
 
Os geradores de paridade são circuitos utilizados principalmente na transmissão assíncrona entre terminais 
remotos. O propósito desses circuitos é o de garantir confiabilidade na transmissão e na recepção das 
informações que circulam entre eles. Um gerador de paridade bastante conhecido é aquele que gera 
paridade par, ou seja, fornece saída 1 se a quantidade de bits iguais a 1 for um número par, incluindo o bit 
de paridade. 
 
Tomemos como exemplo um gerador de paridade para um conjunto de 4 bits. 
 
B1B0 \ A1A0 00 01 11 10 
00 0 0 0 0 
01 1 0 0 0 
11 1 1 0 1 
10 1 1 0 0 
 
A<B = ⎯A1B1 + ⎯A1⎯A0B0 + ⎯A0B1B0 
B1B0 \ A1A0 00 01 11 10 
00 1 0 0 0 
01 0 1 0 0 
11 0 0 1 0 
10 0 0 0 1 
 
(A=B) = ⎯A1⎯A0⎯B1⎯B0 + ⎯A1A0⎯B1B0 + 
 + A1⎯A0B1⎯B0 + A1A0B1B0 
 
(A=B) = (A1 xnor B1) (A0 xnor B0) 
 Vcc A3 B3 A>B A<B B0 A0 B1 
 
 16 15 14 1 3 12 11 10 9 
 
 TTL 7485 
 1 2 3 4 5 6 7 8 
 
 B2 A2 A=B A>B A<B A=B A1 Gnd 
 
Comparador de 4 bits 
 B1 B0 A1 A0 
 
 (A>B) (A<B) (A=B) 
 40
 
 
 
 
 
 
 
 PAR = ⎯AB⎯C⎯D + ⎯A⎯B⎯CD + A⎯B⎯C⎯D + AB⎯CD + 
 ⎯ABCD + ⎯A⎯B C⎯D + A⎯BCD + ABC⎯D 
 
 PAR = ⎯AB (⎯C⎯D + CD ) + A⎯B (⎯C⎯D +CD ) + 
 + C⎯D (⎯A ⎯B + AB ) +⎯CD (⎯A⎯B + AB ) 
 
 PAR = ⎯AB (C xnor D ) + A⎯B (C xnor D ) + 
 + C⎯D (A xnor B ) +⎯CD (A xnor B) 
 
 PAR = ((C xnor D ) (A xor B)) + ((C xor D ) (A xnor B)) 
 
 PAR = A xor B xor C xor D 
Implementação 
 
 
 
 
 
 
 
2.5.3 MULTIPLEXADORES E DEMULTIPLEXADORES 
 
2.5.3.1 MULTIPLEXADORES 
 
Os multiplexadores são algumas vezes chamados de seletores de dados e é um dos circuitos combinacionais 
mais utilizados em projetos digitais. Por definição, um multiplexador é um circuito projetado para 
selecionar uma de muitas entradas para ser ativada como saída do circuito num determinado instante. 
 
No exemplo abaixo, vemos um multiplexador 4x1 cujo formato geral é dado por: 
 
 
 
 
 
 
 
 
Saída = ⎯S1⎯S0 I0 + ⎯S1S0 I1 + S1⎯S0 I2 + S1S0I3 
 
Forma genérica: 
 
 Saída = m0. I0 + m1.I1 + m2 . I2 + ... + mk . Ik em que 
 k = 2n -1 
 n = número de bits da seleção 
 mj = termos mímimos obtidos com as entradas de seleção 
 Ij = variável ou expressão conectada à entrada j 
 
 
A B C D PAR 
0 0 0 0 0 
0 0 0 1 1 
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 0 
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 
CD \ AB 00 01 11 10
00 0 1 0 1 
01 1 0 1 0 
11 0 1 0 1 
10 1 0 1 0 
S1S0 I3 I2 I1 I0 Saída 
0 0 X X X X I0 
0 1 X X X X I1 
1 0 X X X X I2 
1 1 X X X X I3 
S0 \ S1 0 1
0 I0 I2 
1 I1 I3 
 41
 
Implementação: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Os multiplexadores são também utilizados para implementar funções booleanas como mostrado abaixo. A 
função, neste caso, é de 4 variáveis e pode ser implementada utilizando mux 8x1 e seguido os seguintes 
passos: 
 
 Mapa VEM da função 
 
 
 
 
 
 
 
 Mapa VEM do MUX 
 
 
 
 
 
 
 
 
• Utilizando a técnica VEM separe a variável D, uma vez que A, B e C serão as entradas de 
seleção do mux respectivamente (S2, S1, S0) 
 
• Como o mux é de 8x1 seu mapa VEM está mostrado juntamente com o mapa VEM da função. 
 
• Logo vai existir uma equivalência direta entre células idênticas de ambos os mapas, ou seja: 
a) A célula 000 (D+⎯D) do mapa VEM é igual à célula ⎯S2⎯S1⎯S0(I0) do mapa do MUX. No 
mux, (D+⎯D) significa 1, logo a entrada I0 deve ser conectada ao nível lógico 1 (Vcc). 
b) A célula 001(D) é igual a célula ⎯S2⎯S1S0(I1). No mux, D deve ser conectado à entrada I1. 
Idem para a célula 010(D) em I2 e 110(D) em I6 
c) A célula 100(⎯D) é igual a S2⎯S1⎯S0(I4). No mux,⎯D deve ser conectado à entrada I4. 
Idem para a célula 111(⎯D) em I7 
d) A célula 011( 0 ) é igual a célula ⎯S2S1S0(I3). No mux, I3 deve ser conectado nível lógico 
zero, significando que esse termo mínimo não faz parte da função desejada. Idem para a 
célula 101( 0 ) que leva a entrada I5 ser conectada também em nível lógico zero. 
 
 
ABC D F 
0 0 0 0 1 
0 0 0 1 1 
0 0 1 0 0 
0 0 1 1 1 
0 1 0 0 0 
0 1 0 1 1 
0 1 1 0 0 
0 1 1 1 0 
1 0 0 0 1 
1 0 0 1 0 
1 0 1 0 0 
1 0 1 1 0 
1 1 0 0 0 
1 1 0 1 1 
1 1 1 0 1 
1 1 1 1 0 
C \ AB 00 01 11 10 
0 D+⎯D D D ⎯D 
1 D 0 ⎯D 0 
S0 \ S2S1 00 01 11 10 
0 I0 I2 I6 I4 
1 I1 I3 I7 I5 
 42
 
Implementação 
 
Agora podemos listar os termos mínimos da 
tabela verdade que formam a função F no 
mux 
 
F = ∑ m0, m1, m3, m5, m13, m8, m14) 
 (⎯D + D ) D D D ⎯D ⎯D 
 (a) (b) (b) (b) (c) (c) 
 
 
 
 
2.5.3.2 DEMULTIPLEXADORES 
 
Os demultiplexadores realizam a função inversa da multiplexação. O circuito seleciona uma das 
várias saídas para receber a informação que está chegando em sua única entrada. Verifiquemos o 
caso de um demultiplexador de 1 entrada para 4 saídas (1x4 ), cuja tabela verdade está expressa 
abaixo. Observe que os demultiplexadores comerciais fornecem saída em nível lógico zero quando 
seleciona a linha, ou seja, fornece, à saída selecionada, o inverso da entrada. 
 
 Mapa de Karnaugh para a função G0 
 
 
 
 
 
 
 ⎯G0 = ⎯S1⎯S0 E 
 _______ 
 G0 = ⎯S1⎯S0 E 
 
 
Expressão geral : ⎯Gk = mk . E sendo k =0, ..., 2n - 1 
 _____ n = número de bits de seleção do demultiplexadorGk = mk . E mk = termo mínimo referente às entradas seletoras 
Implementação: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
S1S0 E G3 G2 G1 G0 
 0 0 0 1 1 1 1 
 0 0 1 1 1 1 0 
 0 1 0 1 1 1 1 
 0 1 1 1 1 0 1 
 1 0 0 1 1 1 1 
 1 0 1 1 0 1 1 
 1 1 0 1 1 1 1 
 1 1 1 0 1 1 1 
E \ S1S0 00 01 11 10 
0 1 1 1 1 
1 0 1 1 1 
 
 G0 
 E Demux G1 
 G2 
 2 (1x4) G3 
 
 TTL 74155 
 
 S1 S0 
 43
 
 
2.5.4 DECODIFICADORES E CODIFICADORES 
 
São circuitos combinacionais com vasta aplicação em projetos digitais. Na categoria dos decodificadores 
encontramos alguns exemplos como: 
a) Decodificadores 4x16, 3x8, 2x4, etc 
b) BCD - Decimal 
c) BCD - 7 segmentos 
Na categoria dos codificadores temos: 
a) Codificadores de prioridades 
b) Decimal - BCD 
c) Octal - Binário 
 
 
2.5.4.1 DECODIFICADORES 
 
 
2.5.4.1.1 DECODIFICADORES n x2n 
 
Os decodificadores do tipo 2n são particularmente importantes devido a sua utilização na decodificação de 
endereço de memória em computadores, possibilitando o acesso a uma locação de memória com objetivo 
de leitura ou escrita da mesma. São conhecidos como circuito reconhecedor de termo mínimo, uma vez que 
para cada combinação das variáveis de entrada apenas uma saída difere das demais, é a saída equivalente 
ao termo mínimo representado pela combinação das entradas naquele momento. Os decodificadores 
comerciais desse tipo, como os demultiplexadores, também fornecem a saída ativa em nível lógico zero. 
Veremos um exemplo desse tipo de decodificador com o 3x8 cujo TTL comercial disponível é o 74138. 
 
 
 
⎯S0 = ⎯A⎯B⎯C 
⎯S1 = ⎯A⎯BC 
⎯S2 = ⎯AB⎯C 
⎯S3 = ⎯ABC 
⎯S4 = A⎯B⎯C 
⎯S5 = A⎯BC 
⎯S6 = AB⎯C 
⎯S7 = ABC 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A B 
C 
S0 S1 S2 S3 S4 S5 
S6 S7 
0 0 
0 
 0 1 1 1 1 1 1 
1 
0 0 
1 
 1 0 1 1 1 1 1 
1 
0 1 
0 
 1 1 0 1 1 1 1 
1 
0 1 1 1 1 0 1 1 1
A B C S0 S1 S2 S3 S4 S5 S6 S7 
0 0 0 0 1 1 1 1 1 1 1 
0 0 1 1 0 1 1 1 1 1 1 
0 1 0 1 1 0 1 1 1 1 1 
0 1 1 1 1 1 0 1 1 1 1 
1 0 0 1 1 1 1 0 1 1 1 
1 0 1 1 1 1 1 1 0 1 1 
1 1 0 1 1 1 1 1 1 0 1 
1 1 1 1 1 1 1 1 1 1 0 
C \ AB 00 01 11 10 
0 0 1 1 1 
1 1 1 1 1 
 
 ⎯S0 = ⎯A⎯B⎯C ________________ 
 S0 = ⎯A⎯B⎯C 
 _______________ 
S0 = ⎯A⎯B⎯C 
 ______________ 
S1 = ⎯A⎯BC 
 ______________ 
S2 = ⎯AB⎯C 
 ____________ 
S3 = ⎯ABC 
 ______________ 
S4 = A⎯B⎯C 
 ____________ 
S5 = A⎯BC 
 __________ 
S6 = AB⎯C 
 _________ 
S7 = ABC 
 44
 
 
 
Uma outra aplicação desses tipos de decodificadores é a geração de funções booleanas na forma de SOP. 
 
 
 F = ∑m1,m3, m4, m7 
 
Inverte-se a saída do decodificador referente 
aos termos da função que se deseja 
implementar e soma esses termos já invertidos. 
 
 
 
 
 
 
 
 
 
 
2.5.4.1.2 DECODIFICADOR BCD - DECIMAL 
 
Recebe como entrada 4 bits contendo o código BCD e gera na saída equivalente ao valor decimal desse 
código o nível lógico zero e nas demais saídas o nível lógico 1. 
 
 
Para a saída 2, por exemplo, a expressão booleana pode ser 
descrita como: 
 
 
 
 
 
 
 
 
Implementação em crcuito integrado: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A B C D 0 1 2 3 4 5 6 7 8 9 
 0 0 0 0 0 1 1 1 1 1 1 1 1 1 
 0 0 0 1 1 0 1 1 1 1 1 1 1 1 
 0 0 1 0 1 1 0 1 1 1 1 1 1 1 
 0 0 1 1 1 1 1 0 1 1 1 1 1 1 
 0 1 0 0 1 1 1 1 0 1 1 1 1 1 
 0 1 0 1 1 1 1 1 1 0 1 1 1 1 
 0 1 1 0 1 1 1 1 1 1 0 1 1 1 
 0 1 1 1 1 1 1 1 1 1 1 0 1 1 
 1 0 0 0 1 1 1 1 1 1 1 1 0 1 
 1 0 0 1 1 1 1 1 1 1 1 1 1 0 
 1 0 1 0 φ φ φ φ φ φ φ φ φ φ 
 1 0 1 1 φ φ φ φ φ φ φ φ φ φ 
 1 1 0 0 φ φ φ φ φ φ φ φ φ φ 
 1 1 0 1 φ φ φ φ φ φ φ φ φ φ 
 1 1 1 0 φ φ φ φ φ φ φ φ φ φ 
 1 1 1 1 φ φ φ φ φ φ φ φ φ φ 
 _______ _____ _________ _______________ _________ 
 _____________ _________ _______________ _________ 
F = ⎯A⎯BC +⎯ABC + A⎯B⎯C + ABC 
 
F = ⎯A⎯BC +⎯ABC + A⎯B⎯C + ABC 
CD \ AB 00 01 11 10
00 1 1 φ 1 
01 1 1 φ 1 
11 1 1 φ φ 
10 0 1 φ φ DCBA2 =
DCBA2 =
 45
 
 
 
 
2.5.4.1.3 DECODIFICADOR BCD - 7 SEGMENTOS 
 
É utilizado na conversão do código BCD para o display de 7 segmentos com a finalidade de fazer o display 
acender mostrando o dígito decimal que o código BCD representa. 
 
 
 
 
 
 
 
 
 
 a = A⎯B⎯C + ⎯A⎯B⎯D + ⎯ACD + ⎯ABD 
 
 
 
 
 
 
 
2.5.4.2 CODIFICADORES 
 
 
Os codificadores são circuitos combinacionais projetados para gerar um código de saída diferente para cada 
combinação de bits à entrada. A quantidade de bits do código na saída deve satisfazer a relação abaixo 
 
2m ≥ n onde m é o número de bits de código 
 n é o número de elementos a serem codificados 
 
Entretanto esse código gerado deve ser único para cada entrada. No problema a seguir observa-se que uma 
combinação de C1 C0 está relacionada a 4 entradas distintas e é por causa desse problema que os 
codificadores não são considerados circuitos gerais. Entretanto existe o codificador de prioridades que é 
extremamente útil e deve ser discutido. 
 
 
2.5.4.2.1 CODIFICADOR DE PRIORIDADES 
 
O codificador de prioridades é um circuito combinacional capaz de selecionar uma determinada entrada, 
dentre várias outras entradas, tentando conectar-se, com certo equipamento, ao mesmo tempo. Aquela 
entrada com maior prioridade vai ser selecionada. A filosofia do circuito é atribuir uma prioridade maior a 
uma entrada em relação às demais. É um circuito muito utilizado na seleção de dispositivos de entrada e 
saída, que estão tentando se comunicar com a unidade central de processamento em computadores digitais. 
 
O codificador de prioridades a seguir estabelece que a entrada E2 é de alta prioridade, a entrada E1é de 
média prioridade e a entrada E0 é de baixa prioridade. 
 
 E2 é codificado com 01 
 E1 é codificado com 10 
 E0 é codificado com 11 
 
E o código 00 está relacionado com o estado inativo do circuito. 
A B C D a b c d e f g 
 0 0 0 0 1 1 1 1 1 1 0 
 0 0 0 1 0 1 1 0 0 0 0 
 0 0 1 0 1 1 0 1 1 0 1 
 0 0 1 1 1 1 1 1 0 0 1 
 0 1 0 0 0 1 1 0 0 1 1 
 0 1 0 1 1 0 1 1 0 1 1 
 0 1 1 0 0 0 1 1 1 1 1 
 0 1 1 1 1 1 1 0 0 0 0 
 1 0 0 0 1 1 1 1 1 1 1 
 1 0 0 1 1 1 1 0 0 1 1 
 1 0 1 0 φ φ φ φ φ φ φ 
 1 0 1 1 φ φ φ φ φ φ φ 
 1 1 0 0 φ φ φ φ φ φ φ 
 1 1 0 1 φ φ φ φ φ φ φ 
 1 1 1 0 φ φ φ φ φ φ φ 
 1 1 1 1 φ φ φ φ φ φ φ 
CD \ AB 00 01 11 10
00 1 0 φ 1 
01 0 1 φ 1 
11 1 1

Continue navegando