Verilog FPGA Program 2 (MicroBlaze1)

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

難易度 初級

受講期間 無制限

Verilog HDL
Verilog HDL
FPGA
FPGA
MicroBlaze
MicroBlaze
Verilog HDL
Verilog HDL
FPGA
FPGA
MicroBlaze
MicroBlaze

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

5.0

5.0

withuman

52% 受講後に作成

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

5.0

베릴로그응애

100% 受講後に作成

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

5.0

balmont

26% 受講後に作成

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

受講後に得られること

  • FPGAでMicroBlazeを使用する

  • Verilogプログラム

  • FPGAプログラム

勉強するのが大変なFPGA MicroBlaze!
講義と一緒なら攻略できます 💪

Xilinx FPGAでMicroBlazeを使用する!

MicroBlazeは、FPGA内でIP形式で提供されるプロセッサです。MicroBlazeはプロセッサコアと周辺機器(Peripheral)が分離されているため、ユーザーが目的に合わせて周辺機器を構成することができます。

講義テーマ 📖

FPGAを扱うことには多くの困難が伴います。FPGAを実装するためには、ハードウェア的な知識はもちろん、使用するツールやVerilogの文法についても深い理解が必要です。MCUをポーティングして使用するためには、さらに深い知識が要求されます。XilinxはFPGAに関する多くのドキュメントを提供していますが、ドキュメントを読むと他のドキュメントを参照するように指示されるケースが非常に多いです。そのため、Xilinx社が提供するドキュメントを見て理解することは、熟練した開発者でなければ非常に困難です。

本講義では Xilinx FPGAにMicroBlazeをポーティングして使用する方法を詳細に説明します。ツールのインストール過程から MicroBlazeをポーティングして使用する方法、 ユーザーロジックとMCU間のインターフェースを実装することについて詳しく解説します。FPGAでMicroBlazeを使いこなすスキルで、さらなるキャリアアップを目指しましょう!

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

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

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

講義の特長 ✨

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

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

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


このような方におすすめです 🙋‍♀️

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

C言語を用いて
FWを作成したことがある方

MicroBlazeに興味はあるけれど
経験がない方


こんなことを学びます 📚

セクション 1. HW構成

セクション 2. Vitis 2022.1 インストール手順

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

セクション 3. MicroBlazeで画面に“Hello world”を出力する

  • 本セクションでは、大まかな流れを把握することに目的を置いて説明します。

セクション 4. MicroBlazeの周辺機器(Peripheral)

  • 主に使われるGPIO、Timer、Uart、Interruptについて説明します。MicroBlazeで提供されるPeripheralは似ているため、講義内容を習得すれば他のPeripheralも簡単に使用することができます。

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

  • ほとんどの資料がPeripheralを扱うところで終わっています。しかし、FPGAでMicroBlazeを使用する目的は、ユーザーが設計したLogicをMicroBlazeを通じて制御することです。究極的には、UI(User Interface)を通じてユーザーが設計したLogicを制御することです。
  • 講義では、User Logicを構成するためのPWMモジュールを4つ追加しました。User Logicを制御するためのRegister Mapを構成し、MicroBlazeおよびUIを通じてUser Logicを制御します。これらすべての過程を説明・実装し、結果を提示します。
  • 本セクションで説明した内容は、実務にそのまま適用できます。User Logicを追加し、Register Mapを追加すれば、その他のすべての過程は実装されたものをそのまま使用するだけです。

セクション 6. lwIP Echo Server

  • lwIPを利用してEcho Serverを実装する内容です。MicroBlazeでキャッシュ(Instruction Cache、Data Cache)を使用するために、DDRコントローラーを実装します。

セクション 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とネットワークで接続してデータの送受信を実装します。これを応用すれば、TCP/IPを利用する分野に多様に適用できるでしょう。

セクション 9. Block Memory Interface - 1

  • v1.5で追加された内容です。Block Designで標準提供されているBlock Memory Interfaceを実装します。

セクション 10Block 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. 기본 Template 구현 (12)
      1. プロジェクト作成 (12)
      2. Create Block Design (15)
      3. HDL Wrapper 作成 (21)
      4. User Logic 実装 (22)
      5. xdc 実装 (27)
      6. Generate Bitstream (30)
      7. Export Hardware (31)
    2. Embedded SWの実装 (34)
    3. Flash에 프로그램 다운로드 (45)
      1. vitisでダウンロード (45)
      2. elfファイルをvivadoで追加後ダウンロード (50)
  5. MicroBlaze Peripheral 구현 (59)
    1. Block Design (59)
      1. GPIO : LED_4bits (60)
      2. GPIO : btn0 (External Interrupt-1) (61)
      3. GPIO : btn1 (外部割り込み-2) (62)
      4. GPIO : btn3, 4(General Input, Toggle switch) (63)
      5. Timer (64)
    2. Application SW (71)
      1. xparameters.h ファイル (72)
      2. ソース構造 (75)
      3. コード実装 (77)
    3. ダウンロードおよび結果の確認 (82)
  6. User Logic 인터페이스 구현 (83)
    1. Block Design (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. Application 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 Block 生成 (130)
      3. HDL Wrapper 作成 (152)
      4. Application SW (158)
      5. 結果確認 (167)
      6. ソース分析 (174)
  8. lwIP 활용 (180)
    1. HW Design (180)
    2. User Logic 実装 (185)
    3. Application SW 実装 (192)
  9. W5500을 이용한 TCP/IP 구현 (202)
    1. プロジェクト生成 (206)
    2. Block Design (207)
    3. Top Module 実装 (217)
    4. 응용 SW 구현 (222)
      1. Memory Size (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. Block Design (250)
    3. Constraints ファイルの追加 (260)
    4. 応用SWの実装 (263)
  11. Block Memory Interface - 2 (268)
    1. プロジェクト生成 (269)
    2. Block Design (270)
    3. User Logic Design (279)
    4. 応用SWの実装 (289)
    5. ダウンロードおよび結果の確認 (289)
    6. リンクスクリプトの修正 (295)
  12. 参考資料 (297)
  13. Revision History (298)

予想される質問 Q&A 💬

Q. 講義の対象者は誰ですか?

Verilogの文法を理解しており、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

こんにちは
alexです。

キャリア認証

1,791

受講生

96

受講レビュー

134

回答

4.8

講座評価

17

講座

私は過去20年余り、大企業や中小企業で開発者として働いてきました。

現在は小さな企業の代表を務めております。

主な経歴は以下の通りです。

  • Verilog HDLを用いたFPGA設計

    • CCTV用ISP ASICの開発(約10年)

    • OLEDディスプレイ検査装置の開発(約3年)

    • FPGAを用いた装置開発

  • MCU FW

    • STM32

    • PIC32

    • AVR, ATMEGA

    • DSP (TI)

  • Windowsアプリケーションプログラム

    • Visual Studio MFC, C++

です。

もっと見る

カリキュラム

全体

290件

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

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

受講レビュー

全体

5件

5.0

5件の受講レビュー

  • withuman3898님의 프로필 이미지
    withuman3898

    受講レビュー 2

    平均評価 5.0

    5

    52% 受講後に作成

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

    • baekga839465님의 프로필 이미지
      baekga839465

      受講レビュー 1

      平均評価 5.0

      5

      61% 受講後に作成

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

      • ihil
        知識共有者

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

    • soi897님의 프로필 이미지
      soi897

      受講レビュー 6

      平均評価 5.0

      5

      100% 受講後に作成

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

      • ihil
        知識共有者

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

    • park395989962님의 프로필 이미지
      park395989962

      受講レビュー 1

      平均評価 5.0

      5

      26% 受講後に作成

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

      • ihil
        知識共有者

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

    • neulha님의 프로필 이미지
      neulha

      受講レビュー 15

      平均評価 5.0

      5

      100% 受講後に作成

      alexの他の講座

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

      似ている講座

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