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

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

3天内不再提示

采用RTL代码描述位宽相同的两个数相加或相减

FPGA技术驿站 来源:Lauren的FPGA 2020-09-27 15:17 次阅读

本文用的芯片型号为xcku115-flvd1924-1L-i,时钟频率为400MHz。

两个有符号数相加

采用RTL代码描述位宽相同的两个数相加或相减,无论是有符号数还是无符号数,Vivado综合后的结果是一致的。以32bit数据为例,相应的代码如下图所示。这里考虑到两个32bit数据相加其结果可能为33bit,同时对于高速设计(时钟频率至少400MHz)为了满足性能,对输入和输出分别添加了流水寄存器

最终的资源利用率如下图所示。

从逻辑级数的角度看,逻辑级数最大为5(有一条),大多数路径为3,如下图所示。

从综合属性角度看,可以通过use_dsp属性使得该加法操作映射到DSP48中,该属性的使用方法如下图所示。

采用DSP48实现时,上述代码可达到完全映射,不会消耗SLICE中的任何资源。假定时钟频率为400MHz,对比使用LUT+FF和DSP48两种实现方式,不难看出后者在时序(逻辑级数降低至1)和功耗方面均有优势。

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

    关注

    31

    文章

    5290

    浏览量

    119792
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59657
  • 代码
    +关注

    关注

    30

    文章

    4720

    浏览量

    68211

原文标题:两个数相加,三个数相加有什么不同

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    实现两个单一频率正弦波相加的加法器的芯片选取有什么特殊要求吗?opa2320可以吗?

    实现两个单一频率正弦波相加的加法器的芯片选取有什么特殊要求吗?opa2320可以吗?
    发表于 09-11 08:30

    相加法器和反相加法器的区别是什么

    相加法器和反相加法器是运算放大器在模拟电路设计中常用的种基本电路结构,它们在信号处理方面有着不同的特性和应用场景。
    的头像 发表于 05-23 14:35 2089次阅读

    相同代码,不同的工程出现定时器抢占的现象怎么解决?

    。 ​ ​工程1:使用开发板自带的EMWIN例子修改,加入界面和定时器代码运行正常 ​工程2:使用CUBEMX新建工程,加入以上代码后出现,电机转动的时候卡顿严重,目测是被抢占了优先级其他原因 ​ ​目前尝试的方法有:修改
    发表于 05-15 08:27

    用STM32F1xxx来同时对TIMR4的两个输入脉冲进行脉测量,脉冲要如何计算?

    我用STM32F1xxx来同时对TIMR4的两个输入脉冲进行脉测量,我的脉测量思路为次上升沿的捕捉值相减,但现如下问题不解,假如前一个
    发表于 05-15 06:13

    原电池中的两个电极能是相同的吗?

    在原电池的设计和运作中,两个电极是否可以相同,这取决于电池的类型和所需的电化学反应。
    的头像 发表于 04-26 17:32 1474次阅读

    arcgis中如何关联两个属性表

    字段,这是进行关联的前提。关联字段是两个表中共有的字段,通过这个字段可以将两个表中的数据进行匹配和关联。 打开ArcMap软件,加载需要进行关联的两个数据表。可以通过“添加数据”功能加载表格文件,或者直接将表格文件拖拽到地图窗口
    的头像 发表于 02-25 11:01 3863次阅读

    labview怎么查数组中相同元素的个数

    的每个元素。 在每次循环迭代中,使用“Case Structure”结构将当前元素与数组中的其他元素进行比较。为此,可以使用另一个嵌套的“For Loop”来遍历数组并计算相同元素的个数。 在嵌套的“For Loop”中,使用“Equal?”函数来比较
    的头像 发表于 12-28 16:42 3052次阅读

    AD9269在AD两个通道的入口输入峰值相同的差分信号,为什么AD两个通道的输出不同?

    在AD两个通道的入口输入峰值相同的差分信号,为什么AD两个通道的输出不同,最高位的符号为什么不同
    发表于 12-12 06:55

    数字前端生存指南—RTL

    在数字前端领域,RTL几乎与“设计代码”概念相同
    的头像 发表于 12-04 10:14 8284次阅读
    数字前端生存指南—<b class='flag-5'>RTL</b>

    关于AD6688输出的问题

    论坛的大牛们好,我最近在使用AD6688,是一款14的ADC,但是如果配置N=16,CS=0的话,输出的数据会是16的。我本以为是高两位两位
    发表于 12-01 07:31

    vlookup两个表怎么匹配相同数据

    VLOOKUP是一种非常有用的Excel函数,它可以帮助我们在两个表中匹配相同的数据。在本文中,我们将详细介绍VLOOKUP函数的工作原理,并通过示例方式演示如何将两个表匹配起来。 首先,我们需要
    的头像 发表于 11-30 17:18 2761次阅读

    python中如何交换两个数的值相加

    Python是一种简单易学的高级语言,其交换两个数的值相加是一种常见的操作。交换变量的值可以在许多情况下发挥作用,如算法、排序、逻辑控制等。本文将详细介绍Python中实现交换两个数的值,并对其
    的头像 发表于 11-29 17:29 601次阅读

    IC设计:ram的应用-异步时钟域转换

    在进行模块设计时,我们经常需要进行数据的转换,常见的种转换场景有同步时钟域转换和异步时钟域
    的头像 发表于 11-23 16:41 785次阅读
    IC设计:ram的应用-异步时钟域<b class='flag-5'>位</b><b class='flag-5'>宽</b>转换

    python中如何交换两个数的位置

    在Python中,我们可以使用多种方法来交换两个数的位置。下面将详细介绍这些方法,并提供示例代码和解释。 方法一:使用临时变量进行交换 这是最简单的方法之一,我们可以使用一个临时变量来交换两个数的值
    的头像 发表于 11-22 10:56 2714次阅读

    python怎样让列表里的数相加

    ,可以使用方括号来定义一个列表,例如: numbers = [ 1 , 2 , 3 , 4 , 5 ] 我们可以使用for循环遍历这个列表,并将每个数相加到一个累加变量中。以下是一个简单的代码示例
    的头像 发表于 11-22 09:53 1767次阅读