diff --git a/litex/soc/cores/timer.py b/litex/soc/cores/timer.py index 3de9572ef..55e8483db 100644 --- a/litex/soc/cores/timer.py +++ b/litex/soc/cores/timer.py @@ -18,31 +18,34 @@ class Timer(Module, AutoCSR, ModuleDoc): Provides a generic Timer core. The Timer is implemented as a countdown timer that can be used in various modes: - - Polling : Returns current countdown value to software. - - One-Shot: Loads itself and stops when value reaches 0. - - Periodic: (Re-)Loads itself when value reaches 0. - `en` register allows the user to enable/disable the Timer. When the Timer is enabled, it is + - Polling : Returns current countdown value to software + - One-Shot: Loads itself and stops when value reaches ``0`` + - Periodic: (Re-)Loads itself when value reaches ``0`` + + ``en`` register allows the user to enable/disable the Timer. When the Timer is enabled, it is automatically loaded with the value of `load` register. - When the Timer reaches 0, it is automatically reloaded with value of `reload` register. + When the Timer reaches ``0``, it is automatically reloaded with value of `reload` register. - The user can latch the current countdown value by writing to `update_value` register, it will - update `value` register with current countdown value. + The user can latch the current countdown value by writing to ``update_value`` register, it will + update ``value`` register with current countdown value. To use the Timer in One-Shot mode, the user needs to: - - Disable the timer. - - Set the `load` register to the expected duration. - - (Re-)Enable the Timer. + + - Disable the timer + - Set the ``load`` register to the expected duration + - (Re-)Enable the Timer To use the Timer in Periodic mode, the user needs to: - - Disable the Timer. - - Set the `load` register to 0. - - Set the `reload` register to the expected period. - - Enable the Timer. + + - Disable the Timer + - Set the ``load`` register to 0 + - Set the ``reload`` register to the expected period + - Enable the Timer For both modes, the CPU can be advertised by an IRQ that the duration/period has elapsed. (The - CPU can also do software polling with `update_value` and `value` to know the elapsed duration) + CPU can also do software polling with ``update_value`` and ``value`` to know the elapsed duration) """ def __init__(self, width=32): self._load = CSRStorage(width, description="""Load value when Timer is (re-)enabled.""" +