【问题标题】:Shift n bits out of a register per clock [duplicate]每个时钟将 n 位移出寄存器 [重复]
【发布时间】:2021-07-05 19:03:38
【问题描述】:

我正在使用 Verilog 在 Vivado 中工作。假设我有 2 个寄存器:

reg [3327:0]a;
reg [1023:0] b;

每个时钟周期我都想从 a 中取出 13 位,从 b 中取出 4 位,然后将它们相乘。

时钟 1:a[12:0] * b[3:0]

时钟 3:a[25:13] * b[7:4]

遍历这些寄存器最有效的方法是什么?有人告诉我,使用这样的 for 循环是不正确的?

【问题讨论】:

  • 我想我的意思是适当/最少的资源?当我使用 for 循环时,它似乎需要 reg[constant] 中的常量。所以使用 like reg[counter: counter-4] 会抛出错误。
  • 啊,是的,我已经读过这方面的内容,但无法获得正确的语法,该链接很有用!我想我现在明白应该怎么做。感谢您的努力。

标签: verilog hdl vivado


【解决方案1】:

正如@toolic 所指出的,使用循环进行迭代是一种很好的方法,并且使用找到的语法here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多