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

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

相关文章:

  • vscode接入DeepSeek 免费送2000 万 Tokens 解决DeepSeek无法充值问题
  • 向量数据库的选择与应用:AI工程实践
  • Android Retrofit 框架注解定义与解析模块深度剖析(一)
  • HarmonyOS NEXT开发实战:DevEco AI辅助编程工具(CodeGenie)的使用
  • requests中post中data=None, json=None两个参数区别
  • Git 的详细介绍及用法
  • JESD204B协议及IP仿真
  • 什么是进程线程
  • ubuntu 和 RV1126 交叉编译Mosqutiio-1.6.9
  • linux批量使用多个用户名登录脚本、为了给主机增加一个指定用户名的登录记录、无需root密码的主机切换到root方式
  • 【玩转全栈】---- Pinia 组件状态管理器
  • 卷积神经网络与计算机视觉:从数学基础到实战应用
  • 沉浸式CSS学习路径
  • 【贪心算法3】
  • git设置本地仓库和远程仓库
  • 解决 word 2016 粘贴图片老是乱飘的问题
  • 十分钟用DeepSeek v3快速搭建企业级本地私有知识库(保姆级教程),AI终于私有化了!
  • Java糊涂包(Hutool)的安装教程并进行网络爬虫
  • 训练大模型LLM选择哪种开发语言最好
  • 2.3 DeepSeek SDK接入与鉴权体系设计
  • 怎么用linux做网站服务器吗/梁水才seo优化专家
  • 汽车4s销售网站模板/seo代码优化步骤
  • 做网站放太多视频/站外推广方式有哪些
  • 软件生成器/郑州网站制作选择乐云seo
  • 陕西省住房与建设厅网站/网络客服
  • 三明住房建设局网站/竞价推广托管公司价格