¿Qué flip-flop debo usar para diseñar un circuito lógico con un número mínimo de puertas lógicas?

2

¿Cómo puedo saber con qué flip-flop puedo diseñar un circuito lógico complejo con un número mínimo de puertas lógicas?

En nuestras tareas y exámenes, se supone que debemos usar un número mínimo de puertas lógicas. En un problema, se nos pide diseñar un registro con un contador binario simple, carga en serie, rotación de 2 bits y opciones de carga en paralelo (la sincronización no se menciona en el problema). Somos libres de usar cualquier flip-flop que queramos usar. ¿Qué flip-flop utilizarías en este caso? ¿Y por qué? ¿Hay alguna forma de saber con qué flip-flop podríamos diseñar el circuito lógico con un número mínimo de puertas lógicas?

Gracias de antemano.

Editar: En esta asignación, podemos usar flip-flops D, T, SR, JK. El problema es que cuando usamos flip-flops diferentes, nuestra parte combinatoria del circuito es diferente, hay una manera de saber con qué flip-flop esta parte sería más pequeña (contiene menos número de puertas lógicas).

El registro que se nos pide que diseñemos contiene 4 bits. Tenemos una entrada de 2 bits que especifica que la operación se ejecutará en el registro (conteo, rotación, carga en paralelo, carga en serie).

Y por "rotación", me refiero a Circular Shift

Además, no se menciona nada acerca de la "sincronización", por lo que creo que depende de nosotros.

    
pregunta sinan

2 respuestas

2

Los registros de desplazamiento de carga en serie / paralelo y las rotaciones de bits funcionarán de manera más natural con un flip flop D, ya que solo envían datos directamente; los contadores binarios van a funcionar más naturalmente con un flip flop T, ya que cada bit de contador C k = C k, previo XOR carry k , donde carry es el bit de carry de la etapa anterior.

Si te fijas en chancletas JK , sin embargo, son el flip-flop "universal" que puede actuar como flip-flop D o T dependiendo de las señales de entrada.

Para obtener una D de una T, o viceversa, necesita una puerta XOR. Para obtener una T de un JK, simplemente une las entradas JK. Para obtener una D de un JK, necesita un inversor, ya que las entradas J / K deben ser opuestas.

En su aplicación, tiene suficiente complejidad, por lo que sospecho que los recuentos de la puerta serán muy cercanos, y probablemente no vale la pena preocuparse, a menos que tenga que optimizar, en cuyo caso simplemente tendrá para probarlo en cada caso.

En mi humilde opinión, el flip-flop D es conceptualmente el más sencillo de usar, y funciona naturalmente con la mayoría de tus operaciones, así que empezaré con eso.

    
respondido por el Jason S
2

La disposición de enganche que se puede realizar utilizando el menor número de puertas (para el propio pestillo) es el pestillo RS (comúnmente realizado como dos puertas NAND, dos puertas NOR, o una NAND y una NOR). Este circuito cambiará de una manera cuando una entrada se active, y cambiará de la otra manera cuando la otra entrada se active. Ningún otro cierre es más simple, pero generar las dos entradas separadas requeridas por el cierre RS puede requerir más lógica externa de la que se necesitaría con otros circuitos de cierre.

Además, cuando se construyen cierres de puertas, a menudo es necesario hacer suposiciones sobre los retrasos de propagación, en particular, la relación entre los tiempos de puerta de propagación mínimo y máximo. Muchos circuitos de retención tienen condiciones de carrera inherentes que fallarían si una señal se propagara a través de, por ejemplo. una secuencia de cinco puertas más rápido de lo que se propagó a través de alguna otra secuencia de tres. En realidad, es posible sesgar algunas puertas particulares para garantizar que sean más lentas que otras, pero ¿qué puedes hacer aquí? Conceptualmente, me gusta la idea de diseñar circuitos con dos entradas de reloj, que requieren que los relojes cambien en una secuencia particular, pero que estén totalmente libres de condiciones internas de carrera siempre que los relojes estén secuenciados correctamente. Dado dicho circuito, si se construye un secuenciador de reloj cuyo tiempo entre los relojes de salida excede el retardo máximo de propagación en el circuito descendente, garantizar que las señales adecuadas "ganarán" una condición de carrera en el secuenciador de reloj garantizará que no haya otra "sorpresa". "Condiciones de carrera en el diseño.

Si se le permite a los dispositivos de enganche considerarlos como 'componentes primitivos', el más versátil es el flip flop JK; un flip flop en T es esencialmente un flip flop JK con las dos entradas unidas. El conteo suele ser un poco más fácil con un flip flop en T que con un flip flop en D, pero las operaciones de carga y desplazamiento son más fáciles con un flip flop en D; razonar sobre el circuito general puede ser más fácil con un flip flop que con los otros tipos, así que eso es lo que sugeriría comenzar con.

Conceptualmente, sugeriría averiguar qué se supone que debe hacer cada bit en relación con los diversos estados. Hay dos enfoques que sugeriría intentar:

  1. Considere que un "desplazamiento" es similar a un "conteo", excepto que (1) la "ejecución" de cada bit reflejará el estado del bit, sin que sea el valor del bit "anded" con "carry". en ", y (2) el" nuevo valor "de cada bit será simplemente el acarreo, en lugar de ser el acarreado en xor con el valor anterior.
  2. Use un mux para distinguir los modos de "conteo" de los modos de "carga", y luego use otro mux para distinguir "carga con el valor antiguo desplazado un bit" de "carga con valor en entrada paralela".

Espero que el primer enfoque probablemente produzca un poco menos de circuitos. Tenga en cuenta que en cualquier caso, "rotación circular" suena igual que "carga en serie", excepto que un mux devuelve el bit más significativo a la entrada de cambio / acarreo.

    
respondido por el supercat

Lea otras preguntas en las etiquetas