verilog数字设计
文章平均质量分 62
一些简单模块的rtl设计
Sunny Shining
这个作者很懒,什么都没留下…
展开
-
booth编码乘法器,含verilog 代码
Booth编码首先介绍一下波斯编码,可以通过理解下面的等式:可以证明的是,这三个公式是相等的,一个有符号的二进制数的补码用公式1来表示,可以等价地写成公式2和公式3。公式2其实就对应的2位一组的booth编码,公式3对应的3位一组的booth编码这个过程就是对Y进行编码的过程。编码之后,乘数Y中的位被划分为不同的组, 每一组包括3位,这些组互相交叠。Booth编码可以减少部分积的数目(即减少乘数中1的个数),用来计算有符号乘法,提高乘法运算的速度。如上图所示为二进制乘法的过程,也是符合我们正常计原创 2021-06-24 19:34:52 · 9388 阅读 · 2 评论 -
同步复位异步复位
异步和同步复位时序分析翻译 2022-09-07 12:38:15 · 6921 阅读 · 0 评论 -
自己写的带符号除法器,verilog以及matlab
matlab代码%divideclear;close all;clc;WIDTH=16;div_A=[20855,21855,15,1166,11665,1115,1180,32777];%WIDTH=16div_B=[2,2,5,15,123,112,134,129];for i=1:length(div_A) for j=1:length(div_B) div_rem_d=abs(div_A(i))*2;%高位补div_A位宽-1=(WIDTH-1)个0,低位补1原创 2021-07-08 14:42:04 · 1379 阅读 · 1 评论 -
顺序乘法器,含verilog代码
顺序乘法器,含verilog代码我们需要明确的是两个D_WIDTH位宽的数相乘,结果位宽为2D_WIDTH, 对于负数乘法,可以利用乘数和被乘数的符号位进行异或得到积的符号位,通过判断符号位得到乘数和被乘数的绝对值,将负数乘法转为无符号数乘法进行运算,首先初始化乘数寄存器和被乘数寄存器Multiplicand,被乘数寄存器的低D_WIDTH位为输入的被乘数的绝对值,高D_WIDTH位为0,初始化乘积寄存器product[2D_WIDTH-1:0]=0,if (Multiplier>0)produ原创 2021-06-24 19:45:18 · 734 阅读 · 0 评论