본문 바로가기

# Semiconductor/- Semicon Academy103

[Harman 세미콘 아카데미] 54일차 - Verilog(Digital Watch : time setting, set fix, set mode) [Digital Watch 만들기] 이제까지 만들어놓은 모듈 라이브러리를 활용하여 디지털 시계를 구현해보도록 하자. [Time Setting] 📌 Block Diagram 디지털 시계의 기능 중 하나인, 시간 설정 기능을 구현해보도록 하자. 시작은 00min : 00sec이며, 시간은 back ground에서 계속 흘러가고, 설정은 흘러가는 시간 위에 적용시킬 수 있도록 설계하였다. 📌 Code & Operation Clock Library // usec clock module clock_usec( input clk, reset_p, input enable, output clk_usec ); // 125개 카운트하면 1us reg [6:0] cnt_8nsec; wire cp_usec; // cp : cl.. 2023. 9. 11.
[Harman 세미콘 아카데미] 53일차 - ARM 및 RTOS 활용(Mission : LED Controller) [Mission] 📌 Mission : 조이스틱을 이용한 밝기 제어 M1. 조이스틱을 이용하여 밝기를 제어한다. M2. ADC 기능을 활용하여 조이스틱 입력 처리를 구현한다. (Timer, Interrupt, DMA 방식 중 택1) M3. FreeRTOS를 사용하여 조이스틱의 입력에 따라 LED 밝기를 조절하고 LED를 점멸 속도를 조정하는 두 가지 동시 작업을 관리한다. 수행 기간 : 6 hours [Result] 📌 Flow Chart Flow Chart Description 1. 각 기능들 초기화 2. Read Joystick Value 3. zVal = 1이면, LED Off zVal = 0이면, LED On 4. xVal : Blink Speed Control 5. yVal : Brightnes.. 2023. 9. 11.
[Harman 세미콘 아카데미] 52일차 - Verilog(Cook Timer - Button controller, Time setting, Down counter, Timeout, Alarm) Full Code는 맨 아래에~ [Button controller] 📌 Button controller module 자주 사용하는 기능이니까 모듈로 만들어 버리자. module button_cntr( input clk, reset_p, input btn, output btn_pe, btn_ne ); // DFF를 위한 분주기 reg [16:0] clk_div = 0; // 이렇게 = 0 해놓으면 시뮬레이션에서 자동으로 0으로 초기화된다. // 보드에서 쓸 때는 시스템적으로 0으로 초기화 always @(posedge clk) clk_div = clk_div + 1; // Debounce wire debounced_btn; D_flip_flop_n debnc(.d(btn), .clk(clk_div[16]).. 2023. 9. 7.
[Harman 세미콘 아카데미] 51일차 - Verilog(Stop Watch - 오류 검증, Prescaler 간소화, Mission) [오류 발생한 Part 체크] 📌 Simulation을 이용한 방법 테스트벤치를 만들어 오류가 발생한 part를 체크하고 수정할 수 있다. Testbench 관련 내용 [Harman 세미콘 아카데미] 2일차 - 보수체계, Testbench, Delay [개요] 1. 논리 회로 - Combinational Logic (조합 논리 회로) : input이 주어지면, output이 고정된다. output이 다음 output에 영향을 주지 못 함. - Sequential Logic (순차 논리 회로) : 이전 output이 다음 output에 영 rangvest.tistory.com 📌 LED를 이용한 방법 가장 쉽고 간단한 방법이다. 시뮬레이션을 활용하려면, 테스트벤치를 만들고 레지스터 등록하는 등 해줘야할 것.. 2023. 9. 6.