Xilinx ISE y EDK 8.2i sp2 en ArchLinux
Software
ISE y EDK son herramientas para el desarrollo de sistemas digitales sobre FPGA's y CPLD's de la empresa Xilinx. Trabajo con una tarjeta de desarrollo del programa universitario "Virtex-II Pro XC2VP30 FPGA" (XUPV2P para los cuates). La universidad nos provee de la versión 8.2i de este software que es un poco antigua (la ultima versión es la 12) y tiene ciertos trucos que son necesarios para su correcto funcionamiento. Las herramientas básicas de desarrollo se instalan así en ArchLinux:
$ sudo pacman -Sy base-devel libstdc++5 libusb
$ sudo ln -s /usr/bin/gmake /usr/bin/make
$ sudo ln -s /usr/lib/libdb4.8.so /usr/lib/libdb4.1.so
De AUR bajamos la tarball de fxload y compilamos e instalamos:
$wget http://aur.archlinux.org/packages/fxload/fxload.tar.gz
$tar -xvzf fxload.tar.gz && cd fxload
$makepkg -r
$sudo pacman -U fxload-2008_10_13-1-i686.pkg.tar.xz
Lo siguiente es introducir los CDs respectivos o montar las imagenes:
Xilinx ISE: Tiene en su raíz un script "setup", al ejecutarlo nos pedirá clave de activación, elegir las utilidades a instalar y una ruta de instalación.
El software a instalar dependen de las tarjetas que se utilicen, en mi caso en particular es el siguiente:
- Virtex2/Virtex2P/Spartan3/Spartan3E
- Design Environment Tools
- Standalone Programming tools
La ruta de instalación por default es el $HOME del usuario, esto esta bien si es una instalación particular, si deseas compartir este software con distintos usuarios lo ideal seria en /opt donde se instalan los programas que no cumplen con POSIX.
Terminada la instalación deberemos agregar los "service packs" cargando primero las variables de entorno
$ source ~/Xilinx/settings.sh
$ webupdate
Xilinx EDK: Tiene en su raíz un script "setup", al ejecutarlo nos pedirá clave de activación y una ruta de instalación. Terminada la instalación solo hay que actualizar, para esto hay actualizar las variables de ambiente:
$ source ~/Xilinx/settings.sh
$ source ~/EDK/settings.sh
$ ~/EDK/bin/lin/webupdate
Las variables de ambiente se utilizan siempre que se utilizan las aplicaciones, es conveniente agregarlas al .bashrc o en mi caso .zshrc.
Firmware: Para poder acceder a la tarjeta es necesario cargar su firmware, esto puede hacerse automáticamente con udev, pero todavia no me sale así que lo hago a mano con el siguiente alias:
alias loadf=' echo "bus --> ";read bus
echo "device -- >";read device
sudo /sbin/fxload -v -t fx2 -I ~/firmware/xusbdfwu.hex -D /dev/bus/usb/$bus/$device '
Los datos los consigues con lsusb, la ultima versión del firmware para la XUPV2P esta disponible en ftp://ftp.xilinx.com/pub/utilities/fpga/xusbdfwu-1025.zip.
Cable Drivers: Para depurar las cpus de la tarjeta vía JTAG (Joint Test Action Group) o programarla es necesario tener la libsudb-driver. Esta hay que descargarla y compilarla usando la trinidad "./configure && make && sudo make install". Despues solo metes esto a tu .bashrc $export LD_PRELOAD=/path/to/libusb-driver.so
Solo hay tres programas que necesitan tener precargada esta biblioteca xmd, impact y chipscope. En caso de tener problemas con la conección se puede recurrir al suguiente metodo:
$cd ~/Xilinx/bin/lin/
$mv _impact _impact.bin
$touch _impact $chmod +x _impact
$echo "#!/bin/sh \ LD_PRELOAD=libusb-driver.so $0.bin $*" > _impact
Lo mismo para XMD que esta en ~/EDK/bin/lin/ .
Permalink: http://www.mononeurona.org/entries/view/vendaval/2339
Commentblogs:









