HOME Corporate Product Verilog VHDL Link Contact Site map



if,case,casexはalways文,function文に記述可能です。
以下に内容を示します。



*if文
  • 文法(基本型)
            if (条件1) begin
                 処理文 ;
            end else if (条件2) begin
                 処理文;
            end else begin
                 処理文;
            end;
    
  • 条件に基づいて実行の有無を決定する
  • 最初の条件から優先処理される
  • 条件式はbooleanタイプでなければいけない
  • 処理分が条件に対し1つの場合begin,endは省略できる


*case文
  • 文法 (基本型)
            case (シグナル) 
                定数:処理文;
                定数:処理文;
                定数:処理文;
                default:処理文;
            end case ;
    
  • 起こりうる条件をすべて定義しなければならない

    "default”は条件に当はまらない場合の回避処理



*casex文

  case文ではX、Zも含めて一致を比較します。それに対しcasexを用いれば
  X,Zをdon't care、つまり比較対象外とすることができます。

    casex (sel)
        2'b00:  out  = in1;
        2'b01:  out  = in2;
        2'b1x:  out  = in3;
    endcase

sel[1]が1ならばsel[0]の値にかかわらずin3を実行する。
    casex (enc)
        8'b1xxx_xxxx:   out  = 3'h7;
        8'b01xx_xxxx:   out  = 3'h6;  
        8'b001x_xxxx:   out  = 3'h5;
        8'b0001_xxxx:   out  = 3'h4;
        8'b0000_1xxx:   out  = 3'h3;
        8'b0000_01xx:   out  = 3'h2;
        8'b0000_001x:   out  = 3'h1;
        8'b0000_0001:   out  = 3'h0;
        default      :       out  = 3'hx;
    endcase



Back

HOME Corporate Product Verilog VHDL Link Contact Site map