查看: 4157|回复: 1

图解阻塞赋值与非阻塞赋值

[复制链接]
  • TA的每日心情
    开心
    2016-9-14 16:29
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2016-8-26 12:10:28 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 §,遇&见。§ 于 2016-8-26 12:09 编辑

    图解阻塞赋值与非阻塞赋值

          本文抛弃冗杂的文字论述,改以简单的图表形式,更加详细的文字论述,可自行百度。


    简要表格总结如下:

    阻塞赋值
    非阻塞赋值
    表示符号
    =
    <=
    应用场景
    组合逻辑电路
    时序逻辑电路
    执行方式
    顺序执行
    并行执行
    原始状态
    无关
    有关


    图形分析如下:
    (注:block代表阻塞,no_block代表非阻塞)

    阻塞与非阻塞

    阻塞与非阻塞


                                  
    1

    分析:
    在阻塞状态下,c在a得到b之后,10个步长得到d值,因此c在时间步长15时得到d值;
    非阻塞转态下,c在时间步长10时得到d值,与a值在时间步长5时得到b值无关。
    图片2.png

                                           图2

    分析:
    在阻塞状态下,y直接得到x值,只需一个D触发器;
    非阻塞转态下,y需要在下一个上升沿来临时得到x值,需要两个D触发器。


    图片3.png
                                图3

    分析:
    在RTL Viewer中我们可以清楚的看到,使用阻塞赋值我们生成的电路是两个并联的D触发器,使用非阻塞赋值我们生成的是两个串联的D触发器。

    图片4.png

                                        图4

    分析:
    从仿真波形图可以看出,block_out1、block_out2、no_block_out1三个的波形是一致的,但no_block_out2波形出现差异,其原因如下:
    (1)阻塞赋值(=)是顺序执行的,写在前面的语句先执行,写在后面的语句后执行,一般用于组合逻辑电路。
    (2)非阻塞赋值(<=)是并行执行的写在前面的语句与后面的语句同时执行,与书写顺序没有关系,一般用于时序逻辑电路。


    附图1
    #5的概念是延迟的意思。但是是行为级描述 综合时将被过滤。一般#  +  数字的组合在仿真器中产生一定的延迟。
    延迟结构如下:
    首先`timescale 1ns/100ps 这个是整个延迟的定义。
    `timescale是关键字,然后后面的两位时间 第一位是用来表示你的延迟因子的,第二位用来表示步进时间。


    附图3、图4代码
    阻塞赋值
    非阻塞赋值
    Always @(posedge clk)
    Begin
    Block_out1 = block_in;
    Block_out2 = Block_out1;
    end

    Always @(posedge clk)
    Begin
    Block_out1 = block_in;
    Block_out2 = Block_out1;
    end




    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-12-29 15:29
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2016-8-26 13:06:29 | 显示全部楼层
    图文并茂,楼主辛苦
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-3-30 00:00 , Processed in 0.130730 second(s), 19 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.