Diseño un divisor de frecuencia en FPGA. No es más que el flip-flop D, que utiliza la salida invertida como entrada. Luego, en la salida de D, el flip-flop es una señal con media frecuencia de la señal de entrada CLK.
El problema es que la señal de salida es mala. Para un semestre de la señal de entrada, está bien, pero en el segundo semestre hay muchos impulsos en la señal de salida.
Todo se pone en estado suficiente cuando intento medir la señal en la entrada. Cuando me conecté a la entrada solo la pieza de cable, también me ayudó. Así que creo que la señal de entrada es con algo de ruido (tiene pelos o pelo o cómo decirlo) y eso hace que este problema.
Más información: La frecuencia de la señal de entrada es de 500Hz
Esta señal de entrada es generada por el dispositivo que necesito usar. Intenté ver esta señal con un osciloscopio, pero influyo en ella midiendo. Así que no sé si la señal de entrada ya es ruidosa o si el ruido se genera en algún lugar de la traza a FPGA.
Hay un convertidor de nivel (sn74lvc4245apwr) conectado entre la señal fuente y el FPGA, que cambia el nivel de voltaje de 5V a 3V3. Hay una traza bastante larga entre la salida del convertidor de nivel y la entrada a FPGA. No hay nada más conectado a este rastro. La GND se encuentra entre cada ruta de señal en el tablero. El esquema del tablero en el que lo pruebo es complejo y, por lo tanto, es difícil compartirlo aquí.
El FPGA pertenece al Módulo Darnaw (Enterpoint, .uk, pga-modules), que está conectado a la PCB mediante soldadura (está en un zócalo)
El diseño de FPGA se realiza en HDL.
Código HDL:
Port (
CLK_IN : in STD_LOGIC;
CLK_OUT : out STD_LOGIC;
);
...
process(CLK_IN)
begin
if falling_edge(CLK_IN) then
CLK_OUT <= not CLK_OUT;
end if;
end process;
Recibí un consejo: conectar esta señal CLK_IN a otro pin de E / S dentro de FPGA y luego usar esta nueva señal. Imagen de esta solución: enlace
Este consejo ayuda, la salida del FPGA es mejor. Creo que la señal en la entrada mejora debido a los circuitos de E / S, tiene que pasar. Pero consume dos pines más de FPGA, por lo que no me gusta esta solución.
¿Hay alguna otra solución que pueda hacer en la entrada de FPGA o en FPGA dentro de la lógica? También puedo dar algo en la traza de la señal de entrada, algunas terminaciones o puertas lógicas para mejorar esta señal de entrada. Pero no puedo cambiar la fuente de la señal del reloj.