在Verilog语言中怎么像C语言那样延时?例如在程序中用#10不能逻辑综合吧?用#不行的话应该怎么办?

如题所述

代码程序中的#10是不能被综合的,“#”常被用在Testbench中,代码中可以使用D触发器延时也就是使用“<=”进行赋值,for一般不用在verilog的代码中,因为面积可能很大,有的综合器也可能综合不了它,verilog中可以用计数器代替之。用D触发器延时一次也只能是一个时钟,也就是一个时钟周期的时间,你要长时间的延时那只能用计数器了,可以用时钟上升沿产生计数器,计到想要的时间了给一个高电平就行了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-09
用计数器做延时功能!~懂不?追问

我的板子是50MHz的,可以用for语句吗?还有一个机器周期是不是50兆分之一秒??

追答

最好不要用for语句,占用资源太多。你板子的时钟是50MHz,那么一个时钟周期就是5兆分之一秒,你需要多长时间就计数多少个时钟周期就可以了.....

相似回答