SystemC

SystemC

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.

Contenido

Descripción

SystemC es un conjunto de librerías 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

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • SystemC — is often thought of as a hardware description language like VHDL and Verilog, but is more aptly described as a system description language , since it exhibits its real power during transaction level modeling and behavioral modeling. SystemC is a… …   Wikipedia

  • SystemC — ist eine Modellierungs und Simulationssprache insbesondere für die Entwicklung von komplexen elektronischen Systemen, die sowohl Hardware als auch Softwarekomponenten enthalten. Im Gegensatz zu reinen Hardwarebeschreibungssprachen (wie VHDL und… …   Deutsch Wikipedia

  • SystemC — Тип библиотека (программирование) Разработчик Open SystemC Initiative Написана на С++ Операционная система Кроссплатформенный Последняя версия 2.3 Сайт …   Википедия

  • 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 …   Enciclopedia Universal

  • SystemC — Introduction SystemC est souvent présenté comme un langage de description de matériel, au même titre que VHDL ou verilog. En fait, SystemC est un langage de description de plus haut niveau, puisqu il permet une modélisation de systèmes au niveau… …   Wikipédia en Français

  • Hardware description language — In electronics, a hardware description language or HDL is any language from a class of computer languages and/or programming languages for formal description of electronic circuits. It can describe the circuit s operation, its design and… …   Wikipedia

  • Transaction-level modeling — (TLM) is a high level approach to modeling digital systems where details of communication among modules are separated from the details of the implementation of functional units or of the communication architecture. Communication mechanisms such… …   Wikipedia

  • NCSim — Incisive Developer(s) Cadence Design Systems Operating system Cross platform Type Simulator License proprietary …   Wikipedia

  • Juzzle — est une plateforme de développement open source de mise au point et d exploitation de simulateurs, utilisée depuis de nombreuses années dans les domaines de la simulation scientifique par la communauté industrielle française. Cet environnement se …   Wikipédia en Français

  • Verilog — Класс языка: Язык описания аппаратуры Появился в: 1983 1984 Автор(ы): Phil Moorby, Prabhu Goel Расширение файлов: .v Verilog, Verilog HDL (англ. Verilog Hardwar …   Википедия

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”