hwt/hdl/ifContainter.py
def _discover_sensitivity(self, seen: set) -> None:
        """
        Doc on parent class :meth:`HdlStatement._discover_sensitivity`
        """
        assert self._sensitivity is None, self
        ctx = self._sensitivity = SensitivityCtx()

        self._discover_sensitivity_sig(self.cond, seen, ctx)
        if ctx.contains_ev_dependency:
            return

        for stm in self.ifTrue:
            stm._discover_sensitivity(seen)
            ctx.extend(stm._sensitivity)

        # elifs
        for cond, stms in self.elIfs:
            if ctx.contains_ev_dependency:
                break

            self._discover_sensitivity_sig(cond, seen, ctx)
            if ctx.contains_ev_dependency:
                break

            for stm in stms:
                if ctx.contains_ev_dependency:
                    break

                stm._discover_sensitivity(seen)
                ctx.extend(stm._sensitivity)

        if not ctx.contains_ev_dependency and self.ifFalse:
            # else
            for stm in self.ifFalse:
                stm._discover_sensitivity(seen)
                ctx.extend(stm._sensitivity)

        else:
            assert not self.ifFalse, "can not negate event"
def _discover_sensitivity(self, seen: set) -> None:
        """
        Doc on parent class :meth:`HdlStatement._discover_sensitivity`
        """
        assert self._sensitivity is None, self
        ctx = self._sensitivity = SensitivityCtx()

        self._discover_sensitivity_sig(self.cond, seen, ctx)
        if ctx.contains_ev_dependency:
            return

        for stm in self.ifTrue:
            stm._discover_sensitivity(seen)
            ctx.extend(stm._sensitivity)

        # elifs
        for cond, stms in self.elIfs:
            if ctx.contains_ev_dependency:
                break

            self._discover_sensitivity_sig(cond, seen, ctx)
            if ctx.contains_ev_dependency:
                break

            for stm in stms:
                if ctx.contains_ev_dependency:
                    break

                stm._discover_sensitivity(seen)
                ctx.extend(stm._sensitivity)

        if not ctx.contains_ev_dependency and self.ifFalse:
            # else
            for stm in self.ifFalse:
                stm._discover_sensitivity(seen)
                ctx.extend(stm._sensitivity)

        else:
            assert not self.ifFalse, "can not negate event"
def _discover_sensitivity ( self , seen : set ) -> None : assert self . _sensitivity is None , self ctx = self . _sensitivity = SensitivityCtx ( ) self . _discover_sensitivity_sig ( self . cond , seen , ctx ) if ctx . contains_ev_dependency : return for stm in self . ifTrue : stm . _discover_sensitivity ( seen ) ctx . extend ( stm . _sensitivity ) # elifs for cond , stms in self . elIfs : if ctx . contains_ev_dependency : break self . _discover_sensitivity_sig ( cond , seen , ctx ) if ctx . contains_ev_dependency : break for stm in stms : if ctx . contains_ev_dependency : break stm . _discover_sensitivity ( seen ) ctx . extend ( stm . _sensitivity ) if not ctx . contains_ev_dependency and self . ifFalse : # else for stm in self . ifFalse : stm . _discover_sensitivity ( seen ) ctx . extend ( stm . _sensitivity ) else : assert not self . ifFalse , "can not negate event"
Doc on parent class :meth:`HdlStatement._discover_sensitivity`
Doc on parent class : meth : HdlStatement . _discover_sensitivity