이런 걸
배워요!
DDR Controller
Frame Buffer
실력 있는 Verilog 개발자에게 필요한
DDR Memory Controller 스킬! ✨
FPGA에는 많은 기능이 IP 형태로 제공되고 있습니다. 그중에서 영상 데이터를 처리하는 데 주로 사용되는 DDR Controller에 대해서 설명합니다.
1. 데이터 시트를 보고 그대로 구현
2. Xilinx 사에서 제공하는 IP로 구현
저자가 DDR Controller를 구현하면서 이러한 많은 어려움을 경험하였습니다. 뭔가 필요한 부분만 정리된 하나의 문서가 있으면 좋지 않을까 하는 생각을 많이 했습니다. 처음에는 필요한 부분만 이해하고 개발을 진행해서 DDR을 read / write 해 보고, 점점 더 이해도를 높여가는 것이 효율적입니다. 먼저 전체적인 구조를 이해하고, 나중에 세부적인 내용들을 이해하는 것이 효과적입니다. 본서는 DDR Controller를 처음 접하는 개발자들도 쉽게 접근할 수 있도록 구성되어 있습니다.
DDR Memory는 영상 데이터 처리에 있어 아주 중요합니다. 그러나 전문가가 아니면 접근하기가 어렵고 또한 이러한 전문적인 내용을 다루는 자료가 거의 없는 것이 현실입니다. 본 강의는 DDR Memory Controller를 구현하는 모든 내용을 다루고 있습니다. 또한 DDR Controller를 이용하여 Frame Buffer를 구현하는 내용을 상세히 설명하고 있습니다.
💾 수강 전 확인해주세요!
DDR Memory Controller에 대한 내용을 다루는 문서는 거의 없습니다. 본 강의는 모든 과정을 상세하게 설명하여 드립니다. Memory IP를 생성하고 Simulation 하는 과정부터 범용으로 사용 가능한 DDR Memory Controller 구현, 영상 데이터 처리를 위한 Frame Buffer를 구현하는 내용까지 모든 과정을 설명하고 있습니다. 또한 소스 코드마다 simulation을 통하여 검증하고 동작을 이해할 수 있도록 구성되어 있습니다.
본 강의의 내용을 모두 이해한다면 DDR Controller를 구현하는 것뿐만 아니라, Verilog를 활용한 FPGA 구현의 실력 있는 개발자가 될 것입니다.
Verilog를 배우고자 하는 분들에게 DDR Memory Controller는 매우 좋은 스킬입니다. 많은 개발경력을 가지고 있는 사람들도 DDR Memory Controller를 접해보지 못한 분들이 많이 있습니다. Verilog를 한 단계 업그레이드 할 기회를 제공하여 드립니다.
본 강의를 구매하시는 분들에게는 강의에 설명된 모든 소스를 제공하여 드립니다. 제공되는 소스는 강의를 제작하면서 처음부터 하나하나 코딩하고 검증된 자료들로 구성되어 있습니다. 또한 현업에서 바로 사용할 수 있는 코드들로 구성되어 있습니다. 본 강의를 통하여 DDR Controller의 마스터가 되시길 바랍니다.
본 강의는 DDR Controller IP를 생성하는 과정과 생성된 IP가 어떻게 동작하는지 Simulation을 통하여 동작 과정을 이해하고, 생성된 IP를 이용하여 범용적으로 사용할 수 있는 DDR Controller를 설계합니다. 마지막으로 영상데이터 처리를 위한 Frame 버퍼를 구현하는 과정을 설명합니다.
본 강의는 오랫동안 ISP(Image Signal Processing) 개발을 진행했던 저자의 경험을 바탕으로 구성되었습니다. 본서의 내용들은 실무에 바로 적용할 수 있는 코드들입니다. 내용이 다소 어려운 부분들이 포함될 수 있지만, 이해되지 않는 부분들은 2-3번 정도 정독하시고, 코드들을 Simulation 하면서 동작 내용을 복습해보세요.
본 강의는 Digilent 사에서 판매하는 Arty A7 개발 보드에서 실습을 진행합니다. FPGA를 다루는 데 있어서 HW에 적용하고 그 결과를 확인하는 것은 매우 중요합니다. Simulation으로 구현하는 것은 한계가 있습니다. 반드시 HW에서 검증해야 합니다. (본서의 마지막 장에서 다루는 프레임 버퍼에 대한 내용은 적당한 HW를 찾지 못해서 Simulation으로만 검증을 진행하는 아쉬움이 있습니다. 추후 적당한 보드를 찾아서 HW 검증까지 진행할 수 있길 기대합니다)
1장은 전반적인 내용에 대한 개요입니다.
2장은 실습에 사용되는 Arty A7 보드에 대해서 설명합니다.
3장은 DDR Controller IP를 생성하는 방법과 User Interface Logic에 대해서 설명합니다.
4장은 생성된 DDR Controller IP의 Simulation을 통하여 동작 특성을 이해합니다. 이는 범용으로 사용가능한 DDR Controller를 구현하는데 매우 중요합니다.
5장은 범용으로 사용가능한 DDR Controller를 구현하고, 이를 이용하여 DDR Memory의 전 영역을 Read/Write 하는 것을 구현합니다. 또한 Bitstream을 생성해서 보드에서 결과를 확인합니다.
6장은 5장에서 구현한 범용 DDR Controller를 이용하여 영상 데이터 처리를 위한 Frame Buffer를 구현합니다.
7장은 v2.2에서 새롭게 추가된 내용입니다. Spartan6에서 DDR Memory Controller를 구현합니다. 툴은 ISE 14.7을 사용합니다.
8장은 v2.3에서 추가된 내용입니다. Memory Access 속도에 관한 내용을 살펴보고, 최대 속도를 구현하기 위한 내용을 다루게 됩니다.
9장은 v2.4에서 추가된 내용입니다. 16bits DDR Memory 2개를 사용하여 32Bits Interface를 구현합니다.
이전 강의 함께 보기 👀
Q. Verilog 초보자들도 가능한가요?
Verilog에 대한 기본적인 지식이 있어야 합니다. 관련 지식이 없으면 어려울 수 있습니다.
Q. 준비 사항이 있나요?
코드를 구현하고 검증하기 위하여 Arty A7 보드를 사용합니다. 보드가 준비되면 구현한 내용을 직접 확인해 볼 수 있습니다. 그러나 모든 소스를 simulation 할 수 있게 구성되어 있어서 먼저 강의를 듣고 보드가 준비되면 나중에 검증해도 됩니다.
Q. 프로그램 툴은 무엇을 사용하나요?
Xilinx 사의 vivado 2018.3을 사용합니다. 2018.3 이후 버전이면 가능합니다.
저는 20여 년 동안 대기업, 중소기업에서 개발자로 일해왔고 현재는 작은 기업을 운영하고 있습니다. CCTV용 ISP(Image Signal Processing) ASIC을 개발하였고 OLED 검사 장비, DAQ (Data Acquisition System) 등 FPGA를 이용한 많은 제품을 개발하였습니다. FPGA뿐만 아니라 FW 개발 (STM32, PIC32, AVR, ATMEGA 등), 회로 설계, Windows Program 등 많은 경험을 갖고 있습니다. 그동안 제가 쌓아온 폭넓은 경험을 바탕으로 여러분의 학습에 도움이 되기를 소망합니다.
학습 대상은
누구일까요?
FPGA를 이용한 영상 데이터 처리
Frame Buffer 구현
Verilog 배우고 싶은신 분
FPGA 배우고 싶으신 분
선수 지식,
필요할까요?
Verilog
vivado
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++
입니다.
전체
255개
가 제공되는 강의입니다.