[I] LRM 11.4.13 :: "A bound specified by $ shall represent the lowest or highest value
for the type of the expression on the left-hand side. "
So using ‘$’ within constraint
rand bit [1:0] a , b , c ;
constraint INSIDE_RANGE { a inside { [0:$] } ; // (a)
b inside { [$:0] } ; // (b)
c inside { [$:$] } ; // (c) :: I know doesn't make Sense !!
}
I Observe that both (a) and (b) Works fine but I see a Compilation Issue with (c) on Some ( Licensed ) Simulators but works on some
[Q1] Is (c) legal ?
[II] LRM 11.4.13 :: " When specifying a range, the expressions shall be of a singular type for
which the relation operators ( <=, >= ) are defined."
So from LRM 8.4 I know that class handle can't be used as an expression **since relational operators are ILLEGAL for class handles .**
**[ Using handle.property would be Legal as an expression however !! ]**
[Q2] What else would be Illegal as an expression for inside ??