#delay和@和wait的时延区别
①、#delay
只要延时时间到来或结束,就继续执行后面的程序。
②、@(var1,var2,...) //可以有多个敏感变量,电平或边沿
begin
expression1;
expression2;
.....
end
other_expression; //后续代码
只要var1,var2,...任何有个变量的电平发或边沿发生变化,就程序马上执行begin-end块里面的代码。若var1,var2,...没任何一个变量的值发生变化,则程序跳过begin-end块里面的代码,而执行other_expession代码,即执行后续程序,该语句可以综合。
③、Wait(var)
begin
expression1;
expression2;
.....
end
other_expression; //后续代码
当avr为真(非0)时,程序执行begin-end块里面的代码,然后继续执行other_expression代码。然而,当avr为假(0,x,z)时,程序暂停,一直等待avr变成真之后再继续执行,该语句不可以综合。可以像下面一样写代码:
Wait(avr) @(a,b,c,d); //理解上面的道理,这句不难理解。
④、总结如下:
#dalay:等到延时时间的到来(结束)。
@(var):等到avr发生变化。
Wait(var):等到var变为真(非0值)。
优质内容筛选与推荐>>