100억 모으기 프로젝트317 [Harman 세미콘 아카데미] 99일차 - SoC Design(UART Interrupt, I2C) [UART - Interrupt] 📌 Document Pmod : 보드만드는 회사의 규격, 표준은 아님. 인터럽트를 배웠으니, 이제 UART를 활용해서 수신을 할 수 있다. 인터럽트 없이도 가능하긴 한데, 계속 입력받을 수는 없으니까~ 필요할 때만 받도록 만들어 보자. 📌 Main Code 전에 만들었던 btn_intc_hw를 가져오자. #include // 표준 입력/출력 함수 #include "platform.h" // 플랫폼에 특화된 정의 및 초기화 #include "xil_printf.h" // Xilinx printf 함수 #include "xparameters.h" // 하드웨어 플랫폼의 매개변수 정의 #include "xgpio.h" // 하드웨어용 일반 I/O 함수 #include "xin.. 2023. 11. 24. [Harman 세미콘 아카데미] 98일차 - SoC Design(AXI, SystemVerilog를 활용한 Simulation, button Interrupt, switch Interrupt) [AXI Protocol] 📌 Block Design 이번엔 얘부터 추가해준다. VIP : verification IP라고, 검증된 IP라는 뜻 📌 Simulation 현장가면 검증할 때, SystemVerilog를 대부분 사용하므로 미리 맛 좀 보고 가자. 가장 큰 차이점은 C++처럼 객체(Class)를 만들 수 있다는 장점이 있다. Class의 장점은 다른 사람이 만들어 놓은 것을 가져다 쓰기 편하다는 것이다. (Class의 Include가 가능) 그러다보니 가져다 쓸 만한 것들도 많이 만들어 놨음 가장 대표적인 것이바로 UVM Verilog vs SystemVerilog Verilog SystemVerilog include import reg bit wire logic import axi_vip_p.. 2023. 11. 23. [Harman 세미콘 아카데미] 97일차 - SoC Design(UltraSonic, 온습도센서/DHT11) [UltraSonic] 📌 Block Design 입력을 연결해준 것처럼, 출력값 또한 레지스터에 연결해줄 수 있다. 이 방식을 사용해 초음파센서(DHT11) IP을 설계해보자 // Users to add ports here input echo, // 외부에서 입력을 받아야 하므로 output trig, // User ports ends wire [15:0] distance_cm; // Address decoding for reading registers case ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) 3'h0 : reg_data_out 2023. 11. 22. [Harman 세미콘 아카데미] 96일차 - SoC Design(Push button, PWM, Servo Motor 제어) [Push Button] 📌 Block Design GPIO 추가 Wrapper 다시 해주고, Re-load해주면 된다. 📌 Main Code 작성 1. 하드웨어 Export 해주고 2. 플랫폼 프로젝트만들고 빌드해주고 3. 어플리케이션 프로젝트 만들고 main code 창 오픈 Push Button의 번호를 알아내기 위해 LED로 테스트해보자. #include #include "platform.h" #include "xil_printf.h" #include "xparameters.h" #include "xgpio.h" #define LED_ID XPAR_AXI_GPIO_LED_DEVICE_ID #define SWITCH_ID XPAR_AXI_GPIO_SWITCH_DEVICE_ID #define FND_.. 2023. 11. 21. 이전 1 ··· 4 5 6 7 8 9 10 ··· 80 다음