资源描述
沈阳航空航天大学
课 程 设 计 报 告
课程设计名称:计算机组成原理课程设计
课程设计题目:定点补码一位乘法器的设计
院(系):计算机学院
专 业:计算机科学与技术
班 级:84010101
学 号:2008040101002
姓 名:边爽
指导教师:曹一鹏
完成日期:2011年1月14日
沈阳航空航天大学课程设计报告
目 录
第1章 总体设计方案 1
1.1 设计原理 1
1.2 设计思路 2
1.3 设计环境 4
第2章 详细设计方案 5
2.1 顶层方案图的设计与实现 5
2.1.1创建顶层图形设计文件 5
2.1.2器件的选择与引脚锁定 6
2.1.3编译、综合、适配 7
2.2 功能模块的设计与实现 7
2.2.1 取补模块的设计与实现 7
2.2.2选择器模块的设计与实现 9
2.2.3 乘数补码移位寄存器模块的设计与实现 12
2.2.4 部分积移位寄存器模块的设计与实现 14
2.2.5加法器模块的设计与实现 16
2.3 仿真调试 16
第3章 编程下载与硬件测试 19
3.1编程下载 19
3.2 硬件测试及结果分析 19
参考文献 22
附 录(电路原理图) 23
-24-
沈阳航空航天大学课程设计报告
第1章 总体设计方案
1.1 设计原理
由于机器都采用补码做加减运算,所以设计补码乘法器能避免码制转换,提高机器效率。在计算两个补码相乘时,可以通过Booth算法来实现定点补码一位乘的功能。布斯(Booth)算法采用相加和相减的操作计算补码数据的乘积,Booth算法对乘数从低位开始判断,根据后两个数据位的情况决定进行加法、减法还是仅仅进行移位操作。
补码一位乘法的运算规则:
(1) 被乘数一般取双符号位参加运算。
(2) 乘数可取单符号位以决定最后一步是否需要校正,即是否加。
(3) 乘数末位增设附加位,且初值为0。部分积初始值为0。
(4) 被乘数[x]补乘以对应的相邻两位乘数()之差值,再与前部分积累加,然后右移一位(乘2-1),形成该步的部分积累加和。与构成各步运算的判断值,以决定如何操 作,见图1.1Booth算法操作说明:
图1.1 Booth算法操作说明
(5)按照上述算法进行n+1步操作,但第n+1步不再移位,仅根据与的比较结果作相应的运算即可。
1.2 设计思路
课程设计的要求为:
(1)采用原码值输入,乘数和被乘数皆为8位。
(2)设计的电路应该包括ALU,被乘数寄存器,乘数寄存器,部分积寄存器,门电路和移位电路。
课程设计的思路为:
(1) 由于课程设计要求采用原码值输入,就需要设计一个原码值取反码的电路模块,同时只对符号位取反同时也可以实现求。
(2) 实现Booth算法需添加附加位,并将其初始值置零,此操作通过外部输入来实现的。
(3) Booth算法在运算中要将部分积初始值置零,此操作是通过给FD寄存器的清零端一个高电平的脉冲信号,使寄存器的数据全部为0,即输出的部分积为00000000。
(4) 取乘数末尾两位来判断,为00、11则部分积加0,为01则部分积加被乘数的补码,为10则部分积加乘数相反数的补码。为了实现此操作,需要设计一个二输入四输出选择器及选择电路。
(5) 乘数逻辑右移一位,部分积算术右移一位,并用乘数最高位存放部分积溢出的位。此功能的实现,分别设计了乘数移位寄存器,以及部分积移位寄存器。
(6) 依次反复直到原乘数部分只剩下最后两位,由于最后一次只运算不移位,所以在输出时要在部分积移位之前输出结果。
(7) 加统一的时钟信号,保持各部件同步工作。
定点补码一位乘法器的设计总框图如图1.2所示;定点补码一位乘法器的设计流程图如图1.3所示。
图1.2 定点补码一位乘法器设计总框图
图1.3 定点补码一位乘法器设计流程图
1.3 设计环境
(1)硬件环境
•伟福COP2000型计算机组成原理实验仪
COP2000计算机组成原理实验系统由实验平台、开关电源、软件三大部分组成。实验平台上有寄存器组R0-R3、运算单元、累加器等组成。COP2000计算机组成原理实验系统各单元部件都以计算机结构模型布局,系统在实验时即使不借助PC 机,也可实时监控数据流状态及正确与否, 实验系统的软硬件对用户的实验设计具有完全的开放特性,系统提供了微程序控制器和组合逻辑控制器两种控制器方式, 系统还支持手动方式、联机方式、模拟方式三种工作方式,系统具备完善的寻址方式、指令系统和强大的模拟调试功能。
•COP2000集成调试软件
COP2000 集成开发环境是为COP2000 实验仪与PC 机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC 机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA 实验等功能,该软件在Windows 下运行。
(2)EDA环境
•Xilinx foundation f3.1设计软件
Xilinx foundation f3.1是Xilinx公司的可编程期间开发工具,该平台功能强大,主要用于百万逻辑门设计。该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。
第2章 详细设计方案
2.1 顶层方案图的设计与实现
顶层方案图是用来实现补码一位乘法器乘数与被乘数的输入和取补,以及结果的寄存和输出、二输入三输出选择器和运算控制电路、移位电路等逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设计后,把输入以及输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件
顶层图形文件的设计实体主要由取补电路(封装为QUBU),二输入三输出选择器(基于D2-4E的改装),乘数移位寄存器(封装为U11),部分积移位寄存器(基于FD实现),加法器(基于ADD8的改装),等模块组装而成的一个完整的可编程逻辑芯片U30。顶层图形文件结构如图2.1所示:
图2.1 顶层图形文件结构图
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xilinx XCV200可编程逻辑芯片。
(2)引脚锁定
把顶层图形文件中的所有输入、输出信号对应到Xilinx XCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及Xilinx XCV200芯片引脚对应关系如表2.1所示:
表2.1 信号和芯片引脚对应关系
图形文件中的输入/输出信号
XCV200芯片引脚信号
GRD
P50
ZCLOCK
P213
FJW
P47
CLR
P49
VCC
P48
S1
P80
S2
P81
S3
P82
S4
P84
S5
P85
S6
P86
S7
P87
Y1
P95
Y2
P96
Y3
P97
Y4
P100
Y5
P101
Y6
P102
Y7
P103
E0
P63
E1
P73
E2
P72
E3
P71
E4
P70
E5
P66
E6
P65
E7
P64
2.1.3编译、综合、适配
利用Xilinx foundation f3.1的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。
2.2 功能模块的设计与实现
功能模块主要由取补电路,二输入三输出选择器,移位寄存器,部分积移位寄存器等模块组成,由Xilinx XCV200可编程逻辑芯片分别实现。
2.2.1 取补模块的设计与实现
进行求补的方法就是从数的最右端开始,由右向左,直到找出第一个“1”,例如,。则以左的每一个输入位都求反,即1变0,0变1。最右端的起始链式输入必须永远置成“0”。当控制信号线为“1”时,启动对2求补的操作;当控制信号线为“0”时,输出将和输入相等。可以利用符号位来作为控制信号。
(1) 创建求乘数补码电路模块设计原理图。
求乘数补码电路原理结构如图2.2所示,实际电路如图2.2所示。
图2.2 求乘数补码电路模块逻辑框图
图2.2 实际取补电路
(2)创建元件图形符号
其元件图形符号如图2.3所示:
图2.3 求乘数补码电路模块元件图形符号
(3)功能仿真
对创建的取补模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.4所示:
图2.4 取补模块仿真结果
2.2.2选择器模块的设计与实现
选择器主要由一个D2-4E芯片和逻辑门电路控制选择输出。输入端输入的值分别为,以及“00000000”(八个输入端为一组)。
D2-4E芯片的和端的“0”和“1”控制,,,当为01时,输出为高电平,即为输出值为1,通过逻辑门电路实现输出为的值;当为10时,输出为为 高电平,即为输出值为1,通过逻辑门电路实现输出为的值;当为00时,输出为为 高电平,即为输出值为1,同时当为11时,输出为为 高电平,即为输出值为1,由于此时和输出值为相同,故此两条数据线通过一个或门输出一条数据线,此时输出值为“00000000”。正好实现三输入一输出的选择器模块。
(1)创建选择器设计原理图。
三输入一输出选择器原理结构如图2.5所示:
图2.5 选择器原理框图
(2)创建元件图形符号
其元件图形符号如图2.6所示:
图2.6 选择器元件图形符号
(3)功能仿真
对创建的三输入一输出器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.7所示:
图2.7 选择模块仿真结果图
2.2.3 乘数补码移位寄存器模块的设计与实现
乘数补码移位寄存器模块由八个二选一选择器(MUXCY),9个寄存器(FD)组成,端输入的是1个低电平信号其余都为高电平信号。MUXCY选择器由控制信号端,输入端和,以及输出端组成,当端为低电平信号时,选择输出值,当端为高电平信号时,选择输出值。每次的输出信号寄存到FD中,MUXCY输出端连接下一位的寄存器,这样就实现了移位寄存的功能。
移位的和两个输出端恰好为和的两个值,和的两个值要分别接到选择器的和端。
(1)创建乘数补码移位寄存器模块设计原理图。
乘数补码移位寄存器原理结构如图2.8所示:
图2.8 乘数补码移位寄存器原理结构图
(2)创建元件图形符号
其元件图形符号如图2.9所示:
图2.9 乘数补码移位寄存器电路模块元件图形符号
(3)功能仿真
对创建的乘数补码移位寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.10所示:
图2.10 乘数补码移位寄存器模块仿真结果
2.2.4 部分积移位寄存器模块的设计与实现
部分积移位寄存器模块是由一个8位寄存器(FD8CE)和四个逻辑门电路组成,实现部分积移位寄存功能。由于部分积的初始值为“00000000”,这样就要求FD8CE寄存器的初始值为“00000000”,只需要给清零端一个高电平的信号即可实现。
进行部分积移位时,要求移位过程中保证符号位相同,这样就需要把第一位符号位复制为两个数,而其余的6位相继向下串一位,这样就实现了移位功能,同时还保证的符号位相同。
(1)部分积移位寄存器设计原理图。
部分积移位寄存器原理结构如图2.11所示:
图2.11 部分积移位寄存器原理图
(2)功能仿真
对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.12所示:
图2.12 部分积移位寄存器仿真结果
2.2.5加法器模块的设计与实现
加法器模块是在系统提供的八位加法器(ADD8)的基础上,根据实际情况改造而来。由于系统ADD8的输入输出的高低位与前几个模块的正好相反,所以为了实现功能对ADD8进行了改装。改装后内部结构如图2.13所示。
图2.13 改装后加法器内部结构图
2.3 仿真调试
仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。通过多组数据进行仿真测试,分别对两个正数相乘,一个正数与一个负数相乘,两个负数相乘结果进行检验。
(1)建立仿真波形文件及仿真信号选择
功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2. 3所示。
表2.3 仿真信号相关参数表
输入信号
输出信号
S1—S7
Y1—Y7
CLR
CLOCK
FJW
I0—I7
0111011
0000100
10000000
01010101
0
00000011
1111011
0000100
10000000
01010101
0
11111100
1111011
1000100
10000000
01010101
0
00000011
(2)功能仿真结果与分析
仿真结果分别如图2.14、、所示。
图2.14 功能仿真波形结果
由表2.3和图2.14所示信息对比可知,多组仿真都完全正确,说明本设计能实现补码一位乘法计算功能。
第3章 编程下载与硬件测试
3.1编程下载
利用COP2000仿真软件的编程下载功能,将得到.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2 硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。定点补码一位乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。
表3.1 XCV200实验板信号对应关系
XCV200芯片引脚信号
XCV200实验板
P95
K0:6
P96
K0:5
P97
K0:4
P100
K0:3
P101
K0:2
P102
K0:1
P103
K0:0
P80
K1:6
P81
K1:5
P82
K1:4
P84
K1:3
P85
K1:2
P86
K1:1
P87
K1:0
P63
K2:7
P73
K2:0
P72
K2:1
P71
K2:2
P70
K2:3
P66
K2:4
P65
K2:5
P64
K2:6
P213
P213
P48
K3:1
P49
K3:2
P47
K3:3
利用表2.3中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1及K2控制数据输入,同时观察数码显示管和发光二极管显示结果,得到如图3.1、、所示的硬件测试结果。
图3.1 硬件测试结果图
参考文献
[1] 曹昕燕. EDA技术实验与课程设计[M].北京:清华大学出版社,2006
[2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学出版社,2006
[3] 王爱英.计算机组成与结构(第三版)[M].北京:清华大学出版社,2006
[4] 白中英.计算机组成原理(第四版)[M].北京:科学出版社,2009
[5] 胡越明.计算机组成与设计[M].北京:科学出版社,2006
[6] 江国强.EAD技术习题与实验[M].北京:电子工业出版社,2005
[7] 柳春风.电子设计自动化(EAD)教程[M].北京:北京理工大学大学出版社,2005
沈阳航空航天大学课程设计报告
附 录(电路原理图)
沈阳航空航天大学课程设计报告
课程设计总结:
本次课程设计,我受益匪浅。当拿到课设题目后,我烦了想当然的错误,乐观的认为,题目很简单,原理很简单。但在具体实行时却遇到许多困难,对Xilinx foundation f3.1设计软件的陌生更加阻碍着我的进程。于是,我决定塌下心来好好研究原理及软件的运用。用了一天的时间将软件中的自带芯片的功能查询了一遍,基本找到需要的芯片。之后,又学习了对电路封装的方法,再后来就能灵活的操作该软件,这对整个电路的设计很有帮助。随后开始将各个部件连接到一起,这里也充满学问,不是单单的组合在一起,而是要综合考虑整体电路的节拍,以保证各个部件有序工作。
没有找到现成的三选一芯片,我只好自己设计。设计的过程还真是痛苦,头脑中不断出现想法,但有一个个被现实否定,只能另寻方法。不过,功夫不负有心人。终于,我的想法终于在现实中实现了,就这样我完成了三选一芯片的设计,那时的我有一种释然的感觉,不过,我知道这只是一小步,要想最终完成还有很长的路要走,所以要继续努力。
在课设期间,我老师和同学都给予我很大的帮助,老师们总是不厌其烦的为我解决疑惑,同学们总是在我要放弃时鼓励我,这些都使我的课设顺利完成,在这里我要衷心说声谢谢,这份珍贵的经历,我会永远记在心中。
指导教师评语:
指导教师(签字): 年 月 日
课程设计成绩
展开阅读全文