1、复杂模型机的设计的数据通路图完整版计算机组成原理课程设计实验报告设计题目复杂模型机的设计与实现专业班级计算机科学与技术1004指导教师日期 2013.01.10 开发小组成员组员:岂亚娟 1008030415 杨 娜 1008030418 吴兴欢 1008030401 刘 甜 1008030402 复杂模型机的设计与实现一、 课程设计目的综合运用所学计算机原理实验知识,设计并实现较为完整的计算机。二、 设计要求1、确定设计目标参考实验指导书上复杂模型机设计的过程,运用其微指令格式,独立设计指令系统。并用该指令系统中的指令编一完成简单运算的程序(有数据输入和输出的)。并进行调试运行。2、确定指令
2、系统确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。3、总体结构与数据通路总体结构设计包含确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传送路径,以及实现这些传送所需要的微命令。对于部件设置,比如要确定运算器部件采用什么结构,控制器采用微程序控制。综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,采用何种方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。4、设计指令执行流程数据通路确定后,就可以设计指令系统中每条指令的执行流程。根据指令的复杂程度,每条指令所需要的机器周期数。对于
3、微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一个微指令中,哪些微操作不能安排在同一条微指令中。5、确定微程序地址根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。6、根据微指令格式,将微程序流程中的所有微指令代码化,转化成相应的二进制代码,写入到控制存储器中的相应单元中。7、组装、调试在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整机的运行正确。当所有功能模块都调试正常后,进入总调试。连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入一段机器指令,进行其他的运行方式等功
4、能调试及执行指令的正确性验证。三、 数据格式以及指令格式1、数据格式模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下: 76 5 4 3 2 1 符 号尾 数2、指令格式模型机设计四大类指令共十六条,其中包括算术逻辑指令、IO指令、访问存储器及转移指令和停机指令。 (1) 算术逻辑指令设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:7 6 5 4 3 2 1 0OP-CODE RsRd其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:选中的寄存器(Rs或Rd)R0R1 R2 寄存器的编码000110(2) 访存指令及转移指令模型机
5、设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。其格式如下:7 6 5 4 3 21 0OP-CODEM OP-CODE Rd D其中,OP-CODE为操作码, Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:寻址方式 有效地址 说 明 00 E=D直接寻址01E=(D)间接寻址10E=(RI)+DRI 变址寻址11E=(PC)+D相对寻址本模型机规定变址寄存器RI指定为寄存器R2。(3) I/O指令输入和输出指令采用单字节指令,其格式如下:7 6 5 4 3 2 1 0OP-CODE addrR
6、D 其中,addr=01 时,表示选中“输入单元”中的开关组作为输入设备,addr=10时,表示选中“输出单元”中的数码块作为输出设备。 (4) 停机指令这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下:7 6 5 4 3 2 1 00 1 1 0 0 00 03、指令系统(1)本模型机共有16条基本指令。其中,算术逻辑指令7条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。表1列出了各条指令的格式、汇编符号、指令功能。表1 复杂模型机指令系统序号 汇编符号 指令格式 功能说明 1CLR Rd0111 00 Rd0Rd 2MOV RS,Rd1000 RS
7、 RdRSRd 3ADC RS,Rd1001 RS RdRSRdCyRd 4SBC RS,Rd1010 RS RdRSRdCyRd 5INC Rd1011 - RdRd1Rd 6AND RS,Rd1100 RS RdRSRdRd 7COM Rd1101 00 RdRdRd 8RRC RS,Rd1110 RS RdRS带进位右循环一位,RSRd 9RLC RS,Rd1111 RS RdRS带进位左循环一位,RSRd10LDA M,D, Rd00 M 00 Rd,DERd11STA M,D, Rd00 M 01 Rd,DRdE12JMP M,D00 M 10 00,DEPC13BZC M,D00
8、M 11 00,D当CY=1或ZI=1时,EPC14IN addr, Rd0100 01 RdaddrRd15OUT addr, Rd0101 10 RdRdaddr16HALT 0110 00 00停机(2)微指令格式表2 复杂模型机微指令结构图微程序242322212019181716151413121110987654321控制信号S3S2S1S0MCNWEA9A8 A B CuA5uA4uA3uA2uA1uA0 A字段B字段C字段151413控制信号121110控制信号987控制信号000000000001LDRI001RS_B001P1010LDDR1010RD_B010P2011L
9、DDR2011RI_B011P3100LDIR100299_B100P4101LOAD101ALU_B101AR110LDAR110PC_B110LDPC其中uA5uA0为6位的后继微地址,A、B、C为三个译码字段,分别由三个控制位译码出多位。C字段中的P1P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3uA0)与指令寄存器高四位(IR7IR4)相或得到各路分支;P2测试用下址低2位(uA1uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用
10、于条件转移,它用下址的uA4与(ZI +CY)相或得到各路分支;P4测试用于控制台操作,它用下址低2位(uA1uA0)与SWB、SWA相或得到各路分支。在上述各测试下址中未用到的位均直接保留。AR为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS_B、RD_B、RI_B分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。三字段中的其他位类似与此,均是某芯片的选通信号,它们的功能都是根据机器指令来进行相应芯片的选通译码。(3)微程序流程图本模型机的数据通路如图1所示。根据机器指令系统要求,设计微程序流
11、程图及确定微地址,如图2所示.工作时序波形图如图3所示指令译码器及逻辑表达式如图4所示寄存器译码器如图5所示 图3 时序波形图 如图4 指令译码器 SE1=I4T4P1+I2T4P2+P4T4SWA SE2=I5T4P1+I3T4P2+P4T4SWB SE3=I6T4P1 SE4=I7T4P1 SE5=P3T4(FC+FZ) 图5 寄存器译码器 图1 复杂模型机的设计的数据通路图 图2 微程序流程图 微地址S3CN WEA9 A8ABCuA5uA000000000011000000100001000010000000111101101100000100200000000110000000101
12、000020000000011110110110000011030000000010100000000001000400000000111000001010000040000000001110110110000101050000000011100000000001100600000000101000000000011107000000001110000010100000220000000111101101100011011500000000101000000000111016100101011110101000100101451001010110101010101000002300000001
13、111011011010011046000000001010000000100111470000000110111100001010005010010101111010100010100151100101011010101010100000240000000110010000000000012500000011000001000000000126000000011000000000010110270011110110011010000000013000000001100100100000000131000000011010001000101010520000000110110100001010
14、115310010101101100100010110032000000011010010000001101540000000110100100001011015501100101101010110110111056000011011001101000000001620000000110011010000000013400000001101000100011001163000000011011010000110101651011100110011011010000014100000010100001000000000142000001011101101110000001430000000110
15、000000111001004400000001100000000000000164000001011101101110000001110000000111101101100011001400000000001000000011110074000001101000101000001001100000000111101101100010101200000000101000000011101173000001110000101000001000130000000110000000000000013500000001101000100011011037001100011000001000111001
16、360011000110000010001101116600001101100110100000000167001010011000100000111000700000000110011000000000017100011001100010000011101072000000011001100000000001 图3 实验线路图(4)实验的接线图为: 图4 实验接线图四、 实验步骤 1、按图3连接实验线路,仔细查线无误后,接通电源。 2、编程 A.将控制台单元的编程开关SP06设置为WRITE(编程)状态。 B.将控制台单元上的SP03置为STEP,SP04置为RUN状态。 C.用开关单元的二
17、进制模拟开关设置微地址UA5UA0。 D.在微控制器单元的开关LM24LM01上设置微代码,24位开关对应24位显示灯,开关量为1时灯亮,开关量为0时灯灭。 E. 按动START键,启动时序电路,即将微代码写入到28C16的相应地址单元中。 F.重复CE步骤,将表3的微代码写入28C16中。 3、校验 A. 将编程开关SP06设置为READ(校验)状态。 B. 将实验板的SP03开关置为STEP状态,SP04开关置为RUN状态。 C. 用二进制开关置好微地址A5A0。 D. 按动START键,启动时序电路,读出微代码观察显示灯LM24LM01的状态(灯亮为“1”,灭为“0”),检查读出的微代码
18、是否与写入的相同。如果不同,则将开关置于WRITE编程状态,重新执行(2)即可4、写程序/运行程序 A. 将控制台单元上的SP03置为STEP状态,SP04置为RUN状态,SP05置为NORM状态,SP06置为RUN状态。 B.拨动开关单元的总情开关CLR(101),微地址寄存器清0,程序计数器清0。然后使开关单元的SWB、SWA开关设置为“0 1”,按动一次START,微地址显示灯显示“001001”,再按动一次START,微地址灯显示“001100”,此时数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。若仔细阅读KWE的流程,就不难发现,机器指令的首地址总
19、清后为00H,以后每个循环PC自动加1,所以,每次按动START,只有在微地址灯显示“001100”时,才设置内容,直到所有机器指令写完。 C. 写完程序后须进行校验。拨动总清开关CLR(101)后,微地址清零。PC程序计数器清零,然后使控制台开关SWB,SWA为“0 0”,按动启动START,微地址灯将显示“001000”;再按START,微地址灯显示为“001010”;第3次按START,微地址灯显示为“111011”;再按START后,此时输出单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“001000”时,是
20、将当前地址中的机器指令写入到输出设备中显示。5、运行程序。 (1)单步运行程序 使编程开关SP06处于RUN状态,SP03为STEP状态,SP04为RUN状态,SP05为NORM状态,开关单元的SWB,SWA为“1 1”。 拨动总清开关CLR(101),微地址清零,程序计数器清零,程序首址为00H。 单步运行一条微指令,每按动一次START键,即单步运行一条微指令。对照微程序流程图,观察微地址显示灯是否和流程一致。 当运行结束后,可检查运行结果是否和理论值一致。 (2)连续运行程序 使编程开关SP06处于RUN状态,SP03为RUN状态,SP04为RUN状态,SP05为NORM状态,开关单元的
21、SWB,SWA为“1 1”。 拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将SP04拨至“STOP”时,系统停机。停机后,可检查运行结果是否和理论值一致。提示:1.联机运行能测试新功能,只限复杂模型机。2.装在指令集微指令后就需运行(做其他可能会覆盖代码)。3.需要有运行程序方法4.SWA,SWB必须为11状态。五、系统测试实验程序如下:采用机器指令:IN,ADD,STA,OUT,JMP,LDA,RLC,BZC,HLAT,MOV,COM,RRC,CLR,ADC,SBC地址 内容 助记符 说明00 44 IN 01,R0 输入0201 BO INC R0 02
22、 81 MOV R0,R1 03 72 CLR R2 05 E4 RLC R1,R206 96 RRC R1,R007 A8 ADC R1.R208 D2 SBC R2,R0 09 C2 AND R0,R20A 00 LAD 00,19,R00B 19 (19)=090C 11 LDA 01,1A,R10D 1A (1A)=20,(20)=030E 22 LDA 10,1B,R2 0F 1B (1B)=1810 58 OUT 10,R0 11 08 JMP 60H12 60 HALT 停机 微程序$M00018108$M0101ED82$M0200C050$M0300A004$M0400E0A
23、0$M0500E006$M0600A007$M0700E0A0$M0801ED8A$M0901ED8C$M0A00A03B$M0B018001$M0C00203C$M0D00A00E$M0E01B60F$M2205DB81$M230180E4$M24018001$M2595AAA0$M2600A027$M2701BC28$M2895EA29$M2995AAA0$M2A01B42B$M2B959B41$M2C01A42D$M2D65AB6E$M2E0D9A01$M2F01AA30$M0D00A00E$M0E01B60F$M0F95EA25$M1001ED83$M1101ED85$M1201ED8
24、D$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$M2D65AB6E$M2E0D9A01$M2F01AA30$M300D817
25、1$M31959B41$M32019A01$M3301B435$M3405DB81$M35B99B41$M360D9A01$M37298838$M38019801$M3919883A$M3A019801$M3B070A08$M3C068A09六、结束语 这次课程设计本来的要求是要花上两周的时间来设计及完成,如果要认认真真的完成者实验,在了对设计题目的理解和分析之上就要花很长的时间。因为刚开始接触题目的时候比较茫然,不知道改如何下手,但是仔细的分析之后,对实验的基本要求还是有了一定的理解,本来这次的实验要很认真的完成的。 在设计过程中,我们是以四人一组搭档实验的,但是在试验的过程,一开始我们以为是按实验指导书的要求去做,觉得很简单,但是就是指导书的简单实验我们也犯下了一些小错误,是接线方面的小错误,好在改完后可以顺利的按照实验书上要求的运行。 通过本课程设计,加深对计算机系统各模块的工作原理及相互联系的认识,特别是对微程序控制器的理解,进一步巩固所学的理论知识,并提高运用所学知识分析和解决实际问题的能力;锻炼计算机硬件的设计能力、调试能力;培养严谨的科学实验作风和良好的工程素质,为今后的工作打下基础。在以后的学习中,我们还应该不断的完善自己的知识体系结构,注意理论与实践的结合,学以致用。开发的同时,和同学们之间的相互探讨也使我获益匪浅。短
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1