你好我想问一下,如何在VHDL中添加两个向量,其中一个是7 downto 0,另一个是8 downto 0。我试过这样的事情,但它不起作用。先感谢您。
IS_CARRY <= '0' & (IN1 + IN2)
最佳答案
您需要将较短的向量扩展到 9 位,然后进行加法运算。
声明:
signal in1 : UNSIGNED(7 downto 0);
signal in2 : UNSIGNED(8 downto 0);
signal res : UNSIGNED(8 downto 0);
例子:
res <= ('0' & in1) + in2;
不建议使用
STD_LOGIC_ARITH
和 STD_LOGIC_UNSIGNED
。请改用 NUMERIC_STD
。在 STD_LOGIC_VECTOR
s 上做算术不是一个好的风格。为此使用 SIGNED
和 UNSIGNED
类型。关于vector - 如何添加两个不同大小的向量 VHDL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33584342/