Lógica secuencial: ¿Principalmente para el almacenamiento de señales?

3

Nuevo aquí: D

He estado leyendo a David M. & El libro de Sarah Harris " Diseño digital y arquitectura de computadora " y llegó a preguntarse sobre el papel de la lógica secuencial. Para mí, parece que la importancia de la lógica secuencial reside principalmente en su capacidad para almacenar señales (ALTA / BAJA, ENCENDIDO / APAGADO, 0/1, etc.). Sin embargo, también he notado que la propiedad característica de la lógica secuencial es su dependencia de entradas pasadas en la generación de salidas.

Ahora, como estudiante novato de EE, esto me confunde. Como lo entiendo, la memoria (en el sentido electrónico) es solo la capacidad de almacenar y recuperar señales pasadas. Con esto en mente, el almacenamiento de señales no parece ser una tarea difícil en absoluto; ROM, por ejemplo, es (por lo que he escuchado) puramente combinacional y almacena señales, es decir. memoria. Si podemos crear memoria con circuitos combinacionales, ¿por qué los elementos secuenciales son tan considerados como fundamentales para la memoria? Debe haber una razón para esto que aún no he leído (probablemente algo con la organización de computadoras que estoy asumiendo?).

Lo siento si esta publicación parece extremadamente ingenua y / o presuntuosa: [No se me ha enseñado formalmente sobre lógica secuencial: /

    
pregunta chevestong

3 respuestas

7

Tu publicación es ingenua, pero eso no es necesariamente algo malo por dos razones: 1. Hay otros en tu posición que pueden beneficiarse de tu pregunta. Y 1. A veces, las personas con décadas de experiencia necesitan volver a visitar este tipo de temas de vez en cuando para refrescar su memoria de lo que es importante en los circuitos.

Hay algunos términos que el uso de EE se enseña en la escuela y en los libros de texto, pero rara vez se usan profesionalmente. La lógica secuencial es una de ellas. El término profesional es "máquina de estado". Una máquina de estado es esencialmente el coraje de lo que piensas como lógica secuencial.

Un "estado" es simplemente la condición actual de algo. El estado de un contador es el propio valor de conteo. El estado de un semáforo es Rojo, Amarillo o Verde.

Cuando dices "la memoria es la capacidad de almacenar y recuperar señales pasadas", estás en lo correcto, pero nadie habla así. Decimos que el estado está almacenado. Es un punto menor, pero importante. Almacenar una señal pasada implica que está almacenando una señal que cambia con el tiempo. Almacenar un estado es almacenar el valor instantáneo del estado. Toma ese poco de conocimiento y guárdalo en tu cerebro para más adelante, cuando tenga sentido para ti.

Para nosotros, hay dos tipos básicos de circuitos lógicos: combinatorio y memoria. La lógica combinatoria es solo lógica donde las salidas dependen solo de las entradas. Es un grupo de puertas sin rutas de retroalimentación (donde las puertas en sentido descendente no alimentan las entradas de las puertas en sentido ascendente). La memoria es lo opuesto a la lógica combinatoria, ya que almacena un valor o estado para su uso posterior. Los bloques de construcción básicos para la memoria son los flip-flops y pestillos. La RAM real también se puede usar para almacenar valores de estado, pero es un uso más avanzado.

El núcleo de una máquina de estados (o lo que usted llama lógica secuencial) consiste en un solo bloque de lógica combinatoria y una porción de memoria para almacenar la salida de la lógica combinatoria. La salida de la memoria se retroalimenta a la lógica combinatoria. Si está diseñando un contador, entonces la lógica combinatoria podría tomar la entrada y agregarle 1. La memoria guardará ese valor +1 para el siguiente reloj.

Por lo general, la conexión a las máquinas de estado es otra parte de la lógica combinatoria y posiblemente algo más de memoria para manejar las salidas de la máquina de estado (diferente del valor del estado en sí). Un ejemplo de esto sería una señal adicional de nuestro contador que sube cada vez que el contador es igual a 4.

Donde esta lógica combinatoria adicional (y quizás más memoria) está en relación con la lógica combinatoria / memoria central es lo que determina si se trata de una Mealey o Moore máquina de estados. Presento los términos de Mealey y Moore solo porque este es otro ejemplo de algo que solo se enseña en las escuelas y que casi nunca se usa profesionalmente.

Pero con toda esta charla sobre "memoria", tenemos un problema. La forma en que se usa este término en esta discusión es diferente a cómo se usa normalmente. Cuando dices "memoria" a la mayoría de las personas, ellos piensan en RAM y ROM. Pero la memoria en este contexto es normalmente flip-flops y pestillos. Por lo general, D-Flip-Flops. Los DFF en un contador tendrán una palabra, y solo una palabra. RAM, por otro lado, almacenará muchas palabras a la vez. Es difícil distinguirlo de tu pregunta, pero creo que estás confundiendo la RAM con Flip-Flops y Latches.

Ahora comencemos con su pregunta: si podemos crear memoria con circuitos combinados, ¿por qué los elementos secuenciales son tan importantes como fundamentales para la memoria?

Puedes hacer memoria con puertas, y puedes hacer lógica combinatoria con puertas. Pero la lógica combinatoria no es la memoria. De hecho, la definición de lógica combinatoria es "lógica sin memoria". Pero casi todos los circuitos útiles están hechos tanto de memoria como de lógica combinatoria.

Lo que no entiendo de tu pregunta es a qué tipo de memoria te refieres. Pero en última instancia, no importa porque los elementos secuenciales no son fundamentales para ningún tipo de memoria. Es lo contrario, de hecho. La memoria es fundamental para la lógica secuencial (a.k.a. máquinas de estado).

Al observar las máquinas de estado, la lógica secuencial, la lógica síncrona y similares, puede ser útil para dividir la lógica en lógica combinatoria y flip-flops. No lo rompa en el diseño real, pero divida cómo piensa en el circuito. Esto le ayudará a identificar las partes que importan. También te ayudará más adelante cuando tengas que empezar a pensar en el tiempo de la señal, los relojes y todo eso.

También te aconsejo que ignores RAM / ROM por ahora hasta que entiendas el resto de esto. No tiene sentido complicar las cosas en esta etapa.

    
respondido por el user3624
2

La lógica combinacional es una tabla de búsqueda instantánea, simplemente una función. Una caja negra cuyas salidas dependen únicamente de los valores de entrada actuales. Siempre es una relación de uno a uno. En cierto modo, una memoria de solo lectura (ROM) que una vez definida nunca cambiará.

La salida de la lógica secuencial depende de la secuencia de las entradas, no solo de las entradas actuales. Por lo tanto, se necesita una forma de recordar lo que sucedió antes, y esto normalmente se hace utilizando flip-flops y / o pestillos como bloques de memoria.

Los usos típicos son tuberías, rutas de datos sincronizadas y máquinas de estados finitos. Las máquinas de estados finitos son circuitos secuenciales en los que la secuencia de entradas se memoriza y se resume como un estado , por lo que el siguiente estado depende del estado actual y las entradas actuales. Es una cadena de Markov en estado puro. Por lo general, tiene un reloj asociado que le dice cuándo muestrear las entradas actuales y su propio estado actual para cambiar a su próximo estado. Pero no siempre, porque hay una lógica secuencial asíncrona, pero dejemos eso para otra discusión. Las salidas pueden depender únicamente de su estado interno (máquina de estados finitos de Moore) o también de las entradas de corriente (máquinas de estados finitos de Mealy).

Entonces, para recordar su estado actual, se requieren bloques de memoria. Debido a que el contenido de esta "memoria" cambia, no es una ROM, que es a lo sumo lo que puede ofrecer un circuito puramente combinacional.

Esperamos que esto aclare por qué se requiere la capacidad de almacenar señales en la lógica secuencial, su relación para mantener un estado interno que es únicamente el resultado de la secuencia pasada de entradas y que esta "memoria" es diferente de una lectura combinada -sólo la memoria.

Por último, pero no menos importante, tenga en cuenta que siempre hay una lógica de combinación, es la "lógica de cola" la que compone su circuito, secuencial o no. Por ejemplo, en una máquina de estados finitos, la lógica que determina cuál debería ser el siguiente estado según el estado actual y las entradas actuales no es más que un bloque combinacional. Simplemente cuando agrega estado de estado con retroalimentación y elementos de memoria, el circuito en su totalidad adquiere el término más amplio "secuencial". Al final, son todas las puertas y chanclas.

    
respondido por el apalopohapa
2

Las otras respuestas son buenas, pero no están llegando al núcleo de su pregunta, que es cómo se obtiene de la lógica combinatoria a Lógica secuencial a "memoria". Déjame tratar de abordar eso.

Uno de los puntos que se está pasando por alto es que hay dos tipos de Lógica secuencial, asíncrona y síncrona. Lógica secuencial asíncrona. puede cambiar el estado si alguna de sus entradas cambia, mientras que la secuencia es síncrona la lógica solo cambia de estado cuando se produce un flanco de reloj (o pulso).

Un circuito combinatorio no tiene realimentación y su (s) salida (s) son siempre una Función de sus entradas actuales. Un ejemplo es la combinación AND-OR mostrada. abajo (a). Si agrega retroalimentación (b), ahora tiene un pestillo de restablecimiento de configuración simple. Supongamos que la entrada S es baja y la entrada R 'es alta. Si la entrada S es pulsado alto, la salida Q será impulsada alta y permanecerá alta incluso después de que S vuelve a bajar, debido a la retroalimentación a través de la puerta AND. Si R ' el pulso es bajo, Q será conducido bajo y se mantendrá bajo después de que R 'pase a nivel alto de nuevo.

SiconvertimoslacompuertaORasuequivalentedeDeMorgan,podemosvolveradibujarelpestillocomosemuestraen(c).Hagamoslaentrada"set" activa-baja y reorganicemos el Burbujas un poco, y obtenemos el cierre clásico hecho con dos puertas NAND (d). Tenga en cuenta que podemos usar la salida de la otra puerta como salida complementaria (Q ').

Paracrearunamemoriaquepuedarecordarelestadodeunaseñalenundeterminadotiempo,podemosagregaralgunaspuertasmásanuestropestillo(e).Cuandolaentradadehabilitación(E)esalta,lasalidaseguirálaentradadedatos(D),ycuandoEbaja,QmantendráelvalorqueDteníaenesemomento.Estacoleccióndelógicapuedeserrepresentadoporelsímbolodecierre(f).UnaRAMestática(memoriadeaccesoaleatorio)essimplementeunacoleccióndepestilloscomoestos,juntoconunagrancantidaddedispositivoscombinatoriosLalógicaparadecodificarellatchhabilitaymultiplexalassalidas.

Diseñar máquinas de estado asíncronas no es difícil para casos simples como Esto, pero rápidamente se vuelve difícil de manejar para casos más complejos. Como resultado, se hace deseable tener un elemento de memoria que se actualice en un borde del reloj En lugar de un latch habilitar el pulso. Es por esto que el concepto de maestro-esclavo. Se desarrolló el flip-flop. Se compone de dos pestillos en cascada como se muestra en (g), y sus habilitaciones son complementos entre sí, cuando una está habilitada, el otro está deshabilitado. Cuando el reloj está bajo, el primer pestillo está habilitado, y cuando el reloj sube, el primer pestillo se desactiva (manteniendo el valor de D) y el segundo pestillo está habilitado, propagando ese valor a la salida. Esta la colección de lógica está representada por el símbolo DFF (Flip-Flop tipo D) (h).

Ahora se vuelve simple construir máquinas de estado más complejas como contadores, Desplazar registros, e incluso completar CPUs.

Tenga en cuenta que la ROM (memoria de solo lectura) no es realmente memoria en este sentido; es solo Otro ejemplo de lógica combinatoria, donde las salidas son una función fija. de las entradas.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas