エンベデッド・ペリフェラルIPユーザーガイド

ID 683130
日付 9/21/2020
Public
ドキュメント目次
1. 概要 2. Avalon® -ST Multi-Channel Shared Memory FIFOコア 3. Avalon® -STシングルクロックFIFOコアおよびデュアルクロックFIFOコア 4. Avalon® -STシリアル・ペリフェラル・インターフェイス・コア 5. SPIコア 6. SPI Slave to Avalon® Master Bridgeコア/JTAG to Avalon® Master Bridgeコア 7. インテル eSPIスレーブコア 8. eSPI to LPCブリッジコア 9. イーサネットMDIOコア 10. インテルFPGA 16550互換UARTコア 11. UARTコア 12. JTAG UARTコア 13. インテル FPGA Avalon® Mailboxコア 14. インテル FPGA Avalon® ミューテックス・コア 15. インテル FPGA Avalon® I2C (Master) コア 16. インテル FPGA I2C Slave to Avalon® -MM Master Bridgeコア 17. インテルFPGA Avalon® コンパクト・フラッシュ・コア 18. EPCS/EPCQAシリアル・フラッシュ・コントローラー・コア 19. インテルFPGAシリアル・フラッシュ・コントローラー・コア 20. インテルFPGAシリアル・フラッシュ・コントローラーIIコア 21. インテルFPGA汎用クアッドSPIコントローラー・コア 22. インテルFPGA汎用クアッドSPIコントローラーIIコア 23. インターバル・タイマー・コア 24. インテルFPGA Avalon FIFOメモリーコア 25. オンチップメモリー (RAMおよびROM) コア 26. Optrex 16207 LCDコントローラー・コア 27. PIOコア 28. PLLコア 29. DMAコントローラー・コア 30. Modular Scatter-Gather DMAコア 31. Scatter-Gather DMAコントローラー・コア 32. SDRAMコントローラー・コア 33. トライステートSDRAMコア 34. Video Sync GeneratorコアとPixel Converterコア 35. インテル FPGA Interrupt Latency Counterコア 36. パフォーマンス・カウンター・ユニット・コア 37. ベクトル割り込みコントローラー・コア 38. Avalon® -STデータ・パターン・ジェネレーター・コアとデータ・パターン・チェッカー・コア 39. Avalon® -STテスト・パターン・ジェネレーター・コアとテスト・パターン・チェッカー・コア 40. システムIDペリフェラル・コア 41. Avalon® Packets to Transactions Converterコア 42. Avalon® -STマルチプレクサー・コアとデマルチプレクサー・コア 43. Avalon® -ST Bytes to Packets ConverterコアとPackets to Bytes Converterコア 44. Avalon® -ST Delayコア 45. Avalon® -STラウンド・ロビン・スケジューラー・コア 46. Avalon® -ST Splitterコア 47. Avalon® -MM DDR Memory Half Rate Bridgeコア 48. インテル FPGA GMII to RGMIIコンバーター・コア 49. インテル FPGA MII to RMIIコンバーター・コア 50. インテルFPGA HPS GMII to TSE 1000BASE-X/SGMII PCSブリッジコア 51. インテル FPGA HPS EMAC to Multi-rate PHY GMIIアダプターコア 52. インテル FPGA MSI to GICジェネレーター・コア

30.7.1.6.1. 記述子の設定とmSGDMAのコンフィグレーション・フロー

次の内容は、記述子を設定し、mSGDMAをコンフィグレーションする際に推奨されるソフトウェア・フローです。

  1. 記述子リストを作成し、ハードウェア所有ではない記述子 (Owned By Hardware = 0) でリストを終了します。
  2. ディスパッチャー・コアのControlレジスターにアクセスし、mSGDMAをコンフィグレーションします。(例えば、Stop on Error、Stop on Early Terminationなどをコンフィグレーションします。)
  3. Prefetcherコアのコンフィグレーション・レジスターにアクセスし、mSGDMAをコンフィグレーションします。(例えば、最初のリストの最初の記述子のアドレスをNext Descriptor Pointerレジスターに書き込み、Runビットを1に設定して転送を開始します。)
  4. コアが最初のリストを処理している間に、ソフトウェアでは記述子の2番目のリストを作成することができます。
  5. 記述子の転送が完了するたびに、IRQを生成することができます (Transfer Complete IRQ Maskがその特定の記述子に設定されているかいないかによって異なります)。mSGDMAで最初のリストの処理を終了した際にのみIRQの生成が必要な場合は、単に、最初のリストの最後の記述子にTransfer Complete IRQ Maskを設定します。
  6. 最初のリンクリストの最後の記述子が処理されると、記述子のポーリングが無効になっている場合は、IRQが生成されます。これに続いて、ソフトウェアでNext Descriptor Pointerレジスターを2番目のリンクリストの最初の記述子のアドレスで更新し、Runビットを1に戻して転送を再開する必要があります。記述子のポーリングが有効になっている場合は、ソフトウェアで (2番目の記述子のリンクリスト以降の) Next Descriptor Pointerレジスターを更新し、Runビットを1に戻す必要はありません。これらの2つのステップはハードウェアによって自動的に実行されます。新しいリストのアドレスは、前のリストのNext Descriptor Pointerフィールドで示されます。転送を再開するには、PrefetcherコアでOwned by Hardwareが1になっているかをポーリングします。ソフトウェアでは単に、2番目のリンクリストの最初の記述子のOwned by Hardwareビットを1に反転し、2番目のリンクリストの準備ができていることをPrefetcherコアに示す必要があります。
  7. 追加する新しい記述子がある場合はかならず、コアが処理を行っていないリスト (Owned By Hardware = 0で示される) に追加します。例えば、コアが最初のリストを処理している場合は、新しい記述子を2番目のリスト (またはその他) に追加します。この方法により、コアが記述子を処理している際に記述子が更新されないようにします。ソフトウェアでは、メモリー内の記述子を読み出し、転送のステータスを特定することができます (転送されている実際のバイト数、転送のエラーの有無など)。