verilog中task的用法
时间:06-26 10:00 阅读:10493次
*温馨提示:点击图片可以放大观看高清大图
简介: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.