Verilogでいこう!

目次

Verilogとは

 Verilog−HDLはAutomated Integrated Design Systemsの Phil Moorbyという人が考案しました。もともとはVerilog-XLというシミュレーターを制御するための言語として考案されたもので当時は論理合成に使うことなど考えてもいませんでした。Verilog-XLは当時としては最も高速を誇ったシミュレーターで日本でも多くの会社に導入され、この会社は多いに繁栄しました。のちにケイデンス社に買収されてしまいます。この間Verilogは1社の占有物でありました。VHDLとの対抗もあり、ケイデンス社は1990年にこの言語の仕様を公開し、そのときに推進団体であるOVI (Open Verilog International) も創設されました。その後いろんなメーカーがVerilog対応のシミュレーターの市販を開始し、1995年にはIEEE1364として規格化されました。
 最新版は2005年のIEEE 1364-2005になります。

Verilogの特徴

  1. シミュレーターの制御用言語が起源で、論理合成機能は後付け。
  2. 言語形態はCに良く似ている。
  3. 正規表現が使用できる。
  4. トランジスタレベルからの記述機能をもつ。
  5. 電気信号は4値で表現される。
  6. 文法規則は比較的緩やか。
  7. VHDLに比較して言語仕様が複雑。

Verilogシミュレーター

Verilogのシミュレーターは市販のものが数万円程度で出回ってますし、FPGAメーカーのサイトから無料のものがダウンロードできます。性能はさまざまです。ここではフリーのソフトを紹介します。

  • icarus Stephen Williams氏によって作成されたフリーのVerilogシミュレーター。
GUIは持たないがGTKwaveで波形表示はできる。
systemverilogまでサポート
本家はこちら
  • cver かつてはPragmatic C社で開発されていたが、現在はsourceforgeに移管されている。
Verilog2001までサポート
本家はこちら

Verilogの例文

module toplevel(clock,reset);
  input clock;
  input reset;
 
  reg flop1;
  reg flop2;
 
  always @ (posedge reset or posedge clock)
    if (reset)
      begin
        flop1 <= 0;
        flop2 <= 1;
      end
    else
      begin
        flop1 <= flop2;
        flop2 <= flop1;
      end
endmodule