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

37.3. レジスターマップ

VICコアのCSRには、 Avalon® -MMインターフェイスを介してアクセスすることができます。ソフトウェアでは、レジスターにアクセスすることにより、コアをコンフィグレーションし、現在のステータスを特定することができます。

各レジスターには、バイト対応ではない32ビット・インターフェイスがあります。これらのレジスターには、少なくとも32ビット幅のマスターでアクセスする必要があります。

表 375.  コントロールおよびステータスレジスター
オフセット レジスター名 アクセス リセット値 説明
0 – 31 INT_CONFIG<n> R/W 0 割り込みコンフィグレーション・レジスターは32個あります (INT_CONFIG0INT_CONFIG31)。各レジスターには、対応する割り込みの動作をコンフィグレーションするフィールドが含まれています。割り込み入力が存在しない場合、対応するレジスターの読み出しでは常に0が返され、書き込みは無視されます。INT_CONFIGレジスターのマップに関しては、INT_CONFIGレジスターのマップの表を参照してください。
32 INT_ENABLE R/W 0 割り込みイネーブルレジスター。INT_ENABLEは、各割り込み入力の有効状態を保持します。レジスターの32ビットは、VICコアで利用可能な32個の割り込みにマッピングされます。例えば、ビット5はIRQ5に対応します。37

有効になっていない割り込みは、割り込み入力がアサートされている場合でも、優先処理ブロックで考慮されることはありません。これは、マスク可能割り込みとマスク不可割り込みの両方に適用されます。

33 INT_ENABLE_SET W 0 割り込みイネーブル設定レジスター。INT_ENABLE_SETのビットに1を書き込むと、INT_ENABLEで対応するビットが設定されます。ビットに対する0の書き込みは無効です。このレジスターからの読み出しでは、常に0が返されます。37
34 INT_ENABLE_CLR W 0 割り込みイネーブル・クリア・レジスター。INT_ENABLE_CLRのビットに1を書き込むと、INT_ENABLEで対応するビットがクリアされます。ビットに対する0の書き込みは無効です。このレジスターからの読み出しでは、常に0が返されます。37
35 INT_PENDING R 0 割り込み保留レジスター。INT_PENDINGは、保留中の割り込みを示します。各ビットは1つの割り込み入力に対応します。

割り込みが存在しない場合、対応するINT_PENDINGビットの読み出しでは常に0が返され、書き込みは無視されます。

INT_PENDINGのビットは、次の場合に設定されます。

外部割り込みがVICインターフェイスでアサートされ、対応するINT_ENABLEビットが設定されている。

SW_INTERRUPTビットが設定され、対応するINT_ENABLEビットが設定されている。

INT_PENDINGビットは、いずれかの条件が当てはまる限り、設定された状態で維持されます。詳細は、割り込み要求ブロックを参照してください。37

36 INT_RAW_STATUS R 0 割り込みのロー状態のステータスレジスター。INT_RAW_STATUSは、割り込み入力のマスクされていない状態を示します。

割り込みが存在しない場合、対応するINT_RAW_STATUSビットの読み出しでは常に0が返され、書き込みは無視されます。

設定されているビットは、VICのインターフェイスで割り込みがアサートされていることを示します。割り込みは、割り込みイネーブルレジスターの対応するビットが設定されている場合にのみプロセッサーにアサートされます。37

37 SW_INTERRUPT R/W 0 ソフトウェア割り込みレジスター。SW_INTERRUPTは、ソフトウェア割り込みを駆動します。各割り込みは、外部ハードウェア割り込みとOR演算され、その後、INT_ENABLEで有効になります。詳細は、割り込み要求ブロックを参照してください。37
38 SW_INTERRUPT_SET W 0 ソフトウェア割り込み設定レジスター。SW_INTERRUPT_SETのビットに1を書き込むと、SW_INTERRUPTで対応するビットが設定されます。ビットに対する0の書き込みは無効です。このレジスターからの読み出しでは、常に0が返されます。37
39 SW_INTERRUPT_CLR W 0 ソフトウェア割り込みクリアレジスター。SW_INTERRUPT_CLRのビットに1を書き込むと、SW_INTERRUPTで対応するビットがクリアされます。ビットに対する0の書き込みは無効です。このレジスターからの読み出しでは、常に0が返されます。
40 VIC_CONFIG R/W 0 VICコンフィグレーション・レジスター。VIC_CONFIGにより、VIC全体に適用される設定をソフトウェアでコンフィグレーションできるようになります。VIC_CONFIGレジスターのマップに関しては、VIC_CONFIGレジスターのマップの表を参照してください。
41 VIC_STATUS R 0 VICステータスレジスター。VIC_STATUSは、VICの現在のステータスを示します。VIC_STATUSレジスターのマップに関しては、VIC_STATUSレジスターのマップの表を参照してください。
42 VEC_TBL_BASE R/W 0 ベクトル・テーブル・ベース・レジスター。VEC_TBL_BASEは、プロセッサーのメモリー空間のベクトルテーブルのベースアドレスを保持します。テーブルは4バイト境界でアライメントされている必要があるため、ビット1:0は常に0である必要があります。
43 VEC_TBL_ADDR R 0 ベクトル・テーブル・アドレス・レジスター。VEC_TBL_ADDRは、保留中の割り込みで最も高い優先度をもつIRQ値のRHAを提供します。アクティブな割り込みがない場合、このレジスターの値は0です。

デイジーチェーン入力が有効になっており、それが最も優先度の高い割り込みである場合、ベクトル・テーブル・アドレス・レジスターには、デイジーチェーン入力インターフェイスからのRHA値が含まれます。

表 376.  INT_CONFIGレジスターのマップ
ビット フィールド名 アクセス リセット値 説明
0:5 RIL R/W 0

要求されている割り込みレベルフィールド。RILには、サービスを要求している割り込みの割り込みレベルが含まれます。プロセッサーでこのフィールドの値を使用し、その割り込みがプロセッサーで現在実行している割り込みよりも優先度が高いかを判断することができます。

6 RNMI R/W 0 要求されているマスク不可能割り込みフィールド。RNMIには、サービスを要求している割り込みのマスク不可割り込みモードが含まれます。0の場合、割り込みはマスク可能です。1の場合、割り込みはマスク不可です。
7:12 RRS R/W 0 要求されているレジスター・セット・フィールド。RRSには、プロセッサーで割り込みの処理に使用する必要があるプロセッサー・レジスター・セットの番号が含まれます。ソフトウェアでは、プロセッサーでサポートされているレジスター値のみを使用していることを確認する必要があります。
13:31 予約済み

INT_CONFIGレジスターのマップの表に示されている用語に関するより広範な定義に関しては、 Nios® II Software Developer’s HandbookのException Handlingの章を参照してください。

表 377.  VIC_CONFIGレジスターのマップ
ビット フィールド名 アクセス リセット値 説明
0:2 VEC_SIZE R/W 0 ベクトル・サイズ・フィールド。VEC_SIZEは、各ベクトル・テーブル・エントリーのバイト数を指定します。VEC_SIZEは、log2 (ワード数) - 2としてエンコードされます。つまり、次のとおりです。

0 — ベクトル・テーブル・エントリーあたり4バイト

1 — ベクトル・テーブル・エントリーあたり8バイト

2 — ベクトル・テーブル・エントリーあたり16バイト

3 — ベクトル・テーブル・エントリーあたり32バイト

4 — ベクトル・テーブル・エントリーあたり64バイト

5 — ベクトル・テーブル・エントリーあたり128バイト

6 — ベクトル・テーブル・エントリーあたり256バイト

7 — ベクトル・テーブル・エントリーあたり512バイト

3 DC R/W 0 デイジー・チェーン・フィールド。DCは、次の目的で使用されます。

デイジーチェーン入力インターフェイスを有効または無効にします (存在する場合)。1を書き込み、デイジー・チェーン・インターフェイスを有効にします。無効にするには0を書き込みます。

デイジーチェーン入力インターフェイスの存在を検出します。検出には、DCに1を書き込み、その後DCを読み出します。戻り値が1の場合、デイジー・チェーン・インターフェイスが存在することを意味します。0の場合は、デイジー・チェーン・インターフェイスが存在しないことを意味します。

4:31 予約済み
表 378.  VIC_STATUSレジスターのマップ
ビット フィールド名 アクセス リセット値 説明
0:5 HI_PRI_IRQ R 0 最優先割り込みフィールド。HI_PRI_IRQには、RILが最も高いアクティブな割り込みのIRQ番号が含まれます。アクティブな割り込みがない (IPが0) の場合、このフィールドからの読み出しでは0が返されます。

デイジーチェーン入力が有効になっており、それが最優先の割り込みである場合、このフィールドから読み出される値は32です。

デイジーチェーン入力が存在しない場合、ビット5は常に0を読み戻します。

6:30 予約済み
31 IP R 0 割り込み保留フィールド。IPは、サービスを待機している割り込みがあることを示します。1は、割り込みが保留中であることを示します。0は、保留中の割り込みがないことを示します。
37 このレジスターには、32個の割り込み入力それぞれに対する1ビット・フィールドが含まれます。VICが32未満の割り込みでコンフィグレーションされている場合、それぞれの未使用割り込みに対応する1ビット・フィールドは0に結び付けられます。これらの位置に対する読み出しでは常に0が返され、書き込みは無視されます。存在する割り込みを特定するには、値0xffffffffをレジスターに書き込み、レジスターの内容を読み取ります。0を返すビットには割り込みがありません。