Was asked this question recently in an Interview. Come up with a Constraint such that in an NXN square matrix,
row i and column i have unique elements. Has anyone solved it?
In reply to totochan1985:
module top ;
class matrix ;
rand bit [7:0] a[3][3] ;
constraint c_aa {
foreach(a[i,j]){
a[i][j] inside {[1:20]};
}
foreach(a[r,c]){
foreach(a[r1,c1]){
c == c1 && r != r1 -> a[r][c] != a[r1][c1] ;
r == r1 && c != c1 -> a[r][c] != a[r1][c1] ;
}
}
}
endclass
initial begin
matrix m = new ;
m.randomize();
$display("%p",m.a);
end
endmodule
1 Like
In reply to kddholak:
In reply to totochan1985:
module top ;
class matrix ;
rand bit [7:0] a[3][3] ;
constraint c_aa {
foreach(a[i,j]){
a[i][j] inside {[1:20]};
}
foreach(a[r,c]){
foreach(a[r1,c1]){
c == c1 && r != r1 -> a[r][c] != a[r1][c1] ;
r == r1 && c != c1 -> a[r][c] != a[r1][c1] ;
}
}
}
endclass
initial begin
matrix m = new ;
m.randomize();
$display("%p",m.a);
end
endmodule
Can you please explain your solution?