이런 걸
배워요!
FPGA에서 MicroBlaze 사용하기
Verilog 프로그램
FPGA 프로그램
MicroBlaze는 FPGA에서 IP 형태로 제공되는 프로세서입니다. MicroBlaze는 Processor Core와 Peripheral이 분리되어 있어서 사용자가 목적에 맞게 Peripheral을 구성할 수 있습니다.
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 - 자료 공유 링크 - 첨부파일'에서 다운받을 수 있습니다.
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 활용 기초
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)
Zynq mini 7020 보드
Verilog FPGA Program 1 (Zynq mini 7020)
Verilog ZYNQ Program1 (Zynq mini 7020)
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
저는 지난 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개
가 제공되는 강의입니다.