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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4692|回复: 8

[求助] 如何降低FPGA资源消耗?在线等,着急!

[复制链接]
发表于 2014-8-17 17:38:14 | 显示全部楼层 |阅读模式

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

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

x
各位大侠,最近一直很头疼的一个事:如何降低FPGA的资源消耗。
      由于入门FPGA设计的时间不是很长,对verilog HDL的理解不是很深入,在进行算法设计的时候,不是很注重编程方式和具体实现的结合,导致现在综合后的资源消耗比较畸形。
      我用的是spartan-6的xc6slx150,现在LUTs消耗特别多,远远超过其他资源,并且fully-used LUT-FF不是很多,但是找不到具体是哪块消耗LUTs多,哪些消耗reg多,希望大侠们能提供一些解决思路,或者参考书籍什么的。
      我不确定是综合的问题还是代码风格的问题,所以不知道如何下手去降低资源啊。附图是综合的报告,求指导,在线等!
无标题.bmp
发表于 2014-8-18 09:00:16 | 显示全部楼层
节省资源的方法有很多,推荐ken chapman的两片文章,WP272 WP275
 楼主| 发表于 2014-8-18 15:00:01 | 显示全部楼层
回复 2# haitaox

好的,非常感谢,我今天尝试了设置XST的属性,但是效果不是很明显,现在还是怀疑coding style的问题。我还有个疑问:在综合和MAP的时候,给出的资源消耗不一致。综合给出的是估计值,但是有具体的Technology Schematic,对应的是FPGA的Primitive(LUT和Register等),这已经比较具体了,可是和MAP后的资源消耗统计不一致,不知道为什么?MAP给出的是具体的资源消耗,对应的是硬件布局,是不是前者比较通用些,细致些,所以只能估计,而后者则专用些,将多个小单元划到一个大的逻辑单元中?这样导致的不一样?
发表于 2014-8-18 18:01:14 | 显示全部楼层
多数的xilinx器件在MAP阶段都会有布局操作。MAP阶段会完成很多工作,一般情况下,MAP后的资源消耗就是最终的资源消耗了。
综合阶段的资源消耗只是估计值,最终的结果还是要看MAP的结果。
至于综合和MAP的结果不一样,原因有很多,最主要的还是在MAP阶段会考虑到布局的因素,增加一些lut作为布线使用,还会优化掉很多冗余逻辑。

最重要的一点,要精简资源,不能靠软件,要靠设计。
 楼主| 发表于 2014-8-18 21:25:22 | 显示全部楼层
回复 4# haitaox
十分感谢阁下的教导,对于你给出的观点我十分赞同,这也是我最近才渐渐意识到的问题。之前比较依赖综合软件,导致问题累积到不知道如何下手。还是想问问有没有推荐的进阶学习书籍或者着重点?我最近在看XST User Guide中推荐的coding style,另外计划阅读J.Bhasker的《Verilog HDL综合实用教程》,再详细看看Spartan-6的内部资源组成,试图将Spartan-6的CLB和代码建立联系,但是没有看到有介绍这方面的书籍。
另外我还是没有抓住大方向,面对大型的设计还是手足无措,不知道如何去规划程序,怎么样将程序设计到优良?请问一下,有没有那种介绍FPGA设计思路的书?
发表于 2014-8-19 12:28:39 | 显示全部楼层
回复 5# warming89


    你好,我个人觉得,如果要深入学习,必须要看xilinx和altera的官方文档,国内的书不建议看,我至今没有看到一本深层次的书。
    我觉得能力的提升最主要的是通过做项目,而不是看书。只有完整做完几个项目之后,才会碰到具体的问题,才会了解到深层次的东西。
    你可以先看看spartan-6的config手册、CLB手册、时钟手册等等。要想成为一个高手,FPGA内部的各种资源都必须牢牢掌握,这不是1 2年能做到的。
 楼主| 发表于 2014-8-19 15:14:59 | 显示全部楼层
回复 6# haitaox 好吧,十分感谢!心急吃不了热豆腐,我还是项目做的太少了!
发表于 2015-8-31 20:33:14 | 显示全部楼层
楼主,我最近面试也遇到这个问题,一直没有考虑过,搜索了一些答案整理一下:
更改综合策略,采用资源共享;如果某个某块大量使用寄存器时可以考虑是否可以采用RAM代替;从架构上分析冗余并进行优化,之后再结合个别FPGA的实现特征,如果实在对资源比较在意而对性能要求不高,就可以考虑用时间换空间,用并行替串行;良好的代码习惯和风格

暂时就那么多,楼主现在对这个问题怎么理解的呢。还望赐教啊,谢谢了啊
发表于 2015-8-31 20:34:25 | 显示全部楼层
我也是缺少项目锻炼。以上多数也只停留在理论阶段
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 10:25 , Processed in 0.041347 second(s), 10 queries , Gzip On, Redis On.

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