



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Booth算法笔记_verilog(布斯算法)2009-05-03 14:02参考程序下载:Booth_mul4_vBooth算法(布斯算法),一个比较推荐的带符号乘法算法.某天在某个群中听某个高手提起乘法运算仅用加法和移位运算来实现.所以当时有心去了解一下,可是!,当懂哥满怀热情的在百度百科上查询时,竟然发现也太丑陋了嘛,不晓得哪个小娃娃从哪里复制的,把人家的算法流程图复制没了就忍了,关键是能把20转载成20.唉误导啊误导啊,更郁闷的是人民们都喜欢复制并且不加以细看于是乎百度出来别人空间里写的booth算法都和百科里面雷同啊.So,懂哥才决定讨论哈这个.踏破铁鞋无觅处.竟然在某三级微机原理的辅导里面无意中发现了类似的介绍.废话不说了,懂哥就把这次的笔记整理好.(又,为了帮助被百科误导的小朋友们,懂哥这次用verilog描述的booth硬件实现并不是一个标准的乘法器,而仅仅是比较明确地展现步骤得出结果,并设置的寄存器名和百度百科里寄存器名设为相同.) 具体步骤和举例请参考程序后面的分析(基于改良Booth算法的4位乘法器笔记见:/hlyrm/blog/item/2b9a4342760d771b73f05d04.html,/hlyrm/blog/item/0a5fa72b891bb6305343c105.html)先补充一下这次写这个又巩固了的= =| 无符号数-逻辑移位 有符号数-算术移位 寄存器类型的值可取负数,但若该变量用于表达式运算中,则按无符号类型处理. 而booth算法里面的移位则是算术移位 Booth算法和一般按照普通乘法运算在于算部分积那一块.Booth算法的乘法器仅仅是对乘数的位重新编码以减少乘法运算周期所需要的加法运算次数.且用补码形式表示正数和负数,所以不像一般讨论的那样要讨论负数运算.所以,Booth算法实现的乘法可以直接用于两个补码数相乘.(关键在于booth跳过了乘数中全部是1的字符串,将一系列加法运算用一次加法或减法代替) Booth编码方法(引用百科) 设y=y0,yly2yn为被乘数,x为乘数,yi是a中的第i位(当前位).操作的方式取决于表达式(yi+1-yi)的值,这个表达式的值所代表的操作为: 0 无操作 +1 加x -1 减x 流程图(额,补充百科里缺少的算法流程图) 给出懂哥的verilog描述的booth算法硬件实现. 确实写得丑陋啊还生硬的加了一个ns.由此联想到用状态机来描述4位乘法可能更好. 并且遇到过的问题就是变量不能在多个always里赋值,并且加深了多次赋值可能导致的冲突理解 module mul_4( clk, res_n, mul1, mul2, result); parameter width=4d4; input clk,res_n; input width-1:0mul2,mul1;/乘数 output 2*width-1:0result;/运算结果最多是两倍乘数位数 wire 2*width-1:0result; reg width-1:0 R0,R1,R2;/result=R0,R1,multiplier=R2 reg P; reg ns; assign result=R0,R1; always(posedge clk or negedge res_n) begin if(!res_n) begin R0=0; R1=mul1; R2=mul2; P=1b0; ns=0; end else begin if(!ns) begin case(R10,P) 2b01: begin R0=(R0+R2);ns=1; end 2b10: begin R0=(R0-R2);ns=1; end default: R0,R1,P=R0width-1,R0,R1; endcase end else begin R0,R1,P=R0width-1,R0,R1; ns=0; end end end endmodule 然后就是testbench timescale 1ns/1ns module t_mul_4; parameter width=4d4; reg clk,res_n; regwidth-1:0mul1,mul2; wire2*width-1:0result; mul_4 t(clk,res_n,mul1,mul2,result); initial begin clk=0; res_n=1b1; mul1=4b0111; mul2=4b1101; #5 res_n=0; #5 res_n=1b1; #80 $stop; end always #5 clk=clk; endmodule 设置两个乘数分别是4b0111(4d7),4b1101(-4d3) 仿真波形如图 看着波形就更好分析和理解整个过程了(R2=1101) R0 R1 P 0000 0111 0 初始 0011 0111 1 R0=R0-R2 0001 1011 1 右移(第一次循环) 0000 1101 1 右移(第二次循环) 0000 0110 1 右移(第三次循环) 1101 0110 1 R0=R0+R2 1110 1011 1 右移(第四次循环) 嗯,暂时要记的就是这么多. 废话:这么久没有做笔记是因为在为期中做准备.考完期中解决了雪崩堆积的作业然后反思因为考得悲剧的期中信号,感觉到也许.应该再改进一下. 嗯,学习是不止步的,这样的意义并不是单纯的取得,也是一种发展的过程.有人说学了万一没有用呢?懂哥说,不是这样的,对于懂哥来说,只是懂哥大学生活的乐趣定义和别的同学不一样吧,也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025临床执业医师真题及1套参考答案详解
- 2025年工程硕士考前冲刺测试卷AB卷附答案详解
- 2023年度药店相关技能鉴定试题含完整答案详解(典优)
- 2024年安全员考试题库(黄金题型)附答案详解
- 2024-2025学年度广播电视播音员主持人通关题库【名校卷】附答案详解
- 2025年自考专业(计算机信息管理)考前冲刺练习题及参考答案详解AB卷
- 绿色食品添加剂革命:2025年合成生物学应用产业研究
- 2024年黑龙江省尚志市北师大版7年级数学上册期中题库【巩固】附答案详解
- 2024-2025学年厦门软件职业技术学院单招《职业适应性测试》综合提升测试卷【突破训练】附答案详解
- 2023年度医师定期考核综合提升测试卷附参考答案详解【考试直接用】
- 幼儿园获奖公开课:大班语言绘本《现在我很棒》课件
- 患者的卧位课件
- 日历表2026年日历中文版纵向排版周日开始带周数带节假日调休安排
- 中药香囊与车载香氛结合企业制定与实施新质生产力战略研究报告
- 学生会综合事务部述职报告
- 人教版劳动教育实践活动手册教案一年级
- 小狗钱钱全本(完整版)
- Unit 1 Making friends Section A How do we greet friends 第一课时(说课稿)-2024-2025学年人教PEP版(2024)英语三年级上册
- 《英语测试与评价》教学大纲
- 《宠物美容与护理》课件-耳道护理
- 骆驼祥子-(一)-剧本
评论
0/150
提交评论