mikrocontroller.net

Forum: FPGA, VHDL & Co. [Xilinx] Programmcode im Bitfile ändern mit Data2Mem


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute!

Ich habe ein Problem: Ich simuliere einen AVR-Core auf einem Spartan 
FPGA und möchte bei kleinen Änderungen im C-Quellcode nicht immer neu 
synthetisieren müssen.

Von Data2Mem habe ich schon gehört, weiß aber nicht, wie man diese 
bmm-Datei generiert oder schreibt, die dort benötigt wird.

Kann mir da jemand weiterhelfen?

Vielen Dank im Voraus,
Matthias

Autor: FPGA-Frickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So sieht das bmm bei einem V5 mit KleinstPlauze aus:


ADDRESS_MAP microblaze_0 MICROBLAZE 100
  ADDRESS_SPACE lmb_bram_combined COMBINED [0x00000000:0x00007fff]
    ADDRESS_RANGE RAMB32
    BUS_BLOCK
      microblaze_0/lmb_bram/lmb_bram/ramb36_0 [31:28] ;
      microblaze_0/lmb_bram/lmb_bram/ramb36_1 [27:24] ;
      microblaze_0/lmb_bram/lmb_bram/ramb36_2 [23:20] ;
      microblaze_0/lmb_bram/lmb_bram/ramb36_3 [19:16] ;
      microblaze_0/lmb_bram/lmb_bram/ramb36_4 [15:12] ;
      microblaze_0/lmb_bram/lmb_bram/ramb36_5 [11:8] ;
      microblaze_0/lmb_bram/lmb_bram/ramb36_6 [7:4] ;
      microblaze_0/lmb_bram/lmb_bram/ramb36_7 [3:0] ;
    END_BUS_BLOCK;
    END_ADDRESS_RANGE;
  END_ADDRESS_SPACE;
END_ADDRESS_MAP;



Ich vermute, hier musst du die "Pfade" zu den BRAM-blöcken die der AVR 
verwendet angeben. Also per fpga editor raussuchen, welche die am AVR 
datenbus liegen und hier eintragen.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank schon mal.

Könntest du bitte noch angeben, wo man solche Informationen finden kann? 
Gibt es da Dokumente oder Links dazu? Im pdf zu data2mem von Xilinx 
steht ja nicht viel drin, außer dass man eine bmm-Datei braucht...

In welcher Datei steht denn die Liste, wie die Blockrams gemapped 
werden?

Gruß,
Matthias

Autor: FPGA-Frickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Xilinx beschreibt üblicherweise Tools nicht in einzelnen Dokumenten 
sondern den gesamten Entwicklungsprozess und die nötige Tool-Chain in 
einem grossen Dokument. Infos zu bmm habe ich gefunden in:
 -Embedded System Tools Reference Manual (liegt als est_rm.pdf nach der 
EDK installation unter: doc\usenglish\
 -XPS project files (Ausgedruckt nach Suche auf www.xilinx.com)

Eine konkrete Beschreibung des bmm syntax kenne ich nicht, obwohl es die 
sehr wohl geben kann. Da das bmm file aber recht gut lesbar ist, kann 
man hier viel mit Probieren erreichen. Als Vorlage kann man man sich mit 
dem EDK ein bmm file für eine ähnliche Microblaze-Architecture erzeugen 
lassen.

Xilinx hat auf seiner Website auch einige User-Foren. 
http://forums.xilinx.com/xlnx/board?board.id=ForumU

Frage dort mal nach Beschreibung eines bmm files. Hinweis: AVR-Clones 
sind (waren?) meiner Erfahrung nach illegal, Atmel hat da schon mal 
rechtliche Schritte eröffnet. Also erst mal nicht erwähnen.

Da fällt mir grad ein, ich hatte mal einen anderen uC für Xilinx und ein 
Tool das ROM-Images für diesen ub in die FPGA Toolchain einschob. 
Vielleicht war es das hier:
- http://www.embeddedtronics.com/pic_core.html   oder auch
- http://tams-www.informatik.uni-hamburg.de/vhdl/vhdl.html (nach "PIC 
16C5x" suchen.


MfG

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum PicoBlaze gibt es eine AppNote, die beschreibt, wie man die BRAMS 
per JTAG updaten kann. Das lässt sich auch auf andere IP-Prozessoren 
übertragen.

Welchen AVR-Core hast Du verwendet?

Duek

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist der AVR_Core von opencores.org:
http://www.opencores.com/projects.cgi/web/avr_core/overview

Das Speicherlayout ist dort allerdings etwas kompliziert und wurde daher 
ersetzt...


Eure Quellen werde ich mal durcharbeiten!

Gruß,
Matthias

Autor: Duke Scarring (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias:

Was habt Ihr ändern/anpassen müssen, damit der Core läuft? Bei mir 
wollte er damals nicht laufen. Eure Architektur ist ein Spartan3, 
richtig?

Vielleicht kannst Du den Core auf dieser Seite eintragen (mit 
Leistungsdaten/Platzverbrauch):
FPGA Soft Core

Duke

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man muss Rom und Ram anpassen. Im Prinzip reicht eine einfache 
Implementierung, wie es im XST User Guide steht (Seiten 191f).

Wir basteln an dem Core im Zuge eines Uni-Projektes herum. Daher ist die 
Version noch nicht fertig und ich möchte das vorher keinem zumuten ;)


Das Problem mit den bmm-Dateien besteht allerdings immernoch...

Gruß,
Matthias

Autor: Uwe Bonnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Webpack (und damit wohl ach ISE) kommt mit einem d2m.pdf Dokument.

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.