目录

Vivado-IP核之定点数累加Accumulator使用说明

Vivado IP核之定点数累加Accumulator使用说明

Vivado Accumulator IP核的使用说明

配置步骤


前言

在现代数字信号处理和通信系统中,对数据进行快速而精确的累加操作是至关重要的。Vivado Accumulator IP核提供了一种灵活、可配置的硬件累加方案,用于在FPGA上实现数据的累加法(也可以配置为累减)操作。本文详细介绍了IP核配置选项,并编写verilog代码测试了该IP核的累加功能。


提示:以下是本篇文章正文内容,各位在转载时附上本文链接。

一、Accumulator IP配置步骤

先配置basic界面,设置为红色框里面的,运算为有符号数,输入16bit,输出32bit,设置时自己要先判断累加的个数从而避免溢出。

https://i-blog.csdnimg.cn/direct/cc12ad3633b14aba91cb4b69f88eac7f.png

Fabric 代表使用纯逻辑搭建IP核, DSP48 表示用DSP搭建IP核。

再配置control界面,使能同步复位和Bypass功能。

https://i-blog.csdnimg.cn/direct/fd11cc80a36949d79dde26940fe6a351.png

Synchronous Clear (SCLR) 是同步复位,高电平有效,一个CLK周期即可完成复位。

Bypass 的功能是直接通过输入B给输出Q一个值,然后在该值基础上继续累加,该设置是有延迟的,与第一页设置的Latency的值有关。

这样设置后资源消耗了100个LUT,104个FF。

二、仿真

建立一个仿真模块,命名为tb_accumulator_ip,用来仿真刚才生成的IP核。

代码如下:

`timescale 1ns / 1ps

//

// Company:

// Engineer:

//

// Create Date: 2025/03/11 17:35:57

// Design Name:

// Module Name: tb_accumulator_ip

// Project Name:

// Target Devices:

// Tool Versions: 2018.3

// Description:

//

// Dependencies:

//

// Revision:

// Revision 0.01 - File Created

// Additional Comments:

//

//

module tb_accumulator_ip();

reg CLK=1;

initial

begin

forever #(1)  CLK=~CLK;

end

reg [15 : 0] B=0;

reg BYPASS=0;

reg SCLR=0;

wire [31 : 0] Q;

initial

begin

#4  B=16’h0001;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;SCLR=1;

#2   B=16’hFFFF;SCLR=0;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;

#2   B=16’hFFFF;BYPASS=1;

#2   B=16’hFFFF;

#2   B=16’hFFFF;BYPASS=0;

#2   B=16’hFFFF;

#(10)

$finish;

end

accumulator_ip u_accumulator_ip (

.B(B),            // input wire [15 : 0] B

.CLK(CLK),        // input wire CLK

.BYPASS(BYPASS),  // input wire BYPASS

.SCLR(SCLR),      // input wire SCLR

.Q(Q)             // output wire [31 : 0] Q

);

endmodule

三、仿真分析

以下图片是testbench的仿真结果:

https://i-blog.csdnimg.cn/direct/1c8627d680ec4e6c99980af271f5c44f.png

从结果可看出,该IP核实现了累加运算,输入到输出的延时为3个CLK,SCLR拉高会使得输出清零,Bypass拉高会让输出直接等于输入。


总结

以上就是关于Vivado Accumulator IP核的使用方法,有帮助的话记得点个赞哦!