Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. SystemC
SystemC 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Cet article est une ébauche concernant l’informatique et les télécommunications.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
SystemC

Informations
Dernière version 3.0.2 (31 octobre 2025)[1]Voir et modifier les données sur Wikidata
Dépôt github.com/accellera-official/systemcVoir et modifier les données sur Wikidata
Écrit en C++Voir et modifier les données sur Wikidata
Licence Licence Apache 2.0Voir et modifier les données sur Wikidata
Site web systemc.orgVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

SystemC est un ensemble de classes C++, pour la conception, la modélisation, la simulation et la vérification de circuits logiques numériques. Il apporte des constructions et interfaces pour interagir avec un moteur de simulation évènementielle de façon similaire à un langage de description de matériel (HDL) tout en permettant des modélisations de systèmes intégrant les parties matérielles et logicielles.

Un ensemble de macros permet d'avoir une syntaxe familière pour un développeur connaissant d'autres langages HDL (VHDL ou Verilog par exemple).

Standardisé et ratifié par la Open SystemC Initiative (OSCI) puis Accellera (en) Systems Initiative sous la norme IEEE Std. 1666-2011[2].

Description

[modifier | modifier le code]

SystemC permet de modéliser la partie matérielle d'un système numériques, comme un langage de description de matériel (HDL), tel que VHDL ou Verilog. Mais, comme n'étant qu'une surcouche au dessus de C++, les modélisation peuvent être de plus haut niveau, en intégrant des composantes logicielles ou en utilisant des abstractions de niveau plus élevé (transaction, threads par exemple).

Ce 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 encore partitionnés. Il est donc particulièrement approprié à la conception de systèmes de type SoC[2].

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 (voir la section historique). À cette fin, l'OSCI (Open SystemC Initiative) a été créé, chargé de diffuser, promouvoir et rédiger les spécifications de SystemC. En décembre 2005, SystemC est standardisé auprès de l'IEEE sous le nom de IEEE 1666-2005.

En 2011, une évolution majeure de SystemC est publiée avec la version 2.3 de la bibliothèque correspondant au standard IEEE 1666-2011. Depuis, le développement et la diffusion du standard sont contrôlés par Accellera (en)[3].

En plus du standard, Accellera distribue une implémentation de référence qui contient en plus des classes définies dans le standard, un moteur de simulation. D'autres implémentations existent liées à des outils de simulation propriétaires (par exemple les outils commerciaux de Cadence Design Systems, Mentor Graphics/Siemens EDA et Synopsys).

Exemples

[modifier | modifier le code]
  • Exemple de logique combinatoire:
#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;
  }
}
  • Exemple de logique séquentielle:
#include "systemc.h"

SC_MODULE(counter)
{
  sc_in<bool> clk;
  sc_in<bool> nrst;
  sc_out<sc_uint<8> > q;
  void count()
  {
    if(nrst == false)
      q = 0;
    else
      q = q + 1;
  };
  SC_CTOR(counter)
  {
    SC_METHOD(count);
    sensitive << clk.pos();
  }
}

Historique

[modifier | modifier le code]

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

  • Version 0.9 par Synopsys en 1999[5],[6]
  • 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[3]
  • Version 2.3 avec révision du standard IEEE1666-2011 en 2011, avec notamment l'inclusion de TLM 2 au standard.
  • Version 3.3.0 et la révision du standard IEEE1666-2023 fin 2023.

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

En novembre 2016, Accellera annonce que la bibliothèque est dorénavant distribuée sous les termes de la licence Apache 2.0[9]. À cette occasion la version 2.3.1 est distribuée.

  • La version de SystemC s'appuie sur C++17 pour moderniser la base de code, simplifier la syntaxe de certaines constructions et met à jour l'API pour interagir avec le moteur de simulation[10].

Depuis juillet 2019[11], Accellera propose un dépôt Git officiel public (hébergé sur GitHub[12]) pour accéder au code source de la bibliothèque ainsi qu'aux versions en cours de développement.

Références

[modifier | modifier le code]
  1. ↑ « Release 3.0.2 », 31 octobre 2025 (consulté le 2 novembre 2025)
  2. ↑ a et b (en) « SystemC The language for System-level design, modeling and verification », sur SystemC.org
  3. ↑ a et b (en) « SystemC », sur Accellera
  4. ↑ « Cours en ligne : les HDL », sur telecom-paris.fr (consulté le 12 avril 2023).
  5. ↑ Joachim Gerlach et Wolfgang Rosenstiel, System Level Design Using the SystemC Modeling Platform, Université de Tübingen
  6. ↑ http://www-verimag.imag.fr/~maraninx/IMG/pdf/masterthesisfunchalgiovanni.pdf
  7. ↑ (en) Mike Demler, « EDA Standards Groups Accellera and Open SystemC Initiative will merge », sur EEDailyNews, 22 juin 2011
  8. ↑ (en) « Accellera – OSCI Union : New Synergy for EDA Standards? », sur cadence.com (consulté le 8 octobre 2020).
  9. ↑ (en) « Accellera Announces Relicensing of SystemC Reference Implementation under the Apache 2.0 License », sur Accellera.org
  10. ↑ (en) « SystemC Evolution Fika - 12 September 2023: SystemC IEEE 1666 update », sur systemc.org, 16 août 2024
  11. ↑ (en) « Accellera Announces Public Source Code Repository », sur Accellera.org, 31 juillet 2019
  12. ↑ (en) « Accellera-official/systemc », sur GitHub (consulté le 8 octobre 2020).

Bibliographie

[modifier | modifier le code]
  • (en) IEEE 1666-2011 - IEEE Standard for Standard SystemC Language Reference Manual, IEEE, janvier 2012 (présentation en ligne)
  • « Cours en ligne SystemC », sur Telecom Paris
  • (en) Kim Bjerge, Guide for getting started with SystemC development, Danish Technological Institute (da), 2007 (lire en ligne)

Liens externes

[modifier | modifier le code]
  • (en) Site officiel
  • (en) « SystemC », sur Accellera.org
v · m
Logiciel d'électronique
Logiciel libre
Conception
  • Electric
  • FreePCB
  • Fritzing
  • gEDA
  • GNU Archimedes
  • KiCad
  • KTechLab
  • Oregano
  • PCB
  • SapWin
  • XCircuit (en)
Simulation
  • gEDA
  • Quite Universal Circuit Simulator (Qucs)
  • SPICE / ngspice
  • TKGate
Analyse
  • GTKWave
  • Sigrok
Logiciel propriétaire
  • Altium Designer
  • DesignSpark PCB
  • DipTrace (en)
  • Eagle
Format de fichiers
  • GDSII
  • gerber
  • IDF
  • LEF / DEF
  • OpenAccess
Langage de description de matériel (HDL) et langage de vérification de matériel (HVL)
Langages
  • ABEL
  • Chisel
  • IceStudio (conception pas schéma)
  • Migen (Python)
  • OpenCL
  • RHDL (Ruby)
  • Silice
  • SystemC
  • SystemVerilog
  • Verilog
  • VHDL
Simulateurs
  • Cocotb
  • Coriolis2
  • FreeHDL
  • GHDL
  • Icarus Verilog (en)
  • Verilator
Synthèse logique
  • GHDL
  • Nextpnr
  • OpenLane
  • OpenROAD
  • SymbiYosys
  • Workcraft
  • Yosys
programmation/flashage
  • OpenFPGAloader
  • icône décorative Portail de la programmation informatique
  • icône décorative Portail de l’électricité et de l’électronique
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=SystemC&oldid=228147904 ».
Catégories :
  • Logiciel écrit en C++
  • Langage informatique
  • Langage de vérification de matériel
  • Conception électronique
Catégories cachées :
  • Wikipédia:ébauche informatique
  • Wikipédia:ébauche télécommunications
  • Page utilisant P348
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Article contenant un appel à traduction en danois
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Électricité et électronique/Articles liés
  • Portail:Technologies/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id