この記事では、Quartus® Prime 開発ソフトウェア(以下、Quartus® )を使用した SoC FPGA 搭載ボード向けのデザインについて、HPS 側のピン配置の指定に関する注意点を掲載します。
はじめに
SoC FPGA デバイスをターゲットにした Quartus® デザインでは、基本的には HPS 側のピンのロケーション・アサインメントは不要になっています。HPS 側のピン配置については、ユーザーが指定するプラットフォーム・デザイナーの HPS コンポーネントのオプション設定情報を元に Quartus® が自動的に判断してくれます。
一方で、Assignment Editor で HPS 側のピンのロケーション・アサインメントを指定することもできるようになっているため、誤ったロケーションが指定されるとトラブルの元になってしまいます。
ここでは、Quartus® デザイン上で HPS 側のピンのロケーション・アサインメントが行われた場合に、不要なトラブルを避けるためのポイント(注意点)について紹介します。
補足: HPS 内蔵のペリフェラル・コントローラのピンを FPGA 側にルーティングする場合はこの限りではありません。FPGA 側にルーティングした信号線のピン配置については Assignment Editor (もしくは、拡張子 .qsf のファイル)にて個別に設定が必要です。
1.トラブル回避のポイント
基本的には『 HPS ピンのロケーション・アサインメントは行わないこと 』が最も有効な対策になります。
しかしながら、意図せずに誤ったアサインメントが混入してしまうようなケースもあり得るかと思いますので、以下に意図しない設定の混入に気が付くためのポイントを紹介していきます。
HPS ピンのロケーション・アサインメントが行われた場合の Quartus® の反応は、デバイスファミリーによって異なるようです。そのため、注意すべきポイントもファミリーによって異なってきます。
デバイスファミリー |
Quartus® からの警告(コンパイル時のメッセージおよび結果) | 注意の必要性 |
V シリーズ(Cyclone® V SoC / Arria® V SoC) |
メッセージ表示なし。 コンパイルは正常終了。 |
要注意! |
Arria® 10 SoC |
クリティカル・ワーニングを表示。 コンパイルエラー。 |
不要 |
Stratix® 10 SoC |
クリティカル・ワーニングを表示。 コンパイルは正常終了。 |
要注意! |
2.デバイスファミリー別の確認ポイント
先に記載した Quartus® からの警告の内容を踏まえて、HPS ピンに対する誤ったロケーション・アサインメントに気が付くための確認ポイントをデバイスファミリー別に紹介します。
2‐1.V シリーズ(Cyclone® V SoC / Arria® V SoC)
コンパイル完了時に Fitter Report の Ignored Assignments を確認してください。
HPS 側のピンに対するロケーション・アサインメントが指定されている場合には、指定されているロケーションの正誤によらず、Fitter Report の Ignored Assignments のリストに「HPS_LOCATION」のレポートが表示されます。( Ignored のリストですが、完全に無視はしていないようです)
Ignored Assignments に「HPS_LOCATION」のレポートが無い状態になるようにご対応ください。
【図 1】 Ignored Assignments リスト上の「HPS_LOCATION」レポート表⽰例
2‐2.Arria® 10 SoC
コンパイル(Fitter)エラーが発生するので別途確認すべきポイントはありません。
コンパイル時の確認ポイントではありませんが、Arria® 10 SoC Development Kit 向けのハードウェア・リファレンス・デザイン「GHRD( Golden Hardware Reference Design )」をベースにデザインを作成する際には、予め全ての HPS ピンのロケーション・アサインメントが指定されている点に注意が必要です。
補足: ロケーション・アサインメントの変更を適切に行う必要がありますが、変更の手間が大きい場合は、HPS ピンのロケーション・アサインメントを削除する対応でも問題ないようです。(設定ミスの可能性を減らす意味では削除する対応がお勧めかもしれません)
2‐3.Stratix® 10 SoC
コンパイル完了時に Fitter Report の Messages のクリティカル・ワーニングを確認してください。
HPS 側のピンに対して誤ったロケーション・アサインメントが指定されている場合には、「Found LOCATION assignments found for "xxxx" pin with multiple values.. (Message ID 16643) 」のクリティカル・ワーニングが表示されます。(正しいロケーション・アサインメントに対してはメッセージ無し)
Message ID 16643 のクリティカル・ワーニングが無くなるようにご対応ください。
【図 2】 Message ID 16643 のクリティカル・ワーニング表示例
まとめ
この記事の内容は、現在リリースされている最新の Quartus®( v19.1 Standard / v19.4 Pro )で確認していますが、過去のバージョンにおいても HPS 側のピン配置は基本指定不要となっています。そのため、HPS 側のピンに対して誤ったロケーション・アサインメントが混入してしまうと、なかなか問題に気が付けず、調査に時間を要してしまうことが考えられます。
SoC FPGA 搭載ボードのデザインを作成した際には、実機検証の前に、この記事に記載の確認ポイントについて予めチェックしておくことをお勧めいたします。
関連記事へのリンク
Stratix® 10 SoC 及び Arria® 10 SoC の Hard Processor System External Memory Interface(HPS EMIF)ピン接続の制約については、以下の記事を参考にしてください:
参考: Stratix® 10 SoC/Arria® 10 SoC HPS EMIF の回路図確認項目