加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

verilog中的延时

(2013-04-09 10:52:14)
标签:

fpga

verilog

延时

分类: 不敢说是技术

一般来说延时有两种写法,如下:

#N Q = A+B

Q = #N A+B;

第一种写法的意思是:延时N单位时间后,计算A+B的值并立即赋值给Q

第二种写法的意思是:立即计算A+B的值,并且保持N个单位后赋值给Q

也就是两种写法的区别是A+B的计算时间是不同的。比如在M时刻语句执行,则第一种写法QM+N时刻得到此时的A+B的值,第二种写法QM+N时刻得到M时刻的A+B的值。

再加上有三种赋值语句(阻塞式、非阻塞式、持续赋值)可有六种的延时的写法,但是持续赋值中第二种写法是不允许的,如assign Q = #10 A+B;因为需要保持A+B的值,这表现出记忆性,不符合持续赋值的表现(组合逻辑)。五种写法在仿真中的表现各不相同。

特别说明一下连续赋值的写法,只能是assign #N Q = A+B;但是在仿真中表现出来的是计算A+B的值并在N单位时间后赋值给Q,与前面说的不同,并且若A+B的值持续时间小于N的话会被忽略。

其他四种情况都是符合前面所述的,结合阻塞式和非阻塞式复制的特点可以推导出来,有空再详细的写一下。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有