0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

时序逻辑中的阻塞和非阻塞

FPGA之家 来源:YGOPRO de Space 作者:YGOPRO 2022-03-15 13:53 次阅读

Verilog HDL的赋值语句分为阻塞赋值和非阻塞赋值两种。阻塞赋值是指在当前赋值完成前阻塞其他类型的赋值任务,阻塞赋值由=来完成;非阻塞赋值在赋值的同时,其他非阻塞赋值可以同时被执行,非阻塞赋值由《=来完成。

(1)组合逻辑中的阻塞和非阻塞

eg.

always@(a or b or c or d)

begin

t1 = a & b;

t2 = c & d;

out = t1 | t2;

end

当abcd均由0变为1时,采用阻塞赋值语句时:t1=1,t2=1,out=1;

采用非阻塞赋值语句时:t1=1,t2=1,out=0。非阻塞赋值每一条语句执行不会阻止其他非阻塞语句的同时执行,故此时的t1和t2还未更新,所以out的值不变。

(2)时序逻辑中的阻塞和非阻塞

eg.实现D触发器

always@(posedge clk)

begin

q1 《= d;

q2 《= q1;

end

采用非阻塞赋值时,q1=d,q2=q1;采用阻塞赋值时q1=q2=d,不符合D触发器的要求。

综述:对于组合逻辑(always模块敏感列表为电平触发),采用阻塞赋值(=);对于非阻塞逻辑(always模块敏感列表为边沿触发),采用非阻塞赋值(《=)。

原文标题:阻塞赋值与非阻塞赋值

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

审核编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 触发器
    +关注

    关注

    14

    文章

    1677

    浏览量

    60392
  • 时序逻辑
    +关注

    关注

    0

    文章

    37

    浏览量

    9099
  • 非阻塞
    +关注

    关注

    0

    文章

    10

    浏览量

    2154

原文标题:阻塞赋值与非阻塞赋值

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Verilog阻塞阻塞原理分析

    Verilog阻塞阻塞原理分析在Verilog语言最难弄明白的结构阻塞赋值”要算一个。
    发表于 11-23 12:02

    linux串口通信阻塞阻塞问题。

    一般情况下串口通信中read()函数都是阻塞的。当然也可以通过设置文件等方法把串口设为阻塞的。这里就有一个问题,当串口设置为阻塞状况下,如果读不到数据程序应该挂起。这种所谓的读不到数
    发表于 07-14 15:57

    verilog阻塞阻塞

    这个是非阻塞赋值,b的值为0,仿真结果也是0module TOP(input clk,input rst,output reg b );reg a,c;always@(posedge clk or negedge rst)beginif(~rst)begina
    发表于 09-13 15:55

    【分享】Verilog阻塞阻塞语句

    移位寄存器:如果把上述代码的两个赋值语句相互交换,如下所示,结果和上面是一样的。所以在一个begin---end阻塞语句并不会因为放置的位置不同,出现不同的结果。关于
    发表于 11-03 20:26

    【FPGA开源教程连载】第六章 阻塞赋值与阻塞赋值

    阻塞赋值与阻塞赋值原理分析实验目的:掌握阻塞赋值与阻塞赋值的区别实验平台:无实验原理:
    发表于 12-25 01:51

    fpga基础篇(一):阻塞阻塞赋值

    `阻塞阻塞赋值首先从名字上理解,阻塞赋值即赋值没完成,后边的语句将无法执行,阻塞刚好与其相
    发表于 04-05 09:53

    Verilog阻塞赋值和阻塞赋值的正确使用

    [table][tr][td] Verilog中有两种为变量赋值的方法。一种叫做连续赋值,另一种叫做过程赋值。过程赋值又分为阻塞赋值和阻塞赋值。阻塞性赋值使用“=”为变量赋值,在赋值
    发表于 07-03 03:06

    阻塞(=)与阻塞(<=)介绍

    语句的执行,延迟后才执行赋值,这种赋值语句是不可综合的,在需要综合的模块设计不可使用这种风格的代码。 阻塞赋值操作符用小于等于号(即
    发表于 07-03 10:23

    阻塞(=)与阻塞(<=)介绍

    语句的执行,延迟后才执行赋值,这种赋值语句是不可综合的,在需要综合的模块设计不可使用这种风格的代码。 阻塞赋值操作符用小于等于号(即
    发表于 07-09 05:08

    【工程源码】 阻塞赋值与阻塞赋值原理分析

    本文和设计代码由FPGA爱好者小梅哥编写,未经作者许可,本文仅允许网络论坛复制转载,且转载时请标明原作者。阻塞赋值,操作符为“=”,“阻塞”是指在进程语句(initial和always),当前
    发表于 02-24 20:09

    【技巧分享】FPGA至简设计-阻塞赋值与阻塞赋值

    阻塞阻塞作者:小黑同学一、 概述1、阻塞赋值对应的电路往往与触发沿没有关系,只与电平的变化有关系。阻塞赋值符号“=”。2、
    发表于 04-24 14:49

    Verilog阻塞赋值与阻塞赋值的区别是什么

    Verilog阻塞赋值与阻塞赋值的区别
    发表于 12-30 06:22

    同步与异步,阻塞阻塞的区别是什么

    同步与异步,阻塞阻塞的区别
    发表于 01-26 06:12

    阻塞阻塞赋值的区别是什么?

    本文通过Verilog事件处理机制,详细讨论了阻塞阻塞赋值的区别、联系及其应用示例。
    发表于 05-10 06:59

    时序逻辑中使用阻塞赋值会怎么样?

    如例6.1所述,在多个“Always” 进程中使用阻塞赋值。程序块“Always”在时钟的正边缘触发,综合器推断时序逻辑。如前所述,所有阻塞赋值都在活动队列中进行计算和更新。读者请参阅
    的头像 发表于 09-06 09:44 3376次阅读