在Verilog中描述的最佳方式

时间:2016-12-16 15:39:50

标签: verilog

我有两个输入向量

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

和一个输出向量

wire [43:0] result;

结果,

result = number * (2 ^ pow)

在编程中,它相当于将number pow次左移。什么可能是这项任务最快和最少消耗的电路,以及如何在Verilog中描述它?

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

编辑1 我需要的内容可能是由桶形移位器解释here实现的,但它没有详细说明除了data_in的第二个大小外还需要多少资源

2 个答案:

答案 0 :(得分:1)

使用左移

result = number << pow;

答案 1 :(得分:0)

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