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

23.4.3. レジスターマップ

Nios® IIプロセッサー向けHALシステム・ライブラリーで提供される標準機能を使用している場合は、レジスターを介してインターバル・タイマー・コアに直接アクセスする必要はありません。レジスターマップは通常、デバイスドライバーを作成するプログラマーにのみ有用です。

インテルで提供しているHALデバイスドライバーは、デバイスのレジスターに直接アクセスします。デバイスドライバーを作成しており、HALドライバーが同じデバイスに対してアクティブな場合は、ドライバーが競合し、作成したドライバーは正しく動作しません。

次の表に、32ビット・タイマーのレジスターマップを示します。インターバル・タイマー・コアは、ネイティブ・アドレス・アライメントを使用します。例えば、controlレジスターの値にアクセスする場合は、オフセット0x4を使用します。

表 255.  レジスターマップ — 32ビット・タイマー
オフセット 名称 R/W ビットの説明
15 ... 4 3 2 1 0
0 status RW (1) RUN TO
1 control RW (1) STOP START CONT ITO
2 periodl RW Timeout Period – 1 (bits [15:0])
3 periodh RW Timeout Period – 1 (bits [31:16])
4 snapl RW Counter Snapshot (bits [15:0])
5 snaph RW Counter Snapshot (bits [31:16])
注意
  1. 予約済みです。読み出し値は未定義です。0を書き込みます。

ネイティブ・アドレス・アライメントに関しては、System Interconnect Fabric for Memory-Mapped Interfacesを参照してください。

表 256.  レジスターマップ — 64ビット・タイマー
オフセット 名称 R/W ビットの説明
15 ... 4 3 2 1 0
0 status RW (1) RUN TO
1 control RW (1) STOP START CONT ITO
2 period_0 RW Timeout Period – 1 (bits [15:0])
3 period_1 RW Timeout Period – 1 (bits [31:16])
4 period_2 RW Timeout Period – 1 (bits [47:32])
5 period_3 RW Timeout Period – 1 (bits [63:48])
6 snap_0 RW Counter Snapshot (bits [15:0])
7 snap_1 RW Counter Snapshot (bits [31:16])
8 snap_2 RW Counter Snapshot (bits [47:32])
9 snap_3 RW Counter Snapshot (bits [63:48])
注意
  1. 予約済みです。読み出し値は未定義です。0を書き込みます。

statusレジスター

statusレジスターでは、2つのビットが定義されています。

表 257.  statusレジスターのビット
ビット 名称 R/W/C 説明
0 TO R/WC TO (タイムアウト) ビットは、内部カウンターが0に達すると1に設定されます。タイムアウト・イベントによって設定されると、TOビットは、マスター・ペリフェラルによって明示的にクリアされるまで設定された状態で維持されます。statusレジスターに0または1を書き込み、TOビットをクリアします。
1 RUN R RUNビットは、内部カウンターが実行されている際は1として読み取られます。それ以外の場合、このビットは0として読み取られます。RUNビットは、statusレジスターへの書き込み操作では変化しません。

controlレジスター

controlレジスターでは、4つのビットが定義されています。

表 258.  controlレジスターのビット
ビット 名称 R/W/C 説明
0 ITO RW ITOビットが1の場合、インターバル・タイマー・コアは、statusレジスターのTOビットが1になるとIRQを生成します。ITOビットが0の場合、タイマーはIRQを生成しません。
1 CONT RW CONT (連続) ビットは、内部カウンターが0に達した際の動作を決定します。CONTビットが1の場合、カウンターはSTOPビットによって停止されるまで継続的に実行されます。CONTが0の場合、カウンターは0に達すると停止します。カウンターが0に達すると、CONTビットに関係なく、周期レジスターに格納されている値がリロードされます。
2 START (1) W STARTビットに1を書き込むと、内部カウンターは動作 (カウントダウン) を開始します。STARTビットはイベントビットであり、書き込み操作が実行された際にカウンターを有効にします。タイマーが停止している場合は、STARTビットに1を書き込むことで、タイマーは現在カウンターに格納されている数からカウントを再開します。タイマーがすでに動作している場合は、STARTへの1の書き込みは無効です。STARTビットに0を書き込むことは無効です。
3 STOP (1) W STOPビットに1を書き込むと、内部カウンターは停止します。STOPビットはイベントビットであり、書き込み操作が実行された際にカウンターを停止します。タイマーがすでに停止している場合、STOPへの1の書き込みは無効です。ストップビットに0を書き込むことは無効です。

Start/Stop control bitsをオフにしてタイマーのハードウェアをコンフィグレーションしている場合、STOPビットの書き込みは無効です。

注意
  1. STARTビットおよびSTOPビットに同時に1を書き込むと、未定義の結果がもたらされます。

period_nレジスター

period_nレジスターはともに、タイムアウト周期の値を格納します。次のいずれかが発生すると、内部カウンターにはこれらのレジスターに格納されている値がロードされます。

  • period_nレジスターのいずれかへの書き込み操作
  • 内部カウンターが0になる

    タイマーの実際の周期は、period_nレジスターに格納されている値よりも1サイクル大きくなります。これは、カウンターが値0を1クロックサイクルに想定しているためです。

    period_nレジスターのいずれかに書き込みを行うと、ハードウェアがStart/Stop control bitsをオフにしてコンフィグレーションされている場合を除き、内部カウンターが停止します。Start/Stop control bitsがオフの場合は、レジスターの1つに書き込みを行ってもカウンターは停止しません。ハードウェアがWriteable periodを無効にしてコンフィグレーションされている場合、period_nレジスターの1つに書き込みを行うと、カウンターはシステム生成時に指定されている固定Timeout Periodにリセットされます。

注: 値0のタイムアウト周期はサポートされているユースケースではありません。ソフトウェアでは、タイムアウト周期を0より大きい値にコンフィグレーションします。

snap_nレジスター

マスター・ペリフェラルでは、現在の内部カウンターの一貫したスナップショットを要求することができます。これは、snap_nレジスターの1つに書き込み操作を実行することにより行います (書き込みデータは無視されます)。書き込みが発生すると、カウンターの値がsnap_nレジスターにコピーされます。スナップショットは、カウンターが実行されているかいないかにかかわらず発生します。スナップショットを要求しても、内部カウンターの動作は変わりません。