摘要: 本文在对传统微控制器进行系统分析的基础上, 提出了一种较好的改进设计方法。回避了传统微控制器基于累加器的ALU结构及算术逻辑指令; 并在指令执行时序上尽量减少指令执行所需的时钟周期。通过仿真验证证明该设计方法提高了指令的执行效率和微控制器的运行效率, 同时避免了通常采用并行处理设计中多级流水线设计带来的内部复杂的控制逻辑设计。
在嵌入式系统的设计中, IP技术为SoC的设计提供了有效途径, 是SoC的技术支撑。当然, 在国内开发出具有自主知识产权的IP模块还面临着许多问题, 如核心算法的优化、不同层次模块的建立、模块的可重用问题以及IP模块的标准化问题等。对于嵌入式处理器IP 核, 面对的挑战就是如何选择一个满足其应用需求的处理器。现已有数百种嵌入式处理器, 每组都具备一组不同的外设、存储器、接口和性能特性, 用户很难做出一个合理的选择。本文设计的微处理器的指令集与标准8051单片机完全兼容, 这样有利于开发人员的使用。 1 总体设计方案的拟定
1.1 提出改进方案
首先在对典型八位微处理器进行了详尽地剖析的基础上, 指出在传统典型微处理器内核中制约微处理器整体性能的主要因素, 然后提出以下改进方案:
(1) 微处理器的内核结构上, 将乘、除法单元各自独立出来来完成算术逻辑指令中的乘、除法运算。这样可以回避传统典型微处理器基于累加器的ALU结构及算术逻辑指令, 从而提高逻辑指令的执行效率。
(2) 在指令系统上, 通过采用类RISC的指令系统和硬布线直接产生控制信号的方式来简化指令译码器的设计。同时为内核添加指令缓冲区、采用指令流水线技术、多管道并行执行指令。
(3) 指令时序上, 设计中尽量减少指令执行所需的时钟周期, 提高微处理器的运行效率。
1.2 总体设计思路
根据IP core通用的设计方法, 本文采用了标准的自顶向下的设计方法。就是根据系统级的内容,把系统划分为单元, 然后再把每个单元划分为下一层次的单元, 这样一直划分下去, 直到最底层的单元可以用硬件描述语言进行设计, 如图1所示; 接着在完成各个模块设计的基础上完成系统级设计;然后进行整个系统的仿真验证; 最后选用特定的FPGA芯片进行综合、布局布线以及功能后仿真。 图1 微处理器系统级划分图 2 各子模块的设计
2.1 ALU模块
算术逻辑单元(ALU) 是微控制器的核心部件, ALU的设计依赖于指令系统, ALU采用什么样的结构、设置那些功能都是建立在对系统指令集分析的基础上来完成。
根据算术运算类指令可知, ALU单元主要要完成的功能有: 带/不带进位加/减法、乘法、除法、十进制调整、逻辑运算以及布尔操作的实现。整个操作的完成是通过多路选择器控制来完成。因此, 我们可以对整个ALU系统进行如图2划分, 然后对各个子模块进行设计。
图2 ALU系统划分框图 |