欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Vivado IP核之定点数累加Accumulator使用说明

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

2025/3/12 10:46:48 来源:https://blog.csdn.net/m0_66360845/article/details/146188812  浏览:    关键词:Vivado IP核之定点数累加Accumulator使用说明

Vivado Accumulator IP核的使用说明

配置步骤

目录

前言

一、Accumulator IP配置步骤

二、仿真

三、仿真分析

总结


前言

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


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

一、Accumulator IP配置步骤

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

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

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

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的仿真结果:

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


总结

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词