====== Referenzsysteme ====== Das Projekt //Microblaze References (MB-Ref)// beinhaltet fertig nutzbare FPGA Designs für verschiedene Evaluierungssysteme. Sie sind im Verzeichnis ''working-designs'' hinterlegt. Die Designs liegen immer in zwei verschiedenen Ausbaustufen vor, einer //Lite-// und einer //Full-//Variante (Details siehe [[#ausbaustufen|unten]]). Jedes Design wird für mehrere Xilinx ISE/EDK Versionen evaluiert und bei Bedarf auf neuere Versionen übertragen. Alle Designs basieren auf der jeweils aktuellsten MicroBlaze Implementierung wie sie von der zugrunde liegenden Xilinx ISE/EDK Version angeboten wird. :!: **FPGA-Designs mit Multi-Core Implementierungen werden aktuell noch nicht unterstützt!** ===== Unterstützte Zielsysteme ===== {{indexmenu>.#1|context}} ===== Ausbaustufen ===== ==== "Lite" ==== - MicroBlaze Ausstattung: ''**microblaze_0**'' * 2kB Instruction Cache (line length 4) * 2kB Data Cache (line length 4) * MMU: virtual, full register access, 2 protection zones * Exception Handling * Barrel Shifter * Pattern Comparator * MSR Instruction * MUL32 Multiplicator * //without Divider// * //without FPU// * Debug: 1 PC breakpoint, without read/write watchpoints * PVR: full USER1 and USER2 - Kernkomponenten für Betriebssysteme und Debugging: * 1 JTAG UART, only primary instance: ''**mdm_0**'' * 1 Interrupt Controller, only primary instance: ''**xps_intc_0**'' * 1 Timer (system tick), only primary instance: ''**xps_timer_0**'' - UART Leitungen: * only primary instance: ''**xps_uart_0**'' * //XPS UART Lite// * 115200 Baud (8N1) * interrupt source - Netzerk Leitungen: * only primary instance: ''**xps_ether_0**'' * //XPS Ethernet Lite// * Duplex Mode * MDIO support * without second Rx/TX buffer * interrupt source ==== "Full" ==== - MicroBlaze Ausstattung: ''**microblaze_0**'' * 16kB Instruction Cache (line length 8) * 16kB Data Cache (line length 4) * MMU: virtual, full register access, 2 protection zones * Exception Handling * Barrel Shifter * Pattern Comparator * MSR Instruction * MUL32 Multiplicator * //Integer Divider// * //Basic FPU: no FLOAT <-> INT, no SQRT// * Debug: 1 PC breakpoint, without read/write watchpoints * PVR: full USER1 and USER2 - Kernkomponenten für Betriebssysteme und Debugging: * 1 JTAG UART, only primary instance: mdm_0 * 1 Interrupt Controller, only primary instance: ''**xps_intc_0**'' * 1 Timer (system tick), only primary instance: ''**xps_timer_0**'' - UART Leitungen: * only primary instance: ''**xps_uart_0**'' * //XPS 16550 UART// * interrupt source - Netzerk Leitungen: * only primary instance: ''**xps_ether_0**'' * //XPS LL TEMAC// * Duplex Mode * MDIO support * SDMA access * interrupt source ===== Allgemeine Entwurfsrichtlinien ===== Alle FPGA Designs folgen den hier aufgestellten Entwurfsrichtlinien. Eine Ausnahme bildet das Design von [[.:s2i-ml505-mmu-gige:start|Sensor-to-Image]]. Dieses wird komplett separat behandelt. ==== Aufbau der FPGA Projekte ==== Jedes FPGA Design wird ausschließlich mit dem //Xilinx Platfrom Studion (XPS)// entwickelt. Eigene IP Cores müssen als eigenständiges Design entwickelt und in das FPGA Design im XPS integriert werden. Dazu kann der //Create and Import Peripheral Wizard (CreateIP)// aus dem Xilinx EDK oder gleich das //Integrated Synthesis Environment (ISE)// benutzt werden. **Ein Ansatz nur über ISE** mit der Integration einer XPS Instanz für das Prozessorsystem ist zwar prinzipiell möglich, aber **wird für ein Referenzsystem innerhalb von MB-Ref nicht zugelassen.** ==== Systemrichtlinien ==== === Instanzen und ihre Speicherbereiche === Jeder verbaute IP Core wird als eine Instanz von sich selbst in ein FPGA Design aufgenommen und kann dabei beliebig oft instantiiert werden. Der Name der im FPGA Design entstehenden Instanz wird vom Namen des zugrunde liegenden IP Core abgeleitet und um eine laufende Nummer beginnend bei 0 erweitert. __Beispiel:__ Der IP Core des Zählerbausteins //XPS Timer/Counter// besitzt den Namen ''xps_timer''. Somit wird die erste Instanz ''**xps_timer_0**'' genannt. Die zweite Instanz erhält den Namen ''**xps_timer_1**'', und so weiter. Die hier zugeordneten Speicherbereiche entsprechen den generell für die jeweiligen IP Core Instanzen reservierten Speicherbereiche. Somit werden Cluster im Speicher gebildet, damit funktional gleiche bzw. ähnliche IP Core Instanzen an einer festen Stelle und nur dort im Speicher zu finden sind. IP Core Instanzen, die keinen Speicher benötigen, erhalten auch keine Zuordnung. Folgende Namen sind bekannt und werden so benutzt: | Kategorie ^ IP Core((noch nicht alle: [[http://www.xilinx.com/ise/embedded/edk_ip.htm|siehe]])) ^^^^^ | ::: ^ IP Core Name ^ Name der Instanzen ^ Speicherbereich ^ Größe ^ ^ Extensions | ||| ^ ::: | Instanzen von Design spez. IP Cores || ''0xB000.0000'' ... ''0xFFFF.FFFF'' | 1 GB| | ||||| ^ Linear\\ ROM ^ [[http://www.xilinx.com/products/ipcenter/xps_mch_emc.htm|Xilinx Multi-CHannel External Memory Controller (XPS MCH EMC)]] ^^^^ ^ ::: | ''xps_mch_emc'' | **1-fache Instantiierung** ||| ^ ::: | ::: | ''**xps_mch_emc_0**'' | ''0xAF00.0000'' ... ''0xAFFF.FFFF'' | min. 16 MB| ^ ::: | ::: | ::: | ''0x9000.0000'' ... ''0xAFFF.FFFF'' | max. 512 MB| ^ ::: | ::: | **2-fache Instantiierung** ||| ^ ::: | ::: | ''**xps_mch_emc_0**'' | ''0xAF00.0000'' ... ''0xAFFF.FFFF'' | min. 16 MB| ^ ::: | ::: | ::: | ''0xA000.0000'' ... ''0xAFFF.FFFF'' | max. 256 MB| ^ ::: | ::: | ''**xps_mch_emc_1**'' | ''0x9F00.0000'' ... ''0x9FFF.FFFF'' | min. 16 MB| ^ ::: | ::: | ::: | ''0x9000.0000'' ... ''0x9FFF.FFFF'' | max. 256 MB| ^ ::: | ::: | **4-fache Instantiierung** ||| ^ ::: | ::: | ''**xps_mch_emc_0**'' | ''0xAF00.0000'' ... ''0xAFFF.FFFF'' | min. 16 MB| ^ ::: | ::: | ::: | ''0xA800.0000'' ... ''0xAFFF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**xps_mch_emc_1**'' | ''0xA700.0000'' ... ''0xA7FF.FFFF'' | min. 16 MB| ^ ::: | ::: | ::: | ''0xA000.0000'' ... ''0xA7FF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**xps_mch_emc_2**'' | ''0x9F00.0000'' ... ''0x9FFF.FFFF'' | min. 16 MB| ^ ::: | ::: | ::: | ''0x9800.0000'' ... ''0x9FFF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**xps_mch_emc_3**'' | ''0x9700.0000'' ... ''0x97FF.FFFF'' | min. 16 MB| ^ ::: | ::: | ::: | ''0x9000.0000'' ... ''0x97FF.FFFF'' | max. 128 MB| ^ ::: | ::: | ... ||| | ||||| ^ On-Chip\\ Debug (OCD) ^ [[http://www.xilinx.com/products/ipcenter/opb_mdm.htm|MicroBlaze Debug Module (MDM)]] ^^^^ ^ ::: | ''mdm'' | ''**mdm_0**'' | ''0x8FFF.0000'' ... ''0x8FFF.FFFF'' | 64 kB| ^ ::: | ::: | ''**mdm_1**'' | ''0x8FFE.0000'' ... ''0x8FFE.FFFF'' | 64 kB| ^ ::: | ::: | ''**mdm_2**'' | ''0x8FFD.0000'' ... ''0x8FFD.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**mdm_15**'' | ''0x8FF0.0000'' ... ''0x8FF0.FFFF'' | 64 kB| ^ ::: ^ ^^^^^ ^ ::: | Reserve für weitere IP Cores dieser Kategorie || ''0x8F00.0000'' ... ''0x8FEF.FFFF'' | 15 MB| | ||||| ^ ^^^^^ | Reserve für weitere Kategorien ||| ''0x8B00.0000'' ... ''0x8EFF.FFFF'' | 64 MB| | ||||| ^ OS\\ spezifisch ^ [[http://www.xilinx.com/products/ipcenter/xps_intc.htm|XPS Interrupt Controller (XPS INTC)]] ^^^^^ ^ ::: | ''xps_intc'' | ''**xps_intc_0**'' | ''0x8AFF.0000'' ... ''0x8AFF.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_intc_1**'' | ''0x8AFE.0000'' ... ''0x8AFE.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_intc_2**'' | ''0x8AFD.0000'' ... ''0x8AFD.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_intc_15**'' | ''0x8AF0.0000'' ... ''0x8AF0.FFFF'' | 64 kB| ^ ::: ^ [[http://www.xilinx.com/products/ipcenter/xps_timer.htm|XPS Timer/Counter (XPS TIMER)]] ^^^^^ ^ ::: | ''xps_timer'' | ''**xps_timer_0**'' | ''0x8AEF.0000'' ... ''0x8AEF.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_timer_1**'' | ''0x8AEE.0000'' ... ''0x8AEE.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_timer_2**'' | ''0x8AED.0000'' ... ''0x8AED.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_timer_15**'' | ''0x8AE0.0000'' ... ''0x8AE0.FFFF'' | 64 kB| ^ ::: ^ [[http://www.xilinx.com/products/ipcenter/mpmc.htm|SDMA Controller of Multi-Port Memory Controller (DDR/DDR2/SDRAM)]] ^^^^^ ^ ::: | ''mpmc:sdma_ctrl'' | ''**mpmc:sdma_ctrl_0**'' | ''0x8ADF.0000'' ... ''0x8ADF.FFFF'' | 64 kB| ^ ::: | ::: | ''**mpmc:sdma_ctrl_1**'' | ''0x8ADE.0000'' ... ''0x8ADE.FFFF'' | 64 kB| ^ ::: | ::: | ''**mpmc:sdma_ctrl_2**'' | ''0x8ADD.0000'' ... ''0x8ADD.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**mpmc:sdma_ctrl_15**'' | ''0x8AD0.0000'' ... ''0x8AD0.FFFF'' | 64 kB| ^ ::: ^ ^^^^^ ^ ::: | Reserve für weitere IP Cores dieser Kategorie || ''0x8A00.0000'' ... ''0x8ACF.FFFF'' | 13 MB| | ||||| ^ UART\\ Leitungen ^ [[http://www.xilinx.com/products/ipcenter/xps_uartlite.htm|XPS Universal Asynchronous Receiver Transmitter (UART) Lite Interface]] ^^^^^ ^ ::: | ''xps_uartlite'' | ''**xps_uart_0**'' | ''0x89FF.0000'' ... ''0x89FF.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_uart_1**'' | ''0x89FE.0000'' ... ''0x89FE.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_uart_2**'' | ''0x89FD.0000'' ... ''0x89FD.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_uart_255**'' | ''0x8900.0000'' ... ''0x8900.FFFF'' | 64 kB| ^ ::: ^ [[http://www.xilinx.com/products/ipcenter/xps_uart16550.htm|XPS 16550 Universal Asynchronous Receiver Transmitter (UART)]] ^^^^^ ^ ::: | ''xps_uart16550'' | ''**xps_uart_0**'' | ''0x89FF.0000'' ... ''0x89FF.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_uart_1**'' | ''0x89FE.0000'' ... ''0x89FE.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_uart_2**'' | ''0x89FD.0000'' ... ''0x89FD.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_uart_255**'' | ''0x8900.0000'' ... ''0x8900.FFFF'' | 64 kB| | ||||| ^ Netzwerk\\ Leitungen ^ [[http://www.xilinx.com/products/ipcenter/xps_ethernetlite.htm|XPS Ethernet Lite Media Access Controller (MAC)]] ^^^^^ ^ ::: | ''xps_ethernetlite'' | ''**xps_ether_0**'' | ''0x88F0.0000'' ... ''0x88FF.FFFF'' | 1 MB| ^ ::: | ::: | ''**xps_ether_1**'' | ''0x88E0.0000'' ... ''0x88FE.FFFF'' | 1 MB| ^ ::: | ::: | ''**xps_ether_2**'' | ''0x88D0.0000'' ... ''0x88FD.FFFF'' | 1 MB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_ether_15**'' | ''0x8800.0000'' ... ''0x8800.FFFF'' | 1 MB| ^ ::: ^ [[http://www.xilinx.com/products/ipcenter/xps_ll_temac.htm|XPS Local Link (LL) Tri-Mode Ethernet Media Access Controller (TEMAC)]] ^^^^^ ^ ::: | ''xps_ll_temac'' | ''**xps_ether_0**'' | ''0x88F0.0000'' ... ''0x88FF.FFFF'' | 1 MB| ^ ::: | ::: | ''**xps_ether_1**'' | ''0x88E0.0000'' ... ''0x88FE.FFFF'' | 1 MB| ^ ::: | ::: | ''**xps_ether_2**'' | ''0x88D0.0000'' ... ''0x88FD.FFFF'' | 1 MB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_ether_15**'' | ''0x8800.0000'' ... ''0x8800.FFFF'' | 1 MB| | ||||| ^ ^^^^^ | Reserve für weitere Kategorien ||| ''0x8100.0000'' ... ''0x87FF.FFFF'' | 112 MB| | ||||| ^ GPIO\\ Leitungen ^ [[http://www.xilinx.com/products/ipcenter/xps_gpio.htm|XPS General Purpose Input/Output (GPIO)]] ^^^^^ ^ ::: | ''xps_gpio'' | ''**xps_gpio_0**'' | ''0x80FF.0000'' ... ''0x80FF.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_gpio_1**'' | ''0x80FE.0000'' ... ''0x80FE.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_gpio_2**'' | ''0x80FD.0000'' ... ''0x80FD.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_gpio_15**'' | ''0x80F0.0000'' ... ''0x80F0.FFFF'' | 64 kB| | ||||| ^ Serial Bus\\ Leitungen ^ [[http://www.xilinx.com/products/ipcenter/xps_iic.htm|XPS Low Speed, Two Wire, Serial Bus Interface]] ^^^^^ ^ ::: | ''xps_iic'' | ''**xps_iic_0**'' | ''0x80EF.0000'' ... ''0x80EF.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_iic_1**'' | ''0x80EE.0000'' ... ''0x80EE.FFFF'' | 64 kB| ^ ::: | ::: | ''**xps_iic_2**'' | ''0x80ED.0000'' ... ''0x80ED.FFFF'' | 64 kB| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**xps_iic_15**'' | ''0x80E0.0000'' ... ''0x80E0.FFFF'' | 64 kB| | ||||| ^ ^^^^^ | Reserve für weitere Kategorien ||| ''0x6000.0000'' ... ''0x80DF.FFFF'' | 526 MB| | ||||| ^ Linear\\ RAM ^ [[http://www.xilinx.com/products/ipcenter/mpmc.htm|Multi-Port Memory Controller (DDR/DDR2/SDRAM)]] ^^^^^ ^ ::: | ''mpmc'' | **1-fache Instantiierung** ||| ^ ::: | ::: | ''**mpmc_0**'' | ''0x2000.0000'' ... ''0x5FFF.FFFF'' | max. 1 GB| ^ ::: | ::: | **2-fache Instantiierung** ||| ^ ::: | ::: | ''**mpmc_0**'' | ''0x4000.0000'' ... ''0x5FFF.FFFF'' | max. 512 MB| ^ ::: | ::: | ''**mpmc_1**'' | ''0x2000.0000'' ... ''0x3FFF.FFFF'' | max. 512 MB| ^ ::: | ::: | **4-fache Instantiierung** ||| ^ ::: | ::: | ''**mpmc_0**'' | ''0x5000.0000'' ... ''0x5FFF.FFFF'' | max. 256 MB| ^ ::: | ::: | ''**mpmc_1**'' | ''0x4000.0000'' ... ''0x4FFF.FFFF'' | max. 256 MB| ^ ::: | ::: | ''**mpmc_2**'' | ''0x3000.0000'' ... ''0x3FFF.FFFF'' | max. 256 MB| ^ ::: | ::: | ''**mpmc_3**'' | ''0x2000.0000'' ... ''0x2FFF.FFFF'' | max. 256 MB| ^ ::: | ::: | **8-fache Instantiierung** ||| ^ ::: | ::: | ''**mpmc_0**'' | ''0x5800.0000'' ... ''0x5FFF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**mpmc_1**'' | ''0x5000.0000'' ... ''0x57FF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**mpmc_2**'' | ''0x4800.0000'' ... ''0x4FFF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**mpmc_3**'' | ''0x4000.0000'' ... ''0x47FF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**mpmc_4**'' | ''0x3800.0000'' ... ''0x3FFF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**mpmc_5**'' | ''0x3000.0000'' ... ''0x37FF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**mpmc_6**'' | ''0x2800.0000'' ... ''0x2FFF.FFFF'' | max. 128 MB| ^ ::: | ::: | ''**mpmc_7**'' | ''0x2000.0000'' ... ''0x27FF.FFFF'' | max. 128 MB| ^ ::: | ::: | ... ||| ^ ^^^^^ | Reserve für weitere Kategorien ||| ''0x0010.0000'' ... ''0x1FFF.FFFF'' | 511 MB| | ||||| | ||||| ^ BRAM ^ ^^^^^ ^ ::: | Reserve für weitere IP Cores dieser Kategorie || ''0x0001.0000'' ... ''0x000F.FFFF'' | 960 kB| ^ ::: ^ [[http://www.xilinx.com/products/ipcenter/LMB_BRAM_Interface_Controller.htm|Local Memory Bus (LMB) Block RAM (BRAM) Interface Controller]] ^^^^^ ^ ::: | ''dlmb_cntrl''\\ ''ilmb_cntrl'' | ''**dlmb_cntrl''\\ ''ilmb_cntrl**'' | ''0x0000.0000'' ... ''0x0000.FFFF'' | 64 kB| ^ ::: | ::: | ::: | Maximum: ... ''0x0000.7FFF'' |32 kB | ^ ::: | ::: | ::: | Medium: ... ''0x0000.3FFF'' |16 kB | ^ ::: | ::: | ::: | Minimum: ... ''0x0000.1FFF'' |8 kB | | ||||| ^ CPU ^ [[http://www.xilinx.com/tools/microblaze.htm|MicroBlaze Soft Processor]] ^^^^^ ^ ::: | ''microblaze'' | ''**microblaze_15**'' ||| ^ ::: | ::: | ... ||| ^ ::: | ::: | ''**microblaze_2**'' ||| ^ ::: | ::: | ''**microblaze_1**'' ||| ^ ::: | ::: | ''**microblaze_0**'' ||| === General Purpose I/O Enumeration === ^ Instanz ^ Ordnung ^ Zuordnung ^ typisch ^ ^ ''xps_gpio_0'' | primary | System | Reset (per Software) | ^ ''xps_gpio_1'' | secondary | Kommunikation | Taster (Push Buttons) | ^ ''xps_gpio_2'' | tertiary | ::: | Schalter (DIP Switches) | ^ ''xps_gpio_3'' | quaternary | ::: | Leuchten (LED Lamps) | ^ ''xps_gpio_4'' | quinary | ::: | Leuchten (LED Positions) | ^ ''xps_gpio_5'' | senary | Peripherie | extern ... | ^ ''xps_gpio_6'' | septenary | erster freier Port || ^ ''xps_gpio_7'' | octonary | ... || ^ ''xps_gpio_8'' | nonary | ::: || ^ ''xps_gpio_9'' | denary | ::: || === Serial Bus Enumeration === ^ Instanz ^ Ordnung ^ Zuordnung ^ typisch ^ ^ ''xps_iic_0'' | primary | System | On-Board (RTC, EEPROM, DIMM) | ^ ''xps_iic_1'' | secondary | Kommunikation | On-Board (SFP) | ^ ''xps_iic_2'' | tertiary | Peripherie | extern (DVI) | ^ ''xps_iic_3'' | quaternary | erster freier Bus || ^ ''xps_iic_4'' | quinary | ... || ^ ''xps_iic_5'' | senary | ::: || ^ ''xps_iic_6'' | septenary | ::: || ^ ''xps_iic_7'' | octonary | ::: || ^ ''xps_iic_8'' | nonary | ::: || ^ ''xps_iic_9'' | denary | ::: || === Interrupt Priorität === ^ Priorität ^ angeschlossene Instanzen ^ Anmerkungen ^ ^ höchste | ''**xps_timer_0**'' | System Tick | | | ''**mpmc_0:sdma_0_rx**'' | DMA Komponenten | | ::: | ''**mpmc_0:sdma_0_tx**'' | ::: | | ::: | ''**xps_central_dma_0**'' | ::: | | ::: | z.B. ''PCIe'' | Bus Bridges | | ::: | z.B. ''SysACE CF'', ''SATA'' | Massenspeicher | | ::: | || | ::: | Reserve für höchste Priorität || | ::: | || | ::: | ''**xps_ether_0**'' | System Network I/F | | ::: | ''**xps_ether_1**'' | ::: | | ::: | ''**xps_uart_0**'' | System UART I/F | | ::: | ''**xps_uart_1**'' | ::: | | ::: | || | ::: | Reserve für mittlere Priorität || | ::: | || | ::: | ''**xps_iic_0**'' | System Serial Bus I/F | | ::: | || ^ tiefste | Reserve für tiefste Priorität || ==== Speicheraufteilung ==== === Linear ROM Mapping (top-down) === Je nach Ausstattung der Evaluierungssysteme mit nicht flüchtigem Speicher (ROM) wird sich die Nutzung an der folgenden Grafik orientieren. Folgende Richtlinien sind immer einzuhalten: * das **ROM Ende** liegt unabhängig von seiner Größe immer an der obersten 1 GB Speicheradresse ''**0xB000.0000**'' (top-down) * in den **letzten 512 MB** befindet sich ein //2nd stage boot loader// ab Adresse ''**0xAFF80.0000**'', in unserem Fall **U-Boot** * am **ROM Anfang** wird immer Platz für die **FPGA Konfigurationsdaten** gehalten (redundant) {{svg>:svg:rom-map.svg}} {{tag>xilinx microblaze mbref embedded}}