• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > 16位微控制器的设计与实现

16位微控制器的设计与实现

录入:edatop.com     点击:

2 MCU设计与实现

2.1 MCU工作原理

A8096通过IPU(指令预取单元)指令预取,并存放在预取指令队列中,CU(控制单元)从IPU指令队列中取指并进行译码,产生控制时序等信号。ALU单元、RAM控制器、MEM控制器等部件中均有译码模块,依据当前指令和当前指令周期主动工作。如:RAM控制器在加法指令的相应周期取操作数送往ALU单元,ALU在相应周期接收数据,然后进行运算并将结果输出。

2.2 MCU启动过程

在上电复位时,MCU处于复位态(rst信号有效)。复位时,IPU单元中的指令队列清空(empty信号有效),总线处于空闲态,IPU立刻进行指令预取动作,程序空间的首地址(2080H)指令即被取人指令队列,随后队列空信号(empty)无效,同时指令被发送出去(instr_bus)。在复位同时,控制单元(CU)的取指信号(codefetche)即一直有效,在指令队列空信号empty无效后(在empty无效之前CU一直等待),指令即通过instr_ bus进入了CU,指令操作码被存入了指令寄存器,如图3中instr寄存器更新为加法指令的操作码74。至此,MCU完成了复位、自动取指操作,并开始往下执行该指令,IPU单元也会继续进行指令预取操作。

\

2.3 指令执行过程

在A8096中,有两级指令预取概念:一级是指令预单元IPU利用总线空闲从程序空间不断预取指令存入指令队列中;一级则是指令执行过程中的指令预取,当一条指令执行到最后一个时钟周期时,CU单元就会发送取指信号,进行指令执行级的预取指动作,下一条指令的操作码即被预取出来(指令队列为空时需等待),并立刻进行译码确定指令的字节长度和指令执行周期数。

\

如图4所示,在加法指令的最后一个周期(cycle=05),CU单元取指信号codefetche有效,则下一条指令的操作码(6C,乘法操作码)被预取出来,同时进行查表译码确定其指令字节长度和指令周期数,随后操作码被存入指令寄存器instr中(此时,指令周期计数器cycle又从01开始计数)。后面乘法指令的操作数也会不断被取进来执行,直到乘法指令最后一个周期时,又将下一条指令的操作码预取进来。

需要说明:codefetche为取操作码信号,datafetche为取操作数信号。在指令最后一个周期时若有中断请求,则插入LCALL指令进行中断处理,读取下一条指令。其流程如图5所示。

\

2.4 指令译码过程

在MCU设计过程中,首先完成对各条指令的指令分析工作,确定每个周期该做的动作,然后各部件依据指令分析表进行相关的指令译码(RAM控制器只译RAM要做的动作,ALU只译ALU要做的动作)。过程描述如下:在预取操作码时,CU单元对操作码进行译码确定指令的字节长度(nr_bytes)和指令周期数(nr_cycles)。然后CU依据指令字节长度(nr_bytes)取操作数,其他部件依据指令和当前指令周期(curcycle)执行相应的指令操作。表1为加法指令分析表,下面以加法指令的译码过程来说明整个译码流程:

\

 

作者:刘 丽 刘 第   来源:电子设计工程

上一篇:基于COM的轻量级 件技术的简单实现
下一篇:基于SiememsS7-200 PLC的远程测控

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图