0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA中如何充分利用DSP资源,DSP48E1内部详细资源介绍

454398 来源:MYMINIEYE微信公众号 作者:MYMINIEYE微信公众号 2020-09-30 11:48 次阅读

FPGADSP资源是宝贵的且有限,我们在计算大位宽的指数、复数乘法、累加、累乘等运算时都会用到DSP资源,如果我们不了解底层的DSP特性,很多设计可能都无法进行。逻辑综合往往是不可控的,为了能够充分利用DSP资源,我们需要对DSP48E1有所了解。

1.DSP48E1介绍

DSP48E1是7系列的最小计算单元,DSP资源,支持许多独立的功能,其基本功能如下所示

DSP48E1简易模型

包括:

• 带有D寄存器的25位预加法器

• 25*18二进制乘法

• 48位累加

• 三输入加法

其他的一些功能还包括桶形移位、宽总线多路复用、幅度比较器、按位逻辑功能和宽计数器等。

每个DSP48E1都有一个双输入乘法器,接着是3个数据通路的多路复用器和一个三输入的(加法器/减法器/累加器)

DSP48E1内部详细资源

一种典型的使用是A,B输入相乘后与C输入相加或减;当不使用第一级的乘法器的时候,两组48位输入可以实现按位操作的逻辑功能。

A和B的数据输入可以选择直接输入或者寄存一级、两级输入,如下所示

DSP48E1输入分层视图

其他的数据和控制输入可是选择寄存一级输入,这样的输入选择有助于构建多种类型,高流水化的DSP应用。

2. DSP48E1使用

(1)DSP原语使用的每个端口及位宽如下所示:

①表示的数据通道,运算数据的输入。

②寄存器配置通道,我们可以通过配置这些寄存器,实现不同的功能,比 如加法、减法、乘累加,累减等。

③数据输入寄存器使能通道,在数据输入的时候可以选择寄存一级或者两 级(两级仅限A和B)。

④配置寄存器使能通道。

⑤复位信号,寄存器的复位端口。

⑥、⑦和⑧表示的是级联通道,其中CIN表示级联的输入,COUT表示级联 的输出。

⑨模式检测输出,模式检测用于检测P总线是否与指定的模式或者模式的 补码完全匹配,如果加法器的输出与设置的模式匹配,则PATTERNDETECT (PD)将变高,如果与设置的补码匹配,则PATTERNBDETECT(PBD)将变高,其 使用逻辑如下

模式检测逻辑

OVERFLOW和UNDERFLOW是与模式检测一起使用时的溢出指示标志。

(2)DSP的使用主要通过三个寄存器来进行控制和改变相应的运算。

•INMODE 控制预加器,A,B,D寄存器的输入;(5bit)

•OPMODE 控制X,Y,Z选择器的输入;(7bit)

•ALUMODE逻辑控制选择单元;(4bit)

我们通过构建一个乘累加器来介绍DSP的使用以及寄存器的配置。

实现的乘累加完成如下功能,即SUM = SUM + A * B ;SUM也就是DSP中的P输出。

明确了运算表达式,然后我们需要对三个寄存器进行设置:

①乘法器的两个输入分别为A和B,我们选择A端口和B的数据相乘的时候,只使用A的[24:0]位参与运算,具体介绍可以见Xinlinx文档ug479(P30),这里我们把数据通过第二个寄存器输出到乘法器,INMODE设置为5’b00000。
图片居中使用:

②多路复用器需要指明参与ALU运算模块的数据,根据运算功能,我们选择乘法器的输出和P输出作为信号的输入,OPMODE设置为7’b010_0001。

③在最后的运算中我们选择加法运算。ALUMODE设置为4’b0000。即P=Z+X+Y+CIN其中Z=P,X=M,Y=0,CIN=0,M=A*B。所以P=P+A*B。

(3)相应的配置设置好之后,例化DSP48E1的原语,原语的调用可以见Xinlinx文档ug768(P120),然后建立Vivado工程,测试如下

通过仿真得到了正确的乘累加结果

需要注意的是:在计算乘法时,M寄存器必须是打开的,多路复用器Z的输入通过P寄存器,因此输出至少滞后2个时钟周期,这里通过A2和B2寄存器输入,故延迟了4个时钟周期输出结果。

3. DSP48E1注意事项

• 使用有符号数进行数据的处理。

• 尽量使用流水进行数字信号的处理。

•当数字的处理位宽较小时,尽量使用逻辑进行数据处理

•级联使用DSP的时候请尽量使用专用布线资源。

•合理的去复用DSP资源。

•在DSP不使用的时候,通过USE_MULT将乘法器关闭以降低功耗。

编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7685

    浏览量

    344376
  • 寄存器
    +关注

    关注

    30

    文章

    5030

    浏览量

    117734
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119374
  • 多路复用器
    +关注

    关注

    9

    文章

    842

    浏览量

    65067
  • 乘法器
    +关注

    关注

    8

    文章

    192

    浏览量

    36586
收藏 人收藏

    评论

    相关推荐

    如何充分利用这些频谱资源

    在之前的文章(《如何实现比4G快十倍?毫米波技术是5G的关键》)我们介绍了如何利用毫米波技术获得更多的频谱资源,接下来的问题是如何充分利用
    发表于 07-11 07:09

    有没有什么方法可以禁用或自定义DSP48E1元素用于自己的新算法

    据我所知,乘法默认由FPGADSP48E1片处理。有没有什么方法可以禁用或自定义DSP48E1元素用于自己的新算法?我的目标是使用我的乘法算法,而不是使用
    发表于 05-04 15:22

    在XC7K325T FPGA如何充分利用GTX资源

    嗨,我需要在XC7K325T FPGA充分利用GTX资源。结果,我必须以这种方式使用一个四边形,它的两个频道应该服务于10Gb / s链路和另外两个--
    发表于 07-22 13:25

    DSP48E1和BRAM36K / BRAM18K之间水平关系的信息?

    ,这是新型xilinx产品的基础架构,因此DSP-Slices和CLB的宽度可能相等,但我找不到确认的信息。如果有人能够提供有关7系列FPGACLB,DSP48E1和BRAM36K
    发表于 07-25 11:04

    DSP48E1的属性详解

    以及相应的时钟启用输入和复位输入都是保留端口。D和INMODE端口对于DSP48E1片是唯一的。本节详细描述DSP48E1片的输入端口。图2-6突出显示了
    发表于 12-23 16:54

    如何简化DSP48E1片操作

    路径和AD路径可以分别寄存一次。其他数据输入和控件输入可以选择性寄存一次。数据表规定的最大频率操作是通过使用pipeline registers实现的。更详细的时间信息可在第3章,DSP48E1
    发表于 01-08 16:36

    7系列FPGA DSP48E1片的特点

    和C寄存器,具有独立的复位和时钟启用。  •CARRYCASCIN和CARRYCASCOUT内部级联信号支持两个DSP48E1的96位累加器/加法器/减法器  •MULTSIGNIN
    发表于 01-08 16:46

    如何简化DSP48E1片操作

    简化DSP48E1片操作
    发表于 01-27 07:13

    DSP48E1的属性详解

    DSP48E1属性
    发表于 01-27 06:21

    7系列FPGA DSP48E1片的特点什么?

    7系列FPGA DSP48E1片的特点什么
    发表于 03-05 06:26

    Xilinx大神都懂的数字运算单元—DSP48E1

    充分利用DSP资源,我们需要对DSP48E1有所了解。 1.DSP48E1介绍
    发表于 06-20 14:29

    System generator DSP48E1 (1):端口说明

    概述 Xilinx的DSP48E1模块在7系列的fpga芯片中经常被用于DSP应用当中。他能够有效提高设计的灵活性和效率,提高产品的性能。 DSP48E1支持许多独立的功能。包括:乘法
    发表于 02-08 01:07 619次阅读
    System generator <b class='flag-5'>DSP48E1</b> (1):端口说明

    DSP48E1详解(3): DSP48E1属性

    A、B、C、CARRYIN、CARRYINSEL、OPMODE、BCIN、PCIN、ACIN、ALUMODE、CARRYCASCIN、MULTSIGNIN以及相应的时钟启用输入和复位输入都是保留端口。D和INMODE端口对于DSP48E1片是唯一的。本节详细描述
    的头像 发表于 07-25 18:00 4605次阅读
    <b class='flag-5'>DSP48E1</b>详解(3): <b class='flag-5'>DSP48E1</b>属性

    DSP48E1详解(1):7系列FPGA DSP48E1片的特点

    DSP48E1列中,级联各个DSP48E1片可以支持更高级的DSP功能。两个数据路径(ACOUT和BCOUT)和DSP48E1片输出(PCOUT、MULTSIGNOUT和CARRYC
    发表于 01-27 07:34 8次下载
    <b class='flag-5'>DSP48E1</b>详解(1):7系列<b class='flag-5'>FPGA</b> <b class='flag-5'>DSP48E1</b>片的特点

    DSP48E1详解(3):DSP48E1属性

    A、B、C、CARRYIN、CARRYINSEL、OPMODE、BCIN、PCIN、ACIN、ALUMODE、CARRYCASCIN、MULTSIGNIN以及相应的时钟启用输入和复位输入都是保留端口。D和INMODE端口对于DSP48E1片是唯一的。本节详细描述
    发表于 01-27 08:18 2次下载
    <b class='flag-5'>DSP48E1</b>详解(3):<b class='flag-5'>DSP48E1</b>属性