八位高速微控制器ip软核的制作方法

文档序号:6426509阅读:196来源:国知局
专利名称:八位高速微控制器ip软核的制作方法
技术领域
本发明涉及一种八位高速微控制器IP软核,属于集成电路设计技术领域。
背景技术
随着集成电路设计的不断发展,集成电路的规模越来越大,设计难度日趋复杂,传统的设计方法已越来越不能适应集成电路设计发展的需要。基于IP复用的数字集成电路 IC设计方法是有效提高IC设计产能的关键技术,有助于快速实现工艺先进、功能强大的产品。同时,IP软核具有灵活的设计和可定制的外设组,可以保护处理器不过时,在一个芯片 (FPGA)中支持多个处理器,软核微控制器还具有硬件加速功能,将类似乘、除等耗时的运算指令采用硬件来实现,从而大大挺高了软核微控制器的性能。传统的基于硬核的嵌入式开发需要根据不同的应用需求选用不同的硬核,而不同厂家的硬核采用不同的软件开发工具,这就迫使嵌入式系统开发工程师花大量的时间和精力来熟悉不同的软件开发工具。而软核微控制器的可定制可裁剪特性使它几乎适用于任何应用需求,嵌入式系统开发工程师就可以长期使用熟悉的软件开发工具。

发明内容
本发明的目的是解决传统的基于硬核的微控制器的通用性差的问题,提供一种八位高速微控制器IP软核。本发明所述八位高速微控制器IP软核,它由有限状态机控制器、数据通道、数据存储器和程序存储器组成,数据通道的数据信号输入输出端连接数据存储器的数据信号输出输入端,数据存储器的控制信号输入端连接有限状态机控制器控制数据存储器读写使能的控制信号输出端,有限状态机控制器的数据通道控制信号输出端连接数据通道的控制信号输入端,数据通道的状态信号输出端连接有限状态机控制器的状态信号输入端,有限状态机控制器的地址信号输出端连接程序存储器的地址信号输入端,程序存储器的指令信号输出端连接有限状态机控制器的指令信号输入端。所述数据通道由算术逻辑单元、寄存器堆和选择单元组成,算术逻辑单元用于按照有限状态机控制器输出的控制信号,实现算术运算、逻辑运算和循环移位操作,在算术逻辑单元中做运算的操作数包括来自于寄存器堆的操作数, 算术逻辑单元的运算结果由有限状态机控制器译码后的控制信号决定存放位置;数据存储器用于存放待操作的数据和算术逻辑单元运算后的结果;寄存器堆用于存储有限状态机控制器在数据处理过程中产生的中间数据;选择单元用于根据有限状态机控制器输出的控制信号选择接收数据存储器输出的数据、寄存器堆输出的数据或者外部输入的数据给算术逻辑单元。所述有限状态机控制器包括三个状态,分别为取指令状态、指令译码状态和指令执行状态,
取指令状态,用于产生对程序存储器进行读取的相关控制信号指令,并将取出的指令存储在指令寄存器中;然后进行指令译码状态;指令译码状态,用于根据指令寄存器中存储的指令,产生控制算术逻辑单元、寄存器堆或数据存储器的数据通道信号,并将该数据通道信号存储在相应的寄存器中,同时更新程序存储器,为下次读取指令产生目的地址;然后进行指令执行状态;指令执行状态用于产生读写数据存储器的控制信号和读写状态寄存器的使能信号,将算术逻辑单元、寄存器堆或数据存储器的数据通道处理后的结果写回数据存储器和状态寄存器。本发明的优点是本发明为嵌入式系统的核心,具有很高的通用性和灵活性,可广泛地应用于工业控制、机械设备、家用电器以及汽车电子等各个领域。本发明采用自顶向下的设计思想实现了八位高速微控制器IP软核的硬件结构,并通过仿真实验验证了它的可行性和正确性,通用性强。在实际硬件电路中,经实验证实,该IP核的运行频率可达到 25MHz,因此可应用于高速控制领域。本发明中,将数据存储器和程序存储器分开设置,有利于提高IP软核的运行速度,使工作效率高。


图1为本发明的结构示意图;图2为数据通道的结构图;图3为有限状态机控制器三个状态的状态切换图;图4为有限状态机控制器的三级流水线操作过程示意图;图5为有限状态机控制器的具体输入输出控制信号图。
具体实施例方式具体实施方式
一下面结合图1说明本实施方式,本实施方式由有限状态机控制器1-1、数据通道1-2、数据存储器1-3和程序存储器1-4组成,数据通道1-2的数据信号输入输出端连接数据存储器1-3的数据信号输出输入端,数据存储器1-3的控制信号输入端连接有限状态机控制器1-1控制数据存储器读写使能的控制信号输出端,有限状态机控制器1-1的数据通道控制信号输出端连接数据通道 1-2的控制信号输入端,数据通道1-2的状态信号输出端连接有限状态机控制器1-1的状态信号输入端,有限状态机控制器1-1的地址信号输出端连接程序存储器1-4的地址信号输入端,程序存储器1-4的指令信号输出端连接有限状态机控制器1-1的指令信号输入端。数据存储器1-3的功能是存放待操作的数据和运算后的结果。数据存储器1-3的数据位宽为8位,地址位宽为8位,为了实现对数据存储器1-3同时读写,可采用Xilinx或 Altera提供的双端口存储器模块来实现数据存储器。本实施方式在使用时,要与外设配合使用,可有时钟模块、按键消抖模块、输入输出模块和数码管显示模块,时钟模块用于为本发明的IP软核内的所有组件提供时钟信号, 按键消抖模块用于输出消抖信号给有限状态机控制器1-1,数据通道1-2的数码显示信号输出给数码管显示模块进行数码显示,输入输出模块用于实现IP软核与外界进行数据交互。有限状态机控制器1-1由包含三个状态的有限状态机构成,它会根据指令产生相应的指示信号控制系统的协调运行。时钟模块可采用Xilinx的DCM时钟管理模块,以实现时钟的灵活精确控制。按键消抖模块用来对复位等功能的按键进行消抖。输入输出模块I/O提供了系统内部的数据总线与外界总线的连接接口,实现数据的输入/输出,用来对IP软核进行调试和验证。输入输出模块I/O在本实施方式中只包含一个8位的PORTB和一个波特率固定38400的UART。 数码管显示模块可用于分担在C程序中编码的任务,使IP软核专注于其它数据处理,进一步提高了 IP软核的性能。
具体实施方式
二 下面结合图2说明本实施方式,本实施方式为对实施方式一的进一步说明,所述数据通道1-2由算术逻辑单元1-21、寄存器堆1-22和选择单元1-23组成,算术逻辑单元1-21用于按照有限状态机控制器1-1输出的控制信号,实现算术运算、逻辑运算和循环移位操作,在算术逻辑单元1-21中做运算的操作数包括来自于寄存器堆1-22的操作数,算术逻辑单元1-21的运算结果由有限状态机控制器1-1译码后的控制信号决定存放位置;数据存储器1-3用于存放待操作的数据和算术逻辑单元1-21运算后的结果;寄存器堆1-22用于存储有限状态机控制器1-1在数据处理过程中产生的中间数据;选择单元1-23用于根据有限状态机控制器1-1输出的控制信号选择接收数据存储器1-3输出的数据、寄存器堆1-22输出的数据或者外部输入的数据给算术逻辑单元 1-21。寄存器堆1-22可为32X8位,系统可以对数据存储器1_3用多种寻址方式进行访问。数据通道1-2能够完成对操作数的加工、处理和存储工作。算术逻辑单元1-21是IP软核运算电路的核心部分,它的字宽为8位,算术逻辑单元1-21中做运算的2个操作数来自寄存器堆1-22或外部10,最后运算的结果由指令译码后的控制信号决定存放在寄存器堆1-22中或传递到外部10。寄存器堆1-22用来存储有限状态机控制器1-1数据处理过程中的中间数据。由于访问存储器的时间要比访问寄存器的时间长,所以采用寄存器堆1-22来存储有限状态机控制器1-1数据处理过程中的中间数据可以显著提升IP软核的性能。寄存器堆1-22由通用寄存器堆、堆栈寄存器和状态寄存器组成。通用寄存器堆由32个8位的寄存器组成, 堆栈寄存器和状态寄存器的位宽分别是16和8。
具体实施方式
三下面结合图3说明本实施方式,本实施方式为对实施方式一或二的进一步说明,所述有限状态机控制器1-1包括三个状态,分别为取指令状态、指令译码状态和指令执行状态,取指令状态,用于产生对程序存储器1-4进行读取的相关控制信号指令,并将取出的指令存储在指令寄存器中;然后进行指令译码状态;指令译码状态,用于根据指令寄存器中存储的指令,产生控制算术逻辑单元1-21、寄存器堆1-22或数据存储器1-3的数据通道信号,并将该数据通道信号存储在相应的寄存器中,同时更新程序存储器1-4,为下次读取指令产生目的地址;然后进行指令执行状态;指令执行状态用于产生读写数据存储器1-3的控制信号和读写状态寄存器的使能信号,将算术逻辑单元1-21、寄存器堆1-22或数据存储器1-3的数据通道处理后的结果写回数据存储器1-3和状态寄存器。
具体实施方式
四下面结合图4和图5说明本实施方式,本实施方式为对实施方式三的进一步说明,所述有限状态机控制器1-1的取指令状态、指令译码状态和指令执行状态采用三级流水线控制,该三级流水线控制过程为在第一指令周期,取指令状态从程序存储器1-4中取出一条待执行的指令,并存储在指令寄存器中,同时程序计数器加1 ;在第二个指令周期,指令译码状态从所述指令寄存器中取出第一条指令,进行第一条指令译码,并把译码后的控制信号锁存起来;同时取指令状态从程序存储器1-4中取出下一条待执行的指令,并锁存在指令寄存器中,此时程序计数器再加1 ;在第三个指令周期,指令执行状态取出前一指令周期锁存起来的译码后的控制信号进行第一条指令的执行,同时指令译码状态进行第二条指令的译码,取指令状态进行第三条指令的取指,此时程序计数器再加1 ;依次循环进行。图5所示有限状态机控制器1-1包含三个状态,它能够产生控制整个IP软核协调运行的控制信号。本发明中时钟源采用60MHz外接晶振,经FPGA专用时钟输入引脚引入。使用 Xilinx的DCM或Altera的PLL分频得到稳定可靠且相位占空比等可控的时钟信号,然后送给所有需要时钟信号的模块。三级流水线本发明中三级流水线划分为取指、指令译码和执行三级。从时序上看,取指令与指令译码、指令执行是并行执行的,即在当前指令取指的同时,前二条指令分别处于指令译码和指令执行阶段。程序跳转指令与其它单周期指令一样进入流水线,在执行程序跳转时,屏蔽下一条指令进入指令译码单元,用空操作指令NOP代替。这样,控制逻辑不需要做太大修改就能满足流水线的执行。本发明的总线采用了哈佛结构,16/32位指令字长,8位数据字长,指令集与 ATMEG8兼容。它具有133(实现了 74条)条指令,在连续工作的情况下,除了程序跳转类指令要用2个指令周期外,其它的所有指令都可以在1个指令周期内完成。由于哈佛结构总线具有独立的指令总线和数据总线,可同时从数据存储器1-3和程序存储器1-4中分别读取数据,大大提高了 IP软核内部执行的并行性,简化了控制电路的设计。本发明三级流水线的实现方式。与更深级流水线相比,简单的指令周期避免了深度流水线造成的增加电路结构复杂性和芯片面积。有限状态机控制器1-1本发明的指挥中心,它根据每一条指令的操作码译出相应的控制信号,来控制数据通道1-2协调有序地对操作数进行加工、处理和存储。本发明在设计的过程中,需要进行IP软核的仿真测试,通过自主建立的测试平台,编写了覆盖所有指令的测试文件,对软核的多种指令、地址和数据组合进行了仿真测试,提高了软核功能仿真的测试覆盖率,保证了设计的正确性。由PC、0PC、ALU_0P等的信号变化来验证设计的正确性。在正常情况下,程序计数器是在每个指令周期进行加1,当遇到长指令(32位的指令)时程序计数器加2,当遇到跳转类指令时程序计数器跳转到目的地址。当中断使能信号INT_ENA = 1时,地址在下一指令周期跳到中断向量地址,同时屏蔽下一条指令进入指令译码单元,用NOP指令代替。IP软核在不同的硬件平台上实现时的逻辑资源使用情况如表1所示。通过分析发现本发明中的IP软核能在现存的主流FPGA中占用很少的逻辑资源的情况下大大改善传统 MegaS微控制的性能,有很好的应用前景。表 权利要求
1.一种八位高速微控制器IP软核,其特征在于它由有限状态机控制器(1-1)、数据通道(1-2)、数据存储器(1-3)和程序存储器(1-4)组成,数据通道(1-2)的数据信号输入输出端连接数据存储器(1-3)的数据信号输出输入端,数据存储器(1-3)的控制信号输入端连接有限状态机控制器(1-1)控制数据存储器读写使能的控制信号输出端,有限状态机控制器(1-1)的数据通道控制信号输出端连接数据通道(1-2)的控制信号输入端,数据通道(1- 的状态信号输出端连接有限状态机控制器(1-1)的状态信号输入端,有限状态机控制器(1-1)的地址信号输出端连接程序存储器(1-4)的地址信号输入端,程序存储器(1-4)的指令信号输出端连接有限状态机控制器 (1-1)的指令信号输入端。
2.根据权利要求1所述的八位高速微控制器IP软核,其特征在于所述数据通道 (1-2)由算术逻辑单元(1-21)、寄存器堆(1-2 和选择单元(1-2 组成,算术逻辑单元(1-21)用于按照有限状态机控制器(1-1)输出的控制信号,实现算术运算、逻辑运算和循环移位操作,在算术逻辑单元(1-21)中做运算的操作数包括来自于寄存器堆(1-22)的操作数,算术逻辑单元(1-21)的运算结果由有限状态机控制器(1-1)译码后的控制信号决定存放位置;数据存储器(1-3)用于存放待操作的数据和算术逻辑单元(1-21)运算后的结果;寄存器堆(1-2 用于存储有限状态机控制器(1-1)在数据处理过程中产生的中间数据;选择单元(1-2 用于根据有限状态机控制器(1-1)输出的控制信号选择接收数据存储器(1- 输出的数据、寄存器堆(1-2 输出的数据或者外部输入的数据给算术逻辑单元 (1-21)。
3.根据权利要求1或2所述的八位高速微控制器IP软核,其特征在于所述有限状态机控制器(1-1)包括三个状态,分别为取指令状态、指令译码状态和指令执行状态,取指令状态,用于产生对程序存储器(1-4)进行读取的相关控制信号指令,并将取出的指令存储在指令寄存器中;然后进行指令译码状态;指令译码状态,用于根据指令寄存器中存储的指令,产生控制算术逻辑单元(1-21)、寄存器堆(1-2 或数据存储器(1- 的数据通道信号,并将该数据通道信号存储在相应的寄存器中,同时更新程序存储器(1-4),为下次读取指令产生目的地址;然后进行指令执行状态;指令执行状态用于产生读写数据存储器(1- 的控制信号和读写状态寄存器的使能信号,将算术逻辑单元(1-21)、寄存器堆(1-22)或数据存储器(1-3)的数据通道处理后的结果写回数据存储器(1-3)和状态寄存器。
4.根据权利要求3所述的八位高速微控制器IP软核,其特征在于所述有限状态机控制器(1-1)的取指令状态、指令译码状态和指令执行状态采用三级流水线控制,该三级流水线控制过程为在第一指令周期,取指令状态从程序存储器(1-4)中取出一条待执行的指令,并存储在指令寄存器中,同时程序计数器加1 ;在第二个指令周期,指令译码状态从所述指令寄存器中取出第一条指令,进行第一条指令译码,并把译码后的控制信号锁存起来;同时取指令状态从程序存储器(1-4)中取出下一条待执行的指令,并锁存在指令寄存器中,此时程序计数器再加1 ;在第三个指令周期,指令执行状态取出前一指令周期锁存起来的译码后的控制信号进行第一条指令的执行,同时指令译码状态进行第二条指令的译码,取指令状态进行第三条指令的取指,此时程序计数器再加1 ;依次循环进行。
全文摘要
八位高速微控制器IP软核,属于集成电路设计技术领域。它解决了传统的基于硬核的微控制器的通用性差的问题。它由有限状态机控制器、数据通道、数据存储器和程序存储器组成,数据通道的数据信号输入输出端连接数据存储器的数据信号输出输入端,数据存储器的控制信号输入端连接有限状态机控制器控制数据存储器读写使能的控制信号输出端,有限状态机控制器的数据通道控制信号输出端连接数据通道的控制信号输入端,数据通道的状态信号输出端连接有限状态机控制器的状态信号输入端,有限状态机控制器的地址信号输出端连接程序存储器的地址信号输入端,程序存储器的指令信号输出端连接有限状态机控制器的指令信号输入端。本发明作为一种微控制器。
文档编号G06F9/22GK102214084SQ20111016330
公开日2011年10月12日 申请日期2011年6月17日 优先权日2011年6月17日
发明者廖祺昌, 李志强, 桂太龙, 汪浩淼, 王建民, 王欢, 高贞 申请人:哈尔滨理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1