我想用相同的输入向量一点一点地做xor:
input(0) xor input(2) xor input(3)
最多input(187)
。
我得到的答案是:
output(0) downto output (94)
这意味着我必须先后xor
。如果我有10
个输入位,我得到的最后一个答案是5
位输出。编写整个向量非常困难,也不是一个好方法。
有谁知道如何在vhdl中编写有效的代码?
我知道如何做到这一点。首先提取偶数索引位,然后提取奇数索引位并执行xor
但没有运气请帮助我。
答案 0 :(得分:1)
听起来您需要generate statement或for 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。