




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湘潭大学计算机原理 实验四 多周期MIPS CPU + 存储器实验预习报告实验四 多周期MIPS CPU +存储器实验一. 实验目的1、深入理解MIPS-CPU指令系统的功能和工作原理;2、 掌握多周期CPU的工作原理和逻辑功能实现;3、熟练掌握用 Verilog HDL 语言设计多周期存储器的 方法;4、熟练掌握对多周期存储器的仿真实验验证和硬件测 试两种调试方法;5、通过对多周期CPU的运行情况进行观 察和分析,进一步加深理解。二. 实验设备硬件:现代计算机组成原理实验系统Nios 32位嵌入式系统实验开发平台 EP1C12Q240Corei3-3240 CPU 的内存 软件:Quartu
2、sll Microsoft Windows xp三. 实验内容1、设计一个32位MIPS多周期CPU :口体的要求如卜:至少运行下列的6类32条MIPS指令。 算术逻辑指令and、 sub、 addi逻辑运算指令and、0r、 xor、 andi 、 ori 、 xori 位 移指令 sll 、 srl 、 sra 条件分玄扌旨令 beq、bne、 无条 件跳转指令j、jr数据传送指令lw、sw 2.设计一个 存储器四. 实验原理与步骤实现上述原理框图根据功能将其分划分为控制单元(cunit)、执行单元(eunit)、指令单元(iunit)以及存储单元(munit)四大模块。.控制单元(cun
3、it)足多周期微处理器的核心 控制微 处理器取指令、指令译码和指令执行等工作。主要指令译码 器控制器(outputs control)、算术逻辑运算控制器(ALUcontrol)两 个子模块组成。.执行单元(eunit)主要寄存器堆(registers)和算术逻辑单元(ALU)两个子模块组成。其中寄存器是微处理器最基 本的儿索MIPS系统的寄存器堆32个32位寄存器组成而ALU则是微处理岩的主英功能部件 执行加、减、比较等 算术运算和与、或、或非、异或等逻辑运算。指令单元(iunit) 的作用是决定下一条指令的地址PC伯o.存储单元(munit)存储器(memory)、指令寄存器 (instr
4、uction register)和存储数据寄存 器(memory dataregister) 组成。五. 实验源代码寄存器元件代码:module regfile (rna,rnb,d,wn,we,clk,clrn,qa,qb);put 4:0rna,rnb,wn;input31:0d;inputwe,clk,clrn;output 31:0qa,qb;reg31:0register 1:31;assignqa :=(rna =二 0)0 :registerrna;assignqb =(rnb=0) 0 :registerrnb;always (posedge clk or negedge cl
5、rn) begin if(clrn = 0) begininteger i;for (i=1; ia4:0;4b1111:cal=$signed(b)a4:0;endcaseendfunction endmodule其他部件:module f (reg_dest,jal,wn);input 4:0reg_dest; inputjal; output 4:0 wn; assignwn = reg_dest | 5jal; endmodulemodule sa (di,dot); input4:0 di; output31:0dot; assign dot = 27b0,di; endmodule
6、module out4 (out); output31:0 out; assign out=32h4; endmodulemodule e (immin,sext,immediate,offset);input15:0 immin; inputsext; output 31:0immediate,offset; wiree = sext & immin15;wire 15:0 imm = 16e; assign offset =assignimm13:0,immin15:0,1b0,1b0;immediate = imm,immin15:0; endmodulemodule xxbine(ad
7、dress,pc,add);input25:0address;input3:0pc;output31:0add;assignadd =pc3:0,address25:0,1b0,1b0;endmodulemoduleconvertl(dain,sain,op,func,rs,rt,rd,imm,addr);input31:0 dain; output 4:0 sain,rs,rt,rd;output5:0 op,func; output 15:0 imm; output 25:0 addr; assign sain = dain10:6; assign op = dain31:26; assi
8、gn func = dain5:0; assign rs = dain25:21; assign rt = dain20:16;assign rd = dain15:11;assign imm =dain15:0;assignaddr =dain25:0;endmodulemodule convert2 (pc,pcout); input 31:0 pc; output 3:0 pcout; assign pcout = pc31:28;endmodule存储器内的测试数据:-Copyright (C) 1991-20XX Altera Corporation-Your use of Alte
9、ra Corporations design tools,logic functions - and other software and tools, and its AMPP partner logic - functions, and any output files from any of the foregoing - (including device programming or simulation files), and any -associated documentation or information are expressly subject - to the te
10、rms and conditions of the Altera Program License - Subscription Agreement, Altera MegaCore Function License - Agreement, or other applicable license agreement, including, - without limitation, that your use is for the sole purpose of- programming logic devices manufactured by Altera andsold by- Alte
11、raoritsauthorizeddistributors.Pleaserefer tothe -applicableagreement for further details.-Quartus II generated MemoryInitialization File (.mif)DEPTH= 64;%Memorydepth and width are requiredWIDTH =32;%Enter a decimal numberADDRESS_RADI)= HEX; -dress and value radixes are optional DATA_RADIX = HEX; %En
12、ter BIN, DEC, HEX, or OCT; unless %otherwise specified, radixes = HEXCONTENT BEGIN0.3F : 00000000; % Range-Every address from 0to 3F = 00000000 0 : 3c010000; % (00) main: lui r1,0 # address of data0 1: 34240080; %(04) ori r4,r1,0x80# address of data0 2 : 20XX0004; % (08)addi r5, r0, 4 # counter 3 :
13、0c000018; %(0c) call: jal sum # call function 4: ac820XX0; %(10) swr2, 0(r4) # store result 5 : 8c890000; % (14) lwr9, 0(r4) # check sw 6: 01244022; % (18) sub r8,r9, r4 # sub: r8 16 = ffff8000(arith) r8, r8, 15# 15 = 0001ffff(logic) finish # dead loopr8,r0, r0 # sumr9, 0(r4) # load datar4, 4 #addre
14、ss + 4r8, r8, r9 # sumr5, -1 # counter-1r5, r0, loop # finish r2, r8, 0 # move resultto v0 r31 # return% % % % % % % % % % % % % % % %六. EDA阶段的实验结果仿真结果如上图。七. 测试时的电路总体结构及其说明实验电路图八. 测试计划及其相关说明输出说明:于引脚及输出需要,故下表ir对应ir31.O 且将显示 高四位,pc对应pc31.O 且将显示低两位,alu对应alu31.O 且将显示低两位输入 clockmem_clk pc 输出 alu irclock
15、输入 mem_clk pc 输出 alu ir九. 关于实验电路设计的其他说明于引脚及输出需要,故只输出ir、pc、aluir31.0切将显示ir高四位,pc31.O低两位,alu31.O 低两 位,q、adr、fromm、a、b、tom 将不会输出十.前期实验总结本次实验,不仅加深了我对多周期CPU及存储器相关知识的理解,而且帮助自己回忆和复习了单周期CPU方面的知识,比如如何用 Verilog HDL描述ALU模块、一些数据选择 器、符号扩展电路、以及寄存器。实验四 多周期MIPS CPU +存储器实验一. 实验目的1、深入理解MIPS-CPU指令系统的功能和工作原理;2、 掌握多周期CP
16、U的工作原理和逻辑功能实现;3、熟练掌握用 Verilog HDL 语言设计多周期存储器的 方法;4、熟练掌握对多周期存储器的仿真实验验证和硬件测 试两种调试方法;5、通过对多周期CPU的运行情况进行观 察和分析,进一步加深理解。二. 实验设备硬件:现代计算机组成原理实验系统Nios 32位嵌入式系统实验开发平台 EP1C12Q240Corei3-3240CPU 的内存 软件:QuartusllMicrosoft Windows xp三. 实验内容1、设计一个32位MIPS多周期CPU 具体的妥求如下:至少运行下列的6类32条MIPS指令。算术逻辑指令and、 sub、 addi逻辑运算扌旨令
17、 and、 0r、 xor、 andi 、 ori 、 xori 位 移指令sll、srl、sra条件分支扌旨令 beq、bne、无条 件跳转指令j、jr 数据传送指令lw、sw 2.设计一个 存储器四. 实验原理与步骤实现上述原理框图根据功能将其分划分为控制单元(cunit)、执行单元(eunit)、指令单元(iunit)以及存储单元(munit)四大模块。.控制单元(cunit)是多周期微处理器的核心 控制微 处理器取指令、指令译码和指令执行等工作。主要指令译码 器控制器(outputs control)、算术逻辑运算控制器(ALUcontrol)两 个子模块组成。.执行单元(eunit)
18、主要寄存器堆(registers) 和算术逻辑单元(ALU)两个子模块组成。其中寄存器是微处理器最基 本的儿索MIPS系统的寄存器堆32个32位寄存器组成而ALU则是微处理器 的主戏功能部件 执行加、减r比较等 算术运算和与、或、或非、异或等逻辑运算。指令单元(iunit) 的作用是决定下一条指令的地址PC值O.存储单元(munit)存储器(memory)、指令寄存器 (instruction register)和存储数据寄存 器(memory dataregister) 组成。五. 实验源代码寄存器元件代码:module regfile (rna,rnb,d,wn,we,clk,clrn,q
19、a,qb);put 4:0rna,rnb,wn;input31:0d;inputwe,clk,clrn;output 31:0qa,qb;reg31:0register 1:31;assignqa =(rna =:=0)0 :registerrna;assignqb =:(rnb=0) 0 :registerrnb;always (posedge clk or negedge clrn) begin if(clrn = 0) begininteger i;for (i=1; i32;i=i+1) registeri = 0; end else beginif(wn != 0) & (we =
20、1)registerwn = d; endend endmodule32位四选一选择器:module mux4x32 (a0,a1,a2,a3,s,y); input 31:0a0,a1,a2,a3; input 1:0 s; output 31:0 y;function 31:0 select; i叩 ut 31:0 a0,a1,a2,a3;put1:0 s; case (s)2b00: select = a0;2b01: select = a1;2b10: select = a2;2b11:select = a3; endcase endfunction assign y = select
21、 (a0,a1,a2,a3,s); endmoduler1-r31 /read /read /reset/write5位二选一选择器:module mux2x5 (a0,a1,s,y);input 4:0a0,a1;input s; output4:0 y; assign y = s a1 : a0;endmodule32位二选一选择器:module mux2x32 (a0,a1,s,y); input 31:0a0,a1;input s; output 31:0 y; assign y = s a1 : a0;endmodule存储器元件:module mcmen(clk,dataout,
22、datain, addr, we, inclk,outclk); input 31:0 datain; input 31:0 addr;input elk, we, inclk, outclk; output 31:0 dataout;wire write_enable = we &clk; lpm_ram_dq ram(.data(datain),.address(addr7:2),.we(write_enable ),.inclock(inclk),.outclock(outclk),.q(dataout);defparam _width = 32; defparam _widthad =
23、 6;defparam _indata = defparam _outdata = defparam _file= defparam _address_control =endmodule控制部件:module mccu (op, func, z, clock, resetn, wpc, wir, wmem, wreg, iord, regrt, m2reg, aluc, shift, alusrca, alusrcb, pcsource, jal, sext, state); input 5:0op,func; input z, clock, resetn; output reg wpc,
24、wir, wmem,wreg, iord, regrt, m2reg; output reg 3:0 aluc; output reg 1:0 alusrcb, pcsource; output reg shift, alusrca, jal, sext; output reg 2:0 state;reg2:0 next_state;parameter2:0sif3b000,/IF statesid = 3b001,/ IDstatesexe = 3b010,/ EXE statesmem3b011,/ MEM stateswb = 3b100;/ WBstatewirer_type,i_ad
25、d,i_sub,i_and,i_or,i_xor,i_sll,i_srl,i_sra,ir;wirei_addi,i_andi,i_ori,i_xori,iw,i_sw,i_beq,i_bne,i_lui,i_j,i_jal;and(r_type,op5,op4,op3,op2,op1,op0);and(i_add,r_type,func5,func4,func3,func2,func1,funcO );func5,func4,func3,func2, func1,funcO);func5,func4,func3,func2,func1,funcO);func5,func4,func3, fu
26、nc0);func5,func4,func3, func1,funcO);and(i_sub,r_type, and(i_and,r_type, and(i_or,r_type,func2,func1,and(i_xor,r_type,func2,and(i_sll,r_type,func5,func4,func3,func2 ,func1,funcO);and(i_srl,r_type,func5,func4,func3,func2,func1,funcO);an d(i_sra,r_type,fun c5,fun c4,fun c3,fun c2,func1,funcO);and(i_jr,r_type,fun c5,fun c4,fun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 别墅花园装修合同范本
- 《锦瑟》教学设计 2024-2025学年统编版高中语文选择性必修中册
- 借贷合同范本u
- 劳动合同范本陕西
- 传销性质合同范本
- 产品销售协议合同范本
- 企业授权合同范本
- 2024年重庆大学机器人研究所招聘笔试真题
- 上海货物短途运输合同范本
- 2024年温州苍南农商银行招聘笔试真题
- 2024年下半年信息系统项目管理师真题及答案
- 海康威视电力行业系统解决方案
- 2024-2030年中国街舞培训行业发展趋势及竞争格局分析报告
- 期末练习卷(模拟试题)-2024-2025学年 一年级上册数学人教版
- 白血病合并感染
- GB/T 18601-2024天然花岗石建筑板材
- 致病菌引起的食品安全事件
- 有机肥配施氮肥对玉米根系生长、氮素利用及产量和品质的影响
- 2024年山西省中考语文试卷
- 《大学美育教程》第二单元-心灵的熏陶:审美活动
- 浙江省温州市(2024年-2025年小学五年级语文)人教版期中考试(下学期)试卷及答案
评论
0/150
提交评论