精华内容
下载资源
问答
  • 里面包括实验中的机器码和微指令码, 稍后会上传带有汇编注释的机器码
  • 完整的计算机组成原理复杂模型机课程设计,内含微指令代码,流程图
  • 计算机组成原理课程设计复杂模型机设计,应用程序指令代码,计算大于10的数的个数
  • 计算机组成原理课程设计:复杂模型机

    千次阅读 多人点赞 2021-02-07 15:29:30
    设计题目: 复杂模型机 目 录 1、课程设计任务书 3 1.1设计任务 3 1.2性能指标和设计要求 3 2、本设计的模型机体系结构及功能 4 2.1 模型机的体系结构 5 2.2 模型机所具有的基本功能 5 3、 模型机硬件设计 5 3.1 ...

    课程设计报告

    课程名称: 计算机组成原理
    设计题目: 复杂模型机

    目 录

    1、课程设计任务书 3
    1.1设计任务 3
    1.2性能指标和设计要求 3
    2、本设计的模型机体系结构及功能 4
    2.1 模型机的体系结构 5
    2.2 模型机所具有的基本功能 5
    3、 模型机硬件设计 5
    3.1 模型机总体结构设计 5
    3.2 模型机的硬件设计 6
    3.3 模型机数据通路的设计
    4、模型机机器指令系统设计 7
    4.1 指令设计 8
    4.2 指令格式 9
    4.3 指令系统
    5、模型机控制器微程序设计 10
    5.1 机器指令周期分析 10
    5.2 模型机硬件译码电路 11
    5.3 微程序流程图设计 12
    5.4 微指令格式设计 12
    5.5 微指令编码设计 14
    5.6 微指令地址及控存存储设计 14
    6、模型机功能测试 15
    6.1机器指令功能调试 15
    6.2整机功能测试 16
    7、结论 17
    致 谢 18
    附 录 18
    附录1 18
    附录2 20
    参考文献 22

    1、课程设计任务书

    1.1设计任务

    • 基本模型机的设计与实现
    • 在基本模型机的的基础上设计一台复杂模型机

    1.2 性能指标和设计要求
            利用所学过的理论知识,特别是微程序设计的思想,设计基于微程序控制器的模型计算机,包括设计相应的硬件平台、机器指令系统和微指令等。设计环境为TD-CMA计算机组成原理教学实验箱、微机,联机软件等。同时设计好基于模型机的测试验证程序,并在设计好的硬件平台上调试通过,以验证所设计的模型机功能的可行性与可靠性。在设计完成的前提下,撰写出符合要求的课程设计说明书并通过设计答辩。

    1.基本模型机设计与实现
            设计一台简单模型机,在具备基本必要的硬件平台的基础上,进一步要求其机器指令系统至少要包括五条不同类型指令:如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条输出指令(假设助记符为OUT)、一条无条件转移指令(假设助记符为JMP)和一条停机指令(假设助记符为HLT) ; 在设计好的模型机基础上,设计一个进行两个数求和运算的测试验证程序,用以验证模型机功能的可行性与可靠性。

    2.在任务1的基础上,增加机器指令系统的功能,设计具有不少于10条机器.指令的复杂指令系统模型机,包含算术逻辑指令、访问内存指令、控制转移指令、输入输出指令、停机指等令。数据的寻址方式采用寄存器直接寻址。利用设计的复杂模型机实现两个数的减法运算并判断差得正负,差为正数则输出A,差为负数则输出B,差为零则输出C。在设计好的模型机基础上,进一步设计-个测试验证程序,验证模型机功能的可行性与可靠性。

    3、基本模型机和复杂模型机的CPU数据字长为8位,采用定点补码表示。指令字长为8的整数倍。微指令字长为24位。

    2、本设计模型机体系结构及功能

    2.1 模型机的体系结构
            依据计算机系统的层次结构,本次设计的模型机可简化为图1所示的四层结构。我们需要对每一个层次进行设计和实现。
    在这里插入图片描述

             对于最上层的应用程序,本次设计需要设计一个应用程序的测试实例来验证下面三层构成的模型机的功能可行性与可靠性。

    2.2模型机所具有的基本功能
             本模型机共设计三大类指令,其中包括运算类指令,控制转移类指令,数据传送类指令。运算类指令包含三种运算,算术运算,逻辑运算和移位运算。数据转移类指令包含访问内存指令、输入输出指令等,控制类指令包括停机指令等。实现的功能如:两寄存器的内容相加减,寄存器中数据的移位,外设与寄存器内容交换等多种功能。

    3、模型机硬件设计

    3.1 模型机总体结构设计
             总体结构设计包括确定模型机应具有的基本功能部件以及它们之间的数据通路。根据课堂中所掌握的知识我们可以知道,计算机是由五大部件组成,包括:运算器,控制器,存储器,输入设备和输出设备。所以我们在设计硬件时基于所给出的实验平台选出我们所需要的五大部件(其中包括一些必要的寄存器件)。根据课堂上掌握的只是我们可以知道计算机中总线类型分为: 数据总线,地址总线,控制总线。因此我们在连接线路时脱离不了这三大类型相应的信号(数据信号,地址信号,控制信号)。并且我们根据冯诺依曼机的特点可以知道,计算机的指令在内存中按照其执行顺序存放,并且对于微程序控制器的计算机,控存中必须有固化的微指令。

    3.2模型机的硬件实现
             在本次设计中,硬件的实现基于已给出的实验平台,并根据我们所设计的模型机选择具有控制数据通路开关的必须元器件,通过接插线(各种连线等)将具有控制数据通路的相关引脚进行器件连接,组成所设计的模型机硬件系统(物理机)。

    3.3模型机数据通路的设计
             在上面总体结构和硬件实现的基础上,我们组根据各部件之间的逻辑组成关系并综合考虑计算机的速率以及可靠性等各方面因素,设计出合理的数据通路结构。数据通路的不同,执行指令所需要的逻辑操作也就不同,计算机的结构也就不同。在此基础上,在后面的微指令设计阶段,就可以依据数据通路关系确定模型机工作过程中的所有微操作,并进- -步确定微指令格式中的相应微命令。本模型机的硬件实现电路如下图所示:
    在这里插入图片描述

    图中MC单元(控制器)与其右侧的三个单元之间以及ALU&REG单元间的连线均为本模型机中数据通路的控制开关的引脚,控制相关微命令从而执行对应的微操作。本模型机的数据通路框图:
    在这里插入图片描述

    4、模型机机器指令系统设计

    4.1指令设计
             模型机设计三大类指令共十六条,其中包括运算类指令、控制转移类指令,数据传送类指令。运算类指令包含两种运算,算术运算、逻辑运算,设计有5条运算类指令,分别为: ADD、AND、INC、 SUB、OR,所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。控制转移类指令有三条HLT、 JMP、BZC,指令。数据传送类指令有IN、 OUT、 MOV、LDI、 LAD、STA、 PUSH、 POP共6条,用以完成寄存器和寄存器、寄存器和I/0、 寄存器和存储器之间的数据交换,除MOV指令为单字节指令外,其余均为双字节指令。

    4.2指令格式

    所有单字节指令(ADD、 AND、INC、 SUB、OR、RR、 HLT和MOV)格式如下:
    在这里插入图片描述

    其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定:
    在这里插入图片描述

    IN和OUT的指令格式为:
    在这里插入图片描述

    其中括号中的1表示指令的第一字节,2表示指令的第二字节,OP-CODE为操作码, RS为源寄存器,RD为目的寄存器,P为I/O端口号,占用一个字节,系统的I/O地址译码原理见图5-3-1 (在地址总线单元)。
    在这里插入图片描述

    由于用的是地址总线的高两位进行译码,I/O地址空间被分为四个区,如表5-3-1所示:
    在这里插入图片描述

    系统设计五种数据寻址方式,即立即、直接、间接、变址和相对寻址,LDI指令为立即寻址,LAD、STA、JMP和BZC指令均具备直接、间接、变址和相对寻址能力。
    LDI的指令格式如下,第-字节同前一样,第二字节为立即数。
    在这里插入图片描述

    LAD、STA、JMP和BZC指令格式如下。
    

    在这里插入图片描述

    其中M为寻址模式,具体见表5-3-2,以R2做为变址寄存器RI。
    

    在这里插入图片描述

    4.3指令系统
            本模型机共有15条基本指令,表5-3-3列出了各条指令的格式、汇编符号、指令功能。
    在这里插入图片描述

    5、模型机控制器微程序设计

    5.1机器指令周期分析
             根据课堂所掌握的知识,我们可以知道机器指令周期可以分为两部分:取指周期和执行周期。在本模型机中不同的机器指令取指周期都是相同的,都需要经过两个CPU周期和P<1>测试。其中,两个CPU周期在数据通路.上先后完成PC->AR,PC+1和MEM->IR的控制和传送操作;在P<1>测试阶段,对机器指令的操作码进行测试,确定指令实现的功能。对于执行周期,每个机器指今执行过程互不相同,所经过的CPU周期数以及在不同周期对应的数据通路操作也不尽相同。设计过程中,我们组根据每- -条机器指令所要实现的功能,设计出其在执行过程中每个CPU周期在数据通路上完成的操作,并绘制出它的微程序流程图。

    5.2模型机硬件译码电路
            和前面的实验相比,复杂模型机实验指令多,寻址方式多,只用一种测试已不能满足设计要求,为此指令译码电路需要重新设计。如图5-3-3所示在IR单元的INS、DEC 中实现。
    在这里插入图片描述

    其中,|[7] ~ |[0]为机器指令的第7位到第0位, T4表示在T4为高电平时有效。本实验用到4个通用寄存器R0~R3,对寄存器的选择是通过指令的第四位,为此还得设计一个寄存器译码电路:
    在这里插入图片描述

    5.3微程序流程图设计
             微程序流程图与方框图表示的指令的指令周期是一致的,一个方框是一个CPU周期,-一个CPU周期对应一条为指令。
    在这里插入图片描述

    5.4微指令格式设计

    ①由上述程序流程图可知,本模型机共用到了60条微指令,所以直接微地址需要6位
    ②控制数据通路开关的为命令共有16种(包括3种P测试),但考虑本机硬件上最大支持24位的微指令,若用直接表示法,微指令字较长, 24位可能不够,因此本模型机采用混合表示法;考虑到后期拓展及同组互斥的性质,将上述的微命令分到A,B,C三个字段中,每个字段长3位。
    ③模型机中有针对运算器的操作,因此需要5位控制参数CN和S3~S0控制运算器的工作方式
    ④模型机中有针对主存及外设的操作,所以需要3位微命令I0/M, WR和RD,分别表示针对外设/主存,读操作或写操作。
    综上所述,我们所设计的模型机的微指令字长应为23位,但综合考虑到后后期功能的拓展以及设计.上的便捷,所以我们决定将字长拓展至24位。
    微指令格式如下所示:

    在这里插入图片描述

    5.5微程序编码设计
    微指令中A、B、C三个字段的编码方案如下表:
    在这里插入图片描述

    其中,M23为补充位,无效,置为0;I0M位置0时为主存,置1时为I0外设;WR和RD置1时有效,置0时无效。
    

    5.6微指令地址及控存存储器设计
             首先确定取值过程中两条微指令在控存中地址,以及第二条指令的直接微地址。其次,在此模型机中,所有机器指令执行过程中第一条微指令所在的微地址由P<1>测试前的默认微地址和机器指令操作码经P<1>测试后决定;其次,执行过程中最后-条微指令的直接地址应该设为第-条取值微指令所在的微地址;然后,设置其余微指令所在的微地址,我们组采用的方法为对于每一道微程序,若不存在P<2>和P<3>测试,则入口地址从低到高从上向下为每条微指令分配微地址,因为下一条微指令的微地址即为上一条微指令的直接微地址,若存在P<2>或P<3>测试,则还应通过译码电路来求其后续微地址;最后,分配完微地址后,将所有微指令写入控存对应的位置中。对于控存的要求,控存的容量至少要等于所有微指令的个数,即控存的位数应大于等于直接微地址的位数。

    6、模型机功能测试

    6.1整机功能调试
            本次课程设计一个复杂指令模拟计算机,其硬件系统的组成必须包含CPU、主存、输入输出系统,当然还有连接这些部件的系统总线。CPU又进- -步由运算器和控制器以及各种寄存器等组成。对于微程序控制器的计算机,控制存储器中必须预先固化相应的微指令。依据各部件之间的逻辑组成关系,设计出模型机的总体结构和数据通路。复杂指令模型机硬件连线如下图所示。

    复杂模型机数据流向图如下
    在这里插入图片描述

    6.2机器指令功能调试
             在本次课程设计中,我们小组一共设计了16条指令,其中DDEC和DAB指令具有递减二、得出两数大小关系的功能。对于DDEC指令,我们是在DEC原指令的基础上修改的。在原来的DEC中,存储在R0中的数据送入ALU单元进行递减操作后,会立马送回R0,在这里我们修改了最后一条微指令,当在ALU单元完成了递减操作后,送入R0,然后又继续送入ALU单元,进行递减操作,最后送入R0,之后再提起下一条指令。
    在这里插入图片描述

             在设计下一条比较两数大小关系指令的时候,我们遇到了非常多的困难。其中在按照地址转移的一个跳转指令遇到了难题。系统无法按照理想的情况跳转到应该去的地方。后面请教了老师和同学,才把问题搞懂。这条指令的格式为DAB A ,B,得出结果:如果A>B,则输出B,A<B,则输出A,若两数相等,则输出C。这条指令的设计我们采取的方案是融合多条指令,合并成一条指令。简而言之,需要先写出多指令的算法,然后把这些多指令的微指令连续的拼接在一起。我们采取的算法是:从IN单元分别输入两个数,分别存储在R0,R1,然后同时送入ALU单元进行相减,根据是否产生借位筛选出一种情况(这里筛选出的是大于),然后将两数还原,再同时送入ALU单元,进行相减操作(注意此时两数的位置发生了交换),进行同样的借位判断,筛选出一种情况,同时另一种情况也就筛选出来了。

    7、结论

             在本次课程设计中,学会了简单模型机和复杂模型机的设计,同时也对微指令有了更加深刻的了解。在课设初期,我们组先验证简单模型机的工作原理和微指令对程序运行的控制。在第一次验证的原理的时候,总是得不出正确答案。多次验证程序和微指令并确保无误后,检查连线,发现有条线居然忘连了。后面为了保证程序可以正确运行,我们又重新插了一次线,确保无误后,编译并运行程序。最终,终于得出正确结果。之后我们在CMA软件上对程序的每一步进行原理学习,力求搞懂每一步为什么要这样?对于一些难题,我们采取小组讨论和询问同学、老师的办法。最后,我们用了一天的时间完成了简单模型机的验证。在课程设计的第二天,我们开始进行复杂模型机的原理验证,在第一天的教训下,我们组对每一个环节进行了严格的审查,最终仅用了一上午的时间完成了复杂模型机的原理验证。在下午,我们便开始了进行新指令的设计和测试程序的设计。但是期间在微指令这块遇到了一个难题,就是我们的程序只可以单步执行,不可以连续执行。在查找一下午的原因后,我们发现原来是实验箱的问题,并非是程序的问题。在第三天我们的任务便是完成整机测试和编写答辩材料。通过本次课设,自己也是学到了很多,特别是在团队合作方面,为今后的团队工作提供了一定的团队经验。

    8、致谢

             在本次计算机组成原理课程设计中,还是非常感谢同学们和老师的帮助。在开始的简单模型机的原理论证方面,自己在P测试上面遇到了困难,对其工作原理不是很了解。后来经过同学们一番讲解后,自己才理解了P测试的正确意思。在后面的微指令与程序指令的联系时,开始的时候也是云里雾里,好在当时老师给我指点迷津,这才让我们更快的完成复杂模型机的论证。

    9、附录

    附录一
    DINC指令整机测试代码和微指令集合

    $P 00 20;IN R0,00H
    $P 01 00  
    $P 02 30;OUT 40H,R0 
    $P 03 40 
    $P 04 70;DDEC R0 
    $P 05 30;OUT 40H,R0 
    $P 06 40 
    $P 07 50;HALT
    
    $M 00 000001 ;NOP 
    $M 01 006D43 ;PC->AR, PC加1 
    $M 03 107070 ; MEM->IR, P<1> 
    $M 04 002405 ; RS->B 
    $M 05 04B201 ; A加B->RD 
    $M 06 002407 ; RS->B 
    $M 07 013201 ; A与B->RD 
    $M 08 106009 ; MEM->AR 
    $M 09 183001 ; IO->RD 
    $M 0A 106010 ; MEM->AR 
    $M 0B 063201 ; 
    $M 0C 103001 ; MEM->RD 
    $M 0D 200601 ; RD->MEM
    $M 0E 005341 ; A->PC 
    $M 0F 0000CB ; NOP, P<3> 
    $M 10 280401 ; RS->IO 
    $M 11 103001 ; MEM->RD 
    $M 12 063238 ; A减1->RD 
    $M 13 002414 ; RS->B 
    $M 14 05B201 ; A减B->RD 
    $M 15 002416 ; RS->B 
    $M 16 01B201 ; A或B->RD 
    $M 17 002418 ; RS->B 
    $M 18 02B201 ; A右环移->RD 
    $M 1B 005341 ; A->PC 
    $M 1C 10101D ; MEM->A 
    $M 1D 10608C ; MEM->AR, P<2> 
    $M 1E 10601F ; MEM->AR 
    $M 1F 101020 ; MEM->A 
    $M 20 10608C ; MEM->AR, P<2> 
    $M 28 101029 ; MEM->A 
    $M 29 00282A ; RI->B 
    $M 2A 04E22B ; A加B->AR
     $M 2B 04928C ; A加B->A, P<2> 
    $M 2C 10102D ; MEM->A 
    $M 2D 002C2E ; PC->B 
    $M 2E 04E22F ; A加B->AR 
    $M 2F 04928C ; A加B->A, P<2> 
    $M 30 001604 ; RD->A 
    $M 31 001606 ; RD->A 
    $M 32 006D48 ; PC->AR, PC加1 
    $M 33 006D4A ; PC->AR, PC加1 
    $M 34 003401 ; RS->RD 
    $M 35 000035 ; NOP 
    $M 36 006D51 ; PC->AR, PC加1 
    $M 37 001612 ; RD->A 
    $M 38 00160B ; RD->A 
    $M 39 001615 ; RD->A 
    $M 3A 001617 ; RD->A 
    $M 3B 000001 ; NOP 
    $M 3C 006D5C ; PC->AR, PC加1 
    $M 3D 006D5E ; PC->AR, PC加1 
    $M 3E 006D68 ; PC->AR, PC加1 
    $M 3F 006D6C ; PC->AR, PC加1
    

    附录二
    两数比较大小整机测试代码和对应微指令

    $P 00 20;IN R0,00H 
    $P 01 00 
    $P 02 21;IN R1,00H 
    $P 03 00
    $P 04 81;SUB R0,R1 
    $P 05 F0;BZC case1 
    $P 06 0C 
    $P 07 62;LDI R2,0AH 
    $P 08 0A 
    $P 09 38;OUT 40H,R2 
    $P 0A 40 
    $P 0B 50;HALT 
    $P 0C 01;case1:ADD R1,R0 
    $P 0D 84;SUB R0,R1 
    $P 0E F0;BZC case2 
    $P 0F 15 
    $P 10 62;LDI R2,0BH 
    $P 11 0B 
    $P 12 38;OUT 40H,R2 
    $P 13 40 
    $P 14 50;HALT 
    $P 15 62;LDI R2,0CH 
    $P 16 0C 
    $P 17 38;OUT 40H,R2 
    $P 18 40 
    $P 19 50;HALT
    
    $M 00 000001 ;NOP 
    $M 01 006D43 ;PC->AR, PC加1 
    $M 03 107070 ; MEM->IR, P<1> 
    $M 04 002405 ; RS->B 
    $M 05 04B201 ; A加B->RD 
    $M 06 002407 ; RS->B 
    $M 07 013201 ; A与B->RD 
    $M 08 106009 ; MEM->AR 
    $M 09 183001 ; IO->RD 
    $M 0A 106010 ; MEM->AR 
    $M 0B 000001 ; NOP 
    $M 0C 103001 ; MEM->RD 
    $M 0D 200601 ; RD->MEM
    $M 0E 005341 ; A->PC 
    $M 0F 0000CB ; NOP, P<3> 
    $M 10 280401 ; RS->IO 
    $M 11 103001 ; MEM->RD 
    $M 12 063201 ; A加1->RD 
    $M 13 002414 ; RS->B 
    $M 14 05B201 ; A减B->RD 
    $M 15 002416 ; RS->B 
    $M 16 01B201 ; A或B->RD 
    $M 17 002418 ; RS->B 
    $M 18 02B201 ; A右环移->RD 
    $M 1B 005341 ; A->PC 
    $M 1C 10101D ; MEM->A 
    $M 1D 10608C ; MEM->AR, P<2> 
    $M 1E 10601F ; MEM->AR 
    $M 1F 101020 ; MEM->A 
    $M 20 10608C ; MEM->AR, P<2> 
    $M 28 101029 ; MEM->A 
    $M 29 00282A ; RI->B 
    $M 2A 04E22B ; A加B->AR
     $M 2B 04928C ; A加B->A, P<2> 
    $M 2C 10102D ; MEM->A 
    $M 2D 002C2E ; PC->B 
    $M 2E 04E22F ; A加B->AR 
    $M 2F 04928C ; A加B->A, P<2> 
    $M 30 001604 ; RD->A 
    $M 31 001606 ; RD->A 
    $M 32 006D48 ; PC->AR, PC加1 
    $M 33 006D4A ; PC->AR, PC加1 
    $M 34 003401 ; RS->RD 
    $M 35 000035 ; NOP 
    $M 36 006D51 ; PC->AR, PC加1 
    $M 37 001612 ; RD->A 
    $M 38 001613 ; RD->A 
    $M 39 001615 ; RD->A 
    $M 3A 001617 ; RD->A 
    $M 3B 000001 ; NOP 
    $M 3C 006D5C ; PC->AR, PC加1 
    $M 3D 006D5E ; PC->AR, PC加1 
    $M 3E 006D68 ; PC->AR, PC加1 
    $M 3F 006D6C ; PC->AR, PC加1
    
    展开全文
  • 哈工程计算机组成实验——复杂模型机的设计
  • 大学 计算机组成原理 课程设计 要求设计一台复杂模型机,使用proteus进行仿真,里面含有源代码,微程序,以及结构图,能够完整运行。
  • 复杂模型机设计

    千次阅读 2009-02-21 00:07:00
    模型机,指令系统要求有 10 条以上,并编写相应的微指令,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。   三、原理图 1. 8 位模型机组装电路图   2. 8 位...

     

    一、课程设计目的

    经过一系列硬件课程如计算机原理的学习及相关实验后,综合应用所学理论知识解决实际设计和应用问题,进行一个综合的系统的实验。

    培养实际动手能力,进一步提高硬件设计能力。培养实事求是和严肃认真的工作态度。

    通过设计过程,熟悉和掌握微机系统的硬件设计方法、设计步骤,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力。

     

    二、硬件课程设计的内容

    搭建一台8位模型机,指令系统要求有10条以上,并编写相应的微指令,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。

     

    三、原理图

    1. 8位模型机组装电路图

     

    2. 8位模型机的时序图

     

    3. 微程序入口地址形成

    P1)是用来译码指令寄存器的I7I6I5I4 ,用于一般指令,微程序入口址为OP+10

    P2)是用来译码指令寄存器的I3I2 ,用于不同寻址方式指令,入口地址转OP+20

    P3)是用来译码判断标志位CZ ,用于条件转移指令,条件成立转OP+30H,条件不成立转OP+20

    P4)是用来译码控制台操作的SWBSWA ,用于手动操作。

     

    4. 寄存器地址译码电路

    四、设计模型机的思路

    分析给定的指令系统中的每一条指令所要完成的功能,写出执行过程中每步需要的微命令

    设计每条机器指令的执行流程。再组合成一个完整的系统微程序流程

    根据设计好的微程序流程图写出每一步对应的微指令。然后把微程序输入控制存储器。

    可以在此系统上进行编程,检验所设计的系统是否正确和完善。

     

    五、设计模型计算机的过程

    1、确定设计目标:确定所设计计算机的功能和用途。

    2、确定指令系统:确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。

    2-1. 数据格式8位:

           7

    6  5  4  3  2  1  0

    符号

                 

     

    2-2. 指令系统及指令格式:

       指令系统包括:算术逻辑运算指令、访存指令、控制转移指令、I/O指令、停机指令。

    1)、算术逻辑运算指令格式:

    7   6   5   4

    3   2   

    1   0

    OP--CODE

    RS

    RD

    2)、访存指令及转移指令格式:

    7    6

    5   4

    3   2

    1   0

    0 0

    M

    OP--CODE

    RD

    D

    3)、I/O指令格式:

    7   6   5   4

    3   2  

    1   0

    OP--CODE

    ADDR

    RD

    4)、停机指令:

    7   6   5   4

    3   2  

    1   0

    OP--CODE

    00

    00

    其中RS RDR0R1R2中之一 ,DATA为立即数,ADDR为内存地址。

     

     

     

     

    3、指令系统:

    助记符号

    指令格式

    功能

    MOV R1,R2

    0110

    RS

    RD

    (R1)->R2

    ADD R1,R2

    0101

    RS

    RD

    (R1)+(r2)->R2

    SUB R1,R2

    0100

    RS

    RD

    (R1)-(r2)->R2

    ROL R1

    0111

    RS

    RD

    循环左移

    ROR R1

    1000

    RS

    RD

    循环右移

    IN RI

    1011

    ADDR

    RD

    输入存到R1

    OUT R1

    1001

    ADDR

    RD

    R1内容输出

    BZC MD

    00

    M

    11

    RD

    CY=1Z=1时,

    E PC

                 D

    JMP MD

    00

    M

    10

    RD

    E PC

                 D

    LDA MDrd

    00

    M

    01

    RD

    E RD

                 D

    STA MDrd

    00

    M

    00

    RD

    RD E

                D

    HALT

    1010

    00

    00

    停机

            

     

    4、确定总体结构与数据通路:总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。

    5、设计指令执行流程:数据通路确定后,就可以设计指令系统中每条指令的执行流程。根据指令的复杂程度。每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中,设计出指令微操作流程图。

    指令微操作流程图

    确定微程序地址:根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。

    P1)测试:在P(1)测试的下一步,每个分支的第一步的地址是1XX是由指令的操作码决定的,根据不同的操作码决定应该执行哪个分支。

    P2)测试:在P(2)测试的下一步,每个分支的第一步的地址是2XX是由指令的操作码决定的,根据不同的操作码决定应该执行哪个分支。

    P3)测试:P3)是用来译码判断标志位CZ ,用于条件转移指令,条件成立转3XH,条件不成立转2XHX由自己定,只要不与其他指令的地址冲突就行。

    下地址有六位总共有64个可用地址,剩下的微指令可以在那些地址中任意分配,只要互相不冲突就行,具体的分配见流程图上所标注的。

     

    6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。

    微指令格式

     


    WE

    A9

    A8

     

    0

    0

    0

    INPUT

    0

    0

    1

    RAM

    1

    0

    1

    RAM

    1

    1

    0

    LED

    0

    1

    1

    0

    1

    0

    读接口,芯片端口

     

     

     

    299-b

    s1

    s0

    m

    功能

    0

    0

    0

    任意

    保持

    0

    1

    0

    0

    循环右移

    0

    1

    0

    1

    带进位循环右移

    0

    0

    1

    0

    循环左移

    0

    0

    1

    1

    带进位循环左移

    任意

    1

    1

    任意

    装数

    299移位控制功能表

     


    8.微程序装载格式

    机器指令格式:  $Pxxxx       

    微指令格式:    $Mxxxxxxxx

    机器指令和微指令及其地址如下:


    $P0001

    $P010E

    $P020D

    $P0303

    $P0431

    $P050E

    $P063D

    $P0704

    $P0846

    $P0956

    $P0A66

    $P0B75

    $P0C95

    $P0DA0

    $M0101ED82

    $M0200C050

    $M19030201

    $M17318228

    $M28118829

    $M29019801

    $M1601A227

    $M27059A01

    $M1401A20D

    $M0D01B40E

    $M0E619B41

    $M1A01801A

    $M1001ED84

    $M0400E0A0

    $M20028401

    $M230180E4

    $M24018001

    $M34008181

    $M1501A225

    $M2501B426

    $M26959B41



    $P0045

    $P013D

    $P0201

    $P0395

    $P0466

    $P05A0

    $M0101ED82

    $M0200C050

    $M1401A20D

    $M0D01B40E

    $M0E619B41

    $M1301ED8A

    $M0A00A00B

    $M0B01BC0C

    $M0C95EAA0

    $M20028401

    $M21008181

    $M16019201

    $M19030201

    $M1A01801A


    把它们保存为 *.TXT 文件中,然后加载到计算机中进行调试

     

    展开全文
  • 该资源是计算机组成原理课程设计的实验报告,实验内容为复杂模型机的设计与调试,已验收通过
  • 复杂模型机的设计与调试

    千次阅读 2007-07-02 21:08:00
    设计题目: 复杂模型机的设计与调试。要求:此模型机的指令系统有16条机器指令。内存数有4种寻址方式。采用微程序设计的方法。调试每条机器指令,并最终通过老师指定的一段程序。设计思路: 首先分析给定的指令系统...
      
    
    设计题目 :
          复杂模型机的设计与调试。
    要求:此模型机的指令系统有 16 条机器指令。内存数有 4 种寻址方式。采用微程序设计的方法。调试每条机器指令,并最终通过老师指定的一段程序。
    设计思路:
       首先分析给定的指令系统中的每一条指令所要完成的功能,写出执行过程中每步需要的微命令,然后设计每条机器指令的执行流程。再组合成一个完整的系统微程序流程。接下来,根据设计好的微程序流程图写出每一步对应的微指令。然后把微程序输入控制存储器。然后,就可以在此系统上进行编程,检验所设计的系统是否正确和完善。
    具体设计过程:
       机器指令有16条,所以设计的指令格式中至少需要有4位做为操作码。且大多数指令设计成一个字节,只有LDA、STA、JMP、BZC这四条指令因为设计到内存地址,被设计成两个字节。且这四条指令可以使用的寻址方式有四种,这通过在第一个字节中加入一个2位的M字段来区分。在设计微程序流程的时候,注意到经过p1测试需要产生16个分支,故取指微指令的第二条微指令的下址要设计成最后4位均为0的情况。在这里,我们选择40。在寻址方式的区分上,指定机器指令的操作码中的M=00时,为直接寻址,M=01时做间接寻址,M=10时,变址寻址(在此系统中,已指定R2作为固定的变址寄存器),当M=11时为相对寻址。在p1测试时,对于单字节指令,就直接根据操作码找到相应的微程序段执行。但是,对于双字节指令,经过p1测试,只区分其是哪一种寻址方式,然后获得此种寻址方式下的物理地址,再进入p2测试进一步区分是哪一条指令。在设计好微程序流程之后,再为控制台设计一个微程序流程。以实现程序的储存于校验。
    指令系统:
    助记符号
    指令格式
    功能
    CLR rd
    MOV rs,rd
    ADC rs,rd
    SBC rs,rd
    INC rd
    AND rs,rd
    COM rd
    RRC rs,rd
    RLC rs,rd
    0111
    00
    rd
    0 → rd
    1000
    rs
    rd
    rs → rd
    1001
    rs
    rd
    rs + rd + cy → rd
    1010
    rs
    rd
    rs –rd – cy → rd
    1011
     
    rd
    rd + 1 → rd
    1100
    rs
    rd
    rs ∧ rd → rd
    1101
     
    rd
     → rd
    1110
    rs
    rd
    1111
    rs
    rd
    LDA M,D,rd
    STA M,D,rd
    JMP M,D
    BZC M,D
    00
    M
    00
    rd
    D
    E → rs
    00
    M
    01
    rd
    D
    rd → E
    00
    M
    10
    rd
    D
    E → PC
    00
    M
    11
    rd
    D
    当 CY=1或Z=1时,
    E → PC
    IN addr,rd
    OUT addr,rd
    0100
    01
    rd
    addr → rd
    0101
    10
    rd
    rd → addr
    HALT
    0110
    00
    00
    停机
    数据通路框图:
    微程序流程图:
    微指令的代码字段定义如下:
    24
    23
    22
    21
    20
    19
    18
    17
    16
    151413
    121110
    9 8 7
    6
    5
    4
    3
    2
    1
    S3
    S2
    S1
    S0
    M
    Cn
    WE
    A9
    A8
    A
    B
    C
    uA5
    uA4
    uA3
    uA2
    uA1
    uA0

     
     
     
     
     
     
     
     
     
     
     
    微指令格式
    12
    11
    10
    选择
    0
    0
    0
     
    0
    0
    1
    RS-B
    0
    1
    0
    RD-B
    0
    1
    1
    RI-B
    1
    0
    0
    299-B
    1
    0
    1
    ALU-B
    1
    1
    0
    PC-B
     
    9
    8
    7
    选择
    0
    0
    0
     
    0
    0
    1
    P(1)
    0
    1
    0
    P(2)
    0
    1
    1
    P(3)
    1
    0
    0
    P(4)
    1
    0
    1
    AR
    1
    1
    0
    LDPC
     
     
     
    15
    14
    13
    选择
    0
    0
    0
     
    0
    0
    1
    LDRi
    0
    1
    0
    LDDR1
    0
    1
    1
    LDDR2
    1
    0
    0
    LDIR
    1
    0
    1
    LOAD
    1
    1
    0
    LDAR
     
    A 字段
    B 字段
    C 字段

      

    系统微程序:                                                                                                                         

    $M00 018108
    $M01 00ed82
    $M02 00c050
    $M03 00a004
    $M04 00e0a0
    $M05 00e006
    $M06 00a007
    $M07 00e0a0
    $M08  00ed8a
    $M09 00ed8c
    $M0A 00a03b
    $M0B 008001
    $M0C 06203c
    $M0D 00a00e
    $M0E 01b60f
    $M0F 95ea25
    $M10 00ed83
    $M11 00ed85
    $M12 00ed8d
    $M13 00eda6
    $M14 001001
    $M15 030401
    $M16 018016
    $M17 3d9a01
    $M18 019201
    $M19 01a22a
    $M1A 03b22c
    $M1B 01a232
    $M1C 01a233
    $M1D 01a236
    $M1E 318237
    $M1F 318239
    $M20 009001
    $M21 028401
    $M22 05db81
    $M23 0180e4
    $M24 018001
    $M25 95aaa0
    $M26 00a027
    $M27 01bc28
    $M28 95ea29
    $M29 95aaa0
    $M2A 01b42b
    $M2B 959b41
    $M2C 01a42d
    $M2D 65ab6e
    $M2E 0d9a01
    $M2F 01aa30
    $M30 0d8171
    $M31 959b41
    $M32 019a01
    $M33 01b435
    $M34 05db81
    $M35 b99b41
    $M36 0d9a01
    $M37 298838
    $M38 019801
    $M39 19883a
    $M3A 019801
    $M3B 070a08
    $M3C 068a09
     

    调试:
          在结合老师给出的设计资料完成微程序的录入、校验后。我们首先想对输入输出指令进行测验。虽然这是指令系统中最简单的两条指令,但是,它们的正确执行确是整个指令系统的关键。我们也借此找到了好几个错误的地方:我们的接线图是根据基本模型机的接线图来的。但是,复杂模型机的数据通路还用到了寄存器 R 1、 R 2;还有进位、移位等。还有几次,无论怎么做都是出不了正确的结果,最终才发现是我们所用的导线是坏的( K )。在重新检查好线路后,工作开始变得简单起来,我们逐一的验证了每条指令的功能。最后完成了老师的验收程序。
    实验心得:
          这次实验总体来说还是比较容易的,就是在输入微程序和老师的测试程序时比较费力,弄不好又要重新输入(后来听说可以使用软件直接烧制)。再一个就是找错的时候需要非常的细心,各个方面的问题都要考虑到。比如说微程序本身有没有错,程序有没有写错,格式是否正确,最后还有考虑到插线或者导线的问题。经过这次试验,我深深的感到团队合作的重要,以及在困难面前冷静思考的好处。也进一步的加强我对计算机组成结构特别是控制器的设计的认识与掌握。
     
    展开全文
  • 在充分理解复杂模型机原理的基础上,自行编写机器指令及其对应的微程序,达到使用复杂模型机计算海伦公式的目标。 3.实验设备 PC机一台,TD-CMA实验系统一套。 二、实验原理 1)数据格式 此次使用的模型机规定采用...

    一、实验内容

    1. 实验目的

    综合运用所学计算机组成原理知识,设计并实现较为完整的计算机。

    2. 实验目标

    在充分理解复杂模型机原理的基础上,自行编写机器指令及其对应的微程序,达到使用复杂模型机计算海伦公式的目标。

    3.实验设备

    PC机一台,TD-CMA实验系统一套。

    二、实验原理

    1)数据格式

    此次使用的模型机规定采用定点补码表示法表示数据,字长为8位,8位全用来表示数据(最高位不表示符号),数值表示范围是:0≤X≤28-1。

    2)指令设计

    根据海伦公式计算中所需要的指令,设计三大类模型机指令共十五条,其中包括运算类指令、控制转移类指令、数据传送类指令。

    运算类指令包含三种运算,算术运算、逻辑运算和移位运算,设计有 6 条运算类指令,分别为:ADD、AND、DEC、SUB、OR、SAR,所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。

    控制转移类指令有三条 HLT、JMP、BZC,用以控制程序的分支和转移,其中HLT 为单字节指令,JMP和BZC为双字节指令。

    数据传送类指令有IN、OUT、MOV、LDI、LAD、STA 共 6 条,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存储器之间的数据交换,除 MOV指令为单字节指令外,其余均为双字节指令。

    3)指令格式

    所有单字节指令(ADD、AND、DEC、SUB、OR、SAR、HLT和MOV)格式如下:

    7 6 4 53 21 0
    OP-CODERSRD

    其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,并规定:

    RS或RD选定的寄存器
    00R0
    01R1
    10R2
    11R3

    IN和OUT的指令格式为:

    7 6 5 4 (1)3 2 (1)1 0 (1)7-0(2)
    OP-CODERSRDP

    其中括号中的 1 表示指令的第一字节,2 表示指令的第二字节,OP-CODE 为操作码,RS为源寄存器,RD 为目的寄存器,P为 I/O 端口号,占用一个字节,系统的 I/O地址译码原理见图1(在地址总线单元)。
     I/O地址译码原理图
    图1 I/O地址译码原理图

    由于用的是地址总线的高两位进行译码,I/O地址空间被分为四个区,如表1所示:

    表1 I/O地址空间分配

    A7 A6选定地址空间
    00IOY000-3F
    01IOY140-7F
    10IOY280-BF
    11IOY3C0-FF

    系统设计五种数据寻址方式,即立即、直接、间接、变址和相对寻址,LDI指令为立即寻址,LAD、STA、JMP和BZC指令均具备直接、间接、变址和相对寻址能力。

    LDI的指令格式如下,第一字节内容与上文同,第二字节为立即数。

    7 6 5 4 (1)3 2 (1)1 0 (1)7-0(2)
    OP-CODERSRDdata

    LAD、STA、JMP和BZC指令格式如下。

    7 6 5 4 (1)3 2 (1)1 0 (1)7-0(2)
    OP-CODEMRDdata

    其中M为寻址模式,具体见表2,以R2作为变址寄存器RI。

    表2 寻址方式

    寻址模式M有效地址E说明
    00E=D直接寻址
    01E=(D)间接寻址
    10E=(RI)+DRI变址寻址
    11E=(PC)+D相对寻址

    4)指令系统

    根据实验计算海伦公式的目标,设计的15条基本指令如下,包括指令的格式、汇编符号、指令功能。

    表3 指令描述

    在这里插入图片描述

    三、总体设计

    模型机的数据通路框图如图2所示。
    在这里插入图片描述

    图2 数据通路框图

    实验使用的模型机指令多,寻址方式多,指令译码电路需要复杂设计。图3所示在IR单元的INS-DEC中实现。

    在这里插入图片描述
    图3 指令译码原理图

    本实验中要用到四个通用寄存器R3~R0,而对寄存器的选择是通过指令的低四位,为此还得设计一个寄存器译码电路,在IR单元的REG_DEC(GAL16V8)中实现,如图4所示。

    在这里插入图片描述
    图4 寄存器译码原理图

    根据设计的机器指令要求,设计微程序流程图及确定微地址,如图5所示。

    按照系统建议的微指令格式,见表4,参照微指令流程图,将每条微指令代码化,译成二进制代码表,如表5,并将二进制代码表转化为联机操作时的十六进制格式文件。

    表4 微指令格式
    在这里插入图片描述
    在这里插入图片描述

    图5 微指令流程图

    表5 二进制码表

    地址十六进制表示高五位S3-S0A字段B字段C字段UA5-UA0
    00000001000000000000000000000001
    01006D43000000000110110101000011
    03107070000100000111000001110000
    04002405000000000010010000000101
    0504B201000001001011001000000001
    06002407000000000010010000000111
    07013201000000010011001000000001
    08106009000100000110000000001001
    09183001000110000011000000000001
    0A106010000100000110000000010000
    0B000001000000000000000000000001
    0C103001000100000011000000000001
    0D200601001000000000011000000001
    0E005341000000000101001101000001
    0F0000CB000000000000000011001011
    10280401001010000000010000000001
    11103001000100000011000000000001
    12063201000001100011001000000001
    13002414000000000010010000010100
    1405B201000001011011001000000001
    15002416000000000010010000010110
    1601B201000000011011001000000001
    17002418000000000010010000011000
    18033201000000110011001000000001
    1B005341000000000101001101000001
    1C10101D000100000001000000011101
    1D10608C000100000110000010001100
    1E10601F000100000110000000011111
    1F101020000100000001000000100000
    2010608C000100000110000010001100
    28101029000100000001000000101001
    2900282A000000000010100000101010
    2A04E22B000001001110001000101011
    2B04928C000001001001001010001100
    2C10102D000100000001000000101101
    2D002C2E000000000010110000101110
    2E04E22F000001001110001000101111
    2F04928C000001001001001010001100
    30001604000000000001011000000100
    31001606000000000001011000000110
    32006D48000000000110110101001000
    33006D4A000000000110110101001010
    34003401000000000011010000000001
    35000035000000000000000000110101
    36006D51000000000110110101010001
    37001612000000000001011000010010
    38001613000000000001011000010011
    39001615000000000001011000010101
    3A001617000000000001011000010111
    3B000001000000000000000000000001
    3C006D5C000000000110110101011100
    3D006D5E000000000110110101011110
    3E006D68000000000110110101101000
    3F006D6C000000000110110101101100

    根据实验计算海伦公式的目标,以及基于此设计的机器指令,在模型机实现以下运算:从IN单元读入三角形三边(要求输入三边一定能构成三角形),求此三角形的面积平方,将所求结果存于61H单元,机器指令流程图如图6。
    在这里插入图片描述
    图6 机器指令流程图

    根据流程图设计表6程序,地址和内容均为二进制。

    表6 机器指令程序

    地址内容助记符说明
    0000000000100000IN R0,00H读入a
    0000000100000000
    0000001000100001IN R1,00H读入b
    0000001100000000
    0000010000100010IN R2,00H读入c
    0000010100000000
    0000011011010000STA 60H,R0将a存入60H
    0000011101100000
    0000100000000100ADD R0,R1a+b存入R0
    0000100100001000ADD R0,R2a+b+c存入R0
    0000101001100011LDI R3,01H将1存入R3
    0000101100000001
    0000110010101100SAR R0,R3a+b+c向右移一位,R0=P
    0000110101000011MOV R3,R0将p移入R3
    0000111010000100SUB R0,R1R0=P-B
    0000111101001101MOV R1,R3将P存入R1
    0001000010001001SUB R1,R2P-C存入R1
    0001000101000010MOV R2,R0将R0移入R2,作为乘数准备
    0001001001110001DEC R1将另一个乘数减1,做好准备
    0001001111110000BZC RESULT判断
    0001010000011011
    0001010100001000LOOP:ADD R0,R2开始乘法
    0001011001110001DEC R1
    0001011111110000BZC RESULT判断
    0001100000011011
    0001100111100000JMP LOOP回到LOOP开始
    0001101000010101
    0001101101001101MOV R1,R3将P存回R1
    0001110001110001DEC R1将另一个乘数减1,做好准备
    0001110111110000BZC RESULT判断
    0001111000100110
    0001111101000010MOV R2,R0将R0移入R2,作为乘数准备
    0010000000001000LOOP:ADD R0,R2开始乘法
    0010000101110001DEC R1
    0010001011110000BZC RESULT判断
    0010001100100110
    0010010011100000JMP LOOP回到LOOP开始
    0010010100100000
    0010011011000001LAD 00 R1,60H将a重新放入R1
    0010011101100000
    0010100010000111SUB R3,R1R3=P-A
    0010100101001101MOV R1,R3R3->R1
    0010101001000010MOV R2,R0R0->R2
    0010101101110001DEC R1
    0010110011110000BZC RESULT判断
    0010110100110100
    0010111000001000LOOP:ADD R0,R2开始乘法
    0010111101110001DEC R1
    0011000011110000BZC RESULT判断
    0011000100110100
    0011001011100000JMP LOOP回到LOOP开始
    0011001100101110
    0011010011010000STA 61H,R0将所得结果存入61H
    0011010101100001
    0011011000110000OUT 40H,R0将所得结果输出
    0011011101000000

    四、实验步骤

    1. 按图6连接实验线路,仔细检查连线后打开实验箱电源。

    在这里插入图片描述
    图7 实验连线图

    2. 写入实验程序,并进行校验。

    联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微程序和机器程序得以指定的格式写入到以TXT为后缀的文件中,本次实验程序如下,程序中分号';'为注释符,分号后面的内容在下载时将被忽略掉。 TXT文件如下:

    ; //*************************************** // 
    ; //                                 // 
    ; //       复杂模型机实验指令文件    // 
    ; //                                 // 
    ; //       By TangDu CO.,LTD         // 
    ; //                                 // 
    ; //*************************************** // 
    ; //****** Start Of Main Memory Data ****** //
    $P 00 20	;IN R0,00H
    $P 01 00	
    $P 02 21	;IN R1,00H
    $P 03 00	
    $P 04 22	;IN R2,00H
    $P 05 00	
    $P 06 D0	;STA 60H,R0
    $P 07 60	
    $P 08 04	;ADD R0,R1
    $P 09 08	;ADD R0,R2
    $P 0A 63	;LDI R3,01H
    $P 0B 01	
    $P 0C AC	;SAR R0,R3
    $P 0D 43	;MOV R3,R0
    $P 0E 84	;SUB R0,R1
    $P 0F 4D	;MOV R1,R3
    $P 10 89	;SUB R1,R2
    $P 11 42	;MOV R2,R0
    $P 12 71	;DEC R1
    $P 13 F0	;BZC RESULT
    $P 14 1B	
    $P 15 08	;LOOP:ADD R0,R2
    $P 16 71	;DEC R1
    $P 17 F0	;BZC RESULT
    $P 18 1B	
    $P 19 E0	;JMP LOOP
    $P 1A 15	
    $P 1B 4D	;MOV R1,R3
    $P 1C 71	;DEC R1
    $P 1D F0	;BZC RESULT
    $P 1E 26	
    $P 1F 42	;MOV R2,R0
    $P 20 08	;LOOP:ADD R0,R2
    $P 21 71	;DEC R1
    $P 22 F0	;BZC RESULT
    $P 23 26	
    $P 24 E0	;JMP LOOP
    $P 25 20	
    $P 26 C1	;LAD 00 R1,60H
    $P 27 60	
    $P 28 87	;SUB R3,R1
    $P 29 4D	;MOV R1,R3
    $P 2A 42	;MOV R2,R0
    $P 2B 71	;DEC R1
    $P 2C F0	;BZC RESULT
    $P 2D 34	
    $P 2E 08	;LOOP:ADD R0,R2
    $P 2F 71	;DEC R1
    $P 30 F0	;BZC RESULT
    $P 31 34	
    $P 32 E0	;JMP LOOP
    $P 33 2E	
    $P 34 D0	;STA 61H,R0
    $P 35 61	
    $P 36 30	;OUT 40H,R0
    $P 37 40	
    ; //***** End Of Main Memory Data *****// 
    
    ; //** Start Of MicroController Data **//
    $M 00 000001    ; NOP   
    $M 01 006D43    ; PC->AR, PC加1   
    $M 03 107070    ; MEM->IR, P<1>   
    $M 04 002405    ; RS->B   
    $M 05 04B201    ; A加B->RD   
    $M 06 002407    ; RS->B   
    $M 07 013201    ; A与B->RD   
    $M 08 106009    ; MEM->AR   
    $M 09 183001    ; IO->RD   
    $M 0A 106010    ; MEM->AR   
    $M 0B 000001    ; NOP   
    $M 0C 103001    ; MEM->RD   
    $M 0D 200601    ; RD->MEM   
    $M 0E 005341    ; A->PC   
    $M 0F 0000CB    ; NOP, P<3>   
    $M 10 280401    ; RS->IO   
    $M 11 103001    ; MEM->RD   
    $M 12 063201    ; A减1->RD   
    $M 13 002414    ; RS->B   
    $M 14 05B201    ; A减B->RD   
    $M 15 002416    ; RS->B   
    $M 16 01B201    ; A或B->RD   
    $M 17 002418    ; RS->B   
    $M 18 033201    ; A右移->RD   
    $M 1B 005341    ; A->PC   
    $M 1C 10101D    ; MEM->A   
    $M 1D 10608C    ; MEM->AR, P<2>   
    $M 1E 10601F    ; MEM->AR   
    $M 1F 101020    ; MEM->A   
    $M 20 10608C    ; MEM->AR, P<2>   
    $M 28 101029    ; MEM->A   
    $M 29 00282A    ; RI->B   
    $M 2A 04E22B    ; A加B->AR   
    $M 2B 04928C    ; A加B->A, P<2>   
    $M 2C 10102D    ; MEM->A   
    $M 2D 002C2E    ; PC->B   
    $M 2E 04E22F    ; A加B->AR   
    $M 2F 04928C    ; A加B->A, P<2>   
    $M 30 001604    ; RD->A   
    $M 31 001606    ; RD->A   
    $M 32 006D48    ; PC->AR, PC加1   
    $M 33 006D4A    ; PC->AR, PC加1   
    $M 34 003401    ; RS->RD   
    $M 35 000035    ; NOP   
    $M 36 006D51    ; PC->AR, PC加1   
    $M 37 001612    ; RD->A   
    $M 38 001613    ; RD->A   
    $M 39 001615    ; RD->A   
    $M 3A 001617    ; RD->A   
    $M 3B 000001    ; NOP 
    $M 3C 006D5C    ; PC->AR, PC加1   
    $M 3D 006D5E    ; PC->AR, PC加1   
    $M 3E 006D68    ; PC->AR, PC加1   
    $M 3F 006D6C    ; PC->AR, PC加1 
    
    

    3. 运行程序

    进入软件界面,选择菜单命令"【实验】—【CISC 实验】",打开相应的数据通路图,选择相应的功能命令,即可联机运行、监控、调试程序。

    按动CON单元的总清按钮CLR,然后通过软件运行程序,当模型机执行完OUT指令后,检查OUT单元显示的数是否正确。在数据通路图和微程序流中观测指令的执行过程,并观测软件中地址总线、数据总线以及微指令显示和下位机是否一致。

    五、实验结果

    考虑到模拟机的硬件约束,因此采用边长分别为3、4、5的三角形来测试程序。

    按程序步骤依次输入3、4、5后,程序最终输出24H(即十进制36),结果符合预期,可认为机器指令及对应的微程序设计正确,模型机可按海伦公式计算三角形面积的平方。
    在这里插入图片描述
    图8 实验结果图

    六、实验中遇到的问题与分析

    海伦公式的实现需要用到乘法,程序中使用累加的方式实现乘法,但乘数一开始是从原数开始累加,而不是从0开始累加,因此需要在乘法前就需要将另一个乘数减1,否则执行乘法时会多加一次。

    展开全文
  • 复杂模型机设计(含微指令,微程序,微程序流程图,设计的指令,实习报告)
  • 计算机系统结构实验-模型机的组成

    千次阅读 多人点赞 2018-04-26 23:52:33
    这次的模型机实验和上学期做的CPU本质上可以说是一样的,但是这一学期做的更加精致、完美,并且在实验板上的验证结果也完全正确。也学到了许多的新的东西,算是收获不小了。 今年的模型机是以小组为单位做的,在此...
  • 自动编码器模型代码解释

    万次阅读 2016-12-07 05:43:12
    CNN算法与程序研究   1) 深度学习基本理论方法 ...   特征多,给出的信息多,识别准确性会提升。...但是,计算复杂度增加,搜索的空间大,可以用来训练...BP一层隐层节点的浅层模型,带有一层隐层节点(如SVM、Boostin
  • 这段代码讲的是,服务器端生成随机数 zipcode、temperature、relhumidity 分别代表城市代码、温度值和湿度值。然后不断的广播信息,而客户端通过设置过滤参数,接受特定城市代码的信息,收集完了以后,做一个平均值...
  • 从FM推演各深度学习CTR预估模型(附代码

    万次阅读 多人点赞 2018-07-13 15:13:47
    作者: 龙心尘 &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; 寒小阳 时间:2018年7月。 出处:https://blog.csdn.net/longxinchen_ml/article/details/81031736 ...本文代码部分参考了lambda等同学的tens...
  • 从FM推演各深度CTR预估模型(附代码)

    千次阅读 2018-07-13 15:04:34
    本文代码部分参考了lambda等同学的tensorflow实现,在此向原作者表示感谢。 注:本文根据作者在公司内训讲稿整理而成。 多年以后,当资深算法专家们看着无缝对接用户需求的广告收入节节攀升时,他们可能会想起...
  • 开源!人脸口罩检测数据+模型+代码+在线网页体验

    千次阅读 多人点赞 2020-02-24 17:52:41
    因为WIDER Face本身是一个稍微复杂的数据集,再加上我们模型的输入和参数量比较小,所以,可以看到对于人脸的AP只有0.896。 不过,这点可以通过设计大一点的模型改善性能。 如果您有需要更高精度的模型,欢迎联系...
  • 混合高斯模型的基本原理: 图像运动估计是计算机视觉中重要的部分,如何准确的在背景中提取出我们想要的目标是识别的关键。 运动物体的检测分为两种情况:第一种是摄像头静止,目标在运动,背景也相对静止。例如大...
  • 摘要:极限学习(ELM)是当前...本篇博文尽量通俗易懂地对极限学习的原理进行详细介绍,之后分析如何用MATLAB实现该算法并对代码进行解释。本文主要内容如下:算法的原理、算法程序实现、点击跳转至全部文件下载页
  • 为了将价格控制在平均消费水平以内,移动电话和无线数据收发制造商希望能由单个设计批量生产出相应的设备。考虑到设计的复杂性和生产费用,制造样机并不切合实际——必须首先通过仿真来对设计进行测试及验证。本书...
  • 九、基于智能体的模型 原文:Chapter 9 Agent-based models 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们迄今为止看到的模型可能具有“基于规则”的特征,因为它们涉及受简单规则支配的...
  • 本篇文章,作者将分享两篇论文,机器学习是如何运用到恶意代码攻击中的,并谈谈自己的理解,后续深入研究尝试分享相关实验,目前还是小白一只。基础性文章,希望对初学者有帮助,大神请飘过,谢谢各位看官!
  • 工业相机编程模型和流程

    万次阅读 多人点赞 2015-05-21 17:36:13
    本文详述常见工业相机工作流程,总结它们的编程模型和编程流程。只要弄懂这里面的过程,基本上标准的工业相机都是这样做的,再对工业相机编程就会很简单了。
  • 2 NCF模型 2.1 背景 在信息爆炸的时代,推荐系统在缓解信息过载方面发挥着关键作用,已被许多在线服务广泛采用,包括电子商务,在线新闻和社交媒体网站。个性化推荐系统的关键在于根据用户过去的交互(例如评级和...
  • ASP.NET的网页代码模型及生命周期

    千次阅读 2009-11-11 23:57:00
    第4章 ASP.NET的网页代码模型及生命周期从本章开始,就进入了ASP.NET应用程序开发的世界。在了解了C#的结构,以及面向对象的概念后,就可以从面向对象的思想开发ASP.NET应用程序。在ASP.NET中,能够使用面向对象的...
  • LIME算法:模型的可解释性(代码实现)

    千次阅读 多人点赞 2020-05-12 15:45:24
    ” Explaining the Predictions of Any Classifier》中介绍的局部可解释性模型算法。该算法主要是用在文本类与图像类的模型中。 1.算法主要用途 在算法建模过程中,我们一般会用测试集的准确率与召回率衡量一个模型...
  • Stateflow 状态是怎么代码实现的

    千次阅读 2017-01-15 12:14:18
    避免这个问题,就有必要仔细考虑一下模型是如何生成代码的。 简单的说就是,每个状态对应一个状态标志位,所有的状态标志位(包括整个模型所有chart)会在定义在一个结构体中。状态之间的跳转通过Switch-Case完成...
  • 然而对于大型复杂逻辑的变化和跳转,使用ifelse将带来代码难以阅读等弊端。其实ifelse也是一种状态实现的方式。  之前我们有个业务和操作系统有着强烈的关联,而我们希望比较清晰地描述整个业务中...
  • 文献[ 1] 推导出了二相混合式步进电机 d-q 轴数学模型 ,以转子永磁磁链为定向坐标系 ,令直轴电流 id =0 ,电动电磁转矩与 i q 成正比 , 用PC 实现了矢量控制系统 。系统中使用传感器检测电机的绕组电流和转自位置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 201,561
精华内容 80,624
关键字:

复杂模型机代码