PLL and DLL
A DLL is a delay locked loop. Rather than adjust the phase until the error is zero, the output signal is delay with a tapped delay line and the taps are adjusted until the delay error is minimal. Zero error cannot usually be obtained because of the coarseness of the delay steps.
On some DLL systems, the output jitter is worse because the system keeps switching between a tap that is gives too much delay and the adjacent tap that gives too little delay. Other DLLs, sense this jumping back and forth and just pick one or the other.
FPGA vendors can include more DLLs than PLLs because the circuitry is smaller.