Problemas de sincronización y sesgo de reloj en diseños digitales

4

Estoy leyendo "Prototipado rápido de sistemas digitales: Edición SOPC" , y en la p.113 contiene la siguiente declaración:

  

En VHDL, como en cualquier diseño de lógica digital, no es una buena práctica de diseño AND u otras señales con el reloj. Use un flip-flop con un reloj habilitado en lugar de evitar problemas de sesgo de reloj y de sincronización.

¿Podría explicar qué son exactamente esos "problemas de sesgo de sincronización y de reloj" y dar algunos ejemplos contrastantes de diseños buenos y malos?

    
pregunta NPE

2 respuestas

4

Considere el caso en el que tiene algunos datos que desea enganchar en un registro bajo ciertas condiciones particulares:

Aquídeberíahacervalerlaseñaldelapuertacuandoquieraguardarlosdatosdelflip-flopD1enelflip-flopD2(talvezelD2seaunbúferdelecturaopartedeunregistrodedesplazamiento,ysedetectóunatransaccióndelectura).Sinembargo,mientrastanto,losdatosdeentradaaD1puedenestarcambiando.

LaseñaldelrelojhaciaelD1ocurrecasitanprontocomoelgeneradordelrelojproduceunflancoascendente.D2,sinembargo,noveelbordedelrelojhastaalgúntiempodespués,debidoalretrasodepropagaciónatravésdelapuertaAND.

SielestadodeD1hacambiado,entoncesD2podríabloquearlosnuevosdatos,enlugardelosdatosantiguosqueesperabadesusimulaciónRTL.Peoraún,dependiendodelademoraderelojaQdeD1,elretardodelacompuertaANDyeltiempodeesperadelflip-flop,laentradadeD2puedeestarenmediodeuncambiocuandodetectaelflancoascendentedelaseñaldelreloj,loqueocasionaquelasalidaavance.metastable.

Si,encambio,utilizaunflip-flopconunaentradadehabilitacióndereloj,

no tendrás este problema. Suponiendo que los flip-flops tienen un tiempo de espera cero (típico dentro de los FPGA), no hay demora adicional para que el reloj alcance D2, y los dos flip-flops detectarán el límite del reloj a (casi al mismo tiempo) al mismo tiempo. Entonces, D2 siempre verá los datos "antiguos" de D1, ya que su simulación RTL le hizo esperar y no tendrá problemas con la metastabilidad.

    
respondido por el The Photon
2

Las distintas señales y el reloj deberán pasar por varios dispositivos para lograr la función lógica deseada. Estos dispositivos tendrán retardos de propagación ligeramente diferentes, lo que afectará el tiempo de las señales, y retrasará ligeramente el reloj, sesgando los bordes en relación con las otras señales. A bajas velocidades de reloj, es poco probable que estos efectos causen problemas, pero podrían hacer que un sistema de alto rendimiento no funcione correctamente.

Tengo la edición de Quartus II de ese libro, BTW.

    
respondido por el Leon Heller

Lea otras preguntas en las etiquetas