1、湘潭大学计算机原理 实验三 多周期MIPS CPU的控制部件实验报告计算机原理与设计实验报告实验三 多周期MIPS CPU的控制部件用有限状态机实现多周期CPU的控制部件姓名: XXX学号: 2013551728班级: 13级软件工程2班实验日期: 2014年 11 月12 日实验地点信息楼605硬件环境Intel(R) Core i3-3240 ,1.91GB系统环境Windows XP SP3设计软件Quartus II 13.0器件型号EP1C12QC240C8一实验目的1、了解MIPSCPU控制器的功能和工作原理;2、掌握用有限状态机技术实现多周期控制器的方法;3、熟练掌握用Veril
2、og HDL语言设计多周期控制器的方法;4、熟练掌握对多周期控制器的仿真实验验证和硬件测试两种调试方法;5、掌握向MIPS-CPU顶层数据通路中增加控制单元的方法,并通过仿真验证和硬件测试两种方法对电路进行故障定位的调试技术。二实验内容(1)MIPSCPU控制器的有限状态机设计,根据MIPSCPU各种类型指令执行要求和有限状态机的设计原理,将多周期控制器的指令执行划分为多个状态,确定每一种指令的有限状态机,最后归纳为完整的多周期控制器有限状态机。通过Verilog HDL语言实现多周期控制器有限状态机。(2)根据MIPSCPU控制器的接口要求,在有限状态机的基础上,用Verilog HDL实现
3、完整的MIPSCPU控制器的设计,并根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(3)设计控制器的硬件下载测试方案。将编译通过的电路下载到实验台中。根据硬件调试结果验证设计的正确性,并对出现的故障进行定位,修改程序重新编译;最终完成控制器的硬件电路设计;(4)在MIPSCPU指令系统的数据通路基础上,增加控制单元电路,并进行编译,仿真波形和调试。根据仿真波形,验证设计的正确性,并对出现的故障进行定位,修改程序,重新编译;(5)对增加了控制单元的顶层数据通路设计硬件下载测试方案。将编译通过的电路下载到实验台中。根据硬件调试结果验证设计的正确性,并对出现的故障进行定
4、位,修改程序,重新编译;最终完成增加了控制单元的顶层数据通路设计。三实验原理与步骤1.把指令执行分成多个阶段,每个阶段在一个时钟周期内完成(1).时钟周期以最复杂阶段所花时间为准(2).尽量分成大致相等的若干阶段(3).每个阶段内最多只能完成:1次访存 或 1次寄存器堆读/写 或 1次ALU2.每步都设置相应的存储元件,执行结果都在下个时钟开始保存到相应单元3.认真阅读书上的控制部件代码后,将其按照电路图进行拆分,拆分为三个部件,并在顶层模块中连接线路。四实验源代码D触发器源代码:下一状态部件源代码:输出函数部件源代码:五EDA阶段的实验结果( “编译”、 “仿真” 等)仿真结果如上图。六实验
5、电路结构图七实验按键显示说明及引脚分配1、本实验按键及显示说明(1)按键说明按键对应功能键1op键2op键3func键4func键7clk键8clrn(2)显示说明数码编号对应结果数码1aluc数码2aluscrb数码3pcsource1.0数码4jal regret m2regD1wregD2sextD3shiftD4selpcD5wmem D6iordD7wir D8wpc引脚分配表:Node NameLocationop5PIN_238op4PIN_237op3PIN_236op2PIN_235op1PIN_234op0PIN_233func5PIN_7func4PIN_6func3PI
6、N_4func2PIN_3func1PIN_2func0PIN_1zPIN_12clrnPIN_173clkPIN_169wpcPIN_160wirPIN_159iordPIN_158wmemPIN_141selpcPIN_140shiftPIN_139sextPIN_138wregPIN_137aluc3PIN_136aluc2PIN_135aluc1PIN_134aluc0PIN_133alusrcb0PIN_21alusrcb1PIN_41pcsource1PIN_18pcsource0PIN_17m2regPIN_15regrtPIN_14jalPIN_13八测试时的电路总体结构及其说
7、明多周期CPU控制部件的状态转移图多周期CPU控制部件的电路结构图实验电路图九测试计划(包括计划进行的系统测试、每一测试的测试过程、测试所需的测试数据、预期结果数据等)及其相关说明下一状态函数的真值表实验结果如下:输入输出op5.0func5.0状态指令ZwpcPcsource1:0wiriordwmemaluc3:0selpcshiftalusrcb1:0sextwregm2regregrtjalXXsifxX100000X000100110000000011Xsidi_jX111000X000100010000000011Xi_jalX111100X00010011100100000000
8、1000i_jrX110000X000000010000XXi-othersX000000X000100110000000000Xsexei_addX0xx0x0X0000000x0xx0000000Xi_subX000000X100000010000000000100000i_andX000000X001000010000000000100010i_orX000000X101000010000000000100100i_xorX000000X010000010000000000100110i_sllX000000X011010010000000000000000i_srlX000000X11
9、1010010000000000000011i_sraX0000001111010110000001000Xi_addiX000100X000001010000001100Xi_andiX100000X001101000000001101Xi_oriX000000X101001000000001110Xi_xoriX000000X010001000000100011Xi_lwX000000X000001010000101011Xi_swX000000X000001010000000100Xi_beq0000000X000001010000100000101Xi_bne0001000X01000
10、0010000110001111000000i_luiX000000X110000010000100011Xsmemi_lwX000010X000000010000101011Xi_swX000010X000000010000swbr_typeX001000Xi_addiX100100X000100110000001101Xi_oriX100100X000100110000001111000000i_luiX100100X000100110000100011Xi_lwX000000X000000011110与预期实验结果相符。十关于实验电路设计的其他说明q(state)值暂未进行输出。十一实验心得这次实验将控制部件拆分花费了大量的时间,也使得我对于Verilog语言加深了理解和掌握。对cpu的控制部件的结构和原理进行了深入的了解,对以后的学习起到了重要的作用。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1