如何添加两个不同大小的矢量VHDL

时间:2015-11-07 15:20:54

标签: vector vhdl add

您好我想问一下,我怎么能在VHDL中添加两个向量,其中一个是7 downto 0而另一个是8 downto 0.我试过这样的东西,但是它不起作用。提前谢谢。

IS_CARRY <= '0' & (IN1 + IN2)

1 个答案:

答案 0 :(得分:6)

您需要将较短的向量扩展为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_ARITHSTD_LOGIC_UNSIGNED。请改用NUMERIC_STD。对STD_LOGIC_VECTOR进行算术运算并不好。为此,请使用SIGNEDUNSIGNED类型。