def METHOD_NAME(tmpdir: SourceType.Directory) -> SourceType.Stream:
    """
    Simulates compiled icarus verilog program.
    """
    cycle_limit = config["stages", "verilog", "cycle_limit"]
    return shell(
        [
            f"{tmpdir.name}/{self.object_name}",
            f"+DATA={tmpdir.name}",
            f"+CYCLE_LIMIT={str(cycle_limit)}",
            f"+OUT={tmpdir.name}/output.vcd",
            f"+NOTRACE={0 if self.is_vcd else 1}",
        ]
    )