이런 걸
배워요!
Verilog RTL 설계
FPGA 설계
FPGA에 관심 있으셨다고요?
그렇다면 Verilog 하세요! 😁
C 언어와 문법이 비슷한 베릴로그는 전자 회로 및 시스템에 이용되는 하드웨어 기술 언어(HDL)예요. 회로, 설계, 검증, 구현 등 다양한 용도로 이용돼요.
Verilog를 이용하여 FPGA를 구현하는 것에 관심 있는 개발자분들 많죠? 하지만 이걸 자세히 설명한 강의를 찾는 건 매우 어려워요. 이제 20년 이상 현직자가 개발에 사용된 내용을 정리한 강의를 만나보세요! 강의 내용이 어렵게 느껴질 수 있지만, 3~4번 정도 정독하고 실습하다 보면, FPGA 개발자로 성장하기 위한 좋은 길잡이가 되어 줄 거예요.
본 강의에서는 Verilog HDL을 이용하여 FPGA를 구현하는 내용을 자세히 다룹니다. Verilog 코드를 구현하고, Simulation을 통해서 결과를 확인하고, 최종적으로 Arty A7 보드에 구현한 내용을 다운로드해서 결과를 확인하는 모든 과정을 학습합니다. 또한, Xilinx 사에서 제공하는 IP(clock 관련, Memory 관련)도 다룹니다. 본 강의에서 설명된 내용을 이해하고 자신만의 코딩 방법을 익힌다면 FPGA 설계에 실력 있는 개발자가 될 것입니다.
📢 수강 전 반드시 확인해주세요!
vivado 툴의 사용법
Verilog 코딩
Tech bench 만들고
Simulation 하기
결과를 보드에
다운로드해서 확인하기
저는 20년 정도 FPGA를 통하여 개발을 진행해 왔습니다. ASIC도 만들어 출시한 경험이 있습니다. 그러나 아직도 FPGA의 세계를 완전히 이해하지는 못했습니다. 그만큼 FPGA 세계는 넓습니다. 툴에 대한 내용, HW적인 부분, Verilog에 대한 내용 등 많은 것을 알고 있어야 합니다. 지금까지 일하면서 느낀 것은, Verilog 나 FPGA를 잘 다루기 위해서는 자신만의 프로그램 포맷(코딩 룰)을 가지고 있어야 합니다. 본 강의에서는 이 부분을 자세히 설명합니다. 강의에서 설명된 내용을 익히고 자신만의 포맷으로 만들어 가시길 바랍니다.
본 강의는 Verilog 문법을 어느 정도 알고 있고, HW적인 내용을 이해하는 분들을 대상으로 합니다. Verilog HDL이 C언어와 비슷해서 C언어에 대해서 알고 있으면 도움이 됩니다. 또한 본 강의는 최종 결과물을 보드(Arty A7, Digilent 사)에 다운로드해서 결과를 확인합니다. Verilog HDL은 Simulation에서 결과를 확인하는 것으로 끝나면 안 됩니다. Verilog HDL은 반드시 FPGA 보드에 다운로드해서 동작을 확인해야 합니다. 본 강의를 수강하시는 분들은 먼저 내용을 보시고, 반드시 실습 보드를 구매해서 결과를 확인하시는 것을 권해 드립니다.
강의에서 이해가 안 되는 부분은 인프런 커뮤니티 또는 제가 운영하는 카페를 통하여 질문을 올려주시면 답변해 드리도록 하겠습니다.
본 강의의 구성은 아래와 같습니다.
vivado 2018.3 버전을 통하여 각 과정이 어떻게 진행되는지 상세하게 설명해 드립니다.
실습내용은 아래와 같습니다.
첫 번째 실습 내용은 counter입니다. counter는 단순하지만, 실제로 많이 사용되는 모듈입니다. counter를 설계하고 Test bench를 만들어 구현한 코드가 제대로 동작하는지 Simulation을 진행하고, 최종적으로 보드에 적용해서 led on/off 를 통하여 결과를 확인합니다.
두 번째 실습 주제는 SPI 통신입니다. SPI를 선택한 이유는, 여러 가지 인터페이스 중에 비교적 어렵지 않게 구현할 수 있고 실제로 많이 사용되는 인터페이스이기 때문입니다. 먼저 SPI Master를 구현하고 뒤에 SPI Slave를 구현합니다. 그리고 Master와 Slave의 통신을 구현하고 보드 상에서 제대로 동작하는지 확인합니다.
세번째 내용은 Xilinx에서 제공하는 IP 중에 많이 사용하고 어렵지 않게 접근할 수 있는 Clock과 Memory를 설명합니다.
네번째 내용은 UART 통신입니다. Uart Controller를 구현하고, PC와의 통신으로 검증까지 진행합니다.
다섯번째 실습 주제는 I2C 통신입니다. I2C 통신은 간단하게 보이지만 코드로 구현하는 것은 결코 쉽지 않습니다. SPI에 비해 2~3배의 난이도가 있습니다. I2C Master, Slave를 코드로 구현한다면 다른 인터페이스들도 어렵지 않게 구현할 수 있습니다. 코드를 구현하기 전에 스펙을 어떻게 잡고, SM(State Machine)을 어떻게 설계할 것인지에 대해서 자세하게 다룹니다. 구현된 I2C Controller는 보드에서 동작을 확인합니다.
여섯번째 내용은 v2.1에 새롭게 추가된 내용입니다. NRZL(Non-Return Zero Level) Decoder를 구현합니다. 특히 FIFO를 설계하고 사용하는 방법에 대해서 자세히 설명합니다. FIFO는 많은 분야에서 사용되는 매우 중요한 IP입니다. 본 장을 통하여 FIFO를 설계하고 구현하는 내용을 이해할 수 있습니다.
일곱번째 내용은 v2.3에 추가된 내용입니다. FMC(Flexible Memory Controller) Interface를 구현합니다. 특히 2개 이상의 clock을 사용할 때 흔히 발생하는 Timing Violation을 어떻게 해결하는지에 대한 내용이 포함되어 있습니다.
Q. 강의를 듣는 대상자는 누구인가요?
Verilog 문법을 어느 정도(초급) 알고 있고, HW에 대한 기본지식을 가지고 있어야 합니다.
Q. 강의를 듣기 위해서 준비해야 할 사항이 있나요?
강의는 실습 보드(Arty A7 -35T or 100T, Digilent 사 제품)에서 진행됩니다만 보드가 준비되지 않았다면 먼저 강의를 듣고, 강의에 설명된 내용대로 (코딩 및 Simulation) 진행 후 추후에 보드가 준비되면 실습을 진행하시면 됩니다. 또한 보드에 다운로드하기 위하여 JTAG-HS2(or HS3)를 사용합니다.
Q. 프로그램 툴은 무엇을 사용하나요?
본 강의는 Xilinx 사의 FPGA를 대상으로 합니다. SW 툴은 vivado 2018.3 버전을 사용합니다. sw 설치에 대한 내용은 포함되어 있지 않습니다. 강의 수강 전에 sw tool(vivado 2018.3 or 이후)을 설치해 주시길 바랍니다.
저는 20여 년 동안 대기업, 중소기업에서 개발자로 일해왔고 현재는 작은 기업을 운영하고 있습니다. CCTV용 ISP (Image Signal Processing) ASIC를 개발하였고 OLED 검사 장비, DAQ (Data Acquisition System) 등 FPGA를 이용한 많은 제품을 개발하였습니다. FPGA뿐만 아니라 FW 개발 (STM32, PIC32, AVR, ATMEGA 등), 회로설계, Windows Program 등 많은 경험을 가지고 있습니다.
학습 대상은
누구일까요?
FPGA에 관심 있으신 분
Verilog에 관심 있으신 분
Verilog 레벨업을 원하시는 분
FPGA 레벨업을 원하시는 분
선수 지식,
필요할까요?
Verilog HDL
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++
입니다.
전체
330개
가 제공되는 강의입니다.