インテルのみ表示可能 — GUID: iga1401396010203
Ixiasoft
インテルのみ表示可能 — GUID: iga1401396010203
Ixiasoft
24.5.1. ソフトウェア制御
オフセット | 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 |
フィールド | タイプ | 説明 |
---|---|---|
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が使用されます。最大許容値より大きい値の書き込みを試みると、最大許容値が使用されます。 |
ビット | 名称 | 説明 |
---|---|---|
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フィールドを使用し、特定のイベントが発生しているかを判断することができます。
ビット | 名称 | 説明 |
---|---|---|
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レジスターの対応するビットが設定されると、マスターへの割り込みが行われます。
ビット | 名称 | 説明 |
---|---|---|
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
- <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.