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
> 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 ...
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.
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.
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.
> 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.
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.
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?
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...
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.
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.
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 ;)
@ 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
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?
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.
Und nein... :) Hello World ist kein FPGA-Anfängerding. Eher der gute alte Blinker gefolgt vom Lauflicht ;)
@ 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
@Falk: Besser kann mans nicht ausdrücken :-D
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!?
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/
@ 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
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 :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.