amaranth/nmigen/sim
whitequark 9bc42cb8c5 sim._pyclock: new type of process.
The overhead of coroutine processes is fairly high. A clock driver
implemented through a coroutine process is mostly overhead. This was
partially addressed in commit 2398b792 by microoptimizing yielding.

This commit eliminates the coroutine process overhead completely by
introducing dedicated clock processes. It also simplifies the logic
to a simple toggle.

This change improves runtime by about 12% on Minerva SRAM SoC.
2020-08-27 07:56:47 +00:00
..
__init__.py back.pysim: extract simulator commands to sim._cmds. NFC. 2020-07-08 05:42:33 +00:00
_cmds.py back.pysim: extract simulator commands to sim._cmds. NFC. 2020-07-08 05:42:33 +00:00
_core.py sim: simplify. NFC. 2020-07-08 17:31:53 +00:00
_pyclock.py sim._pyclock: new type of process. 2020-08-27 07:56:47 +00:00
_pycoro.py sim._pycoro: make src_loc() more robust. 2020-08-27 07:11:14 +00:00
_pyrtl.py sim._pyrtl: optimize uses of reflexive operators. 2020-08-26 13:26:58 +00:00
pysim.py sim._pyclock: new type of process. 2020-08-27 07:56:47 +00:00