`define CLOG2(x) \ (x <= 2) ? 1 : \ (x <= 4) ? 2 : \ (x <= 8) ? 3 : \ (x <= 16) ? 4 : \ (x <= 32) ? 5 : \ (x <= 64) ? 6 : \ .. (x <= 4294967296) ? 32 : \ -1 parameter MAX_VALUE = 42; parameter WIDTH = `CLOG2(FOO_MAX_VALUE);