www.wikidata.de-de.nina.az
SystemC ist eine Modellierungs und Simulationssprache insbesondere fur 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 Ausserdem steht eine quelloffene Implementierung des Standards unter der Apache 2 0 Lizenz zur Verfugung 1 Als Klassenbibliothek erweitert SystemC C um Sprachelemente die der Hardware Modellierung dienen Gleichzeitig verfugt die Bibliothek uber einen Simulatorkern sodass sich mit SystemC beschriebene Modelle ausfuhren und testen lassen 2 SystemC wird vorrangig zur Modellierung auf hoheren Abstraktionsebenen z B fur Transaction Level Modeling TLM eingesetzt Damit eignet sich SystemC insbesondere fur Electronic System Level Designs wo die fruhzeitige Bereitstellung eines Virtuellen Prototypen zur Evaluation von Entwurfsalternativen von hoher Bedeutung ist Klassische RTL Entwurfe waren hier zu komplex und unflexibel Ein weiterer Vorteil von SystemC ist nicht nur die schnelle Entwicklung von Prototypen sondern auch die auf hoheren Abstraktionsebenen deutlich verbesserte Simulationsleistung In SystemC entworfene Modelle auf Transanktionsebene konnen eine um ein rund tausendfaches schnellere Simulationsleistung aufweisen als RTL Modelle 3 Somit konnen auch komplexere Programme mitsimuliert werden und Entwurfsalternativen bezuglich der Partitionierung von Hard und Software Komponenten abgewagt werden Aber auch die Modellierung von synthetisierbaren Schaltungen auf Registertransferebene sind mit SystemC als Substitut fur VHDL oder Verilog moglich Da es sich bei SystemC um keine eigenstandige Sprache sondern eine reine Klassen Bibliothek fur C handelt mussen alle typischen Sprachelemente herkommlicher Hardwarebeschreibungssprachen auf einfache C Sprachkonstrukte abgebildet werden Dies bringt SystemC den Nachteil eines syntaktischen Overheads ein den herkommliche Hardwarebeschreibungssprachen nicht haben Die Bereitstellung einer Vielzahl von Praprozessor Makros hilft dabei diesen Effekt etwas einzudammen Dafur 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 E fur die Modellierung von Protokollen und Peripherie um anhand dieser die Fehlerfreiheit einer digitalen Schaltung zu uberprufen 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 ausfuhrbarer Simulator mit dem Verhalten des Quellcodes entsteht Jedoch wird SystemC auch von kommerziellen Simulationstools wie Modelsim unterstutzt Viele Universitaten arbeiten an effizienten Programmen zur Schaltungssynthese aus SystemC Modellen heraus Einige Unternehmen bieten Losungen an die aus bestimmten SystemC Codes Netzlisten fur ASICs oder FPGAs generieren konnen 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 abgelost wurde Dieser Standard stellt das aktuelle LRM Language Reference Manual dar und ist bei der IEEE kostenlos als Download verfugbar siehe Weblinks Im Jahr 2007 wurde die Open Source Referenzimplentierung der OSCI Open SystemC Initiative auf Version 2 2 aktualisiert um vollstandig 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 verfugbar siehe Weblinks Inhaltsverzeichnis 1 Syntax 1 1 Module 1 2 Signale und Ports 1 3 Prozesse 2 Beispiel 3 Siehe auch 4 Literatur 5 Weblinks 6 EinzelnachweiseSyntax BearbeitenDa SystemC eine Klassenbibliothek fur C ist werden hier nur die fur SystemC typischen Konstrukte angegeben Module Bearbeiten Module dienen dazu um komplexere Systeme in uberschaubare Teile zu gliedern Sie bilden Bausteine sind nach aussen uber Ports zuganglich und konnen wiederum Module enthalten Die Syntax lautet SC MODULE Modulname Modulinhalt Eine Instanz des Moduls wird durch den Konstruktor SC CTOR Modulname realisiert Signale und Ports Bearbeiten Ports bilden die Schnittstelle des Moduls nach aussen Es gibt drei Arten von Ports und als vierten Typ Signale sc in lt Porttyp gt PortInName Eingang sc out lt Porttyp gt PortOutName Ausgang sc inout lt Porttyp gt PortInOutName Bidirektional sc signal lt Signaltyp gt SigName Signal Prozesse Bearbeiten Die Funktionalitat der Module wird durch Prozesse gebildet Es gibt drei Arten von Prozessen Methoden Prozesse werden aufgerufen wenn sich ein Signal aus der Sensitivitatsliste andert und ubergeben nach ihrer Ausfuhrung die Kontrolle wieder an den Simulator zuruck Durch SC METHOD Funktionsname wird eine bestimmte Funktion installiert die zuvor im Modul deklariert werden muss Die Sensitivitatsliste wird durch sensitive lt lt Signal1 lt lt Signal2 erzeugt Im Gegensatz zu Methoden Prozessen werden Thread Prozesse nur einmal gestartet und durchlaufen immer wieder die gleiche Schleife in der wait Kommandos zur vorubergehenden Unterbrechung dienen SC THREAD Funktionsname Clocked Thread Prozesse sind synchrone Thread Prozesse deren Aktionen erst zur nachsten Taktflanke sichtbar werden Im Unterschied zu den Thread Prozessen erfolgt keine Angabe der Sensitivitatsliste sondern das zweite Argument im Aufruf SC CTHREAD Funktionsname Taktflanke spezifiziert welche Flanke des Taktsignals den Prozess triggert Beispiel BearbeitenEin Addierer in SystemC include systemc h SC MODULE adder Moduldeklaration eine Art Klasse sc in lt int gt a b Zwei Eingangs Ports a und b sc out lt int gt sum Ein Ausgangs Port SC CTOR adder SC THREAD doit sensitive lt lt a lt lt b void doit while true sum write a read b read wait Siehe auch BearbeitenJust Another Hardware Definition Language ABEL SystemVerilog SpecC Electronic Design AutomationLiteratur BearbeitenFrank Kesel Modellierung von digitalen Systemen mit SystemC Von der RTL zur Transaction Level Modellierung 2012 ISBN 978 3 486 70581 2Weblinks BearbeitenWebsite der Entwicklungsgruppe von SystemC englisch SystemC Standard IEEE 1666 2005 englisch SystemC Standard IEEE 1666 2011 englisch SystemC AMS Standard IEEE 1666 1 2016 englisch SystemC AMS Proof of Concept Download englisch Fraunhofer IIS EAS SystemC AMS Homepage englisch European SystemC Users Group englisch SCLive eine Linux LiveCD mit kompletter SystemC Simulationsumgebung englisch Doulos Guide to SystemC englisch Einsatz von SystemC im Hardware Software Codesign Diplomarbeit PDF 532 kB Veripool SystemC utilities and Verilog to SystemC compiler englisch 2 Diplomarbeiten zum Thema Simulatorkopplung unter Nutzung von SystemCEinzelnachweise Bearbeiten SystemC Abgerufen am 8 Februar 2019 G Martin SystemC from language to applications from tools to methodologies In 16th Symposium on Integrated Circuits and Systems Design 2003 SBCCI 2003 Proceedings September 2003 S 3 doi 10 1109 SBCCI 2003 1232796 ieee org abgerufen am 8 Februar 2019 Frank Kesel Modellierung von digitalen Systemen mit SystemC Von der RTL zur Transaction Level Modellierung De Gruyter Berlin Boston 2012 ISBN 978 3 486 70581 2 S 17 doi 10 1524 9783486718959 degruyter com abgerufen am 8 Februar 2019 Programmierbare LogikKonzepte ASIC SoC FPGA CLB CPLD EPLD PLA PAL GAL PSoC Reconfigurable Computing Xputer Soft microprocessor Circuit underutilization High level synthesis HardwarebeschleunigungProgrammiertechnik Masken programmiert Antifuse EPROM E PROM Flash SRAMProgrammiersprachen Verilog A AMS VHDL AMS VITAL SystemVerilog DPI SystemC AHDL Handel C PSL UPF PALASM ABEL CUPL OpenVera C to HDL Flow to HDL MyHDL JHDL ELLAHersteller Accellera Actel Achronix AMD Aldec Atmel Cadence Cypress Duolog Forte Intel Altera Lattice National Mentor Graphics Microsemi Signetics Synopsys Magma Virage Logic Texas Instruments Tabula XilinxProdukte Hardware iCE Stratix Cyclone Arria Max Kintex Zynq VirtexSoftware Intel Quartus Prime Xilinx ISE Xilinx Vivado ModelSim VTRIP Proprietar ARC ARM Cortex M PowerPC LEON LatticeMico8 MicroBlaze PicoBlaze Nios Nios IIOpen Source JOP LatticeMico32 OpenCores OpenRISC RISC V Zet Abgerufen von https de wikipedia org w index php title SystemC amp oldid 223872777