【问题标题】:Checking if all values are equal in two vectors检查两个向量中的所有值是否相等
【发布时间】:2016-03-05 23:01:49
【问题描述】:

我有两个std_logic_vectorsRA和RB,我想对它们执行以下算法:

for i = 0 to 15 loop
    if RA(i) = RB(i) then RT(i) <= 0xFFFFFFFF;
    else RT(i) <= 0x00000000;
    end if;
end loop;

基本上,我想将两个向量相互比较(在这种情况下,逐位比较)并查看它们是否相等。如果是,那么我将我的输出向量RT 设置为全1,否则,RT 全为零。

这样做的好方法是什么?我可能会蛮力一些实现,但我宁愿以一种聪明的方式来做。

谢谢,

【问题讨论】:

  • 您问题中的语法有些混乱。 by 4 是什么意思? RA、RB、RT 是如何声明的?它们是信号还是变量?
  • 我上面评论中的“by 4”部分是指问题的先前版本。

标签: for-loop vector vhdl


【解决方案1】:

怎么样

if (RA = RB) then
    RT <= (others => '1');
else
    RT <= (others => '0');
end if;

假设 RT 也是std_logic_vector 的子类型。不需要循环,比较运算符是为std_logic_vectors(等维)定义的。

【讨论】:

    猜你喜欢
    • 2011-07-10
    • 2013-12-15
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    相关资源
    最近更新 更多