计算机组成原理课程
#实验
#
目 录
一 课程设计目的 ............................................................. 2
二 课程设计题目 ....................................................... 2
1、设计一个具有带进位加法和立即数寻址方式的模型机 ....................... 2
2、利用CPLD设计一个并行加法器 ............................................................... 2
三 实验设备仪器 ............... 3
四 设计一个带有循环左移功能的模型机 ................ 3
1、问题描述 ...................................................................................................... 3
2、设计目标 ...................................................................................................... 3
3、指令格式 ...................................................................................................... 3
4、准备知识...........................................................................................................3
5、设计微指令……………………………………………………………………6
6、建立联机操作文件……………………………………………………………9
7、连接实验线路 ............................................................................................ 10
8、运行与调试 ................................................................................................ 10 五 利用CPLD设计一个并行加法器 11
1、设计目标 .................................................................................................... 11
2、设计内容 .................................................................................................... 11
3、设计要求 .................................................................................................... 11
4、实验原理 .................................................................................................... 12
5、实验步骤 .................................................................................................... 12
7、运行调试 .................................................................................................... 12 六 总结 14
七 参考文献 15
1
“计算机组成原理”课程设计
一 课程设计目的
通过对一个简单计算机的设计,对计算机的基本组成,部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,在此基础上完成一台基本计算机的组成设计,从而加深对理论课程的理解,锻炼自己的独立思考和动手能力。
二 课程设计题目
1、设计一个具有带进位加法和立即数寻址方式的模型机
(1)设计内容
设计一台具有输入、输出、带进位加法、储存和跳转功能的模型计算机,并写出工作程序和测试数据验证所设计的指令系统。
(2)设计要求
所设计模型计算机的指令系统共包含五条机器指令:IN(输入)、ADC(带进位加法)、OUT(输出)、STA(存数)、JMP(无条件转移),加法指令的寻址方式为立即数寻址。其中IN指令为单字长(8位),其余为双字长指令。使用R0寄存器作为工作寄存器。 2、利用CPLD设计一个并行加法器
(1)设计内容
使用大规模可编程逻辑器件CPLD设计实现一个4为并行进位加法器,并验证设计的正确性。
(2)设计要求
采用ispDesignEXPERT软件来对可编程逻辑器件ispLSI1032进行编程设计,要求用原理图输入方式来进行设计输入,并对所设计的加法器进行功能和时序仿真,最后在西安唐都科教仪器公司的TDCM+计算机组成原理实验台上验证所设计器件的逻辑功能。
2
提示:
在实验台上进行逻辑功能验证时,可以借助使用INPUTDEVICE单元输入加数和被加数,进位输入可由SWITCHUNIT单元的一个开关来给出,可用总线单元的发光二极管来显示运算结果。
三 实验设备仪器
硬件环境为PC-386以上微机,西安唐都科教仪器公司的TDN-CM+计算机组成原理实验台。软件环境采用WINDOWS操作系统,西安唐都科教仪器公司的TDN-CM+计算机组成原理实验软件,ispDesignEXPERT实验软件。
四 设计一个带有循环左移功能的模型机
1、问题描述
本题目设计的是一台具有输入、输出、带进位加法、储存和跳转功能的模型计算机,并写出工作程序和测试数据验证所设计的指令系统。
2、设计目标
在设计完本程序后,所设计模型机能够完成从一个外设输入一个数到指定的寄存器中,另外输入立即数并将其存入另一个、寄存器中,两数进行进位相加并将结果保存到第一个寄存器,输出结果,并显示。另外,实现无条件跳转至开始。
3、指令格式
助记符号 机器指令码 功 能
IN 0000 0000 Input -> R0
ADC Imm 1110 0000 XXXX XXXX R0+Imm+CY -> R0
STA addr 0010 0000 XXXX XXXX R0 -> [addr]
OUT addr 0011 0000 XXXX XXXX [addr] -> LED
JMP addr 0100 0000 XXXX XXXX [addr] -> PC
4、准备知识
(1) 微指令格式
3
微指令字长共24位,其控制位顺序如下表所示:
A字段 B字段 C字段
15 14 13 选择 12 11 10 选择 9 8 7 选择
0 0 0 0 0 0 0 0 0
0 0 1 LDRi 0 0 1 RS-B 0 0 1 P(1)
0 1 0 LDDR1 0 1 0 RD-B 0 1 0 P(2)
0 1 1 LDDR2 0 1 1 RI-B 0 1 1 P(3)
1 0 0 LDIR 1 0 0 299-B 1 0 0 P(4)
1 0 1 LOAD 1 0 1 ALU-B 1 0 1 AR
1 1 0 LDAR 1 1 0 PC-B 1 1 0 LDPC
表中uA0,uA5为6位的下一条微指令的地址,A、B、C为3个译码字段,分别由三个控制位译码出多位。C字段中的P(1),P(4)是四个测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,其原理如图2所示。图中I7,I2为指令寄存器的7,2位输出,SE5,SE1为微控器单元微地址锁存器的强制端输出。AR为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS-B、R0-B、RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令进行三个工作寄存器R0、R1及R2的选通译码,其原理图如图3所示,图中I0,I3为指令积存器的第0,3位,LDRi为打入工作寄存器信号的译码器使能控制位。
(2)指令译码电路 (3)寄存器译码电路
4
寄存器译码
微程序控制电路
5、设计微指令
(1)画出微程序流程图
5
00
01
PC->AR
PC+1
02
RAM->BUS
BUS->IR
10
P(1)
ADCSTAOUTJMP
10111213
PC->ARPC->ARPC->ARPC->ARSW->R0PC+1PC+1PC+1PC+1
03061601
RAM->BUSRAM->BUSRAM->BUSRAM->BUS
BUS->DR2BUS->ARBUS->ARBUS->PC
040717
R0->BUSRAM->BUSR0->DR1BUS->RAMBUS->DR1
0525
01(DR1)+(DR2)DR1->LED+cy->R0
0101
(2)设计微指令
微地址 S3 S2 S1 S0 M CN WE A9 A8 A B C UA5….UA0 00 0 0 0 0 0 0 0 1 1 000 000 000 000001 01 0 0 0 0 0 0 0 1 1 110 110 110 000010 02 0 0 0 0 0 0 0 0 1 100 000 001 001000 03 0 0 0 0 0 0 0 0 1 011 000 000 000100
6
04 0 0 0 0 0 0 0 1 1 010 001 000 000101 05 1 0 0 1 0 1 0 1 1 001 101 101 000001 06 0 0 0 0 0 0 0 0 1 110 000 000 000111 07 0 0 0 0 0 0 1 0 1 000 001 000 000001 08 0 0 0 0 0 0 0 0 0 001 000 000 000001 0E 0 0 0 0 0 0 0 1 1 110 110 110 000011 0A 0 0 0 0 0 0 0 1 1 110 110 110 000110 0B 0 0 0 0 0 0 0 1 1 110 110 110 011000 0C 0 0 0 0 0 0 0 1 1 110 110 110 001101 0D 0 0 0 0 0 0 0 0 1 101 000 110 000001 18 0 0 0 0 0 0 0 0 1 110 000 000 001111 0F 0 0 0 0 0 0 0 0 1 010 000 000 010101 15 0 0 0 0 0 1 1 1 0 000 101 000 000001
(3) 微程序代码
根据以上编写的微程序,以及微指令代码化的
得到的微程序代码为: $M00018001
$M0101ED82
$M0200C048
$M0300B004
$M0401A205
$M05959B41
$M0600E007
$M07028201
$M08001001
$M0E01ED83
$M0A01ED86
$M0B01ED98
$M0C01ED8D
$M0D00D181
$M1800E00F
$M0F00A015
$M15070A01
7
(4)工作程序的设计
将题目设计的模型机的指令用汇编语言描述其具体结构为:
地 址 内 容 助记符 说明 0000 0000 0000 0000 IN Input -> R0 0000 0001 1110 0000
ADC Imm R0+Imm+cy ->R0 0000 0010 0000 1010
0000 0011 0010 0000
STA [0BH] R0 -> [0BH] 0000 0100 0000 1011
0000 0101 0011 0000
OUT [0BH] [0BH] -> LED 0000 0110 0000 1011
0000 0111 0100 0000
JMP Addr -> PC 0000 1000 0000 0001
工作程序代码为:
$P0000
$P01E0
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P0801
(5)指令实现信号
助记符 信号
IN PC->AR,PC+1 LDPC,PC-B,LDAR
RAM->BUS,BUS->IR W/R,CE,LDIR
INPUT->BUS SW-B,LDRi
8
ADC PC->AR,PC+1 LDPC,PC-B,LDAR
RAM->BUS,BUS->DR2 W/R,CE,LDDR2
R0->DR1 LDRi.LDDR1
(DR1)+(DR2)+cy->R0 S3-S0,M,Cn,ALU-B STA PC->AR,PC+1 LDPC,PC-B,LDAR
RAM->BUS,BUS->AR W/R,CE,LDAR
R0->BUS,BUS->RAM LDRi,W/R,CE OUT PC->AR,PC+1 LDPC,PC-B,LDAR
RAM->BUS,BUS->AR W/R,CE,LDAR
RAM->BUS,BUS->DR1 W/R,CE,LDDR1
DR1->LED ALU-B,LED-B,W/R JMP PC->AR,PC+1 LDPC,PC-B,LDAR
RAM->BUS,BUS->PC W/R,CE,LDPC
(6)程序运行结果
输入01H,经运行后LED显示为0B,实验成功。 6、建立联机操作文件
为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文
本文件,扩展名为TXT,可用记事本来建立的,要求:
a、 测试用的工作程序排在文件的前面,每个内存地址及代码占一行;
b、 微指令代码排在文件的后面,每个微地址及微指令代码占一行;
7、连接实验线路
复杂模型机系统连线图
9
TS4T4B7H24BUS UNITFW/R UNITTS3T3TS2T2TS1T1B0STATE UNITSIGNAL UNITWE
SE6SE6B7LDARLDARLOG UNITSWITCH UNITM18LOADLOADSWBSWBPC-BPC-BSE1SWASE1SWAB0LDPCLDPCP(1)P(1)ADDRESS UNITP(2)P(2)I7I7P(3)P(3)INS UNITP(4)M24P(4)S3B7I2I2LDR1LDR1I3I3M19CNRS-BRS-BAUJ3RD-BRD-BB0LDDR1LDDR1I0I0RI-BRI-BB7LDDR2LDDR2
LDIRAUJ1LDIRALU-BALU-B299-B299-BB0ARARD7INPUT UNITCY ZISWJ3ALU UNITSW-BD0MICRO-CONTROLLER
A8M16LOG UNITA9M17FC FZLDR2LDR2Y0LDR1LDR1LDR0LDR0MAIN MEMY1R2-BR2-BD7D7A7AD7R1-BR1-BR0-BR0-BY2
D0D0A0AD0EX UNITW/RW/REXT BUS
D7D7LED-BB7W/RRJ1D0D0REG UNITB0OUTPUT UNITCE
8、运行与调试
(1)系统与PC机联机
实验系统安装有一个
的DB型9针RS-232C串口插座,使用配套的串行通信电缆分别插在实验系统及PC机的串口,即可实现系统与PC机的联机操作。
(2)下载工作程序和微程序
使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中。其中,自带电 线的实验箱用NCMP53软件,启动软件后使用F4[装载]进行下载;外接电源线的实验箱用CMPP软件,启动软件后在菜单中选择[转储]/[装载]进行下载。
(3)运行
10
数据通路结构框图
五 利用CPLD设计一个并行加法器
1、设计目标
使用APEL语言编写一个四位并行进位加法器
2、设计内容
使用大规模可编程逻辑器件CPLD设计实现一个4位并行进位加法器,并验证设计的正确性。
3、设计要求
采用ispDesignEXPERT软件来对可编程逻辑器件ispLSI1032进行编程设计,要求用原
11
理图输入方式来进行设计输入,并对所设计的加法器进行功能和时序仿真,最后在西安唐都科教仪器公司的TDCM+计算机组成原理实验台上验证所设计器件的逻辑功能。
提示:
在实验台上进行逻辑功能验证时,可以借助使用INPUTDEVICE单元输入加数和被加数,进位输入可由SWITCHUNIT单元的一个开关来给出,可用总线单元的发光二极管来显示运算结果。
4、实验原理
用超前进位电路实现:
5、实验步骤
(1) 建立新
(2) 输入原理图或硬件描述语言进行设计
(3) 对源程序进行编译
(4) 连接下载电缆
(5) 将生成的JED文件下载到可编程逻辑器件中
(6) 连接实验电路
6、运行调试
(1)下载步骤
使用ispDesignEXPERT软件建立联机文件,并把其下载到TDN-CM+系统的
12
ispLSI1032器件。
下载电缆的连接方法如下:
在打开PC机和实验系统的电源之前,将下载电缆的一端与PC机的并行口相连,另
一端与TDN-CM+系统的ispLSI1032器件的编程接口相连。
(2)使用说明
ABEL源程序中的管脚41,40,39,38为加数输入的管脚,37,36,35,34为另一个
加数的输入管脚,52为低位进位控制管脚,6,5,4,3为输出管脚,10为进位位的
控制管脚。
(3)测试数据及结果
输入数据:0011 0011 进位为设置为1
输出数据:0111
测试结果正确。
六 总结
计算机组成原理是计算机科学与技术专业一门非常重要的课程,在计算机专业的学习中起着相当重要的作用,是掌握计算机硬件知识和计算机内部处理过程的理论基础,因此,本次课程设计是对计算机组成原理所学理论知识的一次大检阅,是集知识的综合应用和动手能力于一体的一次大型的演练。
本次课程设计之前,我认为只是在实验箱上接接现就OK了。在课程设计的时候在才真正意识到我的理解是完全错误,面对几个题目根本无从下手。在老师的悉心指导下,在同学的耐心帮助下,我顺利地完成了本次课程设计。通过本次课程设计,我对计算机的基本组成、工作原理,以及他们之间的通信方式 ,微程序控制器的设计、微指令和微程序的编制、调试以及执行等过程在理论的基础上面有了更加深刻的理解,并加深了对理论课程的理解。
在实践过程中,我与其他同学相互协作、相互交流,加强了我们之间的团队精神,这对我来说是难得的,老师耐心的指导,对我这次课程设计的顺利完成起了很大的帮助作用。并从以下几方面得到较深体会:
1、加深了对实验原理的认识
本实验主要运用的原理是微程序控制的控制器工作原理。计算机所识别的全部指令都
13
是由微指令组成的微程序,指令的执行是通过来执行相应的微程序来完成的。实验中将所要求的所有指令变成对应的微程序,写入控制存储器中,以后在执行用户程序的过程中,每次都先从内存储器中取出一条机器指令,其解释执行过程都是从控制存储器中读出相应的微程序,执行每条微指令的过程。
2、熟悉了微程序流程图的画法和微指令的设计方法
画微程序流程图,要先确立每条机器指令所需要的微周期数,此时要注意遵循确立的原则。即写总线的微操作不能安排在同一条微指令中;当一微指令使用T4节拍时,其后续微操作不能与它安排在同一条微指令中;互斥微操作不能安排在同一条微指令中。
3、对理论在实践中的应用有深刻的理解
这次课程设计提供了理论用于实践的机会,使我们真正弄懂了微指令的编写过程。指令的构成是设计过程中的一个难点,我们一定要真正地弄懂它,进而弄清楚指令的功能,理解整个设计的目的。
4、激发了学习的积极性
此次课程设计的过程中,弄清了以前在上理论课时的疑难问题,因此信心有了很大的增强,对计算机组成原理这门课程的兴趣也不断提高,在一定程度上增强了学习的积极性。
七 参考文献
[1] 计算机组成与结构 王爱英主编 清华大学出版社 2001年
[2] 计算机组成原理上机实验指导(Ver 3.0) 黄贤英 张光建著 2005年 [3]
14
《计算机组成原理》课程设计评分表
项 目 评 价
完成与答辩情况(50,)
课程设计报告的质量(30,)
考勤与表现(20,)
综合评分
指导教师签名:
日 期:_2009年 月 日_
15