def _check(obj): if self.signal.value: self._callback(self) else: simulator.deregister_callback(self.cbhdl) self.cbhdl = simulator.create_callback(self) if simulator.register_value_change_callback(self.cbhdl, self.signal._handle, _check, self): raise_error(self, "Unable set up %s Trigger" % (str(self)))
def __init__(self): Trigger.__init__(self) # Required to ensure documentation can build if simulator is not None: self.cbhdl = simulator.create_callback(self) else: self.cbhdl = None
def prime(self, callback): self._callback = callback def _check(obj): if self.signal.value: self.num_cycles -= 1 if self.num_cycles <= 0: self._callback(self) return simulator.deregister_callback(self.cbhdl) self.cbhdl = simulator.create_callback(self) if simulator.register_value_change_callback(self.cbhdl, self.signal._handle, _check, self): raise_error(self, "Unable set up %s Trigger" % (str(self))) self.cbhdl = simulator.create_callback(self) if simulator.register_value_change_callback(self.cbhdl, self.signal._handle, _check, self): raise_error(self, "Unable set up %s Trigger" % (str(self)))
def prime(self, callback): self.cbhdl = simulator.create_callback(self) simulator.register_nextstep_callback(self.cbhdl, callback, self)
def prime(self, callback): self.cbhdl = simulator.create_callback(self) if simulator.register_rwsynch_callback(self.cbhdl, callback, self): raise_error(self, "Unable set up %s Trigger" % (str(self)))
def prime(self, callback): """Register notification of a value change via a callback""" self.cbhdl = simulator.create_callback(self) if simulator.register_value_change_callback(self.cbhdl, self.signal._handle, callback, self): raise_error(self, "Unable set up %s Trigger" % (str(self)))
def prime(self, callback): """Register for a timed callback""" self.cbhdl = simulator.create_callback(self) if simulator.register_timed_callback(self.cbhdl, self.time_ps, callback, self): raise_error(self, "Unable set up %s Trigger" % (str(self)))