printf("ho_tari\n");
3일차 본문
2025.07.02
button debounce
FPGA의 버튼을 누를 때 단일 펄스만 생성하도록 Verilog에 간단한 디바운싱 회로를 구현

100Mhz → 8Hz
100M / 8 = 12,500,000 cycles
12,500,000 / 2 = 6,250,000 (10us * 62500개)
FPGA의 버튼을 눌렀다 놓으면 푸시 버튼 신호에서 예기치 않은 위아래 바운스가 많이 발생
디바운싱 회로는 예상대로 바운싱 없이 CLOCK 기간을 가진 단일 pulse만 생성


btnC를 1번 눌렀다 떼면 led가 on ↔ off toggle

Debouncer
버튼 등의 스위치를 누르면 노이즈가 있는 신호가 발생
Debouncer : 기계적 진동 때문에 1이나 0으로 안정된 값을 바로 갖지 못하므로 이러한 채터(chatter) 또는 바운스(bounce)를 제거
- 값이 바뀔 때 여러 번 진동하므로 일정 시간 동안 값이 바뀌지 않는 경우 안정된 값으로 출력
- 스위치에 따라서 다르지만 보통은 10ms 정도 값이 바뀌지 않으면 값이 안정
- 신호 in이 0에서 1로 바뀔 때 1의 값이 10ms 동안 바뀌지 않으면 out을 1로 출력
- 반대의 경우도 마찬가지로 1에서 0으로 바뀔 때 in이 10ms동안 0을 유지한다면 out을 0으로 출력

https://github.com/SE0NGH0/AI_Verilog_HDL/tree/main/03.btn_debounce
'(Telechips) AI 시스템 반도체 SW 개발자 교육 > Verilog HDL' 카테고리의 다른 글
| 8일차 (0) | 2025.07.09 |
|---|---|
| 6일차 (0) | 2025.07.07 |
| 4일차 (0) | 2025.07.04 |
| 2일차 (0) | 2025.07.02 |
| 1일차 (0) | 2025.06.30 |