32 位带符号、无符号乘法器设计Verilog代码VIVADO仿真
名称:32 位带符号、无符号乘法器设计Verilog代码VIVADO仿真
软件:VIVADO
语言:Verilog
代码功能:
32 位带符号、无符号乘法器
了解 32 位带符号、无符号乘法器的实现原理
使用 Verilog 实现 32 位无符号乘法器和带符号乘法器
无符号乘法器功能为:将两个 32 位无符号数相乘,得到一个 64 位无符号数。
带符号乘法器功能为:将两个 32 带无符号数相乘,得到一个 64 位带符号数。将低 32 位存放在
专用寄存器 LO 中,高 32 位存放在寄存器 HI 中。执行乘法指令过程中不产生异常。本实验不允许使用行为级实现。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 设计代码

2. Testbench

3. 仿真图



1. 设计代码

2. Testbench

3. 仿真图



部分代码展示:
//无符号乘法器 module Multiplier_unsigned( input clk,//乘法器时钟信号 input reset,//复位信号,低电平有效 input [31:0] a,//输入数 a(被乘数) input [31:0] b,//输入数 b(乘数) output [63:0] z//乘积 ); reg [63:0] mult_product=64'd0; reg [63:0] mult_product_buf=64'd0; parameter INIT=2'd0; parameter ADD=2'd1; parameter SHIFT=2'd2; reg[1:0] state=INIT;//初始状态为INIT reg[63:0] b_buf=64'd0;//临时变量 integer Count=0; always@(posedge clk or negedge reset) if(reset==0)//复位 begin mult_product_buf<=0; Count<=0; state<=INIT;//初始状态 end else begin case(state) INIT://初始化状态 begin mult_product_buf<=0; Count<=0; state<=ADD; //start有效跳转到下一个状态ADD b_buf[31:0]<=b; //取乘数 b_buf[63:32]<=32'd0; //临时变量的高32位置0 end ADD://相加状态 begin
代码文件(付费下载):
![]()
1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 32 位带符号、无符号乘法器设计Verilog代码VIVADO仿真
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 32 位带符号、无符号乘法器设计Verilog代码VIVADO仿真