Forum: FPGA, VHDL & Co. Basys2 Spartan 3E - VHDL Probleme


von xilinx (Gast)


Lesenswert?

Hallo liebe Forenmitglieder,

ich beschäftige mich seit kurzem mit der VHDL Programmierung und mit 
FPGA's. Ich habe mir ein Basys2 Spartan 3E Board von Digilent gekauft.

Ich habe nun folgende Anwendungen auf dem PC installiert.

1) Adept
2) Xilinx ISE Design Suite.

Mit Adept konnte ich erfolgreich das Board teste. Alle LED's, Switches 
und Taster funktionieren.

Nun wollte ich ein kleines VHDL File schreiben und dieses auf das Board 
laden. Also habe ich ein Projekt mit der Design Suite erstellt und "new 
Source" im VHDL format hinzugefügt. Mit CheckSyntax konnte ich auch den 
Code auf Fehler überprüfen.

Jetzt habe ich zum einen schwierigkeiten, die Pinbelegung zu 
realisieren. Bei Quartus ging das sehr einfach mit dem PinPlaner. Bei 
der ISE Design Suite existiert nur I/O PinPlanning (PlanAhead) 
Pre-Senthysis und I/O PinPlanning (PlanAhead) Post-Senthysis.

1) Ist dieser Weg richtig, die Pinbelegung zu realisieren, entweder 
bevor man die Synthax gecheckt hat oder nach dem Check? Oder gibt es 
noch einen anderen? In sämtlichen Tutorials wird nämlich beschrieben, 
dass ich auf "Assign Package Pins" gehen soll. Jedoch ist dieser Punkt 
in der ISE Design Suite nicht zu finden.

2) Wie bekomme ich dann meine VHDL Datei bzw. mein Projekt auf den FPGA? 
Mache ich das dann wieder mit Adept?



Ich hoffe, dass mir jemand weiter helfen kann. Dafür wäre ich sehr 
dankbar.

Lieben Gruß

Xilinx

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

xilinx schrieb:
> 1) Ist dieser Weg richtig, die Pinbelegung zu realisieren, entweder
> bevor man die Synthax gecheckt hat oder nach dem Check?
Wenn du PlanAhead aufrufst, wird automatisch ein Syntax-Check gemacht.

Sieh dir mal das hier an:
http://www.lothar-miller.de/s9y/archives/81-Xilinx-ISE-Step-by-Step.html
Und das hier:
http://www.lothar-miller.de/s9y/archives/80-Hello-World!.html

xilinx schrieb:
> 2) Wie bekomme ich dann meine VHDL Datei bzw. mein Projekt auf den FPGA?
Weder das Eine noch das Andere kommt aufs FPGA. Aufs das FPGA kommt eine 
Bitstrom-Datei. Alternativ kann dieser Bitstrom aus einem Flash geladen 
werden, dann läuft gleich beim Start das richtige Design an...

> Mache ich das dann wieder mit Adept?
Ja.

von Christian R. (supachris)


Lesenswert?

Die Pins kannst du entweder manuell über das schreiben einer UCF Datei 
zuweisen, oder über PlanAhead:
User Constraints -> FloorPlan Area/IO/Logic und dann synthtisiert der 
das Design, öffnet Planahead und du kannst dann über Window -> I/O Ports 
die FPGA Pins/Balls den I/Os zuordnen, die Spannung einstellen usw.
Dann wieder schließen und speichern und der hat dann automatisch die UCF 
Datei erstellt und dem projekt hinzugefügt.
Dann nur noch Generate Programming File und schon bekommst du ein 
Bit-File, was du mit Adept aufspielen kannst. Neuerdings kann auch 
Xilinx Impact mit den Digilent Programmern umgehen, kanst du ja mal 
probieren.

von xilinx (Gast)


Lesenswert?

Super, vielen Dank!!! Das werde ich später direkt einmal ausprobieren. 
Melde mich später nochmal, ob es dann funktioniert hat.

Liebe Grüße

Xilinx

von xilinx (Gast)


Lesenswert?

Wie kann ich die Taktfrequenzen einstellen bzw. wo finde ich den 
richtigen clk Pin, um diesem im PlanAhead zu verwenden?

Das Tutorial vom Lothar Millar ist sehr anschaulich. Das hilft mir 
wirklich sehr weiter. Vielen Dank nochmal

von Duke Scarring (Gast)


Lesenswert?

xilinx schrieb:
> Wie kann ich die Taktfrequenzen einstellen
Ich mach das mit über das .ucf [1]

> bzw. wo finde ich den
> richtigen clk Pin, um diesem im PlanAhead zu verwenden?
Im Schaltplan bzw. der Dokumentation zum Board.

Duke


[1] http://www.mikrocontroller.net/articles/UCF-Dateien#Taktdefinition

von xilinx (Gast)


Lesenswert?

In der Basys2 Reference Manual habe ich ein MCLK auf Pin B8, ein RCCLK 
auf Pin C8 und ein UCLK auf Pin M6 gefunden. Sind das die Clocks?
Laut Beschreibung können je nach Jumpereinstellung 25 MHz, 50 MHZ und 
100 MHz als Clock verwendet werden. Wobei ich mir nicht sicher bin, was 
man mit dem Jumper macht, wo dieser ist und wie man ihn verändern kann.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

xilinx schrieb:
> Wobei ich mir nicht sicher bin, was man mit dem Jumper macht,
> wo dieser ist und wie man ihn verändern kann.
Weitersuchen. Das findest du schon noch...
Als Tipp: du machst Hardware.
Hardware wird mit einem Schaltplan beschrieben.

> In der Basys2 Reference Manual habe ich ein MCLK auf Pin B8, ein RCCLK
> auf Pin C8 und ein UCLK auf Pin M6 gefunden. Sind das die Clocks?
Ja.

> Laut Beschreibung können je nach Jumpereinstellung 25 MHz, 50 MHZ und
> 100 MHz als Clock verwendet werden.
Und jetzt siehst du einfach mal im Schaltplan nach, was denn wie und 
wo an diese Pins angeschlossen ist.

Ich tippe einfach mal, dass an einem der oben angeführten Pins ein 
Quarzoszilleotr mit 50MHz (o.ä.) angeschossen ist. Den würde ich dann 
nehmen...

von xilinx (Gast)


Lesenswert?

Sooooo..... jetzt hab ich's. Es war B8. Zumindest funktioniert das 
Lothar Millar Tutorial. Und jetzt glaube ich auch zu verstehen was es 
mit dem Jumper auf sich hat. Auf dem Board sind 3 eingefräste Löcher mit 
drei Bezeichn. 100, 50, 25. So wie ich es aus der Beschreibung entnehmen 
kann, kann man mit dem "Jumper" diese Kontaktstellen verbinden. Wenn ich 
die ersten zwei verbinde, erhalte ich 25 MHz, bei den letzen beiden, 100 
MHz und wenn ich es so lasse, wie jetzt, dann 50 MHz.

Die Taktfrequenz kann man doch auch in der Simulation sehen, oder? Bzw. 
umrechnen, wenn man von clk nur einen Ausschnitt sieht?

Super, jetzt weiß ich schon mal, wie man Projekte anlegt, VHDL Dateien 
hinzufügt, simuliert und die SYntax checkt, die Pinbelegung macht und 
letzendlich eine Bitdatei erzeugt und diese auf das Board läd. Ein guter 
Anfang :-)

Was mir noch aufgefallen ist. Wenn ich das Board einschalte, erscheint 
immer das Testprogramm von Adept (zahlen laufen durch von 1 - F). Dies 
muss also irgendwie in einen festen Speicher geschrieben worden sein. 
Die Lothar Miller Datei allerdings in einen flüchtigen Speicher, denn 
dieser war nach aus und wieder einschalten weg und erneut war die 
Testdatei zu sehen.

So, dann werde ich mich jetzt mal dem VHDL Programmieren widmen. Schönen 
Abend noch und vielen Dank für die umfangreiche Hilfe !!!

Gruß

xilinx

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

xilinx schrieb:
> Die Taktfrequenz kann man doch auch in der Simulation sehen, oder? Bzw.
> umrechnen, wenn man von clk nur einen Ausschnitt sieht?
Naja, in der Simulation gibst ja du selber den Takt vor...

xilinx schrieb:
> Dies
> muss also irgendwie in einen festen Speicher geschrieben worden sein.
= Config-Flash
> Die Lothar Miller Datei allerdings in einen flüchtigen Speicher, denn
> dieser war nach aus und wieder einschalten weg und erneut war die
> Testdatei zu sehen.
= FPGA (SRAM-basiert)

Ich meine, das Verhalten schon erwähnt zu haben im 
Beitrag "Re: Basys2 Spartan 3E - VHDL Probleme"

Kurz:
Du mußt eine Jedec-Datei fürs Flash erzeugen und dann das Flash mit 
dieser Datei programmieren.

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.