¿Qué es un flip flop?

24

Parece que hay una serie de 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 imparto es probablemente el más confuso (de hecho, tengo poca fe en el libro porque está mal en varios lugares).

Me siento cómodo con el funcionamiento de los pestillos (SR, gated SR, gated D), y la diferencia entre los dispositivos activados por nivel y por borde, al menos en términos de puertas lógicas y diagramas de tiempo. Sin embargo, todavía estoy buscando una definición concisa de un flip flop y de un pestillo.

Esto es lo que creo hasta ahora:

"Un flip flop es un dispositivo biestable desencadenado por borde que puede almacenar 1 bit".

"Un pestillo es un dispositivo biestable desencadenado por nivel que puede almacenar 1 bit".

He visto publicaciones anteriores en este sitio web sobre este tema y, por más esclarecedor que sea, todavía estoy buscando algo definitivo.

Mi comprensión actual, que quiero verificar, se encuentra en los diagramas a continuación ...

De lado a lado están lo que entiendo son dos implementaciones de un pestillo D con puerta activada por nivel.

Debajo hay un detector de borde positivo, en ese breve momento en el que la compuerta NO aún no ha respondido a la entrada de cambio de bajo a alto, es decir, el borde ascendente (el rojo es 1 azul es 0).

En el último diagrama, el detector de bordes se ha instalado en un pestillo D con fecha y esto es lo que lo convierte en un flip-flop.

¿El último diagrama es realmente un flip flop o sigue siendo solo un pestillo?

¿Y por qué necesitamos la versión de esclavo maestro dada, que este dispositivo es mucho más simple?

    
pregunta Drummy

6 respuestas

8

He estado pensando mucho en esta definición hoy.

Como han señalado otros, los significados exactos variarán. Además de eso, probablemente verá que más personas se equivocan, incluso en este sitio, que en este sitio. ¡No me importa lo que diga wikipedia!

Pero en general:

  • Un flip flop cambiará su estado de salida como máximo una vez por ciclo de reloj.
  • Un pestillo cambiará su estado tantas veces como las transiciones de datos durante su ventana de transparencia.

Además,

  • Un flip flop es muy seguro. Casi a prueba de tontos. Por este motivo las herramientas de síntesis suelen utilizar flip flops. Pero son más lentos que un pestillo (y usan más poder).
  • Los cierres son más difíciles de usar correctamente. Pero, son más rápidos que las chancletas (y más pequeñas). Por lo tanto, los diseñadores de circuitos personalizados a menudo "reparten el flip flop" a través de su bloque digital (un pestillo en cada extremo con fase opuesta) para exprimir algunos picosegundos extra de un arco de sincronización incorrecto. Esto se muestra en la parte inferior de la publicación.

Un flip flop suele caracterizarse por una topología maestro-esclavo. Se trata de dos acoplados (puede haber lógica entre ellos), la fase opuesta se enclava de espaldas (a veces en la industria llamada L1 / L2).

Esto significa que un flip flop consiste intrínsecamente 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 elemento de memoria único (SR latch, D latch, JK latch). El hecho de que introduzca un flujo de datos de reloj a puerta en el elemento de memoria no lo convierte en un flip flop, en mi opinión (aunque puede hacerlo actuar como uno: es decir, se activa más el flanco ascendente). Simplemente lo hace transparente durante un período de tiempo específico.

A continuación se muestra un flip flop verdadero creado a partir de dos pestillos SR (observe los relojes de la fase opuesta).

Yotroflip-flopverdadero(esteeselestilomáscomúnenVLSI)desdedospestillosD(estilodepuertadetransmisión).Vuelveanotarlosrelojesdefaseopuestos:

Sipulsaelrelojhastauncierrelosuficientementerápido,comienzaaparecerseauncomportamientodeflipflop(cierredepulso).EstoescomúneneldiseñoderutadedatosdealtavelocidaddebidoalamenordemoradeD->OutyClk->Out,ademásdelmejortiempodeconfiguraciónotorgado(eltiempoderetencióntambiéndebeaumentar,precioreducidoapagar)portransparenciaatravésdeDuracióndelpulso.¿Estolohaceunflipflop?Enrealidadno,peroseguroquesevecomouno!

Sinembargo,estoesmuchomásdifícildegarantizarparatrabajar.Debeverificarentodaslasesquinasdelproceso(nmosrápido,pmoslento,casquillodecablealto,cablebajor;comoejemplodeuno)ytodoslosvoltajes(elbajovoltajecausaproblemas)queelpulsodesudetectordebordesiguesiendolosuficientementeampliocomoparaabrirlo.elpestilloypermitirlaentradadedatos.

Parasupreguntaespecífica,encuantoaporquéseconsideraunlatchlatchenlugardeunflipflop,esporquerealmentesolotieneunelementodealmacenamientodebitssensibleaunsolonivel.Aunqueelpulsoesestrecho,noformaunsistemadebloqueoyrepresaquecreaunflipflop.

Aquí hay un artículo que describe un cierre de pulso muy similar a su consulta. Una cita pertinente: < em> "Si la forma de onda del reloj de pulso dispara un pestillo, el pestillo se sincroniza con el reloj de manera similar al flip-flop disparado por el borde porque los flancos ascendentes y descendentes del reloj de pulso son casi idénticos en términos de tiempo. "

EDIT 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 medio. Esta es una técnica que puede reducir los retrasos, ya que un pestillo tiene menos retardo que un flip flop. El flip flop se "separa" y la lógica se pone en el medio. ¡Ahora, guarda un par de retrasos en la puerta (en comparación con un flip flop en cada extremo)!

    
respondido por el jbord39
1

Muchas personas se referirán a los dispositivos temporizados como "flip flops" y los dispositivos no cronometrados como pestillos. Cuando lo aprendí, era "flip flops cronometrado" y "flip flops". Cualquiera de los dos puede ser activado por el borde.

Hay suficiente ambigüedad que, cuando es importante, confía en las hojas de datos de los números de pieza y en los diagramas de tiempo y no en las descripciones de las palabras.

    
respondido por el Scott Seidman
1

Gracias a todos los que respondieron mi pregunta. Como era de esperar, hay algún desacuerdo. Desafortunadamente, la semántica es a menudo más importante que la comprensión cuando se trata de exámenes. Si necesito discutir con una junta de examen para marcar incorrectamente el examen de un estudiante de A Level Computer Science (y lo he hecho en el pasado), quiero estar en una posición sólida. Pensé que compartiría con ustedes un par de páginas del libro de texto oficial del curso A Level.

El primer diagrama es un latch SR activo bajo. El libro lo llama un flip-flop.

En el texto, el libro dice "Al usar dos flip-flops podemos crear un circuito llamado D-Type flip-flop que usa un circuito controlado por reloj para controlar la salida, retrasándolo por un pulso de reloj. La D significa demora ". Este texto parece estar refiriéndose 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 alto y activo.

¡No es muy útil!

Voy a decidirme por "Un flip flop se caracteriza 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 provocado por el borde y, a veces, a cualquier tipo de pestillo. Creo que aquí es de donde viene el libro, aunque no sea convincente.

Gracias de nuevo a todos.

    
respondido por el Drummy
1

Un flip flop es diferente que un pestillo. Ambos son circuitos biestables, pero de hecho son dos cosas diferentes.

El pestillo tiene un pin de habilitación y escucha las entradas / entradas de datos solo cuando este pin está alto. Cuando está bajo, el pestillo se congela y memoriza su estado. Ahora incluso si manipulas las entradas, no reaccionará.

El flip flop contiene un pin de reloj, que reacciona solo al cambiar los pulsos (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 estará disponible para cambiar, no cuando el pin esté estable y completamente encendido.

Tenga en cuenta que las líneas verdes representan el período que escucha y las líneas rojas el período cuando no lo hace. El pestillo permite la entrada solo durante los períodos mostrados por las líneas rojas superiores.

El SR independiente no es un circuito viable en la práctica.

Créditos a jbord39 por señalar el error. Imagen tomada de radio-elctronics.com y editada.

    
respondido por el Daniel Tork
0

Los términos a medida que los usa en su pregunta están 100% en línea con lo que he oído usar en el contexto del diseño de IC analógico. Los pestillos tienen una señal de habilitación sensible al nivel, mientras que los flip flops 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 piensas en el estado del circuito "flip flopping" entre dos puntos estables, pero cuando los diseñadores hablan. a circuitos en los que trabajo, los pestillos son sensibles al nivel y los flip flops (o también los "flops") son sensibles al borde.

Acerca de la 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 cierres tendrán una cantidad mínima de tiempo de habilitación. Sospecho que es más difícil hacer un flip flop de alta velocidad utilizando la técnica del detector de bordes, y el tiempo de configuración / retención puede variar más con el proceso / voltaje / temperatura.

    
respondido por el Justin
0

(Salta al final si quieres saber si el último circuito del OP es flip-flop o pestillo).

En términos básicos, un Flip-Flop es una disposición de puertas lógicas (o componentes) que permite el bloqueo 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, lo que comúnmente se denomina pin CLK (corto para el reloj) en un flip-flop. Lo único que les importa es si las entradas están en un estado específico, ya sea HIGH o LOW . Cuando una determinada combinación de HIGH s y LOW s se instalan en la entrada, es decir, cuando el circuito decide realizar una acción y su resultado deseado se devuelve "inmediatamente". Hay 4 acciones posibles en un pestillo.

      
    1. no hacer nada
    2.   
    3. Establezca Q en HIGH
    4.   
    5. Establezca Q en LOW
    6.   
    7. El estado no válido (supuestamente invierte el valor de Q )
    8.   

    Tenga en cuenta que Q' depende de Q .

Un ejemplo es el latch SR que muestra las 4 acciones posibles que un latch puede hacer:

  
  1. CuandoSesLOWyResLOW,nadacambia.
  2.   
  3. CuandoSesHIGHyResLOW,QseestableceenHIGH.
  4.   
  5. CuandoSesLOWyResHIGH,QseestableceenLOW.
  6.   
  7. CuandoSesHIGHyResHIGH,Qseinvierte,aunatasarápida"impredeciblemente". Este estado no es válido.
  8.   
  • Los flip-flops síncronos le permiten establecer un valor para los pines de datos. Esto significa que solo se preocupa por el estado de estos pines. Sin embargo, el circuito no decide hacer ninguna acción a la salida todavía. Tienes el pin CLK 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 sy LOW s de los datos capturados de los pines de datos. Hay dos acciones para el pin CLK .
  
  1. no hacer nada
  2.   
  3. "Capture" datos de los pines de datos y realice una acción en la salida basada en los valores de los pines de datos en ese momento específico del tiempo.
  4.   

De nuevo, hay 4 acciones posibles que el circuito puede realizar en la salida.

  
  1. no hacer nada
  2.   
  3. Establezca Q en HIGH
  4.   
  5. Establezca Q en LOW
  6.   
  7. Invertir el valor de Q (ahora es válido porque solo lo hace una vez)
  8.   

ESTO NO ES UN FLIP-FLOP:

¿Peroporquépuedespreguntar?EseEpinnoesunpindereloj.LospinesdelrelojpermitenqueelcircuitoanalicelainformacióndelospinesdedatosUNAVEZ,dondeesainformaciónseenvíacomoinstruccionespararealizaraccionesespecíficasenlasalida.Sinembargo,habilitarpinescomoestelepermitealcircuitoanalizarlainformacióndelospinesdedatossiemprequesemantengaaltayestablezcaconstantementelosvaloresdelasalida.Poresoesunpestillo.(Graciasajbord39porseñalarmierror).

Entonces,elFlip-flopescomounpestillo,exceptoquenecesitasunpasoadicionalde"confirmación", que es el pin CLK .

Entonces, ¿ese último circuito de la pregunta del OP es 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 habilitar en su lugar y es un pestillo. Pero si la salida no cambia (en ese caso), entonces es un flip-flop.

Las imágenes se obtienen de Wikipedia.

    
respondido por el Bradman175

Lea otras preguntas en las etiquetas