まだマイコンで消耗してるの?
いや、SlideShareで見かけたAlteraのちょい古いスライド見てたらそんな感じの煽り具合だったので。 スライド自体もコンセプトメインなのでメモです。
2010年だが、基本は変わっていない。
FPGAを組み込みシステムに導入するメリットについて書いている。
解決したい問題によるので鵜呑みにしてはいけないが、選択肢のひとつとして検討に値するとは思う。
FPGAが活かせるのは並列性、柔軟性だ。
特に浮動小数点演算の必要性が低いアプリケーションには最強に近いパフォーマンスを見せる。
現在のFPGAは組み込みシステムの要求にマッチする
豊富なユーザーロジック
→大体のアプリで困ることはそうない。充分な内部RAM
→大体のアプリで困ることはそうない。ワイドレンジで高速なIO
→大体のアプリで困ることはそうない。ハイパフォーマンス化
→100〜200MHzが妥当ローパワー、ローコスト
→選定と工夫次第ソフトCPUコアとペリフェラルIP、ソフト開発環境サポート
→一応ある。
このへんは本当だ。
カギとなる組み込みシステムの要求
制御マイコン
NiosII
→最近のはデュアルコア ARM Cortex-A9 MPが搭載されたCoreSoC FPGAなどと呼ばれるものが登場している。インターフェースIPの用意
充分に用意している。HW開発の容易さ
QuartusII(Qsys)
→どうだろ?上手くいかない場合もある。
FPGAで使えるソフトコアCPUのパフォーマンス
性能指標のDMIPsで言うと、2009年には350程度にまで達している。
→NiosIIはどうしても低速なので、ホストCPUとして充分な性能のハードマクロ(実物と同じ)ARMプロセッサを搭載したものをラインナップに加えている。
ソフトコアCPUの利点はシステム構成&CPU自体がカスタム可能な所だと思う。
FPGAベースなら柔軟なアプローチを提供
適材適所に好きなようにできる。
これはFPGA最大の利点。
例)
外部CPU(ホスト)を用意する。
FPGAソフトコアCPUでメニーコア化。
FPGAロジックで特殊処理させる。
ソフトウェアのFPGAアクセラレーション
NiosIIへのカスタム命令
の追加
→複雑なオペレーションの効率化にマッチする。
HWアクセラレータの実装
→大規模並列実行
→クロック単位での処理動作
→電力コストパフォーマンスが良い
統合によるシステムコストの低減→つまり外部デバイスはプログラマブルロジックに変えよう!と言いたい。
組み込みアプリケーションでのFPGA活用例
古いASICの置き換え
古いプロセス/陳腐化した多くのASICの置き換え事例にコストパフォーマンスよいため利用されている。機能の統合や柔軟なデバイスとして
マイコンを含めた複数のデジタルデバイスを1FPGAに。 特殊機能を高性能ロジックへインプリメント。カスタムインターフェースの要求への対応
HDLでコーディングすれば要求にマッチする。 わりと研究開発用途でのカスタムインターフェース対応でのFPGA利用は多い。 標準的なインターフェースはIPで対応できる(USB,Ethernet,RS232,PCI,PICe,CAN,SPI,I2Cなど)ソフトコアCPUは追加が容易
ソフトコアCPUを追加して処理をオフロード。 既存SW資産の維持と、拡張オプションの追加。
まだ既存CPU使って消耗してるの?
スタンダードなマイコン、CPUのままでは以下の要求に応えきれない。
そんな人のためにFPGAはありまぁす。
おわり
最近寒くてたまらん。