西 安 邮 电 大 学
实 践 课 程 报 告 书
课程名称:院(系)名称 专业班级 学号/姓名 实习时间
计算机组成与实践
电子工程学院
**
**
2015年3月6日至2015年6月19日
::::1 课程主要目的
本课程是在上学期《计算机组成与设计》课程学习的基础上,通过实践课的方式,依照集成电路设计流程,完成一个简单独立硬件功能电路模块的设计,从而到达对《计算机组成与设计》课程的深入理解和提高电路设计的实践能力,从理论和实验的结合中巩固计算机基本知识,熟练掌握电路设计的基本流程和原理,同时,加深对MIPS系统的组成部件及其电路结构,原理和功能的理解,掌握利用硬件描述语言和EDA工具进行MIPS设计的一般方法。
2 课程的主要内容和任务
MIPS是典型的32位定长指令字RISC处理器,要求深入理解MIPS处理器的内部结构及工作原理。采用verilogHDL设计一个兼容MIPS指令格式,具有10条以上指令功能的单周期CPU硬件电路,该32位MIPS设计内容主要包括系统中的基本组成部件(存储器,指令寄存器,寄存器堆,算术逻辑运算器,程序计数器,多路选择器,符号扩展等)的设计,仿真及硬件下载的方法和过程。设计过程中使用ISE仿真工具完成设计电路的仿真验证。
3总体设计方案
3.1指令及其功能表: (1)R型指令: 指令 add addu sub subu or and sla lr sr
(2)I型指令: 指令 addi addiu 指令格式 op 001000 001001 rs sj1 sj1 rt Sj2 Sj2 Immediate Imm Imm 功能 Sj2= sj1+imm Sj2= sj1+imm 指令格式 op 000000 000000 000000 000000 000000 000000 000000 000000 000000 rs sj1 Sj1 Sj1 Sj1 Sj1 rt Sj2 Sj2 Sj2 xx xx rd jg jg jg jg jg shame xx xx xx xx 移位数 func 100000 100001 100010 100011 000010 000011 000100 功能 Jg=sj1+sj2 Jg=sj1+sj2 Jg=sj1-sj2 Jg=sj1-sj2 Jg=sj1|sj2 Jg=sj1&sj2 Jg 001100 001101 100011 101011 001010 001011 sj1 Sj1 base base Sj1 sj1 Sj2 Sj2 rt rt Sj2 Sj2 Imm Imm offset offset imm imm Sj2= sj1&imm Jg=sj1|sj2 offset?Memory[base+imm] Memory[base+imm]?offset sj1=Sj2 3.2总体结构设计: 该MIPS主要由8个模块组成,各个子模块分别设计其特定的功能,最终利用一个总的模块进行子模块间连接,使得整个CPU能连贯执行指令,在仿真结果中观察设计结果,最终进行硬件下载,验证设计。其中各个模块简单功能如下: (1)存储器模块:具备基本的读写功能,用于存放数据和指令。 (2)寄存器堆模块:由32个32位的寄存器组成,提供较大的存储空间,用于存放暂存数据和指令。 (3)算术逻辑运算器模块:执行加减法等算术运算,与非或等逻辑运算,以及比较移位传送等操作的功能部件,是该CPU的设计核心部分,存在不同的运算处理功能,是体现实验设计结果正确性的模块。 (4)立即数扩展模块:执行I型指令时需要立即数扩展,该模块用于MIPS符号扩展,将16位数据扩展为32位数据。 (5)主控制模块:用于控制各个模块之间的分工运行,产生不同数据通路的控制信号,保证指令顺序执行不发生紊乱。 (6)ALU控制模块:用于生成ALU执行各种功能的控制信号,使ALU内部运行不发生紊乱。。 (7)分支跳转指令控制模块:用于生成分支和跳转指令的控制信号。 (8)取指模块:进行指令的取出及译码,同时包括程序计数器PC运行设计。 各模块间关系如下: 指令格式 op 000100 000101 rs sj1 sj1 rt Sj2 Sj2 offset offset offset 功能 If sj1=sj2 then branch If sj1≠sj2 then branch