일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- hc-sr04
- vivado
- java
- atmega 128a
- structural modeling
- gpio
- behavioral modeling
- ring counter
- LED
- FND
- D Flip Flop
- pwm
- test bench
- Linked List
- Algorithm
- uart 통신
- soc 설계
- dataflow modeling
- i2c 통신
- Edge Detector
- Pspice
- DHT11
- verilog
- prescaling
- half adder
- ATMEGA128A
- BASYS3
- stop watch
- KEYPAD
- Recursion
- Today
- Total
목록분류 전체보기 (314)
거북이처럼 천천히

1. DHT11 (Digital Humidity Temperature 11)이번에는 온도와 습도를 측정하는 디지털 센서, DHT11을 이용하여 온도와 습도 센서를 측정해보도록 하겠다.이를 통해 FSM(Finite State Machine) 구현와 통신 방식에 대해서 공부하도록 하겠다.DHT11와 basys3을 연결하여 DHT11으로 부터 온도와 습도 데이터를 전달받기 위해서 DHT11의 DataSheet를 보고, 통신에 필요한 과정 및 데이터가 필요하다.따라서 DHT11로 부터 온도, 습도를 전달 받는 과정부터 살펴보도록 하겠다. 2. DHT11으로 온도, 습도 데이터를 전달 받는 방법DHT11와 MCU 간에 연결 및 회로도는 다음과 같이 연결된다. 위 그림을 통해 알 수 있듯이 MCU와 DHT11간에..

1. FSM 기법이란?Finite State Machine시스템의 동작을 상태, 이벤트, 전이로 모델링하는 수학적 모델을 의미.시스템은 한 번에 단 하나의 상태만 가질 수 있다. 1.1. FSM의 장점복잡한 시스템 동작에 대해서 유한 상태로 나눈 뒤, 각각의 상태에 대한 동작과 다른 상태로 전이를 위한 조건을 정의함으로서 복잡한 시스템을 단순화할 수 있다.시스템의 동작을 여러 상태로 나누었기 때문에 디버깅 과정에서 문제가 발생했을 때, 어느 부분에서 문제가 발생했는지를 쉽게 파악하여 빠르게 고칠 수 있다. 1.2. FSM와 상태도(State diagram)과의 관계FSM은 시스템의 동작을 여러 상태로 나누어 현재 상태의 작업을 수행한 뒤, 발생한 이벤트에 따라 다른 이벤트로 전이된다.FSM의 시스템의..

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..
1. 4초 때 리셋 버튼을 누른 뒤, 다시 Stop watch를 실행하니 56초때 분값이 증가한다. 1.1. 문제 현상4초 때 리셋 버튼을 누른 뒤, 다시 Stop Watch를 실행하니 56초때 분값이 증가하는 현상을 확인할 수 있다. 1.2. 문제 원인 BCD 60진 Counter를 통해 현재까지 Counter가 counting한 값을 초기화 시켜줌으로서 cur_time 값을 초기화시켜주었으며, lap_time도 btn_clear가 활성화되면 초기화시켜줌으로서 0분 0초로 만들어 주었다.그러나, BCD 60진 Counter가 Counting함에 있어 기준 펄스가 되는 clk_sec와 clk_min에 대해서 초기화를 시켜주지 않았다.따라서 clk_sec과 clk_min 펄스파는 clear 된 ..
1. Clear 기능 추가하기이번 게시글은 지난 게시글에 이어 Clear 기능을 추가하도록 하겠다.이전 게시글에 대해서 궁금하다면 아래 링크를 통해 이전 게시글을 참조 하길 바란다.https://jbhdeve.tistory.com/271 Verilog RTL 설계(7월 18일 - 3, Stop Watch - 2)1. Lap 기능 추가하기이전 게시글에서 구현한 기본적인 Stop Watch에 이어 랩 기능을 추가하도록 하겠다.https://jbhdeve.tistory.com/270 Verilog RTL 설계(7월 18일 - 2, Stop Watch - 1)1. Stop Watch 이전 게시글에서jbhdeve.tistory.comClear 버튼을 누르면 랩 모드에 저장된 시간과 Stop Watch 모드에서 이..
1. Lap 기능 추가하기이전 게시글에서 구현한 기본적인 Stop Watch에 이어 랩 기능을 추가하도록 하겠다.https://jbhdeve.tistory.com/270 Verilog RTL 설계(7월 18일 - 2, Stop Watch - 1)1. Stop Watch 이전 게시글에서 다루었던 Clock 지식을 기반으로 Stop Watch을 구현해보도록 하겠다.단계별로 기능을 하나씩 추가해 나아가도록 하겠다. 2. Basic Stop Watch기본적인 Stop Watch는 다음과jbhdeve.tistory.com이번 구현은 다음과 같이 동작한다.- 랩 버튼을 누르면 현재의 시간에서 멈춰 현재의 시간을 기록하여 디스플레이에 표시한다.- 주의 할 점은 비록 디스플레이 상에서는 시간은 멈춰 있지만, Sto..
1. Stop Watch 이전 게시글에서 다루었던 Clock 지식을 기반으로 Stop Watch을 구현해보도록 하겠다.단계별로 기능을 하나씩 추가해 나아가도록 하겠다. 2. Basic Stop Watch기본적인 Stop Watch는 다음과 같이 동작한다.- 초기에는 00 : 00초로 시작하며, 시작 버튼을 누르기 전까지는 시계는 동작하지 않는다.- btn[0], btn_start을 누르면 시계가 동작하며, 다시 btn_start을 누르면 다시 시계가 멈춘다. 2.1. Stop watch에서 시계를 어떻게 멈추게 할 것인가?Basys3의 기본 클럭 펄스를 기반으로 분주화를 통해 1sec / 1min을 주기로 갖는 One Cycle Pulse를 얻는다.이 과정에서 기본 클럭 펄스 대신 0을 주게된다면 ..

1. 초 값이 30초 이상일 때, btn_set 버튼을 누를 때마다 분 값이 1씩 증가한다. (또 다른 해결책)해당 문제에 대해서 이미 이전 게시글을 통해서 다루어 보았다.Verilog RTL 설계(7월 17일 - 5, Advanced Clock Mode - 2) (tistory.com) Verilog RTL 설계(7월 17일 - 5, Advanced Clock Mode - 2)1. Set 모드에서 시간을 설정한 뒤, 다시 Watch 모드로 가면 초와 분이 동기화되지 않는다. 1.1 문제 현상Set 모드에서 시간을 세팅한 뒤, 다시 Watch 모드로 돌아가 시계로서 동작하면 초와 분 값이 동jbhdeve.tistory.com 해당 문제의 원인은 아래 코드가 원인이 되었다.assign inc_min = (..