You are on page 1of 33

FPGALibre: Herramientas de Software Libre para diseo con FPGAs

Tropea S.E., Brengi, D.J., Borgna J.D.

2005 INTI Tropea, Brengi, Borgna

Introduccin
Nace en la UTIC del Centro de Electrnica e Informtica de INTI. Consecuencia de lo visto en SPL2005: mucha gente con deseos de aprender y compartir conocimientos s/FPGA.

2005 INTI Tropea, Brengi, Borgna

FPGALibre

Facilitar el intercambio de conocimientos y cores. Impulsar el uso de herramientas de S.L. Hosteado por SourceForge fpgalibre.sourceforge.net Abierto (OSs y tecnologas) Actualmente basado en Debian GNU/Linux

2005 INTI Tropea, Brengi, Borgna

Objetivos
Impulsar el desarrollo con dispositivos FPGA utilizando herramientas de S.L. u Open Source. Fomentar el intercambio y desarrollo de cores IP con licencias que posean el mismo espritu que las del S.L.

2005 INTI Tropea, Brengi, Borgna

Ventajas del S.L.

La capacidad de aprender observando el cdigo fuente de las aplicaciones y los cores. La posibilidad de adaptar a gusto segn las necesidades particulares de cada interesado. La oportunidad de mejorar el cdigo y brindar esas mejoras al resto de la comunidad. Bajo costo. Los productos propietarios de este rubro suelen tener altos costos de licencias, lo que limita y restringe su aplicacin en forma masiva en proyectos e instituciones de bajos recursos y en pases en desarrollo.

2005 INTI Tropea, Brengi, Borgna

Preferencias de Lenguaje, Codificacin y Trabajo.

2005 INTI Tropea, Brengi, Borgna

Lenguaje HDL
VHDL Muy usado en instituciones gubernamentales y universitarias. Se aceptan contribuciones en otros HDLs. IEEE 1076-1993 e IEEE 1164, no fuera estndar. En particular numeric_std en lugar de las de Synopsys.

2005 INTI Tropea, Brengi, Borgna

Codificacin
Los lenguajes ofrecen mucha libertad, pero para facilitar el trabajo en grupo se definen detalles como el indentado, nombre de seales, etc. Basadas en las de la Agencia Espacial Europea y OpenCores. Llamadas guidelines del proyecto.

2005 INTI Tropea, Brengi, Borgna

Interconexin
Wishbone (OpenCores) Para reusar IPs. Libre (sin royalties). Especificacin completa en internet. Completa (uso avanzado). Pocos recursos cuando el caso es simple.

2005 INTI Tropea, Brengi, Borgna

Herramientas Relacionadas con el Cdigo HDL

2005 INTI Tropea, Brengi, Borgna

Edicin fuentes: SETEdit


No son muchos los editores libres que posean facilidades avanzadas para la edicin de cdigo VHDL. Uno de estos editores es el SETEdit, un editor pensado para programadores, con soporte para gran cantidad de lenguajes de programacin. Estas son algunas de las caractersticas que lo hacen una buena eleccin para el trabajo con VHDL:

Resaltado de sintaxis para VHDL. Macros especficas con construcciones tpicas de VHDL (PMacros). Utilizacin de Exuberant C Tags con soporte especfico para VHDL. Indentado coherente con los guidelines del proyecto. Configurable y con soporte para los lenguajes ms populares. tpl2file: templates de Xilinx como archivos

http://setedit.sourceforge.net
2005 INTI Tropea, Brengi, Borgna

Verificador de Estilo
bakalint Facilita el seguimiento de los guidelines. Es un lint tonto Sugiere los cambios a realizar.

2005 INTI Tropea, Brengi, Borgna

Generador de Interconexin
Wishbone Builder Genera el bloque intercon de Wishbone. Permite cambios rpidos y probar con distintas estrategias. Basado en la herramienta de Open Cores.

2005 INTI Tropea, Brengi, Borgna

Bsqueda en el HDL
Exuberant C Tags Modificado para soportar VHDL. Permite encontrar arquitecturas, funciones, etc. en proyectos complejos. Soportado por muchos editores (incluyendo SETEdit). C Tags muy usado en UNIX.

2005 INTI Tropea, Brengi, Borgna

VHDLspp
Permite incluir porciones de cdigo desde otros archivos. Por la falta de #include en VHDL. Reemplaza marcadores del tipo @nombre_archivo@ Ej: memoria ROM de un procesador.

2005 INTI Tropea, Brengi, Borgna

hex2vhdl
Convierte archivos .hex a cdigo para inicializar memorias ROM en VHDL. Desarrollado para nuestro clon del PIC16C84. Muy til en conjunto con make. Cambios en el .asm se reflejan en el bitstream.

2005 INTI Tropea, Brengi, Borgna

xtracth
Extrae constantes de un package y las exporta a .h y .inc. Mayor automatizacin. Coordina cambios en el VHDL con cambios en el cdigo C/Assembler de procesadores. Se complementa con el Wishbone Builder que genera las direcciones base.

2005 INTI Tropea, Brengi, Borgna

tpl2file
Extrae las ms de 600 plantillas del ISE. Permite usarlas desde cualquier editor de texto. Usa el filesystem, se navega con cualquier navegador del f.s.

2005 INTI Tropea, Brengi, Borgna

Librera de C
Agrega funciones de stdio, stdlib, string, etc. al VHDL. De gran ayuda en la creacin de bancos de prueba.

2005 INTI Tropea, Brengi, Borgna

Herramientas Relacionadas con la Simulacin

2005 INTI Tropea, Brengi, Borgna

Simulador: GHDL
Debido a su excelente soporte para VHDL y a la capacidad de compilar sin problemas proyectos tales como el procesador LEON y el DLX se ha seleccionado el GHDL como herramienta principal de simulacin para VHDL. http://ghdl.free.fr/ GHDL utiliza la tecnologa del GCC, el compilador de software libre ms utilizado en todo el mundo.
2005 INTI Tropea, Brengi, Borgna

Generacin de Bancos de Prueba


natebege Para casos simples donde se desean verificar vectores. Se ingresa una especie de tabla de verdad con los vectores a verificar y el programa genera el banco de pruebas.

2005 INTI Tropea, Brengi, Borgna

Interfaz de usuario simple escrita en GTK. Soporte especial para VHDL (originalmente slo Verilog). Soporte para GHW.

Visor de formas de onda: GTKWave

2005 INTI Tropea, Brengi, Borgna

GNU/Make
Automatiza el proceso, incluyendo pasos especficos. Ejemplo: ensamblador. Integra con SETEdit para la recoleccin de errores.

Edicin setedit
2005 INTI Tropea, Brengi, Borgna

Ctrl+F9 make ghdl

Listo para simular

Herramientas de Sntesis

2005 INTI Tropea, Brengi, Borgna

Sntesis
Lamentablemente no conocemos herramientas de sntesis con licencias free software u open source. Los dos fabricantes ms importantes de dispositivos FPGA brindan herramientas de sntesis, cada uno para sus propios productos, de uso gratuito. El proyecto FPGA Libre est abierto a cualquier tecnologa y dispositivo FPGA, siempre que pueda lograrse su utilizacin bajo entornos de software libre, como es el caso de GNU/Linux. La herramienta de sntesis ISE WebPack de Xilinx es de uso gratuito (no libre), tiene una versin para sistemas GNU/Linux y permite su utilizacin con lnea de comandos, lo que facilita la automatizacin del proceso con herramientas como GNU Make.
2005 INTI Tropea, Brengi, Borgna 2005 INTI Tropea, Brengi, Borgna

ISE WebPack
VHDL

XST

NGDBuild

MAP

PaR

BitGen

TRCE

BitStream

2005 INTI Tropea, Brengi, Borgna

Herramientas Relacionadas con el Hardware

2005 INTI Tropea, Brengi, Borgna

Hardware y FPGA: Programador JTAG


Para nuestros proyectos usamos un cable compatible con el cable Parallel III de Xilinx, tambin conocido como DLC5. Este es un circuito simple y barato que se puede conectar al puerto paralelo de una PC. Todos los archivos de diseo se encuentran disponibles en formato Kicad.

2005 INTI Tropea, Brengi, Borgna

Soft JTAG
Estndar IEEE 1149.1 del JTAG (Joint Test Action Group). Originalmente pensado para testeo. Independiente del fabricante.

jbit/GNU jtag

xilinx-jtag

PROM
2005 INTI Tropea, Brengi, Borgna 2005 INTI Tropea, Brengi, Borgna

FPGA

OTROS

Hardware y FPGA: Placa de hardware


El intercambio y la copia de circuitos fsicos (hardware) es complejo debido al costo de replicacin. Aqu ya no pueden aplicarse los mismos criterios que para el software libre. Sin embargo, s puede mantenerse el mismo espritu con los archivos y toda la informacin de diseo asociada a un circuito. A este concepto se lo llama Hardware Libre, Hardware Abierto o Free Hardware. En este punto es muy importante comprender que las herramientas de software para realizar estos diseos tambin deberan ser libres. Para cumplir este propsito con el desarrollo de circuitos electrnicos bajo esta modalidad se ha seleccionado el software KICAD: http://www.lis.inpg.fr/realise_au_lis/kicad/.

2005 INTI Tropea, Brengi, Borgna

Conclusiones

Se puede completar el ciclo completo utilizando S.L. y/o gratuito. dem usando un OS libre (ej: Debian GNU/Linux). Se dispone de herramientas muy tiles y fcilmente automatizables. Se puede ensear y desarrollar usando las mismas herramientas (sin costos). No es necesario atarse a un fabricante de soft/hard. GHDL es neutral.

2005 INTI Tropea, Brengi, Borgna

Contacto
Integrantes:
Brengi, Diego J. <brengi@inti.gov.ar> Tropea, Salvador E. <salvador@inti.gov.ar> http://utic.inti.gov.ar

Muchas gracias!
2005 INTI Tropea, Brengi, Borgna

You might also like