32位嵌入式RISC微处理器设计
发布时间:2020-07-03 04:53
【摘要】: 随着无线通信、多媒体以及互连网技术的发展,电子产品对数据处理量的要求越来越大,对系统运行速度的要求也越来越高,集成电路技术的进步与发展使得可重用性和短设计周期性成为硬件设计的焦点。因此,8位微处理器必将在不久的将来被32位微处理器所取代。 然而,目前大多数的微处理器公司的处理器,只支持一端存储——大端存储或小端存储,会给编译器的编译带来麻烦。业界所广泛采用的Barrel shifter,占用大量多路选择器资源,在价格和应用等方面并不是国内中、低端产品的最佳选择。因此,32位嵌入式微处理器技术在国内中、低端产品的应用上,有着很大的发展空间。 论文依据MIPS32指令系统,以及冯·诺依曼体系结构的特点,提出了32位嵌入式RISC微处理器sfmi_cpu的整体架构,完成sfmi_cpu微处理器的RTL设计实现。采用层次化设计方法,按功能的不同划分为6个模块,所有模块均采用硬件描述语言Verilog HDL实现,并采用有限状态机来提高处理器的稳定性。 为了提高微处理器的工作效率,在sfmi_cpu微处理器设计实现的基础上,深入研究了流水线技术及相关问题的解决方法,改进了传统5级流水线结构,并基本解决了数据相关、结构相关和控制相关的问题。 为了验证RTL代码及解决流水相关问题的有效性,建立软件测试平台,对sfmi_cpu微处理器进行功能仿真、逻辑综合、布局布线、时序仿真,证明设计理论的有效性。 通过验证测试所得到的相关数据表明,论文所设计的32位微处理器sfmi_cpu,相对于目前在在中、低端市场所普遍应用的8位微处理器,在速度上得到了一定的提高。
【学位授予单位】:哈尔滨理工大学
【学位级别】:硕士
【学位授予年份】:2008
【分类号】:TP332
【图文】:
图3-4 Mem_ctrl模块有限状态机图Fig.3-4 Finite state machine of Mem_ctrl module3.3 Tran_id 模块Tran_id 模块用于指令译码,并为所有的功能模块提供一切所需要的信息,主要有指令译码和产生控制信号两个作用。它识别 Mem_ctrl 单元提供的opcode[31:0]值,严格按照 54 条指令组成的指令集进行译码设计。在译出具体指令后,译码电路还给出其它一些重要的控制信号,包括该指令是否为算术运算指令、是否为数据存取指令、是否为转移指令,是否为字节存取/半字存取/整字存取。这些信号直接馈送给控制单元产生相应控制信号,协助完成整个处理器的协调工作,并确定了 rs、rt 和 rd 的地址,选择 ALU/Shifter/Mult 模块执行运算。其中,当 op 取值为!opcode[31]&!opcode[30]&!opcode[29]&!opcode[28]&!opcode[27]&!opcode[26]且 function[5:0]=opcode[5:0]时,由 function 字段控制译码结果。当 op 取值为!opcode[31]&!opcode[30]&!opcode[29]&!opcode[28]&!opcode[27]&opcode[26]且 rt=opcode[20:16]时,为寄存器级立即数寻址,由 rt
input opcode[31:0]opcode[5:0]=000000 opcode[5:0]=000001…… …… ……opcode[5:0]01011Func[5:0]=000000Func[5:0]=0101011……rt[4:0]=00000rt[4:0]=10011……………………output…… ……图3-5 Tran_id模块工作流程图Fig.3-5 The flow chart of Tran_id module
本文编号:2739214
【学位授予单位】:哈尔滨理工大学
【学位级别】:硕士
【学位授予年份】:2008
【分类号】:TP332
【图文】:
图3-4 Mem_ctrl模块有限状态机图Fig.3-4 Finite state machine of Mem_ctrl module3.3 Tran_id 模块Tran_id 模块用于指令译码,并为所有的功能模块提供一切所需要的信息,主要有指令译码和产生控制信号两个作用。它识别 Mem_ctrl 单元提供的opcode[31:0]值,严格按照 54 条指令组成的指令集进行译码设计。在译出具体指令后,译码电路还给出其它一些重要的控制信号,包括该指令是否为算术运算指令、是否为数据存取指令、是否为转移指令,是否为字节存取/半字存取/整字存取。这些信号直接馈送给控制单元产生相应控制信号,协助完成整个处理器的协调工作,并确定了 rs、rt 和 rd 的地址,选择 ALU/Shifter/Mult 模块执行运算。其中,当 op 取值为!opcode[31]&!opcode[30]&!opcode[29]&!opcode[28]&!opcode[27]&!opcode[26]且 function[5:0]=opcode[5:0]时,由 function 字段控制译码结果。当 op 取值为!opcode[31]&!opcode[30]&!opcode[29]&!opcode[28]&!opcode[27]&opcode[26]且 rt=opcode[20:16]时,为寄存器级立即数寻址,由 rt
input opcode[31:0]opcode[5:0]=000000 opcode[5:0]=000001…… …… ……opcode[5:0]01011Func[5:0]=000000Func[5:0]=0101011……rt[4:0]=00000rt[4:0]=10011……………………output…… ……图3-5 Tran_id模块工作流程图Fig.3-5 The flow chart of Tran_id module
【参考文献】
相关期刊论文 前10条
1 龙惠民;吴静;;基于FPGA的RISC CPU设计[J];兵工自动化;2006年12期
2 孙玉钰;关于冯·诺依曼型计算机设计思想的探讨[J];长春大学学报;2001年03期
3 何立民;嵌入式系统的定义与发展历史[J];单片机与嵌入式系统应用;2004年01期
4 朱怡健,吴强,杨全胜;简单高性能微处理器的设计[J];电气电子教学学报;2004年02期
5 李旭;;基于FPGA的流水线技术应用研究[J];电子测量技术;2007年02期
6 周敏;付慧生;李雪峰;;基于流水线的RISC微处理器设计[J];大众科技;2006年05期
7 王雪瑞,戴紫彬,刘元锋;32位嵌入式RISC微处理器设计与实现[J];电子质量;2004年12期
8 陈智勇;;流水线微处理器的设计与实现[J];桂林电子科技大学学报;2007年03期
9 李瑛,高德远,张盛兵;16位定、浮点微处理器的设计[J];计算机工程与应用;2004年04期
10 马鹏,徐国强,王玉艳,章建雄;微处理器仿真技术研究[J];计算机工程;2003年02期
本文编号:2739214
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2739214.html