1 / 10
文档名称:

八位二进制乘法器.doc

格式:doc   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

八位二进制乘法器.doc

上传人:xxj16588 2016/2/23 文件大小:0 KB

下载得到文件列表

八位二进制乘法器.doc

文档介绍

文档介绍:石家庄铁道大学数字逻辑与数字系统——八位二进制乘法器学院:信息科学与技术学院班级:计0805-2学号:20082459姓名:王志军指导老师:王彦芳完成时间::八位二进制乘法器1课题综述选择这个课题与我以前做过二进制乘法电路有关,思想源于此,但那次是用组合逻辑电路实现的且是两位二进制乘法,很受局限,由此想扩展它。实现二进制乘法器的电路有多种方法,一种是由组合逻辑电路(与、或、非门)构成的乘法器,速度快但占用PLD的资源比较多,难以实现多位乘法;另一种是基于PLD器件外接ROM九九表的乘法器,但无法构成片上系统,不是很适用。这一次我是采用八位二进制乘法的硬件算法,不同于前面两种乘法器电路,是由一个加法器和移位寄存器构成的时序逻辑方式的八位硬件乘法器。。在计算过程中,先观察乘数的每一位,从最低位开始,若最低位是1,则被乘数被复制到下面,否则复制为全零,复制下来的数值较前一个数值左移一位。最后,将复制的数值相加,它们的和就是乘积。两个n位二进制数相乘的结果最多可以有2n位的二进制数。根据上面这个乘法的过程,可以得出三点:?只对两个二进制数进行相加运算,并用寄存器不断地累加部分积;?将累加的部分积左移,但复制的被乘数不左移;?乘数的对应位若为0时,对累加的部分积不产生影响。+dA右移n=0d[7…0]被乘数b[7…0]乘数n为数STA[15..0]0nn-1Z=:d为被乘数输入,b为乘数输入,ST为启动信号,A[15..0]输出端口为乘积。当ST为一时乘法器运算开始,累加寄存器A清零。在S1状态下对乘数最低位b0进行检测,若为1,被乘数加到A中的部分积上;如果b0为0,系统则不操作,直接进入到S2状态。在S2状态中进行累加寄存器A和乘数b的右移一位,并且判断乘数的位数是否运算结束,若运算结束,在S3状态下,输出乘积结果。这是由两个进程的状态机来实现:一个进程描述状态转移,另一个进程描述寄存器操作。累加寄存器q的位数为WIDTHd+WIDTHb+1,其中,q的高位段(WIDTHd+1)进行数的累加,然后向q的低位进行移位,形成部分积。当计数器n减到0时,乘法过程结束。在寄存器操作进程中,由于使用的是时钟同步工作方式,其操作都是在下一个状态完成,因此在乘法结束进入S3状态下,需要对累加寄存器q左移一位,并将寄存器q中的乘积结果输入到乘积输出端A。,有了做课题一的熟悉和经验,调试过程容易多了。石家庄铁道大学具体步骤是:绘制完后—>file—>project—>setprojectcurrentfile,选择之后,再选择,Max+plus2—>compiler开始进入调试。piler调试成功的结果上图是最后调试成功后的结果,在调试没有成功时,曾出现过许多错误,第一个错误也是最普遍的