AMAP and register width and mask value
I see for example in .../externals/gbt-fpga/cbm/GBT-SC/gbtsc_top.xml
<creg name="tx_data" stype="t_ic_tx_data" width="8" stb="1" />
<sreg name="rx_data" stype="t_ic_rx_data" width="8" ack="1" />
and in the amap file (still old style)
<node id="tx_data" address="0x00000004" permission="rw" mask="0x000001ff"/>
<node id="rx_data" address="0x00000007" permission="r" mask="0x000001ff"/>
An 8 bit register should have a mask of 0x000000ff
and not 0x000001ff
.
The culprit is I assume in wb_block.py#L912
if self.width < 32:
maskval = (1 << (self.width + 1)) - 1
which imho should be
if self.width < 32:
maskval = (1 << self.width) - 1
Of relevance for @w.zabolotny_AT_elka.pw.edu.pl, @i.froehlich .