def _simUnitVcd(simModel, stimulFunctions, outputFile, until):
    """
    :param unit: interface level unit to simulate
    :param stimulFunctions: iterable of function(env)
        (simpy environment) which are driving the simulation
    :param outputFile: file where vcd will be dumped
    :param time: endtime of simulation, time units are defined in HdlSimulator
    :return: hdl simulator object
    """
    sim = HdlSimulator()

    # configure simulator to log in vcd
    sim.config = VcdHdlSimConfig(outputFile)

    # run simulation, stimul processes are register after initial
    # initialization
    sim.simUnit(simModel, until=until, extraProcesses=stimulFunctions)
    return sim
:param unit: interface level unit to simulate
    :param stimulFunctions: iterable of function(env)
        (simpy environment) which are driving the simulation
    :param outputFile: file where vcd will be dumped
    :param time: endtime of simulation, time units are defined in HdlSimulator
    :return: hdl simulator object