www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Xilinx: ändern von BlockRAMs im Bitstream (data2mem)


Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche gerade die BlockRAMs in einem Bitstream zu ändern, ohne das 
ganze Projekt neu zu synthetisieren:
http://www.mikrocontroller.net/articles/Diskussion:T51-Core

Das Laden der BlockRAMs funktioniert im Prinzip auch einwandfrei. Das 
Problem: zwischen dem Arrayinhalt auf dem das BlockRAM basiert und dem 
BlockRAM-Inhalt im Bitstream besteht kein erkennbarer Zusammenhang. Kann 
es sein dass ISE Daten- und Adressleitungen verwürfelt, um das Routing 
zu optimieren? Wie könnte man das verhindern? Oder gibt es andere 
Möglichkeiten das gewünschte zu erreichen?

Gruß
Andreas

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach genauerem Nachsehen im Floorplanner hat sich herausgestellt, dass 
die BRAMs genau andersherum zusammengesetzt sind, nämlich 2 Bit breit 
und 8192 tief statt wie von mir angenommen 8 Bit breit und 2048 tief. 
Macht eigentlich auch Sinn. Im Floorplanner habe ich die genaue 
Zuordnung gefunden und daraus die korrekte BMM-Datei gebastelt:
ADDRESS_BLOCK t51_inst_rom RAMB16 [0x0000:0x1FFF]
  BUS_BLOCK
    T51_inst/inst_Mram_mem3 [7:6];
    T51_inst/inst_Mram_mem2 [5:4];
    T51_inst/inst_Mram_mem1 [3:2];
    T51_inst/inst_Mram_mem [1:0];
  END_BUS_BLOCK;
END_ADDRESS_BLOCK; 

Damit funktioniert nun alles, aber ich frage mich warum ISE diese Datei 
nicht gleich selbst erzeugen konnte...

Autor: Frager (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo erkennt man hier die Daten?

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir nach diesem [1] Vorbild was für den AX8 gebaut. Der Weg 
geht dann von .hex und .eep über ein Pythonscript in eine .svf Datei. 
Dafür gibt es dann svf2xsvf und den xsvfplayer. Das läuft dann alles 
verscriptet/per makefile unter Unix.

Bekommt Dein T51 auch einen (automatischen) Reset nach der 
Neukonfiguration des BRAM?

Rick

[1] 
http://www.xilinx.com/xlnx/xweb/xil_tx_display.jsp...

Autor: Thomas Pototschnig (pototschnig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht das manuelle Ändern überhaupt? Soweit ich weiß besitzt der 
Bitstream CRC-Informationen, die vom FPGA überprüft werden bei der 
Konfiguration ...

Mfg
Thomas Pototschnig

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Thomas Pototschnig (pototschnig)

>Geht das manuelle Ändern überhaupt? Soweit ich weiß besitzt der

Nun, wenn "manuell" die Benutzung von data2mem darstellt, dann ja. 
Schliesslich kennt das Tool die Dateistruktur und berechnet die CRC neu.

MFG
Falk

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mal alles hier aufgeschrieben:
http://www.mikrocontroller.net/articles/T51-Core#X...

Rick: der FPGA wird komplett neu konfiguriert, also auch resettet.

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Andreas:

Aso. Du änderst quasi nur die Daten im Bitfile.
Mit meiner Methode wandern die Daten ins BRAM (oder wohin auch immer man 
will), und anschließend wird ein Reset ausgelöst. Das geht fixer als neu 
zu konfigurieren.

Rick

P.S.: Ich nutze noch den Parallelen-Port.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Nexys Board braucht fürs Konfigurieren des Spartan 3-1000 nur 5 
Sekunden, da lohnt sich eine aufwendigere Lösung nicht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.