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

/

Semiconductor

Verilog FPGA プログラム 3 (DDR コントローラー、Arty A7-35T)

この講義では、FPGA を使用して DDR コントローラーを実装する方法を学びます。

  • ihil
verilog
베릴로그
fpga
FPGA

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

こんなことが学べます

  • DDR コントローラー

  • フレームバッファ

実力あるVerilog開発者に必要
DDR Memory Controllerスキル! ✨

FPGAで実装する
DDR Memory Controller 🛠️

FPGAには多くの機能がIP形式で提供されています。その中で、映像データの処理に主に使用されるDDRコントローラについて説明します。

DDR Controllerを実装する
2つの方法🤔

1. データシートを見てそのまま実装

  • キャリアが古い方が主に使う方法です。
  • システムが複雑になると、毎日このコードで実装することは不可能です。そのため、必要な部分だけを実装して使用することが多いのですが、プロジェクトが変わるたびに毎回異なる方法で実装しなければならない困難があります。

2. Xilinx社が提供するIPで実装

  • 汎用で使用できるIPです。一度使い方を覚えておくと、大幅に変更しなくても複数のプロジェクトに使用できます。
  • 最初に使い方を学ぶプロセスは不満です。ザイリンクスは多くの文書やサンプルコードを提供していますが、情報が多すぎて活用するのは難しいです。

著者はDDRコントローラを実装し、これらの多くの困難を経験しました。何か必要な部分だけまとめられた一つの文書があれば良くないかという考えをたくさんしました。最初は必要な部分だけ理解して開発を進めてDDRを読み書きしてみて、ますます理解度を高めていくのが効率的です。まず、全体的な構造を理解し、後で詳細な内容を理解することが効果的です。本書は、DDR Controllerに初めてアクセスする開発者にも簡単にアクセスできるように構成されています。

DDR Memoryはビデオデータ処理にとって非常に重要です。しかし、専門家でなければアクセスが難しく、またこれらの専門的な内容を扱う資料がほとんどないのが現実です。このレッスンでは、DDR Memory Controllerを実装するすべての内容について説明します。また、DDR Controllerを利用してFrame Bufferを実装する内容について詳しく説明しています。

💾受講前に確認してください!

  • 本講義はPDF形式のテキスト講義で、別途映像を提供しません。
  • レッスンで説明されているモードソースコードを提供します。
  • Digilent社が販売するArty A7開発ボードで実習を進めます。

講義の特徴✨

#1.
DDR Controlleの
すべてを入れました。

DDR Memory Controllerの内容を扱う文書はほとんどありません。この講義では、すべてのコースを詳細に説明します。 Memory IPを生成してSimulationする過程から汎用で使用可能なDDR Memory Controllerの実装、映像データ処理のためのFrame Bufferの実装まで、すべての過程を説明しています。また、ソースコードごとにシミュレーションを通じて検証し、動作を理解できるように構成されています。

本講義の内容をすべて理解すれば、DDR Controllerを実装するだけでなく、Verilogを活用したFPGA実装の実力ある開発者になります。

#2.
Verilogのスキル
アップグレードしてみてください。

Verilogを学びたい人にとって、DDR Memory Controllerはとても良いスキルです。多くの開発経歴を持っている人もDDR Memory Controllerに触れていない方が多いです。 Verilogを一段階アップグレードする機会を提供します。

#3.
実務に適用可能
ソースコードを
提供します

このレッスンを購入する人には、レッスンで説明されているすべての情報源を提供します。提供される情報源は、講義を作成しながら、最初から1つずつコーディングされ、検証された資料で構成されています。また、ビジネスですぐに使用できるコードで構成されています。この講義を通してDDR Controllerのマスターになることを願っています。


学習内容📚

このレッスンでは、DDRコントローラIPを生成するプロセスと、生成されたIPがどのように動作するかをシミュレーションを通じて動作プロセスを理解し生成されたIPを使用して汎用的に使用できるDDRコントローラを設計します最後に、ビデオデータを処理するためのフレームバッファを実装するプロセスについて説明します

この講義は、長い間ISP(Image Signal Processing)の開発を進めてきた著者の経験に基づいて構成されています本書の内容は、実務に直接適用できるコードです内容が多少難しい部分を含めることができます理解されていない部分は2〜3回程度精読しコードをシミュレーションしながら動作内容を復習してみてください。

本講義は、Digilent社が販売するArty A7開発ボードで実習を行います。 FPGAを扱う際にHWに適用し、その結果を確認することは非常に重要です。 Simulationで実装するには制限があります。必ずHWで検証する必要があります。 (本書の最後の章で扱うフレームバッファについては、適切なHWを見つけることができず、Simulationでのみ検証を進めるのが残念です。今後、適切なボードを見つけてHW検証まで進めることができると期待しています)

第1章は全体的な内容の概要です。

2章では、練習に使用されるArty A7ボードについて説明します

3章では、 DDR Controller IPの作成方法とUser Interface Logicについて説明します

4章は、作成されたDDRコントローラIPシミュレーションを通じて動作特性を理解しますこれは、汎用で利用可能なDDRコントローラを実装するために非常に重要です

5章は、汎用的に利用可能なDDRコントローラを実装しそれを使用してDDRメモリの全領域を読み書きすることを実装しますまた、 Bitstreamを作成してボード上の結果を確認します

6章では、Memory Accessの速度に関する内容を調べて最大速度を実現するための内容について説明します

7章は、第5章で実装された汎用DDR Controllerを使用して、ビデオデータを処理するためのFrame Bufferを実装します

第8章は、1 6bits DDR Memory 2個を使用して32Bits Interfaceを実装します。

第9章はSpartan6でDDR Controllerを実装しています。

第10章はDDR4 Controllerを実装しています。

詳細カリキュラム(目次)
  1. 概要
  2. HW構成
    1. USB-JTAGを利用する方法
    2. JTAG-HS2(or JTAG-HS3)コネクタ
  3. DDR Controller IPの生成
    1. プロジェクトの作成
    2. メモリIPの作成
    3. メモリIP構造
    4. User Interface Block
    5. User Interface 信号
    6. User Interface Timing
  4. Simulation
    1. Simulation 環境設定
    2. Simulation
    3. Simulation 結果の確認
  5. User Interface Logicの実装
    1. 概要
    2. Write Moduleの実装
    3. Read Module 球
    4. User Interfaceモジュールの実装(ddr_testモジュール)
    5. mig_top Moduleの実装
    6. トップモジュールの実装
    7. トップモジュールシミュレーション
    8. Bitstreamの作成
    9. Bitstreamのダウンロード&確認
  6. DDR3メモリアクセス速度
    1. mig7_write8 修正
    2. mig7_read8 修正
    3. mig7_write_top 修正
    4. mig7_read_top 修正
    5. ddr_testの修正
    6. define.v 修正
    7. MIG7 Memory Interface IPの変更
    8. clk_genの修正
    9. Arty35Top.vの修正
    10. Bitstreamの作成と結果の確認
  7. Frame Bufferの実装
    1. データの準備
    2. Image Decoder
    3. Frame Bufferの概要
    4. frame_write
    5. frame_read
    6. 映像データを使ったフレームバッファの確認
  8. 32bits Interfaceの実装
    1. プロジェクトの作成
    2. メモリIPの作成
    3. Simulationによる生成されたIP動作の理解
    4. User Interfaceの実装
    5. mig32_top モジュール simulation
    6. 結論
  9. Spartan6 DDR Controllerの実装
    1. プロジェクトの作成
    2. IP生成
    3. mcbレビュー
    4. シミュレーションによる動作の確認
    5. コードの実装
    6. 全領域 read/write の実装
    7. 結論
  10. DDR4 Controllerの実装
    1. プロジェクトの作成
    2. IP生成
    3. simulation
    4. コードの実装
    5. Address関連
    6. xdcの生成
    7. 結果の確認
    8. 結論
  11. 参考資料
  12. Revision History

前の講義を一緒に見る👀


予想される質問 Q&A 💬

Q. Verilog初心者でも可能ですか?

Verilogに関する基本的な知識が必要です。関連知識がなければ難しいかもしれません。

Q.準備はありますか?

コードを実装して検証するためにArty A7ボードを使用してください。ボードの準備ができたら、実装した内容を直接確認できます。しかし、すべてのソースをシミュレーションできるように構成されているので、まず講義を聞いてボードが準備されれば後で検証してもよい。

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

Xilinx社のvivado 2018.3を使用します。 2018.3以降のバージョンであれば可能です。


知識共有者の紹介✒️

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


こんな方に
おすすめです

学習対象は
誰でしょう?

  • FPGA を利用した映像データ処理

  • フレームバッファの実装

  • Verilog を学びたい方

  • FPGA を学びたい方

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

  • Verilog

  • vivado

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

입니다.

カリキュラム

全体

277件

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

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

受講レビュー

全体

6件

5.0

6件の受講レビュー

  • coldugs님의 프로필 이미지
    coldugs

    受講レビュー 1

    平均評価 5.0

    5

    5% 受講後に作成

    FPGA 관련 자료는 찾기도 어렵고 찾아도 양이 방대해서 배우기가 힘들다고 생각합니다. 좋은 자료로 많은 도움이 되었습니다.

    • alex
      知識共有者

      저도 처음 배울 때 뭘 봐야하고 어떻게 시작해야 할지 막막했던 것 같네요. 더욱 유익한 자료가 될 수 있도록 노력하겠습니다. 감사합니다~!!

  • miheungsound님의 프로필 이미지
    miheungsound

    受講レビュー 2

    平均評価 5.0

    5

    30% 受講後に作成

    좋은 강의 내용으로 많은 도움이 될것 같습니다. 여러번 반복 해서 보고 있습니다. 감사합니다.

    • alex
      知識共有者

      감사합니다. 강의 통해서 ddr controller를 완전히 이해하시길 바랍니다. xilinx 에서 제공하는 ip 하나를 정복하면 다른 ip들도 사용하는데 많은 도움이 됩니다~ fpga 분야가 쉽지 않은 분야입니다. 끝까지 완주 하시길 응원합니다 ~!!

  • kimjw0319님의 프로필 이미지
    kimjw0319

    受講レビュー 2

    平均評価 5.0

    5

    100% 受講後に作成

    잘 정리된 내용이네요

    • appleid7133님의 프로필 이미지
      appleid7133

      受講レビュー 4

      平均評価 5.0

      5

      57% 受講後に作成

      많은 도움이 됨

      • alex
        知識共有者

        도움이 되셨다니 감사합니다. 오늘 하루도 즐거운 시간 되세요. ~!!

    • haneuli님의 프로필 이미지
      haneuli

      受講レビュー 12

      平均評価 5.0

      5

      100% 受講後に作成

      MCU 할 때는 RAM에 대해 (요즘 자원이 풍부해서)큰 고민 없이 했었습니다. 그런데 FPGA나 Zynq를 하면서 HW공부하다 보니 RAM에 대한 고민을 하게 되면서 어려움을 많이 느꼈는데, 이 강의가 든든한 힘이 되었습니다. 계속 좋은 강의 자료 부탁드립니다~!

      • alex
        知識共有者

        수강평 감사드립니다. MCU 환경과 FPGA 개발 환경은 많이 다른 것 같습니다. 어쩌면 딴세상일지 모르지요 ㅎ 강의 통해 도움되셨다니 감사합니다. 행복한 개발자, 능력있는 개발자 되시길 바랍니다. 감사합니다 ~!!

    ¥12,843

    ihilの他の講座

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

    似ている講座

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