CPU课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告

课程片上计算机系统

题目 CPU模型机设计

班级

专业

学生

学号

指导教师

2014年7 月 3 日

目录:

1.课程设计的目的及要求 (3)

2.处理器的设计思想和设计内容 (3)

3.设计处理器的结构和实现方法 (3)

4.模型机的指令系统 (4)

5.处理器的状态跳转操作过程 (4)

6. CPU的Verilog代码 (7)

7. 模型机在Quartus II环境下的应用 (19)

8. 仿真波形 (19)

9. 课程设计的总结 (21)

一.课程设计的目的及要求:

(一)目的:

1.掌握RISC CPU与内存数据交换的方法。

2.学会指令格式的设计与用汇编语言编写简易程序。

3.能够使用VHDL硬件描述语言在QuartusⅡ软件环境下完成CPU模型机的

设计。

(二)要求:

1.以《计算机组成与设计》书中123页的简化模型为基础更改其指令系

统,形成设计者的CPU,

2.在Quartus II环境下与主存连接,调试程序,观察指令的执行是否达

到设计构想。

二.处理器的设计思想和设计内容:

处理器的字长为16b;包括四种指令格式,格式1、格式2、格式3的指令字长度为8b,格式4的指令字长度为16b;处理器内部的状态机包括七个状态。(一)关于修改后的CPU:

一共设计25条指令,主要包括空操作指令、中断指令、加法指令、减法指令、加法指令、四种逻辑运算指令、比较、算术移位操作指令、逻辑移位操作指令、加减1指令、加减2指令、数据传输指令、转移类指令、读写指令、特权指令等等。

(二)关于RAM:

地址线设置成8bits,主存空间为4096words。

三.设计处理器的结构和实现方法:

(指令格式)

格式1:寄存器寻址方式

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OP Rx Ry 空白

格式2:寄存器变址寻址方式

OP Ry 空白

格式3:立即数寻址方式

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OP I 空白

格式4:无操作数寻址方式

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OP 空白空白

格式5:直接寻址方式

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

OP Addr

内存(2的12次方)

四.模型机的指令系统

CPU的指令集:

操作码OP IR(15..1 2) 指令

格式

指令的助记指令的内容

0000 4 Idle 无操作 PC=PC+1 0001 3 Load Data R0←I 立即数操作PC=PC+1 0010 1 Move Rx Ry Rx ←(Ry) PC=PC+1 0011 1 Add Rx Ry Rx ←(Rx)+(Ry) PC=PC+1 0100 1 Sub Rx Ry Rx ←(Rx)-(Ry) PC=PC+1 0101 1 Mul Rx Ry Rx ←(Rx)*(Ry) PC=PC+1

0110 2 IR(11.10)

00 AND Rx Ry

01 OR Rx Ry

10 XOR Rx Ry

11 NOT Rx

Rx ←(Rx) AND (Ry) PC=PC+1

Rx ←(Rx) OR (Ry) PC=PC+1

Rx←(Rx)XOR(Ry) PC=PC+1

Rx←NOT (Rx) PC=PC+1

0111 1 COM Rx Ry Rx >Ry Rx< Ry Rx== Ry PC=PC+1

1000 2 IR(11.10)

00 arr Rx Ry

01 arl Rx Ry

10 lgr Rx Ry

11 lgl Rx Ry

算术右移PC=PC+1

算术左移PC=PC+1

逻辑右移PC=PC+1

逻辑左移PC=PC+1

1001 1 IR(11.10)

00 Rx+1

01 Rx-1

10 Rx+2

11 Rx-2

PC=PC+1

1010 1 Swap Rx Ry A←(Ry) Ry←(Rx) Rx←(A)

PC=PC+1

1011 5 Jmp Addr PC←Addr PC=PC+1

1100 5 Jz Addr If (R0)=0 then PC←Addr else PC=PC+1

1101 5 Read Addr R0←(Addr) PC=PC+1

1110 5 Write Addr Addr←(R0) PC=PC+1 1111 4 Stop 无操作 PC保持不变

五.处理器的状态跳转操作过程:

模型机每一状态下的操作及状态跳转

当前状态执行操作次态与读下一条指令的有关的

操作

St_0 取指令

IR(15..0)←M_data_in(15..0)St_1

Write-Read←’0’ PC=PC+1

St_1 IF OP=Load THEN

R0←IR(11..8)||”000000000000”MAR←PC

IF(OP=Stop)THEN St_1

ELSE

St_2

END IF

IF OP=Move THEN Rx ←(Ry) IF OP=sh THEN Rx ←(Rx)移位运算

IF OP=Add THEN A←(Ry) IF OP=Sub THEN A←(Ry) IF OP=Mul THEN A←(Ry) IF OP=Log THEN A←(Ry) AND、OR、NOT、XOR

IF OP=Math THEN A←(Ry) +1 -1 +2 -2运算

IF OP=Swap THEN A←(Ry) IF OP=Stop THEN NULL

IF OP=Idle THEN NULL

IF OP=Jmp THEN NULL

IF OP=Jz THEN NULL

IF OP=Read THEN NULL

IF OP=Write THEN NULL

St_2 IF OP= Load OR OP=Move OR OP=sh

OR OP=Idle

THEN NULL St_0

Write-Read←’0’

IF OP= Add THEN Rx ←(Rx)+A

IF OP= Sub THEN Rx ←(Rx)-A

IF OP=AND THEN Rx ←(Rx)AND A

IF OP= NOT THEN Rx ←(Rx)NOT

A

IF OP= XOR THEN Rx ←(Rx)XOR A

IF OP= NOT THEN Rx ←not(Rx)

IF OP= math THEN Rx ←

(Rx)+-1.2

IF OP= Swap THEN Ry←(Rx) St_3

Write-Read←’0’IF OP= Jmp or Jz THEN

NULL

IF OP=Read or Write THEN

MAR←IR(11..0)

St_3 IF OP=Swap THEN Rx←(A) St_0

Write-Read←’0’

IF OP=Read or Write or Jmp or Jz THEN

IR(7..0)←M_data_in St_4

MAR←PC

Write-Read←’0’

相关文档
最新文档