¿Tanto en posición como en negación en Verilog?

0

En Verilog, puedo usar un bloque siempre y hacer que se dispare en un borde positivo o negativo.

¿Es posible desencadenar el bloqueo tanto en el borde positivo como en , y por lo tanto tenerlo básicamente sincronizado al doble de la velocidad?

Si es así, ¿incurre en una penalización de recursos? ¿El compilador necesita duplicar el circuito y generar uno que se dispare en el borde positivo y otro que se dispare en el negativo?

    
pregunta Rocketmagnet

1 respuesta

1

Se puede simular, pero la construcción no se puede sintetizar.

Para el cronometraje de doble filo, debe construirse un circuito desde las FF's de flanco ascendente y descendente individual.

  

¿Necesita el compilador duplicar el circuito,

No, no hay una conversión automática (por fin aún no) a hardware para una construcción sincronizada de doble borde.

  

... ¿Entonces podría duplicar la construcción manualmente y hacer que las cosas funcionen a doble velocidad?

No, si fuera tan fácil, todos lo harían.
La frecuencia máxima de operación de un circuito síncrono está determinada por el tiempo que tarda una señal en salir de un registro, se transfiere a través de la lógica y luego sigue cumpliendo con el tiempo de configuración del siguiente registro.

Si usa el flanco de reloj ascendente y descendente, el tiempo se ha reducido a la mitad y la cantidad de lógica que puede usar entre los registros también se reduce a la mitad. El circuito total no se ejecutará más rápido.

Otro error: solo se reduce a la mitad si su reloj tiene un ciclo de trabajo perfecto de 50/50. Lo que es difícil de lograr, por lo que los diseñadores lógicos prefieren usar solo un borde del reloj.

    
respondido por el Oldfart

Lea otras preguntas en las etiquetas