计组实验报告9(1).docVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验报告

2014年05月29日成绩:

姓名

曹亚娟

学号班级专业

计算机科学与技术

课程名称

《计算机组成原理》

任课老师

冯建文

指导老师

冯建文

机位号

实验序号

9

实验名称

实现R-I型指令的CPU设计实验

实验时间

实验地点

1教225

实验设备号

一、实验程序源代码

moduleRI_CPU_Top(rst,clk_100MHZ,BTN,select,LED);

inputrst;

inputclk_100MHZ,BTN;

input[3:0]select;

output[7:0]LED;

wireclk;

wire[31:0]M_R_Data;

wire[31:0]ALU_F;

reg[7:0]LED;

BTN_OKbtn(

.clk_100MHz(clk_100MHZ),

.BTN(BTN),

.BTN_Out(clk)

);

CPUcpu(

.rst(rst),

.clk(clk),

.clk_100MHZ(clk_100MHZ),

.ALU_F(ALU_F),

.ZF(ZF),

.OF(OF),

.M_R_Data(M_R_Data)

);

always@(*)

begin

if(rst)

begin

LED=32b0000_0000;

end

case(select)

4b0000:

LED=ALU_F[7:0];

4b0001:

LED=ALU_F[15:8];

4b0010:

LED=ALU_F[23:16];

4b0011:

LED=ALU_F[31:24];

4b0100:

LED=M_R_Data[7:0];

4b0101:

LED=M_R_Data[15:8];

4b0110:

LED=M_R_Data[23:16];

4b0111:

LED=M_R_Data[31:24];

4b1000:

beginLED[7]=ZF;LED[6:1]=6b0;LED[0]=OF;end

default:

LED=32b0000_0000;

endcase

end

endmodule

moduleBTN_OK(

inputclk_100MHz,

inputBTN,

outputregBTN_Out

);

regBTN1,BTN2;

wireBTN_Down;

reg[21:0]cnt;

regBTN_20ms_1,BTN_20ms_2;

wireBTN_Up;

always@(posedgeclk_100MHz)

begin

BTN1=BTN;

BTN2=BTN1;

end

assignBTN_Down=(~BTN2)BTN1;//从0到1的跳变

always@(posedgeclk_100MHz)

begin

if(BTN_Down)

begin

cnt=22b0;

BTN_Out=1b1;

end

else cnt=cnt+1b1;

if(cnt==22h20000)BTN_20ms_1=BTN;

BTN_20ms_2=BTN_20ms_1;

if(BTN_Up)BTN_Out=1b0;

end

assignBTN_Up=BTN_20ms_2(~BTN_20ms_1);//从1到0

endmodule

moduleCPU(rst,clk,clk_100MHZ,ALU_F,ZF,OF,M_R_Data);

inputrst;

inputclk;

inputclk_100MHZ;

output[31:0]ALU_F;

outputZF;

outputOF;

output[31:0]M_R_Data;

wire[31:0]R_Data_A;

wire[31:0]R_Data_B;

wire[31:0]Inst_code;

/*R型*/

wire[5:0]OP;

wire[4:0]rs;

wire[4:0]rt;

wire[4:0]rd;

文档评论(0)

liuzhouzhong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档