Hallo. Ich bin am verzweifeln. Ich kann meinen Flash vom Spartan3 StarterKit nicht mit dem Webpack 8.1 programmieren. Was mache ich falsch? Also ich erstelle wie immer mein bit und MCS File. Dann Starte ich Impact. Dort wähle ich boundary Scan für JTAG. Er erkennt dann auch meinen Flashbaustein und den Spartan. Ich weise dem Flash dann das mcs File und dem Spartan das Bitfile zu. Wenn ich nun die Verification und das automatische löschen vor der übertragung aktiviert lasse, wird die übertragung abgebrochen. Wenn die verifikation deaktiv ist, läuft die übertragung zwar durch, aber das programm funzt trotzdem nicht. Was ist das falsch? Warum läuft das mit verifikation nicht? Danke für die Hilfe oder die Tipps.
Hat sich erledigt... Hilfe in anderem Thread gefunden. Thread closed :-)
Welche Lösung hat Dir jetzt weitergeholfen? Welcher thread hat die Antwort?
Also zum einen hatte ich hier die Lösung für das problem mit dem Verify erfahren. Das andere Problem warum sich die Daten nicht übertragen lassen lag komischerweise an der Hardware. Nachdem ich die Spannungsversorgung für kurze Zeit vom Board getrennt habe ging es plötzlich. Komischerweise hat es auch dannach nicht immer geklappt. Darum bin ich vorerst wieder auf webpack 7.1 umgestiegen. Hier funktioniert es immer. Ich weiss nicht warum die programmirung mit 8.1 nicht richtig funktioniert, aber leider habe ich für die fehlersuche zur Zeit keine Zeit. Ich vermute aber das es ein problem bei der konvertierung gab. Das Projekt wurde mit 7.1 erstellt und für 8.1 konvertiert. Ich denke da gabs ein problem. Aber diese Aussage ist ohne Gewähr :-)
So jetzt hatte ich auch diese Probs: auf dem board ist ein PROM und ein spartan3 in der jtag kette. Wenn ich mit impact 8.1. den PROM programmiere bricht er beim Verify ab, dann komme ich auch nicht mehr per JTAG an den Spartan3 ran. Nehme ich die spannung vom board und schalte sie wieder an, geht JTAG erst mal wieder. Jetzt programmiere ich den Spartan3 und dann den PROM, geht auch. Aber dann startet der FPGA nicht immer. Als Problem habe ich eine falsche Bitgen Option ausgemacht. Da war der startUp clock auf Jtag gesetzt. Setze ich beim Generieren des Bitfiles den startupclk auf cclk (sollte default sein), klappt alles wunderbar.
@FPGAküchle ich nutze impact 8.1. und das digilent-board und habe wohl gleiches problem ... ?.bit ist kein problem auf dem board ablaufen zu lassen die ?.mcs erstelle ich aus der ?.bit mit impact, andere option war mir nicht aufgefallen wenn ich das richtig verstanden habe brauche ich ?.mcs files für den Platformflash er läd die auch ..allerdings nur mit abgeschalteten verify und das programm startet nicht nach einschalten ?? > Da war der startUp clock auf Jtag gesetzt. Setze ich > beim Generieren des Bitfiles den startupclk auf cclk (sollte default > sein), klappt alles wunderbar. ? wo genau finde ich diese option ? wie gehe ich vor
Siehe screenshot: Im processfenster (li.Mitte) Generate Programming file auswählen und rechts klicken -> Properties auswählen.
Hmm... nee das wars doch nicht .. Also muss ich mir wohl weiter die karten legen ?
Ich habe mir nun von xilinx die prom.zip geholt enthalten die "S3_starter_board_default_design_revE.mcs" und versuche die nun in das platformflash vom spartan3 starterboard rev E zu bekommen aber es klappt einfach nicht ?? das log mal anbei.. ich starte die impact.exe direkt er läd auch, nur startet das board nicht jumper sind in standard nur was mit · Jumper J10 installed for jumper storage. gemeint ist ?? der hat doch keine aufgabe ? wo ist der haken ? (den ich nicht gesehen habe )
Hm , lt. Log ist alles OK, wo ist das prob? Jumper storage meint wohl "Gardrobehaken für unbenutzer Jumper", also hat elektr. keine Funktion. Bitte Korregieren, wo ich falsch liege.
das problem ist das sich nach dem download von xxx.mcs files auf dem board nix tut....?? ein rücklesen geht allerdings auch nicht..
Also ich sehe jetzt zwei Probleme: (1)der PROM ist nicht rücklesbar (2)FPGA konfiguriert/startet nicht von PROM zu (2): -vom PROM wird i.d.R% bei PowerUp geladen, also nach programmieren PROM Spannung vom board abschalten, wieder zuschalten und schauen was passiert. -Eventuell kann auf deinem board das Booten vom PROM per Jumper gestattet/verboten werden. Am bestem per scope die Programmiersignale am FPGA testen. Wenn nicht möglich, dann kann man ein design schreiben, das ein Pin mit 0.1 -1 Hz tw. 0 und 1 wechseln lässt. das ist per multimeter messbar. Vielleicht bootet ja der PROM, aber das Design tut nix (reset permanent aktiv etc). (1) im Bitfile lässt sich das rücklesen des FPGA's verbieten. Wahrscheinlich auch das Rücklesen des PROMS. wie man das Bitfile rücklesbar konfiguriert zeigt der beigefügte screenshot.
An die Experten, habe das gleiche Problem wie oben beschrieben: ISE8.1/IMPACT8.1, FPGA direkt lässt sich programmieren, FLASH nicht, egal wie ich die Properties einstelle. Was mir noch aufgefallen ist: Nach dem FLASH-"Programmieren" geht die DONE-LED neben dem PROG-Taster (auf dem DIGILENT-Board) nicht an. Das alles müßte XILINX / DIGILENT doch auch gemerkt haben ! Otto
MEINE LÖSUNG: WebPack7.1 mit SP installieren, dann klaapts auch mit IMPACT (auch mit verify - Häkchen!) Otto
Hi! Also bei mir gehts auch mit dem 8.1 Webpack ohne Probleme... (Digilent S3 board) Ich hab mir letztens aber impact batch files geschrieben um nicht jedesmal in der blöden gui rumklicken zu müssen. Aufruf: impact -batch filename.cmd impact_upload_bitfile.cmd:
1 | setMode -bs |
2 | setMode -bs |
3 | setCable -port auto |
4 | Identify
|
5 | identifyMPM
|
6 | assignFile -p 1 -file "/home/ss/src/usbADC/usbADC_main.bit" |
7 | assignFile -p 2 -file "/home/ss/src/usbADC/_prom3.mcs" |
8 | setAttribute -position 2 -attr packageName -value "(null)" |
9 | Program -p 1 -showprogress -defaultVersion 0 |
10 | quit
|
impact_generate_prom.cmd
1 | setMode -pff |
2 | setMode -pff |
3 | addConfigDevice -name "_prom3" -path "/home/ss/src/usbADC/" |
4 | setSubmode -pffserial |
5 | addDesign -version 0 -name "" |
6 | setCurrentDesign -version 0 |
7 | setMode -pff |
8 | addDeviceChain -index 0 |
9 | setAttribute -configdevice -attr compressed -value "FALSE" |
10 | setAttribute -configdevice -attr compressed -value "FALSE" |
11 | setAttribute -configdevice -attr autoSize -value "FALSE" |
12 | setAttribute -configdevice -attr fileFormat -value "mcs" |
13 | setAttribute -configdevice -attr fillValue -value "FF" |
14 | setAttribute -configdevice -attr swapBit -value "FALSE" |
15 | setAttribute -configdevice -attr dir -value "UP" |
16 | setAttribute -configdevice -attr multiboot -value "FALSE" |
17 | setAttribute -configdevice -attr multiboot -value "FALSE" |
18 | setAttribute -configdevice -attr spiSelected -value "FALSE" |
19 | setAttribute -configdevice -attr spiSelected -value "FALSE" |
20 | addPromDevice -p 1 -size 0 -name xcf04s |
21 | setMode -pff |
22 | setMode -pff |
23 | deletePromDevice -position 1 |
24 | setCurrentDesign -version 0 |
25 | setCurrentDeviceChain -index 0 |
26 | setCurrentDeviceChain -index 0 |
27 | deleteDesign -version 0 |
28 | setCurrentDesign -version -1 |
29 | setMode -pff |
30 | addConfigDevice -size 512 -name "_prom3" -path |
31 | "/home/ss/src/usbADC/"
|
32 | setSubmode -pffserial |
33 | setAttribute -configdevice -attr dir -value "UP" |
34 | addPromDevice -p 1 -size 0 -name xcf04s |
35 | setMode -pff |
36 | setSubmode -pffserial |
37 | setAttribute -configdevice -attr dir -value "UP" |
38 | addDesign -version 0 -name "0000" |
39 | setMode -pff |
40 | addDeviceChain -index 0 |
41 | setCurrentDesign -version 0 |
42 | setCurrentDeviceChain -index 0 |
43 | setCurrentDesign -version 0 |
44 | setCurrentDeviceChain -index 0 |
45 | setAttribute -design -attr name -value 0 |
46 | addDevice -p 1 -file "/home/ss/src/usbADC/usbADC_main.bit" |
47 | setMode -pff |
48 | setSubmode -pffserial |
49 | setAttribute -configdevice -attr fillValue -value "FF" |
50 | setAttribute -configdevice -attr fileFormat -value "mcs" |
51 | setAttribute -configdevice -attr dir -value "UP" |
52 | setAttribute -configdevice -attr path -value "/home/ss/src/usbADC" |
53 | setAttribute -configdevice -attr name -value "_prom3" |
54 | generate
|
55 | quit
|
impact_upload_prom.cmd:
1 | setMode -bs |
2 | setMode -bs |
3 | setCable -port auto |
4 | Identify
|
5 | identifyMPM
|
6 | assignFile -p 1 -file "/home/ss/src/usbADC/usbADC_main.bit" |
7 | assignFile -p 2 -file "/home/ss/src/usbADC/_prom3.mcs" |
8 | setAttribute -position 2 -attr packageName -value "(null)" |
9 | Program -p 2 -e -v -showprogress -defaultVersion 0 |
10 | quit
|
und um ein gelocktes kabel zu resetten (!): impact_clearlock.cmd:
1 | setmode -bs |
2 | cleancablelock
|
3 | setcable -p auto |
4 | exit
|
Dabei müssen die Pfadangaben (/home/ss/src/usbADC/) und der Filename des bitfiles (bei mir usbADC_main.bit) angepasst werden. Danach kann man sehr komfortabel mit einmal enter drücken das bitfile hochladen :) Aufpassen: ich hab da das xcf04 als prom angegeben (aus einem anderen projekt wo ich nen 04er prom drauf habe). Geht aber ohne Probleme auch mit dem 02er von Spartan3 eval board 8) Die cmd Files habe ich mir per Hand aus den Debugausgaben von Impact zusammengestückelt, geht evtl auch einfacher, so funktionierts aber :) Hab zusätzlich noch das progress anzeigen aktiviert. Das ganze läuft bei mir unter Linux mit dem parallelportkabel und webpack 8.1 inkl aktuellem Servicepack. Ich frag mich nur warum es im Webpack keinen Button für upload bitfile gibt. Im (nicht kostenlos erhältlichem) EDK für den Microblaze (Uni) gibt es so einen Button :( Bye, Simon
@Simon: Cool, Impact war das einzige Tool, was ich noch nicht unter Linux skriptgesteuert eingebunden habe. Ich werd das mal mit deinen batch-Files probieren. Mich nervt die blöde GUI auch, deshalb ist der ganze Rest auch schon per Makefiles und Skripten automatisiert...
Was machst du per Skript ? Das kompilieren vhdl -> bit ? Poste doch mal deine Scripte (oder sollen wir einen neuen Thread starten ?) Bis jetzt schreibe ich meinen Code im Webpack, das ist aber echt ätzend... Vorallem das viele Standard Tastenkürzel was anderes tun :-X Aber wenn man das vhdl->bit per skript machen kann könnte ich ja alles direkt in kate oder von mir auch aus emacs machen :D Bye, Simon
Ja, die komplette Synthese & Implementation läuft skriptbasiert. Auch die Simulation, da gibt es aber 2 Versionen, für GHDL und den ISE-Simulator. Ich lege eine Verzeichnisstruktur per Skript an, und dann läuft alles per Makefiles ab. Im Moment müssen die Skripte noch an manchen Stellen per Hand auf jedes neue Design angepasst werden, geplant ist da eine automatische Generierung anhand eines zentralen Files. Wenn du Interesse daran hast, ich habe für meinen FPGA & VHDL Kram nen Wiki eingerichtet unter http://editthis.info/freefpga Da bin ich momentan dabei das ganze mal zu dokumentieren.
Hört sich sehr interessant an :D Die eigentlichen Skripte zur Synthese hast du aber noch nicht auf deiner Seite, oder ? Die würden mich sehr interessieren :) Bye, Simon
Ich bin dabei... Kommen die nächsten Tage. Ist immer so knapp mit der Zeit ;-)
Na, jetzt hast du mich dazu gebracht, die Anleitung heute noch fertig zu machen. Schau einfach mal so in 2h mal auf die Seite rein, da dürfte es komplett sein :-)
:D :D :D reload Kannst ja noch meinen impact kram dazupacken, ich hab dazu letztens nirgends was brauchbares im Netz gefunden und mir das per Hand zusammengebastelt :) Bye, Simon
So, is fertig. Habs auch grad mal getestet, funktioniert auch. Das mit den Umgebungseinstellungen für die ISE ist der geänderte Inhalt der cshrc-Datei, die bei der Installation des Webpacks im Xilinxfolder erstellt wird. Müsste unter Umständen je nach Installationsverzeichnis angepasst werden. Deine Sachen mit dem Impact stell ich rein, wenn ich sie hier bei mir nachvollzogen habe, ich hab das Tool noch gar nicht getestet...
sieht gut aus, werde ich morgen mal testen :) Danke! anstelle von export PLATFORM=lin ... könntest du doch auch einfach . ~/Xilinx/setings.sh machen, oder hast du da noch was verändert ? Gruss, Simon
Ja, die von Xilinx gelieferte funze bei mir nicht, war wohl für die C-Shell. Hab die ganzen If Abfragen rausgelöscht und alles statisch gelassen. Aber wie gesagt, is sowieso nicht perfekt das Ganze, es funzt aber ohne Probleme
ah ok. bei mir per bash geht das settings.sh ab jetzt gehts wegen dem designflow hier: http://www.mikrocontroller.net/forum/read-9-379795.html#new weiter :)
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.