def connect(src, *destinations, exclude: set=None, fit=False):
assignemnts = []<EOL>if isinstance(src, HObjList):<EOL><INDENT>for dst in destinations:<EOL><INDENT>assert len(src) == len(dst), (src, dst)<EOL><DEDENT>_destinations = [iter(d) for d in destinations]<EOL>for _src in src:<EOL><INDENT>dsts = [next(d) for d in _destinations]<EOL>assignemnts.append(connect(_src, *dsts, exclude=exclude, fit=fit))<EOL><DEDENT><DEDENT>else:<EOL><INDENT>for dst in destinations:<EOL><INDENT>assignemnts.append(_connect(src, dst, exclude, fit))<EOL><DEDENT><DEDENT>return assignemnts<EOL>
Connect src (signals/interfaces/values) to all destinations

:param exclude: interfaces on any level on src or destinations
    which should be excluded from connection process
:param fit: auto fit source width to destination width