FPGA 乘法器 (DSP48)总结

目录

0.参考手册

1.DSP48总结

1.1 Spartan3硬件乘法器  DSP48A

1.2 Spartan-6 FPGA  DSP48A1

1.3 V4系列  DSP48

1.4 V5硬件乘法器 DSP48E

1.5 7系列FPGA乘法器 DSP48E1

1.7 UltraScale Architecture DSP Slice ——DSP48E2

​2.接触过的用到DSP48的IP核

2.1 复数乘法器IP核

 2.2 FFT IP核


0.参考手册

下面对乘法器的介绍主要来自手册

DSP48A

XtremeDSP DSP48A for Spartan-3A DSP FPGAs

UG431 (v1.3) July 15, 2008

DSP48A1

Spartan-6 FPGA DSP48A1 Slice

UG389 (v1.2) May 29, 2014

DSP48

XtremeDSP for Virtex-4 FPGAs

UG073 (v2.7) May 15, 2008

DSP48E

Virtex-5 FPGAXtremeDSP Design Considerations

UG193 (v3.6) July 27, 2017

DSP48E1

7 Series DSP48E1 Slice

UG479 (v1.9) September 27, 2016

DSP48E2

UltraScale Architecture DSP Slice

UG579 (v1.9) September 20, 2019

DSP48 LogiCORE IP

DSP48 Macro v3.0

PG148 November 18, 2015

1.DSP48总结

1.1 Spartan3硬件乘法器  DSP48A

1)简介

DSP48A Slice是Spartan™-3A DSP系列FPGA所独有的。每个XtremeDSP slice都包含一个DSP48A slice,构成了通用的粗粒度DSP体系结构的基础。许多DSP设计采用加法运算。在Spartan-3A DSP器件中,这些元件在专用电路中受支持。

DSP48A Slice支持许多独立的功能,包括乘法器,乘法累加器(MACC),预加法器/减法器,后跟乘法累加器,乘法器后跟加法器,宽总线多路复用器,幅度比较器或宽计数器。该架构还支持连接多个DSP48A Slice,以形成广泛的数学功能,DSP滤波器和复杂的算术,而无需使用常规的FPGA结构。

所有Spartan-3A DSP系列成员均可使用的DSP48A Slice支持新的DSP算法和比FPGA中以前可用的更高级别的DSP集成。最小程度地使用常规FPGA架构可实现低功耗,超高性能和高效的芯片利用率。

2)DSP48A Slice原语

                                            

3)电路映射

        dsp48a的运算部分包括一个18位的预加器,其后是一个18×18的二进制补码乘法器,再后面通过两个48位数据通路多路复用器(x,z)连接二输入的48位加法器/减法器。数据和控制输入端口可直接输入dsp48a的运算单元,也可通过1级或2级流水寄存器输入,该结构有助于实现不同的及高速流水运作的dsp应用。a,b数据输入端口支持1级或2级流水寄存输入,其他数据或控制端口可寄存一次。当使用流水寄存器时,dsp48a的全速率为250 MHz  

        在最基本的操作模式中,加法器/减法器的输入可来自于上级的多路复用器,进位选择逻辑和乘法器。式(11-3)描述了加法器/减法器的输出。carryin和x的输出总是相加,其结果可与z的输出相加或减:

                      adder out=(z ± (x + carryin))                          (11-3)

式(11-4)描述了一种典型的使用乘法器的情况。a和b输入数据相乘,然后结果和c输入相加/减。当使用乘法功能时,加法器/减法器的输入将使用x多路复用器的输出,乘法器36位乘积在输出给乘法器之前将符号扩展为48位:

                        adder outc±(a×b+carryin)                          (11-4)

式(11-5)描述了b,d输入通过预加器相加减的情况。预加器的结果和a相乘,再与c相加。该方程可有效实现对称型的滤波器:  

adder outc±(a×(d±b)+carryin)                          (11-5)

4)简化的DSP48A Slice模型

下图为dsp48a的简化形式,8位opmode控制二输入加/减法器的数据来源以及预加器和加法器/减法器的功能。在任何情况下,36位的数据经过多路复用器符号扩展为48位数据输入给后面的加法器/减法器。基于36位操作数和48位累加器输出,保证位(保证不溢出的位数)的位数为12。这样在溢出发生前可进行的乘累加的次数为4096次,组合opmode,carryinsel和carryin可控制预加器及加法器/减法器的功能。

5)DSP48A切片和互联

        DSP48A切片垂直堆叠在DSP48A列中。 DSP48A Slice的高度与四个CLB相同,并且与一个Block RAM的高度匹配。 这种“规律性”增强了宽数据路径的路由。较小的Spartan-3A DSP(XC3SD1800A)系列成员具有四个DSP48A列。DSP48A Slice的高度与四个CLB相同,并且与一个Block RAM的高度匹配。 这种“规律性”增强了宽数据路径的路由。较小的Spartan-3A DSP(XC3SD1800A)系列成员具有四个DSP48A列,而较大的Spartan-3A DSP(XC3SD3400A)系列成员具有五个DSP48A列

                                                 

 6)调用DSP48 Slice

        可以用原语实现,也可通过core generator调用

1.2 Spartan-6 FPGA  DSP48A1

1)点路映射

               @)

 2)简化模型

          

 3)最大运行频率

1.3 V4系列  DSP48

               

                    

         DSP48 Slice的数据和控制输入直接馈入算术部分,或者可选地注册一两次,以帮助构建不同的高度流水线的DSP应用解决方案。 数据输入A和B可以注册一次或两次。 其他数据输入和控制输入只能注册一次。 使用流水线寄存器时,全速运行为500 MHz

                        

 DSP48 tile的高度与四个CLB相同,并且与一个Block RAM的高度匹配。

1.4 V5硬件乘法器 DSP48E

1)简介

        Virtex-5 FPGA DSP48E Slice包括Virtex-4 FPGA DSP48的所有功能以及各种新功能。这些新功能包括一个更宽的25 x 18乘法器和一个加/减功能,该功能已扩展为逻辑单元。不使用乘法器时,该逻辑单元可以执行许多按位逻辑运算。 DSP48E Slice包括一个模式检测器和一个模式条检测器,可用于收敛舍入,用于饱和算术的上溢/下溢检测以及自动复位计数器/累加器。 加法器/减法器/逻辑单元的单指令多数据(SIMD)模式也是DSP48E Slice的新功能。 不使用乘法器时,此模式可用。 Virtex-5 DSP48E Slice还具有新的级联路径。

            

 2)简化模型

                         

                             

 3)DSP48E平铺和互连

        两个DSP48E Slice和专用互连形成一个DSP48E Tile(见图1-3)。 DSP48E tile垂直堆叠在DSP48E列中。 DSP48E tile的高度与五个可配置逻辑模块(CLB)相同,并且与一个模块RAM的高度匹配。Virtex-5器件中的Block RAM可以分为两个18K Block RAM。 每个DSP48E Slice均与18K Block RAM水平对齐。 Virtex-5系列成员具有一,二,六或十个DSP48 Ecolumn。

                 

 4)最大运行频率

使用流水线寄存器时,全速运行为550 MHz

              

1.5 7系列FPGA乘法器 DSP48E1

1)简介

        7系列FPGA DSP48E1 Slice在功能上等效于Virtex-6 FPGA DSP48E1。 7系列FPGA DSP48E1 Slice在A寄存器之后有一个预加器,带有一个称为D的25位输入向量。D寄存器可用作预加器寄存器或乘法器的备用输入。

                    

2)DSP48E1 Tile and Interconnect

        两个DSP48E1 Slice和专用互连形成一个DSP48E1 tile(见图2-3)。 DSP48E1磁贴垂直堆叠在DSP48E1列中。 DSP48E1磁贴的高度与五个可配置逻辑模块(CLB)相同,并且与一个模块RAM的高度匹配。 7系列设备中的Block RAM可以分为两个18K Block RAM。 每个DSP48E1 Slice均与18K Block RAM水平对齐。 7系列器件具有多达20个DSP48E1列。

                          

        其实从框图我们就能知道。首先,有4个输入,分别是A、B、C、D。一个输出P。从输入得到输出,我们用一个函数公式表达:

                                                P=(D±A)*B±C

        请把这个公式背下来,之后的变形使用也靠它了。这里面A是30bit,B是18bit,C是48bit,D是25bit。(D±A)出来是25bit,乘法就是25*18bit。P是48bit。

        DSP48E1 Slice的数学部分包括一个25位预加器,一个25位乘18位的2的补码乘法器,以及随后的三个48位数据路径多路复用器(输出X,Y和Z)。 随后是三输入加法器/减法器或两输入逻辑单元(见图2-5)。 使用两输入逻辑单元时,不能使用乘法器。

3)fmax

        每个DSP Slice基本上都由一个专用的25×18位二进制补码乘法器和一个48位累加器组成,两者均能够以高达741 MHz的频率工作。 可以动态旁路乘法器,并且两个48位输入可以提供一个单指令多数据(SIMD)运算单元(双24位加/减/累加或四通道12位)

1.7 UltraScale Architecture DSP Slice ——DSP48E2

        可编程逻辑器件可以实现定制的完全并行算法,因此对于数字信号处理(DSP)应用非常有效。 DSP应用程序使用许多二进制乘法器和累加器,最好在专用DSP资源中实现它们。 UltraScale器件具有许多专用的低功耗DSP Slice,在保持系统设计灵活性的同时,兼顾了高速与小尺寸。 DSP资源提高了数字信号处理之外的许多应用程序的速度和效率,例如宽动态总线移位器,存储器地址生成器,宽总线多路复用器和存储器映射的I / O寄存器。 UltraScale架构中的DSP Slice是使用DSP48E2原语定义的,在Xilinx工具中,该Slice被称为DSP或DSP48E2。 DSP48E2 slice的基本功能如图1-1所示。

 

  

与DSP48E1 slice相比,DSP48E2具有更广泛的功能:

乘法器宽度从DSP48E1中的25 x 18改进为DSP48E2中的27 x 18;

预加器从25位增加到27位:D输入和寄存器到预加法器增加到27位;预加器的AD寄存器结果增加到27位

预加器具有更大的灵活性:

可以选择A或B作为预加器的输入;

预加器的输出可以平方。

2.接触过的用到DSP48的IP核

2.1 复数乘法器IP核

  

        选resources时 ,用到的DSP48 Slices是3个,输出延时为6个CLK。选performance时,用到的DSP48 Slices是4个,输出延时为4个CLK。

        Resources和performance是一对矛盾的统一体。

 2.2 FFT IP核

 

  1. 同FFT点数(64~65536)下流水处理占用的DSP48最多,
  2. 1024点之后,随着点数增加,基2基4所用DSP48不再增加,流水处理所用DSP48随点数增加而增加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值