task在综合的时候不能带有时序控制,它里面的变量都是局部变量,如果想用task持续的改变一个变量,需要在他的外部定义一个全局变量。
例如:
task taskA(input a,output b);
b=1;#100;
b=a;#100;
b=0;#100;
endtask
一旦调用这个task,返回的值将是0。
在外部定义全局变量
reg b;
task taskA(input a);
b=1;#100;
b=a;#100;
b=0;#100;
endtask
如果这样做就不一样:b前100个延时是1,中间100个延时是a的值,后面之后是0.
文章评论(0条评论)
登录后参与讨论