Nota: La pregunta puede ser interpretada como un problema de diseño, lo estoy abordando como tal.
Si quieres probar el chip FTDI yo dejaría fuera la FPGA. Si usas eso estarás probando dos cosas a la vez, y no sabrás donde está el error en caso de que no deba funcionar.
El loopback es una buena idea, pero yo iría directamente de la salida del FTDI a su entrada, y conectaría un osciloscopio o analizador lógico a eso. SPI es muy fácil de reconocer y decodificar directamente desde la pantalla. Envía un byte, compruébalo en el osciloscopio/analizador lógico, y mira si recibes el byte de vuelta.
Una vez que el FTDI esté bien, puedes pasar al siguiente paso, la implementación del SPI en la FPGA.
editar
Para una prueba de producción también podrías usar un loopback. Tu FPGA tiene el SPI implementado, y su registro de desplazamiento actúa como un retraso. Haz que el PC envíe un byte específico, que se desplazará en el registro de desplazamiento SPI. Entonces deja que el PC envíe otro byte, y recuperará el anterior (asumiendo que tienes un registro de desplazamiento de 8 bits. IIRC los controladores NXP Cortex tienen un SPI de 16 bits). Eso no requiere ninguna lógica de prueba extra en la FPGA.
Esto te permite obtener una comprobación de bueno/malo para el bucle completo, pero no tienes ninguna información de dónde está el error en caso de que la prueba falle. Por lo tanto, yo dejaría que la FPGA comparara el primer byte recibido con el valor esperado, y emitiera un bit bueno/malo que luego puede ser leído por la plantilla de prueba. Entonces, en caso de error, al menos sabes si el camino desde el PC a la FPGA está bien o no.
0 votos
Yo también estoy haciendo casi exactamente lo mismo. Podrías compartir cómo has procedido exactamente?