jueves, 18 de octubre de 2012

Sintetizador de sonido ISD1964


El Sintetizador de sonido ISD1964 permite ser direccionado para grabar audio y luego reproducirlo en cada dirección de la memoria EEPROM interna donde fué grabado el mensaje.Como viene en encapsulado SOIC de montaje superficial, se elaboró,  mediante una tarjeta de circuito impreso,una adaptación a DIP para poder trabajarlo en la protoboard colocándole todos los elementos requeridos para su óptimo funcionamiento.Requiere de un micrófono ELECTRE polarizado, y Speaker de 16 ohmios, sirviendo los parlantes utilizados para Multimedia. La siguiente presentación en Power Point, describe resumidamente su arquitectura y forma de utilizarlo. ISD es la sigla de INFORMATION  STORE DEVICE  (Dispositivo para almacenar Información). Se pueden grabar y reproducir 16 mensajes de 4 segundos cada uno, para un total de 64 segundos, de ahí deriva el 64 en su rótulo. 













Los pines S0 (Start Input) y E0 (End Input) no se encuentran puenteadas en la plaqueta,por consiguiente hay que cablear externamente en el protoboard, y así mismo S1 con E1, S2 con E2, y S3 con E3. Quedan entonces sólo 4 pines de entradas de dirección que las podemos denominar A3,A2,A1 y A0, con los cuales podemos establecer las 16 direcciones: desde 0000 hasta 1111, donde en cada dirección podemos grabar y reproducir un mensaje de 4 segundos de duración, siempre y cuando se coloque una  resistencia de 80 KiloOhmios, como Rosc, y se pueda establecer la frecuencia de muestreo apropiada. En la plaqueta se dispone de una resistencia ya incorporada de 100 kilo-ohmios, con lo cual aumenta un poco el tiempo del mensaje a grabar pero disminuye así mismo la calidad del audio grabado. No se pudo obtener la resistencia de 80 K para montaje superficial. Para grabar se activa el pulsador REC habiendo seleccionado previamente la dirección y se habla a través de un micrófono ELECTRE sin pasarse de los 4 o 5 segundos . El Led con ánodo a Vcc, se debe encender mientras se está grabando.   Para escuchar lo grabado, en la misma dirección, se oprime el pulsador PLAYE (play Edge) o PLAYL (play Level). Un pulsador permite la reproducción por el flanco (se oprime y se suelta) y el otro pulsador lo hace por el nivel (debe permanecer el pulsador todo el tiempo oprimido en nivel bajo).

LABORATORIO:  Se trata mediante un Dip-Switch de 4 interruptores direccionar y grabar 16 mensajes.
 Al direccionar 0000 se debe grabar la palabra CERO en español e inglés, con 0001 la palabra UNO, y así sucesivamente hasta en 1111 grabar y reproducir la palabra QUINCE.



NOTA IMPORTANTE: HAGA EL PUENTE ENTRE A3 CON  A3, A2 CON A2, A1 CON A1 Y A0 CON A0. INDISPENSABLE PARA GRABAR EN TODAS LAS DIRECCIONES.

Veamos una fotografía del montaje realizado en el protoboard:

 .................................................................................................................................................................
Nota: El creador de este blog agradece públicamente a JOSE MIGUEL CEBALLOS FORERO y a su empresa KANANCE INGENIERIA de Mosquera,Cundinamarca, con su  excelente grupo de trabajo( Yamit, Michel, Edwin, Diego, Pedro, Yaneth),  por la colaboración en la importación del Chip, diseño, elaboración y pruebas de la tarjeta que nos permite trabajar con este interesante sintetizador de sonido

miércoles, 5 de septiembre de 2012


LABORATORIO:

Se trata de diseñar en ispLEVER e implementar en una GAL22V10  un contador sincrónico de 3 bits utilizando 3 flip-flops o biestables tipo T con visualización en un display de 7 segmentos, cátodo común, 
y que además con el chip de sonido ISD1964 se pronuncie en Español e Inglés el dígito del 0 al 7 que se muestre en el Display.

Información preliminar (tomada de Wikipedia):

Biestable T (Toggle)


Símbolo normalizado: Biestable T activo por flanco de subida.
Dispositivo de almacenamiento temporal de 2 estados (alto y bajo). El biestable T cambia de estado ("toggle" en inglés) cada vez que la entrada de sincronismo o de reloj se dispara mientras la entrada T está a nivel alto. Si la entrada T está a nivel bajo, el biestable retiene el nivel previo.

TQQsiguiente
00



0
01



1
10



1
11



0


..................................................................................................................................................................
Diseño:
1) Se elabora una Tabla de Estados del contador así:

       ESTADO  PRESENTE      ESTADO SIGUIENTE
               Q2 Q1 Q0                         Q2 Q1 Q0
                0    0    0                            0    0    1
                0    0    1                            0    1    0
                0    1    0                            0    1    1
                0    1    1                            1    0    0
                1    0    0                            1    0    1
                1    0    1                            1    1    0
                1    1    0                            1    1    1
                1    1    1                            0    0    0

2) Luego, se agrega a la tabla anterior las 3 columnas correspondientes a las entradas de los flip-flops T con lo cual la tabla de estados cambia a una Tabla de Excitación:

     ESTADO  PRESENTE      ESTADO SIGUIENTE    ENTRADAS DE FLIP-FLOPS
               Q2 Q1 Q0                         Q2 Q1 Q0                       T(Q2) T(Q1) T(Q0)
                0    0    0                            0    0    1                              0        0         1
                0    0    1                            0    1    0                              0        1         1 
                0    1    0                            0    1    1                              0        0         1
                0    1    1                            1    0    0                              1        1         1
                1    0    0                            1    0    1                              0        0         1
                1    0    1                            1    1    0                              0        1         1
                1    1    0                            1    1    1                              0        0         1     
                1    1    1                            0    0    0                              1        1         1
   
3) Elaboramos ahora una tabla con Estado Presente y Entradas de Flip-flops:


  ESTADO  PRESENTE          ENTRADAS DE FLIP-FLOPS
               Q2 Q1 Q0                       T(Q2) T(Q1) T(Q0)
                0    0    0                             0        0         1
                0    0    1                             0        1         1 
                0    1    0                             0        0         1
                0    1    1                             1        1         1
                1    0    0                             0        0         1
                1    0    1                             0        1         1
                1    1    0                             0        0         1     
                1    1    1                             1        1         1

De esta tabla obtenemos las ecuaciones Booleanas de los Flip-Flops:
              T(Q2) = Q2' Q1 Q0  +  Q2 Q1 Q0 =  Q1 Q0 ( Q2' + Q2) = Q1 Q0
              T(Q1) = Q0
              T(Q0) = 1

4) Dibujamos en el Editor Esquemático de ispLEVER el circuito lógico del Contador de 3 bits:
Se solicita al lector simular el contador,  adicionar en el Editor Esquemático del ispLEVER el decodificador para los 7 segmentos del Display, simular el circuito final de la GAL, y estudiar como automatizar el proceso  para manejar el ISD1964 sin necesidad de activar manualmente el pulsador de reproducción del Chip de Sonido.


miércoles, 30 de mayo de 2012

Circuitos Digitales Secuenciales: Autoevaluación.


EJERCICIOS    RESUELTOS   DE LÓGICA  SECUENCIAL
Seleccione la respuesta correcta:
Para las preguntas de 1 a 5, tenga en cuenta el siguiente diagrama, correspondiente a un circuito lógico secuencial:

1.       Se puede afirmar que el circuito secuencial  es:
( A ) Un contador de anillo                                                ( B ) Un contador Johnson
( C ) Un registro de almacenamiento                                  ( D ) Un registro de desplazamiento

 Respuesta: (D)

De acuerdo a la tabla de verdad de la compuerta XNOR su salida es 1 si QC y  QD son ambas CEROS o ambas UNOS. 
En el contador Johnson se debe dar la secuencia: 0000,1000,1100, 1110, 1111,... Este estado no se da en el circuito indicado, por consiguiente sólo corresponde a un registro de desplazamiento.


2.       I.   Si la entrada RESET está en nivel bajo, las salidas de los flip-flops  se hacen todas CERO,                              al   producirse el flanco de subida del reloj.
             II.   Cada flip-flop D, se puede remplazar por un J-k,   efectuando un puente entre  J  y  K´. 
            
            ( A )  Sólo I  es verdadero                                                     ( B )  Sólo II  es verdadero      
            ( C )   I y  II   son verdaderos                                                 ( D ) Tanto I como II son falsos     
     
          Respuesta: (B)

         Si la entrada RESET está en nivel bajo, las salidas de los flip-flops se hacen todas CERO,  
         independientemente del flanco de reloj, puesto que el RESET está activando la entrada asíncrona   
        CLRN de cada flip-flop, por consiguiente la afirmación I es falsa.

         La afirmación II es verdadera. Si J =0, K=1, Q = 0;   Si J =1, K=0, Q = 1; por consiguiente un flip-
         flop J-K,  J y K´ puenteados, se comporta como un flip-flop D.


3.       Si las salidas de los flip-flops   QA, QB, QC y QD, son inicialmente  0000,y la entrada RESET está fija en nivel alto,  al llegar el primer flanco de reloj,  dichas  salidas  son:
( A )  0100                         ( B ) 1000                         ( D )  0010                            ( D ) 0001

Respuesta: (B)

La compuerta XNOR con entradas QD=0, QC=0, coloca un nivel alto a la entrada D de QA, lo cual hace que al llegar el primer flanco de reloj: QA=1, QB = 0, QC = 0, QD = 0.

    
4.       Para el segundo pulso de reloj, las salidas son:
( A )  1110                         ( B ) 1010                         ( D )  1110                            ( D ) 1100


Respuesta: (D)

Para el segundo pulso de reloj, el UNO de QA se desplaza a QB, y a QA se introduce otro UNO, luego QA = 1, QB=1, QC = 0, QD = 0.

5.       Para el tercer y cuarto pulsos la secuencia en  las salidas, en decimal,  es:
( A )  14, 7                         ( B ) 14, 12                         ( D )  7, 11                            ( D ) 13, 7

           Respuesta: (A)

          Para el tercer pulso QA = 1, QB = 1, QC =1, QD = 0. ( 14 decimal). Al ser QC=1,QD=0, la salida 
         de la compuerta XNOR  está en nivel bajo,  lo cual hace que para el cuarto pulso: QA=0,    QB =1, 
          QC= 1, QD = 1 ( 7 decimal).

Para las preguntas de 6  a 10, tenga en cuenta el siguiente diagrama de estados, correspondiente a una máquina de Moore, que dispone de una entrada  X y una salida  Z:
  6.       Para implementar el circuito lógico correspondiente se requiere un único Flip-Flop,  porque:
( A ) Solo existe una entrada                                            ( B )  Solo existe una salida
( C ) Solo hay dos estados                                                 ( D )  Ninguna de las anteriores


Respuesta: (C)

Al existir solo dos estados A y B se necesita un único flip-flop para implementar el circuito lógico, puesto que al efectuar la asignación binaria: A = 0, B = 1. 

7.       Si se implementa con un Flip-Flop D,  la ecuación de  entrada del Flip-Flop es:
( A )  Q´ X´                                                                            ( B )    Q  X´
( C )  Q  X´  +   Q´  X                                                             ( D )   Q´ X´  +   Q  X


Respuesta: (D)

Hay que tener en cuenta que D(Q) = Q, y que si Q = 1, Z=1.

Tabla de excitación con flip-flop D:
   Q   X   Q   Z   D(Q)
    0   0    1    0      1

    0   1    0    0      0
    1   0    0    1      0
    1   1    1    1      1        

De la tabla de excitación se deduce que por mintérminos:  D(Q) = Q´X´ +  Q X 

8.       Si se implementa con un Flip-Flop T, la ecuación de entrada del Flip-Flop  es:
( A )   X                                                                                 ( B )   X´
( C )  Q´  X                          ´                                                  ( D )   Q  X´


Respuesta: (B)



Tabla de excitación con flip-flop T:
   Q   X     Z   T(Q)
    0   0    1    0      1

    0   1    0    0      0
    1   0    0    1      1
    1   1    1    1      0

T(Q) =   Q' X'  + Q X' = X' ( Q' + Q ) = X' 


9.       La salida Z en la máquina de Moore es:
          I.   Independiente del tipo de Flip.Flop que se utilice.
              II.   Independiente  de la entrada  X.
            
            ( A )  Sólo I  es verdadero                                                     ( B )  Sólo II  es verdadero     
            ( C )  I y II  son verdaderos                                                    ( D ) Tanto I como II son falsos
           
            Respuesta: (C)
           
            Tal  como se aprecia en las tablas de excitación, la salida Z en la máquina de Moore no depende del  
            tipo de flip-flop utilizado ni de la entrada Z. Simplemente, en nuestro ejemplo, está asociada a los 
            dos  estados.( Z = 0, para el estado A, y, Z =1, para el estado B). 

10.   La salida Z  es:
( A )  Q´                                                                                  ( B )   Q
( C )  Q  X                          ´                                                    ( D )   Ninguna de las anteriores
        Respuesta: (B)
           
            Z = 1, cuando Q = 1 (Estado B), luego Z = Q.

2.Se requiere diseñar e implementar el circuito lógico correspondiente a una máquina de estado algorítmica  ASM,  que utilizando un contador 74191, y  obedeciendo un pulso de START,  inicie un conteo descendente desde el  QUINCE  hasta el  CERO, permaneciendo así hasta un nuevo pulso para repetir la operación.
      Elaborar:
      ( A ) Diagrama ASM
      ( B ) Procesador de Datos utilizando el contador 74191.
      ( C ) Unidad  de Control utilizando un multiplexor  de 2 entradas/1 salida, Un flip-
              flop D   e   inversores.

   El contador 74191 trabaja de acuerdo a la siguiente tabla de operación:
    LDN               GN             DNUP             
Operación  del   Contador
         0                  X                 X                     
Carga en paralelo
         1                  0                  0                    
Cuenta  ascendente
         1                  0                  1                   
Cuenta descendente
         1                  1                  X                    
Inhabilitación
                                            
          SOLUCIÓN:  

      ( A ) Diagrama de estados:
 D: Detector , para averiguar si el contador llegó a 1 ( Un pulso antes de terminar su conteo y llegar a Cero)

( B ) Procesador de datos:
 ( C ) Unidad de control:
Cuando START = 0,    Q = 0,  T0 = 1 , T1 = 0  ( Inicio de Máquina )
Cuando START = 1,   al producirse el flanco de subida de reloj, Q = 1, T0 = 0, T1 = 1; Dicho estado permanece, mientras D = 0; Cuando  D = 1, en el flanco de subida de reloj, Q=0, y se regresa a T0 = 1, T1 = 0.     

domingo, 27 de mayo de 2012

Diseño de contador de 2 dígitos ascendente-descendente por ASM

EJERCICIO: Diseñar como ASM un contador de dos dígitos, que por medio de un pulsador al recibir una señal de inicio START, cuente ascendentemente desde el 0 hasta el 99, y luego lo haga descendentemente, y al llegar al 0 se bloquee, hasta tanto, no se accione nuevamente el pulsador para reanudar su operación.

SOLUCIÖN:

Diagrama ASM:
Para el diseño,veamos inicialmente el diagrama de estados de la  UNIDAD DE CONTROL la cual se puede elaborar en una Gal22V10 en ispLEVER por ABEL como una máquina de Moore:
El circuito lógico queda así:




lunes, 21 de mayo de 2012

Máquina de Estado Algorítmica ASM

Se recomienda inicialmente consultar: http://es.wikipedia.org/wiki/M%C3%A1quina_de_estados_algor%C3%ADtmica

Un algoritmo es una secuencia de pasos bien definida que produce una secuencia deseada de acciones en respuesta a una secuencia dada de entradas.

Un diagrama ASM (Algorithmic State Machine) es una herramienta conveniente para expresar los algoritmos que serán realizados por circuitos lógicos secuenciales.

Se emplean tres elementos para construir diagramas ASM:

  * Caja de estado: RECTÁNGULO: Representa un estado del circuito y equivale a un nodo del diagrama de estados. En la caja se etiqueta el nombre del estado.

  * Caja de decisión: ROMBO: Representa una decisión de transición de estado con base en una prueba de una entrada del circuito. Una caja de decisión tiene un único punto de entrada y dos puntos de salida.

  * Caja de salida condicional: OVALADA: Por lo general se ubican en la ruta entre una caja de decisión y una caja de estado. Tiene una única entrada y un punto de salida.

En las Máquinas de Estado Algorítmicas existen dos grandes bloques: La UNIDAD DE CONTROL y la UNIDAD DE PROCESO, conocida también como el PROCESADOR DE DATOS.
EJERCICIO: Se requiere implementar una máquina ASM que realice lo siguiente:

  1. Al activar un PULSADOR se dá una señal de START (Inicio) que hace que un contador 74190 cuente ascendentemente desde el 0 hasta el 9, cada segundo.Antes de dar el START el contador estaba bloqueado en 0.
  2. Cuando el contador llega al 9, automáticamente sigue contando luego descendentemente, hasta llegar nuevamente al 0.
  3. El conteo ascendente y descendente lo tiene que hacer 5 veces, cuenta que realiza un segundo contador 74190.
  4. Al final de los 5 ciclos, ambos contadores 74190, se bloquean en 0, hasta tanto no se de un nuevo pulso de START para repetir la operación.
  5. Mientras están los contadores bloqueados se enciende un LED AMARILLO:
  6. Al estar el primer 74190 en conteo ASCENDENTE enciende un LED VERDE.
  7. Al estar el primer 74190 en conteo DESCENDENTE enciende un LED ROJ0.
SOLUCIÖN:
En el procesador de datos disponemos de 2 contadores 74190 y 3 flip-flops J-K así:
  •  C1 (74190): cuenta ascendente y descendente (0...9,  9...0)
  •  C2 (74190): cuenta los ciclos (0...5)
  • F1: Enciende o apaga el LED AMARILLO
  • F2: Enciende o apaga el LED VERDE
  • F3: Enciende o apaga el LED ROJO
La Unidad de control va a disponer de MULTIPLEXOR , Flip-Flops D y DECODIFICADOR.

Paso 1:  DIAGRAMA ASM.
Para analizar el diagrama lo hacemos por bloques  ASM.  El bloque ASM se inicia con una casilla de estados. Nuestro diagrama está constituido por 3 bloques ASM debido a sus 3 casillas de estado S0,S1,S2.

  • BLOQUE S0: La máquina ASM inicia con el flip-flop F1 en nivel alto, para que el Led Amarillo esté encendido, los contadores deben estar reseteados. Esta situación se mantiene si no se acciona el pulsador de arranque (START). Al oprimir el pulsador se coloca F1 en 0 para apagar el Led amarillo y se fija el Flip-flop F2 en alto para encender el led Verde.
  • BLOQUE S1: Un periodo de reloj después de haber accionado el pulsador se incrementa el contador C1. Mientras no llegue al 8, estando el detector D1 en 0, sigue incrementando cada vez que llegue el flanco de subida del reloj. Al llegar al 8, D1 = 1, incrementa por última vez, llegando al 9, y simultáneamente F2 =0, F3 =1, apagándose el Led Verde y encendiéndose el led Rojo.
  • BLOQUE S2:Un periodo de reloj después de haber llegado C1 al 9, decrementa pasando al 8, y lo sigue haciendo mientras D2 =0, al no detectarse que el contador C1 ha llegado al 1. Cuando D1 = 1, es porque el contador ha llegado al 1, y en esta ocasión en el siguiente pulso de reloj, la casilla de estados S2 le ordena a C1 que vuelva a decrementar, pasando a 0, y simultáneamente, debido a que la casilla condicional que lo ordena está en el mismo bloque ASM, los flip-flops F2 y F3 se colocan en 1 y 0 respectivamente, con lo cual se enciende el led Verde nuevamente y se apaga el Led rojo, indicando que se terminó el conteo descendente y vuelve C1 a contar ascendentemente.Cuando C1 ha terminado de contar en forma descendente, se incrementa el contador C2, el cual lleva la cuenta del número de ciclos.Mientras el detector D3 = 0, C1 sigue incrementando de 0 a 9, y decrementando enseguida de 9 a 0. Cuando D3 = 1, ello quiere decir que si C2=5, ya se han realizado los 5 ciclos, F3=0, se apaga el led Rojo, y al volver al bloque S0, se enciende el Led amarillo, quedando los 2 contadores reseteados, esperando que se dé un nuevo pulso de START para repetir la operación.

Paso 2: Tomamos la UNIDAD DE CONTROL como una caja negra, cuyas entradas las dan las casillas de decisión y las salidas las casillas de estados, e implementamos el PROCESADOR DE DATOS compuesto por los 2 contadores 74190 y los 3 flip-flops J-K. Primero implementamos los contadores y luego los flip-flops:
CONTADOR C1: 
  • La unidad de control inicia con S0=1, S1=0,S2=0, indicando que la máquina ASM está ubicada en el bloque S0. Como S0 = 1, el inversor coloca la entrada LOAD del 74190 en nivel bajo, y como las entradas D,C,B,A están todas a tierra, C1 se coloca en 0, tal como lo exige la primera casilla de estados S0 (C1<--0). Así permanece mientras la señal de START sea Cero. 
  • Al accionar el pulsador del  START la unidad de control pasa a S0=0,S1=1,S2=0, pues se va al bloque S1. Al llegar la máquina ASM al bloque S1, como la entrada DOWNUP =0, porque está conectada a la salida S2 de la unidad de control, como la entrada Enable G del contador está a tierra, y LOAD = 1 (S0 invertida), entonces se dan las condiciones para que C1 incremente mientras esté en el bloque S1.
  • Al llegar al Bloque S2 (S0=0, S1=0, S2=1), lo cual hace que LOAD =1, G=0, DOWNUP=1, y por consiguiente en este bloque C1 tiene que contar en forma descendente.
CONTADOR C2: 
  • En el bloque S0 debe estar reseteado (C2<--0), lo cual lo hace el inversor que maneja la entrada de carga del 74190.
  • En el bloque S1, C2 debe estar bloqueado en 0. Para ello enviamos el 1 de S1 a través de una compuerta OR a la entrada G de enable del contador.
  • En el bloque S2, C2 está bloqueado mientras que el detector D2 =0, por esta razón, al invertir D2 y enviarla al enable G de C2 a través de la otra entrada de la compuerta OR inhibimos el conteo. Estando en el estado S2 (S2=1), y D2=1, la compuerta NAND al tener dos niveles altos en sus entradas, coloca un 0 en su salida, y como la NAND va a la entrada DOWNUP, DOWNUP=0, G=0, LOAD=1, y C2 incrementa sólamente cuando se presenten estas condiciones.  Al terminar su conteo, y volver al bloque S0 (C2<--0), y cambia el 5 por el 0.
DETECTORES:

La unidad de control avanza de bloque en bloque de acuerdo a sus entradas START, y los detectores D1,D2,D3.

  • D1: Como D1 está ubicado en el bloque S1 donde C1 incrementa desde 0, cuando C1 llega al 8=(1000)2, QD=1, por consiguiente la salida QD de C1 es igual a D1.
                                  QD QC QB QA
                                   0     0    0     0
                                   0     0    0     1
                                   0     0    1     0
                                   0     0    1     1
                                   0     1    0     0 
                                   0     1    0     1
                                   0     1    1     0
                                   0     1    1     1
                                  1     0    0     0

  • D2: Como es el detector en el bloque S2 donde C1 decrementa debe analizarse el conteo descendente:
                                  QD   QC   QB   QA
                                   1       0       0       1
                                   1       0       0       0  
                                   0       1       1       1
                                   0       1       1       0
                                   0       1       0       1
                                   0       1       0       0
                                   0       0       1       1
                                   0       0       1       0
                                   0       0       0       1  
     
La compuerta NOR con las 3 entradas QD,QC,QB produce salida en nivel alto al detectar el 1 decimal en conteo descendente.

  • D3: la detección de cuando C2 ha llegado al 5 al contar ascendentemente se hace a través de una compuerta AND de entradas QC y QA.
                                QD  QC   QB   QA

                                  0     0       0       0  
                                  0     0       0       1
                                  0     0       1       0
                                  0     0       1       1
                                  0     1       0       0
                                  0     1       0       1    

Pasamos ahora a mirar como implementamos los 3 flip-flops que manejan los Leds, para lo cual tomamos nuevamente la UNIDAD de CONTROL como una caja negra y 3 flip-flops J-K de salidas F1,F2 y F3:
FLIP-FLOP F1 (Led amarillo): De acuerdo al diagrama ASM, F1<--1, cuando está en la casilla de estado S0, y se coloca en 0 en el mismo bloque cuando START = 1. Por consiguiente si la entrada J = S0, y la entrada K está a una compuerta AND con S2 y START como entradas, ello hace que F1 sea 1 al iniciarse la máquina y se apague el led amarillo cuando K=1, estando J = 1, por la conmutación del flip-flop.

FLIP-FLOP F2 (Led verde): Hay 2 posibilidades para que el led verde se encienda (F2<--1), o sea para que J(F2) = 1 1, cuando S0=1, Start =1,  o, cuando S2=1,D3=0, por ello J(F2)= S0.S + S2.D3'.  Como el led verde se apaga (f2<--0) solo cuando S1=1,D1=1, entonces K(F2) = S1 D1.

FLIP-FLOP F3 (Led rojo): J(F3)= S1 D1 (El led rojo enciende cuando se apaga el verde). El led rojo se aapaga en dos ocasiones, luego:. K(F3) = S2 D3 + S2 D3'.

Paso 3: DISEÑO DE LA UNIDAD DE CONTROL.
Se ván a utilizar 2 Multiplexores de 4 entradas/1 salida, 2 flip-flops D y un decodificador de 2 entradas/3 salidas. 
Observe en el esquemático las siguientes consideraciones:
  • La entrada INH del multiplexor es un Enable, que debe estar a tierra para que el multiplexor quede habilitada.
  • Las entradas de selección S1 y S0  de los multiplexores son las salidas Q1 y Q0 de los flip-flops D.
  • El decodificador de 2 entradas/3 salidas fue implementado en discreto con compuertas AND e Inversores; las entradas del decodificador son las salidas de los Flip-Flops D y las salidas del decodificador son las salidas de la unidad de control.
  • Las entradas de los multiplexores responden a una lógica de acuerdo al diagrama ASM en sus casillas de decisión donde están presentes las entradas de la unidad de control: el pulso de Start y los detectores D1,D2,D3.
  • La entrada de datos D3 de los multiplexores no es requerida,por consiguiente no se utiliza.
Veamos en detalle como se conectan las entradas de la Unidad de Control a las entradas de los Multiplexores, para lo cual es indispensable que el lector tenga a la mano el Diagrama ASM de la máquina:
  • Por Reset-Power-On los flip-flops inician reseteados, de tal manera que Q1=0,Q0=0. Esto hace que S1=S0=0,  y en cada multiplexor la entrada de datos D0 se conecte a la salida del mismo.Como la entrada D0 de MUX1 está a tierra, y la del MUX2 está a la entrada S(Start), entonces si S=0, en el siguiente flanco de reloj, las entradas de los flip-flops van a ser 00, y los flip-flops dejen pasar estos datos, de tal manera que en la salida del decodificador vá a estar S0=1, S0=0,S2=0. Si S=1, el estado siguiente de los flip-flops será 01, y el decodificador tendrá: S0=0,S1=1,S2=0, indicativo que la máquina avanzó del bloque S0 al S1, tal como lo exige el diagrama ASM.
  • Al estar la máquina en el bloque S1,  Q1=0,Q0=1, lo cual hace que los multiplexores conecten sus entradas de datos D1 a sus salidas.La entrada D1 de MUX1  va al detector D1, y la de MUX2 va a D1´ .  Esto hace que si el detector D1 = 0, Q1 y Q0 siguen en 01, pero si el detector D1=1, Q1Q0 cambian a 10, y el docodificador saca a su salida S0=0, S1=0, S2=1, indicando que ha habido transición del bloque S1 a S2.
  • Al llegar Q1=1, Q0 = 0, (Bloque S2), el diagrama ASM nos indica lo siguiente:
  1. Si  D2 = 0, el estado siguiente de los flip-flops es Q1=1,Q0=0 (Permanece en el bloque S2)
  2. Si D2 =1, D3 = 0,  el estado siguiente de los flip-flops es Q1=0,Q0=1 (Cambia al bloque S1)
  3. Si D2 =1, D3 = 1,  el estado siguiente de los flip-flops es Q1=0,Q0=0 (Cambia al bloque S0)
Si la anterior información  la organizamos en una tabla nos queda así:
                       ESTADO SIGUIENTE         CONDICIÓN DE 
                                   Q1  Q0                    LOS DETECTORES        
                                     0    0                              D2  D3
                                     0    1                              D2  D3'
                                     1    0                              D2' 

Inspeccionando la tabla deducimos que la entrada de datos D2 de MUX1, asociada a Q1,  debe estar conectada al detector D2  con un inversor:  D2´

Así mismo la entrada de datos D0 de MUX2, que es la que está asociada con Q0, debe ser D2.D3´.

SIMULACIÖN DE LA UNIDAD DE CONTROL EN ALTERA:

UNIDAD DE CONTROL EN ispLEVER CON ABEL (Máquina de Moore)

Tenemos que elaborar el diagrama de estados de la UNIDAD de CONTROL:
El programa en ABEL es el siguiente:

Al efectuar su simulación en ispLEVER se comprueba su correcto funcionamiento:
EJERCICIO: Simular en Altera el correcto funcionamiento de la Máquina ASM descrita en el presente documento.

















       















Máquina de Moore: Contador Anillo-Johnson

Se denomina código Johnson (Johnson-Mobius) al código binario continuo y cíclico (al igual que el código Gray) cuya capacidad de codificación viene dada por 2n, siendo n el número de bits. Para codificar los dígitos decimales se necesitarán por lo tanto 5 bits:
Código Johnson
Equivalencia decimalCódigo Johnson

0

00000

1

00001

2

00011

3

00111

4

01111

5

11111

6

11110

7

11100

8

11000

9

10000

La secuencia es sencilla,consiste en desplazar todos los bits uno a la izquierda y en el bit menos significativo se coloca el complementario del que estaba mas a la izquierda.
Dada la simplicidad del diseño de contadores que lleven el cómputo en este código, se utiliza en el control de sistemas digitales sencillos de alta velocidad.
Proporciona una mayor protección contra errores aunque es menos eficiente en memoria que el código binario decimal.
EJERCICIO: En ispLEVER programar en ABEL-HDL una máquina de Moore que disponga de una entrada AJ de tal manera que si AJ = 0 se active un contador de ANILLO, y si AJ = 1 se active un contador JOHNSON. Cinco Leds, cátodo común, deben visualizar el conteo.Al iniciar el contador tanto como ANILLO como modo JOHNSON debe sonar el BUZZER, así mismo si se cambia la entrada AJ debe sonar el BUZZER durante el primer periodo de reloj, indicando que se cambió el contador de una a otra forma, ya sea de ANILLO a JOHNSON o de JOHNSON a ANILLO. Implementar el circuito en GAL22V10.
SOLUCIÖN:
1) DIAGRAMA DE ESTADOS:
2) PROGRAMA EN ABEL CON ispLEVER:
3) SIMULACIÓN en ispLEVER:
LABORATORIO FINAL:
 IMPLEMENTAR CON UNA GAL22V10 UNA MÁQUINA DE MOORE CON 9 LEDS Y UN BUZZER.
  1. Con la entrada AJ = 0 los LEDS deben encenderse en una secuencia en código JOHNSON. 
  2. Con la entrada AJ = 1 los LEDS deben encenderse en una secuencia en contador de ANILLO.
  3. El buzzer debe activarse al inicio tanto del contador JOHNSON como de ANILLO, por consiguiente debe sonar al cambiar el contador de una a otra forma.