I have tried to design a Booth multiplier and it runs well in all compilers including:
Modelsim,Verilogger Extreame,Aldec Active Hdl & Xilinx\'s Isim......<
Here are some tips:
c[5:1] is a latch because it is not initialized in the if(a==5'b10000) branch. d is not defined in if(a==5'b10000) and could be a potential latch depending on the synthesizer optimization capabilities.e is not defined in if(b==5'b10000) and could be a potential latch like d.disable for code to be synthesized. Use if-else statements instead.
if(count*==3'b101) block)while loop is having problems, try a for loop.