1、计算机组成原理课程设计题 目: 计算机原理课程设计 学 院: 计算机科学与工程学院 专 业: 计算机科学与技术 姓 名: 孤狼 学 号: 1100310315 指导教师: 2014 年 03 月 20 日目录一.课程设计选题和完成内容 .2二、系统的总体设计 .22.1 嵌入式 CISC 模型机的数据通路框图 .22.2 系统的操作控制器的逻辑框图 .22.3 模型机的指令格式 .32.4 编写汇编源程序 .52.5 最终机器码.5三、时序产生器5四、 微程序控制器的设计 .64.1 设计微指令流程图 .64.2 设计微指令格式和微指令代码表 .84.3 设计地址转移逻辑电路 .10五、单元电
2、路设计 .105.1 模型机顶层电路设计.115.2 模型机 crom 单元电路设计.12六、设计过程所遇到的问题及解决记录 136.1JNS 无法完成循环跳转.136.2 STO( STO R2 (R0) )存储位置每次都为00H.13七、测试及结果分析 .错误!未定义书签。八、心得体会总结 .16九、附录 .16各个单元的电路设计或 VHDL 源文件1一.课程设计选题和完成内容选题:本设计选择题目为 A 类第一题题目:设计一台嵌入式 CISC 模型计算机采用定长 CPU 周期、联合控制方式,并运行能完成一定功能的机器语言源程序进行验证,机器语言源程序功能如下:A 类(最高成绩为“优” ):
3、输入包含 5 个整数(有符号数)的数组 M,输出所有负数的平方和。 (非卓越班) 输入包含 5 个整数(有符号数)的数组 M,输出最大负数的绝对值。 (非卓越班) 输入包含 10 个整数(无符号数)的数组 M,输出众数(出现次数最多的数)及其出现的次数。 (卓越班) 输入包含 10 个整数(无符号数)的数组 M,输出中位数。 (卓越班) 说明:A 类题目的嵌入式模型计算机内必须设计和使用 RAM 存储器读写数据,相应地需要设计对 RAM 存储器数据的读写指令,以及对 RAM 中数组操作必须的寄存器间接寻址方式等。B 类(最高成绩为“良” ):输入 5 个整数(有符号数) ,输出所有负数的平方和
4、。 (非卓越班) 输入 5 个整数(有符号数) ,输出最大负数的绝对值。 (非卓越班) 输入 5 个整数(有符号数) ,输出它们的平均值,以及小于此平均值的数的个数。 (卓越班) 要完成的内容:1.完成系统的总体设计,画出模型机数据通路框图;2.设计微程序控制器(CISC 模型计算机)的逻辑结构框图; 3.设计机器指令格式和指令系统; 4.设计时序产生器电路; 5.设计所有机器指令的微程序流程图; 6.设计操作7.的所有单元电路,并用 VHDL 语言(也可使用 GDF 文件-图形描述文件)8. 对模型机中控制器单元;设计模型机的各个部件进行编程,并使之成为一个统一的整体,即形成顶层电路。9.由
5、给出的题目和设计的指令系统编写相应的汇编语言源程序;9.根据设计的指令格式,将汇编语言源程序手工转换成机器语言源程序,并将其设计到模型机中的 ROM 中去; 10.使用 EDA 软件进行功能仿真,要保证其结果满足题目的要求;(其中要利用 EDA 软2件提供的波形编辑器,选择合适的输入输出信号及中间信号进行调试。 )二、系统的总体设计2.1 嵌入式 CISC 模型机的数据通路框图图 2-12.2 系统的操作控制器的逻辑框图32.3 模型机的指令格式这里,计算机数据通路的控制将由微程序控制器来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器
6、指令对应一个微程序。此模型的系统共设计了共有 10 条指令,分别为:IN,MOV,LAD,STO,INC,JNS, ADD,MUL, OUT,TEST。2.3.1 具体指令格式如下:2.3.2 对 Rs 和 Rd 的规定:2.3.3 模型机规定数据的表示采用定点整数补码表示,单字长为 8 位,其格式如下:指令格式微地址 助记符号15-12 11 10 9 8 7 -0指令功能000001 MOV Rd,im 0001 xx Rd im 立即数 imRd000010 INT Rd 0010 xx Rd xx 将输入数据存到 Rd 寄存器000011 STO Rs,(Rd) 0011 Rs Rd
7、xx (Rs)-(Rd)将 Rs 的内容存到Rd 地址中000100 INC Rd 0100 xx Rd xx (Rd)+1Rd 锁存 SF 和 ZF000101 DEC Rd 0101 xx Rd xx (Rd)-1Rd 锁存 SF 和 ZF000110 TEST Rd 0110 xx Rd xx 测试 (Rd)是否为负,锁存 SF000111 JNS addr 0111 xx xx addr 若不为负数,则 addrPC001000 LAD(Rs),Rd1000 Rs Rd xx (Rs)-Rd 将 Rs 地址的内容读到 Rd 001001 MUL Rs Rd 1001 Rs Rd xx
8、(Rs)*(Rd)Rd001010 ADD Rs,Rd 1010 Rs Rd addr (Rs)+(Rd)Rd001011 OUT Rs 1011 Rs xx xx (Rs)OUTBUSRs 或 Rd 选定的寄存器0 0 R00 1 R11 0 R21 1 R342.4 编写汇编源程序我们要实现的功能是对连续输入的 5 个数据并存储到 RAM 的连续的存储单元中,然后再从RAM 中将这 5 个数据依次读取出来并作判断是否为数,将 5 个数中所有的负数其求平方和,并对其结果进行显示等功能,从而得到一个简单的复杂指令模型机所实现的功能和结果/根据要求编写如下汇编源程序:MOV R0,00H ;数据
9、存放在 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 ;测试取出的数是否为负数JN
10、S L3 ;若不为负数,则跳转到 L3MUL R2,R2 ;若为负数,则求平方ADD R2,R3 ;再求平方和,把结果送到 R3L3: INC R0 ;RAM 地址+1DEC R1 ;计数-1+TST R1 ;测试计数是否到达 5 次, (R1)是否为负数JNS L2 ;为正数,计数还不到 5 次,则跳转到 L2OUT R3 ;计数到达 5 次,则将最后结果输出7 6 5 4 3 2 1 0符号位 尾数52.5 最终机器码为:三时序产生器T1、T2、T3、T4 与 CLR、Q 之间的关系图如下:地址 助记符(汇编) 机器代码 作用00 MOV R0,00H 0001000000000000 数
11、据存放在 RAM 中的地址 00H 开始01 MOV R1,4H 0001000100000100 计数 从4H(4)开始,到-1时结束02 L1:INT R2 0010001000000000 输入一个数到 R203 STO R2,(R0) 0011100000000000 将输入的数存放到 RAM 的(R0)地址04 INC R0 0100000000000000 RAM 地址指针+105 DEC R1 0101000100000000 计数-106 TEST R1 0110000100000000 测试计数是否到达 5 次, (R1)是否为负数,锁存 SF07 JNS L1 011100
12、0000000010 根据 SF 符号标志的判断,若不为负数,则跳转08 MOV R0,00H 0001000000000000 当5 个数输入存储完成后,重新初始化 RAM 指针09 MOV R1,4H 0001000100000100 重置计数0A L2:LAD(R0),R2 1000001000000000 将(R0)地址的数取出送到 R2中0B TEST R2 0110001000000000 测试取出的数是否为负数,锁存 SF0C JNS L3 0111000000001111 若不为负数,则跳转到 L30D MUL R2,R2 1001101000000000 若为负数,则求平方0
13、E ADD R2,R3 1010101100000000 再求平方和,把结果送到 R30F L3:INC R0 0100000000000000 RAM 地址 +110 DEC R1 0101000100000000 计数-1+11 TEST R1 0110000100000000 测试计数是否到达5次, (R1)是否为负数,锁存 SF12 JNS L2 0111000000001010 为正数,计数还不到 5 次,则跳转到 L213 OUT R3 1011110000000000 计数到达 5 次,则将最后结果输出6四微程序控制器的设计微程序控制器的设计过程包括:(1)根据微处理器结构图、指
14、令格式和功能设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;(2)设计微指令格式和微指令代码表;(3)设计地址转移逻辑电路;(4)设计微程序控制器中的其它逻辑单元电路,包括微地址寄存器、微命令寄存器和控制 存储器;(5)设计微程序控制器的顶层电路(由多个模块组成) 。4.1 设计微指令流程图根据微处理器结构图、指令格式和功能设计所有机器指令的微程序流程图,并确定每条微指令的微地址和后继微地址;700MOV INT STO INC DEC TEST JNS LAD MUL ADD OUT 01 02 03 04 05 06 07 08 09 0A 0B0E 0C 00 00
15、 00 00 0000 00 00 00 SF=1 SF=0 001000 00RdYY+1-Rd锁存SF,ZF测试 Rd的最高位,锁存到SF 中Rs-XRd-YX*Y-Rd锁存SF, ZFRs-XRd-YX+Y -Rd锁 ZF,SFROM-BUSBUS-PCIR(A)RdSW-Rd Rd-AR Rs-ARRdYY+1-Rd锁存SF,ZFRD RAMDBUS-RdP(2)Rs-DBUSWE RAM IR(A)RdPC-ABUS( I ) ,RD ROMIBUS-IR ,PC +1P(1 )84.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 不装入,不计数