hello.
My name is Intel F. Hanako and I provide technical support for Intel® products at Macnica.
Quartus® Prime で設計したデータをインテル® の FPGA、CPLD、コンフィギュレーション ROM にダウンロードするとき、Quartus® Prime の Programmer を使いますが、ユーザーによっては、Quartus® Prime を操作する環境と実際に書き込みたいボードが離れたロケーションの場合があります。
今回は そんな環境で役に立つ "遠隔で Quartus® Prime の Programmer を操作する手法" をご紹介します。
なおここでは、Quartus® Prime を操作するパソコンを「ローカル」、ボードが接続されているパソコンを「リモート」と称します。
Environmental condition
リモートで Quartus® Prime Programmer を操作するためには、以下の条件が必要です。
- ローカル側およびリモート側に、Quartus® Prime(最低限リモート側は Quartus® Prime Programmerand Tools)がインストールされていること
→ リモート用パソコンは、Windows 7 SP1 OS ならば 32bit でもOK
- リモート側に、使用するインテル® FPGA ダウンロード・ケーブル(例えば USB-Blaster™ II)のドライバがインストールされていること
→ USB-Blaster™ II および USB-Blaster™ 用ドライバのインストール方法(for Windows OS)は、以下のコンテンツをご覧ください
USB-Blaster II のドライバ・インストール方法 / USB-Blaster のドライバ・インストール方法
- ローカルからリモートに向けて、ping が通る環境であること
→ ping が通らない場合、経路途中にあるルータなどでセキュリティ上の観点から ICMP 通信を制限しているケースや、応答先が Windows OS の場合に Windows ファイアウォールで ICMP だけをブロックしているケースなどが考えられます。ローカルとリモート間においてそれらが解除できる環境に無い場合には、この作業は行えません。
いざ実践
※ あらかじめ、リモート用パソコンにダウンロード・ケーブルおよびボードを接続しておきます。(ボードの電源もこの時点で入れておくと忘れないですよ。)
リモートの設定
1. コマンドプロンプト(ターミナル)を起動します。
2. Quartus® Prime の起動ファイルが保存されているフォルダへ移動します。
- Windows OS の場合
> cd %QUARTUS_ROOTDIR%¥bin64 - Linux OS の場合
> cd %QUARTUS_ROOTDIR%/bin
3. JTAG サーバーに指示するコマンドを実行します。password はリモートとローカルを接続するために同じパスワードにします。
> jtagconfig --enableremote <password>
4. リモートのホスト名を確認します。(ローカル側の設定で必要)
> hostname
ホスト名の代わりに、接続に使用するネットワーク・アダプターの IPv4 アドレスでも可能です。その場合には、ipconfig/all コマンド(Linux の場合は ifconfig や ip コマンド)で IP アドレスを確認します。
ローカルの設定
1. Quartus® Prime の Programmer を起動します。
ハナコのちょこっとポイント♪
Quartus® Prime 全体をわざわざ起動せずに "Programmer だけ" を起動する裏ワザ!
- Windows はスタート メニューから起動します。
スタート メニュー ⇒ Quartus® Prime プログラム・フォルダ⇒ Quartus® Prime <バージョン> Programmer
- Linux はターミナルで下記プログラムを実行します。
%QUARTUS_ROOTDIR%/bin/quartus_pgmw
いずれも、Programmer の GUI が画面に表示されます。
2. Programmer の Hardware Setup ボタンをクリックし、JTAG Settings タブに切り替えます。
3. Add Server ボタンをクリックし、以下を入力し OK ボタンをクリックします。
- Server name : リモート用パソコンのホスト名、または IP アドレス
- Server Password : リモート側で設定したパスワード
上記設定は、コマンドでも実行できます。
ローカル側のパソコン上で、”リモート設定” の操作1.および2.を行います。その後、下記コマンドを実行します。
> jtagconfig --addserver <server_name> <server_password>
リモート側と接続されれば、Connection Status が OK を表示します。
下表に JTAG Settings タブの Connection Status に表示される代表的な内容を掲載します。もしステータスが “OK” でない場合は、各状況を確認してください。
Connection Status の表示 | 状況および要因 |
OK |
リモートと接続できています。ダウンロード・ケーブルも使用できます。 |
No hardware available |
リモートと接続できていますが、リモート側のパソコンがダウンロード・ケーブルを認識していない(または接続されていない)可能性があります。ドライバのインストールなどを確認してください。 |
Authentication failure |
リモートと接続できていますが、パスワードが一致していない可能性があります。パスワードを確認してください。 |
Unable to connect |
リモートと接続できません。ping コマンドで開通を確認してください。 |
4. Hardware Setup ダイアログボックスを Hardware Settings タブに切り替え、Currently selected hardware: のプルダウンリストから、リモート上のダウンロード・ケーブルを選択します。
5. あとは通常の Programmer の操作通りに対象デバイスに対して適応したファイル(.sof/.pof)を選択し、実行するオプションにチェックを入れて、
Start ボタンをクリックしデータ転送を開始します。
なお、Quartus® Prime の Programmer に関するドキュメントは下記をご参考ください。
write completed
Programmer の Progress バーが “100%(Successful)” になり、Message ウィンドウに “Successfully performed operation(s)” の表示を確認したので、プログラミング完了です。
早速リモートの場所まで移動して接続されているボードを見てみると…、
ほら、無事に書き込みができています!
今回は、Programmer のリモート操作をご紹介しました。インテル® の FPGA や CPLD をプログラミングする方法にはこんな遠隔操作がありますので、必要に応じてお試しください。
ハナコのちょこっとポイント♪
今回の "遠隔で Quartus® Prime の Programmer を操作する方" の他に、リモートデスクトップ接続や SSH 接続を行い、リモート側のパソコンにインストールされた Quartus® Prime Programmer を直接操作する、と言う方法もありますね。
リモート側のパソコンがデバイスへの書き込み作業だけで良い場合には、Programmer 機能限定ツール Quartus® Prime Programmer and Tools のインストールがおすすめです。ライセンスはもちろん不要!Quartus® Prime のフルパッケージと比べ、ダウンロード・サイズもインストールも軽い!対応するオペレーション・システムも Quartus® Prime Programmer and Tools は 64bit 版と 32bit 版(Windows 7 SP 1 限定)をサポートしていますので、デバッグ環境に使用するパソコンは必ずしも高いスペックである必要はありません。