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

24.5.1. ソフトウェア制御

次の表に、statusレジスターのレジスターマップを示します。statusレジスターのレイアウトは、入力インターフェイスと出力インターフェイスで同じです。
表 266.  FIFOのステータスレジスターのメモリーマップ
オフセット 31         24 23         16 15           8 7 6 5 4 3 2 1 0
ベース fill_level
ベース + 1   i_status
ベース + 2   event
ベース + 3   interrupt enable
ベース + 4 almostfull
ベース + 5 almostempty

表 267.   FIFOのステータスフィールドの説明
フィールド タイプ 説明
fill_level RO その時点でのFIFOのフィルレベルで、 Avalon® -ST FIFOの場合はシンボル、 Avalon® -MM FIFOの場合はワード単位で提供されます。
i_status RO 6ビットのレジスターで、FIFOのその時点でのステータスを示します。各ビットフィールドの意味に関しては、ステータス・ビット・フィールドの説明の表を参照してください。
event RW1C 6ビットのレジスターで、i_statusとまったく同じフィールドを備えます。i_statusレジスターのビットが設定されると、同じビットがeventレジスターで設定されます。eventレジスターのビットは、ソフトウェアでそのビットに1を書き込む場合にのみクリアされます。
interruptenable RW 6ビットの割り込みイネーブルレジスターで、eventおよびi_statusレジスターとまったく同じフィールドを備えます。eventレジスターのビットが0から1に移行し、interruptenableの対応するビットが設定されると、マスターへの割り込みが行われます。
almostfull RW 割り込みとステータスに使用されるしきい値レベルです。 Avalon® -MMステータスマスターで随時書き込むことができます。DCFIFOのデフォルトのしきい値の値はDepth-4です。SCFIFOのデフォルトのしきい値の値はDepth-1です。しきい値の値の有効な範囲は、1からデフォルトまでです。1より小さい値の書き込みを試みると、1が使用されます。デフォルトより大きい値の書き込みを試みると、デフォルトが使用されます。
almostempty RW 割り込みとステータスに使用されるしきい値レベルです。 Avalon® -MMステータスマスターで随時書き込むことができます。DCFIFOのデフォルトのしきい値の値は1です。SCFIFOのデフォルトのしきい値の値は1です。しきい値の値の有効な範囲は、1から許容される最大almostfullしきい値までです。1より小さい値の書き込みを試みると、1が使用されます。最大許容値より大きい値の書き込みを試みると、最大許容値が使用されます。

表 268.  ステータス・ビット・フィールドの説明
ビット 名称 説明
0 FULL FIFOが現在フルの場合は1になります。
1 EMPTY FIFOが現在空の場合は1になります。
2 ALMOSTFULL FIFOのフィルレベルがalmostfullの値以上の場合は1になります。
3 ALMOSTEMPTY FIFOのフィルレベルがalmostemptyの値以下の場合は1になります。
4 OVERFLOW FIFOがオーバーフローすると1サイクルの間1に設定されます。FIFOは、 Avalon® 書き込みマスターがフルのFIFOに書き込みを行った場合にオーバーフローします。OVERFLOWは、Allow backpressureがオフになっている場合にのみ有効です。
5 UNDERFLOW FIFOがアンダーフローすると1サイクルの間1に設定されます。FIFOは、 Avalon® 読み出しマスターが空のFIFOから読み出しを行った場合にアンダーフローします。UNDERFLOWは、Allow backpressureがオフになっている場合にのみ有効です。

イベントビットのフィールドは、statusレジスターのフィールドと同じであり、同時に設定されます。ただし、このフィールドはソフトウェアで1を書き込む場合にのみクリアされます (W1C)。eventフィールドを使用し、特定のイベントが発生しているかを判断することができます。

表 269.  イベント・ビット・フィールドの説明
ビット 名称 説明
0 E_FULL FIFOがフルになっており、ビットがソフトウェアによってクリアされていない場合は1になります。
1 E_EMPTY FIFOが空になっており、ビットがソフトウェアによってクリアされていない場合は1になります。
2 E_ALMOSTFULL FIFOのフィルレベルがalmostfullしきい値の値よりも大きく、ビットがソフトウェアによってクリアされていない場合は1になります。
3 E_ALMOSTEMPTY FIFOのフィルレベルがalmostemptyの値よりも小さく、ビットがソフトウェアによってクリアされていない場合は1になります。
4 E_OVERFLOW FIFOがオーバーフローしており、ビットがソフトウェアによってクリアされていない場合は1になります。
5 E_UNDERFLOW FIFOがアンダーフローしており、ビットがソフトウェアによってクリアされていない場合は1になります。

次の表は、6つのSTATUSフィールドのマスクを示しています。eventレジスターのビットが0から1に移行し、interruptenableレジスターの対応するビットが設定されると、マスターへの割り込みが行われます。

表 270.  InterruptEnableビットフィールドの説明
ビット 名称 説明
0 IE_FULL FIFOが現在フルの場合に割り込みを有効にします。
1 IE_EMPTY FIFOが現在空の場合に割り込みを有効にします。
2 IE_ALMOSTFULL FIFOのフィルレベルがalmostfullレジスターの値よりも大きい場合に割り込みを有効にします。
3 IE_ALMOSTEMPTY FIFOのフィルレベルがalmostemptyレジスターの値よりも小さい場合に割り込みを有効にします。
4 IE_OVERFLOW FIFOがオーバーフローした場合に割り込みを有効にします。FIFOは、 Avalon® 書き込みマスターがフルのFIFOに書き込みを行った場合にオーバーフローします。
5 IE_UNDERFLOW FIFOがアンダーフローした場合に割り込みを有効にします。FIFOは、 Avalon® 読み出しマスターが空のFIFOから読み出しを行った場合にアンダーフローします。
6 ALL 割り込みの6つのステータス条件をすべて有効にします。

すべてのレジスターにアクセスするマクロは、altera_avalon_fifo_regs.hで定義されます。例えば、このファイルにはstatusレジスターにアクセスするための次のマクロが含まれています。

#define ALTERA_AVALON_FIFO_LEVEL_REG         0
#define ALTERA_AVALON_FIFO_STATUS_REG        1
#define ALTERA_AVALON_FIFO_EVENT_REG         2
#define ALTERA_AVALON_FIFO_IENABLE_REG       3
#define ALTERA_AVALON_FIFO_ALMOSTFULL_REG    4
#define ALTERA_AVALON_FIFO_ALMOSTEMPTY_REG   5

オンチップFIFOハードウェアにアクセスするための定義済みマクロとユーティリティーの完全なリストに関しては、以下を参照してください。
  • <install_dir>\quartus\sopc_builder\components\altera_avalon_fifo\HAL\inc\
alatera_avalon_fifo.h
  • <install_dir>\quartus\sopc_builder\components\altera_avalon_fifo\HAL\inc\
alatera_avalon_fifo_util.h.