jueves, 26 de abril de 2012

Rediseño del contador 74LS191 (Ingeniería Inversa)

Se trata de lograr las ecuaciones Booleanas que correspondan al circuito lógico, para lo cual requerimos sus características, segun su Data Sheet:
Su diagrama lógico es el siguiente:

Sus formas de Onda o diagramas de tiempo, describen su funcionamiento:
Su circuito lógico corresponde a:
Vamos a efectuar el rediseño, por partes, siguiendo la "regla de oro" en la Electrónica: "DIVIDE Y REINARAS"


Lo primero que hacemos es suponer que el contador fuese solo ascendente, y  de 3 bits:
Su tabla de estado es:
ESTADO PRESENTE     ESTADO SIGUIENTE
     QC QB QA                       QC QB QA
      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

 Como observamos en el diagrama lógico que el flip-flop utilizado es T ( J-K puenteado) su Tabla de Excitación es la siguiente:

ESTADO PRESENTE     ESTADO SIGUIENTE  ENTRADAS DE LOS FLIP-FLOPS
     QC QB QA                       QC QB QA                  T(QC)       T(QB)       T(QA)
      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
Nos interesa obtener las ecuaciones de los 3 flip-flops:
T(QC) = QC´QB QA + QC QB QA = (QC´ + QC) ( QB QA ) = QB QA
T(QB) = QC´QB´QA + QC´QB QA + QC QB´QA + QC QB QA =  QB´QA (QC´+ QC) +
 QB QA ( QC´+ QC) = QB´QA + QB QA = (QB´+ QB) QA = QA
T(QA) = 1

Resumiendo:     T(QC) = QB QA
                         T(QB) =       QA
                         T(QA) =           1
Extrapolando ideas podemos razonadamente suponer que T(QD) = QC QB QA, para el contador sincrónico ascendente de 4 bits.
Luego las ecuaciones del contador de 4 bits nos quedarían así:
                         T( QA) = 1
                         T (QB) = QA
                         T (QC) = QA QB
                         T(QD) =  QA QB QC
Aplicando luego nuevamente sólo lógica podemos pensar que si el contador fuese descendente las ecuaciones serían:
                         T( QA) = 1
                         T (QB) = QA´
                         T (QC) = QA´ QB´
                         T(QD) =  QA´ QB´ QC´
Para que el contador sea UP/DOWN (Ascendente/Descendente) se requiere multiplexar de 2 a 1, y la entrada Down/Up, que llamaremos DU y correspondiente al pin 5 del chip, será la entrada de selección en cada multiplexor: Entonces las ecuaciones para el contador de 4 bits UP/DOWN nos quedan así:
                         T( QA) = 1
                         T (QB) = QA  DU´ + QA´ DU
                         T (QC) = QA QB DU´ + QA´QB´ DU
                         T(QD) =  QA QB QC DU´ + QA´ QB´QC´ DU

Podemos verificar que si DU = 0, (DU´ = 1), entonces tendremos:
                         T( QA) = 1
                         T (QB) = QA
                         T (QC) = QA QB
                         T(QD) =  QA QB QC
,lo cual corrobora que si DU = 0, el 74191 cuenta ascendentemente.

Si por el contrario, DU = 1, (DU´ = 0), las ecuaciones serían las del contador descendente.
Regresando al diagrama lógico, podemos verificar que las ecuaciones de entrada de los flip-flops T, corresponden al circuito mostrado en el esquema que presenta el fabricante, aunque presentan sólo alguna diferencia porque aún no hemos tenido en cuenta la entrada del ENABLE, o sea la entrada G,correspondiente al pin 4 del circuito integrado.

Observando la gráfica de Diagramas de tiempo, vemos que si G = 0, el contador está habilitado, y en cambio si G =1 se bloquea.
Esta situación nos lleva a modificar las ecuaciones, quedando así:
                         T( QA) =
                         T (QB) = QA  DU´ +  QA´ DU
                         T (QC) = QA QB DU´ + QA´QB´ DU
                         T(QD) =  QA QB QC DU´ + QA´ QB´QC´ DU 
Podemos verificar que si G = 0, (G´= 1), y las ecuaciones quedan iguales a como estaban, y en cambio, si G=1,(G´=0), y todas las entradas de los flip flops T quedan iguales a cero, y por consiguiente por más que llegue el flanco de subida del reloj, las salidas de los flip flops no cambian, bloqueándose o inhabilitándose el contador. 

Ahora si podemos verificar que las ecuaciones y el circuito lógico son totalmente coherentes.


Volviendo al diagrama de tiempos podemos observar que el contador dispone de una entrada de carga, LOAD, que de acuerdo a su diagrama de conexión corresponde al pin 11 del chip.

La carga o prefijación es asíncrona, es decir, independientemente del reloj, si LOAD = 0, los bits correspondientes en las entradas de datos paralelos DATA D, DATA C, DATA B y DATA A, se fijan en las salidas de los flip-flops QD, QC,QB,QA,  sin importar si ha llegado o no el flanco de subida del CLOCK.

Se pide al lector que deduzca las ecuaciones Booleanas para manejar las entradas asincrónicas o de control PRESET y CLEAR de los flip-flops T. Se puede observar en el diagrama lógico que el circuito es repetitivo, o sea basta deducirlo una vez y se aplica para los 4 flip-flops.


Adicionalmente, falta encontrar las ecuaciones Booleanas que describen los circuitos lógicos para las salidas del 74191:MAX/MIN  y RIPPLE CLOCK.