VHDL同名声明

时间:2015-11-12 19:05:45

标签: vhdl

我是VHDL的新手,我有简单的问题。

VHDL位向量的“宽度”是什么?

例如,x“1101”:width = 4?

我可以给信号和变量指定相同的名称吗?

例如,

signal SameNAME : std_logic;
variable SameNAME : std_logic; 
signal SameName : std_logic_vector;

合法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

  

什么是"宽度"对于VHDL的位向量?

     

例如,x" 1101" :width = 4?

表达式的正确术语是位字符串文字。

具有等效字符串文字值的位字符串文字,通过将基数16位扩展为等效字符,请参阅IEEE Std 1076-2008,15.8位字符串文字,第6段中的表格和第5段:

  

位字符串文字的值是字符串文字。字符串文字由位值形成,首先获得简化位值,其中包含删除了下划线字符的位值,然后获得扩展位值。最后,如果需要,通过调整扩展位值来获得字符串文字值。

     

如果基本说明符是B,UB或SB,则扩展位值本身就是简化位值。如果基本说明符是O,UO或SO(分别是X,UX或SX),则扩展位值是通过用三个(分别为四个)字符的序列替换简化位值的每个字符而获得的字符串。对于被解释为扩展数字的简化位值中的字符,替换顺序如下:

     

substitution table   对于未被解释为扩展数字的简化值中的字符,替换序列中的每个字符与替换的字符相同。

如果将位字符串文字扩展为等效的字符串值,则其长度为16,可以通过评估' LENGTH属性(例如someone'length)找到,结果字符串值将是"0001000100000001"

  

我可以给信号和变量指定相同的名称吗?

     

例如,

signal SameNAME : std_logic;
variable SameNAME : std_logic; 
signal SameName : std_logic_vector;
     

合法吗?

15.4.2基本标识符,第3段:

  

基本标识符的所有字符都很重要,包括在字母或数字与相邻字母或数字之间插入的任何下划线字符。仅使用相应的大写和小写字母的基本标识符被认为是相同的。

没有。仅在情况不同的基本标识符被认为是相同的。如果您想区分大小写使用扩展标识符。