verilator/include
Krzysztof Bieganski 519792d02b
Fix to commit coroutines immediately on wait statements (#4229)
Event-triggered coroutines live in two stages: 'uncommitted' and 'ready'. First
they land in 'uncommitted', meaning they can't be resumed yet. Only after
coroutines from the 'ready' queue are resumed, the 'uncommitted' ones are moved
to the 'ready' queue, and can be resumed. This is to avoid self-triggering in
situations like waiting for an event immediately after triggering it.

However, there is an issue with `wait` statements. If you have a `wait(b)`, it's
being translated into a loop that awaits a change in `b` as long as `b` is
false. If `b` is false at first, the coroutine is put into the `uncommitted`
queue. If `b` is set to true before it's committed, the coroutine won't get
resumed.

This patch fixes that by immediately committing event controls created from
`wait` statements. That means the coroutine from the example above will get
resumed from now on.
2023-05-25 20:20:44 -04:00
..
gtkwave Update include/gtkwave from upstream 2023-04-01 10:38:47 -04:00
vltstd
.gitignore
verilated_config.h.in
verilated_cov_key.h
verilated_cov.cpp Internals: Use standard 'result' name for return variable. No functional change. 2023-04-08 22:11:28 -04:00
verilated_cov.h
verilated_dpi.cpp
verilated_dpi.h
verilated_fst_c.cpp
verilated_fst_c.h
verilated_fst_sc.cpp
verilated_fst_sc.h Fix systemc namespace issues (#4126) (#4127) 2023-04-17 06:57:29 -03:00
verilated_funcs.h Fix mod/div/round argument side effects 2023-05-07 22:31:31 -04:00
verilated_heavy.h
verilated_imp.h Internal: Update clang_check_annotations conditions (#4134) 2023-04-20 07:02:31 -04:00
verilated_intrinsics.h
verilated_probdist.cpp
verilated_profiler.cpp
verilated_profiler.h
verilated_save.cpp
verilated_save.h
verilated_sc.h Fix systemc namespace issues (#4126) (#4127) 2023-04-17 06:57:29 -03:00
verilated_std.sv Parse process class, and report runtime errors (#3612) 2023-04-08 15:04:42 -04:00
verilated_sym_props.h
verilated_syms.h
verilated_threads.cpp
verilated_threads.h Internals: Fix unbalanced V3LockGuard locking (#4193) 2023-05-13 10:32:33 -04:00
verilated_timing.cpp Fix to commit coroutines immediately on wait statements (#4229) 2023-05-25 20:20:44 -04:00
verilated_timing.h Fix to commit coroutines immediately on wait statements (#4229) 2023-05-25 20:20:44 -04:00
verilated_trace_defs.h
verilated_trace_imp.h Internals: Fix unbalanced V3LockGuard locking (#4193) 2023-05-13 10:32:33 -04:00
verilated_trace.h Internals: Fix unbalanced V3LockGuard locking (#4193) 2023-05-13 10:32:33 -04:00
verilated_types.h Internals: Fix unbalanced V3LockGuard locking (#4193) 2023-05-13 10:32:33 -04:00
verilated_vcd_c.cpp Optimize trigger evaluation 2023-04-24 09:09:36 +02:00
verilated_vcd_c.h
verilated_vcd_sc.cpp
verilated_vcd_sc.h Fix systemc namespace issues (#4126) (#4127) 2023-04-17 06:57:29 -03:00
verilated_vpi.cpp Apply 'make format' 2023-05-02 11:29:45 +00:00
verilated_vpi.h
verilated.cpp Internals: Fix unbalanced V3LockGuard locking (#4193) 2023-05-13 10:32:33 -04:00
verilated.h Internals: Make mutex classes uncopyable. (#4223) 2023-05-25 07:35:14 -04:00
verilated.mk.in Configure for faster C++ linking using 'mold', if it is installed. 2023-05-23 21:26:29 -04:00
verilated.v
verilatedos.h Internals: Add additional clang's thread safety analysis annotations (#4195) 2023-05-12 09:06:36 -04:00