计算机组成原理暑假课程设计.docx

上传人:b****8 文档编号:10627367 上传时间:2023-02-22 格式:DOCX 页数:48 大小:640.59KB
下载 相关 举报
计算机组成原理暑假课程设计.docx_第1页
第1页 / 共48页
计算机组成原理暑假课程设计.docx_第2页
第2页 / 共48页
计算机组成原理暑假课程设计.docx_第3页
第3页 / 共48页
计算机组成原理暑假课程设计.docx_第4页
第4页 / 共48页
计算机组成原理暑假课程设计.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

计算机组成原理暑假课程设计.docx

《计算机组成原理暑假课程设计.docx》由会员分享,可在线阅读,更多相关《计算机组成原理暑假课程设计.docx(48页珍藏版)》请在冰豆网上搜索。

计算机组成原理暑假课程设计.docx

计算机组成原理暑假课程设计

大学计算机科学与技术学院

课程设计说明书

 

课程:

计算机系统综合课程设计

院(部):

计算机科学与技术

专业:

计算机科学与技术

班级:

计科

学生姓名:

学号:

20151110

指导教师:

完成日期:

2018.01.19

课程设计任务书

设计题目

模型计算机的设计(八)

已知技术参数和设计要求

1、使用TEC-8实验台

2、主要模块:

FPGA、运算器、寄存器、数据通路、双端口存储器、总线缓冲、微程序控制、启停和时序模块。

3、用硬连线控制器的方法设计控制台,要求能连续地读写寄存器,连续地读写存储器,执行指令;

4、指令字长8位,高4位为操作码,固定操作码译码,低4位为寄存器寻址,完成以下指令的分析、设计,并编写测试程序;

LDRd,[RS];ST[Rd],RS;

INCRd;SUBRd,Rs

JNCADDR;JNZADDR;

MOVRd,Rs;OUTRd

STP

设计内容与步骤

1、熟悉TEC-8实验台的FPGA、运算器、寄存器、数据通路、双端口存储器、总线缓冲等电路的功能,并结合时序分析指令各控制信号

2、根据要求,设计指令系统,编写硬连线的方法设计控制器的流程图;

3、利用VHDL描述语言编写控制器程序;

4、下载测试控制器电路,判定控制信号是否正确;

5、编写测试程序,绘制表格,记录存储器初始程序及数据;

6、用实验台调试,分别用单步运行和连续运行两种方式运行测试程序,记录运行数据,并分析结果;

7、编写课程设计说明书。

设计工作计划与进度安排

1、调试工具4学时

2、设计语言VHDL6学时

3、TEC-8实验台功能模块6学时

4、控制器的硬件描述10学时

5、测试程序的设计10学时

6、课程设计说明书6学时

设计考核要求

考勤20%

课程设计说明书50%。

成果演示30%

注:

每个同学内容实现方式要有差异,不能雷同,否则记0分

指导教师(签字):

教研室主任(签字):

1、课程设计目的和任务

1.1设计任务

(1)分析计算机硬件系统的各个组成部分及其作用,设计字长为8位固定操作码的指令系统。

(2)利用VHDL硬件描述语言,进行硬连线控制器模型机的详细设计。

(3)通过QuartusII编译下载到TEC-8实验台的在系统可编程器件CPLD中。

(4)编写测试程序,在TEC-8实验台上调试运行。

1.2设计目的

(1)融会贯通计算机组成与体系结构课程各章教学内容,通过知识的综合运用,加深对CPU各模块工作原理及相互联系的认识。

(2)掌握硬连线控制器的设计方法。

(3)学习运用当代的EDA设计工具,掌握用EDA设计大规模复杂逻辑电路的方法。

(4)培养科学研究能力,取得设计和调试的实践经验。

2、模拟机实验平台分析

2.1运算器模块

在TEC-8中,执行一条微指令(或者在硬连线控制器中完成1个机器周期)需要连续的3个节拍脉冲T1、T2和T3。

它们的时序关系如图1所示:

图1机器周期与T1、T2、T3时序关系图

对于运算器操作来说,在T1期间,产生2个8位参与运算的数A和B,A是被加数,B是加数;产生控制运算类型的信号M、S3、S2、S1、S0和CIN;产生控制写入Z标志寄存器的信号LDZ和控制写入C标志寄存器的信号LDC,产生将运算的数据结果送往数据总线DBUS的控制信号ABUS。

这些控制信号保持到T3结束;在T2期间,根据控制信号,完成某种运算功能;在T3的上升沿,保存运算的数据结果到一个8位寄存器中,同时保存进位标志C和结果为0标志Z。

图2运算器组成实验的电路图

双端口寄存器组由1片EPM7064(U40)(图2中用虚线围起来的部分)组成,内部包含4个8位寄存器R0、R1、R2、R3,4选1选择器A,4选1选择器B和1个2-4译码器。

根据信号RD1、RD0的值,4选1选择器A从4个寄存器中选择1个寄存器送往ALU的A端口。

根据信号RS1、RS0的值,4选1选择器B从4个寄存器中选择1个寄存器送往ALU的B端口。

2-4译码器对信号RD1、RD0进行译码,产生信号LR0、LR2、LR3、LR4,任何时刻这4个信号中只有一个为1,其它信号为0。

LR3~LR0指示出被写的寄存器。

当DRW信号为1时,如果LR0为1,则在T3的上升沿,将数据总线DBUS上的数写入R0寄存器,余类推。

数据开关SD7~SD0是8个双位开关。

用手拨动这些开关,能够生成需要的SD7~SD0的值。

数据开关驱动器SWD是1片74LS244(U50)。

在信号SBUS为1时,SD7~SD0通过SWD送往数据总线DBUS。

使用数据开关SD7~SD0设置寄存器R0、R1、R2和R3的值。

ALU由2片74LS181(U41和U42)、1片74LS74、1片74LS244、1片74LS245和1片74LS30构成。

74LS181完成算术逻辑运算,74LS245和74LS30产生Z标志,74LS74保存标志C和标志Z。

ALU对A7~A0和B7~B0上的2个8位数据进行算术逻辑运算,运算后的数据结果在信号ABUS为1时送数据总线DBUS(D7~D0),运算后的标志结果在T3的上升沿保存进位标志位C和结果为0标志位Z。

加法和减法同时影响C标志和Z标志,与操作和或操作只影响Z标志。

应当指出,74LS181只是许多种能做做算术逻辑运算器件中的一种器件,这里它仅作为一个例子使用。

74LS181能够进行4位的算术逻辑运算,2片74LS181级连在一起能够8位运算,3片74LS181级连在一起能够进行12位运算,余类推。

所谓级联方式,就是将低4位74LS181的进位输出引脚Cn+4与高4位74LS181的进位输入引脚Cn连接。

在TEC-8模型计算机中,U42完成低4位运算,U41完成高4位运算,二者级连在一起,完成8位运算。

在ABUS为1时,运算得到的数据结果送往数据总线DBUS。

数据总线DBUS有4个信号来源:

运算器、存储器、数据开关和中断地址寄存器,在每一时刻只允许其中一个信号源送数据总线。

本实验中用到的信号归纳如下:

表1信号归纳表

表1信号归纳表

 

表2ALU运算模式

选择方式

M=1逻辑运算

M=0算术运算

S3

S2

S1

S0

逻辑运算

CN=1【有进位】

0

0

0

0

F=/A

F=A

0

0

0

1

F=/(A+B)

F=(A+B)

0

0

1

0

F=(/A)B

F=A+/B

0

0

1

1

F=0

F=-1(补码形式)

0

1

0

0

F=/(AB)

F=A+A(/B)

0

1

0

1

F=/B

F=(A+B)+A/B

0

1

1

0

F=A-B-1

0

1

1

1

F=A/B

F=(AB/)-1

1

0

0

0

F=/A+B

F=A+AB

1

0

0

1

F=A+B

1

0

1

0

F=B

F=(A+/B)+AB

1

0

1

1

F=AB

F=AB-1

1

1

0

0

F=1

F=A+A

1

1

0

1

F=A+/B

F=(A+B)+A

1

1

1

0

F=A+B

F=(A+/B)+A

1

1

1

1

F=A

F=A-1

表2ALU运算模式

 

2.2控制器

图3控制器实验电路图

1)微程序控制器

微程序控制器产生TEC-8模型计算机所需的各种控制信号。

它由5片HN58C65、1片74LS174、3片74LS32和3片74LS06组成。

5片HN58C65组成控制存储器,存放微程序代码;1片74LS174是微地址寄存器。

3片74LS32和3片74LS08组成微地址转移逻辑。

2)硬连线控制器

硬连线控制器由1片可编程器件CPLD组成,产生TEC-8模型计算机所需的各种控制信号。

2.3数据通路

数据通路实验电路图如图2.3所示。

它由运算器部分、双端口存储器部分加上数据开关SD7~SD0连接在一起构成。

 

如下图4数据通路实验电路

图4数据通路实验电路

这里主要说明TEC-8模型计算机的数据流动路径和方式。

在进行数据运算操作时,由RD1、RD0选中的寄存器通过4选1选择器A送往ALU的A在进行数据运算操作时,由RD1、RD0选中的寄存器通过4选1选择器A送往ALU的A端口,由RS1、RS0选中的寄存器通过4选1选择器B送往ALU的B端口;信号M、S3、S2、S1、S1和S0决定ALU的运算类型,ALU对A端口和B端口的两个数连同CIN的值进行算数逻辑运算,得到的数据运算结果在信号ABUS为1时送往数据总线DBUS;在T3的上升沿,数据总线DBUS上的数据结果写入由RD1、RD0选中的寄存器。

在寄存器之间进行数据传送操作时,由RS1、RS0选中的寄存器通过4选1选择器B送往ALU的B端口;ALU将B端口的数在信号ABUS为1时送往数据总线DBUS;在T3的上升沿将数据总线上的数写入由RD1、RD0选中的寄存器。

ALU进行数据传送操作由一组特定的M、S3、S2、S1、S0、CIN的值确定。

在进行运算操作时,由RS1、RS0选中的寄存器通过4选1选择器B送往ALU的B端口;由RD1、RD0选中的寄存器通过4选1选择器A送往ALU的A端口;ALU对数A和B进行运算,运算的数据结果在信号ABUS为1时送往数据总线DBUS;在T3的上升沿将数据总线上的数写入由RD1、RD0选中的寄存器。

ALU进行何种运算操作由M、S3、S2、S1、S0、CIN的值确定。

在从存储器中取数操作中,由地址AR7~AR0指定的存储器单元中的数在信号MEMW为0时被读出;在MBUS为1时送数据总线DBUS;在T3的上升沿写入由RD1、RD0选中的寄存器。

在写存储器操作中,由RS1、RS0选中的寄存器过4选1选择器B送ALU的B端口;ALU将B端口的数在信号ABUS为1时送往数据总线DBUS;在MEMW为1且MBUS为0时,通过左端口将数据总线DBUS上的数在T2为1期间写入由AR7~AR0指定的存储器单元。

在读指令操作时,通过存储器右端口读出由PC7~PC0指定的存储器单元的内容送INS7~INS0,当信号LIR为1时,在T3的上升沿写入指令寄存器IR。

表3信号表:

M、S3、S2、S1、S0

控制74LS181的算数逻辑运算类型

CIN

低位74LS181的进位输入

SEL3(RD1)

选择送ALU的A端口的寄存器和被写入的寄存器

SEL2(RD0)

SEL1(RS1)

选择送往ALU的B端口的寄存器

SEL0(RS0)

DRW

=1时,在T3上升沿对RD1、RD0选中的寄存器进行写操作,将数据总线DBUS上的数D7~D0写入选定的寄存器

ABUS

=1时,将运算结果送数据总线DBUS

=0时,禁止运算结果送数据总线DBUS

SBUS

=1时,将运算结果送数据总线DBUS

=0时,禁止运算结果送数据总线DBUS

A7~A0

送往ALU的A端口的数

B7~B0

送往ALU的B端口的数

D7~D0

数据总线DBUS上的8位数

MBUS

=1时,将双端口RAW的左端口数据送到数据总线DBUS

MEMW

=1时,在T2为1期间将数据总线DBUS上的D7~D0写入双端口RAW,写入的存储器单元由AR7~AR0制定

LPC

=1时,在T3的上升沿,将数据总线DBUS上的D7~D0写入程序计数器PC

PCINC

=1时,在T3的上升沿,AR加1

LAR

=1时,在T3的上升沿,将数据总线DBUS上的D7~D0写入地址寄存器AR

ARINC

=1时,在T3的上升沿,AR加1

SBUS

=1时,数据开关SD7~SD0的数送数据总线DBUS

AR7~AR0

双端口RAW左端口存储器地址

PC7~PC0

双端口RAQ右端口存储器地址

INS7~INS0

从双端口RAQ右端口读出的指令,本实验中作为数据使用

SETCTL

=1时,实验系统处于实验台状态

=0时,实验系统处于运行程序状态

2.4模型计算机时序信号

TEC-8模型计算机主时钟MF的频率为1MHz,执行一条微指令需要3个节拍脉冲T1、T2、T3。

TEC-8模型计算机时序采用不定长机器周期,绝大多数指令采用2个机器周期W1、W2,少数指令采用一个机器周期W1或者3个机器周期W1、W2、W3。

图5TEC-8模型机的时序图

2.5总电路框图

总电路框图如图6所示:

图6TEC-8模型计算机电路框图

3、指令系统设计

TEC-8模型计算机是个8位机,字长是8位。

指令使用4位固定操作码,最多容纳16条指令。

一个较完善的指令系统,应当有数据传送、算术运算、逻辑运算、控制转移指令,所以至少应该包含下表中的指令。

表4TEC-8模型计算机指令系统

名称

助记符

功能

指令格式

IR(7-4)

IR(3-2)

IR(1-0)

取数

LDRd,[Rs]

Rd<-[Rs]

0101

Rd

Rs

存数

STRs,[Rd]

Rs->[Rd]

0110

Rd

Rs

加1

INCRd

Rd<-Rd+1

0100

Rd

XX

减法

SUBRd,Rs

Rd<-Rd-Rs

0010

Rd

Rs

C条件转移

JCaddr

C=1,则

PC<-@+offset

0111

offset

Z条件转移

JZaddr

Z=1,则

PC<-@+offset

1000

offset

逻辑与

ANDRd,Rs

Rd<-RdandRs

0011

Rd

Rs

MOV

JMP[Rd]

PC<-Rd

1001

Rd

XX

输出

OUTRs

DBUS<-Rs

1010

XX

Rs

停机

STP

暂停运行

1110

XX

XX

表4TEC-8模型计算机指令系统

其中,XX代表随意值。

Rs代表源寄存器号,Rd代表目的寄存器号。

在条件转移指令中,@代表当前PC的值,offset是一个4位的有符号数,第3位是符号位,0代表正数,1代表负数。

注意:

@不是当前指令的PC值,是当前指令的PC值加1。

4、模拟机硬连线控制器设计

4.1硬连线控制器的基本原理

硬连线控制器的基本原理,每个微操作控制信号S是一系列输入量的逻辑函数,即用组合逻辑来实现

S=f(Im,Mi,Tk,Bj)

其中Im是机器指令操作码译码器的输出信号,Mi是节拍电位信号,Tk是节拍脉冲信号,Bj是状态条件信号。

在TEC-8实验系统中,节拍脉冲信号Tk(T1~T3)已经直接输送给数据通路。

因为机器指令系统比较简单,省去操作码译码器,4位指令操作码IR4~IR7直接成为Im的一部分;由于TEC-8实验系统有控制台操作,控制台操作可以看作一些特殊的功能复杂的指令,因此SWC、SWB、SWA可以看作是Im的另一部分。

Mi是时序发生器产生的节拍信号W1~W3;Bj包括ALU产生的进位信号C、结果为0信号Z等等。

4.2时序电路节拍设计

1)硬连线控制器流程图

微程序控制器的控制信号以微指令周期为时间单位,硬连线控制器以节拍电位(CPU周期)为时间单位,两者在本质上是一样的,1个节拍电位时间和1条微指令时间都是从节拍脉冲T1的上升沿到T3的下降沿的一段时间。

在微程序控制器流程图中,一个执行框代表一条微指令,在硬连线控制器流程图中,一个执行框代表一个节拍电位时间。

2)执行一条机器指令的节拍电位数

在TEC-8实验系统中,采用了可变节拍电位数来执行一条机器指令。

大部分指令的执行只需2个节拍电位W1、W2,少数指令需要3个节拍电位W1、W2、W3。

为了满足这种要求,在执行一条指令时除了产生完成指令功能所需的微操作控制信号外,对需要3个电位节拍的

指令,还要求它在W2时产生一个信号LONG。

信号LONG送往时序信号发生器,时序信号发生器接到信号LONG后产生节拍电位W3。

对于一些控制台操作,需要4个节拍电位才能完成规定的功能。

为了满足这种情况,可以将控制台操作化成两条机器指令的节拍。

为了区分写寄存器操作的2个不同阶段,可以用某些特殊的寄存器标志标。

例如建立一个FLAG标志,当FLAG=0时,表示该控制台操作的第1个W1、W2;当FLAG=1时,表示该控制台操作的第2个W1、W2。

为了适应更为广泛的情况,TEC-8的时序信号发生器允许只产生一个节拍电位W1。

当1条指令或者一个控制台在W1时,只要产生信号SHORT,该信号送往时序信号发生器,则时序信号发生器在W1后不产生节拍电位W2,下一个节拍仍是W1。

信号LONG和SHORT只对紧跟其后的第一个节拍电位的产生起作用。

3).组合逻辑译码表

设计出硬连线流程图后,就可以设计译码电路。

传统的做法是先根据流程图列出译码表,作为逻辑设计的根据。

译码表的内容包括横向设计和纵向设计,流程图中横向为一拍(W1、W2、W3),纵向为一条指令。

而译码逻辑是针对每一个控制信号的,因此在译码表中,横向

变成了一个信号。

表3.1是译码表的一般格式,每行中的内容表示某个控制信号在各指令中的有效条件,主要是节拍电位和节拍脉冲指令操作码的译码器输出、执行结果标志信号等。

 

根据译码表,很容易写出逻辑表达式。

指令IR

ADD

SUB

AND

……

LIR

W1

W1

W1

M

W2

S3

W2

W2

S2

W2

S1

W2

……

表5组合逻辑译码表

与传统方法稍有不同的是,使用VHDL语言设计时,可根据流程图直接写出相应的语言描述。

以表3.1中的ADD、SUB、AND为例,可描述如下:

process(IR,W1,W2,W3)--这里的IR实际上是指令操作码,即IR4~IR7

begin

LIR<='0';

M<='0';

S3<='0';

S2<='0';

S1<='0';

caseIRis

when"0001"=>

LIR<=W1;

S3<=W2;

when"0010"=>

LIR<=W1;

S2<=W2;

S1<=W2;

when"0011"=>

LIR<=W1;

M<=W2;

S3<=W2;

S1<=W2;

很明显,这种方法省略了译码表,且不容易出错。

4.3控制台操作分析与设计

.

表6控制台操作表

控制台操作

写存储器

读存储器

写寄存器

读寄存器

SWA&SWB&SWC

001

010

100

011

4.3.1写存储器模式

(1)因为要先确定地址,再存入数据,所以需要两个连续的指令周期;采用标志位ST0区分。

(2)第一个指令周期,ST0=0

节拍W1:

微操作信号:

SBUS有效=1,选通

微操作信号:

LAR=1,T3上升沿,将DBUS上的D7~D0写入AR

微操作信号:

SST0=1,设置ST0

微操作信号:

SHORT=1,只用一个节拍w1

微操作信号:

SELECTL=1,控制台操作

微操作信号:

STOP=1,T3结束后停止输出T1-T3信号

注:

在这个节拍下从数据开关SD7-SD0输入存储器地址

(3)第二个指令周期,ST0=1

节拍W1:

微操作信号:

SBUS有效=1,选通

微操作信号:

MEMW=1,T2上升沿,将DBUS上的D7~D0写入RAM

微操作信号:

ARINC=1,T3上升沿,PC+1

微操作信号:

SHORT=1,只用一个节拍w1

微操作信号:

SELECTL=1,控制台操作

微操作信号:

STOP=1,T3结束后停止输出T1-T3信号

注:

在这个节拍下从数据开关SD7-SD0输入存储器地址

(4)控制台写存储器微操作流程图

图7控制台写存储器微操作流程图

(5)译码表

ST0=0

微操作信号

W1

SBUS

1

LAR

1

SST0

1

SHORT

1

SELCTL

1

STOP

1

ST0=1

微操作信号

W1

SBUS

1

MEMW

1

ARINC

1

SHORT

1

SELCTL

1

STOP

1

4.3.2读存储器模式

(1)因为要先确定地址,再读出数据,所以需要两个连续的指令周期;采用标志位ST0区分。

(2)第一个指令周期,ST0=0

节拍W1:

微操作信号:

SBUS有效=1,选通

微操作信号:

LAR=1,T3上升沿,将DBUS上的D7~D0写入AR

微操作信号:

SST0=1,置st0=1,进入第二个寄存器置数周期

微操作信号:

SHORT=1,只用一个节拍w1

微操作信号:

SELECTL=1,控制台操作

微操作信号:

STOP=1,T3结束后停止输出T1-T3信号

注:

在这个节拍下从数据开关SD7-SD0输入存储器地址

(3)第二个指令周期,STO=1

节拍W1:

微操作信号:

MBUS有效=1,RAM左端口的数据送到DBUS

微操作信号:

ARINC=1,T3上升沿,PC+1

微操作信号:

SHORT=1,只用一个节拍w1

微操作信号:

SELECTL=1,控制台操作

微操作信号:

STOP=1,T3结束后停止输出T1-T3信号

(4)控制台读存储器微操作流程图

图8控制台读存储器微操作流程图

(5)译码表

ST0=0

微操作信号

W1

SBUS

1

LAR

1

SST0

1

SHORT

1

SELCTL

1

STOP

1

ST0=1

微操作信号

W1

MBUS

1

ARINC

1

SHORT

1

SELCTL

1

STOP

1

4.3.3写寄存器模式

运算器中有R0-R3四个寄存器,对寄存器进行连续的写入操作;一个节拍写一个寄存器,需要4个节拍。

因为一般一个指令周期由两个节拍构成,所以需要两个连续的指令周期;采用标志位ST0区分

第一个指令周期,ST0=0,写R0,R1;

节拍W1:

微操作信号:

SEL3,SEL2(即RD1RD0)=00,选择R0,

微操作信号:

SBUS有效=1,选通,

微操作信号:

SELECTL=1,控制台操作

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

当前位置:首页 > 表格模板 > 书信模板

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

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