Programando múltiples FPGAs usando JTAG

9

Tengo una cadena JTAG que conecta 4 FPGAs Spartan 6 que programo utilizando ISE iMPACT. El software puede programar cualquier subconjunto estricto de los 4 FPGA en una fila con éxito, y en cualquier orden. Sin embargo, cuando intento programar los cuatro FPGAs, el pin DONE del último FPGA no se activa y la programación falla.

¿Qué podría estar causando este extraño comportamiento?

Notas:

  1. Después de programar tres de los FPGA, el bit INIT_B del registro de estado para el cuarto FPGA es 0, aunque el pin INIT_B es alto. Justo antes de programar el tercer FPGA, ese bit era 1. Esto sugiere que el cuarto FPGA se ha bloqueado.
  2. Al programar con SelectMap, puedo programar los cuatro FPGA sin ningún problema.
  3. Cuando programo tres de los FPGA usando SelectMap, el cuarto aún no puede programarse usando JTAG.
  4. Cada uno de los cuatro pines se coloca en resistencias de 3V3 a 4.7K Ohm, y luego se unen.

Cosas que he probado :

  1. Desconectar uno de los FPGA de la cadena permite que los 3 FPGA restantes aún estén programados.

  2. El cambio de la resistencia de extracción de 4.7K ohmios del último FPGA por una resistencia de 330 ohmios no resuelve el problema.

pregunta Randomblue

2 respuestas

3

Resultó que el culpable era el pin INIT_B . Aunque se sacó alto, como se programaron los primeros FPGA, el pin INIT_B fue empujado gradualmente hacia abajo y hacia abajo debido a un arrastre interno.

Después de programar tres FPGA, el pin INIT_B fue lo suficientemente bajo para que el cuarto FPGA interpretara INIT_B como una lógica baja, lo que impide que el cuarto FGPA se programe con JTAG.

    
respondido por el Randomblue
6

El pin DONE no se usa durante la programación de JTAG y se puede ajustar alto:

  

Si JTAG es el único modo de configuración, entonces PROGRAM_B, INIT_B y DONE pueden ser   Atado alto a una resistencia de 330Ω. (p57)

Sin embargo, si se usa la programación en serie, entonces todos los pines DONE deberían estar unidos y el DriveDone debería estar deshabilitado para todos los dispositivos, excepto el primero:

  

Es importante conectar los pines DONE para todos los dispositivos en una cadena en serie. Si no se conectan los pines DONE, la configuración puede fallar. (p135)

     

Todos los dispositivos, excepto el primero, deben desactivar el controlador en el pin HECHO. (p135)

Si se van a usar ambos, hay dos opciones:

  

Alternativamente, el controlador se puede desactivar para todos los pines DONE y se puede agregar una resistencia de pull-up externa para extraer la señal Alta después de que todos los dispositivos la hayan liberado. (p135)

     

Para propósitos de depuración, a menudo es útil tener una forma de desconectar los pines DONE individuales de la señal DONE común, para que los dispositivos puedan configurarse individualmente a través de la interfaz serial o JTAG. (p135)

En su caso, creo que conectarlos y atarlos a todos a la vez que deshabilitar el pin DONE es la mejor manera de hacerlo.

Todos los números de página hacen referencia a la Guía del usuario

    
respondido por el embedded.kyle

Lea otras preguntas en las etiquetas