在vhdl中具有相同输入向量的位到位xor

时间:2014-08-18 17:01:40

标签: vhdl

我想用相同的输入向量一点一点地做xor:

input(0) xor input(2) xor input(3)最多input(187)

我得到的答案是:

output(0) downto output (94)

这意味着我必须先后xor。如果我有10个输入位,我得到的最后一个答案是5位输出。编写整个向量非常困难,也不是一个好方法。

有谁知道如何在vhdl中编写有效的代码?

我知道如何做到这一点。首先提取偶数索引位,然后提取奇数索引位并执行xor但没有运气请帮助我。

1 个答案:

答案 0 :(得分:1)

听起来您需要generate statementfor loop

并发声明

lots_of_xor: for i in 0 to 94 generate
    output(i) <= input(2*i + 0) xor input(2*i + 1);
end generate;

顺序声明

for i in 0 to 94 loop
    output(i) <= input(2*i + 0) xor input(2*i + 1);
end loop;

注释

在任一版本中,我们也可以用output'length替换94。