In reply to Subbi Reddy:
Your example has a lot of unused code( macros, variable and functions). Removing that would make it much easier for people to read.
Ans: The unwanted code was removed to the best of my ability
The variables i_val and j_val are not declared rand, so randomize will not change their values. The constraint i_val == const'(i_val) +1; will always fail.
Ans: Even though given rand getting same result and also i tried to increment the *_val through const'(*_val) and function start_addr_*() but the result is failed
You call the function start_addr_dis in a constraint that always returns the value 4'b0. That will always fail.
Ans: start_addr_dis() is used only to find what values present in *_val;
Your last foreach loop has an implication that is only true for one element: arr_d.
It would help to show the results you are expecting if you want someone to correct your code.