У меня есть два входных векторовЛучший способ описать в 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 советует вызывать выделение тысяч проводов и логических элементов, я бы, вероятно, рассмотрел синхронный последовательный сдвиг.
Edit1: Что мне нужно, может быть реализован сдвиговый объяснил here, но не детализирует, сколько ресурсов он будет принимать в дополнение ко второму размеру data_in
.
Я не знаю о Verilog, но повышение числа до мощности не эквивалентно смещению числа влево. – user4034932
OMG Извините, сделанный ошибка, я отредактировал вопрос – Anonymous