VHDL 不区分大小写

Cin*_*ndy 3 vhdl case-insensitive

我见过使用大写字母的VHDL关键字,可能是出于编码风格的原因,例如IF - THEN - ELEIF - ELSE - END IF;IEEE 图书馆;使用 numeric_std.ALL;然而,它说 VHDL“语言在大多数情况下不区分大小写”。因此,我假设上面列出的所有关键词也可以使用小写字母书写。

有人对关键词需要(或必须)大写字母的少数例外情况有很好的了解吗?

Mat*_*lor 5

据我所知,VHDL 中唯一区分大小写的是类型和的文字(代码中的固定值)。例如,该类型是s的枚举类型。对于任何大写字母都不同于小写字母。例如,和是不同的字符。因此,例如,如果您将 an 分配给 type 的某些内容,那么您必须使用大写而不是小写,因为这就是类型的定义方式。例如:characterstringstd_logiccharactercharacter'X''x''X'std_logic'X''x'std_logic

my_signal <= 'X'; 
Run Code Online (Sandbox Code Playgroud)

还可以,但是

my_signal <= 'x';
Run Code Online (Sandbox Code Playgroud)

不是,因为'x'不是有效值std_logic

所以,基本上,VHDL 不区分大小写。当您处理characters (和strings,它们只是characters 的数组)时,看起来可能就是这样。任何无法区分小写和大写字母的语言确实都是一种奇怪的语言。

  • 为了增加混乱,扩展标识符区分大小写。`\bus\ ` 和 `\BUS\ ` 是不同的标识符(来自 VHDL LRM) (2认同)