资源描述
课程设计报告
课 题: 复杂模型机设计
同组姓名: 陈珊(1108030416)
徐丽娜(1108030417)
宋利英(1108030421)
专业班级: 计科1104班
指导教师: 牟琦
设计时间: 2013-12-31
目录
一、 课程设计目的与意义 3
二、复杂模型机的设计及实现内容 3
1.数据格式 3
2.指令格式 3
3.指令系统 4
三、总体设计 4
1.设计复杂模型机的监控软件 4
2.设计微程序流程图 5
3.转换格式 5
4.实验接线 6
5.写微程序与程序 6
6.运行程序 7
7.验证 8
四、系统测试及实验截图 8
五、总结 14
一、 课程设计目的与意义
经过一系列硬件课程如计算机原理的学习及相关实验后,综合应用所学理论知识解决实际设计与应用问题,进行一个综合的系统的实验。培养实际动手能力,进一步提高硬件设计能力。培养实事求是与严肃认真的工作态度。通过设计过程,熟悉与掌握微机系统的硬件设计方法、设计步骤,真正做到理论联系实际,提高动手能力与分析问题、解决问题的能力。
综合运用所学计算机原理知识,设计并实现较为完整的计算机。
二、复杂模型机的设计及实现内容
1.数据格式
模型机规定采用定点补码表示法表示数据,且字长为8位,其格式如下:
其中第7位为符号位,数值表示范围是:-1≤X<1。
2.指令格式
模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、存数指令、取数指令、转移指令与停机指令。
⑴ 算术逻辑指令
设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:
7 6 5 4 3 2 1 0
OP-CODE
Rs
Rd
其中,OP-CODE为操作码,RS为源寄存器,RD为目的寄存器。
⑵ 访问指令及转移指令
模型机设计2条访问指令:即存数STA、取数LDA;2条转移指令:即无条件转移JMP、有进位转移指令BZC。指令格式为:
7 6 5 4 3 2 1 0
0 0
M
OP-CODE
Rd
D
其中,OP-CODE 为操作码,RD为目的寄存器地址(LDA、STA 指令使用)。D为位移量(正负均可),M为寻址模式,其定义如下:
寻址方式
有效地址
说明
00
01
10
11
E=D
E=(D)
E=(R2)+D
E=(PC)+D
直接寻址
间接寻址
R2变址寻址
相对寻址
本模型机规定变址RI指定为寄存器R2。
⑶ I / O指令
输入IN与输出OUT指令采用单字节指令,其格式如下:
7 6 5 4 3 2 1 0
OP-CODE
addr
Rd
其中,addr=01时,选中输入数据开关组KD0~KD7作为输入设备,addr=10时,选中2位数码管作为输出设备。
⑷ 停机指令 指令格式如下:
7 6 5 4 3 2 1 0
OP-CODE
0 0
0 0
HALT指令,用于实现停机操作。
3.指令系统
本模型机共有16条基本指令,其中算术逻辑指令7条,访问内存指令与程序控制指令4条,输入输出指令2条,其它指令1条。表3-8列出了各条指令的格式、汇编符号、指令功能。
三、总体设计
复杂模型机的数据通路框图如图3-16,图3-17所示。根据复杂模型机的硬件电路设计机器指令,再根据机器指令要求,设计微程序流程图及微程序,最后形成16进制文件。
图3-16
图3-17
四、实验步骤
1.设计复杂模型机的机器指令
$P00 44IN 01, R0
$P01 46IN 01, R2
$P02 98ADC R2, R0
$P03 81MOV R0, R1
$P04 F5RLC R1, R1
$P05 0CBZC 00, 00
$P06 00
2.设计微程序流程图
按照实验机设计的微指令格式,参照微指令流程图,设计微指令,并形成二进制代码表。
3.转换格式
程序:
$P00 44 $P01 46 $P02 98$P03 81
$P04 F5 $P05 0C $P06 00
微程序:
$M00 088105 $M01 82ED0 $M02 50C004
$M03 04A004 $M04 A0E004 $M05 06E004
$M06 07A004 $M07 A0E004 $M08 8AED05
$M09 8CED05 $M0A 3BA004 $M0B 018005
$M0C 3C2004 $M0D 0EA004 $M0E 0FB605
$M0F 25EA95 $M10 83ED05 $M11 85ED05
$M12 8DED05 $M13 A6ED05 $M14 011004
$M15 010407 $M16 168005 $M17 019A3D
$M18 019205 $M19 2AA205 $M1A 2CB205
$M1B 32A205 $M1C 33A205 $M1D 36A205
$M1E 378235 $M1F 398235 $M20 019004
$M21 018406 $M22 81DB05 $M23 E48005
$M24 018005 $M25 A0AA95 $M26 27A004
$M27 28BC05 $M28 29EA95 $M29 A0AA95
$M2A 2BB405 $M2B 419B95 $M2C 2DA405
$M2D 6EAB05 $M2E 2FAA0D $M2F 30AA05
$M30 71810D $M31 419B95 $M32 019A05
$M33 35B405 $M34 81DB05 $M35 419BBD
$M36 019A0D $M37 38882D $M38 019805
$M39 3A881D $M3A 019805 $M3B 080A07
$M3C 098A06
4.实验接线
在实验八的基础上将跳线器J13与J14由右边相连改为左边相连,再将IJ1连IJ2。详细如下:
a、跳线器J1~J12全部拨在右边(自动工作方式);
b、跳线器J16、J18、J23、J24全部拨在左边;
c、跳线器J15、J19、J25全部拨在右边,跳线器J13、J14拨在左边;
d、跳线器J20~J22、J26、J27连上短路片;
e、UJ1连UJ2,JSE1连JSE2,SJ1连SJ2;
f、MBUS连BUS2;
g、REGBUS连BUS5;
h、PCBUS连EXJ2;
i、ALUBUS连EXJ3;
j、ALUO1连BUS1;
k、EXJ1连BUS3;
l、ALUO2连BUS4;
n、IJ1连IJ2。
连接实验线路,仔细查线无误后接通电源。
5.写微程序与程序
① 手动方法写微程序参看实验六。
手动方法写代码程序(机器指令)步骤如下: 通过上一步将机器指令对应的微代码正确地写入E2ROM 2816芯片后,再进行机器指令程序的装入与检查。
A. 将"编程开关"置"运行"位置,"运行方式"开关置"单步"位置。
B. 拨动总清开关(0→1),微地址寄存器清零,程序计数器清零。然后使控制开关SWC、SWA开关置为"0 1",按动一次"启动运行"开关,微地址显示灯LUA0~LUA5显示"001001",再按动一次"启动运行"开关,微地址显示灯LUA0~LUA5显示"001100",此时数据开关的内容置为要写入的机器指令,再按动一次"启动运行"开关,即完成该条指令的写入。若仔细阅读微程序流程,就不难发现,机器指令的首地址只要第一次给入即可,PC会自动加1,所以,每次按动"启动运行"开关,只有在微地址灯显示"001100"时,才设置内容,直到所有机器指令写完。
C. 写完程序后须进行检验。拨动总清开关(0→1)后,微地址清零,PC程序计数器清零,然后使控制开关SWC、SWA为"0 0",按动"启动运行"开关,微地址灯将显示"001000",再按"启动运行"开关,微地址灯显示为"001010",第三次按"启动运行"开关,微地址灯显示为"111011",此时总线数据显示灯LZD0~LZD7显示为该首地址的内容,再次按动"启动运行"开关,微地址灯显示为"001000",此时,2位数码管显示的内容即为RAM中的数据,不断按动"启动运行"开关,可检查后续单元内容。
注意:每次仅在微地址灯显示为"001000"时,2位数码管显示的内容才是相应地址中的机器指令内容。
② 联机读/写微程序与程序
用联机软件的装载功能将16进制格式文件(文件名为C8JHE3)装入实验机即可(详细操作见联机软件的README)。
6.运行程序
① 单步运行程序
A. "编程开关"置"运行"状态,"运行方式"开关置为"单步"状态,"运行控制"开关置为"运行"状态。
B. 拨动总清开关(0→1),微地址清零,PC计数器清零,程序首地址为OOH。
C. 按动"启动运行"开关,即单步运行一条微指令。对照微程序流程图,观察微地址显示灯是否与流程一致。
②连续运行程序
A. "编程开关"置"运行"状态,"运行方式"开关置为"连续"状态,"运行控制开关置为"运行"状态。
B. 拨动总清开关,清微地址及PC计数器,按动"启动运行"开关,系统连续运行程序。如果要停止程序的运行,只需将"运行控制"开关置为"停止"状态,系统就停机。
7.验证
采用单步或连续运行方式执行机器指令,参照机器指令及微程序流程图,将实验现象及理论分析比较,验证系统执行指令的正确性。
四、系统测试及实验截图
图1 PC清零,自动+1在RAM中取地址为00H的指令44H
图2 从输入设备中读取数据1并送至R0
图3 PC自动+1在RAM中取地址为01H的指令46H
图4 指令46H送至IR进行译码并发出相应的控制信号
图5 从输入设备中读取数据2并送R2
图6 PC自动+1取地址为02H的指令98H
图7 指令98H送至IR进行译码并发出相应的控制信号
图8 寄存器R2中数据送至DR1
图9 寄存器R2中数据送至DR1
图10 ALU进行加法运算并将结果图11 R0中数据送至R1(转存)图12 PC+1,取地址为(04H)的指令(F5)
图13 将指令F5H送至IR并译码发出相应的控制信号
图14 将R0中数据(3)送至移位寄存器图15 移位寄存器进行移位操作(数据3变为数据6)
图16 将移位寄存器中数据存入R1
图17 PC+1,取内存地址为05H的指令0CH
图18 将指令0CH送至IR并译码发出相应的控制信号
图19 PC+1,取地址为05H的指令00H(JMP指令)
五、总结
这次实验总体来说还是比较容易的,就是在输入微程序与老师的测试程序时比较费力,弄不好又要重新输入(后来听说可以使用软件直接烧制)。再一个就是找错的时候需要非常的细心,各个方面的问题都要考虑到。比如说微程序本身有没有错,程序有没有写错,格式是否正确,最后还有考虑到插线或者导线的问题。经过这次试验,我深深的感到团队合作的重要,以及在困难面前冷静思考的好处。也进一步的加强我对计算机组成结构特别是控制器的设计的认识及掌握。
21 / 21
展开阅读全文