ためになるホームページ お問い合わせ




TOP > Verilog > if文
if文
verilogでのif文は、functionおよびalways内で記述できる。
(書式)
  if (条件式)
    //処理
  else if (条件式)
    //処理2
  else
    //処理3

function内でのif文の例
/////////////////////////////////////////////////////////////////////////////////
//TESTBENCH
//  テストベンチ
/////////////////////////////////////////////////////////////////////////////////
module TESTBENCH;

reg  SEL;
wire XOUT;

MODULEIF MODULEIF(SEL, XOUT);

initial begin
   $dumpfile("test.vcd");
   $dumpvars(0, TESTBENCH);
   $monitor ("%t: SEL = %b XOUT = %b", $time, SEL, XOUT);
   #10  SEL = 0;
   #10  SEL = 1;
   #10;
   $finish;
end

endmodule



/////////////////////////////////////////////////////////////////////////////////
//if文
/////////////////////////////////////////////////////////////////////////////////
module MODULEIF(SEL, XOUT);
input SEL;
output XOUT;

function IFTEST;
  input sel;
  if (sel == 1'b0) IFTEST = 0;
  else             IFTEST = 1;
endfunction

assign XOUT = IFTEST(SEL);

endmodule


always内でのif文の例
/////////////////////////////////////////////////////////////////////////////////
//TESTBENCH
//  テストベンチ
/////////////////////////////////////////////////////////////////////////////////
module TESTBENCH;

reg  SEL;
wire XOUT;

MODULEIF MODULEIF(SEL, XOUT);

initial begin
   $dumpfile("test.vcd");
   $dumpvars(0, TESTBENCH);
   $monitor ("%t: SEL = %b XOUT = %b", $time, SEL, XOUT);
   #10  SEL = 0;
   #10  SEL = 1;
   #10;
   $finish;
end

endmodule



/////////////////////////////////////////////////////////////////////////////////
//if文
/////////////////////////////////////////////////////////////////////////////////
module MODULEIF(SEL, XOUT);
input SEL;
output XOUT;
reg XOUT;

always@(SEL)
begin
  if (SEL == 0) XOUT = 0;
  else          XOUT = 1;
end

endmodule






Copyright 2007 ためになるホームページ All Rights Reserved.