インテル® FPGA は “Remote System Upgrade (リモート・システム・アップグレード) 機能” によって、リモート・ソースから新しいコンフィグレーション・データを受信、およびフラッシュ・メモリーの内容を更新することができ、その新しいコンフィグレーション・データで FPGA の再コンフィグレーションを可能にします。これにより、デザイン・サイクルの短縮、規格の進化への対応、および遠隔地でのシステム配備といった困難な課題の克服を実現します。

Remote System Upgrade (RSU) とは?

インテル FPGA のコンフィグレーション・データを格納するメモリー・デバイスのデータ内容をアップグレード (書き換え) することの総称です。
下図は、その動作を図化したものです。

一般的なリモート・システム・アップグレード・プロセス

リモート・システム・アップグレードは、以下の動作フローで行います。

0. 既存のコンフィグレーション・データで FPGA が動作
1. 外部から FPGA を経由して、新しいコンフィグレーション・データを Flash メモリーに転送および更新
2. FPGA 内の IP により、更新した Flash メモリー内のコンフィグレーション・データにアクセス
3. 新しいイメージで FPGA を再コンフィグレーション

下図は、リモート・システム・アップグレードを実現するための FPGA とコンフィグレーション用 Flash メモリーの構成を示しています。

リモート・システム・アップグレードのブロック図

対象デバイス・ファミリー

表1. RSU をサポートするデバイス

FPGA ファミリー

Stratix® V, Stratix® IV, Arria® 10, Arria® V, Cyclone® 10, Cyclone® V, MAX® 10

コンフィグレーション ROM

EPCQA, EPCQ, EPCS

RSU にはリモート・アップデート機能が必須

リモート・システム・アップグレードを実現するには、FPGA のコンフィグレーション用 ROM に以下の2種類のファイルを格納します。

表2. ファイルの種類と概要

ファクトリー・イメージ

起動時やシステム・エラー時に、FPGA にロードされるコンフィグレーション・データ。デバイスによって、初期起動はファクトリー・イメージがロードされると決まっているファミリーがある。

アプリケーション・イメージ

FPGA に再コンフィグレーションされるデータ。複数保有することが可能。ファクトリー・イメージを除いたページに格納される。RSU 時に更新することができる。

通常は、このファクトリー・イメージとアプリケーション・イメージを動作中に切り替えることで、FPGA の動作を更新することができます。この機能を リモート・アップデート と言います。

[関連情報] FPGA のコンフィグレーション・データを切り替える方法 HDL 編

このリモート・アップデートをさらに拡張して、コンフィグレーション・データを格納している Flash メモリ内の既存アプリケーション・イメージを書き換えることを リモート・システム・アップグレード と言います。 リモート・システム・アップグレードおよびリモート・アップデート機能を実現するには、専用の IP をユーザーのデザインに組み込む必要があります。

表3. FPGA ファミリーと IP

FPGA ファミリ

特徴

IP

Arria 10

Cyclone 10 GX

起動時に使用するコンフィグレーション・データ(ファクトリー/アプリケーション)を任意で指定可能

Remote Update Intel FPGA IP

 

Generic Serial Flash Interface Intel FPGA

Stratix V 

Stratix IV

Arria V

Cyclone V

ファクトリー・デザインから起動。アプリケーション・デザインから別のアプリケーション・デザインへ遷移する際は、一度ファクトリー・デザインへ戻る必要あり。

Cyclone 10 LP

MAX 10

起動時に使用するコンフィグレーション・データ(ファクトリー/アプリケーション)を任意で指定可能

On-Chip Flash Intel FPGA IP

 

Dual Configuration Intel FPGA IP

コンフィグレーション・データの切り替えイメージ

リモート・アップデートは、各 FPGA によってコンフィグレーション・データの切り替える仕様が異なります。
以下は、ファミリー別に簡単に図化したものです。

Arria 10, Cyclone 10 GX のリモート・アップデート・モード

Arria 10, Cyclone 10 GX におけるコンフィグレーション・データの切り替えイメージ

Stratix V, Stratix IV, Arria V, Cyclone V のリモート・アップデート・モード

Stratix V, Stratix IV, Arria V, Cyclone V におけるコンフィグレーション・データの切り替えイメージ

Cyclone 10 LP のリモート・アップデート・モード

Cyclone 10 LP におけるコンフィグレーション・データの切り替えイメージ

MAX 10 のリモート・アップデート・モード

MAX 10 におけるコンフィグレーション・データの切り替えイメージ

リモート・システム・アップグレードの一般的な作業手順

  1. 各ユーザー・デザインに、RSU 用 IP を組み込んでコンパイル
  2. RSU 用のプログラミング・データを作成
  3. コンフィグレーション ROM (または Flash メモリ) に書き込む
  4. FPGA をコンフィグレーション、FPGA が動作
  5. FPGA が動作中に、外部からコンフィグレーションROM (または Flash メモリー) のデータを更新
  6. FPGA を再コンフィグレーション

最後に

リモート・システム・アップグレードに関する動画が、下記 YouTubeにおいて公開中です。

サンプル・デザインは下記より入手できます。 (Design Store については、こちらのページをご覧ください。)

関連セミナー

おすすめ記事/資料はこちら

おすすめ FAQ はこちら