The Phase Shifted PWM (PS-PWM) system generates phase-shifted PWM signals used for controlling power converters. The main module orchestrates the process by integrating various submodules. It starts by receiving and assigning inputs, then uses a shift register to process serial data, which determines control signals for selecting clock sources and phase-shifted triangular waveforms. These waveforms are generated by dedicated modules for different phases (0, 90, 180, and 270 degrees). The system selects the appropriate phase for two channels and compares these waveforms with input data to produce raw PWM signals. Dead time generators add configurable delays to these signals to prevent transistor cross-conduction. Finally, an output multiplexer and enable control ensure the PWM signals are correctly outputted based on enable signals, producing the desired PS-PWM output.
clk
input.rst_n
, CLK_SR
, and data_SR
.ui_in
and uio_in
to signal sources like DIP switches or a microcontroller.rst_n
to low to reset the module.rst_n
to high to release the reset.data_SR
to the first bit of your 11-bit data (1
or 0
).CLK_SR
high, then low to clock in the bit.11'b00011001101
. Sequentially input each bit representing dt[0] to dt[4], SELECTOR_SIGNAL_GENERATOR_1[0], SELECTOR_SIGNAL_GENERATOR_1[1], SELECTOR_SIGNAL_GENERATOR_2[0], SELECTOR_SIGNAL_GENERATOR_2[1], OUTPUT_SELECTOR_EXTERNAL[0], and OUTPUT_SELECTOR_EXTERNAL[1] into the data_SR input. For each bit, you set data_SR to the corresponding value (1 or 0) and toggle CLK_SR high, then low, to clock in the bit. This sequential shifting ensures that each data_out corresponds to the specified comment name within the Shift_Register module.).ui_in
and uio_in
(example, 20% duty cycle)ui_in
to 11010000
to set d1 = 13
(d1 and d2 are 6 bit length, so 13/64 is about 20%).uio_in[3:0]
to 1101
to set part of d2 = 13
.uo_out
signals.uo_out[0]
(PMOS1), uo_out[1]
(NMOS2), uo_out[2]
(PMOS2), uo_out[3]
(NMOS1), and the clock signal on uo_out[4]
.There is no need of external hardware.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | d1[0] | PMOS1 | d2[2] |
1 | d1[1] | NMOS2 | d2[3] |
2 | d1[2] | PMOS2 | d2[4] |
3 | d1[3] | NMOS1 | d2[5] |
4 | d1[4] | clk_in | CLK_SR |
5 | d1[5] | Data_SR | |
6 | d2[0] | CLK_EXT | |
7 | d2[1] |