Pulse generator with variable duty cycle
Pulse generator with variable duty cycle is a circuit that generates a rectangular signal whose duty cycle can be controlled by a given value as an input. This circuit can be described very simply using a counter in a system similar to the one used in the frequency divider. In this case, the counter will no longer load with the value 0 once it reaches the limit, but will continue to count and become 0 once it reaches the maximum value as any ordinary counter. In this case, the output is 1 when the counter value is lower than the limit, and 0 is greater than or equal to, as shown in the figure below. It is noted that the output signal frequency is fixed and depends exclusively on the number of bits of the counter.
Interface
The interface of the generator module is identical to that of the frequency divider:
- clock signal and reset signal as inputs (being a sequential circuit);
- limit value given as input (the number of bits for this input is specified taking into account the frequency and accuracy with which the output signal is to be generated);
- variable duty cycle signal, given as output of the circuit.
Implementation
The implementation of this circuit is done using an internal register for counting (with bit size equal to the one of the limit value port), and a comparator (combinational circuit) that will generate the output signal. The counting register is continually incremented and the output is given by the comparison between its value and the limit value.