Sequential Design

Self-Reloading Counter

A counter that automatically reloads a configured value upon reaching zero or a terminal count.

Detailed Explanation

Self-reloading counters generate periodic events. When the count reaches the terminal value, it loads a programmable reload value and continues. This creates interrupts at fixed intervals for timers, or generates waveforms at specific frequencies.

The reload value determines the period: period = (reload_value + 1) × clock_period. Double-buffered reload values allow changing the period without glitches during the current period.