I guess you cannt specifically declare signed or unsigned integer as in C language. THe value will be stored as signed when you declare integer. there is no difference between reg [31:0] and integer for synthesis.
the difference between signed reg 32 bit and integer...
I was told that for integer, if the value reach the maximum, e.g. 32'h7FFF_FFFF, no matter what value u add in, the value will remain as 32'h7FFF_FFFF.
but for signed reg, if u add 1 for 32'h7FFF_FFFF, the value will go to 32'h0000_0000.
I have no time to verify that. Tell me if you have verified that