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
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
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.
Zu den Warnungen: Neeee... Auch bei nem großen Projekt kommt sowas nicht vor wenn mans richtig macht. ;)
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
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...
Im ISE müßte man doch einstellen können was mit ungenutzen Ports passieren soll. Ich finde die Option aber leider gerade nicht.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.