Instalar librería SystemC
Preámbulo
A la hora de utilizar un lenguaje HDL (Verilog, VHDL) para el diseño de sistemas digitales y su implementación en dispositivos electrónicos tales como CPLD's o FPGA's, debe realizarse una verificación funcional continua del diseño con el que se trabaja. Hacerlo normalmente implicaría considerar de forma manual todas las situaciones dentro de las cuales sería utilizado/manipulado el dispositivo por parte del usuario. Para ello existen herramientas tales como Spec# o SystemC; librerías de extensión del lenguaje C con las cuales se puede hacer también descripción de hardware y generar bancos de pruebas o benchmarks que abarquen la mayoría de las posibles configuraciones y corregir así cualquier error de diseño a tiempo. Estas librerías permiten manejar multithreading y especificaciones temporales en la programación de alto nivel.
Además, utilizando estas librerías y sus recursos, es posible utilizar las bondades de la programación de alto nivel en el desarrollo de ambientes para la verificación funcional de circuitos integrados.
Para instalar la librería SystemC en Kubuntu 9.04, deben seguirse los siguientes pasos:
1) Descargar el archivo systemc-2.2.0.tgz y desempaquetar
El paquete puede descargarse del sitio oficial
Nota: Es necesario pasar por un proceso de registro antes de acceder al paquete en este sitio.
2) Crear directorio temporal para la instalación
Dentro de la carpeta /.../systemc-2.2.0 crear el directorio temporal tmpdir
user@user-laptop:/.../systemc-2.2.0$ mkdir tmpdirLuego se crea un enlace:
user@user-laptop:/.../systemc-2.2.0$ cd tmpdir
user@user-laptop:/.../systemc-2.2.0/tmpdir$ set CXX=g++
user@user-laptop:/.../systemc-2.2.0/tmpdir$ export CXX3) Configurar, compilar e instalar
Para configurar el paquete:
user@user-laptop:/.../systemc-2.2.0/tmpdir$ ../configurePara la compilación:
user@user-laptop:/.../systemc-2.2.0/tmpdir$ makeIMPORTANTE: Si este paso genera errores como los que se muestran a continuación:
sc_utils_ids.cpp: In function ‘int
sc_core::initialize()’:
sc_utils_ids.cpp:110: error: ‘getenv’ no es un miembro de ‘std’
sc_utils_ids.cpp:111: error: ‘strcmp’ no se declaró en este ámbito
sc_utils_ids.cpp: At global scope:
sc_utils_ids.cpp:119: aviso: se definió ‘sc_core::forty_two’ pero no se usa
make[3]: *** [sc_utils_ids.o] Error 1
make[3]: se sale del directorio `/.../systemc-2.2.0/src/sysc/utils'
make[2]: *** [all-recursive] Error 1
make[2]: se sale del directorio `/.../systemc-2.2.0/src/sysc'
make[1]: *** [all-recursive] Error 1
make[1]: se sale del directorio `/.../systemc-2.2.0/src'
make: *** [all-recursive] Error 1Debe realizarse lo siguiente:
user@user-laptop:/.../systemc-2.2.0/tmpdir$ cd /.../systemc-2.2.0/objdir/src/sysc/utils
user@user-laptop:/.../systemc-2.2.0/tmpdir/src/sysc/utils$ kdesudo kate sc_utils_ids.cppVamos a editar el archivo de código C sc_utils_ids.cpp, para forzar a la instalación a utilizar unas librerías que generalmente no emplea en este proceso. Si el archivo estuviera en blanco no hay inconveniente. Agregamos en el encabezado las librerías:
#include <cstdio>
#include <cstdlib>
#include <cstring>Guardamos los cambios y cerramos. Se regresa al directorio donde estamos haciendo la compilación:
user@user-laptop:/.../systemc-2.2.0/tmpdir/src/sysc/utils$ cd /.../systemc-2.2.0/tmpdirY se vuelve a compilar:
user@user-laptop:/.../systemc-2.2.0/tmpdir$ makeEsta vez debería hacerlo sin problemas.
La instalación se realiza por medio del comando:
user@user-laptop:/.../systemc-2.2.0/tmpdir$ sudo make installReferencia
http://svenand.blogdrive.com/archive/95.html