欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    微程序控制器组和微程序设计实验报告.docx

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

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

    微程序控制器组和微程序设计实验报告.docx

    微程序控制器组和微程序设计实验报告 数学学院实验报告 课程名称:计算机组成原理 实验项目名称:微程序控制器组成与微程序设计实验 一、实 验 目 的 (1) 掌握微程序控制器的组成原理。 (2) 掌握微程序的编制、写入,观察微程序的运行过程。 二、实验设备与器件 PC 机一台,TD-CMA 实验系统一套。 三、实 验 原 理 微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑 部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数 字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为 控制存储器,微程序控制器原理框图如图3-2-1所示。 图3-2-1 微程序控制器组成原理框图 控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍TS1、TS2、TS3、TS4,时序单元的介绍见附录2。 微程序控制器的组成见图3-2-2,其中控制存储器采用3片2816的E 2 PROM ,具有掉电保护功能,微命令寄存器18位,用两片8D 触发器(273)和一片4D (175)触发器 组成。微地址寄存器6位,用三片正沿触发的双D 触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2时刻打入微地址寄存器的内容 即为下一条微指令地址。当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强置端将某一触发器置为“1”状态,完成地址修改。 S E 1S E 2S E 3S E 4S E 5 S E 0图3-2-2 微程序控制器原理图 在实验平台中设有一组编程控制开关KK3、KK4、KK5(位于时序与操作台单元),可实现对存储 器(包括存储器和控制存储器)的三种操作:编程、校验、运行。考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实 验平台提供了便利的手动操作方式。以向00H 单元中写入332211为例,对于控制存储器进行编辑的具体操作步骤如下:首先将KK1拨至停止档、 KK3拨至编程档、KK4拨至控存档、KK5拨至置数档,由CON 单元的SD05SD00开关给出需要编辑的控存单元首地址 (000000),IN 单元开关给出该控存单元数据的低8位(00010001),连续两次 按动时序与操作台单元的开关ST(第一次按动后MC单元低8位显示该单元以前存储的数据,第二次按动后显示当前改动的数据),此时MC单元的指示灯MA5MA0显示当前地址(000000),M7M0显示当前数据(00010001)。然后将KK5拨至加1档,IN单元开关给出该控存单元数据的中8位(00100010),连续两次按动开关ST,完成对该控存单元中8位数据的修改,此时MC单元的指示灯MA5MA0显示当前地址(000000),M15M8显示当前数据(00100010);再由IN单元开关给出该控存单元数据的高8位(00110011),连续两次按动开关ST,完成对该控存单元高8位数据的修改此时MC单元的指示灯MA5 MA0显示当前地址(000000),M23M16显示当前数据(00110011)。此时被编辑的控存单元地址会自动加1(01H),由IN单元开关依次给出该控存单元数据的低8位、中8位和高8位配合每次开关ST 的两次按动,即可完成对后续单元的编辑。 编辑完成后需进行校验,以确保编辑的正确。以校验00H单元为例,对于控制存储器进行校验的具体操作步骤如下:首先将KK1拨至停止档、KK3拨至校验档、KK4拨至控存档、KK5拨至置数档。由CON单元的SD05SD00开关给出需要校验的控存单元地址(000000),连续两次按动开关ST,MC单元指示灯M7M0显示该单元低8位数据(00010001);KK5拨至加1档,再连续两次按动开关ST,MC单元指示灯M15M8显示该单元中8位数据(00100010);再连续两次按动开关ST,MC单元指示灯M23M16显示该单元高8位数据(00110011)。再连续两次按动开关ST,地址加1,MC 单元指示灯M7M0显示01H单元低8位数据。如校验的微指令出错,则返回输入操作,修改该单元的数据后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。 位于实验平台MC单元左上角一列三个指示灯MC2、MC1、MC0用来指示当前操作的微程序字段,分别对应M23M16、M15M8、M7M0。实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址置数后将开关KK4拨至减1档,则每次随着开关ST的两次拨动操作,字节数依次从高8位到低8位递减,减至低8位后,再按动两次开关ST,微地址会自动减一,继续对下一个单元的操作。 微指令字长共24位,控制位顺序如表3-2-1: 表3-2-1 微指令格式 A字段 B字段 C字段 141312选择000001LDA 010LDB 011LDR0100保留10111023M23 2221202218-1514-1211-98-65-0WR RD IOM A 字段 B 字段 C 字段 MA5-MA0 S3-S0 NOP 111 LDIR 保留保留11109选择000001ALU_B 010R0_B 011保留100保留101110NOP 1 1 1保留 保留保留876选择000001P010保留011保留100保留101110NOP 1 11 保留 保留保留M22 其中MA5MA0为6位的后续微地址,A 、B 、C 为三个译码字段,分别由三个控制位译码出多位。C 字段中 的P为测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序 的分支,本系统上的指令译码原理如图3-2-3所示,图中I7I2为指令寄存器的第72位输出,SE5SE0为微控器单元微地址锁存器的强置端输出,指令译码逻辑在IR 单元的INS_DEC (GAL20V8)中实现。 从图3-2-2中也可以看出,微控器产生的控制信号比表3-2-1中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。 本实验除了用到指令寄存器(IR )和通用寄存器R0外,还要用到IN 和OUT 单元,从微控器出来的 信号中只有IOM 、WR 和RD 三个信号,所以对这两个单元的读写信号还应先经过译码,其译码原理如图3-2-4所示。IR 单元的原理图如图3-2-5所 示,R0单元原理如图3-2-7所示,IN 单元的原理图见图2-1-3所示,OUT 单元的原理图见图3-2-6所示。 SE3 T4PI7 SE2 T4 P I6 图3-2-3 指令译码原理图 XMRD XMWR XIOW XIOR RD T3WR IOM LDIR T3 图3-2-4 读写控制逻辑 图3-2-5 IR 单元原理图 LED_B IOW LDR0 R0_B T4 图3-2-6 OUT单元原理图图3-2-7 R0 原理图本实验安排了四条机器指令,分别为ADD(0000 0000)、IN(0010 0000)、OUT(0011 0000)和HLT (0101 0000),括号中为各指令的二进制代码,指令格式如下: 助记符机器指令码说明 IN0010 0000IN R0 ADD0000 0000R0 + R0 R0 OUT0011 0000R0 OUT HLT0101 0000停机 实验中机器指令由CON单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器自动产生,为此可以设计出相应的数据通路图,见图3-2-8所示。 几条机器指令对应的参考微程序流程图如图3-2-9所示。图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,所有微地址均用16进制表示。向下的箭头指出了下一条要执行的指令。P为测试字,根据条件使微程序产生分支。 图3-2-8 数据通路图 图3-2-9 微程序流程图 将全部微程序按微指令格式变成二进制微代码,可得到表3-2-2的二进制代码表。 表3-2-2 二进制微代码表 四、实验内容与步骤 1. 按图3-2-10所示连接实验线路,仔细查线无误后接通电源。如果有滴报警声,说明总线有竞争现象,应关闭电源,检查接线,直到错误排除。 图3-2-10 实验接线图 2. 对微控器进行读写操作,分两种情况:手动读写和联机读写。 1) 手动读写 (1) 手动对微控器进行编程(写) 将时序与操作台单元的开关KK1置为停止档,KK3置为编程档,KK4置为控存档,KK5置为置数档。 使用CON单元的SD05SD00给出微地址,IN单元给出低8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的低8位。 将时序与操作台单元的开关KK5置为加1档。 IN单元给出中8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的中8位。IN单元给出高8位应写入的数据,连续两次按动时序与操作台的开关ST,将IN单元的数据写到该单元的高8位。 重复、四步,将表3-2-2的微代码写入2816芯片中。 (2) 手动对微控器进行校验(读) 将时序与操作台单元的开关KK1置为停止档,KK3置为校验档,KK4置为控存档,KK5置为置数档。 使用CON单元的SD05SD00给出微地址,连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯M7M0显示该单元的低8位。 将时序与操作台单元的开关KK5置为加1档。 连续两次按动时序与操作台的开关ST,MC单元的指数据指示灯M15M8显示该单元的中8位,MC单元的指数据指示灯M23M16显示该单元的高8位。 重复、四步,完成对微代码的校验。如果校验出微代码写入错误,重新写入、校验,直至确认微指令的输入无误为止。 2) 联机读写 (1) 将微程序写入文件 联机软件提供了微程序下载功能,以代替手动读写微控器,但微程序得以指定的格式写入到以TXT 为后缀的文件中,微程序的格式如下: 微指令格式说明: $M XX XXXXXX 微指令代码 十六进制地址 微指令标志 如$M 1F 112233,表示微指令的地址为1FH,微指令值为11H(高)、22H(中)、33H(低),本次实验的微程序如下,其中分号;为注释符,分号后面的内容在下载时将被忽略掉。 (2) 写入微程序 用联机软件的“”功能将该格式(*.TXT)文件装载入实验系统。装入过程中,在软件的输出区的结果栏会显示装载信息,如当前正在装载的是机器指令还是微指令,还剩多少条指令等。 (3) 校验微程序 选择联机软件的“”可以读出下位机所有的机器指令和微指令,并在指令区显示。检查微控器相应地址单元的数据是否和表3-2-2中的十六进制数据相同,如果不同,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的微指令,先用鼠标左键单击指令区的微存TAB按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入6位数据并回车,编辑框消失,并以红色显示写入的数据。 ; /* / ; / / ; / 微控器实验指令文件/ ; / / ; / By TangDu CO.,LTD / ; / / ; /* / ; /* Start Of MicroController Data * / $M 00 000001 ; NOP $M 01 007070 ; CON(INS)->IR, P $M 04 002405 ; R0->B $M 05 04B201 ; A加B->R0 $M 30 001404 ; R0->A $M 32 183001 ; IN->R0 $M 33 280401 ; R0->OUT $M 35 000035 ; NOP ; /* End Of MicroController Data * / 3. 运行微程序 运行时也分两种情况:本机运行和联机运行。 1) 本机运行 将时序与操作台单元的开关KK1、KK3置为运行档,按动CON单元的CLR按钮,将微地址寄存器(MAR)清零,同时也将指令寄存器(IR)、ALU单元的暂存器A和暂存器B清零。 将时序与操作台单元的开关KK2置为单拍档,然后按动ST按钮,体会系统在T1、T2、T3、T4节拍中各做的工作。T2节拍微控器将后续微地址(下条执行的微指令的地址)打入微地址寄存器,当前微指令打入微指令寄存器,并产生执行部件相应的控制信号;T3、T4节拍根据T2节拍产生的控制信号做出相应的执行动作,如果测试位有效,还要根据机器指令及当前微地址寄存器中的内容进行译码,使微程序转入相应的微地址入口,实现微程序的分支。 按动CON单元的CLR按钮,清微地址寄存器(MAR)等,并将时序与单元的开关KK2置为单步档。 置IN单元数据为00100011,按动ST按钮,当MC单元后续微地址显示为000001时,在CON单元的SD27SD20模拟给出IN指令00100000并继续单步执行,当MC单元后续微地址显示为000001时,说明当前指令已执行完;在CON单元的SD27SD20给出ADD指令00000000,该指令将会在下个T3被打入指令寄存器(IR),它将R0中的数据和其自身相加后送R0;接下来在CON单元的SD27SD20给出 OUT指令00110000并继续单步执行,在MC单元后续微地址显示为000001时,观查OUT单元的显示值是否为01000110。 2) 联机运行 联机运行时,进入软件界面,在菜单上选择,打开本实验的数据通路图,也可以通过工具栏上的下拉框打开数据通路图,数据通路图如图3-2-8所示。 将时序与操作台单元的开关KK1、KK3置为运行档,按动CON单元的总清开关后,按动软件中单节拍按钮,当后续微地址(通路图中的MAR)为000001时,置CON单元SD27SD20,产生相应的机器指令,该指令将会在下个T3被打入指令寄存器(IR),在后面的节拍中将执行这条机器指令。仔细观察每条机器指令的执行过程,体会后续微地址被强置转换的过程,这是计算机识别和执行指令的根基。也可以打开微程序流程图,跟踪显示每条机器指令的执行过程。 按本机运行的顺序给出数据和指令,观查最后的运算结果是否正确。 五、实验结果及分析 给一个20指令,存入数据00000111,单周期调试,按4下;指令00,将刚输入的两个数据相加,再存入R0中;指令30,将R0输出;指令50,停止运行。 上面截图显示的是将输入的数据赋值给R0的操作,这里要记得将OUT单元的输入门关上,不然就会显示出很神奇的画面。 将R0的值赋A,将R0的值赋给B,进行算数逻辑运算A+B,将结果赋给R0: 这是停机指令的操作,由此也可得出, 01010000就是停机指令 六、实 验 总 结 这个实验开始的时候就觉得还好,因为接线已经难不倒我了,但是在实验操作过程中,有点困难了,主要是对原理没有很清楚,不过经过请教别人的后,实验完成的还算顺利。这个微命令的实验操作起来还是感觉挺神奇的,特别是逻辑运算的那边。

    注意事项

    本文(微程序控制器组和微程序设计实验报告.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开