欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于微程序控制器的简单计算机系统设计与实现.doc

    • 资源ID:832887       资源大小:1.49MB        全文页数:41页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于微程序控制器的简单计算机系统设计与实现.doc

    1、 目录1 课程设计概述11.1 课设目的11.2 设计任务11.3 设计要求12 实验原理与环境22.1 实验原理结构图22.1.1 功能结构图22.1.2 中央处理器的功能22.1.3 中央处理器的组成32.2 实验环境43 模块设计方案53.1 实验分析53.2 数据通路图53.3 模块设计63.2.1 主存储器63.2.3 控制存储器73.2.3 运算器和寄存器93.2.4 程序计数器113.2.5 总体设计124 微指令设计144.1 机器指令设计144.2 微指令设计144.3 微程序设计144.4 指令流程图154.4.1 取指公操作164.4.2 立即数加174.4.3 直接寻址

    2、加174.4.4 直接寻址减184.4.5 回存194.4.6 无条件跳转204.4.7 有条件跳转204.4.8 非214.4.9 与224.4.10 异或224.4.11 SHL244.4.12 LOAD244.5 芯片控点设计255 实验过程与调试275.1 主要故障与调试275.1.1 395载入失败275.1.2 6116中存储数据被改变275.1.3 2816中存储数据被改变275.1.4 193计数器跳转出问题285.1.5 193自加时的毛刺285.2 功能测试285.3 实验流程306 设计总结与心得316.1 课设总结316.1.1 方案总结316.1.2 功能总结316.

    3、1.3 未实现功能总结316.2 课设心得31参考文献33附录 部分芯片介绍3421 课程设计概述1.1 课设目的计算机组成原理是计算机专业的核心基础课。本课程力图以“培养学生现代计算机系统设计能力”为目标,贯彻“强调软/硬件关联与协同、以CPU设计为核心/层次化系统设计的组织思路,有效地增强对学生的计算机系统设计能力的培养”。课程设计是学完该课程并进行多个单元实验后,综合利用所学的理论知识,并结合在单元实验中所积累的计算机部件设计和调试方法,设计出一台具有自己指令系统的简单计算机系统。所设计的系统能在基于EDA的实验平台上运行一段程序,通过检查程序结果的正确性来判断所设计计算机系统正确性。课

    4、程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行主机系统底层电路的实现、故障分析与定位、系统调式等环节的锻炼,进一步提高了学生分析和解决问题的能力。1.2 设计任务课程设计的主要任务是设计一台简单的计算机系统,并调试通过。本组所选用的计算机系统结构是基于微程序控制器的简单计算机系统设计与实现。 1) 完成数据通路设计并验证数据通路功能确定CPU 的基本结构是采用总线方式还是采用专用通路方式;2) 完成指定功能的各指令周期流程图(表)和所需要的控制信号。把所有指令的状态进行综合,并归纳成最终需要的若干个状态,画出指令流程的状态图,根据状态图设计状态机;3) 完成时序列电路

    5、设计。通过画出带控制信号的多周期数据通路图,列出 指令译码表,设计控制译码器。最后将控制译码器信号与多周期数据通路图上的控制信号对应相连;主要技术指标如下:1) 支持算术运算、逻辑运算、存储器读写、寄存器间数据传送等几类指令。2) 支持立即数寻址、直接寻址、隐含寻址、寄存器寻址等几种基本的数据寻址方式和顺序寻址、跳跃寻址两种指令的寻址方式。3) 支持10条以上的指令。4) 能运行由自己所是设计的指令系统构成的一段程序,程序执行功能正确。1.3 设计要求1) 根据课程设计指导书的要求,制定出设计方案;2) 画出自己所设计计算机系统的原理框图和器件连接图,分析器件连接图中各器件不同引脚的功能,哪些

    6、可以固定连接,哪些需要通过微程序来控制,及这些控制信号的有效形式;3) 画出各指令的指令周期流程图和所需要的控制信号;4) 设计出实现指令功能的微程序控制器或硬布线控制器;5) 布线、调试、验收;6) 课程设计报告和总结。2 实验原理与环境2.1 实验原理结构图2.1.1 功能结构图组成原理课程设计CPU功能结构图如图2.1所示。图2.1 CPU功能结构图2.1.2 中央处理器的功能CPU作为运行指令的部件,从保证程序功能正确的角度看,CPU应该具有以下几方面的功能:1)指令执行顺序的控制。即控制程序中的指令按事先规定的顺序自动执行,从而保证程序执行过程中,指令在逻辑上的相互关系不被改变。2)

    7、指令的操作控制。即产生指令执行过程中所需要的信号,以控制执行部件按指令规定的操作运行。3)时间控制。即对每个控制信号进行定时,一边按规定的时间顺序启动各操作。对于任何一条指令而言,如果操作控制信号的时间不正确,则指令的功能也就不能正确的实现。4)数据加工处理。即对数据进行算术、逻辑运算,或将数据在相关的部件之间传输。5)异常和中断处理。即处理运算中的异常及处理外部设备的中断服务请求等。2.1.3 中央处理器的组成中央处理器主要由控制器和运算器两部分构成。控制器的主要功能包括:取指令、计算下一条指令的地址、对指令译码、产生相应的操作控制信号、控制指令执行的步骤和数据流动的方向。运算器是执行部件,

    8、有算术逻辑单元和各种寄存器组成。运算器接受控制器的命令执行算术运算、逻辑运算即逻辑测试。许多中央处理器中具有多个运算功能单元,这些功能单元能够进行并行运算。中央处理器的功能与其结构紧密相关,任何一种功能都依赖相应的硬件去实现。如图2.1是一种能实现上述功能的CPU基本组成。下面对图2.1的各部分功能进行简要分析。a.CPU内常用的寄存器1)PC(程序计数器)PC保存将要执行的指令地址,又称指令地址寄存器。CPU取指令时,将PC的内容送到主存地址寄存器,然后修改PC的值形成下一条要执行的指令地址,有以下两种修改PC内容的方法:(1)程序顺序执行是,可利用程序计数器本身的递增功能来实现,若程序无此

    9、功能,则通过加法器实现;(2)转移时,用转移指令提供的地址修改PC的值。2)IR(指令寄存器)IR用于保存指令。从主存储器取出的指令存放在IR中,直到新的指令从主存中取出为止。IR中对应于指令操作码的部分输出送到指令译码器。IR中指令的操作码字段内容经指令译码器,送到微操作信号形成不见;指令的地址码字段根据寻址方式的不同可能送入程序计数器、地址寄存器或运算部件。有的机器指令操作码中包含寻址方式,因此不单独设计寻址方式字段;有的机器将寻址方式字段和操作码一并送入指令译码器;有的机器将操作码字段和地址码字段送入地址形成部件,以决定地址码的作用。3)AR(地址寄存器)AR用来保存当前CPU所要访问的

    10、主存单元地址,无论CPU是取指令还是存取数据,都必须先将要访问的主存单元地址送AR,知道读写操作完成。4)DR(数据缓冲寄存器):DR作为CPU和主存之间的数据缓冲寄存器用于存放操作数、运算结果或 中间结果以减少访问主存的次数;也可以存放从主存中读出的数据,或准备写入的数据。b.指令译码器、地址形成部件和微操作产生部件1) 指令译码器(ID)指令译码器对指令的操作码进行译码,它的输出送到微操作产生部件。2) 地址形成部件地址形成部件对指令的寻址方式字段、地址字段进行译码,计算操作数的地址信息。3)微操作产生部件微操作产生部件接收指令译码器送来的信息,与时序信号、条件及状态信息进行组合,形成各种

    11、具有时间标志的控制信号(即微操作控制序列)并发送到计算机的各个部件。微操作产生部件是控制决策机构。信息流的控制就是把操作产生部件的微操作控制序列(即微操作控制信号),送到各个部件的控制门、触发器或锁存器,去打开或关闭某些特定的门电路,使数据信息按完成指令功能所需要经过的路径,从一个功能部件传送到另一个功能部件,实现对数据加工处理的控制。根据设计方法不同,微操作产生部件的结构有三种不同的类型:组合逻辑型、存储逻辑型即前两者的结合型。它们分别对应三中不同的控制器组成方式:组合逻辑控制器、微程序控制器及组合逻辑与存储逻辑混合型控制器。c.时序控制部件指令执行过程中所有操作都必须按照一定的次序完成,而

    12、且每个操作在什么时刻执行,执行多长时间都有严格的规定,不能有任何差错。例如执行加法 指令,必须先将操作数送到ALU的输入端,然后再给出ALU执行加法的操作控制信号,待加法操作完成后,才能将结果送往目的地。不仅次序有规定,而且对什么时刻送操作数、什么时刻执行加法操作、什么时刻送出结果也有规定。因此,需要时序概念。图2.1中时序控制部件的作用就是产生一组时序信号,即一系列电位与脉冲,送到微操作产生部件,对各种操作信号进行时序控制。2.2 实验环境JZYL型计算机组成原理实验仪一台。导线若干。涉及芯片类型及数量如表2.1所示。表2.1 所需芯片类型及数量芯片编号芯片名称所需数量74LS193二进制同

    13、步可逆计数器174LS181四位运算器274LS244三态8位缓冲器274LS157四位2选1数据选择器474LS373八D锁存器7611616K CMOS静态RAM(2048*8)12816AEEPROM存储器(2048*8)274LS395四位寄存器174LS08二输入四与门274LS04六门反相器174LS32二输入四或门13 模块设计方案3.1 实验分析分析本次课程设计中对简易CPU的要求,需要设计的功能部件有主存储器、控制存储器、运算器、寄存器、计数器等。由于课程设计提供的芯片种类有限,我们选取了其中的74LS373、181、6116、2816A、74LS244、74LS193、74

    14、LS157、74LS395等芯片实现相应的功能。我们设计的机器指令长度为8为,其中前4位为操作码,后四位为操作数。在设计方案时,我们先将总体方案分解为多个小的模块,分别进行设计,然后再将各个模块拼接在一起,实现最终需要的功能。分解的模块包括主存储器、控制存储器、运算器、寄存器、计数器。下面将逐个分析各个模块的设计思路。3.2 数据通路图图3.1 数据通路图课程设计的数据通路图如图3.1所示。图中标明了计算机系统中的各个部件,包括内存、程序计数器、运算器、寄存器、控制存储器、指令寄存器、数据寄存器、微指令寄存器等等功能部件。同时,也注明了不同部件的芯片组成,以及控制信号。控制信号是由微程序中的信

    15、号(见4.3 微程序设计)和时序节拍通过组合逻辑的方式形成。3.3 模块设计3.2.1 主存储器主存储器相当于计算机系统中的主存。我们选择一片6116作为主存储器。我们设计的机器指令长度为8位,低4位为操作数,所以,我们只选用了6116的低四位地址,其他地址位均接低电平。换言之,我们能手动写入的内存只有16位,分别从0000到1111。在写入6116时,使用了一片74LS244作为缓冲器。因为在总体电路中,6116的输入可能会有多个,为了避免冲突,使用一片244可以方便后面输入端的选择。6116的地址通过一片74LS157后输入。选择74LS157的原因是,6116的地址选择有多种情况。第一种

    16、情况是手动输入地址,这种情况发生在程序执行前,需往6116中写入程序,此时的地址由操作人员手动选择;第二种情况是程序自动选择,这种情况发生在程序连续执行过程中,由PC自动选择内存地址,取出操作指令或者指令的实现方式为直接寻址时,选择数据的地址。主存储器的结构图如3.2所示。图3.2 主存储器结构图6116芯片的功能如表3.1所示。我们选择的写模式为=L,=L,=L。我们选择的读模式为=L,=H,=L。其中,需要控制的只有,另外两个输入保持不变。6116是RAM芯片,断电后,芯片内的信息将会丢失。表3.1 6116芯片功能表输入I/O工作方式DIDOHhigh-z非选择LHLhigh-zDO读L

    17、LHDIhigh-z写LLLDIhigh-z写LHHhigh-z选择74LS244芯片的功能如表3.2所示。表3.2 74LS244芯片功能表输入输出LLLLLLLHLHHHHH高阻高阻74LS157芯片的功能如表3.3所示。表3.3 74LS157芯片功能表使能端输入控制数据输入输出HLLHLLLHHHLLLLLLHH3.2.3 控制存储器控制存储器是整个课程设计中最重要的一个模块,这一部分设计起来没有太大难度。但是,由于微程序设计中的微指令是从控制存储器中取出的,这一部分的设计尤为重要。我们选择两片2816作为控制存储器。我们设计的微指令中,一共有13位有效信号。由于2816是8位的,所以

    18、,需要两片2816存储需要的微指令。我们设计的机器指令长度为8位,高4位为操作指令,所以,只选用了2816的低四位地址,其他地址位均接低电平。换言之,我们能写入的控制信号只有16位,分别从0000到1111。实际上,我们设计的指令只有12条,16个内存已能满足需求。在写入2816时,使用了一片74LS244作为缓冲器。写入完成后,去掉74LS244。因为2816中的信息是确定的,每一个8位(两个2816应是16位)都对应着一条微指令,只要一次正确写入后,以后都不需要更改。由于2816是ROM芯片,断电后,信息不会丢失。但是,写入数据时,需要使用一片74LS244,作为缓冲器。2816的微指令信

    19、号输出后,将会锁存到373中,避免在指令执行周期,控制信号发生改变。与2816相连的两片373的功能相当于计算机系统中的IR(微指令寄存器)。与2816相连的74LS395的作用是,在执行周期结束后,395清零(也可能是结束前,只要对结果不产生干扰就可以),系统进入取值周期。与74LS395相连的74LS373相当于计算机系统中的IR(指令寄存器)。其中,高4位为操作指令,这4位将会作为74LS395的输入,选择2816中的微指令,进而锁存在微指令寄存器中。控制存储器的结构图如图3.3所示。结构图中没有标明写入2816时用到的缓冲器74LS244,因为它只在写入时使用,写入成功之后,244将没

    20、有其他的作用,可以去掉。图3.3 控制存储器结构图2816的芯片功能如表3.4所示。表3.4 2816芯片功能表引脚输入/输出读出LLH数据出闲置L高阻字节擦除LHL数据入=H字节写入LHL数据入整片擦除L+1015VL数据入=H不工作LHH高阻禁写HHL高阻74LS373芯片功能如表3.5所示。表4.6 74LS373功能表输出控制使能GD输出QLHHHLHLLLLQ0HZ74LS395芯片功能如表3.6所示。表3.6 74LS395芯片功能表功能输入输出PEDsDnQn总清LL装入HHLLHHHH3.2.3 运算器和寄存器运算器是CPU可以实现运算操作的基本部件,所使用的芯片本身只能实现最

    21、基本的加减算术运算和亦或、非与等基本逻辑运算。但是,通过基本运算的组合,可以实现及其复杂的运算,如积分,甚至傅里叶变换。现代计算机可以显示各种我们需要的功能,但是,如果把每条指令分解来看,可以发现,它可以做到的事情实际上再简单不过。唯快不破,它通过将处理速度做到极致,即使它做的事情异常简单,但是,它能做到的事情却可以改变整个世界。由于提供的芯片中,能显示运算操作的芯片只有74LS181。所以,181芯片是实现运算器的不二选择。由于设计的数据位数为8位,而181只能实现4为的逻辑运算和算术运算,所以,我们需要两片74LS181来实现8位数据操作。181的B输入通过了74LS157,原因是,由于寻

    22、址方式有立即数和直接寻址,所以,通过157来选择不同的寻址方式。157中的数据有两种情况,一种是立即数,这时高四位为0(由于指令位数的限制,立即数只能有4位);另一种是直接寻址,这时181中的8位数据全部来自于主存6116。74LS181的运算结果输入后,锁存在74LS373中,这样,可以防止运算结果被下一条运算操作改变。与这个373相连的是另外一个74LS373,它的作用相当于一个寄存器。181中的A输入来自于这个373(寄存器)。74LS157的其中一个输入来自一个74LS373,它的作用相当于计算机系统中的数据寄存器(DR)。直接寻址时,数据从主存6116中读出,锁存在这个373中,进行

    23、运算时,数据寄存器中的数据一直保持不变。运算器的结构图如图3.4所示。图3.4 运算器结构图74LS181的功能比较强大,可以实现多种逻辑运算和位运算,图3.5列出了181的部分功能,其中,A0,A1,A2,A3,B0,B1,B2,B3位运算器输入;F0,F1,F2,F3为运算器输出;S0,S1,S2,S3为运算指令控制端;M位算术或逻辑运算控制端;为有无进位控制端,为高位进位。图3.5 74LS181功能表3.2.4 程序计数器程序计数器的功能比较简单,就是在程序执行过程中,指示正确的内存地址,让计算机自动的从内存中读取出正确的指令执行。顺序执行时,每一条执行指令结束,PC自加1;但有跳转指

    24、令出现时,PC被设置为需要跳转到的内存地址。提供的芯片中,具有计数功能的有74LS193和74LS181。但是,181的功能过于强大,用这个比较复杂的芯片去实现如此简单的功能,不太合适,况且,181的置数操作不太容易实现,经比较可以知道,应选用193做为显示程序计数器的芯片。一片74LS193便可以实现。与74LS193相连的373是指令寄存器。当出现跳转指令时,指令寄存器的低4位将会被load到193中,以确保下一条指令的执行时正确的。在顺序执行的情况下,193实现的都是+1功能。由于一片193只有四位,所以,能表达的指令内存地址最大只能到1111。74LS193的输入接到一片74LS157

    25、,而此片157的另外一个输入为指令寄存器的低4位。这样设计是因为,取址周期时,从PC中读入地址,在从6116的指定内存单元中读出8位操作指令;而在执行阶段,如果寻址方式为直接寻址,则需要将指令寄存器的低4位作为数据的内存地址,从6116的指定内存单元中读出8位操作数。因为这两种情况都是存在的,所以,需要有一片74LS157来区分这两种情况。区分的条件是不同的机器指令对应着不同的微操作,通过微指令来选择157的输出是程序计数器的输入还是指令寄存器的低4位输入。 程序计数器的结构图如图3.6所示。图3.6 程序计数器结构图74LS193芯片的功能如表3.7所示。表3.7 74LS193芯片功能表输

    26、入输出备注LDDnCPUCPDQn1dddd0清零(异步)00xddx置数(异步)01d1累加计数上升沿有效01d1累减计数上升沿有效功能说明:1. 直接清零:当=1时,计数器异步清零。2. 直接置数:当LD=0时,计数器异步置数。3. 二进制加/减法计数脉冲CPU/CPD上升沿有效。3.2.5 总体设计整个课程设计的总体结构图如图3.6所示。总体结构图中,添加了一个回存的功能,由于只是在寄存器后边加上一个74LS244芯片,然后将244的输出接到主存6116的输入端,所以,在模块设计中,没有把回存作为单独的一个模块说明。图3.6 总体结构图4 微指令设计4.1 机器指令设计根据课程设计要求,

    27、我们设计的机器指令为8位,其中,前4位表示操作命令,后4位为操作数。由于操作命令用4位表示,所以,可以实现的操作最多只能有16条。设计的指令包括算术指令:立即数加、直接寻址加、直接寻址减;逻辑运算:非运算、与运算、亦或运算;回存;跳转指令:无条件跳转、溢出跳转;载入指令;乘二指令;停机指令;取址操作。其中,直接寻址加、直接寻址减、逻辑运算及乘二运算均使用隐含寻址。取址操作、立即数加、载入操作、跳转指令和回存指令均使用立即数寻址。直接寻址加、直接寻址减、与运算、亦或运算均使用直接寻址。机器指令由操作人员将汇编语言翻译成机器语言后,手动输入到内存中。4.2 微指令设计控制存储器由两片2816组成,

    28、最多可以有16位控制信号。但我们在设计微指令时,只使用了13个控制信号,使用了一片2816的所有8位,另一片2816的低5位。微命令编码方法采用直接表示法,将微指令操作控制字段的每一个二进制位定义为一个微命令。一条微指令从控存中取出时,它所包含的微命令经时间同步后去控制相应的数据通路中的部件。13位控制信号机器作用如表4.1所示。其他3位接低电平。表4.1 控制信号作用2816输出控制信号作用说明C0S0181运算控制信号C1S1181运算控制信号C2S2181运算控制信号C3S3181运算控制信号C4Cn181借位输入信号C5M181运算控制信号C6Write回存时 244 OE端/6116

    29、 WE端控制信号C7ALUin157控制选择来自DR/IR(立即数)的信号C86116add193地址与直接寻址地址间选择信号C9stop停机时控制时序停止C10stop停机时控制时序停止C11count与脉冲信号进行逻辑运算后控制193是否加1计数C12load与其他控制信号进行逻辑运算后控制193是否载入4.3 微程序设计程序中每一条指令用8位二进制位来表示,而前四位为操作码,即为实现该指令的微程序的入口地址,后四位为操作数的地址(直接寻址)或操作数(立即数寻址)。操作指令对应的微程序如表4.2所示。写出这个表的过程比较复杂,也是整个课程设计最有技术含量的一部分,还有一部分是时序电路的加入

    30、。首先,先把可能需要控制的全部芯片控制信号列举出来,可能会超过16个,但是没关系,因为在后面的步骤中,会发现有些控制信息一直没有变化,可以用一个确定的信号代替。然后,给需要用到的指令分配一个4位的控存地址,这将会成为该指令的微程序的入口地址。由于指令只有4位,所以,所有指令条数不能超过16条。接着,就是比较复杂的一步了。分析每一条指令,画出每条指令的数据流和控制流,(具体流程图见4.4 指令流程图)通过这种方式,知道每条指令需要的控制信号。表4.2 汇编指令对应的微程序表指令控存地址15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0取指公操作0000 0000 1010

    31、 0101 0000立即数加0001 0000 0010 1101 1001立即寻址加0010 0000 0011 0101 1001减0011 0000 0011 0100 0110回存0100 0000 0011 0001 0000JMP0101 0001 0010 0101 0000非0110 0000 0011 0111 0000与0111 0000 0011 0111 1011异或1000 0000 0011 0111 0110停机1001 0000 0100 0101 0000JO1010 0001 0010 0101 0000LOAD1011 0000 0011 0111 101

    32、0SHL1100 0000 0011 0101 1100微程序表中,每条微程序都有16个控制信号。芯片编号参考图4.13。如表中编号所示,0,1,2,3分别表示181中的S0,S1,S2,S3;4,5分别表示181中的和M;6表示244a的;7表示157a和157b的使能端S;8表示157c的使能端S;9表示395中的;10用来停机,实际使用时,没有使用9号控制信号;11和12分别表示193中的up和load;其他位均为0。4.4 指令流程图我们设计的指令,包括取址公操作在内,一共有12条。不同类型的指令控制流和数据流都是不相同的,由于数据流这个部分可以参考图2.1,图中说明了所有数据所在的芯

    33、片。在同一个周期中,数据都是存在的,关键在与控制信息在同一个周期中不同节拍的控制。需要控制的芯片包括74LS373,它是8位锁存器,所以,需要控制数据何时写入373中,何时保持373中的数据不发生改变;74LS157,它是2选1数据选择器,所以,需要控制输出数据是两个输入数据中的哪一个;6116,这个芯片在回存指令时,必须要在某个节拍变成写模式,但是,在其他指令的周期中,必须一直保持读模式。另外还需要控制的芯片是74LS395,因为取址周期前,它需要清零,而执行周期前,它需要置数。4.4.1 取指公操作我们设计的指令都是双周期的,其中,第一个周期为取指周期,从内存中取出执行指令;第二个周期为执

    34、行周期,执行该指令。取址公操作的控制信号存放在控制存储器的0000号单元,也就是说,需要进行取址操作时,将395清零即可。控制信号从控制存储器中读出后,写入到微指令寄存器中。通过这一组控制信号,从6116的指定单元中读出指令。指令存放在指令寄存器中。接下来,将4位操作指令载入74LS395中。这4位操作数成为这条指令的微程序的入口地址,从控制存储器中读出微程序后,锁存在微指令寄存器中。(这个锁存的节拍不在取指公操作,而是在执行周期的第一个节拍)取值公操作的控制流如图4.1所示。图4.1 取值公操作控制流4.4.2 立即数加立即数加的控制流程图如图4.2所示。图4.2 立即数加控制流4.4.3

    35、直接寻址加立即数加和直接寻址加的区别在于,立即数加的加数为低4位操作数,被加数为寄存器AC中的值;而直接寻址加的加数为地址为低4位操作数的6116单元内的数据,被加数为寄存器AC中的值。其他基本一致。直接寻址加的控制流程图如图4.3所示。 图4.3 直接寻址加控制流4.4.4 直接寻址减直接寻址加和直接寻址减的数据流和控制流上基本一致,只是在74LS181的控制上,对于4个运算控制信号有些区别。直接寻址减的控制流程图如图4.4所示。图4.4 直接寻址减控制流4.4.5 回存回存时,内存需要由读模式变为写模式。回存控制流程图如图4.5所示。图4.5 回存控制流4.4.6 无条件跳转无条件跳转控制

    36、流程图如4.6所示。图4.6 无条件跳转控制流4.4.7 有条件跳转有条件跳转流程图如图4.7所示。与无条件跳转的不同之处在于,必须判断数据时是否溢出。如果有溢出,则实现跳转,否则不实现跳转。图4.7 有条件跳转控制流4.4.8 非求非指令控制流程图如图4.8所示。图4.8 求非指令控制流4.4.9 与求非指令使用的寻址方式是隐含寻址,但是求与指令使用的寻址方式是隐含寻址加直接寻址。所以,数据通路要比求非运算要长一些。控制信号也更复杂一些。求与指令的控制流程图如图4.9所示。图4.9 求与指令控制流4.4.10 异或亦或指令和与指令的数据流和控制流上基本一致,只是在74LS181的控制上,对于

    37、4个运算控制信号有些区别。亦或指令的控制流程图如图4.10所示。图4.10 亦或指令控制流图4.11 乘2指令控制流4.4.11 SHL乘2指令的寻址方式为隐含寻址,即把寄存器AC中的值扩大一倍,再存入AC中。乘2指令的控制流程图如图4.11所示。4.4.12 LOAD载入指令的功能是将指定内存单元中的数据载入寄存器AC中,作为运算的初始值。与之相对应的是回存指令,它的作用是将寄存器AC中的值存入指定内存单元。载入指令的控制流程图如图4.12所示。图4.12 载入指令控制流4.5 芯片控点设计在设计微指令之前,我们分析整个电路中的各个芯片的控点,其中有些是需要控制的,而有些是不需要变动的,始终

    38、接到一个电位就可以了。数据通路图如图4.13所示。图4.13 数据通路图不需要控制的控点有:向6116输入的74LS244芯片:和并接到一个开关上,只有在写机器指令的时候为低电平,其他时刻都为高电平,手动控制,不需要微指令控制。和并接接地,多余的地址线接在一起并接地。向2816输入的74LS244芯片:和并接到一个开关上,只有在写微指令的时候为低电平,其他时刻都为高电平,手动控制,不需要微指令控制。多余地址线接地。74LS157d芯片:使能端S分别接开关,需要手动控制输入改变地址时为低电平,0通道选通;其他时候为高电平,1通道选通。所有74LS373芯片的输出控制端接地。2816芯片:和并接接

    39、地,多余的地址线接在一起并接地。需要控制的控点有:回存244a芯片:和并接一起控制。74LS157a,74LS157b,74LS157c芯片的使能端S。所有74LS373的使能端S。181芯片:运算指令控制端,算术或逻辑运算控制端M,有无进位控制端。6116芯片:端。74LS193的up和load。 74LS395的,和。这些控点都是需要微程序中的信号来控制的,具体控制见表4.2。还有些控制信号需要微程序中的控制信号与时序节拍组合逻辑后实现,具体组合逻辑见4.4 指令控制流程图。表达式如下。其中T1,T2,T3,T4分别表示一个周期中的四个节拍,C11和C12为表4.2中编号为11,12的控制

    40、信号,A3是4位操作指令中的最低位。373a的使能端G = T3;373b的使能端G = T4;373c的使能端;373d的使能端;373e和373f的使能端;395的=,;193的, 5 实验过程与调试5.1 主要故障与调试5.1.1 395载入失败74LS395在本次课程设计中的功能有两个,第一个功能是在取址周期前,将数据清零。而0000是控制存储器中,取址指令的入口地址。通过这一操作,将取址的控制信号锁存在微指令寄存器中,保证双周期中,取址周期的正确执行。第二个功能是在执行周期前,将指令寄存器中的高4位,也就是4位操作命令载入,此时,将会从控制存储器中读出特定指令的控制信号,锁存到微指令

    41、寄存器中,保证执行周期的正确执行。按照步骤连接好电路后,开始测试时,发现74LS395清零功能是好的,但是,载入功能出问题了。给395提供载入信号后,输出仍然保持不变,还是0000。接下来需要做的就是排错。首先,将395的输入信号和输出信号分别接到信号灯上,及时显示输入和输出的数据。结果发现,不论输入信号如何,加上载入信号后,4个输出灯全是蓝色的,也就是0000。问题只有可能出在控制信号上,于是,我们也将控制信号接到信号灯上。让我们不可思议的是,控制信号也没有问题。最后,由于时间的原因,我们必须要离开实验室,便将试验台断电了。第二天来后,发现这个问题莫名其妙的被解决了。到现在也不知道载入失败的

    42、原因是什么。5.1.2 6116中存储数据被改变6116数据的写入是一个很大的问题。写入数据时,之前的已经写入的数据经常会被后来的数据更改,所以,从6116指定的内存中读出数据时,显示在信号灯上的数据总是和预期的不一样。仔细观察后发现,这些数据是之后写入的某些数据,也就是说,数据被改写了。分析6116的写入方式,它是直接写入的,不需要另外的载入信号,当地址被选定后,数据就已经写入了制定的内存单元中。为了避免这一问题,我们在写入数据的过程中,需要改变地址时,要先选到较大的地址,保证这一地址还没有写入数据。比如写完0011后,接下来写入0100,这时候需要做的是,先将地址选择到0111,然后再选择

    43、到0100。通过这种方式,解决了6116中数据被改变的问题。5.1.3 2816中存储数据被改变将控制信号写入2816后,马上测试,读出2816中存储的数据,保证数据都是准确无误的。但是,断电后,第二天发现,2816中的0000单元和0001单元数据被改变,而其他单元中的数据都没有问题。我们只能重新写入2816中的数据。这次因为偷懒,没有使用244作为缓冲器,而是直接将信号给到了2816的输入输出端。写入成功后,将2816由写模式转换成读模式。结果,输出信号灯的颜色变得很诡异,马上可以判定,这是数据冲突了。检查电路后,发现这是因为没有使用244的原因。因为没有244的高阻功能,使得输入信号和2

    44、816的输出信号同时存在了。将输入信号去掉后,信号灯变得正常。但是,奇怪的事情发生了,当写入其中一片2816时,另一片2816的数据也被改变了,但是,我们对另一片2816什么也没做。这样直接输入尝试了几次之后,发现这样的问题一直是存在的。检查电路发现,两片2816的控制信号是接在一起,也就是说,当一片2816处于写模式时,另一片2816也处于写模式(这是由于控制信号相同造成了)。由于另一片2816的输入没有给,所以,写入的数据肯定是有问题的。于是,我们将两片2816同时写入,这样,就不会出现一片2816写入,另一片输入悬空的情况了。在写入2816的过程中,还遇到了一个问题。因为之前2816的控制开关没有放在一起,在写模式与读模式之间转换时,有些麻烦,所以


    注意事项

    本文(基于微程序控制器的简单计算机系统设计与实现.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922