Soft CPU cores are often used as parts of larger designs, e.g., for managing communications with the rest of the world, or to run the core algorithm and accelerate the execution using custom instructions.