VHDL-200x Environment Language Change Proposal Overview: Define stop(), finish() and reset() procedures within a standard package located in the IEEE library. Purpose: To allow designers to control: a. Finishing simulation, typically from the testbench after all stimulus has been exhausted and all responses have been detected. Or when an unrecoverable error condition has been detected. b. Allow designers to insert calls to break the simulation. Typically, this would occur in testbenches when the testbench detects a mismatch between expected and actual results. However, it could also be used anywhere within the design to detect erroneous situations and break the simulator as close to the cause of the error as possible. c. Allow a testbench to restart simulation. Presumably to run a different set of tests through the same design. However, there may be other uses as well. Detailed Proposal: The VHPI addition to 1076 defines the routine vhpi_control(). This routine allows the implementation of these two standard routine in terms of the standard VHPI. Specifically, these routines would be defined by their C language (foreign) implementations. These C implementations would then contain calls to vhpi_control() passing in the vhpiControlT enumeration values: In library IEEE, I assume some type of Utils package containing (among other declarations): procedure STOP; procedure FINISH; procedure RESET; procedure STOP is -- Vendor-specific 'Foreign attribute mapping this procedure -- to the vhpiStop function attribute FOREIGN of STOP:procedure is "implementation-specific"; begin report "STOP is not supported by this simulator"; end procedure STOP; procedure FINISH is -- Vendor-specific 'Foreign attribute mapping this procedure -- to the vhpiFinish function attribute FOREIGN of FINISH:procedure is "implementation-specific"; begin report "FINISH is not supported by this simulator"; end procedure FINISH; procedure RESET is -- Vendor-specific 'Foreign attribute mapping this procedure -- to the vhpiReset function attribute FOREIGN of RESET:procedure is "implementation-specific"; begin report "RESET is not supported by this simulator"; end procedure RESET; Of course, implementations will be free to optimize the implementation of these routines, but it is convenient that it is possible to implement them in terms of foreign subprograms that make calls to the standard VHPI function using standard VHPI enumeration literals.