欢迎来到天天文库
浏览记录
ID:16460816
大小:210.17 KB
页数:18页
时间:2018-08-10
《定点原码两位乘法器的设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、沈阳航空航天大学课程设计报告沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:定点原码二位乘法器的设计目录第1章总体设计方案11.1设计原理11.2设计思路31.3设计环境4第2章功能模块的设计与实现62.1总体的设计与实现62.1.1总体方案的逻辑图62.2基本功能模块的组成及工作原理82.2.1被乘数模块的组成及工作原理82.2.2乘数模块的组成及工作原理82.2.3选择模块的组成及工作原理92.2.4移位模块的工作原理9-15-沈阳航空航天大学课程设计报告第3章程序仿真与测试103.1程序
2、仿真103.2仿真测试及结果分析10参考文献12附录(汇编程序)13-15-沈阳航空航天大学课程设计报告第1章总体设计方案1.1设计原理定点原码两位乘与定点原码一位乘一样,符号位的运算和数值部分是分开进行的,但为了提高运算速度,所以采用了原码两位乘,因为原码两位乘是用乘数的末两位的状态来决定新的部分积如何形成,可提高运算速度。乘数和被乘数都用原码表示。两位乘数有四种可能的组合,每种组合对应的操作如表1.1所示表1.1乘数组合与部分积关系对照表乘数yn-1yn新的部分积00新部分积等于原部分积右移两位01新部分积等于原部分积
3、加被乘数后右移两位10新部分积等于原部分积加2倍被乘数后右移两位11新部分积等于原部分积加3倍被乘数后右移两位与一位乘法比较,多出了+2X和3X两种情况。把X左移1位即得到2X,在机器内通常采用左斜送一位来实现。可是+3X一般不能一次完成,如分成两次进行,又降低了计算速度。解决问题的办法是:以(4X-X)来代替3X运算,在本次运算中只执行-X,而+4X则归并到下一步执行,此时部分积以右移了两位,上一步欠下的+4X已变成+X,在实际线路中要用一个触发器C来记录是否欠下+4X,若是,则C变为1。因此实际操作用Yi-1,Yi,C
4、三位来控制,运算规则如下所示:表1.2判断值对应的操作以及C值的变化情况组合值Yi-1YiC操作C值变化0000部分积+0;右移两位C=01001部分积+x;右移两位C=01010部分积+x;右移两位C=02011部分积+2x;右移两位C=02100部分积+2x;右移两位C=03101部分积-x;右移两位C=13110部分积-x;右移两位C=1-15-沈阳航空航天大学课程设计报告4111部分积+0;右移两位C=1定点原码两位乘法器实现的功能应如下面例子所示,设计的电路应实现下面例子给定的功能。用原码两位乘方法求X*Y,已知
5、X=07H,Y=16H(这里的0或1表示符号位)。2X=0010.1110表1.307H*16H的计算过程部分积乘数Cj说明000.000001100开始,部分积为0,Cj=0+010.1110yn-1ynCj=100,加2x*,保持Cj=0010.11100110000.101110010—>2位,得新的部分积,乘数同时—>2位+001.0111yn-1ynCj=010,加x*,保持Cj=0010.001010010000.10001010—>2位得最终结果实现定点原码两位乘法的流程框图如1.1所示.11-15-沈阳航空
6、航天大学课程设计报告图1.1定点原码两位乘法器逻辑电路框图1.2设计思路设计的定点原码两位乘法器是用一个乘数模块,一个被乘数模块和部分积模块以及移位模块和选择模块构成。顾名思义,乘数模块以及被乘数模块即用来存储乘数和被乘数的模块,思路是把乘数存储在R1中,被乘数则存储在R2中。部分积则和书上所说的一样,先全部清零,在这里,我将把部分积存储在R0中。因为原码两位乘涉及到欠位,所以R3中存储欠位。-15-沈阳航空航天大学课程设计报告思路大概如下。将要计算的乘数以及被乘数分别输进存储器中,然后分别计算出x*以及2x方便以后计算。
7、然后再提出两数的符号位并进行异或运算(比如17H,06H的符号位计算则为1异或0最后经过移位运算可得出最终的符号位模式10,00)。下面便是具体计算过程:记部分积为000.0000,判断yn-1ynCj的值并加上对应的值然后将部分积右移两位,同时将乘数右移两位,重复计算,计算次数达到2的时候判断附加位,如果附加位为1,则加x*并右移两位得结果,否则直接得出结果。最终,要进行符号位运算。由于上面已经计算好符号位为10或者00,所以将上面的步骤得到的结果与7FH相与去掉上面结果的最高位,再将算好的符号位加到结果上则可得到最终结
8、果。根据课设题目要求,采用伟福COP2000和实验箱进行设计并实现定点原码两位乘,所以本题目需要试用软件进行调试,首先需要进行编程。以下会给出几个本程序中将用到的汇编语言以及其对应的注释:表1.4程序部分操作的注释ADDA,R?将寄存器R?的值加入累加器A中ADDCA,R?将寄存器R?的值加入累加器A中
此文档下载收益归作者所有