Hi,
class c;
rand bit type_h;
randc bit [15:0] a;
bit pad,hugeen;
constraint length_constraint {if(type_h==1'b1)
{
if((pad==1'b0) && (hugeen==1'b0)) {a inside {[5:6],[9:10]};}
if((pad==1'b0) && (hugeen==1'b1)) {a inside {[5:45],[2031:2035]};}
if((pad==1'b1) && (hugeen==1'b0)) {a inside {[1519:2030]};}
if((pad==1'b1) && (hugeen==1'b1)) {a inside {[2031:2035]};}
}
else
{
if((pad==1'b0) && (hugeen==1'b0)) {a inside {[46:1518]};}
if((pad==1'b0) && (hugeen==1'b1)) {a inside {[46:2030]};}
if((pad==1'b1) && (hugeen==1'b0)) {a inside {[5:1518]};}
if((pad==1'b1) && (hugeen==1'b1)) {a inside {[5:2030]};}
}
}
endclass
class c1;
rand c ch=new();
endclass
c1 c1h;
module top();
initial begin
c1h=new();
c1h.ch.pad=1'b1;c1h.ch.hugeen=1'b1;
repeat(3) begin
assert(c1h.randomize())
$display("class c: %p",c1h.ch);
end
end
endmodule
I have ran the above code with available tools in edaplayground, observed that constraint conflict occuring on randc property with mentor questa sim tool.
Can you please correct me if there are any incorrect constraints.