[Q2HB] Scatter-Gather DMA Controller Core(SG-DMA)

[Altera][Q2HB][IP] Scatter-Gather DMA Controller Core(SG-DMA)

Component Overview

refer to: Section IV. Peripherals Chapter 21, Scatter-Gather DMA Controller Core

以下のデータ転送を行うことができる.

  • メモリ→メモリ転送
  • データストリーム→メモリ
  • メモリ→データストリーム

不連続なメモリアドレスでも,転送用のデスクリプタを与えることで自発的に転送を行う.NiosII processorに対しては,HALシステムライブラリから,ドライバが提供されており,提供ドライバを使うことで当コアへのアクセスができる.

機能説明省略

Instantiating the Core in SOPC Builder

MegaWizardを使うことでインスタンス化(具体化)する.

ParameterLegal ValuesDescription
Transfer modeMemory To Memory
Memory To Stream
Stream To Memory
使い方を設定する
Allow unaligned transfersOn/Off@On:word alignmentされていない転送を許可する(performance劣化)
Enable burst transfersOn/OffBurst転送(R/W)を有効にする(@On)
Read burstcount signal width1 - 16Burst Read時のburst幅を設定する
Write burstcount signal width1 - 16Burst Write時のburst幅を設定する
Data width8, 16, 32, 64Avalon-MM read/write portのバス幅
Source error width0 - 7Avalon-ST source portのエラー信号数
Sink error width0 - 7Avalon-ST sink portのエラー信号数
Data transfer FIFO depth2, 4, 8, 16, 32, 64burst無効時のメモリ→メモリ転送におけるDMA内部FIFOの段数

SG-DMAコアは,システム内で高スループットを保障するためには,高い優先度が他のコンポーネントよりも高く(IRQの値を低く)すべきである.


Software Programming Model

  • altera_avalon_sgdma_regs.h\コアレジスタマップの定義.low-levelアクセスのときに参照されたい.
  • altera_avalon_sgdma.h\bufferコントロール・ステータス制御用API,ビットフィールド定義?
  • altera_avalon_sgdma.c\SG-DMA制御コアの関数定義と実装.
  • altera_avalon_sgdma_descriptor.h\コアのデスクリプタ定義.low levelでハードアクセスするためのシンボル・ビットフィールドなどの定義.


注意事項

英語力の弱い人が適当に訳しています.
自分では意味がわかるようにとれたものと,そうでないものとがあります.概要理解の参考にしていただければ幸いですが,オリジナルの英文を参照されることを強く推奨いたします.
また,自分なりに理解して解説したり,参照した資料などへのリンクも記述していますが,ALTERA社の検閲は入っておりません.各自自己責任においてご利用ください.
入門者の敷居を下げるべく,説明文の誤り指摘や修正案等のコメントをいただけますと幸いです.