16位微控制器的设计与实现-设计应用_第1页
16位微控制器的设计与实现-设计应用_第2页
16位微控制器的设计与实现-设计应用_第3页
16位微控制器的设计与实现-设计应用_第4页
16位微控制器的设计与实现-设计应用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑位微控制器的设计与实现-设计应用随着信息技术的发展,网络通信、信息安全和信息家电产品的普及,嵌入式MCU正是所有这些信息产品中必不可少的部件。目前国内一些科研院校和半导体公司都在致力于研发自主设计的嵌入式微控制器,这对我国的半导体产业、电子产品产业的发展具有重要意义。

这里描述了一款自主研发的16位嵌入式微控制器(A8096)的设计与实现,基于RTL级设计方法使用VerilogHDL进行设计描述,在设计中,采用硬布线控制方式,减少了面积和功耗,同时MCU兼容了MSC-96指令集,目标是可以应用于实际嵌入式系统项目中。

1总体设计

1.1MSC-96体系结构

图1所示为MSC-96体系结构。Intel8096微控制器是由通用寄存器阵列、算术逻辑单元(RALU)和微程序控制器等模块组成。其采用的是微程序控制方式,需要使用一个片内ROM存储器,因而会造成面积和功耗都会较大。

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为加法指令分析表,下面以加法指令的译码过程来说明整个译码流程:

1)加法指令ADDOPlOP2(将OPl+0P2结果写入OPl中);其目标码格式为:ADDOP2OPl,其中OPl和OP2均为操作数地址。

2)0周期实际指上一条指令的一个时钟周期,此周期codefetche取指信号有效,IPU单元将指令送入CU单元确定了指令周期和指令长度。

3)l周期取操作数信号datafetche有效,op2(地址)进来,被送入RAM地址线,发读信号(从RAM寄存器阵列取操作数2)。

4)2周期操作数2被取入,并存入ALU中的a寄存器;此周期取操作数信号datafetche有效,opl(地址)进来,被送入RAM地址线,发读信号。

5)3周期操作数l被取入,并存入ALU中的b寄存器;加法器立刻进行a+b运算。

*周期将加法结果放到RAM数据线上,地址线=opl,发写信号。将加法结果写回到opl中,并依据结果对PSW进行处理。

7)5周期无动作,用于写回操作的过程。

3验证结果

3.1仿真验证

芯片的功能与结构设计,只是设计流程的一部分,为保证终设计成功,必须对其全面仿真与功能验证。对MCU的测试方法如下:1)功能模块的单元测试,验证模块的功能正确性,包括接口时序等。2)系统集成测试,首先编写简单的机器码测试向量进行初步调试:然后使用编译器写汇编程序,编译成二进制机器码进行程序功能测试。在集成测试中,编写汇编测试程序,用编译器编译成机器码,在CadeneeNC下运行这些测试程序进行仿真测试。对每条指令均测试了其各种寻址方式,且测试程序自动向DEBUG寄存器写测试结果,以方便调试。经过复杂的测试和不断修正,验证结果显示MCU指令执行的正确性。

3.2FPGA验证

使用的FPGA器件是StratixⅡ型号为EP1S40F780C7。综合结果显示:A8096使用3565个LE(LogicElement)。时序分析结果:A8096可以运行在49.93MHz的时钟频率下。A8096占用FPGA资源分布情况如图6所示。

4结论

本设计中,采用RISC技术中的硬布线控制逻辑,有利于减少MCU面积、降低功耗以及提高MCU执行效率,FPGA实现表明其只占用了3565

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论