找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3764|回复: 1
打印 上一主题 下一主题
收起左侧

Verilog中阻塞赋值和非阻塞赋值的正确使用

[复制链接]
跳转到指定楼层
楼主
ID:72008 发表于 2015-1-12 02:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Verilog中有两种为变量赋值的方法。一种叫做连续赋值,另一种叫做过程赋值。
    过程赋值又分为阻塞赋值和非阻塞赋值。
    阻塞性赋值使用“=”为变量赋值,在赋值结束前不可以进行其他操作,在赋值结束之后继续后面的操作。这个过程就好像阻断了程序的运行。
    非阻塞赋值使用“<=”为变量赋值,在执行赋值语句时,仅仅对“<=”右边的值进行评估,但并不马上执行赋值,然后继续执行后面的操作。这个过程就好像没有阻断程序的运行。
    多条阻塞赋值语句是顺序执行的,而多条非阻塞赋值是并行进行的,这就是两者的区别。
    坚持做到以下列出的注意事项,就可以基本上避免使用阻塞赋值和非阻塞赋值不当引起的错误。
    1.在使用always块描述组合逻辑时,使用阻塞赋值;在使用always块描述时序逻辑时,使用费阻塞赋值。
    2.不要在同一个always块内同时使用阻塞赋值和非阻塞赋值。
    3.无论是使用阻塞赋值还是使用非阻塞赋值,不要再不同的always块内为同一个变量赋值。
    4.在程序中不要使用0延时。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:83553 发表于 2016-3-7 22:44 | 只看该作者
4.在程序中不要使用0延时。
--------不解其意,请教楼主。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表