2016-03-05 80 views
-1

我有两个std_logic_vectorsRARB相等,我想对它们执行以下算法:检查是否所有的值都在两个向量

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全为零。

这样做的好方法是什么?我可能蛮力推行一些实施,但我宁愿做一个聪明的方式。

谢谢,

+0

您的问题中的语法有些混乱。 ** 4 **的含义是什么? RA,RB,RT如何申报?它们是信号还是变量? – damage

+0

我上面评论的“by 4”部分是指问题的以前版本。 – damage

回答

1

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

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

相关问题