【问题标题】:How to add two different sized vectors VHDL如何添加两个不同大小的向量 VHDL
【发布时间】:2015-11-07 15:20:54
【问题描述】:

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

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

【问题讨论】:

  • 尝试IS_CARRY &lt;= (('0' &amp; IN1) + IN2),假设IN1 是较窄的总线。
  • 我解决了。我必须包括use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; 谢谢:)

标签: vector vhdl add


【解决方案1】:

您需要将较短的向量扩展为 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_VECTORs 上做算术不是很好的风格。为此,请使用 SIGNEDUNSIGNED 类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    相关资源
    最近更新 更多