Verilog:指定参数化长度的加权和

时间:2017-01-30 12:42:31

标签: verilog lfsr

我正在尝试实现具有参数化宽度和系数的线性反馈移位寄存器:

// ...
    parameter width = 16;
    parameter [width-1:0] coeff = 16'b1110101100110110;
// ...

有没有办法分配到输入触发器,即实现类似

的合理方法
assign input_wire = (coeff[0] & flops[0]) xor ... xor (coeff[width-1] & flops[width-1]);

明显但非法的方式是使用for循环。有没有办法在总是阻止之外做到这一点?

由于

1 个答案:

答案 0 :(得分:0)

按位AND和一元XOR运算符可以解决问题:

assign input_wire = ^(coefficients[width-1:0] & flops[width-1:0]);

按位AND执行触发器输出的加权。