查看: 150|回复: 3

[原创] 锆石A4学习笔记之阻塞赋值和非阻塞赋值

[复制链接]

9

主题

0

好友

138

积分

童生

Rank: 2

  • TA的每日心情
    开心
    2016-8-26 16:22
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-8-25 10:52:15 |显示全部楼层
    对于Verilog HDL语言来说,什么时候使用阻塞赋值以及什么时候使用非阻塞赋值一直是一个很难理解分辨的问题,困惑了很多入门学者甚至是有经验的工程师,下面就来说说自己学习的理解。

    阻塞赋值(=)是顺序执行的,也就是说,写在前面的语句先执行,写在后面的语句后执行,一般用于组合逻辑电路。组合逻辑电路在逻辑功能上的特点是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。组合逻辑电路一般有以下两个特点:1,输入与输出之间没有反馈通道。
    2,整个电路中没有记忆功能。
    例如ut_1=putin;
            out_2=out_1;
    这里的out_1的值等于putin的值,同时out_2的值也等于putin的值,out_1变,out_2也会跟着变。

    非阻塞赋值(<=)是并行执行的,也就是说,写在前面的语句和写在后面的语句同时执行,跟书写顺序没有关系,一般用于时序逻辑电路。时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当前的输入信号,而且还取决于电路原来的状态。因为非阻塞赋值是并行执行的,多条语句一同执行,赋值的时候有电路的原始状态有关,符合逻辑电路的时序特点,所以用于时序逻辑电路。
    例如ut_1<=putin;
            out_2<=out_1;
    这里的out_1的值等于putin的值,但是out_2的值却不等于putin的值,而是等于out_1被改变之前的值,即使out_1在一个时钟周期中被改变了,但是在这个周期内却改变不了out_2的值。

    回复

    使用道具 举报

    49

    主题

    1

    好友

    1088

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    开心
    前天 22:03
  • 签到天数: 116 天

    [LV.6]常住居民II

    发表于 2016-8-25 12:11:37 |显示全部楼层
    写的不错,学习了。
    回复

    使用道具 举报

    5

    主题

    1

    好友

    205

    积分

    秀才

    Rank: 3Rank: 3

    该用户从未签到

    发表于 2016-8-25 15:48:27 |显示全部楼层
    路漫漫其修远兮,楼主很认真
    回复

    使用道具 举报

    2

    主题

    0

    好友

    56

    积分

    童生

    Rank: 2

  • TA的每日心情
    开心
    2016-9-14 16:29
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    发表于 2016-8-26 11:03:48 |显示全部楼层
    不错不错!
    回复

    使用道具 举报

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

    关闭

    站长推荐上一条 /6 下一条


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-7 00:07 , Processed in 0.124674 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部