HDLをどうやって勉強するか?

HDLをどうやって勉強するか?

 どうやって勉強するのか? これは、何か新しい事を始める時に必ず問われることです。ギターを始めるには、どうするのか? 自動車を運転するにはどうするのか? いろいろな勉強方法がありますし、その人に合っているもの。合っていないもの。など様々です。

 ここでは、VHDLやVerilogを勉強するにあたって、どうやって勉強すれば良いのか? という回答の一例を記述いたします。

 どうやって勉強するのか? いろいろある。と書きましたが、じつは昔からそんなに多くの道は無いと思っています。どんなことを始めるにも、「人に聞く」「本を読む」のどちらかがスタートになるのではないでしょうか?

 「人に聞く」は、親に聞く。友人に聞く、先輩に聞く。先生に聞く。などがあると思います。無償・有償どちらの方法もアリです。VHDLやVerilogの場合には、IntelやXilinxの代理店が開催する無償セミナーもあります。これらの無償セミナーは一度参加される事をお勧めします。自分はMicroSemiを使っているので、IntelやXilinxではダメだ。と思わずに、どのメーカーのFPGAでも良いので、初心者向けのセミナーに参加してみてください。

 講師の方は初心者への説明が慣れている方ですので、わからない事には必ず答えてくれます。それに、VHDLやVerilogを学ぶにあたっては、メーカーは関係ありません。言語を覚えるのが目的ですし、IntelもXilinxも無償の開発環境を提供していますので、初心者が学ぶツールとしてはどちらも十分すぎる性能を持っています。シミュレータも無償で付いていますので、メーカーのセミナーで学んだ環境と同じ事を自宅でも復讐することができます。この方法は、手っ取り早く開発環境の使い方を学ぶには最適だと思います。

 本ブログでは、開発環境の話をほとんどしません。それは、すぐに陳腐化してしまうからです。ほぼ毎年新しいバージョンの開発環境がリリースされますので、開発環境の使い方を学ぶのは結構大変です。

 しかし、一度開発環境の使い方を学んでしまえば、バージョンアップしても使い続ける事はできるようになっています。各社、せっかく取り込んだユーザーに全く違う環境を与える。という事はしません。それでも数年に一度は大きなバージョンアップがあって、使い方がガラリと変わることがありますが、その時には諦めて勉強しなおすしかありません。

 仕事でVHDLやVerilogを使う。という事であれば、会社の先輩が教えてくれる。というパターンがあると思います。この時、疑問を後回しにしないようにするのが言語を学ぶ早道だと思います。いま、言語と書きましたが、VHDLもVerilogもハードウェアの記述言語です。最近はC言語でハードウェア設計ができるようになってきましたが、新たに学ぶ人がわざわざC言語を学ぶ必要はありません。迷わずVHDLかVerilogを学ぶようにしましょう。

 たしかにC言語でもハードウェア設計ができるようになってきましたが、それは、VHDLやVerilogが扱える人よりも圧倒的にC言語を扱える人の方が多いためで、ソフトウェアエンジニアがハードウェアも設計できるようにしたい。という目的でC言語を使うのは良いのですが、ハードウェアエンジニアがC言語でハードウェア設計するのはあまりお勧めしません。 

 「本を読む」のは独学の部類に入るのでしょうか? そして、「本を読む」の中に、最近ではネットで検索して、本ブログのようなページから知識を得る。というのも入ってきているのかもしれません。

 私は、仕事でHDLを必要として学びましたが、HDLの先輩が居なかったので、「人に聞く」ができませんでした。必然的に「本を読む」という方法で学び始めましたが、正確に言うとVHDLやVerilogを学ぶ前にABELを(独学で)学びました。

 独学で学ぶには本を購入する事になりますが、Verilogは以下のような本で学びました。

 ハードウェア言語を学ぶにあたって、どんな本を購入するのか。というのは、必ず問われる質問です。

 残念ながら、最近は書店が地方には無くなってきていて、VHDLやVerilogを学ぶに適した書籍を試読(立ち読みとも言う)することは不可能になってきました。そうなるとネット通販で購入する以外にはありません。

 初心者はとりあえず、1冊買ってみるしかないと思います。これは不思議なのですが、世の中の開発言語の本(C言語、JavaやVHDL、Verilogなど)はなぜか初心者を無視した内容のものがありません。もちろん、中には上級者向けの本もあるのでしょうが、大半は初心者にも読めるようになっています。C言語やJavaほどになれば、完全に上級者向けという本があっても良いと思うのですが、なかなか見つかりません。

 なので、VHDLやVerilogで、完全な上級者向けの書籍というのを見たことがないので、何冊買っても本の半分は重複した初心者向けの記述になっています。

 話が脱線しますが、ハードウェア設計の書籍でもハンダ付けの方法なんていう記述があるのには、誰が読むことを想定しているのか、編集者のセンスを疑います。

 とにかく、VHDLやVerilogの本を1冊購入して、それをバイブルとして設計を初めてください。その本が物足りなくなった時には、中級者になっていると思います。

 最後に、実は私は諸先輩のブログを非常に参考にさせて頂いています。正直いって、ブログやネットがなければハードウェア設計者としてここまで続かなかったと思います。なので、ある程度の基本は書籍で学んで、その後は疑問に思ったことをネットで検索していく。というのは、今の学び方なのではないかと思います。