This shows you the differences between two versions of the page.
soc:laboratoare:03bis:debouncing [2024/02/29 14:37] 127.0.0.1 external edit |
soc:laboratoare:03bis:debouncing [2024/03/08 14:22] (current) dconstantinescu1704 Add details to debouncer pseudocode, rename variable |
||
---|---|---|---|
Line 20: | Line 20: | ||
// resetăm ieșirea și alte auxiliare | // resetăm ieșirea și alte auxiliare | ||
end else begin | end else begin | ||
- | // Ținem un contor intern de delay, pe care îl creștem | + | // Ținem un contor de delay, pe care îl incrementăm |
- | // Reținem schimbările butonului | + | // Reținem starea butonului |
- | // Actualizăm ieșirea debouncerului doar când contorul revine la 0 | + | // Actualizăm ieșirea debouncerului doar când contorul revine la 0 |
+ | // (adică abia după ce a trecut delay-ul vom lua în considerare starea butonului) | ||
end | end | ||
end | end | ||
Line 32: | Line 33: | ||
<code Verilog Hello.v> | <code Verilog Hello.v> | ||
module Hello( | module Hello( | ||
- | output reg button_pressed, | + | output reg led, |
input button_in, | input button_in, | ||
input clk, | input clk, | ||
Line 48: | Line 49: | ||
always @(posedge button_debounced, posedge reset) begin | always @(posedge button_debounced, posedge reset) begin | ||
if (reset == 1) begin | if (reset == 1) begin | ||
- | button_pressed <= 0; | + | led <= 0; |
end else begin | end else begin | ||
- | button_pressed <= ~button_pressed; | + | led <= ~led; |
end | end | ||
end | end |