3 votos

¿Qué características deberían/deben estar presentes en una placa FPGA prototipo para ayudar a la depuración?

Al hacer cualquier prototipo de PCB siempre es una gran idea tener características dentro de ella que pueden ser utilizadas para ayudar en la depuración del diseño.

Algunos ejemplos son:

  1. Utilizar la FPGA más grande disponible que tenga ruta de migración a la que esperamos utilizar en el producto final. Esto significa que podemos tener mucha lógica para implementar modos de depuración y analizadores lógicos internos como el signal-tap. Esto significa que nuestras mediciones de disipación de energía no serán precisas ya que una FPGA más grande tendrá una mayor disipación de energía estática.

  2. Incorpora funciones en la placa que permiten conectar determinadas rutas de señal a un osciloscopio. Pueden ser señales analógicas o digitales. No me refiero a las señales que se conectan directamente a la FPGA. Hay diferentes maneras de hacer esto, y no estoy seguro de la mejor manera de hacerlo.

  3. Tienen 8 o 16 pines expuestos a través de la cabecera, que se conectan a la E/S de propósito general extra en la FPGA. Estos se pueden utilizar para dar salida a las señales internas de la FPGA a los pines que luego se pueden conectar a un alcance o analizador lógico. La pregunta que surge aquí es, qué tipo de conector utilizar ya que las señales de alta velocidad requieren que se tenga en cuenta la integridad de la señal. Ciertamente debemos elegir un conector al que se pueda conectar fácilmente un osciloscopio o un analizador lógico.

  4. Disponga de resistencias de 1ohm en los raíles de alimentación que puedan utilizarse para medir con precisión la disipación de energía en todos los raíles de alimentación, especialmente los conectados a la FPGA.

  5. Poner un chip FTDI que se puede utilizar para implementar USB-UART.

  6. Tener un método fácil para que el prototipo se conecte a otra FPGA o placa de microcontrolador en caso de que surja la necesidad. Una forma de hacerlo es tener conectores de escudo Arduino en la placa, pero entonces debemos estar seguros de que lo que pretendemos conectar es compatible antes de hacer la PCB.

Estoy seguro de que la gente que ha hecho muchos prototipos de placas de circuito impreso y luego ha pasado a la producción puede dar su opinión sobre esta lista y sugerir algunas mejoras. Es cierto que las características también dependen de para qué se haya diseñado realmente la placa, por lo que las mismas técnicas pueden ser aplicables a todos los proyectos. Así que ahora mis preguntas son:

  1. ¿Hay alguna mejora con respecto a lo que he recomendado anteriormente?
  2. ¿Hay algunas características más allá de lo que he mencionado que deberían utilizarse?
  3. Tener mucha capacidad para ayudar a la depuración es una gran idea, pero crea un problema cuando llegamos a las pruebas de nivel de producción. El camino para pasar de la placa prototipo a la PCB de producción para las pruebas alfa, etc., debe ser sencillo.

Agradecería si alguien puede poner su granito de arena. Esta pregunta es MUY específica y no amplia o fuera de tema. Creo que ya he cubierto la mayoría de las cosas.

Gracias.

3voto

barkmadley Puntos 3526

Si el chip de memoria está conectado con la FPGA, como SDRAM o DDR u otros, me gustaría asignar algún espacio de memoria de muestreo extra para la depuración. Esto es especialmente útil cuando se quiere muestrear un gran trozo de datos, como un marco o un paquete, que es mayor que la capacidad de muestreo de signaltap. También se pueden diseñar algunas funciones más avanzadas basadas en esta memoria de muestreo, como muestrear sólo los paquetes cuya cabecera coincida con un valor específico.

2voto

Toor Puntos 777

En realidad, yo desaconsejaría el uso de la FPGA más grande disponible simplemente por el extraordinario coste del dispositivo y el reto de implementación de las FPGA más grandes.

No olvides añadir algunos LEDs para los indicadores de salida de depuración.

También es posible que quieras añadir puentes en varios lugares (como desconectar la alimentación de ciertas secciones) para depurar en caso de que algo vaya mal.

No le veo mucho sentido a una cabecera GPIO expuesta para una placa que ya tiene un propósito establecido.

2voto

Paebbels Puntos 1646

Su prototipo debe tener también estas características 8en ningún orden):

  • Módulo USB a JTAG integrado
    como el SMT3 de Digilent
  • USB-UART de 2 o 4 puertos (también me gusta FTDI como has mencionado)
    nota: una FPGA moderna o FPGA+SoC necesita una UART por sistema operativo y parte de la FPGA
    • 1 => Linux
    • 2 => RTOS
    • 3 => FPGA
  • minúsculo hub USB 2.0 y un conector USB-C utilizado como puerto USB 2 de servicio
    (mecánicamente más estable que el micro-USB)
  • las placas más complejas podrían necesitar un controlador de gestión de placas como el MSP430 o similar. este IC puede tener USB (ver hub USB) y 2x I²C para controlar el PMBus para controlar la temperatura, voltajes, velocidades de los ventiladores, ... también puede servir para configurar la placa antes de alimentar la FPGA
  • controlar la potencia con controladores PMBus como los de Linear. Mida la tensión, la corriente, la potencia, la temperatura y controle el escalonamiento o el ahorro de energía.
  • EEPROM o mejor F-RAM para guardar versiones (en el mejor de los casos hashes de Git, fechas de producción, números de serie, configuraciones de placa, modos, último estado de alimentación, ...)
  • 1 LED amarillo (de baja actividad) + un led RGB que puede manejar cualquier color y código de parpadeo :)
  • 2 (micro) pulsadores
  • Cabezal de 3 pines para el bus I²C (PMBus)
  • Cabezal de 3 pines para la UART principal
  • puntos de prueba para todos los carriles de potencia (como mucho en la parte superior)
  • clavija de tierra o lugar para una pinza de tierra - utilizado por osziloscope
  • Conector del ventilador, mientras que la placa no está en el chasis final mientras que las pruebas
  • sensores de temperatura distribuidos por la placa para obtener la distribución del calor
  • si quieres aumentar/reducir el tamaño de tu FPGA en el mismo espacio, puedes hacer lo mismo con los convertidores DC/DC.
  • diseña tus cabezales de pines adicionales como cabezales Pmod 2x6 (datos de 8 bits + 3v3 + GND) para que puedas utilizar placas de extensión con pantalla OLED, puttons adicionales, WiFi, Bluetooth, Flash, EEPROM, ...

1voto

Daniel Puntos 643

Siempre con LEDs.

Un cabezal UART de 3 pines para TTL-232R-RPI.

Suele añadir un puerto Ethernet para la depuración y la programación. FPGA Cores proporciona una forma fácil para que el cliente actualice el firmware con el herramienta de programación remota . Si quieres también hay un ámbito de aplicación incrustado que puedes utilizar. Realmente aprecio estos núcleos.

Puede encontrar los núcleos aquí: https://www.fpga-cores.com/cores/

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X