杭电计组实验九

杭电计组实验九

ID:41717210

大小:505.56 KB

页数:19页

时间:2019-08-30

杭电计组实验九_第1页
杭电计组实验九_第2页
杭电计组实验九_第3页
杭电计组实验九_第4页
杭电计组实验九_第5页
资源描述:

《杭电计组实验九》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验报告2016年5_月_日成绩:姓名周勇学号14071225班级计科5班专业计算机科学与技术课程名称《数字电路课程设计》任课老师章复嘉老师指导老师早复霜老师机位号实验序号9实验名称R-I指令CPU实验时间5月11日实验地点1教225实验设备号一、实验程序源代码顶层架构CPU模块:modulecpu(clk,reset,ALU_OBinst,rs,rt,rd,rs_data,rt_data,rd_data,ZEOF,Write_RegFCFC_newzrd_rt_s,W_Addr/imm,W_Data,imm_s/imm_data/ALU_B/rt_imm_s/Mem_Wri

2、te/M_R_Data/ALU_Data,alu_mem_s);inputwireelk;inputreset;output[2:0]ALU_OP;〃操作符output[31:0]inst;〃指令存放output[4:0]rs;//rs地址output[4:0]rt;//rt地址output[4:0]rd;//rd地址output[31:0]rs_data;//rs数据output[31:0]rt_data;〃rt数据output[31:0]rd_data;//rd数据output[31:0]PC;output[31:0]PC_new;outputZF;outputOF;ou

3、tputWrite_Reg;〃是否写入output[31:0]W_Data;outputrd_rt_s;〃控制那个作为目的寄存器output[4:0]W_Addr;//目的操作数地址output[15:0]imm;〃立即数output[31:0]imnn_data;〃被扩展的立即数outputinnm_s;〃是否需要扩展outputrt_imm_s;//B端选择rt或者是immoutput[31:0]ALU.B;//ALU_B端口数据outputMem_Write;〃是否写入数据romoutput[31:0]M_R_Data;〃从数据rom读出来的数据output[31:0]

4、ALU_Data;//ALU运算出来的结果根据alu_mem_s选择由M_W_Data或者W_Data来赋值outputalu_mem_s;//W上面〃读指令ex7pc(.clka(clk),.douta(inst)f.rst(reset)/•PC(PC),・PC_new(PC_new)〃解析指令);analysis_instanalysisjnst(.inst(inst),.ALU_OP(ALU_OP)/•rs(rs),•rt(rt),.rd(rd)z.Write_Reg(Write_Reg)/.imm(imm)/.rd_rt_s(rd_rt_s),.imm_s(imm_s

5、)/.rt_imm_s(rt_imm_s),.Mem_Write(Mem_Write)/.alu_mem_s(alu_mem_s));〃读取源操作数的值:assignW_Addr=(rd_rt_s)?rt:rd;assignimm_data=(imm_s)?{{16{imm[15]}}/imm}:{{16{l,b0}}/imm};reglReg(.R_Addr_A(rs)#.R_Addr_B(rt)z.Clk(clk),.W_Addr(W_Addr)/.W_Data(W_Data)z.RDataA(rsdata),•R_Data_B(rt_data),.Reset(reset

6、),.Write_Reg(Write_Reg)〃不写入);assignALU-B=(rtJmm_s)?imm_data:rt_data;〃对源操作数运算,存于目的操作数ex3ALU(.ALU_OP(ALU_OP)/•A(rs_data),・B(alu_b),.F(ALU_Data),•ZF(ZF),.OF(OF));wireclkjemp;wired_outn;regd_out=0;assignclkjemp=elkAd_out;assignd_outn=〜d_out;always@(posedgeclkjemp)begind_out<=d_outn;end〃数据存储器Dat

7、a_RomDatarom(.clkaCcIkJemp),//inputclka.wea(Mem_Write)///input[0:0]wea.addra(ALU_Data[5:0])///input[5:0]addra•dina(rCdata),//input[31:0]dina.douta(M_R_Data)//output[31:0]douta);assignWData=alumems?MRData:ALUData;endmodulepc模块moduleex7(clka/douta/rst/PC/P

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。