Constraint in a 2d pixel matrix

In reply to srshan_rocks:

another solution can be as follows:

module abc;
  
  class pixel;
    rand bit a [3][3];
    
    constraint c1 {
      
      foreach(a[i,j]){
        if(j>0)   a[i][j] == 0 -> a[i][j-1]   == 1;
        if(j<3)  a[i][j] == 0 -> a[i][j+1]   == 1;
        
        if(i>0)  a[i][j] == 0 -> a[i-1][j]   == 1;  
        if(i<3)  a[i][j] == 0 -> a[i+1][j]   == 1;
        
        if(i > 0 && j > 0)  a[i][j] == 0 -> a[i-1][j-1] == 1;  
        if(i < 3 && j < 3)  a[i][j] == 0 -> a[i+1][j+1] == 1;
        
        if(i < 3 && j > 0)  a[i][j] == 0 -> a[i+1][j-1] == 1;  
        if(i > 0 && j < 3)  a[i][j] == 0 -> a[i-1][j+1] == 1;
      }
    }
  endclass
 
  initial begin
    pixel p1  = new();
    p1.randomize();
    foreach(p1.a[i]) begin
      $display(p1.a[i]);
    end
  end 
          
endmodule