File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -281,6 +281,38 @@ def changes(self) -> list:
281281 def __str__ (self ):
282282 return "{}" .format ([str (r ) for r in self .regs ])
283283
284+ class SingleRegister (object ):
285+ def __init__ (self , bits : int , id : str ):
286+ self .bits = bits
287+ self .reg = Register (bits )
288+ self .reg_update = None
289+ self .id = id
290+
291+ def randomize (self ):
292+ self .reg .randomize ()
293+
294+ def update (self , value ):
295+ reg = Register (self .bits )
296+ reg .set (value )
297+ self .reg_update = TraceRegister (self .id , reg )
298+
299+ def get (self ):
300+ return self .reg
301+
302+ def commit (self ):
303+ if self .reg_update :
304+ self .reg .set (self .reg_update .value )
305+ self .reg_update = None
306+
307+ def changes (self ) -> list :
308+ return [self .reg_update ] if self .reg_update else []
309+
310+ def __int__ (self ):
311+ return self .reg .value
312+
313+ def __iadd__ (self , other ):
314+ self .update (self .reg .value + other )
315+ return self .reg
284316
285317class Trace (object ):
286318 pass
You can’t perform that action at this time.
0 commit comments