Parece que hay varias definiciones diferentes de flip-flops y pestillos, algunas de las cuales son contradictorias.
El libro de texto de Ciencias de la Computación para el curso que enseño es probablemente el más confuso (de hecho, tengo poca fe en el libro porque simplemente está equivocado en varios lugares).
Me siento cómodo con el funcionamiento de los pestillos (SR, SR con compuerta, D con compuerta) y la diferencia entre dispositivos activados por nivel y activados por borde, al menos en términos de compuertas lógicas y diagramas de tiempo. Sin embargo, todavía estoy buscando una definición concisa de flip flop y de pestillo.
Esto es lo que creo hasta ahora:
“Un flip flop es un dispositivo biestable activado por borde que puede almacenar 1 bit”.
"Un pestillo es un dispositivo biestable activado por nivel que puede almacenar 1 bit".
He echado un vistazo a las publicaciones anteriores en este sitio web sobre esto y, por más esclarecedores que sean, todavía estoy buscando algo definitivo.
Mi comprensión actual, que quiero verificar, está en los diagramas a continuación...
Lado a lado hay lo que entiendo son dos implementaciones de un pestillo D activado por nivel.
Debajo de estos hay un detector de flanco positivo, en ese breve momento en que la puerta NOT aún no ha respondido al cambio de entrada de bajo a alto, es decir, el flanco ascendente (el rojo es 1 y el azul es 0).
En el último diagrama, el detector de bordes se ha instalado en un pestillo D anticuado y esto es lo que lo convierte en un flip-flop.
¿Es el último diagrama realmente un flip flop, o sigue siendo solo un pestillo?
¿Y por qué necesitamos la versión maestro-esclavo dada, que este dispositivo es mucho más simple?
He estado pensando mucho en esta definición hoy.
Como otros señalaron, los significados exactos variarán. Además de eso, probablemente verá que más personas se equivocan, incluso en este sitio, de las que aciertan. ¡No me importa lo que diga wikipedia!
Pero en general:
Además,
Un flip flop se caracteriza más típicamente por una topología maestro-esclavo. Esto es dos acoplados (puede haber lógica entre ellos), enganches de fase opuesta espalda con espalda (a veces en la industria llamados L1/L2).
Esto significa que un flip flop consiste inherentemente en dos elementos de memoria: uno para mantener durante el ciclo bajo y otro para mantener durante el ciclo alto.
Un pestillo es solo un único elemento de memoria (pestillo SR, pestillo D, pestillo JK). En mi opinión, el hecho de que introduzca un flujo de datos de puerta de reloj en el elemento de memoria no lo convierte en un flip flop (aunque puede hacer que actúe como tal: es decir, se activa más el borde ascendente). Simplemente lo hace transparente por una cantidad específica de tiempo.
A continuación se muestra un verdadero flip flop creado a partir de dos pestillos SR (observe los relojes de fase opuesta).
Y otro verdadero flip-flop (este es el estilo más común en VLSI) de dos D-latches (estilo de puerta de transmisión). Observe nuevamente los relojes de fase opuesta :
Si pulsa el reloj hasta un pestillo lo suficientemente rápido, comienza a parecerse a un comportamiento de flip flop (pestillo de pulso). Esto es común en el diseño de rutas de datos de alta velocidad debido a la menor demora de D->Out y Clk->Out, además del mejor tiempo de configuración otorgado (el tiempo de espera también debe aumentar, el precio a pagar es pequeño) por la transparencia a lo largo de la duración de el pulso. ¿Esto lo convierte en un flip flop? No realmente, ¡pero parece que actúa como tal!
Sin embargo, esto es mucho más difícil de garantizar que funcione. Debe verificar en todos los rincones del proceso (nmos rápidos, pmos lentos, tapa de cable alta, cable bajo r; como ejemplo de uno) y todos los voltajes (el voltaje bajo causa problemas) que el pulso de su detector de borde permanece lo suficientemente ancho como para abrir realmente el pestillo y permitir la entrada de datos.
Para su pregunta específica, en cuanto a por qué se considera un pestillo de pulso en lugar de un flip flop, es porque realmente solo tiene un elemento de almacenamiento de bits sensible de un solo nivel. Aunque el pulso es angosto, no forma un sistema de bloqueo y dique que cree un flip flop.
Aquí hay un artículo que describe un pestillo de pulso muy similar a su consulta. Una cita pertinente: "Si la forma de onda del reloj de pulso activa un pestillo, el pestillo se sincroniza con el reloj de manera similar a un flip-flop activado por flanco porque los flancos ascendentes y descendentes del reloj de pulso son casi idénticos en términos de tiempo".
EDITAR Para mayor claridad, incluí un gráfico de diseño basado en pestillo. Hay un pestillo L1 y un pestillo L2 con lógica en el medio. Esta es una técnica que puede reducir los retrasos, ya que un pestillo tiene menos retraso que un flip flop. El flip flop se "separa" y la lógica se pone en el medio. ¡Ahora, ahorra un par de retrasos en la puerta (en comparación con un flip flop en cualquier extremo)!
Mucha gente se referirá a los dispositivos con reloj como "flip flops" y a los dispositivos sin reloj como pestillos. Cuando lo aprendí, era "chanclas con reloj" y "chanclas". Cualquiera de los dos puede ser disparado por el borde.
Hay suficiente ambigüedad que, cuando es importante, confíe en los números de pieza, las hojas de datos y los diagramas de tiempo, y no en las descripciones de palabras.
Gracias a todos los que han respondido a mi pregunta. Como era de esperar, hay cierto desacuerdo. Lamentablemente, la semántica suele ser más importante que la comprensión cuando se trata de exámenes. Si necesito discutir con una junta de examen por calificar incorrectamente el examen de un estudiante de Ciencias de la Computación de nivel A (y lo he hecho en el pasado), quiero estar en una posición sólida. Pensé en compartir con ustedes un par de páginas del libro de texto oficial del curso A Level.
El primer diagrama es un pestillo SR bajo activo. El libro lo llama flip-flop.
En el texto, el libro dice: "Al usar dos flip-flops, podemos crear un circuito llamado flip-flop tipo D que usa un circuito controlado por reloj para controlar la salida, retrasándolo en un pulso de reloj. La D significa retraso ." Este texto parece referirse a la configuración maestro/esclavo. El segundo diagrama (figura 14.2) está etiquetado como un flip-flop tipo D. En realidad, es un pestillo D activo con compuerta alta.
¡No es muy útil!
Voy a decidirme por "Un flip flop se caracteriza más típicamente por una topología maestro-esclavo". como ha sugerido jbord39, con la advertencia de que el término flip-flop se usa a menudo para referirse a un pestillo activado por el borde y, a veces, a cualquier tipo de pestillo. Creo que de ahí viene by book, aunque no llegue allí de manera convincente.
Gracias de nuevo a todos.
Un flip flop es diferente a un pestillo. Ambos son circuitos biestables, pero de hecho son dos cosas diferentes.
El pestillo tiene un pin de habilitación y escucha la entrada/entradas de datos solo cuando este pin es alto. Cuando está bajo, el pestillo se congela y memoriza su estado. Ahora, incluso si manipula las entradas, no reaccionará.
El flip flop contiene un pin de reloj en su lugar, que reacciona solo a pulsos cambiantes (cambios de nivel). Piensa en una onda cuadrada. El tiempo transitorio entre apagado y encendido; apagado y encendido es el tiempo en que el circuito reacciona a las señales de entrada. Solo entonces está disponible para cambiar, no cuando el pin está estable y completamente encendido.
Tenga en cuenta que las líneas verdes representan el período en el que escucha la entrada y las líneas rojas el período en el que no lo hace. El pestillo permite la entrada solo durante los períodos que se muestran con las líneas rojas superiores.
El SR independiente no es un circuito factible en la práctica.
Créditos a jbord39 por señalar el error. Imagen tomada de radio-elctronics.com y editada.
Los términos que usa en su pregunta están 100% en línea con lo que he escuchado en el contexto del diseño de circuitos integrados analógicos. Los pestillos tienen una señal de habilitación sensible al nivel, mientras que las chanclas tienen señales de habilitación sensibles al borde llamadas "reloj". He notado algunos lugares en línea o en algunos libros que parecen usar el término flip flop para ambos tipos, lo que puede tener sentido si solo piensa en el estado del circuito "flip flop" entre dos puntos estables, pero siempre que los diseñadores están hablando de En los circuitos en los que trabajo, los pestillos son sensibles al nivel y los flip flops (o también comúnmente solo "flops") son sensibles a los bordes.
Acerca de su otra pregunta sobre si diseñar un flip flop como un pestillo con un detector de bordes frente a un par de pestillos maestro-esclavo. De cualquier manera puede funcionar, suponiendo que haya suficiente retraso en su detector de bordes. Los pestillos tendrán una cantidad mínima de tiempo de activación. Sospecho que es más difícil hacer un flip flop de alta velocidad usando la técnica del detector de bordes, y el tiempo de configuración/retención puede variar más según el proceso/voltaje/temperatura.
(Pase al final si desea saber si el último circuito del OP es flip-flop o pestillo).
En términos básicos, un Flip-Flop es un arreglo de puertas lógicas (o componentes) que permite el enganche de 2 estados junto con un pin de reloj que permite estos cambios de estado.
Ahora aquí está la diferencia entre un flip-flop y un pestillo. Los pestillos son asíncronos, mientras que los flip-flops son síncronos.
Los pestillos asíncronos no requieren un pin de actualización, que comúnmente se llamaría CLK
pin (abreviatura de reloj) en un flip-flop. Todo lo que les importa es si las entradas están en un estado específico, ya sea HIGH
o LOW
. Cuando se activa una cierta combinación de HIGH
s y LOW
s en la entrada, es cuando el circuito decide realizar una acción y el resultado deseado se devuelve "inmediatamente". Hay 4 acciones posibles en un pestillo.
- Hacer nada
- Establecer
Q
enHIGH
- Establecer
Q
enLOW
- El estado inválido (supuestamente invertir el valor de
Q
)
Tenga en cuenta que Q'
depende de Q
.
Un ejemplo es el pestillo SR que demuestra las 4 acciones posibles que puede realizar un pestillo:
- Cuando
S
esLOW
yR
esLOW
, nada cambia.- Cuando
S
esHIGH
yR
esLOW
,Q
se establece enHIGH
.- Cuando
S
esLOW
yR
esHIGH
,Q
se establece enLOW
.- Cuando
S
isHIGH
yR
isHIGH
,Q
se invierte, a una velocidad "impredeciblemente" rápida. Este estado no es válido.
CLK
pin como se mencionó anteriormente. Cuando el CLK
pin cambia de estado (ya sea de LOW
a HIGH
, viceversa o incluso ambos), los pines de datos se "capturan" y el flip-flop realiza una acción basada en la combinación de HIGH
s y LOW
s de los datos capturados de los pines de datos. Hay dos acciones para el CLK
pin.
- Hacer nada
- "Capture" datos de los pines de datos y realice una acción en la salida en función de los valores de los pines de datos en ese momento específico.
Nuevamente, hay 4 acciones posibles que el circuito puede hacer en la salida.
- Hacer nada
- Establecer
Q
enHIGH
- Establecer
Q
enLOW
- Invertir el valor de
Q
(ahora es válido porque solo lo hace una vez)
Pero, ¿por qué puedes preguntar? Ese E
pin no es un pin de reloj. Los pines de reloj permiten que el circuito analice la información de los pines de datos UNA VEZ, donde esa información se envía como instrucciones para realizar acciones específicas en la salida. Sin embargo, habilitar pines como este permite que el circuito analice la información de los pines de datos siempre que se mantenga alto y establezca constantemente los valores de la salida. Por lo tanto, es un pestillo. (Gracias a jbord39 por señalar mi error).
Entonces, el flip-flop es como un pestillo, excepto que necesita un paso adicional de "confirmación", que es el CLK
pin.
Entonces, ¿es ese último circuito de la pregunta del OP un flip-flop? Intente mantener la C en alto y vea si la salida cambia cuando cambia el valor de D. Si la salida cambia, debería llamarse enable en su lugar y es un pestillo. Pero si la salida no cambia (en cuyo caso, ese es el caso), entonces es un flip-flop.
Las imágenes provienen de Wikipedia.
Glacial
KyranF
dennis williamson
keshlam
usuario253751
KyranF