Forum: FPGA, VHDL & Co. VHDL Funktionsweise und Beispielprogramm (Anfänger)


von Dussel (Gast)


Lesenswert?

Moin,
1.habe ich die Funktionsweise von VHDL richtig verstanden, dass man die 
Funktionsblöcke schreibt, die entsprechend dem Eingang bestimmte Werte 
ausgeben? Diese Blöcke schaltet man dann beliebig zusammen um das 
gewünschte Ergebnis zu erzielen. Zum Beispiel schreibe ich einen 
Addiererblock, der am Ausgang die Summe der Eingänge ausgibt und einen, 
der durch 2 dividiert und hänge den Dividierblock hinter den Addierblock 
um den Durchschnitt zu berechnen.
2.Gibt es irgendwo ein einfaches kommentiertes Beispielprogramm? Im 
Internet habe ich nur Arbeiten darüber gefunden, die theoretisch darüber 
schreiben und nicht auf die Erstellung von Programmen ausgelegt sind.
3.Gibt es eine Beschreibungssprache, die nicht Basic Syntax hat? Auf 
Basic bin ich im Moment nicht so gut zu sprechen;)

Danke schonmal
Die Antworten habe ich schon gesucht, aber wirklich nichts für einen 
Anfänger verständliches gefunden

von yalu (Gast)


Lesenswert?

> 1.habe ich die Funktionsweise von VHDL richtig verstanden, dass man
> die Funktionsblöcke schreibt, die entsprechend dem Eingang bestimmte
> Werte ausgeben? Diese Blöcke schaltet man dann beliebig zusammen um
> das gewünschte Ergebnis zu erzielen.

Ja, so läuft das prinzipiell.

> Zum Beispiel schreibe ich einen Addiererblock, der am Ausgang die
> Summe der Eingänge ausgibt und einen, der durch 2 dividiert und
> hänge den Dividierblock hinter den Addierblock um den Durchschnitt
> zu berechnen.

Nur, dass man sich den Dividierer spart und von der Summe einfach das
niederwertigste Bit nicht weiter benutzt. Das entspricht einer
Division durch 2 in der Zeit 0 ;-)

> 2.Gibt es irgendwo ein einfaches kommentiertes Beispielprogramm? Im
> Internet habe ich nur Arbeiten darüber gefunden, die theoretisch
> darüber schreiben und nicht auf die Erstellung von Programmen
> ausgelegt sind.

Such einfach nach "VHDL" und "Tutorial".

> 3.Gibt es eine Beschreibungssprache, die nicht Basic Syntax hat? Auf
> Basic bin ich im Moment nicht so gut zu sprechen;)

Ich finde nicht, dass VHDL wie Basic aussieht. Als Alternative gibt es
Verilog. Verilog hat den Vorteil, dass man für das gleiche Ergebnis
weniger tippen muss. Allerdings scheinen hier im Forum alle VHDL zu
machen. Wenn du also öfters Fragen hast ...

von Dussel (Gast)


Lesenswert?

ok, danke, ich werde mal suchen.

von Karl (Gast)


Lesenswert?

Verilog ist vor allem in den USA verbreitet, während VHDL in Europa 
quasi Standard ist. Verilog erlaubt AFAIK mehr Freiheiten, was 
allerdings sehr schnell in schlechtem Stil endet. VHDL setzt die Grenzen 
enger und zwingt einen mehr zu sauberer Beschreibung.
Unter dem Strich ist die Schwierigkeit aber die Definition geeigneter 
Blöcke und nicht das Runterschreiben in einer HDL. Bezüglich geeigneter 
Literatur gabs hier schon Threads.

von glück (Gast)


Lesenswert?

Nach meinen Informationen ist VHDL etwas besser geeignet wenn es um 
parametrierbare Designs geht. Dafür soll Verilog in der Simulation 
schneller sein. Kann ich aber selbst nicht bestätigen, da ich kein 
Verilog verwende.

von Karl (Gast)


Lesenswert?

Warum sollte Verilog in der Simulation schneller sein?
Scalable code in VHDL grenzt manchmal auch an Kunst, obwohl es 
zugegebenermaßen viele Möglichkeiten bietet. Es gilt sehr genau 
abzuwägen, ob das Design wirklich skalierbar sein soll.

von yalu (Gast)


Lesenswert?

> Unter dem Strich ist die Schwierigkeit aber die Definition
> geeigneter Blöcke und nicht das Runterschreiben in einer HDL.

Das ist der Punkt. Gute FPGA-Designs zu entwickeln, lernt man erst in
Jahren. Das ist nicht anders als bei elektronischen Schaltungen oder
Softwarealgorithmen. Den Umstieg von einer HDL auf eine andere würde
ich mit wenigen Wochen veranschlagen.

Also was soll's. Ich habe, als ich mit FPGAs anfangen wollte, tagelang
rungesurft, um nach Vergleichen zwischen VHDL und Verilog zu suchen
und herauszufinden, welches von beiden das Bessere ist.

Irgendwann habe ich aufgegeben und mich aus zwei ziemlich banalen
Gründen für Verilog entschieden:

Erstens kenne ich jemanden, der in der (übrigens europäischen) Firma
ebenfalls Verilog macht.

Zweitens hat mir die Syntax von Verilog etwas besser gefallen.

VHDL sieht mir durch die vielen und ausgeschriebenen Füllwörter zu
sehr nach Prosa aus (fast ein wenig wie Cobol). Verilog ist im
Vergleich sehr straff und ohne Zierat, wie es sich für eine formale
Sprache in der Technik gehört (also eher die Philosophie von C).

Wenn aber eines Tages jemand VHDL von mir will, wäre das sicher auch
kein großes Problem.

von Dussel (Gast)


Lesenswert?

Jetzt nachdem ich verglichen habe gefällt mir die Syntax von Verilog 
besser. Genau wie yalu mag ich auch die Syntax nicht in der man fast 
einen Aufsatz schreibt. Das meinte ich auch mit Basic Syntax.

von Dussel (Gast)


Lesenswert?

Habe gerade noch was gefunden. Was haltet ihr von SystemC? Kann man sich 
da auch einen Simulator und ein Synthesetool runterladen und dann damit 
Simulieren und FPGAs "flashen" oder funktioniert das anders?

von Mathi (Gast)


Lesenswert?

SystemC findest Du keine kostenlosen Tools für. Desweiteren ist es nicht 
so effizient wie VHDL/Verilog. Es gibt aber ein kostenloses Projekt das 
Dir ein C-subset in VHDL compiliert. Nennt sich streamsC 
http://www.streams-c.lanl.gov/

Hab ich noch nicht versucht...
Falls Du richtig SystemC versuchen willst, musst Du Geld ausgeben...

von Dussel (Gast)


Lesenswert?

Und C++? Lese gerade, dass das auch irgendwie gehen soll. In C++ habe 
ich Erfahrung, deshalb wäre es schön, wenn ich damit programmieren 
könnte.

http://bibserv7.bib.uni-mannheim.de/madoc/frontdoor.php?source_opus=857
"-Beim Einsatz von CHDL muß der Entwickler nur eine einzige Sprache 
beherrschen, um Anwendungen für FPGA-Koprozessoren zu implementieren: 
C++.
Ein handelsüblicher C++-Kompiler sowie die Place&Route-Software des 
FPGA-Herstellers reichen aus, um mit CHDL FPGA-Anwendungen zu 
entwickeln. Es werden keine weiteren Werkzeuge benötigt, insbesondere 
keine VHDL-Kompiler."

Könnte das was sein? Bekommt man diese "Place and Route Software" ohne 
Probleme bei den Herstellern?
Tut mir leid, dass ich so komische Fragen stelle, aber ich bin auf 
diesem Gebiet halt kompletter Anfänger.

von Mathi (Gast)


Lesenswert?

Prinzipiell denke ich das das gehen müsste. Nur finde ich keinen Ort wo 
man das herunterladen könnte.
Aber dieser Ansatz ist halt der gleiche wie bei SystemC. Du entwickelst 
in einer Sprache Deine Applikation und entscheidest erst später was in 
Hardware und was in Software realisiert werden soll.
Es ist aber auch garnicht möglich die komplette Sprache C/C++ zum 
Hardwaredesign zu verwenden. Es gibt einfach Konstrukte in der Software, 
die nicht synthetisierbar sind. Deshalb kann man in diesen Sprachen nur 
einen Bruchteil der eigentlichen C-Konstrukte verwenden.

von Dussel (Gast)


Lesenswert?

Dass man vieles nicht benutzen kann ist klar, aber mir ist es lieber in 
einer Sprache zu schreiben die ich kenne und dafür was wegzulassen als 
eine neue lernen zu müssen. Mir ist auch aufgefallen, dass man das nicht 
laden kann, ist ja leider (nur) eine Dissertation. Ich werde mal sehen 
mit welcher Sprache ich glücklich werde ;)

von Falk B. (falk)


Lesenswert?

@  Dussel (Gast)

>Und C++?

Unbrauchbar.

>http://bibserv7.bib.uni-mannheim.de/madoc/frontdoo...
>"-Beim Einsatz von CHDL muß der Entwickler nur eine einzige Sprache
>beherrschen, um Anwendungen für FPGA-Koprozessoren zu implementieren:
>C++.
>Ein handelsüblicher C++-Kompiler sowie die Place&Route-Software des
>FPGA-Herstellers reichen aus, um mit CHDL FPGA-Anwendungen zu
>entwickeln. Es werden keine weiteren Werkzeuge benötigt, insbesondere
>keine VHDL-Kompiler."

Marketinggefasel.

>Könnte das was sein? Bekommt man diese "Place and Route Software" ohne
>Probleme bei den Herstellern?

Die gibt es auch so.

>Tut mir leid, dass ich so komische Fragen stelle, aber ich bin auf
>diesem Gebiet halt kompletter Anfänger.

Dann lern Verilog oder VHDL. Die Ganzen C/C++/SystemC Sachen sind Murks. 
Nix halbes und nix Ganzes. Damit wird ein "Hello World" zum riesigen 
Monster.

MfG
Falk

von Dussel (Gast)


Lesenswert?

Hello World? Das dürfte doch so schon kompliziert genug sein, weil man 
dafür ein Ausgabegerät ansteuern müsste, oder sehe ich das falsch? Ist 
das etwa auch bei FPGAs ein Anfängerstandart?

von Mathi (Gast)


Lesenswert?

Am Besten wirst Du mit einer der "klassischen" HDLs fahren. Im Moment 
ist bei diesen "Hype"-Sprachen/Konzepten einiges in Bewegung. Man kann 
nicht genau abschätzen was sich/ob sich einer der neuen Ansätze wirklich 
durchsetzen wird. Außerdem siehts halt auch mit Tools mager aus.

von Mathi (Gast)


Lesenswert?

Und nein... :) Hello World ist kein FPGA-Anfängerding. Eher der gute 
alte Blinker gefolgt vom Lauflicht ;)

von Falk B. (falk)


Lesenswert?

@ Mathi (Gast)

>Und nein... :) Hello World ist kein FPGA-Anfängerding. Eher der gute
>alte Blinker gefolgt vom Lauflicht ;)

Das IST "Hello World!" in Hardware ;-)

MfG
Falk

von Mathi (Gast)


Lesenswert?

@Falk:

Besser kann mans nicht ausdrücken :-D

von Dussel (Gast)


Lesenswert?

Ich dachte schon ich hätte da jetzt was ganz falsch verstanden. Mit 
Tools tue ich mich auch für die klassischen Sprachen schwer. Finde keine 
wirkliche Freeware, weiß aber auch nicht, wonach ich genau suchen soll. 
VHDL/Verilog Simulator!?

von Mathi (Gast)


Lesenswert?

Du musst Dir überlegen welche Sprache Du willst und ob Du für ein FPGA 
entwickeln willst. Wenn Du einen bestimmten FPGA-Hersteller im Auge 
hast, findest Du auf deren Seite eine Entwicklungsumgebung die 
eigentlich alles kann...
Für Verilog gibt es z.B. Icarus zum simulieren...
http://www.icarus.com/eda/verilog/
Für VHDL Vhdl-Simili
http://www.symphonyeda.com/

von Falk B. (falk)


Lesenswert?

@ Dussel (Gast)

>Tools tue ich mich auch für die klassischen Sprachen schwer. Finde keine
>wirkliche Freeware, weiß aber auch nicht, wonach ich genau suchen soll.

http://www.mikrocontroller.net/articles/Programmierbare_Logik

Xilinx ISE

http://www.xilinx.com/ise/logic_design_prod/webpack.htm

Nimm ISE Classic 6.3 mit Service Pack 3, spart Downloadzeit und Nerven.

Altera Quartus II

http://www.altera.com/products/software/products/quartus2/qts-index.html

Lattice ISP Lever

http://www.latticesemi.com/products/designsoftware/isplever/index.cfm?source=topnav&jsessionid=ba305d643bd4$3F$7F$3

Das sind die drei grossen im Markt, wobei dier ersten beiden die 
TOP-player sind.

>VHDL/Verilog Simulator!?

Modelsim, gibts bei Xilinx & Altera als Freeware.

MfG
Falk

von Dussel (Gast)


Lesenswert?

Mann, jetzt suche ich bei google und sehe den Wald vor lauter Bäumen 
nicht. Steht ja alle im Artikel über Programmierbare Logik. Danke. Ich 
glaube ich mache langsam mal Schluss und gehe morgen ausgeschlafen an 
die Sache ran :)

von T.M. (Gast)


Lesenswert?

Für Verifikationsumgebungen ist SystemC oder C++ ganz brauchbar, für 
Synthese halte ich es da wie Falk. Dafür sind HDLs wie VHDL oder Verilog 
immer noch erste Wahl.

Um den genannten Herstellen noch den 4. (etwas kleineren) Player 
hinzuzufügen:
Actel: http://www.actel.com/
Die stellen nur nonvolatile FPGAs her, das heißt sind Flash/AntiFuse 
basiert und verlieren deshalb ihre Konfiguration nicht. Wegen dem 
Flashprozess lassen sich aber keine so hohen Taktraten erreichen, dafür 
LowPower.

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.