计组实验报告--部分

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

2、设计报告

2、1实验方法

本实验要完成的工作主要包括:

1、指令系统的设计

2、利用VHDL语言完成实验CPU的设计,包括通用寄存器的设计、取值部分设计、指令译

码设计、执行设计、存储器设计、程序包设计和顶层设计设计

3、在Quatus II 平台上进行仿真,并下载到TEC-CA教学实验箱上进行调试。

这三大部分为并行关系,只有在完成上一部分的基础上才能继续进行下一步,而第二大部分可以同时并行进行。

实验的主要流程图为图2.1所示。

图2.1

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

2、2总体说明

2.2.1 CPU组成部件

实验CPU由5部分组成:取指部分instru_fetch、指令译码部分decoder_unit、执行部分exe_unit、存储器部分memory_unit和通用寄存器组fegile.另外,还有一个程序包exe_cpu_components,将各底层设计实体作为元件存储,供各设计实体使用。顶层设计实体exe_cpu完成5个组成部分的链接。

GR(8位,4个寄存器),ALU(8位),时序节拍发生器timer,AR(8位),IR(8位),PC(8位)、PC(8位),RAM(8位),组合期间T1,T2,T3。逻辑控制器件controller,地址总线(8位),数据总线(8位)。

2、2、2整机原理实验图

图2.2.1

图2.2.2

2、2、3指令系统

1)下表2.2.3为指令格式说明

表2.2.3

指令的功能应该包括简单的算术和逻辑运算,移位操作,数据传送,跳转,读写内存,另外还可能包括一些其他功能如置条件码等。

为了指令的规整性和便于译码,我们主要采用了定长的操作码组织方案,操作码为4位。寻址方式包括了寄存器寻址、立即数寻址、直接地址和相对寻址。

2)指令节拍分组说明

由于没有中断操作,本机指令的执行步骤可概括如下:

读取指令:地址寄存器<-指令地址,修改PC内容使其指向下一条将要执行的指令;

读内存,指令寄存器<-读出的内容。

分析指令

执行指令:通用寄存器之间的运算或传送,可1步完成;

读写内存,通常要两步完成。

根据指令的执行步骤不同,可以把全部指令分为A、B两组。其中A组指令完成的是通用寄存器之间的数据运算或传送,或其他一些特殊操作,在取指之后可一步完成括:ADD,SUB,ADC,SBB,INC,DEC,CLC,STC,MVRR,LDRR,STRR;B组指令完成的是一次内存读写操作,在取指之后可两步完成,包括:MVRD,JMP,JRZ,JRC,JRS。

流程如图2.2.4所示

图2.2.4

图2.2.5

说明:本CPU含有4个通用寄存器,用R0,R1,R2,R3表示,源寄存器用SR表示,目的寄存器用DR表示。输出设置了4个标志位:C——进位标志位,Z——是否为0标志位,V ——溢出标志位,S——是否为负标志位,保存在标志寄存器内。

4)指令格式说明

1、ADD SR,DR

功能:DR←DR+SR,将DR,SR寄存器中存的数据相加送到DR寄存器中,影响C和

Z标志。

2、SUB SR,DR

功能:DR←DR-SR,将DR寄存器中的数据作为被减数减去SR寄存器中的数据,将

两数之差送至DR寄存器中,影响C和Z标志。

3、ADC DR,SR

功能:DR←DR+SR+C,将DR,SR寄存器中的数据和进位数据相加得到的值送到DR 寄存器中。

4、SBB DR,SR

功能:DR←DR-SR-C,将DR中的数据减去SR中的数据减去进位值,将差送到DR 寄存器中。

5、INC DR

功能:DR←DR+1,将DR寄存器中的数据+1送入DR寄存器,影响C和Z标志

6、DEC DR

功能:DR←DR-1,将DR寄存器中的数据-1送入DR寄存器,影响C和Z标志

7、CLC

功能:C←0,将进位标志位C置为0

8、STC

功能:C←1,将进位标志位C置为1

9、MVRR DR,SR

功能:DR←SR,将SR中的数据送入DR寄存器,不影响标志位

10、MVRD DR,DATA

功能:DR←DATA,将立即数送入DR寄存器中。

11、LDRR DR,[SR]

功能:DR←[SR],SR寄存器中存放着数据的地址,将该地址中存储的数据送往DR

寄存器。

12、STRR [DR],SR

功能:[DR]←SR将SR中所存放的数据送往DR寄存器中的地址中。

13、JMP ADR

功能:PC←ADR,将立即数作为PC的值

14、JRZ ADR

功能:PC←PC+ADR Z=1

15、JRC ADR

功能:PC←PC+ADR C=1

16、JRS ADR

功能:PC←PC+ADR S=1

相关文档
最新文档