基础门逻辑--采用结构化描述方式
电路图如下:
顶层文件如下:
module logic_gate(
a,b,out_or,
out_and,out_not
);
input a,b;
output reg out_or;
output reg out_and;
output reg out_not;
/*
and and_inst(out_and,a,b); //采用结构化描述方式
or or_inst(out_or,a,b);
not out_not1(out_not,a);
*/
/*
assign out_and =a & b; //采用流描述方式
assign out_not = ~a;
assign out_or = a | b;
*/
always @(*) begin // 采用行为描述方式,注意,always中的变量必须定义为reg型。
out_and = a & b; //always @(*):当输入变量中的任一个有变化时,响应输出
out_or = a | b;
out_not = ~a;
end
endmodule
测试文件testbench:`timescale 1 ns/1 ns
module logic_gate_tb;
reg a;
reg b;
wire out_and;
wire out_not;
wire out_or;
logic_gate logic_gate0(
.a(a),
.b(b),
.out_or(out_or),
.out_and(out_and),
.out_not(out_not)
);
initial begin
a =0;
#50;
a =0;
#50;
a =1;
#50;
a =1;
#50;
end
initial begin
b=0;
#50;
b=1;
#50;
b=0;
#50;
b=1;
#50;
end
endmodule
激励信号与响应信号:
a
|
b
|
And
|
Not
|
Or
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
1
|
1
|
0
|
0
|
0
|
1
|
1
|
1
|
1
|
0
|
1
|
波形图:
好了,很简单的~
文章评论(0条评论)
登录后参与讨论