【发布时间】:2013-11-26 17:24:26
【问题描述】:
这是一个非常简单的问题,但我还没有完成这项工作,也没有在谷歌或这里进行任何搜索发现任何真正有用的东西。
我要做的只是添加两个 8 位向量并将结果存储在一个 9 位向量中。
signal operand1, operand2 : STD_LOGIC_VECTOR(7 downto 0);
signal sum : STD_LOGIC_VECTOR(8 downto 0);
sum <= operand1 + operand2;
但是我收到警告:
Width mismatch. <sum> has a width of 9 bits but assigned expression is 8-bit wide.
VHDL 不应该有某种内置例程来知道加法溢出需要额外的位吗?
我有这些包:
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
也许 STD_LOGIC_VECTOR 总是被签名的?如果是这样,那么我需要将它们明确定义为无符号吗?
【问题讨论】: