cpu设计报告

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

基于VHDL的8位CPU设计

设计要求

按给定的数据格式和指令系统,运用“数字系统设计”课学得的知识,用vhdl或verilog 语言设计一个8位的具有复杂指令的CPU系统。

指令系统

寻址方式:

1.立即数寻址

操作码r1

数据

2.立即地址寻址

操作码

地址

3.寄存器直接寻址

操作码r1 r2

r1和r2的状态为00时,为A寄存器;为01时,为B寄存器;为10时,为C寄存器。

4.寄存器间接寻址

操作码r1/11 r2/11

当r1或r2中有一处为“11”状态时,就表示这个操作数的地址在C寄存器中。

指令系统:

该机给定的指令系统共有28条指令,各条指令的编码可以是多种多样的。因此还可以扩展该指令系统。

指令的汇编符号指令的二进制编码第二字节

1.MOV r1 r2 0 0 1 1 r1 r2

2.MOV M r2 0 0 1 1 1 1 r2

3.MOV r1 M 0 0 1 1 r1 1 1

4.MVI r1 data 1 0 1 1 r1 0 0 data

5.MVI M data 1 0 1 1 1 1 0 0 data

6.STR address r2 1 1 0 0 0 0 r2 address

7.LDR r1 address 1 1 0 1 r1 0 0 address

8.ADD r1 r2 1 0 0 1 r1 r2

9.ADD r1 M 1 0 0 1 r1 1 1

10.SUB r1 r2 0 1 1 0 r1 r2

11.SUB r1 M 0 1 1 0 r1 1 1

12.INR r1 1 1 1 1 r1 XX

13.INR M 1 1 1 1 1 1 XX

14.DCR r1 0 0 0 0 r1 XX

15.DCR r1 0 0 0 0 1 1 XX

16.AND r1 r2 1 1 1 0 r1 r2

17.AND r1 M 1 1 1 0 r1 1 1

r1 0 1 0 1 r1 XX

19.SHR r1 1 0 1 0 r1 0 0

20.SHL r1 1 0 1 0 r1 1 1

21.JMP address 0 0 0 1 0 0 0 0 address

22.JZ address 0 1 1 0 1 1 0 0 address

23.JCN address 0 0 0 1 1 0 0 0 address

24.JCZ address 0 0 0 1 1 1 1 1 address

25.IN r1 0 0 1 0 r1 XX

26.OUT r1 0 1 0 0 r1 XX

27.NOP 0 1 1 1 0 0 0 0

28.HALT 1 0 0 0 0 0 0 0

数据通路

计算机的工作过程,可以看成有许多不同的数据流和信号流在机器各部分之间进行传送,数据流所经过的路程就称作数据通路。数据通路不同,指令执行所经过的操作过程也不同,机器的结构也就不一样。本设计的要求的数据和指令都是8位的,所以同时采用并行工作方式和单总线结构。

1.算术运算类指令对数据通路的要求

完成加法指令:(r1)+(r2)=>r1

完成这个指令的基本操作为:

1)在某个控制信号的控制下,从r1指定的寄存器中取出第一操作数,送入A暂存器暂存起来。

2)在另一个控制信号的控制下,从r2指定的寄存器中取出第二操作数,送入B暂存器暂存起来。

3)对算术逻辑运算部件发出的相应的选择信号,使其完成操作码所要求的操作,对两个暂存器内的数进行运算,运算的结果定义在某一个信号控制下送回r1所指定的寄存器。

2.传送类指令对数据通路的要求

完成的指令为(r2)=>r1

1)在RE的控制下,由r2所给定的编码选择RA0,RA1从寄存器组中读出r2的内

容,并由loada送入A暂存器。

2)选择ALU的控制信号,使暂存器的数据直接通过ALU送入总线BUS,再由WE 控制和r1给定的编码选择,将BUS上的数据写入通用寄存器r1中。

完成的指令为(r2)=>((C))

1)在RE的控制下,从C寄存器中读出的内容送入MAR。

2)在RE和r2的控制下,读出r2的内容,经过A暂存器。经过ALU送入总线,然后在CS和XL的配合下,写入MAR指定的内存单元。

立即数传送

1)将程序计数器PC的内容送ROM,然后PC的内容加1

2)对RAM发出CS和DL控制信号,把ROM的内容读到总线上,并在WE和r1控制下,写入寄存器组中的r1中。

数据通路可以修改为寄存器与内存中的数据可不再经过ALU传送。

3.移位指令对数据通路的要求

操作过程是:

1)在RE的控制下,由r1所给定的编码选择RA0,RA1从寄存器组中读出r2的内容,并由loada送入A暂存器。

2)选择ALU的控制信号,使暂存器的数据直接通过ALU送入总线BUS前完成移位,再由WE控制和r1给定的编码选择,将BUS上的数据写入通用寄存器r1中。

这就要求有移位模块,所以在ALU后面再加一个移位寄存器。最后确定的数据通路如下:

RAM ALU

MAR

PC

Register

loada IR

SEQUENCER

ROM

A S B

S Bus i

Bus i-1

Bus i+1

右移不移

左移

3

S 2S 1S 0S M

loadb B

S A

S 0RA 1RA 0WA 1

WA WE

PC_ Bus

DL XL

CS

Loadmar

PC_load

PC_inc

RE

TRI_reg

INPUT

状态流程

机器指令的CPU 操作流程图是根据模型机的硬件设计、指令系统、所有指令的解释过程和控制信号的时序设计出来的,如下图所示。图中每一个方框执行的时间为一个时钟周期,对应一条微指令。框中上面的四位二进制数表示的是当前指令的操作码,框内是控制信号的产生情况。图中只画了四种常用的指令,其他指令的情况可以同样得到。

相关文档
最新文档