mikrocontroller.net

Forum: FPGA, VHDL & Co. Data2Mem - Ax8 - BMM


Autor: Andreas Weschenfelder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich würde gerne meinen Programmcode (Ax8) mittels Data2Mem direkt im 
Bitfile ändern.

Leider bin ich mir über meine BMM Files nicht ganz sicher. Könnt ihr mal 
drüber schauen:

mein BMM-File:
-----------------------------------------------------------------
ADDRESS_BLOCK pm RAMB16 [0x000:0xFFF]


BUS_BLOCK
//MainTop/MyA90S2313/ROM/Mrom_D1 [15:0] PLACED=X0Y0 OUTPUT = pm1.mem;
MyA90S2313/ROM/Mrom_D1 [15:0] PLACED=X0Y0 OUTPUT = pm1.mem;
END_BUS_BLOCK;

BUS_BLOCK
//MainTop/MyA90S2313/ROM/Mrom_D2[15:0] PLACED=X0Y2 OUTPUT = pm2.mem;
MyA90S2313/ROM/Mrom_D2 [15:0] PLACED=X0Y2 OUTPUT = pm2.mem;
END_BUS_BLOCK;


END_ADDRESS_BLOCK;
-----------------------------------------------------------------

das hat nach der Synthese ISE erstellt:
-----------------------------------------------------------------
// BMM LOC annotation file.
//
// Release 10.1i - Data2MEM K.31, build 1.5.7 Nov 8, 2007
// Copyright (c) 1995-2009 Xilinx, Inc.  All rights reserved.
//
// Created on 04/16/09 01:55 pm
//


//////////////////////////////////////////////////////////////////////// 
///////
//
// Unnamed 405 PPC processor, ID 0, memory map.
//
//////////////////////////////////////////////////////////////////////// 
///////


//////////////////////////////////////////////////////////////////////// 
///////
//
// Address space 'pm' 0x00000000:0x00000FFF (4 KB).
//
//////////////////////////////////////////////////////////////////////// 
///////

ADDRESS_SPACE pm RAMB16 [0x00000000:0x00000FFF]
    BUS_BLOCK
        MyA90S2313/ROM/Mrom_D1 [15:0] OUTPUT = pm1.mem PLACED = X0Y0;
    END_BUS_BLOCK;

    BUS_BLOCK
        MyA90S2313/ROM/Mrom_D2 [15:0] OUTPUT = pm2.mem PLACED = X0Y2;
    END_BUS_BLOCK;
END_ADDRESS_SPACE;
-----------------------------------------------------------------



Anschließend rufe ich data2mem wiefolgt auf:

..\hex2bin.exe main.hex
..\srecord-1.42-win32\srec_cat.exe main.bin -bin -o rom.mem -vmem 8
data2mem -bm ../../FPGA/Ax8_rom_bd.bmm -bt ../../FPGA/maintop.bit -bd 
rom.mem -o b ../../FPGA/final.bit


Leider läufert der Core dannach nicht an...
Seht ihr vielleicht auf Anhieb einen Fehler?

Gruß Andreas

Autor: Antti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sieht ok aus
ich mache so was die ganze zeit ohne probleme

bei ISE 11.1 kann man den .MEM file in VHDL eingeben, macht automatisch 
den BMM

aber da musst du ein paar wochen warten..

Antti
PS i mache gerade eigenen SoC mit AX8, der ist fur Actel
A3P060, aber ich teste die ganze zeit mit Xilinx und bmm
geht viel schneller

warest du interriert mit meinem projekt mithelfen?
wurdest den source und alles kriegen..

Autor: Andreas Weschenfelder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Antti,

kannst du mal genauer beschreiben wie ich das .mem-File in den vhdl-code 
einfüge?

Gruß Andreas

Autor: Antti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na, zuerst 8+ jahre erfahrung sammeln, dann geht von selbst :)

ich mache immer mit alte methode, nutze das neue 11.1 noch nicht,

mit AX8 arbeite ich auch, hat viele bugs leider die man reparieren muss
aber eigentlich sollte es doch laufen

noch ein tip: mach ein ROM module, in dem du entweder das bram module
einbindest oder dann einen VHDL rom mit einem rom generator
(zv das von ax8 distri),
dann fur sim nimm das vhdl ROM, guck nach es lauft in
simulator
dann teste das mit vhdl ROM in FPGA
nur dann ersetze es mit bram rom und teste wieder
und wenns dann nicht geht dann chipscope rein und
gucken was passiert

humm
aber warum (zT) hast du output=
in deiner BMM datei???
das soll da ja nicht rein


Antti

der .BMM geht 100%

--------------- CUT ----------------

    ADDRESS_SPACE BIOS COMBINED [0x00000000:0x00000FFF]

     ADDRESS_RANGE RAMB16
      BUS_BLOCK
                                  rom/FLASH/rom [15:0] ;
      END_BUS_BLOCK;
    END_ADDRESS_RANGE;

     ADDRESS_RANGE RAMB16
      BUS_BLOCK
            rom/ramdp/rom [15:0] ;
      END_BUS_BLOCK;
    END_ADDRESS_RANGE;

    END_ADDRESS_SPACE;

------------- cut -------------------

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.