Estoy trabajando en un sistema basado en Microblaze. Estoy usando FSL para transferir datos directamente desde un núcleo de controlador AC'97 a mi núcleo DSP personalizado. Los buses FSL están sincronizados con el reloj del sistema de 125MHz. Los componentes DSP se han diseñado teniendo en cuenta un reloj de 48 kHz (la velocidad de muestreo del códec).
¿Cómo hago para sincronizar las muestras a través de los componentes DSP a 48kHz?
El bus FSL es esencialmente un FIFO, que señala cuándo hay datos disponibles para que el esclavo los lea. A través de un poco de experimentación, veo que las muestras llegan a aproximadamente 48 kHz (estaba usando una interrupción del temporizador en uBlaze para monitorear esto, de ahí el "aproximadamente"). ¿Hay alguna manera de que pueda generar un "reloj" sensato a partir de este hecho, y también permitir que XST comprenda los requisitos de tiempo de lo que estoy haciendo?