강의

멘토링

로드맵

Hardware

/

Semiconductor

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

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

  • alex
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,677

受講生

71

受講レビュー

125

回答

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件の受講レビュー

  • withuman님의 프로필 이미지
    withuman

    受講レビュー 2

    平均評価 5.0

    5

    52% 受講後に作成

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

    • soi897님의 프로필 이미지
      soi897

      受講レビュー 6

      平均評価 5.0

      5

      100% 受講後に作成

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

      • alex
        知識共有者

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

    • haneuli님의 프로필 이미지
      haneuli

      受講レビュー 14

      平均評価 5.0

      5

      100% 受講後に作成

      • balmont님의 프로필 이미지
        balmont

        受講レビュー 1

        平均評価 5.0

        5

        26% 受講後に作成

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

        • alex
          知識共有者

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

      • baekga83님의 프로필 이미지
        baekga83

        受講レビュー 1

        平均評価 5.0

        5

        61% 受講後に作成

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

        • alex
          知識共有者

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

      ¥9,898

      alexの他の講座

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

      似ている講座

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