Verilog FPGA Program 2 (MicroBlaze, HIL-A35T)

18

이 수강하고 있어요.

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

Xilinx FPGA에서 MicroBlaze를 구현하는 방법을 알아봅니다.

이런 걸
배워요!

  • FPGA에서 MicroBlaze 사용하기

  • Verilog 프로그램

  • FPGA 프로그램

Xilinx FPGA에서 MicroBlaze 사용하기!

MicroBlaze는 FPGA에서 IP 형태로 제공되는 프로세서입니다. MicroBlaze는 Processor Core와 Peripheral이 분리되어 있어서 사용자가 목적에 맞게 Peripheral을 구성할 수 있습니다.

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

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

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

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

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

본 강의는 두번째 강의로 MicroBlaze에 대한 내용입니다. MicroBlaze는 Xilinx에서 제공하는 32bits MicroProcess 입니다. MicroBlaze를 사용하면 FPGA내에 Processor와 User Logic을 동시에 구현할 수 있습니다. 또한 Processor와 User Logic간에 Interface를 구현하면 FPGA 내에 SOC(system on chip)을 구현할 수 있습니다. 본 강의는 처음 접하시는 분들도 쉽게 따라할 수 있도록 툴의 설치와 사용법, 코드에 대한 설명, 코드를 simulation 하고, 개발보드에서 결과를 확인해 볼 수 있도록 구성되어 있습니다.

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

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

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

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

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

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

  • 본 강의는 2019 이후 버전인 Vitis 2022.1을 기준으로 설명합니다. 

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

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

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

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 보드 (Digilent 사)

    • 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. Vitis 2022.1 설치 과정

  • Vitis는 매우 무거운 툴입니다. 설치 시 주의해야 할 사항과 현재 사용 중인 Vivado와 충돌 없이 설치하는 방법을 설명합니다.

섹션 3. MicroBlaze로 화면에 “Hello world”를 출력하기

  • 본 섹션에서는 대략적인 흐름을 파악하는 것에 목적을 두고 설명합니다.

섹션 4. MicoBlaze의 Peripheral

  • 주로 사용하는 GPIO, Timer, Uart, Interrupt를 설명합니다. MicroBlaze에서 제공하는 Peripheral이 비슷하기 때문에 강의 내용을 익히면 다른 Peripheral도 쉽게 사용할 수 있습니다.

섹션 5. 실무에 적용할 수 있는 지식

  • 대부분의 자료가 Peripheral을 다루는 것에서 끝납니다. 그러나 FPGA에서 MicroBlaze를 사용하는 목적은 사용자가 설계한 Logic을 MicroBlaze를 통하여 제어하는 것입니다. 궁극적으로는 UI(User Interface)를 통해 사용자가 설계한 Logic을 제어하는 것입니다.

  • 강의에선 User Logic을 구성하기 위한 PWM 모듈 4개를 추가했습니다. User Logic을 제어하기 위한 Register Map을 구성하고, MicroBlaze, UI를 통하여 User Logic을 제어합니다. 이 모든 과정을 설명하고 구현하고 결과를 보여줍니다.

  • 본 섹션에서 설명된 내용은 실무에 바로 적용할 수 있습니다. User Logic을 추가하고 Register Map을 추가하면 그 외의 모든 과정은 구현된 그대로를 사용하면 됩니다. 

섹션 6. lwIP Echo Server

  • lwIP를 이용하여 Echo Server를 구현하는 내용입니다. MicroBlaze에서 Cache(Instruction Cache, Data Cache)를 사용하기 위하여 DDR Controller를 구현합니다.

섹션 7. lwIP 활용

  • lwIP를 이용한 TCP/IP 통신에 User Logic을 추가하는 과정을 설명합니다. PC에서 TCP/IP를 이용하여 명령어를 전송하면, lwIP를 통하여 명령어를 수신하고 User Logic에서 보드의 LED를 제어하는 과정을 설명합니다. 이를 통하여 lwIP와 User Logic의 인터페이스를 구현하고 결과를 확인합니다.

섹션 8. W5500 모듈을 이용한 TCP/IP 구현

  • v1.4에서 추가된 내용입니다. wiznet 사의 w5500 모듈을 이용하여 TCP/IP를 구현하는 내용입니다. PC와 Network으로 연결해서 데이터 송수신을 구현합니다. 이를 응용하면 TCP/IP를 이용하는 분야에 다양하게 적용할 수 있을 것입니다.

섹션 9. Block Memory Interface - 1

  • v1.5에서 추가된 내용입니다. Block Design에서 기본적으로 제공하는 Block Memory Interface를 구현합니다.

섹션 10. Block Memory Interface - 2

  • v1.5에서 추가된 내용입니다. User Logic에서 Block Memory를 추가하여 Block Memory Interface를 구현합니다. 이를 응용하여 User Register Map을 구현하고, pwm의 frequency, duty를 제어하는 예제를 구현합니다. 

섹션 11. w5500 Interface 구현

  • w5500 모듈을 사용하여 TCP/IP 통신을 구현합니다. 

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • MicroBlaze에 관심 있으신 분

  • FPGA에 관심 있으신 분

  • Verilog에 관심 있으신 분

선수 지식,
필요할까요?

  • C 언어

  • Verilog HDL

  • Xilinx 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++

입니다.

커리큘럼

전체

358

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

수강평

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