En mi empresa, hemos diseñado previamente algunas placas FPGA personalizadas y recientemente hemos comenzado a utilizar placas FPGA comerciales ("COTS") con placas secundarias FMC personalizadas.
Etapa de prototipo
Si todavía está en la etapa inicial de definición del proyecto, planee comprar al menos una placa COTS FPGA para la creación de prototipos. Puede conectar uno de sus sensores a los encabezados de E / S y hacer una prueba rápida de concepto. Eso le da una idea de cómo podría funcionar el proyecto cuando se escala a muchos sensores, y calcule cuántos puede soportar con un FPGA determinado.
Si el FPGA es demasiado pequeño o demasiado lento o las herramientas son inadecuadas para el trabajo, es fácil intercambiar un FPGA COTS diferente en esta etapa. (Bueno, no es fácil pero al menos manejable ...)
Si el firmware no funciona en esta etapa, es claramente debido a un problema de firmware, no a un error de diseño de PCB personalizado. Con firmware personalizado y PCB personalizado, a veces es difícil saber qué lado tiene la culpa de un problema.
Placa FPGA personalizada frente a placa comercial FPGA lista para usar
El diseño de una placa FPGA personalizada tiene sentido si el proyecto tendrá un ciclo de vida corto, un volumen alto o si requiere un factor de forma más pequeño que el que puede lograr con la placa FPGA COTS y las placas adicionales PMOD o FMC.
Si el ciclo de vida del proyecto excede la vida útil del producto de un chip de memoria DDR (un par de años), entonces diseñar una placa hija FMC personalizada puede ser una mejor alternativa.
El costo es un factor en esta decisión. La mayoría de las placas COTS FPGA son de uso general, diseñadas para una máxima flexibilidad. Si está haciendo un producto de alto volumen y sensible al costo, entonces probablemente valga la pena hacer un diseño personalizado; pero para un volumen bajo, probablemente sea mejor concentrarse en hacer una tarjeta secundaria.
Independientemente del enfoque que elija, hay ciertas interfaces que requieren documentación maestra clara: en la interfaz entre los pines de E / S de nivel FPGA y el resto de la placa, y en la interfaz del conector entre las placas. Estos son lugares donde las ubicaciones de los pines, los nombres de red internos y los nombres de red externos a veces se intercambian y no coinciden. Una tabla es suficiente documentación; asegúrese de mantener esta tabla de interfaz versionada y bajo control de origen. Antes de enviar los archivos PCB a la fabricación, imprima una copia de esta tabla de interfaz, una copia del esquema y una copia del informe de pin / pad FPGA. Arrastre un resaltador sobre los papeles para marcar cada señal que se conecta donde debería.
Para los conectores, he aprendido la manera difícil de proporcionar un "dibujo del sistema" mecánico que muestre juntas y conectores en un solo dibujo dimensionado. Primero me quemé con un sistema de conector VME donde el pin "A1" en un conector no se asignó al pin "A1" en el otro conector. También he visto a los diseñadores olvidar que un par de conectores de ángulo recto da como resultado una conexión de imagen especular (90 grados + 90 grados = 180 grados). Esto era un problema cuando era responsable de la placa base y varios otros gerentes de proyecto eran responsables de varias placas secundarias.
Consejos personalizados para la placa FPGA
Comience con el "diseño de referencia" del proveedor de FPGA y luego omita las partes que no sean necesarias para su aplicación. No retire ningún condensador de derivación del FPGA, y no intente salirse con el uso de menos capas de PCB. Preste atención a la pila de capas (a menudo se encuentra junto al dibujo de perforación); Los componentes de paso fino generalmente usan cobre de 0.5 oz en lugar del espesor de lámina de cobre estándar de 1 oz.
Es difícil trabajar con el paquete BGA. El rendimiento nunca es tan bueno como con los paquetes TQFP o TQFN, y reelaborar un BGA es casi imposible. Incluso la inspección de problemas de ensamblaje requiere una cámara de rayos X. Asegúrese de utilizar un proveedor de servicios de fabricación por contrato en el que confíe.
Las fuentes de alimentación siempre son difíciles cuando se trabaja con placas FPGA. Los requisitos de potencia reales de la FPGA dependen en gran medida del flujo de bits de configuración. Xilinx proporciona una herramienta de "estimador de potencia", pero la estimación solo es válida si el firmware está completo. Existe un riesgo al hacer un cambio de firmware de último minuto, que los requisitos de energía son mayores de lo esperado. Planee dejar algo de margen de oferta actual. Si la estimación de potencia inicial dice que necesita 560 mA, siga adelante y use un regulador de 1000 mA. La corriente de salida adicional disponible no hace daño, pero tener una corriente de salida insuficiente dará como resultado un comportamiento aberrante del sistema.
Si hay pines FPGA no comprometidos, saque tantos como sea posible a un encabezado. Cuando hay un problema, estos pines no comprometidos se convierten en un valioso recurso de diagnóstico para sondear señales dentro del FPGA.