CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE SANTA CATARINA
            GERÊNCIA EDUCACIONAL DE ELETRÔNICA
      CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS DIGITAIS




     LÓGICA SEQÜENCIAL

                    Prof. Joel Lacerda
                  Prof. Wilson B. Zapelini




                       FLORIANÓPOLIS
                            2006
SUMÁRIO                                                                Página
1 A NECESSIDADE DA MEMÓRIA OU ESTADO SEQÜENCIAL ..................                                                   02
  1.1 Conceito de memória ...............................................................................            02
  1.2 Impacto da memória seqüencial no desempenho de sistemas
       automatizados .........................................................................................       04
  1.3 Obtenção do efeito memória (buffer realimentado) ..................................                            04
2 A DEFINIÇÃO DE FLIP-FLOPS ....................................................................                     06
  2.1 Flip-flop SR básico ...................................................................................        06
  2.2 Diagrama de tempo ..................................................................................           07
3 APERFEIÇOAMENTO DO FLIP-FLOP .........................................................                             08
  3.1 Necessidade de sincronismo ....................................................................                08
  3.2 Lógica (terminais e estados) ....................................................................              08
  3.3 Flip-flop SR comandado por pulso de clock .............................................                        08
  3.4 Flip-flop JK (eliminação do estado proibido) ............................................                      09
  3.5 Flip-flop JK Mestre-Escravo (eliminação da oscilação) ............................                             10
  3.6 Flip-flop JK Mestre-Escravo com terminais de programa – entradas
       preset e clear ...........................................................................................    11
  3.7 Flip-flop T (Toggle) ...................................................................................       11
  3.8 Flip-flop D (Data) ......................................................................................      12
   Experiência 1 .................................................................................................   18
4 REGISTRADORES DE DESLOCAMENTO ...................................................                                  20
  4.1 Conceito ...................................................................................................   20
  4.2 Características ..........................................................................................     20
  4.3 Aplicações ................................................................................................    20
  4.4 Classificação ............................................................................................     20
  4.5 Configurações ..........................................................................................       20
  4.6 Registrador de deslocamento usado como divisor por 2 .........................                                 23
  4.7 Registrador de deslocamento usado como multiplicador por 2 ................                                    23
  Experiência 2 ..................................................................................................   26
5 CONTADORES ..............................................................................................          26
  5.1 Contadores assíncronos ...........................................................................             26
  5.2 Contadores síncronos ..............................................................................            34
  5.3 Contadores para circuitos temporizados ..................................................                      38
  5.4 Contadores integrados .............................................................................            39
  Experiência 3 ..................................................................................................   50
  Experiência 4 ..................................................................................................   52
  Experiência 5 ..................................................................................................   53
6 MEMÓRIAS SEMICONDUTORAS ................................................................                           55
  6.1 Introdução .................................................................................................   55
  6.2 Estrutura e organização da memória .......................................................                     55
  6.3 Princípios de operação .............................................................................           56
  6.4 Estruturas de endereçamento ..................................................................                 57
  6.5 Classificação das memórias .....................................................................               59
  6.6 Tipos de memórias ...................................................................................          61
  Experiência 6 ..................................................................................................   74
7 MÁQUINAS DE ESTADOS ............................................................................                   79
  7.1 Modelo geral .............................................................................................     79
  7.2 Análise de máquinas de estados ..............................................................                  80
  7.3 Síntese de máquinas de estados .............................................................                   85
REFERÊNCIAS BIBLIOGRÁFICAS .................................................................                         92



                                                             1
1 A NECESSIDADE DA MEMÓRIA OU ESTADO SEQÜENCIAL

1.1 CONCEITO DE MEMÓRIA

Qualquer dispositivo ou circuito que tem dois estados estáveis é dito biestável como, por
exemplo, uma chave de conexão. Ela pode estar aberta ou fechada, dependendo da
posição da alavanca. Esta chave possui uma memória, visto que ela permanecerá em um
estado definido até que alguém ou algo mude a posição da alavanca.

Quando um sinal de entrada é aplicado num dispositivo, a saída muda em resposta à
entrada. Quando o sinal de entrada é removido, a saída retorna ao seu estado original.
Este dispositivo não exibe a propriedade de memória, já que sua saída volta ao estado
anterior.

Existem dispositivos e circuitos digitais que possuem memória, onde quando um sinal de
entrada é aplicado, a saída poderá mudar seu estado, mas permanecerá neste estado
mesmo após a entrada ter sido removida. Esta propriedade de reter sua resposta a uma
entrada momentânea é chamada memória.




Portanto, memória é todo dispositivo que permite a perpetuação de uma informação ao
longo do tempo. Costumamos classificar como tendo capacidade de memória a mente
humana e os processadores digitais, mas há inúmeras outras formas de memória. Os
livros, as fotografias, os discos de música são também dispositivos de memória.

Mesmo coisas muito simples podem funcionar como memórias. Conta-se que Albert
Einstein usava a caneta no bolso esquerdo ou direito para lembrar se já havia almoçado
ou não. Portanto, é a memória que nos dá, pela lembrança do passado, a noção de
tempo. Sem ela, viveríamos num eterno presente, não poderíamos discriminar o que é,
daquilo que já foi e do que será.

É o que ocorre aos sistemas digitais baseados em lógica combinacional. Os estados de
suas saídas são dependentes apenas dos estados presentes (instantâneos) das entradas,
logo, estes sistemas não conseguem lidar com a variável tempo e perceber seqüências
de eventos, portanto, são incapazes de resolver qualquer problema que envolva a noção
de tempo.

Tome-se o exemplo do controle automático de enchimento de uma caixa d’água.
Pretende-se que o sistema controle a válvula de entrada V a partir de dois sensores de
nível de água A e B, como no esquema a seguir.




                                           2
A                              V
                                                    LÓGICA
                                                 COMBINACIONAL

                              B

Pretende-se que a válvula V seja aberta quando o sensor B estiver descoberto e só volte
a ser fechada quando o sensor A estiver coberto. Se tentarmos resolver o problema
usando lógica combinacional, obtém-se a tabela da verdade.
Usando a convenção para: - Sensores A e B: 0 – descoberto; 1 – coberto
                          - Válvula V      : 0 – fechada; 1 – aberta

        A       B       V
        0       0       1
        0       1       ? (0 quando esvazia e 1 quando enche)
        1       0       X (impossível)
        1       1       0

Portanto, alguma variável precisa informar à lógica se no momento a caixa está em
processo de enchimento ou esvaziamento, “lembrando” qual foi o último estado
alcançado, isto é, cheio (V=0) ou vazio (V=1). O novo diagrama é mostrado abaixo.



                              A                              V
                                                    LÓGICA
                                                 COMBINACIONAL

                             B             M
                                                     MEMÓRIA


Uma nova tabela da verdade, incorporando a variável de memorização é mostrada
abaixo.

    M       A       B    V
    0       0       0    1 (liga válvula, caixa acabou de esvaziar)
    0       0       1    0 (caixa esvaziando)
    0       1       0    X (impossível)
    0       1       1    0 (válvula foi recentemente desligada)
    1       0       0    1 (válvula foi recentemente ligada)
    1       0       1    1 (caixa enchendo)
    1       1       0    X (impossível)
    1       1       1    0 (desliga válvula, caixa acabou de encher)

Ao conjunto do bloco combinacional mais o dispositivo de memória chamamos lógica
seqüencial. Nesta lógica, os estados presentes das saídas não dependem apenas dos
estados das entradas, mas também dos estados anteriores do próprio sistema.
Para a solução do problema da caixa d’água usamos um dispositivo de memória capaz de
armazenar um bit, que é a definição funcional de flip-flop.
                                            3
1.2 IMPACTO DA MEMÓRIA SEQÜENCIAL NO DESEMPENHO DE SISTEMAS
     AUTOMATIZADOS

Os sistemas digitais dividem-se em duas classes: sistemas combinacionais e sistemas
seqüenciais.

Nos sistemas combinacionais, uma saída no tempo t depende somente da entrada no
tempo t. Neste caso, o sistema não tem memória porque a saída não depende de
entradas prévias. Portanto, a saída é dependente, única e exclusivamente, das variáveis
de entrada.

Exemplo: um cadeado de códigos (usado para prender bicicletas) – o cadeado será
aberto num dado tempo t quando o código do cadeado é colocado nas entradas em t,
sem considerar a história nas entradas. Se for o código 234, por exemplo, o cadeado será
aberto quando esta combinação for colocada nas entradas, independentemente da ordem
de colocação dos dígitos do código.

Nos sistemas seqüenciais, uma saída no tempo t depende da entrada no tempo t e,
possivelmente, também depende da entrada no tempo anterior a t. A saída é dependente
das variáveis de entrada e/ou de seus estados anteriores armazenados.

Exemplo: um sistema de discagem telefônica – o número de um assinante a ser
discado será efetuado num dado instante t, se forem satisfeitas as seguintes condições:
a) os dígitos discados antes do instante t devem seguir a seqüência daquela do número
do assinante; b) o dígito discado no instante t, isto é, o último a ser discado, corresponde
ao último dígito do número do assinante; c) todos os dígitos devem estar memorizados e
disponibilizados na mesma seqüência da discagem no instante t.


1.3 OBTENÇÃO DO EFEITO MEMÓRIA (BUFFER REALIMENTADO)

Construtivamente, um flip-flop pode ser descrito como um inversor realimentado por um
outro inversor, como mostra o desenho abaixo.

 D                     Q




Observando o diagrama, percebemos que uma vez imposto um estado lógico à entrada
D, o estado da saída Q se manterá indefinidamente. Como podemos mudar do estado de
Q sem provocar uma contradição com o estado de Q ? A solução é adicionar terminais de
entrada, substituindo os inversores por portas lógicas Não-E.

 S                                      S
                        Q                                        Q




 Q
                        R                                        Q
                                         R




                                             4
Agora podemos levar Q a 1 impondo 0 em S (set) e levar Q a 0 impondo 0 em R (reset),
armazenando o estado que desejamos no flip-flop.

Entretanto, o flip-flop deve ser aperfeiçoado para satisfazer à definição lógica de flip-flop:
Um dispositivo com duas saídas complementares Q e Q , com duas entradas S e R que
operam de acordo com a tabela abaixo.


      S      R       Q        Q
      0      0      não permitido
      0      1       1        0
      1      0       0        1
      1      1       QA      QA

Um circuito eletrônico é biestável quando possui dois estados estáveis, isto é, sua saída é
0 Vcc (nível lógico 0) ou +5V (nível lógico 1). Assim, este dispositivo pode ser usado para
armazenar um dígito binário (bit).




                                              5
2 A DEFINIÇÃO DE FLIP-FLOPS

O flip-flop é um elemento de circuito que pode apresentar em seu funcionamento apenas
dois estados estáveis. Com a aplicação de um sinal de entrada pode-se efetuar a
mudança de um estado para outro e de se conhecer o respectivo estado em que se
encontra. Assim, este circuito é considerado como uma célula básica de memória da
lógica seqüencial capaz de armazenar um bit.

2.1 FLIP-FLOP SR BÁSICO

Possui duas entradas, definidas como Set e Reset e duas saídas Q e Q. Estas saídas
somente podem permanecer com valores lógicos complementares.




       S     R      QA                   QF                    S    R      QF
       0     0      0               0 - estável    QA          0    0      QA
       0     0      1               1 - estável                0    1       0
       0     1      0               0 - estável     0          1    0       1
       0     1      1               0 - instável               1    1   não perm.
       1     0      0               1 - instável   1
       1     0      1               1 - estável
       1     1      0      1 - instável (não permitido)
       1     1      1      1 - instável (não permitido)


2.2 DIAGRAMA DE TEMPO

Os gráficos ou diagramas de nível lógico x tempo fornecem uma representação visual
do desenvolvimento de sinais no tempo, bem como uma demonstração gráfica de
comparação entre sinais em vários pontos de um circuito lógico. Assim, são muito usados
em sistemas seqüenciais.




                                           6
Exemplo de diagrama de tempo de um flip-flop SR


     S


     R


    Q


    Q




                                      7
3 APERFEIÇOAMENTO DO FLIP-FLOP

3.1 NECESSIDADE DE SINCRONISMO

O flip-flop visto anteriormente não permite nenhum tipo de controle sobre as entradas, isto
é, quando as informações chegam às entradas, são imediatamente processadas sem
nenhum tipo de controle.

Para corrigir este problema é incorporada uma entrada de controle denominada clock
(para flip-flops) ou enable (para latches), permitindo um controle sobre as informações de
entrada e estabelecendo um sincronismo na operação do circuito.

Desse modo, é possível sincronizar o flip-flop (ativar ou desativar) com o intuito de
armazenar a informação em qualquer instante e, então, reter a informação armazenada
por qualquer período de tempo desejado.

3.2 LÓGICA (TERMINAIS E ESTADOS)

O flip-flop pode ser representado por um bloco com duas saídas Q e Q , entradas para as
variáveis e uma entrada de controle (clock/enable).

As duas saídas correspondem aos dois estados estáveis e complementares. Para que o
flip-flop possa assumir um destes estados, é necessário que haja uma combinação das
variáveis de entrada e de um pulso de controle clock/enable. Com este pulso, o flip-flop
permanecerá nesse estado ou mudará até a chegada de um novo pulso de controle, que
poderá novamente manter ou mudar o estado. Portanto, a saída depende dos valores das
entradas e/ou dos estados armazenados;

Entrada 1                                                   Q
Clock/Enable                       FLIP-FLOP
                                                             Q
Entrada 2


3.3 FLIP-FLOP SR COMANDADO POR CONTROLE ENABLE




Para Enable = 0 ⇒ a saída Q do flip-flop mantém seu estado armazenado;
Para Enable = 1 ⇒ o flip-flop responde conforme os níveis lógicos das entradas.



                                            8
CONVENÇÕES E SIMBOLOGIAS

O latch responde em nível (0 ou 1) e o flip-flop responde em transição (subida ou
descida).

Se o circuito de controle detecta: - transição ⇒ Clock (Ck)
                                   - nível     ⇒ Enable (En)


             1                         0                sub                desc


Exemplo de diagrama de tempo de um flip-flop SR ativado em nível lógico 1

                     1             2       3        4          5       6               7

     Ck


      S


      R

     Q

     Q

3.4 FLIP-FLOP JK (ELIMINAÇÃO DO ESTADO PROIBIDO)

Objetivo: evitar a saída Q com situação não permitida.




         J       K       QA   QA   S   R       QF                  J   K          QF
         0       0       0    1    0   0       0    QA             0   0          QA
         0       0       1    0    0   0       1                   0   1          0
         0       1       0    1    0   0       0    0              1   0          1
         0       1       1    0    0   1       0                   1   1          QA
         1       0       0    1    1   0       1    1
         1       0       1    0    0   0       1
         1       1       0    1    1   0       1    QA
         1       1       1    0    0   1       0

                                               9
Circuito análogo do Flip-flop JK (com portas lógicas Não-E)




Característica inconveniente no funcionamento do circuito
⇒ Para J e K = 1, ocorrem constantes oscilações (mudanças de estado) na saída Q, em
  função das duplas realimentações.
Possíveis soluções
⇒ forçar o clock para zero num tempo conveniente após a aplicação dos níveis lógicos
  nas entradas J e K (deve levar em conta o atraso na propagação de cada porta lógica);
⇒ inserir blocos (portas lógicas) de atraso em série com as linhas de realimentação e
  comutar a entrada clock da mesma forma.

3.5 FLIP-FLOP JK MESTRE-ESCRAVO (ELIMINAÇÃO DA OSCILAÇÃO)

O flip-flop JK, quando ativado, funciona como um circuito combinacional, isto é, ocorre a
passagem das entradas J e K e da realimentação, provocando alterações sucessivas na
saída Q.
Objetivo: evitar as constantes oscilações na saída Q quando as entradas J e K = 1.

Seqüência de funcionamento




⇒ Para clock = 1: ocorre a passagem dos níveis lógicos J e K do Mestre;
                  não passagem de Q1 e Q1 , porque o clock do escravo é zero.
⇒ Para clock = 0: Q1 e Q1 estavam bloqueadas com o último estado assumido;
                  passagem das entradas S e R (escravo), mudando as saídas Q e Q .


                                           10
Conclusão: o circuito só reconhece as entradas J e K quando o clock passa de 1 para
            zero.

3.6 FLIP-FLOP JK MESTRE-ESCRAVO COM TERMINAIS DE PROGRAMA -
ENTRADAS PRESET E CLEAR

A maioria dos flip-flops com clock também possui uma ou mais entradas de programa,
ditas assíncronas, que operam independentemente das entradas síncronas e da entrada
de clock. Estas entradas assíncronas podem ser usadas para colocar o flip-flop no estado
0 ou no estado 1, em qualquer instante. Assim, estas entradas se sobrepõem a todas as
outras entradas.




        Clr      Pr             QF
         0       0         Não permitido
         0       1               0
         1       0               1
         1       1         Func. normal


3.7 - FLIP-FLOP TIPO T (TOGGLE)

Trata-se de um flip-flop JK com as entradas curto-circuitadas, de modo a assumir apenas
duas condições de entrada.

                      Pr

       T         J                 Q

      Ck
                 K                  Q

                      Clr

                                           11
J     K       T     QF                T     QF
       0     0       0     QA                0     QA
       0     1                               1     QA
       1     0
       1     1       1     QA


3.8 - FLIP-FLOP TIPO D (DATA)

Trata-se de um flip-flop JK com as entradas invertidas, obtidas através de uma porta
lógica inversora conectada entre as mesmas.

                     Pr

D                J              Q

Ck
                 K              Q

                     Clr

       J     K       D     QF                D     QF
       0     0                               0     0
       0     1       0      0                1     1
       1     0       1      1
       1     1




                                        12
EXERCÍCIOS

1. Analise o flip-flop abaixo, preencha a tabela de transição e especifique o seu tipo.




     X    QA      QF        X   QF
     0    0            ⇒    0
     0    1                 1
     1    0
     1    1


2. Dado o circuito do flip-flop abaixo, determine sua tabela de transição para todas as
   situações possíveis nas entradas A e B. Após, obtenha a tabela compacta e identifique
   seu tipo.




     A        B   QA   QF         A    B    QF
     0        0   0         ⇒     0    0
     0        0   1               0    1
     0        1   0               1    0
     0        1   1               1    1
     1        0   0
     1        0   1
     1        1   0
     1        1   1


3. Desenhe a forma de onda na saída Q do flip-flop JK abaixo.

          J                        Q

         K=1




                                             13
J



Ck



Q


4. Analise o flip-flop abaixo, preencha a tabela de transição e especifique o seu tipo.




     X   QA    QF           X    QF
     ↑   0           ⇒      ↑
     ↑   1                  ↓
     ↓   0
     ↓   1


5. Dado o circuito do flip-flop abaixo, determine sua tabela de transição para todas as
   situações possíveis nas entradas A e B. Após, obtenha a tabela compacta e identifique
   seu tipo.




     X    Y    QA   QF            X    Y    QF
     0    0    0           ⇒      0    0
     0    0    1                  0    1
     0    1    0                  1    0
     0    1    1                  1    1
     1    0    0
     1    0    1
     1    1    0
     1    1    1

                                             14
6. Desenhe a forma de onda na saída Q do flip-flop tipo T abaixo.


Ck


CLR


PR


T



Q




7.   Determine a forma de onda da saída Q do flip-flop tipo D, a partir dos sinais
     apresentados abaixo:


Ck


PR


CLR


D



Q




                                           15
8. Apresente as saídas Q dos flip-flops abaixo, a partir dos sinais de Clock e Entrada.



                                             E


                                             Ck



                                             Q1


                                             Q2


                                             Q3


                                             Q4




9. A partir das formas de onda de um flip-flop JK apresentadas abaixo, determine a forma
    de onda na saída Q.


Ck

CLR

PR

J

K


Q


     10. Dado o circuito do flip-flop abaixo, determine sua tabela de transição para todas as
         situações possíveis nas entradas X e Y. Após, obtenha a tabela compacta e
         identifique seu tipo.




                                              16
X
                                    Q



    Ck



                                    Q'
    Y




X   Y    QA   QF       X   Y   QF
0   0    0         ⇒   0   0
0   0    1             0   1
0   1    0             1   0
0   1    1             1   1
1   0    0
1   0    1
1   1    0
1   1    1




                               17
EXPERIÊNCIA 1 - FLIP-FLOPS
1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos os
   seguintes circuitos digitais. Em seguida, obtenha a tabela de transição e defina como o
   flip-flop é ativado.

  1.1 - Flip-flop SR com clock, usando portas lógicas Não-E (7400);




  1.2 - Flip-flop SR com clock, usando portas lógicas Não-Ou (7402);
                    S
                                                      Q

                    Ck


                                                      Q
                    R



  1.3 - Flip-flop JK com Preset e Clear (7476);




  1.4 - Flip-flop tipo T (7476);




  1.5 - Flip-flop tipo D (7474).




                                            18
1.6 – Circuitos anti-repique




2. Na seqüência, energize os circuitos e simule, via chaves, os valores possíveis para as
    entradas;
3. Organize e interprete os dados coletados na experimentação. Verifique se os valores
   encontrados na saída correspondem à análise teórica do circuito (tabela de transição);
4. Desmonte os circuitos e reponha o equipamento e componentes aos seus lugares;
5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa.




                                           19
4 REGISTRADORES DE DESLOCAMENTO

4.1 CONCEITO
Um registro de deslocamento (shift register) consiste de um grupo de flip-flops
interconectados com a propriedade de deslocar dados armazenados nas suas saídas Q
de um flip-flop para outro. A direção do deslocamento pode ser para a direita ou para a
esquerda, cuja operação é síncrona e sendo regida por um sinal de clock.

4.2 CARACTERÍSTICAS
Um registrador pode deslocar informações de dois tipos:
Informação paralela
São dados que trafegam em várias linhas ou fios, uma para cada bit do número/palavra
binário, não existindo a necessidade de referenciar a um clock.
Informação série
São dados que trafegam em uma única linha ou fio, um bit de cada vez, a uma taxa de
transferência que é constante e em fase com um clock de referência.

4.3 APLICAÇÕES
Os computadores trabalham com pacotes de informações binárias de 8, 16 ou 32 bits. Os
bytes são processados e/ou transportados num computador através de barramentos. A
forma de transmissão paralela é usada em computadores porque é muito mais rápida e as
distâncias são pequenas. Por outro lado, o formato serial é usado para mover dados
de/para teclado e monitor e para comunicação digital entre microcomputadores.
Os registradores também são usados para algumas operações aritméticas como
complementação, multiplicação e divisão binária.

4.4 CLASSIFICAÇÃO
Os registradores de deslocamento são classificados de acordo com três aspectos
básicos.
a) Quanto à forma de manipulação dos dados
   - Entrada série e saída série
   - Entrada série e saída paralela
   - Entrada paralela e saída série
   - Entrada paralela e saída paralela
b) Quanto à direção de deslocamento
   - Deslocamento para a esquerda (shift left)
   - Deslocamento para a direita (shift right)
   - Deslocamento bidirecional
c) Quanto à capacidade de armazenamento
   - Relacionado com o número de bits que pode ser armazenado no registrador

4.5 CONFIGURAÇÕES

Os dados num registrador são possíveis de deslocar:
  - em série e em paralelo
  - para dentro e para fora
Em função disso, podem ser construídos quatro tipos básicos de registradores:
  - em série para dentro ou carga (load) – em série para fora ou descarga (shift)
  - em série para carga – em paralelo para descarga
  - em paralelo para carga – em série para descarga
  - em paralelo para carga – em paralelo para descarga

                                          20
4.5.1 REGISTRADOR DE DESLOCAMENTO DE ENTRADA SÉRIE E SAÍDA SÉRIE

Após a entrada da informação, cada bit é deslocado uma casa à direita após a ocorrência
do clock. Assim, são deslocados 4 bits de dados em modo série para dentro (à direita)
dos flip-flops.

Entrada de informação: através da entrada série;
Saída da informação: em Q0




                                           21
4.5.2 REGISTRADOR DE DESLOCAMENTO DE ENTRADA SÉRIE E SAÍDAS
      PARALELAS

O funcionamento deste registrador é idêntico ao registrador anterior, exceto que as saídas
são obtidas, simultaneamente, após 4 pulsos de clock, nos terminais Q3, Q2, Q1 e Q0.




4.5.3 REGISTRADOR DE DESLOCAMENTO DE ENTRADAS PARALELAS E SAÍDA
       SÉRIE




Entrada da informação:
Se limparmos o registrador (Clear=0) e introduzirmos a informação paralela através dos
terminais PR, então, as saídas Q dos flip-flops assumirão estes valores.

Saída da informação:
Para Clear=0, a cada descida do Clock, Q0 irá assumir os valores, seqüencialmente, de
Q0, Q1, Q2 e Q3.

Se Enable=0 ⇒ Preset (PR) dos flip-flops são iguais a 1 e atuam normais;
Se Enable=1 ⇒ Preset (PR) dos flip-flops terão valores complementares às entradas PR3,
            PR2, PR1, PR0 e, portanto, as saídas assumirão os valores destes
            terminais.

Exemplo: Se PR3 = 0 ⇒ Pr=1 ⇒ Q3 mantém seu estado;
         Se PR3 = 1 ⇒ Pr=0 ⇒ Q3 = 1.


                                           22
4.5.4 REGISTRADOR DE DESLOCAMENTO DE ENTRADA PARALELA E SAÍDAS
      PARALELAS

Entrada de informação: através dos terminais Preset e Clear;
Saída da informação: inibindo o clock, as saídas são obtidas pelos terminais Q3, Q2, Q1 e
Q0.




4.6 REGISTRADOR DE DESLOCAMENTO USADO COMO DIVISOR POR 2 (SHIFT
     RIGHT)

                Q3     Q2     Q1     Q0


Entrada               Registrador de
                      Deslocamento
   Ck


Entra-se com zero na Entrada Série e, através do clock, desloca-se uma casa à direita.
Exemplo: 1010(2) = 10(10) ⇒ 0101(2) = 5(10)


4.7 REGISTRADOR DE DESLOCAMENTO USADO COMO MULTIPLICADOR POR 2
     (SHIFT LEFT)

                Q3     Q2     Q1     Q0


Entrada               Registrador de
                      Deslocamento
   Ck

Desloca-se uma casa à esquerda através do clock e força-se Q0 = 0.
Exemplo: 0001(2) = 1(10) ⇒ 0010(2) = 2(10)

                                           23
EXERCÍCIOS

1. Esboce as formas de onda para o Registrador de Deslocamento abaixo, em função dos
sinais aplicados, considerando a entrada Enable = 0

                          PR2               PR1                PR0

 Enable



                                  Q2                 Q1                Q0


           E              S                 S                  S
                     D        Q        D         Q        D        Q
                              _                  _                 _
                     CP       Q        CP        Q        CP       Q
                          R                 R                  R
          Ck


      Clr




Ck

Clr

E


Q2


Q1

Q0

2. Na questão anterior, aplicando os níveis lógicos nas entradas PRs indicados abaixo,
determina as formas de onda nas saídas Q. Considere Enable=1.

Clr

PR2

PR1

PR0


Q2


Q1


Q0

                                            24
3. Quanto tempo em segundos levará para deslocar um número binário de 8 bits para
dentro do circuito integrado 74164, se o clock é de 1 MHz?




4. Desenhe as formas de onda na saída P do circuito abaixo.




                                          25
EXPERIÊNCIA 2 - REGISTRADORES DE DESLOCAMENTO
1. Identifique a pinagem do circuito integrado e monte em matriz de contatos o seguinte
   circuito digital:

  1.1 - Registrador de Deslocamento de 4 bits (7495)

                                    Outputs            Shift         Shift
                                                       Right         Left
               Vcc        QA        QB       QC   QD    Ck1          Ck2
               14        13         12       11   10     9            8


                                7495 – R. D. 4 bits
                               Entrada paralela/série
                                   Saída paralela

            1            2          3        4    5      6         7
          Serial         A          B        C    D     Mode      GND
          Input                                        control
                            Inputs
Etapa 1
Mode control = 0 ⇒ Ck1 (série/paralelo)
Mode control = 1 ⇒ Ck2 (paralelo/paralelo)

Etapa 2
Ck1 e mode control = 0 ⇒ deslocamento à direita
Ck2 e mode control = 1 ⇒ deslocamento à esquerda


  1.2 Registrador de Deslocamento de 8 bits através de cascateamento (2 x 7495)

                    saídas 1                                              saídas 2        ck1 ck2




  14      13        12   11    10        9   8           14      13       12   11    10    9      8



                     7495 (1)                                              7495 (2)

   1      2         3    4      5        6   7            1      2         3    4    5     6      7



entrada                                                                        entrada
 shift                                                                            shift        mode
 right                                                                             left        control


                                                  26
1.3 Registrador de deslocamento usado na transmissão de dados (74194 e 7495)



                                                                                   Ck
                                       S1    S0



  16    15    14        13   12   11    10   9          14    13   12   11   10     9    8
 Vcc    QA QB           QC   QD   Ck    S1   S0         Vcc QA     QB   QC   QD     SR   SL
                 74194                                             7495
              Conversão P/S                                    Conversão S/P
 Clr SI-right A         B    C    D SI-left GND          SI   A    B    C    D     MC GND
  1     2      3        4     5   6     7    8           1    2    3    4    5      6    7




                     Simulação                                                   Mode control
                    com chaves




       SI-R        SI-L       Mode S1 S0                FUNÇÃO DO 74194
                             control
        0           0        1 ck1 1 1       transfere dados das entradas para as saídas
        1           0        0 ck1 0 1       desloca dados da esquerda para a direita
        0           0        0 ck2 1 1       transfere dados das entradas para as saídas
        0           1        0 ck2 1 0       desloca dados da direita para a esquerda




                                                  27
1.4 Registrador de deslocamento de 8 bits em anel (74164)


          Vcc     QH      QG     QF      QE     Reset    Ck
          14      13      12      11     10       9       8


                       74164 – R. D. 8 bits
                          Entrada série
                         Saídas paralelas

           1       2      3       4      5        6      7
           A       B      QA      QB     QC       QD    GND




2. Na seqüência, energize o circuito e simule, via chaves, os valores possíveis para as
    entradas;
3. Organize e interprete os dados coletados na experimentação. Verifique se os valores
   encontrados na saída correspondem à análise teórica do circuito;
4. Desmonte o circuito e reponha o equipamento e componentes aos seus lugares;
5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa.




                                          28
5 CONTADORES

Conceito
O contador digital é um circuito seqüencial, configurado de tal modo que para cada estado
presente nas saídas dos flip-flops, existe um estado seguinte bem definido. Durante a
operação de contagem, o contador desloca-se de um estado para o outro de acordo com
uma seqüência especificada.

Características
• Variam os seus estados, sob comando de pulsos de clock, de acordo com uma
   seqüência pré-determinada;
• São usados para contagens, divisores de freqüência, geradores de forma de onda,
   conversores analógico-digitais, etc;

Classificação quanto ao sincronismo
Assíncrono: quando o sinal de clock é aplicado apenas ao primeiro estágio (flip-flop). Os
estágios seguintes utilizam como sinal de sincronismo a saída de cada estágio anterior.
Síncrono: quando o sinal de clock é único e externo, sendo aplicado a todos os estágios
ao mesmo tempo.

Classificação quanto ao modo de contagem
Crescente (progressivo): quando conta numa seqüência de números crescentes.
Decrescente (regressivo): quando conta numa seqüência de números decrescentes.
Aleatória: quando conta numa seqüência qualquer programada.

5.1 - CONTADORES ASSÍNCRONOS

Um contador assíncrono, de modo geral, tem as saídas e entradas ligadas e polarizadas
conforme a rotina:
   a) a saída de cada flip-flop deve ser conectada a entrada clock dos flip-flops
      seguintes;
   b) as entradas J e K de todos os flip-flops devem ser polarizadas com nível lógico 1,
      na configuração do flip-flop tipo T;
   c) o sinal de clock do contador deve acionar a entrada clock do primeiro flip-flop.

As saídas do primeiro e último flip-flop correspondem, respectivamente, aos bits menos
(LSB) e mais (MSB) significativos do contador.

A interligação de todas as entradas clear dos flip-flops fornece uma entrada que
corresponde à linha clear (reset) do contador, usada para garantir um estado inicial zero.

5.1.1 - CONTADOR BINÁRIO

Apresenta na saída a seqüência de contagem do código binário.




                                           29
Inicialmente, supõem-se as saídas zeradas. Aplica-se um pulso de clock no primeiro flip-
flop, cuja mudança de estado na saída ocorrerá na descida do clock. O flip-flop seguinte
mudará o nível lógico na saída sempre que ocorrer a mudança (descida do clock) de nível
lógico no flip-flop anterior. O diagrama de tempo abaixo ilustra melhor a seqüência de
funcionamento do contador. Após o 160 pulso de clock, o contador irá reiniciar a
contagem. Observa-se que este circuito possui também a característica de divisor de
freqüência por 2, 4, 8 e 16 (fn = fck/2n).

       1    2     3    4    5     6   7     8    9    10   11   12    13   14   15   16

Ck


Q0


Q1


Q2


Q3

O maior número que um contador pode registrar em sua saída é dado por: (2n – 1), onde
n é o número de flip-flops do contador.
Exemplo: Para uma contagem limite do contador = 3110 = 111112
         O número de flip-flops necessários será: 2n – 1 = 31 ⇒ n = 5 flip-flops

Obs: A soma dos tempos de transição em cada flip-flop provoca a ocorrência de estados
lógicos falsos, que podem ser indesejáveis quando se têm contadores com muitos flip-
flops e alta freqüência do clock.


5.1.2 CONTADOR MÓDULO QUALQUER

Para o projeto de um contador assíncrono com módulo de contagem qualquer N, basta
verificar quais as saídas do contador para o caso N+1. Estas saídas devem ser
conectadas a uma porta lógica tipo NÃO-E, cuja saída será remetida para as entradas
clear dos flip-flops do contador.

Exemplo: Contador de 0-5
         - quando as saídas apresentarem Q2Q1Q0 = 110 (2) = 6 (10), um pulso zero
           será encaminhado às entradas clear, zerando o contador e reiniciando a
           contagem.




                                          30
5.1.3 - CONTADOR BCD (DÉCADAS)




Para contar de 0 a 9: somente quando as saídas apresentarem Q3Q2Q1Q0 = 1010   (2)   = 10
(10)


A lógica auxiliar (porta Não-E) assume nível lógico zero em sua saída, encaminhado a
todos os terminais clear , zerando todas as saídas e o contador reinicia a contagem.



5.1.4 - CONTADOR BINÁRIO DECRESCENTE

O circuito que efetua a contagem decrescente se diferencia da contagem crescente
apenas pela forma de obtenção dos clocks dos flip-flops: a partir das saídas
complementares. Um outro circuito com mesmo resultado pode ser obtido quando as
saídas do contador são extraídas das saídas complementares dos flip-flops. O diagrama
de tempo a seguir demonstra a seqüência de contagem.




                                         31
1     2    3     4    5    6    7    8    9    10    11   12   13   14   15    16

Ck


Q0


Q1


Q2


Q3


5.1.5 - CONTADOR BINÁRIO CRESCENTE E DECRESCENTE

Uma superposição de contadores crescente e decrescente resulta num contador
bidirecional, onde uma variável de controle X define se:
    - contagem crescente ⇒ X = 1
    - contagem decrescente ⇒ X = 0




Uma outra estrutura pode ser construída usando multiplexadores (TTL 74157) entre os
vários estágios do contador que selecionam para a linha clock do próximo estágio a saída
Q ou seu complemento Q do flip-flop.

O controle da contagem ascendente ou descente é feito pela entrada de seleção C do
multiplex:
   - Para C = 0 ⇒ a contagem é crescente
   - Para C = 1 ⇒ a contagem é decrescente




                                          32
5.1.6 CONTADOR ASSÍNCRONO PROGRAMÁVEL

Um contador digital pode ser programado com um número binário de tamanho igual ou
menor que seu módulo. Uma vez definida a programação, pode-se empregar um circuito
comparador que efetua a comparação entre os bits das saídas Q do contador com os bits
programados nas entradas A0, A1, A2 e A3. Quando forem iguais, um sinal controla a
parada do contador.




                                         33
5.2 CONTADORES SÍNCRONOS

Um contador síncrono tem todas as entradas de clock interconectadas, de modo que cada
flip-flop muda de estado lógico ao mesmo tempo.

Antes de cada pulso de clock, as entradas devem ser estabelecidas com os níveis lógicos
apropriados, assegurando nas saídas os estados lógicos desejados. Isto é, o projeto de
contadores síncronos requer a alteração conveniente dos níveis lógicos das entradas J e
K dos flip-flops, a cada pulso introduzido no clock.

Seguindo tal orientação, pode-se construir uma tabela da transição que estabelece os
valores nas entradas J e K dos flip-flops, obtida a partir das possíveis combinações de
estados na saída Q, antes e depois da aplicação do pulso de clock.

                          J   K   QF               Q A QF   J   K
                          0   0   QA               0   0    0   X
                          0   1   0                0   1    1   X
                          1   0   1                1   0    X   1
                          1   1   QA               1   1    X   0




5.2.1 - CONTADOR BINÁRIO (Procedimento de projeto)

O procedimento para projeto de um contador síncrono desenvolvido a seguir pode ser
aplicado a qualquer seqüência desejada.

a) Determine o número de bits necessários (número de flip-flops) e a seqüência de
contagem desejada.

Contagem = 2n – 1, onde: n=número de flip-flops
Ex: contagem = 15 = 2n – 1 ⇒ n=4 flip-flops

0⇒1⇒2⇒3⇒4⇒5⇒6⇒7⇒8⇒9⇒10⇒11⇒12⇒13⇒14⇒15

b) Desenhe o diagrama da transição dos estados possíveis, incluindo aqueles que não
fazem parte da seqüência de contagem desejada.

    0000         0001              0010            0011             0100        0101


                Os números que na fazem parte da contagem podem ser
    1111        orientados para:                                                0110
                    a) ir para o início da contagem;
                    b) b) ir para o número imediatamente superior;
                    c) torná-lo irrelevante.
    1110
                                                                                0111



    1101           1100                1011          1010            1001       1000

                                              34
c) Use o diagrama de transição de estados para construir uma tabela que relacione todos
os estados possíveis das saídas do contador. Acrescente colunas para as entradas J e K,
indicando seus níveis lógicos necessários para possibilitar as saídas desejadas.

       Q3   Q2   Q1   Q0   J3    K3   J2   K2    J1   K1   J0   K0
       0    0    0    0    0     X    0    X     0    X    1    X
       0    0    0    1    0     X    0    X     1    X    X    1
       0    0    1    0    0     X    0    X     X    0    1    X
       0    0    1    1    0     X    1    X     X    1    X    1
       0    1    0    0    0     X    X    0     0    X    1    X
       0    1    0    1    0     X    X    0     1    X    X    1
       0    1    1    0    0     X    X    0     X    0    1    X
       0    1    1    1    1     X    X    1     X    1    X    1
       1    0    0    0    X     0    0    X     0    X    1    X
       1    0    0    1    X     0    0    X     1    X    X    1
       1    0    1    0    X     0    0    X     X    0    1    X
       1    0    1    1    X     0    1    X     X    1    X    1
       1    1    0    0    X     0    X    0     0    X    1    X
       1    1    0    1    X     0    X    0     1    X    X    1
       1    1    1    0    X     0    X    0     X    0    1    X
       1    1    1    1    X     1    X    1     X    1    X    1


d) Obtenha as expressões simplificadas para cada uma das entradas J e K dos flip-flops,
utilizando os diagramas de Veitch-Karnaugh.

       J3 = Q2.Q1.Q0            K3 = Q2.Q1.Q0
       J2 = Q1.Q0               K2 = Q1.Q0
       J1 = Q0                  K1 = Q0
       J0 = 1                   K0 = 1


e) Desenhe o circuito do contador síncrono com 4 flip-flops, utilizando portas lógicas
adequadas para as entradas J e K, conforme os resultados obtidos nas expressões
lógicas simplificadas.




                                                35
5.2.2 - CONTADOR BCD (DÉCADAS)

     Q3   Q2   Q1   Q0   J3   K3   J2   K2    J1   K1   J0   K0
     0    0    0    0    0    X    0    X     0    X    1    X
     0    0    0    1    0    X    0    X     1    X    X    1
     0    0    1    0    0    X    0    X     X    0    1    X
     0    0    1    1    0    X    1    X     X    1    X    1
     0    1    0    0    0    X    X    0     0    X    1    X
     0    1    0    1    0    X    X    0     1    X    X    1
     0    1    1    0    0    X    X    0     X    0    1    X
     0    1    1    1    1    X    X    1     X    1    X    1
     1    0    0    0    X    0    0    X     0    X    1    X
     1    0    0    1    X    1    0    X     0    X    X    1

     J3 = Q2.Q1.Q0                 K3 = Q0
     J2 = Q1.Q0                    K2 = Q1.Q0
     J1 = Q0.Q3                    K1 = Q0
     J0 = 1                        K0 = 1




5.2.3 - CONTADOR BINÁRIO CRESCENTE/DECRESCENTE DE 3 BITS

      X   Q2 Q1 Q0       J2   K2   J1   K1    J0   K0
      0   0 0 0          0    X    0    X     1    X
      0   0 0 1          0    X    1    X     X    1
      0   0 1 0          0    X    X    0     1    X
      0   0 1 1          1    X    X    1     X    1
      0   1 0 0          X    0    0    X     1    X
      0   1 0 1          X    0    1    X     X    1
      0   1 1 0          X    0    X    0     1    X
      0   1 1 1          X    1    X    1     X    1

      1   1    1    1    X    0    X    0     X    1
      1   1    1    0    X    0    X    1     1    X
      1   1    0    1    X    0    0    X     X    1
      1   1    0    0    X    1    1    X     1    X
      1   0    1    1    0    X    X    0     X    1
      1   0    1    0    0    X    X    1     1    X
      1   0    0    1    0    X    0    X     X    1
      1   0    0    0    1    X    1    X     1    X

                                             36
J2 = X.Q1.Q0 + X.Q1.Q0   K2 = X.Q1.Q0 + X.Q1.Q0
J1 = X⊕Q0                K1 = X⊕Q0
J0 = 1                   K0 = 1




                                   37
5.3 - CONTADORES PARA CIRCUITOS TEMPORIZADOS

5.3.1 - CONTADOR DE 0 A 59

Para contagem de minutos e segundos: ciclo igual a 60.
Formas de obtenção:
a) um contador assíncrono ou síncrono de contagem 0 a 59.
b) dois contadores assíncronos ou síncronos: um para dezena (0 a 5) e outro para
   unidade (0 a 9)


5.3.2 - CONTADOR DE 1 A 12

Para contagem de horas: ciclo de 1 a 12.
Mais usado é o contador síncrono, pois permite o início da contagem pelo estado 1.


5.3.3 - CONTADOR DE 0 A 23

Para contagem de horas: ciclo igual a 24.
Formas de obtenção:
c) um contador assíncrono ou síncrono de contagem 0 a 23.
d) dois contadores assíncronos ou síncronos: um para dezena (0 a 2) e outro para
   unidade (0 a 9)



             DIAGRAMA DE BLOCOS DE UM RELÓGIO DIGITAL BÁSICO


    Contador Horas       Contador Minutos         Contador Segundos       Gerador de clock
        1 - 12                0 - 59                    0 - 59                 1 Hz




    Decodificador         Decodificador             Decodificador
   BCD/7 segmentos       BCD/7 segmentos           BCD/7 segmentos




    Display - Horas      Display - Minutos        Display - Segundos




                                             38
5.4 - CONTADORES INTEGRADOS

5.4.1 – CONTADOR BCD – TTL 7490

Consiste de duas partes distintas: um divisor de freqüência por dois e um divisor por
cinco, onde cada divisor possui entrada clock independente. Os divisores podem ser
interligados para a obtenção de um divisor por dez, desde que a saída QA seja conectada
externamente a entrada B. Aplicando o clock na entrada A, o contador assume a
contagem BCD e retorna ao estado inicial a cada dez pulsos. A tabela abaixo orienta
melhor seu funcionamento.




                      Contador 7490
       R0(1) R0(2)   R9(1) R9(2) QD QC QB         QA
        1     1       0     X    0   0    0       0
        1     1       X     0    0   0    0       0
        X     X       1     1    1   0    0       1
        X     0       X     0       Contagem
        0     X       0     X       Contagem
        0     X       X     0       Contagem
        X     0       0     X       Contagem



5.4.2 – CONTADOR-DIVISOR POR 12 – TTL 7492

Consiste de duas partes distintas: um divisor de freqüência por dois e um divisor por seis,
onde cada divisor possui entrada clock independente. Os divisores podem ser interligados
para a obtenção de um divisor por doze, desde que a saída QA seja conectada
externamente a entrada B. Aplicando o clock na entrada A, o contador assume a
contagem de módulo 12 (0-1-2-3-4-5-8-9-10-11-12-13) e retorna ao estado inicial a cada
doze pulsos. As figuras a seguir ilustram melhor seu funcionamento.




                                            39
5.4.3 – CONTADOR BINÁRIO-DIVISOR POR 16 – TTL 7493

Consiste de duas partes distintas: um divisor de freqüência por dois e um divisor por oito,
onde cada divisor possui entrada clock independente. Os divisores podem ser interligados
para a obtenção de um divisor por dezesseis, desde que a saída QA seja conectada
externamente a entrada B. Aplicando o clock na entrada A, o contador assume a
contagem binária de 4 bits ou como divisor por 16 e retorna ao estado inicial a cada
dezesseis pulsos. As figuras a seguir ilustram melhor seu funcionamento.




                                            40
5.4.4 – CONTADORES CRESCENTE/DECRESCENTE - BCD     (TTL 74190)
                                         - BINÁRIO (TTL 74191)




Os integrados TTL 74190 e 74191 são contadores síncronos reversíveis (up/down) de 4
bits. Possuem pinagens compatíveis entre si e se diferenciam por um (74190) apresentar
contagem BCD e outro (74191) apresentar contagem binária.

Quando a linha Enable = 1 inibe o circuito para contagem. Esta entrada deve ser alterada
apenas quando o clock estiver em 1.

A direção de contagem é definida pela entrada Down/up. Quando em nível 0, o contador
segue a seqüência crescente. Quando em 1, segue a seqüência decrescente.

Os circuitos são completamente programáveis, isto é, as saídas do contador podem ser
colocadas em qualquer estado, independente de pulsos de clock. Para isso, coloca-se a
entrada Load = 0 e entram-se com os estados desejados nas entradas paralelas de dados
A, B, C e D. Com essa característica é possível o uso desses contadores como divisores
por N, pois é possível alterar o módulo do contador através destas entradas paralelas.

Duas saídas são disponíveis para a execução de cascateamento: as saídas Ripple-clock
e Max/min. A saída Max/min fornece um pulso positivo quando ocorre um overflow (após
o estado 9 ou 15 na seqüência up) ou underflow (após o estado 0 na seqüência down). A
saída Ripple-clock fornece um pulso negativo quando ocorre um overflow e underflow.

O cascateamento pode ser feito se a saída Ripple-clock de um contador for ligada à
entrada Enable do contador seguinte (quando as linhas clock estão interligadas) ou à
entrada clock (quando as entradas Enable estão interligadas).




                                          41
EXERCÍCIOS – CONTADORES

CONTADORES ASSÍNCRONOS

1. Esquematize o circuito de um contador assíncrono crescente para contagem de horas
   de 1 a 12.

2. Esquematize o circuito de um contador assíncrono decrescente para contagem de
   minutos de 29 a zero.
   Q4Q3Q2Q1Q0 = 111012 = 2910

3. Projete um contador assíncrono crescente de modo a travar (parar) no número 9(10) =
   1001(2)

4. Dado o circuito do contador assíncrono abaixo, usando flip-flops D, preencha a tabela
   de transição informando a seqüência de contagem.

                                   Q0                            Q1                      Q2




                             U1A                           U1B                     U2A
                     S                             S                       S
                D        Q                    D        Q              D        Q
 Ck                      _                             _                       _
                CP       Q                    CP       Q              CP       Q
                     R                             R                       R




                    No        Q2        Q1   Q0
                    0         0         0    0




5. Projete um contador assíncrono decrescente módulo 12 (11 – 0).

6. Projete um contador assíncrono crescente de 0 a 7, com uma lógica auxiliar que
   possibilite duas condições:
   a) o travamento (parada) da contagem quando pressionada uma chave de pressão;
   b) o zeramento do contador quando pressionada uma outra chave de pressão.

7. Esquematize o circuito de um contador assíncrono decrescente de 12 a 1 (timer de
   horas), usando flip-flops JK.

8. Esquematize um contador assíncrono para trabalhar como divisor de freqüência por 4.
    Esboce as formas de onda do clock e das saídas do contador.


                                                           42
9. O circuito contador binário de 3 bits abaixo obtido com flip-flops JK ativados na descida
    do clock, apresenta o seguinte sinal de clock. Desenhe as formas de ondas nas saídas
    Q.
   Assuma Q0inicial = 0.

 Vcc                                                      Ck




                        S                    S                      S
                   J        Q           J         Q            J        Q
                   CP       _           CP        _            CP       _
                   K        Q           K         Q            K        Q
                        R                    R                      R




Ck


Q0



Q1



Q2




                                                 43
CONTADORES SÍNCRONOS

1. Projete um contador síncrono crescente/decrescente, que gere a seguinte contagem:
   X=0 ⇒ contagem crescente ⇒ 0-1-2-3
   X=1 ⇒ contagem decrescente ⇒ 3-2-1-0

2. Determine as formas de onda de Q2, Q1 e Q0 para o contador abaixo, em função dos
   sinais de clock e In aplicados.




  In


  Ck

  Q0

  Q1

  Q2



3. Projete um contador síncrono, que gere a contagem da tabela de transição abaixo:

  Q3 Q2 Q1       Q0    J3   K3   J2   K2    J1   K1   J0   K0
   0  0  0        0
   0  0  0        1
   0  0  1        1
   0  1  1        1
   1  1  1        1




                                           44
4. Desenhe as formas de onda nos pontos A e B do contador síncrono abaixo, em função
dos sinais de clock aplicados.




  Ck


  A


  B



5. Determine as formas de onda de Q0, Q1 e Q2 para o contador síncrono abaixo, em
função dos sinais de Clear e Clock aplicados.




Clr


Ck

Q0

Q1

Q2



                                         45
6. Projete o circuito de um contador síncrono para gerar a seqüência da tabela abaixo.

  Q3 Q2 Q1        Q0   J3   K3    J2   K2    J1   K1   J0   K0
   0  0  0         1
   0  0  1         0
   0  1  0         0
   1  0  0         0


7. Projete um contador síncrono para gerar a seqüência dos números primos: 1-2-3-5-7




                                            46
CONTADORES INTEGRADOS

1. Interligue os contadores integrados abaixo de modo a formar um de 0-23.

                   Q1      Q0                           Q3    Q2     Q1       Q0



      Ck            0-2                        Ck              0-9
                   Dezena                                     Unidade
                          Clr                                         Clr



2. Interligue os contadores integrados abaixo de modo a formar um de 0-59.


            Q2      Q1     Q0                           Q3    Q2 Q1           Q0



      Ck            0-5                        Ck              0-9
                   Dezena                                     Unidade
                          Clr                                         Clr


3. Dada a pinagem do contador integrado 7490 abaixo, elabore as devidas interligações,
   de modo a contar de 0 a 7.


            14       13          12     11      10             9          8
           Ent.A     NC          QA     QD      GND           QB       QC

                                 Contador integrado
                                        7490
           Ent.B R0(1)          R0(2)   NC      Vcc          R9(1)   R9(2)

            1        2            3     4           5          6          7




       R0(1) R0(2) R9(1) R9(2) QD              QC        QB    QA
        1     1     0     X    0                0        0     0
        1     1     X     0    0                0        0     0
        X     X     1     1    1                0        0     1
        X     0     X     0                    Cont.
        0     X     0     X                    Cont.
        0     X     X     0                    Cont.
        X     0     0     X                    Cont.
                                                    47
4. Interligue os dois blocos contadores, de modo a formar um sistema contador de 0 a 12.



                 Q0                          Q3     Q2     Q1     Q0



     Ck           0-1                  Ck            0-9
                 Dezena                             Unidade
                        Clr                                Clr



5. Interligue os contadores integrados abaixo de modo a formar um de 59-0.



            Q2     Q1 Q0                     Q3     Q2     Q1     Q0



     Ck           5-0                  Ck            9-0
                 Dezena                             Unidade
              Pr        Clr                         Pr      Clr




6. Interligue os contadores integrados abaixo de modo a formar um de 23-0.



                   Q1     Q0                 Q3     Q2     Q1     Q0


                                 A                                       Data A
     Ck         2-0              B    Ck              9-0                Data B
           74190 (Dezena)        C               74190 (Unidade)         Data C
                                 D                                       Data D
            Load                                    Load




                                            48
7. Desenhe todas as interligações e conexões necessárias nos cis 7490 e 7408, de modo
   a obter-se um contador crescente de segundos (0-59).



    14           13          12       11       10           9         8

    Ent.A        NC          QA       QD      GND       QB        QC

                                 7490 (dezena)
                                                                                    Vcc
                                                                          1               14
   Ent.B R0(1)           R0(2)        NC      Vcc      R9(1)     R9(2)
                                                                          2               13
     1           2           3         4       5            6      7
                                                                          3               12

                                                                          4               11
                                                                                7408
    14           13          12       11       10           9         8   5               10

    Ent.A        NC          QA       QD      GND       QB        QC      6               9

                                 7490 (unidade)                           7   GND         8

   Ent.B R0(1)           R0(2)        NC      Vcc      R9(1)     R9(2)
     1           2           3         4       5            6      7


         R0(1)       R0(2)   R9(1)    R9(2)   QD     QC     QB   QA
          1           1       0        X      0      0      0    0
          1           1       X        0      0      0      0    0
          X           X       1        1      1      0      0    1
          X           0       X        0            Cont.
          0           X       0        X            Cont.
          0           X       X        0            Cont.
          X           0       0        X            Cont.




PROJETO

Uma academia de ginástica necessita de um cronômetro progressivo e regressivo para
contagem de tempo dos exercícios físicos, para um tempo de até 1 minuto.
Projete o módulo contador de segundos (00⇒59 e 59⇒0), incorporando os seguintes
recursos:
   a) uma chave para zerar o contador;
   b) uma chave para travar (parar) o contador em qualquer tempo;
   c) uma chave para avanço rápido do clock para programação da contagem num
       determinado tempo.



                                                      49
EXPERIÊNCIA 3 – CONTADORES ASSÍNCRONOS

1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos os
   seguintes circuitos digitais:

  1.1 - Contador binário crescente de 4 bits (2x7476)




  1.2 - Contador binário decrescente de 4 bits (2x7476)




  1.3 - Contador BCD crescente de décadas (2x7476, 7420)




  1.4 – Contador binário crescente/decrescente (2x7476, 74157)




                                         50
1.5 - Contador assíncrono programável de módulo variável (2x7476, 7485)

                            Q0                Q1                Q2                Q3



   1

                    S                 S                 S                 S
   Ck          J        Q        J        Q        J        Q        J        Q
               CP       _        CP       _        CP       _        CP       _
               K        Q        K        Q        K        Q        K        Q
                    R                 R                 R                 R



                                                                                       74LS85
                                                                                       A3   IA<B
                                                                                       A2   IA=B
                                                                                       A1   IA>B
                                                                                       A0
                                                                                       B3
                                                                                       B2   A<B
                                                                                       B1   A=B
                                                                                       B0   A>B




2. Na seqüência, energize os circuitos e simule, via chaves, os valores possíveis para as
    entradas;
3. Organize e interprete os dados coletados na experimentação. Verifique se os valores
   encontrados na saída correspondem à análise teórica do circuito;
4. Desmonte os circuitos e reponha o equipamento e componentes aos seus lugares;
5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa.




                                                        51
EXPERIÊNCIA 4 - CONTADORES SÍNCRONOS

1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos o
   seguinte circuito digital:

  1.1 - Contador binário crescente de 4 bits (2x7476, 7408)




  1.2 - Contador BCD crescente de 4 bits (2x7476, 7408)




2. Na seqüência, energize o circuito e simule, via chaves, os valores possíveis para as
entradas;
3. Organize e interprete os dados coletados na experimentação. Verifique se os valores
   encontrados na saída correspondem à análise teórica do circuito;
4. Desmonte o circuito e reponha o equipamento e componentes aos seus lugares;
5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa.




                                          52
EXPERIÊNCIA 5 - CONTADORES INTEGRADOS
1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos os
   seguintes circuitos digitais:

  1.1 - Contador BCD 0-9 (7490)




  1.2 - Contador/divisor por 12 (7492)




  1.3 - Contador binário 0-15 (7493)




                                         53
1.4 - Contador crescente/decrescente BCD 0-9-0 (74190)




  1.5 - Contador crescente/decrescente binário 0-15-0 (74191)




 1.6 - Contadores em cascata BCD 00-99 (7490 e 74190)

              Contador dezena       Ck              Contador unidade
                   74190                                 7490



             Decodificador BCD                     Decodificador BCD
              para display de 7                     para display de 7
                 segmentos                             segmentos




                   Display                               Display
                   Dezena                                Unidade


2. Na seqüência, energize os circuitos e simule, via chaves, os valores possíveis para as
entradas;
3. Organize e interprete os dados coletados na experimentação. Verifique se os valores
   encontrados na saída correspondem à análise teórica do circuito;
4. Desmonte os circuitos e reponha o equipamento e componentes aos seus lugares;
5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa.

                                           54
6 MEMÓRIAS SEMICONDUTORAS

6.1 INTRODUÇÃO

Memórias são dispositivos semicondutores que armazenam informações na forma binária.
São informações constituídas de números, letras, caracteres quaisquer, comandos de
operações, endereços, etc. Os bits das informações podem ser acessados, quando no
procedimento de leitura ou gravados/substituídos, quando no procedimento de escrita ou
armazenamento.

As memórias semicondutoras são usadas como memória principal (interna) ou
memória de trabalho de um computador, pois permanece em comunicação constante
com a unidade central de processamento (CPU) à medida que um programa de
instruções está sendo executado.

Uma outra forma de armazenamento no computador é efetuada pela memória auxiliar
(externa) ou memória de massa, onde opera com uma velocidade mais baixa que a
memória principal e armazena programas e dados que não estão sendo usados a todo o
momento pela CPU. Esta memória transfere as informações para a memória principal
quando apenas for necessária ou solicitada no processamento.


6.2 ESTRUTURA E ORGANIZAÇÃO DA MEMÓRIA

Uma memória armazena ou acessa as informações digitais em lugares denominados
localidades, mediante um endereçamento. Para o acesso a estas localidades, o bloco
possui uma série de terminais de entradas de endereços que são ligados a um conjunto
de fios denominado barra de endereços (addres bus). Para a entrada e saída dos dados,
da mesma forma, o bloco possui uma série de terminais ligados à barra de dados (data
bus). O bloco ainda possui terminais de controle ligados à barra de controle (control
bus).



        Barra de endereços
                                 MEMÓRIA            Barra de
                                  NxM                dados

        Barra de controle



A barra de dados é bidirecional, isto é, pode ser usada tanto como entrada como para
saída de dados, onde um dos terminais da barra de controle define o sentido.

As memórias são especificadas pela notação N x M, onde N indica o número de
localidades de memória (palavras) e M indica o número de bits da informação
armazenada por localidade. O número de bits que constitui uma palavra varia de
computador para computador, estando na faixa de 4 bits até 36 bits, tipicamente. Uma
dada "pastilha" de memória armazenará um dado número de palavras de tantos bits por
palavra. Por exemplo, uma pastilha de memória popular tem uma capacidade de
armazenamento de 1024 palavras de 4 bits cada, totalizando 4096 bits (4K), que é a
capacidade total de memória.
                                         55
A organização de uma pastilha de memória é estabelecida como sendo constituída por
um grupo de registradores, onde cada registrador armazena uma palavra. A "largura" de
cada registrador é o número de bits por palavra. O número de registradores é o número
de palavras armazenadas na memória, conforme apresentado na figura a seguir. Valores
comuns para o número de palavras por pastilha são 64, 256, 512, 1024, 2048 e 4096.
Todos eles são potências inteiras de 2. Valores comuns para o tamanho da palavra são 1,
4 e 8. É possível obter outros tamanhos de palavras, combinando-se diversas pastilhas de
memória.

O conteúdo de cada registrador está sujeito a duas operações possíveis: leitura e escrita.
A leitura é o processo de obter a palavra armazenada no registrador e enviá-la para
algum outro lugar, onde ela poderá ser usada. O conteúdo do registrador não é
modificado pela operação de leitura. Escrita é o processo de colocar uma nova palavra
em um registrador particular. É claro que esta operação de escrita destrói a palavra que
estava previamente armazenada no registrador. Porém, não são todas as pastilhas de
memória que têm a capacidade de ter os seus conteúdos escritos.




6.3 PRINCÍPIOS DE OPERAÇÃO

Apesar das diferenças existentes na implementação de cada um dos tipos de memória,
um certo conjunto de princípios básicos de operação permanece o mesmo para todos
os sistemas de memória.

Cada sistema requer um conjunto de tipos diferentes de entrada e saída para realizar as
seguintes funções:
a. Selecionar o endereço que está sendo acessado para uma operação de leitura ou
    escrita;
b. Selecionar a operação a ser realizada, leitura ou escrita;
c. Fornecer os dados de entrada para a operação de escrita;
d. Manter estáveis as informações de saída da memória resultantes de uma operação de
    leitura, durante um tempo determinado;
e. Habilitar (ou desabilitar) a memória, de forma a fazê-la (ou não) responder ao endereço
    na entrada e ao comando de leitura/escrita.




                                           56
A figura abaixo ilustra as funções básicas num diagrama simplificado de uma memória de
32 palavras x 4 bits. Para o tamanho da palavra (4 bits) existem 4 linhas de entradas de
dados (I3-I2-I1-I0) e 4 linhas de saídas de dados (O3-O2-O1-O0). Durante uma operação de
escrita, o dado a ser armazenado na memória deve ser aplicado nas linhas de entrada de
dados. Durante uma operação de leitura, a palavra que está sendo lida da memória
aparece nas linhas de saída de dados.




6.4 ESTRUTURAS DE ENDEREÇAMENTO

Cada registrador ou palavra recebe um número, começando de 0 e continuando até onde
for necessário. Este número especifica, de forma única, a localização do registrador e da
palavra que ele está armazenando, e é chamado de seu endereço. Por exemplo, o
endereço 2 refere-se ao registrador 2 ou à palavra 2. Sempre que se quiser referir a uma
palavra em particular da memória, usa-se o seu endereço. O endereço de cada palavra é
um número importante porque ele é o meio pelo qual um dispositivo externo à pastilha de
memória pode selecionar qual a palavra desta que ele deseja acessar para uma operação
de leitura ou de escrita.

Para entender como o endereçamento é utilizado, precisa-se verificar a organização
interna de uma pastilha de memória típica, como mostra a figura abaixo. Este circuito
integrado, em particular, armazena 64 palavras de 4 bits cada (256 bits). Estas palavras
têm endereços variando de 0 a 6310. Para selecionar uma das 64 locações para ler ou
escrever, um código binário de endereço é aplicado ao circuito decodificador. Como 26 =
64, o decodificador requer um código de entrada de 6 bits. Cada código de endereço ativa
uma particular saída do decodificador que, por sua vez, habilita o registrador
correspondente.

Por exemplo, suponha um código de endereço de A5 A4 A3 A2 A1 A0 = 011010.
Como 0110102 = 2610, a saída 26 do decodificador ficará ALTA, habilitando o registrador
26.




                                           57
Operação de leitura
O código de endereço escolhe um registrador da pastilha de memória para leitura ou
escrita. Para ler os conteúdos do registrador selecionado, a entrada LEITURA/ESCRITA
(R/W) deverá estar em nível 1. Além disso, a entrada SELEÇÃO DE PASTILHA (CS)
deverá estar ativada (em 1, neste caso) . A combinação de R/W = 1 e CS = 1 habilita os
amplificadores (buffers) de saída de forma que os conteúdos do registrador selecionado
aparecerão nas quatro saídas de dados. R/W = 1 também desabilita os amplificadores de
entrada de modo que as entradas de dados não afetam a memória durante a operação de
leitura.

Operação de escrita
A escrita de uma nova palavra de 4 bits no registrador selecionado requer R/W = 0 e CS =
1. Esta combinação habilita os amplificadores de entrada, de modo que a palavra de 4
bits aplicada às entradas de dados será carregada no registrador selecionado. R/W = 0
também desabilita os amplificadores de saída, de forma que as saídas de dados estão em
seu estado de circuito aberto.

Seleção da pastilha
A maioria das pastilhas de memória tem uma ou mais entradas SELEÇÃO DE PASTILHA
(Chip-Select-CS) que são usadas para habilitar a pastilha inteira ou desabilitá-la
completamente. No modo desabilitado todas as entradas de dados e as saídas de dados
estarão desabilitadas, de modo que nenhuma operação de leitura, nem de escrita, poderá
ocorrer. Neste modo, os conteúdos da memória não são afetados. A razão para ter
entradas CS ficará clara quando combinam-se pastilhas de memória para a obtenção de
memórias maiores. Deve ser notado que muitos fabricantes chamam estas entradas de
HABILITAÇAO DA PASTILHA (Chip-Enable-CE) em vez de CS.

Pinos de entrada/saída comuns
Para economizar pinos em um encapsulamento de CI, os fabricantes, freqüentemente,
combinam as funções de entrada de dados e de saída de dados usando pinos de
entrada/saída comuns. A entrada R/W controla as funções destes pinos de E/S. Durante
uma operação de leitura, os pinos de E/S agem como saídas de dados que reproduzem o
                                          58
conteúdo da locação selecionada pelo endereço. Durante uma operação de escrita, os
pinos de E/S agem como entradas de dados. Com pinos separados de entrada e de
saída, requer-se um total de 18 pinos (incluindo terra e fonte de alimentação). Com quatro
pinos comuns de E/S, são necessários apenas 14 pinos. A economia de pinos torna-se
ainda mais significativa em pastilhas com tamanho de palavra anterior.

Exemplo
Quantos pinos seriam necessários para uma pastilha de memória que armazena 256
palavras de 8 bits e tem linhas comuns de E/S?
Solução: Há 256 locações endereçáveis, isto é, 28 = 256. Portanto, são necessárias 8
entradas de endereço para selecionar qualquer endereço entre 00000000 e 11111111
(25510). Há oito linhas de E/S, já que o tamanho da palavra é 8 bits. Acrescentando uma
linha R/W, uma linha CS, alimentação e terra, resulta um total de 20 pinos.




6.5 CLASSIFICAÇÃO DAS MEMÓRIAS

As memórias podem ser classificadas segundo os itens abaixo.

6.5.1 – Quanto à forma de acesso

As formas de acesso a uma locação de memória podem ser do tipo aleatório ou
seqüencial.

No acesso aleatório, qualquer locação pode ser acessada aleatoriamente, isto é, pode ser
lida diretamente sem a necessidade da leitura das demais locações. Possui a vantagem
de ter um tempo de acesso pequeno e igual para qualquer uma das localidades da
memória.

No acesso seqüencial, a locação não pode ser feita diretamente. Assim, várias locações
da memória são acessadas até a informação desejada. O tempo de acesso depende da
posição onde a informação está armazenada.

6.5.2 – Quanto à volatilidade

As memórias voláteis são aquelas que, ao interromper a alimentação, perdem as
informações armazenadas. Exemplo: memórias RAM.

As memórias não voláteis são aquelas que, mesmo sem alimentação, continuam com as
informações armazenadas. Exemplo: memórias ROM, PROM, EPROM.
                                        59
6.5.3 – Quanto ao tipo de armazenamento

As memórias de armazenamento estático são aquelas em que, uma vez inserido o dado
numa dada localidade, este lá permanece. Têm a vantagem da facilidade de utilização.

As memórias de armazenamento dinâmico são aquelas em que se necessita inserir a
informação em intervalos de tempo repetidos, a fim de evitar que as mesmas sejam
perdidas.

6.5.4 - Quanto à capacidade de armazenamento

A capacidade de armazenamento está relacionada com o número total de bits ou palavras
que a memória pode armazenar. Por exemplo, uma memória de 1.024 x 8 corresponde a
uma capacidade de 1.024 palavras, cada uma com 8 bits, totalizando 8.192 bits.

6.5.5 – Quanto à tecnologia

As memórias são construídas com tecnologia do tipo semicondutor bipolar, semicondutor
de óxido metálico (MOS) ou semicondutor de óxido complementar (CMOS).

As memórias do tipo bipolares são encontradas nos circuitos TTL padrão, Schottky e ECL.
As memórias do tipo MOS de canal N são as mais usadas por apresentarem grande
densidade e baixo custo. As memórias CMOS são mais lentas do que as NMOS e
bipolares, contudo, são de menor consumo e maior imunidade ao ruído.

6.5.6 – Quanto ao tipo de saída

As saídas das memórias podem ser de três tipos: totem-pole, open collector ou three-
state. As memórias three-state são as mais usadas por permitirem a criação de bancos de
memória, de forma mais eficiente.

Saída totem-pole: Possui em sua estrutura interna um transistor conectado ao +Vcc,
permitindo alimentar cargas capacitivas. Os transistores de saída estabelecem uma
impedância baixa na saída, possibilitando um rápido chaveamento dos níveis lógicos.

Saída open collector (coletor aberto): Não possui um resistor ligando o coletor de saída
do transistor ao +Vcc, devendo ser ligado externamente (resistor pull-up). Esta saída
possibilita o controle externo da corrente do coletor de saída, possibilitando o aumento do
fan-out, além de poder habilitar saídas diferentes interligadas entre si, podendo assumir
níveis lógicos opostos sem danos. A desvantagem é sua baixa velocidade de
chaveamento dos níveis lógicos.

Saída three-state: Configuração que apresenta uma alta impedância de saída (terceiro
estado), em relação à linha na qual está conectada. Funciona como se o dispositivo
estivesse desligado. Assim, permite interligar várias saídas em uma mesma linha de
dados, fornecendo nível lógico alto ou baixo, sem danificar outros circuitos.




                                            60
6.6 TIPOS DE MEMÓRIAS

As memórias são basicamente de dois tipos: RAM e ROM. As memórias RAM são de
escrita/leitura e permitem acesso a uma localidade qualquer para escrever a informação
desejada, bem como permite o acesso para a leitura do dado armazenado. As memórias
ROM são apenas de leitura e contêm uma informação pré-gravada e fixa, portanto,
permitindo apenas a sua leitura.

6.6.1 MEMÓRIAS ROM

As memórias ROM (Read Only Memory – Memória Apenas de Leitura) permitem somente
a leitura dos dados nela gravados. Possuem acesso aleatório e não são voláteis, isto é,
não perdem seus dados armazenados quando a fonte de alimentação é desligada.

Sua grande aplicação é no armazenamento de sistemas operacionais de computadores e
outros sistemas digitais, em circuitos de geração de caracteres, na construção de circuitos
combinacionais.

A figura abaixo apresenta o bloco representativo de uma memória ROM, com terminais e
barramentos. O terminal de controle CS (Chip Select) refere-se à habilitação ou seleção
da pastilha, ou seja, é uma entrada de nível lógico que, quando em 0, ativa ou habilita as
saídas para fornecer os dados armazenados ou para serem lidos, conforme o
endereçamento estabelecido. Se o terminal de controle estiver em 1, as saídas estarão
desabilitadas, assumindo estados de alta impedância (tri-state), liberando a barra de
dados para uso por outros dispositivos presentes num sistema controlado por
microprocessador. A escolha do nível lógico 0 para habilitação é por razão em
proporcionar maior imunidade ao ruído. Com nível lógico 1, haveria maior suscetibilidade
para o acionamento dos blocos dentro do sistema diante de um transiente indesejável.

                                            CS


                 Barra de            MEMÓRIA           Barra de
                endereços              ROM              dados




A arquitetura básica de uma ROM genérica é apresentada em blocos abaixo, com os
respectivos terminais e barramentos de entrada e saída.
           A0

           A1                     DECODIFICADOR              MATRIZ DE
           ...................... DE ENDEREÇOS                DADOS

         AN+1



                                                         CHAVES DE SAÍDA
          CS


                                                       D0 D1 D2        DM+1

                                                  61
O decodificador de endereços (multiplexador) ativa uma saída de cada vez em função do
endereçamento. A matriz de dados (arranjo de linhas e colunas) possibilita a gravação
dos dados pelo fabricante e conseqüente leitura pelo usuário. Para a saída dos dados, a
memória possui um conjunto de chaves lógicas (buffers) que, conforme a habilitação
através do terminal CS , possibilita a conexão das saídas (em nível 0) ou imprime alta
impedância (em nível 1) desconectando as saídas de dados do sistema.

Exemplo 1
Para evidenciar a estrutura interna dos blocos e explicar seu funcionamento, será
construída uma memória ROM de 4 palavras de 8 bits, cujo conteúdo dos dados é
mostrado na tabela abaixo.

  ENDEREÇO                       DADOS
   A1   A0      HEX D7     D6   D5 D4 D3        D2   D1   D0
   0    0       1 E 0      0    0  1   1        1    1    0
   0    1       8 A 1      0    0  0   1        0    1    0
   1    0       0 D 0      0    0  0   1        1    0    1
   1    1       7 6 0      1    1  1   0        1    1    0

O circuito a seguir apresenta o codificador de endereços constituído de portas lógicas
inversora e E, a matriz de dados formada por diodos semicondutores e as chaves de
saídas constituídas por buffers ativos com zero.

A matriz de dados formada por um conjunto de diodos constitui a célula da memória,
definindo uma série de portas lógicas OU, de modo que a presença do diodo em
determinada localidade estabelece nível lógico 1 e, a sua ausência, o nível lógico 0.

Para analisar um dado de saída específico, será endereçado A1A0 = 00 e aplicado à
entrada de controle CS = 0, ativando o conjunto de buffers. Neste endereço, apenas o fio
de saída da primeira porta lógica E é ativado com 1 pelo decodificador, provocando a
condução de corrente dos respectivos diodos através dos resistores R ao terra do circuito.
Devido a estas conduções, os resistores apresentarão quedas de tensão que serão
transpostas pelos fios até as saídas D4, D3, D2 e D1, resultando no dado 00011110(2) =
1E(16). Portanto, as saídas apresentam nível lógico 1 onde houver diodos conectados na
matriz e nível lógico 0 na ausência de diodos.




                                           62
Na tecnologia de fabricação da matriz de dados, também são utilizados outros elementos
semicondutores, tais como transistores bipolares ou transistores de efeito de campo
(MOS-FET). O processo de programação é facilitado pelo uso de um gabarito fotográfico
das ligações elétricas chamado máscara, donde provêm as memórias denominadas
MROM programadas por Máscara.

As memórias ROM são produzidas com programações determinadas e sob encomenda,
em grande quantidade e normalmente para clientes específicos e/ou fabricantes de
equipamentos. Para o pequeno usuário, a solução é o uso das ROMs programáveis.

Exemplo 2

Uma ROM de 16 palavras com 8 bits foi programada com os dados mostrados na tabela a
seguir, na sua forma binária e em hexadecimal. Suponha a leitura dos dados
armazenados na posição cujas entradas de endereços são A3A2A1A0 = 0111 e habilitando
as saídas com a entrada de controle CS = 0. As entradas de endereços serão codificadas
no interior da ROM para selecionar a palavra correta, ou seja, as saídas
D7D6D5D4D3D2D1D0 = 11101101. Se a entrada CS = 1, as saídas da memória ROM não
estarão habilitadas e ficarão em alta impedância.


                                    CS
                                                     D7
              A3                                     D6
                                                     D5
              A2               Memória
                                ROM                  D4
              A1                16 x 8               D3
                                                     D2
              A0
                                                     D1
                                                     D0




                                         63
6.6.1.1 MEMÓRIAS PROM

As memórias PROM (Programmable Read-Only Memory) permitem o armazenamento
dos dados pelo próprio usuário. Com a programação, a PROM transforma-se em definitivo
numa memória ROM.

O princípio básico de programação numa PROM é a destruição de pequenas ligações
semicondutoras existentes (diodo ou fusível em série com diodo) internamente nas
localidades onde se quer armazenar a palavra de dados, através de um nível de tensão
convenientemente especificado pelo fabricante e conforme o endereçamento realizado.
Este roteiro é fornecido pelo fabricante através de manuais ou através de kits apropriados
para realizar os procedimentos conforme o tipo de pastilha, com maior eficiência e
rapidez.


6.6.1.2 MEMÓRIAS EPROM

As memórias EPROM (Erasable Programmable Read-Only Memory) permitem programar
e apagar dados, mediante banho de luz ultravioleta, efetuado através da exposição da
pastilha por uma janela existente em seu encapsulamento e, ainda, serem
reprogramadas. São também conhecidas como UVPROM (Ultraviolet PROM).

É um dispositivo com arquitetura similar às memórias PROM, do tipo MOS, onde a
gravação é feita através de circuitos eletrônicos especiais e o apagamento do conjunto
inteiro das informações armazenadas é feito através da aplicação de raios ultravioleta em
uma janela de quartzo localizada numa das faces do chip, durante um intervalo de tempo
entre 10 a 30 minutos. Após o apagamento, todas as localidades assumem níveis lógicos
1, podendo o processo de regravação e apagamento se repetir por inúmeras vezes. Uma
fita adesiva opaca deve ser colocada sobre a janela após a reprogramação para evitar
que ela seja acidentalmente apagada pela luz ambiente.

O desenho a seguir mostra o bloco de uma memória EPROM de 2K x 8 bits, com a
respectiva terminologia e função dos terminais dos barramentos. Para a capacidade desta
memória, o acesso às localidades é efetuado por 11 fios (211 = 2.048 = 2K) e 8 fios para a
barra de dados.

                         +Vcc          CE
                                  Memória              D7
              A10                 EPROM                D6
              .....                2K x 8
                                                       D5
               A0
                                                       D4
              OE                                       D3
                                                       D2
            PGM                                        D1
                                   2716                D0
              Vpp

  A0 - A10 ⇒ barra de endereços             OE ⇒ habilitação da saída (Output Enable)
  D0 – D7 ⇒ barra de dados                  PGM ⇒ habilitação da programação (Program)
  CE ⇒ habilitação da pastilha (Chip        Vpp ⇒ tensão de programação (Program Supply
         Enable)                                  Voltage)

                                            64
Quando CE =0, ativa o bloco e quando CE =1, o bloco permanece desativado na situação
de baixo consumo de potência (stand-by). A entrada de controle OE =0 habilita o
barramento de saída.

A programação é efetuada pelo terminal Vpp com uma tensão típica maior que Vcc, da
habilitação de programação PGM =0, do endereçamento e da aplicação das respectivas
palavras de dados ao bloco, seqüencialmente, possibilitarão o armazenamento das
informações.

6.6.1.3 MEMÓRIAS EEPROM

As memórias EEPROM ou E2PROM (Electrically Erasable Programmable Read-Only
Memory) permitem o apagamento dos dados eletricamente, além de possibilitar esta ação
isoladamente por palavra de dados, sem necessidade de reprogramação total. As
alterações de programação podem ser efetuadas pelo próprio sistema onde a memória
estiver inserida, sem necessidade de sua desconexão do soquete. Apesar desta memória
ser acessível para escrita e leitura, a mesma faz parte das memórias PROM. O bloco
abaixo representa uma EEPROM de 8K x 8.

                        +Vcc         CE
                                                      I/O7
              A12                                     I/O6
              .....             Memória
                                                      I/O5
               A0               EEPROM
                                 8K x 8               I/O4
              OE                                      I/O3
                                                      I/O2
             WE                                       I/O1
                                  2864                I/O0

O acesso das localidades desta memória é estabelecido através de 13 entradas de
endereço (213 = 8.192 = 8k) e oito pinos de entrada/saída de dados. A barra de dados I/O
é bidirecional por possibilitar a escrita e a leitura.

A escrita de uma palavra de dados é obtida através do endereçamento e respectiva
aplicação da palavra nos terminais da barra de dados, isto é, com o terminal OE =1 e o de
habilitação da escrita WE =0, dentro de um ciclo de tempo mínimo especificado pelo
fabricante (normalmente 10 ms).


6.6.1.4 CD ROM

Os CDs (compact disks) são fabricados com uma superfície altamente reflexiva, onde se
armazena os dados através de um feixe laser bastante intenso e focalizado sobre um
ponto muito pequeno no disco. Esse feixe provoca uma depressão que é capaz de
provocar a difração da luz nesse ponto da superfície. Assim, os dados digitais (1s e 0s)
são armazenados no disco, um bit por vez, fazendo ou não essa depressão no material
reflexivo, sendo a gravação organizada em uma espiral contínua de pontos de dados. A
precisão do feixe laser permite que grande quantidade de dados (maior que 550 Mbytes)
seja armazenada num disco de 120 mm.

                                           65
Para a leitura, um feixe laser bem menos potente é focalizado na superfície do disco,
onde em qualquer ponto, a luz refletida é expressa como níveis lógicos 1 ou 0. Esse
arranjo ótico é montado num mecanismo de transporte que se move para frente/trás ao
longo do raio do disco, seguindo a espiral de dados à medida que o disco é rotacionado.
Os dados recebidos do sistema ótico vêm uma linha serial de dados, numa taxa constante
de bits com rotação do disco controlada. Se o disco é para reprodução de áudio, a linha
de dados é convertida em formato analógico. Se o disco é usado como memória de
leitura, os dados são codificados em bytes paralelos para serem processados num outro
circuito digital.

6.6.1.5 MEMÓRIAS FLASH

As memórias flash recebem esta denominação por possuírem tempos curtos de
apagamento e escrita. A maioria destas memórias efetua o apagamento em bloco e dura
em torno de centenas de ms. Entretanto, também são encontradas memórias mais
recentes que oferecem o modo de apagamento por setor.

A tabela abaixo mostra as vantagens e desvantagens dos vários tipos de memórias
semicondutoras não-voláteis. À medida que aumenta a flexibilidade para apagar e
programar, também aumentam a complexidade e o custo do dispositivo.

     MEMÓRIA                       CARACTERÍSTICAS




                                                                             Complexidade e custo
     EEPROM      Pode ser apagada eletricamente, no circuito, byte a byte.
      FLASH      Pode ser apagada eletricamente, no circuito, por setor ou




                                                                             do dispositivo
                 todo de uma vez.
      EPROM      Pode ser apagada toda de uma vez com luz UV e apagada
                 e reprogramada fora do circuito.
      PROM       Não pode ser apagada nem reprogramada.
      MROM


6.6.1.6 APLICAÇÕES DE MEMÓRIAS ROM

-   Firmware – armazenamento de programas ou dados que devem estar disponíveis no
    processo de inicialização de sistemas microprocessados. Por exemplo, produtos como
    videocassetes, CD players, fornos microondas etc.
-   Memória de Bootstrap – tipo de programa armazenado em uma ROM que trata da
    inicialização do hardware de um computador. Após a inicialização, o programa de
    bootstrap chama o sistema operacional e o computador começa a executar o sistema
    operacional.
-   Tabela de Dados – as ROMs são bastante utilizadas para armazenar tabelas de
    dados que não variam. Por exemplo, tabela trigonométricas, códigos ASCII, etc.
-   Conversor de Códigos – este tipo de aplicação toma valores expressos em um
    determinado tipo de código e produz uma saída expressa em outro código. Por
    exemplo, o código BCD pode ser convertido para 7 segmentos por uma ROM.
-   Gerador de Funções – basicamente, um gerador de funções é um circuito que produz
    formas de onda senóides, triangulares e quadradas. Uma ROM com tabelas de
    valores armazenados e um conversor D/A podem ser usados para gerar essas formas
    de onda.
-   Armazenamento Auxiliar – dados podem ser armazenados em memórias ROM
    apagáveis (EPROM, EEPROM, FLASH), tornando essas memórias como alternativa
    aos discos magnéticos de armazenamento.



                                           66
6.6.2 MEMÓRIAS RAM

As memórias RAM (Random Access Memory – Memória de Acesso Aleatório) são do tipo
volátil e permitem o acesso aleatório ou randômico (para escrita ou leitura) a qualquer
uma das suas locações. São usadas para armazenar temporariamente os programas e
dados correntes em computadores. Os conteúdos das posições de uma RAM podem ser
lidos e escritos à medida que um computador executa um programa.

A principal desvantagem de uma RAM é o fato de a mesma ser volátil, isto é, ela vai
perder a informação armazenada se a alimentação for desligada ou interrompida. Por
outro lado, tem como vantagem, um tempo de acesso muito reduzido.

Quanto ao armazenamento, as memórias RAM são classificadas em estáticas (SRAM -
Static Ram) e dinâmicas (DRAM – Dynamic RAM). As estáticas utilizam como célula
básica o flip-flop e outros componentes digitais. As dinâmicas possuem circuitos mais
simples, porém, necessitando periodicamente de reinserção de dados em ciclo, uma ação
denominada refresh controlada pelo microprocessador do sistema. A RAM dinâmica
armazena cada dado por efeito capacitivo do pequeno semicondutor formado
internamente, apresentando a vantagem de alta capacidade de armazenamento por
circuito integrado.

A figura abaixo apresenta o bloco representativo de uma memória RAM estática, com
terminais de entrada de controle CS , terminal de controle R/ W de dupla função, para
possibilitar a leitura=1 ou escrita=0.

                                        CS


               Barra de
                                  MEMÓRIA            Barra de
              endereços
                                    RAM               dados


              R/ W

O circuito abaixo apresenta a célula básica de uma RAM estática que permite a escrita e
a leitura de 1 bit de informação. Para efetuar a escrita, deve-se selecionar a célula
específica com o terminal SEL=1 e o terminal de controle de leitura/escrita R/ W =0. Em
seguida, aplica-se o dado a ser gravado (1) no terminal D, configurado como entrada.




Com todos os níveis lógicos estabelecidos, a célula básica estará configurada para a
escrita, pois com 0 na porta Não-E superior irá ativar os dois buffers (substituídos por
                                         67
chaves equivalentes), possibilitando que o dado possa ser aplicado ao flip-flop e
armazenado em sua saída. Ao mesmo tempo, com 1 na outra porta Não-E inferior, irá
desativar o buffer de saída, permitindo apenas a escrita ou a entrada do dado.




Para efetuar a leitura, deve-se selecionar SEL=1 e passar o controle R/ W =1, onde o
dado armazenado será agora obtido no terminal D, configurado como saída. Com 1 na
porta Não-E superior, irá desativar os buffers, impedindo a escrita de um novo dado. As
entradas em aberto dos flip-flop assumem 1, fazendo com que suas saídas mantenham
seus níveis lógicos. Enquanto isso, com 0 na porta Não-E inferior, irá ativar o buffer na
saída do flip-flop, possibilitando a sua leitura no terminal D. Se a célula for selecionada
(SEL=0), as duas portas Não-E apresentarão 1 em suas saídas, mantendo os buffers
desativados (estado tri-state), impedindo tanto a escrita como a leitura.




                                            68
6.6.2.1 – ARQUITETURA INTERNA DE UMA RAM

Através da célula básica padrão analisada anteriormente, pode-se construir arquiteturas
de memórias RAM estáticas no formato N x M, conforme exemplo abaixo, uma memória
com estrutura de 4 localidades com 4 bits.


                                                                                CS

                                                                   A0                  D0

                                                                                       D1
                                                                   A1       RAM
                                                                            4x4        D2

                                                                 R/ W                  D3




O circuito é constituído de um decodificador de 2 canais, responsável pelo
endereçamento de cada localidade através de A1 e A0, no conjunto formado por 4 células
interligadas horizontalmente. Os terminais de dados D estão interligados, verticalmente,
cujo posicionamento do bit na palavra de dados é efetuado através da entrada de controle
 CS . Para completar, todas as entradas R/ W estão interligadas para propiciar o controle
simultâneo da escrita/leitura em todas as localidades.

Como exemplo, será efetuado o armazenamento (escrita) do dado 516 (01012) na
localidade 116, endereçada por 012. A seleção da pastilha é efetuada com CS =0 e o
endereçamento da localidade com A1=0 e A0=1, definindo a habilitação da segunda porta
E e sua respectiva saída em 1 que selecionará todas as células básicas através das
entradas SEL. Através do controle R/ W =0, os dados (01012) são aplicados nos terminais
D3, D2, D1 e D0 e armazenados nas respectivas células.

Para a leitura da informação, deve-se selecionar a pastilha com CS =0, R/ W =1, e
endereçar a localidade, obtendo-se os dados armazenados nas células através dos
terminais D. A informação só será perdida quando desligar a alimentação.




                                           69
6.6.2.2 EXPANSÃO DA CAPACIDADE DE UMA MEMÓRIA RAM

A expansão da capacidade de uma memória pode ser efetuada pela palavra de dados,
pelo aumento de localidade ou por ambos.

                                              O primeiro exemplo ao lado
                                              consiste de uma expansão por
                                              palavra de dados, onde mostra a
                                              obtenção de uma memória de
                                              256x8, obtida pela expansão de
                                              dois blocos de memória de 256x4.

                                              Os terminais de endereçamento A7
                                              a A0, de seleção da pastilha CS e
                                              de controle de escrita/leitura R/ W
                                              são interligados, pois as operações
                                              são comuns aos dois blocos. A
                                              barra de dados D7 a D0 é composta
                                              pela associação da barra de dados
                                              de cada bloco, resultando numa
                                              palavra de 8 bits.




                                              O segundo exemplo consiste de
                                              uma expansão por localidades de
                                              memórias, mostrando a formação
                                              de uma memória RAM 128x4,
                                              obtida a partir de blocos de
                                              memórias 32x4.

                                              O endereçamento é efetuado pelos
                                              terminais A6 a A0, constituídos dos
                                              5 terminais de cada bloco de
                                              memória      mais     2    terminais
                                              auxiliares, onde farão a seleção de
                                              cada bloco em seqüência, através
                                              das entradas CS .

                                              Os terminais de dados D3 a D0,
                                              bem como os terminais de
                                              escrita/leitura R/ W são apenas
                                              interligados.




                                       70
Uma última possibilidade de expansão de memória consiste na ampliação de palavra de
dados e também do número de localidades. O processo é obtido através da conjugação
das duas outras abordadas, onde se aumenta o número de localidades usando o circuito
seletivo e associa-se um outro sistema semelhante para compor a nova palavra de dados.

Como exemplo de expansão de memórias na área de microcomputadores, cita-se a
disponibilização de slots (série de conectores) para receber novos módulos removíveis
denominados pentes de memórias, possibilitando de forma fácil e prática a
expansibilidade do sistema.


6.6.2.3 OUTROS TIPOS DE MEMÓRIAS RAM

Tecnologia da RAM Dinâmica usada em Computadores

     Os tipos de DRAM existentes variam em função da capacidade, velocidade,
consumo, custo e versatilidade:

-   SIMM (Single-In-line Memory Module) e DIMM (Dual-In-line Memory Module) – são
    módulos de memória que permitem uma instalação rápida e são padrões de diversos
    tipos de DRAMs. Os módulos SIMM e DIMM definem apenas como a DRAM é
    “empacotada”.
-   DRAM FPM (Fast Page module) – permite acesso mais rápido a qualquer posição de
    memória dentro da “página” corrente. Normalmente, a maioria dos dados gravados na
    memória são seqüenciais. Nesse tipo de DRAM, o endereço da linha (RAS) é enviado
    uma vez e o endereço da coluna (CAS) é incrementado.
-   DRAM EDO (Extended data output) – é uma melhoria em relação às FPM. Os dados
    são colocados na saída e a DRAM EDO já pode decodificar o próximo endereço sem
    que esses dados tenham sido lidos;
-   DRAM BEDO (Burst EDO) – Possui uma arquitetura que permite alcançar alta
    velocidade ao se acessar dados seqüenciais;
-   SDRAM (Synchronous DRAM) – são organizadas em dois bancos que são
    acessados alternadamente utilizando um sinal de clock sincronizado com a CPU.
    Desse modo essas memórias alcançam altas taxas de transferências.

Memórias com Funções Especiais

-   Armazenamento de Dados com o Sistema Desligado – muitos equipamentos
    armazenam seus dados em memórias RAM alimentadas com baterias de reserva
    (NVRAM – RAM não-volátil);
-   Memória Cache – tipo de memória de alta velocidade e baixa capacidade de
    armazenamento que interage diretamente com a CPU. Na cache estão contidos os
    dados mais requisitados pelo processador e isso evita um acesso desnecessário na
    RAM.
-   Memória FIFO (First-In, First-Out) – também conhecidas como buffers para
    armazenamento temporário. Por exemplo, os dados são transferidos em altas taxas do
    PC para a impressora. Como a impressão é mais lenta que a transferência, esses
    dados devem ser armazenados em FIFOs e daí podem ser impressos.




                                          71
EXERCÍCIOS

1. Mostrar a forma de onda da saída da memória ROM com conversor D/A da figura
abaixo:




                           Endereço (Hex)        Conteúdo (Hex)
                                 0                     80
                                 1                     42
                                 2                    ED
                                 3                     01
                                 4                     F3
                                 5                     39
                                 6                    8C
                                 7                    B5
                                 8                    1A
                                 9                    FF
                                 A                     09
                                 B                    D2
                                 C                    6A
                                 D                     57
                                 E                    E0
                                 F                     04


2. Determine o mapeamento de uma memória PROM para atuar como gerador de
caracteres para hexadecimal, isto é, a partir de um código binário, forneça os níveis para
fazer um display de 7 segmentos – catodo comum apresentar a seqüência do sistema
hexadecimal. Especifique a memória e determine sua capacidade.


3. Determine o mapeamento de uma memória EPROM para, através do sistema gerador
de funções esquematizado, gerar a função digitalizada vista abaixo. Calcule a freqüência
do clock do contador.




                                            72
4. Determine a capacidade de memória e a palavra de endereço inicial e final (em
hexadecimal) para cada memória especificada a seguir:
   a) ROM 512X4
   b) EPROM 4Kx8
   c) RAM 128Kx8
   d) RAM 2Mx16

5. Implemente um circuito equivalente a uma memória RAM de 64 x 8 bits, usando
memórias RAM de 64 x 4 bits. Determine a capacidade e o endereçamento inicial e final.




                                         73
EXPERIÊNCIA 6 - MEMÓRIAS

1. Efetuar a montagem e posterior gravação de uma memória RAM de 16 palavras de 4
bits = 64 bits (TTL 74189), utilizando um contador binário para o endereçamento das
localidades de dados.
           Vcc AD-B AD-C AD-D DI-4 DO -4                DI-3   DO -3
           16         15          14             13          12          11               10       9

                                          74189
                                  Memória RAM de 64 bits



            1         2           3              4            5              6            7        8
          AD-A        S           W          DI-1          DO -1         DI-2         DO -2       GND

  DI-N    ⇒ Entradas de dados                                S ⇒ Entrada de controle
  DO -N ⇒ Saídas de dados                                    W ⇒ Controle de Leitura/Escrita
  AD–N ⇒ Seleção de dados

   Modo de operação                       Entradas                           Saídas
                                          S     W                             DO -N
          Escrita                         0      0            Complementa dados das entradas
          Leitura                         0      1            Complementa palavra armazenada
     Inibição/Escrita                     1      0            Complementa dados das entradas
           Nada                           1      1            Nível 1

          14                                                                                       10
         ent.A (ck)                                                                               GND

                                  7493 – Contador Binário

         ent.B Ro(1) Ro(2) Vcc                    QD         QC          QB          QA

           1     2         3          5          11           8          9           12

                                                                                          Saídas para leds

           16         13         14         15         1           11            9            7    5

          Vcc    AD-D AD-C AD-B AD-A DO -4 DO -3 DO -2 DO -1

                               74189 – Memória RAM de 64 bits

                               DI-4        DI-3       DI-2        DI-1           S         W      GND

                                 12         10         6           4             2            3    8



                                                  Entradas com chaves
                                                              74
Como os dados lidos correspondem ao complemento dos dados armazenados, deve-se:
  - armazenar o complemento da informação ou;
  - colocar inversores nas saídas das memórias.


SEQÜÊNCIA DE OPERAÇÃO

   a) zerar o contador com R0(1) e R0(2) = 1 e retomar para zero;
   b) disponibilizar os dados nas entradas;
   c) trocar S de 1 para 0;
   d) armazenar dados nas entradas através de W passando de 1 para 0;
   e) retornar W de 0 para 1 para inibir nova escrita;
   f) enviar um pulso de clock para novo endereçamento;
   g) repetir os procedimentos anteriores para cada conjunto de dados a serem
      armazenados;
   h) concluída a gravação, efetuar a leitura através de S =0 e W =1, usando o clock
      interno do equipamento.




                                        75
2. Efetuar a montagem e posterior gravação de uma memória RAM de 1024 palavras de 4
bits = 4K (2114), utilizando um contador binário para o endereçamento das localidades de
dados. Gravar nas entradas I/O: 0⇒15⇒0, com endereçamento 00000 ⇒ 11111. Após,
ler os dados gravados nas saídas I/O.

          Vcc           A7               A8                 A9       I/O1      I/O2     I/O3       I/O4      WE
              18        17                   16             15       14        13       12         11        10


                                                       2114
                                             Memória RAM de 1024x4 = 4K



           1                2                3              4        5         6         7          8        9
          A6                A5               A4         A3           A0        A1       A2         CS        GND

  AN ⇒ Seleção de dados                                              CS ⇒ Entrada de controle
  I/ON ⇒ Entradas e Saídas de dados                                  WE ⇒ Controle de Leitura/Escrita

   Modo de operação                                 Entradas
                                                 CS     WE
          Escrita                                 0      0
          Leitura                                 0      1
         Tri-state                                1      X

         14                                                                                        10
        ent.A (ck)                                                                                GND

                                         7493 – Contador Binário

        ent.B Ro(1) Ro(2) Vcc                                             QD       QC     QB        QA

          1        2            3            5                            11        8        9     12




          18           15           16            17             1        2         3        4      7        6      5
         Vcc           A9           A8             A7           A6       A5        A4        A3     A2       A1     A0

                                                    2114 – Memória RAM de 4K

                                     CS             WE               I/O4       I/O3      I/O2       I/O1          GND

                                         8             10            11         12           13         14          9


                                                                 Entradas com chaves (Saídas para leds)

                                                                     76
Seqüência de operação para gravação e posterior leitura

   a) zerar o contador com R0(1)=1 e R0(2)=1 e, após, retomar ambos para zero;
   b) habilitar a memória com CS =0;
   c) gravar os dados:
       c.1 – disponibilizar os dados nas entradas I/O;
       c.2 – habilitar para escrita mudando WE =1 para WE =0;
       c.3 – retornar de WE =0 para WE =1;
       c.4 – aplicar um pulso de clock manual;
   d) repetir os procedimentos do item anterior para cada conjunto de dados a serem
      gravados;
   e) concluída a gravação, não desligue a alimentação, desconectar as entradas das
      chaves e ligar aos leds. Efetuar a leitura através de CS =0 e WE =1, usando o clock
      automático interno do módulo digital.


       Vs




      A




                                       T                            t




                                           77
3. Efetuar a gravação de uma memória EPROM de 2Kx8=16K (2716), utilizando o
gravador de EPROM da Macsym. Gravar os dados 0⇒15⇒0, cuja seleção corresponde
aos 32 primeiros endereços 000002 (0016)⇒ 111112 (2016).
Posteriormente, efetuar a montagem utilizando um contador binário para o
endereçamento das localidades de dados. Por último, ler os dados gravados nas saídas
nos leds do módulo didático ou em osciloscópio através de um conversor D/A.


   Vcc      A8    A9       VPP        OE      A10     CE   D7      D6        D5    D4        D3

   24      23     22       21         20      19     18     17         16    15    14    13


                                           2716
                                Memória EPROM de 2Kx8 = 16K



   1        2         3    4          5        6      7     8      9        10    11    12

   A7      A6         A5   A4         A3      A2      A1   A0      D0       D1    D2    GND



  A0-A7 ⇒ Endereços                                 D0-D7 ⇒ Saídas de dados
  CE    ⇒ Habilitação do ci                         VPP ⇒ Tensão de programação +25V
  OE    ⇒ Habilitação da saída


    Modo de operação                       Entradas              Saídas
                                 CE          OE     VPP           D0-D7
            Leitura               0           0     +5V            D
           Stand by               1           X     +5V          Alto Z
         Programação                          1    +25V            Q
       Verifica programa          0           0    +25V            D
        Inibe programa            0           1    +25V          Alto Z



4. Deseja-se obter uma senóide digitalizada, a partir da expressão: f(x) = 255/2.(1+sen x).
Monte uma tabela no editor Excel simulando valores entre 0 e 2π. Com os resultados
obtidos, copie-os num arquivo com extensão “tex” e, em seguida, utilize um arquivo
(Txt2bin) para converter os dados em decimal para binário. Por último, os dados serão
gravados na memória EPROM de 2Kx8=16K (2716), utilizando o gravador de EPROM da
Macsym. Quantos endereços (em hexadecimal) são necessários para gravar todos os
dados da senóide?
Após a gravação, efetuar a montagem utilizando um contador binário para o
endereçamento das localidades de dados. Por último, ler os dados gravados nas saídas
em osciloscópio através de um conversor D/A.
x = 2π/255




                                                     78
7 MÁQUINAS DE ESTADOS

As máquinas de estados, também designadas por máquinas seqüenciais síncronas ou
circuitos seqüenciais síncronos, utilizam células de memória síncronas que definem, em
qualquer instante, o estado do sistema.

7.1 MODELO GERAL

Em qualquer circuito seqüencial síncrono, é identificável:
- uma unidade de memória, constituída por um número finito de células de memória que
implementam a função de memória do sistema;
- um decodificador de saída, constituído por um circuito combinacional responsável pela
implementação das saídas do sistema;
- um decodificador de estado seguinte, também designado por decodificador de entrada,
constituído por um circuito combinacional que gera as entradas da unidade de memória.




Variáveis do modelo geral
Variáveis de entrada
Variáveis de excitação = saídas do decodificador de estado seguinte = entradas das
células de memória síncronas (estado seguinte) = f(Variáveis de entrada, Variáveis de
estado)
Variáveis de estado = saídas das células de memória síncronas (estado presente)
Variáveis de saída = saídas do decodificador de saída

Máquina de estados finitos
Circuito seqüencial síncrono, constituído por um número finito de células de memória que
reagem à mesma vertente do sinal de relógio (CLK) comum a todas as células.

Máquina de Mealy
Variáveis de saída = saídas do decodificador de saída = f(Variáveis de entrada, Variáveis
de estado).
O fato de existirem entradas que alimentam diretamente o decodificador de saída introduz
um comportamento assíncrono nas saídas.

Máquina de Moore
Variáveis de saída = saídas do decodificador de saída = f(Variáveis de estado).
As variáveis de saída dependem apenas das variáveis de estado, pelo que a alteração de
estado nas saídas encontra-se sincronizada com o sinal de relógio.

Entradas adicionais assíncronas
Alguns circuitos têm uma ou mais entradas assíncronas que, normalmente, efetuam a
inicialização ou colocam o sistema num estado desejado.


                                           79
7.2 ANÁLISE DE MÁQUINAS DE ESTADOS

A partir do diagrama lógico, pretende-se obter uma descrição funcional do circuito,
traduzida num diagrama de estados e, quando possível, numa descrição verbal.

Método sistematizado de análise

a) Identificar os elementos do circuito de acordo com o modelo geral: decodificador de
    estado seguinte, unidade de memória, decodificador de saída, variáveis de entrada,
    variáveis de excitação, variáveis de estado e variáveis de saída.
b) Determinar: as expressões das funções lógicas das variáveis de excitação que
    dependem das variáveis de entrada e das variáveis de estado (funções de excitação);
    as expressões das funções lógicas das variáveis de saída que dependem das
    variáveis de estado e das variáveis de entrada (funções de saída).
c) Construir a tabela de estados, também designada por tabela de transição de estados.
d) Construir, a partir da tabela de estados, o diagrama de estados.
e) Determinar a descrição verbal para o comportamento funcional do circuito.


                             a) Identificação dos
                            elementos do circuito




                         b) Funções das variáveis de
                             excitação e de saída




                            c) Tabela de estados




                           d) Diagrama de estados




                            e) Descrição funcional




                                          80
Tabela de transição de estados

        1                2                  3                4                 5
  Variáveis de      Variáveis de      Variáveis de      Variáveis de      Variáveis de
     estado           entrada           excitação         estado             saída
    (estado                           (funções de         (estado         (funções de
   presente)                           excitação)        seguinte)           saída)


Elaboração da tabela de estados
1. Considerar todas as combinações possíveis dos valores binários para as variáveis de
    estado e variáveis de entrada (coluna 1 e 2 da tabela). Sendo N o número de variáveis
    de estado e de entrada, obtém-se 2N combinações distintas destas variáveis.
2. Com base nas funções lógicas (funções de excitação) das variáveis de excitação,
    preencher a coluna 3 da tabela de estados.
3. Com base nos valores das variáveis de excitação (coluna 3 = entradas dos flip-flops) e
    as tabelas funcionais ou as equações características dos flip-flops, determinar o
    estado seguinte (coluna 4).
4. Com base nas funções lógicas (funções de saída) das variáveis de saída, preencher a
    coluna 5 da tabela de estados. Note-se que o preenchimento é o resultado da
    avaliação das funções para as combinações de valores definidos na coluna 1 (estado
    presente) e 2 (variáveis de entrada).

Diagrama de estados

O diagrama de estados é uma grafo orientado, constituídos por nós, representativos dos
estados, e por arcos orientados, representativos das transições entre estados. Constitui
uma representação gráfica dos estados e transições entre estados de um circuito
seqüencial síncrono. Permite uma melhor leitura/interpretação do comportamento
funcional deste tipo de circuitos. A informação contida no diagrama de estados é
acompanhada de uma legenda, de modo a associar os elementos gráficos com as
variáveis do circuito seqüencial síncrono.

Representação gráfica dos estados
Cada estado é representado por um nó (círculo), com a informação que lhe está
associada. Num circuito seqüencial síncrono com N variáveis de estado, o diagrama de
estados é constituído por 2N estados distintos (2N Nós).

                            Neste tipo de máquina, as variáveis de saída encontram-se
                            associadas ao próprio estado, por serem função apenas das
                            variáveis de estado.
                            Estado = designação ou código de estado (valores lógicos
                            das variáveis de estado)
                            Saídas = valores das saídas

                            Neste tipo de máquina, as variáveis de saída encontram-se
                            associadas às transições entre estados, por serem função
                            das variáveis de estado e das variáveis de entrada.
                            Estado = designação ou código de estado (valores lógicos
                            das variáveis de estado)




                                           81
Representação gráfica das transições entre estados
As transições entre estados são representadas por um arco orientado entre o estado
presente e o estado seguinte. De cada estado, partem 2P arcos orientados,
representativos das transições possíveis para P variáveis de entrada.


                                              Neste tipo de máquina, as variáveis de
                                              entrada e de saída estão associadas às
                                              transições entre estados.




                                              Neste tipo de máquina, apenas as variáveis
                                              de entrada estão associadas às transições
                                              entre estados.




Exemplos de análise de circuitos seqüenciais síncronos

EXEMPLO 1
Dado o diagrama lógico, determinar a tabela de estados, o diagrama de estados e uma
possível descrição verbal do funcionamento do circuito.

Diagrama lógico




a) Identificação dos elementos do circuito
Var. entrada: X
Var. saída = Var. estado (saídas dos flip-flops): B, A
Var. excitação (entradas dos flip-flops): DB,DA

                                             82
É uma Máquina de Moore dado que as saídas (B,A) são coincidentes com as variáveis de
estado.

b) Funções das variáveis de excitação

DB = B X + BAX + B AX
DA= A⊕X

c) Tabela de estados




Nota: A coluna correspondente ao estado seguinte pode ser eliminada já que, tratando-se
de flip-flops do tipo D, o estado seguinte corresponde aos valores das variáveis de
excitação.

d) Diagrama de estados


                                                 Legenda

                                                 Estado: B A
                                                 Transição entre estados: X




e) Descrição funcional

Quando X =1, o sistema segue a seqüência de estados: 00, 01, 10, 11. Quando X=0, o
sistema mantém-se no mesmo estado. Ao considerar as saídas BA como um número
binário de dois bits, está-se perante um contador binário crescente de dois bits, com a
entrada X para desinibir/inibir a contagem.




                                          83
EXEMPLO 2

Dado o diagrama lógico, determinar a tabela de estados, o diagrama de estados e uma
possível descrição verbal do funcionamento do circuito.

Diagrama lógico




a) Identificação dos elementos do circuito

Entrada assíncrona: RESET’
Var. entrada: Y
Var. saída: Z
Var. estado (saídas dos flip-flops): A,B
Var. excitação (entradas dos flip-flops): JA,KA,JB,KB
É uma máquina de Mealy dado que a saída (Z) depende das variáveis de estado (A,B) e
da variável de entrada (Y).

b) Funções das variáveis de excitação e de saída

JA = B.Y          KA = B + Y
JB = A + Y        KB = Y
Z = A .B.Y

c) Tabela de estados




                                         84
d) Diagrama de estados


                                                   Legenda

                                                   Estado: A B
                                                   Transição entre estados: Y/Z




e) Descrição funcional

A saída Z é colocada a 1 sempre que, em quatro vertentes consecutivas do sinal de
relógio, é detectada a seqüência 1001 na entrada Y. A entrada RESET’, quando ativa,
coloca o sistema no estado 00.
Exemplo:
Var. entrada Y: 0001010010000101001001
Var. saída Z: 0000000010000000001001


7.3 SÍNTESE (PROJETO) DE MÁQUINAS DE ESTADOS

O procedimento para o projeto (síntese) de um circuito seqüencial síncrono, a partir da
descrição verbal do funcionamento do circuito, é o procedimento inverso ao realizado no
processo de análise deste tipo de circuitos.

Método sistematizado de síntese

a) Analisar as especificações do circuito (descrição verbal), obtendo um primeiro
   diagrama de estados (representados por identificadores).
b) Minimizar o número de estados, eliminando eventuais estados redundantes. Um estado
   é redundante se existir outro estado equivalente no diagrama, isto é, se existir outro
   estado que para as mesmas especificações das entradas apresente o mesmo estado
   seguinte e as mesmas especificações de saída.
c) Proceder à codificação de estados. Nesta fase determina-se, em primeiro lugar, o
   número de células da unidade de memória. Normalmente, considera-se o expoente da
   menor potência de base 2 (2N) que seja maior ou igual ao número de estados do
   circuito. Refira-se que podem existir situações em que um número maior de células de
   memória pode conduzir a um circuito globalmente mais simples.
Em segundo lugar, é necessário atribuir um código binário a cada um dos estados (código
   de estado). A atribuição dos códigos de estado condiciona a complexidade da lógica
   combinacional envolvente (decodificador de estado seguinte e decodificador de saída).
   As “regras” a seguir enunciadas tendem a minimizar a complexidade destes circuitos.


                                           85
Regras
        1. Escolher para o estado inicial do circuito um código binário facilmente obtido
        através da inicialização assíncrona do circuito (tudo a 0’s ou 1’s);
        2. Tentar associar aos bits ou conjunto de bits do código de estado um significado
        relacionado com as entradas ou saídas;
        3. Minimizar o número de bits do código de estado que mudam em cada transição
        entre estados.
d) Construir a tabela de estados para flip-flops D.
e) Determinar os mapas de Karnaugh para as variáveis de excitação dos flip-flops D e
    para as variáveis de saída. Obter, se necessário, os mapas de karnaugh para as
    variáveis de excitação dos flip-flops J-K, a partir dos mapas de karnaugh das variáveis
    de excitação dos flip-flops D. Normalmente, a utilização de flip-flops J-K conduz a
    circuitos de menor complexidade. Selecionar o tipo de flip-flops (D ou J-K) e obter as
    expressões simplificadas das funções de excitação e funções de saída.
f) Desenhar o diagrama do circuito lógico.


                              a) Descrição verbal e
                               Diagrama de blocos



                             b) Diagrama de estados
                       Eliminação de estados redundantes



                            c) Codificação de estados




                              d) Tabela de estados




                            e) Mapas de Karnaugh e
                          Funções lógicas minimizadas



                          f) Diagrama do circuito lógico




                                            86
Exemplos de síntese de circuitos seqüenciais síncronos

EXEMPLO 1
Detector de uma seqüência de bits (Máquina de Moore)

Especificação funcional: Projetar um circuito seqüencial síncrono que detecte         a
ocorrência de um determinado padrão de bits numa seqüência de valores de entrada.     O
circuito é constituído pela entrada de dados, X, e produz uma única saída Z que       é
colocada a 1 quando nas últimas três vertentes do sinal de relógio é detectada        a
seqüência de bits 110.

a) Diagrama de blocos

      X           Circuito                Z
Clk               Síncrono


b) Diagrama de estados
Trata-se de uma máquina de Moore, já que a saída depende apenas do estado do
sistema. De acordo com as especificações, se nas últimas três vertentes do sinal de
relógio tiver sido detectada a seqüência 110 a saída é colocada a 1.

- Considera-se um estado inicial A, ao qual se associa o fato de nenhuma subseqüência
  de 110 ter sido detectada. Se X=0, o estado do sistema mantém-se.
- Se X=1, o sistema transita para o estado B (detectada a seqüência 1).
- Do estado B, se X=1, o sistema transita para o estado C (detectada a seqüência 11), se
  X=0, o sistema transita para o estado A (estado inicial).
- Se o estado atual é C (detectada a seqüência 11) e X=1 o sistema mantém-se no
  mesmo estado C (detectada a seqüência 11). Se X=0, o sistema transita para o estado
  D (detectada a seqüência 110) colocando a saída Z a 1.
- Se o estado atual é D (detectada a seqüência 110) a saída Z está a 1. Se X=0, o
  sistema transita para o estado A (estado inicial). Se X=1, o sistema transita para o
  estado B (detectada a seqüência 1).

                                                    Legenda
                                                    Estado: Identificador/Saída Z
                                                    Transição de estado: X

                                                    A – início
                                                    B – detectada a seqüência 1
                                                    C – detectada a seqüência 11
                                                    D – detectada a seqüência 110




c) Codificação de estados

Existem quatro estados distintos, A, B, C e D, sendo, por isso, necessários 2 bits (2
células de memória – Q1, Q0) para codificar cada um dos estados.
Obs: A codificação de estados tem por base:
- a atribuição do estado 00 ao estado inicial;
- o bit Q0 (estado seguinte) coincide com a variável de entrada X.
                                          87
d) Tabela de estados




Tabela de estados para as variáveis de excitação dos flip-flops D




e) Mapas de Karnaugh e funções minimizadas




f) Diagrama do circuito lógico




                                         88
EXEMPLO 2
Detector de uma seqüência de bits (Máquina de Mealy)

Especificação funcional: Projetar um circuito seqüencial síncrono que detecte         a
ocorrência de um determinado padrão de bits numa seqüência de valores de entrada.     O
circuito é constituído pela entrada de dados, X, e produz uma única saída Z que       é
colocada a 1 quando nas últimas três vertentes do sinal de relógio é detectada        a
seqüência de bits 100 e a entrada X está a 1.

a) Diagrama de blocos

      X           Circuito                Z
Clk               Síncrono

Entrada X: 10110100101110001001001110
Saída Z: 00000000100000000001001000

b) Diagrama de estados

Trata-se de uma máquina de Mealy, já que a saída depende do estado do sistema e da
variável de entrada X.
De acordo com as especificações, se nas últimas três vertentes do sinal de relógio tiver
sido detectada a seqüência 100 e a entrada tiver o valor 1 a saída é colocada a 1. É,
portanto, necessário memorizar a ocorrência do padrão de bits 100.

- Considera-se um estado inicial A, ao qual se associa o fato da seqüência 100 não ter
  sido detectada até ao momento. Se X=0, o estado do sistema mantém-se.
- Se X=1, o sistema transita para o estado B (detectada a seqüência 1).
- Do estado B, se X=1, o estado do sistema mantém-se, se X=0, o sistema transita para o
  estado C (detectada a seqüência 10).
- Se o estado atual é C (detectada a seqüência 10) e X=1, o sistema deve regressar ao
  estado B (detectada a seqüência 1). Se X=0, o sistema deve transitar para um novo
  estado D (detectada seqüência 100).
- Se o estado atual é D (detectada a seqüência 100) e X=1, a saída Z é colocada a 1 e o
  sistema transita para o estado B (detectada a seqüência 1). Se X=0, o sistema transita
  para o estado A, pois não foi detectada a seqüência 100.


                                                  Legenda
                                                  Estado: Identificador
                                                  Transição de estado: X/Z




                                          89
c) Codificação de estados

Existem quatro estados distintos, A, B, C e D, sendo por isso, necessários 2 bits (2 células
de memória – Q1, Q0) para codificar cada um dos estados. Dentre as várias hipóteses de
codificação, utiliza-se neste exemplo o seguinte sistema de codificação:

     Estado     Código de estado
                     Q1 Q0
        A             0 0
        B             0 1
        C             1 0
        D             1 1

d) Tabela de estados




Tabela de estados para as variáveis de excitação dos flip-flops JK




e) Mapas de Karnaugh e funções minimizadas




                                            90
f) Diagrama do circuito lógico




                                 91
REFERÊNCIAS BIBLIOGRÁFICAS
BIGNELL, J. W. e DONOVAN, R. L. Eletrônica digital. Volumes 1 e 2, São Paulo:
Makron Books, 1995

BONATTI, Ivanil e MADUREIRA, Marcos. Introdução à análise e síntese de circuitos
lógicos. Campinas: Editora da UNICAMP, 1990.

BRAGA, Newton C. Curso de eletrônica digital. São Paulo: Saber Eletrônica Especial n.
8, 2002.

CAPUANO, Francisco G. Exercícios de eletrônica digital. São Paulo: Érica, 1991.

DATAPOOL. Módulo 8410: teoria e prática. Itajubá: Datapool Eletrônica.

ERCEGOVA, Milos et alii. Introdução aos sistemas digitais. Porto Alegre: Bookman,
2002.

FRANCISCO, Francisco Ferreira. Circuitos seqüenciais síncronos. Disponível em:
<http://www.estv.ipv.pt/paginaspessoais/ffrancisco/sd/sumarios.htm>. Acesso em: 04 nov.
2005.

IDOETA, I.V. e CAPUANO, F.G. Elementos de eletrônica digital. São Paulo: Érica,
1987.

MALVINO, A. P. e LEACH, D. P. Eletrônica digital: princípios e aplicações. Volumes 1
e 2, São Paulo: McGraw-Hill, 1987.

MELO, Mairton de Oliveira. Eletrônica digital. São Paulo: Makron Books, 1994.

MENDONÇA, Alexandre e ZELENOVSKY, Ricardo. Eletrônica digital: curso prático e
exercícios. Rio de Janeiro: MZ Editora, 2004.

SZAJNBERG, Mordka. Eletrônica digital. Rio de Janeiro: Livros Técnicos e Científicos
Ltda, 1988.

TOCCI, Ronald J. e WIDMER, Neal S. Sistemas digitais: princípios e aplicações. São
Paulo: Prentice Hall, 2003.




                                          92

Apostila cefet

  • 1.
    CENTRO FEDERAL DEEDUCAÇÃO TECNOLÓGICA DE SANTA CATARINA GERÊNCIA EDUCACIONAL DE ELETRÔNICA CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS DIGITAIS LÓGICA SEQÜENCIAL Prof. Joel Lacerda Prof. Wilson B. Zapelini FLORIANÓPOLIS 2006
  • 2.
    SUMÁRIO Página 1 A NECESSIDADE DA MEMÓRIA OU ESTADO SEQÜENCIAL .................. 02 1.1 Conceito de memória ............................................................................... 02 1.2 Impacto da memória seqüencial no desempenho de sistemas automatizados ......................................................................................... 04 1.3 Obtenção do efeito memória (buffer realimentado) .................................. 04 2 A DEFINIÇÃO DE FLIP-FLOPS .................................................................... 06 2.1 Flip-flop SR básico ................................................................................... 06 2.2 Diagrama de tempo .................................................................................. 07 3 APERFEIÇOAMENTO DO FLIP-FLOP ......................................................... 08 3.1 Necessidade de sincronismo .................................................................... 08 3.2 Lógica (terminais e estados) .................................................................... 08 3.3 Flip-flop SR comandado por pulso de clock ............................................. 08 3.4 Flip-flop JK (eliminação do estado proibido) ............................................ 09 3.5 Flip-flop JK Mestre-Escravo (eliminação da oscilação) ............................ 10 3.6 Flip-flop JK Mestre-Escravo com terminais de programa – entradas preset e clear ........................................................................................... 11 3.7 Flip-flop T (Toggle) ................................................................................... 11 3.8 Flip-flop D (Data) ...................................................................................... 12 Experiência 1 ................................................................................................. 18 4 REGISTRADORES DE DESLOCAMENTO ................................................... 20 4.1 Conceito ................................................................................................... 20 4.2 Características .......................................................................................... 20 4.3 Aplicações ................................................................................................ 20 4.4 Classificação ............................................................................................ 20 4.5 Configurações .......................................................................................... 20 4.6 Registrador de deslocamento usado como divisor por 2 ......................... 23 4.7 Registrador de deslocamento usado como multiplicador por 2 ................ 23 Experiência 2 .................................................................................................. 26 5 CONTADORES .............................................................................................. 26 5.1 Contadores assíncronos ........................................................................... 26 5.2 Contadores síncronos .............................................................................. 34 5.3 Contadores para circuitos temporizados .................................................. 38 5.4 Contadores integrados ............................................................................. 39 Experiência 3 .................................................................................................. 50 Experiência 4 .................................................................................................. 52 Experiência 5 .................................................................................................. 53 6 MEMÓRIAS SEMICONDUTORAS ................................................................ 55 6.1 Introdução ................................................................................................. 55 6.2 Estrutura e organização da memória ....................................................... 55 6.3 Princípios de operação ............................................................................. 56 6.4 Estruturas de endereçamento .................................................................. 57 6.5 Classificação das memórias ..................................................................... 59 6.6 Tipos de memórias ................................................................................... 61 Experiência 6 .................................................................................................. 74 7 MÁQUINAS DE ESTADOS ............................................................................ 79 7.1 Modelo geral ............................................................................................. 79 7.2 Análise de máquinas de estados .............................................................. 80 7.3 Síntese de máquinas de estados ............................................................. 85 REFERÊNCIAS BIBLIOGRÁFICAS ................................................................. 92 1
  • 3.
    1 A NECESSIDADEDA MEMÓRIA OU ESTADO SEQÜENCIAL 1.1 CONCEITO DE MEMÓRIA Qualquer dispositivo ou circuito que tem dois estados estáveis é dito biestável como, por exemplo, uma chave de conexão. Ela pode estar aberta ou fechada, dependendo da posição da alavanca. Esta chave possui uma memória, visto que ela permanecerá em um estado definido até que alguém ou algo mude a posição da alavanca. Quando um sinal de entrada é aplicado num dispositivo, a saída muda em resposta à entrada. Quando o sinal de entrada é removido, a saída retorna ao seu estado original. Este dispositivo não exibe a propriedade de memória, já que sua saída volta ao estado anterior. Existem dispositivos e circuitos digitais que possuem memória, onde quando um sinal de entrada é aplicado, a saída poderá mudar seu estado, mas permanecerá neste estado mesmo após a entrada ter sido removida. Esta propriedade de reter sua resposta a uma entrada momentânea é chamada memória. Portanto, memória é todo dispositivo que permite a perpetuação de uma informação ao longo do tempo. Costumamos classificar como tendo capacidade de memória a mente humana e os processadores digitais, mas há inúmeras outras formas de memória. Os livros, as fotografias, os discos de música são também dispositivos de memória. Mesmo coisas muito simples podem funcionar como memórias. Conta-se que Albert Einstein usava a caneta no bolso esquerdo ou direito para lembrar se já havia almoçado ou não. Portanto, é a memória que nos dá, pela lembrança do passado, a noção de tempo. Sem ela, viveríamos num eterno presente, não poderíamos discriminar o que é, daquilo que já foi e do que será. É o que ocorre aos sistemas digitais baseados em lógica combinacional. Os estados de suas saídas são dependentes apenas dos estados presentes (instantâneos) das entradas, logo, estes sistemas não conseguem lidar com a variável tempo e perceber seqüências de eventos, portanto, são incapazes de resolver qualquer problema que envolva a noção de tempo. Tome-se o exemplo do controle automático de enchimento de uma caixa d’água. Pretende-se que o sistema controle a válvula de entrada V a partir de dois sensores de nível de água A e B, como no esquema a seguir. 2
  • 4.
    A V LÓGICA COMBINACIONAL B Pretende-se que a válvula V seja aberta quando o sensor B estiver descoberto e só volte a ser fechada quando o sensor A estiver coberto. Se tentarmos resolver o problema usando lógica combinacional, obtém-se a tabela da verdade. Usando a convenção para: - Sensores A e B: 0 – descoberto; 1 – coberto - Válvula V : 0 – fechada; 1 – aberta A B V 0 0 1 0 1 ? (0 quando esvazia e 1 quando enche) 1 0 X (impossível) 1 1 0 Portanto, alguma variável precisa informar à lógica se no momento a caixa está em processo de enchimento ou esvaziamento, “lembrando” qual foi o último estado alcançado, isto é, cheio (V=0) ou vazio (V=1). O novo diagrama é mostrado abaixo. A V LÓGICA COMBINACIONAL B M MEMÓRIA Uma nova tabela da verdade, incorporando a variável de memorização é mostrada abaixo. M A B V 0 0 0 1 (liga válvula, caixa acabou de esvaziar) 0 0 1 0 (caixa esvaziando) 0 1 0 X (impossível) 0 1 1 0 (válvula foi recentemente desligada) 1 0 0 1 (válvula foi recentemente ligada) 1 0 1 1 (caixa enchendo) 1 1 0 X (impossível) 1 1 1 0 (desliga válvula, caixa acabou de encher) Ao conjunto do bloco combinacional mais o dispositivo de memória chamamos lógica seqüencial. Nesta lógica, os estados presentes das saídas não dependem apenas dos estados das entradas, mas também dos estados anteriores do próprio sistema. Para a solução do problema da caixa d’água usamos um dispositivo de memória capaz de armazenar um bit, que é a definição funcional de flip-flop. 3
  • 5.
    1.2 IMPACTO DAMEMÓRIA SEQÜENCIAL NO DESEMPENHO DE SISTEMAS AUTOMATIZADOS Os sistemas digitais dividem-se em duas classes: sistemas combinacionais e sistemas seqüenciais. Nos sistemas combinacionais, uma saída no tempo t depende somente da entrada no tempo t. Neste caso, o sistema não tem memória porque a saída não depende de entradas prévias. Portanto, a saída é dependente, única e exclusivamente, das variáveis de entrada. Exemplo: um cadeado de códigos (usado para prender bicicletas) – o cadeado será aberto num dado tempo t quando o código do cadeado é colocado nas entradas em t, sem considerar a história nas entradas. Se for o código 234, por exemplo, o cadeado será aberto quando esta combinação for colocada nas entradas, independentemente da ordem de colocação dos dígitos do código. Nos sistemas seqüenciais, uma saída no tempo t depende da entrada no tempo t e, possivelmente, também depende da entrada no tempo anterior a t. A saída é dependente das variáveis de entrada e/ou de seus estados anteriores armazenados. Exemplo: um sistema de discagem telefônica – o número de um assinante a ser discado será efetuado num dado instante t, se forem satisfeitas as seguintes condições: a) os dígitos discados antes do instante t devem seguir a seqüência daquela do número do assinante; b) o dígito discado no instante t, isto é, o último a ser discado, corresponde ao último dígito do número do assinante; c) todos os dígitos devem estar memorizados e disponibilizados na mesma seqüência da discagem no instante t. 1.3 OBTENÇÃO DO EFEITO MEMÓRIA (BUFFER REALIMENTADO) Construtivamente, um flip-flop pode ser descrito como um inversor realimentado por um outro inversor, como mostra o desenho abaixo. D Q Observando o diagrama, percebemos que uma vez imposto um estado lógico à entrada D, o estado da saída Q se manterá indefinidamente. Como podemos mudar do estado de Q sem provocar uma contradição com o estado de Q ? A solução é adicionar terminais de entrada, substituindo os inversores por portas lógicas Não-E. S S Q Q Q R Q R 4
  • 6.
    Agora podemos levarQ a 1 impondo 0 em S (set) e levar Q a 0 impondo 0 em R (reset), armazenando o estado que desejamos no flip-flop. Entretanto, o flip-flop deve ser aperfeiçoado para satisfazer à definição lógica de flip-flop: Um dispositivo com duas saídas complementares Q e Q , com duas entradas S e R que operam de acordo com a tabela abaixo. S R Q Q 0 0 não permitido 0 1 1 0 1 0 0 1 1 1 QA QA Um circuito eletrônico é biestável quando possui dois estados estáveis, isto é, sua saída é 0 Vcc (nível lógico 0) ou +5V (nível lógico 1). Assim, este dispositivo pode ser usado para armazenar um dígito binário (bit). 5
  • 7.
    2 A DEFINIÇÃODE FLIP-FLOPS O flip-flop é um elemento de circuito que pode apresentar em seu funcionamento apenas dois estados estáveis. Com a aplicação de um sinal de entrada pode-se efetuar a mudança de um estado para outro e de se conhecer o respectivo estado em que se encontra. Assim, este circuito é considerado como uma célula básica de memória da lógica seqüencial capaz de armazenar um bit. 2.1 FLIP-FLOP SR BÁSICO Possui duas entradas, definidas como Set e Reset e duas saídas Q e Q. Estas saídas somente podem permanecer com valores lógicos complementares. S R QA QF S R QF 0 0 0 0 - estável QA 0 0 QA 0 0 1 1 - estável 0 1 0 0 1 0 0 - estável 0 1 0 1 0 1 1 0 - instável 1 1 não perm. 1 0 0 1 - instável 1 1 0 1 1 - estável 1 1 0 1 - instável (não permitido) 1 1 1 1 - instável (não permitido) 2.2 DIAGRAMA DE TEMPO Os gráficos ou diagramas de nível lógico x tempo fornecem uma representação visual do desenvolvimento de sinais no tempo, bem como uma demonstração gráfica de comparação entre sinais em vários pontos de um circuito lógico. Assim, são muito usados em sistemas seqüenciais. 6
  • 8.
    Exemplo de diagramade tempo de um flip-flop SR S R Q Q 7
  • 9.
    3 APERFEIÇOAMENTO DOFLIP-FLOP 3.1 NECESSIDADE DE SINCRONISMO O flip-flop visto anteriormente não permite nenhum tipo de controle sobre as entradas, isto é, quando as informações chegam às entradas, são imediatamente processadas sem nenhum tipo de controle. Para corrigir este problema é incorporada uma entrada de controle denominada clock (para flip-flops) ou enable (para latches), permitindo um controle sobre as informações de entrada e estabelecendo um sincronismo na operação do circuito. Desse modo, é possível sincronizar o flip-flop (ativar ou desativar) com o intuito de armazenar a informação em qualquer instante e, então, reter a informação armazenada por qualquer período de tempo desejado. 3.2 LÓGICA (TERMINAIS E ESTADOS) O flip-flop pode ser representado por um bloco com duas saídas Q e Q , entradas para as variáveis e uma entrada de controle (clock/enable). As duas saídas correspondem aos dois estados estáveis e complementares. Para que o flip-flop possa assumir um destes estados, é necessário que haja uma combinação das variáveis de entrada e de um pulso de controle clock/enable. Com este pulso, o flip-flop permanecerá nesse estado ou mudará até a chegada de um novo pulso de controle, que poderá novamente manter ou mudar o estado. Portanto, a saída depende dos valores das entradas e/ou dos estados armazenados; Entrada 1 Q Clock/Enable FLIP-FLOP Q Entrada 2 3.3 FLIP-FLOP SR COMANDADO POR CONTROLE ENABLE Para Enable = 0 ⇒ a saída Q do flip-flop mantém seu estado armazenado; Para Enable = 1 ⇒ o flip-flop responde conforme os níveis lógicos das entradas. 8
  • 10.
    CONVENÇÕES E SIMBOLOGIAS Olatch responde em nível (0 ou 1) e o flip-flop responde em transição (subida ou descida). Se o circuito de controle detecta: - transição ⇒ Clock (Ck) - nível ⇒ Enable (En) 1 0 sub desc Exemplo de diagrama de tempo de um flip-flop SR ativado em nível lógico 1 1 2 3 4 5 6 7 Ck S R Q Q 3.4 FLIP-FLOP JK (ELIMINAÇÃO DO ESTADO PROIBIDO) Objetivo: evitar a saída Q com situação não permitida. J K QA QA S R QF J K QF 0 0 0 1 0 0 0 QA 0 0 QA 0 0 1 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 QA 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 0 1 1 0 1 QA 1 1 1 0 0 1 0 9
  • 11.
    Circuito análogo doFlip-flop JK (com portas lógicas Não-E) Característica inconveniente no funcionamento do circuito ⇒ Para J e K = 1, ocorrem constantes oscilações (mudanças de estado) na saída Q, em função das duplas realimentações. Possíveis soluções ⇒ forçar o clock para zero num tempo conveniente após a aplicação dos níveis lógicos nas entradas J e K (deve levar em conta o atraso na propagação de cada porta lógica); ⇒ inserir blocos (portas lógicas) de atraso em série com as linhas de realimentação e comutar a entrada clock da mesma forma. 3.5 FLIP-FLOP JK MESTRE-ESCRAVO (ELIMINAÇÃO DA OSCILAÇÃO) O flip-flop JK, quando ativado, funciona como um circuito combinacional, isto é, ocorre a passagem das entradas J e K e da realimentação, provocando alterações sucessivas na saída Q. Objetivo: evitar as constantes oscilações na saída Q quando as entradas J e K = 1. Seqüência de funcionamento ⇒ Para clock = 1: ocorre a passagem dos níveis lógicos J e K do Mestre; não passagem de Q1 e Q1 , porque o clock do escravo é zero. ⇒ Para clock = 0: Q1 e Q1 estavam bloqueadas com o último estado assumido; passagem das entradas S e R (escravo), mudando as saídas Q e Q . 10
  • 12.
    Conclusão: o circuitosó reconhece as entradas J e K quando o clock passa de 1 para zero. 3.6 FLIP-FLOP JK MESTRE-ESCRAVO COM TERMINAIS DE PROGRAMA - ENTRADAS PRESET E CLEAR A maioria dos flip-flops com clock também possui uma ou mais entradas de programa, ditas assíncronas, que operam independentemente das entradas síncronas e da entrada de clock. Estas entradas assíncronas podem ser usadas para colocar o flip-flop no estado 0 ou no estado 1, em qualquer instante. Assim, estas entradas se sobrepõem a todas as outras entradas. Clr Pr QF 0 0 Não permitido 0 1 0 1 0 1 1 1 Func. normal 3.7 - FLIP-FLOP TIPO T (TOGGLE) Trata-se de um flip-flop JK com as entradas curto-circuitadas, de modo a assumir apenas duas condições de entrada. Pr T J Q Ck K Q Clr 11
  • 13.
    J K T QF T QF 0 0 0 QA 0 QA 0 1 1 QA 1 0 1 1 1 QA 3.8 - FLIP-FLOP TIPO D (DATA) Trata-se de um flip-flop JK com as entradas invertidas, obtidas através de uma porta lógica inversora conectada entre as mesmas. Pr D J Q Ck K Q Clr J K D QF D QF 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 12
  • 14.
    EXERCÍCIOS 1. Analise oflip-flop abaixo, preencha a tabela de transição e especifique o seu tipo. X QA QF X QF 0 0 ⇒ 0 0 1 1 1 0 1 1 2. Dado o circuito do flip-flop abaixo, determine sua tabela de transição para todas as situações possíveis nas entradas A e B. Após, obtenha a tabela compacta e identifique seu tipo. A B QA QF A B QF 0 0 0 ⇒ 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 3. Desenhe a forma de onda na saída Q do flip-flop JK abaixo. J Q K=1 13
  • 15.
    J Ck Q 4. Analise oflip-flop abaixo, preencha a tabela de transição e especifique o seu tipo. X QA QF X QF ↑ 0 ⇒ ↑ ↑ 1 ↓ ↓ 0 ↓ 1 5. Dado o circuito do flip-flop abaixo, determine sua tabela de transição para todas as situações possíveis nas entradas A e B. Após, obtenha a tabela compacta e identifique seu tipo. X Y QA QF X Y QF 0 0 0 ⇒ 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 14
  • 16.
    6. Desenhe aforma de onda na saída Q do flip-flop tipo T abaixo. Ck CLR PR T Q 7. Determine a forma de onda da saída Q do flip-flop tipo D, a partir dos sinais apresentados abaixo: Ck PR CLR D Q 15
  • 17.
    8. Apresente assaídas Q dos flip-flops abaixo, a partir dos sinais de Clock e Entrada. E Ck Q1 Q2 Q3 Q4 9. A partir das formas de onda de um flip-flop JK apresentadas abaixo, determine a forma de onda na saída Q. Ck CLR PR J K Q 10. Dado o circuito do flip-flop abaixo, determine sua tabela de transição para todas as situações possíveis nas entradas X e Y. Após, obtenha a tabela compacta e identifique seu tipo. 16
  • 18.
    X Q Ck Q' Y X Y QA QF X Y QF 0 0 0 ⇒ 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 1 1 1 17
  • 19.
    EXPERIÊNCIA 1 -FLIP-FLOPS 1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos os seguintes circuitos digitais. Em seguida, obtenha a tabela de transição e defina como o flip-flop é ativado. 1.1 - Flip-flop SR com clock, usando portas lógicas Não-E (7400); 1.2 - Flip-flop SR com clock, usando portas lógicas Não-Ou (7402); S Q Ck Q R 1.3 - Flip-flop JK com Preset e Clear (7476); 1.4 - Flip-flop tipo T (7476); 1.5 - Flip-flop tipo D (7474). 18
  • 20.
    1.6 – Circuitosanti-repique 2. Na seqüência, energize os circuitos e simule, via chaves, os valores possíveis para as entradas; 3. Organize e interprete os dados coletados na experimentação. Verifique se os valores encontrados na saída correspondem à análise teórica do circuito (tabela de transição); 4. Desmonte os circuitos e reponha o equipamento e componentes aos seus lugares; 5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa. 19
  • 21.
    4 REGISTRADORES DEDESLOCAMENTO 4.1 CONCEITO Um registro de deslocamento (shift register) consiste de um grupo de flip-flops interconectados com a propriedade de deslocar dados armazenados nas suas saídas Q de um flip-flop para outro. A direção do deslocamento pode ser para a direita ou para a esquerda, cuja operação é síncrona e sendo regida por um sinal de clock. 4.2 CARACTERÍSTICAS Um registrador pode deslocar informações de dois tipos: Informação paralela São dados que trafegam em várias linhas ou fios, uma para cada bit do número/palavra binário, não existindo a necessidade de referenciar a um clock. Informação série São dados que trafegam em uma única linha ou fio, um bit de cada vez, a uma taxa de transferência que é constante e em fase com um clock de referência. 4.3 APLICAÇÕES Os computadores trabalham com pacotes de informações binárias de 8, 16 ou 32 bits. Os bytes são processados e/ou transportados num computador através de barramentos. A forma de transmissão paralela é usada em computadores porque é muito mais rápida e as distâncias são pequenas. Por outro lado, o formato serial é usado para mover dados de/para teclado e monitor e para comunicação digital entre microcomputadores. Os registradores também são usados para algumas operações aritméticas como complementação, multiplicação e divisão binária. 4.4 CLASSIFICAÇÃO Os registradores de deslocamento são classificados de acordo com três aspectos básicos. a) Quanto à forma de manipulação dos dados - Entrada série e saída série - Entrada série e saída paralela - Entrada paralela e saída série - Entrada paralela e saída paralela b) Quanto à direção de deslocamento - Deslocamento para a esquerda (shift left) - Deslocamento para a direita (shift right) - Deslocamento bidirecional c) Quanto à capacidade de armazenamento - Relacionado com o número de bits que pode ser armazenado no registrador 4.5 CONFIGURAÇÕES Os dados num registrador são possíveis de deslocar: - em série e em paralelo - para dentro e para fora Em função disso, podem ser construídos quatro tipos básicos de registradores: - em série para dentro ou carga (load) – em série para fora ou descarga (shift) - em série para carga – em paralelo para descarga - em paralelo para carga – em série para descarga - em paralelo para carga – em paralelo para descarga 20
  • 22.
    4.5.1 REGISTRADOR DEDESLOCAMENTO DE ENTRADA SÉRIE E SAÍDA SÉRIE Após a entrada da informação, cada bit é deslocado uma casa à direita após a ocorrência do clock. Assim, são deslocados 4 bits de dados em modo série para dentro (à direita) dos flip-flops. Entrada de informação: através da entrada série; Saída da informação: em Q0 21
  • 23.
    4.5.2 REGISTRADOR DEDESLOCAMENTO DE ENTRADA SÉRIE E SAÍDAS PARALELAS O funcionamento deste registrador é idêntico ao registrador anterior, exceto que as saídas são obtidas, simultaneamente, após 4 pulsos de clock, nos terminais Q3, Q2, Q1 e Q0. 4.5.3 REGISTRADOR DE DESLOCAMENTO DE ENTRADAS PARALELAS E SAÍDA SÉRIE Entrada da informação: Se limparmos o registrador (Clear=0) e introduzirmos a informação paralela através dos terminais PR, então, as saídas Q dos flip-flops assumirão estes valores. Saída da informação: Para Clear=0, a cada descida do Clock, Q0 irá assumir os valores, seqüencialmente, de Q0, Q1, Q2 e Q3. Se Enable=0 ⇒ Preset (PR) dos flip-flops são iguais a 1 e atuam normais; Se Enable=1 ⇒ Preset (PR) dos flip-flops terão valores complementares às entradas PR3, PR2, PR1, PR0 e, portanto, as saídas assumirão os valores destes terminais. Exemplo: Se PR3 = 0 ⇒ Pr=1 ⇒ Q3 mantém seu estado; Se PR3 = 1 ⇒ Pr=0 ⇒ Q3 = 1. 22
  • 24.
    4.5.4 REGISTRADOR DEDESLOCAMENTO DE ENTRADA PARALELA E SAÍDAS PARALELAS Entrada de informação: através dos terminais Preset e Clear; Saída da informação: inibindo o clock, as saídas são obtidas pelos terminais Q3, Q2, Q1 e Q0. 4.6 REGISTRADOR DE DESLOCAMENTO USADO COMO DIVISOR POR 2 (SHIFT RIGHT) Q3 Q2 Q1 Q0 Entrada Registrador de Deslocamento Ck Entra-se com zero na Entrada Série e, através do clock, desloca-se uma casa à direita. Exemplo: 1010(2) = 10(10) ⇒ 0101(2) = 5(10) 4.7 REGISTRADOR DE DESLOCAMENTO USADO COMO MULTIPLICADOR POR 2 (SHIFT LEFT) Q3 Q2 Q1 Q0 Entrada Registrador de Deslocamento Ck Desloca-se uma casa à esquerda através do clock e força-se Q0 = 0. Exemplo: 0001(2) = 1(10) ⇒ 0010(2) = 2(10) 23
  • 25.
    EXERCÍCIOS 1. Esboce asformas de onda para o Registrador de Deslocamento abaixo, em função dos sinais aplicados, considerando a entrada Enable = 0 PR2 PR1 PR0 Enable Q2 Q1 Q0 E S S S D Q D Q D Q _ _ _ CP Q CP Q CP Q R R R Ck Clr Ck Clr E Q2 Q1 Q0 2. Na questão anterior, aplicando os níveis lógicos nas entradas PRs indicados abaixo, determina as formas de onda nas saídas Q. Considere Enable=1. Clr PR2 PR1 PR0 Q2 Q1 Q0 24
  • 26.
    3. Quanto tempoem segundos levará para deslocar um número binário de 8 bits para dentro do circuito integrado 74164, se o clock é de 1 MHz? 4. Desenhe as formas de onda na saída P do circuito abaixo. 25
  • 27.
    EXPERIÊNCIA 2 -REGISTRADORES DE DESLOCAMENTO 1. Identifique a pinagem do circuito integrado e monte em matriz de contatos o seguinte circuito digital: 1.1 - Registrador de Deslocamento de 4 bits (7495) Outputs Shift Shift Right Left Vcc QA QB QC QD Ck1 Ck2 14 13 12 11 10 9 8 7495 – R. D. 4 bits Entrada paralela/série Saída paralela 1 2 3 4 5 6 7 Serial A B C D Mode GND Input control Inputs Etapa 1 Mode control = 0 ⇒ Ck1 (série/paralelo) Mode control = 1 ⇒ Ck2 (paralelo/paralelo) Etapa 2 Ck1 e mode control = 0 ⇒ deslocamento à direita Ck2 e mode control = 1 ⇒ deslocamento à esquerda 1.2 Registrador de Deslocamento de 8 bits através de cascateamento (2 x 7495) saídas 1 saídas 2 ck1 ck2 14 13 12 11 10 9 8 14 13 12 11 10 9 8 7495 (1) 7495 (2) 1 2 3 4 5 6 7 1 2 3 4 5 6 7 entrada entrada shift shift mode right left control 26
  • 28.
    1.3 Registrador dedeslocamento usado na transmissão de dados (74194 e 7495) Ck S1 S0 16 15 14 13 12 11 10 9 14 13 12 11 10 9 8 Vcc QA QB QC QD Ck S1 S0 Vcc QA QB QC QD SR SL 74194 7495 Conversão P/S Conversão S/P Clr SI-right A B C D SI-left GND SI A B C D MC GND 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 Simulação Mode control com chaves SI-R SI-L Mode S1 S0 FUNÇÃO DO 74194 control 0 0 1 ck1 1 1 transfere dados das entradas para as saídas 1 0 0 ck1 0 1 desloca dados da esquerda para a direita 0 0 0 ck2 1 1 transfere dados das entradas para as saídas 0 1 0 ck2 1 0 desloca dados da direita para a esquerda 27
  • 29.
    1.4 Registrador dedeslocamento de 8 bits em anel (74164) Vcc QH QG QF QE Reset Ck 14 13 12 11 10 9 8 74164 – R. D. 8 bits Entrada série Saídas paralelas 1 2 3 4 5 6 7 A B QA QB QC QD GND 2. Na seqüência, energize o circuito e simule, via chaves, os valores possíveis para as entradas; 3. Organize e interprete os dados coletados na experimentação. Verifique se os valores encontrados na saída correspondem à análise teórica do circuito; 4. Desmonte o circuito e reponha o equipamento e componentes aos seus lugares; 5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa. 28
  • 30.
    5 CONTADORES Conceito O contadordigital é um circuito seqüencial, configurado de tal modo que para cada estado presente nas saídas dos flip-flops, existe um estado seguinte bem definido. Durante a operação de contagem, o contador desloca-se de um estado para o outro de acordo com uma seqüência especificada. Características • Variam os seus estados, sob comando de pulsos de clock, de acordo com uma seqüência pré-determinada; • São usados para contagens, divisores de freqüência, geradores de forma de onda, conversores analógico-digitais, etc; Classificação quanto ao sincronismo Assíncrono: quando o sinal de clock é aplicado apenas ao primeiro estágio (flip-flop). Os estágios seguintes utilizam como sinal de sincronismo a saída de cada estágio anterior. Síncrono: quando o sinal de clock é único e externo, sendo aplicado a todos os estágios ao mesmo tempo. Classificação quanto ao modo de contagem Crescente (progressivo): quando conta numa seqüência de números crescentes. Decrescente (regressivo): quando conta numa seqüência de números decrescentes. Aleatória: quando conta numa seqüência qualquer programada. 5.1 - CONTADORES ASSÍNCRONOS Um contador assíncrono, de modo geral, tem as saídas e entradas ligadas e polarizadas conforme a rotina: a) a saída de cada flip-flop deve ser conectada a entrada clock dos flip-flops seguintes; b) as entradas J e K de todos os flip-flops devem ser polarizadas com nível lógico 1, na configuração do flip-flop tipo T; c) o sinal de clock do contador deve acionar a entrada clock do primeiro flip-flop. As saídas do primeiro e último flip-flop correspondem, respectivamente, aos bits menos (LSB) e mais (MSB) significativos do contador. A interligação de todas as entradas clear dos flip-flops fornece uma entrada que corresponde à linha clear (reset) do contador, usada para garantir um estado inicial zero. 5.1.1 - CONTADOR BINÁRIO Apresenta na saída a seqüência de contagem do código binário. 29
  • 31.
    Inicialmente, supõem-se assaídas zeradas. Aplica-se um pulso de clock no primeiro flip- flop, cuja mudança de estado na saída ocorrerá na descida do clock. O flip-flop seguinte mudará o nível lógico na saída sempre que ocorrer a mudança (descida do clock) de nível lógico no flip-flop anterior. O diagrama de tempo abaixo ilustra melhor a seqüência de funcionamento do contador. Após o 160 pulso de clock, o contador irá reiniciar a contagem. Observa-se que este circuito possui também a característica de divisor de freqüência por 2, 4, 8 e 16 (fn = fck/2n). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ck Q0 Q1 Q2 Q3 O maior número que um contador pode registrar em sua saída é dado por: (2n – 1), onde n é o número de flip-flops do contador. Exemplo: Para uma contagem limite do contador = 3110 = 111112 O número de flip-flops necessários será: 2n – 1 = 31 ⇒ n = 5 flip-flops Obs: A soma dos tempos de transição em cada flip-flop provoca a ocorrência de estados lógicos falsos, que podem ser indesejáveis quando se têm contadores com muitos flip- flops e alta freqüência do clock. 5.1.2 CONTADOR MÓDULO QUALQUER Para o projeto de um contador assíncrono com módulo de contagem qualquer N, basta verificar quais as saídas do contador para o caso N+1. Estas saídas devem ser conectadas a uma porta lógica tipo NÃO-E, cuja saída será remetida para as entradas clear dos flip-flops do contador. Exemplo: Contador de 0-5 - quando as saídas apresentarem Q2Q1Q0 = 110 (2) = 6 (10), um pulso zero será encaminhado às entradas clear, zerando o contador e reiniciando a contagem. 30
  • 32.
    5.1.3 - CONTADORBCD (DÉCADAS) Para contar de 0 a 9: somente quando as saídas apresentarem Q3Q2Q1Q0 = 1010 (2) = 10 (10) A lógica auxiliar (porta Não-E) assume nível lógico zero em sua saída, encaminhado a todos os terminais clear , zerando todas as saídas e o contador reinicia a contagem. 5.1.4 - CONTADOR BINÁRIO DECRESCENTE O circuito que efetua a contagem decrescente se diferencia da contagem crescente apenas pela forma de obtenção dos clocks dos flip-flops: a partir das saídas complementares. Um outro circuito com mesmo resultado pode ser obtido quando as saídas do contador são extraídas das saídas complementares dos flip-flops. O diagrama de tempo a seguir demonstra a seqüência de contagem. 31
  • 33.
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Ck Q0 Q1 Q2 Q3 5.1.5 - CONTADOR BINÁRIO CRESCENTE E DECRESCENTE Uma superposição de contadores crescente e decrescente resulta num contador bidirecional, onde uma variável de controle X define se: - contagem crescente ⇒ X = 1 - contagem decrescente ⇒ X = 0 Uma outra estrutura pode ser construída usando multiplexadores (TTL 74157) entre os vários estágios do contador que selecionam para a linha clock do próximo estágio a saída Q ou seu complemento Q do flip-flop. O controle da contagem ascendente ou descente é feito pela entrada de seleção C do multiplex: - Para C = 0 ⇒ a contagem é crescente - Para C = 1 ⇒ a contagem é decrescente 32
  • 34.
    5.1.6 CONTADOR ASSÍNCRONOPROGRAMÁVEL Um contador digital pode ser programado com um número binário de tamanho igual ou menor que seu módulo. Uma vez definida a programação, pode-se empregar um circuito comparador que efetua a comparação entre os bits das saídas Q do contador com os bits programados nas entradas A0, A1, A2 e A3. Quando forem iguais, um sinal controla a parada do contador. 33
  • 35.
    5.2 CONTADORES SÍNCRONOS Umcontador síncrono tem todas as entradas de clock interconectadas, de modo que cada flip-flop muda de estado lógico ao mesmo tempo. Antes de cada pulso de clock, as entradas devem ser estabelecidas com os níveis lógicos apropriados, assegurando nas saídas os estados lógicos desejados. Isto é, o projeto de contadores síncronos requer a alteração conveniente dos níveis lógicos das entradas J e K dos flip-flops, a cada pulso introduzido no clock. Seguindo tal orientação, pode-se construir uma tabela da transição que estabelece os valores nas entradas J e K dos flip-flops, obtida a partir das possíveis combinações de estados na saída Q, antes e depois da aplicação do pulso de clock. J K QF Q A QF J K 0 0 QA 0 0 0 X 0 1 0 0 1 1 X 1 0 1 1 0 X 1 1 1 QA 1 1 X 0 5.2.1 - CONTADOR BINÁRIO (Procedimento de projeto) O procedimento para projeto de um contador síncrono desenvolvido a seguir pode ser aplicado a qualquer seqüência desejada. a) Determine o número de bits necessários (número de flip-flops) e a seqüência de contagem desejada. Contagem = 2n – 1, onde: n=número de flip-flops Ex: contagem = 15 = 2n – 1 ⇒ n=4 flip-flops 0⇒1⇒2⇒3⇒4⇒5⇒6⇒7⇒8⇒9⇒10⇒11⇒12⇒13⇒14⇒15 b) Desenhe o diagrama da transição dos estados possíveis, incluindo aqueles que não fazem parte da seqüência de contagem desejada. 0000 0001 0010 0011 0100 0101 Os números que na fazem parte da contagem podem ser 1111 orientados para: 0110 a) ir para o início da contagem; b) b) ir para o número imediatamente superior; c) torná-lo irrelevante. 1110 0111 1101 1100 1011 1010 1001 1000 34
  • 36.
    c) Use odiagrama de transição de estados para construir uma tabela que relacione todos os estados possíveis das saídas do contador. Acrescente colunas para as entradas J e K, indicando seus níveis lógicos necessários para possibilitar as saídas desejadas. Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0 0 0 0 0 0 X 0 X 0 X 1 X 0 0 0 1 0 X 0 X 1 X X 1 0 0 1 0 0 X 0 X X 0 1 X 0 0 1 1 0 X 1 X X 1 X 1 0 1 0 0 0 X X 0 0 X 1 X 0 1 0 1 0 X X 0 1 X X 1 0 1 1 0 0 X X 0 X 0 1 X 0 1 1 1 1 X X 1 X 1 X 1 1 0 0 0 X 0 0 X 0 X 1 X 1 0 0 1 X 0 0 X 1 X X 1 1 0 1 0 X 0 0 X X 0 1 X 1 0 1 1 X 0 1 X X 1 X 1 1 1 0 0 X 0 X 0 0 X 1 X 1 1 0 1 X 0 X 0 1 X X 1 1 1 1 0 X 0 X 0 X 0 1 X 1 1 1 1 X 1 X 1 X 1 X 1 d) Obtenha as expressões simplificadas para cada uma das entradas J e K dos flip-flops, utilizando os diagramas de Veitch-Karnaugh. J3 = Q2.Q1.Q0 K3 = Q2.Q1.Q0 J2 = Q1.Q0 K2 = Q1.Q0 J1 = Q0 K1 = Q0 J0 = 1 K0 = 1 e) Desenhe o circuito do contador síncrono com 4 flip-flops, utilizando portas lógicas adequadas para as entradas J e K, conforme os resultados obtidos nas expressões lógicas simplificadas. 35
  • 37.
    5.2.2 - CONTADORBCD (DÉCADAS) Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0 0 0 0 0 0 X 0 X 0 X 1 X 0 0 0 1 0 X 0 X 1 X X 1 0 0 1 0 0 X 0 X X 0 1 X 0 0 1 1 0 X 1 X X 1 X 1 0 1 0 0 0 X X 0 0 X 1 X 0 1 0 1 0 X X 0 1 X X 1 0 1 1 0 0 X X 0 X 0 1 X 0 1 1 1 1 X X 1 X 1 X 1 1 0 0 0 X 0 0 X 0 X 1 X 1 0 0 1 X 1 0 X 0 X X 1 J3 = Q2.Q1.Q0 K3 = Q0 J2 = Q1.Q0 K2 = Q1.Q0 J1 = Q0.Q3 K1 = Q0 J0 = 1 K0 = 1 5.2.3 - CONTADOR BINÁRIO CRESCENTE/DECRESCENTE DE 3 BITS X Q2 Q1 Q0 J2 K2 J1 K1 J0 K0 0 0 0 0 0 X 0 X 1 X 0 0 0 1 0 X 1 X X 1 0 0 1 0 0 X X 0 1 X 0 0 1 1 1 X X 1 X 1 0 1 0 0 X 0 0 X 1 X 0 1 0 1 X 0 1 X X 1 0 1 1 0 X 0 X 0 1 X 0 1 1 1 X 1 X 1 X 1 1 1 1 1 X 0 X 0 X 1 1 1 1 0 X 0 X 1 1 X 1 1 0 1 X 0 0 X X 1 1 1 0 0 X 1 1 X 1 X 1 0 1 1 0 X X 0 X 1 1 0 1 0 0 X X 1 1 X 1 0 0 1 0 X 0 X X 1 1 0 0 0 1 X 1 X 1 X 36
  • 38.
    J2 = X.Q1.Q0+ X.Q1.Q0 K2 = X.Q1.Q0 + X.Q1.Q0 J1 = X⊕Q0 K1 = X⊕Q0 J0 = 1 K0 = 1 37
  • 39.
    5.3 - CONTADORESPARA CIRCUITOS TEMPORIZADOS 5.3.1 - CONTADOR DE 0 A 59 Para contagem de minutos e segundos: ciclo igual a 60. Formas de obtenção: a) um contador assíncrono ou síncrono de contagem 0 a 59. b) dois contadores assíncronos ou síncronos: um para dezena (0 a 5) e outro para unidade (0 a 9) 5.3.2 - CONTADOR DE 1 A 12 Para contagem de horas: ciclo de 1 a 12. Mais usado é o contador síncrono, pois permite o início da contagem pelo estado 1. 5.3.3 - CONTADOR DE 0 A 23 Para contagem de horas: ciclo igual a 24. Formas de obtenção: c) um contador assíncrono ou síncrono de contagem 0 a 23. d) dois contadores assíncronos ou síncronos: um para dezena (0 a 2) e outro para unidade (0 a 9) DIAGRAMA DE BLOCOS DE UM RELÓGIO DIGITAL BÁSICO Contador Horas Contador Minutos Contador Segundos Gerador de clock 1 - 12 0 - 59 0 - 59 1 Hz Decodificador Decodificador Decodificador BCD/7 segmentos BCD/7 segmentos BCD/7 segmentos Display - Horas Display - Minutos Display - Segundos 38
  • 40.
    5.4 - CONTADORESINTEGRADOS 5.4.1 – CONTADOR BCD – TTL 7490 Consiste de duas partes distintas: um divisor de freqüência por dois e um divisor por cinco, onde cada divisor possui entrada clock independente. Os divisores podem ser interligados para a obtenção de um divisor por dez, desde que a saída QA seja conectada externamente a entrada B. Aplicando o clock na entrada A, o contador assume a contagem BCD e retorna ao estado inicial a cada dez pulsos. A tabela abaixo orienta melhor seu funcionamento. Contador 7490 R0(1) R0(2) R9(1) R9(2) QD QC QB QA 1 1 0 X 0 0 0 0 1 1 X 0 0 0 0 0 X X 1 1 1 0 0 1 X 0 X 0 Contagem 0 X 0 X Contagem 0 X X 0 Contagem X 0 0 X Contagem 5.4.2 – CONTADOR-DIVISOR POR 12 – TTL 7492 Consiste de duas partes distintas: um divisor de freqüência por dois e um divisor por seis, onde cada divisor possui entrada clock independente. Os divisores podem ser interligados para a obtenção de um divisor por doze, desde que a saída QA seja conectada externamente a entrada B. Aplicando o clock na entrada A, o contador assume a contagem de módulo 12 (0-1-2-3-4-5-8-9-10-11-12-13) e retorna ao estado inicial a cada doze pulsos. As figuras a seguir ilustram melhor seu funcionamento. 39
  • 41.
    5.4.3 – CONTADORBINÁRIO-DIVISOR POR 16 – TTL 7493 Consiste de duas partes distintas: um divisor de freqüência por dois e um divisor por oito, onde cada divisor possui entrada clock independente. Os divisores podem ser interligados para a obtenção de um divisor por dezesseis, desde que a saída QA seja conectada externamente a entrada B. Aplicando o clock na entrada A, o contador assume a contagem binária de 4 bits ou como divisor por 16 e retorna ao estado inicial a cada dezesseis pulsos. As figuras a seguir ilustram melhor seu funcionamento. 40
  • 42.
    5.4.4 – CONTADORESCRESCENTE/DECRESCENTE - BCD (TTL 74190) - BINÁRIO (TTL 74191) Os integrados TTL 74190 e 74191 são contadores síncronos reversíveis (up/down) de 4 bits. Possuem pinagens compatíveis entre si e se diferenciam por um (74190) apresentar contagem BCD e outro (74191) apresentar contagem binária. Quando a linha Enable = 1 inibe o circuito para contagem. Esta entrada deve ser alterada apenas quando o clock estiver em 1. A direção de contagem é definida pela entrada Down/up. Quando em nível 0, o contador segue a seqüência crescente. Quando em 1, segue a seqüência decrescente. Os circuitos são completamente programáveis, isto é, as saídas do contador podem ser colocadas em qualquer estado, independente de pulsos de clock. Para isso, coloca-se a entrada Load = 0 e entram-se com os estados desejados nas entradas paralelas de dados A, B, C e D. Com essa característica é possível o uso desses contadores como divisores por N, pois é possível alterar o módulo do contador através destas entradas paralelas. Duas saídas são disponíveis para a execução de cascateamento: as saídas Ripple-clock e Max/min. A saída Max/min fornece um pulso positivo quando ocorre um overflow (após o estado 9 ou 15 na seqüência up) ou underflow (após o estado 0 na seqüência down). A saída Ripple-clock fornece um pulso negativo quando ocorre um overflow e underflow. O cascateamento pode ser feito se a saída Ripple-clock de um contador for ligada à entrada Enable do contador seguinte (quando as linhas clock estão interligadas) ou à entrada clock (quando as entradas Enable estão interligadas). 41
  • 43.
    EXERCÍCIOS – CONTADORES CONTADORESASSÍNCRONOS 1. Esquematize o circuito de um contador assíncrono crescente para contagem de horas de 1 a 12. 2. Esquematize o circuito de um contador assíncrono decrescente para contagem de minutos de 29 a zero. Q4Q3Q2Q1Q0 = 111012 = 2910 3. Projete um contador assíncrono crescente de modo a travar (parar) no número 9(10) = 1001(2) 4. Dado o circuito do contador assíncrono abaixo, usando flip-flops D, preencha a tabela de transição informando a seqüência de contagem. Q0 Q1 Q2 U1A U1B U2A S S S D Q D Q D Q Ck _ _ _ CP Q CP Q CP Q R R R No Q2 Q1 Q0 0 0 0 0 5. Projete um contador assíncrono decrescente módulo 12 (11 – 0). 6. Projete um contador assíncrono crescente de 0 a 7, com uma lógica auxiliar que possibilite duas condições: a) o travamento (parada) da contagem quando pressionada uma chave de pressão; b) o zeramento do contador quando pressionada uma outra chave de pressão. 7. Esquematize o circuito de um contador assíncrono decrescente de 12 a 1 (timer de horas), usando flip-flops JK. 8. Esquematize um contador assíncrono para trabalhar como divisor de freqüência por 4. Esboce as formas de onda do clock e das saídas do contador. 42
  • 44.
    9. O circuitocontador binário de 3 bits abaixo obtido com flip-flops JK ativados na descida do clock, apresenta o seguinte sinal de clock. Desenhe as formas de ondas nas saídas Q. Assuma Q0inicial = 0. Vcc Ck S S S J Q J Q J Q CP _ CP _ CP _ K Q K Q K Q R R R Ck Q0 Q1 Q2 43
  • 45.
    CONTADORES SÍNCRONOS 1. Projeteum contador síncrono crescente/decrescente, que gere a seguinte contagem: X=0 ⇒ contagem crescente ⇒ 0-1-2-3 X=1 ⇒ contagem decrescente ⇒ 3-2-1-0 2. Determine as formas de onda de Q2, Q1 e Q0 para o contador abaixo, em função dos sinais de clock e In aplicados. In Ck Q0 Q1 Q2 3. Projete um contador síncrono, que gere a contagem da tabela de transição abaixo: Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 1 44
  • 46.
    4. Desenhe asformas de onda nos pontos A e B do contador síncrono abaixo, em função dos sinais de clock aplicados. Ck A B 5. Determine as formas de onda de Q0, Q1 e Q2 para o contador síncrono abaixo, em função dos sinais de Clear e Clock aplicados. Clr Ck Q0 Q1 Q2 45
  • 47.
    6. Projete ocircuito de um contador síncrono para gerar a seqüência da tabela abaixo. Q3 Q2 Q1 Q0 J3 K3 J2 K2 J1 K1 J0 K0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 7. Projete um contador síncrono para gerar a seqüência dos números primos: 1-2-3-5-7 46
  • 48.
    CONTADORES INTEGRADOS 1. Interligueos contadores integrados abaixo de modo a formar um de 0-23. Q1 Q0 Q3 Q2 Q1 Q0 Ck 0-2 Ck 0-9 Dezena Unidade Clr Clr 2. Interligue os contadores integrados abaixo de modo a formar um de 0-59. Q2 Q1 Q0 Q3 Q2 Q1 Q0 Ck 0-5 Ck 0-9 Dezena Unidade Clr Clr 3. Dada a pinagem do contador integrado 7490 abaixo, elabore as devidas interligações, de modo a contar de 0 a 7. 14 13 12 11 10 9 8 Ent.A NC QA QD GND QB QC Contador integrado 7490 Ent.B R0(1) R0(2) NC Vcc R9(1) R9(2) 1 2 3 4 5 6 7 R0(1) R0(2) R9(1) R9(2) QD QC QB QA 1 1 0 X 0 0 0 0 1 1 X 0 0 0 0 0 X X 1 1 1 0 0 1 X 0 X 0 Cont. 0 X 0 X Cont. 0 X X 0 Cont. X 0 0 X Cont. 47
  • 49.
    4. Interligue osdois blocos contadores, de modo a formar um sistema contador de 0 a 12. Q0 Q3 Q2 Q1 Q0 Ck 0-1 Ck 0-9 Dezena Unidade Clr Clr 5. Interligue os contadores integrados abaixo de modo a formar um de 59-0. Q2 Q1 Q0 Q3 Q2 Q1 Q0 Ck 5-0 Ck 9-0 Dezena Unidade Pr Clr Pr Clr 6. Interligue os contadores integrados abaixo de modo a formar um de 23-0. Q1 Q0 Q3 Q2 Q1 Q0 A Data A Ck 2-0 B Ck 9-0 Data B 74190 (Dezena) C 74190 (Unidade) Data C D Data D Load Load 48
  • 50.
    7. Desenhe todasas interligações e conexões necessárias nos cis 7490 e 7408, de modo a obter-se um contador crescente de segundos (0-59). 14 13 12 11 10 9 8 Ent.A NC QA QD GND QB QC 7490 (dezena) Vcc 1 14 Ent.B R0(1) R0(2) NC Vcc R9(1) R9(2) 2 13 1 2 3 4 5 6 7 3 12 4 11 7408 14 13 12 11 10 9 8 5 10 Ent.A NC QA QD GND QB QC 6 9 7490 (unidade) 7 GND 8 Ent.B R0(1) R0(2) NC Vcc R9(1) R9(2) 1 2 3 4 5 6 7 R0(1) R0(2) R9(1) R9(2) QD QC QB QA 1 1 0 X 0 0 0 0 1 1 X 0 0 0 0 0 X X 1 1 1 0 0 1 X 0 X 0 Cont. 0 X 0 X Cont. 0 X X 0 Cont. X 0 0 X Cont. PROJETO Uma academia de ginástica necessita de um cronômetro progressivo e regressivo para contagem de tempo dos exercícios físicos, para um tempo de até 1 minuto. Projete o módulo contador de segundos (00⇒59 e 59⇒0), incorporando os seguintes recursos: a) uma chave para zerar o contador; b) uma chave para travar (parar) o contador em qualquer tempo; c) uma chave para avanço rápido do clock para programação da contagem num determinado tempo. 49
  • 51.
    EXPERIÊNCIA 3 –CONTADORES ASSÍNCRONOS 1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos os seguintes circuitos digitais: 1.1 - Contador binário crescente de 4 bits (2x7476) 1.2 - Contador binário decrescente de 4 bits (2x7476) 1.3 - Contador BCD crescente de décadas (2x7476, 7420) 1.4 – Contador binário crescente/decrescente (2x7476, 74157) 50
  • 52.
    1.5 - Contadorassíncrono programável de módulo variável (2x7476, 7485) Q0 Q1 Q2 Q3 1 S S S S Ck J Q J Q J Q J Q CP _ CP _ CP _ CP _ K Q K Q K Q K Q R R R R 74LS85 A3 IA<B A2 IA=B A1 IA>B A0 B3 B2 A<B B1 A=B B0 A>B 2. Na seqüência, energize os circuitos e simule, via chaves, os valores possíveis para as entradas; 3. Organize e interprete os dados coletados na experimentação. Verifique se os valores encontrados na saída correspondem à análise teórica do circuito; 4. Desmonte os circuitos e reponha o equipamento e componentes aos seus lugares; 5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa. 51
  • 53.
    EXPERIÊNCIA 4 -CONTADORES SÍNCRONOS 1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos o seguinte circuito digital: 1.1 - Contador binário crescente de 4 bits (2x7476, 7408) 1.2 - Contador BCD crescente de 4 bits (2x7476, 7408) 2. Na seqüência, energize o circuito e simule, via chaves, os valores possíveis para as entradas; 3. Organize e interprete os dados coletados na experimentação. Verifique se os valores encontrados na saída correspondem à análise teórica do circuito; 4. Desmonte o circuito e reponha o equipamento e componentes aos seus lugares; 5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa. 52
  • 54.
    EXPERIÊNCIA 5 -CONTADORES INTEGRADOS 1. Identifique a pinagem dos circuitos integrados e monte em matriz de contatos os seguintes circuitos digitais: 1.1 - Contador BCD 0-9 (7490) 1.2 - Contador/divisor por 12 (7492) 1.3 - Contador binário 0-15 (7493) 53
  • 55.
    1.4 - Contadorcrescente/decrescente BCD 0-9-0 (74190) 1.5 - Contador crescente/decrescente binário 0-15-0 (74191) 1.6 - Contadores em cascata BCD 00-99 (7490 e 74190) Contador dezena Ck Contador unidade 74190 7490 Decodificador BCD Decodificador BCD para display de 7 para display de 7 segmentos segmentos Display Display Dezena Unidade 2. Na seqüência, energize os circuitos e simule, via chaves, os valores possíveis para as entradas; 3. Organize e interprete os dados coletados na experimentação. Verifique se os valores encontrados na saída correspondem à análise teórica do circuito; 4. Desmonte os circuitos e reponha o equipamento e componentes aos seus lugares; 5. Mantenha sempre limpo e organizado o ambiente de experimentação educativa. 54
  • 56.
    6 MEMÓRIAS SEMICONDUTORAS 6.1INTRODUÇÃO Memórias são dispositivos semicondutores que armazenam informações na forma binária. São informações constituídas de números, letras, caracteres quaisquer, comandos de operações, endereços, etc. Os bits das informações podem ser acessados, quando no procedimento de leitura ou gravados/substituídos, quando no procedimento de escrita ou armazenamento. As memórias semicondutoras são usadas como memória principal (interna) ou memória de trabalho de um computador, pois permanece em comunicação constante com a unidade central de processamento (CPU) à medida que um programa de instruções está sendo executado. Uma outra forma de armazenamento no computador é efetuada pela memória auxiliar (externa) ou memória de massa, onde opera com uma velocidade mais baixa que a memória principal e armazena programas e dados que não estão sendo usados a todo o momento pela CPU. Esta memória transfere as informações para a memória principal quando apenas for necessária ou solicitada no processamento. 6.2 ESTRUTURA E ORGANIZAÇÃO DA MEMÓRIA Uma memória armazena ou acessa as informações digitais em lugares denominados localidades, mediante um endereçamento. Para o acesso a estas localidades, o bloco possui uma série de terminais de entradas de endereços que são ligados a um conjunto de fios denominado barra de endereços (addres bus). Para a entrada e saída dos dados, da mesma forma, o bloco possui uma série de terminais ligados à barra de dados (data bus). O bloco ainda possui terminais de controle ligados à barra de controle (control bus). Barra de endereços MEMÓRIA Barra de NxM dados Barra de controle A barra de dados é bidirecional, isto é, pode ser usada tanto como entrada como para saída de dados, onde um dos terminais da barra de controle define o sentido. As memórias são especificadas pela notação N x M, onde N indica o número de localidades de memória (palavras) e M indica o número de bits da informação armazenada por localidade. O número de bits que constitui uma palavra varia de computador para computador, estando na faixa de 4 bits até 36 bits, tipicamente. Uma dada "pastilha" de memória armazenará um dado número de palavras de tantos bits por palavra. Por exemplo, uma pastilha de memória popular tem uma capacidade de armazenamento de 1024 palavras de 4 bits cada, totalizando 4096 bits (4K), que é a capacidade total de memória. 55
  • 57.
    A organização deuma pastilha de memória é estabelecida como sendo constituída por um grupo de registradores, onde cada registrador armazena uma palavra. A "largura" de cada registrador é o número de bits por palavra. O número de registradores é o número de palavras armazenadas na memória, conforme apresentado na figura a seguir. Valores comuns para o número de palavras por pastilha são 64, 256, 512, 1024, 2048 e 4096. Todos eles são potências inteiras de 2. Valores comuns para o tamanho da palavra são 1, 4 e 8. É possível obter outros tamanhos de palavras, combinando-se diversas pastilhas de memória. O conteúdo de cada registrador está sujeito a duas operações possíveis: leitura e escrita. A leitura é o processo de obter a palavra armazenada no registrador e enviá-la para algum outro lugar, onde ela poderá ser usada. O conteúdo do registrador não é modificado pela operação de leitura. Escrita é o processo de colocar uma nova palavra em um registrador particular. É claro que esta operação de escrita destrói a palavra que estava previamente armazenada no registrador. Porém, não são todas as pastilhas de memória que têm a capacidade de ter os seus conteúdos escritos. 6.3 PRINCÍPIOS DE OPERAÇÃO Apesar das diferenças existentes na implementação de cada um dos tipos de memória, um certo conjunto de princípios básicos de operação permanece o mesmo para todos os sistemas de memória. Cada sistema requer um conjunto de tipos diferentes de entrada e saída para realizar as seguintes funções: a. Selecionar o endereço que está sendo acessado para uma operação de leitura ou escrita; b. Selecionar a operação a ser realizada, leitura ou escrita; c. Fornecer os dados de entrada para a operação de escrita; d. Manter estáveis as informações de saída da memória resultantes de uma operação de leitura, durante um tempo determinado; e. Habilitar (ou desabilitar) a memória, de forma a fazê-la (ou não) responder ao endereço na entrada e ao comando de leitura/escrita. 56
  • 58.
    A figura abaixoilustra as funções básicas num diagrama simplificado de uma memória de 32 palavras x 4 bits. Para o tamanho da palavra (4 bits) existem 4 linhas de entradas de dados (I3-I2-I1-I0) e 4 linhas de saídas de dados (O3-O2-O1-O0). Durante uma operação de escrita, o dado a ser armazenado na memória deve ser aplicado nas linhas de entrada de dados. Durante uma operação de leitura, a palavra que está sendo lida da memória aparece nas linhas de saída de dados. 6.4 ESTRUTURAS DE ENDEREÇAMENTO Cada registrador ou palavra recebe um número, começando de 0 e continuando até onde for necessário. Este número especifica, de forma única, a localização do registrador e da palavra que ele está armazenando, e é chamado de seu endereço. Por exemplo, o endereço 2 refere-se ao registrador 2 ou à palavra 2. Sempre que se quiser referir a uma palavra em particular da memória, usa-se o seu endereço. O endereço de cada palavra é um número importante porque ele é o meio pelo qual um dispositivo externo à pastilha de memória pode selecionar qual a palavra desta que ele deseja acessar para uma operação de leitura ou de escrita. Para entender como o endereçamento é utilizado, precisa-se verificar a organização interna de uma pastilha de memória típica, como mostra a figura abaixo. Este circuito integrado, em particular, armazena 64 palavras de 4 bits cada (256 bits). Estas palavras têm endereços variando de 0 a 6310. Para selecionar uma das 64 locações para ler ou escrever, um código binário de endereço é aplicado ao circuito decodificador. Como 26 = 64, o decodificador requer um código de entrada de 6 bits. Cada código de endereço ativa uma particular saída do decodificador que, por sua vez, habilita o registrador correspondente. Por exemplo, suponha um código de endereço de A5 A4 A3 A2 A1 A0 = 011010. Como 0110102 = 2610, a saída 26 do decodificador ficará ALTA, habilitando o registrador 26. 57
  • 59.
    Operação de leitura Ocódigo de endereço escolhe um registrador da pastilha de memória para leitura ou escrita. Para ler os conteúdos do registrador selecionado, a entrada LEITURA/ESCRITA (R/W) deverá estar em nível 1. Além disso, a entrada SELEÇÃO DE PASTILHA (CS) deverá estar ativada (em 1, neste caso) . A combinação de R/W = 1 e CS = 1 habilita os amplificadores (buffers) de saída de forma que os conteúdos do registrador selecionado aparecerão nas quatro saídas de dados. R/W = 1 também desabilita os amplificadores de entrada de modo que as entradas de dados não afetam a memória durante a operação de leitura. Operação de escrita A escrita de uma nova palavra de 4 bits no registrador selecionado requer R/W = 0 e CS = 1. Esta combinação habilita os amplificadores de entrada, de modo que a palavra de 4 bits aplicada às entradas de dados será carregada no registrador selecionado. R/W = 0 também desabilita os amplificadores de saída, de forma que as saídas de dados estão em seu estado de circuito aberto. Seleção da pastilha A maioria das pastilhas de memória tem uma ou mais entradas SELEÇÃO DE PASTILHA (Chip-Select-CS) que são usadas para habilitar a pastilha inteira ou desabilitá-la completamente. No modo desabilitado todas as entradas de dados e as saídas de dados estarão desabilitadas, de modo que nenhuma operação de leitura, nem de escrita, poderá ocorrer. Neste modo, os conteúdos da memória não são afetados. A razão para ter entradas CS ficará clara quando combinam-se pastilhas de memória para a obtenção de memórias maiores. Deve ser notado que muitos fabricantes chamam estas entradas de HABILITAÇAO DA PASTILHA (Chip-Enable-CE) em vez de CS. Pinos de entrada/saída comuns Para economizar pinos em um encapsulamento de CI, os fabricantes, freqüentemente, combinam as funções de entrada de dados e de saída de dados usando pinos de entrada/saída comuns. A entrada R/W controla as funções destes pinos de E/S. Durante uma operação de leitura, os pinos de E/S agem como saídas de dados que reproduzem o 58
  • 60.
    conteúdo da locaçãoselecionada pelo endereço. Durante uma operação de escrita, os pinos de E/S agem como entradas de dados. Com pinos separados de entrada e de saída, requer-se um total de 18 pinos (incluindo terra e fonte de alimentação). Com quatro pinos comuns de E/S, são necessários apenas 14 pinos. A economia de pinos torna-se ainda mais significativa em pastilhas com tamanho de palavra anterior. Exemplo Quantos pinos seriam necessários para uma pastilha de memória que armazena 256 palavras de 8 bits e tem linhas comuns de E/S? Solução: Há 256 locações endereçáveis, isto é, 28 = 256. Portanto, são necessárias 8 entradas de endereço para selecionar qualquer endereço entre 00000000 e 11111111 (25510). Há oito linhas de E/S, já que o tamanho da palavra é 8 bits. Acrescentando uma linha R/W, uma linha CS, alimentação e terra, resulta um total de 20 pinos. 6.5 CLASSIFICAÇÃO DAS MEMÓRIAS As memórias podem ser classificadas segundo os itens abaixo. 6.5.1 – Quanto à forma de acesso As formas de acesso a uma locação de memória podem ser do tipo aleatório ou seqüencial. No acesso aleatório, qualquer locação pode ser acessada aleatoriamente, isto é, pode ser lida diretamente sem a necessidade da leitura das demais locações. Possui a vantagem de ter um tempo de acesso pequeno e igual para qualquer uma das localidades da memória. No acesso seqüencial, a locação não pode ser feita diretamente. Assim, várias locações da memória são acessadas até a informação desejada. O tempo de acesso depende da posição onde a informação está armazenada. 6.5.2 – Quanto à volatilidade As memórias voláteis são aquelas que, ao interromper a alimentação, perdem as informações armazenadas. Exemplo: memórias RAM. As memórias não voláteis são aquelas que, mesmo sem alimentação, continuam com as informações armazenadas. Exemplo: memórias ROM, PROM, EPROM. 59
  • 61.
    6.5.3 – Quantoao tipo de armazenamento As memórias de armazenamento estático são aquelas em que, uma vez inserido o dado numa dada localidade, este lá permanece. Têm a vantagem da facilidade de utilização. As memórias de armazenamento dinâmico são aquelas em que se necessita inserir a informação em intervalos de tempo repetidos, a fim de evitar que as mesmas sejam perdidas. 6.5.4 - Quanto à capacidade de armazenamento A capacidade de armazenamento está relacionada com o número total de bits ou palavras que a memória pode armazenar. Por exemplo, uma memória de 1.024 x 8 corresponde a uma capacidade de 1.024 palavras, cada uma com 8 bits, totalizando 8.192 bits. 6.5.5 – Quanto à tecnologia As memórias são construídas com tecnologia do tipo semicondutor bipolar, semicondutor de óxido metálico (MOS) ou semicondutor de óxido complementar (CMOS). As memórias do tipo bipolares são encontradas nos circuitos TTL padrão, Schottky e ECL. As memórias do tipo MOS de canal N são as mais usadas por apresentarem grande densidade e baixo custo. As memórias CMOS são mais lentas do que as NMOS e bipolares, contudo, são de menor consumo e maior imunidade ao ruído. 6.5.6 – Quanto ao tipo de saída As saídas das memórias podem ser de três tipos: totem-pole, open collector ou three- state. As memórias three-state são as mais usadas por permitirem a criação de bancos de memória, de forma mais eficiente. Saída totem-pole: Possui em sua estrutura interna um transistor conectado ao +Vcc, permitindo alimentar cargas capacitivas. Os transistores de saída estabelecem uma impedância baixa na saída, possibilitando um rápido chaveamento dos níveis lógicos. Saída open collector (coletor aberto): Não possui um resistor ligando o coletor de saída do transistor ao +Vcc, devendo ser ligado externamente (resistor pull-up). Esta saída possibilita o controle externo da corrente do coletor de saída, possibilitando o aumento do fan-out, além de poder habilitar saídas diferentes interligadas entre si, podendo assumir níveis lógicos opostos sem danos. A desvantagem é sua baixa velocidade de chaveamento dos níveis lógicos. Saída three-state: Configuração que apresenta uma alta impedância de saída (terceiro estado), em relação à linha na qual está conectada. Funciona como se o dispositivo estivesse desligado. Assim, permite interligar várias saídas em uma mesma linha de dados, fornecendo nível lógico alto ou baixo, sem danificar outros circuitos. 60
  • 62.
    6.6 TIPOS DEMEMÓRIAS As memórias são basicamente de dois tipos: RAM e ROM. As memórias RAM são de escrita/leitura e permitem acesso a uma localidade qualquer para escrever a informação desejada, bem como permite o acesso para a leitura do dado armazenado. As memórias ROM são apenas de leitura e contêm uma informação pré-gravada e fixa, portanto, permitindo apenas a sua leitura. 6.6.1 MEMÓRIAS ROM As memórias ROM (Read Only Memory – Memória Apenas de Leitura) permitem somente a leitura dos dados nela gravados. Possuem acesso aleatório e não são voláteis, isto é, não perdem seus dados armazenados quando a fonte de alimentação é desligada. Sua grande aplicação é no armazenamento de sistemas operacionais de computadores e outros sistemas digitais, em circuitos de geração de caracteres, na construção de circuitos combinacionais. A figura abaixo apresenta o bloco representativo de uma memória ROM, com terminais e barramentos. O terminal de controle CS (Chip Select) refere-se à habilitação ou seleção da pastilha, ou seja, é uma entrada de nível lógico que, quando em 0, ativa ou habilita as saídas para fornecer os dados armazenados ou para serem lidos, conforme o endereçamento estabelecido. Se o terminal de controle estiver em 1, as saídas estarão desabilitadas, assumindo estados de alta impedância (tri-state), liberando a barra de dados para uso por outros dispositivos presentes num sistema controlado por microprocessador. A escolha do nível lógico 0 para habilitação é por razão em proporcionar maior imunidade ao ruído. Com nível lógico 1, haveria maior suscetibilidade para o acionamento dos blocos dentro do sistema diante de um transiente indesejável. CS Barra de MEMÓRIA Barra de endereços ROM dados A arquitetura básica de uma ROM genérica é apresentada em blocos abaixo, com os respectivos terminais e barramentos de entrada e saída. A0 A1 DECODIFICADOR MATRIZ DE ...................... DE ENDEREÇOS DADOS AN+1 CHAVES DE SAÍDA CS D0 D1 D2 DM+1 61
  • 63.
    O decodificador deendereços (multiplexador) ativa uma saída de cada vez em função do endereçamento. A matriz de dados (arranjo de linhas e colunas) possibilita a gravação dos dados pelo fabricante e conseqüente leitura pelo usuário. Para a saída dos dados, a memória possui um conjunto de chaves lógicas (buffers) que, conforme a habilitação através do terminal CS , possibilita a conexão das saídas (em nível 0) ou imprime alta impedância (em nível 1) desconectando as saídas de dados do sistema. Exemplo 1 Para evidenciar a estrutura interna dos blocos e explicar seu funcionamento, será construída uma memória ROM de 4 palavras de 8 bits, cujo conteúdo dos dados é mostrado na tabela abaixo. ENDEREÇO DADOS A1 A0 HEX D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 E 0 0 0 1 1 1 1 0 0 1 8 A 1 0 0 0 1 0 1 0 1 0 0 D 0 0 0 0 1 1 0 1 1 1 7 6 0 1 1 1 0 1 1 0 O circuito a seguir apresenta o codificador de endereços constituído de portas lógicas inversora e E, a matriz de dados formada por diodos semicondutores e as chaves de saídas constituídas por buffers ativos com zero. A matriz de dados formada por um conjunto de diodos constitui a célula da memória, definindo uma série de portas lógicas OU, de modo que a presença do diodo em determinada localidade estabelece nível lógico 1 e, a sua ausência, o nível lógico 0. Para analisar um dado de saída específico, será endereçado A1A0 = 00 e aplicado à entrada de controle CS = 0, ativando o conjunto de buffers. Neste endereço, apenas o fio de saída da primeira porta lógica E é ativado com 1 pelo decodificador, provocando a condução de corrente dos respectivos diodos através dos resistores R ao terra do circuito. Devido a estas conduções, os resistores apresentarão quedas de tensão que serão transpostas pelos fios até as saídas D4, D3, D2 e D1, resultando no dado 00011110(2) = 1E(16). Portanto, as saídas apresentam nível lógico 1 onde houver diodos conectados na matriz e nível lógico 0 na ausência de diodos. 62
  • 64.
    Na tecnologia defabricação da matriz de dados, também são utilizados outros elementos semicondutores, tais como transistores bipolares ou transistores de efeito de campo (MOS-FET). O processo de programação é facilitado pelo uso de um gabarito fotográfico das ligações elétricas chamado máscara, donde provêm as memórias denominadas MROM programadas por Máscara. As memórias ROM são produzidas com programações determinadas e sob encomenda, em grande quantidade e normalmente para clientes específicos e/ou fabricantes de equipamentos. Para o pequeno usuário, a solução é o uso das ROMs programáveis. Exemplo 2 Uma ROM de 16 palavras com 8 bits foi programada com os dados mostrados na tabela a seguir, na sua forma binária e em hexadecimal. Suponha a leitura dos dados armazenados na posição cujas entradas de endereços são A3A2A1A0 = 0111 e habilitando as saídas com a entrada de controle CS = 0. As entradas de endereços serão codificadas no interior da ROM para selecionar a palavra correta, ou seja, as saídas D7D6D5D4D3D2D1D0 = 11101101. Se a entrada CS = 1, as saídas da memória ROM não estarão habilitadas e ficarão em alta impedância. CS D7 A3 D6 D5 A2 Memória ROM D4 A1 16 x 8 D3 D2 A0 D1 D0 63
  • 65.
    6.6.1.1 MEMÓRIAS PROM Asmemórias PROM (Programmable Read-Only Memory) permitem o armazenamento dos dados pelo próprio usuário. Com a programação, a PROM transforma-se em definitivo numa memória ROM. O princípio básico de programação numa PROM é a destruição de pequenas ligações semicondutoras existentes (diodo ou fusível em série com diodo) internamente nas localidades onde se quer armazenar a palavra de dados, através de um nível de tensão convenientemente especificado pelo fabricante e conforme o endereçamento realizado. Este roteiro é fornecido pelo fabricante através de manuais ou através de kits apropriados para realizar os procedimentos conforme o tipo de pastilha, com maior eficiência e rapidez. 6.6.1.2 MEMÓRIAS EPROM As memórias EPROM (Erasable Programmable Read-Only Memory) permitem programar e apagar dados, mediante banho de luz ultravioleta, efetuado através da exposição da pastilha por uma janela existente em seu encapsulamento e, ainda, serem reprogramadas. São também conhecidas como UVPROM (Ultraviolet PROM). É um dispositivo com arquitetura similar às memórias PROM, do tipo MOS, onde a gravação é feita através de circuitos eletrônicos especiais e o apagamento do conjunto inteiro das informações armazenadas é feito através da aplicação de raios ultravioleta em uma janela de quartzo localizada numa das faces do chip, durante um intervalo de tempo entre 10 a 30 minutos. Após o apagamento, todas as localidades assumem níveis lógicos 1, podendo o processo de regravação e apagamento se repetir por inúmeras vezes. Uma fita adesiva opaca deve ser colocada sobre a janela após a reprogramação para evitar que ela seja acidentalmente apagada pela luz ambiente. O desenho a seguir mostra o bloco de uma memória EPROM de 2K x 8 bits, com a respectiva terminologia e função dos terminais dos barramentos. Para a capacidade desta memória, o acesso às localidades é efetuado por 11 fios (211 = 2.048 = 2K) e 8 fios para a barra de dados. +Vcc CE Memória D7 A10 EPROM D6 ..... 2K x 8 D5 A0 D4 OE D3 D2 PGM D1 2716 D0 Vpp A0 - A10 ⇒ barra de endereços OE ⇒ habilitação da saída (Output Enable) D0 – D7 ⇒ barra de dados PGM ⇒ habilitação da programação (Program) CE ⇒ habilitação da pastilha (Chip Vpp ⇒ tensão de programação (Program Supply Enable) Voltage) 64
  • 66.
    Quando CE =0,ativa o bloco e quando CE =1, o bloco permanece desativado na situação de baixo consumo de potência (stand-by). A entrada de controle OE =0 habilita o barramento de saída. A programação é efetuada pelo terminal Vpp com uma tensão típica maior que Vcc, da habilitação de programação PGM =0, do endereçamento e da aplicação das respectivas palavras de dados ao bloco, seqüencialmente, possibilitarão o armazenamento das informações. 6.6.1.3 MEMÓRIAS EEPROM As memórias EEPROM ou E2PROM (Electrically Erasable Programmable Read-Only Memory) permitem o apagamento dos dados eletricamente, além de possibilitar esta ação isoladamente por palavra de dados, sem necessidade de reprogramação total. As alterações de programação podem ser efetuadas pelo próprio sistema onde a memória estiver inserida, sem necessidade de sua desconexão do soquete. Apesar desta memória ser acessível para escrita e leitura, a mesma faz parte das memórias PROM. O bloco abaixo representa uma EEPROM de 8K x 8. +Vcc CE I/O7 A12 I/O6 ..... Memória I/O5 A0 EEPROM 8K x 8 I/O4 OE I/O3 I/O2 WE I/O1 2864 I/O0 O acesso das localidades desta memória é estabelecido através de 13 entradas de endereço (213 = 8.192 = 8k) e oito pinos de entrada/saída de dados. A barra de dados I/O é bidirecional por possibilitar a escrita e a leitura. A escrita de uma palavra de dados é obtida através do endereçamento e respectiva aplicação da palavra nos terminais da barra de dados, isto é, com o terminal OE =1 e o de habilitação da escrita WE =0, dentro de um ciclo de tempo mínimo especificado pelo fabricante (normalmente 10 ms). 6.6.1.4 CD ROM Os CDs (compact disks) são fabricados com uma superfície altamente reflexiva, onde se armazena os dados através de um feixe laser bastante intenso e focalizado sobre um ponto muito pequeno no disco. Esse feixe provoca uma depressão que é capaz de provocar a difração da luz nesse ponto da superfície. Assim, os dados digitais (1s e 0s) são armazenados no disco, um bit por vez, fazendo ou não essa depressão no material reflexivo, sendo a gravação organizada em uma espiral contínua de pontos de dados. A precisão do feixe laser permite que grande quantidade de dados (maior que 550 Mbytes) seja armazenada num disco de 120 mm. 65
  • 67.
    Para a leitura,um feixe laser bem menos potente é focalizado na superfície do disco, onde em qualquer ponto, a luz refletida é expressa como níveis lógicos 1 ou 0. Esse arranjo ótico é montado num mecanismo de transporte que se move para frente/trás ao longo do raio do disco, seguindo a espiral de dados à medida que o disco é rotacionado. Os dados recebidos do sistema ótico vêm uma linha serial de dados, numa taxa constante de bits com rotação do disco controlada. Se o disco é para reprodução de áudio, a linha de dados é convertida em formato analógico. Se o disco é usado como memória de leitura, os dados são codificados em bytes paralelos para serem processados num outro circuito digital. 6.6.1.5 MEMÓRIAS FLASH As memórias flash recebem esta denominação por possuírem tempos curtos de apagamento e escrita. A maioria destas memórias efetua o apagamento em bloco e dura em torno de centenas de ms. Entretanto, também são encontradas memórias mais recentes que oferecem o modo de apagamento por setor. A tabela abaixo mostra as vantagens e desvantagens dos vários tipos de memórias semicondutoras não-voláteis. À medida que aumenta a flexibilidade para apagar e programar, também aumentam a complexidade e o custo do dispositivo. MEMÓRIA CARACTERÍSTICAS Complexidade e custo EEPROM Pode ser apagada eletricamente, no circuito, byte a byte. FLASH Pode ser apagada eletricamente, no circuito, por setor ou do dispositivo todo de uma vez. EPROM Pode ser apagada toda de uma vez com luz UV e apagada e reprogramada fora do circuito. PROM Não pode ser apagada nem reprogramada. MROM 6.6.1.6 APLICAÇÕES DE MEMÓRIAS ROM - Firmware – armazenamento de programas ou dados que devem estar disponíveis no processo de inicialização de sistemas microprocessados. Por exemplo, produtos como videocassetes, CD players, fornos microondas etc. - Memória de Bootstrap – tipo de programa armazenado em uma ROM que trata da inicialização do hardware de um computador. Após a inicialização, o programa de bootstrap chama o sistema operacional e o computador começa a executar o sistema operacional. - Tabela de Dados – as ROMs são bastante utilizadas para armazenar tabelas de dados que não variam. Por exemplo, tabela trigonométricas, códigos ASCII, etc. - Conversor de Códigos – este tipo de aplicação toma valores expressos em um determinado tipo de código e produz uma saída expressa em outro código. Por exemplo, o código BCD pode ser convertido para 7 segmentos por uma ROM. - Gerador de Funções – basicamente, um gerador de funções é um circuito que produz formas de onda senóides, triangulares e quadradas. Uma ROM com tabelas de valores armazenados e um conversor D/A podem ser usados para gerar essas formas de onda. - Armazenamento Auxiliar – dados podem ser armazenados em memórias ROM apagáveis (EPROM, EEPROM, FLASH), tornando essas memórias como alternativa aos discos magnéticos de armazenamento. 66
  • 68.
    6.6.2 MEMÓRIAS RAM Asmemórias RAM (Random Access Memory – Memória de Acesso Aleatório) são do tipo volátil e permitem o acesso aleatório ou randômico (para escrita ou leitura) a qualquer uma das suas locações. São usadas para armazenar temporariamente os programas e dados correntes em computadores. Os conteúdos das posições de uma RAM podem ser lidos e escritos à medida que um computador executa um programa. A principal desvantagem de uma RAM é o fato de a mesma ser volátil, isto é, ela vai perder a informação armazenada se a alimentação for desligada ou interrompida. Por outro lado, tem como vantagem, um tempo de acesso muito reduzido. Quanto ao armazenamento, as memórias RAM são classificadas em estáticas (SRAM - Static Ram) e dinâmicas (DRAM – Dynamic RAM). As estáticas utilizam como célula básica o flip-flop e outros componentes digitais. As dinâmicas possuem circuitos mais simples, porém, necessitando periodicamente de reinserção de dados em ciclo, uma ação denominada refresh controlada pelo microprocessador do sistema. A RAM dinâmica armazena cada dado por efeito capacitivo do pequeno semicondutor formado internamente, apresentando a vantagem de alta capacidade de armazenamento por circuito integrado. A figura abaixo apresenta o bloco representativo de uma memória RAM estática, com terminais de entrada de controle CS , terminal de controle R/ W de dupla função, para possibilitar a leitura=1 ou escrita=0. CS Barra de MEMÓRIA Barra de endereços RAM dados R/ W O circuito abaixo apresenta a célula básica de uma RAM estática que permite a escrita e a leitura de 1 bit de informação. Para efetuar a escrita, deve-se selecionar a célula específica com o terminal SEL=1 e o terminal de controle de leitura/escrita R/ W =0. Em seguida, aplica-se o dado a ser gravado (1) no terminal D, configurado como entrada. Com todos os níveis lógicos estabelecidos, a célula básica estará configurada para a escrita, pois com 0 na porta Não-E superior irá ativar os dois buffers (substituídos por 67
  • 69.
    chaves equivalentes), possibilitandoque o dado possa ser aplicado ao flip-flop e armazenado em sua saída. Ao mesmo tempo, com 1 na outra porta Não-E inferior, irá desativar o buffer de saída, permitindo apenas a escrita ou a entrada do dado. Para efetuar a leitura, deve-se selecionar SEL=1 e passar o controle R/ W =1, onde o dado armazenado será agora obtido no terminal D, configurado como saída. Com 1 na porta Não-E superior, irá desativar os buffers, impedindo a escrita de um novo dado. As entradas em aberto dos flip-flop assumem 1, fazendo com que suas saídas mantenham seus níveis lógicos. Enquanto isso, com 0 na porta Não-E inferior, irá ativar o buffer na saída do flip-flop, possibilitando a sua leitura no terminal D. Se a célula for selecionada (SEL=0), as duas portas Não-E apresentarão 1 em suas saídas, mantendo os buffers desativados (estado tri-state), impedindo tanto a escrita como a leitura. 68
  • 70.
    6.6.2.1 – ARQUITETURAINTERNA DE UMA RAM Através da célula básica padrão analisada anteriormente, pode-se construir arquiteturas de memórias RAM estáticas no formato N x M, conforme exemplo abaixo, uma memória com estrutura de 4 localidades com 4 bits. CS A0 D0 D1 A1 RAM 4x4 D2 R/ W D3 O circuito é constituído de um decodificador de 2 canais, responsável pelo endereçamento de cada localidade através de A1 e A0, no conjunto formado por 4 células interligadas horizontalmente. Os terminais de dados D estão interligados, verticalmente, cujo posicionamento do bit na palavra de dados é efetuado através da entrada de controle CS . Para completar, todas as entradas R/ W estão interligadas para propiciar o controle simultâneo da escrita/leitura em todas as localidades. Como exemplo, será efetuado o armazenamento (escrita) do dado 516 (01012) na localidade 116, endereçada por 012. A seleção da pastilha é efetuada com CS =0 e o endereçamento da localidade com A1=0 e A0=1, definindo a habilitação da segunda porta E e sua respectiva saída em 1 que selecionará todas as células básicas através das entradas SEL. Através do controle R/ W =0, os dados (01012) são aplicados nos terminais D3, D2, D1 e D0 e armazenados nas respectivas células. Para a leitura da informação, deve-se selecionar a pastilha com CS =0, R/ W =1, e endereçar a localidade, obtendo-se os dados armazenados nas células através dos terminais D. A informação só será perdida quando desligar a alimentação. 69
  • 71.
    6.6.2.2 EXPANSÃO DACAPACIDADE DE UMA MEMÓRIA RAM A expansão da capacidade de uma memória pode ser efetuada pela palavra de dados, pelo aumento de localidade ou por ambos. O primeiro exemplo ao lado consiste de uma expansão por palavra de dados, onde mostra a obtenção de uma memória de 256x8, obtida pela expansão de dois blocos de memória de 256x4. Os terminais de endereçamento A7 a A0, de seleção da pastilha CS e de controle de escrita/leitura R/ W são interligados, pois as operações são comuns aos dois blocos. A barra de dados D7 a D0 é composta pela associação da barra de dados de cada bloco, resultando numa palavra de 8 bits. O segundo exemplo consiste de uma expansão por localidades de memórias, mostrando a formação de uma memória RAM 128x4, obtida a partir de blocos de memórias 32x4. O endereçamento é efetuado pelos terminais A6 a A0, constituídos dos 5 terminais de cada bloco de memória mais 2 terminais auxiliares, onde farão a seleção de cada bloco em seqüência, através das entradas CS . Os terminais de dados D3 a D0, bem como os terminais de escrita/leitura R/ W são apenas interligados. 70
  • 72.
    Uma última possibilidadede expansão de memória consiste na ampliação de palavra de dados e também do número de localidades. O processo é obtido através da conjugação das duas outras abordadas, onde se aumenta o número de localidades usando o circuito seletivo e associa-se um outro sistema semelhante para compor a nova palavra de dados. Como exemplo de expansão de memórias na área de microcomputadores, cita-se a disponibilização de slots (série de conectores) para receber novos módulos removíveis denominados pentes de memórias, possibilitando de forma fácil e prática a expansibilidade do sistema. 6.6.2.3 OUTROS TIPOS DE MEMÓRIAS RAM Tecnologia da RAM Dinâmica usada em Computadores Os tipos de DRAM existentes variam em função da capacidade, velocidade, consumo, custo e versatilidade: - SIMM (Single-In-line Memory Module) e DIMM (Dual-In-line Memory Module) – são módulos de memória que permitem uma instalação rápida e são padrões de diversos tipos de DRAMs. Os módulos SIMM e DIMM definem apenas como a DRAM é “empacotada”. - DRAM FPM (Fast Page module) – permite acesso mais rápido a qualquer posição de memória dentro da “página” corrente. Normalmente, a maioria dos dados gravados na memória são seqüenciais. Nesse tipo de DRAM, o endereço da linha (RAS) é enviado uma vez e o endereço da coluna (CAS) é incrementado. - DRAM EDO (Extended data output) – é uma melhoria em relação às FPM. Os dados são colocados na saída e a DRAM EDO já pode decodificar o próximo endereço sem que esses dados tenham sido lidos; - DRAM BEDO (Burst EDO) – Possui uma arquitetura que permite alcançar alta velocidade ao se acessar dados seqüenciais; - SDRAM (Synchronous DRAM) – são organizadas em dois bancos que são acessados alternadamente utilizando um sinal de clock sincronizado com a CPU. Desse modo essas memórias alcançam altas taxas de transferências. Memórias com Funções Especiais - Armazenamento de Dados com o Sistema Desligado – muitos equipamentos armazenam seus dados em memórias RAM alimentadas com baterias de reserva (NVRAM – RAM não-volátil); - Memória Cache – tipo de memória de alta velocidade e baixa capacidade de armazenamento que interage diretamente com a CPU. Na cache estão contidos os dados mais requisitados pelo processador e isso evita um acesso desnecessário na RAM. - Memória FIFO (First-In, First-Out) – também conhecidas como buffers para armazenamento temporário. Por exemplo, os dados são transferidos em altas taxas do PC para a impressora. Como a impressão é mais lenta que a transferência, esses dados devem ser armazenados em FIFOs e daí podem ser impressos. 71
  • 73.
    EXERCÍCIOS 1. Mostrar aforma de onda da saída da memória ROM com conversor D/A da figura abaixo: Endereço (Hex) Conteúdo (Hex) 0 80 1 42 2 ED 3 01 4 F3 5 39 6 8C 7 B5 8 1A 9 FF A 09 B D2 C 6A D 57 E E0 F 04 2. Determine o mapeamento de uma memória PROM para atuar como gerador de caracteres para hexadecimal, isto é, a partir de um código binário, forneça os níveis para fazer um display de 7 segmentos – catodo comum apresentar a seqüência do sistema hexadecimal. Especifique a memória e determine sua capacidade. 3. Determine o mapeamento de uma memória EPROM para, através do sistema gerador de funções esquematizado, gerar a função digitalizada vista abaixo. Calcule a freqüência do clock do contador. 72
  • 74.
    4. Determine acapacidade de memória e a palavra de endereço inicial e final (em hexadecimal) para cada memória especificada a seguir: a) ROM 512X4 b) EPROM 4Kx8 c) RAM 128Kx8 d) RAM 2Mx16 5. Implemente um circuito equivalente a uma memória RAM de 64 x 8 bits, usando memórias RAM de 64 x 4 bits. Determine a capacidade e o endereçamento inicial e final. 73
  • 75.
    EXPERIÊNCIA 6 -MEMÓRIAS 1. Efetuar a montagem e posterior gravação de uma memória RAM de 16 palavras de 4 bits = 64 bits (TTL 74189), utilizando um contador binário para o endereçamento das localidades de dados. Vcc AD-B AD-C AD-D DI-4 DO -4 DI-3 DO -3 16 15 14 13 12 11 10 9 74189 Memória RAM de 64 bits 1 2 3 4 5 6 7 8 AD-A S W DI-1 DO -1 DI-2 DO -2 GND DI-N ⇒ Entradas de dados S ⇒ Entrada de controle DO -N ⇒ Saídas de dados W ⇒ Controle de Leitura/Escrita AD–N ⇒ Seleção de dados Modo de operação Entradas Saídas S W DO -N Escrita 0 0 Complementa dados das entradas Leitura 0 1 Complementa palavra armazenada Inibição/Escrita 1 0 Complementa dados das entradas Nada 1 1 Nível 1 14 10 ent.A (ck) GND 7493 – Contador Binário ent.B Ro(1) Ro(2) Vcc QD QC QB QA 1 2 3 5 11 8 9 12 Saídas para leds 16 13 14 15 1 11 9 7 5 Vcc AD-D AD-C AD-B AD-A DO -4 DO -3 DO -2 DO -1 74189 – Memória RAM de 64 bits DI-4 DI-3 DI-2 DI-1 S W GND 12 10 6 4 2 3 8 Entradas com chaves 74
  • 76.
    Como os dadoslidos correspondem ao complemento dos dados armazenados, deve-se: - armazenar o complemento da informação ou; - colocar inversores nas saídas das memórias. SEQÜÊNCIA DE OPERAÇÃO a) zerar o contador com R0(1) e R0(2) = 1 e retomar para zero; b) disponibilizar os dados nas entradas; c) trocar S de 1 para 0; d) armazenar dados nas entradas através de W passando de 1 para 0; e) retornar W de 0 para 1 para inibir nova escrita; f) enviar um pulso de clock para novo endereçamento; g) repetir os procedimentos anteriores para cada conjunto de dados a serem armazenados; h) concluída a gravação, efetuar a leitura através de S =0 e W =1, usando o clock interno do equipamento. 75
  • 77.
    2. Efetuar amontagem e posterior gravação de uma memória RAM de 1024 palavras de 4 bits = 4K (2114), utilizando um contador binário para o endereçamento das localidades de dados. Gravar nas entradas I/O: 0⇒15⇒0, com endereçamento 00000 ⇒ 11111. Após, ler os dados gravados nas saídas I/O. Vcc A7 A8 A9 I/O1 I/O2 I/O3 I/O4 WE 18 17 16 15 14 13 12 11 10 2114 Memória RAM de 1024x4 = 4K 1 2 3 4 5 6 7 8 9 A6 A5 A4 A3 A0 A1 A2 CS GND AN ⇒ Seleção de dados CS ⇒ Entrada de controle I/ON ⇒ Entradas e Saídas de dados WE ⇒ Controle de Leitura/Escrita Modo de operação Entradas CS WE Escrita 0 0 Leitura 0 1 Tri-state 1 X 14 10 ent.A (ck) GND 7493 – Contador Binário ent.B Ro(1) Ro(2) Vcc QD QC QB QA 1 2 3 5 11 8 9 12 18 15 16 17 1 2 3 4 7 6 5 Vcc A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 2114 – Memória RAM de 4K CS WE I/O4 I/O3 I/O2 I/O1 GND 8 10 11 12 13 14 9 Entradas com chaves (Saídas para leds) 76
  • 78.
    Seqüência de operaçãopara gravação e posterior leitura a) zerar o contador com R0(1)=1 e R0(2)=1 e, após, retomar ambos para zero; b) habilitar a memória com CS =0; c) gravar os dados: c.1 – disponibilizar os dados nas entradas I/O; c.2 – habilitar para escrita mudando WE =1 para WE =0; c.3 – retornar de WE =0 para WE =1; c.4 – aplicar um pulso de clock manual; d) repetir os procedimentos do item anterior para cada conjunto de dados a serem gravados; e) concluída a gravação, não desligue a alimentação, desconectar as entradas das chaves e ligar aos leds. Efetuar a leitura através de CS =0 e WE =1, usando o clock automático interno do módulo digital. Vs A T t 77
  • 79.
    3. Efetuar agravação de uma memória EPROM de 2Kx8=16K (2716), utilizando o gravador de EPROM da Macsym. Gravar os dados 0⇒15⇒0, cuja seleção corresponde aos 32 primeiros endereços 000002 (0016)⇒ 111112 (2016). Posteriormente, efetuar a montagem utilizando um contador binário para o endereçamento das localidades de dados. Por último, ler os dados gravados nas saídas nos leds do módulo didático ou em osciloscópio através de um conversor D/A. Vcc A8 A9 VPP OE A10 CE D7 D6 D5 D4 D3 24 23 22 21 20 19 18 17 16 15 14 13 2716 Memória EPROM de 2Kx8 = 16K 1 2 3 4 5 6 7 8 9 10 11 12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND A0-A7 ⇒ Endereços D0-D7 ⇒ Saídas de dados CE ⇒ Habilitação do ci VPP ⇒ Tensão de programação +25V OE ⇒ Habilitação da saída Modo de operação Entradas Saídas CE OE VPP D0-D7 Leitura 0 0 +5V D Stand by 1 X +5V Alto Z Programação 1 +25V Q Verifica programa 0 0 +25V D Inibe programa 0 1 +25V Alto Z 4. Deseja-se obter uma senóide digitalizada, a partir da expressão: f(x) = 255/2.(1+sen x). Monte uma tabela no editor Excel simulando valores entre 0 e 2π. Com os resultados obtidos, copie-os num arquivo com extensão “tex” e, em seguida, utilize um arquivo (Txt2bin) para converter os dados em decimal para binário. Por último, os dados serão gravados na memória EPROM de 2Kx8=16K (2716), utilizando o gravador de EPROM da Macsym. Quantos endereços (em hexadecimal) são necessários para gravar todos os dados da senóide? Após a gravação, efetuar a montagem utilizando um contador binário para o endereçamento das localidades de dados. Por último, ler os dados gravados nas saídas em osciloscópio através de um conversor D/A. x = 2π/255 78
  • 80.
    7 MÁQUINAS DEESTADOS As máquinas de estados, também designadas por máquinas seqüenciais síncronas ou circuitos seqüenciais síncronos, utilizam células de memória síncronas que definem, em qualquer instante, o estado do sistema. 7.1 MODELO GERAL Em qualquer circuito seqüencial síncrono, é identificável: - uma unidade de memória, constituída por um número finito de células de memória que implementam a função de memória do sistema; - um decodificador de saída, constituído por um circuito combinacional responsável pela implementação das saídas do sistema; - um decodificador de estado seguinte, também designado por decodificador de entrada, constituído por um circuito combinacional que gera as entradas da unidade de memória. Variáveis do modelo geral Variáveis de entrada Variáveis de excitação = saídas do decodificador de estado seguinte = entradas das células de memória síncronas (estado seguinte) = f(Variáveis de entrada, Variáveis de estado) Variáveis de estado = saídas das células de memória síncronas (estado presente) Variáveis de saída = saídas do decodificador de saída Máquina de estados finitos Circuito seqüencial síncrono, constituído por um número finito de células de memória que reagem à mesma vertente do sinal de relógio (CLK) comum a todas as células. Máquina de Mealy Variáveis de saída = saídas do decodificador de saída = f(Variáveis de entrada, Variáveis de estado). O fato de existirem entradas que alimentam diretamente o decodificador de saída introduz um comportamento assíncrono nas saídas. Máquina de Moore Variáveis de saída = saídas do decodificador de saída = f(Variáveis de estado). As variáveis de saída dependem apenas das variáveis de estado, pelo que a alteração de estado nas saídas encontra-se sincronizada com o sinal de relógio. Entradas adicionais assíncronas Alguns circuitos têm uma ou mais entradas assíncronas que, normalmente, efetuam a inicialização ou colocam o sistema num estado desejado. 79
  • 81.
    7.2 ANÁLISE DEMÁQUINAS DE ESTADOS A partir do diagrama lógico, pretende-se obter uma descrição funcional do circuito, traduzida num diagrama de estados e, quando possível, numa descrição verbal. Método sistematizado de análise a) Identificar os elementos do circuito de acordo com o modelo geral: decodificador de estado seguinte, unidade de memória, decodificador de saída, variáveis de entrada, variáveis de excitação, variáveis de estado e variáveis de saída. b) Determinar: as expressões das funções lógicas das variáveis de excitação que dependem das variáveis de entrada e das variáveis de estado (funções de excitação); as expressões das funções lógicas das variáveis de saída que dependem das variáveis de estado e das variáveis de entrada (funções de saída). c) Construir a tabela de estados, também designada por tabela de transição de estados. d) Construir, a partir da tabela de estados, o diagrama de estados. e) Determinar a descrição verbal para o comportamento funcional do circuito. a) Identificação dos elementos do circuito b) Funções das variáveis de excitação e de saída c) Tabela de estados d) Diagrama de estados e) Descrição funcional 80
  • 82.
    Tabela de transiçãode estados 1 2 3 4 5 Variáveis de Variáveis de Variáveis de Variáveis de Variáveis de estado entrada excitação estado saída (estado (funções de (estado (funções de presente) excitação) seguinte) saída) Elaboração da tabela de estados 1. Considerar todas as combinações possíveis dos valores binários para as variáveis de estado e variáveis de entrada (coluna 1 e 2 da tabela). Sendo N o número de variáveis de estado e de entrada, obtém-se 2N combinações distintas destas variáveis. 2. Com base nas funções lógicas (funções de excitação) das variáveis de excitação, preencher a coluna 3 da tabela de estados. 3. Com base nos valores das variáveis de excitação (coluna 3 = entradas dos flip-flops) e as tabelas funcionais ou as equações características dos flip-flops, determinar o estado seguinte (coluna 4). 4. Com base nas funções lógicas (funções de saída) das variáveis de saída, preencher a coluna 5 da tabela de estados. Note-se que o preenchimento é o resultado da avaliação das funções para as combinações de valores definidos na coluna 1 (estado presente) e 2 (variáveis de entrada). Diagrama de estados O diagrama de estados é uma grafo orientado, constituídos por nós, representativos dos estados, e por arcos orientados, representativos das transições entre estados. Constitui uma representação gráfica dos estados e transições entre estados de um circuito seqüencial síncrono. Permite uma melhor leitura/interpretação do comportamento funcional deste tipo de circuitos. A informação contida no diagrama de estados é acompanhada de uma legenda, de modo a associar os elementos gráficos com as variáveis do circuito seqüencial síncrono. Representação gráfica dos estados Cada estado é representado por um nó (círculo), com a informação que lhe está associada. Num circuito seqüencial síncrono com N variáveis de estado, o diagrama de estados é constituído por 2N estados distintos (2N Nós). Neste tipo de máquina, as variáveis de saída encontram-se associadas ao próprio estado, por serem função apenas das variáveis de estado. Estado = designação ou código de estado (valores lógicos das variáveis de estado) Saídas = valores das saídas Neste tipo de máquina, as variáveis de saída encontram-se associadas às transições entre estados, por serem função das variáveis de estado e das variáveis de entrada. Estado = designação ou código de estado (valores lógicos das variáveis de estado) 81
  • 83.
    Representação gráfica dastransições entre estados As transições entre estados são representadas por um arco orientado entre o estado presente e o estado seguinte. De cada estado, partem 2P arcos orientados, representativos das transições possíveis para P variáveis de entrada. Neste tipo de máquina, as variáveis de entrada e de saída estão associadas às transições entre estados. Neste tipo de máquina, apenas as variáveis de entrada estão associadas às transições entre estados. Exemplos de análise de circuitos seqüenciais síncronos EXEMPLO 1 Dado o diagrama lógico, determinar a tabela de estados, o diagrama de estados e uma possível descrição verbal do funcionamento do circuito. Diagrama lógico a) Identificação dos elementos do circuito Var. entrada: X Var. saída = Var. estado (saídas dos flip-flops): B, A Var. excitação (entradas dos flip-flops): DB,DA 82
  • 84.
    É uma Máquinade Moore dado que as saídas (B,A) são coincidentes com as variáveis de estado. b) Funções das variáveis de excitação DB = B X + BAX + B AX DA= A⊕X c) Tabela de estados Nota: A coluna correspondente ao estado seguinte pode ser eliminada já que, tratando-se de flip-flops do tipo D, o estado seguinte corresponde aos valores das variáveis de excitação. d) Diagrama de estados Legenda Estado: B A Transição entre estados: X e) Descrição funcional Quando X =1, o sistema segue a seqüência de estados: 00, 01, 10, 11. Quando X=0, o sistema mantém-se no mesmo estado. Ao considerar as saídas BA como um número binário de dois bits, está-se perante um contador binário crescente de dois bits, com a entrada X para desinibir/inibir a contagem. 83
  • 85.
    EXEMPLO 2 Dado odiagrama lógico, determinar a tabela de estados, o diagrama de estados e uma possível descrição verbal do funcionamento do circuito. Diagrama lógico a) Identificação dos elementos do circuito Entrada assíncrona: RESET’ Var. entrada: Y Var. saída: Z Var. estado (saídas dos flip-flops): A,B Var. excitação (entradas dos flip-flops): JA,KA,JB,KB É uma máquina de Mealy dado que a saída (Z) depende das variáveis de estado (A,B) e da variável de entrada (Y). b) Funções das variáveis de excitação e de saída JA = B.Y KA = B + Y JB = A + Y KB = Y Z = A .B.Y c) Tabela de estados 84
  • 86.
    d) Diagrama deestados Legenda Estado: A B Transição entre estados: Y/Z e) Descrição funcional A saída Z é colocada a 1 sempre que, em quatro vertentes consecutivas do sinal de relógio, é detectada a seqüência 1001 na entrada Y. A entrada RESET’, quando ativa, coloca o sistema no estado 00. Exemplo: Var. entrada Y: 0001010010000101001001 Var. saída Z: 0000000010000000001001 7.3 SÍNTESE (PROJETO) DE MÁQUINAS DE ESTADOS O procedimento para o projeto (síntese) de um circuito seqüencial síncrono, a partir da descrição verbal do funcionamento do circuito, é o procedimento inverso ao realizado no processo de análise deste tipo de circuitos. Método sistematizado de síntese a) Analisar as especificações do circuito (descrição verbal), obtendo um primeiro diagrama de estados (representados por identificadores). b) Minimizar o número de estados, eliminando eventuais estados redundantes. Um estado é redundante se existir outro estado equivalente no diagrama, isto é, se existir outro estado que para as mesmas especificações das entradas apresente o mesmo estado seguinte e as mesmas especificações de saída. c) Proceder à codificação de estados. Nesta fase determina-se, em primeiro lugar, o número de células da unidade de memória. Normalmente, considera-se o expoente da menor potência de base 2 (2N) que seja maior ou igual ao número de estados do circuito. Refira-se que podem existir situações em que um número maior de células de memória pode conduzir a um circuito globalmente mais simples. Em segundo lugar, é necessário atribuir um código binário a cada um dos estados (código de estado). A atribuição dos códigos de estado condiciona a complexidade da lógica combinacional envolvente (decodificador de estado seguinte e decodificador de saída). As “regras” a seguir enunciadas tendem a minimizar a complexidade destes circuitos. 85
  • 87.
    Regras 1. Escolher para o estado inicial do circuito um código binário facilmente obtido através da inicialização assíncrona do circuito (tudo a 0’s ou 1’s); 2. Tentar associar aos bits ou conjunto de bits do código de estado um significado relacionado com as entradas ou saídas; 3. Minimizar o número de bits do código de estado que mudam em cada transição entre estados. d) Construir a tabela de estados para flip-flops D. e) Determinar os mapas de Karnaugh para as variáveis de excitação dos flip-flops D e para as variáveis de saída. Obter, se necessário, os mapas de karnaugh para as variáveis de excitação dos flip-flops J-K, a partir dos mapas de karnaugh das variáveis de excitação dos flip-flops D. Normalmente, a utilização de flip-flops J-K conduz a circuitos de menor complexidade. Selecionar o tipo de flip-flops (D ou J-K) e obter as expressões simplificadas das funções de excitação e funções de saída. f) Desenhar o diagrama do circuito lógico. a) Descrição verbal e Diagrama de blocos b) Diagrama de estados Eliminação de estados redundantes c) Codificação de estados d) Tabela de estados e) Mapas de Karnaugh e Funções lógicas minimizadas f) Diagrama do circuito lógico 86
  • 88.
    Exemplos de síntesede circuitos seqüenciais síncronos EXEMPLO 1 Detector de uma seqüência de bits (Máquina de Moore) Especificação funcional: Projetar um circuito seqüencial síncrono que detecte a ocorrência de um determinado padrão de bits numa seqüência de valores de entrada. O circuito é constituído pela entrada de dados, X, e produz uma única saída Z que é colocada a 1 quando nas últimas três vertentes do sinal de relógio é detectada a seqüência de bits 110. a) Diagrama de blocos X Circuito Z Clk Síncrono b) Diagrama de estados Trata-se de uma máquina de Moore, já que a saída depende apenas do estado do sistema. De acordo com as especificações, se nas últimas três vertentes do sinal de relógio tiver sido detectada a seqüência 110 a saída é colocada a 1. - Considera-se um estado inicial A, ao qual se associa o fato de nenhuma subseqüência de 110 ter sido detectada. Se X=0, o estado do sistema mantém-se. - Se X=1, o sistema transita para o estado B (detectada a seqüência 1). - Do estado B, se X=1, o sistema transita para o estado C (detectada a seqüência 11), se X=0, o sistema transita para o estado A (estado inicial). - Se o estado atual é C (detectada a seqüência 11) e X=1 o sistema mantém-se no mesmo estado C (detectada a seqüência 11). Se X=0, o sistema transita para o estado D (detectada a seqüência 110) colocando a saída Z a 1. - Se o estado atual é D (detectada a seqüência 110) a saída Z está a 1. Se X=0, o sistema transita para o estado A (estado inicial). Se X=1, o sistema transita para o estado B (detectada a seqüência 1). Legenda Estado: Identificador/Saída Z Transição de estado: X A – início B – detectada a seqüência 1 C – detectada a seqüência 11 D – detectada a seqüência 110 c) Codificação de estados Existem quatro estados distintos, A, B, C e D, sendo, por isso, necessários 2 bits (2 células de memória – Q1, Q0) para codificar cada um dos estados. Obs: A codificação de estados tem por base: - a atribuição do estado 00 ao estado inicial; - o bit Q0 (estado seguinte) coincide com a variável de entrada X. 87
  • 89.
    d) Tabela deestados Tabela de estados para as variáveis de excitação dos flip-flops D e) Mapas de Karnaugh e funções minimizadas f) Diagrama do circuito lógico 88
  • 90.
    EXEMPLO 2 Detector deuma seqüência de bits (Máquina de Mealy) Especificação funcional: Projetar um circuito seqüencial síncrono que detecte a ocorrência de um determinado padrão de bits numa seqüência de valores de entrada. O circuito é constituído pela entrada de dados, X, e produz uma única saída Z que é colocada a 1 quando nas últimas três vertentes do sinal de relógio é detectada a seqüência de bits 100 e a entrada X está a 1. a) Diagrama de blocos X Circuito Z Clk Síncrono Entrada X: 10110100101110001001001110 Saída Z: 00000000100000000001001000 b) Diagrama de estados Trata-se de uma máquina de Mealy, já que a saída depende do estado do sistema e da variável de entrada X. De acordo com as especificações, se nas últimas três vertentes do sinal de relógio tiver sido detectada a seqüência 100 e a entrada tiver o valor 1 a saída é colocada a 1. É, portanto, necessário memorizar a ocorrência do padrão de bits 100. - Considera-se um estado inicial A, ao qual se associa o fato da seqüência 100 não ter sido detectada até ao momento. Se X=0, o estado do sistema mantém-se. - Se X=1, o sistema transita para o estado B (detectada a seqüência 1). - Do estado B, se X=1, o estado do sistema mantém-se, se X=0, o sistema transita para o estado C (detectada a seqüência 10). - Se o estado atual é C (detectada a seqüência 10) e X=1, o sistema deve regressar ao estado B (detectada a seqüência 1). Se X=0, o sistema deve transitar para um novo estado D (detectada seqüência 100). - Se o estado atual é D (detectada a seqüência 100) e X=1, a saída Z é colocada a 1 e o sistema transita para o estado B (detectada a seqüência 1). Se X=0, o sistema transita para o estado A, pois não foi detectada a seqüência 100. Legenda Estado: Identificador Transição de estado: X/Z 89
  • 91.
    c) Codificação deestados Existem quatro estados distintos, A, B, C e D, sendo por isso, necessários 2 bits (2 células de memória – Q1, Q0) para codificar cada um dos estados. Dentre as várias hipóteses de codificação, utiliza-se neste exemplo o seguinte sistema de codificação: Estado Código de estado Q1 Q0 A 0 0 B 0 1 C 1 0 D 1 1 d) Tabela de estados Tabela de estados para as variáveis de excitação dos flip-flops JK e) Mapas de Karnaugh e funções minimizadas 90
  • 92.
    f) Diagrama docircuito lógico 91
  • 93.
    REFERÊNCIAS BIBLIOGRÁFICAS BIGNELL, J.W. e DONOVAN, R. L. Eletrônica digital. Volumes 1 e 2, São Paulo: Makron Books, 1995 BONATTI, Ivanil e MADUREIRA, Marcos. Introdução à análise e síntese de circuitos lógicos. Campinas: Editora da UNICAMP, 1990. BRAGA, Newton C. Curso de eletrônica digital. São Paulo: Saber Eletrônica Especial n. 8, 2002. CAPUANO, Francisco G. Exercícios de eletrônica digital. São Paulo: Érica, 1991. DATAPOOL. Módulo 8410: teoria e prática. Itajubá: Datapool Eletrônica. ERCEGOVA, Milos et alii. Introdução aos sistemas digitais. Porto Alegre: Bookman, 2002. FRANCISCO, Francisco Ferreira. Circuitos seqüenciais síncronos. Disponível em: <http://www.estv.ipv.pt/paginaspessoais/ffrancisco/sd/sumarios.htm>. Acesso em: 04 nov. 2005. IDOETA, I.V. e CAPUANO, F.G. Elementos de eletrônica digital. São Paulo: Érica, 1987. MALVINO, A. P. e LEACH, D. P. Eletrônica digital: princípios e aplicações. Volumes 1 e 2, São Paulo: McGraw-Hill, 1987. MELO, Mairton de Oliveira. Eletrônica digital. São Paulo: Makron Books, 1994. MENDONÇA, Alexandre e ZELENOVSKY, Ricardo. Eletrônica digital: curso prático e exercícios. Rio de Janeiro: MZ Editora, 2004. SZAJNBERG, Mordka. Eletrônica digital. Rio de Janeiro: Livros Técnicos e Científicos Ltda, 1988. TOCCI, Ronald J. e WIDMER, Neal S. Sistemas digitais: princípios e aplicações. São Paulo: Prentice Hall, 2003. 92