![]() |
|
|
|||||||
![]() |
VHDL - 1-element arrays are invalid in VHLD? |
|
|
Thread Tools | Search this Thread |
|
|
#1 |
|
This code is accepted
type TLETTERS is array (0 to 1) of CHARACTER; constant LETTERS: TLETTERS := ('a', 'b'); however the following is not type TLETTERS is array (0 to 0) of CHARACTER; constant LETTERS: TLETTERS := ('a'); IMO, this is called inconsistency (bad design). BTW, is there a more compact (single line) way to declare a constant array avoiding the type declaration? I guess the long preparations creating templates (which are types in this case) are necessary for instantiating multiple objects using this template. But I have only one array, so what is the need to declare a special type for it? In C, we can instantiate an array of any elements avoiding developement of special array classes for each basic element. Am I missing something? valentin tihomirov |
|
|
|
|
#2 |
|
Posts: n/a
|
valentin tihomirov wrote:
> This code is accepted > type TLETTERS is array (0 to 1) of CHARACTER; > constant LETTERS: TLETTERS := ('a', 'b'); > however the following is not > type TLETTERS is array (0 to 0) of CHARACTER; > constant LETTERS: TLETTERS := ('a'); > IMO, this is called inconsistency (bad design). The type isn't the problem. The problem is ambiguity of ('a') If ('a') is an array then parenthesis are disallowed around character literals. You can't have it both ways. IMO this is an example of incompleteness for the sake of a logically consistent language. This is a limit on any formal system. For your example, this would also work: constant LETTER: TLETTERS := (0 =>'a'); -- Mike Treseler Mike Treseler |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| xslt parsing xml data with '<' invalid character | h_q | Software | 0 | 01-03-2008 10:00 PM |
| The View State is invalid for this page and might be corrupted | parwejp | Software | 0 | 11-06-2007 09:54 AM |