Verilog FPGA Program 4 (MCU Porting, HIL-A35T)

17

이 수강하고 있어요.

중급자를 위해 준비한
[반도체, 임베디드 · IoT] 강의입니다.

FPGA 내에 MCU Core IP를 포팅(Porting)해서 사용하는 것을 구현합니다.

이런 걸
배워요!

  • FPGA에 MCU 포팅해서 사용하기

  • Bootloader 구조

  • FPGA 내 MCU 메모리 구성하기

20년 이상 경력자가 알려주는 FPGA 설계 📑

Verilog HDL은 FPGA Program 언어입니다. FPGA 뿐만 아니라 ASIC도 만들 수 있어요. Verilog에 관심이 있거나 현업에서 스킬업을 하고 싶은 개발자 분들이 많이 있습니다.

그러나 Verilog, FPGA는 매우 특수한 분야여서 자세히 설명되어 있는 강의를 찾는 건 매우 어렵습니다. FPGA 제조사에서 문서를 제공하지만 너무 많은 문서에 영어로 되어 있어서 어떤 문서를 봐야 하는지도 알 수 없습니다.

저는 20년 이상 현업에서 개발자로 일하다가 현재는 1인 기업을 운영하고 있습니다. 제가 지금까지 쌓아온 지식들을, 현업에서 개발자로 살아가는 분들이나 개발자의 길을 준비하시는 분들에게 전해드리고 싶어 강의를 제작하게 되었습니다.

강의는 총 4개로 구성되어 있습니다.

본 강의는 4번째 강의로 MCU Porting에 대한 내용입니다. Xilinx에서 제공하는 프로세서가 아니라 비교적 가볍게 사용할 수 있는 8bits 프로세서입니다. 프로세서를 FPGA내에 Porting 하는 과정을 상세하게 설명합니다. 이를 통하여 Memory를 구성하고, Bootloader를 구현하는 것을 배우게 됩니다. 저는 지금까지 대부분의 FPGA에 이 솔루션을 이용하여 프로젝트를 진행하였습니다. Microblaze에 비해서 가볍게 사용할 수 있고, Memory 구성등 많은 부분을 자유롭게 사용할 수 있습니다.

능력있는 개발자가 되는 것을 쉬운 일이 아닙니다. 그만큼 노력이 필요합니다. 그 어려운 과정속에 친절한 Guide가 있는 것은 매우 좋은 일입니다.

본 강의는 매우 많은 내용을 담고 있습니다. 숙련된 개발자가 아니면, 한번에 모든 내용을 이해하기에는 어려움이 있을 수 있습니다. 반복해서 코딩하고, simulation 하고, 보드에서 결과를 확인하고 이러한 과정을 통해 조금씩 자신의 것으로 만들어 갈 수 있을 것입니다.

본 강의의 내용을 완벽히 이해하고 활용할 수 있다면 매우 훌륭한 개발자가 될 수 있습니다.

강의에서 이해가 안 되는 부분은 인프런 커뮤니티 또는 제가 운영하는 카페를 통하여 질문을 올려주시면 답변해 드리도록 하겠습니다.

📢 수강 전 반드시 확인해주세요!

  • 본 강의는 전자문서 형식으로 구성된 텍스트 강의입니다. 강의를 수강하시는 분들께는 강의에 설명되어 있는 모든 소스 파일을 제공합니다. 강의는 추후 동영상으로 제작 예정입니다.

  • 본 강의에서 사용하는 Tool은 vivado 2018.3 입니다.

  • 본 강의의 실습에 사용되는 보드는 강의를 위해 자사에서 개발한 HIL-A35T 입니다. 자사에서 운영하는 스마트 스토어에서 구매할 수 있습니다(스마트 스토어 링크 : https://smartstore.naver.com/ihil)

  • 강의 자료는 '섹션 0 - 자료 공유 링크 - 첨부파일'에서 다운받을 수 있습니다.

FPGA 개발자 성장의 기회, MCU 포팅 🔦

저는 약 20년 정도 FPGA 관련된 일들을 해왔고, 대부분의 프로젝트에서 FPGA 내에 MCU를 포팅해서 진행했습니다. MCU를 FPGA 내에 포팅해서 사용하면 많은 장점이 있습니다. 외부에 별도로 MCU를 사용할 필요도 없고, MCU 파트와 LOGIC 파트로 나누어서 진행할 수도 있습니다.

저는 대부분의 FPGA(Spartan, Artix, Kintex, Virtex)에서 MCU를 포팅해서 사용했습니다. 기본적인 구조만 알면 대부분의 FPGA에 적용할 수 있습니다. 본 강의는 이러한 과정을 상세하게 설명하고 있습니다. 강의에선 FPGA 내에 MCU IP를 포팅해서 SOC(System On Chip)을 구현하는 방법을 설명합니다. 강의를 통해 FPGA로 프로그램하는 개발자분들의 스킬을 한 단계 업그레이드하길 바랍니다.

잠깐! ✋ MCU란?

마이크로컨트롤러 유닛(Micro Controller Unit)을 말해요. 단일 칩 내부에 프로세서, 메모리, 입출력 장치를 모두 갖춘 장치예요. 프로그래밍을 통해 제어나 연산 작업이 가능합니다. 자동차부터 가전제품, 장난감까지 넓은 분야에서 쓰이고 있어요. 특정 기능을 구현하기 위해 프로그래밍 과정을 거쳐야 해요.

이런 분들께 추천해요 🙋‍♀️

  • Verilog로 FPGA를 설계한 경험이 있으신 분

  • C 언어를 이용하여 FW를 해보신 분

이런 걸 배워요 ✨

  • System Block와 Bootloader 이해

  • MCU Memory 및 LOGIC 구현

  • Application FW 구현 및 응용 

  • FW 다운로드를 위한 Windows Program 구현

내용이 적지는 않습니다. 그러나 하나하나 이해해서 자신의 것으로 만든다면 향후 FPGA를 사용하는 일에 대부분 적용할 수 있을 것입니다 💪

📢 강의는 총 4개로 구성되어 있습니다. 본 강의는 4강 입니다.

1강 : Verilog FPGA Program 1

  • 기본 기능 구현

2강 : Verilog FPGA Program 2

  • Microblaze

3강 : Verilog FPGA Program 3

  • DDR Controller

4강 : Verilog FPGA Program 4

  • MCU Porting

기초 : Verilog를 이용한 FPGA 활용 기초

📢 강의는 실습보드에 따라 다릅니다. 강의 구매시 주의하세요.

  1. Arty A7-35T 보드


    • Verilog FPGA Program 1 (Arty A7-35T)

    • Verilog FPGA Program 2 (MicroBlaze1, Arty A7-35T)

    • Verilog FPGA Program 2 (MicroBlaze2, Arty A7-35T)

    • Verilog FPGA Program 3 (DDR Controller, Arty A7-35T)

    • Verilog FPGA Program 4 (MCU Porting, Arty A7-35T)

  2. Zynq mini 7020 보드

    • Verilog FPGA Program 1 (Zynq mini 7020)

    • Verilog ZYNQ Program1 (Zynq mini 7020)

  3. HIL-A35T 보드 (강의를 위해 자사에서 개발함)

    • Verilog FPGA Program 1 (HIL-A35T)

    • Verilog FPGA Program 2 (MicroBlaze, HIL-A35T)


    • Verilog FPGA Program 3 (DDR Controller, HIL-A35T)

    • Verilog FPGA Program 4 (MCU Porting, HIL-A35T)

상세 커리큘럼 🙋‍♀️

섹션 1. HW 구성

섹션 2. System Block

  • 전체적인 System 구성을 이해합니다.

섹션 3. 메모리 구성

  • 메모리 구성을 이해합니다.

섹션 4. Clock 구성

  • Clock 구조를 이해합니다.


섹션 5. Bootloader

  • Bootloader를 이해합니다.

  • 아주 중요한 내용입니다.

섹션 6. Logic 구현하기

  • Processor와의 Interface을 이해하고 구현합니다.

섹션 7. Application FW

  • Application FW 개발 환경을 이해합니다.

  • Application FW을 구현하고 다운로드하는 과정을 이해합니다.

섹션 8. Windows Application Program

  • fw를 다운로드하고, User Interface를 구현합니다.

섹션 9-10. Bitstream 다운로드, 결과 확인

  • Bitstream을 다운로드 하고 결과를 확인합니다.

섹션 11-12. Uart Buadrate 변경, Application fw에서 I2C 사용

  • Uart Baudrate를 변경하는 것을 이해합니다.

  • Application fw에서 I2C을 사용하는 것을 이해합니다.

섹션 13. W5500 Interface 구현

  • w5500 Interface를 구현합니다.

  • 이를 통하여 프로세서와 User Logic 간의 Memory 공유, Register Map 등을 구현합니다.

  • 현업에 사용할 수 있는 매우 중요한 스킬입니다.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • FPGA 스킬 업을 원하시는 분

  • FPGA SOC 구현을 원하시는 분

  • FPGA에 MCU를 포팅해서 사용하시기 원하시는 분

선수 지식,
필요할까요?

  • C 언어

  • Verilog 언어

  • FPGA 설계

안녕하세요
alex입니다.

저는 지난 20여년 동안 대기업, 중소기업에서 개발자로 일해왔고

현재는 작은 기업의 대표로 있습니다.

주요 경력사항은

  • Verilog HDL을 이용한 FPGA 설계

    • CCTV용 ISP ASIC 개발 (약 10년)

    • OLED Display 검사장비 개발 (약 3년)

    • FPGA를 이용한 장비 개발

  • MCU FW

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Windows Application Program

    • Visual Studio MFC, C++

입니다.

커리큘럼

전체

163

강의 게시일: 2023년 10월 27일
마지막 업데이트일: 2023년 10월 27일

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!