Skip to content
EntityQ1753563· pop 14· linked from 269 articles

Software

Source code

SystemC addresses the need for a system design and verification language that spans hardware and software. It is a language built as an ANSI C++ class library created for design and verification. Users worldwide are applying SystemC to system-level modeling, abstract analog/mixed-signal modeling, architectural exploration, performance modeling, software development, functional verification, and high-level synthesis. The SystemC API and its semantics are developed by the [Accellera Systems Initiative][1] and formally standardized and governed by the IEEE in the [IEEE Std. 1666-2023][2] standard. In the event of discrepancies between the behavior of this implementation and statements made in the [IEEE Std. 1666-2023][2] standard, the IEEE standard shall be taken to be definitive. If you would like to contribute to this repository, please check the CONTRIBUTING.md file. See the separate LICENSE and NOTICE files to determine your rights and responsiblities for using SystemC. The main documentation of SystemC is the [IEEE Std. 1666-2023][2] Standard SystemC Language Reference Manual . You can find additional documentation for this release in the docs directory, some of which refers to older versions. See the separate INSTALL.md file that provides system information and installation instructions. See the separate RELEASENOTES.md file that provides up-to-date information about this release of SystemC. Accellera's SystemC [Language Working Group][3] (SystemC LWG) is one of the Accellera Working Groups that produce effective and efficient Electronic Design Automation (EDA) and Intellectual Property (IP) standards for today's advanced IC designs and embedded systems. The SystemC LWG is responsible for the definition and development of the SystemC and TLM core languages, the foundation on which all other SystemC libraries and functionality are built. Participants of both working groups include member companies and industry contributors. Technical contributors typically have many years of practical experience with IC and system design as well as developing and using EDA tools. Accellera Systems Initiative is an independent, not-for profit organization dedicated to create, support, promote and advance system-level design, modeling and verification standards for use by the worldwide electronics industry. The organization accelerates standards development and, as part of its ongoing partnership with the IEEE, its standards are contributed to the IEEE Standards Association for formal standardization and ongoing change control. For more information, please visit [www.accellera.org][1]. Find out more about [membership][5]. Follow [@accellera][6] on Twitter or to comment, please use accellera . Accellera, Accellera Systems Initiative and SystemC are trademarks of Accellera Systems Initiative Inc. All other trademarks and trade names are the property of their respective owners.

Excerpt from the source-code README · 4,177 chars · not written by Vinony

Article · Deutsch

SystemC ist eine Modellierungs- und insbesondere für die Entwicklung von komplexen elektronischen Systemen, die sowohl Hardware- als auch Softwarekomponenten umfassen. Im Gegensatz zu reinen Hardwarebeschreibungssprachen, wie VHDL und Verilog-HDL, handelt es sich bei SystemC um keine eigene Programmiersprache, sondern um eine C++-Klassenbibliothek. Sie ist in dem aktuellen IEEE-Standard 1666-2011 definiert. Außerdem steht eine quelloffene Implementierung des Standards, unter der Apache 2.0 Lizenz zur Verfügung. Als Klassenbibliothek erweitert SystemC C++ um Sprachelemente, die der Hardware-Modellierung dienen. Gleichzeitig verfügt die Bibliothek über einen Simulatorkern, sodass sich mit SystemC beschriebene Modelle ausführen und testen lassen. SystemC wird vorrangig zur Modellierung auf höheren Abstraktionsebenen, z. B. für eingesetzt. Damit eignet sich SystemC insbesondere für , wo die frühzeitige Bereitstellung eines Virtuellen Prototypen zur Evaluation von Entwurfsalternativen, von hoher Bedeutung ist. Klassische RTL-Entwürfe wären hier zu komplex und unflexibel. Ein weiterer Vorteil von SystemC ist nicht nur die schnelle Entwicklung von Prototypen, sondern auch die auf höheren Abstraktionsebenen deutlich verbesserte Simulationsleistung. In SystemC entworfene Modelle auf Transanktionsebene, können eine um ein rund tausendfaches schnellere Simulationsleistung aufweisen als RTL-Modelle. Somit können auch komplexere Programme mitsimuliert werden und Entwurfsalternativen bezüglich der Partitionierung von Hard- und Software-Komponenten abgewägt werden. Aber auch die Modellierung von synthetisierbaren Schaltungen auf Registertransferebene sind mit SystemC als Substitut für VHDL oder Verilog möglich. Da es sich bei SystemC um keine eigenständige Sprache, sondern eine reine (Klassen-)Bibliothek für C++ handelt, müssen alle typischen Sprachelemente herkömmlicher Hardwarebeschreibungssprachen auf einfache C++-Sprachkonstrukte abgebildet werden. Dies bringt SystemC den Nachteil eines syntaktischen Overheads ein, den herkömmliche Hardwarebeschreibungssprachen nicht haben. Die Bereitstellung einer Vielzahl von Präprozessor-Makros hilft dabei, diesen Effekt etwas einzudämmen. Dafür ist der Entwickler deutlich freier im Ausdruck, was jedoch in der Regel mit der Synthetisierbarkeit des Hardware-Modells im Konflikt steht. SystemC eignet sich, wie z. B. auch die Modellierungssprache , für die Modellierung von Protokollen und Peripherie, um anhand dieser die Fehlerfreiheit einer digitalen Schaltung zu überprüfen. SystemC ist jedoch nicht nur eine Modellierungssprache, sondern gleichzeitig ihr eigener Simulationskern. Dieser ist in der SystemC-Bibliothek enthalten (Bsp.: in jeder Referenzimplementierung der OSCI), sodass durch Kompilieren eines System-Quellcodes ein ausführbarer Simulator mit dem Verhalten des Quellcodes entsteht. Jedoch wird SystemC auch von kommerziellen Simulationstools wie unterstützt. Viele Universitäten arbeiten an effizienten Programmen zur Schaltungssynthese aus SystemC-Modellen heraus. Einige Unternehmen bieten Lösungen an, die aus bestimmten SystemC-Codes Netzlisten für ASICs oder FPGAs generieren können. Im Jahr 2005 wurde die Version 2.1 der SystemC-Referenzbeschreibung von der internationalen Ingenieursvereinigung IEEE als Standard IEEE 1666-2005 ratifiziert, welcher 2012 durch 1666-2011 abgelöst wurde. Dieser Standard stellt das aktuelle LRM (Language Reference Manual) dar und ist bei der IEEE kostenlos als Download verfügbar (siehe Weblinks).Im Jahr 2007 wurde die Open-Source-Referenzimplentierung der OSCI (Open SystemC Initiative) auf Version 2.2 aktualisiert um vollständig mit dem IEEE 1666 LRM konform zu sein. Im Jahr 2016 wurde die Analog Mixed-Signal Erweiterung SystemC AMS als Standard ratifiziert (IEEE 1666.1-2016). Eine Open-Source-Referenzimplentierung ist kostenlos als Download verfügbar (siehe Weblinks).

Abstract from DBpedia / Wikipedia · CC BY-SA