Como programar la Pano Logic G1 con Urjtag y USB-Blaster desde Windows o Linux (SVF Files)

Enlaces (o posts con adjuntos) conteniendo documentación sobre la Pano (esquemas, datasheets, etc). Howtos y tutoriales sobre cómo preparar la Pano, modearla, o programarla usando otras interfaces aparte del programador de Xilinx

Moderador: antoniovillena

Responder
benitoss
PLA
Mensajes: 43
Registrado: 07 Oct 2018, 04:53

Como programar la Pano Logic G1 con Urjtag y USB-Blaster desde Windows o Linux (SVF Files)

Mensaje por benitoss » 22 Dic 2018, 07:53

Nota: Yo he utilizado en mis pruebas el USB-Blaster Clonico siguiente.
ARMJISHU USB-Blaster
Contiene un micro-controlador ST STM32F101 (como un STM32F103 con soporte USB) y un octal-buffer 74HC244
Imagen
Imagen

Desconozco si funciona con otras versiones del USB-Blaster

Comenzamos:

1) Conectar los cables del JTAG siguiendo las instrucciones de esta pagina:
https://github.com/tomverbeure/panologic

El Pineado del Jtag es el siguiente:

Código: Seleccionar todo

1. VCC
2. TDI
3. TMS
4. TDO
5. TCK
6. GND   (Es el pin situado a la derecha de la siguiente fotografia)
Imagen

2) conecta los cables de la USB-blaster siguiendo el diagrama de la web:

http://www.zxuno.com/forum/viewtopic.php?t=432

Imagen

3)
Para windows. Descarga la ultima version de UrJTAG para windows desde el siguiente link:
https://phoenixnap.dl.sourceforge.net/p ... 31.tar.gz
Descomprime el archivo anterior en una carpata llamada por ejemplo UrJTAG.
Ve al punto 4.

Para Linux. Descarga la ultima version de UrJTAG para linux desde el siguiente link:
https://downloads.sourceforge.net/proje ... 1545723410

Instala el archivo fuente tar.gz
La instalacion sigue el esquema: configure, make y make install :
Escribe:

Código: Seleccionar todo

    tar -xvf urjtag-2018.09.tar.xz
    cd urjtag-2018.09
    ./configure
    make
    make install 
5) Convierte el archivo bit a formato SVF con Impact en Xillinx ISE
Lee la segunda pagina de este documento:
https://www.xilinx.com/support/documen ... pp503.pdf

6) Copia el archivo SVF a la carpeta UrjTAG

7) Abre un terminal de windows y escribe:

Código: Seleccionar todo

jtag  
En Windows veras:
Imagen
En Linux veras:
Imagen


8) Escribe:

Código: Seleccionar todo

cable usbblaster
detect 
Veras lo siguiente:

Imagen

9) Ahora vamos a programar la FPGA
Nota: En mi caso el archivo SVF es: led.svf
Type:

Código: Seleccionar todo

svf led.svf progress 
Y finalmente la tarjeta FPGA ya esta flasheada !!

Imagen

Este procedimiento funciona con la Logic Pano G1. Y se supone que funciona en la G2 pero aun no he podido comprobarlo.

Saludos

javier2112
Veroboard
Mensajes: 3
Registrado: 27 Abr 2020, 23:59

Re: Como programar la Pano Logic G1 con Urjtag y USB-Blaster desde Windows o Linux (SVF Files)

Mensaje por javier2112 » 05 May 2020, 18:54

Creo que lo que le falta a este howto es desarrollar el punto 5. A a eso me he dedicado últimamente y voy a compartirlo con vosotros.

Hasta ahora, yo tenía la idea de que sin un programador específico, no era posible programar la FPGA de manera permanente, puesto que al usar un fichero .bit, este sólo afecta al chip FPGA y por tanto, al apagar, vuelve a su estado inicial.

Como sabréis, la manera de conseguir esto es programando la flash ROM de la placa, pero no parecía posible con este tipo de adaptadores. Yo lo he conseguido programando la FPGA mediante ficheros SVN, lo cual nos permitirá acceder a su flash ROM y así hacer los cambios de forma permanente.

Aunque se menciona expresamente la Pano Logic G1, es fácilmente aplicable a cualquier FPGA soportada por el software ISE de Xilinx. La versión utilizada ha sido la 14.7 para Linux 64, aunque en principio nada indica que no se pueda hacer igual con una versión igual o superior para Linux o Windows.

En primer lugar abrimos el ISE y si no hemos generado aún el fichero .bit, tendremos que obtenerlo del siguiente modo:
1) Sintetizarlo (Synthetize - XST).
2) Generar el fichero .bit (Generate Programming File).

Ahora ya podemos ir a la utilidad IMPACT para programar la FPGA (aunque realmente no lo haremos, sólo generaremos ficheros .SVF), haciendo doble click a Configure Target Device:
Imagen

En IMPACT vamos a hacer lo siguiente: doble click en Boundary Scan para seleccionar el fichero .bsd correspondiente a la definición de nuestra FPGA. Para una Spartan 6, está en el siguiente directorio: $XILIN_HOME/14.7/ISE_DS/ISE/spartan6/data
Imagen

Dentro de cada modelo, podemos encontrar packages diferentes. Si desconocemos este dato, con seleccionar el fichero base es suficiente.

Ahora nos vamos a Create PROM File y hacemos doble click. Se nos abre una ventana donde definiremos el fichero MCS con las características de nuestra flash ROM en la que almacenaremos el diseño sintetizado: básicamente es el tipo de flash, tamaño (en bits) y nombre del fichero.
Imagen

Al finalizar esto, se nos ofrece un diálogo para selecionar el .bit que hemos obtenido en ISE. Seleccionamos el .bit y a la izquierda ya podremos darle a Generate File...
Imagen

Imagen

Solo queda volver al Boundary Scan para, con el botón derecho, seleccionar el fichero MCS con la definicion de la flash ROM, generado anteriomente. Ahí también podremos especificar con más detalle el tipo de PROM de nuestra FPGA.
Imagen

Imagen

Ahora es cuando ya podemos generar los ficheros finales que usaremos para programar la FPGA. Tendremos que aplicar los siguientes, por orden:
- Uno para borrar la FPGA; lo llamaremos erase.svf.
- Otro para programarla, llamado program.svf.

Para generar el primero, en el diagrama de Boundary Scan, selecionaremos el dibujo de la memoria flash y nos vamos al menú Output -> SVF File -> Create SVF File y ponemos erase.svf.
Imagen

Luego otra vez en el diagrama de la flash, con botón derecho Set Erase Properties. Aquí elegimos las dos opciones full que aparecen.
Imagen

Imagen

Nos vamos abajo a la izquierda y hacemos doble click en "Erase", lo cual provocará que se genere el fichero. Nos vamos al menú Output -> SVF File -> Stop Writing file.

Ahora vamos a por el otro fichero. Es similar, solo que pondremos como fichero program.svf y las propiedades que editaremos son las correspondientes a Set Programming Properties, donde desactivaremos la verificación (Verify) y el borrado previo (Design-Specific Erase Before). Para generar el fichero, haremos doble click en Program.
Imagen

Imagen

No olvidar cerrar el fichero program.svf, dirigiéndonos al menú Output -> SVF File -> Stop Writing file.

Por último, utilizaremos esos ficheros para programar la flash ROM mediante la herramienta urjtag:

Código: Seleccionar todo

$ jtag
jtag> cable usbblaster
Connected to libftdi driver.
jtag> detect
IR length: 6
Chain length: 1
Device Id: 00100100000000000001000010010011 (0x24001093)
  Manufacturer: Xilinx (0x093)
  Part(0):      xc6slx9 (0x4001)
  Stepping:     2
  Filename:     /usr/local/share/urjtag/xilinx/xc6slx9/xc6slx9
jtag> svf erase.svf progress
jtag> svf program.svf progress
jtag> quit
$ 
SI todo ha ido bien, cada vez que encendamos la placa, la FPGA se programará con el contenido de la flash ROM.

Bibliografía: Enlaces:

benitoss
PLA
Mensajes: 43
Registrado: 07 Oct 2018, 04:53

Re: Como programar la Pano Logic G1 con Urjtag y USB-Blaster desde Windows o Linux (SVF Files)

Mensaje por benitoss » 10 May 2020, 21:23

Estupendo Javier, Fantastico tutorial !!!!
Muchas gracias

Responder

Volver a “Documentación y howtos”