定点补码一位乘法器的方案设计书与实现_第1页
定点补码一位乘法器的方案设计书与实现_第2页
定点补码一位乘法器的方案设计书与实现_第3页
定点补码一位乘法器的方案设计书与实现_第4页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点补码一位乘法器的设计与实现院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期: 2012年1月 13日目录第 1 章总体设计方案11.1 设计原理 11.2 设计思路 11.3 设计环境 2第 2 章详细设计方案32.1 顶层方案图的设计与实现3创建顶层图形设计文件3器件的选择与引脚锁定4编译、综合、适配52.2 功能模块的设计与实现5取补模块的设计与实现5选择器模块的设计与实现7乘数补码移位寄存器模块的设计与实现11部分积移位寄存器模块的设计与实现132.3 仿真调试 14第 3 章编程下载与硬件测

2、试16参考文献 17附录(电路原理图) 18第 1 章 总体设计方案1.1 设计原理在计算两个补码相乘时,可以通过Booth 算法来实现定点补码一位乘的功能。布斯 (Booth) 算法采用相加和相减的操作计算补码数据的乘积,Booth 算法对乘数从低位开始判断,根据后两个数据位的情况决定进行加法、减法还是仅仅进行移位操作。讨论当相乘的两个数中有一个或二个为负数的情况,在讨论补码乘法运算时,对被乘数或部分积的处理上与原码乘法有某些类似,差别仅表现在被乘数和部分积的符号位要和数值一起参加运算。Booth 乘法规则如下:假设X 、Y 都是用补码形式表示的机器数,X 补和 Y 补 =Ys.Y1Y2Yn

3、 ,都是任意符号表示的数。比较法求新的部分积,取决于两个比较位的数位,即Yi+1Yi 的状态。首先设置附加位Yn+1=0 ,部分积初值 Z0 补=0。当 n0 时,判断 YnYn+1 ,若 YnYn+1=00 或 11,即相邻位相同时,上次部分积右移一位,直接得部分积。若 YnYn+1=01 ,上次部分积加 X 补,然后右移一位得新部分积。若 YnYn+1=10 ,上次部分积加 -X 补,然后右移一位得新部分积。当 n=0 时,判 YnYn+1( 对应于 Y0Y1) ,运算规则同 (1)只是不移位。即在运算的最后一步,乘积不再右移。1.2 设计思路首先要采用原码值输入,乘数和被乘数皆为 8 位

4、。而且根据补码一位乘法运算规则: (1) 如果 yn = yn+1,部分积 zi 加 0,再右移一位; (2) 如果 yn yn+1 = 01,部分积加 x 补,再右移一位; (3) 如果 yn yn+1 = 10 ,部分积加 - x 补,再右移一位;这样重复进行 n+1 步,但最后一步不移位。包括一位符号位,所得乘积为 2n+1 位,其中 n 为尾数位数。设计一个二输入三选一选择器对可能的三种情况进行选择。当选择器中输入为Yi Yi+1 为 00 或者 11 时,由一寄存器一端接 GND ,另一端对其进行零输入;当选择器中输入为 Yi Yi+1 为 01 时,对其进行 X 补输入;当选择器中

5、输入为 YiYi+1 为 10 时,对 X 补输入端加一非门和一加法器对其进行取反加1 输入。输出结果与一个一端接GND 初始置零的寄存器相连接于一个加法器,实现部分积加法运算;计算结果存放于两个相同的移位寄存器中,当部分积相加之后,由两个移位寄存器同时对部分积的和进行移位操作。最后由两个移位寄存器的输出端连接至选择器重新选择进行循环操作,直到部分积移位结束。定点补码一位乘法器的设计总框图如图1.1 所示。图 1.1 定点补码一位乘法器的设计总框图1.3 设计环境·硬件环境:伟福COP2000 型计算机组成原理实验仪、XCV200 实验板、微机;· EDA 环境: Xili

6、nx foundation f3.1 设计软件、 COP2000 仿真软件。第 2 章 详细设计方案2.1 顶层方案图的设计与实现顶层方案图是用来实现补码一位乘法器乘数与被乘数的输入和取补,以及结果的寄存和输出、二输入三输出选择器和运算控制电路、移位电路等逻辑功能,采用原理图设计输入方式完成,电路实现基于XCV200 可编程逻辑芯片。在完成原理图的功能设计后,把输入以及输出信号安排到XCV200 指定的引脚上去,实现芯片的引脚锁定。创建顶层图形设计文件顶层图形文件的设计实体主要由取补电路(封装为QUBU ),二输入三输出选择器(基于 D2-4E 的改装),乘数移位寄存器(封装为 U11),部分

7、积移位寄存器(基于 FD 实现),加法器(基于 ADD8 的改装),等模块组装而成的一个完整的可编程逻辑芯片U30。顶层图形文件结构如图2.1 所示:图 2.1 顶层图形文件结构图器件的选择与引脚锁定( 1)器件的选择由于硬件设计环境是基于伟福COP2000 型计算机组成原理实验仪和XCV200 实验板,故采用的目标芯片为Xilinx XCV200 可编程逻辑芯片。( 2)引脚锁定把顶层图形文件中的所有输入、输出信号对应到Xilinx XCV200 芯片指定的引脚上去,实现芯片的引脚锁定,各信号及 XilinxXCV200 芯片引脚对应关系如表 2.1 所示:表 2.1 信号和芯片引脚对应关系

8、图形文件中的输入/输出信号XCV200 芯片引脚信号GRDP50ZCLOCKP213FJWP47CLRP49VCCP48S1P80S2P81S3P82S4P84S5P85S6P86S7P87Y1P95Y2P96Y3P97Y4P100Y5P101Y6P102Y7P103E0P63E1P73E2P72E3P71E4P70E5P66E6P65E7P64编译、综合、适配利用 Xilinx foundation f3.1 的原理图编辑器对顶层图形文件进行编译,并最终生成网络表文件,利用设计实现工具经综合、优化、适配,生成可供时序仿真的文件和器件下载编程文件。2.2 功能模块的设计与实现功能模块主要由取补

9、电路,二输入三输出选择器,移位寄存器,部分积移位寄存器等模块组成,由Xilinx XCV200可编程逻辑芯片分别实现。取补模块的设计与实现进行求补的方法就是从数的最右端a0开始,由右向左,直到找出第一个“1”,例如ai1, 0in。则ai 以左的每一个输入位都求反,即1 变0,0变 1。最右端的起始链式输入C 1 必须永远置成“0”。当控制信号线E为“1”时,启动对2 求补的操作;当控制信号线以利用符号位来作为控制信号E 。(1) 创建求乘数补码电路模块设计原理图E 为“ 0”时,输出将和输入相等。可乘数求补电路原理结构如图2.1 所示:图 2.1 乘数求补电路原理结构图(2) 创建元件图形符

10、号其元件图形符号如图2.2 所示:图 2.2 求补电路模块元件图形符号(3)功能仿真对创建的取补模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundation f3.1 编译器的 Simulator 模块实现。仿真结果如图2.3 所示:图 2.3 取补电路模块仿真结果选择器模块的设计与实现选择器主要由一个D2-4E 芯片和逻辑门电路控制选择输出。输入端输入的值分别为 X 补 , X 补 以及“ 00000000”(八个输入端为一组)。D2-4E 芯片的 A0 和 A1 端的“ 0”和“ 1”控制 D0 , D1 , D 2 , D3 当 A0 A1 为 01 时,输出为 D 2 高

11、电平,即为 D 2 输出值为 1,通过逻辑门电路实现输出为 X 补的值;当 A0 A1 为 10 时,输出为 D1 为 高电平,即为 D1 输出值为 1,通过逻辑门电路实现输出为 X 补 的值;当 A0 A1 为 00 时,输出为 D0 为 高电平,即为 D0 输出值为 1,同时当 A0 A1 为 11 时,输出为 D3 为 高电平,即为 D3 输出值为 1,由于此时 D0 和 D3 输出值为相同,故此两条数据线通过一个或门输出一条数据线,此时输出值为“ 00000000”。正好实现三输入一输出的选择器模块。(1) 创建选择器设计原理图三输入一输出选择器原理结构如图2.4 所示:图 2.4 选

12、择器原理框图(2) 创建元件图形符号其元件图形符号如图2.5 所示图 2.5 选择器元件图形符号(3)功能仿真对创建的三输入一输出器模块进行功能仿真,验证其功能的正确性,可用Xilinx foundation f3.1 编译器的 Simulator 模块实现。仿真结果如图2.6 所示:(a)(b)(c)图 2.6 选择模块仿真结果图乘数补码移位寄存器模块的设计与实现乘数补码移位寄存器模块由八个二选一选择器(MUXCY), 9 个寄存器(FD)组成, CP 端输入的是1 个低电平信号其余都为高电平信号。MUXCY选择器由控制信号S 端,输入端 Di 和 Ci ,以及输出端O 组成,当 S 端为低

13、电平信号时,选择输出Di 值,当 S 端为高电平信号时,选择输出Ci 值。每次的输出信号寄存到 FD 中, MUXCY输出端 O 连接下一位的寄存器,这样就实现了移位寄存的功能。移位的 Y07 和 08 两个输出端恰好为yn 和 yn 1 的两个值, yn 和 yn 1 的两个值要分别接到选择器的A0 和 A1 端。(2) 创建乘数补码移位寄存器模块设计原理图。乘数补码移位寄存器原理结构如图2.7 所示 :图 2.7 乘数补码移位寄存器原理结构图(2)创建元件图形符号其元件图形符号如图2.8 所示:图 2.8 乘数补码移位寄存器电路模块元件图形符号(3)功能仿真对创建的乘数补码移位寄存器模块进

14、行功能仿真,验证其功能的正确性,可用 Xilinx foundation f3.1 编译器的 Simulator 模块实现。仿真结果如图2.9 所示:图 2.9 乘数补码移位寄存器模块仿真结果部分积移位寄存器模块的设计与实现部分积移位寄存器模块是由一个 8 位寄存器( FD8CE)和四个逻辑门电路组成,实现部分积移位寄存功能。由于部分积的初始值为“ 00000000”,这样就要求 FD8CE寄存器的初始值为“ 00000000”,只需要给清零端 CLR 一个高电平的信号即可实现。进行部分积移位时,要求移位过程中保证符号位相同,这样就需要把第一位符号位复制为两个数,而其余的 6 位相继向下串一位

15、,这样就实现了移位功能,同时还保证的符号位相同。(1)部分积移位寄存器设计原理图。部分积移位寄存器原理结构如图 2.10 所示:图 2.10 部分积移位寄存器原理图(2)功能仿真对创建的寄存器模块进行功能仿真,验证其功能的正确性,可用Xilinxfoundation f3.1 编译器的 Simulator 模块实现。仿真结果如图2.11所示:图 2.11 部分积移位寄存器仿真结果2.3 仿真调试仿真调试主要验证设计电路逻辑功能、时序的正确性,本设计中主要采用功能仿真方法对设计的电路进行仿真。通过多组数据进行仿真测试,分别对两个正数相乘,一个正数与一个负数相乘,两个负数相乘结果进行检验。(1)建

16、立仿真波形文件及仿真信号选择功能仿真时,首先建立仿真波形文件,选择仿真信号,对选定的输入信号设置参数,选定仿真信号和设置参数。(2)功能仿真结果与分析仿真结果分别如图2.12(a) 、 (b) 所示。(a)(b)图 2.12 功能仿真波形结果由图2.12 所示信息对比可知,多组仿真都完全正确,说明本设计能实现补码一位乘法计算功能。第 3 章编程下载与硬件测试利用 COP2000 仿真软件的编程下载功能,将得到.bit 文件下载到 XCV200 实验板的XCV200 可编程逻辑芯片中。由于此次编译有点问题,最终没能成功下载到实验版的 XCV200 可编程逻辑芯片中。参考文献1 曹昕燕 .EDA

17、技术实验与课程设计 M. 北京:清华大学出版社, 20062范延滨 . 微型计算机系统原理、接口与EDA设计技术 M. 北京:北京邮电大学出版社, 20063唐朔飞 . 计算机组成原理(第2 版) M. 北京:高等教育出版社, 2008附 录(电路原理图)课程设计总结:经过为期两周的课程设计,我真的受益匪浅。我的课设题目是定点补码一位乘法器的设计与实现。但当我安装 Xilinx foundation f3.1 设计软件的时候,我意识到了并没有那么简单。于是,我通过网上的查询以及和同学的探讨,初步掌握了该软件的运用方式,基本能够找到设计电路所需要的芯片。之后,在进行封装的时候,我又遇到了新的问题,通过同学的帮助,我终于掌握了封装的方法。在设计乘数补码移位寄存器模块没有找到八个二选一选择器( MUXCY),最后我终于在图书馆 806 的电脑上找到了这个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论