1주차
-
01
오리엔테이션
- 멘토 및 클래스메이트 자기소개
- 클래스 대상 및 목표 안내
- 전체 커리큘럼 안내
-
02
시스템 사양에 맞는 Xilinx FPGA 선정 방법
- 시스템에 적합한 FPGA 선정하는 방법
- ZYNQ-7000 SoC DataSheet 훑어보기
- ZYNQ-7000 DC/AC 특성 훑어보기
- ZYNQ-7000 부팅 과정 알아보기
-
03
CUSTOM ZYNQ 보드 받았을 때 해야 할 일
- VIVADO 툴 소개
- VIVADO에서 클럭부터 DDR, 인터럽트까지 ZYNQ 기능 설정 방법
- SDK 툴 소개
- SDK에서 DDR 하드웨어 검증 방법
- SDK에서 BIN 파일 만드는 방법
-
04
실시간 Q&A
-
과제
상용 or CUSTOM 보드의 ZYNQ 를 설정하고 FLASH BIN 파일을 만들어 FLASH 동작 확인
- ZYNQ UART or JTAG UART로 HELLO WORLD 출력
2주차
-
01
1주차 세션 회고 및 과제 피드백
-
02
PL(HW)과 PS(SW)의 역할
- 임베디드 시스템에서 PL(HW)의 역할
- 임베디드 시스템에서 PS(SW)의 역할
-
03
CUSTOM IP 패키징 하기
- VIVADO에서 AXI BUS(AXILITE, AXIS) 용도 및 활용 방법
- VIVADO에서 PWM IP를 AXI LITE BUS 연결하여 IP 패키징 하기
- SDK에서 PWM IP Driver 작성 및 활용하기
-
04
실시간 Q&A
-
과제
만들고 싶은 IP의 SPEC 을 작성하고 AXI LITE BUS를 활용한 CUSTOM IP 작성 및 SDK로 DRIVER를 만들어 원하는 동작 확인
[과제 수행 위한 제공 자료]
- PWM IP VerilogHDL CODE
- PWM DRIVER C CODE
- PWM DataSheet
3주차
-
01
2주차 세션 회고 및 과제 피드백
-
02
FPGA 개발자가 디버깅하는 방법
- TIMING ERROR 발생 시 디버깅
- TESTBENCH를 활용한 시뮬레이션 검증
-VIO를 이용한 로직 입력 제어
- ILA를 이용한 로직 출력 확인
- - ZYNQ PS를 활용한 디버깅
-
03
CDC(Clock Domain Crossing)
- SETUP/HOLD TIME, METASTABLE
- 설계 및 타이밍 관련 용어 설명(DELAY, SKEW, ETC.)
- CDC 해결 방법
* TWO FLIP-FLOP SYNCHRONIZER
* HANDSHAKE SYNCHRONIZATION
* ASYNC. FIFO SYNCHRONIZATION
-
04
실시간 Q&A
-
과제
CUSTOM IP TESTBENCH를 만들고 합성하여 VIO와 ILA로 입출력 동작 테스트
[과제 수행 위한 제공 자료]
- PWM IP VerilogHDL CODE
- PWM DRIVER C CODE
- PWM DataSheet
4주차
-
01
3주차 세션 회고 및 과제 피드백
-
02
고속회로
- FPGA에서 LVDS 고속 신호 사용 하는 방법
* 클럭 전용 IO와 고속 전용 IO 사용
* Single-Ended와 Differential의 차이
-
03
임베디드 시스템에서 양산 제품 디버깅 사례
- 설계 단계부터 반영이 필요한 EMC 인증 디버깅
- 대량 양산에서 발생한 DDR 메모리 불량
- 고속 회로 PCIe 에서 발생하는 불량
- 시스템 모듈화의 중요성
-
04
1~4주차 세션 리뷰 및 Q&A