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. |
pues gracias!! CDMX
ResponderEliminar