강의

멘토링

커뮤니티

Hardware

/

Semiconductor

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

This is about implementing MicroBlaze in Xilinx FPGA.

(5.0) 5 reviews

193 learners

  • alex
fpga
verilog
hdl
xilinx
FPGA
MicroBlaze
Verilog HDL

Reviews from Early Learners

What you will gain after the course

  • 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,732

Learners

76

Reviews

127

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

  • withuman3898님의 프로필 이미지
    withuman3898

    Reviews 2

    Average Rating 5.0

    5

    52% enrolled

    Nó rất hữu ích trong thực tế. Cảm ơn bạn vì bài giảng tuyệt vời!!

    • soi897님의 프로필 이미지
      soi897

      Reviews 6

      Average Rating 5.0

      5

      100% enrolled

      Trừ khi có ARM tích hợp sẵn như Zybo, nếu không sẽ rất thuận tiện khi phát triển với Microblaze. Tuy nhiên, các phương pháp sử dụng Microblaze tràn lan trên Internet nên bạn phải google để tìm hiểu, và nếu người mới bắt đầu học như vậy thì có vẻ như họ sẽ không thể phân biệt được nội dung nào thực sự cần thiết. Tuy nhiên, bài giảng này phát triển những kiến ​​thức cơ bản để sử dụng Microblaze. Chỉ cần áp dụng một chút nội dung bài giảng này, bạn sẽ có thể vận dụng triệt để nó vào thực tế. Và điều tuyệt vời nhất là bạn có thể tìm và xem lại nó ngay lập tức bất cứ khi nào bạn cần.

      • ihil
        Instructor

        Cảm ơn bạn rất nhiều vì đánh giá chân thành của bạn. Cảm ơn bạn cũng đã giúp đỡ của bạn. Tôi hy vọng bạn sẽ trở thành một nhà phát triển tuyệt vời trong tương lai. Ngày nay, có rất nhiều tài liệu video nên video có thể trở nên tiện lợi và có nhiều ưu điểm. Tuy nhiên, như bạn đã nói, tôi nghĩ tài liệu rất tốt khi bạn muốn xem lại tài liệu nhiều lần. Điều này là do bạn có thể tìm thấy ngay tài liệu đó là gì và ở đâu. Chúng tôi sẽ tiếp tục tạo ra những tài liệu hữu ích để nhiều người có thể hưởng lợi. Cảm ơn bạn~!!

    • neulha님의 프로필 이미지
      neulha

      Reviews 14

      Average Rating 5.0

      5

      100% enrolled

      • park395989962님의 프로필 이미지
        park395989962

        Reviews 1

        Average Rating 5.0

        5

        26% enrolled

        Lần này, tôi đang thực hiện một dự án sử dụng Microblaze. Không có nhiều thông tin trên internet và rất khó tìm được nội dung thực tế nhưng tôi đã nhận được rất nhiều sự giúp đỡ. Nhìn vào chất liệu bạn đã tạo ra, tôi có thể thấy dấu vết của rất nhiều thời gian và công sức đã bỏ ra. Dù sao thì đó cũng là một bài giảng rất hay. Tôi nghĩ nó sẽ hữu ích cho nhiều người

        • ihil
          Instructor

          Cảm ơn bạn đã xem xét của bạn. Tôi nghe nói bạn đang thực hiện một dự án liên quan đến MicroBlaze. Tôi hy vọng dự án sẽ diễn ra tốt đẹp và bạn sẽ đạt được kết quả tốt. Cảm ơn bạn~!!

      • baekga839465님의 프로필 이미지
        baekga839465

        Reviews 1

        Average Rating 5.0

        5

        61% enrolled

        Nó đã được giải thích một cách dễ dàng cho đến nay, vì vậy nó không khó. Tôi nghĩ đó là một bài giảng hay. Tôi đang thiết kế logic FPGA và CTNH trong lĩnh vực của mình. Ngày nay, có vẻ như nhiều người đang yêu cầu khả năng xử lý MB hoặc NIOS. Tôi nghĩ nó sẽ là một bước đệm tốt. Tôi hy vọng bạn tiếp tục nhận được sự giáo dục tốt.

        • ihil
          Instructor

          Cảm ơn bạn rất nhiều vì đánh giá của bạn. Cảm ơn sự giúp đỡ của bạn. Thế giới dường như đang thay đổi quá nhanh. Công nghệ thay đổi nhanh quá Tôi phải làm điều này, tôi phải làm điều kia, có rất nhiều việc phải làm. Dù sao đi nữa, tôi hy vọng mọi việc sẽ diễn ra tốt đẹp. Cảm ơn bạn~!!

      $63.80

      alex's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!