Перейти к содержанию
    

фильтр

Требуется написать простой интегрирующий фильтр. У меня получилось два варианта

module filter1
#(parameter IWIDTH = 16)
(
	input CLOCK,
	input  signed [IWIDTH-1:0] In,
	output reg signed [IWIDTH-1:0] Out
); 
integer i;
reg [16:0] memoryFilter[10:0];
always@(posedge CLOCK)
begin
	for (i =10; i>= 1; i=i-1)
		memoryFilter[i] = memoryFilter[i-1];
	memoryFilter[0] = In;
end
always@(negedge CLOCK)
begin
	for (i =10; i>= 0; i=i-1)
		Out =  Out + memoryFilter[i];
end

endmodule

и 

module filter2
#(parameter IWIDTH = 16, parameter NUMBER =10)
(
	input CLOCK,
	input  signed [IWIDTH-1:0] In,
	output reg signed [IWIDTH-1:0] Out
); 
genvar i;
generate
	for( i=0; i<NUMBER; i=i+1 )
	begin:mem
		reg [IWIDTH-1:0]r=0;
		if (i ==0)
		begin
			always@(posedge CLOCK)
				r <= In;
		end
		else
		begin
			always @(posedge CLOCK)
			  mem[i].r <= mem[i-1].r;
		end
		if (i == 0)
		begin
			always @*
				Out = mem[i].r;
		end
		else
		begin
			always @*
				Out = Out + mem[i].r;
		end
	end
endgenerate

endmodule

как делать более правильно что ли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Почему generate не желательно? Почему убрали все форы?

Изменено пользователем nopak

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще в 1е засунуть generate, вывод сделать через арифметику и одновременно запись в регистр по положительному фронту.

2е имеет фундаментальные ошибки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему нельзя первый отсчет суммировать к общей сумме, а последний вычитать?

И кольцом по памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...