| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- LED
- KEYPAD
- test bench
- DHT11
- behavioral modeling
- pwm
- structural modeling
- ring counter
- Edge Detector
- gpio
- half adder
- Pspice
- stop watch
- uart 통신
- prescaling
- verilog
- ATMEGA128A
- java
- Recursion
- BASYS3
- soc 설계
- Algorithm
- D Flip Flop
- vivado
- dataflow modeling
- atmega 128a
- i2c 통신
- Linked List
- FND
- hc-sr04
- Today
- Total
목록전체 글 (318)
거북이처럼 천천히
1. Advanced Clock전체적인 코드에 대한 설명은 아래 게시글 참고하길 바란다. https://jbhdeve.tistory.com/269 Verilog RTL 설계(7월 18일 - 1, Advanced Clock Mode - 4)1. 초 값이 30초 이상일 때, btn_set 버튼을 누를 때마다 분 값이 1씩 증가한다. (또 다른 해결책)해당 문제에 대해서 이미 이전 게시글을 통해서 다루어 보았다.Verilog RTL 설계(7월 17일 - 5, Advanced Clockjbhdeve.tistory.com // Edge detector.module edge_detector ( input clk, reset_p, input cp, output n_edge, p_edge ); ..
1. Normal Clock전체적인 코드에 대한 설명은 아래 게시글 참고하길 바란다.https://jbhdeve.tistory.com/264 Verilog RTL 설계(7월 17일 - 3, Clock Mode)1. Clock Pulse를 이용하여 Clock 만들기basys3의 기본 클럭 펄스의 주기는 10ns이다. 이를 활용하여 시계를 만들고자 한다.다음과 같이 동작한다.- 4개의 FND를 이용하여 첫 번째, 두 번째 FND는 초 단위,jbhdeve.tistory.com // Edge detector.module edge_detector ( input clk, reset_p, input cp, output p_edge, n_edge ); reg flip_flop_curren..
1. Period = 100usec, Frequency = 10kHz인 Pulse wave를 128단계로 나누어 컨트롤하는 모듈 설계 Pulse wave를 128단계로 나누어 컨트롤하는 모듈 >// PWM Duty ratio 128module PWM_Duty_Ratio_cntr( input clk, reset_p, input [6:0] duty, output pwm); // Declare parameter. parameter sysclk_freq = 100_000_000; parameter duty_step = 128; parameter pwm_freq = 10_000; parameter temp = sysclk_freq / duty_step / ..
1. Pulse wave의 duty ratio를 128단계로 나누어 컨트롤 하는 모듈을 설계한 뒤, LED를 통한 출력 Pulse wave의 duty ratio를 128단계로 나누어 컨트롤 하는 모듈 >// Duty ratio 128 step controlmodule PWM_prescaling_128_Control_LED( input clk, reset_p, input [6:0] duty, output pwm ); parameter sys_clk = 100_000_000; parameter step_duty = 128; parameter pwm_freq = 10_000; parameter temp = sys_clk / step_duty / pwm_freq; pa..
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 버튼 : 시계 모드와 설정 모드를 변..