SystemC

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

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 comportemental. SystemC n'est pas un langage à part entière mais un ensemble de classes C++ qui introduisent les concepts nécessaires à la modélisation du matériel (par exemple la notion de processus concurrents). Conservant les fonctionnalités du C++, il reste possible de décrire des fonctions purement logicielles. SystemC permet donc de modéliser des systèmes matériels, logiciels, mixtes ou même non-partitionnés. Il est donc particulièrement approprié à la conception de systèmes de type SoC.

SystemC intègre également la possibilité de simuler le modèle conçu, puis, par raffinements successifs, d'aboutir à une représentation implémentable.

SystemC a été développé en commun par plusieurs entreprises. À cette fin, l'OSCI (Open SystemC Initiative) a été créé, chargé de diffuser, promouvoir et rédiger les spécifications de SystemC. Depuis décembre 2005, SystemC est standardisé auprès de l'IEEE sous le nom de IEEE 1666-2005.

#include "systemc.h"
SC_MODULE(and3)
{
  sc_in<bool> e1;
  sc_in<bool> e2;
  sc_in<bool> e3;
  sc_out<bool> s;
  void compute_and()
  {
    s = e1 & e2 & e3;
  };
  SC_CTOR(and3)
  {
    SC_METHOD(compute_and);
    sensitive << e1 ;
    sensitive << e2 ;
    sensitive << e3 ;
  }
}

Historique[modifier | modifier le code]

Ci dessous, les différentes versions de SystemC[1] :

  • Version 0.9 par Synopsys en 1999[2],[3]
  • Version 1.0 par Frontier Design
  • Version 1.1 par CoWare en 2001
  • Création de L'OSCI (Open SystemC Initiative) en 2001
  • Version 2.0 par L'OSCI
  • Standardisation par l'IEEE IEEE1666-2005 en 2005.
  • Version 2.2 conforme au standard IEEE en 2007[4]
  • Révision du standard IEEE1666-2011 en 2011, avec notamment l'inclusion de TLM 2 au standard.

En juin 2011 une alliance entre Accellera et l'OSCI est annoncée[5],[6].

Références[modifier | modifier le code]

  1. http://comelec.enst.fr/hdl/sc_intro.html
  2. http://www.ee.ryerson.ca/~courses/coe718/Data-Sheets/systemc/System-Level-Design.pdf
  3. http://www-verimag.imag.fr/~maraninx/IMG/pdf/masterthesisfunchalgiovanni.pdf
  4. http://www.accellera.org/downloads/standards/systemc
  5. http://www.gabeoneda.com/edge-on-eda/accellera-and-open-systemc-initiative-osci-get-engaged
  6. http://www.cadence.com/Community/blogs/ii/archive/2011/06/22/accellera-osci-union-new-synergy-for-eda-standards.aspx

Liens externes[modifier | modifier le code]