Está en la página 1de 27

REPÚBLICA BOLIVARIANA DE VENEZUELA

INSTITUTO UNIVERSITARIO POLITÉCNICO


“SANTIAGO MARIÑO”
EXTENSIÓN MARACAY

Electrónica Digital
Lógica Secuencial
Síncrona y Asíncrona

Docente: Elaborado por:


Ing. Demian Ávila. Esleiter Jose Fajardo Laya.
CI: V28316590.
Escuela: 47.

Julio 2023.
Índice
Introducción.............................................................................................. 5
Lógica secuencial síncrona ...................................................................... 6
Circuitos Secuenciales Síncronos ............................................................ 6
Características principales ................................................................ 6
Elementos de memoria ................................................................................. 6
Señal de reloj................................................................................................ 7
Ciclo de reloj ................................................................................................. 7
Sincronización .............................................................................................. 7
Diagramas de estado ............................................................................... 7
Flip-flop .................................................................................................... 8
Tipos ................................................................................................. 8
Flip-flop D: .................................................................................................... 8
Flip-flop JK:................................................................................................... 8
Tabla de estados...................................................................................... 9
Diseño de registros .................................................................................. 9
Pasos básicos para el diseño de registros: ..................................... 10
Definir los requisitos del registro: ................................................................ 10
Seleccionar el tipo de flip-flop: .................................................................... 10
Determinar el tamaño del registro: .............................................................. 10
Definir las entradas y salidas: ..................................................................... 10
Realizar el diagrama de estados:................................................................ 10
Realizar el diseño de circuito: ..................................................................... 10
Simular y verificar: ...................................................................................... 10
Implementar físicamente el registro: ........................................................... 10
Diseño de contadores ............................................................................ 11
Pasos básicos para el diseño de registros: ..................................... 11
Definir las especificaciones del contador: ................................................... 11
Seleccionar el tipo de contador: .................................................................. 11
Determinar el número de bits: ..................................................................... 11
Elegir el tipo de flip-flop:.............................................................................. 11
Realizar el diagrama de estados:................................................................ 11
Diseñar el circuito del contador: .................................................................. 12
Simular y verificar: ...................................................................................... 12
Implementar físicamente el contador: ......................................................... 12
Uso de los Registros y Contadores ........................................................ 12
Usos de los registros ...................................................................... 12
Almacenamiento temporal de datos: ........................................................... 12

2
Desplazamiento de datos: .......................................................................... 12
Búferes de memoria: .................................................................................. 12
Interfaz con periféricos: .............................................................................. 13
Control de estado: ...................................................................................... 13
Usos de los contadores................................................................... 13
Medición del tiempo: ................................................................................... 13
Conteo de eventos:..................................................................................... 13
Generación de frecuencia y división de frecuencia: .................................... 13
Sincronización y secuenciación: ................................................................. 13
Dirección de memoria: ................................................................................ 13
Generación de señales periódicas: ............................................................. 13
Lógica Secuencial Asíncrona ................................................................. 13
Características y componentes comunes ....................................... 14
Elementos de memoria: .............................................................................. 14
Circuitos de realimentación: ........................................................................ 14
Problemas de temporización: ..................................................................... 14
Secuenciadores y máquinas de estado: ..................................................... 14
Handshaking y protocolos de comunicación: .............................................. 14
Procedimiento de Análisis y diseño........................................................ 15
Circuitos con seguros............................................................................. 16
Handshaking y protocolos de comunicación ................................... 16
Monitoreo de estados y temporización ........................................... 16
Detección de errores y paradas de emergencia ............................. 17
Registros de desplazamiento con bloqueo ..................................... 17
Contadores con límites y reinicio seguro ........................................ 17
Circuitos de arranque y reinicio suave ............................................ 17
Control de estados y máquinas de estado finito seguras ................ 17
Detección de errores de paridad o código de detección y corrección
.......................................................................................................... 17
Reducción de las tablas de estado y flujo .............................................. 18
Reducción de Tablas de Estado: .................................................... 18
Identificar estados redundantes: ................................................................. 18
Agrupar estados equivalentes: ................................................................... 18
Minimización de estados con Mapas de Karnaugh: .................................... 18
Reducción de Tablas de Flujo (Diagramas de Estados): ................ 18
Eliminar transiciones innecesarias: ............................................................. 18
Fusionar estados con transiciones comunes: ............................................. 19
Utilizar transiciones de autoretorno: ............................................................ 19
Optimización de las condiciones de transición: ........................................... 19

3
Asignación de estados libre de carreras ................................................ 19
Asignación de códigos únicos ......................................................... 19
Evitar transiciones simultáneas ....................................................... 20
Evitar cambios de estados inesperados ......................................... 20
Realizar simulaciones y análisis de temporización ......................... 20
Riesgo .................................................................................................... 20
Riesgo de Carrera (Race Hazard) .................................................. 20
Riesgo de Salto o de Cambio de Estado (Glitch) ............................ 21
Ejemplo de diseño con lógica secuencial asíncrona .............................. 22
Tabla de Estados: ........................................................................... 22
Diseño del Contador Asíncrono de 2 bits: ....................................... 22
Diferencias entre los Circuitos Secuenciales Asíncronos y los Síncronos
................................................................................................................. 23
Circuitos Secuenciales Síncronos ................................................... 23
Circuitos Secuenciales Asíncronos ................................................. 23
Conclusión ............................................................................................. 25
Referencias bibliográficas ...................................................................... 27

4
Introducción
La lógica secuencial, en sus modalidades síncrona y asíncrona,
desempeña un rol crucial en el diseño y funcionamiento de sistemas
digitales complejos. Estos circuitos permiten el almacenamiento temporal
de información y la realización de operaciones secuenciales, siendo
fundamentales para una amplia gama de aplicaciones, desde contadores
y registros hasta sistemas de control y procesadores.

En este estudio exhaustivo, exploraremos a fondo la lógica secuencial


síncrona y asíncrona, analizando en detalle sus principios fundamentales,
características y aplicaciones. Comenzaremos por adentrarnos en el
mundo de la lógica secuencial síncrona, donde examinaremos su
funcionamiento esencial y cómo los circuitos secuenciales síncronos se
definen mediante tablas de estado. Además, estudiaremos los diferentes
tipos de circuitos secuenciales síncronos y sus aplicaciones más comunes.

Continuando, exploraremos los flip-flops, los componentes básicos en


los circuitos secuenciales síncronos, aprendiendo acerca de su definición,
tabla de estado y, en particular, el famoso flip-flop JK.

Luego, abordaremos el diseño de registros y contadores, elementos


esenciales para el almacenamiento de datos y el conteo en sistemas
electrónicos. Analizaremos detalladamente cómo se diseñan y cómo se
emplean en diversos contextos.

La lógica secuencial asíncrona también será objeto de estudio,


examinando sus conceptos fundamentales, el procedimiento de análisis y
cómo los circuitos con seguros se utilizan para prevenir daños y
garantizar un funcionamiento seguro.

Asimismo, estudiaremos técnicas de reducción de tablas de estado y


flujo, así como la asignación de estados libre de carreras, con el fin de
optimizar la eficiencia y confiabilidad en el diseño de circuitos
secuenciales.

Dedicaremos un apartado especial a los riesgos asociados con la lógica


secuencial y cómo mitigarlos para evitar comportamientos imprevistos o
potencialmente peligrosos.

Finalmente, culminaremos con un ejemplo práctico de diseño utilizando


lógica secuencial asíncrona, brindando la oportunidad de aplicar los
conocimientos adquiridos y comprender cómo se implementan estos
conceptos en situaciones reales.

5
Lógica secuencial síncrona
Se refiere a un tipo de diseño de circuitos digitales donde las
operaciones o acciones se llevan a cabo en secuencia y de manera
sincronizada mediante una señal de reloj común. En este contexto,
"secuencial" significa que el comportamiento del circuito depende del
estado anterior y de las entradas presentes, mientras que "síncrona"
indica que las operaciones del circuito se sincronizan mediante una señal
de reloj compartida.

En un sistema de lógica secuencial síncrona, el reloj actúa como un


mecanismo para coordinar y sincronizar la propagación de señales y el
cambio de estados dentro del circuito. La señal de reloj establece un ritmo
constante y regular para el funcionamiento del circuito, dividiendo el
tiempo en intervalos llamados ciclos de reloj.

Durante cada ciclo de reloj, las señales de entrada se capturan, y el


estado actual del circuito se actualiza basándose en su estado anterior y
las condiciones de entrada presentes. Esto asegura que todas las partes
del circuito respondan y se actualicen de manera ordenada y sincronizada,
evitando problemas como carreras y conflictos en los datos.

Los diseños de lógica secuencial síncrona son ampliamente utilizados en


la industria de los circuitos digitales, ya que permiten construir sistemas
complejos y fiables con un comportamiento predecible. Sin embargo,
también es importante tener en cuenta la velocidad y el tiempo de
propagación de las señales en estos sistemas, ya que pueden afectar el
rendimiento general del diseño. Para abordar estos problemas, los
ingenieros deben optimizar el diseño y tener en cuenta las limitaciones de
velocidad del hardware y las condiciones de sincronización.

Circuitos Secuenciales Síncronos


Son un tipo de circuitos digitales que operan de manera secuencial y
están sincronizados mediante una señal de reloj. Estos circuitos son
fundamentales en la electrónica digital, ya que permiten almacenar y
manipular información en forma de secuencias de bits. Son ampliamente
utilizados en una variedad de aplicaciones, como microprocesadores,
memorias, registros, contadores y otros dispositivos lógicos.

Características principales
Elementos de memoria
Estos circuitos incluyen elementos de memoria, como flip-flops
(biestables) o latches (biestables transparentes), que pueden almacenar y

6
retener información binaria (0 o 1). Cada uno de estos elementos de
memoria tiene dos estados estables que representan los dos posibles
valores lógicos.

Señal de reloj
La operación de los circuitos secuenciales síncronos se controla
mediante una señal de reloj, que oscila a una frecuencia constante y
determina el ritmo de funcionamiento del circuito. Los cambios en los
elementos de memoria y las operaciones lógicas dentro del circuito
ocurren en los flancos de subida o bajada de la señal de reloj.

Ciclo de reloj
Cada ciclo de reloj representa un intervalo de tiempo en el que se lleva a
cabo una operación completa del circuito. Durante cada ciclo de reloj, las
entradas del circuito se capturan y los elementos de memoria se
actualizan basándose en sus estados anteriores y las entradas presentes.

Sincronización
La sincronización mediante la señal de reloj asegura que todas las
partes del circuito respondan y se actualicen de manera ordenada y
predecible. Esto evita problemas como carreras y conflictos en los datos
que podrían surgir en circuitos asíncronos.

Diagramas de estado
Para diseñar y entender los circuitos secuenciales, los ingenieros a
menudo utilizan diagramas de estado, que representan los diferentes
estados en los que puede estar el circuito y las transiciones entre ellos en
función de las entradas y la señal de reloj. Los estados del circuito
aparecen en círculos junto con la salida correspondiente y las transiciones
de estado se indican mediante flechas. Cada flecha se rotula con el valor
de las entradas que provocan dicha transición. A partir de estas
definiciones se puede generalizar el concepto de Diagrama de Estados
para el caso de un S.S.S tal y como se muestra en la figura.

7
Flip-flop
También conocido como biestable, es un tipo de circuito secuencial que
puede almacenar un bit de información (0 o 1) y cambiar de estado en
función de las señales de entrada y la señal de reloj. Es uno de los
elementos básicos de memoria en la electrónica digital y se utiliza
ampliamente en la construcción de registros, contadores, memorias y
otros circuitos secuenciales.

Tipos
Existen varios, pero los dos más comunes son el flip-flop D y el flip-flop
JK:

Flip-flop D: el flip-flop D tiene una entrada de datos (D) y una entrada de


reloj (CLK). Cuando la señal de reloj cambia de estado (por ejemplo, de 0
a 1 o de 1 a 0, dependiendo del tipo de flip-flop), el valor presente en la
entrada D se "copia" en la salida del flip-flop (Q). En otras palabras, la
salida Q toma el valor de la entrada D en el momento del flanco de reloj.
Si se activa una entrada de reloj negada (CLK), el flip-flop D será sensible
al flanco de bajada en lugar del flanco de subida.

Flip-flop JK: el flip-flop JK tiene dos entradas de datos (J y K) y una


entrada de reloj (CLK). Dependiendo del estado actual del flip-flop y los
valores de las entradas J y K, la salida Q y su complemento (Q') pueden
cambiar durante el flanco de reloj. El comportamiento del flip-flop JK
puede variar según cómo se conecten sus entradas y la señal de reloj.

8
Además de los tipos mencionados, existen otros tipos de flip-flops, como
el flip-flop SR (Set-Reset), el flip-flop T (Toggle), entre otros. Cada tipo de
flip-flop tiene sus propias características y aplicaciones específicas.

Los flip-flops son fundamentales para el almacenamiento temporal de


información en circuitos digitales y son la base para la construcción de
registros, contadores y memorias. Su uso permite la implementación de la
lógica secuencial y la realización de diversas operaciones y cálculos en
sistemas electrónicos.

Tabla de estados
Es otra manera de rescribir el funcionamiento de un circuito secuencial. A
partir del Diagrama de Estados se genera la Tabla de Estados que tiene
en su eje vertical todos los estados en los que se pueda encontrar el
sistema (Estados Actuales) y en su eje horizontal todos los valores que
puedan tomar las entradas. La tabla se completará con el estado al que
evoluciona el sistema (Siguiente Estado) ante una entrada dada partiendo
de un estado actual. Una representación genérica se muestra en la figura.

Diseño de registros
Es una parte fundamental en la construcción de circuitos secuenciales.
Los registros son dispositivos de almacenamiento que consisten en un
conjunto de flip-flops interconectados para almacenar y manipular
información en forma de secuencias de bits. Son ampliamente utilizados
en microprocesadores, unidades de memoria, controladores y otros
sistemas digitales para realizar diversas funciones, como almacenar datos,
contar eventos y retener estados de control.

9
Pasos básicos para el diseño de registros:
Definir los requisitos del registro: antes de comenzar el diseño, es
importante determinar qué tipo de registro se necesita y cuáles serán sus
funciones específicas. Por ejemplo, ¿necesitas un registro de
desplazamiento, un contador o un registro de almacenamiento temporal
para datos? Establecer los requisitos claros ayudará a orientar el diseño.

Seleccionar el tipo de flip-flop: dependiendo de los requisitos del


registro, selecciona el tipo adecuado de flip-flop que se utilizará como
elemento de memoria. Los tipos más comunes son el flip-flop D, el flip-flop
JK y el flip-flop T. Cada uno tiene sus propias características y ventajas,
así que elige el que mejor se adapte a tus necesidades.

Determinar el tamaño del registro: decide la cantidad de bits que


tendrá el registro. La elección del tamaño dependerá del rango de valores
que se desee almacenar y de la complejidad de las operaciones que se
realizarán con los datos almacenados.

Definir las entradas y salidas: especifica las entradas y salidas que


tendrá el registro. Por lo general, los registros tienen una entrada de datos
para cargar información, una entrada de reloj para sincronizar las
operaciones y una o más salidas para obtener los datos almacenados.

Realizar el diagrama de estados: si el registro tiene una funcionalidad


más compleja, como un contador o un registro de desplazamiento, es útil
realizar un diagrama de estados. Este diagrama muestra los diferentes
estados en los que puede estar el registro y las transiciones entre ellos en
función de las señales de entrada y el reloj.

Realizar el diseño de circuito: con base en los pasos anteriores, realiza


el diseño del circuito del registro. Esto implica interconectar los flip-flops
de manera apropiada, conectar las señales de entrada y salida, y agregar
cualquier lógica adicional requerida para realizar las operaciones
deseadas.

Simular y verificar: antes de implementar físicamente el circuito, es


recomendable realizar simulaciones para verificar el funcionamiento y
detectar posibles errores en el diseño. Las herramientas de simulación
digital son útiles para este propósito.

Implementar físicamente el registro: una vez que el diseño ha sido


verificado, puedes proceder a implementar físicamente el registro en un
circuito integrado o en un protoboard, según el alcance del proyecto.

10
El diseño de registros puede ser tan sencillo como un registro de
desplazamiento de un solo bit o tan complejo como un microprocesador
con múltiples registros y funciones. La elección del diseño adecuado
dependerá de las necesidades específicas del sistema digital que estés
desarrollando.

Diseño de contadores
Es un proceso clave en la construcción de circuitos secuenciales que
tienen la función de contar eventos o secuencias de pulsos. Los
contadores son una aplicación común de los registros y se utilizan en
diversas áreas, como electrónica digital, sistemas de control,
microprocesadores y más.

Pasos básicos para el diseño de registros:


Definir las especificaciones del contador: antes de comenzar el
diseño, es importante definir claramente las especificaciones del contador.
¿Qué rango de valores debe contar el contador? ¿Debería ser
ascendente o descendente? ¿Tiene que reiniciarse o detenerse en algún
valor específico? Estas preguntas ayudarán a determinar el tipo de
contador adecuado para tu aplicación.

Seleccionar el tipo de contador: hay varios tipos de contadores, siendo


los más comunes el contador ascendente (UP-counter) y el contador
descendente (DOWN-counter). Los contadores ascendentes incrementan
su valor con cada pulso de reloj, mientras que los contadores
descendentes lo reducen. Además, existen contadores síncronos (todos
los flip-flops están sincronizados a una señal de reloj común) y contadores
asíncronos (los flip-flops se sincronizan individualmente).

Determinar el número de bits: decide cuántos bits necesitas para el


contador en función del rango de valores que debe contar. Por ejemplo, si
necesitas contar hasta 100, necesitarás un contador de al menos 7 bits
(2^7 = 128). También ten en cuenta si necesitas algún bit adicional para
tareas específicas, como reiniciar el contador o detenerlo en cierto valor.

Elegir el tipo de flip-flop: selecciona el tipo de flip-flop que mejor se


adapte a tus necesidades. Los flip-flops D y JK son los más comunes en
contadores, pero también puedes utilizar otros tipos según la aplicación.

Realizar el diagrama de estados: si el contador tiene una funcionalidad


más compleja, como contar en ciertos intervalos o tener un
comportamiento especial en ciertos estados, es útil realizar un diagrama

11
de estados. Este diagrama muestra los diferentes estados del contador y
las transiciones entre ellos en función de las señales de entrada y el reloj.

Diseñar el circuito del contador: con base en los pasos anteriores,


realiza el diseño del circuito del contador. Esto implica interconectar los
flip-flops de manera apropiada, conectar las señales de entrada (pulsos
de reloj) y agregar cualquier lógica adicional necesaria para realizar las
funciones específicas del contador.

Simular y verificar: antes de implementar físicamente el circuito, realiza


simulaciones para verificar que el contador funcione correctamente. Utiliza
herramientas de simulación digital para observar el comportamiento del
contador en diferentes escenarios.

Implementar físicamente el contador: una vez que el diseño ha sido


verificado, puedes proceder a implementar físicamente el contador en un
circuito integrado o en un protoboard, según el alcance del proyecto.

El diseño de contadores puede variar en complejidad según las


funciones específicas requeridas. Algunos contadores son muy simples,
mientras que otros pueden ser parte integral de sistemas más complejos.
La elección del diseño adecuado dependerá de las necesidades y
requerimientos de la aplicación particular.

Uso de los Registros y Contadores


Los registros y contadores son componentes fundamentales en la
electrónica digital y tienen diversas aplicaciones en una amplia gama de
sistemas.

Usos de los registros


Almacenamiento temporal de datos: los registros se utilizan para
almacenar datos temporales antes de que se procesen o se envíen a
otros componentes del sistema.

Desplazamiento de datos: los registros de desplazamiento permiten


mover datos de una posición a otra dentro de un registro o entre registros,
lo que es útil en operaciones como el desplazamiento de bits y la
conversión de datos.

Búferes de memoria: los registros pueden funcionar como búferes


temporales para permitir una transferencia de datos más fluida entre
diferentes partes del sistema.

12
Interfaz con periféricos: en la comunicación con dispositivos externos,
los registros pueden utilizarse para almacenar datos de entrada o salida
antes de ser transferidos entre el microprocesador y el periférico.

Control de estado: los registros pueden utilizarse para almacenar y


cambiar estados en sistemas secuenciales, como máquinas de estados
finitos o en sistemas de control.

Usos de los contadores


Medición del tiempo: los contadores se utilizan para medir el tiempo
transcurrido, ya sea en segundos, milisegundos o ciclos de reloj.

Conteo de eventos: los contadores se utilizan para contar eventos


físicos o señales de entrada, como el número de pulsos, objetos, ciclos de
señal, etc.

Generación de frecuencia y división de frecuencia: los contadores


pueden generar frecuencias precisas y se utilizan para dividir la
frecuencia de una señal de reloj para obtener frecuencias más bajas.

Sincronización y secuenciación: los contadores se utilizan para


sincronizar y secuenciar las operaciones en sistemas digitales complejos,
como en microprocesadores y sistemas de control.

Dirección de memoria: en algunos sistemas, los contadores se utilizan


para direccionar posiciones de memoria y permitir acceso a diferentes
ubicaciones de almacenamiento.

Generación de señales periódicas: los contadores pueden generar


secuencias de pulsos o señales periódicas utilizadas en diversas
aplicaciones, como generadores de reloj, generadores de ondas y
secuenciadores de eventos.

En resumen, los registros y contadores son componentes esenciales en


el diseño de sistemas digitales. Su versatilidad les permite cumplir una
amplia variedad de funciones, desde el almacenamiento y manipulación
de datos hasta la medición del tiempo y la generación de señales. Su uso
adecuado y efectivo puede llevar a la creación de sistemas complejos y
funcionales en el campo de la electrónica digital.

Lógica Secuencial Asíncrona


Es un tipo de diseño de circuitos digitales donde las operaciones o
acciones dependen del estado anterior y de las señales de entrada, pero

13
no están sincronizadas mediante una señal de reloj común. A diferencia
de la lógica secuencial síncrona, que utiliza una señal de reloj para
sincronizar y coordinar las operaciones, la lógica secuencial asíncrona se
basa en cambios de señal y eventos para activar y propagar las
operaciones dentro del circuito.

En la lógica secuencial asíncrona, las señales de entrada pueden activar


y cambiar el estado del circuito en cualquier momento, y la propagación
de las señales ocurre de manera inmediata una vez que se cumplen
ciertas condiciones. Esto puede dar lugar a problemas de temporización y
comportamiento no deseado si no se maneja adecuadamente.

Características y componentes comunes


Elementos de memoria: al igual que en la lógica secuencial síncrona,
se utilizan elementos de memoria, como flip-flops o latches, para
almacenar información y mantener estados.

Circuitos de realimentación: los circuitos de realimentación son


esenciales en la lógica secuencial asíncrona, ya que permiten que el
estado actual del circuito afecte a las operaciones futuras y, por lo tanto,
influyen en el comportamiento secuencial.

Problemas de temporización: debido a que las operaciones no están


sincronizadas por una señal de reloj, los circuitos asíncronos pueden ser
sensibles a las diferencias de tiempo entre las señales de entrada, lo que
puede llevar a problemas de temporización y a situaciones de carrera.

Secuenciadores y máquinas de estado: los secuenciadores y las


máquinas de estado son componentes comunes en la lógica secuencial
asíncrona, ya que ayudan a controlar y coordinar las secuencias de
operaciones.

Handshaking y protocolos de comunicación: en sistemas de lógica


secuencial asíncrona, es común utilizar protocolos de handshaking para
garantizar una comunicación segura entre circuitos.

Aunque la lógica secuencial asíncrona tiene sus aplicaciones y ventajas,


también presenta desafíos significativos en términos de temporización y
diseño. Los circuitos asíncronos requieren un enfoque más cuidadoso en
el diseño para evitar problemas de carrera, que ocurren cuando dos o
más señales intentan cambiar el estado del circuito al mismo tiempo.

En general, los circuitos secuenciales asíncronos se utilizan en


aplicaciones específicas donde la sincronización a través de una señal de
reloj no es posible o no es deseada, pero requieren una mayor atención al

14
diseño y a los aspectos de temporización para garantizar su correcto
funcionamiento.

Procedimiento de Análisis y diseño


El análisis de la lógica secuencial asíncrona implica estudiar el
comportamiento y el funcionamiento de los circuitos digitales que no están
sincronizados mediante una señal de reloj común. Este análisis es
fundamental para comprender cómo se propagan las señales y cómo se
mantienen los estados en estos circuitos. Aquí tienes un procedimiento
básico para el análisis de la lógica secuencial asíncrona:

Identificar los elementos de memoria: Identifica los elementos de


memoria utilizados en el circuito, como flip-flops o latches. Estos
elementos son los que almacenan información y determinan el estado
actual del circuito.

Definir las entradas y salidas: Identifica las señales de entrada y las


salidas del circuito. Las señales de entrada son aquellas que pueden
cambiar el estado del circuito, y las salidas son las que indican el estado
actual o el resultado de las operaciones.

Realizar un diagrama de estados: Si el circuito tiene una funcionalidad


más compleja, como una máquina de estado finito, realiza un diagrama de
estados que muestre los diferentes estados en los que puede estar el
circuito y las transiciones entre ellos. Esto te ayudará a visualizar cómo se
comporta el circuito en función de las entradas.

Estudiar las condiciones de activación: Analiza las condiciones bajo las


cuales se activan o desactivan las operaciones en el circuito. Identifica las
señales que pueden cambiar el estado de los elementos de memoria o
activar operaciones específicas.

Evaluar la propagación de señales: Estudia cómo se propagan las


señales a través del circuito. Determina el tiempo que toma para que una
señal afecte a otra parte del circuito y cómo se propagan los cambios de
estado.

Buscar problemas de temporización: Dado que la lógica secuencial


asíncrona no está sincronizada por una señal de reloj, es importante
buscar posibles problemas de temporización, como carreras o conflictos
en los datos. Estos problemas pueden surgir cuando dos señales intentan
cambiar el estado del circuito al mismo tiempo.

Realizar simulaciones y análisis de tiempos: Utiliza herramientas de


simulación digital para evaluar el comportamiento del circuito en

15
diferentes escenarios y verificar que funcione correctamente. También
realiza análisis de tiempos para asegurarte de que no haya conflictos en
las señales.

Implementar técnicas de sincronización (opcional): En algunos casos, es


posible implementar técnicas de sincronización para mejorar el
funcionamiento y la fiabilidad del circuito. Esto podría incluir el uso de
señales de handshaking, señales de espera o protocolos de comunicación
más complejos.

Verificar y validar el diseño: Finalmente, verifica y valida el diseño para


asegurarte de que cumpla con los requisitos y funcione correctamente en
todas las condiciones.

El análisis de la lógica secuencial asíncrona puede ser más complejo


que el de la lógica secuencial síncrona debido a la falta de sincronización,
pero con un enfoque cuidadoso y la comprensión de las características
del circuito, es posible diseñar y evaluar circuitos asíncronos de manera
efectiva.

Circuitos con seguros


En circuitos con lógica secuencial, es común incluir seguros o medidas
de seguridad para proteger el sistema contra fallos o comportamientos
inesperados. Estas protecciones son especialmente importantes en
aplicaciones críticas o en sistemas donde un mal funcionamiento podría
tener consecuencias graves. A continuación, se mencionan algunas de
las medidas de seguridad que pueden implementarse en circuitos con
lógica secuencial:

Handshaking y protocolos de comunicación


En sistemas donde se realizan transferencias de datos entre
componentes, es útil implementar protocolos de handshaking para
asegurarse de que la comunicación sea confiable y evitar problemas
como pérdida de datos o sobrecargas.

Monitoreo de estados y temporización


En circuitos secuenciales, es importante monitorear los estados y las
señales temporales para asegurarse de que el sistema esté funcionando
correctamente. Se pueden utilizar circuitos de monitoreo para verificar si
el sistema está en el estado esperado y tomar acciones si detecta un
comportamiento inesperado.

16
Detección de errores y paradas de emergencia
Se pueden implementar circuitos para detectar errores, como
condiciones de carrera o conflictos en los datos, y activar paradas de
emergencia para evitar daños en el circuito o en los componentes
conectados.

Registros de desplazamiento con bloqueo


En ciertos sistemas, se pueden utilizar registros de desplazamiento con
bloqueo (latches con habilitación) para asegurarse de que los datos se
capturen de manera segura en el registro antes de proceder con las
operaciones siguientes.

Contadores con límites y reinicio seguro


Si se utilizan contadores en el diseño, es posible incluir límites para
asegurarse de que no se excedan ciertos valores y reiniciar el contador de
manera segura cuando sea necesario.

Circuitos de arranque y reinicio suave


En sistemas que requieren un tiempo de arranque o reinicio, se pueden
implementar circuitos para asegurarse de que los componentes se activen
gradualmente, evitando corrientes y tensiones excesivas que puedan
dañarlos.

Control de estados y máquinas de estado finito seguras


Implementar máquinas de estado finito (FSM) con control de estados
adecuado y transiciones seguras para evitar situaciones inesperadas o
estados no deseados.

Detección de errores de paridad o código de detección y corrección


En sistemas que transmiten datos, se pueden implementar técnicas de
detección y corrección de errores, como códigos de paridad, para
asegurar la integridad de los datos transmitidos.

Es importante destacar que las medidas de seguridad y protecciones


pueden variar según el tipo de aplicación y los riesgos asociados. El
diseño de circuitos con lógica secuencial y seguros implica un análisis

17
detallado y una planificación adecuada para garantizar el funcionamiento
seguro y confiable del sistema en todas las condiciones previstas.
Además, se deben considerar las normas y estándares de seguridad
relevantes para cada aplicación específica.

Reducción de las tablas de estado y flujo


En el diseño de circuitos secuenciales, como máquinas de estado finito o
contadores, es una técnica que permite simplificar y optimizar la lógica del
circuito. Al reducir estas tablas, se disminuye el número de estados y las
transiciones necesarias, lo que puede llevar a un diseño más eficiente y
fácil de implementar. A continuación, se describen las técnicas de
reducción para cada tipo de tabla:

Reducción de Tablas de Estado:


Las tablas de estado representan el comportamiento del circuito en
función de las entradas y el estado actual. Para reducir estas tablas,
puedes seguir los siguientes pasos:

Identificar estados redundantes: si hay estados que no se utilizan o


que conducen a los mismos resultados, puedes eliminarlos. Esto reduce
el número total de estados necesarios en el circuito.

Agrupar estados equivalentes: agrupa estados que tienen el mismo


comportamiento y las mismas transiciones para reducir el tamaño de la
tabla. Utiliza técnicas como el método de partición o el algoritmo de
equivalencia de estados para identificar y agrupar estados equivalentes.

Minimización de estados con Mapas de Karnaugh: puedes aplicar la


técnica de Mapas de Karnaugh para simplificar la lógica de los estados y
reducir la cantidad de bits necesarios para representarlos.

Reducción de Tablas de Flujo (Diagramas de Estados):


Los diagramas de estados representan las transiciones entre estados y
las condiciones de cambio de estado. Para reducir los diagramas de
estados, sigue estos pasos:

Eliminar transiciones innecesarias: si hay transiciones que no se


utilizan o no son necesarias en el funcionamiento del circuito, puedes
eliminarlas para simplificar el diagrama.

18
Fusionar estados con transiciones comunes: si hay estados que
conducen a las mismas transiciones bajo las mismas condiciones, puedes
fusionarlos en un solo estado para reducir la cantidad de estados en el
diagrama.

Utilizar transiciones de autoretorno: en ciertos casos, puedes utilizar


transiciones de autoretorno para simplificar el diagrama y evitar
transiciones innecesarias entre estados.

Optimización de las condiciones de transición: revisa las condiciones


de transición para asegurarte de que sean lo más simples y eficientes
posible.

Al reducir las tablas de estado y flujo, se puede lograr un diseño más


limpio, eficiente y fácil de entender. Esto puede tener un impacto
significativo en la implementación física del circuito y en su
funcionamiento general. Es importante realizar una revisión exhaustiva y
simulaciones para asegurarse de que la reducción no afecte
negativamente el comportamiento deseado del circuito.

Asignación de estados libre de carreras


También conocida como asignación segura de estados o asignación libre
de conflictos, es una técnica utilizada en el diseño de circuitos
secuenciales para garantizar que no se produzcan condiciones de carrera
o conflictos en la transición entre estados.

Una carrera ocurre cuando dos o más señales intentan cambiar el


estado del circuito al mismo tiempo, lo que puede provocar un
comportamiento impredecible o indeseado en el sistema. La asignación
de estados libre de carreras asegura que cada transición entre estados
sea única y determinista, evitando posibles conflictos.

Para lograr una asignación de estados libre de carreras, se deben seguir


algunos principios y técnicas clave:

Asignación de códigos únicos


Asigna códigos únicos a cada estado del circuito. Estos códigos deben
ser distintos y no deben compartir bits en común, lo que garantiza que
solo un estado esté activo en cualquier momento.

Evitar estados no definidos: Asegúrate de que el diseño tenga una


asignación de estados completa y que no haya estados no definidos o

19
inalcanzables. Cada combinación de bits en el estado debe corresponder
a un estado definido.

Evitar transiciones simultáneas


Diseña las transiciones entre estados para que no ocurran
simultáneamente. Asegúrate de que cada transición se active de manera
única y determinista en función de las condiciones definidas.

Evitar cambios de estados inesperados


Evita cambios de estado inesperados que puedan ocurrir debido a
fluctuaciones en las señales o condiciones de carrera. Utiliza técnicas
como registros de desplazamiento con bloqueo (latches con habilitación)
para capturar los datos de manera segura antes de la transición.

Realizar simulaciones y análisis de temporización


Realiza simulaciones y análisis de temporización para verificar que no
haya problemas de temporización o condiciones de carrera en el diseño.

La asignación de estados libre de carreras es especialmente importante


en sistemas críticos o en aquellos donde el comportamiento del circuito
debe ser determinista y predecible en todo momento. Al seguir los
principios de asignación libre de carreras, se puede garantizar un
funcionamiento seguro y confiable del circuito secuencial, minimizando la
posibilidad de errores o comportamientos no deseados.

Riesgo
En la lógica secuencial se refiere a una situación inestable o peligrosa
que puede ocurrir debido a la propagación asincrónica de señales en el
circuito. Los riesgos son un fenómeno no deseado en los circuitos
secuenciales y pueden provocar comportamientos impredecibles o errores
en el sistema.

Los riesgos se presentan en dos formas principales:

Riesgo de Carrera (Race Hazard)


Un riesgo de carrera ocurre cuando dos o más señales compiten para
cambiar el estado del circuito al mismo tiempo. Esto puede suceder en
circuitos asíncronos cuando las señales de entrada o los cambios de

20
estado se propagan a diferentes velocidades o debido a diferencias en las
temporizaciones de las señales. Como resultado, el circuito puede quedar
en un estado temporal inestable antes de alcanzar su estado final, lo que
lleva a comportamientos impredecibles.

Riesgo de Salto o de Cambio de Estado (Glitch)


Un riesgo de salto, también conocido como glitch, es una perturbación
transitoria no deseada que ocurre en la salida de un circuito debido a
cambios en las entradas. Estas perturbaciones pueden ser breves y
transitorias y pueden ser causadas por cambios asincrónicos en las
señales de entrada que no se propagan de manera sincronizada a través
del circuito.

Para mitigar los riesgos en la lógica secuencial, es importante diseñar el


circuito de manera adecuada y utilizar técnicas específicas para evitar
problemas asociados con cambios de estado no deseados. Algunas de
las técnicas para minimizar el riesgo en la lógica secuencial incluyen:

• Utilizar elementos de memoria sincronizados, como flip-flops, que


respondan a una señal de reloj común para evitar cambios de
estado simultáneos y garantizar una propagación controlada de
las señales.

• Implementar técnicas de sincronización, como el uso de registros


de desplazamiento con bloqueo (latches con habilitación) o
señales de handshaking, para asegurar que los cambios de
estado ocurran de manera segura y controlada.

• Aplicar técnicas de diseño que minimicen las diferencias de


temporización y el retardo en la propagación de las señales en el
circuito.

• Realizar simulaciones y pruebas exhaustivas para verificar y validar


el funcionamiento correcto del circuito en diferentes escenarios.

• Seguir buenas prácticas de diseño y evitar condiciones de carrera


al definir y asignar estados, evitando estados inestables o no
definidos.

Al tener en cuenta estas técnicas y precauciones, se puede reducir


significativamente el riesgo en la lógica secuencial y garantizar un
funcionamiento estable y seguro del circuito.

21
Ejemplo de diseño con lógica secuencial asíncrona
Un contador asíncrono de 2 bits. Un contador asíncrono es un circuito
secuencial que cuenta ciclos de reloj sin estar sincronizado con una señal
de reloj común. En lugar de utilizar una señal de reloj, los cambios de
estado en el contador son impulsados por cambios asincrónicos en las
entradas.

Para el ejemplo, diseñaremos un contador asíncrono de 2 bits que


contará en la secuencia 00 -> 01 -> 10 -> 11 -> 00, y así sucesivamente.
Utilizaremos dos flip-flops D (latches) con habilitación para implementar el
contador.

Tabla de Estados:
Estado Actual (Q1, Q0) | Estado Siguiente (Q1, Q0)
------------------------------------------------
00 | 01
01 | 10
10 | 11
11 | 00

Diseño del Contador Asíncrono de 2 bits:

Inicialmente, ambos flip-flops D (Q1 y Q0) están en el estado "00".

Cuando las entradas cambian a "1" (por ejemplo, al presionar un botón),


el primer flip-flop D (Q0) cambia a "1", y debido a la realimentación, el
segundo flip-flop D (Q1) cambiará a "1" también.

A medida que los flip-flops cambian de estado, la salida del contador


será "01".

Si las entradas se mantienen en "1", el siguiente cambio de estado será


"10", luego "11" y finalmente "00".

Después de llegar al estado "00", el contador volverá a comenzar la


secuencia.

El circuito de contador asíncrono de 2 bits se puede implementar


utilizando puertas lógicas y flip-flops D con habilitación. Es importante
asegurarse de que no haya condiciones de carrera o conflictos en las
transiciones entre estados para un funcionamiento correcto.
Cabe destacar que, aunque este ejemplo es sencillo y funcional, los
contadores asíncronos pueden ser más susceptibles a problemas de

22
temporización y comportamientos inesperados en comparación con los
contadores síncronos. Por lo tanto, se deben tomar precauciones
adicionales y realizar análisis exhaustivos para garantizar un
funcionamiento adecuado y confiable en aplicaciones más complejas.

Diferencias entre los Circuitos Secuenciales Asíncronos y los


Síncronos
La diferencia principal entre los circuitos secuenciales asíncronos y los
sincrónicos radica en cómo se sincronizan las operaciones y los cambios
de estado en el circuito.

Circuitos Secuenciales Síncronos


En los circuitos secuenciales síncronos, todas las operaciones y cambios
de estado están controlados por una señal de reloj común. El reloj actúa
como una referencia de tiempo y asegura que todas las operaciones
ocurran en momentos específicos y predecibles.

Cada vez que la señal de reloj cambia de estado (por ejemplo, de 0 a 1),
se producen los cambios en los elementos de memoria, como los flip-flops,
y las operaciones en el circuito ocurren de manera sincronizada.

El uso de una señal de reloj permite que todas las partes del circuito se
mantengan sincronizadas y evita problemas de temporización y
condiciones de carrera.

Los circuitos secuenciales síncronos son más fáciles de diseñar, analizar


y depurar debido a su sincronización controlada y predecible.

Circuitos Secuenciales Asíncronos


En los circuitos secuenciales asíncronos, las operaciones y cambios de
estado no están controlados por una señal de reloj común. En cambio, los
cambios ocurren en respuesta a cambios asincrónicos en las señales de
entrada o condiciones específicas.

La propagación de las señales en los circuitos asíncronos es inmediata,


lo que significa que las operaciones pueden ocurrir en cualquier momento
en función de las señales que cambian.

Los circuitos asíncronos pueden ser más complejos de diseñar y analizar,


ya que se deben tener en cuenta las diferencias de tiempo entre las
señales para evitar problemas de temporización y condiciones de carrera.

23
Los circuitos secuenciales asíncronos se utilizan en aplicaciones
específicas donde la sincronización mediante una señal de reloj no es
posible o no es deseada. Algunos ejemplos de aplicaciones incluyen
sistemas de comunicación, interfaces con señales externas o circuitos de
control en los que se requiere una respuesta inmediata a cambios en las
condiciones.

24
Conclusión
En el transcurso de este estudio, hemos explorado en profundidad el
apasionante mundo de la lógica secuencial síncrona y asíncrona, dos
enfoques fundamentales en el diseño de sistemas digitales complejos. A
través de su análisis detallado, hemos adquirido un sólido entendimiento
de los principios, características y aplicaciones de estos circuitos,
comprendiendo su importancia en una amplia variedad de dispositivos
electrónicos y sistemas computacionales.
En el contexto de la lógica secuencial síncrona, hemos descubierto cómo
las señales de reloj comunes sincronizan las operaciones y transiciones
entre estados, garantizando un funcionamiento controlado y predecible.
Mediante el estudio de los flip-flops, elementos esenciales en estos
circuitos, hemos comprendido su rol en el almacenamiento de información
y cómo el flip-flop JK representa una opción versátil para la
implementación de circuitos secuenciales.
Asimismo, hemos abordado el diseño de registros y contadores, piezas
clave en sistemas de almacenamiento y conteo, comprendiendo cómo se
configuran y aplican en diversos contextos.
En cuanto a la lógica secuencial asíncrona, hemos explorado su
funcionamiento sin la dependencia de una señal de reloj, lo que la hace
idónea en situaciones donde la sincronización no es posible o no es
requerida. Además, hemos estudiado cómo los circuitos con seguros
garantizan un funcionamiento seguro y protegen contra condiciones de
carrera.
La reducción de tablas de estado y flujo, junto con la asignación de
estados libre de carreras, nos ha mostrado estrategias para optimizar la
eficiencia y confiabilidad en el diseño de circuitos secuenciales.
Es vital tener en cuenta los riesgos asociados con la lógica secuencial,
los cuales pueden afectar el comportamiento y confiabilidad de los
circuitos. No obstante, hemos aprendido cómo mitigar estos riesgos
mediante técnicas adecuadas y análisis exhaustivos.

25
Finalmente, el ejemplo práctico de diseño con lógica secuencial
asíncrona nos ha permitido aplicar los conocimientos adquiridos y
visualizar cómo estos conceptos se llevan a la práctica.

En conjunto, este estudio ha proporcionado una visión completa y


rigurosa de la lógica secuencial síncrona y asíncrona, dotándonos de las
herramientas necesarias para comprender, diseñar y aplicar eficazmente
estos circuitos en diversas aplicaciones electrónicas y computacionales.
La lógica secuencial desempeña un papel fundamental en la evolución y
mejora de la tecnología actual, y su dominio es esencial para el desarrollo
de soluciones innovadoras en el mundo digital.

26
Referencias bibliográficas
(APA 7a edición)

4.1 Modelos de circuitos secuenciales. (s. f.).

http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro16/41_modelos_

de_circuitos_secuenciales.html

4.3 latches. (s. f.).

http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro16/43_latches.ht

ml

4.4 flip-flops. (s. f.).

http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro16/44_flipflops.ht

ml

4.5 Circuitos de tiempo. (s. f.).

http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro16/45_circuitos_d

e_tiempo.html

4.6 Circuitos secuenciales. (s. f.).

http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro16/46_circuitos_s

ecuenciales.html

Circuitos secuenciales. (s. f.).

https://es.slideshare.net/juan130591/circuitos-secuenciales-25365141

eCampus. (2013, diciembre). Electronica digital [2013/12] [cas]. OCW.

Recuperado 24 de julio de 2023, de

https://ocw.ehu.eus/mod/page/view.php?id=32560

27

También podría gustarte