43
インテル ® Stratix ® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド インテル ® Quartus ® Prime 開発デザインスイートの更新情報: 18.1 更新情報 フィードバック UG-20045 | 2018.11.29 最新版をウェブからダウンロード: PDF | HTML

インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

インテル® Quartus® Prime 開発デザインスイートの更新情報: 18.1

更新情報フィードバック

UG-20045 | 2018.11.29

新版をウェブからダウンロード: PDF | HTML

Page 2: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

目次

1. 概要..................................................................................................................................41.1. CvP 使用の利点.......................................................................................................41.2. CvP システム.......................................................................................................... 41.3. CvP モード............................................................................................................. 5

1.3.1. CvP の制限および制約....................................................................................6

2. CvP の説明........................................................................................................................ 82.1. コンフィグレーション・イメージ...................................................................................... 82.2. CvP モード............................................................................................................. 8

2.2.1. CvP 初期化モード.........................................................................................82.2.2. CvP 更新モード............................................................................................8

2.3. 圧縮機能................................................................................................................9データ圧縮...........................................................................................................9

2.4. ピンの説明............................................................................................................. 9

3. CvP トポロジー..................................................................................................................123.1. シングル・エンドポイント............................................................................................123.2. 複数のエンドポイント............................................................................................... 12

4. デザインの考慮事項............................................................................................................. 144.1. オープンシステム用 CvP のデザイン.............................................................................. 14

4.1.1. FPGA 電源ランプ時間要件.............................................................................144.1.2. PCIe ウェイクアップ時間要件........................................................................ 15

4.2. クローズドシステム用 CvP のデザイン............................................................................16

5. CvP ドライバーおよびレジスター............................................................................................. 185.1. CvP ドライバーのサポート..........................................................................................185.2. CvP ドライバーのフロー............................................................................................185.3. CvP 用 VSEC レジスター...........................................................................................19

5.3.1. Vendor Specific Capability Header レジスター.................................................205.3.2. Vendor Specific Header レジスター............................................................... 205.3.3. Intel Marker レジスター..............................................................................205.3.4. User Configurable Device/Board IDレジスター............................................... 215.3.5. CvP Status レジスター................................................................................ 215.3.6. CvP Mode Control レジスター....................................................................... 225.3.7. CvP Data レジスター...................................................................................225.3.8. CvP Programming Control レジスター............................................................235.3.9. CvP Credit レジスター................................................................................. 23

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順について....................................246.1. CvP 初期化モードの実装........................................................................................... 24

6.1.1. PCI Express 用 Avalon -ST インテル Stratix 10 Hard IP の合成 HDL ファイルの作成.. 266.1.2. Device and Pin Options での CvP パラメーターの設定......................................... 276.1.3. デザインのコンパイル................................................................................... 286.1.4. SOF ファイルの変換.....................................................................................286.1.5. ハードウェアの立ち上げ.................................................................................30

目次

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

2

Page 3: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

6.2. CvP 更新モードの実装..............................................................................................326.2.1. PCIe Hard IP のインスタンス化..................................................................... 346.2.2. CvP パラメーターの設定............................................................................... 346.2.3. ベースリビジョンの設定.................................................................................346.2.4. 更新リビジョンの設定とコンパイル....................................................................376.2.5. 更新版 SOF ファイルの変換............................................................................386.2.6. Base Revision SOF ファイルを使用した FPGA のプログラミング.............................. 40

7. インテル Stratix 10 プロトコル経由コンフィグレーション (CvP) 実装 ユーザーガイド・アーカイブ........... 42

8. インテル Stratix 10 プロトコル経由コンフィグレーション (CvP) 実装 ユーザーガイドの改訂履歴........... 43

目次

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

3

Page 4: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

1. 概要

Configuration via Protocol (CvP) は、 Arria® V、 Cyclone® V、 Stratix® V、 インテル® Arria10、 インテル Stratix 10、および インテル Cyclone 10 GX デバイスファミリーでサポートされているコンフィグレーション方式です。CvP コンフィグレーション手法では、別々のイメージがペリフェラル・ロジックとコアロジックに作成されます。ペリフェラル・イメージをローカルのコンフィグレーション・デバイスに保存し、コアイメージをホストメモリーに保存することで、システムコストを削減し、独自のコアイメージのセキュリティーを強化することができます。CvP での Intel® FPGA ファブリックのコンフィグレーションは、 PCI Express* ( PCIe* ) リンクによって行われ、使用できるのは、エンドポイント・バリアントに対してのみです。このドキュメントで説明する CvP コンフィグレーション方式は、 インテルStratix 10 デバイスファミリー向けです。

関連情報• Arria 10 CvP Initialization and Partial Reconfiguration over PCI Express User Guide

Arria 10 デバイスの CvP 実装に関する詳細情報を提供しています。

• Configuration via Protocol (CvP) Implementation in V-series FPGA Devices UserGuide

V シリーズ FPGA デバイスの CvP 実装に関する詳細情報を提供しています。

• Additional Clock Requirements for Transceivers, HPS, PCIe, High BandwidthMemory (HBM2) and SmartVID

1.1. CvP 使用の利点

CvP コンフィグレーション方式には次の利点があります。

• コンフィグレーション・データを格納するローカル・フラッシュ・デバイスのサイズを小さくすることでシステムコストを削減します。 小の EPCQ デバイスでも、すべての インテル Stratix 10 ペリフェラルイメージにとって十分な大きさがあります。

• FPGA のアップデートに、フラッシュの再プログラミングは必要ありません。

• ダイナミック・コアのアップデートを有効にするのに、システムの電源をオフにする必要はありません。CvP を使用すると、FPGA コア・ファブリックのアップデートが PCIe リンクを介してできるので、ホストの再起動や FPGA フルチップの再初期化を行う必要がありません。

• コンフィグレーション用ソフトウェア・モデルがよりシンプルなものになります。スマートホストでは、 PCIe プロトコルとアプリケーション・トポロジーを使用して、FPGA コア・ファブリックの初期化および更新を行います。

• デザインを迅速に更新することによって、アプリケーションの負荷が変更できます。

1.2. CvP システム

CvP システムの一般的な構成は、FPGA、 PCIe ホストとコンフィグレーション・デバイスです。

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 5: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -1: CvP ブロック図

Configuration device [1]

Configuration interface [1]

Intel Stratix 10 FPGA Device

PCIe link

Secure DeviceManager

PCIeHard IP

[2]

PCIeHard IP

[3]

Host

Root Complex

1. FPGA では、コンフィグレーション・デバイスへの接続に、アクティブシリアル x4(高速モード)コンフィグレーション手法を使用します。

2. CvP および他のアプリケーションでは、 PCIe Hard IP ブロック(左下)を使用します。

• インテル Stratix 10 FPGA の多くには、 PCI Express 用の Hard IP ブロックが複数含まれています。CvP コンフィグレーション手法では、 PCIe 各デバイスの Hard IP ブロック(左下)だけが使用可能です。これをエンドポイントとして設定する必要があります。

3. 他の PCIe Hard IP ブロックは PCIe アプリケーションには使用できますが、CvP に使用することはできません。

注意: コンフィグレーションの失敗を回避するため、フリーランニングおよび安定したリファレンス・クロック・ソースを IP コアに提供してから、 PCIe コンフィグレーションを開始する必要があります。

1.3. CvP モード

CvP コンフィグレーション手法では、以下のモードをサポートしています。

• CvP 初期化モード

• CvP 更新モード

CvP 初期化モード

このモードでは、CvP PCIe コアのコンフィグレーションを、FPGA のペリフェラル・イメージを使用し、オンボード・コンフィグレーション・デバイスを介して行います。その後、コア・ファブリックとすべての GPIOのコンフィグレーションを PCIe リンクを介して行います。

1. 概要UG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

5

Page 6: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

CvP 初期化モードを使用する利点は次のとおりです。

• PCIe ウェイクアップ時間の要件を満たします。

• コアイメージをホストメモリーに保存することでコストを削減します。

CvP 更新モード

CvP 更新モードでは、CvP PCIe コア以外のデバイス全体をリコンフィグレーションします。これは、デバイスがフル・チップ・コンフィグレーションまたは CvP 初期化を介してユーザーモードに入った後に行われます。その後のコアイメージの更新では、 PCIe リンクを使用します(ペリフェラルは CvP 更新中に変更してはいけません)。

CvP 更新モードで使用するプロセスは、ルート・パーティションをブロックベースのデザインで再利用する際のものと同じです。これによってデバイス・ペリフェラルを再利用できます。

このモードを選択するのは、次のいずれかの理由でコアイメージを更新する場合です。

• コア・アルゴリズムのロジックブロックの変更

• リリースプロセスの一環としての標準的な更新

• 複雑なシステムの一部であるさまざまなコンポーネント用コア・プロセッシングのカスタマイズ

注意: CvP 更新モードは、FPGA がユーザーモードに入った後に使用可能になります。ユーザーモードで PCIeリンクが使用可能なのは、通常の PCIe アプリケーションのほか、FPGA コアイメージの更新を実行する場合です。

表 1. インテル Stratix 10 デバイスファミリーに対する CvP サポート

PCIe バージョン サポートされる CvP モード

Gen 1 / Gen 2 / Gen 3 CvP 初期化、CvP 更新

関連情報Reusing Root Partitions

1.3.1. CvP の制限および制約

インテル Stratix 10 CvP 実装には、現在のバージョンの インテル Quartus® Prime 開発ソフトウェアで次の制限および制約があります。

• MemWR トランザクションだけが、ファブリック・コンフィグレーション・データの CvP データレジスターへの書き込みに使用できます。 ConfigWR トランザクションはサポートされていません。

• CVP_CREDIT ビットのポーリングを CvP クレジットレジスターから行うとき、次の 4KB のファブリック・コンフィグレーション・データの CvP データレジスターへの書き込みは、追加のクレジットを受け取ってから 50ms 以内に行ってください。データの送信が正常に行われないと、コンフィグレーションが正常に行われません。

• CvP 応答時間は可変であり、さまざまな条件によって異なります。典型的な遅延時間は 5 秒ですが、1 分まで待つのが安全です。したがって、ドライバーでは、クレジットレジスターのステータスをポーリングするために、ドライバーのタイムアウトを決定してください。

• CvP 初期化および更新モードでは、FPGA ファブリックがプログラムされていない場合、FPGA ファブリックを使用する PCIe 機能にはアクセスできません。

• 更新イメージの生成を CvP 更新モードで行うには、ベースイメージの生成に使用するのと同じバージョンの インテル Quartus Prime 開発ソフトウェアを使用してください。

1. 概要UG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

6

Page 7: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

1.3.1.1. CvP エラーの回復

この項では、さまざまなエラー状況で予想される動作について説明します。

表 2. インテル Stratix 10 CvP エラーイベントおよび推奨される回復方法

エラーイベント 推奨される回復方法

ビットストリームが 初の 168KB のデータ内で破損。 CvP ステータスレジスターの CVP_CONFIG_ERROR ビットが Highになります。ティアダウン・シーケンスを実行してから、別のビットストリームを送信してください。

ビットストリームが 初の 168KB のデータ内で破損。 CvP ステータスレジスターの CVP_CONFIG_ERROR ビットが Highになります。システムを回復するには、ターゲットの インテル Stratix10 デバイスの電源を入れ直してください。

PCIe CvP 中のバスエラー システムは回復不能です。システムの電源を入れ直してください。

PCIe バスエラーの発生の結果、PERST アサートが発生。 システムは回復不能です。システムの電源を入れ直してください。

CvP 動作の中止要求 サポートされていません。CvP 動作要求後のコンフィグレーションの中止はサポートされていません。 Intel ではシステムの電源を入れ直すことをお勧めします。

ビットストリームは、 インテル Quartus Prime バージョンで提供されたものであり、デバイスで実行中のコンフィグレーション・ファームウェアの生成に使用されたものではない。

CvP ステータスレジスターの CVP_CONFIG_ERROR ビットが Highになります。ティアダウン・シーケンスを実行してから、別のビットストリームを送信してください。異なる Quartus バージョンからのビットストリームのミキシングはサポートされていません。

1. 概要UG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

7

Page 8: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

2. CvP の説明

2.1. コンフィグレーション・イメージ

CvP では、ビットストリームを分割してペリフェラル・イメージとコアイメージの 2 つのイメージにします。

インテル Quartus Prime プロ・エディション開発ソフトウェアを使用して生成するイメージは次の通りです。

• ペリフェラル・イメージ (*.periph.jic) - ペリフェラルすべてが含まれます。ペリフェラル・イメージ全体はスタティックであり、リコンフィグレーションすることはできません。

• コアイメージ (*.core.rbf) - デザインのすべてのコア・コンポーネントが含まれます。

2.2. CvP モード

2.2.1. CvP 初期化モード

このモードでは、外部コンフィグレーション・デバイスでペリフェラル・イメージを保存し、そのイメージのFPGA へのロードには、アクティブシリアル x4(Fast モード)コンフィグレーション手法を使用します。ホストメモリーではコアイメージを保存し、そのイメージは、 PCIe リンクを介して FPGA にロードされます。

ペリフェラル・イメージのコンフィグレーションが完了すると、 CONF_DONE 信号が High になり、FPGA によって PCIe リンク・トレーニングが開始されます。 PCIe リンク・トレーニングが完了すると、PCIe リンクは L0状態に移行し、次にホストで PCIe リンクの列挙が完了できるようにします。その後PCIe ホストでは、 PCIe リンクを介したコアイメージのコンフィグレーションを開始します。 PCIeREFCLK は、ペリフェラル・イメージの送信前に実行してください。

コアイメージのコンフィグレーションが完了すると、 CvP_CONFDONE ピン(有効になっている場合)がHigh になり、FPGA が完全にコンフィグレーションされたことを示します。

FPGA が完全にコンフィグレーションされると、FPGA はユーザーモードに入ります。 INIT_DONE 信号が有効な場合、 INIT_DONE 信号が High になるのは、初期化が完了し、FPGA がユーザーモードに入った後です。

ユーザーモードの場合、 PCIe リンクは一般的な PCIe アプリケーションで利用可能です。

2.2.2. CvP 更新モード

CvP 更新モードは、リコンフィグレーション方式の1つです。CvP 更新モードでは、ホストデバイスによって更新ビットストリームをターゲットの FPGA デバイスへ送信することが可能になります。これは、デバイスがユーザーモードに入った後に行われます。CvP 更新モードで FPGA デバイスの初期化を実行するには、完全なコンフィグレーション・イメージを外部ローカル・コンフィグレーション・デバイスから FPGAにロードします。もしくは CvP 初期化の後に行います。

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 9: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

初にコンフィグレーションしたデバイスで CvP 初期化を実行するには、CvP 初期化または他のコンフィグレーション手法を使用します。 CvP 初期化は、CvP 更新を実行するための前提条件ではありません。

ユーザーモードのとき、 PCIe リンクは一般的な PCIe アプリケーションで利用可能です。CvP PCIe リンクを使用して、FPGA コアイメージの更新を実行します。FPGA コアイメージの更新を実行するために、1 つ以上の FPGA コアイメージをペリフェラル・イメージと同じ接続を持つ インテル QuartusPrime プロ・エディション開発ソフトウェア内に作成します。

図 -2: CvP コアイメージ更新のためのペリフェラル・イメージおよびコアイメージのストレージ配置ペリフェラル・イメージは、異なるコアイメージの更新に対しては変更されません。ペリフェラル・イメージを変更した場合は、新しいペリフェラル・イメージを使用してローカル・コンフィグレーション・デバイスを再プログラミングしてください。

Root Complex

PCle Host

Intel® Stratix®10

ConfigurationControl Signals

PCIe Link

AS_DATA[3:0]AS_CLK

AS_nCS0

EndPoint

Core Image

PCIe Hard IP

(HIP)

SecureDevice

Manager

FPGA Fabric

QSPI Flash MemoryDATA[3:0]DCLKnCS0

PeripheryImage (.jic)

ConfigurationControl Signals &

CvP Pins

4

Core Image(.rbf)

12

3n Core Image

Update viaPCIe Link

To External Host or

Hardwired to Board

2.3. 圧縮機能

データ圧縮

インテル Quartus Prime プロ・エディション開発ソフトウェアでは、すべての インテル Stratix 10 ビットストリームを圧縮してストレージ要件を軽減し、ビットストリームの処理速度を向上させます。ペリフェラル・イメージとコアイメージは両方とも圧縮されます。

2.4. ピンの説明

次の表に CvP ピンの説明と接続ガイドラインを示します。

2. CvP の説明UG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

9

Page 10: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

表 3. CvP ピンの説明と接続ガイドライン

ピン名 ピンタイプ ピンの説明 ピン接続

CvP_CONFDONE 出力

CvP_CONFDONE ピンは、コンフィグレーション中に Low で駆動されます。 PCIe が完了すると、この信号は積極的に High に駆動されます。CvP 初期化および更新モードでの FPGA コンフィグレーション中、 CONF_DONE が High になった後にこのピンを観察して、FPGA が正常にコンフィグレーションされたか判別できます。

このピンが専用出力として設定されている場合、 VCCIO_SDM 電源装置では受信側の入力電圧仕様を満たしている必要があります。SDM_IO0、SDM_IO10、SDM_IO11、SDM_IO12、SDM_IO13、SDM_IO14、SDM_IO15または SDM_IO16をCvP_CONFDONE として インテルQuartus Prime プロ・エディション開発ソフトウェアで割り当てます。

INIT_DONE 出力

INIT_DONE ピンが High になり、デバイスがコンフィグレーション完了時にユーザーモードに入ったことを示します。

インテルでは、 SDM_IO0 ピンを使用して、INIT_DONE 機能を実装することをお勧めします。条件は、 インテル Quartus Primeプロ・エディション開発ソフトウェアでこの機能が有効になっていることです。このピンの弱いプルダウンは、電源投入中の適切な機能のためです。INIT_DONE 機能の実装には、他の未使用の SDM I/O ピン (弱いプルダウン) を使用することもできます。

CONF_DONE 出力

通常のコンフィグレーション・モードでは、CONF_DONE ピンはコンフィグレーションの前後に Low で駆動されます。すべてのコンフィグレーション・データがエラーなしで受信され、初期化サイクルが開始すると、 CONF_DONE は Highに駆動されます。In CvP 初期化モードでは、CONF_DONE はペリフェラルのコンフィグレーション後に High になります。

インテルでは、 SDM_IO16 ピンを使用して、 CONF_DONE 機能を実装することをお勧めします。条件は、 インテル QuartusPrime プロ・エディション開発ソフトウェアでこの機能が有効になっていることです。

nPERST[L,R][0:2] 入力

nPERST ピンが使用可能なのは、 PCI Expressハード IP を使用している場合のみです。左または右側の PCIe ハード IP が有効になっている場合、該当する側の nPERST ピンは汎用I/O (GPIO) としては使用できません。この場合、nPERST ピンをシステム PCIe nPERST 信号に接続し、リンクの両端でリンク・トレーニングが同時に開始するようにします。一方の側の nPERST ピンが GPIO として使用できるのは、その側の PCIe ハード IP が有効になっていない場合にのみです。このピンが Low の場合、トランシーバーはリセット状態です。このピンが High の場合、トランシーバーはリセット状態にはなりません。このピンを基本リセットとして使用しない場合は、ユーザーの I/O ピンとして使用できます。

このピンの接続を インテル QuartusPrime プロ・エディション開発ソフトウェアの定義通りに行います。詳細については、 インテル Stratix 10 Avalon® -MM/STInterface for PCIe Solutions UserGuide を参照してください。このピンの電力は、 VCCIO3V によって供給されます。3.0V 電源を VCCIO3V に接続する場合は、ダイオードを使用して 3.3V LVTTLPCIe 入力信号をデバイスの VCCIO3V 電源にクランプしてください。VCCIO3V が 3.0V 以外の電圧に接続されている場合は、レベル・トランスレーターを使用して、電圧を 3.3V LVTTL からシフトダウンし、 VCCIO3V ピンに給電している対応電圧レベルにする必要があります。nPERST ピンは、 PCIe ハード IP1 つにつき 1 つだけが使用されます。 インテルStratix 10 デバイス・コンポーネントでは、特定のコンポーネントには 1 つまたは 2 つの PCIe ハード IP しか含まれていない場合でも、6 つのピンがすべてリストされていることがあります。

continued...

2. CvP の説明UG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

10

Page 11: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

ピン名 ピンタイプ ピンの説明 ピン接続

• nPERSTL0 = 左下の PCIe ハード IPおよび CvP

• nPERSTL1 = 真ん中左の PCIe ハード IP(使用可能な場合)

• nPERSTL2 = 左上の PCIe ハード IP(使用可能な場合)

• nPERSTR0 = 右下の PCIe ハード IP(使用可能な場合)

• nPERSTR1 = 真ん中右の PCIe ハード IP (使用可能な場合)

• nPERSTR2 = 右上の PCIe ハード IP(使用可能な場合)

注意:

大限の互換性のために、常に左下の PCIe ハード IP を 初に使用して下さい。この場所でのみ PCIe リンクを使用したプロトコル経由コンフィグレーション (CvP) がサポートされています。

関連情報• Intel Stratix 10 Avalon-MM Interface for PCI Express Solutions User Guide

• Intel Stratix 10 Avalon-ST and Single Root I/O Virtualization (SR-IOV) Interface forPCI Express Solutions User Guide

• Intel Stratix 10 Device Family Pin Connection Guidelines

2. CvP の説明UG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

11

Page 12: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

3. CvP トポロジー

CvP でサポートしている 2 種類のトポロジーでは、単一または複数の FPGA をコンフィグレーションできます。

3.1. シングル・エンドポイント

シングル・エンドポイント・トポロジーを使用して、単一の FPGA をコンフィグレーションします。このトポロジーでは、 PCIe リンクによって、FPGA デバイス内の PCIe エンドポイントをホスト内の 1 つのPCIe ルートポートに接続します。

図 -3: シングル・エンドポイント・トポロジー

Root Complex

PCle Host

Intel® Stratix®10nCONFIGnSTATUSCONF_DONEINIT_DONEOSC_CLK_1

MSEL[2:0]

PCIe Link

AS_DATA[3:0]AS_CLK

AS_nCS0

EndPoint

Core Image

PCIe Hard IP

(HIP)

SecureDevice

Manager

FPGA Fabric

QSPI Flash MemoryDATA[3:0]DCLKnCS0

PeripheryImage (.jic)

ConfigurationControl Signals &

CvP Pins

ConfigurationControl Signals

ConfigurationControl Signals &

CvP Pins

OptionalMonitoring

10kΩ10kΩ10kΩ

MSEL

VCCIO_SDM

3

4

Core Image(.rbf)

12

3n Core Image

Update viaPCIe Link

ExternalClock Source

3.2. 複数のエンドポイント

複数のエンドポイント・トポロジーを使用し、複数の FPGA のコンフィグレーションを PCIe スイッチを介して行います。このトポロジーによって、コンフィグレーションするデバイスの選択や、 PCIe リンクを介した更新が柔軟にできるようになります。このトポロジーでは、任意の数の FPGA をホストに接続できます。

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 13: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

PCIe スイッチによって、コアイメージのコンフィグレーションが制御されます。これには、FPGA 内のターゲットの PCIe エンドポイントへの PCIe リンクが使用されます。ルートポートが PCIe スイッチに応答し、コンフィグレーション・トランザクションがエンドポイント(エンドポイントのバス/デバイス/機能のアドレスに基いて PCIe スイッチで指定)に向けられていることを確認してください。

図 -4: 複数のエンドポイント・トポロジー

Root Complex

PCle HostPCIe

Switch

PCIe Link

Intel® Stratix®10nCONFIGnSTATUSCONF_DONEINIT_DONEOSC_CLK_1

MSEL[2:0]

AS_DATA[3:0]AS_CLK

AS_nCS0

EndPoint

Core Image

PCIe Hard IP

(HIP)

SecureDevice

Manager

FPGA Fabric

QSPI Flash MemoryDATA[3:0]DCLKnCS0

PeripheryImage (.jic)

ConfigurationControl Signals &

CvP Pins

ConfigurationControl Signals

ConfigurationControl Signals &

CvP Pins

OptionalMonitoring

10kΩ10kΩ10kΩ

MSEL

VCCIO_SDM

3

Intel® Stratix®10

Core Image

FPGA Fabric

EndPoint

PCIe Hard IP

(HIP)

SecureDevice

Manager

End

nCONFIGnSTATUSCONF_DONEINIT_DONEOSC_CLK_1

MSEL[2:0]

AS_DATA[3:0]AS_CLK

AS_nCS0

QSPI Flash MemoryDATA[3:0]DCLKnCS0

PeripheryImage (.jic)

ConfigurationControl Signals &

CvP Pins

ConfigurationControl Signals

ConfigurationControl Signals &

CvP PinsOptionalMonitoring

10kΩ10kΩ10kΩ

MSEL

VCCIO_SDM

3

4

4

Core Image(.rbf)

12

3n

Core ImageUpdate viaPCIe Link

ExternalClock Source

ExternalClock Source

3. CvP トポロジーUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

13

Page 14: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

4. デザインの考慮事項

4.1. オープンシステム用 CvP のデザイン

PCIe リンクの両端を完全に制御できないオープン CvP システムをデザインする際は、次のガイドラインに従ってください。

4.1.1. FPGA 電源ランプ時間要件

オープンシステムでは、デザインが FPGA 電源の立ち上げ時間要件に準拠していることを確認してください。

パワー・オン・リセット (POR) 回路で FPGA がリセット状態に保たれるのは、電源出力が推奨動作範囲に達するまでの間です。POR イベントが発生するのは、FPGA の電源投入時から、電源供給が 大電源ランプ時間 tRAMP 内で推奨動作範囲に達するまでの間です。tRAMP が満たされない場合は、デバイスのI/O ピンとプログラミング・レジスターはトライステートのままです。その間はデバイスのコンフィグレーションが正常に行われないことがあります。

CvP の PCIe リンクアップ時間を満たすための合計 tRAMP は、 初の電源供給ランプアップから 後の電源供給ランプアップまでが 10ms 未満でなければなりません。MSEL 設定で ASx4 高速モードを選択して、 短の POR 遅延を確保してください。

図 -5: 電源供給ランプアップ時間と POR

First PowerSupply

Last PowerSupply

Time

Volts

POR Delay10 ms ConfigurationTime

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 15: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

関連情報Intel Stratix 10 Power Management User Guide

4.1.2. PCIe ウェイクアップ時間要件

オープンシステムでは、 PCI Express CARD Electromechanical Specification PCIe で規定されているように、 PCIe リンクでウェイクアップ時間の要件が満たされていることを確認してください。PCIe ウェイクアップのタイミング仕様の電源投入からリンクアクティブ (L0) ステートへの移行は、200 ms 以内でなければなりません。FPGA の電源投入から FPGA 内の PCI Express IP コアのHard IP でリンク・トレーニングの準備ができるまでのタイミングは、120 ms 以内でなければなりません。

関連情報PCI Express Card Electromechanical 3.0 Specification

4.1.2.1. CvP 初期化モードの場合

CvP 初期化モードの PCIe Hard IP に対する 120 ms のウェイクアップ時間要件を満たすためには、ペリフェラル・イメージを使用する必要があります。これは、ペリフェラル・イメージのコンフィグレーション時間が FPGA コンフィグレーション時間全体よりも大幅に短いためです。ペリフェラル・イメージのコンフィグレーションには、アクティブシリアル x4(高速モード)コンフィグレーション手法を使用してください。

正常なコンフィグレーションのために、POR で監視されるすべての電源供給では、動作範囲までの単調なランプアップが 10 ms のランプアップ時間内で行われなければなりません。PERST# 信号は、FPGA 電源供給が指定電圧許容値内にあり、 REFCLK が安定していることを示します。(1)エンベデッド・ハード・リセット・コントローラーは、内部ステータス信号によってペリフェラル・イメージがロードされた後にトリガーされます。このリセットでは PERST#はトリガーされません。CvP 初期化モードに対してPCIe リンクでは、FPGA コアイメージのコンフィグレーションおよび後続の PCIe アプリケーションをユーザーモードでサポートしています。

注意: Gen 2/Gen 3 対応エンドポイントについては、コア・ビットストリーム (core.rbf) のロード後、リンクのトレーニングが Gen 2/Gen 3 の予想レートになっていることを確認することを、Intel ではお勧めしています。リンクが Gen 2/Gen 3 で動作していない場合は、ソフトウェアによってエンドポイントの再トレーニングをトリガーすることができます。

(1) REFCLK は、電源供給が安定した後は安定して 80 ms でなければなりません。これは、145 ms リンク・トレーニング完了時間を達成するためです。

4. デザインの考慮事項UG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

15

Page 16: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -6: CvP 初期化モードでの PCIe タイミングシーケンス

FPGA 電源供給

PERST#

リンク・インアクティブ

ペリフェラルのプログラムとキャリブレーション

CvP 更新

FPGA がユーザーモードに入る

コアイメージののコンフィグレーション

PCIe リンクを介した

コアイメージの更新

PCIe リンクを介したCvP コアのコンフィグレーションを待機ペリフェラル・イメージのコンフィグレーション

a

b

c

d

e

g

h

パワーオン リセット

トランシーバーのキャリブレーション

リンク・トレーニング リンクアクティブ L0

FPGA ステータス

FPGA 左下 トランシーバーの ステータス

PCIe リンクステータス

j i

f

表 4. CvP 初期化モードでの電源投入シーケンスのタイミング

タイミングシーケンス

タイミング範囲(ms)

詳細

a 2-6.5 FPGA の POR 遅延時間 (AS Fast モード)

b 80 FPGA の電源投入から CvP 初期化モードでのペリフェラル・コンフィグレーション終了までの 大時間(トランシーバーのキャリブレーション前)

c 20 PERST#デアサート前の 短キャリブレーション時間

d 60 小トランシーバー・キャリブレーション・ウィンドウ

e 80 一般的なトランシーバー・キャリブレーション・ウィンドウ

f 100 ホストからの 小アクティブ PERST# 信号

g 120 FPGA の電源投入から CvP 初期化モードでのペリフェラル・コンフィグレーション終了までの 大時間(トランシーバのキャリブレーションを含む)

h 20 PCIe リンクがトレーニング状態に入る前のホストからの PERST# 信号の 大非アクティブ時間

i 100 PCIe デバイスが PERST# のデアサート後

注意: L0 に入らなければいけない 大時間。100 ms のタイミング範囲は、 PCIe Gen1/Gen2 のみに適用されます。 PCIe Gen 3 では 100 ms のタイミング要件を満たす必要はありません。

j 10 FPGA 内のすべての POR 監視電源供給がそれぞれの動作範囲に達するための 大立ち上がり時間要件

4.1.2.2. CvP 更新モード

CvP 更新モードの実行前に、デバイスではユーザーモードになっている必要があります。

注意: Gen 2/Gen 3 対応エンドポイントについて、リンクのトレーニングが Gen 2/Gen 3 の予想レートになっていることを確認することを Intel ではお勧めしています。リンクが Gen 2/Gen 3 で動作していない場合、ソフトウェアによってエンドポイントの再トレーニングをトリガーすることができます。

4.2. クローズドシステム用 CvP のデザイン

PCIe リンクの両端を制御するクローズドシステム用に CvP をデザインする際には、CvP 初期化モードのペリフェラル・コンフィグレーション時間、CvP 更新モードの FPGA のフル・コンフィグレーション時間を推定します。推定コンフィグレーション時間は、 PCIe ホストによって許容される時間内であることを確認してください。ドライバーでは、CvP ステータスレジスターの USERMODE ビットをポーリングし、FPGA がユーザーモードに入るかどうかを判定できます。

4. デザインの考慮事項UG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

16

Page 18: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

5. CvP ドライバーおよびレジスター

5.1. CvP ドライバーのサポート

Linux 用にカスタム CvP ドライバーを開発することができます。これには、Intel で提供している Linuxドライバーのサンプル・ソースコードを使用します。

注意: Intel で提供している Linux ドライバーはプロダクション・ドライバーではありません。このドライバーをデザイン方法に適応させてください。

関連情報Download the OpenSource Linux CvP Driver

5.2. CvP ドライバーのフロー

CvP ドライバーフローでは、FPGA に電源が投入され、SDM コントロール・ブロックで既に FPGA のコンフィグレーションがペリフェラル・イメージを使用して行われていることを前提としています。このことは、CvP ステータスレジスターの CVP_EN ビットによって示されます。

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 19: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -7: CvP ドライバーのフロースタート

CVP_CONFIG_READY=1?no

yes

CVP_EN= 1?no (1)

yes

no

Teardownに移動

CVP_CONFIG_ERROR=1?yes

no

ファブリック・コンフィグレーション・ファイルの終わり (.core.rbf)?

yes

転送

no

CVP_CONFIG_READY=0?no

yes

yes

Teardown

(1) ペリフェラルのロード完了を待機します。(2) エラー発生。CvP を再試行してください。(3) エラー発生。試行をあきらめてください。(4) ポーリングは最大5秒までです。5秒のタイムアウト後はシステムの電源を再投入してください。

CvP ステータスレジスター の CVP_CONFIG_READY ビットを ポーリングする

CvP プログラミング制御レジスターのCVP_CONFIG ビットに「1」を書き込む

CvP モード制御レジスターの PLD_DISABLE および CVP_MODE ビットに「1」を書き込む

CvP ステータスレジスターから CVP_EN ビットを読み出す

CvP プログラミング制御レジスターの START_XFERビットに「1」を書き込む

CvP ステータスレジスターから USER_MODE をポーリングする

USER_MODE = 1? no

CvP モード制御レジスターの CvP_Mode および PLD_DISABLE ビットに「0」を書き込む

変数を0で初期化する(例: COUNT=0)

CvP プログラミング制御レジスターの START_ XFER および CVP_CONFIG ビットに「0」を書き込む

CvP ステータスレジスターから CVP_CONFIG_READY ビットを ポーリングする

CvP ステータスレジスターの CVP_CONFIG_ERROR ビットを読み出す

CvP ステータスレジスターから PLD_CLK_IN_USE をポーリングする

no

終わり

yes

yes

デバイス・ コンフィグレーションが 失敗で終わり

noCVP_CONFIG_ERROR=0?

noデバイス障害のため CvP は続行不可

yes

(3)(2)

CVP_CONFIG_ERROR=0?

PLD_CLK_IN_USE=1?

転送に移動

失敗:CvP が有効でない

10us 用 PCIe インターフェイスに トラフィックがないことを確認する

CvP モード制御レジスターの START_XFER および CVP_CONFIG ビットに「0」を書き込む

CVP ステータスレジスター (4) のCVP_CONFIG_READY ビットを ポーリングする

CVP_CONFIG_READY= 0?

yes

no

CvP クレジットレジスターから CVP_CREDIT ビットを読み出す

CVP_CREDIT > COUNT?

yes

4KB のファブリック・コンフィグレーション・ データ (*.core.rbf ファイルから) を CvP データレジスターに書き込む

COUNT= COUNT +1

CvP ステータスレジスターのCVP_CONFIG_ERROR ビットを読み出す

yes

no CvP ステータスレジスターの CVP_CONFIG_ERROR ビットを 読み出す

CVP_CONFIG_ERROR=1?

ログ・コンフィグレーション・ エラー

yes

no

5.3. CvP 用 VSEC レジスター

Vendor Specific Extended Capability (VSEC) レジスターによって、 PCIe コンフィグレーション・スペースのバイトオフセット 0xB80〜0xBC0 が占有されます。 PCIe ホストでは、これらのレジスターを使用して FPGA コントロール・ブロックと通信します。次の表に示すのは、VSEC のレジスターマップです。後続の表で示すのは、各レジスターのフィールドと説明です。

表 5. CvP 用 VSEC レジスター

バイトオフセット レジスター名

0xB80 Vendor Specific Capability Header

0xB84 Vendor Specific Header

0xB88 Intel Marker

continued...

5. CvP ドライバーおよびレジスターUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

19

Page 20: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

バイトオフセット レジスター名

0xB8C:0xB98 予約済み。

0xB9C User Configurable Device/Board ID

0xB9E CvP Status

0xBA0 CvP Mode Control

0xBA4 CvP Data 2(2)

0xBA8 CvP Data

0xBAC CvP Programming Control

0xBB0:0xBC4 予約済み。

0xBC8 CvP Credit Register

5.3.1. Vendor Specific Capability Header レジスター

表 6. Vendor Specific Capability Header レジスター (バイトオフセット:0xB80)

ビット レジスター名 リセット値 アクセス 詳細

[15:0] PCI Express ExtendedCapability ID

0x000B RO VSEC Capability ID の PCIe の仕様定義値

[19:16] バージョン 0x1 RO VSEC バージョンの PCIe の仕様定義値

[31:20] Next Capability Offset 可変 RO 実装される次の Capability Structure がある場合、その開始アドレス

5.3.2. Vendor Specific Header レジスター

表 7. Vendor Specific Header レジスター (バイトオフセット:0xB84)

ビット レジスター名 リセット値 アクセス 詳細

[15:0] VSEC ID 0x1172 RO ユーザーによるコンフィグレーションが可能なVSEC ID

[19:16] VSEC Revision 0 RO ユーザーによるコンフィグレーションが可能なVSEC リビジョン

[31:20] VSEC Length 0x05C RO このストラクチャーの全長(バイト単位)

5.3.3. Intel Marker レジスター

表 8. Intel Marker レジスター (バイトオフセット: 0xB88)

ビット レジスター名 リセット値 アクセス 詳細

[31:0] Intel Marker 0x41721172 RO 追加のマーカー

(2) このレジスターは、現在 インテル Stratix 10 デバイスでは機能していません。

5. CvP ドライバーおよびレジスターUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

20

Page 21: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

5.3.4. User Configurable Device/Board ID レジスター

表 9. User Configurable Device/Board ID レジスター (バイトオフセット:0xB9C)

ビット レジスター名 リセット値 アクセス 詳細

[15:0] User Configurable Device/Board ID

0x00 RO ユーザーによる正しいプログラミング・ファイルの選択の手助けをします。

5.3.5. CvP Status レジスター

表 10. CvP Status レジスター (バイトオフセット:0xB9E)

ビット レジスター名 リセット値 アクセス 詳細

[15:11] — 可変 RO 予約済み。

[10]CVP_CONFIG_SUCCESS

可変 RO デバイスによって設定されるステータスビット。コアイメージのコンフィグレーションが正常に行われたことを示します。

9 — 可変 RO 予約済み。

[8] PLD_CLK_IN_USE 可変 RO クロック・スイッチ・モジュールからファブリックまで。このビットはデバッグに使用できます。

[7] CVP_CONFIG_DONE 可変 RO デバイスで CvP を介したデバイス設定が完了し、エラーがなかったことを示します。

[6] — 可変 RO 予約済み。

[5] USERMODE 可変 RO コンフィグレーション可能な FPGA ファブリックがユーザーモードにあるかを示します。

[4] CVP_EN 可変 RO デバイスで CvP モードが有効になっているかを示します。

[3]CVP_CONFIG_ERROR

可変 RO デバイスからのこの信号の値を反映します。ソフトウェアによるチェックで、コンフィグレーション中のエラーの発生を判定します。

[2]

CVP_CONFIG_READY

0x0 RO デバイスからのこの信号の値を反映します。プログラミング・アルゴリズム実行中のソフトウェアによるチェックで、デバイスでコンフィグレーションの準備が整ったことを判定します。

[1:0] — 可変 RO 予約済み。

5. CvP ドライバーおよびレジスターUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

21

Page 22: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

5.3.6. CvP Mode Control レジスター

表 11. CvP Mode Control レジスター (バイトオフセット:0xBA0)

ビット レジスター名 リセット値 アクセス 詳細

[31:3] — 0x0000 RO 予約済み。

[2] — 0x0000 RW 予約済み。(3)

[1]

PLD_DISABLE

1'b0 RW/RO PLD インターフェイスを有効/無効にします。これにより、ホストドライバーでは、USER MODE のデアサート前に PLD インターフェイスを切り替え、USERMODE のアサート後に PLD インターフェイスを元に戻すことができます。これは、USER MODE 切り替え中のグリッチや競合状態を防ぐのに役立ちます。• 1:アプリケーション層インターフェイスを無効に

します。• 0:アプリケーション層インターフェイスを有効に

します。この信号の値を変更するのは、10 us 用の HIP との間に他の TLP が存在しなかった場合のみです。10us 用 HIP の TLP は、この値が変更された後には発行されません。CVP 開始時には、CVP_MODE の設定をこのビットの設定後にしてください。CVP 終了時には、CVP_MODE のクリアをこのビットのクリア前にしてください。これにより、CVP 中に PLD スイッチングがないことが確実になります。このフィールドは、cvp_en=1 の場合は RW、cvp_en=0 の場合はRO です。

[0]

CVP_MODE

1'b0 RW PCI Express の Hard IP が CVP_MODE か通常モードかを制御します。• 1:CVP_MODE はアクティブです。アクティブな

SDM およびすべての TLP への信号は、コンフィグレーション・スペースに配線されます。 このCVP_MODE は、CVP_EN = 0 の場合は有効にすることはできません。

• 0:IP コアは通常モードにあり、TLP は FPGA ファブリックに配線されます。

5.3.7. CvP Data レジスター

表 12. CvP Data レジスター (Byte Offsets: 0xBA4 - 0xBA8)

ビット パラメーター名 リセット値 アクセス 詳細

[31:0] CVP_DATA 0x00000000 RW

コンフィグレーション・データをこのレジスターに書き込みます。データは SDM に転送され、デバイスをコンフィグレーションします。ソフトウェアでは、メモリー書き込みダブルワード内のすべてのバイトが有効になっていることを確認する必要があります。このレジスターへのアクセスには、コンフィグレーション書き込みを使用します。CvP モードのときは、このレジスターの書き込みにメモリー書き込みを使用することもできます。書き込み先は、このデバイスのメモリースペース BAR によって定義された任意のア

(3) Intel では、書き込み動作用の予約ビットを 0 にセットすることをお勧めしています。読み出し動作の場合、 PCIeIP コアでは常に 0 が出力として生成されます。

5. CvP ドライバーおよびレジスターUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

22

Page 23: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

ビット パラメーター名 リセット値 アクセス 詳細

ドレスです。メモリー書き込みの使用は、コンフィグレーション書き込みよりも高いスループットになります。

5.3.8. CvP Programming Control レジスター

表 13. CvP Programming Control レジスター (バイトオフセット:0x22C)

ビット レジスター名 リセット値 アクセス 詳細

[31:2] — 0x0000 RO 予約済み。

[1] START_XFER 1'b0 RW CvP 出力を FPGA コントロール・ブロックに設定して、転送の開始を示します。

[0]CVP_CONFIG

1'b0 RW 1 に設定すると、FPGA コントロール・ブロックではCvP を介して転送が開始されます。

5.3.9. CvP Credit レジスター

Credit レジスターでは、コンフィグレーション・システム内に使用可能なバッファースペースがない場合、CvP データの送信を遅らせてバックプレッシャーを処理します。クレジットメカニズムでは、コンフィグレーション・システムからのバックプレッシャーを処理します。合計クレジットレジスターは、追加の 4kバッファーが使用可能になるたびに増分されます。

表 14. CvP Credits レジスター (バイトオフセット:0xBC8)

ビット リセット値 アクセス 詳細

[31:16] 0x00 RO 予約済み。

[15:8] 0x00 RO 付与された 4k クレジットの合計数のうちの 下位 8 ビット。

[7:0] 0x00 RO 予約済み。

5. CvP ドライバーおよびレジスターUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

23

Page 24: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順について

6.1. CvP 初期化モードの実装

CvP 初期化モードでは、ビットストリームをペリフェラル・イメージとコアイメージに分割します。ペリフェラル・イメージは、PCB 上のローカル・フラッシュ・デバイスに格納されます。コアイメージはホストメモリーに格納されます。コアイメージを FPGA にダウンロードするには、PCI Express リンクを使用してください。

初期化モードを インテル Quartus Prime プロ・エディション開発ソフトウェアで指定するには、CvP設定で Initialization and Update を選択してください。また、Avalon-ST Intel Stratix 10Hard IP for PCI Express をインスタンス化してください。(4)

(4) CvP では Avalon -MM もサポートしています。

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 25: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -8: CvP 初期化のための実装フロー例

ペリフェラルのプログラミング

JTAG を介し

periph.jic を使用した

リンクとデータレートの

確認

デザインの完成とコンパイル

.sof ファイルを

core.rbf および periph.jicに変換

Core イメージの

PCIe Link を介し core.rbf を使用した

プログラミング

PCIe Hard IP の

CvP パラメータ設定Device and Pin オプションでの

インスタンス化と

CvP 初期化デモンストレーション( インテル Stratix 10 FPGA 開発キットに基づく)には、次の手順が含まれています。

• PCI Express 用 Avalon -ST インテル Stratix 10 Hard IP の合成 HDL ファイルの作成 (26ページ)

• Device and Pin Options での CvP パラメーターの設定 (27 ページ)

• デザインのコンパイル (28 ページ)

• SOF ファイルの変換 (28 ページ)

• ハードウェアの立ち上げ (30 ページ)

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

25

Page 26: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

関連情報Intel Stratix 10 GX FPGA Development Kit User Guide

6.1.1. PCI Express 用 Avalon -ST インテル Stratix 10 Hard IP の合成 HDL ファイルの作成

次の手順に従って CvP を有効にし、合成 HDL ファイルを生成します。

1. インテル Quartus Prime プロ・エディション開発ソフトウェアを開きます。

2. Tools メニューで Platform Designer をクリックします。Open System ウィンドウが表示されます。

3. System で+をクリックして File Name を指定し、新しいプラットフォーム・デザイナー・システムを作成します。Create をクリックします。

4. System Contents タブで、デフォルトで表示されている clock_in および reset_in コンポーネントを削除します。

5. IP Catalog で Avalon -ST インテル Stratix 10 Hard IP for PCI Express を探してダブルクリックします。新しいウィンドウが表示されます。

6. IP Settings タブで、デザイン・バリエーションのパラメーターおよびオプションを指定します。

7. Example Designs タブで Simulation オプションを選択してテストベンチを生成し、Synthesis オプションを選択して、ハードウェアデザインの例を生成します。

8. Generated file format には Verilog のみが使用できます。

9. Target Development Kit には希望のボードを選択してください。

10. Generate Example Design ボタンをクリックします。Select Example DesignDirectory ダイアログボックスが表示されます。OK をクリックします。ソフトウェアによって インテル Quartus PrimePCI Express リファレンス・デザインのプロジェクト・ファイルが生成されます。生成が完了したら Close をクリックします。デザイン例pcie_s10_hip_ast_0_example_design がプロジェクト・ディレクトリーに作成されます。

11. Finish をクリックします。現在のプロジェクトを終了して、生成された PCI Express デザイン例(pcie_example_design.qpf) を開きます。

12. CvP デザインを完成させるために、希望のトップレベル・デザインとその他の必要なモジュールを追加します。ピン・アサインメントについては、ユーザーによって前もって指定されたターゲットの開発キットに基づいて、すでに正しく割り当てられています。

もしくは、 インテル Stratix 10CvP 初期化リファレンス・デザイン全部を下記のリンクからダウンロードすることもできます。

注意: CvP 更新のリファレンス・デザインは、 新バージョンの インテル Quartus Prime 開発ソフトウェアでは使用できません。

関連情報• Intel Stratix 10 Avalon-MM Interface for PCI Express Solutions User Guide

• Intel Stratix 10 Avalon-ST and Single Root I/O Virtualization (SR-IOV) Interface forPCI Express Solutions User Guide

• Intel Stratix 10 CvP Initialization Reference Design for 17.1 Quartus Version

• Download the OpenSource Linux CvP Driver

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

26

Page 27: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

6.1.2. Device and Pin Options での CvP パラメーターの設定

次の手順に従って CvP パラメーターを指定します。

1. インテル Quartus Prime Assignment メニューで Device を選択し、Device and PinOptions をクリックします。

2. Category で Configuration を選択し、次のオプションを有効にします。

a. Configuration でアクティブシリアル x4(Configuration Device が使用可能)を選択します。

b. Use configuration device で EPCQL1024 を選択します。

c. Configuration pin で Configuration Pin Options をクリックし、その後、USECONF_DONE output および USE CVP_CONFDONE output をオンにします。OKをクリックします。

図 -9: Configuration タブの CvP パラメーター

3. Category で CvP Settings を選択して CvP 設定を指定します。 Configuration viaProtocol で Initialization and update オプションを選択します。OK をクリックします。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

27

Page 28: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -10: CvP Settings タブの CvP パラメーター

4. OK をクリックします。

6.1.3. デザインのコンパイル

デザインをコンパイルするには、Processing メニューの Start Compilation をクリックし、 .sofファイルを作成します。

6.1.4. SOF ファイルの変換

次の手順に従って .sof ファイルを変換し、ペリフェラル・ロジックとコアロジック用に別々のイメージにします。

1. .sof ファイルが生成されたら、File メニューの Convert Programming Files を選択します。新しいウィンドウが表示されます。

2. Output programming file セクションで、次のパラメーターを指定します。

表 15. パラメーター: Output Programming File タブ

パラメーター 値

Programming file type JTAG Indirect Configuration File (.jic)

Configuration device EPCQL1024continued...

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

28

Page 29: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

パラメーター 値

Mode Active Serial x4

File name cvp_init.jic

Create Memory Map File (Generate output_file.map) このオプションをオンにします。

Create CvP files (Generate cvp_init.periph.jic andcvp_init.core.rbf)

このオプションをオンにします。このオプションは、SOF Data ファイルを Input files to convert で指定した場合にのみ使用できます。

注意:

Create CvP files オプションは必ずオンにしてください。このオプションを選択しないと、 インテル Quartus Prime 開発ソフトウェアでは、ペリフェラル・イメージとコアイメージに別々のファイルが作成されません。

3. Input files to convert で 、次のパラメーターを指定します。

表 16. パラメーター: Input Files to Convert タブ

パラメーター Value

Flash Loader 初に Flash Loader をクリックします。Add Device をクリックし、Device family で Stratix 10 を選択し、 Device name で1SG280LU3F50S1 を選択します。OK をクリックします。

SOF Data 初に SOF Data をクリックします。 Add File をクリックし、*.sofを選択します。

図 -11: Convert Programming File GUI での上記の指定オプションの図解

4. Generate をクリックして *.periph.jic および *.core.rbf ファイルを作成します。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

29

Page 30: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

6.1.5. ハードウェアの立ち上げ

ハードウェアのデザインをテストする前に、DUT システムに CvP ドライバーのインストールが必要です。RW ユーティリティーまたはその他のシステム検証ツールをインストールして、エンドポイントのリンクステータスを監視し、リンク上のトラフィックを観察することもできます。これらのユーティリティーは、多数のウェブサイトから無料ダウンロードできます。

注意: Linux 用に独自のカスタム CvP ドライバーを開発することができます。これには、インテルが提供するLinux ドライバーのソースコードのサンプルを使用します。

テスト設定には、次のコンポーネントが含まれています。

1. インテル Stratix 10 FPGA 開発キット

2. インテル FPGA ダウンロード・ケーブル

3. FPGA 開発キットにプラグインする PCI Express スロットを備える DUT PC

4. インテル Quartus Prime 開発ソフトウェアを実行し、ペリフェラル・イメージ、 .sof または .pof ファイルをプログラムする PC

関連情報Intel Stratix 10 GX FPGA Development Kit User Guide

6.1.5.1. オープンソース CvP ドライバーの Linux システムへのインストール

1. CvP Driver からオープンソースの Linux CvP ドライバーをダウンロードします。

2. ドライバー・ディレクトリーに移動します。

3. ドライブを解凍するために次のコマンドを入力します。

tar -zxvf <driver>.gz

4. インストールを実行するために次のコマンドを入力します。

sudo make sudo make install

5. インストールが正常に完了すると、 altera_cvp ファイルが /dev/altera_cvp ディレクトリーに生成されます。

6.1.5.2. インテル Stratix 10 FPGA 開発キットの MSEL/DIP スイッチの変更

インテル Stratix 10 FPGA 開発キットの前面に SW1 のラベルのある MSEL/DIP スイッチ CvP 操作。アクティブシリアル x4(Fast モード)を選択します。

表 17. インテル Stratix 10 デバイスの各コンフィグレーション手法での MSEL ピンの設定

コンフィグレーション手法 MSEL[2..0]

AS(CvP 用 Fast モード) (5) 001

(5) AS 高速モードをサポートするために、 インテル Stratix 10 デバイスの VCCIO_SDM の完全なランプアップを推奨動作条件の 10ms 以内で行ってください。デバイスでの POR 終了から SDM 起動までの遅延は、高速モードでは通常モードに比べて短くなるので、AS 高速モードは CvP に対して推奨されるコンフィグレーション方式です。デバイスでは、PCIe の電源投入から起動までの所要時間要件 100ms に準拠可能です。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

30

Page 31: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

関連情報Intel Stratix 10 Device Family Pin Connection Guidelines

6.1.5.3. CvP イメージのプログラミング

ペリフェラル・イメージ (.periph.jic) を AS コンフィグレーション・デバイスにプログラムしてから、コアイメージ (.core.rbf) のダウンロードを PCIe リンクを使用して行ってください。アクティブシリアル x4(Fast モード)を使用して、 .periph.jic をロードします。ロード先は、CvP 初期化が有効になっているユーザー選択の インテル Stratix 10 デバイスです。

ペリフェラル・イメージのロード後、 インテル Stratix 10 がトリガーされ、AS からリコンフィグレーションしてペリフェラル・イメージをロードします。リンクは、予想されるデータレートとリンク幅に達するはずです。PCIe リンクステータスを確認するために RW Utilities を使用します。次の手順に従って CvP 機能のプログラムおよびテストを行います。

1. インテル Stratix 10 FPGA 開発キットを DUT PC の PCI Express スロットに接続し、電源を入れます。開発キットに含まれている ATX 電源を使用することをお勧めします。

2. インテル Quartus Prime Tools メニューから Programmer を選択します。

3. Auto Detect をクリックして、 インテル FPGA ダウンロード・ケーブルによって インテルStratix 10 FPGA が認識されていることを確認します。

4. 次の手順に従ってペリフェラル・イメージをプログラムします。

a. Stratix 10 デバイスを選択してから、File 列の None を右クリックして Change File を選択します。

b. .periph.jic ファイルに移動し、Open をクリックします。

c. Program/Configure 列でそれぞれのデバイスを選択します。例えば、1SG280LU3S1と EPCQL1024 です。

d. Start をクリックしてペリフェラル・イメージを EPCQL1024 フラッシュにプログラムします。

図 -12: ペリフェラル・イメージのプログラミング用指定オプションの図解

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

31

Page 32: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

5. .periic.jic のプログラム後、FPGA の電源を入れ直して、新しいペリフェラル・イメージをオンボードフラッシュから FPGA にロードできるようにします。DUT PC による新しいイメージリンクの再列挙を強制するには、DUT PC および インテル Stratix 10 FPGA 開発キットの電源を入れ直します。

6. RW ユーティリティーまたは他のシステム・ソフトウェア・ドライバーを使用してリンクステータスを確認します。予想リンク速度と幅も確認できます。

7. 次の手順に従ってコアイメージをプログラムします。

a. .core.rbf ファイルを作業ディレクトリーにコピーします。

b. Linux でコンソールを開きます。ディレクトリーを上記と同じ、ファイルのコピー先に変更します。

c. コアイメージをプログラムするために、次のコマンドを入力します。 cp*.core.rbf /dev/altera_cvp

8. コアイメージが インテル Stratix 10 FPGA 開発キットで実行されていることが確認できます。もしくは、 dmesg を使用してカーネルメッセージを印刷し、CvP が正常に完了したことを確認します。

6.2. CvP 更新モードの実装

CvP 更新モードは、リコンフィグレーション方式の一つで、デバイスがユーザーモードに入った後に、更新ビットストリームをターゲットデバイスへ送信します。

このモードを インテル Quartus Prime プロ・エディション開発ソフトウェアで指定するために、CvP 設定の Initialization and Update を選択します。次の図では CvP 更新モードの概要を示します。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

32

Page 33: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -13: CvP 更新の実装フローの例

PCIe Hard IP の

CvP パラメータ設定Device and Pin オプションでの

インスタンス化と

ベースリビジョンの完成とコンパイル

更新リビジョンの完成とコンパイル

.sof ファイルを

core.rbf および periph.jicに変換

更新リビジョンからの

FPGA のプログラミング

JTAG を介し

periph.jic を使用したベースリビジョンの

リンクとデータレートの

確認

PCIe Link を介した

core.rbf のプログラミング 更新リビジョンの

CvP 更新モードのデモ・ウォークスルーには次の手順が含まれます。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

33

Page 34: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

• PCIe Hard IP のインスタンス化 (34 ページ)

• CvP パラメーターの設定 (34 ページ)

• ベースリビジョンの設定 (34 ページ)

• 更新リビジョンの設定とコンパイル (37 ページ)

• 更新版 SOF ファイルの変換 (38 ページ)

• Base Revision SOF ファイルを使用した FPGA のプログラミング (40 ページ)

6.2.1. PCIe Hard IP のインスタンス化

PCI Express 用 Avalon -ST インテル Stratix 10 Hard IP の合成 HDL ファイルの作成 (26 ページ) の項にある手順に従い、 PCIe Hard IP をインスタンス化し、CvP を有効にして合成 HDL ファイルを生成します。

6.2.2. CvP パラメーターの設定

CvP パラメーターを Device and Pin オプションで指定するには、Device and Pin Options でのCvP パラメーターの設定 (27 ページ) の項の手順に従います。

6.2.3. ベースリビジョンの設定

ベースリビジョンを設定するには、ペリフェラル再利用コア・パーティションを作成し、ロジックロック領域を定義してからベースリビジョンをコンパイルする必要があります。コンパイル後、ルート・パーティションをエクスポートしてください。

関連情報Reusing Root Partitions

6.2.3.1. 予約済みコア・パーティションの作成

次の手順は、予約済みのコア・パーティションをベースリビジョンから作成するためのものです。

1. デザイン階層のエラボレートには、Processing > Start > Analysis&Synthesis をクリックします。

2. Project Navigator でインスタンスを右クリックし、Design Partition > Set as DesignPartition をクリックします。デザイン・パーティションのアイコンが、割り当てた各インスタンスの横に表示されます。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

34

Page 35: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -14: Project Navigator でのデザイン・パーティションの作成

この設定は、 .qsf 内の次のアサインメントに対応しています。

set_instance_assignment -name PARTITION <name> \ -to <partition hierarchical path>

3. パーティションを定義するときは、Periphery Reuse Core をパーティションの Type として選択します。他のすべてのパーティション・オプションがデフォルト値に設定されていることを確認します。

この設定は、 .qsf 内の次のアサインメントに対応しています。

set_instance_assignment -name RESERVED CORE ON -to \ <partition hierarchical path>

4. 終スタティック領域をこのベース・リビジョン・コンパイルからエクスポートし、後続の CvP 更新リビジョンコンパイルで使用するには、Post Final Export File セルで、root_partition のエントリーをダブルクリックし、root_partition.qdb と入力します。

図 -15: Design Partitions ウィンドウ

この設定は、 .qsf 内の次のアサインメントに対応しています。

set_instance_assignment -name EXPORT_PARTITION_SNAPSHOT_FINAL \root_partition -to | -entity top

6.2.3.2. ロジックロック領域の定義

コアリソースの予約を予約済みコア・パーティションの更新リビジョンで行うには、固定サイズと場所、コアのみ、予約済み Logic Lock 領域を定義してください。更新されたリビジョンではこの領域をコア開発に使用しており、この領域に含めることができるのはコアロジックのみです。予約済みの配置領域が十分に大きく、更新されたリビジョンのすべてのコアロジックを含まれていることを確認してください。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

35

Page 36: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

次の手順を実行して、コアのベースリビジョンの Logic Lock 領域を定義します。

1. Project Navigator でデザイン・インスタンスを右クリックし、 Logic Lock Region >Create New Logic Lock Region をクリックします。領域が Logic Lock Regions ウィンドウに表示されます。また、Chip Planner で領域を確認することもできます。 (Locate Node >Locate in Chip Planner)

図 -16: Project Navigator での Logic Lock Region の作成

2. [Logic Lock Regions ウィンドウの Origin 列で、Width、Height、および配置領域の座標を指定します。

3. Reserved および Core-Only オプションを有効にします。

4. Size/State で Fixed/Locked を選択します。

5. Routing Region セルをダブルクリックします。 Logic Lock Routing Region Settingsダイアログボックスが表示されます。

Specify Height and Width

Specify the Routing Region Type and Expansion LengthSpecify Core-Only as On

Specify Origin CoordinatesSpecify Reserved as On

6. Fixed with expansion で Expansion Length を 1 として Routing Type に指定します。

7. OK をクリックします。

8. File > Save Project をクリックします。

6.2.3.3. ルート・パーティションのコンパイルとエクスポート

ベースリビジョンのコンパイルとルート・パーティションのエクスポート:

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

36

Page 37: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

1. ベースリビジョンをコンパイルするには、 Processing > Start Compilation をクリックします。

2. ベースリビジョンでは、エクスポートされた .qdb ファイルと、オプションで .sdc ファイルを提供し、新しいリビジョンでコアを再利用します。

6.2.4. 更新リビジョンの設定とコンパイル

この項では、ベースデザインの更新リビジョンとして機能する新しいリビジョンを作成します。新しいリビジョンでは、ベースリビジョンからエクスポートされたルート・パーティションを再利用します。ただし、新しいコアロジックを使用します。

次の手順を実行して更新リビジョンの作成およびコンパイルを行います。

1. 新しいリビジョンを作成するには、Project > Revisions をクリックします。

2. 新しい Revision ウィンドウが表示されます。新しいリビジョンを作成するには、<<newrevision>>をダブルクリックします。

3. リビジョン名を Revision name フィールドで指定します。

4. Revision Type に same as Base revision を選択します。

5. This project uses a Partition Database (.qdb) file for the root partition を有効にします。この設定は Design Partitions ウィンドウにも表示されます。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

37

Page 38: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -17: Creating Revisions

6. デザイン・パーティション・ウィンドウでエンティティー再バインド割り当てを使用し、予約されたコア・パーティションに関連付けられているロジックを変更します。

たとえば、まず red_led を予約済みコア・パーティション内のロジックとして使用します。ここで、red_led ロジックから green_led への変更をエンティティーの再バインドを介して行います。これにより、 red_led インスタンスが green_led インスタンスに置き換えられます。

インテル Quartus Prime プロジェクトに、 インテル Quartus Prime の更新された ReservedCore パーティション・ロジックに関連するソースファイルが含まれていることを確認してください。

7. コンパイルを実行するには、Processing > Start Compilation をクリックします。

6.2.5. 更新版 SOF ファイルの変換

次の手順に従って、更新版 .sof ファイルを CvP 更新モード用のペリフェラル・イメージとコアイメージに変換します。

1. File メニューで Convert Programming Files を選択します。

2. Output programming file セクションで次のパラメーターを指定します。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

38

Page 39: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

表 18. パラメーター: Output Programming File タブ

パラメーター 値

Programming file type JTAG Indirect Configuration File (.jic)

Configuration device EPCQL1024

Mode Active Serial x4

File name cvp_init.jic

Create Memory Map File (Generate output_file.map) このオプションをオンにしてください。

Create CvP files (Generate cvp_init.periph.jic andcvp_init.core.rbf)

このオプションをオンにしてください。このオプションは、SOF Data ファイルを Input files to convert で指定した場合にのみ使用できます。

注意:

Create CvP files オプションは必ずオンにしてください。このオプションを選択しない場合、インテル Quartus Prime 開発ソフトウェアでは、ペリフェラル・イメージとコアイメージ用に別々のファイルを作成しません。

3. Input files to convert で、次のパラメーターを指定します。

表 19. パラメーター: Input Files to Convert タブ

パラメーター 値

Flash Loader 初に Flash Loader をクリックします。Add Device をクリックし、Device family で Stratix 10 を選択し、Device name で1SG280LU3F50I1VGS1 を選択します。OK をクリックします。

SOF Data 初に SOF Data をクリックします。Add File をクリックしてから*.sof を選択します。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

39

Page 40: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

図 -18: Convert Programming File GUI での上記の指定オプションの図解

4. Generate をクリックして *.periph.jic および *.core.rbf ファイルを作成します。

6.2.6. Base Revision SOF ファイルを使用した FPGA のプログラミング

CvP 更新モードの場合、FPGA のプログラミングにはベースリビジョンの .sof ファイルを使用してください。プログラミングが完了すると、FPGA はユーザーモードに入ります。

始める前に:

• インテル FPGA ダウンロード・ケーブル II を PC の USB ポートと インテル Stratix 10 FPGA開発キットの USB ポートの間に接続します。

• altera_cvp ドライバーを DUT PC システムにインストールしてください。オープンソースのLinux CvP ドライバーを CvP Driver からダウンロードします。

注意: Intel 提供の Linux ドライバーはプロダクション・ドライバーではありません。

• インテル Stratix 10 FPGA 開発キットの MSEL スイッチを CvP 更新操作のための JTAG モードに設定します。

次の手順を実行して CvP 更新機能のプログラミングおよびテストを行います。

1. インテル Stratix 10 FPGA 開発キットを DUT PC の PCI Express スロットに接続し、電源を入れます。開発キットに含まれている ATX 電源を使用することをお勧めします。

2. インテル Quartus Prime プロ・エディション開発ソフトウェアを開き、Tools > Programmerをクリックします 。

3. Auto Detect をクリックし、 インテル FPGA ダウンロード・ケーブル II によって インテルStratix 10 FPGA が認識されていることを確認します。

4. 次の手順に従って、ベースリビジョンの .sof ファイルをプログラムします。

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド フィードバック

40

Page 41: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

a. Stratix 10 デバイスを選択してから、File 列の None を右クリックして Change File を選択します。

b. ベース・リビジョンから生成された *.sof ファイルに移動して、Open をクリックします。

c. Program/Configure 列でデバイス、例えば 1SG280LU3S1 を選択します。

d. Start をクリックします。デバイスの設定が完了すると、プログレスバーは 100%に達します。デバイスはフル・コンフィグレーションされ、動作中になります。

e. .sof ファイルのプログラム後、ソフトリセットを PC 上で実行してください。

f. PC でソフトリブートが完了したら、次のコマンドを端末ウィンドウに入力し、PCIe リンクが起動されて実行中であることを確認します。 lspci -vvvd1172

g. この時点で、FPGA は DUT PC への機能的な PCIe リンクでユーザーモードに入り、altera_cvp ドライバーを使用して CvP 更新を実行する準備が整います。

h. 次の手順に従って core.rbf をプログラムします。

i. 端末ウィンドウに lspci -vvvd1172 と入力して、アクティブな PCIe リンクがあることを確認します。

j. 更新されたリビジョンから生成された core.rbf をプログラムするには、次のコマンドを入力します。 cp <new core.rbf file> /dev/altera_cvp

6. インテル Stratix 10 の初期化モードおよび更新モードのデザイン手順についてUG-20045 | 2018.11.29

フィードバック インテル® Stratix® 10 CvP (プロトコル経由コンフィグレーション) 実装 ユーザーガイド

41

Page 42: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

7. インテル Stratix 10 プロトコル経由コンフィグレーション (CvP) 実装 ユーザーガイド・アーカイブ

IP コアのバージョンが記載されていない場合は、以前の IP コアバージョン向けのユーザーガイドが適用されます。

Quartus バージョン User Guide

18.0 Intel Stratix 10 Configuration via Protocol (CvP) Implementation User Guide

17.1 Intel Stratix 10 Configuration via Protocol (CvP) Implementation User Guide

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済

Page 43: インテル Stratix プロトコル経 由コンフィグレーション 実装 ...インテル® Stratix® 10 CvP (プロトコル経 由コンフィグレーション) 実装 ユーザーガイド

8. インテル Stratix 10 プロトコル経由コンフィグレーション (CvP) 実装 ユーザーガイドの改訂履歴

ドキュメント・バージョン インテル QuartusPrime バージョン

変更内容

2018.11.29 18.1 次の図を修正しました。• 図:シングル・エンドポイント・トポロジー• 図:複数のエンドポイント・トポロジー

2018.09.24 18.1 • CvP 更新モードは、 インテル Quartus Prime プロ・エディション 開発ソフトウェアの現在のバージョンでサポートされています。

• 新しい項 Implementation of CvP Update Mode を追加しました。• 図を変更しました。

— 図:CvP コアイメージ更新のためのペリフェラル・イメージおよびコアイメージのストレージ配置

— 図:シングル・エンドポイント・トポロジー— 図:複数のエンドポイント・トポロジー

• 更新しました。図: CvP ドライバーのフローの項の CvP ドライバーのフロー• CVP_DATA2 レジスターは インテル Stratix 10 デバイスでは現在機能していませ

ん。• 新しい項を追加しました。

— CvP の制限と制約— CvP エラーの回復— Intel Stratix 10 プロトコル経由コンフィグレーション (CvP) 実装 ユーザーガ

イド・アーカイブ

2018.07.17 18.0 • CvP モードの項に注記を追加して、 CvP 更新モードの インテル Quartus Prime プロ・エディション開発ソフトウェアの現在のバージョンでのサポートを明確にしました。

• 変更しました。図:CvP 初期化モードでの PCIe タイミングシーケンスの図表

2018.06.18 18.0 • コンフィグレーション・イメージの項のペリフェラル・イメージとコアイメージの定義を修正しました。

• 追加しました。図:CvP 初期化モードでの PCIe タイミングシーケンスの図表および表:CvP 初期化モードでの電源投入シーケンスのタイミング CvP 初期化の情報

• 変更しました。CvP トポロジーの章の図:シングル・エンドポイント・トポロジーおよび図:複数のエンドポイント・トポロジー

• 注記を追加して Intel 提供の Linux ドライバーのサポートを明確にしました。• の図: CvP ドライバフローを更新しました。• Registers for CvP 用 VSEC レジスターの項の CvP の VSEC レジスターを修正し

ました。• CvP 初期化モードの実装の項のマイナーアップデート。

日付 日付 変更内容

2017 年 12 月 2017.12.18 初版

UG-20045 | 2018.11.29

フィードバック

Intel Corporation.無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Altera、ARRIA、CYCLONE、ENPIRION、MAX、NIOS、QUARTUS および STRATIX の名称およびロゴは、アメリカ合衆国および/ またはその他の国における Intel Corporationの商標です。インテルは FPGA 製品および半導体製品の性能がインテルの標準保証に準拠することを保証しますが、インテル製品およびサービスは、予告なく変更される場合があります。インテルが書面にて明示的に同意する場合を除き、インテルはここに記載されたアプリケーション、または、いかなる情報、製品、またはサービスの使用によって生じるいっさいの責任を負いません。インテル製品の顧客は、製品またはサービスを購入する前、および、公開済みの情報を信頼する前には、デバイスの仕様を 新のバージョンにしておくことをお勧めします。*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。

ISO9001:2015登録済