Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas digitais
Índice
Unidade 1 – Aritmética binária
1. Origem da álgebra booleana 07
2. Sistemas de numeração 11
3. Números fracionários 21
4. Números negativos 29
5. Bases binária, quaternária, octal e hexadecimal 39
6. Adição 43
7. Subtração positiva 51
8. Subtração negativa 61
9. Multiplicação 63
10. Divisão 71
11. Conversão entre analógico e digital 75
12. Quantização binária 77
13. Bases híbridas 83
14. Bases fracionárias 87
Unidade 5 – Circuitos JK
1. Flip Flop JK 327
2. Toggle JK 335
3. Contador síncrono JK 337
4. Contador síncrono decrescente JK 343
5. Modificações no contador síncrono JK 347
6. Minimização no contador síncrono JK 351
7. Contador Anel 363
8. Contador Johnson 375
Unidade 6 – Registradores
1. Registrador paralelo 381
2. Registrador série 385
3. Contador Johnson 389
4. Contador Anel 393
Unidade 1
Aritmética binária
que apontem para a hipótese de que, talvez, a moderna pedagogia ocidental não seja capaz de
alcançar a excelência de tais resultados, a sugestão de restauração daquele sistema de ensino tem
sido motivo de muitas relutantes objeções nos acalorados debates promovidos por pedagogos e
educadores, um assunto que permaneceu “dormente” durante as idades moderna e contemporâ-
nea e que “renasce” em virtude dos preocupantes resultados alcançados através da aplicação das
modernas práticas pedagógicas ocidentais provocando impacto na economia dos países ricos e ge-
rando pobreza nas economias emergentes.
Uma das justificativas apontadas para a sugestão de resgate da pedagogia escolástica estaria
no fato de que o ensino de lógica, de gramática e de retórica para as crianças em idade escolar
promoveria uma geração de adultos verdadeiramente detentores de um “pensamento crítico”,
fruto de uma escola promotora da verdadeira “educação para a autonomia”. Tal afirmação estaria
baseada no fato de que, em primeira instância, a lógica promove a organização do pensamento e
das informações. Em segunda instância, a gramática promove a correta escolha das palavras profe-
ridas e a correta interpretação das palavras recebidas, pois é impossível criar uma linha de pensa-
mento sem pleno domínio do próprio idioma. Em última instância, a retórica promove a maneira
eficiente por meio da qual a lógica organiza as palavras na produção do verdadeiro “pensamento
crítico”. Podemos concluir, por meio de simples observação decorrente da atividade docente, que
aquilo que, no Brasil, se chama por “analfabetismo funcional” seria, de fato, alguma deficiência, em
nível moderado ou elevado, nas três “artes liberais triviais”, a lógica, a gramática e a retórica.
Por causa dos avanços tecnológicos e das mudanças culturais e das diferenças regionais, não
seria possível resgatar a pedagogia do método escolástico em sua forma original – europeia e me-
dieval - mas seria possível resgatar o seu conteúdo programático aplicado aos modernos conceitos
pedagógicos brasileiros.
George Boole (1815 - 1864) foi um matemático e professor britânico de matemática e de
línguas, fundando sua própria escola privada. Em 1847, publicou o seu primeiro trabalho científico,
o livro intitulado “The Mathematical Analysis of Logic”. O pioneirismo do trabalho de Boole está no
fato de que, pela primeira vez, a lógica deixaria de estar associada à metafísica para se associar à
matemática.
Em seus estudos, Boole concluiu que a lógica poderia ser dividida em três níveis ou áreas:
1 – Lógica grega
2 – Lógica escolástica
3 – Lógica matemática
Em 1854, Boole publicou sua mais famosa obra: “An Investigation of the Laws of the Thougt”:
Os signos “0” e “1” são apresentados como indicadores dos valores lógicos.
A união entre conjuntos recebe o símbolo “+”.
A intersecção entre conjuntos recebe o símbolo “”.
A equivalência ou identidade entre conjuntos é representada por “=”.
George Boole não foi o único propositor daquilo que, hoje, chamamos de “lógica booleana”.
Um outro professor e lógico, contemporâneo a George Boole, o indiano Augustus de Morgan (1806
- 1871), foi o descobridor de várias propriedades lógicas, incluindo aquelas que chamamos hoje de
“teoremas de De Morgan”.
A lógica booleana apresenta grande contribuição para as ciências jurídicas. Por meio de pro-
priedades como modus tollens, modus ponens e reductio ad absurdum, é possível traçar uma estra-
tégia de defesa, uma estratégia de argumentação; é possível analisar um depoimento em busca de
contradições.
Embora George Boole houvesse cumprido a tarefa de trazer a lógica da metafísica para a
matemática, foi somente várias décadas após a sua morte que a lógica foi trazida da matemática
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 9
Sistemas digitais – 30/01/2021
para a engenharia por meio de diversos tipos de implementações, podendo estas serem hidráulica,
mecânica, elétrica, ótica etc, mas é nos circuitos eletrônicos integrados que a álgebra booleana en-
contra, atualmente, o seu maior nicho de aplicação, sem o qual nós não poderíamos sequer imagi-
nar como seriam as nossas vidas hoje.
Referências:
ftp://ftp.cle.unicamp.br/pub/arquivos/educacional/ArtGT.pdf
https://www.somatematica.com.br/biograf/boole.php
http://professores.dcc.ufla.br/~giacomin/Com164/George_Boole.htm
https://www.historiadomundo.com.br/curiosidades/artes-liberais-classicas.htm
https://www.britannica.com/biography/Augustus-De-Morgan
http://www.scielo.br/scielo.php?script=sci_arttext&pid=S1413-24782000000200010
https://ecclesiae.com.br/o-metodo-pedagogico-dos-jesuitas
Todas as referências foram acessadas em 27/09/2019.
0 1 2 3 4
5 6 7 8 9
Tabela 1 – Os dez signos usados no sistema decimal.
Posição Potência
Casa das unidades 100
Casa das dezenas 101
Casa das centenas 102
Casa dos milhares 103
Casa das dezenas de milhares 104
Casa das centenas de milhares 105
Casa dos milhões 106
Casa dos bilhões 109
Casa dos trilhões 1012
Casa dos quatrilhões 1015
Tabela 2 – As principais casas decimais.
A quantidade de símbolos ou signos é dada pela própria base. Em bases acima de 10, são
usadas as letras do alfabeto.
Sistema Signos
Base 2 0,1
Base 3 0,1,2
Base 4 0,1,2,3
Base 10 0,1,2,3,4,5,6,7,8,9
Base 16 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Tabela 7 – Os principais sistemas de numeração.
Quando letras são usadas como símbolos numéricos, a sua quantização é a mesma para
qualquer base se utilizes este símbolo.
Sistema A B C D E F G
Base 11 10 - - - - - -
Base 12 10 11 - - - - -
Base 13 10 11 12 - - - -
Base 14 10 11 12 13 - - -
Base 15 10 11 12 13 14 - -
Base 16 10 11 12 13 14 15 -
Base 17 10 11 12 13 14 15 15
Tabela 8 – O valor decimal das letras usadas em sistemas de numeração.
Dá-se o nome de bit à menor unidade em uma base adotada. Desta forma, tem-se o bit
binário, o bit ternário, o bit quaternário e assim por diante. Há pessoas que fazem a enganosa cor-
relação entre as letras “b” e “i” da palavra “bit” com as duas primeiras letras da palavra “binário”.
Apesar da coincidência, esta correlação não existe. Um bit ternário não é um “trit”.
Como o contexto binário é o mais frequente no uso desta palavra, então a palavra genérica
bit, quando não há especificação da base, é aplicada, por defalt, à base binária. Tal convenção é
usada neste texto.
Qualquer número em uma determinada base pode ser convertido para decimal por meio da
decomposição em uma quantidade finita de potências desta base.
Quando um número é apresentado, pode ser que haja dúvida quanto à sua base. É preciso
a adoção de uma formalidade na expressão destes números. Por padrão, considera-se que um nú-
mero seja decimal quando não existe especificação da base em questão. Quando a base não é a
decimal, é necessário que haja a especificação desta base. Esta especificação é feita por meio de um
número subscrito localizado à direita do bit menos significativo – LSb. Este número não pode ser
sobrescrito porque isto indicaria uma operação de potenciação.
Algumas bases podem ter o seu uso indicado, opcionalmente, por meio de uma letra minús-
cula. Estas são as quatro bases mais usadas atualmente.
Base Sufixo
Binária b
Octal o
Decimal d
Hexadecimal h
Tabela 9 – As bases indicadas por letras
Quanto maior é a base adotada, maior é a densidade de informação por símbolo empregado.
Esta afirmação leva à impressão de que a adoção de bases muito elevadas seria algo vantajoso, que
levaria a uma otimização na transmissão de informações numéricas. Isso, porém, não é verdade,
haja vista que bases muito elevadas podem trazer dificuldade na interpretação humana dos núme-
ros. Há relatos a certa de civilizações na antiguidade que usavam um sistema de numeração de base
sessenta, motivo porque, hoje, as horas são divididas em sessenta minutos e os minutos são dividi-
dos em sessenta segundos. Essa dificuldade de interpretação explica por que algumas culturas pre-
ferem dividir o dia em vinte e quatro horas, enquanto outras culturas preferem dividir o dia em doze
horas, com o prefixo “AM” e “PM”. Outras culturas preferem, ainda, dividir a numeração das horas
em quatro grupos: “da manha”, “da tarde”, “da noite” e “da madrugada”.
Um número é formado por um ou mais dígitos. Matematicamente, é possível representar
um número usando um dígito em uma base e outro digito em outra base. Esta construção é útil
quando se usam contadores para a efetuação do endereçamento de locais de atuação de sistemas
digitais quando a quantidade de combinações não pode ser dada por todas as combinações de dí-
gitos em uma única base. Esta construção é bastante atípica e raramente é observada em sistemas
reais.
Neste primeiro exemplo, o bit mais significativo (MSb) vale zero. Dentro do contexto da arit-
mética decimal, é ensinado que um “zero” à esquerda pode ser dispensado. Já no contexto da arit-
mética binária, nem sempre um “zero” à esquerda pode ser removido. Se a análise é puramente
matemática, esta remoção pode ser feita. Se, porém, a análise está associada a um sistema físico,
então este “zero” não pode ser eliminado. Este “zero” implica em várias opções de implementação
física, podendo ser, desde um bit de memória física, até mesmo ao pino de um chip. No contexto
dos sistemas físicos, o fato de um bit valer zero ou um nada muda na estrutura física. Quando este
é o caso, o número binário precisa ter, obrigatoriamente, a representação de todos os bits físicos,
ainda que tenhamos um “zero” à esquerda.
Além da explicação do parágrafo anterior, existe o fato de que as operações aritméticas bi-
nárias somente podem ser realizadas sobre números com a mesma quantidade de bits.
A conversão de um número na base dez para uma outra base pode ser feita por meio de dois
métodos. Os métodos são mutuamente equivalentes e o estudante pode escolher aquele com o
qual você possui maior habilidade.
Método das divisões sucessivas
Método da determinação das parcelas.
No método das divisões sucessivas, é preciso identificar o valor do resto de cada divisão
inteira. No método da determinação das parcelas, é preciso identificar quais parcelas estão presen-
tes no somatório que define o número decimal.
São efetuadas duas comparações com o número 243. Isso acontece porque este número
cabe duas vezes dentro de 528. Se este cuidado não é tomado, a próxima comparação, com o nú-
mero 81, gera a seguinte situação (errada):
28534 (81)? Sim x´ = 13 ;285-81 = 204
Os números permanecem grandes, indicando que a redução por meio da geração de bits não
está acontecendo. Além disso, o número 81 cabe três vezes dentro de 285, mas “3” não é um sím-
bolo válido dentro da base ternária.
Posição Potência
Casa das unidades 100
Casa dos décimos 10-1
Casa dos centésimos 10-2
Casa dos milésimos 10-3
Casa dos décimos de milésimos 10-4
Casa dos centésimos de milésimos 10-5
Casa dos milionésimos 10-6
Casa dos bilionésimos 10-9
Tabela 1 – As principais casas decimais fracionárias.
Números que contenham parcela fracionária podem ser expressos de duas formas: a pri-
meira é a explicitação das duas parcelas, separadas por uma vírgula, ficando a parte inteira à es-
querda e a parte fracionária à direita. Esta forma tem a vantagem de expressar claramente a ordem
de grandeza do número em questão. A segunda forma é por meio de uma divisão de dois números
inteiros, uma fração irredutível. Esta segunda forma tem a vantagem de eliminar erros de arredon-
damento quando a fração irredutível gera dízimas periódicas. Por causa destes erros de arredonda-
mento, é recomendado que os cálculos sejam todos efetuados na forma de frações, e, somente
após a obtenção da fração final, esta divisão seja efetuada gerando um número que pode conter
algum erro de arredondamento em ração da quantidade de casas decimais adotada em sua repre-
sentação. Tomando esse cuidado, ainda que algum erro de arredondamento ocorra na representa-
ção do valor final, não acontece propagação de erro entre um cálculo e outro.
No processo de conversão de um número fracionário decimal para alguma outra base, nem
sempre é possível obter o resultado final exato. Muitas vezes, a quantidade de dígitos fracionários
decorrentes da conversão é muito grande e indeterminável. Sendo este o caso, é preciso definir a
quantidade máxima de bits fracionários usados no resultado da conversão. Quando o número fra-
cionário é maior do que “1”, é preciso inspecionar a potência do dígito mais significativo. Quando o
número fracionário é menor do que “1”, então a primeira potência já está determinada e é “-1”.
Exemplo 1: x = 0,101b
x = (12-1) + (02-2) + (12-3)
x = [(12-1) + (02-2) + (12-3)] 1
x = [(12-1) + (02-2) + (12-3)] (23/23)
x = [(2312-1) + (2302-2) + (2312-3)] /23
x = [(122) + (021) + (120)] /23
x = (4 + 0 + 1)/8
x = 5/8
x = 0,625d
Outra forma:
x = (12-1) + (02-2) + (12-3)
x = (10,5) + (00,25) + (10,125)
x = 0,625d
Outra forma:
Prof. Marco Aurélio Seluque Fregonezi
22 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
x = (026) + (025) + (124) + (123) + (022) + (121) + (120) + (02-1) + (12-2) + (12-3) +
+ (02-4) + (12-5)
x = 24 + 23 + 21 + 20 + 2-2 + 2-3 + 2-5
x = [(2524) + (2523) + (2521) + (2520) + (252-2) + (252-3) + (252-5)] / 25
x = (29 + 28 + 26 + 25 + 23 + 22 + 20) / 25
x = (512 + 256 + 64 + 32 + 8 + 4 + 1) / 32
x = 477 / 32
x = 27,40625d
Outra forma:
x = (13-1) + (03-2) + (23-3)
x = (10,333...) + (00,111...) + (20,037...)
x = (10,333...) + (00,111...) + (20,037...)
x = 0,407d
Quando as parcelas não são exatas, esta outra forma não é recomendada porque pode pro-
vocar erros de arredondamento.
Na conversão de um número decimal fracionário para uma outra base, quando a subtração
de uma parcela resulta em um resto zero, conforme o exemplo 7, isto significa que as parcelas fra-
cionárias já foram todas determinadas e o processo de conversão está concluído.
Quando o número possui, apenas, casas fracionárias, este cálculo pode ser feito, também,
por meio de multiplicações sucessivas.
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 23
Sistemas digitais – 30/01/2021
x = 101,1b
Neste exemplo 10, não é possível obter o resultado exato. Existe, então, um erro.
Erro ou resto = 0,00435d
Verificação:
x´ = 0,10111b
x´ = (12-1) + (02-2) + (12-3) + (02-4) + (12-5)
x´ = 1/2 + 0/4 + 1/8 + 1/16 + 1/32
x´ = 16/32 + 0/32 + 4/32 + 2/32 + 1/32
x´ = (16+0+4+2+1)32
x´ = 23/32
x´ = 0,71875d
x = x´ + erro
x = 23/32 + 0,00435
x = (23 + 0,1392)/32
x = (23,1392)/32
x = 0,7231d
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 25
Sistemas digitais – 30/01/2021
Neste exemplo 11, existe o risco de incorrer em erro decorrente dos arredondamentos das
divisões ternárias. O uso das frações explícitas resolve este problema.
Por que razão xA xB? A explicação está no fato de que este exemplo 11 está baseado no
exemplo 4 e o valor x = 0,407d é uma aproximação de x = 11/27. O arredondamento é a causa do
erro encontrado no cálculo acima. O erro é eliminado se o valor exato, a fração, é usada no cálculo
da conversão para ternário.
Considerando que todos os cálculos foram efetuados por meio das frações, não há nenhum
erro de arredondamento por parte da pessoa que fez estas contas. O único erro presente, inevitável,
está associado às dízimas periódicas, porém, como tais cálculos foram todos feitos por meio das
frações, então não há propagação de erro.
O erro ou resto é dado por:
Erro = 0,7133/243
Erro 0,0029353909465021d
Somente o terceiro método é, de fato, empregado nos circuitos reais e nas calculadoras. A
vantagem desta representação é que, diferentemente das outras, ela não desperdiça uma combi-
nação de bits. Em todas estas formas, o bit mais significativo é o indicativo de sinal. Se “0”, o sinal é
positivo. Se “1”, o sinal é negativo. Quando se fala de números com sinal, subentende-se tratar-se
da representação de complemento de dois. Quando a representação é alguma outra, é necessário
indicação explícita desta representação.
O método de sinal-amplitude, embora não seja aplicado nos circuitos reais, serve como uma
introdução didática para o estudo do método que realmente importa. Além disso, a comparação
entre o primeiro método e o terceiro método evidencia as vantagens deste último. O método de
sinal-amplitude é, dentre os três, aquele que implica na maior facilidade de compreensão. O bit mais
significativo (MSb – most significant bit), localizado à esquerda, identifica o sinal do número. Os
demais bits quantificam o número em questão, tanto no caso de ser positivo, como negativo. Esta
quantização é a mesma para ambos sinais.
A quantização é obtida por meio da análise dos bits localizados à direita do MBb. Esta quan-
tização recebe o sinal apontado pelo MSb. Como este método não é o foco deste texto, serão apre-
sentadas tabelas comparativas deste com o método de complemento de dois, mais adiante.
A fim de que se possa fazer corretamente a conversão de binário para decimal, é necessário
que se saiba, de antemão, se o número em questão possui ou não sinal. Se não possui, então o bit
mais significativo representa a quantidade mais significativa da grandeza; é um bit de magnitude.
Se sim, então este bit indica o sinal. Este conceito também pode ser compreendido por meio do
sinal da maior potência: se o número é positivo, a maior potência recebe sinal positivo; se o número
é negativo, a maior potência recebe sinal negativo. A ausência de informação a respeito da função
do bit à esquerda pressupõe a interpretação de que o número seja positivo e de que o bit à esquerda
seja de amplitude. Se o número é negativo, então a maior potência precisa ser, obrigatoriamente,
multiplicada por “um”, pois, se é multiplicada por “zero”, então a parcela negativa não existe e, por
esse motivo, o número é positivo. Considerando que, quanto ao sinal, existem, apenas, duas opções
– positivo e negativo – então o bit de sinal assume, apenas, dois valores, “zero” e “um”, respectiva-
mente, qualquer que seja a base adotada.
sinal amplitude
B A Decimal Cálculo
0 0 0
0 1 1
1 0 -2 0 - 21 = -2
1 1 -1 1 - 21 = -1
Tabela 1 – Esquema para números binários de dois bits com sinal
sinal amplitude
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 29
Sistemas digitais – 30/01/2021
C B A Decimal Cálculo
0 0 0 0
0 0 1 1
0 1 0 2
0 1 1 3
1 0 0 -4 0 – 22
1 0 1 -3 1 – 22
1 1 0 -2 2 – 22
1 1 1 -1 3 – 22
Tabela 2 – Esquema para números binários de três bits com sinal
sinal amplitude
D C B A Decimal Cálculo
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 -8 0 – 23
1 0 0 1 -7 1 – 23
1 0 1 0 -6 2 – 23
1 0 1 1 -5 3 – 23
1 1 0 0 -4 4 – 23
1 1 0 1 -3 5 – 23
1 1 1 0 -2 6 – 23
1 1 1 1 -1 7 – 23
Tabela 3 – Esquema para números binários de quatro bits com sinal
sinal amplitude
C B A Decimal Cálculo
0 0 0 0
0 0 1 1
0 0 2 2
0 1 0 3
0 1 1 4
0 1 2 5
0 2 0 6
0 2 1 7
0 2 2 8
1 0 0 -9 0 – 32
1 0 1 -8 1 – 32
1 0 2 -7 2 – 32
1 1 0 -6 3 – 32
1 1 1 -5 4 – 32
1 1 2 -4 5 – 32
1 2 0 -3 6 – 32
1 2 1 -2 7 – 32
1 2 2 -1 8 – 32
Tabela 4 – Esquema para números ternários de três bits com sinal
B A Decimal Cálculo
0 0 0 0(-21) + 0(20)
Prof. Marco Aurélio Seluque Fregonezi
30 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
0 1 1 0(-21) + 1(20)
1 0 -2 1(-21) + 0(20)
1 1 -1 1(-21) + 1(20)
Tabela 5 – Esquema para números binários de dois bits com sinal
C B A Decimal Cálculo
0 0 0 0 0(-2 ) + 0(21) + 0(20)
2
C B A Decimal Cálculo
0 0 0 0 0(-3 ) + 0(31) + 0(30)
2
bits Fórmula
2 B(-21) + A(20)
3 C(-22) + B(21) + A(20)
4 D(-23) + C(22) + B(21) + A(20)
5 E(-24) + D(23) + C(22) + B(21) + A(20)
Tabela 8 – Fórmulas para números binários com sinal
1 0 -0 -2
1 1 -1 -1
Tabela 9 – Comparação dos métodos para dois bits com sinal
Método 1:
A quantidade total de bits é 5; a quantidade de bits de magnitude é 4.
24 = 16
0110b = 6d
x = 6 – 16 ; x = -10d
Método 2:
x = –(1∙24) + (0∙23) + (1∙22) + (1∙21) + (0∙20)
Método 3:
/x = 01001b
/x + 1 = 01010b
|x| = 10d x = -10d
Método 1:
A quantidade total de bits é 6; a quantidade de bits de magnitude é 5.
25 = 32
10011b = 19d
x = 19 – 32 ; x = -13d
Método 2:
x = –(1∙25) + (1∙24) + (0∙23) + (0∙22) + (1∙21) + (1∙20)
x = –(1∙32) + (1∙16) + (0∙8) + (0∙4) + (1∙2) + (1∙1)
x = –32 + 16 + 0 + 0 + 2 + 1
x = -13d
Método 3:
/x = 001100b
/x + 1 = 001101b
|x| = 13d x = -13d
Método 1:
A quantidade total de bits é 7; a quantidade de bits de magnitude é 6.
26 = 64
110101b = 53d
x = 53 – 64 ; x = -11d
Método 2:
x = –(1∙26) + (1∙25) + (1∙24) + (0∙23) + (1∙22) + (0∙21) + (1∙20)
x = –(1∙64) + (1∙32) + (1∙16) + (0∙8) + (1∙4) + (0∙2) + (1∙1)
x = –64 + 32 + 16 + 0 + 4 + 0 + 1
x = -11d
Método 3:
/x = 0001010b
/x + 1 = 0001011b
|x| = 11d x = -11d
Método 1:
A quantidade total de bits é 14; a quantidade de bits de magnitude é 13.
213 = 8192
0000101111011b = 379d
x = 379 – 8192 ; x = -7813d
Método 2:
x = –(1∙213) + (0∙212) + (0∙211) + (0∙210) + (0∙29) + (1∙28) + (0∙27) + (1∙26) + (1∙25) + (1∙24) + (1∙23)
+ (0∙22) + (1∙21) + (1∙20)
x = –(1∙8192) + (0∙4096) + (0∙2048) + (0∙1024) + (0∙512) + (1∙256) + (0∙128) + (1∙64) + (1∙32) +
(1∙16) + (1∙8) + (0∙4) + (1∙2) + (1∙1)
x = –8192 + 256 + 64 + 32 + 16 + 8 + 2 + 1
x = -7813d
Método 3:
/x = 01111010000100b
/x + 1 = 01111010000101b
|x| = 7813d x = -7813d
Método 1:
A quantidade total de bits é 5; a quantidade de bits de magnitude é 4.
34 = 81
21103 = (233) + (132) + (131) + (030)
21103 = (227) + (19) + (131) + (030)
21103 = 54 + 9 + 3 + 0
21103 = 66d
x = 66 – 81 ; x = -15d
Método 2:
x = –(1∙34) + (2∙33) + (1∙32) + (1∙31) + (0∙30)
x = –(1∙81) + (2∙27) + (1∙9) + (1∙3) + (0∙1)
x = –81 + 54 + 9 + 3 + 0
x = -15d
Método 1:
A quantidade total de bits é 4; a quantidade de bits de magnitude é 3.
43 = 64
2134 = (242) + (141) + (340)
2134 = (216) + (14) + (31)
2134 = 32 + 4 + 3
2134 = 39d
x = 39 – 64 ; x = -25d
Método 2:
x = –(1∙43) + (2∙42) + (1∙41) + (3∙40)
x = –(1∙64) + (2∙16) + (1∙4) + (3∙1)
x = –64 + 32 + 4 + 3
x = -25d
Método 1:
A quantidade total de bits é 9; a quantidade de bytes de magnitude é 2.
162 = 256
3Fh = (3161) + (15160)
3Fh = 48 + 15
3Fh = 63
x = 63 – 256 ; x = -193d
Método 2:
x = –(1∙162) + (3∙161) + (15∙160)
x = –(1∙256) + (3∙16) + (15∙1)
x = –256 + 48 + 15
x = -193d
x = 11010001b
Base 4 Base 2
0 00
1 01
2 10
3 11
Tabela 1 – Conversão entre base 4 e a base 2
Base 8 Base 2
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Tabela 2 – Conversão entre base 4 e a base 2
Para o bit mais significativo, o carry-out não possui uma casa binária para onde pode ser
enviado, assumindo, então, um outro significado; ele representa o estouro de capacidade de repre-
sentação, overflow (transbordo). Este bit possui significado quantitativo no resultado para a deter-
minação do valor decimal equivalente, porém não faz parte da palavra de saída, a soma, haja vista
que esta palavra precisa, necessariamente, ter a mesma quantidade de bits das duas parcelas. O bit
de overflow permite, então, que o estouro na capacidade de representação não comprometa o sig-
nificado quantitativo da resposta. Sendo assim, se as palavras binárias das parcelas e da soma pos-
suem n bits, então o resultado numérico é formado por n+1 bits.
S = Cy_in + P1 + P2
Conforme foi explicado, todas as palavras binárias envolvidas na adição precisam ter, neces-
sariamente, o mesmo tamanho em bits no contexto dos circuitos digitais. Isso significa que a res-
posta da adição é formada por duas palavras, a saber, a “soma” e o overflow. Se a operação envolve,
apenas, duas parcelas, então a palavra “overflow” é formada por, apenas, um único bit. Se, porém,
a operação envolve três ou mais bits, então a palavra overflow pode ser formada por dois bits ou
mais.
Para os professores de matemática, de engenharia, e na bibliografia correlata, não existe
consenso quanto a formação do resultado da adição binária. Em muitos livros e artigos científicos,
em muitas aulas, é possível observar que muitos eruditos neste assunto consideram que a palavra
“soma” inclui a palavra “overflow”. Nesta interpretação, o bit de overlfow corresponde ao MSb da
palavra da soma.
Qual interpretação está correta? As duas. A corretude, porém, depende da plena compre-
ensão da interpretação adotada. No contexto da matemática pura, a interpretação que determina
que o bit de overlfow consiste do MSb da palavra da soma é mais interessante porque produz um
maior apelo à intuição. No contexto dos sistemas digitais, porém, é mais conveniente considerar
que o bit de overflow não faz parte da palavra “soma”, principalmente quando existe um barra-
mento central de dados.
Em sistemas microcontrolados, onde existe um barramento de dados centralizado, data bus,
a quantidade de bits deste data bus corresponde ao tamanho das duas parcelas e da soma. Isto
significa que o bit de overflow não “cabe” no data bus. Este bit é enviado para um registro de bits
de sinalização. Desta forma, a palavra “soma” não representa o valor verdadeiro do resultado nu-
mérico da adição. Este valor é obtido por meio da adição da palavra “soma” com o bit OV multipli-
cado pela devida potência de “dois”. No caso dos microcontroladores da família 8-bit PIC, o regis-
trador W (work register) recebe os oito bits menos significativos do resultado da operação de adição
das duas parcelas de oito bits. O nono bit, o bit de overflow, é enviado para o registro de sinalização
“C”. Se C=0, então o resultado da adição é dado diretamente pelos oito bits do registro “W”. Se C=1,
então o resultado da adição é dado pelo registro “W” somado a 256.
Nos exemplos numéricos a seguir, será dado o nome “S” (sum) à composição quantitativa
das palavras de overflow e de soma, determinando o resultado quantitativo da adição.
Exemplo 1: A = 4d ; B = 2d
0 0
1 0 0 4
+0 1 0 2
- - - -
1 1 0 6
S = 110b
Exemplo 2: A = 4d ; B = 3d
0 0
1 0 0 4
+0 1 1 3
- - - -
1 1 1 7
S = 111b
Exemplo 3: A = 5d ; B = 1d
0 1
1 0 1 5
+0 0 1 1
- - - -
1 1 0 6
S = 110b
Exemplo 4: A = 5d ; B = 3d
1 1
1 0 1 5
+ 0 1 1 3
- - - -
1 0 0 0 8
Palavra “soma”: 000b = 0d.
Resultado = “soma” + 23 = 0+8 = 8d.
S = 1000b
Exemplo 5: A = 7 ; B = 3
1 1
1 1 1 7
+ 0 1 1 3
- - - --
1 0 1 0 10
Palavra “soma”: 010b = 2d.
Adição = “soma” + 23 = 2+8 = 10
S = 1010b
Exemplo 6: A = 7 ; B = 7
1 1
1 1 1 7
+ 1 1 1 7
- - - --
1 1 1 0 14
Palavra “soma”: 110b = 6d.
Adição = “soma” + 23 = 6+8 = 14
S = 1110b
Exemplo 7, ternário: A = 19 ; B = 14
0 1
2 0 1 19
+ 1 1 2 14
- - - --
1 0 2 0 33
Palavra “soma”: 0203 = 6d.
Adição = “soma” + 33 = 6+27 = 33
S = 1020b
Prof. Marco Aurélio Seluque Fregonezi
46 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
Exemplo 8, hexadecimal:
A = 781 ; B = 1384
0 1
3 0 D 781
+ 5 6 8 1384
- - - ----
8 7 5 2165
S = 875b
A matemática clássica não permite a adição de três parcelas ou mais, porém, no contexto da
engenharia, esta expansão é permitida. Quando existem mais do que duas parcelas, o carregamento
pode ser maior do que “1”. Neste caso, podemos entender que a palavra “carry” é formada por mais
de um bit. Cada bit da palavra “carry” é colocado sobre uma casa binária diferente.
Exemplo 10:
0 0 0
1 0 0 0 8
+0 0 0 1 1
0 1 0 0 4
- - - - --
1 1 0 1 13
Exemplo 11:
1 0
1 0 1 5
+ 1 1 0 6
Prof. Marco Aurélio Seluque Fregonezi
48 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
0 1 0 2
- - - --
1 1 0 1 13
Exemplo 12:
1 1 0
1 1 1 0 14
+ 1 0 1 0 10
0 1 1 1 7
- - - - --
1 1 1 1 1 31
Exemplo 13:
1 1 2 1
1 0 0 1,1 9,5
+ 0 1 0 1,0 5,0
0 1 1 1,1 7,5
- - - - - ----
1 0 1 1 0,0 22,0
Exemplo 14:
2 2 1 1
1 1 1 0,1 14,5
+ 0 1 1 0,0 6,0
0 1 1 1,1 7,5
- - - - - ----
1 1 1 0 0,0 28,0
Exemplo 15:
2 1 1 1 1
1 1 1 0,1 14,5
+ 1 0 1 0,0 10,0
1 1 0 1,1 13,5
- - - - - ----
1 0 0 1 1 0,0 38,0
No exemplo 15, o carry-out do MBb tem valor “dois”. Quando este carry desce para formar
o overflow, ele precisa ser convertido para binário, formando dois bits. Em outras palavras, a palavra
“overflow” é formada por dois bits. A complexidade do procedimento da operação da adição de três
ou mais parcelas com relação aos carregamentos de valores elevados, gerando cargas de dois ou
mais bits mostram que os matemáticos estão corretos quando dizem que a operação de adição
aritmética somente pode ser efetuada para duas parcelas. O cálculo torna-se mais fácil quando, na
ocorrência de três ou mais parcelas, a operação da adição aritmética é efetuada em múltiplas eta-
pas, sempre operando duas parcelas.
Os exemplos 13, 14 e 15 podem ser refeitos usando bits binários nos carregamentos, tor-
nando a análise mais coerente em relação aos circuitos digitais. O carregamento é representado por
uma dupla camada, uma para cada bit. Neste caso, temos uma soma de cinco elementos: as três
parcelas e as duas camadas de carregamento.
Minuendo
Subtraendo
700 40 3
-400 -20 -1
--- -- -
300 20 2 300+20+2 = 322
Neste primeiro exemplo, todas as casas decimais sofrem uma subtração positiva, não sendo
necessário efetuar nenhum empréstimo. Trata-se de uma situação de fácil compreensão e, por isso,
possui caráter introdutório.
700 40 3
-400 -60 -1
--- -- -
300 ?? 2
A subtração do segundo dígito não pôde ser efetuada porque geraria um número negativo.
Considerando que as casas decimais possuem uma progressão de grandeza em dez, é possível sub-
trair uma unidade em uma casa e adicionar dez unidades na casa à direita.
600 140 3
Prof. Marco Aurélio Seluque Fregonezi
52 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
-400 - 60 -1
--- --- -
200 80 2 200+80+2 = 282
700 100
-100 + 40 3
-400 - 60 -1
--- --- -
200 80 2 200+80+2 = 282
Na casa das dezenas, o valor 100d adicionado corresponde ao empréstimo que foi feito so-
bre a casa das centenas e é chamado de borrow out na casa das dezenas – transferência de paga-
mento para o futuro. Na casa das centenas, o valor 100d subtraído corresponde ao empréstimo que
esta casa fez para a casa das dezenas e é chamado de borrow in – recebimento da conta do emprés-
timo feito anteriormente.
1 0
7 4 3
-4 6 1
- - -
2 8 2
743
-668
---
282
R = 282d
700 40 3
-600 -60 -8
--- -- -
300 ?? ?
Nesta subtração, encontramos um resultado negativo tanto para as unidades como para as
dezenas. O dígito das dezenas possui borrow in e borrow out.
700 40 10
-10 3
-600 -60 -8
--- -- -
300 ?? 5
700 100 10
40 3
-100 -10
-600 -60 -8
--- -- -
000 70 5 000+70+5 = 075
O valor 100d adicionado à casa das dezenas corresponde ao empréstimo que foi feito sobre
a casa das centenas e é chamado de borrow out. Ainda na casa das dezenas, o valor 10d subtraído
corresponde ao empréstimo que esta casa fez para a casa das unidades e é chamado de borrow in.
Unidades: 5 = 3 + (1*10) - 0 – 8
Dezenas: 7 = 4 + (1*10) – 1 – 6
Centenas: 8 = 7 + (0*10) – 1 - 6
1 1
7 4 3
-6 6 1
- - -
2 8 2
110b 6
-100b 4
---
010b 2
R = 2d
100b 10b 0b
-100b -00b -0b
--- -- -
000b 10b 0b
4d 2d 0d
-4d -0d -0d
- - -
0d 2d 0d
Neste exemplo, todas as casas binárias sofrem uma subtração positiva, não sendo necessário
efetuar nenhum empréstimo. Trata-se de uma situação de fácil compreensão e, por isso, possui
caráter introdutório.
101b 5
-010b 2
---
011b 3
R=3
100b 00b 1b
-000b -10b -0b
--- -- -
100b ??b 1b
4d 0d 1d
-0d -2d -0d
-- -- --
4d ??d 1d
A subtração do segundo bit não pôde ser efetuada porque geraria um número negativo.
Considerando que as casas binárias possuem uma progressão de grandeza em dois, é possível sub-
trair uma unidade em uma casa e adicionar duas unidades na casa à direita.
100b 100b
-100b + 00b 1
-000b - 10b -0
--- --- -
000b 10b 1 000b + 10b + 1b = 011b
No segundo bit, o valor 100b adicionado corresponde ao empréstimo que foi feito sobre o
terceiro bit e é chamado de borrow out. No terceiro bit, o valor 100b subtraído corresponde ao
empréstimo que este bit fez para o segundo bit e é chamado de borrow in.
Bit 0 1b = 1b + (0b*2) – 0b – 0b 1 0
Bit 1 1b = 0b + (1b*2) – 0b – 1b 1 0 1
Bit 2 0b = 1b + (0b*2) – 1b – 0b -0 1 0
- - -
2 8 2
Exemplo 6: A = 6d; B = 1d, R = A-B
110b 6
-001b 1
---
101b 5
R=5
Método 1
|R| = B-A
|R| = 2; vide resolução no capítulo anterior.
R = -|R|; R = -2
A quantidade de bits em “A” e em “B” é 3.
A quantidade total de bits é 3+1=4.
23 = 8
R´ = 8 - 2 ; R´ = 6
6 = 110b
R = 1110b com sinal.
Método 2
11 0
100b 4
-110b 6
--- --
1110b -2
R = 1110b com sinal.
Método 1
|R| = B-A
|R| = 5; vide resolução no capítulo anterior.
R = -|R|; R = -5
A quantidade de bits em “A” e em “B” é 3.
A quantidade total de bits é 3+1=4.
23 = 8
R´ = 8 - 5 ; R´ = 3
3 = 011b ; R = 1011b com sinal.
Método 2
11 0
001b 1
-110b 6
--- --
1011b -5
R = 1011b com sinal.
Exemplo 3: A = 12; B = 27, R = A-B
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 61
Sistemas digitais – 30/01/2021
Método 1
|R| = B-A; |R| = 27-12; |R| = 15; R = -|R|; R = -15
11 00
11011b 27
-01100b 12
------ --
01111b 15
Método 2
1 001 1
01100b 12
-11011b 27
------ ---
110001b -15
R = 110001b com sinal.
Método 1
|R| = B-A; |R| = 106-83; |R| = 23; R = -|R|; R = - 23
01 0111
1101010b 106
-1010011b 083
-------- ---
0010111b 023
Método 2
11 0 1 0 0 0
1010011b 083
-1101010b 106
-------- ---
11101001b -23
R = 11101001b com sinal.
Parte 09 – Multiplicação
A multiplicação pode ser entendida como sendo um processo de adição em lote. A multipli-
cação é a operação aritmética cujo resultado é chamado de “produto”.
A multiplicação por 2 pode ser efetuada por meio do deslocamento dos bits para a esquerda
(left shift). O bit menos significativo recebe valor zero. A multiplicação por 4 pode ser efetuada por
meio de dois deslocamentos e assim por diante.
Para qualquer base, a multiplicação por esta base é efetuada através do deslocamento dos
dígitos para a esquerda. A multiplicação por esta base ao quadrado é efetuada através de dois des-
locamento dos dígitos para a esquerda.
Primeiramente, será apresentada a multiplicação de um número binário por um número de-
cimal. Esta multiplicação pode ser efetuada através de uma adição cumulativa. Desta forma, ne-
nhum conceito novo é necessário além daqueles apresentados nos capítulos anteriores. É preciso
completar as lacunas com o valor “zero” a fim de respeitar a norma de que a adição somente pode
ser efetuada com palavras de mesmo tamanho de bits. A subtração pode ser usada como um “ata-
lho” para diminuir a quantidade de operações de adição. Neste procedimento, é recomendado que
as adições sejam feitas somente com duas parcelas a fim de respeitar a formalidade matemática.
Exemplo 1: A = 3, P = 2A
3
×2
-
6
Método 1 Método 2
1 1
0 1 1 0 1 1
+0 1 1 ×2
- - - - - -
1 1 0 1 1 0
P = 111b
Exemplo 2: A = 5, P = 4A
5
×4
-
20
Método 1 Método 2
1 0 1 1 0 1 0
1 0 1 1 0 1 0 1 0 1
+ 1 0 1 + 1 0 1 0 ×2
- - - - - - - - - - - - - -
1 0 1 0 1 0 1 0 0 1 0 1 0 0
P = 10100b
4
×3
--
12
4+4=8 8+4=12
1 0 0 1 1 0
0 1 0 0 1 0 0 0 0 1 0 0
+0 1 0 0 +0 1 0 0 ×2
- - - - - - - - - - - -
1 0 0 0 1 1 0 0 1 0 0 0
P = 1100b
6
×5
--
30
Exemplo 5:
10
×7
--
70
Números binários podem ser multiplicados um pelo outro. Para isso, basta observar as ocor-
rências do valor “1” em cada um dos bits do número multiplicador. Cada uma dessas ocorrências
implica na soma de uma parcela. Cada parcela consiste na multiplicação por uma potência de 2. O
expoente é a posição do bit.
Exemplo 6: Exemplo 8:
3 4
×2 ×3
- --
6 12
P = 011b×010b P = 0100b×0011b
P = 011b×21 P = (0100b×21)+(0100b×20)
P = 011b×2 P = (0100b×2)+(0100b×1)
P = 110b P = 1000+0100b
P = 1100b
Exemplo 7:
Exemplo 9:
5
×4 6
- ×5
20 --
30
P = 101b×100b
P = 101b×22 P = 00110b×00101b
P = 101b×4 P = (00110b×22)+(00110b×20)
P = 10100b P = (00110b×4)+(00110b×1)
P = 11000b+00110b
P = 11110b
Exemplo 10:
10
×7
--
70
P = 0001010b×00111b
P = (0001010b×22) + (0001010b×21) + (0001010b×20)
P = (0001010b×4) + (0001010b×2) + (0001010b×1)
P = 0101000b + 0010100b + 0001010b
P = 0111100b + 0001010b
P = 1000110b
Exemplo 11:
Exemplo 12:
4
×3
--
12
Exemplo 13:
10
×7
---
70
Exemplo 14:
0 1 1 1 1 1
3,25 1 1,0 1 1 1 0 1 0,0 0
× 7 ×8 -0 0 0 1 1,0 1
------- - - - - - - - - - - -
22,75 1 1 0 1 1 0 1 1 0,1 1
P = 10110,11b
É possível efetuar a multiplicação entre dois números binários. Trata-se de um método bas-
tante difundido pela bibliografia técnica. Este é um procedimento sistemático que, no final das con-
tas, leva aos mesmos cálculos do procedimento anterior exceto pelo fato de que a subtração não é
usada. Este método apresenta a desvantagem de que, possuindo muitas parcelas, a soma acarreta
na formação de grandes carregamentos entre os dígitos, o que dificulta bastante o cálculo e desres-
peita a definição matemática da operação de adição.
1 1 1 0 0 0
1 0 1 0
+ 1 0 1 0
1 0 1 0
- - - - - - -
1 0 0 0 1 1 0
P = 1000110b
1 1 1 1 0 0
1 1,0 1
+ 1 1 0,1
1 1 0 1
- - - - - - -
1 0 1 1 0,1 1
P = 10110,11b
Exemplo 15:
37 100101
× 27 × 11011
----- ----------
999 1111100111
1 0 1 1 1 1 0 0 0 0
1 0 0 1 0 1
+ 1 0 0 1 0 1
1 0 0 1 0 1
1 0 0 1 0 1
- - - - - - - - - -
1 1 1 1 1 0 0 1 1 1
P = 1111100111b
Exemplo 16:
63 111111
× 31 × 11111
------ -----------
1953 11110100001
1 2 3 4 4 3 2 2 1 0
1 1 1 1 1 1
+ 1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
- - - - - - - - - - -
1 1 1 1 0 0 1 0 0 0 1
P = 11110010001b
Neste exemplo 16, houve acumulação nos carregamentos gerando valores elevados. Nestes
carregamentos, foram empregados números decimais a fim de não sobrecarregar a tabela. Seria
mais estético, porém, se tivessem sido usados, apenas, números binários, porém seria difícil repre-
sentar estes grandes números no lugar dos carregamentos.
Parte 10 – Divisão
A divisão é a operação aritmética cujo resultado é chamado de “quociente”.
Logo nos primeiros passos no processo de aprendizagem do sistema de numeração decimal,
as crianças recebem a informação de que o deslocamento das “casas decimais” para a direita implica
em uma divisão por dez. O mesmo se pode concluir a respeito das outras bases.
Quando esta divisão é inteira, não é necessário acrescentar casas fracionárias. Esta situação
é observada quando o dígito menos significativo, também chamado de “dígito das unidades”, possui
valor zero. Qualquer outra situação, após a divisão, implica no surgimento de dígitos fracionários.
A divisão por 2 pode ser efetuada por meio do deslocamento dos bits para a direita (wright
shift). O bit mais significativo recebe valor zero. A divisão por 4 pode ser efetuada por meio de dois
deslocamentos e assim por diante.
Exemplo 1: Exemplo 4:
4 18
÷2 ÷4
--- ---
1,5 4,5
Q = 100b÷2 Q = 10010,00b÷4
Q = 010b Q = 00100,10b
Exemplo 2: Exemplo 5:
3 2
÷2 ×1,5
--- ---
1,5 3
Exemplo 7: Exemplo 9:
3 3÷2=1,5 8 8÷4=2
×2,5 3×2=6 ×1,25
--- 1,5+6=7,5 --- 2+8=10
7,5 10
2 2÷4=0,5 8 8÷4=2
×1,25 ×3,25 8×2=16
--- 2+0,5=2,5 --- 16+8=24
2,5 26 2+24=26
8 8÷2=4; 8÷4=2;
× 3,75 4+2=6
------- 8×2=16
30 16+8=24
6+24=30
1000b÷2 = 0100b
1000b÷4 = 0010b
0100b+0010b = 0110b
01000b×2 = 10000b
10000b+01000b = 11000b
00110b+11000b = 11110b
Q = 11110b
Imaginemos que seja necessário expressar a distância entre duas cidades, e esta distância
seja dada na forma de “cento e vinte mil metros”. Embora este valor tenha sido expresso por meio
do sistema internacional de unidades (SI), a percepção humana a respeito da distância funciona
melhor se esta quantidade é expressa na forma de “cento e vinte quilômetros). Em grandezas ana-
lógicas, são usados prefixos que auxiliam na eficiente comunicação a respeito de uma determinada
quantidade associada a algum fenômeno físico.
Alguns prefixos usam letras maiúsculas, outros usam letras minúsculas. Em inglês, o prefixo
“quilo” é escrito como “kilo”. Em inglês, o prefixo “giga” é pronunciado como “guiga”. Em espanhol,
o significado da palavra “milhão” é diferente.
Estes mesmos prefixos são usados para expressar quantidades binárias. Embora, no con-
texto da matemática, seja possível representar números binários fracionários, os sistemas físicos
requerem que os números binários sejam todos inteiros. Por esse motivo, somente as potências
positivas são usadas no contexto binário.
A potência de dois que mais se aproxima de 1000 é 1024. Este é o número usado como base
para a formação dos demais prefixos binários.
Prefixo Quantidade
Quilo 10241
Mega 10242
Giga 10243
Tera 10244
Tabela 5 – Os principais prefixos digitais a partir de 1024
Prefixo Quantidade
Quilo 210
Mega 220
Giga 230
Tera 240
Tabela 6 – Os principais prefixos digitais a partir de 2
Prefixo Quantidade
Mega 1024k
Giga 1024M
Tera 1024G
Tabela 7 – A conversão entre os prefixos digitais
Prefixo Quantidade
Quilo 1.024
Mega 1.048.576
Giga 1.073.741.824
Tera 1.099.511.627.776
Tabela 8 – Os principais prefixos digitais na forma explícita
Quando a quantidade determinada de bytes através dos cálculos é fracionada, é preciso ar-
redondar, para cima ou para baixo, dependendo do contexto da aplicação deste cálculo. Se o cálculo
diz respeito à quantidade de memória necessária para armazenar uma quantidade de informação,
então o arredondamento necessário é para cima. Se o cálculo diz respeito à quantidade de bytes
recebida em uma comunicação serial, então o arredondamento necessário é para cima. Estes são,
apenas, dois exemplos de aplicação, mas há incontáveis outras situações possíveis. Para cada uma
delas, é preciso saber qual o correto tipo de arredondamento. A regra de arredondamento da ABNT
não é aplicável nestes casos.
x = 27,046875 kB
Formato Fórmula
AZ1 A
BZ2 AZ1 (BZ1)+A
CZ3 BZ2 AZ1 (CZ2Z1)+(BZ1)+A
DZ4 CZ3 BZ2 AZ1 (D Z3Z2Z1)+(CZ2Z1)+(BZ1)+A
Tabela 3 – Fórmula para conversão para decimal
A tabela 1 mostra um erro presente na base 1,5. O número 011, nesta base, deveria ser
menor do que o número 100, mas o valor decimal mostra que ele é mais alto. Esse erro é decorrente
da não linearidade na determinação dos valores inteiros em relação ao número que determina a
base.
A tabela 2 mostra um erro presente na base 2,5. O número 0222, nesta base, deveria ser
menor do que o número 1000, mas o valor decimal mostra que ele é mais baixo. O gráfico abaixo
revela a não-linearidade da tabela 2. Por causa desta não-linearidade, o método das divisões suces-
sivas não pode ser aplicado na conversão de um número decimal para estas bases fracionárias.
20
18
16
14
12
10
8
6
4
2
0
1 3 5 7 9 11 13 15 17 19 21 23 25 27
50
40
30
20
10
0
1 4 7 10131619222528313437404346495255586164
O gráfico da progressão da base 3,5 foi obtido no Microsoft Excel por meio da construção
das sessenta e cinco primeiras combinações e do uso da fórmula abaixo, onde “n” é substituído pelo
número da linha:
“ = (An*3,5*3,5*3,5)+(Bn*3,5*3,5)+(Cn*3,5)+Dn ”
Unidade 2
Álgebra booleana
Unicidade
A teologia ocidental cristã defende a tese de que o ser humano é único, e, como tal, insubs-
tituível em sua essência. Em todo o mundo, em toda a história da humanidade, jamais existirão duas
pessoas totalmente idênticas. Os desenhos formados pelas impressões digitais e a leitura biométrica
pela íris e pela retina são uma evidência da unicidade do ser humano.
As ciências jurídicas estão, todas elas, apoiadas no pilar da unicidade. Sem este princípio,
não é possível efetuar uma correta aplicação do direito civil. A unicidade jurídica é aplicada tanto
para pessoa física como para pessoa jurídica. Se algo não é único como ente jurídico, então o direito
não pode ser aplicado sobre ele. Por exemplo, se duas pessoas possuem, exatamente, o mesmo
nome, e esta é a única informação disponível, então nenhuma ação jurídica pode ser exercida sobre
estas pessoas até que a unicidade seja obtida.
O conceito da unicidade está associado ao conceito da identidade. Somente possui identi-
dade aquilo que é único. Dois elementos são denominados “idênticos” em relação a um determi-
nado aspecto quando, dentro deste escopo de análise, não há distinção entre um e outro, não sendo
possível identificar “qual é qual”.
Existência
A teologia ocidental cristã defende a tese de que o ser humano existe, bem como toda a
natureza, pois, se esta teologia faz referência ao “Deus Criador”, então algo foi criado e, se esse algo
foi criado, então esse algo existe.
As ciências jurídicas estão, todas elas, apoiadas no pilar da existência. Sem este princípio,
não é possível efetuar uma correta aplicação do direito civil. A existência jurídica é aplicada tanto
para pessoa física como para pessoa jurídica. Se algo não existe como ente jurídico, então o direito
não pode ser aplicado sobre ele. Por exemplo, se uma pessoa real não tem a sua identidade reve-
lada, então nenhuma ação jurídica pode ser exercida sobre estas pessoas até que a sua existência
jurídica seja obtida.
A existência é uma qualidade associada à sua capacidade de interação com o cosmos – o
antônimo de caos – seja fisicamente, seja metafisicamente. A existência pode ser provada, mas a
inexistência não. A inexistência é apenas a ausência de uma prova de existência; a inexistência per-
dura somente até a obtenção da evidência da existência.
No contexto da criminologia, a existência de um dolo ou uma culpa pode ser provada, mas
não é possível provar a inexistência de um crime. É possível provar que alguém é culpado, mas im-
possível é provar que alguém é inocente. Com base nesta lógica, existe o milenar princípio do “in
dubio pro reo”, observado no artigo 386 do Código de Processo Penal.
Uma situação que evidencia a existência do ente em análise é chamada de termo. “Termo”
é uma situação que comprova a existência daquilo que se observa. Em uma acusação criminal, os
termos da acusação seriam as evidências coletadas que confirmariam tal acusação. Se uma acusação
não possui nenhum termo juridicamente válido, ela é rejeitada segundo o artigo 395 do Código de
Processo Penal.
Um contrato juridicamente válido possui um ou mais termos, isto é, a especificação das si-
tuações reais nos quais este contrato é relevante, é atuante, bem como a maneira como este con-
trato manifesta sua relevância em tais situações. Caso não haja nenhuma situação plausível ou viá-
vel na qual o contrato seja relevante, então podemos dizer que este contrato “não existe”. Um
exemplo de contrato não existente seria: “Se o planeta Terra chocar-se contra o Sol, então o cliente
receberá uma indenização.”
Para cada termo, é preciso que o contrato afirme, inequivocamente, as medidas a serem
tomadas. Se for constatada a presença de um termo não coberto, ou seja, uma situação factível cuja
resposta contratual não esteja especificada, então o contrato está incompleto e precisa ser feito,
pois, no contrário, caso a situação não coberta aconteça, o contrato não oferece a resposta neces-
sária e uma desgastante e interminável batalha judicial está criada. Existem advogados especializa-
dos em contratos e distratos e que prestam assessoria às partes envolvidas.
O teorema da existência precede o teorema da unicidade. Para que algo seja único é preciso
que este algo primeiramente exista. Se algo não existe, o princípio da unicidade não pode ser apli-
cado.
Termos da função
Uma função booleana é uma fórmula matemática e, como tal, não pode ser provada ou re-
futada fisicamente, mas, apenas, numericamente.
Uma função analógica existe quando, a partir de sua aplicação, podemos determinar, pelo
menos, um ponto no espaço cartesiano unidimensional, bidimensional ou tridimensional. Uma fun-
ção booleana existe quando existe, pelo menos, um termo que a satisfaz. Por exemplo, se definimos
a função y(x), e se consideramos que a função “y” existe, então, seguramente, existe, pelo menos,
um valor de “x” para o qual a aplicação da fórmula dada por y(x) promova a definição de um valor
único e inequívoco para “y”.
Em álgebra booleana, o conceito de “satisfação da função” ou de “verificação da função”
pode ser observado tanto por meio do valor “zero” como por meio do valor “um”. A primeira opção
é chamada de “análise de zeros” e a segunda de “análise de uns”. Não é necessário efetuar as duas
observações, pois o princípio da exclusão – principium tertii exclusi – garante que as duas análises
são equivalentes (embora diferentes). Se você possui um balde contendo bolas de gude verdes e
vermelhas, você pode fazer a separação coletando as verdes ou as vermelhas; as duas opções geram
exatamente a mesma separação, embora os procedimentos sejam diferentes.
Na análise de “zeros”, a existência da função é confirmada se há, pelo menos, uma situação
na qual esta função retorne o valor “zero”. Igualmente, na análise de “uns”, a existência da função
é confirmada se há, pelo menos, uma situação na qual esta função retorne o valor “um”.
Quando uma situação possui todas as suas variáveis inequivocamente definidas, então ela é
chamada de “termo”. A definição de um termo requer, obrigatoriamente, a definição clara do valor
lógico de todas as variáveis de entrada do sistema. Sem esta definição, não é possível identificar o
termo. Por exemplo, em um contrato, a aplicação de um determinado termo requer que sejam ob-
servadas todas as circunstâncias contratuais que definem este termo; se alguma circunstância não
é observada, se a sua análise é nebulosa, então o termo não está definido.
Se uma função booleana é definida como Z(D,C,B,A), temos, então, que “Z” é a variável de
saída ou variável dependente, e que “D”, “C”, “B” e “A” são as variáveis de entrada ou variáveis
independentes. Nesta função, todos os termos precisam ser, também, função de TODAS as variáveis
de entrada, a saber, “D”, “C”, “B” e “A”. Se alguma destas variáveis está ausente em alguma expres-
são, então esta expressão não é um termo da função, pois a(s) variável(is) ausente(s) representa(m)
algum parâmetro nebuloso, indeterminado.
Uma expressão booleana definida unicamente através de seus termos é considerada canô-
nica. Esta seria a maneira mais concisa de explicação de uma determinada função. Segundo o Léxico
Dicionário de Português Online, o terceiro significado da palavra “cânone” é dado por “ligação apre-
sentada em forma de lista, catálogo, entre outros”; esta lista seria a ordenação dos termos; o catá-
logo seria a representação ordenada dos termos da função.
Prof. Marco Aurélio Seluque Fregonezi
92 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
No contexto da álgebra booleana, não existe definição de “maior” ou “menor” haja vista que
os valores “zero” e “um” são uma representação do conceito metafísico de verdadeiro ou falso.
Apesar disso, por razões didáticas, a análise de “zero” é considerada a análise do menor, e a análise
de “uns” é considerada a análise do maior. Esta abordagem faz sentido na ocasião da materialização
da álgebra booleana na forma de circuitos elétricos, onde o valor lógico “um” está relacionado a
uma tensão elétrica maior do que aquela relacionada ao valor “zero”.
O filósofo polonês Jan Łukasiewicz concebeu um sistema lógico de múltiplos valores onde
existe a quantização dos valores lógicos, no qual se pode dizer que um certo valor é maior do que
outro valor. Este, porém, não é assunto para este curso.
/0 = 1
/1 = 0
/A A
Se A = 0, então /A = 1.
Se A = 1, então /A = 0.
Se A = 0 e B = 0, então A = B.
Se A = 1 e B = 1, então A = B.
Se A = 0 e B = 1, então A B.
Se A = 1 e B = 0, então A B.
Se A = 0 e B = 0, então A /B.
Se A = 1 e B = 1, então A /B.
Se A = 0 e B = 1, então A = /B.
Se A = 1 e B = 0, então A = /B.
Definida a inversão lógica, é preciso definir os conectivos lógicos. Conectivo lógico é a ope-
ração lógica responsável por conectar duas variáveis gerando uma terceira variável. Esta conexão
precisar pautar-se em algum valor lógico de referência. Se, na lógica booleana, existem, apenas,
dois valores, então somente dois conectivos lógicos podem ser definidos.
O conectivo lógico que atenta para o valor “zero” pode ser chamado de “operação de mí-
nimo” ou “conjunção” no contexto da lógica proposicional. No contexto da filosofia, este conectivo
é chamado de “intersecção”. No contexto da álgebra booleana, este conectivo é chamado de “mul-
tiplicação lógica”. No contexto dos sistemas digitais, este conectivo é chamado de “E lógico” – AND.
O conectivo lógico que atenta para o valor “um” pode ser chamado de “operação de má-
ximo” ou “disjunção” no contexto da lógica proposicional. No contexto da filosofia, este conectivo
O teorema da unicidade aplicado aos termos diz que a identificação dos termos precisa ser
inequívoca. Para tal, cada termo precisa ser “satisfeito” para uma e apenas uma combinação das
variáveis de entrada. Este é o motivo porque os termos são função de TODAS as variáveis da função.
Os termos de uma função canônica precisam ser únicos, ou seja, quando um deles é acio-
nado, nenhum outro pode sê-lo. Usando a analogia do contrato, a análise de um cenário precisa ser
única, ou seja, todos os parâmetros relevantes precisam ser plenamente conhecidos, tanto qualita-
tivamente quanto quantitativamente. Se existe algum parâmetro ambíguo, então o cenário não é
único.
A função booleana canônica pode ser definida por meio do produtório de maxtermos ou por
meio do somatório de mintermos.
Se a função existe, então ela possui pelo menos um termo, que pode ser maxtermo ou min-
termo. Em outras palavras, se a função existe na análise de “zeros”, então existe, pelo menos, um
maxtermo e, se a função existe na análise de “uns”, então existe, pelo menos, um mintermo. Usando
a analogia do contrato, podemos dizer que, se o contrato existe, então também existe, pelo menos,
uma situação na qual este contrato seja aplicável. Se esta situação não existe, então, por conse-
quência, o contrato também não existe.
Na análise de “zeros”, se, para que a função exista, é preciso que também exista, pelo me-
nos, um maxtermo, e considerando que este termo ofereça, quando selecionado, o valor em análise,
o “zero”, então a ocorrência deste “zero” é suficiente e determinante para a qualificação da exis-
tência da função, existência esta que é apontada pelo valor “zero” na variável de saída da função.
Desta forma, este valor “zero” precisa prevalecer em detrimento da ocorrência do valor “um” dos
maxtermos inválidos. O conectivo lógico segundo o qual o valor “zero” tem precedência sobre o
valor “um” é a multiplicação lógica, o operador AND. Isso explica porque, na análise canônica de
zeros, temos um produtório.
Na análise de “uns”, se, para que a função exista, é preciso que também exista, pelo menos,
um mintermo, e considerando que este termo ofereça, quando selecionado, o valor em análise, o
“um”, então a ocorrência deste “um” é suficiente e determinante para a qualificação da existência
da função, existência esta que é apontada pelo valor “um” na variável de saída da função. Desta
forma, este valor “um” precisa prevalecer em detrimento da ocorrência do valor “zero” dos minter-
mos inválidos. O conectivo lógico segundo o qual o valor “um” tem precedência sobre o valor “zero”
é a adição lógica, o operador OR. Isso explica porque, na análise canônica de uns, temos um soma-
tório.
Os termos precisam respeitar a premissa da unicidade. O acionamento de um termo ocorre
por meio de uma e apenas uma combinação das variáveis de entrada. A combinação das variáveis
de entrada é determinada por meio da indexação dos termos em uma espécie de conversor biná-
riodecimal, aquilo que, no contexto dos circuitos digitais, é chamado de “decodificador”. A com-
binação é determinada por meio da inversão ou não – operação NOT - das variáveis de entrada. Tais
variáveis, em sua forma original e complementada, formam um barramento cuja função é a seleção
do termo vigente.
Na análise de “zeros”, se, para que o maxtermo seja único, é preciso que o conectivo lógico
forneça, em sua saída, o valor “zero” somente quando todas as suas entradas recebem o valor
“zero”. Em qualquer outra situação, este conectivo lógico precisa fornecer “o outro valor”, o valor
indicativo da não-seleção, a saber, “um”. Diante destes critérios, é possível concluir que, para este
conectivo lógico, o valor em análise, o “zero”, é o valor de menor peso, o elemento neutro, e que o
valor “um” é o valor de maior peso, o elemento nulo. O conectivo lógico que satisfaz a este critério
é a adição lógica, o operador OR Isso explica porque, na análise canônica de zeros, temos maxter-
mos, pois o conectivo OR prioriza o maior valor.
Na análise de “uns”, se, para que o mintermo seja único, é preciso que o conectivo lógico
forneça, em sua saída, o valor “um” somente quando todas as suas entradas recebem o valor “um”.
Em qualquer outra situação, este conectivo lógico precisa fornecer “o outro valor”, o valor indicativo
da não-seleção, a saber, “zero”. Diante destes critérios, é possível concluir que, para este conectivo
lógico, o valor em análise, o “um”, é o valor de menor peso, o elemento neutro, e que o valor “zero”
é o valor de maior peso, o elemento nulo. O conectivo lógico que satisfaz a este critério é a multi-
plicação lógica, o operador AND. Isso explica porque, na análise canônica de uns, temos mintermos,
pois o conectivo AND prioriza o menor valor.
Considerando que o princípio da existência precede o princípio da unicidade, então, em uma
análise de “zeros”, a multiplicação precede a adição, isto é, possui uma hierarquia superior. No caso
da análise de “uns”, a adição precede a multiplicação. Por causa desta hierarquia, é necessário que
a expressão algébrica da função canônica faça uso dos parênteses para indicar os termos.
Neste exemplo de pensamento implícito, o primeiro parágrafo consiste de dois termos; ele
abrande as seguintes situações:
Fazer sol e ser domingo.
Fazer sol e não ser domingo.
Existem diversas maneiras diferentes para a definição de uma função booleana, dentre as
quais a mais útil é a expressão algébrica, pois ela fornece a lei de formação do resultado da aplicação
desta função; ela apresenta uma fórmula matemática que traduz o comportamento do sistema fí-
sico responsável pela implementação da função. Todas as outras formas de definição de funções
booleanas são decorrentes da expressão algébrica.
Uma expressão algébrica escrita na forma canônica é aquela que não faz uso de nenhum
método de minimização. Minimização é o procedimento de redução do tamanho da expressão al-
gébrica sem a alteração do seu comportamento e é assunto para outros capítulos. Um circuito lógico
está na forma canônica quando é construído a partir da expressão algébrica na forma canônica.
A forma canônica consiste de um conjunto de termos. Em um contexto filosófico ou jurídico,
termos são as situações que satisfazem as exigências ou demandas. No contexto da álgebra boole-
ana, termos são as combinações das variáveis de entrada que tornam verdadeira a variável de saída.
Análise Estrutura
Uns min{ termo#1, termo#2, termo#3, ...}
Zeros max{ termo#1, termo#2, termo#3, ...}
Tabela 1 – Estrutura das funções canônicas
Dentro da filosofia, o teorema da unicidade afirma que um termo precisa ser satisfeito para
uma e apenas uma combinação das variáveis de entrada. Cada termo é selecionado por um único
endereço e cada endereço aponta para um único termo (relação biunívoca). Não existe termo sem
endereço e não existe endereço sem termo, muito embora o sistema físico possa conter endereços
que não apontem para nenhum circuito lógico. Em decorrência deste teorema, toda tabela-verdade
precisa estar completa, contendo uma linha para cada endereço das variáveis de entrada.
No contexto das reações químicas, existe o conceito da acidez, media por meio do “pH”.
Uma substância com um pH com valor sete seria considerada neutra. A neutralidade seria a carac-
terística de não reagir com outras substâncias. Em uma disputa esportiva ou jurídica, é necessário
que o juiz ou árbitro seja neutro, ou seja, ele não pode ser favorável a nenhuma das partes envolvi-
das. A neutralidade implica da impossibilidade de que os interesses próprios afetem as decisões
tomadas. No contexto da álgebra booleana, um número – zero ou um – é considerado neutro
quando a sua operação com outro número não altera o valor deste outro número.
Uma operação booleana somente fornece o elemento neutro quando todas as suas variáveis
de entrada recebem este valor neutro. Para que a condição da unicidade seja satisfeita, o conectivo
lógico usado precisa ser aquele para o qual o valor analisado seja o elemento neutro. Por essa razão,
a análise de “zeros” utiliza maxtermos, pois o conectivo lógico OR possui, como elemento neutro, o
valor lógico “zero”. A análise de “uns” utiliza mintermos, pois o conectivo lógico AND possui, como
elemento neutro, o valor lógico “um”.
O teorema da existência afirma que, para que a função exista, então ela precisa ser satisfeita
para, pelo menos, uma combinação das variáveis de entrada. Em outras palavras, existe, pelo me-
nos, um termo que satisfaz a função.
No contexto das reações químicas, existe o conceito da anulação da reação. Por exemplo,
em um processo de combustão, a retirada do oxigênio interrompe o processo imediatamente. Em
um processo jurídico criminal, o procedimento é encerrado imediatamente quando chega a notícia
de que o réu está morto. A nulidade implica da impossibilidade de que as ações anteriores conti-
nuem em andamento. No contexto da álgebra booleana, um número – zero ou um – é considerado
nulo quando a sua operação com outro número despreza o valor deste outro número e impõe o
valor nulo.
Para que a satisfação do termo implique na satisfação da função completa, é preciso que o
conectivo lógico empregado para ligar os termos, caso eles existam em quantidade igual ou superior
a dois, precisa ser aquele para o qual o valor analisado seja o elemento nulo. Por essa razão, a análise
de “zeros” utiliza produtório, pois o conectivo lógico AND possui, como elemento nulo, o valor lógico
“zero”. A análise de “uns” utiliza somatório, pois o conectivo lógico OR possui, como elemento nulo,
o valor lógico “um”.
isto não é uma regra. Qualquer outra forma de definição destas funções pode ser convertida, dire-
tamente, para a expressão canônica.
Embora não seja uma regra obrigatória, um cuidado com a estética e a elegância impõe que
a expressão algébrica canônica seja construída por meio do ordenamento de termos em acordo com
a tabela-verdade. A não observação desta recomendação acarreta em maior dificuldade na inter-
pretação desta expressão algébrica. Para os estudantes iniciantes, é recomendado que, ao escrever
a expressão algébrica, seja colocado um pequeno número acima de cada célula indicando o número
decimal relativo ao endereço de cada termo.
C = max{1}
C = min{0,2,3}
/C = max{0,2,3}
/C = min{1}
B A C /C
0 0 1 0
0 1 0 1
1 0 1 0
1 1 1 0
Tabela 7 – Exemplo 1 – Tabelas verdade
C /C
decimal B A zeros uns zeros uns
0 0 0 /B/A B+A
1 0 1 B+/A /BA
2 1 0 B/A /B+A
3 1 1 BA /B+/A
Tabela 8 – Exemplo 1 – Definição de termos
C = B+/A
C = (/B/A)+(B/A)+(BA)
/C = (B+A)(/B+A)(/B+/A)
/C = /BA
D = max{0,3,4,5,6}
D = min{1,2,7}
/D = max{1,2,7}
/D = min{0,3,4,5,6}
C B A D /D
0 0 0 1 0
0 0 1 0 1
0 1 0 1 0
0 1 1 0 1
1 0 0 0 1
1 0 1 0 1
1 1 0 0 1
1 1 1 1 0
Tabela 9 – Exemplo 2 – Tabelas verdade
D /D
decimal C B A zeros uns zeros uns
0 0 0 0 /C/B/A C+B+A
1 0 0 1 C+B+/A /C/BA
2 0 1 0 /CB/A C+/B+A
3 0 1 1 C+/B+/A /CBA
4 1 0 0 /C+B+A C/B/A
5 1 0 1 /C+B+/A C/BA
6 1 1 0 /C+/B+A CB/A
7 1 1 1 CBA /C+/B+/A
Tabela 10 – Exemplo 2 – Definição de termos
D = (C+B+/A)(C+/B+/A)(/C+B+A)(/C+B+/A)(/C+/B+A)
D = (/C/B/A)+(/CB/A)+(CBA)
/D = (C+B+A)(C+/B+A)(/C+/B+/A)
/D = (/C/BA)+(/CBA)+(C/B/A)+(C/BA)+(CB/A)
E = max{0,1,2,6,7,8,10}
E = min{3,4,5,9,11,12,13,14,15}
/E = max{3,4,5,9,11,12,13,14,15}
/E = min{0,1,2,6,7,8,10}
D C B A E /E
0 0 0 0 0 1
0 0 0 1 0 1
0 0 1 0 0 1
0 0 1 1 1 0
0 1 0 0 1 0
0 1 0 1 1 0
0 1 1 0 0 1
0 1 1 1 0 1
1 0 0 0 0 1
1 0 0 1 1 0
1 0 1 0 0 1
1 0 1 1 1 0
1 1 0 0 1 0
1 1 0 1 1 0
1 1 1 0 1 0
1 1 1 1 1 0
Tabela 11 – Exemplo 3 – Tabelas verdade
E /E
decimal D C B A zeros uns zeros uns
0 0 0 0 0 D+C+B+A /D/C/B/A
1 0 0 0 1 D+C+B+/A /D/C/BA
2 0 0 1 0 D+C+/B+A /D/CB/A
3 0 0 1 1 /D/CBA D+C+/B+/A
4 0 1 0 0 /DC/B/A D+/C+B+A
5 0 1 0 1 /DC/BA D+/C+B+/A
6 0 1 1 0 D+/C+/B+A /DCB/A
7 0 1 1 1 D+/C+/B+/A /DCBA
8 1 0 0 0 /D+C+B+A D/C/B/A
9 1 0 0 1 D/C/BA /D+C+B+/A
10 1 0 1 0 /D+C+/B+A D/CB/A
11 1 0 1 1 D/CBA /D+C+/B+/A
12 1 1 0 0 DC/B/A /D+/C+B+A
13 1 1 0 1 DC/BA /D+/C+B+/A
14 1 1 1 0 DCB/A /D+/C+/B+A
15 1 1 1 1 DCBA /D+/C+/B+/A
Tabela 9 – Exemplo 3 – Definição de termos
E = (D+C+B+A)(D+C+B+/A)(D+C+/B+A)(D+/C+/B+A)(D+/C+/B+/A)(/D+C+B+A)
(/D+C+/B+A)
E = /D/CBA)+(/DC/B/A)+(/DC/BA)+(D/C/BA)+(D/CBA)+(DC/B/A)+
+(DC/BA)+(DCB/A)+(DCBA)
/E = (D+C+/B+/A)(D+/C+B+A)(D+/C+B+/A)(/D+C+B+/A)(/D+C+/B+/A)(/D+/C+B+A)
(/D+/C+B+/A)(/D+/C+/B+A)(/D+/C+/B+/A)
/E = (/D/C/B/A)+(/D/C/BA)+(/D/CB/A)+(/DCB/A)+(/DCBA)+
+(D/C/B/A)+(D/CB/A)
A filosofia positivista é formada pelo pensamento positivo. Por “positivo”, entendem-se tudo
aquilo que pode ser comprovado e confirmado. Somente os fenômenos naturais podem ser confir-
mados (isto é, positivados). Em outras palavras, a filosofia positivista se foca, unicamente, na ima-
nência, na ciência, fazendo descarte completo da transcendência, evidenciando um rompimento
com as heranças do pensamento tomista. A República Federativa do Brasil foi regulamentada a par-
tir do pensamento positivista. A pedagogia republicana brasileira possui forte viés positivista e con-
siste de um rompimento com as heranças do método pedagógico dos jesuítas, o Ratio Studiorum.
No contexto da álgebra booleana, a positivação é chamada de operação “YES”. No contexto
da moderna cultura urbana ocidental, um exemplo clássico da aplicação filosófica da operação YES
seriam as pessoas classificadas como NPC (non-player character), que seria aquela pessoa que não
possui a capacidade de dizer um “não” de cunho doutrinário, aquela pessoa que apenas repete
aquilo que foi ensinada a dizer. A operação YES consiste da repetição na saída do valor da entrada.
Os circuitos integrados que proporcionam esta função são chamados de buffer. Embora esta
função não provoque nenhuma alteração booleana na variável de entrada, ela é importante por
causa deste buffer.
O buffer é a etapa de saída de todo circuito eletrônico usado nas portas lógicas. Suas princi-
pais funções são:
1. Efetuar o casamento de impedância – vide o teorema da máxima transferência de
energia no acoplamento de circuitos elétricos.
2. Ajustar os valores de tensão elétrica e de corrente elétrica para um determinado pa-
drão, como, por exemplo, TTL, ECL e CMOS.
3. Aumentar o fan-out, a capacidade de uma saída digital em alimentar várias outras
entradas digitais.
No pensamento lógico, toda proposição pode ser negada. Não existe proposição que não
possa ser negada. Um exemplo de uma não-proposição seria uma indagação, isto é, uma pergunta.
Uma pergunta não pode ser confirmada nem refutada, mas, apenas, respondida, e esta resposta
pode ser um “sim”, um “não” ou qualquer outra palavra ou valor numérico. Por outro lado, uma
proposição não pode ser respondida, mas, apenas, confirmada ou refutada. Confirmar uma propo-
sição seria, por meio de alguma análise, repeti-la. Refutar uma proposição seria apresentar uma
análise que resulte na proposição contrária à original.
Exemplo 1:
Proposição: “O dia está ensolarado”.
Refutação 1: “O dia está nublado”.
Refutação 2: “Está de noite”.
Exemplo 2:
Proposição: “O Brasil é uma república rica”.
Refutação 1: “O Brasil é uma monarquia”.
Refutação 2: “O Brasil é um país pobre”.
Refutação parcial: “O Brasil é rico culturalmente mas pobre financeiramente”.
Seção é uma “fatia” de alguma entidade. Interseção é uma fatia que faz parte de duas enti-
dades ao mesmo tempo. Para que a interseção exista, as duas entidades precisam existir ao mesmo
tempo.
Na língua portuguesa, a conjunção lógica é retratada por meio da palavra “e”. Esta palavra
não pode ser interpretada no sentido da conjunção gramatical, pois, na língua portuguesa, esta pa-
lavra pode ser usada em aplicação estática ou temporal, mas, no contexto da álgebra booleana, o
contexto é, unicamente, estático.
Prof. Marco Aurélio Seluque Fregonezi
106 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
Embora a conjunção seja definida para, apenas, duas variáveis de entrada, ela pode ser ex-
trapolada para três ou mais entradas.
Exemplos:
Eu vou ao cinema se eu tiver dinheiro e se o filme for muito bom.
A solda é formada por chumbo e por estanho.
O fôlego é determinado pelo sistema circulatório e pelo sistema respiratório.
A sabedoria é obtida por meio da observação e pela análise.
Mas agora permanecem estas três: a fé, a esperança, a caridade (1 Coríntios 13:13).
A palavra “união” significar “tornar único”. Unir o escopo de validação de uma proposição
com o de outra proposição significa que qualquer possibilidade prevista por estes dois escopos é
suficiente para validar a proposição resultante.
Em língua portuguesa, a disjunção é retratada por meio da palavra “ou”. Em outras palavra,
a disjunção poderia ser usada por meio da expressão “um, outro ou ambos”.
Exemplos:
1. Eu vou passear se eu estiver de folga ou se for domingo.
2. Eu vou beber água se eu estiver com sede ou se for praticar atividade física.
3. Eu vou comprar o produto se eu precisar dele ou se o custo for muito baixo.
4. Eu vou investir na poupança se o rendimento for bom ou se eu tiver dinheiro so-
brando.
Todas estas quatro proposições consideram, também, a hipótese de que as duas premissas
sejam satisfeitas ao mesmo tempo, conforme as análises a seguir:
Nestes quatro primeiros exemplos, temos um efeito cumulativo, ou seja, quando as duas
condições são satisfeitas individualmente, há um estímulo para o cumprimento do termo, mas,
quando as duas condições são satisfeitas ao mesmo tempo, o estímulo é maior. Mas, também, há
situações não cumulativas, como, o exemplo 5.
No contexto da álgebra booleana, esta operação é camada de “adição lógica”.
Os circuitos integrados que proporcionam esta função são chamados de OR. Exemplos de
circuitos integrados comerciais da porta OR são o 74LS32 e o 4071.
Considerando que esta operação permite a satisfação de uma ou duas premissas, ela tam-
bém é chamada de “ou inclusivo”, “inclusive OR”, “IOR”.
A expressão “união inclusiva” implica na liberdade para satisfazer uma das premissas mas
não ambas.
Exemplos:
1. Eu vou comer churrasco ou pizza.
2. Eu vou trabalhar na fábrica de tecidos ou na fábrica de fármacos.
3. O preenchimento do formulário requer o número do CPF ou do título de eleitor.
4. A lâmpada pode estar acesa ou apagada.
Todas estas quatro proposições desconsideram a hipótese de que as duas premissas sejam
satisfeitas ao mesmo tempo, conforme as análises a seguir:
1. Eu vou comer churrasco ou pizza, mas, como cada uma das opções correspondem a
uma refeição completa, então não é possível optar pelas duas ao mesmo tempo.
2. Eu vou trabalhar na fábrica de tecidos ou na fábrica de fármacos, porém, como cada
uma das empresas exigem dedicação exclusiva, então não é possível assinar contrato
de trabalho nas duas ao mesmo tempo.
3. O preenchimento do formulário requer o número do CPF ou do título de eleitor, e,
como há, somente, um único campo para preenchimento do número de identifica-
ção, então não é possível usar os dois documentos no mesmo formulário.
4. A lâmpada pode estar acesa ou apagada. Se consideramos que a lâmpada acesa re-
cebe a corrente elétrica nominal e que a lâmpada apagada recebe uma corrente nula,
então não é possível manter a lâmpada acesa e apagada ao mesmo tempo.
Os circuitos integrados que proporcionam esta função são chamados de OR. Exemplos de
circuitos integrados comerciais da porta OR são o 74LS86 e o 4070. Esta operação também pode ser
chamada de “ou exclusivo”, “exclusive OR”, “EOR”.
Os exemplos apresentados para a operação de IOR e para a operação de XOR mostram que
a distinção semântica entre uma operação e a outra nem sempre é tarefa fácil; há muitos casos
onde o preletor constrói sua narrativa considerando que a distinção é óbvia e evidente, porém nem
sempre o leitor ou a audiência entendem a mensagem com a devida clareza, incorrendo no risco de
fazer uma interpretação equivocada. Na maioria das ocasiões, tal erro de interpretação provoca
resultados irrelevantes e desprezíveis, mas há casos onde esse erro leva a decisões desastrosas. A
elaboração de contratos que usufruam de fé pública requerem o cuidadoso e meticuloso uso dos
recursos gramaticais, principalmente no caso dos conectivos lógicos. Descuidos desta natureza já
renderam grandes prejuízos financeiros no mundo dos negócios.
No operador AND, a função retorna “zero” se, pelo menos, uma entrada vale “zero.
No operador OR, a função retorna “um” se, pelo menos, uma entrada vale “um.
Juntando a operação NOT com as operações AND e OR é possível obter as funções NAND e
NOR. Considerando que, em tecnologia CMOS, as funções são geradas naturalmente na forma com-
plementada, então as portas lógicas NAND e NOR são mais simples do que as portas lógicas AND e
OR, respectivamente.
Considerando que dois, três e quatro bits formam um número nas bases quatro, oito e de-
zesseis, respectivamente, então estes operadores podem ser usados nestas bases.
B AND A = 10001b
B IOR A = 11011b
B NAND A = 01110b
B NOR A = 00100b
B XOR A = 01010b
B AND A = 0304
B IOR A = 3314
B NAND A = 3034
B NOR A = 0024
B XOR A = 3014
B AND A = 32Ch
B IOR A = 77Fh
B NAND A = CD3h
B NOR A = 880h
B XOR A = 453h
1. Lista de termos
2. Tabela verdade
3. Expressão algébrica
4. Gráfico
5. Mapa de Karnaugh
6. Diagrama de Venn
7. Circuito lógico
1 – Lista de termos
No critério da concisão, a lista de termos é, sem dúvida, a melhor forma de definição. Trata-
se de uma lista de situações nas quais a função é satisfeita, seja com zeros, seja com uns. A lista
contém os maxtermos, no caso de análise de zeros, ou os mintermos, no caso de análise de zeros.
Os termos são representados por meio do seu índice, isto é, um número decimal que indica a sua
ordem na lista de possibilidades totais. A lista de termos foi apresentada no capítulo sobre a forma
canônica.
2 – Tabela verdade
No que diz respeito ao apelo à intuição, a tabela verdade é a mais adequada. Diferentemente
da lista de termos, a tabela verdade é a mesma seja para análise de zeros, seja para análise de uns.
A tabela apresenta todas as combinações das variáveis de entrada e, na coluna da direita, mostra o
valor da variável de saída para cada uma destas combinações. A desvantagem da tabela verdade é
que ela não pode ser apresentada de maneira textual.
A B B A C
0 0 0 0 0
1 1 0 1 1
Tabela 1 – B(A) 1 0 1
1 1 1
C B A C Tabela 2 – C(B,A)
0 0 0 1
0 0 1 0 D C B A C
0 1 0 1 0 0 0 0 1
0 1 1 0 0 0 0 1 1
1 0 0 1 0 0 1 0 0
1 0 1 1 0 0 1 1 0
1 1 0 1 0 1 0 0 1
1 1 1 0 0 1 0 1 0
Tabela 3 – D(C,B,A) 0 1 1 0 1
0 1 1 1 1
1 0 0 0 1
1 0 0 1 0
1 0 1 0 1
1 0 1 1 0
1 1 0 0 0
1 1 0 1 0
1 1 1 0 1
1 1 1 1 1
Tabela 4 – E(D,C,B,A)
3 – Expressão algébrica
Quanto ao elo entre as ciências humanas e as ciências exatas, a expressão algébrica é o prin-
cipal protagonista. A expressão algébrica é uma fórmula matemática que traduz um fenômeno hu-
mano ou um fenômeno físico. A expressão algébrica é o ponto de partida para a construção do
circuito elétrico digital. As propriedades algébricas são aplicadas às expressões algébricas a fim de
efetuar as transformações desejadas. A conversão de alguma das outras seis formas de definição
para a expressão algébrica é chamada de síntese porque a expressão algébrica é a definição mais
sintética de todas. A expressão algébrica canônica foi apresentada no capítulo sobre a forma canô-
nica.
4 – Gráfico
5 – Mapa de Karnaugh
Tal como o gráfico, o mapa de Karnaugh não passa de uma modificação visual da tabela-
verdade e consiste de uma ferramenta intuitiva de aplicação do “teorema da adjacência” para a
minimização de funções booleanas. Este é um assunto para os próximos capítulos.
6 – Diagrama de Venn
7 – Circuito lógico
O circuito lógico representa a expressão algébrica por meio de símbolos visuais. Embora os
circuitos lógicos também sejam usados no contexto das ciências humanas para formar um diagrama
intuitivo a respeito das tomadas de decisões e do pensamento filosófico, é no contexto dos sistemas
digitais que os circuitos lógicos encontram sua maior aplicabilidade. Os circuitos lógicos são um con-
ceito meramente matemático e estão totalmente separados de qualquer elemento físico. O circuito
lógico é o ponto de partida para a transformação de uma função matemática lógica em algum sis-
tema físico. Embora a materialização dos circuitos lógicos possa acontecer por meio de mecânica
dos sólidos, mecânica dos fluidos, sistemas eletromecânicos, circuitos óticos e até mesmo biológi-
cos, é nos circuitos eletrônicos que os circuitos lógicos são aplicados com maior propriedade.
Embora um circuito lógico somente contenha elementos lógicos, é bastante comum que tais
representações incorporem alguns elementos de sua materialização. Estes seriam os circuitos “hí-
bridos”. No caso dos circuitos eletrônicos, é convencional que se misturem os símbolos das portas
lógicas com os símbolos de resistores, capacitores, LED´s, fontes, etc.
Alguns aplicativos simuladores de circuitos elétricos possuem dois modos de operação dis-
tintos: o modo analógico e o modo digital. No modo digital, grandezas como tensão elétrica, cor-
rente elétrica, potência elétrica, resistência elétrica, etc, são suprimidas. Somente os valores lógicos
e o tempo são calculados. No modo analógico, são levadas em consideração as propriedades físicas
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 115
Sistemas digitais – 30/01/2021
dos dispositivos lógicos levando em consideração, inclusive, as características específicas dos circui-
tos integrados disponíveis no comércio. Algumas definições se aplicam à forma canônica. Outras
definições são aplicadas à forma minimizada.
No caso do programa CircuitMaker Student V6.2c (Protel Technology, Inc), existem modelos
“pseudo-analógicos”, como, por exemplo, o “logic switch” e o “logic display” que seriam uma sim-
plificação no contexto booleano de dispositivos físicos reais.
Os barramentos (buses) são um artifício estético usado para padronizar o desenho do cir-
cuito lógico. Barramento é um conjunto de duas ou mais linhas paralelas trazendo, cada uma, a sua
informação. Em sentido transversal, os elementos do circuito fazem o acesso às linhas do barra-
mento. Este barramento pode ser vertical ou horizontal. No caso da forma canônica, o barramento
usa uma linha para cada variável de entrada e mais uma outra linha para cada uma destas variáveis
em sua versão complementar. Há três tipos de barramento, definidos conforme sua aplicação:
Data bus
Address bus
Control bus
Nos microcontroladores com arquitetura Harvard, existe, ainda, um quarto tipo de barra-
mento, chamado de program bus. Em microcontroladores da família PIC32, o data bus é dividido
em duas partas: o bus matrix e o peripheral bus.
Um barramento pode ser interno ao circuito integrado ou externo, construído na placa de
circuito impresso.
A B A
No capítulo anterior, foram apresentados exemplos das três primeiras formas de definição,
a saber, a lista de termos, a tabela verdade e a expressão algébrica para a forma canônica. Aqui são
apresentados os respectivos circuitos lógicos obtidos através do CircuitMaker Student V6.2c.
B A B A
C
/C
C = max{1} /C = max{0,2,3}
Figura 3 – Exemplo 1 – Circuito lógico com análise de zeros
B A B A
/C
C
C = min{0,2,3} /C = min{1}
Figura 4 – Exemplo 1 – Circuito lógico com análise de zeros
C B A
+V
000
001
010
D
011
100
101
110
111
D = max{0,3,4,5,6}
Figura 5 – Exemplo 2 – Circuito lógico com análise de zeros
C1 B1 A1
+V
000
001
010
D
011
100
101
110
111
/D = max{1,2,7}
Figura 6 – Exemplo 2 – Circuito lógico com análise de zeros invertido
C B A
000
001
010
011
100 D
101
110
111
D = min{1,2,7}
Figura 7 – Exemplo 2 – Circuito lógico com análise de uns
C B A
000
001
010
011
D
100
101
110
111
/D = min{0,3,4,5,6}
Figura 8 – Exemplo 2 – Circuito lógico com análise de uns invertido
algum significado físico específico, como, por exemplo, os sensores colocados dentro de uma má-
quina, então as posições irrelevantes podem ficar dispersas pela tabela-verdade.
A irrelevância não pode ser confundida com indeterminação. Considerando que o acesso a
todas as combinações das variáveis de entrada é possível, embora nem sempre factível, então todas
estas combinações precisam ser determinadas para que a função também seja determinada. A exis-
tência de uma célula indeterminada na tabela-verdade significa que a função também é indetermi-
nada e, por isso, não pode ser implementada em um sistema físico. A marcação com “X” na tabela-
verdade significa que o valor daquela célula não é especificado através da análise das premissas do
sistema; sua determinação precisa ser feita de maneira arbitrária ou usando algum conceito alheio
à definição do significado das variáveis de entrada. Primeiramente o projetista faz a substituição das
marcas “X” por “zeros” ou por “uns”, e, somente depois disso, o sistema pode ser implementado.
Em muitas aplicações práticas, é conveniente usar a função complementada, motivo porque
a obtenção desta função será apresentada nos exemplos a seguir por razões puramente didáticas,
pois o processo de síntese não requer, necessariamente, a obtenção das quatro formas; uma única
forma já é suficiente; não faz sentido materializar a mesma função lógica de duas ou mais formas
diferente.
C = max{1} + X{3} B A C /C
C = min{0,2} + X{3} 0 0 1 0
/C = max{0,2} + X{3} 0 1 0 1
/C = min{1} + X{3} 1 0 1 0
1 1 X X
Tabela 1 – Exemplo 1 – Tabelas verdade
C /C
decimal B A zeros (C0) uns (C1) zeros (C2) uns (C2)
0 0 0 /B/A B+A
1 0 1 B+/A /BA
2 1 0 B/A /B+A
3 1 1
Tabela 2 – Exemplo 1 – Definição de termos
C = B+/A
C = (/B/A)+(B/A)
/C = (B+A)(/B+A)
/C = /BA
B A C0 C1 C2 C3
0 0 1 0 0 1
0 1 0 1 1 0
1 0 1 0 0 1
1 1 1 0 1 0
Tabela 3 – Exemplo 1 – Tabelas verdade
D = max{0,2,3} + X{6,7}
D = min{1,4,5} + X{6,7}
/D = max{1,4,5} + X{6,7}
/D = min{0,2,3} + X{6,7}
C B A D /D
0 0 0 0 1
0 0 1 1 0
0 1 0 0 1
0 1 1 0 1
1 0 0 1 0
1 0 1 1 0
1 1 0 X X
1 1 1 X X
Tabela 4 – Exemplo 2 – Tabelas verdade
Conforme pode ser observado na tabela, as funções D 0 , D1, D2 e D3 são diferentes e esta
diferença está, justamente, nas células irrelevantes. Por causa desta diferença, estas funções não
podem receber o mesmo nome.
D /D
decimal C B A zeros (D0) uns (D1) zeros (D2) uns (D2)
0 0 0 0 C+B+A /C*/B*/A
1 0 0 1 /C*/B*A C+B+/A
2 0 1 0 C+/B+A /C*B*/A
3 0 1 1 C+/B+/A /C*B*A
4 1 0 0 C*/B*/A /C+B+A
5 1 0 1 C*/B*A /C+B+/A
6 1 1 0
7 1 1 1
Tabela 5 – Exemplo 2 – Definição de termos
C B A D0 D1 D2 D3
0 0 0 0 0 1 1
0 0 1 1 1 0 0
0 1 0 0 0 1 1
0 1 1 0 0 1 1
1 0 0 1 1 0 0
1 0 1 1 1 0 0
1 1 0 1 0 1 0
1 1 1 1 0 1 0
Tabela 6 – Exemplo 2 – Tabelas verdade
Nem sempre o uso da expressão algébrica na forma canônica leva à construção do sistema
físico mais conveniente em acordo com os critérios de julgamento das partes interessadas. Na maior
parte dos casos, o critério é o custo de implementação, mas outros critérios podem surgir, como
tamanho, peso, consumo de energia elétrica, dissipação de calor, durabilidade, tempo de atraso,
hazards, etc.
Em razão de demandas específicas são usadas tecnologias full-custom, nas quais o projetista
pode escolher, livremente, a topologia do circuito lógico, diferentemente das tecnologias gate-ar-
ray, nas quais a topologia é pré-determinada e o projetista precisa de adequar a esta predetermi-
nação. Em
Para circuitos pequenos a determinação da forma mínima ou forma ótima é bastante intui-
tiva, porém, para circuitos maiores, com seis ou mais variáveis de entrada e duas ou mais variáveis
de saída esta análise não é trivial, pois a otimização do circuito pode ser feita segundo critérios que
não podem ser todos eles satisfeitos por meio de uma única escolha.
Minimização algébrica.
Minimização sistemática.
Minimização visual.
uso do mapa de Karnaugh é possível, mas humanamente difícil. A maneira mais eficiente e elegante
para obter o efeito da minimização é por meio do uso de propriedades da álgebra booleana, a “mi-
nimização algébrica”. A minimização por mapa de Karnaugh é uma forma intuitiva de aplicação das
propriedades da álgebra booleana de uma maneira visual.
O mapa de Karnaugh é uma reconstrução da tradicional tabela-verdade. A diferença é que
as células da tabela são reorganizadas de maneira a permitir a minimização visual. A sequência den-
tro do mapa respeita o código Gray, também chamado de “código espelhado”, uma sequência de
números binários na qual somente uma variável se altera entre uma linha e a outra.
Frank Gray foi um físico que também trabalhou na Bell Labs.
O nome “espelhado” diz respeito ao fato de que, exceto pelo bit menos significativo, a se-
gunda metade corresponde à primeira metade em ordem inversa, o seu espelho no eixo horizontal.
Por causa do uso do código Gray, existe uma permutação entre algumas linhas e algumas
colunas no mapa.
O procedimento usado na minimização por mapa de Karnaugh consiste na formação de gru-
pos de células. A quantidade de células por grupo é uma potência de dois. O formato geométrico
do grupo é o de um retângulo. A formação de um par consiste do aglutinamento de dois termos em
um só. A formação de uma quadra consiste do aglutinamento de dois pares em um só. A formação
de um octeto consiste do aglutinamento de duas quadras em uma só, e assim por diante.
Os pares podem ser 2x1 ou 1x2. As quadras podem ser 4x1, 1x4 ou 2x2.
A formação de grupos implica não somente no aglutinamento dos termos compreendidos,
como, também, na eliminação das variáveis que sofrem alteração entre uma célula e outra. Por
causa desta eliminação, não se fala, mais, em maxtermos ou mintermos, muito embora a estrutura
algébrica continue sendo de produto de somas para análise de zeros e de soma de produtos para
análise de uns.
A formação de pares no mapa de Karnaugh está amparada no teorema da adjacência. Se-
gundo este teorema os pares dizem respeito a dois mintermos ou dois maxtermos nos quais so-
mente uma variável sofre alteração – barrado e não barrado. Aplicando a propriedade distributiva
e a propriedade do elemento inverso, a variável que se altera é eliminada.
A BA BA
B 0 1 C 00 01 11 10 00 01 11
DC 10
0 0 1 0 0 1 3 2
00 0 1 3 2
1 2 3 1 4 5 7 6
01 4 5 7 6
11 12 13 15 14
10 8 9 11 10
Tabela 2 – Endereçamento das células – forma decimal
A BA BA
B 0 1 C 00 01 11 10 00
DC 01 11 10
0 00 01 0 000 001 011 010
00 0000 0001 0011 0010
1 10 11 1 100 101 111 110
01 0100 0101 0111 0110
11 1100 1101 1111 1110
10 1000 1001 1011 1010
Tabela 3 – Endereçamento das células – forma binária
A BA BA
B 0 1 C 0 1 3 2 0DC 1 3 2
0 00 01 0 00 01 03 02
0 00 01 03 02
1 10 11 1 10 11 13 12
1 10 11 13 12
3 30 31 33 32
2 20 21 23 22
Tabela 4 – Endereçamento das células - coordenadas
Grupamento Variantes
célula 11
par 21 , 12
quadra 41 , 14 , 22
octeto 81 , 18 , 42 , 24 ,
Tabela 6 – Formatos
Uma variável é eliminada quando ela aparece dentro do grupamento tanto como “zero”
como como “um”. Se a variável assume os dois valores, então ela é irrelevante, não entra na expres-
são algébrica do grupamento. Se, ao tomar uma decisão, um elemento de análise pode ser satisfeito
mas também pode não ser satisfeito, então este elemento pode ser removido da análise.
Neste capítulo, será apresentada a minimização de funções que formem um único grupa-
mento no mapa de Karnaugh. No capítulo seguinte, será apresentada a minimização de funções que
formem vários grupamentos no mapa, momento em que é necessário entender o conceito de im-
plicante primo essencial.
O teorema da adjacência somente pode ser aplicado à base binária. O mapa de Karnaugh
somente é aplicável à base binária.
Exemplo 1:
BA
C 00 01 11 10
0 0 0 1 1
1 1 1 1 1
Tabela 7 – Exemplo 1
As duas células são dadas por “C+B+A” e “C+B+/A”. Como a variável “A” muda de valor de
uma célula para outra, então ela é descartada.
D = max{0,1}
D = C+B
Exemplo 2:
BA
C 00 01 11 10
0 0 1 0 0
1 0 1 0 0
Tabela 8 – Exemplo 2
As duas células são dadas por “/C/BA” e “C/BA”. Como a variável “C” muda de valor de
uma célula para outra, então ela é descartada.
D = min{1,5}
D = /BA
Exemplo 3:
BA
DC 00 01 11 10
00 0 0 1 1
01 0 0 1 1
11 1 1 1 1
10 1 1 1 1
Tabela 9 – Exemplo 3
As quatro células são dadas por “D+C+B+A”, “D+C+B+/A”, “D+/C+B+A” e “D+/C+B+/A”. Como
as variáveis “A” e “C” mudam de valor de uma célula para outra, então elas são descartadas.
E = max{0,1,4,5}
E = D+B
Exemplo 4:
BA
DC 00 01 11 10
00 0 0 1 0
01 0 0 1 0
11 0 0 1 0
10 0 0 1 0
Tabela 10 – Exemplo 4
Exemplo 5:
BA
DC 00 01 11 10
00 1 1 1 1
01 1 1 1 1
11 1 1 1 1
10 0 0 0 0
Tabela 11 – Exemplo 5
Exemplo 6: Erro
DC
BA
00 01 11 10 errado
00 0 0 1 0
01 0 0 1 0
11 0 0 1 0
10 0 0 0 0
Tabela 12 – Exemplo 6 – erro
As três células são dadas por “/D/CBA”, “/DCBA” e “DCBA”. Como as variáveis
“D” e “C” mudam de valor de uma célula para outra, então elas seriam descartadas descartadas,
gerando, exatamente, a mesma expressão algébrica do exemplo 4 que, obviamente, é uma outra
função, mostrando que o critério de eliminação de variáveis não pode ser aplicado para grupamen-
tos que não se enquadrem nos esquemas da tabela 4.
Exemplo 1:
BA
C 00 01 11 10
0 0 0 1 1
1 1 0 1 1
Tabela 1 – Exemplo 1
BA BA
C 00 01 11 10 C 00 01 11 10
0 0 0 1 1 0 1 0 1 1
1 1 1 1 1 1 1 0 1 1
Tabela 2 – IPE1 Tabela 3 – IPE2
D = max{0,1,5}
IPE1 = max{0,1} IPI1 = C+B
IPE2 = max{1,5} IPI2 = B+/A
D = IPE1 IPE2 D = (C+B)(B+/A)
Exemplo 2:
BA
C 00 01 11 10
0 1 1 1 1
1 0 1 0 0
Tabela 4 – Exemplo 2
BA BA
C 00 01 11 10 C 00 01 11 10
0 1 1 1 1 0 0 1 0 0
1 0 0 0 0 1 0 1 0 0
Tabela 5 – IPE1 Tabela 6 – IPE2
D = min{0,1,2,3,5}
IPE1 = min{0,1,2,3} IPI1 = /C
IPE2 = min{1,5} IPI2 = /BA
D = IPE1 + IPE2 D = /C+(/BA)
Exemplo 3:
BA
DC 00 01 11 10
00 0 0 0 1
01 0 0 0 1
11 1 1 0 1
10 1 1 0 1
Tabela 7 – Exemplo 3
E = max{0,1,3,4,5,7,11,15}
IPE1 = max{0,1,4,5} IPI1 = D+B quadra 2x2
IPE2 = max{3,7,11,15} IPI2 = /B+/A quadra 1x4
E = IPE1 IPE2 E = (D+B)(/B+/A)
Exemplo 4:
BA
DC 00 01 11 10
00 0 1 1 0
01 0 0 1 0
11 0 0 1 0
10 1 0 1 0
Tabela 8 – Exemplo 4
E = min{1,3,7,8,11,15}
IPE1 = min{3,7,11,15} IPI1 = BA
IPE2 = min{1,3} IPI2 = /D/C/A
IPE3 = min{8} IPI3 = D/C/B/A
E = IPE1 + IPE2 + IPE3 E = (BA)+(/D/C/A)+(D/C/B/A)
Exemplo 5:
BA
DC 00 01 11 10
00 1 1 1 0
01 1 0 1 0
11 1 1 1 0
10 0 0 0 0
Tabela 9 – Exemplo 5
Esta minimização, com análise de “uns”, pode ser feita corretamente de duas maneiras di-
ferentes, gerando expressões algébricas distintas.
BA
DC 00 01 11 10
00 1 1 1 0
01 1 0 1 0
11 1 1 1 0
10 0 0 0 0
Tabela 10 – Opção 1
E = (/D/C/B)+(/DBA)+(DCA)+(C/B/A)
BA
DC 00 01 11 10
00 1 1 1 0
01 1 0 1 0
11 1 1 1 0
10 0 0 0 0
Tabela 11 – Opção 2
E = (/D/B/A)+(/D/CA)+(CBA)+(DC/B)
No exemplo 5, apesar do fato de que as duas formas utilizam IPI´s diferentes, o mapa de
Karnaugh é o mesmo. Isto significa que, embora as expressões algébricas sejam diferentes, elas re-
presentam a mesma função, motivo por que elas recebem o mesmo nome.
Supondo a situação:
A minha decisão pelo investimento em uma empresa está sujeita a quatro fatores:
O primeiro argumento precisa ser descartado porque ele está contido em todos os outros
argumentos. Isso acontece quando lidamos com uma utopia. Utopias são pensamentos de caráter
puramente ideológicos e que não se baseiam na realidade. Utopias partem da premissa de que to-
dos os fatores relevantes ocorrem de maneira positiva. Um argumento realista leva em considera-
ção as limitações impostas pela realidade e, por esta razão, possui um escopo de cobertura limitado.
Cada fator é uma variável e precisa receber um nome mnemônico a fim de que não precise-
mos lidar com as longas frases textuais. Cada argumento é um implicante; é preciso descartar todos
aqueles que não sejam primos essenciais.
Se o valor das ações está em crescimento e a taxa de juros está baixa, eu faço o investi-
mento: (DA)
Se não há processos judiciais nem dívidas e as ações estão em crescimento, eu faço o in-
vestimento (CBA).
BA
DC 00 01 11 10
00 0 0 0 0
01 0 0 1 0
11 0 0 1 1
10 0 0 1 1
Tabela 12 – Mapa de Karnaugh
IPI1 = (DA)
IPI1 = (CBA)
E = IPI1 + IPI2 E = (DA)+(CBA)
Exemplo 1:
BA
C 00 01 11 10
0 1 0 X 1
1 1 1 1 1
Tabela 1 – Exemplo 1
A irrelevância pode formar um par com a célula à esquerda. Neste caso, a célula 3 deixa de
ser irrelevante para assumir o valor fixo “zero”.
D(011) = 0
D = C+/A
A substituição contrária não significa que o processo de síntese esteja errado haja vista que
a expressão algébrica satisfaz às condições dadas pelo enunciado do problema. Porém o fato de que
a síntese esteja correta não significa, necessariamente, que o processo de minimização esteja cor-
reto. Neste caso, existe um erro de minimização em uma síntese correta.
Exemplo 2:
BA
C 00 01 11 10
0 1 0 X 1
1 1 0 X 1
Tabela 2 – Exemplo 2
As duas irrelevância podem formar uma quadra com as células à esquerda. Neste caso, as
células 3 e 7 deixam de ser irrelevantes para assumir o valor fixo “zero”.
D(011)=0; D(111)=0; D(X11)=0
D = /A
Exemplo 3:
BA
C 00 01 11 10
0 0 0 1 1
1 1 0 1 X
Tabela 3 – Exemplo 3
Neste caso, a célula 6 não possui conexão com nenhum IPE, não contribui com a minimiza-
ção. A célula 6 deixa de ser irrelevante para assumir o valor fixo “um”.
D(110) = 1
D = (C+B)(B+/A)
Exemplo 4:
BA
C 00 01 11 10
0 0 0 X 1
1 1 1 1 1
Tabela 4 – Exemplo 4
A irrelevância pode formar um par com a célula à esquerda, porém, neste par, a única célula
exclusiva é a própria irrelevância. Neste caso, o implicante é primo, mas não essencial e, por isso,
não pode ser considerado. A célula 3 deixa de ser irrelevante para assumir o valor fixo “um”.
D(011) = 1
D = (C+B)(B+/A)
Exemplo 5:
BA
C 00 01 11 10
0 0 0 X X
1 1 0 1 1
Tabela 5 – Exemplo 5
Exemplo 6:
BA
C 00 01 11 10
0 0 0 X 1
1 1 0 X 1
Tabela 6 – Exemplo 6
D = /A(C+B)
Exemplo 7:
BA
C 00 01 11 10
0 0 X 0 1
1 1 0 1 1
Tabela 7 – Exemplo 7
Exemplo 8:
opção 1 opção 2
BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 1 0 0 X 0 1 0 0 X 0 1 0 0 X
1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
Tabela 8 – Exemplo 8
Exemplo 9:
análise de “zeros” análise de “uns”
BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 1 0 X 1 0 1 0 X 1 0 1 0 X 1
1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
Tabela 9 – Exemplo 9
Análise de zeros:
D0 = max{1,5}; D = B+/A
A irrelevância não é coberta pelo IPE e recebe o valor “falso”, “1”.
Análise de uns:
D1 = min{0,2,3,4,6,7} D = B+/A
A irrelevância coberta, formando uma quadra, e recebe o valor “verdadeiro”, “1”.
D0 = D1
Exemplo 10:
BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 X 0 0 X 0 X 0 0 X 0 X 0 0 X
1 1 0 1 1 1 1 0 1 1 1 1 0 1 1
Tabela 10 – Exemplo 10
Exemplo 11:
BA BA BA
DC 00 01 11 10 DC 00 01 11 10 DC 00 01 11 10
00 1 1 1 X 00 1 1 1 X 00 1 1 1 X
01 X 1 1 0 01 X 1 1 0 01 X 1 1 0
11 0 X X 0 11 0 X X 0 11 0 X X 0
10 0 X X 0 10 0 X X 0 10 0 X X 0
Tabela 11 – Exemplo 11
os atuadores de alta inércia, como, por exemplo, motores (inércia mecânica), fornos (inércia tér-
mica) e lâmpadas incandescentes (inércia luminosa). A inércia é o resultado de um efeito de filtro
passa-baixas, um fenômeno físico que impede a aplicação de uma função degrau, uma descontinui-
dade na função. Nesta situação, os spikes, por serem uma função de alta frequência, são todos fil-
trados.
Quando os requisitos de performance temporal não são rigorosos mas os spikes podem ge-
rar problemas de outras naturezas, como, por exemplo, os harmônicos, então os spikes podem ser
removidos por meio da colocação de um capacitor pequeno (picofarads), geralmente cerâmico, en-
tre a saída do circuito lógico e o terra.
Algumas aplicações podem ter o seu comportamento booleano corrompido por causa dos spikes,
motivo porque o processo de síntese, em tais casos, deve levar em consideração a redução na pro-
babilidade de ocorrência de tais eventos.
Exemplo 1:
zeros uns
BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 1 1 1 1 0 1 1 1 1 0 1 1 1 1
1 0 0 1 1 1 0 0 1 1 1 0 0 1 1
Tabela 1 – Exemplo 1
No exemplo 1, na análise de zeros, há, apenas, um IPE. Não existe, então, a necessidade de
verificação de spikes. Na análise de uns, os dois IPE´s sobrepõe-se naturalmente, dispensando, tam-
bém, a análise de spikes. Estas são as duas situações que anulam, naturalmente, o surgimento de
spikes.
Exemplo 2:
zeros uns
BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 1 0 0 1 0 1 0 0 1 0 1 0 0 1
1 0 0 1 1 1 0 0 1 1 1 0 0 1 1
Tabela 2 – Exemplo 2 – Método de minimização convencional
D = (/C+B)(C+/A) D = (CB)+(/C/A)
C B A C B A
IPE01 IPE11
IPE02 D IPE12 D
Neste exemplo 2, a função não utiliza a parcela “/B”. Por esse motivo, a porta NOT corres-
pondente também não é usada e pode ser removida do circuito.
Para que se possa entender corretamente o fenômeno de surgimento do spike, considere-
mos a análise de “uns” e que seja feita a transição sequencial entre quatro estados: 7-6-2-0. Como,
em todas estas células, D=1, então este valor deve permanecer constante. Nas células 7 e 6, o IPE 12
da figura 1 é ativado. Nas células 2 e 0, IPE11. A função D é formada por IPE11 OR IPE12.
BA
C 00 01 11 10
0 1 0 0 1
1 0 0 1 1
Tabela 3 – Exemplo 2 – Caminho percorrido
7 6 2 0
IPE12
IPE11
zeros uns
BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 1 0 0 1 0 1 0 0 1 0 1 0 0 1
1 0 0 1 1 1 0 0 1 1 1 0 0 1 1
Tabela 4 – Exemplo 2 – Redução de spikes
Na análise de “uns”, nas células 7 e 6, o IPE12 da figura 2 é ativado. Nas células 2 e 0, o IPE11
é ativado. Nas células 2 e 6, o IPNE13 é ativado. A função D é formada por IPE11 OR IPNE13 OR IPE12.
D = (/C+B)(B+/A)(C+/A) D = (CB)+(B/A)+(/C/A)
C B A C B A
D D
7 6 2 0
minA
minC
minB
Exemplo 3:
zeros uns
BA BA BA
DC 00 01 11 10 DC 00 01 11 10 DC 00 01 11 10
00 0 1 0 1 00 0 1 0 1 00 0 1 0 1
01 0 1 0 1 01 0 1 0 1 01 0 1 0 1
11 0 1 1 1 11 0 1 1 1 11 0 1 1 1
10 0 1 1 1 10 0 1 1 1 10 0 1 1 1
Tabela 5 – Exemplo 3
Neste exemplo 3, a análise de “zeros” gera dois IPE´s não interconectáveis, de modo que não
é possível evitar o surgimento do spike na transição entre um e outro. Na análise de “uns”, é possível
interconectar todos os IPE´s, motivo porque, no critério de spikes, a segunda opção é melhor do que
a primeira.
E = (B+A)(D+/B+/A)
E = (/BA)+(DA)+(DB)+(B/A)
D C B A
Neste exemplo 3, algumas linhas do barramento vertical de entrada não são usadas e, por
isso, podem ser removidas.
Exemplo 4:
zeros uns
BA BA BA
DC 00 01 11 10 00 01 11 10
DC DC 00 01 11 10
00 0 0 0 1 00 0 0 0 1 00 0 0 0 1
01 0 1 1 1 01 0 1 1 1 01 0 1 1 1
11 0 1 1 1 11 0 1 1 1 11 0 1 1 1
10 0 0 0 1 10 0 0 0 1 10 0 0 0 1
Tabela 6 – Exemplo 4 – Método convencional
E = (B+A)(C+/A)
E = (CA)+(B/A)
zeros uns
BA BA BA
DC 00 01 11 10 00 01 11 10
DC DC 00 01 11 10
00 0 0 0 1 00 0 0 0 1 00 0 0 0 1
01 0 1 1 1 01 0 1 1 1 01 0 1 1 1
11 0 1 1 1 11 0 1 1 1 11 0 1 1 1
10 0 0 0 1 10 0 0 0 1 10 0 0 0 1
Tabela 7 – Exemplo 4 – Redução de spikes
E = (B+A)(C+B)(C+/A)
E = (CA)+(CB)+(B/A)
D C B A D C B A
E E
Tal como no exemplo 3, neste exemplo 4, algumas linhas do barramento vertical de entrada
não são usadas e, por isso, podem ser removidas.
Exemplo 5:
Em capítulo anterior, foi apresentado este exemplo que possui duas opções de minimização.
BA BA
DC 00 01 11 10 DC 00 01 11 10
00 1 1 1 0 00 1 1 1 0
01 1 0 1 0 01 1 0 1 0
11 1 1 1 0 11 1 1 1 0
10 0 0 0 0 10 0 0 0 0
Tabela 8 – Exemplo 5
E = (/D/C/B)+(/DBA)+(DCA)+(C/B/A)
E = (/D/B/A)+(/D/CA)+(CBA)+(DC/B)
O uso das duas opções ao mesmo tempo implica na remoção dos spikes.
BA
DC 00 01 11 10
00 1 1 1 0
01 1 0 1 0
11 1 1 1 0
10 0 0 0 0
Tabela 6 – Exemplo 3
E =(/D/C/B)+(/DBA)+(DCA)+(C/B/A)+(/D/B/A)+(/D/CA)+(CBA)+(DC/B)
D C B A
Exemplo 1:
E1 E2 E3
BA BA BA
DC 00 01 11 10 DC 00 01 11 10 DC 00 01 11 10
00 1 1 0 0 00 0 0 0 0 00 0 0 0 0
01 0 0 0 0 01 0 0 0 0 01 0 0 0 0
11 0 0 0 0 11 1 0 0 1 11 1 0 0 0
10 0 0 0 0 10 0 0 0 0 10 1 0 0 0
Tabela 1 – Exemplo 1
D C B A
E1
E2
E3
Figura 1 – Exemplo 1
Neste primeiro exemplo, as três funções são minimizadas independentemente umas das ou-
tras; nenhum critério adicional é incorporado diante de que as três funções são construídas no
mesmo circuito.
Exemplo 2:
E1 E2 E3
BA BA BA
DC 00 01 11 10 DC 00 01 11 10 DC 00 01 11 10
00 1 1 1 0 00 0 0 0 0 00 0 0 0 0
01 0 0 1 0 01 0 0 0 0 01 1 1 0 0
11 0 0 0 0 11 1 1 0 1 11 1 0 0 0
10 0 0 0 0 10 0 1 0 0 10 1 0 0 0
Tabela 2 – Exemplo 2
D C B A
E1
E2
E3
Figura 2 – Exemplo 2
Exemplo 3:
E1 E2 E3
BA BA BA
DC 00 01 11 10 DC 00 01 11 10 DC 00 01 11 10
00 1 1 0 0 00 0 0 0 0 00 1 1 0 0
01 0 0 0 0 01 0 0 0 0 01 0 0 0 0
11 1 0 0 1 11 1 0 0 1 11 1 0 0 0
10 0 0 0 0 10 1 0 0 0 10 1 0 0 0
Tabela 3 – Exemplo 3
D C B A
E1 E2 E3
Figura 3 – Exemplo 3
Neste terceiro exemplo, as três funções compartilham IPE´s, levando a uma redução no ta-
manho do circuito lógico. As expressões algébricas destas funções, porém, não sofreram nenhuma
alteração devido ao fato de serem implementadas no mesmo sistema.
Exemplo 4:
E1 E2
BA BA
DC 00 01 11 10 DC 00 01 11 10
00 1 1 0 0 00 1 1 0 0
01 0 1 0 0 01 0 1 0 0
11 0 1 0 0 11 0 0 0 0
10 0 0 0 0 10 1 0 0 0
Tabela 4 – Exemplo 4
D C B A
E1
E2
Figura 4 – Exemplo 4
Neste quarto exemplo, duas funções também são minimizadas independentemente umas
das outras, porém, usando o critério da remoção de spikes, elas podem compartilhar IPE´s.
E1 E2
BA BA
DC 00 01 11 10 DC00 01 11 10
00 1 1 0 0 00 1 1 0 0
01 0 1 0 0 01 0 1 0 0
11 0 1 0 0 11 0 0 0 0
10 0 0 0 0 10 1 0 0 0
Tabela 5 – Exemplo 4 com remoção de spikes
D C B A
E1 E2
Figura 5 – Exemplo 4 com redução de spikes
Exemplo 5:
C1 C2 C3
A A A
B 0 1 B 0 1 B 0 1
0 1 0 0 0 1 0 0 0
1 0 1 1 1 1 1 0 1
Tabela 4 – Exemplo 5 – Método convencional
C3 = max{{1,2}+{0}} C3 = C1C2
devem empregar o mesmo tipo de porta lógica (figura 6B). As entradas não usadas das portas lógicas
precisam receber o elemento neutro. No caso da porta AND, o elemento neutro é o valor “um”.
Considerando que toda porta lógica possui um tempo de atraso inerente, da ordem de na-
nossegundos, podemos afirmar que os circuitos das figuras 6A, 7A e 7B possuem falta de sincronia
na atualização dos bits de saída. Quando o atuador é um display, o efeito da falta de sincronia é
desprezível por não ser perceptível pelo ser humano.
B A
B A
/B+A
B+/A
/B+A
B+A
B+/A
+V
B+A
C1 C2 C3 C1 C2 C3
Figura 6 – Exemplo 5 – Forma canônica sem (A) e com (B) a correção da sincronia, respectivamente
B A
B A
/B+A
B+/A
/B+A
B+A
B+/A C1
(/B+A)(B+/A) C1C2
B+A
C3
C2
BA
C3
C1 C2
Figura 7 – Exemplo 5 – C3 minimizado e C3 em função de C1 e de C2 respectivamente
Exemplo 6:
D1 D2 D3
BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 0 1 0 1 0 1 0 1 1 0 0 0 0 1
1 1 0 1 1 1 1 1 1 1 1 1 0 1 1
Tabela 6 – Exemplo 2 – Método convencional
Usando a forma canônica, o circuito emprega quatro portas lógicas OR de três entradas na
matriz OR – quatro maxtermos. Usando a forma minimizada, a matriz OR emprega quatro portas
lógicas OR de três entradas mais três portas lógicas OR de duas entradas. A forma minimizada para
D3 é pior.
C B A
C+B+A
/C+B+/A
C+/B+/A
C+B+/A
D1 D2 D3
Figura 8 – Exemplo 6
Exemplo 7:
E1 E2 E3
BA BA BA
DC 00 01 11 10 DC 00 01 11 10 DC 00 01 11 10
00 1 1 1 1 00 1 1 1 1 00 1 1 1 1
01 0 0 0 0 01 0 0 1 1 01 1 1 0 0
10 1 1 1 1 10 1 1 1 1 10 1 1 1 1
11 0 0 1 1 11 0 1 1 1 11 1 0 1 1
Tabela 7 – Exemplo 7 – Minimização local
E1 = (D+/C)(/D+/C+B)
E2 = (D+/C+B)(/D+/C+B+A)
E3 = (D+/C+/B)(/D+/C+B+/A)
D C B A
E1
E2
E3
A figura 10 apresenta o circuito onde todas as portas OR são idênticas. Esta opção oferece
uma otimização na sincronia dos bits de saída haja vista de portas lógicas com menos ou mais en-
tradas podem apresentar tempos de atraso ligeiramente diferentes dependendo da tecnologia
empregada na fabricação do circuito integrado.
D C B A
E1
E2
E3
D C B A
E1
E2
E3
Figura 11 – Exemplo 7 – E1 a partir de E2 e de E3
BA
DC 00 01 11 10
00 1 1 1 1
01 0 0 0 0
10 1 1 1 1
11 0 0 1 1
Tabela 8 – Exemplo 7 – Minimização global de E1
das funções E2 e E3, podemos constatar que eles correspondem aos IP´s não essenciais de E1 ge-
rando uma minimização global.
E1 = (D+/C)(/D+/C+B)
E1 = (D+/C+B)(D+/C+/B)(/D+/C+B+A)(/D+/C+B+/A)
E2 = (D+/C+B)(/D+/C+B+A)
E3 = (D+/C+/B)(/D+/C+B+/A)
E1 = E2 E3
Exemplo 8:
E1 E2 E3
BA BA BA
DC 00 01 11 10 DC 00 01 11 10 DC 00 01 11 10
00 1 1 0 0 00 1 1 1 1 00 0 0 1 1
01 0 0 0 0 01 0 0 0 0 01 0 0 0 0
11 0 1 1 0 11 1 0 0 1 11 1 1 1 1
10 0 1 0 0 10 0 1 0 0 10 1 0 0 0
Tabela 7 – Exemplo 8
O mapa de Karnaugh das três funções não apresenta a melhor minimização para as funções
isoladas haja vista que nem todos os implicantes primos são essenciais. Por outro lado, estes impli-
cantes primos não essenciais são compartilhados entre as funções gerando uma minimização global.
A figura 13 apresenta o circuito onde todas as portas AND são idênticas e onde todas as
portas OR também são idênticas. Esta opção oferece uma otimização na sincronia dos bits de saída
haja vista de portas lógicas com menos ou mais entradas podem apresentar tempos de atraso ligei-
ramente diferentes dependendo da tecnologia empregada na fabricação do circuito integrado.
D C B A
E1 E2 E3
Figura 12 – Exemplo 8 – Minimização global
D C B A
E1 E2 E3
Figura 13 – Exemplo 8 – Minimização global com otimização da sincronia
CBA
ED 000 001 011 010 110 111 101 100
00 00 01 03 02 06 07 05 04
01 08 09 11 10 14 15 13 12
11 24 25 27 26 30 31 29 28
10 16 17 19 18 22 23 21 20
Tabela 1 – Endereçamento das células – forma decimal
CBA
ED 000 001 011 010 110 111 101 100
00 00000 00001 00011 00010 00110 00111 00101 00100
01 01000 01001 01011 01010 01110 01111 01101 01100
11 11000 11001 11011 11010 11110 11111 11101 11100
10 10000 10001 10011 10010 10110 10111 10101 10100
Tabela 2 – Endereçamento das células – forma binária
CBA
ED0 1 3 2 6 7 5 4
0 00 01 03 02 06 07 05 04
1 10 11 13 12 16 17 15 14
3 30 31 33 32 36 37 35 34
2 20 21 23 22 26 27 25 24
Tabela 3 – Endereçamento das células – coordenadas
Exemplo 1:
CBA
ED 000 001 011 010 110 111 101 100
00 1 1 1 1 0 0 0 0
01 0 0 1 1 1 1 0 0
11 0 0 0 1 1 0 0 0
10 0 0 0 1 1 0 0 0
Tabela 4 – Exemplo 1
F = min{00,01,02,03,10,11,14,15,18,22,26,30}
E D C B A
Figura 1 – Exemplo 1
Caso haja a necessidade de remoção de spikes, então os implicantes primos não essenciais
precisam ser incluídos na síntese.
IPNE1 = min{2,3,10,11}
IPNE2 = min{10,14,26,30}
IPNE3 = min{2,10,18,26}
F = IPE1 + IPE2 + IPE3 + IPEN1 + IPEN2 + IPNE3
F = (/E/D/C) + (/EDB) + (EB/A) + (/ECB) + (DB/A) + (/CB/A)
CBA
ED 000 001 011 010 110 111 101 100
00 1 1 1 1 0 0 0 0
01 0 0 1 1 1 1 0 0
11 0 0 0 1 1 0 0 0
10 0 0 0 1 1 0 0 0
Tabela 5 – Exemplo 1 com IPNE´s
E D C B A
Exemplo 2:
CBA
ED 000 001 011 010 110 111 101 100
00 0 1 0 0 0 0 1 0
01 0 1 1 0 0 1 1 0
11 0 1 1 0 0 1 1 0
10 1 0 0 0 0 0 0 1
Tabela 6 – Exemplo 2
F = min{01,05,09,11,13,15,16,20,25,27,29,31}
IPE1 = min{09,11,13,15,25,27,29,31} ; IPE1 = EA
IPE2 = min{01,05,09,13} ; IPE2 = /E/BA
IPE3 = min{16,20} ; IPE3 = E/D/B/A
F = IPE1 + IPE2 + IPE3 ; F = (DA) + (/E/BA) + (E/D/B/A)
E D C B A
Figura 3 – Exemplo 2
Exemplo 3:
CBA
ED 000 001 011 010 110 111 101 100
00 0 1 1 0 0 1 1 0
01 1 0 1 1 1 1 0 1
11 1 1 1 1 1 1 1 1
10 0 1 1 0 0 1 1 0
Tabela 7 – Exemplo 3
F = min{00,02,04,06,09,13,16,18,20,22}
IPE1 = min{00,02,04,06,16,18,20,22} ; IPE1 = D+A
IPE2 = min{09,13} ; IPE2 = E+/D+B+/A
F = IPE1 IPE2 ; F = (D+A) (E+/D+B+/A)
E D C B A
Figura 4 – Exemplo 3
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 161
Sistemas digitais – 30/01/2021
Exemplo 4:
CBA
ED 000 001 011 010 110 111 101 100
00 1 1 1 1 1 1 1 1
01 1 0 0 0 0 1 1 1
11 1 1 1 1 1 1 1 1
10 1 1 1 1 1 1 1 1
Tabela 8 – Exemplo 4 – Análise errada
A marcação desta quadra está errada porque ela não respeita o teorema da adjacência. Vi-
sualmente, isso pode ser percebido por meio da assimetria na matriz. O erro também pode ser ob-
servado por meio das variáveis: uma quadra remove duas variáveis, então a função desta quadra
precisa usar três variáveis, as variáveis constantes; porém somente as variáveis “E” e “D” permane-
cem constantes, o que nos leva a uma função de duas variáveis, evidenciando o erro. A solução
correta seria formar dois pares.
CBA
ED 000 001 011 010 110 111 101 100
00 1 1 1 1 1 1 1 1
01 1 0 0 0 0 1 1 1
11 1 1 1 1 1 1 1 1
10 1 1 1 1 1 1 1 1
Tabela 9 – Exemplo 4 – Análise correta
F = min{09,10,11,14}
IPE1 = min{09,11} ; IPE1 = /E+D+/C+A
IPE2 = min{10,14} ; IPE2 = /E+D+B+/A
F = IPE1 IPE2 ; F = (E+/D+C+/A) + (E+/D+/B+A)
Exemplo 5:
CBA
ED 000 001 011 010 110 111 101 100
00 1 1 1 1 1 1 1 1
01 1 0 0 0 0 0 0 1
11 1 1 1 1 1 1 1 1
10 1 1 1 1 1 1 1 1
Tabela 10 – Exemplo 5 – Análise errada
Neste exemplo, o critério da simetria é respeitado, porém o critério do tamanho não. Todo
IPE precisa ter um tamanho determinado por uma potência de “dois”, mas este tamanho é “seis”.
A solução correta seria formar um par e uma quadra.
CBA
ED 000 001 011 010 110 111 101 100
00 1 1 1 1 1 1 1 1
01 1 0 0 0 0 0 0 1
11 1 1 1 1 1 1 1 1
10 1 1 1 1 1 1 1 1
Tabela 11 – Exemplo 6 – Análise correta
F = min{09,10,11,12,14,15,16}
IPE1 = min{09,11,13,15} ; IPE1 = E+/D+/A
IPE2 = min{10,14} ; IPE2 = E+/D+/B+A
F = IPE1 IPE2 ; F = (E+/D+/A) + (E+/D+/B+A)
Exemplo 6:
CBA
ED 000 001 011 010 110 111 101 100
00 1 0 0 1 0 1 1 1
01 1 0 0 0 1 1 0 1
11 1 0 0 0 1 1 0 1
10 1 0 0 1 0 1 1 1
Tabela 12 – Exemplo 6
Neste exemplo é possível observar que a metade de baixo é igual à metade de cima. Isso
significa que a variável mais significativa (E) é irrelevante. Trata-se de uma função que quatro vari-
áveis.
BA
DC 00 01 11 10
00 1 0 0 1
01 1 1 1 0
11 1 0 1 1
10 1 0 0 0
Tabela 13 – Exemplo 6 remodelado
Exemplo 7:
CBA
ED 000 001 011 010 110 111 101 100
00 0 0 0 0 1 0 0 0
01 1 1 1 1 1 0 0 0
11 1 0 0 1 X X X X
10 0 0 0 0 0 1 1 0
Tabela 14 – Exemplo 7
CBA
ED 000 001 011 010 110 111 101 100
00 0 0 0 0 1 0 0 0
01 1 1 1 1 1 0 0 0
11 1 0 0 1 X X X X
10 0 0 0 0 0 1 1 0
Tabela 15 – Exemplo 7 – Análise de zeros
F0 = max{0,1,2,3,4,5,7,12,13,15,16,17,18,19,20,22,25,27} + X{28,29,30,31}
IPE01 = max{0,1,2,3,16,17,18,19} ; IPE01 = D+C
IPE02 = max{5,7,13,15} ; IPE02 = E+/C+/A
IPE03 = max{17,19,25,27} ; IPE03 = /E+C+/A
IPE04 = max{4,12,20,28} ; IPE04 = /C+B+A
IPE05 = max{16,18,20,22} ; IPE05 = /E+D+A
F0 = IPE01 IPE02 IPE03 IPE04 IPE05
F0 = (D+C)(E+/C+/A)(/E+C+/A)(/C+B+A)(/E+D+A)
F1 = min{6,8,9,10,11,14,21,23,24,26} + X{28,29,30,31}
IPE11 = min{8,9,10,11} ; IPE11 = /ED/C
IPE12 = min{10,14,26,30} ; IPE12 = DB/A
IPE13 = min{21,23,29,31} ; IPE13 = ECA
IPE14 = min{8,10,24,26} ; IPE14 = D/C/A
IPE15 = min{6,14} ; IPE15 = /ECB/A
F1 = IPE11 + IPE12 + IPE13 + IPE14 + IPE15
F1 = (/ED/C)+(DB/A)+(ECA)+(D/C/A)+(/ECB/A)
1 – Dupla inversão
//A = A (1a)
///A = /A (1b)
“Uma quantidade par de nãos” é um “sim”. (1a)
“Uma quantidade ímpar de nãos” é um “não”. (1b)
“Uma não insensibilidade é igual a uma sensibilidade.”
2 – Propriedade comutativa
A+B = B+A (2a)
AB = BA (2b)
“A ordem das parcelas não altera a soma.” (2a)
“A ordem dos fatores não altera o produto.” (2b)
“Dia ou noite é igual a noite ou dia.”
“Café com leite é igual a leite com café.”
3 – Propriedade associativa
(A+B)+C = A+(B+C) (3a)
(AB)C = A(BC) (3b)
A propriedade associativa é útil para a transformação de portas lógicas de três ou mais en-
tradas em portas lógicas de duas entradas.
4 – Propriedade distributiva
A(B+C) = (AB)+(AC) (4a)
A+(BC) = (A+B)(A+C) (4b)
A propriedade 4a vale para todas as bases. A propriedade 4b vale, apenas, para base dois.
7 – Elemento inverso
A+/A = 1 (7a)
A/A = 0 (7b)
8 – Elemento neutro
A+0 = A (8a)
A1 = A (8b)
9 – Elemento nulo
A+1 = 1 (9a)
A0 = 0 (9b)
10 – De Morgan
A+B = /(/A/B) (10a)
AB = /(/A+/B) (10b)
Dentro do contexto do cálculo integral e diferencial, um jovem estudante pode ter grande
facilidade em resolver as dificílimas integrais apresentadas no livro-texto adotado pelo professor,
pois elas são divididas e agrupadas por técnica de integração. Sendo assim, ao escolher algum exer-
cício proposto no livro, o estudante já sabe, previamente, qual é o “caminho” para a solução com
base, apenas, no título do capítulo onde o problema está inserido. Porém, na ocasião da avaliação,
este jovem estudante recebe uma ou várias integrais para serem resolvidas sem nenhuma orienta-
ção sobre qual ou quais técnicas devem ser aplicadas. Neste momento, o estudante não “enxerga”
qual é a técnica necessária; ele tenta usar algumas possibilidades mas não encontra a solução. Mais
tarde, quando o professor apresenta a resolução da avaliação, o estudante percebe que aquela in-
tegral tem uma solução fácil, bastando, apenas, saber qual é a técnica a ser empregada. Vemos,
então, que uma simples informação pode fazer toda a diferença. Este exemplo retrata a dificuldade
que é encontrada no processo de investigação de “caminhos”.
Igualmente difícil é a determinação do melhor “caminho” para a minimização de uma ex-
pressão algébrica. Embora seja possível encontrar “um caminho”, nem sempre é possível confirmar
que este se trate do “melhor caminho”. Por razões didáticas, não será explorado, neste capítulo, o
desafio que transformar uma expressão algébrica qualquer em uma expressão algébrica minimi-
zada. Da mesma forma que, no cálculo integral, faz toda a diferença a simples informação sobre
qual seja o método a ser empregado na resolução, igualmente, na minimização algébrica, a presença
do Mapa de Karnaugh serve como indicador do melhor caminho. Por esse motivo, em todos os
exemplos apresentados neste capítulo, será feita, primeiramente, a minimização por mapa de Kar-
naugh e, posteriormente e a partir dela, será feita a minimização algébrica.
Por meio das transformações algébricas, é possível evidenciar a veracidade do teorema da
adjacência. As minimizações algébricas baseadas no teorema da adjacência costumam seguir a
mesma sequência de aplicação de propriedades algébricas. Com um pouco de prática, o estudante
consegue minimizar, com facilidade, todas as expressões algébricas seguindo, sempre, a mesma se-
quência de transformações.
Da mesma forma que um advogado, ao elaborar a estratégia de defesa do seu cliente, ao
citar as leis vigentes, precisa, necessariamente, citar o nome da lei à qual faz referência, igualmente
a aplicação de qualquer propriedade da álgebra booleana requer que o nome da propriedade tam-
bém seja mencionado. A menção destes nomes é feita à direita da linha onde a transformação é
aplicada. Todas estas menções são alinhadas formando uma coluna, um memorial descritivo do
processo de minimização.
Exemplo 1: D = max{4,5}
BA
C 00 01 11 10
0 1 1 1 1
1 0 0 1 1
Tabela 1 – Exemplo 1
Exemplo2: D = max{1,5}
BA
C 00 01 11 10
0 1 0 1 1
1 1 0 1 1
Tabela 2 – Exemplo 2
Exemplo 3: D = max{1,3}
BA
C 00 01 11 10
0 1 0 0 1
1 1 1 1 1
Tabela 3 – Exemplo 3
Neste exemplo 3, o agrupamento é feito em razão de variáveis que estão separadas de modo
que é necessário aplicar a propriedade comutativa. Ao aplicar a comutativa, a escolha por qual lado
o agrupamento será direcionado é arbitrária e não altera a expressão algébrica final.
Exemplo 4: D = max{1,3,4,5}
BA
C 00 01 11 10
0 1 0 0 1
1 0 0 1 1
Tabela 4 – Exemplo 4
Este exemplo 4 consiste na união dos exemplos 1 e 3. Caso estas minimizações algébricas já
tenham sido apresentadas, então a minimização da função 4 pode ser feita a partir daqueles resul-
tados.
Caso as minimizações anteriores não tenham sido feitas, é preciso partir do início do proce-
dimento de minimização algébrica.
Exemplo 5: D = max{1,4,5}
BA
C 00 01 11 10
0 1 0 1 1
1 0 0 1 1
Tabela 5 – Exemplo 5
Neste exemplo 5, há três maxtermos e dois pares. Está faltando um maxtermo. Isso acontece
porque, em verdade, há quatro maxtermos, mas dois deles são iguais. No processo de minimização
algébrica, é preciso duplicar este termo.
Exemplo 6: D = max{1,4,5,7}
BA
C 00 01 11 10
0 1 0 1 1
1 0 0 0 1
Tabela 6 – Exemplo 6
IPE1 = max{1,5}
IPE2 = max{4,5}
IPE3 = max{5,7}
D = IPE1 IPE2 IPE3
Quando há muitos termos, o estudante pode colocar um índice acima das expressões algé-
bricas pertinentes a cada termo. Isto não é recomendado para trabalhos acadêmicos e científicos
mas ajuda o estudante a entender os procedimentos adotados na minimização algébrica.
D = (C+B+/A)(/C+B+A)(/C+B+/A)(/C+B+/A)(/C+B+/A)(/C+/B+/A)
Elemento idêntico
D = (C+B+/A)(/C+B+/A)(/C+B+A)(/C+B+/A)(/C+B+/A)(/C+/B+/A)
Comutativa
D = (C+B+/A)(/C+B+/A)(/C+B+A)(/C+B+/A)(/C+/A+B)(/C+/A+/B)
Comutativa
D = [(/CC)+B+/A][/C+B+(A/A)][/C+/A+(B/B)]
Distributiva
D = [0+B+/A][/C+B+0][/C+/A+0] Elemento inverso
D = (B+/A)(/C+B)(/C+/A) Elemento neutro
Neste exemplo 5, há quatro maxtermos e três pares. Está faltando um maxtermo. Isso acon-
tece porque, em verdade, há seis maxtermos, mas três deles são iguais. No processo de minimização
algébrica, é preciso triplicar este maxtermo.
Exemplo 7: E = min{1,5}
BA
DC 00 01 11 10
00 0 1 0 0
01 0 1 0 0
11 0 0 0 0
10 0 0 0 0
Tabela 7 – Exemplo 7
Exemplo 8: E = min{1,5,14,15}
BA
DC 00 01 11 10
00 0 1 0 0
01 0 1 0 0
11 0 0 1 1
10 0 0 0 0
Tabela 8 – Exemplo 8
Outra opção:
IPE1 = min{1,5}
IPE1 = (/D/C/BA)+(/DCB/A) Forma canônica
IPE1 = (/C/D/BA)+(C/DB/A) Comutativa
IPE1 = (/C+C)/D/BA Distributiva
IPE1 = 1/D/BA Elemento inverso
IPE1 = /D/BA Elemento neutro
IPE2 = min{14,15}
IPE2 = (DCB/A)+(DCBA) Forma canônica
IPE2 = (DCB/A)+(DCBA) Comutativa
IPE2 = DCB(/A+A) Distributiva
IPE2 = DCB1 Elemento inverso
IPE2 = DCB Elemento neutro
E = IPE1 + IPE2
E = (/D/BA)+(DCB)
Exemplo 9: E = min{1,5,7}
BA
DC 00 01 11 10
00 0 1 0 0
01 0 1 1 0
11 0 0 0 0
10 0 0 0 0
Tabela 9 – Exemplo 9
Outra opção:
IPE1 = min{1,5}
IPE1 = /D/BA Vide exemplo 8
IPE2 = min{5,7}
IPE2 = (/DC/BA)+(/DCBA) Forma canônica
IPE2 = (/DCA/B)+(/DCAB) Comutativa
IPE2 = /DCA(/B+B) Distributiva
IPE2 = /DCA1 Elemento inverso
IPE2 = /DCA Elemento neutro
E = IPE1 + IPE2
E = (/D/BA)+(/DCA)
Exemplo 11:
BA
DC 00 01 11 10
00 0 0 1 1
01 0 1 1 1
11 0 1 1 0
10 0 0 0 0
Tabela 11 – Exemplo 11
E = min{2,3,5,6,7,13,15}
E = (/D/CB/A)+(/D/CBA)+(/DC/BA)+(/DCB/A)+
(/DCBA)+(DC/BA)+(DCBA) Forma canônica
E = (/D/CB/A)+(/D/CBA)+(/DC/BA)+(/DCB/A)+
(/DCBA)+(/DCBA)+(DC/BA)+(DCBA) Elemento idêntico
E = (/D/CB/A)+(/D/CBA)+(/DCB/A)+(/DCBA)+
(/DC/BA)+(/DCBA)+(DC/BA)+(DCBA) Comutativa
E = (/D/CB/A)+(/D/CBA)+(/DCB/A)+(/DCBA)+
(/DCA/B)+(/DCAB)+(DCA/B)+(DCAB) Comutativa
E = [/D/CB(/A+A)]+[/DCB(/A+A)]+
[/DCA(/B+B)]+[DCA(/B+B)] Distributiva
E = [/D/CB1]+[/DCB1]+
[/DCA1]+[DCA1] Elemento inverso
E = (/D/CB)+(/DCB)+(/DCA)+(DCA) Elemento neutro
E = (/C/DB)+(C/DB)+(/DCA)+(DCA) Comutativa
E = [(/C+C)/DB]+[(/D+D) CA)] Comutativa
E = [1/DB]+[1CA] Elemento inverso
E = (/DB)+(CA) Elemento neutro
Exemplo 1:
B A B A
Exemplo 2:
Minimizado:
Out2 = (B+/A)
Out1 = BA
Out0 = (/B/A)
B A B A
+V
C B A C B A
Circuito 2 – Exemplo 2 com análise de uns e de zeros respectivamente
Exemplo 3:
Out1 = max{2,3,4,6,7}
Out0 = max{0,1,2,4,5}
Out1 = (C+/B+A)(C+/B+/A)(/C+B+A)(/C+/B+A)(/C+/B+/A)
Out0 = (/C+/B+/A)(/C+/B+A)(/C+B+/A)(C+/B+/A)(C+/B+A)
C B A
+V
Out1 Out0
Circuito 3 – Forma canônica em zeros
C B A
Out1 Out0
Circuito 4 – Forma canônica em zeros a partir das funções complementadas
C B A
Out1 Out0
Circuito 5 – Forma canônica em uns
Out1 Out0
BA BA
C 00 01 11 10 C 00 01 11 10 Out1 = /B(/C+A)
0 1 1 0 0 0 0 0 1 0
Out0 = B( C+A)
1 0 1 0 0 1 0 0 1 1
Tabela 7 – Minimização em zeros
Out1 Out0
BA BA
C 00 01 11 10 C 00 01 11 10 Out1 = (/C/B)+(/BA)
0 1 1 0 0 0 0 0 1 0
0 1 0 0 0 0 1 1
Out0 = ( B A)+( CB)
1 1
Tabela 8 – Minimização em uns
Exemplo 4:
Out2 = (C+/B+A)(/C+B+/A)
Out1 = (C+B+/A)(/C+B+/A)(/C+/B+/A)
Out0 = (C+B+A)(C+B+/A)(C+/B+A)(C+/B+/A)(/C+B+A)(/C+/B+/A)
Out2 = (/C/B/A)+(/C/BA)+(/CBA)+(C/B/A)+(CB/A)+(CBA)
Out1 = (/C/B/A)+(/CB/A)+(/CBA)+(C/B/A)+(CB/A)
Out0 = (C/BA)+(CB/A)
C B A
+V
C B A
Exemplo 5:
C B A
+V
C B A
Exemplo:
O circuito abaixo foi projetado por um engenheiro que não pode ser contatado; não é pos-
sível obter a documentação do projeto. Sendo assim, é preciso investigar qual é a proposta deste
circuito e a forma como o projetista alcançou este resultado. Por meio da construção do circuito em
um software simulador, ou, então, por meio da submissão do circuito eletrônico real a ensaios e
testes, é possível obter a tabela-verdade dos bits de saída.
Observando o desenho do circuito lógico, é possível escrever as expressões algébricas. Para
isso, é preciso identificar os caminhos da informação até a chegada ao nó de saída de cada função.
Out1
A
Out2
Out3
B
C
Out4
Out1 = /A/(/B+/D)
Out2 = //A
Out3 = /(D+C)/B
Out4 = /B/(C/A)(/D+/B)
Out1
A
D
Circuito 2 – Diagrama para Out1
Out2
Circuito 3 – Diagrama para Out2
Out3
B
C
D
Circuito 4 – Diagrama para Out3
B
C
Out4
Out1 = /A/(/B+/D)
D C B A /A /B /D /B+/D /(/B+/D) Out1
0 0 0 0 1 1 1 1 0 1
0 0 0 1 0 1 1 1 0 0
0 0 1 0 1 0 1 1 0 1
0 0 1 1 0 0 1 1 0 0
0 1 0 0 1 1 1 1 0 1
0 1 0 1 0 1 1 1 0 0
0 1 1 0 1 0 1 1 0 1
0 1 1 1 0 0 1 1 0 0
1 0 0 0 1 1 0 1 0 1
1 0 0 1 0 1 0 1 0 0
1 0 1 0 1 0 0 0 1 0
1 0 1 1 0 0 0 0 1 1
1 1 0 0 1 1 0 1 0 1
1 1 0 1 0 1 0 1 0 0
1 1 1 0 1 0 0 0 1 0
1 1 1 1 0 0 0 0 1 1
Tabela 3 – Determinação da tabela-verdade de Out1
Out3 = /(D+C)/B
D C B A D+C /(D+C) /B Out3
0 0 0 0 0 1 1 1
0 0 0 1 0 1 1 1
0 0 1 0 0 1 0 0
0 0 1 1 0 1 0 0
0 1 0 0 1 0 1 0
0 1 0 1 1 0 1 0
0 1 1 0 1 0 0 0
0 1 1 1 1 0 0 0
1 0 0 0 1 0 1 0
1 0 0 1 1 0 1 0
1 0 1 0 1 0 0 0
1 0 1 1 1 0 0 0
1 1 0 0 1 0 1 0
1 1 0 1 1 0 1 0
1 1 1 0 1 0 0 0
1 1 1 1 1 0 0 0
Tabela 4 – Determinação da tabela-verdade de Out3
Out4 = /B/(C/A)(/D+/B)
D C B A /D /B /A C/A /(C/A) (/D+/B) Out4
0 0 0 0 1 1 1 0 1 1 1
0 0 0 1 1 1 0 0 1 1 1
0 0 1 0 1 0 1 0 1 1 0
0 0 1 1 1 0 0 0 1 1 0
0 1 0 0 1 1 1 1 0 1 0
0 1 0 1 1 1 0 0 1 1 1
0 1 1 0 1 0 1 1 0 1 0
0 1 1 1 1 0 0 0 1 1 0
1 0 0 0 0 1 1 0 1 1 1
1 0 0 1 0 1 0 0 1 1 1
1 0 1 0 0 0 1 0 1 0 0
1 0 1 1 0 0 0 0 1 0 0
1 1 0 0 0 1 1 1 0 1 0
1 1 0 1 0 1 0 0 1 1 1
1 1 1 0 0 0 1 1 0 0 0
1 1 1 1 0 0 0 0 1 0 0
Tabela 5 – Determinação da tabela-verdade de Out4
Unidade 4
Circuitos lógicos
polarização seja reversa, levando a sua resistência direta a valores elevadíssimos, isolando a fonte
de tensão alternada com menor valor de tensão instantânea – V(t).
Quando ambos diodos estão submetidos a uma tensão direta inferior a VTH, os dois diodos
estão em estado de não saturação e podem ser considerados “desligados”. Nesta situação, o valor
da tensão na saída precisa ser de 0V. Para isso, é preciso o uso de um resistor de valor elevado, a
fim de obter uma corrente elétrica muito baixa. Considerando que a corrente elétrica neste resistor,
na situação de desligamento dos diodos, é quase nula, então o resistor se comporta como um “curto
circuito virtual” e a saída recebe o valor de 0V. Considerando que este resistor tem a função de levar
a tensão de saída a zero, ele é chamado de “pull-down resistor”.
No circuito da figura 2, a função “C(B,A)” é dada pelo valor menor encontrado nas duas en-
tradas, “A” e “B”. O off-set na saída em relação à entrada acontece por causa do VTH. O diodo que
recebe a menor tensão encontra-se em um estado de saturação superior ao do diodo que possui a
maior tensão de modo que a saída recebe a menor tensão. Quando ambos diodos estão “desliga-
dos”, o valor da tensão na saída precisa ser de 2V, neste exemplo. Considerando que o resistor tem
a função de levar a tensão de saída à tensão máxima, ele é chamado de “pull-up resistor”.
Em se tratando de circuitos integrados, é muito difícil construir resistores com valores ele-
vados, então a “resistência passiva” é substituída por uma “resistência ativa”, obtida por meio de
um transistor. Por causa deste transistor, a tecnologia passou a ser chamada de DTL – Diode Tran-
sistor Logic – Lógica diodo-transistor.
Os dois diodos podem ser substituídos por dois transistores de junção bipolar – BJT. Os dio-
dos base-emissor dos transistores é o responsável pela operação lógica. A vantagem do uso do tran-
sistor é que é possível obter melhor controle do ponto de operação. Este controle pode ser usado,
por exemplo, para realizar uma compensação para a anulação de efeitos térmicos.
5V 5V
Seletor de máximo
Seletor de mínimo
1 Hz
1 Hz
500mHz
500mHz
Os circuitos elétricos digitais podem ser construídos por meio de chaves eletrônicas. Estas
chaves são melhores do que as mecânicas em várias características, como custo de fabricação, ta-
manho, peso, rapidez, tempo de vida útil, consumo de energia elétrica, etc.
As chaves eletrônicas são construídas por meio de trans-resistores, conhecidos, hoje, como
transistores. Tais dispositivos possuem o efeito da resistência virtual, na qual tensão e corrente são
medidos em pontos distintos. Se, por um lado, o efeito da trans-resistência é útil em circuitos am-
plificadores de tensão, ou de corrente, o efeito do chaveamento booleano é obtido fora do efeito
trans-resistor; estamos falando dos limites superior e inferior da trans-resistência (gráfico ICVCE),
chamados de “corte” – IC=0A – e “saturação” – VCE=0V, respectivamente (nomenclatura usada em
dispositivos bipolares).
Os primeiros dispositivos transistores foram construídos por meio de válvulas termiônicas
por meio do aperfeiçoamento das válvulas diodo. Enquanto as válvulas diodo possuem, apenas, um
filamento – emissor de elétrons – e uma grade (screen) – coletor de elétrons – as válvulas transisto-
res possuem um condutor localizado entre estes dois elementos a fim de que sua corrente seja
controlada por meio da emissão de elétrons entre emissor e coletor. Os primeiros computadores
eletrônicos foram construídos através de válvulas termiônicas.
Posteriormente, foram desenvolvidos os dispositivos de estado sólido – solid state. Este
nome salienta o fato de que as válvulas são dispositivos de estado gasoso e, por isso, apresentam
vários inconvenientes, como, por exemplo, fragilidade mecânica, aquecimento local, baixa vida útil,
grande tamanho, alto consumo de energia elétrica, peso elevado, demora da inicialização, etc.
Os dispositivos de estado sólido são construídos, principalmente, em silício (Si) monocrista-
lino, mas, também, podem ser construídos em cristais de germânio (Ge), arseneto de gálio (GaAs),
etc. O silício é o material mais usado por diversos motivos, dentre os quais, os principais são o fato
de que o silício é o elemento mais abundante no planeta Terra e o fato de que o óxido de silício
(SiO2) é o material com a melhor resistividade elétrica que existe e se forma naturalmente na super-
fície da lâmina.
Os dispositivos digitais de estado sólido, hoje, se dividem em dois grupos principais: TTL e
CMOS. O primeiro grupo é formado pelos transistores bipolares. O segundo grupo, pelos monopo-
lares. Nos dispositivos monopolares, a corrente controlada é de, apenas, um tipo. Nos dispositivos
bipolares, de dois tipos. A corrente pode ser formada pelo deslocamento de elétrons na banda de
energia de condução ou por lacunas na banda de energia de valência. A corrente de elétrons é ob-
servada em metais e em semicondutores do tipo N. A corrente de lacunas é observada exclusiva-
mente nos semicondutores do tipo P. A corrente de lacunas é mais lenta do que a de elétrons por-
que a mobilidade das lacunas é inferior à dos elétrons.
190 Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
O transistor bipolar – bipolar juntion transistor – BJT – foi o primeiro transistor de estado
sólido a ser desenvolvido. Seu princípio de funcionamento está baseado no efeito Schottky, desco-
berto casualmente nos laboratórios Bell. O nome “bipolar” diz respeito ao fato de que a corrente
principal em topologia EC – emissor comum – chamada de (IC) é de um tipo nas regiões de emissor
e coletor e de outro tipo na região de base. Há dois tipos porque, nas regiões N (dopagem com
fósforo – 5A) a corrente majoritária é formada por elétrons na banda de condução e, nas regiões P
(dopagem com bóro – 3A) a corrente majoritária é formada por lacunas na banda de valência.
O nome TTL significa Transistor Transistor Logic. A primeira palavra diz respeito ao fato de
que a etapa lógica é feita por meio de transistores bipolares. A segunda palavra diz respeito ao fato
de que o buffer (amplificador de corrente, etapa de saída de toda porta lógica) também é construída
por meio de transistores bipolares. Comercialmente, a família de circuitos lógicos TTL é identificada
por meio dos prefixos 74 (uso geral) e 54 (uso militar).
A família TTL possui várias subdivisões, dentre as quais, as principais são:
LS: Low Schottky
HS: High Speed
C: CMOS levels
Os dispositivos monopolares são os transistores de efeito de campo (FET). Dentro desta ca-
tegoria, a primeira estrutura desenvolvida foi o FET de junção (JFET). Posteriormente, foi desenvol-
vido o capacitor MOS, formado por três camadas: metal, óxido e semicondutor. A primeira e a ter-
ceira formam as placas do capacitor, a segunda forma o dielétrico. O óxido de silício (SIO 2), também
chamado de vidro, é o melhor isolante que existe. O capacitor MOS pode ser usado para controlar
um FET, dando origem ao MOSFET. A sigla MOSFET significa “metal oxide semicondutor FET”.
Os primeiros circuitos digitais construídos com MOSFET´s usavam as tecnologias n-MOS e
p-MOS. Posteriormente, essas duas tecnologias foram substituídas pela tecnologia CMOS, o MOS
complementar, complementary MOS.
A tecnologia CMOS implica na divisão do circuito em duas partes, uma delas construídas com
transistores de canal P e a outra com transistores de canal N. Uma das regiões é chamada de rede
“R” e é responsável por levar a saída para o estado “zero” (reset). A outra região é chamada de rede
“S” e é responsável por levar a saída para o estado “um” (set). Uma região responde pelo comple-
mento da outra. Quando uma é ativada, a outra é desativada.
A família de tansistores MOSFET é a mais usada atualmente em dispositivos digitais e possui
uma enorme semelhança com o funcionamento dos transistores termiônicos, porém estes existem
somente na versão de canal N, impedindo a construção de regiões complementares. Apesar de sua
relativa simplicidade conceitual em relação ao BJT, a tecnologia MOS foi desenvolvida posterior-
mente por causa de impedimentos decorrentes das limitações dos processos de fabricação disponí-
veis naquela época.
O transistor FET (JFET, MOSFET, IGBT) – field effect transitor – transistor de efeito de campo
– opera de maneira análoga à válvula termiônica. Enquanto nas válvulas a corrente é controlada por
meio do campo elétrico entre filamento e grade, a corrente dos FET´s (corrente de canal) é contro-
lada por meio do campo elétrico entre metal e semicondutor.
A tecnologia CMOS é a mais usada hoje em circuitos digitais em razão do seu baixo consumo
de energia elétrica, muito embora o capacitor de porta implique em uma pequena redução na ca-
pacidade de operação em altas frequências por causa do tempo de carga/descarga. Comercial-
mente, a família de circuitos lógicos CMOS é identificada por meio do número 4000.
O inversor CMOS (porta lógica NOT) é o circuito CMOS mais simples, formado, apenas, por
um MOSFET de canal P (rede S) e um MOSFET de canal N (rede R). Todas as outras portas lógicas
são obtidas a partir da expansão do inversor CMOS por meio da ligação de transistores do mesmo
tipo em série ou em paralelo. Por essa razão, todas as portas lógicas construídas com tecnologia
Prof. Marco Aurélio Seluque Fregonezi 191
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
CMOS fornecem a saída invertida (operação NOT). Isso explica por que as portas NAND e NOR são
mais simples do que as portas AND e OR, respectivamente.
Os circuitos lógicos podem apresentar saídas ativas em nível baixo e saídas ativas em nível
alto. Quando a saída é ativa em nível baixo, a ação indicada pelo nome da variável de saída ou pela
sua legenda é efetuada por meio do nível lógico “zero”. Quando é ativa em nível alto, a ação é
efetuada através do nível lógico “um”.
O circuito lógico, para ser útil, precisa controlar um atuador, que pode ser um LED, um mo-
tor, um outro circuito lógico ou qualquer outro dispositivo elétrico. Nesta atuação, o circuito pode
exercer uma lógica positiva ou negativa. Na lógica negativa, o atuador é acionado por meio do nível
lógico “zero”. Na lógica positiva, o atuador é acionado por meio do nível lógico “um”. Na lógica
negativa, a fonte de energia para o atuador é um gerador externo, porém, na lógica positiva, a fonte
de energia para o atuador é o próprio chip, ou um buffer ligado ao chip, ou um driver de potência,
o que torna esta opção desvantajosa. Por essa razão, a lógica negativa é mais utilizada do que a
lógica positiva.
Não se deve confundir lógica positiva/negativa com saídas ativas em nível alto/baixo ou com
análise de “uns/zeros” em tabelas-verdade. Tratam-se de três conceitos totalmente distintos e in-
dependentes.
A B
A
C
B
Figura 8 – Porta AND de duas entradas
A
C
B
Figura 9 – Porta OR de duas entradas
A
C
B
Figura 10 – Porta XOR
A
C
B
Figura 11 – Porta NAND de duas entradas
A
C
B
Figura 12 – Porta NOR de duas entradas
A
C
B
Figura 13 – Porta XNOR
A
B D
C
Figura 14 – Porta AND de três entradas
A
B D
C
Figura 15 – Porta OR de três entradas
A
B D
C
Figura 16 – Porta NAND de três entradas
A
B D
C
Figura 17 – Porta NOR de três entradas
As portas lógicas podem ser implementadas em diversos meios físicos, como, por exemplo,
dutos hidráulicos e condutores óticos. O meio mais usado é o elétrico. Relés eletromecânicos podem
ser usados para implementar funções lógicas. Contatores elétricos são usados na implementação
da lógica de seleção de circuitos de acionamentos de motores elétricos. A forma mais comum, po-
rém, é através de circuitos eletrônicos em estado sólido (IC – integrated circuit), comercializados na
forma de chip´s.
A palavra chip (ou die) se refere à pastilha semicondutora onde o circuito é gravado. Esta
pastilha é acondicionada em um invólucro chamado de “encapsulamento”, responsável pelo maior
custo de produção nos circuitos de baixa complexidade. Esse encapsulamento, além de fornecer
proteção mecânica para o chip, ainda proporciona os contatos elétricos por meio de pinos de alu-
mínio. Esses pinos podem ser dispostos em três tipos básicos de encapsulamento quanto à geome-
tria dos contatos:
duas linhas paralelas (DIP – dual in line package)
quatro linhas formando um quadrado (PLCC - plastic leaded chip carrier)
arranjo bidimensional (LGA – land grid array)
Prof. Marco Aurélio Seluque Fregonezi 193
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
Existem, ainda, outras siglas, referentes a variações no formato dos pinos. O formato DIP é
o mais usado por estudantes porque é compatível com a matriz de contatos usada no desenvolvi-
mento de protótipos, mas não é indicado em produção de larga escala por causa do custo elevado
e do espaço físico ocupado.
Todo encapsulamento possui algum artifício visual para a identificação dos pinos. O formato
DIP faz uso de um chanfro ou círculo localizado na parte superior. O primeiro pino está disposto à
esquerda do marcador, enquanto o último pino está à sua direita.
Os principais tamanhos de encapsulamento DIP são DIP8, DIP14, DIP16, DIP20, DIP36 e
DIP40. O encapsulamento DIP7 seria um DIP8 faltando um pino.
Embora possam existir variações entre um fabricante e outro, a maioria dos IC´s de portas
lógicas básicas respeitam a mesma pinagem. Considerando que os encapsulamentos oferecem uma
quantidade de pinos geralmente superior à necessária para o acesso a uma única porta lógica, estes
IC´s costumam fornecer mais de uma porta lógica. Dois pinos são usados para a alimentação elétrica.
Portas lógicas de oito entradas com encapsulamento DIP14 oferecem uma porta lógica por
chip. Este é o caso dos seguintes IC´s:
74LS30 – LS 8-input NAND
4078 8-input NOR
1 2
2 3
3 4
4 8 5 13
5 9
6 10
11 11
12 12
de output enable (OE). Este sinal é aplicável, somente, aos bits das saídas de dados. Bits de saída de
sinalização não podem ser controlados pelo OE.
input output
output enable
Figura 20 – 74LS126 Quad 3-state buffer
CS IN OUT
0 0 3S
0 1 3S
1 0 0
1 1 1
Tabela 6 – 74LS126 Quad 3-state buffer
input output
output enable
Figura 21 – 74LS125 Quad 3-state buffer
CS IN OUT
0 0 0
0 1 1
1 0 3S
1 1 3S
Tabela 7 – 74LS125 Quad 3-state buffer
Os circuitos digitais podem fazer uso do recurso da habilitação das entradas. Quando estas
são habilitadas, o circuito funciona normalmente. Quando estas são desabilitadas, elas são forçadas
a um determinado valor. Esta função é chamada de chip enable ou chip select.
A função CE ou CS é aplicável, somente, aos bits das entradas de dados. Bits de entrada de
controle não podem ser controlados pelo CE.
Cada bit de dado de entrada recebe uma porta lógica de duas entradas. Uma entrada recebe
o bit de dado propriamente dito. A outra entrada recebe o sinal CE.
Elemento Elemento
Porta
neutro nulo
AND 1 0
OR 0 1
Tabela 8 – Definição dos elementos das portas lógicas
Situação Elemento
Habilitado Neutro
Desabilitado Nulo
Tabela 9 – Elemento usado no controle das entradas
Entradas Entradas
Porta
habilitadas desabilitadas
AND 1 0
OR 0 1
Tabela 10 – Valor do comando chip enable para ativação das entradas
Nome da
Porta
função
AND CE
OR /CE
Tabela 11 – Definição da lógica de ativação das entradas
input input
output output
Usando uma porta XOR, o circuito de habilitação de entradas se transforma em uma porta
NOT habilitável.
input
output
select
Figura 23 – 74LS86 como um Yes/Not configurável
S IN OUT função
0 0 0 YES
0 1 1 YES
1 0 1 NOT
1 1 0 NOT
Tabela 12 – 74LS86 como um Yes/Not configurável
Parte 02 – Decodificadores
Imagine a seguinte situação: A professora, na escola, vai fazer a conferência sobre quais alu-
nos estão presentes. A professora possui uma lista com os nomes dos alunos matriculados. Esta lista
consiste de um conjunto de combinações de letras que formam os nomes na forma escrita. Essas
combinações consistem de um código linguístico. Para cada aluno, existe um código correspon-
dente. O conjunto ordenado de letras que formam o nome do aluno não possui nenhuma corres-
pondência direta com a pessoa física do aluno. Essa ausência de correlação direta impede que uma
pessoa iletrada consiga identificar o aluno por meio da observação do texto. A alfabetização consiste
da obtenção do conhecimento sobre o procedimento da conversão da mensagem codificada na in-
dicação do seu significado. Ao ler o nome do aluno, a professora realiza o processo de decodificação
daquela mensagem a fim de realizar o apontamento do aluno selecionado. O texto é a informação
codificada. O apontamento do aluno é a informação decodificada. A professora é o decodificador.
As expressões algébricas na forma canônica são construídas a partir dos termos, que podem
ser maxtermos, na análise de “zeros”, ou mintermos, na análise de “uns”. O circuito identificador e
seletor destes termos é chamado de decodificador.
Os decodificadores são, ao mesmo tempo, a estrutura digital mais simples encontrada em
circuitos lógicos e a mais importante. Não é possível projetar circuitos digitais sem o entendimento
a respeito do que sejam os decodificadores.
Decodificadores podem ser entendidos como conversores de binário para decimal. Existe
uma entrada binária e uma saída decimal. A entrada binária é formada pela quantidade de bits ne-
cessária para permitir a representação de todos os valores decimais suportáveis por este decodifi-
cador. A saída decimal é formada por uma quantidade de bits suficiente para apontar para todos os
valores decimais suportados por este decodificador.
O nome dos bits de saída precisa receber, obrigatoriamente, um sufixo correspondente ao
valor decimal da palavra binária colocada nos bits de entrada. O valor decimal existe, apenas, no
entendimento humano, pois, quanto ao circuito lógico, existe, apenas, números binários codificados
e números binários decodificados.
Um decodificador completo possui “n” bits de entrada e “2^n” bits de saída. O decodificador
é especificado por “n2^n”. Um decodificador incompleto é aquele que sofre a subtração de uma
ou mais saídas. Neste caso, as palavras binárias de entrada correspondentes a estas saídas omitidas
não poderiam ser utilizadas, pois o decodificador não seria capaz de fazer a decodificação.
Como somente uma única combinação dos bits de entrada pode ser inserida em um instante,
então somente uma única saída pode ser sinalizada por vez. Não é permitido selecionar zero, duas
ou mais saídas. Uma e apenas uma saída é selecionada.
Se o decodificador indica o valor decimal por meio de uma saída em “zero”, temos um de-
codificador com saída decodificada ativa em nível zero e, neste caso, o nome dos bits de saída pre-
cisa começar com “/”. Se o decodificador indica o valor decimal por meio de uma saída em “um”,
temos um decodificador com saída decodificada ativa em nível um. Para decodificação em nível
“zero”, todas as demais saídas assumem nível “um”. Para decodificação em nível “um”, todas as
demais saídas assumem nível “zero”.
Para saídas decodificadas indicadas por nível “zero”, cada bit corresponde a um maxtermo
e a porta lógica utilizada é a OR. Para saídas decodificadas indicadas por nível “um”, cada bit corres-
ponde a um mintermo e a porta lógica utilizada é a AND. De maneira geral, a porta lógica empregada
é aquela para a qual o valor usado na sinalização é o elemento neutro.
Quando as saídas decodificadas são ativas em nível baixo, é preciso sinalizar este fato. A
forma mais eficiente é usar uma barra “/” no início do nome das variáveis de saída. Se, por razão de
limitação do ambiente de desenvolvimento, não é possível usar este símbolo no início do nome da
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 199
Sistemas digitais – 30/01/2021
variável de saída, então este nome deve ser iniciado por “NOT_”. Porém, nem sempre é possível
colocar o nome das variáveis no desenho do circuito lógico e, neste caso, não seria possível esclare-
cer que as saídas seriam ativas em nível baixo. Neste caso, convém usar uma circunferência em
todas as saídas decodificadas ativas em nível baixo à semelhança da circunferência usada no símbolo
das portas NOT, NAND e NOR. Neste texto, será usada a redundância; as duas representações são
usadas ao mesmo tempo.
Quando as entradas e/ou as saídas são decodificadas, não existe o conceito de “palavra bi-
nária”, mas, sim, de “indicação”. Por esse motivo, existe a definição de “indicação por nível alto” ou
“indicação por nível baixo”. Quando as entradas e/ou as saídas são codificadas, então temos uma
palavra binária e não se definem o nível de indicação.
Conforme foi explicado no capítulo anterior, as portas NOR e NAND são mais simples do que
as portas OR e AND. Por essa razão, é possível simplificar o circuito eletrônico por meio da análise
invertida de modo a obter o mesmo decodificador usando as portas NOR ou NAND.
O comando “chip enable” – CE – é usado para habilitar/desabilitar as entradas de dados (não
atua nas entradas de controle). A desabilitação é obtida por meio da injeção do elemento nulo da
porta lógica usada nas entradas.
O comando “output enable” – OE – é usado para habilitar/desabilitar as saídas de dados (não
atua nas saídas de sinalização). A desabilitação é obtida por meio do uso do valor “tri-state”. Este
valor indica que a saída digital encontra-se em estado de alta impedância, uma isolação física do nó
de saída em relação ao resto do circuito. O uso do tri-state permite que as saídas de vários circuitos
sejam todas elas ligadas ao mesmo barramento de dados – data bus. Se o tri-state não é usado, esta
ligação provoca um curto-circuito e a queima dos componentes envolvidos.
A palavra codificada de entrada faz a seleção do termo escolhido. Cada termo possui um
endereço único e exclusivo, pois ele está embutido em uma lista ordenada. A seleção do termo é
chamada de “endereçamento”. Neste caso, o barramento de entrada do decodificador pode ser
entendido como sendo um barramento de endereço – address bus.
A out0 out1
0 1 0 Out0 = /A
1 0 1 Out1 = A
Tabela 1 – 12 DEC ativo em nível alto
A /out0 /out1
0 0 1 /Out0 = A
1 1 0 /Out1 = /A
Tabela 2 – 12 DEC ativo em nível baixo
Out0 out0
A 24 out1
Out1 B DEC out2
out3
Out2
Out3
/Out0
/out0
A 24 /out1
/Out1 B DEC /out2
/out3
/Out2
/Out3
C B A
4321
Out0
Out1
Out2
Out3
Out4
Out5
Out6
Out7
out0
out1
A out2
38 out3
B DEC out4
out5
C out6
out7
Figura 6 – 38 DEC ativo em nível alto
C B A
4321
/Out0
/Out1
/Out2
/Out3
/Out4
/Out5
/Out6
/Out7
0 0 1 1 0 1 1 1 1 1 1 /Out1 = C+ B+/A
0 1 0 1 1 0 1 1 1 1 1 /Out2 = C+ /B+ A
0 1 1 1 1 1 0 1 1 1 1 /Out3 = C+ /B+/A
1 0 0 1 1 1 1 0 1 1 1 /Out4 = /C+ B+ A
/out0
/out1
A /out2
38 /out3
B DEC /out4
/out5
C /out6
/out7
Figura 8 – 38 DEC ativo em nível baixo
out0
Out0
A 24 out1
Out1 B DEC out2
CE out3
Out2
Out3
/Out0 /out0
A 24 /out1
/Out1 B DEC /out2
/CE /out3
/Out2
/Out3
A out0
Out0
B 24 out1
Out1 CE DEC out2
OE out3
Out2
Out3
A /out0
Out0 24
B /out1
Out1 /CE DEC /out2
/OE /out3
Out2
Out3
74LS10
/Out0
/Out1
/Out2
/Out3
/Out4
/Out5
/Out6
/Out7
74LS27
Out0
Out1
Out2
Out3
Out4
Out5
Out6
Out7
CE
Out0
Out1
Out2
Out3
Out4
Out5
Out6
Out7
/CE
/Out0
/Out1
/Out2
/Out3
/Out4
/Out5
/Out6
/Out7
74LS21 4072
Out0 /Out0
Out1 /Out1
Out2 /Out2
Out3 /Out3
Out4 /Out4
Out5 /Out5
Out6 /Out6
Out7 /Out7
Out8 /Out8
Out9 /Out9
Figura 17 – 38 DEC BCD ativo em nível alto e ativo em nível baixo
D C B A out0 out1 out2 out3 out4 out5 out6 out7 out8 out9
0 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 1 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 0 0 0 0 0 0
0 1 0 0 0 0 0 0 1 0 0 0 0 0
0 1 0 1 0 0 0 0 0 1 0 0 0 0
0 1 1 0 0 0 0 0 0 0 1 0 0 0
0 1 1 1 0 0 0 0 0 0 0 1 0 0
1 0 0 0 0 0 0 0 0 0 0 0 1 0
1 0 0 1 0 0 0 0 0 0 0 0 0 1
1 0 1 X 0 0 0 0 0 0 0 0 0 0
1 1 X X 0 0 0 0 0 0 0 0 0 0
Figura 11 – Definição do decodificador BCD com saídas ativas em nível alto
74LS21 4072
Out0 /Out0
Out1 /Out1
Out2 /Out2
Out3 /Out3
Out4 /Out4
Out5 /Out5
Out6 /Out6
Out7 /Out7
Out8 /Out8
Out9 /Out9
74LS32 74LS08
74LS08 74LS32
Erro /Erro
Figura 18 – 38 DEC BCD ativo em nível alto e ativo em nível baixo com bit de erro
BA BA
DC 00 01 11 10 DC 00 01 11 10
00 0 0 0 0 00 1 1 1 1
01 0 0 0 0 01 1 1 1 1
11 1 1 1 1 11 0 0 0 0
10 0 0 1 1 10 1 1 0 0
Tabela 12 – Obtenção da expressão minimizada para o bit de erro
Parte 03 – Codificadores
No capítulo anterior, foram vistos os circuitos lógicos decodificadores. Agora, serão aborda-
dos os circuitos que fazem a ação oposta, a codificação.
Codificadores podem ser entendidos como conversores de decimal para binário. Existe uma
entrada decimal e uma saída binária. A entrada decimal é formada por uma quantidade de bits su-
ficiente para apontar para todos os valores decimais suportados por este codificador. A saída binária
é formada pela quantidade de bits necessária para permitir a representação de todos os valores
decimais suportáveis por este codificador.
O nome dos bits de entrada precisa receber, obrigatoriamente, um sufixo correspondente
ao valor decimal da palavra binária gerada nos bits de saída.
Um codificador completo possui “2^n” bits de entrada e “n” bits de saída. O codificador é
especificado por “2^nn”. Um codificador incompleto é aquele que sofre a subtração de uma ou
mais entradas. Neste caso, as palavras binárias de saída correspondentes a estas saídas omitidas
não tem condições de serem geradas, pois o codificador não possui entradas para gera-las.
Como somente uma única combinação dos bits de saída pode ser gerada em um instante,
então somente uma única entrada pode ser acionada por vez. Não é permitido selecionar zero, duas
ou mais entradas. Uma e apenas uma entrada é selecionada.
Se o codificador indica o valor decimal por meio de uma entrada em “zero”, temos um codi-
ficador com entrada codificada ativa em nível zero e, neste caso, o nome dos bits de entrada precisa
começar com “/”. Se o codificador indica o valor decimal por meio de uma entrada em “um”, temos
um codificador com entrada codificada ativa em nível um. Para codificação em nível “zero”, todas
as demais entradas precisam ser postas em “um”. Para codificação em nível “um”, todas as demais
entradas precisam ser postas em “zero”.
Para entradas indicadas por nível “zero”, a porta lógica utilizada é a AND. Para saídas indica-
das por nível “um”, a porta lógica utilizada é a OR. De maneira geral, a porta lógica empregada é
aquela para a qual o valor usado na sinalização é o elemento nulo ou dominante.
O codificador apresentado neste capítulo não possui proteção para acionamento inválido e,
por isso, seu uso deve respeitar a definição do que seja um decodificador. Uma e apenas uma en-
trada deve ser acionada por vês. Existe um tipo de codificador – codificador de prioridade (priority
encoder) que, em caso de duas ou mais entradas acionadas ao mesmo tempo, a menor ou a maior
delas é selecionada. Assim são os circuitos codificadores comerciais.
O codificador sem proteção, apresentado neste capítulo, pode ser usado quando o sistema
de acionamento das entradas possui uma limitação de natureza mecânica que impede o aciona-
mento inválido. Um sistema translacional ou rotacional composto por sensores de posição poderia
fazer este acionamento. Como o ponteiro sempre estará presente, então sempre haverá uma en-
trada acionada. Como o ponteiro não pode estar em dois ou mais lugares ao mesmo tempo, então
somente uma entrada será acionada por vês.
in0
21 A
in1 ENC
/in0
21 A
/in1 ENC
in0
in1 42 A
A
in2 ENC B
B
in3
/in0
/in1 42 A
A ENC
/in2 B
/in3
B
4321 in0
in1 A
in2 83
A in3
in4 B
ENC
in5
B in6 C
in7
C
4321 /in0
74LS21
/in1 A
OutA /in2
/in3 83
/in4 B
/in5
ENC
OutB /in6 C
/in7
OutC
4321
4072 in0
4071
in1 A
OutA in2
in3 BCD B
OutB in4
in5 ENC
OutC in6 C
in7
OutD in8 D
in9
in0 in1 in2 in3 in4 in5 in6 in7 In8 In9 D C B A
1 0 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 0 0 0 1 0
0 0 0 1 0 0 0 0 0 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0 0 0 0 1 1 0
0 0 0 0 0 0 0 1 0 0 0 1 1 1
0 0 0 0 0 0 0 0 1 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1 1 0 0 1
Tabela 7 – Definição do codificador BCD com entradas ativas em nível alto
A = in1in3in5in7in9
B = in2in3in6in7
C = in4in5in6in7
D = in8in9
4082 4321
4081
OutA
OutB /in0
4073
/in1 A
OutC /in2
/in3 BCD B
OutD /in4
/in5 ENC
/in6 C
/in7
/in8 D
/in9
/in0 /in1 /in2 /in3 /in4 /in5 /in6 /in7 /in8 /in9 D C B A
0 1 1 1 1 1 1 1 1 1 0 0 0 0
1 0 1 1 1 1 1 1 1 1 0 0 0 1
1 1 0 1 1 1 1 1 1 1 0 0 1 0
1 1 1 0 1 1 1 1 1 1 0 0 1 1
1 1 1 1 0 1 1 1 1 1 0 1 0 0
1 1 1 1 1 0 1 1 1 1 0 1 0 1
1 1 1 1 1 1 0 1 1 1 0 1 1 0
1 1 1 1 1 1 1 0 1 1 0 1 1 1
1 1 1 1 1 1 1 1 0 1 1 0 0 0
1 1 1 1 1 1 1 1 1 0 1 0 0 1
Tabela 8 – Definição do codificador BCD com entradas ativas em nível baixo
A = /in0+/in2+/in4+/in6+/in8
B = /in0+/in1+/in4+/in5+/in8+/in9
C = /in0+/in1+/in2+/in3+/in8+/in9
D = /in0+/in1+/in2+/in3+/in4+/in5+/in6+/in7
Parte 04 – Multiplexadores
O multiplexador é o dispositivo que recebe muitas informações e escolhe uma delas para ser
enviada para a saída. A multiplexação pode ser analógica ou digital. Uma multiplexação analógica
pode ser exemplificada por meio do microcontrolador PIC16F877 que possui oito entradas analógi-
cas, das quais uma é selecionada para ser enviada para o conversor A/D. Um circuito puramente
analógico pode efetuar a multiplexação. Por exemplo, nos antigos equipamentos de som residen-
cial, existiam várias opções para a fonte do áudio, como, por exemplo, o toca-discos de vinil, o toca-
discos a laser, o toca-fitas, rádio FM, rádio AM, rádio SW, microfone ou entrada auxiliar. Por meio
de chaves mecânicas, uma das fontes de sinal é enviada para o amplificador.
Uma multiplexação analógica também pode ser efetuada por meio de relés. Desta forma, é
possível obter isolação elétrica total entre o circuito de acionamento e os circuitos comandados
pelos relés. O circuito de acionamento seleciona um relé e energiza a sua bobina. Somente um relé
é acionado por vês. As chaves dos relés estão todas ligadas ao mesmo nó de saída.
Uma multiplexação digital consiste de um circuito que recebe duas ou mais palavras binárias
e escolhe uma delas para ser enviada para a palavra de saída. As palavras precisam ter todas o
mesmo tamanho em bits. A escolha é feita por meio da palavra de seleção.
As palavras de entrada precisam ser mantidas fixas para que a palavra de saída seja lida. Por
esse motivo, os multiplexadores comerciais são dotados de uma memória na palavra de saída. Esta
memória é assunto para capítulos mais avançados e não é abordado aqui.
Todo multiplexador digital possui um decodificador na entrada. Este decodificador é respon-
sável pela seleção da palavra de entrada a partir da palavra de seleção. Este decodificador pode ser
ativo em nível alto ou baixo e isso não interfere no funcionamento do multiplexador.
Quando a quantidade de palavras de entrada do multiplexador não é uma potência exata de
dois, então algumas combinações da palavra de seleção são inválidas. Quando acionados, esses en-
dereços colocam, em todos os bits da palavra de saída, o valor “zero” ou “um” a depender da lógica
interna. Essa informação não aparece no símbolo do multiplexador e, quando se trata de algum
dispositivo comercial, precisa ser investigada através do manual do fabricante do chip. Em um pro-
jeto bem elaborado, endereços inválidos jamais são acessados de modo que o fornecimento de va-
lor “zero” ou “um” não faz diferença.
A palavra de saída de um multiplexador pode ser ligada a um barramento de dados – data
bus – conforme a arquitetura de um microprocessador/microcontrolador. Por meio do multiplexa-
dor, o barramento de dados é capaz de fazer a escrita em algum dispositivo anexado ao sistema.
sel
periférico 1
periférico 2 8-bit
8-bit
data bus
periférico 3 MUX
periférico n
Figura 1 – Esquema de leitura dos periféricos em um sistema processado
Sel
Sel
A0
A1
A0 Out0
B0
A1
B1
B0 Out1
B1
Out1 Out0
Figura 2 – 2-bit 21 MUX com análise de uns
sel
Sel Out1 Out0
A 2-bit
0 A1 A0 Out0 = (A0/Sel)+(B0Sel)
21 out
1 B1 B0 Out1 = (A1/Sel)+(B1Sel) B MUX
Tabela 2 - 2-bit 21 MUX
A0 sel
A1
A 2-bit
B0 21 out
B MUX
B1
Out1 Out0
Figura 3 – 2-bit 21 MUX com análise de zeros
Out0 = (A0/Sel)+(B0Sel)
Out1 = (A1/Sel)+(B1Sel)
A0
Out2 = (A2/Sel)+(B2Sel)
A1
Sel Out2 Out1 Out0
A2 0 A2 A1 A0
1 B2 B1 B0
B0
Tabela 3 – 3-bit 21 MUX
B1
B2 sel
A 3-bit
21 out
B MUX
Out2 Out1 Out0
Figura 4 – 3-bit 21 MUX com análise de uns
Out0 = (A0+Sel)(B0+/Sel)
Out1 = (A1+Sel)(B1+/Sel)
Out2 = (A2+Sel)(B2+/Sel)
A0
A1
Sel Out2 Out1 Out0
A2 0 A2 A1 A0
1 B2 B1 B0
B0 Tabela 4 – 3-bit 21 MUX
B1
sel
B2
A 3-bit
21 out
B MUX
C0 sel1 sel0
C1
A 2-bit
B 31 out
C MUX
Out1 Out0
Figura 6 – 2-bit 31 MUX com análise de uns
C0
sel1 sel0
C1 A 2-bit
B 31 out
C MUX
Out1 Out0
Figura 7 – 2-bit 31 MUX com análise de zeros
A
Sel1 Sel0 Out2 Out1 Out0
0
0 0 A2 A1 A0
4321
0 1 B2 B1 B0
1 0 C2 C1 C0
B 1 1 0 0 0
Tabela 7 – 3-bit 21 MUX
0
4321
sel1 sel0
C
0 A 3-bit
4321
B 31 out
OUT
C MUX
4 3 21
sel1 sel0
C
0
A 3-bit
4321
B 31 out
OUT
C MUX
4 3 21
Exemplo 9: Multiplexador 21 de dois bits com chip enable e output enable
Sel Versão 1
CE
Out0 = (A0CE/Sel)+(B0CESel)
Out1 = (A1CE/Sel)+(B1CESel)
A0
CE Sel Out1 Out0
A1 0 X 0 0
1 0 A1 A0
B0 1 1 B1 B0
Tabela 9 – 2-bit 21 MUX
B1
sel CE OE
OE A 2-bit
74LS126 21 out
B MUX
Out1 Out0
Figura 10 – 3-bit 21 MUX com chip enable e output enable
Exemplo 10: Multiplexador 21 de dois bits com chip enable e output ena-
Sel ble Versão 1
/CE
Out0 10
Figura = –(A0+/CE+Sel)(B0+/CE+/Sel)
2-bit 21 MUX com análise de zeros
Out1 = (A1+/CE+Sel)(B1+/CE+/Sel)
A 2-bit
21 out
/OE 74LS125 B MUX
Out1 Out0
Figura 11 – 3-bit 21 MUX com chip enable e output enable
Exemplo 11: Multiplexador 21 de dois bits com chip enable e output ena-
ble Versão 2
Sel
Out0 = (A0CE/Sel)+(B0CESel)
Out1 = (A1CE/Sel)+(B1CESel)
CE
A 2-bit
OE 21 out
74LS126 B MUX
Out1 Out0
Figura 12 – 2-bit 21 MUX com análise de uns
Exemplo 12: Multiplexador 21 de dois bits com chip enable e output ena-
ble Versão 2
Sel
Out0 = (A0+/CE+Sel)(B0+/CE+/Sel)
Out1 = (A1+/CE+Sel)(B1+/CE+/Sel)
/CE
A 2-bit
21 out
/OE 74LS125
B MUX
Out1 Out0
Figura 13 – 2-bit 21 MUX com análise de zeros
Exemplo 13: Multiplexador 21 de dois bits com chip enable e output ena-
ble Versão 3
Sel
Out0 = (A0/Sel)+(B0Sel)+/CE
Out1 = (A1/Sel)+(B1Sel)+/CE
A0
/OE A 2-bit
21 out
B MUX
Out1 Out0
Figura 14 – 2-bit 21 MUX com análise de uns
Exemplo 14: Multiplexador 21 de dois bits com chip enable e output ena-
ble Versão 3
Sel
Out0 = (A0+Sel)(B0+/Sel)CE
Out1 = (A1+Sel)(B1+/Sel)CE
A0
sel CE OE
OE 74LS126 A 2-bit
21 out
B MUX
Out1 Out0
Figura 15 – 2-bit 21 MUX com análise de zeros
Out1 Out0
Figura 16 – 2-bit 21 MUX com análise de uns
Out1 Out0
Figura 17 – 2-bit 21 MUX com análise de zeros
A0
A1
A2
B0 sel1 sel0
B1
A
3-bit
B2 B
41 out
C0
C MUX
D
C1
C2
D0
D1
D2
Out0 = (A0/Sel1/Sel0)+(B0/Sel1Sel0)+(C0Sel1/Sel0)+(D0Sel1Sel0)
Out1 = (A1/Sel1/Sel0)+(B1/Sel1Sel0)+(C1Sel1/Sel0)+(D1Sel1Sel0)
Out2 = (A2/Sel1/Sel0)+(B2/Sel1Sel0)+(C2Sel1/Sel0)+(D2Sel1Sel0)
A0
A1
A2
B0
B1 sel1 sel0
B2
A
3-bit
C0 B
41 out
C MUX
C1
D
C2
D0
D1
D2
Out0 = (A0+Sel1+Sel0)(B0+Sel1+/Sel0)(C0+/Sel1+Sel0)(D0+/Sel1+/Sel0)
Out1 = (A1+Sel1+Sel0)(B1+Sel1+/Sel0)(C1+/Sel1+Sel0)(D1+/Sel1+/Sel0)
Out2 = (A2+Sel1+Sel0)(B2+Sel1+/Sel0)(C2+/Sel1+Sel0)(D2+/Sel1+/Sel0)
Parte 05 – Demultiplexadores
O demultiplexador é o dispositivo que recebe uma informação e escolhe uma dentre várias
saídas para receber a entrada. A demultiplexação pode ser analógica ou digital. Um circuito pura-
mente analógico pode efetuar a demultiplexação. Por exemplo, alguns modelos dos antigos equi-
pamentos de som residencial, existiam várias opções para a saída do áudio, como, por exemplo, as
caixas de som, o fone de ouvidos ou uma saída para caixas auxiliares. Por meio de chaves mecânicas,
uma dos receptores de sinal é escolhido para receber o sinal de áudio.
Uma demultiplexação analógica também pode ser efetuada por meio de relés. Desta forma,
é possível obter isolação elétrica total entre o circuito de acionamento e os circuitos comandados
pelos relés. O circuito de acionamento seleciona um relé e energiza a sua bobina. Somente um relé
é acionado por vês. As chaves dos relés estão todas ligadas ao mesmo nó de entrada.
Uma demultiplexação digital consiste de um circuito que recebe uma palavra binária e esco-
lhe uma das saídas para receber essa palavra. Os receptores de saída precisam ter todas o mesmo
tamanho em bits. A escolha é feita por meio da palavra de seleção.
Todo demultiplexador digital possui um decodificador na entrada. Este decodificador é res-
ponsável pela seleção da palavra de saída a partir da palavra de seleção. Este decodificador pode
ser ativo em nível alto ou baixo. No caso de nível alto, as saídas não selecionadas recebem o valor
“zero” em todos os seus bits. No caso de nível baixo, as saídas não selecionadas recebem o valor
“um” em todos os seus bits.
A palavra de entrada de um multiplexador pode ser ligada a um barramento de dados – data
bus – conforme a arquitetura de um microprocessador/microcontrolador. Por meio do multiplexa-
dor, o barramento de dados é capaz de fazer a leitura de algum dispositivo anexado ao sistema.
sel
periférico 1
8-bit 8-bit periférico 2
data bus DEMUX periférico 3
periférico n
A0 = In0/Sel B0 = In0Sel
A1 = In1/Sel B1 = In1Sel
Sel A1 A0 B1 B0
0 In1 In0 0 0
1 0 0 In1 In0
Tabela 1 - 2-bit 21 DEMUX
Sel
A0
In0 sel
A1
In1
2-bit A
B0 in 12
DEMUX B
B1
Sel A1 A0 B1 B0
0 In1 In0 1 1
1 1 1 In1 In0
Tabela 2 - 2-bit 21 DEMUX
Sel
A0
In0 sel
A1
In1
2-bit A
B0
in 12
B1 DEMUX B
Sel A B C D
00 In2 In1 In0 000 000 000
01 000 In2 In1 In0 000 000
10 000 000 In2 In1 In0 000
11 000 000 000 In2 In1 In0
Tabela 3 - 3-bit 41 DEMUX
0
4321 4321 4321 4321 4321
A0 = In0+ Sel1+ Sel0
A1 = In1+ Sel1+ Sel0
A2 = In2+ Sel1+ Sel0
B0 = In0+ Sel1+/Sel0
B1 = In1+ Sel1+/Sel0
B2 = In2+ Sel1+/Sel0
C0 = In0+/Sel1+ Sel0
C1 = In1+/Sel1+ Sel0
C2 = In2+/Sel1+ Sel0
D0 = In0+/Sel1+/Sel0
D1 = In1+/Sel1+/Sel0
D2 = In2+/Sel1+/Sel0
Sel A B C D
00 In2 In1 In0 111 111 111
01 111 In2 In1 In0 111 111
10 111 111 In2 In1 In0 111
11 111 111 111 In2 In1 In0
Tabela 3 - 3-bit 41 DEMUX
0
A B C
A0 = In0/Sel1/Sel0
4321 A1 = In1/Sel1/Sel0
4321 4321 4321
74LS11 A2 = In2/Sel1/Sel0
A3 = In3/Sel1/Sel0
B0 = In0/Sel1 Sel0
B1 = In1/Sel1 Sel0
B2 = In2/Sel1 Sel0
B3 = In3/Sel1 Sel0
C0 = In0 Sel1/Sel0
C1 = In1 Sel1/Sel0
C2 = In2 Sel1/Sel0
C3 = In3 Sel1/Sel0
Sel A B C D
00 In3 In2 In1 In0 000 000 000
01 000 In3 In2 In1 In0 000 000
10 000 000 In3 In2 In1 In0 000
11 000 000 000 In3 In2 In1 In0
Tabela 5 - 4-bit 31 DEMUX
Sel A B C D
00 In3 In2 In1 In0 111 111 111
01 111 In3 In2 In1 In0 111 111
10 111 111 In3 In2 In1 In0 111
11 111 111 111 In3 In2 In1 In0
Tabela 6 - 4-bit 31 DEMUX
Figura 7 – 4-bit 31 DEMUX com análise de uns
8-bit
sel_in sel_out
data bus
periférico 1 periférico 1
periférico 2 8-bit 8-bit periférico 2
periférico 3 MUX DEMUX periférico 3
periférico n periférico n
Figura 1 – Esquema de um roteador
sel_in sel_out
canal 1
8-bit canal 2 8-bit
data bus 8-bit 8-bit data bus
canal 3
1 DEMUX MUX 2
canal n
Se um dos blocos faz uso da análise de “zeros”, o outro bloco também precisa fazer análise
de “zeros”. Se um dos blocos faz uso da análise de “uns”, o outro bloco também precisa fazer análise
de “uns”. Embora seja algebricamente possível, não é usual juntar um bloco de análise de “zeros”
com um bloco de análise de “uns”.
Como o próprio nome diz, roteador é o dispositivo que escolhe uma rota. Uma rota é deter-
minada pelo seu ponto de partida e pelo seu ponto de chegada. Roteador é a ligação de um multi-
plexador e um demultiplexador, nesta ordem. Existem várias entradas de dados e várias saídas de
dados. Alguns bits de seleção determinam a escolha da palavra de entrada. Outros bits de seleção
determinam a escolha da saída para onde a palavra é enviada. Somente uma rota pode ser escolhida
por vez. Segundo esta definição, o roteador possui, apenas, um canal de comunicação. A sensação
da conexão de vários canais é obtida por meio da alternância temporal entre várias conexões dife-
rentes.
Comutador é a escolha do canal de comunicação entre uma fonte de dados e um receptor
de dados. Existem vários caminhos que podem ser usados nesta comunicação e os bits de seleção
Caminho 2
Origem Destino
Caminho 3
Caminho 4
Figura 3 – Comutador de quatro caminhos
Um roteador de dois ou mais canais permite que várias conexões sejam efetuadas ao mesmo
tempo. Este circuito é muito mais sofisticado e não pode ser obtido por meio do simples acopla-
mento de um MUX e um DEMUX. O gerenciamento do uso dos canais requer um algoritmo com-
plexo. Dispositivos modernos fazem uso de microprocessadores ou processadores digitais de sinais
executando programas baseados em inteligência artificial para a otimização do uso dos canais. Este
assunto é abordado em cursos específicos sobre redes de computadores.
periférico 1 periférico 1
periférico 2 periférico 2
periférico 3 periférico 3
periférico n periférico n
Figura 4 – Esquema de um roteador de dois canais
Sel1 Sel0
A0
A1
B0
B1
C0
Sel2
C1
D0
canal
D1
E0
E1
Sel1 Sel0
A0
A1
B0
B1
C0
Sel2
C1
D0
canal
D1
E0
E1
A
E
B 4-bit
43 F
C ROT
G
D
Figura 6 – Diagrama do roteador 32
Sel1 Sel0
0
4321
0
4321
0
4321
0
4321
Sel3 Sel2
E
canal
4321
4321
4321
Sel_In Sel_Out
In1 In0
canal 1
canal 2
Out1 Out0
Figura 8 – Comutador 2-bit de dois canais com análise de uns
Sel_In Sel_Out
In1 In0
canal 1
canal 2
Out1 Out0
Figura 9 – Comutador 2-bit de dois canais com análise de zeros
In1 In0
canal 1
canal 2
canal 3
Out1 Out0
Figura 10 – Comutador de três canais
A 24 42 A
B DEC ENC B
in0 out0
in1 42 24 out1
in2 ENC DEC out2
in3 out3
Figura 2 – Ligação ENCDEC
4n A
A 24
ENC B
B DEC
custom
Figura 3 – Ligação DECENC custom
B
B A
Figura 4 – Ligação DECENC com análise de zeros
Exemplos 1 e 2:
0 0
A 34 1 A 34 1
DEC DEC
B 2 B 2
3 3
B A B A
Figura 5 – Exemplo 1 com análise de uns e de zeros respectivamente
0 0
A 34 1 A 34 1
DEC DEC
B 2 B 2
3 3
+V
C B A C B A
Figura 6 – Exemplo 2 com análise de uns e de zeros respectivamente
Exemplos 3 e 4:
0
0
1
1
2
2 A
A 3
3 B 38
B 38 DEC 5
DEC 5 C
C 6
6
7
7
8
8 +V
Out1 Out0
Out1 Out0
Figura 7 – Exemplo 3 com análise de uns e de zeros respectivamente
2
A
3
B 38
DEC 5
C
6
B 38
DEC
C
+V
24 4n A
A
DEC ENC B
B
custom custom
Figura 1 – Ligação DECENC
Exemplo 1:
B A B A
Exemplo 2:
C B A
Out1 Out0
Circuito 2 – Exemplo 2 com análise de uns
C B A
Exemplo 4:
Out1 = max{2,3}
Out1 = max{3,5,6}
Out0 = max{2,3,5,6}
Out2 = (C+/B+A)(C+/B+/A)
Out1 = (C+/B+/A)(/C+B+/A)(/C+/B+A)
Out0 = (C+/B+A)(C+/B+/A)(/C+B+/A)(/C+/B+A)
C B A
+V
Unidade 4
Lógica seqüencial
Parte 01 – Introdução
Um historiador experiente, durante suas análises a respeito de algum fato de natureza his-
tórica, sabe que, a fim de entender corretamente os acontecimentos, precisa, não somente, estudar
os fatos contemporâneos ao período de cobertura de sua análise, mas, também, os fatos que ante-
cederam tal acontecimento. O desfecho dos fatos históricos depende não apenas dos fatores pre-
sentes em tais acontecimentos, mas, também, dos fatos anteriores.
A programação de robôs e as linguagens CNC – Comando Numérico Computacional – pos-
suem instruções que podem ser absolutas ou relativas. As instruções absolutas são aquelas que
determinam o resultado independentemente da situação atual. Por exemplo, o comando pode levar
algum atuador para a posição “x,y,z = (3;5;2) através do mnemônico GOTO. Outro exemplo, seria o
comando que levaria um forno a uma temperatura específica. As instruções relativas são aquelas
que usam, como ponto de partida, a situação presente. Por exemplo, o comando pode levar o atu-
ador a avançar (3;5;2) nos três eixos cartesianos, respectivamente. A posição final somente pode
ser determinada com base na informação a respeito da posição inicial. Um outro exemplo seria o
comando que levaria um forno a subir sua temperatura em 5 graus celsius. A temperatura final
somente pode ser determinada se o valor da temperatura inicial é conhecido.
O estudo dos circuitos digitais pode ser dividido em dois grandes grupos:
Lógica combinacional
Lógica seqüencial
combinacional
sequencial
00
01
10
11
Estados
Tipo
estáveis
Astável 0
Monoestável 1
Biestável 2
Triestável 3
Poliestável n
Tabela 1 – Tipos de circuitos lógicos sequenciais
input input
output output
Fazendo uso da propriedade algébrica do “elemento nulo”, é possível afirmar que, na reali-
mentação unitária, o valor da variável de saída é dada por este elemento, um valor constante que
não depende do valor da variável input. Este circuito não possui utilidade prática. Um circuito mo-
noestável pode oferecer o elemento neutro ou o elemento nulo. No caso da figura 2, o circuito
oferece o elemento nulo.
input input
output output
Elemento
Situação
no input
Nulo Estável
Neutro Astável
Tabela 2 – Comportamento do circuito 2
Alguns modelos de portas lógicas, como, por exemplo, o 74LS132 e o 4093, possuem o efeito
de histerese. A histerese é o resultado de uma realimentação positiva que resulta em um efeito de
“filtro passa-baixas”. O circuito eletrônico gerador desta histerese é chamado de “disparador Sch-
mitt”. Em outras palavras, esta histerese reduz a frequência da oscilação no circuito acima, tor-
nando-a menos sensível a efeitos térmicos.
Na figura 6, é apresentada uma tentativa de realimentação com porta lógica. Esta tentativa
não funciona porque, na primeira vez em que a saída obtém o elemento nulo, nunca mais ela recebe
o elemento neutro.
input input
output output
control control
input input
output output
control control
Elemento Elemento
Situação
no control no input
Nulo X YES
Neutro Nulo Monoestável
Neutro Neutro Astável
Tabela 3 – Comportamento do circuito 5
input input
output output
control control
Se o input recebe o elemento nulo e o control recebe o elemento neutro, então a porta de
cima leva a saída ao elemento neutro. A porta de baixo está com as suas duas entradas com o ele-
mento neutro, fornecendo o elemento nulo à porta de cima. A porta de cima está com as duas
entradas com o elemento nulo.
Se o input recebe o elemento neutro e o control recebe o elemento nulo, então a porta de
baixo leva a realimentação ao elemento neutro. A porta de cima está com as suas duas entradas
com o elemento neutro, fornecendo o elemento nulo à saída. A porta de baixo está com as duas
entradas com o elemento nulo.
0 1 1 0
0 1
1 0
Figura 7 – Comportamento do circuito NAND
1 0 0 1
1 0
0 1
Figura 8 – Comportamento do circuito NOR
1 0 1 1
1 0
1 1
Figura 9 – Comportamento do circuito NAND
0 1 0 0
0 1
0 0
Figura 10 – Comportamento do circuito NOR
in 1 in 1
out out
in 2 in 2
A palavra “reset”, em inglês, significa “voltar ao estado original”. O estado original de um bit
em um circuito lógico se refere ao seu valor na ocasião da energização do circuito, considerando
que este bit não possua uma memória inicial. Este valor booleano se traduz como sendo um nível
de tensão elétrica. Nas tecnologias TTL, ECL e CMOS, o valor lógico “zero” representa a tensão elé-
trica de zero volts. Os engenheiros eletricistas poderiam ter escolhido, como valor lógico inicial para
a saída dos flip flops, o valor “zero” ou o valor “um”. A decisão pelo valor zero está amparada na
vantagem de que, considerando que estes circuitos, geralmente, são construídos com a topologia
“terra-comum”, então os bits de saída em nível baixo implicam em uma corrente elétrica nula, um
consumo de energia elétrica também nulo.
O flip flops RS possui dois bits de entrada de dados: R e S, com as funções de executar os
comandos “reset” e “set”, respectivamente. O bit de saída do flip flops recebe o nome arbitrário de
“Q”.
Set: Q=1.
Reset: Q=0.
Além das ações “set” e “reset”, também é definida uma pseudo-ação, chamada de “hold”.
Este nome é usado para especificar o comando no qual o flip flops não sofre a ação dos comandos
“set” e “reset”. Este comando possui a propriedade de preservar o valor anterior na saída Q. O valor
anterior de Q pode ser chamado de Q-, Q0 ou Qantes.
Hold: Q=Q-
Set: Q=1.
Reset: Q=0.
A opção “hold” pode ser entendida como um não-comando, “não fazer nada”, manter tudo
como está. Isso faz sentido porque, como existem apenas dois estados estáveis, então somente
podem existir dois comandos; cada comando leva o circuito para um estado estável. Considerando
que o bit Q não pode receber os valores “zero” e “um” ao mesmo tempo, então não é permitido
aplicar os comandos “set” e “reset” ao mesmo tempo. A combinação das variáveis de entrada que
resulta na aplicação dos comandos “set” e “reset” ao mesmo tempo é chamada de “forbidden”.
O bit Q também é chamado de “variável de estado finito”. Quando o circuito possui várias
flip flops, então a lista dos bits “Q” compõe as “variáveis de estado finito”. A ordenação dos bits de
estado formam a “palavra de estado”.
Os bits de estado são usados para acionar circuitos combinacionais ou os próprios flip flops
do circito. Não raro, alguns desses bits são usados em sua forma complementar, “/Q”. Considerando
que a arquitetura interna dos biestáveis apresenta um nó topológico onde o valor lógico é dado por
/Q, então este nó compõe a segunda saída do flip flop.
Elemento Elemento
Porta
neutro nulo
NOR 0 1
NAND 1 0
Tabela 1 – Elementos das portas lógicas
Considerando que o elemento nulo domina o elemento neutro e considerando que é permi-
tido não acionar os comandos “set” e “reset” mas não é permitido acioná-los ao mesmo tempo,
podemos concluir que tais comandos são acionados por meio do elemento nulo. As figuras 3 e 4
mostram que a função hold (elemento neutro) implica em duas possibilidades de valores para as
saídas, mostrando que esta função não é suficiente para determinar o valor das saídas. É preciso,
também, saber qual era o estado anterior das saídas.
Porta Ativação
NOR Nível alto
NAND Nível baixo
Tabela 2 – Ativação das entradas dos flip flops
1 0 0 1
RESET
Q Q
1 0
0 /Q 1 /Q
SET
Figura 1 – Comandos do flip flop RS NOR
0 1 1 0
/SET
Q Q
0 1
1 /Q 0 /Q
/RESET
Figura 2 – Comandos do flip flop RS NAND
0 0 0 1
RESET RESET
Q Q
1 0
0 /Q 0 /Q
SET SET
Figura 3 – Hold em FF flip flop NOR
1 1 1 0
/SET /SET
Q Q
0 1
1 /Q 1 /Q
/RESET /RESET
Figura 4 – Hold em flip flop RS NAND
A figura 5 mostra que a opção forbidden (elemento nulo) implica em fazer Q=/Q, uma incon-
sistência tautológica (reductio ad absurdum). Este comando não pode ser executado.
1 0 0 1
RESET /SET
Q Q
0 1
1 /Q 0 /Q
SET /RESET
Figura 5 – Forbidden em flip flop RS NAND
O flip flop RS possui ampla aplicação em situações onde o flip precisa ser efetuado através
de dois eventos mutuamente independentes. O flip flop RS é indicado quando estes dois eventos
atuam na forma de um pulso estreito. Por “pulso estreito”, entende-se como um pulso cuja largura
temporal é muito inferior ao tempo de intervalo médio entre dois pulsos consecutivos. Por serem
pulsos estreitos, a probabilidade de ocorrência dos dois pulsos ao mesmo tempo é muito baixa. Há
aplicações onde o sistema impede que os dois pulsos ocorram ao mesmo tempo.
5V
RESET 5V
/SET
Q
Q
5V
SET /Q 5V
/RESET /Q
RESET
SET
/Q
/SET
/RESET
/Q
1MHz
1MHz
Comando Efeito
Hold Q=Q-
Set Q=1
Reset Q=0
Tabela 1 – Os comandos válidos do FF RS
O comando “hold” fornece, como saída, uma variável; isto significa que a determinação do
resultado deste comando implica no conhecimento do valor desta variável, e esta variável consiste
do valor anterior da própria variável cujo valor atual se deseja calcular. A isto é dado o nome de
“efeito memória”, pois o resultado da aplicação da ação não depende, apenas, da ação, mas, tam-
bém, do valor da variável de saída no instante anterior. O comando “hold” pode ser entendido como
um “não comando”, ou seja, “não fazer nada”.
Os comandos “set” e “reset” possuem, como saída, uma constante; isto significa que a de-
terminação do resultado destes comandos não implica no conhecimento do valor da variável no
instante anterior; não existe efeito memória. O comando “set” faz Q=1 se Q-=0 e se Q-=1; o comando
“reset” faz Q=0 se Q-=0 e se Q-=1.
Por causa do efeito memória, o comando “hold” destoa dos outros dois comandos. Podemos
remover este comando, deixando, apenas, os dois comandos que não possuem efeito memória.
Para isso, basta impor que as duas entradas sejam complementares, pois, se as duas entradas são
iguais, temos o comando “hold” e o comando “forbidden”.
Para fazer esta complementação, basta impor a condição de que as entradas “R” e “S” sejam
complementares. Neste caso, a determinação de uma variável implica na determinação da outra
variável. Há, então, apenas, uma única variável.
No caso do FF RS, como há duas entradas de dados, elas requerem o uso de nomes específi-
cos a fim de que haja distinção entre elas. Se, porém, há, apenas, uma única variável de entrada de
dado, ela não precisa desta distinção e pode ser chamada diretamente de “dado” ou “datum” em
inglês. Em razão disso, este circuito é chamado de “flip flop datum” ou flip flop datum.
Todo flip flop datum possui um FF RS interno. A fim de que as duas entradas do FF RS interno
sejam complementares, é preciso incorporar um inversor (porta NOT) entre estas duas entradas.
Para efeito de padronização, foi escolhido que a entrada de cima recebe o dado.
No capítulo anterior, foi observado que aqueles circuitos apresentam o efeito de inversão
decorrente do fato de que os conectivos lógicos usados apresentam uma inversão interna. A fim de
que o flip flop datum não apresente tal inversão, é preciso aplicar o inversor na entrada de cima.
A maioria dos circuitos digitais possuem uma entrada de controle chamada “chip select” ou
“chip enable”. Este comando permite habilitar ou desabilitar a(s) entrada(s) de dados. Igualmente,
o flip flop datum precisa deste comando.
0 1 1 0
D 0 D 1
Q Q
/Q /Q
1 0
Figura 1 – Flip flop datum NOR
0 1 1 0
D 0 D 1
Q Q
/Q /Q
1 0
Figura 2 – Flip flop datum NAND
Não é possível exercer o comando de habilitação/desabilitação por meio de uma porta lógica
AND/OR na entrada “D”, pois uma desabilitação implica na colocação do elemento nulo, e este é
um valor válido (não nulo) no circuito a jusante. Ao invés disso, é preciso colocar esta porta lógica
em cada uma das duas entradas do FF RS interno.
Embora a habilitação/desabilitação possa ser feita por meio de qualquer conectivo lógico –
AND/OR/NAND/NOR, motivos tecnológicos orientam o projeto no sentido do uso do mesmo tipo
de porta lógica usada no FF RS interno. Esta observação reduz o custo da produção do circuito inte-
grado e melhora a sua performance.
/R S
Q Q
/C C
/Q /Q
/S R
Figura 3 – Flip flop RS com habilitação
D D
Q
/C C
/Q
Comparando o esquemático do flip flop datum sem controle e o esquemático do flip flop
datum com controle é possível observar que a posição da porta NOT é diferente. O motivo disso é
que no circuito sem controle existe uma inversão nas saídas, mas o circuito com controle não pro-
porciona esta inversão. Esta diferença existe em virtude do fato de que, no circuito sem controle,
existe, apenas, uma coluna de portas lógicas enquanto, no circuito com controle, existem duas co-
lunas. Considerando que cada porta lógica possui uma inversão interna, então uma quantidade ím-
par de colunas implica numa inversão resultante, enquanto uma quantidade par de colunas implica
na inexistência desta inversão.
Também é possível observar que os FF´s NAND com controle possuem uma entrada com
nome “C”, enquanto os FF´s NOR com controle possuem uma entrada com nome “/C”. O motivo
disso é o fato de que, na porta OR, o elemento neutro tem valor “zero”, o FF é habilitável em nível
baixo. Um FF NAND com controle é habilitável em nível alto.
que um potente exaustor retira o ar contaminado. Terminado o processo de troca do ar, a porta
interna é aberta e o homem tem acesso ao ambiente de trabalho.
Os flip flops apresentados nos capítulos anteriores possuem controle por nível. Um nível ló-
gico habilita a entrada de dado e um outro nível lógico desabilita. O propósito do uso da arquitetura
mestre-escravo em um flip flop é o de transformar o controle por nível em um controle por borda.
O nome “mestre-escravo” é usado para indicar que a arquitetura é composta por dois ele-
mentos idênticos colocados em série com um controle complementar. Há, então, duas possibilida-
des para a implantação destas estruturas quanto aos níveis de controle:
Etapa Ação
1 Gravação do mestre
2 Gravação do escravo
Tabela 3 – As duas etapas do processo de gravação do flip flop master slave
O sinal de controle do flip flop master slave pode ser aleatório ou periódico. Um sinal perió-
dico é aquele que se repete constantemente definindo um período. Um sinal aleatório é aquele que
não define um período. O sinal digital periódico é chamado de “onda quadrada”.
O dutty-cycle de uma onda quadrada determina o percentual de nível alto em comparação
com o período. Se o DC é de 50%, então o tempo alto é igual ao tempo alto. Um DC de 50% não é
obrigatório no sinal de controle dos circuitos digitais desde que o pulso para cima ou para baixo não
seja demasiadamente estreito.
Um controle aleatório é proveniente de um processo estocástico. Um exemplo deste tipo de
aplicação é o circuito que efetua o processamento dos dados provenientes do acionamento de uma
catraca de um ônibus, computando a quantidade de passageiros por dia. O tempo de intervalo entre
um acionamento e outro é imprevisível.
Quando o controle é feito por meio de uma onda quadrada, dizemos que este sinal de con-
trole é o “relógio” do circuito. Este sinal é chamado de “clock”. Este é o nome padrão usado para o
sinal de controle do flip flop master slave.
Toda porta lógica possui um atraso inerente, um tempo de resposta. As saídas não são atu-
alizadas no exato instante da aplicação dos valores nas entradas. Por esta razão, os flip flops também
apresentam atraso. Este atraso implica na determinação do período mínimo para o “clock”, ou, em
outras palavras, a frequência máxima.
No capítulo anterior, foi mostrado que o sinal de controle por nível permite a habilitação do
flip flop datum por meio do elemento neutro da porta lógica utilizada. Considerando que as saídas
Q e /Q do primeiro flip flop, o mestre, são mutuamente complementares, é possível, então, usar,
como escravo, ao invés de um flip flop datum (opção 1, figuras 1 e 2), um flip flop RS (opção 2, figuras
3 e 4). A segunda opção tem a vantagem de economizar uma porta NOT.
Também é possível juntar as duas opções formando uma terceira opção (figuras 5 e 6). Surge,
então, uma redundância. Essa redundância pode ser útil no aumento da performance do flip flops.
Teoricamente, as duas primeiras opções apresentam o mesmo tempo de resposta, porém, o uso de
ambas opções ao mesmo tempo garante que o caminho mais rápido prevalece.
master slave
D
Q
CLK
/Q
master slave
D
Q
CLK
/Q
master slave
D
Q
CLK
/Q
master slave
D
Q
CLK
/Q
master slave
D
Q
CLK
/Q
master slave
D
Q
CLK
/Q
A entrada “D” no flip flop master slave é considerada “síncrona”. Isso quer dizer que o efeito
de uma ação na entrada de dados somente provoca efeito nas saídas na ocasião da primeira ocor-
rência da borda de controle, que pode ser de subida, no caso da porta NOR, ou de descida, no caso
da porta NAND. Existem muitas situações onde é necessário o uso de uma entrada “assíncrona”.
Essa entrada não depende da ocorrência da primeira borda de controle; o resultado, nas saídas,
acontece assim que o estímulo é injetado na entrada assíncrona. O efeito assíncrono pode ser ob-
tido por meio da injeção do elemento nulo em todos os conectivos lógicos formadores dos flip flops
RS internos, sem considerar os conectivos responsáveis pelo controle.
+V
CLEAR +V NOT_PRESET
D
Q D
Q
NOT_C
NOT_Q C
NOT_Q
+V
+V
PRESET NOT_CLEAR
Figura 7 – Flip flop datum com preset e clear
Caso as entradas assíncronas não sejam usadas, elas precisam ser anuladas por meio da colocação
do valor oposto ao da ativação destas entradas.
+V
CL
D
Q
CLK
/Q
+V
PR
Figura 8 – Flip flop datum master slave NOR com preset e clear
+V
/PR
D
Q
CLK
/Q
+V
/CL
Figura 9 – Flip flop datum master slave NOR com preset e clear
No programa “CircuitMaker Student V6.2c”, são oferecidos dois modelos de flip flop datum:
Modelo Símbolo Encapsulamento Especificação
74LS74 D SRN DIP14 LS dual D-type flip flop
4013 D SR DIP14 CMOS dual D-type flip flop
Tabela 10 – Os dois tipos de flip flop datum master slave disponíveis no ambiente de simulação
74LS74 4013
S S
D Q D Q
_ _
CP Q CP Q
R R
Figura 10 – Os dois tipos de flip flop datum master slave disponíveis no ambiente de simulação
+V
+V
/PR PR
74LS74
4013
S S
D D Q Q D D Q
_ Q
_
CLK CP Q /Q CP Q /Q
CLK
R R
+V +V
CL
/CL
Figura 11 – Os dois modelos comerciais de flip flop datum disponíveis no ambiente de simulação
+V
74LS74
4013 S
S D D Q Q
D D Q Q _
_ CLK CP Q /Q
CLK CP Q /Q R
R +V
Antes Depois
Q=0 Q=1
Q=1 Q=0
Tabela 1 – O comportamento do toggle booleano
t
Q
t
Figura 1 – Divisão de frequência por borda de subida
t
Q
t
Figura 2 – Divisão de frequência por borda de descida
Como é possível observar nas figuras 1 e 2, a divisão de frequência por borda de subida
provoca uma defasagem de 180 no sinal de saída. Essa defasagem pode ser constatada por meio
do fato de que, no sinal de saída, se o período inicia em nível baixo, então, na entrada, o período
inicia em nível alto. Por outro lado, a divisão de frequência por borda de descida não provoca defa-
sagem no sinal de saída. Tanto o sinal de entrada como o de saída iniciam em nível baixo. Por esta
razão, a divisão de frequência por borda de descida é melhor do que a por borda de subida. Infeliz-
mente, os dois modelos disponíveis no simulador, 74LS74 e 4013, são ativos em borda de subida.
No flip flop datum, o valor presente da entrada “D” equivale ao valor futuro da saída “Q”. A
fim de que o flip flop datum exerça a função da alternância, é preciso que a entrada “D” receba o
inverso da saída “Q”; isso faz com que o valor futuro de “Q” seja o inverso do valor presente. A saída
“/Q” é realimentada na entrada “D”.
Prof. Marco Aurélio Seluque Fregonezi 277
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
+V
74LS74
S 4013
D Q Q S
_ D Q Q
CLK CP Q _
R CLK CP Q
+V R
+V
CL
CLK
+V
PR
+V
/PR
CLK
+V
/CL
+V
CL
CLK
+V
PR
Figura 6 – Toggle Datum NOR sem porta NOT nas entradas do master e do slave
+V
/PR
CLK
+V
/CL
Figura 7 – Toggle Datum NAND sem porta NOT nas entradas do master e do slave
Se um toggle datum efetua uma divisão de frequência por dois, então um duplo toggle da-
tum efetua uma divisão de frequência por quatro, e assim por diante.
Quando o flip flop é sensível à borda de descida do sinal de controle (toggle datum NAND),
então a saída “Q” do flip flop anterior (à esquerda) pode ser ligada diretamente à entrada de con-
trole do flip flop seguinte (à direita). Quando o flip flop é sensível à borda de subida do sinal de
controle (toggle datum NOR), então a saída “/Q” do flip flop anterior (à esquerda) pode ser ligada
diretamente à entrada de controle do flip flop seguinte (à direita), pois esta inversão transforma a
natural borda de descida decorrente do término do período de contagem de 1 bit em uma borda de
subida, correta para acionar o flip flop seguinte.
+V +V
74LS74 74LS74
4013 4013
S S
D Q D Q Q S S
_ _ D Q D Q Q
CLK CP Q CP Q _ _
R R CLK CP Q CP Q
+V +V R R
CLK
/Q
+V
PR
+V
/PR
Q Q
CLK
+V
/CL
t
Q
t
Figura 11 – Divisão de frequência por quatro por borda de subida
t
Q
t
Figura 12 – Divisão de frequência por quatro por borda de descida
Equilíbrio estável
Equilíbrio instável
Desequilíbrio estável
Desequilíbrio instável
Quando se fala em “estado estável”, se fala sobre “equilíbrio estável”. Um sistema se encon-
tra em equilíbrio estável quando ele tende a permanecer no equilíbrio na ausência de estímulos ou
quando sujeito a estímulos de pequena intensidade. Um estímulo de grande intensidade pode levar
o sistema a mudar para um outro estado estável.
Mais uma vez voltando ao exemplo do pesquisador da consulta pública, se a pesquisa for
feita a respeito do significado da palavra “infinito”, a maioria das pessoas dirá que esta palavra re-
mete a “algo que não tem fim”. No contexto da matemática ou da engenharia, porém, esta resposta
não pode ser aplicada haja vista que o conceito de “fim” remete a uma descontinuidade na função,
e tal descontinuidade impede que a análise matemática linear seja aplicada em tal situação.
Por “infinito”, entendemos como algo “incontável”. Por “incontável”, entendemos como
algo cujo valor é desconhecido. Tal desconhecimento pode ser devido ao enorme valor deste nú-
mero ou pode ser devido a incertezas no modelamento do sistema. Desta forma, se o projetista não
possui meios para determinar a quantidade de estados estáveis possíveis ao sistema, então dizemos
que a quantidade de estados não é finita, ou então infinita, ou, mais ainda, incontável, ainda que a
quantidade verdadeira caiba na ponta dos dedos da mão.
Todo sistema físico que possui, pelo menos, dois estados estáveis, possui, entre estes dois
estados estáveis, infinitos estados instáveis. Neste contexto, a palavra “infinito” assume o signifi-
cado popular de um número muito grande, cuja magnitude é inimaginável para o intelecto humano.
Esta é uma característica da análise analógica. Um bit binário em um circuito digital possui infinitos
valores de tensão elétrica durante o processo transitório de alternância de “zero para um” ou de
“um para zero”, da mesma forma que, no conjunto dos números reais, temos uma quantidade infi-
nita de números entre “zero” e “um”. Os estados instáveis não são considerados no projeto de má-
quinas de estados estáveis finitos (MEEF´s).
índice, começando pelo valor “zero”. As variáveis de estado são implementadas fisicamente por
meio dos flip-flops; um FF para cada variável de estado.
Variável Significado
De entrada Sensor
De saída Atuador
De estado Flip-flop
Tabela 1 – O significado dos três tipos de variáveis das MEEF´s
As variáveis de entrada precisam ser funções independentes. Nenhuma delas pode depen-
der de alguma variável de estado ou de saída.
A melhor explicação a respeito destes dois recursos é feita por meio de exemplos. A impor-
tância destes recursos está no fato de que eles transcendem o escopo da engenharia, podendo ser
aplicados em qualquer problema de natureza filosófica variável no tempo.
Antes Depois
Q=0 Q=1 0 1
Q=1 Q=0
Tabela 2 – Exemplo 1 Figura 1 – Exemplo 1
Antes Depois
Antes Depois Q1 Q0 Q1 Q0
0 1 0 0 0 1
1 2 0 1 1 0
2 3 1 0 1 1
3 0 1 1 0 0
Tabela 3 – Exemplo 2
3 1
2
Figura 2 – Exemplo 2
Antes Depois
Antes Depois Q2 Q1 Q0 Q2 Q1 Q0
0 1 0 0 0 0 0 1
1 2 0 0 1 0 1 0
2 3 0 1 0 0 1 1
3 4 0 1 1 1 0 0
4 5 1 0 0 1 0 1
5 6 1 0 1 1 1 0
6 7 1 1 0 1 1 1
7 0 1 1 1 0 0 0
Tabela 4 – Exemplo 3
0
7 1
6 2
5 3
4
Figura 3 – Exemplo 3
Antes Depois
Antes Depois Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
0 1 0 0 0 0 0 0 0 1
1 2 0 0 0 1 0 0 1 0
2 3 0 0 1 0 0 0 1 1
3 4 0 0 1 1 0 1 0 0
4 5 0 1 0 0 0 1 0 1
5 6 0 1 0 1 0 1 1 0
6 7 0 1 1 0 0 1 1 1
7 8 0 1 1 1 1 0 0 0
8 9 1 0 0 0 1 0 0 1
9 10 1 0 0 1 1 0 1 0
10 11 1 0 1 0 1 0 1 1
11 12 1 0 1 1 1 1 0 0
12 13 1 1 0 0 1 1 0 1
13 14 1 1 0 1 1 1 1 0
14 15 1 1 1 0 1 1 1 1
15 0 1 1 1 1 0 0 0 0
Tabela 5 – Exemplo 4
0
1
14 2
13 3
3
12 4
10 6
9 8
Figura 4 – Exemplo 4
0 1
9
2
8
3
7
6 4
5
Antes Depois
Antes Depois Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
0 1 0 0 0 0 0 0 0 1
1 2 0 0 0 1 0 0 1 0
2 3 0 0 1 0 0 0 1 1
3 4 0 0 1 1 0 1 0 0
4 5 0 1 0 0 0 1 0 1
5 6 0 1 0 1 0 1 1 0
6 7 0 1 1 0 0 1 1 1
7 8 0 1 1 1 1 0 0 0
8 9 1 0 0 0 1 0 0 1
9 0 1 0 0 1 0 0 0 0
Tabela 6 – Exemplo 5 sem os “estados fantasmas”
Antes Depois
Antes Depois Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
0 1 0 0 0 0 0 0 0 1
1 2 0 0 0 1 0 0 1 0
2 3 0 0 1 0 0 0 1 1
3 4 0 0 1 1 0 1 0 0
4 5 0 1 0 0 0 1 0 1
5 6 0 1 0 1 0 1 1 0
6 7 0 1 1 0 0 1 1 1
7 8 0 1 1 1 1 0 0 0
8 9 1 0 0 0 1 0 0 1
9 0 1 0 0 1 0 0 0 0
10 X 1 0 1 0 X X X X
11 X 1 0 1 1 X X X X
12 X 1 1 0 0 X X X X
13 X 1 1 0 1 X X X X
14 X 1 1 1 0 X X X X
15 X 1 1 1 1 X X X X
Tabela 7 – Exemplo 5 com os “estados fantasmas” indefinidos
0
1
14 2
13 3
3
12 4
10 6
9 8
0
1
14 2
13 3
3
12 4
10 6
9 8
As variáveis de estado devem ser analisadas como menos significativas. Isto facilita a análise
das tabelas-verdade. Se as variáveis de seleção
Embora as palavras “controle” e “seleção” impliquem, neste contexto, no mesmo tipo de
ação, elas carregam uma diferença semântica: Por “seleção”, referimo-nos à escolha entre dois tipos
de contagem diferentes e que possuem a mesma relevância. Por “controle”, referimo-nos a uma
ação que faz com que o circuito tome uma ação que não se enquadra no conceito de controle. Os
bits de seleção tem esse nome porque eles realizam a seleção do tipo de contagem a ser realizada.
Os bis de seleção são bastante usados em endereçamento de palavras ou em endereçamento de
memórias. Sendo assim, estes bits podem ser usados na seleção da contagem ou na seleção do
endereço.
A definição do significado das variáveis de controle/seleção é arbitrária e, por esse motivo,
é necessário o uso de uma legenda explicativa da forma como essas variáveis devem ser interpreta-
das a fim de que não haja erro de interpretação.
Mesmo com o uso de legendas, pode ser que haja situações onde ocorram múltiplas inter-
pretações, especialmente no que diz respeito aos estados “fantasmas”. Nestes casos, as tabelas-
verdade e/ou os diagramas podem esclarecer essas imprecisões cognitivas.
Uma dos melhores artifícios para a definição da máquina de estados estáveis finitos é o dia-
grama de estados estáveis finitos. Neste diagrama, cada estado estável é representado por um cír-
culo. Dentro deste círculo, é especificado o número do estado. Este número pode ser expresso na
forma decimal ou binária. As transições entre os estados estáveis são descritas por meio de setas. É
preciso habilidade para que o diagrama seja construído de maneira estética.
No diagrama, o valor das variáveis de controle/seleção precisa ser indicado junto com as
setas de transições. Se o circuito possui, apenas, uma variável de controle, então esta variável não
precisa ser especificada no diagrama.
A Ação
0 Q=Q-
1 Q=/Q-
Tabela 1 – Exemplo 1 – Definição das ações
Neste primeiro exemplo, o diagrama apresenta o nome da variável de controle. A fim de que
o desenho não se torne por demais poluído, o nome desta variável pode ser omitido. Nesta legenda,
a pausa é obtida com valor “zero”. Este é um controle por nível baixo. Se esta variável recebe o
nome da sua função, então ela será chamada de “/PAUSE”.
Antes Depois
A
A Antes Depois Q1 Q0 Q1 Q0
0 0 0 0 0 0 0 0
0 1 1 0 0 1 0 1
0 2 2 0 1 0 1 0
0 3 3 0 1 1 1 1
1 0 1 1 0 0 0 1
1 1 2 1 0 1 1 0
1 2 3 1 1 0 1 1
1 3 0 1 1 1 0 0
Tabela 3 – Exemplo 2
1 1
0 0
A=0: Pausa 3 1
A=1: Contagem
0 1
1 2
Figura 2 – Exemplo 2
Antes Depois
A
A Antes Depois Q2 Q1 Q0 Q2 Q1 Q0
0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 1 0 0 1
0 2 2 0 0 1 0 0 1 0
0 3 3 0 0 1 1 0 1 1
0 4 4 0 1 0 0 1 0 0
0 5 5 0 1 0 1 1 0 1
0 6 6 0 1 1 0 1 1 0
0 7 7 0 1 1 1 1 1 1
1 0 1 1 0 0 0 0 0 1
1 1 2 1 0 0 1 0 1 0
1 2 3 1 0 1 0 0 1 1
1 3 4 1 0 1 1 1 0 0
1 4 5 1 1 0 0 1 0 1
1 5 6 1 1 0 1 1 1 0
1 6 7 1 1 1 0 1 1 1
1 7 0 1 1 1 1 0 0 0
Tabela 4 – Exemplo 2
0 0
A=0: Pausa
0
A=1: Contagem 7 1 1
1
1 1
0 6 2 0
1 1
5 3
1 1
4
0 0
0
Figura 3 – Exemplo 3
A Ação
0 incremento
1 decremento
Tabela 5 – Exemplo 1 – Definição das ações
Antes Depois
A
A Antes Depois Q1 Q0 Q1 Q0
0 0 1 0 0 0 0 1
0 1 2 0 0 1 1 0
0 2 3 0 1 0 1 1
0 3 0 0 1 1 0 0
1 0 3 1 0 0 1 1
1 1 0 1 0 1 0 0
1 2 1 1 1 0 0 1
1 3 2 1 1 1 1 0
Tabela 6 – Exemplo 4
0 0
0
A=0: Normal 1 1
A=1: Reverso 3 1
1 1
0 2 0
Figura 4 – Exemplo 4
Antes Depois
A
A Antes Depois Q2 Q1 Q0 Q2 Q1 Q0
0 0 1 0 0 0 0 0 0 1
0 1 2 0 0 0 1 0 1 0
0 2 3 0 0 1 0 0 1 1
0 3 4 0 0 1 1 1 0 0
0 4 5 0 1 0 0 1 0 1
0 5 6 0 1 0 1 1 1 0
0 6 7 0 1 1 0 1 1 1
0 7 0 0 1 1 1 0 0 0
1 0 7 1 0 0 0 1 1 1
1 1 0 1 0 0 1 0 0 0
1 2 1 1 0 1 0 0 0 1
1 3 2 1 0 1 1 0 1 0
1 4 3 1 1 0 0 0 1 1
1 5 4 1 1 0 1 1 0 0
1 6 5 1 1 1 0 1 0 1
1 7 6 1 1 1 1 1 1 0
Tabela 7 – Exemplo 5
0 0
0
7 1
0 0
1 1
A=0: Normal 6 1 1
2
A=1: Reverso 1 1
1 1
0 0
5 3
4
0 0
Figura 5 – Exemplo 5
Antes Depois
A
A Antes Depois Q1 Q0 Q1 Q0
0 0 1 0 0 0 0 1
0 1 2 0 0 1 1 0
0 2 3 0 1 0 1 1
0 3 0 0 1 1 0 0
1 0 0 1 0 0 0 0
1 1 0 1 0 1 0 0
1 2 0 1 1 0 0 0
1 3 0 1 1 1 0 0
Tabela 8 – Exemplo 6
A Ação
0 incremento
1 zero
Tabela 9 – Exemplo 6 – Definição das ações
X 0
0
A=0: Normal 1
3 1
A=1: Restart 1
0 2 0
Figura 6 – Exemplo 6
Antes Depois
A
A Antes Depois Q2 Q1 Q0 Q2 Q1 Q0
0 0 1 0 0 0 0 0 0 1
0 1 2 0 0 0 1 0 1 0
0 2 3 0 0 1 0 0 1 1
0 3 4 0 0 1 1 1 0 0
0 4 5 0 1 0 0 1 0 1
0 5 6 0 1 0 1 1 1 0
0 6 7 0 1 1 0 1 1 1
0 7 0 0 1 1 1 0 0 0
1 0 0 1 0 0 0 0 0 0
1 1 0 1 0 0 1 0 0 0
1 2 0 1 0 1 0 0 0 0
1 3 0 1 0 1 1 0 0 0
1 4 0 1 1 0 0 0 0 0
1 5 0 1 1 0 1 0 0 0
1 6 0 1 1 1 0 0 0 0
1 7 0 1 1 1 1 0 0 0
Tabela 8 – Exemplo 7
1
X 0
0
7 1 1
0 0
1
6 1 2
1
0 1 1 0
5 3
4
0 0
Figura 7 – Exemplo 7
Se o contador possui duas opções de contagem, então, no diagrama, cada estado precisa dar
origem a duas setas. Porém, quando o estado leva ao mesmo desfecho para os dois valores de uma
mesma variável de controle/seleção, então esta variável é irrelevante para esta transição de esta-
dos. Neste caso, as duas setas podem ser fundidas em uma, e o valor da variável é marcado como
“X”.
Esta irrelevância pode ser observada no exemplo 6, no estado “3”. A contagem natural pro-
move a transição do estado “3” para o estado “0”. O processo de reiniciação promove esta mesma
transição. A transição é a mesma qualquer que seja o valor da variável “A”. Esta irrelevância pode
ser observada no exemplo 6, no estado “7”.
Antes Depois
A
A Antes Depois Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
0 0 1 0 0 0 0 0 0 0 0 1
0 1 2 0 0 0 0 1 0 0 1 0
0 2 3 0 0 0 1 0 0 0 1 1
0 3 4 0 0 0 1 1 0 1 0 0
0 4 5 0 0 1 0 0 0 1 0 1
0 5 6 0 0 1 0 1 0 1 1 0
0 6 7 0 0 1 1 0 0 1 1 1
0 7 8 0 0 1 1 1 1 0 0 0
0 8 9 0 1 0 0 0 1 0 0 1
0 9 0 0 1 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0
1 1 0 1 0 0 0 1 0 0 0 0
1 2 0 1 0 0 1 0 0 0 0 0
1 3 0 1 0 0 1 1 0 0 0 0
1 4 0 1 0 1 0 0 0 0 0 0
1 5 0 1 0 1 0 1 0 0 0 0
1 6 0 1 0 1 1 0 0 0 0 0
1 7 0 1 0 1 1 1 0 0 0 0
1 8 0 1 1 0 0 0 0 0 0 0
1 9 0 1 1 0 0 1 0 0 0 0
Tabela 9 – Exemplo 7 – Tabela sem os estados “fantasmas”
1
0
X
0 1
0 9 0
1
2
8 1 1 0
1 3
0
7 1
1 0
1 1
6 4
0 5
0
0
Figura 7 – Exemplo 7
B A Ação
0 X Pausa
1 0 Crescente
1 1 Decrescente
Tabela 1 – Exemplo 1
Antes Depois
B A
B A Antes Depois Q1 Q0 Q1 Q0
0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 0 1
0 0 2 2 0 0 1 0 1 0
0 0 3 3 0 0 1 1 1 1
0 1 0 0 0 1 0 0 0 0
0 1 1 1 0 1 0 1 0 1
0 1 2 2 0 1 1 0 1 0
0 1 3 3 0 1 1 1 1 1
1 0 0 1 1 0 0 0 0 1
1 0 1 2 1 0 0 1 1 0
1 0 2 3 1 0 1 0 1 1
1 0 3 0 1 0 1 1 0 0
1 1 0 3 1 1 0 0 1 1
1 1 1 0 1 1 0 1 0 0
1 1 2 1 1 1 1 0 0 1
1 1 3 2 1 1 1 1 1 0
Tabela 2 – Exemplo 1
0X
10 0 10
11 0X
11
3 1
11 11
0X 10
10 2
0X
Figura 1 – Exemplo 1
B A Ação
0 X Pausa
1 0 Contagem
1 1 Reiniciação
Tabela 3 – Exemplo 3
Antes Depois
B A
B A Antes Depois Q1 Q0 Q1 Q0
0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 0 1
0 0 2 2 0 0 1 0 1 0
0 0 3 3 0 0 1 1 1 1
0 1 0 0 0 1 0 0 0 0
0 1 1 1 0 1 0 1 0 1
0 1 2 2 0 1 1 0 1 0
0 1 3 3 0 1 1 1 1 1
1 0 0 1 1 0 0 0 0 1
1 0 1 2 1 0 0 1 1 0
1 0 2 3 1 0 1 0 1 1
1 0 3 0 1 0 1 1 0 0
1 1 0 0 1 1 0 0 0 0
1 1 1 0 1 1 0 1 0 0
1 1 2 0 1 1 1 0 0 0
1 1 3 0 1 1 1 1 0 0
Tabela 4 – Exemplo 2
0X
11
1X 10
0
0X
11
3 11
1
0X
10 2 10
0X
Figura 2 – Exemplo 2
B A Ação
0 X Reiniciação
1 0 Crescente
1 1 Decrescente
Tabela 5 – Exemplo 3
Antes Depois
B A
B A Antes Depois Q1 Q0 Q1 Q0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 2 0 0 0 0 0 0 0
0 0 3 0 0 0 0 0 0 0
0 1 0 0 0 1 0 0 0 0
0 1 1 0 0 1 0 0 0 0
0 1 2 0 0 1 0 0 0 0
0 1 3 0 0 1 0 0 0 0
1 0 0 1 1 0 0 0 0 1
1 0 1 2 1 0 0 1 1 0
1 0 2 3 1 0 1 0 1 1
1 0 3 0 1 0 1 1 0 0
1 1 0 3 1 1 0 0 1 1
1 1 1 0 1 1 0 1 0 0
1 1 2 1 1 1 1 0 0 1
1 1 3 2 1 1 1 1 1 0
Tabela 6 – Exemplo 3
0X
0X
10 0 10
0X
11 0X
11
3 11 1
11
10 10
2
Figura 3 – Exemplo 3
Q C Q C Q C Q
C
Divisor Divisor Divisor Divisor
De De De De /Q
/Q /Q /Q
freqüência freqüência freqüência freqüência
Figura 2 – Contador assíncrono de 4 bits com borda de descida
+V
Q0 Q1
CL
CLK
+V
PR
Q0 +V Q1
/PR
CLK
+V
/CL
+V
S S
D Q D Q
_ _
CLK CP Q CP Q 4321
R R
+V
S S S
D Q D Q D Q
_ _ _ 4321
CLK CP Q CP Q CP Q
R R R
+V
S S S S
D Q D Q D Q D Q
_ _ _ _ 4321
CLK CP Q CP Q CP Q CP Q
R R R R
FF Divisão de frequência
0 /2
1 /4
2 /8
3 /16
Tabela 1 – Divisão cumulativa de freqüência
É possível prever os efeitos colaterais da falta de sincronia. Em uma contagem de dois bits,
o bit menos significativo (LSb) está adiantado em relação ao bit mais significativo (MSb). As transi-
ções de estado são: 00b 01b 10b 11b 00b ...
É preciso analisar, individualmente, as quatro transições.
00b 01b: Como o MSb não sofre alteração, então a assimetria não é problema.
01b 10b: Como os dois bits sofrem alteração, então a assimetria traz proble-
mas.
10b 11b: Como o MSb não sofre alteração, então a assimetria não é problema.
11b 00b: Como os dois bits sofrem alteração, então a assimetria traz proble-
mas.
Nas transições 01b 10b e 11b 00b, sabendo que o LSb muda antes do MSb, então a
transição de estados estáveis possui um estado instável intermediário:
Q3 Q2 Q1 Q0 D3 D2 D1 D0
0 0 0 0 0 0 0 1
0 0 0 1 0 0 1 0
0 0 1 0 0 0 1 1
0 0 1 1 0 1 0 0
0 1 0 0 0 1 0 1
0 1 0 1 0 1 1 0
0 1 1 0 0 1 1 1
0 1 1 1 1 0 0 0
1 0 0 0 1 0 0 1
1 0 0 1 1 0 1 0
1 0 1 0 1 0 1 1
1 0 1 1 1 1 0 0
1 1 0 0 1 1 0 1
1 1 0 1 1 1 1 0
1 1 1 0 1 1 1 1
1 1 1 1 0 0 0 0
Tabela 1 – Funcionamento do contador de 4 bits
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q 4321
R R R R
CLK
Figura 1 – Esboço do contador síncrono D de 4 bits
Função D0:
Em toda contagem completa crescente ou decrescente, o LSb age como um toggle e, por
isso, a sua configuração é exatamente a mesma da do LSb de um contador assíncrono.
+V
Q0 D0
0 1
S
1 0 D Q
_
Tabela 2 – Funcionamento do contador de 1 bit CP Q 4321
R
D0 = /Q0
CLK
Figura 2 – Circuito para o contador de 1 bit
Função D1:
Primeiramente, é preciso construir a tabela-verdade, para, depois, determinar as funções.
Antes Depois Q1 Q0 D1 D0
0 1 0 0 0 1 +V
1 2 0 1 1 0
S S
2 3 1 0 1 1 D Q D Q
_ _
3 0 1 1 0 0 CP Q CP Q 4321
R R
Tabela 2 – Funcionamento do contador de 2 bits
D0 = /Q0 CLK
D1 = Q1Q0 Figura 3 – Os dois bits menos significativos
O uso da porta XOR por parte do bit mais significativo de entrada (D1, neste caso), pode ser
facilmente identificado por meio desta análise: se, quando o bit de estado mais significativo (Q1,
neste caso) vale “1”, então a função D assume o comportamento inverso de quando Q vale “0”,
então esta função é representada pelo conectivo lógico XOR.
Q1 D1
0 0
0 1
1 1
1 0
Tabela 3 – Evidenciação da operação XOR na função D1
Função D2:
Antes Depois Q2 Q1 Q0 D2 D1 D0
0 1 0 0 0 0 0 1
1 2 0 0 1 0 1 0
2 3 0 1 0 0 1 1
3 4 0 1 1 1 0 0
4 5 1 0 0 1 0 1
5 6 1 0 1 1 1 0
6 7 1 1 0 1 1 1
7 0 1 1 1 0 0 0
Tabela 4 – Funcionamento do contador de 3 bits
304 Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
10
2 00 01 11 10
0 0 0 1 0
1 1 1 0 1
Tabela 5 – A terceira função
D1 = (Q2/Q1/Q0)+(Q2/Q1Q0)+(/Q2Q1Q0)+(Q2Q1/Q0)
Q2 D2
0 0
0 0 Q2 D2
0 0 0 0
0 1 0 0
1 1 0 0
1 1 0 1
1 1 Tabela 6 – A primeira metade da tabela
1 0
Tabela 5 – Evidenciação da operação XOR na função D2
Observando a primeira metade da tabela-verdade de D2, podemos enxergar que esta função
parcial pode ser escrita como:
D2´ = Q1Q0
Observando a tabela-verdade de D2 completa, podemos juntar a função D2´ com a variável
de entrada Q2:
D2 = Q2D2´
D2 = Q2(Q1Q0)
+V
S S S
D Q D Q D Q
_ _ _
CP Q CP Q CP Q 4321
R R R
CLK
Figura 4 – Os três bits menos significativos
Função D3:
Ant. Dep. Q3 Q2 Q1 Q0 D3 D2 D1 D0 Q3 D3 Q2 Q1 Q0 D3´
0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
1 2 0 0 0 1 0 0 1 0 0 0 0 0 1 0
2 3 0 0 1 0 0 0 1 1 0 0 0 1 0 0
3 4 0 0 1 1 0 1 0 0 0 0 0 1 1 0
4 5 0 1 0 0 0 1 0 1 0 0 1 0 0 0
5 6 0 1 0 1 0 1 1 0 0 0 1 0 1 0
6 7 0 1 1 0 0 1 1 1 0 0 1 1 0 0
7 8 0 1 1 1 1 0 0 0 0 1 1 1 1 1
8 9 1 0 0 0 1 0 0 1 1 1
9 10 1 0 0 1 1 0 1 0 1 1
10 11 1 0 1 0 1 0 1 1 1 1
11 12 1 0 1 1 1 1 0 0 1 1
12 13 1 1 0 0 1 1 0 1 1 1
13 14 1 1 0 1 1 1 1 0 1 1
14 15 1 1 1 0 1 1 1 1 1 1
15 0 1 1 1 1 0 0 0 0 1 0
Tabela 7 – Funcionamento do contador de 4 bits
D3´ = Q2Q1Q0
D3 = Q3D3´
D3 = Q3(Q2Q1Q0)
D2´ = Q1Q0
D3 = Q3(Q2D2´)
+
S S S S
D Q D Q D Q D Q
- _ _ _ _
CP Q CP Q CP Q CP Q 4321
R R R R
CLK
Figura 5 – Contador D síncrono de quatro bits
O desenvolvimento das funções D3, D2, D1 e D0 mostra que existe um padrão nestas fun-
ções. Cada bit do contador é formado por um FF, uma porta XOR e uma porta AND de duas entradas.
A entrada “D” do FF recebe a saída da porta XOR. Os dois conectivos lógicos recebem, como entrada,
a saída “Q” do FF deste bit e a saída da porta AND à direita.
Com base nestas observações, é possível projetar estes contadores de maneira sistemática.
Por exemplo, o contador de cinco bits é construído por meio da inclusão de um FF, uma porta AND
e uma porta XOR ao contador de quatro bits.
+V
S S S S S
D Q D Q D Q D Q D Q
_ _ _ _ _ 4321
CP Q CP Q CP Q CP Q CP Q 4321
R R R R R
CLK
Figura 6 – Contador D síncrono de cinco bits
É possível criar um módulo, contendo estes três elementos, aplicáveis para cada bit do con-
tador e replicar este módulo para todos os bits do contador. Esta técnica produz um contador mo-
dular. A saída da porta AND do MSb tem a função de “threshold”. Este sinal de saída serve como
gatilho para um outro circuito digital ou como “clock” para um outro contador mais significativo. As
entradas superiores dos dois conectivos lógicos do LSb tem a função de “enable” ativo em nível alto.
Esta entrada pode, também, receber o sinal “threshold” de um outro contador menos significativo.
threshold
enable
+V output
th 1-bit en
S D
D Q
CLK _ CLK COUNT out
CP Q
R
4 3 21
th en
4-bit
COUNT out
CLK
threshold
enable
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q 4321
R R R R
CLK
4 3 21 4 3 21
en
TH 4-bit 4-bit
COUNT COUNT
CLK 1 CLK 0
CLK
+V +V
S S S S S S S S
D Q D Q D Q D Q D Q D Q D Q D Q
_ _ _ _ _ _ _ _
CP Q CP Q CP Q CP Q 4321 CP Q CP Q CP Q CP Q 4321
R R R R R R R R
CLK
A definição do contador de sequência não linear é feita por meio da exclusão do conceito de
contador interrompido. A definição do contador interrompido é aquele que é construído a partir de
um contador completo e da subtração de um ou mais estados.
O contador incompleto é aquele que omite alguns dos últimos estados de um contador com-
pleto. O circuito de desvio realiza uma reiniciação da contagem. Por reiniciar a contagem, o estado
apontado pelo desvio é o “zero”, todos os bits de estado valem “zero”; todos os flip flops sofrem o
comando “clear”. As entradas “preset” não são usadas.
O contador com pulo é aquele que omite alguns dos estados intermediários de um contador
completo. Por não reiniciar a contagem, o estado apontado pelo desvio não é o “zero”, nem todos
os bits de estado valem “zero”; alguns flip flops sofrem o comando “clear”, outros flip flops sofrem
o comando “preset”. O projeto de contadores com pulo é mais trabalhoso do que o projeto de con-
tadores incompletos, motivo porque os pulos serão abordados no capítulo seguinte.
Quando as entradas assíncronas são ativas em nível alto (PR e CL), então o circuito de desvio
consiste da materialização de um mintermo. Uma porta AND é usada, e a quantidade de entradas
desta porta coincide com a quantidade de bits de contagem.
Quando as entradas assíncronas são ativas em nível baixo (/PR e /CL), então o circuito de
desvio consiste da materialização de um maxtermo. Uma porta OR é usada, e a quantidade de en-
tradas desta porta coincide com a quantidade de bits de contagem.
A minimização da função de desvio pode reduzir a quantidade de entradas da porta lógica.
A efetivação do desvio é feita por meio do acionamento do circuito de desvio. Esta ativação
precisa ser feita no primeiro estado “fantasma”. Este estado pode ser chamado de “estado de des-
vio” ou “estado gatilho”. Este não é um estado estável, pois a sua permanência dura, apenas, alguns
nano segundos, que é o tempo de propagação para que as portas lógicas sejam acionadas. Apesar
disso, o estado gatilho pode ser incluído no diagrama de estados estáveis finitos. Apesar do erro de
natureza conceitual, esta inclusão permite que o estudante entenda como o desvio acontece.
out0
4-bit out1
CLK COUNT out2
out3
restart
identificador
de 1010b
Figura 1 – Interrupção BCD em um contador hexadecimal
S S S S
D Q D Q D Q D Q
_ _ _ _ 4321
CLK CP Q CP Q CP Q CP Q
R R R R
Figura 2 – Exemplo 1
S S S S
D Q D Q D Q D Q
_ _ _ _ 4321
CLK CP Q CP Q CP Q CP Q
R R R R
Figura 3 – Exemplo 2
Considerando que o gatilho é acionado em um único estado, o estado gatilho, então este
gatilho não é acionado nos demais estados “fantasmas”. Isso leva à conclusão que, para esses esta-
dos “fantasmas”, a contagem seguiria normalmente, de maneira crescente.
F 0
1
E
2
D
3
C
4
B
5
A
9 6
8 7
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 0 0 00 1 1 1 1
01 0 0 0 0 01 1 1 1 1
11 X X X X 11 X X X X
10 0 0 X 1 10 1 1 X 0
Tabela 1 – Funções CLEAR e /CLEAR
Clear = Q3Q1
/Clear = /Q3+/Q1
S S S S
D Q D Q D Q D Q
_ _ _ _
CLK CP Q CP Q CP Q CP Q 4321
R R R R
+V
S S S S
D Q D Q D Q D Q
_ _ _ _ 4321
CLK CP Q CP Q CP Q CP Q
R R R R
Considerando que o gatilho é acionado em um único estado, o estado gatilho, então este
gatilho não é acionado nos demais estados “fantasmas”. Isso leva à conclusão que, para esses esta-
dos “fantasmas”, a contagem seguiria normalmente, de maneira crescente.
F 0
1
E
2
D
3
C
4
B
5
A
9 6
8 7
Figura 7 – O diagrama do circuito minimizado
Exemplo 1: Contador de três bits que pula o estado “5” em nível alto.
Neste exemplo, há, somente, um estado pulado. Este é o “estado fantasma” que aciona o
circuito de desvio. O salto é endereçado para o estado “seis”. O salto consiste da transição do estado
“quatro” para o estado “seis”.
A transição de 100b para 110b implica na alteração de um único bit de estado, Q1. Por esse
motivo, a assincronia não possui nenhum efeito; o salto age de maneira síncrona.
S S S
D Q D Q D Q
_ _ _
CLK CP Q CP Q CP Q 4321
R R R
Figura 1 – Exemplo 1
Exemplo 2: Contador de três bits que pula o estado “3” em nível alto.
O salto consiste da transição do estado “dois” para o estado “quatro”. A transição de 010b
para 100b implica na alteração de um dois bits de estado, Q2 e Q1. Por esse motivo, a assincronia
se manifesta.
S S S
D Q D Q D Q
_ _ _ 4321
CLK CP Q CP Q CP Q
R R R
Figura 2 – Exemplo 2
Exemplo 3: Contador que pula os estados “3”, “4” e “5” em nível alto.
O salto consiste da transição do estado “dois” para o estado “seis”. O gatilho para o disparo
do salto é o mesmo do exemplo 1. A ação do circuito de disparo é a mesma do exemplo 2.
S S S
D Q D Q D Q
_ _ _
CLK CP Q CP Q CP Q 4321
R R R
Figura 3 – Exemplo 3
10
200 01 11 10
0 0 0 1 0
1 X X 0 0
Tabela 1 – Função CLEAR do exemplo 3
Dos três estados “fantasmas”, um é usado como gatilho para o pulo. Os outros dois estados
são irrelevantes e podem ser usados na minimização do circuito. Neste exemplo, nenhum grupa-
mento pôde ser obtido, não foi possível reduzir o tamanho do circuito.
316 Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
0
7 1
6 2
5 3
4
Figura 4 – Exemplo 3
Exemplo 4: Contador de três bits que pula os estados “1”, “2” e “3”.
0
7 1
6 2
5 3
4
Figura 5 – Exemplo 4
S S S
D Q D Q D Q
_ _ _ 4321
CLK CP Q CP Q CP Q
R R R
10
00 01 11 10
2
0 0 1 X X
1 0 0 0 0
Tabela 2 – Função CLEAR do exemplo 4
Clear´ = /Q2Q0
Apesar da possibilidade de minimização, esta minimização não provoca alteração no com-
portamento dos estados “fantasmas”, pois o estado alterado na formação do IPE, o estado 3, é,
naturalmente, o estado anterior ao estado de destino, o estado 4.
S S S
D Q D Q D Q
_ _ _ 4321
CLK CP Q CP Q CP Q
R R R
n-bit m-bit
n-bit
CLK CONV.
COUNT
Figura 1 – Exemplo 1
Input Output
CLK
0 2
1 3
2 0
3 1
Tabela 1 – Definição do conversor
B A Out1 Out0
0 0 1 0
0 1 1 1
1 0 0 0
4321 1 1 0 1
Tabela 2 – Definição das funções binárias
Out1 Out0
Figura 2 – Contador 2-3-0-1 com análise de “uns”
+V
S S
D Q D Q
_ _
CP Q CP Q 4321
R R
CLK
4321
Out1 Out0
Figura 3 – Contador 2-3-0-1 com análise de “zeros”
+V
S S
D Q D Q
_ _
CP Q CP Q 4321
R R
CLK
+V
4321
C B A Out1 Out0
0 0 0 1 0
0 0 1 1 0
0 1 0 0 0
0 1 1 0 1
1 0 0 0 0
1 0 1 1 0
4 3 21
1 1 0 0 1
1 1 1 0 1
Tabela 6 – Definição das funções
binárias
Out1 Out0
Figura 6 – Contador 2-2-0-1-0-2-1-1 com análise de “uns”
Como este contador é assíncrono, então o LSb é dado pelo flip flop à esquerda. Por esse
motivo, a conexão do entre o contador e o circuito combinacional é cruzada.
No diagrama de estados estáveis finitos, é permitido usar os valores codificados. Como a
identificação do estado inicial não é imediata, é preciso marca-lo como tal.
2
1 2
1 0
2 1
0
Figura 7 – Contador 2-2-0-1-0-2-1-1
+V
A State Output
S S
0 0 2
D Q D Q
_ _ 0 1 2
CP Q CP Q 4321
R R 0 2 0
0 3 1
CLK
A
1 0 0
1 1 2
1 2 1
1 3 1
Tabela 7 – Definição do conversor
A Q1 Q0 Out1 Out0
0 0 0 1 0
0 0 1 1 0
0 1 0 0 0
0 1 1 0 1
1 0 0 0 0
1 0 1 1 0
1 1 0 0 1
1 1 1 0 1
Tabela 8 – Definição das funções
binárias
4321
Out1 Out0
Figura 8 – Contador (2-2-0-1)-(0-2-1-1) com análise de “uns”
Neste circuito, a variável de controle “A” possui uma ação assíncrona. Isso quer dizer que,
quando este bit sofre alguma alteração, o contador é reconfigurado imediatamente, independente-
mente da borda do relógio. Uma ação assíncrona de reconfiguração do contador não é desejável. A
fim de tornar a entrada “A” síncrona, é preciso lançar mão de métodos de projeto que serão apre-
sentados em capítulos seguintes.
Unidade 5
Circuitos JK
Comando Q- Q
0 0
Hold
1 1
0 0
Reset
1 0
0 1
Set
1 1
0 1
Invert
1 0
Tabela 1 – Os quatro comandos de um bit
Opção 1 Opção 2
Porta NAND Porta NOR
Comando J K Comando J K
Hold 0 0 Hold 1 1
Reset 0 1 Reset 1 0
Set 1 0 Set 0 1
Invert 1 1 Invert 0 0
Tabela 3 – O acionamento dos comandos do FF JK
Tipo Comandos
Hold
Com memória
Invert
Reset
Sem memória
Set
Tabela 4 – Os dois tipos de comando do FF JK
Embora o flip flop JK possa, talvez, ser implementado de uma maneira totalmente nova, ele
é construído, hoje, como uma evolução do flip flop datum. É possível, então, transformar um flip
flop datum em um flip flop JK. Essa transformação é obtida por meio do acréscimo de um circuito
combinacional à entrada do FF datum. Quais são as entradas deste circuito combinacional? Obvia-
mente, estas entradas são as próprias entradas de dados do flip flop JK, isto é, “J” e “K”. Isso, porém,
não é suficiente, pois precisamos levar em consideração o “efeito memória” dos comandos “hold”
e “invert”. A fim de que o “efeito memória” seja incorporado, é preciso lançar mão da variável “Q -
”. Temos, então, três variáveis de entrada, totalizando oito combinações. Se o flip flop datum possui,
apenas, uma variável de entrada, então o circuito combinacional possui três entradas e uma saída.
J K Q- comando D
0 0 0 0
Hold
0 0 1 1
0 1 0 0
Reset
0 1 1 0
1 0 0 1
Set
1 0 1 1
1 1 0 1
Invert
1 1 1 0
Tabela 5 – A tabela-verdade do circuito combinacional
KQ KQ
J 00 01 11 10 J 00 01 11 10
0 0 1 0 0 0 0 1 0 0
1 1 1 0 1 1 1 1 0 1
Tabela 6 – O mapa de Karnaugh do circuito combinacional
D = (/K+/Q)(J+Q)
D = (/KQ)+(J/Q)
+V
C S
D Q
_
CP Q
R
K
K
J
/Q
CONTROL
KQ KQ
J 00 01 11 10 J 00 01 11 10
0 0 1 0 0 0 0 1 0 0
1 1 1 0 1 1 1 1 0 1
Tabela 7 – O mapa de Karnaugh do circuito combinacional com redução de spikes
D = (/K+/Q)(/K+/Q)(J+Q)
D = (/KQ)+ (J/K)+ (J/Q)
+V
S
D Q
_
C CP Q
R
J
/Q
K CONTROL
J
/Q
K
CONTROL
+V /PRESET
J datum
set Q
K
C
/Q
reset +V
/CLEAR
Figura 6 – Flip flop JK a partir de flip flop datum com preset e clear
Os nós topológicos apontados por “set” e “reset” possuem uma diferença de atraso provo-
cada pela porta NOT. É possível eliminar este atraso por meio da construção da função /D.
D = (/KQ)+(J/Q)
/D = (KQ)+(/J/Q)
J K
+V /PRESET
set Q
/Q
+V
reset
/CLEAR
J K
+V /PRESET
s*
set Q
C
r*
/Q
+V
reset
/CLEAR
SET = /(/(/QJ)/(/KQ))
RESET = /(/(/Q/J)/(KQ))
s* = /( SETC)
r* = /(RESETC)
s* = /(/(/(/QJ)/(/KQ))C)
r* = /(/(/(/Q/J)/(KQ))C)
Os circuitos anteriores apresentam uma série de seis portas lógicas de modo que os tempos
de atraso de propagação do sinal são somados e acumulados, provocando um grande atraso na
resposta final do circuito. O circuito pode ser simplificado para apenas, cinco portas lógicas, redu-
zindo o tempo de atraso e aumentando a capacidade do circuito em relação à frequência do relógio.
A seguir, é apresentado o processo matemático por meio do qual esta simplificação é efetuada.
J K
+V /PRESET
/Q
+V
/CLEAR
J K
+V /PRESET
/Q
+V
/CLEAR
S S
J Q J Q S J Q J Q
CP _ CP _ J Q CP _ CP _
K Q K Q CP _ K Q K Q
K Q
R R R R
R
Parte 02 – Toggle JK
O toggle datum foi apresentado em capítulos anteriores. O toggle JK opera exatamente da
mesma forma, ou seja, exerce uma divisão de freqüência por dois. O efeito toggle consiste em uma
eterna inversão na saída do circuito. O flip flop JK opera como toggle quando ele aplica, unicamente,
o comando “invert”. As entradas “J” e “K” estão sempre ligadas ao valor lógico “1”.
5V
+V
74LS76
S
J Q
CLK CP _
K Q
R
+V /PRESET
5V
+V
C
/Q
+V
/CLEAR
+V /PRESET
C
/Q
+V
/CLEAR
A figura 3 mostra que o flip flop JK operado como toogle consiste, exatamente, do mesmo
circuito lógico do flip flop datum operado como toogle. A simplificação é feita com base na proprie-
dade do “elemento neutro” e na propriedade do “elemento nulo” da adição e da multiplicação ló-
gicas. O circuito da figura 3, resultado da simplificação do circuito da figura 2, consiste do flip flop
datum com a saída /Q realimentada à entrada de dado.
Comando J K
Hold 0 0
Reset 0 1
Set 1 0
Invert 1 1
Tabela 1 – O acionamento dos comandos do FF JK
Tipo Comandos
Hold
Com memória
Invert
Reset
Sem memória
Set
Tabela 2 – Os dois tipos de comando do FF JK
Comando D J K
Reset 0 0 1
Set 1 1 0
Tabela 3 – Comparação entre os comandos D e os comandos JK
Conforme evidenciado na tabela anterior, um flip flop JK que utiliza, apenas, os comandos
sem memória opera exatamente como um flip flop datum. Neste caso, não há benefício algum na
escolha pelo uso do flip flop JK, pelo contrário, a escolha pelo flip flop datum representa melhor
capacidade de frequência e menor consumo de energia elétrica.
+V
CLK
S
J Q
D CP _
K Q
R
+V
É possível projetar intuitivamente o contador JK lançando mão dos comandos com memória.
Isto permite a criação de um circuito com um formado diferente daquele proporcionado pelo mé-
todo do uso dos comandos sem memória usado no contador datum.
Comando J K
Hold 0 0
Invert 1 1
Tabela 4 – Os comandos com memória do FF JK
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 bit 3 bit 2 bit 1 bit 0
0 0 0 0 0 0 0 1 hold hold hold invert
0 0 0 1 0 0 1 0 hold hold invert invert
0 0 1 0 0 0 1 1 hold hold hold invert
0 0 1 1 0 1 0 0 hold invert invert invert
0 1 0 0 0 1 0 1 hold hold hold invert
0 1 0 1 0 1 1 0 hold hold invert invert
0 1 1 0 0 1 1 1 hold hold hold invert
0 1 1 1 1 0 0 0 invert invert invert invert
1 0 0 0 1 0 0 1 hold hold hold invert
1 0 0 1 1 0 1 0 hold hold invert invert
1 0 1 0 1 0 1 1 hold hold hold invert
1 0 1 1 1 1 0 0 hold invert invert invert
1 1 0 0 1 1 0 1 hold hold hold invert
1 1 0 1 1 1 1 0 hold hold invert invert
1 1 1 0 1 1 1 1 hold hold hold invert
1 1 1 1 0 0 0 0 invert invert invert invert
Tabela 5 – Funcionamento do contador de 4 bits
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1
0 0 0 1 0 0 1 0 0 0 0 0 1 1 1 1
0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1
0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 1
0 1 0 0 0 1 0 1 0 0 0 0 0 0 1 1
0 1 0 1 0 1 1 0 0 0 0 0 1 1 1 1
0 1 1 0 0 1 1 1 0 0 0 0 0 0 1 1
0 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 1 0 0 1 0 0 0 0 0 0 1 1
1 0 0 1 1 0 1 0 0 0 0 0 1 1 1 1
1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1
1 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1
1 1 0 0 1 1 0 1 0 0 0 0 0 0 1 1
1 1 0 1 1 1 1 0 0 0 0 0 1 1 1 1
1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1
1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1
Tabela 6 – Programação dos bits de entrada do contador de 4 bits
Funções J0 e K0:
Em toda contagem completa crescente ou decrescente, o LSb age como um toggle.
Q0 J0 K0 +V
0 1 1
S
1 1 1 CLK J Q
4321
CP _
Tabela 7 – Funcionamento do contador de 1 bit K Q
R
Funções J1 e K1:
Primeiramente, é preciso
construir a tabela-verdade, para, depois, determinar as funções.
J1 = Q0
K1 = Q0
+V
FF1 FF0
S S
J Q J Q
CP _ CP _ 4321
K Q K Q
R R
CLK
Funções J2 e K2:
Antes Depois
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 0
Tabela 9 – Definição do contador de 3 bits
J2 = Q1Q0
K2 = Q1Q0
+V
CLK
Funções J3 e Q3:
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 bit 3
0 0 0 0 0 0 0 1 hold
0 0 0 1 0 0 1 0 hold
0 0 1 0 0 0 1 1 hold
0 0 1 1 0 1 0 0 hold
0 1 0 0 0 1 0 1 hold
0 1 0 1 0 1 1 0 hold
0 1 1 0 0 1 1 1 hold
0 1 1 1 1 0 0 0 invert
1 0 0 0 1 0 0 1 hold
1 0 0 1 1 0 1 0 hold
1 0 1 0 1 0 1 1 hold
1 0 1 1 1 1 0 0 hold
1 1 0 0 1 1 0 1 hold
1 1 0 1 1 1 1 0 hold
1 1 1 0 1 1 1 1 hold
1 1 1 1 0 0 0 0 invert
Tabela 11 – Funcionamento do contador de 4 bits
Antes Depois
Q3 Q2 Q1 Q0 Q2 Q2 Q1 Q0 J3 K3
0 0 0 0 0 0 0 1 0 0
0 0 0 1 0 0 1 0 0 0
0 0 1 0 0 0 1 1 0 0
0 0 1 1 0 1 0 0 0 0
0 1 0 0 0 1 0 1 0 0
0 1 0 1 0 1 1 0 0 0
0 1 1 0 0 1 1 1 0 0
0 1 1 1 1 0 0 0 1 1
1 0 0 0 1 0 0 1 0 0
1 0 0 1 1 0 1 0 0 0
1 0 1 0 1 0 1 1 0 0
1 0 1 1 1 1 0 0 0 0
1 1 0 0 1 1 0 1 0 0
1 1 0 1 1 1 1 0 0 0
1 1 1 0 1 1 1 1 0 0
1 1 1 1 0 0 0 0 1 1
Tabela 12 – Funcionamento do contador de 3 bits
J3 = Q2Q1Q0
K3 = Q2Q1Q0
+V
CLK
Estes circuitos possuem, todos eles, uma característica em comum: Os flip flops possuem
suas entradas de dados ligadas ao mesmo nó topológico.
Comando JK
Hold 0
Invert 1
Tabela 13 – O FF JK com as entradas de dados reduzidas a um único nó
O desenvolvimento das funções J3, K3, J2, K2, J1, K1, J0, K0 mostra que existe um padrão
nestas funções. Cada bit do contador é formado por um flip flop e uma porta AND de duas entradas.
As entradas “J” e “K” do flip flop recebem a saída da porta AND.
Com base nestas observações, é possível projetar estes contadores de maneira sistemática.
Por exemplo, o contador de cinco bits é construído por meio da inclusão de um flip flop e uma porta
AND ao contador de quatro bit”.
+V
S
FF4 S
FF3 S
FF2 S
FF1 S
FF0
J Q J Q J Q J Q J Q
CP _ CP _ CP _ CP _ CP _ 4321 4321
K Q K Q K Q K Q K Q
R R R R R
CLK
É possível criar um módulo, contendo estes dois elementos, aplicáveis para cada bit do con-
tador e replicar este módulo para todos os bits do contador. Esta técnica produz um contador mo-
dular.
+V
threshold 1
threshold 2
+V S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _ 4321
K Q K Q K Q K Q
R R R R
CLK
enable 1
threshold 1
enable 2
threshold 2
output
+V S
J Q
CP _
CLK K Q
R
CLK
out
Figura 10 – Quatro módulos contador JK síncronos de um bit
Antes Depois
dec Q3 Q2 Q1 Q0 dec Q3 Q2 Q1 Q0 bit 3 bit 2 bit 1 bit 0
0 0 0 0 0 15 1 1 1 1 invert invert invert invert
1 0 0 0 1 0 0 0 0 0 hold hold hold invert
2 0 0 1 0 1 0 0 0 1 hold hold invert invert
3 0 0 1 1 2 0 0 1 0 hold hold hold invert
4 0 1 0 0 3 0 0 1 1 hold invert invert invert
5 0 1 0 1 4 0 1 0 0 hold hold hold invert
6 0 1 1 0 5 0 1 0 1 hold hold invert invert
7 0 1 1 1 6 0 1 1 0 hold hold hold invert
8 1 0 0 0 7 0 1 1 1 invert invert invert invert
9 1 0 0 1 8 1 0 0 0 hold hold hold invert
10 1 0 1 0 9 1 0 0 1 hold hold invert invert
11 1 0 1 1 10 1 0 1 0 hold hold hold invert
12 1 1 0 0 11 1 0 1 1 hold invert invert invert
13 1 1 0 1 12 1 1 0 0 hold hold hold invert
14 1 1 1 0 13 1 1 0 1 hold hold invert invert
15 1 1 1 1 14 1 1 1 0 hold hold hold invert
Tabela 1 – Funcionamento do contador decrescente de 4 bits
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1
0 0 1 0 0 0 1 1 0 0 0 0 1 1 1 1
0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1
0 1 0 0 0 1 0 1 0 0 1 1 1 1 1 1
0 1 0 1 0 1 1 0 0 0 0 0 0 0 1 1
0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1
0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1
1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1
1 0 0 1 1 0 1 0 0 0 0 0 0 0 1 1
1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 1
1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1
1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1
1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1
1 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1
Tabela 2 – Programação dos bits de entrada do contador decrescente de 4 bits
Funções J1 e K1:
Antes Depois
dec Q1 Q0 dec Q1 Q0 bit 1 J1 K1
0 0 0 3 1 1 invert 1 1
1 0 1 0 0 0 hold 0 0
2 1 0 1 0 1 invert 1 1
3 1 1 2 1 0 hold 0 0
Tabela 3 – Funcionamento do contador decrescente de 2 bits
J1 = /Q0 ; K1 = /Q0
+V
J
S
Q
FF1 J
S
Q
FF0
CP _ CP _ 4321
K Q K Q
R R
CLK
Funções J2 e K2:
Antes Depois
dec Q2 Q1 Q0 dec Q2 Q1 Q0 bit 2 J2 K2
0 0 0 0 7 1 1 1 invert 1 1
1 0 0 1 0 0 0 0 hold 0 0
2 0 1 0 1 0 0 1 hold 0 0
3 0 1 1 2 0 1 0 hold 0 0
4 1 0 0 3 0 1 1 invert 1 1
5 1 0 1 4 1 0 0 hold 0 0
6 1 1 0 5 1 0 1 hold 0 0
7 1 1 1 6 1 1 0 hold 0 0
Tabela 4 – Funcionamento do contador decrescente de 3 bits
J2 = /Q1/Q0 ; K2 = /Q1/Q0
+V
CLK
Funções J3 e K3:
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 bit 3 J3 K3
0 0 0 0 1 1 1 1 invert 1 1
0 0 0 1 0 0 0 0 hold 0 0
0 0 1 0 0 0 0 1 hold 0 0
0 0 1 1 0 0 1 0 hold 0 0
0 1 0 0 0 0 1 1 hold 0 0
0 1 0 1 0 1 0 0 hold 0 0
0 1 1 0 0 1 0 1 hold 0 0
0 1 1 1 0 1 1 0 hold 0 0
1 0 0 0 0 1 1 1 invert 1 1
1 0 0 1 1 0 0 0 hold 0 0
1 0 1 0 1 0 0 1 hold 0 0
1 0 1 1 1 0 1 0 hold 0 0
1 1 0 0 1 0 1 1 hold 0 0
1 1 0 1 1 1 0 0 hold 0 0
1 1 1 0 1 1 0 1 hold 0 0
1 1 1 1 1 1 1 0 hold 0 0
Tabela 5 – Funcionamento do contador decrescente de 4 bits
J3 = /Q2/Q1/Q0
K3 = /Q2/Q1/Q0
+V
S FF3 S
FF2 S
FF1 S FF0 4321
J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q
R R R R
+V
S S S S S
J Q J Q J Q J Q J Q
CP _ CP _ CP _ CP _ CP _ 4321 4321
K Q K Q K Q K Q K Q
R R R R R
CLK
É possível criar um contador reversível através da comutação entre os bits Q e os bits /Q por
meio do uso da porta lógica XOR como um inversor programável. A segunda opção do contador
reversível logo abaixo apresenta a vantagem de que, na ocasião da seleção do comando de inversão,
o valor vigente é preservado. Na primeira opção, o processo de seleção da inversão implica na ime-
diata inversão bit-a-bit da saída.
+V
S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q
R R R R
CLK
direction
4321
+V direction
S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q
R R R R 4321
CLK
Figura 6 – Contador reversível por meio da inversão das entradas das portas AND
Exemplo 1: Contador de 0 a 2
Antes Depois
Antes Depois Q1 Q0 Q1 Q0 bit 1 bit 0
0 1 0 0 0 1 hold invert
1 2 0 1 1 0 invert invert
2 0 1 0 0 0 invert hold
3 X 1 1 X X - -
Tabela 1 – Funcionamento do contador de 0 a 2
Antes Depois
Q1 Q0 Q1 Q0 J1 K1 J0 K0
0 0 0 1 0 0 1 1
0 1 1 0 1 1 1 1
1 0 0 0 1 1 0 0
1 1 X X X X X X
Tabela 2 – Funcionamento do contador de 0 a 2
J0 = /Q1 J1 = Q1+Q0
K0 = /Q1 K1 = Q1+Q0
+V
FF1 FF0
S S
J Q J Q
CP _ CP _ 4321
K Q K Q
R R
CLK
Exemplo 2: Contador de 0 a 6
Antes Depois
Antes Depois Q2 Q1 Q0 Q2 Q1 Q0 bit 2 bit 1 bit 0
0 1 0 0 0 0 0 1 hold hold invert
1 2 0 0 1 0 1 0 hold invert invert
2 3 0 1 0 0 1 1 hold hold invert
3 4 0 1 1 1 0 0 invert invert invert
4 5 1 0 0 1 0 1 hold hold invert
5 6 1 0 1 1 1 0 hold invert invert
6 0 1 1 0 0 0 0 invert invert hold
7 X 1 1 1 - - - - - -
Tabela 3 – Funcionamento do contador de 0 a 6
Antes Depois
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 00 00 11
0 0 1 0 1 0 00 11 11
0 1 0 0 1 1 00 00 11
0 1 1 1 0 0 11 11 11
1 0 0 1 0 1 00 00 11
1 0 1 1 1 0 00 11 11
1 1 0 0 0 0 11 11 00
X X X X X X XX XX XX
Tabela 4 – Funcionamento do contador de 0 a 6
J2 = K2 = Q1(Q2+Q0)
J1 = K1 = Q0+(Q2Q1)
J0 = K0 = /Q2+/Q1
É possível observar que o processo de minimização por Mapa de Karnaugh não é suficiente
para promover uma boa minimização. Isso acontece porque este método de projeto não oferece
irrelevâncias. As únicas irrelevâncias observáveis acontecem em razão da ocorrência de “estados
fantasmas”. No capítulo seguinte, é apresentada uma estratégia de criação de irrelevâncias por
meio da disponibilização dos quatro comandos do flip flop JK.
O método apresentado neste capítulo possui a vantagem de implicar na construção de uma
única função para cada bit de contagem, tornando-o bastante semelhante ao método aplicado ao
flip flop datum. Estes dois métodos, porém, possuem a desvantagem do baixo poder minimizatório
decorrente da pequena ou nula ocorrência de irrelevâncias. O método apresentado no capítulo se-
guinte possui a desvantagem de implicar na construção de duas funções para cada bit de contagem,
porém, mesmo assim, o poder minimizatório supera esta desvantagem tornando aquele método
mais interessante.
CLK
Transição Efeito
00 permanência baixa
01 borda de subida
10 borda de descida
11 permanência alta
Tabela 1 – As opções de transição em um bit
Cada uma dos quatro tipos de transição pode ser efetuado por meio de um comando com
memória e por meio de um comando sem memória. Esta característica não é observada nos conta-
dores construídos a partir de FF RS ou FF datum.
Comando
Transição Com memória Sem memória
00 hold reset
01 invert set
10 invert reset
11 hold set
Tabela 2 – As opções de comando para cada transição
Comando
Com memória Sem memória
Transição
J K J K
00 0 0 0 1
01 1 1 1 0
10 1 1 0 1
11 0 0 1 0
Tabela 3 – As configurações das entradas
Cada tipo de transição pode ser efetuada por meio de dois comandos JK, e cada um desses
dois comandos é ativado por meio dos dois bits de entrada, “J” e “K”. Nestes dois comandos, um
dos bits é igual e um dos bits é diferente. Quando o valor do bit é diferente na comparação entre os
dois comandos, este bit é irrelevante.
Comando
Transição
J K
00 0 X
01 1 X
10 X 1
11 X 0
Tabela 4 – A tabela de transições JK
Contadores de um bit
Analisemos, agora, de maneira genérica, os contadores de um, dois, três e quatro bits, sa-
bendo que os contadores maiores seguem a mesma linha de raciocínio. A coluna marcada como
“antes” não muda nunca, pois, por definição, todo estado estável precisa ter, pelo menos, um ca-
minho de saída. Quanto à coluna de saída, ela pode apontar para qualquer estado estável do sis-
tema, inclusive o próprio estado anterior.
Antes Depois
Q Q bit JK
0 00 0X
0
1 01 1X
0 10 X1
1
1 11 X0
Tabela 5 – As possibilidades de contagem de um bit
Antes Depois
Q Q JK
0 ? ?X
1 ? X?
Tabela 6 – O esboço da tabela de transições de um bit
Nas tabelas-verdade das funções “J” e “K”, somente as células marcadas com “?” são confi-
guráveis em acordo com o diagrama de estados estáveis finitos. As células irrelevantes tem o seu
valor definido a partir dos implicantes primos essenciais dos Mapas de Karnaugh.
Antes Depois
Q1 Q0 Q1 Q0 bit 1 bit 0 J1 K1 J0 K0
0 0 00 00 0X 0X
0 1 00 01 0X 1X
0 0
1 0 01 00 1X 0X
1 1 01 01 1X 1X
0 0 00 10 0X X1
0 1 00 11 0X X0
0 1
1 0 01 10 1X X1
1 1 01 11 1X X0
0 0 10 00 X1 0X
0 1 10 01 X1 1X
1 0
1 0 11 00 X0 0X
1 1 11 01 X0 1X
0 0 10 10 X1 X1
0 1 10 11 X1 X0
1 1
1 0 11 10 X0 X1
1 1 11 11 X0 X0
Tabela 7 – As possibilidades de contagem de dois bits
Antes Depois
Q1 Q0 Q1 Q0 J1 K1 J0 K0
0 0 ? ? ?X ?X
0 1 ? ? ?X X?
1 0 ? ? X? ?X
1 1 ? ? X? X?
Tabela 8 – O esboço da tabela de transições de dois bits
J1 J0
0 0
1 0 1 1 0 1
0 ? ? 0 ? X
1 X X 1 ? X
K1 K0
0 0
1 0 1 1 0 1
0 X X 0 X ?
1 ? ? 1 X ?
Tabela 9 – O esboço dos Mapas de Karnaugh de três bits
Antes Depois
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 ? ? ? ?X ?X ?X
0 0 1 ? ? ? ?X ?X X?
0 1 0 ? ? ? ?X X? ?X
0 1 1 ? ? ? ?X X? X?
1 0 0 ? ? ? X? ?X ?X
1 0 1 ? ? ? X? ?X X?
1 1 0 ? ? ? X? X? ?X
1 1 1 ? ? ? X? X? X?
Tabela 10 – O esboço da tabela de transições de três bits
J2 J1 J0
10 10 10
2 00 01 11 10 2 00 01 11 10 2 00 01 11 10
0 ? ? ? ? 0 ? ? X X 0 ? X X ?
1 X X X X 1 ? ? X X 1 ? X X ?
K2 K1 K0
10 10 10
2 00 01 11 10 2 00 01 11 10 2 00 01 11 10
0 X X X X 0 X X ? ? 0 X ? ? X
1 ? ? ? ? 1 X X ? ? 1 X ? ? X
Tabela 11 – O esboço dos Mapas de Karnaugh de três bits
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 ? ? ? ? ?X ?X ?X ?X
0 0 0 1 ? ? ? ? ?X ?X ?X X?
0 0 1 0 ? ? ? ? ?X ?X X? ?X
0 0 1 1 ? ? ? ? ?X ?X X? X?
0 1 0 0 ? ? ? ? ?X X? ?X ?X
0 1 0 1 ? ? ? ? ?X X? ?X X?
0 1 1 0 ? ? ? ? ?X X? X? ?X
0 1 1 1 ? ? ? ? ?X X? X? X?
1 0 0 0 ? ? ? ? X? ?X ?X ?X
1 0 0 1 ? ? ? ? X? ?X ?X X?
1 0 1 0 ? ? ? ? X? ?X X? ?X
1 0 1 1 ? ? ? ? X? ?X X? X?
1 1 0 0 ? ? ? ? X? X? ?X ?X
1 1 0 1 ? ? ? ? X? X? ?X X?
1 1 1 0 ? ? ? ? X? X? X? ?X
1 1 1 1 ? ? ? ? X? X? X? X?
Tabela 12 – O esboço da tabela de transições de quatro bits
J3 K3
10 10
32 00
01 11 10 32 00 01 11 10
00 ?
? ? ? 00 X X X X
01 ?
? ? ? 01 X X X X
11 XX X X 11 ? ? ? ?
10 XX X X 10 ? ? ? ?
J2 K2
10 10
32 00 01 11 10 32 00 01 11 10
00 ? ? ? ? 00 X X X X
01 X X X X 01 ? ? ? ?
11 X X X X 11 ? ? ? ?
10 ? ? ? ? 10 X X X X
J1 K1
10 10
32 00 01 11 10 32 00 01 11 10
00 ? ? X X 00 X X ? ?
01 ? ? X X 01 X X ? ?
11 ? ? X X 11 X X ? ?
10 ? ? X X 10 X X ? ?
J0 K0
10 10
32 00 01 11 10 32 00 01 11 10
00 ? X X ? 00 X ? ? X
01 ? X X ? 01 X ? ? X
11 ? X X ? 11 X ? ? X
10 ? X X ? 10 X ? ? X
Tabela 13 – O esboço dos Mapas de Karnaugh de quatro bits
Exemplo 1: Contador de 0 a 2
Antes Depois
Q1 Q0 Q1 Q0 J1 K1 J0 K0
0 0 0 1 0X 1X
0 1 1 0 1X X1
1 0 0 0 X1 0X
1 1 X X XX XX
Tabela 14 – Funcionamento do contador de 0 a 2
J1 J0
0 0
1 0 1 1 0 1
0 0 1 0 1 X
1 X X 1 0 X
K1 K0
0 0
1 0 1 1 0 1
0 X X 0 X 1
1 1 X 1 X 1
Tabela 15 – O esboço dos Mapas de Karnaugh de três bits
J1 = Q0
K1 = 1
J0 = /Q1
K0 = 1
+V
S S
J Q J Q
CP _ CP _
K Q K Q 4321
R R
CLK
Figura 1 – Circuito lógico do contador de 0 a 2
Antes Depois
Q1 Q0 Q1 Q0 J1 K1 J0 K0 J1 K1 J0 K0
0 0 0 1 01 11 reset invert
0 1 1 0 11 11 invert invert
1 0 0 0 01 01 reset reset
1 1 0 0 11 01 invert reset
Tabela 16 – Funcionamento do contador de 0 a 2 após a substituição das irrelevâncias
3 1
2
Figura 2 – Diagrama de estados estáveis finitos completo do contador de 0 a 2
Exemplo 2: Contador de 0 a 6
Antes Depois
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0X 0X 1X
0 0 1 0 1 0 0X 1X X1
0 1 0 0 1 1 0X X0 1X
0 1 1 1 0 0 1X X1 X1
1 0 0 1 0 1 X0 0X 1X
1 0 1 1 1 0 X0 1X X1
1 1 0 0 0 0 X1 X1 0X
1 1 1 X X X XX XX XX
Tabela 17 – Funcionamento do contador de 0 a 6
J2 J1 J0
10 10 10
2 00 01 11 10 2 00
01 11 10 2 00 01 11 10
0 0 0 1 0 0 1 0
X X 0 1 X X 1
1 X X X X 1 1 0
X X 1 1 X X 0
K2 K1 K0
10 10 10
2 00 01 11 10 2 00 01 11 10 2 00 01 11 10
0 X X X X 0 X X 1 0 0 X 1 1 X
1 0 0 X 1 1 X X X 1 1 X 1 X X
Tabela 18 –Mapas de Karnaugh do contador de 0 a 6
J2 = Q1Q0
K2 = Q1
J1 = Q0
K1 = Q2+Q0
J0 = /Q2+/Q1
K0 = 1
+V S S S
J Q J Q J Q
CP _ CP _ CP _ 4321
K Q K Q K Q
R R R
CLK
Antes Depois
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 00 00 11 hold hold invert
0 0 1 0 1 0 00 11 11 hold invert invert
0 1 0 0 1 1 01 00 11 reset hold invert
0 1 1 1 0 0 11 11 11 invert invert invert
1 0 0 1 0 1 00 01 11 hold reset invert
1 0 1 1 1 0 00 11 11 hold invert invert
1 1 0 0 0 0 01 01 01 reset reset reset
1 1 1 0 0 0 11 11 01 invert invert reset
Tabela 19 – Funcionamento do contador de 0 a 6
0
7 1
6 2
5 3
4
Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0X 0X 0X 1X
0 0 0 1 0X 0X 1X X1
0 0 1 0 0X 0X X0 1X
0 0 1 1 0X 1X X1 X1
0 1 0 0 0X X0 0X 1X
0 1 0 1 0X X0 1X X1
0 1 1 0 0X X0 X0 1X
0 1 1 1 1X X1 X1 X1
1 0 0 0 X0 0X 0X 1X
1 0 0 1 X1 0X 0X X1
1 0 1 0 XX XX XX XX
1 0 1 1 XX XX XX XX
1 1 0 0 XX XX XX XX
1 1 0 1 XX XX XX XX
1 1 1 0 XX XX XX XX
1 1 1 1 XX XX XX XX
Tabela 20 – Funcionamento do contador BCD
J3 K3
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 0 0 00 X X X X
01 0 0 1 0 01 X X X X
11 X X X X 11 X X X X
10 X X X X 10 0 1 X X
J2 K2
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 1 0 00 X X X X
01 X X X X 01 0 0 1 0
11 X X X X 11 X X X X
10 0 0 X X 10 X X X X
J1 K1
10 10
32 00 01 11 10 32 00 01 11 10
00 0 1 X X 00 X X 1 0
01 0 1 X X 01 X X 1 0
11 X X X X 11 X X X X
10 0 0 X X 10 X X X X
J0 K0
10 10
32 00 01 11 10 32 00 01 11 10
00 1 X X 1 00 X 1 1 X
01 1 X X 1 01 X 1 1 X
11 X X X X 11 X X X X
10 1 X X X 10 X 1 X X
Tabela 21 – Mapas de Karnaugh do contador BCD
J3 = Q2Q1Q0 ; K3 = Q0
J2 = Q1Q0 ; K2 = Q1Q0
J1 = /Q3Q0 ; K1 = Q0
J0 = 1 ; K0 = 1
J3 = Q2J2 ; K3 = Q0
J2 = K2 = Q1Q0
J1 = /Q3Q0 ; K1 = Q0
J0 = K0 = 1
+V
S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _ 4321
K Q K Q K Q K Q
R R R R
CLK
Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 00 00 00 11
0 0 0 1 01 00 11 11
0 0 1 0 00 00 00 11
0 0 1 1 01 11 11 11
0 1 0 0 00 00 00 11
0 1 0 1 01 00 11 11
0 1 1 0 00 00 00 11
0 1 1 1 11 11 11 11
1 0 0 0 00 00 00 11
1 0 0 1 01 00 01 11
1 0 1 0 00 00 00 11
1 0 1 1 01 11 01 11
1 1 0 0 00 00 00 11
1 1 0 1 01 00 01 11
1 1 1 0 00 00 00 11
1 1 1 1 11 11 01 11
Tabela 22 – Funcionamento do contador BCD
Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 hold hold hold invert
0 0 0 1 reset hold invert invert
0 0 1 0 hold hold hold invert
0 0 1 1 reset invert invert invert
0 1 0 0 hold hold hold invert
0 1 0 1 reset hold invert invert
0 1 1 0 hold hold hold invert
0 1 1 1 reset invert invert invert
1 0 0 0 hold hold hold invert
1 0 0 1 reset hold reset invert
1 0 1 0 hold hold hold invert
1 0 1 1 reset invert reset invert
1 1 0 0 hold hold hold invert
1 1 0 1 reset hold reset invert
1 1 1 0 hold hold hold invert
1 1 1 1 invert invert reset invert
Tabela 23 – Funcionamento do contador BCD
Antes Depois
Antes Depois Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
0 1 0 0 0 0 0 0 0 1
1 2 0 0 0 1 0 0 1 0
2 3 0 0 1 0 0 0 1 1
3 4 0 0 1 1 0 1 0 0
4 5 0 1 0 0 0 1 0 1
5 6 0 1 0 1 0 1 1 0
6 7 0 1 1 0 0 1 1 1
7 8 0 1 1 1 1 0 0 0
8 9 1 0 0 0 1 0 0 1
9 0 1 0 0 1 0 0 0 0
10 11 1 0 1 0 1 0 1 1
11 4 1 0 1 1 0 1 0 0
12 13 1 1 0 0 1 1 0 1
13 4 1 1 0 1 0 1 0 0
14 15 1 1 1 0 1 1 1 1
15 0 1 1 1 1 0 0 0 0
Tabela 24 – Funcionamento completo do contador BCD
0
1
14 2
13 3
3
12 4
10 6
9 8
O tipo de contador anel apresentado neste capítulo, bem como os contadores anel constru-
ídos a partir dos registradores de deslocamento, possuem a desvantagem de utilizar um FF para
cada bit anel. Esta característica aponta para uma baixa capacidade de utilização do custo informa-
tivo. Por exemplo, um contador anel de quatro bits, utilizando quatro FF´s, possui uma capacidade
de contagem máxima de dezesseis estados, dos quais apenas quatro são usados, implicando em
uma taxa de utilização de estados de, apenas, 25%. Quanto maior é a quantidade de bits do conta-
dor anel, menor é a sua taxa de utilização da capacidade informativa. Em capítulos seguintes serão
apresentados os contadores codificados. Esta solução permite otimizar esta taxa de utilização.
A versão digital dos contadores anel traz muitas vantagens, como, por exemplo:
Baixo custo
Baixo consumo de energia elétrica
Melhor miniaturização
Maior vida útil
Maior capacidade de bits
Maior capacidade de frequência de operação
Ausência de ruído acústico
2
4
0
7 1
6 2
5 3
4
Figura 4 – Diagrama de estados finitos incluindo os estados “fantasmas”
No diagrama de estados estáveis finitos com os estados “fantasmas” é possível observar que
o acesso ao estado “0” é inevitável pois a energização do circuito real leva os bits de saídas de dados
ao estado inicial “0”. Por outro lado, o estado “0” não está incluído no contador anel. Isto significa
que este circuito inicia em uma situação de “defeito”, passando a operar corretamente na sequên-
cia. O estado “0” não pode ser considerado “fantasma”, pois a sua saída não é irrelevante. O estado
“0” leva, obrigatoriamente, ao estado “1”.
000
0
1 001
2 010
4 100
Figura 5 – Diagrama de estados finitos do contador anel de três bits na forma binária
Antes Depois
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0X 0X 1X
0 0 1 0 1 0 0X 1X X1
0 1 0 1 0 0 1X X1 0X
1 0 0 0 0 1 X1 0X 1X
Tabela 2 – Funcionamento simplificado do contador anel de três bits
Antes Depois
Q2 Q1 Q0 Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 0 0 1 0X 0X 1X
0 0 1 0 1 0 0X 1X X1
0 1 0 1 0 0 1X X1 0X
0 1 1 X X X XX XX XX
1 0 0 0 0 1 X1 0X 1X
1 0 1 X X X XX XX XX
1 1 0 X X X XX XX XX
1 1 1 X X X XX XX XX
Tabela 3 – Funcionamento completo do contador anel de três bits
J2 K2
10 10
2 00
01 11 10 2 00 01 11 10
0 0 0 X 1 0 X X X X
1 X X X X 1 1 X X X
J1 K1
10 10
2 00 01 11 10 2 00 01 11 10
0 0 1 X X 0 X X X 1
1 0 X X X 1 X X X X
J0 K0
10 10
2 00 01 11 10 2 00 01 11 10
0 1 X X 0 0 X 1 X X
1 1 X X X 1 X X X X
Tabela 4 – Os Mapas de Karnaugh do contador anel de três bits
Este contador é melhor desenhado na ordem invertida, a saber, colocando o FF mais signifi-
cativo à direita e o menos significativo à esquerda.
+V
Q0 Q1 Q2
S S S
J Q J Q J Q
CP _ CP _ CP _
K Q K Q K Q
R R R
CLK
Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 01 01 11
0 0 1 01 11 01
0 1 0 11 01 01
1 0 0 01 01 11
Tabela 5 – Preenchimento da tabela após a definição dos IPE´s
Q2 Q1 Q0 J2 K2 J1 K1 J0 K0
0 0 0 reset reset invert
0 0 1 reset invert reset
0 1 0 invert reset reset
1 0 0 reset reset invert
Tabela 6 – Os comandos usados no contador anel
8 2
4
Figura 10 – Diagrama de estados finitos do contador anel de quatro bits
0
1
14 2
13 3
3
12 4
10 6
9 8
Figura 11 – Diagrama de estados finitos incluindo os estados “fantasmas”
0000
0
1 0001
8 2 1000 0010
4 0100
Figura 12 – Diagrama de estados finitos do contador anel de quatro bits na forma binária
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 0X 0X 0X 1X
0 0 0 1 0 0 1 0 0X 0X 1X X1
0 0 1 0 0 1 0 0 0X 1X X1 0X
0 1 0 0 1 0 0 0 1X X1 0X 0X
1 0 0 0 0 0 0 1 X1 0X 0X 1X
Tabela 7 – Funcionamento simplificado do contador anel de quatro bits
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 0X 0X 0X 1X
0 0 0 1 0 0 1 0 0X 0X 1X X1
0 0 1 0 0 1 0 0 0X 1X X1 0X
0 0 1 1 X X X X XX XX XX XX
0 1 0 0 1 0 0 0 1X X1 0X 0X
0 1 0 1 X X X X XX XX XX XX
0 1 1 0 X X X X XX XX XX XX
0 1 1 1 X X X X XX XX XX XX
1 0 0 0 0 0 0 1 X1 0X 0X 1X
1 0 0 1 X X X X XX XX XX XX
1 0 1 0 X X X X XX XX XX XX
1 0 1 1 X X X X XX XX XX XX
1 1 0 0 X X X X XX XX XX XX
1 1 0 1 X X X X XX XX XX XX
1 1 1 0 X X X X XX XX XX XX
1 1 1 1 X X X X XX XX XX XX
Tabela 8 – Funcionamento completo do contador anel de quatro bits
K3 = K2 = K1 = K0 = 1
J3 = Q2
J2 = Q1
J1 = Q0
J0 = /Q2/Q1
+V
Q0 Q1 Q2 Q3
S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q
R R R R
CLK
J3 K3
10 10
32 00
01 11 10 32 00 01 11 10
00 0 0 X 0 00 X X X X
01 X 1 X X 01 X X X X
11 X X X X 11 X X X X
10 X X X X 10 1 X X X
J2 K2
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 X 1 00 X X X X
01 X X X X 01 1 X X X
11 X X X X 11 X X X X
10 0 X X X 10 X X X X
J1 K1
10 10
32 00 01 11 10 32 00 01 11 10
00 0 1 X X 00 X X X 1
01 0 X X X 01 X X X X
11 X X X X 11 X X X X
10 0 X X X 10 X X X X
J0 K0
10 10
32 00 01 11 10 32 00 01 11 10
00 1 X X 0 00 X 1 X X
01 0 X X X 01 X X X X
11 X X X X 11 X X X X
10 1 X X X 10 X X X X
Tabela 9 – Os Mapas de Karnaugh do contador anel de quatro bits
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 01 01 01 11
0 0 0 1 0 0 1 0 01 01 11 11
0 0 1 0 0 1 0 0 01 11 01 01
0 1 0 0 1 0 0 0 11 01 01 01
1 0 0 0 0 0 0 1 01 01 01 11
Tabela 10 – Preenchimento da tabela após a definição dos IPE´s
Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 reset reset reset invert
0 0 0 1 reset reset invert invert
0 0 1 0 reset invert reset reset
0 1 0 0 invert reset reset reset
1 0 0 0 reset reset reset invert
Tabela 11 – Os comandos usados no contador anel
+V
Q0 Q1 Q2 Q3 Q4
S S S S S
J Q J Q J Q J Q J Q
CP _ CP _ CP _ CP _ CP _
K Q K Q K Q K Q K Q
R R R R R
CLK
+V
Q0 Q1 Q2 Q3 Q4 Q5
S S S S S S
J Q J Q J Q J Q J Q J Q
CP _ CP _ CP _ CP _ CP _ CP _
K Q K Q K Q K Q K Q K Q
R R R R R R
CLK
A definição conceitual de contagem anel esclarece que somente um bit de saída é acionado
por vez, não permitindo que dois ou mais bits sejam ativados ao mesmo tempo. Isso não impede
que o conceito de contagem anel seja extrapolado para dois ou mais bits. É necessário, porém, que
o nome do contador faça menção a esta estrapolação. Se duas saídas são acionadas, dizemos que o
contador anel é duplo. Se são três saídas, o contador é triplo. E assim por diante.
9 6
12
Figura 19 – Diagrama de estados finitos do contador anel de quatro bits
0001
1 0000
0
0011
3
9 6 1001 0110
12 1100
Figura 20 – Diagrama de estados finitos do contador anel de quatro bits na forma binária
0
1
14 2
13 3
3
12 4
10 6
9 8
Figura 21 – Diagrama de estados finitos incluindo os estados “fantasmas”
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 0X 0X 0X 1X
0 0 0 1 0 0 1 1 0X 0X 1X X0
0 0 1 1 0 1 1 0 0X 1X X0 X1
0 1 1 0 1 1 0 0 1X X0 X1 0X
1 1 0 0 1 0 0 1 X0 X1 0X 1X
1 0 0 1 0 0 1 1 X1 0X 1X X0
Tabela 12 – Funcionamento simplificado do contador anel de quatro bits
J3 K3
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 0 X 00 X X X X
01 X X X 1 01 X X X X
11 X X X X 11 0 X X X
10 X X X X 10 X 1 X X
J2 K2
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 1 X 00 X X X X
01 X X X X 01 X X X 0
11 X X X X 11 1 X X X
10 X 0 X X 10 X X X X
J1 K1
10 10
32 00 01 11 10 32 00 01 11 10
00 0 1 X X 00 X X 0 X
01 X X X X 01 X X X 1
11 0 X X X 11 X X X X
10 X 1 X X 10 X X X X
J0 K0
10 10
32 00 01 11 10 32 00 01 11 10
00 1 X X X 00 X 0 1 X
01 X X X 0 01 X X X X
11 1 X X X 11 X X X X
10 X X X X 10 X 0 X X
Tabela 13 – Os Mapas de Karnaugh do contador anel de quatro bits
J3 = K1 = Q2
J2 = K0 = Q1
J1 = K3 = Q0
J0 = K2 = /Q1
Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 00 01 00 10
0 0 0 1 01 01 10 10
0 0 1 1 01 10 10 01
0 1 1 0 10 10 01 01
1 1 0 0 10 01 01 10
1 0 0 1 01 01 10 10
Tabela 14 – Preenchimento da tabela após a definição dos IPE´s
Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 hold reset hold set
0 0 0 1 reset reset set set
0 0 1 1 reset set set reset
0 1 1 0 set set reset reset
1 1 0 0 set reset reset set
1 0 0 1 reset reset set set
Tabela 15 – Os comandos usados no contador anel
+V
Q0 Q1 Q2 Q3
S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q
R R R R
CLK
0 0000
8 1 1000 0001
12 3 1100 0011
14 7 1110 0111
15 1111
Figura 2 – Diagrama de estados estáveis finitos para o contador Johnson de quatro bits
Antes Depois
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0
0 0 0 0 0 0 0 1 0X 0X 0X 1X
0 0 0 1 0 0 1 1 0X 0X 1X X0
0 0 1 1 0 1 1 1 0X 1X X0 X0
0 1 1 1 1 1 1 1 1X X0 X0 X0
1 1 1 1 1 1 1 0 X0 X0 X0 X1
1 1 1 0 1 1 0 0 X0 X0 X1 0X
1 1 0 0 1 0 0 0 X0 X1 0X 0X
1 0 0 0 0 0 0 0 X1 0X 0X 0X
Tabela 1 – Funcionamento simplificado do contador Johnson de quatro bits
0
1
14 2
13 3
3
12 4
10 6
9 8
Figura 3 – Diagrama de estados estáveis finitos completo para o contador Johnson de quatro bits
J3 K3
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 0 X 00 X X X X
01 X X 1 X 01 X X X X
11 X X X X 11 0 X 0 0
10 X X X X 10 1 X X X
J2 K2
10 10
32 00 01 11 10 32 00 01 11 10
00 0 0 1 X 00 X X X X
01 X X X X 01 X X 0 X
11 X X X X 11 1 X 0 0
10 0 X X X 10 X X X X
J1 K1
10 10
32 00 01 11 10 32 00 01 11 10
00 0 1 X X 00 X X 0 X
01 X X X X 01 X X 0 X
11 0 X X X 11 X X 0 1
10 0 X X X 10 X X X X
J0 K0
10 10
32 00 01 11 10 32 00 01 11 10
00 1 X X X 00 X 0 0 X
01 X X X X 01 X X 0 X
11 0 X X 0 11 X X 1 X
10 0 X X X 10 X X X X
Tabela 2 – Os Mapas de Karnaugh do contador Johnson de quatro bits
J3 = Q2 K3 = /Q2
J2 = Q1 K2 = /Q1
J1 = Q0 K1 = /Q0
J0 = /Q3 K0 = Q3
+V
Q0 Q1 Q2 Q3
S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q
R R R R
CLK
Todos os FF´s JK do circuito contador Johnson de quatro bits possuem as entradas J e K com-
plementares. Isto significa que os FF´s JK recebem, apenas, os comandos “set” e “reset”; recebem,
apenas, os comandos sem memória. Em outras palavras, os FF´s JK atuam como FF´s datum. O cir-
cuito pode, então, ser melhorado trocando os FF´s JK por FF´s datum.
+V
Q0 Q1 Q2 Q3
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
CLK
Figura 5 – Circuito lógico para o contador Johnson de quatro bits usando FF datum
D3 = Q2
D2 = Q1
D1 = Q0
D0 = /Q3
Q0 Q1 Q2 Q3
A inversão no bit Q3 é a raiz do efeito Johnson. Considerando que todos os bits “Q” iniciam
com valor “0”, então a inversão de Q3 leva o valor “1” a Q0. Este valor “1” é deslocado sucessiva-
mente até a posição Q3, quando, finalmente, sofre uma nova inversão e transforma-se em “0”. O
entendimento deste funcionamento permite que este circuito seja expandido para tantos bits
quanto se queira.
+V
Q0 Q1 Q2 Q3 Q4
S S S S S
D Q D Q D Q D Q D Q
_ _ _ _ _
CP Q CP Q CP Q CP Q CP Q
R R R R R
CLK
Unidade 6
Registradores
Em outras palavras, um registrador seria um tipo particular de memória onde haveria, so-
mente, um único endereço. Há dois tipos de registradores:
Registrador paralelo
Registrador série
Quando a palavra “registrador” é usada, sem a especificação sobre o tipo, pressupõe-se tra-
tar-se do registrador paralelo, que é o tipo mais usado.
A função do registrador é a de exercer o armazenamento de uma – e apenas uma – palavra
binária. A unidade de registro é o flip-flop. Há dois tipos de registradores:
Registrador datum
Registrador JK
O registrador datum é melhor do que o registrador JK sob todas as análises. A única justifi-
cativa para o uso do registrador JK é a situação onde o layout do circuito integrado é projetado para
fazer uso de flip-flops todos iguais, do tipo JK.
write CE WE
n-bit
in out
REG
Figura 1 – Símbolo do registrador
4321
5V
+V
output
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q 4321
R R R R
write
/clear
input
4321
5V
+V
output
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q 4321
R R R R
write
WE
4321
5V
+V
output
S S S S
J Q J Q J Q J Q
CP _ CP _ CP _ CP _
K Q K Q K Q K Q 4321
R R R R
write
input output
4321 4321
4076
IN D D3 Q3
D2 Q2
IN C D1 Q1
D0 Q0
IN B
ED1
IN A ED0
EO1
EO0
write CP
MR
output enable
reset
write enable
5V
+V
mudou
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
write
Todos os circuitos digitais multiplexadores possuem um registrador para cada uma das en-
tradas. Isso garante que a leitura das entradas é feita de maneira síncrona e impede que uma gra-
vação na saída seja feita durante o processo de escrita de uma das entradas.
clk sel CE OE
A REG 2-bit
21 out
B REG MUX
Figura 7 – Multiplexador com entradas registradas
sel CE OE
clk
A 2-bit
21 REG out
B MUX
Figura 8 – Multiplexador com saída registrada
A vantagem da comunicação paralela é o fato de que todos os bits das palavras são transmi-
tidos simultaneamente; isso oferece uma maior rapidez na comunicação. A desvantagem da comu-
nicação paralela é que, quando as distâncias são grandes, o custo é elevado, pois é necessário um
condutor elétrico para cada bit das palavras binárias.
A vantagem da comunicação serial é o fato de que, a depender do protocolo de comunica-
ção, são necessários, apenas, um ou dois condutores elétricos para a transmissão dos dados. A de-
pender do protocolo, um condutor adicional pode ser necessário pode ser usado para a sincronia.
A desvantagem da comunicação serial é que é necessário usar um protocolo de comunicação e isso
torna o circuito muito mais complexo.
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
clock
CP1 Q1
CP2 Q2
pause
serial in
pause
Figura 2 – Registrador serial de quatro bits integrado
serial in
5V
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
clock
CP1 Q1
CP2 Q2
pause
parallel out
serial in
4321
4015
D 1/2 Q3
clock CP Q2
CP1 Q1 Q1
CP2 Q2 MR Q0
pause
Figura 4 – Registrador serial de quatro bits integrado com saída paralela
4321
serial in
5V
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q 4321
R R R R
clock
CP1 Q1
CP2 Q2
pause
Um contador assíncrono pode ser usado para identificar a quantidade de bits seriais recebi-
dos. Este contador pode ser usado para interromper a leitura de bits seriais. Esta interrupção pode
ser usada para sinalizar a disponibilidade de uma palavra binária comleta na saída, apta para ser lida
por algum outro dispositivo.
input monitor
4321
serial in
5V
+V
output monitor
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q 4321
R R R R
clock
CP1 Q1
CP2 Q2
counter monitor
4321
S S
D Q D Q
_ _
CP Q CP Q
R R
restart
parallel out
serial in
4321
4015
clock D 1/2 Q3
CP Q2
CP1 Q1 Q1
CP2 Q2 MR Q0
4321
4518
1/2
CP0 Q3
CP1 Q2
Q1
restart MR Q0
5V
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
clock
CP1 Q1
CP2 Q2
pause
Considerando que todos os flip-flops iniciam com Q=0, então o circuito da figura 1 perma-
nece estático. Todas as saídas Q permanecem com valor zero. Uma possível solução para esse pro-
blema seria usar a saída para promover os comandos set/reset no primeiro flip-flop. Isso pode ser
feito transformando o flip-flop datum em um flip-flop RS por meio das entradas assíncronas – pre-
set/clear. O problema desta opção é o fato de que estas entradas assíncronas geram um descom-
passo na contagem Johnson.
5V
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
clock
CP1 Q1
CP2 Q2
pause
0
1
14 2
13 3
3
12 4
10 6
9 8
Figura 3 – Diagrama de estados estáveis finitos completo para o contador Johnson de quatro bits
D3 = max{1,3,7,15} + X{2,4,5,6,9,10,11,13}
D3 = min{0,8,12,14} + X{2,4,5,6,9,10,11,13}
D3
10
32 00 01 11 10
00 1 0 0 X
01 X X 0 X
11 1 X 0 1
10 1 X X X
Tabela 1 – Definição da função de entrada
D3 = /Q0
5V
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
clock
CP1 Q1
CP2 Q2
pause
Caso não exista acesso às funções “/Q”, é possível usar uma porta NOT.
D0 Q0
D1 Q1
D2 Q2
D3 Q3
CP
CP1 Q1
CP2 Q2
Embora faça mais sentido usar o primeiro flip-flop, localizado à esquerda, como sendo o mais
significativo, o contador Johnson torna-se mais intuitivo quando este bit é tomado como sendo o
menos significativo, pois ele é o primeiro a sofrer uma inversão.
+V
S S
D Q D Q
_ _
CP Q CP Q
R R
Q0
clock Q1
CP1 Q1
CP2 Q2
+V
S S S
D Q D Q D Q
_ _ _
CP Q CP Q CP Q
R R R
Q0
clock Q1
CP1 Q1 Q2
CP2 Q2
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
Q0
Q1
clock Q2
CP1 Q1 Q3
CP2 Q2
+V
S S S S S
D Q D Q D Q D Q D Q
_ _ _ _ _
CP Q CP Q CP Q CP Q CP Q
R R R R R
Q0
Q1
Q2
Q3
clock Q4
CP1 Q1
CP2 Q2
+V
S S S S S S
D Q D Q D Q D Q D Q D Q
_ _ _ _ _ _
CP Q CP Q CP Q CP Q CP Q CP Q
R R R R R R
Q0
Q1
Q2
Q3
clock Q4
CP1 Q1 Q5
CP2 Q2
+V
S S S
J Q J Q J Q
CP _ CP _ CP _
K Q K Q K Q
R R R
Q0
clock Q1
CP1 Q1 Q2
CP2 Q2
start
+V
S S S S S S
D Q D Q D Q D Q D Q D Q
_ _ _ _ _ _
CP Q CP Q CP Q CP Q CP Q CP Q
R R R R R R
Q0
Q1
Q2
Q3
clock Q4
CP1 Q1 Q5
CP2 Q2
É desejável converter a iniciação manual em uma iniciação automática. Esta iniciação auto-
mática precisa levar em conta o tipo de comando assíncrono dos flip-flops. Se os comandos pre-
set/clear são ativos em nível baixo, então a função lógica desta ativação é dada por um maxtermo.
Esse maxtermo precisa apontar para a posição “zero”, pois é nela que o comando “start” precisa ser
disparado.
Start = max{0}
Start = Q5 + Q4 + Q3 + Q2 + Q1 + Q0
+V
S S S S S S
D Q D Q D Q D Q D Q D Q
_ _ _ _ _ _
CP Q CP Q CP Q CP Q CP Q CP Q
R R R R R R
Q0
Q1
Q2
Q3
clock Q4
CP1 Q1 Q5
CP2 Q2
+V
S S S S S S
D Q D Q D Q D Q D Q D Q
_ _ _ _ _ _
CP Q CP Q CP Q CP Q CP Q CP Q
R R R R R R
Q0
Q1
Q2
Q3
clock Q4
CP1 Q1 Q5
CP2 Q2
+V
S S S
D Q D Q D Q
_ _ _
CP Q CP Q CP Q
R R R
Q0
Q1
clock Q2
CP1 Q1
CP2 Q2
+V
S S S S
D Q D Q D Q D Q
_ _ _ _
CP Q CP Q CP Q CP Q
R R R R
Q0
Q1
clock Q2
CP1 Q1 Q3
CP2 Q2
+V
S S S S S
D Q D Q D Q D Q D Q
_ _ _ _ _
CP Q CP Q CP Q CP Q CP Q
R R R R R
Q0
Q1
Q2
clock Q3
CP1 Q1 Q4
CP2 Q2
+V
S S S S S S
D Q D Q D Q D Q D Q D Q
_ _ _ _ _ _
CP Q CP Q CP Q CP Q CP Q CP Q
R R R R R R
Q0
Q1
Q2
Q3
clock Q4
CP1 Q1 Q5
CP2 Q2
A saída do primeiro flip-flop é a única diferença entre o contador Anel e o contador Johnson.
Uma simples comutação nesta saída é suficiente para promover a transformação de um contador
no outro contador. Uma porta XOR pode ser usada na função de seletor entre as funções NOT e YES.
A comutação não pode ser feita no decorrer de uma contagem. É preciso, primeiro, reiniciar o con-
tador.
+V
S S S S S S
D Q D Q D Q D Q D Q D Q
_ _ _ _ _ _
CP Q CP Q CP Q CP Q CP Q CP Q
R R R R R R
reset
Q0
Anel - /Johnson Q1
Q2
Q3
clock Q4
CP1 Q1 Q5
CP2 Q2