Forum: FPGA, VHDL & Co. Nexys2 Dev-Board, wie mit ungenutzer Hardware umgehen?


von Christian H. (cavorca)


Lesenswert?

Hallo,

Ich habe ein Nexys2 Board von Digilent. Leider ist, außer dem 
Schaltplan, absolut gar nichts an Dokumentation vorhanden.
Es ist mein erstes Projekt mit FPGAs. Vorher habe ich ein wenig mit 
CPLDs gebastelt. Das erste Projekt wird natürlich erst mal was ganz 
kleines, Blinklicht oder so. Danach vielleicht eine Stoppuhr, die misst 
wie lange man einen Knopf drückt.
Es ist viel Hardware drauf, die ich nicht direkt nutzen möchte (USB 
Chip, Flash, RAM, RS232, PS/2,...). Muss ich jetzt das ganze Scematic 
durchgehen und für jeden angeschlossenen Pin überlegen ob ich den High, 
Low,  Z oder Passive Schalte? Oder kann ich einfach alles was ich noch 
nicht nutzen möchte, also alles außer den LEDs auf "Z" stellen?
Ich bin nicht sicher ob nicht doch dadurch irgendwas kaputt gehen kann. 
Vielleicht irgendwie durch falsches (=nicht vorhandenes) ansteuern eines 
ICs?

Ein anderes Problem ist, dass das Beispielprojekt von Digilent nicht 
Synthetisiert werden kann. Liegt das daran, dass ich eine zu aktuelle 
Version von ISE habe? (Ist die ganz aktuelle. Bisher habe ich keinen 
Grund gesehen eine ältere zu installieren, aber das wird ja von vielen 
empfohlen.)
Was mich auch irritiert ist, dass knapp 200 Warnungen erscheinen beim 
Versuch das Demoprojekt zu synthetisieren. Ich kann mir eigentlich nicht 
vorstellen, dass das Projekt in einem so schlechten Stil geschrieben ist 
(Motto Warnung egal, so lange es funktionert). Hat das auch etwas damit 
zu tun dass ich die aktuelle Version habe? Das Demoprojekt scheint in 
Version 6 Programmiert zu sein.

Viele Grüße,
Christian

von Rick Dangerus (Gast)


Lesenswert?

Schau, ob ein paar Bausteine ein ChipSelect haben, womit Du sie 
deaktivieren kannst. Normalerweise sollten die Bausteine keinen Schaden 
nehmen, wenn Du sie einfach ignorierst.

Das Projekt sollte auch mit einer aktuellen ISE synthetisierbar sein. 
Warnungen sind normal, aber man sollte sie sich mindestens einmal 
angucken.
An welcher Stelle kommt es denn zum Fehler?

Rick

von Christian H. (cavorca)


Lesenswert?

Hallo Rick,

Vielen Dank für Deine Antwort.
Der einzige Chip, den man abstellen kann ist der PSDRAM. Da die Ausgänge 
aber separat noch über OE aktiviert werden müssen kann ich sicher darauf 
verzichten. Sehe auch grade, dass #CE einen Pull-UP hat. Also ist der eh 
abgeschaltet, wenn ich nichts tue.

Wie funktioniert das jetzt eigentlich? Im JTAG Chain werden die FPGA und 
ein ROM angezeigt. Wenn ich ein Programm bis zum nächsten abtrennen der 
Versorgungsspannung im FPGA haben will schreibe ich es direkt in den 
FPGA, wenn es auch nachher noch drin sein soll in den ROM?

Was bedeutet: "Startup clock for this file is 'CCLK' instead of 'JTAG 
CLK'. Problems will likely occur. Associate config file with device 
anyway?"

Der klick auf Hilfe verweist auf eine PDF Datei, die ich bisher 
vergeblich suche.

Zu den Warnungen:
WARNING:Xst:819: - "C:/.../EppCtrl.vhd" line 308: The following signals 
are missing in the process sensitivity list: EppAstb, EppDstb, 
HandShakeReqIn, ctlEppDoneIn.
WARNING:Xst:1610: - "C:/...Demo.vhd" line 466: Width mismatch. 
<NextSnake> has a width of 42 bits but assigned expression is 36-bit 
wide.
WARNING:Xst:753: - "C:/.../DemoWithMemCfg.vhf" line 474: Unconnected 
output port 'TestCtrlEnabled' of component 'phoenixonboardmemtest'.

Ich halte eigentlich nicht so viel davon, dass in einem fertigen Code 
solche Warnungen auftreten... Aber vielleicht ist das ja auch 
unumgänglich, wenn man mal ein wirklich großes Projekt hat. So groß 
waren meine bisher ja nicht.

Viele Grüße,
Christian

Edit: P.S.
Habe ich ganz vergessen: Ich habe das Projekt mal in ein Verzeichnis 
verschoben, das keine Leerstellen enthält. Jetzt läuft es durch.

von Mathi (Gast)


Lesenswert?

Zu den Warnungen: Neeee... Auch bei nem großen Projekt kommt sowas nicht 
vor wenn mans richtig macht. ;)

von Christian H. (cavorca)


Lesenswert?

OK.

Ich habe jetzt das erste Design draufgeladen (und dabei auch gelernt, 
was die Fehlermeldung bedeutet).

Was mich momentan irritiert:
Auf dem Board ist eine 4 fache 7-Segment Anzeige. Bei meinem Design 
leuchtet jede LED der anzeige ganz schwach, aber deutlich. Woran kann 
das liegen? Die anzeige ist auf der einen seite über Widerstände direkt 
mit der FPGA verbunden, auf der anderen Seite ist für jede Ziffer ein 
pnp-Transistor in Emitterschaltung. Die Basis geht über einen 
Vorwiderstand direkt an die FPGA. Ist da etwa doch ein Signal an den 
Pins? Ich dachte ISE schaltet die Pins automatisch aus, wenn nichts dran 
gelegt wird.

Viele Grüße,
Christian

von Rick Dangerus (Gast)


Lesenswert?

Da könnte auch ein interner Pullup seine Finger im Spiel haben. Schau 
noch mal in den Schaltplan.

Mit der JTAG-Chain ist es so, wie Du geschrieben hast:
Daten -> FPGA = Kurzzeitgedächtnis,
Daten -> Flash = Langzeitgedächtnis.

Wenn Du ein bit-File für den Flash bastelst muss da möglicherweise eine 
andere Startupclock konfiguriert werden, da ja dann über JTAG nix kommt.

Rick

P.S.: Ja die Sache mit den Leerzeichen im Pfad, man denkt man ist im 
letzten Jahrtausend...

von Gast (Gast)


Lesenswert?

Im ISE müßte man doch einstellen können was mit ungenutzen Ports 
passieren soll. Ich finde die Option aber leider gerade nicht.

von Mike (Gast)


Lesenswert?

Du solltest mal nachschauen was ISE bei ungenutzten Pins macht. Bei mir 
ist als Standartwerd Pull-Down eingestellt. Das dürfte das Leuchten der 
Anzeige erklären. Die Anzeige hat gemeinsame Anode und PNP-Transistoren 
- alles L-aktiv.

Du findest die Einstellung unter

- Generate Programming File
- Rechtsklick für Properties
- Configuration Options anklicken

Dort gibt es dann "Unused IOB Pins" mit dem Wert den die Pins nach der 
Programmierung annehmen.

von Christian H. (cavorca)


Lesenswert?

Ja, das war es. Vielen Dank! Ausgänge stehen jetzt auf "Float".

Kennt vielleicht jemand ein Programm, das mir anzeigt wie viel Strom ein 
USB-Gerät verbraucht?
So etwas habe ich schon mal gesucht, konnte aber nichts finden.

Viele Grüße,
Christian

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.