您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告
计算机原理与设计实验报告实验三多周期MIPSCPU的控制部件用有限状态机实现多周期CPU的控制部件姓名:XXX学号:2013551728班级:13级软件工程2班实验日期:2014年11月12日实验地点信息楼605硬件环境Intel(R)Core™i3-3240,1.91GB系统环境WindowsXPSP3设计软件QuartusII13.0器件型号EP1C12QC240C8一.实验目的1、了解MIPS—CPU控制器的功能和工作原理;2、掌握用有限状态机技术实现多周期控制器的方法;3、熟练掌握用VerilogHDL语言设计多周期控制器的方法;4、熟练掌握对多周期控制器的仿真实验验证和硬件测试两种调试方法;5、掌握向MIPS-CPU顶层数据通路中增加控制单元的方法,并通过仿真验证和硬件测试两种方法对电路进行故障定位的调试技术。二.实验内容(1)MIPS—CPU控制器的有限状态机设计,根据MIPS—CPU各种类型指令执行要求和有限状态机的设计原理,将多周期控制器的指令执行划分为多个状态,确定每一种指令的有限状态机,最后归纳为完整的多周期控制器有限状态机。通过VerilogHDL语言实现多周期控制器有限状态机。(2)根据MIPS—CPU控制器的接口要求,在有限状态机的基础上,用VerilogHDL实现完整的MIPS—CPU控制器的设计,并根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(3)设计控制器的硬件下载测试方案。将编译通过的电路下载到实验台中。根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序重新编译;最终完成控制器的硬件电路设计;(4)在MIPS—CPU指令系统的数据通路基础上,增加控制单元电路,并进行编译,仿真波形和调试。根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(5)对增加了控制单元的顶层数据通路设计硬件下载测试方案。将编译通过的电路下载到实验台中。根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;最终完成增加了控制单元的顶层数据通路设计。三.实验原理与步骤1.把指令执行分成多个阶段,每个阶段在一个时钟周期内完成(1).时钟周期以最复杂阶段所花时间为准(2).尽量分成大致相等的若干阶段(3).每个阶段内最多只能完成:1次访存或1次寄存器堆读/写或1次ALU2.每步都设置相应的存储元件,执行结果都在下个时钟开始保存到相应单元3.认真阅读书上的控制部件代码后,将其按照电路图进行拆分,拆分为三个部件,并在顶层模块中连接线路。四.实验源代码D触发器源代码:下一状态部件源代码:输出函数部件源代码:五.EDA阶段的实验结果(“编译”、“仿真”等)仿真结果如上图。六.实验电路结构图七.实验按键显示说明及引脚分配1、本实验按键及显示说明(1)按键说明按键对应功能键1op键2op键3func键4func键7clk键8clrn(2)显示说明数码编号对应结果数码1aluc数码2aluscrb数码3pcsource[1..0]数码4jalregretm2regD1wregD2sextD3shiftD4selpcD5wmemD6iordD7wirD8wpc引脚分配表:NodeNameLocationop[5]PIN_238op[4]PIN_237op[3]PIN_236op[2]PIN_235op[1]PIN_234op[0]PIN_233func[5]PIN_7func[4]PIN_6func[3]PIN_4func[2]PIN_3func[1]PIN_2func[0]PIN_1zPIN_12clrnPIN_173clkPIN_169wpcPIN_160wirPIN_159iordPIN_158wmemPIN_141selpcPIN_140shiftPIN_139sextPIN_138wregPIN_137aluc[3]PIN_136aluc[2]PIN_135aluc[1]PIN_134aluc[0]PIN_133alusrcb[0]PIN_21alusrcb[1]PIN_41pcsource[1]PIN_18pcsource[0]PIN_17m2regPIN_15regrtPIN_14jalPIN_13八.测试时的电路总体结构及其说明多周期CPU控制部件的状态转移图多周期CPU控制部件的电路结构图实验电路图九.测试计划(包括计划进行的系统测试、每一测试的测试过程、测试所需的测试数据、预期结果数据等)及其相关说明下一状态函数的真值表实验结果如下:输入输出op[5..0]func5..0[]状态指令ZwpcPcsource[1:0]wiriordwmemaluc[3:0]selpcshiftalusrcb[1:0]sextwregm2regregrtjalXXsifxX100000X000100110000000011Xsidi_jX111000X000100010000000011Xi_jalX111100X000100111001000000001000i_jrX110000X000000010000XXi-othersX000000X000100110000000000Xsexei_addX0xx0x0X0000000x0xx0000000Xi_subX000000X100000010000000000100000i_andX000000X001000010000000000100010i_orX000000X101000010000000000100100i_xorX000000X010000010000000000100110i_sllX000000X011010010000000000000000i_srlX000000X111010010000000000000011i_sraX0000001111010110000001000Xi_addiX000100X000001010000001100Xi_andiX100000X001101000000001101Xi_oriX000000X101001000000001110Xi_xoriX000000X010001000000100011Xi_lwX000000X000001010000101011Xi_swX000000X000001010000000100Xi_beq0000000X000001010000100000101Xi_bne0001000X010000010000110001111000000i_luiX000000X110000010000100011Xsmemi_lwX000010X000000010000101011Xi_swX000010X000000010000swbr_typeX001000Xi_addiX100100X000100110000001101Xi_oriX100100X000100110000001111000000i_luiX100100X000100110000100011Xi_lwX000000X000000011110与预期实验结果相符。十.关于实验电路设计的其他说明q(state)值暂未进行输出。十一.实验心得这次实验将控制部件拆分花费了大量的时间,也使得我对于Verilog语言加深了理解和掌握。对cpu的控制部件的结构和原理进行了深入的了解,对以后的学习起到了重要的作用。
本文标题:湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告
链接地址:https://www.777doc.com/doc-4282762 .html