FLATSTONE's Blog

ギター好き中年のモノローグ

FPGA勉強会に行ってきた

今回、参加したのは下記の勉強会です。

仕事がどうしても孤立しがちなので、こういった他の技術屋さんの動向を知るにはいい機会だったのですが、 オレには敷居が高過ぎだったようで、ついていくのに青色吐息でした。

ロジック屋だのソフト屋だの言っている状況では無い

組み込み系はFPGA、特にZynq等のSocが入り込む事で、FPGAとソフトウェアとの境界(というか役割分担)が 曖昧になってきているという印象。 で、何が起きているかというと、

  • ロジック側が何処まで検証するか
  • ソフトウェア側が何処までデバッグするか

を巡って醜い争いが発生するわけです。フルスタックエンジニアであれば、これらの問題が無いのですが、 一体、業界内でどれだけいるんですかねぇ?フルスタックの人って。

今回の勉強会では、ある程度クロスオーバーする人でなければ今の組み込み系の先端を進めない、って事がわかりました。 まあ、主催したVengineerさんも発表したikwzmさんもスゲーわな。 オレの本職は組み込み系のソフト屋だけど、Linuxカーネル部分に手を入れて必要な機能を実装するなんて、殆どやらない (未サポートのデバイスのドライバを追加するぐらい)です。

なので、ソフト屋はロジックを知らないのでロジック屋に丸投げ、ロジック屋はソフトを知らないのでソフト屋に丸投げ、といった 擦り合いは通用しなくなって来ています。開発のリードタイムが非常に長い、枯れた技術しか使わない、といった時間に対する コストが極端に低いところであれば話は別ですが、殆どの開発は時間との勝負ですから、クロスオーバーは当たり前になるのでしょう。辛いw

Pythonは必須?

参加者は若い人が2/3、年寄りが1/3で、当然、オレは年寄りなのですが、やはり、新しい技術への食いつきというか、飲み込みは 相当に遅くなって来ています。特定の分野にしか興味が沸かないという意味ではエンジニアとしてどうなのか?と家に戻ってから ちょっと考え込んでしまいました。

と、いうのも、若い技術屋さんはほぼPythonを普通に使えて当たり前の状況であり、オレのようにインデント構文が嫌いだから なるべく触らないようにしていた年寄りは取り残されてしまっています。Pythonは相当昔に触った程度で、その頃はRubyも存在 していなくて、スクリプト言語といえばPerl一択。Pythonは記述も冗長でライブラリも少なかったという印象しか無かったです。 今の人気ぶりからは想像もつかないですが、そういう時代から生き残ってきた言語なのだから、これからも使われ続けるだろうし、 再学習しないとダメかなぁ。

でも、RTLは書きたくない

業務でSystemVerilogの検証をやっていたので、RTLはとりあえず読めるのですが、積極的に記述したいとは思わないです。 なので、高位合成とかを試したものの、ハードウェアとしてまともな回路が生成できるような記述にしないと合成出来ないケースが 多く、結局、RTLで書いた方が早いという結論になりました。高位合成って10年、20年というスパンで研究が続けられている分野です が、一向にソフト屋が触れるものが出てこないです。

そうなると、PythonベースのRTL生成ツールとか、Javaベース、Scalaベースのものとかを調査してみるしかないかなぁと。ただし、 高位合成で生成するRTLの妥当性を見るためには結局、RTLがわからないと判断できないので、RTLからは逃げられないです。 初期のVerilogがCADENCEから出て何年?VHDLの規格が出て何年?いつまで続くRTL?

組み込み系をやる限り、逃れられないのかなぁ。