ÍNDICEvargas/Disciplinas/Eletronica-Digital/... · Máquina de Moore 4.2. Máquina de Mealy 4.3....
Transcript of ÍNDICEvargas/Disciplinas/Eletronica-Digital/... · Máquina de Moore 4.2. Máquina de Mealy 4.3....
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
1
ÍNDICE
INTRODUÇÃO AOS CIRCUITOS SEQUENCIAIS 03 1. LATCHES E FLIP FLOPS 08
1.1 LATCH RS – NAND 1.2 LATCH RS – NOR 1.3 FLIP-FLOP RS COM CLOCK
1.4 LATCH D, FLIP-FLOP D, FLIP-FLOP T 1.5 FLIP-FLOP D MESTRE-ESCRAVO ou D-MS 1.6 ENTRADAS ASSÍNCRONAS 1.7 FLIP-FLOP JK MESTRE - ESCRAVO 1.8 Aplicações com Flip-Flops 1.8.1 Exemplo 1 1.8.2 Exemplo 2
1.9 CI´s de Flip-Flops 1.10 Detectando uma Seqüência de Entrada
2. REGISTRADORES 18
2.1 Armazenamento e Transferência Serial de Dados 2.2 Transferência Paralela de Dados 2.3 Transferência Serial de Dados: Registradores de Deslocamento 2.4 Transferência Serial entre Registradores 2.5 Conversão Paralelo-Paralelo 2.6 Conversão Série-Paralelo 2.7 Conversão Paralelo-Série 2.8 Circuito Roteador ou Contador em Anel 2.9 Divisão de Freqüência e Contagem
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
2
3. CONTADORES 25
3.1 Contador de Módulo 2n 3.2 Contador de Módulo < 2n 3.3 Diagrama de Transição de Estados 3.4 Contadores Síncronos (Paralelos) 3.5 Contadores Síncronos com Carga Paralela
4. MÁQUINA DE ESTADOS (FSM): MEALY E MOORE 30
4.1. Máquina de Moore
4.2. Máquina de Mealy
4.3. Projeto de Contadores Síncronos
5. MEMÓRIAS RAM E ROM 38
5.1. Memórias SRAM e DRAM
5.1.1 Introdução
5.1.2 Organização Interna de uma Memória
5.1.3 Chip de Memória
5.1.4 Mapeamento de Memória
5.2. Memórias ROM
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
3
INTRODUÇÃO AOS CIRCUITOS SEQUENCIAIS
A figura 1 mostra o diagrama de blocos de um circuito seqüencial. Um
circuito seqüencial é composto por um circuito combinacional e elementos de
memória. As entradas e as saídas do circuito seqüencial estão conectadas
somente ao circuito combinacional. Os elementos de memória são circuitos
capazes de armazenar informação codificada em binário. Algumas das saídas do
circuito combinacional são entradas para os elementos de memória, recebendo o
nome de variáveis do próximo estado. Já as saídas dos elementos de memória
constituem parte das entradas para o circuito combinacional e recebem o nome de
variáveis do estado atual. As conexões entre o circuito combinacional e os
elementos de memória configuram o que se costuma chamar laço de
realimentação, pois a saída de um bloco é entrada para o outro e vice-versa. A
informação armazenada nos elementos de memória num dado instante determina
o estado em que se encontra o circuito seqüencial. O circuito seqüencial recebe
informação binária das entradas que, juntamente com a informação do estado
atual, determinam os valores das saídas e os valores do próximo estado (vide
figura 1). Desta forma, fica evidente que as saídas de um circuito seqüencial
dependem não apenas das entradas, mas também do estado atual, armazenado
nos elementos de memória. E o mesmo pode ser dito para as variáveis de próximo
estado. Em função deste comportamento seqüencial, um circuito seqüencial é
especificado pela seqüência temporal de entradas, saídas e estados internos.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
4
Fig. 1. Diagrama de blocos de um circuito seqüencial.
Os circuitos seqüenciais podem ser divididos em dois tipos, conforme o
comportamento temporal dos seus sinais: síncronos e assíncronos.
O comportamento de um circuito seqüencial assíncrono depende da ordem
segundo a qual as entradas mudam e o estado do circuito pode se alterar a
qualquer tempo, como conseqüência de uma mudança de suas entradas. Os
elementos de memória utilizados nos circuitos seqüenciais assíncronos
apresentam uma capacidade de armazenamento que está associada diretamente
ao atraso de propagação dos circuitos que os compõem. Em outras palavras, o
tempo que esses circuitos levam para propagar uma mudança de suas entradas
até suas saídas pode ser encarado como o tempo durante o qual eles retêm os
valores aplicados antes da mudança, e esse fenômeno coincide com o conceito de
memória, para os circuitos digitais. Nos circuitos seqüenciais assíncronos, os
elementos de memória são compostos por portas lógicas que provêem um atraso
de propagação com valor adequado para o funcionamento do circuito. Então, um
circuito seqüencial assíncrono pode ser visto como um circuito combinacional com
realimentação. O projeto de circuitos com realimentação apresenta grandes
dificuldades, uma vez que seu funcionamento correto é dependente das
características temporais dos componentes (portas lógicas e fios). A principal
dificuldade provém do fato de que os componentes apresentam atrasos que não
são fixos, podendo serdiferentes mesmo para exemplares com mesma função e
de um mesmo fabricante. Desta forma, os circuitos seqüenciais assíncronos têm
sido evitados, sempre que possível, em favor do uso de circuitos seqüenciais
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
5
síncronos. Um circuito seqüencial síncrono utiliza um sinal especial denominado
de relógio (clock, em inglês) o qual tem a função de cadenciar uma eventual troca
de estado. A figura 2 mostra um exemplo de sinal de relógio. A forma de onda de
um sinal de relógio é dita monótona, pois não se altera ao longo do tempo. Nela
podem ser identificados a borda de subida, a borda de descida, o nível lógico zero
e o nível lógico um. O tempo que decorre para o sinal se repetir é denominado
período e é representado por T. Por exemplo, o tempo entre duas bordas de
subida sucessivas é igual a T. Da mesma forma, o tempo entre duas bordas de
descida sucessivas é igual a T.
Fig. 2. Exemplo de sinal de relógio (clock).
A freqüência de um sinal de relógio, representada por f, é definida como
sendo o inverso do período, ou seja:
Para medir-se o período, usa-se os múltiplos do segundo: ms (milissegundo
= 10-3s), ms (microssegundo = 10-6s), ns (nanossegundo = 10-9s) e ps
(picossegundo = 10-12s). Para medir-se a freqüência, usa-se os múltiplos do hertz:
kHz (quilohertz = 10+3Hz), MHz (megahertz = 10+6Hz) e GHz (gigahertz = 10+9Hz).
Um hertz equivale a 1/1s (i.e., o Hertz é o inverso do segundo).
Exemplo: um circuito digital síncrono é cadenciado pelo uso de um sinal de
relógio de 200 MHz. Qual é o maior atraso permitido para um circuito
combinacional qualquer dentro deste circuito. Ora, se esse circuito deve trabalhar
à freqüência de 200 MHz, então, cada um de seus blocos combinacionais deve ter
um atraso inferior ao período do relógio, o qual pode ser calculado por:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
6
Num circuito seqüencial síncrono, o sinal de relógio determina quando os
elementos de memória irão amostrar os valores nas suas entradas. Conforme o
tipo de circuito utilizado como elemento de memória, esta amostragem das
entradas pode ser sincronizada pela borda ascendente ou pela borda descendente
do relógio. Seja qual for o tipo de sincronização, o tempo que transcorre entre
duas amostragens sucessivas equivale a T, o período do relógio. Isto implica que,
qualquer mudança no estado de um circuito seqüencial síncrono irá ocorrer
somente após a borda do sinal de relógio na qual seus elementos de memória são
disparados.
A figura 3 mostra o diagrama de blocos de um circuito seqüencial síncrono.
Os elementos de memória utilizados nos circuitos seqüenciais síncronos são
denominados flip-flops. Um flip-flop é um circuito digital que possui duas entradas
e duas saídas e é capaz de armazenar um bit de informação. As duas entradas
não são intercambiáveis: uma é reservada ao sinal de controle (relógio) e a outra
recebe o dado (bit) a ser armazenado. As saídas correspondem ao dado (bit)
armazenado e ao seu complemento. O sinal de relógio determina o instante em
que o flip-flop amostra o valor do dado, podendo corresponder a uma borda de
subida ou a uma borda de descida, dependendo de como o flipflop é constituído.
O diagrama da figura 3 mostra que o valor de cada variável de estado é
armazenado num flip-flop específico. Os valores que representam o próximo
estado só são amostrados na borda ativa do relógio. Logo, o estado atual fica
armazenado no conjunto de flip-flops até que uma nova borda do relógio chegue,
quando então o próximo estado passa a ser o estado atual e um novo próximo
estado será gerado pelo circuito combinacional.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
7
Fig. 3. Diagrama de blocos de um circuito seqüencial síncrono.
Desde que devidamente alimentado com energia, um flip-flop pode manter
indefinidamente um estado, até que os sinais de entrada assumam uma
configuração tal que o façam mudar de estado. Essa configuração depende de
como o flip-flop é constituído. O estado em que um flip-flop se encontra
usualmente é associado ao valor binário que ele está armazenando. Desta forma,
num dado instante, um flip-flop estará armazenando ou o valor lógico 1 (um) ou o
valor lógico 0 (zero), pois esses são os dois valores possíveis para uma variável
Booleana.
Elementos de Memória: Neste capítulo estudaremos dispositivos lógicos com dois estados estáveis,
o estado SET e o estado RESET. Por isto, tais dispositivos são denominados
dispositivos biestáveis.
Uma vez que estes dispositivos são capazes de reter indefinidamente o seu
estado (SET ou RESET), eles são usados como elementos de armazenamento de
informação. Informalmente, dispositivos biestáveis “memorizam” o seu estado.
Estudaremos dois tipos de dispositivos biestáveis: o latch e o flip-flop. A
diferença entre um latch e um flip-flop é a maneira como ocorre a troca de estado:
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
8
• Um flip-flop muda seu estado por ação de um pulso de disparo, denominado de
clock. Por este motivo, um flip-flop é caracterizado como um dispositivo
biestável síncrono, porque somente muda de estado em sincronismo com a
ocorrência do pulso de clock.
• Um latch, por sua vez, é caracterizado como um dispositivo biestável
assíncrono, porque muda de estado sem necessidade de sincronismo com um
trem de pulsos de controle (pulsos de clock).
1. LATCHES E FLIP FLOPS
1.1. LATCH RS - NAND
1.2. LATCH RS – NOR
/SET /RESET Q /Q CONDIÇÂO
0 0 1 1 INVÁLIDA
0 1 1 0 SET
1 0 0 1 RESET
1 1 Q /Q MEMÓRIA
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
9
SET RESET Q /Q CONDIÇÂO
0 0 Q /Q MEMÓRIA
0 1 0 1 RESET
1 0 1 0 SET
1 1 0 0 INVÁLIDA
1.3. FLIP-FLOP RS COM CLOCK
CLOCK SET RESET Q /Q CONDIÇÂO
0 0 0 Q /Q MEMÓRIA
0 0 1 Q /Q MEMÓRIA
0 1 0 Q /Q MEMÓRIA
0 1 1 Q /Q MEMÓRIA
1 0 0 Q /Q MEMÓRIA
1 0 1 0 1 RESET
1 1 0 1 0 SET
1 1 1 1 1 INVÁLIDA
1.4. LATCH D, FLIP-FLOP D, FLIP-FLOP T
Latch D:
Q
Q
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
10
Flip-Flop D:
CLOCK D Q /Q CONDIÇÂO
0 0 Q /Q MANTÉM
0 1 Q /Q MANTÉM
1 0 0 1 RESET
1 1 1 0 SET
FF-D é uma variação do FF-RS, onde as duas entradas estão unidas
através de um inversor, e assim formando uma única entrada (D).
1.5. FLIP-FLOP D MESTRE-ESCRAVO ou D-MS
CLOCK D QM /QM QS /QS
1 0 0 1 QS /QS
0 0 QM /QM 0 1
1 1 1 0 QS /QS
0 1 QM /QM 1 0
(QM)
(/QM)
QS
/QS
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
11
1.6. ENTRADAS ASSÍNCRONAS
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
12
1.7. FLIP-FLOP JK
equivalente a
uma NAND
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
13
CLOCK J K Q /Q
0 0 0 Q /Q
0 0 1 Q /Q
0 1 0 Q /Q
0 1 1 Q /Q
1 0 0 Q /Q
1 0 1 0 1
1 1 0 1 0
1 1 1 INVERTE INVERTE
Exemplo de implementação de um FF-D edge triggered (disparado por borda
de subida)
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
14
1.8. APLICAÇÕES COM FLIP- FLOPS
1.8.1 EXEMPLO 1
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
15
1.8.2 EXEMPLO 2
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
16
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
17
1.9. CI´S DE FLIP-FLOPS
1.10. Detectando uma Seqüência de Entrada
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
18
t
tHL
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
19
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
20
2. REGISTRADORES
2.1. Armazenamento e Transferência de Dados
2.2. Transferência Paralela de Dados
Obs: “S” e “C” é o
mesmo que “SET”
e “RESET”
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
21
2.3. Transferência Serial de Dados: Registradores de
Deslocamento
2.4. Transferência Serial entre Registradores
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
22
2.5. Conversão Paralelo-Paralelo
2.6. Conversão Série-Paralelo
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
23
2.7. Conversão Paralelo-Série
2.8. Circuito Roteador ou Contador em Anel
No contador em anel, uma das saídas dos flip-flops está em 1 e as outras está em 0. Por ser
um registrador de deslocamento, esse 1 é transferido para o próximo flip-flop e assim
sucessivamente. A tabela abaixo mostra a seqüência da contagem.
Para o perfeito funcionamento deste tipo de contador, um dos flip-flops deve ter inicialmente
o valor 1 e os outros 0. Isso pode ser feito através das entradas assíncronas PRESET e CLEAR.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
24
2.9. Divisão de Freqüência e Contagem
Este circuito divide a freqüência do clock de entrada em 1/2n onde n é o
número de flip-flops utilizados.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
25
Exercícios:
Questão 1: Dados os Flip-Flops D das Sessões 1.5 e 1.6 vistos anteriomente,
apresente as saídas Q e /Q em função das entradas D e Ck. Suponha que a
condição inicial de Q é “0”.
D
Ck
Q
/Q
Tempo: 1 2 3 4 5 6 7 8
D
Ck
Q
/Q
Tempo: 1 2 3 4 5 6 7 8
FF-D,
Sessão
1.5
FF-D,
Sessão
1.6
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
26
Questão 2: Dado o Divisor de Freqüência da Sessão 2.9, implemente um circuito
que divide a freqüência por 16 e apresente o Diagrama de Tempo para
demonstrar seu funcionamento. Apresente também o circuito ao nível de portas
lógicas e calcule a freqüência máxima de operação deste, considerando que o
atraso de uma porta NAND-2 é 1 ns.
Questão 3: Suponha que uma versão de 8 bits do Circuito Conversor Paralelo-
Série (Sessão 2.7) esteja conectada ao Circuito Roteador ou Contador em Anel
visto na Sessão 2.8. Admitindo-se que:
a) a porta “A” de 8 bits de um microcontrolador esteja conectada ao
Circuito Conversor Paralelo-Série,
b) que a saída serial do circuito conversor acima controle a entrada “Clock”
do Contador em Anel, e
c) que as 4 saídas do Contador em Anel estejam conectadas a 4 relés que
comandam motores na linha de produção de uma dada fábrica,
responda: qual a sequencia de endereços que o microprocessador deve colocar
na porta “A” para que ele envie ative cada um dos motores pelo menos uma vez
(assuma que ativar os motores implica em enviar um nível lógico alto para o relé
que controla o referido motor.
Questão 4: Dado o Circuito Roteador ou Contador em Anel e o diagrama de
tempo da Sessão 2.8, pergunta-se: qual era a condição inicial deste circuito antes
do primeiro pulso de clock?
3. CONTADORES
3.1. Contador de Módulo 2n
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
27
3.2. Contador de Módulo < 2n
Até que valor conta
este circuito?
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
28
3.3. Diagrama de Transição de Estados
Explique o porquê
destes pulsos
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
29
3.4. Contadores Síncronos (Paralelos)
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
30
3.5. Contadores Síncronos com Carga Paralela
Exercício:
Apresente o
Diagrama de Tempo
deste circuito
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
31
4. Máquina de Estados (FSM): Mealy e Moore
As máquinas seqüenciais síncronas se classificam quanto à forma da
função de saída, em dois grandes tipos:
- Máquina de Moore
- Máquina de Mealy
Veremos a seguir as equações que definem estas máquinas:
4.1. Máquina de Moore
As equações que definem este tipo de circuito seqüencial síncrono são:
Qi+1 = f (E,Qi) onde: f é a função próximo estado
S = g (Qi) g é a função de saída
Note que o estado futuro ( Qi+1 ) depende do valor atual das entradas
e do estado em que o circuito se encontra. O valor das saídas (S), por outro
lado, depende apenas do estado atual.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
32
O diagrama de blocos genérico desta máquina seria:
Obs: - “f” e “g” são implementados usando lógica combinacional.
- a memória (que em geral é um registrador) guarda o estado atual Qi. Ela é
uma “barreira temporal” que, controlada pelo relógio (“clock”), impede a alteração
do estado, e portanto das saídas, antes do tempo previsto. Note que a cada ciclo
de relógio tem-se um novo Qi, e portanto, um novo Qi+1.
Numa máquina de Moore, o “futuro” (Qi+1) não consegue modificar o
“presente” (Qi) devido à barreira temporal. Quando chegar o “tempo” (clock), o
presente se torna o “passado” e o “futuro”, “presente”.
4.2. Máquina de Mealy
Suas equações são as seguintes:
Qi+1 = f (Qi, E) onde f: função próximo estado
S = g (Qi, E) g: função de saída
A diferença desta máquina para a de Moore é que o valor das saídas (S) é
função não somente do estado atual, mas também do valor instantâneo das
entradas. A máquina de Mealy é útil nas aplicações em que a manifestação das
entradas sobre as saídas não pode ser postergada até o próximo estado Qi+1
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
33
(isto é, as saídas devem reagir imediatamente a condições específicas das
entradas).
O diagrama de blocos genérico da máquina de Mealy é:
Aqui, o efeito das entradas faz parte do “presente” e manifestam-se
imediatamente nas saídas (S). Pode inclusive haver mudanças nas saídas entre
“transições” do relógio. Na máquina de Moore, o valor das saídas (S) é função
somente do estado, só mudando junto com as mudanças do relógio (as
“transições”), ou seja, na máquina de Moore a ação das entradas (E) só será
sentida no próximo estado, e de maneira indireta, já que E influi em Qi+1 e este
determinará os próximos valores das saídas. Por isso, a máquina de Mealy pode
produzir algumas saídas com avanço de até um ciclo de relógio em relação à
máquina de Moore. Em geral, as máquinas de Mealy são mais econômicas e
mas difíceis de se projetar.
Exemplo de Máquina de Moore:
Imaginemos um circuito digital que receba uma seqüência de entradas
(valores numéricos) e que coloque na saída o maior dos valores recebidos até
então. “E” (o vetor de entradas) terá 4 bits e será sempre positivo (variando,
portanto, na faixa E = (0000)2 = 0 até E = (1111)2 = 15). “S” (o vetor de saídas) é
uma variável do mesmo tipo de “E” (inteiro positivo representado em 4 bits). Para
facilitar faremos S = Qi , isto é, o próprio valor do vetor de estado é a saída,
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
34
tornando a função “g” trivial (a função identidade). A função “f” pode ser enunciada
como:
“Se E>Qi { Qi = S}
então Qi+1 = E {próximo valor de S será E}
senão Qi+1 = Qi {próximo valor de S será o atual}”
Este circuito é conhecido como Comparador de Magnitude.
Obs.: o sinal adicional RESET é
uma entrada “assíncrona”, que
serve para inicializar o circuito
seqüencial (por exemplo, forçar
o estado de RQ para (0000)2
antes do início do
funcionamento).
- Supusemos RQ sensível à borda de subida de CK.
- T = período do relógio (“clock”) = 1/f freqüência
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
35
A função “f” poderia ainda ser mais detalhada :
CM = Comparador de Magnitude
MUX = Multiplexador 2:1
Comparador : Se E >= Qi
Então MAIOR = 1
Senão MAIOR = 0
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
36
Multiplexador : Se SELECT = 1
Então Qi+1=E
Senão Qi+1=Qi
4.3. Projeto de Contadores Síncronos
Projeto de um contador Up/Down que conta 0 → 1 → 2 :
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
37
Contador Up/Down de 3 Bits em Código Gray
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
38
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
39
5. Memórias RAM e ROM
5.1 Memórias SRAM e DRAM
5.1.1 Introdução
Num contexto de sistemas computacionais a palavra “memória” é utilizada para designar um
conjunto de registradores no qual são armazenados programas e dados. Sob o ponto de vista do processador,
não há muita diferença se estes programas são sistemas operacionais, assemblers, compiladores ou softwares
de aplicação tais como editores de texto, planilhas ou jogos eletrônicos. É importante observar que a mesma
informação que é considerada dado em um momento, pode transformar-se em código no momento seguinte.
Por exemplo, quando o sistema operacional está carregando um editor de texto na memória, o conjunto de
instruções que formam o programa do editor de texto é considerado como dado pelo sistema operacional.
O desenvolvimento e expansão da tecnologia de fabricação de circuitos integrados para
armazenamento de dados determinaram o grande avanço dos computadores digitais. Até 1970, as memórias
de núcleo de ferrite eram de uso corrente. Entretanto, por causa de seu alto custo, grande consumo e
limitações em velocidade foram substituídos pelas memórias a semicondutores que lideram o mercado até
hoje.
Entre as principais características para se avaliar memórias, podemos destacar as seguintes:
- Densidade: Número de bits armazenados por área física. Está relacionado à capacidade total de
armazenamento.
- Velocidade: Se refere à rapidez com que os dados podem ser acessados (lidos) ou
armazenados(escritos).
- Potência: Potência consumida ou dissipada pela memória.
- Custo: Custo para armazenamento por bit, ou seja, o valor do semicondutor dividido pelo número
de bits que pode armazenar.
No manuseio de memórias é comum o uso de expressões referentes aos modos de operação, aos
terminais de entrada/saída, à capacidade de armazenamento e a sinais de controle. Dentre estas, cabe ressaltar:
- Escrita (Write): Termo usado para o procedimento de armazenamento de uma informação binária
na memória. Numa operação de escrita, a informação colocada nas entradas de dados é copiada numa posição
ou endereço da memória.
- Leitura (Read): Termo usado para o procedimento de obtenção, ou busca, de uma informação
armazenada em uma memória. Numa operação de leitura, a informação é armazenada na posição
correspondente às entradas de endereço e copiada nos bits de saída.
- Palavra (Word): Corresponde à informação formada por um grupo de bits armazenado em uma
determinada posição de memória que chamamos de endereço.
- Endereços (Address): Correspondem aos terminais do circuito integrado usados para identificar
uma certa posição de memória.
- Entrada de Dados (Data Input): Correspondem aos terminais do circuito integrado usados para
introdução dos dados a serem armazenados.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
40
- Saída de Dados (Data Output): Correspondem aos terminais do circuito integrado onde serão
colocados os dados armazenados numa dada posição da memória, em uma operação de leitura.
- Byte: Termo usado para uma informação binária que contém 8 bits.
- Kilobyte: Termo usado para um conjunto de 1.024 bytes.
- Memória volátil: É aquela que perde seu conteúdo na ausência de alimentação.
- Memória fixa: É aquela que não perde seu conteúdo na ausência de alimentação.
- Habilitação do CI (Chip Enable): Um terminal do circuito integrado, quando polarizado
convenientemente habilita ou desabilita a operação do chip provocando uma redução na potência dissipada e
impedindo a operação de escrita e leitura. Normalmente tais entradas são designadas por CE (Chip Enable)
quando a habilitação é com NL1 ou CE barrado quando a habilitação é com NL0. Alguns chips são
designados por CS (Chip Select) em vez de CE, porém ambos têm a mesma finalidade.
As memórias podem ser divididas em dois tipos: Memórias apenas de Leitura (ROM) e Memórias de
Acesso Aleatório (RAM).
As memórias ROM são do tipo não volátil e permitem o acesso aleatório a qualquer um dos
endereços. Permite apenas a leitura do conteúdo e é destinada a guardar uma informação de forma
permanente. As memórias RAM são do tipo volátil e permitem o acesso aleatório a qualquer um dos
endereços tanto para a escrita quanto para a leitura. São usadas para armazenar temporariamente as
informações, tais como os programas dos usuários (principalmente de computador).
5.1.2 Organização Interna de uma Memória
Uma memória constitui-se de uma matriz (array) de células de memória, cada célula com
capacidade de armazenar um bit. Da mesma forma que em programas de alto nível, estes arrays podem ser
unidimensionais ou multidimensionais. Para reduzir o número de linhas necessárias para comunicar o
endereço da célula (ou palavra) que está sendo endereçada, o endereço fornecido pelo processador é
codificado em N linhas de endereço. Dado este endereço, é preciso utilizar um circuito decodificador para
identificar dentre as 2N
possíveis posições de memória, qual que está sendo lida/escrita. Um possível circuito
decodificador é ilustrado na fig. 6.1. O circuito que implementa o decodificador desta figura é mostrado na
fig. 6.2.
Fig. 6.1. Circuito decodificador de 3 para 8 linhas.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
41
Fig. 6.2. Circuito que implementa o decodificador de 3 para 8 linhas.
Observe que para um codificador de 3 linhas de endereço para 8 linhas de dados são necessárias 8
portas AND com 3 entradas por porta.
Numa estrutura de array unidimensional, um único decodificador é necessário, conforme ilustrado
na fig. 6.3. Considere uma memória com 4 Kbits (4096 bits). Para endereçar individualmente cada um dos
bits desta estrutura são necessárias 12 linhas de endereço. Na estrutura unidimensional é necessário um
decodificador com 4096 portas AND, cada uma com 12 entradas.
Para simplificar os decodificadores, arrays bidimensionais são mais comumente utilizados para
implementar memórias. A mesma memória de 4Kbits pode ser endereçada através de 6 linhas de endereço
de linha e 6 linhas de endereço de coluna. Esta memória precisa de dois decodificadores, cada
decodificador com 64 portas AND, com 6 entradas cada uma. Isto representa uma economia de 4096 - (2 x
64) = 3968 portas AND. Uma estrutura interna bidimensional é mostrada na fig. 6.4.
Fig. 6.3. Estrutura interna unidimensional de uma memória.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
42
(a)
(b) (c)
Fig. 6.4. Memória RAM: (a) Estrutura interna bidimensional de uma memória; (b) Célula de memória
SRAM; (c) Célula de memória DRAM
Gnd
Bit node
(Capacitor Drain-Bulk)
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
43
A figura seguinte mostra que a RAM dinâmica apresenta um terminal a mais em relação à RAM estática,
responsável pelo Refresh (revivamento) a fim de não perder o conteúdoarmazenado dentro das células.
A tabela abaixo mostra os valores que devem ser inseridos nos terminais CE e WE para que se
possa acessar a memória para leitura e escrita.
Além da vantagem de redução na complexidade dos decodificadores, um array bidimensional
pode reduzir o número de pinos necessários no chip de memória. Isto é feito através da multiplexação
dos pinos que fornecem o endereço de linha e de coluna. A fig. 6.5 ilustra os processos de multiplexação e
demultiplicação que ocorre para cada par de linhas fora e dentro do chip, respectivamente. Observe que uma
estrutura similar à mostrada na fig. 6.5 terá que ser construída para cada par de linhas de endereços que
compartilham pinos do chip.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
44
Fig. 6.5. Multiplexação de linhas de endereço para compartilhamento de pinos.
Por exemplo, o chip de memória µPD4216800 da NEC Electronics que possui uma capacidade de
armazenamento de 2 Mbytes tem apenas doze linhas de endereço. Isto é conseguido endereçando os dados
não bit-a-bit, mas byte-a-byte. O que significa que cada uma das células do array de memória armazena não
mais um bit, mas sim um byte. Ainda assim, doze linhas de endereço seriam apenas suficiente para endereçar
212
= 4096 = 4Kbytes. Como é feita a mágica?
A “mágica” é realizada por uma multiplexação externa ao chip das linhas de endereço e uma
demultiplexação interna como ilustra a fig. 6.6. Neste chip especificamente são utilizadas 12 linhas de
endereço para endereçar as linhas da matriz de memória e 9 linhas para as colunas. Portanto temos uma matriz
de 212
x 29
= 4096 x 512 = 221
= 2.097.152 = 2Mbytes.
Fig. 6.6. Representação do chip PD4216800.
Pergunta: É possível implementar a mesma organização de memória (2 Mbytes) com apenas
11 linhas de endereço? E com 10?
Com 11 linhas, sim: implementando o array de células com fator de forma quase igual a 1. Assim,
multiplexa-se as 11 linhas de endereço para as linhas da matriz e depois dez das onze linhas para as colunas,
num total de 211
x 210
= 221
bytes acessados. Com 10 linhas de endereço não é possível: 210
x 210
= 220
= 1.048.576 = 1Mbytes.
A0
A1
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
45
5.1.3 Chip de Memória
Agora que conhecemos a estrutura interna de uma memória, podemos subir um nível de abstração e
considerar memórias como “chips” prontos, que podemos utilizar em um sistema computacional baseado em
microprocessadores. Um destes chips é representado na fig. 6.6.
RAS (Row Address Strobe) é o sinal que indica para o chip de memória que o endereço da linha da
memória que está sendo acessada está presente no barramento de endereço. CAS (Column Address Strobe)
indica que o endereço da coluna da memória que está sendo acessada está presente no barramento de
endereços e WE indica que a operação é de escrita (quando está ativado) ou de leitura (quando está
desativado)1.
Para operar adequadamente, os sinais de endereço e dados devem ser fornecidos ao chip de memória
em sincronismo com os sinais de controle (RAS, CAS e WE). O diagrama de tempos simplificado para o
ciclo de leitura é apresentado na fig. 6.7.
Fig. 6.7. Diagrama de tempo simplificado do ciclo de leitura do µPD4216800.
5.1.4 Mapeamento de Memória
Considere um chip de memória capaz de armazenar 2 Mbytes e suponha que queremos
implementar um sistema microprocessado com capacidade de armazenamento de 16 Mbytes, cuja memória é
organizada em palavras de 16 bits. Como organizaríamos este sistema?
Solução: Uma forma natural de organizar esta memória seria colocar dois chips µPD4216800 lado
a lado para formar uma palavra de 16 bits, e utilizar 4 destas combinações para alcançar os 16 Mbytes de
memória desejado. Supondo que esta área de 16 Mbytes de memória inicie no endereço 0000.0000, a
organização desta memória ficaria conforme indicado na tabela 6.1.
1 A barra em cima do nome do sinal indica que o sinal é ativo baixo, isto é, o sinal deve ser considerado
ativado ou verdadeiro quando o seu nível elétrico é baixo e desativado ou falso quando o seu nível elétrico é
alto.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
46
ENDEREÇOS
(23 bits)
Dados (16 bits) Palavras
Endereçáveis
A
31 A
0 d
15 d
8 d
7 d
0
0000 0000
001F FFFF Mem0 Mem1 2M
0020 0000
003F FFFF Mem2 Mem3 2M
0040 0000
005F FFFF Mem4 Mem5 2M
0060 0000
007F FFFF Mem6 Mem7 2M
Tabela 6.1. Organização do espaço de endereçamento de memória.
Como a tabela 6.1 indica, as linhas de endereçamento A22 e A21 (A22/A21 = 00, 01, 10, 11, para
Mem0/Mem1, Mem2/Mem3, Mem4/Mem5, Mem6/Mem7, respectivamente) são utilizadas para fazer a
seleção entre os 4 slots do sistema. Estas linhas podem ser usadas como entradas de um decodificador cujas
saídas são utilizadas na geração de um sinal de Chip Select (CS) para os respectivos slots, conforme ilustrado
na fig. 6.8.
Mem0/Mem1
Mem2/Mem3
Mem4/Mem5
Mem6/Mem7
Chip Select's:
A22
A21
22 21 20 19
Linhas de EndereçoBancos de
Memória
Mem0/Mem1
Mem2/Mem3
Mem4/Mem5
Mem6/Mem7
0 0 0 00 0 1 1
0 1 0 00 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Fig. 6.8. Decodificador de endereços.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
47
Fig. 6.9. Organização do Sistema de Memória com capacidade para 16MBytes e palavras de 16 bits.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
48
Exercício:
Dada uma célula de memória RAM, pergunta-se.
a) esssa célula é de uma RAM estática ou dinâmica? Justifique.
b) Preencher a tabela abaixo indicando se os transistores MOS estão cortados (0 =) ou conduzindo
(= 1), de acordo com a ordem dos fatos.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
49
5.2 Memórias ROM, PROM, EPROM e E2PROM
A seguir, estudaremos as memórias ROM que possuem as seguintes classificações:
ROM (Read Only Memory): Essa foi o primeiro tipo de memória da família ROM que surgiu e a
informação é gravada pelo fabricante através da queima de componentes (diodos, fusíveis ou transistores
bipolares) em uma matriz conforme a solicitação do projetista.
O funcionamento por queima de componentes é muito simples. Sempre que houver a necessidade de
se gravar “1” mantém-se a integridade do componente, caso contrário queima-se o mesmo. Para uma memória
constituída de fusíveis, quando se coloca “Vcc” no terminal de entrada de um fusível, obtém-se na saída o
nível lógico “1”. No entanto, quando se coloca “Vcc” no terminal de entrada de um fusível queimado, obtém-
se na saída o nível lógico “0”, formando assim a lógica de gravação de uma memória do tipo ROM.
A utilização da memória ROM tem duas grandes desvantagens:
1- Como a gravação depende do fabricante, o projetista fica sujeito a morosidade da entrega da
memória gravada.
2- O custo é alto, viabilizando o uso da memória apenas para produtos produzidos em larga escala,
pois a aquisição de memórias em grandes volumes reduz o custo por unidade.
PROM (Programmable Read Only Memory): Esse tipo de memória soluciona os problemas
levantados pelas desvantagens do uso da memória ROM, pois nesse caso a gravação é feita pelo próprio
projetista. Essa gravação funciona da mesma maneira que na ROM, ou seja, por queima de componentes
(normalmente diodos ou fusíveis).
O procedimento para a queima dos componentes é fornecido pelos fabricantes e específico para cada
circuito. A gravação é executada através de um aparelho chamado “Gravador de PROM”, que tem como
função a queima dos componentes conforme a tabela de gravação do projeto.
A memória PROM apresenta ainda uma grande desvantagem, pois uma vez programada (gravada)
não pode ser apagada para correções ou nova utilização. Isto ocorre porque uma vez que houve a queima dos
componentes é impossível a sua substituição.
EPROM (Erasable Programmable Read Only Memory): Essas memórias podem ser
programadas e reprogramadas pelo usuário, ou seja, em caso de erros de programação o chip não precisa ser
descartado, como no caso das memórias ROM e PROM. A programação (gravação) é feita pela aplicação de
sinais elétricos convenientes em pinos do chip e indicados pelos fabricantes.
A EPROM é um dispositivo com arquitetura similar às PROMs, mas do tipo MOS (“Metal Oxide
Semicondutor”), onde o conjunto inteiro das informações armazenadas pode ser apagado através da aplicação
de raios ultravioleta em uma janela de quartz localizada numa das faces do chip. Este raio deve possuir
comprimento de onda em torno de 2.537 Å, uma potência própria indicada pelo fabricante e ser aplicado
durante um intervalo de tempo situado entre 10 e 30 minutos. A gravação é feita através de circuitos
eletrônicos especiais, ou seja, um aparelho chamado de “Gravador de EPROM”.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
50
Essa memória é implementada usando o princípio de armazenamento do tipo “Floating-gate
Avalanche Injection MOS”. Num transistor PMOS, um potencial negativo aplicado ao gate produz um canal
de condução de cargas positivas (buracos) entre a fonte e o dreno. No transistor NMOS, para causar a
condução da fonte para o dreno e o conseqüente armazenamento de cargas negativas no gate, devemos aplicar
um pulso da ordem de 25 a 50 volts na junção p-n (dreno / fonte). Cerca de 20 a 30 % da carga armazenada se
perde depois de 20 anos. Ver figura abaixo.
Transistor nMOS Transistor pMOS
O pulso de programação é aplicado em um pino próprio do circuito no qual foram polarizadas as
linhas de dados e endereços. A duração típica desse pulso é da ordem de 1 ms e é encessário 1 destes pulsos
para cada endereço que se deseja programar na EPROM. O apagamento ocorre quando os elétrons
armazenados retornam ao substrato pela exposição aos raios ultravioletas.
E2
PROM (Electrically Erasable Programmable Read Only Memory): Neste tipo de
memória, tanto a gravação como a desgravação são feitas por sinais elétricos, ou seja, pode-se ler e escrever
na memória E2
PROM sem ter a necessidade de retirar-la da placa de circuito impresso para apagar-la e depois
gravar-la novamente no aparelho gravador. A principal tecnologia utilizada é a nMOS. Na verdade é um
transistor MOS modificado que é usado como um capacitor de carga que alcança um tempo de
armazenamento entre 20 e 30 anos.
Uma tensão elevada e da ordem de 20 volts entre a porta e dreno provoca a indução de cargas nas
portas flutuantes que ali permanecem quando a tensão é retirada. Uma tensão reversa apaga a carga
armazenada. Desta forma, tanto a programação como o apagamento pode ser feito por endereços de memória.
Não é preciso apagar toda a memória para corrigir algum dado ou usar a memória com novos valores.
Também não é necessário retirar os circuitos integrados dos soquetes. A memória E2
PROM pode ser
inteiramente gravada ou apagada em um tempo da ordem de 10 ms.
Essa memória pode ser confundida com a RAM uma vez que pode ser lida e escrita no próprio
circuito, porém a E2
PROM quando gravada permanece com os dados armazenados mesmo que se retire sua
alimentação, o que é característica básica de uma memória da família ROM, sem contar que a arquitetura é
similar à da EPROM.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
51
Dimensionamento de Memórias:
O dimensionamento de memórias é igual para qualquer tipo de memória, seja da família ROM ou da
família RAM. Para melhor compreender o dimensionamento ou tamanho de memória, vamos exemplificar
através das figuras seguintes:
As figuras A e B representam uma determinada memória da família ROM totalmente fictícia. A
figura A representa a forma como os bits são armazenados dentro da memória, ou seja, cada linha significa
um endereço, que conforme o exemplo dado, vai de “0” a “2.047”, resultando num total de 2.048 endereços.
Verifique que nesse exemplo cada endereço tem 10 bits, sendo que no total essa memória tem 20.480 bits. O
dimensionamento é dado na seguinte formato:
Nesse exemplo então, a memória tem tamanho de 2.048 x 10, ou seja, 2.048 endereços sendo que em
cada endereço tem 10 bits. Nesse exemplo, como existem 2.048 endereços então existem 2.048 pinos no chip
para poder acessar cada um desses endereços?
Claro que não, pois se você reparar na figura B (pinagem do circuito integrado) vai observar que
existem 11 pinos para o endereçamento dos 2.048 endereços, que vai do pino A0 até o pino A10. Isso é
possível devido a seguinte fórmula:
Número de endereços = 2Número de pinos de endereço
O número de pinos de saída da memória depende de quantos bits existem por endereço, pois desta
forma se houver 10 bits por endereço, esse invólucro terá 10 pinos de saída (Q), onde cada pino de saída
representa um bit gravado no determinado endereço. Por exemplo: se for acionado o endereço 3 da memória
fictícia anterior, devemos introduzir nos pinos de entrada o seguinte código: 00000000011 e a saída da
memória será 0111011000. Não devemos esquecer de introduzir “0” no pino CE para poder habilitar a
memória. Ainda com esse exemplo fictício, podemos mostrar as 3 maneiras de se dimensionar uma memória:
2.048 x 10 ou 2K x 10 ou 211 x 10
Quando for comprar uma memória, nunca se deve solicitar ao vendedor pelo tamanho (dimensão) da
mesma e sim pelo código obtido através dos databooks dos fabricantes de memórias. Caso não tenha o
tamanho necessário para o projeto, deve-se então partir para a “Associação de Memórias”.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
52
Configuração Interna da Memória:
A construção interna de uma memória da família ROM é feita pelo processo matricial conforme o
desenho seguinte. No caso de memórias do tipo ROM ou PROM que funcionam por queima de componentes
(diodo, fusível ou transistor bipolar), o seu princípio de construção é feito através do cruzamento de todos os
endereços com todas as saídas pelo sistema matricial, onde cada cruzamento é constituído por um dos
componentes a serem queimados conforme a conveniência. Já nos casos da EPROM ou da E2PROM também
é pelo processo matricial descrito acima, só que em cada cruzamento fazem parte os transistores da família
MOS que evidentemente neste caso não serão queimados e sim polarizados convenientemente.
Verificando-se o exemplo da configuração interna da figura, nota-se que o cruzamento dos endereços com as
saídas dá-se através de diodos (no caso ainda virgens). Sendo uma ROM ou PROM tanto pode ter nos
cruzamentos diodos como fusíveis ou transistores que funcionarão pela queima dos mesmos.
Se a memória for constituída internamente por transistores bipolares, o tempo de acesso é de
aproximadamente 50 ns. Tempo de acesso significa o período decorrido desde o momento em que a memória
foi endereçada até que a palavra esteja disponível na saída da memória.
As memórias EPROM ou E2PROM são constituídas com o mesmo tipo de arquitetura interna, ou seja
matricial (endereços por saídas), só que o cruzamento é feito através de transistores da família MOS.
O tempo de acesso através de dispositivos MOS é de aproximadamente 400 ns. A vantagem do transistor
MOS é por ser mais econômico, mas em compensação é mais lento que o bipolar.
Exemplo: Determine como será a gravação de uma memória ROM 8 x 4, conforme a tabela abaixo:
Resposta: O desenho abaixo representa uma memória ROM virgem de tamanho 8 x 4, ou seja, 8
endereços (3 pinos de entrada) por 4 bits por endereço (4 pinos de saída). Observe que o DEMUX tem a
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
53
função de decodificar os 3 pinos de entrada (A2, A1 e A0) em 8 endereços, onde cada endereço corresponde a
uma coluna e cada saída corresponde a uma linha. O cruzamento das colunas com as linhas é feito através dos
diodos (ainda não queimados).
A próxima figura representa o circuito interno da memória ROM com os componentes já queimados
segundo a tabela de gravação necessária para a realização do suposto projeto. Os diodos queimados estão
ausentes no desenho e em seu lugar aparece uma pequena mancha que representa a queima do componente.
Vamos introduzir nos pinos de entrada da memória os seguintes dados: A2 = 0, A1 = 0 e A0 = 0.
Dessa maneira o DEMUX vai acoplar a sua entrada (Vcc) com a primeira saída (S0). Isto significa que S0
está em NL1 enquanto as demais saídas do DEMUX estão em NL0. Observe agora que o fio que sai de S0
está fazendo contato apenas com a 3º e 4º linhas através dos diodos, enquanto que a 1º e 2º linhas não fazem
contato com o fio de S0, pois estes diodos foram queimados. Dessa maneira, o NL1 vai parar apenas nas
saídas Q1 e Q0 do DEMUX, enquanto que Q3 e Q2 estão em NL0.
Assim, temos: A2 = 0, A1 = 0 e A0 = 0 resultando em Q3 = 0, Q2 = 0, Q1 = 1 e Q0 = 1, conforme
solicitado pela tabela de gravação do projeto. A cada combinação estabelecida nos pinos de entrada da
memória, será chamada uma das saídas do DEMUX. Conforme a saída do DEMUX que foi acoplada ao Vcc,
encontrará um conjunto de componentes inteiros e queimados de acordo com a conveniência da gravação e
desta maneira teremos um conjunto de saídas da memória diferenciada para cada conjunto de entradas.
Pontifícia Universidade Católica do Rio Grande do Sul Faculdade de Engenharia Eletrônica Digital - ECA
Prof. Fabian Vargas
54
Exercício: Dado o circuito interno da memória abaixo, determine os itens a seguir:
a) A dimensão desta memória.
b) A tabela de gravação.
c) É possível apagar essa memória? Justifique.
d) Qual a finalidade do CE (Chip Enable) ou CS (Chip Select)?