FPGAの中に入れるCPUについては、最初のカメラを作っている最中に知りました。
最初にその事を知った時は「え?CPUってそんな簡単に実装できちゃうの?」と言う感覚でした(簡単ではなかったけどね)
最初のカメラにはCPUは実装しませんでしたが
次第に、CPUの実装は可能にしておかないといけない事を知りました。
HDLのロジックで記述する事が出来れば、1クロック(10nsecとか)単位でデータを処理できます。64bit並列で処理すれば800MB/secとかの処理が可能です( even more! )
反対にCPUで処理をするとどうでしょう?
実装の仕方にもよりますが、データを読み込んで処理して出力するだけで数usec使ってしまいます。
ですが、CPUを乗せておくと、細かい制御がC(C++)言語で記述する事が出来ます
ハードウェア部分の開発は、この頃コンパイル時間で5分かかっていました
今は、大規模になってきて20分くらいですが、複雑なシステムを構築する人等は1日かかる事もある様です。
なので、パラメータを変更する程度の事で合成等はしていられない訳です
そういう部分をソフトウェアでサポートします
ともあれ最初のカメラを作り終える頃から、「あ~、そうか~、本当はCPUが入るのが当然なのか~」という事が分かり始めました
けれど、そこから、実際にFPGAの中にCPUを組み込んで自在に使える様になるまで
それはそれは長い時間がかかりました