定点补码一位乘法器的设计.docx
- 文档编号:6788342
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:18
- 大小:107.66KB
定点补码一位乘法器的设计.docx
《定点补码一位乘法器的设计.docx》由会员分享,可在线阅读,更多相关《定点补码一位乘法器的设计.docx(18页珍藏版)》请在冰豆网上搜索。
定点补码一位乘法器的设计
沈阳航空工业学院
课程设计报告
课程设计名称:
计算机组成原理课程设计
课程设计题目:
定点补码一位乘法器的设计
院(系):
计算机学院
专业:
计算机科学与技术
班级:
4401102
学号:
200403011035
姓名:
成姣
指导教师:
刘泽显
完成日期:
2006年12月31日
目录
第1章总体设计方案1
1.1设计原理1
1.2设计环境5
第2章详细设计方案6
2.1顶层方案图的设计与实现6
2.1.1创建顶层图形设计文件6
2.1.2器件的选择与引脚锁定7
2.2功能模块的设计与实现8
2.2.1数据选择器模块的设计与实现9
2.2.2乘数模块的设计与实现11
2.2.3部分积模块的设计与实现11
2.2.4求补模块的设计与实现11
2.3仿真调试14
第3章编程下载与硬件测试16
3.1编程下载16
3.2硬件测试及结果分析16
参考文献18
第1章总体设计方案
1.1设计原理
定点补码一位乘法的计算有普通和布斯两种算法,此设计方案仅采用布斯算法进行设计
设被乘数[x]补=x0.x1x2…xn和乘数[y]补=y0.y1y2…yn均为任意符号,则有补码乘法算式
n
(2.3.4)
[x·y]补=[x]补· (-y0+∑yi2-i)
i=1
为了推出串行逻辑实现人分步算法,将上式展开加以变换:
[x·y]补=[x]补·[-y0+y12-1+y22-2+…+yn2-n]
=[x]补·[-y0+(y1-y12-1)+(y22-1-y22-2)+…+(yn2-(n-1)-yn2-n)]
=[x]补·[(y1-y0)+(y2-y1)2-1+…+(yn-yn-1)2-(n-1)+(0-yn)2-n]
=[x]补·
(yn+1=0)
写成递推公式如下:
[z0]补=0
[z1]补=2-1{[z0]补+ ( yn+1-yn)[x]补}(yn+1=0)
…
[zi]补=2-1{[zi-1]补+ (yn-i+2-yn-i+1)[x]补}(2.3.5)
…
[zn]补=2-1{[zn-1]补+ (y2-y1)[x]补}
[zn+1]补=[zn]补+ ( y1-y0)[x]补=[x·y]补
开始时,部分积为0,即[z0]补=0。
然后每一步都是在前次部分积的基础上,由( yi+1 - yi )(i=0,1,2,…,n)决定对[x]补的操作,再右移一位,得到新的部分积。
如此重复n+1步,最后一步不移位,便得到[x·y],这就是有名的布斯公式。
实现这种补码乘法规则时,在乘数最末位后面要增加一位补充位yn+1。
开始时,由ynyn+1判断第一步该怎么操作;然后再由yn-1yn判断第二步该怎么操作。
因为每做一步要右移一位,故做完第一步后,yn-1yn正好移到原来ynyn+1的位置上。
依此类推,每步都要用ynyn+1位置进行判断,我们将这两位称为判断位。
如果判断位ynyn+1=01,则yi+1 … yi =1,做加[x]补操作;如果判断位ynyn+1=10,则yi+1…yi =-1,做加[-x]补操作;如果判断位ynyn+1=11或00,则yi+1…yi =0,[zi]加0,即保持不变。
补码一位乘法运算规则
(1)如果yn=yn+1,部分积[zi]加0,再右移一位;
(2)如果ynyn+1=01,部分积加[x]补,再右移一位;
(3)如果ynyn+1=10,部分积加[-x]补,再右移一位;
这样重复进行n+1步,但最后一步不移位。
包括一位符号位,所得乘积为2n+1位,其中n为尾数位数。
【例】 x =0.1101,y=0.1011,用补码一位乘法计算x·y =?
[解:
] 求解过程如下:
部分积
乘数
说明
00.0000
0.
1
0
1
1
0
yn+1=0
+
11.0011
ynyn+1=10,加[-x]补
11.0011
→
11.1001
1
0
1
0
1
1
右移一位
+
00.0000
ynyn+1=10,加0
11.1001
→
11.1100
1
1
0
1
0
1
右移一位
+
00.1101
ynyn+1=01,加[x]补
00.1001
→
00.0100
1
1
1
0f
1
0
右移一位
+
11.0011
ynyn+1=01,加[-x]补
11.0111
→
11.1011
1
1
1
1
0
1
右移一位
+
00.1101
ynyn+1=01,加[x]补
00.1000
1
1
1
1
0
1
最后一步不移位
所以 [x·y]补 =0.10001111
定点补码一位乘法器可以用一个乘数模块、一个部分积模块、一个数据选择器模块和一个求补模块构成,其原理框图如图1.2.1所示。
定点补码一位乘法器的整体设计包含乘数模块,部分积模块,数据选择器模块和求补模块,数据选择器模块和求补模块,乘数模块,部分积模块作为底层设计,前者采用Verilog语言设计输入方式,后三者及顶层的乘法器采用原理图设计输入方式。
采用硬件描述语言进行电路设计并实现表1.1中给定的功能,设计的Verilog程序经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。
图1.1.1定点补码一位乘逻辑原理图
1.2设计环境
·硬件环境:
伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;
·EDA环境:
XilinxFoundation3.1设计软件。
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图实现定点补码一位乘法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。
2.1.1创建顶层图形设计文件
顶层图形文件主要由一个乘数模块、一个部分积模块、一个数据选择器模块和一个求补模块组装而成的一个完整的设计实体。
可利用XilinxISEECS模块实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。
图2.1定点补码一位乘法器顶层图形文件结构
2.1.2器件的选择与引脚锁定
(1)器件的选择
由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。
(2)引脚锁定
把顶层图形文件中的输入/输出信号安排到XlinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XlinxXCV200芯片引脚对应关系如表2.1所示。
表2.1信号和芯片引脚对应关系
补码一位乘法器内部信号
图形文件中的输入/输出信号
XCV200芯片引脚
X7
X7
P33
X6
X6
P34
X5
X5
P35
X4
X4
P36
X3
X3
P38
X2
X2
P39
X1
X1
P40
X0
X0
P41
Y7
Y7
P56
Y6
Y6
P55
Y5
Y5
P54
Y4
Y4
P53
Y3
Y3
P50
Y2
Y2
P49
Y1
Y1
P48
Y0
Y0
P47
CY
CY
P79
LY
LY
P81
CLKY
CLKY
P85
CJIA
CJIA
P90
CCHENG
CCHENG
P92
Z7
Z7
P78
Z6
Z6
P215
Z5
Z5
P216
Z4
Z4
P217
Z3
Z3
P218
Z2
Z2
P220
Z1
Z1
P221
Z0
Z0
P222
R7
R7
P93
R6
R6
P224
R5
R5
P228
R4
R4
P229
R3
R3
P230
R2
R2
P231
R1
R1
P232
R0
R0
P235
2.2功能模块的设计与实现
定点补码一位乘法器是以数据选择器模块,乘数模块,部分积模块,和一个求补模块为基础而实现的,设计数据选择器时模块用Verilog语言实现。
设计后三者用原理图设计输入方式实现。
具体设计如图所示:
2.2.1定点补码一位乘模块图
2.2.1数据选择器模块的设计与实现
数据选择器的三个输入分别用A、B、C表示,控制信号用S0、S1表示,输出用Q表示,形成的Verilog语言用XUANZEQI.CHD表示,设计过程如下。
(1)创建Verilog文件
moduleXUANZEQI(s0,a,b,c,s1,q);
inputs0;
input[7:
0]a;
input[7:
0]b;
input[7:
0]c;
inputs1;
output[7:
0]q;
reg[7:
0]q;
always@(s0ors1orborcora)
begin
if((s0==1'b0&&s1==1'b0)||(s0==1'b1&&s1==1'b1))
q[7:
0]=a[7:
0];
elseif(s0==1'b0&&s1==1'b1)
q[7:
0]=b[7:
0];
elseif(s0==1'b1&&s1==1'b0)
q[7:
0]=c[7:
0];
else
q[7:
0]=a[7:
0];
end
endmodule
(2)创建元件图形符号
为了能在图形编辑器(原理图设计输入方式)中调用此数据选择器,需要为XUANZEQI创建一个元件图形符号,可用XilinxISE编译器的CreateSymbol模块实现。
(3)功能仿真
对创建的数据选择器元件(XUANZEQI)进行功能仿真,验证其功能的正确性,可用XilinxISE编译器的Simulator模块实现。
2.2.2乘数模块的设计与实现
乘数输入用D表示,输出用Q表示,其设计过程如下。
(1)创建原理图
(2)创建元件图形符号
为了能在图形编辑器(原理图设计输入方式)中调用此乘数模块,需要为CHENGSHU创建一个元件图形符号,可用XilinxISE编译器的CreateSymbol模块实现。
(3)功能仿真
对创建的乘数元件(CHENGSHU)进行功能仿真,验证其功能的正确性,可用XilinxISE编译器的Simulator模块实现。
⏹2.2.3部分积模块的设计与实现
输入用D表示,输出用Q表示,其设计过程如下。
(1)创建原理图
(2)创建元件图形符号
为了能在图形编辑器(原理图设计输入方式)中调用此部分积模块,需要为BUFENJI创建一个元件图形符号,可用XilinxISE编译器的CreateSymbol模块实现。
(3)功能仿真
对创建的乘数元件(BUFENJI)进行功能仿真,验证其功能的正确性,可用XilinxISE编译器的Simulator模块实现。
2.2.4求补模块的设计与实现
输入用X表示,输出用Q表示,其设计过程如下。
(1)创建原理图
(2)创建元件图形符号
为了能在图形编辑器(原理图设计输入方式)中调用此求补模块,需要为QIUBU创建一个元件图形符号,可用XilinxISE编译器的CreateSymbol模块实现。
(3)功能仿真
对创建的求补元件(QIUBU)进行功能仿真,验证其功能的正确性,可用XilinxISE编译器的Simulator模块实现。
2.3仿真调试
仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。
(1)建立仿真波形文件及仿真信号选择
功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.2所示。
输入信号
输出信号
XY
LYCYCLRYCJIACCHENG
Z
R
3458
10110
3458
01000
3458
01001
3458
01001
3458
01000
3458
11001
3458
11000
3458
01001
表2.2功能仿真信号选择和参数设置
(2)功能仿真结果与分析
功能仿真波形结果如图2.2所示,仿真数据结果如表2.3所示。
对表2.3与例的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。
图2.2功能仿真波形结果
表2。
3功能仿真数据结果
输入信号
输出信号
XY
LYCYCLRYCJIACCHENG
Z
R
3458
10110
00
00
3458
01000
CC
58
3458
01001
E6
AC
3458
01001
F3
D6
3458
01000
27
D6
3458
11001
13
EB
3458
11000
DF
EB
3458
01001
EF
F5
第3章编程下载与硬件测试
3.1编程下载
利用XilinxISE的编程下载功能,将得到的*.bin文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。
定点补码一位乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如下。
表3.1XCV200实验板信号对应关系
XCV200芯片引脚信号
XCV200实验板
X[7]
K4[7]
X[6]
K4[6]
X[5]
K4[5]
X[4]
K4[4]
X[3]
K4[3]
X[2]
K4[2]
X[1]
K4[1]
X[0]
K4[0]
Y[7]
K3[7]
Y[6]
K3[6]
Y[5]
K3[5]
Y[4]
K3[4]
Y[3]
K3[3]
Y[2]
K3[2]
Y[1]
K3[1]
Y[0]
K3[0]
LY
K2[0]
CY
K2[1]
CLRY
K2[2]
CJIA
K2[3]
CCHENG
K2[4]
Z[7:
0]
七段数码管D0
R[7:
0]
七段数码管D1
利用表2.2中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K4、K3、K2输入数据,同时观察七段数码管D0七段数码管D1的输出。
参考文献
[1]曹昕燕.EDA技术实验与课程设计[M].北京:
清华大学出版社,2006
[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:
北京邮电大学出版社,2006
[3]王爱英.计算机组成与结构(第4版)[M].北京:
清华大学出版社,2006
课程设计总结:
1.在刚开始做这个课程设计时,由于对知识理解得不够深刻,导致设计上的失误,后来经过老师的指导才逐步形成了初步设计方案。
在进行整体仿真时,发现乘数没有打入寄存器,又经过分步仿真调试以及老师的指导,发现是由于没有清零的缘故导致了以上故障。
调整脉冲后,以上故障解决。
2.设计采用了自上而下的设计方法,基本实现了定点补码一位乘法的功能,能够正确求得积等结果。
3.通过这次课程设计,我充分锻炼了自己的动手能力以及分析解决问题的能力,弥补了自己在学习上的一些漏洞,改正了学习时对知识理解上的一些错误;在查阅资料的过程中,拓宽了自己的知识面;也明白了实践出真知,以后学习是不能只注重课本上的理论,要注重在实际中运用它,这样才能真正提高自己的能力。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
课程设计总结:
4.在刚开始做这个课程设计时,由于对知识理解得不够深刻,导致设计上的失误,后来经过老师的指导才逐步形成了初步设计方案。
在进行整体仿真时,发现乘数没有打入寄存器,又经过分步仿真调试以及老师的指导,发现是由于没有清零的缘故导致了以上故障。
调整脉冲后,以上故障解决。
5.设计采用了自上而下的设计方法,基本实现了定点补码一位乘法的功能,能够正确求得积等结果。
6.通过这次课程设计,我充分锻炼了自己的动手能力以及分析解决问题的能力,弥补了自己在学习上的一些漏洞,改正了学习时对知识理解上的一些错误;在查阅资料的过程中,拓宽了自己的知识面;也明白了实践出真知,以后学习是不能只注重课本上的理论,要注重在实际中运用它,这样才能真正提高自己的能力。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定点 补码 一位 乘法器 设计