查看: 2371|回复: 2

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

[复制链接]
  • TA的每日心情
    开心
    2016-9-21 20:33
  • 签到天数: 29 天

    连续签到: 1 天

    [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;

    这是我现在的理解。
    谢谢


    回复

    使用道具 举报

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

    连续签到: 1 天

    [LV.4]偶尔看看III

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

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 12:40 , Processed in 0.124423 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.