Hi Arpkum,
If any one of your operand is a constant one then there is an easy way like this:
Say if one of your multiplier operand is 11, then 11 can be represents in the power of 2 as 11 = 8 + 2 + 1 = 2^3 + 2^1 + 2^0
And if A is the other operand
Then A*11 = A*8 + A*2 + A = A*(2^3) + A*(2^1) + A*(2^0) = A with padding 3 zero's on LSB + A with padding 1 zero's on LSB + A itself
in Verilog {A, 3'b0} + {A, 1'b0} + A
in VHDL A & "000" + A & "0" + A
- - - Updated - - -
If both the operands are unknown then i think you should have a mechanism to represents any one of the operator in the power of 2 and you need to perform the above operation.