長崎出身のS氏がSFLとFPGAを用いてファミコンを作成し、彼のサイトでその設計経験を公開している。
S氏は以前から知っていたし、ファミコンを作ったことも知っていたが、サイトを発見したのは偶然であった。たまたま、SFLの関連サイトを検索していたら、彼が私のツール(sfl2vl)と他のツールを比較するページを作っていて、目に留まったのであった。
当初、彼はSFLをVHDLに変換してFPGAに合成していたのであるが、sfl2vlのVHDLへの合成結果にXilinxのツールで通らない構文があって手修正が必要だったらしい。Allianceのvasyではかなりいい加減な構文でも平気で通ってしまうので、単純に確認漏れであり、更新をしたとサイトに書かれていたメールアドレスを頼って彼に連絡をした。
その後、数通やり取りした後、彼は合成のベースをVerilogに変更した。
中間言語として使うにもVHDLは不便であり、この変更は彼のためにもなっただろう(笑)
内部モジュールは全てSFLで記述し、Verilogに変換して合成しているが、最上位のモジュールだけまだVerilogのまま(ちょっと前までVHDLだったけれど、XilinxのツールがVHDLとVerilogを混在させるとおかしなエラーを起こすので、Verilogに書き直した)だけれど、これもsfl2vlの declare interface宣言を用いれば容易にSFLで書き下ろせるので、彼にはぜひ全てSFLで見通しよく書き下ろして欲しいものだ。
色々なところでSFLの面白事例を集め、紹介していくのもいいかもしれない。