您的当前位置:首页正文

定点原码两位乘法器的设计说明

2020-01-22 来源:步旅网
. .

.

课 程 设 计 报 告

计算机组成原理课程设计 定点原码两位乘法器的设计 院(系):计算机学院 专 业:计算机科学与技术 班 级: 学 号: 姓 名: 指导教师: 完成日期:

. . 课程设计名称:课程设计题目:

. .

目 录

航空工业学院 ........................................ 错误!未定义书签。 第1章 总体设计方案 ................................................. 1 1.1 设计原理 ...................................................... 1 1.2 设计思路 ...................................................... 3 1.3 设计环境 ...................................................... 4 第2章 功能模块的设计与实现 ......................................... 5 2.1 顶层电路的设计与实现 .......................................... 5 2.1.1创建顶层图形设计文件 ........................................ 5 2.1.2器件的选择与引脚锁定 ........................................ 5 2.2 基本功能模块的组成及工作原理 .................................. 7 2.2.1被乘数模块的组成及工作原理 .................................. 7 2.2.2乘数模块的组成及工作原理 .................................... 9 2.2.3选择模块的组成及工作原理 ................................... 10 2.2.4移位模块的组成及工作原理 ................................... 12 2.3 仿真调试 ..................................................... 13 第3章 编程下载与硬件测试 .......................................... 15 3.1 编程下载 ..................................................... 15 3.2 硬件测试及结果分析 ........................................... 15 参考文献 ........................................................... 17 附 录(电路原理图) .............................................. 18

. . .

. .

第1章 总体设计方案

1.1 设计原理

定点原码两位乘与定点原码一位乘一样,符号位的运算和数值部分是分开进行的,但为了提高运算速度,所以采用了原码两位乘,因为原码两位乘是用乘数的末两位的状态来决定新的部分积如何形成,可提高运算速度。 乘数和被乘数都用原码表示。

两位乘数有四种可能的组合,每种组合对应与以下操作: 00——相当与0*X。部分积+0,右移两位; 01——相当与1*X。部分积+X,右移两位; 10——相当与2*X。部分积+2X,右移两位; 11——相当与3*X。部分积+3X,右移两位。

与一位乘法比较,多出了+2X和3X两种情况。把X左移1位即得到2X,在机器通常采用左斜送一位来实现。可是+3X一般不能一次完成,如分成两次进行,又降低了计算速度。解决问题的办法是:以(4X-X)来代替3X运算,在本次运算中只执行-X,而+4X则归并到下一步执行,此时部分积以右移了两位,上一步欠下的+4X已变成+X,在实际线路中要用一个触发器C来记录是否欠下+4X,若是,则C变为1。因此实际操作用Yi-1 ,Yi ,C三位来控制,运算规则如下所示: 组合值 Yi-1 Yi C 操作 C值变化 0 0 0 0 部分积+0;右移两位 C=0 1 0 0 1 部分积+x;右移两位 C=0 1 0 1 0 部分积+x;右移两位 C=0 2 0 1 1 部分积+2x;右移两位 C=0 2 1 0 0 部分积+2x;右移两位 C=0 3 1 0 1 部分积-x;右移两位 C=1 3 1 1 0 部分积-x;右移两位 C=1 4 1 1 1 部分积+0;右移两位 C=1

定点原码两位乘法器实现的功能应如下面例子所示,设计的电路应实现下面

. . .

. .

例子给定的功能。

用原码两位乘方法求X*Y,已知X=0.101100,Y=0.111001。

[-x]补=11.010100部分积00.000000+ 00.101100 00.101100

2x=01.011000附加位说明组合值为1,部分积+x,c=00000011右移2位组合值为2,+2x,c=0乘数11100111100100.00101100 1110+01.011000 01.10001100 1110 00.0110001100 11、 +右移2位组合值为3,+[-x]补,c=1右移2位c=1,+x11.01010011.1011001100 11

11.111011001100

+00.101100 00.100111001100 结果的符号位=x0异或y0,即x·y=0.100111001100

实现定点原码两位乘法的逻辑电路框图如1.1所示.

. . .

. .

移位电路 最低两位移出 ALU 加法器 乘数 部分积 选择器 0 X 2X -X 被乘数 控 制 电 路

图1.1 定点原码两位乘法器逻辑电路框图

1.2 设计思路

我所设计的定点原码两位乘法器是用一个乘数模块,一个被乘数模块和部分积模块以及移位电路和选择器构成。

定点原码两位乘法器顶层的乘法器采用原理图设计输入方式,原码两位乘的

. . .

. .

整体设计包含一个乘数模块,一个被乘数模块和部分积模块以及移位电路和选择器作为底层设计,采用Verilog 设计输入方式。

采用硬件描述语言进行电路设计并实现给定的功能,设计的 Verilog程序经编译、调试后形成*.bit文件并下载到XCV200可编程逻辑芯片中,经硬件测试验证设计的正确性。

1.3 设计环境

·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机; ·EDA环境: Xilinx Foundation F3.1设计软件。

. . .

. .

第2章 功能模块的设计与实现

2.1 顶层电路的设计与实现

顶层方案图实现原码两位乘法器的逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200可编程逻辑芯片。在完成原理图的功能设计后,把输入/输出信号安排到XCV200指定的引脚上去,实现芯片的引脚锁定。

2.1.1创建顶层图形设计文件

顶层图形文件主要由一个乘数模块,一个被乘数模块和部分积模块以及选择器模块和移位电路模块封装而成的一个完整的设计实体,输入和输出组成。

可利用Xilinx Foundation F3.1设计软件软件实现顶层图形文件的设计两位乘法器的顶层图形如图2.1所示,INTA为乘数输入端,INTB为被乘数输入端,CLK为脉冲输入端,OUTC为两数积高位输出端,OUTD为两数积低位输出端。

图2.1 定点原码两位器顶层图形文件

2.1.2器件的选择与引脚锁定

(1)器件的选择

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

(2)引脚锁定

. . .

. .

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

图形文件中的输入/输出信号 XCV200芯片引脚 INTA 94,95,96,97,100,101,102,103 INTB 79,80,81,82,84,85,86,87 CLK 213 OUTC 224,228,229,230,231,232,234,235 OUTD 215,216,217,218,220,221,222,223 . . .

. .

2.2 基本功能模块的组成及工作原理

定点原码两位乘法器是由一个乘数模块,一个被乘数模块和部分积模块以及选择器模块和移位电路模块为基础而实现的,设计时被乘数模块,部分积模块以及选择器模块用图形设计输入方式实现,移位电路模块采用Verilog语言设计方式实现。

2.2.1被乘数模块的组成及工作原理

(1)被乘数模块的组成

被乘数模块由4个寄存器,1个移位寄存器,1个加法器等组成。

(2)被乘数模块的工作原理

被乘数模块主要的功能是实现把X转换成0,X,2X以及-X然后再由选择器模块选择出那一个送到加法器里。对2X的实现才用移位寄存器来实现,用其左移的功能将X左移一位得到2X,-X用加法器和寄存器得到,采用取反加一的办法实现。

. . .

. .

(3)被乘模块部结构

. . .

. .

2.2.2乘数模块的组成及工作原理

(1)乘数模块的组成

乘数模块由寄存器和移位电路组成。 (2)乘数模块的工作原理

乘数模块主要功能是右移两位将乘数最低两位移出,所移出的两位去控制被乘数模块去选择向加法器所送的数,移位由一个移位电路实现右移两位,在移位的同时乘数本身右移两位。 (3)乘数模块部结构

. . .

. .

2.2.3选择模块的组成及工作原理

(1)选择模块的组成

选择模块由8个4选1的选择器组成,8个4路选择器分别去选择由被乘数模块转换完的0,X,2X,-X,由8个4路选择器分别表示8位,再组合成一个数输出。

(2)选择模块的工作原理

选择模块的控制信号来自于乘数所移出的两位,然后选择被乘数的0,X,2X,-X其中一个输出,其主要工作原理就是8个4选1的选择器。 4选一数据选择器逻辑输出表达式为: F=(S0S1D0+S0S1D1+S0S1D2+S0S1D3)E 它的功能表为:

地址 S0 S1 * * 0 0 0 1 1 0 1 1

从表上我们可以看出当使能端E为“1”时输出为“0”即禁止,只有当使能端为“0”时选择器才有效

. . .

使能端 E 1 0 0 0 0 输入 D * D0---D3 D0---D3 D0---D3 D0---D3 输出 F 0 D0 D1 D2 D3 . .

(3)选择模块的部结构

. . .

. .

2.2.4移位模块的组成及工作原理

(1)创建Verilog源文件

module BFI (D, CLK, CLR, CE, LOAD, Q, Y1, Y0) ;

input [7:0] D ; input CLK ; input CLR ; input CE ; input LOAD ; output [7:0] Q ; reg [7:0] Q ; output Y1 ; reg Y1 ; output Y0 ; reg Y0 ;

always(posedge CLK or negedge CLR) begin if(!CLR) Q<=0; else if(LOAD) Q<=D; else begin Y1<=D[1]; Y0<=D[0]; Q<= Q>>2;

end

end endmodule

. . .

. .

(2)创建元件图形符号

为了能在图形编辑器中调用此元件,需要建立D[7:0], CLK, CLR, CE, LOAD输入端, Q, Y1, Y0输出端,可用Xilinx编译器的Create Symbol模块实现。

2.3 仿真调试

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

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

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

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

被乘数模块功能仿真波形结果如图2.2所示,可以看出功能仿真结果是正确的,进而说明电路设计的正确性。

图2.2 被乘数功能仿真波形结果

移位电路模块功能仿真波形结果如图2.3所示

. . .

. .

图2.3 移位电路功能仿真波形结果

. . .

. .

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

3.1 编程下载

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

3.2 硬件测试及结果分析

利用XCV200实验板进行硬件功能测试。原码两位乘发器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED数码管实现.

原码两位乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED数码管实现,其对应关系如表3.1所示

XCV200芯片引脚信号 XCV200实验板 相关信号

INTA INTB CLK OUTC OUTD K0 K1 CLOCK S1 S0 00111001 00101100 00100111 00001011 表3.1 XCV200实验板信号对应关系

由表3.1和图3.1比较可以看出硬件测试结果是正确的,说明电路设计完全正确。其硬件测试最后结果如图3.1所示:

. . .

. .

图3.1 硬件测试

. . .

. .

参考文献

[1] 昕燕. EDA技术实验与课程设计[M].:清华大学,2006

[2] 延滨.微型计算机系统原理、接口与EDA设计技术[M].:邮电大学,2006

[3] 王爱英.计算机组成与结构(第4版)[M].:清华大学,2006

[4] 俸远祯等.计算机组成原理[M].:电子工业,1996. [5] 杜建国.Verilog HDL硬件描述语言.:国防工业,2000 [6] 王炜.计算机组成与设计实验教程.:科学,2006

. . .

. .

附 录(电路原理图)

. . .

. .

课程设计总结: 主要从以下几方面总结: 1.设计过程中首先出现的问题是应用Foundation F3.1设计软件设计软件找不到自己要用的器件,熟练以后解决了此问题,接下来出现的问题是设计上的问题,在设计选择器这个问题上开始用的方法是用加法器去替代选择器发现这是把问题复杂化,解决方法是采用4选1选择器解决; 2.设计达到了题目的要求可以实现要去的大部分功能; 3.我相信,只要自己在每一次实践中都能仔细思考,亲自动手,现在学到的任何一点知识在将来都会成为一笔宝贵的财富。因此,我会认真地对待我的每一次课设和实验。 在这次计算机组成原理课程设计中,我做得很认真,也增长了不少知识。实验完后,我对Foundation F3.1设计软件软件,计算机基本工作原理有了更深的了解,也对乘法器的结构与原理有了进一步的认识。 不足之处在于:自己设计的没能完全的和老师所要求的一样 希望自己在可以学以致用,改进和提高,并将这些知识应用于自己以后的工作中。 指导教师评语: 指导教师(签字): 年 月 日 课程设计成绩 . . .

. .

. . .

因篇幅问题不能全部显示,请点此查看更多更全内容