Forum: FPGA, VHDL & Co. SystemC für HW/SW-Codesign sinnvoll?


von dito (Gast)


Lesenswert?

Hallo,

bisher habe ich den Microblaze mit C programmiert und rechenintensive 
Teile ausgelagert und in VHDL implementiert. Nun habe ich des öfteren 
von SystemC gehört.
Hat jemand schon praktische Erfahrung damit in Bezug auf 
Hardware/Software-Codesign?
Vereinfacht es die Entwicklung von solchen Systemen erheblich?

Danke!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Böse Zungen sagen: SystemC war der Versuch, den "billigen" 
C-Programmierern die Hardwarebeschreibung nahezubringen...

Beitrag "VHDL - Software oder Hardware?"
Beitrag "Gibt es SystemC in freier Wildbahn?"

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

dito schrieb:
> Hat jemand schon praktische Erfahrung damit in Bezug auf
> Hardware/Software-Codesign?
> Vereinfacht es die Entwicklung von solchen Systemen erheblich?

System-C ist zunächst mal zur Modellierung gedacht, d.h. zur 
Beschreibung komplexer Systeme, unabhängig davon, was nachher in HW oder 
SW ausgeführt wird. Einen Zähler mit Takt/Enable/Reset zu beschreiben 
ist natürlich möglich, aber ein paar Abstraktionsebenen zu niedrig, um 
sinnvoll zu sein.

Ein weiteres Missverständnis, dass in einigen Kreisen zum schlechten Ruf 
von System-C beigetragen hat, ist der freie Referenz-Simulator in 
Verbindung mit der System-C Verification Library (SCV). Manche dachten, 
sich damit die Anschaffung von Specman(e) oder SystemVerilog zu 
ersparen und wurden von dem scheußlichen C++ Geraffel erschlagen.

Viele Prozessormodelle, virtuelle Plattformen (SoC-Modelle) werden unter 
Verwendung von System-C implementiert. Der Vorteil ist, dass die 
Ausführungsgeschwindigkeit der Modelle extrem hoch ist.

Die EDA Hersteller versuchen mehr oder weniger erfolgreich, high-level 
Synthese mit System-C umzusetzen.

Über meine Benutzerseite findest Du weitere Links zum Thema. Ich selbst 
bin allerdings kein System-C Experte, sondern halte mich an 
(System)Verilog und VHDL.

Gruß
Marcus

von dito (Gast)


Lesenswert?

Ich seh schon: SystemC ist (noch) nicht das Allheilmittel für den 
SoC-Entwurf. Naja hätte ja sein können... ;-)

von Marcus H. (mharnisch) Benutzerseite


Lesenswert?

dito schrieb:
> Ich seh schon: SystemC ist (noch) nicht das Allheilmittel für den
> SoC-Entwurf. Naja hätte ja sein können... ;-)

Falls irgendwelche Zweifel bestehen: Ich wollte System-C nicht schlecht 
reden, sondern nur begründen, warum es die Erwartungen einiger nicht 
erfüllt. Ich kann auch mit einem sehr guten Schraubendreher nur bedingt 
erfolgreich Nägel einschlagen.

--
Marcus

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Marcus Harnisch schrieb:
> Ich kann auch mit einem sehr guten Schraubendreher nur bedingt
> erfolgreich Nägel einschlagen.
Aber ich bekomme mit einem Hammer locker eine Schraube rein...  ;-)

von Condor (Gast)


Lesenswert?

Hallo dito,

ob SystemC in deinem Fall bei HW-SW Codesign sinnvoll ist ist schwer zu 
sagen. Die typische Anwendung für SystemC ist meist die 
Architekturphase. Jetzt weiss ich nicht wie gross dein Projekt werden 
soll und wo du arbeitest.
Als ich mit SystemC unter VisualElite gearbeitet habe war das im ASIC 
Design. Da waren die Projekte dann so gross, dass ungefähr 7 Leute die 
Modelle und Testpattern erstellt haben und eine andere Abteilung dann 
die Umsetzung nach VHDL gemacht hat. Das SystemC Modell bzw. die 
Testpattern waren dabei die Referenz, welche Zyklusgenau umzusetzen war. 
Meiner Erfahrung nach ist SystemC nur dann sinnvoll, wenn recht komplexe 
Dinge modelliert werden müssen. (ECC Korrektur, Kanalsimulationen etc.)

Vor kurzem habe ich dann als One-Man Show ein Projekt mit dem Microblaze 
gemacht. Habe dort erst gar nicht mit dem SystemC Modell angefangen 
sondern das Sub-Design in Simulink als Fixpoint simuliert und dann in 
VHDL umgesetzt. (komplexerer Regler) Hatte damals zwar noch mit dem 
Matlab HDL Generator rumgespielt aber es dann doch verworfen, da a) zu 
teuer b) Design explodiert von der Grösse her.
Was ich als ganz geschickt bzw. unumgeänglich angesehen habe, war die 
HW-SW Cosisimulation mit Modelsim. Braucht recht lange bis alles 
aufgesetzt ist und läuft aber ist es wert.
Da kann man dann wengistens soweit den Microblaze arbeiten lassen, dass 
er einem in die  Register schreibt und die HW so initalisiert wie es 
spaeter im wirklichen System sein soll. (meiner Meinung nach führt da 
kein Weg daran vorbei, wenn es überhaupt laufen soll).


Gruss
m.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.