Im пытается построить модуль скользящей средней. Он должен использовать количество значений для использования в качестве параметра.Verilog: сумма над регистром
Как получить сумму всех n tmp
-регистров с использованием for
- или gernerate
-block в течение одного такта-цирка?
reg [WORDLEN - 1:0] tmp [SIZE - 1:0];
reg [WORDLEN + SIZE/2 - 1:0] sum;
always @(posedge clk)
sum <= sum(tmp) // Like <= tmp[0] + tmp[1] + ... + tmp[SIZE-1]
Этот метод снижения частота часов. Вы можете использовать ввод «reset» для сброса 'sum', после чего операция может быть завершена после некоторых нарастающих фронтов часов. В каждом часе просто добавьте один элемент 'tmp' с' sum'. (Вы можете использовать счетчик для подсчета необходимых циклов для работы) – Amir