In reply to Rajaraman R:
As Dave pointed out, it should be in the same scope as class declaration.
// Code your testbench here
// or browse Examples
class Packet;
rand bit [7:0] length;
rand bit [7:0] payload[];
constraint c_valid {length > 0;
payload.size() == length;}
extern constraint c_external;
extern function void display();
endclass
function void Packet:: display();
$display("length=%d payload=%d",length,payload.size() );
endfunction
constraint Packet::c_external {length == 1;}
// test.sv
program test;
Packet p;
initial begin
p=new();
p.display();
assert(p.randomize());
p.display();
end
endprogram