FPGA Toolchain

by by

= Instalación de Herramientas = A continuación esta la lista de herramientas necesarias para simular, sintetizar los proyectos que requieran descripciones de hardware.

Instalación de herramientas de compilación y utilidades
Realice la instalación de los siguientes paquetes: $sudo apt-get install libftdipp1 libftdi1 urjtag

$sudo apt-get install sed wget cvs subversion git-core coreutils unzip texi2html texinfo libsdl1.2-dev docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath flex libncurses5 libncurses5-dev libxml-simple-perl zlib1g-dev pkg-config gettext libxml-simple-perl guile-1.8 cmake gmpc-dev build-essential libmpc-dev zlib1g-dev texinfo libncurses5-dev m4 uboot-envtools uboot-mkimage tree minicom gedit-dev gedit-common gedit-plugins gedit-latex-plugin texlive-base nautilus-open-terminal unrar libftdipp1 libftdi1 urjtag geany geany-plugin*

Si hay problemas con version de 64 bits $sudo apt-get install fxload libusb-dev

Instalación de la herramienta para control de versiones
Realice la instalación de los siguientes paquetes: $sudo apt-get install git git-core

Instalación de las herramientas de simulación
Realice la instalación de los siguientes paquetes: $sudo add-apt-repository ppa:pgavin/ghdl $sudo apt-get update $sudo apt-get install iverilog gtkwave

Instalación de Xilinx Web Pack 12.4
Descargue la distribución de xilinx con la que quiera trabajar (Versión WebPACK). Recomendamos la 12.4 que es con la que se han hecho la mayoria de tutoriales. Puede descargarla directamente de nuestro servidor ftp. También puede encontrar el instalador en http://www.xilinx.com/support/download/index.htm. Hay que asegurarse que la FPGA utilizada se encuentre soportada por la versión que van a descargar.

Una vez descargado el archivo, se debe descomprimir en una carpeta, (asegúrese de que todos los archivos tenga permisos de ejecucion) después, en una terminal ubicamos el directorio de la carpeta y ejecutamos el archivo xsetup. Suponiendo que el directorio es en /home/user/Downloads/ise se debería ejecutar lo siguiente en consola:

$tar -xvf Xilinx_ISE_DS_12.4_M.81d.2.0.tar $cd Xilinx_ISE_DS_12.4_M.81d.2.0 $sudo ./xsetup

Sigas las instrucciones de instalación. Seleccione la opción ISE WebPACK Cree la carpeta .Xilinx y coloque allí el archivo Xilinx.lic. Obtenga el archivo de Xilinx.lic directamente de la página de Xilinx [www.xilinx.com]

Para utilizar las herramientas de XILINX debemos, verificar primero que la ruta de instalación del programa ise se encuentre en la variable de entorno PATH para poder acceder a ellas desde terminal.

Abrimos el archivo .bashrc ubicado en nuestro home: $cd ~ $gedit .bashrc

Agregamos las siguientes líneas al final del archivo, inicando la ubicación de las herramientas y librerias de ise. Aqui tomamos la ruta de instalación por defecto de la version 12.4

export PATH=$PATH:/opt/Xilinx/12.4/ISE_DS/ISE/bin/lin/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/Xilinx/12.4/ISE_DS/ISE/bin/lin

Luego, en una terminal ejecutamos el siguiente comando:

$source ~/.bashrc

Para comprobar el correcto funcionamiento ejecutamos:

$ise &

Si todo esta bien, aparecerá el entorno gráfico de las herramientas de Xilinx

Para versión de 64 bits:

$source /opt/Xilinx/12.4/ISE_DS/settings64.sh $ise &

Configuración de BOARDs EN UBUNTU 12.04
Si IMPACT no reconoce el cable, lo cual puede ocurrir para algunas boards se deben seguir los siguientes pasos:

1) Modificar udev: sudo cp /opt/Xilinx/12.4/ISE_DS/ISE/bin/lin/xusbdfwu.rules /etc/udev/rules.d/50-xusbdfwu.rules sudo sed -i -e 's/TEMPNODE/tempnode/' -e 's/SYSFS/ATTRS/g' -e 's/BUS/SUBSYSTEMS/' /etc/udev/rules.d/50-xusbdfwu.rules

2) Copiar los .hex que son usados por los diferentes cables a /usr/share y hacerlos legibles: (cambie lin64 para version 64 bits) sudo cp /opt/Xilinx/12.4/ISE_DS/ISE/bin/lin/xusb*.hex /usr/share/  sudo chmod 644 /usr/share/xusb*.hex

3) Instalar fxload y libusb-dev, necesarios para IMPACT: sudo apt-get install fxload libusb-dev

4) Reiniciar udev: sudo restart udev

5) Modificar un par de script: sudo sed -i -e 's/#!\/bin\/sh/#!\/bin\/bash/' /opt/Xilinx/12.4/ISE_DS/PlanAhead/bin/planAhead  sudo sed -i -e 's/#!\/bin\/sh/#!\/bin\/bash/' /opt/Xilinx/12.4/ISE_DS/PlanAhead/bin/loader

NOTA: Esto se hizo en Ubuntu 12.04, usando ISE WebPack 12.4 para una Spartan 3E1600

Tomado de: http://ubuntuforums.org/showthread.php?t=1547435 Tomado de: Giuseppe Roa (groao@unal.edu.co) y María Fernanda Pérez (mfperezpal@unal.edu.co)

= Toolchain LM32 = Para instalar el toolchaiin del LM32 siga los pasos referidos a continuación. Tomado de http://wiki.linuxencaja.net/

mkdir archive cd archive

wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/binutils-2.21.tar.bz2 wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/gcc-core-4.5.2.tar.bz2 wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/gcc-g++-4.5.1.tar.bz2 wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/newlib-1.19.0.tar.gz wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/gdb-7.2.tar.bz2 wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/gmp-4.3.2.tar.bz2 wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/mpc-0.8.1.tar.gz wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/mpfr-2.4.2.tar.bz2 wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/binutils-2.21-rtems4.11-20110107.diff wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/gcc-core-4.5.2-rtems4.11-20101216.diff wget -c http://www.rtems.org/ftp/pub/rtems/SOURCES/4.11/newlib-1.19.0-rtems4.11-20110109.diff wget -c http://ftp.rtems.org/ftp/pub/rtems/SOURCES/4.11/autoconf-2.67.tar.bz2 wget -c http://ftp.rtems.org/ftp/pub/rtems/SOURCES/4.11/automake-1.11.1.tar.bz2

cd .. mkdir build cd build echo "Descomprimiendo binutils" tar xjf ../archive/binutils-2.21.tar.bz2 echo "Descomprimiendo hcc-core" tar xjf ../archive/gcc-core-4.5.2.tar.bz2 echo "Descomprimiendo gcc g++" tar xjf ../archive/gcc-g++-4.5.1.tar.bz2 echo "Descomprimiendo newlib " tar xzf ../archive/newlib-1.19.0.tar.gz echo "Descomprimiendo gdb" tar xjf ../archive/gdb-7.2.tar.bz2 echo "Descomprimiendo gmp" tar xjf ../archive/gmp-4.3.2.tar.bz2 echo "Descomprimiendo mpc" tar xzf ../archive/mpc-0.8.1.tar.gz echo "Descomprimiendo mpfr" tar xjf ../archive/mpfr-2.4.2.tar.bz2

cd binutils-2.21 cat ../../archive/binutils-2.21-rtems4.11-20110107.diff | patch -p1 --dry-run cat ../../archive/binutils-2.21-rtems4.11-20110107.diff | patch -p1 cd ../gcc-4.5.2/ cat ../../archive/gcc-core-4.5.2-rtems4.11-20101216.diff | patch -p1 --dry-ru cat ../../archive/gcc-core-4.5.2-rtems4.11-20101216.diff | patch -p1 cd ../newlib-1.19.0/ cat ../../archive/newlib-1.19.0-rtems4.11-20110109.diff | patch -p1 --dry-run cat ../../archive/newlib-1.19.0-rtems4.11-20110109.diff | patch -p1 cd .. mkdir b-binutils cd b-binutils ../binutils-2.21/configure --target=lm32-elf --prefix=/opt/lm32_toolchain make all make info sudo make install cd .. export PATH=/opt/lm32_toolchain/bin:${PATH} cd gcc-4.5.2/ ln -s ../newlib-1.19.0/newlib. cd .. mkdir b-gcc cd b-gcc/ ../gcc-4.5.2/configure --target=lm32-elf --with-gnu-as --with-newlib --verbose --enable-threads --enable-languages="c" --prefix=/opt/lm32_toolchain make all make info sudo make install cd ..
 * 1) Aplicando patchs
 * 1) Compilando binutils
 * 1) Compilando GCC

Adicion del directorio de ejecutables a la variable PATH
Para que los archivos compilados en el paso anterior esten disponibles para la compilacion de aplicaciones para el procesador LM32, es necesario modificar la variable de entorno PATH para esto debemos editar el archivo .bashrc localizado en la raiz del directorio del usuario.

$cd ~ gedit .bashrc

Agregamos la siguiente linea al final del archivo:

PATH=$PATH:/opt/lm32_toolchain/bin/

https://sites.google.com/site/iseubuntulinux110464bits/
 * info adicional: