计算机组成原理实验cpu组成原理,计算机组成原理CPU设计实验报告.doc

PAGE

PAGE 47

计算机组成原理专题实验报告

——CPU设计

指导教师 姜欣宁

小组成员列表

成员

姓名

学院

班级

学号

教师评分

组长

冯福力

电信

计算机75班组员

王智

电信

计算机75班组员

杜建营

电信

计算机75班

组员

沈培均

电信

计算机75班组员

刘大方

电信

计算机75班完成时间:2010年4月

目录

TOC \o "1-3" \h \z \u 1 实验方法 4

2 总体说明 5

2.1指令系统: 5

2.1.1指令格式分类(按指令字长和操作数不同): 5

2.1.2具体指令汇总表: 6

2.1.3相关指令流程图: 7

2.1.4指令数据通路的构建: 8

2.1.5指令的分组及节拍: 11

2.1.6指令执行状态图:(见下页) 12

2.1.7具体微指令: 12

2.2 系统整体介绍 15

2.2.1系统基本模块划分 15

2.2.2总体结构图:(见下页) 16

3 CPU的控制逻辑与具体数据通道设计 17

3.1取指令逻辑的设计 18

3.1.1指令地址的保存 18

3.1.2指令存储器 19

3.1.3下一条指令地址的计算 19

3.2指令译码逻辑的设计 20

3.3指令执行逻辑的设计 21

3.4存储器访问逻辑的设计 22

3.5结果写回逻辑的设计 23

3.6单周期CPU的总成 24

4各部分说明 25

4.1 ALU 25

4.2数据选择器BUS_MUX 27

4.3器件T1 29

4.4标志寄存器FLAG_REG 30

4.5 T2: 31

4.6程序计数器PC 32

4.7地址寄存器AR和指令寄存器IR: 33

4.8寄存器、寄存器组和寄存器的选择 34

4.9一位控制信号/WR 36

4.10 节拍发生器 36

4.11控制逻辑 38

4.12 T3 41

4.13 REG_OUT 42

4.14存储器 43

4.15总线选择器 44

4.16 REG_TEST 44

5附录: 46

附录A:组员分工: 46

附录B:组员设计总结: 46

1 实验方法

实验要完成的工作主要包括:指令系统的设计,FPGA-CPU的整体结构设计及其细化,逻辑设计的具体实现(VHDL语言程序的编写),软件模拟,以及硬件调试。这几部分的工作之间是先行后续的关系,也就是只有前一个步骤完成了下一个步骤才可以开始进行,不存在并行完成的情况。实验主要流程如下图所示:

设计FPGA-CPU的指令集。我们选择了不做流水及Cache。

设计FPGA-CPU的指令集。我们选择了不做流水及Cache。

指令系统设计

指令系统设计

分析并确定CPU主要功能模块,分析每条指令的执行过程,数据的流向和控制信号的产生,画出逻辑结构图

分析并确定CPU主要功能模块,分析每条指令的执行过程,数据的流向和控制信号的产生,画出逻辑结构图

逻辑设计

逻辑设计

按模块分别实现并模拟

按模块分别实现并模拟

具体实现

具体实现

整体模拟仿真,检查时序关系配合是否正确

整体模拟仿真,检查时序关系配合是否正确

软件模拟

软件模拟

下载到FPGA中进行硬件调试

下载到FPGA中进行硬件调试

硬件调试

硬件调试

其中指令系统和逻辑结构的设计主要参考了相关文献。

主要的方法是先确定CPU所要实现的功能,根据寄存器等的情况划分指令格式,然后根据功能写出指令,根据不同指令的特点将它们分组并确定操作码;接下来设想每条指令的执行过程,需要哪些硬件支持,最后确定整个CPU的逻辑结构图。

在各个功能模块的实现中主要使用了自底向上的设计方法。先实现寄存器,再实现寄存器组,等等,最后将各个器件和模块之间互连,得到顶层设计图。

2 总体说明

2.1指令系统:

计算机的指令是用户使用计算机与计算机本身运行的最小功能单位。一台计算机支持的全部指令就构成该机的指令系统。从计算机本身的组成看,指令系统直接与计算机系统的性能和硬件结构的复杂程度等密切相关,它是CPU设计的起始点和基本依据。

设计指令系统的核心问题是选定指令的格式和功能。具体到我们的设计来说,指令的功能应该包括简单的算术和逻辑运算,移位操作,数据传送,跳转,读写内存,另外还可能包括一些其他功能如置条件码等。

为了指令的规整性和便于译码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设计方法,并设计简单的指令系统; 3. 理解和掌握小型计算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设计模型机的方法。 二、设计要求   参考所给的16位实验CPU设计与实现,体会其整体设计思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设计得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设计总共16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A组和B组中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设计的指令系统; 设计8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设计设计8位的ALU,具体要实现哪些功能与指令系统有关。设计时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验设计ALU的方式设计设计8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设计8位的地址寄存器IR、程序计数器PC、地址寄存器AR; 设计8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设计存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设计时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设计8位的数据寄存器DR; (可选项)不直接设计存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器组)中设计顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设计好的指令系统,编写汇编代码,以便测试所有设计的指令及指令涉及的相关功能。设计好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设计好的8位CPU进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值