UVM constraint solver

Are constraints solved runtime when the objects are created and randomize function is called? Or they are solved once during build stage and every randomization call is checked against it?

In reply to shafysingh:

As far as the end user is concerned the entire solution space gets formed and one solution gets randomly picked on each call to randomize(). The actual implementation will do a lot to optimize that process, but you need not concern yourself with that.