计算机组成原理课设论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机组成原理课程设计
题目:计算机原理课程设计
学院:计算机科学与工程学院
专业:计算机科学与技术
姓名:孤狼
学号:1100310315
指导教师:
2014年03月20 日
目录
一.课程设计选题和完成内容 (2)
二、系统的总体设计 (2)
2.1 嵌入式CISC模型机的数据通路框图 (2)
2.2 系统的操作控制器的逻辑框图 (2)
2.3模型机的指令格式 (3)
2.4编写汇编源程序 (5)
2.5最终机器码 (5)
三、时序产生器 (5)
四、微程序控制器的设计 (6)
4.1设计微指令流程图 (6)
4.2 设计微指令格式和微指令代码表 (8)
4.3设计地址转移逻辑电路 (10)
五、单元电路设计 (10)
5.1模型机顶层电路设计 (11)
5.2模型机crom单元电路设计 (12)
六、设计过程所遇到的问题及解决记录136.1JNS无法完成循环跳转 (13)
6.2STO(STO R2 (R0) )存储位置每次都为00H (13)
七、测试及结果分析 ................................................................................... 错误!未定义书签。
八、心得体会总结 (16)
九、附录 (16)
各个单元的电路设计或VHDL源文件
一.课程设计选题和完成内容
选题:本设计选择题目为A类第一题
题目:设计一台嵌入式CISC模型计算机
采用定长CPU周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:
A类(最高成绩为“优”):
●输入包含5个整数(有符号数)的数组M,输出所有负数的平方和。(非卓越班)
●输入包含5个整数(有符号数)的数组M,输出最大负数的绝对值。(非卓越班)
●输入包含10个整数(无符号数)的数组M,输出众数(出现次数最多的数)及其出现的次数。(卓越班)
●输入包含10个整数(无符号数)的数组M,输出中位数。(卓越班)
说明:A类题目的嵌入式模型计算机内必须设计和使用RAM存储器读写数据,相应地需要设计对RAM存储器数据的读写指令,以及对RAM中数组操作必须的寄存器间接寻址方式等。
B类(最高成绩为“良”):
●输入5个整数(有符号数),输出所有负数的平方和。(非卓越班)
●输入5个整数(有符号数),输出最大负数的绝对值。(非卓越班)
●输入5个整数(有符号数),输出它们的平均值,以及小于此平均值的数的个数。(卓越班)
要完成的内容:
1.完成系统的总体设计,画出模型机数据通路框图;
2.设计微程序控制器(CISC模型计算机)的逻辑结构框图;
3.设计机器指令格式和指令系统;
4.设计时序产生器电路;
5.设计所有机器指令的微程序流程图;
6.设计操作
7.的所有单元电路,并用VHDL语言(也可使用GDF文件--图形描述文件)
8. 对模型机中控制器单元;
设计模型机的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路。
9.由给出的题目和设计的指令系统编写相应的汇编语言源程序;
9.根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计
到模型机中的ROM中去;
10.使用EDA软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用EDA软
件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。)
二、系统的总体设计
2.1 嵌入式CISC模型机的数据通路框图
图2-1
2.2 系统的操作控制器的逻辑框图
2.3模型机的指令格式
这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
此模型的系统共设计了共有10 条指令,分别为:IN,MOV,LAD,STO,INC,JNS, ADD,MUL,OUT,TEST。
2.3.1具体指令格式如下:
微地址助记符号指令格式指令功能
15--12 11 10 9 8 7 -----0
00000
MOV Rd,im 0001 xx Rd im 立即数im→Rd 1
2.3.2对Rs和Rd的规定:
2.3.3模型机规定数据的表示采用定点整数补码表示,单字长为8位,其格式如下:
2.4编写汇编源程序
我们要实现的功能是对连续输入的5个数据并存储到RAM的连续的存储单元中,然后再从RAM中将这5个数据依次读取出来并作判断是否为数,将5个数中所有的负数其求平方和,并对其结果进行显示等功能,从而得到一个简单的复杂指令模型机所实现的功能和结果
//根据要求编写如下汇编源程序:
MOV R0,00H ;数据存放在RAM中的地址
MOV R1,4H ;计数从4H(4)开始,到-1时结束
L1: INT R2 ;输入一个数到R2
STO R2,(R0) ;将输入的数存放到RAM的(R0)地址
INC R0 ;RAM地址指针+1
DEC R1 ;计数-1
TEST R1 ;测试计数是否到达5次,(R1)是否为负数
JNS L1 ;根据SF符号标志的判断,若不为负数,则跳转