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

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

3天内不再提示

时序逻辑和组合逻辑的区别和使用

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-07-07 14:15 次阅读

根据逻辑电路的不同特点,数字电路分为组合逻辑和时序逻辑,明德扬粉丝里的同学提出,无法正确区分,今天让我跟一起来学习一下两种逻辑的区别以及使用环境。

时序逻辑和组合逻辑的区别

关于组合逻辑和时序逻辑的不同,我们可以从三方面来理解,分别是code(代码),电路图和波形图三方面。

从代码层面来看,时序逻辑即敏感列表里面带有时钟上升沿,如果是没有上升沿或者是带有“*”号的代码,为组合逻辑。

电路层面,两种逻辑反映的电路也有不同,时序逻辑相当于在组合逻辑的基础上多了一个D触发器。

波形图层面,组合逻辑的波形是即刻反映变化的,与时钟无关;但是时序逻辑的波形不会立刻反映出来,只有在时钟的上升沿发生变化。

用一个简单的例子来区分学习下,如计算c=a+b。

在代码层面,时序逻辑代码表示如下,可以看到此代码有“posedge“时钟上升沿,即表示有一个D触发器,a+b的结果c是在D触发器发出指令后才进行输出的。

1672017997424298.jpg

组合逻辑则如下所示,是不带上升沿的,有“*”号的,直接输出a+b=c的值,不进行额外操作:

1672018006184935.jpg

对比两种逻辑的代码表示,可以看出同样是输出c的值,不同的逻辑输出时间却不同,时序逻辑是在时钟上升沿输出,组合逻辑则直接输出。
电路图层面,组合逻辑为一个加法器连接a和b,紧接着立刻给到c,如下图所示,可以看到a+b得出的值c直接输出,没有进行任何额外操作:

1672018015197853.jpg

时序逻辑的电路图加法器连接的a和b没有变,但是c的值在输出部分,不会直接输出,D触发器就像一扇门,信号值c‘停留在门前,当D触发器收到了时钟clk上升沿的信号,才会把门打开,输出信号c的值,如下图所示:

1672018021103292.jpg

可以看到,组合逻辑是直接输出信号c,时序逻辑需要D触发器收到时钟上升沿信号后才会输出信号c。

在波形图层面,我们可以画出时序图来分析,如下图所示。可以看出第一个时钟时a=1,b=2,此时组合逻辑立刻得出c=3,是跟时钟没有关系的;但是时序逻辑一定要在下一个时钟的上升沿处才得出c=3的结果;

以此类推,后面的原理是一样的,当a=2,b=4时,组合逻辑马上得出c=6,时序逻辑在第3个时钟上升沿得出c=6。

1672018032810352.jpg

综上所述,我们进行一下总结,组合逻辑任意时刻的输出仅仅取决该时刻的输入,与时钟无关;时序逻辑先算好当前输入信号的结果,但还不影响输出,只有等到时钟上升沿的一瞬间,才把结果给了输出。

时序逻辑和组合逻辑的使用

相信大家已经可以非常清晰的区分组合逻辑和时序逻辑,下面我们就讨论一下组合逻辑和时序逻辑的使用环境。

首先我们需要保证信号的结果是正确的,只要满足目标需求,这时使用时序逻辑还是组合逻辑都是可以的(这里我们讨论的是大多数情况,但也有例外,例如模块的输出一般要求是时序逻辑)。

在实际设计中,为了便于操作,我们可以首先考虑用时序逻辑,看是否能满足设计要求。如果无法满足目标要求,需要凑时序,那么就考虑改为组合逻辑。

举个例子便于大家更好地理解,如下图所示,假设有一个模块,有两个信号dout和dout_vld,其中dout表示数据,dout_vld表示数据有效性。我们假设需要该模块先后输出两个数据6和1。

1672018043442310.jpg

但假设现在输出的结果如下图所示,输出的是8和5,不是我们目标需要的6和1,并且可以看到,dout_vld比dout晚了一个时钟,这个时候就可以考虑设计dout_vld的时序逻辑改为组合逻辑,将信号dout_vld提前一拍,就可以得到正确的结果。

另一种方法,假设dout是组合逻辑设计的,就是把dout改为时序逻辑实现,将dout推迟一拍,达到信号对齐的效果。

1672018051393624.jpg

通过上面的详细解释,相信大家都可以掌握时序逻辑和组合逻辑的原理和使用,更多时序知识,请参考时序约束培训教程。更好的思路就加微信进群,我们互相讨论互相学习。

审核编辑:汤梓红

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

    关注

    10217

    文章

    10645

    浏览量

    511221
  • 数字电路
    +关注

    关注

    192

    文章

    1397

    浏览量

    79753
  • 触发器
    +关注

    关注

    14

    文章

    1685

    浏览量

    60412
  • 组合逻辑
    +关注

    关注

    0

    文章

    45

    浏览量

    9993
  • 时序逻辑
    +关注

    关注

    0

    文章

    37

    浏览量

    9100
收藏 人收藏

    评论

    相关推荐

    FPGA之组合逻辑时序逻辑、同步逻辑与异步逻辑的概念

    数字电路根据逻辑功能的不同特点,可以分成两大类:一类叫做组合逻辑电路,简称组合电路或组合逻辑;另
    发表于 12-01 09:04 490次阅读

    RTL时序逻辑的综合要求

    数字门级电路可分为两大类:组合逻辑时序逻辑。锁存器是组合逻辑
    的头像 发表于 01-13 13:57 1885次阅读
    RTL<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>的综合要求

    FPGA中何时用组合逻辑时序逻辑

    数字逻辑电路分为组合逻辑电路和时序逻辑电路。时序逻辑
    发表于 03-21 09:49 527次阅读

    soc中的组合逻辑时序逻辑应用说明

    芯片设计是现代电子设备的重要组成部分,其中组合逻辑时序逻辑是芯片设计中非常重要的概念。组合逻辑
    的头像 发表于 08-30 09:32 880次阅读

    勇敢的芯伴你玩转Altera FPGA连载25:组合逻辑时序逻辑

    时间和保持时间)必须是稳定的,否则有可能锁存到不稳定的值(即亚稳态)。图3.17 波形输入与输出示例通过这个简单的例子,我们大致可以了解组合逻辑时序逻辑的特点。一般而言,他们存在以下
    发表于 11-17 18:47

    【技巧分享】时序逻辑组合逻辑区别和使用

    根据逻辑电路的不同特点,数字电路分为组合逻辑时序逻辑,明德扬粉丝里的同学提出,无法正确区分,今天让我跟一起来学习一下两种
    发表于 03-01 19:50

    组合逻辑时序逻辑电路一般分析方法

    你了解如何分析组合逻辑电路与时序逻辑电路吗?数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合
    发表于 11-18 06:30

    在FPGA中何时用组合逻辑时序逻辑

    的。话不多说,上货。 在FPGA中何时用组合逻辑时序逻辑 在设计FPGA时,大多数采用Verilog HDL或者VHDL语言进行设计(本文重点以verilog来做介绍)。设
    发表于 03-06 16:31

    FPGA中组合逻辑时序逻辑区别

    数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑
    发表于 11-20 12:26 8669次阅读

    组合逻辑电路和时序逻辑电路比较_组合逻辑电路和时序逻辑电路有什么区别

    组合逻辑电路和时序逻辑电路都是数字电路,组合逻辑电路在逻辑
    发表于 01-30 17:26 9.2w次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路比较_<b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路有什么<b class='flag-5'>区别</b>

    组合逻辑电路和时序逻辑电路的区别

    组合逻辑电路是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。而时序逻辑电路不仅仅取决于当前的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。
    的头像 发表于 02-26 15:32 6.3w次阅读

    组合逻辑电路和时序逻辑电路的区别和联系

    ,与电路原来的状态无关。而时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。下面小编给大家介绍一下“组合
    的头像 发表于 03-14 17:06 5172次阅读
    <b class='flag-5'>组合</b><b class='flag-5'>逻辑</b>电路和<b class='flag-5'>时序</b><b class='flag-5'>逻辑</b>电路的<b class='flag-5'>区别</b>和联系

    常用的组合逻辑电路

    组合逻辑电路和时序逻辑电路是数字电路中两种重要的逻辑电路类型,它们主要区别在于其输出信号的依赖关
    的头像 发表于 02-04 16:00 1068次阅读

    时序逻辑电路有哪些 时序逻辑电路和组合逻辑电路区别

    产生相应的输出信号。本文将详细介绍时序逻辑电路的分类、基本原理、设计方法以及与组合逻辑电路的区别。 一、
    的头像 发表于 02-06 11:18 1059次阅读

    什么是组合逻辑电路和时序逻辑电路?它们之间的区别是什么

    什么是组合逻辑电路和时序逻辑电路?时序逻辑电路和组合
    的头像 发表于 03-26 16:12 411次阅读