简单实验计算机的设计.docx

上传人:b****6 文档编号:6165109 上传时间:2023-01-04 格式:DOCX 页数:26 大小:82.44KB
下载 相关 举报
简单实验计算机的设计.docx_第1页
第1页 / 共26页
简单实验计算机的设计.docx_第2页
第2页 / 共26页
简单实验计算机的设计.docx_第3页
第3页 / 共26页
简单实验计算机的设计.docx_第4页
第4页 / 共26页
简单实验计算机的设计.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

简单实验计算机的设计.docx

《简单实验计算机的设计.docx》由会员分享,可在线阅读,更多相关《简单实验计算机的设计.docx(26页珍藏版)》请在冰豆网上搜索。

简单实验计算机的设计.docx

简单实验计算机的设计

 

山东建筑大学计算机科学与技术学院

课程设计说明书

 

题目:

简单实验计算机的设计(七)

课程:

计算机系统综合设计

院(部):

计算机科学与技术学院

专业:

计算机科学与技术

班级:

学生姓名:

学号:

指导教师:

完成日期:

山东建筑大学计算机科学与技术学院

课程设计任务书

设计题目

简单实验计算机的设计(七)

指导教师

班级

已知技术参数和设计要求

1、使用FD-CES实验仪

2、主要模块:

运算器、寄存器、指令部件、内存、总线缓冲、微程序控制、启停和时序模块。

3、完成以下指令的设计:

MOVRi,#data

LDAaddr1

ADDA,Ri

STAaddr2

HALT

设计内容与步骤

1、运算器采用单累加器多通用寄存器结构,操作数寻址方式采用直接地址寻址,立即数寻址,累加器直接寻址。

2、程序、微程序的设计、调试。

3、实现能执行将寄存器(Ri)中的内容与内存某个单元addr1内容相加存入到另一个单元addr2中,并停机,然后从控制台读出addr2存放的计算结果。

4、课程设计说明书。

设计工作计划与进度安排

1、调试工具4学时

2、设计语言ABL-HDL6学时

3、FD-CES实验仪功能模块10学时

4、指令与微程序的设计10学时

5、课程设计说明书10学时

设计考核要求

1、考勤20%

2、课程设计说明书50%

3、成果演示30%

指导教师(签字):

教研室主任(签字):

1、课程设计题目

简单实验计算机的设计(七)。

2、课程设计目的

在学习了专业基础课《计算机组成原理》和《系统结构》课程的基础上,通过设计简单实验计算机的部分指令,加深对计算机硬件结构和系统软件的认识,初步掌握计算机指令的设计与使用方法。

3、课程设计方案

基于FD-CES实验箱的硬件模块平台,通过PC机和可编程逻辑(PLD)电路实验板,完成简单实验计算机的部分指令的控制信号线的连接、编码、微程序的设计,在FD-CES实验箱的控制台上运行用所设计的指令编写的程序,验证设计指令的正确性。

4、课程设计内容

4.1、设计要求

(1)运算器:

采用单累加器多寄存器结构(开关KA、KB、KC、KR分别置左、右、右、左)。

(2)指令系统:

小于等于8条指令,无外设。

(3)内存寻址方式:

直接地址寻址,立即数寻址,累加器直接寻址。

(4)微程序设计微操作信号发生器。

4.2、设计整机逻辑框图

4.3、设计指令系统

4、

(1)实验计算机的指令系统具体由以下5条指令组成

MOVRi,#data

LDAaddr1

ADDA,Ri

STAaddr2

HALT

(2)指令操作数寻址方式及其编码

MOVRi#data:

寻址方式:

立即数寻址功能:

data→Ri

编码:

指令编码:

000000Ri(R1),data

0

0

0

0

0

0

0

1

d7

d6

d5

d4

d3

d2

d1

d0

LDAaddr1:

寻址方式:

直接地址寻址功能:

(addr1)→A

编码:

指令编码:

000010a9,a8,a7~a0

0

0

0

0

1

0

0

0

a7

a6

a5

a4

a3

a2

a1

a0

ADDA,Ri:

寻址方式:

累加器直接寻址功能:

(A)+(Ri)→A

编码:

指令编码:

010100Ri(R1)

0

1

0

1

0

0

0

1

STAaddr2:

寻址方式:

直接地址寻址功能:

A→(addr2)

编码:

指令编码:

010110a9,a8,a7~a0

0

1

0

1

1

0

0

0

a7

a6

a5

a4

a3

a2

a1

a0

HALT:

功能:

停机

编码:

指令编码:

10100000

1

0

1

0

0

0

0

0

4.4设计指令执行流程

双字节指令MOVRi,#data

该指令功能为data→Ri,需执行如下微操作:

①(PC)IABOAB;程序计数器PC内容作访问内存地址

②(M)ODBIDBIRl;读出指令字节送指令寄存器IR1

③(PC)+1PC;PC加1,为取下条指令字节准备

④(PC)IABOAB;;根据PC访内存

⑤(M)ODBIDBRi;取出本指令第二字节(即data)送Ri

⑥(PC)+1PC;PC加1,为取下条指令字节准备

其中,①②必须同一拍;③可单独一拍也可与①②合一拍;④⑤也必须同一拍;⑥可

单独一拍也可与④⑤合一拍。

推荐采用如下方案:

T0(第一拍):

T1(第二拍):

 

双字节指令LDAaddr

该指令功能为(addr)→A,需执行如下微操作:

①(PC)IABOAB;程序计数器PC内容作访问内存地址

②(M)ODBIDBIRl;读出指令字节送指令寄存器IR1

③(PC)+1PC;PC加1,为取下条指令字节准备

④(PC)IABOAB;根据PC访问内存

⑤(M)ODBIDBIR2;取出本指令第二字节送IR2

⑥(PC)+1PC;PC加1,为取下条指令字节准备

⑦I2.I1.I0(IR2)IABOAB;由IRl低3位和IR2的8位形成11位操作数

地址

⑧(M)ODBIDBTMP;从内存读出操作数送TMP

⑨(TMP)A;TMP内容经ALU传送,存入A

其中,①②必须同一拍;④⑤也必须同一拍;⑦⑧也必须同一拍;⑨可以单独一拍也可与⑦⑧合一拍;③可单独一拍也可和①②合一拍;⑥可单独一拍也可和④⑤合一拍或者和⑦⑧合一拍(TMP设置为直通)。

推荐采用如下方案:

T0(第一拍):

T1(第二拍):

T2(第三拍):

单字节指令ADDA,Ri

该指令功能为(A)+(Ri)→A,需执行如下微操作:

①(PC)IABOAB;程序计数器PC内容作访问内存地址

②(M)ODBIDBIRl;内存该地址单元读出指令字节送指令寄存器IR1

③(PC)+1PC;PC加1,为取下条指令字节准备

④(A)ACT;累加器A内容送累加器暂存器ACT,为ALU准备好被加数

⑤(ACT)+(Ri)BUFIDBA;使暂存器TMP输出高阻,读Ri寄存器内容,使ALU执行加法,结果经BUF至DB最后送人累加器A

⑥Cn+4CY;据加法结果置进位标志CY

其中,①②必须在一拍(即取指令周期)内完成;⑤⑥也必须在同一拍内完成;而④不可

以和⑤⑥在同一拍,但可以和①②在同一拍;③可以和⑤⑥同拍也可以和①②同拍;也可把

③、④单独一拍,甚至③和④各一拍也可以。

推荐采用如下方案:

T0(第一拍):

T1(第二拍):

双字节指令STAaddr

该指令功能为A→(addr),需执行如下微操作:

①(PC)IABOAB;程序计数器PC内容作访问内存地址

②(M)ODBIDBIRl;读出指令字节送指令寄存器IR1

③(PC)+1PC;PC加1,为取下条指令字节准备

④(PC)IABOAB;根据PC访问内存

⑤(M)ODBIDBIR2;取出本指令第二字节送IR2

⑥(PC)+1PC;PC加1,为取下条指令字节准备

⑦I2.I1.I0(IR2)IABOAB;由IRl低3位和IR2的8位形成11位操作数

地址

RR,A,B,/Cn,M,S3,S2,S1,S0

OB

CL

⑧(ACT)BUFIDBODB;读A内容经ALU传送至IDB,存人ODB

⑨ODB(M);将ODB里的数写入到内存中。

其中,①②必须同一拍;④⑤也必须同一拍;⑦⑧也必须同一拍;⑨可以单独一拍也可与⑦⑧合一拍;③可单独一拍也可和①②合一拍;⑥可单独一拍也可和④⑤合一拍或者和⑦⑧合一拍(TMP设置为直通)。

推荐采用如下方案:

T0(第一拍):

T1(第二拍):

T2(第三拍):

 

4.5、确定微操作控制信号及其实现方法

4.5.1.设计微操作信号

(1)运算器模块(ALU)

ZC=

CP=

SA接X0接M17

SB接X1接M16

PO接CY

Pl接A0接SR

P2接A7接SL

CA接/φ

S3~S0接M23~M20

/Cn接M19

M接M11

CG接Ml8

CC接/φ

OB接M8

(2)寄存器堆模块(REG)

WR=

RR接M1

A接I0

B接I1

(3)指令部件模块(I_PC)

CL=

P+l接M7

GI接M6

CI接

CK接PO

CLR接+5V

0I接M15

LP、PC0如图2-15所示。

(4)内存模块(MEM)

RC=M2+

WC=M3+

(5)总线缓冲模块(BUS)

Bl、B3接RF

B2=RC+IAB2·IAB10

KA接IAB0

PA接IAB1

(6)启停和时序模块(R_P)

DR接M5

RCP接

(7)微程序控制模块(MPG)

MLD接M4

MP+1接+5V

MCLR接RO

MCLK接P0

MIG接地

MDl0~MD6接地

MD5接I7

MD4接I6

MD3接地

MD2接I3

MDl~MDO接VCC(+5V)

4.5.2.微操作信号的实施

用PLD实验板实施,先在PC机Synario环境下编辑微操作信号的硬件描述文件,然后编译成相应的熔丝图文件,最后通过PC机并行口下载电缆将熔丝图文件烧到PLD实验板上的ispLSI2096内,即完成了微操作信号的实施。

 

4.5.3设计微指令的格式

 

指令助记符

23222120

19181716

15141312

111098

7654

3210

信号

S3S2

S1S0

CnM

X1X0

OICL

‘CP’/

CGOT

LP’OB

GIP+1

DRMLD

WC’RC’

RRWR’

微指令码

(十六进制)

有效电平

011*

****

****

0000

0100

0001

微地址

取指微指令

000H

0000

0000

1000

0111

0110

1010

00876A

001

002

MOVRi,#data

003

0000

0000

1000

1111

1111

1011

008FFB

004

0000

0000

1000

0111

0110

1010

00876A

005

LDAaddr

007

0000

0000

1100

1111

1111

1010

00CFFA

008

0000

0011

0000

1111

1011

1010

030FBA

009

0000

0000

1000

0111

0110

1010

00876A

00A

ADDA,Ri

013

1001

1011

1010

1110

1011

1100

9BAEBC

014

0000

0000

1000

0111

0110

1010

00876A

015

STAaddr

017

0000

0000

1100

1111

1111

1010

00CFFA

018

0000

1000

0000

1110

1011

0110

080EB6

019

0000

0000

1000

0111

0110

1010

00876A

01A

HALT

023

0000

0000

1000

1111

1001

1110

008F9E

024

0000

0000

1000

0111

0110

1010

00876A

4.5.4确定微程序控制方式

一、确定微程序入口地址形成方法

采用“按操作码散转”的方法确定微程序入口地址的形成。

该方法以指令操作码((8位)为核心,扩展成11位的微程序地址即MD1O~MDO。

IRl的I7.I6.I2为指令操作码,每条指令执行不超过4拍,即微程序可由多至4条微指令组成,那么可按下图形成各微程序首地址

MD10~MD6MD5MD4MD3MD2MD1MD0

└──┘││││└───┘

││││││

“0”I7I6“0”I3“1”

按指令操作码散转

指令操作码

I7I6I3

微程序首址

MD10~MD0

000

001

010

011

100

003H

007H

013H

017H

023H

二、确定控存的顺序控制方法

控存的顺序控制方法采用计数增量方法。

即每段微程序执行过程中MPC加1计数,指向下一条微指令地址。

4.5.5编写各指令的微程序

指令助记符

节拍

微指令码

MOVRi,#data

T0

008FFB

T1

00876A

LDAaddr1

T0

00CFFA

T1

030FBA

T2

00876A

ADDA,Ri

T0

9BAEBC

T1

00876A

STAaddr2

T0

00CFFA

T1

080EB6

T2

00876A

HALT

T0

008F9E

T1

00876A

4.6、编写调试程序

4.6.1汇编程序:

MOVR1#20H

LDA55H

ADDA,R1

STA56H

HALT

4.6.2、编写ABEL程序,并烧到PLD实验板

MODULECESB

title'ThisisanexampleforhowtousePLDBoard'

"DefineComputerInput/OutputPins:

"BLOCK1

IAB10PIN45;

IAB9PIN44;

IAB8PIN43;

IAB7PIN42;

IAB6PIN41;

IAB5PIN40;

IAB4PIN39;

IAB3PIN38;

IAB2PIN37;

IAB1PIN36;

IAB0PIN35;

RCPIN34;

WCPIN32;

B2PIN31;

IDB0PIN30;

IDB1PIN29;

IDB2PIN28;

IDB3PIN27;

IDB4PIN26;

IDB5PIN25;

IDB6PIN24;

IDB7PIN23;

I0PIN22;

I1PIN21;

I2PIN13;

I3PIN12;

I4PIN11;

I5PIN10;

I6PIN9;

I7PIN8;

PCOPIN7;

PINCPIN6;

LPPIN5;

GIPIN4;

OIPIN3;

"BLOCK2

CLPIN2;

RRPIN128;

WRPIN127;

SBPIN126;

SAPIN125;

APIN99;

BPIN100;

P1PIN123;

P2PIN56;

CGPIN124;

CYPIN110;

CTPIN122;

OTPIN121;

ZDPIN20;

CPPIN120;

S3PIN119;

S2PIN118;

S1PIN117;

S0PIN109;

MPIN108;

CNPIN107;

SRPIN106;

SLPIN105;

X0PIN104;

X1PIN103;

A7PIN84;

A0PIN51;

OBPIN102;

ROPIN78;

DRPIN101;

CLKPIN46;

"BLOCK3

M23PIN98;

M22PIN96;

M21PIN95;

M20PIN94;

M19PIN93;

M18PIN92;

M17PIN91;

M16PIN90;

M15PIN89;

M14PIN88;

M13PIN87;

M12PIN86;

M11PIN85;

M10PIN77;

M9PIN76;

M8PIN75;

MD8PIN66;

MD7PIN63;

MD6PIN62;

MD5PIN61;

MD4PIN60;

MD3PIN59;

M7PIN74;

M6PIN73;

M5PIN72;

M4PIN71;

M3PIN70;

M2PIN69;

M1PIN68;

M0PIN67;

MD2PIN58;

MLDPIN57;

"BLOCK4

"MIG==0

PAPIN55;

KAPIN53;

PBPIN54;

KBPIN52;

READNODE;

EQUATIONS

"DefineConnectionsandLogic:

"**********ALU**********

CP=!

(M13&CLK);

SA=M16;

X0=M16;

SB=M17;

X1=M17;

P1=A0;

SR=A0;

S3=M23;

S2=M22;

S1=M21;

S0=M20;

CN=M19;

M=M18;

CG=M11;

OB=M8;

OT=M10;

CT=1;

"************REG************

WR=!

(M0&CLK);

RR=M1;

A=I0;

B=I1;

"*************I-PC***********

CL=!

(M14&CLK);

PINC=M6;

GI=M7;

OI=M15;

PCO=!

M6;

LP=(!

M9)&(!

I4&!

I3&ZD

#!

I4&I3&CY

#I4&!

I3&A0

#I4&I3);

"**************MEM*********

RC=M2#!

CLK;

WC=M3#!

CLK;

"**************BUS**********

B2=M2#IAB2&IAB10;

KA=IAB0;

PA=IAB1;

IDB0=KB;

IDB7=KA;

IDB0.OE=READ;

IDB7.OE=READ;

READ=!

(M2#!

(IAB10&IAB2));

"**************R-P************

DR=M5;

"***************MPG***********

MLD=M4;

MD8=0;

MD7=0;

MD6=0;

MD5=I7;

MD4=I6;

MD3=0;

MD2=I3;

ENDCESB

4.6.3、利用FD-CES控制台将汇编程序输入内存

1、输入内存

如要将程序和数据分别写入内存的相应单元中,相应的操作和显示如下表

操作

显示

M/CM置左

RET(或STOP)

CPUREADY(或小数点消失)

000LOAD

000xxxxx

01W+1

001xx01

20W+1

002xx20

08W+1

003xx08

55W+1

004xx55

51W+1

005xx51

58W+1

006xx58

56W+1

007xx56

A0W+1

008xxA0

2、读内存

将内存中的相应单元的数据读出,检查上一步键入是否正确,相应的操作和显示如下表

操作

显示

M/CM置左

RET(或STOP)

CPUREADY(或小数点消失)

000LOAD

00001xxx

R+1

00120xxx

R+1

00208xxx

R+1

00355xxx

R+1

00451xxx

R+1

00558xxx

R+1

00656xxx

R+1

007A0xxx

4.6.4.利用FD-CES控制台将指令的微程序输入控存

一、写控存(键人微程序)

把微程序分别写入控存的相应单元中,相应的操作和显示如下表。

操作

显示

M/CM置右

RET(或STOP)

CPUREADY(或小数点消失)

000LOAD

000xxxxxx

00876AW+1

001xxxxxx

RET

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

当前位置:首页 > 高中教育 > 数学

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

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