新闻  |   论坛  |   博客  |   在线研讨会
force and release
mayer | 2009-08-02 14:20:00    阅读:1532   发布文章

force and release

 

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

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客