dcm fpga
You can find instantiation template in the xilinx library guide. Read also XAPP174.
There are two primitives in spartan2 CLKDLL and CLKDLLHF. With the CLKDLL you can perform multiplication by 2 and division by 1.5, 2, 2.5, 3, 4, 5, 8 and 16, input up to 100MHz for -6 version. CLKDLLHF will run up to 200MHz, but you cannot make multiplication with it. Using the divider from DLL will spare some logic, this would be one advantage. If you want to use the DLL with a source other than a BUFG or IBUFG, just make sure you put this into environment variables: XIL_MAP_ALLOW_ANY_DLL_INPUT=TRUE
DCM is a primitive only in spartan 3 and virtex II series, not in Spartan 2.
/pisoiu