Пример #1
0
    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

            self.cbhdl = simulator.register_value_change_callback(self.signal.
                                                                  _handle,
                                                                  _check,
                                                                  self)
            if self.cbhdl is None:
                raise_error(self, "Unable set up %s Trigger" % (str(self)))

        self.cbhdl = simulator.register_value_change_callback(self.signal.
                                                              _handle,
                                                              _check,
                                                              self)
        if self.cbhdl is None:
            raise_error(self, "Unable set up %s Trigger" % (str(self)))
        Trigger.prime(self)
Пример #2
0
 def prime(self, callback):
     """Register notification of a value change via a callback"""
     if self.cbhdl is None:
         self.cbhdl = simulator.register_value_change_callback(self.signal._handle, callback, 3, self)
         if self.cbhdl is None:
             raise_error(self, "Unable set up %s Trigger" % (str(self)))
     Trigger.prime(self)
Пример #3
0
 def prime(self, callback):
     if self.cbhdl is None:
         self.cbhdl = simulator.register_value_change_callback(
             self.signal._handle, callback, self._rising, self)
         if self.cbhdl is None:
             raise_error(self, "Unable set up %s Trigger" % (str(self)))
     Trigger.prime(self)
Пример #4
0
    def prime(self, callback):
        """FIXME: document"""
        self._callback = callback

        def _check(obj):
            self.unprime()

            if self.signal.value:
                self.num_cycles -= 1

                if self.num_cycles <= 0:
                    self._callback(self)
                    return

            self.cbhdl = simulator.register_value_change_callback(self.signal.
                                                                  _handle,
                                                                  _check,
                                                                  self._rising,
                                                                  self)
            if self.cbhdl == 0:
                raise_error(self, "Unable set up %s Trigger" % (str(self)))

        self.cbhdl = simulator.register_value_change_callback(self.signal.
                                                              _handle,
                                                              _check,
                                                              self._rising,
                                                              self)
        if self.cbhdl == 0:
            raise_error(self, "Unable set up %s Trigger" % (str(self)))
        Trigger.prime(self)
Пример #5
0
 def prime(self, callback):
     """Register notification of a value change via a callback"""
     if self.cbhdl is None:
         self.cbhdl = simulator.register_value_change_callback(
             self.signal._handle, callback, 3, self)
         if self.cbhdl is None:
             raise_error(self, "Unable set up %s Trigger" % (str(self)))
     Trigger.prime(self)
Пример #6
0
 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)))
Пример #7
0
 def prime(self, callback):
     """Register notification of a value change via a callback"""
     if self.cbhdl == 0:
         self.cbhdl = simulator.register_value_change_callback(
             self.signal._handle, callback,
             type(self)._edge_type, self)
         if self.cbhdl == 0:
             raise_error(self, "Unable set up %s Trigger" % (str(self)))
     super(_EdgeBase, self).prime()
Пример #8
0
 def prime(self, callback):
     """Register notification of a value change via a callback"""
     if self.cbhdl == 0:
         self.cbhdl = simulator.register_value_change_callback(
             self.signal._handle, callback, type(self)._edge_type, self
         )
         if self.cbhdl == 0:
             raise_error(self, "Unable set up %s Trigger" % (str(self)))
     super(_EdgeBase, self).prime()
Пример #9
0
        def _check(obj):
            if self.signal.value:
                self.num_cycles -= 1

                if self.num_cycles <= 0:
                    self._callback(self)
                    return

            if simulator.register_value_change_callback(self.cbhdl, self.signal._handle, _check, self):
                raise_error(self, "Unable set up %s Trigger" % (str(self)))
Пример #10
0
 def prime(self, callback):
     if self.cbhdl is None:
         self.cbhdl = simulator.register_value_change_callback(self.signal.
                                                               _handle,
                                                               callback,
                                                               self._rising,
                                                               self)
         if self.cbhdl is None:
             raise_error(self, "Unable set up %s Trigger" % (str(self)))
     Trigger.prime(self)
Пример #11
0
    def prime(self, callback):
        Trigger.prime(self)
        self._callback = callback

        def _check(obj):
            if self.signal.value:
                self._callback(self)
            else:
                simulator.reenable_callback(self.cbhdl)

        if simulator.register_value_change_callback(self.cbhdl, self.signal._handle, _check, self):
            raise_error(self, "Unable set up %s Trigger" % (str(self)))
Пример #12
0
        def _check(obj):
            self.unprime()

            if self.signal.value:
                self.num_cycles -= 1

                if self.num_cycles <= 0:
                    self._callback(self)
                    return

            self.cbhdl = simulator.register_value_change_callback(
                self.signal._handle, _check, self._rising, self)
            if self.cbhdl == 0:
                raise_error(self, "Unable set up %s Trigger" % (str(self)))
Пример #13
0
    def prime(self, callback):
        Trigger.prime(self)
        self._callback = callback

        def _check(obj):
            condition = self.signal.value == self._rising
            if condition:
                self._callback(self)
            else:
                #Riviera doesn't seem to like re-using a callback handle?
                simulator.reenable_callback(self.cbhdl)

        if simulator.register_value_change_callback(self.cbhdl, self.signal._handle, _check, self):
            raise_error(self, "Unable set up %s Trigger" % (str(self)))