一台模型计算机设计与测试计算机组成原理课程设计.docx

上传人:b****6 文档编号:9091126 上传时间:2023-02-03 格式:DOCX 页数:17 大小:26.68KB
下载 相关 举报
一台模型计算机设计与测试计算机组成原理课程设计.docx_第1页
第1页 / 共17页
一台模型计算机设计与测试计算机组成原理课程设计.docx_第2页
第2页 / 共17页
一台模型计算机设计与测试计算机组成原理课程设计.docx_第3页
第3页 / 共17页
一台模型计算机设计与测试计算机组成原理课程设计.docx_第4页
第4页 / 共17页
一台模型计算机设计与测试计算机组成原理课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

一台模型计算机设计与测试计算机组成原理课程设计.docx

《一台模型计算机设计与测试计算机组成原理课程设计.docx》由会员分享,可在线阅读,更多相关《一台模型计算机设计与测试计算机组成原理课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

一台模型计算机设计与测试计算机组成原理课程设计.docx

一台模型计算机设计与测试计算机组成原理课程设计

目录

第1章课程设计简介2

1.1课题介绍2

1.2减法指令流程2

1.3课程设计设备2

1.4减法指令流程设计任务2

第2章数据通路设计4

2.1运算器ALU4

2.2存储器4

2.3输入与输出7

2.4数据通路结构7

第3章微程序控制器设计8

3.1机器指令格式8

3.2控制台8

第4章机器语言程序设计12

4.1机器语言程序及其存储器位置、编码和数据初值的设计12

4.2程序执行过程及预测结果12

第5章指令流程与测试13

5.1接线方法13

5.2设置通用寄存器R1,R0的值13

5.3存程序机器代码14

5.4用单拍(DP)方式执行一遍程序14

5.5用单指(DZ)方式执行一遍程序14

5.6用连续方式执行一遍程序15

第6章总结16

参考文献17

第1章课程设计简介

1.1课题介绍

将微程序控制器同执行部件(整个数据通路)连机,组成一台模型计算机;

用微程序控制器控制模型机数据通路;

通过CPU运行就跳机器指令(排除终端指令)组成的简单程序,掌握机器指令与伪指令的关系,牢固建立计算机的政绩概念。

1.2减法指令流程

本次课程设计用到得电路包括运算器、存储器、通用寄存器堆、程序计数器、指令寄存器、微程序控制器等,将几个模块组成为一台简单计算机。

计算机模型采用了数据总线和指令总线双总线体质能实现流水控制。

控制器有微程序控制器或者硬布线控制器两种类型,每种类型又有流水和非流水两种方案。

寄存器堆由1片ispLS11016zu组成,运算器由1片ispLS11024组成。

实验台上包括了1片系统编程芯片ispLS11032,可用它实现硬件布线控制

1.3课程设计设备

(1)TEC—4计算机组成原理实验系统一台

(2)双踪示波器一台

(3)直流万能表一只

(4)逻辑测试笔一只

1.4减法指令流程设计任务

1.利用机器指令系统编制简单程序,要求至少使用其中五条指令,对自己编制的简单程序进行译码,手工会变成十六进制机器代码。

学生根据老师指定完成不同的子标题,即程序中必须包含标题类型的指令。

2.按图,参考组成原理实验的电路图完成连线,控制器是控制部件,数据通路是执行部件,时序产生器是时序部件。

连线包括控制台、时序部分、数据通路和微程序控制器之间的链接。

其中,为把操作数传给通用寄存器组RF,数据通路上的RS1、RS0、RD1、RD0应分别于IR3至IR0连接,WR1、WR0也应该接到IR1、IR0上。

3.将上述任务1中的程序机器代码用控制台操作存入内存中,并根据程序的需要,用数码开关SW7—SW0设置通用寄存器及内存相关单元的数据。

4.用单拍(DP)方式执行一遍程序,列表记录通用寄存器堆RF中寄存器的数据,以及RAM中的数据,与理论分析值做对比。

单拍方式执行是注意观察微地址指示灯、IR/DBUS指示灯、AR2/AR1指示灯和判断字段指示灯的值,以跟踪程序中取指令和执行指令的详细过程。

5.以单指(DZ)方式重新执行程序一遍,注意观察IR/DBUS指示AR2/AR1指示灯的值。

执行结束后,记录RF中四个寄存器的数据,以及RAM中的数据,与理论分析之作对比。

以连续方式(DB、DP、DZ都设为0)再次执行程序。

折中情况相当于计算机正常运行程序。

由于程序中有停机指令STP,程序执行到该指令时自动停机。

执行结束后,记录RF中四个寄存器的数据,以及RAM中的数据,与理论分析值做对比。

第2章数据通路设计

2.1运算器ALU

运算器ALU由一片ispLS1024(U47)组成,在选择端S2、S1、S0控制下,对数据A和B进行加、减、与、直通、乘五种运算,功能如下:

选择

操作

S2

S1

S0

0

0

0

A&B

0

0

1

A&A(直通)

0

1

0

A+B

0

1

1

A-B

1

0

0

A(低4位)XB(低4位)

图2-1操作功能表

进位C只在加法和运算和减法运算时产生。

加运算中,C表示进位;减运算中,C代表借位。

加、减运算产生的进位(借位)在T4的上升沿送入C寄存器保存。

与、乘、直通操作不影响进位C的状态,即进位C保持不变。

当ALU_BUS=1,运算结果送往数据总线DBUS。

加、减运算产生的进位(借位)C与控制台的C指示灯相连。

2.2存储器

1.DR1和DR2

DR1和DR2是运算操作数寄存器,DR1和ALU的B数据口相连,DR2和ALU的A数据口相连。

DR1和DR2各由2片74HC298(U23、U24、U21、U22)组成。

U23是DR1的低4位,U24是DR1的高4位;U21是DR2的低4位,U22是DR2的高4位。

当M1=0且LDDR1=1时,在T3的下降沿,DR1接收来自寄存器堆B端口的数据;当M1=1且LDDR1=1时,在T3的下降沿,DR1接收来自数据总线D_BUS的数据。

当M2=0且LDDR2=1时,在T3的下降沿,DR2接收来自寄存器堆A端口的数据;当M2=1且LDDR2=1时,在T3的下降沿,DR2接收来自数据总线DBUS的数据。

2.多端口通用寄存器堆RF

多端口通用寄存器堆RF由1片ispLSI1016(U32)组成,它的功能和MC14580类似。

寄存器堆中包含4个8位寄存器(R0、R1、R2、R3),有三个控制端口。

其中两个端口控制读操作,一个端口控制写操作,三个端口可同时操作。

RD1、RD0选择从A端口读出的寄存器,RS1、RS0选择从B端口读出的寄存器,WR1、WR0选择被写入的寄存器。

WRD控制写操作。

当WRD=0时,禁止写操作;当WRD=1时,在T2的上升沿将来自ER寄存器的数据写入由WR1、WR0选中的寄存器。

A端口的数据直接送往操作数寄存器DR2,B端口的数据直接送往操作数寄存器DR1。

除此之外,B端口的数据还通过1片74HC244(U15)送往数据总线DBUS。

当RS_BUS#=0时,允许B端口的数据送到数据总线DBUS上;当RS_BUS#=1时,禁止B端口的数据送到数据总线DBUS。

3.暂存寄存器ER

暂存寄存器ER(U14)是1片74HC374,主要用于暂时保存运算器的运算结果。

当LDER=1时,在T4的上升沿,将数据总线DBUS上的数据打入暂存寄存器ER。

ER的输出送往多端口通用寄存器堆RF,作为写入数据使用。

4.开关寄存器SW_BUS

开关寄存器SW_BUS(U38)是1片74HC244,用于将控制台开关SW7—SW0的数据送往数据总线DBUS。

当SW_BUS#=1时,禁止开关SW7—SW0的数据送往数据总线DBUS;当SW_BUS#=0时,允许开关SW7—SW0的数据送往数据总线DBUS。

5.双端口存储器RAM

双端口存储器由一片IDT7132(U36)及少量附加控制电路组成。

IDT7132是2048字节的双端口静态随机存储器,本机实际使用256字节。

IDT7132两个端口可同时进行读、写操作。

在本机中,左端口的数据连接数据总线DBUS,可进行读、写操作,右端口数据和指令总线INS连接,输出到指令寄存器IR,作为只读端口使用。

存储器IDT7132有6个控制引脚:

CEL#、LRW、OEL#、CER#、RRW、OER#。

CEL#、LRW、OEL#控制左端口读、写操作,CER#、RRW、OER#控制右端口读、写操作。

CEL#为左端口选择引脚,低有效,为高时禁止左端口操作;LRW为高时,左端口进行读操作,LRW为低时,左端口进行写操作;OER#为低时,将左端口读出的数据放到数据总线DBUS上。

CER#、RRW、OER#控制右端口读、写操作的方式与CEL#、LRW、OER#控制左端口读、写操作的方式类似,不过右端口读出的数据放到指令总线上而不是数据总线上。

本机设计中,OER#已固定接地,RRW固定接高电平,CER#由CER反相产生。

当CER=1时,右端口读出数据,并放到指令总线INS上;当CER=0时,禁止右端口操作。

左端口的OEL#由LRW经反相产生,不需单独控制。

当CEL#=0且LRW=1时,左端口进行读操作;当CER#=0且LRW=0时,在T3的上升沿开始进行写操作,将数据总线DBUS上的数据写入存储器。

6.地址寄存器AR1和AR2

地址寄存器AR1(U37)和AR2(U27、U28)提供双端口存储器的地址。

AR1是1片GAL22V10,具有加1功能,提供双端口存储器左端口的地址。

AR1从数据总线DBUS接收数据。

AR1的控制信号是LDAR1和AR1_INC。

当AR1_INC=1时,在T4的上升沿,AR1的值加1;当LDAR1=1时,在T4的上升沿,将数据总线DBUS的数据打入地址寄存器AR1。

AR2由2片74HC298组成,有两个数据输入端,一个来自程序计数器PC,另一个来自数据总线DBUS。

AR2的控制信号是LDAR2和M3。

M3选择数据来源,当M3=1时,选中数据总线DBUS;当M3=0时,选中程序计数器PC。

LDAR2控制何时接收地址,当LDAR2=1时,在T2的下降沿将选中的数据源上的数据打入AR2。

7.程序计数器PC、地址加法器器ALU2、地址缓存器R4

程序计数器PC、地址加法器器ALU2、地址缓存器R4联合完成三种操作:

PC加载,PC+1,PC+D。

R4是一个由2片74HC298(U25、U26)构成的具有存储功能的两路选择器。

当M4=1时,选中数据总线DBUS;当M4=0,从指令寄存器IR的低4位IR0—IR3接收数据。

当LDR4=1时,在T2的下降沿将选中的数据打入R4。

ALU2由1片GAL22V10(U17)构成,当PC_ADD=1时,完成PC和IR低4位的相加,即PC加D。

程序计数器PC是1片GAL22V10(U18),当PC_INC=1时,完成PC+1;当PC_ADD=1时,与ALU2一起完成PC+D的功能;当LDPC=1时,接收从ALU2和R4来的地址,实际是接收来自数据总线DBUS的地址,这些新的程序地址在T4的上升沿打入PC寄存器。

8.指令寄存器IR

指令寄存器IR是一片74HC374(U20)。

它的数据端从双端口存储器接收数据(指令)。

当LDIR=1时,在T4的上升沿将来自双端口存储器的指令打入指令寄存器IR保存。

指令的操作码部分送往控制器译码,产生各种所需的控制信号。

大多数情况下,指令的操作数部分应连到寄存器堆(用户自己连接),选择参与运算的寄存器。

在某些情况下,指令的操作数部分也参与新的PC的计算。

本实验系统设计了12条基本的机器指令,均为单字长(8位)指令。

指令功能及格式如表2所示。

表2中的X代表随意值,RS1、RS0指的是寄存器堆的B端口选择信号RS1、RS0,RD1、RD0指的是寄存器堆的A端口选择信号RD1、RD0,不过由于运算结果需写回,因此它也同时指WR1、WR0,用户需将它们对应连接。

另一点需说明的是,为了简化运算,指令JCD中的D是一个4位的正数,用D3D2D1D0表示。

实验系统虽仅设计了12条基本的机器指令,但代表了计算机中常用的指令类型。

必要时用户可扩充到16条指令或者重新设计指令系统。

9.中断地址寄存器IAR

中断地址寄存器IAR(U19)是一片74HC374,用于保存中断发生时的断点地址。

它直接使用LDIAR信号作为时钟脉冲。

当IAR_BUS#=0时,它将断点地址送到数据总线DBUS上,

2.3输入与输出

开关寄存器SW_BUS(U38)是1片74HC244,用于将控制台开关SW7—SW0的数据送往数据总线DBUS。

当SW_BUS#=1时,禁止开关SW7—SW0的数据送往数据总线DBUS;当SW_BUS#=0时,允许开关SW7—SW0的数据送往数据总线DBUS。

通过SW7—SW0输入数据,把数据输入到ER中,然后分别RF中的R0—R3中,然后通过选择,分别通过A、B端口送入DR1和DR2。

然后送入ALU进行相应的运算,再把结果通过DBUS送入RAM进行存储,并把指令通过INS送入IR,在送入控制器中,然后经过一系列的传送通过数据指示灯显示出来。

2.4数据通路结构

数据通路的设计师TEC-4计算机组成原理实验系统最有特色的部分。

首先它采用了数据总线和指令总线双总线形式。

它还使用了大规模在系统可编程器件作为运算器和寄存器堆,使得设计简单,可修改性强。

数据通路位于试验系统的中部。

图2-2数据通路图

第3章微程序控制器设计

3.1机器指令格式

根据下列表的代码格式。

产生不同的功能,完成各个任务。

名称

助记符

功能

指令格式

R7R6R5R4

R3R2

R1R0

加法

ADDRd,Rs

Rd+Rs->Rd

0000

RS1RS0

RD1RD0

减法

SUBRd,Rs

Rd-Rs->Rd

0001

RS1RS0

RD1RD0

乘法

MULRd,Rs

Rd*Rs->Rd

0010

RS1RS0

RD1RD0

逻辑与

ANDRd,Rs

Rd&Rs->Rd

0011

RS1RS0

RD1RD0

存数

STARd,[Rs]

Rd->[Rs]

0100

RS1RS0

RD1RD0

取数

LDARd,[Rs]

[Rs]->Rd

0101

RS1RS0

RD1RD0

无条件转移

JMP[Rs]

[Rs]->PC

1000

RS1RS0

XX

条件转移

JCD

若C=1则

PC+D->PC

1001

D3D2

D1D0

停机

STP

暂停运行

0110

XX

XX

中断返回

IRET

返回断点

1010

XX

XX

开中断

INTS

允许中断

1011

XX

XX

关中断

INTC

禁止中断

1100

XX

XX

图3-1机器指令格式

3.2控制台

控制台位于TEC—4计算机组成原理实验系统的下部,主要由若干指示灯和若干拨动开关组成,用于给数据通路置数、设置控制信号、显示各种数据使用。

1.SW7—SW0

数据开关,直接接到数据通路部分的数据总线DBUS上,用于向数据通路中的器件置数。

开关拨到上面位置时输出1,拨到下面位置时输出0。

SW7是最高位,SW0是最低位。

2.K15—K0

双位拨动开关。

开关拨到上面位置时输出1,拨到下面位置时输出0。

实验中用于模拟数据通路部分所需的电平控制信号。

例如,将K0与LDDR1连接,则K0向上时,表示置LDDR1为1;K0向下时,表示置LDDR1为0。

3.数据指示灯D7—D0

8个红色发光二极管,用于显示数据总线DBUS或者指令寄存器IR的状态。

D7是最高位,D0是最低位。

双位开关IR/DBUS拨到IR位置时,显示指令寄存器IR的状态;双位开关IR/DBUS拨到DBUS位置时,显示数据总线DBUS状态。

4.地址指示灯A7—A0

8个绿色发光二极管,用于显示双端口存储器的地址寄存器内容。

A7是最高位,A0是最低位。

双端口存储器IDT7132有两个地址端口,地址寄存器AR1提供左端口地址A7L—A0L,地址寄存器AR2提供右端口地址A7R—A0R。

当双位开关AR2/AR1拨到AR1位置时,显示地址寄存器AR1的内容;当双位开关AR2/AR1拨到AR2位置时,显示地址寄存器AR2的内容。

5.微地址指示灯_A5—_A0

6个黄色发光二极管,用于显示控制存储器的地址_A5—_A0。

_A5是最高位,_A0是最低位。

其他指示灯P3、P2、P1、P0、IE、C

6个黄色发光二极管用于显示P3、P2、P1、P0、IE、C的值。

P3、P2、P1、P0是控存的微代码位,用于条件分支产生下一个微地址。

C是加、减运算时产生的进位值。

IE是中断允许标志。

当IE=1时,允许中断;当IE=0时,禁止中断。

7.微动开关CLR#、QD、INTR

这三个微动开关用于产生CLR#、QD、INTR单脉冲。

按一次按钮CLR#,产生一个负的单脉冲CLR#,对全机进行复位,使全机处于初始状态,微程序地址置为000000B。

CLR#到时序和控制器的连接已在印制板上实现,控制存储器和数据通路部分不使用复位信号CLR#。

按一次QD按钮,产生一个正的QD启动脉冲。

QD和时序部分的连接已在印制板上实现。

按一次INTR按钮,产生一个正的单脉冲,可用于作为中断请求信号。

INTR到时序部分的连接已在印制板上实现。

这三个单脉冲都有插孔对外输出,供用户设计自己的控制器和时序电路时使用。

8.单步、单拍、单指开关DB、DP、DZ

DB(单步)、DP(单拍)、DZ(单指)是三种特殊的非连续工作方式。

当DP=1时,计算机处于单拍方式,按一次QD按钮,每次只执行一条微指令,发送一组T1、T2、T3、T4时序脉冲。

当DZ=1时,计算机处于单指方式。

单指方式只对微程序控制器适用。

在单指方式下,按一次QD按钮,计算机执行一条指令。

当DB=1时,机器处于单步方式。

单步方式只对硬布线控制器适用。

在单步方式下,按一次启动按钮QD,发送一组W1、W2、W3、W4时序脉冲。

在使用硬布线控制器时,每条指令需要一组W1、W2、W3、W4时序脉冲,因此单步方式实际上是硬布线控制器下的单指方式。

DB、DP、DZ这三个双位开关,任何时刻都只允许一个开关置1,决不允许两个或三个开关同时置1。

当DB=0且DP=0且DZ=0时,机器处于连续工作方式。

9.控制台方式开关SWC、SWB、SWA

控制台方式开关SWC、SWB、SWA定义了TEC—4计算机组成原理实验系统的五种工作方式。

在出厂时提供的标准控存中,五种工作方式定义如下:

SWC

SWB

SWA

工作方式

0

0

0

PR,启动程序

0

0

1

KRD,读双端口存储器

0

1

0

KWE,写双端口存储器

0

1

1

KLD,加载寄存器堆

1

0

0

KRR,读寄存器堆

图3-2控制台指令格式表

在按CLR#按钮复位后,根据SWC、SWB、SWA选择工作方式。

PR是启动程序方式。

在此方式下,首先在SW7—SW0指定启动地址,按启动按钮QD后,启动程序运行。

KRD是读双端口存储器方式。

在此方式下,

(1)首先在SW7—SW0置好存储器地址;按QD按钮,则将此地址打入地址寄存器AR1,并读出该地址存储器内容到数据总线DBUS。

(2)每按一次QD按钮,地址寄存器AR1加1,并读出新地址存储器内容到数据总线DBUS。

依次进行下去,直到按复位按钮CLR#为止。

KWE是写双端口存储器方式。

在此方式下,

(1)首先在SW7—SW0置好存储器地址;按QD按钮,则首先将此地址打入地址寄存器AR1,然后等待输入数据。

(2)在SW7—SW0置好数据,按QD按钮,首先写数据到AR1指定的存储器单元,然后地址寄存器AR1加1,等待新的输入数据。

依次进行下去,直到按复位按钮CLR#为止。

KLD是加载寄存器堆方式。

此方式用于对寄存器堆加载。

(1)首先在SW7—SW0置好存储器地址,按QD按钮,则将此地址打入地址寄存器AR1和地址寄存器AR2。

(2)在SW7—SW0置好数据,数据的低2位D1、D0为寄存器堆中的寄存器号,按一次QD按钮,则写数据到AR1指定的存储器单元;然后将写入的数据从右端口读出,并送入指令寄存器IR。

10.控制器

控制器位于本实验系统的中上部,产生数据通路操作所需的控制信号。

出厂时,提供了一个微程序控制器,使用户能够进行基本的计算机组成原理实验。

在进行硬连线控制器实验,流水微程序控制器实验和流水硬连线控制器实验等课程设计时,用户可设计自己的控制器,部分或者全部代替出厂时提供的控制器。

 

图3-3控制器框图

 

第4章机器语言程序设计

4.1机器语言程序及其存储器位置、编码和数据初值的设计

程序功能:

例如将寄存器R2中的内容和R0中的内容相减,将所得的差值送入到寄存器R2中。

程序实现表:

地址

指令

机器代码

10H

SUBR2,R0

12H

11H

SUBR3,R1

17H

12H

SUBR2,R3

1EH

4.2程序执行过程及预测结果

首先设置通用寄存器R0、R1、R2、R3的值,使R0=10H,R1=12H,R2=14H,R3=16H。

然后从10H地址开始存3个机器代码:

12H,17H,1EH。

用单指的方式执行程序。

初值:

R0=10H,R1=12H,R2=14H,R3=15H。

1.SUBR2,R0

执行结果:

R0=10H,R2=04H。

2.SUBR3,R1

执行结果:

R1=12H,R3=03H

3.SUBR2,R3

执行结果:

R2=01H,R3=15H

 

第5章指令流程与测试

5.1接线方法

1.将跳线开关J1用短路子短接。

时序发生器的输入TJI接控制存储器的输出TJ。

控制器的输入C接运算器ALU的C。

控制器的输入IR7、IR6、IR5、IR4依次指令寄存器IR的输出IR7、IR6、IR5、IR4。

共6条线。

2.控制器的输出LDIR(CER)、LDPC(LDR4)、PC_ADD、PC_INC、M4、LDIAR、LDAR1(LDAR2)、AR1_INC、M3、LDER、IAR_BUS#、SW_BUS#、RS_BUS#、ALU_BUS、CEL#、LRW、WRD、LDDR1(LDDR2)、M1(M2)、S2、S1、S0依次与数据通路的对应信号连接。

共27条线。

3.指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。

共6条线。

合上电源。

按CLR#按钮,使实验系统处于初始状态。

5.2设置通用寄存器R1,R0的值

在本操作中,我们打算使R0=08H,R1=06H。

1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。

令SWC=0、SWB=1、SWA=1,使实验系统处于寄存器加载工作方式KLD。

按CLR#按钮,使实验系统处于初始状态。

2.在SW7—SW0上设置一个存储器地址,该存储器地址供设置通用寄存器使用。

该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容。

例如可将该地址设置为0FFH。

按一次QD按钮,将0FFH写入AR0和AR1。

3.在SW7—SW0上设置00H,作为通用寄存器R0的寄存器号。

按一次QD按钮,则将00H写入IR。

4.在SW7—SW0设置10H,作为R0的值。

按一次QD按钮,将10H写入IR指定的R0寄存器。

5.在SW7—SW0上设置10H,作为通用寄存器R2的寄存器号。

按一次QD按钮,将10H写入IR。

6.在SW7—SW0设置14H,作为R2的值。

按一次QD按钮,将14H写入R2。

7.设置R0、R2结束,用同样的方法设置R1、R3

8.按CLR#按钮,使实验系统恢复到初始状态。

5.3存程序机器代码

本操作中,我们从10地址开始存。

3个机器代码:

12H,17H,1EH。

1.令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。

令SWC=0、SWB=1、SWA=0,使实验系统处于写双端口存储器工作

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

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

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

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