Emanuel G. schrieb:
> Weil ich objektorientiert programmieren kann, habe ich fast
> begeistert aufgeschrien, als ich entdeckt habe, dass es
> SystemVerilog gibt.
Es ist verheerend, Softwareprogrammierung und Hardwarebeschreibung in
einen Topf zu werfen, auch wenn sich die verwendeten Sprachen
syntaktisch stark ähneln. Insbesondere Verilog kann ja eine deutliche
Sprachverwandtschaft mit C nicht leugnen, ebenso VHDL mit ADA.
Ich beschreibe Hardware ganz bewusst in VHDL und nicht in Verilog, damit
es einen deutlichen Unterschied zwischen den Sprachen gibt, zumal sich
bei mir Hardwarebeschreibung und die zugehörige Firmwareentwicklung in
C/C++ teilweise sehr schnell abwechseln, d.h. ich definiere z.B. ein
Peripherieregister in einem IP-Block, starte die Synthese und schreibe
währenddessen schon die passenden Definitionen und Zugriffsfunktonen in
C. Gäbe es keinen hinreichend großes Unterschied zwischen den Sprachen,
bestünde die Gefahr, im falschen Stil weiterzuarbeiten.
Die FPGA- und Toolhersteller versuchen natürlich, unerfahrene
Softwareentwickler zu ködern, indem sie ihnen Beschreibungssprachen
vorsetzen, in denen sie sich scheinbar sofort zurechtfinden.
Dementsprechend übel kann das natürlich enden, insbesondere in Form
subtiler Fehler durch fehlendes oder fehlerhaftes Einsynchronisieren,
usw..
Die Kuh, die alle paar Jahre durchs Dorf getrieben wird, heißt ja
neuerdings HLS (High-level synthesis). Hierdurch soll der Umstieg von
der Softwareentwicklung noch einfacher gemacht werden, zumindest wenn
man den Hochglanzprospekten glauben mag. Neulich meinte ein
Entscheidungsträger eines Kunden, es handele sich dabei nun endlich um
das Allheilmittel, um ein schon seit Jahren kränkelndes FPGA-Projekt nun
endlich retten zu können. Man müsse bei HLS eben nicht mehr irgendwelche
Register usw. definieren, sondern könne alles nahtlos in C
programmieren, und das Synthesewerkzeug kümmere sich vollautomatisch um
die optimale Aufteilung auf Hardware und Software. Ähh..., nein.