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

1. LED의 밝기를 128단계로 나누어 컨트롤하기.이번에는 LED의 밝기를 128단계로 나누어 컨트롤 할 수 있도록 모듈 설계해보도록 하겠다.이를 통해 "왜 2단계로 나누어 Prescaling을 진행하는가?"를 정확하게 이해 할 수 있다. // Duty ratio 128 step Controlmodule pwm_led_128_step( input clk, reset_p, input [6:0] duty, output pwm); // Declare base parameter parameter sys_clk = 100_000_000; parameter pwm_freq = 10_000; parameter duty_step = 128; // 최종적으로 ..

1. 다이오드가 연속적으로 켜져 있는 상태로 보이기 위해서는 10kHz Pulse wave를 줘야 한다.다이오드가 사람 눈으로 보았을 때, 연속적으로 켜져 있는 상태로 보여주기 위해서는 10kHz 주파수를 갖는 Pulse wave를 인가하는 것이 좋다. 2. 그럼, 어떻게 PWM을 만들 것인가? Prescaling을 통해 원하는 Duty ratio를 갖는 Pulse wave를 만들 수 있다.이를 예시와 함께 알아 보도록 하겠다.- 100usec 주기를 갖는 PWM을 Prescaling을 통해 만들어 보겠다.- Q) 왜 100usec 주기를 갖는 PWM을 만드는가?- A) 10000Hz 주파수를 갖는 Pulse wave의 주기는 100usec 주기를 갖기 때문에 10000Hz 주파수를 만들기 ..

1. Pulse Wave의 Period의 변화에 따른 LED의 변화다양한 주기를 갖는 Pulse wave를 diode에 인가하여 LED의 변화에 대해서 생각해보자.아래와 같이 주기가 1sec인 Pulse wave를 diode에 전달하면 0.5초 동안 diode가 꺼졌다가 0.5초 동안 diode가 켜졌다가를 반복할 것이다.이러한 diode의 변화는 사람의 눈을 통해서도 쉽게 변화를 확인할 수 있다. 이번에 1sec보다 짧은 주기를 갖는 1msec인 Pulse wave를 diode에 전달하면 0.5msec 동안 diode가 꺼졌다가 0.5msec 동안 diode가 켜졌다가를 반복할 것이다.주기가 1초인 Pulse wave를 인가했을 때보다 빠르게 변화하지만, 여전히 사람의 눈을 통해서 쉽게 diode의 ..

1. 개발 목적이전에 배웠던 "일반 시계"와 "Stop Watch", "Cooking Watch" 지식을 기반으로 통합형 시계를 만들고자 한다.이를 통해 일반 시계와 Stop Watch, Cooking Watch에 대해서 복습하고, 여러 시계 모듈을 통합하는 과정에서 디지털 회로도의 이해하는 능력과 Verilog의 프로그래밍 실력을 향상 시킬 수 있다. 2. 시계 동작 설명통합 시계는 총 3가지의 모드를 갖는다.- 첫 번째 모드) 일반 시계 모드- 두 번째 모드) Stop Watch 모드- 세 번째 모드) Cooking Watch 모드각각의 모드들은 다음과 같은 버튼 갯수와 역활을 갖는다.▶ 일반 시계 모드는 버튼 3개를 갖는다. - watch / set 버튼 : 시계 모드와 설정 모드를 변..

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. Slack디지털 회로에서 신호가 목적지에 도달하는 데, 필요한 시간(PDT, Propagation delay time)과 실제로 허용된 시간 (Required Time)의 차이를 의미한다.아래 사진과 함께 설명을 이어가도록 하겠다. Clock edge에 데이터를 읽기 위해서는 그 이전에 이미 연산 및 전달이 끝 마치고, 도착한 상태여야 한다.Q) 왜 Clock edge 전후로 여유 시간을 갖고, 데이터를 준비 및 유지해야 하는가?A) Clock Pulse라 하더라도 항상 일정한 주기를 갖고 신호가 발생하지 않는다. 예를 들어 Basys3의 CP의 주기는 10ns이지만, 항상 10ns 주기를 갖고 나타나지 않고 약간의 오차를 갖고 클록 펄스가 나타날 수 있다. (예를 들어 9ns or 11ns에 C..

1. HC-SR04와 Basys3의 통신을 FSM (Finite State Machine)으로 구현해보자.이전 게시글에서 HC-SR04와 MCU 간의 통신과정을 State diagram으로 그린 것을 토대로 FSM (Finite State Machine)방식으로 구현하고자 한다.이를 통해 FSM(Finite State Machine)에 대해서 공부를 하는 동시에 Data Sheet에 대한 읽는 능력을 향상하는 것을 목적으로 하고 있다.HC-SR04의 동작 원리와 HC-SR04와 MCU 간의 통신 과정이 궁금하다면 이전 게시글을 참고하길 바란다.Verilog RTL 설계(7월 24일 - 2, HC-SR04 기초) (tistory.com) Verilog RTL 설계(7월 24일 - 2, HC-SR04 기초)..

1. HC-SR04 초음파를 이용해 거리를 측정하는 센서 모듈HC-SR04의 data sheet를 활용하여 basys3간에 연결하여 HC-SR04측에서 측정한 거리 값을 받도록 설계해 보겠다.이를 통해 FSM(Finite State Machine)에 대해서 공부를 하는 동시에 Data Sheet에 대한 읽는 능력을 향상하는 것을 목적으로 하고 있다.HC-SR04와 MCU 간에 회로 연결, 통신 과정 및 방법 등 차근차근 배워보도록 하겠다. 2. HC-SR04의 동작 원리HC-SR04의 동작 원리에 대해서 그림으로 표현하자면 다음과 표현 할 수 있다. HC-SR04 센서 모듈이 다음과 같은 과정을 거쳐 거리를 측정하게 된다.- TX (Transmitter) : 초음파를 발사하는 부분- RX (Receiv..