组成原理课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳航空航天大学
课程设计报告
课程设计名称:计算机组成原理课程设计
课程设计题目:定点原码一位乘法器设计与实现
院(系):计算机学院
专业:计算机科学与技术(物联网方向)
班级:34010105
学号:2013040101211
姓名:李浩渊
指导教师:施国君
完成日期:2016 年 1 月 14 日
目录
第1章总体设计方案 (2)
1.1 设计原理 (2)
1.2 设计思路 (2)
1.3 设计环境 (2)
1.3.1 Xilinx foundation f3.1 设计软件 (2)
1.3.2 COP2000集成调试软件 (3)
第2章详细设计方案 (4)
2.1 总体方案的设计与实现 (4)
2.2 模块的设计与实现 (4)
2.2.1 被乘数模块 (4)
2.2.2 乘数模块 (7)
2.2.3部分积模块 (10)
2.2.4 加法器 (12)
2.2.5计数控制模块 (15)
2.3 总电路仿真测试 (18)
2.3.1 建立仿真波形文件及仿真信号选择 (18)
2.3.2 功能仿真结果与分析 (18)
2.4 顶层设计方案的设计与实现 (20)
2.4.1 创建顶层图形设计文件 (20)
2.4.2 器件的选择与引脚所定 (20)
第3章编程下载与硬件测试 (21)
3.1 编程下载 (21)
3.2 硬件测试及结果分析 (21)
参考文献 (24)
第1章总体设计方案
1.1 设计原理
乘法的运算过程归纳如下:
(1)乘法运算可用移位和加法来实现,两个8位数相乘,总共需要进行8次加法运算和8次移位。
(2)由乘数的末位值确定被乘数是否与原部分积相加,然后右移一位,形成新的部分积;同时,乘数也右移一位,由次低位作新的末位,空出最高位放部分积的最低位。
(3)每次做加法时,被乘数仅仅与原部分积的高位相加,其低位被移至乘数所空出的高位位置。
计算机很容易实现这种运算规则。用一个寄存器存放被乘数,一个寄存器存放乘积的高位,另一个寄存器存放乘数及乘积的低位,再配上加法器及计数控制电路,就可组成乘法器。
原码一位乘的运算规则如下:
(1) 两个原码数相乘,乘积的符号位由两原码符号异或运算结果决定。
(2) 乘积的数值部分由两数绝对值相乘。
1.2 设计思路
按照课设题目要求及设计原理,将整个电路的设计分为以下模块:被乘数模块、乘数模块、部分积模块、加法器模块、控制电路模块。在电路的具体实现过程中,配合相应时钟脉冲和逻辑门电路已达到预期效果。
设计过程采用自上而下的方法,顶层设计采用原理图设计输入方式,底层设计也采用原理图设计输入方式。当最终的总芯片仿真无误时,经编译形成*.bit文件并下载到XCV2000可编程逻辑芯片中,经硬件测试验证设计的正确性。
1.3 设计环境
1.3.1 Xilinx foundation f3.1 设计软件
Xilinx foundation f3.1 是Xilinx 公司的可编程器件开发工具,该平台功能强大,主要用于百万逻辑门设计。该系统由设计入口工具、设计实现工具、设计验证工
具三大部分组成。
设计入口工具包括原理图编辑器、有限状态机编辑器、硬件描述语言(HDL)编辑器、LogiBLOX模块生成器、Xilinx内核生成器等软件。其功能是:接收各种图形或文字的设计输入,并最终生成网络表文件。设计实现工具包括流程引擎、限制编辑器、基片规划器、FPGA编辑器、FPGA写入器等软件。设计实现工具用于将网络表转化为配置比特流,并下载到器件。设计验证工具包括功能和时序仿真器、静态时序分析器等,可用来对设计中的逻辑关系及输出结果进行校验,并详尽分析各个时序限制的满足情况。
1.3.2 COP2000集成调试软件
COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows下运行。
图1.3.2-1 COP2000计算机组成原理实验系统
第2章详细设计方案
2.1 总体方案的设计与实现
课设题目要求是被乘数和乘数的位数均为8位,但是便于设计,在具体的电路实现过程中,输入端采用双符号位,即输入为10位二进制数据,符号位2位,数据位8位。
按照第1章中的设计原理及设计思路,整个电路共有5大模块。
(1)被乘数模块:用来存放被乘数的寄存器,并且接收乘数的最低位,完成被乘数每一位与乘数最低位分别相与的功能并输出结果。
(2)乘数模块:用来存放乘数的寄存器,带移位功能。
(3)部分积模块:用来存放运算过程中的部分积,有移位功能和清零功能。
(4)加法器:完成输入的两个10位二进制数据的相加求和功能。
(5)计数控制模块:实现运算完毕电路的自动停止功能。
2.2 模块的设计与实现
2.2.1 被乘数模块
被乘数模块主要实现被乘数的寄存、被乘数与传递来的乘数最低位进行与运算两个功能。
封装好的芯片输入端共有12个引脚,其中10个引脚用来输入10位被乘数,包括8位数据位,2位符号位;一个CLK引脚为时钟输入,一个R引脚用来接乘数寄存器的最低位输出。其输出端输出被乘数每位分别与传递来的乘数最低位做逻辑与运算之后的结果。封装好的芯片如图2.2.1-1所示。