首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

电脑SAP-1 设计与实现(2)

2013-01-08 
计算机SAP-1 设计与实现(2)在SAP-1中,指令周期为如上图。指令周期由取指周期和执行周期组成。SAP-1中,取指周

计算机SAP-1 设计与实现(2)

在SAP-1中,指令周期为如上图。指令周期由取指周期和执行周期组成。SAP-1中,取指周期包括T0、T1、T2。执行周期为T3、T4、T5。

    取指令周期中,所有的指令都是一样的,分三步

(1)将PC中数据(ROM的地址)读取放到MAR中

(2)根据MAR读取ROM中的数据,放到IR中

(3)PC = PC + 1

下图周标出了这三个阶段中,那些部位处于工作状态,那些不工作。其中绿色部位处于工作状态,灰色不工作。

电脑SAP-1 设计与实现(2) 
取指周期

 

   第一阶段(T0),EP=1,LM=1,其他控制位是0,这样在CLK到达上升沿时,PC中的内容将通过总线存储到MAR中。

    第二阶段(T1),ER=1,LI=1,其他控制位是0,这样从PROM中取出数据,在CLK上升沿时,根据MAR读取ROM中的数据,放到IR中。

    第三阶段(T3),CP=1,其他控制位是0。其中CP为PC的使能端,CP=1时,CLK上升沿时,PC=PC+1。

    因此取指周期中,总结如下表

阶段

CP EP LM ER

LI EI  LA EA

SU EU LB LO

功能

T0

0  1  1  0

0  0  0  0

0  0  0  0

MAR = PC

T1

0  0  0  1

1  0  0  0

0  0  0  0

IR = ROM(PC)

T2

1  0  0  0

0  0  0  0

0  0  0  0

PC = PC + 1

 

执行周期中,各个指令需要执行的操作是不同的。下面对各个指令分别进行介绍。

LDA指令

LDA指令的执行周期包括分三步

(1)IR将指令分为操作码和操作数。操作码将存入CON中,操作数存入MAR中。其中操作码将存入CON中,操作数(PROM的地址)存入MAR中。

(2)根据MAR读取PROM中的数据,放到A中。

(3)LDA指令在这个阶段是空操作。

 电脑SAP-1 设计与实现(2)

LDA执行周期

   第四阶段(T3),EI=1,LM=1,其他控制位是0,首先IR将操作码直接输出给CON;而操作数,由于EI=1,LM=1,当CLK下一个上升沿到达时,会被存放到MAR中。

    第五阶段(T4),ER=1,LA=1,其他控制位是0,这样根据MAR存储的数据地址从PROM中取出数据,在CLK上升沿时,PROM中的数据通过总线放到A中。

    第六阶段(T5),所有控制位都为0,空操作

总结如下表:

 

阶段

CP EP LM ER

LI EI  LA  EA

SU EU LB LO

功能

T3

0  0   1   0

1  0   0   0

0  0   0   0

MAR = ADDRESS

T4

0  0   0   1

0  0   1   0

0  0   0   0

A = ROM(ADDRESS)

T5

1  0   0   0

0  0   0   0

0  0   0   0

空操作

ADD指令

ADD指令的执行周期包括分三步

(1)IR将指令划分为操作码和操作数。操作码将存入CON中,而操作数存入MAR中。

(2)根据MAR读取PROM中的数据,放到B中。

(3)ALU将A、B中的数据相加,将结果放到A中。

 电脑SAP-1 设计与实现(2)

ADD执行周期

第四阶段(T3),EI=1,LM=1,其他控制位是0,首先IR将操作码直接输出给CON;而操作数由于EI=1,LM=1,当CLK下一个上升沿到达时,会将操作数存放到MAR中。

    第五阶段(T4),ER=1,LB=1,其他控制位是0,这样根据MAR存储的数据地址从PROM中取出数据,在CLK上升沿时,根据MAR读取ROM中的数据,放到B中。

    第六阶段(T5),LA=1,EU=1,其他控制位是0。由于ALU的加减控制位SU=0,ALU执行加法操作。而LA=1,EU=1,当CLK的上升沿到达时,ALU中计算的结果将通过总线到达A。而这个过程,将经历两个延迟时间段。一个是ALU输出数据的延迟,一个LA接收数据时的延迟。因此ALU只会计算一次。

阶段

CP EP LM ER

LI EI  LA EA

SU EU LB LO

功能

T3

0  0  1  0

0  1  0  0

0  0  0  0

MAR = ADDRESS

T4

0  0  0  1

0  0  0  0

0  0  1  0

B = ROM(ADDRSS)

T5

0  0  0  0

0  0  1  0

0  1  0  0

A = SUM







SUB指令

    SUB指令的执行过程与ADD指令类似,T0——T4阶段相同,只是T5时,ALU的加减法使能端SU=1,ALU执行减法操作。

阶段

CP EP LM ER

LI EI  LA EA

SU EU LB LO

功能

T3

0  0  1  0

0  1  0  0

0  0  0  0

MAR = ADDRESS

T4

0  0  0  1

0  0  0  0

0  0  1  0

B = ROM(ADDRSS)

T5

0  0  0  0

0  0  1  0

1  1  0  0

A = DIFF







OUT指令

OUT指令的执行周期包括分三步

(1)IR将指令分为操作码和操作数,操作码传给CON。将A的内容传输到O寄存器,同时O寄存器的内容将传给D。

(2)、(3)空操作。

电脑SAP-1 设计与实现(2)
OUT执行周期

OUT执行周期

第四阶段(T3),EA=1,LO=1,其他控制位是0,IR将操作码解码输出给CON;CON信号中EA=1,LO=1,这样当CLK上升沿时,将A中的数据通过总线传输给O。同时D(LED等)显示O的内容(计算结果)。

    第五阶段(T4),所有控制位是0。

    第六阶段(T5),所有控制位是0。

阶段

CP EP LM ER

LI EI  LA EA

SU EU LB  LO

功能

T3

0  0  0  0

0  0  0  1

0  0  0  1

OUT = A

T4

0  0  0  0

0  0  0  0

0  0  0  0

空操作

T5

0  0  0  0

0  0  0  0

0  0  0  0

空操作







HLT指令

    HLT指令,将通知CON停止计算。这个操作将通过CON产生关闭时序脉冲来实现。

四.电路

?        CON

控制器是计算机操作执行指令的关键部件。

l        指令解码器

指令解码器解析从IR寄存器发送的操作码,也就是IR的高四位。电路图如下,

LDA = 非I7·非I6·非I5·非I4

ADD = 非I7·非I6·非I5·I4

SUB = 非I7·非I6·I5·非I4

OUT = I7·I6·I5·非I4

HLT = I7·I6·I5·I4

I7 I6 I5 I4 = 0000时, LDA = 1,ADD=0,SUB=0,OUT=0,HLT=0;

I7 I6 I5 I4 = 0001时, ADD = 1;

I7 I6 I5 I4 = 0010时, SUB = 1;

I7 I6 I5 I4 = 1110时,OUT = 1;

I7 I6 I5 I4 = 1111时,HLT = 1。
电脑SAP-1 设计与实现(2)

l        控制器矩阵

从指令解码器解析出来的LDA、ADD、SUB、OUT和循环计数器的输出(T0、T1、T2、T3、T4、T5)共同来解析这个控制矩阵,矩阵的输出为CON信号:CP EP LM ER  LI EI LA EA  SU EU LB LO。


电脑SAP-1 设计与实现(2)

在控制矩阵中,

CP = T2

EP = T0

LM = T0 + ( LDA· T3 ) + (ADD· T3) +(SUB· T3)

ER  = T1+ ( LDA· T4 ) + (ADD·T4)+(SUB· T4)

LI  = T1

EI  = ( LDA·T3 ) + (ADD·T3) +(SUB·T3)

EA  = ( LDA·T4 ) + (ADD·T5) +(SUB·T5)

LA  = OUT· T3

SU = SUB ·T5

EU = ( ADD· T5 ) + (SUB· T5)

LB = ( ADD· T4 ) + (SUB· T4)

LO = OUT · T3

取指周期

当T0是高电平时,EP=1,LM=1。其他控制信号为0;

当T1是高电平时,ER=1,LI=1,其他控制信号为0;

当T2是高电平时,CP=1,其他控制信号为0。

执行周期

以LDA为例,即LDA=1。

当T3是高电平时,LM=1,EI=1。其他控制信号为0。

当T4是高电平时,ER=1,EA=1。其他控制信号为0。

当T5是高电平时,所有控制信号为0。

ADD、SUB、OUT取指周期的分析过程与LDA相同。

 

循环计数器、指令解码器、控制矩阵的连接关系如下:

电脑SAP-1 设计与实现(2)

?        PROM

ROM相当于很多的寄存器。

ROM可以使用二极管阵列来存取数据。使用解码器来存期ROM中的数据。

ROM实现的电路图如下:

电脑SAP-1 设计与实现(2)

ROM电路图

    在电路图中,当A2 A1 A0 = 000时,选中0号与门,输出为1,1-7号与门输出为0。

因此,二极管矩阵中第一行有二极管的位置将处于导通状态,输出为1,其他位置输出为0。输出结果0001。

在proteus中的仿真结果如下图,红色代表高电平,蓝色代表低电平。

    电脑SAP-1 设计与实现(2)

?        ALU

半加器

二进制半加器电路图

电脑SAP-1 设计与实现(2)

SUM = A⊕B

CARRY = A·B

半加器真值表

    A

B

CARRY

SUM

0

0

0

0

0

1

0

1

1

0

0

1

1

1

1

0

 

全加器

二进制全加器电路图

电脑SAP-1 设计与实现(2)

SUM = A⊕B⊕C

CARRY = ( A·B ) + ( B·C ) + ( A·C )

    A

B

C

CARRY

SUM

0

0

0

0

0

0

0

1

0

1

0

1

0

0

1

0

1

1

1

0

1

0

0

0

1

1

0

1

1

0

1

1

0

1

0

1

1

1

1

1

而四位二进制全加器结果如下

电脑SAP-1 设计与实现(2)

ALU可以执行加法和减法操作。为了设计的电路简单,ALU对补码进行运算。SUB为加减法标志。当SUB=1时,执行减法操作,当SUB=0时,执行加法操作。四位ALU的电路图所下:
电脑SAP-1 设计与实现(2) 

?        PC

PC使用带使能端的计数器实现

在proteus中,使用74161来实现。74161为4位二进制计数器,计数范围为0000—1111。

电路图如下,CP为使能端。CLK是脉冲输入端,CLR是清空计数器,EP是输出使能端。当CP=1时,76161开始计数,CP=0时,76161停止计数。

CLR=1时,清空计数器,CLR为异步清空。

EP=1时,将输出数据,EP=0时,输出处于断开状态。

电脑SAP-1 设计与实现(2)

?        A

寄存器A使用两个四位寄存器4076实现。

?        B、IR、MAR、O这四个寄存也使用4076实现。

 

五.在Proteus软件仿真

电路图所用的proteus版本是7.1sp2,电路图的下载地址如下:

http://user.qzone.qq.com/457204657#!app=905&url=http%3A%2F%2Fqzs.qq.com%2Fqzone%2Fapp%2FqzoneDisk%2FqzoneDisk.html%23qz_height%3D920%26qz_width%3D950%26uin%3D457204657%26pfid%3D2%26qz_ver%3D6%26appcanvas%3D1%26qz_style%3Dv6%2F88%26params%3D%26entertime%3D1356499239203%26canvastype%3D


SAP-1全局图

电脑SAP-1 设计与实现(2)
PC
电脑SAP-1 设计与实现(2) 

MAR
电脑SAP-1 设计与实现(2) 

ROM

 

 电脑SAP-1 设计与实现(2)

IR
电脑SAP-1 设计与实现(2) 

CON
 电脑SAP-1 设计与实现(2)

A
电脑SAP-1 设计与实现(2)
 

ALU
电脑SAP-1 设计与实现(2)
 

B
电脑SAP-1 设计与实现(2) 

O
电脑SAP-1 设计与实现(2) 


热点排行