EDN China > 设计实例 > EDA工具与服务 > 正文
?

8位高速微控制器IP软核的设计与实现

耿磊 李平等?? 2008年09月17日 ?? 收藏0

  引言

  随着集成电路设计的不断发展,集成电路的规模越来越大,设计难度日趋复杂,传统的设计方法已越不能适应集成电路设计发展的需要。基于IP复用的数字IC设计方法是有效提高IC设计产能的关键技术,有助于快速实现工艺先进、功能强大的产品。

  微控制器MCU是嵌入式系统的核心,8位MCU IP核具有很高的通用性和灵活性,广泛地应用于工业控制、机械设备、家用电器以及汽车电子等各个领域。本文介绍的是基于 RISC体系结构的8位高速MCUIP软核的设计与实现,采用Verilog HDL自上而下地描述了MCUIP软核的硬件结构,并验证了设计的可行性和正确性。在实际硬件电路中,该IP核的运行频率达到75MHz,可应用于高速控制领域。

  系统结构设计

  本设计的总线采用了哈佛结构,14位指令字长,8位数据字长,指令集与PIC16F676兼容。它具有35条指令,在连续工作的情况下,除了程序跳转指令要用2个指令周期外,其它的所有指令都可以在1个指令周期内完成。由于哈佛结构总线具有独立的指令总线和数据总线,可同时从程序存储器和数据存储器中分别读取数据,大大提高了MCU内部执行的并行性,简化了控制电路的设计。与更深级流水线相比,简单的指令周期避免了深度流水线增加电路结构复杂性和芯片面积。

  该微处理器在结构上可以划分为四个子系统,分别为控制单元、数据通道、存储单元、I/O单元。其中数据通道包含ALU和一个W工作寄存器。片内程序存储器ROM的容量是8k×14位;数据存储器由包括专用寄存器在内的256个可寻址的8位寄存器组成,通过数据总线与算术逻辑单元ALU相连,系统可以对数据存储器用直接或间接寻址方式进行访问。I/O单元提供了系统内部的数据总线与外界总线的连接接口,实现数据的输入/输出。控制单元则会根据指令产生相应的指示信号控制系统的协调运行。系统结构如图1所示。

系统结构

  MCU IP核的时序设计

  时钟网络的时序设计

  本设计的时序设计部分采用内部包含4个节拍时钟的结构,时钟网络模块在复位结束后会利用两级嵌套的D触发器将外部时钟(CLK)分频产生4个非重叠正交的节拍时钟信号q1、q2、q3、q4,一个指令周期分为4个状态。节拍时钟会与译码电路产生的控制信号配合,在不同时钟节拍选通不同的电路操作,进而协调整个系统的运行。

  二级流水线时序设计

  本设计所采用的二级流水线划分为取指和执行两级。系统运行时,会在前一指令周期的q4节拍从ROM中取出下一条待执行的指令并锁存在指令寄存器中,在下一指令周期的q1节拍从指令寄存器中取出指令,同时程序计数器(PC)加1,q2到q4对所取指令进行译码和执行。因此,一条指令的完整执行过程大概分为取指令、指令锁存、指令译码、取操作数、执行、回写、PC+1等7个步骤。从时序上看,指令取指周期与执行周期是并行执行的,即在取指的同时,上一条指令正在进入执行周期。

  程序跳转指令与其它单周期指令一样进入流水线,在执行程序跳转指令时,屏蔽下一条指令进入指令译码单元,用空操作指令NOP代替。这样,控制逻辑不需要做太大修改就能满足流水线的执行。二级指令流水线操作过程如图2所示。

二级指令流水线操作过程

  MCU IP核的内部电路实现

  指令寄存器

  指令寄存器(IR)是为了实现两级指令流水线而设计的。如果没有指令寄存器,那么取指和执行就分别需要占用一个指令周期。但如果利用IR,在上条指令执行的同时把下一条指令从程序存储器ROM中取出来寄存在IR中,这样在每个指令周期内同时有指令的取出和执行,等效来看,一条指令只需要一个指令周期就可以执行完毕,从而提高了效率。

  指令寄存器IR的另外一个功能是当执行分支指令的时候产生空操作,这是采用指令流水线结构所必需的。例如在执行程序跳转指令GOTO的时候,由于 GOTO指令会改变程序计数器PC的值,跳转到另外的地址,那么在执行GOTO指令时取得的紧接GOTO的下一条指令就不是要执行的下一条指令,这个已经取得的指令就必须被屏蔽。具体的操作是在执行GOTO指令的时候,指令译码单元产生清零信号使得指令寄存器内部14位寄存单元被清零,那么下一指令周期的输出就变为NOP指令。在执行该空操作的同时把GOTO指令跳转后指向地址对应的指令取出来,在下个指令周期执行。

  指令译码单元

  指令译码单元在每个时钟周期的q1节拍接收来自IR的14位执行指令,并对指令进行译码工作,给出其它各单元的操作控制信号,包括算术逻辑单元(ALU)的运算控制信号、RAM的读写控制、总线控制器的选择信号、PC寻址等。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

微控制器? IP软核? PIC16F676?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈