Arria 10 SoC 開発キット・ユーザーガイド

ID 683227
日付 9/05/2017
Public
ドキュメント目次

5.9.12. HPS SPIO インターフェイス

HPS は SPI インターフェイスを介して以下の機能信号を監視および制御することができます。

  • HPS LED 信号
  • HPS プッシュボタンと DIP スイッチ信号
  • パワーグッドおよび信号
  • リセット信号
  • FMCA/B PCIE パワーイネーブル信号
  • SFP+ コントロール信号
  • I2C マスター表示信号
  • HPS ウォームリセット信号
  • PMBUS コントロール信号
表 50.  SPI インターフェイス・ピン定義
ピン 説明 機能
nCS チップセレクト

マスターデバイスからデータをスレーブデバイスが受信または転送できるようにするアクティブ Low 信号です。

SCK シリアルクロック データ転送を同期するためにマスターデバイスから生成されたクロック信号です。
MOSI シリアルデータ入力

正の SCK クロックでシリアルデータを受信します。

MISO シリアルデータ出力

負の SCK クロックエッジでシリアルにデータを送信します。

HPS SPI コントローラーは SPI マスターであり、MAX V はスレーブ SPI I/O エクスパンダーとして機能します。SPI インターフェイスは、8 ビット・フレームサイズを使用します。MOSI では、1 番目のバイトが命令バイトとして使用されます。ビット [7:1] はレジスターアドレスです。ビット [0] は、ロジック「1」がフラグ読み出しでありロジック「0」がフラグ書き込みである動作フラグです。2 番目のバイトはデータバイトです。MISO では、1 番目のバイトは 0 バイト ( パッド ) で、2 番目のバイトはデータバイトです。

図 31. HPS SPI コントローラー書き込みタイミング図
図 32. HPS SPI 書き込みタイミング ( 書き込み / 書き込み)
図 33. HPS SPI 読み出しタイミング図
図 34. HPS SPI 読み出しタイミング ( 読み出し / 書き込み )
図 35. HPS SPI 読み出しタイミング ( 読み出し / 読み出し )

16 8 ビット・レジスターが実装されています。MOSI では、1 番目のバイトが命令バイトとして使用されます。ビット [7:1] はレジスターアドレスです。ビット [0] は動作フラグで、つまりロジック「1」がフラグ読み出しでありロジック「0」がフラグ書き込みです。2 番目のバイトはデータバイトです。MISO では、1 番目のバイトは 0 バイト ( パッド ) で、2 番目のバイトはデータバイトです。

表 51.  SPI I/O エクスパンダー・レジスター定義
命令 (8 ビット ) 命令の説明 レジスターデータの説明
00000001 CPLD リビジョン値

レジスター 0: 読み出し専用レジスター

読み出し値は CPLD リビジョン値

00000010 HPS LED レジスターの書き込み

Register 1:

Bit[7:4] - USER_LED_HPS[3:0]、アクティブ Low、デフォルト値は “0xF”

Bit[3:0] - 予約済み、デフォルト値は “0x0”

00000011 HPS LED レジスターの読み出し

Register 1:

ビット [7:4] - USER_LED_HPS[3:0]

ビット [3:0] - 予約済み

デフォルト値は “0xF0”

00000101 HPS プッシュボタンと DIP スイッチレジスターの読み出しード

Register 2:

USER_PB_HPS と USER_DIPSW_HPS の現在のステータス

Bit[7:4] - USER_PB_HPS [3:0]

Bit[3:0] - USER_DIPSW_HPS [3:0]

00000110 書き込み HPS プッシュボタン IRQ フラグクリアー・レジスター

Register 3:

Bit[7] - レジスター 2 のビット 7 フラグをクリアーするためにロジック 1 を書き込み、フラグがクリアーになった後、このビットにロジック 0 を書き込んでリセットします。

Bit[6] - レジスター 2 のビット 6 フラグをクリアーするためにロジック 1 を書き込み、フラグがクリアーになった後、このビットにロジック 0 を書き込んでリセットします。

Bit[5] - レジスター 2 のビット 5 フラグをクリアーするためにロジック 1 をライトし、フラグがクリアーになった後、このビットにロジック 0 を書き込んでリセットします。

Bit[4] - レジスター 2 でビット 4 フラグをクリアーするためにロジック 1 をライトし、フラグがクリアーになった後、このビットにロジック 0 を書き込んでリセットします。

00000111 HPS プッシュボタン IRQ フラグレジスターの読み出し

Register 3: 読み出し専用レジスター

Bit[7:4] - USER_PB_HPS ホールドレジスター・ビット

Bit 7: USER_PB_HPS3 IRQ フラグ、アクティブ Low、レジスター 3 のビット 7 によるフラグクリアー

Bit 6: USER_PB_HPS2 IRQ フラグ、アクティブ Low、レジスター 3 のビット 6 によるフラグクリアー

Bit 5: USER_PB_HPS1 IRQ フラグ、アクティブ Low、レジスター 3 のビット 5 によるフラグクリアー

Bit 4: USER_PB_HPS0 IRQ フラグ、アクティブ Low、レジスター 3 のビット 4 によるフラグクリアー

Bit[3:0] - 予約済み

プッシュボタンのうちの 1 つが押された場合は、対応する PB の IRQ レジスタービットが設定され、A10_SH_GPIO0 が「0」にコンフィグレーションされます。

A10_SH_GPIO0 は、(PB がまだ押されている場合でも ) HPS が関連するビットをクリアーした後に「1」に戻ります。

2 番目の プッシュボタンが HPS が 1 番目のプッシュボタンの割り込み処理の間に押された場合、HPS が割り込みをクリアーするまでは 2 番目の PB の IRQ レジスタービットは「0」の状態です。HPS が 2 番目の PB の IRQ レジスタービットをクリアーするまで、A10_SH_GPIO0 は Low の状態を保持します。

00001001 Power good1 レジスターの読み出し

Register 4: リード専用オプション

Bit[7] - operation_flag。「1」: パワーオン完了。「0」: システムはパワーダウン・サイクル中です。

Bit[6] - 1V8_Pgood。「1」: 1.8V パワーレール出力は正常です。「0」: 1.8V パワーレール出力は異常です。

Bit[5] - 2V5_Pgood。「1」: 2.5V パワーレール出力は正常です。「0」: 2.5V パワーレール出力は異常です。

Bit[4] - 3V3_Pgood。「1」: 3.3V パワーレール出力は正常です。「0」: 3.3V パワーレール出力は異常です。

Bit[3] - 5V0_Pgood。「1」: 5V パワーレール出力は正常です。「0」: 5V パワーレール出力は異常です。

Bit[2] - 0V9_Pgood。「1」: 0.9V パワーレール出力は正常です。「0」: 0.9V パワーレール出力は異常です。

Bit[1] - 0V95_Pgood。「1」: 0.95V パワーレール出力は正常です。「0」: 0.95V パワーレール出力は異常です。

Bit[0] - 1V0_Pgood。「1」: 1.0V パワーレール出力は正常です。「0」: 1.0V パワーレール出力は異常です。

00001011 Power good2 レジスターの読み出し

Register 5: リード専用レジスター

Bit[7] - HPS_Pgood。「1」: HPS コアのパワーレール出力は正常です。「0」: HPS コアのパワーレール出力は異常です。

Bit[6] - HILOHPS_VDDPgood。「1」: HPS メモリーのパワーレール出力は正常です。「0」: HPS メモリーのパワーレール出力は異常です。

Bit[5] - HILO_VDDPgood。「1」: FPGA メモリー VDD のパワーレール出力は正常です。「0」: FPGA メモリー VDD のパワーレール出力は異常です。

Bit[4] - HILO_VDDQPgood。「1」: FPGA メモリー VDDQ のパワーレール出力は正常です。「0」: FPGA メモリー VDDQ のパワーレール出力は異常です。

Bit[3] - FMCAVADJPGood。「1」: FMCAVADJ のパワーレール出力は正常です。「0」:FMCAVADJ のパワーレール出力は異常です。

Bit[2] - FMCBVADJPGood。「1」: FMCBVADJ のパワーレール出力は正常です。「0」: FMCBVADJ のパワーレール出力は異常です。

Bit[1] - FAC2MPgood。「1」: FMCA スロットパワーは正常です。「0」: FMCAスロットパワーは異常です。

Bit[0] - FBC2MPgood。「1」: FMCB スロットパワーは正常です。「0」: FMCBスロットパワーは異常です。

00001101 Power good3 と現在のレジスターの読み出し

Register 6: 読み出し専用オプション

Bit[7] - FAM2CPgood。「1」: FMCA スロット DC パワー出力は正常です。「0」: FMCA スロット DC パワー出力は異常です。

Bit[6] - 10V_Fail_n。「1」: 10V 以上の入力電圧。「0」: 10V 以下の入力電圧。

Bit[5] - BF_PRESENTn。「1」: ブート・フラッシュ・カードなし。「0」: ブート・フラッシュあり。

Bit[4] - FILE_PRESENTn。「1」: ブート・フラッシュ・カードなし。「0」: ファイル・フラッシュあり。

Bit[3] - FMCA_PRESENTn。「1」:FMCA カードなし。「0」:FMCA カードあり。

Bit[2] - FMCB_PRESENTn。「1」: FMCB カードなし。「0」: FMCB カードあり。

Bit[1] - PCIE_PRESENTn。「1」: PCIE カードなし。「0」: PCIE カードあり。

Bit[0] - 予約済み

00001110 FMCA/B PCIE パワー・イネーブル・レジスターの書き込み

Register 7

Bit[7] - PCIE_EN。「1」: PCIE RC スロットパワーを有効にします。「0」: PCIE RC スロットパワーを無効にします。

Bit[6] - PCIE_AUXEN。「1」: PCIE RC スロット 補助電源を有効にします。「0」: PCIE RC 補助電源を無効にします。

Bit[5:0] - 予約済み

00001111 FMCA/B PCIE パワー・イネーブル・レジスターの読み出し

Register 7

パワー・イネーブル・レジスターのステータスの読み出し

00010000 HPS リセットレジスターの書き込み

Register 8

Bit[7] - 予約済み

Bit[6] - 予約済み

Bit[5] - 予約済み

Bit[4] - 予約済み

Bit[3] - 予約済み

Bit[2] - 予約済み

Bit[1] - ENET_HPS_RESETn。アクティブ Low にして HPS イーサネット・ポートをリセットします。

Bit[0] - 予約済み

00010001 HPS リセットレジスターの読み出し

Register 8

Bit[7] - HPS_UARTA_RESETn。読み出し専用ビット。常に「1」です。

Bit[6] - HPS_WARM_RESETn。読み出し専用ビット。「0」: WARM_Reset ボタンは押された状態です。「1」: 動作なしです。

Bit[5] - HPS_WARM_RESET1n。読み出し専用ビット。「0」: トレースリセットが検出されます。「1」は動作なしです。

Bit[4] - HPS_COLD_RESETn. 読み出し専用ビット。「0」: Cold_Reset ボタンは押された状態です。「1」は動作なしです。

Bit[3] - HPS_NPOR. 読み出し専用ビット。HSP 用 NPOR。アクティブ Low。

Bit[2] - HPS_NRST。読み出し専用ビット。HSP 用 NRST。アクティブ Low。

Bit[1] - ENET_HPS_RESETn. ENET_HPS_RESETn のステータスを読み出します。

Bit[0] - ENET_HPS_INTn。ENET_HPS_INTn 現在の状態。

00010010 USB & BQSPI& FILE & PCIE リセットレジストター の書き込み

Register 9

Bit[7] - USB_RESET。アクティブ High にして HPS USB をリセットします。

Bit[6] - BQSPI_RESETn。アクティブ Low にしてボートフラッシュをリセットをします。

Bit[5] - FILE_RESETn。アクティブ Low にして FILE フラッシュをリセットします。

Bit[4] - PCIE_PERSTn。アクティブ Low にして PCIE スロットをリセットします。

Bit[3:0] - 予約済み

00010011 USB & BQSPI& FILE & PCIE リセットレジスターの読み出し

Register 9

USB & BQSPI& FILE & PCIE リセットのステータスの読み出し

Bit[7] - USB_RESET

Bit[6] - BQSPI_RESETn

Bit[5] - FILE_RESETn

Bit[4] - PCIE_RESETn

Bit[3:0] - 予約済み

00010100 SFPA コントロール・レジスターの書き込み

Register 10

Bit[7] - SFPA_TXDISABLE.。「1」: SFPA TX を無効にします。「0」: SFPA を有効にします。

Bit[6:5] - SFPA_RATESEL[1:0]。SFPA RX レート選択。「0」: <4.25GBd1: > 4.25GBd

Bit[4:0] - 予約済み

00010101 SFPA コントロールレジスターの読み出し

Register 10

Bit[7] - SFPA_TXDISABLE。「1」: SFPA TX を無効にします。「0」: SFPA TX を有効にします。

Bit[6:5] - SFPA_RATESEL[1:0]。SFPA RX レート選択。「0」: <4.25GBd1: > 4.25GBd

Bit [4] - SFPA_LOS. SFPA の信号損失。「1」: LOS。「0」: 正常。

Bit[3] - SFPA_FAULT. SFPA の Tx fault 信号。 「1」: デフォルト。「0」: 正常。

Bit[2] - SFPA_PRESENTn。スロット A の SFP モジュールの信号を検出します。「1」: SFP モジュールなし。「0」: SFP モジュールプあり。

Bit[1:0] - 予約済み

00010110 SFPB コントロール・レジスターの書き込み

Register 11

Bit[7] - SFPB_TXDISABLE。「1」: SFPB TX を有効にします。「0」: SFPB TX を無効にします。

Bit[6:5] - SFPA_RATESEL[1:0]。SFPA RX レート選択。「0」: <4.25GBd1: > 4.25GBd

Bit[4:0] - 予約済み

00010111 SFPB コントロール・レジスターの読み出し

Register 11

Bit[7] - SFPB_TXDISABLE。SFPB TXDISABLE のステータスを読み出します。

Bit[6:5] - SFPB_RATESEL[1:0]。SFPB レート選択のステータスを読み出します。

Bit[4] - SFPB_LOS。SFPB の Los 信号を読み出します。「1」: ロス。「0」: 正常。

Bit[3] - SFPB_FAULT。SFPB の Tx Fault 信号を読み出します。「1」: Fault。「0」: 正常。

Bit[2] - SFPB_PRESENTn。スロット Bで SFP モジュールの信号を検出します。「1」: SFP モジュールなし。「0」: SFP モジュールあり。

Bit[1:0] - 予約済み

00011001 I2C マスターレジスターの読み出し

Register 12

Bit[7] - I2C マスター表示。「1」: HPS は I2C マスターです。「0」: MAXV は I2C マスターです。

Bit[6:0] - 予約済み

00011010 HPS ウォームリセット・レジスターの書き込み

Register 13

Bit[7:6] - “00”

Bit[5] - HPS_SPI_WARM_RESETn。アクティブ Low にして HPS ウォームリセットにします。アクティブになると、MAX V は自動的にこのビット 1 をクリアーします。

Bit[4:0] - “00000”

00011011 HPS ウォームリセット・レジスターの読み出し

Register 13

Bit[7:6] - “00”

Bit[5] - HPS_SPI_WARM_RESETn。HPS SPI ウォームリセットのステータスをリードします。

Bit[4:0] - “00000”

00011100 HPS ウォームリセット・キーレジスターの書き込み

Register 14

Bit[7:0] - HPS ウォームリセットのキーレジスター。0xA8 の値は、レジスター 13 のビット 5 を認識させます。

ソフトウェアは、レジスター 13 でビット 5 への有効な書き込み後にこのレジスターに異なる値を書き込む必要があります。

00011101 HPS ウォームリセット・キーレジスターの読み出し

Register 14

HPS ウォームリセット・キーレジスターでの現在の値

00011110 PM バス・コントロール・レジスターの書き込み

Register 15

Bit[7] - A10PMBUSEN。「1」: Arria 10 FPGA PMBUS を有効にします。「0」: Arria 10 FPGA PMBUS を無効にします。

Bit[6] - A10_PMBUSDIS_N。「1」: MAX5/HPS PMBus システムを有効にします。「0」: System MAX5/HPS PMBus システムを無効にします。

Bit[5:0] - 予約済み

00011111 PM バス・コントロール・レジスターを読み出し

Register 15

Bit[7] - A10PMBUSEN。「1」: Arria 10 FPGA PMBUS は有効になります。「0」: Arria 10 FPGA PMBUS は無効になります。

Bit[6] - A10_PMBUSDIS_N。「1」: MAXV/HPS PMBus システムは有効になります。「0」: MAXV/HPS PMBus システムは無効になります。

Bit[5] - Pmbus_Altertn。「1」: I2C は正常です。「0」: I2C はハングします。

Bit[4:0] - 予約済み