ultramanshey 发表于 2012-12-20 20:59:22

FPGA内部资源使用的困惑(求讨论)

最近研读很多关于面积和速度的资料,结合最近遇到的情况,还是很困惑。
我的工程中需要用到ipcore——fifo,它占用的是blockram,每个bolck是18k,芯片一共有20个bolck,按照我现在的用法,每个fifo是1bit*32768,所以按照ise内部的安排,一个fifo就占用了2个block,于是问题就来了,按照我现在的情况,每个fifo是32k,实际占用的是18*2=36k,也就是说一共8个fifo总共浪费了32k的资源,而我的fifo深度智能是32768不能改的,这样的话是不是可以通过什么方式让我使用这些被浪费的资源?
同时我有一个疑问,在spartan3E 我是用的是XC3S500E,它具有500k的资源,我以为block ram的360k是在这个500k之外的,所以我也考虑过,试试看使用block ram以外的资源,同样是做一个深度为32768的延时,这样的话,我只做了两个1bit*32768的之后资源就超了。
(n=32768)
process(sysclktemp)
         begin
                          if(sysclktemp'event and sysclktemp='1') then
                                                                          input1<=input1(n-2 downto 0)&output1(1);
                                                                          input0<=input0(n-2 downto 0)&output1(0);

                          end if;
end process;
原本按照我最初的想法,我本来是需要14个深度为32768的延时端口,我想32k(32768)*14=448k,应该留有余地的,现在只能做到9个,不能再多了。

看过关于面积和速度的资料之后,心有不甘,总觉得我还能提高芯片使用率。只是一时无从下手。

还希望大家都来讨论讨论~

pocker5200 发表于 2012-12-20 21:28:02

虽然不知道LZ想要做什么,但是用FIFO来做数据延时实在太奢侈了,fifo是用来解决跨时钟域的问题的。
1bit的数据延迟可以用移位寄存器来实现,spartan6系列我记得好像有片内延迟线。
资源使用率太高的话,会给布线带来困难,做设计尽可能用大容量的片子。

ultramanshey 发表于 2012-12-20 22:00:01

pocker5200 发表于 2012-12-20 21:28 static/image/common/back.gif
虽然不知道LZ想要做什么,但是用FIFO来做数据延时实在太奢侈了,fifo是用来解决跨时钟域的问题的。
1bit的 ...

如果用大容量的芯片,就没有这种问题了,都可以搞的定的,只是觉得片子容量大了有点浪费,我的设计其实很简单,就是想做1bit的延时,只是延时深度32768这个略大。。。而且本着block这么好的资源一定要用,不知道出来fifo以外还有没有别的可以使用block的方法做延时

ab8780000 发表于 2012-12-20 22:10:26

这个block ram比较难优化的,你有多少数据就得花多少ram存,除非你的数据可以合并或者拆分
实际设计中FPGA本身资源根本不是问题,现在不比以前了,100元RMB以下的芯片都有用不完的资源了
瓶颈往往在管脚数量和内存带宽上
另外你的延时可以用计数器

ultramanshey 发表于 2012-12-21 10:24:49

ab8780000 发表于 2012-12-20 22:10 static/image/common/back.gif
这个block ram比较难优化的,你有多少数据就得花多少ram存,除非你的数据可以合并或者拆分
实际设计中FPGA ...

确实现在100元以下的片子肯定没有问题。。。我也跟老师提起过,不过老师要求摆在那里,必须要在这个框框下做出来。。。
我在顶楼列出了我打算使用移位寄存器来做延时,只不过这样的移位寄存器无法列入block里面使用,愁呀~

ab8780000 发表于 2012-12-21 10:52:59

本帖最后由 ab8780000 于 2012-12-21 10:59 编辑

ultramanshey 发表于 2012-12-21 10:24 static/image/common/back.gif
确实现在100元以下的片子肯定没有问题。。。我也跟老师提起过,不过老师要求摆在那里,必须要在这个框框 ...

只能说明你们老师固守旧思想,还以为在00年初,现在都12年了
你这个跟面积和速度已经没有关系了,这是硬核的特性,哪怕你一个fifo只用了1bit深度,它还是要占一个block ram
这就是为什么altera在中低端市场更受欢迎的原因之一了,因为altera中低端芯片block ram是有512bit、4k和9K,资源利用效率更高
memory bit使用率/memory implement bit使用率=存储器资源利用率,一般达到80%以上就很不错了
你试试能不能把这些1bit移位寄存器合并成14bit的移位寄存器吧

ultramanshey 发表于 2012-12-21 13:32:40

ab8780000 发表于 2012-12-21 10:52 static/image/common/back.gif
只能说明你们老师固守旧思想,还以为在00年初,现在都12年了
你这个跟面积和速度已经没有关系了,这是硬 ...

哎~被你一语道破哦~保守这个事儿。。。我。。。没法说~
我现在block20个已经全用上了
lut使用率在79%
slice使用率99%
昨天综合的时候还出问题了。。。实在是。。。
谢谢你给我一个新的思路,我尝试着做一下看看能不能合并~
页: [1]
查看完整版本: FPGA内部资源使用的困惑(求讨论)