Страница 1 из 1

Проблема из-за смены источника входного сигнала

Добавлено: Ср сен 27, 2017 21:48:51
Plazmoid
Приветствую!
Написал на верилоге модуль, осуществляющий задержку входного сигнала. Для его проверки в той же ПЛИС (EPM240T100C5) сделал модуль генератора меандра, посмотрел сигналы - все работало правильно и стабильно. Потом взял сигнал от внешнего генератора - появились плавающие баги. После нескольких попыток оптимизации кода добиться корректной работы схемы так и не удалось.
Спойлер

Код: Выделить всё

module delay
	(
	input wire clk,
	input wire sgn,
	 
	output reg out
   );

localparam 		phase = 1;
				
reg[7:0]			pos_cnt = 0,
				     neg_cnt = 0;
					
always @ (posedge clk)
	begin
		if (sgn)
			begin
				pos_cnt <= pos_cnt + 1;
				if (neg_cnt > phase) neg_cnt <= neg_cnt - 1;
				else
					begin
						neg_cnt <= 0;
						out <= 1;
					end
			end
		else
			begin
				neg_cnt <= neg_cnt + 1;
				if (pos_cnt > phase) pos_cnt <= pos_cnt - 1;
				else
					begin
						pos_cnt <= 0;
						out <= 0;
					end
			end
	end
	
endmodule

Re: Проблема из-за смены источника входного сигнала

Добавлено: Ср сен 27, 2017 22:02:41
Enman
Фронты внешнего сигнала должны быть идеально сформированы...

Re: Проблема из-за смены источника входного сигнала

Добавлено: Ср сен 27, 2017 22:09:15
Plazmoid
Фронты там крутые - генератор сделан на 74HC132 и находится на плате рядом с ПЛИС.

Re: Проблема из-за смены источника входного сигнала

Добавлено: Чт сен 28, 2017 23:16:56
Plazmoid
Проблема была в метастабильности и оказалась решена двумя триггерами на входе внешнего сигнала.