# How to design a multiplier using only multiplexer?

I am asked to make a multipier that takes a three bits input $$x=(x_1, x_2,x_3)$$ and a control signal $$\s\$$ so that the results will be a hexadecimal 4 bit number $$z=(z_3,z_2,z_1,z_0)$$ such that $$\z = x\$$ when $$\s=0\$$ and $$\z=2x\$$ when $$\s=1\$$

basically i need to multiply $$\x\$$ by $$\2\$$ whenever $$\s\$$ is high

• It's a number; "hexadecimal" is the system that you use to write that number. In your question's context, that isn't even the notation you use (which is binary, not hexadecimal). – Marcus Müller Jan 27 '19 at 13:22

When $$\s\$$ is 0 then the result is $$\z = (z_3, z_2, z_1, z_0) = (0, x_2 ,x_1, x_0)\$$ and when $$\s\$$ is 1 then the result is $$\z = (z_3, z_2, z_1, z_0) = (x_2 ,x_1, x_0, 0)\$$.
So the operation you are basically doing is just shifting input by $$\s\$$ bits (i.e $$\z = x << s\$$). This is because a multiplication by 2 is equal to a 1 bit shift.