How to stop a simulation in a controlled way

In reply to Gollem:

In reply to dave_59:
I can not afford a UVM testbench which only is understood by one employee or a contractor.

Except what you are doing is worse than that; it will only be understood one person—you.

There is a lot to the UVM, but I suggest starting with three basic areas

  • uvm_component
  • - build, connect, run, report_phases
    - end-of-test: objections and timeouts
    - hierarchy (test, agent, driver, monitor, scoreboard)

  • report macros: severity, verbosity
  • uvm_config_db

You could adopt any one of these three topics independently, but they are much more powerful when put together. This all documented, and there is plenty of tutorial information on the web available that you won’t have to create.