查看: 179|回复: 2

[原创] 从零学习FPGA深入理解阻塞赋值和非阻塞赋值语句(我的实....

[复制链接]

19

主题

2

好友

370

积分

秀才

Rank: 3Rank: 3

  • TA的每日心情
    开心
    2016-9-21 20:33
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2016-7-22 22:54:16 |显示全部楼层
    学习FPGA我的第五实验记录一下
    理解阻塞赋值和非阻塞赋值语句(写写我自己的理解心得)
    在Verilog HDL 语句中,信号有两种赋值方式
    1.非阻塞赋值方式(b<=a;)
    2.阻塞赋值方式(b=a;);
    现在先理解阻塞和非阻塞:
    阻塞”是指在进程语句(initial和always)中,当前的赋值语句阻断了其后的语句,也就是说后面的语句必须等到当前的赋值语句执行完毕才能执行。而且阻塞赋值可以看成是一步完成的,即:计算等号右边的值并同时赋给左边变量。
    非阻塞赋值:b<=a;
    是时序逻辑常用的赋值语句因为他是并行的和先后顺序没有关系;
    例如:
    这种顺序
    {
    always@(posedge clk)
    begin
    b<=a;
    c<=b;
    end
    }
    和{
    always@(posedge clk)
    begin
    c<=b;
    b<=a;
    end
    }
    是一个效果的

    阻塞赋值:b=a;
    always@(posedge clk)
    begin
    b=a;
    c=b;
    end

    always@(posedge clk)
    begin
    c=b;
    b=a;
    end
    这两个是不一样的,他们赋值是有顺序的。
    第一个c=a;
    第二个b=c;

    这是我现在的理解。
    谢谢


    回复

    使用道具 举报

    19

    主题

    2

    好友

    370

    积分

    秀才

    Rank: 3Rank: 3

  • TA的每日心情
    开心
    2016-9-21 20:33
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2016-7-23 22:46:06 |显示全部楼层
         占楼
    回复

    使用道具 举报

    112

    主题

    62

    好友

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    该用户从未签到

    分区版主职务勋章

    发表于 2016-7-26 14:16:27 |显示全部楼层
    不错,顶起来
    回复

    使用道具 举报

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

    关闭

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


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

    GMT+8, 2016-12-11 12:09 , Processed in 0.192287 second(s), 10 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部