2008年12月4日木曜日

verilog

//file name : and_2.v
...どうやら、モジュール名に"and"は使えないみたい


module and_2(A,B,X);...and_2というモジュール
input A,B;...変数A,B
output X;...(出力の)変数X

assign X = A&B;...XはAとBの論理積、という宣言(?)

endmodule...モジュール終了


//file name : and_2_tb.v...テストベンチファイル

`include "and_2.v"...上記のand_2.vの読み込み

module and_2_tb();
reg A,B;...レジスタにAとBの値を記憶
wire X;...出力Xをwireで結線

and_2 and_2(.A(A),.B(B),.X(X));

initial begin
A <= 0;
B <= 0;
#50;
$display("[%5d] A:%b,B:%b,X:%b",$stime,A,B,X);

A <= 0;
B <= 1;
#50;
$display("[%5d] A:%b,B:%b,X:%b",$stime,A,B,X);

A <= 1;
B <= 0;
#50;
$display("[%5d] A:%b,B:%b,X:%b",$stime,A,B,X);

A <= 1;
B <= 1;
#50;
$display("[%5d] A:%b,B:%b,X:%b",$stime,A,B,X);

$finish;
end

endmodule

0 件のコメント: