하드웨어

/

임베디드 · IoT

Verilog FPGA Program 1 (Zynq mini 7020)

이 강의를 통하여 수강생들은 Zynq 보드를 활용하여 Verilog를 구현하는 내용을 배우게 됩니다.

(5.0) 수강평 2개

수강생 67명

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

이런 걸
배워요!

  • Verilog 코딩

  • ZYNQ 보드 활용

  • Vivado, Vitis 사용법

  • Test Bench를 만들고 Simulation 검증하기

  • 보드에 다운로드해서 결과 확인하기

Zynq 보드 활용 구현 + 실습의 핵심.

📢 수강 전 참고해주세요.

  • 본 강의는 전자문서(PDF) 형식으로 구성된 텍스트 강의입니다. (약 110,000자 분량) 강의를 수강하시는 분들께는 강의에 설명되어 있는 모든 소스 파일을 제공합니다. 강의 소스 코드는 섹션 0 [자료 공유 링크]에서 다운받을 수 있습니다.

Zynq 보드를 활용한 Verilog 구현

✅ 코드 구현 ✅ Text Bench를 이용한 Simulation 검증 ✅ 보드 검증

코딩하기 전에 전체적인 System을 분석하고 어떻게 해야 효율적으로 코딩할 수 있는지에 대한 노하우를 제공합니다. 지난 20여년 동안 현장에서 경험했던 많은 기법과 노하우를 바탕으로 이해하기 쉽게 설명합니다. 또한 강의에 포함된 소스 코드들은 스터디를 위한 코드가 아니라, 실무에서 사용된 코드들입니다. 강의를 듣는 모든 분들에게는 강의에 쓰인 전체 소스코드를 제공합니다.

강의 전반부에서는 아래 2가지 주제를 다루게 됩니다.

  • Vivado 2022.1 을 설치
  • Zynq 보드에 구현된 코드 다운로드 및 결과 확인

강의 후반부에서는 각 주제별로 코딩 및 시뮬레이션 검증을 통해 보드에 다운로드한 결과를 확인합니다.

  • Counter를 이용한 LED 제어
  • SPI Contoller 구현
  • UART Controller 구현
  • I2C Contoller 구현
  • Xilinx IP 사용 (Clock Generator, Memory Generator)
  • NRZL Decoder 구현
  • FMC(Flexible Memory Controller) Interface 구현

Verilog를 이용한 FPGA 활용 for ZYNQ - 강의 미리보기

상세 커리큘럼
  1. 개요
  2. HW 구성
  3. SW 설치
  4. ZynQ 보드 다운로드
    1. 기본 Template 구성
      1. 프로젝트 생성
      2. Create Block Design
    2. Debug Mode로 다운로드
      1. 소스 코드 추가
      2. Bitstream 생성
      3. Vitis 실행 및 다운로드
    3. FSBL (First Stage Bootloader)을 이용한 다운로드
      1. FSBL 프로젝트 생성
      2. Create Boot Image
      3. 보드 다운로드 및 결과 확인
    4. FSBL, Application SW을 이용한 다운로드
      1. FSBL 프로젝트 생성
      2. Application 프로젝트 생성
      3. Create Boot Image
    5. 보드 다운로드 및 결과 확인
      1. Counter를 이용한 LED 제어
      2. 프로젝트 생성
      3. 프로젝트 화면 구성
      4. 소스 코드 추가
      5. Text Editor 설정
      6. 코드 구현
      7. XDC 구현
      8. Generate Bitstream
      9. 결과 확인
    6. Simulation
      1. Simulation source file 추가
      2. tb_led_counter.v 코드 구현
      3. Simulation 진행
      4. Simulation 결과
    7. 코드에 대하여
      1. 구현 가능한 코드, 구현할 수 없는 코드
      2. 코드의 기본 단위는 Clock 입니다.
      3. 모든 코드는 병렬로 처리됩니다.
      4. 3항 연산자
      5. Register 사용
      6. FSM (Finite State Machine)
    8. Spi Master 구현
      1. 스펙
      2. 코드 구현
        1. Port 정의
        2. State 정의
        3. 코드 구현
        4. 타이밍 다이어그램
      3. Simulation
        1. Test bench 구현
        2. Simulation 결과 확인
    9. Spi Slave 구현
      1. 스펙
      2. 코드 구현
        1. Port 정의
        2. State 정의
        3. 코드 구현
      3. Simulation
        1. Test bench 구현
        2. Simulation 결과 확인
    10. Spi 통신 구현
      1. 버튼 노이즈 제거
        1. 버튼 회로
        2. 코드 구현
        3. Simulation
      2. SPI Task 구현
        1. Port 정의
        2. 버튼 노이즈 제거
        3. State 정의
        4. 코드 구현
      3. Simulation
        1. Test bench 구현
        2. Simulation 결과 확인
      4. UsetTop 모듈 구현
      5. xdc 파일 추가
      6. Generate Bitstream
      7. 보드 다운로드 및 결과 확인
    11. Xilinx IP 사용
      1. Clock 생성
      2. Memory 생성
        1. Block Memory Generator
      3. Memory Test
        1. Single Port RAM
        2. Simple Dual Port RAM
        3. 그 외의 메모리
    12. UART Controller 구현
      1. Uart Tx 구현
        1. 코드 구현
        2. simulation
      2. Uart Rx 구현
        1. FIFO 생성
        2. 코드 구현
        3. simulation
      3. Uart Controller 구현
      4. LoopBack 구현
        1. 구성
        2. 코드 구현
        3. simulation
        4. UserTop 모듈 구현
        5. xdc 생성
        6. Bitstream, XSA 파일 생성
        7. 결과 확인
    13. I2C Controller 구현
      1. I2C Controller 스펙
        1. Start, Stop Condition
        2. 8bits 데이터 전송
        3. Slave ID
        4. I2C Write 데이터 구조
        5. I2C Read 데이터 구조
      2. I2C Master 구현
        1. i2c_master write신호 분석
        2. i2c_master read신호 분석
        3. i2c_master 코드 구현
        4. i2c_master simulation
        5. 결과 확인
        6. i2c_master8x8 구현
        7. i2c_master8x8 simulation
      3. I2C Slave 구현
        1. I2C Slave 신호 분석
        2. i2c_slave8x8 코드 구현
        3. i2c_reg8x8 구현
        4. i2c_slave8x8, i2c_reg8x8 simulation
      4. I2C TASK
        1. i2c_task 코드 구현
      5. UserTop 모듈 구현
      6. xdc 파일 추가 
      7. Bitstream, XSA 파일 생성
      8. 보드 다운로드 및 결과 확인
    14. NRZL Decoder 구현
      1. 시스템 개요
      2. 코드 구현
        1. clock 생성
        2. FIFO 생성
        3. data_counter 구현
        4. noise_reduction 구현
        5. data_encoder 구현
        6. nrzlDecTop 구현
        7. UserTop 모듈 구현
        8. xdc 구현
        9. Bitstream, XSA 파일 생성, 결과 확인
        10. 결론
    15. FMC Interface 구현
      1. FMC Timing
      2. 코드 구현
        1. fmc_model.v
        2. simulation fmc_model
        3. fmc_interface.v
        4. sys_host.v
        5. spram_32x8192
        6. simulation fmc_interface
        7. fmc_top.v
        8. UserTop.v
        9. UserTop.xdc
      3. Bitstream 생성
      4. Timing 오류 해결
      5. 보드 다운로드 및 결과 확인
      6. 결론
    16. Revision History

Q&A 💬

Q. 강의를 듣는 대상자는 누구인가요?

Verilog, FPGA를 배우고자 하시는 분들을 대상으로 합니다.  본 강의는 "Verilog를 이용한 FPGA 활용"편을 Zynq 보드에서 구현할 수 있도록 내용을 새롭게 구성하고, 모든 소스 코드들은 Zynq mini 7020(7010)보드에서 검증된 자료들을 사용하였습니다.

Q. 강의를 듣기 위해서 준비해야 할 사항이 있나요?

강의의 모든 내용은 Zynq mini 7020(7010) 보드에서 실습할 수 있습니다. Zynq mini 7020(7010) 보드를 준비해 주시면 직접 코드를 구현해서 결과를 확인할 수 있어 많은 도움이 됩니다.

Q. 프로그램 툴은 무엇을 사용하나요?

Vivado 2022.1 버전을 사용합니다. 강의 내용중에 툴을 설치하는 내용이 있으니 강의에 따라서 설치해 주시면 됩니다.

Q. Zynq mini 보드는 어디에서 구매하나요?

국내 쇼핑몰이나 알리익스프레스를 통해 구매하시면 됩니다.


25년 경험으로 축적된 
베릴로그 활용 노하우를 전합니다.

저는 20여 년 동안 대기업, 중소기업에서 개발자로 일해왔고 현재는 작은 기업을 운영하고 있습니다. CCTV용 ISP (Image Signal Processing) ASIC를 개발하였고 OLED 검사 장비, DAQ (Data Acquisition System) 등 FPGA를 이용한 많은 제품을 개발하였습니다. FPGA뿐만 아니라 FW 개발 (STM32, PIC32, AVR, ATMEGA 등), 회로설계, Windows Program 등 많은 경험을 가지고 있습니다. 

💾 강의 환경을 확인해주세요.

  • 실습 환경으로는 Windows OS, Vivado 2022.1을 사용합니다.
  • 본 강의는 전자문서(PDF) 형식으로 구성된 텍스트 강의입니다. (약 110,000자 분량)

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • FPGA를 배우고자 하시는 분

  • Verilog를 배우고자 하시는 분

  • Zynq를 배우고자 하시는 분

선수 지식,
필요할까요?

  • C 언어

  • Verilog 언어 (기초)

안녕하세요
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++

입니다.

커리큘럼

전체

381개

수업 자료

가 제공되는 강의입니다.

강의 게시일: 
마지막 업데이트일: 

수강평

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