(一)基本门编写和仿真

(一)基本门编写和仿真

8位非门

module inv(A,Y);
input[7:0] A;
output[7:0] Y;
assign y=~A;
endmodule

module inv_tb;
reg  aa;  //输入的变量都定义成reg
wire yy;//输出的变量定义为wire
inv inv(.A(aa),.Y(yy));
initial begin
				       aa<=0;  //reg变量赋值的时候要使用带箭头的等号
		#10 aa<=0; 
		#10 aa<=1;
		#10 aa<=1; 
		#10 $stop;
end
endmodule

与非门


`timescale 1ns/10ps

module and_not(A,B,Y);
input A;
input B;
output Y;
assign y=~(A&B);
endmodule

module and_not_tb;
reg aa;  //输入的变量都定义成reg
reg bb; 
wire yy;//输出的变量定义为wire
and not and_not(.A(aa),.B(bb).Y(yy));
initial begin
		       aa<=0; bb<=0; //reg变量赋值的时候要使用带箭头的等号
		#10 aa<=0; bb<=1;
		#10 aa<=1; bb<=0;
		#10 aa<=1; bb<=1; 
		#10 $stop;
end
endmodule

四位与非门


`timescale 1ns/10ps

module and_not_4(A,B,Y);
input [3:0]  A;
input [3:0] B;
output [3:0] Y;
assign y=~(A&B);
endmodule

module and_not_4_tb;
reg [3:0] aa;  //输入的变量都定义成reg
reg [3:0] bb; 
wire [3:0] yy;//输出的变量定义为wire
and_not_4  and_not_4(.A(aa),.B(bb).Y(yy));
initial begin
		       aa<=4'b0000; bb<=4'b0000; //reg变量赋值的时候要使用带箭头的等号
		#10 aa<=4'b0100; bb<=4'b0110;
		#10 aa<=4'b1110; bb<=4'b0001;
		#10 aa<=4'b0110; bb<=4'b0000; //注意多位的时候需要用‘
		#10 $stop;
end
endmodule
上一篇:codeforces1567B


下一篇:CF749C