Article header library soc article header  5

インテルの SoC FPGA

インテル® SoC FPGA は、Arm® Cortex® プロセッサによるマイクロ・プロセッサ・ユニット(MPU)を搭載したハード・プロセッサ・システム(HPS)で、豊富なペリフェラル群、マルチポート・メモリ・コントローラ、および FPGA ファブリックで構成されるデバイスです。

このページでは、SoC FPGA を使用するユーザ向けに、最適な情報を紹介します。

1. SoC FPGA とは?
2. SoC FPGA の開発に必要なツール
3. 公開されている記事/資料およびサンプル
4. SoC EDS に付属されているサンプル
5. SoC FPGA のパートナ・リンク

1. SoC FPGA とは?

簡単に言うと、FPGA がペリフェラルの 1 つとしてメモリ・マップされた Arm® のプロセッサです。SoC FPGA は、Arm® プロセッサ、ペリフェラル、およびメモリ・インタフェースで構成される HPS ファブリックと、FPGA ファブリックを 1 つのチップに統合した製品です。SoC FPGA により、素早い商品化、低消費電力、低コスト、設計リスクの低減、および基板の小型化を実現することができます。

Article header library 129765 pic01  2

図1 SoC FPGA のブロック図(Cyclone® V)

2. SoC FPGA の開発に必要なツール

SoC FPGA の開発フローとしては、下図のように「FPGA ハードウェア開発フロー」と「ソフトウェア開発フロー」に分けられます。

FPGA ハードウェア開発フロー

開発環境であるインテル® Quartus® Prime 開発ソフトウェアやシステム構成ツールであるインテル® Platform Designer(旧 Qsys)システム統合ツール、ModelSim® シミュレータ、Signal Tap ロジック・アナライザなどの FPGA 開発フローとデザイン・ツールを利用することができます。

ソフトウェア開発フロー

ソフトウェア開発環境であるインテル® SoC Embedded Design Suite(SoC EDS)や Arm® 純正およびパートナ、または オープン・ソースなどが提供されます。

ハードウェアからソフトウェアへの情報のハンドオフについては、SoC EDS に含まれるハードウェア-ソフトウェア・ハンドオフ・ユーティリティ を使用します。このユーティリティは、Quartus® Prime および Platform Designer が生成する出力ファイルからソフトウェア・デザイン・フロー用のハンドオフ・ファイルを生成します。これにより FPGA デザイン・チームとソフトウェア・デザイン・チームがそれぞれのデザイン・フローに従って、別々に作業を進めることが可能とになり、生産性が向上します。

Article header library 129765 pic02  4

図2 SoC FPGA の開発ツール

3. 公開されている記事/資料およびサンプル

マクニカオンラインサービス

マクニカオンラインサービスやマクニカ アルティマ カンパニーのサイトでも、SoC FPGA 向けの各種デザイン・サンプルが公開されています。マクニカオンラインサービスの技術情報ライブラリのタグから、SoC などのキーワードで検索すると、SoC FPGA 向けの各種技術情報やデザイン・サンプルを探すことができます。

【表3-1】 マクニカ・オンライン・サービス 技術情報ライブラリ で公開されている SoC FPGA 記事/資料およびサンプル
区  分 対  象 名  称
記事 ALL インテルの SoC FPGA
記事/資料 初級者 インテル® FPGA ツールのダウンロード方法
記事/資料 初級者 インテル® SoC FPGA エンベデッド開発スイートのインストール方法
記事/資料 初級者 Arm® DS-5™ のライセンス設定方法
記事/資料 ALL VirtualBox と CentOS 6 による仮想マシン環境の構築
記事/資料 初級者 SoC はじめてガイド - SoC 簡易チュートリアル(Atlas-SoC / DE10-Nano ボード版)
記事/資料 初級者 SoC はじめてガイド - Preloader Generator の使用方法
記事/資料 初級者 SoC はじめてガイド - DS-5 によるベアメタル・アプリケーション・デバッグ
記事/資料 初級者 SoC はじめてガイド - HPS-FPGA 間のアクセス方法
記事/資料 ALL Cyclone V SoC:HPSレジスタ仕様の掲載場所一覧シート[インテル]
資料/サンプル 中級者 SoC FPGA ベアメタル All-in-One アプリケーション・サンプル
資料/サンプル 中級者 SoC FPGA の QSPI ベアメタルアプリ・ブート(Arria® 10 SoC 編)
資料/サンプル 中級者 SoC FPGA の QSPI ベアメタルアプリ・ブート(Cyclone® V SoC / Arria® V SoC 編)
記事/サンプル 中級者 DS-5™ 活用テクニック~実行中のターゲットに接続
記事 中級者 DS-5™ 活用テクニック~デバッガ・コマンドの使い方
記事 中級者 DS-5™ 活用テクニック ~レジスタ・ビュー[1/3]基本設定
記事/サンプル 上級者 DS-5™ 活用テクニック ~レジスタ・ビュー[2/3]レジスタ定義の自作
記事 上級者 DS-5™ 活用テクニック ~レジスタ・ビュー[3/3]FPGA 側のレジスタ表示
記事 中級者 DS-5™ 活用テクニック ~トレース機能の使い方
記事/資料 中級者 簡易デバックに最適!DS-5 で U-Boot を起動する方法
記事/資料 中級者 HPS Flash Programmer より高速!U-Boot で QSPI に書き込む方法
サンプル 中級者 インテル® SoC FPGA 向け Linux ビルド方法
サンプル 初級者 独習インテル® FPGA OpenCL™ 基礎演習 (Altas-SoC ボード編)
サンプル 初級者 独習インテル® FPGA OpenCL™ 基礎演習 (Sodia ボード編)
記事/資料 中級者 OpenCL™ を使った SoC FPGA のアクセラレーション - Sodia の活用例 -
記事/資料 中級者 SoC FPGA で Linux を動かし LCD に表示させる - Sodia の活用例 -
記事/資料 中級者 ビデオ変換と OpenCL を使用したデモンストレーション - Sodia の活用例 -
記事/資料 中級者 Cyclone V ST SoC プラットフォーム「Sodia」でカメラ映像と動画を 1024x768 (XGA) 画面に合成出力
記事/資料 上級者 SoC FPGA Linux のイーサネット・パフォーマンスをチューニング
記事 ALL Linux / Android 高速起動ソリューション Ubiquitous QuickBoot のご紹介(Mpression Sodia ボード向け)
記事 ALL Borax SOM - Cyclone® V SoC搭載システムオンモジュール:マニュアル 他

アルティマ技術サポート

マクニカ アルティマ カンパニーによるアルティマ技術サポートの技術コンテンツ・ページでも、SoC FPGA 向けの各種技術情報を探すことができます。例えば、以下のような記事/資料およびサンプルがあります。

アルティマ技術データベース

マクニカ アルティマ カンパニーのアルティマ技術データベースでも、SoC FPGA 向けの各種技術情報を探すことができます。例えば、以下のような記事/資料およびサンプルがあります。
【表3-3】 アルティマ技術データベースで公開されている SoC FPGA 記事/資料およびサンプル
区  分 対  象 名  称
記事/資料 初級者 SoC FPGA Hard Processor System のアドレス指定方法
サンプル 初級者 HWLib を利用するベアメタルアプリケーションのサンプル集
記事/資料 初級者 SoC Linux 道場 【其ノ壱】 ビルド済み SD カード・イメージを使用した Helio ボードでの Linux ブートの確認
記事/資料 中級者 SoC Linux 道場 【其ノ弐】 Linux マシンの準備
記事/資料 中級者 SoC Linux 道場 【其ノ参】 クロスコンパイラのインストールとコンパイル、GDB デバッグ
記事/資料 中級者 SoC Linux 道場 【其ノ四】 GNU アプリケーションのコンパイル
記事/資料 中級者 SoC Linux 道場 【其ノ五】 Linux カーネルの入手とコンパイル、カスタムドライバの作成とコンパイル(その1)
記事/資料 中級者 SoC Linux 道場 【其ノ六】 カスタムドライバの作成とコンパイル(その2)
記事/資料 上級者 SoC Linux 道場 【其ノ七】 ユーザ回路の追加と動作確認
記事/資料 上級者 SoC Linux 道場 【其ノ八】 ネットワークアプリでの遠隔 PWM 制御、モーター制御、起動スクリプトの作成方法
記事/資料 中級者 Helio ボードで Arm® Streamline を使う方法
記事/資料 中級者 Hard Processor System 側 SDRAM の ModelSimシミュレーション方法

SoC FPGA のページ(インテルのサイト)

デザイン例 ページ から SoC デザイン例 をクリックして進むと、SoC FPGA 向けの各種デザイン・サンプルが公開されています。
【表3-4】 SoC FPGA の SoC デザイン例 ページで公開されているサンプル
名  称 概  要 対応ボード
GPIO HWLIB HPS LED を駆動する出力ポートとして GPIO を設定し、HPS プッシュボタンの入力ポートとして GPIO を設定する General-Purpose Input/Output(GPIO)API の使用法を示しています。 Arria® 10 SoC 開発キット
Arria® V SoC開発キット
Cyclone® V SoC開発キット
Unhosted HWLIB セミホスティングの代わりに printf 出力に UART を使用する方法を示しています。また、SD カードからベアメタル・プログラムをブートする方法を示します。 Arria® V SoC 開発キット
Cyclone® V SoC開発キット
HPS-to-FPGA Bridges FPGA ファブリックに接続されたハード・プロセッサー・システム (HPS) のメモリ・マップされたインターフェイスを実行します。HPS のさまざまなポートを使用してHPSメモリーをリード/ライトすることによってメモリーテストを実行し、データ転送のパフォーマンスを測定します。 Arria® 10 SoC 開発キット
Cyclone® V SoC開発キット
QSPI GSRD Golden System Reference Design (GSRD) は、さまざまなカスタムユーザーデザインの出発点として使用できる必須のハードウェアおよびソフトウェア・システム・コンポーネントを提供します。 Arria® 10 SoC 開発キット
HPS DMA HWLIB DMA API を使用して DMA を初期化し、メモリーからメモリーへの転送を行う方法を示しています。 Arria® 10 SoC 開発キット
Arria® V SoC開発キット
Cyclone® V SoC開発キット
I2C HWLIB I2C API を使用してマスターとスレーブのリード/ライトを実行する方法を示します。この例は、LCD 画面、EEPROM メモリー、および 2 つの I2C モジュール間の I2C 通信を示しています。 Arria® 10 SoC 開発キット
Arria® V SoC開発キット
Cyclone® V SoC開発キット
Timer HWLIB フリーランニング・タイマ、ワンショット・タイマ、ウォッチドッグ・タイマ、およびグローバル・タイマ測定に Timer API を使用する方法を示しています。 Arria® 10 SoC 開発キット
Arria® V SoC開発キット
Cyclone® V SoC開発キット
SPI HWLIB FPGA ファブリックを介して接続された 2 つの SPI モジュール間で通信する SPI API の使用法を示しています。 Arria® 10 SoC 開発キット
Arria® V SoC開発キット
Cyclone® V SoC開発キット
Remote Update ユーザが Web インターフェイスを介して Arria® 10 SoC 上で実行されているハードウェアおよびソフトウェアをリモートからどのように更新できるかの例を示します。 Arria® 10 SoC 開発キット
Remote Update System-Level Debugging (SLD) ツールを使用してリモートシステムのデバッグを実行する方法について説明します。 Arria® 10 SoC 開発キット
PCIe Root Port Cyclone V GT FPGA 開発キットのPCIe エンドポイントまたは一般的に利用可能なインテル® PCIe イーサネット・アダプターカードのエンドポイントに接続された Arria® 10 SoC 開発キットで動作する PCIe ルートポートを示しています。 また、Cyclone V SoC 開発キットおよび Arria® V SoC 開発キットにも適用されます。 Arria® 10 SoC 開発キット
Arria® V SoC開発キット
Cyclone® V SoC開発キット
Quad SPI HWLIB 汎用ブロック I/O 機能を使用したクワッド SPI へのリード/ライトを実行し、間接モードおよび DMA モードを使用してデータ・トランザクションを実行するためのクワッド SPI API の使用法を示します。この例では、MMU とキャッシュの設定などの追加の API 機能も示しています。 Arria® V SoC 開発キット
Cyclone® V SoC開発キット
SD/MMC HWLIB SD/MMC カードを初期化するための SD/MMC API の使用法、ブロック I/O 機能を使用したリード/ライトを示しています。 Arria® V SoC 開発キット
Cyclone® V SoC開発キット
ECC HWLIB オンチップ RAM、SD/MMC、クワッド・シリアル・ペリフェラル・インターフェイス(SPI)、DMA、および L2 キャッシュ用の Error Correction Code(ECC)API 機能を示しています。 この例では、RAM ごとに ECC を設定および有効にし、シングル/ダブル・ビットエラーを挿入し、シングル/ダブル・ビットエラー検出の割り込みを設定する方法を示します。 Arria® 10 SoC 開発キット
Arria® V SoC開発キット
Cyclone® V SoC開発キット
Secure Boot このドキュメントでは、SoC Embedded Design Suite(SoC EDS)を使用して Arria® 10 SoC セキュアブート・システムを実装し、second-stage ブートローダ・イメージを保護する方法とデザイン例を示します。 Arria® 10 SoC 開発キット
HPS Peripheral Mapping to FPGA ハード・プロセッサー・システム(HPS)EMAC および I2C ペリフェラルを FPGA ファブリックにルーティングし、FPGA I/O に接続する方法を示しています。 Cyclone® V SoC 開発キット
Shared Memory Partition ハード・プロセッサー・システム(HPS)SDRAM コントローラのメモリー保護ルールを設定およびテストする方法を示しています。 Cyclone® V SoC 開発キット
Terasic Atlas SoCキット
Power Optimization HWLIB 消費電力を節約するために、呼び出し元のプロセッサー・コアをクロック・ゲーティング・モードにする WFI または WFE コールの使用を示しています。 Cyclone® V SoC 開発キット
また、SoC FPGA のDocumentation → devicesページ の SoCs から調べたいデバイスをクリックして進むと、対象 SoC FPGA デバイス向けの各種ドキュメントが公開されています。

SoC FPGA デバイス向けの各種ドキュメントが公開されているページ
Embedded Software Developer Center は、以下に挙げる特定の開発ロール向けにカスタマイズされた各種資料やデザイン例が公開されているページです。例えば、上記デバイス別のページからはなかなかたどり着けない HPS SoC Boot Guide などの資料のリンクも見つけられます。
特定の開発ロール向けにカスタマイズされた各種資料やデザイン例が公開されているページ
無料の SoC FPGA オンライン・トレーニング・コース

RocketBoard.org コミュニティ・ポータル・サイト

RocketBoards.org コミュニティ・ポータル・サイト では、SoC FPGA 向けの Linux® に関する各種情報を提供しています。


例えば、マクニカ Mpression の Sodia ボードのページ では日本語リソースが公開されており、また各種のドキュメント、リファレンス・デザイン、デモなどが公開されています。

Youtube で公開しているビデオ

4. SoC EDS に付属されているサンプル

SoC EDS には、SoC FPGA 開発キット向けのゴールデン・ハードウェア・リファレンス・デザイン(GHRD)、U-Boot、Linux、およびベアメタル・リファレンス・サンプルが付属しており、これらを使用した素早い開発が可能となっています。

SoC EDS v18.0 の examples/software フォルダには、以下のような Linux および ベアメタル・サンプルがあります。
【表4-1】 SoC EDS バージョン 18.0 に含まれるソフトウェア・サンプル
名  称 概  要 備  考
Altera-SoCFPGA-Blinking-LED-Linux-GNU Linux 向け: LED 点滅サンプル Linaro Linux GCC コンパイラ用
Altera-SoCFPGA-HardwareLib-16550-CV-ARMCC ベアメタル向け: Cyclone V SoC + 16550 UART API 使用例 Arm® コンパイラ用
Altera-SoCFPGA-HardwareLib-16550-CV-GNU ベアメタル向け: Cyclone V SoC + 16550 UART API 使用例 GCC コンパイラ用
Altera-SoCFPGA-HardwareLib-ECCL2-CV-ARMCC ベアメタル向け: Cyclone V SoC L2キャッシュでのECC API使用例 Arm® コンパイラ用
Altera-SoCFPGA-HardwareLib-ECCL2-CV-GNU ベアメタル向け: Cyclone V SoC L2キャッシュでのECC API使用例 GCC コンパイラ用
Altera-SoCFPGA-HardwareLib-FPGA-CV-ARMCC ベアメタル向け: Cyclone V SoC FPGA Manager API使用例 Arm® コンパイラ用
Altera-SoCFPGA-HardwareLib-FPGA-CV-GNU ベアメタル向け: Cyclone V SoC FPGA Manager API使用例 GCC コンパイラ用
Altera-SoCFPGA-HardwareLib-SPI-CV-ARMCC ベアメタル向け: Cyclone V SoC SPI API を使用した EEPROM のリード/ライト・サンプル Arm® コンパイラ用
Altera-SoCFPGA-HardwareLib-SPI-CV-GNU ベアメタル向け: Cyclone V SoC SPI API を使用した EEPROM のリード/ライト・サンプル GCC コンパイラ用
Altera-SoCFPGA-HardwareLib-Timer-A10-ARMCC ベアメタル向け: Arria 10 SoC Timer API 使用例 Arm® コンパイラ用
Altera-SoCFPGA-HardwareLib-Timer-A10-GNU ベアメタル向け: Arria 10 SoC Timer API 使用例 GCC コンパイラ用
Altera-SoCFPGA-HardwareLib-Timer-AV-ARMCC ベアメタル向け: Arria V SoC Timer API 使用例 Arm® コンパイラ用
Altera-SoCFPGA-HardwareLib-Timer-AV-GNU ベアメタル向け: Arria V SoC Timer API 使用例 GCC コンパイラ用
Altera-SoCFPGA-HardwareLib-Timer-CV-ARMCC ベアメタル向け: Cyclone V SoC Timer API 使用例 Arm® コンパイラ用
Altera-SoCFPGA-HardwareLib-Timer-CV-GNU ベアメタル向け: Cyclone V SoC Timer API 使用例 GCC コンパイラ用
Altera-SoCFPGA-HelloWorld-Baremetal-ARMCC ベアメタル向け: Hello World サンプル Arm® コンパイラ用
Altera-SoCFPGA-HelloWorld-Baremetal-GNU ベアメタル向け: Hello World サンプル GCC コンパイラ用
Altera-SoCFPGA-HelloWorld-Linux-GNU Linux 向け: Hello World サンプル Linaro Linux GCC コンパイラ用
Altera-SoCFPGA-Push-Button-Linux-GNU Linux 向け: Push-Button サンプル Linaro Linux GCC コンパイラ用
【注記】Minimal Preloader (MPL) のベアメタル・サンプル Altera-SoCFPGA-HardwareLib-MPL は、SoC EDS Standard Edition バージョン 18.0 には含まれていません。MPL を使用する場合は、Standard Edition バージョン 17.1 に付属のサンプルを使用する必要があります。詳細は、 SoC EDS の Release Notes のページ を参照ください。

5. SoC FPGA のパートナ・リンク

SoC FPGA デバイスは、オープン・ソースの Linux に加え、多数の商用オペレーティング・システムが利用できます。以下に商用オペレーティング・システムのパートナ・リンクを紹介します。
【表5-1】 日本のオペレーティング・システム (OS) パートナ
会社名 オペレーティング・システム(OS) 概  要 評価環境
AIC Toppers-Pro - -
eForce μC3/Standard Cyclone® V SoC に最適な RTOS と TCP/IP を提供しています。DS-5R(GCC)に対応した無償評価版も WEB からご利用いただけます。 あり
Enea OSE - -
eSOL eT-Kernel マルチコア対応 RTOS、開発ツール、各種ミドルウェア、ドライバーなどが統合済み。30日間無償で Cyclone® V SoC や RTOS の性能、品質の評価が可能です。 あり
Express Logic
日本代理店:(株) グレープシステム
ThreadX 「ThreadX」は、Express Logic 社が開発したリアルタイム OS(RTOS)です。フットプリントが小さく、リアルタイム・レスポンスを要求する組み込みシステムに最適な RTOS です。 あり
Fujisoft Android 組込み製品でスマートな操作が可能な GUI を実現。SoC FPGA で快適に動作するAndroid プラットフォームをご提供します。 あり
Fujitsu Computer Technologies 組込みLinux導入/開発支援サービス
μT-Kernel導入/開発支援サービス
富士通グループ内での培ってきた高い技術力をベースに、様々な装置の組込みシステム開発を支援します。 -
Green Hills Software
日本代理店:(株)アドバンスド・データ・コントロールズ
INTEGRITY RTOS - -
株式会社 日立超LSIシステムズ T-Kernel 2.0
  • T-Kernel 2.0 を Cyclone® V SoC に移植し提供致します。
  • μITRON の後継 OS で、移植性・親和性が高く、ソフトウェア資産の活用が可能です。オープン・ソースのライセンスで公開され、ライセンス・フリーで製品利用が可能、ソースコードの公開義務はありません。
-
JSLテクノロジー OS レス(ベアメタル環境) JSL-Ware は Cyclone® V SoC 向けの各種ペリフェラル・ドライバーのソフトウェア・パッケージです。ファイルシステムやブート処理も含まれており、日本語マニュアルも準備しておりますので直ぐに使用可能です。 OS Wrapper API の仕組みにより、Non-OSの環境ならびに各種 OS への実装も簡単にできます。無償評価版もご用意しております。また、eForce 社が提供する uITRON ベースのリアルタイム OS (uC3) とのバンドル版もご用意しております。 あり
Micrium
日本代理店:(有)テクノ・ロジック
uC/OS-II,uC/OS-III - -
QNX QNX Neutrino RTOS QNX Neutrino リアルタイム OS は、マイクロカーネル設計により、組込みシステムに非常に高い信頼性を提供します。 あり
Toppersプロジェクト Toppers Kernel - -
Wind River VxWorks リアルタイム性能に優れた RTOS を提供いたします。 あり
Wind River Wind River Linux - -

【表5-2】 SoC FPGA のオペレーティング・システム(OS)のサポート
オペレーティング・システム(OS) 会社名 オペレーティング・システム(OS) 会社名
Abassi Code Time Technologies Android Fujisoft
AUTOSAR MCAL (問い合わせはインテルまで) インテル Bare-Metal/Hardware Libraries (in SoC EDS) インテル
Carrier Grade Edition 7 (CGE7) MontaVista DEOS DDC-I
eCosPro eCosCentric eT-Kernel eSOL
FreeRTOS FreeRTOS.org INTEGRITY RTOS Green Hills Software
Nucleus Mentor Graphics OSE Enea
QNX Neutrino RTOS QNX RTEMS on github RTEMS
ThreadX Express Logic μC/OS-IIμC/OS-III Micrium
μC3(日本語) eForce VxWorks Wind River
Wind River Linux Wind River Windows Embedded Compact 7 Witekio

【表5-3】デバッガ
会社名 デバッガ 会社名 デバッガ
Arm® DSTREAM Lauterbach TRACE32
DTS インサイト adviceLUNA II 京都マイクロコンピュータ PARTNER-Jet2
コンピューテックス PALMiCE3 IAR システムズ IAR Embedded Workbench


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

おすすめ FAQ はこちら

おすすめセミナー/ワークショップはこちら

関連タグ