INDEX|前頁次頁

3.データタイプ

3.1 電気信号の取り得る値。

      Verilogでは電気信号がとる値は下記の4種類です。


    0    - 論理の0, もしくは真理値の偽を表します。
    1    - 論理の1, もしくは真理値の真を表します。
    x、X - 信号の状態が1、0のどちらかですが、どちらか定かでない状態を表します。
    z、Z - ハイインピーダンス状態を示します。

      注意: Xは通常"不定"と訳されますが、1と0の中間の値をとる訳ではありません。実際の回路では1か0のどちらかになります。ただ予測不可能なだけなのです。


3.2 Verilogの回路記述の例

  まずは最初にVerilogの回路記述の例を見てもらいましょう。moduleと云うのが回路の単位となります。
  下図の簡単なロジックをVerilogで記述してみましょう。


sample1

 module sample1(out1,in1,in2,clk);     //moduleの宣言。入出力信号名の宣言(1)
  input in1,in2,clk;                   //入出力信号の方向の宣言(2)
  output out1;                            //入出力信号の方向の宣言(3)
  wire sig1;                              //中間信号のタイプ宣言
  reg out1;                               //出力信号のタイプ宣言
  initial  out1=1'b1;                     //初期値の設定(4)
  assign   sig1=in1 & in2;                //組合せ回路の記述(5)
  always @(posedge clk)                   //フリップフロップを含む回路の記述(6)
     begin
          out1<=sig1;
     end
  endmodule                             //ここで回路の記述は終了します(7)




各部の解説
 (1)module 宣言
    Verilogではmoduleが回路記述の単位になります。この行では外部とやりとりする信号を宣言します。
   括弧の中は全ての入出力信号を宣言しなければなりません。

 (2)入出力 信号の方向の宣言
    入出力信号の方向を宣言します。

 (3)信号のタイプ 宣言
   Verilogでは回路で使用する信号のタイプを宣言しなければなりません。タイプの名前はあらかじめ決められています。ここでは信号線を示すwireとレジスタを示すregを使用します。inputの信号はwireと決められているのであえて宣 言する必要はありません。

 (4)initial 文
     ここでの記述はシミュレーションのときに1回だけ実行されます。論理合成の対象では有りません。ひとつの回路に幾つ有ってもかまいません。

 (5)assign文
    組合せ回路の記述に用いられます。ひとつの回路に幾つ有ってもかまいません。

 (6)always文
     フリップフロップの様に特定の信号が変化したときにのみ、出力信号が変化する回路を記述するのに使用します。

 (7)endmodule
      記述の終りを示します。
   

3.3 信号のタイプ

 Verilogで扱う信号には大きく分けて二通りあります。

   一つは単に信号を伝達するだけのもの。電線等がこれに当たります。(ネットタイプ)
   もう一つは値を記憶する機能を持つもの。コンデンサやフリップフロップがこれに当たります。(変数タイプ)