wavedrom / bitfield

:cake: bit field diagram renderer
MIT License
335 stars 27 forks source link

Support memory maps #24

Open xobs opened 4 years ago

xobs commented 4 years ago

Issue moved from https://github.com/wavedrom/wavedrom/issues/257

Memory maps are conceptually similar to bitfields, except they're rotated on their sides. Memory maps may also be non-uniform in size, though that may be a future enhancement.

It may be possible to reuse the compact view (https://github.com/drom/bitfield/pull/23) to create memory maps, by setting the number of lanes to the number of memory sections (e.g. 16), and the width to 1.

drom commented 4 years ago

Do you have some visually pleasing example of memory map diagram that you like?

xobs commented 4 years ago

Here's a memory map from the EFM32HG by SiLabs, which is a bit on the advanced side but nicely shows how you'd expand on memory register regions. This is my favourite of the bunch, because of how it visually explains where the "expanded" regions are: image

Various 8051 chips also have handy memory maps, and because they're so small they actually specify bitfields within the memory maps: image

Here's one of the Nintendo 64, which mostly illustrates how you'd have variable-height regions: image

Here's one describing the NES, which is nice because it has two side-by-side memory maps that are independent: image

drom commented 4 years ago

Example with some paper tear effect.

memmap001

xobs commented 4 years ago

map

xobs commented 4 years ago

I spent a lot of time with the i.MX233 which has a bank of otp fuses. Here's the memory map from the reference manual: Screenshot_20191216_135253

Here's the full memory map, which just has the peripherals listed as "Peripheral Space": Screenshot_20191216_135057_com google android apps docs

nopeslide commented 4 years ago

Necessary modification I see:

drom commented 4 years ago

@nopeslide good ideas. I would need some sketches of the ideas you have.

nopeslide commented 4 years ago

@drom I sketched just the index and sub-bitfield idea

Sa_1 _Feb_13:04:07_CET_2020

drom commented 4 years ago

Dm2iry-V4AAnBvV

xobs commented 4 years ago

From the nRF52833 document:

image

Where, apropos of nothing, I found this SPI timing diagram:

image

xobs commented 4 years ago

image

Discovered in the reference manual of an RZ/T1 -- this has four separate memory spaces, and so there are four columns.