reg A,B;
wire C1,C2;
reg C3,C4,C5,C6;
initial begin
A =0; B =0;
C3 =0; C4 =0; C5 =0; C6 =0;#100;#6 A = 1;#2 A = 0;#1 A = 1;#1 A = 0;#2 A = 1;#6 A = 0;
end
// 先等待后计算
// 先计算后等待
// 忽略等待内的变化
// 不忽略等待内的变化
// 三种写法1个意思。
//1.先等待5周期,后计算。
// 1.1等待中的变化忽略。再取延时5周期后此时的A\B
assign #5 C1 = A +B;
always @(*) begin
#5 C3 = A +B;
end
always @(*) begin
#5 C5 <= A +B;
end
// 1.2等待中的变化不忽略。
assign C2 =#5 A +B;//非法 涉及存储
//2.后等待,先计算A+B
// 2.1等待中的变化忽略。
always @(*) begin
C4 =#5 A +B;
end
// 2.2等待中的变化不忽略。
// 时刻跟踪原始信号,延时固定的值。是我们理想中的线路延时。不会过滤。
always @(*) begin
C6 <=#5 A +B;
end