移位累加乘法器.doc

移位累加乘法器.doc

ID:55175200

大小:14.50 KB

页数:2页

时间:2020-04-30

移位累加乘法器.doc_第1页
移位累加乘法器.doc_第2页
资源描述:

《移位累加乘法器.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、研究了半天特权同学的16位乘法器的移位累加部分的代码,始终没有搞清楚其中的原理。希望特权同学能对该段代码给出一个详细的分析,举例说明每一步具体是怎样移位并累加的。本人个人认为:两个二进制数之间相乘,就是用乘数从最低位开始,每一位依次去和被乘数相乘,最终再将每一次所得的乘积相加,这样就得到了最终的乘积。但要注意的是,和十进制数的乘法类似,用乘数的某一位去和被乘数相乘时所得到的结果的最低位必须与该乘数所在位对齐,即每一步所得到的乘积应该依次左移移位,呈阶梯状排列。基于以上分析,本人对特权同学的移位累加部分的代码作了相应的改进:if(i==0)begin//锁存乘数、被乘数areg<=ai

2、n;breg<=bin;endelseif(i>5'd0&&i<5'd17)if(areg[i-1])yout_r<=yout_r+({16'h0000,breg}<<(i-1));关键语句为红色标示那句,当乘数a的某一位为1(为0可以忽略,因为0和b相乘得到的结果也为0)时,与b相乘的结果为b(16位),在前面补上16个0后,结果即为32位,再左移i-1位,即将该结果前面的i-1个0移到最后补齐。现举例分析(由于16位相对繁琐一点,所以以两个4位数相乘为例,原理都是一样的):(b)1010x(a)1101------------------00001010(i=1)00000000

3、(i=2)00001010(i=3)+00001010(i=4)-------------------------------左移(i-1)位后:(b)1010x(a)1101------------------00001010(i=1)00000000(i=2)00101000(i=3)+01010000(i=4)-------------------------------=10000010

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。