Vivado AI Assistantを実際に触ってみた
― VS Codeから自然言語でVivadoを操作する時代へ
8月27日、Vivado AI Assistant Workshop Add-Onに参加してきました。
会場には80人ほどの参加者がいたと思います。企業から参加されている方も多く、FPGA開発への生成AI活用に対する関心の高さを感じました。
今回のWorkshopについては書きたいことがかなりあるので、3本くらいに分けて紹介しようと思います。
1本目は細かな技術解説ではなく、実際にVivado AI Assistantを触ってみた第一印象を中心に書いてみます。

Vivadoの中にAIが入ると思っていた
Workshopに参加する前は、
「VivadoにどこまでAI機能が入るんだろう?」
という興味を持っていました。
イメージしていたのは、Vivadoの中にAIチャットのような機能が追加され、
「このエラーは何?」
「このタイミング違反をどう直せばいい?」
と質問するとAIが答えてくれるようなものです。
もちろん、そうした機能も重要です。
ところが実際にWorkshopで触ったものは、私が想像していたものとは少し違いました。
中心にあったのはVivadoではなく、VS Codeでした。
VS CodeのAIからVivadoを操作する
今回の演習では、クラウド上に用意されたUbuntu環境を使用しました。
そのUbuntu上でVS Codeを起動し、GitHub Copilotなどの生成AIを利用します。
そしてAIから自然言語で指示を出します。
Workshopでは英語でプロンプトを入力しました。
すると、その指示をもとにAIがVivado側の処理を行います。
実際に演習では、VS Code上のAIから指示を出してVivadoが起動するところまで確認できました。
これには少し驚きました。
私が想像していたのは、
Vivado → AI
という関係でした。
ところが実際に触ってみると、
人間 → AI → MCP → Vivado
という関係に近かったのです。
つまり、
「VivadoにAIが付いた」というより、「AIがVivadoを使う」
という印象です。
セットアップは、なかなか大変だった
もちろん、最初から簡単に動いたわけではありません。
今回のWorkshopではCloudShare上にUbuntu環境が用意されていて、GitHubへのログイン、GitHub Copilotの設定、VS Codeの設定、Extension、MCP Serverなどを順番に設定していきました。
これがなかなか忙しい。
説明のスライドもかなり速く進みます。
正直、
「今どこを設定しているんだ?」
となる場面もありました。
さらにクラウド上のUbuntuをブラウザ越しに操作するので、画面が少し見づらいところもありました。
周囲からも「見にくい」という声が聞こえていました。
ただ、セットアップを抜けて実際にAIからVivadoが動き始めると、
「なるほど、これをやりたかったのか」
と少しずつ分かってきました。
自然言語からFPGA開発ツールを動かす
今回の演習自体はまだ基本的なものでした。
しかし、自然言語からVivadoを操作できるということは確認できました。
これが進んでいけば、例えば、
「このプロジェクトを合成して」
「Critical Warningを調べて」
「タイミングの悪いパスを確認して」
「Lintの問題を整理して」
といった指示をAIに渡し、Vivadoを動かして、その結果をAIに整理させるという開発が考えられます。
実際、WorkshopではVivadoのレポートをAIが解析し、問題を整理するようなデモも紹介されていました。
これまでなら、
Vivadoを操作する → レポートを見る → 問題を探す → ドキュメントを調べる → 修正する
という作業を人間が繰り返していました。
このループのかなりの部分に、AIが入ってくる可能性があります。

Vivadoが「裏側」に回るかもしれない
今回触っていて、個人的に一番強く感じたのはここです。
将来的には、Vivadoを人間が直接操作する時間がかなり減るかもしれません。
もちろんVivadoそのものが不要になるわけではありません。
合成もImplementationもBitstream生成も必要です。
ただし、それを人間がGUIから一つずつ操作する必要がなくなる可能性があります。
AIに、
「この設計を実装して、問題があれば調べて」
と指示すると、裏側でVivadoが動く。
VivadoはFPGA開発の中心的なツールであり続けるものの、人間からは少しずつ見えなくなっていく。
そんな未来もありそうです。
では、FPGAの知識はいらなくなるのか?
ここはまだ、そう簡単ではないと思います。
AIがVivadoを操作できても、
「その結果が本当に正しいのか?」
「その修正を採用してよいのか?」
という判断は別です。
クロック、CDC、リセット、タイミング制約、I/O、レイテンシ、リソース使用量など、FPGAにはFPGA特有の判断があります。
AIが、
「こう修正すればタイミングが改善します」
と提案しても、その修正によって仕様上許されないレイテンシが増えてしまえば困ります。
現時点では、
FPGAを知らなくても何でも作れる
というより、
FPGAを知っている人がAIを使うと、かなり強力になる
という段階なのではないかと感じました。
日本語については、これから確認したい
今回のLabでは英語でプロンプトを入力しました。
そのため、日本語でどこまで安定して利用できるのかについては、私はまだ十分に試せていません。
ただ、今回の仕組みではAIとVivadoの間にMCPが入っています。
AI側とVivado側が分離されているので、将来的には日本語を扱えるAIをフロント側に使うなど、いろいろな構成が考えられそうです。
この辺も今後試してみたいところです。
思ったより、ずっと先まで進んでいた
今回Workshopに参加する前は、
「VivadoにAI機能が追加される」
くらいに考えていました。
実際に触ってみると、少し違いました。
AIがVivadoについて説明するだけではなく、AIからVivadoを操作する方向へ進んでいます。
そして、その間をつないでいる重要な仕組みがMCPです。
ここまで来ると、単なる便利機能の追加ではなく、
FPGA開発そのもののやり方が変わる可能性がある
と感じます。
まだ一日のWorkshopを体験しただけなので、分からない部分もかなりあります。
ただ、VS Codeから自然言語で指示を出し、実際にVivadoが起動した瞬間、
「これはFPGA開発の使い方が変わるな」
と感じました。
次回は、今回何度も登場した MCP、Agent Skills、Knowledge Base、Vivadoの関係について、もう少し技術的に整理してみたいと思います。

