定点补码一位乘法器的设计.docx

上传人:b****5 文档编号:6788342 上传时间:2023-01-10 格式:DOCX 页数:18 大小:107.66KB
下载 相关 举报
定点补码一位乘法器的设计.docx_第1页
第1页 / 共18页
定点补码一位乘法器的设计.docx_第2页
第2页 / 共18页
定点补码一位乘法器的设计.docx_第3页
第3页 / 共18页
定点补码一位乘法器的设计.docx_第4页
第4页 / 共18页
定点补码一位乘法器的设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

定点补码一位乘法器的设计.docx

《定点补码一位乘法器的设计.docx》由会员分享,可在线阅读,更多相关《定点补码一位乘法器的设计.docx(18页珍藏版)》请在冰豆网上搜索。

定点补码一位乘法器的设计.docx

定点补码一位乘法器的设计

沈阳航空工业学院

 

课程设计报告

 

课程设计名称:

计算机组成原理课程设计

课程设计题目:

定点补码一位乘法器的设计

 

院(系):

计算机学院

专业:

计算机科学与技术

班级:

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.通过这次课程设计,我充分锻炼了自己的动手能力以及分析解决问题的能力,弥补了自己在学习上的一些漏洞,改正了学习时对知识理解上的一些错误;在查阅资料的过程中,拓宽了自己的知识面;也明白了实践出真知,以后学习是不能只注重课本上的理论,要注重在实际中运用它,这样才能真正提高自己的能力。

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1