エンベデッド・ペリフェラル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ジェネレーター・コア

31.6.3. レジスターマップ

SG-DMAコントローラー・コアには、 Avalon® -MMインターフェイスからアクセス可能な3つのレジスター (statuscontrolnext_descriptor_pointer) があります。ソフトウェアでは、レジスターにアクセスすることにより、コアをコンフィグレーションし、コアの現在のステータスを特定することができます。

control/statusレジスターは、バイト・イネーブル・ロジックのない32ビット・インターフェイスを備えます。そのため、それよりもデータ幅が狭いマスターからは正しくアクセスできません。コアの正しい動作を保証するにはかならず、少なくとも32ビット幅のマスターでレジスターにアクセスします。

表 334.  レジスターマップ
32ビット・ワード・オフセット (バイトオフセット) レジスター名 リセット値 説明
ベース + 0 (0x0) status 0 このレジスターは、最後の割り込みの原因やコアが現在記述子を処理しているかなどの、コアの現在のステータスを示します。statusレジスターのマップに関しては、ステータス・レジスター・ビットのマップの表を参照してください。
ベース + 1 (0x4) version 1 ハードウェアのバージョン番号を示します。ソフトウェアの後方互換の目的でソフトウェア・ドライバーによってのみ使用されます。
ベース + 4 (0x10) control 0 このレジスターは、割り込みをトリガーする要因、コアが開始および停止する条件などの、コアの動作を指定します。ホスト・プロセッサーでは、必要に応じてレジスタービットを設定することにより、コアをコンフィグレーションすることができます。controlレジスターのマップに関しては、コントロール・レジスター・ビットのマップの表を参照してください。
ベース + 8 (0x20) next_descriptor_pointer 0 このレジスターには、処理を行う次の記述子のアドレスが含まれます。システムの初期化シーケンスの一部として、このレジスターを最初の記述子のアドレスに設定します。

インテルでは、ユーザー・アプリケーションでcontrolレジスターのRUNビットをクリアし、statusレジスターのBUSYビットが0に設定されるまで待機してからこのレジスターを読み出すことを推奨しています。

表 335.  コントロール・レジスター・ビットのマップ
ビット ビット名 アクセス 説明
0 IE_ERROR R/W このビットが1に設定されている場合、記述子の処理中に Avalon® -STエラーが発生すると、コアは割り込みを生成します。(1)
1 IE_EOP_ENCOUNTERED R/W このビットが1に設定されている場合、記述子の処理中にEOPを検出すると、コアは割り込みを生成します。(1)
2 IE_DESCRIPTOR_COMPLETED R/W このビットが1に設定されている場合、それぞれの記述子が処理された後にコアは割り込みを生成します。(1)
3 IE_CHAIN_COMPLETED R/W このビットが1に設定されている場合、リスト内の最後の記述子が処理される、つまり、クリアされたOWNED_BY_HWビットをもつ記述子をコアが検出すると、コアは割り込みを生成します。(1)
4 IE_GLOBAL R/W このビットが1に設定されている場合、コアでは割り込みの生成ができるようになります。
5 RUN R/W このビットを1に設定し、記述子プロセッサー・ブロックを開始します。これに続いて、DMAトランザクションが開始されます。このビットを1に設定する前に、処理する最初の記述子のアドレスでnext_descriptor_pointerレジスターが更新されていることを確認します。このビットが1である限り、コアはキュー内の記述子の処理を続けます。

このビットをクリアすることで、コアはキューの次の記述子の処理を停止します。記述子の処理中にこのビットがクリアされると、コアは処理を完了してから停止します。その後、ホスト・プロセッサーは残りの記述子を変更し、コアを再起動することができます。

6 STOP_DMA_ER R/W このビットを1に設定し、DMAトランザクション中に Avalon® -STエラーが発生した場合にコアを停止します。このビットは、Stream-to-Memoryのコンフィグレーションにのみ適用されます。
7 IE_MAX_DESC_PROCESSED R/W このビットを1に設定し、MAX_DESC_PROCESSEDで指定されている記述子の数が処理された後に割り込みを生成します。
8 .. 15 MAX_DESC_PROCESSED R/W コアが割り込みを生成する前に処理する記述子の数を指定します。
16 SW_RESET R/W ソフトウェアでは、このビットに2回書き込みを行うことでコアをリセットすることができます。2回目の書き込み時にコアはリセットされます。ソフトウェアのリセットプロセスをシーケンス化するロジックはその後、自動的にリセットされます。

DMA転送がアクティブな際にソフトウェア・リセットを実行すると、次のシステムリセットまで永続的なバスのロックアップが発生する可能性があります。したがって、インテルでは、最後の手段としてソフトウェア・リセットを使用することを推奨しています。

17 PARK R/W このビットを0に設定すると、SG-DMAコントローラー・コアは、各記述子が処理された後に記述子のOWNED_BY_HWビットをクリアします。PARKビットが1に設定されている場合、コアはOWNED_BY_HWビットをクリアしません。そのため、ソフトウェアの介入なしに同じ記述子を繰り返し処理することができます。また、リストの最後の記述子が最初の記述子を指すように設定する必要があります。
18 DESC_POLL_EN R/W このビットを1に設定してポーリングモードを有効にします。このビットを1に設定すると、コアはOWNED_BY_HWビットが設定されるまで次の記述子のポーリングを継続します。また、コアは記述子ポインターを更新して現在の記述子を指します。
19 予約済み
RCLK[20..30] TIMEOUT_COUNTER RW 再度ポーリングを行う前に待機するクロック数を指定します。有効な範囲は1から255です。また、コアはnext_desc_ptrフィールドを更新することで、読み出す次の記述子を指します。
31 CLEAR_INTERRUPT R/W このビットを1に設定し、保留中の割り込みをクリアします。
注意
  1. 割り込みはすべて、記述子が更新された後にのみ生成されます。

インテルでは、controlレジスターのRUNビットがクリアされた後にのみ、ステータスレジスターを読み出すことを推奨しています。

表 336.  ステータス・レジスター・ビットのマップ
ビット ビット名 アクセス 説明
0 ERROR R/C (1) (2) 値1は、転送中に Avalon® -STエラーが発生したことを示します。
1 EOP_ENCOUNTERED R/C 値1は、 Avalon® -STソース・インターフェイスで生成されたEnd-of-Packet (EOP) 信号によって転送が終了したことを示します。この条件は、Stream-to-Memoryのコンフィグレーションでのみ可能です。
2 DESCRIPTOR_COMPLETED R/C (1) (2) 値1は、記述子の処理が完了したことを示します。
3 CHAIN_COMPLETED R/C (1) (2) 値1は、コアが記述子チェーンの処理を完了したことを示します。
4 BUSY R (3) 値1は、記述子の処理が進行中であることを示します。
このビットは、RUNビットがアサートされた次のクロックサイクルで1に設定されます。また、次のイベントのいずれかが発生するまでクリアされません。
  • 記述子の処理が完了し、RUNビットがクリアされている。
  • エラー条件が発生してSTOP_DMA_ERビットが1に設定され、現在の記述子の処理が完了している。
5 .. 31 予約済み
注意
  1. このビットは、読み出しの実行後にクリアする必要があります。1を書き込み、このビットをクリアします。
  2. このビットは、DMA転送が完了するたびにハードウェアによって更新されます。ソフトウェアで1を書き込みクリアするまで、設定された状態で維持されます。
  3. このビットはハードウェアによって継続的に更新されます。