Why is multiplication with a fixed coefficient cheaper in ASIC as compared to variable multiplication?
Would it be faster using an FPGA inferring a DSP Slice?
Why is multiplication with a fixed coefficient cheaper in ASIC as compared to variable multiplication?
Would it be faster using an FPGA inferring a DSP Slice?
A multiplier in an ASIC is often implemented as many layers or a tree of carry save adders, one CSA layer per each possible "1" bit in the multiplier. If the multiplier can be any value, the number of bits in it is more than for any constant multiplier other than all ones. So the number of CSA layers for the constant will be less.
Depending on how an FPGA fabric is implemented, a hard macro in an FPGA (with a custom transistor layout) containing a large number of CSAs can be smaller than a fewer number of routed CSAs implemented with FPGA cells or LUTs. And smaller logic with shorter routing will most often be faster.
And as stated in comments to the question, a constant might not require any register cells at all, unlike a variable multiplier value.