Don'tIf you need a guarantee that the design will not change with a future tool version, then don't use an IP core for athis sort of relatively simple function like an accumulator or multiplier, unless you are using floating pointfunctionality. You can quite easily instantiate one or more DSP slices with a fixed configuration that will not change between tool versions. The DSP slice user guide has everything you need to know. Depending on your use case, you might be able to infer an optimal implementation using a simple x <= a * b;
You might find that in your application, you can time domain multiplex the inputs and mode for one set of DSP slices in order to achieve the same functionality with fewer resources; for example, do you need to multiply and accumulate at the same time? The IP core can never be aware of this.
If your primary goal is to get a design working quickly, then the IP cores will give an effective result.