通信软件设计-第3章 乘法器除法器设计实例.ppt

通信软件设计-第3章 乘法器除法器设计实例.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 乘法器 在数字信号处理中经常要进行乘法运算,乘法器的设计对运算速度有很大的影响,通过本章的学习将讨论基本乘法器的电路运算问题,并详细介绍加法树乘法器、查找表乘法器、布尔乘法器设计。 3.1 乘法的基本原理 在二进制乘法中,乘法的基本算法常常可用所谓的一位乘法和两位乘法进行。 进行这种乘法运算时, 通常分别用乘数的一位或二位与被乘数相乘, 再把部分积加起来。 例分别用一位乘法和两位乘法求下式的积 : 1) 用一位乘法求积 010001110100110 01  00  11  10    ↓  ↓  ↓ ↓ (1) (0) (3) (2) 那么,用10乘以被乘数B时,为2B。它可以用被乘数左移一位来实现,即011101010; 用11乘以被乘数时,为3B ,即为 101011111;用0乘以被乘数为用1乘以B,即为 B再把上述部分积移位后相加,如下 : 0 1 1 1 0 1 0 1 ×(1) (0) (3) (2) 0 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 + 0 1 1 1 0 1 0 1 1 0 0 0 1 1 1 0 1 0 0 1 1 0 移位相加乘法器    移位相加乘法器的设计思想就是根据乘数的每一位是否为1进行计算,若为1则将被乘数移位相加。这种方法硬件资源耗用较少。以8位移位相加乘法器为例,其实现过程如下。先对乘数的最低位进行判断是否为1。如果为1,则把被乘数相加,然后被乘数向高位移1位,乘数向低位移1位;如果为0,则被乘数不相加而仍然向高位移1位,乘数向低位移1位。如此循环判断8次,结束运算。 3.1 查找表乘法器 lookup_mult 查找表是实现快速乘法器的一种设计思路。这种方法将乘积直接存放在存储器中,将操作数(乘数和被乘数)作为地址访问存储器,得到的输出数据就是乘法运算的结果。 查找表方式的乘法器速度只局限于所使用的存储器的存取速度。但由于查找表的规模随操作数精度的增加而迅速扩大, 因此这种方式主要用在较小型的乘法器中。 查找表乘法器 输入[3:0]a、b,输出[7:0]out,计算中将a、b分别分成高、低2位,即[1:0]firsta、firstb、seconda、secondb相乘,最后通过移位相加得到最后结果 查找表模块的设计 设计思路:将乘数与被乘数的组合算出结果,用表的形式将结果列出,其中的乘数与被乘数就是这个表的地址。应用到位的拼接符{ ,} 和case语句。 (4’h0)00×00=4’b0000 (4’h1)00×01=4’b0000 (4’h5)01×01=0001 (4’h9)10×01=4’b0010 查找表模块的设计 module lookup(out,a,b,clk); output[3:0] out; input[1:0] a,b; input clk; reg[3:0] out; reg[3:0] address; always @(posedge clk) begin address = {a,b}; case(address) 4h0 : out = 4b0000; 4h1 : out = 4b0000; 4h2 : out = 4b0000; 4h3 : out = 4b0000; 4h4 : out = 4b0000; 4h5 : out = 4b0001; 4h6 : out = 4b0010; 4h7 : out = 4b0011; 4h8 : out = 4b0000; 4h

文档评论(0)

beoes + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档