皆様こんにちは。18のhiraです。ソナー作ったら面白そうとか言っている人ですが、そんなソナーに必要なのは「正確な時刻で処理をする」ことです。ただ、一般のCPUで普通のプログラムを動かすと、時間指定したつもりでも処理に数msのズレが生じてしまうこともあります。正確に数百kHzでサンプリングするようなソナーには不向きです。
それを解決する(と勝手に思っている)のがFPGAです。FPGAは中の回路の配線を、使用者が好き勝手につなぎ直すようなことができる特殊なデバイスです。回路を最適化することで使用者が指定した通りに動作でき、さらに大規模並列回路にすることもできます。大量・高速のデータ処理を必要とするAI学習やデータセンターにも採用されています。
しかしそれにはHDLという、レジスタ叩きやビット操作を書き連ねる、長ったらしいプログラムで書かねばならないことが大きな壁でした。
そこでFPGAをもっと活かすため、C言語プログラムをHDLに変換して開発を加速させる「高位合成」という技術が近年注目されています。今回はそんなC言語プログラムの高位合成を「Vivado」、「Vitis」という専用ツールを使って初歩の初歩を体験していきます。