¿diseñando un circuito secuencial teniendo su tabla de valores?

1

al aprender sobre los circuitos combinacionales, podríamos dibujar la tabla de verdad y construir un circuito con la ayuda de los términos min / MAX. y podríamos simplificarlo aún más con los mapas de Karnaugh.

PERO cómo hacemos esto en un circuito combinacional.

digamos que tengo una tabla como la siguiente.

ahora, ¿cómo puedo hacer un circuito fuera de esta tabla?

el problema está en un K-map y en una tabla de verdad, los únicos estados completos que significan un poco (como el reloj aquí) son 0 y 1.

SO no podemos hacer nada acerca de los bordes ascendentes o descendentes.

PS. (este ejemplo es un flip flop D que es transparente tanto en bordes ascendentes como descendentes) ¡PERO quiero un método (algoritmo) como el término Min / Max (o los mapas de Karnaugh) para resolver CUALQUIER pregunta, no solo esta!

    
pregunta kiyarash

1 respuesta

1

Creo que te faltan algunos conceptos básicos sobre los circuitos secuenciales. En primer lugar, mientras que los circuitos combinacionales son sin estado , los circuitos secuenciales se definen por el hecho de tener algún tipo de estado interno que puede cambiarse en instantes de tiempo precisos (< em> circuitos síncronos ) o cuando una cierta condición es verdadera ( circuitos asíncronos ).

Lo bueno de los circuitos secuenciales sincrónicos es que pueden realizarse combinando solo dos ingredientes diferentes:

  • lógica combinacional , que podría ser la lógica de 2 niveles que se puede realizar con los mapas de Karnaugh o una lógica de múltiples niveles más compleja;
  • chancletas , similar a la que preguntaste (aunque la mayoría de las veces utilizas un flip flop de un solo borde).

Básicamente, para diseñar un circuito síncrono genérico, se divide en una parte combinatoria y en registros (flip flops). Para hacer esto debes tener un modelo de lo que estás haciendo; un ejemplo de uno simple y útil es el de Moore finite state machines en el que tiene un estado \ $ S \ $, una entrada \ $ x \ $ y una salida \ $ y \ $. Un circuito combinacional \ $ C_s \ $ se usa para calcular el nuevo estado como \ $ S '= f_ {C_s} (S, x) \ $, un segundo circuito combinacional \ $ C_y \ $ se usa para calcular la nueva salida de el estado actual como \ $ y = g_ {C_y} (S) \ $ y el estado se memoriza en flip flops. Muchos otros modelos existen aparte de este (por ejemplo, las máquinas de estado finito de Mealy) pero la constante es que su problema siempre se descompone en el diseño / síntesis de un conjunto de circuitos combinacionales y el uso de flip flops. Esto se puede hacer de manera muy eficiente mediante herramientas de síntesis automáticas desde una entrada RTL como Verilog, SystemVerilog o VHDL.

Pero queda un problema: ¿cómo diseñar chanclas entonces? Los propios flip-flops no son circuitos síncronos ni circuitos combinacionales. Son los representantes más famosos de la categoría de circuitos asíncronos. El tipo más famoso de flip flop, el borde maestro-esclavo activado , es un circuito relativamente complejo compuesto por una secuencia de dos pestillos de restablecimiento de conjuntos que son transparentes en fases opuestas del reloj. Cada pestillo está compuesto por dos puertas simples en una cadena de comentarios (consulte Wikipedia para obtener más información). En cualquier caso, el flip-flop debe diseñarse con mucho cuidado para que se comporte como el flip-flop disparado por el borde ideal, muestreando la entrada exactamente en el borde del reloj (los flip-flops reales tienen una restricción de tiempo de configuración, durante la cual debe ser estable antes del muestreo y un tiempo de espera durante el cual el dato debe mantenerse estable después del muestreo).

Lamentablemente, no existen métodos generales simples para diseñar circuitos asíncronos; de hecho, tales métodos son un campo de investigación algo activo en la comunidad de automatización de diseño electrónico.

    
respondido por el Francesco Conti

Lea otras preguntas en las etiquetas