jueves, 22 de diciembre de 2016

TABLAS DE LA VERDAD DE LOS CIRCUITOS SECUENCIALES

Báscula o Latch RS (implementación con NOR)

S
R
Q
Q (sig)
Q' (sig)
Estado
0
0
0
0
1
(hold)
0
0
1
1
0
(hold)
0
1
X
0
1
(reset)
1
0
X
1
0
(set)
1
1
X
0
0
(?)

Báscula o Latch RS (implementación con NAND)

S'
R'
Q
Q (sig)
Q' (sig)
Estado
0
0
X
1
1
(?)
0
1
X
1
0
(set)
1
0
X
0
1
(reset)
1
1
0
0
1
(hold)
1
1
1
1
0
(hold)


Latch RS sincronizado

C
S
R
Q
Q (sig)
Estado
0
X
X
0
0
(inactivo)
0
X
X
1
1
(inactivo)
1
0
0
0
0
(hold)
1
0
0
1
1
(hold)
1
0
1
X
0
(reset)
1
1
0
X
1
(set)
1
1
1
X
NA
(?)

Latch D sincronizado

C
D
Q
Q (sig)
0
X
0
0
0
X
1
1
1
0
X
0
1
1
X
1

Flip-flop SR
S
R
Q (sig)
0
0
Q
0
1
0
1
0
1
1
1
NA

Flip-flop JK
J
K
Q (sig)
0
0
Q
0
1
0
1
0
1
1
1
Q'

Flip-flop D
D
Q (sig)
0
0
1
1

Flip-flop T
T
Q (sig)
0
Q
1
Q'

Latches con habilitación

*Latch SR con habilitación

EN
S
R
Q
Q (sig)
Estado
0
X
X
NC
NC
(no cambia)
1
0
0
NC
NC
(no cambia)
1
0
1
0
1
(reset)
1
1
0
1
0
(set)
1
1
1
1
1
(no válido)

*Latch D con habilitación

D
EN
Q
Q (sig)
Estado
0
0
Q
Q (sig)
(no cambia)
0
1
0
1
(reset)
1
0
Q
Q (sig)
(no cambia)
1
1
1
1
(set)

miércoles, 21 de diciembre de 2016

SIMBOLOGÍA DE LOS CIRCUITOS SECUENCIALES

Báscula o Latch RS (implementación con NOR)

Dos estados del latch:

* Estado de set (con Q = 1)
* Estado de reset (con Q = 0)



Báscula o Latch RS (implementación con NAND)




Latch RS sincronizado



Latch D sincronizado



Flip-flop SR


Flip-flop JK


Flip-flop D

Flip-flop T


Latch con entradas asíncronas



Flip-flop con entradas asíncronas


Flip-flop SR con entrada asíncrona


Flip-flop JK con entrada asíncrona


Flip-flop D con entrada asíncrona


Flip-flop T con entrada asíncrona


Latches con habilitación



ANÁLISIS DE CIRCUITOS SECUENCIALES

El proceso de análisis de un sistema secuencial, consiste en la generación de una descripción funcional a partir del diagrama lógico de un determinado circuito. La descripción funcional contendrá varios elementos:

a) Diagrama de estados del circuito.
b) Ecuaciones y tablas que definan el estado siguiente.
c) Ecuaciones y tablas que definan la salida del circuito.

Una vez obtenida la descripción funcional, es posible desarrollar cronogramas que permitan estudiar el comportamiento del sistema.

Análisis de sistemas de tipo Moore

Como ya se sabe, en estos circuitos las salidas no dependen del valor actual de las entradas, sino únicamente del estado actual.

El primer paso en el análisis será obtener las ecuaciones de entrada a cada biestable del circuito, las cuales serán denominadas ecuaciones de excitación, ya que determinan el valor de las entradas de los biestables del circuito. A continuación, hay que transformar dichas ecuaciones en las ecuaciones de estado siguiente características de cada biestable.

Posteriormente, se calcula la ecuación de salida, y como se habla de un circuito de tipo Moore, esta dependerá solo del estado actual del sistema, es decir, de las salidas de los biestables.

A partir de las ecuaciones de estado siguiente y de salida, se genera una tabla que refleje dicha información, y donde:

- Cada fila de la tabla corresponderá con un estado del circuito.
- Cada columna de la tabla representa un valor de las entradas.

Para facilitar la visualización del funcionamiento del circuito, se puede representar el contenido de la tabla a través de un diagrama de estados. Cada estado se representará con un círculo que contiene el valor de los biestables que representa y el valor de las salidas, mientras que las transiciones entre estados se representan como flechas entre los círculos, etiquetadas con el valor de las entradas que causa la transición.

De manera general, en un circuito con "m" biestables y "k" entradas, el número total de estados será 2 elevado a la cantidad de biestables, mientras que el número total de transiciones vendrá dado por 2 elevado a la cantidad de biestables por 2 elevado a la cantidad de entradas. (2^m * 2^k)

Análisis de sistemas de tipo Mealy

Como es bien sabido, en este tipo de circuitos, las salidas dependen del valor actual de las entradas y del estado actual.

El primer paso en el análisis de estos circuitos es obtener las ecuaciones de excitación que definen la entrada de cada biestable, para luego transformarlas en las ecuaciones de estado siguiente características de cada biestable. A continuación, se calcula la ecuación de salida, la cual en un circuito de este modelo, depende tanto del estado actual del sistema como de los valores actuales de las entradas del mismo. A partir de dichas ecuaciones, se genera la tabla de estado siguiente y de salida.

La principal diferencia de la tabla de Mealy con respecto a la de Moore, es que los valores de salida también dependen de los valores de entrada. De esta tabla, también se puede obtener el diagrama de estados, pero teniendo en cuenta que las salidas no se asocian con los estados, sino con las transiciones.

martes, 20 de diciembre de 2016

MODELOS DE CIRCUITOS SECUENCIALES

Dentro de los circuitos secuenciales de tipo síncrono, tienen lugar dos modelos que se presentan en las máquinas de estado finitos, puesto que la función de salida puede definirse de dos maneras distintas, como lo son el modelo de Mealy y el modelo de Moore.



Viendo un esquema general de un circuito secuencial de este tipo, se dice que su comportamiento se puede representar mediante una máquina de estados (FSM), la cual posee los siguientes elementos:

a) Χ = Entradas.
b) Υ = Salidas.
c) Z = Estados (Valores de los biestables, los cuales cambian con cada flanco del reloj).
d) δ = Funciones de estado (Funciones combinacionales de entrada de los biestables).
e) λ = Funciones de salida combinacionales.

Esta "Finite State Machine", puede definirse entonces como una secuencia de eventos en tiempos discretos, donde el estado Z cambia en cada estado al estar definido por δ. Veamos ahora, ya aclarados estos aspectos, cómo se presentan ambos modelos en estas máquinas de estado:


MODELO DE MOORE

Las salidas dependen únicamente de los estados, no de las entradas. El reloj y el reset no aparecen en las máquinas de estados, haciendo que la asociación entre estas señales en un circuito y la máquina de estados es que en cada flanco de reloj se produce una transición o cambio de estado, aunado a que el reset se utiliza únicamente para establecer el estado inicial. De la misma manera, en las máquinas de estados de Moore, las salidas cambian únicamente si hay un cambio de estado, dado que están sincronizadas con el reloj.

  • El cambio del estado Z viene dado por δ, es decir, Z = δ (X,Z).
  • El cambio de Y viene dado por λ, es decir, Y = λ (Z)

Estructura de un circuito asociado a un Modelo de Moore


Por otra parte, una FSM puede ser representada también por un diagrama de estados o STG, donde:
  • Cada estado se representa con un círculo.
  • Cada transición de estado se representa con una flecha.
  • Los diferentes valores de las entradas se representan en las flechas.
  • Las salidas se representan dentro de cada estado (en el caso del modelo de Moore)

Diagrama de Estados de Moore


MODELO DE MEALY

Las salidas dependen tanto de los estados como de las entradas y, al igual que en Moore, el reloj y el reset no aparecen en el STG porque están implícitos. También se diferencia del modelo de Moore en que las salidas pueden cambiar en cualquier momento, solo basta que cambie cualquier entrada del circuito.

  • El cambio del estado Z viene dado por δ, es decir, Z = δ (X,Z).
  • El cambio de Y viene dado por λ, es decir, Y = λ (X,Z)

Estructura de un circuito asociado a un Modelo de Mealy



  • Con respecto al diagrama de estados de Mealy, para su elaboración se toma en cuenta que:
  • Cada estado se representa con un círculo.
  • Cada transición de estado se representa con una flecha.
  • Los diferentes valores de las entradas se representan en las flechas.
  • Las salidas se representan también en las flechas (en el caso del modelo de Mealy, dependiendo del estado y las entradas)

Diagrama de Estados de Mealy

CARACTERÍSTICAS DE LOS CIRCUITOS SECUENCIALES

Dentro de la definición de los circuitos secuenciales, se hayan implícitas una serie de características inherentes a estos sistemas, pudiéndose destacar las siguientes:
  • Poseen uno o más caminos de realimentación, es decir, una o más señales internas o de salida se vuelven a introducir como señales de entrada, garantizando la dependencia de la operación con la secuencia anterior.
  • Existe una dependencia explícita del tiempo, la cual se produce en los lazos de realimentación, donde es necesario distinguir entre las salidas y las entradas realimentadas. Esa distinción se traduce en un retraso de ambas señales, el cual puede producirse mediante dos elementos.
a) Elementos de retraso: Es fijo e independiente de cualquier señal, ya sean explícitos o implícitos debido al retraso de la lógica combinacional.
b) Elementos de memoria: Son dispositivos que almacenan el valor de la entrada en un instante determinado, por una señal externa, y lo mantiene hasta que dicha señal ordene el almacenamiento de un nuevo valor.

La diferencia de comportamiento entre estos dos elementos radica en que la salida del elemento de retraso es una copia de la señal de entrada, mientras que el elemento de memoria copia determinados instantes de la entrada y no la señal completa, el resto del tiempo la salida no cambia de valor.

  • Si se consideran las señales de estado a la salida de los elementos de memoria, o lo que es lo mismo, a la entrada del bloque combinacional, se denominan señales de estado presente, ya que indican el estado en el que se encuentra el sistema para realizar una operación.
  • Si se consideran las señales de estado a la entrada de los elementos de memoria, o lo que es lo mismo, a la salida del bloque combinacional, se denominan señales de próximo estado, ya que indican el estado al que llegará después de que el bloque combinacional haya realizado la operación.

TIPOS DE CIRCUITOS SECUENCIALES

Al surgir los circuitos secuenciales, se presentó un problema, que radicaba en la determinación del momento en el que el próximo estado debía pasar a estado presente, sin capturar situaciones no deseadas como los azares. A este problema se le conoce como sincronización, y las soluciones aplicadas a él dieron lugar a una de las principales clasificaciones de estos sistemas, donde se dividen en dos categorías:


Sistemas asíncronos

Sistemas síncronos

La sincronización depende exclusivamente de los retrasos de la lógica combinacional, sin necesidad de ninguna señal externa al sistema.


Sus operaciones (denominadas "operación del caso medio") tienen efecto, es decir, se almacena el próximo estado en intervalos temporales diferentes, por lo que su velocidad de operación será distinta para cada secuencia de entradas.
La sincronización depende exclusivamente de una señal externa al sistema, conocida generalmente como "señal de reloj", la cual controlará el comportamiento de los elementos de memoria.

Sus operaciones (denominadas "operación del caso peor") tienen efecto en el mismo intervalo temporal, el dictaminado por el periodo de la señal de reloj. Por lo tanto, su velocidad de operación, siempre será la misma para todas las secuencias de entrada, y la cual deberá permitir que todas las operaciones tengan el tiempo para llevarse a cabo, estando limitada por la operación más lenta.

Veamos a mayor profundidad ambas categorías...

a) Sistemas asíncronos:

Los circuitos asíncronos también suelen denominarse "circuitos en modo fundamental" y una de sus principales características consiste en no permitir cambios simultáneos en las variables de entrada, a fin de evitar el fenómeno de carreras críticas entre variables de estado de entrada.
La estructura de este tipo de circuitos puede darse según los modelos de Mealy y de Moore, teniendo que para ambos casos, con el objeto de predecir el valor siguiente almacenado en cada lazo de realimentación de las variables internas, en función de las variables de entrada y el valor presente almacenado en cada lazo, será necesario abrir los lazos de realimentación.



Para el diseño de circuitos secuenciales asíncronos, se define una serie de pasos a seguir:

1) Construir una tabla primitiva del flujo de estados, partiendo de la descripción verbal o escrita del problema:

A cada posible estado del sistema, se le asigna un significado concreto relacionado con el problema, donde:

* Por cada fila de la tabla, solo se permitirá un solo estado estable, de manera que la salida será descrita en función del estado.
* Solo se permite por vez, el cambio de una sola variable de entrada, concediéndole el tiempo suficiente para que alcance un nuevo estado estable antes de producirse un cambio en las variables de entrada.
* La tabla tendrá estados extra, que posteriormente podrán ser reducidos.


2) Reducir el número de estados de la tabla:

Los criterios y métodos a utilizar son los mismos que en los circuitos síncronos, por lo que se dice que dos estados son equivalentes si:

* Todos sus estados siguientes tienen salidas iguales.
* Si los estados siguientes son diferentes, deberán conducir a estados equivalentes.

3) Seleccionar una asignación de códigos de estado libre de carreras críticas, agregando estados auxiliares si fuera necesario:

El objetivo es asignar a cada estado una combinación de variables internas, de manera tal que solo cambie una variable entre estados adyacentes. Una manera de determinar las adyacencias, es a través de los diagramas de estado.

4) Construir la tabla de transiciones:

Se procede de manera similar que para los circuitos síncronos, es decir, si la realización de las funciones de excitación son realizadas mediante lógica combinacional realimentada, la tabla de estados codificada se constituye en la tabla de transiciones; sin embargo, si se utiliza algún dispositivo de memoria, este también debe ser asíncrono (como el flip-flop SR), donde la tabla de transiciones se dará en función a la ecuación característica correspondiente.

5) Construir los mapas de excitación y determinar la realización libre de riesgos en las ecuaciones de excitación:

De las tablas de transición libre de carreras, mediante la utilización del método de Karnaugh para la reducción de funciones lógicas, se obtienen las funciones lógicas con las que se implementarán los circuitos lógicos realimentados, o en otro caso, los circuitos de excitación para las entradas de los flip-flop con los que se realizará el circuito correspondiente.


6) Dibujar el diagrama lógico.


7) Verificar la existencia de posibles riesgos esenciales, asegurándose de que los tiempos mínimos de excitación y realimentación sean más largos que los retrasos en la lógica de entrada:

Para que un circuito en modo fundamental trabaje de la forma adecuada, debe satisfacer los siguientes requisitos:

* Las variables de entrada solo deben cambiar una por vez, debiendo existir un límite mínimo entre cambios sucesivos.
* Existe un tiempo máximo de propagación a través de la lógica de excitación y las rutas de realimentación, el cual debe ser menor que el tiempo entre cambios de entrada sucesivos.

* La asignación de estados debe estar libre de carreras críticas.
* La lógica de excitación debe estar libre de riesgos.
* El tiempo de propagación mínimo, a través de la lógica de excitación y rutas de realimentación, debe ser mayor que el retardo máximo de tiempo a través de la lógica de entrada.

b) Sistemas síncronos:

Son el tipo de circuito más utilizado en la práctica, puesto que son relativamente sencillos de diseñar. En un sistema de este tipo, la tabla de transición solo se cumple cuando se activa la señal del reloj, por lo que aunque en las entradas haya una combinación de señales que conduzca a una transición de estado, ésta no se producirá hasta que se active la señal de reloj, y no volverá a producirse una nueva transición hasta que se active de nuevo la señal de reloj.

El elemento de memoria básico dentro de este tipo de sistemas es el biestable (también conocido como flip-flops), el cual es un dispositivo binario que almacena el estado 0 o el estado 1.


Cabe destacar que el cambio de las variables internas, dentro de un circuito secuencial síncrono, se puede producir de dos maneras:

1) Por niveles: Sucede cuando permiten que las variables de entrada actúen sobre el sistema en el instante en el que la señal de reloj toma un determinado nivel lógico (0 o 1).
2) Por flancos (o cambios de nivel): Sucede cuando la acción de las variables de entrada sobre el sistema, se produce cuando existe un flanco activo del reloj, el cual puede ser de subida (cambio de 0 a 1) o de bajada (cambio de 1 a 0).

Para diseñar circuitos secuenciales síncronos, se puede seguir una serie sencilla de pasos:

1) Partir de las especificaciones de funcionamiento, donde se puede incluir un diagrama de flujo.

2) Obtener la tabla de estados.

3) Reducir el número de estados (opcional).

4) Asignar valores binarios a cada estado de la tabla para obtener la tabla de transición.

5) Determinar el número de flip-flops necesarios y asignar un símbolo a cada uno.

6) Escoger el tipo de flip-flop a utilizar.

7) Mediante la tabla de transición, derivar las entradas de los biestables (tabla de excitación) y las salidas. Estas suelen ser funciones combinacionales.

8) Simplificar las funciones mediante métodos como Karnaugh, McCluskey, entre otros; o construirlas usando dispositivos MSI o PLDs.

9) Dibujar el diagrama lógico.

Ambos tipos de operaciones pueden ser modelados de la misma forma, es decir, con lógica combinacional y retroalimentaciones a través de los elementos de memoria; pero la diferencia radica en el control de estos elementos, puesto que en el caso síncrono los elementos son controlados por una señal externa, mientras que en los sistemas asíncronos esta señal no existe o es generada por el propio circuito.


lunes, 19 de diciembre de 2016

DEFINICIÓN DE CIRCUITOS SECUENCIALES

Son sistemas digitales que introducen la dependencia temporal, siendo conocidos de manera más rigurosa como circuitos bivaluados, en los cuales, la salida en cualquier instante depende de las entradas en dicho instante y de la historia pasada, o secuencia de entradas.

La dependencia de esta historia puede ser ventajosa, e incluso necesaria, para algunas aplicaciones en las que es necesario recordar una determinada situación. Algunos ejemplos de esta ventaja pueden ser:

  • La creación de un reloj, que es modelada con la afirmación "la salida será el valor complementario de su valor anterior".
  • La creación de un contador, que es modelada con la afirmación "la salida será el resultado de sumar uno a su valor anterior".
Cabe destacar, que la salida del elemento de retraso es una copia de la señal de entrada en un determinado tiempo, mientras que la salida del elemento de memoria copia los valores de la entrada cuando la señal de control tiene una transición de subida, por lo que la copia no es exacta, sino que sólo copia lo que le interesa.

De esta manera, el modelo clásico de un sistema secuencial consta de un bloque combinacional, que generará la función lógica que se quiera realizar, y un grupo de elementos de memoria con una serie de señales realimentadas.


En la figura anterior, la cual representa un modelo de sistema secuencial, se pueden distinguir tres tipos de señales: señales de entrada, señales de salida y señales de estado; donde las señales de entrada y de salida tendrán el mismo significado que poseen dentro de un sistema combinacional, mientras que las señales de estado serán las que mantengan la información de la historia pasada del sistema.