Design a signed fixed-point comparator with epsilon tolerance.

Module name: fp_cmp
Parameters:
  - WIDTH = 24        // Total bit width
  - FRAC  = 8         // Fractional bits

Ports:
  - input  signed [WIDTH-1:0] a
  - input  signed [WIDTH-1:0] b
  - input  signed [WIDTH-1:0] epsilon   // Non-negative tolerance value
  - output                    gt        // a > b + epsilon
  - output                    lt        // a < b - epsilon
  - output                    eq        // |a - b| <= epsilon

Functional specification:
  - Compare two signed fixed-point numbers with configurable epsilon tolerance
  - eq asserts when the absolute difference |a - b| <= epsilon
  - gt asserts when a > b + epsilon (a is clearly greater)
  - lt asserts when a < b - epsilon (a is clearly less)
  - Exactly one of gt, lt, eq must be asserted at any time
  - Combinational (no clock)
