@@ -47,6 +47,10 @@ def __init__(self, codes):
47
47
self .NUM_REG = NumberRegField ("NumReg" , 100 , format = ">Q" , size = 8 , ro = False )
48
48
self .SCALE_NUM_REG = NumberRegField ("ScaleNumReg" , 120 , format = ">i" , size = 4 , scale = 100 , ro = False )
49
49
self .FIXED_NUM_REG = FixedNumberRegField ("FixedNumReg" , 130 , 8 , format = ">f" , size = 4 , ro = False )
50
+ self .NUM_REG_WITH_BIT = NumberRegField ("NumRegWithBit" , 140 ,
51
+ RegBitField ("NumRegBit" , bitpos = 20 , ro = False ),
52
+ format = "<I" , size = 4 , ro = False
53
+ )
50
54
self .STRING_REG = StringRegField ("StringReg" , 12 , size = 15 )
51
55
self .HEX_REG = HexRegField ("HexReg" , 30 , size = 3 )
52
56
self .REG_GROUP = RegGroupField ("RegGroup" ,
@@ -168,6 +172,10 @@ def test_encode_decode(self):
168
172
assert field .decode (field .encode (True , bytearray (b'\x00 ' )))
169
173
assert not field .decode (field .encode (False , bytearray (b'\x00 ' )))
170
174
175
+ field = mem_map .get_field ("NumRegBit" )
176
+ assert field .decode (field .encode (True , bytearray (b'\x00 ' )))
177
+ assert not field .decode (field .encode (False , bytearray (b'\xFF ' )))
178
+
171
179
class TestRegField (object ):
172
180
def test_offset (self ):
173
181
field = mem_map .get_field ("Field0" )
0 commit comments