版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机组成与系统结构实验报告院(系): 计算机科学与技术学院专业班级: 学 号: 姓 名: 同 组 者: 指导教师: 实验时间: 2012 年 5 月 23 日 实验目的:完成处理器的单周期cpu的设计。实验仪器:PC机(安装Altebra 公司的开发软件 QuartusII)一台实验原理:控制器分为主控制器和局部ALU控制器两部分。主控制器的输入为指令操作码op,输出各种控制信号,并根据指令所涉及的ALU运算类型产生ALUop,同时,生成一个R-型指令的控制信号R-type,用它来控制选择将ALUop输出作为ALUctr信号,还是根据R-型指令中的func字段来产生ALUctr信号。实验过程
2、及实验记录:1. 设计过程:第一步:分析每条指令的功能,并用RTL来表示。第二步:根据指令的功能给出所需的元件,并考虑如何将它们互连。第三步:确定每个元件所需控制信号的取值。第四步:汇总各指令涉及的控制信号,生成所反映指令与控制信号之间的关系图。第五步:根据关系表,得到每个控制信号的逻辑表达式,据此设计控制电路。2.完成代码的编写,并调试运行。1)controlmodule Control(op,func,Branch,Jump,RegDst,ALUSrc,ALUctr,MemtoReg,RegWr,MemWr,ExtOp);input 5:0 op,func;output reg Branc
3、h,Jump,RegDst,ALUSrc,MemtoReg,RegWr,MemWr,ExtOp;output reg 2:0 ALUctr;always (op)case(op)6b000000:beginBranch=0;Jump=0;RegDst=1;ALUSrc=0;MemtoReg=0;RegWr=1;MemWr=0;case(func)6b100000:ALUctr=3b001;6b100010:ALUctr=3b101;6b100011:ALUctr=3b100;6b101010:ALUctr=3b111;6b101011:ALUctr=3b110;endcaseend6b0011
4、01:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=0;RegWr=1;MemWr=0;ExtOp=0;ALUctr=3b010;end6b001001:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=0;RegWr=1;MemWr=0;ExtOp=1;ALUctr=3b000;end6b100011:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=1;RegWr=1;MemWr=0;ExtOp=1;ALUctr=3b000;end6b101011:
5、beginBranch=0;Jump=0;ALUSrc=1;RegWr=0;MemWr=1;ExtOp=1;ALUctr=3b000;end6b000100:beginBranch=1;Jump=0;ALUSrc=0;RegWr=0;MemWr=0;ALUctr=3b100;end6b000010:beginBranch=0;Jump=1;RegWr=0;MemWr=0;endendcaseendmodule2)数据通路DataRoadmodule DataRoad(Run,Clk,RegWr,MemWr,MemtoReg,RegDst,Branch,Jump,ExtOp,ALUctr,ALU
6、Src,busA,busB,busW,Instruction,Reg0,Reg1,Reg2,Reg3,Reg4,Mem1,Mem2,Mem3,Result,Im);input Run,Clk,RegWr,MemWr,MemtoReg,RegDst,Branch,Jump,ExtOp,ALUSrc;input 2:0 ALUctr;output 31:0 Instruction,busA,busB,busW,Reg0,Reg1,Reg2,Reg3,Reg4,Mem1,Mem2,Mem3,Result,Im;wire 31:0 busC,DataOut;wire 15:0 im;wire 4:0
7、Rs,Rd,Rt;wire Overflow,Zero;QZL qzl(Clk,Branch,Jump,Zero,Instruction,Run);assign Rs=Instruction25:21;assign Rt=Instruction20:16;assign Rd=Instruction15:11;assign im=Instruction15:0;Register register(Run,RegWr,Overflow,RegDst,Rd,Rs,Rt,busW,busA,busB,Clk,Reg0,Reg1,Reg2,Reg3,Reg4);ALU alu(busA,busC,ALU
8、ctr,Zero,Overflow,Result);DataMem(Run,MemWr,Clk,busB,DataOut,Result,Mem1,Mem2,Mem3);MUX mux1(ALUSrc,busB,Im,busC);MUX mux2(MemtoReg,Result,DataOut,busW);Extender ext(im,Im,ExtOp);endmodule3)取指令module QZL(Clk,Branch,Jump,Zero,Instruction,Run);input Clk,Branch,Jump,Zero,Run;output 31:0 Instruction;wir
9、e 4:0 addmem;reg 29:0 PC;wire 29:0 Newpc,pc_1,pc_2,pc_3,pc_12,imm30;wire Branch_Zero;assign addmem=PC2:0,2b00;InsMem GetIns(addmem,Instruction);always (negedge Clk)if(Run=1)beginPC=Newpc;endelsebeginPC=0;endassign pc_1=PC+1;assign imm30=14Instruction15,Instruction15:0;assign pc_2=pc_1+imm30;assign p
10、c_3=PC29:26,Instruction25:0;assign Branch_Zero=Branch&Zero;MUX m1(Branch_Zero,pc_1,pc_2,pc_12);MUX m2(Jump,pc_12,pc_3,Newpc);endmodulemodule InsMem(addmem,Instruction);input 4:0 addmem;output reg31:0 Instruction;reg 31:0 Mem31:0;always (*)beginMem0=6b100011,5b00000,5b00001,5b00000,5b00000,6b000001;M
11、em4=6b100011,5b00000,5b00010,5b00000,5b00000,6b000010;Mem8=6b000000,5b00001,5b00010,5b00011,5b00000,6b100000;Mem12=6b101011,5b00000,5b00011,5b00000,5b00000,6b000010;Mem16=6b001101,5b00100,5b00100,5b11111,5b11111,6b111111;Mem20=6b000000,5b00011,5b00010,5b00010,5b00000,6b100010;Mem24=6b000100,5b00010,
12、5b00001,5b00000,5b00000,6b001000;Mem28=6b000010,5b00000,5b00000,5b00000,5b00000,6b000000;endalways (*)Instruction=Memaddmem;Endmodule4)ALUmodule ALU(A,B,ALUctr,Zero,Overflow,Result);parameter n=32;input n-1:0 A,B;input 2:0 ALUctr;output Zero,Overflow;output n-1:0 Result;wire SUBctr,OVctr,SIGctr,Sign
13、A,SignB,Cin;wire 1:0 OPctr;wire n-1:0 X,Y,Z,Less,M,N,Add_Result;wire Add_Carry,Add_Overflow,Add_Sign;assign M=n1b0;assign N=n1b1;assign SUBctr=ALUctr2;assign OVctr=!ALUctr1&ALUctr0;assign SIGctr=ALUctr0;assign OPctr1=ALUctr2&ALUctr1;assign OPctr0=!ALUctr2&ALUctr1&!ALUctr0;assign Cin=SUBctr;assign X=
14、BnSUBctr;assign Y=A|B;Adder ad(Cin,A,X,Add_Carry,Add_Overflow,Add_Sign,Add_Result,Zero);assign SignA=CinAdd_Carry;assign SignB=Add_OverflowAdd_Sign;assign Overflow=Add_Overflow&OVctr;MUX m1(SIGctr,SignA,SignB,Less);defparam m1.k=1;MUX m2(Less,M,N,Z);MUX3_1 m3(Add_Result,Y,Z,Result,OPctr);endmodulemo
15、dule MUX3_1(A,B,C,D,ctr);parameter k=32;input k-1:0 A,B,C;output reg k-1:0 D;input 1:0 ctr;always (A or B or C or ctr)if(ctr=2b00) D=A;elseif(ctr=2b01) D=B;elseif(ctr=2b10) D=C;endmodulemodule Adder(Cin,X,Y,Add_Carry,Add_Overflow,Add_Sign,Add_Result,Zero);parameter k=32;input k-1:0 X,Y;input Cin;out
16、put reg k-1:0 Add_Result;output Add_Carry,Add_Overflow,Add_Sign,Zero;reg Add_Carry;assign Zero=|Add_Result;assign Add_Sign=Add_Resultk-1;assign Add_Overflow=(Xk-1&Yk-1&Add_Resultk-1)|(Xk-1&Yk-1&Add_Resultk-1);always (X or Y or Cin)Add_Carry,Add_Result=X+Y+Cin;Endmodule5)数据存数module DataMem(Run,MemWr,
17、Clk,DataIn,DataOut,Adr,Mem1,Mem2,Mem3);input Run,MemWr,Clk;input 31:0 DataIn,Adr;output 31:0 DataOut;output 31:0 Mem1,Mem2,Mem3;reg31:0 Mem31:0;assign Mem1=Mem1;assign Mem2=Mem2;assign Mem3=Mem3;assign DataOut=MemAdr;always (negedge Clk)if(Run=0)beginMem0=0;Mem1=10;Mem2=20;Mem3=30;endelsebeginif(Mem
18、Wr=1)MemAdr=DataIn;endendmodule6)寄存器module Register(Run,Regwr,Overflow,RegDst,Rd,Rs,Rt,busW,busA,busB,Clk,Reg0,Reg1,Reg2,Reg3,Reg4);input Regwr,Clk,RegDst,Run,Overflow;input 31:0 busW;input 4:0 Rd,Rt,Rs;output reg 31:0 busA,busB;output 31:0 Reg0,Reg1,Reg2,Reg3,Reg4;reg 31:0 Mem31:0;reg 4:0 Rw;wire 4:0 Ra,Rb;wire RegWr;assign RegWr=Regwr&Overflow;assign Ra=Rs;assign Rb=Rt;assign Reg0=Mem0;assign Reg1=Mem1;assign Reg2=Mem2;assign Reg3=Mem3;assign Reg4=Mem4;always (Rd or Rt or RegDst)if(RegDst=1b1)Rw=Rd;elseRw=Rt;always (negedge Clk)if(Run=1b1)beginif(RegWr=1b1)MemRw=busW;end
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 路面压槽施工方案(3篇)
- 酒店营销薪酬激励方案(3篇)
- 锁口井施工方案(3篇)
- 露营租赁活动方案策划(3篇)
- 26年基础护理服务空巢老人保障工程课件
- 氧气泄漏应急预案
- AIGC 视觉营销设计课件
- 职业规划培训经历
- 货装值班员安全意识强化测试考核试卷含答案
- 新教材湘教版九年级数学上册期末专题复习课件全套
- 糖尿病高渗性昏迷课件
- 铁杵磨成针绘本故事课前三分钟演讲比赛背景课件
- 2025年高考物理试卷(黑吉辽蒙卷)(空白卷)
- 2025至2030年中国硫酸钙晶须行业市场竞争现状及投资前景研判报告
- JG/T 24-2018合成树脂乳液砂壁状建筑涂料
- DB36-T 1865-2023 湿地碳汇监测技术规程
- 红色简约风狼王梦读书分享会
- 建筑施工现场安全自检自查报告范文
- 【小升初】2023-2024学年人教PEP版英语六年级下学期重点专项练习(阅读选择)附答案
- 《研学旅行课程设计》课件-研学课程方案设计
- 肩关节X线检查
评论
0/150
提交评论