Chanclas D, pero sin bucles de retroalimentación: ¿imposible?

Usando flip-flops JK o T, es fácil crear un contador de N bits síncrono colocándolos en cascada como se muestra aquí:

un contador de 4 bits con T flops y sin bucles de retroalimentación

El circuito anterior no tiene bucles de retroalimentación. Me encontré con una situación en la que preferiría usar D flops, pero también quiero evitar bucles innecesarios debido a la congestión del cableado. Mi intuición dice que hacer ambas cosas (usar D flops y evitar bucles de retroalimentación) es imposible, pero realmente no puedo decir por qué. Ambos tipos de flip-flops ahorran 1 bit de estado, ¿verdad? Poner un bucle de retroalimentación encima del flop D se siente como agregar otro estado, pero el sistema en su conjunto no almacena ningún dato adicional.

¿Estoy pensando incorrectamente en los bucles? ¿Qué tiene de diferente el flip-flop D que hace que no funcione aquí? Por último y más importante, ¿es realmente imposible hacer un contador usando solo D flops y sin bucles de retroalimentación, o estoy demasiado cerca del problema para verlo?

Edite para aclarar mi pregunta: los flip-flops D y T tienen algún tipo de circuito de retroalimentación interno; Entiendo que. Tanto los flip-flops D como los T almacenan un bit de información. ¿Qué tiene de diferente el flip-flop T que permite usarlo en un contador sin agregar más circuitos de retroalimentación? O, alternativamente, ¿qué pasa con el flip flop D que lo hace inadecuado para este propósito cuando se usa solo?

No es sincronizado.
Lo más probable es que sus flip-flops T se implementen como DFF con retroalimentación, como se muestra en la respuesta de Andy.
Gracias Andy, estaba apurado cuando publiqué y no me di cuenta de mi error. Encontré otro circuito que demuestra el circuito del que estoy hablando.

Respuestas (5)

Para hacer un flip-flop T, toma un flip-flop D y agrega retroalimentación de la salida para determinar el siguiente estado.

La siguiente imagen muestra la lógica de funcionamiento más básica de un flip-flop en T. Si eliminó la retroalimentación de Q y Q ', obtiene un flip-flop D (y lo sé, también tiene que invertir la entrada de bits en la puerta inferior y. Seamos simples, ¿de acuerdo?)

Chancleta T

Entonces, cuando vaya a usar un flip-flop D en un circuito contador en lugar de un flip-flop T, debe agregar manualmente la retroalimentación que ahora falta.

Ok, esta es una respuesta parcial, pero mirándola desde una perspectiva de sistemas: un D FF ya tiene un ciclo de retroalimentación. ¿Por qué necesito dos bucles de retroalimentación, uno dentro del FF y otro externo, cuando solo necesito un bit de estado?
En realidad, el D FF más básico no tiene un circuito de retroalimentación ya que el estado de salida en el siguiente ciclo de reloj no depende del estado de salida actual. Como dije anteriormente, si toma el T Flip-flop en la foto y elimina la retroalimentación de la salida, obtendrá un D Flip-flop.
Cualquier FF o pestillo necesita un circuito de retroalimentación para tener estado; Te remito a la respuesta de @OlinLathrop. Pero creo que veo por qué eso no se aplica de la manera que pensé que debería.
Llamo a esto la respuesta aceptada porque, si bien no aborda exactamente mi confusión, ahora veo que hay una diferencia entre lo que hacen los dos (algo así como 3) ciclos de retroalimentación en ese diagrama. Gracias

El flip flop tipo D necesita retroalimentación de su salida Q invertida para dividir la frecuencia por dos. Esa es la historia corta y larga: -

ingrese la descripción de la imagen aquí

La forma en que funciona un flip flop D es simple. Los flancos de reloj positivos bloquean el estado de la entrada D en el momento en que sube el flanco. Por lo tanto, en el momento en que la salida QBAR haya cambiado de estado (algunos nanosegundos después), su estado anterior ya se ha bloqueado, por lo que no hay fallas.

@trentcl: El D FF con retroalimentación como muestra Andy ES su T FF (como comenta Photon). Por lo tanto, agregar ese cable de retroalimentación es simplemente conectar su D FF (lo que tiene) para que se comporte como T FF (lo que desea). Esos cables también están presentes en su diagrama, pero están dentro de sus bloques T FF.
(Cambió el circuito en el original, en caso de que desee ajustar su respuesta). Entonces, ¿agregar un bucle no afecta el... "estado" del circuito? Simplemente me parece extraño que un flop T pueda hacer por sí mismo lo que un flop D no puede, ya que ambos ahorran un poco de estado. Pero supongo que tiene sentido que el ciclo de retroalimentación esté implícito en el T-flop.

Si uno está dispuesto a hacer ciertas suposiciones sobre los retrasos de propagación y puede generar un pulso de longitud adecuada desde cada flanco ascendente del reloj, un flip flop T no necesita nada más que una puerta XOR que se retroalimente a sí mismo.

esquemático

simular este circuito : esquema creado con CircuitLab

El circuito anterior usa circuitos RC para agregar retardo de propagación a la puerta XOR; el comparador en la parte inferior izquierda genera varios anchos de pulsos de reloj. Si un pulso de reloj es demasiado corto, no cambiará la salida; si es demasiado largo, cambiará más de una vez (como se muestra, los pulsos van desde ser demasiado angostos para cambiar en absoluto, hasta ser lo suficientemente anchos para cambiar tres veces). Tenga en cuenta que las puertas predeterminadas y los búferes lógicos en este simulador tienen entradas de activación Schmidt (lo que implica la existencia de retroalimentación interna), pero los comparadores analógicos no, por lo que el circuito dibujado no tiene una ruta de retroalimentación que no sea el cable único en la parte superior.

En la práctica, tratar de condicionar los pulsos de reloj para que tengan el ancho correcto no es práctico, por lo que los flip flops agregan estructuras de retroalimentación interna adicionales. Tales estructuras requieren más circuitos, pero tener una mayor cantidad de circuitos robustos es mejor que tener una menor cantidad de circuitos que requieren ajustes precisos para que funcionen.

Interesante. De hecho, en la tecnología que estoy usando (lógica superconductora), es posible hacer un circuito similar sin usar circuitos RC para ajustar el ancho del pulso. Sin embargo, las compensaciones son extrañas (los DFF son más baratos que los XOR, por ejemplo). ¡Gracias!
@trentcl: en la tecnología NMOS, creo que un XOR cuyas entradas no se usaron para ningún otro propósito podría realizarse con dos transistores activos y un pullup pasivo; No sé si algún chip fabricado usó ese circuito. Admitiré fácilmente que debido a que existen diferentes realizaciones de XOR con diferentes características de rendimiento, usar una en un esquema es quizás un poco "tramposo". Aún así, los circuitos RC en el esquema anterior no tenían la intención de ser indicativos de circuitos RC "deliberados" tanto como de comportamientos RC parásitos. Ya que mencionas superconductores, tengo curiosidad...
...¿cuáles son las características de rendimiento de las puertas superconductoras? En este simulador, las puertas actúan como líneas de retardo, lo que en mi humilde opinión es muy poco realista para cualquier tipo de lógica "normal"; si estuviera diseñando un simulador, definiría Tp(min) y Tp(max) y diría que la salida de una puerta irá a la mitad del riel Tp(min) después de cualquier cambio en la entrada que podría afectar la salida, y solo se vuelven válidos Tp(max) después de que las entradas se hayan vuelto válidas; bajo tal simulación, algunos circuitos que en la vida real se comportarían de manera sensata podrían quedarse atascados con todo en el medio del riel, pero los circuitos que funcionan bajo simulación...
...con parámetros razonables definidos en los componentes subyacentes, funcionaría en realidad con cualquier combinación de comportamientos del mundo real entre Tp(min) y Tp(max), una situación que no es verificable cuando los simuladores usan un tiempo de propagación fijo. ¿Los superconductores se comportan como líneas de retardo, puertas de inercia o algo intermedio?
Depende de la familia lógica específica involucrada, pero en general, encontrará que las puertas tienden a tener un pestillo o flip-flop "incorporado", porque su retraso siempre depende de un reloj. Teóricamente, se comportan más como líneas de retardo, pero en contexto, la naturaleza cronometrada del circuito domina cualquier pregunta sobre el comportamiento de la puerta real. Más allá de eso, depende de la implementación (RQL, o alguna variante de RSFQ, que son numerosas). ¿Esto comienza a responder a su pregunta?
@trentcl: La página Wiki no dice mucho, pero me recuerda algo en el que un dispositivo lógico pasará a través del reloj o no en función de los pulsos que haya recibido en sus otras entradas, lo que significa esencialmente que cada puerta termina teniendo un retraso de un ciclo de reloj. En algunas de estas tecnologías, cada etapa es una inversión, lo que significa que es difícil tener un circuito que retrase una señal un número impar de ciclos sin invertirla, o que invierta una señal sin retrasarla un número impar de ciclos; diseñar una puerta XOR bajo tales reglas sería realmente difícil. Mencionaste...
...xor gates por ser caro; ¿Se debe a los problemas de paridad par/impar mencionados (que requerirían retrasar una señal sin pasarla a través de una puerta) o simplemente porque un XOR requiere que se implementen muchas otras puertas?
De hecho, RSFQ tiene la limitación de una puerta por ciclo, pero no la de inversión de cada etapa. (De hecho, las inversiones son difíciles de hacer en la lógica basada en pulsos porque un inversor a veces tiene que crear un pulso ex nihilo ). RQL no está sujeto a esas limitaciones, pero un XOR en RQL aún requiere la combinación de dos puertas "normales". . Además, los XOR no se pueden conectar en cascada con más de cuatro profundidades en un ciclo de reloj, independientemente de la velocidad del reloj, lo que es más inconveniente de lo que parece. En comparación, los flip-flops D consumen menos y diferentes recursos, menos que una puerta normal. De ahí mi pregunta original.
@trentcl: en algunos tipos de lógica, no hay un operador de inversión, pero existe un operador "X y no Y" (por ejemplo, uno puede solicitar todos los documentos que contengan "Smith" pero no "John", pero uno no puede simplemente pida todos los documentos que no contengan "John"). ¿Sería RFSQ así, en cuyo caso la construcción de un inversor requeriría que uno tenga una fuente de pulso que debería pasar cuando otra señal es falsa y sofocar cuando es verdadera?
Cerca. Los inversores RSFQ son básicamente puertas X y no Y donde X siempre está conectado a un reloj. La llegada de un pulso en Y evita que el siguiente pulso de reloj genere un pulso de salida. Es como un inversor seguido de un DFF. Todas las puertas RSFQ (creo) tienen este DFF "incorporado"; RSFQ realmente no tiene lógica combinatoria en el sentido habitual.
Aunque, ya que lo menciona, los inversores RQL son exactamente como los describe: un generador de pulsos (serie de 1) en cascada con una puerta ANDNOT. Algunos detalles aquí (busque "Puertas lógicas" para las cosas buenas), pero el documento vinculado en realidad no describe la construcción del generador de pulso + y no.
@trentcl: normalmente usaría el término "cierre D" para describir algo que puede mantener y generar su estado indefinidamente hasta un reloj, que no necesita llegar dentro de un período de tiempo en particular. El documento era un poco opaco, pero según su descripción, parece que lo que se obtiene es semánticamente equivalente a una celda DRAM libre, que solo se puede leer una vez cada vez que se escribe. ¿Sería justo decir eso?
Rehuyo el término "bloqueo" porque esa palabra (para mí) implica "sensible al nivel", lo que no tiene sentido con la lógica basada en pulsos. Pero "flip-flop" tiene sus propias limitaciones, lo admito. En cualquier caso, la comparación de DRAM es justa, pero agregaría que una puerta RSFQ debe leerse cada vez que se escribe, porque la llegada del pulso de "lectura" (el reloj) es necesaria para restablecer el estado interno de la puerta. . De lo contrario, la puerta no funcionará correctamente.

Cada flip-flop tiene inherentemente alguna retroalimentación en su interior. Considere el caso muy simple de un flip-flop RS:

Otros tipos de chanclas comienzan con esta básica y agregan cosas a su alrededor.

Esto es lo que me confunde. AD FF tiene comentarios internos. AT FF tiene retroalimentación interna. Ambos tipos de flip-flop almacenan la misma cantidad de información: un bit. ¿Por qué tengo que agregar más comentarios para que el flop D funcione como contador?

Un contador de ondulación utiliza T-flops (flip-flops de alternancia que pueden ser JK-flops con J y K en alto, o D-flops con /Q conectado a D) sin retroalimentación entre ellos . Son útiles para dividir por potencias de 2, pueden manejar altas frecuencias de entrada limitadas solo por el primer flip-flop, pero sus salidas no cambian sincrónicamente debido a la acumulación de retrasos. http://en.wikipedia.org/wiki/Counter_(digital) >**Contador asíncrono (onda)