四位乘法器VHDL程序四位乘法器VHDL程序
2022-04-10 16:01:17 3KB 四位乘法器VHDL程序
1
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;
在开发STM32单片机程序时,需要计算可能结果是64bit的乘法,就设计了这段代码,经测试无误。
2021-11-06 23:26:37 857B 64位乘法 64bit乘法 源代码
1
利用verilog实现的四位节省进位乘法器,最大延时为3.372ns,资源为16个LUT
2021-10-26 21:33:19 2KB verilog 4位乘法器
1
实现两个16位2进制数相乘 课程实验用 源代码
2021-09-29 14:44:50 827B 汇编 16位 乘法
1
真的好用的基于LPM_ROM的四位乘法器
2021-09-16 17:53:17 1.15MB 四位乘法器
1
MAXII实现16位乘法器Verilog代码
2021-08-20 17:01:45 2.29MB fpga/cpld
1
用python实现 补码一位乘法算法,适用于学习操作系统的大学生,深入理解计算机底部算法
2021-08-03 09:30:15 4KB python 操作系统
1
Verilog实现的16为乘法器,并用仿真代码。
2021-07-20 15:19:48 782KB FPGA,乘法器
1