This question is specifically about Assert used to validate the generics of VHDL entity. It is clear that one can use Assert statement to check the value of generic and if the assert fails, the synthesis will stop with error.
There are two basic questions about this:
1. Should such an Assert statement be inside or outside process? Different Synthesis and Simulation tools have some sort of order of precedance in which things are evaluated so this question arises.
2. Is it possible to print the instance name of the entity where the assertion fails, into the error message, along with the entire hierarchy of the design upto this instance?
I believe that some VHDL attribute exists for this but I am not sure of its correct usage and also whether it is a VHDL-2008 thing or also supported in earlier versions of the language. I am also not sure if this attribute is supported only by simulation ools or also synthesis tools and how many of them do not support it.