Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Hardware

/

Semiconductor

Verilog FPGA Program 2 (MicroBlaze, Arty A7-35T)

This is about implementing MicroBlaze in Xilinx FPGA.

(5.0) 5 reviews

192 learners

  • ihil
fpga
verilog
hdl
xilinx
FPGA
MicroBlaze
Verilog HDL

Reviews from Early Learners

What you will learn!

  • Using MicroBlaze in FPGA

  • Verilog program

  • FPGA programming

FPGA MicroBlaze is a daunting task to study!
You can get a lot of fun with this lecture 💪

Using MicroBlaze on Xilinx FPGAs!

MicroBlaze is a processor provided in IP form in FPGA. MicroBlaze separates the Processor Core and Peripherals, allowing users to configure the Peripherals according to their purposes.

Lecture Topics 📖

There are many difficulties in dealing with FPGA. In order to implement FPGA, you need to have not only HW knowledge, but also a lot of understanding of the tools and Verilog syntax used. Porting and using MCU requires even deeper knowledge. Xilinx provides a lot of documentation on FPGA, but when you look at the documentation, there are too many cases where you are referred to other documents. Therefore, it is very difficult for anyone other than experienced developers to read and understand the documentation provided by Xilinx.

This lecture explains in detail how to port and use MicroBlaze on Xilinx FPGAs , starting from the process of installing the tools. How to port and use MicroBlaze , We'll walk you through implementing the interface between your user logic and the MCU in detail. Take your career to the next level with skills using MicorBlaze in FPGAs!

If there is anything you do not understand in the lecture, please post a question through the Inflearn community or the cafe I run and I will answer it.

📢 Please make sure to check before taking the class!

  • This lecture is a text lecture in electronic document format. All source files explained in the lecture will be provided to those who take the lecture. The lecture will be produced as a video in the future.
  • This lecture is based on Vitis 2022.1, the version after 2019.
  • Lecture materials can be downloaded from 'Section 0 - Material Sharing Link - Attachments'.

Lecture Features ✨

The lecture content is
Immediately applicable to practice!

Tested and proven
Open source provided!

Debugging, development required
Windows app program provided!


I recommend this to these people 🙋‍♀️

Designing FPGAs with Verilog
Someone with experience

Using the C language
Anyone who has tried FW

I'm interested in MicroBlaze, but
Someone with no experience


Learn things like this 📚

Section 1. HW Configuration

Section 2. Vitis 2022.1 Installation Process

  • Vitis is a very heavy tool. I will explain what you need to be careful about when installing it and how to install it without conflicting with your current Vivado.

Section 3. Print “Hello world” to the screen with MicroBlaze

  • This section aims to give you an overview of the flow.

Section 4. Peripheral of MicoBlaze

  • We will explain the GPIO, Timer, Uart, and Interrupt that are mainly used. Since the peripherals provided by MicroBlaze are similar, if you learn the contents of the lecture, you can easily use other peripherals.

Section 5. Knowledge that can be applied in practice

  • Most of the material ends with dealing with the Peripheral. However, the purpose of using MicroBlaze in FPGA is to control the user-designed logic through MicroBlaze. Ultimately, it is to control the user-designed logic through the UI(User Interface).
  • In this lecture, we added 4 PWM modules to configure User Logic. We configured Register Map to control User Logic, and controlled User Logic through MicroBlaze and UI. We explained and implemented all of these processes and showed the results.
  • The content described in this section can be applied directly to practice. All you have to do is add User Logic and Register Map, and you can use all other processes as implemented.

Section 6. lwIP Echo Server

  • This is about implementing an Echo Server using lwIP. Implement a DDR Controller to use Cache (Instruction Cache, Data Cache) in MicroBlaze.

Section 7. Using lwIP

  • This explains the process of adding User Logic to TCP/IP communication using lwIP. This explains the process of sending a command using TCP/IP from a PC, receiving the command via lwIP, and controlling the LED of the board in User Logic. Through this, the interface between lwIP and User Logic is implemented and the results are confirmed.

Section 8. TCP/IP Implementation Using W5500 Module

  • This is the content added in v1.4. It is about implementing TCP/IP using wiznet's w5500 module. It implements data transmission and reception by connecting to a PC and a network. If you apply this, you will be able to apply it in various fields that utilize TCP/IP.

Section 9. Block Memory Interface - 1

  • Added in v1.5. Implements the Block Memory Interface provided by default in Block Design.

Section 10. Block Memory Interface - 2

  • This is what was added in v1.5. Block Memory is added to User Logic to implement Block Memory Interface. By applying this, User Register Map is implemented, and an example of controlling frequency and duty of PWM is implemented.
Are you curious about the detailed curriculum?
  1. Overview (4)
  2. HW Configuration (6)
  3. SW Installation (7)
  4. Hello World Implementation (12)
    1. Basic Template Implementation (12)
      1. Create a project (12)
      2. Create Block Design (15)
      3. Create HDL Wrapper (21)
      4. User Logic Implementation (22)
      5. xdc implementation (27)
      6. Generate Bitstream (30)
      7. Export Hardware (31)
    2. Embedded SW implementation (34)
    3. Download the program in Flash (45)
      1. Download from vitis (45)
      2. Add elf file to vivado and download (50)
  5. MicroBlaze Peripheral Implementation (59)
    1. Block Design (59)
      1. GPIO : LED_4bits (60)
      2. GPIO: btn0 (External Interrupt-1) (61)
      3. GPIO: btn1 (External Interrupt-2) (62)
      4. GPIO: btn3, 4 (General Input, Toggle switch) (63)
      5. Timer (64)
    2. Application SW (71)
      1. xparameters.h file (72)
      2. Source Structure (75)
      3. Code implementation (77)
    3. Download and check results (82)
  6. Implementing User Logic Interface (83)
    1. Block Design (84)
    2. User Logic Implementation (88)
      1. mcu_pwm.v (89)
      2. pwm_top.v (90)
      3. spi_slave.v (91)
        1. Communication Protocol (93)
        2. Register Map (93)
        3. Waveform Analysis (94)
        4. Code Implementation (96)
        5. Simulation (103)
      4. BlazeTop.v (106)
      5. Generate xdc (109)
    3. Application SW (112)
      1. Copy comm_task (116)
      2. helloworld.c (116)
      3. Communication Protocol (118)
      4. comm_task (119)
    4. Download and check results (120)
    5. HW Update (124)
  7. lwIP Echo Server Implementation (126)
    1. System Configuration (126)
    2. lwIP HW Implementation (128)
      1. Create a project (128)
      2. HW Block Creation (130)
      3. Create HDL Wrapper (152)
      4. Application SW (158)
      5. Check Results (167)
      6. Source Analysis (174)
  8. Leveraging lwIP (180)
    1. HW Design (180)
    2. User Logic Implementation (185)
    3. Application SW Implementation (192)
  9. TCP/IP Implementation Using W5500 (202)
    1. Create a project (206)
    2. Block Design (207)
    3. Top Module Implementation (217)
    4. Application SW Implementation (222)
      1. Memory Size (232)
      2. File Structure (233)
      3. data_type.h (233)
      4. ax_common.h (234)
      5. w5500.c, w5500.h (234)
      6. w5500_task.c, w5500_task.h (234)
      7. w5500_socket.c, w5500_socket.h (235)
      8. w5500_loopback.c, w5500_loopback.h (235)
      9. helloworld.c (238)
    5. Check Results (240)
      1. Build Project (240)
      2. PC Network Settings (241)
      3. Download the program and check the results (242)
      4. Download programs to external Flash (246)
    6. Conclusion (247)
  10. Block Memory Interface - 1 (248)
    1. Create a project (248)
    2. Block Design (250)
    3. Add constraints file (260)
    4. Application SW Implementation (263)
  11. Block Memory Interface - 2 (268)
    1. Create a project (269)
    2. Block Design (270)
    3. User Logic Design (279)
    4. Application SW Implementation (289)
    5. Download and check results (289)
    6. Fix link script (295)
  12. References (297)
  13. Revision History (298)

Expected Questions Q&A 💬

Q. Who is the target audience for this lecture?

This book is intended for those who understand Verilog syntax, have experience in FPGA design, and have experience in developing embedded systems (FW). However, even those with only a little experience will be able to understand it sufficiently if they follow the content exactly.

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

This lecture will be conducted on the Arty A7-35T (100T, Digilent) practice board. If you do not have a board, please check the contents first and then purchase the board later and make sure to check it on the board. FPGA implementation does not end with simulation, but must be verified in HW.

Q. What program tools do you use?

We use the latest version, vitis 2022.1. The installation process is described in detail in this lecture.


Introducing the knowledge sharer ✒️

History

I have been working as a developer for over 20 years in large and small companies and currently run a small business. I have developed an ISP(Image Signal Processing) ASIC for CCTV and many products using FPGA such as OLED inspection equipment and DAQ(Data Acquisition System). In addition to FPGA, I have a lot of experience in FW development (STM32, PIC32, AVR, ATMEGA, etc.), circuit design, Windows Program, etc.


Recommended for
these people

Who is this course right for?

  • Anyone interested in MicroBlaze?

  • Anyone interested in FPGA

  • Anyone interested in Verilog?

Need to know before starting?

  • C language

  • Verilog HDL

  • Xilinx FPGA

Hello
This is

1,647

Learners

66

Reviews

123

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

290 lectures

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

5 reviews

5.0

5 reviews

  • withuman님의 프로필 이미지
    withuman

    Reviews 2

    Average Rating 5.0

    5

    52% enrolled

    실무에 많은 도움이 되고 있습니다. 좋은 강의 감사합니다!!

    • soi897님의 프로필 이미지
      soi897

      Reviews 6

      Average Rating 5.0

      5

      100% enrolled

      Zybo 같이 아예 ARM이 내장되어 있는 경우가 아니라면, Microblaze로 개발하는 게 편합니다. 하지만 Microblaze를 활용하는 방법은 인터넷에 여기저기 퍼져 있어 구글링을 해 가며 공부를 해야 하고, 초보자가 그렇게 공부하면 무엇이 진짜 필요한 내용인지 구별할 수가 없는 것 같습니다. 하지만 이 강의는 Microblaze를 활용하기 위한 기본적인 지식을 함양해 줍니다. 이 강의의 내용을 조금만 응용하시면 실무에도 충분히 활용 가능할 것입니다. 그리고 무엇보다 장점인 것은 필요할 때마다 바로바로 찾아서 복습할 수 있다는 것입니다.

      • alex
        Instructor

        진심어린 수강평 정말로 감사드립니다. 도움이 되셨다니 또한 감사합니다. 앞으로 훌륭한 개발자가 되시길 기원드립니다. 요즘에는 동영상 자료가 워낙에 많이 있어서 동영상이 편할수도 있고 장점도 많은 것 같습니다. 그러나 말씀하여 주신대로 반복해서 자료를 보고 싶을 때에는 문서가 좋은 것 같습니다. 문서는 어디에 어떤 내용이 있는지 바로 찾을 수 있기 때문입니다. 앞으로도 계속해서 유익한 자료 만들어서 많은 분들이 도움 받을 수 있도록 노력하겠습니다. 감사합니다~!!

    • haneuli님의 프로필 이미지
      haneuli

      Reviews 12

      Average Rating 5.0

      5

      100% enrolled

      • balmont님의 프로필 이미지
        balmont

        Reviews 1

        Average Rating 5.0

        5

        26% enrolled

        금번에 Microblaze를 활용해서 프로젝트를 하고 있습니다. 인터넷에도 자료가 그리많지않고 실무적인 내용을 찾기가 많이 힘들었는데 많은 도움을 얻고 갑니다. 자료 만드신거 보니 많은시간 노력의 흔적이 느껴집니다. 암튼 너무 좋은 강의였습니다. 많은 분들에게 도움이 될거라 생각됩니다

        • alex
          Instructor

          수강평 감사드립니다. MicroBlaze 관련 프로젝트를 진행하고 계신다니, 프로젝트가 잘 진행되어 좋은 결과가 있길 바랍니다. 감사합니다~!!

      • baekga83님의 프로필 이미지
        baekga83

        Reviews 1

        Average Rating 5.0

        5

        61% enrolled

        지금까지 쉽게 설명이 되어 있어 어렵지 않습니다. 좋은 강의인 것 같습니다. 현업에서 FPGA Logic과 HW를 설계하고 있는데 요즘은 MB or NIOS 까지 Handling 할 수 있는 능력을 많이들 요구 하는 것 같습니다. 좋은 디딤돌이 될 것 같습니다. 앞으로도 좋은 교육 부탁 드립니다.

        • alex
          Instructor

          수강평 정말로 감사드립니다. 도움이 되신다고 하니 감사합니다. 세상이 너무 빠르게 바뀌는 것 같습니다. 기술도 너무 빠르게 변해서 이것도 해야 되고, 저것도 해야 되고 할 게 너무 많네요. 아무튼 진행하시는 일들 잘 진행되실길 바랍니다. 감사합니다 ~!!

      $63.80

      ihil's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!