I am working on a very large project where we are implementing Functional Coverage. Have tried to implement high level constructs like for loops to generate the coverpoints, and bins within cross cover points, but have not been able to do anything like this in the covergroup or cross. This makes the code very verbose. We will potentially have have tens of thousands of lines of code, much larger than the design itself, to cover all the permutations. This not only is difficult to write, but leaves room for error (lot of lines to check) and would be a nightmare to change for follow-on projects.