明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 1465|回复: 0

【技巧分享】阻塞赋值与非阻塞赋值

[复制链接]
发表于 2020-3-25 10:54:21 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
阻塞与非阻塞
作者:小黑同学
一、 概述

1、阻塞赋值对应的电路往往与触发沿没有关系,只与电平的变化有关系。阻塞赋值符号“=”。

2、非阻塞赋值对应的电路结构往往与边沿触发有关系,只有在触发沿时才有可能发生赋值的情况。非阻塞赋值符号“<=”。

二、 赋值方式

1、阻塞赋值

      阻塞赋值操作符用等号(即 = )表示。阻塞赋值时先计算等号右手方向(RHS)部分的值,这时赋值语句不允许任何别的语句的干扰,直到现行的赋值完成时刻,即把RHS赋值给 LHS的时刻,它才允许别的赋值语句的执行。 一般可综合的阻塞赋值操作在RHS不能设定有延迟,(即使是零延迟也不允许)。若在RHS 加上延迟,则在延迟期间会阻止赋值语句的执行, 延迟后才执行赋值,这种赋值语句是不可综合的,在需要综合的模块设计中不可使用这种风格的代码。

     阻塞赋值的执行可以认为是只有一个步骤的操作:

      所谓阻塞的概念是指在同一个always块中,其后面的赋值语句从概念上(即使不设定延迟)是在前一句赋值语句结束后再开始赋值的。

      如果在一个过程块中阻塞赋值的RHS变量正好是另一个过程块中阻塞赋值的LHS变量,这两个过程块又用同一个时钟沿触发,这时阻塞赋值操作会出现问题,即如果阻塞赋值的次序安排不好,就会出现竞争。若这两个阻塞赋值操作用同一个时钟沿触发,则执行的次序是无法确定的。


2、非阻塞赋值

      非阻塞赋值操作符用小于等于号 (即 <= )表示。在赋值操作时刻开始时计算非阻塞赋值符的RHS表达式,赋值操作时刻结束时更新LHS。在计算非阻塞赋值的RHS表达式和更新LHS期间,其他的Verilog语句,包括其他的Verilog非阻塞赋值语句都能同时计算RHS表达式和更新LHS。非阻塞赋值允许其他的Verilog语句同时进行操作。非阻塞赋值的操作可以看作为两个步骤的过程:

      1)在赋值时刻开始时,计算非阻塞赋值RHS表达式。

      2)在赋值时刻结束时,更新非阻塞赋值LHS表达式。

     非阻塞赋值操作只能用于对寄存器类型变量进行赋值,因此只能用在“initial”块和“always”块等过程块中。非阻塞赋值不允许用于连续赋值。

三、 举例

1、 阻塞赋值

项目
例    1
例    2

描述
wire ck;
reg [7:0] a, b, c, d;
always @( posedge ck )
begin  
  c = b;
  b = a;
  a = d;
 end
[代入前的初始值]
 a = 5;  c = 10;
 b = 3;  d = 2;
wire ck;
reg [7:0] a, b, c,  
always @( posedge ck ) begin 
  a = d; //不同处
  c = b;
  b = a;
 end
[代入前的初始值]
 a = 5;  c = 10;
 b = 3;  d = 2;

运算结果
a = 2;  c = 3;
b = 5;  d= 2;
a = 2;  c = 3;
b = 2;  d= 2;



2、 非阻塞赋值

项目
例    1
例    2
描述
wire ck;
reg [7:0] a, b, c, d;
 always @( posedge ck ) begin  
  c〈 = b;
  b 〈= a;
  a 〈= d;
 end
[代入前的初始值]
 a = 5;  c = 10;
 b = 3;  d = 2;
wire ck;
 reg [7:0] a, b, c,  
 always @( posedge ck ) begin 
  a 〈= d; //不同处
  c 〈= b;
  b 〈= a;
 end
 [代入前的初始值]
 a = 5;  c = 10;
 b = 3;  d = 2;
运算结果
a = 2;  c = 3;
b = 5;  d= 2;
a = 2;  c = 3;
b = 5;  d= 2;

四、 总结

     综上所述,明德扬至简设计法提出这样的规则:时序逻辑用非阻塞赋值,组合逻辑用阻塞赋值。






上一篇:至简案例系列基于FPGA的曼彻斯特编码解码设计
下一篇:【教程】数电基础与Verilog设计
FPGA视频课程  培训班 FPGA学习资料
吴老师 18022857217(微信同号) Q1241003385
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号-1

GMT+8, 2021-3-1 15:31 , Processed in 0.507312 second(s), 14 queries , File On.

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

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