domingo, 19 de julio de 2009

Guía de instalación ISE 10.1 Archlinux

Para tener nuestro entorno de trabajo con FPGA se requiere instalar alguno de los programas de desarrollo que ofrecen Altera, Xilinx, etc. En nuestro caso se instalará ISE de Xilinx en su versión 10.

Para esta guía se da por hecho que el usuario ya tiene conocimientos básicos sobre instalación y manejo de software en la distribución linux en la que desea instalar estos entornos.

Requisitos de software que se deben tener instalados:

  • El paquete de librerías libmotif3.
  • El paquete portmap.
  • Las librería libusb-dev o sólo libusb si la distribución no quita las cabeceras de desarrollo.
  • El paquete fxload.
  • El programa 7zip.

El paquete completo de instalación se llama ISE Design Suite 10.1, contiene los siguientes programas:

  • ISE
  • EDK
  • Chipscoope
  • Plan Ahead

Con estos programas se tiene un entorno completo de desarrollo  para FPGA de la marca Xilinx.

Paso 1

Lo primero será obtener el programa, podemos descragar una versión gratuita de la página de Xilinx o podemos obtener el programa por otros medios. Para esta guía emplearemos un archivo del DVD de instalación, una imagen de DVD ISO.

Ya tenemos listo el archivo de imagen ISO, lo podemos montar en nuestro árbol de archivos de Linux, y una vez montado se procede a lanzar el instalador gráfico de los programas. La instalación a partir de este momento debe realizarse como usuario root desde una terminal de comandos.

Para montar el archivo se proceda a lanzar el comando como se muestra a continuación:

[usuario@maquina]$su /*para obtener permisos de administrador o usuario root*/
[usuario@maquina]$mount -o loop Xilinx_ISE_DS.iso /media/carpetademontaje/

Hemos conseguido montar el archivo de imagen ISO, procedemos a lanzar el instalador gráfico del programa.

[usuario@maquina]$cd /media/carpetademontaje/ /*nos ubicamos en la raíz del CD*/
[usuario@maquina]$./setup /*lanzador del instalador gráfico*/

Con lo anterior ya tenemos en nuestra pantalla ejecutándose el instalador gráfico. Como es muy parecida su instalación a cualquier programa tipo Windows, se omitirán estos pasos y nos centraremos en las partes que involucran más al sistema Linux. Solo como recomendación instalar los programas en la siguiente dirección /opt/Xilinx/10.1/ ; es casi seguro que el instalador nos ponga esta ruta por defecto, pero en caso que no lo haga lo podemos hacer de forma manual.

PASO 2

Ya se cuenta con la instalación de paquetería completa, lo que debemos hacer ahora es declarar las variables de entorno para poder trabajar con los programas y que estos sean capaces de cargar la librería que maneja el programador de las tarjetas FPGA. Como nota sólo necesitamos estar como usuario normal en la carpeta home de este usuario.

Debemos editar el siguiente archivo y anexar las siguientes líneas:

[usuario@maquina]$nano .bashrc /*debemos estar ubicados en home*/

##anexar las siguiente lineas al archivo anterior
export XILINX=/opt/Xilinx/10.1/ISE
export PATH=$PATH:/opt/Xilinx/10.1/ISE/bin/lin64


export XILINX_EDK=/opt/Xilinx/10.1/EDK
export PATH=$PATH:/opt/Xilinx/10.1/EDK/bin/lin64

Las últimas palabras de las carpetas nos dice lin64; con esto nos damos una idea que esto depende del sistema que estemos usando, ya sea de 64 bits o 32 bits. Para 64 bits debe terminar en lin64. Para 32 bits debe terminar en lin.

PASO 3

El entorno está listo, pero tenemos que el programador Impact no detecta nuestras tarjeta
cuando las conectamos a la computadora. Necesitamos una librería que se descarga de la
siguiente página web:

http://rmdir.de/~michael/xilinx/

Una vez descargado el archivo, tenemos que descomprimirlo. Se puede usar el comando
siguiente como ejemplo:

[usuario@maquina]$tar -xvf usb-driver-HEAD.tar.gz

Se debe haber creado una carpeta nueva y procedemos a ingresar en ella:

[usuario@maquina]$cd usb-driver/

Ya dentro de la carpeta procedemos a compilar la librería:

[usuario@maquina]$make

Se debe haber creado el archivo de librería libusb-driver.so .

PASO 4

Con la librería anterior, ya podremos usar Impact para programar los FPGA. Con el siguiente comando crearemos una carpeta donde se encontrará. Con esto se supone que todavía nos encontramos en la carpeta donde se compiló la librería.

[usuario@maquina]$mkdir ~/flexm

Copiamos la librería a la carpeta que acabamos de crear.

[usuario@maquina]$cp libusb-driver.so ~/flexm

Ahora sólo falta cargar la librería en el espacio de ejecución de una terminal, esto lo hacemos agregando las siguientes líneas al archivo .bashrc .

[usuario@maquina]$cd ~ /*nos ubicamos en la carpeta home del usuario*/
[usuario@maquina]$nano .bashrc

#se insertan las siguientes líneas al archivo
export LD_PRELOAD=/home/ente/flexm/libusb-driver.so

PASO 5

Para terminar necesitamos que al insertarse la tarjeta, por medio del puerto USB. Se cargue el firmware de programación de Xilinx. Para conseguirlo vamos a necesitar de UDEV de linux.

Se tienen que copiar el archivo de reglas de udev que nos proporciona Xilinx. Todo se realiza como usuario root.

[usuario@maquina]$su /*cambio a usuario root*/
[usuario@maquina]$cd /opt/Xilinx/10.1/ISE/bin/lin64/
[usuario@maquina]$cp xusbdfwu.rules /etc/udev/rules.d/

Hay que crear un archivo de reglas que permita que el dispositivo brinde permiso de acceso a todos los usuarios. Para hacerlo realizamos lo siguiente:

[usuario@maquina]$cd /etc/udev/rules.d/

[usuario@maquina]$nano libusb-driver.rules

#se le inserta las siguientes líneas al archivo
ACTION=="add", BUS=="usb", SYSFS{idVendor}=="03fd", MODE="666"

Sólo resta copiar los archivos de programación a la siguiente carpeta:

[usuario@maquina]$cd /opt/Xilinx/10.1/ISE/bin/lin64/
[usuario@maquina]$cp xusb*.hex /usr/share/

Con este último paso ya tenemos todo el entorno listo para trabajar con el programa ISE, ahora hay que reiniciar la computadora para que los cambios realizados a udev surtan efecto.

Una vez que se reinicio la computadora procedemos a verificar que se carguen los firmware necesarios en las tarjeta. Una vez que se conectó por USB una tarjeta empleamos el siguiente comando:

[usuario@maquina]$lsusb /*va a listar todos los dispositivos USB*/

Aparecerá en una de las líneas lo siguiente:

ID 03fd:0008 Xilinx sistems

o una frase similar lo importante es ID 03fd:0008 .

Ya tenemos todo listo para trabajar con ISE.

Para los que les sea más comodo aquí se encuentra la guía en  formato PDF, sólo recordando que es para la distribución Archlinux.

Guía instalación ISE

martes, 14 de julio de 2009

Requsitos para los proyectos

Para comenzar con la serie de artículos sobre los proyectos en VHDL y electrónica, se necesita saber que es lo necesario para comenzar con los desarrollos. He aquí la lista:

  • Computadora con Sistema Operativo Linux, en lo personal uso ARCH Linux pero cualquier distribución es válida.
  • ISE Webpack de Xilinx versión 10.1 o superior.
  • Spartan-3AN Starter Kit o Spartan-3E Starter Kit.

En la parte del sistema operativo de la computadora puede ser también alguna versión de Windows, pongo Linux como base porque es el que uso comúnmente.  Sólo como nota final la mayoría de las técnicas de programación y desarrollo para FPGA se aplican a otras marcas como Altera, Cypress, etc. Por lo que alguien que use otras marcas diferentes a las que se manejan aquí podrá adaptar fácilmente cualquier proyecto a sus necesidades.

domingo, 21 de junio de 2009

Apertura de Blog de electrónica

La apertura del Blog se debe a la necesidad de públicar un sitio con contenidos de electrónica digital, en especial con los circuitos programables.
Espero una vez a la semana públicar un proyecto, que puede ir desde una simple máquina de estados lógicos hasta un controlador de memoria RAM. La idea es ir desarrollando un catálogo de proyectos. La mayoría de proyectos serán de mi autoría, por lo que los códigos fuente tendrán una licencia, ya sea del tipo GPL o BSD. Esto esoy aún por decidirlo.
También espero haya retroalimentación por parte de las personas que le sirva ésta información, para que envíen sugerencias o mejoras en algún código.