16位CPU综合设计Word格式文档下载.docx

上传人:b****6 文档编号:16691875 上传时间:2022-11-25 格式:DOCX 页数:28 大小:259.79KB
下载 相关 举报
16位CPU综合设计Word格式文档下载.docx_第1页
第1页 / 共28页
16位CPU综合设计Word格式文档下载.docx_第2页
第2页 / 共28页
16位CPU综合设计Word格式文档下载.docx_第3页
第3页 / 共28页
16位CPU综合设计Word格式文档下载.docx_第4页
第4页 / 共28页
16位CPU综合设计Word格式文档下载.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

16位CPU综合设计Word格式文档下载.docx

《16位CPU综合设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《16位CPU综合设计Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。

16位CPU综合设计Word格式文档下载.docx

⑵调试

把设计结果下载到实验版上,通过执行指令对设计进行验证

⑶实验设备

①PC机一台

②DVCC试验箱

③各种实验多需要的跳线,连接线等

2CPU指令系统的设计

2.1指令格式

模型机采用定长的指令格式,每条指令16位字长,占据一个存储单元。

由于指令字长有限,采用寄存器寻址,即指令格式给出寄存器号,根据不同的寻址方式形成相应的地址。

模型机的指令格式有三类:

(1)双操作数值令格式

1512119865320

操作码

寄存器号

寻址方式

目的寄存器源寄存器

四位操作码可以表示16种操作。

(2)单操作指令格式

15121165320

(可扩展)

目的

(3)转移指令格式

151211986543210

N’

Z’

V’

C’

转移地址转移条件

2.2寻址方式

模型机的特点是指令中直接给出寄存器编号,供CPU访问。

可编程的寄存器包括寄存器R0~R3,堆栈指针SP,程序计数器PC,程序状态字PSW,针对同一种寻址防护四编码,指定不同的寄存器,派生出多种不同的寻址方式。

模型机的常用的寻址方式:

表1

类型编号

助记符

可指定的寄存器

定义

0型(000)

寄存器寻址

R

R0~R3,SP,PC,PSW

寄存器的内容为操作数

1型(001)

寄存器间址

(R)

R0~R3

寄存器的内容为操作数地址

2型(010)

自减型寄存器寻址

-(R)

-(SP)

寄存器内容减1后的操作数地址

SP内容减1后为堆栈地址

3型(011)

立即/自增型寄存器寻址

(R)+

(SP)+

(PC)+

寄存器的内容为操作数的地址,访问该地址后寄存器内容加1

SP内容为栈顶地址,出栈后SP加1

PC内容为立即数地址,取数后PC内容加1

4型(100)

直接/间接寻址

@(R)+

@(PC)+

寄存器的内容为间接地址,访问地址后寄存器内容加1

PC内容为间接地址,访问后PC内容加1

5型(101)

变址/相对寻址

X(R)

X(PC)

变址寄存器内容与形式地址之和为操作数地址

PC内容与位移量之和为有效地址

6型(110)

跳步

SKP

执行再下条指令

在正式编码中就可以用该表中的类型来指定相应的寻址方式。

2.3指令类型

根据模型机的指令格式,操作码有4位,线设置了15种指令(其中两种指令共用一个操作码),余下的两种操作码组合可以供扩展。

按操作数的多少,把模型机的指令分为双操作数指令和单操作数指令两大类;

按指令本身的功能,把这些指令分为传送,运算,转移等3类。

模型机的指令类型如下表:

表2

含义

0000

0001

0010

0011

0100

0101

0110

0111

MOVE

ADD

SUB

AND

OR

EOR

COM

NEG

传送

异或

求反

求补

1000

1001

1010

1011

1100

1101

INC

DC

SL

SR

JMP

RST

JSR

加1

减1

左移

右移

转移

返回

转子

⑴传送指令

MOV可以采用不同的寻址方式来预置寄存器或者存储单元,实现见存期和寄存器之间,寄存器与存储单元,各存储单元之间的信息传送,还可以实现堆栈操作POP、PUSH。

⑵双操作数指令

ADD、SUB、AND、OR、EOR是带进位的加和减。

其他的是逻辑运算指令,可用来实现位检测,位清除,位设置,位修正等操作。

⑶单操作数指令

有COM、NEG、INC、DC、SL、SR他们都是单操作数指令,可以实现对操作数的加1减1等操作。

⑷程序控制指令

①转移指令JMP

JMP是用来实现无条件转移和条件转移的。

②返回指令RST

RST指令是JMP指令的一个特例,但是RST只能采用自增性寄存器间接寻址表明转移地址,并且指定寄存器为SP,即寻址方式(SP)+,则从堆栈中取出返回地址,然后SP+1。

③转子指令JSP

执行JSP指令时,首先将返回地址压栈,然后按照寻址方式找到转移地址,把t它送PC中。

综上,得到我们的设计指令为:

⑴LDRRi,D

格式743210

0000

Ri

不用

D

功能:

Ri←M(D)

(2)STRRi,D

0001

不用

M(D)←(Ri)

(3)ADDRi,Rj

0010

Rj

Ri←(Ri)+(Rj)

(4)SUBRi,Rj

0011

Ri←(Ri)-(Rj)

(5)ANDRi,Rj

0100

Ri←(Ri)∧(Rj)

(6)ORRi,Rj

0101

Ri←(Ri)∨(Rj)

(7)MULRi,Rj

0110

Ri←(Ri)×

(Rj)

(8)转移指令

0111

条件

条件码00无条件转移PC←D

01有进位转移PC←D

10结果为0转移PC←D

11结果为负转移PC←D

⑼INRi,Mj

1001

Mj

其中Mj为设备地址,可以指定四种外围设备,当Mj=01时,选中实验箱的二进制代码开关。

Ri←(Mj)

⑽OUTRi,Mj

1010

当Mj=10时,选中实验箱的显示灯。

(Mj)←Ri

⑾HALT(停机指令)

1011

用于实现停机。

3运算器的设计

运算部件是CPU内部的重要组成部分,它起到至关重要的作用。

在此,我们暂不涉及运算器的具体设计,仅是利用以往实验所得到的结果,利用已有的芯片来完成我们需要的运算功能。

在此我们借用SN74181,利用它来完成我们需要的功能。

3.1SN74181概述

1、如下所示。

图1SN74181的引脚框图

2.引脚功能:

1)A0~A3:

4位二进制数A

2)B0~B3:

4位二进制数B

3)F0~F3:

运算结果

4)S0~S3:

状态控制信号,控制运算类型,控制16中运算。

5)M:

运算选择M=1逻辑运算;

M=0算术运算。

3、SN74181功能表

表3

工作方式选择S3S2S1S0

逻辑运算M=1

算术运算M=0

A’

A减1

(AB)’

AB减1

A’+B

AB’减1

逻辑1

全1

(A+B)’

A加(A+B’)

B’

AB加(A+B’)

(A

B)’

A加b’

A+B’

A’B

A加(A+B)

A

B

A加B

AB’加(A+B)

A+B

逻辑0

AB’

AB加A

1110

AB

AB’加A

1111

3.2ALU的组成

通过74181可以形成相应的进位逻辑,组成相应的ALU。

(1)组间串行进位的ALU

图1

(2)组间并行进位的ALU

图2

运算器的组织如图:

图3

4数据通路结构的建立

综合以上的相关知识,我们知道,总体结构的设计的内容包含确定各种不见的设置以及它们之间的数据通路结构。

在此基础上,就可以拟出各种信息传送路径,以及为实现这些传送所需要的命令。

数据通路结构了如图:

图4

4.1部件设置

⑴寄存器

①可编程寄存器

R0(000),R1(001),R2(010),R3(011),PSW(101),SP(100),PC(111)。

它们都设置3位编号,供CPU变成访问。

②暂存器C,D

取源操作数地址或者源操作数时,使用寄存器C,读目的操作数地址或着谜底操作数时,使用寄存器D。

③指令寄存器IR

为了提高取指令的速度,把指令从主存读出以后,经数据总线直接置入IR。

④与主存的借口寄存器MAR,MDR

CPU访问主存的地址由地址寄存器MAR提供,而MDR则用来暂存CPU与主存之间要交换的数据,其实就是一个中转效果。

⑵运算部件

①ALU部件

ALU部件采用SN74181。

②输入逻辑

输入有两个选择器A,B,它们都有八选一功能。

通用寄存器和暂存器既可以送往A,也可以送往B,但是PC和SP只能送往A,PSW和MDR只能送往B。

ALU输出设置一个移位器,

③输出逻辑

ALU输出设置一个移位器,利用对应位的连接关系实现直传,左移,右移。

4.2总线与数据通路结构

⑴内总线

单向内总线实现数据分配,寄存器在逻辑上分立。

⑵系统总线

CPU通过系统总线也外界相连,但是为了简化,让CPU直接连到总线上,不考虑信号的转换和扩展。

4.3各类信息的传送路径

⑴指令信息的传送

指令由主存读出,送人指令寄存器IR:

M→数据总线→IR。

⑵地址信息的传送

地址信息包还指令地址,顺序执行的后继指令地址,转移地址和操作数地址等四类。

①指令地址

指令地址从PC取出,送人MAR:

PC→选择器→A→ALU→移位器→内总线→MAR。

②顺序执行的后继指令地址

现行指令地址PC+1,得到后继指令地址:

PC→A→移位器内总线→PC。

③转移地址

按寻址方式形成转移地址。

并送入MAR。

同样,传送路径也因寻址方式而异。

如:

寄存器寻址:

Ri→A/B→ALU→移位器→内总线→PC

寄存器间址:

Ri→A/B→ALU→移位器→内总线→MAR→地址总线→M;

M→数据总线→MDR→B→ALU→移位器→内总线→PC。

④操作数地址

Ri→A/B→ALU→移位器→内总线→MAR

变址:

由于形式地址放在紧跟现行指令的下一存储单元中,并由PC指示,所以先访问存取出形式地址,暂存于C,在进行变址计算。

取形式地址:

PC→A→ALU→移位器→内总线→MAR→地址总线→M;

M→数据总线→MDR→B→ALU→移位器→内总线→C。

做变址计算:

变址寄存器→A→ALU→移位器→内总线→MAR。

⑶数据信息的传送

①寄存器→寄存器

Ri→A/B→ALU→移位器→内总线→Rj。

②寄存器→主存

Ri→A/B→ALU→移位器→内总线→MDR→数据总线→M。

③主存→寄存器

M→数据总线→MDR→B→ALU→移位器→内总线→Rj。

④寄存器→外设

Ri→A/B→ALU→移位器→内总线→MDR→数据总线→I/O

⑤外设→寄存器

I/O接口→数据总线→MDR→B→ALU→移位器→内总线→Rj.

⑥主存→主存

主存单元的内容搬迁似乎只需要通过MDR作为中间缓冲即可,但在寻找目的单元地址时有可能采取间址方式或其他更复杂的寻址方式,即需要从主存单元中读取目的地址,且将读得的目的地址经MDR传送到MAR,所以,一般需分成两个阶段实现主存各单元间的传送,先将读出数据暂存于C中,形成目的地址后再将C内容MDR写入目的单元。

M(源单元)→数据总线→MDR→B→ALU→移位器→内总线→C;

C→A/B→ALU→移位器→内总线→MDR→数据总线→M。

⑦主存←→外设

有两种方式实现主存与外围设备间的数据传送。

一种方式是由CPU执行通用传送指令,以某种寻址方式指明主存单元与外围接口寄存器的地址,从而实现主存与外围设备间的传送。

这样的传送一般以MDR为中间缓冲,以便与其他传送指令的执行流程相吻合。

即:

M←→数据总线←→MDR

MDR←→数据总线←→I/O接口

另一种是DMA方式,即CPU放弃系统总线,由DMA控制器控制,通过数据总线实现主存与I/O设备之间的直接传送,不动用CPU中的寄存器与暂存器。

M←→数据总线←→I/O接口

4.4微命令的设置

在全面分析了各类信息的传送路径之后,对指令将如何执行就有了进一步的了解,且为时序的安排与相应微命令的设置打下了基础。

以上传送过程包含了两大类操作:

内部数据通路操作和外部访存操作。

⑴数据通路操作

①ALU输入选择

R0→A

②ALU功能选择

微命令S3~S0、M、C0。

根据它们的组合选择ALU的运算功能。

③移位器功能选择

微命令DM,左移,右移

④结果分配

打入脉冲CPR0、CPMAR……

⑵访存操作

所需要的命令如下:

EMAR、R、W、SMDR、SIR

5组合逻辑控制器的设计

5.1功能描述和结构

⑴功能描述

根据现行指令、PSW、控制台命令、IO设备接口状态、中断请求、时序系统等产生所需微命令;

控制整个CPU的运行。

⑵结构

-指令译码器

-时序发生器

-编码器

-微操作信号发生器

5.2输入和输出端口定义

⑴输入

RST/*复位信号

CONSOL/*控制台输入(键盘);

IO/*IO设备接口;

PSW/*寄存器PSW;

TIM_QUE/*时序系统(三级时序);

IR_CODE/*指令输入(16位);

⑵输出

READ/*读存储器;

WRITE/*写存储器;

CPR0/*寄存器R0的打入脉冲

CPR1/*寄存器R1的打入脉冲

CPR2/*寄存器R2的打入脉冲

CPR3/*寄存器R3的打入脉冲

CPC/*寄存器C的打入脉冲

CPD/*寄存器D的打入脉冲

CPPC/*寄存器PC的打入脉冲

CPSP/*寄存器SP的打入脉冲

CPMBR/*寄存器MBR的打入脉冲

CPMAR/*寄存器MAR的打入脉冲

CPPSW/*寄存器PSW的打入脉冲

SMBR/*寄存器MBR的置入端;

SIR/*寄存器R1的置入端;

EMAR/*寄存器MAR的使能端;

SELA3/*选择器A的选择控制(3位)

SELB3/*选择器B的选择控制(3位)

CON_ALU6/*ALU的功能控制(6位)

SHIFT_REG2/*移位器的控制(2位)—左移、右移、直传(DM);

5.3指令译码器

⑴说明

由于译码后输出较多,所以按操作类型(IR15—IR12),源寄存器号(IR11—IR9),源寻址方式(IR8--IR6),目的寄存器号(IR5—IR3),目的寻址方式(IR2—IR0)分为五个译码器。

⑵操作类型码

输入:

IR15,IR14,IR13,IR12

输出:

MOV,ADD,SUB,AND,OR,EOR,COM,NEG,INC,DEG,SL,SR,JMP_RST,JSR

功能表:

表4

IR15IR14IR13IR12

IR_OPER_TYPE

MOV

DEC

RL

JMP/RST

sti

cli

⑶源寄存器号译码U_SREG_DECOD

IR11,IR10,IR9

S_R0,S_R1,S_R2,S_R3,S_SP,S_PSW,S_PC

表5

IR(11DOWNTO9)

IR_SREG_TYPE

000

S_R0

001

S_R1

010

S_R2

011

S_R3

100

S_SP

101

S_PSW

110

S_temp(未用)

111

S_PC

⑷源寄存器寻址方式译码U_SADDR_DECOD

IR8,IR7,IR6

S_ADDR_REG,S_ADDR_INDI,S_ADDR_DECR,S_ADDR_INCR,S_DOUB_INDI,S_ADDR_VARI,S_ADDR_SKP

功能描述表:

表6

IR(8DOWNTO6)

IR_SREG_ADDR

S_ADDR_REG

S_ADDR_INDI

S_ADDR_DECR

S_ADDR_INCR

S_ADDR_VARI

S_ADDR_SKP

未用

⑸目的寄存器号译码

表7

⑹目的寄存器寻址译码

输入:

输出:

表8

5.4时序发生器

⑴说明:

模型机的时序系统采取三级时序(工作周期,时钟周期,工作脉冲)

⑵工作周期

模型机设置六种工作周期状态,用六个周期状态触发器作为它们的标志。

某一时期内只有其中一个周期状态触发器为1,指明CPU现在所处的工作周期状态,为该阶段的工作提供时间标志与依据。

由于暂时不考虑DMA,所以只设置五个工作周期。

取指周期FT

源周期ST

目的周期DT

执行周期ET

中断周期IT

不同类型指令所需的工作周期可能不同。

在每一工作周期结束前,判断下一个周期状态是什么,并为此准备好进入该周期的条件,如发出电位信号ST4->

DT0等,到本周期结束的时刻,实现周期状态的定时切换。

⑶时钟周期(节拍)

以主存访问周期所需时间为时间周期的宽度。

一个工作周期包含若干节拍,根据不同指令的需要,节拍数可变。

设计一个时钟周期计数器T,从T=0开始进入一个计数循环,表示进入新的工作周期。

如果本工作周期还需延长,则发T+1,计数器T将继续计数,开始新的节拍。

如果本工作周期应当结束,则发命令T=0。

计数器T的状态进经译码产生节拍状态,如:

T0,T1,T2…等。

作为分步操作的时间标志。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1