在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1836|回复: 3

[求助] 累加器怎么用流水线实现呢?

[复制链接]
发表于 2022-5-17 23:01:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x


比如A <= A+B

普通加法器我能理解,拆分成2/3级,累加器也是一样的吗?谢谢了
发表于 2022-5-18 15:02:08 | 显示全部楼层
主要就是进位和流水线延迟的匹配,累加器不作流水线延迟的匹配结果应该会出错。

另:采用流水线设计累加器,那么累加速率会降低,比如你把一个累加器拆成两级流水线设计,那么,最短的累加周期就是2个时钟周期,或者说至少要两个时钟周期才能完成一次累加。通常来说,要拆分流水线,多半是因为满足不了高速时钟的时序要求了,但对于累加器而言,拆分流水线,等效于按倍率降低累加器的运行时钟哦。比如,你通过拆分流水线的办法要你的累加器的系统时钟跑到了120M,但实际的累加速率只有60M,而不拆分,也许本身就可以跑80M。实际上,对于xilinx A7 FPGA来说,即便48-bits的累加器,因其CLB内部有专用的算术逻辑(异或门,进位链),跑到200M,累加器本身的逻辑应该都不会是时序瓶颈。
 楼主| 发表于 2022-5-18 15:16:06 | 显示全部楼层


innovation 发表于 2022-5-18 15:02
主要就是进位和流水线延迟的匹配,累加器不作流水线延迟的匹配结果应该会出错。

另:采用流水线设计累加器 ...


嗯嗯,目前就是采用7系列内部的CARRY4实现的累加器,关键路径如下图所示,且符合时序要求。现在的需求是能否针对这个关键路径进行时序优化,所以才有了这个提问


关键路径截图.png
发表于 2022-5-18 15:38:23 | 显示全部楼层


come_on_sn 发表于 2022-5-18 15:16
嗯嗯,目前就是采用7系列内部的CARRY4实现的累加器,关键路径如下图所示,且符合时序要求。现在的需求是 ...


你这个,瓶颈有二:
1),最后一级carry4的O输出到LUT,这个是大忌,carry4的O在slice内部有配对的FFs,CARRY4的O到Slice内部配对FFs的D输入之间是专用连线,快得很,时序报告中通常都是按0ns计算,而CARRY4的O要到LUT的输入,必须走通用布线资源跨Slice连接,慢得很,而且随设计改变,重新布局布线可能会变化

2),LUT输出到block RAM地址线输入,Block RAM在Xilinx FPGA内是硬核资源,在其内部是分布在一些固定区域,布局布线限制大,通常不建议采用LUT的输出直接用作Block RAM的输入

综上,你这个设计,LUT2前后都是明显的时序瓶颈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-22 22:36 , Processed in 0.015843 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表