计算机组成原理课程设计题目:计算机原理课程设计学院:计算机科学与工程学院专业:计算机科学与技术姓名:孤狼学号: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-12.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 -----000000MOV Rd,im 0001 xx Rd im 立即数im→Rd 12.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 ;输入一个数到R2STO R2,(R0) ;将输入的数存放到RAM的(R0)地址INC R0 ;RAM地址指针+1DEC R1 ;计数-1TEST R1 ;测试计数是否到达5次,(R1)是否为负数JNS L1 ;根据SF符号标志的判断,若不为负数,则跳转MOV R0 00H ;当5个数输入存储完成后,重新初始化RAM指针MOV R1 4H ;重置计数L2: LAD (R0) R2 ;将(R0)地址的数取出送到R2中TEST R2 ;测试取出的数是否为负数JNS L3 ;若不为负数,则跳转到L3MUL R2,R2 ;若为负数,则求平方ADD R2,R3 ;再求平方和,把结果送到R3L3: INC R0 ;RAM地址+1DEC R1 ;计数-1+TST R1 ;测试计数是否到达5次,(R1)是否为负数JNS L2 ;为正数,计数还不到5次,则跳转到L2OUT R3 ;计数到达5次,则将最后结果输出2.5 最终机器码为:三.时序产生器T1、T2、T3、T4与CLR 、Q 之间的关系图如下:四.微程序控制器的设计微程序控制器的设计过程包括:(1)根据微处理器结构图、指令格式和功能设计所有机器指令的微程序流程图,并确定每07 JNS L1 00010 根据SF 符号标志的判断,若不为负数,则跳转 08 MOV R0,00H 00000 当5个数输入存储完成后,重新初始化RAM 指针 09 MOV R1,4H 00100 重置计数0A L2:LAD(R0),R2 00000 将(R0)地址的数取出送到R2中 0B TEST R2 00000 测试取出的数是否为负数,锁存SF 0C JNS L3 01111 若不为负数,则跳转到L3 0D MUL R2,R2 00000 若为负数,则求平方 0E ADD R2,R3 00000 再求平方和,把结果送到R3 0F L3:INC R0 00000 RAM 地址+1 10 DEC R1 00000 计数-1+11 TEST R1 00000 测试计数是否到达5次,(R1)是否为负数,锁存SF 12 JNS L2 01010 为正数,计数还不到5次,则跳转到L2 13OUT R300000计数到达5次,则将最后结果输出条微指令的微地址和后继微地址;(2)设计微指令格式和微指令代码表;(3)设计地址转移逻辑电路;(4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制存储器;(5)设计微程序控制器的顶层电路(由多个模块组成)。
4.1设计微指令流程图根据微处理器结构图、指令格式和功能设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;00MOV INT STO INC DEC TEST JNS LAD MUL ADD OUT. . . 资料. .0E0C00 00 00 00 0000 00 00 00SF=1 SF=0 00100000. . . 资料. .4.2 设计微指令格式和微指令代码表指令流程图设计完成后,开始设计微指令格式和微指令代码表,按照要求,CISC模型机系统使用的微指令采用全水平型微指令,字长为26位,其中微命令字段为18位,P字段为2位,后继微地址为6位,其格式如下:按照此格式并根据设计的指令流程图,可以得到:由微指令格式和微程序流程图编写的微指令代码表如下所示,在微指令的代码表中微命令字段从左边到右代表的微命令信号依次为:LOAD、LDPC、LDAR、LDIR、LDRi、LDPSW、RS_B、S2、S1、S0、ALU_B、SW_B、LED_B、RD_B、CS_B、RAM_B、CS_I、ADDR_B。
CLR LOAD LDPC 功能0 X X 将PC清01 0 BUS->PC1 1 0 不装入,不计数1 1 PC+1 S2 S1 S0 功能0 0 0 X+Y,修改ZF,SF4.3设计地址转移逻辑电路地址转移逻辑电路是根据微程序流程图中的棱形框部分及多个分支微地址,利用微地址寄存器的异步置“1”端,实现微地址的多路转移。
地址转移逻辑电路中异步置“1”信号SE6~SE1表达式的确定与P字段测试时转移微地址的确定密切相关.由于微地址寄存器中的触发器异步置“1”端低电平有效,与µA4~µA0对应的异步置“1”控制信号SE5~SE1的逻辑表达式为:(µA5的异步置“1”端SE6实际未使用)SE6 <= '1';SE5 <= NOT(NOT(SF) AND P2 AND T4);SE4 <= NOT(I4 AND P1 AND T4);SE3 <= NOT(I3 AND P1 AND T4);SE2 <= NOT(I2 AND P1 AND T4);SE1 <= NOT(I1 AND P1 AND T4);五、单元电路设计设计模型机中的所有单元电路,并用VHDL语言(也可使用GDF文件----图形描述文件)对模型机中的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路或顶层文件。
具体设计方法见附录。
重点设计单元电路为:CR0M,ALU,ROM.CROM内部重点单元:COUNTROM,ADDR,MCOMMAND5.1模型机(顶层)电路:5.2模型机crom单元电路:六.设计测试过程所遇到的问题及解决记录6.1 JNS (JNS L2\JNS L3)无法实现循环跳转问题所在:没有认真注意到P测试的返回地址与指令IR->PC地址的关系,开始时随便设置了IR->PC的地址问题解决:后来了解到改地址与P(2)测试相关,改为010000后,跳转成功。
6.2 STO(STO R2 (R0) )存储位置每次都为00H问题所在:STO指令中开启ADDR_B,关ALU_B,导致取地址来自于ROM内的机器码后八位addr,该机器码后八位为00H。
问题解决:微指令中关ADDR_B,开ALU_B,ALU设置直接输出Y,此时Y值来源于(R0),即为目的地址。