Hallo, gibt es denn ein gutes VHDL-Synthese-Werkzeug. Also keinen Simulator, sondern etwas womit ich dann auch wirklich den FPGA programmieren kann. Ich kann mir schlicht keine Werkzeuge von Altera leisten... Gruß
Alexander Kiebler schrieb: > Ich kann mir schlicht keine Werkzeuge von Altera leisten... Weltweit prgrammieren viele ihre FPGAs mit den kostenlosen Tools der Hersteller. Und auch vom Quartus gibts da was umsonst.
von Altera nennt sich das Quartus II Web Edition Software und man kann damit für die kleineren FPGAs synthetisieren
Bei Xilinx nennt sich das Webpack. Kann nach kostenloser Registrierung inklusive einer Version des Simulators ModelSim heruntergeladen werden. Aver genau wie bei Altera fehlen die wirklich großen FPGA's.
Eine andere Möglichkeit ist der Opensource VHDL-Compiler GHDL. Brauchst als zur Anzeige aber noch das GTK-Wave. Hoffe der Name stimmt. Habe das vor längerer Zeit mal unter Linux am laufen. Bin aber nur bis zur Simulation damit gegangen und nicht bis zur eigentlichen Synthese. Bin da im Moment überfragt wie das dann funktioniert.
Alexander Kiebler schrieb: > gutes VHDL-Synthese-Werkzeug. Also keinen Simulator, Decius schrieb: > der Opensource VHDL-Compiler GHDL Wie war das noch mal? Zitat aus http://packages.debian.org/de/squeeze/ghdl
1 | GHDL kann keine Synthese: Er kann Ihr Design nicht in eine Netzliste übersetzen. |
Dann noch ne weitere Frage, kann ich Teile des FPGAs mit verschiedenen Takten laufen lassen ??? Müßt doch eigentlich gehen ....
ja, das geht. dazu verwendest du entweder eine pll oder einfach mehrere quarze am fpga (was ich aber nciht empfehlen wuerde)
Das nicht empfehlen bezog sich auf die mehrere Quarze, und nicht auf die verschiedenen takte hoffe ich =).... Wenn ja , klasse
Alexander Kiebler schrieb: > Dann noch ne weitere Frage, kann ich Teile des FPGAs mit verschiedenen > Takten laufen lassen ??? Ja. Aber beim Übergang der Signale von einem Takt zu einem anderen Takt (Clock-Domain-Crossing) gibt es viele Möglichkeiten etwas falsch zu machen und nur eine um es richtig zu machen:
1 | 1 Signal -> toggeln + einsynchronisieren |
2 | Zähler -> Gray-Code |
3 | Daten -> asynchrones FIFO (mit graycodiertem Zählerstand und getoggelten Handshakes) |
Duke
Alexander Kiebler schrieb: > Dann noch ne weitere Frage, kann ich Teile des FPGAs mit verschiedenen > Takten laufen lassen ??? > Müßt doch eigentlich gehen .... Geht. Aber hier nochmal meine Postulate, die insbesondere Anfänger zu beherzigen haben:
1 | Ein Design (insbesondere ein Anfängerdesign) hat genau 1 Takt, |
2 | der immer auf dieselbe Flanke aktiv ist. |
3 | Es gibt keinen (und schon gar keinen asynchronen) Reset. |
4 | Externe Signale werden über 2 Flipflops einsynchronisiert. |
5 | Jede Abweichung von diesen Regeln muß fundiert begründet werden können. |
Und ein kleiner aber feiner Tipp für Anfänger: Vergiss das erste viertel Jahr Variablen!
Was hast Du gegen Variablen? Man kann nicht alles statisch machen.
Gerald H. schrieb: > Was hast Du gegen Variablen? Man kann nicht alles statisch machen. Darum geht es nicht. Es geht darum das damit so gut wie alle VHDL-Anfänger auf die Nase fallen. Jeder hat vorher schonmal Software gemacht und das Verhalten von Signalen und Variablen ist in VHDL nun mal komplett anders. Wenn man sich erstmal auf die Signale konzentriet bekommt man viel eher ein Gefühl für die Materie, als wenn man gleich mit beidem konfrontiert wird... Duke
Ich werds nicht gleich übertreiben =) versprochen... Es ging mir erstmal um einen grobentwurf, ob das was ich mir vorgenommen habe so überhaupt machbar ist. Das ich das nicht gleich alles auf einmal mache ist klar. Für variablen habe ich mir bis jetzt nur gemerkt, dass ich sie benötige, wenn ich innerhalb eines Prozesses auf Signale zugreifen möchte. Freu mich natürlich immer über verständliche Ausführungen =)...
Also vorrausgesetzt ich habe ein Signal, welches zufällig den Längsten Pfad durch meine Kombinatorik im Prozess hat und ich möchte auf dieses zugreifen , dann brauch ich doch für den Zugriff innerhalb des Prozesses nen Speicher oder ne rückkopplung oder nicht ??? Wichtig ist die Aussage, dass der Prozess serialisiert... und damit die signale irgendwie synchronisiert werdenmüssen... Klaro ist der Pfad des rückgekoppelten Signals länger... also das war ausgenommen. Ich muss es mir mal aufzeichnen denke ich.... mach mir eben meine Gedanken
Dafür brauchst du keine Variablen. Sinnvoll sind sie zB, wenn man während eines process-Durchlaufs Zwischenergebnisse hat, deren Berechnung man nicht jedesmal hinschreiben will. Ok, in der Testbench kann man sie auch noch häufiger brauchen, aber grade als Anfänger ist jede Variablennutzung meistens ein Zeichen dafür, dass man Signale nicht verstanden hat...
Alexander Kiebler schrieb: > Für variablen habe ich mir bis jetzt nur gemerkt, dass ich sie benötige, > wenn ich innerhalb eines Prozesses auf Signale zugreifen möchte. http://www.mikrocontroller.net/articles/VHDL (Kapitel 'Wann und warum verwendet man Variablen?') Eigentlich alles was du mit Variablen machen kannst, kannst du auch mit Signalen in Kombination mit concurrent statements machen...
Und dir bleiben dabei u.U. einige Irrwege erspart. Siehe dazu den Beitrag "Variable vs Signal" Das Hauptproblem mit den Variablen ist, dass sie NICHT in der Sensitivliste eines Prozesses auftauchen können. Und das deshalb die Simulation anders ist als das Syntheseergebnis! Ohne jede Fehlermeldung! Etwas Schlimmeres kann es fast nicht geben... Georg A. schrieb: > aber grade als Anfänger ist jede Variablennutzung meistens ein Zeichen > dafür, dass man Signale nicht verstanden hat... Und ganz krude wird es dann, wenn shared und globale Variablen ins Spiel kommen. Der Hintergrund: sowas war ursprünglich nicht im Sprachumfang von VHDL, wurde dann aber eingeführt, dass man "billige" arbeitslose Softwareentwickler an ein FPGA-Projekt setzen konnte. Die anderen Syntaxelemente kannten die ja schon (if-else, case...), jetzt musste "nur" noch das Verhalten der Informationsträger (Variablen) ein wenig angepasst werden... (Etwa zur selben Zeit und mit dem selben Ziel entstand System-C)
Ich habe eben eine Idee für ein gutes Produkt, und das läßt sich ausschließlich über FPGAs realisieren. Ich bin in Sachen FPGA so absolut kein Profi.... ich denke das konnte ich rüber bringen =)... bilde mir aber ein, einen sehr zügigen Zugang dazu zu finden. Und es macht auch riesig Spass =)... Danke für eure Hilfe, speziell für die Tool-Bezeichner sowie das Sync-Problem für unterschiedliche Takte und den Hinweis auf den Unterschied zwischen Simulation und dem tatsächlichen Verhalten bezüglich Variablen.
Alexander Kiebler schrieb: > Ich habe eben eine Idee für ein gutes Produkt, und das läßt sich > ausschließlich über FPGAs realisieren. Aber du bist sicher, dass ein FPGA das könnte? Warum?
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.