期中作业-设计文档和仿真报告 1. 算法 根据Booth算法,一个16位二进制数A可被表示为如下形式: 将上述方程应用到A*B后,我们可以得到: 因此,基于Radix-4的Booth算法,我们可以将A*B转化为9个部分积之和。应用Wallace树,每次对三个数求和,可以将九个部分积求和的过程优化成5步。优化方式和具体流程如下图: ## 2. Verilog设计代码 模块之间的调用关系如下图,顶层设计模块为multiplier。 multiplier.v ├─booth_16x16.v └─wtree_16x16.v ├─full_adder.v └─half_adder.v multiplier.v module multiplier(A, B, M, clk, rst_n); parameter width = 16; input
2021-11-18 14:44:44 526KB Verilog
1
以实现25×18位带符号快速数字乘法器为目标,采用改进的基4 Booth算法以3位编码产生部分积,优化最低位产生电路,使用统一的操作扩展各部分积符号位,相比于传统方法提高了阵列规则性、节省了芯片面积;用传输门构成基本压缩器,并在此基础上优化实现高阶压缩器,进而组成一个Wallace树结构,同时将9组部分积压缩为2组,使电路仅需3级压缩、关键路径延迟时间为8个异或门延迟,有效地提高了压缩效率和降低了关键路径延迟时间。采用GF 28 nm CMOS工艺,以全定制流程设计,版图面积为0.011 2 mm2,仿真环境标准电压1.0 V、温度25℃、最高工作时钟频率1.0 GHz,系统的功耗频率比为3.52 mW/GHz,关键路径延时为636 ps,组合逻辑路径旁路寄存器的绝对延时为1.67 ns。
1
booth_wallace_multiplier 展位编码的华莱士树乘法器
2021-10-21 22:59:03 5KB Verilog
1
计算机组成原理中的Booth乘法器,相信大家都是非常熟悉的了。我在这里用了两种方法实现。 1.booth_com.v。首先把输入的两个操作数锁存一拍,然后用组合逻辑算出乘积,通过寄存器输出。  tbooth_com.v。booth_com的testbench。利用随机函数$random产生两个机数,然后将booth_com算出的结果与预期结果进行比较,并将比较的结果写入report_com文件。 2.booth_pipeline.v。用四级流水线实现的4位Booth算法乘法器。相信对大家理解流水线会有所帮助。 tbooth_pipeline.v。booth_pipeline的testbench。利用随机函数$random产生两个机数,然后将booth_pipeline算出的结果与预期结果进行比较,并将比较的结果写入report_pipeline文件。 两个源文件均在quartus5.0中实现。
2021-09-17 08:42:02 1.02MB FPGABooth乘法器
1
64位booth乘法器
2021-08-19 15:15:51 192KB 乘法器
1
Booth算法基本原理和设计思想进行详细介绍!入门必备!
2021-08-19 09:27:29 41KB Booth 乘法器
1
booth乘法器首先,当然是研究Booth算法了,然后就是那一组数举例,对着每一次运算分析,理解算法每一步骤原因,再后就是画状态图,确定每一步的作用.然后就是写了…不过,这次写的时候,懂哥觉得难以平衡multiplier和multiplicant的移位和运算,于是参考了西里提书上的一个思路,就是在处理时序乘法器处理011(或者100)情况时,十分精巧地将被乘数移一位后和乘积相加,然后再移动一位,在这些动作之后,位置指针都同时到了下一位Yi中当两次移位后,正确地移到了运算结束后的位置.
2021-07-05 18:19:50 697B booth
1
基于补码等价定义的Booth算法证明基于补码等价定义的Booth算法证明基于补码等价定义的Booth算法证明
2021-06-22 10:01:16 165KB Booth算法
1
Radix4_Booth_Multiplier 1.算法 根据Radix-4 Booth Multiplier的功能,我们可以发现16位值A可以是: 将上面的函数应用于A乘以B,那么我们可以找到: 然后将有9个部分值,我们可以使用华莱士树来获得fianl产品,如下所示: 2.设计规范 总体设计如下所示: multiplier.v ├─booth_16x16.v └─wtree_16x16.v ├─full_adder.v └─half_adder.v 乘数module multiplier (A, B, M, clk, rst_n); parameter width = 16 ; input clk, rst_n; input wire [width - 1 : 0 ] A, B;
2021-06-18 15:39:21 424KB Verilog
1
Booth乘法规则如下: ⑴ 参加运算的数用补码表示; ⑵ 符号位参加运算; ⑶ 由于每求一次部分积要右移一位,所以乘数的最低两位Yn、Yn+1的值决定了每次应执行的操作; ⑷ 移位按补码右移规则进行; ⑸ 共需做n+1次累加,n次移位。
2021-06-17 09:57:03 4.86MB 组成原理 定点数 浮点数 运算
1