Forum: FPGA, VHDL & Co. Altera FPGA Flash (Active Serial) - Inhalt


von Kai L. (klaute) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe vor einiger Zeit hier, mit Hilfe einiger anderer hier aus dem 
Form, erfolgreich Einen Zugriff von meinem AVR XMega auf de SPI Flash 
(von meinem Altera EP4CE6) einrichten und testen können. (siehe 
Beitrag "SPI multimaster mit EP4CE6C22C8N, XMega 192A3 und M25P16")

Aktuell kann ich mir nun über eine USART Schnittstelle, vom AVR aus, die 
Daten aus dem Flash ausgeben lassen.  Der AVR übernimmt dabei das 
auslesen aus dem Flash und überträgt die Daten Page für Page per USART.

Das funktioniert auch bestens. Leider aber wohl nicht vollständig. Zum 
testen schreibe das Design des FPGAs, als jic file(komprimierte Daten), 
in den Flash. Das Design funktioniert und der FPGA-Chip tut korrekt 
seinen Dienst.

Aus dem SOF-Image habe ich zusätzlich ein Raw-Binary-File (auch 
komprimiert) erzeugen lassen.
Wenn ich nun die Daten aus dem Flash zurück lese, erhalte ich ein nur 
fast identisches Image, im Vergleich zu dem im RBF Format.

Im Anhang habe ich die Unterschiede als diff (Unterschiede er hexdumps) 
angehängt. Es scheint so als ob alle 2 Pages das letzte Byte der Page 
0x05 enthält und sporadisch zwischendurch auch weitere Bytes 
unterschiedlich sind.

Ich frage mich nun, gehört das so? Oder liegt hier an irgend einer 
Stelle ein Fehler vor?

Vielen Dank

Kai

: Bearbeitet durch User
von Roger S. (edge)


Lesenswert?

Ich kann dir nicht sagen was es mit den Unterschieden genau auf sich 
hat.
Jedoch ist das RBF nur fuer die passiven Konfigurations Modi gedacht.

Ich nutze sof2flash und objcopy um einen AS 'bootfaehigen' Bitstream zu 
generieren:
1
sof2flash --input=design.sof --output=design.flash --epcs --compress
2
objcopy -I srec -O binary design.flash image.bin

Cheers, Roger

von Kai L. (klaute) Benutzerseite


Lesenswert?

Roger Steiner schrieb:
> Jedoch ist das RBF nur fuer die passiven Konfigurations Modi gedacht.
>
> Ich nutze sof2flash und objcopy um einen AS 'bootfaehigen' Bitstream zu
> generieren:

Vielen Dank für die Info, ich bin davon ausgegangen das der Inhalt im 
Flash in jedem Fall identisch ist und nur die Art des auslesens 
verschieden.

Ich verwende Quartus II 13.1 auf Win8, und das sof2flash Tool ist bei 
meiner Installation nur ein Shell-Script das sh_jar.sh aufruft (welches 
nicht existiert).

Das im gleichen Verzeichnis liegende sof2flash.jar scheint (per
1
java - jar sof2flash.jar
 aufgerufen) nicht alle Tools zu finden damit es lauffähig ist.

Ich habe die Tools auf der Kommandozeile von Windows und unter Cygwin 
versucht zu testen...

Wo und wie rufst du denn diese tools auf, und was hast du konfiguriert 
damit es funktioniert?

Danke!!!

von Roger S. (edge)


Angehängte Dateien:

Lesenswert?

Ich nutze dazu die NiosII Command Shell, out-of-the-box.

Cheers, Roger

von Kai L. (klaute) Benutzerseite


Angehängte Dateien:

Lesenswert?

Dabke für den Tipp! Mit der Konsole hat es dann funktioniert...


Das fehlerhafte Byte am Ende jeder zweiten Page entstanden durch einen 
Implementierungs - Fehler von meiner Seite. Den habe ich korrigiert.


Ich habe mir nun mit sof2flash und objcopy ein Image erzeugen lassen und 
das Dann, Byte für Byte,  bitweise umgekehrt. Darauf hin habe ich den 
Inhalt des Images mit dem Inhalt von meinem Flash ab Adresse 0x000000 
verglichen. Das ist soweit auch soweit übereinstimmend, bis auf etwa 3 
Byte am Anfang der Images (siehe Diff im Anhang).


Das Design des FPGA sowie die Einstellungen in Quartus II  sind dabei 
nicht verändert worden.


Das aktuelle Flashimage,  einem Image gegenüber gestellt das im 
rbf-Format vorliegt, enthält mehr Unterschiede im "Kopf" als bei dem per 
sof2flash erzeugten.


Hat hier jemand nich eine Idee warum die Unterschiede  zwischen dem 
Inhalt meines Flashs und dem per sof2flash/objcopy erzeugtem Image 
minimal verschieden ist? Mich würde interessieren wie das zu stande 
kommt und ob das Auswirkungen auf die Funktionalität des Designs 
besitzt.


Aktuell konnte ich noch nicht verifizieren/testen ob das per sof2flash 
erzeugte Image lauffähig ist.


Danke!

: Bearbeitet durch User
von Roger S. (edge)


Lesenswert?

Wichtig ist der epcs Parameter beim sof2flash.
Da braucht man keine Bits zu drehen, das geht 1:1 ins Flash.
Die Konfiguration ist pass or fail, nichts dazwischen. Entweder dein 
Design läuft an oder das FPGA bleibt unkonfiguriert.

Cheers, Roger

von Kai L. (klaute) Benutzerseite


Lesenswert?

Vielen vielen Dank für die Hilfe, jetzt funktioniert es einwandfrei!!!

Leider funktioniert  die nios2 command Shell bei mir,  unter win8.1 mit 
Quartus II 13.1, nicht wirklich. Bzw. Sof2flash beendet ohne 
Fehlermeldung und ohne seinen Dienst geleistet zu haben.

Auf einem zweiten Rechner läuft es jedoch problemlos!

Vielen Dank nochmal!

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.