14
  ConvHex und Data2Mem: Konfiguration von Block-Ram-Inhalten ohne Neusynthese der Hardware Version 0.2, 4. Dezember 2007 Project: Competence Team for Test and Verification of Dependable Systems Projektnummer: MA 27-Projekt 05-05 Dieses Projekt wird von der Magistratsabteilung 27 der Stadt Wien im Rahmen der FH-Ausschreibung Nr. 5, „Stiftungsprofessuren und Kompetenzteams für die Wiener Fachhochschul-Ausbildungen“, 2005, finanziell unterstützt. Fachhochschule Technikum Wien Fachbereich Embedded Systems Höchstädtplatz 5 1200 Wien, Österreich http://embsys.technikum-wien.at

Data2mem Howto

Embed Size (px)

Citation preview

Page 1: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 1/14

 

ConvHex und Data2Mem:Konfiguration von Block-Ram-Inhalten

ohne Neusynthese der HardwareVersion 0.2, 4. Dezember 2007

Project: Competence Team for Test and Verification of DependableSystems

Projektnummer: MA 27-Projekt 05-05

Dieses Projekt wird von der Magistratsabteilung 27 der Stadt Wien 

im Rahmen der FH-Ausschreibung Nr. 5, „Stiftungsprofessuren und 

Kompetenzteams für die Wiener Fachhochschul-Ausbildungen“, 2005,

finanziell unterstützt.

Fachhochschule Technikum WienFachbereich Embedded Systems

Höchstädtplatz 51200 Wien, Österreich

http://embsys.technikum-wien.at

Page 2: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 2/14

2

Letzte Änderungen

Author Datum Änderung

Christoph Veigl (CV) 3.12.2007 V0.1 Erste Version des Dokuments erstellt. CV.

Christoph Veigl (CV) 4.12.2007 V0.2 Details geändert, Abbildungen. CV.

Christoph Veigl (CV) 5.12.2007V0.3 Bug entfernt: Dateiname im Bsp. auf Seite12 geändert: mc8051_rom_bd.bmm . CV.

Inhalt

1  Einleitung 3 

1.1  Benötigte Tools / Entwicklungsumgebungen: Prerequisites  3 

2  ConvHex: Convertierung des Intel-Hex Files in Formate für Simulation und Synthese 4 

2.1  Die Formate Hex, Dua, Coe und Mem  4 

2.2   Der Aufruf von convHex  5 

3  Data2MEM 6 

3.1 

Struktur des .bmm-Files: 7  

3.2   Beispiel für ein .bmm-File [XIL01]:  8 

3.3   Einbindung des .bmm – Files in das Xilinx ISE - Projekt  9 

4  Software Tool-Flow: vom 8051-Sourcecode zum Download mit impact  10 

4.1  Auffinden der BlockMemory Strukturen  11 

4.2   BlockMemory Map-File: mc8051_rom.bmm  11 

4.3   Sourcode compilieren und linken  12 

4.4   Erzeugung des mem-Files: convHex  12 

4.5   Update des Bitstreams: data2MEM  12 

4.6   Aufruf von Impact im Batch-Modus:  13 

5  References 13 

Anhang A: Tabelle verwendeter Dateien 14 

Page 3: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 3/14

3

1 Einleitung

Das vorliegende Dokument beschreibt eine substanzielle Erleichertung des Soft-ware-Tool-Flows für die Implementierung in unseren Xilinx-FPGAs: Das direkte Ein-

fügen von Software in den Bit-Stream der generierten Hardware. Xilinx stellt hierfürdas Programm data2MEM  zur Verfügung, dessen Anwendung im folgenden be-schrieben wird.Grundsätzlich lässt sich die Software für eine im FPGA laufende CPU schon bei derSynthese festegen, indem man ein entsprechendes .coe – File für die Initialisierungdes CPU-ROM (abgebildet in das FPGA Block-Ram) im Xilinx Core-Generator an-gibt [KUT]. Das .coe  - File enthält ein Speicherabbild des Object-Codes in binärerDarstellungsform und wird durch das Tool convHex  aus einem Intel-.hex -Formaterzeugt [CONVHEX]. Der Nachteil dieser Vorgehensweise besteht darin, dass auchschon kleine Änderungen in der Software eine Neusynthese der gesamten Hardware

in der Xilinx-ISE notwendig machen, um die Softwareinhalte ins Block-Ram zu über-nehmen.Eine elegante und zeitsparende Alternative besteht in der Verwendung des Xilinx-Tools data2MEM , welches die Änderung der Block-Ram-Inhalte in einem bestehen-den .bit  - File ermöglicht. Dadurch kann die Software für ein IP-Core direkt in denBitstream eingefügt werden, ohne dass das Core neu synthetisiert werden muss. EinSoftware Update reduziert sich auf die Neucompilerung und Erzeugung eines .hex –Files mit einer beliebigen IDE, das Update des Bitstreams mittels data2mem und denDownload des neuen .bit - Files auf das FPGA mittels impact . Alle diese Aufgabenlassen sich durch Kommandozeilen-Aufrufe bewerkstelligen und sind insoferne in einBatch-File bzw. in ein Make-File integrierbar.

Die folgenden praktischen Beispiele beziehen sich auf die mc8051 - Portierung fürdas Virtex4 -Board [mc8051], die beschriebene Vorgangsweise kann jedoch auch fürandere CPUs oder IP-Cores eingesetzt werden.

1.1 Benötigte Tools / Entwicklungsumgebungen: Prerequisites

Prinzipiell ist der Einsatz von convHex  und data2MEM  auf Windows und LinuxPlattformen möglich. Data2MEM befindet sich im Lieferumfang der Xilinx Tools, diehier in der Version 9.1.03i verwendet wurde (Verzeichnis der exe-Datei bei der

Windows Version: Xilinx91\bin\nt). ConvHex  ist eine Eigenentwicklung des Fach-bereich „Embedded Systems“ und kann über das CVS am Server esshare (TW in-tern: 10.128.203.5, TW extern: 195.245.255.110) bezogen werden. Im CVS befin-det sich der GCC -compilierbare Sourcecode und eine Windows .exe-Datei, die oh-ne Cygwin lauffähig ist.

Zum Nachvollziehen des Anwendungsbeispiels wird davon ausgegangen, dass ei-ne Software-Entwicklungsumgebung für den mc8051 vorhanden ist (zB. Keil- uVision3 oder der freie SDCC -Compiler/ Linker), welche die Erzeugung von Intel-Hex-Files [IHEX] ermöglicht. Zur Synthese des mc8051 im Virtex4 -FPGA wird Xi- linx ISE 9.1.03i verwendet, der Download erfolgt mit dem Xilinx Tool Impact. 

Page 4: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 4/14

4

2 ConvHex: Convertierung des Intel-Hex Filesin Formate für Simulation und Synthese

Das Programm convHex.exe  (erstellt von Roland Höller, Christoph Kutschera undChristoph Veigl) dient dazu, das gebräuchliche Intel-Hex – Format in eine Reihe vonanderen Dateiformaten zu konvertieren, die zur Initialisierung von Block-Ram-Inhalten, für die Simulation der IP-Cores sowie für das Einfügen neu compilierterSoftware für ein bestehendes FPGA Design nützlich sind.

2.1 Die Formate hex, dua, coe  und mem  

Das Intel .hex   – Format [IHEX] ist meist Ergebins eines Compilier- und Linkvor-ganges von Source-Code für eine bestimmte CPU. Es beschreibt (ASCII-lesbar)Adressen und zugehörige Speicherinhalte für die ausführbare Firmware, wobei dieAdressen je nach Version nicht sequentiell geordnet sein müssen.

.hex-File:  :03000000020025D6:1000230001B8787FE4F6D8FD75810902006C0200FF(...)

Das .dua – Format ist eine ASCII-lesbare Binärdarstellung des .hex Files, bei derdie Adressen sequentiell geordnet und unbelegte Speicherbereiche mit 0 gefülltwurden. Das .dua – File wird zB. bei der Simulation verwednet. Beispiel:

.dua-File: 0000001000000000001001010000000000000000(...)

Das .coe  – Format ist eine Erweiterung des .dua  - Formates um zwei Header-Zeilen. Dieses File kann vom Xilinx Core-Generator  zur Initialisierung von ROM-Speicher verwendet werden, dient also dazu, das übersetzte Programm als aus-führbaren Code ins FPGA-Design (in den Bitstream) aufzunehmen:

.coe-File: memory_initialization_radix = 2;memory_initialization_vector =00000010,00000000,00100101,00000000,00000000,(...) 

Page 5: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 5/14

5

Das .mem - Format ist eine hexadezimale Darstellung der Speicherinhalte, wobeifür jeden Speicherinhalt auch die Adresse angegeben wird. Das .mem - File kannvom Xilinx-Utility data2MEM eingelesen werden, um den Inhalt eines Bitstreams zumodifizieren.

.mem-File: @0000 02@0001 00@0002 25@0003 00@0004 00(...)

2.2 Der Aufruf von convHex  

convhex <Hexfile.hex>

Die Extension .hex ist anzugeben, als Ausgabe erhält man die Aufschlüsselung derSpeicherinhalte und die erzeugten .dua , .coe  und .mem – Dateien. Es empfiehltsich, convHex in einen Folder zu kopieren, der im Systempfad liegt, damit das Toolleicht für Projekte in beliebigen Verzeichnissen verwendet werden kann.

Abb1: Aufruf von convhex 

Page 6: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 6/14

6

3 Data2MEM

Das Data2MEM – Utility ermöglicht das Einfügen von sequentiellen Speicherinhaltenin FPGA Block-Rams, und zwar durch direkte Manipulation eines bestehendenBitstreams (.bit-File) . So kann Software vor dem Download einer CPU ins FPGA inden (ansonsten unveränderten) Bitstream eingefügt werden. Dies stellt eine Kombi-nation des CPU- und des FPGA -Tool-Flows dar, welche die beiden Flows selbstunverändert lässt.

Grundsätzlich kann Data2MEM  verschiedeneDatenformate verarbeiten und ausgeben. Fürdas Einlesen des Bitstreams stehen neben demMEM -Format auch das ELF - und das DWARF -Format zur Verfügung. Mögliche Ausgabefor-

mate sind neben dem aktualisierten .bit  - Fileauch Verilog , VHDL- oder MEM -Files für dieSimulation (post-PAR simulation). Abb. 2: Data2MEM I/O-Files

Data2MEM  führt bei der Integration von Speicherinhalten in den Bitstream eine ge-eignete Umordnung der Daten durch, damit ein kontinuierlicher Adressraum erhaltenbleibt. Dies ist nötig, weil der CPU-Adress- und Datenraum für gewöhnlich größersind als die Architektur der Block-Rams und die Inhalte auf unterschiedliche BRAMsaufgeteilt werden müssen, um einen linearen Zugriff aufrechtzuerhalten:

Abb. 3 : Beispiel für die Anordung des BRAM – Adressraumesfür einen 64-bit Datenzugriff [XIL01]

Page 7: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 7/14

7

Die Größe und Anordnung der Block-Rams ist technologie- bzw. designabhängigund muss in einem BlockRam Memory-Map  (.bmm) – File angegeben werden.Hier bestehen Unterschiede zwischen den Xilinx FPGA-Familien, derzeit sind fol-genden Block-Ram-Typen verfügbar:

RAMB4 (4kBit, Virtex, Virtex-E)RAMB16  (16-Kbit, Spartan-3, Virtex-II)

RAMB18 (18-Kbit, Virtex-4)

RAMB36  (36-Kbit BRAM, Virtex-5)

Neben der Anordnung und Breite der Block RAMs (Bitlane interleave ) wird im .bmm  - File auch die Anzahl der nötigen Bus-Blöcke angegeben. Im Beispiel aus Abb.4wurde eine Bitlane-Breite von 8 Bit gewählt (dieser Wert muss vom Xilinx-BlockRam-Typ unterstützt werden), dies bewirkt eine Aufteilung des 64-Bit Datenwortes auf 8BlockRams. Aus der gewählten Bitlane-Breite ergeben sich die Datentiefe einesBlock-Rams und die nötige Anzahl von Bus-Blöcken für den gewünschten Adress-

raum. Für den BlockRam-Typ RAMB4 wären folgende Bitlane-Breiten bzw. Datentie-fen möglich:

RAMB4_S1: 1 Bit x 4096RAMB4_S2: 2 Bit x 2048

RAMB4_S4: 4 Bit x 1024RAMB4_S8: 8 Bit x 512RAMB4_S16: 16 Bit x 256

3.1 Struktur des .bmm - Files:

Im .bmm-File wird das zu verwendende Speicher-Mapping durch eine Reihe vonKeywords festgelegt:

 ADDRESS_SPACE <adr_space_name> <memory_devicetype> [start_addr:end_addr]END_ADDRESS_SPACE;

<memory_devicetype> gibt den verfügbaren Block-Ram-Typ anzB. RAMB4 oder RAMB16  

<start_addr> und <end_addr> geben den gewünschten Adressraum anEin Address_Space beinhaltet einen oder mehrere Bus-Blöcke.

BUS_BLOCK

<Bit_lane_definition><Bit_lane_definition>(...)

END_BUS_BLOCK;

Ein Bus-Block ist aus einer oder mehreren Bitlanes aufgebaut. Die Bitlanes definie-ren die Aufteilung eines CPU-Bus-Zugriff auf verschiedene BlockRams. Die Rei-henfolge und Anzahl der Bus-Blöcke bestimmt die Zuordnung und Größe des ad-ressierbaren Speicherbereichs.

Page 8: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 8/14

8

3.2 Beispiel für ein .bmm - File [XIL01]:

ADDRESS_SPACE ram_cntlr RAMB4 [0xFFFFC000:0xFFFFFFFF]

// Bus access map for the lower 4k, CPU address 0xFFFFC000 - 0xFFFFCFFF

BUS_BLOCKtop/ram_cntlr/ram7 [63:56] LOC = R3C5;top/ram_cntlr/ram6 [55:48] LOC = R3C6;top/ram_cntlr/ram5 [47:40] LOC = R3C7;top/ram_cntlr/ram4 [39:32] LOC = R3C8;top/ram_cntlr/ram3 [31:24] LOC = R4C5;top/ram_cntlr/ram2 [23:16] LOC = R4C6;top/ram_cntlr/ram1 [15:8] LOC = R4C7;top/ram_cntlr/ram0 [7:0] LOC = R4C8;

END_BUS_BLOCK;

// Bus access map for next higher 4k, CPU address 0xFFFFD000 - 0xFFFFDFFFBUS_BLOCKtop/ram_cntlr/ram15 [63:56] OUTPUT = ram15.mem;top/ram_cntlr/ram14 [55:48] OUTPUT = ram14.mem;

top/ram_cntlr/ram13 [47:40] OUTPUT = ram13.mem;top/ram_cntlr/ram12 [39:32] OUTPUT = ram12.mem;top/ram_cntlr/ram11 [31:24] OUTPUT = ram11.mem;top/ram_cntlr/ram10 [23:16] OUTPUT = ram10.mem;top/ram_cntlr/ram9 [15:8] OUTPUT = ram9.mem;top/ram_cntlr/ram8 [7:0] OUTPUT = ram8.mem;

END_BUS_BLOCK;

// Bus access map for next higher 4k, CPU address 0xFFFFE000 - 0xFFFFEFFFBUS_BLOCKtop/ram_cntlr/ram23 [63:56];top/ram_cntlr/ram22 [55:48];top/ram_cntlr/ram21 [47:40];top/ram_cntlr/ram20 [39:32];top/ram_cntlr/ram19 [31:24];

top/ram_cntlr/ram18 [23:16];top/ram_cntlr/ram17 [15:8];top/ram_cntlr/ram16 [7:0];

END_BUS_BLOCK;

// Bus access map for next higher 4k, CPU address 0xFFFFF000 - 0xFFFFFFFFBUS_BLOCKtop/ram_cntlr/ram31 [63:56];top/ram_cntlr/ram30 [55:48];top/ram_cntlr/ram29 [47:40];top/ram_cntlr/ram28 [39:32];top/ram_cntlr/ram27 [31:24];top/ram_cntlr/ram26 [23:16];top/ram_cntlr/ram25 [15:8];top/ram_cntlr/ram24 [7:0];

END_BUS_BLOCK;END_ADDRESS_SPACE;

Abb. 4: Resultierender Bus-Zugriff auf die Bitlanes

Page 9: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 9/14

9

3.3 Einbindung des .bmm – Files in das Xilinx ISE - Projekt

Um die .bmm – Datei mit den aktuellen Placement-Informationen der BlockRamszu ergänzen, muss die Datei zum Xilinx-Projekt hinzugefügt und eine Neusysnthe-se gestartet werden. Verläuft die Synthese nicht erfolgreich, so sollten die Namenbzw. das Layout der BRAMs mithilfe des Floorplanners / FPGA Editors in der XilinxISE überprüft und mit der .bmm-Datei verglichen werden.

Nach erfolgreicher Synthese sollte sich die erweiterte .bmm - Datei( <name>_bd.bmm ) im Projektverzeichnis befinden, welche von data2MEM ver-wendet werden kann. 

Abb. 5: Einfügen des .bmm-Files in das Xilinx ISE Projekt

Page 10: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 10/14

10

4 Software Tool-Flow:vom 8051-Sourcecode zum Download mit impact  

Das folgende Anwendugnsbeispiel zeigt ein Firmware-Update für einen im FPGAimplementierten mc8051-Prozessor. Dazu wurde das OpenSource IP-Core derFirma Oregano Systems [ORE] für den Einsatz im Virtex4 - FPGA modifiziert. Eswird angenommen, dass die Synthese und Implementierung des Bitstreams prin-zipiell funktioniert. Abb. 6 zeigt die prinzipiellen Tool-Flows für Software undHardware, mit der angestrebten Verbindung von .elf bzw .hex  – File zumBitstream für die FPGA-Implementierung. Wir verwenden anstatt des .elf - Forma-tes das .mem  - Format als Eingabe für Bitgen bzw. impact , da weder Keil nochSDCC eine Ausgabe im .elf  - Format unterstützen)

Abb. 6: Verbindung der Tool Flows für Software und FPGA Design

Page 11: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 11/14

11

4.1 Auffinden der BlockMemory Strukturen

Um die Breite bzw. Tiefe des ROM-Speichers zu verifizieren, empfiehlt sich einBlick in das Placement mithilfe des FPGA-Editors:

Abb. 7: Placement der ROM-Blöcke im FPGA-Editor,Daten- und Adressleitungen

4.2 BlockMemory Map-File: mc8051_rom.bmm

Hieraus ergibt sich das Block-Memory Map File mc8051_rom.bmm für die Imple-mentierung des mc8051 - Programmspeichers:

ADDRESS_SPACE i_mc8051_rom RAMB16 [0x0000:0x0fff]BUS_BLOCK

i_mc8051_rom/BU8 [7:4];i_mc8051_rom/BU5 [3:0];

END_BUS_BLOCK;END_ADDRESS_SPACE;

Hier finden sich sowohl die zugewiesenen Namen für dieBlockMemory Instanzen (hier BU5 und BU8 ) als auch dieverwendeten Adress- und Datenanbindungen (die ja schonaus dem VHDL-Design heraus klar sein sollten)

Page 12: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 12/14

12

Nach dem Einfügen ins Xilinx-Projekt und der Neusynthese erhält man u.a. dasBitfile mc8051_top.bit und die Datei mc8051_rom_bd.bmm mit folgendem In-halt:

ADDRESS_SPACE i_mc8051_rom RAMB16 [0x00000000:0x00000FFF]BUS_BLOCKi_mc8051_rom/BU8 [7:4] PLACED = X0Y6;i_mc8051_rom/BU5 [3:0] PLACED = X0Y7;

END_BUS_BLOCK;END_ADDRESS_SPACE;

4.3 Sourcode compilieren und linken

Hier dient als Beispiel der SDCC -Compiler, eine Compilierung von C-Code für denmc8051 ist aber zB. auch mit der Keil-Entwicklungsumgebung möglich.

sdcc test.c -c -–model-small // compilierensdcc test.rel –model-small // linken

Das Ergebnis des Linkens ist die Datei test.hex .

4.4 Erzeugung des mem-Files: convHex

Nun wird das entstandene .hex -File ins .mem -Format konvertiert:

convhex test.hex

Dies liefert die Dateien test.dua, test.coe und test.mem. 

4.5 Update des Bitstreams: data2MEM

Das .mem - File, das <name>_bd.bmm -File und das .bit - File dienen als Eingabefür data2MEM . Nach dem erfolgreichen Durchlauf exisiert ein neues Bitfile mit dem

angegebenen Namen final.bit , das den aktuellen Programmcode enthält:

data2mem -bm ../mc8051_rom_bd.bmm -bt ../mc8051_top.bit -bd test.mem-o b ../final.bit

REM Optional: verify that data has changed:REM data2mem -bm ../mc8051_rom_bd.bmm -bt ../mc8051_top.bit -dREM > design-before.txtREM data2mem -bm ../mc8051_rom_bd.bmm -bt ../final.bit -dREM > design-after.txt

Page 13: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 13/14

13

4.6 Aufruf von Impact im Batch-Modus:

Das entstandene Bitfile kann mittels impact  ins FPGA überspielt werden. Mithilfedes Batchmodus von impact ist dies von der Kommandozeile aus möglich:

impact -batch < impact_batch.txt

Inhalt der Datei impact_batch.txt:

setmode -bssetcable -p autoidentifyassignFile -p 1 -file final.bitprogram -p 1 -defaultVersion 0quit

Weiterführende Dokumentation und Optionen von impact siehe [XIL02].

5 References

[CONVHEX] ConvHex: Konvertierungs-Tool. Roland Hoeller, Christoph Kutschera,

Christoph Veigl. CVS-Checkout auf esshare: mc8051/sw/convHex/

[IHEX] DasIntelHexFormat:http://www.keil.com/support/docs/1584.htm

[KUT] Christof Kutschera: MC8051-Virtex_howto:es@esshare//ResearchProjects/CompetenceTeam/project_docs/mc8051_virtex4_howto.doc 

[MC8051] MC8051 OpenSource IP-Core von Oregano Systems, modifiziert fürden XG-Modus des Syopsys Design Compilers.CVS Checkout auf esshare: mc8051 

[MCN] Xilinx ISE: Laden des Roms ohne Neusynthesehttp://www.mikrocontroller.net/articles/T51-Core 

[ORE] Oregano mc8051 Core: http://www.oregano.at/ip/8051.htm 

[XIL01] Xilinx Data2Mem User Guide, 04/07:http://toolbox.xilinx.com/docsan/xilinx92/books/docs/d2m/d2m.pdf 

[XIL02] Xilinx Impact User Guide, 02/07http://toolbox.xilinx.com/docsan/xilinx4/pdf/docs/pac/pac.pdf 

Page 14: Data2mem Howto

5/10/2018 Data2mem Howto - slidepdf.com

http://slidepdf.com/reader/full/data2mem-howto 14/14

14

Anhang A: Tabelle verwendeter Dateien

Die folgende Tabelle fasst einige Files zusammen, die für das Anwendungsbeispiel„8051 Firmware “ verwendet wurden (ohne die mc8051 Source und Synthese-

Dateien) :

Dateiname Bemerkung

mc8051_top.vhd Top-Level mc8051 Design

mc8051_rom.bmm BlockMemory Map (händisch generiert)

mc8051_rom_bd.bmm BlockMemory Map mit Placemnet Info(von Xilinx ISE generiert)

mc8051_top.bit Original Bitstream File

final.bit Upgedateter Bitstream incl. neuer Firmware

sdcc.exe Small Device C-Compiler,http://sdcc.sourceforge.net/ 

convhex.exe iHEX - Konverter [CONVHEX]

data2MEM.exe Xilinx Tool [XIL01]