Forum: Mikrocontroller und Digitale Elektronik Unterschied bzw Zusammenhang zwischen C und VHDL


von joeer(Anfänger) (Gast)


Lesenswert?

Hallo

Will nun das Programmieren von Mikrocontrollern anfangen!
Habe bereitsb erfahrung in der C++ Programmierung(Im bereich 
Softwareengineering)
Habe für den Anfang an einen AVR (AtMega-8) gedacht!!
(Bin aber flexibel)
Nun würde ich gerne wissen worin der Hauptunterschied zwischen der 
Programmierung von C(C++) und VHDL???
Was empfehlt ihr mir??

von Florian H. (trapperjohn)


Lesenswert?

VHDL ist keine Programmiersprache, um Mikrocontroller zu programmieren 
...

http://de.wikipedia.org/wiki/Very_High_Speed_Integrated_Circuit_Hardware_Description_Language

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

VHDL und Verilog sind Hardware-Beschreibungssprachen, damit kann man 
FPGAs und CPLDs, aber keine AVR-Mikrocontroller programmieren
http://www.mikrocontroller.net/articles/VHDL

von Dominik S. (sleepingiq)


Lesenswert?

Hi joeer
deine Frage wurde ja schon beantwortet. Aber was mich persönlich 
interessieren würde in welchem Zusammenhang du Programmieren gelernt 
hast(Ausbildung, Studium oder selbst beigebracht). Es wundert mich das 
jemand C++ kann aber nicht den unterschied zu VHDL kennt.
Gruß

von Joeer (Gast)


Lesenswert?

Gruß Johannes

Habe Medieninformatik studiert!! Da hast du aber kein Elektronik!! Da 
geht es hauptsächlich um Softwareprogrammierung und Medienverarbeitung!!
Hab dann in einem Buch gelesen das VHDL momentan die üblichste Methode 
ist um Mikrocomputer zu programmieren!
Was mich eigentlich verwundert hat weil ich das noch nie VHDL als 
Programmiersprache (im Zusammenhang mit Mikrocontrollern) gehört habe! 
Deshalb habe ich hier auch diese Frage gestellt! (Das was im Buch stand 
ist schlichtweg falsch geschrieben! (oder ich hab es falsch aufgefasst!! 
Werde nochmals nachschauen!!)
Also nochmals sorry wegen der dummen Frage (hätte erstmals googeln 
sollen!! Aber konnte ja nicht ahnen dass das im Buch falsch drin steht)

Gruß Joeer

PS: Das Buch richtet sich an Ingenieure !!(Finde ich traurig!!)(Ich werd 
nochmals nachschauen ob ich es eventuell doch falsch aufgenommen hab)

von Dominik S. (Gast)


Lesenswert?

Hi Joeer
wie gesagt handelt es sich bei VHDL um eine 
Hardware-Beschreibungssprache. Mit der keine µC programmiert werden. Was 
aber möglich ist, mit VHDL einen µC zu programmieren (im Sinne einen 
Kern zu beschreiben) welcher dann mit C programmiert wird.
Ist etwas seltsam zu verstehen. Ich hab einen Artikel vom IAF aus 
Offenburg die haben einen Prozessorkern (der Name ist SIRIUS, ist eine 
RISC-Architektur) entwickelt. Es handelt sich dabei um einen Soft-Kern 
der mit VHDL beschrieben wurde. Programmiert wird der KErn mit C. 
Implementiert wurde der Kern auf einem FPGA (ALTERA Cyclon).
Leider ist der Bericht nicht beim IAF auf der Webseite und Scanner oder 
ähnliches hab ich gerade nicht zur Hand. Wenn es dich interessiert werd 
ich den Bericht morgen dann hochladen. Dann kann man vielleicht eher den 
Unterschied verstehen.

PS: Falls jemand meint das meine Ausführung ungünstig gewählt ist lass 
ich mich gerne korregieren. Da ich selbst finde das es etwas seltsam zu 
verstehen ist.

Gruß Sleeping IQ

von Joeer (Gast)


Lesenswert?

Mittlerweile ist mir die Sache schon klar! Nachdem ihr mich darauf 
hingewiesen habt und ich mich genauer damit auseinandergesetzt habe!
Ich würde es umgangssprachlich so ausdrücken:
VHDL ist eine Programmiersprache zur Entwicklung digitaler 
Schaltungen(wie sie z.B. im Mikrocontroller vorkommen)
Mit c kann ich den Mikrocontroller programmieren z.B: Taster Nummer 1 
gedrückt --------> Ausgang... wird geschaltet(oder halt so ähnlich)

Wenn ich doch total daneben liegen sollte könnt ihr mich ja gerne 
verbessern!!
Wenn es Dir keine Umstände macht kannst du den Bericht aber trotzdem 
gerne hochladen !!(Bitte nur keinen Aufwand betreiben)
Gruß Joeer

von Falk B. (falk)


Lesenswert?

@ Joeer (Gast)

>VHDL ist eine Programmiersprache zur Entwicklung digitaler

Nein, es ist eine Hardwarebeschreibungssprache. Das Wort 
Programmiersprache ist praktisch schon mit den klassischen, 
sequentiellen Spachen belegt.

>Schaltungen(wie sie z.B. im Mikrocontroller vorkommen)

>Mit c kann ich den Mikrocontroller programmieren z.B: Taster Nummer 1
>gedrückt --------> Ausgang... wird geschaltet(oder halt so ähnlich)

Mal ein Versuch von mir.

VHDL ist eine Hardwarebeschreibungssprache, womit der Aufbau, das 
logische sowie zeitliche Verhalten von digitaler Hardware beschrieben 
werden kann.

C ist eine Programmiersprache zur Beschreibeung sequentieller 
Programmabläufe in Mikroprozessoren.

MFG
Falk

P.S. VHDL liegt technisch gesehen weit unterhalb von C, sogar unterhalb 
von Assembler auf der Hardwareebene. Allerding über der Transistorebene.

Etwa so

IC-Layout
Transistoren
Gatter            VHDL kann das
Register          VHDL kann das
Module            VHDL kann das
Assembler
C
Kommandozeile
Windows

von Dominik S. (Gast)


Angehängte Dateien:

Lesenswert?

Hi Joeer
hab den Artikel mal abfotografiert. Vielleicht wird dann klarer was man 
mit VHDL macht.

Gruß

von Trohl (Gast)


Lesenswert?

@Joeer: Deine Ausrufezeichen-Taste klemmt!

von A. F. (artur-f) Benutzerseite


Lesenswert?

>Hab dann in einem Buch gelesen das VHDL momentan die üblichste Methode
>ist um Mikrocomputer zu programmieren!

In VHDL wird der Mikrocomputer praktisch implementiert, bei einem 
weiteren Prozess werden die Gater, Muxer usw. in Transistorlogik 
umgesetzt. Am Ende   kann so ein entwickelter Mikrocomputer in einen IC 
umgesetzt werden (ASIC).  Somit ist fast jeder komplizierter 
Logikbaustein ein ASIC, welcher Mal in VHDL oder Verilog beschrieben 
wurde. Niemand setzt sich heute noch hin und "bastelt/beschreibt" die 
µC's etc. mit einer reinen Transistorlogik. Mit C/C++ wäre es 
theoretisch auch möglich, nun hat man sich damals auf VHDL/Verilog 
konzentriert, was sich durchgesetzt hat.

von Panzer H. (panzer1)


Lesenswert?

Um mal etwas zur Verwirrung beizutragen:
Mittels SystemC lässt sich (theoretisch) das komplette System 
beschreiben, also der Software- (sequentiell, Programmierung des 
µC-Cores) als auch der Hardware-Teil (Flipflop, Gatter,...).
Viel Spass.

von Klaus F. (kfalser)


Lesenswert?

> Mit C/C++ wäre es theoretisch auch möglich, nun hat man sich damals auf
> VHDL/Verilog konzentriert, was sich durchgesetzt hat.

Naja, wenn man es so sieht wäre es theoretisch auch mit Assembler 
möglich ..

von A. F. (artur-f) Benutzerseite


Lesenswert?

>Naja, wenn man es so sieht wäre es theoretisch auch mit Assembler
>möglich ..

Nein, weil Assembler CPU abhängig ist. C dagegen nicht. VHDL 
Synthese/Implementierung wird übrigens mittels C/C++ realisiert.

von Klaus F. (kfalser)


Lesenswert?

Bitte den Ironie-Detektor einschalten !
Und ob die Synthese/Simulationsprogramme in C oder C++ geschrieben 
werden, wird man wohl bei den Herstellerfirmen nachfragen müssen.

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.