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

Управление сведодиодом при помощи sr защелки

Добавлено: Вс фев 26, 2023 16:18:07
AngelicQuasar
У меня есть плата Altera C4E6/E10-CORE с Altera Cyclone IV. Я ее сконфигурировал такой реализацией триггера:

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

module sr_latch(input s, r, output p, q);
    assign q = ~(r | p);
    assign p = ~(s | q);
endmodule

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

module top(input clk,
			  input [1:0] key,
			  output [7:0] ledr);
			  
	assign ledr[7:2] = 6'b0;
	sr_latch sr_latch
	(
		.s(~key[0]),
		.r(~key[1]),
		.q(ledr[0]),
		.p(ledr[1])
	);
endmodule
Почему при нажатии на кнопки (две штуки) загорается то один диод, то другой, чередуясь, и не гаснут, если кнопку отпустить? Вроде если кнопку отпускаешь, тогда сигнал на входе триггера меняется и триггер переходит в другое состояние. Если с s и r убрать инверсию, то тогда диоды загораются только в момент нажатия и гаснут, если кнопку отпустить:

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

module top(input clk,
			  input [1:0] key,
			  output [7:0] ledr);
			  
	assign ledr[7:2] = 6'b0;
	sr_latch sr_latch
	(
		.s(key[0]),
		.r(key[1]),
		.q(ledr[0]),
		.p(ledr[1])
	);
endmodule
Объясните, пожалуйста, почему такая разница? В первом случае диод не гаснет, если кнопку отпустить, во втором гаснет.

Re: Управление сведодиодом при помощи sr защелки

Добавлено: Вс фев 26, 2023 16:31:33
electroget
В ПЛИС я не разбираюсь. :(
Есть 2 типа RS-триггеров. Есть на элементах И-НЕ и есть на элементах ИЛИ-НЕ.Логика работы у них одинаковая, а хранение состояния при обратном состоянии входов.

Re: Управление сведодиодом при помощи sr защелки

Добавлено: Вс фев 26, 2023 16:35:11
AngelicQuasar
У меня там два элемента ИЛИ-НЕ. При каком состоянии он хранит значение?

Re: Управление сведодиодом при помощи sr защелки

Добавлено: Вс фев 26, 2023 16:37:27
electroget
При 2-х логических "0" на входах он будет сохранять своё предыдущее состояние.

Re: Управление сведодиодом при помощи sr защелки

Добавлено: Вс фев 26, 2023 17:27:35
Gudd-Head
[uquote="AngelicQuasar",url="/forum/viewtopic.php?p=4377906#p4377906"]такой реализацией триггера[/uquote]
Не увидел ни одного триггера — одна комбинаторика.