So, any documented examples of the synthesizer actually failing to find the number of bits from the * operator, which is the normal industry practice?
How many 18x18 DSP blocks does it take to calculate a signed 35-bit "y <= x^2"?
People who freely throw '*' around seem to be the ones who use "integers" in their pipelines, and so end up with 32-bit operations.
I had a project that needed 996 multiplier blocks, but my FPGA only had 840 DSP slices. What was I to do?
I was working on a video pipeline being squeezed into the smallest part possible (54 DSPs IIRC). We chose to implement some of the matrix operations for color space conversion using explicit fabric, multipliers depending on the simplicity of the constants - some constants that could be implemented at the 150MHz pixel clock speed with the same latency as a DSP block, others couldn't. This freed up DSP blocks for where they were really needed (where neither operands were constants).
Would you implement a x128 operation in a DSP block or the fabric?
Now what if that x128 operation is one of many constants in a multi-tap DSP filter, a filter that can be best implemented using the using DSP block's cascade ports?
Why do you think that the DSP blocks have 50+ page user guides, unlike '*'?