我有两个输入向量
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
的第二个大小外还需要多少资源
答案 0 :(得分:1)
使用左移
result = number << pow;
答案 1 :(得分:0)
我使用向量部分选择完成了移位器的克隆的实现,31位的总线大小和9位的移位部分增加了83个逻辑元件和86个组合功能。我认为它与推出条件运算符相当。