El objetivo de este artículo es introducirnos al uso de las herramientas libres para compilar y simular código en lenguaje VHDL. Existen un gran número de herramientas que lo realizan. He analizado GHDL que es una herramienta de linea de comando integrada con Gtkwave y, por otro lado, el uso de freehdl integrado con gvhdl y QUCS que proporcionan una interfaz gráfica.
GHDL (Web oficial)
Es un simulador de VHDL, que usa la tecnologia de GCC. Implementa el lenguaje VHDL acorde a los Standards IEEE 1076-1987 o IEEE 1076-1993. GHDL compila archivos VHDL y crea los binarios que simulan ( o ejecutan ) su diseño. GHDL no hace síntesis, ya que para ello debemos utilizar el software de xilinx (ISEWebpack).
En la web oficial existe una lista de correos y un manual en formato html.
Ejemplos para prueba Aqui les dejo los ejemplos que se mencionan en algunos tutoriales y que yo he probado. Se encuentran compilados en 64 bits.
Además esta herramienta se integra con Gtkwave, que grafica temporalmente el cambio de las variables.
FREEHDL (Web oficial)
Es otra herramienta de compilación y simulación que integra GVHDL y FREEHDL. Posee características similares a GHDL.
FreeHDL es usado por Qucs para las simulaciones digitales. Qucs es un simulador de circuitos con una interfaz grafica de usuario. Qucs tiene como objetivo integrar todo tipo de simulación de circuitos, por ejemplo: DC, AC, Parámetros-S, Transitorios, Ruido y análisis de Harmonic Balance. Es un proyecto de la TU Berlin de Alemania y está disponible en (Web oficial de QUCS).
Ejemplos de simulación digital en Qucs
Tutorial de simulación digital en Qucs
Bugs detectados y su corrección:
A la hora de integrar las dos herramientas freeHDL y Qucs surgieron inconvenientes, y su solución es la siguiente:
Se debe editar el archivo gvhdl que se localiza en /usr/bin/ y cambiar la línea existente:
my $libtool_options = "--mode=link";
Por la siguiente línea:
my $libtool_options = "--mode=link --tag=CXX";
Por otro lado para los usuarios de sistemas de 64 Bits hay otro bug detectado:
Se debe editar el archivo freehdl-config que se localiza en /usr/bin/ y cambiar las líneas existentes que comienzen de la misma forma por:
--ldflags | -ldflags | -l) echo "-L/usr/lib64 " ;; --libtool | -libtool | -libs) echo "/usr/lib64/libfreehdl-kernel.la /usr/lib64/libfreehdl-std.la" ;; --ieee | -ieee) echo "/usr/lib64/freehdl/libieee.la" ;; --cxxflags | -cxxflags | -c) echo "-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -I/usr/include" ;; --cxx | -cxx) echo "g++" ;;
Luego de lo cual no he detectado inconvenientes en las simulaciones digitales con Qucs y freeHDL. (Mi sistema es Ubuntu 8.10 AMD 64-bits)
- Inicie sesión o regístrese para enviar comentarios
- 866 lecturas
-



