基于FPGA的微处理惩罚器内核计划与实现
发布日期:2011-05-24
与传统投片实现ASIC相比,FPGA具有实现速率快、危害小、可编程、可随时变动升级等一系列好处,因而得到了越米越遍及的应用。
MCS-51应用时间长、范畴广,相干的软硬件资源丰富,因而每每在
FPGA应用中嵌人MCS-51内核作为微控制器。但是传统MCS-51的指令服从太低,每个呆板周期高达12时钟周期,因此必须对内核加以改造,进步指令实行速率和服从,才华更好地餍足
FPGA的应用。
通过对传统MCS-51单片机指令时序和体系布局的阐发,利用VHDL语言采取自顶向下的计划要领重新计划了一个高效的微控制器内核。改造了的体系布局,可以兼容MCS-51全部指令,每个呆板周期只需1个时钟周期,同时增长了硬件看门狗和软件复位成果,进步了指令实行服从和抗滋扰本领。
1 体系计划
1.1 模块分别
本内核在分别和计划模块时,基于以下几条原则:
(1)同步计划,进步体系稳固性和可移植性;
(2)成果明白,成果靠近的放在同一个模块内以淘汰模块的数量和模块之间的互连接,同时利于综适时的优化;
(3)模块之间的接口时序预先定义好,并严格按定义的时序请求编写每个模块;
(4)模块信号的输出采取寄存器输出的方法。如许可以进步体系的可靠性,一旦堕落也容易确定题目地点。
本内核由以下几个部分构成:中间控制单位(CPU),算术逻辑运算单位(ALU),寄存器组控制器(REGS_CTR),定时器/计数器(T/C),通用串行接口(UART),看门狗(WT_DOG),如图1所示。
1.2 进步速率的要领
本内核采取以下几种步伐来进步速率。
(1) 采取多数据通道:本内核取消了传统MCS-51系列单片机的单一总线,采取直连布局,各模块的数据传输利用单向专用数据线,尤其在数据互换频繁的ALU与REGS_CTR之间采取四条单向数据线相互连接,进步了数据传输的并行度,从而加快了数据的传输。
(2) 采取双相时钟:如图2所示。CLK时钟上升沿CPU发出控制信号,I/O端口采样外部信号即图1中流入REGS_CTR的数据或控制信号;CLK1时钟上升沿把数据写入寄存器中并把革新后的数据或控制信号发出,即图1中虚箭头表现的数据流向。如许REGS_CTR的读写分别在两个时钟的上升沿,淘汰了一个时钟周期的等待,时钟频率进步了一倍。
(3) 采取寄存器组:
FPGA内部有极为丰富的寄存器资源,本内核取消了传统的同临时间只能读大概写的RAM块,代之以可同时举行差别地点读写操纵的寄存器组。一些特别成果寄存器有专用总线输出,如图3所示。
(4) 进步时钟频率:对电路的关键路径举行了改革,以淘汰逻辑电路级数从而进步时钟频率。通过这些计划,包管了每个呆板周期只需一个时钟周期,进步了指令实行服从,同时也进步体系的时钟频率。
1.3 兼容性方面的思量
MCS-51系列单片机有丰富的软硬件资源,为充分利用这些资源,在本内核计划时只管即便思量加强其兼容性。除呆板周期变为原来的1/12以及新建长一个特别成果寄存器(地点F8H)用于控制看门狗和软件复位外,其他没有变革。因而单个内核应用时,过去的步伐可完全移植;在与外界通讯时因呆板周期与MCS-51单片机有差别大概需对一些步伐作相应窜改。如许可以使体系在进步性能的同时无需其他开销,便于推广利用。
2 成果模块的计划
2.1 中间控制器(CPU)的计划
这是微控制器的内核,认真停止处理惩罚及指令实行。停止处理惩罚分为停止取样、停止曲折优先级的果断及实行相应的处理惩罚进程。CPU对指令的实行分为四个阶段:取指-译码、实行、实行-回写、回写-预取指。指令实行流程如图4所示。
在编码实现方法上,本模块是一个大的父子两级状态机,父状态机为指令的范例,子状态机为每种指令的实行步调。如许布局清楚,利于编程、查错及仿真。
2.2 寄存器组(REGS_CTR)的计划
本模块在CPU的控制下完成:步伐地点的孕育产生、曲折128个寄存器的读写。步伐计数器根据控制信号与来自寄存器组的数据孕育产生相应的指令地点并送往ROM。在寄存器组的读写中,用读译码电路选择输出操纵数据,写译码电路写入结果数据。
这种布局可以在对一个寄存器写的同时读另一个寄存器。如图3所示,通用的数据总线可以获取任意一个寄存器的数据,各个专用寄存器也有各自的专用数据线输出。比方实行指令ADDA,DIRECT时,由于累加器ACC有专门的总线,只要给出相应的读控制信号就可以从通用数据总线上得到来自寄存器组的DIRECT数据,如许ALU在同一周期内就可以得到所需的两个操纵数。
2.3 看门狗(WT_DOG)的计划
传统的MCS-51系列单片机为进步抗滋扰本领通常利用外置看门狗大概采取软件陷阱的方法使体系复位。本内核增长了硬件看门狗及软件复位成果,通过新建长一个特别成果寄存器(地点F8H)来控制是否启用看门狗或软件复位以及设置看门狗的喂狗时间。除非失电或用步伐重新设置,F8H寄存器的数值不停生存,如许克制了看门狗复位后其自身失效的题目。
2.4 算术逻辑运算单位(ALU)的计划
累加器在CPU发出的指令控制下,对来自ROM与REGS_CTR的数据完成相应的操纵,包括算术运算(加减乘除)与逻辑运算(与或非)及BCD码调解。全部操纵的结果在一个时钟周期内得出,在clkl上升沿到来后写入REGS_CTR。
2.5 串行模块及定时/计数器的计划
串行模块和定时/计数器的事变模式与传统的MCS-51系列单片机雷同。定时/计数器一个时钟周期计数一次,与传统MCS-51单片机一个呆板周期计数一次结果等同。在与外界用串行端口通讯时呆板周期有差别。
3 仿真、综合优化及实现
3.1 仿真
为了包管内核精确地事变,必须对电路做充分的仿真以包管计划的精确性。体系计划完成后用ModelSim Se PLUS 6.0D对电路举行了成果仿真,对组合逻辑模块(如ALU)采取了穷举测试向量的要领予以成果仿真,对付时序模块如CPU,先测试可否精确实行停止及每一条指令,再测试随机指令及随机停止。仿真结果表明,内核能餍足计划的请求。ALU的仿真结果好像5所示。
此中rom_data、acc、regs_data为ALU的操纵数,in-struction为指令的种别,alu_rslta、alu_rsltb为ALU的操纵结果的高、低字节。由图5可见,在输入操纵数和进制溢位标记位稳固的环境下,差别的指令都能输出相映射的精确结果。ALU操纵结果的数据予以锁存,直到下一个指令或数据到来时才变化。在保持指令稳固的环境下变化输入数据和进制溢位标记位也能得到精确的结果。
3.2 综合优化
为了尽大概进步时钟频率,必须低落关键路径的延时。由于ALU全部的操纵都要在一个周期内完成,因而操纵所需的最永劫间也是时钟周期的最小值。综合阐发后发明操纵时间最长的是除法运算,采取通移位相减除法器所需时间为39ns,要是采取并行除法器后则只需23ns,从而明显进步了时钟频率。内核综合后斲丧的LUT为4500个。
3.3 实现
本内核的全部事变都在ISE7.1开辟环境下完成。此中,仿真用的是ModelSim Se PLUS 6.0D,综实用的软件是Synplify Pro 8.0。验证采取的平台足CREAT-SOPC1000X试验箱,它的内核芯片即
FPGA利用的是Xilinx公司的Virtex-Ⅱxc2v1000-6 fg456,等效为100万门电路,如图6所示。平台上集成了一些常用的成果模块,此中的晶振为50MHz,高出了本内核综合后的最高频率,因而计划了一个5分频模块使时钟为10MHz。
内核运行的测试步伐和数据以事先呆板代码的情势“固化”在一个步伐模块内更换ROM,体系可以像ROM一样对其读取数据和步伐。P0-3输出观察数据,查验步伐是否精确实行。验证结果表明,内核能精确实行加载的步伐并稳固运行在10MHz的频率上。
为降服传统MCS-51单片机实行服从偏低的缺点,餍足如今的
FPGA对
嵌入式软核速率较高的请求,重新计划了一个兼容MCS-51指令的
嵌入式软核。该软核指令服从进步了12倍,同时增长了实用的成果:硬件看门狗和软件复位。内核通过
FPGA验证具有肯定的应用代价。