我是VHDL的新手,我有简单的问题。
VHDL位向量的“宽度”是什么?
例如,x“1101”:width = 4?
我可以给信号和变量指定相同的名称吗?
例如,
signal SameNAME : std_logic;
variable SameNAME : std_logic;
signal SameName : std_logic_vector;
合法吗?
谢谢。
答案 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),则扩展位值是通过用三个(分别为四个)字符的序列替换简化位值的每个字符而获得的字符串。对于被解释为扩展数字的简化位值中的字符,替换顺序如下:
如果将位字符串文字扩展为等效的字符串值,则其长度为16,可以通过评估' LENGTH属性(例如someone'length
)找到,结果字符串值将是"0001000100000001"
。
我可以给信号和变量指定相同的名称吗?
例如,
signal SameNAME : std_logic; variable SameNAME : std_logic; signal SameName : std_logic_vector;
合法吗?
15.4.2基本标识符,第3段:
基本标识符的所有字符都很重要,包括在字母或数字与相邻字母或数字之间插入的任何下划线字符。仅使用相应的大写和小写字母的基本标识符被认为是相同的。
没有。仅在情况不同的基本标识符被认为是相同的。如果您想区分大小写使用扩展标识符。