组成原理课程设计参考Word文档下载推荐.docx
- 文档编号:7186361
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:29
- 大小:346.23KB
组成原理课程设计参考Word文档下载推荐.docx
《组成原理课程设计参考Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《组成原理课程设计参考Word文档下载推荐.docx(29页珍藏版)》请在冰点文库上搜索。
数据通路是将双端口存储器模块和双端口通用寄存器模块连接在一起形成的。
双端口通用寄存器(RF)由一个ispLSI1016实现,功能相当于四个八位通用寄存器,用于保存参与运算的数据,运算后的结果也要送到RF中保存。
双端口寄存器堆模块的控制信号中,RS1、RS0用于选择从右端口读出的通用寄存器,RD1、RD0用于选择从左端口读出的通用寄存器。
而WR1、WR0用于选择写入的通用寄存器。
LDRi是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用寄存器。
左右端口分别与操作数暂存器DR1和DR2相连,RF的右端口通过三态门连接到数据总线DBUS上,因而RF中的数据可以直接通过右端口送到DBUS上。
DR1和DR2各由一片74LS273构成,用于暂存参与运算的数据。
ALU由两片74LS181构成,ALU的输出通过一个三态门发送到数据通路DBUS上。
双端口寄存器使用一片IDT7132(2048×
8位),两个端口的地址输入A8-A10引脚接地,因此实际使用的存储容量为256字节。
左端口的数据输出端接在数据总线DBUS,右端口的数据输出接指令总线IBUS。
CEL#、LR/W#、OEL#控制左端口读写操作;
CER#、RR/W#、OER#控制右端口读写操作。
CEL#为左端口片选信号,低电平有效;
当CEL#=1时,禁止对左端口的读写操作;
当LR/W#=0时,左端口进行读写。
OEL#的作用等同于三态门,当OEL#=0时,允许左端口读出的数据送到数据总线DBUS上;
当OEL#=1时,禁止左端口的数据放到DBUS上。
因此将OEL#写作RAM-BUS#。
右端口控制信号与左端口完全类似。
左端口负责所有数据和指令的写入,右端口作为指令端口,不需要进行数据写入,将右端口处理为只读端口,RR/W#固定接高电平,OER#固定接地。
存储器左端口的地址寄存器AR和右端口的地址寄存器PC都是2片74LS163,具有地址递增功能。
同时,PC也起到程序计数器的功能。
指令由双端口寄存器的右端口送到指令总线IBUS,再送入指令寄存器IR,再通过操作控制器产生各控制信号从而实现程序运行,本次实验编写的控制器是硬布线控制器。
二.硬布线控制器逻辑模块图
硬布线控制器逻辑模块图
首先根据硬连线指令流程图列出译码表,再设计出译码逻辑电路图。
下面给出本组的组合逻辑译码表:
水平方向表示一个信号,纵向为某一状态或指令,单元格中的内容表示该控制信号在该指令中有效的条件,根据译码表可以写出每个控制信号的逻辑表达式。
接着按照上面的组合逻辑译码表写出各信号的逻辑表达式:
LDDR1=ADD*W2+SUB*W2+AND*W2+STA*W2
LDDR2=ADD*W2+SUB*W2+AND*W2
CEL#=STA*W3+LDA*W3+RRF2*W1+WRF2*W1+RRM2*W1+WRM2*W1
CER#=RP2*W1+RRF2*W2+WRF2*W2LDAR#=STA*W2+LDA*W2+RRF*W3+WRF*W3+RRM*W3+WRM*W3
AR+1=RRM2*W3+WRM2*W3
LDPC#=JC*W3*C+RRF*W3+WRF*W3+RP*W3
PC+1=(ADD+SUB+AND+STA+LDA+STP+OUT)*W3+JC*W2
LDRi=ADD*W3+SUB*W3+AND*W3+LDA*W3+WRF2*W3
LR/W#=STA*W3#+LDA*W3+RRF2*W1#+WRF2*W1#+RRM2*W1+WRM2*W1#
LDIR=RP2*W1+RRF2*W2+WRF2*W2
SW-BUS#=RRF*W3+RRF2*W1+WRF*W3+WRF2*(W1+W3)+RRM*W3+WRM*W3+WRM2*W1+RP*W3
RS-BUS#=STA*W2+LDA*W2+JC*W3*C+OUT*W3+RRF2*W3
RAM-BUS#=LDA*W3+RRM2*W1
ALU-BUS#=ADD*W3+SUB*W3+AND*W3+STA*W3
TJ=STP*W3+OUT*W3+RRF*W3+RRF2*W3+WRF*W3+WRF2*(W2+W3)+RRM2*W1+WRM*W3+WRM2*W3
SKIP=RRF*W1+WRF*W1+RRM*W1+WRM*W1+RP*W1
S3=ADD*W3+SUB*W3#+AND*W3+STA*W3
S2=ADD*W3#+SUB*W3+AND*W3+STA*W3
S1=ADD*W3#+SUB*W3+AND*W3+STA*W3
S0=ADD*W3+SUB*W3#+AND*W3#+STA*W3
M=ADD*W3#+SUB*W3#+AND*W3+STA*W3
Cn#=ADD*W3+SUB*W3#
其中,以上各式右侧所用变量展开成输入信号的对应关系如下:
RRF0((NOTSTO)ANDSWCAND(NOTSWB)AND(NOTSWA))
RRF1(STOANDSWCAND(NOTSWB)AND(NOTSWA))
WRF0((NOTSTO)AND(NOTSWC)ANDSWBANDSWA)
WRF1(STOAND(NOTSWC)ANDSWBANDSWA)
RRM0((NOTSTO)AND(NOTSWC)ANDSWBAND(NOTSWA))
RRM1(STOAND(NOTSWC)ANDSWBAND(NOTSWA))
WRM0((NOTSTO)AND(NOTSWC)AND(NOTSWB)ANDSWA)
WRM1(STOAND(NOTSWC)AND(NOTSWB)ANDSWA)
RP0((NOTSTO)AND(NOTSWC)AND(NOTSWB)AND(NOTSWA))
RP1(STOAND(NOTSWC)AND(NOTSWB)AND(NOTSWA))
ADD((NOTIR7)AND(NOTIR6)AND(NOTIR5)AND(NOTIR4))
SUB((NOTIR7)AND(NOTIR6)AND(NOTIR5)ANDIR4)
AND((NOTIR7)AND(NOTIR6)ANDIR5AND(NOTIR4))
STA((NOTIR7)AND(NOTIR6)ANDIR5ANDIR4)
LDA((NOTIR7)ANDIR6AND(NOTIR5)AND(NOTIR4))
JC((NOTIR7)ANDIR6AND(NOTIR5)ANDIR4)
STP((NOTIR7)ANDIR6ANDIR5AND(NOTIR4))
OUT((NOTIR7)ANDIR6ANDIR5ANDIR4)
三.模块ABEL语言源程序
在用ABEL语言实现硬连线控制器时,我们增加了1个标志位RUN。
由于按CLR#按钮复位后,实验系统的时序停止在T4、W3,ST0的值为0,这样SST0=!
ST0&
W3的值为1。
按QD启动按钮后,由于立即产生T1信号,在T1的上升沿使ST0置1,在第一组W1、W2、W3时,ST0的值为1,这是我们不希望看到的。
增加了标志位RUN后,按CLR#按钮复位,使RUN为0。
由于SST0=!
ST0*W3*RUN,因此复位后的SST0=0。
按QD启动按钮,在T1的上升沿,使RUN=1。
根据SST0的布尔表达式,在W1、W2时,SST0=0,直到W3时,才使SST0=1。
由于ST0:
=CLR#*SST0#CLR*ST0,在W3过后的下一个T1的上升沿,才使ST0置1,从而将控制台操作的两种状态区分开来。
在下面的ABEL语言源程序中,为了阅读方便,没有将逻辑表达式化简,编译时ispEXPERT会自动将其化简。
为了和ABEL语言的规则一致,不发生冲突,对以下信号名进行了改变。
ALU_BUS#改为ALU_BUS
RAM_BUS#改为RAM_BUS
RS_BUS#改为RS_BUS
SW_BUS#改为SW_BUS
Cn#改为Cn
LDAR#改为LDAR
LDPC#改为LDPC
PC+1改为PC_INC
AR+1改为AR_INC
LR/W#改为LRW
TEC-5硬连线控制器的ABEL源程序如下:
MODULEctl_1
TITLE'
tec-5hard-wiredcontrolunit'
"
INPUT
CLRPIN59;
"
CLR=CLR#
MF,T1,W1,W2,W3PIN69,16,9,49,14;
IR4,IR5,IR6,IR7PIN4,18,27,33;
SWC,SWB,SWA,CPIN50,15,57,51;
OUTPUT
MF1,SST0NODEISTYPE'
COM'
;
RUN,ST0NODEISTYPE'
REG'
S3,S2,S1,S0PIN26,34,7,30ISTYPE'
M,Cn,LRW,CEL,CERPIN35,37,47,46,5ISTYPE'
Cn=Cn#,CEL=CEL#,CER=CER#,LRW=LR/W#
RAM_BUS,ALU_BUS,RS_BUS,SW_BUSPIN45,10,29,12ISTYPE'
RAM_BUS=RAM_BUS#,ALU_BUS=ALU_BUS#
RS_BUS=RS_BUS#,SW_BUS=SW_BUS#
LDRi,LDDR2,LDDR1,LDAR,AR_INCPIN32,31,13,48,71ISTYPE'
LDAR=LDAR#,AR_INC=AR+1
LDPC,PC_INC,LDIR,TJ,SKIPPIN28,8,6,3,36ISTYPE'
LDPC=LDPC#,PC_INC
CLK=.C.;
EQUATIONS
MF1=!
CLR&
MF#T1;
RUN:
=CLR&
!
ST0#CLR&
RUN;
RUN.CLK=MF1;
SST0=!
RUN&
W3;
ST0:
SST0#CLR&
ST0;
ST0.CLK=MF1;
S3=ST0&
SWC&
SWB&
SWA&
IR7&
IR6&
IR5&
IR4&
W3
#ST0&
IR5&
S2=ST0&
IR4&
S1=ST0&
S0=ST0&
M=ST0&
Cn=!
(ST0&
W3);
LRW=ST0&
SWB&
W1
IR6&
CEL=!
SWA&
SWC&
CER=!
W2
W2);
RAM_BUS=!
ALU_BUS=!
RS_BUS=!
C&
SW_BUS=!
(!
#!
W1);
LDRi=ST0&
LDDR2=ST0&
W2;
LDDR1=ST0&
LDAR=!
AR_INC=ST0&
LDPC=!
PC_INC=ST0&
LDIR=ST0&
TJ=!
SKIP=!
W1;
END
四.硬布线控制器指令周期流程图
上图为PPT中给出的参考硬连线控制器的指令周期流程图。
在本次试验中,选用3个节拍电位对大多数指令就够用,所以节拍电位发生器产生3个点位信号(W1~W3)。
对于所需节拍电位时间较多的指令如何处理,这里采用的是将一条机器指令的执行化为占用两条(或者更多)机器指令的节拍,例如执行一条指令可以占用W1、W2、W3、W1、W2、W3六拍时间。
为了区分一条指令的两个不同阶段,可用某些特殊的寄存器标志将其区分,例如,FLAG=0时,表示该指令执行第一个W1、W2、W3;
FLAG=1时,表示该指令执行第二个W1、W2、W3。
由于有些控制台指令只需要4拍,占用2条机器指令周期(6拍)则浪费了时间。
为了减少浪费,在时序电路中加入了一个控制信号SKIP的输入,该信号的作用是使节拍发生器在任意状态下直接跳到最后1拍(W3)。
这样,设计控制流程时,在所需节拍较少的指令流程适当的位置使SKIP控制信号有效,多余的节拍就可以跳过,从而提高了性能。
五.设计说明书
一、教学目的、任务与实验设备
(一)教学目的
(1)融会贯通计算机组成原理课程、计算机组织和结构的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对硬连线控制器的认识。
(2)学习运用ISP(在系统编程)技术进行设计和调试的基本步骤和方法,熟悉集成开发软件中设计、模拟调试工具的使用,体会ISP技术相对于传统开发技术的优点。
(3)培养科学研究的独立工作能力,取得工程设计与组装调试的实践经验。
(二)设计与调试任务
(1)按给定的数据格式和指令系统,在所提供的器件范围内,设计一台硬连线控制器控制的模型计算机。
(2)根据设计图纸,在通用实验台上进行组装,或对微程序控制方案的模型机进行改装,并调试成功。
(3)在组装调试成功的基础上,整理出设计图纸和其他文件,包括:
1.总框图(数据通路图);
2.硬连线控制器逻辑模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组成 原理 课程设计 参考