GUI からの解放
この Wiki がもたらす最大のメリットはGUI からの解放です。GUI から解放されるメリットとしては、
これらが挙げられます。
SSH 越しで開発できる
まず、SSH 越しで開発ができる様になるため開発機としてのクライアントを選ばなくなります。さらに SSH 先のホストに処理をさせることになるため、手元のクライアント側の OS の処理が重くなることはありません。
リモート開発ができないために手元の PC のスペックを上げないといけなかったり、スペックが高いデスクトップ PC を持っているのに出先での開発はスペックを抑えたノート PC でというケースも珍しくないと思います。さらに言えばコードの管理も端末間で取る必要が出てくるため、git を使っていない場合はファイルのコピー&ペーストをせざるを得なくなり、結局バージョン管理が崩壊し、動いていたコードが行方不明になるというケースも多々あると思います。(少なくとも私は何回も経験しました。)
SSH 越しで開発ができる様になることで、ホスト PC でソースコードを一元管理することができます。
RDP が最小限になる
SSH で開発をしない場合、RDP(Remote Desktop Protocol)を行って開発することが多いかと思われます。RDP は良いソリューションだとは思いますが、通信量を大量に消費します。私の場合は、10 分くらいスマートフォンのテザリングをしただけでスマートフォンが発熱し、通信制限にかかりかけました。
RDP は通信環境が整った場所では問題ないと思われますが、通信環境が悪い場所ではやはり SSH が良いと思いますし、git で管理する場合はあらかじめclone
、pull
しておくだけで、通信環境がない場所でも開発を行うことができます。またIcarus VerilogやVerilatorなどの処理系を用いることで、Vivado を使わずともテストベンチを回すことができるため、どのクライアントにも数十 GB の Vivado を入れる必要もなくなります。ただしテストできるモジュールの規模は、ベンダー依存のモジュールを除く必要があるため、どうしても小規模にはなります。
最小限と表記している理由は、block design などのどうしても GUI を使わないといけない場面も少しはあるからです。しかし、block design さえもエクスポートが可能なため、最初に design を組み上げたらその先は必要ありません。最初から Vivado が入っている PC を使っていれば、その時だけ Vivado の GUI を開くだけです。
コードエディタで最高の開発体験を得ることができる
FPGA 開発をする上で VSCode や Vim などの自分好みのエディタで開発している人が多いと思いますが、GUI を使用した開発を行っていると、エディタと GUI を行き来することになります。
このボタンをいやになるほどにみてきた人も少なくないのではないでしょうか。このボタンは Vivado 外のエディタなどからファイルの変更があった場合に出るボタンで、このボタンを押すことで差分を吸収することができます。逆に言えばこのボタンを押さない限り実際に読み込まれるコードがどっちなのかわからないのです。
また独自 IP を開発している場合も同じです。IP Packager にて編集を行った場合は、ファイルセットなどの更新後に Re-Package IP をし、組み上がっている Block Design の画面でも Update IP を行う必要があります。Update しない場合は、IP が前のバージョンで互換性を維持するためにロックがかかってしまいます。
これらは Batch Mode で実行することにより、コードも IP の更新もコードを読み込むところから始まるため、必要ありません。
つまり大袈裟に言えば一文字変えて GUI ぽちぽちを繰り返すということが必要なくなるのです。
さらにエディタの Linter や Formatter の支援を受けることにより、最高の開発体験を引き出すことができます。