版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 实验八 基本模型机的设计与实现一 实验目的(1) 在掌握部件单元电路实验的基础上,进一步将其组成系统,构造一台基本模型计算机。 (2) 为其定义五条机器指令,并编写相应的微程序,具体上机调试掌握整机概念二 实验设备 TDNCM计算机组成原理教学实验系统一台,排线若干。三 实验内容 1) 实验原理 部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
2、本实验采用五条机器指令:IN(输入),ADD(二进制加法),STA(存数),OUT(输出),JMP(无条件转移)。其指令格式如下(前4位为操作码): 助记符 机器指令码 说明 IN 00000000 “INPUT DEVICE”中的开关状态 R0 ADD addr 0001 0000 ×××××××× R0+addr R0 STA addr 0010 0000 ×××××××× R0 addr OUT addr 0011 0000
3、215;××××××× addr LED JMP addr 0100 0000 ×××××××× addr PC 其中::IN为单字长(8位),其余为双字长指令,××××××××为addr对应的二进制地址码。 为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。 * 存储器读操作(KRD):拨动总清开关CLR后,控制台开关
4、SWB、SWA为“0 0”时,按START微动开关,可对RAM连续手动读操作。 * 存储器写操作(KWE):拨动总清开关CLR后,控制台开关SWB、SWA置为“0 1”时,按START微动开关可对RAM进行连续手动写入。 * 启动程序:拨动总清开关CLR后,控制台开关SWB、SWA置为“1 1”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。上述三条控制台指令用两个开关SWB,SWA的状态来设置,其定义如表1所示。表1 控制台的开关设置SWBSWA控制台指令001011读内存(KRD)写内存(KWE)启动程序(RP)根据以上要求,可设计数据通路框图,如图1所示。微指令
5、定义如表1所示。 系统涉及到的微程序流程如图2所示。当拟定“取指”微指令时,该微指令的判别测试字段为P(1)测试。由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1) 的测试结果出现多路分支。本机用指令寄存器的前4位(IR7一IR4)作为测试条件,出现5路分支,占用5个固定微地址单元。 控制台操作为P(4)测试,它以控制台开关SWB,SWA作为测试条件,出现了3路分支, 图1 数据通路框图 (a) 五条指令的微程序流程图ADD111001IN1312100201STAOUTSWR0P(1)PCARPC+1RAMBUSBUSIR0403PCARPC+1RAMBUSBUSAR1507PC
6、ARPC+1RAMBUSBUSAR16PCARPC+1RAMBUSBUSAR26PCARPC+1RAMBUSBUSPCJMP140605R0DR1RAMBUSBUS-DR0(DR1)+(DR2)R001R0BUSBUSRAM0117RAMBUSBUSDR101DR1LED2501运行微程序八进制地址图2 微程序流程图KWE23202000KRDRPP(1)1507PCARPC+1RAMBUSBUSDR116PCARPC+1DR1LED控制台213024PCARPC+1(SW)BUSBUSDR1DR1RAM(b) 控制台微程序流程图八进制地址01占用3个固定微地址单元。当分支微地址单元固定后,剩
7、下的其他地方就可以一条微指令占用控存一个微地址单元随意填写。注意:微程序流程图上的单元地址为8进制。 当全部微程序设计完毕后,应将每条微指令代码化,表2即为将图2的微程序流程图按微指令格式转化而成的“二进制微代码表”。 下面介绍指令寄存器(IR):指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数构成,为了执行任何给定的指令,必须对操作码进行测试P(1),通过节拍脉冲T4的控制以便识别所要求的操作。“指令译码器” (实验板上标有“INS DECODE”的芯片)根据指令中的操作码译码强置微控器
8、单元的微地址,使下一条微指令指向相应的微程序首地址。本系统有两种外部IO设备,一种是二进制代码开关,它作为输入设备(INPUT DEVICE):另一种是数码块,它作为输出设备(OUTPUT DEVICE)。例如:输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线上,当写信号(WR)有效时,将数据打入输出锁存器,驱动数码块显示。表2 微程序代码表微地址S3 S2 S1 S0 M Cn WEA9 A8ABCA5-A0000 0 0 0 0 0 0 1 10 0 00 0 01 0 00 1 0 0 0 0010 0 0 0 0 0 0
9、 1 11 1 01 1 01 1 00 0 0 0 1 0020 0 0 0 0 0 0 0 11 0 00 0 00 0 10 0 1 0 0 0030 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 0 1 0 0040 0 0 0 0 0 0 0 10 1 10 0 00 0 00 0 0 1 0 1050 0 0 0 0 0 0 1 10 1 00 0 10 0 00 0 0 1 1 0061 0 0 1 0 1 0 1 10 0 11 0 10 0 00 0 0 0 0 1070 0 0 0 0 0 0 0 11 1 00 0 00 0 00 0 1 1 0 1
10、100 0 0 0 0 0 0 0 00 0 10 0 00 0 00 0 0 0 0 1110 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 0 1 1120 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 0 1 1 1130 0 0 0 0 0 0 1 11 1 01 1 01 1 00 0 1 1 1 0140 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 1 1 0150 0 0 0 0 0 1 0 10 0 00 0 10 0 00 0 0 0 0 1160 0 0 0 0 0 0 0 11 1 00 0 00
11、 0 00 0 1 1 1 1170 0 0 0 0 0 0 0 10 1 00 0 00 0 00 1 0 1 0 1200 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 0 1 0210 0 0 0 0 0 0 1 11 1 01 1 01 1 00 1 0 1 0 0220 0 0 0 0 0 0 0 10 1 00 0 00 0 00 1 0 1 1 1230 0 0 0 0 0 0 1 10 0 00 0 00 0 00 0 0 0 0 1240 0 0 0 0 0 0 0 00 1 00 0 00 0 00 1 1 0 0 0250 0 0 0 0 1 1
12、 1 00 0 01 0 10 0 00 0 0 0 0 1260 0 0 0 0 0 0 0 11 0 10 0 01 1 00 0 0 0 0 1270 0 0 0 0 1 1 1 00 0 01 0 10 0 00 1 0 0 0 0300 0 0 0 0 1 1 0 10 0 01 0 10 0 00 1 0 0 0 1本实验设计机器指令程序如下: 地址(二进制) 内容(二进制) 助记符 说 明 0000 0000 0000 0000 IN R0 “INPUT DEVICE”R0 0000 0001 0001 0000 ADD 0AH,R0 R0+0AH R0 0000 0010 00
13、00 1010 0000 0011 0010 0000 STA R0,0BH R00BH 0000 0100 0000 1011 0000 0101 0011 0000 OUT 0BH 0BH LED 0000 0110 0000 1011 0000 0111 0100 0000 JMP 00H 00HPC 0000 1000 0000 0000 0000 1001 0000 1010 0000 0001 自定0000 1011 求和结果 四 实验步骤 (1) 按图20连接实验线路。图20 基本模型机实验接线图(2) 写程序 方法一:手动写入 先将机器指令对应的微代码正确地写入2816中,由于
14、在微程序控制实验中已将微代码写入E2PROM芯片中,对照表5校验正确后就可使用。 使用控制台KWE和KRD微程序进行机器指令程序的装入和检查。A.使编程开关处于“RUN",STEP为“STEP”状态,STOP为“RUN”状态。B拨动总清开关CLR(01),微地址寄存器清零,程序计数器清零。然后使控制台SWB,SWA开关置为“01”,按动一次启动开关START,微地址显示灯显示“010001”,再按动一次START,微地址灯显示“010100"。此时,数据开关的内容置为要写入的机器指令,按动两次START键后,即完成该条指令的写入。若仔细阅读KE的流程,就不难发现,机器指令的
15、首地址总清后为零,以后每个循环PC会自动加1,所以,每次按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。C写完程序后须进行校验。拨动总清开关CLR(01)后,微地址清零。PC程序计数器清零,然后使控制台开关SWB,SWA为“00”,按动启动START,微地址灯将显示“010000”;再按START,微地址灯显示为“010010";第3次按START,微地址灯显示为“010111”,再按START后,此时输出单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“010000”
16、时,是将当前地址中的机器指令写入到输出设备中显示。方法二:联机读写程序 按照规定格式,将机器指令及表2微指令二进制表编辑成十六进制的如下格式文件。微指令格式中的微指令代码为将表2中的24位微代码按从左到右分成6个4位,将此6个4位二进制代码化为相应的十六进制数即可。 程 序 $P4000 $P4110 $P420A机器指令格式说明:$P×× ×× 机器指令代码 十六进制地址 $P4320 $P440B $P4530微指令格式说明:$M×× ×××××× 微指令代码 十六进制地
17、址 $P460B $P4740 $P4800 $P4A01 微程序 $M00018110$M0901ED83$M1200A017 $M0101ED82$M0A01ED87 $M13018001 $M0200C048 $M0B01ED8E $M14002018 $M0300E004 $M0C01ED96 $M15070A01 $M0400B005 $N0D028201$M1600D181 $M0501A206 $M0E00E00F$M17070A10 $M06959A01 $M0F00A015$M18068A11 $M0700E00D $M1001ED92$M18068A11$M08001001
18、 $M1101ED94 用联机软件的传送文件功能(F4)将该格式文件传入实验系统即可, (3) 运行程序 (A) 单步运行程序 使编程开关处于“RUN”状态,STEP为“STEP”状态,STOP为“RUN”状态。 拨动总清开关CLR(01),微地址清零,程序计数器清零。程序首址为00H。 单步运行一条微指令,每按动一次START键,即单步运行一条微指令。对照微程序流程图,观察微地址显示灯是否和流程一致。 当运行结束后,可检查存数单元(0BH)中的结果是否和理论值一致。 (B) 连续运行程序 使“STATE UNIT”中的STEP开关置为“EXEC”状态。STOP开关置为“RUN”状态。 拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将STOP拨至“STOP”时,系统停机。 停机后,可检查存数单元(0BH)结果是否正确。* 若联机运行程序时,进入DEBUG调试界面,总清开关CLR(101)清零后,程序首址为00H,按相应功能键即可联机运行、调试程序。(软件使用说明请看(10.8)注:模型机的运行操作(1)打开下位机实验系统的电源开关, 点击图标CMPP,运行上位机软件。 (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论