A "shift and add" multiplier works as follows: given two n bit numbers X and Y , look at the LSB of X: if it is one, then add Y to the running sum. If it is zero, then don't do anything (since multiplying by 0 is 0!). Next, shift X to the right by 1 and Y to the left by 1. And repeat until done (when is that?). Design a nite state machine to control such a multiplier. First think about the data path you'll need: what are the control inputs to the FSM? What is connected to what? What kind of control outputs do you need? Then either construct a transition table or use a graph to derive one.