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

/

Embedded IoT

Verilog FPGA Program 1 (Zynq mini 7020)

この講義を通じて、受講生はZynqボードを活用してVerilogを実装する内容を学びます。

  • ihil
텍스트 강의
베릴로그
verilog
하드웨어
zynq
Verilog HDL
FPGA

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

こんなことが学べます

  • Verilogコーディング

  • ZYNQボードの活用

  • Vivado、Vitisの使い方

  • Test Benchを作成してSimulationを検証する

  • ボードにダウンロードして結果を確認する

Zynqボード活用実装+実践の中核。

📢受講前に参考にしてください。

  • この講義は、電子文書(PDF)形式で構成されたテキスト講義です。 (約110,000文字)講義を受講している人は、講義で説明されているすべてのソースファイルを提供します。レッスンのソースコードは、セクション0 [資料共有リンク]からダウンロードできます。

Zynqボードを活用したVerilogの実装

✅ コードの実装 ✅ Text Bench による Simulation の検証 ✅ ボードの検証

コーディングする前に、システム全体を分析し、どのように効率的にコーディングできるかについてのノウハウを提供します。過去20年間で現場で経験してきた多くの技法とノウハウを基に理解しやすく説明します。また、講義に含まれるソースコードは、スタディのためのコードではなく、実務で使用されたコードです。講義を聞くすべての人には、講義に使われた完全なソースコードを提供します。

講義の前半では、以下の2つのテーマを扱います。

  • Vivado 2022.1をインストール
  • Zynqボードに実装されたコードのダウンロードと結果の確認

レッスンの後半では、トピックごとにコーディングとシミュレーションの検証を通じてボードにダウンロードした結果を確認します。

  • カウンターによるLED制御
  • SPI Contollerの実装
  • UART Controllerの実装
  • I2C Contollerの実装
  • Xilinx IPの使用(Clock Generator、Memory Generator)
  • NRZL Decoderの実装
  • FMC(Flexible Memory Controller)インターフェースの実装

Verilog を使用した FPGA 活用 for ZYNQ - 講義プレビュー

詳細カリキュラム
  1. 概要
  2. HW構成
  3. SWの取り付け
  4. ZynQボードのダウンロード
    1. デフォルトのテンプレート構成
      1. プロジェクトの作成
      2. Create Block Design
    2. Debug Modeにダウンロード
      1. ソースコードの追加
      2. Bitstreamの作成
      3. Vitisの実行とダウンロード
    3. FSBL(First Stage Bootloader)を使ったダウンロード
      1. FSBLプロジェクトの作成
      2. Create Boot Image
      3. ボードのダウンロードと結果の確認
    4. FSBL、Application SWを使用したダウンロード
      1. FSBLプロジェクトの作成
      2. アプリケーションプロジェクトの作成
      3. Create Boot Image
    5. ボードのダウンロードと結果の確認
      1. カウンターによるLED制御
      2. プロジェクトの作成
      3. プロジェクト画面の構成
      4. ソースコードの追加
      5. テキストエディタの設定
      6. コードの実装
      7. XDCの実装
      8. Generate Bitstream
      9. 結果の確認
    6. Simulation
      1. Simulation source file の追加
      2. tb_led_counter.vコードの実装
      3. Simulationの進行
      4. シミュレーション結果
    7. コードについて
      1. 実装可能なコード、実装できないコード
      2. コードの基本単位はClockです。
      3. すべてのコードは並列に処理されます。
      4. 3項 演算子
      5. Registerの使用
      6. FSM(Finite State Machine)
    8. Spi Masterの実装
      1. 仕様
      2. コードの実装
        1. ポート定義
        2. State 定義
        3. コードの実装
        4. タイミング図
      3. Simulation
        1. Test benchの実装
        2. Simulation 結果の確認
    9. Spi Slaveの実装
      1. 仕様
      2. コードの実装
        1. ポート定義
        2. State 定義
        3. コードの実装
      3. Simulation
        1. Test benchの実装
        2. Simulation 結果の確認
    10. Spi通信の実装
      1. ボタンノイズ除去
        1. ボタン回路
        2. コードの実装
        3. Simulation
      2. SPI Taskの実装
        1. ポート定義
        2. ボタンノイズ除去
        3. State 定義
        4. コードの実装
      3. Simulation
        1. Test benchの実装
        2. Simulation 結果の確認
      4. UsetTopモジュールの実装
      5. xdcファイルの追加
      6. Generate Bitstream
      7. ボードのダウンロードと結果の確認
    11. Xilinx IPの使用
      1. クロックの作成
      2. メモリの作成
        1. Block Memory Generator
      3. Memory Test
        1. シングルポートRAM
        2. Simple Dual Port RAM
        3. その他のメモリ
    12. UART Controllerの実装
      1. Uart Txの実装
        1. コードの実装
        2. simulation
      2. Uart Rxの実装
        1. FIFOの生成
        2. コードの実装
        3. simulation
      3. Uart Controllerの実装
      4. LoopBackの実装
        1. 構成
        2. コードの実装
        3. simulation
        4. UserTopモジュールの実装
        5. xdcの生成
        6. Bitstream、XSAファイルの生成
        7. 結果の確認
    13. I2C Controllerの実装
      1. I2C Controller 仕様
        1. Start, Stop Condition
        2. 8bitsデータ転送
        3. Slave ID
        4. I2C Write データ構造
        5. I2C Readデータ構造
      2. I2C Masterの実装
        1. i2c_master write信号解析
        2. i2c_master read信号解析
        3. i2c_masterコードの実装
        4. i2c_master simulation
        5. 結果の確認
        6. i2c_master8x8の実装
        7. i2c_master8x8 simulation
      3. I2C Slaveの実装
        1. I2C Slave信号解析
        2. i2c_slave8x8コードの実装
        3. i2c_reg8x8の実装
        4. i2c_slave8x8、i2c_reg8x8 simulation
      4. I2C TASK
        1. i2c_taskコードの実装
      5. UserTopモジュールの実装
      6. xdcファイルの追加
      7. Bitstream、XSAファイルの生成
      8. ボードのダウンロードと結果の確認
    14. NRZL Decoderの実装
      1. システム概要
      2. コードの実装
        1. クロックの作成
        2. FIFOの生成
        3. data_counterの実装
        4. noise_reductionの実装
        5. data_encoderの実装
        6. nrzlDecTopの実装
        7. UserTopモジュールの実装
        8. xdcの実装
        9. Bitstream、XSAファイルの生成、結果の確認
        10. 結論
    15. FMC Interfaceの実装
      1. FMC Timing
      2. コードの実装
        1. fmc_model.v
        2. simulation fmc_model
        3. fmc_interface.v
        4. sys_host.v
        5. spram_32x8192
        6. simulation fmc_interface
        7. fmc_top.v
        8. UserTop.v
        9. UserTop.xdc
      3. Bitstreamの作成
      4. Timingエラーの解決
      5. ボードのダウンロードと結果の確認
      6. 結論
    16. Revision History

Q&A 💬

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

Verilog、FPGAを学びたい方を対象としています。このレッスンでは、「Verilogを使用したFPGAの活用」編をZynqボードに実装できるように内容を新しく構成し、すべてのソースコードはZynq mini 7020(7010)ボードで検証された資料を使用しました。

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

講義のすべての内容はZynq mini 7020(7010)ボードで練習できます。 Zynq mini 7020(7010)ボードを用意しておけば、直接コードを実装して結果を確認することができ、多くの役に立ちます。

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

Vivado 2022.1 バージョンを使用します。講義内容の中にツールを設置する内容がありますので、講義に従って設置してください。

Q. Zynq miniボードはどこで購入できますか?

国内ショッピングモールやアリエクスプレスを通じて購入してください。


25年の経験で蓄積された
ベリログ活用ノウハウをお伝えします。

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

💾講義環境を確認してください。

  • 練習環境には、Windows OS、Vivado 2022.1を使用します。
  • この講義は、電子文書(PDF)形式で構成されたテキスト講義です。 (約110,000文字分)

こんな方に
おすすめです

学習対象は
誰でしょう?

  • FPGAを学びたい方

  • Verilogを学びたい人

  • Zynqを学びたい人

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

  • C言語

  • Verilog 言語(基礎)

こんにちは
です。

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++

입니다.

カリキュラム

全体

381件

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

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

受講レビュー

全体

3件

5.0

3件の受講レビュー

  • hyp6636님의 프로필 이미지
    hyp6636

    受講レビュー 5

    平均評価 5.0

    5

    75% 受講後に作成

    FPGA設計の講義探しが思ったより難しいのですが、じっくりと教材見ながら従ってみながら面白いことができる講義です!今回の講義ではなく、Zynqボードを活用した他の講義もたくさん作ってくださいね~!全部受講して経験してみながら、実習してみながら実力アップグレードしたいですㅎㅎありがとうございました〜!

    • ihil
      知識共有者

      受講評 ありがとうございます。それなりに頑張りましたが、このような受講評は多くの力になります。 verilog、fpgaが学ぶのは簡単ではありません。しかし、じっくり学んでみると気をつけて実力が増え、自信も生まれるようになります。講義を通じて、能力のある開発者になっていただきありがとうございます〜!

  • hotak3210195님의 프로필 이미지
    hotak3210195

    受講レビュー 5

    平均評価 5.0

    5

    100% 受講後に作成

    コーディングスタイルに役立ちました。

    • ihil
      知識共有者

      コーディングスタイルにお役立ていただきありがとうございます。開発者が自分のコーディングスタイルを開発することは非常に重要なようです。私は時間が経つにつれて、アルゴリズムの開発にSM(State Machine)を使用することが非常に重要で有用であると考えられています。 SMをたくさん利用してみることをお勧めします。ありがとうございます〜!

  • ghddrms14061304님의 프로필 이미지
    ghddrms14061304

    受講レビュー 1

    平均評価 5.0

    5

    10% 受講後に作成

    こんにちは。最近、講義を購入した受講生です。あの、講義教材をどのように活用すればいいのか分かりません。ただひたすらソースコードを打ち込んで、なぜこのようなコーディングをしたのか疑問を持って追及すれば、コーディングスキルは向上するものなのでしょうか?具体的な学習方法を教えていただけると大変ありがたいです。

    • ihil
      知識共有者

      こんにちは〜 Verilog、FPGAを学ぶことは、上位言語(C、App、Javaなど)とは大きく異なります。 Verilog、FPGAはHWと非常に密接に関連しています。つまり、HW自体を設計するのです。 例えば、UART通信を考えてみると、 上位Application段ではシリアルプロトコルを作成し、通信を実装します。 FPGA段ではUART Controller自体を設計し、実装します。FPGA段で実装されるものは、Main Clock単位で実装されます。毎Clockごとに信号がどのように実装されるかを実装するのです。ApplicationではProtocol levelでコードを実装します。 Verilog、FPGAを勉強するには、ターゲットボードでコードを実装し、実装されたコード通りにHWが動作することを確認し、もちろんコードを実装/検証するためにはsimulationを通して毎clockごとに信号が正しく動作するかを確認する必要があります。 Verilog、FPGAを学ぶには、単にstudyの次元で行うことはあまり意味がないかもしれません。最も良い方法は、基本的な機能を習得し(自分が自由にコードを実装し、ツールを使用することを習得する必要があります)、実際のプロジェクトを進めながら、自分が何かを新しく実装することをお勧めします。 本講義は、実際のプロジェクトを進めるための先行技術を学習すると見ていただければと思います。実際のプロジェクトをするためには、Verilog、FPGA、ツールなどを自由に扱うことが非常に重要です。Verilogでコーディングし、simulationで検証し(エラーがあればコードを修正して再度simulationで検証し)、実装した内容をボードに上げて動作を確認する、この過程をある程度習得する必要があります。 本講義の内容をある程度習得すれば、実際の業務で小さいものからプロジェクトを進めていくことができます。 私が最近進めたプロジェクトは、PCからUSBを通して入ってくるイメージデータをFPGAでFrame Converter(DDR3)を実装してLVDSでデータを出力するという内容でした。これらを実装するためには、本講義の内容とDDR3 Controllerを実装し、LVDSに対する理解がある必要があります。 とにかくVerilog、FPGAを学ぶ過程は簡単ではありません。しかし、基本的な機能をよく習得し、実務でプロジェクトを進めながら様々な技術を習得していくと、良い開発者になれると思います。 忍耐力を持って学んでください。 ありがとうございます。

    • まず、詳細なご回答本当にありがとうございます。 今後、講義を受講する中で、気になる点や行き詰まる部分が出てきた場合、こちらで質問させていただいてもよろしいでしょうか? もし、メールや連絡を取りやすい方法がありましたら、教えていただけるとありがたいです。

    • ihil
      知識共有者

      メールで送っていただいてもいいですし、私が運営しているカフェに質問を投稿していただいても構いません。 メール:alex@ihil.co.kr カフェ:Cafe.naver.com/worshippt ありがとうございます~

    • はい、承知いたしました。 今日も良い一日をお過ごしください。 ありがとうございます。

¥12,845

ihilの他の講座

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