问题描述
y <= a when (s = b"--0") else '0' -- Erroneous.
y <= a when (s = "--0") else '0' -- Okay.
我正在使用Vivado,并且只有在文字前面键入基数时,它才会给我错误Error: '-' is not a valid character in b"--0"
。与Z
,U
,X
,L
,W
和H
相同。
请注意,当我使用VHDL 2008
并且已经使用它时,此方法工作正常,但我想知道为什么VHDL
中的行为如此。
我首先想到的是例如将b"000"
视为BIT_VECTOR
,但是我尝试了以下操作:
architecture behav of ent is
signal bv: BIT_VECTOR(2 DOWNTO 0) := b"000";
begin
y <= a when (s = bv); -- Erroneous.
end behav;
但是这没有用。 Vivado给我一个错误,即没有为这两种类型定义=
运算符。因此,我认为b“ 000”并不是隐含的BIT_VECTOR
。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)