Ways to reduce simulation time?

How can we reduce simulation time, in general?
You can list out things like-

  1. Writing better constraints, for example, whatever can be done in post_randomize(), avoid it in do via constraints.

This is an excellent interview question, but there are infinite number of things you could do.

The best answer to this is coming up with a plan to figure out which things have the most impact. That would include learning how to profile the performance of your design to show which areas are consuming the most amount of time, or hot spots. Another thing you can do is rank your tests to see which ones are collecting the best code and functional coverage in the shortest amount of time, and eliminate tests that are duplicating effort.