FPGA教程系列-Vivado中乘法器不同模式资源对比

FPGA教程系列-Vivado中乘法器不同模式资源对比

在乘法器的IP核中,有两种实现方式,使用查找表(LUT) 还是专用乘法器原语来实现核心,现在主要进行一个对比。

编写Top文件

直接例化一个乘法器即可。

`timescale 1ns / 1ps

module mult_top(
input clk,
input rst,
input signed [17:0]  data_a,
input signed [17:0]  data_b,
output signed [35:0] out
    );
    
    
mult_gen_0 your_instance_name (
  .CLK(clk),  // input wire CLK
  .A(data_a),      // input wire [17 : 0] A
  .B(data_b),      // input wire [17 : 0] B
  .P(out),      // output wire [35 : 0] P
  .SCLR(rst)
);
    
endmodule

编写Testbench

简单的乘法,-20×5=-100.

`timescale 1ns / 1ps

module mult_top_tb;
reg clk;
reg rst;
reg signed[17:0] data_a;
reg signed[17:0] data_b;
wire signed[35:0] out;
    
mult_top mult_top_u1 (
  .clk(clk),    
  .rst(rst),  
  .data_a(data_a),       
  .data_b(data_b),       
  .out(out)       
);
initial
begin
clk = 1'b1;
rst = 1'b1;
data_a = 18'd0;
data_b = 18'd0;
#1000
rst = 1'b0;
data_a = -20;
data_b = 5;
end
always #5 clk=~clk;
endmodule

先看仿真结果

image

与预期相符。

根据IP核的datasheet中的内容,可以知道,两种方式实现的方式不一致,具体的视觉化的内容可以综合以后看到:

专用乘法器原语结果:

image

查找表(LUT)结果:(密密麻麻)

image

工程文件:https://download.youkuaiyun.com/download/fantasygwh2015/92261251

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值