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

更新时间:2024-05-19 10:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课 程 设 计 报 告

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

院(系):专 业:班 级:学 号:姓 名:指导教师:完成日期:

计算机组成原理课程设计 定点补码一位乘法器的设计

目 录

第1章 总体设计方案 .................................................................................................. 1 1.1 设计原理............................................................................................................... 1 1.2设计思路 ................................................................................................................. 2 1.3 设计环境............................................................................................................... 4 第2章 详细设计方案 .................................................................................................. 5 2.1 顶层方案图的设计与实现................................................................................... 5 2.1.1创建顶层图形设计文件 .................................................................................. 5 2.1.2器件的选择与引脚锁定 .................................................................................. 6 2.2 功能模块的设计与实现 .................................................................................... 7 2.2.1求补电路模块的设计与实现 .......................................................................... 7 2.2.2 控制电路模块的设计与实现 ......................................................................... 8 2.2.3 选择器模块的设计与实现 ............................................................................... 10 第3章 编程下载与硬件测试 .................................................................................... 12 3.1 编程下载............................................................................................................. 12 3.2 硬件测试及结果分析......................................................................................... 12 参考文献 ........................................................................................................................ 14

附 录(电路原理图) .............................................................................................. 15

-I-

第1章 总体设计方案

第1章 总体设计方案

1.1 设计原理

(1)用[X]补×[Y]补直接求[X×Y]补

讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。

若[Y]补=Y0Y1Y2…Yn 当Y0为1时,则有Y=-1+Yi×2-i

故有 X×Y=X×Yi×2-1-X当Y为负值时,用补码乘计算[X×Y]补,是用[X]补乘上[Y]补的数值位,而不理[Y]补符号位上的1,乘完之后,在所得的乘积中再减X,即加-[X]补。实现补码乘法的另一个方案是比较法,是由BOOTH最早提出的,这一方法的出发点是避免区分乘数符号的正负,而且让乘数符号位也参加运算。技巧上表现在分解乘数的每一位上的1为高一位的一个+1和本位上的一个-1:X×Y=X×(-1+Yi×2i) (逐项展开则得)=X×[-Y0+Y1×2-1+Y2×2-2+…+Yn×2-n]=X×[-Y0+(Y1-Y1×2-1)+(Y2×2-1-Y2×2-2)+…+(Yn×2-(n-1)-Yn×2-n)](合并相同幂次项得) =X×[(Y1-Y0)+(Y2-Y1) ×2-1+…+(Yn-Yn-1) ×2-(n-1)+(0-Yn) ×2-n]=X×(Yi+1-Yi)×2-i(写成累加求和的形式,得到实现补码乘运算的算法)将上述公式展开,则每一次的部分积为:

P1=[2-1(Yn+1-Yn) ×X]补 P2=[2-1(P1+(Yn-Yn-1) ×X)]补 …

Pi=[2-1(Pn-i+(Yn-I+2-Yn-I+1) ×X)]补 …

Pn=[2-1(Pn-1+(Y2-Y1) ×X)]补 Pn+1=[ (Pn+(Y1-Y0) ×X)]补

-1-

第1章 总体设计方案

则最终补码乘积为[X*Y]补=[Pn+1]补

由上述公式可以看出,比较法是用乘数中每相邻的两位判断如何求得每次的相加数。每两位Yi和Yi+1的取值有00,01,10,11四种组合,则它们的差值分别为0,1,-1和0,非最后一次的部分积,分别为上一次部分积的1/2(右移一位)的值Rj,Rj+[X]补,Rj-[X]补(即Rj+[-X]补)和Rj,但一定要注意:最后一次求出的部分积即为最终乘积,不执行右移操作。用此法计算乘积,需要乘数寄存器的最低一位之后再补充一位Yn+1,并使其初值为0,再增加对Yn和Yn+1两位进行译码的线路,以区分出Yn+1-Yn 4种不同的差值。对N位的数(不含符号位)相乘,要计算N+1次部分积,并且不对最后一次部分积执行右移操作。此时的加法器最好采用双符号位方案。 (2)Booth乘法规则

假设X、Y都是用补码形式表示的机器数,[X]补和[Y]补=Ys.Y1Y2…Yn,都

是任意符号表示的数。比较法求新的部分积,取决于两个比较位的数位,即Yi+1Yi的状态。

布斯乘法规则归纳如下:

首先设置附加位Yn+1=0,部分积初值[Z0]补=0。 当n≠0时,判断YnYn+1,

若YnYn+1=00或11,即相邻位相同时,上次部分积右移一位,直接得部分积。 若YnYn+1=01,上次部分积加[X]补,然后右移一位得新部分积。 若YnYn+1=10,上次部分积加[-X]补,然后右移一位得新部分积。

当n=0时,判YnYn+1(对应于Y0Y1),运算规则同(1)只是不移位。即在运算的最 后一步,乘积不再右移。

1.2设计思路

设计一个二输入三选一选择器对可能的三种情况进行选择。

当选择器中输入为S0 S1为00或者11时,由一寄存器一端接GND,另一端对其进行零输入;

当选择器中输入为S0 S1为01时,对其进行[X]补输入;

-2-

第1章 总体设计方案

当选择器中输入为S0 S1为10时,对[X]补输入端加一非门和一加法器对其进行取反加1输入。

输出结果与一个一端接GND初始置零的寄存器相连接于一个加法器,实现部分积加法运算

计算结果存放于两个相同的移位寄存器中,当部分积相加之后,由两个移位寄存器同时对部分积的和进行移位操作。

最后由两个移位寄存器的输出端连接至选择器重新选择进行循环操作,直到部分积移位结束。这里用布斯算法在硬件电路上比较容易实现。布斯算法的流程图如下:

开始 B←[x]补,C←[y]补 A、CR、Cn+1←0 01 Cn Cn+1=? 00或11 10 A←A+(B) A←A+0 A←A+(B)+1 A←11A C←C 22CR←CR+1 N CR=n+1? Y 结束

图1.1 定点补码一位乘法器的流程图

-3-

第1章 总体设计方案

补码一位乘法的硬件实现逻辑图如下:

Af1 Af2 A An Cf C Cn Cn+1 移ALU +1 CR 位脉冲 ≥1 & & Cn Cn+1 时钟脉冲 & & B B Cn Cn+1 R 结束 Q Q CT S 启动 Bf1 Bf2 B Bn 1.2 定点原码一位乘法器的原理框图

1.3 设计环境

·硬件环境:伟福COP2000型计算机组成原理实验仪、XCV200实验板、微机;

·EDA环境:Xilinx设计软件。

-4-

第2章 详细设计方案

第2章 详细设计方案

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

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

2.1.1创建顶层图形设计文件

顶层图形文件主要由一个两个16进制数和 和一个封装模块组装而成的一个完整的设计实体。可利用Xilinx模块实现顶层图形文件的设计,顶层图形文件结构如图2.1所示。

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

-5-

第2章 详细设计方案

2.1.2器件的选择与引脚锁定

(1)器件的选择

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

(2)引脚锁定

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

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

图形文件中的输入输出信号 X0 X1 X2 X3 X4 X5 X6 X7 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 CLR CLK O13 O12 O11 O10 O9 O8 O7 O6 O5 O4 O3 O2 O1 O0 O00

-6-

XCV200芯片引脚 P103 P102 P101 P100 P97 P96 P95 P94 P87 P86 P85 P84 P82 P81 P80 P79 P73 P213 P93 P99 P107 P108 P109 P124 P125 P147 P152 P178 P184 P185 P203 P111 P110 第2章 详细设计方案

2.2 功能模块的设计与实现

2.2.1求补电路模块的设计与实现

这个模块由八位加法器,非门组成,GND8输入的是8个低电平信号,这个模块实现的是对-X求补功能。

(1) 创建求补电路模块设计原理图。

求补电路原理结构如图2.2所示:

图2.2 求补电路模块逻辑框图

(2)创建元件图形符号

为能在图形编辑器(原理图设计输入方式)中调用NEG芯片,需要为NEG模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。A[7:0]是输入信号,B[7:0]是输出信号。 其元件图形符号如图2.3所示:

图2.3 求补电路模块元件图形符号

-7-

第2章 详细设计方案

(3)功能仿真

对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.4所示:

图2.4 求补电路仿真结果

2.2.2 控制电路模块的设计与实现

控制电路模块是由8个选择器模块和一个求补电路模块组成,实现选择控制功能。当C为高电平时输出-X的补码,当C端为低电平时,输出X的补码。

(1) 控制电路设计原理图。

控制电路原理结构如图2.5所示:

-8-

第2章 详细设计方案

图2.5 控制电路逻辑框图

(2)创建元件图形符号

为能在图形编辑器(原理图设计输入方式)中调用2_1DC8芯片,需要为2_1DC8模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。A[7:0]、C是输入信号,OUT[7:0]是输出信号。

其元件图形符号如图2.6所示:

图2.6 控制电路图形符号

-9-

第2章 详细设计方案

(3)功能仿真

对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.7所示:

图2.7 控制电路仿真结果

2.2.3 选择器模块的设计与实现

选择器主要由三个门电路组成,当CC输入为高电平时,O输出的值为A的值,否则输出B的值

(1) 创建选择器设计原理图。

选择器原理结构如图2.8所示:

图2.8选择器原理框图

-10-

第2章 详细设计方案

(2)创建元件图形符号

为能在图形编辑器(原理图设计输入方式)中调用DC1芯片,需要为DC1模块创建一个元件图形符号,可利用Xilinx foundation f3.1编译器中的如下步骤实现:Tools=>Symbol Wizard=>下一步。A、B、CC是输入信号,O是输出信号。其元件图形符号如图2.9所示:

图2.9 选择器元件图形符号

(3)功能仿真

对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1编译器的Simulator模块实现。仿真结果如图2.10所示:

图2.10 选择器仿真结果

-11-

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

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

3.1 编程下载

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

3.2 硬件测试及结果分析

利用XCV200实验板进行硬件功能测试。一位补码乘法器的输入数据通过XCV200实验板的输入开关实现,输出数据通过XCV200实验板的LED指示灯实现,其对应关系如表3.1所示。

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

XCV200芯片引脚信号 P94 P95 P96 P97 P100 P101 P102 P103 P79 P80 P81 P82 P84 P85 P86 P87 P73 P213 P147 P152 P178 P184 P185 P203 P111

-12-

XCV200实验板 K0:7 K0:6 K0:5 K0:4 K0:3 K0:2 K0:1 K0:0 K1:7 K1:6 K1:5 K1:4 K1:3 K1:2 K1:1 K1:0 K2:0 P213 A7 A6 A5 A4 A3 A2 A1 第3章 编程下载与硬件测试

P110 P93 P99 P107 P108 P109 P124 P125

A0 B6 B5 B4 B3 B2 B1 B0 利用表3.1中的输入参数作为输入数据,逐个测试输出结果,即用XCV200实验板的开关K0、K1及K2控制数据输入,同时观察数码显示管和发光二极管显示结果,得到如图3.1所示的硬件测试结果。

图3.1 硬件测试结果图

-13-

参考文献

参考文献

[1] 曹昕燕. EDA技术实验与课程设计[M].北京:清华大学出版社,2006 [2] 范延滨.微型计算机系统原理、接口与EDA设计技术[M].北京:北京邮电大学

出版社,2006 [3] 王爱英.计算机组成与结构(第4版)[M].北京:清华大学出版社,2006 [4]侯伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计[M].西安:西安电子科技

大学出版社,1998.5-9.

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

版社,2001.217-221.

[6]John F Wakerly.DIGIAL DESIGN Principles & Practices (Third Edition)[M].北京:

高等教育出版社,2001.446-54

-14-

参考文献

附 录(电路原理图)

-15-

附 录

课程设计总结: 1.在刚开始做这个课程设计时,由于对知识理解得不够深刻,导致设计上的失误,后来经过老师的指导才逐步形成了初步设计方案。在进行整体仿真时,发现乘数没有打入寄存器,又经过分步仿真调试后,发现是由于没有清零的缘故导致了以上故障。调整脉冲后,以上故障解决。 2.设计采用了自上而下的设计方法,基本实现了定点补码一位乘法的功能,能够正确求得积等结果。 3.通过这次课程设计,我充分锻炼了自己的动手能力以及分析解决问题的能力,弥补了自己在学习上的一些漏洞,改正了学习时对知识理解上的一些错误;在查阅资料的过程中,拓宽了自己的知识面;也明白了实践出真知,以后学习是不能只注重课本上的理论,要注重在实际中运用它,这样才能真正提高自己的能力。 指导教师评语: 指导教师(签字): 年 月 日 课程设计成绩

-16-

-17-

本文来源:https://www.bwwdw.com/article/pam7.html

Top