Professional Documents
Culture Documents
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.
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
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.
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.
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.
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.
Interconexin
Wishbone (OpenCores) Para reusar IPs. Libre (sin royalties). Especificacin completa en internet. Completa (uso avanzado). Pocos recursos cuando el caso es simple.
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.
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.
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.
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.
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.
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.
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.
Librera de C
Agrega funciones de stdio, stdlib, string, etc. al VHDL. De gran ayuda en la creacin de bancos de prueba.
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
Interfaz de usuario simple escrita en GTK. Soporte especial para VHDL (originalmente slo Verilog). Soporte para GHW.
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
Herramientas de Sntesis
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
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
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.
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