インテルのみ表示可能 — GUID: pvj1637416934646
Ixiasoft
インテルのみ表示可能 — GUID: pvj1637416934646
Ixiasoft
4.6. Nios® ベースのダイナミック・リコンフィグレーション・フロー
ホスト・ソフトウェアは、IP へのデータパス・リセットをアサートすることにより、「DR-out」 IP を静止状態にします。次に、ホスト・ソフトウェアは DR CSR の Ready for New Trigger をポーリングして、それが設定されるのを待機します。
次に、ホスト・ソフトウェアはプロファイル情報を DR CSR レジスターにプログラミングし、Trigger Reconfig ビットを設定します。 Nios® は Trigger Reconfig ビットの設定をサンプリングすると、タイル固有の内部プログラミングを実行して DR 切り替えを実行し、すべてのタイル固有のアーキテクチャーをホスト・ソフトウェアから抽象化します。ホスト・ソフトウェアは特定の DR CSR の Ready for New Trigger ビットをポーリングすることで、 Nios® が切り替えフローを終了したことを特定します。切り替えフローが終了したら、ホスト・ソフトウェアは別の DR を同じチャネルで開始することができます。 Nios® が切り替えフローを完了すると、ホスト・ソフトウェアは「DR-in」 IP をリセットから解放することができます。
右のフローチャートは、DR 切り替え実行要求を受信時に NIOS コアが (直接的または他のコントローラーを介して間接的に) 実行するアクションを示しています。Trigger Reconfig ビットの設定が Nios® コアでサンプリングされると、内部 DR 切り替えフローが開始します。 Nios® は新しいコンフィグレーション設定を読み取り、DR の開始に進みます。
次のステップでは、新しいコンフィグレーションをそれぞれのタイルの IP ブロック (MAC、PCS、FEC、PMA) レジスターに書き込みます。プログラムされるタイルレジスターは、ホスト・ソフトウェアがコンフィグレーションした DR CSR レジスターの値に基づき導出されます。
タイルの新しいコンフィグレーションが完了すると、 Nios® コアは DR CSR の Ready for New Trigger ビットを設定します。これにより、ホスト・ソフトウェアは現在の DR 切り替えが完了したことを認識します。
一般的なダイナミック・リコンフィグレーションのソフトウェア・フロー
- Dynamic Reconfiguration New Trigger (0x00[1]) レジスターを継続的にポーリングし、アサートされるまで待機します。アサートされると、 Nios® の準備が完了しています。
- 現在のプロトコル IP をリセットします。例えば、i_p0_rst_n、i_p0_tx_rst_n、および i_p0_rx_rst_n ビットを 1'b0 に設定します。
- 現在のプロトコル IP のリセット肯定応答を待機します。例えば、o_p0_rst_ack_n、o_p0_tx_rst_ack_n、および o_p0_rx_rst_ack_n ビットを 1'b0 にクリアします。
- Dynamic Reconfiguration Next Profile <N> (0x04 - 0x50) レジスターをプログラミングして、次のプロファイルをコンフィグレーションします。
- ダイナミック・リコンフィグレーションをトリガーするには、Dynamic Reconfiguration New Trigger (0x00[0]) レジスターに書き込みます。
- Dynamic Reconfiguration New Trigger (0x00[1]) レジスターを継続的にポーリングし、アサートされるまで待機します。
- 新しいプロトコル IP を新しいコンフィグレーションでコンフィグレーションします。例えば、Ethernet Multirate IP のレジスターには、0x200 - 0x0208 オフセットを使用します。
- 新しいプロトコル IP のリセットを解除します。例えば、i_p0_rst_n、i_p0_tx_rst_n、および i_p0_rx_rst_n ビットを 1'b1 に設定します。
- 新しいプロトコル IP のリセット肯定応答を待機します。例えば、o_p0_rst_ack_n、o_p0_tx_rst_ack_n、および o_p0_rx_rst_ack_n ビットが 1'b1 になります。
- ダイナミック・リコンフィグレーションの完了になります。