일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- half adder
- Recursion
- DHT11
- stop watch
- dataflow modeling
- pwm
- Algorithm
- vivado
- Pspice
- behavioral modeling
- i2c 통신
- KEYPAD
- Edge Detector
- verilog
- java
- ATMEGA128A
- gpio
- atmega 128a
- soc 설계
- Linked List
- LED
- uart 통신
- BASYS3
- test bench
- ring counter
- hc-sr04
- FND
- structural modeling
- prescaling
- D Flip Flop
- Today
- Total
목록분류 전체보기 (313)
거북이처럼 천천히
1. Cooking Timer에 Buzz를 추가하자.시중에 팔고 있는 Cooking Timer는 0분 0초가 되면 알람을 울려 사용자에게 0분 0초가 되었음을 알린다.이전에 구현한 Cooking Timer에서 추가적으로 해당 기능을 추가해보도록 하겠다. 2. 수정된 소스 코드이전 게시글에서 구현한 소스 코드를 바탕으로 구현하겠으며, 수정된 코드를 중점으로 설명하도록 하겠다.https://jbhdeve.tistory.com/290 Verilog RTL 설계(7월 19일 - 1, Cooking Timer - 1)1. Cooking Timer 꽤 늦었지만, 휴일을 통해 Cooking Timer을 구현해보도록 하겠다.Cooking Timer는 주방에서 사용하는 Timer라고 보면 이해하기 쉬울 수 있다.시간을..

1. Cooking Timer 꽤 늦었지만, 휴일을 통해 Cooking Timer을 구현해보도록 하겠다.Cooking Timer는 주방에서 사용하는 Timer라고 보면 이해하기 쉬울 수 있다.시간을 설정한 뒤, 1초씩 Down Counting하다가 0분 0초가 되었을 때, 알람(Buzz)가 울리도록 설계할 것이다. 2. State diagram Cooking Timer는 2가지 모드를 갖는다.- Start mode : Cooking Timer가 세팅된 시간부터 1초씩 Down Counting하는 모드- Set mode : Cooking Timer의 시작 시간을 세팅하는 모드btn[0]를 btn_start_set 버튼으로 지정하여 btn[0]에 의해 모드 전환이 발생하며, 이를 상태도로 표현하면 다음과 ..
1. Stop Watch이번에 구현한 Stop Watch 코드는 본인 스스로 구현한 것이기 때문에 아래 게시글에서 구현한 Stop Watch 코드와 약간의 차이가 있을 수 있으나, 알고리즘 관점에서는 큰 차이를 갖지 않는다.Stop Watch의 동작 원리 및 자세한 코드 설명은 아래 게시글을 참고하길 바란다. 2. Source code of Stop Watch// Clock divider 10.module clk_div_10 ( input clk, reset_p, input clk_source, output clk_div_10, output clk_div_10_nedge, clk_div_10_pedge ); wire clk_source_nedge; edge_de..
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; // 최종적으로 ..