【问题标题】:Verilog: assign a weighted sum of parameterized lengthVerilog:分配参数化长度的加权和
【发布时间】:2017-01-30 12:42:30
【问题描述】:

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

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

有没有办法将 XOR 链分配到输入触发器,即,什么是实现类似的合理方法

assign input_wire = (coeff[0] & flops[0]) xor ... xor (coeff[width-1] & flops[width-1]);

明显但非法的方法是使用 for 循环。有没有办法在始终阻止之外执行此操作?

谢谢

【问题讨论】:

  • 你可以看看这个问题:stackoverflow.com/questions/17159397/…,它为你的问题提供了一个解决方案。在“一行”中执行此操作的一种方法是实现一个执行计算的参数化模块

标签: verilog lfsr


【解决方案1】:

按位与和一元异或运算符可以解决问题:

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

按位与对触发器输出进行加权。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多