完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
亲爱的大家,
我正在做一个基于FPAG(virtex 4)的数据获取项目。 一个FPGA与4个ADC接口,每个ADC一次产生4MB数据,因此总存储器至少为 4通道* 4MBytes / channel = 16MBytes。 但在数据表上,它表示FPGA(XC4VSX35)只有: 最大分布式RAM:240Kb = 30KB最大块RAM:3,456Kb = 432 KB 这是否意味着我必须使用内存芯片来存储这些数据? 你有这方面的经验和一些消化吗? |
|
相关推荐
5个回答
|
|
如果来自ADC的16MB数据必须在ARM读取之前完全存储(或者ARM读取速度明显慢于聚合ADC写入速度),那么您将需要一些外部存储器。
接下来的问题是“什么样的记忆”。 SRAM可以是最简单的存储器类型,但可能太慢而无法同时处理所有ADC数据。 QDR SRAM具有更好的性能,但可能相当昂贵。 DDR2 / DDR3 SDRAM可能是最便宜的,但具有相当大的复杂性 - 特别是在获得高持续(和可预测)带宽时。 最终,必须仔细分析系统的要求,并选择适当的架构。 然后需要设计系统。 我很好奇,但是......如果你确实需要外部RAM,这需要添加到你的系统中。 我认为这意味着新的电路板(或至少是电路板的新扩展卡),除非电路板上已有存储器。 如果是这种情况,你为什么要考虑这么老的FPGA呢? 有许多新的FPGA可以更好地满足您的需求: - 你或许可以找到价格合理的FPGA,它具有“足够的”内部存储器(尽管16MB很多) - 您可以考虑使用内置ARM的Zynq,并为处理器提供更多带宽 - 即使你仍然需要外部ARM和外部存储器,新的FPGA速度更快,而且可能更便宜 Avrum |
|
|
|
|
|
|
|
所以,有几条评论....
首先 - 你说3GHz ????? 多少位? 界面有多快? 设计以非常高的时钟速率从ADC捕获数据的接口本身就是一个挑战 - 您需要确保已经分析了接口的时序以及此速率的接口所需的所有相关带宽要求。 按照这些速度,您的内存系统的选择将非常关键。 第二,正如你自己发现的那样,你可能找不到内部有足够内存的FPGA ......这太糟糕了,因为内部Block RAM的优点在于它具有非常高的带宽能力; 每个块RAM能够超过72Gbps(500MHz操作,每个端口每个时钟72位)。 每个BRAM都具有此功能,并且由于FPGA中有数百个(有时甚至超过1000个)Block RAM,因此agregate带宽以petabits进行测量! 下一步 - 您希望数据在哪里? 最终你似乎想把它发送到PC。 有很多方法可以实现它 - 有些涉及某种CPU,有些则没有。 Zynq具有内置FPGA架构的非常强大的CPU子系统 - 它可以是将外部CPU与FPGA架构相结合的解决方案。 使用Zynq,您可以拥有微控制器的所有常规外设,包括千兆以太网等。 因此,所有包含在Zynq中的,您都可以使用FPGA架构从ADC收集数据,以及运行OS(包括Linux)的CPU子系统,它具有完整的TCP / IP堆栈,可以将数据传输到PC 通过以太网。 将数据传输到CPU的另一种方法是通过PCI-Express。 您可以在FPGA中实现PCIe端点,并将FPGA卡直接插入PCIe插槽中的PC。 这将允许ADC捕获系统和PC之间的高速通信 - 并且没有“额外”CPU可以处理。 这是在上一封电子邮件中讨论的内存选择之上。 看起来你正试图在这里设计一个相当高性能的系统,并且你有很多架构选择。 您需要确保从各个角度分析系统,以确保最终得到满足您所有需求的系统,并最终发挥作用。 Avrum |
|
|
|
Avrum,非常感谢!虽然每个通道ADC都会以3GHz时钟采样并每秒生成3GB数据,但我们只是在非常短的时间内采样,每次只为每个通道生成MBytes数据。
如果我们需要使用外部存储器而不是仅使用FPGA中的内部块存储器,那么似乎存在更多困难。 关于使用Zynq的建议,您是说我们可以使用完整的TCP / IP堆栈实时通过以太网将数据传输到PC而无需使用外部存储器吗? |
|
|
|
那么4个通道中的每一个都以3GB / s的速度生成数据?
数据如何从ADC传输到FPGA? 这些速度似乎非常高,可以在FPGA中捕获 - 即使在16位/通道,这仍然是1500Mbps /引脚,这高于FPGA可以采样输入(或非常接近它)的速率。 使用高速串行I / O(一些现代ADC所做的),24Gbps(在编码开销之前)高于Virtex-7中除最快的HSSIO之外的所有速率。 那么,您打算如何将这些数据输入FPGA? 至于实时传输它,使用以太网肯定是不可能的 - 我只提到以太网,因为它是一种简单的方法,可以将某些东西从嵌入式系统传输到PC。 我不认为任何I / O标准可以“实时”执行此操作 - 速率为12GB / s(4个通道,3GB / s)。 16通道PCIe Gen3在开销之前的速率接近8Gbps * 16,仅为16GB / s(我怀疑任何PC都能以这个速率真正接受数据)。 外部存储器的原始数据速率也很大。 即使QDR-II + SRAM,其吞吐速度最快,最大输出速率约为1Gbps /引脚 - 因此您至少需要3个(如果不是4个)32位宽的存储体... 正如我所说,你对这个系统有巨大的设计挑战...... Avrum |
|
|
|
只有小组成员才能发言,加入小组>>
2420 浏览 7 评论
2823 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2294 浏览 9 评论
3374 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2461 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1172浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
585浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
451浏览 1评论
2005浏览 0评论
731浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 16:37 , Processed in 6.244351 second(s), Total 54, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号