コード例 #1
0
ファイル: triggers.py プロジェクト: udog14/cocotb
    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
ファイル: triggers.py プロジェクト: enchanter/cocotb
 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
ファイル: triggers.py プロジェクト: TC01/cocotb
    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
ファイル: triggers.py プロジェクト: darylz/cocotb
 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
ファイル: triggers.py プロジェクト: elgorwi/cocotb
 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
ファイル: triggers.py プロジェクト: FinnG/cocotb
        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
ファイル: triggers.py プロジェクト: cpehle/cocotb
 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
ファイル: triggers.py プロジェクト: SnookEE/cocotb
    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
ファイル: triggers.py プロジェクト: FinnG/cocotb
    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)))