일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- i2c 통신
- structural modeling
- atmega 128a
- java
- Edge Detector
- KEYPAD
- behavioral modeling
- stop watch
- Algorithm
- D Flip Flop
- half adder
- test bench
- ATMEGA128A
- gpio
- verilog
- Linked List
- BASYS3
- Recursion
- ring counter
- uart 통신
- soc 설계
- Pspice
- hc-sr04
- vivado
- FND
- dataflow modeling
- prescaling
- pwm
- DHT11
- LED
- Today
- Total
목록KEYPAD (4)
거북이처럼 천천히
1. 4X4 Matrix KeyPad (FSM 형식)이번에는 FSM (= Finite State Machine) 형식으로 KeyPad를 구현해보도록 하겠다.아래와 같이 5가지 상태로 정의하였다.- S_SCAN0 ~ S_SCAN3 : 0번째 행부터 3번째 행까지를 10msec 주기로 순회하면서 버튼이 눌렀는지 여부 확인하는 상태 - S_KEY_PROCESS : 버튼이 눌렀을 경우, 어떤 버튼이 눌렀는지를 확인하고, 이를 출력으로 내보내는 상태소스 코드에 대한 자세한 설명은 아래 게시글을 참고하길 바란다.https://jbhdeve.tistory.com/275 Verilog RTL 설계(7월 22일 - 2, FSM 형식으로 Keypa..
1. 4X4 Matrix KeyPad 전체적인 코드에 대한 설명은 아래 게시글 참고하길 바란다.https://jbhdeve.tistory.com/274 Verilog RTL 설계(7월 22일 - 1, 4X4 Matrix Keyboard - 1)1. 4X4 Matrix Keyboard4X4 Matrix Keyboard는 다음과 같은 회로도를 같는다.Row와 Column간에 회로 연결은 16개의 Switch간에 연결되어 있다. 2. 어떻게 버튼이 눌렀는지를 확인하는가?Row 값(R1, R2, R3, R4)들이jbhdeve.tistory.com // Edge detector module edge_detector ( input clk, reset_p, input cp, output p..

1. Button을 짧은 시간동안 연속적으로 누를 경우, 이전 값이 잠깐 출력되는 문제점이 발생1.1. 문제 현상버튼을 짧은 시간동안 연속적으로 누르면 FND에서 이전 값이 잠깐 출력되는 문제점이 발생한다. 1.2. 문제 원인아래 코드와 함께 이해하고자 한다면 쉽게 이해할 수 있다.// state에서 next_state로 넘어가는 시점은 clk_10msec_n 일때, 넘어갔다.always @(posedge clk or posedge reset_p) begin if(reset_p) state = SCAN0; else if(clk_10msec_n) state = next_state;end''' (중간 생략) '''// Row값과 Col값을 비교하여 입력된 키 값을 찾아 Key_va..

1. 4X4 Matrix Keyboard4X4 Matrix Keyboard는 다음과 같은 회로도를 같는다.Row와 Column간에 회로 연결은 16개의 Switch간에 연결되어 있다. 2. 어떻게 버튼이 눌렀는지를 확인하는가?Row 값(R1, R2, R3, R4)들이 High-level인 상태에서 특정 버튼을 누르게 된다면 해당하는 열(C1, C2, C3, C4)의 값이 Low-Level에서 High-Level 로 변한다.ex) R1, R2, R3, R4 = 0001인 상태에서 버튼 0을 누르면 C1, C2, C3, C4 = 0100이 출력된다.ex) R1, R2, R3, R4 = 0100인 상태에서 버튼 6을 누르면 C1, C2, C3, C4 = 0010이 출력된다. 3. 만약, C1값이 H..