最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

计算机组成原理实验报告-单周期CPU的设计与实现

来源:动视网 责编:小OO 时间:2025-10-02 21:09:45
文档

计算机组成原理实验报告-单周期CPU的设计与实现

电子科技大学计算机科学与工程学院标准实验报告(实验)课程名称:计算机组成原理实验电子科技大学教务处制表电子科技大学实验报告学生姓名:郫县尼克杨学号:2014指导教师:陈虹实验地点:主楼A2-411实验时间:12周-15周一、实验室名称:主楼A2-411二、实验项目名称:单周期CPU的设计与实现。三、实验学时:8学时四、实验原理:(一)概述单周期(SingleCycle)CPU是指CPU从取出1条指令到执行完该指令只需1个时钟周期。一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保
推荐度:
导读电子科技大学计算机科学与工程学院标准实验报告(实验)课程名称:计算机组成原理实验电子科技大学教务处制表电子科技大学实验报告学生姓名:郫县尼克杨学号:2014指导教师:陈虹实验地点:主楼A2-411实验时间:12周-15周一、实验室名称:主楼A2-411二、实验项目名称:单周期CPU的设计与实现。三、实验学时:8学时四、实验原理:(一)概述单周期(SingleCycle)CPU是指CPU从取出1条指令到执行完该指令只需1个时钟周期。一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保
电子科技大学计算机科学与工程学院

标 准 实 验 报 告

(实验)课程名称:  计算机组成原理实验  

电子科技大学教务处制表

电 子 科 技 大 学

实   验   报   告

学生姓名: 郫县尼克杨   学 号: 2014   指导教师:陈虹

实验地点: 主楼A2-411         实验时间:12周-15周

一、实验室名称:

主楼A2-411

二、实验项目名称:

单周期CPU的设计与实现。

三、实验学时:

8学时

四、实验原理:

(一)概述

单周期(Single Cycle)CPU是指CPU从取出1条指令到执行完该指令只需1个时钟周期。

一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保存结果。对于单周期CPU来说,这些执行步骤均在一个时钟周期内完成。

(二)单周期cpu总体电路

本实验所设计的单周期CPU的总体电路结构如下。

(三)MIPS指令格式化

MIPS指令系统结构有MIPS-32和MIPS-两种。本实验的MIPS指令选用MIPS-32。以下所说的MIPS指令均指MIPS-32。

MIPS的指令格式为32位。下图给出MIPS指令的3种格式。

本实验只选取了9条典型的MIPS指令来描述CPU逻辑电路的设计方法。下图列出了本实验的所涉及到的9条MIPS指令。

五、实验目的

1、掌握单周期CPU的工作原理、实现方法及其组成部件的原理和设计方法,如控制器、运算器等。?

2、认识和掌握指令与CPU的关系、指令的执行过程。?

3、熟练使用硬件描述语言Verilog、EDA工具软件进行软件设计与仿真,以培养学生的分析和设计CPU的能力。

六、实验内容

(一)拟定本实验的指令系统,指令应包含R型指令、I型指令和J型指令,指令数为9条。

(二)CPU各功能模块的设计与实现。

(三)对设计的各个模块的仿真测试。

(四)整个CPU的封装与测试。

七、实验器材(设备、元器件):

(一)安装了Xilinx ISE Design Suite 的PC机一台

(二)FPGA开发板:Anvyl Spartan6/XC6SLX45

(三)计算机与FPGA开发板通过JTAG(Joint Test Action Group)接口连接,其连接方式如图所示。

八、实验步骤

一个CPU主要由ALU(运算器)、控制器、寄存器堆、取指部件及其它基本功能部件等构成。?

在本实验中基本功能部件主要有:32位2选1多路选择器、5位2选1多路选择器、32位寄存器堆、ALU等。

(一)新建工程(New Project)

启动ISE Design Suite 软件,然后选择菜单File→New Project,弹出New Project Wizard对话框,在对话框中输入工程名CPU,并指定工作路径D:\\Single_Cycle_CPU。

(二)基本功能器件的设计与实现

(1)多路选择器的设计与实现

位2选1多路选择器(MUX5_2_1)的设计与实现

在ISE集成开发环境中,在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,创建一个Verilog Module模块,名称为:MUX5_2_1,然后输入其实现代码:

module MUX5_2_1(

    input [4:0] A,

    input [4:0] B,

    input Sel,

    output [4:0] O

    );

    assign O = Sel ? B : A;

endmodule

在ISE集成开发环境中,对模块MUX5_2_1进行综合(Synthesize),综合结果如图所示:

在ISE集成开发环境中,对模块MUX5_2_1进行仿真(Simulation)。输入如下测式代码: 

module MUX5_2_1_T;

    (A), 

        .B(B), 

        .sel(sel), 

        .C(C)

    );

    initial begin

        (A), 

        .B(B), 

        .sel(sel), 

        .O(O)

    );

    initial begin

        A=0;

        B=0;

        sel=0;

        (d), 

        .o(o)

    );

    initial begin

        n1(Rn1), 

        .Rn2(Rn2), 

        .Wn(Wn), 

        .Write(Write), 

        .Wd(Wd), 

        .A(A), 

        .B(B), 

        .Clock(Clock)

    );

    initial begin

        (A), 

        .B(B), 

        .ALU_operation(ALU_operation), 

        .Result(Result), 

        .Zero(Zero)

    );

    initial begin

        p(op), 

        .RegDst(RegDst), 

        .RegWrite(RegWrite), 

        .ALUSrc(ALUSrc), 

        .MemWrite(MemWrite), 

        .MemRead(MemRead), 

        .MemtoReg(MemtoReg), 

        .Branch(Branch), 

        .ALUctr(ALUctr)

    );

    initial begin

        (A), 

        .B(B), 

        .ALU_operation(ALU_operation), 

        .Result(Result), 

        .Zero(Zero)

    );

    initial begin

        p(op), 

        .func(func), 

        .RegDst(RegDst), 

        .RegWrite(RegWrite), 

        .ALUSrc(ALUSrc), 

        .MemWrite(MemWrite), 

        .MemRead(MemRead), 

        .MemtoReg(MemtoReg), 

        .Branch(Branch), 

        .ALU_op(ALU_op)

    );

    initial begin

        lock(clock), 

        .reset(reset), 

        .b_addr(b_addr), 

        .B(B), 

        .Z(Z), 

        .inst(inst), 

        .o_addr(o_addr), 

        .o_sum(o_sum), 

        .o_sum1(o_sum1)

    );

    initial begin

        eset(Reset), 

        .Clock(Clock), 

        .Inst(Inst), 

        .Data(Data), 

        .MemWrite(MemWrite), 

        .MemRead(MemRead), 

        .Result(Result), 

        .B_data(B_data), 

        .NextPC(NextPC)

    );

    initial begin

        ddress(address), 

        .inst(inst)

    );

    initial begin

        lock(Clock), 

        .Reset(Reset), 

        .Inst(Inst), 

        .Pc(Pc), 

        .Aluout(Aluout), 

        .B_data(B_data)

    );

    initial begin

        // Initialize Inputs

        Clock = 0;

        Reset = 0;

        // Wait 100 ns for global reset to finish        

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

        #100;

      Clock = ~Clock;

        Reset = 1;

    end

endmodule

然后进行仿真,仿真结果如图:

    在该转移的地方进行了转移,成功。

九、实验数据及结果分析:

在一个时钟周期内所设计的CPU能够完成一条指令的执行,指令执行结果与预期的结果是一致的。通过仿真可以看到最终顺利实现了每个模块的功能,成功解决了之前出错的PC转移问题,整个CPU按照设计好的指令运行。

十、实验结论:

单周期CPU在一个时钟周期完成指令的所有执行步骤,简化了CPU的设计,但是这样没有考虑不同部件完成时间上的差异,所以导致CPU各部件的利用率不高,采用多周期流水线CPU可以提高利用率,但是难度也会增大许多。

十一、总结及心得体会:

我本身对这次实验很兴趣,指导教师陈老师也非常和蔼耐心地指导,所以比较顺利地完成了整个实验。

本次实验完全是完成,没有任何抄袭,包括实验报告的编写,每一段代码都是自己写出来的,每一张图片也都是自己截的图,虽然整个过程花的时间比较多,但确实收获很多,很开心,也希望能得到一个好的成绩。

本次实验让我切实感受到了仿真的好处,计算机仿真在实际生产中的作用,也很好地锻炼了自己的逻辑思维能力,对课堂第四章第五章的内容有了更为深刻的理解。

要合理地将本次实验中“把庞大的部件分割为许多小部件,逐一解决” 的方法运用到对其它问题的解决中。

十二、对本实验过程及方法、手段的改进建议:

    建议增加2个实验学时,同时将要实现的指令增加为十一条,增加运算器溢出信号Overflow、判断溢出的加法运算,以及J型指令的设计与实现,从而进一步锻炼自己。

 报告评分:

 指导教师签字:

文档

计算机组成原理实验报告-单周期CPU的设计与实现

电子科技大学计算机科学与工程学院标准实验报告(实验)课程名称:计算机组成原理实验电子科技大学教务处制表电子科技大学实验报告学生姓名:郫县尼克杨学号:2014指导教师:陈虹实验地点:主楼A2-411实验时间:12周-15周一、实验室名称:主楼A2-411二、实验项目名称:单周期CPU的设计与实现。三、实验学时:8学时四、实验原理:(一)概述单周期(SingleCycle)CPU是指CPU从取出1条指令到执行完该指令只需1个时钟周期。一条指令的执行过程包括:取指令→分析指令→取操作数→执行指令→保
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top