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

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

3天内不再提示

组合电路和时序电路的讲解

电子设计 作者:电子设计 2018-09-25 09:50 次阅读

组合电路和时序电路是计算机原理的基础课,组合电路描述的是单一的函数功能,函数输出只与当前的函数输入相关;时序电路则引入了时间维度,时序电路在通电的情况下,能够保持状态,电路的输出不仅与当前的输入有关,而且与前一时刻的电路状态相关,如我们个人PC中的内存和CPU中的寄存器,均为时序电路。

说了这么多,我们学习的组合电路和时序电路在计算机中又是怎么一回事呢?为了便于理解,下面以一个大家都能接受的C语言程序开始,从上层向下层开始解释。

void main(){

int a = 3, b = 5;

int sum = a + b;

}

这个例子大家都能明白,main函数要做的事情就是实现两个数的加法操作。这是我们人类的思维方式,但是计算机并不认识,如何让计算机理解呢?于是,我们需要将上面这个程序翻译成机器能理解的模样,这时候就需要借助编译器(如常见的gcc、msc等)将上面的程序翻译成MIPS指令(不同的CPU有不同的指令集,包括X86指令集、MIPS指令集、Sparc指令集等,我们在这里用MIPS指令集,咱们的龙芯也是采用MIPS指令集),如下所示:

#下面的每条汇编代码对应一个二进制

addi $t0, 0, 3 # a = 0+3, a保存在$t0寄存器中, 对应的二进制代码为:0010 00** **** **** **** **** **** ****(这里的星号*表示二进制,这里暂时不关心)

addi $t1, 0, 5 # b = 0+5, b保存在$t1寄存器中

addi $t2, $t1, $t0 # sum = a + b, sum保存在$t2寄存器中

到这里,大家一定还在疑惑,不是说要翻译成二进制代码吗?怎么是MIPS汇编语言?对,就是汇编语言,这个汇编语言中的每一条指令就对应一条二进制代码,汇编的方式更容易让人理解。

现在我们得到了计算机可以理解的MIPS指令(可以想象成可执行程序)了,接下来的问题是如何执行MIPS指令。

要执行程序,首先必须将可执行程序文件(从外设)加载到内存。可执行文件加载到内存时,操作系统会为每个可执行程序在内存中分配四个区:

1 代码区。也就是前面的到的汇编代码所对应的二进制码

2 全局数据区。全局变量,静态变量放在这个区

3 堆区。表示在程序执行过程中,动态申请的空间在这个区,如C语言中的malloc, free操作均是针对此区中的对象执行申请或释放操作

4 栈区。函数运行时,局部变量的保存区域。

我们重点关注代码区和栈区,初始时,其分布如下图所示:

代码区-1.png

其中PC(Program Counter)是程序计数器(是CPU中的一个寄存器,具有数据存储功能),即用来指示下一个即将执行的指令的地址,本例中,进入main函数后,即将执行的第一条指令是a = 3,其地址为:0X FF FF FF 00, 因此PC指向其对应的汇编代码的地址。

CPU根据PC的的值,从指定地址0X FF FF FF 00处获取指令,然后解析指令,并执行指令(即执行a=3)。

当a = 0执行完毕后,PC执行操作:PC = PC + 4,PC指向0X FF FF FF 04,即b = 5的指令的地址。此时,栈区的状态为:

栈区-1.png

接着,CPU根据PC的的值,从指定地址0X FF FF FF 04处获取指令,然后解析指令,并执行指令(即执行b=5)。当b=5执行完毕后,PC执行操作:PC = PC + 4,PC指向0X FF FF FF 08,即sum=a+b的指令的地址。此时,栈区的状态为:

栈区-2.png

然后,CPU根据PC的的值,从指定地址0X FF FF FF 08处获取指令,然后解析指令,并执行指令(即执行sum=a+b)。当sum=a+b执行完毕后,PC执行操作:PC = PC + 4,PC指向0X FF FF FF 12(因为,指令已经执行完毕,这里应该提示要从main函数返回)。此时,栈区的状态为:

栈区-3.png

至此为止,main函数内部的流程基本上陈述完了(关于函数间调用,相对复杂,计算机组成中会详细讲解),但如何实现这些步骤呢,其中的关键问题包括如下:

问题:

1、知道内存地址,如何定位到那个地址???答案:地址译码器

2、获取到a=3对应的指令后,如何知道是做a=0+3的操作???答案:解析指令,指令译码器

3、PC寄存器如何保存值?如何做加4操作?答案:计数器(寄存器讲解)

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

    关注

    19

    文章

    7488

    浏览量

    87850
  • 时序电路
    +关注

    关注

    1

    文章

    114

    浏览量

    21696
  • 组合电路
    +关注

    关注

    0

    文章

    11

    浏览量

    6691
收藏 人收藏

    评论

    相关推荐

    数字电路时序电路

    在《数字电路之如雷贯耳的“逻辑电路”》、《数字电路之数字集成电路IC》之后,本文是数字电路入门3,将带来「
    发表于 08-01 10:58 1.9w次阅读
    数字<b class='flag-5'>电路</b>之<b class='flag-5'>时序电路</b>

    时序电路的分析与设计方法

    逻辑电路分为组合逻辑电路时序逻辑电路。第四章已经学习了组合逻辑
    发表于 08-23 10:28

    什么是时序电路

    什么是时序电路时序电路核心部件触发器的工作原理
    发表于 03-04 06:32

    PLD练习2(时序电路)

    PLD练习2(时序电路)
    发表于 05-26 00:14 20次下载

    同步时序电路

    同步时序电路 4.2.1 同步时序电路的结构和代数法描述
    发表于 01-12 13:31 5249次阅读
    同步<b class='flag-5'>时序电路</b>

    什么是时序电路

    什么是时序电路 任意时刻的稳定输出,不仅与该时刻的输入有关,而且还
    发表于 01-12 13:23 8457次阅读
    什么是<b class='flag-5'>时序电路</b>

    锆石FPGA A4_Nano开发板视频:时序电路的分析与设计

    时序电路,是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路,与组合电路
    的头像 发表于 09-27 07:10 2406次阅读
    锆石FPGA A4_Nano开发板视频:<b class='flag-5'>时序电路</b>的分析与设计

    锆石FPGA A4_Nano开发板视频:时序电路知识复习

    时序电路,是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路,与组合电路
    的头像 发表于 09-23 07:08 2292次阅读
    锆石FPGA A4_Nano开发板视频:<b class='flag-5'>时序电路</b>知识复习

    时序电路基本介绍

    组合逻辑和时序逻辑电路是数字系统设计的奠基石,其中组合电路包括多路复用器、解复用器、编码器、解码器等,而
    的头像 发表于 09-12 16:44 9313次阅读
    <b class='flag-5'>时序电路</b>基本介绍

    基本逻辑电路时序电路组合电路设计

    从今天开始新的一章-Circuits,包括基本逻辑电路时序电路组合电路等。
    的头像 发表于 10-10 15:39 1317次阅读

    什么是时序电路

    那么,如何才能将过去的输入状态反映到现在的输出上呢?「时序电路」到底需要些什么呢?人类总是根据过去的经验,决定现在的行动,这时我们需要的就是—记忆。同样,「时序电路」也需要这样的功能。这种能够实现人类记忆功能的元器件就是触发器。
    的头像 发表于 03-24 10:48 1228次阅读
    什么是<b class='flag-5'>时序电路</b>?

    什么是同步时序电路和异步时序电路,同步和异步电路的区别?

    同步和异步时序电路都是使用反馈来产生下一代输出的时序电路。根据这种反馈的类型,可以区分这两种电路时序电路的输出取决于当前和过去的输入。时序电路
    的头像 发表于 03-25 17:29 2.5w次阅读
    什么是同步<b class='flag-5'>时序电路</b>和异步<b class='flag-5'>时序电路</b>,同步和异步<b class='flag-5'>电路</b>的区别?

    时序电路包括两种类型 时序电路必然存在状态循环对不对

    时序电路是由触发器等时序元件组成的数字电路,用于处理时序信号,实现时序逻辑功能。根据时序元件的类
    的头像 发表于 02-06 11:22 1428次阅读

    时序电路的分类 时序电路的基本单元电路有哪些

    时序电路是一种能够按照特定的顺序进行操作的电路。它以时钟信号为基准,根据输入信号的状态和过去的状态来确定输出信号的状态。时序电路广泛应用于计算机、通信系统、数字信号处理等领域。根据不同的分类标准
    的头像 发表于 02-06 11:25 2541次阅读

    时序电路基本原理是什么 时序电路由什么组成

    时序电路基本原理是指电路中的输出信号与输入信号的时间相关性。简单来说,就是电路的输出信号要依赖于其输入信号的顺序和时间间隔。 时序电路由时钟信号、触发器和
    的头像 发表于 02-06 11:30 2032次阅读