I have a project where I am developing a basic processing core on a FPGA from logic gates. So of course I have an ALU that I am building out of logic gates. I have no issues with the rest of the ALU functions: add, sub, shift left/right, OR, CMP etc.
However I require to multiply two signed binary numbers using twos complement which may be negative or positive depending on previous calculations. Note I am using 32 bit architecture.
If the numbers were not negative I would have no problem as I could keep adding (e.g. A*B == A+A+A... B times) or using shift and add method. Also I don't care about processing speed as speed isn't a necessity in this project.
What is the best method for me to look at using when multiplying signed numbers?