In reply to smukerji:
The expression in the constraints can take only one operator at a time.
for example, if you want pkt.a==pkt.b==pkt.c==pkt.d then I hope the following solution works.
module tb;
class packet;
rand bit [4:0] a,b,c,d;
endclass
initial
begin
packet pkt;
pkt = new();
if(pkt.randomize() with {pkt.a == pkt.b, pkt.b == pkt.c;})
$display(“a is %h, b is %h, c is %h,d is %h \n”, pkt.a, pkt.b, pkt.c, pkt.d);
if(pkt.randomize() with {pkt.a == pkt.b, pkt.b == pkt.c, pkt.c == pkt.d;})
$display(“a is %h, b is %h, c is %h,d is %h \n”, pkt.a, pkt.b, pkt.c, pkt.d);
end
endmodule
Please correct me if I am wrong.