もくじ
1. はじめに
インテル® SoC FPGA を使用されているお客様から、Hard Processor System(以下、HPS)から FPGA に対してリセットをかけたいというお問い合わせを度々頂きます。
この資料では HPS から FPGA に対してリセットを発行する手段を紹介します。
2. リセットが出力されるポート
リセットが出力されるポートは h2f_reset もしくは h2f_cold_reset です。
詳細は下図1 のプラットフォーム・デザイナー(旧 Qsys)の画面キャプチャーを参照してください。
"3. リセットを発行するためのレジスター" で説明しますが、制御するレジスターによりリセットを h2f_reset か h2f_cold_reset のいずれかを選択することができます。
【図 1】 リセットのポート
尚、h2f_reset のポートを作成するのに設定は不要ですが、h2f_cold_reset のポートを使用するには別途設定が必要です。
h2f_cold_reset のポートを作成するには下図 2 のように、プラットフォーム・デザイナーから、HPS パラメーターの FPGA Interfaces タブ 内の Resets カテゴリーにある、Enable HPS-to-FPGA cold reset output にチェックを入れます。
【図 2】 h2f_cold_reset を有効にする設定
Arria® 10 でも図 2 と同様の設定項目がありますが、リセットの制御方法が異なりますのでご注意ください。
参考: 詳細は下記資料をご参照ください。
HPS から FPGA に対してリセット信号を発行する(Arria® 10)
3. リセットを発行するためのレジスター
HPS の Reset Manager には MISCMODRST レジスターがあり、こちらのレジスターを制御することによりリセット信号を出力できます。
h2f_reset にリセット信号を出す場合は、MISCMODRST の s2f(6bit 目)に 1 を設定します。
h2f_cold_reset にリセット信号を出す場合は、MISCMODRST の s2fcold(7bit 目)に 1 を設定します。
MISCMODRST のレジスターアドレスは 0xFFD05020 番地なので、アクセス方法としては下記となります。
- h2f_reset に出力する場合:0xFFD05020 番地に 0x00000040 を Write
- h2f_cold_reset に出力する場合:0xFFD05020 番地に 0x00000080 を Write
参考: レジスターの詳細については下記資料をご参照ください。
Cyclone V HPS memory Map ⇒ Reset Manager Module Address Map ⇒ miscmodrst
尚、FPGA と HPS のブリッジの有無に関わらず、本レジスターを操作することによりリセットを発行できます。
注記:
リセットを発行する際は FPGA と HPS のブリッジを閉じてから行ってください。
HPS と FPGA 間のブリッジを閉じるコマンドは下記となります。
$ run bridge_disable
4. リセット時の波形
"3. リセットを発行するためのレジスター" のコマンドを実行した際、HPS のリセットポート(h2f_reset / h2f_cold_reset)がどう変化するか Signal Tap で確認しました。
● リセットを発行する前の波形 :
h2f_reset / h2f_cold_reset は Low Active なので、下図 3 のようにポートの名前としてはそれぞれ h2f_cold_rst_n / h2f_rst_n となります。
また Low Active であるため、リセット前の波形は High になっています。
【図 3】 リセット前の h2f_reset / h2f_cold_reset
● h2f_reset にリセットをかけた場合の波形 :
"3. リセットを発行するためのレジスター" で説明した、
"0xFFD05020 番地に 0x00000040 を Write"
を実行すると、下図 4のように h2f_rst_n の信号が Low となりリセットが有効になります。
【図 4】 h2f_reset にリセットをかけた場合の波形
● h2f_cold_reset にリセットをかけた場合の波形 :
"3. リセットを発行するためのレジスター" で説明した、
"0xFFD05020 番地に 0x00000080 を Write"
を実行すると、下図 5 のように h2f_cold_reset_n の信号が Low となりリセットが有効になります。
【図 5】 h2f_cold_reset にリセットをかけた場合の波形
コメント
0件のコメント
記事コメントは受け付けていません。