Can I use this approach?
module top;
int addr[4][4];
function bit uniq (ref addr);
bit uniq_yes,uniq_no;
foreach (addr[i,j])
foreach (addr[a,b])
if !(i==a && j==b)
if (addr[i,j] != addr[a,b]) begin
uniq_yes = 1;
end else begin
uniq_no = 1;
end
return uniq_yes && (~uniq_no);
endfunction
covergroup cg;
in: coverpoint uniq(addr) {
bins uniq = {1};
}
endgroup
endmodule