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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4561|回复: 16

[求助] FPGA slice资源占用过高怎么解决

[复制链接]
发表于 2021-11-24 21:03:11 | 显示全部楼层 |阅读模式

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

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

x
今天发现slice (sliceL和sliceM)占用98%,而lut占用57%,ff占用40%多,,,这种情况应该怎么解决呢?
发表于 2021-11-24 23:17:42 来自手机 | 显示全部楼层
可試試降頻
发表于 2021-11-25 09:08:42 | 显示全部楼层
印象中slice包含了ff和lut以及distribute_ram,看你的ff用量比较低,而slice很高,是不是distribute_ram用的太多了
 楼主| 发表于 2021-11-25 09:26:13 | 显示全部楼层


bysg312 发表于 2021-11-25 09:08
印象中slice包含了ff和lut以及distribute_ram,看你的ff用量比较低,而slice很高,是不是distribute_ram用 ...


不是  是在slice logic distribution里用的比较多   ram用的比较少   
 楼主| 发表于 2021-11-25 09:27:27 | 显示全部楼层


现在时钟频率10M   已经很低了
发表于 2021-11-25 09:28:53 | 显示全部楼层
像是利用效率没上去,也就是说很多的slice里面只用了LUT或只用了FF,组合逻辑和时序逻辑使用时没搭配好
发表于 2021-11-25 13:34:18 | 显示全部楼层


1440090531 发表于 2021-11-25 09:26
不是  是在slice logic distribution里用的比较多   ram用的比较少


slice logic distribution是包含了很多项的,slice logic distribution不是描述一种类型的逻辑资源,是一个统称
你需要根据slice logic distribution下面的每一类的消耗情况去判断
 楼主| 发表于 2021-11-25 14:24:04 | 显示全部楼层


bysg312 发表于 2021-11-25 13:34
slice logic distribution是包含了很多项的,slice logic distribution不是描述一种类型的逻辑资源,是一 ...


是的  这个类下面的slice占用比较高  我试着把ram换成block ram会下降一点
发表于 2021-11-25 19:20:00 | 显示全部楼层
本帖最后由 innovation 于 2021-11-25 19:42 编辑


1440090531 发表于 2021-11-25 14:24
是的  这个类下面的slice占用比较高  我试着把ram换成block ram会下降一点


哎。。。是否应该说明FPGA的厂家,系列型号?使用的开发软件?版本?以及软件的优化属性参数设置?

针对楼主遇到的问题(猜楼主使用的是Xilinx的FPGA),提供四个也许被忽略的因素吧:
1)因为约束的逻辑运行时钟频率其实非常低(10M),所以对于软件布局布线来说,等于没有要求,说白了吧,这个要求,工具软件不需要任何优化,随便布局布线都能满足设计要求,所以工具软件完全有可能没有特别地将相关的LUTs和FFs封装进同一个slice。这种情况就是工具软件认为没必要,怎么快怎么来,你这个是不是有综合、布局、布线很快的情况呢?
2)设计代码中有大量的组合逻辑(基于LUT实现)用作FFs的控制信号(CE/RESET/SET)?对Xilinx的FPGA而言,在同一Slice内部,没有LUT到本Slice内FFs的控制信号的布线,简单来说,如果是这种情况,工具软件没有办法将相关的LUTs和FFs封装进同一个slice。
3)设计代码中有大量的低扇出的FFs控制信号,而Xilinx的FPGA一个slice里面有多个FFs,6系/7系是一个slice内的8个FFs共用一组控制信号,控制信号不同的FFs没办法布局进同一个slice,举个例子,你设计了两个带CE的触发器,但这两个触发器的CE信号不同,那么,很不幸,你需要两个slice,更不幸的是,你这两个slice,每个只能使用1个触发器,其余的只能空置。(在UltraScale/UltraScale+系列,这种情况有所缓解,控制信号的使用限制变成了4个FFs一组)
4)同一个slice内部的FFs的控制信号,同步控制信号和异步控制信号(CE一定是同步的)不能混用。异步(复位/置位)控制信号软件没法优化,只要你那么设计了,一定按照这样给你实现。同步控制信号软件可能优化(移到触发器D输入端的LUT逻辑里面)。
 楼主| 发表于 2021-11-26 10:49:26 | 显示全部楼层


innovation 发表于 2021-11-25 19:20
哎。。。是否应该说明FPGA的厂家,系列型号?使用的开发软件?版本?以及软件的优化属性参数设置?

针对 ...


首先谢谢您这么耐心的解答!我使用的是xilinx的FPGA,型号是xc7a100tcsg324,软件是vivado2018.2,综合和布局布线用的是软件默认的您说的(1)(3)我代码里确实也有用到,但是基本上不会大改了,我想再请问您一下,就是这种情况下,代码还能继续扩张吗?会不会因为整体资源够用,而slice会不够用?布局布线会不会布不下?


                               
登录/注册后可看大图

                               
登录/注册后可看大图


谢谢您的解答!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-8 07:41 , Processed in 0.026827 second(s), 6 queries , Gzip On, Redis On.

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