hwt/synthesizer/interfaceLevel/interfaceUtils/utils.py
def packIntf(intf, masterDirEqTo=DIRECTION.OUT, exclude=None):
    """
    Concatenate all signals to one big signal, recursively

    :param masterDirEqTo: only signals with this direction are packed
    :param exclude: sequence of signals/interfaces to exclude
    """
    if not intf._interfaces:
        if intf._masterDir == masterDirEqTo:
            return intf._sig
        return None

    res = None
    for i in intf._interfaces:
        if exclude is not None and i in exclude:
            continue

        if i._interfaces:
            if i._masterDir == DIRECTION.IN:
                d = DIRECTION.opposite(masterDirEqTo)
            else:
                d = masterDirEqTo
            s = i._pack(d, exclude=exclude)
        else:
            if i._masterDir == masterDirEqTo:
                s = i._sig
            else:
                s = None

        if s is not None:
            if res is None:
                res = s
            else:
                res = res._concat(s)

    return res
def packIntf(intf, masterDirEqTo=DIRECTION.OUT, exclude=None):
    if not intf._interfaces:
        if intf._masterDir == masterDirEqTo:
            return intf._sig
        return None

    res = None
    for i in intf._interfaces:
        if exclude is not None and i in exclude:
            continue

        if i._interfaces:
            if i._masterDir == DIRECTION.IN:
                d = DIRECTION.opposite(masterDirEqTo)
            else:
                d = masterDirEqTo
            s = i._pack(d, exclude=exclude)
        else:
            if i._masterDir == masterDirEqTo:
                s = i._sig
            else:
                s = None

        if s is not None:
            if res is None:
                res = s
            else:
                res = res._concat(s)

    return res
def packIntf ( intf , masterDirEqTo = DIRECTION . OUT , exclude = None ) : if not intf . _interfaces : if intf . _masterDir == masterDirEqTo : return intf . _sig return None res = None for i in intf . _interfaces : if exclude is not None and i in exclude : continue if i . _interfaces : if i . _masterDir == DIRECTION . IN : d = DIRECTION . opposite ( masterDirEqTo ) else : d = masterDirEqTo s = i . _pack ( d , exclude = exclude ) else : if i . _masterDir == masterDirEqTo : s = i . _sig else : s = None if s is not None : if res is None : res = s else : res = res . _concat ( s ) return res
Concatenate all signals to one big signal, recursively

    :param masterDirEqTo: only signals with this direction are packed
    :param exclude: sequence of signals/interfaces to exclude
Concatenate all signals to one big signal recursively