Forum: FPGA, VHDL & Co. Impact probleme Webpack 8.1


von Brutus (Gast)


Lesenswert?

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.

von Brutus (Gast)


Lesenswert?

Hat sich erledigt... Hilfe in anderem Thread gefunden. Thread closed
:-)

von FPGAküchle (Gast)


Lesenswert?

Welche Lösung hat Dir jetzt weitergeholfen? Welcher thread hat die
Antwort?

von Brutus (Gast)


Lesenswert?

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 :-)

von FPGAküchle (Gast)


Lesenswert?

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.

von Jürgen (Gast)


Lesenswert?

@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

von FPGAküchle (Gast)


Angehängte Dateien:

Lesenswert?

Siehe screenshot:
 Im processfenster (li.Mitte) Generate Programming file auswählen und
rechts klicken -> Properties auswählen.

von Jürgen (Gast)


Lesenswert?

Hmm...

nee das wars doch nicht ..
Also muss ich mir wohl weiter die karten legen ?

von Jürgen (Gast)


Angehängte Dateien:

Lesenswert?

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 )

von FPGAküchle (Gast)


Lesenswert?

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.

von Jürgen (Gast)


Lesenswert?

das problem ist das sich nach dem download
von xxx.mcs  files
auf dem board nix tut....??

ein rücklesen geht allerdings auch nicht..

von FPGAküchle (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Otto Richter (Gast)


Lesenswert?

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

von Otto Richter (Gast)


Lesenswert?

MEINE LÖSUNG:

WebPack7.1 mit SP installieren, dann klaapts auch mit IMPACT (auch mit
verify - Häkchen!)

Otto

von Ssss S. (sssssss)


Lesenswert?

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

von T.M. (Gast)


Lesenswert?

@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...

von Ssss S. (sssssss)


Lesenswert?

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

von T.M. (Gast)


Lesenswert?

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.

von Ssss S. (sssssss)


Lesenswert?

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

von T.M. (Gast)


Lesenswert?

Ich bin dabei... Kommen die nächsten Tage. Ist immer so knapp mit der
Zeit ;-)

von T.M. (Gast)


Lesenswert?

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 :-)

von Ssss S. (sssssss)


Lesenswert?

: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

von T.M. (Gast)


Lesenswert?

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...

von Ssss S. (sssssss)


Lesenswert?

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

von T.M. (Gast)


Lesenswert?

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

von Ssss S. (sssssss)


Lesenswert?

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
Noch kein Account? Hier anmelden.