8位高速微控制器IP软核的设计与实现
时间:12-08
来源:互联网
点击:
随着集成电路设计的不断发展,集成电路的规模越来越大,设计难度日趋复杂,传统的设计方法已越不能适应集成电路设计发展的需要。基于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寻址等。
算术逻辑单元
算术逻辑单元(ALU)是微控制器运算电路的核心部分,主要功能是按照指令译码器输出的控制信号,实现算术运算、逻辑运算、循环移位等操作。ALU的字宽是8位,在ALU中做运算的2个操作数分别来自W寄存器和数据总线,最后运算的结果由指令译码后的控制信号决定是存放在W寄存器中,还是通用寄存器RAM中。本文通过将加、减操作复用到一个8位超前进位加法器,大大缩短了ALU算术运算的时间,进而提高了整个系统的运行速度。
微控制器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寻址等。
算术逻辑单元
算术逻辑单元(ALU)是微控制器运算电路的核心部分,主要功能是按照指令译码器输出的控制信号,实现算术运算、逻辑运算、循环移位等操作。ALU的字宽是8位,在ALU中做运算的2个操作数分别来自W寄存器和数据总线,最后运算的结果由指令译码后的控制信号决定是存放在W寄存器中,还是通用寄存器RAM中。本文通过将加、减操作复用到一个8位超前进位加法器,大大缩短了ALU算术运算的时间,进而提高了整个系统的运行速度。
集成电路 电路 MCU 嵌入式 汽车电子 Verilog 总线 PIC 仿真 Quartus Altera 相关文章:
- 基于MSP430单片机的多路数据采集系统的设计(06-20)
- LED照明全方位渗透,高能效驱动方案点亮前景(11-17)
- 使用L6506 实现步进电机的电流控制(12-10)
- 激光微加工系统及基于DSP+FPGA的控制单元的研究(03-05)
- Si472x射频收发芯片的交通状况提示装置(02-18)
- 红外方式数字图像采集报警系统的设计(03-15)
