2011年6月20日月曜日

Verilog入門

Verilogとは

ハードウェア記述言語の一種。
正式にはVerilog-HDL(Hardware Description Language)と呼ぶ。
もとはシミュレーション用の言語だったが、回路設計もできるようになった。
CやPascalの構造に近いため、とっつきやすい(そうだ)。
他のメジャーなHDLとしてVHDLが挙げられる。

最近はLSIの微細化・高集積化に伴い、記述量が増大している。
Verilog2001やSystemVerilog?はVerilog(95)よりももっと抽象的に書けるので
記述量が減る。(例えば, Verilog2001のgenerate文) C言語から回路を記述できる高位合成ツール(System-C, Bach-C, Hendel-C, Cyber-Cとか)もあるが, Verilogをやっておけば少なくとも数年間は需要があると思う。筆者の私見では, 高位合成ツールが普及してもVerilogは無くならないと思う。 Cが普及した今でもアセンブラが無くならないように。

もとはゼミの学生さんの教材用として作りました。
なんというか…初心者向けのサイトや本がなかなかみつからなくて。
私は以下の順で教えようと思っています。

まず文法を必要なものだけサラッと教える(ソースを読むため)
設計法(セオリー)をおしえる
とにかくverilogを書かせて体で覚えさせる
慣れてきたら検証もさせる
一通り身についたら細部を教える(C言語から本格的な回路を設計する方法)

一般のverilog本は

文法リファレンス
設計法(これは少ない)
回路集

に分類されると思います。とくに文法リファレンス→回路集という流れが多いような…。
肝心の設計法について述べている本が少ない気がします。
(現場で教えるべきなのでしょうか?)
この入門ではこれらを体系的にまとめようと思ってます。

言語を習得するにはとにかく書くことが必要と思ってます。
応用編では色々回路を作ってみましたので、自分で動作させて楽しんでください(^^)

なお、この入門では以下の知識があるとスムーズに進むと思います。

論理回路の知識(AND,ORやフリップフロップなど)
C言語の知識
電子回路の知識

このページはリンクフリーです。使えると思ったら教材にしていただいてもかまいません。一言いっていただければ、さらにサンプルがありますから提供できると思います。 (Altera版も用意してます) またバグや改善点があれば教えていただけるととても嬉しいです。



Verilogは元がシミュレーション用とあってか、検証も強い。

Reference Link