能否在DSP的DDR3接口上,接一片FPGA,实现内存共享

[复制链接]
8200|20
 楼主| zhongxon 发表于 2011-7-26 14:45 | 显示全部楼层 |阅读模式
今天一个朋友跟我说,他们正设计一个C6678,加一片xilinx的V6 130T的板子,因为这两个芯片间需要有大量数据交换,所以,他们打算,把FPGA接在C6678的DDR3接口上,而在FPGA上再接上DDR3芯片,问我是否可行,我没听说过这样做,他说国内有人这么做了。
想问下各位大侠,这样做是否可行?如果可行,FPGA怎么实现与C6678及DDR3间的功能?
AutoESL 发表于 2011-7-26 16:25 | 显示全部楼层
应该可行,我在某个报告中看到过比这复杂的系统结构
 楼主| zhongxon 发表于 2011-7-26 16:33 | 显示全部楼层
那么,FPGA把自己“伪装”成DDR3?还是透明地把DDR3接到6678上?
lelee007 发表于 2011-7-26 16:44 | 显示全部楼层
去年想过这种结构,不过折腾成本高,仅仅想了想而已
and 发表于 2011-7-26 17:40 | 显示全部楼层
我也曾有类似的想法,感觉很麻烦。
atua 发表于 2011-7-27 08:42 | 显示全部楼层
emif, pcie, hyperlink都可以考虑啊,看具体需求了
GoldSunMonkey 发表于 2011-7-27 10:07 | 显示全部楼层
Radpid IO也不错的选择。不一定伪装成DDR3,否则就意义不大,我觉得
 楼主| zhongxon 发表于 2011-7-27 10:49 | 显示全部楼层
我看到的很多方案,用RapidIO或PCI-E,没看到过用ddr3接口的,但朋友提出这个方案,现在不是讨论有没有其他方案的问题,而是讨论这个DDR3方案是否可行,如果可行,FPGA怎么工作?
GoldSunMonkey 发表于 2011-7-27 11:04 | 显示全部楼层
这个俺觉得应该是你是符合一个DDR3的时许,然后和FPGA对接后,FPGA根据这个接口把数据分析出来,然后处理,然后在存到FPGA
atua 发表于 2011-7-27 11:23 | 显示全部楼层
“把FPGA接在C6678的DDR3接口上,而在FPGA上再接上DDR3芯片”
是要改变数据宽度吗?还是要在FPGA中做一些数据的处理?

似乎你的朋友已经认定这个方案了,那就想办法去做吧
dan_xb 发表于 2011-7-27 13:10 | 显示全部楼层
对于V6来讲,把自己伪装成DDR3是完全可以的,但是这样的话,貌似模块不太好写
我觉得DSP的专用接口,例如EMIF或者RapidIO
http://www.xilinx.com/support/do ... n_notes/xapp753.pdf
huanan_ 发表于 2011-7-27 13:31 | 显示全部楼层
这个方案风险很高,切换读写时,可能会丢数据
lelee007 发表于 2011-7-27 13:50 | 显示全部楼层
我也觉得DSP和FPGA对DDR3的读写切换时容易出问题
明空 发表于 2011-7-27 15:47 | 显示全部楼层
推荐RapidIO
lelee007 发表于 2011-7-27 15:52 | 显示全部楼层
呵呵,LS理解可能有偏差

如果这个能实现,挂两片DDR3,DSP和FPGA轮换访问,这样对于图像处理来说将会有极大优势

1.DSP DDR3控制器和FPGA怎么协调?
-------------------------------------------------------------
DSP和FPGA其中一个先对DDR3内部数据进行处理,然后再换另一个处理前面一个处理器处理过的数据,说白了,就是DSP和FPGA作pipeline处理,如果挂两片DDR3,可以想象一下效率高低问题,:-)
而非DSP和FPGA来处理同一个对象,所以不存在协调问题



2.DSP DDR3控制器和FPGA操作DDR3内存时的优先级和策略。
-------------------------------------------------------------
做好pipeline协调,整个处理过程内,DSP和FPGA访问DDR3不存在冲突


3. DDR3内存区域对于FPGA和DDR3的可见性及共享区域的处理。
-------------------------------------------------------------
针对特殊应用,做好相应的描述结构就够了,而非将这个作成通用结构。FPGA和DSP处理的数据在DDR3可能存放在同一区域,也可能不在同一区域,做好描述结构就OK,整个DDR3内存区域对于FPGA和DSP都可见,当然,这个针对具体应用来进行处理

关键是数据稳定性和成本问题,而且复杂度也比较高
drentsi 发表于 2011-7-27 21:00 | 显示全部楼层
模拟DDR2,DDR3的做法是不可行的,因为这些芯片的延时是有限而且固定的,转接时的延时确实不可预测的
zhubaojun 发表于 2011-7-28 09:19 | 显示全部楼层
lelee007 理解的比较好,我们就是这个意思,我们就是利用6678和30T进行图像处理,因为有些算法在FPGA中,有些在DSP中,并且两者之间交互很频繁,若采用常规方案,我担心传输瓶颈是个问题,当然采用EMIF,rapdio方案我们都想过。我们考虑的是假设FPGA完成一定的算法之后,然后放进DDR3的一个空间,DSP需要利用这些数据,直接去读取?要比传统的方法快的多。
   很高兴大家参与讨论,上次发帖的时候很少有人讨论,希望这次大家讨论下去。
   谢谢zhongxon,把这个问题又提出来,希望大家讨论,实际上这种方案如果处理好的话,在高速数据传输处理作用极大,据我所知的两家采用这种方案的公司都是因为传统方式的限制才采用这种方式的。我想难度在于模拟DDR的时序。
 楼主| zhongxon 发表于 2011-7-28 10:24 | 显示全部楼层
1、如果光是数据,采用两片DDR3从理论上还可行,但程序就只能在6678内部 运行了?
2、数据量很大,有多大?
钻研的鱼 发表于 2011-7-28 12:54 | 显示全部楼层
为什么非要模拟ddr3的时序?难道dsp最快的通讯速率只有ddr3接口?
  如果非要采用ddr时序,fpga也可模拟出来,但有一些latency。譬如dsp写入一个地址空间的数据,然后回读,会有一些延迟,如果你对这些延迟可以容忍的话,可以用fpga模拟。
   感觉楼主的意思是用dsp控制两片ddr内存,fpga在这中间是透明的,这个需要程序更好的控制和对硬件更深入的了解
 楼主| zhongxon 发表于 2011-7-28 17:27 | 显示全部楼层
看来大家的意见比较一致的。结论就是没必要作这种结构的设计。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

71

主题

890

帖子

34

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