#实验一 二选一
module two_1(in1,in2,cho,out);
input[3:0] in1,in2;
output[3:0] out;
reg[3:0] out;
input cho;
always@*
begin
if(cho==0)
out=in1;
else
out=in2;
end
endmodule
module two1_test();
reg[3:0] in1,in2;
reg cho;
wire[3:0] out;
two_1 uu1(.in1(in1),.in2(in2),.cho(cho),.out(out));
initial
begin
in1=1;in2=0;cho=0;
#100in1=0;in2=1;cho=0;
#100in1=1;in2=0;cho=1;
#100in1=0;in2=1;cho=1;
end
endmodule
#实验二D触发器
module dff(clk,d,q);
input clk;
input[7:0] d;
output[7:0] q;
reg [7:0]q;
always@(posedge clk)
begin
q <= d;
end
endmodule
module dff_tb;
wire[7:0] q;
reg clk;
reg[7:0] d;
always
begin
# 10 clk = ~clk;
end
initial
begin
clk = 1'b0;
d =8'b00000000;
#10 d = 8'b00000011;
#10 d = 8'b00000000;
#10 d = 8'b00000111;
#40 d = 8'b00001111;
end
dff u1(.clk(clk), .d(d), .q(q));
endmodule