《简单模型机实验报告(共22页).doc》由会员分享,可在线阅读,更多相关《简单模型机实验报告(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上学生实验报告 题 目:简单模型机的设计与实现 所 在 系: 班 级: 学 号: 姓 名:指导教师: 日 期: 2011年12月1日 目目录课程设计任务书一、设计任务: 1、 基本模型机设计与实现;2、 在基本模型机设计的基础上设计一台复杂模型机。二、功能指标和设计要求:利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。设计环境为TDNCM计算机组成原理教学实验箱、微机,联机软件等。将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。最后撰写出符合要求的课程设计说明书、完成答辩。1.基本模型机设计与实现1.1、设计一台简单模型机,要
2、求其指令系统至少要包括五条不同类型指令:如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条存数指令(假设助记符为STA),一条输出指令(假设助记符为OUT)和一条无条件转移指令(假设助记符为JMP);利用设计的模型机设计一个进行两个数求和运算的测试验证程序,验证模型机的功能。1.2、在1.1的基础上,给基本模型机增加一条加法指令(假设助记符仍为ADD),但是该加法指令的寻址方式与1.1中的加法指令寻址方式不同。利用设计的模型机设计一个进行两个数求和运算的测试验证程序,验证模型机的功能。2. 在任务1的基础上,设计具有不少于10条指令的复杂指令系统模型机。其中,包含算术
3、逻辑指令、访问内存指令、转移指令、程序控制指令(控制台指令)、输入输出指令、停机指等令。数据的寻址方式要包括直接、间接、变址和相对寻址等多种寻址方式。利用设计的复杂模型机实现两个数的减法运算并判断差得正负,差为正数则输出A,差为负数则输出B,差为零则输出C。设计该测试验证程序,验证模型机的功能。3、基本模型机和复杂模型机的CPU数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。三、设计步骤:1、确定设计目标进行全面深入的模型机设计需求分析,确定所设计计算机的功能和用途。2、确定指令系统确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。确定相
4、对应指令所包含的微操作。3、总体结构与数据通路与硬件实现总体结构设计包括确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。硬件实现基于现有的基本实验箱平台,根据所设计模型机选择必要的元器件,并通过接插件(各种连线等)进行器件连接,组成所设计的模型机硬件系统(物理机)。4、设计指令执行流程数据通路确定和硬件实现后,就可以设计指令系统中每条指令所需要的机器周期数。对
5、于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。5、确定微程序地址根据后续微地址的形成方法,确定每个微程序地址及分支转移地址。6、微指令代码化根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码写入到控制存储器中的相应单元中。7、组装、调试7.1、在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的正常运行。首先调试每条微指令功能,再调试每条机器指令功能。连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器
6、指令,进行其他的运行方式等功能调试及执行指令的正确性验证。7.2、当所有功能模块都调试正常后,进入总调试。根据设计的模型机设计模型机功能测试验证程序,运行程序验证模型机功能。四、课程设计报告要求:课程设计报告要求打印,其中的数据通路框图、微程序流程图、实验接线图用VISIO等绘图工具软件绘制或用铅笔工工整整绘制,要求图文清晰,报告内容包括:(1)封面(包括:题目、所在系、班级、学号、指导教师及时间等项)(2)任务书(3)目录(目录要层次清晰,要给出标题及页次,目录的最后一项是无序号的“参考文献”)。(4)正文正文应按目录中编排的章节依次撰写,要求论述清楚,文字简练通顺,插图清晰,书写整洁,充分
7、体现“设计”的思想。文中图、表及公式应规范地绘制和书写。正文是实践设计报告的主体,具体由以下几部分组成:1)课程设计题目;2)课程设计使用的实验设备;3)课程设计步骤(包括确定所设计计算机的功能和用途、指令系统、总体结构与数据通路、设计指令执行流程、确定微程序地址、微指令代码化、组装、调试、测试验证程序与功能验证情况。)4)课程设计总结(包括自己的收获与体会;遇到的问题和解决的方法等);(5)附录附录1:数据通路图附录2:微程序流程图附录3:实验接线图附录4:实验程序及微程序附录5:参考文献(资料)基本模型机设计与实现一、设计任务: 基本模型机设计与实现;二、实验设备:硬件:TDN-CM+计算
8、机组成原理实验系统一台,PC机一台,排线若干,串口线一根。软件:CMP软件三、设计步骤:1、所设计模型机的功能:设计的简单模型机,指令系统包括六条不同类型指令:一条输入指令(助记符为IN),一条加法指令(助记符为ADD),一条存数指令(助记符为STA),一条输出指令(助记符为OUT),一条无条件转移指令(助记符为JMP)和一条减法指令(助记符为SUB);2、指令系统:1)部件设计过程中, 各部件单元的控制信号是人为模拟产生的, 而本次设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行
9、结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。2)本设计采用六条机器指令: IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)、SUB(二进制减法),其指令格式如下(前4位为操作码): 助记符 机器指令码 说 明 IN 0000 0000 “INDEVICE”中的开关状态RO ADDaddr 0001 0000 R0+addr R0 STAaddr 0010 0000 ROaddr OUTaddr 0011 0000 addr LED JMPaddr 0100 0000 addrPC SUBaddr 0101 0000 R0
10、-addr R0说明:其中 IN 为单字长(8位), 其余为双字长指令, 为 addr 对应的二进制地址码。 3)为了向 RAM 中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。存储器读操作(KRD): 拨动总清开关CLR 后, 控制台开关 SWB、SWA 为“0 0” 时,按 START 微动开关,可对 RAM 连续手动读操作。存储器写操作(KWE):拨动总清开关 CLR 后,控制台开关 SWB、 SWA 置为“0 1” 时,按 START微动开关可对 RAM 进行连续手动写入。启动程序: 拨动总清开关 CLR 后,控制台开关 SWB、 SWA 置为“1
11、 1” 时,按 START 微动开关,即可转入到第 01 号“取址”微指令,启动程序运行。 上述三条控制台指令用两个开关 SWB、SWA 的状态来设置,其定义如下: 4)微代码定义如表1 所示。 表1 微代码定义3、设计图和微指令:1)按照功能要求,总体结构的数据通路如图2所示,设计的电路图见附页3. T4299-B74299图 2 数据通路图2)当拟定“取指”微指令时,该微指令的判别测试字段为 P 测试。 由于“取指” 微指令是所有微程序都使用的公用微指令, 因此 P(1) 的测试结果出现 多路分支。本机用指令寄存器的前4位(IR7IR4)作为测试条件,出现5路分支,占用5个微地址单元。控制
12、台操作为 P(4)测试,它以控制台开关 SWB、SWA 作为测试条件,出现了3路分支,3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存微地址单元随意填写。注意:微程序流程图上的单元地址为8进制。 当全部微程序设计完毕后,应将每条微指令代码化。系统涉及到的微程序流程见附录2,表2将图2 的微程序流程微指令格式转化而成的“二进制微代码表”。表2 二进制微代码表 微地址S3 S2 S1 S0 M Cn WE A9 A8ABCUa5.ua00 00 0 0 0 0 0 0 1 10 0 00 0 01 0 0 0 1 0 0 0 00 10 0 0 0 0 0 0 1
13、 11 1 01 1 01 1 00 0 0 0 1 00 20 0 0 0 0 0 0 0 11 0 00 0 00 0 10 0 1 0 0 00 30 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 0 1 0 00 40 0 0 0 0 0 0 0 10 1 10 0 00 0 00 0 0 1 0 10 50 0 0 0 0 0 0 1 10 1 00 0 10 0 00 0 0 1 1 00 60 0 0 0 0 0 0 1 10 0 11 0 10 0 00 0 0 0 0 10 70 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 1 1
14、 0 11 00 0 0 0 0 0 0 0 00 0 10 0 00 0 00 0 0 0 0 11 10 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 0 1 11 20 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 1 1 11 30 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 1 1 1 01 40 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 1 1 01 50 0 0 0 0 0 1 0 10 0 00 0 10 0 00 0 0 0 0 11 60 0 0 0 0 0 0 0 1
15、1 1 00 0 00 0 00 0 1 1 1 11 70 0 0 0 0 0 0 0 10 1 00 0 00 0 00 1 0 1 0 12 00 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 0 1 02 10 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 1 0 02 20 0 0 0 0 0 0 0 10 1 00 0 00 0 00 1 0 1 1 12 30 0 0 0 0 0 0 1 10 0 00 0 00 0 00 0 0 0 0 12 40 0 0 0 0 0 0 0 00 1 00 0 00 0 00 1 1 0 0
16、 02 50 0 0 0 0 1 1 1 00 0 01 0 10 0 00 0 0 0 0 12 60 0 0 0 0 0 0 0 11 0 10 0 01 1 00 0 0 0 0 12 70 0 0 0 0 1 1 1 00 0 01 0 10 0 00 1 0 0 0 03 00 0 0 0 0 1 1 0 10 0 01 0 10 0 00 1 0 0 0 13 10 0 0 0 0 0 1 0 10 0 00 0 10 0 00 0 0 0 0 13 20 0 0 0 0 0 0 0 11 1 00 0 00 0 00 1 1 0 1 13 30 0 0 0 0 0 0 0 10
17、1 10 0 00 0 00 1 1 1 0 03 40 0 0 0 0 0 0 1 10 1 00 0 10 0 00 1 1 1 0 13 50 1 1 0 0 1 0 1 10 0 11 0 10 0 00 0 0 0 0 13)系统说明:指令寄存器(IR): 指令寄存器用来保存当前正在执行的一条指令。 当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试P(1),通过节拍脉冲 T4 的控制以便识别所要求的操作。“指令译码器”(实验板上标有“INS DECODE”的芯片)根据指令
18、中的操作码译码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。 本系统有两种外部 I/O 设备,一种是二进制代码开关,它作为输入设备(INPUT DEVICE);另一种是数码块,它作为输出设备(OUTPUT DEVICE)。例如: 输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线上,当写信号(W/R)有效时,将数据打入输出锁存器,驱动数码块显示。 4、组装、调试、测试验证程序与功能验证情况:1)按照附页3的电路图组装系统2)设计验证程序:设计的机器指令程序如下:$P0000 IN R0 $P0120 STA R0
19、0DH $P020D $P0300 IN R0$P0450 SUB 0DH R0 $P050D $P0620 STA R0 OEH $P070E $P0800 IN R0 $P0910 ADD OEH R0 $P0A0E $P0B20 STA R0 0DH $P0C0D $P0D30 OUT 0DH $P0E0D $P0F40 JMP 00H $P1000 专心-专注-专业对应的微程序:$M$M0101ED82$M0200C048$M0300E004$M0400B005$M0501A206$M06959A01$M0700E019$M$M0901ED83$M0A01ED87$M0B01ED8E$
20、M0C01ED96$M0D01ED9A$M0E00E00F$M0F00A015$M1001ED92$M1101ED94$M1200A017$M$M$M15070A01$M1600D181$M17070A10$M18068A11$M$M1A00E01B$M1B00B01C$M1C01A21D$M1D619A013)联机读写程序 将上述设计的指令程序, 用联机软件的传送文件功能(F4) 将该格式文件传入实验系统即可。 4)运行程序 单步运行程序 . 使编程开关处于“RUN”状态, STEP 为“STEP”状态,STOP 为“RUN” 状态。 . 拨动总清开关 CLR( ),微地址清零,程序计数器清
21、零。程序首址为 00H。 . 单步运行一条微指令,每按动一次 START 键,即单步运行一条微指令。对照微程序流程图,观察微地址显示灯是否和流程一致。 . 当运行结束后,可检查存数单元(0BH)中的结果是否和理论值一致。 连续运行程序 . 使“STATE UNIT”中的 STEP 开关置为“ECEX”状态。STOP 开关置为“RUN”状态。 . 拨动 CLR 开关,清微地址及程序计数器,然后按动 START,系统连续运行程序,稍后将 STOP拨至“STOP”时,系统停机。 . 停机后,可检查存数单元(0BH)结果是否正确。 若联机运行程序时, 进入 DEBUG 调试界面, 总清开关 CLR(0
22、 1) 清零后, 程序首址为 00H,按相应功能键即可联机运行、调试程序。 5)经过多次对指令的改写与调试,最终获得了预期的结果。复杂模型机设计与实现一、设计任务 在基本模型机设计的基础上设计一台复杂模型机。二、实验设备硬件:TDN-CM+计算机组成原理实验系统一台,PC机一台,排线若干,串口线一根。软件:CMP软件三、设计步骤1. 在简单模型机的基础上搭接移位控制电路,实现移位控制运算。新增4条移位运算指令:RL(左环移)、RLC(带进位左环移)、RR(右环移)、RRC(带进位右环移),其指令格式如下:助记符 操作码RR 0101 0000RRC 0110 0000 RL0111 0000R
23、LC1000 00002. 指令格式如下表3所示。表324232221201918171615 14 1312 11 10 9 8 7654321S3S2S1S0MCnWEA9A8ABCuA5uA4uA3uA2uA1uA0987选择000001P(1)010011100P(4) 101110LDPC121110选择000001RS-B010011100299-B101ALU-B110PC-B A字段 B字段C字段151413选择000001LDDRi010LDDR1011LDDR2100LDIR101LOAD110LDAR 1.数据通路图如图3所示。 T4299-B74299图3 数据通路图2
24、.设计微程序流程图,见附录2中复杂模型机的3.按照实验要求设计的电路图见附录3中复杂模型机的电路图。4.微指令代码化(十六进制表示),写入操作文件后面。5.设计验证程序的内存映像(装入起始地址00H)如下表4所示。表4地址(二进制)内容(二进制)助记符说 明0000 00000000 0000IN将输入数据送R0寄存器0000 00010001 0000ADD 0DHR0+0DHR00000 00100000 11010000 00111000 0000RLC将R0寄存器中的数据带进位循环左移一位0000 01000000 0000IN“INPUT DEVICE”R00000 01010110
25、 0000RRC将R0寄存器中的数据带进位循环右移一位0000 01100111 0000 RL将R0寄存器中的数据循环左移一位0000 01110010 0000STA 0EHR00EH0000 10000000 11100000 10010011 0000OUT 0EH0EHLED0000 10100000 11100000 10110100 0000JMP 00H00HPC0000 11000000 00000000 11010000 0001输入自定的数据0000 1110求和结果的存储单元6.组装、调试、测试验证程序与功能验证情况:1)建立联机操作文件。为了从PC机下载工作程序和微程
26、序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为TXT,可用记事本来建立。源程序如下:$P0000$P0110$P020D$P0380$P0400$P0560$P0670$P0720$P080E$P0930$P0A0E$P0B40$POC00$P0D01对应的微程序如下:$M$M0101ED82$M0200C050$M0300E004$M0400B005$M0501A206$M06959A01$M0700E00F$M0801ED8A$M0901ED8C$M0A00A00E$M0B$M0C00200D$M0D068A09$M0E070A08$M0F$M$M1101ED83$M1201E
27、D87$M1301ED99$M1401ED9C$MD$MF$M$M$M1900E01A$M1A00A01B$M1B070A01$M1C00D181$M1D21881E$M1E$M1F$M$M$M$M$M2)联机读写程序 将上述设计的指令程序, 用联机软件的传送文件功能(F4) 将该格式文件传入实验系统即可。 3)运行程序 单步运行程序 . 使编程开关处于“RUN”状态, STEP 为“STEP”状态,STOP 为“RUN” 状态。 . 拨动总清开关 CLR( ),微地址清零,程序计数器清零。程序首址为 00H。 . 单步运行一条微指令,每按动一次 START 键,即单步运行一条微指令。对照微程
28、序流程图,观察微地址显示灯是否和流程一致。 . 当运行结束后,可检查存数单元(0BH)中的结果是否和理论值一致。 连续运行程序 . 使“STATE UNIT”中的 STEP 开关置为“ECEX”状态。STOP 开关置为“RUN”状态。 . 拨动 CLR 开关,清微地址及程序计数器,然后按动 START,系统连续运行程序,稍后将 STOP拨至“STOP”时,系统停机。 . 停机后,可检查存数单元(0BH)结果是否正确。 若联机运行程序时, 进入 DEBUG 调试界面, 总清开关 CLR(0 1) 清零后, 程序首址为 00H,按相应功能键即可联机运行、调试程序。 5)经过多次对指令的改写与调试,
29、最终获得了预期的结果。设计总结:一、设计中遇到的问题:问题1:怎么根据数据流图画微程序流程图?方法:在网上和图书馆找资料,查询他们之间的转化工程和原理。读懂数据流程图后,根据它的原理就可以画出微程序流程图。 问题2:流程图画好后,怎么定义每一块的微地址和经过P(1)测试后算出下一条微指令的微地址?方法:请教老师,老师为我们做了详细的讲解。根据微程序地址转移电路,就可以得到P(1)测试后下一条微指令的地址,剩的微地址自己定义。问题3:微指令在编的工程中应该注意什么?方法:请教老师,老师为我们做了详细的介绍。在写微指令时,没有用到的位置0,注意A、B、C字段的值,根据微程序流程图编写微指令。问题4
30、:按照实验5写存储完微指令后,根据课程设计指导书上的内容写完机器指令后,在调试的过程中,主控的流程不对?方法:仔细检查自己写的微指令,P(4)判断没写,写后问题就解决了。问题5:SWA和SWB状态设为启动程序时,程序并没有按流程走?方法:检查输入的机器指令,输入的有问题,改正后,问题就解决了。问题6:在断过一次电后,程序混乱?方法:请教老师,老师为我们讲解了其中的原理。断电后,存在RAM中的机器指令会不见,还有就是微指令的首条指令会被该掉。从输入机器指令后,再改正完微指令的首地址后,问题就解决了。问题7:在单步运行时,不知道怎么看自己的结果对不对?方法:和同学讨论,第一看总线上面的二极管显示和
31、程序上送往总线上的数对不对,第二就是检查微地址显示的对不对。问题8:在单步运行的时候,解决不对?方法:检查自己的微指令,微指令有几条写的不对,改正后,问题就解决了。二、设计体会通过将近一周的课程设计实践,让我对计算机的基本组成有了更直观的理解,课设过程中对计算机的工作流程有了更直接的了解,同时也使我进一步地了解了微程序的设计思想和微程序的编制、写入过程。 由于这是第一次做这方面的实验,而且对整个课程设计目的了解不够,所以在第一天的时间基本上花在连简单模型机的电路图中。但是在第一次讲解时,使我对整个实验也只是一个大致的了解,但是除了按照实验指导书上的步骤去做,还是不知道怎么去设计。对于简单模型机
32、也只是按照书上能够调试出来。在第二次讲解,我对以前做过的实验重新看了一遍,在设计时随着老师的一次次详细的讲解及同学的不断讨论,通过自己不断思考,我渐渐的才对这次课程设计有了初步了解,自己的思路也慢慢清晰。接下来, 关于写程序、微程序时主要考验的是我的耐心。经过和同学很长时间的讨论,最终决定在原有简单模型机的基础上添加减法运算。在减法指令执行步骤的设计上也参考了加法的执行步骤,机器指令也重新设计了,微程序知识在原有的基础上添加了几个减法的微命令。在整个减法运算的设计过程中出了许多的错误,但是经过小组的讨论和问同学,最终将问题解决。总觉得这次的课设时间还是有点短,复杂模型机只是在连好的基础上在网上找了个机器程序验证和观看了下结果,没有自己设计。附录附录1:简单模型机的关键数据通路图附录2:微程序流程图1)简单模型机的流程图:2)复杂模型机的流程图:附录3:1)所设计的简单模型机的电路连接图、2)所设计的复杂模型机的电路连接图附录4:参考文献1、计算机组成原理教材,陈智勇主编;2、计算机组成原理实验指导书(唐都版);3、计算机组成原理实验指导书(西南科技大学版);4、计算机组成原理课程设计报告范例