Xilinx: ändern von BlockRAMs im Bitstream (data2mem)

OP Admin Persönliche Seite #619407
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
OP Admin Persönliche Seite
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:
1
ADDRESS_BLOCK t51_inst_rom RAMB16 [0x0000:0x1FFF]
2
  BUS_BLOCK
3
    T51_inst/inst_Mram_mem3 [7:6];
4
    T51_inst/inst_Mram_mem2 [5:4];
5
    T51_inst/inst_Mram_mem1 [3:2];
6
    T51_inst/inst_Mram_mem [1:0];
7
  END_BUS_BLOCK;
8
END_ADDRESS_BLOCK;

Damit funktioniert nun alles, aber ich frage mich warum ISE diese Datei 
nicht gleich selbst erzeugen konnte...
Gast
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?sTechX_ID=krs_blockRAM
@ 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
Gast
@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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 19 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.