16位乘法器芯片verilog设计实验Quartus9.1工程源码+设计说明文件,可以做为的学习实验设计参考。 module mux16( clk,rst_n, start,ain,bin,yout,done ); input clk; //芯片的时钟信号。 input rst_n; //低电平复位、清零信号。定义为0表示芯片复位;定义为1表示复位信号无效。 input start; //芯片使能信号。定义为0表示信号无效;定义为1表示芯片读入输入管脚得乘数和被乘数,并将乘积复位清零。 input[15:0] ain; //输入a(被乘数),其数据位宽为16bit. input[15:0] bin; //输入b(乘数),其数据位宽为16bit. output[31:0] yout; //乘积输出,其数据位宽为32bit. output done; //芯片输出标志信号。定义为1表示乘法运算完成. reg[15:0] areg; //乘数a寄存器 reg[15:0] breg; //乘数b寄存器 reg[31:0] yout_r; //乘积寄存器 reg done_r; reg[4:0] i; //移位次数寄存器 always@(posedge clk) begin if(!rst_n) begin areg <= 16'h0000; breg <= 16'h0000; done_r <= 1'b0; yout_r <= 32'h00000000; i <= 5'd0; end else if(start) //启动运算 begin if(i < 5'd21) i <= i+1'b1; if(i == 5'd0) begin //锁存乘数、被乘数 areg <= ain; breg 5'd0 && i < 5'd16) begin if(areg[i-1]) yout_r = {1'b0,yout[30:15]+breg,yout_r[14:1]}; //累加并移位 else yout_r >1; //移位不累加 end else if(i == 5'd16 && areg[15]) yout_r[31:16] <= yout_r[31:16]+breg; //累加不移位 else if(i == 5'd18) done_r <= 1'b1; //乘完成标志位置位 else if(i == 5'd20) done_r <= 1'b0; //乘完成标志位清除 end else i <= 5'd0; end assign done = done_r; assign yout = yout_r;
从做实验遇到Wallace树乘法器开始,对乘法器的理解受到了阻碍,于是接下来的一个星期,专门研究汇总乘法器的verilog HDL设计,最终算是大概完成。这里给出了7种乘法器的设计。希望遇到问题而无助的你能够找到方向。
2021-12-02 15:46:36 189KB 乘法器汇总
1
5位×5位阵列乘法器的逻辑电路图:
2021-11-26 22:45:03 20.04MB 组成原理
1
基于emu8086微机模拟器的16位寄存器构成32位大数乘法器的实验
2021-11-26 13:17:22 4KB emu8086 大数乘法器
1
booth乘法器,十八位,利用Verilog进行编写,src为源码文件。
2021-11-24 14:21:06 23KB booth乘法器
1
EDA基于quartersⅡ的4X4无符号乘法器实验步骤详细
2021-11-23 18:30:50 610KB EDA、乘法器
1
基于Verilog代码实现的Wallace树8*8乘法器+16位超前进位加法器
2021-11-23 18:16:21 3KB Verilog Wallace 超前进位 乘法器
1
VHDL编写一个四位无符号乘法器VHDL编写一个四位无符号乘法器VHDL编写一个四位无符号乘法器VHDL编写一个四位无符号乘法器VHDL编写一个四位无符号乘法器VHDL编写一个四位无符号乘法器
2021-11-22 22:28:59 14KB 乘法器
1
利用verilog语言实现了逐次进位乘法器,延时达到3.549ns,资源使用了24个LUT
2021-11-21 19:39:17 757B 逐次进位 乘法器
1
EDA课程设计论文——EDA课程设计论文——乘法器乘法器EDA课程设计论文——乘法器
2021-11-21 16:53:59 704KB EDA课程设计论文——乘法器
1