Detector de reloj para mi proyecto de alto nivel

R

rakko

Guest
una pregunta para los ingenieros que hay.Estoy buscando un circuito digital verilog que las salidas de 1, mientras el reloj está corriendo y salidas un cero cuando el reloj se detiene.alguien sabe cómo hacer esto.

 
Recuerde que el HDL sintetizada no tiene ningún concepto del tiempo.¿Tienes un segundo reloj disponibles?O tal vez algún tiempo otro dispositivo de hardware retraso?Usted puede utilizar una de esas cosas para crear una ventana de tiempo.En esa ventana, se cuentan los relojes de entrada.Si el contador es cero, entonces el reloj de entrada no se está ejecutando.

 
Rakko ¡Hola!

¿Hay un reloj de señal de habilitación de su diseño?O el uso con una señal de entrada?

Good Luck

 
rakko escribió:

una pregunta para los ingenieros que hay.
Estoy buscando un circuito digital verilog que las salidas de 1, mientras el reloj está corriendo y salidas un cero cuando el reloj se detiene.
alguien sabe cómo hacer esto.
 
Usted debe tener otro reloj de referencia estable.

El detector de reloj funciona bajo el dominio de reloj de referencia.Y usted debe saber el rango de frecuencia de reloj de la "" para ser detectado.Si la frecuencia del reloj de referencia es mucho mayor que el "reloj" que se dectected, se puede detectar el cambio de 0 a 1 y / o 1 a 0 en una ventana de tiempo.Si la frecuencia de las reloj de referencia es más bajo.usted podría dividir a la detectada "reloj" por algún valor para que el nuevo "reloj" frecuencia de al menos 2 veces más bajo que el reloj de referencia, y luego de detectar el nuevo "reloj".El resultado es el mismo.Alta después de 5 minutos:¿Qué pasa si sólo tiene un reloj, el reloj detectado?

XOR la salida alterna a partir de dos fuerzas de facto con el reloj invertida?...o algunos trucos como eso ...También deben trabajar ...

Rara vez esta situación aparece en el diseño real.

 
Si sólo dispone de reloj y luego se tendrá que utilizar redisparable
monoshot, mantener constante de tiempo de monoshot redisparable poco mayor que
el período de reloj de reloj que desea detectar!

Si usted tiene dos relojes decir sys_clk y clk_in.A continuación, utilice el código siguiente!
Nótese aquí que las frecuencias de acuerdo a la diferencia en sys_clk y clk_in
usted necesita para ajustar el código siguiente!

Espero que esto ayude!

Código:

módulo clk_detect (/ * AUTOARG * /

/ / Salidas

clk_ok,

/ / Entradas

sys_clk, reset_n, clk_in

);

sys_clk de entrada, reset_n, clk_in;

clk_ok de salida;reg [8:0] count_clk_in;

reg [7:0] count_sys_clk;

reg cy_count_clk_in_r, cy_count_clk_in_rr;reset_cnt alambre = ~ cy_count_clk_in_rr & cy_count_clk_in_r;asignar clk_ok = ~ count_sys_clk [7];siempre @ (clk_in posedge o reset_n negedge) comienzan

if (! reset_n)

count_clk_in <= 0;

algo más

count_clk_in <= count_clk_in 1'b1;

final/ / Sincronizador flop doble para la lucha contra clk_in llevar!

siempre @ (sys_clk posedge o reset_n negedge) comienzan

if (! reset_n) comienzan

cy_count_clk_in_r <= 1'b0;

cy_count_clk_in_rr <= 1'b0;

end else begin

cy_count_clk_in_r <= count_clk_in [8];

cy_count_clk_in_rr <= cy_count_clk_in_r;

final

final

/ / Monoshot redisparable!

siempre @ (sys_clk posedge o reset_n negedge) comienzan

if (! reset_n) comienzan

count_sys_clk <= 0;

end else begin

if (reset_cnt)

count_sys_clk <= 0;

else if (! count_sys_clk [7])

count_sys_clk <= count_sys_clk 1'b1;

final

final

endmodule / / clk_detect
 
Creo que tienen una u problen poco en la beginng (a la derecha después de reset).
En caso de que después de reloj del sistema es resert Stabel pero no tenemos clk_in
count_sys_clk contará y no será un tiempo (256 sistemas de relojes), que clk_ok mostrará '1 ', pero clk_in no está bien.
En mi simulación de la relación es de sys_clk / clk_in = 50 / 1

 

Welcome to EDABoard.com

Sponsor

Back
Top