目录
一、课程设计题目 (2)
二、课程设计任务和要求 (2)
1、设计任务 (2)
2、功能指标和设计要求 (2)
2.1、基本模型机设计与实现 (2)
2.2、字长要求 (2)
三、实验设备 (3)
四、设计步骤 (3)
1、确定设计目标 (3)
2、总体结构与数据通路与硬件实现 (3)
3、确定指令系统 (3)
3.1、数据的表示格式 (3)
3.2、指令的编码 (3)
3.3、周期设计 (4)
3.4、微指令设计 (5)
3.5、微程序流程图 (5)
3.6、测试 (6)
五、课程设计总结 (6)
1、遇到的问题及解决方法 (6)
2、体会 (6)
六、附录 (6)
附录1:数据通路图 (7)
附录2:微程序流程图 (8)
附录3:二进制微代码表 (9)
附录4:实验程序及微程序 (11)
附录5:实验接线图 (12)
附录6:参考文献(资料) (12)
一、课程设计题目
模型机设计与实现
二、课程设计任务和要求
1、设计任务
基本模型机设计与实现。
2、功能指标和设计要求
利用所学过的理论知识,特别是微程序设计的思想,写出要设计的指令系统的微程序。
设计环境为TDN-CM+计算机组成原理教学实验箱、微机,联机软件等。
将所设计的微程序在此环境中进行调试,并给出测试思路和具体程序段。
最后撰写出符合要求的课程设计说明书、完成答辩。
2.1、基本模型机设计与实现
设计一台基本模型机,要求模型机指令系统至少要包括五条不同类型指令:如一条输入指令(假设助记符为IN),一条加法指令(假设助记符为ADD),一条存数指令(假设助记符为STA),一条输出指令(假设助记符为OUT)和一条无条件转移指令(假设助记符为JMP);利用设计的模型机,通过设计一个进行两个数求和运算的测试验证程序,验证模型机的功能。
2.2、字长要求
基本模型机的CPU数据字长为8位,采用定点补码表示。
指令字长为8的整数倍。
微指令字长为24位。
三、实验设备
TDN-CM++计算机组成原理实验系统一台,微机,虚拟软件,排线若干。
四、设计步骤
1、确定设计目标
根据本小组成员讨论,认为要让一台模型机完成基本功能,最起码应该要具有输入指令、加法指令、存数指令、输出指令和转移指令,故我们从这五条指令出发,设计我们的模型机。
2、总体结构与数据通路与硬件实现
总体结构设计包括确定各部件设置以及它们之间的数据通路结构。
在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。
本小组综合考虑计算机的速率、性能价格比、可靠性等要求,设计了合理的数据通路结构,确定了内总线及外总线方案。
硬件实现基于现有的基本实验箱平台,根据所设计模型机选择必要的元器件,并通过接插件(各种连线等)进行器件连接,组成所设计的模型机硬件系统(物理机)。
实验接线图见附录5。
3、确定指令系统
3.1、数据的表示格式
模型机采用定点补码表示法表示数据,且字长为8位,其格式如下:
7 6 5 4 3 2 1
符号尾数
3.2、指令的编码
根据实验箱的内部硬件结构,本小组相应设计出了5 条机器指令(IN(输入)、ADD(二进制加法)、STA(存数)、OUT(输出)、JMP(无条件转移)),其指令格式如表1所示(前4 位是操作码,后4 为用于寄存器编码):
表 1:指令格式表
指令助记符操作码地址码功能说明 IN 0000 0000 数据开关的状态→R0 ADD A 0001 0000 xxxxxxxx R0+[A] →R0
STA A 0010 0000 xxxxxxxx R0→[A]
OUT A 0011 0000 xxxxxxxx [A] →LED
JMP A 0100 0000 xxxxxxxx A→PC
通过内部译码电路即可得到微程序相应入口地址(译码电路如图1):
图 1 指令译码电路
3.3、周期设计
根据本小组讨论,认为取指令周期可能会造成RAM及总线冲突,故取指令周期有两个CPU周期组成。
其他指令周期根据其各自的运算特点设计(IN指令为1个CPU周期,ADD指令为5个CPU周期,STA指令为4个CPU周期,OUT指令为3个CPU周期,JMP指令为2个CPU周期)。
入口地址由图1所示的译码电路译码得到(IN指令为10,ADD指令为11,STA指令为12,OUT指令为13,JMP指令为14)。
3.4、微指令设计
根据本设计的数据通路图(见附录1),设计微指令的格式(表2所示)。
表 2 微指令格式
3.5、微程序流程图
根据数据通路图及本小组的周期设计,可以设计出机器指令的微程序流程图(见附录2)。
当执行“取指”微指令时,该微指令的判别测试字段为P(1)测试。
由于“取指”微指令是所有微程序都使用的公用微指令,因此P(1)测试结果出现多路分支。
笨设计用指令寄存器的高4位(IR7-IR4)作为测试条件,出现5
路分支,占用5个固定的微地址单元。
指令划分为操作码和地址码字段,当执行一条指令时,先把它从内存取到指令寄存器中,必须对操作码进行P1测试,通过节拍脉冲T4的控制以便识别所要求的操作。
“指令译码器”根据指令中的操作码译码结果强置微控制器单元的微地址,使下一条微指令指向相应的微程序首地址。
附录3为将附录2中的微程序流程图按照微指令格式转化二得到的“二进制微代码表”。
3.6、测试
测试代码见附录4实验程序及微程序。
按功能模块进行组装和分调,各功能模块工作正常。
连接所有模块,用单步微指令方式执行机器指令的微程序流程图,当全部微程序流程图检查完后,若运行结果正确,则在内存中装入微指令和机器指令,进行功能调试及执行指令的正确性验证。
所有功能模块都调试正常,进入总调试。
根据设计模型机功能测试验证程序,测试代码运行结果与理论推演一致。
故简单模型机设计成功。
五、课程设计总结
1、遇到的问题及解决方法
开始时,本小组将取指令周期设计为1个CPU周期,结果测试不能得到与推演一致的结果,经单步执行发现RAM冲突,故调整为2个CPU周期,测试成功,问题解决。
2、体会
课程设计是将以前在课堂上学的理论知识运用到实际的设计当中去,所以在设计过程中,我们碰到了各种各样的问题。
为了解决这些问题,我们仔细认真地翻阅了课本和笔记。
这在无形中帮助我们加深对所学知识的了解及运用能力,并且让我们明白什么地方是我们真正需要去关注的。
而且这样我们对课本以及以前学过的知识有了一个更好的总结与理解。
通过这次课程设计,本小组更进一步了解了计算机的组成,尤其对数据选择器、移位器、加法器、运算器、存储器和微程序控制器,有了非常透彻的认识。
并且对线路的连接与模型机的各个硬件的结构,以及微程序微指令的一些编制与设计有了一定的了解。
从一种微观的角度更加了解计算机模型机,这样我们对于计算机的了解更加深入。
对于计算机的工作原理也有部分更深入的认识。
还体会到了实践动手和合作的重要性。
六、附录
附录1:数据通路图
附录2:微程序流程图
附录3:二进制微代码表
附录4:实验程序及微程序
$P0000
$P0110
$P020A
$P0320
$P040B
$P0530
$P060B
$P0740
$P0800
$P0A01
$M00018110 $M0101ED82 $M0200C048 $M0300E004 $M0400B005 $M0501A206 $M06959A01 $M0700E00D $M08001001 $M0901ED83 $M0A01ED87 $M0B01ED8E $M0C01ED96 $M0D028201 $M0E00E00F $M0F00A015 $M1001ED92 $M1101ED94 $M1200A017 $M13018001 $M14002018 $M15070A01 $M1600D181 $M17070A10 $M18068A11 IN R0
ADD [0AH],R0 STA R0,[0BH] OUT [OBH] JMP 00H
附录5:实验接线图
附录6:参考文献(资料)
陈智勇.(2009).西安:电子科技大学出版社。