当前位置: 首页 > article >正文

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核的使用方法,有帮助的话记得点个赞哦!


http://www.kler.cn/a/586137.html

相关文章:

  • C++设计模式-外观模式:从基本介绍,内部原理、应用场景、使用方法,常见问题和解决方案进行深度解析
  • 大数据 spark hive 总结
  • 小肥柴慢慢手写数据结构(C篇)(4-3 关于栈和队列的讨论)
  • LuaJIT 学习(3)—— ffi.* API 函数
  • 搜广推校招面经四十七
  • 模拟类似 DeepSeek 的对话
  • 《Python深度学习》第一讲:深度学习基础
  • freeswitch(多台服务器级联)
  • Amazon RDS ProxySQL 探索(一)
  • Windows 发票闪印 PrintPDF-v3.6.10-第三方发票打印辅助工具,无需安装阅读器即可使用
  • idea 生成jpa的mvc三层
  • 基于yolov8+streamlit实现目标检测系统带漂亮登录界面
  • 雷池WAF 处理 HTTP 请求的流程
  • MySQL 8 主从同步安装与配置
  • 【git】补丁文件
  • OpenHarmony体系架构深度解析
  • 环路广播风暴演示图
  • C语言【数据结构】:时间复杂度和空间复杂度.详解
  • 市面上常用的23种设计模式,分析实现方式以及实际使用场景案例
  • Flask实现分页的三种方法