附件一湖南工业大学课程设计资料袋计算机与通信学院(系、部)2015 ~ 2016 学年第2 学期课程名称计算机组成原理指导教师杨伟丰职称教授学生姓名顾宏亮专业班级软件1403 学号14408300328题目复杂模型机的设计成绩起止日期2016 年 6 月20日~2016 年6月21 日目录清单附件二湖南工业大学课程设计任务书2015 —2016 学年第2 学期计通学院(系、部)软件专业1403 班级课程名称:计算机组成原理设计题目:复杂模型机的设计完成期限:自2016 年 6 月20 日至2016 年6 月21 日共 1 周内容及任务1.根据复杂模型机的指令系统,编写实验程序2.按图连接实验线路,仔细检查线路无误后接通电源。
3.写程序4.运行程序进度安排起止日期工作内容2016.6.20-2016.6.21连接线路进行实验主要参考资料唐朔飞.计算机组成原理.北京:高等教育出版社指导教师(签字):年月日系(教研室)主任(签字):年月日附件三设计说明书计算机组成原理复杂模型机的设计起止日期:2016 年6月20 日至2016 年 6 月21 日学生姓名顾宏亮班级软件1403学号14408300328成绩指导教师(签字)计算机与通信学院(部)2016年7月1日设计题目:复杂模型机的设计一、设计目的综合运用所学计算机原理知识,设计并实现较为完整的模型计算机。
二、设计内容根据复杂模型机的指令系统,编写实验程序,并运行程序,观察和记录运行结果。
三、预备知识1、数据格式8位,其格式如下:1≤X<1。
2、指令格式模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器、转移指令和停机指令。
(1)算术逻辑指令(2)访存指令及转移指令模型机设计2条访存指令,即存数(STA)、取数(LD),2条转移指令,即无条件转移(JMP)、结果,M(3)I/O指令OUT指令中,addr=10时,表示选中“OUTPUT UNIT”中的数码块作为输出设备。
(4)停机指令3、指令系统复杂模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其它指令1条。
表2-3列出了各条指令的格式、汇编符号、指令功能。
四、设计环境1、ZY15Comp12BB计算机组成原理教学实验系统一台2、排线若干3、PC机一台五、设计原理复杂模型机的数据通路框图如图1。
根据机器指令系统要求,设计微程序流程图及确定微地址。
WE图1 复杂模型机数据通路框图按照系统建议的微指令格式,参照微指令流程图,将每条微指令代码化,译成二进制代码表,并将二六、设计步骤1、根据复杂模型机的指令系统,编写实验程序。
实验例程如下:本实验完全使用寄存器操作。
程序首先从数据输入开关采集数据放入R0中,经循环左移两次放入R1中。
然后再次从数据输入开关采集数据放入R0中,经循环右移一次与R1中的数据相加,其结果送到R1中,然后判断加法的结果是否有进位或为全零,若是就循环运行,否则,输出结果到数码管上显示。
实验的机器指令程序如下:地址内容助记符说明00 44 IN R0 ;INPUT数据 R0,第一次采集数据(设输入数据为14H)01 F0 RLC R0, R0 ;R0带进位左循环移位一次02 F1 RLC R0, R1 ;第二次左移后保存到R1中03 44 IN R0 ;输入开关数据→R0,第二次采集数据(设输入数据仍为14H)04 E0 RRC R0, R0 ;R0带进位右循环移位一次05 91 ADC R0, R1 ;两数据相加06 0C BZC 00 ;若有进位或结果为零,则跳到00地址单元07 0008 59 OUT R1 ;R1→ OUTPUT UNIT 显示;09 60 HALT ;停机以上程序的机器指令如下:$P0044 $P01F0 $P02F1$P0344 $P04E0 $P0591$P060C $P0700 $P0859$P0960微程序$M00018108 $M0101ED82 $M0200C050$M0300A004 $M0400E0A0 $M0500E006$M0600A007 $M0700E0A0 $M0801ED8A$M0901ED8C $M0A00A03B $M0B018001$M0C00203C $M0D00A00E $M0E01B60F$M0F95EA25 $M1001ED83 $M1101ED85$M1201ED8D $M1301EDA6 $M14001001$M15030401 $M16018016 $M173D9A01$M18019201 $M1901A22A $M1A01B22C$M1B01A232 $M1C01A233 $M1D01A236$M1E318237 $M1F318239 $M20009001$M21028401 $M2205DB81 $M230180E4$M24018001 $M2595AAA0 $M2600A027$M2701BC28 $M2895EA29 $M2995AAA0$M2A01B42B $M2B959B41 $M2C01A42D$M2D05AB6E $M2E0DAA2F $M2F01AA30$M300D8171 $M31959B41 $M32019A01$M3301B435 $M3405DB81 $M35B99B41$M360D9A01 $M37298838 $M38019801$M3919883A $M3A019801 $M3B070A08$M3C068A092、按图2-9连接实验线路,仔细检查线路无误后接通电源。
(图中箭头表示需要接线的地方,接总线和控制信号时要注意高低位一一对应,可用彩排线的颜色来进行区分)接到LOG 单元接到DATA BUS 接到ADDR BUS接到DATA BUS接到IR 单元接到SWITCH 单元接到DATA BUS 接到DATA BUS 接到DATA BUS图2-9复杂模型机实验3、写程序对于本实验箱可以用两种方法来写入程序。
方法一:联机读/写程序按照规定格式,将机器指令及微指令编辑成十六进制的规定格式文件,已经在前面列出。
使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。
本实验参考程序对应的文件名为“复杂模型机.TXT”(联机软件的使用方法参看附录2)。
方法二:手动写入(1)先将机器指令对应的微代码正确地写入28C16中,可以参照实验1.7微程序控制器的组成与微程序设计实验中微代码的写入方法,将本实验对应的微代码写入E2PR0M芯片中,对照前面的微程序内容校验正确后就可使用。
(2)使用控制台WRITE和READ微程序进行机器指令程序的手动装入和检查,其操作如下:A、使SIGNAL UNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROL UNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN”状态。
B、拨动SWITCH单元的总清开关CLR(1→0→1),微地址寄存器清零,程序计数器清零。
然后使SWITCH 单元的SWB、SWA开关设置为“01”,按动一次CONTROL UNIT的触动开关START,微地址显示灯显示“001001”,再按动一次START,微地址灯显示“001100”,此时数据开关的内容置为要写入的机器指令,按动两次START 键后,即完成该条指令的写入。
若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。
所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。
C、校验。
拨动SWITCH单元的总清开关CLR(1→0→1),微地址清零。
PC程序计数器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROL UNIT的触动开关START,微地址灯将显示“001000”,再按START,微地址灯显示为“001010”,第三次按START,微地址灯显示为“111011”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。
不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。
每次在微地址灯显示为“001000”时,是将当前地址中的机器指令写入到输出设备中显示。
4、运行程序方法一:联机运行程序首先使各个开关的状态为:SIGNAL UNIT中的SP03开关设置为“STEP”状态。
SP04开关设置为“RUN”状态;CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN”状态;SWITCH单元的开关SWB、SWA为“11”。
使SWITCH单元的总清开关CLR(1→0→1)清零后,程序首址为00H。
通过联机软件进入调试界面(其操作方法参见附录2系统联机操作软件说明),可以通过调试程序的操作界面控制程序的运行,同时观察运行过程和结果。
方法二:手动运行程序(1)单步运行程序A、使CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SIGNAL UNIT中的SP03为“STEP”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。
B、拨动SWITCH单元的总清开关CLR(1→0→1),微地址清零,程序计数器清零,程序首址为00H。
C、单步运行微指令,每按动一次CONTROL UNIT的START触动开关,即单步运行一条微指令。
对照微程序流程图2-8,观察微地址显示灯MA5-MA0是否和流程一致。
D、当运行结束后,可检查运行结果是否和理论值一致。
如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。
(2)连续运行程序A、使CONTROL UNIT的开关SP05处于“NORM”状态, SP06处于“RUN”状态,SIGNAL UNIT 中的SP03为“RUN”状态,SP04为“RUN”状态,SWITCH单元的开关SWB、SWA为“11”。
B、拨动SWITCH单元的总清开关CLR(1→0→1),微地址及程序计数器清零,然后按动CONTROL UNIT 的START触动开关,系统连续运行程序,稍后将SIGNAL UNIT中的SP04拨至“STOP”时,系统停机。
C、停机后,可检查运行结果是否正确。
如果运行结果保存在RAM的某一个单元中,则可以使用手动写入中的校验方法将其读出。
七、实验总结,心得体会经过这次课程设计我了解了很多知识,也学到了一些课本中没有的知识点,实践给我们带来了很多快乐,但是在这快乐中我们有着艰辛,在我们接完线的时候,去运行机器总是出错,我们一步一步的检查,到最后一遍又一遍的重新连线,到最后终于成功了,心里有着一般人没有的喜悦。