Creating multiple handles for covergroup in new constructor

When you have an embedded covergroup (declare a covergroup inside the class), the covergroup object and class object are merged into a single object. That is why the cg constructor has to be inside the class constructor, and you are not allowed to declare multiple instances of an embedded covergroup.

If you really want multiple covergroup instances for a single class object, you will have to declare the covergroup outside the class, and pass all the coverpoint data through arguments to the covergroup’s constructor.