Verilog “Tick” Generation; ¿Preocupación por tiempo de espera?

0

En los "Ejemplos de creación de prototipos FPGA por Verilog" de Pong Chu, recomienda usar un "tic" "de habilitación periódica para dividir el reloj mientras se mantiene un sistema síncrono (para evitar que el sistema se sincronice).

El ejemplo para un contador (r_reg) que genera un "tick" usa un mux y un comparador:

assign max_tick = (r_reg == TICK_VALUE) ? 1'b1 : 1'b0;

Ejemplo de generación del tick (simulado):

Las cosas parecen simular bien usando esta descripción; Pero, ¿hay alguna razón para preocuparse por violar el tiempo de espera para el siguiente elemento en serie cuando se utiliza el tick de salida generado de esta manera como una señal de habilitación? Si no, ¿por qué no?

Para aclarar, tengo entendido que el dispositivo habilitado vería el tic en el ejemplo anterior en el borde ascendente del reloj = 0000, pero el borde del reloj ya está bajando de nuevo. violando el tiempo de espera?

    
pregunta Sharq

1 respuesta

2

En general, no hay un problema de tiempo de espera con este enfoque. Lo que su simulación no muestra es que, en realidad, hay un retraso significativo desde el aumento del límite del reloj hasta el aumento o el descenso de la señal de tick. Si incorporas este retraso en tu simulación, verás que la señal de tick no cambia exactamente a la misma hora que el reloj y no hay un problema de tiempo de espera.

Este es un buen estilo de diseño, por cierto. La mayoría de los FPGA tienen recursos dedicados para enrutar el reloj y es mucho mejor generar estas señales de activación "tick" que intentar crear un reloj cerrado.

    
respondido por el Joe Hass

Lea otras preguntas en las etiquetas