Support memory maps
xobs opened this issue · 11 comments
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 (#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
.
Do you have some visually pleasing example of memory map diagram that you like?
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:
Various 8051 chips also have handy memory maps, and because they're so small they actually specify bitfields within the memory maps:
Here's one of the Nintendo 64, which mostly illustrates how you'd have variable-height regions:
Here's one describing the NES, which is nice because it has two side-by-side memory maps that are independent:
Necessary modification I see:
- left-sided index must be a settable property of lane
- may be autofilled via global option for default compact behaviour
- additional begin & end index needs to be introduced for large adress spaces
- attributes may be used for this, since they are not compatible with the compact mode
- cage rendering must support multiple options
- merged option
- only left/right, starting lane bottom and ending lane top border is drawn. Multiple lanes would be merged to a single thing. Label is only drawn once.
- no tick option
- draw no ticks inside the cage
- crossed out option
- connecting left,bottom corner with right,upper one
- for showing non linear behaviour
- connecting left,bottom corner with right,upper one
- merged option
- some attribute holding a whole new bitfield object
- will be on the right side of prior bitfield
- centered to the lane holding the attribute
- have these "extending" lines from the right corners of cage to the left corners of new bitfield
@nopeslide good ideas. I would need some sketches of the ideas you have.