ALU implementation in Verilog: how to handle negative numbers?
Verilog 2001 added many extensions for signed arithmetic, including signed ports. One of the rules for arithmetic operations is if all operands are signed, then signed arithmetic will be performed. 

Source: http://www.sutherland-hdl.com/online_verilog_ref_guide/verilog_2001_ref_guide.pdf