강의

멘토링

로드맵

Hardware

/

Embedded IoT

Verilog FPGA Program 1 (Zynq mini 7020)

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

  • alex
텍스트 강의
베릴로그
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,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++

입니다.

カリキュラム

全体

381件

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

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

受講レビュー

全体

3件

5.0

3件の受講レビュー

  • hyp6636님의 프로필 이미지
    hyp6636

    受講レビュー 5

    平均評価 5.0

    5

    75% 受講後に作成

    It's harder than I thought to find an FPGA design lecture, but this is a fun lecture that I can follow along step by step while looking at the textbook!!! In addition to this lecture, please make many, many other lectures that utilize the Zynq board~!! I want to upgrade my skills by taking all of them, gaining experience, and practicing. Thank you~!

    • ihil
      知識共有者

      Thank you for your review. I worked hard to make it, so this kind of review is a great help. Verilog and FPGA are not easy to learn. However, if you learn step by step, your skills will gradually improve and you will gain confidence. I hope you will become a capable developer through the lecture. Thank you ~!!

  • hotak3210195님의 프로필 이미지
    hotak3210195

    受講レビュー 5

    平均評価 5.0

    5

    100% 受講後に作成

    It helped me with my coding style.

    • ihil
      知識共有者

      Thank you for helping me with my coding style. I think it is very important for developers to develop their own coding style. I think that using SM(State Machine) in algorithm development is very important and useful as time goes by. I recommend you to use SM a lot. Thank you ~!!

  • ghddrms14061304님의 프로필 이미지
    ghddrms14061304

    受講レビュー 1

    平均評価 5.0

    5

    10% 受講後に作成

    Hello, I'm a student who recently purchased your course. I'm writing because I'm not sure how to utilize the course materials. Is my coding skills improving by just typing in the source code and questioning why it was coded that way? I would be very grateful if you could provide me with a specific learning method.

    • ihil
      知識共有者

      Hello, Learning Verilog and FPGA is very different from learning higher-level languages (C, App, Java, etc.). Verilog and FPGA are closely related to hardware. It's about designing the hardware itself. For example, if you think about UART communication, in the upper Application layer, you create a serial protocol and implement communication. In the FPGA layer, you design and implement the UART Controller itself. What is implemented in the FPGA layer is implemented in Main Clock units. It's about implementing how signals are implemented for each clock. In the Application, you implement code at the Protocol level. To study Verilog and FPGA, it may not be very meaningful to do it simply for study purposes. The best way is to learn basic functions (you need to learn to implement code as you like and use tools) and implement something new while doing real projects. You can think of this lecture as learning the prerequisite technologies for proceeding with real projects. To do a real project, it is very important to handle Verilog, FPGA, tools, etc. freely. You need to familiarize yourself with the process of coding with Verilog, verifying with simulation (if there is an error, modify the code and verify with simulation again), and checking the operation by uploading the implemented content to the board. If you are somewhat familiar with the contents of this lecture, you can proceed with projects from small things in actual practice. A recent project I worked on was implementing a Frame Converter (DDR3) in an FPGA to output image data coming from a PC via USB to LVDS. To implement these things, you need the contents of this lecture, implement DDR3 Controller, and understand LVDS. Anyway, learning Verilog and FPGA is not easy. However, I believe that if you learn the basic functions well and acquire various technologies while working on projects in the field, you will become a good developer. Please learn with patience. Thank you.

    • First of all, thank you so much for the detailed reply. As I take the lectures, if I have any questions or get stuck, would it be okay to ask questions here? If there is a more convenient way to contact you, such as by email, please let me know.

    • ihil
      知識共有者

      You can send it via email or post your question on the cafe I run. Email: alex@ihil.co.kr Cafe: Cafe.naver.com/worshippt Thank you.

    • Okay, I understand. Have a great day today. Thank you.

¥13,140

alexの他の講座

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