FPGA难题

[复制链接]
 楼主| drentsi 发表于 2010-4-10 19:24 | 显示全部楼层 |阅读模式
本帖最后由 drentsi 于 2010-10-31 19:56 编辑

设计一个大容量异步FIFO,FIFO输入输出位宽32bit,深度大于64M
输入输出时钟异步,
FIFO的输入带宽大于600MB/s,输出带宽大于600MB/s,
要求整个系统成本(芯片,PCB,加工费用等)不大于200元*币

这个题目,只是一时想起来的,如果有高手看见了,搞得定这个事又想跳槽的,请给我回邮件,
我这边难题多,机会也多.
mr.king 发表于 2010-4-10 21:31 | 显示全部楼层
本帖最后由 mr.king 于 2010-4-11 12:56 编辑

观望,可能吗?64MB,32位宽的SDRAM,640MB/S=160MDW/S, FPGA的写入时钟6.25ns,宽度32位,配置深度512,一个SDRAM突发长度256,这是只写,如果考虑读,要翻一倍,算起来用400以上的SDRAM或用DDR SDRAM 好像能实现,量少价格有疑问
Dongfangyuxiao 发表于 2010-4-10 21:42 | 显示全部楼层
仰望中......
lwq030736 发表于 2010-4-10 21:52 | 显示全部楼层
坐等高手揭榜:D
h20030711 发表于 2010-4-10 21:54 | 显示全部楼层
可以的,很容易,我Q:774615731
lknudt 发表于 2010-4-11 11:30 | 显示全部楼层
有个方案可以试试。

内存的芯片现在不贵吧,一个内存加一个小FPGA做的到!成本应该不到200
zjp8683463 发表于 2010-4-11 12:13 | 显示全部楼层
lZ的条件基本上还是硬件决定,编程还是那么编
 楼主| drentsi 发表于 2010-4-11 13:12 | 显示全部楼层
这个题目,做出原型,会做FPGA的难度不大,利用xilinx或者altera的一些现成IPCORE做些修改就可以实现功能,
不过,要实现这样的性能以及用200块的整体成本,只有高手才可以做出来.
类似于这样的功能,我这里在一些项目上用上了,只是还有很多更复杂的问题需要解决,我一个人的精力有限,有些问题需要灵感来解决.我期待高手的出现,期待高手的**.
ai1988121 发表于 2010-4-11 14:44 | 显示全部楼层
给个答案啥
hao234hao234 发表于 2010-4-11 17:10 | 显示全部楼层
liuzenglong 发表于 2010-4-11 17:57 | 显示全部楼层
等待答案
钻研的鱼 发表于 2010-4-12 08:31 | 显示全部楼层
这个题目有点意思。根据带宽和容量,sdram比较合适,ddr或者ddr2或者ddr3.。但这些芯片大部分是bga封装,焊接费用就不低,对pcb要求也较高。现在的fpga大部分都支持这些sdram,选择余地比较大,但最好选择tqfp或者pqfp的封装,不然焊接又加费用。
    600MB/s的带宽,如果要求输入输出在同时对相近地址操作都能达到,这个有点难。输入输出在不同时对一个地址操作,可采用乒乓操作,满足带宽要求。
    以前在网站上看到类似题目。楼主一时想起这个点子,俺就一时应答,希望能将这个问题继续深入讨论,而不是虎头蛇尾。
   200元的成本,个人认为几乎不可能,希望聪明的人想个聪明的点子。
zjp8683463 发表于 2010-4-12 17:35 | 显示全部楼层
如果你能用400以下做出来,大批量生产就可能做到200
wangkj 发表于 2010-4-12 23:06 | 显示全部楼层
用cyclone+ddr2
wangkj 发表于 2010-4-12 23:06 | 显示全部楼层
现成的ip core 不到100
 楼主| drentsi 发表于 2010-4-13 09:55 | 显示全部楼层
结果揭晓:
32bit位宽,600MB/s的输入输出带宽,要求输入输出时钟达到150MHz以上,这样你的逻辑也得做到150MHz以上
FIFO深度64M,那总的内存需求位256MB,从成本考虑不能选择SRAM,而只能选择DDR(1,2,3) SDRAM.
总的内存带宽大于1.2GB/s,很多人说这个很好做,DDR400,32bit,这不就有1.6GB/s了吗?理论总与实际相差太远,在计算机采用一次读取大量数据以及BANK管理,能达到60%的带宽,在实际应用中,xilinx最高性能的MIG-DDR2也只能达到50%,多数情况下只能达到40%,altera的可能更糟糕(从评估的DDR3,SODIMM性能看,最高只有40%)
初步计算,采用DDR2 SDRAM,至少需要2.4GB/s的总内存带宽,因此选择256MB的DDR2,工作在至少150MHz(300Mbps),64bit位宽.为节省焊接成本(DDR2是0.8mm的球间距,焊接成本较高),选用SODIMM,那留给FPGA的成本只有100块出头了.
好了,有了内存条,内存控制器可以用官方提供的ipcore,似乎胜利在望了.
等等,还有一部分工作必须得靠经验完成.
这是一个FIFO,收发时钟未必相同,如果输入端只有1个数据,数据不够一次长的burst,但是你又不能等数据足够之后再输出,因此这里有一个复杂的数据管理机制,这个机制决定你把收到的数据放到内存还是放到输出口.
这里要设计一个CACHE,并配以复杂的数据管理,而且只能选择100块左右的FPGA芯片
这个地方,足以让多数人抓狂,只有100块左右的FPGA,面临两大挑战
1.性能受限,这个价格的FPGA性能不会怎么样,必须谨慎的设计代码,才能跑到150MHz
2.资源受限,这个价格的FPGA,前面已经用了DDR2控制器了,剩下的资源不多了.

总的来说,需要逻辑和DDR2内存能跑到150MHz,有效引脚超过180根(36为读,36位写,110根DDR2)
总成本(包括配置flash)100块左右的FPGA

我这里的解决办法
1.spartan-3AN的400AN(内置配置flash),100块
2.256MB的DDR2内存条,能跑DDR2-400就可以了50块.
3.各种电阻电容,电源,接插件,20块
4.BGA焊接费用20块
5.4层板,批量生产成本20块

算起来多了10块,这只是估计值,实际上电阻,电容,电源这些都降下来
mr.king 发表于 2010-4-13 12:08 | 显示全部楼层
楼主没说清,64M,我还以为64MB,你实际要64M*4,带宽大了3倍,难怪上面有人评估容易实现
钻研的鱼 发表于 2010-4-13 19:29 | 显示全部楼层
内存条的座子还要值一点钱。
设计的的难点确实如楼主所说,但如果允许情况下,空满标记可以延迟很长时间产生。譬如只写一个数据,可以等到这个数据完全搬到sdram后,在产生非空标记。这样逻辑会简单一些。
另外,spartan3An跑ddr2,是不是有点悬?
aceice 发表于 2010-4-13 20:13 | 显示全部楼层
玩FPGA的都好有钱。。。
做惯了低成本单片机,都是20块左右的成本:L
zjp8683463 发表于 2010-4-13 21:50 | 显示全部楼层
单片机也有贵的,我用的单片机也要90~120RMB
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:学习,思考。

144

主题

1720

帖子

43

粉丝
快速回复 在线客服 返回列表 返回顶部