Frecuencia de reloj máxima

2

Como asignación para el curso HDL que estoy tomando, tengo que diseñar un filtro FIR. El módulo consta de dos, un pequeño circuito combinatorio que se puede usar para reiniciar el módulo, otra parte combinatoria que maneja la multiplicación convolucional y, por lo tanto, es considerablemente más grande y, finalmente, un montón de registros, todos con la misma señal de pulso de reloj.

Lo extraño es que después de sintetizar e implementar, ¡el software informa que puede funcionar a una velocidad de reloj máxima de alrededor de 600MHz! Aparentemente, la latencia de los circuitos combinacionales en total es de aproximadamente 27 nanosegundos, pero el período mínimo de reloj es de 1.5 nanosegundos.

Para generalizar la pregunta, considere el siguiente módulo:

Si S es considerablemente mayor que T , ¿el período mínimo de reloj debería ser tan grande como S o depende de T ? ¿O debería ser mayor que S+T ?

    

4 respuestas

1

Ya que tienes registros síncronos entre los bloques combinatorios, el tiempo mínimo es el mayor del tiempo mínimo para cada bloque.

El bloque S procesará los datos generados por el bloque T durante el último período de reloj, mientras que el bloque S procesa los siguientes elementos de datos.

Por lo tanto, puede aumentar \ $ f_ {max} \ $ reduciendo sus bloques combinatorios y colocando registros entre ellos, pero los resultados llegarán en un ciclo de reloj posterior.

Es bastante posible que la síntesis identifique los multiplicadores en su diseño y los asigne a bloques multiplicadores dedicados, lo que reduce significativamente el tiempo de establecimiento para S

También es posible que tenga un error en su diseño que le permita al compilador optimizar la funcionalidad, por ejemplo. al no enrutar las señales de salida a los pines, permite que el compilador elimine todo el diseño, ya que no tiene efectos externos visibles.

    
respondido por el Simon Richter
2

Sospecho que no ha podido agregar restricciones para el tiempo de configuración de entrada y el retraso de salida. Estos deben agregarse para obtener estimaciones de tiempo precisas. Además, probablemente necesite agregar un conjunto adicional de registros en los pines de entrada y otro en los pines de salida. Una vez que agregue estos registros, el período de reloj mínimo estimado debe ser igual al mayor retardo de propagación a través de la lógica combinacional más el tiempo de configuración de FF más el retardo de reloj a Q de FF más el retardo de cableado.

    
respondido por el Elliot Alderson
1

Depende del contexto que no tengamos.

Si espera colocar en cascada estos módulos, entonces el período de reloj es la suma de los retrasos S y T.

    
respondido por el Brian Drummond
0

Sospecho que tu FIR, max f_BW < < f (clk) < 1 / t (S), por lo que f (clk) es independiente de S y solo depende de t (T). A menudo se utilizan relojes multifase, como en DDR para reducir aún más la latencia y resincronizar la latencia intermedia del circuito asíncrono.

Todos los registros cronometrados externos deben incluirse en el análisis. Por lo tanto, la regla general es la simple latencia asíncrona seguida por el reloj de sincronización, donde la latencia + configuración + tiempo de espera debe cumplir con la temporización del reloj. Luego se conecta en cascada tantas veces como sea necesario con relojes monofásicos o multifásicos.

También toda la memoria intermedia (FF) agrega latencia.

Por lo tanto, elige las ventajas y desventajas entre cuántos relojes multifase y carreras metaestables asíncronas depende de sus requisitos de velocidad máxima y latencia asíncrona para optimizar el costo / valor de la latencia.

por ejemplo por lo tanto, la generación de DDR5 para GPU ofrece la velocidad más rápida a costos óptimos y la siguiente DRAM DDR6 de Samsung enlace

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas