Skip to content

Instantly share code, notes, and snippets.

@mithro
Created December 5, 2018 17:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mithro/7fee3383bf08eb0deaa1be2dab28c5af to your computer and use it in GitHub Desktop.
Save mithro/7fee3383bf08eb0deaa1be2dab28c5af to your computer and use it in GitHub Desktop.

Memory Regions

  • ROM - rom
  • SRAM - sram
  • User FLASH - user_flash
  • Main RAM - main_ram

ROM

  • Generally blockram inside the FPGA with the write enable disabled.

SRAM

  • Internal "small ram", preinitialised.
  • Generally blockram inside the FPGA.
  • Contents is preloaded.

User Flash

  • Memory mapped "read only" flash.
  • Generally SPI NOR flash.
  • Normally around 8megabytes (64 megabits) -> 256megabytes (2 gigabit).

Main RAM

  • Normally external memory.
  • Generally DDR.
  • Normally pretty large, IE 128megabytes or more.

Execution Models

Only SRAM

  • Only has SRAM preloaded with contents of program.

Execute in Place from ROM + SRAM

  • Program stored in ROM.
  • SRAM is used for read/write stuff like stack/heap/globals.

Execute in Place from SPI Flash + SRAM

  • Program stored in SPI Flash.
  • SRAM is used for read/write stuff like stack/heap/globals.

Execute from Main RAM

  • Program is copied from some place into main ram.
  • RAM is used for all program, read only section / stack / heap / globals.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment