您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基本模型机的设计与实现和带移位运算的模型机的设计及实现
课程设计报告纸-第1页共22页一、基本模型机的设计与实现(一)实验目的:1、清晰地建立计算机的整机概念,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。2、为其定义五条机器指令:IN、ADD、STA、OUT、JMP,并编写相应的微程序,具体上机调试掌握整机概念。3、学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。(二)、实验设备TDN-CM+计算机组成原理教学实验系统一台。(三)、实验原理本实验定义五条机器指令:IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下:助记符机器指令码说明IN00000000“INPUTDEVICE”R0ADDaddr00010000××××××××R0+[addr]R0STAaddr00100000××××××××R0[addr]OUTaddr00110000××××××××[addr]BUSJMPaddr01000000××××××××addrPC其中IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。为了向RAM写入、读出机器指令,并能启动程序执行,还须设计三个控制台操作微程序。存储器读(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。存储器写(KWE):拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM连续手动写操作。启动程序(RP):拨动总清开关CLR后,控制台开关SWB、SWA为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运课程设计报告纸-第2页共22页行。上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:微代码定义如下表:242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8ABCuA5uA4uA3uA2uA1uA0SWBSWA控制台指令00读内存(KRD)01写内存(KWE)11启动程序(RP)121110选择000001RS-B010011100101ALU-B987选择000001P(1)010011100P(4)101110LDPC121110选择000001RS-B010011100101ALU-B110PC-BB字段C字段A字段课程设计报告纸-第3页共22页根据以上要求设计数据通路框图如下:系统涉及到的微程序流程见下图,当拟订“取指”微指令时,该微指令的判别字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1)的测试结果出现多路分支。本机用指令寄存器的前4位(IR7-IR4)作为测试条件,出现5路分支,占用5个固定的微地址单元。控制台操作为P(4)测试,它以控制台开关SWB,SWA作为测试条件,出现了三路分支,占用3个固定的微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用控存微地址单元随意填写。微程序流程图:课程设计报告纸-第4页共22页运行微程序课程设计报告纸-第5页共22页当全部微程序设计完毕后,应将每条微指令代码化,下图即为微程序流程图按微指令格式转化而来的“二进制微代码表”。微地址S3S2S1S0MCnWEA9A8ABCuA5------uA000000000011000000100010000010000000111101101100000100200000000110000000100100003000000001110000000000100040000000010110000000001010500000001101000100000011006100101011001101000000001070000000011101101100011011000000000011011011000000111000000011110110110000011120000000111101101100001111300000001111011011000111014000000011110110110010110150000001010000010000000011600000000111000000000111117000000001010000000010101200000000111101101100100102100000001111011011001010022000000001010000000010111230000000110000000000000012400000000001000000001100025000001110000101000000001260000000011010001100000012700000111000010100001000030000001101000101000010001指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试[P(1)],通过节拍脉冲T4的控制以便课程设计报告纸-第6页共22页识别所要求的操作。“指令译码器”根据指令中的操作码译码强置微控器单元的微地址,使下一条微指令指向相应的微程序首地址。本系统有两种外部I/O设备,一种二进制代码开关,它作为输入设备;另一种是数码块,它作为输出设备。例如:输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线上,当写信号有效时,将数据打入输出锁存器,驱动数码块显示。(四)、实验前准备1、机器指令程序本实验中,我修改设计后的机器指令程序如下:地址内容助记符说明0000000000000000IN“INPUTDEVICE”R00000000100010000ADD[0AH]R0+[0AH]R000000010000010100000001100100000STA[0BH]R0[0BH]00000100000010110000010100110000OUT[0BH][0BH]BUS00000110000010110000011101000000JMP[00H]00HPC0000100000000000000010010000101000000101自定00001011求和结果2、程序文件A、机器指令格式说明:$××××B、微指令格式说明$××××××××机器指令代码十六进制地址微指令代码十六进制地址课程设计报告纸-第7页共22页C、按照规定格式,将机器指令及微指令二进制表编辑成十六进制的如下格式文件。程序:说明:$P0000//IN“INPUTDEVICE”→R0$P0110//ADDR0+[0AH]→R0$P020A$P0320//STA[0BH]R0→[0BH]$P040B$P0530//OUT[0BH][OBH]→BUS$P060B$P0740//JMP[O0H]00H→PC$P0800$PO920$P0A01$M00108101$M0182ED01$M0248C000$M0304E000$M0505B000$M0506A201$M06019A95$M07ODEOOO$M08011000$M0983ED01$M0A87ED01$M0B8EED01$M0C96ED01$M0DO18202$M0E0FE000$M0F15A000$M1092ED01$M1194ED01$M1217A000$M13018001$M14182000$M15010A07$M1681D100$M17100A07$M18118A063、理论值的计算A、置数我将INPUTDEVICE中的数置为了00000011,将[0AH]中的数置为了00000101。分别在IUPUTDEVICE输入端改变开关和程序中置入。注意在给INPUTDEVICE置数时,灯亮为0,灯灭为1。课程设计报告纸-第8页共22页B、计算第一步,将00000011值赋给R0,即R0为00000011,转化为十六进制为03;第二步,将RO+[0AH]→R0,即RO为00001000,转化为十六进制为08;第三步,将R0→[0BH],即将R0的值给[OBH],R0无变化;第四步,将[0BH]→总线,R0无变化。因为程序完成的是加法,即ADD指令,所以结果为:[0AH]+R0的值,00000101+00000011=00001000(五)、实验步骤1、按下页所示接线图连接实验线路2、写程序我们应用的是联机读写程序,方法比手动写入要简单很多。具体方法如下:A、按照规定格式,将机器指令及微指令二进制表编辑成十六进制的文件如上所写。B、将文件放在实验系统文件夹的根目录下,更改文件后缀名为.BAK,然后打开系统EXE文件,选择LOAD,将程序文件载入即可。在载入时,注意“INPUTDEVICE”的重新置数即设备的清零。3、运行程序1)单步运行程序A、将STEP置为STEP,STOP置为RUN。B、拨动总清开关CLR(0→1),微地址清零,微程序计数器清零。程序首地址00H。C、在实验程序软件载入数据后,选择DEBUG,进入界面后按照提示按F2键,即单步运行一条微指令。可以观察机器的运行过程,以加深对计算机执行指令过程的了解。D、运行结束后,可检查存数单元中的结果是否和理论值一致。2)按指令运行A、将STEP置为STEP,STOP置为RUN。B、拨动总清开关CLR(0→1),微地址清零,微程序计数器清零。程序首地址00H。C、在实验系统载入数据后,选择DEBUG。D、在运行界面下按动F1,即系统自动按照指令阶段运行,对照微程序课程设计报告纸-第9页共22页流程图,观察微地址显示灯是否和流程一致,观察屏幕上显示的每一步的运行结果是否与计算的出的理论值相符。3)连续运行A、将STEP置为STEP,STOP置为RUN。B、拨动CLR开关,清微地址及程序记数器C、然后在实验系统载入数据后.按下F3键,即可停机后,可检查存数单元(OAH)结果是否正确。实验接线图(六)、实验结果1、结论课程设计报告纸-第10页共22页按指令运行一条微指令,每按动一次F1,待运行结束后可观察到理论值与实际观察到的值相符。2、程序流程图3、部分实验截图INPUTDEVICE→R0R0+[0AH]R0R0→[0BH][0BH]BUS00H→PC课程设计报告纸-第11页共22页这是程序运行的初始状态,执行的是IN指令。运行结果是将INPUT中的数值赋给R0,由图可以看到,RO的值变为了03。这次执行的是ADD指令,由图可以看出,R0的值变为了08,即为R0+[0AH]后的结果。课程设计报告纸-第12页共22页上图是执行R0[0BH]后的结果,可以看到R0的值被传输到了RAM。这部执行的指令是OUT,作用是[OBH]→BUS,即将结果放到总线上输出,由图可知,输出的最后结果为08。课程设计报告纸-第13页共22页在其他指令结束之后,将PC的值变为初始值。指向地址的首位。如图中的PC值变为了00。二、带移位运算的模型机的设计及实现(一)、实验目的1、熟悉用微程序控制器控制模型机的数据通路。2、学习设计与调度计算机的基本步骤及方法。(二)、实验设备CCT—IV计算机组成原理教学实验系统一台,排线若干。(三)、设计要求1、理解CPU模型结构。2、分析给出的机器指令的功能。3、在CPU的模型图上画出每条指令的执行流程,并分析相应的微程序控制信号序列,理解各条微指令的编码意义。4、编写一个程序使其能够完成RRC、RLR、RR和RL等四种移位操作。(四)、实验原理本实验在上述实验中的基本模型机的基础上搭建移位控制电路,实现移位控制运算。实验中增加了4条移位指令:RL(左循环)、RLC(代进位左循环)、RR(右循环)、RRC(
本文标题:基本模型机的设计与实现和带移位运算的模型机的设计及实现
链接地址:https://www.777doc.com/doc-5663266 .html