HDL Coder生成Xilinx DSP48E1注意事项

文摘   2024-11-20 10:00   吉林  

点击蓝字关注我们

关注、星标公众,精彩内容每日送达

来源:网络素材

下图为Xilinx 7系列FPGA中使用的DSP48E1的框图

图1 Xilinx DSP48E1 Series

从中我们可以看出,输入有两个寄存器,如果用到后面的加法/减法器,与乘法器之间会有一个寄存器,然后加法/减法器的输出有一个寄存器P。

因此,如果我们**仅使用一个乘法器**时,建议在前后都加上一个delay模块并且设置delay length=2。

图2 乘法器使用建议设置

如果我们**设计一个乘法+加法器**时(如图3),

图3 乘法+加法器使用建议设置

- 建议使用delay length=2的delay模块连接乘法和加法模块(乘法加法之间使用delay length=1也可以)

- 右键设置所有delay的HDL Block Properties中ResetType为none,这样做是为了防止全局的reset信号控制内部寄存器,需要额外逻辑,造成Vivado编译器无法优化DSP

图4 HDL Block Properties

如果使用使用HDL Coder生成Vivado项目并且综合之后,我们会发现,这个模块例化了两个DSP模块,其中一个只使用了乘法器,结果通过POUT送入另一个DSP单元进行加法运算。

如图5,绿色框和红色框分别代表一个例化的DSP。

图5 图3的综合结果

想要了解FPGA吗?这里有实例分享,ZYNQ设计,关注我们的公众号,探索

Hack电子
电子设计、FPGA设计、实例分享、ZYNQ设计等,欢迎大家关注!
 最新文章