《计算机组成原理》课程设计.docx

上传人:b****6 文档编号:5245078 上传时间:2022-12-14 格式:DOCX 页数:18 大小:459.68KB
下载 相关 举报
《计算机组成原理》课程设计.docx_第1页
第1页 / 共18页
《计算机组成原理》课程设计.docx_第2页
第2页 / 共18页
《计算机组成原理》课程设计.docx_第3页
第3页 / 共18页
《计算机组成原理》课程设计.docx_第4页
第4页 / 共18页
《计算机组成原理》课程设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

《计算机组成原理》课程设计.docx

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

《计算机组成原理》课程设计.docx

《计算机组成原理》课程设计

华北科技学院

 

课程设计说明书

 

设计名称:

__计算机组成原理课程设计___

班级:

计科B12-1第__7_组

小组成员:

____、_____、___

设计内容:

_扩展4条指令MBMC、NOTD、SHTD、SUBN

设计时间:

__2015-1-12__至__2015-1-23_

指导教师:

_席振元、梁生科、顾涛、邵铁君、于咏霞

小组总体情况:

1、工作量:

大(),较大(),一般(),较小()

2、难易度:

难(),较难(),一般(),简单()

3、报告规范度:

规范(),较规范(),一般(),不规范()

评阅教师:

_____

 

课题组成员及分工

姓名

完成的主要内容

写实验报告,指令验证,ABEL程序编辑

指令扩展,ABEL语言源程序的编辑与修改

指令扩展,监控程序的编辑,烧入芯片

签字

成绩评定

小组成员   :

1、工作量:

大(),较大(),一般(),较小()

2、难易度:

难(),较难(),一般(),简单()

3、答辩情况:

基本操作:

熟练(),较熟练(),一般(),不熟练()

基本原理:

清楚(),较清楚(),基本清楚(),不清楚()

4、学习态度:

优秀(),良好(),中等(),一般()

总评成绩:

_________

小组成员  :

1、工作量:

大(),较大(),一般(),较小()

2、难易度:

难(),较难(),一般(),简单()

3、答辩情况:

基本操作:

熟练(),较熟练(),一般(),不熟练()

基本原理:

清楚(),较清楚(),基本清楚(),不清楚()

4、学习态度:

优秀(),良好(),中等(),一般()

总评成绩:

_________

小组成员  :

1、工作量:

大(),较大(),一般(),较小()

2、难易度:

难(),较难(),一般(),简单()

3、答辩情况:

基本操作:

熟练(),较熟练(),一般(),不熟练()

基本原理:

清楚(),较清楚(),基本清楚(),不清楚()

4、学习态度:

优秀(),良好(),中等(),一般()

总评成绩:

_________

1.课程设计目的

通过计算机组成原理课程设计,进一步熟练掌握计算机各功能部件的内部构造和相互之间的联系(部件配置、相互连接和作用)、各功能部件的性能参数的相互匹配、机器指令级的各种功能和特性。

进一步将所学知识融会贯通、达到知识的系统化,进一步提高硬件系统设计的能力,为以后的更高一级的硬件设计打下坚实基础。

2.课程设计任务

在现有的TEC-XP+教学机指令系统上扩展4条指令。

要求:

(1)4条指令至少要用到4种寻址方式;

(2)4条指令分别由1步、2步、3步、4步完成;

(3)监控命令A、U必须能够支持这4条指令。

3.系统组成原理及实现

对用到的原理进行简要说明。

(1)运算器

TEC-XP系统机上的运算器,选8或16位字长,分别由2或4片4位的位片结构的器件组成,作为讲解运算器的实例和教学实验的对象,有很强的典型性。

运算器部件主要包括两组独立的8位字长的运算器,各自由2片位片结构的运算器AM2901组成;还有状态标志(CZVS)寄存器和教学实验所需的相关逻辑部件。

AM2901的结构如下图所示:

I3

I4

I5I6

I7

I0I8

I1

I2

4位运算器芯片Am2901内部结构框图

第一个组成部分是算逻运算部件ALU,完成3种算术运算和5种逻辑运算,共计8种功能。

其输出为F,两路输入为S、R,最低位进位Cn,四个状态输出信号如图所示。

第二个组成部分是通用寄存器组,由16个寄存器构成,并通过B口与A口地址选择被读的寄存器,B口地址还用于指定写入寄存器。

通过B口地址、A口地址读出的数据将送到B、A锁存器,要写入寄存器的数据由一个多路选择器送来。

第三个组成部分是乘商寄存器Q,它能对自己的内容完成左右移位功能,其输出可以送往ALU,并可接收ALU的输出结果。

一组三选一门和另一组二选一门用来选择送向ALU的R、S输入端的数据来源,包括Q寄存器、A口、B口、外部输入D数据的8种不同组合。

第四个组成部分是5组多路选通门,包括一组三选一门完成把ALU的输出、或左移一位、或右移一位的值送往通用寄存器组,最高、最低位移位信号有双向入/出问题。

一组三选一门完成Q寄存器的左移一位、或右移一位、或接收ALU输出值的功能,最高、最低位移位信号有双向入/出问题。

一组二选一门,选择把A口数据或ALU结果送出芯片,以给出输出Y的数据,Y输出的有无还受输出使能/OE信号的控制,仅当/OE为低时才有Y输出,/OE为高,Y输出为高阻态。

TEC-XP计原l6系统的运算器部件主体部分由4片长度为4位的位片结构运算器芯片Am2901组成。

4片Am2901之间的连接如图所示。

4片Am2901连接图

16位运算器结构框图

(2)微程序控制器

微程序控制器的组成与实现,以及微指令格式及各字段意义。

入口地址:

指令的微程序入口地址;

下址:

微程序执行完后下一条微程序的地址;00表示需要进行地址转移逻辑,30表示微程序结束。

CI3-0:

判别测试字段,其主要编码及功能如表1。

SCC3-0:

地址转移逻辑字符,仅当CI3-0为0011时有效。

其主要编码及功能如表2。

MRW:

控制对内存和I/O接口的读写,其主要功能如下:

000,写内存;001读内存;010写串口;011读串口;1XX无内存和串口的读写操作。

I2-0:

控制数据来源,其编码及功能见表3。

I8-6:

控制对运算结果的处理,其编码及功能见表3。

I5-3:

运算功能的选择,其编码及功能见表3。

表3Am2901的9位控制码编码及功能

SST:

对CZVS的控制。

SSHSCI:

设置进位输入。

B口:

1000表示IR的DR字段,0000表示不用B口。

A口:

1000表示IR的SR字段,0000表示不用A口。

(3)内部总线和特定寄存器的控制

DC2:

专用寄存器接收控制,其主要编码及功能见表4-1。

DC1:

送内部总线的数据,其主要编码及功能见表4-2。

表4-1

专用寄存器接受控制

表4-2

内部总线数据来源选择控制

DC2编码

译码操作

操作说明

DC2编码

译码操作

操作说明

000

NC

不操作

000

/SWTOIB

送开关内容到内部总线

001

/GIR

指令寄存器接受

001

/RTOIB

送ALU输出到内部总线

010

/

16位机不用

010

/ETOIB

送IR地位字节内容到内部总线

011

/GAR

地址寄存器接受

011

/FTOIB

送程序状态字到内部总线

100

/INTR

恢复原中断优先级

100

/

16位机不用

101

/INTN

接受新中断优先级

101

/

16位机不用

110

/E1

用于开中断指令

110

/INTV

送中断向量到内部总线

111

/D1

用于关中断指令

111

NC

不操作

4.扩展4条指令

(1)4条指令的格式及功能

4条扩展指令的格式、功能、寻址方式、操作码编码、微程序步数、微程序入口地址如下表。

指令格式

功能

寻址方式

编码

操作步数

入口

MBMCDR,SR

SR的值取非和DR的值相与

SR,DR均为直接寻址

22H

一步

80H

NOTDDR,SR

SR的值和SR的值相与,取反

SR,DR均为直接寻址

A1H

两步

81H

SHTDDR

DR值乘以二再加二

DR直接寻址

E3H

三步

83H

SUBNDR,[SR]

求DR,[SR]的差,再取反

DR直接寻址

SR间接寻址

E9H

四步

90H

(2)指令所对应的微程序

每条机器指令对应的微程序、每条微指令的功能及各字段值的意义如下表:

序号

指令

入口地址

下址

CI3-0

SCC3-0

MVR

I2-0

I8-6

I5-3

B口

A口

SST

SSHSCI

DC2

DC1

1

MBMCDR,SR

80

30

30

4,1

3,5

8,8

1,0

0,0

2

NOTDDR,SR

81

00

E0

4,1

3,4

8,8

1,0

0,0

30

30

4,3

3,7

8,0

1,0

0,0

3

SHTDDR

83

00

E0

4,3

7,0

8,0

6,4

0,0

00

E0

4,3

3,0

8,0

1,1

0,0

30

30

4,3

3,0

8,0

1,1

0,0

4

SUBNDR,[SR]

90

00

E0

4,4

1,0

0,8

0,0

3,0

00

E0

4,3

0,0

8,0

0,0

0,0

00

E0

1,6

3,1

8,0

0,1

0,0

30

30

4,3

3,7

8,0

1,0

0,0

(3)ABEL语言源程序编辑以及JED文件生成

MBMC=(IR==[0,0,1,0,0,0,1,0]);

NOTD=(IR==[1,0,1,0,0,0,0,1]);

SHTD=(IR==[1,1,1,0,0,0,1,1]);

SUBN=(IR==[1,1,1,0,1,0,0,1]);

MA80=(Y==[1,0,0,0,0,0,0,0]);

MA81=(Y==[1,0,0,0,0,0,0,1]);

MA82=(Y==[1,0,0,0,0,0,1,0]);

MA83=(Y==[1,0,0,0,0,0,1,1]);

MA84=(Y==[1,0,0,0,0,1,0,0]);

MA85=(Y==[1,0,0,0,0,1,0,1]);

MA90=(Y==[1,0,0,1,0,0,0,0]);

MA91=(Y==[1,0,0,1,0,0,0,1]);

MA92=(Y==[1,0,0,1,0,0,1,0]);

MA93=(Y==[1,0,0,1,0,0,1,1]);

//入口地址:

D0=!

C_M&(!

_MAP&(NOTD#SHTD#SUB#OR#CMP#MVRR#DEC#SHR#JR#PSHF#PUSH#POP#POPF#STRR#LDRR#LDPC#MVRD#CALA#RET#IRET#DI#ASR#RCR#STC#LDRA#LDRX#STRA#STRX#SBB#JRS#JRNS)#NXTADDR0&!

_PL)&!

Bit8;

D1=!

C_M&(!

_MAP&(SHTD#AND#OR#TEST#MVRR#SHL#SHR#IN_#OUT#POP#POPF#LDRR#LDPC#JMPA#CALA#RET#IRET#NOT#ASR#CLC#STC#JMPR#LDRA#STRA)#NXTADDR1&!

_PL)&!

Bit8;

D2=!

C_M&(!

_MAP&(ADD#SUB#AND#OR#INC#DEC#SHL#SHR#PSHF#PUSH#POP#POPF#MVRD#JMPA#CALA#IRET#RCL#RCR#CLC#STC#LDRX#STRA#CALR)#NXTADDR2&!

_PL)&!

Bit8

D3=!

C_M&(!

_MAP&(XOR_#CMP#TEST#MVRR#INC#DEC#SHR#SHL#STRR#LDRR#LDPC#MVRD#JMPA#CALA#EI#DI#JMPR#JRS#JRNS#LDRA#LDRX#STRA)#NXTADDR3&!

_PL)&!

Bit8;D4=!

C_M&(!

_MAP&(SUBN#JRC#JRNC#JRZ#JRNZ#JR#IN_#OUT#PSHF#PUSH#POP#POPF#STRR#LDRR#LDPC#MVRD#JMPA#CALA#EI#DI#ADC#SBB#NOT#ASR#RCL#RCR#CLC#STC#JMPR#LDRA#LDRX#STRA)#NXTADDR4&!

_PL)&!

Bit8;

D5=!

C_M&(!

_MAP&(RET#IRET#JRS#JRNS#CALR#STRX)#NXTADDR5&!

_PL)&!

Bit8;

D6=!

C_M&(!

_MAP&(EI#DI#IRET#ADC#SBB#NOT#ASR#RCL#RCR#CLC#STC#JMPR#JRS#JRNS#LDRA#LDRX#STRA#STRX#CALR)#NXTADDR6&!

_PL)&!

Bit8;

D7=!

C_M&(!

_MAP&(MBMC#NOTD#SHTD#SUBN)#NXTADDR7&!

_PL)&!

Bit8;

//下址:

NXTADDR7:

=0;

NXTADDR6:

=0;

NXTADDR5:

=!

C_M&(MA80#MA82#MA85#MA93#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E#MA0F#MA10#MA11#MA13#MA14#MA16#MA18#MA1A#MA1C#MA1E#MA22#MA24#MA30#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA63#MA66#MA68#MA69#MA6A)&!

Bit8;

NXTADDR4:

=!

C_M&(MA80#MA82#MA85#MA93#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E#MA0F#MA10#MA11#MA12#MA13#MA14#MA15#MA16#MA17#MA18#MA1A#MA1C#MA1D#MA22#MA24#MA30#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA5C#MA5E#MA60#MA63#MA66#MA69#MA6A)&!

Bit8;

NXTADDR3:

=!

C_M&(MA15#MA17#MA1D#MA30#MA5C#MA5E#MA60)&!

Bit8;

NXTADDR2:

=!

C_M&(MA12#MA17#MA1D#MA1E#MA5C#MA5E)&!

Bit8;

NXTADDR1:

=!

C_M&(MA15#MA30#MA31#MA60#MA68)&!

Bit8;

NXTADDR0:

=!

C_M&(MA3F#MA68)&!

Bit8;

//CI3-0,SCC3-0定义:

CI3:

=!

C_M&(MA81#MA83#MA84#MA90#MA91#MA92#MA00#MA01#MA02#MA19#MA1B#MA89#MA1F#MA20#MA21#MA23#MA3A#MA3B#MA3C#MA3D#MA3E#MA5B#MA5D#MA5F#MA61#MA62#MA64#MA65#MA67#MA89)&NRST&!

Bit8;

CI2:

=!

C_M&(MA81#MA83#MA84#MA90#MA91#MA92#MA00#MA01#MA02#MA19#MA1B#MA89#MA1F#MA20#MA21#MA23#MA3A#MA3B#MA3C#MA3D#MA3E#MA5B#MA5D#MA5F#MA61#MA62#MA64#MA65#MA67)&NRST&!

Bit8;

CI1:

=!

C_M&1&NRST&!

Bit8;

CI0:

=!

C_M&(MA80#MA82#MA85#MA93#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E#MA0F#MA10#MA11#MA12#MA13#MA14#MA15#MA16#MA17#MA18#MA1A#MA1C#MA1D#MA1E#MA22#MA24#MA30#MA31#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA5C#MA5E#MA60#MA63#MA66#MA68#MA69#MA6A)&NRST&!

Bit8;

SCC3:

=!

C_M&0&NRST&!

Bit8;

SCC2:

=!

C_M&(MA10#MA12#MA15#MA17#MA69)&NRST&!

Bit8;

SCC1:

=!

C_M&(MA12#MA15#MA17#MA30)&NRST&!

Bit8;

SCC0:

=!

C_M&(MA15#MA17#MA69)&NRST&!

Bit8;

//MVR,I2-I0定义:

!

_MIO00:

=!

(MA80#MA81#MA82#MA83#MA84#MA85#MA90#MA91#MA93#MA00#MA01#MA03#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E#MA0F#MA10#MA11#MA12#MA15#MA17#MA19#MA1B#MA89#MA1D#MA1E#MA1F#MA21#MA23#MA30#MA31#MA3A#MA3B#MA3D#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA5B#MA5D#MA5F#MA61#MA64#MA66#MA67#MA69#MA6A);

REQ00:

=(MA13#MA14);

_WE00:

=(MA92#MA02#MA14#MA18#MA1C#MA20#MA24#MA5C#MA5E#MA60#MA62#MA68);

I200:

=(MA90#MA92#MA0B#MA11#MA12#MA14#MA1A#MA1B#MA89#MA1C#MA20#MA24#MA30#MA3C#MA3F#MA5A#MA5C#MA5E#MA60#MA62#MA65#MA66#MA6A);

I100:

=(MA82#MA83#MA84#MA85#MA91#MA92#MA93#MA01#MA0C#MA0D#MA0E#MA0F#MA12#MA13#MA14#MA15#MA17#MA19#MA1C#MA1D#MA1E#MA1F#MA20#MA21#MA22#MA23#MA24#MA30#MA31#MA3B#MA3D#MA3E#MA3F#MA52#MA53#MA54#MA55#MA5B#MA5C#MA5D#MA5F#MA60#MA61#MA63#MA64#MA67);

!

I000:

=!

(MA80#MA81#MA82#MA83#MA84#MA85#MA91#MA93#MA00#MA01#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0C#MA0D#MA0E#MA0F#MA11#MA12#MA13#MA14#MA15#MA17#MA19#MA1C#MA1D#MA1E#MA1F#MA20#MA21#MA23#MA24#MA30#MA31#MA3B#MA3D#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA5B#MA5C#MA5D#MA5E#MA5F#MA60#MA61#MA62#MA63#MA64#MA67#MA6A)

//I8-I6,I5-3定义:

I800:

=(MA83#MA0E#MA0F#MA53#MA54#MA55);

I700:

=(MA80#MA81#MA82#MA83#MA84#MA85#MA92#MA93#MA00#MA01#MA04#MA05#MA06#MA07#MA08#MA0B#MA0C#MA0D#MA0E#MA11#MA14#MA15#MA17#MA1C#MA1D#MA1E#MA1F#MA21#MA22#MA23#MA24#MA31#MA3B#MA3D#MA3F#MA50#MA51#MA52#MA54#MA5A#MA5B#MA5D#MA5F#MA61#MA64#MA66#MA67#MA6A);

!

I600:

=!

(MA80#MA81#MA82#MA83#MA84#MA85#MA90#MA92#MA93#MA00#MA02#MA03#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E#MA0F#MA10#MA11#MA12#MA13#MA14#MA15#MA16#MA18#MA19#MA1A#MA1B#MA89#MA1C#MA21#MA24#MA3A#MA3B#MA3C#MA3D#MA3E#MA3F#MA50#MA51#MA52#MA53#MA54#MA55#MA56#MA57#MA58#MA59#MA5A#MA5C#MA5E#MA60#MA62#MA63#MA64#MA65#MA66#MA68#MA69#MA6A)

I500:

=(MA80#MA81#MA82#MA93#MA06#MA08#MA0A#MA52);

I400:

=(MA82#MA93#MA07#MA08#MA52);

I300:

=(MA80#MA82#MA92#MA93#MA00#MA05#MA07#MA09#MA0D#MA15#MA21#MA3B#MA3D#MA51#MA52#MA64);

//B口,A口定义:

B30=(MA80#MA81#MA82#MA83#MA84#MA85#MA91#MA92#MA93#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA0C#MA0D#MA0E#MA0F#MA19#MA1C#MA50#MA51#MA52#MA53#MA54#MA55#MA63);

B300:

=B30&IR7;

B20=(MA00#MA01#MA11#MA15#MA17#MA1D#MA1E#MA1F#MA21#MA22#MA23#MA24#MA31#MA3B#MA3D#MA3F#MA5A#MA5B#MA5D#MA5F#MA61#MA64#MA66#MA67#MA6A);

B200:

=(!

B30&B20#B30&IR6);

B10=0;

B100:

=(!

B30&B10#B30&IR5);

B00=(MA00#MA01#MA11#MA1D#MA1E#MA1F#MA22#MA24#MA31#MA3F#MA5A#MA5B#MA5D#MA5F#MA61#MA66#MA6A);

B000:

=(!

B30&B00#B30&IR4);

A30=(MA80#MA81#MA90#MA04#MA05#MA06#MA07#MA08#MA09#MA0A#MA0B#MA1A#MA1B#MA89#MA50#MA51#MA5A#MA5E#MA62#MA66);

A300:

=(A30&IR3);

A20=(MA00#MA01#MA11#MA17#MA1D#MA1E#MA1F#MA22#MA23#MA31#MA3C#MA5B#MA5D#MA5F#MA61#MA65#MA67#MA6A);

A200:

=(!

A30&A20#A30&IR2);

A10=0;

A100:

=(!

A30&A10#A30&IR1);

A00=(MA00#MA01#MA11#M

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

当前位置:首页 > 高等教育 > 艺术

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

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