Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
SystemC
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
'''SystemC''' es frecuentemente descrito como un ''[[lenguaje de descripción de hardware]]'' como son [[VHDL]] y [[Verilog]], pero es más adecuado describirlo como un ''lenguaje de descripción de sistemas'', puesto que es realmente útil cuando se usa para modelar sistemas a nivel de comportamiento. == Descripción == SystemC es un conjunto de bibliotecas y macros implementadas en [[C++]] que hacen posible una simulación de procesos concurrentes con la sintaxis del lenguaje C++ ordinario. Así los objetos descritos pueden comunicarse durante una simulación de [[tiempo real]] usando señales de cualquier tipo ofrecido por C++, además algunas otras ofrecidas por las librerías de SystemC y también otras definidas por el usuario. La metodología de diseño es comenzar con un modelo de alto nivel escrito en C++ y aplicar un proceso iterativo consistente en transformar el código para usar sólo los elementos que tengan su equivalente en un lenguaje de descripción de hardware. == Lenguaje == === Módulos === Los módulos (''module'') son los bloques básicos en el diseño de una jerarquía en SystemC. Un modelo SystemC consta habitualmente de varios módulos que se comunican a través de los puertos. === Puertos === Los puertos (''port'') permiten la comunicación de un módulo con el exterior, normalmente con otros módulos. === Procesos === Los procesos (''processes'') son los principales elementos de computación. Son concurrentes. === Canales === Los canales son elementos de comunicación de SystemC. Pueden ser simples cables o complejos mecanismos como sistemas FIFO o buses. Los canales básicos son: * signal * buffer * FIFO * mutex * semaphore === Interfaces === Los puertos usan las interfaces para comunicarse con los canales. === Eventos === Los eventos (''events'') permiten la sincronización entre procesos. === Tipos de datos === SystemC introduce varios tipos de datos para dar soporte al modelado de hardware. ==== Tipos extendidos ==== * sc_int<> entero con signo de 64 bits * sc_uint<> entero sin signo de 64 bits * sc_bigint<> entero con signo de [[precisión arbitraria]] * sc_biguint<> entero sin signo de precisión arbitraria ==== Tipos lógicos ==== * sc_bit un bit con dos únicos valores posibles2-valued single bit * sc_logic un bit en el que se pueden dar 4 valores * sc_bv<> vector de sc_bit * sc_lv<> vector de sc_logic * sc_lv<> normalmente se expresa en números decimales ==== Tipos de punto fijo ==== * sc_fixed<> templated signed fixed point * sc_ufixed<> templated unsigned fixed point * sc_fix untemplated signed fixed point * sc_ufix untemplated unsigned fixed point == Ejemplo de código == El siguiente ejemplo es un sumador: #include "systemc.h" SC_MODULE(adder) // módulo, declaración de la clase { sc_in<int> a, b; // puertos sc_out<int> sum; void do_add() // proceso { sum = a + b; } SC_CTOR(adder) // constructor { SC_METHOD(do_add); // registro do_add al kernel sensitive << a << b; // lista de sensibilidad de do_add } }; == Alternativas == SystemC usa el código escrito en C como entrada a sus programas de síntesis. Otra opción es transformar una descripción hecha en un lenguaje de programación a un lenguaje de descripción de hardware como VHDL o Verilog, algunas herramientas para ello son: * [[BachC]] * CoWare * OCAPI * CynApps * C2HDL * AR|T Builder == Véase también == * [[Codiseño]] hardware-software * [[Diseño de circuitos]] * Nivel de [[transferencia de registros]] (RTL) == Enlaces externos == * [https://web.archive.org/web/20081006172519/http://systemc.org/ Sitio web de SystemC] * [https://web.archive.org/web/20080820010200/http://sclive.blogsite.org/ Un CD Linux "Live" por SystemC con clase particular de C++/SystemC ] * [http://www.synopsys.com/ Synopsys], creadores de CoCentric SystemC Compiler * [http://www-ti.informatik.uni-tuebingen.de/~systemc/ Grupo de usuarios europeo de SystemC] {{Wayback|url=http://www-ti.informatik.uni-tuebingen.de/~systemc/ |date=20050829183929 }} * [http://www.doulos.com/knowhow/systemc/ Guía de SystemC] {{Control de autoridades}} [[Categoría:Lenguajes de descripción de hardware]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
SystemC
»
Añadir idiomas
Añadir tema