def do_post_read(self, rw): iter = UVMCallbackIter(self) # for(uvm_reg_cbs cb = iter.last(); cb is not None; cb=iter.prev()) # cb.decode(rw.value) cb = iter.first() while cb is not None: cb.decode(rw.value) cb = iter.next() uvm_do_obj_callbacks(self, UVMRegCbs,'post_read',self,rw) yield self.post_read(rw)
def do_pre_write(self, rw): #uvm_callback_iter#(UVMRegBackdoor, uvm_reg_cbs) iter = new(self) iter = UVMCallbackIter(self) yield self.pre_write(rw) uvm_do_obj_callbacks(self, UVMRegCbs,'pre_write',self,rw) # for(uvm_reg_cbs cb = iter.first(); cb is not None; cb = iter.next()) # cb.encode(rw.value) cb = iter.first() while cb is not None: cb.decode(rw.value) cb = iter.next()
async def do_post_write(self, rw): """ Task: do_post_write Execute the post-write callbacks This method `must` be called as the last statement in a user extension of the <write()> method. Args: rw: """ uvm_do_obj_callbacks(self, UVMRegCbs, 'post_write', self, rw) await self.post_write(rw)
async def do_pre_read(self, rw): """ Task: do_pre_read Execute the pre-read callbacks This method `must` be called as the first statement in a user extension of the <read()> method. Args: rw: """ await self.pre_read(rw) uvm_do_obj_callbacks(self, UVMRegCbs, 'pre_read', self, rw)
async def do_post_read(self, rw): """ Task: do_post_read Execute the post-read callbacks This method `must` be called as the last statement in a user extension of the <read()> method. Args: rw: """ iter = UVMCallbackIter(self) # for(uvm_reg_cbs cb = iter.last(); cb is not None; cb=iter.prev()) # cb.decode(rw.value) cb = iter.first() while cb is not None: cb.decode(rw.value) cb = iter.next() uvm_do_obj_callbacks(self, UVMRegCbs,'post_read',self,rw) await self.post_read(rw)
async def do_pre_write(self, rw): """ Task: do_pre_write Execute the pre-write callbacks This method `must` be called as the first statement in a user extension of the <write()> method. Args: rw: """ #uvm_callback_iter#(UVMRegBackdoor, uvm_reg_cbs) iter = new(self) iter = UVMCallbackIter(self) await self.pre_write(rw) uvm_do_obj_callbacks(self, UVMRegCbs,'pre_write',self,rw) # for(uvm_reg_cbs cb = iter.first(); cb is not None; cb = iter.next()) # cb.encode(rw.value) cb = iter.first() while cb is not None: cb.decode(rw.value) cb = iter.next()
def do_pre_read(self, rw): yield self.pre_read(rw) uvm_do_obj_callbacks(self, UVMRegCbs, 'pre_read', self, rw)
def do_post_write(self, rw): uvm_do_obj_callbacks(self, UVMRegCbs, 'post_write', self, rw) yield self.post_write(rw)