首页 > 解决方案 > 如何使用 LogiCORE DSP48 宏?

问题描述

我想学习如何使用 LogiCORE DSP48 Macro。我正在阅读 Xilinx 文档,但我无法很好地理解如何使用 DSP48 宏开始我的第一个设计。谁能帮我做一个简单的设计来更好地理解这个IP核吗?

提前致谢!

标签: signal-processingfpgaxilinx

解决方案


在许多情况下,您将通过编写包含加、减和乘的 Verilog/VHDL 表达式来使用 DSP48。

x = a * b + c

上述表达式的一个问题是乘法和加法发生在一个循环中。如果操作可以流水线化,您可以以更高的频率运行表达式。Vivado 有时可以跨寄存器重定时这些表达式,以利用 DSP48 流水线寄存器。

但是,我理解想直接使用 DSP48。您可以像其他 RTL 模块一样实例化 DSP48。您正在使用的 FPGA 逻辑的 DSP Slice 用户指南中描述了端口、参数和行为。

 wire [47:0] c;
 wire [24:0] a;
 wire [17:0] b;
 DSP48E1#() dsp(
     .a(a),
     .b(b),
     .c(c),
     .p(x),
     .opmode(5),
     .alumode(0)
 );

这个实例是从我的一个内部产品实现中复制而来的。它是完全流水线的,因为我的目标是 500MHz 操作。由于其他组合路径,仅达到 400MHz。

对于 Xilinx 7 系列: DSP48E1 Slice 用户指南

对于 Xilinx Ultrascale: DSP48E2 Slice 用户指南


推荐阅读