8位高速微控制器IP软核的设计与实现_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、8位高速微控制器ip软核的设计与实现随着设计的不断进展,集成的规模越来越大,设计难度日趋复杂,传统的设计办法已越不能适应集成电路设计进展的需要。基于ip复用的数字ic设计办法是有效提高ic设计产能的关键技术,有助于迅速实现工艺先进、功能强大的产品。微控制器是系统的核心,8位mcu ip核具有很高的通用性和灵便性,广泛地应用于工业控制、机械设备、家用电器以及等各个领域。本文介绍的是基于 risc体系结构的8位高速mcuip软核的设计与实现,采纳 hdl自上而下地描述了mcuip软核的硬件结构,并验证了设计的可行性和正确性。在实际硬件电路中,该ip核的运行频率达到75mhz,可应用于高速控制领域。

2、系统结构设计本设计的采纳了哈佛结构,14位命令字长,8位数据字长,命令集与16f676兼容。它具有35条命令,在延续工作的状况下,除了程序跳转命令要用2个命令周期外,其它的全部命令都可以在1个命令周期内完成。因为哈佛结构总线具有自立的命令总线和数据总线,可同时从程序存储器和数据存储器中分离读取数据,大大提高了mcu内部执行的并行性,简化了控制电路的设计。与更深级流水线相比,容易的命令周期避开了深度流水线增强电路结构复杂性和芯片面积。该微处理器在结构上可以划分为四个子系统,分离为控制单元、数据通道、存储单元、io单元。其中数据通道包含alu和一个w工作寄存器。片内程序存储器rom的容量是8k&#

3、215;14位;数据存储器由包括专用寄存器在内的256个可寻址的8位寄存器组成,通过数据总线与算术规律单元alu相连,系统可以对数据存储器用挺直或间接寻址方式举行拜访。io单元提供了系统内部的数据总线与外界总线的衔接接口,实现数据的输入输出。控制单元则会按照命令产生相应的指示信号控制系统的协调运行。系统结构1所示。mcu ip核的时序设计时钟网络的时序设计本设计的时序设计部分采纳内部包含4个节拍时钟的结构,时钟网络模块在复位结束后会利用两级嵌套的d触发器将外部时钟(clk)分频产生4个非重叠正交的节拍时钟信号q1、q2、q3、q4,一个命令周期分为4个状态。节拍时钟会与译码电路产生的控制信号协

4、作,在不同时钟节拍选通不同的电路操作,进而协调节个系统的运行。二级流水线时序设计本设计所采纳的二级流水线划分为取指和执行两级。系统运行时,会在前一命令周期的q4节拍从rom中取出下一条待执行的命令并锁存在命令寄存器中,在下一命令周期的q1节拍从命令寄存器中取出命令,同时程序计数器(pc)加1,q2到q4对所取命令举行译码和执行。因此,一条命令的完整执行过程也许分为取命令、命令锁存、命令译码、取操作数、执行、回写、pc+1等7个步骤。从时序上看,命令取指周期与执行周期是并行执行的,即在取指的同时,上一条命令正在进入执行周期。程序跳转命令与其它单周期命令一样进入流水线,在执行程序跳转命令时,屏蔽下

5、一条命令进入命令译码单元,用空操作命令nop代替。这样,控制规律不需要做太大修改就能满足流水线的执行。二级命令流水线操作过程2所示。mcu ip核的内部电路实现命令寄存器命令寄存器(ir)是为了实现两级命令流水线而设计的。假如没有命令寄存器,那么取指和执行就分离需要占用一个命令周期。但假如利用ir,在上条命令执行的同时把下一条命令从程序存储器rom中取出来寄存在ir中,这样在每个命令周期内同时有命令的取出和执行,等效来看,一条命令只需要一个命令周期就可以执行完毕,从而提高了效率。命令寄存器ir的另外一个功能是当执行分支命令的时候产生空操作,这是采纳命令流水线结构所必须的。例如在执行程序跳转命令

6、goto的时候,因为goto命令会转变程序计数器pc的值,跳转到另外的地址,那么在执行goto命令时取得的紧接goto的下一条命令就不是要执行的下一条命令,这个已经取得的命令就必需被屏蔽。详细的操作是在执行goto命令的时候,命令译码单元产生清零信号使得命令寄存器内部14位寄存单元被清零,那么下一命令周期的输出就变为nop命令。在执行该空操作的同时把goto命令跳转后指向地址对应的命令取出来,在下个命令周期执行。命令译码单元命令译码单元在每个时钟周期的q1节拍接收来自ir的14位执行命令,并对命令举行译码工作,给出其它各单元的操作控制信号,包括算术规律单元(alu)的运算控制信号、ram的读写

7、控制、总线控制器的挑选信号、pc寻址等。算术规律单元算术规律单元(alu)是微控制器运算电路的核心部分,主要功能是根据命令译码器输出的控制信号,实现算术运算、规律运算、循环移位等操作。alu的字宽是8位,在alu中做运算的2个操作数分离来自w寄存器和数据总线,最后运算的结果由命令译码后的控制信号打算是存放在w寄存器中,还是通用寄存器ram中。本文通过将加、减操作复用到一个8位超前进位加法器,大大缩短了alu算术运算的时光,进而提高了囫囵系统的运行速度。程序计数器和堆栈13位的pc对8k×14bit的rom举行寻址,八级堆栈存储的是rom的地址,即在主程序中调用的子程序最多允许嵌套8次

8、。当系统复位后pc从0000h地址开头执行,然后在每个命令周期q1节拍,pc自动加1。当执行goto命令时,就从命令中猎取地址来转变pc的值,然后pc再在此基础上自动加1,挨次执行命令。当执行调用子程序命令call命令时,把取指的地址送到堆栈庇护起来,然后pc装载子程序入口的地址,接着挨次执行子程序命令直到子程序执行完,程序返回时把堆栈中的地址装载到pc,pc继续自动加1挨次执行命令。在每个时钟周期,pc会检测是否有来自中断处理单元的中断哀求信号发生,一旦有中断响应,pc就会进入中断处理模式,把中断现场的地址送入堆栈庇护起来,并在下一命令周期pc指向中断向量地址0004h,这是中断服务程序的入

9、口地址,系统执行中断服务程序直到中断返回,再把庇护在堆栈的中断现场地址加载到pc中,然后又挨次执行命令。定时器计数器timer0为8位可读写的定时器计数器单元,其内部有一个分频器,可以通过寄存器配置挑选定时或计数工作方式,以及分频器的分频比,分频比最高可达l:128。当timer0从ffh到00h计数溢出时,将产生timer0中断。中断处理单元中断处理单元会响应各个中断源的中断,并向系统的控制电路发出总中断哀求信号。该单元设置有8位中断控制寄存器和外设中断寄存器,用法标记位来记录各种中断哀求。中断控制寄存器还包括各中断的使能控制位以及全局中断使能位。全局中断使能位将使能(置1时)全部未被屏蔽的

10、中断,或禁止(清零时)全部中断。一旦进入中断服务程序,可通过查询中断标记位确定中断源。双向ioporta和portc为2个6位双向io端口,每个端口有2个物理寄存器,分离是方向寄存器和数据寄存器。方向寄存器控制对应端口的输入输出属性,数据寄存器负责锁存输入输出数据。mcu ip核的硬件ip软核的仿真测试是设计过程中十分重要的环节,通过自主建立的测试向量库,编写了笼罩全部命令的测试文件,对软核的多种命令、地址和数据组合举行了仿真测试,提高了软核功能仿真的测试笼罩率,保证了设计的正确性。由porta和portc的输出来验证设计正确性。部分信号波形3所示,在正常状况下,地址是在每个命令周期举行加1取指的;当中断信号int_req=1时,地址在下一命令周期跳到中断向量地址0004h,同时屏蔽下一条命令进入命令译码单元,用nop命令代替。结语本文介绍了一个8位risc结构的高速微控制器ip软核的设计,其命令集与pic16f6

温馨提示

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

评论

0/150

提交评论