The basic goal of the project is to build a pipelined version of a shift and add multiplier. The specifications were to multiply 16 bit numbers and obtain a 32 bit product. I did this by creating a basic core process that accepts two 16 bit binary numbers and shifts them. It also adds to a running sum if the lowest bit of one, the shifted multiplier, is a one. It is meant to emulate the partial product method of multiplying. I used variables in the process because I needed them to change instantaneously. From there, I strung connected 16 of these in series, for the 16 times this operation would have to be done.
It seems to simulate well behaviorally, but not in the post place and route model. Also, I've only tested using a steady multiplicand and multiplier, as opposed the varying inputs my professor wants, to make it a true pipeline design.
I didn't draw out a circuit because it seemed less helpful for this kind of design, although I'm regretting that a bit now. With using signals as opposed to variables, would I have end up using more numerous, but discrete and specific hardware blocks?