cpu设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 操作流程图是根据模型机的硬件设计、指令系统、所有指令的解释过程和控制信号的时序设计出来的,如下图所示。图中每一个方框执行的时间为一个时钟周期,对应一条微指令。框中上面的四位二进制数表示的是当前指令的操作码,框内是控制信号的产生情况。图中只画了四种常用的指令,其他指令的情况可以同样得到。