您好我想问一下,我怎么能在VHDL中添加两个向量,其中一个是7 downto 0而另一个是8 downto 0.我试过这样的东西,但是它不起作用.先感谢您.
IS_CARRY <= '0' & (IN1 + IN2)
Run Code Online (Sandbox Code Playgroud)
您需要将较短的向量扩展到9位,然后进行加法.
声明:
signal in1 : UNSIGNED(7 downto 0);
signal in2 : UNSIGNED(8 downto 0);
signal res : UNSIGNED(8 downto 0);
Run Code Online (Sandbox Code Playgroud)
例:
res <= ('0' & in1) + in2;
Run Code Online (Sandbox Code Playgroud)
不建议使用STD_LOGIC_ARITH和STD_LOGIC_UNSIGNED.请NUMERIC_STD改用.在STD_LOGIC_VECTORs上算术并不是好事.使用类型SIGNED并UNSIGNED为此目的.