原创 force and release

2009-7-30 21:20 4119 4 4 分类: 汽车电子

module add(a,b,c);


input [1:0] a;
input [1:0] b;
output [2:0] c;


assign c = a  + b;
endmodule


 


module test();


reg [1:0] a1,b1;
wire [2:0] c1;


add u_add(.a(a1),.b(b1),.c(c1));


initial
 begin
   a1 = 2'b1;
   b1 = 2'b1;
  
   #20 force u_add.a = 2'd2;
   #10 release u_add.a ;
end


end


当在20ns的时候,由于#20 force u_add.a = 2'd2;所以add内部的a变成了2'd2,但是当再过10ns的时候
由于#10 release u_add.a ;进行释放,所以test中的a1连接到add的a端重新生效,add中的a重新变成了1。


 


 


initial


begin


#1 force a = 1;   //a =1


#2 release a;  


#1 assign a = 2;  //a =2


#1 force a = 3; // a =3


#2 release a;   //a = 2 ,因为之前assign a = 2,相当于将2硬链接到a上,release的时候,硬链接开始有效。


end

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条