How to check for errors in analysis/elaboration
Q:Verific clears the error count at various steps during analysis/elaboration. Is there a way to tell if these processes have errors?
Verific follows an "optimistic" approach. It clears the error count at various steps during analysis/elaboration so that the flow can continue as far as possible.
For example, during elaboration, if a module has errors, its netlist still is created, but is blackboxed in order for the elaboration to move on and to avoid null pointers. The ErrorCount is cleared before the elaboration continues on with another module.
It is possible to change to a "pessimistic" approach in which the flow stops at the first error. But it is not what most users want.
For global error count, there are two APIs:
Message::GlobalErrorCount() Message::ClearGlobalErrorCount()
To check for error at any point of time, the user needs to call Message::GlobalErrorCount(), which will return the number of errors.
The GlobalErrorCount is not cleared by Verific's internal processes. To clear the global error count, the user can call Message::ClearGlobalErrorCount() anywhere in the user's application. This API also clears the normal error count returned by Message::ErrorCount().