AIコーディングエージェントの能力向上が目覚ましい今、FPGA開発もAIが担えるのではないか、という仮説が社内で生まれました。
そこで、転がっていたZYBO Zynq-7010評価ボード Z7-10を使ってAIでなにかやってみよう、ということになりました。
これはその実証実験のレポートです。
目次
実際にやったこと
Vivadoのセットアップ
まずは開発環境のセットアップをします。
どうやらZYNQボードでの開発にはVivadoというIDEを使うようです。
AIに 言われるがままにボタンをポチポチして 手取り足取り教えてもらって無事インストールできました。
PYNQのセットアップ
開発用PCのセットアップが完了したので次はボードのセットアップを行っていきます。
どうやらPYNQというものを導入するとPythonからFPGAに対して指示が出せるようになって便利らしい、ということでこちらはAIに 丸投げして SSHで実際にボードを操作してもらって、無事に導入が完了しました。
FPGAでUARTを作ってそこから文字を出力する
無事セットアップも完了したのでなにかやってみよう、ということでまずはUARTを実装してみました。
Vivadoの操作はAIに聞きつつ私の方で作業して、FPGAの実装はまるっとAIに担当してもらいました。
無事エコーバックできるようになりました🎉
HDMIの映像に半透明の四角を合成
ここまででFPGAというものがなんとなくわかってきたような気がする、繰り返し行う必要がある特定の処理をFPGAに逃がすという使い方がよさそうな気がする、ということで次はHDMIの映像に対してなにか合成してみよう、ということになりました。
この作業をしている時に知ったのですが、VivadoによるBit Streamの作成はCLIからも行えました。
しかもプロジェクトの作成も、TCLというテキストファイルで内容を定義してコマンドラインから行うことができる、つまり人間がIDEを操作することなくAIコーディングエージェントに全て任せることができる、ということが判明しました。
なので作成から実機への配置まで全てAIに任せてみた結果、赤い半透明の四角形がオーバーレイされるようになりました。
HDMIをパススルーしつつ任意のタイミングでキャプチャ
先ほどの実験を経て、HDMIの映像に対していろいろできそうだなと思ったので次はHDMIの映像をキャプチャしてみます。
まずは、コマンドラインでキー入力を監視し S キーが入力されたらUSBメモリに保存されるようにして、実際に実機で動かしてみます。
画像の保存先に使ったUSBメモリをWindows PCに挿して確認すると
いいかんじです。
次はNASに保存してみます。
Windows PCからNASにアクセスして
こちらもいいかんじに動いています。
固定の場所に対する保存は実証できたので最後は、もっと実戦を意識してWebアプリから操作と画像の取得ができるようにしてみます。
シンプルながらちゃんとスタイリングされたWebアプリになっていますね。
キャプチャボタンを押して
画像が出ました。
画像を右クリックして「名前を付けて画像を保存」を選ぶと
ちゃんと保存できました。
ブラウザの開発者ツールでソースを確認してみると
バックエンドを用意して、そこで画像をホストしているようです。
これならダウンロードボタンを用意したり、ボードのスペック次第ではWebRTCで画像ではなく映像をストリーミングしたりといろいろなことに応用が利きそうです。
まとめ
いろいろと試してみましたが、イマドキのAIはFPGA開発のコーディングも十分に担えるようです。
実際に仕事で使うにはテストケースを用意してAIが作ったものが正しいか検証するための仕組みを整備したりする必要がありますが、そのあたりに関してはもとからFPGA開発を行っていた方や組み込み一筋のベテランエンジニアの方々が社内にいるので、その方たちを頼ればなんとかなるかなと思っています。
あとはボードのスペックとアイデア次第、というところでしょうか。
当初の「FPGA開発もAIが担えるのではないか」という仮説については実証成功ということで、今後の弊社の武器になってくれればいいなと思っています。












