30 bit number with constraints

In reply to DVtrojan:

In reply to Rahulkumar:
In general i am looking to understand how to write constraints for consecutive things? One problem statement i have is following. any idea for below?
100 bits width number.
Write a constraint such a way that,

  1. Number of continuous zeros will be between 2 to 5.
  2. number of continuous ones will be between 2 to 5.


        rand bit [99:0] var1; 
        rand bit [2:0] arr[];

        constraint c1 {
                        arr.size() inside {[20:50]}; 
                        arr.sum with (int'(item)) == 100;
                        foreach(arr[i]) arr[i] inside {[2:5]};
                    }

     function void post_randomize();
            bit n;
            n = $urandom;
            foreach(arr[i])begin
                var1 = var1 << arr[i]; 
                if(n) var1 = var1 | ((n<<arr[i])-1);
                n = ~n;
            end 
     endfunction 

/*
//output : 
arr : '{'h2, 'h5, 'h4, 'h2, 'h2, 'h3, 'h5, 'h5, 'h5, 'h3, 'h5, 'h5, 'h4, 'h3, 'h5, 'h5, 'h3, 'h4, 'h4, 'h5, 'h5, 'h4, 'h3, 'h4, 'h5} 
var1 : 0011111000011001110000011111000001110000011111000011100000111110001111000011111000001111000111100000

arr : '{'h2, 'h5, 'h3, 'h3, 'h5, 'h4, 'h5, 'h4, 'h5, 'h5, 'h2, 'h5, 'h5, 'h5, 'h5, 'h5, 'h3, 'h4, 'h5, 'h5, 'h3, 'h2, 'h5, 'h5} 
var1 : 1100000111000111110000111110000111110000011000001111100000111110000011100001111100000111001111100000

arr : '{'h2, 'h2, 'h2, 'h2, 'h2, 'h2, 'h2, 'h2, 'h5, 'h2, 'h2, 'h2, 'h2, 'h2, 'h2, 'h2, 'h2, 'h3, 'h2, 'h2, 'h2, 'h4, 'h2, 'h2, 'h2, 'h2, 'h3, 'h2, 'h4, 'h2, 'h4, 'h2, 'h2, 'h2, 'h2, 'h4, 'h2, 'h4, 'h3, 'h2, 'h2, 'h2} 
var1 : 0011001100110011000001100110011001100111001100111100110011000110000110000110011001111001111000110011
*/


https://www.linkedin.com/in/patel-rahulkumar/