Você está na página 1de 396

Sistemas digitais – 30/01/2021

Sistemas digitais

Campus Alto Paraopeba

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 1
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


2 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Í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 2 – Álgebra booleana


1. Existência e unicidade 91
2. Forma canônica 97
3. Operações lógicas 105
4. Definição de funções lógicas 113
5. Irrelevâncias na forma canônica 121
6. Mapa de Karnaugh 125
7. Mapa de Karnaugh de vários IPEs 131
8. Irrelevância em Mapa de Karnaugh 135
9. Mapa de Karnaugh sem spikes 139
10. Minimização de funções múltiplas 147
11. Mapa de Karnaugh de cinco variáveis 159
12. Minimização algébrica 169
13. Conversores de código 173
14. Análise reversa 181

Unidade 3 – Circuitos lógicos


1. Portas lógicas 187
2. Decodificadores 199
3. Codificadores 211
4. Multiplexadores 217
5. Demultiplexadores 229
6. Comutadores e roteadores 235
7. Conversores de código 243
8. Decodificadores personalizados 249

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 3
Sistemas digitais – 30/01/2021

Unidade 4 – Lógica seqüencial


1. Introdução 255
2. Flip Flop RS 261
3. Flip Flop Datum 265
4. Flip Flop Datum master slave 269
5. Toggle Datum 277
6. Máquina de estados estáveis finitos 281
7. MEEF´s com uma entrada 287
8. MEEF´s com várias entradas 295
9. Contador assíncrono Datum 299
10. Contador síncrono Datum 303
11. Contador com desvio assíncrono 309
12. Contador com pulo assíncrono 315
13. Contador codificado 319

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

Prof. Marco Aurélio Seluque Fregonezi


4 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Unidade 1
Aritmética binária

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 5
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


6 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 01 – Origem da álgebra booleana


Não é possível construir uma ampla compreensão a respeito dos circuitos digitais modernos
sem que se garanta, primeiramente, uma aprofundada compreensão acerca dos sistemas analógi-
cos. Isto, apesar de necessário, não é suficiente haja vista que os sistemas digitais são uma aplicação
física (usando os postulados pertinentes aos circuitos analógicos) da lógica booleana e de suas ex-
pansões, como a lógica multi-valores (MVL) e a lógica nebulosa.
Ao falar em lógica, precisamos fazer a distinção entre a lógica filosófica e a lógica matemá-
tica. Se, por um lado, não existe a menor dúvida de que a lógica filosófica representa a gênese de
toda a teoria a respeito dos sistemas digitais, e, por isso, seria, digamos, mais importante do que a
outra, por outro lado também não existe a menor dúvida de que a lógica matemática, por trabalhar
com números, permite que os conceitos da lógica filosófica sejam aplicados aos sistemas físicos, e,
mesmo quando tal aplicação está restrita à matemática teórica, ainda assim o uso de números per-
mite a expansão da quantidade de variáreis do sistema a um nível inexequível quando na análise
puramente filosófica.
Ao falar em lógica filosófica, criamos um limite que define o escopo de um setor da filosofia
humana. A lógica filosófica – ou filosofia lógica – aborda a maneira como o cérebro humano ordena
as informações, as associações, as conclusões e as dúvidas a fim de chegar às melhores tomadas de
decisão possíveis. A capacidade de efetuar operações lógicas durante o pensamento racional é um
dos elementos que distinguem o ser humano das outras criaturas pensantes. Embora acreditemos
que animais sejam capazes de contar números associados a quantidades, também sabemos que
eles não podem efetuar operações lógicas de maneira consciente, como por exemplo, a conjunção
e a disjunção. Se nós, humanos, estamos enganados a respeito desta conclusão, como acreditam
algumas pessoas, então é certo que os animais estão escondendo muito bem esta realidade, tor-
nando-a imperceptível a nossos olhos, haja vista que eles não produziram nenhuma evidência ex-
plícita a respeito desta realidade que não tenha sido fruto de um condicionamento comportamental
induzido previamente por meio de algum treinador humano.
O pensamento lógico surgiu no exato momento em que o homem se tornou um ser racional,
seja por meio da teoria criacionista, seja por meio da teoria evolucionista, seja por meio de qualquer
outra teoria que venha a ser considerada. O fato, porém, de possuir um pensamento lógico, não
significa que o homem tenha consciência deste pensamento; aliás, sabemos que bebês e crianças
possuem um pensamento extremamente lógico, ao contrário das teorias que afirmam que pessoas
nestas idades tenham um pensamento puramente emocional ou instintivo. Isso, porém, não signi-
fica que as crianças tenham consciência desta realidade.
Também é possível que pessoas sábias, maduras e inteligentes consigam aplicar os princípios
da lógica filosófica com excelência sem que tais pessoas tenham, jamais, frequentado o ambiente
escolar. Isto era muito comum em um passado onde a educação estava baseada em uma “Cultura
Oral e Simbólica” que durou hegemonicamente até o surgimento da imprensa em 1439. Este seria
o caso de um pensamento lógico construído com base na observação e na experimentação ao longo
de uma longa vida. O efeito coletivo deste pensamento daria origem àquilo que chamamos de “sa-
bedoria popular”. Mesmo assim, tais pessoas sábias, não tem consciência da existência do pensa-
mento lógico, embora elas saibam aplica-lo muito bem, melhor até mesmo do que muitos profes-
sores e mestres. A fim de que se tenha consciência deste tipo de pensamento, é preciso ter conhe-
cimento das teorias lógicas, e tal conhecimento, disponível a todos nós, foi construído ao longo dos
milênios de história da civilização.
Embora seja impossível identificar com precisão quando o pensamento lógico recebeu suas
primeiras formalizações teóricas, podemos dizer que a civilização ocidental teria tido, como norte
para o seu pensamento lógico, a filosofia grega. Aliás, este seria um dos três elementos que compõe

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 7
Sistemas digitais – 30/01/2021

o “tripé” de sustentação do pensamento ocidental: A filosofia grega, o direito romano e a ética


cristã.
Dentre os filósofos gregos mais conhecidos, temos Sócrates (469 a.C. - 399 a.C), Platão (427
a.C. - 347 a.C.) e Aristóteles (384 a.C - 322 a.C.). Na época de Sócrates, surgiram os sofistas, pensa-
dores que, com sua sabedoria filosófica, atraiam jovens para suas aulas, naquilo que seria a semente
do que, hoje, chamamos de “sistema privado de ensino”.
Já na idade média, considerada a “idade das trevas” em referência à carestia generalizada
decorrente das constantes invasões externas, mas, também, considerada a “idade das luzes” em
referência ao “culto à sabedoria” promovido pelo estilo de vida monástico, foi criado o sistema de
ensino (ou sistema de pensamento) chamado de “escolástico”, responsável pela caracterização da-
quilo que, hoje, o imaginário popular classifica como “cultura europeia”.
O sistema de ensino escolástico (ou filosofia escolástica) foi usado hegemonicamente em
todas as universidades ocidentais do período medieval. O método escolástico tem suas raízes na
obra intitulada “Suma Teológica” do filósofo e teólogo Tomás de Aquino (1225 – 1274). Nesta oca-
sião aconteceu, pela primeira vez, um diálogo entre o paganismo da filosofia grega e o cristianismo
da cultura monástica, surgindo aquilo que ficou conhecido como “filosofia medieval”, determinando
a forma de pensamento da civilização ocidental nos dias de hoje.
O sistema escolástico consiste em uma “adaptação cristã” de um sistema de ensino desen-
volvido durante a idade antiga depois de Cristo (do ano 1 até 476 d.C. ) e a alta idade média (476
d.C. ao início do século XI) chamado de “Artes Liberais Clássicas”. A palavra “liberal” remete ao fato
de que se tratam de conhecimentos livres de opinião pessoal. O conhecimento humano era dividido
nas “sete artes liberais” agrupados em dois grupos, a saber, o trivium e o quatrivium.

O tivium é constituído por:


 Lógica
 Gramática
 Retórica

O quatrivium é constituído por:


 Aritmética
 Astronomia
 Música
 Geometria

Diferentemente da filosofia, da sociologia, da teologia, das ciências políticas, as sete artes


liberais estão imunes a todo tipo de doutrina. O terceiro item do quatrivium, a música, é puramente
instrumental, sem letra nem mensagens embutidas. Somente após pleno domínio das sete artes
liberais o jovem estudante estaria apto ao ingresso no estudo doutrinal.
Pouco depois da invenção da imprensa, o reformista alemão Martinho Lutero (1483 - 1546)
propôs que a “sabedoria popular”, mantida através da “Cultura Oral e Simbólica”, fosse substituída
por um sistema de ensino “para todos, de frequência obrigatória e mantido pelo Estado”, tese ins-
piradora para o artigo 205 da “Constituição Federal de 1988”, tese esta que colocaria um “ponto
final” no período escolástico. O advento da imprensa e do sistema de ensino estatal obtiveram
enorme vantagem sobre o tradicional método oral – ensinamento de “pai para filho” – no que diz
respeito à difusão do pensamento. Em 1599, como resultado da contra-reforma, foi criado o “mé-
todo pedagógico dos jesuítas”, também chamado de “Ratio Studiorum” ou “Ratio atque Institutio
Studiorum Societatis Iesu”.
Embora o sistema de ensino Escolástico tenha apresentado resultados satisfatórios durante
os séculos de sua aplicação no continente europeu, (século XIII ao XV), embora existam evidências
Prof. Marco Aurélio Seluque Fregonezi
8 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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.

Prof. Marco Aurélio Seluque Fregonezi


10 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 02 – Sistemas de numeração


Quando se fala em números, estamos falando da representação da expressão de uma quan-
tidade. Não é possível imaginar grandezas quantitativas sem que se faça uso de algum sistema de
numeração. A capacidade de uso destes sistemas talvez seja um diferencial entre a capacidade ra-
cional humana e as respostas instintivas dadas por animais.
O processo de quantização pode ser feito por meio de símbolos – ou signos – da mesma
forma que a sinalização de sons orais e nasais também são representados por símbolos. Símbolos
são a representação gráfica de uma idéia abstrata. Letras são os símbolos usados na definição de
pronúncia. Numerais são símbolos usados na definição de números. Da mesma forma como, nos
idiomas ocidentais, as sílabas consistem de uma, dois, três ou quatro letras agrupadas de modo que
a enorme quantidade de sons possíveis seja representada por meio de uma quantidade pequena de
letras, igualmente a representação numérica pode implicar no uso de um ou de vários numerais. A
quantidade de símbolos usados na numeração é chamada de “base de numeração” ou simples-
mente “base”. A base mais adotada hoje, no mundo, é a decimal, pelo único motivo de que temos
dez dedos nas mãos.

0 1 2 3 4
5 6 7 8 9
Tabela 1 – Os dez signos usados no sistema decimal.

O grupamento de numerais formando um número implica numa sequência ordenada na qual


os numerais à esquerda possuem maior significância – ou ordem de grandeza – do que os numerais
à direita. Uma posição ordenada e definida dentro de um conjunto de numerais, formando um nú-
mero, é chamada de “casa”. No sistema decimal, temos as “casas decimais”. A grandeza de uma
casa determina a sua relevância na determinação da quantidade expressa pelo número.

 Casa da extrema esquerda: a mais significativa de todas.


 Casa da extrema direita: a menos significativa de todas.
 Casas centrais: significância intermediária.

A grandeza é definida por meio de potências na base adotada. A progressão de potências


nos dígitos inteiros pode ser aplicada para qualquer base.

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 11
Sistemas digitais – 30/01/2021

27=128 26=64 25=32 24=16


23=8 22=4 21=2 20=1
Tabela 3 – Potências de dois.

37=2187 36=729 35=243 34=81


33=27 32=9 31=3 30=1
Tabela 4 – Potências de três.

47=16384 46=4096 45=1024 44=256


43=64 42=16 41=4 40=1
Tabela 5 – Potências de quarto.

107=10000000 106=1000000 105=100000 104=10000


103=1000 102=100 101=10 100=1
Tabela 6 – Potências de dez.

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.

Prof. Marco Aurélio Seluque Fregonezi


12 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Um grupo de quatro bits é chamado de nibble, e corresponde a um signo hexadecimal. Um


grupo de oito bits, ou quatro nibbles, é chamado de byte e corresponde a um signo do código ASCII
estendido - American Standard Code for Information Interchange.

Dois bits especiais merecem destaque:


 MSb – Most Significant bit – O bit mais significativo – Na extrema esquerda.
 LSb – Least Significant bit – O bit menos significativo – Na extrema direita.

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 13
Sistemas digitais – 30/01/2021

Exemplo 1: x=0110b (4 bits)


x = (023) + (122) + (121) + (020)
x = (08) + (14) + (12) + (01)
x=0+4+2+0
x = 6d

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.

Exemplo 2: x=11b (2 bits)


x = (121) + (120)
x = (12) + (11)
x=2+1
x = 3d

Exemplo 3: x=1101b (4 bits)


x = (123) + (122) + (021) + (120)
x = (18) + (14) + (02) + (11)
x=8+4+0+1
x = 13d

Exemplo 4: x=1010_1111b (8 bits)


x = (127) + (026) + (125) + (024) + (123) + (122) + (121) + (120)
x = (1128) + (064) + (132) + (016) + (18) + (14) + (12) + (11)
x = 128 + 0 + 32 + 0 + 8 + 4 + 2 + 1
x = 175d

Exemplo 5: x=0100_0110_1000b (12 bits)


x = (0211)+(1210)+(029)+(028)+(027)+(126)+(125)+(024)+(123)+(022)+(021)+(020)
x = 210 + 26 + 25 + 23
x = 1024 + 64 + 32 + 8
x = 1128d

Exemplo 6: x=2011203 ternário


x = (23 ) + (03 ) + (13 ) + (132) + (231) + (030)
5 4 3

x = (2243) + (081) + (127) + (19) + (23) + (01)


x = 486 + 0 + 27 + 9 + 6 + 0
x = 528d

Prof. Marco Aurélio Seluque Fregonezi


14 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 7: x=1021334 quaternário


x = (14 ) + (04 ) + (24 ) + (142) + (341) + (340)
5 4 3

x = (11024) + (0256) + (264) + (116) + (34) + (31)


x = 1024 + 0 + 128 + 16 + 12 + 3
x = 1183d

Exemplo 8: x=2084437d decimal


x = (2106) + (0105) + (8104) + (4103) + (4102) + (3101) + (7100)
x = (21000000) + (0100000) + (810000) + (41000) + (4100) + (310) + (71)
x = 2000000 + 000000 + 80000 + 4000 + 400 + 30 + 7
x = 2084437d

Exemplo 9: x=58C3Ah hexadecimal


Ch = 12d
Ah = 10d
x = (5164) + (8163) + (12162) + (3161) + (10160)
x = (565536) + (8 4096) + (12256) + (316) + (101)
x = 327680 + 32768 + 3072 + 48 + 10
x = 363578d

Exemplo 10: x=1563A212


A12 = 10d
x = (1125) + (5124) + (6123) + (3122) + (10121) + (2120)
x = (1248832) + (520736) + (61728) + (3144) + (1012) + (21)
x = 248832 + 103680 + 10368 + 432 + 120 + 2
x = 363434d

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.

Exemplo 11: x=94d para binário

Método das divisões sucessivas (modo 1)


0,02  0b determinação do resto que gera um bit 0b – resto = 0/2
0,52  1b determinação do resto que gera um bit 1b – resto = 1/2
94÷2 = 47,0  x´ = 0b
47÷2 = 23,5  x´ = 10b
23÷2 = 11,5  x´ = 110b
11÷2 = 5,5  x´ = 1110b
5÷2 = 2,5  x´ = 11110b

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 15
Sistemas digitais – 30/01/2021

2÷2 = 1,0  x´ = 011110b


1÷2 = 0,5 x = 1011110b

Método das divisões sucessivas (modo 2):


94÷2 = 47  resto = 0  x´ = 0b
47÷2 = 23  resto = 1  x´ = 10b
23÷2 = 11  resto = 1  x´ = 110b
11÷2 = 5  resto = 1  x´ = 1110b
5÷2 = 2  resto = 1  x´ = 11110b
2÷2 = 1  resto = 0  x´ = 011110b
1÷2 = 0  resto = 1  x = 1011110b

Método da determinação das parcelas


Qual é a maior potência de dois que cabe dentro de 94? Resposta: 64
64<94<128
26<94<27  sete bits
9426 (64)? Sim  x´ = 1b ; 94-64 = 30
302 (32)? Não  x´ = 10b
5

3024 (16)? Sim  x´ = 101b ; 30-16 = 14


1423 (8)? Sim  x´ = 1011b ; 14-8 = 6
2
62 (4)? Sim  x´ = 10111b ; 6-4=2
1
22 (2)? Sim  x´ = 101111b ; 2-2=0
0
02 (1)? Não  x = 1011110b

Exemplo 12: x=94d para base 3

Método das divisões sucessivas (modo 1)


0,03  03 determinação do resto que gera um bit 0b – resto = 0/3
0,33  13 determinação do resto que gera um bit 1b – resto = 1/3
0,73  23 determinação do resto que gera um bit 2b – resto = 2/3
94÷3 = 31,3  x´ = 13
31÷3 = 10,3  x´ = 113
10÷3 = 3,3  x´ = 1113
3÷3 = 1,0  x´ = 01113
1÷3 = 0,3  x = 101113

Método das divisões sucessivas (modo 2):


94÷3 = 31  resto = 1  x´ = 13
31÷3 = 10  resto = 1  x´ = 113
10÷3 = 3  resto = 1  x´ = 1113
3÷3 = 1  resto = 0  x´ = 01113
1÷3 = 0  resto = 1  x = 101113

Método da determinação das parcelas


81<94<243
34<94<35  cinco bits
9434 (81)? Sim  x´ = 13 ; 94-81 = 13

Prof. Marco Aurélio Seluque Fregonezi


16 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

1333 (27)? Não  x´ = 103


1332 (9)? Sim  x´ = 1013 ; 13-9 = 4
431 (3)? Sim  x´ = 10113 ; 4-3 = 1
130 (1)? Sim x = 101113 ; 1-1=0

Exemplo 13: x=528d para base 3

Método das divisões sucessivas (modo 1)


0,03  03 determinação do resto que gera um bit 0b – resto = 0/3
0,33  13 determinação do resto que gera um bit 1b – resto = 1/3
0,73  23 determinação do resto que gera um bit 2b – resto = 2/3
528÷3 = 176  x´ = 03
176÷3 = 58,7  x´ = 203
58÷3 = 19,3  x´ = 1203
19÷3 = 6,3  x´ = 11203
6÷3 = 2  x´ = 011203
2÷3 = 0,7  x = 2011203

Método das divisões sucessivas (modo 2):


528÷3 = 176  resto = 0  x´ = 03
176÷3 = 58  resto = 2  x´ = 203
58÷3 = 19  resto = 1  x´ = 1203
19÷3 = 6  resto = 1  x´ = 11203
6÷3 = 2  resto = 0  x´ = 011203
2÷3 = 0  resto = 2  x = 2011203

Método da determinação das parcelas (modo 1)


243<528<729
35<528<36  seis bits
52835 (243)? Sim  x´ = 13 ; 528-243 = 285
2853 (243)? Sim  x´ = 23
5
; 285-243 = 42
4234 (81)? Não  x´ = 203
4233 (27)? Sim  x´ = 2013 ; 42-27 = 15
2
153 (9)? Sim  x´ = 20113 ; 15-9 = 6
1
63 (3)? Sim  x´ = 201113 ; 6-3 = 3
1
33 (3)? Sim  x´ = 201123 ; 3-3 = 0
0
03 (1)? Não  x = 2011203

Método da determinação das parcelas (modo 2)


243<528<729
35<528<36  seis bits
52835 (243)? Sim, duas vezes  x´ = 23 ; 528-486 = 42
4234 (81)? Não  x´ = 203
3
423 (27)? Sim, uma vez  x´ = 2013 ; 42-27 = 15
2
153 (9)? Sim, uma vez  x´ = 20113 ; 15-9 = 6
631 (3)? Sim, duas vezes  x´ = 201123 ; 6-6 = 0
030 (1)? Não  x = 2011203

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 17
Sistemas digitais – 30/01/2021

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):
28534 (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.

Exemplo 14: x=971d para base 4

Método das divisões sucessivas (modo 1)


0,004  04 determinação do resto que gera um bit 0b – resto = 0/4
0,254  14 determinação do resto que gera um bit 1b – resto = 1/4
0,504  24 determinação do resto que gera um bit 2b – resto = 2/4
0,754  34 determinação do resto que gera um bit 3b – resto = 3/4
971÷4 = 242,75  x´ = 34
242÷4 = 60,5  x´ = 234
60÷4 = 15  x´ = 0234
15÷4 = 3,75  x´ = 30234
3÷4 = 0,75  x = 330234

Método das divisões sucessivas (modo 2):


971÷4 = 242  resto = 3  x´ = 34
242÷4 = 60  resto = 2  x´ = 234
60÷4 = 15  resto = 0  x´ = 0234
15÷4 = 3  resto = 3  x´ = 30234
3÷4 = 0  resto = 3  x = 330234

Método da determinação das parcelas (modo 1)


256<971<1024
44<971<45  cinco bits
97144 (256)? Sim  x´ = 14 ; 971-256 = 715
7154 (256)? Sim  x´ = 24
4
; 715-256 = 459
4594 (256)? Sim  x´ = 34
4
; 459-256 = 203
2034 (64)? Sim  x´ = 314
3
; 203-64 = 139
13943 (64)? Sim  x´ = 324 ; 139-64 = 75
754 3
(64)? Sim  x´ = 334 ; 75-64 = 11
114 2
(16)? Não  x´ = 3304 ;
114 1
(4)? Sim  x´ = 33014 ; 11-4 = 7
741
(4)? Sim  x´ = 33024 ; 7-4 = 3
340 (1)? Sim  x´ = 330214 ; 3-1 = 2
240
(1)? Sim  x´ = 330224 ; 2-1 = 1
140
(1)? Sim  x = 330234 ; 1-1 = 0

Prof. Marco Aurélio Seluque Fregonezi


18 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Método da determinação das parcelas (modo 2)


256<971<1024
44<971<45  cinco bits
97144 (256)? Sim, três vezes  x = 34 ; 971-(3256) = 203
20343 (64)? Sim, três vezes  x = 334 ; 203-(364) = 11
1142 (16)? Sim, zero vezes  x = 3304 ; 11-(016) = 11
1141 (4)? Sim, duas vezes  x = 33024 ; 11-(24) =3
340 (1)? Sim, três vezes  x = 330234 ; 3-(31) =0

Exemplo 15: x=363578d para hexadecimal


363578 ÷16 = 22723,625 ; 0,625 16 = 10  x´ = Ah
22723 ÷16 = 1420,1875 ; 0,1875 16 =3  x´ = 3Ah
1420 ÷16 = 88,75 ; 0,75 16 = 12  x´ = C3Ah
88 ÷16 = 5,5 ; 0,5 16 =8  x´ = 8C3Ah
5 ÷16 = 0,5 ; 0,5 16 =5  x = 58C3Ah

Exemplo 16: x=363434d para base doze


363434 ÷12  30286,17 ; 0,17 12 2  x´ = 2h
30286 ÷12  2523,83 ; 0,83 12  10  x´ = A2h
2523 ÷12  210,25 ; 0,25 12 3  x´ = 3A2h
210 ÷12  17,5 ; 0,5 12 6  x´ = 63A2h
17 ÷12  1,42 ; 0,42 12 5  x´ = 563A2h
1 ÷12  0,08 ; 0,08 12 1  x = 1563A212

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 19
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


20 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 03 – Números fracionários


A progressão de potências dos dígitos inteiros apresentada no capítulo anterior pode ser
expandida para os dígitos fracionários por meio do uso de potências negativas.

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.

27=128 26=64 25=32 24=16


23=8 22=4 21=2 20=1
2-1=0,5 2-2=0,25 2-3=0,125 2-4=0,0625
2-5=0,03125 2-6=0,015625 2-7=0,0078125 2-8=0,00390625
Tabela 2 – Potências de dois

Estes valores podem ser representados por meio de frações parciais.

2-1=1/21 2-2=1/22 2-3=1/23 2-4=1/24


2-5=1/25 2-6=1/26 2-7=1/27 2-8=1/28
Tabela 3 – Frações parciais de dois

3-1=1/31 3-2=1/32 3-3=1/33 3-4=1/34


3-5=1/35 3-6=1/36 3-7=1/37 3-8=1/38
Tabela 4 – Frações parciais de três

n-1=1/n1 n-2=1/n2 n-3=1/n3 n-4=1/n4


n-5=1/n5 n-6=1/n6 n-7=1/n7 n-8=1/n8
Tabela 5 – Frações parciais da base “n”

2-1=1/2 2-2=1/4 2-3=1/8 2-4=1/16


2-5=1/32 2-6=1/64 2-7=1/128 2-8=1/256
Tabela 6 – Frações parciais de dois

3-1=1/3 3-2=1/9 3-3=1/27 3-4=1/81


3-5=1/243 3-6=1/729 3-7=1/2187 3-8=1/6561
Tabela 7 – Frações parciais de três

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 21
Sistemas digitais – 30/01/2021

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 = (12-1) + (02-2) + (12-3)
x = [(12-1) + (02-2) + (12-3)]  1
x = [(12-1) + (02-2) + (12-3)]  (23/23)
x = [(2312-1) + (2302-2) + (2312-3)] /23
x = [(122) + (021) + (120)] /23
x = (4 + 0 + 1)/8
x = 5/8
x = 0,625d
Outra forma:
x = (12-1) + (02-2) + (12-3)
x = (10,5) + (00,25) + (10,125)
x = 0,625d

Exemplo 2: Converter para decimal x = 101,10b


x = (122) + (021) + (120) + (12-1) + (02-2)
x = (14) + (02) + (11) + (1/2) + (0/4)
x = (16/4) + (0/4) + (4/4) + (2/4) + (0/4)
x = (16 + 0 + 4 + 2 + 0)/4
x = 22/4
x = 11/2
x = 5,5d

Exemplo 3: Converter para decimal x = 0011011,01101b


x = (026) + (025) + (124) + (123) + (022) + (121) + (120) + (02-1) + (12-2) + (12-3) +
+ (02-4) + (12-5)
x = 24 + 23 + 21 + 20 + 2-2 + 2-3 + 2-5
x = 16 + 8 + 2 + 1 + 1/4 + 1/8 + 1/32
x = [(3216) + (328) + (322) + (321) + (321/4) + (321/8) + (321/32)] / 32
x = (512 + 256 + 64 + 32 + 8 + 4 + 1) / 32
x = 477 / 32
x = 27,40625d

Outra forma:
Prof. Marco Aurélio Seluque Fregonezi
22 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

x = (026) + (025) + (124) + (123) + (022) + (121) + (120) + (02-1) + (12-2) + (12-3) +
+ (02-4) + (12-5)
x = 24 + 23 + 21 + 20 + 2-2 + 2-3 + 2-5
x = [(2524) + (2523) + (2521) + (2520) + (252-2) + (252-3) + (252-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

Exemplo 4: Converter para decimal x = 0,1023


x = (13-1) + (03-2) + (23-3)
x = [(3313-1) + (3303-2) + (3323-3)] / 33
x = [(321) + (310) + (302)] / 33
x = (9 + 0 + 2) / 27
x = 11 / 27  não contém erro de arredondamento
x = 0,407d  contém erro de arredondamento, mas não há propagação de erro

Outra forma:
x = (13-1) + (03-2) + (23-3)
x = (10,333...) + (00,111...) + (20,037...)
x = (10,333...) + (00,111...) + (20,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.

Exemplo 5: Converter para decimal x = 10,14


x = (141) + (04-0) + (14-1)
x = (14) + (01) + (1/4)
x = 4 + 0 + 1/4
x = 16/4 + 0/4 + 4/4
x = (16 + 0 + 1)/4
x = 17/4
x = 4,25d

Exemplo 6: Converter para decimal x = 2,113


x = (23-0) + (13-1) + (23-2)
x = [(33230) + (3313-1) + (3313-2)] / 33
x = [(332) + (321) + (311)] / 33
x = [(272) + (91) + (311)] / 33
x = (54 + 9 + 3) / 27
x = 66 / 27  não contém erro de arredondamento
x = 2,444d  contém erro de arredondamento, mas não há propagação de erro

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

Exemplo 7: Converter para binário x = 0,625d

Método das multiplicações sucessivas


0,6252 = 1,25  x´ = 0,1b ; 1,25-1 = 0,25
0,252 = 0,5  x´ = 0,10b
0,52 = 1,  x´ = 0,101b ; 1-1 = 0
x = 0,101b

Método da determinação das parcelas


0,6252-1 (0,5)? Sim  x´ = 0,1b ; 0,625-0,5 = 0,125
0,1252 (0,25)? Não  x´ = 0,10b
-2

0,1252-3 (0,125)? Sim  x´ = 0,101b ; 0,125-0,125 = 0


x = 0,101b

Exemplo 8: Converter para binário x = 5,5d

Método das divisões sucessivas e multiplicações sucessivas


5÷2 = 2  resto = 1  x´ = 1b
2÷2 = 1  resto = 0  x´ = 10b
1÷2 = 0  resto = 1  x´ = 101b
20,5 = 1  x´ = 101,1b
x = 0,101b

Método da determinação das parcelas


5,522 (4)? Sim  x´ = 1b ; 5,5-4 = 1,5
1
1,52 (2)? Não  x´ = 10b
0
1,52 (1)? Sim  x´ = 101b ; 1,5-1 = 0,5
0,52 (0,5)? Sim  x´ = 101,1b ; 0,5-0,5 = 0
-1

x = 101,1b

Exemplo 9: Converter para binário x = 27,40625d

Método das divisões sucessivas e multiplicações sucessivas


27÷2 = 13  resto = 1  x´ = 1b
13÷2 =6  resto = 1  x´ = 11b
6÷2 =3  resto = 0  x´ = 011b
3÷2 =1  resto = 1  x´ = 1011b
1÷2 =0  resto = 1  x´ = 11011b
20,40625 = 0,8125  x´ = 11011,0b
20,8125 = 1,625  x´ = 11011,01b ; 1,625-1 = 0,625
20,625 = 1,25  x´ = 11011,011b ; 1,25-1 = 0,25
20,25 = 0,5  x´ = 11011,0110b
20, 5 = 1,0  x´ = 11011,01101b ; 1,0-1 = 0
x = 11011,01101b
Método da determinação das parcelas
32<27<16

Prof. Marco Aurélio Seluque Fregonezi


24 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

27,4062524 (16)? Sim  x´ = 1b ; 27,40625-16 = 11,40625


11,4062523 (8)? Sim  x´ = 11b ; 11,40625-8 = 3,40625
3,4062522 (4)? Não  x´ = 110b
3,4062521 (2)? Sim  x´ = 1101b ; 3,40625-2 = 1,40625
1,4062520 (1)? Sim  x´ = 11011b ; 1,40625-1 = 0,40625
0,406252-1 (0,5)? Não  x´ = 11011,0b
0,406252-2 (0,25)? Sim  x´ = 11011,01b ; 0,40625-0,25 = 0,15625
0,156252-3 (0,125)? Sim  x´ = 11011,011b ; 0,15625-0,125 = 0,03125
0,031252-4 (0,0625)? Não  x´ = 11011,0110b
0,031252-5 (0,03125)? Sim  x´ = 11011,01101b ; 0,03125-0,03125 = 0
x = 11011,01101b

Exemplo 10: Converter para binário x = 0,7231d, 5 bits fracionários

Método das multiplicações sucessivas


20,7231 = 1,4462  x´ = 0,1b ; 1,4462-1 = 0,4462
20,4462 = 0,8924  x´ = 0,10b
20,8924 = 1,7848  x´ = 0,101b ; 1,7848-1 = 0,7848
20,7848 = 1,5696  x´ = 0,1011b ; 1,5696-1 = 0,5696
20,5696 = 1,1392  x´ = 0,10111b ; 1,1392-1 = 0,1392
Resto = 0,1392÷25  Resto = 0,00435d
x´ = 0,10111b

Método da determinação das parcelas


0,72312-1 (0,5)? Sim  x´ = 0,1b ; 0,7231-0,5 = 0,2231
-2
0,22312 (0,25)? Não  x´ = 0,10b
0,22312-3 (0,125)? Sim  x´ = 0,101b ; 0,2231-0,125 = 0,0981
-4
0,09812 (0,0625)? Sim  x´ = 0,1011b ; 0,0981-0,0625 = 0,0356
-5
0,03562 (0,03125)? Sim  x´ = 0,10111b ; 0,0356-0,03125 = 0,00435
Resto = 0,00435d
x´ = 0,10111b

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´ = (12-1) + (02-2) + (12-3) + (02-4) + (12-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

Exemplo 11: Converter para ternário x = 0,407d

Método das multiplicações sucessivas


311/27 = 11/9 ; 11/9  1,22  x´ = 0,13 ; 11/9 - 1 = 2/9
32/9 = 2/3 ; 2/3  0,67  x´ = 0,103
32/3 = 2  x´ = 0,1023
x = 0,1023

Método da determinação das parcelas


0,4073-1 (0,333)? Sim  xA = 0,13 ; 0,407-0,333 = 0,074
0,0743-2 (0,111)? Não  xA = 0,103
0,0743-3 (0,037)? Sim  xA = 0,1013 ; 0,074-0,037 = 0,037
0,0373-3 (0,037)? Sim  xA = 0,1023 ; 0,037-0,037 = 0
xA = 0,1023

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.

0,4071/3? ; 1,221/31/3? Sim  xB = 0,13 ; 1,221/3-1/3 = 0,221/3


0,221/31/9? ; 0,663/91/9? Não  xB = 0,103 ;
0,663/91/27? ; 1,989/271/27? Sim  xB = 0,1013 ; 1,989/27-1/27 = 0,989/27
0,989/271/81? ; 2,967/811/81? Sim  xB = 0,1023 ; 2,967-2/81 = 0,967/81
Resto = 0,967/81
xB = 0,10123 aproximado para quatro bits fracionários.

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.

11/279/27? Sim  x´ = 0,13 ; 11/27-9/27= 2/27


2/273/27? Não  x´ = 0,103
2/271/27? Sim, 2x  x´ = 0,1023 ; 2/27-(21/27) = 0
x = 0,1023

Exemplo 12: Converter para ternário x = 0,7231d, 5 bits fracionários


Diferentemente do exemplo anterior, não podemos representar este número por meio de
uma fração. Não podemos aplicar a técnica isenta de erros de aproximação. Neste caso, é preciso
usar os valores obtidos da divisão armazenados na memória da calculadora.

Método das multiplicações sucessivas


30,7231 = 2,1693  x´ = 0,23
30,1693 = 0,5079  x´ = 0,203
30,5079 = 1,5237  x´ = 0,2013
30,5237 = 1,5711  x´ = 0,20113
30,5711 = 1,7133  x´ = 0,201113
1-1,7133 = 0,7133
Prof. Marco Aurélio Seluque Fregonezi
26 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Resto = 0,7133÷35  Resto = 0,7133/243


x´ = 0,201113

Método da determinação das parcelas


(2,1693/3) (1/3)? Sim  x´ = 0,13 ; (2,1693/3)-(1/3) = 1,1693/3
(1,1693/3) (1/3)? Sim  x´ = 0,23 ; (1,1693/3)-(1/3) = 0,1693/3
(0,5079/9) (1/9)? Não  x´ = 0,203 ;
(1,5237/27) (1/27)? Sim  x´ = 0,2013 ; (1,5237/27)-(1/27) = 0,5237/27
(1,5711/81) (1/81)? Sim  x´ = 0,20113 ; (1,5711/81)-(1/81) = 0,5711/81
(1,7133/243) (1/243) Sim  x´ = 0,201113 ; (1,7133/243)-(1/243) = 0,7133/243
Resto = 0,7133/243
x´ = 0,201113

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

Façamos o cálculo contrário a título de verificação:


x´ = 0,201113
x´ = (23-1) + (03-2) + (13-3) + (13-4) + (13-5)
x´ = [(3523-1) + (3503-2) + (3513-3) + (3513-4) + (3513-5)] / 35
x´ = [(342) + (330) + (321) + (311) + (301)] / 35
x´ = [(812) + (270) + (91) + (31) + (11)] / 243
x´ = (162 + 0 + 9 + 3 + 1) / 243
x´ = 175 / 243
x´  0,7201646090534979d
x = x´ + erro
x = (175 / 243) + (0,7133/243)
x = 175,7133 / 243
x = 0,7231d

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 27
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


28 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 04 – Números negativos


O ser humano é o único animal que entende o significado de números negativos, e, mesmo
assim, tal entendimento somente acontece por volta dos seis ou sete anos de vida. Dentro da física,
várias grandezas aceitam valores negativos. Uma bolha é uma massa negativa. Um elétron é uma
carga elétrica negativa. O frio é o calor negativo.

Existem três métodos de representação de números binários negativos:


 Sinal-amplitude
 Complemento de 1
 Complemento de 2

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

0 0 1 1 0(-22) + 0(21) + 1(20)


0 1 0 2 0(-22) + 1(21) + 0(20)
0 1 1 3 0(-22) + 1(21) + 1(20)
1 0 0 -4 1(-22) + 0(21) + 0(20)
1 0 1 -3 1(-22) + 0(21) + 1(20)
1 1 0 -2 1(-22) + 1(21) + 0(20)
1 1 1 -1 1(-22) + 1(21) + 1(20)
Tabela 6 – Esquema para números binários de três bits com sinal

C B A Decimal Cálculo
0 0 0 0 0(-3 ) + 0(31) + 0(30)
2

0 0 1 1 0(-32) + 0(31) + 1(30)


0 0 2 2 0(-32) + 0(31) + 2(30)
0 1 0 3 0(-32) + 1(31) + 0(30)
0 1 1 4 0(-32) + 1(31) + 1(30)
0 1 2 5 0(-32) + 1(31) + 2(30)
0 2 0 6 0(-32) + 2(31) + 0(30)
0 2 1 7 0(-32) + 2(31) + 1(30)
0 2 2 8 0(-32) + 2(31) + 2(30)
1 0 0 -9 1(-32) + 0(31) + 0(30)
1 0 1 -8 1(-32) + 0(31) + 1(30)
1 0 2 -7 1(-32) + 0(31) + 2(30)
1 1 0 -6 1(-32) + 1(31) + 0(30)
1 1 1 -5 1(-32) + 1(31) + 1(30)
1 1 2 -4 1(-32) + 1(31) + 2(30)
1 2 0 -3 1(-32) + 2(31) + 0(30)
1 2 1 -2 1(-32) + 2(31) + 1(30)
1 2 2 -1 1(-32) + 2(31) + 2(30)
Tabela 7 – Esquema para números ternários de três bits com sinal

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

B A Sinal-amplitude Complemento de dois


0 0 0 0
0 1 1 1
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 31
Sistemas digitais – 30/01/2021

1 0 -0 -2
1 1 -1 -1
Tabela 9 – Comparação dos métodos para dois bits com sinal

C B A Sinal-amplitude Complemento de dois


0 0 0 0 0
0 0 1 1 1
0 1 0 2 2
0 1 1 3 3
1 0 0 -0 -4
1 0 1 -1 -3
1 1 0 -2 -2
1 1 1 -3 -1
Tabela 10 – Comparação dos métodos para três bits com sinal

D C B A Sinal-amplitude Complemento de dois


0 0 0 0 0 0
0 0 0 1 1 1
0 0 1 0 2 2
0 0 1 1 3 3
0 1 0 0 4 4
0 1 0 1 5 5
0 1 1 0 6 6
0 1 1 1 7 7
1 0 0 0 -0 -8
1 0 0 1 -1 -7
1 0 1 0 -2 -6
1 0 1 1 -3 -5
1 1 0 0 -4 -4
1 1 0 1 -5 -3
1 1 1 0 -6 -2
1 1 1 1 -7 -1
Tabela 11 – Comparação dos métodos para quatro bits com sinal

O método de sinal-amplitude apresenta duplicidade na representação do número zero, in-


dicando que existe a perda de uma representação numérica. Este problema não existe no método
de complemento de dois, que representa um número diferente para todas as combinações de bits.

Exemplo 1: x = 10110b 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)

Prof. Marco Aurélio Seluque Fregonezi


32 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

x = –(1∙16) + (0∙8) + (1∙4) + (1∙2) + (0∙1)


x = –16 + 0 + 4 + 2 + 0
x = -10d

Método 3:
/x = 01001b
/x + 1 = 01010b
|x| = 10d  x = -10d

Exemplo 2: x = 110011b com sinal

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

Exemplo 3: x = 1110101b com sinal

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

Exemplo 4: x = 10000101111011b com sinal


Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 33
Sistemas digitais – 30/01/2021

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

Exemplo 5: x = 121103 com sinal

Método 1:
A quantidade total de bits é 5; a quantidade de bits de magnitude é 4.
34 = 81
21103 = (233) + (132) + (131) + (030)
21103 = (227) + (19) + (131) + (030)
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

Exemplo 6: x = 12134 com sinal

Método 1:
A quantidade total de bits é 4; a quantidade de bits de magnitude é 3.
43 = 64
2134 = (242) + (141) + (340)
2134 = (216) + (14) + (31)
2134 = 32 + 4 + 3
2134 = 39d
x = 39 – 64 ; x = -25d

Prof. Marco Aurélio Seluque Fregonezi


34 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Exemplo 7: x = 13Fh com sinal (PIC 8 bits)

Método 1:
A quantidade total de bits é 9; a quantidade de bytes de magnitude é 2.
162 = 256
3Fh = (3161) + (15160)
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

Exemplo 8: x = -9d, 5 bits


A quantidade de bits de magnitude é 4; a quantidade total de bits é 4+1=5.
24 = 16
x´ = 16 - 9 ; x´ = 11d
11 = 1011b
x = 11011b

Exemplo 9: x = -9d, 6 bits


A quantidade de bits de magnitude é 5; a quantidade total de bits é 5+1=6.
25 = 32
x´ = 32 - 9 ; x´ = 23d
23 = 10111b
x = 110111b

Exemplo 10: x = -9d, 7 bits


A quantidade de bits de magnitude é 6; a quantidade total de bits é 6+1=7.
26 = 64
x´ = 64 - 9 ; x´ = 55d
55 = 110111b
x = 1110111b

Exemplo 11: x = -47d, 8 bits


A quantidade de bits de magnitude é 7; a quantidade total de bits é 7+1=8.
27 = 128
x´ = 128 - 47 ; x´ = 81d
81 = 1010001b
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 35
Sistemas digitais – 30/01/2021

x = 11010001b

Exemplo 12: x = -25d, 9 bits


A quantidade de bits de magnitude é 8; a quantidade total de bits é 8+1=9.
28 = 256
x´ = 256 - 23 ; x´ = 233d
233 = 11101001b
x = 111101001b

Exemplo 13: x = -200d, 9 bits


A quantidade total de bits é 9; a quantidade de bits de magnitude é 8.
28 = 256
x´ = 256 - 200 ; x´ = 56d
56 = 00111000b
x = 100111000b

Exemplo 14: x = -47d


4 bits ternários de amplitude e 1 bit de sinal
O quinto bit, o sinal, é de ordem 4.
34 = 81
x´ = 81 - 47 ; x´ = 34d
34 = 10213
x = 110213

Exemplo 15: x = -53d


6 bits quaternários de amplitude e 1 bit de sinal
O sexto bit, o sinal, é de ordem 5.
45 = 1024
x´ = 1024 - 53 ; x´ = 971d
971 = 330234
x = 1330234

Exemplo 16: x = -100d com sinal (PIC 8 bits)


A quantidade total de bits é 9; a quantidade de bytes de magnitude é 8.
O nono bit, o sinal, é de ordem 8.
28 = 256
x´ = 256 - 100 ; x´ = 156d
156 = 9Ch
x = 19Ch

Exemplo 17: x = 101,1b com sinal


x =-(122)+(021)+(120)+(12-1)
x =-(14)+(02)+(11)+(10,5)
x =-4+0+1+0,5
x =-2,5d

Prof. Marco Aurélio Seluque Fregonezi


36 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 18: x = -2,5d com sinal, usar a quantidade mínima de bits


Mínima potência de 2 que excede 2,5: 4  22
Três bits para a parte inteira; dois bits de amplitude inteira  x´
x´ = 22 – 2,5 x = 22 + x´
x´ = 4 – 2,5 x = 4 + x´
x´ = 1,5d x = 100,0b + 001,1b
x´ = 01,1b x = 101,1b

Exemplo 19: x = -0,2d com sinal, cinco bits fracionários


Considerando que este número possui, apenas, a parcela fracionária, é necessário que se
defina a localização do bit de sinal. Este bit pode ser qualquer um que esteja localizado à esquerda
dos bits com valor “1”.

Usar a casa zero (20) como sinalização.


x = -(120)+(?2-1)+(?2-2)+...
x = -1+(?2-1)+(?2-2)+...
-0,2 = -1+(?2-1)+(?2-2)+...
y = 1+x  y = 1-0,2  y = 0,8
0,8 = (?2 )+(?2-2)+...
-1

2-1 = 0,5 ; y´= 0,1b ; 0,8 - 0,5 = 0,3


2-2 = 0,25 ; y´= 0,11b ; 0,3 - 0,25 = 0,05
-3
2 = 0,125 ; y´= 0,110b ;
2-4 = 0,0625 ; y´= 0,1100b ;
-5
2 = 0,03125 ; y´= 0,11001b ; 0,05 - 0,03125 = 0,01875
x´ = 1+y´  x´ = 1b + 0,11001b  x´ = 1,11001b complemento de 2

Usar a casa zero (21) como sinalização.


x = -(121)+(?20)+(?2-1)+(?2-2)+...
x = -2+(?20)+(?2-1)+(?2-2)+...
-0,2 = -2+(?2-1)+(?2-2)+...
y = 2+x  y = 2-0,2  y = 1,8
1,8 = (?20)+(?2-1)+(?2-2)+...
20 = 1 ; y´= 1b ; 1,8 - 1 = 0,8
-1
2 = 0,5 ; y´= 1,1b ; 0,8 - 0,5 = 0,3
2-2 = 0,25 ; y´= 1,11b ; 0,3 - 0,25 = 0,05
-3
2 = 0,125 ; y´= 1,110b ;
-4
2 = 0,0625 ; y´= 1,1100b ;
2-5 = 0,03125 ; y´= 1,11001b ; 0,05 - 0,03125 = 0,01875
x´ = 2+y´  x´ = 10b + 1,11001b  x´ = 11,11001b complemento de 2

Usar a casa zero (2-1) como sinalização.


x = -(12-1)+(?2-2)+(?2-3)+...
x = -0,5+(?2-2)+(?2-3)+...
-0,2 = -0,5+(?2-2)+(?2-3)+...
y = 0,5+x  y = 0,5-0,2  y = 0,3
-2 -3
0,3 = (?2 )+(?2 )+...
2-2 = 0,25 ; y´= 0,01b ; 0,3 - 0,25 = 0,05
-3
2 = 0,125 ; y´= 0,010b ;
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 37
Sistemas digitais – 30/01/2021

2-4 = 0,0625 ; y´= 0,0100b ;


2-5 = 0,03125 ; y´= 0,01001b ; 0,05 - 0,03125 = 0,01875
x´ = 0,5+y´  x´ = 0,1b + 0,01001b  x´ = 0,11001b complemento de 2

Prof. Marco Aurélio Seluque Fregonezi


38 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 05 – Bases binária, quaternária, octal e hexadecimal


Nos capítulos anteriores, foi apresentada a metodologia de conversão de uma base para
outra de maneira genérica. Algumas bases, no entanto, possuem certas particularidades que per-
mitem uma conversão mais rápida e mais fácil. Esse é o caso, por exemplo, das bases de potências
de dois. As principais seriam a binária, a quaternária, a octal e a hexadecimal.
As conversões entre a base 4 e a base 8 e entre a base 8 e a base 16 não podem ser feitas
diretamente; é preciso fazer, primeiro, a conversão para binário.

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

Base 16 Base 2 Base 4


0 0000 00
1 0001 01
2 0010 02
3 0011 03
4 0100 10
5 0101 11
6 0110 12
7 0111 13
8 1000 20
9 1001 21
A 1010 22
B 1011 23
C 1100 30
D 1101 31
E 1110 32
F 1111 33
Tabela 3 – Conversão entre base 16 e as bases 2 e 4

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 39
Sistemas digitais – 30/01/2021

Exemplo 1: Converter x = 10111b para quaternário


x = 01_01_11b
x = 1134

Exemplo 2: Converter x = 10101011b para octal


x = 10_101_011b
x = 253o

Exemplo 3: Converter x = 10010111011b para hexadecimal


x = 100_1011_1011b
x = 4BBh

Exemplo 4: Converter x = 3320314 para binário


x = 11_11_10_00_11_01b
x = 111110001101b

Exemplo 5: Converter x = 13022114 para hexadecimal


x = 1_30_22_114
x = 1CAh

Exemplo 6: Converter x = 310223214 para octal


x = 11_01_00_10_10_11_10_01b
x = 1_101_001_010_111_001b
x = 151271o

Exemplo 7: Converter x = 36024o para binário


x = 011_101_000_010_100b
x = 011101000010100b

Exemplo 8: Converter x = 135006o para quaternário


x = 001_011_101_000_000_110b
x = 00_10_11_10_10_00_00_01_10b
x = 0232200124

Exemplo 9: Converter x = 3672o para hexadecimal


x = 011_110_111_0108
x = 0111_1011_10104
x = 7BAh

Exemplo 10: Converter x = 1FCh para binário


x = 0001_1111_1100b
x = 000111111100b

Exemplo 11: Converter x = A07Fh para quaternário


x = 1010_0000_0111_1111b
x = 10_10_00_00_01_11_11_11b
x = 220013334
Prof. Marco Aurélio Seluque Fregonezi
40 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 12: Converter x = 3F075h para octal


x = 0011_1111_0000_0111_0101b
x = 00_111_111_000_001_110_1014
x = 07701658

Exemplo 13: x = 75h ; obter y = x2


x = 75h
x = 0111_0101h
y = 0_1110_1010h
y = 0EAh ; caso o formato seja de 9 bits
y = EAh ; caso o formato seja de 8 bits

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 41
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


42 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 06 – Adição aritmética


Números binários permitem a execução das operações de adição, subtração, multiplicação
e divisão. O mesmo acontece com as bases ternária, quaternária, e assim por diante. Estas opera-
ções seguem as mesmas regras qualquer que seja a base adotada. Neste capítulo, será abordada a
operação aritmética da adição.
Os dois elementos de entrada são chamados de “parcelas”. Este nome indica que tais ele-
mentos apontam para os valores parciais do resultado da operação. Parcialidade implica na repre-
sentação de uma parte de um todo. No contexto da lógica argumentativa, imparcialidade significa
o não acolhimento de nenhuma das partes envolvidas na argumentação.
O resultado da operação de adição é chamado de “soma”. Muitos professores de matemá-
tica, de maneira errada, falam em “operação de soma”. Sob o contexto da matemática, não é per-
mitida a soma de três ou mais parcelas diretamente, embora isto possa ser feito de maneira infor-
mal no contexto da engenharia.
No contexto da matemática, qualquer operação pode ser feita com quaisquer números, ex-
ceto o número “zero”. No contexto das engenharias, adição, subtração e comparação podem ser
aplicados somente entre palavras binárias com exatamente a mesma quantidade de bits. Se, mate-
maticamente, a quantidade de bits inteiros não é a mesma entre as parcelas, então “zeros” à es-
querda precisam ser acrescentados a fim de igualar esta quantidade. Se, matematicamente, a quan-
tidade de bits fracionários não é a mesma entre as parcelas, então “zeros” à direita precisam ser
acrescentados. O resultado da adição e da subtração também precisam ter, necessariamente, a
mesma quantidade de bits das palavras de entrada. Multiplicação e divisão podem ser feitas com
números de tamanho de bits diferentes.
No contexto da matemática, é possível efetuar estas operações entre números expressos
em bases diferentes, porém, porém é recomendável que tanto as parcelas como a soma sejam nú-
meros da mesma base.
A operação de adição binária de um bit gera dois bits de saída. Um deles corresponde ao bit
de soma e o outro corresponde ao carregamento para a casa binária à esquerda. Este bit é chamado
de carry, também é chamado de “vai-um”.
O bit carry pode receber, apenas, dois valores: zero ou um, qualquer que seja a base ado-
tada. Na base decimal, a máxima soma de dois dígitos é “18”, o que implica em “carry=1”. Na base
binária, a máxima soma resulta em “10b, “carry=1”. Na base ternária, a máxima soma resulta em
“113, “carry=1”, e assim por diante. Quando se usam três ou mais parcelas, então é possível gerar
um carregamento superior a “1”, porém este caso não é considerado haja vista que o formalismo
matemático não admite esse tipo de operação.
A operação de adição ternária ou superior também gera dois bits de saída. Um deles corres-
ponde ao bit de soma, e este bit é representado na mesma base das parcelas. O outro bit corres-
ponde ao carry, chamado de “vai-um”, e este bit é sempre binário independentemente da base
adotada. Para fim de introdução teórica, será apresentada a adição binária e, posteriormente, a
adição em outras bases. Este procedimento, aplicado à base decima, implica no método clássico de
adição ensinado para as crianças na escola. Na adição decimal, a máxima soma é obtida com 9+9,
cujo resultado é 18, sendo “8” o bit decimal de soma e “1” o bit de carry.
A adição de dois bits precisa levar em consideração o bit de carregamento proveniente da
casa binária à direita. Por esse motivo, há dois tipos de carry:
Carry-out: É o bit enviado à casa binária à esquerda.
Carry-in: É o bit recebido da casa binária à direita.
Para o bit menos significativo, o carry-in vale sempre zero.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 43
Sistemas digitais – 30/01/2021

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.

Parcela 1 Parcela 2 Carry out Soma Decimal


0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 0 2
Tabela 1 – Adição de um bit – LSb

Carry in Parcela 1 Parcela 2 Carry out Soma Decimal


0 0 0 0 0 0
0 0 1 0 1 1
0 1 0 0 1 1
0 1 1 1 0 2
1 0 0 0 1 1
1 0 1 1 0 2
1 1 0 1 0 2
1 1 1 1 1 3
Tabela 2 – Adição de um bit – demais bits

Carry in Parcela 1 Parcela 2 Carry out Soma Decimal


0 0 0 0 0 0
0 0 1 0 1 1
0 0 2 0 2 2
0 1 0 0 1 1
0 1 1 0 2 2
0 1 2 1 0 3
0 2 0 0 2 2
0 2 1 1 0 3
0 2 2 1 1 4
1 0 0 0 1 1
1 0 1 0 2 2
1 0 2 1 0 3
1 1 0 0 2 2
1 1 1 1 0 3
1 1 2 1 1 4
1 2 0 1 0 3
1 2 1 1 1 4
1 2 2 1 2 5
Tabela 3 – Adição de um bit ternário

Prof. Marco Aurélio Seluque Fregonezi


44 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 45
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 47
Sistemas digitais – 30/01/2021

Exemplo 9: A = 2,75d ; B = 1,25


1 1 1
1 0,1 1 2,75
+ 0 1,0 1 1,25
- - - - ----
1 0 0,0 0 4,00

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.

Carry in Parcela 1 Parcela 2 Parcela 3 Carry out Soma Decimal


0 0 0 0 0 0 0
0 0 0 1 0 1 1
0 0 1 0 0 1 1
0 0 1 1 1 0 2
0 1 0 0 0 1 1
0 1 0 1 1 0 2
0 1 1 0 1 0 2
0 1 1 1 1 1 3
1 0 0 0 0 1 1
1 0 0 1 1 0 2
1 0 1 0 1 0 2
1 0 1 1 1 1 3
1 1 0 0 1 0 2
1 1 0 1 1 1 3
1 1 1 0 1 1 3
1 1 1 1 2 0 4
2 0 0 0 1 0 2
2 0 0 1 1 1 3
2 0 1 0 1 1 3
2 0 1 1 2 0 4
2 1 0 0 1 1 3
2 1 0 1 2 0 4
2 1 1 0 2 0 4
2 1 1 1 2 1 5
Tabela 4 – Adição de três parcelas de um bit

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 49
Sistemas digitais – 30/01/2021

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.

Exemplo 13 com carregamento binário:


0 1 0 0
1 0 0 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

Prof. Marco Aurélio Seluque Fregonezi


50 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 07 – Subtração positiva


No capítulo anterior, foi apresentada a operação da adição aritmética binária. A subtração
binária segue as mesmas regras da subtração decimal. A palavra “subtração” significa “tração para
baixo”, “puxamento para baixo”. Em outras palavras, a subtração consiste no processo de diminui-
ção no valor quantitativo representado por um certo número.
Embora o conceito da adição aritmética possa ser extrapolado para três ou mais parcelas, a
operação da subtração aritmética permite, apenas, o uso de dois argumentos:

 Minuendo
 Subtraendo

O primeiro elemento de entrada é chamado de “minuendo” porque é quem sofre a diminui-


ção, é o número que sofre a tração para baixo. O segundo elemento é chamado de “subtraendo”, é
o número que determina a intensidade da diminuição do valor do minuendo. O resultado da opera-
ção de subtração aritmética é chamado de “resto” ou “diferença”.
Subtração positiva é aquela onde o subtraendo é menor ou igual ao minuendo. Neste capí-
tulo, por razões didáticas, será apresentada, somente, a subtração positiva. A subtração negativa
implica na observação da representação de números negativos e é apresentada no capítulo se-
guinte.
Considerando que a operação aritmética de subtração possui, apenas, dois argumentos, mi-
nuendo e subtraendo, é possível desenvolver, apenas, subtrações positivas. No caso onde o minu-
endo é menor do que o subtraendo, é possível inverter a ordem dos argumentos, efetuar a subtra-
ção positiva e, depois, transformar o resultado positivo em negativo. Essa inversão não implica, po-
rém, na troca dos papéis dos dois argumentos, haja vista que minuendo e subtraendo possuem
significados diferentes.
Neste capítulo, os três primeiros exemplos, na sequência, são decimais e precisam ser muito
bem entendido a fim de que se apreenda o entendimento acerca do procedimento de subtração
aritmética binária, que segue exatamente o mesmo procedimento.
Quando se usam o tradicional jargão “vem um” na subtração decimal, este “um” é proveni-
ente da casa decimal à esquerda e implica na soma de uma dezena na casa decimal à direita. Isto se
deve ao fato de que uma unidade em uma casa à direita representa uma dezena na casa à esquerda
por causa da base decimal – “10d”. O empréstimo, então, é de uma unidade do ponto de vista da
casa decimal à esquerda e de uma dezena do ponto de vista da casa decimal à direita.
Seguindo exatamente o mesmo procedimento da subtração decimal, a subtração binária
também faz uso dos empréstimos. Uma unidade em uma casa à direita representa o valor “dois” na
casa à esquerda por causa da base binária – “10b”. Uma unidade em uma casa ternária à direita
representa o valor “três” na casa ternária à esquerda por causa da base ternária – “10b”; e assim
por diante.
Os conceitos apresentados a respeito da subtração decimal e binária podem ser aplicados a
qualquer outra base de numeração.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 51
Sistemas digitais – 30/01/2021

Exemplo 1, decimal: A = 743; B = 421, R = A-B


743
-421
---
322
R= 322

Esta subtração pode ser separada pelos seus dígitos.

700 40 3
-400 -20 -1
--- -- -
300 20 2 300+20+2 = 322

Minuendo Subtra- Resto


endo
Unidades 3 1 2
Dezenas 4 2 2
Centenas 7 4 3
Tabela 1 – Explicação da subtração decimal do exemplo 1

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.

Exemplo 2, decimal: A = 743d; B = 461d, R = A-B


743
-461
---
282
R = 282d

Esta subtração pode ser separada pelos seus dígitos.

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.

40 + 100 = 140  tomada do empréstimo na casa das dezenas


700 – 100 = 600  pagamento do empréstimo na casa das centenas

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.

Borrow in Minuendo Subtraendo Borrow out Resto


Unidades - 3 1 0 2
Dezenas 0 4 6 1 8
Centenas 1 7 4 - 2
Tabela 2 – Explicação da subtração decimal do exemplo 2

resto = minuendo + (borrow out) 10 – borrow in – subtraendo


Unidades: 2 = 3 + (0*10) - 0 – 1
Dezenas: 8 = 4 + (1*10) – 0 – 6
Centenas: 2 = 7 + (0*10) – 1 - 4

1 0
7 4 3
-4 6 1
- - -
2 8 2

Exemplo 3, decimal: A = 743d; B = 668d, R = A-B

743
-668
---
282
R = 282d

Esta subtração pode ser separada pelos seus dígitos.

700 40 3
-600 -60 -8
--- -- -
300 ?? ?

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 53
Sistemas digitais – 30/01/2021

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.

3 + 10 = 30  tomada do empréstimo na casa das unidades


40 – 10 = 30  pagamento do empréstimo na casa das dezenas

700 40 10
-10 3
-600 -60 -8
--- -- -
300 ?? 5

30 + 100 = 130  tomada do empréstimo na casa das dezenas


700 – 100 = 600  pagamento do empréstimo na casa das centenas

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.

Borrow in Minuendo Subtraendo Borrow out Resto


Unidades - 3 8 1 5
Dezenas 1 4 6 1 7
Centenas 1 7 6 - 0
Tabela 3 – Explicação da subtração decimal do exemplo 3

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

Na subtração decimal, o empréstimo de uma unidade na casa à esquerda implica no acrés-


cimo de dez unidades na casa vigente. O valor dez está associado à base decimal. Igualmente, em
uma base binária, o empréstimo de uma unidade na casa à esquerda implica no acréscimo de duas
unidades na casa vigente.

resto = minuendo + (borrow out)2 – borrow in – subtraendo

Prof. Marco Aurélio Seluque Fregonezi


54 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Na subtração decimal, havendo necessidade de um empréstimo, o valor emprestado é de


dez vezes o peso da casa em questão. Igualmente, na subtração binária, havendo necessidade de
um empréstimo, o valor emprestado é de duas vezes o peso da casa. Um empréstimo para a pri-
meira casa decimal tem valor dez. Um empréstimo para a segunda casa decimal tem valor cem. Um
empréstimo para a primeira casa binária tem valor dois. Um empréstimo para a segunda casa biná-
ria tem valor quatro.

Exemplo 4, binário: A = 6d; B = 4d, R = A-B

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.

resto = minuendo – subtraendo


Minuendo Subtraendo Resto
bit 0 0 0 0
bit 1 1 0 1
bit 2 1 1 0
Tabela 4 – Explicação da subtração binária do exemplo 4

Exemplo 5: A = 5d; B = 2d, R = A-B

101b 5
-010b 2
---
011b 3
R=3

100b 00b 1b
-000b -10b -0b
--- -- -
100b ??b 1b

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 55
Sistemas digitais – 30/01/2021

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 = 000b  pagamento do empréstimo na terceira casa binária


00b + 10 = 10b  tomada do empréstimo na segunda casa binária

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.

resto = minuendo + (borrow out)2 – borrow in – subtraendo


Borrow in Minuendo Subtraendo Borrow out Resto
bit 0 - 1 0 0 1
bit 1 0 0 1 1 1
bit 2 1 1 0 - 0
Tabela 5 – Explicação da subtração do exemplo 5

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

Prof. Marco Aurélio Seluque Fregonezi


56 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

resto = minuendo – subtraendo


Minuendo Subtraendo Borrow out Resto
0 0 0 0 0-0=0
0 1 ? ?
1 0 0 1 1-0=1
1 1 0 0 1-1=0
Tabela 6 – Explicação da subtração do exemplo 6

Exemplo 7: A = 6d; B = 5d, R = A-B


0 1
1 1 0 6
-1 0 1 5
- - -
0 0 1 1
R=1

resto = minuendo + (borrow out)2 – borrow in – subtraendo


Borrow in Minuendo Subtraendo Borrow out Resto
0 0 0 0 0 0+(02)-0-0=0
0 0 1 1 1 0+(12)-0-1=1
0 1 0 0 1 1+(02)-0-0=1
0 1 1 0 0 1+(02)-0-1=0
1 0 0 ? ?
1 0 1 ? ?
1 1 0 0 0
1 1 1 ? ?
Tabela 7 – Explicação da subtração do exemplo 7

Exemplo 8: A = 4d; B = 1d, R = A-B


1 1
1 0 0 4
-0 0 1 1
- - -
0 1 1 3
R=3

resto = minuendo + (borrow out)2 – borrow in – subtraendo


Borrow in Minuendo Subtraendo Borrow out Resto
0 0 0 0 0 0+(02)-0-0=0
0 0 1 1 1 0+(12)-0-1=1
0 1 0 0 1 1+(02)-0-0=1
0 1 1 0 0 1+(02)-0-1=0
1 0 0 1 1 0+(12)-1-0=1
1 0 1 ? ?
1 1 0 0 0 1+(02)-1-0=0
1 1 1 ? ?
Tabela 8 – Explicação da subtração do exemplo 8

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 57
Sistemas digitais – 30/01/2021

Exemplo 9: A = 6d; B = 3d, R = A-B


1 1
1 1 0 6
-0 1 1 3
- - -
0 1 1 3

resto = minuendo + (borrow out)2 – borrow in – subtraendo


Borrow in Minuendo Subtraendo Borrow out Resto
0 0 0 0 0 0+(02)-0-0=0
0 0 1 1 1 0+(12)-0-1=1
0 1 0 0 1 1+(02)-0-0=1
0 1 1 0 0 1+(02)-0-1=0
1 0 0 1 1 0+(12)-1-0=1
1 0 1 ? ?
1 1 0 0 0 1+(02)-1-0=0
1 1 1 1 1 1+(12)-1-1=1
Tabela 9 – Explicação da subtração do exemplo 9

Exemplo 10: A = 4d; B = 3d, R = A-B


1 1
1 0 0 4
-0 1 1 3
- - -
0 0 1 1

resto = minuendo + (borrow out)2 – borrow in – subtraendo


Borrow in Minuendo Subtraendo Borrow out Resto
0 0 0 0 0 0+(02)-0-0=0
0 0 1 1 1 0+(12)-0-1=1
0 1 0 0 1 1+(02)-0-0=1
0 1 1 0 0 1+(02)-0-1=0
1 0 0 1 1 0+(12)-1-0=1
1 0 1 1 0 0+(12)-1-1=0
1 1 0 0 0 1+(02)-1-0=0
1 1 1 1 1 1+(12)-1-1=1
Tabela 10 – Explicação da subtração do exemplo 10

Prof. Marco Aurélio Seluque Fregonezi


58 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

resto = minuendo – subtraendo


Minuendo Subtraendo Resto
0 0 0 0-0=0
1 0 1 1-0=1
1 1 0 1-1=0
2 0 2 2-0=2
2 1 1 2-1=1
2 2 0 2-2=0
Tabela 11 – Subtração ternária sem borrow

resto = minuendo – borrow in – subtraendo


Borrow in Minuendo Subtraendo Resto
0 0 0 0 0-0-0=0
0 1 0 1 1-0-0=1
0 1 1 0 1-0-1=0
0 2 0 2 2-0-0=2
0 2 1 1 2-0-1=1
0 2 2 0 2-0-2=0
1 1 0 0 1-1-0=0
1 2 0 1 2-1-0=1
1 2 1 0 2-1-1=0
Tabela 12 – Subtração ternária positiva – casos sem borrow out

resto = minuendo + (borrow out)3 – borrow in – subtraendo


Borrow in Minuendo Subtraendo Borrow out Resto
0 0 0 0 0 0+(03)-0-0=0
0 0 1 1 2 0+(13)-0-1=2
0 0 2 1 1 0+(13)-0-2=1
0 1 0 0 1 1+(03)-0-0=1
0 1 1 0 0 1+(03)-0-1=0
0 1 2 1 2 1+(13)-0-2=2
0 2 0 0 2 2+(03)-0-0=2
0 2 1 0 1 2+(03)-0-1=1
0 2 2 0 0 2+(03)-0-2=0
1 0 0 1 2 0+(13)-1-0=2
1 0 1 1 1 0+(13)-1-1=1
1 0 2 1 0 0+(13)-1-2=0
1 1 0 0 0 1+(03)-1-0=0
1 1 1 1 2 1+(13)-1-1=2
1 1 2 1 1 1+(13)-1-2=1
1 2 0 0 1 2+(03)-1-0=1
1 2 1 0 0 2+(03)-1-1=0
1 2 2 1 2 2+(13)-1-2=2
Tabela 13 – Subtração ternária positiva – todos os casos

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 59
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


60 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 08 – Subtração negativa


Subtração negativa é aquela onde o subtraendo é maior ou igual ao minuendo. Invertendo
a ordem dos operadores, obtém-se o módulo da subtração original. O valor correto é obtido por
meio da “negativação” deste resultado.
É possível aplicar a mesma técnica de subtração do caso positivo com a única diferença de
que o borrow out do bit mais significativo assume a função de bit de sinal. Este método de subtração
gera números negativos com a notação de “complemento de dois”.

Exemplo 1, decimal: A = 4; B = 6, R = A-B

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.

Exemplo 2, decimal: A = 1; B = 6, R = A-B

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

A quantidade de bits em “A” e em “B” é 5.


A quantidade total de bits é 5+1=6.
25 = 32
R´ = 32 - 15 ; R´ = 17
17 = 10001b
R = 110001b com sinal.

Método 2
1 001 1
01100b 12
-11011b 27
------ ---
110001b -15
R = 110001b com sinal.

Exemplo 4: A = 83; B = 106, R = A-B

Método 1
|R| = B-A; |R| = 106-83; |R| = 23; R = -|R|; R = - 23
01 0111
1101010b 106
-1010011b 083
-------- ---
0010111b 023

A quantidade de bits em “A” e em “B” é 7.


A quantidade total de bits é 7+1=8.
27 = 128
R´ = 128 - 23 ; R´ = 105
105 = 1101001b
R = 11101001b com sinal.

Método 2
11 0 1 0 0 0
1010011b 083
-1101010b 106
-------- ---
11101001b -23
R = 11101001b com sinal.

Prof. Marco Aurélio Seluque Fregonezi


62 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 = 2A

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 = 4A

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 63
Sistemas digitais – 30/01/2021

Exemplo 3: A=4, P=3A

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

Exemplo 4: A=6, P=5A

6
×5
--
30

Método 1: Sem usar multiplicação por 2:


6+6=12 12+6=18 18+12=30
1 1 0 1 1 0 0 0 0 0 0
0 1 1 0 0 1 1 0 0 1 0 0 1 0
+0 1 1 0 +0 0 1 1 0 +0 1 1 0 0
- - - - - - - - - - - - - -
1 1 0 0 1 0 0 1 0 1 1 1 1 0

Método 2: Usando multiplicação por 2:


6+6=12 12+6=18 18+12=30
0 1 1 0 0 1 1 0 0 1 1 0 0 0
×2 ×2 +0 0 1 1 0
- - - - - - - - - - - - - -
1 1 0 0 1 1 0 0 0 1 1 1 1 0
P = 11110b

Exemplo 5:

10
×7
--
70

Prof. Marco Aurélio Seluque Fregonezi


64 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Método 1: Sem usar multiplicação por 2:


10+10=20 20+20=40 20+10=30 40+30=70
0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0
+0 1 0 1 0 +0 1 0 1 0 0 +0 1 0 1 0 0 0 1 1 1 1 0
- - - - - - - - - - - - - - - - - - - - - - -
1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0

Método 2: Usando multiplicação por 2:


10+10 = 20 20+20 = 40 40+20 = 60 60+10 = 70
0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 0
+0 1 0 1 0 +0 1 0 1 0 0 +0 1 0 1 0 0 0 0 0 1 0 1 0
- - - - - - - - - - - - - - - - - - - - - - - -
1 0 1 0 0 1 0 1 0 0 0 1 1 1 1 0 0 1 0 0 0 1 1 0
P = 1000110b

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 65
Sistemas digitais – 30/01/2021

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:

3,25 1 1,0 1 1 1 0 1 0,0 0


×9 ×8 + 1 1,0 1
------- - - - - - - - - - - -
29,25 1 1 0 1 1 1 1 0 1,0 1
P = 11101,01b

Alternativamente, é possível usar, juntamente com a adição, e a multiplicação por dois, a


subtração. O uso da subtração permite encontrar um “atalho” para a realização do cálculo desejado.

Borrow in Minuendo Subtra- Borrow out Resto


endo
0 0 0 0 0
0 0 1 1 1
0 1 0 0 1
0 1 1 0 0
1 0 0 1 1
1 0 1 1 0
1 1 0 0 0
1 1 1 1 1
Tabela 1 – Subtração

Prof. Marco Aurélio Seluque Fregonezi


66 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 12:

4
×3
--
12

4+4=8 8+8=16 16-4=12


1 0 0 1 1 1 1 0 0
0 1 0 0 0 1 0 0 0 1 0 0 0 0
+0 1 0 0 +0 1 0 0 0 -0 0 1 0 0
- - - - - - - - - - - - - -
1 0 0 0 1 0 0 0 0 0 1 1 0 0
P = 01100b

Exemplo 13:

10
×7
---
70

10+10=20 20+20=40 40+40=80 80-10=70


1 1 1 1 0 0
0 1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0
+0 1 0 1 0 +0 1 0 1 0 0 +0 1 0 1 0 0 0 +0 0 0 1 0 1 0
- - - - - - - - - - - - - - - - - - - - - - - - -
1 0 1 0 0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0
P = 1000110b

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 67
Sistemas digitais – 30/01/2021

Exemplo 13 – outra forma:


1010
× 111
-------
1000110

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

Exemplo 14 – outra forma:


11,01
× 111
--------
10110,11

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

Prof. Marco Aurélio Seluque Fregonezi


68 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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.

Exemplo 17: x = 75h ; obter y= x2


x = 75h
x = 0111_0101h
y = 0_1110_1010h
y = 0EAh ; caso o formato seja de 9 bits
y = EAh ; caso o formato seja de 8 bits

Exemplo 18: x = F07h ; obter y= x2


x = F07h
x = 1111_0000_0111h
y = 1_1110_0000_1110h
y = 1E0Eh ; caso o formato seja de 13 bits
y = E0Eh ; caso o formato seja de 12 bits; overflow = 1b.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 69
Sistemas digitais – 30/01/2021

Exemplo 19: Escrever x = 27,40625d na forma de fração irredutível conside-


rando que x é uma somatória de potências de dois.
227,40625 = 54,8125
254,8125 = 109,625
2109,625 = 219,25
2219,25 = 438,5
2438,5 = 877
Foram necessárias cinco multiplicações para transformar o número fracionário em um nú-
mero inteiro. A fração tem, como denominador, 2 5.
x = 877/32

Exemplo 20: Converter para decimal x = 0011011,01101b


Este exemplo já foi resolvido no capítulo sobre números fracionários. Porém esta conversão
também pode ser feita por meio da multiplicação por uma potência de dois de tal modo a transfor-
mar o número fracionário em um número inteiro.
x´ = 001101101101b
x´ = (0211) + (0210) + (129) + (128) + (027) + (126) + (125) + (024) + (123) + (122) +
+ (021) + (120)
x´ = 29 + 28 + 26 + 25 + 23 + 22 + 20
x´ = 512 + 256 + 64 + 32 + 8 + 4 + 1
Foi feito um deslocamento de cinco casas binárias para a esquerda. O número foi multipli-
cado por 25. A restauração do número original é obtida por meio da divisão por 25.
x = 477 / 32
x = 27,40625d

Prof. Marco Aurélio Seluque Fregonezi


70 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Q = 11,0b÷2 10b÷2 = 01b


Q = 01,1b Q = 10b+01b
Q = 11b
Exemplo 3:
Exemplo 6:
12
÷4 2 2÷2=1
--- ×2,5 2×2=4
3 --- 1+4=5
5
Q = 1100b÷4
Q = 0011b 010b÷2 = 001b
010b×2 = 100b
Q = 001b+100b
Q = 101b

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 71
Sistemas digitais – 30/01/2021

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

11,0b÷2 = 01,1b 1000b÷4 = 0010b


011b×2 = 110b Q = 0010b+1000b
Q = 01,1b+110b Q = 1010b
Q = 111,1b
Exemplo 10:
Exemplo 8:
8 8÷4=2
2,5 2,5÷2=1,25 ×2,25 8×2=16
×1,5 --- 2+16=18
--- 1,25+2,5=3,75 18
3,75
01000b÷4 = 00010b
10,1b÷2 = 01,01b 01000b×2 = 10000b
Q = 10,1b+01,01b Q = 00010b+10000b
Q = 11,11b Q = 10010b

Exemplo 9: Exemplo 11:

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

10b÷4 = 0,10b 01000b÷4 = 00010b


Q = 10b+0,10b 01000b×2 = 10000b
Q = 10,1b 10000b+01000b = 11000b
00010b+11000b = 11010b  Q = 11010b
Exemplo 10:
Exemplo 12:
2 2÷4=0,5
×1,75 0,53=1,5 8 8÷2=4; 8÷4=2;
- 222+1,5=3,5 ×1,75 4+2=6
3,5 -- 6+8=14
14
10b÷4 = 0,10b
0,1b3 = 1,1b 1000b÷2 = 0100b
Q = 10b + 1,1b 1000b÷4 = 0010b
Q = 11,1b 0100b+0010b = 0110b
0110b+1000b = 1110b  Q = 1110b

Prof. Marco Aurélio Seluque Fregonezi


72 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 13: Exemplo 15:

8 8÷2=4; 8÷4=2; 10 10÷2=5; 10÷4=2,5;


×2,75 4+2=6 ×3,75 5+2,5=7,5
------ 8×2=16 ------ 10×2=20
14 6+16=22 37,5 20+10=30
7,5+30=37,5
1000b÷2 = 0100b
1000b÷4 = 0010b 1010,0b÷2 = 0101,0b
0100b+0010b = 0110b 1010,0b÷4 = 0010,1b
01000b×2 = 10000b 0101,0b+0010,1b = 0111,1b
00110b+10000b = 10110b 01010b×2 = 10100b
Q = 10110b 10100b+01010b = 11110b
11110,0b+00111,1b = 100101,1b
Exemplo 14: Q = 11110

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 73
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


74 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 11 – Conversão entre analógico e digital


Existem dois tipos de números. Os números dimensionais são aqueles associados a alguma
grandeza física relacionada a algum sistema de unidades. Na pedagogia infantil, os números são
apresentados para as crianças pequenas na forma de números dimensionais, geralmente associados
a objetos presentes no cotidiano infantil, como, por exemplo, laranjas, bicicletas, cadernos, etc. Os
números adimensionais, também chamados de “números puros”, são aqueles que não possuem
nenhuma conotação física. Animais e crianças pequenas são incapazes de compreender o signifi-
cado dos números puros. Não é difícil entender o que sejam duas laranjas, mas a compreensão do
significado do número “dois” requer uma capacidade de abstração que não pode ser ensinada para
crianças em seus primeiros anos de vida. Existem, também, as falsas unidades, designações que se
assemelham a grandezas físicas mas que, em verdade, possuem significado puramente metafísico.
Exemplos de falsas unidades seriam a porcentagem, os decibéis e as “partes por milhão” – PPM.
Uma grandeza é dita analógica quando ela é proveniente de alguma analogia. Analogia,
neste contexto, significa usar alguma referência. A grandeza “altitude” tem, como referência, o nível
dos oceanos no equador. A grandeza “tensão nodal” tem, como referência, a tensão no nó zero,
também chamada de “terra”. A temperatura expressa em graus celsius tem, como referência, a
temperatura de congelamento da água.
Uma grandeza analógica pode ser contínua ou discreta. Uma grandeza contínua é aquela
que apresenta a infinitude para “dentro” e para “fora”. A infinitude para “dentro” é aquela segundo
a qual, entre dois pontos quaisquer, sempre há um outro ponto intermediário. A infinitude para
“fora” é aquela segundo a qual, tomados dois pontos, sempre há um outro ponto fora deste inter-
valo. Uma grandeza contínua não apresenta nenhum ponto de descontinuidade, ou seja, em qual-
quer ponto, os limites laterais assumem o mesmo valor; em outras palavras, todos os pontos da
função são deriváveis.
Uma grandeza analógica discreta é aquela que possui uma quantidade finita e conhecida de
valores admissíveis. Isso significa que todos os pontos de mudança de valor são descontínuos; a
função não é derivável. Para toda função analógica discreta existe uma correspondente função ana-
lógica contínua. A função discreta pode ser decorrente de algum processo de armazenamento/pro-
cessamento digital de uma função contínua. Uma função discreta pode ser transformada em uma
função contínua por meio do uso de fórmulas matemáticas de “suavização” das descontinuidades.
Este processo permite que esta função seja derivável.
Uma grandeza digital é aquela cujos valores dos dígitos individuais não tem uma relação
direta com a magnitude da relativa grandeza analógica. Por exemplo, um arquivo de áudio digital é
composto por bits, que podem receber valor “zero” ou “um”, e esse valor não tem relação direta
com a intensidade do sinal de áudio no ponto em questão.
A conversão entre uma função analógica e digital implica na definição de dois parâmetros: a
quantidade de bits por amostra (bit rate) e a frequência das amostragens. O bit rate determina a
resolução da conversão. Quanto maiores forem os dois parâmetros, mais semelhante é o processa-
mento da função digital em relação à função analógica original, porém o custo desta qualidade se
manifesta por meio do aumento no requisito de capacidade de armazenamento em memória e no
requisito de capacidade de processamento por meio de um microcontrolador ou microprocessador.
O bit rate determina a quantidade de níveis quânticos. A física quântica estuda o quantum,
a energia dos elétrons de valência. No diagrama de Linus Pauling, os elétrons são distribuídos por
meio do critério de energia. Cada órbita possui uma energia, medida em EV – elétron-volt. Existe
uma tolerância de variação de energia em cada órbita, de modo que, a cada órbita, está associada
uma banda (ou faixa) de energia. Entre duas bandas consecutivas, existe uma faixa proibida, band
gap, representando valores de energia que o elétron somente pode assumir em regime transitório
no percurso entre uma banda e outra, mas jamais em regime estacionário. Esta característica define
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 75
Sistemas digitais – 30/01/2021

o quantum, ou seja, a quantidade de bandas é finita e conhecida; é uma quantidade contável. A


palavra “quantidade” é proveniente deste contexto.
No caso da função analógica proveniente de uma função digital, os níveis quânticos repre-
sentam os valores analógicos instantâneos que podem ser assumidos em regime estacionário. Esta
quantidade é finita e conhecida. Esta quantidade é definida por 2b, onde “b” representa o bit rate.
O nível quântico mínimo é chamado de “referência negativa”. O nível quântico máximo é
chamado de “referência positiva”. A diferença entre esses dois níveis é chamada de “amplitude”. A
relação entre o bit rate e a “amplitude” define a resolução do método de conversão.
Intervalo quântico é a diferença entre dois níveis quânticos consecutivos e representa a mí-
nima variação admissível na função analógica discreta. A quantidade de intervalos quânticos é defi-
nida por “2b-1”. O intervalo quântico é dado por “A/(2b-1)”, onde “A” é a amplitude.
A interação entre sistemas analógicos e digitais pode ocorrer em duas vias: a conversão de
analógico para digital e a conversão de digital para analógico.
A conversão de analógico para digital requer uma definição prévia da quantidade de bits,
definição sem a qual a conversão não pode ser efetuada. A conversão de digital para analógico não
precisa desta definição porque a palavra binária original já traz a informação da quantidade de bits.
A quantidade de bits não pode ser confundida com a resolução de bits. A primeira define a
quantidade física de bits. A segunda define a quantidade efetivamente usada na conversão. Ideal-
mente, estes dois valores são iguais, porém, em alguns casos, indesejáveis, a resolução de bits pode
ser menor do que a quantidade de bits. Isso acontece quando a amplitude analógica, isto é, a dife-
rença entre o mínimo e o máximo valores analógicos empregados, é menor do que a metade da
amplitude máxima. Neste caso, é perdido um bit de resolução. Esta diferença, quase sempre, é con-
sequência de um erro de projeto.

Prof. Marco Aurélio Seluque Fregonezi


76 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 12 – Quantização binária


Os três primeiros conceitos da lógica binária são:

 Bit (b): Uma unidade binária


 Nibble: Quatro bits
 Byte (B): Oito bits
 Word: Uma quantidade arbitária de bits

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.

Prefixo Potência Prefixo Potência


Quilo 103 Mili 10-3
Mega 106 Micro 10-6
Giga 109 Nano 10-9
Tera 1012 Pico 10-12
Tabela 1 – As potências dos principais prefixos analógicos

Prefixo Significado Prefixo Significado


Quilo 10001 Mili 1000-1
Mega 10002 Micro 1000-2
Giga 10003 Nano 1000-3
Tera 10004 Pico 1000-4
Tabela 2 – Os milhares dos principais prefixos analógicos

Prefixo Significado Prefixo Significado


Quilo mil Mili milésimo
Mega milhão Micro milionésimo
Giga bilhão Nano bilionésimo
Tera trilhão Pico trilhonésimo
Tabela 3 – As pronúncias dos principais prefixos analógicos

Prefixo Letra Prefixo Letra


Quilo k Mili m
Mega M Micro 
Giga G Nano n
Tera T Pico p
Tabela 4 – As letras usadas nos principais prefixos analógicos

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 77
Sistemas digitais – 30/01/2021

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.

Prof. Marco Aurélio Seluque Fregonezi


78 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 1: x = 1,5kB. Determine x em bytes.


x = 1,5∙1024 bytes
x = 1536 bytes

Exemplo 2: x = 1,5MB. Determine x em bytes.


x = 1,5∙10242 bytes
x = 1572864 bytes

Exemplo 3: x = 1,3kB. Determine x em bytes.


x = 1,3∙1024 bytes
x = 1331,2 bytes (a ser arredondado para cima ou para baixo)

Exemplo 4: x = 3kB e 256 bytes. Determine x em bytes.


x = (3∙1024)+256 bytes
x = 3328 bytes

Exemplo 5: x = 90MB e 322kB e 82 bytes. Determine x em bytes.


x = (90∙10242)+(322∙1024)+82 bytes
x = 9.437.1840 + 329.084 + 82 bytes
x = 94701006 bytes

Exemplo 6: x = 600GB e 462M e 12kB e 732 bytes. Determine x em bytes.


x = (600∙10243)+ (462∙10242)+(12∙1024)+732 bytes
x = 644245094400 + 484442112 + 12288 + 732 bytes
x = 644.729.549.532 bytes

Exemplo 7: x = 2000 bytes. Determine x em kB.


x = 2000/1024 kB
x = 1,953125 kB

Exemplo 8: x = 40.000.000 bytes. Determine x em MB.


x = 40.000.000/10242 MB
x = 38,14697265625 MB

Exemplo 9: x = 3523MB. Determine x em kB.


x = 3523/1024 kB
x = 3,4404296875 kB

Exemplo 10: x = 27kB e 48 bytes. Determine x em kB.


x = (27∙1024)+48 bytes
x = 27696 bytes
x = 27696/1024 kB
x = 27,046875 kB
Outra forma:
48 bytes = 48/1024 kB
48 bytes = 0,046875 kB
x = 27 + 0,046875 kB

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 79
Sistemas digitais – 30/01/2021

x = 27,046875 kB

Exemplo 11: x = 589MB e 1006kB e 10 bytes. Determine x em MB.


x = (589∙10242)+(1006∙1024)+10 bytes
x = 617611264 + 1030144 + 10 bytes
x = 618641418 bytes
x = 618641418/10242 kB
x = 589,9824314117431640625 kB
Outra forma:
10 bytes = 10/10242 MB
10 bytes = 0,0000095367431640625 MB
1006kB = 1006/1024 MB
1006kB = 0,982421875 MB
x = 589 + 0,982421875 + 0,0000095367431640625 MB
x = 589,9824314117431640625 MB

Exemplo 12: x = 4GB e 943MB e 5kB e 148 bytes. Determine x em GB.


x = (4∙10243)+(943∙10242)+(5∙1024)+148 bytes
x = 4294967296 + 988807168 + 5120 + 148 bytes
x = 5283779732 bytes
x = 5283779732/10243 GB
x = 4,9209033437073230743408203125 GB
Outra forma:
148 bytes = 148/10243 GB
148 bytes = 0,0000001378357410430908203125 GB
5kB = 5/10242 GB
5kB = 0,00000476837158203125 GB
943MB = 943/1024 GB
943MB = 0,9208984375 GB
x = 4 + 0,9208984375 + 0,00000476837158203125 + 0,0000001378357410430908203125 GB
x = 4,9209033437073230743408203125 GB

Exemplo 13: x = 10.000 bytes. Determine x em kB inteiros e bytes.


x = 10.000/1024 bytes
x = 9,765625 kB
x = 9kB inteiros
resto = 0,765625 kB
resto = 0,765625∙1024 bytes
resto = 784 bytes
x = 9kB e 784 bytes

Exemplo 14: x = 7.033.943 bytes. Determine x em MB mais kB mais bytes.


x = 7.033.943/10242 MB
x = 6,70809078216552734375 MB
x = 6MB inteiros
resto = 0,70809078216552734375 MB
resto = 0,70809078216552734375∙1024 kB
resto = 725,0849609375 kB

Prof. Marco Aurélio Seluque Fregonezi


80 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

x = 6MB e 725kB inteiros


resto = 0,0849609375 kB
resto = 0,0849609375∙1024 bytes
resto = 87 bytes
x = 6MB e 725kB e 87 bytes

Exemplo 15: x = 3.146.688 bytes. Determine x em MB mais kB mais bytes.


x = 3.146.688/10242 MB
x = 3,00091552734375 MB
x = 3 MB inteiros
resto = 0,00091552734375 MB
resto = 0,00091552734375∙1024 kB
resto = 0,9375 kB
resto = 0,9375∙1024 bytes
resto = 960 bytes
x = 3MB e 960 bytes

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 81
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


82 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 13 – Bases híbridas


Nos capítulos anteriores, todos os números apresentados são compostos por dígitos – ou
numerais – representados, todos eles, pela mesma base. Quando o assunto é a representação nu-
mérica, não é fácil pensar em alguma aplicação prática que requeira o uso de bases híbridas. Um
exemplo de número representado em base híbrida seria um número composto por dois dígitos onde
o menos significativo está na base dois e o mais significativo está na base três.
Os principais exemplos práticos do uso de bases híbridas consistem das aplicações de con-
tadores. Em capítulos seguintes, serão apresentados diversos tipos de contadores digitais. Um con-
tador pode ser interpretado como a representação temporal de um sistema de numeração. Quando
se lida com circuitos eletrônicos que exercem a função de contadores, é fácil entender a maneira
como contadores diferentes podem ser interconectados para a execução de uma contagem híbrida.
Por exemplo, um contador de dois passos pode ser ligado a um contador de três passos
formando um contador de seis passos. Se a quantidade de passos do primeiro contador é definida
por “A” e a quantidade de passos do segundo contador é definida por “B”, a quantidade de passos
definida pelo acoplamento dos dois contadores – em série – é dada por “AB”. Da mesma forma
como a multiplicação aritmética possui a propriedade comutativa, igualmente a ordem dos dois
contadores é irrelevante na determinação da quantidade de passos. Essa ordem, porém, é relevante
quanto à palavra aritmética gerada por cada passo da contagem. Seguindo esta linha de raciocínio,
vários contadores podem ser ligados em série.
O problema do uso das bases híbridas é que é necessário que cada dígito tenha uma indica-
ção individual do valor da sua base. Quando, porém, se apresentam todos os números gerados pela
base híbrida em ordem crescente, a determinação da base é evidenciada pela própria lista apresen-
tada.
Um exemplo de base híbrida usado em nosso cotidiano é a medição da percepção humana
do tempo. Na tabela abaixo, o número “z” é indefinido, pois qualquer número real elevado a zero
resulta em “um”. Como é possível observar nos cálculos, o peso da segunda casa – B – leva em
consideração a base da primeira casa – A.

B3 A2 Decimal Cálculo B2 A3 Decimal Cálculo


00 0 0+0 (021)+(0z0) 00 0 0+0 (031)+(0z0)
01 1 0+1 (021)+(1z0) 01 1 0+1 (031)+(1z0)
10 2 2+0 (121)+(0z0) 02 2 0+2 (031)+(2z0)
11 3 2+1 (121)+(1z0) 10 3 3+0 (131)+(0z0)
20 4 4+0 (221)+(0z0) 11 4 3+1 (131)+(1z0)
21 5 4+1 (221)+(1z0) 12 5 3+2 (131)+(2z0)
geral x (B21)+(Az0) geral x (B31)+(Az0)
Tabela 1 – Exemplos de bases híbridas de duas casas

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 83
Sistemas digitais – 30/01/2021

C3 B4 A2 Decimal Cálculo Cálculo Cálculo


000 0 0+0+0 (08)+(02)+(01) (042)+(02)+0
001 1 0+0+1 (08)+(02)+(11) (042)+(02)+1
010 2 0+2+0 (08)+(12)+(01) (042)+(12)+0
011 3 0+2+1 (08)+(12)+(11) (042)+(12)+1
020 4 0+4+0 (08)+(22)+(01) (042)+(22)+0
021 5 0+4+1 (08)+(22)+(11) (042)+(22)+1
030 6 0+6+0 (08)+(32)+(01) (042)+(32)+0
031 7 0+6+1 (08)+(32)+(11) (042)+(32)+1
100 8 8+0+0 (18)+(02)+(01) (142)+(02)+0
101 9 8+0+1 (18)+(02)+(11) (142)+(02)+1
110 10 8+2+0 (18)+(12)+(01) (142)+(12)+0
111 11 8+2+1 (18)+(12)+(11) (142)+(12)+1
120 12 8+4+0 (18)+(22)+(01) (142)+(22)+0
121 13 8+4+1 (18)+(22)+(11) (142)+(22)+1
130 14 8+6+0 (18)+(32)+(01) (142)+(32)+0
131 15 8+6+1 (18)+(32)+(11) (142)+(32)+1
200 16 16+0+0 (28)+(02)+(01) (242)+(02)+0
201 17 16+0+1 (28)+(02)+(11) (242)+(02)+1
210 18 16+2+0 (28)+(12)+(01) (242)+(12)+0
211 19 16+2+1 (28)+(12)+(11) (242)+(12)+1
220 20 16+4+0 (28)+(22)+(01) (242)+(22)+0
221 21 16+4+1 (28)+(22)+(11) (242)+(22)+1
230 22 16+6+0 (28)+(32)+(01) (242)+(32)+0
231 23 16+6+1 (28)+(32)+(11) (242)+(32)+1
geral X (C8)+(B2)+(A1) (C42)+(B2)+A
Tabela 2 – Exemplo de base híbrida de três casas

Formato Fórmula
AZ1 A
BZ2 AZ1 (BZ1)+A
CZ3 BZ2 AZ1 (CZ2Z1)+(BZ1)+A
DZ4 CZ3 BZ2 AZ1 (D Z3Z2Z1)+(CZ2Z1)+(BZ1)+A
Tabela 3 – Fórmula para conversão para decimal

Prof. Marco Aurélio Seluque Fregonezi


84 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 1: Converta x=341325 para decimal.


x = (335)+(15)+2
x = 45+5+2
x = 52d

Exemplo 2: Converta x=52d para a base C4B3A5.


52d  5 = 10 resto = 2
10d  3 = 3 resto = 1
3d  4 = 0 resto = 3
x = 341325

Exemplo 3: Converta x=10271012312 para decimal.


x = (1210332)+(010332)+(7332)+(132)+(22)+1
x = 360+0+126+6+4+1
x = 497d

Exemplo 4: Converta x=497d para a base FE2D10CB3A2.


497d  2 = 248 resto = 1
248d  3 = 82 resto = 2
82d  3 = 27 resto = 1
27d  10 = 2 resto = 7
2d 2=1 resto = 0
1d 2=0 resto = 1
x = x=10271012312

Exemplo 5: t = 26min. Determine t em segundos.


t = 2660s
t = 1560s

Exemplo 6: t = 13h. Determine t em minutos e em segundos.


t = 1360min
t = 780min
t = 78060s
t = 46800s

Exemplo 7: t = 5d. Determine t em horas, em minutos e em segundos.


t = 524h
t = 120h
t = 12060min
t = 7200min
t = 720060s
t = 720060s
t = 432000s

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 85
Sistemas digitais – 30/01/2021

Exemplo 8: t = 6 semnas. aDetermine t em dias.


t = 67d
t = 42d

Exemplo 9: t = 731 segundos. Determine t em minutos e segundos.


t = 731/60 minutos
t = 12,18 minutos
tm = 12 minutos inteiros
ts = 0,1860s
ts = 11s
t = ts + tm
t = 12min e 11s

Exemplo 10: t = 32722 segundos. Determine t em hh/mm/ss.


t = 32722/60 minutos
t = 545,36 minutos
t = 545,36/60 horas
t = 9,0894 horas
th = 9 horas inteiras
tm = 0,089460min
tm = 5,37min
tm = 5 minutos inteiros
ts = 0,3760s
ts = 22s
t = 9h/5min/22s
Neste exemplo, é preciso fazer os cálculos diretamente na calculadora a fim de evitar os
erros de arredondamento.

Exemplo 11: t = 843h horas. Determine t em dd/hh.


t = 843/24 dias
t = 35,125 dias
td = 35 dias inteiros
th = 0,12524 horas
th = 3h
t = 35 dias e 3 horas

Prof. Marco Aurélio Seluque Fregonezi


86 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 14 – Bases fracionárias


Nos capítulos anteriores, todas as bases empregadas são inteiras. Entretanto, é possível fa-
zer uso de bases fracionárias. O único pré-requisito é o de que esta base seja dada por um número
maior do que “1”. Até o momento da redação desta apostila, não foi observada nenhuma aplicação
para bases fracionadas. Também não foram encontradas menções a este assunto na bibliografia
consultada. O propósito deste capítulo é o de mostrar, para o estudante, que a matemática permite
que estes cálculos sejam realizados, tornando este conhecimento disponível para um futuro hipo-
tético onde, talvez, isto seja aplicável a alguma área da engenharia.
Considerando que cada casa de numeração é ocupada por um único numeral, então o nu-
meral máximo permitido é dado pelo máximo número inteiro abaixo da base. Por causa disso, a
progressão de números em uma base fracionária não forma uma função linear. Esta não linearidade
não permite que o valor decimal seja usado para a determinação do número nesta outra base. Outro
problema é que ocorrem algumas inversões nesta progressão, invalidando a utilização do valor
quantitativo destes números.
Embora não tenha sido feita uma demonstração teórica, foi observado que, nas bases 1,5;
2,5 e 3,5, não ocorrem repetição de valores quantitativos, preservando a característica de função
injetora.
Este texto não se propõe a completar a análise destas funções, mas, sim, estimular a propo-
sição de linhas de pesquisa sobre este assunto.

Exemplo 1: x=0110 (base 1,5)


x = (01,53) + (11,52) + (11,51) + (01,50)
x = (03,375) + (12,25) + (11,5) + (01)
x = 0 + 2,25 + 1,5 + 0
x = 3,75d

Exemplo 2: x=121 (base 2,5)


x = (12,52) + (22,51) + (12,50)
x = (16,25) + (22,5) + (11)
x = 12,5 + 5 + 1
x = 18,5d

Representação Decimal Decimal


000 2 1 0 0
(01,5 )+(01,5 )+(01,5 )
001 (01,52)+(01,51)+(11,50) 1
010 2 1 0 1,5
(01,5 )+(11,5 )+(01,5 )
011 2 1 0 2,5
(01,5 )+(11,5 )+(11,5 )
100 2 1 0 2,25
(11,5 )+(01,5 )+(01,5 )
Tabela 1 – Alguns números na base 1,5.

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 87
Sistemas digitais – 30/01/2021

Número Decimal Número Decimal Número Decimal


000 0+0+0=0 100 6,25+0+0=6,25 200 12,5+0+0=12,5
001 0+0+1=1 101 6,25+0+1=7,25 201 12,5+0+1=13,5
002 0+0+2=2 102 6,25+0+2=8,25 202 12,5+0+2=14,5
010 0+2,5+0=2,5 110 6,25+2,5+0=8,75 210 12,5+2,5+0=15
011 0+2,5+1=3,5 111 6,25+2,5+1=9,75 211 12,5+2,5+1=16
012 0+2,5+2=4,5 112 6,25+2,5+2=10,75 212 12,5+2,5+2=17
020 0+5+0=5 120 6,25+5+0=11,25 220 12,5+5+0=17,5
021 0+5+1=6 121 6,25+5+1=12,25 221 12,5+5+1=18,5
022 0+5+2=7 122 6,25+5+2=13,25 222 12,5+5+2=19,5
1000 15,625
Tabela 2 – Alguns números na base 2,5.

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

Gráfico 1 – A não linearidade da base 2,5.

50

40

30

20

10

0
1 4 7 10131619222528313437404346495255586164

Gráfico 2 – A não linearidade da base 3,5.

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 ”

Prof. Marco Aurélio Seluque Fregonezi


88 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Unidade 2
Álgebra booleana

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 89
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


90 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 01 – Existência e unicidade

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 91
Sistemas digitais – 30/01/2021

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.

Atribuição Análise de zeros Análise de uns


Verdadeiro 0 1
Falso 1 0
Tabela 1 – Valores numéricos relacionados à veracidade

Definidos os valores lógicos booleanos, surge a necessidade de introduzir a conversão entre


um valor e outro. A esta conversão são dados os nomes de “negação”, “inversão”, “complemento”
ou “deslocamento”. Embora estas palavras sejam sinônimas no contexto binário, isso não acontece
na lógica multi-valores. O símbolo desta inversão é a barra normal, “/”, podendo ser colocada à
esquerda da variável ou da constante ou acima da mesma. O princípio do meio excluído afirma que,
para qualquer proposição, ou a proposição ou a sua negação é verdadeira.

/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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 93
Sistemas digitais – 30/01/2021

é chamado de “união”. No contexto da álgebra booleana, este conectivo é chamado de “adição


lógica”. No contexto dos sistemas digitais, este conectivo é chamado de “OU lógico” – OR.
Embora estes conectivos sejam definidos para, apenas, duas variáveis de entrada, eles po-
dem ser extrapolados para três ou mais entradas.
Um termo é obtido por meio da aplicação de um conectivo lógico sobre as variáveis do sis-
tema. Se este conectivo é a operação de “mínimo”, este termo é chamado de “mintermo”. Se este
conectivo é a operação de “máximo”, este termo é chamado de “maxtermo”.

Análise Referência em zeros Referência em uns


Quantitativa mínimo máximo
Lógica conjunção disjunção
Filosofia intersecção união
Álgebra multiplicação lógica adição lógica
Sistemas digitais AND OR
Termo mintermo maxtermo
Tabela 2 – Definição dos conectivos lógicos

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.

Definição da função a partir dos termos

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

Prof. Marco Aurélio Seluque Fregonezi


94 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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á-
riodecimal, 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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 95
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


96 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 02 – Forma canônica


A melhor maneira de organizar algum pensamento filosófico consiste na colocação ordenada
de todas as situações possíveis. Qualquer que seja o cenário imaginado, esta filosofia apresenta uma
resposta previamente definida. Não há situação imprevista. Este tipo de pensamento é chamado de
“canônico”. No contexto do cristianismo, dão-se o nome de “cânon bíblico” à lista de todos os textos
considerados necessários para a formação do entendimento a respeito da cristandade. Igualmente,
o cânon de um contrato seria a lista ordenada de todas as considerações incluídas na celebração
deste contrato.
Segundo o “Dicionário de Filosofia” de Nicola Abbagnano, cânon seria o “Critério ou regra
de escolhas para um campo qualquer de conhecimento ou de ação.”

Exemplo de pensamento canônico:


 Se fizer sol e se for domingo, eu vou passear.
 Se fizer sol e se não for domingo, eu não vou passear.
 Se chover e se for domingo, eu não vou passear.
 Se chover e se não for domingo, eu não vou passear.

Cada parágrado do pensamento é chamado de “proposição”, “sentença” ou “termo”.


Dentro do contexto da lógica booleana e da lógica multi-valores, a forma canônica implica
na observação de todas as combinações possíveis de todas as variáveis de entrada do sistema, de
maneira explícita, e na definição inequívoca do seu valor de saída. O contrário da forma canônica
seria a forma minimizada que, apesar de também observar todas as combinações das variáveis de
entrada, tal análise é feita de maneira implícita.

Exemplo de pensamento implícito:


 Se fizer sol, eu vou passear.
 Se não fizer sol:
o Se for domingo, eu vou visitar parentes.
o Se não for domingo, eu vou ler um livro.

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 97
Sistemas digitais – 30/01/2021

As variáveis de entrada proporcionam o endereçamento de cada termo da função. Este en-


dereçamento responde pelo apontamento do termo pertinente à situação vigente. Cada termo pos-
sui um endereço exclusivo. As variáveis de entrada em um sistema físico formam o barramento de
endereço (address bus). Esse endereçamento seria equivalente à numeração dos artigos de uma
constituição estatal.
Cada termo é constituído de um conectivo lógico (OR ou AND) usando todas as variáveis de
entrada do sistema. Se alguma variável está ausente, então não se trata de um termo. Considerando
que a operação OR prioriza o valor lógico máximo, “1”, então o termo formado com este conectivo
lógico é chamado de “maxtermo”. Considerando que a operação AND prioriza o valor lógico mínimo,
“0”, então o termo formado com este conectivo lógico é chamado de “mintermo”.
Muito embora a lógica booleana tenha, inicialmente, atribuído os valores “zero” e “um” aos
significados de “falso” e “verdadeiro” (false/true), respectivamente, esta atribuição, hoje, é arbitrá-
ria, ou seja, você pode escolher se deseja usar o valor “zero” ou o valor “um” como indicador de
veracidade. Esta escolha define a estrutura da expressão algébrica e do circuito lógico.
Maxtermo é um indicador de que a função fornece valor “zero” para aquela configuração
das variáveis de entrada. Mintermo é um indicador de que a função fornece valor “um” para aquela
configuração das variáveis de entrada. A análise de “zeros” fornece uma expressão algébrica canô-
nica no formato de um produtório de maxtermos. A análise de “uns” fornece uma expressão algé-
brica canônica no formato de um somatório de mintermos. Não existe significado lógico para um
somatório de maxtermos ou para um produtório de mintermos.

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”.

Prof. Marco Aurélio Seluque Fregonezi


98 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Análise Referência em zeros Referência em uns


Operação AND OR
Elemento neutro um zero
Tabela 2 – Definição dos elementos neutros

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”.

Análise Referência em zeros Referência em uns


Operação AND OR
Elemento nulo zero um
Tabela 3 – Definição dos elementos nulos

Os circuitos lógicos construídos a partir da expressão algébrica na forma canônica possuem


uma estrutura do tipo gate array – arranjo de portas lógicas – nas categorias ROM, PROM, EEPROM,
e PLA, assunto para capítulos posteriores.
A omissão das portas lógicas referentes aos termos não usados não implica em um processo
de minimização algébrica haja vista que esta expressão continua sendo a mesma, muito embora o
circuito lógico, bem como o circuito digital físico, possa sofrer uma considerável redução.
A escrita da expressão algébrica na forma canônica é precedida pela definição do conjunto de ter-
mos. A partir deste conjunto, os termos selecionados são escritos na forma de maxtermos (análise
de “zeros”) ou de mintermos (análise de “uns”). Esse conjunto contém o índice decimal correspon-
dente à posição de cada termo. Este índice corresponde ao valor decimal gerado a partir do nú-
mero binário que define a combinação das variáveis de entrada em questão, conforme mostrado
nas tabelas a seguir.
As variáveis de entrada e as variáveis de saída podem receber, como nome, mnemônicos
associados ao seu significado dentro da interpretação humana. Genericamente, estas variáveis po-
dem receber as letras do alfabeto. A primeira variável, à direita, então, recebe o nome de “A” e é a
menos significativa. As variáveis seguintes são mais significativas e recebem as próximas letras do
alfabeto. A variável de saída recebe a letra seguinte. Eventualmente, podem-se usar sufixos numé-
ricos. Quando o sistema é formado por múltiplas funções das mesmas entradas, o nome genérico
destas saídas pode ser indexado por meio de um sufixo subscrito.
Embora a definição de funções booleanas por meio de tabela-verdade seja mais frequente-
mente usada quando se pretende fazer a conversão para a expressão algébrica na forma canônica,

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 99
Sistemas digitais – 30/01/2021

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.

decimal B A zeros uns


0 0 0 B+A /B/A
1 0 1 B+/A /BA
2 1 0 /B+A B/A
3 1 1 /B+/A BA
Tabela 4 – Termos de dois bits

decimal C B A zeros uns


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 /C+/B+A CB/A
7 1 1 1 /C+/B+/A CBA
Tabela 5 – Termos de três bits

decimal D C B A 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/BA
2 0 0 1 0 D+C+/B+A /D/CB/A
3 0 0 1 1 D+C+/B+/A /D/CBA
4 0 1 0 0 D+/C+B+A /DC/B/A
5 0 1 0 1 D+/C+B+/A /DC/BA
6 0 1 1 0 D+/C+/B+A /DCB/A
7 0 1 1 1 D+/C+/B+/A /DCBA
8 1 0 0 0 /D+C+B+A D/C/B/A
9 1 0 0 1 /D+C+B+/A D/C/BA
10 1 0 1 0 /D+C+/B+A D/CB/A
11 1 0 1 1 /D+C+/B+/A D/CBA
12 1 1 0 0 /D+/C+B+A DC/B/A
13 1 1 0 1 /D+/C+B+/A DC/BA
14 1 1 1 0 /D+/C+/B+A DCB/A
15 1 1 1 1 /D+/C+/B+/A DCBA
Tabela 6 – Termos de quatro bits

Prof. Marco Aurélio Seluque Fregonezi


100 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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.

Exemplo 1: duas entradas

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 /BA
2 1 0 B/A /B+A
3 1 1 BA /B+/A
Tabela 8 – Exemplo 1 – Definição de termos

C = B+/A
C = (/B/A)+(B/A)+(BA)
/C = (B+A)(/B+A)(/B+/A)
/C = /BA

Exemplo 2: três entradas

D = max{0,3,4,5,6}
D = min{1,2,7}
/D = max{1,2,7}
/D = min{0,3,4,5,6}

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 101
Sistemas digitais – 30/01/2021

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/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 /C+/B+A CB/A
7 1 1 1 CBA /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)+(/CB/A)+(CBA)
/D = (C+B+A)(C+/B+A)(/C+/B+/A)
/D = (/C/BA)+(/CBA)+(C/B/A)+(C/BA)+(CB/A)

Prof. Marco Aurélio Seluque Fregonezi


102 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: quatro entradas

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 103
Sistemas digitais – 30/01/2021

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/BA
2 0 0 1 0 D+C+/B+A /D/CB/A
3 0 0 1 1 /D/CBA D+C+/B+/A
4 0 1 0 0 /DC/B/A D+/C+B+A
5 0 1 0 1 /DC/BA D+/C+B+/A
6 0 1 1 0 D+/C+/B+A /DCB/A
7 0 1 1 1 D+/C+/B+/A /DCBA
8 1 0 0 0 /D+C+B+A D/C/B/A
9 1 0 0 1 D/C/BA /D+C+B+/A
10 1 0 1 0 /D+C+/B+A D/CB/A
11 1 0 1 1 D/CBA /D+C+/B+/A
12 1 1 0 0 DC/B/A /D+/C+B+A
13 1 1 0 1 DC/BA /D+/C+B+/A
14 1 1 1 0 DCB/A /D+/C+/B+A
15 1 1 1 1 DCBA /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/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+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/BA)+(/D/CB/A)+(/DCB/A)+(/DCBA)+
+(D/C/B/A)+(D/CB/A)

Prof. Marco Aurélio Seluque Fregonezi


104 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 03 – Operações lógicas


Operação é o ato de aplicar algum procedimento de transformação de uma ou mais variáveis
ou constantes na obtenção de um resultado predizível. O pensamento filosófico e a aritmética de-
cimal são formados por um apanhado de operadores. O uso conjunto dos operadores e das variáveis
e constantes define aquilo que chamamos de matemática.

Operação 1: Confirmação ou positivação

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.

Exemplos de circuitos integrados comerciais da porta YES são o 4049 e o 4050.


No contexto dos circuitos analógicos, o buffer é chamado, erradamente, de “amplificador de
potência”. Isto é um erro porque, em circuitos eletrônicos, a fim de que houvesse um circuito am-
plificador de potência, seria necessário que houvesse amplificação de tensão e de corrente ao
mesmo tempo, em sua componente alternada. Isso, porém, não acontece. Por razões de otimização
de performance e de custo, os projetistas constroem os equipamentos amplificadores de áudio ou
vídeo por meio da arquitetura de uma série de amplificadores ligados em cascata, cada um deles
responsável por uma etapa da amplificação, sendo que as primeiras etapas são construídas com
amplificadores de tensão, também chamados de “amplificadores de pequenos sinais” e as últimas
etapas são construídas com amplificadores de corrente. Considerando que as últimas etapas são
aquelas que lidam com uma potência elétrica maior, então é feita a equivocada associação das eta-
pas de potência com o amplificador de corrente. Alguns engenheiros, erradamente, fazem o uso do
nome “amplificador de potência” quando o transistor envolvido é de potência. No contexto do co-
mércio, a expressão “amplificador de potência” é empregado para aqueles equipamentos cuja po-
tência está acima daquela demandada para o uso doméstico.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 105
Sistemas digitais – 30/01/2021

Operação 2: Negativação ou inversão

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”.

Neste exemplo 2, podemos observar algumas características do cálculo proposicional:


1. Uma proposição pode receber várias refutações diferentes.
2. Para que a refutação exista, ela não precisa retratar a realidade. No caso da primeira
refutação, a afirmação de que o Brasil é uma monarquia é falsa, mas, mesmo assim,
a refutação existe.
3. Uma refutação não precisa ser hegemônica. No caso da segunda refutação, algumas
pessoas podem concordar com ela e outras pessoas podem discordar.
4. Uma refutação pode ser parcial. Neste exemplo, a proposição não especifica o tipo
de riqueza em questão e a refutação parcial faz a separação entre dois tipos de ri-
queza. Mais uma vez, os leitores tem a liberdade para concordar ou não com a afir-
mação proposta na refutação parcial, mas, mesmo assim, ela continua existindo.

No contexto da álgebra booleana, a negativação é chamada de operação “NOT”. Os circuitos


integrados que proporcionam esta função são chamados de inverter. Exemplos de circuitos integra-
dos comerciais da porta NOT são o 74LS04 e o 4069.
No caso da tecnologia CMOS, as funções lógicas são geradas na maneira complementada
naturalmente. Sendo assim, a função YES, em tecnologia CMOS, é obtida através da ligação de dois
inversores lógicos em série.

Operação 2: Intersecção ou conjunção (“E” lógico)

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).

No contexto da álgebra booleana, esta operação é camada de “multiplicação lógica”.


Os circuitos integrados que proporcionam esta função são chamados de “AND”. Exemplos
de circuitos integrados comerciais da porta AND são o 74LS00 e o 4081.

Operação 3: União ou disjunção (“OU” lógico)

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:

1. Eu vou passear se eu estiver de folga ou se for domingo. Se for domingo e eu também


estiver de folga, eu também vou passear.
2. Eu vou beber água se eu estiver com sede ou se for praticar atividade física. Se eu for
praticar atividade física e também estiver com sede, eu também vou beber água.
3. Eu vou comprar o produto se eu precisar dele ou se o custo for muito baixo. Se eu
precisar do produto e ele tiver baixo custo, eu também vou compra-lo.
4. Eu vou investir na poupança se o rendimento for bom ou se eu tiver dinheiro so-
brando. Se eu tiver dinheiro sobrando e o rendimento na poupança for bom, eu tam-
bém farei o investimento.
5. Eu vou ao supermercado comprar macarrão ou feijão. Pode ser que eu compre ape-
nas um deles, ou pode ser que eu compre ambos.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 107
Sistemas digitais – 30/01/2021

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”.

Operação 4: “OU exclusivo”

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.

Prof. Marco Aurélio Seluque Fregonezi


108 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Talvez um dos motivos porque os modernos métodos de educação estejam apresentando


desempenho insatisfatório levando a civilização ocidental a um notório decaimento em sua capaci-
dade de organização do pensamento seja o fato de que, hoje, as escolas não introduzem as crianças
ao pleno domínio do correto uso dos principais conectivos lógicos (NOT, AND e OR), ficando este
aprendizado, quando acontece, ao cargo da construção de conhecimento por parte da própria cri-
ança, construção esta que, se não for acompanhada por um mestre experiente no uso da lógica,
poderá acontecer de maneira deficiente de modo que, hoje, nos grandes centros urbanos, em uma
cultura de acesso fácil à informação digital, não é raro encontrar adultos com larga formação aca-
dêmica incapazes de identificar o uso de tais conectivos em uma linguagem textual coloquial, carac-
terizando aquilo que, hoje, chamamos de “analfabetismo funcional”.
Uma das grandes dificuldades comunicativas que povos colonizadores encontram ao se re-
lacionar com comunidades primitivas está na limitação imposta por idiomas também primitivos nos
quais a limitação no uso das palavras impede que os colonizadores expressem o seu pensamento.
Muitos idiomas primitivos não dispunham de palavras específicas aplicadas aos conectivos lógicos.
A fim de efetuar a análise matemática dos operadores lógicos, é preciso traduzir, em núme-
ros, a satisfação das condições iniciais.

 O valor “zero” representa a não satisfação da condição.


 O valor “um” representa a plena satisfação da condição.

 No operador AND, a função somente é satisfeita se todas as premissas são satisfei-


tas.
 No operador OR, a função não é satisfeita somente se nenhuma das premissas é
satisfeitas.

 No operador AND, a função retorna “um” somente se todas as entradas valem


“um”.
 No operador OR, a função retorna “zero” somente se todas as entradas valem
“zero”.

 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.

 Nas entradas do operador AND, o valor “zero” domina o valor “um”.


 Nas entradas do operador OR, o valor “um” domina o valor “zero”.

Elemento AND IOR


Dominante ou nulo 0 1
Indiferente ou neutro 1 0
Tabela 1 – Definição dos elementos dos operadores

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 109
Sistemas digitais – 30/01/2021

decimal B A AND IOR NAND NOR XOR


0 0 0 0 0 1 1 0
1 0 1 0 1 1 0 1
2 1 0 0 1 1 0 1
3 1 1 1 1 0 0 0
Tabela 2 – Resposta dos operadores AND, IOR e XOR

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 A B A AND IOR NAND NOR XOR


0 0 00 00 0 0 3 3 0
0 1 00 01 0 1 3 2 1
0 2 00 10 0 2 3 1 2
0 3 00 11 0 3 3 0 3
1 0 01 00 0 1 3 2 1
1 1 01 01 1 1 2 2 0
1 2 01 10 0 3 3 0 3
1 3 01 11 1 3 2 0 2
2 0 10 00 0 2 3 1 2
2 1 10 01 0 3 3 0 3
2 2 10 10 2 2 1 1 0
2 3 10 11 2 3 1 0 1
3 0 11 00 0 3 3 0 3
3 1 11 01 1 3 2 0 2
3 2 11 10 2 3 1 0 1
3 3 11 11 3 3 0 0 0
Tabela 3 – Operadores aplicados à base quaternária

Exemplo 1: A=10011b; B=11001b

bit B A AND IOR NAND NOR XOR


4 1 1 1 1 0 0 0
3 1 0 0 1 1 0 1
2 0 0 0 0 1 1 0
1 0 1 0 1 1 0 1
0 1 1 1 1 0 0 0
Tabela 4 – Exemplo 1

B AND A = 10001b
B IOR A = 11011b
B NAND A = 01110b
B NOR A = 00100b
B XOR A = 01010b

Prof. Marco Aurélio Seluque Fregonezi


110 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 2: A=2304; B=1314

bit B A AND IOR NAND NOR XOR


2 10 01 00 11 11 00 11
1 11 11 11 11 00 00 00
0 00 01 00 01 11 10 01
Tabela 5 – Exemplo 2 na forma binária

bit B A AND IOR NAND NOR XOR


2 2 1 0 3 3 0 3
1 3 3 3 3 0 0 0
0 0 1 0 1 3 2 1
Tabela 6 – Exemplo 2 na forma quaternária

B AND A = 0304
B IOR A = 3314
B NAND A = 3034
B NOR A = 0024
B XOR A = 3014

Exemplo 3: A=37Fh; B=72C4

bit B A AND IOR NAND NOR XOR


2 0011 0111 0011 0111 1100 1000 0100
1 0111 0010 0010 0111 1101 1000 0101
0 1111 1100 1100 1111 0011 0000 0011
Tabela 7 – Exemplo 3 na forma binária

bit B A AND IOR NAND NOR XOR


2 3 7 3 7 C 8 4
1 7 3 2 7 D 8 5
0 F C C F 3 0 3
Tabela 8 – Exemplo 3 na forma hexadecimal

B AND A = 32Ch
B IOR A = 77Fh
B NAND A = CD3h
B NOR A = 880h
B XOR A = 453h

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 111
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


112 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 04 – Definição de funções lógicas


Foram apresentadas, no capítulo anterior, as principais funções lógicas booleanas. O uso
destas operações gera aquilo que chamamos de “funções lógicas”. A idéia de função lógica é a de
que os fatos não se criam do nada; todos os fatos são decorrentes de fatos anteriores de modo que,
sem o uso correto da cronologia, não é possível entender um fato específico. Por exemplo, para que
um criminologista possa explicar como um crime aconteceu, ele precisa estudar os fatos que ante-
cederam o crime propriamente dito. Tais favos prévios consistem das variáveis de entrada que de-
finem o resultado da aplicação de uma função lógica que responde pelo desfecho do episódio em
questão.
Função lógica é a formalização do pensamento lógico. A filosofia trata as funções lógicas de
maneira textual e esta é principal forma de definição destas funções. No caso de sistemas digitais,
por outro lado, a forma textual, embora também possa ser empregada, não é a mais concisa. Ne-
cessário se faz realizar o “salto” entre as ciências humanas em direção às ciências exatas.
Para os sistemas digitais, sete são as possibilidades de definição de funções lógicas:

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.

Lista de termos – Exemplo 1 Lista de termos – Exemplo 3


B(A) D(C,B,A)
B = max{0} D = max{1,3,7}
B = min{1} D = min{0,2,4,5,6}
/B = max{1} /D = max{0,2,4,5,6}
/B = min{0} /D = min{1,3,7}

Lista de termos – Exemplo 2 Lista de termos – Exemplo 4


C(B,A) E(D,C,B,A)
C = max{0} E = max{2,3,5,9,11,12,13}
C = min{1,2,3} E = min{0,1,4,6,7,8,10,14,15}
/C = max{1,2,3} /E = max{0,1,4,6,7,8,10,14,15}
/C = min{0} /E = min{2,3,5,9,11,12,13}

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 113
Sistemas digitais – 30/01/2021

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.

Prof. Marco Aurélio Seluque Fregonezi


114 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Expressão algébrica – Exemplo 1


B=A

Expressão algébrica – Exemplo 2


C = B+A
C = (/BA) + (B/A) + (BA)
/C = (B+/A)  (/B+A)  (/B+/A)
/C = /B/A

4 – Gráfico

O gráfico é, apenas, uma forma visualmente diferente de representação da tabela-verdade.


Cada variável de entrada, juntamente com a variável de saída, formam um gráfico individual. Os
gráficos são desenhados de maneira alinhada. Se o eixo horizontal representa a grandeza do tempo,
então os gráficos das variáveis de entrada formam um divisor de frequência onde a variável menos
significativa possui a maior frequência.

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

O diagrama de Venn é a “ponte” de comunicação entre o cálculo proposicional e a teoria dos


conjuntos. Embora este diagrama tenha enorme relevância na análise de tomada de decisões, ele
tem pouca aplicação no processo de desenvolvimento de sistemas digitais.

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.

Definição Canônico Minimizado


Lista de termos Sim Não
Tabela verdade Sim Não
Expressão algébrica Sim Sim
Gráfico Sim Não
Mapa de Karnaugh Não Sim
Diagrama de Venn Sim Não
Circuito lógico Sim Sim
Tabela 5 – Aplicação das definições

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.

Figura 1 – O software CircuitMaker Student V6.2c

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.

Prof. Marco Aurélio Seluque Fregonezi


116 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

A B A

Figura 2 – Barramentos de 1 bit e de dois bits, respectivamente.

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 117
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


118 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 119
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


120 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 05 – Irrelevâncias na forma canônica


O cérebro humano não possui capacidade suficiente para analisar todas as situações possí-
veis acerca de alguma proposição. Se você pretende fazer algum investimento financeiro, você pre-
cisa considerar várias hipóteses para o andamento dos eventos que podem influenciar nos resulta-
dos desta iniciativa, como, por exemplo, a inflação e a taxa de juros. Por outro lado, você não é
capaz de conjecturar todas as hipóteses possíveis e imagináveis, como, por exemplo, o cenário no
qual o planeta Terra é atingido por um meteoro. Você passaria o resto de sua vida pensando nestas
possibilidades e não sobraria tempo para efetuar o investimento propriamente dito. Toda pessoa
sensata precisa desprezar a possibilidade de ocorrência de algumas hipóteses. Aliás, a quantidade
de hipóteses a serem desprezadas podem ser incontáveis. Somente os desenrolares mais plausíveis
são considerados na análise a fim de que esta análise seja humanamente possível. Esta limitação é
uma das características que diferencia um ser humano e um ser divino, a saber, a onisciência.
Situações irrelevantes são aquelas cuja probabilidade de ocorrência é desprezível. Neste
caso, a análise da função para estas situações é dispensável, não é preciso tomar nenhuma decisão
em relação a uma ação futura decorrente da vigência destes cenários. A filosofia e a sabedoria pre-
veem que a separação entre o que é relevante e o que é irrelevante pode ser feita de maneira
equivocada, podendo levar ao desfecho onde os acontecimentos aconteceram de maneira impre-
vista.
Irrelevâncias também surgem na tomada de decisões. Tais irrelevâncias acontecem quando
uma informação anula a importância de outras informações, tornando-as irrelevantes. Esta anula-
ção pode acontecer de maneira favorável à decisão ou contrária. Por exemplo, na decisão pela aqui-
sição de algum bem, vários critérios são analisados, porém, observando que o preço cobrado é a
metade do preço justo, então todas as características depreciativas podem ser descartadas, depen-
dendo do caso. Outro exemplo, na decisão por algum relacionamento, apesar de inúmeras outras
virtudes apresentadas pela outra pessoa, uma certa desvirtude pode ser uma importância muito
grande ao ponto de anular todas a lista de virtudes, tornando-as irrelevantes.
Algumas funções booleanas podem conter combinações irrelevantes das variáveis de en-
trada. Isso significa que estas combinações (supostamente) nunca são usadas. Considerando que a
função precisa retornar uma resposta que deve retratar uma veracidade ou uma falsidade, e na
ausência de uma terceira opção, então, certamente, uma ocorrência forçada de uma situação rele-
vante leva a uma resposta determinada e constante. O projetista precisa fazer a escolha arbitrária
a respeito desta resposta.
Quando se trata da forma canônica, a escolha mais sensata é pelo valor “false” porque, neste
caso, as irrelevâncias não formam maxtermos nem mintermos e isto reduz a quantidade de portas
lógicas usadas pelo circuito construído em tecnologia “full custom”, mas pode não fazer a menor
diferença quando o circuito é construído em uma ROM ou PROM.
Na tabela-verdade, as irrelevâncias são representadas por “X”.
Considerando que as células da tabela-verdade marcadas como irrelevantes são despreza-
das tanto na análise de “zeros” como na análise de “uns”, então estas células recebem o valor “um”
na análise de “zeros” e recebem o valor “zero” na análise de “uns”. Isto significa que os dois tipos
de análise geram funções diferentes, diferença que se manifesta somente nas células irrelevantes
que, por jamais serem apontadas, não provocarão nenhum impacto no funcionamento do sistema.
Irrelevâncias acontecem quando a quantidade de combinações necessárias para as variáveis
de entrada é maior do que as combinações efetivamente utilizadas. Na maioria dos projetos, as
células irrelevantes são alocadas para as últimas posições da tabela, mas isso não é uma regra e
cada caso deve ser analisado individualmente.
Em aplicações como contadores e memórias, os endereços não usados quase sempre são
alocados para as últimas posições. Em aplicações onde cada variável de entrada está atribuída a
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 121
Sistemas digitais – 30/01/2021

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.

Exemplo 1: duas entradas

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 /BA
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 = /BA

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

Prof. Marco Aurélio Seluque Fregonezi


122 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 2: três entradas

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 123
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


124 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 06 – Mapa de Karnaugh


A minimização de uma expressão algébrica canônica consiste da aplicação de alguma pro-
priedade conhecida no sentido de reduzir o tamanho desta expressão de modo a, também, e prin-
cipalmente, reduzir o tamanho do circuito lógico. A redução do tamanho do circuito lógico implica
na redução do tamanho do circuito físico, geralmente um circuito eletrônico integrado a um chip. A
redução do tamanho do circuito físico apresenta algumas vantagens como:

 Redução da área ocupada no layout do circuito integrado.


 Redução da quantidade de chip´s no sistema.
 Redução do consumo de energia elétrica.
 Redução da probabilidade de ocorrência de defeito no sistema.

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.

Os métodos de minimização de circuitos lógicos se agrupam em três categorias:

 Minimização algébrica.
 Minimização sistemática.
 Minimização visual.

A minimização algébrica é a única opção válida no contexto da análise matemática. Publica-


ções acadêmicas e científicas devem usar este método somente. A minimização sistemática não é
adequada para o uso humano mas, sim, para o computador. Métodos sistemáticos são aqueles nos
quais não é preciso usar a inteligência humana, mas, apenas, cálculos que qualquer computador é
capaz de realizar. Métodos sistemáticos consistem de algoritmos que podem ser implementados
em diversas linguagens de programação de alto nível.
O método de minimização visual é o mais limitado dentre as três categorias mas, também,
é o mais indicado para estudantes que estejam iniciando suas abordagens nos processos de mini-
mização. O mapa de Karnaugh é um método visual, mas outros métodos visuais podem ser desen-
volvidos futuramente.
Maurice Karnaugh foi um físico e matemático norte-americano nascido na cidade de Nova
Iorque em 1924. Por mais de uma década, Karnaugh trabalhou na Bell Labs, onde o efeito da trans-
resistência bipolar foi descoberto por William Shockley em 1948.
O mapa de Karnaugh é a forma mais intuitiva de efetuação do processo de minimização,
porém não é o mais eficiente. Quando se trata de funções com seis ou mais variáveis de entrada, o

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 125
Sistemas digitais – 30/01/2021

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.

B A dec C B A dec D C B A dec


0 0 0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 1 1 0 0 0 1 1
1 1 3 0 1 1 3 0 0 1 1 3
1 0 2 0 1 0 2 0 0 1 0 2
1 1 0 6 0 1 1 0 6
1 1 1 7 0 1 1 1 7
1 0 1 5 0 1 0 1 5
1 0 0 4 0 1 0 0 4
1 1 0 0 12
1 1 0 1 13
1 1 1 1 15
1 1 1 0 14
1 0 1 0 10
1 0 1 1 11
1 0 0 1 9
1 0 0 0 8
Tabela 1 – Código Gray

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.

Prof. Marco Aurélio Seluque Fregonezi


126 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 Elementos Variáveis eliminadas


célula 1 20 0
1
par 2 2 1
2
quadra 4 2 2
octeto 8 23 3
Tabela 5 – Eliminação das variáveis

Grupamento Variantes
célula 11
par 21 , 12
quadra 41 , 14 , 22
octeto 81 , 18 , 42 , 24 ,
Tabela 6 – Formatos

Figura 1: Pares e quadras

Figura 2: Quadras inválidas

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 127
Sistemas digitais – 30/01/2021

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/BA” e “C/BA”. Como a variável “C” muda de valor de
uma célula para outra, então ela é descartada.
D = min{1,5}
D = /BA

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

Prof. Marco Aurélio Seluque Fregonezi


128 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

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 “D” e “C” mudam de valor de uma célula para outra, então elas são descartadas.
E = min{3,7,11,15}
E = BA

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

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 “B” e “A” mudam de valor de uma célula para outra, então elas são descartadas.
E = max{8,9,10,11}
E = /D+C

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/CBA”, “/DCBA” e “DCBA”. 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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 129
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


130 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 07 – Mapa de Karnaugh de vários IPE´s


Dentro do contexto do estudo a respeito do pensamento humano quanto às tomadas de
decisão, podemos afirmar que um implicante primo essencial (IPE) seria um segmento do pensa-
mento, um sub-conjunto da análise. Quando o pensamento possui dois ou mais IPE´s, então a aná-
lise precisa ser dividida em vários sub-argumentos. Cada IPE gera um sub-argumento (ou argumento
parcial), e a ligação entre estes sub-argumento forma o argumento completo.
No capítulo anterior foi apresentada a minimização de funções que formem um único grupa-
mento no mapa de Karnaugh. Neste capítulo, será apresentada a minimização de funções que for-
mem vários grupamentos no mapa. Três conceitos precisam ser muito bem compreendidos a fim
de que não se cometa erros no uso do Mapa de Karnaugh.
Implicante: É qualquer subconjunto da função. Toda função booleana pode ser representada
por um produtório de maxtermos (análise de “zeros”) ou por um somatório de mintermos (análise
de “uns”). Um implicante é um sub-conjunto desta lista de termos que satisfaz os critérios de for-
mato apresentados no capítulo anterior, a saber, a célula isolada, o par, o quarteto, o octeto, etc.
Implicante primo: É o implicante que não está contido em nenhum outro implicante. É o im-
plicante que não é sub-conjunto de nenhum outro implicante. Em outras palavras, é o máximo ta-
manho de implicante para a situação em questão.
Implicante primo essencial - IPE: Essencial é tudo aquilo que não pode faltar. A sua ausência
im-plica em erro. No mapa de Karnaugh, o implicante primo essencial possui, pelo menos, uma cé-
lula não irrelevante com o valor analisado (“zeros” ou “uns”) que não pertence a nenhum outro
implicante primo essencial. A ausência do implicante primo essencial significa que uma ou mais cé-
lulas não são cobertas por nenhum outro implicante primo essencial de modo que a síntese apre-
senta erro.
A minimização por mapa de Karnaugh implica na identificação dos maiores implicantes pri-
mos essenciais, pois, quanto maiores são os implicantes, maior é a redução do tamanho da expres-
são algébrica. Esta identificação, apesar de intuitiva, nem sempre é tarefa fácil e requer a adoção
de alguns cuidados norteadores.
O primeiro cuidado é o de iniciar o processo por meio dos tamanhos maiores. Se o mapa
possui oito células, comece pelas quadras. Se o mapa possui dezesseis células, comece pelos octe-
tos, e assim por diante. Deixe as células isoladas para o final do processo.
O segundo cuidado é o de priorizar os IPE´s que não compartilham células. Por exemplo, na
etapa dos pares, comece por aqueles pares cujas células pertençam somente a eles, caso existam.
Quando todas as opções de IPE´s no tamanho em análise (pares, quadras ou octetos) pos-
suem compartilhamento de células, priorize as células que pertencem a uma única opção de IPE e
forme os demais IPE´s a partir da situação obtida.
Observando atentamente estas três recomendações, a chance de incorrer em erro na análise
do mapa diminui bastante.
Há situações nas quais existem duas opções válidas. Por exemplo, há casos onde uma célula
pode ser coberta por um par horizontal ou vertical. Diante deste cenário, cada escolha cria uma ex-
pressão algébrica diferente, porém ambas correspondem à mesma função booleana.
Na forma canônica, a análise de “zeros” produz uma expressão algébrica no formato de pro-
dutório de maxtermos; a análise de “uns” produz uma expressão algébrica no formato de somatório
de mintermos. Na forma minimizada por mapa de Karnaugh, não se fala em “termos”, pois ocorre
eliminação de variáveis. A análise de “zeros” produz uma expressão algébrica no formato de pro-
duto de somas; a análise de “uns” produz uma expressão algébrica no formato de soma de produtos.
Cada IPI é uma função independente. A função completa é obtida por meio da junção das
funções parciais. Esta junção é feita por meio da multiplicação lógica na análise de “zeros” ou por
meio da adição lógica na análise de “uns”.
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 131
Sistemas digitais – 30/01/2021

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 = /BA
D = IPE1 + IPE2 D = /C+(/BA)

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)

Prof. Marco Aurélio Seluque Fregonezi


132 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 = BA
IPE2 = min{1,3} IPI2 = /D/C/A
IPE3 = min{8} IPI3 = D/C/B/A
E = IPE1 + IPE2 + IPE3 E = (BA)+(/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)+(/DBA)+(DCA)+(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/CA)+(CBA)+(DC/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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 133
Sistemas digitais – 30/01/2021

Exemplo 6: tomada de decisão

Supondo a situação:
A minha decisão pelo investimento em uma empresa está sujeita a quatro fatores:

 O valor das ações da empresa está em crescimento.


 A empresa não possui processos judiciais em andamento nos quais ela é ré.
 A empresa não possui dívidas com empregados nem com fornecedores.
 A taxa de juros no Brasil está baixa.

Tomarei a decisão com base nos seguintes argumentos:

 Se os quatro fatores são satisfeitos, então eu invisto na empresa (óbvio).


 Se o valor das ações está em crescimento e a taxa de juros está baixa, eu faço o investi-
mento.
 Se não há processos judiciais nem dívidas e as ações estão em crescimento, eu faço o in-
vestimento.

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.

A. O valor das ações da empresa está em crescimento.


B. A empresa não possui processos judiciais em andamento nos quais ela é ré.
C. A empresa não possui dívidas com empregados nem com fornecedores.
D. A taxa de juros no Brasil está baixa.

 Se o valor das ações está em crescimento e a taxa de juros está baixa, eu faço o investi-
mento: (DA)
 Se não há processos judiciais nem dívidas e as ações estão em crescimento, eu faço o in-
vestimento (CBA).

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 = (DA)
IPI1 = (CBA)
E = IPI1 + IPI2 E = (DA)+(CBA)

Prof. Marco Aurélio Seluque Fregonezi


134 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 08 – Irrelevância em mapa de Karnaugh


Nos capítulos anteriores, foi apresentado o ensinamento segundo o qual, na forma canônica,
as células da tabela-verdade marcadas como irrelevantes são desprezadas tanto na análise de zeros
como na análise de uns. Este procedimento não deve ser usado em mapa de Karnaugh.
Irrelevâncias em mapas de Karnaugh, quando existem, precisam ser usadas para melhorar o
processo de minimização. Em outras palavras, as irrelevâncias devem ser usadas para aumentar o
tamanho dos grupos de células formadores de implicantes primos essenciais.
Um cuidado deve ser tomado com relação ao fato de que irrelevâncias jamais podem ser
usadas para criar novos implicantes, pois aquilo que é irrelevante não é essencial. Em outras pala-
vras, os IPE´s somente podem ser criados com base nos termos relevantes, mas eles podem ser
ampliados com base nos termos irrelevantes.
Um procedimento simples para identificar a formação equivocada de um IPE consiste da
observação se algum IPE marcado no mapa possui, dentre suas células exclusivas, apenas irrelevân-
cias. Isso não pode acontecer.
Tal como na forma canônica, as irrelevâncias em mapas de Karnaugh levam à definição de
funções diferentes para as análises de “zeros” e de “uns”.

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 significa na obtenção de uma expressão algébrica maior.


D´(011) = 1
D´ = C+B+/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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 135
Sistemas digitais – 30/01/2021

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

As duas irrelevâncias permitem a formação de uma quadra a partir do par de zeros.


D = C(B+/A)

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

A mesma irrelevância pode ser compartilhada por vários IPE´s.


D = (C+B)(C+/A)(B+/A)

Prof. Marco Aurélio Seluque Fregonezi


136 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

D1 = max{1,3,5} D1 = (B+/A)(C+/A) D1(010)=1


D2 = max{1,2,3,5} D2 = (B+/A)(C+/B) D2(010)=0
D1D2

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

D0 = max{0,1,2,3,5} D0 = C(B+/A) D0(0X0)=0


D1 = min{0,2,4,6,7} D1 = /A+(CB) D1(0X0)=1
D0  D1

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

E0 = max {02,06,08,09,10,11,12,13,14,15} E0 = /D(/B+A)


E1 = min {00,01,02,03,05,07,09,11,13,15} E1 = A+(/D/C)
E0  E1

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 137
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


138 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 09 – Mapa de Karnaugh sem spikes


Na música intitulada “O tempo não para”, grande sucesso musical de 1988, de autoria de
Cazuza e Arnaldo Brandão, o cantor diz “Tuas ideias não correspondem aos fatos”. Esta frase, ge-
nuinamente genial, aborda o problema que existe em “problematizar” a realidade transformando-
a naquilo que é considerado ideal, correndo o risco de acreditar que o real corresponde ao ideal.
Trata-se de um comportamento histérico no qual a percepção de mundo – cosmovisão – não estaria
baseada na percepção da realidade, mas na formulação emocional de um “mundo melhor”.
Qual é o engenheiro ou técnico experiente que nunca passou pela desagradável experiência
de investir horas ou dias no projeto de alguma benfeitoria aplicando todas as regras de dimensio-
namento apresentadas nos livros acadêmicos e nos guias técnicos, bem como os conhecimentos
obtidos por meio da observação dos conhecimentos obtidos nos conselhos oferecidos pelos profes-
sores na época da instrução, descobre, na etapa de prototipagem, ou no início da obra, que o pro-
jeto, inexplicavelmente, não funciona. Todos os cálculos estão corretos, mas o comportamento real
do projeto não corresponde ao esperado.
No contexto das ciências naturais, hazards são fatores que afetam negativamente o funcio-
namento de benfeitorias e que não são diagnosticadas nos cálculos efetuados durante o projeto do
sistema. Hazards são problemas que somente são descobertos após a realização dos primeiros tes-
tes.
Por exemplo, a criação de uma vacina de combate contra um patógeno não está limitada à
simples análise matemática dos processos envolvidos e nem aos ensaios realizados em laboratório.
É preciso que uma grande quantidade de pessoas sejam usadas como cobaias a fim de que os sin-
tomas colaterais manifestos nestas pessoas sirvam como parâmetro para o refinamento no projeto
desta vacina.
Quanto mais experiente é o projetista, ou quanto maior é o número de pessoas envolvidas
no projeto de maneira sinergética, ou quanto maior é o tempo gasto nos trabalhos, menor é a pro-
babilidade de que hazards sejam encontrados.
No contexto dos circuitos digitais, os hazards estão decorrentes de efeitos analógicos ine-
rentes aos componentes eletrônicos que efetuam as funções lógicas. Esses efeitos analógicos po-
dem ser a corrente elétrica, a tensão elétrica, mas o efeito que mais gera hazards em sistemas digi-
tais é o tempo.
Todas as portas lógicas construídas a partir de transistores lançam mão do funcionamento
do chaveamento eletrônico, quando o transistor opera como uma chave liga-desliga. Nesta opera-
ção de ligamento e desligamento, existe um inerente atraso (delay). Este tempo de atraso (delay
time) em dispositivos ligados em série gera um atraso de propagação ou tempo de propagação (pro-
pagation time ou propagation delay).
O tipo mais simples e mais comum de hazard em circuitos digitais é spike. Eles consistem de
um pico de valor lógico. Este pico possui uma duração muito baixa em comparação com os outros
tempos decorrentes do funcionamento normal do circuito. É um pulso bastante estreito, porém,
mesmo assim, ele é suficiente para agir como gatilho em um outro circuito, gerando comporta-
mento inadequado em contadores e registradores.
Hazzards em circuitos digitais são fenômenos indesejados decorrentes de características elé-
tricas e temporais e que não podem ser previstas por meio de uma análise puramente booleana.
Sua análise requer o envolvimento de grandezas como tensão elétrica, corrente elétrica, potência
elétrica, impedância de entrada, impedância de saída, etc.
Há muitas aplicações nas quais a questão dos spikes não faz a menor diferença, como, por
exemplo, o controle de display´s. A visão humana não é capaz de identificar a ocorrência dos spikes
haja vista que a sua duração não passa de alguns nanossegundos. Outra categoria de aplicações são

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 139
Sistemas digitais – 30/01/2021

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.

Há dois tipos de spikes:


Spike em “0”: O valor lógico deveria permanecer constante em “um”, porém ele sofre um
pico para baixo.
Spike em “1”: O valor lógico deveria permanecer constante em “zero”, porém ele sofre um
pico para cima.
Os spikes podem acontecer também em função degrau. Normalmente isso ocorre nos pró-
prios interruptores que exercem o acionamento das entradas lógicas. Novamente, a colocação de
um capacitor em cada um desses interruptores elimina estes spikes.
Os circuitos digitais construídos a partir de expressões algébricas minimizadas com mapa de
Karnaugh podem gerar spikes quando o valor das entradas geram a mudança do endereçamento de
uma célula para outra de modo que o caminho envolvido inclui a passagem por uma célula de valor
contrário.
Uma das maneiras de diminuir a incidência de spikes é o uso, no mapa de Karnaugh, de al-
guns implicantes primos não essenciais que façam a ligação entre outros implicantes primos essen-
ciais. Este procedimento reduz a eficiência do processo de minimização e provoca o aumento no
tamanho do circuito.
Cada IPE representa uma porta lógica OR em análise de zeros ou uma porta lógica AND em
análise de uns. Caso sejam usados IP´s não essenciais para reduzir os spikes, então uma porta lógica
deve ser usada para cada um desses IP´s adicionais.

Prof. Marco Aurélio Seluque Fregonezi


140 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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:

IPE01 = max{1,3} IPE11 = min{0,2}


IPE02 = max{4,5} IPE12 = min{6,7}
IPE01 = /C+B IPE11 = CB
IPE02 = C+/A IPE12 = /C/A
D = IPE01  IPE02 D = IPE11 + IPE12
D = (/C+B)(C+/A) D = (CB)+(/C/A)

Dois fenômenos distintos não podem acontecer exatamente no mesmo instante.


Na análise de “zero”, as células 1 e 5 são adjacentes e, por isso, podem sofrer uma transição
imediata de uma para a outra. Considerando que estas duas células possuem o mesmo valor, “zero”,
então esta transição não pode provocar mudança na saída “D”. Se a primeira porta OR desliga (vai
para “um”) antes do ligamento da segunda porta OR, então, por um certo tempo, as duas portas
produzem, simultaneamente, o valor “um” (ambas desligadas). Neste tempo, a saída sofre um spike
para cima.
Na análise de “uns”, as células 2 e 6 são adjacentes e, por isso, podem sofrer uma transição
imediata de uma para a outra. Considerando que estas duas células possuem o mesmo valor, “um”,
então esta transição não pode provocar mudança na saída “D”. Se a primeira porta AND desliga (vai
para “zero”) antes do ligamento da segunda porta AND, então, por um certo tempo, as duas portas
produzem, simultaneamente, o valor “zero” (ambas desligadas). Neste tempo, a saída sofre um
spike para baixo.
Acrescentando, na análise de zeros, a terceira porta OR, IPNE03, pertinente ao implicante
primo não essencial, esta porta permanece ligada (valor “zero”) no momento em que as duas outras
portas produziriam o spike. Como o valor “zero” é dominante na porta AND, então a saída “D” per-
manece em “zero”. O spike é eliminado. Acrescentando, na análise de uns, a terceira porta AND,
IPNE13, pertinente ao implicante primo não essencial, esta porta permanece ligada (valor “um”) no
momento em que as duas outras portas produziriam o spike. Como o valor “um” é dominante na
porta OR, então a saída “D” permanece em “um”. O spike é eliminado.

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 = (CB)+(/C/A)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 141
Sistemas digitais – 30/01/2021

C B A C B A

IPE01 IPE11

IPE02 D IPE12 D

Figura 1 – Exemplo 2 – Método convencional

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

Figura 2 – Exemplo 2 – Surgimento do spike para baixo

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

IPE01 = max{1,3} IPE11 = min{0,2}


IPNE03 = max{1,5} IPNE13 = min{2,6}
IPE02 = max{4,5} IPE12 = min{6,7}
D = IPE01  IPE03  IPE02 D = IPE11 + IPE13 + IPE12

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.

Prof. Marco Aurélio Seluque Fregonezi


142 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

D = (/C+B)(B+/A)(C+/A) D = (CB)+(B/A)+(/C/A)
C B A C B A

D D

Figura 3 – Exemplo 2 – Redução de spikes

7 6 2 0

minA

minC

minB

Figura 4 – Exemplo 1 – Remoção do spike

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 = (/BA)+(DA)+(DB)+(B/A)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 143
Sistemas digitais – 30/01/2021

D C B A

Figura 4 – Exemplo 3 – Redução de spikes

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 = (CA)+(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 = (CA)+(CB)+(B/A)

D C B A D C B A

E E

Figura 5 – Exemplo 4 – Redução de spikes

Prof. Marco Aurélio Seluque Fregonezi


144 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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)+(/DBA)+(DCA)+(C/B/A)
E = (/D/B/A)+(/D/CA)+(CBA)+(DC/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)+(/DBA)+(DCA)+(C/B/A)+(/D/B/A)+(/D/CA)+(CBA)+(DC/B)

D C B A

Figura 6 – Exemplo 5 – Redução de spikes

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 145
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


146 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 10 – Minimização de funções múltiplas


Nos capítulos anteriores, os sistemas apresentados possuem, cada um deles, uma única fun-
ção de saída. Um circuito digital convencional costuma apresentar várias variáveis de saída. Essas
variáveis de saída são função das mesmas variáveis de entrada, pois o circuito é o mesmo. Nem
sempre a melhor minimização para estas funções individuais é a melhor minimização para o circuito
completo.
Quando a quantidade de saídas é muito grande, a forma canônica é mais indicada e o circuito
seria construído em uma ROM ou PROM. Quando existe, apenas, uma saída, a forma minimizada é
mais indicada. Quando existem algumas poucas saídas, uma análise refinada vai dizer qual é a me-
lhor opção. Quanto maior é a quantidade de saídas, maior é a atratividade da forma canônica.

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

Variáveis de entrada: D,C,B,A.


Variáveis de saída: E1,E2,E3.
E1 = min{0,1} E1 = /D/C/B
E2 = min{12,14} E2 = DC/A
E3 = min{8,12} E3 = D/B/A

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 147
Sistemas digitais – 30/01/2021

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

Variáveis de entrada: D,C,B,A.


Variáveis de saída: E1,E2,E3.
E1 = min{0,1,3,7}
E2 = min{9,12,13,14}
E3 = min{4,5,8,12}
IPE1 = min{0,1} IPE1 = (/D/C/B)
IPE2 = min{3,7} IPE2 = (/DBA)
IPE3 = min{12,14} IPE3 = (DC/A)
IPE4 = min{9,13} IPE4 = (D/BA)
IPE5 = min{8,12} IPE5 = (D/B/A)
IPE6 = min{4,5} IPE6 = (/DC/B)
E1 = IPE1 + IPE2 E1 = (/D/C/B) + (/DBA)
E2 = IPE3 + IPE4 E2 = (DC/A) + (D/BA)
E3 = IPE5 + IPE6 E3 = (D/B/A) + (/DC/B)

D C B A

E1

E2

E3

Figura 2 – Exemplo 2

Neste segundo exemplo, as três funções também são minimizadas independentemente


umas das outras; nenhum critério adicional é incorporado diante de que as três funções são cons-
truídas no mesmo circuito.

Prof. Marco Aurélio Seluque Fregonezi


148 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Variáveis de entrada: D,C,B,A.


Variáveis de saída: E1,E2,E3.
E1 = min{0,1,12,14}
E2 = min{8,12,14}
E3 = min{0,1,8,12}
IPE1 = min{0,1} IPE1 = (/D/C/B)
IPE2 = min{12,14} IPE2 = (DC/A)
IPE3 = min{8,12} IPE3 = (D/B/A)
E1 = IPE1 + IPE2 E1 = (/D/C/B) + (DC/A)
E2 = IPE2 + IPE3 E2 = (DC/A) + (D/B/A)
E3 = IPE3 + IPE1 E3 = (D/B/A) + (/D/C/B)

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 149
Sistemas digitais – 30/01/2021

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

Variáveis de entrada: D,C,B,A.


Variáveis de saída: E1,E2.
E1 = min{0,1,5,13}
E2 = min{0,1,5,8}
IPE1 = min{0,1} IPE1 = (/D/C/B)
IPE2 = min{5,13} IPE2 = (C/BA)
IPE3 = min{0,8} IPE3 = (/C/B/A)
IPE4 = min{1,5} IPE4 = (/D/CA)
E1 = IPE1 + IPE2 E1 = (/D/C/B)+(C/BA)
E2 = IPE3 + IPE4 E2 = (/C/B/A)+(/D/BA)

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

Prof. Marco Aurélio Seluque Fregonezi


150 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

E1 = IPE1 + IPE2 + IPE4


E2 = IPE3 + IPE4 + IPE1
E1 = (/D/C/B)+(C/BA)+(/D/BA)
E2 = (/C/B/A)+(/D/BA)+(/D/C/B)

D C B A

E1 E2
Figura 5 – Exemplo 4 com redução de spikes

Exemplo 5:

Variáveis de entrada: B,A.


Variáveis de saída: C1,C2,C3.
C1 = max{1,2} C1 = (/B+A)(B+/A)
C2 = max{0} C2 = (B+A)
C3 = max{0,1,2} C3 = (B+A)(/B+A)(B+/A); C3 = BA

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 = C1C2

A lista de maxtermos de C3 corresponde à soma das listas de maxtermos de C1 e de C2.


Considerando que a implementação física de C1 e de C2 implica no uso de três portas lógicas OR,
uma para cada maxtermo, e que esses três maxtermos são justamente aqueles usados por C3, então
a minimização de C3 não traz nenhuma redução no tamanho do circuito (figura 6A).
A a minimização permite a troca de uma porta lógica AND de três entradas por uma de duas
entradas (figura 7A).
Na implementação pela forma canônica (figura 6A), usamos uma porta de duas entradas
para C1, uma de três entradas para C3 e nenhuma porta para C2. Isto implica em uma possível falta
de sincronia na atualização dos três bits de saída. Para minimizar este problema, todas as saídas
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 151
Sistemas digitais – 30/01/2021

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) C1C2
B+A
C3
C2

BA
C3
C1 C2
Figura 7 – Exemplo 5 – C3 minimizado e C3 em função de C1 e de C2 respectivamente

Prof. Marco Aurélio Seluque Fregonezi


152 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 6:

Variáveis de entrada: C,B,A.


Variáveis de saída: D1,D2,D3.
D1 = max{0,3,5}
D2 = max{1}
D3 = max{0,1,3,5}
IPE1 = max{0} ; IPE1 = C+B+A
IPE2 = max{1} ; IPE2 = C+B+/A
IPE3 = max{3} ; IPE3 = C+/B+/A
IPE4 = max{5} ; IPE4 = /C+B+/A
D1 = IPE1  IPE3  IPE4 ; D1 = (C+B+A)(C+/B+/A)( /C+B+/A)
D2 = IPE2 ; D2 = C+B+/A
D3 = IPE1  IPE2  IPE3  IPE4 ; D3 = (C+B+A)(C+B+/A)(C+/B+/A)(/C+B+/A)
Minimizando D3: D3 = (C+B)(C+/A)(B+/A)

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 153
Sistemas digitais – 30/01/2021

Exemplo 7:

Variáveis de entrada: D,C,B,A.


Variáveis de saída: E1,E2,E3.
E1 = max{4,5,6,7,8,9}
E2 = max{4,5,8}
E3 = max{6,7,9}
E1 = (D+/C+B+A)(D+/C+B+/A)(D+/C+/B+A)(D+/C+/B+/A)(/D+C+B+A)(/D+C+B+/A)
E2 = (D+/C+B+A)(D+/C+B+/A)(/D+C+B+A)
E3 = (D+/C+/B+A)(D+/C+/B+/A)(/D+C+B+/A)

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

Figura 9 – Exemplo 7 – Forma minimizada convencional

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.

Prof. Marco Aurélio Seluque Fregonezi


154 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

D C B A

E1

E2

E3

Figura 10 – Exemplo 7 – Forma minimizada convencional com otimização da sincronia

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

O mapa de Karnaugh da função E1 (minimização global, tabela 8) não apresenta a melhor


minimização para a função E1 isolada (minimização local, tabela 7) haja vista que não foram usados
implicantes primos essenciais. Os dois pares estão incluídos em uma quadra e as duas células isola-
das estão incluídas em um par. São quatro implicantes primos não essenciais. Observando os IPI´s

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 155
Sistemas digitais – 30/01/2021

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.

IPE1 = min{0,1} IPE1 = /D/C/B


IPE2 = min{2,3} IPE2 = /D/CB
IPE3 = min{12,14} IPE3 = DC/A
IPE4 = min{13,15} IPE3 = DC/A
IPE5 = min{8,12} IPE4 = DCA
IPE6 = min{1,9} IPE6 = /C/BA

E1 = IPE1 + IPE4 + IPE6 E1 = (/D/C/B) + (DCA) + (C/BA)


E2 = IPE1 + IPE2 + IPE3 + IPE6 E2 = (/D/C/B) + (/D/CB) + (DC/A) + (/C/BA)
E3 = IPE2 + IPE3 + IPE4 + IPE5 E3 = (/D/CB) + (DC/A) + (DCA) + (D/B/A)

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.

Prof. Marco Aurélio Seluque Fregonezi


156 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 157
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


158 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 11 – Mapa de Karnaugh de cinco variáveis


O uso do mapa de Karnaugh não é recomendado para funções de seis ou mais variáveis por
causa da dificuldade na identificação dos IPE´s. Existem métodos iterativos que resolvem o pro-
blema da dificuldade nesta identificação e permitem uma fácil implementação do processo em qual-
quer linguagem de programação para computadores.
O mapa possui quatro linhas e oito colunas. As três variáveis usadas no endereçamento das
colunas são “C”, “B” e “A”. As duas variáveis usadas no endereçamento das linhas são “E” e “D”.
Para mapa de Karnaugh de cinco variáveis, tem-se dois “sub-mapas” de quatro variáveis,
lado a lado. A variável mais significativa das colunas, “C”, identifica estes dois “sub-mapas”. O da
esquerda é identificado por “C=0” e o da direita por “C=1”. Por causa do efeito de espelhamento do
código Gray, o “sub-mapa” da direita está invertido em relação ao da esquerda.
A grande dificuldade do mapa de Karnaugh de cinco variáveis está no fato de que alguns
IPE´s não podem ser definidos por uma única circunferência.
Nos exemplos a seguir, quando algumas linhas verticais do barramento de entrada não são
usadas, elas podem ser removidas.

Variáveis de colunas: C,B,A


Variáveis de linhas: E,D
Variável de saída: F

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}

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 159
Sistemas digitais – 30/01/2021

IPE1 = min{00,01,02,03} ; IPE1 = /E/D/C


IPE2 = min{10,11,14,15} ; IPE2 = /EDB
IPE3 = min{18,22,26,30} ; IPE3 = EB/A
F = IPE1 + IPE2 + IPE3 ; F = (/E/D/C) + (/EDB) + (EB/A)

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) + (/EDB) + (EB/A) + (/ECB) + (DB/A) + (/CB/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

Figura 2 – Exemplo 1 com IPNE´s

Prof. Marco Aurélio Seluque Fregonezi


160 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 = EA
IPE2 = min{01,05,09,13} ; IPE2 = /E/BA
IPE3 = min{16,20} ; IPE3 = E/D/B/A
F = IPE1 + IPE2 + IPE3 ; F = (DA) + (/E/BA) + (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)

Prof. Marco Aurélio Seluque Fregonezi


162 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 163
Sistemas digitais – 30/01/2021
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 16 – Exemplo 7 – Análise de uns

F1 = min{6,8,9,10,11,14,21,23,24,26} + X{28,29,30,31}
IPE11 = min{8,9,10,11} ; IPE11 = /ED/C
IPE12 = min{10,14,26,30} ; IPE12 = DB/A
IPE13 = min{21,23,29,31} ; IPE13 = ECA
IPE14 = min{8,10,24,26} ; IPE14 = D/C/A
IPE15 = min{6,14} ; IPE15 = /ECB/A
F1 = IPE11 + IPE12 + IPE13 + IPE14 + IPE15
F1 = (/ED/C)+(DB/A)+(ECA)+(D/C/A)+(/ECB/A)

Neste exemplo, coincidentemente, a substituição das irrelevâncias é a mesma nas análises


de “zeros” e de “uns”. Neste caso, F0=F1.

Prof. Marco Aurélio Seluque Fregonezi


164 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 12 – Minimização algébrica


A minimização por meio de mapa de Karnaugh foi desenvolvida como uma ferramenta de
simplificação do processo quando a quantidade de variáveis é pequena, porém esta técnica consiste
da aplicação de propriedades algébricas representadas por meio de círculos. Em outras palavras, a
técnica do mapa de Karnaugh não é indicada para trabalhos acadêmicos e científicos. Outra desvan-
tagem do mapa de Karnaugh é que ele somente pode ser aplicado para a base binária. Os processos
algébricos são válidos para quaisquer bases. Mais uma desvantagem do mapa de Karnaugh é a maior
ocupação de espaço na página. A expressão algébrica consiste de texto puro.
Para que a minimização algébrica seja efetuada, é preciso possuir amplo entendimento a
respeito das propriedades algébricas.

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)
AB = BA (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)
(AB)C = A(BC) (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) = (AB)+(AC) (4a)
A+(BC) = (A+B)(A+C) (4b)
A propriedade 4a vale para todas as bases. A propriedade 4b vale, apenas, para base dois.

5 – Propriedade distributiva expandida


(A+B)(C+D) = (AC)+(AD)+(BC)+(BD) (5a)
(AB)+(CD) = (A+C)(A+D)(B+C)(B+D) (5b)

6 – Elemento idêntico ou idempotência


A+A = A (6a)
AA = A (6b)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 165
Sistemas digitais – 30/01/2021

7 – Elemento inverso
A+/A = 1 (7a)
A/A = 0 (7b)

8 – Elemento neutro
A+0 = A (8a)
A1 = A (8b)

9 – Elemento nulo
A+1 = 1 (9a)
A0 = 0 (9b)

10 – De Morgan
A+B = /(/A/B) (10a)
AB = /(/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.

Prof. Marco Aurélio Seluque Fregonezi


166 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Não é permitida a aplicação implícita de nenhuma propriedade. Todas as aplicações preci-


sam ser relatadas no memorial descritivo. Não é permitida a aplicação de duas propriedades ao
mesmo tempo; cada linha precisa retratar a aplicação de uma e apenas uma propriedade. As versões
“a” e “b” são propriedades diferentes. A descrição precisa conter o nome da propriedade e não o
número na lista acima, pois cada autor utiliza uma lista diferente, com numeração diferente.
Embora o procedimento de minimização por Mapa de Karnaugh permita a formação de qua-
dras diretamente, o teorema das adjacências permite o agrupamento de, apenas, duas partes. No
caso das quadras, o teorema das adjacências precisa ser aplicado duas vezes.
Comparando os exemplos 1 e 2, é possível constatar que o primeiro faz o agrupamento no
lado direito e o segundo no lado esquerdo. Essa diferença acontece porque as partes agrupáveis
estão em lados diferentes nos dois exemplos. A aplicação da propriedade distributiva requer a ob-
servação do lado pelo qual o agrupamento é efetuado. Uma inversão neste lado implica na aplicação
da propriedade comutativa dentro da propriedade distributiva e isso não é permitido.

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

D = (/C+B+A)(/C+B+/A) Forma canônica


D = [/C+B+(A/A)] Distributiva
D = [/C+B+0] Elemento inverso
D = (/C+B) Elemento neutro

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

D = (C+B+/A)(/C+B+/A) Forma canônica


D = [(/CC)+B+/A] Distributiva
D = [0+B+/A] Elemento inverso
D = (B+/A) Elemento neutro

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

D = (C+B+/A)(C+/B+/A) Forma canônica


D = (B+C+/A)(/B+C+/A) Comutativa
D = [(B/B)+C+/A] Distributiva
D = [0+C+/A] Elemento inverso
D = (C+/A) Elemento neutro

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 167
Sistemas digitais – 30/01/2021

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.

IPE1 = max{1,3} IPE1 = (C+/A) Exemplo 3


IPE2 = max{4,5} IPE2 = (/C+B) Exemplo 1
D = IPE1  IPE2
D = (C+/A)(/C+B)

Caso as minimizações anteriores não tenham sido feitas, é preciso partir do início do proce-
dimento de minimização algébrica.

D = (C+B+/A)(C+/B+/A)(/C+B+A)(/C+B+/A) Forma canônica


D = (B+C+/A)(/B+C+/A)(/C+B+A)(/C+B+/A) Comutativa
D = [(B/B)+C+/A][/C+B+(A/A)] Distributiva
D = [0+C+/A][/C+B+0] Elemento inverso
D = (C+/A)(/C+B) Elemento neutro

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

IPE1 = max{1,5} IPE1 = (B+/A) Exemplos 2


IPE2 = max{4,5} IPE2 = (/C+B) Exemplos 1
D = IPE1  IPE2
D = (B+/A)(/C+B)

D = (C+B+/A)(/C+B+A)(/C+B+/A) Forma canônica


D = (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) Comutativa
D = [(/CC)+B+/A][/C+B+(A/A)] Distributiva
D = [0+B+/A][/C+B+0] Elemento inverso
D = (B+/A)(/C+B) Elemento neutro

Prof. Marco Aurélio Seluque Fregonezi


168 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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) Forma canônica


     

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 = [(/CC)+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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 169
Sistemas digitais – 30/01/2021

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

E = (/D/C/BA)+(/DCB/A) Forma canônica


E = (/C/D/BA)+(C/DB/A) Comutativa
E = [(/C+C)/D/BA] Distributiva
E = [1/D/BA] Elemento inverso
E = (/D/BA) Elemento neutro

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

E = (/D/C/BA)+(/DCB/A)+(DCB/A)+(DCBA) Forma canônica


E = (/C/D/BA)+(C/DB/A)+(DCB/A)+(DCBA) Comutativa
E = [(/C+C)/D/BA]+[DCB(/A+A)] Distributiva
E = [1/D/BA]+[DCB1] Elemento inverso
E = (/D/BA)+(DCB) Elemento neutro

Outra opção:
IPE1 = min{1,5}
IPE1 = (/D/C/BA)+(/DCB/A) Forma canônica
IPE1 = (/C/D/BA)+(C/DB/A) Comutativa
IPE1 = (/C+C)/D/BA Distributiva
IPE1 = 1/D/BA Elemento inverso
IPE1 = /D/BA Elemento neutro
IPE2 = min{14,15}
IPE2 = (DCB/A)+(DCBA) Forma canônica
IPE2 = (DCB/A)+(DCBA) Comutativa
IPE2 = DCB(/A+A) Distributiva
IPE2 = DCB1 Elemento inverso
IPE2 = DCB Elemento neutro
E = IPE1 + IPE2
E = (/D/BA)+(DCB)

Prof. Marco Aurélio Seluque Fregonezi


170 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

E = (/D/C/BA)+(/DC/BA)+(/DCBA) Forma canônica


E = (/D/C/BA)+(/DC/BA)+(/DC/BA)+(/DCBA) Elemento idêntico
E = (/C/D/BA)+(C/D/BA)+(/DCA/B)+(/DCAB) Comutativa
E = [(/C+C)/D/BA]+[/DCA(/B+B)] Distributiva
E = [1/D/BA]+[/DCA1] Elemento inverso
E = (/D/BA)+(/DCA) Elemento neutro

Outra opção:
IPE1 = min{1,5}
IPE1 = /D/BA Vide exemplo 8
IPE2 = min{5,7}
IPE2 = (/DC/BA)+(/DCBA) Forma canônica
IPE2 = (/DCA/B)+(/DCAB) Comutativa
IPE2 = /DCA(/B+B) Distributiva
IPE2 = /DCA1 Elemento inverso
IPE2 = /DCA Elemento neutro
E = IPE1 + IPE2
E = (/D/BA)+(/DCA)

Exemplo 10: E = min{1,3,5,7}


BA
DC 00 01 11 10
00 0 1 1 0
01 0 1 1 0
11 0 0 0 0
10 0 0 0 0
Tabela 10 – Exemplo 10

E = (/D/C/BA)+(/D/CBA)+(/DC/BA)+(/DCBA) Forma canônica


E = (/D/CA/B)+(/D/CAB)+(/DCA/B)+(/DCAB) Comutativa
E = [/D/CA(/B+B)]+[/DCA(/B+B)] Distributiva
E = [/D/CA1]+[/DCA1] Elemento inverso
E = (/D/CA)+(/DCA) Elemento neutro
E = (/DA/C)+(/DAC) Comutativa
E = [/DA (/C+C)] Distributiva
E = [/DA1] Elemento inverso
E = (/DA) Elemento neutro

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 171
Sistemas digitais – 30/01/2021

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/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) Forma canônica
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) Elemento idêntico
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) Comutativa
E = (/D/CB/A)+(/D/CBA)+(/DCB/A)+(/DCBA)+
(/DCA/B)+(/DCAB)+(DCA/B)+(DCAB) Comutativa
E = [/D/CB(/A+A)]+[/DCB(/A+A)]+
[/DCA(/B+B)]+[DCA(/B+B)] Distributiva
E = [/D/CB1]+[/DCB1]+
[/DCA1]+[DCA1] Elemento inverso
E = (/D/CB)+(/DCB)+(/DCA)+(DCA) Elemento neutro
E = (/C/DB)+(C/DB)+(/DCA)+(DCA) Comutativa
E = [(/C+C)/DB]+[(/D+D) CA)] Comutativa
E = [1/DB]+[1CA] Elemento inverso
E = (/DB)+(CA) Elemento neutro

Prof. Marco Aurélio Seluque Fregonezi


172 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 13 – Conversores de código


Um conversor de código é um dispositivo que recebe uma palavra binária e a converte em
outra palavra binária. O tamanho, em bits, da palavra de entrada não precisa ser o mesmo tamanho
da palavra de saída. Cada bit da palavra de saída consiste de uma função booleana individual.
A síntese das funções booleanas que compõe o conversor de código pode ser feita na forma
canônica ou na forma minimizada. Embora seja possível misturar funções minimizadas e funções
canônicas, a tradição mostra que todas as funções devem ser submetidas ao mesmo critério de
síntese.

Exemplo 1:

Input Output Out1 = max{2,3}


0 2 Out0 = max{0,2}
1 3 Out1 = (/B+ A)  (/B+/A)
2 0 Out0 = ( B+ A)  (/B+ A)
3 1
Tabela 1 – Definição do conversor Out1 = min{0,1}
Out0 = min{1,3}
B A Out1 Out0 Out1 = (/B/A) + (/B A)
0 0 1 0 Out0 = (/B A) + ( B A)
0 1 1 1
1 0 0 0 Minimizado:
1 1 0 1 Out1 = /B
Tabela 2 – Definição das funções binárias Out0 = A

B A B A

Out1 Out0 Out1 Out0


Circuito 1 – Exemplo 1 com análise de uns e de zeros respectivamente

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 173
Sistemas digitais – 30/01/2021

Exemplo 2:

Input Output Out2 = max{1}


0 5 Out1 = max{0,3}
1 2 Out0 = max{1,2,3}
2 6 Out2 = (B+/A)
3 4 Out1 = (B+A)(/B+/A)
Tabela 3 – Definição do conversor Out0 = (B+/A)(/B+A)(/B+/A)

B A Out2 Out1 Out0 Out2 = min{0,2,3}


0 0 1 0 1 Out1 = min{1,2}
0 1 0 1 0 Out0 = min{0}
1 0 1 1 0 Out2 = (/B/A)+(B/A)+(BA)
1 1 1 0 0 Out1 = (/BA)+(B/A)
Tabela 4 – Definição das funções binárias Out0 = (/B/A)

Minimizado:
Out2 = (B+/A)
Out1 = BA
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

Prof. Marco Aurélio Seluque Fregonezi


174 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3:

Input Output C B A Out1 Out0


0 2 0 0 0 1 0
1 2 0 0 1 1 0
2 0 0 1 0 0 0
3 1 0 1 1 0 1
4 0 1 0 0 0 0
5 2 1 0 1 1 0
6 1 1 1 0 0 1
7 1 1 1 1 0 1
Tabela 5 – Definição do conversor Tabela 6 – Definição das funções binárias

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 175
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


176 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Out1 = min{0,1,5} Out1 = (/C/B/A)+(/C/BA)+(C/BA)


Out0 = min{3,6,7} Out0 = (/CBA)+(CB/A)+(CBA)

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)+(/BA)
0 1 1 0 0 0 0 0 1 0
0 1 0 0 0 0 1 1
Out0 = ( B A)+( CB)
1 1
Tabela 8 – Minimização em uns

Exemplo 4:

Input Output C B A Out2 Out1 Out0


0 6 0 0 0 1 1 0 Out2 = max{2,5}
1 4 0 0 1 1 0 0 Out1 = max{1,5,7}
2 2 0 1 0 0 1 0 Out0 = max{0,1,2,3,4,7}
3 6 0 1 1 1 1 0
4 6 1 0 0 1 1 0 Out2 = min{0,1,3,4,6,7}
5 1 1 0 1 0 0 1 Out1 = min{0,2,3,4,6}
6 7 1 1 0 1 1 1 Out0 = min{5,6}
7 4 1 1 1 1 0 0
Tabela 9 – Definição do conversor Tabela 10 – Definição das funções binárias

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/BA)+(/CBA)+(C/B/A)+(CB/A)+(CBA)
Out1 = (/C/B/A)+(/CB/A)+(/CBA)+(C/B/A)+(CB/A)
Out0 = (C/BA)+(CB/A)

Out2 Out1 Out0


BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 1 1 1 0 0 1 0 1 1 0 0 0 0 0
1 1 0 1 1 1 1 0 0 1 1 0 1 0 1
Tabela 11 – Minimização em zeros

Out2 Out1 Out0


BA BA BA
C 00 01 11 10 C00 01 11 10 C 00 01 11 10
0 1 1 1 0 0 1 0 1 1 0 0 0 0 0
1 1 0 1 1 1 1 0 0 1 1 0 1 0 1
Tabela 12 – Minimização em uns

Out2 = (C+/B+A)(/C+B+/A) Out2 = (/B/A)+(/CA)+(CB)


Out1 = (B+/A)(/C+/A) Out1 = /A+(/CB)
Out0 = C(B+A)(/B+/A) Out0 = (C/BA)+(CB/A)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 177
Sistemas digitais – 30/01/2021

C B A

+V

Out2 Out1 Out0


Circuito 6 – Forma canônica em zeros

C B A

Out2 Out1 Out0


Circuito 7 – Forma canônica em um

Prof. Marco Aurélio Seluque Fregonezi


178 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 5:

Input Output C B A Out3 Out2 Out1 Out0


0 0 0 0 0 0 0 0 0
1 1 0 0 1 0 0 0 1
2 3 0 1 0 0 0 1 1
3 6 0 1 1 0 1 1 0
4 10 1 0 0 1 0 1 0
5 15 1 0 1 1 1 1 1
6 5 1 1 0 0 1 0 1
7 12 1 1 1 1 1 0 0
Tabela 13 – Definição do conversor Tabela 14 – Definição das funções binárias

Out3 = max{0,1,2,3,6} Out3 = min{4,5,7}


Out2 = max{0,1,2,4} Out2 = min{3,5,6,7}
Out1 = max{0,1,6,7} Out1 = min{2,3,4,5}
Out0 = max{0,3,4,7} Out0 = min{1,2,5,6}

Out3 = (C+B+A)(C+ B+/A)( C+/B+A)( C+/B+/A)(/C+/B+A)


Out2 = (C+B+A)(C+ B+/A)( C+/B+A)(/C+ B+ A)
Out1 = (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)

Out3 = ( C/B/A)+( C/B A)+(C B A)


Out2 = ( C/B/A)+( C/B A)+(C B/A)+(C B A)
Out1 = (/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)

Out3 Out2 Out1 Out0


BA BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1
1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1
Tabela 15 – Minimização em zeros

Out3 Out2 Out1 Out0


BA BA BA BA
C 00 01 11 10 C 00 01 11 10 C 00 01 11 10 C 00 01 11 10
0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1
1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 1 0 1
Tabela 16 – Minimização em uns

Out3 = C(/B+A) Out3 = (CA)+(C/B)


Out2 = (C+A)(C+B)(B+A) Out2 = (BA)+(CA)+(CB)
Out1 = (C+B)(/C+/B) Out1 = (C/B)+(/CB)
Out0 = (B+A)(/B+/A) Out0 = (/BA)+(B/A)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 179
Sistemas digitais – 30/01/2021

C B A

+V

Out2 Out1 Out0


Circuito 8 – Forma canônica em zeros na forma invertida

C B A

Out2 Out1 Out0


Circuito 9 – Forma canônica em uns na forma invertida

Prof. Marco Aurélio Seluque Fregonezi


180 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 14 – Análise reversa


Dentro do contexto do ambiente de trabalho de um engenheiro especialista em sistemas
digitais, não basta que ele seja competente na missão de produzir um bom projeto de circuito ele-
trônico digital. Também é importante que ele seja capaz de realizar uma análise reversa. Por “aná-
lise reversa”, estamos fazendo referência ao processo de obtenção das expressões algébricas, das
tabelas-verdade e das tabelas de decodificação a partir da observação do circuito lógico.
A análise reversa de grandes circuitos digitais não pode ser feita por meio da observação
humana dos nós topológicos pois estamos falando de sistemas formados por milhares de portas
lógicas. Neste caso, a análise pode ser efetuada por meio da comparação da injeção das palavras de
entrada com as respectivas palavras de saída.

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

Circuito 1 – Diagrama completo

Out1 = /A/(/B+/D)
Out2 = //A
Out3 = /(D+C)/B
Out4 = /B/(C/A)(/D+/B)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 181
Sistemas digitais – 30/01/2021

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

Circuito 5 – Diagrama para Out4

Prof. Marco Aurélio Seluque Fregonezi


182 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

D C B A Out4 Out3 Out2 Out1 Input Output


0 0 0 0 1 1 0 1 0 D
0 0 0 1 1 1 1 0 1 E
0 0 1 0 0 0 0 1 2 1
0 0 1 1 0 0 1 0 3 2
0 1 0 0 0 0 0 1 4 1
0 1 0 1 1 0 1 0 5 A
0 1 1 0 0 0 0 1 6 1
0 1 1 1 0 0 1 0 7 2
1 0 0 0 1 0 0 1 8 9
1 0 0 1 1 0 1 0 9 A
1 0 1 0 0 0 0 0 A 0
1 0 1 1 0 0 1 1 B 3
1 1 0 0 0 0 0 1 C 1
1 1 0 1 1 0 1 0 D A
1 1 1 0 0 0 0 0 E 0
1 1 1 1 0 0 1 1 F 3
Tabela 1 – Definição das funções binárias Tabela 2 – Tabela de decodificação

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 183
Sistemas digitais – 30/01/2021

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

184 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Unidade 4
Circuitos lógicos

Prof. Marco Aurélio Seluque Fregonezi 185


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

186 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 01 – Portas lógicas


A palavra “porta” diz respeito a um dispositivo que pode ser aberto ou fechado; também
remete à idéia de fluxo. No caso das portas lógicas, teríamos um fluxo de informações lógicas. A
filosofia e as ciências jurídicas estão todas baseadas em fluxo de informação.
Portas lógicas são uma entidade filosófica ou matemática a depender do contexto. Sua im-
plementação física é feita, principalmente, na forma de circuitos eletrônicos, mas também pode ser
feita por meio de escoamento de líquidos e gases, ou por luz, ou outro tipo de materialização que
venha a ser criado.
No caso dos circuitos elétricos, eles podem ser digitais ou analógicos. Somente os circuitos
digitais são relevantes neste texto.
A principal diferença entre um sistema analógico e um sistema digital é que o sistema ana-
lógico possui uma quantidade incontável de valores possíveis, enquanto o digital possui uma quan-
tidade conhecida, geralmente dois valores. Outra diferença é que as grandezas analógicas precisam
de uma unidade e uma referência diante da qual o valor “zero” é atribuído, enquanto números
digitais não possuem referência nem unidade.
Dentro do contexto da eletricidade, portas lógicas podem ser construídas por meio de cha-
ves elétricas. Estas chaves são biestáveis, ou seja, possuem infinitos estados transientes – instáveis
– e apenas dois estados estacionários – estáveis – ligado ou desligado. A forma mais intuitiva de
entendimento destas chaves é a sua forma mecânica: push-button, toogle switch, relés, contatores,
disjuntores, etc. Os primeiros computadores foram construídos com relés.
A primeira tecnologia usada na fabricação de portas lógicas eletrônicas fazia uso de diodos
retificadores. Por esse motivo, o nome dado a esta tecnologia era DRL – Diode Resistor Logic – Lógica
diodo-resistor. A função lógica é efetuada pelos diodos. O resistor atua como um guia para o refe-
rencial de tensão quando os diodos operam em alta impedância.

Figura 1 – Circuito seletor de máximo analógico

No circuito da figura 1, o nó topológico indicado por “C” representa a função analógica


“C(B,A)”. Esta função é dada pelo valor maior encontrado nas duas entradas, “A” e “B”. Nos gráficos,
é possível observar que existe um off-set na saída em relação à entrada. Esta diferença acontece
por causa da queda de tensão do diodo em polarização direta (VTH, threshold voltage, tensão de
limiar), algo em torno de 0,7V para o semicondutor de silício. Para que os dois diodos não sejam
polarizados reversamente ao mesmo tempo, as duas fontes de tensão senoidal possuem um off-set
igual à tensão de pico.
O funcionamento do circuito seletor de máximo pode ser entendido por meio da percepção
de que o diodo que recebe a maior tensão encontra-se em um estado de saturação superior ao do
diodo que possui a menor tensão. O diodo mais saturado proporciona a menor resistência (R D) e
isso faz com que ele determine o valor da tensão elétrica no nó de saída, “C”. Esta tensão de saída
é, então, superior à tensão aplicada à entrada (anodo) do outro diodo, e isso faz com que a sua
Prof. Marco Aurélio Seluque Fregonezi 187
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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”.

Figura 2 – Circuito seletor de mínimo analógico

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.

188 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Figura 3 – Circuito seletor de máximo digital

Figura 4 – Circuito seletor de mínimo digital

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.

Prof. Marco Aurélio Seluque Fregonezi 189


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

5V 5V
Seletor de máximo
Seletor de mínimo

1 Hz

1 Hz
500mHz

500mHz

Figura 5 – Seletores operados com transistores

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 ICVCE),
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.

Portas lógicas tradicionais


A B

Figura 6 – Porta YES

A B

Figura 7 – Porta NOT

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

192 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

B A AND OR XOR NAND NOR XNOR


0 0 0 0 0 1 1 1
0 1 0 1 1 1 0 0
1 0 0 1 1 1 0 0
1 1 1 1 0 0 0 1
Tabela 1 – Portas lógicas de duas entradas

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

C B A AND OR NAND NOR


0 0 0 0 0 1 1
0 0 1 0 1 1 0
0 1 0 0 1 1 0
0 1 1 0 1 1 0
1 0 0 0 1 1 0
1 0 1 0 1 1 0
1 1 0 0 1 1 0
1 1 1 1 1 0 0
Tabela 2 – Portas lógicas 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.

Figura 18 – Algumas opções de encapsulamento DIP

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.

A tabela a seguir é usada nos seguintes IC´s:


 74LS08 – LS quad 2-input AND
 74LS32 – LS quad 2-input OR
 74LS00 – LS quad 2-input NAND
 74LS02 – LS quad 2-input NOR
 74LS86 – LS quad 2-input XOR

Função Porta A Porta B Porta C Porta D VCC/GND


Entrada 1 1 4 9 12 14
Entrada 2 2 5 10 13 7
Saída 3 6 8 11
Tabela 3 – Pinagem para algumas portas lógicas de duas entradas

A tabela a seguir é usada nos seguintes IC´s:


 74LS11 – LS triple 3-input AND
 74LS10 – LS triple 3-input NAND

194 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Função Porta A Porta B Porta C VCC/GND


Entrada 1 1 3 9 14
Entrada 2 2 4 10 7
Entrada 3 13 5 11
Saída 12 6 8
Tabela 4 – Pinagem para algumas portas lógicas de três entradas

A tabela a seguir é usada nos seguintes IC´s:


 74LS21 – LS dual 4-input AND
 74LS20 – LS dual 4-input NAND

Função Porta A Porta B VCC/GND


Entrada 1 1 9 14
Entrada 2 2 10 7
Entrada 3 4 12
Entrada 4 5 13
Saída 6 8
Tabela 5 – Pinagem para algumas portas lógicas de quatro entradas

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

Figura 19 – Portas lógicas de oito entradas.

Habilitação das saídas


O tri-state é um recurso essencial quando se compartilha um barramento de dados entre
diversos dispositivos digitais. O tri-state, apesar do nome, não se trata de um terceiro estado. Este
nome é usado para retratar a situação na qual o circuito digital possui, em sua saída, uma alta im-
pedância. Em outras palavras, a alta impedância pode ser entendida como um isolamento infinito,
em teoria. Por isolamento, se diz em respeito ao nó de referência, GND (ground). É possível enten-
der que um nó topológico está em alta impedância quando o seu comportamento dá a impressão
de que existe um isopor, vidro ou porcelana separando este nó do resto do circuito. A teoria de
circuitos elétricos, a teoria de eletrônica e a teoria sobre lógica booleana não são suficientes para
determinar a tensão elétrica neste nó, muito menos o seu equivalente nível lógico. Se existe um
outro circuito elétrico ligado a esta saída tri-state, então a tensão elétrica é determinada por este
outro circuito. Se não existe outro circuito, então a tensão elétrica é determinada por meio de fe-
nômenos eletromagnéticos.
Graças ao tri-state, é possível efetuar um curto-circuito entre várias saídas digitais. Se so-
mente uma destas fontes de sinal digital injeta valor lógico neste nó e todas as demais estão em alta
impedância, então não há, de fato, um curto circuito. Se, porém, duas ou mais saídas tentam injetar
sinal lógico ao nó, então pode haver curto-circuito e danos aos dispositivos.
Portas lógicas com recurso de alta impedância possuem uma entrada com ação de habilitar
a saída booleana ou desabilitá-la, gerando a alta impedância. Este sinal de habilitação é chamado

Prof. Marco Aurélio Seluque Fregonezi 195


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Habilitação das entradas

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

196 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

chip enable chip enable


Figura 22 – Circuitos de habilitação das entradas

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

Prof. Marco Aurélio Seluque Fregonezi 197


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


198 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 “n2^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.

Exemplo 1: Decodificador 12 com saídas ativas em nível alto


out0
12
Out0 A
A DEC
out1
Out1
Figura 1 – 12 DEC ativo em nível alto

A out0 out1
0 1 0 Out0 = /A
1 0 1 Out1 = A
Tabela 1 – 12 DEC ativo em nível alto

Exemplo 2: Decodificador 12 com saídas ativas em nível baixo


/out0
/Out0 12
A
A DEC
/Out1
/out1
Figura 2 – 12 DEC ativo em nível baixo

A /out0 /out1
0 0 1 /Out0 = A

Prof. Marco Aurélio Seluque Fregonezi


200 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

1 1 0 /Out1 = /A
Tabela 2 – 12 DEC ativo em nível baixo

Exemplo 3: Decodificador 24 com saídas ativas em nível alto


B A

Out0 out0
A 24 out1
Out1 B DEC out2
out3
Out2

Out3

Figura 3 – 24 DEC ativo em nível alto

B A out0 out1 out2 out3


0 0 1 0 0 0 Out0 = /B/A
0 1 0 1 0 0 Out1 = /B A
1 0 0 0 1 1 Out2 = B/A
1 1 0 0 0 1 Out3 = B A
Tabela 3 – 24 DEC ativo em nível alto

Exemplo 4: Decodificador 24 com saídas ativas em nível baixo


B A

/Out0
/out0
A 24 /out1
/Out1 B DEC /out2
/out3
/Out2

/Out3

Figura 4 – 24 DEC ativo em nível baixo

B A /out0 /out1 /out2 /out3


0 0 0 1 1 1 /Out0 = B+ A
0 1 1 0 1 1 /Out1 = B+/A
1 0 1 1 0 1 /Out2 = /B+ A
1 1 1 1 1 0 /Out3 = /B+/A
Tabela 4 – 24 DEC ativo em nível baixo

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 201
Sistemas digitais – 30/01/2021

Exemplo 5: Decodificador 38 com saídas ativas em nível alto

C B A
4321

Out0

Out1

Out2

Out3

Out4

Out5

Out6

Out7

Figura 5 – 38 DEC ativo em nível alto

C B A out0 out1 out2 out3 out4 out5 out6 out7


0 0 0 1 0 0 0 0 0 0 0 Out0 = /C/B/A
0 0 1 0 1 0 0 0 0 0 0 Out1 = /C/B A
0 1 0 0 0 1 0 0 0 0 0 Out2 = /C B/A
0 1 1 0 0 0 1 0 0 0 0 Out3 = /C B A
1 0 0 0 0 0 0 1 0 0 0 Out4 = C/B/A
1 0 1 0 0 0 0 0 1 0 0 Out5 = C/B A
1 1 0 0 0 0 0 0 0 1 0 Out6 = C B/A
1 1 1 0 0 0 0 0 0 0 1 Out7 = C B A
Tabela 5 – 38 DEC ativo em nível alto

out0
out1
A out2
38 out3
B DEC out4
out5
C out6
out7
Figura 6 – 38 DEC ativo em nível alto

Prof. Marco Aurélio Seluque Fregonezi


202 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 6: Decodificador 38 com saídas ativas em nível baixo

C B A
4321

/Out0

/Out1

/Out2

/Out3

/Out4

/Out5

/Out6

/Out7

Figura 7 – 38 DEC ativo em nível baixo

C B A /out0 /out1 /out2 /out3 /out4 /out5 /out6 /out7


0 0 0 0 1 1 1 1 1 1 1 /Out0 = C+ B+ A

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

1 0 1 1 1 1 1 1 0 1 1 /Out5 = /C+ B+/A

1 1 0 1 1 1 1 1 1 0 1 /Out6 = /C+ /B+ A

1 1 1 1 1 1 1 1 1 1 0 /Out7 = /C+ /B+/A


Tabela 6 – 38 DEC ativo em nível baixo

/out0
/out1
A /out2
38 /out3
B DEC /out4
/out5
C /out6
/out7
Figura 8 – 38 DEC ativo em nível baixo

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 203
Sistemas digitais – 30/01/2021

Exemplo 7: Decodificador 24 em lógica positiva com chip enable


B A
CE

out0
Out0
A 24 out1
Out1 B DEC out2
CE out3
Out2

Out3

Figura 9 – 24 DEC ativo em nível alto

CE B A out0 out1 out2 out3


0 X X 0 0 0 0
1 0 0 1 0 0 0 Out0 = CE/B/A
1 0 1 0 1 0 0 Out1 = CE/B A
1 1 0 0 0 1 0 Out2 = CE B/A
1 1 1 0 0 0 1 Out3 = CE B A
Tabela 7 – 24 DEC ativo em nível alto

Exemplo 8: Decodificador 24 em lógica negativa com chip enable


B A
/CE

/Out0 /out0
A 24 /out1
/Out1 B DEC /out2
/CE /out3
/Out2

/Out3

Figura 10 – 24 DEC ativo em nível baixo

/CE B A /out0 /out1 /out2 /out3


0 0 0 0 1 1 1
0 0 1 1 0 1 1 /Out0 = /CE+ B+ A
0 1 0 1 1 0 1 /Out1 = /CE+ B+/A
0 1 1 1 1 1 0 /Out2 = /CE+/B+ A
1 X X 0 1 1 1 /Out3 = /CE+/B+/A
Tabela 8 – 24 DEC ativo em nível baixo

Prof. Marco Aurélio Seluque Fregonezi


204 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 9: Decodificador 24 em lógica positiva com output enable


B A
CE
OE

A out0
Out0
B 24 out1
Out1 CE DEC out2
OE out3
Out2

Out3

Figura 11 – 24 DEC ativo em nível alto

OE CE B A out0 out1 out2 out3


0 X X X 3S 3S 3S 3S
1 0 X X 0 0 0 0
1 1 0 0 1 0 0 0 Out0 = CE/B/A
1 1 0 1 0 1 0 0 Out1 = CE/B A
1 1 1 0 0 0 1 1 Out2 = CE B/A
1 1 1 1 0 0 0 1 Out3 = CE B A
Tabela 9 – 24 DEC ativo em nível alto

Exemplo 10: Decodificador 24 em lógica negativa com output enable


B A
/CE
/OE

A /out0
Out0 24
B /out1
Out1 /CE DEC /out2
/OE /out3
Out2

Out3

Figura 12 – 24 DEC ativo em nível baixo

/OE /CE B A /out0 /out1 /out2 /out3


0 0 0 0 0 1 1 1
0 0 0 1 1 0 1 1
0 0 1 0 1 1 0 1 /Out0 = /CE+ B+ A
0 0 1 1 1 1 1 0 /Out1 = /CE+ B+/A
0 1 X X 1 1 1 1 /Out2 = /CE+/B+ A
1 X X X 3S 3S 3S 3S /Out3 = /CE+/B+/A
Tabela 10 – 24 DEC ativo em nível baixo

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 205
Sistemas digitais – 30/01/2021

Exemplo 11: Decodificador 38 em lógica negativa com NAND


C B A

74LS10

/Out0

/Out1

/Out2

/Out3

/Out4

/Out5

/Out6

/Out7

Figura 13 – 38 DEC ativo em nível baixo

Exemplo 12: Decodificador 38 em lógica negativa com NOR


C B A

74LS27
Out0

Out1

Out2

Out3

Out4

Out5

Out6

Out7

Figura 14 – 38 DEC ativo em nível alto

Prof. Marco Aurélio Seluque Fregonezi


206 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 13: Decodificador 38 em lógica positiva com chip enable


C B A

CE

Out0

Out1

Out2

Out3

Out4

Out5

Out6

Out7

Figura 15 – 38 DEC ativo em nível baixo

Exemplo 14: Decodificador 38 em lógica negativa com chip enable


C B A

/CE

/Out0

/Out1

/Out2

/Out3

/Out4

/Out5

/Out6

/Out7

Figura 16 – 38 DEC ativo em nível alto

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 207
Sistemas digitais – 30/01/2021

Exemplo 15: Decodificador BCD


0 0
4321 4321

74LS21 4072
Out0 /Out0

Out1 /Out1

Out2 /Out2

Out3 /Out3

Out4 /Out4

Out5 /Out5

Out6 /Out6

Out7 /Out7

Out8 /Out8

Out9 /Out9

Figura 17 – 38 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

Prof. Marco Aurélio Seluque Fregonezi


208 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 16: Decodificador BCD


0 0
4321 4321

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 – 38 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

Erro = (DC)+(DB) /Erro = (/D+/C)(/D+/B)


Erro = D(C+B) /Erro = /D+(/C/B)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 209
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


210 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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^nn”. 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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 211
Sistemas digitais – 30/01/2021

Exemplo 1: Codificador 21 com entradas ativas em nível alto


In1In0
in0 in1 A
1 0 0
A
0 1 1
Figura 1 – 21 ENC ativo em nível alto Tabela 1 – 21 ENC ativo em nível alto

in0
21 A
in1 ENC

Figura 2 – 21 ENC ativo em nível alto

Exemplo 2: Codificador 21 com entradas ativas em nível baixo


/In0 /In1
/in0 /in1 A
0 1 0
A 1 0 1
Figura 3 – 21 ENC ativo em nível baixo Tabela 2 – 21 ENC ativo em nível baixo

/in0
21 A
/in1 ENC

Figura 4 – 21 ENC ativo em nível baixo

Prof. Marco Aurélio Seluque Fregonezi


212 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Codificador 42 com entradas ativas em nível alto


I3 I2 I1 I0

in0
in1 42 A
A
in2 ENC B
B
in3

Figura 5 – 42 ENC ativo em nível alto

in0 in1 in2 in3 B A


1 0 0 0 0 0 A = in1in3
0 1 0 0 0 1 B = in2in3
0 0 1 0 1 0
0 0 0 1 1 1
Tabela 4 – 42 ENC ativo em nível alto

Exemplo 4: Codificador 42 com entradas ativas em nível baixo


/I0 /I2
/I1 /I3

/in0
/in1 42 A
A ENC
/in2 B
/in3
B

Figura 7 – 42 ENC ativo em nível baixo

/in0 /in1 /in2 /in3 B A


0 1 1 1 0 0
A = /in0/in2
1 0 1 1 0 1
B = /in0/in1
1 1 0 1 1 0
1 1 1 0 1 1
Tabela 4 – 42 ENC ativo em nível baixo

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 213
Sistemas digitais – 30/01/2021

Exemplo 5: Codificador 83 com entradas ativas em nível alto


I7 I6 I5 I4 I3 I2 I1 I0

4321 in0
in1 A
in2 83
A in3
in4 B
ENC
in5
B in6 C
in7
C

Figura 9 – 83 ENC ativo em nível alto

in0 in1 in2 in3 inj4 in5 in6 in7 C B A


1 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 1
0 0 1 0 0 0 0 0 0 1 0
A = in1+in3+in5+in7
0 0 0 1 0 0 0 0 0 1 1 B = in2+in3+in6+in7
0 0 0 0 1 0 0 0 1 0 0 C = in4+in5+in6+in7
0 0 0 0 0 1 0 0 1 0 1
0 0 0 0 0 0 1 0 1 1 0
0 0 0 0 0 0 0 1 1 1 1
Tabela 5 – 83 ENC ativo em nível alto

Exemplo 6: Codificador 83 com entradas ativas em nível baixo


/I0 /I2 /I4 /I6
/I1 /I3 /I5 /I7

4321 /in0
74LS21
/in1 A
OutA /in2
/in3 83
/in4 B
/in5
ENC
OutB /in6 C
/in7
OutC

Figura 10 – 83 ENC ativo em nível baixo

/in0 /in1 /in2 /in3 /in4 /in5 /in6 /in7 C B A


0 1 1 1 1 1 1 1 0 0 0
1 0 1 1 1 1 1 1 0 0 1
1 1 0 1 1 1 1 1 0 1 0 A = /in0/in2/in4/in6
1 1 1 0 1 1 1 1 0 1 1 B = /in0/in1/in4/in5
1 1 1 1 0 1 1 1 1 0 0 C = /in0/in1/in2/in3
1 1 1 1 1 0 1 1 1 0 1
1 1 1 1 1 1 0 1 1 1 0
1 1 1 1 1 1 1 0 1 1 1
Tabela 6 – 83 ENC ativo em nível baixo

Prof. Marco Aurélio Seluque Fregonezi


214 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 7: Codificador BCD com entradas ativas em nível alto


I9 I8 I7 I6 I5 I4 I3 I2 I1 I0

4321
4072 in0
4071
in1 A
OutA in2
in3 BCD B
OutB in4
in5 ENC
OutC in6 C
in7
OutD in8 D
in9

Figura 11 – BCD ENC ativo em nível alto

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 = in1in3in5in7in9
B = in2in3in6in7
C = in4in5in6in7
D = in8in9

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 215
Sistemas digitais – 30/01/2021

Exemplo 8: Codificador BCD com entradas ativas em nível baixo


/I1 /I3 /I5 /I7 /I9
/I0 /I2 /I4 /I6 /I8

4082 4321
4081
OutA

OutB /in0
4073
/in1 A
OutC /in2
/in3 BCD B
OutD /in4
/in5 ENC
/in6 C
/in7
/in8 D
/in9

Figura 12 – BCD ENC ativo em nível baixo

/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

Prof. Marco Aurélio Seluque Fregonezi


216 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 217
Sistemas digitais – 30/01/2021

Exemplo 1: Multiplexador 21 de dois bits com análise de uns

Sel

Sel

A0

A1
A0 Out0
B0
A1

B1
B0 Out1

B1

Out1 Out0
Figura 2 – 2-bit 21 MUX com análise de uns
sel
Sel Out1 Out0
A 2-bit
0 A1 A0 Out0 = (A0/Sel)+(B0Sel)
21 out
1 B1 B0 Out1 = (A1/Sel)+(B1Sel) B MUX
Tabela 2 - 2-bit 21 MUX

Exemplo 2: Multiplexador 21 de dois bits com análise de zeros


Sel

A0 sel
A1
A 2-bit
B0 21 out
B MUX
B1

Out1 Out0
Figura 3 – 2-bit 21 MUX com análise de zeros

Sel Out1 Out0


0 A1 A0 Out0 = (A0+Sel)(B0+/Sel)
1 B1 B0 Out1 = (A1+Sel)(B1+/Sel)
Tabela 2 – 2-bit 21 MUX

Prof. Marco Aurélio Seluque Fregonezi


218 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Multiplexador 21 de três bits com análise de uns


Sel

Out0 = (A0/Sel)+(B0Sel)
Out1 = (A1/Sel)+(B1Sel)
A0
Out2 = (A2/Sel)+(B2Sel)

A1
Sel Out2 Out1 Out0
A2 0 A2 A1 A0
1 B2 B1 B0
B0
Tabela 3 – 3-bit 21 MUX

B1

B2 sel

A 3-bit
21 out
B MUX
Out2 Out1 Out0
Figura 4 – 3-bit 21 MUX com análise de uns

Exemplo 4: Multiplexador 21 de três bits com análise de zeros


Sel

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 21 MUX

B1

sel
B2

A 3-bit
21 out
B MUX

Out2 Out1 Out0


Figura 5 – 3-bit 21 MUX com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 219
Sistemas digitais – 30/01/2021

Exemplo 5: Multiplexador 31 de dois bits com análise de uns


Sel1 Sel0
Out0 = (A0/Sel1/Sel0)+(B0/Sel1Sel0)+(C0Sel1/Sel0)
Out1 = (A1/Sel1/Sel0)+(B1/Sel1Sel0)+(C1Sel1/Sel0)

Sel1 Sel0 Out1 Out0


A0
0 0 A1 A0
A1 0 1 B1 B0
1 0 C1 C0
B0 1 1 0 0
Tabela 5 – 2-bit 31 MUX
B1

C0 sel1 sel0
C1
A 2-bit
B 31 out
C MUX

Out1 Out0
Figura 6 – 2-bit 31 MUX com análise de uns

Exemplo 6: Multiplexador 31 de dois bits com análise de zeros


Sel1 Sel0
Out0 = (A0+Sel1+Sel0)(B0+Sel1+/Sel0)(C0+/Sel1+Sel0)
Out1 = (A1+Sel1+Sel0)(B1+Sel1+/Sel0)(C1+/Sel1+Sel0)

Sel1 Sel0 Out1 Out0


A0 0 0 A1 A0
0 1 B1 B0
A1
1 0 C1 C0
B0 1 1 1 1
Tabela 6 – 2-bit 31 MUX
B1

C0
sel1 sel0

C1 A 2-bit
B 31 out
C MUX

Out1 Out0
Figura 7 – 2-bit 31 MUX com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


220 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 7: Multiplexador 31 de três bits com análise de uns


Sel1 Sel0
Out0 = (A0/Sel1/Sel0)+(B0/Sel1Sel0)+(C0Sel1/Sel0)
Out1 = (A1/Sel1/Sel0)+(B1/Sel1Sel0)+(C1Sel1/Sel0)
Out2 = (A2/Sel1/Sel0)+(B2/Sel1Sel0)+(C2Sel1/Sel0)

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 21 MUX
0
4321

sel1 sel0
C
0 A 3-bit
4321
B 31 out
OUT
C MUX

4 3 21

Figura 8 – 3-bit 31 MUX com análise de uns

Exemplo 8: Multiplexador 31 de três bits com análise de zeros


Sel1 Sel0
Out0 = (A0+Sel1+Sel0)(B0+Sel1+/Sel0)(C0+/Sel1+Sel0)
Out1 = (A1+Sel1+Sel0)(B1+Sel1+/Sel0)(C1+/Sel1+Sel0)
Out2 = (A2+Sel1+Sel0)(B2+Sel1+/Sel0)(C2+/Sel1+Sel0)
A
Sel1 Sel0 Out2 Out1 Out0
0
4321
0 0 A2 A1 A0
0 1 B2 B1 B0
1 0 C2 C1 C0
B 1 1 1 1 1
0 Tabela 8 – 3-bit 21 MUX
4321

sel1 sel0
C
0
A 3-bit
4321

B 31 out
OUT
C MUX

4 3 21

Figura 9 – 3-bit 31 MUX com análise de zeros


Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 221
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


222 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 9: Multiplexador 21 de dois bits com chip enable e output enable
Sel Versão 1
CE

Out0 = (A0CE/Sel)+(B0CESel)
Out1 = (A1CE/Sel)+(B1CESel)

A0
CE Sel Out1 Out0
A1 0 X 0 0
1 0 A1 A0
B0 1 1 B1 B0
Tabela 9 – 2-bit 21 MUX
B1
sel CE OE

OE A 2-bit
74LS126 21 out
B MUX

Out1 Out0
Figura 10 – 3-bit 21 MUX com chip enable e output enable

Exemplo 10: Multiplexador 21 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 21 MUX com análise de zeros
Out1 = (A1+/CE+Sel)(B1+/CE+/Sel)

/CE Sel Out1 Out0


0 0 A1 A0
A0
0 1 B1 B0
A1 1 X 1 1
Tabela 10 – 2-bit 21 MUX
B0

B1 sel /CE /OE

A 2-bit
21 out
/OE 74LS125 B MUX

Out1 Out0
Figura 11 – 3-bit 21 MUX com chip enable e output enable

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 223
Sistemas digitais – 30/01/2021

Exemplo 11: Multiplexador 21 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

A0 CE Sel Out1 Out0


0 X 0 0
A1
1 0 A1 A0
B0 1 1 B1 B0
Tabela 11 – 2-bit 21 MUX
B1
sel CE OE

A 2-bit
OE 21 out
74LS126 B MUX

Out1 Out0
Figura 12 – 2-bit 21 MUX com análise de uns

Exemplo 12: Multiplexador 21 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

A0 /CE Sel Out1 Out0


0 0 A1 A0
A1
0 1 B1 B0
B0 1 X 1 1
Tabela 12 – 2-bit 21 MUX
B1
sel /CE /OE

A 2-bit
21 out
/OE 74LS125
B MUX

Out1 Out0
Figura 13 – 2-bit 21 MUX com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


224 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 13: Multiplexador 21 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

/CE Sel Out1 Out0


A1
/CE 0 0 A1 A0
B0 0 1 B1 B0
1 X 1 1
B1 Tabela 13 – 2-bit 21 MUX

sel /CE /OE

/OE A 2-bit
21 out
B MUX
Out1 Out0
Figura 14 – 2-bit 21 MUX com análise de uns

Exemplo 14: Multiplexador 21 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

CE Sel Out1 Out0


A1
CE 0 X 0 0
B0 1 0 A1 A0
1 1 B1 B0
B1 Tabela 14 – 2-bit 21 MUX

sel CE OE

OE 74LS126 A 2-bit
21 out
B MUX
Out1 Out0
Figura 15 – 2-bit 21 MUX com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 225
Sistemas digitais – 30/01/2021

Exemplo 15: Multiplexador 21 de dois bits com NAND


Sel
Out0 = /(/(A0/Sel)/(B0*Sel))
Out1 = /(/(A1/Sel)/(B1*Sel))

Sel Out1 Out0


A0 0 A1 A0
1 B1 B0
A1
Tabela 15 – 2-bit 21 MUX
B0
sel
B1
A 2-bit
21 out
B MUX

Out1 Out0
Figura 16 – 2-bit 21 MUX com análise de uns

Exemplo 16: Multiplexador 21 de dois bits com NOR


Sel
Out0 = /(/(A0+Sel)+/(B0+/Sel))
Out1 = /(/(A1+Sel)+/(B1+/Sel))

Sel Out1 Out0


A0 0 A1 A0
1 B1 B0
A1
Tabela 16 – 2-bit 21 MUX
B0
sel
B1
A 2-bit
21 out
B MUX

Out1 Out0
Figura 17 – 2-bit 21 MUX com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


226 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 17: Multiplexador 21 de dois bits


Sel1 Sel0

A0

A1

A2

B0 sel1 sel0
B1
A
3-bit
B2 B
41 out
C0
C MUX
D
C1

C2

D0

D1

D2

Out2 Out1 Out0


Figura 18 – 3-bit 41 MUX com análise de uns

Sel1 Sel0 Out2 Out1 Out0


0 0 A2 A1 A0
0 1 B2 B1 B0
1 0 C2 C1 C0
1 1 D2 D1 D0
Tabela 17 – 3-bit 41 MUX

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)

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 227
Sistemas digitais – 30/01/2021

Exemplo 17: Multiplexador 21 de dois bits


In1 In0

A0

A1

A2

B0

B1 sel1 sel0
B2
A
3-bit
C0 B
41 out
C MUX
C1
D
C2

D0

D1

D2

Out2 Out1 Out0


Figura 19 – 3-bit 41 MUX com análise de zeros

Sel1 Sel0 Out2 Out1 Out0


0 0 A2 A1 A0
0 1 B2 B1 B0
1 0 C2 C1 C0
1 1 D2 D1 D0
Tabela 18 – 3-bit 41 MUX

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)

Prof. Marco Aurélio Seluque Fregonezi


228 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 1 – Esquema de escrita dos periféricos em um sistema processado

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 229
Sistemas digitais – 30/01/2021

Exemplo 1: Demultiplexador 12 de dois bits com análise de uns

A0 = In0/Sel B0 = In0Sel
A1 = In1/Sel B1 = In1Sel

Sel A1 A0 B1 B0
0 In1 In0 0 0
1 0 0 In1 In0
Tabela 1 - 2-bit 21 DEMUX
Sel

A0
In0 sel
A1
In1
2-bit A
B0 in 12
DEMUX B
B1

Figura 2 – 2-bit 21 DEMUX com análise de uns

Exemplo 2: Demultiplexador 12 de dois bits com análise de zeros


A0 = In0+Sel B0 = In0+/Sel
A1 = In1+Sel B1 = In1+/Sel

Sel A1 A0 B1 B0
0 In1 In0 1 1
1 1 1 In1 In0
Tabela 2 - 2-bit 21 DEMUX
Sel

A0
In0 sel
A1
In1
2-bit A
B0
in 12
B1 DEMUX B

Figura 3 – 2-bit 21 DEMUX com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


230 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Demultiplexador 14 de três bits com análise de uns


Sel1 Sel0
In A B C D A0 = In0/Sel1/Sel0
0 A1 = In1/Sel1/Sel0
4321 4321 4321 4321 4321 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 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 41 DEMUX

Figura 4 – 3-bit 41 DEMUX com análise de uns

Exemplo 4: Demultiplexador 14 de três bits com análise de zeros


Sel1 Sel0
In A B C D

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 41 DEMUX

Figura 5 – 3-bit 41 DEMUX com análise de zeros


Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 231
Sistemas digitais – 30/01/2021

Exemplo 5: Demultiplexador 13 de quatro bits com análise de uns


In Sel1 Sel0

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 31 DEMUX

Figura 6 – 4-bit 31 DEMUX com análise de uns

Exemplo 6: Demultiplexador 13 de quatro bits com análise de zeros


In Sel1 Sel0
A B C
0
4321
4321 4321 4321 A0 = In0+ Sel1+ Sel0
4075
A1 = In1+ Sel1+ Sel0
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 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 31 DEMUX
Figura 7 – 4-bit 31 DEMUX com análise de uns

Prof. Marco Aurélio Seluque Fregonezi


232 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 06 – Comutadores e roteadores


Antes de estudar o funcionamento dos roteadores e dos comutadores, é necessário enten-
der muito bem o funcionamento dos multiplexadores e dos demultiplexadores apresentados nos
dois capítulos anteriores. Comutadores são dispositivos obtidos a partir da ligação em série entre
um multiplexador e um demultiplexador. A ordem desta ligação define o tipo de dispositivo obtido.

Dispositivo Entrada Saída


Roteador Multiplexador Demultiplexador
Comutador Demultiplexador Multiplexador
Tabela 1 – Definição dos dispositivos

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

Figura 2 – Esquema de um comutador

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 233
Sistemas digitais – 30/01/2021

servem para escolher o caminho. No comutador, um demultiplexador aciona um multiplexador,


nesta ordem. Há duas situações práticas nas quais um circuito comutador pode ser usado:
1: Quando a comunicação entre dois pontos geográficos é feita por meio de dois tipos de
linha de transmissão (transmission line, TL). Uma delas é a principal, e a outra é a de emergência.
Estas duas TL´s podem usar o mesmo meio físico (cabo do tipo par trançado, por exemplo), ou po-
dem usar meios distintos para dar maior capacidade para lidar com impedimentos; por exemplo,
uma TL pode ser cabeada e a outra TL pode ser via rádio.
2: Quando uma TL redundante existe para manter a comunicação em funcionamento en-
quanto a TL principal está passando por um processo de vistoria, manutenção programada ou pro-
cesso de expansão/atualização.
Caminho 1

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

Prof. Marco Aurélio Seluque Fregonezi


234 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 1: Roteador 32 de dois bits com análise de uns

S2 S1 S0 Sel Entrada Saída Sel D E


000 A D 000 A 00
001 B D 001 B 00
A
2-bit D 010 C D 010 C 00
B 32 011 0 D 011 00 00
ROT E 100 A E 100 00 A
C 101 B E 101 00 B
110 C E 110 00 C
Figura 2 – Diagrama do roteador
111 0 E 111 00 00
32
Tabela 2 – Definição do roteador Tabela 3 – Definição do roteador
32 32

Sel1 Sel0

A0

A1

B0

B1

C0
Sel2
C1

D0

canal
D1

E0

E1

Figura 3 – Roteador 2-bit 32 com análise de uns

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 235
Sistemas digitais – 30/01/2021

Exemplo 2: Roteador 32 de dois bits com análise de zeros

S2 S1 S0 Sel Entrada Saída Sel D E


000 A D 000 A 11
001 B D 001 B 11
A
2-bit D 010 C D 010 C 11
B 32 011 1 D 011 11 11
ROT E 100 A E 100 11 A
C 101 B E 101 11 B
110 C E 110 11 C
Figura 4 – Diagrama do roteador
111 1 E 111 11 11
32
Tabela 4 – Definição do roteador Tabela 5 – Definição do roteador
32 32

Sel1 Sel0

A0

A1

B0

B1

C0
Sel2
C1

D0

canal
D1

E0

E1

Figura 5 – Roteador 2-bit 32 com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


236 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Roteador 43 de quatro bits com análise de uns


S3 S2 S1 S0

A
E
B 4-bit
43 F
C ROT
G
D
Figura 6 – Diagrama do roteador 32

Sel Entrada Saída Sel E F G


0000 A E 0000 A 0 0
0001 B E 0001 B 0 0
0010 C E 0010 C 0 0
0011 D E 0011 D 0 0
0100 A F 0100 0 A 0
0101 B F 0101 0 B 0
0110 C F 0110 0 C 0
0111 D F 0111 0 D 0
1000 A G 1000 0 0 A
1001 B G 1001 0 0 B
1010 C G 1010 0 0 C
1011 D G 1011 0 0 D
1100 A - 1100 0 0 0
1101 B - 1101 0 0 0
1110 C - 1110 0 0 0
1111 D - 1111 0 0 0
Tabela 6 – Definição do roteador 32 Tabela 7 – Definição do roteador 32

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 237
Sistemas digitais – 30/01/2021

Sel1 Sel0

0
4321

0
4321

0
4321

0
4321

Sel3 Sel2

E
canal
4321

4321

4321

Figura 7 – Roteador 4-bit 43 com análise de uns

Prof. Marco Aurélio Seluque Fregonezi


238 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 4: Comutador de dois bits e dois canais com análise de uns

Sel_In Sel_Out Out1 Out0


0 0 In1 In0
0 1 0 0
1 0 0 0
1 1 In1 In0
Tabela 8 – Definição do comutador de dois bits e duas vias com análise de uns

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 239
Sistemas digitais – 30/01/2021

Exemplo 5: Comutador de dois bits e dois canais com análise de zeros

Sel_In Sel_Out Out1 Out0


0 0 In1 In0
0 1 1 1
1 0 1 1
1 1 In1 In0
Tabela 9 – Definição do comutador de dois bits e duas vias com análise de zeros

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

Prof. Marco Aurélio Seluque Fregonezi


240 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 6: Comutador de três canais

Sel_In Sel_Out Out1 Out0 Canal


00 00 In1 In0 1
00 01 0 0 -
00 10 0 0 -
00 11 0 0 -
01 00 0 0 -
01 01 In1 In0 2
01 10 0 0 -
01 11 0 0 -
10 00 0 0 -
10 01 0 0 -
10 10 In1 In0 3
10 11 0 0 -
11 00 0 0 -
11 01 0 0 -
11 10 0 0 -
11 11 0 0 -
Tabela 10 – Definição do comutador de três vias com análise de uns

Sel_In1 Sel_In0 Sel_Out1 Sel_Out0

In1 In0

canal 1

canal 2

canal 3

Out1 Out0
Figura 10 – Comutador de três canais

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 241
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


242 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 07 – Conversores de código


No capítulo anterior, foi ensinado que um multiplexador e um demultiplexador podem ser
ligados em série formando duas novas estruturas, a saber, um comutador ou um roteador. Igual-
mente, um codificador pode ser ligado em série com um decodificador, formando, também, uma
nova estrutura, os conversores de código. Esses conversores foram apresentados na unidade ante-
rior, no assunto sobre a álgebra booleana.
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”.
Pelo menos até o momento da elaboração deste texto, não foi encontrada nenhuma aplica-
ção prática para a ligação ENCDEC, motivo porque esta opção não é considerada no decorrer
deste estudo. Na ligação DECENC, a palavra codificada de entrada é exatamente igual à palavra
codificada de saída; não existe função de transformação; não existe aplicação.
Para que a ligação DECENC tenha alguma serventia, é preciso que uma das partes (DEC ou
ENC) sofra alguma alteração. Pelo menos até o momento da elaboração deste texto, não foi encon-
trada nenhuma aplicação prática para a alteração no DEC, motivo porque esta opção não é consi-
derada no decorrer deste estudo. Este capítulo aborda a alteração no ENC. Esta alteração é chamada
de “personalização” ou, pelo anglicismo, “customização”.

A 24 42 A
B DEC ENC B

Figura 1 – Ligação DECENC

in0 out0
in1 42 24 out1
in2 ENC DEC out2
in3 out3
Figura 2 – Ligação ENCDEC

4n A
A 24
ENC B
B DEC
custom
Figura 3 – Ligação DECENC custom

Os exemplos apresentados neste capítulo são exatamente os mesmos exemplos apresenta-


dos no capítulo sobre conversores de código, na unidade anterior, sobre álgebra booleana. Caso
haja alguma dificuldade em entender os procedimentos usados nestes projetos, é recomendado o
acesso àquele capítulo, onde uma explicação detalhada é apresentada. O uso de um decodificador
na entrada do circuito indica que são usados mintermos ou maxtermos, e isso aponta para a aplica-
ção da forma canônica. Sendo assim, esses circuitos conversores de código estão todos na forma
canônica. Um circuito construído a partir da minimização algébrica não faz uso de um decodificador
na entrada de dados.
Os exemplos apresentados neste capítulo são exatamente os mesmos exemplos apresenta-
dos no capítulo sobre conversores de código, na unidade anterior, sobre álgebra booleana. Caso
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 243
Sistemas digitais – 30/01/2021

haja alguma dificuldade em entender os procedimentos usados nestes projetos, é recomendado o


acesso àquele capítulo, onde uma explicação detalhada é apresentada. O uso de um decodificador
na entrada do circuito indica que são usados mintermos ou maxtermos, e isso aponta para a aplica-
ção da forma canônica. Sendo assim, esses circuitos conversores de código estão todos na forma
canônica. Um circuito construído a partir da minimização algébrica não faz uso de um decodificador
na entrada de dados.
B A
B A B A

B
B A
Figura 4 – Ligação DECENC com análise de zeros

Os exemplos apresentados neste capítulo são exatamente os mesmos exemplos apresenta-


dos no capítulo sobre conversores de código, na unidade anterior, sobre álgebra booleana. Caso
haja alguma dificuldade em entender os procedimentos usados nestes projetos, é recomendado o
acesso àquele capítulo, onde uma explicação detalhada é apresentada. O uso de um decodificador
na entrada do circuito indica que são usados mintermos ou maxtermos, e isso aponta para a aplica-
ção da forma canônica. Sendo assim, esses circuitos conversores de código estão todos na forma
canônica. Um circuito construído a partir da minimização algébrica não faz uso de um decodificador
na entrada de dados.

Prof. Marco Aurélio Seluque Fregonezi


244 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplos 1 e 2:

Input Exemplo 1 Exemplo 2


0 2 5
1 3 2
2 0 6
3 1 4
Tabela 1 – Definição dos conversores

0 0

A 34 1 A 34 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 34 1 A 34 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:

Input Exemplo 3 Exemplo 4


0 2 6
1 2 4
2 0 2
3 1 6
4 0 6
5 2 1
6 1 7
7 1 4
Tabela 3 – Definição do conversor
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 245
Sistemas digitais – 30/01/2021

0
0
1
1
2
2 A
A 3
3 B 38
B 38 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 38
DEC 5
C
6

Out2 Out1 Out0


Figura 8 – Exemplo 4 com análise de uns

Prof. Marco Aurélio Seluque Fregonezi


246 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

B 38
DEC
C

+V

Out2 Out1 Out0


Figura 9 – Exemplo 4 com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 247
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


248 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 08 – Decodificadores personalizados


No capítulo anterior, foram apresentadas as associações entre decodificadores e codificado-
res, nesta ordem, onde somente o codificador é personalizado. Na oportunidade, foi dito que não
foi encontrada aplicação prática para uma personalização do decodificador. No capítulo presente,
é apresentado o conceito do decodificador personalizado no qual são subtraídos os termos não uti-
lizados. Isso não significa uma personalização booleana haja vista que as expressões algébricas per-
manecem todas inalteradas. Esta é uma personalização aplicável unicamente ao circuito lógico e,
por isso, não pode ser considerada uma minimização algébrica ou um circuito algebricamente dife-
rente. Uma verdadeira personalização no decodificador seria uma transformação algébrica em favor
de algum processo de minimização. Mesmo assim, diremos, aqui, que o decodificador incompleto
seria um circuito personalizado. Esta extrapolação simplifica a abordagem pedagógica.
Estatisticamente, quanto maior é a quantidade de bits da palavra de saída, menor é a pro-
babilidade de que algum termo do decodificador possa ser removido.

24 4n A
A
DEC ENC B
B
custom custom
Figura 1 – Ligação DECENC

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 249
Sistemas digitais – 30/01/2021

Exemplo 1:

Input Output In1 In0 Out1 Out0


0 2 0 0 1 0
1 3 0 1 1 1
2 0 1 0 0 0
3 1 1 1 0 1
Tabela 1 – Definição do conversor

In1 In0 Out1 Out0 In1 In0 Out1 Out0


0 0 1 0 0 0 1 0
0 1 1 1 0 1 1 1
1 0 0 0 1 0 0 0
1 1 0 1 1 1 0 1
Tabela 2 – Identificação dos termos não usados

B A B A

Out1 Out0 Out1 Out0


Circuito 1 – Exemplo 1 com análise de uns e de zeros respectivamente

Exemplo 2:

Input Exemplo 2 Exemplo 3


0 2 6
1 2 4
2 0 2
3 1 6
4 0 6
5 2 1
6 1 7
7 1 4
Tabela 3 – Definição dos conversores

Prof. Marco Aurélio Seluque Fregonezi


250 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

C B A

Out1 Out0
Circuito 2 – Exemplo 2 com análise de uns

C B A

Out2 Out1 Out0


Circuito 3 – Exemplo 3 com análise de zeros

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 251
Sistemas digitais – 30/01/2021

Exemplo 4:

Input Output C B A Out2 Out1 Out0


0 7 0 0 0 1 1 1
1 7 0 0 1 1 1 1
2 2 0 1 0 0 1 0
3 0 0 1 1 0 0 0
4 7 1 0 0 1 1 1
5 4 1 0 1 1 0 0
6 4 1 1 0 1 0 0
7 7 1 1 1 1 1 1
Tabela 4 – Definição do conversor Tabela 5 – Definição das funções binárias

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

Out2 Out1 Out0


Circuito 4 – Ligação DECENC

Prof. Marco Aurélio Seluque Fregonezi


252 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Unidade 4
Lógica seqüencial

Prof. Marco Aurélio Seluque Fregonezi 253


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

254 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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.

Instrução absoluta Instrução relativa


Vá para a posição x=5m Avance 5m no eixo X
Mude a temperatura para 30C Aumente a temperatura em 5C
Você precisa pesar 80Kg Você precisa emagrecer 5Kg
O preço sofreu um acréscimo de R$10,00 O preço sofreu um aumento de 10%
O áudio sofreu um acréscimo de 10W O áudio sofreu um acréscimo de 10db
Tabela 1 – Exemplos de instruções absolutas e relativas

O estudo dos circuitos digitais pode ser dividido em dois grandes grupos:
 Lógica combinacional
 Lógica seqüencial

combinacional

sequencial

Figura 1 – Os dois tipos de lógica

Embora a lógica sequencial seja um sub-conjunto da lógica combinacional, chamamos de


“lógica combinacional” a lógica a lógica não-sequencial. A lógica combinacional foi abordada nos
capítulos anteriores. A palavra “combinação” versa a respeito do estado das variáveis de entrada.
Esta combinação define um maxtermo em análise de “zeros” ou um mintermo em análise de “uns”.
Na lógica combinacional, o valor da variável de saída (ou das variáveis de saída) depende, unica-
mente, das variáveis de entrada. Em outras palavras, a informação a respeito dos valores das variá-
veis de entrada é suficiente na determinação do valor da variável de saída (ou das variáveis de sa-
ída). Um circuito combinacional com vários bits de saída possui a propriedade de que todas essas
variáveis de saída são dependentes unicamente das variáveis de entrada. Nenhuma variável de sa-
ída é dependente do valor de outra variável de saída.

Prof. Marco Aurélio Seluque Fregonezi 255


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Transição é a relação entre o valor de uma grandeza em dois instantes consecutivos. Em se


tratando de um bit binário, as transições possíveis são:

 00
 01
 10
 11

No contexto dos circuitos analógicos, existem dois conceitos sobre realimentação:


 Realimentação positiva
 Realimentação negativa

Realimentação consiste do processo de amostragem do valor da variável de saída e do uso


do valor desta amostra junto com o valor da variável de saída. A realimentação negativa possui a
propriedade de levar o sistema para a estabilidade. Na realimentação negativa, o valor de realimen-
tação é subtraído no valor do input. A realimentação negativa não é objeto de estudo no contexto
da lógica seqüencial.
A realimentação positiva possui a propriedade de retirar o sistema da estabilidade para a
instabilidade. A instabilidade pode levar a duas situações diferentes: Oscilação e saturação. A osci-
lação é o resultado de um sistema “sub-amortecido”. A saturação é o resultado da obtenção de
valores demasiadamente elevados para alguma grandeza física, implicando no surgimento de ou-
tros fenômenos físicos que interrompam o processo de crescimento da primeira grandeza. Um sis-
tema instável a caminho da saturação apresenta aquilo que chamamos de “instabilidade temporá-
ria”. Um sistema instável sub-amortecido apresenta aquilo que chamamos de “instabilidade cons-
tante”. Este sistema também é chamado de “astável”.
No que diz respeito a circuitos lógicos, somente os estados estáveis são relevantes. Na tran-
sição entre um estado estável e outro estado estável, há infinitos estados instáveis que formam o
transitório. A quantidade de estados estáveis determina o tipo de circuito.
No escopo da lógica booleana seqüencial, há, apenas, circuitos astáveis, monoestáveis e bi-
estáveis. No contexto dos circuitos lógicos, a realimentação é obtida por meio do retorno do valor
do bit de saída ao input do circuito.

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

256 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

input input
output output

Figura 2 – Realimentação unitária – circuito monoestável

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

Figura 3 – Realimentação complementar – circuito astável

Na realimentação complementar, quando a entrada recebe o elemento nulo, a saída tam-


bém recebe esse elemento e o circuito permanece nesta situação. Quando o input recebe o ele-
mento neutro, a porta NOT oferece o elemento nulo, a porta oferece o elemento nulo e, após sofrer
a função NOT, transforma-se em elemento neutro. O circuito entra em oscilação. Neste caso, o cir-
cuito é chamado de “astável”. Esta oscilação possui uma elevadíssima frequência que não possui
empregabilidade prática, pois o seu valor, em hertz, é extremamente sensível à temperatura ambi-
ente. Usando uma porta NAND ou uma porta NOR, o estado estável fornece um valor invertido na
saída.

Elemento
Situação
no input
Nulo Estável
Neutro Astável
Tabela 2 – Comportamento do circuito 2

input output input output

Figura 4 – Realimentação complementar com portas NAND e NOR

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.

input 4093 output

Figura 5 – Oscilador com porta lógica Schmitt Trigger

Prof. Marco Aurélio Seluque Fregonezi 257


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 6 – Tentativa de realimentação com porta lógica

Na figura 7, é apresentada uma modificação no circuito da figura 6. A porta lógica da reali-


mentação é complementada. Quando o sinal control recebe o elemento nulo, a realimentação ofe-
rece o elemento neutro; o circuito se comporta como uma porta YES; a saída recebe o valor do
input. Quando o control recebe o elemento neutro, então a análise precisa discernir entre os dois
valores possíveis no input.
Se o control recebe o elemento neutro e o input recebe o elemento nulo, então a porta lógica
de cima obriga a saída a receber o elemento nulo. Este elemento nulo injetado na porta lógica de
baixo obriga a realimentação a assumir o elemento neutro. O valor da variável de saída, então, se-
gue o valor da variável input. O circuito é monoestável.
Se o control recebe o elemento neutro e o input também recebe o elemento neutro, então
temos um “problema de valor de contorno”. É preciso supor qual é o valor inicial da variável de
saída. Se este valor é o elemento neutro, então a porta de baixo fornece o elemento nulo, a porta
de cima também fornece o elemento nulo e a saída recebe o elemento nulo; a saída sofre uma
transição no neutro para o nulo. Se este valor é o elemento nulo, então a porta de baixo fornece o
elemento neutro, a porta de cima também fornece o elemento neutro e a saída recebe o elemento
neutro; a saída sofre uma transição no nulo para o neutro. Estas duas transições compõe a oscilação.
O circuito é astável.

input input
output output

control control

Figura 7 – Melhoramento do circuito da figura 4

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

Figura 6 – Complementação da porta lógica superior

258 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Na figura 6, é apresentada a complementação da porta lógica superior. A porta lógica da


realimentação é complementada. É preciso analisar todas as situações possíveis, inclusive os pro-
blemas de valores de contorno. Quando o control recebe o elemento nulo, a realimentação oferece
o elemento neutro; o circuito se comporta como uma porta NOT; a saída recebe o valor do input.
Quando o input recebe o elemento nulo, a porta de cima leva a saída ao elemento neutro.

Elemento nulo Situação


No control NOT
No input E. neutro
Tabela 4 – Comportamento do circuito 5

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

Quando o input e o control recebem, ambos, o elemento neutro, surge um problema de


valor de contorno. É preciso supor qual é o valor inicial da saída.

1 0 1 1

1 0

1 1
Figura 9 – Comportamento do circuito NAND

Prof. Marco Aurélio Seluque Fregonezi 259


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

0 1 0 0

0 1

0 0
Figura 10 – Comportamento do circuito NOR

As figuras 9 e 10 mostram que, se o input e o control recebem, ambos, o elemento neutro,


então a saída não se altera. Se o valor inicial da saída é o elemento neutro, ela continua com este
valor. Se o valor inicial da saída é o elemento nulo, ela também continua com este valor. Esta é uma
situação onde o bit de saída não depende, apenas, do valor dos bits de entrada, mas, também, do
seu valor anterior. A esta propriedade, dá-se o nome de “efeito memória”. Este efeito enquadra
este circuito na categoria de “circuito lógico seqüencial”.

in 1 in 1
out out

in 2 in 2

Figura 11 – Redefinição das variáveis de entrada

A preservação do valor da variável de saída por meio do “efeito memória” é chamada de


“comando hold” (“mantém”, em português). O comando hold é efetuado injetando-se o elemento
neutro nas duas entradas. O verbo “manter” pode ser interpretado como “não fazer nada”. Em ou-
tras palavras, se a ação das duas entradas tem algum significado, então o comando hold consiste
em não executar as ações definidas pelos significados das duas entradas.
Na porta lógica NAND, o elemento neutro é o valor lógico “um”. Isto significa que a injeção
do valor lógico “um” em uma das entradas implica em não executar a ação que dá significado a esta
entrada. A aplicação do valor lógico “um” em ambas entradas implica em “não fazer nada”. Em
outras palavras, as entradas são ativas em nível baixo.
Na porta lógica NOR, o elemento neutro é o valor lógico “zero”. Isto significa que a injeção
do valor lógico “zero” em uma das entradas implica em não executar a ação que dá significado a
esta entrada. A aplicação do valor lógico “zero” em ambas entradas implica em “não fazer nada”.
Em outras palavras, as entradas são ativas em nível alto.

260 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 02 – Flip Flop RS


No capítulo anterior, foi apresentado o efeito da realimentação positiva em circuitos lógicos
e como tal realimentação pode provocar o efeito de memorização do valor de um bit.
O flip-flop RS é o biestável mais simples disponível no universo dos circuitos digitais. A sigla
RS remete às duas ações sem memória possíveis em um bit binário:

 Set: Leva o valor a um.


 Reset: Leva o valor a zero.

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.

Prof. Marco Aurélio Seluque Fregonezi 261


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

O flip flop RS pode ser construído de duas formas:


 Flip flop RS NOR
 Flip flop RS NAND

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

262 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 6 – FF RS acionado por pulso estreito

Um exemplo de aplicação do flip flop RS acionado por pulso estreito é o controlador de um


motor em um sistema mecânico translacional com dois sensores de fim de curso, um em cada ex-
tremidade do persurso. Cada sensor aciona uma entrada (R ou S). O valor Q=0 está relacionado a
algum sentido na rotação do motor, e o valor Q=1 está relacionado ao outro sentido. Sendo assim,
o motor está sempre ligado, alternando o seu sentido de rotação toda vez que um sensor é acio-
nado. Considerando que o movimento translacional da parte móvel sofre inversão imediata no seu
sentido de movimento quando o sensor é acionado, então os sensores são acionados por um perí-
odo de tempo bastante curto.
Outro exemplo de aplicação do flip flop RS acionado por pulso é o gerador digital de sinal
PWM (pulse width modulation). Há um contador binário que define o período do sinal PWM. Este
contador binário define uma onda triangular ascendente. Toda vez que este contador sofre um over-
flow, ele reinicia, acionando o comando SET do flip flop. Existe uma palavra binária de comparação
que define o valor médio da onda quadrada de saída do modulador. Quando o valor do contador
coincide com o valor da palavra de comparação, o comando RESET do flip flop é acionado. A saída
Q corresponde ao sinal modulado por largura de pulso (PWM).
O flip flop RS é um flip flop inversor. Isto pode ser observado na figura 5. O estado proibido
injeta, nas duas saídas, o elemento neutro, mas o estado proibido é obtido por meio da aplicação
do elemento nulo nas duas entradas. Esta inversão acontece por causa na negação intrínseca às
portas lógicas NOR e NAND.

Prof. Marco Aurélio Seluque Fregonezi 263


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

RESET

SET

/Q

Figura 7 – Comportamento do FF RS ativo em nível alto (Q0 = 1)

/SET

/RESET

/Q

Figura 8 – Comportamento do FF RS ativo em nível baixo (Q0 = 0)

1MHz

1MHz

Figura 9 – Simulação analógica

Figura 10 – Resultado da simulação analógica

264 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 03 – Flip Flop Datum


No capítulo anterior, foi apresentado o flip flop RS. Na ocasião, foi observado o fato de que
aquele circuito possui uma combinação proibida em suas variáveis de entrada. Isto é um inconveni-
ente porque abre a possibilidade de que tal circuito se comporte de maneira inadequada.
Também foi observado, no capítulo anterior, que aqueles circuitos possuem três tipos de
combinação nas variáveis de entrada:

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.

Prof. Marco Aurélio Seluque Fregonezi 265


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 4 – Flip flop Datum com habilitação

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.

266 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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.

Prof. Marco Aurélio Seluque Fregonezi 267


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

268 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 04 – Flip flop datum master slave


No capítulo anterior, foi apresentado o flip flop datum. Na ocasião, foi observado o fato de
que aquele circuito responde imediatamente ao comando de entrada. Esta resposta imediata pode
parecer boa, porém ela impede que uma informação seja retida. Esta retenção é necessária para a
construção de circuitos sequenciais relevantes. Para que tal retenção seja obtida, é preciso aplicar
o princípio master-slave.
O mecanismo mestre-escravo consiste de duas portas de passagem de informação que
atuam de maneira complementar e serial. Quando a primeira está aberta, a segunda está fechada,
e vice-versa. Este princípio é aplicado em várias situações.
Exemplo 1: Em uma estação espacial, existem duas escotilhas que fazem a comunicação en-
tre o ambiente interno e o ambiente externo. O ambiente interno possui uma pressão igual à at-
mosférica. O ambiente externo possui uma pressão muito baixa, letal para o homem. Se houvesse,
apenas, uma única escotilha, o procedimento de saída do astronauta para o ambiente externo im-
plicaria na perda da pressão interna da estação, matando todos os seus ocupantes. Ao invés disso,
existem duas escotilhas que fazem comunicação com a câmara de descompressão. A primeira esco-
tilha faz a comunicação com o interior da estação. A segunda escotilha faz a comunicação com o
exterior. Ao iniciar o processo, o astronauta abre a primeira escotilha, certificando-se de que a se-
gunda escotilha está fechada. Em seguida, o astronauta entra na câmara e fecha a primeira escoti-
lha. Agora é possível abrir a segunda escotilha, pois a descompressão da câmara não implica na
descompressão do interior da estação.
Exemplo 2: Em um submarino, existem duas escotilhas que fazem a comunicação entre o
ambiente interno e a água do mar. O ambiente interno possui uma pressão igual à atmosférica. O
ambiente externo possui uma pressão muito alta, letal para o homem. Se houvesse, apenas, uma
única escotilha, o procedimento de saída do mergulhador para o ambiente externo implicaria na
inundação do submarino, matando todos os seus ocupantes, quer seja por afogamento, quer por
causa da alta pressão. Existem duas escotilhas que fazem comunicação com a câmara de descom-
pressão. A primeira escotilha faz a comunicação com o interior do submarino. A segunda escotilha
faz a comunicação com a água. Ao iniciar o processo, o mergulhador abre a primeira escotilha, cer-
tificando-se de que a segunda escotilha está fechada. Em seguida, o astronauta entra na câmara e
fecha a primeira escotilha. Agora é possível abrir a segunda escotilha para a entrada da água, pois a
elevação na pressão da câmara não implica na compressão do interior do submarino.
Exemplo 3: Em um canal de navegação, existem duas comportas que fazem a comunicação
entre um trecho de pequena altitude para um trecho de maior altitude. Se houvesse, apenas, uma
única comporta, o procedimento de uma região para a outra implicaria no alagamento de toda a
região a jusante, provocando grande tragédia. Existem duas comportas que fazem comunicação en-
tre a região baixa e a região alta. A primeira comporta faz a comunicação com a parte baixa. A se-
gunda comporta faz a comunicação com a parte alta. Ao iniciar a subida, o operador abre a primeira
comporta, certificando-se de que a segunda comporta está fechada, proporcionando o nivelamento
do nível da água. Em seguida, a embarcação entra na câmara de transição e fecha a primeira com-
porta. Agora é possível abrir a segunda comporta para a entrada da água. Quanto o nível da água
na câmara é igual ao nível da água na região mais elevada, então a segunda comporta é aberta e a
embarcação pode prosseguir viagem.
Exemplo 4: Salas limpas são ambientes cujo ar é submetido a um determinado nível de pu-
rificação a fim de que processos físico-químicos sejam realizados em o risco de sofrer contaminação.
A entrada e saída dos funcionários não pode permitir a entrada de contaminantes no ar. Há duas
portas de comunicação, entre as quais existe uma câmara de descontaminação. Quando o sujeito
chega, a porta externa é aberta e, junto com ele, entram, também, todos os contaminantes do ex-
terior. Ao fechar a primeira porta, um forte jato de ar é lançado sobre o homem ao mesmo tempo
Prof. Marco Aurélio Seluque Fregonezi 269
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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:

Opção Mestre Escravo


1 Nível baixo Nível alto
2 Nível alto Nível baixo
Tabela 1 – Níveis para ativação dos elementos do flip flop master slave

Flip flop Controle


Mestre Direto
Escravo Invertido
Tabela 2 – O sinal enviado para cada flip flop master slave de nível

O processo de gravação do flip flop master slave é composto de duas etapas:

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

Opção Gravação do mestre Gravação do escravo


1 0 1
2 1 0
Tabela 4 – As duas opções do flip flop master slave

Opção Gravação do MS Borda


1 01
2 10
Tabela 5 – Os dois tipos de borda de controle 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.

270 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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.

Opção Controle por nível


NOR Baixo
NAND Alto
Tabela 6 – Os dois tipos de flip flop datum com controle por nível

Opção Borda Elemento neutro Porta lógica


1 0 NOR
2 1 NAND
Tabela 7 – Os dois tipos de porta lógica aplicáveis aos flip flops

master slave
D
Q

CLK
/Q

Figura 1 – Flip flop datum master slave NOR – opção 1

master slave
D
Q

CLK
/Q

Figura 2 – Flip flop datum master slave NAND – opção 1

Prof. Marco Aurélio Seluque Fregonezi 271


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

master slave
D
Q

CLK
/Q

Figura 3 – Flip flop datum master slave NOR – opção 2

master slave
D
Q

CLK
/Q

Figura 4 – Flip flop datum master slave NAND – opção 2

master slave
D
Q

CLK
/Q

Figura 5 – Flip flop datum master slave NOR – opção 3

master slave
D
Q

CLK
/Q

Figura 6 – Flip flop datum master slave NAND – opção 3

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.

272 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Entrada Ação assíncrona


Clear Q=0
Preset Q=1
Tabela 8 – Os dois tipos de flip flop datum com entradas assíncronas

Opção Entradas assíncronas por nível Nome das entradas assíncronas


NOR Alto CL, PR
NAND Baixo /CL, /PR
Tabela 9 – O valor usado nas entradas assíncronas

+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

Como é possível descobrir, analiticamente, a localização das entradas assíncronas? Na ver-


são NOR, a injeção do elemento nulo (um) na entrada assíncrona superior, obtém-se o valor “zero”
na saída mais próxima (Q). Isto corresponde à função “clear”. A injeção do elemento nulo (um) na
entrada assíncrona inferior, obtém-se o valor “zero” na saída mais próxima (/Q). Isto corresponde à
função “preset”. Na versão NAND, a injeção do elemento nulo (zero) na entrada assíncrona superior,
obtém-se o valor “um” na saída mais próxima (Q). Isto corresponde à função “preset”. A injeção do
elemento nulo (zero) na entrada assíncrona inferior, obtém-se o valor “um” na saída mais próxima
(/Q). Isto corresponde à função “clear”.
As entradas assíncronas, quando ativadas, paralisam o flip flop. Por esse motivo, os coman-
dos assíncronos precisam ser ativados em um curto espaço de tempo, por um pulso estreito. Por
“pulso estreito”, entende-se como um pulso cuja largura é muito menor do que o período do relógio
(clock). Também não é permitido o acionamento das duas entradas assíncronas ao mesmo tempo,
pois suas ações são imediatas e antagônicas, levando o circuito a um comportamento inadequado.
A fim de garantir a brevidade do pulso na entrada assíncrona e, também, garantir que as duas en-
tradas assíncronas não são ativadas ao mesmo tempo, é recomendado, no ambiente de simulação
computacional do circuito, o uso de um modelo do tipo “push button” como fonte de sinal.
A obtenção das imagens dos circuitos foi obtida através do programa “CircuitMaker Student
V6.2c”. Foi observado um bug neste programa quando o push button (modelo SPDT_PB) recebe o
nível alto na entrada de baixo e o nível baixo na entrada de cima. Este é o caso do circuito NOR.
Como resultado deste bug, surge uma oscilação na saída. Caso você observe a ocorrência deste bug,
a solução é fazer a ligação do push buttom conforme o circuito NAND, usando uma porta NOT na
saída do push buttom.
O flip flop datum apresentado neste capítulo é usado como um bit de SRAM (static random
access memory), um elemento essencial em microcontroladores e em computadores. Esta é uma
memória estática porque a informação gravada é preservada enquanto o circuito está energizado,
não é preciso repetir o processo de gravação, como acontece com as memórias dinâmicas (DRAM).
Prof. Marco Aurélio Seluque Fregonezi 273
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

274 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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

Figura 12 – Anulação das entradas assíncronas

Prof. Marco Aurélio Seluque Fregonezi 275


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

276 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 05 – Toggle Datum


A palavra inglesa “toggle” significa “alternância”. No contexto dos circuitos digitais, esta pa-
lavra soa como um sinônimo de “biestável”. Fora deste contesto, as chaves do tipo “toggle” podem
ter mais de duas posições estáveis. No contexto binário, a diferença entre um biestável e um “to-
ggle” é que o biestável não precisa, necessariamente, sofrer uma alternância, enquanto um “toggle”
foi feito para sofrer as alternâncias.
No contexto da lógica sequencial, é possível construir um toggle através de vários tipos de
flip flop. Neste capítulo, será apresentado o circuito toggle construído a partir de um flip flop datum.
Em circuitos digitais, um toggle faz o papel de um “divisor de tensão”. Em uma base binária, a divisão
é por dois. Dividir a frequência por dois significa multiplicar o período por 2. O formato da onda do
sinal de saída (Q) depende da borda de ativação da entrada de relógio do flip flop. O divisor de
tensão também pode ser entendido como um contator de um bit, pois ele possui, apenas, dois es-
tados estáveis.

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

Figura 3 – Toggle com 74LS74 e com 4013

+V
CL

CLK

+V

PR

Figura 4 – Toggle Datum NOR

+V
/PR

CLK

+V

/CL

Figura 5 – Toggle Datum NAND

Considerando que a saída /Q é realimentada na entrada D, e considerando que o valor /D é


enviado para a metade de baixo do circuito, então o valor Q é enviado para a parte de baixo. A porta
NOT na entrada pode ser removida por meio de uma realimentação de Q (figuras 6 e 7).
Conforme pode ser observado nas figuras 6 e 7, o toggle datum consiste de uma realimen-
tação cruzada das saídas nas entradas. Considerando que os flip flops RS internos ao mestre e ao
escravo também possuem uma realimentação cruzada, podemos concluir que o toggle datum pos-
sui uma dupla realimentação cruzada. Sabendo que cada porta lógica possui um atraso inerente,
então cada realimentação cruzada possui seu próprio atraso. Uma dupla realimentação cruzada im-
plica em um atraso aproximadamente duplicado. A conclusão é a de que o toggle datum possui,
aproximadamente, o dobro do tempo de atraso de um flip flop datum controlado por borda.

278 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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

Figura 8 – Divisores de frequência por 4 com 74LS74 e com 4013

Prof. Marco Aurélio Seluque Fregonezi 279


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021
+V
CL

CLK

/Q

+V
PR

Figura 9 – Duplo Toggle Datum NAND

+V
/PR

Q Q

CLK

+V

/CL

Figura 10 – Duplo Toggle Datum NOR

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

280 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 06 – Máquina de estados estáveis finitos


Se um pesquisador fizer uma consulta popular a respeito do significado da palavra “má-
quina”, perceberá que cada entrevistado apresentará uma definição diferente a cerca deste signifi-
cado. No contexto da engenharia mecânica, esta palavra está associada ao fato de que existem dois
ou mais estados possíveis. Um alicate é uma máquina, pois ele pode estar aberto ou fechado. Uma
chave de fenda não é uma máquina, pois possui, apenas, um estado.
Se o mesmo pesquisador fizer uma consulta sobre o significado da palavra “estável”, tam-
bém obterá uma grande quantidade de significados e interpretações. Estável é tudo aquilo que pode
permanecer em um estado. Estabilidade e equilíbrio são conceitos relacionados. No contexto da
engenharia, existem quatro situações quanto à estabilidade e ao equilíbrio de um sistema:

 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).

As MEEF´s possuem três tipos de variáveis:


 Variáveis de dados de entrada
 Variáveis de dados de saída
 Variáveis de estado

A quantidade de variáveis de estado é determinada por meio da quantidade de estados, por


meio das potências de “dois”. As variáveis de estado são representadas pela letra “Q” precedida do

Prof. Marco Aurélio Seluque Fregonezi 281


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

í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.

Quanto às variáveis de saída, há dois tipos:


 Variável de saída combinacional: Depende, apenas, das variáveis de entrada.
 Variável de saída sequencial: Depende de, pelo menos, uma variável de estado.

A definição de uma MEEF é feita por meio de dois recursos:


 Diagrama de estados estáveis finitos
 Tabela de transições de estados estáveis finitos

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.

Exemplo 1: Contador de 1 bit

Antes Depois
Q=0 Q=1 0 1
Q=1 Q=0
Tabela 2 – Exemplo 1 Figura 1 – Exemplo 1

Exemplo 2: Contador de 2 bits

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

282 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Contador de 3 bits

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

Exemplo 4: Contador de 4 bits

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

Prof. Marco Aurélio Seluque Fregonezi 283


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

0
1
14 2

13 3
3
12 4

10 6
9 8

Figura 4 – Exemplo 4

Exemplo 5: Contador BCD

O contador BCD é um contador incompleto de 4 bits. Das dezesseis combinações possíveis


das quatro variáveis de estado, somente dez são usadas. As seis combinações não usadas não defi-
nem estados estáveis. Para facilitar o projeto do circuito, é possível criar o conceito abstrato de
“estado fantasma”, isto é, um estado que poderia existir mas não existe porque o seu endereço – a
combinação dos bits de estado – jamais é utilizado.
Considerando que a tabela de transições de estados estáveis finitos consiste de várias tabe-
las verdade, uma para cada variável de estado e de saída, então é necessário incorporar todos os
estados fantasmas. Como eles nunca são usados, então a definição do estado apontado por eles é
irrelevante.
Na tabela 7a os valores são decimais, então as irrelevâncias (X) são, também, decimais, entre
zero e quinze (ou hexadecimais). Na tabela 6b os valores são binários, então as irrelevâncias tam-
bém são binárias. Quando a tabela de transições de estados finitos apresenta os “estados fantas-
mas” apontado para valores irrelevantes nos bits de estado, então os estados fantasmas não podem
ser incluídos no diagrama de estados estáveis finitos. Quando o diagrama de EEF´s apresenta os
estados estáveis finitos, então este diagrama deve mostrar para onde os EEF´s apontam, pois, no
contrário, o diagrama estaria incompleto em sua lógica. Como exemplo, será apresentado o conta-
dor BCD onde os “estados fantasmas” levam, todos, para o estado inicial, “zero”.

0 1
9

2
8

3
7
6 4
5

Figura 5 – Exemplo 5 com os “estados fantasmas” indefinidos

284 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 6 – Exemplo 4 com os “estados fantasmas” definidos para o estado inicial

Prof. Marco Aurélio Seluque Fregonezi 285


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

0
1
14 2

13 3
3
12 4

10 6
9 8

Figura 7 – Exemplo 4 com os “estados fantasmas” definidos para o estado seguinte

Antes Depois - Depois –


Destino em “0” Destino adiante
Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0 Q3 Q2 Q1 Q0
0 0 0 0 0 0 0 1 0 0 0 1
0 0 0 1 0 0 1 0 0 0 1 0
0 0 1 0 0 0 1 1 0 0 1 1
0 0 1 1 0 1 0 0 0 1 0 0
0 1 0 0 0 1 0 1 0 1 0 1
0 1 0 1 0 1 1 0 0 1 1 0
0 1 1 0 0 1 1 1 0 1 1 1
0 1 1 1 1 0 0 0 1 0 0 0
1 0 0 0 1 0 0 1 1 0 0 1
1 0 0 1 0 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 1 0 1 1
1 0 1 1 0 0 0 0 1 1 0 0
1 1 0 0 0 0 0 0 1 1 0 1
1 1 0 1 0 0 0 0 1 1 1 0
1 1 1 0 0 0 0 0 1 1 1 1
1 1 1 1 0 0 0 0 0 0 0 0
Tabela 8 – Exemplo 4 com os “estados fantasmas” definidos

286 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 07 – MEEF´s com uma entrada


No capítulo anterior, foi apresentado o conceito de máquinas de estados estáveis finitos. Na
oportunidade, todos os exemplos apresentados possuem, apenas, um único caminho, uma única
sequência. Aqueles são exemplos de MEEF´s sem entradas. A ausência de entradas indica que existe,
apenas, um único tipo de contagem. O tipo de contagem não pode ser alterado.
Há situações, porém, nas quais é desejável que exista a liberdade de escolha entre dois ou
mais tipos diferentes de contagem. A fim de que tal escolha exerça influência no circuito, é neces-
sário usar variáveis de controle ou de seleção.

Esse tipo de circuito possui três tipos de variáveis:


 Variáveis de estado – Q0, Q1, Q2, ...
 Variáveis de controle – A, B, C, ...
 Variáveis de seleção – S0, S1, S2, ...

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.

As principais ações de controle são:


 Pausa (pause)
 Reiniciação (restart)
 Inversão (invert)

Prof. Marco Aurélio Seluque Fregonezi 287


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 1: Contador de 1 bit com pausa

A Ação
0 Q=Q-
1 Q=/Q-
Tabela 1 – Exemplo 1 – Definição das ações

A Antes Depois A=1 A=0 A=0: Pausa


0 Q=0 Q=0 A=1: Contagem
0 Q=1 Q=1 0 1
1 Q=0 Q=1 A=0
A=1
1 Q=1 Q=0
Tabela 2 – Exemplo 1 Figura 1 – Exemplo 1

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”.

Exemplo 2: Contador de 2 bits com pausa

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

288 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Contador de 3 bits com pausa

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

Prof. Marco Aurélio Seluque Fregonezi 289


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 4: Contador de 2 bits com inversão

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

Exemplo 5: Contador de 3 bits com inversão

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

290 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Exemplo 6: Contador de 2 bits com reiniciação

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

Prof. Marco Aurélio Seluque Fregonezi 291


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 7: Contador de 3 bits com reiniciação

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”.

292 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 8: Contador BCD com reiniciação

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

Prof. Marco Aurélio Seluque Fregonezi 293


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

294 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 08 – MEEF´s com várias entradas


No capítulo anterior, foi apresentado o conceito de entrada de controle em máquinas de
estados estáveis finitos. Na oportunidade, todos os exemplos apresentados possuem, apenas, uma
única entrada de seleção.
Há situações, porém, nas quais é necessário o uso de mais de uma variável de controle/se-
leção. A fim de que não ocorra erro na interpretação da tabela e do diagrama, é necessário que a
legenda faça a discriminação de todas as combinações destas variáveis.
No diagrama de estados estáveis finitos, o valor de todas as variáveis de controle/seleção
precisa ser indicado junto com as setas de transições.

Os principais tipos de controle são:


 Pausa (pause)
 Reiniciação (restart)
 Inversão (invert)

O comportamento do contador é determinado pelos bits de controle. O ajuntamento orde-


nado dos bits de controle formam a palavra de controle (control word). Esta palavra não pode ser
confundida com a palavra (ou as palavras) de dados. Em uma palavra de dados, os bits possuem,
todos, a mesma função, uma função informativa.
Dentro de um mesmo sistema, todas as transições possíveis – incluindo aquelas que não são
usadas – precisam considerar o valor de todas as variáveis de controle.
Alguns comandos possuem o poder de anular outros comandos. Por exemplo, o comando
“pause” anula o comando da inversão, pois, se o contador está parado, não faz sentido falar sobre
o sentido da contagem.
Existem dois tipos de comando “pause”. O primeiro tipo é aquele que anula a ação do relógio
(clock). Neste caso, a pausa anula a ação de todos os outros comandos. O segundo tipo, apresentado
neste capítulo, é aquele que mantém a ação do relógio, mas configura o estado vigente para ser o
próximo estado. Neste caso, um comando de reiniciação pode atuar durante a vigência da pausa.
Quando uma máquina possui várias ações de controle, é preciso que o diagrama de estados
estáveis finitos explique de que maneira os comandos interagem entre si.

Prof. Marco Aurélio Seluque Fregonezi 295


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 1: Contador de 2 bits com pausa e inversão

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

296 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 2: Contador de 2 bits com pausa e reiniciação

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

Prof. Marco Aurélio Seluque Fregonezi 297


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Contador de 2 bits com reiniciação e inversão

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

298 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 09 – Contador assíncrono Datum


Contador é todo dispositivo cuja principal função é a de efetuar uma contagem. Esta defini-
ção pode parecer óbvia, porém ela é relevante para a distinção entre contadores e temporizadores,
quando, especialmente em sistemas digitais, estas duas entidades podem ser construídas por meio,
exatamente, do mesmo circuito elétrico.
Um contador acionado por um relógio (clock), por ter uma base de tempo constante, possui
um tempo de contagem previsível, podendo ser usado, também, como temporizador. Se a conta-
gem é mais importante do que a temporização, então o dispositivo recebe o nome de “contador”.
Se a temporização é mais importante do que a contagem, então o dispositivo recebe o nome de
“temporizador”. Se a base de tempo é aleatória (processo estocástico), então o contador não pode
ser usado como um temporizador.
Nos capítulos anteriores, foi apresentado o duplo toggle, que age como um divisor de fre-
quência por quatro. No divisor por quatro (ou por oito, dezesseis, etc), o valor das saídas “Q” dos
flip flops intermediários é irrelevante; somente interessa o valor da saída do último flip flop. Se,
porém, usamos as saídas de todos os flip flops, temos, então, um contador assíncrono.
A palavra “assíncrono”, neste contexto, pode ser entendida de duas formas:
1. As entradas de controle dos flip flops de contagem não estão, todas elas, ligadas ao
mesmo nó topológico de modo que não é possível afirmar se todas essas entradas
recebem exatamente o mesmo sinal exatamente no mesmo instante.
2. O sinal de relógio propaga serialmente de um flip flops para o próximo, agregando, a
este sinal, o tempo de atraso de propagação de maneira cumulativa, de modo que
os primeiros flip flops estão adiantados e os últimos estão atrasados; todos os flip
flops de contagem estão fora de sincronia uns com os outros.
A falta de sincronia faz com que cada bit de contagem tenha seu próprio instante de atuali-
zação. Considerando que o atraso é cumulativo entre os flip flops, a arquitetura de contadores as-
síncronos funciona satisfatoriamente quando existem poucos bits de contagem. Porém, quando a
quantidade de bits é grande, o atraso acumulado no último flip flop pode ser prejudicialmente rele-
vante.
Considerando que o tempo de atraso de propagação de um flip flop é de algumas dezenas
de nano segundos, este efeito é imperceptível para os olhos humanos, mas é percebido quando o
contador assíncrono aciona um outro dispositivo digital.
A falta de sincronia gera um comportamento transitório errado na passagem de alguns es-
tados para o próximo estado. Quando a transição implica na alteração de, apenas, um único bit,
então o efeito da falta de sincronia não é percebido a não ser através do atraso propriamente dito.
Porém, quando dois ou mais bits são alterados na mesma transição, então uns são alterados antes
de outros, gerando números errados no barramento de saída do contador.
Quando o contador assíncrono é usado como temporizador, os valores intermediários da
contagem não importam; somente interessa a sinalização de término da contagem (time-out). Neste
caso, os problemas inerentes ao contador assíncrono tornam-se irrelevantes.
Considerando que, nos esquemáticos, as entradas são colocadas à esquerda e o fluxo de
informação segue da esquerda para a direita, então a ordem dos flip flop de um contador assíncrono
é invertida em relação ao número binário gerado na contagem. O bit menos significativo é o da
extremidade esquerda e o bit mais significativo é o da extremidade direita. Isso pode ser constatado
por meio do fato de que os divisores de frequência geram toggles mais lentos na sequência, de
modo que o flip flop da esquerda é o mais rápido e o da direita o mais lento.
Contadores assíncronos são formados por toggles, um para cada bit de contagem. Nos capí-
tulos anteriores, foi apresentado o toggle datum, mas qualquer outro circuito toggle pode ser usado
na construção de um contador assíncrono.
Prof. Marco Aurélio Seluque Fregonezi 299
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Em toda contagem crescente de vários dígitos, em qualquer base, o incremento de um dígito


à esquerda acontece na borda de descida do bit à direita. Por esse motivo, os contadores binários
construídos a partir de flip flops devem usar flip flops sensíveis à borda de descida do sinal de con-
trole. Nem sempre, porém, é possível escolher esse tipo de flip flop. Eventualmente, pode ser que
o projetista seja obrigado a usar algum dispositivo de borda de subida. Neste caso, a ligação entre
os divisores de freqüência precisa fazer uso do sinal /Q. Por causa do uso da saída complementada,
a borda negativa é transformada em positiva.
C Q C Q C Q C Q
Divisor Divisor Divisor Divisor
De De De De
/Q /Q /Q /Q
freqüência freqüência freqüência freqüência
Figura 1 – Contador assíncrono de 4 bits com borda de subida

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

Figura 3 – Contador assíncrono de 2 bits com NOR

Q0 +V Q1
/PR

CLK

+V

/CL

Figura 4 – Contador assíncrono de 2 bits com NAND

300 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+V

S S
D Q D Q
_ _
CLK CP Q CP Q 4321
R R

Figura 5 – Contador assíncrono de 2 bits

+V

S S S
D Q D Q D Q
_ _ _ 4321
CLK CP Q CP Q CP Q
R R R

Figura 6 – Contador assíncrono de 3 bits

+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

Figura 7 – Contador assíncrono de 4 bits

FF Divisão de frequência
0 /2
1 /4
2 /8
3 /16
Tabela 1 – Divisão cumulativa de freqüência

O efeito cumulativo das sucessivas divisões de frequência remete ao princípio da comatória


das parcelas componentes de todo número binário, conforme apresentado nos primeiros capítulos
acerca da aritmética binária.

Prof. Marco Aurélio Seluque Fregonezi 301


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

É 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:

 01b  00b  10b


 11b  10b  00b

Início Intermédio Final


Estável Instável Estável
01 00 10
11 10 00
Tabela 2 – Defeitos instáveis devido a assincronia de 2 bits

Além dos circuitos temporizadores, os contadores assíncronos encontram aplicação onde o


atuador possui um intrínseco filtro passa-baixas, como, por exemplo, um painel luminoso onde as
lâmpadas apresentem um elevado tempo de acendimento e apagamento. Um tempo considerado
elevado está na ordem de milissegundos.
Algumas aplicações de baixa frequência podem sofrer comportamento inadequado quando
submetidas às oscilações decorrentes da assincronia. Neste caso, um capacitor pequeno, de alguns
picofarads, colocado em paralelo com cada um dos bits de saída, pode filtrar estas oscilações.

302 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 10 – Contador síncrono Datum


No capítulo anterior, foi apresentado o contador assíncrono Datum. Na oportunidade, foi
explicado o problema gerado pela falta de sincronia dos bits de contagem. A fim de eliminar os
sintomas da falta de sincronia, é preciso, então, construir um contador síncrono.
O contador síncrono é aquele onde não existe diferença de atraso de propagação nas entra-
das de controle por borda dos FF´s. A forma mais eficaz de garantir que este atraso não exista é por
meio da ligação destas entradas de controle por borda no mesmo nó topológico.
As entradas “D” dos FF´s consistem de funções booleanas independentes e que precisam ser
determinadas. A determinação destas funções retrata o processo de projeto do circuito lógico.
Como as funções são independentes, então é possível projetar cada uma delas separadamente, par-
tindo do LSb e terminando no MSb. Em caráter de exemplificação, será apresentado o projeto de
um contador de quatro bits.
Lembrando que a saída “Q” corresponde à entrada “D” após a borda de controle, então os
bits “Q” correspondem à palavra binária antes da borda de controle e os bits “D” correspondem à
palavra binária depois da borda de controle.

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

Prof. Marco Aurélio Seluque Fregonezi 303


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 = Q1Q0 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/Q1Q0)+(/Q2Q1Q0)+(Q2Q1/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´ = Q1Q0
Observando a tabela-verdade de D2 completa, podemos juntar a função D2´ com a variável
de entrada Q2:
D2 = Q2D2´
D2 = Q2(Q1Q0)

+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

Prof. Marco Aurélio Seluque Fregonezi 305


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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´ = Q2Q1Q0
D3 = Q3D3´
D3 = Q3(Q2Q1Q0)
D2´ = Q1Q0
D3 = Q3(Q2D2´)

+
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.

306 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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

Figura 7 – Módulo contador D síncrono de um bit

th3 th2 th1 th0


1-bit 1-bit 1-bit 1-bit
en3 en2 en1 en0
COUNT COUNT COUNT COUNT
CLK CLK CLK CLK
3 2 1 0
4321
out3 out2 out1 out0
CLK

Figura 8 – Quatro módulos contador D síncronos de um bit

4 3 21
th en
4-bit
COUNT out
CLK

Figura 9 – Módulos contador D síncronos de quatro bits

Prof. Marco Aurélio Seluque Fregonezi 307


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 10 – Módulo contador D síncrono de quatro bits

4 3 21 4 3 21
en
TH 4-bit 4-bit
COUNT COUNT
CLK 1 CLK 0
CLK

Figura 11 – Módulos contador D síncronos de quatro bits

contador mais significativo contador menos significativo


enable
threshold +V

+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

Figura 12 – Contador de dois nibbles a partir de dois contadores de um nibble

308 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 11 – Contador com desvio assíncrono


A palavra “desvio” significa “sair da via”, “tomar uma outra via”. Nos capítulos anteriores
foram apresentados os contadores completos síncronos e assíncronos. Por serem completos, eles
fazem uso de todas as combinações das variáveis de estado.
Nem sempre, porém, os estados são usados na contagem. Na falta de um nome consagrado
pela literatura técnica, vamos usar, provisoriamente, o nome de “estado fantasma” para estes es-
tados não usados. Este nome é provisório porque estamos aguardando que a comunidade científica
escolha um nome universal para os estados não usados. Por esse motivo, não é recomendado o uso
da terminologia “estado fantasma” fora do contexto deste curso, pois, se ela não é consagrada pela
comunidade científica, você corre o risco de não ser compreendido ao fazer uso destas palavras.
No diagrama de estados estáveis finitos, os “estados fantasmas” são desenhados por meio
de uma circunferência tracejada.
Existem, também, os “estados fantasmas condicionais”. Isto acontece quando existe uma
variável de controle que, ao ser ativada ou não, pode tornar fantasma um determinado estado ou
não. Se este é o caso, o desenho, no diagrama, deve ser feito por meio de um círculo contínuo.

Há dois tipos de contadores incompletos:


 Contador interrompido
 Contador de sequência não linear

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.

Há dois tipos de contadores interrompidos:


 Contador com circuito de desvio (desvio assíncrono
 Contador sem circuito de desvio (desvio síncrono)

O contador com circuito de desvio é construído a partir de um contador completo acrescen-


tado de um circuito combinacional de desvio. O contador completo original pode ser síncrono ou
assíncrono. O contador sem circuito de desvio não parte de um contador completo; o circuito é,
inicialmente, projetado considerando-se a incompletude da contagem. O contador sem circuito de
desvio somente pode ser construído na versão síncrona e é assunto para os capítulos mais adiante.
O princípio do circuito de desvio, assunto deste capítulo, está baseado em um circuito com-
binacional que identifica uma certa combinação das variáveis de estado e, ocorrendo esta identifi-
cação, ativa as entradas preset de alguns flip flops e as entradas clear de outros flip flops.
A combinação que ativa o circuito de desvio é um estado “fantasma”. Assim que este estado
é ativado, o circuito de desvio leva o contador para outro estado. O estado “fantasma” de desvio,
embora seja usado, não é estável, pois o seu tempo de uso não é definido pelo relógio do sistema,
mas, sim, pelo tempo de atraso de propagação do circuito interno dos flip flops. Por não ser estável,
este estado não é considerado um estado estável válido.
Por causa da assincronia das entradas preset e clear dos flip flops, o circuito de desvio é
considerado assíncrono. Temos, então, um “desvio assíncrono”.

Prof. Marco Aurélio Seluque Fregonezi 309


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Há três tipos de contadores interrompidos quanto à sincronia:


 Contador assíncrono com circuito de desvio assíncrono
 Contador síncrono com circuito de desvio assíncrono
 Contador síncrono com circuito de desvio síncrono (será visto mais adiante)

Um contador síncrono com circuito de desvio assíncrono comporta-se como um contador


síncrono nas transições lineares, e comporta-se como um contador assíncrono na transição de des-
vio. Considerando que um contador síncrono apresenta um comportamento de um contador assín-
crono, mas possui um circuito mais complexo, então o uso de um desvio assíncrono em um contador
síncrono anularia as vantagens da opção pelo contador síncrono. Por esse motivo, se o contador é
síncrono, a melhor opção é pelo desvio síncrono (será visto mais adiante). Com base nesta conclu-
são, todos os exemplos apresentados neste capítulo estão baseados no contador datum assíncrono.

Há dois tipos de contadores interrompidos quanto ao significado da interrupção:


 Contador incompleto
 Contador com pulo

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.

Há dois tipos de FF´s quanto às entradas assíncronas:


 Ativação em nível alto
 Ativação em nível baixo

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.

310 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 1: Contador BCD com CL

Um contador BCD é um contador hexadecimal incompleto. Os estados “fantasmas” são


{10,11,12,13,14 e 15}. O primeiro estado fantasma é o “10”. É neste estado que o desvio assíncrono
precisa ser efetuado.

out0
4-bit out1
CLK COUNT out2
out3
restart
identificador
de 1010b
Figura 1 – Interrupção BCD em um contador hexadecimal

Estado gatilho: 10d = 1010b


Clear = Q3/Q2Q1/Q0 (mintermo 10)

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

Exemplo 2: Contador BCD com /CL

Estado gatilho: 10d = 1010b


/Clear = /Q3+Q2+/Q1+Q0 (maxtermo 10)
+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

Figura 3 – Exemplo 2

Prof. Marco Aurélio Seluque Fregonezi 311


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 4 – Interrupção BCD em um contador hexadecimal

O primeiro estado “fantasma” de um contador interrompido é usado para acionar a reinici-


ação do contador. Caso haja mais estados “fantasmas”, por jamais serem acessados, o apontamento
para o próximo estado é irrelevante. Por causa disso, a ação destes estados sobre as entradas “clear”
dos FF´s também é irrelevante. Estas irrelevâncias podem ser usadas para aplicar alguma técnica de
minimização. Como a função “restart” é formada por um único termo, a minimização pode propor-
cionar a redução na quantidade de entradas da porta lógica.

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 = Q3Q1
/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

Figura 5 – Exemplo 1 minimizado

312 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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

Figura 6 – Exemplo 2 minimizado

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

Prof. Marco Aurélio Seluque Fregonezi 313


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

314 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 12 – Contador com pulo assíncrono


No capítulo anterior, foi apresentado o conceito de contador interrompido. O conceito de
contador com pulo é bastante semelhante. A única diferença é que o circuito de desvio, ao invés de
levar ao estado “zero”, leva para um estado posterior ao estado “fantasma” que aciona o desvio.
Quando o circuito de desvio leva para o estado “zero”, o desvio aciona as entradas “clear”
de todos os flip flops de contagem. Quando, porém, o circuito de desvio leva para um estado se-
guinte, então, a depender do número do estado apontado pelo desvio, alguns flip flops sofrerão o
comando “clear” e outros flip flops sofrerão o comando “preset”.
Com exceção do primeiro estado “fantasma”, chamado de “estado gatilho”, que aciona o
circuito de desvio, os demais estados fantasmas implicam em uma irrelevância na tabela-verdade
da função de desvio. O estado apontado pela função de desvio precisa ser, necessariamente, supe-
rior ao estado “fantasma” onde o comando é acionado. Não sendo assim, o contador entra em um
loop infinito.
O pulo pode ser entendido como a instrução GOTO da linguagem assembler. Este comando
possui, como argumento, o endereço da program memory para onde o salto precisa levar. A não ser
que existam outros mecanismos de desvio, o endereço apontado pela instrução GOTO precisa ser
superior ao endereço onde esta instrução está armazenada.

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”.

Estado gatilho: 5d = 101b


Estado de destino: 6d = 110b
Clear = Q2/Q1Q0
Clear = PR2 = PR1 = CL0
4d = 100b

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

Prof. Marco Aurélio Seluque Fregonezi 315


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 2: Contador de três bits que pula o estado “3” em nível alto.

Estado gatilho: 3d = 011b


Estado de destino: 4d = 100b
Clear = /Q2Q1Q0
Clear = PR2 = CL1 = CL0
2d = 010b

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.

Estado gatilho: 3d = 011b


Estado de destino: 6d = 110b
Clear = /Q2Q1Q0
Clear = PR2 = PR1 = CL0

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

Estado gatilho: 1d = 001b


Estado de destino: 4d = 100b
Clear = /Q2/Q1Q0
Clear = PR2 = CL1 = CL0

S S S
D Q D Q D Q
_ _ _ 4321
CLK CP Q CP Q CP Q
R R R

Figura 6 – Exemplo 4 não minimizado

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´ = /Q2Q0
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.

Prof. Marco Aurélio Seluque Fregonezi 317


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

S S S
D Q D Q D Q
_ _ _ 4321
CLK CP Q CP Q CP Q
R R R

318 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 13 – Contador codificado


Em capítulos anteriores, foi apresentado o conversor de código, um circuito que converte
uma palavra binária de entrada em uma outra palavra binária de saída. Este circuito conversor de
código pode ser acoplado à saída de um contador a fim de que um contador específico seja criado.
Esta estratégia simplifica o processo de criação de contadores complexos.
Como os contadores fornecem, naturalmente, as saídas complementadas, então não é ne-
cessário usar as portas NOT nas entradas do circuito conversor de código.
Nenhum contador normal permite a repetição de estados dentro de uma mesma contagem.
A técnica da codificação da palavra de saída de um contador é o método mais fácil para a criação de
contadores que possuam estados repetidos em uma mesma contagem.
A técnica da codificação das saídas é particularmente interessante quando se trabalha com
contadores de poucos estados mas que exibam números grandes. Por exemplo, suponhamos que
desejamos construir um contador que exiba números que expressem anos, partindo de 1981 até
2007. Se o contador é construído para exibir esses números diretamente, será necessário usar todos
os onze bits nesta contagem. Usando um circuito de codificação, este número pode ser reduzido.
De 1981 até 2007, há vinte e sete estados. Para que esses estados sejam endereçados, são neces-
sários, apenas, cinco bits de contagem.

n-bit m-bit
n-bit
CLK CONV.
COUNT

Figura 1 – Exemplo 1

Prof. Marco Aurélio Seluque Fregonezi 319


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 1: Contador síncrono datum 2-3-0-1

Este primeiro exemplo faz uso dos


+V
resultados obtidos na construção do
circuito projetado no capítulo sobre
S S
D Q
_
D Q
_
conversores de código, na unidade
4321
CP Q CP Q sobre álgebra booleana, exemplo 1.
R R

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”

320 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 2: Contador síncrono datum 5-2-6-4


Este segundo exemplo faz uso
+V
dos resultados obtidos na construção
do circuito projetado no capítulo so-
S S bre conversores de código, na uni-
D Q D Q
_ _
4321
dade sobre álgebra booleana, exem-
CP Q CP Q
R R plo 2.

CLK Input Output


0 5
1 2
2 6
3 4
Tabela 3 – Definição do conversor

B A Out2 Out1 Out0


0 0 1 0 1
0 1 0 1 0
4321 1 0 1 1 0
1 1 1 0 0
Tabela 4 – Definição das funções binárias

Out2 Out1 Out0


Figura 4 – Contador 5-2-6-4 com análise de “uns”

+V

S S
D Q D Q
_ _
CP Q CP Q 4321
R R

CLK

+V

4321

Out2 Out1 Out0


Figura 5 – Contador 5-2-6-4 com análise de “zeros”

Prof. Marco Aurélio Seluque Fregonezi 321


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Contador assíncrono datum 2-2-0-1-0-2-1-1


Este terceiro exemplo faz uso
+V
dos resultados obtidos na construção do
circuito projetado no capítulo sobre
S S S conversores de código, na unidade so-
D Q D Q D Q
_ _ _ 4321 bre álgebra booleana, exemplo 3.
CLK CP Q CP Q CP Q
R R R
Input Output
0 2
1 2
2 0
3 1
4 0
5 2
6 1
7 1
Tabela 5 – Definição do conversor

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

322 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 4: Contador assíncrono datum (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.

Prof. Marco Aurélio Seluque Fregonezi 323


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

324 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Unidade 5
Circuitos JK

Prof. Marco Aurélio Seluque Fregonezi 325


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

326 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 01 – Flip Flop JK


Nos capítulos anterior, foram apresentados os flip flops RS e datum. O flip flop RS possui a
vantagem de apresentar o comando “hold”. O FF datum possui a vantagem de possuir, apenas, uma
entrada de dados.

Os quatro comandos aplicáveis a um bit são:


 Hold: Q = Q-
 Reset: Q = 0
 Set: Q = 1
 Invert: Q = /Q-

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

Em verdade, os quatro comandos podem ser reduzidos a, apenas, dois comandos.

Comando Q- Q Ação H/I Ação R/S


0 0 Hold Reset
Hold
1 1 Hold Set
0 0 Hold Reset
Reset
1 0 Invert Reset
0 1 Invert Set
Set
1 1 Hold Set
0 1 Invert Set
Invert
1 0 Invert Reset
Tabela 2 – Os quatro comandos convertidos em dois comandos

Nenhum dos flip flops apresentados anteriormente implementam o comando “invert”. O


circuito toogle D implementa a inversão por meio de um circuito externo e não por meio do flip flop.
Necessário se faz criar um FF que possua o comando “invert” embutido. Para satisfazer a esta de-
manda, surge o flip flop JK.
A tabela 3 mostra que há duas possibilidades para o acionamento dos quatro comandos do
FF JK, uma usando porta NAND, outra usando porta NOR. Embora as duas opções sejam idênticas
em eficiência, somente a primeira opção é usada. As motivações que levaram a esta escolha são de
ordem comercial e/ou tecnológica.

Prof. Marco Aurélio Seluque Fregonezi 327


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Os comandos “reset” e “set” têm um efeito previsível independentemente do valor anterior


da variável de estado “Q”. Esta previsibilidade evidencia que o valor anterior de “Q” é irrelevante.
Esta irrelevância mostra que não há efeito memória nestes dois comandos.
Os comandos “hold” e “invert” têm um efeito imprevisível se não sabemos do valor anterior
da variável de estado “Q”. Esta imprevisibilidade é intrínseca à etimologia destas duas palavras.
Quando usamos o verbo “manter”, precisamos, obviamente, saber qual é o valor anterior daquilo
que se deseja manter. Quando usamos o verbo “inverter”, também precisamos saber qual é o valor
anterior daquilo que se deseja inverter.
No contexto da filosofia, se você deseja apoiar uma idéia, você precisa, primeiro, entender
muito bem desta idéia a fim de que as suas palavras verdadeiramente apoiem esta idéia. Não é
possível apoiar corretamente aquilo que não se compreende. Igualmente, se você deseja refutar
uma idéia, você precisa entender muito bem desta idéia. Um erro muito comum, cometido por for-
madores de opinião , é o de tentar apoiar ou refutar algo sobre o qual não possuem entendimento.
Em um trabalho filosófico relevante, a confirmação ou a refutação de uma tese requer, obrigatori-
amente, a apresentação das referências a cerca desta tese, ou seja, é preciso fazer uma consulta ao
conhecimento anterior, e isso é justamente aquilo que chamamos de “efeito memória”. As referên-
cias bibliográficas são uma consulta à memória a respeito da sabedoria do passado.
Também no contexto da filosofia, se você deseja apresentar uma idéia nova, você não pre-
cisa, obrigatoriamente, apresentar referências bibliográficas, a não ser quando você deseja fazer
alguma comparação ou alguma justificativa. Esta não necessidade de consulta a referências biblio-
gráficas evidencia uma ausência de “efeito memória”. Este seria o caso dos comandos “reset” e
“set”. do flip flop RS e do flip flop 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.

328 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 = (/KQ)+(J/Q)

Há duas possibilidades para a construção do circuito minimizado: produto de somas ou soma


de produtos. Neste texto, é usada a segunda opção. O leitor pode realizar a simulação do circuito
da primeira opção. É possível fazer uso do implicante primo não essencial para reduzir a possibili-
dade do surgimento de spikes.

+V

C S
D Q
_
CP Q
R
K

Figura 1 – Flip flop JK a partir de flip flop datum; D = (/KQ)+(J/Q)

datum master slave


Q

K
J
/Q

CONTROL

Figura 2 – Flip flop JK a partir de flip flop datum; D = (/KQ)+(J/Q)

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

Prof. Marco Aurélio Seluque Fregonezi 329


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

D = (/K+/Q)(/K+/Q)(J+Q)
D = (/KQ)+ (J/K)+ (J/Q)
+V

S
D Q
_
C CP Q
R

Figura 3 – Flip flop JK a partir de flip flop datum; D = (/KQ)+(J/K)+(J/Q)

datum master slave


Q

J
/Q

K CONTROL

Figura 4 – Flip flop JK a partir de flip flop datum; D = (/KQ)+(J/K)+(J/Q)

datum master slave


Q

J
/Q
K

CONTROL

Figura 5 – Flip flop JK trocando as portas AND e OR por portas NAND

O projeto do circuito com portas NAND é feito por meio da propriedade:


(B+A) = (/B+/A) De Morgan

330 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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 = (/KQ)+(J/Q)
/D = (KQ)+(/J/Q)

J K
+V /PRESET

set Q

/Q

+V
reset

/CLEAR

Figura 7 – Flip flop JK a partir de flip flop RS

J K
+V /PRESET

s*
set Q

C
r*
/Q

+V
reset

/CLEAR

Figura 8 – Flip flop JK trocando as portas AND e OR por portas NAND

Prof. Marco Aurélio Seluque Fregonezi 331


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

SET = /(/(/QJ)/(/KQ))
RESET = /(/(/Q/J)/(KQ))

s* = /( SETC)
r* = /(RESETC)

s* = /(/(/(/QJ)/(/KQ))C)
r* = /(/(/(/Q/J)/(KQ))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

Figura 9 – A primeira etapa do processo de simplificação

J K
+V /PRESET

/Q

+V

/CLEAR

Figura 10 – A segunda etapa do processo de simplificação

332 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

74LS73 74LS107 4027 74LS76 74LS112

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

Figura 11 – Os cinco tipos de flip flop JK disponíveis no ambiente de simulação

 74LS73: DIP14 Dual Negative-Edge-Triggered Master-Slave J-K Flip-Flops with Clear


and Complementary Outputs
 74LS112: DIP16 Dual J-K Negative-Edge-Triggered Flip-Flops with Clear And Preset
 4027: DIP 16 CMOS Dual J-K Master-Slave Flip-Flop

Prof. Marco Aurélio Seluque Fregonezi 333


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

334 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 1 – Toggle com 74LS76

+V /PRESET
5V
+V

C
/Q

+V

/CLEAR

Figura 2 – FF JK com as duas entradas de dados em nível “1”

+V /PRESET

C
/Q

+V

/CLEAR

Figura 3 – Simplificação do toogle JK

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.

Prof. Marco Aurélio Seluque Fregonezi 335


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Comparando o circuito 2 com o circuito 3, é perceptível que o primeiro possui o adicional de


dois tempos de atraso de propagação decorrentes das portas AND e OR nas entradas JK. Isto signi-
fica que, embora o toggle datum e o toggle JK sejam equivalentes no ponto de vista lógico, eles são
diferentes quanto à performance, quanto à máxima freqüência de operação. Além disso, existe o
consumo de energia elétrica destas portas lógicas. Por todos esses motivos, o toggle datum deve
ser preferido em detrimento do toggle JK.
Uma terceira vantagem do toggle datum em relação ao toggle JK é que, por possuir menos
portas lógicas, o tamanho geométrico ocupado no layout do circuito integrado é menor, liberando
espaço para outros circuitos. O uso de menos portas lógicas também traz a vantagem de que todo
dispositivo elétrico, mesmo integrado, possui uma probabilidade conhecida de apresentar defeito
após o processo de fabricação. Ao usar menos portas lógicas, a probabilidade de ocorrência de de-
feito do produto final durante os procedimentos de controle de qualidade é diminuída.
Considerando, então, que o flip flop JK operado como toggle corresponde, exatamente, ao
mesmo circuito l, então os flip flops datum são a melhor opção para a construção de contadores
assíncronos. Entretanto, a orientação para o projeto de circuitos integrados digitais aponta no sen-
tido do uso de módulos repetíveis. Em outras palavras, estes circuitos devem ser construídos a partir
do uso da menor variedade possível de portas lógicas e de flip flops. Por esta razão, é interessante
que se evite usar flip flop datum e flip flop JK em um mesmo circuito integrado. Neste contexto, se,
por alguma razão, o circuito precisa usar flip flop JK, e, se, este mesmo circuito precisa fazer uso de
um contador assíncrono, então este contador deve usar flip flop JK, mesmo sabendo que cada flip
flop JK operado como toggle será reduzido à mesma funcionalidade de um toggle datum.
Todo contador assíncrono pode ser construído a partir do toggle datum ou a partir do toggle
JK, ou, até mesmo, de uma mistura destes dois toggles. Considerando, porém, que o contador as-
síncrono datum possui vantagens em relação ao contador assíncrono JK tanto quanto à capacidade
de resposta em freqüência quanto ao consumo de energia elétrica, e considerando, também, que o
contador síncrono possui um comportamento mais confiável do que o contador assíncrono (ausên-
cia de spikes), então os capítulos seguintes focar-se-ão na apresentação das metodologias para o
projeto de contadores JK síncronos.

336 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 03 – Contador síncrono JK


Foi apresentado, anteriormente, o método empregado no projeto intuitivo do contador sín-
crono datum. Tal método é intuitivo porque está baseado unicamente na observação do comporta-
mento das funções Q em um caso bastante específico, a saber, o contador completo crescente. Por
ser um método intuitivo, não há nenhuma sistematização. Este mesmo procedimento pode ser em-
pregado para o projeto do contador completo crescente JK.
Existe, porém, uma diferença no projeto de contadores datum e no projeto de contadores
JK. Enquanto o primeiro tipo emprega uma única função de entrada por bit de contagem, o segundo
emprega duas funções. No primeiro caso, as funções datum equivalem ao valor futuro para as saídas
Q, tornando o procedimento bastante rápido e simples. No segundo caso, esta relação imediata de
cronologia não existe. É preciso lançar mão das definições dos comandos do flip flop JK.

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

O método intuitivo apresentado neste capítulo para o projeto de contadores síncronos JK


segue a mesma linha de raciocínio do método intuitivo apresentado anteriormente para o projeto
de contadores síncronos datum. Considerando que o flip flop datum possui, apenas, comandos sem
memória, usaremos, neste método, somente os comandos JK sem memória, a saber, “reset” e “set”.

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

Figura 1 – FF JK operando como FF D


Prof. Marco Aurélio Seluque Fregonezi 337
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

É 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

338 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

J0 = 1 Figura 2 – Circuito para o contador de 1 bit


K0 = 1

Funções J1 e K1:
Primeiramente, é preciso
construir a tabela-verdade, para, depois, determinar as funções.

Antes Depois Antes Depois


Antes Depois Q1 Q0 Q1 Q0 bit 1 Q1 Q0 Q1 Q0 J1 K1
0 1 0 0 0 1 hold 0 0 0 1 0 0
1 2 0 1 1 0 invert 0 1 1 0 1 1
2 3 1 0 1 1 hold 1 0 1 1 0 0
3 0 1 1 0 0 invert 1 1 0 0 1 1
Tabela 8 – Funcionamento do contador de 2 bits

J1 = Q0
K1 = Q0

+V

FF1 FF0
S S
J Q J Q
CP _ CP _ 4321
K Q K Q
R R

CLK

Figura 3 – Os dois bits menos significativos

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

Prof. Marco Aurélio Seluque Fregonezi 339


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Antes Depois Antes Depois


Q2 Q1 Q0 Q2 Q1 Q0 bit 2 Q2 Q1 Q0 Q2 Q1 Q0 J2 K2
0 0 0 0 0 1 hold 0 0 0 0 0 1 0 0
0 0 1 0 1 0 hold 0 0 1 0 1 0 0 0
0 1 0 0 1 1 hold 0 1 0 0 1 1 0 0
0 1 1 1 0 0 invert 0 1 1 1 0 0 1 1
1 0 0 1 1 0 hold 1 0 0 1 0 1 0 0
1 0 1 1 1 1 hold 1 0 1 1 1 0 0 0
1 1 0 1 0 0 hold 1 1 0 1 1 1 0 0
1 1 1 0 0 0 invert 1 1 1 0 0 0 1 1
Tabela 10 – Funcionamento do contador de 3 bits

J2 = Q1Q0
K2 = Q1Q0

+V

FF2 FF1 FF0


S S S
J Q J Q J Q
CP _ CP _ CP _ 4321
K Q K Q K Q
R R R

CLK

Figura 4 – Os três bits menos significativos

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

340 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 = Q2Q1Q0
K3 = Q2Q1Q0

+V

FF3 FF2 FF1 FF0


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

Figura 5 – Os quatro bits menos significativos

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”.

Prof. Marco Aurélio Seluque Fregonezi 341


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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

Figura 6 – Contador de cinco bits

É 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

Figura 7 – Contador modular de quatro bits

enable 1
threshold 1
enable 2
threshold 2
output

+V S
J Q
CP _
CLK K Q
R

Figura 8 – Circuito do módulo contador JK síncrono de um bit

th1 1-bit en1


th2 JK en2
CLK COUNT out
Figura 9 – Símbolo do módulo contador JK síncrono de um bit

th1 1-bit 1-bit 1-bit 1-bit en1


th2 JK JK JK JK en2
COUNT COUNT COUNT COUNT
4321

CLK

out
Figura 10 – Quatro módulos contador JK síncronos de um bit

342 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 04 – Contador síncrono decrescente JK


No capítulo anterior, foi apresentado o projeto do contador síncrono crescente JK por meio
dos comandos com memória. O mesmo procedimento pode ser usado para o projeto de contadores
decrescentes. É possível inverter qualquer contagem por meio do uso das saídas /Q, porém o uso
de tais saídas não é recomendado porque nem todos os circuitos integrados oferecem acesso ex-
terno a estes bits.

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

Prof. Marco Aurélio Seluque Fregonezi 343


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 1 – Contador decrescente de dois bits

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

S FF2 S FF1 S FF0


J Q J Q J Q
CP _ CP _ CP _ 4321
K Q K Q K Q
R R R

CLK

Figura 2 – Contador decrescente de três bits

344 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 3 – Contador decrescente de quatro bits

A diferença entre os contadores crescentes e os decrescentes é que os crescentes usam, nas


portas lógicas AND, os bits Q, enquanto os decrescentes usam os bits /Q.

+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

Figura 4 – Contador decrescente de cinco bits

Prof. Marco Aurélio Seluque Fregonezi 345


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

É 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

Figura 5 – Contador reversível por meio da inversão das saídas

+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

346 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 05 – Modificações no contador síncrono JK


No capítulo anterior, foi apresentado o método de projeto de contadores completos síncro-
nos JK por meio do uso dos comandos com memória – “hold” e “invert”. Este método pode ser
aplicado para outros tipos de contadores síncronos JK.
Uma mensagem precisa ficar clara para o estudante que se depara com a apresentação desta
metodologia. No caso dos contadores completos, este método fornece o circuito lógico em sua
forma otimizada, porém, no caso de outros contadores, este método não garante a otimização. O
propósito deste capítulo é apresentar o desenvolvimento do intelecto humano no sentido de per-
mitir o melhor entendimento a respeito dos melhores métodos de projeto destes circuitos. Nos
capítulos seguintes, será apresentado um aperfeiçoamento deste método tornando a metodologia
deste capítulo desaconselhável. A diferença está no fato de que, neste capítulo, será apresentado o
método de aplicação de, somente, os comandos com memória – “hold” e “invert”. Nos capítulos
seguintes, será apresentado o método que emprega, também, os comandos sem memória – “set”
e “reset”, mostrando a maneira como esta inclusão permite uma interessante redução no tamanho
do circuito.

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

Figura 1 – Circuito lógico do contador de 0 a 2

Prof. Marco Aurélio Seluque Fregonezi 347


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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 J1, K1 J0, K0


10 10 10
2 00 01 11 10 2 00 01 11 10 2 00 01 11 10
0 0 0 1 0 0 0 1 1 0 0 1 1 1 1
1 0 0 X 1 1 0 1 X 1 1 1 1 X 0
Tabela 5 – Minimização das funções

J2 = K2 = Q1(Q2+Q0)
J1 = K1 = Q0+(Q2Q1)
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.

348 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+V S FF2 S FF1 S FF0


J Q J Q J Q
CP _ CP _ CP _ 4321
K Q K Q K Q
R R R

CLK

Figura 2 – Circuito lógico do contador de 0 a 6

Prof. Marco Aurélio Seluque Fregonezi 349


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

350 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 06 – Minimização no contador síncrono JK


No capítulo anterior, foi apresentado o método de projeto de contadores síncronos JK por
meio do uso dos comandos com memória – “hold” e “invert”. Os comandos sem memória, “set” e
“reset”, podem ser empregados a fim de gerar uma interessante redução no tamanho do circuito.
Um bit (binário) possui, apenas, quatro possibilidades de transição.
É preciso saber identificar quais comandos efetuam determinadas transições. Nesta identi-
ficação, é preciso separar os comandos quanto a possuírem – ou não – memória.
A ocorrência das irrelevâncias nos comandos do FF JK permite um maior poder minimizató-
rio, promovendo uma interessante redução no tamanho do circuito lógico. Esta é uma característica
exclusiva do FF JK e que o torna bastante atraente no projeto de contadores síncronos.
Este método de projeto implica no uso de duas funções lógicas para cada bit de contagem.
Em virtude da ocorrência de uma minimização de várias funções no mesmo sistema, é preciso apli-
car os conceitos – já explicados em capítulos anteriores – sobre a minimização conjunta de várias
funções.

Este tipo de método implica no uso de dois tipos de irrelevâncias:


 Irrelevâncias devidas aos comandos JK.
 Irrelevâncias devidas aos estados “fantasmas”.

Transição Efeito
00 permanência baixa
01 borda de subida
10 borda de descida
11 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
00 hold reset
01 invert set
10 invert reset
11 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
00 0 0 0 1
01 1 1 1 0
10 1 1 0 1
11 0 0 1 0
Tabela 3 – As configurações das entradas

Prof. Marco Aurélio Seluque Fregonezi 351


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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
00 0 X
01 1 X
10 X 1
11 X 0
Tabela 4 – A tabela de transições JK

O surgimento das irrelevâncias proporciona um grande poder minimizatório nos Mapas de


Karnaugh. Este poder está no fato de que, em cada tabela-verdade ou Mapa de Karnaugh, metade
das células é irrelevante por causa da tabela de transições JK. Este é o motivo porque o FF JK é a
melhor opção para o projeto de contadores síncronos, mesmo sabendo que o FF D apresenta uma
capacidade de freqüência superior.
O uso do FF JK apresenta vantagem apenas quanto ao surgimento das irrelevâncias. Tal van-
tagem desaparece quando o projeto é feito a partir das funções lógicas escritas na forma canônica.
Neste caso, o uso de FF D é recomendado. Estes circuitos serão abordados na ocasião do estudo a
cerca dos dispositivos lógicos programáveis.

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 00 0X
0
1 01 1X
0 10 X1
1
1 11 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.

352 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Contadores de dois bits

Antes Depois
Q1 Q0 Q1 Q0 bit 1 bit 0 J1 K1 J0 K0
0 0 00 00 0X 0X
0 1 00 01 0X 1X
0 0
1 0 01 00 1X 0X
1 1 01 01 1X 1X
0 0 00 10 0X X1
0 1 00 11 0X X0
0 1
1 0 01 10 1X X1
1 1 01 11 1X X0
0 0 10 00 X1 0X
0 1 10 01 X1 1X
1 0
1 0 11 00 X0 0X
1 1 11 01 X0 1X
0 0 10 10 X1 X1
0 1 10 11 X1 X0
1 1
1 0 11 10 X0 X1
1 1 11 11 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

Prof. Marco Aurélio Seluque Fregonezi 353


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Contadores 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

Contadores 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 ? ? ? ? ?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

354 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi 355


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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

356 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

J2 = Q1Q0
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

Figura 3 – Circuito lógico do contador de 0 a 6

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

Figura 4 – Diagrama de estados estáveis finitos completo do contador de 0 a 6

Prof. Marco Aurélio Seluque Fregonezi 357


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Exemplo 3: Contador BCD

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 = Q2Q1Q0 ; K3 = Q0
J2 = Q1Q0 ; K2 = Q1Q0
J1 = /Q3Q0 ; K1 = Q0
J0 = 1 ; K0 = 1

358 Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

J3 = Q2J2 ; K3 = Q0
J2 = K2 = Q1Q0
J1 = /Q3Q0 ; 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

Figura 5 – Circuito lógico do contador BCD

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

Prof. Marco Aurélio Seluque Fregonezi 359


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


360 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

0
1
14 2

13 3
3
12 4

10 6
9 8

Figura 6 – Diagrama de estados estáveis finitos completo para o contador BCD

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 361
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


362 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 07 – Contador Anel


Nos capítulos anteriores, foram apresentados os contadores convencionais. Aqueles conta-
dores apresentam, em seus bits de saída, um número binário correspondente ao valor instantâneo
da contagem. Poderíamos dizer que aqueles seriam “contadores codificados”, pois o valor da con-
tagem é dado através de um código binário.
Também foram apresentados, em capítulos anteriores, os conceitos de “codificadores” e de
“decodificadores”. Na oportunidade, foi mostrado que um valor binário pode ser apresentado de
maneira codificada e de maneira codificada. No caso da representação codificada, o sufixo do bit
em questão aponta para o valor decimal instantâneo da contagem.
Codificadores e decodificadores são circuitos combinacionais, entretanto, este conceito
pode ser expandido para o escopo dos circuitos sequenciais. Um “contador decodificado” seria
aquele que, tal como um decodificador, possui um bit de saída exclusivo para cada estado estável,
sendo o índice do estado representado pelo sufixo do bit em uso.
Tal como os decodificadores, os “contadores decodificados” acionam um e, apenas, um bit
de saída por vez. Nos circuitos combinacionais, a decodificação aponta para o mintermo ou max-
termo selecionado. Nos circuitos sequenciais, a decodificação aponta para o estado vigente. Como
não é permitido acessar dois estados estáveis ao mesmo tempo, então apenas um único bit de saída
pode ser acionado por vez.
Em bora estes contadores sejam melhor denominados por “contadores decodificados”, esta
nomenclatura não é adotada. Ao invés disso, eles são chamados de “contador anel” ou “ring coun-
ter”. O nome “anel” aponta para o fato de que temos um funcionamento cíclico, periódico, que
pode ser representado em uma circunferência dividida em 360 graus.
A disposição física e geométrica dos LED´s acionados pelo contador anel é totalmente irrele-
vante. Não é necessário dispor os LED´s de forma circular ou linear.
Apesar dos contadores anel possuírem um grande apelo intuitivo no deslocamento visual
das luzes, é no acionamento de máquinas elétricas que estes contadores encontram sua principal
aplicação prática. É bastante comum que a planta industrial de uma fábrica faça uso de processos
acionados em cascata, sequencialmente, automaticamente. Neste caso, cada atuador é acionado
por meio de um bit específico do contador anel.
Antigamente, antes da popularização dos circuitos digitais, os contadores anéis eram cons-
truídos de maneira mecânica. Uma alavanca permite que o usuário do equipamento exerça, com as
mãos, o giro do eixo central de uma mola helicoidal. Esta mola é responsável pelo acúmulo de ener-
gia potencial elástica. Quando o usuário retira a mão da alavanca, a mola aciona um sistema de
engrenagens redutoras de velocidade angular. Esta redução, além de regular o tempo de expansão
da mola, melhora a linearidade da expansão. À medida em que o sistema de engrenagens atua, a
roda mais lenta efetua a comutação dos contatos, gerando uma contagem em anel. Embora este
sistema funcione satisfatoriamente, possui algumas desvantagens, como, por exemplo, custo, ta-
manho e peso elevados. Além disso, a mola helicoidal possui baixa vida útil. Até hoje alguns fornos
elétricos e máquinas de lavar roupas utilizam este sistema de contagem anel.
Posteriormente, o sistema de atuação por mola helicoidal foi substituído por um motor elé-
trico, trazendo a vantagem da linearização da contagem anel, aumentando, porém, o custo do dis-
positivo. Este sistema era bastante empregado em máquinas de lavar roupas do passado. Alguns
dispositivos apresentavam vários contatos acionados em um mesmo estágio de contagem, consis-
tindo de vários contadores anel operados em paralelo.
Em capítulos seguintes, serão apresentados os registradores de deslocamento. Por meio de-
les, é possível criar uma versão melhorada dos contadores anel. Neste capítulo, porém, será apre-
sentado o contador anel projetado através da tabela de transições de estados apresentada nos ca-
pítulos anteriores.
Prof. Marco Aurélio Seluque Fregonezi
http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 363
Sistemas digitais – 30/01/2021

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.

bits quantidade estados taxa de


anel de FF´s possíveis utilização
3 3 23=8 3/8 37,5%
4
4 4 2 =16 4/16 25%
5
5 5 2 =32 5/32 15,625%
6 6 26=64 6/64 9,375%
Tabela 1 – Taxa de utilização da capacidade informativa nos contadores anel

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

Anel de três bits

Figura 1 – Contador anel de três bits com LED´s em disposição circular

Figura 2 – Contador anel de três bits com LED´s em disposição linear

2
4

Figura 3 – Diagrama de estados finitos do contador anel de três bits

Prof. Marco Aurélio Seluque Fregonezi


364 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 365
Sistemas digitais – 30/01/2021

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

K2 = K1 = K0 = 1; J2 = Q1; J1 = Q0; J0 = /Q1

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

Figura 6 – Circuito lógico do contador anel de três bits

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

invert reset reset invert


Q0
reset invert reset reset
Q1
reset reset invert reset
Q2

Figura 7 – Funcionamento do contador anel de três bits

Prof. Marco Aurélio Seluque Fregonezi


366 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Anel de quatro bits

Figura 8 – Contador anel de quatro bits com LED´s em disposição circular

Figura 9 – Contador anel de quatro bits com LED´s em disposição linear

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 367
Sistemas digitais – 30/01/2021

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

Mapas de Karnaugh na próxima página.

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

Figura 13 – Circuito lógico do contador anel de quatro bits

Prof. Marco Aurélio Seluque Fregonezi


368 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

invert invert reset reset invert


reset invert reset reset reset
reset reset invert reset reset
reset reset reset invert reset

Figura 14 – Funcionamento do contador anel de quatro bits

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 369
Sistemas digitais – 30/01/2021

É possível observar a ocorrência de um padrão. Esta observação permite a expansão do con-


tador em anel para qualquer quantidade de bits sem a necessidade da efetuação de todo o proce-
dimento de projeto.

 Todos os bits K são ligados ao nível lógico “1”.


 Exceto J0, todos os demais bits J são ligados à saída Q à esquerda.
 O bit J0 é ligado a todas as saídas /Q, exceto a última saída /Q.
 As saídas /Q são levadas a J0 por meio de uma porta AND.

+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

Figura 15 – Contador anel de cinco bits

+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

Figura 16 – Contador anel de seis bits

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.

Prof. Marco Aurélio Seluque Fregonezi


370 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Duplo anel de quatro bits

Figura 17 – Contador anel de quatro bits com LED´s em disposição circular

Figura 18 – Contador anel de quatro bits com LED´s em disposição linear

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”

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 371
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


372 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 22 – Circuito lógico do duplo contador anel de quatro bits

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 373
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


374 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 08 – Contador Johnson


No capítulo anterior, foi apresentado o contador anel que, embora tenha forte aplicação em
automação industrial e em equipamentos eletrônicos, também possui um interessante apelo visual.
Seguindo esta mesma linha de raciocínio, foi criado o contador Johnson.
O contador Johnson oferece a percepção de progressão e de regressão. Diferentemente do
contador anel, porém, o contador Johnson possui baixa aplicação quanto ao acionamento de má-
quinas elétricas, razão pela qual o contador Johnson é menos usado do que o contador anel.
O contador Johnson somente possui relevância quando a quantidade de bits é maior ou igual
a quatro. O sentido da contagem é irrelevante haja vista que, por meio da ligação elétrica destes
bits com os seus atuadores, é possível fazer ou desfazer uma inversão.
Em relação ao contador anel, o contador Johnson possui a vantagem de fazer uso do estado
“zero”. Isso permite que o circuito inicie sem a necessidade de que se faça uso de estados “fantas-
mas”.

Contagem Johnson de quatro bits

Figura 1 – Contador Johnson de quatro bits com LED´s em disposição linear

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 375
Sistemas digitais – 30/01/2021

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

Prof. Marco Aurélio Seluque Fregonezi


376 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 4 – Circuito lógico para o contador Johnson de quatro bits

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

Considerando que a saída Q do FF datum corresponde ao valor futuro da entrada datum,


então podemos fazer uma correlação cronológica entre as saídas Q:

Q0 Q1 Q2 Q3

Figura 6 – Funcionamento do contador Johnson de quatro bits

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 377
Sistemas digitais – 30/01/2021

+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

Figura 7 – Circuito lógico para o contador Johnson de cinco bits

bits quantidade estados taxa de


johnson de FF´s possíveis utilização
4 4 24=16 8/16 50%
5
5 5 2 =32 10/32 31,25%
6
6 6 2 =64 12/64 18,75%
Tabela 3 – Taxa de utilização da capacidade informativa nos contadores anel

Um contador Johnson possui o dobro da quantidade de estados de um contador anel com a


mesma quantidade de bits, oferecendo o dobro da taxa de utilização dos estados estáveis.

Prof. Marco Aurélio Seluque Fregonezi


378 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Unidade 6
Registradores

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 379
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


380 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 01 – Registrador paralelo


Registrador é o dispositivo que tem, como principal função, realizar o registro de uma infor-
mação. Registrar é o ato de memorizar. Todo registrador pode ser considerado um tipo de memória.
Para efeito de organização do conteúdo, e tomando, como base, a noção das palavras “registrador”
e “memória” no imaginário popular brasileiro, este texto faz a seguinte distinção entre os significa-
dos destas duas palavras:

 Registrador: Não possui barramento de endereço.


 Memória: Possui barramento de endereço.

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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 381
Sistemas digitais – 30/01/2021

IN_D IN_C IN_B IN_A 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

Figura 2 – Registrador datum de quatro bits

IN_D IN_C IN_B IN_A

/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

Figura 3 – Registrador datum de quatro bits com /clear e write enable

IN_D IN_C IN_B IN_A input

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

Figura 4 – Registrador JK de quatro bits

Prof. Marco Aurélio Seluque Fregonezi


382 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 5 – Registrador datum de quatro bits integrado

IN_D IN_C IN_B IN_A

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

Figura 6 – Registrador com identificador de mudança na entrada

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
21 out
B REG MUX
Figura 7 – Multiplexador com entradas registradas

sel CE OE
clk
A 2-bit
21 REG out
B MUX
Figura 8 – Multiplexador com saída registrada

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 383
Sistemas digitais – 30/01/2021

Prof. Marco Aurélio Seluque Fregonezi


384 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 02 – Registrador série


Uma comunicação digital pode ser feita de duas maneiras:
 Comunicação paralela
 Comunicação serial

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.

Há dois tipos de comunicação serial:


 Comunicação de um canal - Serial data (I/O)
 Comunicação de dois canais - Serial in, Serial out (RX, TX)

A comunicação de dois canais possui a vantagem de não precisar multiplexar temporalmente


os dois sentidos do fluxo da informação, proporcionando um protocolo de comunicação mais sim-
ples e um circuito digital mais barato. A desvantagem da comunicação de dois canais é que ela re-
quer dois condutores de dados e isso implica em um custo elevado quando as distâncias são gran-
des. A comunicação de um canal possui a vantagem adicional de permitir o uso de uma linha de
transmissão não elétrica.

Exemplos de linha de transmissão não elétrica:


 Fibra ótica
 Infra-vermelho
 Rádio
 Wi-fi

O registrador serial possui aplicação unicamente no contexto da comunicação serial. Sua


aplicação é bastante restrita e limitada.
O registrador serial também é chamado de registrador de deslocamento – shift register –
porque o seu funcionamento consiste do deslocamento bit-a-bit através dos flip-flops.
Um exemplo de aplicação seriam circuitos atrasadores. Estes circuitos atrasadores são úteis
quando a comunicação é feita em vários canais onde é observada uma falta de sincronia. Neste
caso, os canais adiantados precisam ser atrasados para que estejam em sincronia com os canais
atrasados. Um exemplo desta situação seriam receptores de sinal de televisão digital, onde o pro-
cessamento do áudio é muito mais rápido do que o do vídeo.
O registrador serial provoca um atraso concatenado. O atraso concatenado é determinado
pela soma dos atrasos individuais provocados por cada flip-flop. Este atraso depende da frequência
de relógio.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 385
Sistemas digitais – 30/01/2021

serial in serial out


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

Figura 1 – Registrador serial de quatro bits

serial in

U2A serial out


4015
D 1/2 Q3
CP Q2
CP1 Q1 Q1
CP2 Q2 MR Q0

pause
Figura 2 – Registrador serial de quatro bits integrado

Out3 Out2 Out1 Out0

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

Figura 3 – Registrador serial de quatro bits com saída paralela

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

Prof. Marco Aurélio Seluque Fregonezi


386 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

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

Figura 5 – Registrador serial com leitura paralela na entrada e na saída

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

Figura 6 – Registrador serial com contagem de bits seriais

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 387
Sistemas digitais – 30/01/2021

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

Figura 7 – Registrador serial com contagem de bits seriais

Geralmente, um registrador série costuma vir acompanhado por um registrador paralelo. Da


mesma forma como o contador sinaliza a conclusão da chegada de uma palavra completa na en-
trada serial, este mesmo contador pode ser usado para disparar o comando de escrita deste regis-
trador paralelo. Este registrador paralelo é chamado de buffer register.

Prof. Marco Aurélio Seluque Fregonezi


388 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 03 – Contador Johnson


O contador Johnson foi apresentado na unidade 5. Naquele capítulo, a técnica de projeto
empregada consiste do uso de flip-flops JK. O leitor atento pode ter percebido que o circuito regis-
trador série apresentado no capítulo anterior assemelha-se bastante ao contador Johnson. Por meio
de pequenas alterações, é possível transformar o registrador de deslocamento em um contador
Johnson.
A principal diferença entre um contador (não configurável) e um registrador de desloca-
mento é o fato de que o segundo possui uma entrada, enquanto o primeiro não. Com base nesta
percepção, o processo de transformação do registrador de deslocamento em um contador Johnson
começa pela eliminação da entrada serial. Esta eliminação pode ser feita por meio da realimentação
da saída serial para a entrada serial.

Out3 Out2 Out1 Out0

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

Figura 1 – Registrador serial com realimentação positiva

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.

Out3 Out2 Out1 Out0

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

Figura 2 – Uso dos comandos preset/clear

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 389
Sistemas digitais – 30/01/2021

Uma outra alternativa é a definição da função de entrada do registrador de deslocamento.


Esta definição pode ser feita por meio da observação do comportamento do contador Johnson.

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

Out3 Out2 Out1 Out0

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

Figura 4 – Contador Johnson de quatro bits

Caso não exista acesso às funções “/Q”, é possível usar uma porta NOT.

Prof. Marco Aurélio Seluque Fregonezi


390 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

D0 Q0
D1 Q1
D2 Q2
D3 Q3
CP

CP1 Q1
CP2 Q2

Figura 5 – Contador Johnson de quatro bits com porta NOT

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

Figura 6 – Contador Johnson de dois bits

+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

Figura 7 – Contador Johnson de três bits

+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

Figura 8 – Contador Johnson de quatro bits

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 391
Sistemas digitais – 30/01/2021

+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

Figura 9 – Contador Johnson de cinco bits

+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

Figura 10 – Contador Johnson de seis bits

Da mesma forma como o flip-flop JK não é indicado na construção do registrador de deslo-


camento, igualmente o flip-flop JK não é indicado na construção do contador Johnson conforme a
topologia dos deslocamentos. Porém, caso seja necessário, é possível usar o flip-flop JK.

+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

Figura 11 – Contador Johnson JK de seis bits

Prof. Marco Aurélio Seluque Fregonezi


392 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

Parte 04 – Contador Anel


No capítulo anterior, foi mostrada a maneira como o registrador de deslocamento pode ser
transformado em um contador Johnson. Igualmente, o registrador de deslocamento pode ser trans-
formado em um contador Anel. A inversão no último flip-flop do contador Johnson é a responsável
por tirar o ciclo do estado inicial e, por esse motivo, ela precisa ser preservada no contador Anel.
Desta forma, podemos entender o contador Anel como sendo uma transformação no contador
Johnson.
No contador Johnson, existe uma borda de subida e uma borda de descida. Essas duas bor-
das dividem o período em duas partes iguais. Considerando que um contador Johnson de “n” bits
possui “2n” estados, então a quantidade de passos de contagem incluídas em cada semi-ciclo é dada
por “n”.
No contador Anel, também existe uma borda de subida e uma borda de descida. Porém,
diferentemente, essas duas bordas não dividem o período em duas partes iguais. No contador Anel,
o semi-ciclo positivo (LED aceso, nível lógico alto) é composto por um único bit, um único ciclo de
contagem. Um contador Anel de “n” bits possui “n” estados.
O maior problema no projeto de um contador Anel está no fato de que não existe estado
“zero”, isto é, não é permitido que todos os bits assumam o nível “zero” ao mesmo tempo. Isso é
um problema porque os flip-flops iniciam com Q=0.
Uma alternativa é construir o registrador de deslocamento com realimentação positiva e
usar uma chave manual para realizar a iniciação da contagem anel.

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

Figura n – Contador Anel com iniciação manual

É 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

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 393
Sistemas digitais – 30/01/2021

+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

Figura 2 – Contador Anel com iniciação automática

Nem sempre as entradas assíncronas preset/clear estão disponíveis. Preferencialmente, o


circuito não deve ser dependente destas entradas. Uma maneira de contornar este problema é lem-
brar que o semi-ciclo positivo é composto de, apenas, um passo de contagem, um bit. Sendo assim,
o circuito pode ser construído por meio da inversão da entrada e da saída de um dos flip-flops. Os
inversores geram um atraso na propagação dos deslocamentos e um custo adicional. Caso as saídas
D estejam disponíveis, elas devem ser usadas.

+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

Figura 3 – Contador anel com inversor

+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

Figura 4 – Contador Anel de três bits

Prof. Marco Aurélio Seluque Fregonezi


394 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php
Sistemas digitais – 30/01/2021

+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

Figura 5 – Contador Anel de quatro bits

+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

Figura 6 – Contador Anel de cinco bits

+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

Figura 7 – Contador Anel de seis bits

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.

Prof. Marco Aurélio Seluque Fregonezi


http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php 395
Sistemas digitais – 30/01/2021

+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

Figura 8 – Contador Johnson/Anel configurável

Prof. Marco Aurélio Seluque Fregonezi


396 http://www.ufsj.edu.br/fregonezi/sistemas_digitais.php

Você também pode gostar