1、 课课 程程 设设 计计 报报 告告 课程设计名称:计算机组成原理课程设计计算机组成原理课程设计 课程设计题目:COP2000 实现补码 Booth 乘法 院(系):计算机学院 专 业:计算机科学与技术 班 级: 学 号: 姓 名: 指导教师: 完成日期: -I- 目目 录录 第第 1章章 总体设计方案总体设计方案 2 1.1 设计原理 2 1.2 设计思路 2 1.3 设计环境 2 第第 2章章 详细设计方案详细设计方案 3 2.1 总体和各功能模块详细设计方案 3 2.2 总体和各功能模块的流程图 5 第第 3章章 程序调试过程与结果分析程序调试过程与结果分析 10 3.1 程序调试过程.
2、 10 3.2 结果分析. 10 参考参考资料资料 15 附附 录录 16 -2- 第 1 章 总体设计方案 1.1 设计原理设计原理 课程设计内容:利用COP2000 的指令集编程实现两个 7bit (含 1bit 符号位) 补码相乘的功能,要求被乘数,乘数是 7bit 补码,乘积是 13 位补码。 实现任务的基本原理是 Booth算法。 1.2 设计思路设计思路 Booth补码一位乘的设计主要包括五个功能模块。 初始化:完成部分积,附加位,循环次数的初始化。 求和:根据 YnYn+1的值选择部分积和X补、-X补或是 0 相加。 右移:完成部分积和乘数部分整体右移一位,其中部分积是算术右移。
3、 判断循环次数:完成一次求和和右移操作后循环次数减一,最后一次只求 和不进行右移操作。 结果输出:将部分积和乘数部分分别保存到内存中。 1.3 设计环境设计环境 本次课程设计的环境是 COP2000 实验平台自带的集成开发环境, 允许用户进 行程序的编写、模拟运行、观察数据通路等操作。COP2000 实验平台对应的模型 机为 8 位机, 数据总线和地址总线均为 8 位。 它包括了一个标准 CPU 所具备的所 有部件,这些部件包括:运算器 ALU、累加器 A、工作寄存器 W、左移门 L、直 通门 D、右移门 R、寄存器组 R0R3、程序计数器 PC、地址寄存器 MAR、堆栈 寄存器 ST、中断向
4、量寄存器 IA、输入端口 IN、输出端口寄存器 OUT、程序存储 器 EM、指令寄存器 IR、微程序计数器 uPC、微程序存储器 uM 等。 此次课设是使用 COP2000 的指令集编程,所使用的部分指令如下: ADD A, R?; 将寄存器 R?中的值送到累加器 A 中 ADD A,MM; 将存储器 MM 地址中的值送到累加器 A 中 ADD A,#II ; 将立即数 II 加到累加器中 -3- SUB A,#II ; 从累加器 A 中减去立即数 II 加入累加器 A 中 AND A,#II ; 累加器 A“与”立即数 II OR A,#II ; 累加器 A“或”立即数 II MOV A,R
5、?; 将寄存器 R?的值送到累加器 A 中 MOV A,MM; 将存储器 MM 地址中的值送到累加器 A 中 MOV A,#II ; 将立即数 II 送到累加器 A 中 MOV MM, A ; 将累加器 A 中的值送到存储器 MM 地址中 MOV R?,#II; 将立即数 II 送到寄存器 R?中 JZ MM ; 若零标志位置 1,跳转到 MM 地址 JMP MM ; 跳转到 MM 地址 IN ; 从输入端口读入数据到累加器 A 中 OUT ; 将累加器 A 中的数据输出到输出端口 RR A ; 累加器 A 右移 CPL A ; 累加器 A 取反,再存入累加器 A 中 第 2 章 详细设计方案
6、 2.1 各功能模块详细设计方各功能模块详细设计方案案 2.1.1 总体总体设计方案设计方案 由于 Booth补码一位乘里包含部分积,乘数的补码Y补,附加位 Yn+1,被乘 数的补码X补,被乘数的相反数的补码-X补,还有循环次数 n。用寄存器 R0 保存部分积,R1 保存循环的次数,R2 保存输入的被乘数,R3 保存输入的乘数, 存储器 0F0H 地址空间内中保存的是被乘数的补码X补,0F1H 中保存的是被乘 数相反数的补码-X补,0F2H 中保存乘数的补码,0F3H 中保存附加位 Yn+1,最 后的结果部分积保存在 0E0H 中,乘数部分保存在 0E1H 中。由于被乘数和乘数 都是包含符号位在内的 7 位补码,乘积是包含符号位在内的 13 位补码,其中前 7 位来自部分积的低 7 位,后 6 位来自乘数部分的前 6 位。 -4- 2.1.2 初始化模块初始化模块设计方案设计方案 初始化部分应该完成部分积和