Tengo un problema con la sincronización asíncrona de la señal de entrada. Estoy tratando de hacer el IIC_Slave basado en el kit de inicio FPGA Cyclone III.
Vi 3 casos:
-
Si no uso los activadores de sincronización, puedo disfrutar de un control de reloj metaestable que afecta como un número de bordes positivos y negativos en cada parte frontal del reloj. Se muestra en la foto 1.
-
Si uso los activadores de sincronización, este número de frentes desaparece (como se esperaba) pero aparece un nuevo error (parece una señal de reinicio en algunos bordes negativos de la señal del reloj). Al mismo tiempo, el osciloscopio no detecta la señal de reinicio.
-
¡Si uso las condiciones del caso 2 con el módulo generado por SignalTap, todo funciona correctamente! Pero no es una posibilidad válida para resolver problemas. (Se desperdician 738 elementos lógicos y 41000 bits de memoria)
Aquí hay explicaciones para los oscilograms . La señal digital D7 - reinicio para el contador. Las señales digitales D6-D1 - bits del contador de desplazamiento. La señal analógica amarilla - línea de datos de IIC. La señal analógica verde - línea de reloj de IIC.
Por favor, dime si tienes alguna idea sobre esta situación. Estoy tratando de hacer que funcione aproximadamente una semana y tengo un fuerte dolor de cabeza. Ni siquiera puedo formular una pregunta adecuada para google .