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

/

Semiconductor

Verilog FPGA プログラム 2 (MicroBlaze、Arty A7-35T)

Xilinx FPGA で MicroBlaze を実装する内容です。

  • ihil
fpga
verilog
hdl
xilinx
FPGA
MicroBlaze
Verilog HDL

学習した受講者のレビュー

こんなことが学べます

  • FPGA で MicroBlaze を使用

  • Verilog プログラム

  • FPGA プログラム

勉強するのにふさわしいFPGA MicroBlaze!
講義と一緒ならポガルできますよ💪

Xilinx FPGAでMicroBlazeを使用!

MicroBlazeは、FPGAでIP形式で提供されるプロセッサです。 MicroBlazeはProcessor CoreとPeripheralを分離しているため、ユーザーが目的に合わせてPeripheralを設定できます。

講義のテーマ 📖

FPGAを扱うのは難しいです。 FPGAを実装するためには、HW的な知識はもちろん、使用するツールとVerilog文法についても多くの理解が必要です。 MCUを移植して使用するには、より深い知識が必要です。 XilinxはFPGAに関する多くのドキュメントを提供していますが、ドキュメントを見ると他のドキュメントを参照することが多すぎます。したがって、ザイリンクスが提供する文書を見て理解することは、経験豊富な開発者ではなく、非常に困難です。

このレッスンでは、ザイリンクスFPGAでMicroBlazeを移植して使用する方法について詳しく説明します。ツールをインストールする過程から MicroBlazeを移植して使用する方法、 ユーザー ロジックと MCU 間のインターフェイスの実装について詳しく説明します。 FPGAでMicorBlazeを使用するスキルで、さらに一歩成長したキャリアを作りましょう!

講義で理解できない部分は、Inflearnコミュニティまたは私が運営するカフェを通じて質問を投稿していただければ答えていただきます。

📢受講前に必ず確認してください!

  • 講義は、電子文書形式で構成されたテキスト講義です。講義を受講している方には、講義で説明されているすべてのソースファイルを提供しています。講義は今後の動画で制作予定です。
  • このレッスンは、2019年以降のバージョンのVitis 2022.1に基づいて説明されています。
  • 講義資料は「セクション0 - 資料共有リンク - 添付ファイル」からダウンロードできます。

講義特長 ✨

講義内容は
実務にすぐに適用可能!

テストで検証済み
オープンソース提供!

デバッグ、開発に必要
Windowsアプリプログラム提供!


こんな方にオススメです🙋‍♀️

VerilogでFPGAを設計した
経験のある方

C言語を利用して
FWをやった方

MicroBlazeに興味がありますが、
経験がない方


こんなことを学びます📚

セクション1 HW構成

セクション2 Vitis 2022.1のインストールプロセス

  • Vitisは非常に重いツールです。インストール時の注意事項と、現在使用している Vivado と競合せずにインストールする方法について説明します。

セクション3 。 MicroBlazeで画面に「Hello world」を出力する

  • このセクションでは、おおよその流れを特定することを目的として説明します。

セクション4 。 MicoBlazeのPeripheral

  • 主に使用するGPIO、Timer、Uart、Interruptについて説明します。 MicroBlazeが提供するペリフェラルは似ているので、講義の内容を学ぶと、他のペリフェラルも簡単に使用できます。

セクション5実務に適用できる知識

  • ほとんどの材料はペリフェラルを扱うことで終わります。ただし、FPGAでMicroBlazeを使用する目的は、ユーザーが設計したLogicをMicroBlazeを介して制御することです。最終的には、ユーザーインターフェース(UI)を介してユーザーが設計したロジックを制御することです。
  • 講義では、User Logicを構成するための4つのPWMモジュールを追加しました。 User Logicを制御するためのRegister Mapを設定し、MicroBlaze、UIを介してUser Logicを制御します。これらすべてのプロセスを説明し、実装し、結果を示します。
  • このセクションで説明されている内容は、実務に直接適用できます。 User Logicを追加してRegister Mapを追加すると、他のすべてのプロセスは実装されたままになります。

セクション6 lwIP Echo Server

  • lwIPを利用してEcho Serverを実装する内容です。 MicroBlazeでCache(Instruction Cache、Data Cache)を使用するためにDDR Controllerを実装します。

セクション7 lwIPの活用

  • lwIPを使用したTCP / IP通信にUser Logicを追加する手順について説明します。 PCがTCP / IPを使用して命令を送信すると、lwIPを介して命令を受信し、User LogicがボードのLEDを制御するプロセスについて説明します。これにより、lwIPとUser Logicのインターフェースを実装し、結果を確認します。

セクション8 W5500モジュールを使用したTCP / IPの実装

  • v1.4 で追加された内容です。 wiznet社のw5500モジュールを利用してTCP/IPを実装する内容です。 PCとNetworkで接続してデータ送受信を実現します。これを応用すればTCP/IPを利用する分野に多様に適用できるはずです。

セクション9 Block Memory Interface - 1

  • v1.5 で追加された内容です。 Block Designがデフォルトで提供するBlock Memory Interfaceを実装します。

セクション10 Block Memory Interface - 2

  • v1.5 で追加された内容です。 User LogicでBlock Memoryを追加してBlock Memory Interfaceを実装します。これを利用してUser Register Mapを実装し、pwmのfrequency, dutyを制御する例を実装します。
詳細カリキュラムが気になったら?
  1. 概要(4)
  2. HW構成(6)
  3. SW取付(7)
  4. Hello Worldの実装 (12)
    1. 基本テンプレートの実装 (12)
      1. プロジェクト作成(12)
      2. Create Block Design (15)
      3. Create HDL Wrapper (21)
      4. User Logicの実装 (22)
      5. xdcの実装(27)
      6. Generate Bitstream (30)
      7. エクスポートハードウェア (31)
    2. Embedded SWの実装 (34)
    3. Flashにプログラムをダウンロード (45)
      1. vitisからダウンロード (45)
      2. elfファイルをvivadoから追加してダウンロードする(50)
  5. MicroBlaze Peripheralの実装 (59)
    1. ブロックデザイン (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. タイマー (64)
    2. アプリケーションSW (71)
      1. xparameters.h file (72)
      2. ソース構造 (75)
      3. コードの実装 (77)
    3. ダウンロードと結果の確認 (82)
  6. User Logic インターフェイスの実装 (83)
    1. ブロックデザイン (84)
    2. User Logicの実装 (88)
      1. mcu_pwm.v(89)
      2. pwm_top.v (90)
      3. spi_slave.v (91)
        1. 通信プロトコル (93)
        2. レジスタマップ (93)
        3. 波形解析(94)
        4. コードの実装 (96)
        5. Simulation (103)
      4. BlazeTop.v (106)
      5. xdcの生成 (109)
    3. アプリケーションSW (112)
      1. comm_task コピー (116)
      2. helloworld.c (116)
      3. 通信プロトコル (118)
      4. comm_task (119)
    4. ダウンロードと結果の確認 (120)
    5. HW Update (124)
  7. lwIP Echo Serverの実装 (126)
    1. システム構成 (126)
    2. lwIP HWの実装(128)
      1. プロジェクトの作成 (128)
      2. HWブロック生成 (130)
      3. Create HDL Wrapper (152)
      4. アプリケーションSW(158)
      5. 結果の確認 (167)
      6. ソース分析 (174)
  8. lwIPの活用 (180)
    1. HWデザイン(180)
    2. User Logic 実装 (185)
    3. Application SWの実装(192)
  9. W5500を使用したTCP / IPの実装(202)
    1. プロジェクト作成(206)
    2. ブロックデザイン(207)
    3. トップモジュールの実装(217)
    4. アプリケーションSWの実装(222)
      1. メモリサイズ(232)
      2. ファイル構造(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. 結果の確認 (240)
      1. ビルプロジェクト(240)
      2. PCネットワーク設定(241)
      3. プログラムのダウンロードと結果の確認 (242)
      4. 外部Flashにプログラムをダウンロードする(246)
    6. 結論 (247)
  10. Block Memory Interface - 1 (248)
    1. プロジェクトの作成 (248)
    2. ブロックデザイン(250)
    3. Constraints ファイルの追加 (260)
    4. アプリケーションSWの実装(263)
  11. Block Memory Interface - 2 (268)
    1. プロジェクトの作成 (269)
    2. ブロックデザイン(270)
    3. User Logic Design (279)
    4. アプリケーションSWの実装(289)
    5. ダウンロードと結果の確認 (289)
    6. リンクスクリプトの修正 (295)
  12. 参考資料 (297)
  13. Revision History (298)

予想される質問 Q&A 💬

Q.講義を聞く対象者は誰ですか?

V erilog文法を理解し、FPGA設計経験があり、組み込みシステム(FW)開発経験がある方を対象としています。しかし、ちょっとした経験しか持っていても、内容どおりにそのまま従えば十分に理解できるでしょう。

Q.講義を聞くために準備すべき事項はありますか?

本講義は実習ボードArty A7-35T(100T、Digilent社製)で行われます。ボードが用意されていない場合は、まず内容を見て、後でボードを購入して必ずボード上で確認してください。 FPGAの実装はシミュレーションで終わらず、必ずHWで検証する必要があります。

Q.プログラムツールは何を使用しますか?

最新バージョンの vitis 2022.1 バージョンを使用します。本講義には設置過程が詳しく紹介されています。


知識共有者の紹介✒️

履歴

私は20年以上にわたり大企業、中小企業で開発者として働いてきましたが、現在は小さな企業を運営しています。 CCTV用ISP(Image Signal Processing)ASICを開発し、OLED検査装置、DAQ(Data Acquisition System)などFPGAを利用した多くの製品を開発しました。 FPGAだけでなく、FW開発(STM32、PIC32、AVR、ATMEGAなど)、回路設計、Windowsプログラムなど多くの経験を持っています。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • MicroBlaze に興味のある方

  • FPGA に興味のある方

  • Verilog に興味のある方

前提知識、
必要でしょうか?

  • C言語

  • Verilog HDL

  • Xilinx FPGA

こんにちは
です。

1,647

受講生

66

受講レビュー

123

回答

4.8

講座評価

19

講座

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

입니다.

カリキュラム

全体

290件

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

5件

5.0

5件の受講レビュー

  • withuman3898님의 프로필 이미지
    withuman3898

    受講レビュー 2

    平均評価 5.0

    5

    52% 受講後に作成

    It is very helpful for my work. Thank you for the great lecture!!

    • soi897님의 프로필 이미지
      soi897

      受講レビュー 6

      平均評価 5.0

      5

      100% 受講後に作成

      Unless it has ARM built-in like Zybo, it is easier to develop with Microblaze. However, the method of using Microblaze is spread all over the Internet, so you have to study by Googling, and if a beginner studies like that, it seems like it is difficult to distinguish what is really necessary. However, this lecture will provide basic knowledge for using Microblaze. If you apply the contents of this lecture a little, you will be able to apply it sufficiently in practice. And the best part is that you can immediately find and review it whenever you need it.

      • ihil
        知識共有者

        Thank you so much for your sincere review. I am also grateful that it was helpful. I hope you will become a great developer in the future. These days, there are so many video materials, so videos can be convenient and have many advantages. However, as you said, when you want to watch the material repeatedly, documents are better. This is because you can find where and what is in the document right away. I will continue to create useful materials so that many people can benefit from them. Thank you~!!

    • neulha님의 프로필 이미지
      neulha

      受講レビュー 12

      平均評価 5.0

      5

      100% 受講後に作成

      • park395989962님의 프로필 이미지
        park395989962

        受講レビュー 1

        平均評価 5.0

        5

        26% 受講後に作成

        I am currently working on a project using Microblaze. There are not many resources on the Internet and it was difficult to find practical information, but I am getting a lot of help. I can see the traces of a lot of time and effort put into creating the resources. Anyway, it was a very good lecture. I think it will be helpful to many people.

        • ihil
          知識共有者

          Thank you for your course review. I hope that your project with MicroBlaze goes well and you get good results. Thank you~!!

      • baekga839465님의 프로필 이미지
        baekga839465

        受講レビュー 1

        平均評価 5.0

        5

        61% 受講後に作成

        It's not difficult because it's been explained easily so far. It seems like a good lecture. I'm designing FPGA Logic and HW in the field, and these days, it seems like a lot of people are demanding the ability to handle MB or NIOS. I think it will be a good stepping stone. I ask for good education in the future.

        • ihil
          知識共有者

          Thank you so much for your review. I appreciate that you found it helpful. The world seems to be changing so fast. Technology is also changing so fast. There are so many things to do. Anyway, I hope everything goes well. Thank you~!!

      ¥9,670

      ihilの他の講座

      知識共有者の他の講座を見てみましょう!

      似ている講座

      同じ分野の他の講座を見てみましょう!