강의

멘토링

커뮤니티

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,731

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

    実務に多くのお役に立っています。 良い講義ありがとうございます!

    • soi897님의 프로필 이미지
      soi897

      Reviews 6

      Average Rating 5.0

      5

      100% enrolled

      ZyboのようにARMが内蔵されていない場合は、Microblazeで開発するのが楽です。しかし、Microblazeを活用する方法はインターネットにあちこちに広がっており、グーグルを行って勉強をしなければならず、初心者がそのように勉強すれば何が本当に必要な内容なのか区別することができないようです。しかし、この講義はMicroblazeを活用するための基本的な知識を盛り上げてくれます。この講義の内容を少しだけ応用すれば、実務にも十分活用可能です。そして何よりも長所なのは、必要に応じてすぐに探して復習できるということです。

      • ihil
        Instructor

        心からの受講評 ありがとうございます。助けてくれてありがとう。今後、素晴らしい開発者になりますように。 最近では動画素材があまりに多くあり、動画が楽になることもあり、長所も多いようです。しかし、言ってくださったように繰り返し資料を見たいときには文書が良いようです。文書はどこに何があるのか​​をすぐに見つけることができるからです。今後も引き続き有益な資料作りをして、多くの方がお役に立てるよう努めてまいります。ありがとう〜!

    • neulha님의 프로필 이미지
      neulha

      Reviews 14

      Average Rating 5.0

      5

      100% enrolled

      • park395989962님의 프로필 이미지
        park395989962

        Reviews 1

        Average Rating 5.0

        5

        26% enrolled

        今回はMicroblazeを活用してプロジェクトを行っています。でした。

        • ihil
          Instructor

          受講坪ありがとうございます。

      • baekga839465님의 프로필 이미지
        baekga839465

        Reviews 1

        Average Rating 5.0

        5

        61% enrolled

        これまで簡単に説明ができて難しくありません。 良い講義のようです。 現業でFPGA LogicとHWを設計しています。 最近はMB or NIOSまでハンドリングできる能力をたくさん求めているようです。 良いディンドルになりそうです。 これからも良い教育をお願いします。

        • ihil
          Instructor

          受講評 ありがとうございます。参考になってくれてありがとう。 世界が急速に変わるようです。技術も急速に変わりました これもしなければならず、それもしなければならないことが多すぎますね。 とにかく進んでいることがうまくいくことを願っています。ありがとうございます〜!

      $63.80

      alex's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!