Hallo alle, ich setze mich seit ca. 3 Wochen intensiv mit den Themen VHDL und FPGA auseinander aber habe immer noch einige Baustellen in meinem Kopf. Ich arbeite an einem Projekt, bei dem ich ein Spartan 3E Starter Kit benutze. An dieses Kit möchte ich 8 LEDs ranlöten und diese in verschiedener Weise zum Leuchten bringen. Mein FPGA möchte ich mit VHDL programmieren, die Regelung der Helligkeit der LEDs mit PWM und noch einige extras wie ein Lauflicht etc. Ich schreibe also einen Code, bei dem ich dem FPGA sage, was er abhängig vom Input als Output an die LEDs gibt. Also welche LED angesprochen wird und wie hell sie leuchten soll und wann. Ich wollte das ganze mit der RS 232 Schnittstelle machen, welche auf dem Starter Kit vorhanden ist. Mein PC hat leider nicht so eine Schnittstelle, aber ich kann wohl einfach ein USB-RS232 Adapter kaufen. In mein VHDL-Code muss ich jetzt ein UART implementieren. Erst mit dem UART kann ich mein Programm mithilfe der ISE auf das FPGA bringen? Also ich synthetisiere meinen Code und kann ihn dann raufspielen? Wo muss ich meinen UART reinschreiben? Einfach eine extra entity "Uart" in meinem Programm mit der passenden architecture, sozusagen neben meinen anderen entitys ("LED, Lauflicht ...) Erkennt das die ISE dann und kann den UART benutzen? Da fehlt mir noch ein wenig das Verständnis. Wenn ich jetzt meinen Code auf das FPGA gespielt habe, kann ich die RS 232 Verbindung trennen und das Programm bleibt solange auf dem FPGA bis ich einen neuen Code raufspielen würde, richtig? So, fehlt also nur noch der Input für mein FPGA. Ich hatte vor mit JAVA eine GUI zu programmieren bei der der USER wählen kann welche LED um wieviel heller wird usw. Ich habe gelesen, dass übertragen auf FPGAs mit JAVA geht mit der Java Communication API. Wie die genau funktioniert muss ich dann wohl im JAVA-Forum nachfragen bzw. gute Seiten im Netz finden. Die Verbindung soll auch hier via RS232 geschehen (auch wenn ich nicht alle 9 Pins brauche, will ja nur senden und nichts empfangen). Könnte ich also mein PC mit dem FPGA via RS232 verbinden, dann mithilfe der ISE meinen Code raufspielen und dann einfach die selbe Verbindung nutzen und mit meiner GUI die Inputs erzeugen? Solltet ihr irgendwo eine Unstimmigkeit in meinen Aussagen erkennen, bitte darauf hinweisen. Und die Fragen beantworten wär ganz toll :) Danke euch!
@ Felix O. (felixanius) >Ich wollte das ganze mit der RS 232 Schnittstelle machen, welche auf dem >Starter Kit vorhanden ist. Mein PC hat leider nicht so eine >Schnittstelle, aber ich kann wohl einfach ein USB-RS232 Adapter kaufen. Ja. >In mein VHDL-Code muss ich jetzt ein UART implementieren. Erst mit dem >UART kann ich mein Programm mithilfe der ISE auf das FPGA bringen? Nein! >Also >ich synthetisiere meinen Code und kann ihn dann raufspielen? Nein! Die Konfiguration des FPGAs geschieht während der Entwicklung mittles Programierkabel, welches über JTAG auf das FPGA zugreift. Bei einigen FPGA Boards ist das schon fest eingebaut, man muss nur ein USB-Kabel anschließen. Bei anderen Boards hat man einen Programmieradapter. > Wo muss ich >meinen UART reinschreiben? Einfach eine extra entity "Uart" in meinem >Programm mit der passenden architecture, sozusagen neben meinen anderen >entitys ("LED, Lauflicht ...) Ja. >Erkennt das die ISE dann und kann den UART >benutzen? Da fehlt mir noch ein wenig das Verständnis. ISE ist das Softwarepaket. Das weiß nix von deiner speziellen Anwendung und will das auch nicht wissen. Du schreibst VHDL-Code, ISE macht daraus die Konfigurationsdatei für den FPGA. Wie ein Compiler für Mikrocontroller. Sobal das FPGA konfiguriert ist, hat ISE nix mehr zu tun. Die Daten für deinen UART muss dann ein Terminalprogramm erzeugen, z.B. Teraterm oder HTerm. >Wenn ich jetzt meinen Code auf das FPGA gespielt habe, kann ich die RS >232 Verbindung trennen RS232 hat mir der Konfiguration nichts zu tun. > und das Programm bleibt solange auf dem FPGA bis >ich einen neuen Code raufspielen würde, richtig? Kommt drauf an. Während der Entwicklung, wenn man relativ schnell mal eine neue Konfiguration in den FPGA laden will, mancht man das meist direkt per JTAG ins FPGA. Dort leigt die Konfiguration in einer Art SRAM. Schaltet man aus, sind die Daten weg. Damit das FPGA bei Einschalten aber die Konfiguration allein laden kann (ohne Programmierkabel und ohne PC), schreibt man die Daten ind den Konfigurationsspeicher, das ist ein extra IC neben dem FPGA. Das geht auch alles mit ISE. >So, fehlt also nur noch der Input für mein FPGA. Ich hatte vor mit JAVA >eine GUI zu programmieren bei der der USER wählen kann welche LED um >wieviel heller wird usw. Kann man machen. > Ich habe gelesen, dass übertragen auf FPGAs mit >JAVA geht mit der Java Communication API. Wie die genau funktioniert >muss ich dann wohl im JAVA-Forum nachfragen bzw. gute Seiten im Netz >finden. >Die Verbindung soll auch hier via RS232 geschehen (auch wenn ich nicht >alle 9 Pins brauche, will ja nur senden und nichts empfangen). >Könnte ich also mein PC mit dem FPGA via RS232 verbinden, dann mithilfe >der ISE meinen Code raufspielen und dann einfach die selbe Verbindung >nutzen und mit meiner GUI die Inputs erzeugen? Nein. Konfiguration geht über den Programieradapter, die funktionieren heute per USB, die alten teilweise noch per Parallelport. RS232 hat damit rein gar nichts zu tun. Das ist eine andere Schnittstelle, welche nur von deiner User-Logik bnutzt wird.
@Falk Brunner Falk Brunner schrieb: > @ Felix O. (felixanius) >>In mein VHDL-Code muss ich jetzt ein UART implementieren. Erst mit dem >>UART kann ich mein Programm mithilfe der ISE auf das FPGA bringen? > > Nein! Okay, also wäre der UART in meinem Fall nur dazu da, wenn ich via VHDL einen Input ins FPGA geben wollte. Da ich das aber mit Java und der Com.API machen will, brauche ich überhaupt keinen UART? >>Also >>ich synthetisiere meinen Code und kann ihn dann raufspielen? > > Nein! Die Konfiguration des FPGAs geschieht während der Entwicklung > mittles Programierkabel, welches über JTAG auf das FPGA zugreift. Bei > einigen FPGA Boards ist das schon fest eingebaut, man muss nur ein > USB-Kabel anschließen. Bei anderen Boards hat man einen > Programmieradapter. Okay, also einfach USB-Kabel rein und ISE macht den Rest. Ich muss also keinen extra Code schreiben um die Übertragen vom PC auf das FPGA zu steuern. >> Wo muss ich >>meinen UART reinschreiben? Einfach eine extra entity "Uart" in meinem >>Programm mit der passenden architecture, sozusagen neben meinen anderen >>entitys ("LED, Lauflicht ...) > > Ja. Das würde ich machen, wenn ich meinen Input via VHDL geben wollte (siehe oben)? >>Erkennt das die ISE dann und kann den UART >>benutzen? Da fehlt mir noch ein wenig das Verständnis. > > Die Daten für > deinen UART muss dann ein Terminalprogramm erzeugen, z.B. Teraterm oder > HTerm. Diese Terminalprogramme brauche ich aber nicht, wenn ich mit Java die Software schreibe? >>Wenn ich jetzt meinen Code auf das FPGA gespielt habe, kann ich die RS >>232 Verbindung trennen > > RS232 hat mir der Konfiguration nichts zu tun. Roger. >> und das Programm bleibt solange auf dem FPGA bis >>ich einen neuen Code raufspielen würde, richtig? > > Kommt drauf an. Während der Entwicklung, wenn man relativ schnell mal > eine neue Konfiguration in den FPGA laden will, mancht man das meist > direkt per JTAG ins FPGA. Dort leigt die Konfiguration in einer Art > SRAM. Schaltet man aus, sind die Daten weg. Damit das FPGA bei > Einschalten aber die Konfiguration allein laden kann (ohne > Programmierkabel und ohne PC), schreibt man die Daten ind den > Konfigurationsspeicher, das ist ein extra IC neben dem FPGA. Das geht > auch alles mit ISE. > Also kann ich in der ISE festlegen, ob meine Konfiguration im SRAM oder im Konfigurationsspeicher landet? Vielen Dank für deine ausführliche Hilfe!
Felix O. schrieb: > Wo muss ich meinen UART reinschreiben? Einfach eine extra entity "Uart" > in meinem Programm mit der passenden architecture, sozusagen neben > meinen anderen entitys ("LED, Lauflicht ...) Erkennt das die ISE dann > und kann den UART benutzen? Da fehlt mir noch ein wenig das Verständnis. Da solltest du zum Anfang zuallererst mal vorn bei der LED und beim Lauflicht anfangen... http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html http://www.lothar-miller.de/s9y/archives/61-Lauflicht.html Denn du willst gerade 7 Fliegen auf einen Streich erwischen, wo es doch viel einfacher wäre, eine nach der anderen abzuklatschen. Und wenn du das mit dem Lauflicht mal kapiert hast, dann kannst du "einfach" die PWM-Daten über eine serielle Schnittstelle in dein LED-Modul übergeben...
Lothar Miller schrieb: > Felix O. schrieb: > Da solltest du zum Anfang zuallererst mal vorn bei der LED und beim > Lauflicht anfangen... > http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html > http://www.lothar-miller.de/s9y/archives/61-Lauflicht.html > > Denn du willst gerade 7 Fliegen auf einen Streich erwischen, wo es doch > viel einfacher wäre, eine nach der anderen abzuklatschen. Und wenn du > das mit dem Lauflicht mal kapiert hast, dann kannst du "einfach" die > PWM-Daten über eine serielle Schnittstelle in dein LED-Modul > übergeben... Ja, aber muss erstmal meine Gedanken ordnen und einen groben überblick über das Projekt bekommen. Danke für die Links!
@ Felix O. (felixanius) >Okay, also wäre der UART in meinem Fall nur dazu da, wenn ich via VHDL >einen Input ins FPGA geben wollte. Ja. > Da ich das aber mit Java und der >Com.API machen will, brauche ich überhaupt keinen UART? Denkst du Java kann zaubern? Es muss doch irgendeine physikalische Schnittstelle geben, mit der die Daten vom PC ins FPGA kommen. RS232 ist eine der einfachsten. >Okay, also einfach USB-Kabel rein und ISE macht den Rest. Ich muss also >keinen extra Code schreiben um die Übertragen vom PC auf das FPGA zu >steuern. Für die Konfiguration nicht. Für dein LED-Blinken schon. >Diese Terminalprogramme brauche ich aber nicht, wenn ich mit Java die >Software schreibe? Nein. >Also kann ich in der ISE festlegen, ob meine Konfiguration im SRAM oder >im Konfigurationsspeicher landet? Ja.
Danke Falk! @Ralf, ja die habe ich auch schon gesehen, danke.
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.