《计算机组成原理》课程设计指导.docx
《《计算机组成原理》课程设计指导.docx》由会员分享,可在线阅读,更多相关《《计算机组成原理》课程设计指导.docx(27页珍藏版)》请在冰豆网上搜索。
![《计算机组成原理》课程设计指导.docx](https://file1.bdocx.com/fileroot1/2023-2/21/f4c48ffd-e553-4611-b044-ef3b63eee8e4/f4c48ffd-e553-4611-b044-ef3b63eee8e41.gif)
《计算机组成原理》课程设计指导
计算机组成原理与系统结构
课程设计指导书
(Ver1.0)
陈媛黄贤英
计算机科学与工程学院
2004年11月
目录
一、课程设计的目的3
二、模型机的设计步骤3
三、实验装置5
四、设计题目5
五、课程设计任务及要求16
六、考核办法16
七、附录17
附录1(数据通路):
17
附录2(系统连线参考图)18
附录3(微指令格式)20
附录4(译码电路)20
附录5控制台命令21
一、课程设计的目的
通过对一个简单计算机的设计,对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。
二、模型机的设计步骤
设计一台完整的计算机,大致需按如下的顺序来考虑:
1.确定设计目标
确定所设计计算机的功能和用途。
2.确定指令系统
确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式,并给出具体的编码,比如指令的操作码,地址码等的位数及各种编码的含义。
3.确定总体结构(寄存器、加法器、选择器的设置与数据通路的设计)
总体结构设计包含确定各部件设置以及它们之间的数据通路结构。
在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。
对于部件设置,比如要确定运算器部件采用什么结构,控制器是微程序控制还是硬联控制等。
综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。
数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。
4.设计指令执行流程
数据通路确定后,就可以设计指令系统中每条指令的执行流程。
根据指令的复杂程度,确定每条指令所需要的机器周期数。
对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。
5.确定微程序地址
确定后续微地址的形成方法,确定每个微程序地址及分支转移地址。
6.微指令代码化
根据微指令格式,将微程序流程中的所有微指令代码化。
首先写出每个微地址以及该地址对应的微指令代码(共24位二进制信息),如下表所示:
其中:
微地址表示控制存储器的地址,后面的24位表示微指令。
然后将每个微地址和对应的微指令转换成16进制,并写在一行,格式为:
$M********,前面2个‘*’表示该微指令的在微控制器中的地址,后面6个‘*’表示该微指令代码。
如上述表中的四条微指令写成:
$M00018110:
表示在控制存储器地址00h处的代码是018110h。
$M0101ED82:
表示在控制存储器地址01h处的代码是01ED82h。
$M0200C048:
表示在控制存储器地址02h处的代码是00C048h。
$M0300E004:
表示在控制存储器地址03h处的代码是00E004h。
7.编写工作程序并代码化
编写测试用的工作程序,并写出内存映像,用二进制表示。
然后代码化用16进制来表示,格式为:
$P****,前面2个‘*’表示该内存的地址,后面2个‘*’表示该地址的数据。
例如:
$P0044:
表示在内存地址00h处的数据是44h。
$P0146:
表示在内存地址01h处的数据是46h。
8.联机操作文件的建立
为了从PC机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立的,要求:
a、测试用的工作程序排在文件的前面,每个内存地址及代码占一行;
b、微指令代码排在文件的后面,每个微地址及微指令代码占一行;
例如,下面是一个实验的文件(文件名:
sample.txt):
$P0044
$P0146
$P0298
$M00018108
$M0101ED82
$M0200C050
9.连接实验线路
根据附录2的实验线路图连接实验线路,其中第1题和第2题用图2(简单模型机的连线图)连线,第3题和第4题用图3(复杂模型机的连线图)连线。
10.下载工作程序和微程序
使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中。
其中,自带电源线的实验箱用NCMP53软件,启动软件后使用F4[装载]进行下载;外接电源线的实验箱用CMPP软件,启动软件后在菜单中选择[转储]/[装载]进行下载。
11.调试
在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。
可以使用控制台命令SWA、SWB的不同取值,或使用联机软件检查内存程序是否正确,微程序是否正确。
当所有功能模块都调试正常后,进入总调试。
可以使用单步微指令方式执行工作程序,也可以直接使用连续方式执行程序。
在执行过程中,可以通过联机软件的数据通路图查看信息在计算机中的传送路径,更有利于掌握数据的通路结构。
这样也可以直接验证程序和微程序的正确性。
如果运行结果不正确,需要返回来修改程序或微程序,每次修改后,需要重新完成第10步,将程序和微程序下载到实验箱中。
三、实验装置
TDN-CM++计算机组成原理教学实验系统一台,排线若干。
四、设计题目
题目一:
设计一台模型计算机,实现下列指令系统,并通过给定的工作程序验证上述指令系统。
本设计实现的模型机共包含五条机器指令:
IN(输入)、ADD(加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):
助记符
机器指令码(二进制)
说明
微程序的入口地址
(八进制)
IN
00000000
“INPUTDEVICE”中的开关状态—>R0
10
(取指令后续微指令默认地址为10)
ADDaddr
00010000XXXXXXXX
RO+[addr]——>R0
11
STAaddr
00100000XXXXXXXX
RO——>[addr]
12
OUTaddr
00110000XXXXXXXX
[addr]——>LED
13
JMPaddr
01000000XXXXXXXX
addr——>PC
14
其中IN为单字长(8位),其余为双字长指令,XXXXXXXX为addr对应的二进制地址码。
控制台命令的微程序流程如下(01为取指微指令的地址):
本设计的验证程序的内存映象(装入起始地址00H)如下:
地址(二进制)
内容(二进制)
助记符
说明
00000000
00000000
IN
将输入数据送R0寄存器
00000001
00010000
ADD[OAH]
00000010
00001010
RO+[0AH]—>R0
00000011
00100000
STA[0BH]
00000100
00001011
R0—>[0BH]
00000101
00110000
OUT[0BH]
00000110
00001011
[0BH]—>LED
00000111
01000000
JMP01
00001000
00000001
01H—>PC
00001001
00001010
00000001
输入自定的数据
00001011
求和结果的存储单元
测试数据为:
FEH
题目二:
设计一台模型计算机,实现下列指令系统,并通过下列工作程序验证上述指令系统。
本模型机共包含五条机器指令:
IN(输入)、ADD(加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前4位为操作码):
助记符
机器指令码
说明
微程序的入口地址(八进制)
IN
00000000
“INPUTDEVICE”中的开关状态—>R0
10
(取指令后续微指令默认地址为10)
ADCImm
00010000XXXXXXXX
RO+Imm+cy——>R0
11
STAaddr
00100000XXXXXXXX
RO——>[addr]
12
OUTaddr
00110000XXXXXXXX
[addr]——>LED
13
JMPaddr
01000000XXXXXXXX
addr——>PC
14
其中IN为单字长(8位),其余为双字长指令,XXXXXXXX为addr对应的二进制地址码或Imm所对应的二进制数据(补码形式)。
控制台命令的微程序流程同1题。
工作程序如下:
地址
指令
00
IN
01
ADC01H
03
STA[0AH]
05
OUT[0AH]
07
JMP01
测试数据为:
FEH
题目三:
设计一台模型计算机,实现下列指令系统,并用指定的工作程序验证上述指令系统。
本模型机的指令系统及指令格式如下(前4位为操作码):
助记符号
指令格式
功能
微程序入口地址
(八进制)
MOVrs,rd
1000
Rs
rd
Rsrd
30
ADCrs,rd
1001
Rs
rd
Rs+rd+cyrd
31
BZC
00
00
00
00
D
当cy=1或z=1时,DPC
否则,顺序执行
20
(取指令后续微指令默认地址为20)
INrd
0100
01
Rd
InputDevicerd
24
OUTrd
0101
10
Rd
RdOutputDevice
25
HALT
0110
00
00
停机
26
其中,rs为源寄存器,rd为目的寄存器,并规定:
Rs或rd
选定的寄存器
00
01
10
R0
R1
R2
控制台命令的微程序流程(注意控制台命令的微程序的入口地址,01为取指令微指令的地址):
工作程序如下:
地址
指令
00
INR0
01
INR2
02
ADCR2,R0
03
MOVR0,R1
04
OUTR1
05
BZC02
07
HLT
测试数据为两组:
(1)R0=FE;R2=01H
(2)R0=FF;R2=01H
题目四:
设计一台模型计算机,完成下列指令系统,并编写工作程序验证上述指令系统。
本模型机共设计16条基本指令,其中算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
下表列出了各条指令的格式、汇编符号、指令功能。
类型
助记符号
指令格式
功能
微程序入口地址
(八进制)
算术逻辑指令
CLRrd
0111
00
rd
0rd
27
MOVrs,rd
1000
Rs
rd
Rsrd
30
ADCrs,rd
1001
Rs
rd
Rs+rd+cyrd
31
SBCrs,rd
1010
Rs
rd
Rs-rd-cyrd
32
INCrd
1011
Rd
Rd+1rd
33
ANDrs,rd
1100
rs
rd
Rs∧rdrd
34
COMrd
1101
Rd
rdrd
35
RRCrs,rd
1110
Rs
Rd
36
RLCrs,rd
1111
Rs
Rd
37
访存指令
LDAM,D,rd
00
M
00
Rd
D
Erd
40
STAM,D,rd
00
M
01
Rd
D
RdE
41
程序控制指令
JMPM,D
00
M
10
00
D
EPC
42
BZC
00
M
11
00
D
当cy=1或z=1时,EPC
43
输入输出
INaddr,rd
0100
01
Rd
Addrrd
24
OUTaddr,rd
0101
10
Rd
Rdaddr
25
其它
HALT
0110
00
00
停机
26
下面对各种指令格式加以说明:
(1)算术逻辑指令
算术逻辑运算指令共9条,用单字节表示,寻址方式采用寄存器直接寻址,格式为:
7654
32
10
OP-CODE
Rs
rd
其中,OP-CODE为操作码,rs为源寄存器,rd为目的寄存器,并规定:
Rs或rd
选定的寄存器
00
01
10
R0
R1
R2
(2)访存指令及程序控制指令
模型机设计两条访存指令,即存数(STA)、取数(LDA),两条转移指令,即无条件转移指令(JMP)、结果为0或有进位转移指令(BZC),指令格式为:
76
54
32
10
00
M
OP-CODE
rd
D
其中,OP-CODE为操作码,rd为目的寄存器地址(LDA、STA指令使用),D为位移量(正负均可),M为寻址模式,其定义为:
寻址模式M
有效地址E
说明
微程序入口
00
01
10
11
E=D
E=(D)
E=(RI)+D
E=(PC)+D
直接寻址
间接寻址
RI变址寻址
相对寻址
20
21
22
23
变址寻址寄存器指定为寄存器R2。
(3)输入/输出指令
输入输出指令均采取单字节指令,其格式如下:
7654
32
10
OP-CODE
addr
rd
其中,addr=01时,选中“InputDevice”中的开关组作为输入设备,addr=10时,选中“OutputDevice”中的数码显示作为输出设备。
(4)停机指令
用于实现停机操作。
测试用的工作程序如下:
IN01,R0
IN01,R2
ADCR2,R0
MOVR0,R1
RLCR1,R1
OUTR1
BZC00,00
HLT
题目五:
选做:
用CPLD设计并行加法器
(1)、实验原理
使用大规模可编程逻辑器件(CPLD)来设计实现一个4位的并行进位加法器。
传统的数字系统设计只能通过设计电路板来实现系统功能,而采用可编程逻辑器件,则可以通过设计芯片来实现系统功能,从而有效地增强设计的灵活性,提高了工作效率。
并能够缩小系统体积,降低能耗,提高系统的性能和可靠性。
实验系统中采用的器件是Lattice公司的ispLSI1032芯片,isp芯片具有“在系统可编程功能”,这种功能可随时对系统进行逻辑重构和修改,而且只需要一条简单的编程电缆和一台PC机就可以完成器件大编程。
IspLSI1032芯片的等效逻辑门为6000门,具有128个宏单元,192个触发器和`64个锁存器,共有84个引脚,其中64个为I/O引脚。
IspLSI1032芯片的结构图如图5-1所示。
图5-1ispLSI1032芯片结构图
对该器件的逻辑系统设计是通过使用硬件描述语言或原理图输入来实现的,硬件描述语言有ABEL、AHDL等多种语言,本节实现是使用原理图输入来编程的。
下面是一个用原理入输入来设计一个4位并行加法器的例子。
该加法器采用并行进位,有两组4位加法A3~A0、B3~B0输入,4位本地和F3~F0输出,一个低位进位C0输入及一个本地进位CY输出。
系统采用ispDesignEXPERT软件来对可编程逻辑器件ispLS1032进行编程设计实现。
IspDesignEXPERT可采用原理图或硬件描述语言或这两种方法的混合输入共三种方式来进行设计输入,并能对所设计的数字电子系统进行功能仿真和时序仿真。
其编译器是此次软件所需要的熔丝图文件。
该软件支持所有Lattice公司的ispLSI器件。
(2)、实现步骤
方法一:
A、安装EDA软件
打开计算机电源,进入WINDOWS系统,安装上述IspDesignEXPERT软件。
安装完成后,桌面和开始菜单中则建有IspDesignEXPERT软件图标。
B、建立新项目
用鼠标双击该软件图标按钮,则出现建立新项目操作界面IspDesignEXPERTProjectNavigator。
在界面左上角File菜单中单击NewProject…或单击坐上角“新建按钮,则出现界面CreateNewProject,在Project栏中输入ALU1.syn,在Projecttype栏中选Schematic/ABEL,并单击“保存”按钮,则在SourceinProject栏中建立了新的项目。
双击第一行Untitled按钮并对该项目命名,在名称栏中填入ALU_EX并单击OK按钮。
双击第二行选择器件。
根据实验系统中所使用的器件型号,例如对IspLSI1032-70LJ这一器件,在Family栏中选ispLSI1KDevice,在DEVICE栏中选IspLSI1032,在SpeedGrade栏中选70,在Package栏中选84PLCC,单击OK按钮,再单击Yes按钮确定,则选定器件为IspLSI1032-70LJ84。
C、输入编辑原理图
单击界面左下角的New…按钮,则出现界面NewSource:
(Schematic/ABEL),在其中选择Schematic,并单击OK按钮,则出现原理图编辑界面Schematicedit,输入模块名称ALU并单击OK按钮,就可在原理图编辑界面中输入加法器原理图了,见图5-2。
输入逻辑图完成后,将其存盘并退出编辑界面。
图5-2并行进位加法器逻辑原理图
D、对源程序进行编译
在左方SourceinProject栏中选中第二行ispLSI1032-70LJ84,在右方ProcessesforCurrentSource栏中双击第七行JEDECFILE按钮,则开始编译。
如果编译正确,则生成可下载的文件JEDECFILE,即使出现警告提示,也表明已成功生成了可下载文件。
如果提示错误,则需修改程序,然后重新编译。
E、连接下载电缆
在打开PC机和实验系统的电源之前,将下载电缆的一端与PC机的打印口相连,另一端与实验系统中ispLSI1032器件编程接口相连。
F、将JEDEC文件下载到ispLSI1032
首先打开实验系统的电源。
在ispDesignEXPERT软件界面菜单Tools中单击ispDCD按钮,则进入文件下载界面。
在下载界面中,单击菜单Configuration中的ScanBoard按钮或SCAN图标按钮,则出现扫描界面,其下方的信息显示已检测到ISP芯片电路。
然后单击BROWSE按钮,在其中选择要下载的文件ALU.JED,并在Command菜单中,单击RunOperationinSequentialMode按钮或RunOperation图标按钮,则进入文件下载过程。
在进行下载时,实验系统下载电路的指示灯闪烁。
下载完成后,界面下方显示下载过程是否正确的有关信息。
G、连接实验电路
按图5-3连接实验电路,其中ispLSI1032的输入/输出引脚已在程序中定义。
图5-3并行加法器实验接线图
H、验证所设计器件的逻辑功能
本实验所设计的是一个4位并行进位加法器,实验中INPUTDEVICE单元的高4位为B3~B0,低4位为A3~A0,以总线单元的低4位B3~B0发光二极管来显示运算结果,B7位来显示进位输出,而低位进位输入由一个开关AR来给出。
使SWITCHUNIT单元中的开关SW-B=0(打开数据输出三态门),拨动INPUTDEVICE单元的输入开关置A和B的值,然后由总线单元的显示灯来观察运算结果。
方法二:
以上所设计的并行加法器在应用ispDesignEXPERT软件时是以原理图输入形式来编程的,目的是为了让学生能更好地理解并行进位加法器的实现原理。
为便于学生学习,这里以硬件描述语言编程,描写器件功能,下面用ABEL语言编程来实现上述加法器,步骤如下:
a、建立新工程
打开ispDesignEXPERT软件,建立一个新的目录来创建一个新的工程文件。
在界面左上角File菜单中单击NewProject…或单击左上角“新建”按钮,则出现界面CreateNewProject,在Project栏中输入ALU2.syn,在Projecttype栏中选Schematic/ABEL,并单击“保存”按钮,则在SourcesinProject栏中建立了新的项目。
器件型号还是选ispLSI103270-LJ84。
b、编辑源程序
单击界面左下角的按钮New…,则出现界面NewSource:
(Schematic/ABEL),在其中选择ABEL-HDLModule,单击OK按钮,则打开newABEL-HDLsource窗口,输入模块名称和文件名并单击OK按钮,就可在出现的源程序编辑界面中输入源程序了。
输入完成后,将其存盘并退出编辑界面。
上述并行加法器设计用ABEL语言来描述程序如下:
MODULEalu
TITLE‘4bitaddr’
“Inputs
A4,A3,A2,A1PIN38,39,40,41;
B4,B3,B2,B1PIN34,35,36,37;
C0PIN52;
“Outputs
F4,F3,F2,F1PIN6,5,4,3;
CYPIN10;
“VAR
A=[0,A4,A3,A2,A1];
B=[0,B4,B3,B2,B1];
C=[0,0,0,0,C0];
F=[CY,F4,F3,F2,F1];
“
EQUATIONS
“
F=A+B+C;
“
END
c、对源程序进行编译。
d、将生成的JED文件下载至ispLSI1032芯片中。
e、实验连线及实验操作步骤同上。
五、课程设计任务及要求
1、任务:
在一周内至少正确完成3道题目。
2、要求:
1)同学们在实验前应该认真准备实验,根据实验讲义和课堂上学到的知识写出机器指令程序和微程序代码,做实验时带上。
若没预习,没有机器指令程序和微程序代码,不准做实验。
2)每个题目完成后,回答实验指导老师的提问,由教师记录完成情况。
3)周五提交课程设计报告书,主要根据上述模型机设计步骤的要求,写出每一步骤的结果。
重点阐述:
A)完善的微程序流程图(含所有机器指令和控制台命令的微程序流程图)。
B)全部十六进制微程序代码。
C)系统的功能测试方法(含助记符形式和二进制形式的机器指令程序和数据)、运行结果、结果分析、调试心得。
六、考核办法
课程设计成绩评定的依据有课程设计报告书、具体完成情况、答辩情况及课程设计考勤登记表,其中平时成绩占总成绩的20%。
优:
按要求完成4题或以上;有完整的符合标准的文档,文档有条理、有正确的微程序代码及工作程序代码,有正确的运行结果及结果分析;面试时概念正确、思路清晰、原理清楚、操作熟练、结果分析正确。
良:
完成4题,有完整