打印

FPGA难题

[复制链接]
7429|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

使用特权

评论回复
5
h20030711| | 2010-4-10 21:54 | 只看该作者
可以的,很容易,我Q:774615731

使用特权

评论回复
6
lknudt| | 2010-4-11 11:30 | 只看该作者
有个方案可以试试。

内存的芯片现在不贵吧,一个内存加一个小FPGA做的到!成本应该不到200

使用特权

评论回复
7
zjp8683463| | 2010-4-11 12:13 | 只看该作者
lZ的条件基本上还是硬件决定,编程还是那么编

使用特权

评论回复
8
drentsi|  楼主 | 2010-4-11 13:12 | 只看该作者
这个题目,做出原型,会做FPGA的难度不大,利用xilinx或者altera的一些现成IPCORE做些修改就可以实现功能,
不过,要实现这样的性能以及用200块的整体成本,只有高手才可以做出来.
类似于这样的功能,我这里在一些项目上用上了,只是还有很多更复杂的问题需要解决,我一个人的精力有限,有些问题需要灵感来解决.我期待高手的出现,期待高手的**.

使用特权

评论回复
9
ai1988121| | 2010-4-11 14:44 | 只看该作者
给个答案啥

使用特权

评论回复
10
hao234hao234| | 2010-4-11 17:10 | 只看该作者
:)

使用特权

评论回复
11
liuzenglong| | 2010-4-11 17:57 | 只看该作者
等待答案

使用特权

评论回复
12
钻研的鱼| | 2010-4-12 08:31 | 只看该作者
这个题目有点意思。根据带宽和容量,sdram比较合适,ddr或者ddr2或者ddr3.。但这些芯片大部分是bga封装,焊接费用就不低,对pcb要求也较高。现在的fpga大部分都支持这些sdram,选择余地比较大,但最好选择tqfp或者pqfp的封装,不然焊接又加费用。
    600MB/s的带宽,如果要求输入输出在同时对相近地址操作都能达到,这个有点难。输入输出在不同时对一个地址操作,可采用乒乓操作,满足带宽要求。
    以前在网站上看到类似题目。楼主一时想起这个点子,俺就一时应答,希望能将这个问题继续深入讨论,而不是虎头蛇尾。
   200元的成本,个人认为几乎不可能,希望聪明的人想个聪明的点子。

使用特权

评论回复
13
zjp8683463| | 2010-4-12 17:35 | 只看该作者
如果你能用400以下做出来,大批量生产就可能做到200

使用特权

评论回复
14
wangkj| | 2010-4-12 23:06 | 只看该作者
用cyclone+ddr2

使用特权

评论回复
15
wangkj| | 2010-4-12 23:06 | 只看该作者
现成的ip core 不到100

使用特权

评论回复
16
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块,这只是估计值,实际上电阻,电容,电源这些都降下来

使用特权

评论回复
17
mr.king| | 2010-4-13 12:08 | 只看该作者
楼主没说清,64M,我还以为64MB,你实际要64M*4,带宽大了3倍,难怪上面有人评估容易实现

使用特权

评论回复
18
钻研的鱼| | 2010-4-13 19:29 | 只看该作者
内存条的座子还要值一点钱。
设计的的难点确实如楼主所说,但如果允许情况下,空满标记可以延迟很长时间产生。譬如只写一个数据,可以等到这个数据完全搬到sdram后,在产生非空标记。这样逻辑会简单一些。
另外,spartan3An跑ddr2,是不是有点悬?

使用特权

评论回复
19
aceice| | 2010-4-13 20:13 | 只看该作者
玩FPGA的都好有钱。。。
做惯了低成本单片机,都是20块左右的成本:L

使用特权

评论回复
20
zjp8683463| | 2010-4-13 21:50 | 只看该作者
单片机也有贵的,我用的单片机也要90~120RMB

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:学习,思考。

144

主题

1720

帖子

43

粉丝