补码一位乘.docx

上传人:b****5 文档编号:3565811 上传时间:2022-11-23 格式:DOCX 页数:13 大小:113.74KB
下载 相关 举报
补码一位乘.docx_第1页
第1页 / 共13页
补码一位乘.docx_第2页
第2页 / 共13页
补码一位乘.docx_第3页
第3页 / 共13页
补码一位乘.docx_第4页
第4页 / 共13页
补码一位乘.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

补码一位乘.docx

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

补码一位乘.docx

补码一位乘

沈阳航空工业学院

 

课程设计报告

 

课程设计名称:

计算机组成原理课程设计

课程设计题目:

补码一位乘的设计

 

院(系):

计算机学院

专业:

计算机科学与技术

班级:

4401102

学号:

20043011064

姓名:

张博为

指导教师:

李平

完成日期:

2006年12月31日

目录

第1章总体设计方案2

1.1设计原理2

1.2设计思路3

1.3设计环境5

第2章详细设计方案5

2.1顶层方案图的设计与实现6

2.1.1创建顶层图形设计文件6

2.1.2器件的选择与引脚锁定7

2.2功能模块的设计与实现8

2.2.1两输入或门模块的设计与实现8

2.2.2半加器模块的设计与实现9

2.3仿真调试9

第3章编程下载与硬件测试10

3.1编程下载12

3.2硬件测试及结果分析12

参考文献13

附录(程序清单或电路原理图)14

第1章总体设计方案

1.1设计原理

补码一位乘有多种算法,其中以Booth算法最具有代表性和针对性。

Booth算法对乘数从低位开始判断,它采用相加和相减的操作计算补码数据的乘积。

根据两个数据位的情况决定进行加法、减法还是仅仅移位操作。

判断的两个数据位为当前位及其右边的位(初始时需要增加一个辅助位0),移位操作是向右移动。

在例中,第一次判断被乘数0110中的最低位0以及右边的位(辅助位0),得00;所以只进行移位操作;第二次判断0110中的低两位,得10,所以作减法操作并移位,这个减法操作相当于减去2a的值;第三次判断被乘数的中间两位,得11,于是只作移位操作;第四次判断0110中的最高两位,得01,于是作加法操作和移位,这个加法相当于加上8a的值,因为a的值已经左移了三次。

如图所示。

根据最低两个数据位是01还是10来决定加被数还是减被乘数。

初始时需要在最右边加一个辅助位0。

例:

用Booth算法计算2×(-3)

解:

R2=[2]补=0010,R1=[-3]补=1101

乘法开始前,R2=0010,R0=0000,R1=1101,辅助位P=0。

1、R1的最低位和辅助位P为10,所以进入步骤1c,将R0的值减去R2的值,结果1110送入R0,然后进入第2步,将R0和R1右移一位,结果为11110110,辅助

2、R1的最低位和辅助位P为01,所以进入步骤1b,将R0的值加上R2的值,即1111+0010,结果0001送入R0,然后进入第2步,将R0和R1右移一位,结果为00001011,辅助位为0。

3、判断位为10,进入步骤1c,R0减去R2,结果1110送入R0,然后进入第2步,将R0和R1右移一位,结果为11110101,辅助位为1。

4、判断位为11,进入步骤1a,将R0和R1右移一位,结果为11111010,辅助位为1。

即运算结果的原码为10000110,其真值为-6。

1.2设计思路

设计的思想仍然是,先将任意两个补码[X]补、[Y]补看作是一般的二进制数,仍按原码运算规则求得[X]补·[Y]补,然后对其结果加以校正,而获得[X·Y]补之值。

当乘数Y为正时,与原码乘法相似,只是在部分积相加、右移操作时,按补码性质进行;当乘数为负时,先不考虑乘数的符号,将乘数补码的数值部分与被乘数相乘;最后进行校正操作,即加上[-X]补。

设[Y]补=Ys.Y1Y2…Yn,我们用一个公式表示补码校正法的算法规则:

[X·Y]补=[X]补·(0.Y1Y2…Yn)+[-X]补·Ys

当Ys=0时,[X·Y]补=[X]补·(0.Y1Y2…Yn)

当Ys=1时,[X·Y]补=[X]补·(0.Y1Y2…Yn)+[-X]补

例:

设[X]补=0,1101,[Y]补=1,0101,求[XY]补

解:

用补码一位乘法,过程如下:

补码部分积补码乘数操作说明

符号位数值部分数值部分

0000000101Z0=0,y0=1

+001101Z0+[X]补→Z1

001101

00011010101/2Z1,y1=0,Z1+0→Z2

00001101011/2Z2,y2=1

+001101Z2+[X]补→Z3

010000

00100000101/2Z3,y3=0,不加,Z3→Z4

00010000011/2Z4,ys=1,校正

+110011Z4+[-X]补,得[XY]补

1101110001

故[XY]补=1,01110001,即XY=-10001111

设计原理如图1.1所示:

图1.1设计原理图

 

1.3设计环境

(1)硬件环境

·XCV200实验板

在COP2000实验仪中的FPGA实验板主要用于设计性实验和课程设计实验,它的核心器件是20万门XCV200的FPGA芯片。

用FPGA实验板可设计8位16位和32位模型机。

XCV200相应管脚已经连接好配合FPGA实验板的PC调试软件可方便地进行各种实验。

U3IDT71V016SA是64Kx16位存储器能保存大容量的程序。

C0-C5D0-D5是12个7段数码管用于显示模型机内部的寄存器总线数值,在设计时可将需要观察的内部寄存器总线等值接到这些7段管上直观地观察模型机运行时内部状态变化。

A0-A7、B0-B7是16个LED发光二极管用于显示模型机内部的状态例如进位标志零标志中断申请标志等等。

K0(0-7)-K4(0-7)是四十个开关用于输入外部信号,例如在做单步实验时这些开关可用来输入地址总线值数据总线值控制信号等。

T6B595是7段数码管的驱动芯片,74HC1649是串转并芯片用于接16个LED。

(2)EDA环境

•Xilinxfoundationf3.1设计软件

Xilinxfoundationf3.1是Xilinx公司的可编程期间开发工具,该平台功能强大,主要用于百万逻辑门设计。

该系统由设计入口工具、设计实现工具、设计验证工具三大部分组成。

设计入口工具包括原理图编辑器、有限状态机编辑器、硬件描述语言(HDL)编辑器、LogiBLOX模块生成器、Xilinx内核生成器等软件。

气功能是:

接收各种图形或文字的设计输入,并最终生成网络表文件。

设计实现工具包括流程引擎、限制编辑器、基片规划器、FPGA编辑器、FPGA写入器等软件。

设计实现工具用于将网络表转化为配置比特流,并下载到器件。

时设计验证工具包括功能和时序仿真器、静态时序分析器等,可用来对设计中的逻辑关系及输出结果进行检验,并详尽分析各个时序限制的满足情况。

•COP2000仿真软件

COP2000集成开发环境是为COP2000实验仪与PC机相连进行高层次实验的配套软件,它通过实验仪的串行接口和PC机的串行接口相连,提供汇编、反汇编、编辑、修改指令、文件传送、调试FPGA实验等功能,该软件在Windows下运行。

第2章详细设计方案

2.1顶层方案图的设计与实现

顶层方案图实现一位全加器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。

在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1创建顶层图形设计文件

顶层图形文件主要由一个三个输入,一个输出,三路选择器S0,S1,控制选择a,b,c,Q输出的是S0,S1所选择的a或b或c,可利用Xilinxfoundationf3.1模块实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。

图2.1补码一位乘法器顶层图形文件结构

2.1.2器件的选择与引脚锁定

(1)器件的选择

由于硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为XlinxXCV200可编程逻辑芯片。

(2)引脚锁定

把顶层图形文件中的输入/输出信号安排到XlinxXCV200芯片指定的引脚上去,实现芯片的引脚锁定,各信号及XlinxXCV200芯片引脚对应关系如表2.1所示。

表2.1信号和芯片引脚对应关系

一位乘法器内部信号

图形文件中的输入/输出信号

XCV200芯片引脚

A

A

094,095,096,097,100,101,102,103

B

B

079,030,081,082,084,085,086,087

C

C

215,216,217,218,220,221,222,223

CLR

CLR

157

CE

CE

171

2.2功能模块的设计与实现

一个三路选择器是以五输入一输出模块为基础而实现的,设计时这个模块用Verilog设计输入方式实现。

2.2.1译码器模块的设计与实现

三输入分别用a、b、c表示,输出用q表示,形成的Verilog程序用ORM2.Verilog表示,其设计过程如下。

(1)创建译码器Verilog源文件

moduleUntitled(a,b,c,s0,s1,q);

input[7:

0]a;wire[7:

0]a;

input[7:

0]b;wire[7:

0]b;

input[7:

0]c;wire[7:

0]c;

inputs0;

inputs1;wires0,s1;

output[7:

0]q;reg[7:

0]q;

always@(s0ors1oraorborc)

beginif(s0==1'b0&&s1==1'b0)

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)创建元件图形符号

为了能在图形编辑器(原理图设计输入方式)中调用此五输入选择器,需要为ORM2创建一个元件图形符号,可用FoundatonSeries3.LI编译器来实现仿真功能。

2.3仿真调试

仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。

(1)建立仿真波形文件及仿真信号选择

功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定的仿真信号和设置的参数如表2.2所示。

表2.2仿真信号选择和参数设置

输入信号

输出信号

ynyn+1

+x

-x

+0

00

0

0

1

01

1

0

0

10

0

1

0

11

0

0

1

(2)功能仿真结果与分析

功能仿真波形结果如图2.2所示,仿真数据结果如表2.3所示。

对表2.3与表1.1的内容进行对比,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。

图2.2功能仿真波形结果

表2.3仿真数据结果

输入信号

输出信号

ynyn+1

+x

-x

+0

00

0

0

1

01

1

0

0

10

0

1

0

11

0

0

1

第3章编程下载与硬件测试

3.1编程下载

利用FoundatonSeries3.LI的编程下载功能,将得到的*.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。

3.2硬件测试及结果分析

利用XCV200实验板进行硬件功能测试。

一位全加器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。

 

表3.1XCV200实验板信号对应关系

XCV200芯片引脚信号

XCV200实验板

S0

K1

S1

K2

q

LED1

利用表2.2中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K1、K2、K3输入数据,同时观察LED1和LED2的输出,得到如表3.2所示的硬件测试结果。

表3.2硬件测试结果

输入信号

输出信号

K1

K2

LED1

CC

58

DC

02

18

36

01

86

86

81

86

06

对表3.2与表1.1的内容进行对比,可以看出硬件测试结果是正确的,说明电路设计完全正确。

参考文献

[1]曹昕燕.EDA技术实验与课程设计[M].北京:

清华大学出版社,2006

[2]范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:

北京邮电大学出版社,2006

[3]王爱英.计算机组成与结构(第4版)[M].北京:

清华大学出版社,2006

[4]廖裕评.陆瑞强.CPLD数字电路设计--使用MAX+PLUSⅡ[M].北京:

清华大学出版社,2001.217-221

[5]侯伯亨.顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:

西安电子科技大学出版社,1998.5-9.

.[6]姜雪松.可编程逻辑器件和EAD设计技术[M].北京:

机械工业出版社,2005

[7]柳春风.电子设计自动化(EAD)教程[M].北京:

北京理工大学大学出版社,2005

[8]JohnFWakerly.DIGIALDESIGNPrinciples&Practices(ThirdEdition)[M].北京:

高等教育出版社,2001.446-543

[9]廖裕评,陆瑞强.CPLD数字电路设计--使用MAX+PLUSⅡ[M].北京:

清华大学出版社,2001.217-221.

附录(电路原理图)

课程设计总结:

主要从以下几方面总结:

1.在设计过程中出现了自己设计一个器件的问题,自己对这方面的操作比较薄弱。

所以说遇到了很多困难,不知道应该从哪方面下手,但是通过老师的细心讲解,和向同学的请教,上图书馆查了一些资料,知道了大致的方向,在自己的多次重复实验中,终于掌握了这方面的内容,做出了在想要得器件。

2.在设计中达到了关于课题的基本要求,但是在最后的下载一直都没有实现,这也是最遗憾的事。

主要问题是脉冲的控制的方面一直都很乱,不能够很好的控制,所以造成不能实现下载的目的。

所以这就要求我们以后要更要加强自己对实验的理解

3.通过这2周的计算机组成原理的实验是我认识很多,也学到很多,更加认清自己的水平还差得很多,需要加强的也很多。

我们要不断的学习,虚心的请教不断的完善自己,我们要学得还很多,有些是自己在书本上学不到的,需要我们在实验中得到充实,使我们学到的知识得到巩固,不断的完善自己。

指导教师评语:

 

指导教师(签字):

      年月日

课程设计成绩

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

当前位置:首页 > 小学教育 > 小升初

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

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