A: Generation of PWM signals (variable frequency and variable width) at DPins: ~6, ~5; ~9, ~10; ~11, ~3 using TC (Time/Counter) Modules of ATmega328P
(1) In Fig-1, we observe that we can generate PWM signals of desired frequencies and widths at Dpin: ~6, ~5 of Arduino UNO through the programming of TCNT0 (TC0 Module) of the MCU. In this case, we have to write our own codes with strict reference to the data sheets for the bit values of various PWM related registers.
(2) Similarly, we can generate PWM signals of desired frequencies and widths at Dpin: ~9, ~10 of Arduino UNO through the programming of TCNT1 (TC1 Module) of the MCU.
(3) Similarly, we can generate PWM signals of desired frequencies and widths at Dpin: ~11, ~3 of Arduino UNO through the programming of TCNT2 (TC2 Module) of the MCU.

Figure-1: Generation of PWM signals by programming of the TCX modules of ATmega328 MCU
B: Generation of PWM signals (fixed frequency and variable width) at DPins: ~6, ~5; ~9, ~10; ~11, ~3 using Arduino commands
(1) In Fig-2, we observe that we can create PWM signals of about 1000 Hz frequency at Dpin: ~6, ~5 of Arduino UNO by executing these Arduino instructions: analogWrite(6, pulseWidth); and analogWrite(5, pulseWidth);. The width of the PWM signal can be dynamically varied by changing the value of the 8-bit valued 2nd argument (pulseWidth) of the instruction; the argument can assume direct values from 0x00 to 0xFF or from an analog channel after mapping.
(2) Similarly, we can create PWM signals of about 500 Hz frequency at Dpin: ~9, ~10 of Arduino UNO by executing these Arduino instructions: analogWrite(9, pulseWidth); and analogWrite(10, pulseWidth);.
(3) Similarly, we can create PWM signals of about 500 Hz frequency at Dpin: ~11, ~3 of Arduino UNO by executing these Arduino instructions: analogWrite(11, pulseWidth); and analogWrite(3, pulseWidth);.

Figure-2: PWM signals of known frequencies using Arduino commands
C: Generation of PWM Signal at any permissible DPin of UNO of known frequency (50 Hz) and variable width using Servo.h Library Functions for stepper servo SG90 and the like
(1) To lock the shaft of the SG90 stepper servo motor at a desired position (say, 900 from the reference position), we need to maintain a continuous signal of 50 Hz with 2 ms ON-period and 18 ms OFF-period at the Control Pin of the servo. By varying the ON-period, the shaft position can also be changed. (Continuous injection of the PWM signal at the Control Pin of the servo is maintained by the Servo.h Library through interrupts.)
(2) This signal is automatically created and sustained at DPin-X (X = 0 to 19) of the UNO when the following codes are included in the sketch.
#include<Servo.h>
Servo myServo;
myServo.attach(DPin-X); //DPin-X=0 to 19 with which the Control Pin of the servo is connected.
myServo.write(value); //value determines the ON-period of the 50 Hz PWM signal.
BTW: Is Servo.h Library using TCX Module of the MCU for the generation of the PWM signal at the Control Pin of the servo? I have no information about it. Probably, it does not utilize the TCX Module; because, DPin-7 has no relation with any of the TCX Modules; but, we can still drive a servo (SG90) via DPin-7?