沈阳航空工业学院
课 程 设 计 报 告
课程设计名称:计算机组成原理课程设计
课程设计题目:定点原码一位乘法器的设计
院(系):计算机学院
专
班
学
姓
业:计算机科学与技术
级:
号:
名:
指导教师:
完成日期:2009年1月9日
沈阳航空工业学院课程设计报告
目
录
第 1 章 总体设计方案.................................................................................................. 1
1.1 设计原理...............................................................................................................1
1.2 设计环境...............................................................................................................2
第 2 章 详细设计方案.................................................................................................. 3
2.1 整体模块设计图...................................................................................................3
2.2 具体模块的设计与实现.....................................................................................4
2.2.1 被乘数模块的设计与实现..............................................................................4
2.2.2 乘数寄存器模块的设计与实现.......................................................................6
2.2.3 部分积模块的设计与实现...............................................................................8
2.2.4 控制器模块的设计与实现............................................................................10
2.2.5 加法器及其他模块的设计与实现................................................................13
2. 3 总电路仿真测试................................................................................................15
第 3 章 编程下载与硬件测试.................................................................................... 18
3.1 编程及下载.........................................................................................................18
参考文献.........................................................................................................................19
附 录(电路图)...................................................................................................... 20
-I-
沈阳航空工业学院课程设计报告
第 1 章 总体设计方案
第 1 章 总体设计方案
1.1 设计原理
原码一位乘,两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数
值则为两数绝对值之积。
例:X=0.1100,Y=0.1110,计算乘积 X*Y。
*
0.1100
0.1110
0000
1100
1100
1100
0.10101000
在计算时,逐次按乘数每 1 位上的值是 1 还是 0,决定相加数取被乘数的值
还是取零值,而且相加数逐次向左偏移 1 位,最后一起求积。
由于在计算机内多个数据一般不能同时相加,一次加法操作只能求出两数之
和,因此每求得一个相加数,就与上次部分积相加每次计算时,相加数逐次向左
偏移一位,由于最后的乘积位数是乘数(被乘数)的两倍,因此加法器也需增到
两倍。部分积右移时,乘数寄存器同时右移一位,所以用乘数寄存器的最低位来
控制相加数取被乘数或零,同时乘数寄存器接收部分积右移出来的一位,完成运
算后,部分积寄存器保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。
根据人工算法可以知道,原码一位乘法的整体设计应包括乘数寄存器,被乘
数寄存器,移位电路,控制器,部分积五大模块,包含一个输入、输出、控制器
模块,并作为顶层设计,以上五大模块作为底层设计,采用硬件器件设计实现。
因此,可以得出以下原理框图设计如图 1.1 所示:
-1-
沈阳航空工业学院课程设计报告
第 1 章 总体设计方案
图 1.1 原码一位乘的逻辑电路框图
如上逻辑框图 1.1 中所示,其中 B 为被乘数寄存器,用来存放被乘数,C 为
乘数寄存器,用来存放乘数并且移位,A 为部分积寄存器,存放每次相加并移位
后的数据,ALU 加法器实现加法操作,移位电路用来对相加后的数据作移位处理,
计数器控制移位次数和输出结果。
1.2 设计环境
·硬件环境:伟福 COP2000 型计算机组成原理实验仪、XCV200 实验板、微
机;
·EDA 环境:Foundation f3.1 设计软件。该设计由设计入口工具,设计实现工
具,验证工具三大部分组成.入口工具包括原理图设计,有限状态编辑器,硬件描述语
言编辑器等。
-2-
沈阳航空工业学院课程设计报告
第 2 章 详细设计方案
第 2 章 详细设计方案
2.1 整体模块设计图
按照课设题目要求及逻辑电路图,先设计出电路的具体模块图,如下图所示,
共有五大模块。1 加法器:题目要求是 4 位数据位,再加上 2 个符号位共 6 位,
所以要求本加法器能实现对 6 位二进制数相加;2 部分积:按照原码一位乘原理,
部分积要求是具有并行输入输出和串行输入输出及其带有异步清零端的移位寄存
器;3 被乘数:是用来存放被乘数的寄存器,不需要移位功能,用普通的寄存器
即可;4 乘数:应和部分积模块有基本一样的功能,有并行输入输出和串行输入
输出功能;5 控制器:实现电路的自动停止功能,可用计数器来完成,当经过 4
个脉冲后,计数器进位输出为 1,然后将进位和总的 CLK 进行或运算来实现消除
脉冲,进而实现电路停止工作。
加法器
部分积(移位
寄存器)
&与门
最低位
被乘数
乘 数 ( 移 位
寄存器)
控制器(计数器)
4 个脉冲后停止
图 2.0 整体模块图设计图
-3-
沈阳航空工业学院课程设计报告
第 2 章 详细设计方案
2.2 具体模块的设计与实现
整体设计主要由乘数寄存器,被乘数寄存器,控制器,部分积寄存器和加法
器五大模块,其中被乘数和部分积寄存器是移位寄存器,除了以上五大模块以外,
还有符号转化芯片以及符号运算部分,以下介绍各个模块的具体设计方案与实现。
2.2.1 被乘数模块的设计与实现
从乘法设计的原理图可以看出被乘数并不需要移位功能,所以只需具用普通
的寄存器的功能即可,选用上升沿的 D 触发器,在第一个上升沿将数据打入,并
不在变化。
(1)被乘数芯片外观及内部电路图
图 2.1 被乘数寄存器芯片外观
显然用 6 个 D 触发器就可实现,每个触发器的 CLK 并联接在一起,输入端
作为数据输入端,输入数据后会第一个上升沿到时把数据打入,因为被乘数的每
一位要和乘数的最低一位进行与运算,所以可以在电路中加入 6 个与门其中每个
与门的一端与被乘数的输出端相连,另一端接在一起并引出,作为和乘数最低位
的连接端,其中寄存器部分具体实现如下:
-4-
沈阳航空工业学院课程设计报告
第 2 章 详细设计方案
图 2.2 被乘数寄存器电路图
(2)功能仿真
图 2.3 被乘数寄存器芯片内部电路图
-5-
沈阳航空工业学院课程设计报告
第 2 章 详细设计方案
从以上波形中可看出,输入数据为 100111,当第一个上升沿到达时,数据
被打入,并且不随以后的波形而改变,所以该器件设计成功。
2.2.2 乘数寄存器模块的设计与实现
本乘数寄存器是在普通移位寄存器的基础上改造而来的,即在基本寄存器上
面加入了用并行输入和串行输入的片选端 S,当 S=1 时并行输入,并屏蔽串行移
位功能,S=0 时串行移位,并屏蔽并行输入功能,D5-D0 为数据输入端,Q5-Q0
为数据输出端,A0 为串行输入端,来接受部分积低位移出的数据。
(1) 乘数芯片外观及内部电路图
图 2.4 乘数寄存器芯片外观
按照整体模块设计时的思想,乘数寄存器具有并行输入输出和串行输入输出
功能,我们可在被乘数寄存器上面加一部分电路来实现,它同样由六位 D 触发器
组成,每个触发器的输入端不是直接接在数据输入端上,而是通过片选电路接入,
同时每个 D 触发器的输出端也是通过片选电路接到下一个触发器的输入端,这样
就可以通过片选段 S 的不同(0 或 1)来选择具体的操作,具体电路图如下:
-6-