On 13/06/11 6:17 AM, Alex Huntley wrote:
> BUT, hopefully someone will correct me if I'm wrong but I don't think
> that GHDL supports VHDL 2008 yet. Tristan obviously has a lot of work to
> do and what he has produced to date is very admirable and generous, so
> please don't read this as any criticism. I know ActiveHDL from Aldec
> only supports a few features of VHDL 2008; I don't know about Modelsim
> but I wouldn't want to touch that with a barge pole anyway.

The semantics for '?' are supported as yet.

10.9 Case statement

A case statement selects for execution one of a number of alternative
sequences of statements; the chosen alternative is defined by the value of
an expression.

case_statement ::= [ case_label : ]
case [ ? ] expression is case_statement_alternative {
case_statement_alternative }
end case [ ? ] [ case_label ] ;
case_statement_alternative ::= when choices => sequence_of_statements

A case statement shall include the question mark delimiter either in both
places, in which case the case statement is called a matching case
statement, or in neither place, in which case the case statement is called
an ordinary case statement.

 ...

For a matching case statement in which the expression is of type STD_ULOGIC,
or an array type whose element type is STD_ULOGIC, if the expression is the
name of an object whose subtype is locally static, whether a scalar type or
an array type, then each value of the subtype, other than the scalar value
'–' or an array value containing '–' as an element, shall be represented
once and only once in the set of choices of the case statement. A value is
represented by a choice if application of the predefined matching equality
operator to the value and the choice gives the result '1'. It is an error if
a choice does not represent a value of the subtype other than the scalar
value '–' or an array value containing '–' as an element. This rule is
likewise applied if the expression is a qualified expression or type
conversion whose type mark denotes a locally static subtype, or if the
expression is a call to a function whose return type mark denotes a locally
static subtype, or if the expression is an expression described in this
paragraph and enclosed in parentheses.

---

(It effectively doesn't use element positions containing '-' in the case
comparison).  Note this only works for std_logic.  I can't help but note how
unreadable the above paragraph is.

A quick look through ghdl code and it looks like this will require an IIR
extension to support.

Tristan and I are both kind of busy doing other things.  I need to finish
the code map to enable others to contribute.    All the earthquakes we're
having today in Christchurch isn't helping.






_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to