Connecting multipliers to increase operation bit width
Yes there is functional block that can be used to create any N*N multiplier, it's called an array multiplier cell and it looks like this:



A non-optimised NN multiplier will use NN array multiplier cells.A circuit that uses these cells to make a 4*4 multiplier can be seen below



where m and p are the numbers being multiplied together and p is the result.

For a detailed explanation of how this circuit works you can search for "array multiplier" on google, there should be lots of information on it, but the basic idea is that at every stage of multiplication we will either be adding zero or m (the multiplicand).What decides if we add m or zero at stage n is the value of n th bit of q, so we use the nth bit of q and an AND gate to multiplex between m and zero at every stage.