¿Cómo interactuar un ADC con FPGA a través de la señal CLKOUT en verilog?

1

Tengo un ADC (TLC2323-12) que (según tengo entendido en la hoja de datos) tiene dos modos de controlar la salida de la señal convertida. Uno de los métodos es con la señal de entrada SCK que se puede controlar desde el FPGA siempre que quiera cambiar el valor al FPGA, y el otro es a través de CLKOUT, que es un reloj interno del ADC que "se ejecuta automáticamente". Soy nuevo en esto) escupir los resultados poco a poco de la resolución de 12 bits en total. Este último método se describe en la hoja de datos como "Alta velocidad" en comparación con el método SCK.

Ahora, pude controlar el ADC con el método SCK, porque puedo enviar las señales desde el módulo superior FPGA fácilmente y seleccionar el valor que quiero, en general, trabajo con solo 1 reloj. Pero con el CLKOUT, al parecer este se comporta como un segundo reloj, ¿entonces este es un sistema de doble reloj?

¿Qué debo hacer para codificar correctamente la interfaz al usar el método CLKOUT? Hay 2 relojes ahora. El reloj interno del FPGA y el CLKOUT vienen del ADC que pueden "anunciar" al FPGA la disponibilidad de los datos.

Estaba leyendo que una forma fácil es codificar un FIFO asíncrono que puede escribir desde el CLKOUT y leer desde el reloj FPGA. ¿Es esto correcto?

La interfaz es serie, 2 canales.

    
pregunta sujeto1

1 respuesta

2

Creo que debe ir un poco más allá de la solución propuesta. Le sugiero que lea los datos del ADC en un registro usando el reloj del ADC. El registro debe ser lo suficientemente largo como para contener todo el valor entero del ADC. Una vez que el registro esté lleno con una lectura, la lógica de la máquina de estado asociada generaría una señal para indicar que el valor era válido y no iba a cambiar y se puede leer con la lógica FPGA principal.

Desde el punto de vista de la lógica activada desde el reloj principal del sistema FPGA, la señal de registro completo sería asíncrona, sin embargo, podría usarla como una señal de habilitación para copiar los datos en un ciclo de reloj del sistema a otro registro en el siguiente sistema de borde del reloj. Por lo tanto, ahora tendría los datos disponibles sincrónicos al reloj del sistema FPGA.

La única restricción con este esquema que puedo ver es que el reloj FPGA tendría que ser a una velocidad mayor que el reloj ADC para garantizar que los datos estuvieran disponibles durante el tiempo suficiente.

    
respondido por el John

Lea otras preguntas en las etiquetas