Confused about registerwidth, accesswidth and "Regmap Width" #216
Unanswered
miguel9554
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I'm new to systemRDL and I'm confused about how to specify "the" width of an address map. Every time I worked with a register map, it consisted of a set of addresses which pointed to N amount of bits (this N being "the" width). I don't come from a CPU background but more from custom ASIC development, so I know I'm probably missing some "cultural" things here.
I'm not understanding how this "regmap width" is determined. For what I've read, I think it is related to
registerwidth
andacceswidth
properties, but it is not 100% clear to me yet.registerwidth
What really confuses me is that each register may have an independent register width. I always understood that a register map had a constant register width. I really do not understand the applications in which different register widths are useful, If I could be pointed to any references it would be great.
accesswidth
On page 66 table 23 of the 2.0 standard it says that
accesswidth
"Specifies the minimum software access width (power of two) operation that may be performed on the register."So apparently, it is useful to determine for example that a 32-bit register is byte addressable. However, I don't see how this is relevant to the implementation, and again I have the same doubt as regarding
registerwidth
: why is this a property settable per-register? Shouldn't it be set at theaddrmap
/regfile
level?Then I found an interesting discussion at #98: particulary in comment #98 (comment), @amykyta3 interpreted from the spec that the
accesswidth
is actually the bus width, which I find much more reasonable, and I understand it coincides with what I called "the" width above. But, being this the case, the question remains: why can we define it multiple times for a single address map?To aid in the confusion, I tested setting
accesswidth
at theaddrmap
level andpeakrdl regblock
resulted in the following errror:I'm probably missing some things here or misunderstanding, so any comments or feedback is appreciated. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions