or in verilog2001, a localparam.
verilog offers 3 "constant" types:
`define MY_CONST 123
This replaces `MY_CONST with 123. It generally isn't preferred, as the value of `MY_CONST can persist between files based on compile order. This can lead to unexpected behavior.
parameter MY_CONST = 123;
This creates a constant similar to VHDL's generic. This value can be overridden at instantiation using #(.MY_CONST(456))
localparam MY_CONST = 123;
This creates a constant that cannot be changed. Using localparam is useful because it makes it clear that the parameter is not meant to be changed at instantiation.