¿Cómo elegir el tipo de flip flop para la implementación?

0

¿Cómo elegir el tipo de flip flop para la implementación en el diagrama de estado de Moore o Mealy? No puedo entender esto. ¿Alguien podría ayudarme? Hay tipo t, tipo d, tipo s-r, tipo j-k. ¿Cómo elegir uno de los mejores flip flop?

    
pregunta iNdra

3 respuestas

1

La elección es puramente arbitraria. Algunos tipos de flip-flop pueden reducir la complejidad de su lógica del próximo estado. Sin embargo, es realmente difícil decir cuál será la mejor, ya que necesitarías verificar cada tipo de flip-flop con cada codificación que puedas usar.

Los flip-flops D son fáciles de usar porque su excitación es exactamente la misma que la del siguiente estado.

Si planea usar CPLD o FPGA para implementar su máquina, use flip-flops D, ya que tendrán un flip-flop D incorporado. sus

    
respondido por el Szymon Bęczkowski
1

Muchos tipos de CPLD permiten que los flip flops se configuren de forma independiente para la operación D o T; la opción T causará que la salida del flop sea XOR'ed en la entrada. Muchas piezas de software de ubicación intentarán por defecto la reducción de la lógica utilizando ambos tipos de flip flop y utilizar cualquier tipo de producto que requiera la menor cantidad de términos. En general, los flops D son buenos cuando se supone que las salidas deben ser forzadas a un estado particular, excepto cuando se aplica una combinación de condiciones, mientras que los flops T son buenos si se supone que las salidas se quedan, excepto cuando se aplica una combinación de condiciones. Como ejemplo de un lugar donde gana un flop en T, considere una salida Q0 que se supone que trabe D0 cuando A0-A15 esté todo configurado, y permanezca en otra posición. Usar un flop T requeriría dos términos de producto:

Toggle output if either:
  A0-A15 are set, Q0 is clear, and D0 is set, or
  A0-A15 are set, Q0 is set, and D0 is clear

Por el contrario, usar un flop D requeriría 17 términos de producto:

Set output if either:
  A0-A15 are set and D0 is set, or
  Q0 is set and A0 is clear, or
  Q0 is set and A1 is clear, or
  ...
  Q0 is set and A15 is clear

Si uno tuviera una salida Q1 que se suponía que estaba clara a menos que A0-A15 junto con D1 estuvieran configurados, un flop D sería un término de producto:

Set output if:
  A0-A15 are set and D1 are set

Usar un flop en T requeriría 18 términos de producto:

Toggle output if:
  Q1 is clear, A0-15 are set, D1 is set
  Q1 is set and A0 is clear
  Q1 is set and A1 is clear
  ...
  Q1 is set and A15 is clear
  Q1 is set and D1 is clear

Tenga en cuenta que un flip flop JK se puede emular bastante bien usando un flop T, usando la fórmula T = (! Q & J) | (Q &! K). La principal limitación con dicha emulación en un CPLD es que K se invierte en relación con J; en un CPLD es posible que tanto J como K puedan representarse con pocos términos de productos, mientras que ambos! J y! K requieren muchos, o viceversa.

Las diferencias entre los tipos de flop no son tan grandes en un FPGA como en los CPLD, ya que cualquier tipo de flop puede ser emulado en términos de cualquier otro con la adición de una pequeña cantidad de lógica simple (por ejemplo, una D o una T el flop puede implementarse en términos del otro agregando una única puerta XOR), y los FPGA tienen un gran número de circuitos lógicos simples (a diferencia de los CPLD que tienen un pequeño número de circuitos complejos). En consecuencia, tener que usar un elemento lógico para calcular un "valor intermedio" representa una "pérdida" mucho menor en un diseño FPGA que en un diseño CPLD.

Una nota de despedida: independientemente de los estados de sus salidas, los estados de un flip-flop D estarán bien definidos si ciertas condiciones de entrada se aplican en el siguiente clip (la salida del flop D se definirá si su entrada es; el JK el flop se definirá si J y K tienen valores definidos de alto y bajo o de alto y bajo. Incluso si las salidas retenían de alguna manera un valor medio alto, se vería forzado a un nivel alto o bajo limpio en el siguiente ciclo. Un pestillo en T puede, al menos en teoría, no tener tal propiedad. Si de alguna manera queda bloqueado en un estado medio indeterminado, los efectos de intentar calcular la entrada T pueden producir resultados indeterminados y el cierre podría permanecer en un estado medio indeterminado.

    
respondido por el supercat
0

Personalmente, yo estandarizaría un flip-flop J-K en lugar de usar un rango de tipos porque el comportamiento del flip-flop JK es completamente predecible bajo todas las condiciones . Sin embargo, los tipos D también podrían ser utilizados. Evitaría SR, T, etc., ya que todos pueden derivarse (como señala Jippie) del tipo JK.

Eche un vistazo a enlace como un ejemplo de diseño de máquina de estado finito usando flip flops.

    
respondido por el JIm Dearden

Lea otras preguntas en las etiquetas