Hallo! Ich arbeite (hobbymäßig) seit einiger Zeit mit einem FPGA von Altera(DE 2-115). Ich verwende die Hardwarebeschreibungssprache VHDL und die Entwicklungsumgebung Quartus 2. Ich habe ein fertiges Framework zu Verfügung, indem ich Untermodule programmiert habe. Nun würde ich jedoch selber eigene Projekte realisieren, daher meine Frage: Wie kann man eigene Projekte realisieren? Benötige ich immer ein Framework und wenn ja, wie baue ich mein eigenes? Was muss ich tun um beispielsweise einen GPIO-Pin auf High bzw. Low zu setzen? Benötige ich dafür ein extra Framework oder könnte man einfach einen Code schreiben,welcher gp_io(3) <= '1'; beinhaltet? Schönen Sonntagabend!
:
Verschoben durch Moderator
Tim schrieb: > Was muss ich tun um beispielsweise einen GPIO-Pin > auf High bzw. Low zu setzen? Ich kann das nur für Xilinx beantworten, für Intel dürfte das aber ähnlich sein. Du brauchst ein Constraints-File, welches die einzelnen Pins des FPGA zu Signalen zusammenfasst, und du brauchst ein Top-Level-Modul. Das Top-Level-Modul besteht aus einer Entity, die als Interface genau die im Constraints-File definierten Signale enthält, und deren Implementation enthält dann alle Submodule (oder deine Logik). Dadrin reicht dann tatsächlich ein:
1 | leds <= "0011"; |
Um die vier LEDs passend zu setzen. Vorausgesetzt, es gibt ein Vier-Bit-Signal "leds" im Constraints-File. :-) Wie du die einzelnen Prozess-Schritte von Quartus aufrufst, weiß ich nicht. Bei Xilinx ISE geht das mit relativ flachen Projektdateien, die man in einem Makefile erzeugen kann (und dann muss das Makefile nur die Einzelschritte aufrufen). Für Xilinx Vivado erzeugt man sich ein Tcl-Script, was man dann von Vivado ausführen lässt.
Altera hat doch tonnenweise Beispiele dafür. Gerade bei ihren Demo-Platinen.
Tim schrieb: > Wie kann man eigene Projekte realisieren? > Benötige ich immer ein Framework und wenn ja, wie baue ich mein eigenes? Keine Ahnung, was Du unter "Framework" verstehst. Das einfachst mögliche Quartus-Projekt besteht jedenfalls nur aus ein paar Zeilen. Bei Altera/Intel brauchst Du ein Constraints-File nur für TimeQuest (also für die Timing-Analyse). Im einfachsten Fall hat das nur eine Zeile:
1 | create_clock -period $period -name clk [get_ports {CLK}] |
Die Pin-Zuordnung zu den Signalen des Toplevel-Entity macht man per Assignment-Editor.
Markus F. schrieb: > Tim schrieb: >> Wie kann man eigene Projekte realisieren? >> Benötige ich immer ein Framework und wenn ja, wie baue ich mein eigenes? > > Keine Ahnung, was Du unter "Framework" verstehst. Wahrscheinlich das selbe wie hier: https://www.researchgate.net/publication/317184398_SF3_A_Scalabe_and_Flexible_FPGA-Framework_for_Education_and_Rapid_Prototyping da ist auch vom selben Board die Rede.
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.