first ne555 creates time base and triggers second one to start each clock cycle (pulse). This way we have constant frequency. Pulse width is controlled by error amplifier which output is connected to CTRL pin of second 555 timer. Higher the error amp output voltage, higher the pulse width. I used bipolar transistors but MOSFETs shall but used to decrease losses. EC has problem with simulation when FETs are used