강의

멘토링

커뮤니티

Hardware

/

Embedded IoT

Verilog FPGA Program 1 (Zynq mini 7020)

In this course, students will learn how to implement Verilog using the Zynq board.

(5.0) 3 reviews

83 learners

  • alex
텍스트 강의
베릴로그
verilog
하드웨어
zynq
Verilog HDL
FPGA

Reviews from Early Learners

What you will gain after the course

  • Verilog coding

  • Utilizing ZYNQ Board

  • How to use Vivado, Vitis

  • Create a Test Bench and Verify Simulation

  • Download to board and check results

The core of implementing and practicing using the Zynq board.

📢 Please note before taking the class.

  • This course is a text lecture in electronic document (PDF) format (approximately 110,000 characters). All source files covered in the course are provided to those who take the course. The course source code can be downloaded from Section 0 [Material Sharing Link].

Verilog implementation using the Zynq board

✅ Code implementation ✅ Simulation verification using Text Bench ✅ Board verification

Before coding, we analyze the overall system and provide know-how on how to code efficiently. We provide easy-to-understand explanations based on extensive techniques and know-how gained from over 20 years of field experience. Furthermore, the source code included in the lectures is not for study purposes but rather is used in real-world applications. All attendees will receive access to the full source code used in the lectures.

The first half of the lecture will cover the following two topics:

  • Install Vivado 2022.1
  • Download the code implemented on the Zynq board and check the results.

In the latter part of the lecture , we will verify the results downloaded to the board through coding and simulation verification for each topic.

  • LED control using counter
  • SPI Controller Implementation
  • UART Controller Implementation
  • I2C Controller Implementation
  • Uses Xilinx IP (Clock Generator, Memory Generator)
  • NRZL Decoder implementation
  • Implementation of FMC (Flexible Memory Controller) Interface

FPGA Utilization with Verilog for ZYNQ - Lecture Preview

Detailed Curriculum
  1. outline
  2. HW configuration
  3. SW installation
  4. Download the ZynQ board
    1. Basic Template Configuration
      1. Create a project
      2. Create Block Design
    2. Download in Debug Mode
      1. Add source code
      2. Bitstream generation
      3. Run and download Vitis
    3. Download using FSBL (First Stage Bootloader)
      1. Create an FSBL project
      2. Create Boot Image
      3. Download the board and check the results
    4. Download using FSBL, Application SW
      1. Create an FSBL project
      2. Create an Application Project
      3. Create Boot Image
    5. Download the board and check the results
      1. LED control using counter
      2. Create a project
      3. Project screen configuration
      4. Add source code
      5. Text Editor Settings
      6. Code implementation
      7. XDC implementation
      8. Generate Bitstream
      9. Check results
    6. Simulation
      1. Add simulation source file
      2. Implementing the tb_led_counter.v code
      3. Simulation in progress
      4. Simulation results
    7. About the code
      1. Implementable code, non-implementable code
      2. The basic unit of code is Clock.
      3. All code is processed in parallel.
      4. ternary operator
      5. Use Register
      6. FSM (Finite State Machine)
    8. Spi Master implementation
      1. Specs
      2. Code implementation
        1. Port definition
        2. State definition
        3. Code implementation
        4. Timing diagram
      3. Simulation
        1. Test bench implementation
        2. Check simulation results
    9. Spi Slave Implementation
      1. Specs
      2. Code implementation
        1. Port definition
        2. State definition
        3. Code implementation
      3. Simulation
        1. Test bench implementation
        2. Check simulation results
    10. Spi communication implementation
      1. Button noise removal
        1. Button circuit
        2. Code implementation
        3. Simulation
      2. SPI Task Implementation
        1. Port definition
        2. Button noise removal
        3. State definition
        4. Code implementation
      3. Simulation
        1. Test bench implementation
        2. Check simulation results
      4. Implementing the UsetTop module
      5. Add xdc file
      6. Generate Bitstream
      7. Download the board and check the results
    11. Use of Xilinx IP
      1. Create a Clock
      2. Memory creation
        1. Block Memory Generator
      3. Memory Test
        1. Single Port RAM
        2. Simple Dual Port RAM
        3. Other memory
    12. UART Controller Implementation
      1. Uart Tx implementation
        1. Code implementation
        2. simulation
      2. Uart Rx implementation
        1. Create FIFO
        2. Code implementation
        3. simulation
      3. Uart Controller Implementation
      4. LoopBack implementation
        1. composition
        2. Code implementation
        3. simulation
        4. Implementing the UserTop module
        5. xdc creation
        6. Generate Bitstream and XSA files
        7. Check results
    13. I2C Controller Implementation
      1. I2C Controller Specifications
        1. Start, Stop Condition
        2. 8-bit data transmission
        3. Slave ID
        4. I2C Write Data Structure
        5. I2C Read Data Structure
      2. I2C Master Implementation
        1. i2c_master write signal analysis
        2. i2c_master read signal analysis
        3. i2c_master code implementation
        4. i2c_master simulation
        5. Check results
        6. i2c_master8x8 implementation
        7. i2c_master8x8 simulation
      3. I2C Slave Implementation
        1. I2C Slave Signal Analysis
        2. i2c_slave8x8 code implementation
        3. i2c_reg8x8 implementation
        4. i2c_slave8x8, i2c_reg8x8 simulation
      4. I2C TASK
        1. i2c_task code implementation
      5. Implementing the UserTop module
      6. Add xdc file
      7. Generate Bitstream and XSA files
      8. Download the board and check the results
    14. NRZL Decoder implementation
      1. System Overview
      2. Code implementation
        1. Create a clock
        2. Create FIFO
        3. data_counter implementation
        4. noise_reduction implementation
        5. data_encoder implementation
        6. nrzlDecTop implementation
        7. Implementing the UserTop module
        8. xdc implementation
        9. Create Bitstream and XSA files and check the results
        10. conclusion
    15. FMC Interface Implementation
      1. FMC Timing
      2. Code implementation
        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 generation
      4. Resolving Timing Errors
      5. Download the board and check the results
      6. conclusion
    16. Revision History

Q&A 💬

Q. Who is the target audience for this lecture?

This course is designed for those interested in learning Verilog and FPGAs. This course restructures the "Using FPGAs with Verilog" section to enable implementation on the Zynq board. All source code is verified on the Zynq mini 7020 (7010) board.

Q. Is there anything I need to prepare to attend the lecture?

All of the lecture content can be practiced on the Zynq mini 7020 (7010) board. Having a Zynq mini 7020 (7010) board available will be very helpful, as you can implement the code yourself and verify the results.

Q. What program tools do you use?

I'm using Vivado version 2022.1. The lecture includes instructions on installing tools, so please follow the instructions to install them.

Q. Where can I buy the Zynq mini board?

You can purchase it through domestic shopping malls or AliExpress.


Accumulated with 25 years of experience
We share our know-how on utilizing Verilog.

I've worked as a developer for over 20 years at both large and small companies, and I currently run a small business. I've developed an ISP (Image Signal Processing) ASIC for CCTV, and I've developed numerous FPGA-based products, including OLED inspection equipment and DAQ (Data Acquisition System). Beyond FPGAs, I have extensive experience in software development (STM32, PIC32, AVR, ATMEGA, etc.), circuit design, and Windows programming.

💾 Please check the lecture environment.

  • The practice environment uses Windows OS and Vivado 2022.1.
  • This lecture is a text lecture in electronic document (PDF) format (approximately 110,000 characters).

Recommended for
these people

Who is this course right for?

  • For those who want to learn FPGA

  • For those who want to learn Verilog

  • For those who want to learn Zynq

Need to know before starting?

  • C language

  • Verilog Language (Basics)

Hello
This is

1,732

Learners

77

Reviews

128

Answers

4.8

Rating

19

Courses

저는 지난 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++

입니다.

Curriculum

All

381 lectures

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

3 reviews

5.0

3 reviews

  • 권홍근님의 프로필 이미지
    권홍근

    Reviews 1

    Average Rating 5.0

    5

    10% enrolled

    안녕하세요 최근에 강의를 구매한 수강생입니다. 다름이아니라 이러한 강의교재를 어떻게 활용해야하는지 모르겠습니다. 그저 소스코드를 직접 타이핑하고 왜 이렇게 코딩을했는지 의문을 가지고 추궁을 하면 코딩 실력이 향상이 되는건가요? 구체적인 학습방법을 알려주신다면 정말 감사하겠습니다.

    • alex
      Instructor

      안녕하세요~ verilog, fpga를 배우는 것은 상위 언어(C, App, Java, 등)와는 매우 다릅니다. verilog, fpga는 HW와 매우 밀접하게 연관이 있습니다. 즉 HW 자체를 설계하는 것입니다. 예를 들어, UART 통신을 생각해 보면, 상위 Application단에서는 시리얼 프로토콜을 만들고 통신을 구현합니다. fpga 단에서는 UART Controller 자체를 설계하고 구현합니다. fpga 단에서 구현되는 것은 Main Clock 단위에서 구현됩니다. 매 Clock마다 신호들이 어떻게 구현되는지를 구현하는 것입니다. Application 에서는 Protocol level에서 코드를 구현합니다. verilog, fpga를 공부하려면 타겟보드에서 코드를 구현하고 구현된 코드대로 HW가 동작하는 것을 확인하고, 물론 코드를 구현/검증하기 위해서는 simulation을 통하여 매 clock 마다 신호들이 맞게 동작하는지를 확인해야 합니다. verilog, fpga를 배우려면, 단순히 study 차원에서 하는 것은 크게 의미가 없을 수도 있습니다. 가장 좋은 방법은 기본적인 기능들을 익히고 (자신이 마음대로 코드를 구현하고, 툴을 사용하는 것을 익혀야 합니다) 실제 프로젝트를 해가면서 자신이 무언가를 새롭게 구현하는 것이 좋습니다. 본 강의는 실제 프로젝트를 진행하기 위한 선행 기술들을 학습한다고 보시면 좋습니다. 실제 프로젝트를 하기 위해서는 verilog, fpga, 툴 등을 마음대로 다루는 것이 매우 중요합니다. verilog로 코딩하고, simulation으로 검증하고 (오류가 있으면 코드 수정해서 다시 simulation 으로 검증하고), 구현한 내용을 보드에 올려서 동작을 확인하는 이 과정을 어느 정도 익혀야 합니다. 본 강의 내용을 어느 정도 익히면, 실제 실무에서 작은 것부터 프로젝트를 진행해 나갈 수 있습니다. 제가 최근에 진행한 프로젝트는 PC에서 USB 를 통해서 들어오는 이미지 데이터를 FPGA에서 Frame Converter(DDR3)를 구현해서 LVDS로 데이터를 출력하는 내용이었습니다. 이러한 것들을 구현하기 위해서는 본 강의의 내용과 DDR3 Contoroller를 구현하고, LVDS에 대한 이해가 있어야 가능합니다. 아무튼 verilog, fpga를 배우는 과정이 쉽지는 않습니다. 그러나 기본적인 기능들을 잘 익히고, 실무에서 프로젝트들을 진행하면서 여러가지 기술들을 습득해 나가시다 보면 좋은 개발자가 되실 것이라 생각합니다. 인내심을 가지고 배우시길 바랍니다. 감사함니다.

    • 우선, 상세한 답변 정말 감사합니다. 앞으로 강의를 수강하면서 궁금한 점이나 막히는 부분이 생기면, 여기에 질문을 드려도 괜찮을까요? 혹시 메일이나 연락주고받기 편한 방법이 있으시면 알려주시면 감사하겠습니다.

    • alex
      Instructor

      메일로 주셔도 되고, 제가 운영하는 카페에 질문을 올려주셔도 됩니다. 메일 : alex@ihil.co.kr 카페 : Cafe.naver.com/worshippt 감사합니다~

    • 네넵 알겠습니다. 오늘도 좋은 하루 보내십시오 감사합니다.

  • 박현영님의 프로필 이미지
    박현영

    Reviews 5

    Average Rating 5.0

    5

    75% enrolled

    FPGA 설계 강의 찾기가 생각보다 어려운데, 차근차근 교재 보면서 따라해보면서 재밌게 할 수 있는 강의 입니다!!! 이번 강의 말고도 Zynq 보드 활용한 다른 강의들도 많이많이 만들어주세요~!! 전부 다 수강 하고 경험 해보면서, 실습해보면서 실력 업그레이드 하고 싶습니다 ㅎㅎ 감사합니다~!

    • alex
      Instructor

      수강평 감사드립니다. 나름 열심히 만들었는데 이런 수강평은 많은 힘이 됩니다. verilog, fpga가 배우기가 쉽지 않습니다. 그러나 차근차근 배우다보면 조심씩 실력이 늘고 자신감도 생기게 됩니다. 강의 통해 능력있는 개발자 되시길 바랍니다 감사합니다 ~!!

  • draco님의 프로필 이미지
    draco

    Reviews 5

    Average Rating 5.0

    5

    100% enrolled

    코딩 스타일에 도움이 되었습니다.

    • alex
      Instructor

      코딩 스타일에 도움이 되셨다니 감사합니다. 개발자가 자신의 코딩 스타일을 개발하는 것을 무척 중요할 것 같습니다. 저는 시간이 지날수록 알고리즘 개발에 SM(State Machine)을 사용하는 것이 무척 중요하고 유용하다고 생각됩니다. SM을 많이 이용해 보시길 권해드립니다. 감사합니다 ~!!

$84.70

alex's other courses

Check out other courses by the instructor!