Escolar Documentos
Profissional Documentos
Cultura Documentos
. .
2
Sumário
Lista de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Lista de Tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Portas Lógicas 17
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Algebra de Boole 29
3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Nı́veis Lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Elementos lógicos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1 Função lógica NÃO (NOT) ou Inversora . . . . . . . . . . . . . . . . . . . . 31
3.3.2 Função lógica E (AND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.3 Função lógica OU (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.4 Função NÃO-E (NAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.3.5 Função NÃO-OU (NOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.6 Função OU-EXCLUSIVO (XOR) . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.7 Função NÃO-OU-EXCLUSIVO ou coincidência . . . . . . . . . . . . . . . . 37
3.4 Propriedades das funções lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.1 Representações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.4.2 Exemplos de simplificação das equações lógicas . . . . . . . . . . . . . . . . 39
3.4.3 Fazendo tudo com portas Não-E (NAND) . . . . . . . . . . . . . . . . . . . 41
3.5 Mapa de Karnaugh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.2 Endereçamento de um mapa de Karnaugh . . . . . . . . . . . . . . . . . . . 42
3.5.3 Mapa de Karnaugh de três variáveis . . . . . . . . . . . . . . . . . . . . . . 43
3.5.4 Mapa de Karnaugh de quatro variáveis . . . . . . . . . . . . . . . . . . . . . 45
3.6 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3
Cartões Digitais
6 Caderno de Experiências 83
6.1 Aula Teórica - Fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Aula teórica - Fundamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2 Aula Prática - Portas lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Aula prática - Portas lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8 Esquemas Elétricos 91
8.1 XD200M01.02.01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Encoder e Decoder 94
9 Codificadores e Decodificadores 95
Codificadores e Decodificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.1 Decodificador de n para 2n linhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Decodificador de n para 2n linhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2 Decodificador BCD para sete segmentos . . . . . . . . . . . . . . . . . . . . . . . . 96
Decodificador BCD para sete segmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.3 Codificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Codificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4
Cartões Digitais
5
Cartões Digitais
Contadores 146
21 Contadores 147
Contadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
21.1 Contador Assı́ncrono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Contador assı́ncrono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
21.2 Contagem Programada ou Contagem com Armadilha . . . . . . . . . . . . . . . . . 149
Contagem programada ou contagem com armadilha . . . . . . . . . . . . . . . . . . . . 149
21.3 Contadores Up/Down (Progressivos e Regressivos) . . . . . . . . . . . . . . . . . . 151
Contadores Up/Down (Progressivos e Regressivos) . . . . . . . . . . . . . . . . . . . . . 151
21.4 Contadores Sı́ncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Contadores sı́ncronos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
6
Cartões Digitais
Mux/Demux 197
7
Cartões Digitais
8
Cartões Digitais
Memórias 231
41 Memórias 232
Memórias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
41.1 Memória Volátil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
41.1.1 Memória Volátil Dinâmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
41.1.2 Memória Volátil Estática . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
41.2 Memória Não Volátil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
41.3 Estrutura e Endereçamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
41.3.1 Endereçamento Paralelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
41.3.2 Endereçamento Serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
41.4 Memórias SRAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
41.5 Memórias EEPROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
45 Introdução: 251
CPLD 261
49 Software 262
49.1 Criando o primeiro projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
49.2 Compilação do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
49.3 Gravação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
9
Cartões Digitais
10
Lista de Figuras
11
Cartões Digitais
12
Cartões Digitais
13
Cartões Digitais
14
Lista de Tabelas
15
Cartões Digitais
Cartões Digitais
Introdução
Capı́tulo 1
1. Eletrônica Analógica;
2. Eletrônica Digital
O conteúdo desta apostila é estudar de forma concisa os conceitos de eletrônica digital, en-
tendendo ao longo do conteúdo quais são as capacidades destes conceitos e da implementação dos
mesmos para a resolução de problemas.
Tomando por base a figura da esquerda, vemos que se um objeto estiver no meio da rampa e
este objeto ‘caminhar’para um ponto mais baixo ou para o ponto mais alto, ele poderá assumir
qualquer uma das infinitas posições de altura entre a posição central e o caminho tomado. Ao
analisarmos a escada podemos ver que o comportamento não é da mesma forma, pois o objeto só
Cartões Digitais
poderá estar em um dos degraus, tendo que, para alcançar os demais degraus terá uma variação
grande de altura. Sendo assim, podemos dizer, salvo os elementos rudimentares de comparação,
que a rampa está para o analógico, assim como a escada está para o digital.
concluir então que em um sistema digital teremos o processamento de conjuntos finitos cujos
elementos se apresentam em apenas dois valores. Para cada elementos deste, é dado o nome de
bit. Podemos ter conjuntos de diferentes quantidades de bits, entretanto para o conjunto mais
usado dá-se o nome de bytes, que corresponde ao agrupamento de oito bits.
Aparentemente, seria melhor ter um sistema com infinitos pontos (analógico) do que ter um
sistema com finitos pontos (digital). Entretanto, vemos que é muito mais simples processar,
armazenar e transmitir informações discretas do que informações contı́nuas.
O nosso escopo se concentra em como os sinais digitais discretos podem ser usados na criação
de circuitos digitais complexos e como a determinação destes dois elementos numéricos distintos
podem ser usados para representação de outros grupos numéricos como o decimal e hexadecimal.
No próximo capitulo vamos concentrar nossos esforços para entender os diversos grupos numéricos
existentes e como fazer a sua conversão para o sistema binário.
Cartões Digitais
Capı́tulo 2
Todos nós, quando resolvemos tratar no cotidiano a palavra números, por instinto associamos
está palavra ao sistema decimal o qual usamos diariamente no número das casas, no dinheiro que
é gasto e na representação da quantidade de dedos nas mãos. Este sistema numérico está ligado
diretamente em certas regras e padrões que fundamentam qualquer outro modelo de representação
numérica. Vamos, portanto, estudar estas regras e aplicá-las aos outros sistemas de numeração
como a binária, octal e hexadecimal. Estes sistemas são utilizados em computadores digitais,
circuitos lógicos em geral e no processamento de informações dos mais variados tipos.
É importante notar que por mais que utilizamos o sistema de numeração binária ou qualquer
outro, sempre passaremos estes sistemas para o decimal, fazendo com que estes sejam compreen-
didos de forma fácil para nós.
N = dn .B n + . . . + d3 .B 3 + d2 .B 2 + d1 .B 1 + d0 .B 0 + . . . + d−n .B −n (2.1)
Onde:
N = d3 .B 3 + d2 .B 2 + d1 .B 1 + d0 .B 0
10 10 10 10
3 2 1 0
3 4 5 6
Como podemos ver, apesar do sistema de numeração decimal estar integrado ao nosso cotidi-
ano, para que possamos realmente entender como funciona é necessário saber que cada dı́gito de
cada número possui um peso especı́fico que o posiciona neste número. Temos ainda que definir
mais um elemento que é importante para o nosso entendimento deste sistema de numeração, a
base. A composição da base é dada pela quantidade de dı́gitos ou sı́mbolos que cada sistema
numérico possui, por exemplo, como estamos analisando o sistema numérico decimal, é correto
pensar em uma base composta de dez sı́mbolos, que são:
0,1,2,3,4,5,6,7,8 e 9
Portanto, para este sistema numérico temos dez sı́mbolos formando uma base decimal. Este
pensamento pode ser estendido para os outros sistemas de numeração através da mesma analogia.
Por exemplo, num sistema octal, a base é feita com oito sı́mbolos que são:
0,1,2,3,4,5,6 e 7
Onde cada número octal, é composto do posicionamento destes oito sı́mbolos no numero octal
mais o uso da base oito para representá-lo.
Nos próximos itens vamos ver como é formado os dois sistemas de numeração muito utilizados
na eletrônica, o binário e o hexadecimal.
10010 = 16 + 0 + 0 + 2 + 0 = 18
Cartões Digitais
Observe que os números utilizando a numeração binária devem ser lidos da direita para a
esquerda, partindo do menos significativo (LSB - Less Significant Bit) ao mais significativo (MSB
- Most Significant Bit). Esta nomenclatura é dada ao dı́gito com a menor potencia associada a
uma base e ao dı́gito com a maior potencia associada a uma base respectivamente, seja isto na
parte inteira ou na parte fracionada do valor.
24 23 22 21 20
1 0 0 1 0
MSB LSB
De acordo com este sistema de numeração, um número binário com N bits pode representar
um número decimal de 2n objetos, como: 23 = 8 objetos.
Veja que os ı́ndices foram especificados em notação decimal, o que possibilita a conversão
binário-decimal como descrito acima. Através do exemplo anterior, podemos notar que a quan-
tidade de dı́gitos necessários para representar um número qualquer no sistema binário, é muito
maior quando comparada ao sistema decimal. A representação binária é perfeitamente adequada
para utilização pelos computadores. No entanto, um número representado em binário apresenta
muitos bits, ficando longo e passı́vel de erros quando manipulado por seres humanos normais como,
por exemplo, os programadores, analistas e engenheiros de sistemas. Para facilitar a visualização
e manipulação por programadores de grandezas processadas em computadores, que utilizam o
sistema binário, são usualmente adotadas as representações octal (base oito) e principalmente
hexadecimal (base 16). Ressaltamos mais uma vez que o computador opera apenas na base dois
e as representações octal e hexadecimal não são usadas no computador, elas se destinam apenas
à manipulação de grandezas pelos profissionais que trabalham com eletrônica digital.
Agora para o processo inverso, dado um número decimal, para convertê-lo em binário, basta
usar o método de divisão repetida e o método de multiplicação repetida. Nota-se que um número
decimal pode ser inteiro ou não, com isso cada um dos métodos citados devem ser utilizados de
forma especı́fica. Esta conversão consiste em dividir o número decimal em duas partes, uma parte
inteira e a outra fracional. Desta forma, utilizamos o método de divisão repetida para a parte
inteira e a multiplicação repetida para a parte fracional. Por exemplo, se quisermos converter o
número 23,765 para binário fazemos:
Cartões Digitais
Com isso, podemos dizer que o número 23(10) é igual 10111(2) . Ou, usando a nomenclatura
correta, dizemos que: O número 23 na base 10 é igual ao número 10111 na base dois. Agora,
vamos analisar o método de multiplicação repetida para a parte fracionária. figura:
Como podemos ver na figura 2.2, foi adotada uma outra nomenclatura chamada carry ou ‘vai
- um’. Isto significa que para um número binário ter um carry é necessário que a capacidade de
representação de um determinado número binário com n bits tenha sido excedida, fazendo com
que seja necessário usar um peso alem da capacidade deste número com n bits. Por exemplo,
se temos o valor 3(10) , sua representação binária seria: 11(2) . Agora se quiséssemos representar
o número 4(10) só com esses dois bits não seria possı́vel, então temos que usar o ‘vai - um’para
Cartões Digitais
representá-lo fazendo com que o número 4(10) seja agora composto de três bits: 100(2) .
Com relação à conversão do número fracional decimal em binário, deve ser observado que o
procedimento de multiplicação repetida deve ser interrompido em duas situações: Quando a parte
fracional for zero ou quando for alcançada a precisão desejada. Contudo, na maioria dos casos, o
motivo de interrupção será quando a precisão for alcançada.
Como pôde ser notado, o sistema de numeração hexadecimal utiliza os dı́gitos que correspon-
dem aos números do sistema decimal e também utilizada algarismos do alfabeto para representar
seus valores. Fazendo com que o conjunto de dı́gitos que represente este sistema seja:
Cartões Digitais
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Como em qualquer base numérica, o carry no sistema hexadecimal mostra que a capacidade de
representação numérica dos dı́gitos menos significativos foi excedida. Por exemplo, continuando
a contagem iniciada na tabela três teremos: 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D,
1E, 1F, 20, 21. . .
Com o processo descrito acima, vemos que é muito fácil fazer a conversão de um número binário
em hexadecimal. Por isso a sua maior aplicabilidade em sistemas digitais do que o binário, pois
representa de forma simples o sistema numérico binário. Na figura 2.5, vemos que o número 30(10)
= 11110(2) = 1E(16) .
Para que possamos fazer a conversão do sistema hexadecimal para o binário é só executar o
processo inverso da figura 2.5. Ou seja, fazer com que cada dı́gito hexadecimal seja convertido
pelo nibble binário correspondente e depois reagrupado de novo.
Como visto, a mudança de bases é bem simples se adotarmos sempre a equação do sistema
numérico utilizado. Agora vamos ver como se aplica a divisão repetida ao sistema hexadecimal
para obter o número decimal, para isso, vamos tomar o número 60(10) e passá-lo para hexadecimal.
Com isso vemos que a conversão entre as bases 16, 2 e 10 são fáceis de serem feitas. É
importante salientar que todo este processo de numeração tem que ser bem entendido pelo aluno
para que não ocorram problemas no andamento da apostila. No próximo capı́tulo, iremos ver
a álgebra dos sistemas digitais lógicos, as regras básicas de Boole que resultaram em alguns
postulados.
Cartões Digitais
Capı́tulo 3
Algebra de Boole
3.1 Introdução
O ponto de partida para o projeto de sistemas de processamento digital é a chamada Álgebra
de Boole, trabalho de um matemático inglês que, em um livro de 1854, propôs dar expressão as
leis fundamentais do raciocı́nio na linguagem simbólica do cálculo. Trata-se, portanto, de uma
formalização matemática da lógica em sua forma mais simples, conhecida como Lógica Proposi-
cional.
Esta era fundamentada por uma série de postulados mostrando como operações simples podem
ser usadas para resolver uma infinidade de problemas. Apesar da álgebra de Boole resolver
problemas práticos de controle e fabricação de produtos, na época em que ela foi idealizada, não
havia sistemas eletrônicos que pudessem usar toda a teoria.
A álgebra de Boole veio se tornar importante com o advento da Eletrônica, especificamente,
da eletrônica digital, que gerou os modernos computadores. Boole firma através da sua teoria
que para qualquer situação só existam duas possibilidades, condições ou estados, que possam ser
escolhidas e cada uma dessas possibilidades são inversas uma da outra. Assim, um forno só pode
estar quente ou frio, uma torneira só pode estar aberta ou fechada, um carro só pode estar parado
ou em movimento, uma fonte só pode ter ou não ter tensão na sua saı́da. Ou seja, cada pergunta
só pode ter como resposta verdadeira ou falsa.
Com isso, para facilitar a representação da lógica de Boole, utilizamos dois estados: zero ou
um, Verdadeiro ou Falso, Aberto ou Fechado, Alto ou Baixo (HI ou LO) ou Ligado ou Desligado.
Na base da eletrônica digital partimos exatamente do princı́pio que um determinado equipamento
pode ter seus componentes lógicos trabalhando com esses dois estados possı́veis, ou seja, encontra-
remos presença do sinal de tensão ou a ausência do sinal de tensão, o que se adapta perfeitamente
aos princı́pios da álgebra de Boole.
Tudo que um circuito lógico digital pode fazer está previsto pela álgebra de Boole. Desde
as mais simples operações ou decisões, como ligar uma chave ou acender um LED, quando dois
sensores são ativados de uma determinada maneira ou ainda ativar uma bomba de água quando
a terra estiver seca.
Cartões Digitais
Então, podemos dizer que as variáveis A e B são independentes e que S é dependente dos valores
de A e B. Porem existe operações mais simples que a soma, e que são simplesmente implantadas
considerando a álgebra booleana.
É interessante observar que com um pequeno número de operações lógicas podemos alcançar
a uma infinidade de operações mais complexas, como as utilizadas nos PC’s atuais e que, repeti-
das em grande quantidade ou levadas a um grau de complexidade muito grande, nos fazem até
acreditar que a máquina tenha algum nı́vel de inteligência. Isso na realidade é a associação de
vários circuitos simples levando ao um comportamento complexo de muitos circuitos digitais.
Estes circuitos simples são denominados blocos lógicos ou, mais comumente, portas lógicas
que são compostas de uma ou mais entradas e uma ou mais saı́das. O resultado proveniente
da(s) entrada(s) é executado pelo circuito lógico gerando uma saı́da depende da(s) entradas. Em
outras palavras, a resposta que cada circuito lógico dá para uma determinada entrada ou entradas
depende da “regra booleana”que este circuito segue. Com isso, vemos que para chegarmos a
entender como um computador funciona, com sua alta capacidade de resolução de problemas,
temos que começar entendendo como ele faz as operações elementares usando as portas lógicas e
quais são essas portas.
Por este motivo, depois de analisarmos o funcionamento das operações lógicas vamos associá-
las a álgebra de Boole, estudando cada uma das portas básicas.
Analisando o comportamento deste circuito lógico inversor, vemos que quando a saı́da é ver-
dadeira, a entrada é falsa, ou que apresenta nı́vel zero, quando a entrada é um e vice-versa.
Podemos associar a ele uma tabela que será muito útil para representar esta função lógica e esta
tabela será usada para todos os outros circuitos lógicos posteriores para estudarmos melhor seu
funcionamento.
Entrada Saı́da
0 1
1 0
Esta tabela mostra o que ocorre com a saı́da da função quando colocamos na entrada todas as
combinações possı́veis de nı́veis lógicos. Dizemos que se trata de uma “tabela verdade”ou “Truth
Table”no inglês. O sı́mbolo adotado para representar esta função está na figura 3.1 Este circuito
lógico pode ter o seu funcionamento demonstrado através de um circuito eletrônico simples e de
rápida compreensão como o abaixo:
Neste circuito temos uma lâmpada que, acesa, indica o nı́vel 1 na saı́da e apagada, indica o
nı́vel 0. Quando a chave estiver na posição A, a chave estará fechada (nı́vel um), mas a lâmpada
estará apagada (nı́vel 0), pois o fluxo de corrente não passará pela lâmpada, mas pelo curto
provocado pela chave. Contudo, quando a chave estiver aberta, ou seja, na posição B (nı́vel zero)
o fluxo de corrente passara todo pela lâmpada fazendo com que ela acenda. Esta maneira de
simular funções lógicas com lâmpadas indicando a saı́da e chaves indicando a entrada, é bastante
interessante pela facilidade com que vemos o funcionamento do circuito lógico. Então para verificar
o funcionamento, é só comparar as duas tabelas abaixo.
Tomando como exemplo uma porta lógica ou função lógica E de duas entradas (A e B), vamos
analisar como seu funcionamento é descrito através de um circuito discreto.
Procedendo como no exemplo da porta NOT, vamos considerar que as chaves são as entradas
do circuito e que a lâmpada seja a saı́da. Então, como é fácil de notar, precisamos ter as chaves
A e B fechadas, para que lâmpada seja ativada. Considerando o funcionamento do circuito já
podemos ver que a tabela da verdade será como abaixo:
Observamos que para uma porta E com duas entradas temos quatro combinações possı́veis
para as entradas aplicadas. Para uma porta E de três entradas temos oito combinações possı́veis
para o sinal de entrada. Para uma porta de quatro entradas, teremos dezesseis e assim por diante,
fazendo com que o número de combinações cresça de forma exponencial.
Conforme o funcionamento deste circuito, independente de quantas entradas uma porta E
tem, verifica que a lâmpada só irá acender caso todas as chaves estejam fechadas, ou seja, se
todas as entradas estiverem em nı́vel lógico alto ou um.
Agora, tomando como exemplo uma porta OU com três entradas podemos construir o seguinte
circuito discreto
Através da análise do circuito da figura 3.6, vemos que a saı́da estará no nı́vel um (lâmpada
acessa) se uma das entradas, A, B ou C estiverem no nı́vel um, ou seja, fechada. Quando uma
chave estiver fechada a lâmpada receberá corrente conforme desejarmos. Para mais de duas
variáveis podemos ter circuitos lógicos com mais de duas entradas. Para o caso de uma porta OU
de três entradas teremos a seguinte tabela verdade ou ”Truth Table”.
Figura 3.11: Comparação entre a função NÃO-E (NAND) e o circuito da figura 3.10
Observe que a lâmpada só apagará (saı́da zero ou LO) quando as três chaves estiverem fechadas
(nı́vel lógico um ou HI), colocando em curto a fonte de alimentação. O resistor é usado para limitar
a corrente da fonte, já que se não tivesse este resistor a resistência tenderia a zero fazendo com
que a corrente tendesse ao infinito segundo a lei de ohm, causando problemas na fonte. Também
neste caso podemos ter a função NAND com mais de três entradas, até mesmo só com duas.
É importante ressaltar que através da associação desta porta lógica, é possı́vel obter todas as
outras funções lógicas descritas aqui neste item.
A B S
0 0 1
0 1 0
1 0 0
1 1 0
O funcionamento desta porta lógica corresponde ao seguinte: se a saı́da tiver nı́vel lógico um,
significa que na sua entrada, teremos somente nı́vel lógico zero. Agora, para quaisquer outros
valores de entrada, a saı́da sempre será um, fazendo com que a afirmação de que esta porta
é o inverso da porta OU seja verdadeira. Abaixo poderemos verificar como o circuito discreto
equivalente abaixo corresponde exatamente ao funcionamento da porta lógica.
Podemos analisar o funcionamento deste circuito através das posições de suas chaves, pois se a
chave A ou B estiver na posição fechada (nı́vel lógico 1) ou as duas estiverem fechadas, o circuito
fica curto-circuitado e faz com que a lâmpada fique desligada. Agora, caso as duas fiquem em
nı́vel lógico baixo (posição aberta) a corrente passa a circular pela lâmpada acendendo-a.
Seu funcionamento pode ser definido da seguinte forma: a saı́da será um somente se as variáveis
de entrada forem diferentes. Com isso temos que, para uma porta OU-EXCLUSIVO de duas
Cartões Digitais
A B S
0 1 0
0 0 1
1 1 1
1 0 0
Esta função lógica, como dita acima, também é derivada das funções lógicas básicas, sendo
possı́vel montá-la usando portas conhecidas. Assim, mesmo que esta função tenha seu próprio
sı́mbolo e possa ser considerado um ”bloco”independente nos projetos, podemos sempre imple-
mentá-la com um circuito equivalente como o ilustrado abaixo.
Figura 3.15: Representação de uma porta XOR usando portas lógicas simples.
Uma tabela verdade para esta função é dada adiante, e ainda igual a porta OU-EXCLUSIVO,
podemos implementar esta função utilizando portas lógicas básicas como abaixo.
A B S
0 1 1
0 0 0
1 1 0
1 0 1
Tabela 3.4: Tabela Verdade da função XNOR usando portas lógicas simples
Cartões Digitais
Figura 3.17: Representação de uma porta XNOR usando portas lógicas simples
3.4.1 Representações
As operações lógicas E, OU e NÃO são representadas matematicamente por sı́mbolos usa-
dos no equacionamento decimal, contudo, apesar dos sı́mbolos serem semelhantes, eles possuem
significados diferentes como se pode ver a seguir.
1. Operação E: A operação E tem como sı́mbolo o ponto final(.). Então para representar
matematicamente a função E com duas entradas A e B com saı́da igual a S, podemos fazer
sua representação com: S = A . B;
3. Operação NÃO: Esta operação é indicada por uma barra da seguinte forma: A = S ou S
= A’ (A barra igual a S ou S igual a A barrado).
4. Operação XOR: Esta operação é indicada por um sı́mbolo que tem funções diferentes na
L L
álgebra booleana, o sı́mbolo , sua representação é dada por S=A B.
5. Operação XNOR: Esta operação é indicada por um sı́mbolo que tem funções diferentes
J J
na álgebra booleana, o sı́mbolo , sua representação é dada por S=A B.
Cartões Digitais
Tendo em mente estas representações, podemos enumerar as seguintes propriedades das operações
lógicas:
1. Elemento Neutro: É aquele que, quando participa de uma operação com uma variável,
leva a um resultado igual a própria variável. No caso da operação E o elemento neutro é 1,
isto é, A.1 = A. Já para a operação OU o elemento neutro é 0, ou seja A+0 = A
2. Elemento Nulo: É aquele que quando participa de uma operação com uma variável, leva
sempre a um mesmo valor, independente de qual seja o valor da variável. Na operação E
o elemento nulo é 0, portanto A.0 = 0. Já para a operação OU o elemento nulo é 1, assim
A+1 = 1
A + (B + C) = (A + B) + C (3.4)
A.B = A + B (3.6)
O mesmo teorema pode ser aplicado a operação NÃO a uma operação OU o resultado é
igual ao da operação E aplicada aos complementos das variáveis de entrada.
A + B = A.B (3.7)
• Exemplo 2: S = A.B.C+A.C’+A.B’
A.(B.C+(B’+C’)) * Colocando A em evidência
A.(B.C+(B.C)’) * Pelo teorema de Morgan
A * Identidade: A+A’ = 1
• Exemplo 3: S = (A+B’+C)’.(A+B+C)
A’.B.C’.(A+B+C ) * Pelo teorema de Morgan
A.A’.B.C’+A’.B.B.C’+A’.B.C.C’ * Propriedade Distributiva
0+A’.B.B.C’+0 * Identidade: A.A’ = 0
A’.B.B.C’ * Identidade: A+0 = A
A’.B.C’ * Identidade: A.A = A
• Exemplo 4 : S = ((A.C)’+B+D)’+C.(A’+C’+D’)
(A.C).B’.D’+C.(A’+C’+D’) * Pelo teorema de Morgan
(A.C).B’.D’+C.A’+C.C’+C.D’ * Propriedade Distributiva
(A.C).B’.D’+C.A’+0+C.D’ * Identidade: A.A’ = 0
(A.C).B’.D’+C.A’+C.D’ * Identidade: A + 0 = A
C.D’.(A.B’+1)+C.A’ * Colocando C.D’ em evidência
C.D’.(1)+C.A’ * Identidade: A + 1 = 1
C.D’+C.A’ * Identidade: A . 1 = A
C.(D’+A’) * Colocando C em evidência
C.(A.D)’ * Pelo teorema de Morgan
• Exemplo 6: S = A’.B’.C’+A’.B.C+A’.B.C’+A.B’.C’+A.B.C’
C’.(A’.B’+A’.B+A.B’+A.B)+A’.B.C * Colocando C’ em evidência
Cartões Digitais
• Inversora: Para obter uma inversora de uma porta NÃO-E basta unir suas entradas ou
colocar uma das entradas no nı́vel lógico um.
A B(5V+) S
0 0 1
1 1 0
• Uma porta E (AND) é feita através da junção entre uma porta NÃO-E (NAND) e uma
inversora em cada entrada. Pois, S= A.B = A.B .
A B C D E F
1
2 x x
3 x x
4 x x
5 x
6
Aqueles que conhecem batalha naval, provavelmente sabem que cada ponto assinalado na
ficha pertence a um elemento da esquadra inimiga, com isso, se quiser atingir um alvo temos que
utilizar os indicativos de linha e coluna para, exatamente, informar a localização do suposto alvo.
Para o mapa acima vemos que se tomarmos fileira vertical composta por quatro asteriscos tem os
Cartões Digitais
Entretanto, antes de continuar nossa análise sobre estes mapas é necessário definir alguns
parâmetros. E eles são:
Observando acima podemos entender que cada enlace define uma região onde as variáveis de
endereçamento apresentam uma propriedade em comum. Portanto para resolvermos um mapa de
Karnaugh devemos seguir os seguintes passos:
3. Deduzirmos a expressão booleana para cada enlace e agruparmos essas expressões através
da função OU.
Para uma melhor compreensão da forma com que deve ser feita a utilização do mapa, começaremos
citando um exemplo conforme a figura a seguir.
Desejamos expressar esta tabela como a soma de produtos, o que significa que os valores ad-
jacentes que devemos procurar na tabela são os ”uns”. É importante notar que caso quiséssemos
considerar os ”zeros”da tabela, terı́amos que expressar a tabela como o produto de somas. Vol-
tando ao exemplo, nossa ideia é agrupar os termos adjacentes iguais, havendo para isso diversas
possibilidades, entretanto, devemos agrupar uma maior quantidade possı́vel de itens adjacentes,
pois isso criará um enlace maior. Assim teremos equações mais simplificadas.
Na hora que for obter as equações do mapa, é necessário entender que os ı́ndices deste mapa
determinam à condição lógica de cada variável. Então, como a tabela acima foi expressa através
da soma de produtos, quando o ı́ndice for ”zero”, a variável lógica correspondente tem seu nı́vel
barrado, ou invertido. O mesmo raciocı́nio serve para quando o ı́ndice for ”um”, indicando que a
variável não terá seu valor lógico alterado.
Cartões Digitais
3.6 Conclusão
Os circuitos lógicos digitais podem parecer algo confuso e de difı́cil compreensão, pois eles
utilizam muito da matemática e isso, às vezes, pode parecer monótono e desestimulante. Contudo,
esta teoria básica é necessária para que você possa entender de forma clara o funcionamento dos
capı́tulos que se seguem. Isto ainda é o começo, mas o esforço será recompensador a partir do
momento que o aluno começar a enxergar estes conceitos em todos os equipamentos que utilizam
algum tipo de circuito lógico. Afinal, estes princı́pios estão presentes em tudo que um computador
faz.
Nos capı́tulos que se seguem, estes conceitos já serão abordados de forma mais concreta e nas
lições práticas será mais fácil entendê-los. Nas próximas lições, o que foi estudado até agora ficará
mais claro quando encontrarmos sua aplicação prática.
Cartões Digitais
Capı́tulo 4
Até 1955, os componentes eletrônicos disponı́veis para construir sistemas digitais eram os dio-
dos semicondutores e as válvulas a vácuo. Os diodos são relativamente pequenos, com dimensões
da ordem de milı́metros, e consomem relativamente pouca potência. As válvulas, por outro lado,
são grandes, tendo dimensões da ordem de vários centı́metros e consomem quantidades relativa-
mente grandes de potência, tipicamente da ordem de alguns watts. Embora em sua maioria as
portas pudessem ser construı́das com diodos e resistores, também era necessário usar válvulas em
grandes quantidades. Como resultado, qualquer sistema digital era grande, caro, e usava muita
potência. A situação melhorou consideravelmente com a invenção do transistor nos anos 50. Um
transistor, normalmente substituindo uma válvula, consome muito menos potência (da ordem
de dezenas de mW) e, como o diodo semicondutor, quando encapsulado individualmente, tem
dimensões da ordem de alguns milı́metros.
Portanto, com a evolução da tecnologia e a invenção do transistor, procurou-se padronizar os
sinais elétricos correspondentes aos nı́veis lógicos. Esta padronização favoreceu o surgimento das
famı́lias de componentes digitais com caracterı́sticas bastante distintas.
Os circuitos eletrônicos modernos não usam chaves e lâmpadas para representar nı́veis lógicos
na prática, mas sim, dispositivos muito rápidos que podem estabelecer os nı́veis lógicos nas entra-
das das funções com velocidades incrı́veis e isso lhes permite realizar milhões de operações muito
complexas a cada segundo. Aqui veremos que tipos de circuitos são usados e como são encon-
trados na prática, fazendo com que o seu uso em conjunto possa criar um circuito muito mais
complexo, como aqueles encontrados nos computadores atuais em blocos básicos. Estes blocos,
quando unidos, podem levar a elaboração de circuitos muito complexos como os encontrados nos
computadores de hoje.
As famı́lias lógicas diferem basicamente pelo componente principal utilizado por cada uma
em seus circuitos. Existem inúmeras famı́lias que possuem caracterı́sticas únicas, podemos citar
como algumas famı́lias existentes:
Aplicando o nı́vel um (5V) na base do transistor ele conduz até o ponto de saturar, fazendo
a tensão no seu coletor cair a zero. Por outro lado, na ausência de tensão na sua base, que
corresponde ao nı́vel zero de entrada, o transistor se mantém cortado e a tensão no seu coletor se
mantém alta, o que corresponde ao nı́vel um. Tomando este entendimento como base, podemos
conseguir outras portas lógicas simples através da combinação de transistores e resistores.
Isso significa que a elaboração de um circuito lógico digital capaz de realizar operações com-
plexas usando transistores é algo que pode ser conseguido com relativa facilidade.
Onde a saı́da S será um se, somente se, todas as entradas forem um. Também é possı́vel
Cartões Digitais
Utilizando estas simples portas com diodos e ainda uma inversora com transistor é possı́vel
resolver facilmente alguns problemas de lógica no circuito. Vale ressaltar, porem, que ao op-
tar por um circuito mais simples deixamos de lado vantagens como padronização, velocidade,
interconectividade, etc.
Assim, se fosse necessário montar um circuito que usasse três portas E, o projetista teria
disponı́veis componentes compatı́veis entre si contendo estas funções e de tal forma que poderiam
ser interligadas das maneiras desejadas e num espaço fı́sico mı́nimo. O sucesso do advento dessa
tecnologia foi enorme, pois além do menor tamanho dos circuitos havia menor consumo de energia.
Apesar de a famı́lia RTL ser uma precursora da tecnologia digital, hoje era não é mais uti-
lizada devido às limitações impostas por ela, que já foram citadas. Nas próximas páginas, nos
limitaremos a estudar as duas famı́lias em maior destaque hoje, a famı́lia TTL e a CMOS.
integrado não apenas umas poucas portas e funções adicionais que serão estudadas futuramente
como flip-flop’s, decodificadores e outros mas, também interligá-los de diversas formas e utilizá-los
em aplicações especı́ficas. Com isso, fica fácil observar que os componentes que compõem quase
todos os equipamentos eletrônicos são compostos pelo conjunto de diversos componentes lógicos.
Para que isso fosse possı́vel, diversas etapas no aumento da integração foram obtidas e receberam
nomes que hoje são comuns quando falamos de equipamentos digitais e computadores em geral.
Temos as seguintes classificações para os graus de integração dos circuitos digitais:
• Corrente de saı́da
Quando temos a saı́da de um circuito TTL indo ao nı́vel zero (ou baixo), flui uma corrente
da ordem de 16 mA. Isso mostra que uma saı́da TTL no nı́vel zero ou nı́vel baixo pode
drenar de uma carga qualquer ligada a ela uma corrente máxima de 16 mA. Por outro
lado, quando a saı́da de uma função TTL está no nı́vel 1 ou alto, ela pode fornecer uma
corrente máxima de 400 µA. Veja então que podemos obter uma capacidade muito maior
de excitação de saı́da de uma porta TTL quando ela é levada ao nı́vel zero do que ao nı́vel
um. Isso justifica o fato de que em muitas funções indicadoras, em que ligamos um LED
na saı́da, fazemos com que ele seja aceso quando a saı́da vai ao nı́vel zero (e, portanto, a
corrente é maior) e não ao nı́vel um.
Cartões Digitais
• Margem de ruı́do
Como já visto, a famı́lia TTL opera com uma tensão de alimentação de 5V, todas as tensões
em um sistema TTL estão no intervalo de 0 a 5V. Quando uma porta lógica não estiver
carregada pela ligação a entradas de outras portas, sua tensão de corresponde ao nı́vel
lógico zero, onde o valor pode ser 0,1 V ou até menor para a série 54/74. A tensão alta,
correspondente ao nı́vel lógico um, fica em tomo de 3,4 V. Quando a saı́da for de nı́vel
lógico baixo, a porta acionadora deve permitir o fluxo de corrente da porta acionada para
si própria. A porta acionadora é descrita como absorvedora de corrente da carga. Quando
Cartões Digitais
a saı́da estiver no nı́vel alto, a porta acionadora servirá como fonte de corrente para a carga
e é descrita como fornecendo corrente. No nı́vel de saı́da de nı́vel lógico baixo, a corrente
drenada eleva a tensão de saı́da e no nı́vel de saı́da no nı́vel lógico alto a corrente suprimida
diminui a tensão de saı́da.
Para a série 54/74, o fabricante garante que, mesmo que uma porta esteja carregada até
sua capacidade máxima de saı́da, a tensão de saı́da baixa não sobe acima de 0,4 V e a
tensão de saı́da de nı́vel lógico alto não desce abaixo de 2,4 V. O fabricante também garante
que uma tensão igual ou menor que 0,8V sempre será interpretada por uma porta que está
sendo acionada como correspondendo a tensão baixa (nı́vel lógico zero) e que uma tensão
de entrada maior que 2V sempre será interpretada como tensão alta (nı́vel lógico um). As
duas tensões de saı́da e as duas tensões de entrada são representadas pelos sı́mbolos VOH,
VOL, VIH e VIL e são definidas como:
VOH: A tensão de saı́da mı́nima que uma porta fornece quando sua saı́da estiver no nı́vel
alto.
VOL: A tensão de saı́da máxima que uma porta fornece quando sua saı́da estiver no nı́vel
baixo.
VIH: A tensão mı́nima que pode ser aplicada à entrada de uma porta e reconhecida como
nı́vel alto.
VIL: A tensão máxima que pode ser aplicada à entrada de uma porta e reconhecida como
nı́vel baixo.
Para as séries 54 ou 74, estas tensões são as especificadas abaixo. Quando a tensão de
entrada VI estiver no intervalo de 0 a 0,8V ou no intervalo acima de 2,0 Volts, a saı́da VO é
constante e vale 2,4 ou 0,4 Volts, respectivamente. Para VI no intervalo de 0,8 a 2,0 Volts,
a saı́da varia de seu nı́vel alto de 2,4V até seu nı́vel baixo de 0,4V.
• Velocidade
Os circuitos eletrônicos possuem uma velocidade limitada de operação que depende de diversos
fatores. No caso dos circuitos TTL, temos ainda que considerar sua construção que pode apre-
Cartões Digitais
sentar indutâncias e capacitâncias parasitas que influem na sua velocidade de operação das suas
portas lógicas.
Assim, levando em conta a configuração tı́pica de uma porta, veremos que se for estabelecida
uma transição muito rápida da tensão de entrada, a tensão no circuito não subirá com a mesma
velocidade porque esta tensão terá que carregar capacitâncias parasitas existentes na porta. Isto
causará um aumento gradual da tensão de entrada, levando tempo que não deve ser desprezado.
Da mesma forma, à medida que o sinal vai passando pelas diversas etapas do circuito, temos
de considerar os tempos que os componentes demoram a comutar justamente em função das
capacitâncias e indutâncias parasitas existentes.
O resultado disso é que para os circuitos integrados TTL existe um retardo entre o instante em
que o sinal passa do nı́vel zero para um na entrada e o instante em que o sinal na saı́da responde
a este sinal. Da mesma forma, existe um retardo entre o instante em que o sinal de entrada passa
do nı́vel um para o zero e o instante em que o sinal de saı́da passa do nı́vel zero para o um, no caso
de um inversor. Observe que estes tempos são determinantes quando se trabalha com sistemas
de alta velocidade.
Figura 4.10: Efeito do nı́vel lógico baixo e alto num Totem Pole.
Todavia, existe uma possibilidade de elaborar circuitos em que as saı́das das portas sejam
ligadas entre si. Este método é obtido pela utilização do Open Collector ou coletor aberto. Os
circuitos TTL que tem esta configuração são indicados como ”open collector ”e quando são usados,
exigem a ligação de um resistor externo denominado ”pull-up”com aproximadamente 2000 ohms.
Este tipo de método significa que o transistor interno da porta lógica está com o ”coletor
aberto”(open collector), necessitando de um resistor de polarização. A vantagem desta confi-
guração está na possibilidade de interligarmos portas diferentes num mesmo ponto e a desvanta-
Cartões Digitais
gem está na diminuição de velocidade do circuito lógico, ficando mais lento com o uso do resistor,
pois ele influencia o circuito alterando sua impedância.
• Tri-State:
As funções tri-state são muito usadas nos circuitos de computadores denominados barramentos
de dados ou ”data bus”, onde diversos circuitos devem aplicar seus sinais ao mesmo ponto ou
devem dividir a mesma linha de transferência desses dados. O circuito que está funcionando deve
estar habilitado e os que não estão funcionando, devem ser levados sempre ao terceiro estado.
A EN S
X 0 Alta impedância
0 1 0
1 1 1
Abaixo segue a descrição de algumas portas mais comuns da famı́lia TTL, com uma breve
descrição do que elas são e seu consumo.
• Consumo e velocidade:
Para que possamos analisar o consumo e velocidade desta famı́lia, vamos tomar um circuito
inversor como base para entendermos.
Cartões Digitais
Podemos ver duas caracterı́sticas importantes. A primeira é que sempre um dos transistores
estará cortado, independente do sinal de entrada (alto ou baixo) fazendo com que praticamente
não circule corrente alguma entre o Vdd e o terra (0 V). A única corrente circulante será de um
circuito externo alimentado a saı́da lógica. Isso significa um consumo extremamente baixo para
este par de transistores em condições normais, já que na entrada a impedância é elevadı́ssima e
praticamente nenhuma corrente circula. Este consumo é da ordem de dez nanowatt.
Contudo, na prática temos alguns fatores que tornam este consumo maior, como por exemplo,
eventuais fugas ou a necessidade de outro componente que precise de uma maior corrente. Mas
como dito antes, ele não é só cheio de qualidades. Como problema podemos citar que, ao aplicar-
mos um sinal de controle a este circuito, a tensão não sobe imediatamente até o valor desejado,
precisando de certo tempo para carregar o ”capacitor”existente na composição do transistor.
Este atraso nada mais é do que a diferença de tempo entre o instante em que aplicamos o sinal
na entrada e o instante em que ele estará disponı́vel na saı́da. Nos circuitos integrados CMOS
tı́picos como os usados nas aplicações digitais, como um inversor, este atraso é da ordem de três
nanossegundos (3 ns). Isso pode parecer pouco nas aplicações comuns, mas se um sinal tiver
de passar por centenas de portas antes de chegar onde ele é necessário, podemos ter um atraso
acumulativo relativamente alto.
Entretanto, este problema pode ser contornado com a elevação de tensão de alimentação.
Assim, com mais tensão, a carga dos elementos capacitivos é mais rápida e isso nos leva a uma
caracterı́stica muito importante dos circuitos CMOS digitais que deve ser levada em conta em
qualquer aplicação: com maior tensão de alimentação, os circuitos integrados CMOS são mais
rápidos. E isso fica mais fácil de obter do que na famı́lia TTL porque eles trabalham num valor
de tensão fixo enquanto os circuitos CMOS trabalham numa faixa de tensão mais ampla.
• Sensibilidade ao manuseio
Devido à composição dos transistores usados na tecnologia CMOS, ele é extremamente sensı́vel
a descargas elétricas tornando-os dispositivos muito delicados. De fato, a própria carga elétrica
acumulada nas nossas ferramentas ou em nosso corpo quando caminhamos num tapete num
dia seco ou ainda atritamos objetos em nossa roupa pode ser suficiente para danificar de modo
irreversı́vel os componentes CMOS. Para que se possa ter uma ideia, caminhando num carpete
num dia seco, seu corpo pode acumular uma carga estática que atingem até 10000 V. Se você tocar
num objeto metálico aterrado, a descarga de seu corpo neste percurso de terra pode lhe causar
um forte choque. Ainda, da mesma forma, você tocar num terminal de um dispositivo CMOS,
Cartões Digitais
a carga do seu corpo que escoa por este dispositivo facilmente destruirá a finı́ssima camada de
óxido que separa o gate do substrato e o componente estará inutilizado. Em outras palavras, os
dispositivos que usam transistores CMOS são extremamente sensı́veis a descargas estáticas. De
qualquer forma, para evitar o problema, nunca toque com os dedos nos terminais de componentes
CMOS sejam eles circuitos integrados ou transistores.
No nı́vel lógico baixo (zero) a tensão de saı́da se aproxima de 0 V sendo no máximo de 0,01
V para os tipos comuns com alimentação na faixa de 5 a 10 V. No nı́vel lógico alto, a tensão de
saı́da é praticamente a tensão de alimentação Vdd ou no máximo 0,01 V menor.
• Corrente de saı́da
Diferentemente dos circuitos integrados TTL em que temos uma capacidade maior de drenar
corrente na saı́da do que de fornecer, para os circuitos integrados CMOS a capacidade de drenar
e de fornecer corrente de saı́da é praticamente a mesma. Assim, para uma alimentação de 5 V as
saı́das podem fornecer (quando no nı́vel alto) ou drenar (quando no nı́vel baixo) uma corrente de
até 1mA e essa corrente sobe para 2,5 mA quando a alimentação é de 10 V. Estas correntes são
designadas por IOL e IOH nas folhas de especificações dos circuitos integrados CMOS.
Se bem que a comporta esteja isolada do circuito dreno-fonte, com uma resistência que teo-
ricamente seria infinita, na prática pode ocorrer uma pequena fuga. Esta, da ordem de 10 pA
(1 picoampère = 0,000 000 000 001 ampère) para uma alimentação de 10 V deve ser considerada
quando precisamos calcular a corrente de entrada de um circuito CMOS numa aplicação mais
crı́tica.
• Potência
Os circuitos integrados CMOS consomem muito menos energia que os circuitos integrados
TTL. Para os tipos comuns a corrente de alimentação Idd é normalmente da ordem de 1 nA
tipicamente com um máximo de 0,05 µA para alimentação de 5 V, o que corresponde a uma
dissipação de 5 nW em média para alimentação de 5 V e 10 nW para alimentação de 10 V.
• Velocidade
Os tipos comuns CMOS são muito mais lentos que os TTL, mas famı́lias especiais estão apa-
recendo com velocidades cada vez maiores e em muitos casos estas se aproximam dos mais rápidos
TTLs. As frequências máximas, conforme já explicamos, dependem das tensões de alimentação e
das funções, já que maior número de componentes para atravessar significa um atraso maior do
sinal. Assim, nos manuais encontramos a especificação de velocidade dada tanto em termos de
frequência quanto em termos de atraso do sinal. Para o caso do atraso do sinal, observamos que
ele pode estar especificado para uma transição do nı́vel alto para o nı́vel baixo ou vice-versa e em
alguns circuitos ou tensões de alimentação podem ocorrer diferenças.
Cartões Digitais
mesmo tempo funções de portas OU e E em cada uma das quatro entradas. Então, se colocarmos
as três entradas de programação no nı́vel alto, o circuito comporta-se como duas portas E de
quatro entradas ligadas a uma porta OU de duas entradas.
É importante saber deste detalhe porque esta função pode ser facilitadora em muitos projetos,
pois consegue simular a operação de diversas combinações de outros circuitos integrados CMOS.
Internamente, o 4048 é bastante complexo contendo 32 funções independentes programadas, de-
finidos pelos nı́veis lógicos nas entradas correspondentes.
Se o circuito CMOS a ser excitado por um TTL for alimentado com tensão maior que 5 V,
por exemplo 12 V, deve ser usado um circuito intermediário de casamento de caracterı́sticas. Este
circuito intermediário deve manter o sinal, ou seja, deve ser simplesmente um buffer não inversor,
como por exemplo, o de coletor aberto com um resistor de pull-up externo. O valor deste resistor
dependerá da tensão de alimentação.
Capı́tulo 5
Neste capı́tulo, estudaremos as funções lógicas de uma forma mais completa. Analisaremos
o que acontece quando associamos várias portas lógicas, prevendo o que teremos em suas saı́das
para cada uma das possı́veis combinações dos nı́veis de entrada. Os circuitos complexos, como
os usados nos computadores, por exemplo, se aproveitam das operações complicadas que muitas
portas lógicas podem realizar em conjunto.
Com isso, é muito importante que além de analisarmos o comportamento individual de cada
porta lógica, nós também consigamos analisar e construir circuitos mais elaborados a partir dela.
As portas E, OU e NÃO são exemplos de circuitos combinatórios simples. Uma restrição
importante dos circuitos combinatórios é que não precisam de nenhum retorno (feedback), isto é,
uma entrada para uma porta não pode ser um resultado de uma função que dependa da saı́da
desta mesma porta.
Isto significa que não é possı́vel obter loops em circuitos combinatórios. Um decodificador
(será visto com detalhes adiante) é um bom exemplo de um circuito combinatório. É um circuito
que produz uma saı́da especı́fica (geralmente zero) quando um valor especı́fico ou um conjunto de
valores especı́ficos aparece nas suas entradas.
Outro conjunto de circuitos combinatórios que deve ser citado são as portas E e OU de várias
entradas. Por exemplo, se quisermos calcular o E lógico de três entradas, podemos colocar duas
portas E em cascata conforme abaixo.
Figura 5.1: Porta E de três entradas a partir de duas com duas entradas.
De forma semelhante, podemos construir uma porta E de quatro entradas ou combinar três
portas E de duas entradas e assim por diante. As portas OU de várias entradas podem ser feitas
o mesmo princı́pio descrito acima. Como portas E e OU com mais de duas entradas são muito
comuns, usaremos um único sı́mbolo para representar portas de N entradas.
Cartões Digitais
• Identificação do problema;
Estes passos serão descritos a seguir de forma sistêmica para que o aluno possa compreender
a importância de cada procedimento e possa adotar estes passos na sua rotina de laboratório.
Revisando os itens anteriores, fica claro que as expressões lógicas vistas acima não são as únicas
e sim uma pequena parte. Existem vários outros equacionamentos que já foram descritos e que
podem ser vistos com mais detalhes nos capı́tulos anteriores. Se o aluno estiver com problemas
para recordar quais são, seria aconselhável que fizesse uma recapitulação, inclusive nos itens que
citam os mapas de karnaugh.
Continuando o processo de resolução do problema proposto, vamos executar dois procedi-
mentos distintos, o primeiro é a obtenção da tabela da verdade através do circuito proposto. O
segundo será fazer o circuito simplificado através da tabela da verdade e os mapas de karnaugh.
Iniciando o primeiro procedimento, vamos montar a tabela da verdade baseada na figura 5.2.
Podemos observar que esta figura possui quatro portas lógicas, uma porta E, uma porta OU e duas
portas inversoras ou portas NÃO. Para cada porta lógica desta, existe uma equação matemática
que representa seu funcionamento, por exemplo, a porta OU. Conforme revisamos acima, cada
porta tem seu operador algébrico e para começar, vamos indicar esses operadores para cada porta
lógica, indicando sua saı́da através de suas entradas.
Cartões Digitais
A B C S1 S2 S3 S
0 0 0 0 1 0 1
0 0 1 0 0 0 1
0 1 0 1 1 1 0
0 1 1 1 0 0 1
1 0 0 1 1 1 0
1 0 1 1 0 0 1
1 1 0 1 1 1 0
1 1 1 1 0 0 1
Para elaborar a tabela verdade para este circuito combinacional e com isso determinar todas
as saı́das possı́veis em função das entradas, deve levar em conta que ele é formado por três etapas.
Na primeira etapa temos a porta OU e a NÃO, na segunda etapa temos a porta E e na terceira
etapa temos mais um circuito inversor. Isso significa que as saı́das dos circuitos da primeira etapa,
que chamaremos S1 e S2 são à entrada da segunda etapa e que a entrada da terceira etapa, S3 é
a inversão da saı́da da segunda etapa.
Então temos que levar em consideração estas saı́das na elaboração da tabela verdade que terá
no seu topo todas as variáveis de entrada, as saı́das parciais e a saı́da final. Podemos identificar
as variáveis A,B e C como as entradas dos circuitos. S1, S2 e S3 são pontos intermediários do
circuito que precisam ser analisados para a obtenção de S, que é saı́da final do circuito.
Como falado anteriormente, começamos por colocar em A, B e C todas as suas condições
possı́veis de entrada, ou todas as combinações de nı́veis lógicos que podem ser aplicadas ao circuito.
O próximo passo foi colocar na tabela os valores possı́veis de S1 que corresponde ao resultado
algébrico da função OU. Assim através de todos os valores possı́veis de A e B, podemos saber
quais serão os valores de S1, simplesmente utilizando à equação S1=A+B. Este processo se repete
para a saı́da S2, que corresponde a inversão do valor colocado em C.
Depois de se ter todos os possı́veis valores de S1 e S2, temos o valor de S3 através da inserção
dos valores de S1 e S2 na porta E. O valor de S3 então estará definido pela equação algébrica
da porta E, sendo S3 = S1 . S2. Com isso, podemos completar a coluna S3 da tabela verdade,
Cartões Digitais
fazendo com que falte somente o valor realmente importante que é à saı́da do circuito. Esta
é obtida através da aplicação da inversora ao valor obtido de S3. Assim, podemos finalmente
terminar a construção da tabela verdade que corresponde ao circuito da figura 5.4 . Esta tabela
corresponde à tabela 5.1.
Veja que este exemplo não constituiu um exemplo de construção de circuitos combinacionais
mesmo porque ele já estava pronto, contudo é importante saber como é obtida a tabela verdade
a partir do circuito para que seja possı́vel analisar seu funcionamento.
Outro detalhe que deve ser considerado é que esta tabela verdade não é única. Podemos ter
várias outras combinações lógicas que representariam à mesma tabela. Ainda poderı́amos evitar
o uso de portas como a porta inversora ligada a S, se utilizasse uma porta NÃO E ao invés de
uma porta E. Note que o projeto de circuitos combinacionais tem uma série de formas de serem
feitas, contudo, para que o aluno não fique perdido entre qual forma adotar, seguiremos a regra
apresentada aqui.
Agora vamos atuar de forma reversa, sendo esta forma mais utilizada para criação de projetos
porque geralmente tem que se construir um equipamento dependendo das suas entradas e saı́das,
fazendo assim a expressão lógica e depois o circuito que a representa. Para exemplificar, a tabela
5.1 foi dada para se verificar qual é a equação lógica que corresponde a ela.
Primeiramente, temos que ver quais colunas serão usadas para criar esta tabela. Como o
que nos interessa são sempre as entradas e as saı́das, usaremos as colunas A, B, C e S. Depois
temos que verificar quais linhas geram saı́das com nı́vel lógico um, pois são elas necessárias para
a montagem da equação lógica. As saı́das com nı́vel um representam que as entradas geram um
valor um na saı́da, contudo, vemos que várias linhas causam também este tipo de saı́da. Isso quer
dizer que a figura 5.5 é o resultado da operação OU entre as tabelas que só possuem uma saı́da
com nı́vel um.
Em segundo lugar, se nos interessa somente as linhas onde o nı́vel lógico da saı́da tem nı́vel
um e sabemos que quando a entrada tiver o número zero significa que a entrada é ”barrada”.
Temos a nomenclatura da entrada representada pelo inverso da entrada e quando tiver o número
um significa que a entrada é sem nenhuma modificação.
Então, continuando a análise do exemplo proposto, podemos retirar da tabela verdade a
seguinte equação:
Esta equação representa na forma da simbologia lógica a tabela verdade acima, significa que
Cartões Digitais
se nesta equação tivermos o valor de entrada semelhante ao da tabela acima, sempre terá a saı́da
respectiva. Agora baseado nesta equação, nós terı́amos o seguinte circuito lógico equivalente:
Conforme você já deve ter observado, este circuito não é nada parecido com a figura 5.2. Isto
ressalta duas afirmativas, a primeira é que uma tabela verdade pode ser representada por várias
combinações lógicas diferentes e a segunda é que este circuito combinatório pode ser simplificado
de forma a usar uma quantidade menor de portas lógicas ficando do tamanho do circuito da figura
5.2 ou até menor.
Para a segunda afirmativa, existe o método que permite simplificar as expressões lógicas
fazendo com que elas tenham equivalentes menores. Esta redução é obtida através do uso dos
mapas de Karnaugh já vistos aqui. Para se fazer a simplificação deste circuito, vamos transportar
as informações da tabela verdade para o mapa.
Conforme já vimos antes, quando montamos o mapa e vemos que alguma entrada nas áreas
selecionadas muda de ı́ndice, zero para um ou vice-versa, ela não influencia naquela saı́da. Com
isso, através do mapa obtemos a seguinte equação:
S = A.B.C (5.2)
Faça os testes, montando a tabela verdade deste circuito da forma que tı́nhamos visto antes,
você verá que, no final, você terá a mesma tabela da verdade.
Nota-se claramente o desperdı́cio de componentes lógicos nesta montagem, pois temos somente
duas portas inversoras em uso de seis! A falta de uso, além de desperdı́cio, ocupa um espaço maior
na hora de confeccionar o circuito e gastam uma quantia maior na produção dos equipamentos.
Vemos que na montagem da figura em 5.12, baseada no circuito da figura em 5.11, a quantidade
de componentes integrados foi diminuı́da a dois terços do circuito anterior e ainda utilizou-se um
maior número de portas lógicas por componente integrado, fazendo com que o projeto tivesse
uma menor utilização de espaço e reduzindo os custos de fabricação.
Devemos fazer algumas observações com relação ao uso real dos componentes, por exemplo,
devemos usar capacitores de desacoplamento na alimentação e ainda devemos ligar à terra todas
as entradas não usadas.
No nosso estudo vemos a partir de agora como essas associações são importantes para dar as
portas lógicas funções úteis que manipulam os bits conforme necessário.
Cartões Digitais
Glossário
Buffer/Driver: Circuito projetado para fornecer uma corrente de saı́da alta e/ou tensão
também alto se comparadas aos parâmetros normalmente associados aos circuitos lógicos comuns;
CIs bipolares: Circuitos Digitais integrados nos quais transistores PNP ou NPN são os
principais formadores do circuito;
CIs Unipolares: Circuitos Integrados digitais nos quais um transistor unipolar por efeito de
campo (MOSFET) é o principal elemento para a construção dos circuitos;
Dispositivo Lógico Programável (PLD): Circuito integrado que contém um grande número
de funções lógicas interconectadas. O usuário pode programar o CI para uma função especı́fica,
abrindo as conexões apropriadas;
Entrada flutuante ou em flutuação: Sinal em alta impedância, apresentado como entrada
de um circuito digital. Atua como se estivesse logicamente desconectado ao circuito;
Lógica absorvedora de corrente: Famı́lia lógica na qual a saı́da de um circuito lógico
drena corrente da entrada de um outro circuito lógico;
Lógica acoplada pelo emissor (ECL): Também conhecida como lógica em modo de cor-
rente;
Lógica fornecedora de corrente: Famı́lia lógica na qual a saı́da de um circuito lógico
fornece corrente para a entrada de um outro circuito lógico;
Saı́da a coletor aberto: Tipo de estrutura de saı́da de alguns circuitos TTL (Transistor-
Transistor Logic), no qual só é usado um transistor com seu coletor em flutuação;
Saı́da de três estados (tristate): Tipo de estrutura que permite que uma saı́da seja
colocada em um dos três estados: alto, baixo ou alta impedância;
Saı́da totem-pole: Termo usado para descrever a forma na qual dois transistores bipolares
são ligados na saı́da de alguns circuitos TTL;
Resistor de pull-up: Assegura em uma entrada (que pode ser compartilhada) de uma porta
lógica o nı́vel lógico 1;
Resistor de pull-down: Assegura em uma entrada (que pode ser compartilhada) de uma
porta lógica o nı́vel lógico 0;
Spike: Mudança momentânea e espúria em um nı́vel de tensão;
Strobing: Técnica utilizada para eliminação de spikes;
Substrato: Pedaço de material semicondutor, onde são colocados os componentes eletro-
eletrônicos de um circuito integrado;
Transientes de corrente: Picos de corrente gerados pela saı́da totem-pole de um circuito
TTL. Causados quando ambos os transistores conduzem simultaneamente;
”Unasserted”: Termo usado para descrever o estado de um sinal lógico, sinônimo de inativo;
Apêndice A
7400: Quatro portas NAND de duas entradas
7401: Quatro portas NAND de duas entradas com coletor aberto
7402: Quatro portas NOR de duas entradas
7403: Quatro portas NOR de duas entradas com coletor aberto
Cartões Digitais
74L71: Flip-flop RS mestre escravo com Preset e Clear com porta AND
7472: Flip-Flop JK mestre escravo com Preset e Clear com porta AND
7473: Dois Flip-Flops JK com Clear
7474: Dois Flip-Flops tipo D com Preset e Clear ativos por borda de subida
7475: Latch biestável de 4-bits 7476: Dois Flip-Flops JK com Preset e Clear
7477: Latch biestável de 4-bits
74H78, 74L78: Dois Flip-Flops JK com Preset, Clear comum e Clock comum
74LS78A: Dois flip-flops JK com Preset, Clear comum e clock comum ativos por borda de
descida
7479: Dois flip-flops D 7480: Somador completo com disparo
7482: Somador completo de 2 bits 7483: Somador completo de 4 bits
7484: Memória RAM de 16 bits
7485: Comparador de magnitude de 4 bits
7486: Quatro portas XOR (ou exclusivo) de duas entradas
7487: Elemento Verdadeiro/Complemento/Zero/Um de quatro bits
7488: Memória ROM de 256 bits
7489: Memória de leitura/escrita de 64 bits
7490: Contador de década (seções divide por 2 e divide por 5 separadas)
7491: Registrador de deslocamento de 8 bits com entrada serial, saı́da serial e entradas com
disparo
7492: Contador divisor por 12 (seções divide por 2 e divide por 6 separadas)
7493: Contador binário de 4 bits (seções divide por 2 e divide por 8 separadas)
7494: Registrador de deslocamento de 4 bits, dois Presets assı́ncronos
7495: Registrador de deslocamento de 4 bits, entrada paralela, saı́da paralela, bidirecional
7496: Registrador de deslocamento com entrada paralela, saı́da paralela e Preset assı́ncrono
7497: Multiplicador binário sı́ncrono de 6 bits
7498: Registrador de armazenamento/seleção de dados de 4 bits
7499: Registrador de deslocamento de 4 bits bidirecional universal
74100: Dois latch biestáveis de 4 bits
74101: Flip-Flop JK ativo por borda de descida com Preset e com disparo por porta AND-OR
74102: Flip-Flop JK ativo por borda de descida com Preset e Clear com disparo por porta
AND
74103: Dois Flip-Flops JK ativos por borda de descida com Clear
74104: Flip-Flop JK Mestre Escravo
74105: Flip-Flop JK Mestre Escravo
74106: Dois Flip-Flops JK ativos por borda de descida com Preset e Clear
74107: Dois Flip-Flops JK com Clear
74107A: Dois Flip-Flops JK ativos por borda de descida com Clear
74108: Fois Flip-Flops JK ativos por borda de descida com Preset, Clear comum e Clock
comum
74109: 8Dois Flip-Flops J-Not-K ativos por borda de subida com Preset e Clear
74110: Flip-Flop JK Mestre Escravo com disparo por porta AND com trava de dados
74111: Dois Flip-Flops JK Mestre Escravo com trava de dados
Cartões Digitais
74112: Dois Flip-Flops JK ativos por borda de descida com Clear e Preset
74113: Dois Flip-Flops JK ativos por borda de descida com Preset
74114: Fois Flip-Flops JK ativos por borda de descida com Preset, Clock comum e Clear
74116: Dois latches de 4 bits com Clear
74118: Seis Latches set/reset 74119: Seis Latches set/reset
74120: Dois Excitadores/Sincronizadores de pulso
74121: Multivibrador monoestável
74122: Multivibrador monoestável reativável com Clear
74123: Dois multivibradores monoestáveis reativáveis com Clear
74124: Dois osciladores controlados por tensão
74125: Quatro buffers com saı́das tristate, ativos por sinal negativo
74126: Quatro buffers com saı́da tristate, ativos por sinal positivo
74128: Quatro portas NOR de duas entradas esxitadores de linha
74130: Quatro portas AND de duas entrada buffers com saı́das de 30V com coletor aberto
74131: Quatro portas AND de duas entrada bubbers com saı́das de 15V com coletor aberto
74132: Quatro portas NAND de duas entradas com Schmitt Trigger
74133: Porta NAND de treze entradas
74134: Porta NAND de doze entradas com saı́da tristate
74135: Quatro portas NOR/XOR de duas entradas
74136: Quatrp portas XOR (ou exclusivo) de duas entradas com coletor aberto
74137: Decodificador/Demultiplexador de 3 para 8 linhas com Latch de endereço
74138: Decodificador/Demultiplexador de 3 para 8 linhas
74139: Dois Decodificadores/Demultiplexadores de 2 para 4 linhas
74140: Duas portas NAND de quatro entradas com excitador de linha
74141: Decodificador/Excitador de BCD para decimal
74142: Contador de década/Latch de 4 bits/Decodificador de 4 bits para 7 segmentos/Excitador
74143: Contador de década/latch/decodificador/ exctador com corrente de 15 mA constante
74144: Contador de década/latch/decodificador/ excitador com saı́da de 15V com coletor
aberto
74145: Decodificador BCD para decimal/Excitador
74147: Codificador de prioridade de 10 linhas para 4 linhas
74148: Codificador de prioridade de 8 linhas para 4 linhas
74150: Seletor de dados/Multiplexador de 16 linhas para 1 linha
74151: Seletor de dados/Multiplexador de 8 linhas para 1 linha
74152: Seletor de dados/Multiplexador de 8 linhas para 1 linha
74153: Dois Seletores de dados/Multiplaxadores de 4 linhas para 1 linhas
74154: Demultiplexador de 4 linhas para 16 linhas
74155: Dois demultiplexadores de 2 linhas para quatro linhas
74156: Dois demultiplaxadores de 2 linhas para quatro linhas com coletor aberto
74157: Dois multiplexadores/seletores de dados de 2 linhas para 1 linha sem inversão de saı́da
74158: Dois seletores de dados/multiplaxadores de 2 linhas para 1 linha com inversão de saı́da
74159: Demultiplaxador de 4 linhas para 16 linhas com coletor aberto
74160: Contador de década sı́ncrono de 4 bits com Clear assı́ncrono
Cartões Digitais
Capı́tulo 6
Caderno de Experiências
Referências:
Material necessário
Não há
Questionário:
Introdução a eletrônica digital
8. De que componentes discretos podem ser formadas as portas lógicas TTL e CMOS?
9. Quais são as principais métricas de tensão e corrente medidos em uma porta lógica?
Referências:
• Álgebra de Boole
Material Necessário:
• Módulo XD200M01.02.01
Introdução:
George Boole foi um matemático inglês, desenvolveu uma teoria inovadora nos meados do
século XIX, baseada em uma série de postulados e simples operações para resolver inúmeros
problemas. A álgebra de Boole, nome dado a sua teoria, pode resolver problemas práticos de
controle e fabricação de produtos mesmo numa época que não havia Eletrônica e nem as máquinas
eram suficientemente avançadas para utilizar seus princı́pios.
Entretanto, as regras que Boole criou tornaram-se importantes com o advento da Eletrônica,
especificamente, da Eletrônica Digital, que gerou os atuais e cada vez mais potentes computado-
res. Boole estabelece em sua teoria que só existem duas condições possı́veis ou estados possı́veis
para qualquer coisa que se deseje analisar e estes dois estados são opostos.
Questionário:
3. Qual é a função lógica básica que pode representar todas as outras funções lógicas básicas?
Exercı́cios:
1. Utilizando o Kit, monte os seguintes circuitos digitais e monte suas respectivas tabelas da
verdade:
Obs:Utilize os manuais para uma montagem correta!
Cartões Digitais
2. Para cada circuito lógico acima, simplifique a expressão usando o mapa de Karnaugh, se
possı́vel.
Cartões Digitais
3. Desenhe e monte os circuitos das seguintes equações lógicas, usando as propriedades quando
possı́vel:
• A.B.C + A.D
• B.C.A + B.(A.D+A.D)
• (A+B).(C+E),(B.E).(A.D)
• (A+B).(C.D+C.D)+(A.D+AD)
Exercı́cios Propostos:
1. Monte todas as portas lógicas básicas a partir da porta ”NAND”, faça a tabela da verdade
para cada porta.
• A + A.B=A
• A+A.B=A + B
• A + B=A.B
• A.B =A+B
Cartões Digitais
Cartões Digitais
Capı́tulo 7
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
7.1 Hardware
O módulo XD200M01.02.01 é uma ferramenta capaz de trabalhar as principais lógicas digitais
aplicadas na maioria dos circuitos eletrônicos.
Sua placa está disposta de 6 circuitos integrados que executam tais funções lógicas:
Utilizando o módulo XD200M01.02.01 ao circuito de sua escolha, você poderá trabalhar estas
principais lógicas digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias
para cada experiência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
8.1 XD200M01.02.01
Cartões Digitais
Cartões Digitais
Cartões Digitais
Capı́tulo 9
Codificadores e Decodificadores
Introdução
Depois de vermos os conceitos mais simples da lógica binária, suas portas lógicas básicas e
seus principais equacionamentos, estamos prontos para estudar a utilização prática da eletrônica
digital. Isto consiste na implementação destes componentes lógicos para executarem ações que
proporcionem utilidade prática.
Os circuitos combinacionais são os responsáveis pelas operações lógicas e aritméticas dentro
de um sistema digital. Então além das operações lógicas e aritméticas como adição, subtração
complementação, etc, existem outras funções necessárias para a realização de conexões entre os
diversos operadores. Dentre essas funções estão a multiplexação e a decodificação. Os elementos
que realizam essas últimas operações são denominados multiplexadores e decodificadores. Neste
módulo analisaremos os codificadores e decodificadores, e veremos como tais circuitos são cons-
tituı́dos.
As informações que os circuitos digitais produzem estão na forma binária ou em outras formas
que não são compreendidas facilmente pelo usuário, ou ainda que não possam ser utilizadas
pelos circuitos seguintes do equipamento. Isso implica na necessidade de se ter circuitos que
processem uma informação codificada de modo a transformá-la em outra que possam ser usada
por dispositivos ou circuitos.
Podemos ter, por exemplo, a necessidade de apresentar um valor numérico na forma decimal
a partir de um valor binário ou produzir um impulso em determinado endereço numa memória
a partir de uma informação binária deste endereço. Nas aplicações digitais encontramos diversos
tipos de circuitos decodificadores, que serão vistos agora.
Figura 9.1: Decodificador com quatro saı́das a partir de dois bits de endereço.
A B S1 S2 S3 S4
0 0 0 1 1 1
0 1 1 0 1 1
1 0 1 1 0 1
1 1 1 1 1 0
Observe que no seu funcionamento segundo a tabela verdade, a saı́da ativada vai ao nı́vel
baixo quando o valor binário correspondente é aplicado à entrada. Quando estiver desenvolvendo
circuitos decodificadores na prática, não será preciso programar circuitos decodificadores como
este a partir de portas lógicas, pois existem circuitos integrados que já realizam estas funções.
Entretanto, o ideal é que observe o funcionamento de cada porta lógica e suas combinações,
pois isto facilitará a compreensão do funcionamento do circuito como um todo. Nunca devemos
esquecer de como são formados os componentes integrados que usamos para não fiquemos depen-
dentes de uma só implementação. Aplicações possı́veis para este circuito podem ser facilmente
imaginadas como, por exemplo, um circuito em que um contador binário é ligado a um destes
decodificadores de modo a fazer o acionamento sequencial de lâmpadas. Para determinar a velo-
cidade com que as lâmpadas acendem, é só modificar o tempo de clock, através da modificação
do circuito oscilador.
uma pessoa usuária daquele equipamento. Podemos ter displays simples que operam na forma
digital como sequencias de LEDs, displays que apresentam números (numéricos) e displays que
apresentam também sı́mbolos gráficos (letras e sinais) denominados alfa-numérico. Alguns mais
sofisticados podem até apresentar imagens de objetos ou formas, como os usados em equipamentos
informatizados. O tipo mais comum de display usado nos projetos básicos de digital é o numérico
de sete segmentos, conforme o estudado a pouco.
A combinação do acionamento de sete segmentos possibilita o aparecimento dos algarismos
de zero a nove e também de alguns sı́mbolos gráficos. O tipo mais comum usado nos projetos
digitais é o mostrador de LEDs, onde cada segmento é um diodo emissor de luz. Os LEDs podem
ser ligados de modo a ter o anodo conectado ao mesmo ponto, caso em que dizemos que se trata
de um display de anodo comum, ou podem ter os catodos interligados, caso em que dizemos que
se trata de um display de catodo comum.
As correntes nos segmentos variam tipicamente entre 10 e 50 mA conforme o tipo, o que nos
leva a concluir que o consumo máximo ocorre quando o dı́gito oito é projetado (todos os segmentos
acesos) e pode chegar a 400 mA por dı́gito. Outro tipo de display também utilizado com certa
frequência nos projetos é o de cristal lı́quido. Este display não ”acende”quando excitado.
Cartões Digitais
A B C D a b c d e f g
0 0 0 0 0 1 1 1 1 1 1 0
1 0 0 0 1 0 1 1 0 0 0 0
2 0 0 1 0 1 1 0 1 1 0 1
3 0 0 1 1 1 1 1 1 0 0 1
4 0 1 0 0 0 1 1 0 0 1 1
5 0 1 0 1 1 0 1 1 0 1 1
6 0 1 1 0 1 1 1 1 1 1 1
7 0 1 1 1 1 1 1 0 0 0 0
8 0 0 0 0 1 1 1 1 1 1 1
9 1 0 0 1 1 1 1 1 0 1 1
Eletrodos transparentes ao serem excitados eletricamente pelo sinal do circuito fazem com
que o lı́quido com que ele está em contato torne-se opaco, deixando assim de refletir a luz. Desta
forma, o fundo branco do material deixa de ser visto, aparecendo em seu lugar uma região preta.
As regiões formam os segmentos conforme sua combinação tem o aparecimento dos dı́gitos. No
entanto, é mais difı́cil trabalhar com estes mostradores, pois eles exigem circuitos de excitação
especiais que também são mais caros.
A principal vantagem do mostrador de cristal lı́quido (LCD) é seu consumo, que é centenas
de vezes menores do que o de um mostrador de LEDs. Para as aplicações em que o aparelho
deve ser alimentado através de pilhas ou ficar permanentemente ligado, é muito vantajoso usar o
mostrador LCD.
9.3 Codificador
Este circuito executa a função inversa do codificador, ou seja, produz um código diferente em
suas saı́das para cada entrada diferente ativada. Podemos analisar o projeto do circuito através
de uma tabela verdade construı́da a partir da sua definição.
I3 I2 I1 I0 A B
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1
A tabela verdade pode parecer um pouco estranha, pois apesar de ter quatro variáveis de
entrada não tem a esperadas dezesseis linhas. O problema é que as quatro entradas só podem ser
ativadas uma de cada vez e com isso temos que eliminar todas as outras combinações possı́veis
para elas, mas para resolvermos o circuito através dos mapas de Karnaugh teremos que ter
todas as linhas. Vamos então introduzir o conceito de irrelevância: Em alguns casos de circuitos
combinacionais temos situações que nunca acontecem e, portanto não nos importaremos com os
valores das entradas destes casos. Dizemos então que são casos irrelevantes, ou seja, tanto faz as
entradas terem nı́vel lógico um ou nı́vel lógico zero. A grande vantagem desta situação é que para
resolvermos os mapas de Karnaugh destes circuitos podemos considerar os nı́veis lógicos como um
Cartões Digitais
ou como zero levando em consideração apenas nos for mais conveniente para conseguirmos um
maior enlace do mapa sem nos esquecer das regras que regem esses enlaces. Analise então como
fica o projeto deste codificador:
Observe que a entrada I0 não é conectada no circuito propriamente dito e que pela lógica isto
está certo, pois quando esta estiver ativada devemos ter nas saı́das A = 0 e B = 0.
Um exemplo de aplicação para os codificadores e decodificadores são os teclados de computado-
res. Você já notou, durante o uso do seu computador que um teclado deste tipo tem normalmente
105 teclas, mas o fio que os conecta com o gabinete da CPU é muito fino para conter 105 fios. Na
verdade as teclas são codificadas através de um codificador para economizar fios.
Veja que um codificador com sete saı́das pode ter 128 entradas. Isso significa que podemos
transmitir por uma via de sete fios 128 valores diferentes, onde cada valor representa uma tecla.
O circuito responsável pela codificação de teclados dos computadores atuais é mais complexo que
este estudo, mas o princı́pio de funcionamento é o mesmo.
Cartões Digitais
Capı́tulo 10
Caderno de Experiências
Referências:
• Codificadores/decodificadores
Material Necessário:
• Módulo XD200M02.02.01
Introdução
Questionário:
1. Que tipo de decodificador apresenta um código BCD na sua saı́da a partir do acionamento
de apenas uma de nove entradas selecionadas?
Cartões Digitais
Exercı́cios:
Exercı́cio Propostos:
Referências:
• Codificadores/Decodificadores
Material Necessário:
• Módulo XD200M02.02.01
Introdução:
Questionário:
1. Como é denominado um circuito que joga o sinal de uma entrada em uma de quatro saı́das?
2. Que tipo de decodificador tem apenas uma de dez saı́das ativadas a partir de sinais BCD
de entrada?
Exercı́cios:
2. Altere as chaves BCD por chaves lógicas repita a operação acima e obtenha a tabela da
verdade.
Exercı́cios Propostos:
Capı́tulo 11
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
Hardware
O módulo XD200M02.02.01 é uma ferramenta capaz de trabalhar as funções de decodificações,
muito utilizadas na realização de conexão/informação entre diversos canais/operadores.
Sua placa está disposta de 2 circuitos integrados que executam tais funções:
Utilizando o módulo XD200M02.02.01 ao circuito de sua escolha, você poderá trabalhar estas
principais funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias
para cada experiência.
Cartões Digitais
Visão da placa
ENCODER
Cartões Digitais
DECODER
Capı́tulo 12
Esquemas Elétricos
12.1 XD200M02.02.01
Cartões Digitais
Cartões Digitais
Capı́tulo 13
Registradores de Deslocamento
Por exemplo, o bit um aplicado na entrada aparece na saı́da do primeiro flip-flop no primeiro
pulso de clock, depois se desloca, aparecendo na saı́da do segundo flip-flop no segundo pulso de
clock e assim por diante, até aparecer na saı́da do final da sequência.
Na configuração mostrada na figura 13.1, todos os flip-flop tipo D têm sua saı́da conectada à
entrada do flip-flop seguinte e todos eles são controlados pelo mesmo clock. Para entender como
funciona este circuito, vamos partir da situação inicial em que todos eles estejam desativados ou
com suas saı́das Q no nı́vel baixo. Inicialmente vamos aplicar à entrada de dados um nı́vel alto
(1).
Conforme podemos ver, esta entrada é feita pela entrada J do primeiro flip-flop (FF1). Com
a chegada do pulso de clock a este flip-flop, ele muda de estado e com isso ”armazena”o pulso
aplicado à entrada, o qual aparece em sua saı́da depois de um curto intervalo de tempo.
Veja que este sinal é armazenado com o flanco positivo do sinal de clock, quando então o
nı́vel alto deve estar presente na entrada do flip-flop. O intervalo de tempo que decorre entre
Cartões Digitais
Veja então que no quinto pulso de clock, o primeiro pulso de clock, o primeiro nı́vel lógico,
aparece na saı́da do último flip-flop (FF4) e se lermos a saı́da dos flip-flop’s teremos registrado os
nı́veis aplicados na entrada: 0101(2) .
Com isso, vemos que aplicando um dado binário num shift-register, depois do número apro-
priado de pulsos de clock, ele pode armazenar este dado. Para retirar a dada em sequência, basta
continuar aplicando pulsos de clock ao circuito.
Veja então que para armazenar um dado de quatro bits num registrador devemos aplicar
quatro pulsos de clock e para ler em sequência, mais quatro pulsos de clock. Para ”apagar”os
dados registrados num shift-register, como o indicado, basta aplicar um pulso na entrada CLEAR.
Todos os flip-flop’s terão suas saı́das levadas ao nı́vel baixo ou zero.
Assim, existem circuitos em que temos uma entrada serial ou duas, e também podemos ter uma
ou duas linhas de saı́da. A seguir, veremos os principais tipos como suas denominações.
Analisemos como ele funciona: Os dados são colocados ao mesmo tempo na entrada, pois ela
opera em paralelo. Por exemplo, se vamos armazenar o dado 0110(2) , esses dados são aplicados
ao mesmo tempo nas entradas correspondentes (S) dos flip-flop’s. No primeiro pulso de clock, os
flip-flop’s ”armazenam”esses dados. Assim, os flip-flop’s que possuem nı́vel um em sua entrada S
passam esse nı́vel à saı́da (FFB, FFC). Por outro lado, os que possuem nı́vel zero na sua entrada,
mantêm este nı́vel na saı́da (FFA e FFD). Isso significa que, após o pulso de clock, as saı́das dos
flip-flop’s apresentarão os nı́veis 0110(2) .
Capı́tulo 14
Caderno de Experiências
Referências:
Material Necessário:
• Módulo XD200M03.02.01
Introdução:
Questionário:
Exercı́cios:
1. Implemente um display que visualize todas as combinações BCD utilizando o módulo XD200M03.02.01
do Kit (decodificador BCD - 7 segmentos). Verifique todas as saı́das para todas as entradas
possı́veis.
2. Ligue as saı́das da Chave BCD a entrada do conversor BCD para 7 segmentos do módulo
XD200M03.02.01, gere a tabela da verdade e explique porque estão limitados os dados a
apenas 10 algarismos.
Exercı́cios Propostos:
Referências:
• Registros de Deslocamento
Material Necessário:
• Módulo XD200M03.02.01
Introdução:
Questionário:
Exercı́cios:
Exercı́cios Propostos:
Capı́tulo 15
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
15.1 Hardware
O módulo XD200M03.02.01 está apto a trabalhar as principais configurações de circuitos Shift
Registers. Dependendo da maneira como você queira, a informação pode ter diversas configurações
que nos levam a muitos tipos de circuitos. O módulo contém também um circuito decodificador
BCD/7 Segmentos.
Utilizando o módulo XD200M03.02.01 ao circuito de sua escolha, você poderá trabalhar estas
principais funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias
para cada experiência.
Cartões Digitais
Visão da placa
Registros de Deslocamento:
Cartões Digitais
Esquemas Elétricos
16.1 XD200M03.02.01
Cartões Digitais
Cartões Digitais
Cartões Digitais
Capı́tulo 17
Circuitos Aritméticos
17.1 é denominado meio somador (half adder, em inglês). As duas entradas, A e B, representam
os dois bits a serem adicionados. A saı́da S representa o dı́gito menos significativo do resultado,
enquanto que a saı́da S representa o dı́gito mais significativo do resultado, o qual também é
conhecido por transporte de saı́da (carry out, em inglês). Uma vez que ele assume valor um
somente quando o resultado da soma de A e B não pode ser representado num único dı́gito.
A fim de se projetar o circuito do meio somador, devemos montar uma tabela verdade para
as saı́das S e C utilizando-se os valores que resultam da adição de dois dı́gitos binários, da forma
a seguir:
A B S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Note que a saı́da S nada mais é do que uma operação OU - Exclusivo entre A e B. Já a saı́da C
é o E entre A e B. Então, um circuito para o meio somador usa apenas uma porta OU - Exclusivo
de duas entradas e uma porta E de duas entradas.
Entretanto, quando ao somarmos dois números binários que possuem mais de um dı́gito cada
ocorrer transporte diferente de zero para a soma de um par de dı́gitos intermediários, a soma
do par seguinte deverá considerar esse transporte proveniente do par anterior, conforme ilustra o
exemplo a seguir.
O circuito capaz de realizar a soma de três bits (A, B e Cn ), gerando o resultado em dois bits (S
e C) é denominado somador completo (full adder, em inglês). Apesar da entrada Cn normalmente
Cartões Digitais
receber o transporte proveniente da soma imediatamente anterior (carry in, em inglês), a rigor as
três entradas são absolutamente equivalentes sob o ponto de vista funcional. A tabela verdade
para a soma completa é mostrada a seguir, juntamente com o mapa de Karnaugh e as equações
mı́nimas resultantes para S e Cn+1 . A seguir temos um circuito para o somador completo.
Este circuito lógico representa um somador completo sendo representado por portas lógicas
simples. Esta soma é de somente dois bits, entretanto seria inviável se toda vez que fosse fazer
um circuito somador de 4 bits fosse necessário o uso de tantas portas lógicas. Com isso, depois
de aplicar a tabela verdade do circuito no mapa de karnaugh, podemos ver que o seu circuito fica
simplificado.
Repare que o somador completo mais a direita, podendo também ser chamado de FAD0
(Full Adder 0), também possui uma entrada Cin. Como inicialmente não existe um valor de
transporte a ser somado aos dı́gitos menos significativos, A0 e B0 , esta entrada deverá estar
constantemente ligada a zero, através do terra do circuito. Já a saı́da de transporte Cout do dı́gito
mais significativo, serve para indicar se o resultado da adição entre A e B pode ser representado
em quatro bits ou cinco bits. Caso o resultado não possa ser representado em quatro bits, Cout
irá exibir o valor 1; Essa situação é chamada de overflow.
Observe também que, uma vez que um novo par de valores A e B é fornecido ao circuito
somador, as últimas duas saı́das a se estabilizarem são S3 e o Cout mais a esquerda, uma vez
que estas dependem de Cout do anterior, sendo este dependente da estabilização de Cout do seu
anterior e assim por diante. Desta forma, pode-se aproximar o atraso deste somador como sendo
proporcional ao número de estágios (número de somadores completos em cascata). Com efeito, a
propagação do transporte ou carry ao longo da cadeia de somadores é o ponto fraco deste tipo de
somador. Existem outros tipos de somadores capazes de operar mais rapidamente, mas que não
serão abordados aqui.
A construção de um somador para operar dois números binários de n bits requer o uso de n so-
madores completos, conectados segundo a mesma topologia mostrada na figura 17.5 É importante
ressaltar que tal somador pode operar dois números inteiros quaisquer, positivos ou negativos,
desde que ambos estejam representados em complemento de 2.
Cartões Digitais
17.1.2 Somador/Subtrator
A subtração de dois números inteiros em binário pode ser feita utilizando-se a seguinte fórmula:
Onde todas as operações são aritméticas, exceto , que representa a complementação de B, bit
a bit. A figura a seguir mostra um circuito somador/subtrator de quatro bits. Esse circuito é
originado do somador paralelo de quatro bits, porém com a adição de portas ou-exclusivo nas
entradas associadas a B, de modo a permitir a negação individual de cada bit de B.
A tabela que segue mostra o funcionamento deste circuito, em função dos sinais de controle
seletor e Carry in A.
O exemplo do que ocorre com o somador paralelo apresentado na seção anterior, também o
somador/subtrator pode operar dois números inteiros quaisquer, positivos ou negativos, desde
que tais números estejam representados em complemento de dois.
Caso os dois números a serem operados estivessem representados em sinal-magnitude, por
exemplo, seria necessário existir um circuito para testar o sinal de cada número e comparar as
magnitudes, para só então realizar a soma ou a subtração. Como isso representaria a necessidade
de um hardware mais complexo, e possivelmente mais caro e mais então, a representação em
complemento de dois é dominantemente utilizada nos computadores atuais.
O uso do complemento dois significa a soma do bit ”1”a uma palavra em complemento um.
E ainda a palavra em complemento um significa que ela tem seus bits invertidos, ou seja, se na
palavra original era ”1”com o complemento passará a ser ”0”.
Em primeiro lugar, a verificação de que dois valores são iguais é feita usando a propriedades
da por ta não-ou-exclusiva. Conforme pode ser observado na tabela abaixo, quando os dois bits
de entrada são iguais, a saı́da é ’1’.
A B S
0 0 1
0 1 0
1 0 0
1 1 1
Assim sendo, para comparar dois valores basta aplicar os bits correspondentes das duas pa-
lavras em portas não-ou-exclusivas e aplicar o resultado de todas as portas em uma porta ”E”.
Abaixo temos um exemplo de circuito para comparar se dois valores de 4 bits (A e B) são iguais,
apresentando ’1’ na saı́da ”A=B”caso sejam.
Já para identificar qual dentre dois valores A e B de 4 bits é maior, usa-se o seguinte raciocı́nio:
Esse mesmo raciocı́nio pode ser aplicado para quantos bits se queira comprar e pode ser
implementado através de circuitos combinacionais.
Um exemplo de circuito integrado para comparar valores de 8 bits é o 74682, cujo circuito
interno é apresentado a seguir.
Cartões Digitais
Capı́tulo 18
Caderno de Experiências
Referências:
• Circuitos Aritméticos
Material Necessário:
• Módulo XD200M04.02.01
Introdução:
Como se pode observar, à medida que a complexidade das operações matemáticas é maior os
circuitos necessários aumentam. Isso ocorre também com o aumento do número de bits envolvidos
na operação. Para solucionar esses problemas foram desenvolvidos circuito integrados capazes de
realizar diversas operações lógicas e aritméticas, envolvendo palavras de 4 ou 8 bits. Esse circuito
é chamado de ULA - Unidade Lógica Aritmética (em inglês ALU - Arithmetic Logic Unit). Por
esse nome também se designa o blocos interno responsável por operações lógicas e aritméticas em
processadores e microcontroladores.
Uma ULA tipicamente tem duas palavras de entrada (4 ou 8 bits) e uma palavra de saı́da
(4 ou 8 bits, respectivamente). A seleção da operação a ser realizada é feita através de entradas
com esses fins. Adicionalmente, podem ser encontrados saı́das que indicam se o resultado é igual
a zero, se ouve estouro da capacidade de representação, comparação se os valores de entrada são
iguais, qual o maior, etc...
Quando se trata de operações aritméticas, as palavras de entradas são consideradas como
valores inteiros, isto é, internamente existe carry que o resultado de um bit influencie o resultado
do seguinte. No caso das operações lógicas, os bits são tratados individualmente, respeitando-se
apenas a posição dos bits nas duas palavras.
Cartões Digitais
Questionário:
1. Execute as seguintes operações (quando ocorrem valores negativos, utilize a notação com-
plemento 2):
Exercı́cios
• Leia com atenção o manual da ALU 74LS181. Em sua tabela da verdade, faça a análise
usando sempre lógica não-invertida (high)
• O módulo possui duas ALUs agrupadas. Para esse exercı́cio utilize apenas uma, apli-
cando os sinais de A0 a A3 e de B0 a B3
(c) E: A and B
i) 2 + 3 =
ii) 8 + 8 =
iii)5 + 4 =
Cartões Digitais
Exercı́cios Propostos
Capı́tulo 19
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
19.1 Hardware
O módulo XD200M04.02.01 será de grande utilidade na aplicação de circuitos combinacionais
de lógicas aritméticas. Composto por circuitos integrados capazes de realizar essas operações, ele
irá explorar a ALU (Unidade Lógica Aritmética).
Sua placa está disposta de 3 circuitos integrados com suas respectivas carac-
terı́sticas:
Utilizando o módulo XD200M04.02.01 ao circuito de sua escolha, você poderá trabalhar estas
principais funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias
para cada experiência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
20.1 XD200M04.02.01
1 2 3 4
CARRY
Inputs A Inputs B
A0 B0 TP1
TP2 TP3
A
A1 B1 P G A
5V 5V
TP4 TP5 IC1 IC2
TP6
TP7
A2 B2 CN.1 7 24 CN.2 7 24
Cn VCC Cn VCC
12 12
GND GND
TP8 TP9 S0 6 16 CN+4.1100nF
C1 S0 6 16 100nF
C2
S0 Cn+4 S0 Cn+4
A3 B3 S1 5 S1 5
S1 S1
S2 4 GND S2 4 GND
S2 S2
TP10 TP11 S3 3 17 S3 3 17
S3 G S3 G
A4 B4 M1 8 15 M1 8 15
M P M P
14 5V 14 5V
A=B A=B
TP12 TP13 A0 2 A4 2
A0 A0
A5 B5 B0 1 9 R1 1K 5% B4 1 9 R2 1K 5%
B0 F0 B0 F0
A1 23 F0 A5 23 F4
A1 1K 5% A1
TP14 TP15 B1 22 10 R3 B5 22 10 R4 1K 5%
B1 F1 B1 F1
A6 B6 A2 21 F1 A6 21 F5
A2 1K 5% A2
B2 20 11 R5 B6 20 11 R6 1K 5%
B2 F2 B2 F2
TP16 TP17 A3 19 F2 A7 19 F6
A3 1K 5% A3
A7 B7 B3 18 13 R7 B7 18 13 R8 1K 5%
B3 F3 B3 F3
F3 F7
B B
TP18 TP19 74LS181 74LS181
IC3
B0 2
P0
B1 4
P1
B2 6
Alimentação P2
B3 8
P3 B=A
-12 B4 11 5V
P4
TP20 B5 13 19 CH1
P5 P=Q
F0 B6 15 1 8 S0 R9 1K 5%
P6
+12 B7 17 TP21 2 7 S1 R10 1K 5%
P7
TP23 TP22 3 6 S2 R11 1K 5%
F1 A0 3 4 5 S3 R12 1K 5%
Q0 B>A
+5 A1 5
Q1
TP25 TP24 A2 7 1
Q2 P>Q
F2 A3 9 5V GND
Q3
A4 12 TP26 CH2
C Q4 C
TP28 TP27 A5 14 20 1 8 M1 R13 1K 5%
Q5 VCC
F3 A6 16 10 2 7 CN.1 R14 1K 5%
Q6 GND
A7 18 3 6 CN.2 R15 1K 5%
100nF
Q7
TP29 CN+4.1 R16 100R 5% 4 5
C3
F4 74LS682
GND
TP30
F5
GND
TP31
F6 Espaçador
TP32
F7
TP33
TP34
Title:
TP35 ALU e COMP. MAGNITUDE
Size: Projeto: Rev.:
D D
XD200MB04.02.01.RevH.PrjPcb
TP36 A4 Approved by: G
Caroline M Monti
Date: Drawn By:
TP37 10/06/2015 Mário Augusto Mota
Filename: Sheet:
XD200MB04.02.01.RevH.SchDoc 1 of 1
1 2 3 4
Cartões Digitais
Cartões Digitais
Capı́tulo 21
Contadores
Quando usamos a eletrônica digital, devemos separar os circuitos lógicos sem sincronismo da-
queles que possuam algum tipo de sincronismo externo, ou seja, que usam um sinal de CLOCK.
Existem aplicações em que tudo o que importa para o circuito é fazer uma operação com de-
terminados nı́veis lógicos aplicados à sua entrada, quando eles estão presentes, não importando
quando isso ocorra. Tais circuitos não precisam de sincronismo algum e são mais simples de serem
utilizados.
No entanto, com circuitos muito complexos, como os utilizados em computadores, o instante
em que uma operação deve ser realizada é muito importante e isso implica em que os circuitos
devam ser habilitados no instante em que os nı́veis lógicos são aplicados em sua entrada. Isso
significa que tais circuitos devem ser sincronizados por algum tipo de sinal vindo de um circuito
externo. E este circuito nada mais é do que um oscilador que produz um sinal de clock ou relógio.
Os circuitos que operam com estes sinais são denominados circuitos com lógica sincronizada ou
contadores. Os contadores são dispositivos lógicos cuja função é realizar a contagem binária, seja
em ordem crescente ou decrescente. Para os contadores temos então diversas classificações que
levam em conta estes e outros fatores, por exemplo:
A frequência estará dividida por quatro na saı́da do segundo e por oito na saı́da do terceiro.
Mas, se elaborarmos uma tabela verdade com os nı́veis lógicos obtidos na saı́da de cada um dos
flip-flop’s, a cada pulso do clock aplicado, a partir do instante em que todas as saı́das sejam zero,
teremos algo interessante a considerar:
Clock Qc Qb Qa
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
Veja que a seqüência de valores obtidos 000, 001, 010, 011, 100, 101, 110 e 111 corresponde
justamente à contagem em binário dos pulsos de zero até sete. Isso significa que este circuito
conta os pulsos de entrada e fornecem saı́das que é a representação binária desta contagem.
Veja também que ele faz a contagem crescente, ou seja, de zero até sete. Se, em lugar de três
flip-flops, usarmos quatro, teremos a contagem de 0000 a 1111, ou seja, uma contagem crescente
de zero a quinze pulsos. Oito desses flip-flops ligados em série podem contar até 256 pulsos e com
isso fornecer uma saı́da de 8 bits ou 1 byte.
Vamos supor agora que em lugar de usarmos como saı́das de contagem as saı́das Q de todos os
flip-flop, usássemos as saı́das complementares Q’. É fácil perceber que, partindo da situação em
Cartões Digitais
que todos os flip-flops estejam resetados, a tabela verdade obtida terá nas saı́das os complementos
da tabela anterior. Esta tabela será:
Portanto, este contador fornece em sua saı́da, valores binários que correspondem à contagem
decrescente dos pulsos de entrada, partindo de sete. Trata-se de um contador decrescente ou
DOWN COUNTER. Como no caso anterior, se tivermos mais flip-flop’s, podemos contar a partir
de valores mais altos. Com quatro flip-flop’s podemos partir a contagem de quinze e com oito
flip-flop’s, de 255. Veja que a quantidade máxima que podemos contar com um contador deste
tipo depende da quantidade de flip-flop’s usados.
Um problema que ocorre com este tipo de flip-flop é que cada um precisa de certo tempo
para mudar de estado. Isso significa que à medida que usamos mais flip-flop’s em seqüência
num contador, os tempos de mudança de estado são somados e o conjunto precisa cada vez de
mais tempo para chegar ao estado final desejado. Se aplicarmos um novo pulso de clock para
contagem à entrada do circuito, antes de ocorrer a mudança de estado do conjunto, pode ocorrer
um funcionamento errático. Assim, a freqüência máxima de operação de um contador é dada pelo
tempo necessário para cada estágio mudar de estado multiplicado pelo número de estágios usados
no contador.
Clock Qc Qb Qa
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6(estado instável) 0 0 0
No sexto pulso que corresponde ao estado 110(2) , o circuito vai a um estado que ativa a entrada
clear e leva todos os flip-flop’s a serem resetados. Para este circuito a solução é simples. Veja que
a situação em que devemos ter a volta à zero da contagem e, portanto, a ativação da linha CLR
(clear) ocorre com uma única combinação de sinais: QC e QB no nı́vel alto. Se usarmos flip-flop’s
que tenham entradas ”clear”ativadas pelo nı́vel alto, basta usar uma porta AND de duas entradas
com as entradas ligadas nas saı́das QB e QC e a saı́da na linha comum de CLEAR de todos os
flip-flop’s, conforme abaixo.
Se os flip-flop’s usados tiverem um clear ativado no nı́vel baixo, basta usar uma porta NÃO-E
em lugar de E. Se quiséssemos um contador até quatro, por exemplo, o estado em que deveria
ocorrer a ativação da entrada clear ocorreria com a quinta combinação de saı́das, 101(2) , o que
significa QC=1 e QA=1. Bastaria então ligar as entradas da porta E nessas saı́das, conforme a
figura.
Seguindo a mesma analogia dos circuitos anteriores, observe que, quando as saı́das chegarem
ao estado 110(2) , que seria a contagem do sexto pulso no circuito da figura 21.3, um pulso de
reset de curta duração é produzido. Esta curta duração é dada justamente pelo tempo que os
flip-flop’s demoram a mudar de estado resetando, pois eles ”realimentam”as entradas da porta
E. Nos exemplos dados, fizemos a programação da contagem usando as entradas de clear de cada
flip-flop.
Uma outra maneira de projetarmos um contador consiste em usarmos as entradas ”preset”em
lugar de ”clear”. Para isso fazemos com que, no momento em que for atingida a contagem do
valor imediatamente anterior àquele em que deve ocorrer a volta a zero, ou seja, n-1, em lugar de
termos a comutação dos flip-flop’s, tenhamos a ativação das entradas de ”preset”. Desta forma,
Cartões Digitais
no pulso seguinte de clock teremos a volta a zero (reset) do contador. Para um contador de seis
estados, que depois do quinto pulso reseta, teremos a seguinte tabela verdade.
Pulsos Qc Qb Qa
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
- x x x O Preset é acionado
6 0 0 0 Volta a Zero na transição de clock
7 0 0 1
Veja que a detecção da condição de produção do pulso de ”preset”deve ser reconhecida com os
nı́veis 101(2) nas saı́das dos estágios dos contadores e com o pulso indo ao nı́vel alto na entrada de
contagem. Para obtermos a configuração 1111(2) que nos permitiria usar uma porta E de quatro
entradas, basta levar em conta a saı́da QB’ em lugar de QB. Assim, basta usar a porta E e ligá-la
nas entradas de ”preset”dos flip-flop’s. Se as entradas forem ativadas no nı́vel baixo (PR’), basta
trocar a porta E por uma porta NÃO-E de quatro entradas.
Isso significa que o segundo flip-flop só mudará de estado quando o primeiro flip-flop for
resetado, ou seja, a cada dois pulsos de clock. Da mesma forma, com o uso de uma porta E, o
terceiro flip-flop só vai mudar de estado quando as saı́das Q do primeiro e segundo flip-flop forem
ao nı́vel um, ou seja, a cada quatro pulsos de clock.
Cartões Digitais
Para quatro bits, utilizando quatro estágios podemos ter um problema que ocorre com este
tipo de configuração, pois é que a partir de três estágios, a cada estágio que acrescentamos no
contador devemos adicionar uma porta E cujo número de entradas vai aumentando. Assim, para
quatro estágios, a porta deve ter três entradas, para cinco estágios, quatro entradas e assim por
diante. Uma maneira de não termos este problema consiste em usar uma configuração diferente
de contador apresentada abaixo e denominada RIPPLE CARRY.
Neste circuito as portas usadas sempre precisam ter apenas duas entradas, o que é importante
para a implementação prática do contador. No entanto, como desvantagens deste circuito, têm
uma limitação da velocidade de operação, pois como o sinal para os estágios vem da porta anterior,
temos de considerar seu atraso.
Cartões Digitais
Capı́tulo 22
Caderno de Experiências
• Contadores
Material Necessário:
• Módulo XD200M05.02.01
Os circuitos contadores são subsistemas sequenciais que fornecem em suas saı́das um conjunto
de nı́veis lógicos numa sequência predeterminada, correspondente a modos de contagem preesta-
belecidos. A este conjunto de nı́veis lógicos dá-se o nome de estados internos do contador. O
contador é formado basicamente por flip-flops e, portanto, a velocidade da sequência gerada é de-
terminada pela frequência dos pulsos de clock. Sua caracterı́stica assı́ncrona se deve ao fato de que
a saı́da do flip-flop anterior gera o clock de referência para o flip-flop seguinte, deste modo cada um
dos flip-flops envolvidos são acionados sequencialmente em tempos diferentes, caracterizando-se
assim a assincronia.
Questionário:
1. Explique qual fator caracteriza um contador como assı́ncrono.
Exercı́cios:
Exercı́cios propostos:
1. Projete um contador assı́ncrono que conte de 2 até 7, repetindo essa contagem indefinida-
mente. Apresente o diagrama em blocos e a tabela da verdade
Referências:
• Contadores
Material Necessário:
• Módulo XD200M05.02.01
Introdução:
Contadores integrados são constituı́dos de flip-flops como qualquer outro contador, mas a pos-
sibilidade de ter esse mesmo dispositivo integrado em um só chio vem a simplificar o circuito, bem
como diminuir custos. Desse modo se torna importante entender à diferenciação destes dispositi-
vos bem como seu funcionamento, modos de associação em série e outras possibilidades.
Questionário:
Exercı́cios:
Exercı́cios propostos:
1. Projete um contador assı́ncrono que conte de 0 até 7, repetindo essa contagem indefinida-
mente. Apresente o diagrama em blocos e a tabela da verdade
Capı́tulo 23
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
23.1 Hardware
Utilizando o módulo XD200M05.02.01, você estará disposto de uma ferramenta capacitada a
trabalhar os dispositivos lógicos, cuja função é realizar uma contagem binária. O módulo contém
os principais dispositivos utilizados como base para os contadores, que são os Flip Flops.
Sua placa está disposta de 6 circuitos integrados para trabalhar estas funções:
Utilizando o módulo XD200M05.02.01 ao circuito de sua escolha, você poderá trabalhar estas
principais funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias
para cada experiência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
24.1 XD200M05.02.01
Cartões Digitais
Cartões Digitais
Cartões Digitais
Capı́tulo 25
25.1 Barramento
Há situações onde se deseja conectar diversos dispositivos entre si, de forma que apenas dois
deles troquem informações por vez. Nestes casos, pode ocorrer de um dispositivo escrever em
vários outros, um dispositivo ler vários outros ou existir acesso bidirecional em vários dispositivos.
O meio de união geral por onde trafegam os dados de controle e informação é denominado de
Barramento.
O barramento é um meio comum de comunicação a todos os dispositivos de um sistema com-
binacional ou computacional. Mas devido a dificuldades de conexões elétricas esses dispositivos
não executam acesso direto ao meio, eles o fazem a partir de dois dispositivos que executam a
escrita e leitura de dados no barramento, são eles os Buffer’s Tri-state e os Latch’s.
25.2 Buffer
Como já foi visto, existem componentes com a função de buffer tri-state, isto é, o driver de
saı́da do dispositivo pode ser desligado por um pino de controle. Dessa maneira, o sinal presente
na entrada do buffer é transferido para a saı́da se o controle estiver ativo ou a saı́da permanece
em estado de alta impedância (Hi-Z) se controle se estiver desativado. Isso nos permite ligar
diversas saı́das entre si e acionar apenas uma por vez, por operar em estado de alta impedância
(Hi-Z) estão asseguradas as interconexões elétricas de vários dispositivos no mesmo barramento.
A figura abaixo demonstra essa ideia.
25.3 Latch
Denomina-se latch o componente formado por flip-flop´s tipo D que retém em sua saı́da o
estado encontrado em sua entrada a partir da ultima atualização. Esse dispositivo é comumente
utilizado como meio de acesso controlado ao barramento, podendo ter suas entradas interligadas
a demais outros dispositivos, sendo que pode controlar-se o dispositivo a ser acionado, ressalta
ainda o efeito memória apresentado por esse dispositivo que manterá o ultimo valor assumido
até a próxima atualização. Sua aplicação no barramento é como porta de acesso ao meio de
comunicação, em outras palavras porta de leitura de dados.
Esquema de montagem de Latch-D usando portas lógicas Não-E:
E D OUT
0 X Qant
1 1 1
1 0 0
Capı́tulo 26
Caderno de Experiências
Referências:
Material Necessário:
• Módulo XD200M06.02.01
Introdução:
Há situações onde se deseja conectar diversos dispositivos entre si, de forma que apenas dois
deles troquem informações por vez. Nestes casos, pode ocorrer de um dispositivo escrever em
vários outros, um dispositivo ler vários outros ou existir acesso bidirecional em vários dispositivos.
Nesta situação são criados barramentos com a ajuda de buffer´s tri-state e latch´s.
Como já foi visto, existem componentes com a função de buffer tri-state, isto é, o driver de
saı́da do dispositivo pode ser desligado por um pino de controle. Dessa maneira, o sinal presente
na entrada do buffer é transferido para a saı́da se o controle estiver ativo ou a saı́da permanece em
estado de alta impedância (Hi-Z) se controle se estiver desativado. Isso nos permite ligar diversas
saı́das entre si e acionar apenas uma por vez.
Questionário:
Exercı́cios
1. Funcionamento do buffer tri-state 74LS244: conecte uma chave a entrada I1.0 e outra a
entrada de controle G1.1. Com um osciloscópio observe no sinal I/O.0 o funcionamento do
buffer tri-state, testando todas as opções de sua tabela da verdade.
2. Funcionamento do Lacth74LS573: conecte uma chave ao sinal I/O.0, outra a OC.1 e outra
em C.1. Meça com um osciloscópio o sinal em O1.0, realizando todas as combinações da
tabela da verdade do componente.
Capı́tulo 27
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
27.1 Hardware
Fazendo uso do módulo XD200M06.02.01, você estará disposto de uma ferramenta capacitada
a trabalhar as funções de Buffer e Latch. O módulo contém os principais dispositivos utilizados
como base para estas funções.
Utilizando o módulo XD200M06.02.01 ao circuito de sua escolha, você poderá trabalhar estas
funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias para
cada experiência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
28.1 XD200M06.02.01
Cartões Digitais
Cartões Digitais
Capı́tulo 29
Os flip-flop’s são elementos lógicos que podem apresentar em seu funcionamento apenas dois
estados estáveis. Não existem estados intermediários entre estes dois estados. A aplicação de um
sinal de entrada pode mudar o dispositivo de um estado para outro e como a qualquer momento
podemos saber qual é o estado em que ele se encontra, é possı́vel considerar este circuito como
uma memória capaz de armazenar um bit. O flip-flop é o elemento básico das chamadas memórias
estáticas. Existem diversos tipos de flip-flop’s encontrados nos circuitos digitais e o analisaremos
adiante.
29.1 Flip-Flop RS
O Flip-Flop RS (de Reset e Set) tem sua configuração com transistores mostrada na figura a
seguir e funciona da seguinte maneira: Quando alimentamos o circuito, dada às poucas diferenças
que podem existir entre as caracterı́sticas dos dois transistores, um deles conduzirá mais do que
o outro. Supondo que este transistor seja Q1 , há uma queda de tensão no seu coletor que reduz
em consequência a corrente que polariza a base de Q2 via R2 . Nestas condições, a tensão do
coletor de Q2 se mantém alta, realimentando a base de Q1 via R3 e a situação final do circuito
é estabelecida: Q1 satura e Q2 fica no corte. O flip-flop encontra seu estado estável inicial. O
flip-flop R-S tem duas saı́das representadas por Q e Q , assim, na condição inicial estável, com
Q1 conduzindo, Q estará no nı́vel baixo (0) e Q estará no nı́vel alto (1).
O processo que leva o flip-flop a este estado inicial pronto para funcionar é muito rápido,
não demorando mais do que alguns microssegundos. Quando o flip-flop se encontra na situação
indicada, com Q=0 e Q , dizemos que ele se encontra ”setado”ou armado. A mudança de estado do
flip-flop pode ser obtida aplicando-se um sinal conveniente na entrada. Como usamos transistores
NPN para comutar o flip-flop, temos de fazer conduzir por um instante o transistor que está
cortado, ou seja, devemos aplicar um pulso positivo na entrada correspondente. Assim, estando
o flip-flop na condição indicada, se desejarmos mudar o estado, aplica-se o pulso na entrada SET.
O transistor Q2 conduz por um instante, realimentando via R3 a base de Q1 que é cortado.
Com o corte, a tensão na base de Q2 sobe via polarização de R2 e mesmo que o pulso de disparo
desapareça, o circuito se mantém no novo estado graças à realimentação. Sua saı́da Q vai ao nı́vel
(1) e a saı́da Q vai ao nı́vel (0). Para trocar novamente de estado o flip-flop R-S, aplicamos um
pulso positivo na entrada RESET, levando Q1 à saturação e Q2 ao corte, situação que se firma
mesmo depois de desaparecido o pulso graças à realimentação proporcionada pelos resistores.
Cartões Digitais
Veja que um pulso aplicado à entrada SET, correspondendo a um bit 1, faz com que a saı́da Q
que estava em zero passe a um, armazenando este bit. O flip-flop funciona realmente como uma
memória para este bit.
Da mesma forma como utilizamos transistores bipolares NPN para obter um flip-flop, podemos
também empregar outros tipos de componentes em configurações semelhantes podemos elaborar
flip-flop’s usando transistores PNP, caso em que a polaridade dos sinais de disparo vai ser invertida.
Da mesma forma, podemos usar transistores de efeito de campo, tanto de canal N como canal
P (bipolares ou JFET’s) como também transistores de efeito de campo MOS com os dois tipos
de canal (N ou P). O que mudará em cada caso é o sentido de circulação das correntes e as
polaridades dos sinais aplicados.
Como observamos os flip-flop’s também podem ser feitos com válvulas e na realidade os pri-
meiros que existiram eram justamente montados com estes componentes. Naquela época não
existiam transistores e nem circuitos integrados. Os flip-flop’s podem ser elaborados com por-
tas lógicas e o RS que estudamos pode ser facilmente obtido a partir de duas portas E de duas
entradas.
Levando em conta as tabelas verdade das portas NÃO-E vemos que a saı́da da primeira porta
realimenta a segunda e vice-versa, garantindo assim a continuidade dos estados obtidos quando
o flip-flop comuta. No entanto, a comutação deste circuito ocorre quando as entradas passam do
nı́vel alto para o baixo, ou seja, de um para zero. Esta condição é indicada pelos sı́mbolos R’ e S’
nas entradas.
Cartões Digitais
Então, quando as entradas estão ambas no nı́vel baixo, o flip-flop se mantém no estado em que
foi colocado por ser ligado ou por uma comutação anterior. Por outro lado, se as entradas forem
levadas simultaneamente ao nı́vel alto, o flip-flop irá para um estado indeterminado que deve ser
evitado. Na prática, a aplicação de nı́veis altos nas duas entradas pode destruir o dispositivo.
O diagrama de tempos mostrados abaixo nos permite mostrar o que ocorre no funcionamento
de um flip-flop por etapas, sendo analisados da seguinte forma:
• a. Flip-Flop resetado.
Tudo isso pode ser representado por uma tabela verdade, da mesma forma que fazemos com
as funções lógicas. Nesta tabela temos algumas nomenclaturas que devemos nos familiarizar e
que são amplamente usadas, a saber:
• Primeira possibilidade
• Segunda possibilidade
R S QN +1 Qn+1
0 0 Qn Qn
0 1 1 0
1 0 0 1
1 1 X X
Temos ainda que ver que a ultima condição não é aceita pois poderia danificar o equipamento.
Ainda, igualmente com o que fizemos na representação dos somadores, existe uma forma de
representar este tipo de circuito lógico através de uma figura simples.
Como as saı́das acompanham as entradas, durante o tempo em que o clock as habilita, estas
saı́das podem mudar de estado mais de uma vez, voltando assim ao estado inicial, o que não é
desejado de forma alguma. Um modo de contornar este problema consiste na utilização de duas
etapas numa configuração mais complexa.
• tH: Hold Time ou Tempo de Manutenção é o tempo em que a entrada deve permanecer
ainda no circuito para que seu nı́vel lógico seja reconhecido pelo flip-flop.
• tS: Setup Time ou tempo em que a entrada do flip-flop deve permanecer no estado desejado
antes da transição do clock que vai provocar a mudança de estado do circuito. Duas entradas
podem ser acrescentadas neste circuito, dotando-o de recursos importantes para aplicações
práticas.
Uma das entradas é denominada PRESET (PR’) ou pré-ajuste e tem por função levar imedi-
atamente as saı́das do circuito a um estado determinado (Q=1 e Q =0), independentemente do
que estejam acontecendo nas demais entradas. Sua ativação ocorre quando PR’ estiver em zero e
CLR’ em um, no caso apresentado, pois o sı́mbolo ’ sobre a identificação indica que ela está ativa
no nı́vel baixo.
A outra entrada denominada CLEAR ou apagamento tem por função levar as saı́das aos
estados Q=0 e Q’=1, independentemente do que estiverem ocorrendo nas demais entradas. Como
as entradas PRESET e CLEAR produzem resultado independente do estado da entrada de clock,
estas são chamadas de entradas assı́ncronas; Em oposição, as entradas R e S que são sı́ncronas,
isto é, sincronizadas com o sinal de clock.
É importante observar que estas duas entradas não podem ser ativadas ao mesmo tempo, pois
isso levaria o circuito a um estado indeterminado que inclusive poderia causar problemas aos seus
componentes.
Ao construirmos a tabela verdade para este circuito, teremos três novos sı́mbolos que são
normalmente usados em representações de eletrônica digital. ”X”representa uma condição irrele-
vante qualquer que ela seja não haverá influência no que ocorre na saı́da. A seta para cima indica
a transição do nı́vel baixo para o nı́vel do sinal na entrada ou saı́da representadas. Já a seta apon-
tando para baixo indica uma transição do nı́vel baixo para o nı́vel alto do sinal correspondente.
Cartões Digitais
Um problema observado no flip-flop RS é que temos uma situação ”proibida”que ocorre quando
as entradas R e S vão ao nı́vel alto ao mesmo tempo e que pode levar o circuito a um estado
indeterminado. Esta situação acontece principalmente nas aplicações em computação, quando
uma parte do sinal de saı́da é usada para realimentar a entrada.
Nestas condições podem ocorrer as situações de conflito com a produção de oscilações inde-
sejadas. Esta situação pode ser contornada com a utilização de uma nova configuração, que é
justamente a do flip-flop JK utilizada nas aplicações práticas e que analisaremos a seguir. Pode-
mos ter quatro combinações possı́veis para os sinais aplicados nas entradas J e K e analisemos
cada uma das combinações:
• J=0 e K=0: Quando a entrada de clock (CLK) passa por uma transição negativa do sinal,
o flip-flop mantém sua condição original, ou seja, não muda de estado.
• J=1 e K=0: Quando a entrada de clock (CLK) passa por uma transição negativa, o
flip-flop é ”setado”. Se já estiver setado, ele permanece nesta condição.
• J=0 e K=1: Quando a entrada de clock (CLK) passa por uma transição negativa, o
flip-flop é ”resetado”. Se já estiver nesta condição, ele permanece.
• J=1 e K=1: Nesta condição, ao receber uma transição negativa na entrada de clock (CLK),
o flip-flop muda de estado (TOGGLE). Se estiver setado, ele reseta e se estiver resetado, ele
é setado.
Podemos elaborar a tabela verdade para indicar o que ocorre com este flip-flop. Observe o uso
das setas para indicar as transições de sinal na entrada de clock que comandam o funcionamento
deste tipo de circuito. Da mesma forma que nas outras configurações estudadas, podemos também
incluir as entradas de PRESET e CLEAR neste circuito.
• Neste instante CLR e PR estão no nı́vel baixo, Q e Q’ estão no nı́vel alto, que é uma condição
não permitida;
• Aplica-se então o sinal PR, que indo ao nı́vel alto, faz com que o flip-flop seja resetado;
• A aplicação de um pulso na entrada CLR que vai ao nı́vel alto, e a ida de PR ao nı́vel baixo
fazem agora com que o flip-flop seja setado;
• CLR e PR são mantidos no nı́vel alto a partir deste instante. Com J=0 neste trecho e K
indo ao nı́vel alto, o flip-flop será resetado na próxima transição negativa do sinal de clock;
• Ainda com CLR e PR no nı́vel alto (esta condição se manterá daqui por diante) e a saı́da
J=0 e k=1, o flip-flop permanecerá resetado;
• Com J=1 e K=1 na transição seguinte do pulso de clock, o flip-flop muda de estado (com-
plementa ou ”toggle”). Se estiver resetado, como neste caso, ele é setado;
• Mantendo J=1 e K=1 com nova transição do pulso de clock, o flip-flop muda de estado
outra vez, ou seja, complementa. Veja que quando as entradas J e K estão no nı́vel alto, o
circuito se comporta como um disparador, mudando de estado a cada transição negativa do
pulso de clock.
Cartões Digitais
A Qn+1
1 1
0 0
No entanto, quando a entrada T está no nı́vel alto, o flip-flop muda de estado. Se estiver
setado, ele reseta e se estava resetado, ele seta. Este comportamento significa na realidade a
divisão da frequência de clock por dois. Em outras palavras, este circuito se comporta como um
divisor de frequência, encontrando aplicações práticas bastante importantes em eletrônica digital.
Acima temos algumas conversões que podem ser feitas utilizando-se flip-flop’s do tipo RS.
O modo de funcionamento de cada um pode ser facilmente entendido se associarmos as tabelas
verdade dos flip-flop’s estudados às tabelas verdade das portas agregadas, considerando os sinais
de realimentação. De outra forma também podemos obter flip-flop’s tipo D e T a partir de
flip-flop’s do tipo JK. Veja que a simples conexão da entrada K ao J no flip-flop do tipo J-K
Cartões Digitais
o transforma em um flip-flop tipo T. Esta possibilidade é muito interessante, já que flip-flop’s
J-K são disponı́veis em tecnologia TTL e CMOS e podem ser usados em circuitos divisores de
frequência.
Capı́tulo 30
Caderno de Experiências
Referências:
Material Necessário:
• Módulo XD200M07.02.01
• Módulo XD200M01
Introdução:
Vimos anteriormente o funcionamento de uma lógica combinacional, ou ainda, uma lógica para
a qual a saı́da é pré-determinada de forma unı́voca pelas entradas. Estes circuitos apresentam
um grave problema, que é a ausência de memória sobre os estados anteriores. Todo o desenvol-
vimento computacional e de comunicações digitais está suportado pela concepção de memória.
Este computador, por exemplo, depende da existência de contadores, osciladores, somadores e
toda uma lógica que depende, fundamentalmente, da existência de conhecimento sobre os estados
anteriores do sistema em função do tempo, ou seja, memória.
Existem distintos tipos de memória, porém, a lógica de todas elas está associada a circuitos
oscilantes, chamados de flip-flop, que podem alternar sua saı́da (estados flip ou flop, p.e.) em
função dos parâmetros de entrada e do tempo decorrido. O conceito de tempo está associado a
pulsos de um relógio (clock), que vai alternar estados entre zero e um, com uma frequência pré-
determinada, e será utilizado na propagação temporal da informação. O objetivo fundamental
desta aula é entender como podemos armazenar informação em uma estrutura eletrônica, e como
retransmitir esta informação em tempos (pulsos de clock) posteriores.
Cartões Digitais
Questionário:
Exercı́cios:
• Flip-flop RS Assı́ncrono :
• Flip-flip RS Sı́ncrono
– Flip-flop RS Assı́ncrono :
– Flip-Flop T
– Flip-Flop D
Cartões Digitais
Cartões Digitais
Capı́tulo 31
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
31.1 Hardware
O módulo XD200M07.02.01 apresenta ao usuário a possibilidade de trabalhar os circuitos Flip
Flop’s, muito utilizados como base para a construção de circuitos mais complexos como certos
tipos de memórias.
Utilizando o módulo XD200M07.02.01 ao circuito de sua escolha, você poderá trabalhar estas
funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias para
cada experiência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
32.1 XD200M07.02.01
Cartões Digitais
Cartões Digitais
Capı́tulo 33
Multiplexadores e Demultiplexadores
Também é possı́vel encontrar diversos circuitos integrados em tecnologia CMOS ou TTL que
contêm estas funções, alguns operando até com sinais analógicos.
sinais de entrada cada um no seu tempo. Com isso, temos partes do tempo em que a saı́da ficará
com uma entrada, e depois com outra e outra, fazendo a multiplexação das entradas em uma só
saı́da. Circuitos multiplexadores são empregados nos circuitos digitais sempre que se deseja usar
o mesmo condutor elétrico (ou o mesmo barramento) para transportar, de cada vez, um dentre
diversos sinais possı́veis. Observe abaixo o seguinte circuito multiplexador
Do lado esquerdo estão às entradas, E0 a E7. Acima, os três terminais do dispositivo de
controle, que podem receber valores (em binário) variando de zero (000) a sete (111). Os valores
de cada terminal de controle C0 ,C1 e C2 , assim como seus complementos (resultados da saı́da de
cada um deles submetido a uma porta NÃO) e os valores das entradas são encaminhados a oito
portas E cujas saı́das se juntam na entrada de uma porta OU.
Analise bem: a saı́da de uma porta E somente é VERDADEIRA se todas as entradas o forem.
Então, se qualquer entrada proveniente de um dos terminais de controle for FALSA, a saı́da da
porta E correspondente será obrigatoriamente falsa. Devido à combinação das conexões dos ter-
minais de controle e seus complementos com as portas E, somente uma delas (a que corresponder
ao número que se entrou no controle) receberá três entradas VERDADEIRAS provenientes do
controle.
Exemplificando: Se entrarmos, por exemplo, com o número 5 (101 em binário) no controle,
somente a porta E ligada à entrada E5 receberá três entradas VERDADEIRAS oriundas do
controle. Essa será a única porta E cuja saı́da poderá variar (pois as saı́das das demais serão
sempre FALSAS por receberem pelo menos um sinal FALSO). Se, no exemplo, a entrada E5 tiver
um valor VERDADEIRO, a saı́da da porta E correspondente também será VERDADEIRA, posto
que as outras três (do controle) serão igualmente VERDADEIRAS. Por outro lado, se a entrada
E5 contiver um sinal FALSO, a saı́da da porta E correspondente também será FALSA, pois a
combinação das três entradas VERDADEIRAS do controle com o valor FALSO de E5 resultará
em FALSO. Portanto, a saı́da da porta E ligada a E5 refletirá o estado de E5: VERDADEIRO
se E5 for VERDADEIRO, FALSO se E5 for FALSO.
Como os resultados de todas as portas E são combinados através de uma porta OU e como
todas as demais portas E terão a saı́da FALSA (devido a uma entrada FALSA proveniente do
Cartões Digitais
controle), quando se entra com o valor ”5”no controle, a saı́da do circuito multiplexador refletirá
o estado da entrada E5: VERDADEIRO se E5 for VERDADEIRO, FALSO se E5 for FALSO.
Uma situação análoga ocorrerá com qualquer outro valor que se entre no controle.
Capı́tulo 34
Caderno de Experiências
• Montagem de MUX/DEMUX
Referências:
• Multiplexadores/Demultiplexadores
Material Necessário:
Introdução:
Questionário:
Exercı́cios:
1. Utilizando as frequências disponı́veis do módulo principal, utilize 4 delas nas entradas de D0a
D3 no módulo XD200M08.02.01 e disponibilize a saı́da em algum Led do módulo principal
chaveando a entrada .
Capı́tulo 35
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
35.1 Hardware
O módulo XD200M08.02.01 possibilita ao usuário desempenhar as tarefas de multiplexagem e
demultiplexagem, extramamente utilizada nos circuitos eletrônicos quando se deseja transmissão
de informações.
Utilizando o módulo XD200M08.02.01 ao circuito de sua escolha, você poderá trabalhar estas
funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias para
cada experiência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
36.1 XD200M08.02.01
Cartões Digitais
Cartões Digitais
Capı́tulo 37
Conversores Analógico/Digital e
Digital/Analógico
Até o momento tratou-se apenas de sinais digitais em suas diversas aplicações. Contudo,
no mundo real a maioria das grandezas e informações está em forma analógica. Dizer que um
sinal é analógico significa dizer que ele pode assumir qualquer valor entre dois valores limites.
Uma informação com essa caracterı́stica não pode ser expressa de forma digital, porque um
número infinito de nı́veis exigiria um número infinito de bits para representá-la. Surge então a
necessidade de componentes que convertam informações analógicas em digitais e vice-versa. São
eles o conversor analógico digital (ADC ou simplesmente A/D) e o conversor digital analógico
(DAC ou simplesmente D/A).
D C B A Vout
0 0 0 0 0
0 0 0 1 -0,625
0 0 1 0 -1,250
0 0 1 1 -1,875
0 1 0 0 -2,500
0 1 0 1 -3,125
0 1 1 0 -3,750
0 1 1 1 -4,375
1 0 0 0 -5,000
1 0 0 1 -5,625
1 0 1 0 -6,250
1 0 1 1 -6,875
1 1 0 0 -7,500
1 1 0 1 -8,125
1 1 1 0 -8,750
1 1 1 1 -9,375
O inconveniente desse tipo de montagem é que quando o número de bits aumenta muito os
valores de resistores tem uma faixa muito grande, indo de um extremo muito alto a outro muito
baixo. Isso implica em uma dificuldade construtiva causada pelas tolerâncias desses componentes,
que tendem a tornar o sinal de saı́da impreciso.
O conversor R/2R recebe esse nome porque é composto por uma rede de resistores com valores
intercalados de uma resistência (R) e o dobro dessa resistência (2R). Equacionando essa malha
concluı́mos que o valor da resistência não importa, desde que seja sempre mantida a relação
R/2R. Posto isso, cada ramo da resistência pode ser ligado a terra ou a Vref (tensão de referência
superior) conforme a palavra binária, gerando em sua saı́da uma tensão correspondente.
O fato de usar apenas dois valores de componente próximos torna esse tipo de conversor mais
fácil de construir e muito mais preciso.
Cartões Digitais
• Quantização;
• Taxa de Amostragem e;
• Linearidade.
37.2.1 Quantização
Entre os dois valores extremos da escala de valores analógicos que devem ser convertidos para a
forma digital existem infinitos valores intermediários, o que justamente caracteriza uma grandeza
que varia de forma análoga ou analógica.
Entretanto, quando passamos um valor qualquer entre os dois valores extremos incluindo-os,
não podemos representar qualquer quantidade, pois precisarı́amos para isso de um número infinito
de bits.
Assim, por exemplo, se utilizarmos na conversão 4 bits, teremos a possibilidade de representar
apenas 16 valores na escala total de valores analógicos, e se usarmos 8 bits poderemos representar
256 valores, conforme indica a figura 52.
Se tivermos uma escala de 0 a 8 V, por exemplo, e usarmos 4 bits para a conversão, os
”degraus”da escada de conversão terão 0,5 V de altura, o que significa que este conversor terá
uma resolução de 0,5 V. Se usarmos um conversor A/D de 8 bits (256 ”degraus”de resolução)
para fazer um voltı́metro de 0 a 10 V, por exemplo, a resolução deste voltı́metro será de 10/256
ou pouco menos de 0,04 V.
Este comportamento ”digital”pode ser observado em muitos instrumentos comuns, tais como
os multı́metros digitais em que, se a grandeza medida estiver num valor intermediário entre dois
degraus da resolução do conversor A/D, o valor apresentado no display oscilará entre eles.
Evidentemente, tanto maior é a precisão na conversão mais bits serão utilizados pelo conversor.
Tipos com 8 a 16 bits são comuns nas aplicações industriais e em medidas, dependendo da
quantidade de ”passos”desejados na conversão ou a resolução.
37.2.3 Linearidade
A curva de conversão da grandeza analógica para a forma digital deve ser linear para um bom
conversor. Isso significa que não existem desvios na correspondência entre o valor analógico e a
saı́da digital ao longo da escala de valores em que o conversor deve trabalhar.
No entanto, na prática podem ocorrer pequenos desvios, de acordo com o que mostra a seguir.
37.2.4 Desenvolvimento
Para fazer uma conversão de sinais analógicos para a forma digital existem diversas técnicas
que são empregadas nos circuitos comerciais, muitas delas encontradas em circuitos integrados que
são ”embutidos”(embedded) em aplicações mais complexas, os quais fazem o controle de máquinas
e equipamentos. Analisamos as tecnologias mais empregadas para esta finalidade começando com
o bloco comum a todos os conversores, que é o circuito de amostragem e manutenção (sample and
hold).
O valor dos sinais analógicos que devem ser convertidos para a forma digital corresponde a
um determinado instante, cuja duração, em alguns casos, não vai além de alguns milionésimos de
segundo.
Assim, um primeiro bloco importante do conversor é um circuito que lê o valor do sinal a ser
convertido num determinado instante e o armazena de modo que, mesmo que o sinal varie depois,
os circuitos que fazem a conversão têm numa memória seu valor.
O sinal a ser amostrado é amplificado por um buffer de entrada cuja finalidade é não carregar
o circuito externo, e ao mesmo tempo proporcionar isolamento do circuito de conversão.
Na saı́da deste circuito temos uma chave eletrônica ou chaveador, que determina o instante
exato em que a leitura do sinal deve ser feita. A chave fecha então por uma fração de segundo
(numa frequência que depende da velocidade de amostragem) permitindo que o sinal carregue o
capacitor C.
Assim, quando a chave abre, esperando a leitura seguinte, o capacitor tem armazenado o valor
da grandeza analógica a ser convertida. Esta tensão no capacitor é mantida no circuito conversor
através de um buffer de saı́da durante o tempo que ele necessita para isso.
Na figura a seguir temos um gráfico que indica de que modo à tensão de entrada varia e o
circuito de amostragem e retenção mantém a saı́da constante durante os intervalos de conversão
(que correspondem aos ”degraus”).
37.2.5 Aplicação
Desenvolvendo um pequeno programa no Matlab 6.0 podemos exemplificar melhor toda esta
teoria aqui mostrada. A onda fundamental tem uma frequência de 120 Hz e está defasada em
60o, atribuı́mos valores de quantização de: 4, 8 e 12 Bits e taxa de amostragem de: 240, 600 e
1000 Hz (respeitando a frequência de Nyquist).
Primeiramente o nosso programa vai marcar os tempos que serão armazenados com seus res-
pectivos valores analógicos para posteriormente serem quantizados e assim aplicando a transforma
discreta de Fourier reconstituir o sinal amostrado.
Nos gráficos abaixo, podemos verificar que em um sinal digital não existe valores negativos
na quantização, o que pode ocorrer é que vemos em multı́metros digitais ou outros aparelhos, um
bit a mais inserido posteriormente a quantização para sinalização. Se aquele valor corresponde a
um valor negativo ou positivo, este fato não interfere em nada na conversão, como mencionado, é
apenas uma sinalização para o usuário.
Existem várias formas de se construir conversores A/D, sendo que cada um tem a sua carac-
Cartões Digitais
terı́stica de funcionamento que deve ser levada em conta, na hora de se construir e/ou escolher
para sua aplicação. Temos uma relação de possı́veis combinações:
• Sigma-Delta.
O Sigma-Delta é uma das importantes técnicas de conversão A/D, utilizada em que se deseja
uma altı́ssima velocidade de conversão, como nos DSPs (Digital Signal Processing).
Portanto, vimos que a conversão do sinal analógico para o digital sempre existe uma perda de
informação seja ela de amplitude - caracterı́stica da quantidade de bits utilizados - ou de fase do
sinal - caracterı́stica da taxa de amostragem empregada.
Vimos que o erro máximo que pode ocorrer na quantização é de metade do valor de nı́vel da
quantização assim sendo quanto maior for o número de bits do conversor menor será o seu erro.
O erro de ”Aliasing”é facilmente evitado utilizando o teorema da amostragem que ”Para que
uma determinada frequência f1 do sinal analógico seja ou possa ser completamente reconstituı́da
a taxa amostral, no processo de digitalização, deve ser no mı́nimo igual a 2xf1”.
Conhecidas as imperfeições da conversão podemos então saber quais os fatores que influem na
escolha de um conversor A/D e assim prever melhor os ajustes que sistema deverá sofrer, pois já
é conhecida as suas fraquezas.
a saı́da do comprador muda de estado identifica-se que o valor do contador corresponde a tensão
na entrada do D/A.
A principal deficiência desse tipo de conversor é que o tempo de conversão (tempo entre o
inı́cio da conversão e momento em que o resultado é apresentado) depende da tensão, de forma
que quanto maior a tensão de entrada maior o tempo de conversão.
3. Verifica se o resultado a Vax (gerada pelo conversor D/A) é maior que Va (tensão de entrada)
4. Repete o processo para cada bit, até chegar no menos significativo. Dessa forma, um AD
de n bits realizará a conversão em n interações.
Cartões Digitais
Va C1 C2 C3 C4 C5 C6 C7 A B C
0-1V 1 1 1 1 1 1 1 0 0 0
1-2V 0 1 1 1 1 1 1 0 0 1
2-3V 0 0 1 1 1 1 1 0 1 0
3-4V 0 0 0 1 1 1 1 0 1 1
4-5V 0 0 0 0 1 1 1 1 0 0
5-6V 0 0 0 0 0 1 1 1 0 1
6-7V 0 0 0 0 0 0 1 1 1 0
>7V 0 0 0 0 0 0 0 1 1 1
Capı́tulo 38
Caderno de Experiências
Referências:
• Conversores D/A
Material Necessário:
• Módulo XD200M09.02.01
Introdução:
O conversor digital analógico é um circuito responsável por converter dados digitais em gran-
dezas analógicas, ou seja, converte a informação contida em bytes em nı́veis de tensão corres-
pondentes aos pesos de cada palavra. Como exemplo podemos citar a conversão de um arquivo
digital em áudio analógico utilizando placas de áudio que acompanham nossos computadores.
Estas placas são equipadas com conversores de no mı́nimo 16 bits.
Além de áudio podemos ter conversões de temperatura, pressão, vazão, posição e outros cir-
cuitos, bem como diminuir custos. Há caracterı́sticas relevantes em uma conversão A/D bem
como número de passos, frequência de amostragem, canais de amostragem e erro de quantização.
Essas caracterı́sticas determinarão quais os conversores ideais para a aplicação desejada.
Questionário:
1. Qual a resolução alcançada com um conversor de 10 bits que opera em uma faixa de 0v a
3,3v?
(a) 11.0110.1010
Cartões Digitais
(b) 01.1001.1110
(c) 00.0101.1111
(d) 10.1110.0001
(e) 00.0011.1010
(f) 00.0001.1100
Exercı́cios propostos:
Referências:
• Conversores A/D
Material Necessário:
• Módulo XD200M09.02.01
Introdução:
Questionário:
1. Qual a resolução alcançada com um conversor de 8 bits que opera em uma faixa de 0v a 5v?
(a) -5v
(b) -4,5v
(c) -3,75v
(d) -2,25v
(e) -1,15v
(f) -0,60v
Cartões Digitais
Exercı́cios:
1. Utilizando o módulo XD200M09.02.01 no Kit, conecte nos dois canais de entrada sinais
ajustáveis a partir de dois potenciômetros alimentados com 5v, como na figura abaixo.
Conecte o sistema de controle de canal em duas chaves lógicas e as saı́das digitais deverão
estar conectadas aos leds de visualização.
(a) 0000.0000b -
(b) 0000.0001b -
(c) 0000.0010b -
(d) 0000.0100b -
(e) 0000.1000b -
(f) 0001.0000b -
(g) 0010.0000b -
(h) 0100.0000b -
(i) 1000.0000b -
(j) 1111.1111b -
Exercı́cios propostos:
Capı́tulo 39
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
39.1 Hardware
O módulo XD200M09.02.01 nos possibilitará agora trabalharmos um pouco com as informações
analógicas. Surgindo a necessidade na prática de tratarmos sinais e informações, o módulo irá
nos permitir trabalhar com as conversões A/D e D/A.
Utilizando o módulo XD200M09.02.01 ao circuito de sua escolha, você poderá trabalhar estas
funções digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias para
cada experiência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
40.1 XD200M09.02.01
Cartões Digitais
Cartões Digitais
Cartões Digitais
Capı́tulo 41
Memórias
Introdução
Memórias são dispositivos semicondutores usados para armazenar dados. Esses dados geral-
mente encontram-se organizados em palavras de 4, 8, 16 ou 32 bits, não havendo restrições para
outros formatos de organização. Cada palavra de informação ocupa um ”endereço”dentro da
memória, de forma que é possı́vel referenciar o dado a ser acessado.
A memória é uma parte importante na arquitetura de sistemas computacionais, pois cabe a
ela armazenar tanto o programa a ser executado, quanto os dados utilizados durante a execução
do mesmo. A evolução da tecnologia de semicondutores proporcionou a confecção de dispositivos
de memória cada vez mais rápidos, maior capacidade de acesso e com menor tamanho fı́sico.
As memórias podem ser classificadas por dois modos distintos devido ao tipo de armazena-
mento de dados, são eles o tipo ’volátil’ e o tipo ’não volátil’.
A capacidade de uma memória indica quantos bits ela é capaz de armazenar e é dado pela
expressão:
Onde:
• n: É o número de endereços.
O endereçamento Address não será mais realizado em busca direta porque não existem os
terminais A0-Ax, o endereço agora será sequencial através da comunicação serial I2C.
Cartões Digitais
4. Ajuste as chaves das entradas Ix para um valor qualquer e observe nos LEDs;
a WE = 0;
b CE = 0 e logo em seguida CE = 1;
c WE = 1;
Cartões Digitais
2. Faça OE = 0 e CE = 0;
3. Mude o valor nas chaves e observe que os LEDs devem permanecer com o valor inicialmente
gravado.
uma tensão elétrica mais elevada. Como cada novo dado gravado no chip requer o apagamento do
anterior, considera-se apagamento e gravação como uma só operação, porém seria possı́vel gravar
o mesmo endereço de memória um bit de cada vez, fazendo então oito gravações com um só prévio
apagamento. Entretanto a maioria das memórias EEPROM faz o apagamento do conteúdo do
endereço automaticamente antes da gravação. O Módulo XD200M10.02 é utilizado a memória EE-
PROM AT28C64B com organização de 8k x 8 totalizando 64kbytes com endereçamento paralelo
e a memória EEPROM 24C08 com organização de 1k x 8 totalizando 8kbytes com endereçamento
serial. Abaixo segue os processos de escrita e leitura para as memórias.
Exemplos:
1. Uma memória com 10 bits de endereço organizada em palavras de 8 bits tem 8kb (8 kilobits
ou 8192 bits);
2. Uma memória com 12 bits de endereço organizada em palavras de 16 bits tem 64kb (64
kilobits ou 65536 bits);
3. Uma memória com 16 bits de endereço organizada em palavras de 8 bits tem 512 kb (512
kilobits ou 524288 bits)
Observações:
1. A capacidade sempre deverá ser expressa em número de bits, e não em número de bytes;
2. Para saber quantos bytes têm a memória em bytes, basta dividir a capacidade por 8;
4. A unidade para indicar bits é ”b”(minúsculo) enquanto para indicar byte é ”B”(minúsculo).
Assim, 8kb = 1kB.
Cartões Digitais
Capı́tulo 42
Aulas Práticas
Referências:
• Memórias
Material Necessário:
• Módulo XD200M10.01.01
Introdução:
Memórias são dispositivos semicondutores usados para armazenar dados. Esses dados geral-
mente encontram-se organizados em palavras de 4, 8, 16 ou 32 bits, não havendo restrições para
outros formatos de organização. Cada palavra de informação ocupa um ”endereço”dentro da
memória, de forma que é possı́vel referenciar o dado a ser acessado.
Questionário:
1. Quais as diferenças entre memória volátil dinâmica, volátil estática e não volátil?
Exercı́cios:
Exercı́cios propostos:
1. Faça a gravação e a leitura de uma data na memória. Sendo que Dia, Mês e Ano devem
ficar cada um em endereços diferentes.
Cartões Digitais
Referências:
• Memórias
Material Necessário:
• Módulo XD200M10.01.02
Introdução:
Exercı́cios:
Exercı́cios propostos:
1. Faça a gravação e a leitura de uma data na memória. Sendo que Dia, Mês e Ano devem
ficar cada em endereços diferentes para a memória 24C08.
Cartões Digitais
Cartões Digitais
Capı́tulo 43
43.1 Hardware
O módulo XD200M10 permite exercitar os conceitos de memórias e armazenamento de dados
verificando na prática esta função tão importante na arquitetura de sistemas computacionais.
43.2 XD200M10.01
A placa está disposta por um CI capaz de trabalhar o armazenamento de dados:
Visão da placa
43.3 XD200M10.02
A placa está disposta por um CI capaz de trabalhar o armazenamento de dados:
Visão da placa
Utilizando o módulo XD200M10 ao circuito de sua escolha, você poderá trabalhar estas funções
digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias para cada ex-
periência usando como apoio o datasheet dos componentes.
Capı́tulo 44
Esquemas Elétricos
44.1 XD200M10.02.01
Resistores de 1k
(R9 a R16)
Cartões Digitais
44.2 XD200M10.02.02
Resistores de 1k
(R3 a R10)
Resistores de 1k
(R11 a R18)
Cartões Digitais
Cartões Digitais
Capı́tulo 45
Introdução:
Os circuitos contadores são subsistemas sequenciais que fornecem em suas saı́das um con-
junto de nı́veis lógicos numa sequencia predeterminada, correspondente a modos de contagem
preestabelecidos. A este conjunto de nı́veis lógicos dá-se o nome de estados internos do contador.
O contador é formado basicamente por flip-flops e, portanto, a velocidade da sequencia gerada
é determinada pela frequência dos pulsos de clock. Sua caracterı́stica sı́ncrona se deve ao fato
de todas as entradas de clock dos flip-flops envolvidos estão interligadas a apenas uma fonte de
clock, garantindo assim a sincronia nas mudanças de estado.
Contadores baseados em máquina de estado possuem a particularidade de que o estado anterior
é relevante para a transição do próximo estado. Essa caracterı́stica proporciona a possibilidade
de se criar contadores não sequenciais, já que o próximo valor é uma resultante depende do valor
antecedente a ela.
Cartões Digitais
Capı́tulo 46
Caderno de Experiências
Referências:
• Contadores
Material Necessário:
• Módulo XD200M11
Introdução:
Os circuitos contadores são subsistemas sequenciais que fornecem em suas saı́das um con-
junto de nı́veis lógicos numa sequencia predeterminada, correspondente a modos de contagem
preestabelecidos. A este conjunto de nı́veis lógicos dá-se o nome de estados internos do contador.
O contador é formado basicamente por flip-flops e, portanto, a velocidade da sequencia gerada
é determinada pela frequência dos pulsos de clock. Sua caracterı́stica sı́ncrona se deve ao fato
de todas as entradas de clock dos flip-flops envolvidos estão interligadas a apenas uma fonte de
clock, garantindo assim a sincronia nas mudanças de estado.
Contadores baseados em máquina de estado possuem a particularidade de que o estado anterior
é relevante para a transição do próximo estado. Essa caracterı́stica proporciona a possibilidade
de se criar contadores não sequenciais, já que o próximo valor é uma resultante depende do valor
antecedente a ela.
Questionário:
Exercı́cios:
Capı́tulo 47
Importante
• Para um completo entendimento do funcionamento do módulo, consulte seu esquema elétrico
e manual dos componentes, ambos presentes no CD que acompanha o kit.
47.1 Hardware
O módulo XD200M11 poderá realizar a tarefa especı́fica do contador código Gray, comumente
utilizado em sistemas sequênciais.
Utilizando o módulo XD200M11 ao circuito de sua escolha, você poderá trabalhar estas funções
digitais, ficando a cargo do usuário fazer as conexões e configurações necessárias para cada ex-
periência.
Cartões Digitais
Visão da placa
Esquemas Elétricos
48.1 XD200M11.02.01
Cartões Digitais
Cartões Digitais
Cartões Digitais
Capı́tulo 49
Software
Abaixo é apresentado um guia rápido de utilização do Quartus II. Para mais informações sobre
o funcionamento e uso de software consulte a documentação do mesmo no menu Help.
Nesta janela pode-se escolher qual o tipo de linguagem em que irá se trabalhar, se em VHDL,
linguagem em blocos, etc. Criaremos um arquivo VHDL. Selecione a opção VHDL File como na
figura acima e aperte OK.
Abrirá uma janela de texto, onde será digitado todo o código. Salve este documento com o
nome da entidade a ser criada. Por exemplo, criaremos um código que faça uma contagem de 0
a 9999. É de costume chamar a entidade do projeto, ou seja, a entidade externa, com o nome da
aplicação em si, como na figura a seguir:
Cartões Digitais
Note que o arquivo, ainda com nome sem especificação, apresenta uma entidade chamada
CONTADOR. Esta parte de código ainda não nos interessa, mas este nome é de grande im-
portância para criação de um projeto, pois, se apresentar nomes diferentes, o compilador não
reconhecerá este arquivo e gerará um erro.
Agora salve este arquivo como CONTADOR. Aparecerá uma janela para criação de um novo
projeto.
Selecione a opção SIM e nas janelas posteriores, clique em NEXT até a janela de seleção do
chip. No KIT CPLD LE trabalharemos com o CPLD EPM3064ALC44-10, da famı́lia MAX3000A.
As especificações de famı́lia e chip devem estar de acordo com o CPLD que se quer trabalhar,
como na figura a seguir:
Cartões Digitais
Selecione NEXT até que haja a opção FINISH. Clique nela e pronto!! Você acaba de criar
um novo projeto no QUARTUS II. Para a criação de projetos com tipos de linguagem diferentes,
somente mude de opção quando for gerado o New File.
Clique em Pins no menu Assignments. Uma área para declaração dos pinos será aberta.
49.3 Gravação
O último passo para que se possa então efetuar o teste do protótipo é a gravação do projeto
na placa da Altera. Na área de configuração apresentada, é preciso assegurar que as opções
de hardware estejam corretas através do atalho Hardware Setup. Caso não haja hardware
selecionado, em Add Hardware selecione manualmente ByteBlaster .
A linguagem VHDL
50.1 Histórico
Nas décadas de 70 e 80 foi posto em prática um programa do Departamento de Defesa (DoD)
americano, para desenvolvimento de circuitos integrados de alta velocidade, denominado VHSIC
e originado da preocupação de domı́nio das tecnologias envolvidas. Desde o princı́pio, anteviu-se
o problema de representação dos projetos segundo uma linguagem que fosse comum às várias
empresas envolvidas e que permitisse uma documentação fechada e clara para projetos de com-
plexidade crescente. Nesta mesma época, já havia no mercado de computação a chamada crise
do software, caracterizada pela dificuldade de gestão, documentação e sistematização do ciclo de
vida do software (que envolve, em termos gerais, todas as atividades de relativas à sua criação e
uso)1. O problema surgiu inicialmente no software porque era no software que se desenvolviam
as aplicações, que tornavam o produto particular para um uso especı́fico. Isso fazia com que um
grande volume de projetos fossem conduzidos, quase sempre com muita complexidade e pouco
método. No hardware a questão era mais bem controlada, pois os projetos eram, em geral, mais
genéricos, especialmente para o hardware digital. Os projetos de microprocessadores, que eram
os mais complexos, visavam na maior parte dos casos o uso geral. Um mesmo microprocessador
seria utilizado em várias aplicações, seria reproduzido e testado aos milhões. Isso significava que o
investimento em um único projeto poderia ser muito maior, inclusive em termos de especificação
e testes. A evolução da metodologia de projeto de software foi então natural, em função dos
argumentos sustentados pela crise. Hoje ainda é grande o desenvolvimento de novos métodos e
a busca por uma linguagem descritiva universal, como o UML, para especificação e projeto de
software orientado a objetos. A questão preocupante quanto ao hardware, para o programa VH-
SIC americano, era que alguns fatos indicavam para uma evolução do mercado que faria surgirem
problemas semelhantes aos apresentados pela crise de software. Entre estes fatos:
• O objetivo do projeto fica mais claro que na representação por esquemáticos, nos quais a
implementação se sobrepõe à intenção do projeto;
• O volume de documentação diminui, já que um código bem comentado em VHDL substitui
com vantagens o esquemático e a descrição funcional do sistema;
• O projeto ganha portabilidade, já que pode ser compilado em qualquer ferramenta e para
qualquer tecnologia. É comum, na indústria, o uso de FPGAs e CPLDs para produções
iniciais ou de menores escalas em projetos que posteriormente possam ser implementados
em ASICs. Todas as implementações podem usar o mesmo código VHDL.
50.3.1 Entidade
Uma entidade de projeto (design entity) é uma abstração que descreve um sistema, uma placa,
um chip, uma função ou, até mesmo, uma porta lógica. Uma entidade é composta por duas partes:
declaração da entidade e arquitetura. Na declaração de uma entidade, descreve-se o conjunto de
entradas e saı́das. A arquitetura (architecture) descreve as funções realizadas pela entidade.
Cartões Digitais
No exemplo dado abaixo, a entidade PORTAE possui duas entradas, a e b, e uma saı́da, s,
que definem o port da entidade. Os ports correspondem a pinos e são tratados como objetos de
dados. Pode-se atribuir ou obter valores. Cada entrada ou saı́da possui um modo (mode) de
operação. Os quatro modos possı́veis são:
• in - entrada
• out - saı́da: os pinos definidos como saı́da não podem ser utilizados como entradas, nem
seus valores utilizados na lógica interna;
• inout - substitui qualquer um dos outros, mas seu uso deve ser limitado aos casos em que
o pino deva ser utilizado como entrada e saı́da, para clareza na descrição.
No exemplo a seguir, é realizada a operação lógica ”E”entre os pinos de entrada ”a”e ”b”na
arquitetura principal. Note que a saı́da ”s”recebe o valor da operação.
Exemplo 1:
Descrição Comportamental
Esta é a forma mais flexı́vel e poderosa de descrição. São definidos processos concorrentes
(process). A cada processo é associada uma lista de sensibilidade, que indica quais são as variáveis
cuja alteração deve levar à reavaliação da saı́da. No simulador funcional, quando uma variável da
lista é modificada, o processo é simulado novamente. O código abaixo ilustra a aplicação deste
tipo de descrição à porta lógica do exemplo, onde a cada mudança das entradas, é realizado o
processo comp e a saı́da s recebe o resultado da operação lógica ”e”entre ”a”e ”b”. É importante
ressaltar que em uma arquitetura poderá ser executado mais de um processo simultaneamente.
Cartões Digitais
Exemplo 2:
Neste tipo de descrição, os valores de saı́da são atribuı́dos diretamente, através de expressões
lógicas. Todas as expressões são concorrentes no tempo.
Exemplo 3:
• constante ou ”CONSTANT”
• variável ou ”VARIABLE”
• sinal ou ”SIGNAL”
• arquivo ou ”FILE”
A constante é um objeto com um valor estático. No caso da variável, o valor inicial imposto
pode ser alterado no decorrer do código, e é empregada em regiões de código seqüencial. Sinais são
objetos que podem ter o seu valor alterado, e são empregados em regiões de código concorrente e
seqüencial. A seguir serão apresentados exemplos de declaração desses tipos de objetos de classes:
Cartões Digitais
A tabela a seguir apresenta tipos escalares predefinidos no pacote padrão. Tipos escalares
são ordenados e representam um valor único, permitindo assim, a aplicação de operadores como
maior, menor, etc. Os tipos de dados possı́veis na linguagem VHDL são:
A tabela a seguir apresenta dois tipos compostos predefinidos no pacote padrão. São eles: ”AR-
RAY”: o tipo ”BITVECTOR”contendo elementos do tipo ”BIT”, e o tipo ”STRING”contendo
elementos do tipo ”CHARACTER”(ver tabela abaixo). Na declaração de um objeto, o número de
elementos contidos no vetor é especificado através das palavras reservadas ”DOWNTO”e ”TO”.
A primeira identifica uma ordem decrescente nos ı́ndices e a segunda uma ordem crescente.
Exemplo 4:
1 0 1 1 0 0 1 1
a(0)................a(7)
Exemplo 5:
Cartões Digitais
1 0 1 1 0 0 1 1
a(7)................a(0)
50.3.4 Operadores
Os operadores definidos são divididos em classes que estabelecem a precedência na execução
das operações. A tabela a seguir mostra, em ordem crescente de precedência, as classes dos
operadores. Os operadores de uma mesma classe de procedência possuem o mesmo nı́vel de
procedência, porém podem ser empregados parênteses para evidenciar a ordem desejada.
Capı́tulo 51
Caderno de Experiências
Referências
• Apostila XD200M12
Exemplo
Apresentam-se abaixo as telas contendo os projetos montados e os pinos utilizados para teste e
validação do hardware. Sendo importante ressaltar que existem diversos modos de programação do
dispositivo, porém para finalidade didática optou-se pelo modo gráfico para melhor entendimento
dos usuários:
. Tela do esquema implementado para o CPLD:
Cartões Digitais
O esquema implementado acima apresenta apenas três portas lógicas, que são respectivamente:
”porta ou-exclusiva”, ”e”e ”ou”.
. Tela dos pinos escolhidos para o esquema implementado:
51.1.1 Questionário
1. Cite as vantagens do uso da linguagem VHDL.
3. Qual a forma para se declarar uma variável com tamanho de 556 posições?
Cartões Digitais
51.1.2 Exercı́cios
Desenvolva um programa que faça a contagem de 0 a 9 em linguagem VHDL.
Capı́tulo 52
• 1 cabo flat
• 1 cabo paralelo
• 1 fonte 9Vcc
• 1 modulo XD200M12
• 1 placa Byteblaster
Caso ocorra a falta de algum destes itens ou defeito, consulte a Exsto Tecnologia para escla-
recimentos.
52.3 Instalações
Para o uso de qualquer uma das placas que fazem parte do módulo XD200M12, siga os
procedimentos descritos abaixo:
• Antes de conectar o cartão, verifique se a seta branca, que aparece impressa na placa, está
apontando para o lado de cima da placa. Ela é de fácil visualização e está na parte superior
É importante lembrar que o equipamento deve ser encaixado com o bastidor desligado para
evitar picos de corrente no módulo, danificando-o. Ainda deve-se garantir que o módulo não
foi encaixado de forma invertida ou com alguns pinos fora do conector, isso pode causar mal
funcionamento e até mesmo perda da garantia caso os componentes sejam danificados.
Validação da Licença
Ao rodar o programa ele irá solicitar o arquivo ’.dat’ de licença fornecido pela Altera, que o
usuário deverá receber após fazer o cadastro e a solicitação da licença pela internet. O arquivo
será enviado pela própria altera no e-mail que for utilizado para o cadastro, esse arquivo deverá
ser salvo na pasta de instalação do Quartus II.
.
Cartões Digitais
Após salvar o arquivo, será necessário indica-lo ao programa para que o mesmo seja licenciado,
como está exemplificado abaixo:
Assim que indicar o caminho o programa irá carregá-lo sempre que for aberto.
52.5 Hardware
O kit CPLD LD é formado por periféricos que possibilitam sua interação com displays de sete
segmentos, leds para uso geral, dip-switch, todas as IOs disponı́veis para periféricos externos bem
como saı́da para gravação de dispositivos fora da placa.
Há no Kit de CPLD uma chave Dip-switch, totalizando de oito chaves, para simular aciona-
mentos diversos. As chaves forçam nı́vel lógico alto e nı́vel lógico baixo diretamente no pino onde
estão conectadas, garantindo nı́veis estáveis para uma simulação eficaz durante o desenvolvimento
e estudos realizados com o kit.
Para este kit foram previstas operações lógicas básicas, dentre elas operações com displays
de sete segmentos. O Display também pode ser utilizado como oito leds se aplicar um sinal na
entrada do ponto.
O conector JTAG é o conector responsável pela gravação do chip, ele é conectado ao Byte
Blaster.
52.6 Software
Abaixo é apresentado um guia rápido de utilização do Quartus II. Para mais informações sobre
o funcionamento e uso de software consulte a documentação do mesmo no menu Help.
Nesta janela pode-se escolher qual o tipo de linguagem em que irá se trabalhar, se em VHDL,
linguagem em blocos, etc. Criaremos um arquivo VHDL. Selecione a opção VHDL File como na
figura acima e aperte OK.
Abrirá uma janela de texto, onde será digitado todo o código. Salve este documento com o
nome da entidade a ser criada. Por exemplo, criaremos um código que faça uma contagem de 0
a 9999. É de costume chamar a entidade do projeto, ou seja, a entidade externa, com o nome da
aplicação em si, como na figura a seguir:
Cartões Digitais
Note que o arquivo, ainda com nome sem especificação, apresenta uma entidade chamada
CONTADOR. Esta parte de código ainda não nos interessa, mas este nome é de grande im-
portância para criação de um projeto, pois, se apresentar nomes diferentes, o compilador não
reconhecerá este arquivo e gerará um erro.
Agora salve este arquivo como CONTADOR. Aparecerá uma janela para criação de um novo
projeto.
Selecione a opção SIM e nas janelas posteriores, clique em NEXT até a janela de seleção do
chip. No KIT CPLD LE trabalharemos com o CPLD EPM3064ALC44-10, da famı́lia MAX3000A.
As especificações de famı́lia e chip devem estar de acordo com o CPLD que se quer trabalhar,
como na figura a seguir:
Cartões Digitais
Selecione NEXT até que haja a opção FINISH. Clique nela e pronto!! Você acaba de criar
um novo projeto no QUARTUS II. Para a criação de projetos com tipos de linguagem diferentes,
somente mude de opção quando for gerado o New File.
Clique em Pins no menu Assignments. Uma área para declaração dos pinos será aberta.
52.6.3 Gravação
O último passo para que se possa então efetuar o teste do protótipo é a gravação do projeto na
placa da Altera, clicando no atalho de gravação. Na área de configuração apresentada, é preciso
assegurar que as opções de hardware estejam corretas através do atalho Hardware Setup. Caso
não haja hardware selecionado, em Add Hardware selecione manualmente ByteBlaster .
D7 A
D6 B
D5 C
D4 D
D3 E
D2 F
D1 G
D0 Pto
GLCk1 Clock 100KHz
• Mude o JP1 da posição int para a posição ext e aplique um um sinal de 100KHz no
pino GLCK1. Observe que agora é possı́vel observar o display contando
2. Teste IO
Esquemas Elétricos
53.1 XD200M12.02.01
Cartões Digitais
Cartões Digitais
Capı́tulo 54
Resolvendo Problemas