【问题标题】:Best way to describe in Verilog用 Verilog 描述的最佳方式
【发布时间】:2017-05-02 10:48:26
【问题描述】:

我有两个输入向量

wire [4:0] pow;
wire [12:0] number;

和一个输出向量

wire [43:0] result;

因此,

result = number * (2 ^ pow)

在编程中,它相当于将numberpow 向左移动。对于这项任务来说,最快且消耗最少的电路可能是什么,以及如何在 Verilog 中描述它?

编辑:我想强调的是,这个问题不仅是关于如何将我需要的东西放入 Verilog 中,还要解释在综合之后发生了什么。如果按照@dave_59 的建议写result = number << pow; 会导致分配数千条线和逻辑元件,我可能会考虑同步顺序移位器。

Edit1:我需要的可以通过桶形移位器解释here来实现,但是除了data_in的第二个大小之外,它没有详细说明它需要多少资源。

【问题讨论】:

  • 我不了解 Verilog,但是将数字的幂次方不等于将数字向左移动。
  • OMG 对不起,弄错了,我编辑了问题

标签: verilog


【解决方案1】:

使用左移

result = number << pow;

【讨论】:

  • 是立即操作(因为不涉及时钟),合成到哪个电路中?
  • 时钟参与可能取决于您的实际硬件。并且在任何情况下都需要移动时钟。
【解决方案2】:

我使用向量部分选择完成了移位器克隆的实现,总线大小为 31 位,移位部分 9 位添加了 83 个逻辑元素和 86 个组合功能。我认为它可以与放置条件运算符相媲美。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 2010-09-24
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多