FPGAの基礎 – 第3部:Microchip Technology製FPGA入門
DigiKeyの北米担当編集者の提供
2020-01-30
編集者メモ:RISC、CISC、グラフィックスプロセッサとFPGAの組み合わせ、FPGA単独、またはファブリックの一部としてハードプロセッサコアを強化するFPGAによって最適な処理ソリューションが得られることがよくあります。一方で、多くの設計者はFPGAの機能、その進化の過程や使い方をよく知りません。この複数部構成シリーズの第1部では、FPGAの概要について簡単に概要を説明しています。第2部では、Lattice SemiconductorのFPGA製品に焦点を合わせました。この第3部では、Microchip Technologyが(その子会社であるMicrosemi Corporationを通じて)提供しているFPGAデバイスのファミリおよび設計ツールにしぼって紹介します。第4部と第5部では、AlteraとXilinxのFPGAおよびツールを見ていきます。
第1部で説明したように、FPGA(フィールドプログラマブルゲートアレイ)は、単体で使用しても異種アーキテクチャの中で使用しても重要なコンピューティング資産となることができる多くの特性を備えています。しかし、多くの設計者はFPGAの機能や、これらのデバイスを設計に取り込む方法を十分に理解していません。
この状況を解決するための1つの方法は、大手ベンダーが提供しているFPGAアーキテクチャとその関連ツールについて理解を深めることです。この記事では、Microchip Technologyのラインナップを見ていきます。
高度なFPGAオプションの概要
市場にはさまざまな種類のFPGAが出回り、それぞれに異なる機能が組み合わされています。FPGAの中心を成すのは、プログラム可能なファブリックです。これは、ロジックエレメント(LE)とも呼ばれるプログラム可能論理ブロックの配列として提供されています(図1a)。次のFPGAファブリックの拡張には、ブロックRAM(BRAM)と呼ばれるSRAMのブロック、位相ロックループ(PLL)、クロックマネージャなどが含まれます(図1b)。デジタル信号処理(DSP)ブロック(DSPスライス)と高速シリアライザ/デシリアライザ(SERDES)ブロックを追加することもできます(図1c)。
図1:プログラマブルファブリックと構成可能な汎用IO(GPIO)のみが含まれる最も簡易なFPGA(a)、基盤のファブリックをSRAMブロック、PLL、クロックマネージャで拡張する各種アーキテクチャ(b)、DSPブロックとSERDESインターフェース(c)、およびハードプロセッサコアと周辺モジュール(d)。(画像提供:クリーブ・"マックス"・マックスフィールド氏)
CAN、I2C、SPI、UART、USBなどのペリフェラルインターフェース機能はプログラマブルファブリックにソフトコアとして実装できますが、多くのFPGAではハードコアとしてシリコンに組み込まれています。同様に、マイクロプロセッサをプログラマブルファブリックにソフトコアとして、またはシリコンにハードコアとして実装できます(図1d)。ハードプロセッサコアを備えたFPGAは、SoC(システムオンチップ)FPGAと呼ばれます。各FPGAが提供する機能や容量は、対象となる市場やアプリケーションに応じて異なります。
Altera(Intelが買収)、Atmel(Microchip Technologyが買収)、Lattice Semiconductor、Microsemi(Microchip Technologyが買収)、Xilinxなど、多くのFPGAベンダーが存在します。
これらのベンダーはすべて複数のFPGAファミリを提供しています。SoC FPGAを提供しているベンダーや、宇宙などの高放射線環境を対象にした放射線耐性デバイスを提供しているベンダーもあります。それぞれ異なるリソースを提供する多くのファミリが存在するため、作業に最適なデバイスをすぐに選択するのは難しい場合があります。
Microchip TechnologyのFPGAの紹介
Microchip TechnologyのFPGA製品はローレンジからミッドレンジにわたり、類を見ない信頼性をもった、低消費電力で高度なセキュリティを備えたデバイスに焦点が合わされています。有線および無線通信、防衛および航空、産業用組み込みの各アプリケーションに広く展開されているように、MicrochipのFPGAは信頼性の高いDSPおよびメモリリソースを誇り、ハードウェア高速化、人工知能、画像処理、エッジコンピューティングなどのアプリケーションにおける有用性を実証しています。
Microchipは、以下3つの主要なFPGAファミリを提供しています。
- IGLOO®2 FPGA:重要なリソースを備えた低密度デバイス
- SmartFusion®2 SoC FPGA:重要なリソースおよび32ビットハードプロセッサコアを備えた低密度デバイス
- PolarFire™ FPGAおよびSoC FPGA:28nmプロセス技術で製造し、コストを最適化した高性能デバイス
すべてのFPGAは、各プログラム可能論理ブロックの機能と、論理ブロック同士および論理ブロックと外界との接続方法を決める構成セルを備えています。これらのセルは、GPIOのインターフェース規格、入力インピーダンス、出力スルーレートなどの構成にも使用されます。
一部のFPGAではSRAMベースの構成セルを使用していますが、これらは揮発性であるため、システムの電源が断たれるとその内容が失われます。またこれは、システムの電源投入時に構成データを外部ソース(通常はフラッシュメモリデバイス)からロードする必要があるということです。このようなFPGAは、電源投入して使用可能になるまでに最も長い時間を要します。
内蔵フラッシュメモリに構成データを格納するFPGAもありますが、それらもSRAMベースの構成セルを備えています。その場合、電源投入時に内蔵コントローラが、フラッシュの構成メモリからSRAMの構成セルへ構成データを複写します。このようなFPGAは、SRAMのみの類似製品よりも高速に起動します。
MicrochipのIGLOO2 FPGAおよびSmartFusion2 SoC FPGAでは異なった機構が採用されており、内蔵の構成メモリおよび内蔵の構成セルの両方をフラッシュ技術を使用して実装しています。PolarFireデバイスの場合、構成セルには、シリコン-酸化物-窒化物-酸化物-シリコン(SONOS)構造の不揮発性メモリ(NVM)技術が使用されており、これは「フラッシュと似ているがそれよりも優れている」と考えられる場合があります。
構成データを不揮発性フラッシュ(またはSONOS)セルに格納するため、MicrochipのFPGAおよびSoC FPGAは「即時オン」です。つまり、他のタイプのFPGAよりも高速に起動します。こうしたデバイスがフラッシュ構成メモリも備えている理由は、FPGAが構成セル内の既存の構成を使用して動作継続している間に、新しい構成をこの構成メモリにロードできることです。新しい構成のダウンロードと検証が完了すると(構成を暗号化し、巡回冗長検査(CRC)を行うことが可能)、構成セルに格納してある元の構成を構成メモリに格納された新しい構成で上書きする間、デバイスを安全な状態にすることができます。
従来型デバイス:IGLOO2 FPGA
IGLOO2は、ローレンジからミッドレンジをカバーする優れた汎用FPGAです。これらは、多くの設計者が「従来型」FPGAと見なしているデバイスです。これらのフラッシュFPGAデバイスは、ギガビットEthernetまたはデュアルPCI Express制御プレーン、ブリッジ機能、入出力(I/O)拡張および変換、動画および画像処理、システム管理、セキュアなコネクティビティなどの汎用機能に最適です。アプリケーションは、通信、産業、医療、防衛、航空などあらゆる分野におよびます。
図2:IGLOO2 FPGAは、ギガビットEthernetまたはデュアルPCI Express制御プレーン、ブリッジ機能、入出力(I/O)拡張および変換、動画および画像処理、システム管理、セキュアなコネクティビティなどの汎用機能に最適。(画像提供:Microchip Technology)
IGLOO2 FPGAは5,000~150,000個のLEを有し、高性能メモリサブシステム、内蔵フラッシュ最大512KB、内蔵SRAM(スタティックランダムアクセスメモリ)32KB x 2、DMA(ダイレクトメモリアクセス)エンジン2基、DDR(ダブルデータレート)コントローラ2基を備えています。これらのデバイスは、最大16個のトランシーバレーン、内蔵DSPプロセッサブロック、SEU(シングルイベントアップセット)保護/耐性メモリも備えています。セキュリティについては、差分電力解析(DPA)に対して強化されており、AES256およびSHA256による暗号化、オンデマンドNVMデータ完全性検査を採用しています。
IGLOO2デバイスの1つの好例はM2GL025-FGG484Iで、27,696個のLE、1,130,496ビットのRAM、267個のI/Oを備えています。設計者がIGLOO2 FPGAファミリの機能を使用して調査および実験できるように、Microchipは対応するIGLOO2評価キットM2GL-EVAL-KITも提供しています(図3)。
図3:M2GL-EVAL-KITはIGLOO2用評価キットで、高レベルの機能統合に加え、低消費電力、高信頼性、先進のセキュリティを併せて実現しています。(画像提供:Microchip Technology)
M2GL-EVAL-KITを使用すると、モータ制御、システム管理、産業用オートメーション、高速シリアルI/Oアプリケーション、さらにはPCI ExpressおよびギガビットEthernetを含む組み込みアプリケーションの開発が容易になります。このキットは、高レベルの機能統合に加え、低消費電力、高信頼性、先進のセキュリティを実現しています。このボードはまた、スモールフォームファクタPCIe対応で、開発者はPCIeスロットを備えたデスクトップPCまたはラップトップを使用して試作が行えます。
入門レベルのSoC:SmartFusion2 SoC FPGA
SmartFusion2 SoC FPGAは、32ビットハードプロセッサコアで増強されたIGLOO2デバイスに見られる従来のプログラム可能ファブリックをベースにしています。プロセッサはArm® Cortex®ファミリのよく知られたものであるため、SmartFusion2ファミリはSoC FPGAの世界への格好の入口となります。
これらのSoC FPGAは、5,000~150,000個のLEとともに166MHzのArm Cortex-M3プロセッサ(組み込みトレースマクロセル(ETM)および命令キャッシュとともに内蔵eSRAMおよび組み込みNVM(eNVM)を含む)、さらにはCAN、TSE、USBなど広範な周辺モジュール一式で増強された完全なマイクロコントローラサブシステムを備えています。
図4:SmartFusion2 SoC FPGAは、5,000~150,000個のLEとともに166MHzのArm Cortex-M3プロセッサ(ETMおよび命令キャッシュと内蔵eSRAMおよびeNVMを含む)、さらにはCAN、TSE、USBなど広範な周辺モジュール一式で増強された完全なマイクロコントローラサブシステムを備えています。(画像提供:Microchip Technology)
これらのフラッシュSoC FPGAデバイスは、ギガビットEthernetまたはデュアルPCI Express制御プレーン、ブリッジ機能、I/O拡張および変換、動画および画像処理、システム管理、セキュアなコネクティビティなどの汎用機能に最適です。やはり、アプリケーションは多数で、通信、産業、医療から防衛、航空にまでおよびます。
SmartFusion2デバイスの1つの好例はM2S025-FCSG325Iで、25,000個のLE、256KBのフラッシュ、64KBのRAM、166MHz動作の32ビットArm Cortex-M3プロセッササブシステムを備えています。設計者がSmartFusion2 SoC FPGAファミリの機能を使用して調査および実験できるように、Microchipは対応するSmartFusion2メーカーボードM2S010-MKR-KITも提供しています(図5)。
図5:SmartFusion2メーカーボードは、SmartFusion2 SoC FPGA用の低コスト評価キット。SmartFusion2は、シングルチップ上にArm Cortex-M3プロセッサとフラッシュベースのFPGAファブリック、およびRAMブロックやDSPブロックなど、SoCユーザーにお馴染みの多数の周辺モジュールが組み合わされています。 (画像提供:Microchip Technology)
低コストのSmartFusion2メーカーボード(DigiKeyが独占販売)は、設計者のためのSmartFusion2ファミリの利用手段です。このファミリの各デバイスは、12,000個のLEを備えたフラッシュベースのFPGAファブリック、32ビット166MHzのArm Cortex-M3プロセッサ、DSPブロック、SRAM、eNVM、GPIOインターフェースをすべてシングルチップに搭載しています。
SmartFusion2メーカーボードにより、Ethernetインターフェース、周囲光センサ、SPIフラッシュ、ユーザーLED 8個、ユーザー押ボタン2個が加わります。このボードには、Wi-Fi/BluetoothモジュールであるESP32およびESP8266(非搭載)に対応した空きの接続部も2つ用意されています。本ボードは、JTAGプログラミング、UART通信、ボードへの給電のためのUSBポートを備えています。また、SPIフラッシュ、50MHzクロック源、Microchipの100Mbit/sまたは1Gbit/sのEthernet用物理レイヤ(PHY)であるVSC8541も備えています。
コスト最適化、高性能:PolarFire FPGAおよびSoC FPGA
PolarFire FPGAは、28nmプロセス技術で製造され、コスト最適化された高性能デバイスです。これらのデバイスは、ミッドレンジの密度で消費電力が最小になるように設計されており、高度なセキュリティと信頼性を有しています。
この製品ファミリはLE数が100,000~500,000で、12.7Gbitトランシーバを備えており、競合するミッドレンジFPGAよりも消費電力が最大50%少なくなるように設計されています。 有線アクセスネットワーク、携帯電話インフラストラクチャ、防衛および商業航空市場や、産業オートメーションおよびIoT市場での幅広いアプリケーションに最適です。
図6:PolarFire FPGAは、100,000~500,000個のLEを持ち、12.7Gbitトランシーバを備えており、競合するミッドレンジFPGAと比べて消費電力が最大50%少なくなるように設計されています。(画像提供:Microchip Technology)
PolarFire FPGAの消費電力が競合するFPGAに比べて最大50%少ない主な理由は、PolarFireの内蔵構成メモリと内蔵構成セルの両方にNVM技術が使われていることです。このため、構成セル間のリークが本質的に少なくなります。これはこれらのデバイスが電源投入時に真の「即時オン」であることも意味し、結果として突入電流がなく構成電流がゼロになります。
サイバーセキュリティはネットワークエッジにおける接続デバイスの第一の懸念事項であるため、開発者はその設計の機能要件を満たすだけでは不十分です。セキュアにそれを行う必要があるのです。セキュリティは、チップの製造時から始まり、システムのデプロイおよび運用にまで継続します。PolarFire FPGAは、Microchipによって業界で最も進んだセキュアなプログラム可能FPGAとして提供されています。
複雑な電子装置の多くのアプリケーションには、その設計にある一定の安全性要件があります。PolarFire FPGAは、産業、航空、軍事、通信などの用途において、高信頼性、高可用性、安全性が求められるミッションクリティカルシステム向けに設計されています。このような用途にPolarFireが適すのは、以下の特長を備えているためです。
- FIT(Failure In Time)レート0のFPGA構成
- SEU保護メモリ
- SECDED(シングルエラー訂正、ダブルエラー検出)を備えたメモリコントローラ
- 組み込みセルフテスト
- 外部構成デバイス不要
PolarFireデバイスの1つの好例はMPF100T-FCSG325Iで、109,000個のLE、7,782,400ビットのRAM、170個のI/Oを備えています。設計者がPolarFire FPGAファミリの機能を使用して調査および実験できるように、Microchipは対応するPolarFire FPGA評価キットMPF300-EVAL-KITも提供しています(図7)。
図7:設計者がPolarFire FPGAファミリの機能を使用して調査および実験できるように、Microchipは対応するFPGA評価キットMPF300-EVAL-KITも提供しています。(画像提供:Microchip Technology)
MPF300-EVAL-KITを使うと、幅広いアプリケーションにわたって高性能な評価が行えます。高速トランシーバ評価、10Gbit Ethernet、IEEE1588、JESD204B、SyncE、CPRIなどに最適です。キットの接続には、高ピン数(HPC)のFPGAメザニンカード(FMC)、多数のSMA、PCIe、デュアルギガビットEthernet RJ45、SFP+、およびUSBが含まれます。DDR4、DDR3、およびSPIフラッシュを搭載した300,000 LEのPolarFire FPGAにより、幅広いクラスの高性能設計を開発できます。
PolarFireラインナップの進歩は継続します。本稿執筆時点で、Microchip Technologyは、発売間近のPolarFire SoC FPGAファミリの詳細を発表しました。このファミリは、Linuxが動作可能でリアルタイム性を強化したオープンソースの64ビットRISC-Vベースマイクロプロセッササブシステムを搭載しています。
Microchip Technology製FPGAを使用した設計および開発
FPGAでの開発に使用される最も一般的な手法の1つが、言語駆動設計(LDD)です。この手法では、Verilog、VHDL、SystemVerilogなどのハードウェア記述言語(HDL)を使用して、レジスタ転送レベル(RTL)と呼ばれる抽象レベルで設計の意図を表現します。論理シミュレーションによる検証の後に、この表現は、ターゲットのFPGAタイプ、ピン割り当て、タイミング制約(例えば入力から出力への最大遅延)などの追加情報とともに、合成エンジンに送られます。合成エンジンからの出力は構成ファイルで、FPGAに直接ロードされるか(Microchip製のFPGAまたはSoC FPGAの場合)、外部メモリデバイスにロードされます(SRAMベースのデバイスの場合)(図8)。
図8:論理シミュレーションによる検証の後、RTL設計の記述が、FPGAタイプ、ピン割り当て、タイミング制約等その他の設計詳細とともに合成エンジンに送られます。合成エンジンの出力は、FPGAに直接ロードされる構成ファイルです。(画像提供:クリーブ・"マックス"・マックスフィールド氏)
MicrochipのLibero SoC設計スイートは、この種のツールです。このソフトウェアは、MicrochipのFPGAであるIGLOO2とPolarFireおよび、SoC FPGAであるSmartFusion2とPolarFireを使用する設計のための、習得および導入が容易で統合された包括的開発ツールです。このスイートには、業界標準であるSynopsysのSynplify Pro合成とMentor GraphicsのModelSimシミュレーションおよび制約管理、プログラミング、デバッグのツール群と、セキュアな量産用プログラミングサポートが統合されています。
このスイートは、Verilog、VHDL、またはSystemVerilogを使用したテキスト形式による設計の表現に加えて、グラフィック入力にも対応しており、下位のブロックをユーザー定義されたHDLによって、またはサードパーティのIPとして表現し、接続されたブロックの階層としてシステムを定義することができます。
さらに、System Builderもあります。これは、意図するシステムを定義する一連の高次の(わかりやすい)質問を通じてユーザーを導く、使いやすい設計ツールです。System Builderは、必要とするシステムアーキテクチャに関する質問から始まり、プログラム可能ファブリック内のソフトコアとして実装される追加周辺モジュールを加え、最終的にコレクトバイデザインのシステム全体を作成します。
最後に忘れてはならないのが、SoftConsole統合開発環境(IDE)です。これを使うことで、MicrochipのFPGAおよびSoC FPGA内にインスタンス化された32ビットソフトプロセッサ、およびSoC FPGAであるSmartFusion2とPolarFireがそれぞれ内蔵している32ビットと64ビットのハードプロセッサコアのためのベアメタルおよびRTOSベースのC/C++ソフトウェアの迅速な開発が容易になります。
まとめ
プロセッサとFPGAの組み合わせ、FPGA単独、またはファブリックの一部としてハードプロセッサコアを強化するFPGAによって最適処理の設計ソリューションが得られることがよくあります。FPGAは1つのテクノロジとしてここ数年で急速に進化しており、柔軟性、処理速度、および電力における多くの設計要件に対応し、インテリジェントインターフェースからマシンビジョンやAIまで幅広いアプリケーションに活用することができます。
既述のように、Microchip TechnologyのFPGAおよびSoC FPGA製品は、ローレンジからミッドレンジにわたり、類を見ない信頼性をもった、低消費電力で高度なセキュリティを備えたデバイスに焦点が合わされています。FPGAは、信頼性の高い信号処理機能とメモリリソースを備えており、通信や工業から軍事や航空までの産業においてハードウェア高速化、人工知能、画像処理、エッジコンピューティングなどのアプリケーションの開発ができる優れたプラットフォームです。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。


